Timeline



Aug 24, 2021:

11:21 PM Changeset in webkit [281549] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Unreviewed, reverting r281540.
https://bugs.webkit.org/show_bug.cgi?id=229487

causes local builds to fail reliably

Reverted changeset:

"Improve diagnostics for missing files in DerivedSources.make"
https://bugs.webkit.org/show_bug.cgi?id=229348
https://commits.webkit.org/r281540

11:07 PM Changeset in webkit [281548] by rniwa@webkit.org
  • 4 edits in trunk/Source/WebCore

removeFromTopLayer shouldn't be called in every removal of an element
https://bugs.webkit.org/show_bug.cgi?id=229480

Reviewed by Simon Fraser.

Call it in HTMLDialogElement::removedFromAncestor for now since that's
the only place where top layer is currenlty used.

  • dom/Element.cpp:

(WebCore::Element::removedFromAncestor):

  • html/HTMLDialogElement.cpp:

(WebCore::HTMLDialogElement::removedFromAncestor): Added.

  • html/HTMLDialogElement.h:
11:04 PM Changeset in webkit [281547] by commit-queue@webkit.org
  • 3 edits
    8 adds in trunk

ANGLE Metal infinities and NaNs generated with incorrect syntax
https://bugs.webkit.org/show_bug.cgi?id=229439
<rdar://81033366>

Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2021-08-24
Reviewed by Dean Jackson.

Source/ThirdParty/ANGLE:

Generate NaN and infinity constant values correctly.
An else was missing from if-block, causing double processing.

  • src/compiler/translator/TranslatorMetalDirect/EmitMetal.cpp:

(GenMetalTraverser::emitSingleConstant):

  • src/libANGLE/renderer/metal/mtl_utils.mm:

(rx::mtl::CreateShaderLibrary):

LayoutTests:

Add tests that test some aspects of NaN and -+inf that the GLSL ES 3.00 spec
talks about.

  • webgl/pending/conformance2/glsl3/float-constant-expressions-expected.txt: Added.
  • webgl/pending/conformance2/glsl3/float-constant-expressions.html: Added.
  • webgl/pending/resources/webgl_test_files/conformance2/glsl3/float-constant-expressions.html: Added.
  • webgl/pending/resources/webgl_test_files/js/glsl-conformance-test.js: Added.
10:20 PM Changeset in webkit [281546] by Fujii Hironori
  • 10 edits in trunk/LayoutTests

[WinCairo] Unreviewed test gardening

  • platform/wincairo/TestExpectations:
  • platform/wincairo/css2.1/t100801-c544-valgn-00-a-ag-expected.txt:
  • platform/wincairo/editing/selection/3690703-2-expected.txt:
  • platform/wincairo/editing/selection/3690703-expected.txt:
  • platform/wincairo/editing/selection/3690719-expected.txt:
  • platform/wincairo/fast/dom/52776-expected.txt:
  • platform/wincairo/fast/text/capitalize-boundaries-expected.txt:
  • platform/wincairo/fast/text/whitespace/020-expected.txt:
  • platform/wincairo/fast/text/wide-zero-width-space-expected.txt:
10:11 PM Changeset in webkit [281545] by Cameron McCormack
  • 2 edits in trunk/Source/WebCore

Windows build fix after r281470
https://bugs.webkit.org/show_bug.cgi?id=229476
<rdar://problem/82316227>

Unreviewed.

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

(WebCore::CACFLayerTreeHost::initialize):

8:47 PM Changeset in webkit [281544] by mark.lam@apple.com
  • 9 edits in trunk/Source

Refactor ENABLE(JIT_OPERATION_VALIDATION) code to emit no code when disabled.
https://bugs.webkit.org/show_bug.cgi?id=229482
rdar://82318317

Reviewed by Yusuke Suzuki.

Source/JavaScriptCore:

  • assembler/JITOperationList.cpp:

(JSC::addPointers):
(JSC::JITOperationList::populatePointersInJavaScriptCore):
(JSC::JITOperationList::populatePointersInJavaScriptCoreForLLInt):
(JSC::JITOperationList::populatePointersInEmbedder):

  • assembler/JITOperationList.h:

(JSC::JITOperationList::map const):
(JSC::JITOperationList::assertIsJITOperation):
(JSC::JITOperationList::initialize):
(JSC::JITOperationList::populatePointersInJavaScriptCore):
(JSC::JITOperationList::populatePointersInJavaScriptCoreForLLInt):

  • runtime/JSCPtrTag.h:

(JSC::tagJSCCodePtrImpl):
(JSC::untagJSCCodePtrImpl):

Source/WebCore:

  • bindings/js/WebCoreJITOperations.cpp:

(WebCore::populateJITOperations):

  • bindings/js/WebCoreJITOperations.h:

(WebCore::populateJITOperations):

  • testing/js/WebCoreTestSupport.cpp:

(WebCoreTestSupport::populateJITOperations):

  • testing/js/WebCoreTestSupport.h:

(WebCoreTestSupport::populateJITOperations):

8:11 PM Changeset in webkit [281543] by Jean-Yves Avenard
  • 2 edits
    2 adds in trunk

[Cocoa] Should video stop being live, time scrubber will not show
https://bugs.webkit.org/show_bug.cgi?id=229286
rdar://82114447

Reviewed by Eric Carlson.

Work around an issue with AVKit AVTouchBarPlaybackControlsProvider SPI which will
not properly make the time scrubber to be displayed when only the content duration
change.
We do so by toggling the canSeek property to force a relayout of the touch bar
content.

While we can reproduce the issue programatically, at this stage we can only
visually confirm that it's been fixed as we have no infrastructure to check
the content of the touch bar and that the issue itself is in AVKit.
Test: ManualTests/video-livechange-touchbar.html

  • platform/mac/WebPlaybackControlsManager.mm:

(-[WebPlaybackControlsManager canSeek]): Add code as property is otherwise read-only.
(-[WebPlaybackControlsManager setCanSeek:]): Add code as property is otherwise read-only.
(-[WebPlaybackControlsManager setContentDuration:]):
(-[WebPlaybackControlsManager setSeekableTimeRanges:]): Explictly set canSeek propery to
ensure property watchers will be called.

8:07 PM Changeset in webkit [281542] by Alan Bujtas
  • 2 edits in trunk/Tools

[ iOS ] TestWebKitAPI.DocumentEditingContext.Request* tests are failing
https://bugs.webkit.org/show_bug.cgi?id=229446
<rdar://problem/82295496>

Unreviewed.

Adjusting the test case after r281463 to match the new wrapping behavior.

  • TestWebKitAPI/Tests/WebKitCocoa/DocumentEditingContext.mm:

(TEST):

7:34 PM Changeset in webkit [281541] by mark.lam@apple.com
  • 5 edits in trunk/Source/JavaScriptCore

[Re-landing] Add some offlineasm enhancements.
https://bugs.webkit.org/show_bug.cgi?id=229332
rdar://82163923

Reviewed by Keith Miller.

  1. Enhance "include" offlineasm Instruction to always attempt to include an asm file from <build-products>/usr/local/include/WebKitAdditions/ first. If the specified file is not available there, then it will attempt to include the file from the same directory as the current source file (which in practice, means Source/JavaScriptCore/llint/).
  1. Enhance "include" offlineasm Instruction to allow an optional file to be included if it exists. For example, the following offlineasm code:

include? LowLevelInterpreterAdditions

... will attempt to include a file LowLevelInterpreterAdditions.asm. If the
file does not exist, this will be a no-op. Note: the "?" after the "include"
means the include is optional.

  1. Enhanced "emit" offlineasm Instruction to be able to take more than one operand.

"emit" used to just copy the string operand that follows into the generated
LLIntAssembly.h. Now, "emit" can take multiple comma separated operands, and
will concatenate all the operands.

Additionally, "emit" can now take a LocalLabelReference as an operand. For
example, this offline asm code:

emit "b ", .done
...

.done:

... will generate this inline asm code in LLIntAssembly.h:

"b " LOCAL_LABEL_STRING(_offlineasm_someLabel_done) "\n"

This makes it easier to emit branches to local labels.

  1. Also fixed LLInt code alignment for ARM_THUMB2 and ARM64.

Previously, it was aligned using ".align 4" which means aligned on a 4
instruction boundary. Note: the interpretation of .align varies for different
target CPU architectures.

Now, we do the alignment using ".balign 4" which means align on a 4 byte
boundary. This is the intended alignment because ARM64 instruction size is
4 bytes, and ARM_THUMB2 instruction size is either 2 bytes or 4 bytes.
Using .align before was potentially wasting some code space.

  • llint/LowLevelInterpreter.asm:
  • llint/LowLevelInterpreter.cpp:
  • offlineasm/ast.rb:
  • offlineasm/parser.rb:
6:57 PM Changeset in webkit [281540] by ap@apple.com
  • 2 edits in trunk/Source/WebCore

Improve diagnostics for missing files in DerivedSources.make
https://bugs.webkit.org/show_bug.cgi?id=229348

Reviewed by Alexey Proskuryakov.

We are seeing flaky build failures in certain scenarios (rdar://81042866), which
look like this:

make: * No rule to make target UserAgentScripts.h', needed by all'. Stop.

The theory is that some files that should be present in the file system aren't,
but the error is not clear enough. Let's add better diagnostics to isolate the issue.

  • DerivedSources.make:
5:37 PM Changeset in webkit [281539] by Eric Hutchison
  • 2 edits in trunk/LayoutTests

[BigSur+ wk1 Release] media/video-poster-background.html is flakily failing.
https://bugs.webkit.org/show_bug.cgi?id=229481.

Unreviewed test gardening.

  • platform/mac-wk1/TestExpectations:
5:23 PM Changeset in webkit [281538] by Russell Epstein
  • 1 copy in tags/Safari-612.1.29.14.1

Tag Safari-612.1.29.14.1.

5:21 PM Changeset in webkit [281537] by Russell Epstein
  • 2 edits in branches/safari-612.1.29.14-branch/Source/WebInspectorUI/WebInspectorUI.vcxproj

Cherry-pick r281151. rdar://problem/82316028

Cherry-pick r281121. rdar://problem/82038333

Apply patch. rdar://problem/81915461

git-svn-id: https://svn.webkit.org/repository/webkit/branches/safari-612.1.15.4-branch@281121 268f45cc-cd09-0410-ab3c-d52691b4dbfc

git-svn-id: https://svn.webkit.org/repository/webkit/branches/safari-612.1.28-branch@281151 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5:21 PM Changeset in webkit [281536] by Russell Epstein
  • 6 edits in branches/safari-612.1.29.14-branch/Source

Cherry-pick r281150. rdar://problem/82316028

Cherry-pick r280597. rdar://problem/82038333

Speculative build fix. rdar://79147214.

git-svn-id: https://svn.webkit.org/repository/webkit/branches/safari-612.1.15.4-branch@280597 268f45cc-cd09-0410-ab3c-d52691b4dbfc

git-svn-id: https://svn.webkit.org/repository/webkit/branches/safari-612.1.15.4-branch@280792 268f45cc-cd09-0410-ab3c-d52691b4dbfc

git-svn-id: https://svn.webkit.org/repository/webkit/branches/safari-612.1.15.4-branch@280800 268f45cc-cd09-0410-ab3c-d52691b4dbfc

git-svn-id: https://svn.webkit.org/repository/webkit/branches/safari-612.1.28-branch@281150 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5:13 PM Changeset in webkit [281535] by Russell Epstein
  • 8 edits in branches/safari-612.1.29.14-branch/Source

Versioning.

WebKit-7612.1.29.14.1

5:08 PM Changeset in webkit [281534] by mark.lam@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

testb3_6 should be using JSSwitchPtrTag instead of JITCompilationPtrTag.
https://bugs.webkit.org/show_bug.cgi?id=229479
rdar://82316967

Reviewed by Yusuke Suzuki.

This is in testInterpreter() which is emitting code for a jump table.
JSSwitchPtrTag is the right tag to use here.

  • b3/testb3_6.cpp:

(testInterpreter):

5:07 PM Changeset in webkit [281533] by Jean-Yves Avenard
  • 2 edits in trunk/Source/WebCore

MediaSession artwork URL is showing in logs.
https://bugs.webkit.org/show_bug.cgi?id=229320
rdar://82156288

Reviewed by Eric Carlson.

Only enable artwork logging in debug builds.

  • platform/audio/cocoa/MediaSessionManagerCocoa.mm:

(WebCore::MediaSessionManagerCocoa::updateNowPlayingInfo):

5:03 PM Changeset in webkit [281532] by Eric Hutchison
  • 2 edits in trunk/LayoutTests

REGRESSION (r281102?): [Mac wk2] media/track/track-in-band.html is a flaky timeout.
https://bugs.webkit.org/show_bug.cgi?id=229478.

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
5:02 PM Changeset in webkit [281531] by Russell Epstein
  • 1 copy in branches/safari-612.1.29.14-branch

New branch.

4:51 PM Changeset in webkit [281530] by Eric Hutchison
  • 2 edits in trunk/LayoutTests

[ Mac,iOS ] media/track/track-in-band-duplicate-tracks-when-source-changes.html is a flaky timeout.
https://bugs.webkit.org/show_bug.cgi?id=228364.

Unreviewed test gardening.

  • platform/mac/TestExpectations:
4:40 PM Changeset in webkit [281529] by ysuzuki@apple.com
  • 2 edits in trunk/JSTests

Update Intl tests to support ICU 68
https://bugs.webkit.org/show_bug.cgi?id=229467

Reviewed by Mark Lam.

ICU 68 changes some outputs of Intl tests. This patch adjusts that.

  • stress/intl-parse-unicode-subtags.js:

(vm.icuVersion):

4:39 PM Changeset in webkit [281528] by Jonathan Bedard
  • 2 edits in trunk/Tools

[run-webkit-tests] Use Python 3 (Part 1)
https://bugs.webkit.org/show_bug.cgi?id=226658
<rdar://problem/78882016>

Reviewed by Dewei Zhu.

  • Scripts/run-webkit-tests: Change shebang to Python 3.
4:31 PM Changeset in webkit [281527] by Chris Dumez
  • 9 edits
    2 adds in trunk

change event is dispatched when .files property is set at <input type="file"> element
https://bugs.webkit.org/show_bug.cgi?id=180465

Reviewed by Darin Adler.

Source/WebCore:

We should not dispatch a change / input events when setting input.files via JavaScript,
as per:

This aligns our behavior with both Chrome and Firefox.

Test: fast/dom/HTMLInputElement/input-setFiles-no-change-event.html

  • html/FileInputType.cpp:

(WebCore::FileInputType::setFiles):
(WebCore::FileInputType::didCreateFileList):

  • html/FileInputType.h:
  • html/HTMLInputElement.cpp:

(WebCore::HTMLInputElement::setFiles):

  • html/HTMLInputElement.h:

(WebCore::HTMLInputElement::filesForBindings):
(WebCore::HTMLInputElement::setFilesForBindings):

  • html/HTMLInputElement.idl:
  • html/InputType.cpp:

(WebCore::InputType::setFiles):

  • html/InputType.h:

LayoutTests:

Add layout test coverage.

  • fast/dom/HTMLInputElement/input-setFiles-no-change-event-expected.txt: Added.
  • fast/dom/HTMLInputElement/input-setFiles-no-change-event.html: Added.
4:26 PM Changeset in webkit [281526] by Russell Epstein
  • 1 copy in tags/Safari-612.1.27.0.31

Tag Safari-612.1.27.0.31.

4:22 PM Changeset in webkit [281525] by ntim@apple.com
  • 2 edits in trunk/Source/WebCore

Use RefPtr instead of auto* in EventHandler::defaultKeyboardEventHandler.
https://bugs.webkit.org/show_bug.cgi?id=229475

Unreviewed.

  • page/EventHandler.cpp:

(WebCore::EventHandler::defaultKeyboardEventHandler):

4:12 PM Changeset in webkit [281524] by Aditya Keerthi
  • 3 edits in trunk/LayoutTests

REGRESSION (r276598): [ iOS ] fast/forms/ios/accessory-bar-navigation.html is a constant timeout
https://bugs.webkit.org/show_bug.cgi?id=229471
rdar://80390931

Reviewed by Wenson Hsieh.

  • fast/forms/ios/accessory-bar-navigation.html:

r276598 updated this test so that the second input is positioned out of
the viewport on larger devices. However, the change (increasing the margin)
also lead to the first input being positioned out of the viewport on
smaller devices. Consequently, the test times out when run on an iPhone SE
as it is unable to tap on the first input.

To fix, the original margin for the first input is restored, ensuring it is
positioned within the viewport, and can be tapped. Then, a separate margin
is applied to the second input, ensuring it remains positioned outside the
viewport, and the test can verify accessory bar navigation with an
element outside the viewport.

  • platform/ios-wk2/TestExpectations:
4:04 PM Changeset in webkit [281523] by keith_miller@apple.com
  • 12 edits in trunk/Source/JavaScriptCore

Add for-in OwnStructureMode optimizations to LLInt
https://bugs.webkit.org/show_bug.cgi?id=229038

Reviewed by Saam Barati.

This patch adds the optimizations we have for OwnStructureMode in
the Baseline to the LLInt. The patch also adds redundant self move
(i.e. move a, a) elimination to arm64. Finally, a bunch of the
property offset functions are now marked constexpr and return
intptr_t rather than size_t as the values can be negative.

There's also a minor fix to disable MSVC's signed to unsigned
cast warning for LLIntOffsetsExtractor as we don't care about
signedness for extracting constants.

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileEnumeratorGetByVal):

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileCompareStrictEq):

  • jit/JITPropertyAccess.cpp:

(JSC::JIT::emit_op_enumerator_get_by_val):

  • llint/LowLevelInterpreter.asm:
  • llint/LowLevelInterpreter32_64.asm:
  • llint/LowLevelInterpreter64.asm:
  • offlineasm/arm64.rb:
  • offlineasm/generate_offset_extractor.rb:
  • runtime/Butterfly.h:

(JSC::Butterfly::indexOfPropertyStorage):

  • runtime/JSObject.h:

(JSC::offsetInButterfly):

  • runtime/PropertyOffset.h:

(JSC::checkOffset):
(JSC::validateOffset):
(JSC::isValidOffset):
(JSC::isInlineOffset):
(JSC::isOutOfLineOffset):
(JSC::offsetInInlineStorage):
(JSC::offsetInOutOfLineStorage):
(JSC::offsetInRespectiveStorage):
(JSC::numberOfOutOfLineSlotsForMaxOffset):
(JSC::numberOfSlotsForMaxOffset):
(JSC::offsetForPropertyNumber):

3:58 PM Changeset in webkit [281522] by Eric Hutchison
  • 2 edits in trunk/LayoutTests

REGRESSION (r281182?): 4 Media tests flakily timing out.
https://bugs.webkit.org/show_bug.cgi?id=229474.

Unreviewed test gardening.

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

[Mac] media/modern-media-controls/seek-backward-support/seek-backward-support.html is a flaky timeout.
https://bugs.webkit.org/show_bug.cgi?id=229473.

Unreviewed test gardening.

  • platform/mac/TestExpectations:
3:03 PM Changeset in webkit [281520] by Chris Dumez
  • 20 edits
    4 adds in trunk

Geolocation API should callback with error if doc is not fully active
https://bugs.webkit.org/show_bug.cgi?id=228319
<rdar://problem/81450315>

Reviewed by Ryosuke Niwa.

LayoutTests/imported/w3c:

  • web-platform-tests/geolocation-API/PositionOptions.https-expected.txt:

Rebaseline WPT test now that more checks are passing.

  • web-platform-tests/geolocation-API/non-fully-active.https-expected.txt: Added.
  • web-platform-tests/geolocation-API/non-fully-active.https.html: Added.
  • web-platform-tests/geolocation-API/resources/iframe.html: Added.

Import test coverage from WPT https://github.com/web-platform-tests/wpt/pull/29799.

  • web-platform-tests/resources/testdriver-vendor.js:

(window.test_driver_internal.set_permission):
Add support for test_driver.set_permission("geolocation", "granted") so that Geolocation
WPT tests can run with our infrastructure.

Source/WebCore:

Test: imported/w3c/web-platform-tests/geolocation-API/non-fully-active.https.html

  • Modules/geolocation/Geolocation.cpp:

(WebCore::Geolocation::getCurrentPosition):
(WebCore::Geolocation::watchPosition):
Schedule a task to call the error callback if the document is not fully active, as
per the specification:

  • bindings/js/JSDOMConvertCallbacks.h:

(WebCore::Converter<IDLCallbackFunction<T>>::convert):
(WebCore::Converter<IDLCallbackInterface<T>>::convert):
Make sure we use the incumbent global object when constructing callback functions /
interfaces, as per the Web IDL specification:

Without this, the geolocation API would be unable to call its error callback when in
a detached frame because the callback's global object would be the geolocation object's
global object.

  • dom/IdleCallbackController.cpp:

(WebCore::IdleCallbackController::invokeIdleCallbacks):
Make sure we don't fire requestIdleCallback callbacks in detached iframes, to maintain
pre-existing behavior and keep layout tests passing. I had to make this change because
callback interfaces / functions are now using a different global object and can now
get called in cases when they previously couldn't.

  • dom/TaskSource.h:

As Geolocation task source for the HTML5 event loop, as per the Geolocation
specification.

LayoutTests:

Update / rebaseline existing layout tests to reflect behavior change.

  • fast/dom/Geolocation/callback-to-deleted-context-expected.txt:
  • fast/dom/Geolocation/callback-to-deleted-context.html:
  • fast/dom/Geolocation/disconnected-frame-already-expected.txt:
  • fast/dom/Geolocation/disconnected-frame-already.html:
  • fast/dom/Geolocation/disconnected-frame-expected.txt:
  • fast/dom/Geolocation/disconnected-frame-permission-denied-expected.txt:
  • fast/dom/Geolocation/disconnected-frame-permission-denied.html:
  • fast/dom/Geolocation/disconnected-frame.html:
  • fast/dom/Geolocation/resources/callback-to-deleted-context-inner1.html:
  • fast/events/detached-svg-parent-window-events-expected.txt:
  • fast/events/detached-svg-parent-window-events.html:
2:54 PM Changeset in webkit [281519] by Eric Hutchison
  • 2 edits in trunk/LayoutTests

[BigSur wk2 Debug] webgl/1.0.3/conformance/glsl/constructors/glsl-construct-bvec2.html is a flaky timeout.
https://bugs.webkit.org/show_bug.cgi?id=229472.

Unreviewed test gardening.

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

4 webgl/2.0.0/deqp/functional/gles3/ tests are failing.
https://bugs.webkit.org/show_bug.cgi?id=228703.

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
2:28 PM Changeset in webkit [281517] by Ayumi Kojima
  • 2 edits in trunk/LayoutTests

REGRESSION: [ Mac ] http/tests/media/modern-media-controls/pip-support/pip-support-live-broadcast.html is flaky failing.
https://bugs.webkit.org/show_bug.cgi?id=229101

Unreviewed test gardening.

  • platform/mac/TestExpectations:
2:11 PM Changeset in webkit [281516] by Chris Dumez
  • 40 edits
    2 adds in trunk

[WK2] Implement process-swapping based on Cross-Origin-Opener-Policy HTTP header
https://bugs.webkit.org/show_bug.cgi?id=229203
<rdar://problem/82047686>

Reviewed by Alex Christensen.

LayoutTests/imported/w3c:

Minor test rebaseline due to logging changes.

  • web-platform-tests/html/cross-origin-opener-policy/coep-blob-popup.https-expected.txt:

Source/WebCore:

We recently added support for the Cross-Origin-Opener-Policy (COOP) HTTP header. However,
when switching browsing context group on HTTP response, we would keep using the same
WebProcess. This patch makes it so that we now swap WebProcess when switching browsing
context group on network response as this will be required to securely re-enable Web APIs
such as SharedArrayBuffer.

For process-swapping, we reuse most of the same logic as process-swap on navigation (PSON).
A few differences are that:

  • We swap on response policy decision instead of navigation policy decision
  • We used to have a ShouldTreatAsContinuingLoad Yes/No enum. It is now tri-state: No, YesAfterNavigationPolicyDecision, YesAfterResponsePolicyDecision. We need this new state to avoid duplicate response policy delegate calls after process-swapping and to avoid sending duplicate didStartProvisionalLoad IPCs after proces-swapping.
  • After process-swapping on navigation response, we close the previous page instead of trying to put it into the back/forward cache. Per the specification, in a case of a browsing context group switch, the previous browsing context needs to be discarded (which is Web-observable).

One important thing to note is that we currently send the HTTP request to the server AGAIN after
a process-swap. This is because the on-going load currently gets cancelled upon receiving the
network response and deciding to process-swap and a new fresh load gets issued by the new
WebProcess after swapping. I will address this in a follow-up to decrease patch size and
complexity. We will need to transition the load in the network process from the old WebProcess
to the new one in case of process-swap.

Covered by existing COOP/COEP layout tests that are still passing and new API tests
that validate that we are indeed process-swapping.

  • loader/DocumentLoader.cpp:

(WebCore::DocumentLoader::doCrossOriginOpenerHandlingOfResponse):
(WebCore::DocumentLoader::responseReceived):
(WebCore::DocumentLoader::maybeLoadEmpty):
(WebCore::DocumentLoader::clearMainResource):

  • loader/DocumentLoader.h:

(WebCore::DocumentLoader::isContinuingLoadAfterResponsePolicyCheck const):
(WebCore::DocumentLoader::setIsContinuingLoadAfterResponsePolicyCheck):

  • loader/EmptyClients.cpp:

(WebCore::EmptyFrameLoaderClient::dispatchDecidePolicyForResponse):

  • loader/EmptyFrameLoaderClient.h:
  • loader/FrameLoadRequest.h:

(WebCore::FrameLoadRequest::setShouldTreatAsContinuingLoad):
(WebCore::FrameLoadRequest::shouldTreatAsContinuingLoad const):

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::checkContentPolicy):
(WebCore::FrameLoader::prepareForLoadStart):
(WebCore::FrameLoader::load):
(WebCore::FrameLoader::loadDifferentDocumentItem):

  • loader/FrameLoader.h:
  • loader/FrameLoaderClient.h:
  • loader/HistoryController.h:
  • loader/ShouldTreatAsContinuingLoad.h:
  • page/Page.h:

Source/WebKit:

We recently added support for the Cross-Origin-Opener-Policy (COOP) HTTP header. However,
when switching browsing context group on HTTP response, we would keep using the same
WebProcess. This patch makes it so that we now swap WebProcess when switching browsing
context group on network response as this will be required to securely re-enable Web APIs
such as SharedArrayBuffer.

For process-swapping, we reuse most of the same logic as process-swap on navigation (PSON).
A few differences are that:

  • We swap on response policy decision instead of navigation policy decision
  • We used to have a ShouldTreatAsContinuingLoad Yes/No enum. It is now tri-state: No, YesAfterNavigationPolicyDecision, YesAfterResponsePolicyDecision. We need this new state to avoid duplicate response policy delegate calls after process-swapping and to avoid sending duplicate didStartProvisionalLoad IPCs after proces-swapping.
  • After process-swapping on navigation response, we close the previous page instead of trying to put it into the back/forward cache. Per the specification, in a case of a browsing context group switch, the previous browsing context needs to be discarded (which is Web-observable).

One important thing to note is that we currently send the HTTP request to the server AGAIN after
a process-swap. This is because the on-going load currently gets cancelled upon receiving the
network response and deciding to process-swap and a new fresh load gets issued by the new
WebProcess after swapping. I will address this in a follow-up to decrease patch size and
complexity. We will need to transition the load in the network process from the old WebProcess
to the new one in case of process-swap.

  • Shared/LoadParameters.h:
  • UIProcess/ProvisionalPageProxy.cpp:

(WebKit::ProvisionalPageProxy::ProvisionalPageProxy):
(WebKit::ProvisionalPageProxy::loadData):
(WebKit::ProvisionalPageProxy::loadRequest):
(WebKit::ProvisionalPageProxy::goToBackForwardItem):
(WebKit::ProvisionalPageProxy::didCreateMainFrame):
(WebKit::ProvisionalPageProxy::decidePolicyForResponse):

  • UIProcess/ProvisionalPageProxy.h:

(WebKit::ProvisionalPageProxy::shouldClosePreviousPageAfterCommit const):

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::loadRequestWithNavigationShared):
(WebKit::WebPageProxy::loadDataWithNavigationShared):
(WebKit::WebPageProxy::loadSimulatedRequest):
(WebKit::WebPageProxy::receivedNavigationPolicyDecision):
(WebKit::WebPageProxy::commitProvisionalPage):
(WebKit::WebPageProxy::continueNavigationInNewProcess):
(WebKit::WebPageProxy::decidePolicyForResponse):
(WebKit::WebPageProxy::decidePolicyForResponseShared):

  • UIProcess/WebPageProxy.h:
  • UIProcess/WebPageProxy.messages.in:
  • UIProcess/WebProcessProxy.h:

(WebKit::WebProcessProxy::optionalRegistrableDomain const):

  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:

(WebKit::WebFrameLoaderClient::dispatchDecidePolicyForResponse):

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

(WebKit::WebPage::loadDataImpl):

  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/WebPage.messages.in:

Source/WebKitLegacy/mac:

  • WebCoreSupport/WebFrameLoaderClient.h:
  • WebCoreSupport/WebFrameLoaderClient.mm:

(WebFrameLoaderClient::dispatchDecidePolicyForResponse):

Source/WebKitLegacy/win:

  • WebCoreSupport/WebFrameLoaderClient.cpp:

(WebFrameLoaderClient::dispatchDecidePolicyForResponse):

  • WebCoreSupport/WebFrameLoaderClient.h:

Tools:

Add API test coverage to validate that we are indeed process-swapping.

  • TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:

(-[PSONScheme addMappingFromURLString:toData:withCOOPValue:]):
(-[PSONScheme webView:startURLSchemeTask:]):

LayoutTests:

Skip COOP tests on WK1 as we only have a working implementation for WK2.

  • platform/mac-wk1/TestExpectations:
  • platform/win/TestExpectations:
2:04 PM Changeset in webkit [281515] by Jonathan Bedard
  • 2 edits in trunk/Tools

[kill-old-processes] Hardcode directory for stale simulator files
https://bugs.webkit.org/show_bug.cgi?id=229464
<rdar://problem/82148711>

Reviewed by Stephanie Lewis.

  • CISupport/kill-old-processes:

(main):

1:36 PM Changeset in webkit [281514] by Antti Koivisto
  • 2 edits
    2 adds in trunk/LayoutTests/imported/w3c

[CSS Cascade Layers] Import basic tests
https://bugs.webkit.org/show_bug.cgi?id=229441

Reviewed by Tim Horton.

  • web-platform-tests/css/css-cascade/layer-basic-expected.txt: Added.
  • web-platform-tests/css/css-cascade/layer-basic.html: Added.
  • web-platform-tests/css/css-cascade/w3c-import.log:
12:28 PM Changeset in webkit [281513] by ysuzuki@apple.com
  • 13 edits
    1 add in trunk

[JSC] Add Intl Enumeration APIs
https://bugs.webkit.org/show_bug.cgi?id=214795

Reviewed by Ross Kirsling.

JSTests:

  • stress/intl-datetimeformat.js:
  • stress/intl-enumeration.js: Added.

(shouldBe):
(shouldThrow):

  • stress/intl-locale-info.js:

(let.l.new.Intl.Locale.shouldBe):
(shouldBe):

Source/JavaScriptCore:

This patch implements Intl enumeration API[1] which is in stage-3.
Supported keys are, "calendar", "collation", "currency", "numberingSystem", "timeZone", and "unit".

[1]: https://github.com/tc39/proposal-intl-enumeration

  • runtime/IntlDateTimeFormat.cpp:

(JSC::IntlDateTimeFormat::localeData):
(JSC::IntlDateTimeFormat::initializeDateTimeFormat):

  • runtime/IntlLocale.cpp:

(JSC::createArrayFromStringVector): Deleted.

  • runtime/IntlNumberFormat.cpp:

(JSC::sanctionedSimpleUnitIdentifier):

  • runtime/IntlObject.cpp:

(JSC::IntlObject::finishCreation):
(JSC::mapICUCalendarKeywordToBCP47):
(JSC::availableCalendars):
(JSC::availableCollations):
(JSC::availableCurrencies):
(JSC::availableNumberingSystems):
(JSC::canonicalizeTimeZoneNameFromICUTimeZone):
(JSC::availableTimeZones):
(JSC::availableUnits):
(JSC::JSC_DEFINE_HOST_FUNCTION):
(JSC::createArrayFromStringVector):

  • runtime/IntlObject.h:
  • runtime/OptionsList.h:

Source/WTF:

  • wtf/text/StringImpl.cpp:

(WTF::StringImpl::createFromLiteral):

  • wtf/text/StringImpl.h:
12:15 PM Changeset in webkit [281512] by commit-queue@webkit.org
  • 22 edits
    2 adds in trunk

Unprefix -webkit-backface-visibility
https://bugs.webkit.org/show_bug.cgi?id=170983

Patch by Alex Christensen <achristensen@webkit.org> on 2021-08-24
Reviewed by Simon Fraser.

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-cascade/all-prop-initial-xml-expected.txt:
  • web-platform-tests/css/css-transforms/css-transform-property-existence-expected.txt: Added.
  • web-platform-tests/css/css-transforms/css-transform-property-existence.html: Added.
  • web-platform-tests/css/css-transforms/parsing/backface-visibility-computed-expected.txt:
  • web-platform-tests/css/css-transforms/parsing/backface-visibility-valid-expected.txt:
  • web-platform-tests/css/cssom/cssstyledeclaration-csstext-expected.txt:
  • web-platform-tests/web-animations/animation-model/animation-types/accumulation-per-property-001-expected.txt:
  • web-platform-tests/web-animations/animation-model/animation-types/addition-per-property-001-expected.txt:
  • web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-001-expected.txt:

Source/WebCore:

This has already been done by Chrome and Firefox.
Keep the prefixed version as an alias.

Test: imported/w3c/web-platform-tests/css/css-transforms/css-transform-property-existence.html

  • animation/CSSPropertyAnimation.cpp:

(WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap):

  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::ComputedStyleExtractor::valueForPropertyInStyle):

  • css/CSSProperties.json:
  • css/parser/CSSParserFastPaths.cpp:

(WebCore::CSSParserFastPaths::isValidKeywordPropertyAndValue):
(WebCore::CSSParserFastPaths::isKeywordPropertyID):

LayoutTests:

  • platform/ios-wk2/imported/w3c/web-platform-tests/css/cssom/cssstyledeclaration-csstext-expected.txt:
  • platform/ios/fast/css/getComputedStyle/computed-style-expected.txt:
  • platform/ios/fast/css/getComputedStyle/computed-style-without-renderer-expected.txt:
  • platform/ios/imported/w3c/web-platform-tests/css/cssom/cssstyledeclaration-csstext-expected.txt:
  • platform/ios/svg/css/getComputedStyle-basic-expected.txt:
  • platform/mac/fast/css/getComputedStyle/computed-style-expected.txt:
  • platform/mac/fast/css/getComputedStyle/computed-style-without-renderer-expected.txt:
  • platform/mac/svg/css/getComputedStyle-basic-expected.txt:
12:11 PM Changeset in webkit [281511] by Chris Dumez
  • 2 edits in trunk/Source/WebKit

Crash in [RBSTarget targetWithPid:] during WebProcessProxy::shutDown
https://bugs.webkit.org/show_bug.cgi?id=229444

Reviewed by Alex Christensen.

It appears xpc_connection_get_pid() may be able to return a PID that is less than 0
(likely when the process has just exited) and this causes RunningBoard to throw an
exception because the PID is invalid. Tweak the WebKit PID validation to use '>= 0'
instead of simply '!= 0', so that our validation is identical to the one used by
RunningBoard.

  • UIProcess/ios/ProcessAssertionIOS.mm:

(WebKit::ProcessAssertion::ProcessAssertion):

12:08 PM Changeset in webkit [281510] by Eric Hutchison
  • 2 edits in trunk/LayoutTests

CONSOLE ASSERT ERROR:[BigSur] http/tests/inspector/network/resource-mime-type.html is a flaky failure on wk2 and flaky timeout on wk1.
https://bugs.webkit.org/show_bug.cgi?id=229463.

Unreviewed test gardening.

  • platform/mac/TestExpectations:
12:01 PM Changeset in webkit [281509] by Ayumi Kojima
  • 2 edits in trunk/LayoutTests

[ Catalina EWS ] media/track/track-disabled-addcue.html is flaky crashing.
https://bugs.webkit.org/show_bug.cgi?id=229462

Unreviewed test gardening.

  • platform/mac-wk1/TestExpectations:
11:53 AM Changeset in webkit [281508] by Eric Hutchison
  • 2 edits in trunk/LayoutTests

[BigSur wk2 Debug x86] http/tests/inspector/network/ping-type.html is a flaky failure.
https://bugs.webkit.org/show_bug.cgi?id=229460.

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
11:48 AM Changeset in webkit [281507] by Ayumi Kojima
  • 2 edits in trunk/LayoutTests

[ EWS Catalina ] http/tests/websocket/tests/hybi/inspector/send-and-recieve-debugger.html is flaky timing out / failing.
https://bugs.webkit.org/show_bug.cgi?id=229459

Unreviewed test gardening.

  • platform/mac/TestExpectations:
11:41 AM Changeset in webkit [281506] by Lauro Moura
  • 2 edits
    1 add in trunk/LayoutTests

[WPE] Gardening two WebXR-related failures

Unreviewed test gardening.

  • platform/wpe/TestExpectations:
  • platform/wpe/http/wpt/webxr/xrViewport_singleView_valid.https-expected.txt: Added.
11:32 AM Changeset in webkit [281505] by Darin Adler
  • 3 edits in trunk/Source/WebCore

Remove inefficient use of HashMap from FormController along with a bit of other streamlining and modernizing
https://bugs.webkit.org/show_bug.cgi?id=228854

Reviewed by Chris Dumez.

  • html/FormController.cpp:

(WebCore::ownerForm): Renamed from ownerFormForState. Removed unnecessary use of
inline; trust the compiler to inline if needed without the keyword. Removed
"using namespace HTMLNames". Use nullptr instead of 0.
(WebCore::StringVectorReader::consumeString): Added. Helps parse a vector without
so many index range checks. Returns null string at end of vector.
(WebCore::StringVectorReader::consumeSubvector): Added. Helps parse a vector
without so many index range checks. Returns the subvector.
(WebCore::appendSerializedFormControlState): Renamed from
serializeFormControlStateTo to make clear this appends to an existing vector.
(WebCore::consumeSerializedFormControlState): Renamed from
deserializeFormControlState to make clear this reads part of a vector and
indicates what was read. Use the StringVectorReader class for the argument type
to make that clear. Refactored to use the new consumeString and consumeSubvector
functions. Also use parseInteger because there is no need to allow trailing junk.
(WebCore::FormElementKey): Deleted this entire class, kind of a lot of code,
because we can instead use std::pair and only lose a little bit of clarity.
(WebCore::FormController::SavedFormState): Made this class a member of
FormController. Also use std::pair, renamed m_stateForNewFormElements to m_map,
and removed m_controlStateCount. The only code that was using this was
in SavedFormState::serializeTo, and that in turn was only used on a
SavedFormState which contained
(WebCore::SavedFormState::serializeTo const): Deleted. All the logic from this
function is now in the FormController::formElementsState function, which is
the only place it was used.
(WebCore::FormController::SavedFormState::consumeSerializedState): Renamed
from deserialize to make it clear that it reads part of a vector and indicates
what is read. Use the StringVectorReader class for the argument type to make
that clear. Moved the isNotFormControlTypeCharacter from a separate function
to be a lambda inside this function. Use consumeString, StringView::contains,
and consumeSerializedFormControlState to streamline the implementation.
Moved call to HashMap::add here instead of separate appendControlState
function since we no longer need to track m_controlStateCount.
(WebCore::SavedFormState::appendControlState): Deleted.
(WebCore::FormController::SavedFormState::takeControlState): Take the arguments
as a FormElementKey, already in a pair, instead of as two separate values.
Removed the code to maintain m_controlStateCount.
(WebCore::FormController::SavedFormState::appendReferencedFilePaths const):
Renamed from referencedFilePaths and change this to append to an existing
vector, since that's what the only caller was doing.
(WebCore::FormController::FormKeyGenerator): Made this class a member of
FormController. Also changed to just use String for the formKey, since there
is no significant sharing or other optimization made possible by using
AtomString. Also use a reference instead of a pointer in one place.
(WebCore::recordFormStructure): Deleted.
(WebCore::formSignature): Merge in the logic from the recordFormStructure
function, since that was an awkward function name and this is clearer as
just one function. Added a comment about fragment identifiers. Use unsigned
instead of size_t to count up to 2. Improved the comment about why the
maximum is 2 and used simpler loop logic, is<> instead of a specific
function call, downcast<> instead of static_cast<>, and Ref instead of RefPtr<...>.
(WebCore::FormController::FormKeyGenerator::formKey): Use RefPtr on the
left side instead of makeRefPtr. Use String instead of AtomString.
(WebCore::FormController::FormKeyGenerator::willDeleteForm): Take a reference.
(WebCore::formStateSignature): Use MainThreadNeverDestroyed.
(WebCore::FormController::createSavedFormStateMap): Deleted. This was only
ever used by formElementsState, which does not need a map.
(WebCore::FormController::formElementsState const): Use a vector that
uses Ref<> since it's a little safer for object lifetime and that also stores
the form key so we can grouop controls in the same form as part of sorting.
Added an early return when there are no controls instead of
detecting that at the end of the function. Moved the code from
createSavedFormStateMap and SavedFormState::serializeTo in here to avoid
creating a HashMap just to iterate it and build a string vector, using
sorting to group and count the controls in each form. Use shrinkToFit to make
sure the vector is not permanently overallocated instead of an always-too-small
reserveInitialCapacity.
(WebCore::FormController::setStateForNewFormElements): Update for the change in
parseStateVector.
(WebCore::FormController::takeStateForFormElement): Updated for the change to
m_savedFormStateMap values. Use auto a bit and "iterator" insted of "it".
(WebCore::FormController::parseStateVector): Renamed from
formStatesFromStateVector and changed to use a return value instead of an out
argument. Use StringVectorReader and consumeString to streamline the code and
make it a bit more foolproof. Check the exhaustion of the input vector inside
the loop instead of checking for an error after the loop.
(WebCore::FormController::willDeleteForm): Pass a reference.

(WebCore::FormController::restoreControlStateFor): Tweak comment and use

instead of two separate if statements.
(WebCore::FormController::restoreControlStateIn): Ditto.
(WebCore::FormController::referencedFilePaths): Use parseStateVector and
appendReferencedFilePaths.

  • html/FormController.h: Removed almost all the includes, which were not needed.

Made the FormKeyGenerator and SavedFormState classes members of FormController.
Changed SavedFormStateMap to use String as the key instead of RefPtr<AtomStringImpl>,
no need for the exotic type. Changed SavedFormStateMap to use SavedFormState
as the value instead of std::unique_ptr<SavedFormState>. Removed the unused
member function createSavedFormStateMap and renamed formStatesFromStateVector
to parseStateVector and changed it to use a return value.

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

[Mac] http/tests/inspector/network/har/har-page.html, flaky failure on wk2, constant failure on wk1.
https://bugs.webkit.org/show_bug.cgi?id=229458.

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
11:30 AM Changeset in webkit [281503] by jer.noble@apple.com
  • 13 edits
    6 adds in trunk

Source/WebCore:
Add support for new pseudo-classes for media from CSS Selectors Level 4.
https://bugs.webkit.org/show_bug.cgi?id=229431

Reviewed by Eric Carlson.

Tests: media/media-css-muted.html

media/media-css-playing-paused.html
media/media-css-volume-locked.html
(Tests for buffering and stalled states are forthcoming, waiting on
a non-flakey mechanism for inducing network stalls)

Add support for the following new pseudo-classes from CSS Selectors Level 4:

  • :playing, :paused, :seeking
  • :buffering, :stalled
  • :muted, :volume-locked

Ensure CSS styles are invalidated when playback state changes by encapsulating
modifications to HTMLMediaElement::m_paused into a setPaused() function.

Add methods to query for volumeLocked() on HTMLMediaElement, as well as a way
to override the value through Internals.

Invalidate styles when the "muted" attribute changes state.

  • css/CSSSelector.cpp:

(WebCore::CSSSelector::selectorText const):

  • css/CSSSelector.h:
  • css/SelectorChecker.cpp:

(WebCore::SelectorChecker::checkOne const):

  • css/SelectorCheckerTestFunctions.h:

(WebCore::matchesPlayingPseudoClass):
(WebCore::matchesPausedPseudoClass):
(WebCore::matchesSeekingPseudoClass):
(WebCore::matchesBufferingPseudoClass):
(WebCore::matchesStalledPseudoClass):
(WebCore::matchesMutedPseudoClass):
(WebCore::matchesVolumeLockedPseudoClass):

  • css/SelectorPseudoClassAndCompatibilityElementMap.in:
  • cssjit/SelectorCompiler.cpp:

(WebCore::SelectorCompiler::JSC_DEFINE_JIT_OPERATION):
(WebCore::SelectorCompiler::addPseudoClassType):

  • html/HTMLMediaElement.cpp:

(WebCore::defaultVolumeLocked):
(WebCore::HTMLMediaElement::HTMLMediaElement):
(WebCore::HTMLMediaElement::parseAttribute):
(WebCore::HTMLMediaElement::prepareForLoad):
(WebCore::HTMLMediaElement::setNetworkState):
(WebCore::HTMLMediaElement::setReadyState):
(WebCore::HTMLMediaElement::setPaused):
(WebCore::HTMLMediaElement::playInternal):
(WebCore::HTMLMediaElement::pauseInternal):
(WebCore::HTMLMediaElement::setMuted):
(WebCore::HTMLMediaElement::setVolumeLocked):
(WebCore::HTMLMediaElement::buffering const):
(WebCore::HTMLMediaElement::stalled const):
(WebCore::HTMLMediaElement::mediaPlayerTimeChanged):

  • html/HTMLMediaElement.h:

(WebCore::HTMLMediaElement::volumeLocked const):

  • testing/Internals.cpp:

(WebCore::Internals::setMediaElementVolumeLocked):

  • testing/Internals.h:
  • testing/Internals.idl:

LayoutTests:
Add support for new pseudo-selectors for media from CSS Selectors Level 4.
https://bugs.webkit.org/show_bug.cgi?id=229431

Reviewed by Eric Carlson.

  • media/media-css-muted-expected.txt: Added.
  • media/media-css-muted.html: Added.
  • media/media-css-playing-paused-expected.txt: Added.
  • media/media-css-playing-paused.html: Added.
  • media/media-css-volume-locked-expected.txt: Added.
  • media/media-css-volume-locked.html: Added.
11:28 AM commit-identifiers edited by Jonathan Bedard
Migrated commit-identifier documentation to … (diff)
11:18 AM Changeset in webkit [281502] by Chris Dumez
  • 3 edits
    11 adds in trunk

Fire a load event for <iframe src="about:blank#foo">
https://bugs.webkit.org/show_bug.cgi?id=228958
<rdar://problem/82035810>

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Import layout test coverage from WPT.

  • web-platform-tests/html/browsers/browsing-the-web/navigating-across-documents/initial-empty-document/initial-content-replacement-expected.txt: Added.
  • web-platform-tests/html/browsers/browsing-the-web/navigating-across-documents/initial-empty-document/initial-content-replacement.html: Added.
  • web-platform-tests/html/browsers/browsing-the-web/navigating-across-documents/initial-empty-document/load-event-iframe-element-expected.txt: Added.
  • web-platform-tests/html/browsers/browsing-the-web/navigating-across-documents/initial-empty-document/load-event-iframe-element.html: Added.
  • web-platform-tests/html/browsers/browsing-the-web/navigating-across-documents/initial-empty-document/load-pageshow-events-iframe-contentWindow-expected.txt: Added.
  • web-platform-tests/html/browsers/browsing-the-web/navigating-across-documents/initial-empty-document/load-pageshow-events-iframe-contentWindow.html: Added.
  • web-platform-tests/html/browsers/browsing-the-web/navigating-across-documents/initial-empty-document/load-pageshow-events-window-open-expected.txt: Added.
  • web-platform-tests/html/browsers/browsing-the-web/navigating-across-documents/initial-empty-document/load-pageshow-events-window-open.html: Added.
  • web-platform-tests/html/browsers/browsing-the-web/navigating-across-documents/initial-empty-document/resources/helpers.js: Added.

(assertNoLoadAndPageshowEvent):

Source/WebCore:

When loading an iframe with src="about:blank#foo", we would fail to fire the load event because we would treat
the navigation as a fragment navigation. The reason for that is that the iframe is initially displaying the
initial empty document, which has URL "about:blank". Because the source and destination URL would be the same
when ignoring fragments, our logic would treat this as a pure fragment navigation. To address this, I have
updated FrameLoader::shouldPerformFragmentNavigation() to special case the initial empty document.

Test: imported/w3c/web-platform-tests/html/browsers/browsing-the-web/navigating-across-documents/initial-empty-document/load-event-iframe-element.html

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::shouldPerformFragmentNavigation):

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

[BigSur wk2 Debug x86] http/tests/inspector/network/resource-timing.html is a flaky failure.
https://bugs.webkit.org/show_bug.cgi?id=229454.

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
10:58 AM Changeset in webkit [281500] by keith_miller@apple.com
  • 3 edits
    1 move in trunk

(r281473) stress/for-in-has-own-property-shouldnt-flush-registers.js failing on Debug
https://bugs.webkit.org/show_bug.cgi?id=229448

Reviewed by Mark Lam.

JSTests:

Fix typo in test name.

  • stress/for-in-in-by-val-should-flush-registers.js: Renamed from JSTests/stress/for-in-in-by-val-shouldnt-flush-registers.js.

Source/JavaScriptCore:

Add missing exception checks.

  • dfg/DFGOperations.cpp:

(JSC::DFG::JSC_DEFINE_JIT_OPERATION):

10:57 AM Changeset in webkit [281499] by Ayumi Kojima
  • 2 edits in trunk/LayoutTests

Removing test expectations for fixed bug [ Win EWS ] fast/forms/* tests are flaky crashing FAULTING_IP: WebKit!WebCore::FontCache::lastResortFallbackFont+ec [C:\cygwin\home\buildbot\worker\Windows-EWS\build\Source\WebCore\platform\graphics\win\FontCacheWin.cpp @ 424].
https://bugs.webkit.org/show_bug.cgi?id=229009

Unreviewed test gardening.

  • platform/win/TestExpectations:
10:47 AM Changeset in webkit [281498] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

REGRESSION (r281473): [ iOS & MacOS ] TestWebKitAPI.ProcessSwap.NavigateToInvalidURL is timing out
https://bugs.webkit.org/show_bug.cgi?id=229447

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

Check that a JS error was thrown instead of checking that the navigation doesn't go through.

  • TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:
10:41 AM Changeset in webkit [281497] by commit-queue@webkit.org
  • 11 edits
    4 copies
    1 move
    2 adds in trunk/LayoutTests

[GLIB] Update baselines after r281422
https://bugs.webkit.org/show_bug.cgi?id=229450

Unreviewed test gardening.

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

  • platform/gtk/css1/text_properties/vertical_align-expected.txt:
  • platform/gtk/css2.1/t100801-c544-valgn-00-a-ag-expected.txt:
  • platform/gtk/editing/selection/3690703-2-expected.txt:
  • platform/gtk/editing/selection/3690703-expected.txt:
  • platform/gtk/editing/selection/3690719-expected.txt:
  • platform/gtk/fast/selectors/018b-expected.txt: Copied from LayoutTests/platform/glib/fast/selectors/018b-expected.txt.
  • platform/gtk/fast/text/capitalize-boundaries-expected.txt:
  • platform/gtk/fast/text/whitespace/020-expected.txt:
  • platform/wpe/css2.1/t100801-c544-valgn-00-a-ag-expected.txt:
  • platform/wpe/editing/selection/3690703-2-expected.txt: Copied from LayoutTests/platform/gtk/editing/selection/3690703-2-expected.txt.
  • platform/wpe/editing/selection/3690703-expected.txt: Copied from LayoutTests/platform/gtk/editing/selection/3690703-expected.txt.
  • platform/wpe/editing/selection/3690719-expected.txt: Copied from LayoutTests/platform/gtk/editing/selection/3690719-expected.txt.
  • platform/wpe/fast/selectors/018b-expected.txt: Renamed from LayoutTests/platform/glib/fast/selectors/018b-expected.txt.
  • platform/wpe/fast/text/capitalize-boundaries-expected.txt:
  • platform/wpe/fast/text/whitespace/020-expected.txt:
9:57 AM Changeset in webkit [281496] by commit-queue@webkit.org
  • 5 edits in trunk/Source/JavaScriptCore

Unreviewed, reverting r281321.
https://bugs.webkit.org/show_bug.cgi?id=229449

causes crashes on ARM64

Reverted changeset:

"Add some offlineasm enhancements."
https://bugs.webkit.org/show_bug.cgi?id=229332
https://commits.webkit.org/r281321

9:29 AM Changeset in webkit [281495] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

ThreadSanitizer: data race in WTF::StringImpl::deref() for WebCore::FormDataElement::EncodedFileData::filename
https://bugs.webkit.org/show_bug.cgi?id=229432

Patch by Alex Christensen <achristensen@webkit.org> on 2021-08-24
Reviewed by Darin Adler.

Call the FormDataElement destructor on the main thread in advanceCurrentStream.

  • platform/network/cf/FormDataStreamCFNet.cpp:

(WebCore::advanceCurrentStream):
(WebCore::createHTTPBodyCFReadStream):

8:05 AM Changeset in webkit [281494] by Russell Epstein
  • 8 edits in branches/safari-612.1.27.0-branch/Source

Versioning.

WebKit-7612.1.27.0.31

6:48 AM Changeset in webkit [281493] by Adrian Perez de Castro
  • 8 edits in trunk/Source

Non-unified build fixes, late August 2021
https://bugs.webkit.org/show_bug.cgi?id=229440

Unreviewed non-unified build fixes.

Source/WebCore:

  • Modules/mediastream/libwebrtc/LibWebRTCDtlsTransportBackend.cpp: Add missing

LibWebRTCProvider.h and JavaScriptCore/ArrayBuffer.h headers.

  • fileapi/ThreadableBlobRegistry.cpp: Add missing PolicyContainer.h header.
  • layout/formattingContexts/inline/InlineFormattingGeometry.cpp: Add missing FontCascade.h

header.

  • layout/formattingContexts/inline/InlineLineBoxVerticalAligner.cpp: Add missing

FontCascade.h, InlineFormattingContext.h, and LayoutBoxGeometry.h headers.

Source/WebKit:

  • NetworkProcess/Classifier/ResourceLoadStatisticsMemoryStore.cpp: Add missing

wtf/SuspendableWorkQueue.h header.

  • NetworkProcess/Classifier/ResourceLoadStatisticsStore.cpp: Ditto.
5:57 AM Changeset in webkit [281492] by ntim@apple.com
  • 6 edits in trunk

Move cancel dialog task to defaultKeyboardEventHandler.
https://bugs.webkit.org/show_bug.cgi?id=228845

Reviewed by Antti Koivisto.

LayoutTests/imported/w3c:

Updated test expectations.

  • web-platform-tests/html/semantics/interactive-elements/the-dialog-element/dialog-keydown-preventDefault-expected.txt:

Source/WebCore:

Test: imported/w3c/web-platform-tests/html/semantics/interactive-elements/the-dialog-element/dialog-keydown-preventDefault.html

Allows preventDefault() on keydown event to prevent cancelation.

Also rename HTMLDialogElement::cancel to HTMLDialogElement::queueCancelTask to reflect better what the function does.

  • html/HTMLDialogElement.cpp:

(WebCore::HTMLDialogElement::queueCancelTask):
(WebCore::HTMLDialogElement::cancel): Deleted.

  • html/HTMLDialogElement.h:
  • page/EventHandler.cpp:

(WebCore::EventHandler::internalKeyEvent):
(WebCore::EventHandler::defaultKeyboardEventHandler):

3:07 AM Changeset in webkit [281491] by commit-queue@webkit.org
  • 5 edits in trunk

REGRESSION(r281305) [GStreamer] fast/mediastream/getDisplayMedia-frame-rate.html timeouts
https://bugs.webkit.org/show_bug.cgi?id=229343

Patch by Philippe Normand <pnormand@igalia.com> on 2021-08-24
Reviewed by Youenn Fablet.

Source/WebCore:

Proxy the video samples from the wrapped mock source to its parent. The test was timing out
because the video samples were never notified to the top level observer in Internals.

  • platform/mediastream/gstreamer/MockRealtimeVideoSourceGStreamer.cpp:

(WebCore::MockDisplayCaptureSourceGStreamer::MockDisplayCaptureSourceGStreamer):
(WebCore::MockDisplayCaptureSourceGStreamer::requestToEnd):
(WebCore::MockDisplayCaptureSourceGStreamer::videoSampleAvailable):

  • platform/mediastream/gstreamer/MockRealtimeVideoSourceGStreamer.h:

LayoutTests:

  • platform/glib/TestExpectations: Test is now passing, in Release at least. Timing out in

Debug but that will be investigated next, there are other mediastream timeouts in Debug.

1:17 AM Changeset in webkit [281490] by ntim@apple.com
  • 11 edits
    29 adds in trunk

Implement inert attribute behind feature flag
https://bugs.webkit.org/show_bug.cgi?id=165279

Reviewed by Chris Dumez.

LayoutTests/imported/w3c:

Import inert/ WPT directory using import-w3c-tests -t web-platform-tests/inert.
WPT revision: https://github.com/web-platform-tests/wpt/commit/f02e38d7a67999683d05579f62b339430c61e4ec

  • resources/import-expectations.json:
  • resources/resource-files.json:
  • web-platform-tests/inert/frame/button.html: Added.
  • web-platform-tests/inert/frame/w3c-import.log: Added.
  • web-platform-tests/inert/inert-does-not-match-disabled-selector.tentative-expected.txt: Added.
  • web-platform-tests/inert/inert-does-not-match-disabled-selector.tentative.html: Added.
  • web-platform-tests/inert/inert-in-shadow-dom.tentative-expected.txt: Added.
  • web-platform-tests/inert/inert-in-shadow-dom.tentative.html: Added.
  • web-platform-tests/inert/inert-inlines.tentative-expected.txt: Added.
  • web-platform-tests/inert/inert-inlines.tentative.html: Added.
  • web-platform-tests/inert/inert-label-focus.tentative-expected.txt: Added.
  • web-platform-tests/inert/inert-label-focus.tentative.html: Added.
  • web-platform-tests/inert/inert-node-is-uneditable.tentative-expected.txt: Added.
  • web-platform-tests/inert/inert-node-is-uneditable.tentative.html: Added.
  • web-platform-tests/inert/inert-node-is-unfocusable.tentative-expected.txt: Added.
  • web-platform-tests/inert/inert-node-is-unfocusable.tentative.html: Added.
  • web-platform-tests/inert/inert-node-is-unselectable.tentative-expected.txt: Added.
  • web-platform-tests/inert/inert-node-is-unselectable.tentative.html: Added.
  • web-platform-tests/inert/inert-on-slots.tentative-expected.txt: Added.
  • web-platform-tests/inert/inert-on-slots.tentative.html: Added.
  • web-platform-tests/inert/inert-retargeting-iframe.tentative-expected.txt: Added.
  • web-platform-tests/inert/inert-retargeting-iframe.tentative.html: Added.
  • web-platform-tests/inert/inert-retargeting.tentative-expected.txt: Added.
  • web-platform-tests/inert/inert-retargeting.tentative.html: Added.
  • web-platform-tests/inert/w3c-import.log: Added.

Source/WebCore:

Tests: imported/w3c/web-platform-tests/inert/frame/button.html

imported/w3c/web-platform-tests/inert/inert-does-not-match-disabled-selector.tentative.html
imported/w3c/web-platform-tests/inert/inert-in-shadow-dom.tentative.html
imported/w3c/web-platform-tests/inert/inert-inlines.tentative.html
imported/w3c/web-platform-tests/inert/inert-label-focus.tentative.html
imported/w3c/web-platform-tests/inert/inert-node-is-uneditable.tentative.html
imported/w3c/web-platform-tests/inert/inert-node-is-unfocusable.tentative.html
imported/w3c/web-platform-tests/inert/inert-node-is-unselectable.tentative.html
imported/w3c/web-platform-tests/inert/inert-on-slots.tentative.html
imported/w3c/web-platform-tests/inert/inert-retargeting-iframe.tentative.html
imported/w3c/web-platform-tests/inert/inert-retargeting.tentative.html

  • dom/Node.cpp:

(WebCore::Node::isInert const):

  • html/HTMLAttributeNames.in:
  • html/HTMLElement.idl:

Source/WTF:

Add runtime InertAttributeEnabled feature flag disabled by default.

  • Scripts/Preferences/WebPreferencesExperimental.yaml:

LayoutTests:

Create iOS baselines.

  • platform/ios-wk2/imported/w3c/web-platform-tests/inert/inert-node-is-uneditable.tentative-expected.txt: Added.
  • platform/ios-wk2/imported/w3c/web-platform-tests/inert/inert-retargeting-iframe.tentative-expected.txt: Added.
  • platform/ios-wk2/imported/w3c/web-platform-tests/inert/inert-retargeting.tentative-expected.txt: Added.

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

Aug 21, 2021:

11:23 PM Changeset in webkit [281393] by Kocsen Chung
  • 7 edits in branches/safari-607-branch/Source

Versioning.

WebKit-7607.3.15

11:22 PM Changeset in webkit [281392] by Kocsen Chung
  • 4 edits in branches/safari-611.3.10.1-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

10:52 PM Changeset in webkit [281391] by Kocsen Chung
  • 8 edits in branches/safari-611.3.10.1-branch/Source

Versioning.

WebKit-7611.3.10.1.7

10:46 PM Changeset in webkit [281390] by Kocsen Chung
  • 8 edits in branches/safari-611.3.10.0-branch/Source

Versioning.

WebKit-7611.4.0.2

10:41 PM Changeset in webkit [281389] by mmaxfield@apple.com
  • 10 edits
    3 adds in trunk

overwriteCodePoint() in createAndFillGlyphPage() is wrong
https://bugs.webkit.org/show_bug.cgi?id=215643
<rdar://problem/67430461>

Reviewed by Alan Bujtas.

Source/WebCore:

The CSS spec says that certain characters have to be invisible. Previously, we were doing this
by just treating these characters as if they were the zero width space character. However, this
is wrong for 2 reasons:

  1. If the primary font supports the desired character but doesn't support the zero width space

character, we'll fallback past it and trigger a download for secondary fonts until
we find one that supports the ZWS character (which the page didn't even ask for!)

  1. Shaping is Turing-complete, and expects that the correct glyphIDs are fed into the shaper.

We can't just arbitrarily swap out glyphIDs before shaping just because we feel like it.

Instead, the solution is to handle these invisible characters after font fallback, and after
shaping. This patch does it just like we handle adding letter-spacing, word-spacing, and
justification after shaping - by iterating over the glyphs output by the shaper and seeing if
any need to be adjusted.

This patch also includes a fix for the situation where the glyph buffer might be left in an
inconsistent state, where the array of glyphs is shorter than the array of characters -
this new codepath added in this patch revealed this existing problem, and fixes it here too.

Test: fast/text/zwj-ligature.html

  • platform/graphics/Font.cpp:

(WebCore::createAndFillGlyphPage):
(WebCore::overrideControlCharacters): Deleted.

  • platform/graphics/GlyphBuffer.h:

(WebCore::GlyphBuffer::glyphAt const):
(WebCore::GlyphBuffer::deleteGlyphWithoutAffectingSize):

  • platform/graphics/WidthIterator.cpp:

(WebCore::WidthIterator::applyCSSVisibilityRules):
(WebCore::WidthIterator::advance):

  • platform/graphics/WidthIterator.h:

Source/WTF:

  • wtf/unicode/CharacterNames.h:

LayoutTests:

  • fast/text/resources/Ahem-GSUB-ligatures.ttf: Added.
  • fast/text/zwj-ligature-expected.html: Added.
  • fast/text/zwj-ligature.html: Added.
  • platform/mac/fast/text/format-control-expected.txt: Progression! A new ligature is formed that wasn't formed before.

Also, this ligature is formed in both Chrome and Firefox, so we match them now.

  • platform/win/TestExpectations:
9:28 PM Changeset in webkit [281388] by Alan Bujtas
  • 4 edits in trunk/Source/WebCore

[LFC][Integration] Do not create an InlineFormattingContext object for constructing display lines and runs
https://bugs.webkit.org/show_bug.cgi?id=228061

Reviewed by Sam Weinig.

We've got all we need in the inlineFormattingState object.

  • layout/integration/LayoutIntegrationInlineContentBuilder.cpp:

(WebCore::LayoutIntegration::InlineContentBuilder::build const):
(WebCore::LayoutIntegration::InlineContentBuilder::createDisplayLineRuns const):
(WebCore::LayoutIntegration::InlineContentBuilder::createDisplayLines const):

  • layout/integration/LayoutIntegrationInlineContentBuilder.h:
  • layout/integration/LayoutIntegrationLineLayout.cpp:

(WebCore::LayoutIntegration::LineLayout::constructContent):

9:24 PM Changeset in webkit [281387] by Alan Bujtas
  • 12 edits in trunk

[LFC][IFC] Add support for -webkit-text-security: disc
https://bugs.webkit.org/show_bug.cgi?id=229047

Reviewed by Antti Koivisto.
Source/WebCore:

The disc glyph affects layout, so let's replace the text before we start measuring the inline content.

  • layout/integration/LayoutIntegrationBoxTree.cpp:

(WebCore::LayoutIntegration::BoxTree::buildTree):

  • layout/integration/LayoutIntegrationCoverage.cpp:

(WebCore::LayoutIntegration::printReason):
(WebCore::LayoutIntegration::canUseForStyle):

  • layout/integration/LayoutIntegrationCoverage.h:

LayoutTests:

Let's dump the actual disc characters.

  • platform/ios-simulator/fast/forms/auto-fill-button/hide-auto-fill-strong-password-viewable-treatment-when-form-is-reset-expected.txt:
  • platform/ios/fast/css/text-overflow-input-expected.txt:
  • platform/ios/fast/forms/basic-inputs-expected.txt:
  • platform/ios/fast/forms/input-value-expected.txt:
  • platform/mac/fast/css/text-overflow-input-expected.txt:
  • platform/mac/fast/forms/auto-fill-button/hide-auto-fill-strong-password-viewable-treatment-when-form-is-reset-expected.txt:
  • platform/mac/fast/forms/basic-inputs-expected.txt:
  • platform/mac/fast/forms/input-value-expected.txt:
8:31 PM Changeset in webkit [281386] by Alan Bujtas
  • 5 edits in trunk

[IFC][Integration] Enable modern line layout for placeholder elements
https://bugs.webkit.org/show_bug.cgi?id=228887

Reviewed by Antti Koivisto.

Source/WebCore:

Apparently placeholders don't do strange things anymore (this check is originated in SLL).

  • layout/integration/LayoutIntegrationCoverage.cpp:

(WebCore::LayoutIntegration::canUseForLineLayoutWithReason):

LayoutTests:

  • platform/ios-wk2/fast/repaint/placeholder-after-caps-lock-hidden-expected.txt:
8:26 PM Changeset in webkit [281385] by pvollan@apple.com
  • 2 edits in trunk/LayoutTests

[Win] The layout test fast/visual-viewport/resize-event-fired-window-resized.html is a flaky timeout
https://bugs.webkit.org/show_bug.cgi?id=229379

Unreviewed test gardening.

  • platform/win/TestExpectations:
6:33 PM Changeset in webkit [281384] by sihui_liu@apple.com
  • 4 edits in trunk/Source

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:
5:26 PM Changeset in webkit [281383] by ysuzuki@apple.com
  • 10 edits in trunk

[JSC] Remove Intl runtime feature flags for already shipped ones
https://bugs.webkit.org/show_bug.cgi?id=229371

Reviewed by Ross Kirsling.

JSTests:

  • stress/intl-datetimeformat-day-period.js:
  • test262/config.yaml:

Source/JavaScriptCore:

Since they are already shipped, we should remove these runtime flags.

  • builtins/DatePrototype.js:

(globalPrivate.toDateTimeOptionsAnyAll):
(globalPrivate.toDateTimeOptionsTimeTime):

  • bytecode/BytecodeIntrinsicRegistry.cpp:

(JSC::BytecodeIntrinsicRegistry::BytecodeIntrinsicRegistry):

  • bytecode/BytecodeIntrinsicRegistry.h:
  • runtime/IntlDateTimeFormat.cpp:

(JSC::toDateTimeOptionsAnyDate):
(JSC::IntlDateTimeFormat::initializeDateTimeFormat):
(JSC::IntlDateTimeFormat::resolvedOptions const):

  • runtime/IntlDateTimeFormatPrototype.cpp:

(JSC::IntlDateTimeFormatPrototype::finishCreation):

  • runtime/OptionsList.h:
4:01 PM Changeset in webkit [281382] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[IFC][Integration] Group non-standard CSS properties
https://bugs.webkit.org/show_bug.cgi?id=228855
<rdar://problem/81880442>

Reviewed by Antti Koivisto.

List of unsupported non-standard CSS properties (consider it a priority list).

  • layout/integration/LayoutIntegrationCoverage.cpp:

(WebCore::LayoutIntegration::canUseForStyle):

3:34 PM Changeset in webkit [281381] by pvollan@apple.com
  • 2 edits in trunk/LayoutTests

[Win] The layout test http/tests/websocket/tests/hybi/inspector/send-and-recieve-debugger.html is timing out
https://bugs.webkit.org/show_bug.cgi?id=229372

Unreviewed test gardening.

  • platform/win/TestExpectations:
3:04 PM Changeset in webkit [281380] by pvollan@apple.com
  • 6 edits in trunk/Source

[Win] Crash under FontCache::lastResortFallbackFont
https://bugs.webkit.org/show_bug.cgi?id=228186

Reviewed by Myles C. Maxfield.

Source/WebCore:

Add null check to resolve crash in FontCache::lastResortFallbackFont. Additionally, return early in BitmapImage::getHBITMAPOfSize
when the bits per pixel in the bitmap is of unexpected size, since that will cause a crash under this function. This can happen
if an event is being handled while already in the Windows paint handler.

  • platform/graphics/win/FontCacheWin.cpp:

(WebCore::FontCache::lastResortFallbackFont):

  • platform/graphics/win/GraphicsContextCGWin.cpp:

(WebCore::CGContextWithHDC):

  • platform/graphics/win/ImageCGWin.cpp:

(WebCore::BitmapImage::getHBITMAPOfSize):

Source/WebKitLegacy/win:

Add null check for bitmapDC. Proceeding without a valid bitmapDC will cause a crash. When painting is being done while already in the Windows paint handler,
we can end up with a bitmapDC which is null.

  • WebView.cpp:

(WebView::paintIntoBackingStore):

12:19 PM Changeset in webkit [281379] by Jonathan Bedard
  • 3 edits
    2 adds in trunk/Tools

[git-webkit] Add pull-request command (Part 3)
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: Bump version, export pull-request.
  • Scripts/libraries/webkitscmpy/webkitscmpy/pull_request.py:

(PullRequest.State):
(PullRequest.create_body): Create pull-request body from commits and comment.
(PullRequest.parse_body): Turn a body from a pull-request into a comment string and partial commits.
(PullRequest.init):
(PullRequest.repr):

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

(TestPullRequest):
(TestPullRequest.test_representation):
(TestPullRequest.test_create_body_single):
(TestPullRequest.test_parse_body_single):
(TestPullRequest.test_create_body_multiple):
(TestPullRequest.test_parse_body_multiple):
(TestPullRequest.test_create_body_empty):
(TestPullRequest.test_parse_body_empty):
(TestPullRequest.test_create_body_comment):
(TestPullRequest.test_parse_body_single):

12:18 PM Changeset in webkit [281378] by mmaxfield@apple.com
  • 8 edits
    3 adds in trunk

[Cocoa] Single characters don't get shaped in the fast text codepath
https://bugs.webkit.org/show_bug.cgi?id=186804

Reviewed by Alan Bujtas.

Source/WebCore:

Previously, single characters weren't shaped in the fast text codepath,
because shaping in the fast text codepath was just for kerning and
ligatures. Kerning didn't need to shape individual characters because
kerning only applies to pairs of characters, and ligatures didn't need
to shape individual characters because two characters are required to
form a ligature. However, now that we want to replace the complex text
codepath with a new-and-improved fast text codepath, we have to perform
all shaping in the fast text codepath, regardless of how many characters
are present.

Test: fast/text/single-character-shaping.html

  • platform/graphics/WidthIterator.cpp:

(WebCore::WidthIterator::applyFontTransforms):
(WebCore::WidthIterator::commitCurrentFontRange):
(WebCore::WidthIterator::advanceInternal):
(WebCore::WidthIterator::shouldApplyFontTransforms const): Deleted.

  • platform/graphics/WidthIterator.h:
  • platform/graphics/coretext/FontCoreText.cpp:

(WebCore::Font::applyTransforms): Keep kerning disabled for single glyphs,
because of performance. This will be able to be removed when rdar://82195405
is fixed.

  • rendering/mathml/RenderMathMLOperator.cpp:

(WebCore::RenderMathMLOperator::computePreferredLogicalWidths):

Tools:

Huge thanks to Laurence Penney to contributing this test font!!!

  • Scripts/webkitpy/common/config/contributors.json:

LayoutTests:

Huge thanks to Laurence Penney to contributing this test font!!!

  • fast/text/resources/UniversTofu-GSUB-rvrn.ttf: Added. The license is Apache 2.0.
  • fast/text/single-character-shaping-expected.html: Added.
  • fast/text/single-character-shaping.html: Added.
11:19 AM Changeset in webkit [281377] by Alan Bujtas
  • 3 edits in trunk/Source/WebCore

[IFC][Integration] Add painting support for vertical text content
https://bugs.webkit.org/show_bug.cgi?id=228940

Reviewed by Antti Koivisto.

Translate the logical layout coordinates to physical paint coordinates by taking the writing mode into account.
(e.g. writing-mode: vertical-rl;

run logical rect: [0, 0][20x18]
in a flipped block box: [10, 10][100x50]
with the paint offset: [8, 8]

translates to: [90, 8][20x18]

)

  • layout/integration/LayoutIntegrationLineLayout.cpp:

(WebCore::LayoutIntegration::LineLayout::paint):
(WebCore::LayoutIntegration::LineLayout::paintTextRunUsingPhysicalCoordinates):

  • layout/integration/LayoutIntegrationLineLayout.h:
11:15 AM Changeset in webkit [281376] by Simon Fraser
  • 17 edits
    1 add in trunk/Source

Use MediaKeySystemRequestIdentifier, rather than mysterious uint64_t values, in WebKit
https://bugs.webkit.org/show_bug.cgi?id=229310

Reviewed by Youenn Fablet.

WebCore already had an ObjectIdentifer<> type for media system key requests, MediaKeySystemRequestIdentifier.
Use it in the WebKit layer.

  • Scripts/webkit/messages.py:

(types_that_cannot_be_forward_declared):
(headers_for_type):

  • UIProcess/MediaKeySystemPermissionRequestManagerProxy.cpp:

(WebKit::MediaKeySystemPermissionRequestManagerProxy::denyRequest):
(WebKit::MediaKeySystemPermissionRequestManagerProxy::grantRequest):
(WebKit::MediaKeySystemPermissionRequestManagerProxy::createRequestForFrame):

  • UIProcess/MediaKeySystemPermissionRequestManagerProxy.h:
  • UIProcess/MediaKeySystemPermissionRequestProxy.cpp:

(WebKit::MediaKeySystemPermissionRequestProxy::MediaKeySystemPermissionRequestProxy):

  • UIProcess/MediaKeySystemPermissionRequestProxy.h:

(WebKit::MediaKeySystemPermissionRequestProxy::create):
(WebKit::MediaKeySystemPermissionRequestProxy::mediaKeySystemID const):

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::requestMediaKeySystemPermissionForFrame):

  • UIProcess/WebPageProxy.h:
  • UIProcess/WebPageProxy.messages.in:
  • WebProcess/EncryptedMedia/MediaKeySystemPermissionRequestManager.cpp:

(WebKit::MediaKeySystemPermissionRequestManager::sendMediaKeySystemRequest):
(WebKit::MediaKeySystemPermissionRequestManager::mediaKeySystemWasGranted):
(WebKit::MediaKeySystemPermissionRequestManager::mediaKeySystemWasDenied):

  • WebProcess/EncryptedMedia/MediaKeySystemPermissionRequestManager.h:
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::mediaKeySystemWasGranted):
(WebKit::WebPage::mediaKeySystemWasDenied):

  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/WebPage.messages.in:
9:17 AM Changeset in webkit [281375] by ysuzuki@apple.com
  • 12 edits
    1 add in trunk

[JSC] Intl.DisplayNames v2
https://bugs.webkit.org/show_bug.cgi?id=227832

Reviewed by Ross Kirsling.

JSTests:

  • stress/intl-displaynames-v2.js: Added.

(shouldBe):
(shouldThrow):
(vm.icuVersion):

  • stress/intl-displaynames.js:

(vm.icuVersion):

  • test262/config.yaml:
  • test262/expectations.yaml:

Source/JavaScriptCore:

This patch implements Intl.DisplayNames v2[1].
Newly added names are calendar names and date time field names.
For the language name, language display option is added.

[1]: https://github.com/tc39/intl-displaynames-v2

  • runtime/CommonIdentifiers.h:
  • runtime/IntlCache.cpp:

(JSC::IntlCache::getFieldDisplayName):

  • runtime/IntlCache.h:
  • runtime/IntlDisplayNames.cpp:

(JSC::IntlDisplayNames::initializeDisplayNames):
(JSC::IntlDisplayNames::of const):
(JSC::IntlDisplayNames::resolvedOptions const):
(JSC::IntlDisplayNames::typeString):
(JSC::IntlDisplayNames::languageDisplayString):

  • runtime/IntlDisplayNames.h:
  • runtime/IntlObject.cpp:

(JSC::isUnicodeLocaleIdentifierType):
(JSC::canonicalizeUnicodeLocaleID):
(JSC::canonicalizeLocaleList):
(JSC::defaultLocale):
(JSC::mapBCP47ToICUCalendarKeyword):
(JSC::mapICUCollationKeywordToBCP47):
(JSC::canonicalizeLanguageTag): Deleted.

  • runtime/IntlObject.h:
7:33 AM Changeset in webkit [281374] by ysuzuki@apple.com
  • 10 edits
    1 add in trunk

[JSC] Intl Locale Info
https://bugs.webkit.org/show_bug.cgi?id=227830

Reviewed by Ross Kirsling.

JSTests:

  • stress/intl-locale-info.js: Added.

(shouldBe):
(throw.new.Error):
(let.enGB.new.Intl.Locale.shouldBe):
(let.l.new.Intl.Locale.shouldBe):

  • test262/config.yaml:

Source/JavaScriptCore:

This patch implements Intl.Locale's extension (Intl Locale Info proposal)[1], which is already stage 3.
Intl.Locale#{calendars,collations,hourCycles,numberingSystems,timeZones} can return array of preferred
configuration for the given locale. And Intl.Locale#textInfo can return text layout direction and Intl.Locale#weekInfo
can return weekday information (e.g. when weekend starts).

[1]: https://github.com/tc39/proposal-intl-locale-info

  • runtime/IntlLocale.cpp:

(JSC::createArrayFromStringVector):
(JSC::IntlLocale::calendars):
(JSC::IntlLocale::collations):
(JSC::IntlLocale::hourCycles):
(JSC::IntlLocale::numberingSystems):
(JSC::IntlLocale::timeZones):
(JSC::IntlLocale::textInfo):
(JSC::IntlLocale::weekInfo):

  • runtime/IntlLocale.h:
  • runtime/IntlLocalePrototype.cpp:

(JSC::JSC_DEFINE_CUSTOM_GETTER):

6:49 AM Changeset in webkit [281373] by Alan Bujtas
  • 3 edits in trunk/Source/WebCore

[IFC][Integration] Do not scan the content for overflowing glyph when line-box-contain is set to glyph
https://bugs.webkit.org/show_bug.cgi?id=228895
<rdar://problem/81651487>

Reviewed by Antti Koivisto.

This is in preparation for removing content scanning completely.

  • layout/integration/LayoutIntegrationCoverage.cpp:

(WebCore::LayoutIntegration::printReason):
(WebCore::LayoutIntegration::canUseForText):
(WebCore::LayoutIntegration::canUseForFontAndText):

  • layout/integration/LayoutIntegrationCoverage.h:
6:42 AM Changeset in webkit [281372] by Alan Bujtas
  • 4 edits in trunk/Source/WebCore

Fix spelling: MidWorkdBreak -> MidWordBreak

Unreviewed.

  • layout/formattingContexts/inline/InlineContentBreaker.cpp:

(WebCore::Layout::InlineContentBreaker::tryBreakingTextRun const):

  • layout/formattingContexts/inline/text/TextUtil.cpp:

(WebCore::Layout::TextUtil::midWordBreak):
(WebCore::Layout::TextUtil::midWorkdBreak): Deleted.

  • layout/formattingContexts/inline/text/TextUtil.h:
6:02 AM Changeset in webkit [281371] by ysuzuki@apple.com
  • 5 edits
    1 add in trunk

[JSC] Extend Intl TimeZoneName Option
https://bugs.webkit.org/show_bug.cgi?id=227831

Reviewed by Ross Kirsling.

JSTests:

  • stress/intl-extended-timezone-names.js: Added.

(shouldBe):
(timeZoneTest):

  • test262/config.yaml:

Source/JavaScriptCore:

https://github.com/tc39/proposal-intl-extend-timezonename

This patch implements Extend Intl TimeZoneName proposal, which adds "shortOffset", "longOffset", "shortGeneric", "longGeneric"
timeZoneName variants.

  • runtime/IntlDateTimeFormat.cpp:

(JSC::IntlDateTimeFormat::setFormatsFromPattern):
(JSC::IntlDateTimeFormat::initializeDateTimeFormat):
(JSC::IntlDateTimeFormat::timeZoneNameString):

  • runtime/IntlDateTimeFormat.h:
5:28 AM Changeset in webkit [281370] by ysuzuki@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

[JSC] Enable String,TypedArray#at
https://bugs.webkit.org/show_bug.cgi?id=229354

Reviewed by Saam Barati.

Enable String and TypedArray's at method.

  • runtime/OptionsList.h:
5:10 AM Changeset in webkit [281369] by ysuzuki@apple.com
  • 11 edits in trunk

[JSC] Enable Array#findLast method
https://bugs.webkit.org/show_bug.cgi?id=229355

Reviewed by Saam Barati.

JSTests:

  • stress/unscopables.js:

Source/JavaScriptCore:

This patch enables Array#findLast and Array#findLastIndex methods.

(JSC::ArrayPrototype::finishCreation):

  • runtime/OptionsList.h:

LayoutTests:

  • inspector/model/remote-object-get-properties-expected.txt:
  • js/Object-getOwnPropertyNames-expected.txt:
  • js/array-unscopables-properties-expected.txt:
  • js/script-tests/Object-getOwnPropertyNames.js:
  • js/script-tests/array-unscopables-properties.js:
12:56 AM Changeset in webkit [281368] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

[GLIB] Do not assume log success in apply-build-revision-to-files
https://bugs.webkit.org/show_bug.cgi?id=229335

Patch by Daniel Kolesa <Daniel Kolesa> on 2021-08-21
Reviewed by Philippe Normand.

If the origin reference does not exist for any reason, this will
fail the build. Since we have no reference point, just assume
unknown like if it wasn't a git repo.

  • glib/apply-build-revision-to-files.py:

(get_build_revision):

12:01 AM Changeset in webkit [281367] by youenn@apple.com
  • 8 edits
    2 adds in trunk

Prevent AudioSession category from moving out of PlayAndRecord too quickly
https://bugs.webkit.org/show_bug.cgi?id=229327
<rdar://81997024>

Reviewed by Eric Carlson.

Source/WebCore:

If category is PlayAndRecord, we stick to PlayAndRecord until audio is no longer playing at which point we
transition to whatever category is most appropriate.
Introduce PlatformMediaSession::isPlaying in addition to canProduceAudio to compute whether audio is being played.

Test: http/tests/media/media-stream/audio-capture-and-category.https.html

  • Modules/webaudio/AudioContext.cpp:

(WebCore::AudioContext::isPlaying const):

  • Modules/webaudio/AudioContext.h:
  • html/HTMLMediaElement.h:
  • platform/audio/PlatformMediaSession.cpp:

(WebCore::PlatformMediaSession::isPlaying const):

  • platform/audio/PlatformMediaSession.h:

(WebCore::PlatformMediaSessionClient::isPlaying const):

  • platform/audio/cocoa/MediaSessionManagerCocoa.mm:

(WebCore::MediaSessionManagerCocoa::updateSessionState):

LayoutTests:

  • http/tests/media/media-stream/audio-capture-and-category.https-expected.txt: Added.
  • http/tests/media/media-stream/audio-capture-and-category.https.html: Added.

Aug 20, 2021:

11:10 PM Changeset in webkit [281366] by commit-queue@webkit.org
  • 2 edits in trunk/LayoutTests

Unreviewed, reverting r281343.
https://bugs.webkit.org/show_bug.cgi?id=229362

caused iOS test failure

Reverted changeset:

"Update baseline for http/tests/websocket/tests/hybi/close-
code-and-reason.html."
https://commits.webkit.org/r281343

10:58 PM Changeset in webkit [281365] by Simon Fraser
  • 3 edits
    2 deletes in trunk/Source/WebKit

Remove AsyncRequest, which is unused
https://bugs.webkit.org/show_bug.cgi?id=229358

Reviewed by Alex Christensen.

  • Shared/AsyncRequest.cpp: Removed.
  • Shared/AsyncRequest.h: Removed.
  • Sources.txt:
  • WebKit.xcodeproj/project.pbxproj:
10:53 PM Changeset in webkit [281364] by ntim@apple.com
  • 2 edits in trunk/Source/WebCore

Walk up stacking contexts in RenderLayerBacking::compositingOpacity
https://bugs.webkit.org/show_bug.cgi?id=229350

Reviewed by Simon Fraser.

Shorter way to do the same thing, since stackingContext() chain is top-layer aware and opacity creates stacking contexts anyway.

  • rendering/RenderLayerBacking.cpp:

(WebCore::RenderLayerBacking::compositingOpacity const):

10:25 PM Changeset in webkit [281363] by Jonathan Bedard
  • 5 edits
    2 adds in trunk/Tools

[git-webkit] Add pull-request command (Part 2)
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/mocks/local/git.py:

(Git.init): Add 'check-ref-format' and 'checkout -b'.
(Git.checkout): Add ability to create branch.

  • Scripts/libraries/webkitscmpy/webkitscmpy/program/init.py:

(main): Add Branch command.

  • Scripts/libraries/webkitscmpy/webkitscmpy/program/branch.py:

(Branch.parser): Allow user to specify engineering branch name.
(Branch.normalize_issue): Turn provided string into eng branch if it isn't already.
(Branch.main): Create eng branch from current checkout state.

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

(TestBranch):
(TestBranch.setUp):
(TestBranch.test_basic_svn):
(TestBranch.test_basic_git):
(TestBranch.test_prompt_git):
(TestBranch.test_invalid_branch):

8:20 PM Changeset in webkit [281362] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[IFC][Integration] canUseForLineLayoutWithReason's establishesInlineFormattingContext should check against inflow content
https://bugs.webkit.org/show_bug.cgi?id=229104

Reviewed by Antti Koivisto.

<div><div style="position: absolute"></div>this is still a inline formatting context</div>
We don't allow to mix inline and block inflow content.
However out-of-flow block level boxes can certainly have inline siblings. canUseForLineLayoutWithReason should check
the content accordingly.

  • layout/integration/LayoutIntegrationCoverage.cpp:

(WebCore::LayoutIntegration::canUseForLineLayoutWithReason):

8:16 PM Changeset in webkit [281361] by Alan Bujtas
  • 3 edits in trunk/Source/WebCore

[IFC][Integration] Walk the box tree to update the replaced content location
https://bugs.webkit.org/show_bug.cgi?id=229105

Reviewed by Antti Koivisto.

Normally there are more runs than entries in the box list. It's more performant to iterate
the box list for the renderer location adjustment.

  • layout/integration/LayoutIntegrationBoxTree.h:

(WebCore::LayoutIntegration::BoxTree::boxAndRendererList):

  • layout/integration/LayoutIntegrationLineLayout.cpp:

(WebCore::LayoutIntegration::LineLayout::constructContent):

7:56 PM Changeset in webkit [281360] by Simon Fraser
  • 20 edits
    1 add in trunk/Source

Use UserMediaRequestIdentifier in WebKit rather than a mysterious uint64_t
https://bugs.webkit.org/show_bug.cgi?id=229308

Reviewed by Youenn Fablet.

Source/WebCore:

Move UserMediaRequestIdentifier to its own header.

  • Headers.cmake:
  • Modules/mediastream/UserMediaRequest.h:
  • WebCore.xcodeproj/project.pbxproj:

Source/WebKit:

Use the existing WebCore::UserMediaRequestIdentifier in WebKit code. We need to pull
it out of the ENABLE(MEDIA_STREAM) #ifdef.

In UserMediaPermissionRequestManagerProxy use a new identifier type, MediaDevicePermissionRequestIdentifier,
which is used to identify pending permission requests (but never send to the web process).

  • Scripts/webkit/messages.py:

(types_that_cannot_be_forward_declared): Sort
(headers_for_type):

  • UIProcess/MediaKeySystemPermissionRequestManagerProxy.h:
  • UIProcess/UserMediaPermissionRequestManagerProxy.cpp:

(WebKit::UserMediaPermissionRequestManagerProxy::denyRequest):
(WebKit::UserMediaPermissionRequestManagerProxy::grantRequest):
(WebKit::UserMediaPermissionRequestManagerProxy::finishGrantingRequest):
(WebKit::UserMediaPermissionRequestManagerProxy::requestUserMediaPermissionForFrame):
(WebKit::UserMediaPermissionRequestManagerProxy::processUserMediaPermissionRequest):
(WebKit::UserMediaPermissionRequestManagerProxy::processUserMediaPermissionInvalidRequest):
(WebKit::UserMediaPermissionRequestManagerProxy::processUserMediaPermissionValidRequest):
(WebKit::UserMediaPermissionRequestManagerProxy::checkUserMediaPermissionForSpeechRecognition):
(WebKit::UserMediaPermissionRequestManagerProxy::getUserMediaPermissionInfo):
(WebKit::UserMediaPermissionRequestManagerProxy::enumerateMediaDevicesForFrame):
(WebKit::generateRequestID): Deleted.

  • UIProcess/UserMediaPermissionRequestManagerProxy.h:
  • UIProcess/UserMediaPermissionRequestProxy.cpp:

(WebKit::UserMediaPermissionRequestProxy::UserMediaPermissionRequestProxy):

  • UIProcess/UserMediaPermissionRequestProxy.h:

(WebKit::UserMediaPermissionRequestProxy::create):
(WebKit::UserMediaPermissionRequestProxy::userMediaID const):

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::requestUserMediaPermissionForFrame):

  • UIProcess/WebPageProxy.h:
  • UIProcess/WebPageProxy.messages.in:
  • WebKit.xcodeproj/project.pbxproj: Some files that were in Sources.txt were missing from the project.
  • WebProcess/MediaStream/UserMediaPermissionRequestManager.cpp:

(WebKit::UserMediaPermissionRequestManager::sendUserMediaRequest):
(WebKit::UserMediaPermissionRequestManager::userMediaAccessWasGranted):
(WebKit::UserMediaPermissionRequestManager::userMediaAccessWasDenied):

  • WebProcess/MediaStream/UserMediaPermissionRequestManager.h:
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::userMediaAccessWasGranted):
(WebKit::WebPage::userMediaAccessWasDenied):

  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/WebPage.messages.in:
7:48 PM Changeset in webkit [281359] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[LFC][Integration] Initialize root box's border and padding values
https://bugs.webkit.org/show_bug.cgi?id=229109

Reviewed by Antti Koivisto.

This is what LFC would normally do.

  • layout/integration/LayoutIntegrationLineLayout.cpp:

(WebCore::LayoutIntegration::LineLayout::layout):
(WebCore::LayoutIntegration::LineLayout::prepareLayoutState):

7:44 PM Changeset in webkit [281358] by Alan Bujtas
  • 4 edits in trunk/Source/WebCore

[LFC][Integration] HTMLTextFormControlElement should use the inline iterator to collect content for wrap=hard
https://bugs.webkit.org/show_bug.cgi?id=228882

Reviewed by Antti Koivisto.

getNextSoftBreak is simply returns the position of the last item on the line unless it's a hard line break.
(endsWithBreak -> previousLineBrokeCleanly -> previousLineBrokeAtBR see https://trac.webkit.org/changeset/6107)

  • html/HTMLTextFormControlElement.cpp:

(WebCore::HTMLTextFormControlElement::valueWithHardLineBreaks const):
(WebCore::getNextSoftBreak): Deleted. line->lineBreakPos() translates to the position where the line breaks within the run.
maximumCaretOffset() returns the same value, though the naming is a bit confusing and probably should be renamed or introduce
something similar on the line iterator.

  • layout/integration/LayoutIntegrationCoverage.cpp:

(WebCore::LayoutIntegration::canUseForLineLayoutWithReason):

6:45 PM Changeset in webkit [281357] by Alan Bujtas
  • 6 edits in trunk

[IFC][Integration] Enable inline level boxes with relative (min/max)width and (min/max)height values
https://bugs.webkit.org/show_bug.cgi?id=229065

Reviewed by Antti Koivisto.

Source/WebCore:

When a block level box's style changes, while we mark the box itself for layout we normally don't
walk the subtree for damaged inline content. Instead during layout, we dirty these individual descendant renderers as needed.
Inline level boxes with relative width/height values are part of this group.
It's also similar to what we do in LegacyLineLayout::layoutLineBoxes.

  • layout/integration/LayoutIntegrationCoverage.cpp:

(WebCore::LayoutIntegration::canUseForChild):

  • rendering/RenderBlockFlow.cpp:

(WebCore::RenderBlockFlow::layoutModernLines):

LayoutTests:

  • platform/ios/fast/frames/onlyCommentInIFrame-expected.txt:
  • platform/mac/fast/frames/onlyCommentInIFrame-expected.txt:
6:13 PM Changeset in webkit [281356] by Alan Bujtas
  • 5 edits in trunk

[IFC][Integration] Enable non-auto line-break values
https://bugs.webkit.org/show_bug.cgi?id=228842

Reviewed by Antti Koivisto.

Source/WebCore:

IFC already supports line-break (except after-white-space).

  • layout/integration/LayoutIntegrationCoverage.cpp:

(WebCore::LayoutIntegration::canUseForStyle):

LayoutTests:

  • TestExpectations: progressions
  • platform/mac/fast/text/trailing-white-space-expected.txt: collapsed trailing whitespace cleanup.
5:54 PM Changeset in webkit [281355] by ysuzuki@apple.com
  • 20 edits in trunk/Source/JavaScriptCore

[JSC] Simplify moveIntsToDouble
https://bugs.webkit.org/show_bug.cgi?id=229351

Reviewed by Saam Barati.

MacroAssembler::moveIntsToDouble required scratch FPRReg. But it was only required for MacroAssemblerX86, and it is already removed.
This means that we no longer need this scratch FPRReg. This change makes a lot of IC code, property access code simpler.
This patch removes that scratch FPRReg, and removed scratch FPRReg of many arithmetic ICs. This patch is important for PutByVal modern
IC since some of property access requires FPRReg because of MacroAssembler::moveIntsToDouble, and it requires adding new m_scratch2FPR
to AccessCase. But after this simplification, this is no longer necessary.

  • assembler/MacroAssemblerARMv7.h:

(JSC::MacroAssemblerARMv7::moveIntsToDouble):

  • assembler/MacroAssemblerMIPS.h:

(JSC::MacroAssemblerMIPS::moveIntsToDouble):

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileValueToInt32):
(JSC::DFG::SpeculativeJIT::compileDoubleRep):
(JSC::DFG::SpeculativeJIT::emitUntypedOrBigIntRightShiftBitOp):
(JSC::DFG::SpeculativeJIT::compileValueAdd):
(JSC::DFG::SpeculativeJIT::compileValueSub):
(JSC::DFG::SpeculativeJIT::compileMathIC):
(JSC::DFG::SpeculativeJIT::compileValueNegate):
(JSC::DFG::SpeculativeJIT::compileValueMul):
(JSC::DFG::SpeculativeJIT::speculateRealNumber):
(JSC::DFG::SpeculativeJIT::compileNormalizeMapKey):

  • dfg/DFGSpeculativeJIT.h:

(JSC::DFG::SpeculativeJIT::unboxDouble):

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileBinaryMathIC):
(JSC::FTL::DFG::LowerDFGToB3::compileCompareStrictEq):

  • jit/AssemblyHelpers.cpp:

(JSC::AssemblyHelpers::emitConvertValueToBoolean):
(JSC::AssemblyHelpers::branchIfValue):

  • jit/AssemblyHelpers.h:

(JSC::AssemblyHelpers::unboxDoubleNonDestructive):
(JSC::AssemblyHelpers::unboxDouble):

  • jit/JITAddGenerator.cpp:

(JSC::JITAddGenerator::generateFastPath):

  • jit/JITAddGenerator.h:

(JSC::JITAddGenerator::JITAddGenerator):

  • jit/JITArithmetic.cpp:

(JSC::JIT::emitRightShiftFastPath):
(JSC::JIT::emitMathICFast):

  • jit/JITDivGenerator.cpp:

(JSC::JITDivGenerator::loadOperand):

  • jit/JITMulGenerator.cpp:

(JSC::JITMulGenerator::generateInline):
(JSC::JITMulGenerator::generateFastPath):

  • jit/JITMulGenerator.h:

(JSC::JITMulGenerator::JITMulGenerator):

  • jit/JITPropertyAccess.cpp:

(JSC::JIT::emitFloatTypedArrayPutByVal):

  • jit/JITPropertyAccess32_64.cpp:

(JSC::JIT::emitGenericContiguousPutByVal):

  • jit/JITRightShiftGenerator.cpp:

(JSC::JITRightShiftGenerator::generateFastPath):

  • jit/JITRightShiftGenerator.h:

(JSC::JITRightShiftGenerator::JITRightShiftGenerator):

  • jit/JITSubGenerator.cpp:

(JSC::JITSubGenerator::generateInline):
(JSC::JITSubGenerator::generateFastPath):

  • jit/JITSubGenerator.h:

(JSC::JITSubGenerator::JITSubGenerator):

5:35 PM Changeset in webkit [281354] by Patrick Angle
  • 6 edits
    2 adds in trunk

Web Inspector: Style rules declared after a rule whose selector has over 8192 components are not shown correctly
https://bugs.webkit.org/show_bug.cgi?id=229218

Reviewed by Devin Rousso.

Source/WebCore:

Test: inspector/css/getMatchedStylesForNodeLargeSelectors.html

CSS rules are limited to 8192 selector components in WebCore, and when more components are present the rule is
split into multiple StyleRule instances. This meant Web Inspector could not reliably resolve a StyleRule
back to its source data, which we do to enable things like editing, as well as to make sure we show the un-split
selector in the Styles sidebar of the Elements tab. Previously, the presences of multiple StyleRules for a
single source data declaration was not accounted for, which meant that rules after the split rules would show a
mix of style information from the actual rule as well as a rule some number of declarations later in the same
style sheet. This is resolved by marking StyleRules that have been split and marking the last of the split
rules. This allows us to then forgo incrementing the index for looking up raw declarations until we encounter
the last rule from a split StyleRule.

  • css/StyleRule.cpp:

(WebCore::StyleRule::StyleRule):
(WebCore::StyleRule::createForSplitting):
(WebCore::StyleRule::splitIntoMultipleRulesWithMaximumSelectorComponentCount const):

  • css/StyleRule.h:
  • Added two members to track rules that are split into multiple rules due to exceeding the 8192 component limit

for selectors in order to determine later which rules are effectively duplicates of each other. We use two
members here, one to track that the rule was split from a larger authored rule (m_isSplitRule), and one to
mark the last rule split from a given rule (m_isLastRuleInSplitRule). The second member prevents situations
where we might otherwise accidentally continue iterating into a list of StyleRule where two large authored
rules that had to be split are present next to each other in an ordered collection of StyleRule.

  • inspector/InspectorStyleSheet.cpp:

(WebCore::selectorsFromSource):

  • Use a vector of CSSSelectors for specificity information since we now collect selectors from potentially

multiple CSSStyleRules.

(WebCore::InspectorStyleSheet::cssStyleRulesSplitFromSameRule):

  • Find any neighboring CSSStyleRules that were split from the same original rule based on the order of rules as

well as the new flags in StyleRule

(WebCore::InspectorStyleSheet::selectorsForCSSStyleRule):

  • Find all selectors for a given CSSStyleRule, including other CSSStyleRules split from the same rule in a

style sheet.

(WebCore::InspectorStyleSheet::buildObjectForSelectorList):

  • Use all CSSSelectors from for the CSSStyleRule and other rules that were split from the same rule in a style

sheet.

(WebCore::InspectorStyleSheet::ruleSourceDataFor const):
(WebCore::InspectorStyleSheet::ruleIndexByStyle const):

  • When looking up an index to get rule source data, make sure we don't overcount split rules.
  • inspector/InspectorStyleSheet.h:

LayoutTests:

Test very large (8192 individual component) selectors to ensure surrounding styles are correctly resolved.

  • inspector/css/getMatchedStylesForNodeLargeSelectors-expected.txt: Added.
  • inspector/css/getMatchedStylesForNodeLargeSelectors.html: Added.
5:19 PM Changeset in webkit [281353] by Eric Hutchison
  • 2 edits in trunk/LayoutTests

Update test expectations for fast/scrolling/ios/overflow-div-scrolling.html.
<rdar://80392444>.

Unreviewed test gardening.

  • platform/ios-wk1/TestExpectations:
5:14 PM Changeset in webkit [281352] by Aditya Keerthi
  • 2 edits in trunk/Source/WebKit

[macCatalyst] Crash when clicking a phone number link
https://bugs.webkit.org/show_bug.cgi?id=229344
rdar://81804638

Reviewed by Tim Horton.

Clicking on a phone number link should present data detection UI.
However, -[WKActionSheetAssistant _elementActionForDDAction:] always
returns nil on Catalyst, resulting in crash when attempting to add the
returned action to an NSArray.

Given that the methods used in _elementActionForDDAction: are available
on Catalyst, fix the crash by ensuring the method does not return nil, and
only making the method available on platforms where ENABLE(DATA_DETECTION)
is defined.

  • UIProcess/ios/WKActionSheetAssistant.mm:

(-[WKActionSheetAssistant _elementActionForDDAction:]):

5:00 PM Changeset in webkit [281351] by Ayumi Kojima
  • 2 edits in trunk/LayoutTests

[ Sky ] editing/input/cocoa/autocorrect-on.html is timing out.
<rdar://82191308>

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
4:22 PM Changeset in webkit [281350] by Eric Hutchison
  • 4 edits in trunk/LayoutTests

Update test expectations for http/tests/media/modern-media-controls/overflow-support/playback-speed-live-broadcast.html.
<rdar://80393995>.

Unreviewed test gardening.

  • platform/ios-14/TestExpectations:
  • platform/ios-wk2/TestExpectations:
  • platform/ios/TestExpectations:
4:01 PM Changeset in webkit [281349] by achristensen@apple.com
  • 11 edits in trunk

Make UIEventAttribution tests less platform dependent
https://bugs.webkit.org/show_bug.cgi?id=229323

Reviewed by John Wilander.

Source/WebKit:

This allows me to run the UIEventAttribution tests on macOS.
It also makes them not time out, which they were doing since r277447.
To accomplish this, I added more test SPI to prevent the network process
suspension message, which was causing the test to time out on the iOS simulator.

  • UIProcess/API/Cocoa/WKWebViewPrivateForTesting.h:
  • UIProcess/API/Cocoa/WKWebViewTesting.mm:

(-[WKWebView _addEventAttributionWithSourceID:destinationURL:sourceDescription:purchaser:reportEndpoint:optionalNonce:]):

  • UIProcess/API/Cocoa/WKWebsiteDataStore.mm:

(+[WKWebsiteDataStore _preventNetworkProcessSuspensionForTesting]):

  • UIProcess/API/Cocoa/WKWebsiteDataStorePrivate.h:
  • UIProcess/API/ios/WKWebViewPrivateForTestingIOS.h:
  • UIProcess/API/ios/WKWebViewTestingIOS.mm:

(-[WKWebView _setUIEventAttributionForTesting:withNonce:]): Deleted.

  • UIProcess/Network/NetworkProcessProxy.cpp:

(WebKit::NetworkProcessProxy::preventSuspensionForTesting):
(WebKit::NetworkProcessProxy::sendPrepareToSuspend):

  • UIProcess/Network/NetworkProcessProxy.h:

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/EventAttribution.mm:

(TestWebKitAPI::exampleURL):
(TestWebKitAPI::runBasicEventAttributionTest):
(TestWebKitAPI::TEST):

3:58 PM Changeset in webkit [281348] by Simon Fraser
  • 2 edits in trunk/Source/WebCore

Outdent WorkerRunLoop class definition
https://bugs.webkit.org/show_bug.cgi?id=229352

Reviewed by Wenson Hsieh.

Just outdent the class.

  • workers/WorkerRunLoop.h:

(WebCore::WorkerRunLoop::terminated const):
(WebCore::WorkerRunLoop::createUniqueId):
(WebCore::WorkerRunLoop::Task::mode const):
(WebCore::WorkerRunLoop::isBeingDebugged const):

3:54 PM Changeset in webkit [281347] by Russell Epstein
  • 1 copy in tags/Safari-612.2.1

Tag Safari-612.2.1.

3:52 PM Changeset in webkit [281346] by Jonathan Bedard
  • 5 edits in trunk/Tools

[git-webkit] Add pull-request command (Part 1)
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/program/init.py:

(main): Sort programs, add aliases.

  • Scripts/libraries/webkitscmpy/webkitscmpy/program/command.py:

(Command): Add alias
(FilteredCommand): Inherit from Command.

3:43 PM Changeset in webkit [281345] by Russell Epstein
  • 1 copy in tags/Safari-612.1.29

Tag Safari-612.1.29.

3:24 PM Changeset in webkit [281344] by Ayumi Kojima
  • 2 edits in trunk/LayoutTests

[ iOS & BigSur Debug wk2 ] compositing/video/video-update-rendering.html is a flakey text failure.
https://bugs.webkit.org/show_bug.cgi?id=223900

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
3:19 PM Changeset in webkit [281343] by Eric Hutchison
  • 2 edits in trunk/LayoutTests

Update baseline for http/tests/websocket/tests/hybi/close-code-and-reason.html.
<rdar://82186597>.

Unreviewed rebaseline.

  • http/tests/websocket/tests/hybi/close-code-and-reason-expected.txt:
3:01 PM Changeset in webkit [281342] by commit-queue@webkit.org
  • 3 edits in trunk/LayoutTests

Unreviewed. Skip failing tests in 32 bits archs
https://bugs.webkit.org/show_bug.cgi?id=229345

Patch by Mikhail R. Gadelha <Mikhail R. Gadelha> on 2021-08-20
Reviewed by Yusuke Suzuki.

  • platform/glib/TestExpectations:
  • platform/wpe/TestExpectations:
3:00 PM Changeset in webkit [281341] by Alan Bujtas
  • 4 edits in trunk/Source/WebCore

[LFC][IFC] Make mid-word breaking surrogate pair aware
https://bugs.webkit.org/show_bug.cgi?id=229026

Reviewed by Antti Koivisto.

Surrogate pairs represent one "character" (U16_IS_LEAD + U16_IS_TAIL).
We should never break them half even when CSS tells us to break the word at arbitrary position.
This is in preparation for removing the U16_IS_SURROGATE check in canUseForCharacter.

  • layout/formattingContexts/inline/InlineContentBreaker.cpp:

(WebCore::Layout::InlineContentBreaker::tryBreakingTextRun const):

  • layout/formattingContexts/inline/text/TextUtil.cpp:

(WebCore::Layout::TextUtil::midWorkdBreak):
(WebCore::Layout::TextUtil::split): Deleted.

  • layout/formattingContexts/inline/text/TextUtil.h:
2:57 PM Changeset in webkit [281340] by jonlee@apple.com
  • 4 edits in trunk/Tools

Teach run-webkit-tests to print a summary of test status
https://bugs.webkit.org/show_bug.cgi?id=200556

Reviewed by Simon Fraser.

Add a new option to print a summary listing test expectation health.
It uses the same expected results as --print-expectations.

To run it: run-webkit-tests --print-summary

You can pass the same arguments as normal run-webkit-tests and it will
return stats based on the tests collected.

It also outputs a .csv file with the data.

  • Scripts/webkitpy/layout_tests/controllers/manager.py:

(Manager.print_expectations): Gather the tests. Note whether the test
is marked as skip, pass, flaky, or fail, the definitions of which are
dictated by model.get_tests_with_result_type(). Output the results to
command line as well as to file.

  • Scripts/webkitpy/layout_tests/run_webkit_tests.py: Add the new option.

It goes through the same path as --print-expectations.

2:56 PM Changeset in webkit [281339] by Jonathan Bedard
  • 4 edits in trunk/Tools

[git-webkit] Forward unknown args to log and blame
https://bugs.webkit.org/show_bug.cgi?id=229342
<rdar://problem/82178743>

Rubber-stamped by Aakash Jain.

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

(main): Both log and blame might be passed options that need to be forwarded to git/svn.

2:28 PM Changeset in webkit [281338] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[LFC][Integration] Use the logical width when passing in the constraint for the inline content
https://bugs.webkit.org/show_bug.cgi?id=228942

Reviewed by Simon Fraser.

Let's pass in the logical width (e.g. block box's height in case of vertical writing direction) to the inline line layout.

  • layout/integration/LayoutIntegrationLineLayout.cpp:

(WebCore::LayoutIntegration::LineLayout::layout):

2:24 PM Changeset in webkit [281337] by Alan Bujtas
  • 6 edits in trunk

[LFC][IFC] Add support for justified non-breaking space
https://bugs.webkit.org/show_bug.cgi?id=228727

Reviewed by Antti Koivisto.

Let's use FontCascade::expansionOpportunityCount to figure out the number of expansion counts in a run.
It helps with finding non-breakable space in an otherwise non-whitespace content (foo&nbsp;bar where the contet forms one run but the because
of the non-breakable _space_ in the middle, it also produces an expansion opportunity).
This patch moves all the expansion handling over to Line::applyRunExpansion as we anyway need to walk the content to find such spaces (i.e. not worth trying to pre-compute them).

  • layout/formattingContexts/inline/InlineLine.cpp:

(WebCore::Layout::Line::applyRunExpansion):
(WebCore::Layout::Line::Run::Run):
(WebCore::Layout::Line::Run::expand):
(WebCore::Layout::Line::Run::visuallyCollapseTrailingWhitespace):
(WebCore::Layout::Line::Run::setExpansionBehavior): Deleted.
(WebCore::Layout::Line::Run::expansionBehavior const): Deleted.
(WebCore::Layout::Line::Run::setHorizontalExpansion): Deleted.

  • layout/formattingContexts/inline/InlineLine.h:

(WebCore::Layout::Line::Run::expansion const):
(WebCore::Layout::Line::Run::setExpansion):
(WebCore::Layout::Line::Run::hasExpansionOpportunity const): Deleted.
(WebCore::Layout::Line::Run::expansionOpportunityCount const): Deleted.

  • layout/integration/LayoutIntegrationCoverage.cpp:

(WebCore::LayoutIntegration::canUseForCharacter):
(WebCore::LayoutIntegration::canUseForText):
(WebCore::LayoutIntegration::canUseForFontAndText):
(WebCore::LayoutIntegration::canUseForStyle):

1:56 PM Changeset in webkit [281336] by Ayumi Kojima
  • 2 edits in trunk/LayoutTests

[ iOS 15 ]editing/selection/ios/hide-selection-in-tiny-contenteditable.html is a flaky failure.
<rdar://82183980>

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
1:50 PM Changeset in webkit [281335] by Alan Bujtas
  • 11 edits in trunk/Source/WebCore

[LFC][IFC] LineBox provides redundant geometry information
https://bugs.webkit.org/show_bug.cgi?id=228050

Reviewed by Sam Weinig.

LineBoxGeometry class provides the line's geometry. This is also in preparation for making LineBox a non-persistent type of structure.

  • layout/formattingContexts/inline/InlineFormattingContext.cpp:

(WebCore::Layout::InlineFormattingContext::computeGeometryForLineContent):

  • layout/formattingContexts/inline/InlineFormattingGeometry.cpp:

(WebCore::Layout::LineBoxBuilder::build):
(WebCore::Layout::LineBoxBuilder::constructAndAlignInlineLevelBoxes):
(WebCore::Layout::LineBoxBuilder::computeLineBoxHeightAndAlignInlineLevelBoxesVertically):
(WebCore::Layout::InlineFormattingGeometry::verticallyAdjustedLineForLineContent const):
(WebCore::Layout::InlineFormattingGeometry::lineBoxForLineContent const): Deleted.

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

(WebCore::Layout::LineBox::LineBox):
(WebCore::Layout::m_rootInlineBox): Deleted.

  • layout/formattingContexts/inline/InlineLineBox.h:

(WebCore::Layout::LineBox::logicalRect const): Deleted.
(WebCore::Layout::LineBox::alignmentBaseline const): Deleted.
(WebCore::Layout::LineBox::setLogicalHeight): Deleted.

  • layout/integration/LayoutIntegrationInlineContentBuilder.cpp:

(WebCore::LayoutIntegration::InlineContentBuilder::createDisplayNonRootInlineBoxes const):

1:44 PM Changeset in webkit [281334] by Wenson Hsieh
  • 2 edits in trunk/Source/WebCore

Followup to <trac.webkit.org/r281288>
https://bugs.webkit.org/show_bug.cgi?id=229269
rdar://81349236

Reviewed by Jer Noble.

Make two minor adjustments after the changes in r281288:

  1. Rename keyPathsForValuesAffectingValueCanBeginTouchBarScrubbing to just

keyPathsForValuesAffectingCanBeginTouchBarScrubbing, since the Objective-C property name is
-canBeginTouchBarScrubbing rather than -valueCanBeginTouchBarScrubbing.

  1. After fixing (1), the implementation of this method is no longer dead code, so we'll to make sure that the

NSSet we create and return contains valid Objective-C objects (i.e. NSString instead of const char*) --
in particular, this affects "contentDuration".

  • platform/mac/WebPlaybackControlsManager.mm:

(+[WebPlaybackControlsManager keyPathsForValuesAffectingCanBeginTouchBarScrubbing]):
(+[WebPlaybackControlsManager keyPathsForValuesAffectingValueCanBeginTouchBarScrubbing]): Deleted.

1:05 PM Changeset in webkit [281333] by clopez@igalia.com
  • 9 edits in trunk

REGRESSION(r274166): [GTK] It broke run-javascriptcore-tests causing all tests to use lot of memory
https://bugs.webkit.org/show_bug.cgi?id=229321

Unreviewed, reverting r274166 because it caused JSC tests to use too much memory.

Reverted changeset:

"[GTK] Reenable -fvisibility=hidden"
https://bugs.webkit.org/show_bug.cgi?id=181916
https://commits.webkit.org/r274166

.:

  • Source/cmake/OptionsGTK.cmake:

Source/WebCore:

Covered by existing tests.

  • PlatformGTK.cmake:
  • dom/EventTarget.cpp:
  • dom/EventTarget.h:

Tools:

  • TestWebKitAPI/PlatformGTK.cmake:
  • TestWebKitAPI/glib/TestExpectations.json:
12:44 PM Changeset in webkit [281332] by Simon Fraser
  • 9 edits in trunk/Source/WebKit

Change the mysterious uint64_t argument to detectDataInAllFrames() to OptionSet<WebCore::DataDetectorType>
https://bugs.webkit.org/show_bug.cgi?id=229304

Reviewed by Tim Horton.

We can encode a OptionSet<WebCore::DataDetectorType> in IPC messages now, so do so for DetectDataInAllFrames().
Also use OptionSet<WebCore::DataDetectorType> in some cases where WebCore::DataDetectorType was being used
to hold a bit set.

  • Shared/API/Cocoa/WKDataDetectorTypesInternal.h:

(fromWKDataDetectorTypes):

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _setupPageConfiguration:]):

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::detectDataInAllFrames):

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

(WebKit::WebPage::detectDataInAllFrames):

  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/WebPage.messages.in:
12:41 PM Changeset in webkit [281331] by dino@apple.com
  • 3 edits
    6 adds in trunk

[WebXR] A session with only one view should cover the full screen
https://bugs.webkit.org/show_bug.cgi?id=229110
<rdar://problem/81940621>

Reviewed by Tim Horton.

Source/WebCore:

If we get into the state with an immersive session and only one view,
we should treat that view as the full width. This situation should never
happen with a real headset, but can be found in testing scenarios.

Test: http/wpt/webxr/xrViewport_singleView_valid.https.html

  • Modules/webxr/WebXRWebGLLayer.cpp:

(WebCore::WebXRWebGLLayer::computeViewports): Add test for only one
view and assume it is the left eye.

LayoutTests:

Add a test that provides an immersive session with only one view.
This required copying a few more things over from the WPT directory.

  • http/wpt/webxr/resources/test-only-api.js: Added.

(loadScript):

  • http/wpt/webxr/resources/webxr_test_constants_single_view.js: Added.
  • http/wpt/webxr/resources/webxr_util.js: Added.
  • http/wpt/webxr/xrViewport_singleView_valid.https-expected.txt: Added.
  • http/wpt/webxr/xrViewport_singleView_valid.https.html: Added.
12:38 PM Changeset in webkit [281330] by Aditya Keerthi
  • 2 edits in trunk/Source/WebCore

[macOS] Crash when painting <meter> with large scale
https://bugs.webkit.org/show_bug.cgi?id=229273
rdar://81219669

Reviewed by Wenson Hsieh.

  • rendering/RenderThemeMac.mm:

(WebCore::RenderThemeMac::paintMeter):

Draw the cell into an image buffer to avoid an assertion beneath WebKit.

12:28 PM Changeset in webkit [281329] by clopez@igalia.com
  • 3 edits in trunk/LayoutTests

[GTK][WPE] Gardening of expected failures

Unreviewed gardening.

  • platform/glib/TestExpectations:
  • platform/gtk/TestExpectations:
11:43 AM Changeset in webkit [281328] by Eric Hutchison
  • 3 edits in trunk/LayoutTests

[iOS wk2, Mac wk2] http/wpt/mediarecorder/video-rotation.html is a flaky failure.
<rdar://76434263>.

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
  • platform/mac-wk2/TestExpectations:
11:25 AM Changeset in webkit [281327] by clopez@igalia.com
  • 4 edits in trunk/Tools

[build.webkit.org] GTK-Linux-64-bit-Release-Skip-Failing-Tests worker should run only layout tests
https://bugs.webkit.org/show_bug.cgi?id=229312

Reviewed by Jonathan Bedard.

Add a new factory for testing only layout tests and make this bot use it.

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

(TestLayoutFactory):
(TestLayoutFactory.init):

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

(TestExpectedBuildSteps):

11:09 AM Changeset in webkit [281326] by ysuzuki@apple.com
  • 6 edits in trunk/Source/JavaScriptCore

[JSC] Remove unnecessary moves in Yarr's sub32 / add32 related code
https://bugs.webkit.org/show_bug.cgi?id=228813

Reviewed by Mark Lam.

This patch adds three operand sub32 to X64 masm so that we can use it in all masms.
We use add32 and sub32 in YarrJIT to remove unnecessary mov instructions in ARM64.

  • assembler/MacroAssembler.h:

(JSC::MacroAssembler::sub32):

  • assembler/MacroAssemblerARMv7.h:

(JSC::MacroAssemblerARMv7::sub32):

  • assembler/MacroAssemblerX86Common.h:

(JSC::MacroAssemblerX86Common::sub32):

  • assembler/testmasm.cpp:

(JSC::testSub32ArgImm):

  • yarr/YarrJIT.cpp:
10:50 AM Changeset in webkit [281325] by ysuzuki@apple.com
  • 4 edits
    1 delete in trunk/Source/JavaScriptCore

[JSC] Remove MacroAssemblerX86
https://bugs.webkit.org/show_bug.cgi?id=229331

Reviewed by Mark Lam.

This patch removes MacroAssemblerX86, which allows simplifying some 32bit MacroAssembler code
in a subsequent patch.

  • CMakeLists.txt:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • assembler/MacroAssembler.h:
  • assembler/MacroAssemblerX86.h: Removed.
10:47 AM Changeset in webkit [281324] by commit-queue@webkit.org
  • 2 edits in trunk/Source/JavaScriptCore

Fix DFG compilation of StringCharAt in 32 bits jsc debug build
https://bugs.webkit.org/show_bug.cgi?id=229293

Patch by Mikhail R. Gadelha <Mikhail R. Gadelha> on 2021-08-20
Reviewed by Keith Miller.

In SpeculativeJIT::compileGetByValOnString the format can be either DataFormatJS
or DataFormatCell so assert either value when compiling it in 32 bits.
It's the same assert already present in the DFG 64 bits counterpart

  • dfg/DFGSpeculativeJIT32_64.cpp:

(JSC::DFG::SpeculativeJIT::compile):

10:31 AM Changeset in webkit [281323] by Patrick Angle
  • 3 edits
    3 adds in trunk

Release assert in ScriptController::canExecuteScripts via WebCore::WebSocket::didReceiveMessage
https://bugs.webkit.org/show_bug.cgi?id=229301

Reviewed by Ryosuke Niwa.

Source/WebCore:

Test: http/tests/websocket/tests/hybi/inspector/send-and-recieve-debugger.html

WebCore::WebSocket::didReceiveMessage and other functions that fire JS events may be called while the
WebSocketChannel is being resumed, but it is not yet safe to evaluate JavaScript during resuming. This was
already accounted for with some events like errors and closing, but it holds true for all events. We should
delay firing these events as well.

  • Modules/websockets/WebSocket.cpp:

(WebCore::WebSocket::didConnect):
(WebCore::WebSocket::didReceiveMessage):
(WebCore::WebSocket::didReceiveBinaryData):

LayoutTests:

  • http/tests/websocket/tests/hybi/inspector/echo-delayed_wsh.py: Added.

(web_socket_do_extra_handshake):
(web_socket_transfer_data):

  • Similar to echo_wsh.py, respond with the provided message when received, but delay the response by 100ms.
  • http/tests/websocket/tests/hybi/inspector/send-and-recieve-debugger-expected.txt: Added.
  • http/tests/websocket/tests/hybi/inspector/send-and-recieve-debugger.html: Added.
10:12 AM Changeset in webkit [281322] by clopez@igalia.com
  • 3 edits in trunk/Tools

[ews-build.webkit.org] Add unit test with the expected build steps for each queue
https://bugs.webkit.org/show_bug.cgi?id=229319

Reviewed by Aakash Jain.

Add a unit test listing all the expected build steps for each queue
like the one added in r281286 for build.webkit.org
Also remove the previous unit tests to not duplicate test functionality.
And replace doble-quotes with single-ones on the test for build.webkit.org

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

(TestExpectedBuildSteps):
(TestExpectedBuildSteps.test_all_expected_steps):
(TestExpectedBuildSteps.test_unnecessary_expected_steps):

  • CISupport/ews-build/factories_unittest.py:

(TestExpectedBuildSteps):
(TestExpectedBuildSteps.setUp):
(TestExpectedBuildSteps.test_all_expected_steps):
(TestExpectedBuildSteps.test_unnecessary_expected_steps):

10:01 AM Changeset in webkit [281321] by mark.lam@apple.com
  • 5 edits in trunk/Source/JavaScriptCore

Add some offlineasm enhancements.
https://bugs.webkit.org/show_bug.cgi?id=229332
rdar://82163923

Reviewed by Keith Miller.

  1. Enhance "include" offlineasm Instruction to always attempt to include an asm file from <build-products>/usr/local/include/WebKitAdditions/ first. If the specified file is not available there, then it will attempt to include the file from the same directory as the current source file (which in practice, means Source/JavaScriptCore/llint/).
  1. Enhance "include" offlineasm Instruction to allow an optional file to be included if it exists. For example, the following offlineasm code:

include? LowLevelInterpreterAdditions

... will attempt to include a file LowLevelInterpreterAdditions.asm. If the
file does not exist, this will be a no-op. Note: the "?" after the "include"
means the include is optional.

  1. Enhanced "emit" offlineasm Instruction to be able to take more than one operand.

"emit" used to just copy the string operand that follows into the generated
LLIntAssembly.h. Now, "emit" can take multiple comma separated operands, and
will concatenate all the operands.

Additionally, "emit" can now take a LocalLabelReference as an operand. For
example, this offline asm code:

emit "b ", .done
...

.done:

... will generate this inline asm code in LLIntAssembly.h:

"b " LOCAL_LABEL_STRING(_offlineasm_someLabel_done) "\n"

This makes it easier to emit branches to local labels.

  1. Also fixed LLInt code alignment for ARM_THUMB2 and ARM64.

Previously, it was aligned using ".align 4" which means aligned on a 4
instruction boundary. Note: the interpretation of .align varies for different
target CPU architectures.

Now, we do the alignment using ".balign 4" which means align on a 4 byte
boundary. This is the intended alignment because ARM64 instruction size is
4 bytes, and ARM_THUMB2 instruction size is either 2 bytes or 4 bytes.
Using .align before was potentially wasting some code space.

  • llint/LowLevelInterpreter.asm:
  • llint/LowLevelInterpreter.cpp:
  • offlineasm/ast.rb:
  • offlineasm/parser.rb:
9:22 AM Changeset in webkit [281320] by Ayumi Kojima
  • 2 edits in trunk/LayoutTests

[ iOS Debug ] animations/unprefixed-events.html is flaky failing.
https://bugs.webkit.org/show_bug.cgi?id=229338

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
9:21 AM Changeset in webkit [281319] by mark.lam@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Reduce StructureID entropy bits to 5 to make room for more StructureIDs.
https://bugs.webkit.org/show_bug.cgi?id=229326
rdar://60141624

Reviewed by Yusuke Suzuki.

  • runtime/StructureIDTable.h:
8:56 AM Changeset in webkit [281318] by mark.lam@apple.com
  • 3 edits in trunk/Source/WTF

Make ptrTagName and tagForPtr WTF_EXPORT_PRIVATE.
https://bugs.webkit.org/show_bug.cgi?id=229328

Reviewed by Yusuke Suzuki.

If ptrTagName and tagForPtr are defined, make them WTF_EXPORT_PRIVATE instead of
static functions. This allows us to call them from the debugger during
interactive debugging sessions.

  • wtf/PtrTag.cpp:

(WTF::tagForPtr):
(WTF::ptrTagName):

  • wtf/PtrTag.h:
8:53 AM Changeset in webkit [281317] by mark.lam@apple.com
  • 2 edits in trunk/Source/WTF

Remove assertIsTagged and assertIsNullOrTagged.
https://bugs.webkit.org/show_bug.cgi?id=229329
rdar://82162851

Reviewed by Yusuke Suzuki.

These assertion utility functions rely on tagged pointers always having non-zero
PAC bits. This is an incorrect assumption. A tagged pointer can have PAC bits
that are completely zero. Hence, these assert functions cannot be made to work
reliably. We should remove them to prevent them from being used, and potentially
resulting in flaky assertion failures that will be hard to debug later.

Note: assertIsNotTagged is fine to keep. It asserts that PAC bits of a pointer
are all 0. As a result, this assertion can have false positives where it may think
a tagged pointer is an untagged pointer. However, this is rare because it is not
common to have 0 PAC bits in tagged pointers. False positives on this assertion
won't result in flaky test failures that will waste our time later. Hence,
keeping the assertion will do more good (it will tend to help us find bugs) than
bad (it will rarely let false positives thru). As a result, I'm opting to not
remove it.

  • wtf/PtrTag.h:

(WTF::assertIsTagged): Deleted.
(WTF::assertIsNullOrTagged): Deleted.

8:30 AM Changeset in webkit [281316] by Alan Coon
  • 1 copy in tags/Safari-612.1.27.3.5

Tag Safari-612.1.27.3.5.

8:27 AM Changeset in webkit [281315] by Alan Coon
  • 4 edits in branches/safari-612.1.27.3-branch/Source/JavaScriptCore

Cherry-pick r281178. rdar://problem/82083485

Add an option for canonicalizePrePostIncrements
https://bugs.webkit.org/show_bug.cgi?id=229211
<rdar://problem/82050126>

Reviewed by Mark Lam.

The current phase has bugs. Let's disable it for now until the bugs
are fixed. See discussion about the bugs I spotted in:
https://bugs.webkit.org/show_bug.cgi?id=228538

  • b3/B3Generate.cpp: (JSC::B3::generateToAir):
  • b3/testb3_3.cpp: (addShrTests):
  • runtime/OptionsList.h:

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

8:24 AM Changeset in webkit [281314] by commit-queue@webkit.org
  • 6 edits in trunk

Unreviewed, reverting r281307.
https://bugs.webkit.org/show_bug.cgi?id=229336

broke layout tests

Reverted changeset:

"[IFC][Integration] Enable non-auto line-break values"
https://bugs.webkit.org/show_bug.cgi?id=228842
https://commits.webkit.org/r281307

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

Versioning.

WebKit-7612.1.27.3.5

6:29 AM Changeset in webkit [281312] by Alan Bujtas
  • 4 edits in trunk/Source/WebCore

[IFC] Undo incorrect InlineTextBox -> LegacyInlineTextBox renaming
https://bugs.webkit.org/show_bug.cgi?id=229081

Reviewed by Antti Koivisto.

  • layout/formattingContexts/inline/text/TextUtil.h:
  • layout/layouttree/LayoutBox.h:

(WebCore::Layout::Box::isInlineTextBox const):

  • layout/layouttree/LayoutInlineTextBox.cpp:

(WebCore::Layout::InlineTextBox::InlineTextBox):

6:21 AM Changeset in webkit [281311] by Antti Koivisto
  • 7 edits
    2 deletes in trunk

[LFC][Integration] Enable full underline support
https://bugs.webkit.org/show_bug.cgi?id=229322

Reviewed by Alan Bujtas.

Source/WebCore:

We can now paint all underlines.

  • layout/integration/LayoutIntegrationCoverage.cpp:

(WebCore::LayoutIntegration::printReason):
(WebCore::LayoutIntegration::canUseForStyle):

  • layout/integration/LayoutIntegrationCoverage.h:
  • layout/integration/LayoutIntegrationInlineContent.cpp:

(WebCore::LayoutIntegration::InlineContent::iteratorForRun const):
(WebCore::LayoutIntegration::InlineContent::iteratorForTextRun const):

  • layout/integration/LayoutIntegrationInlineContent.h:
  • layout/integration/LayoutIntegrationLineLayout.cpp:

(WebCore::LayoutIntegration::LineLayout::paint):

LayoutTests:

Remove a test that just checks we are forcing legacy for underline-position:under.

  • fast/text/simple-line-layout-with-text-underline-position-expected.html: Removed.
  • fast/text/simple-line-layout-with-text-underline-position.html: Removed.
6:18 AM Changeset in webkit [281310] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[IFC][Integration] Enable custom hyphen strings
https://bugs.webkit.org/show_bug.cgi?id=229049

Reviewed by Antti Koivisto.

This was most likely the case of non-primary font handling in SLL. It just works in IFC.

  • layout/integration/LayoutIntegrationCoverage.cpp:

(WebCore::LayoutIntegration::canUseForStyle):

5:56 AM Changeset in webkit [281309] by ntim@apple.com
  • 8 edits in trunk

Initial implementation of inert subtrees
https://bugs.webkit.org/show_bug.cgi?id=110952

Reviewed by Antti Koivisto.

Currently covers:

  • Blocking focus & selecting
  • aria-hidden like behaviour

Hit testing/event retargeting will be covered by https://bugs.webkit.org/show_bug.cgi?id=229330 pending a spec issue

Relevant WPT enabled. More testing coverage will be provided with the inert attribute.

LayoutTests/imported/w3c:

  • web-platform-tests/html/semantics/interactive-elements/the-dialog-element/inert-node-is-unfocusable-expected.txt:
  • web-platform-tests/html/semantics/interactive-elements/the-dialog-element/remove-dialog-should-unblock-document-expected.txt:

Source/WebCore:

  • accessibility/AccessibilityObject.cpp:

(WebCore::AccessibilityObject::isAXHidden const):

  • dom/Element.cpp:

(WebCore::Element::isFocusable const):

  • dom/Node.cpp:

(WebCore::Node::canStartSelection const):
(WebCore::Node::isInert const):

  • dom/Node.h:
5:49 AM Changeset in webkit [281308] by Alan Bujtas
  • 5 edits in trunk/Source/WebCore

[LFC][Integration] line-clamp is an unsupported CSS property
https://bugs.webkit.org/show_bug.cgi?id=228794

Reviewed by Simon Fraser.

Let's bail out on -webkit-line-clamp instead of the presence of a deprecated flex box. While line clamping requires legacy line layout, regular flex item content is fine with either line layout codepaths.

  • layout/integration/LayoutIntegrationCoverage.cpp:

(WebCore::LayoutIntegration::printReason):
(WebCore::LayoutIntegration::canUseForLineLayoutWithReason):

  • layout/integration/LayoutIntegrationCoverage.h:
5:44 AM Changeset in webkit [281307] by Alan Bujtas
  • 6 edits in trunk

[IFC][Integration] Enable non-auto line-break values
https://bugs.webkit.org/show_bug.cgi?id=228842

Reviewed by Antti Koivisto.

Source/WebCore:

IFC already supports line-break.

  • layout/integration/LayoutIntegrationCoverage.cpp:

(WebCore::LayoutIntegration::canUseForStyle):

LayoutTests:

  • TestExpectations: progressions
  • platform/mac/fast/text/trailing-white-space-expected.txt: collapsed trailing whitespace cleanup.
5:34 AM Changeset in webkit [281306] by Alan Bujtas
  • 4 edits in trunk/Source/WebCore

[LFC][IFC] Add support for -webkit-nbsp-mode: space
https://bugs.webkit.org/show_bug.cgi?id=228805

Reviewed by Antti Koivisto.

Treat non-breaking space as regular space.
TextUtil::findNextBreakablePosition already covers the "find the soft wrapping opportunity" part.

e.g.

<div style="-webkit-nbsp-mode: space">1&nbsp2</div>

produces 3 InlineTextItem objects as follows

[1][whitespace][2]

as opposed to just 1 [1non-breakable-space2]

  • layout/formattingContexts/inline/InlineTextItem.cpp:

(WebCore::Layout::moveToNextNonWhitespacePosition):
(WebCore::Layout::InlineTextItem::createAndAppendTextItems):

  • layout/integration/LayoutIntegrationCoverage.cpp:

(WebCore::LayoutIntegration::canUseForStyle):

3:16 AM Changeset in webkit [281305] by Philippe Normand
  • 9 edits in trunk

REGRESSION(r280732) [GStreamer] fast/mediastream/getDisplayMedia-max-constraints1.html and other are failing
https://bugs.webkit.org/show_bug.cgi?id=228941

Reviewed by Youenn Fablet.

Source/WebCore:

The GStreamer mock display capture source is now wrapped in another RealtimeMediaSource in
order to avoid a spurious setSize() call from the RealtimeVideoSource constructor that would
then prevent the mock source to ensure its size matches the intrinsic size.

For the non-mock display capture source, we now ensure the size matches the intrinsic size
whenever the capture settings have changed.

  • platform/mediastream/RealtimeVideoCaptureSource.h:
  • platform/mediastream/gstreamer/GStreamerVideoCaptureSource.cpp:

(WebCore::GStreamerVideoCaptureSource::settingsDidChange):

  • platform/mediastream/gstreamer/MockRealtimeVideoSourceGStreamer.cpp:

(WebCore::MockDisplayCaptureSourceGStreamer::create):
(WebCore::MockDisplayCaptureSourceGStreamer::capabilities):
(WebCore::MockDisplayCaptureSourceGStreamer::settings):

  • platform/mediastream/gstreamer/MockRealtimeVideoSourceGStreamer.h:
  • platform/mock/MockRealtimeMediaSourceCenter.cpp:
  • platform/mock/MockRealtimeVideoSource.cpp:

(WebCore::MockRealtimeVideoSource::generateFrame):

LayoutTests:

  • platform/glib/TestExpectations: Unflag tests now passing.
2:22 AM Changeset in webkit [281304] by Adrian Perez de Castro
  • 4 edits
    2 adds in releases/WebKitGTK/webkit-2.32

Merge r275189 - REGRESSION(r274992): Nullptr crash in FontCache::retrieveOrAddCachedFonts
https://bugs.webkit.org/show_bug.cgi?id=223858
<rdar://75883697>

Reviewed by Darin Adler and Ryosuke Niwa.

Source/WebCore:

Stop using a hash as key in the FontCascadeCache. Instead, use HashTraits and use
FontCascadeCacheKey as key.

Test: fonts/font-cache-crash.html

  • platform/graphics/FontCache.cpp:

(WebCore::FontCache::retrieveOrAddCachedFonts):
(WTF::FontCascadeCacheKeyHash::hash):

  • platform/graphics/FontCache.h:

(WebCore::FontCascadeCacheKey::operator== const):
(WTF::FontCascadeCacheKeyHash::equal):
(WTF::HashTraits<WebCore::FontCascadeCacheKey>::emptyValue):
(WTF::HashTraits<WebCore::FontCascadeCacheKey>::constructDeletedValue):
(WTF::HashTraits<WebCore::FontCascadeCacheKey>::isDeletedValue):

LayoutTests:

Add layout test coverage.

  • fonts/font-cache-crash-expected.txt: Added.
  • fonts/font-cache-crash.html: Added.
2:19 AM Changeset in webkit [281303] by Adrian Perez de Castro
  • 2 edits in releases/WebKitGTK/webkit-2.32/Source/WebCore

Merge r275168 - Make a Ref to HTMLPlugInElement when resolving callback
https://bugs.webkit.org/show_bug.cgi?id=223846

Patch by Ian Gilbert <iang@apple.com> on 2021-03-29
Reviewed by Ryosuke Niwa.

Take a Ref to the HTMLPlugInElement to keep it alive while invoking HTMLPlugInElement::swapRendererTimerFired()

  • html/HTMLPlugInElement.cpp:

(WebCore::HTMLPlugInElement::swapRendererTimerFired):

2:18 AM Changeset in webkit [281302] by Adrian Perez de Castro
  • 2 edits in releases/WebKitGTK/webkit-2.32/Source/WebCore

Merge r275143 - Don't add Frame as an opaque root of DOMWindow
https://bugs.webkit.org/show_bug.cgi?id=223838

Reviewed by Simon Fraser.

Don't add Frame as an opaque root of DOMWindow since we don't use Frame
as an opaque root of any JS wrappers since r248276.

  • bindings/js/JSDOMWindowCustom.cpp:

(WebCore::JSDOMWindow::visitAdditionalChildren):

2:16 AM WebKitGTK/2.32.x edited by Adrian Perez de Castro
(diff)
2:16 AM Changeset in webkit [281301] by Adrian Perez de Castro
  • 2 edits in releases/WebKitGTK/webkit-2.32/Source/WebCore

Merge r275130 - Dirty layout for floating children of inline on full layout
https://bugs.webkit.org/show_bug.cgi?id=223660

Patch by Ian Gilbert <iang@apple.com> on 2021-03-26
Reviewed by Zalan Bujtas.

Avoid consuming an object on an empty line when that object is floating or out-of-flow.

  • rendering/line/BreakingContext.h:

(WebCore::BreakingContext::handleEndOfLine):

2:13 AM WebKitGTK/2.32.x edited by Adrian Perez de Castro
(diff)
1:05 AM Changeset in webkit [281300] by mmaxfield@apple.com
  • 3 edits in trunk/Source/WebCore

GlyphBuffer can become inconsistent with its backing string
https://bugs.webkit.org/show_bug.cgi?id=229064

Reviewed by Alan Bujtas.

This is split out from https://bugs.webkit.org/show_bug.cgi?id=215643.

Before shaping, the glyphs in the GlyphBuffer need to match one-to-one with code units in the string.
We iterate over the string, adding glyphs into the GlyphBuffer, but there was one early "continue"
in the loop that skips the add() call.

Because this patch adds ASSERT()s, this is actually covered by existing tests.

  • platform/graphics/WidthIterator.cpp:

(WebCore::WidthIterator::commitCurrentFontRange):
(WebCore::addToGlyphBuffer):
(WebCore::WidthIterator::advanceInternal):

  • platform/graphics/WidthIterator.h:
1:03 AM Changeset in webkit [281299] by ntim@apple.com
  • 3 edits
    2 adds in trunk

Ensure ancestors with opacity don't affect top layer elements
https://bugs.webkit.org/show_bug.cgi?id=229317

Reviewed by Antti Koivisto.

Test: imported/w3c/web-platform-tests/html/semantics/interactive-elements/the-dialog-element/top-layer-parent-opacity.html

Associated WPT PR: https://github.com/web-platform-tests/wpt/pull/30104

LayoutTests/imported/w3c:

  • web-platform-tests/html/semantics/interactive-elements/the-dialog-element/top-layer-parent-opacity-expected.html: Added.
  • web-platform-tests/html/semantics/interactive-elements/the-dialog-element/top-layer-parent-opacity.html: Added.

Source/WebCore:

  • rendering/RenderLayerBacking.cpp:

(WebCore::RenderLayerBacking::compositingOpacity const):

12:55 AM Changeset in webkit [281298] by youenn@apple.com
  • 15 edits in trunk

Add support for RTCPeerConnection.canTrickleIceCandidates
https://bugs.webkit.org/show_bug.cgi?id=229287

Reviewed by Eric Carlson.

LayoutTests/imported/w3c:

  • web-platform-tests/webrtc/RTCPeerConnection-canTrickleIceCandidates-expected.txt:
  • web-platform-tests/webrtc/RTCPeerConnection-constructor-expected.txt:
  • web-platform-tests/webrtc/idlharness.https.window-expected.txt:

Source/WebCore:

Add support for https://w3c.github.io/webrtc-pc/#dom-rtcpeerconnection-cantrickleicecandidates.
Return null in case connection is closed or setRemoteDescription was never called successfully.
Add binding code to get the value from webrtc backend.
Covered by rebased tests.

  • Modules/mediastream/PeerConnectionBackend.h:
  • Modules/mediastream/RTCPeerConnection.cpp:

(WebCore::RTCPeerConnection::canTrickleIceCandidates const):

  • Modules/mediastream/RTCPeerConnection.h:
  • Modules/mediastream/RTCPeerConnection.idl:
  • Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.cpp:

(WebCore::LibWebRTCMediaEndpoint::canTrickleIceCandidates const):

  • Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.h:
  • Modules/mediastream/libwebrtc/LibWebRTCPeerConnectionBackend.cpp:

(WebCore::LibWebRTCPeerConnectionBackend::canTrickleIceCandidates const):

  • Modules/mediastream/libwebrtc/LibWebRTCPeerConnectionBackend.h:

LayoutTests:

  • webrtc/rtcpeerconnection-error-messages-expected.txt:
12:50 AM Changeset in webkit [281297] by youenn@apple.com
  • 5 edits in trunk/Tools

Remove all WTR output before Content-Type:text/plain for WebRTC tests in case of known excessive logging
https://bugs.webkit.org/show_bug.cgi?id=229188

Reviewed by Jonathan Bedard.

Some logging beneath WebKit is making WebRTC tests flaky.
While we work on the cause of this bug, we can still beef-up our test output clean up steps to handle this logging.
Instead of stripping lines based on a known pattern, which does not always work as per current results,
we can simply remove all logging before the 'Content-Type:text/plain\n' string that WebKitTestRunner is adding before
printing the text generated by the test itself.
We update webkitpy scripts accordingly and add this new clean-up for:

  • tests that have webrtc in their name
  • tests whose output contain some known logging strings like 'LRP' or 'Negotiation String'.

This should hopefully be more robust while not hiding real regressions.

  • Scripts/webkitpy/layout_tests/controllers/single_test_runner.py:

(SingleTestRunner):

  • Scripts/webkitpy/port/base.py:

(Port.logging_detectors_to_strip_text_start):

  • Scripts/webkitpy/port/driver.py:

(DriverOutput.strip_text_start_if_needed):

  • Scripts/webkitpy/port/mac.py:

(MacPort.logging_patterns_to_strip):
(MacPort.logging_detectors_to_strip_text_start):

Note: See TracTimeline for information about the timeline view.