Timeline



Jul 12, 2021:

9:39 PM Changeset in webkit [279864] by Fujii Hironori
  • 3 edits in trunk/Source/WebCore

[curl] Can't finish loading some websites after r271946 started throttling low priority resources
https://bugs.webkit.org/show_bug.cgi?id=227863

Reviewed by Don Olmstead.

NetworkLoadScheduler started throttling low priority resource
loading since r271946. It uses curl_easy_pause to pause the
resource loads. CURLMOPT_MAX_HOST_CONNECTIONS is set to 6 to limit
the number of connections per host. In the certain condition,
curl_multi_fdset can constantly return -1 if 6 handles of the same
host are paused.

This patch changes CurlRequest::start not to actually start the
job if it is suspended.

  • platform/network/curl/CurlRequest.cpp:

(WebCore::CurlRequest::start):
(WebCore::CurlRequest::suspend):
(WebCore::CurlRequest::resume):
(WebCore::CurlRequest::setupTransfer):
(WebCore::CurlRequest::setRequestPaused):

  • platform/network/curl/CurlRequest.h:
7:05 PM Changeset in webkit [279863] by timothy_horton@apple.com
  • 19 edits in trunk/Source/WebKit

Make WebKit's UserInterfaceIdiom operate in terms of the exceptions, not the rule
https://bugs.webkit.org/show_bug.cgi?id=227885
<rdar://problem/79987158>

Reviewed by Wenson Hsieh.

No new tests, no change in behavior.

In general, we consider the macOS/iPad behavior the "normal" WebKit behavior,
and exceptions to that for iPhone or Watch are just that: exceptions.

To bring the code in line with this understanding, make places that
we make decisions based on UIUserInterfaceIdiom take macOS/iPad behavior
as the default, and make iPhone/Watch the special cases.

  • Shared/UserInterfaceIdiom.h:
  • Shared/UserInterfaceIdiom.mm:

(WebKit::currentUserInterfaceIdiomIsPhoneOrWatch):
(WebKit::setCurrentUserInterfaceIdiomIsPhoneOrWatch):
Also, lump iPod Touch in with iPhone when checking based on device class.

(WebKit::updateCurrentUserInterfaceIdiom):
(WebKit::currentUserInterfaceIdiomIsPadOrMac): Deleted.
(WebKit::setCurrentUserInterfaceIdiomIsPadOrMac): Deleted.

  • Shared/WebProcessCreationParameters.cpp:

(WebKit::WebProcessCreationParameters::encode const):
(WebKit::WebProcessCreationParameters::decode):

  • Shared/WebProcessCreationParameters.h:
  • Shared/ios/WebPreferencesDefaultValuesIOS.mm:

(WebKit::defaultTextAutosizingUsesIdempotentMode):

  • UIProcess/API/Cocoa/WKWebViewConfiguration.mm:

(-[WKWebViewConfiguration init]):

  • UIProcess/Cocoa/WebProcessPoolCocoa.mm:

(WebKit::WebProcessPool::platformInitializeWebProcess):
(WebKit::WebProcessPool::registerNotificationObservers):

  • UIProcess/ios/SmartMagnificationController.mm:

(WebKit::SmartMagnificationController::didCollectGeometryForSmartMagnificationGesture):

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKFormInputSession setAccessoryViewCustomButtonTitle:]):
(-[WKContentView endEditingAndUpdateFocusAppearanceWithReason:]):
(-[WKContentView _shouldShowAutomaticKeyboardUIIgnoringInputMode]):
(-[WKContentView _zoomToRevealFocusedElement]):
(-[WKContentView _elementTypeRequiresAccessoryView:]):
(-[WKContentView _updateAccessory]):
(-[WKContentView _shouldUseLegacySelectPopoverDismissalBehavior]):

  • UIProcess/ios/WebDataListSuggestionsDropdownIOS.mm:

(WebKit::WebDataListSuggestionsDropdownIOS::show):

  • UIProcess/ios/WebPageProxyIOS.mm:

(WebKit::desktopClassBrowsingSupported):

  • UIProcess/ios/forms/WKAirPlayRoutePicker.mm:

(-[WKAirPlayRoutePicker show:fromRect:]):

  • UIProcess/ios/forms/WKFileUploadPanel.mm:

(-[WKFileUploadPanel _showPhotoPickerWithSourceType:]):
(-[WKFileUploadPanel _presentMenuOptionForCurrentInterfaceIdiom:]):

  • UIProcess/ios/forms/WKFormSelectControl.mm:

(-[WKFormSelectControl initWithView:]):

  • UIProcess/ios/forms/WKFormSelectPicker.mm:

(-[WKSelectMultiplePicker configurePresentation]):

  • WebProcess/WebProcess.messages.in:
  • WebProcess/cocoa/WebProcessCocoa.mm:

(WebKit::WebProcess::platformInitializeWebProcess):
(WebKit::WebProcess::userInterfaceIdiomDidChange):

6:57 PM Changeset in webkit [279862] by Patrick Angle
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: REGRESSION(r279510): Elements: Computed: an (i) button is shown for computed property traces
https://bugs.webkit.org/show_bug.cgi?id=227892

Reviewed by Devin Rousso.

Property traces need to opt out of displaying the (i) button as they do for things like the colon and semicolon.

  • UserInterface/Views/ComputedStyleSection.css:

(.computed-style-section .property-trace-item .property .name,):

6:47 PM Changeset in webkit [279861] by mark.lam@apple.com
  • 10 edits in trunk/Source/JavaScriptCore

Revert r277027: breaks GC.
https://bugs.webkit.org/show_bug.cgi?id=227888

Reviewed by Saam Barati.

The patch in r277027 to make deletion of GCAwareJITStubRoutines incremental has a
bug: the routine may not be deleted yet by the incremental sweeper before the next
GC cycle, and the GC will not be happy visiting dead cell pointers in that routine.
There is also another bug with the triggering of sweeping.

For now, we're reverting the patch, and will revisit this at a later time.

  • CMakeLists.txt:
  • heap/Heap.cpp:

(JSC::Heap::deleteUnmarkedCompiledCode):
(JSC::Heap::sweepSynchronously):

  • heap/Heap.h:
  • heap/HeapInlines.h:

(JSC::Heap::mayHaveJITStubRoutinesToDelete): Deleted.
(JSC::Heap::deleteDeadJITStubRoutines): Deleted.

  • heap/IncrementalSweeper.cpp:

(JSC::IncrementalSweeper::doSweep):

  • heap/JITStubRoutineSet.cpp:

(JSC::JITStubRoutineSet::deleteUnmarkedJettisonedStubRoutines):

  • heap/JITStubRoutineSet.h:

(JSC::JITStubRoutineSet::deleteUnmarkedJettisonedStubRoutines):
(JSC::JITStubRoutineSet::traceMarkedStubRoutines):
(JSC::JITStubRoutineSet::mayHaveRoutinesToDelete): Deleted.
(JSC::JITStubRoutineSet::notifyHaveRoutinesToDelete): Deleted.

  • jit/GCAwareJITStubRoutine.cpp:

(JSC::GCAwareJITStubRoutine::observeZeroRefCount):

  • jit/JITStubRoutine.h:

(JSC::JITStubRoutine::createSelfManagedRoutine):

6:22 PM Changeset in webkit [279860] by Wenson Hsieh
  • 5 edits
    1 add in trunk/Source

[Cocoa] Turn on USE(OS_STATE) when building with a non-Apple-internal SDK
https://bugs.webkit.org/show_bug.cgi?id=227884

Reviewed by Tim Horton.

Source/WebKit:

Instead of directly importing <os/state_private.h>, introduce a new SPI header (OSStateSPI.h) that simply
includes <os/state_private.h> on internal builds, and falls back to function declarations when using the non-
internal SDK.

  • Platform/spi/Cocoa/OSStateSPI.h: Added.
  • WebKit.xcodeproj/project.pbxproj:

Drive-by fix: additionally restore the minimum objectVersion to 52 rather than 54. This was unintentionally
bumped in r279133.

  • WebProcess/cocoa/WebProcessCocoa.mm:

Source/WTF:

Enable the compile-time flag for all Cocoa builds.

  • wtf/PlatformUse.h:
5:33 PM Changeset in webkit [279859] by Robert Jenner
  • 3 edits in trunk/LayoutTests

REGRESSION (r279806):[iOS Mac wk2 ] fast/canvas/canvas-path-addPath.html is a flaky timeout.
https://bugs.webkit.org/show_bug.cgi?id=227890

Unreviewed test gardening.

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

  • platform/ios-wk2/TestExpectations:
  • platform/mac-wk2/TestExpectations:
4:58 PM Changeset in webkit [279858] by Russell Epstein
  • 1 copy in tags/Safari-612.1.22.11.3

Tag Safari-612.1.22.11.3.

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

[ MacOS & iOS ] animations/leak-document-with-css-animation.html is a flaky failure.
https://bugs.webkit.org/show_bug.cgi?id=226598

Unreviewed test gardening.

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

  • platform/ios-wk2/TestExpectations:
4:43 PM Changeset in webkit [279856] by commit-queue@webkit.org
  • 4 edits in trunk

_WKWebAuthenticationPanel escapes slashes in origin
https://bugs.webkit.org/show_bug.cgi?id=227724
rdar://80232742

Patch by Garrett Davidson <garrett_davidson@apple.com> on 2021-07-12
Reviewed by Kate Cheney.

Source/WebKit:

Tell NSJSONSerialization not to try to escapes slashes, like those in the scheme of an origin.

  • UIProcess/API/Cocoa/_WKWebAuthenticationPanel.mm:

(produceClientDataJson):

Tools:

Update both the makeCredential and getAssertion tests to use an origin.

WebAuthenticationPanel.GetAssertionLA:
This test wasn't using an origin or RPID. Update it to use both. This means both
clientDataJSON and authenticatorData changed. Update both to the new expected
values, using as much plaintext as possible.

WebAuthenticationPanel.MakeCredentialLA:
This test should have caught this issue, but the origin being passed here isn't
valid, because it didn't have a scheme. Per the WebAuthn spec, origins used by
WebAuthn MUST start with "https://". Also update this test to use plaintext
instead of base64 for clientDataJSON.

  • TestWebKitAPI/Tests/WebKitCocoa/_WKWebAuthenticationPanel.mm:

(TestWebKitAPI::TEST):

4:07 PM Changeset in webkit [279855] by Chris Fleizach
  • 5 edits in trunk/Source

AX: Make WebKit observe spatial audio accessibility settings
https://bugs.webkit.org/show_bug.cgi?id=227848

Reviewed by Sam Weinig.

Source/WebKit:

Allow mac and iOS to read from accessibility domains.
Allow mac sandbox to read from com.apple.Accessibility.

  • PluginProcess/mac/com.apple.WebKit.plugin-common.sb.in:
  • UIProcess/Cocoa/PreferenceObserver.mm:

(-[WKPreferenceObserver init]):

Source/WTF:

This flag was using the wrong format for a HAVE setting, so the code wasn't being compiled in.

  • wtf/PlatformHave.h:
3:33 PM Changeset in webkit [279854] by timothy_horton@apple.com
  • 5 edits in trunk

BifurcatedGraphicsContext can't draw text
https://bugs.webkit.org/show_bug.cgi?id=227883

Reviewed by Wenson Hsieh.

Source/WebCore:

API test: BifurcatedGraphicsContextTests.TextInBifurcatedContext

  • platform/graphics/BifurcatedGraphicsContext.cpp:

(WebCore::BifurcatedGraphicsContext::save):
(WebCore::BifurcatedGraphicsContext::restore):
(WebCore::BifurcatedGraphicsContext::paintFrameForMedia):
(WebCore::BifurcatedGraphicsContext::drawText):
(WebCore::BifurcatedGraphicsContext::drawGlyphs):
(WebCore::BifurcatedGraphicsContext::drawEmphasisMarks):
(WebCore::BifurcatedGraphicsContext::drawBidiText):

  • platform/graphics/BifurcatedGraphicsContext.h:

Bifurcate a few methods I somehow missed in the original patch.

Also, call GraphicsContext's implementation of save and restore
from the overridden version, because we confusingly currently use
the top-level context's state stack.

Tools:

  • TestWebKitAPI/Tests/WebCore/cg/BifurcatedGraphicsContextTestsCG.cpp:

(TestWebKitAPI::TEST):
Add a test ensuring that we get DrawGlyphs commands on both contexts.

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

[ iOS ] fast/canvas/canvas-overloads-strokeText.html is a flaky crash.
https://bugs.webkit.org/show_bug.cgi?id=227881.

Unreviewed test gardening.

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

  • platform/ios-wk2/TestExpectations:
2:18 PM Changeset in webkit [279852] by Russell Epstein
  • 1 copy in tags/Safari-612.1.23.1.1

Tag Safari-612.1.23.1.1.

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

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

Unreviewed test gardening.

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

  • platform/mac-wk1/TestExpectations:
1:51 PM Changeset in webkit [279850] by Yijia Huang
  • 8 edits in trunk/Source/JavaScriptCore

Add SMNEGL, UMNEGL, UMADDL, and UMSUBL for ARM64 and select this instruction in Air
https://bugs.webkit.org/show_bug.cgi?id=227857

Reviewed by Robin Morisset.

The previous patches have already added MNEG, MADD, MSUB, SMADDL, and SMSUBL.
This patch completes the corresponding signed or unsigned variants (SMNEGL,
UMNEGL, UMADDL, and UMSUBL) of them. In addition, this patch refactors
the implementation and the associative test cases of MADD, MSUB, and MNEG
to be more readable and maintainable w.r.t their variants.


### SMNEGL/UMNEGL Xd Wn Wm ###


Signed/Unsigned Multiply-Negate Long multiplies two 32-bit register values,
negates the product, and writes the result to the 64-bit destination register.
The equivalent patterns are

d = -(SExt32(n) * SExt32(m)) and d = -(ZExt32(n) * ZExt32(m)) respectively.

Given B3 IR:
Int @0 = S/ZExt32(Trunc(ArgumentReg(%x0)))
Int @1 = S/ZExt32(Trunc(ArgumentReg(%x1)))
Int @2 = Mul(@0, @1)
Int @3 = Neg(@2)
Void@4 = Return(@3, Terminal)

Old optimized AIR
Move32 %x0, %x0, @0
Move32 %x1, %x1, @1
MultiplyNeg %x0, %x1, %x0, @3
Ret %x0, @4

New optimized AIR
MultiplyNegSign/ZeroExtend %x0, %x1, %x0, @3
Ret %x0, @4


### UMADDL Xd Wn Wm Xa ###


Unsigned Multiply-Add Long multiplies two 32-bit register values, adds a 64-bit
register value, and writes the result to the 64-bit destination register. The
equivalent patterns are

d = ZExt32(n) * ZExt32(m) + a or d = a + ZExt32(n) * ZExt32(m)

Given B3 IR:
Int @0 = ZExt32(Trunc(ArgumentReg(%x0)))
Int @1 = ZExt32(Trunc(ArgumentReg(%x1)))
Int @2 = ArgumentReg(%x2)
Int @3 = Mul(@0, @1)
Int @4 = Add(@3, @2)
Void@5 = Return(@4, Terminal)

Old optimized AIR
Move32 %x0, %x0, @1
Move32 %x1, %x1, @2
MultiplyAdd %x0, %x1, %x2, %x0, @4
Ret64 %x0, @5

New optimized AIR
MultiplyAddZeroExtend %x0, %x1, %x2, %x0, @8
Ret %x0, @9


### UMSUBL Xd Wn Wm Xa ###


Unsigned Multiply-Subtract Long multiplies two 32-bit register values, subtracts
the product from a 64-bit register value, and writes the result to the 64-bit
destination register. The equivalent patterns are

d = a - ZExt32(n) * ZExt32(m)

Given B3 IR:
Int @0 = ZExt32(Trunc(ArgumentReg(%x0)))
Int @1 = ZExt32(Trunc(ArgumentReg(%x1)))
Int @2 = ArgumentReg(%x2)
Int @3 = Mul(@0, @1)
Int @4 = Sub(@2, @3)
Void@5 = Return(@4, Terminal)

Old optimized AIR
Move32 %x0, %x0, @1
Move32 %x1, %x1, @2
MultiplySub %x0, %x1, %x2, %x0, @4
Ret64 %x0, @5

New optimized AIR
MultiplySubZeroExtend %x0, %x1, %x2, %x0, @8
Ret %x0, @9

  • assembler/MacroAssemblerARM64.h:

(JSC::MacroAssemblerARM64::multiplyNeg32):
(JSC::MacroAssemblerARM64::multiplyAddZeroExtend32):
(JSC::MacroAssemblerARM64::multiplySubZeroExtend32):
(JSC::MacroAssemblerARM64::multiplyNeg64):
(JSC::MacroAssemblerARM64::multiplyNegSignExtend32):
(JSC::MacroAssemblerARM64::multiplyNegZeroExtend32):

  • assembler/testmasm.cpp:

(JSC::testMultiplyAddSignExtend32):
(JSC::testMultiplyAddZeroExtend32):
(JSC::testMultiplySubSignExtend32):
(JSC::testMultiplySubZeroExtend32):
(JSC::testMultiplyNegSignExtend32):
(JSC::testMultiplyNegZeroExtend32):
(JSC::testMultiplyAddSignExtend32Left): Deleted.
(JSC::testMultiplyAddSignExtend32Right): Deleted.

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

(testMulAddArgsLeft):
(testMulAddArgsRight):
(testMulAddSignExtend32ArgsLeft):
(testMulAddZeroExtend32ArgsLeft):
(testMulAddZeroExtend32ArgsRight):
(testMulSubArgsLeft):
(testMulSubArgsRight):
(testMulSubArgsRight32):
(testMulSubSignExtend32):
(testMulSubZeroExtend32):
(testMulNegArgArg):
(testMulNegArgs):
(testMulNegArgs32):
(testMulNegSignExtend32):
(testMulNegZeroExtend32):
(testMulSubSignExtend32Args): Deleted.

  • b3/testb3_3.cpp:

(addArgTests):

1:46 PM Changeset in webkit [279849] by Jonathan Bedard
  • 4 edits in trunk/Tools

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

Reviewed by Aakash Jain.

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

(RunAPITests): Use Python3 to invoke run-api-tests.

  • CISupport/ews-build/steps.py:

(RunAPITests): Use Python3 to invoke run-api-tests.

  • CISupport/ews-build/steps_unittest.py:
1:45 PM Changeset in webkit [279848] by Truitt Savell
  • 2 edits in trunk/LayoutTests

Updating test expectations for imported/w3c/web-platform-tests/navigation-timing/test_timing_attributes_order.html.
https://bugs.webkit.org/show_bug.cgi?id=227877.

Unreviewed test gardening.

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

  • platform/mac/TestExpectations:
1:45 PM Changeset in webkit [279847] by Simon Fraser
  • 17 edits in trunk/Source

Add a StyleSheets log channel and some logging
https://bugs.webkit.org/show_bug.cgi?id=227880

Reviewed by Alan Bujtas.

Source/WebCore:

Add some logging to help debug issues when pages dynamically build style sheets.

Also make Document loggable.

  • css/CSSStyleSheet.cpp:

(WebCore::CSSStyleSheet::insertRule):
(WebCore::CSSStyleSheet::deleteRule):
(WebCore::CSSStyleSheet::addRule):
(WebCore::CSSStyleSheet::debugDescription const):

  • css/CSSStyleSheet.h:
  • css/StyleSheet.cpp:

(WebCore::operator<<):

  • css/StyleSheet.h:
  • dom/Document.cpp:

(WebCore::Document::debugDescription const):
(WebCore::operator<<):

  • dom/Document.h:
  • html/HTMLLinkElement.cpp:

(WebCore::HTMLLinkElement::process):
(WebCore::HTMLLinkElement::debugDescription const):

  • html/HTMLLinkElement.h:
  • platform/Logging.h:
  • platform/graphics/GraphicsLayer.cpp:

(WebCore::GraphicsLayer::dumpProperties const):

  • platform/graphics/filters/FilterEffect.cpp:

(WebCore::FilterEffect::imageBufferResult):

  • style/StyleScope.cpp:

(WebCore::Style::Scope::addPendingSheet):
(WebCore::Style::Scope::addStyleSheetCandidateNode):
(WebCore::Style::Scope::collectActiveStyleSheets):
(WebCore::Style::Scope::updateActiveStyleSheets):

  • xml/XSLStyleSheet.h:
  • xml/XSLStyleSheetLibxslt.cpp:

(WebCore::XSLStyleSheet::debugDescription const):

Source/WTF:

Make it possible to feed Ref<> and RefPtr<> into TextStream.

  • wtf/text/TextStream.h:

(WTF::operator<<):

1:18 PM Changeset in webkit [279846] by Russell Epstein
  • 8 edits in branches/safari-612.1.22.11-branch/Source

Versioning.

WebKit-7612.1.22.11.3

12:05 PM Changeset in webkit [279845] by sbarati@apple.com
  • 4 edits in trunk/JSTests

Run some tests for fewer iterations to prevent test timeouts
https://bugs.webkit.org/show_bug.cgi?id=227879

Reviewed by Mark Lam.

  • microbenchmarks/get-by-val-negative-array-index.js:
  • microbenchmarks/memcpy-typed-loop-small.js:
  • microbenchmarks/put-by-val-negative-array-index.js:
11:56 AM Changeset in webkit [279844] by clopez@igalia.com
  • 2 edits in trunk/Tools

[GTK] Add a new GTK layout tester bot to build.webkit.org that runs with --skip-failing-tests switch
https://bugs.webkit.org/show_bug.cgi?id=227744

Reviewed by Jonathan Bedard.

On the EWS the layout tests run with this switch --skip-failing-tests
which changes the order in which tests are run (those expected to fail
are not scheduled). I think this may be causing different results on
other tests (like unexpected failures or unexpected flakies).
Having a bot in build.webkit.org running with this switch will help
to detect and garden those cases.

  • CISupport/build-webkit-org/config.json:
11:52 AM Changeset in webkit [279843] by Adrian Perez de Castro
  • 1 copy in releases/WPE WebKit/webkit-2.32.2

WPE WebKit 2.32.2

11:51 AM Changeset in webkit [279842] by Adrian Perez de Castro
  • 4 edits in releases/WebKitGTK/webkit-2.32

Unreviewed. Update OptionsWPE.cmake and NEWS for the 2.32.2 release

.:

  • Source/cmake/OptionsWPE.cmake: Bump version numbers.

Source/WebKit:

  • wpe/NEWS: Add release notes for 2.32.2
11:08 AM Changeset in webkit [279841] by Russell Epstein
  • 8 edits in branches/safari-612.1.23.1-branch/Source

Versioning.

WebKit-7612.1.23.1.1

11:06 AM Changeset in webkit [279840] by Chris Dumez
  • 3 edits in trunk/Source/WebKit

Unreviewed, reverting r279835.

Newly added assertions are wrong

Reverted changeset:

"Regression(r279601) ProcessAssertion may get destroyed on a
background thread"
https://bugs.webkit.org/show_bug.cgi?id=227875
https://commits.webkit.org/r279835

11:02 AM Changeset in webkit [279839] by sbarati@apple.com
  • 2 edits in trunk/JSTests

stress/wasm-loop-consistency.js should require the --useExecutableAllocationFuzz=false JSC option
https://bugs.webkit.org/show_bug.cgi?id=227876

Reviewed by Mark Lam.

  • stress/wasm-loop-consistency.js:
10:59 AM Changeset in webkit [279838] by Chris Dumez
  • 269 edits
    1 copy
    8 moves
    816 adds
    27 deletes in trunk/LayoutTests

Resync content-security-policy web-platform-tests from upstream
https://bugs.webkit.org/show_bug.cgi?id=227651

Reviewed by Sam Weinig.

LayoutTests/imported/w3c:

Resync content-security-policy web-platform-tests from upstream 2c19d6ee62676ac90146.

  • resources/import-expectations.json:
  • resources/resource-files.json:
  • web-platform-tests/content-security-policy/*: Updated.
  • web-platform-tests/reporting/*: Imported.

LayoutTests:

10:54 AM Changeset in webkit [279837] by Russell Epstein
  • 1 copy in branches/safari-612.1.23.1-branch

New branch.

10:48 AM Changeset in webkit [279836] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebInspectorUI

Unreviewed, reverting r279493.
https://bugs.webkit.org/show_bug.cgi?id=227878

Web Inspector: Can't reveal local overrides in the sidebar if
lots of scripts are visible

Reverted changeset:

"Web Inspector: [Regression: r279271] Sources: Breakpoints
section in navigation sidebar disappears when Web Inspector
becomes taller than 650px"
https://bugs.webkit.org/show_bug.cgi?id=227597
https://commits.webkit.org/r279493

10:26 AM Changeset in webkit [279835] by Chris Dumez
  • 3 edits in trunk/Source/WebKit

Regression(r279601) ProcessAssertion may get destroyed on a background thread
https://bugs.webkit.org/show_bug.cgi?id=227875
<rdar://76972252>

Reviewed by Geoffrey Garen.

r279601 added an internal WorkQueue to ProcessAssertion, so that we could acquire the RunningBoard assertion
asynchronously on the background queue. When dispatching to the background queue, we capture |protectedThis|,
which means that ProcessAssertion may now get destroyed on the background queue. ProcessAssertion is a main
thread object and destroying it on a non-main thread can lead to crashes.

  • UIProcess/ProcessAssertion.h:
  • UIProcess/ios/ProcessAssertionIOS.mm:

(WebKit::ProcessAssertion::ProcessAssertion):
(WebKit::ProcessAssertion::~ProcessAssertion):

10:23 AM Changeset in webkit [279834] by Russell Epstein
  • 8 edits in branches/safari-612.1.23-branch/Source

Versioning.

WebKit-7612.1.23.1

10:10 AM Changeset in webkit [279833] by jer.noble@apple.com
  • 5 edits in trunk

[Cocoa] Incorrect deprecation declaration for -[WKWebView closeAllMediaPresentations:]
https://bugs.webkit.org/show_bug.cgi?id=227860
<rdar://80376777>

Reviewed by Sam Weinig.

Source/WebKit:

In r277645, we added a deprecation declaration for -closeAllMediaPresentations:completion, but
that API was never shipped in a release. The actual shipped API, -closeAllMediaPresentations,
was removed entirely, leading to bincompat crashes when binaries built against older SDKs are
run against newer OSs.

Correct the deprecated API declaration, and re-add support for -closeAllMediaPresentations.

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

(-[WKWebView closeAllMediaPresentations]):

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/WKWebViewCloseAllMediaPresentations.mm:

(TEST):

10:08 AM Changeset in webkit [279832] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

Unreviewed, partial revert of r279661 to address crashes on iOS Debug.

  • page/DOMWindow.cpp:

(WebCore::DOMWindow::removeAllEventListeners):

9:25 AM Changeset in webkit [279831] by Truitt Savell
  • 2 edits in trunk/LayoutTests

[BigSur Release wk2 ]fullscreen/full-screen-remove-children.html is a flaky crash.
https://bugs.webkit.org/show_bug.cgi?id=227874.

Unreviewed test gardening.

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

  • platform/mac-wk2/TestExpectations:
9:15 AM Changeset in webkit [279830] by Wenson Hsieh
  • 11 edits
    2 adds in trunk

[watchOS] Make a few additional adjustments to support system minimum layout margins
https://bugs.webkit.org/show_bug.cgi?id=227859
rdar://80113612

Reviewed by Tim Horton.

Source/WebCore:

Reduce the default minimum viewport scale on watchOS to avoid horizontal scrolling when loading wide fixed-
viewport-width web content. See WebKit ChangeLog for more details.

  • page/ViewportConfiguration.cpp:

(WebCore::platformDeviceWidthOverride):
(WebCore::platformMinimumScaleForWebpage):
(WebCore::shouldOverrideShrinkToFitArgument):
(WebCore::ViewportConfiguration::nativeWebpageParametersWithShrinkToFit):
(WebCore::ViewportConfiguration::webpageParameters):

Source/WebKit:

Make a couple of minor adjustments to deal with the fact that -contentInset includes system content insets
(specifically, -_contentScrollInset) on watchOS, due to method swizzling that happens in PepperUICore. See
changes below for more detail.

Test: fast/viewport/watchos/viewport-with-system-minimum-layout-margins.html

  • UIProcess/API/ios/WKWebViewIOS.mm:

(-[WKWebView _computedContentInset]):

Only apply -safeAreaInsets on top of -contentInset when computing the total scroll view content inset on
watchOS (as opposed to applying both -safeAreaInsets and -_contentScrollInset); this is because
-contentInset on watchOS is actually equivalent to -_effectiveContentInset on other iOS-family platforms, so
additionally adding -_contentScrollInset here would result in the scroll content inset being double-counted.

  • UIProcess/ios/WKScrollView.mm:

(-[WKScrollView setContentInset:]):
(-[WKScrollView _setContentScrollInsetInternal:]):
(-[WKScrollView _updateContentScrollInset]):

In the case where the WebKit client explicitly sets the scroll view's content insets using `-[WKScrollView
setContentInset:], set a flag (_contentInsetWasExternallyOverridden`) and immediately revert any internally
specified -_contentScrollInset on WKScrollView. Due to the swizzled implementation of `-[UIScrollView
contentInset] described above, it's practically impossible for any client to use -setContentInset:` correctly
when there is a nonzero -_contentScrollInset on watchOS, so preferable to simply get out of the way of the
client in this scenario.

In the context of _SFNanoBrowserViewController, this ensures that scroll view content inset adjustment logic in
Safari doesn't inadvertently cause horizontal content insets to increase by -_contentScrollInset every time
-[WKScrollView setContentInset:] is invoked by the client.

Tools:

Add support for simulating arbitrary horizontal (trailing and leading) values for -systemMinimumLayoutMargin
in WebKitTestRunner, via a new "horizontalSystemMinimumLayoutMargin" test option. By default, this is 0.

  • WebKitTestRunner/TestOptions.cpp:

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

  • WebKitTestRunner/TestOptions.h:

(WTR::TestOptions::horizontalSystemMinimumLayoutMargin const):

  • WebKitTestRunner/ios/PlatformWebViewIOS.mm:

(-[PlatformWebViewController systemMinimumLayoutMargins]):

Override this UIViewController method and replace the leading and trailing layout margin values with the values
from test options.

(WTR::PlatformWebView::PlatformWebView):

  • WebKitTestRunner/ios/TestControllerIOS.mm:

(WTR::TestController::platformResetStateToConsistentValues):

Additionally make a slight adjustment here to avoid calling -setContentInset on the scroll view in between
tests if the content insets aren't changing. This is needed in order for the new layout test to work on watchOS.

LayoutTests:

Add a new layout test that uses the new test option to verify that nonzero horizontal system minimum layout
margins shrink the width of the viewport on watchOS (this test also disables watchOS device adaptations and uses
a device-width viewport with initial-scale=1 such that we can simply check the value of innerWidth).

  • fast/viewport/watchos/viewport-with-system-minimum-layout-margins-expected.txt: Added.
  • fast/viewport/watchos/viewport-with-system-minimum-layout-margins.html: Added.
9:14 AM Changeset in webkit [279829] by commit-queue@webkit.org
  • 12 edits
    2 adds in trunk

AX: Add ARIA role "image" as a new role, and leave "img" as a synonym
https://bugs.webkit.org/show_bug.cgi?id=224615

Patch by Tyler Wilcock <Tyler Wilcock> on 2021-07-12
Reviewed by Chris Fleizach.

Source/WebCore:

Test: accessibility/image-role-is-synonomous-with-img-role.html

  • accessibility/AccessibilityObject.cpp:

(WebCore::initializeRoleMap):
Add "image" ARIA role as a synonym for the "img" ARIA role, both of
which map to the AccessibilityRole::Image WebCore representation.

Also hardcode the ARIA reverse role map to return "image" for
the AccessibilityRole::Image key.

LayoutTests:

The "image" role is replacing the "img" role (though "img" is not
going away), so "image" should be returned from computedRoleString.

  • accessibility/image-role-is-synonomous-with-img-role-expected.txt: Added.
  • accessibility/image-role-is-synonomous-with-img-role.html: Added.
  • accessibility/roles-computedRoleString-expected.txt:
  • accessibility/roles-computedRoleString.html:
  • inspector/dom/getAccessibilityPropertiesForNode-expected.txt:
  • platform/glib/accessibility/roles-computedRoleString-expected.txt:
  • platform/gtk/accessibility/gtk/xml-roles-exposed-expected.txt:
  • platform/gtk/accessibility/image-link-expected.txt:
  • platform/gtk/inspector/dom/getAccessibilityPropertiesForNode-expected.txt:
  • platform/mac/accessibility/roles-computedRoleString-expected.txt:
  • platform/wpe/accessibility/image-link-expected.txt:

All the tests in this group have been updated to expect "image"
instead of "img".

8:41 AM Changeset in webkit [279828] by commit-queue@webkit.org
  • 2 edits in trunk/LayoutTests

[GTK] media/playlist-inherits-user-gesture.html is timing out
https://bugs.webkit.org/show_bug.cgi?id=198118

Unreviewed test gardening, this test passes after r227404.

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

  • platform/glib/TestExpectations:
8:23 AM Changeset in webkit [279827] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebKit

[GTK] Touch navigation gesture triggers kinetic scrolling when cancelling
https://bugs.webkit.org/show_bug.cgi?id=227701

Patch by Alexander Mikhaylenko <Alexander Mikhaylenko> on 2021-07-12
Reviewed by Michael Catanzaro.

Make sure an event that has finished a navigation swipe gesture isn't propagated
to the page triggering kinetic scrolling.

Move the navigation swipe ending from drag-end to swipe signal handler, since
that's where kinetic scrolling is handled and we can stop it.

  • UIProcess/API/gtk/WebKitWebViewBase.cpp:

(webkitWebViewBaseTouchDragEnd):
(webkitWebViewBaseTouchSwipe):

  • UIProcess/gtk/ViewGestureControllerGtk.cpp:

(WebKit::ViewGestureController::SwipeProgressTracker::handleEvent):

7:26 AM Changeset in webkit [279826] by commit-queue@webkit.org
  • 12 edits in trunk/Source

[GTK][WPE] Support drawing scrollbar corner
https://bugs.webkit.org/show_bug.cgi?id=227868

Patch by Alexander Mikhaylenko <Alexander Mikhaylenko> on 2021-07-12
Reviewed by Michael Catanzaro.

Source/WebCore:

With dark scrollbars supported, the lack of scroll corner for non-overlay
scrollbars becomes very noticeable. Implement it.

To properly draw them, we need to know whether scrollbars are dark, and whether
the vertical scrollbar is on the left. Hence, pass ScrollableArea to
paintScrollCorner() so we can query it.

Only cover non-system scrollbars, it would take considerable amount of work to
make it work for system as well.

  • platform/ScrollView.cpp:

(WebCore::ScrollView::paintScrollCorner):

  • platform/ScrollbarTheme.h:

(WebCore::ScrollbarTheme::paintScrollCorner):
(WebCore::ScrollbarTheme::defaultPaintScrollCorner):

  • platform/adwaita/ScrollbarThemeAdwaita.cpp:

(WebCore::ScrollbarThemeAdwaita::paintScrollCorner):

  • platform/adwaita/ScrollbarThemeAdwaita.h:
  • platform/mac/ScrollbarThemeMac.h:
  • platform/mac/ScrollbarThemeMac.mm:

(WebCore::ScrollbarThemeMac::paintScrollCorner):

  • rendering/RenderLayerScrollableArea.cpp:

(WebCore::RenderLayerScrollableArea::paintScrollCorner):

  • rendering/RenderScrollbarTheme.cpp:

(WebCore::RenderScrollbarTheme::paintScrollCorner):

  • rendering/RenderScrollbarTheme.h:

Source/WebKit:

  • WebProcess/Plugins/PDF/PDFPlugin.mm:

(WebKit::PDFPlugin::paintControlForLayerInContext):
Update the paintScrollCorner() call.

6:05 AM Changeset in webkit [279825] by clopez@igalia.com
  • 4 edits
    1 delete in trunk

Unreviewed, reverting r279778.

It caused unexpected text diffs on http/tests/storageAccess
tests

Reverted changeset:

"[GTK][WPE][libsoup] Test imported/w3c/web-platform-
tests/cookies/samesite/about-blank-toplevel.https.html crashes
since it was imported"
https://bugs.webkit.org/show_bug.cgi?id=227819
https://commits.webkit.org/r279778

6:02 AM Changeset in webkit [279824] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

[GTK][WPE] Match Adwaita scrollbars more closely
https://bugs.webkit.org/show_bug.cgi?id=227870

Patch by Alexander Mikhaylenko <Alexander Mikhaylenko> on 2021-07-12
Reviewed by Michael Catanzaro.

Adjust the dimensions to match GTK as closely as possible.

  • platform/adwaita/ScrollbarThemeAdwaita.cpp:

(WebCore::ScrollbarThemeAdwaita::paint):

4:47 AM Changeset in webkit [279823] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebCore

[GTK] Adwaita entries should follow the system cursor blink settings
https://bugs.webkit.org/show_bug.cgi?id=227856

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

Get the caret blink interval from GtkSettings if available, same as it was done
for the GTK theme before.

  • rendering/RenderThemeAdwaita.cpp:

(WebCore::RenderThemeAdwaita::caretBlinkInterval const):

  • rendering/RenderThemeAdwaita.h:
2:30 AM Changeset in webkit [279822] by imanol
  • 16 edits
    1 copy
    12 moves
    3 adds in trunk/Source/WebKit

Cross platform compilation of PlatformXRSystem and PlatformXRSystemProxy
https://bugs.webkit.org/show_bug.cgi?id=226919

Reviewed by Dean Jackson.

PlatformXRSystem and PlatformXRSystemProxy are only compiled in Cocoa platform while WPE uses OpenXR,
which only has code in WebCore. In order to run WebKit based WebXR on non-cocoa VR Standalone devices
we also need to split the code and IPC messages between UIProcess/WebProcess.

The existing PlatformXRSystem/PlatformXRSystemProxy pattern fits very well to the VR standalone scenario.
This patch ensures that the existing code can be used in more platforms other than Cocoa.

Tested by WebXR WPT.

  • CMakeLists.txt:
  • DerivedSources.make:
  • PlatformMac.cmake:
  • Shared/XR/XRDeviceIdentifier.h: Renamed from Source/WebKit/Shared/Cocoa/XRDeviceIdentifier.h.
  • Shared/XR/XRDeviceInfo.cpp: Renamed from Source/WebKit/Shared/Cocoa/XRDeviceInfo.mm.
  • Shared/XR/XRDeviceInfo.h: Renamed from Source/WebKit/Shared/Cocoa/XRDeviceInfo.h.
  • Shared/XR/XRDeviceProxy.cpp: Renamed from Source/WebKit/Shared/Cocoa/XRDeviceProxy.mm.
  • Shared/XR/XRDeviceProxy.h: Renamed from Source/WebKit/Shared/Cocoa/XRDeviceProxy.h.
  • Shared/mac/MediaFormatReader/MediaSampleCursor.cpp: Add include to fix compilation error
  • Sources.txt:
  • SourcesCocoa.txt:
  • UIProcess/Cocoa/PlatformXRCoordinator.mm: Copied from Source/WebKit/WebProcess/cocoa/PlatformXRSystemProxy.messages.in.
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::didAttachToRunningProcess):
(WebKit::WebPageProxy::resetState):

  • UIProcess/WebPageProxy.h:
  • UIProcess/XR/PlatformXRCoordinator.h: Renamed from Source/WebKit/UIProcess/Cocoa/PlatformXRCoordinator.h.
  • UIProcess/XR/PlatformXRSystem.cpp: Renamed from Source/WebKit/UIProcess/Cocoa/PlatformXRSystem.mm.
  • UIProcess/XR/PlatformXRSystem.h: Renamed from Source/WebKit/UIProcess/Cocoa/PlatformXRSystem.h.
  • UIProcess/XR/PlatformXRSystem.messages.in: Renamed from Source/WebKit/UIProcess/Cocoa/PlatformXRSystem.messages.in.
  • WebProcess/WebCoreSupport/WebChromeClient.cpp:
  • WebProcess/WebCoreSupport/WebChromeClient.h:
  • WebProcess/WebPage/Cocoa/WebPageCocoa.mm:
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::xrSystemProxy):

  • WebProcess/WebPage/WebPage.h:
  • WebProcess/XR/PlatformXRSystemProxy.cpp: Renamed from Source/WebKit/WebProcess/cocoa/PlatformXRSystemProxy.mm.
  • WebProcess/XR/PlatformXRSystemProxy.h: Renamed from Source/WebKit/WebProcess/cocoa/PlatformXRSystemProxy.h.
  • WebProcess/XR/PlatformXRSystemProxy.messages.in: Renamed from Source/WebKit/WebProcess/cocoa/PlatformXRSystemProxy.messages.in.
1:22 AM Changeset in webkit [279821] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

[GTK4] Scrollbar click doesn't work as expected when native scrollbars are off
https://bugs.webkit.org/show_bug.cgi?id=226331

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

Make Adwaita scrollbar theme follow the GTK setting if possible.

  • platform/adwaita/ScrollbarThemeAdwaita.cpp:

(WebCore::ScrollbarThemeAdwaita::handleMousePressEvent):

12:53 AM Changeset in webkit [279820] by ysuzuki@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

[JSC] JITCage already includes guard pages
https://bugs.webkit.org/show_bug.cgi?id=227867

Reviewed by Mark Lam.

Since JITCage already includes guard pages, we do not need to allocate that additionally.

  • jit/ExecutableAllocator.cpp:

(JSC::initializeJITPageReservation):

12:40 AM Changeset in webkit [279819] by commit-queue@webkit.org
  • 12 edits
    108 adds in trunk/LayoutTests

Resync web-platform-tests/css/css-overflow from upstream
https://bugs.webkit.org/show_bug.cgi?id=227849

Patch by Rob Buis <rbuis@igalia.com> on 2021-07-12
Reviewed by Manuel Rego Casasnovas.

LayoutTests/imported/w3c:

Import based on 1d6a9a37bc.

  • resources/resource-files.json:
  • web-platform-tests/css/css-overflow/clip-001.html:
  • web-platform-tests/css/css-overflow/clip-002-expected.html: Added.
  • web-platform-tests/css/css-overflow/clip-002.html: Added.
  • web-platform-tests/css/css-overflow/clip-003-expected.html: Added.
  • web-platform-tests/css/css-overflow/clip-003.html: Added.
  • web-platform-tests/css/css-overflow/clip-004-expected.html: Added.
  • web-platform-tests/css/css-overflow/clip-004.html: Added.
  • web-platform-tests/css/css-overflow/clip-005-expected.html: Added.
  • web-platform-tests/css/css-overflow/clip-005.html: Added.
  • web-platform-tests/css/css-overflow/clip-006-expected.html: Added.
  • web-platform-tests/css/css-overflow/clip-006.html: Added.
  • web-platform-tests/css/css-overflow/clip-007-expected.html: Added.
  • web-platform-tests/css/css-overflow/clip-007.html: Added.
  • web-platform-tests/css/css-overflow/dynamic-visible-to-clip-001.html:
  • web-platform-tests/css/css-overflow/incremental-scroll-expected.html: Added.
  • web-platform-tests/css/css-overflow/incremental-scroll.html: Added.
  • web-platform-tests/css/css-overflow/no-scrollable-overflow-vertical-rl-2-expected.html: Added.
  • web-platform-tests/css/css-overflow/no-scrollable-overflow-vertical-rl-2.html: Added.
  • web-platform-tests/css/css-overflow/no-scrollable-overflow-vertical-rl-expected.html: Added.
  • web-platform-tests/css/css-overflow/no-scrollable-overflow-vertical-rl.html: Added.
  • web-platform-tests/css/css-overflow/overflow-body-propagation-007-expected.html: Added.
  • web-platform-tests/css/css-overflow/overflow-body-propagation-007.html: Added.
  • web-platform-tests/css/css-overflow/overflow-body-propagation-008-expected.html: Added.
  • web-platform-tests/css/css-overflow/overflow-body-propagation-008.html: Added.
  • web-platform-tests/css/css-overflow/overflow-body-propagation-009-expected.html: Added.
  • web-platform-tests/css/css-overflow/overflow-body-propagation-009.html: Added.
  • web-platform-tests/css/css-overflow/overflow-body-propagation-010-expected.html: Added.
  • web-platform-tests/css/css-overflow/overflow-body-propagation-010.html: Added.
  • web-platform-tests/css/css-overflow/overflow-body-propagation-011-expected.html: Added.
  • web-platform-tests/css/css-overflow/overflow-body-propagation-011.html: Added.
  • web-platform-tests/css/css-overflow/overflow-clip-001-crash.html: Added.
  • web-platform-tests/css/css-overflow/overflow-clip-002-crash.html: Added.
  • web-platform-tests/css/css-overflow/overflow-clip-cant-scroll-expected.html: Added.
  • web-platform-tests/css/css-overflow/overflow-clip-cant-scroll.html: Added.
  • web-platform-tests/css/css-overflow/overflow-clip-content-visual-overflow-expected.html: Added.
  • web-platform-tests/css/css-overflow/overflow-clip-content-visual-overflow.html: Added.
  • web-platform-tests/css/css-overflow/overflow-clip-hit-testing.html: Added.
  • web-platform-tests/css/css-overflow/overflow-clip-margin-001-expected.html: Added.
  • web-platform-tests/css/css-overflow/overflow-clip-margin-001.html: Added.
  • web-platform-tests/css/css-overflow/overflow-clip-margin-002-expected.html: Added.
  • web-platform-tests/css/css-overflow/overflow-clip-margin-002.html: Added.
  • web-platform-tests/css/css-overflow/overflow-clip-margin-003-expected.html: Added.
  • web-platform-tests/css/css-overflow/overflow-clip-margin-003.html: Added.
  • web-platform-tests/css/css-overflow/overflow-clip-margin-004-expected.html: Added.
  • web-platform-tests/css/css-overflow/overflow-clip-margin-004.html: Added.
  • web-platform-tests/css/css-overflow/overflow-clip-margin-005-expected.html: Added.
  • web-platform-tests/css/css-overflow/overflow-clip-margin-005.html: Added.
  • web-platform-tests/css/css-overflow/overflow-clip-margin-006-expected.html: Added.
  • web-platform-tests/css/css-overflow/overflow-clip-margin-006.html: Added.
  • web-platform-tests/css/css-overflow/overflow-clip-margin-007-expected.html: Added.
  • web-platform-tests/css/css-overflow/overflow-clip-margin-007.html: Added.
  • web-platform-tests/css/css-overflow/overflow-clip-margin-intersection-observer.html: Added.
  • web-platform-tests/css/css-overflow/overflow-clip-margin-invalidation-expected.html: Added.
  • web-platform-tests/css/css-overflow/overflow-clip-margin-invalidation.html: Added.
  • web-platform-tests/css/css-overflow/overflow-clip-scroll-size.html: Added.
  • web-platform-tests/css/css-overflow/overflow-empty-child-box-expected.txt: Added.
  • web-platform-tests/css/css-overflow/overflow-empty-child-box.html: Added.
  • web-platform-tests/css/css-overflow/overflow-hidden-resize-with-stacking-context-child-expected.html: Added.
  • web-platform-tests/css/css-overflow/overflow-hidden-resize-with-stacking-context-child.html: Added.
  • web-platform-tests/css/css-overflow/overflow-negative-margin-dynamic-expected.html: Added.
  • web-platform-tests/css/css-overflow/overflow-negative-margin-dynamic.html: Added.
  • web-platform-tests/css/css-overflow/overflow-negative-margin-expected.html: Added.
  • web-platform-tests/css/css-overflow/overflow-negative-margin.html: Added.
  • web-platform-tests/css/css-overflow/overflow-no-frameset-propagation-expected.html: Added.
  • web-platform-tests/css/css-overflow/overflow-no-frameset-propagation.html: Added.
  • web-platform-tests/css/css-overflow/overflow-padding.html:
  • web-platform-tests/css/css-overflow/overflow-replaced-element-001-expected.txt: Added.
  • web-platform-tests/css/css-overflow/overflow-replaced-element-001.html: Added.
  • web-platform-tests/css/css-overflow/overflow-scroll-resize-visibility-hidden-expected.html: Added.
  • web-platform-tests/css/css-overflow/overflow-scroll-resize-visibility-hidden.html: Added.
  • web-platform-tests/css/css-overflow/parsing/overflow-computed-expected.txt:
  • web-platform-tests/css/css-overflow/parsing/overflow-computed.html:
  • web-platform-tests/css/css-overflow/parsing/scrollbar-gutter-invalid.html:
  • web-platform-tests/css/css-overflow/parsing/scrollbar-gutter-valid.html:
  • web-platform-tests/css/css-overflow/scrollable-overflow-float-expected.txt: Added.
  • web-platform-tests/css/css-overflow/scrollable-overflow-float.html: Added.
  • web-platform-tests/css/css-overflow/scrollable-overflow-self-collapsing-expected.txt: Added.
  • web-platform-tests/css/css-overflow/scrollable-overflow-self-collapsing.html: Added.
  • web-platform-tests/css/css-overflow/scrollable-overflow-textarea-expected.txt: Added.
  • web-platform-tests/css/css-overflow/scrollable-overflow-textarea.html: Added.
  • web-platform-tests/css/css-overflow/scrollable-overflow-transform-001-expected.txt: Added.
  • web-platform-tests/css/css-overflow/scrollable-overflow-transform-001.html: Added.
  • web-platform-tests/css/css-overflow/scrollable-overflow-transform-002-expected.txt: Added.
  • web-platform-tests/css/css-overflow/scrollable-overflow-transform-002.html: Added.
  • web-platform-tests/css/css-overflow/scrollable-overflow-transform-003-expected.txt: Added.
  • web-platform-tests/css/css-overflow/scrollable-overflow-transform-003.html: Added.
  • web-platform-tests/css/css-overflow/scrollable-overflow-transform-dynamic-001-expected.txt: Added.
  • web-platform-tests/css/css-overflow/scrollable-overflow-transform-dynamic-001.html: Added.
  • web-platform-tests/css/css-overflow/scrollable-overflow-transform-dynamic-002-expected.txt: Added.
  • web-platform-tests/css/css-overflow/scrollable-overflow-transform-dynamic-002.html: Added.
  • web-platform-tests/css/css-overflow/scrollable-overflow-transform-dynamic-003-expected.txt: Added.
  • web-platform-tests/css/css-overflow/scrollable-overflow-transform-dynamic-003.html: Added.
  • web-platform-tests/css/css-overflow/scrollable-overflow-transform-dynamic-004-expected.txt: Added.
  • web-platform-tests/css/css-overflow/scrollable-overflow-transform-dynamic-004.html: Added.
  • web-platform-tests/css/css-overflow/scrollable-overflow-transform-dynamic-005-expected.txt: Added.
  • web-platform-tests/css/css-overflow/scrollable-overflow-transform-dynamic-005.html: Added.
  • web-platform-tests/css/css-overflow/scrollable-overflow-transform-dynamic-006-expected.txt: Added.
  • web-platform-tests/css/css-overflow/scrollable-overflow-transform-dynamic-006.html: Added.
  • web-platform-tests/css/css-overflow/scrollbar-gutter-001.html: Added.
  • web-platform-tests/css/css-overflow/scrollbar-gutter-propagation-001.html: Added.
  • web-platform-tests/css/css-overflow/scrollbar-gutter-propagation-002.html: Added.
  • web-platform-tests/css/css-overflow/scrollbar-gutter-propagation-003.html: Added.
  • web-platform-tests/css/css-overflow/scrollbar-gutter-propagation-004.html: Added.
  • web-platform-tests/css/css-overflow/scrollbar-gutter-propagation-005.html: Added.
  • web-platform-tests/css/css-overflow/scrollbar-gutter-propagation-006.html: Added.
  • web-platform-tests/css/css-overflow/scrollbar-gutter-propagation-007.html: Added.
  • web-platform-tests/css/css-overflow/scrollbar-gutter-rtl-001.html: Added.
  • web-platform-tests/css/css-overflow/scrollbar-gutter-vertical-lr-001.html: Added.
  • web-platform-tests/css/css-overflow/scrollbar-gutter-vertical-rl-001.html: Added.
  • web-platform-tests/css/css-overflow/w3c-import.log:
  • web-platform-tests/css/css-overflow/webkit-line-clamp-036-expected.html: Added.
  • web-platform-tests/css/css-overflow/webkit-line-clamp-036.html: Added.
  • web-platform-tests/css/css-overflow/webkit-line-clamp-037-expected.html: Added.
  • web-platform-tests/css/css-overflow/webkit-line-clamp-037.html: Added.
  • web-platform-tests/css/css-overflow/webkit-line-clamp-dynamic-001-expected.html: Added.
  • web-platform-tests/css/css-overflow/webkit-line-clamp-dynamic-001.html: Added.

LayoutTests:

Skip some tests, for example some rely on
unimplemented overflow: clip property.

Jul 11, 2021:

9:08 PM Changeset in webkit [279818] by Chris Dumez
  • 14 edits in trunk

:link and :visited pseudo-class selectors should not match <link> elements
https://bugs.webkit.org/show_bug.cgi?id=227847

Reviewed by Sam Weinig.

LayoutTests/imported/w3c:

Rebaseline WPT tests now that more checks are passing.

  • web-platform-tests/dom/nodes/ParentNode-querySelector-All-expected.txt:
  • web-platform-tests/dom/nodes/ParentNode-querySelector-All-xht-expected.txt:
  • web-platform-tests/html/semantics/selectors/pseudo-classes/link-expected.txt:

Source/WebCore:

:link, :visited and :any-link should only match <a> and <area> elements as per:

Blink and Gecko match the specification. However, WebKit was incorrectly matching
<link> elements too.

No new tests, rebaselined existing tests.

  • html/HTMLLinkElement.cpp:

(WebCore::HTMLLinkElement::parseAttribute):

LayoutTests:

Update / Rebaseline existing tests due to behavior change.

  • fast/css/link-basics-expected.html:
  • fast/css/link-basics.html:
  • fast/selectors/any-link-basics-expected.txt:
  • fast/selectors/link-basics-expected.txt:
  • fast/selectors/link-basics-xhtml-expected.txt:
  • fast/selectors/resources/html-link-type-tests.js:

(testHTMLTagsForLink):

  • fast/selectors/webkit-any-link-basics-expected.txt:
4:41 PM Changeset in webkit [279817] by Wenson Hsieh
  • 4 edits in trunk/Source/WebKit

Remove an unused deprecated private UI delegate method
https://bugs.webkit.org/show_bug.cgi?id=227861

Reviewed by Tim Horton.

-_webView:didNotHandleTapAsMeaningfulClickAtPoint: is replaced with -_webView:didTapAtPoint:withResult:;
the old SPI is no longer required for either binary or source compatibility after rdar://79700201.

  • UIProcess/API/Cocoa/WKUIDelegatePrivate.h:
  • UIProcess/Cocoa/UIDelegate.h:
  • UIProcess/Cocoa/UIDelegate.mm:

(WebKit::UIDelegate::setDelegate):
(WebKit::UIDelegate::UIClient::didTapAtPoint):

1:36 PM Changeset in webkit [279816] by Fujii Hironori
  • 2 edits in trunk/LayoutTests

[WinCairo] Unreviewed test gardening

  • platform/wincairo/TestExpectations:
11:20 AM Changeset in webkit [279815] by Chris Dumez
  • 5 edits in trunk

XMLSerializer.serializeToString() doesn't properly escape \n, \n and \t
https://bugs.webkit.org/show_bug.cgi?id=227844

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Rebaseline WPT test now that one more subtest is passing.

  • web-platform-tests/domparsing/XMLSerializer-serializeToString-expected.txt:

Source/WebCore:

XMLSerializer.serializeToString() doesn't properly escape \n, \n and \t.

This is causing the "check XMLSerializer.serializeToString escapes attribute values for roundtripping" subtest to fail in WebKit on:
http://wpt.live/domparsing/XMLSerializer-serializeToString.html

Chrome and Firefox both escape these and pass this WPT subtest.

The specification does not indicate we should escape those:

But there is an open bug about this:

No new tests, rebaselined existing test.

  • editing/MarkupAccumulator.cpp:

(WebCore::elementCannotHaveEndTag):

  • editing/MarkupAccumulator.h:

Jul 10, 2021:

9:16 PM Changeset in webkit [279814] by Chris Dumez
  • 5 edits
    2 adds in trunk

document.readyState should be "complete" after calling DOMParser.parseFromString()
https://bugs.webkit.org/show_bug.cgi?id=227846

Reviewed by Ryosuke Niwa.

LayoutTests/imported/w3c:

Rebaseline WPT test that is now passing.

  • web-platform-tests/domparsing/xmldomparser-expected.txt:

Source/WebCore:

document.readyState should be "complete" after calling DOMParser.parseFromString().

This is causing the following WPT test to fail in WebKit:
http://wpt.live/domparsing/xmldomparser.html

Both Gecko and Blink report the correct readyState here.

No new tests, rebaselined existing test.

  • dom/Document.cpp:

(WebCore::Document::explicitClose):
explicitClose() normally calls checkCompleted() which calls FrameLoader::checkCompleted(),
which ends up setting the document's ready state to "complete" and then calling
Document::implicitClose(). However, when the document has no frame (which is the case
for a document just created via DOMParser.parseFromString()), we would call
Document::implicitClose() directly, since we don't have a FrameLoader. As a result,
the document's ready state would stay "interactive". To address the issue, we now set
the document's ready state to "complete" before calling implicitClose(), similarly to
what FrameLoader::checkCompleted() would have done.

6:27 PM Changeset in webkit [279813] by sbarati@apple.com
  • 10 edits in trunk/Source/JavaScriptCore

Continue to consult InlineAccess's Structure even after switching to a stub IC
https://bugs.webkit.org/show_bug.cgi?id=227785

Reviewed by Yusuke Suzuki.

This patch fixes a crash in: stress/class-subclassing-function.js

The bug is this:

  1. We initialize a StructureStubInfo to be an inline self access doing a load based on structure S.
  2. We transition to being a PolymorphicAccess based StructureStubInfo. But, we haven't

generated code yet. We're in the buffered state. So we are still running the inline access
from (1). But the StructureStubInfo thinks it's a "Stub".

  1. S is collected
  2. We continue to run code from (1), because when we finalize the IC during GC, it

doesn't think it's an inline access.

The fix is to always track the structure S that we used when generating the inline
access, and to only stop tracking it once we've generated code for the Stub.

  • bytecode/AccessCase.cpp:

(JSC::AccessCase::fromStructureStubInfo):
(JSC::AccessCase::propagateTransitions const):

  • bytecode/AccessCase.h:
  • bytecode/GetByStatus.cpp:

(JSC::GetByStatus::computeForStubInfoWithoutExitSiteFeedback):

  • bytecode/InByStatus.cpp:

(JSC::InByStatus::computeForStubInfoWithoutExitSiteFeedback):

  • bytecode/PolymorphicAccess.cpp:

(JSC::PolymorphicAccess::propagateTransitions const):

  • bytecode/PolymorphicAccess.h:
  • bytecode/PutByIdStatus.cpp:

(JSC::PutByIdStatus::computeForStubInfo):

  • bytecode/StructureStubInfo.cpp:

(JSC::StructureStubInfo::initGetByIdSelf):
(JSC::StructureStubInfo::initPutByIdReplace):
(JSC::StructureStubInfo::initInByIdSelf):
(JSC::StructureStubInfo::addAccessCase):
(JSC::StructureStubInfo::reset):
(JSC::StructureStubInfo::visitWeakReferences):
(JSC::StructureStubInfo::propagateTransitions):

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

Tag Safari-612.1.22.11.2.

6:21 PM Changeset in webkit [279811] by Russell Epstein
  • 8 edits in branches/safari-612.1.22.11-branch/Source

Versioning.

WebKit-7612.1.22.11.2

5:05 PM Changeset in webkit [279810] by ysuzuki@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

[JSC] Workaround test262.report bug by making $ properties enumerable
https://bugs.webkit.org/show_bug.cgi?id=227855

Reviewed by Alexey Shvayka.

test262.report's harness has a bug and it reports incorrect results for JSC on tests using $262 properties.
This patch introduces a workaround which makes properties of $ enumerable.

  • jsc.cpp:
2:00 PM Changeset in webkit [279809] by ysuzuki@apple.com
  • 70 edits
    26 copies
    17 moves
    390 adds
    14 deletes in trunk/JSTests

[JSC] Update test262
https://bugs.webkit.org/show_bug.cgi?id=227851

Reviewed by Mark Lam.

  • test262/config.yaml:
  • test262/expectations.yaml:
  • test262/harness/compareArray.js:

(assert.compareArray):

  • test262/harness/regExpUtils.js:

(buildString):
(): Deleted.

  • test262/harness/sta.js:

(Test262Error.thrower):

  • test262/harness/testIntl.js:

(getLocaleSupportInfo):

  • test262/latest-changes-summary.txt:
  • test262/test/annexB/language/literals/regexp/legacy-octal-escape.js:
  • test262/test/built-ins/ArrayBuffer/options-maxbytelength-diminuitive.js: Added.
  • test262/test/built-ins/ArrayBuffer/options-maxbytelength-excessive.js: Added.
  • test262/test/built-ins/ArrayBuffer/options-maxbytelength-negative.js: Added.
  • test262/test/built-ins/ArrayBuffer/options-maxbytelength-object.js: Added.

(options.maxByteLength.toString):
(options.maxByteLength.valueOf):

  • test262/test/built-ins/ArrayBuffer/options-maxbytelength-poisoned.js: Added.

(options.get maxByteLength):

  • test262/test/built-ins/ArrayBuffer/options-maxbytelength-undefined.js: Added.
  • test262/test/built-ins/ArrayBuffer/options-non-object.js: Added.
  • test262/test/built-ins/ArrayBuffer/prototype/maxByteLength/detached-buffer.js: Added.
  • test262/test/built-ins/ArrayBuffer/prototype/maxByteLength/invoked-as-accessor.js: Added.
  • test262/test/built-ins/ArrayBuffer/prototype/maxByteLength/invoked-as-func.js: Added.
  • test262/test/built-ins/ArrayBuffer/prototype/maxByteLength/length.js: Added.
  • test262/test/built-ins/ArrayBuffer/prototype/maxByteLength/name.js: Added.
  • test262/test/built-ins/ArrayBuffer/prototype/maxByteLength/prop-desc.js: Added.
  • test262/test/built-ins/ArrayBuffer/prototype/maxByteLength/return-maxbytelength-non-resizable.js: Added.
  • test262/test/built-ins/ArrayBuffer/prototype/maxByteLength/return-maxbytelength-resizable.js: Added.
  • test262/test/built-ins/ArrayBuffer/prototype/maxByteLength/this-has-no-arraybufferdata-internal.js: Added.
  • test262/test/built-ins/ArrayBuffer/prototype/maxByteLength/this-is-not-object.js: Added.
  • test262/test/built-ins/ArrayBuffer/prototype/maxByteLength/this-is-sharedarraybuffer.js: Added.
  • test262/test/built-ins/ArrayBuffer/prototype/resizable/detached-buffer.js: Added.
  • test262/test/built-ins/ArrayBuffer/prototype/resizable/invoked-as-accessor.js: Added.
  • test262/test/built-ins/ArrayBuffer/prototype/resizable/invoked-as-func.js: Added.
  • test262/test/built-ins/ArrayBuffer/prototype/resizable/length.js: Added.
  • test262/test/built-ins/ArrayBuffer/prototype/resizable/name.js: Added.
  • test262/test/built-ins/ArrayBuffer/prototype/resizable/prop-desc.js: Added.
  • test262/test/built-ins/ArrayBuffer/prototype/resizable/return-resizable.js: Added.
  • test262/test/built-ins/ArrayBuffer/prototype/resizable/this-has-no-arraybufferdata-internal.js: Added.
  • test262/test/built-ins/ArrayBuffer/prototype/resizable/this-is-not-object.js: Added.
  • test262/test/built-ins/ArrayBuffer/prototype/resizable/this-is-sharedarraybuffer.js: Added.
  • test262/test/built-ins/ArrayBuffer/prototype/resize/descriptor.js: Added.
  • test262/test/built-ins/ArrayBuffer/prototype/resize/extensible.js: Added.
  • test262/test/built-ins/ArrayBuffer/prototype/resize/length.js: Added.
  • test262/test/built-ins/ArrayBuffer/prototype/resize/name.js: Added.
  • test262/test/built-ins/ArrayBuffer/prototype/resize/new-length-excessive.js: Added.
  • test262/test/built-ins/ArrayBuffer/prototype/resize/new-length-negative.js: Added.
  • test262/test/built-ins/ArrayBuffer/prototype/resize/new-length-non-number.js: Added.

(newLength.toString):
(newLength.valueOf):

  • test262/test/built-ins/ArrayBuffer/prototype/resize/nonconstructor.js: Added.
  • test262/test/built-ins/ArrayBuffer/prototype/resize/resize-grow.js: Added.

(catch):

  • test262/test/built-ins/ArrayBuffer/prototype/resize/resize-same-size-zero-explicit.js: Added.

(catch):

  • test262/test/built-ins/ArrayBuffer/prototype/resize/resize-same-size-zero-implicit.js: Added.

(catch):

  • test262/test/built-ins/ArrayBuffer/prototype/resize/resize-same-size.js: Added.

(catch):

  • test262/test/built-ins/ArrayBuffer/prototype/resize/resize-shrink-zero-explicit.js: Added.

(catch):

  • test262/test/built-ins/ArrayBuffer/prototype/resize/resize-shrink-zero-implicit.js: Added.

(catch):

  • test262/test/built-ins/ArrayBuffer/prototype/resize/resize-shrink.js: Added.

(catch):

  • test262/test/built-ins/ArrayBuffer/prototype/resize/this-is-detached.js: Added.
  • test262/test/built-ins/ArrayBuffer/prototype/resize/this-is-not-arraybuffer-object.js: Added.
  • test262/test/built-ins/ArrayBuffer/prototype/resize/this-is-not-object.js: Added.
  • test262/test/built-ins/ArrayBuffer/prototype/resize/this-is-not-resizable-arraybuffer-object.js: Added.
  • test262/test/built-ins/ArrayBuffer/prototype/resize/this-is-sharedarraybuffer.js: Added.
  • test262/test/built-ins/ArrayBuffer/prototype/transfer/descriptor.js: Added.
  • test262/test/built-ins/ArrayBuffer/prototype/transfer/extensible.js: Added.
  • test262/test/built-ins/ArrayBuffer/prototype/transfer/from-fixed-to-larger.js: Added.
  • test262/test/built-ins/ArrayBuffer/prototype/transfer/from-fixed-to-same.js: Added.
  • test262/test/built-ins/ArrayBuffer/prototype/transfer/from-fixed-to-smaller.js: Added.
  • test262/test/built-ins/ArrayBuffer/prototype/transfer/from-fixed-to-zero.js: Added.
  • test262/test/built-ins/ArrayBuffer/prototype/transfer/from-resizable-to-larger.js: Added.
  • test262/test/built-ins/ArrayBuffer/prototype/transfer/from-resizable-to-same.js: Added.
  • test262/test/built-ins/ArrayBuffer/prototype/transfer/from-resizable-to-smaller.js: Added.
  • test262/test/built-ins/ArrayBuffer/prototype/transfer/from-resizable-to-zero.js: Added.
  • test262/test/built-ins/ArrayBuffer/prototype/transfer/length.js: Added.
  • test262/test/built-ins/ArrayBuffer/prototype/transfer/name.js: Added.
  • test262/test/built-ins/ArrayBuffer/prototype/transfer/new-length-excessive.js: Added.
  • test262/test/built-ins/ArrayBuffer/prototype/transfer/new-length-non-number.js: Added.

(newLength.toString):
(newLength.valueOf):

  • test262/test/built-ins/ArrayBuffer/prototype/transfer/nonconstructor.js: Added.
  • test262/test/built-ins/ArrayBuffer/prototype/transfer/this-is-detached.js: Added.
  • test262/test/built-ins/ArrayBuffer/prototype/transfer/this-is-not-arraybuffer-object.js: Added.
  • test262/test/built-ins/ArrayBuffer/prototype/transfer/this-is-not-object.js: Added.
  • test262/test/built-ins/ArrayBuffer/prototype/transfer/this-is-sharedarraybuffer.js: Added.
  • test262/test/built-ins/DataView/prototype/byteLength/resizable-array-buffer-auto.js: Added.

(catch):

  • test262/test/built-ins/DataView/prototype/byteLength/resizable-array-buffer-fixed.js: Added.

(catch):

  • test262/test/built-ins/DataView/prototype/byteOffset/resizable-array-buffer-auto.js: Added.

(catch):

  • test262/test/built-ins/DataView/prototype/byteOffset/resizable-array-buffer-fixed.js: Added.

(catch):

  • test262/test/built-ins/DataView/prototype/getBigInt64/resizable-buffer.js: Added.

(catch):

  • test262/test/built-ins/DataView/prototype/getBigUint64/resizable-buffer.js: Added.

(catch):

  • test262/test/built-ins/DataView/prototype/getFloat32/resizable-buffer.js: Added.

(catch):

  • test262/test/built-ins/DataView/prototype/getFloat64/resizable-buffer.js: Added.

(catch):

  • test262/test/built-ins/DataView/prototype/getInt16/resizable-buffer.js: Added.

(catch):

  • test262/test/built-ins/DataView/prototype/getInt32/resizable-buffer.js: Added.

(catch):

  • test262/test/built-ins/DataView/prototype/getInt8/resizable-buffer.js: Added.

(catch):

  • test262/test/built-ins/DataView/prototype/getUint16/resizable-buffer.js: Added.

(catch):

  • test262/test/built-ins/DataView/prototype/getUint32/resizable-buffer.js: Added.

(catch):

  • test262/test/built-ins/DataView/prototype/getUint8/resizable-buffer.js: Added.

(catch):

  • test262/test/built-ins/DataView/prototype/setBigInt64/resizable-buffer.js: Added.

(catch):

  • test262/test/built-ins/DataView/prototype/setBigUint64/resizable-buffer.js: Added.

(catch):

  • test262/test/built-ins/DataView/prototype/setFloat32/resizable-buffer.js: Added.

(catch):

  • test262/test/built-ins/DataView/prototype/setFloat64/resizable-buffer.js: Added.

(catch):

  • test262/test/built-ins/DataView/prototype/setInt16/resizable-buffer.js: Added.

(catch):

  • test262/test/built-ins/DataView/prototype/setInt32/resizable-buffer.js: Added.

(catch):

  • test262/test/built-ins/DataView/prototype/setInt8/resizable-buffer.js: Added.

(catch):

  • test262/test/built-ins/DataView/prototype/setUint16/resizable-buffer.js: Added.

(catch):

  • test262/test/built-ins/DataView/prototype/setUint32/resizable-buffer.js: Added.

(catch):

  • test262/test/built-ins/DataView/prototype/setUint8/resizable-buffer.js: Added.

(catch):

  • test262/test/built-ins/Error/cause_abrupt.js:

(has):
(options.get cause):

  • test262/test/built-ins/Object/hasOwn/descriptor.js: Added.
  • test262/test/built-ins/Object/hasOwn/hasown.js: Added.
  • test262/test/built-ins/Object/hasOwn/hasown_inherited_exists.js: Added.
  • test262/test/built-ins/Object/hasOwn/hasown_inherited_getter.js: Added.

(base.get foo):

  • test262/test/built-ins/Object/hasOwn/hasown_inherited_getter_and_setter.js: Added.

(base.get foo):
(base.set foo):

  • test262/test/built-ins/Object/hasOwn/hasown_inherited_getter_and_setter_configurable_enumerable.js: Added.
  • test262/test/built-ins/Object/hasOwn/hasown_inherited_getter_and_setter_configurable_nonenumerable.js: Added.
  • test262/test/built-ins/Object/hasOwn/hasown_inherited_getter_and_setter_nonconfigurable_enumerable.js: Added.
  • test262/test/built-ins/Object/hasOwn/hasown_inherited_getter_and_setter_nonconfigurable_nonenumerable.js: Added.
  • test262/test/built-ins/Object/hasOwn/hasown_inherited_getter_configurable_enumerable.js: Added.
  • test262/test/built-ins/Object/hasOwn/hasown_inherited_getter_configurable_nonenumerable.js: Added.
  • test262/test/built-ins/Object/hasOwn/hasown_inherited_getter_nonconfigurable_enumerable.js: Added.
  • test262/test/built-ins/Object/hasOwn/hasown_inherited_getter_nonconfigurable_nonenumerable.js: Added.
  • test262/test/built-ins/Object/hasOwn/hasown_inherited_nonwritable_configurable_enumerable.js: Added.
  • test262/test/built-ins/Object/hasOwn/hasown_inherited_nonwritable_configurable_nonenumerable.js: Added.
  • test262/test/built-ins/Object/hasOwn/hasown_inherited_nonwritable_nonconfigurable_enumerable.js: Added.
  • test262/test/built-ins/Object/hasOwn/hasown_inherited_nonwritable_nonconfigurable_nonenumerable.js: Added.
  • test262/test/built-ins/Object/hasOwn/hasown_inherited_setter.js: Added.

(base.set foo):

  • test262/test/built-ins/Object/hasOwn/hasown_inherited_setter_configurable_enumerable.js: Added.
  • test262/test/built-ins/Object/hasOwn/hasown_inherited_setter_configurable_nonenumerable.js: Added.
  • test262/test/built-ins/Object/hasOwn/hasown_inherited_setter_nonconfigurable_enumerable.js: Added.
  • test262/test/built-ins/Object/hasOwn/hasown_inherited_setter_nonconfigurable_nonenumerable.js: Added.
  • test262/test/built-ins/Object/hasOwn/hasown_inherited_writable_configurable_enumerable.js: Added.
  • test262/test/built-ins/Object/hasOwn/hasown_inherited_writable_configurable_nonenumerable.js: Added.
  • test262/test/built-ins/Object/hasOwn/hasown_inherited_writable_nonconfigurable_enumerable.js: Added.
  • test262/test/built-ins/Object/hasOwn/hasown_inherited_writable_nonconfigurable_nonenumerable.js: Added.
  • test262/test/built-ins/Object/hasOwn/hasown_nonexistent.js: Added.
  • test262/test/built-ins/Object/hasOwn/hasown_own_getter.js: Added.

(o.get foo):

  • test262/test/built-ins/Object/hasOwn/hasown_own_getter_and_setter.js: Added.

(o.get foo):
(o.set foo):

  • test262/test/built-ins/Object/hasOwn/hasown_own_getter_and_setter_configurable_enumerable.js: Added.
  • test262/test/built-ins/Object/hasOwn/hasown_own_getter_and_setter_configurable_nonenumerable.js: Added.
  • test262/test/built-ins/Object/hasOwn/hasown_own_getter_and_setter_nonconfigurable_enumerable.js: Added.
  • test262/test/built-ins/Object/hasOwn/hasown_own_getter_and_setter_nonconfigurable_nonenumerable.js: Added.
  • test262/test/built-ins/Object/hasOwn/hasown_own_getter_configurable_enumerable.js: Added.
  • test262/test/built-ins/Object/hasOwn/hasown_own_getter_configurable_nonenumerable.js: Added.
  • test262/test/built-ins/Object/hasOwn/hasown_own_getter_nonconfigurable_enumerable.js: Added.
  • test262/test/built-ins/Object/hasOwn/hasown_own_getter_nonconfigurable_nonenumerable.js: Added.
  • test262/test/built-ins/Object/hasOwn/hasown_own_nonwritable_configurable_enumerable.js: Added.
  • test262/test/built-ins/Object/hasOwn/hasown_own_nonwritable_nonconfigurable_enumerable.js: Added.
  • test262/test/built-ins/Object/hasOwn/hasown_own_nonwriteable_configurable_nonenumerable.js: Added.
  • test262/test/built-ins/Object/hasOwn/hasown_own_nonwriteable_nonconfigurable_nonenumerable.js: Added.
  • test262/test/built-ins/Object/hasOwn/hasown_own_property_exists.js: Added.
  • test262/test/built-ins/Object/hasOwn/hasown_own_setter.js: Added.

(o.set foo):

  • test262/test/built-ins/Object/hasOwn/hasown_own_setter_configurable_enumerable.js: Added.
  • test262/test/built-ins/Object/hasOwn/hasown_own_setter_configurable_nonenumerable.js: Added.
  • test262/test/built-ins/Object/hasOwn/hasown_own_setter_nonconfigurable_enumerable.js: Added.
  • test262/test/built-ins/Object/hasOwn/hasown_own_setter_nonconfigurable_nonenumerable.js: Added.
  • test262/test/built-ins/Object/hasOwn/hasown_own_writable_configurable_enumerable.js: Added.
  • test262/test/built-ins/Object/hasOwn/hasown_own_writable_configurable_nonenumerable.js: Added.
  • test262/test/built-ins/Object/hasOwn/hasown_own_writable_nonconfigurable_enumerable.js: Added.
  • test262/test/built-ins/Object/hasOwn/hasown_own_writable_nonconfigurable_nonenumerable.js: Added.
  • test262/test/built-ins/Object/hasOwn/length.js: Added.
  • test262/test/built-ins/Object/hasOwn/name.js: Added.
  • test262/test/built-ins/Object/hasOwn/not-a-constructor.js: Added.
  • test262/test/built-ins/Object/hasOwn/prototype.js: Added.
  • test262/test/built-ins/Object/hasOwn/symbol_own_property.js: Added.
  • test262/test/built-ins/Object/hasOwn/symbol_property_toPrimitive.js: Added.

(wrapper.Symbol.toPrimitive):

  • test262/test/built-ins/Object/hasOwn/symbol_property_toString.js: Added.

(wrapper.toString):
(wrapper.valueOf):

  • test262/test/built-ins/Object/hasOwn/symbol_property_valueOf.js: Added.

(wrapper.valueOf):

  • test262/test/built-ins/Object/hasOwn/toobject_before_topropertykey.js: Added.

(coercibleKey1.get toString):
(coercibleKey1.get valueOf):
(coercibleKey2.Symbol.toPrimitive):

  • test262/test/built-ins/Object/hasOwn/toobject_null.js: Added.
  • test262/test/built-ins/Object/hasOwn/toobject_undefined.js: Added.
  • test262/test/built-ins/Promise/race/resolve-element-function-extensible.js: Removed.
  • test262/test/built-ins/Promise/race/resolve-element-function-name.js: Removed.
  • test262/test/built-ins/Promise/race/resolve-element-function-nonconstructor.js: Removed.
  • test262/test/built-ins/Promise/race/resolve-element-function-prototype.js: Removed.
  • test262/test/built-ins/SharedArrayBuffer/options-maxbytelength-diminuitive.js: Added.
  • test262/test/built-ins/SharedArrayBuffer/options-maxbytelength-excessive.js: Added.
  • test262/test/built-ins/SharedArrayBuffer/options-maxbytelength-negative.js: Added.
  • test262/test/built-ins/SharedArrayBuffer/options-maxbytelength-object.js: Added.

(options.maxByteLength.toString):
(options.maxByteLength.valueOf):

  • test262/test/built-ins/SharedArrayBuffer/options-maxbytelength-poisoned.js: Added.

(options.get maxByteLength):

  • test262/test/built-ins/SharedArrayBuffer/options-maxbytelength-undefined.js: Added.
  • test262/test/built-ins/SharedArrayBuffer/options-non-object.js: Added.
  • test262/test/built-ins/SharedArrayBuffer/prototype/grow/descriptor.js: Added.
  • test262/test/built-ins/SharedArrayBuffer/prototype/grow/extensible.js: Added.
  • test262/test/built-ins/SharedArrayBuffer/prototype/grow/grow-larger-size.js: Added.

(catch):

  • test262/test/built-ins/SharedArrayBuffer/prototype/grow/grow-same-size.js: Added.

(catch):

  • test262/test/built-ins/SharedArrayBuffer/prototype/grow/grow-smaller-size.js: Added.

(catch):

  • test262/test/built-ins/SharedArrayBuffer/prototype/grow/length.js: Added.
  • test262/test/built-ins/SharedArrayBuffer/prototype/grow/name.js: Added.
  • test262/test/built-ins/SharedArrayBuffer/prototype/grow/new-length-excessive.js: Added.
  • test262/test/built-ins/SharedArrayBuffer/prototype/grow/new-length-negative.js: Added.
  • test262/test/built-ins/SharedArrayBuffer/prototype/grow/new-length-non-number.js: Added.

(newLength.toString):
(newLength.valueOf):

  • test262/test/built-ins/SharedArrayBuffer/prototype/grow/nonconstructor.js: Added.
  • test262/test/built-ins/SharedArrayBuffer/prototype/grow/this-is-not-arraybuffer-object.js: Added.
  • test262/test/built-ins/SharedArrayBuffer/prototype/grow/this-is-not-object.js: Added.
  • test262/test/built-ins/SharedArrayBuffer/prototype/grow/this-is-not-resizable-arraybuffer-object.js: Added.
  • test262/test/built-ins/SharedArrayBuffer/prototype/grow/this-is-sharedarraybuffer.js: Added.
  • test262/test/built-ins/SharedArrayBuffer/prototype/growable/invoked-as-accessor.js: Added.
  • test262/test/built-ins/SharedArrayBuffer/prototype/growable/invoked-as-func.js: Added.
  • test262/test/built-ins/SharedArrayBuffer/prototype/growable/length.js: Added.
  • test262/test/built-ins/SharedArrayBuffer/prototype/growable/name.js: Added.
  • test262/test/built-ins/SharedArrayBuffer/prototype/growable/prop-desc.js: Added.
  • test262/test/built-ins/SharedArrayBuffer/prototype/growable/return-growable.js: Added.
  • test262/test/built-ins/SharedArrayBuffer/prototype/growable/this-has-no-arraybufferdata-internal.js: Added.
  • test262/test/built-ins/SharedArrayBuffer/prototype/growable/this-is-arraybuffer.js: Added.
  • test262/test/built-ins/SharedArrayBuffer/prototype/growable/this-is-not-object.js: Added.
  • test262/test/built-ins/SharedArrayBuffer/prototype/maxByteLength/invoked-as-accessor.js: Added.
  • test262/test/built-ins/SharedArrayBuffer/prototype/maxByteLength/invoked-as-func.js: Added.
  • test262/test/built-ins/SharedArrayBuffer/prototype/maxByteLength/length.js: Added.
  • test262/test/built-ins/SharedArrayBuffer/prototype/maxByteLength/name.js: Added.
  • test262/test/built-ins/SharedArrayBuffer/prototype/maxByteLength/prop-desc.js: Added.
  • test262/test/built-ins/SharedArrayBuffer/prototype/maxByteLength/return-maxbytelength-growable.js: Added.
  • test262/test/built-ins/SharedArrayBuffer/prototype/maxByteLength/return-maxbytelength-non-growable.js: Added.
  • test262/test/built-ins/SharedArrayBuffer/prototype/maxByteLength/this-has-no-arraybufferdata-internal.js: Added.
  • test262/test/built-ins/SharedArrayBuffer/prototype/maxByteLength/this-is-arraybuffer.js: Added.
  • test262/test/built-ins/SharedArrayBuffer/prototype/maxByteLength/this-is-not-object.js: Added.
  • test262/test/built-ins/Symbol/for/description.js: Added.

(symbol.Symbol.toString):

  • test262/test/built-ins/Temporal/now/instant/extensible.js: Added.
  • test262/test/built-ins/Temporal/now/instant/length.js: Added.
  • test262/test/built-ins/Temporal/now/instant/name.js: Added.
  • test262/test/built-ins/Temporal/now/instant/not-a-constructor.js: Added.
  • test262/test/built-ins/Temporal/now/instant/prop-desc.js: Added.
  • test262/test/built-ins/Temporal/now/instant/return-value-distinct.js: Added.
  • test262/test/built-ins/Temporal/now/instant/return-value-prototype.js: Added.
  • test262/test/built-ins/Temporal/now/instant/return-value-value.js: Added.
  • test262/test/built-ins/Temporal/now/timeZone/extensible.js: Added.
  • test262/test/built-ins/Temporal/now/timeZone/length.js: Added.
  • test262/test/built-ins/Temporal/now/timeZone/name.js: Added.
  • test262/test/built-ins/Temporal/now/timeZone/new-object.js: Added.
  • test262/test/built-ins/Temporal/now/timeZone/not-a-constructor.js: Added.
  • test262/test/built-ins/Temporal/now/timeZone/prop-desc.js: Added.
  • test262/test/built-ins/Temporal/now/timeZone/return-value.js: Added.
  • test262/test/built-ins/TypedArray/prototype/at/return-abrupt-from-this-out-of-bounds.js: Added.

(testWithTypedArrayConstructors.TA.catch):

  • test262/test/built-ins/TypedArray/prototype/byteLength/resizable-array-buffer-auto.js: Added.

(testWithTypedArrayConstructors):

  • test262/test/built-ins/TypedArray/prototype/byteLength/resizable-array-buffer-fixed.js: Added.

(testWithTypedArrayConstructors):

  • test262/test/built-ins/TypedArray/prototype/byteOffset/resizable-array-buffer-auto.js: Added.

(testWithTypedArrayConstructors):

  • test262/test/built-ins/TypedArray/prototype/byteOffset/resizable-array-buffer-fixed.js: Added.

(testWithTypedArrayConstructors):

  • test262/test/built-ins/TypedArray/prototype/copyWithin/return-abrupt-from-this-out-of-bounds.js: Added.

(testWithTypedArrayConstructors.TA.catch):

  • test262/test/built-ins/TypedArray/prototype/entries/return-abrupt-from-this-out-of-bounds.js: Added.

(testWithTypedArrayConstructors.TA.catch):

  • test262/test/built-ins/TypedArray/prototype/every/return-abrupt-from-this-out-of-bounds.js: Added.

(testWithTypedArrayConstructors.TA.catch):
(testWithTypedArrayConstructors.TA.array.every):

  • test262/test/built-ins/TypedArray/prototype/fill/return-abrupt-from-this-out-of-bounds.js: Added.

(testWithTypedArrayConstructors.TA.catch):

  • test262/test/built-ins/TypedArray/prototype/filter/return-abrupt-from-this-out-of-bounds.js: Added.

(testWithTypedArrayConstructors.TA.catch):
(testWithTypedArrayConstructors.TA.array.filter):

  • test262/test/built-ins/TypedArray/prototype/find/return-abrupt-from-this-out-of-bounds.js: Added.

(testWithTypedArrayConstructors.TA.catch):
(testWithTypedArrayConstructors.TA.array.find):

  • test262/test/built-ins/TypedArray/prototype/findIndex/return-abrupt-from-this-out-of-bounds.js: Added.

(testWithTypedArrayConstructors.TA.catch):
(testWithTypedArrayConstructors.TA.array.findIndex):

  • test262/test/built-ins/TypedArray/prototype/forEach/return-abrupt-from-this-out-of-bounds.js: Added.

(testWithTypedArrayConstructors.TA.catch):
(testWithTypedArrayConstructors.TA.array.forEach):

  • test262/test/built-ins/TypedArray/prototype/includes/return-abrupt-from-this-out-of-bounds.js: Added.

(testWithTypedArrayConstructors.TA.catch):

  • test262/test/built-ins/TypedArray/prototype/indexOf/return-abrupt-from-this-out-of-bounds.js: Added.

(testWithTypedArrayConstructors.TA.catch):

  • test262/test/built-ins/TypedArray/prototype/join/return-abrupt-from-this-out-of-bounds.js: Added.

(testWithTypedArrayConstructors.TA.catch):

  • test262/test/built-ins/TypedArray/prototype/keys/return-abrupt-from-this-out-of-bounds.js: Added.

(testWithTypedArrayConstructors.TA.catch):

  • test262/test/built-ins/TypedArray/prototype/lastIndexOf/return-abrupt-from-this-out-of-bounds.js: Added.

(testWithTypedArrayConstructors.TA.catch):

  • test262/test/built-ins/TypedArray/prototype/length/resizable-array-buffer-auto.js: Added.

(testWithTypedArrayConstructors):

  • test262/test/built-ins/TypedArray/prototype/length/resizable-array-buffer-fixed.js: Added.

(testWithTypedArrayConstructors):

  • test262/test/built-ins/TypedArray/prototype/map/return-abrupt-from-this-out-of-bounds.js: Added.

(testWithTypedArrayConstructors.TA.catch):
(testWithTypedArrayConstructors.TA.array.map):

  • test262/test/built-ins/TypedArray/prototype/reduce/return-abrupt-from-this-out-of-bounds.js: Added.

(testWithTypedArrayConstructors.TA.catch):
(testWithTypedArrayConstructors.TA.array.reduce):

  • test262/test/built-ins/TypedArray/prototype/reduceRight/return-abrupt-from-this-out-of-bounds.js: Added.

(testWithTypedArrayConstructors.TA.catch):
(testWithTypedArrayConstructors.TA.array.reduceRight):

  • test262/test/built-ins/TypedArray/prototype/reverse/return-abrupt-from-this-out-of-bounds.js: Added.

(testWithTypedArrayConstructors.TA.catch):

  • test262/test/built-ins/TypedArray/prototype/set/typedarray-arg-set-values-same-buffer-same-type-resized.js: Added.

(testWithTypedArrayConstructors):

  • test262/test/built-ins/TypedArray/prototype/set/typedarray-arg-target-out-of-bounds.js: Added.

(testWithTypedArrayConstructors.TA.catch):

  • test262/test/built-ins/TypedArray/prototype/slice/return-abrupt-from-this-out-of-bounds.js: Added.

(testWithTypedArrayConstructors.TA.catch):

  • test262/test/built-ins/TypedArray/prototype/some/return-abrupt-from-this-out-of-bounds.js: Added.

(testWithTypedArrayConstructors.TA.catch):
(testWithTypedArrayConstructors.TA.array.some):

  • test262/test/built-ins/TypedArray/prototype/sort/return-abrupt-from-this-out-of-bounds.js: Added.

(testWithTypedArrayConstructors.TA.catch):

  • test262/test/built-ins/TypedArray/prototype/toLocaleString/return-abrupt-from-this-out-of-bounds.js: Added.

(testWithTypedArrayConstructors.TA.catch):

  • test262/test/built-ins/TypedArray/prototype/values/return-abrupt-from-this-out-of-bounds.js: Added.

(testWithTypedArrayConstructors.TA.catch):

  • test262/test/built-ins/TypedArrayConstructors/ctors/buffer-arg/excessive-offset-throws-resizable-ab.js: Added.

(testWithTypedArrayConstructors):

  • test262/test/built-ins/TypedArrayConstructors/ctors/typedarray-arg/out-of-bounds-when-species-retrieved-different-type.js: Added.

(testWithTypedArrayConstructors.):
(testWithTypedArrayConstructors.get var):
(testWithTypedArrayConstructors.onGetSpecies):
(testWithTypedArrayConstructors):

  • test262/test/built-ins/TypedArrayConstructors/ctors/typedarray-arg/out-of-bounds-when-species-retrieved-same-type.js: Added.

(testWithTypedArrayConstructors.):
(testWithTypedArrayConstructors.get var):
(testWithTypedArrayConstructors.onGetSpecies):
(testWithTypedArrayConstructors):

  • test262/test/built-ins/TypedArrayConstructors/internals/DefineOwnProperty/BigInt/detached-buffer-realm.js: Removed.
  • test262/test/built-ins/TypedArrayConstructors/internals/DefineOwnProperty/BigInt/detached-buffer-throws-realm.js: Added.

(testWithBigIntTypedArrayConstructors):

  • test262/test/built-ins/TypedArrayConstructors/internals/DefineOwnProperty/BigInt/detached-buffer-throws.js: Added.

(testWithBigIntTypedArrayConstructors):

  • test262/test/built-ins/TypedArrayConstructors/internals/DefineOwnProperty/BigInt/key-is-not-numeric-index-throws.js: Added.

(testWithBigIntTypedArrayConstructors):

  • test262/test/built-ins/TypedArrayConstructors/internals/DefineOwnProperty/BigInt/key-is-numericindex-accessor-desc-throws.js: Added.

(testWithBigIntTypedArrayConstructors.):
(testWithBigIntTypedArrayConstructors.get assert):
(testWithBigIntTypedArrayConstructors.set assert):

  • test262/test/built-ins/TypedArrayConstructors/internals/DefineOwnProperty/BigInt/key-is-numericindex-desc-configurable.js:
  • test262/test/built-ins/TypedArrayConstructors/internals/DefineOwnProperty/BigInt/key-is-numericindex-desc-not-configurable-throws.js: Added.

(testWithBigIntTypedArrayConstructors):

  • test262/test/built-ins/TypedArrayConstructors/internals/DefineOwnProperty/BigInt/key-is-numericindex-desc-not-enumerable-throws.js: Added.

(testWithBigIntTypedArrayConstructors):

  • test262/test/built-ins/TypedArrayConstructors/internals/DefineOwnProperty/BigInt/key-is-numericindex-desc-not-writable-throws.js: Added.

(testWithBigIntTypedArrayConstructors):

  • test262/test/built-ins/TypedArrayConstructors/internals/DefineOwnProperty/BigInt/tonumber-value-detached-buffer.js:

(testWithBigIntTypedArrayConstructors):

  • test262/test/built-ins/TypedArrayConstructors/internals/DefineOwnProperty/detached-buffer-realm.js: Removed.
  • test262/test/built-ins/TypedArrayConstructors/internals/DefineOwnProperty/detached-buffer-throws-realm.js: Added.

(testWithTypedArrayConstructors):

  • test262/test/built-ins/TypedArrayConstructors/internals/DefineOwnProperty/detached-buffer-throws.js: Added.

(testWithTypedArrayConstructors):

  • test262/test/built-ins/TypedArrayConstructors/internals/DefineOwnProperty/key-is-not-numeric-index-throws.js: Added.

(testWithTypedArrayConstructors):

  • test262/test/built-ins/TypedArrayConstructors/internals/DefineOwnProperty/key-is-numericindex-accessor-desc-throws.js: Added.

(testWithTypedArrayConstructors.):
(testWithTypedArrayConstructors.get assert):
(testWithTypedArrayConstructors.set assert):

  • test262/test/built-ins/TypedArrayConstructors/internals/DefineOwnProperty/key-is-numericindex-desc-configurable.js:
  • test262/test/built-ins/TypedArrayConstructors/internals/DefineOwnProperty/key-is-numericindex-desc-not-configurable-throws.js: Added.

(testWithTypedArrayConstructors):

  • test262/test/built-ins/TypedArrayConstructors/internals/DefineOwnProperty/key-is-numericindex-desc-not-enumerable-throws.js: Added.

(testWithTypedArrayConstructors):

  • test262/test/built-ins/TypedArrayConstructors/internals/DefineOwnProperty/key-is-numericindex-desc-not-writable-throws.js: Added.

(testWithTypedArrayConstructors):

  • test262/test/built-ins/TypedArrayConstructors/internals/DefineOwnProperty/tonumber-value-detached-buffer.js:

(testWithTypedArrayConstructors):

  • test262/test/built-ins/TypedArrayConstructors/internals/Delete/key-is-symbol.js:
  • test262/test/built-ins/TypedArrayConstructors/internals/HasProperty/resizable-array-buffer-auto.js: Added.

(inspect):
(testWithTypedArrayConstructors):

  • test262/test/built-ins/TypedArrayConstructors/internals/HasProperty/resizable-array-buffer-fixed.js: Added.

(inspect):
(testWithTypedArrayConstructors):

  • test262/test/built-ins/TypedArrayConstructors/internals/OwnPropertyKeys/integer-indexes-resizable-array-buffer-auto.js: Added.

(testWithTypedArrayConstructors):

  • test262/test/built-ins/TypedArrayConstructors/internals/OwnPropertyKeys/integer-indexes-resizable-array-buffer-fixed.js: Added.

(testWithTypedArrayConstructors):

  • test262/test/intl402/DateTimeFormat/constructor-options-style-conflict.js: Added.
  • test262/test/intl402/Locale/prototype/calendars/branding.js: Added.
  • test262/test/intl402/Locale/prototype/calendars/name.js: Added.
  • test262/test/intl402/Locale/prototype/calendars/output-array.js: Added.
  • test262/test/intl402/Locale/prototype/calendars/prop-desc.js: Added.
  • test262/test/intl402/Locale/prototype/collations/branding.js: Added.
  • test262/test/intl402/Locale/prototype/collations/name.js: Added.
  • test262/test/intl402/Locale/prototype/collations/output-array-values.js: Added.
  • test262/test/intl402/Locale/prototype/collations/output-array.js: Added.
  • test262/test/intl402/Locale/prototype/collations/prop-desc.js: Added.
  • test262/test/intl402/Locale/prototype/hourCycles/branding.js: Added.
  • test262/test/intl402/Locale/prototype/hourCycles/name.js: Added.
  • test262/test/intl402/Locale/prototype/hourCycles/output-array-values.js: Added.
  • test262/test/intl402/Locale/prototype/hourCycles/output-array.js: Added.
  • test262/test/intl402/Locale/prototype/hourCycles/prop-desc.js: Added.
  • test262/test/intl402/Locale/prototype/numberingSystems/branding.js: Added.
  • test262/test/intl402/Locale/prototype/numberingSystems/name.js: Added.
  • test262/test/intl402/Locale/prototype/numberingSystems/output-array.js: Added.
  • test262/test/intl402/Locale/prototype/numberingSystems/prop-desc.js: Added.
  • test262/test/intl402/Locale/prototype/textInfo/branding.js: Added.
  • test262/test/intl402/Locale/prototype/textInfo/name.js: Added.
  • test262/test/intl402/Locale/prototype/textInfo/output-object-keys.js: Added.
  • test262/test/intl402/Locale/prototype/textInfo/output-object.js: Added.
  • test262/test/intl402/Locale/prototype/textInfo/prop-desc.js: Added.
  • test262/test/intl402/Locale/prototype/timeZones/branding.js: Added.
  • test262/test/intl402/Locale/prototype/timeZones/name.js: Added.
  • test262/test/intl402/Locale/prototype/timeZones/output-array-sorted.js: Added.
  • test262/test/intl402/Locale/prototype/timeZones/output-array.js: Added.
  • test262/test/intl402/Locale/prototype/timeZones/output-undefined.js: Added.
  • test262/test/intl402/Locale/prototype/timeZones/prop-desc.js: Added.
  • test262/test/intl402/Locale/prototype/weekInfo/branding.js: Added.
  • test262/test/intl402/Locale/prototype/weekInfo/name.js: Added.
  • test262/test/intl402/Locale/prototype/weekInfo/output-object-keys.js: Added.
  • test262/test/intl402/Locale/prototype/weekInfo/output-object.js: Added.
  • test262/test/intl402/Locale/prototype/weekInfo/prop-desc.js: Added.
  • test262/test/intl402/Segmenter/constructor/supportedLocalesOf/locales-specific.js:
  • test262/test/intl402/Segmenter/prototype/segment/containing/iswordlike.js:

(other_granularities.forEach):

  • test262/test/intl402/Segmenter/prototype/segment/containing/one-index.js:

(toString):
(valueOf):
(Symbol.toPrimitive):

  • test262/test/intl402/Segmenter/prototype/segment/containing/out-of-bound-index.js:

(toString):
(valueOf):
(Symbol.toPrimitive):

  • test262/test/intl402/Segmenter/prototype/segment/containing/word-iswordlike.js:

(inputs.forEach):

  • test262/test/intl402/Segmenter/prototype/segment/containing/zero-index.js:

(toString):
(valueOf):
(Symbol.toPrimitive):

  • test262/test/intl402/Segmenter/prototype/segment/segment-grapheme-iterable.js:

(const.v.of.seg.segment):

  • test262/test/intl402/Segmenter/prototype/segment/segment-sentence-iterable.js:

(const.v.of.seg.segment):

  • test262/test/intl402/Segmenter/prototype/segment/segment-word-iterable.js:

(const.v.of.seg.segment):

  • test262/test/intl402/fallback-locales-are-supported.js:

(testWithIntlConstructors):

  • test262/test/intl402/supportedLocalesOf-consistent-with-resolvedOptions.js:

(testWithIntlConstructors):

  • test262/test/intl402/supportedLocalesOf-unicode-extensions-ignored.js:

(testWithIntlConstructors.):
(testWithIntlConstructors):

  • test262/test/language/expressions/arrow-function/extensibility.js: Added.

(assert.Object.isExtensible):

  • test262/test/language/expressions/arrow-function/syntax/arrowparameters-cover-initialize-2.js:
  • test262/test/language/expressions/assignment/S11.13.1_A7_T1.js: Removed.
  • test262/test/language/expressions/assignment/S11.13.1_A7_T2.js: Removed.
  • test262/test/language/expressions/assignment/target-member-computed-reference-null.js: Added.

(DummyError):
(prop):
(expr):
(prop.toString):

  • test262/test/language/expressions/assignment/target-member-computed-reference-undefined.js: Added.

(DummyError):
(prop):
(expr):
(prop.toString):

  • test262/test/language/expressions/assignment/target-member-identifier-reference-null.js: Added.
  • test262/test/language/expressions/assignment/target-member-identifier-reference-undefined.js: Added.
  • test262/test/language/expressions/assignment/target-super-computed-reference-null.js: Added.

(C.m):
(C):

  • test262/test/language/expressions/assignment/target-super-identifier-reference-null.js: Added.

(C.m):
(C):

  • test262/test/language/expressions/delete/member-computed-reference-null.js: Added.
  • test262/test/language/expressions/delete/member-computed-reference-undefined.js: Added.
  • test262/test/language/expressions/delete/member-identifier-reference-null.js: Added.
  • test262/test/language/expressions/delete/member-identifier-reference-undefined.js: Added.
  • test262/test/language/expressions/delete/super-property-null-base.js: Added.

(C.m):
(C):

  • test262/test/language/expressions/dynamic-import/2nd-param-assert-enumeration-abrupt.js: Added.

(options.ownKeys):
(options.then):

  • test262/test/language/expressions/dynamic-import/2nd-param-assert-enumeration.js: Added.

(options.ownKeys):
(options.get _):
(options.getOwnPropertyDescriptor):
(options.then):

  • test262/test/language/expressions/dynamic-import/2nd-param-assert-non-object.js: Added.

(test):
(string_appeared_here.then):

  • test262/test/language/expressions/dynamic-import/2nd-param-assert-undefined.js: Added.

(then):

  • test262/test/language/expressions/dynamic-import/2nd-param-assert-value-abrupt.js: Added.

(assert.get string_appeared_here):
(then):

  • test262/test/language/expressions/dynamic-import/2nd-param-assert-value-non-string.js: Added.

(test):
(string_appeared_here.then):

  • test262/test/language/expressions/dynamic-import/2nd-param-await-expr.js: Added.
  • test262/test/language/expressions/dynamic-import/2nd-param-await-ident.js: Added.

(await):
(await.undefined.then):

  • test262/test/language/expressions/dynamic-import/2nd-param-evaluation-abrupt-return.js: Added.

(iter):

  • test262/test/language/expressions/dynamic-import/2nd-param-evaluation-abrupt-throw.js: Added.

(throwError):

  • test262/test/language/expressions/dynamic-import/2nd-param-evaluation-sequence.js: Added.
  • test262/test/language/expressions/dynamic-import/2nd-param-get-assert-error.js: Added.

(options.get assert):
(options.then):

  • test262/test/language/expressions/dynamic-import/2nd-param-in.js: Added.

(promise.then):

  • test262/test/language/expressions/dynamic-import/2nd-param-non-object.js: Added.

(test):
(string_appeared_here.then):

  • test262/test/language/expressions/dynamic-import/2nd-param-trailing-comma-fulfill.js: Added.

(then):

  • test262/test/language/expressions/dynamic-import/2nd-param-trailing-comma-reject.js: Added.

(import.toString):
(then):

  • test262/test/language/expressions/dynamic-import/2nd-param-yield-expr.js: Added.

(iter):
(promise.then):

  • test262/test/language/expressions/dynamic-import/2nd-param-yield-ident-invalid.js: Added.
  • test262/test/language/expressions/dynamic-import/2nd-param-yield-ident-valid.js: Added.

(yield.then):

  • test262/test/language/expressions/dynamic-import/2nd-param_FIXTURE.js: Added.
  • test262/test/language/expressions/dynamic-import/syntax/invalid/nested-arrow-assignment-expression-not-extensible-args.js:
  • test262/test/language/expressions/dynamic-import/syntax/invalid/nested-arrow-not-extensible-args.js:

(let.f):

  • test262/test/language/expressions/dynamic-import/syntax/invalid/nested-async-arrow-function-await-not-extensible-args.js:

(async await):

  • test262/test/language/expressions/dynamic-import/syntax/invalid/nested-async-arrow-function-return-await-not-extensible-args.js:

(async await):

  • test262/test/language/expressions/dynamic-import/syntax/invalid/nested-async-arrow-function-return-await-not-extensible-no-trailing-comma.js: Removed.
  • test262/test/language/expressions/dynamic-import/syntax/invalid/nested-async-function-await-not-extensible-args.js:

(async f):

  • test262/test/language/expressions/dynamic-import/syntax/invalid/nested-async-function-not-extensible-args.js:

(async f):

  • test262/test/language/expressions/dynamic-import/syntax/invalid/nested-async-function-return-await-not-extensible-args.js:

(async f):

  • test262/test/language/expressions/dynamic-import/syntax/invalid/nested-async-function-return-await-not-extensible-no-trailing-comma.js: Removed.
  • test262/test/language/expressions/dynamic-import/syntax/invalid/nested-async-gen-await-not-extensible-args.js:

(async f):

  • test262/test/language/expressions/dynamic-import/syntax/invalid/nested-block-labeled-not-extensible-args.js:
  • test262/test/language/expressions/dynamic-import/syntax/invalid/nested-block-not-extensible-args.js:

(DONOTEVALUATE):

  • test262/test/language/expressions/dynamic-import/syntax/invalid/nested-do-while-not-extensible-args.js:
  • test262/test/language/expressions/dynamic-import/syntax/invalid/nested-else-braceless-not-extensible-args.js:
  • test262/test/language/expressions/dynamic-import/syntax/invalid/nested-else-not-extensible-args.js:
  • test262/test/language/expressions/dynamic-import/syntax/invalid/nested-function-not-extensible-args.js:

(fn):

  • test262/test/language/expressions/dynamic-import/syntax/invalid/nested-function-return-not-extensible-args.js:

(fn):

  • test262/test/language/expressions/dynamic-import/syntax/invalid/nested-if-braceless-not-extensible-args.js:
  • test262/test/language/expressions/dynamic-import/syntax/invalid/nested-if-braceless-not-extensible-no-trailing-comma.js: Removed.
  • test262/test/language/expressions/dynamic-import/syntax/invalid/nested-if-not-extensible-args.js:
  • test262/test/language/expressions/dynamic-import/syntax/invalid/nested-while-not-extensible-args.js:
  • test262/test/language/expressions/dynamic-import/syntax/invalid/nested-with-expression-not-extensible-args.js:

(with.import):

  • test262/test/language/expressions/dynamic-import/syntax/invalid/nested-with-not-extensible-args.js:

(with):

  • test262/test/language/expressions/dynamic-import/syntax/invalid/top-level-not-extensible-args.js:
  • test262/test/language/expressions/dynamic-import/syntax/invalid/top-level-not-extensible-no-trailing-comma.js: Removed.
  • test262/test/language/expressions/dynamic-import/syntax/valid/nested-arrow-assignment-expression-trailing-comma-first.js: Copied from JSTests/test262/test/language/expressions/dynamic-import/syntax/invalid/nested-arrow-assignment-expression-not-extensible-args.js.
  • test262/test/language/expressions/dynamic-import/syntax/valid/nested-arrow-assignment-expression-trailing-comma-second.js: Copied from JSTests/test262/test/language/expressions/dynamic-import/syntax/invalid/nested-arrow-assignment-expression-not-extensible-args.js.
  • test262/test/language/expressions/dynamic-import/syntax/valid/nested-arrow-trailing-comma-first.js: Renamed from JSTests/test262/test/language/expressions/dynamic-import/syntax/invalid/nested-arrow-not-extensible-no-trailing-comma.js.

(let.f):

  • test262/test/language/expressions/dynamic-import/syntax/valid/nested-arrow-trailing-comma-second.js: Copied from JSTests/test262/test/language/expressions/dynamic-import/syntax/invalid/nested-arrow-not-extensible-args.js.

(let.f):

  • test262/test/language/expressions/dynamic-import/syntax/valid/nested-async-arrow-function-await-trailing-comma-first.js: Renamed from JSTests/test262/test/language/expressions/dynamic-import/syntax/invalid/nested-async-arrow-function-await-not-extensible-no-trailing-comma.js.
  • test262/test/language/expressions/dynamic-import/syntax/valid/nested-async-arrow-function-await-trailing-comma-second.js: Copied from JSTests/test262/test/language/expressions/dynamic-import/syntax/invalid/nested-async-arrow-function-await-not-extensible-args.js.

(async await):

  • test262/test/language/expressions/dynamic-import/syntax/valid/nested-async-arrow-function-return-await-trailing-comma-first.js: Copied from JSTests/test262/test/language/expressions/dynamic-import/syntax/invalid/nested-arrow-assignment-expression-not-extensible-args.js.
  • test262/test/language/expressions/dynamic-import/syntax/valid/nested-async-arrow-function-return-await-trailing-comma-second.js: Copied from JSTests/test262/test/language/expressions/dynamic-import/syntax/invalid/nested-arrow-assignment-expression-not-extensible-args.js.

(async await):

  • test262/test/language/expressions/dynamic-import/syntax/valid/nested-async-function-await-trailing-comma-first.js: Copied from JSTests/test262/test/language/expressions/dynamic-import/syntax/invalid/nested-async-function-await-not-extensible-args.js.

(async f):

  • test262/test/language/expressions/dynamic-import/syntax/valid/nested-async-function-await-trailing-comma-second.js: Copied from JSTests/test262/test/language/expressions/dynamic-import/syntax/invalid/nested-async-function-await-not-extensible-args.js.

(async f):

  • test262/test/language/expressions/dynamic-import/syntax/valid/nested-async-function-return-await-trailing-comma-first.js: Copied from JSTests/test262/test/language/expressions/dynamic-import/syntax/invalid/nested-async-function-await-not-extensible-args.js.

(async f):

  • test262/test/language/expressions/dynamic-import/syntax/valid/nested-async-function-return-await-trailing-comma-second.js: Copied from JSTests/test262/test/language/expressions/dynamic-import/syntax/invalid/nested-async-function-await-not-extensible-args.js.

(async f):

  • test262/test/language/expressions/dynamic-import/syntax/valid/nested-async-function-trailing-comma-first.js: Renamed from JSTests/test262/test/language/expressions/dynamic-import/syntax/invalid/nested-async-function-await-not-extensible-no-trailing-comma.js.

(async f):

  • test262/test/language/expressions/dynamic-import/syntax/valid/nested-async-function-trailing-comma-second.js: Renamed from JSTests/test262/test/language/expressions/dynamic-import/syntax/invalid/nested-async-function-not-extensible-no-trailing-comma.js.

(async f):

  • test262/test/language/expressions/dynamic-import/syntax/valid/nested-async-gen-await-trailing-comma-first.js: Renamed from JSTests/test262/test/language/expressions/dynamic-import/syntax/invalid/nested-async-gen-await-not-extensible-no-trailing-comma.js.

(async f):

  • test262/test/language/expressions/dynamic-import/syntax/valid/nested-async-gen-await-trailing-comma-second.js: Copied from JSTests/test262/test/language/expressions/dynamic-import/syntax/invalid/nested-async-gen-await-not-extensible-args.js.

(async f):

  • test262/test/language/expressions/dynamic-import/syntax/valid/nested-block-labeled-trailing-comma-first.js: Renamed from JSTests/test262/test/language/expressions/dynamic-import/syntax/invalid/nested-block-labeled-not-extensible-no-trailing-comma.js.
  • test262/test/language/expressions/dynamic-import/syntax/valid/nested-block-labeled-trailing-comma-second.js: Copied from JSTests/test262/test/language/expressions/dynamic-import/syntax/invalid/nested-block-labeled-not-extensible-args.js.
  • test262/test/language/expressions/dynamic-import/syntax/valid/nested-block-trailing-comma-first.js: Renamed from JSTests/test262/test/language/expressions/dynamic-import/syntax/invalid/nested-block-not-extensible-no-trailing-comma.js.
  • test262/test/language/expressions/dynamic-import/syntax/valid/nested-block-trailing-comma-second.js: Copied from JSTests/test262/test/language/expressions/dynamic-import/syntax/invalid/nested-block-not-extensible-args.js.
  • test262/test/language/expressions/dynamic-import/syntax/valid/nested-do-while-trailing-comma-first.js: Renamed from JSTests/test262/test/language/expressions/dynamic-import/syntax/invalid/nested-do-while-not-extensible-no-trailing-comma.js.
  • test262/test/language/expressions/dynamic-import/syntax/valid/nested-do-while-trailing-comma-second.js: Copied from JSTests/test262/test/language/expressions/dynamic-import/syntax/invalid/nested-do-while-not-extensible-args.js.
  • test262/test/language/expressions/dynamic-import/syntax/valid/nested-else-braceless-trailing-comma-first.js: Renamed from JSTests/test262/test/language/expressions/dynamic-import/syntax/invalid/nested-else-braceless-not-extensible-no-trailing-comma.js.
  • test262/test/language/expressions/dynamic-import/syntax/valid/nested-else-braceless-trailing-comma-second.js: Copied from JSTests/test262/test/language/expressions/dynamic-import/syntax/invalid/nested-else-braceless-not-extensible-args.js.
  • test262/test/language/expressions/dynamic-import/syntax/valid/nested-else-trailing-comma-first.js: Renamed from JSTests/test262/test/language/expressions/dynamic-import/syntax/invalid/nested-else-not-extensible-no-trailing-comma.js.
  • test262/test/language/expressions/dynamic-import/syntax/valid/nested-else-trailing-comma-second.js: Copied from JSTests/test262/test/language/expressions/dynamic-import/syntax/invalid/nested-else-not-extensible-args.js.
  • test262/test/language/expressions/dynamic-import/syntax/valid/nested-function-return-trailing-comma-first.js: Copied from JSTests/test262/test/language/expressions/dynamic-import/syntax/invalid/nested-function-return-not-extensible-args.js.

(fn):

  • test262/test/language/expressions/dynamic-import/syntax/valid/nested-function-return-trailing-comma-second.js: Copied from JSTests/test262/test/language/expressions/dynamic-import/syntax/invalid/nested-function-return-not-extensible-args.js.

(fn):

  • test262/test/language/expressions/dynamic-import/syntax/valid/nested-function-trailing-comma-first.js: Renamed from JSTests/test262/test/language/expressions/dynamic-import/syntax/invalid/nested-function-not-extensible-no-trailing-comma.js.

(fn):

  • test262/test/language/expressions/dynamic-import/syntax/valid/nested-function-trailing-comma-second.js: Renamed from JSTests/test262/test/language/expressions/dynamic-import/syntax/invalid/nested-function-return-not-extensible-no-trailing-comma.js.

(fn):

  • test262/test/language/expressions/dynamic-import/syntax/valid/nested-if-braceless-trailing-comma-first.js: Renamed from JSTests/test262/test/language/expressions/dynamic-import/syntax/invalid/nested-arrow-assignment-expression-not-extensible-no-trailing-comma.js.
  • test262/test/language/expressions/dynamic-import/syntax/valid/nested-if-braceless-trailing-comma-second.js: Copied from JSTests/test262/test/language/expressions/dynamic-import/syntax/invalid/nested-arrow-assignment-expression-not-extensible-args.js.
  • test262/test/language/expressions/dynamic-import/syntax/valid/nested-if-trailing-comma-first.js: Renamed from JSTests/test262/test/language/expressions/dynamic-import/syntax/invalid/nested-if-not-extensible-no-trailing-comma.js.
  • test262/test/language/expressions/dynamic-import/syntax/valid/nested-if-trailing-comma-second.js: Copied from JSTests/test262/test/language/expressions/dynamic-import/syntax/invalid/nested-if-not-extensible-args.js.
  • test262/test/language/expressions/dynamic-import/syntax/valid/nested-while-trailing-comma-first.js: Renamed from JSTests/test262/test/language/expressions/dynamic-import/syntax/invalid/nested-while-not-extensible-no-trailing-comma.js.
  • test262/test/language/expressions/dynamic-import/syntax/valid/nested-while-trailing-comma-second.js: Copied from JSTests/test262/test/language/expressions/dynamic-import/syntax/invalid/nested-while-not-extensible-args.js.
  • test262/test/language/expressions/dynamic-import/syntax/valid/nested-with-expression-trailing-comma-first.js: Copied from JSTests/test262/test/language/expressions/dynamic-import/syntax/invalid/nested-with-not-extensible-args.js.

(with.import):

  • test262/test/language/expressions/dynamic-import/syntax/valid/nested-with-expression-trailing-comma-second.js: Copied from JSTests/test262/test/language/expressions/dynamic-import/syntax/invalid/nested-with-not-extensible-args.js.

(with.import):

  • test262/test/language/expressions/dynamic-import/syntax/valid/nested-with-trailing-comma-first.js: Renamed from JSTests/test262/test/language/expressions/dynamic-import/syntax/invalid/nested-with-not-extensible-no-trailing-comma.js.

(with):

  • test262/test/language/expressions/dynamic-import/syntax/valid/nested-with-trailing-comma-second.js: Renamed from JSTests/test262/test/language/expressions/dynamic-import/syntax/invalid/nested-with-expression-not-extensible-no-trailing-comma.js.

(with):

  • test262/test/language/expressions/dynamic-import/syntax/valid/top-level-trailing-comma-first.js: Added.
  • test262/test/language/expressions/dynamic-import/syntax/valid/top-level-trailing-comma-second.js: Added.
  • test262/test/language/expressions/dynamic-import/trailing-comma-fulfill.js: Added.

(then):

  • test262/test/language/expressions/dynamic-import/trailing-comma-reject.js: Added.

(import.toString):
(then):

  • test262/test/language/expressions/template-literal/invalid-legacy-octal-escape-sequence-8.js:
  • test262/test/language/expressions/template-literal/invalid-legacy-octal-escape-sequence-9.js:
  • test262/test/language/expressions/template-literal/invalid-legacy-octal-escape-sequence.js:
  • test262/test/language/import/json-extensibility-array.js: Added.
  • test262/test/language/import/json-extensibility-object.js: Added.
  • test262/test/language/import/json-idempotency-indirect_FIXTURE.js: Added.
  • test262/test/language/import/json-idempotency.js: Added.

(then):

  • test262/test/language/import/json-invalid.js: Added.
  • test262/test/language/import/json-named-bindings.js: Added.
  • test262/test/language/import/json-value-array.js: Added.
  • test262/test/language/import/json-value-boolean.js: Added.
  • test262/test/language/import/json-value-null.js: Added.
  • test262/test/language/import/json-value-number.js: Added.
  • test262/test/language/import/json-value-object.js: Added.
  • test262/test/language/import/json-value-string.js: Added.
  • test262/test/language/import/json-via-namespace.js: Added.
  • test262/test/language/literals/numeric/legacy-octal-integer-strict.js:
  • test262/test/language/literals/numeric/legacy-octal-integer.js: Renamed from JSTests/test262/test/annexB/language/literals/numeric/legacy-octal-integer.js.
  • test262/test/language/literals/numeric/non-octal-decimal-integer-strict.js:
  • test262/test/language/literals/numeric/non-octal-decimal-integer.js: Renamed from JSTests/test262/test/annexB/language/literals/numeric/non-octal-decimal-integer.js.
  • test262/test/language/literals/string/legacy-non-octal-escape-sequence-1-strict-explicit-pragma.js:
  • test262/test/language/literals/string/legacy-non-octal-escape-sequence-2-strict-explicit-pragma.js:
  • test262/test/language/literals/string/legacy-non-octal-escape-sequence-3-strict-explicit-pragma.js:
  • test262/test/language/literals/string/legacy-non-octal-escape-sequence-4-strict-explicit-pragma.js:
  • test262/test/language/literals/string/legacy-non-octal-escape-sequence-5-strict-explicit-pragma.js:
  • test262/test/language/literals/string/legacy-non-octal-escape-sequence-6-strict-explicit-pragma.js:
  • test262/test/language/literals/string/legacy-non-octal-escape-sequence-7-strict-explicit-pragma.js:
  • test262/test/language/literals/string/legacy-non-octal-escape-sequence-8-non-strict.js: Added.
  • test262/test/language/literals/string/legacy-non-octal-escape-sequence-8-strict-explicit-pragma.js:
  • test262/test/language/literals/string/legacy-non-octal-escape-sequence-8-strict.js:
  • test262/test/language/literals/string/legacy-non-octal-escape-sequence-9-non-strict.js: Added.
  • test262/test/language/literals/string/legacy-non-octal-escape-sequence-9-strict-explicit-pragma.js:
  • test262/test/language/literals/string/legacy-non-octal-escape-sequence-9-strict.js:
  • test262/test/language/literals/string/legacy-non-octal-escape-sequence-strict.js:
  • test262/test/language/literals/string/legacy-octal-escape-sequence-strict.js:
  • test262/test/language/literals/string/legacy-octal-escape-sequence.js: Renamed from JSTests/test262/test/annexB/language/literals/string/legacy-octal-escape-sequence.js.
  • test262/test/language/module-code/early-dup-assert-key-export.js: Added.
  • test262/test/language/module-code/early-dup-assert-key-import-nobinding.js: Added.
  • test262/test/language/module-code/early-dup-assert-key-import-withbinding.js: Added.
  • test262/test/language/module-code/early-export-ill-formed-string.js:
  • test262/test/language/module-code/eval-gtbndng-indirect-faux-assertion.js: Added.
  • test262/test/language/module-code/import-assertion-1_FIXTURE.js: Added.
  • test262/test/language/module-code/import-assertion-2_FIXTURE.js: Added.
  • test262/test/language/module-code/import-assertion-3_FIXTURE.js: Added.
  • test262/test/language/module-code/import-assertion-empty.js: Added.
  • test262/test/language/module-code/import-assertion-key-identifiername.js: Added.
  • test262/test/language/module-code/import-assertion-key-string-double.js: Added.
  • test262/test/language/module-code/import-assertion-key-string-single.js: Added.
  • test262/test/language/module-code/import-assertion-many.js: Added.
  • test262/test/language/module-code/import-assertion-newlines.js: Added.
  • test262/test/language/module-code/import-assertion-trlng-comma.js: Added.
  • test262/test/language/module-code/import-assertion-value-string-double.js: Added.
  • test262/test/language/module-code/import-assertion-value-string-single.js: Added.
  • test262/test/language/module-code/instn-star-as-props-dflt-skip.js:
  • test262/test/language/module-code/top-level-await/dfs-invariant-async_FIXTURE.js: Added.
  • test262/test/language/module-code/top-level-await/dfs-invariant-direct-1_FIXTURE.js: Added.
  • test262/test/language/module-code/top-level-await/dfs-invariant-direct-2_FIXTURE.js: Added.
  • test262/test/language/module-code/top-level-await/dfs-invariant-indirect_FIXTURE.js: Added.
  • test262/test/language/module-code/top-level-await/dfs-invariant.js: Added.
  • test262/test/language/statements/for-of/head-lhs-async-escaped.js: Added.
  • test262/test/language/statements/for-of/head-lhs-async-parens.js: Added.
  • test262/test262-Revision.txt:
1:08 PM Changeset in webkit [279808] by commit-queue@webkit.org
  • 6 edits
    2 deletes in trunk

Unreviewed, reverting r279803.
https://bugs.webkit.org/show_bug.cgi?id=227850

Introduce many crashes on AS-mac Debug bot

Reverted changeset:

"document.readyState should be "complete" after calling
DOMParser.parseFromString()"
https://bugs.webkit.org/show_bug.cgi?id=227846
https://commits.webkit.org/r279803

12:41 PM Changeset in webkit [279807] by Russell Epstein
  • 8 edits in branches/safari-612.1.22.1-branch/Source

Versioning.

WebKit-7612.1.22.1.5

9:56 AM Changeset in webkit [279806] by mmaxfield@apple.com
  • 3 edits in trunk/Source/WebKit

[GPU Process] Canvas drawing never releases any fonts
https://bugs.webkit.org/show_bug.cgi?id=227376
<rdar://problem/79741186>

Reviewed by Said Abou-Hallawa.

We have a frame counter which makes sure that fonts which haven't been used in n frames get released.
However, we currently only update the frame counter when we release fonts.
This means that the frame counter stays 0 forever. And we never release any fonts.

The fix is just to increment the frame counter even if we don't release any fonts.

No new tests because there is no architectural behavior change.

  • WebProcess/GPU/graphics/RemoteResourceCacheProxy.cpp:

(WebKit::RemoteResourceCacheProxy::prepareForNextRenderingUpdate):
(WebKit::RemoteResourceCacheProxy::clearFontMap):
(WebKit::RemoteResourceCacheProxy::didFinalizeRenderingUpdate):
(WebKit::RemoteResourceCacheProxy::remoteResourceCacheWasDestroyed):
(WebKit::RemoteResourceCacheProxy::releaseMemory):

  • WebProcess/GPU/graphics/RemoteResourceCacheProxy.h:
9:48 AM Changeset in webkit [279805] by Chris Dumez
  • 2 edits in trunk/Source/WebKit

Unreviewed follow-up to r279802 to address review feedback from Sam Weinig.

  • NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp:

(WebKit::buildList):

Jul 9, 2021:

10:35 PM Changeset in webkit [279804] by ntim@apple.com
  • 3 edits
    32 adds in trunk/LayoutTests

Import blink reference tests for <dialog> element
https://bugs.webkit.org/show_bug.cgi?id=227802

Reviewed by Simon Fraser.

From third_party/blink/web_tests/html/dialog/ in the Chromium repo.
Only imported reference tests.

  • TestExpectations:
  • imported/blink/dialog/backdrop-descendant-selector-expected.html: Added.
  • imported/blink/dialog/backdrop-descendant-selector.html: Added.
  • imported/blink/dialog/backdrop-does-not-inherit-expected.html: Added.
  • imported/blink/dialog/backdrop-does-not-inherit.html: Added.
  • imported/blink/dialog/backdrop-dynamic-style-change-expected.html: Added.
  • imported/blink/dialog/backdrop-dynamic-style-change.html: Added.
  • imported/blink/dialog/backdrop-in-flow-expected.html: Added.
  • imported/blink/dialog/backdrop-in-flow.html: Added.
  • imported/blink/dialog/backdrop-stacking-order-expected.html: Added.
  • imported/blink/dialog/backdrop-stacking-order.html: Added.
  • imported/blink/dialog/element-removed-from-top-layer-has-original-position-expected.html: Added.
  • imported/blink/dialog/element-removed-from-top-layer-has-original-position.html: Added.
  • imported/blink/dialog/inert-node-is-not-highlighted-expected.html:
  • imported/blink/dialog/modal-dialog-backdrop-expected.html: Added.
  • imported/blink/dialog/modal-dialog-backdrop.html: Added.
  • imported/blink/dialog/modal-dialog-generated-content-expected.html: Added.
  • imported/blink/dialog/modal-dialog-generated-content.html: Added.
  • imported/blink/dialog/removed-element-is-removed-from-top-layer-expected.html: Added.
  • imported/blink/dialog/removed-element-is-removed-from-top-layer.html: Added.
  • imported/blink/dialog/resources/dialog.css: Added.

(.pseudodialog):

  • imported/blink/dialog/top-layer-containing-block-expected.html: Added.
  • imported/blink/dialog/top-layer-containing-block.html: Added.
  • imported/blink/dialog/top-layer-display-none-expected.html: Added.
  • imported/blink/dialog/top-layer-display-none.html: Added.
  • imported/blink/dialog/top-layer-nesting-expected.html: Added.
  • imported/blink/dialog/top-layer-nesting.html: Added.
  • imported/blink/dialog/top-layer-stacking-correct-order-remove-readd-expected.html: Added.
  • imported/blink/dialog/top-layer-stacking-correct-order-remove-readd.html: Added.
  • imported/blink/dialog/top-layer-stacking-dynamic-expected.html: Added.
  • imported/blink/dialog/top-layer-stacking-dynamic.html: Added.
  • imported/blink/dialog/top-layer-stacking-expected.html: Added.
  • imported/blink/dialog/top-layer-stacking.html: Added.
10:21 PM Changeset in webkit [279803] by Chris Dumez
  • 5 edits
    2 adds in trunk

document.readyState should be "complete" after calling DOMParser.parseFromString()
https://bugs.webkit.org/show_bug.cgi?id=227846

Reviewed by Ryosuke Niwa.

LayoutTests/imported/w3c:

Rebaseline WPT test that is now passing.

  • web-platform-tests/domparsing/xmldomparser-expected.txt:

Source/WebCore:

document.readyState should be "complete" after calling DOMParser.parseFromString().

This is causing the following WPT test to fail in WebKit:
http://wpt.live/domparsing/xmldomparser.html

Both Gecko and Blink report the correct readyState here.

No new tests, rebaselined existing test.

  • dom/Document.cpp:

(WebCore::Document::explicitClose):
explicitClose() normally calls checkCompleted() which calls FrameLoader::checkCompleted(),
which ends up setting the document's ready state to "complete" and then calling
Document::implicitClose(). However, when the document has no frame (which is the case
for a document just created via DOMParser.parseFromString()), we would call
Document::implicitClose() directly, since we don't have a FrameLoader. As a result,
the document's ready state would stay "interactive". To address the issue, we now set
the document's ready state to "complete" before calling implicitClose(), similarly to
what FrameLoader::checkCompleted() would have done.

8:07 PM Changeset in webkit [279802] by Chris Dumez
  • 4 edits in trunk/Source

[ITP] Improve ResourceLoadStatisticsDatabaseStore's buildList() and use it in more places
https://bugs.webkit.org/show_bug.cgi?id=227843

Reviewed by Sam Weinig.

Source/WebCore:

Support passing a RegistrableDomain directly to StringBuilder::append().

  • platform/RegistrableDomain.h:

Source/WebKit:

Improve ResourceLoadStatisticsDatabaseStore's buildList() and use it in more places.

buildList() now works with String types (RegistrableDomain in this particular case) and
can take any container type in parameter.

  • NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp:

(WebKit::buildList):
(WebKit::ResourceLoadStatisticsDatabaseStore::incrementRecordsDeletedCountForDomains):
(WebKit::ResourceLoadStatisticsDatabaseStore::markAsPrevalentIfHasRedirectedToPrevalent):
(WebKit::ResourceLoadStatisticsDatabaseStore::findNotVeryPrevalentResources):
(WebKit::ResourceLoadStatisticsDatabaseStore::grandfatherDataForDomains):
(WebKit::ResourceLoadStatisticsDatabaseStore::setDomainsAsPrevalent):
(WebKit::ResourceLoadStatisticsDatabaseStore::clearGrandfathering):
(WebKit::ResourceLoadStatisticsDatabaseStore::pruneStatisticsIfNeeded):

8:00 PM Changeset in webkit [279801] by Russell Epstein
  • 1 copy in tags/Safari-612.1.22.1.4

Tag Safari-612.1.22.1.4.

6:03 PM Changeset in webkit [279800] by rniwa@webkit.org
  • 17 edits
    4 adds in trunk

ResizeObserver / IntersectionObserver memory leak on detached & out of reference elements
https://bugs.webkit.org/show_bug.cgi?id=227194
<rdar://problem/79839851>

Reviewed by Chris Dumez.

Source/WebCore:

The memory leak was caused by ResizeObserver and IntersectionObserver keeping their respective
JS wrapper objects alive so long as there are some observed elements by having pending
activity as ActiveDOMObjects. This is not the right GC model for these JS wrapper objects
since there is no obvious end to these activities. So long as the observed nodes are alive,
ResizeObserver and IntersectionObserver may get new observation entries queued later.

To address this issue, this patch reworks the way ResizeObserver and IntersectionObserver keep
their JS wrappers alive. Namely, they're no longer ActiveDOMObjects. Instead, their JS wrappers
would use their respective observed nodes as opaque roots. i.e. so long as any of the observed
nodes are kept alive by GC, then its observer's JS wrapper is kept alive.

ResizeObserver had an additional bug that every observed node was kept using GCReachableRef,
which obviously leaked every observed node until the observations were explicitly cleared.
This patch makes only the target elements of the active observations (i.e. there are entries
to be delivered to the observer callback) are kept alive with GCReachableRef as done with
IntersectionObserver and MutationObserver.

Finally, this patch fixes the bug that IntersectionObserver wasn't keeping its root node alive.
We even had a test which was testing this erroneously behavior. The test has been rewritten to
expect the new behavior.

Tests: intersection-observer/intersection-observer-should-not-leak-observed-nodes.html

intersection-observer/root-element-deleted.html
resize-observer/resize-observer-should-not-leak-observed-nodes.html

  • bindings/js/JSIntersectionObserverCustom.cpp:

(WebCore::JSIntersectionObserver::visitAdditionalChildren): Add the root node as an opaque root.
This has an effect of keeping the root node alive so long as IntersectionObserver is alive.
(WebCore::JSIntersectionObserverOwner::isReachableFromOpaqueRoots): Added.

  • bindings/js/JSResizeObserverCustom.cpp:

(WebCore::JSResizeObserverOwner::isReachableFromOpaqueRoots): Added.

  • dom/Document.cpp:

(WebCore::Document::updateIntersectionObservations):

  • html/LazyLoadFrameObserver.cpp:

(WebCore::LazyLoadFrameObserver::isObserved const):

  • html/LazyLoadImageObserver.cpp:

(WebCore::LazyLoadImageObserver::isObserved const):

  • page/IntersectionObserver.cpp:

(WebCore::IntersectionObserver::create):
(WebCore::IntersectionObserver::IntersectionObserver):
(WebCore::IntersectionObserver::~IntersectionObserver):
(WebCore::IntersectionObserver::isObserving const): Added.
(WebCore::IntersectionObserver::observe):
(WebCore::IntersectionObserver::virtualHasPendingActivity const): Deleted.
(WebCore::IntersectionObserver::activeDOMObjectName const): Deleted.
(WebCore::IntersectionObserver::stop): Deleted.
(WebCore::IntersectionObserver::isReachableFromOpaqueRoots const): Added.

  • page/IntersectionObserver.h:

(WebCore::IntersectionObserver::root const):
(WebCore::IntersectionObserver::observationTargets const):
(WebCore::IntersectionObserver::hasObservationTargets const):

  • page/IntersectionObserver.idl:
  • page/ResizeObservation.cpp:

(WebCore::ResizeObservation::create):
(WebCore::ResizeObservation::ResizeObservation):
(WebCore::ResizeObservation::targetElementDepth const):

  • page/ResizeObservation.h:

(WebCore::ResizeObservation::target const):
(WebCore::ResizeObservation): Renamed m_pendingTargets to m_activeObservationTargets to reflect
the new semantics.

  • page/ResizeObserver.cpp:

(WebCore::ResizeObserver::ResizeObserver):
(WebCore::ResizeObserver::observe): Don't store the new observation target with GCReachableRef as
that would result in an immediate leak of this element.
(WebCore::ResizeObserver::gatherObservations): Now that we have an active observation (i.e. there
is an entry to be delivered to the JS callback), store the target element using GCReachableRef.
This keeps the JS wrapper of this target element alive between now and when the JS callback is
notified of this element's resize. Without this GCReachableRef, JS wrapper of the element can be
erroneously collected when there is no JS reference to the element and the element is no longer in
any live document. Note that this GC behavior is already tested by existing tests. This patch
simply delays the use of GCReachableRef from when ResizeObserver started observing this element
to when we created an active observation for the element; this is because GCReachableRef like
a pending activity of ActiveDOMObject is only appropriate when there is a definite end to it.
(WebCore::ResizeObserver::isReachableFromOpaqueRoots const): Added.
(WebCore::ResizeObserver::removeAllTargets):
(WebCore::ResizeObserver::removeObservation):
(WebCore::ResizeObserver::virtualHasPendingActivity const): Deleted.
(WebCore::ResizeObserver::activeDOMObjectName const): Deleted.
(WebCore::ResizeObserver::stop): Deleted.

  • page/ResizeObserver.h:
  • page/ResizeObserver.idl:

LayoutTests:

Added regression tests for leaking nodes with IntersectionObserver and ResizeObsever.

Also rewrote intersection-observer/root-element-deleted.html since the test was previously asserting
that IntersectionObserver.root becomes null if it was no longer in the document, which is wrong.

  • intersection-observer/intersection-observer-should-not-leak-observed-nodes-expected.txt: Added.
  • intersection-observer/intersection-observer-should-not-leak-observed-nodes.html: Added.
  • intersection-observer/root-element-deleted-expected.txt:
  • intersection-observer/root-element-deleted.html:
  • resize-observer/resize-observer-should-not-leak-observed-nodes-expected.txt: Added.
  • resize-observer/resize-observer-should-not-leak-observed-nodes.html: Added.
4:00 PM Changeset in webkit [279799] by Ruben Turcios
  • 1 copy in tags/Safari-612.1.23

Tag Safari-612.1.23.

3:30 PM Changeset in webkit [279798] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

REGRESSION: [ macOS wk2 ] inspector/canvas/create-context-bitmaprenderer.html is flaky failing
https://bugs.webkit.org/show_bug.cgi?id=207141

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations: Switch expectation from release to debug.
3:00 PM Changeset in webkit [279797] by Ruben Turcios
  • 9 edits in branches/safari-612.1.23-branch/Source/WebKit

Cherry-pick r279591. rdar://problem/80395422

Collect Accessibility preferences on a background queue
https://bugs.webkit.org/show_bug.cgi?id=227617
<rdar://80055168>

Reviewed by Brent Fulgham.

To avoid blocking the main thread of the UI process, collect Media Accessibility preferences on a background thread,
and send them to the WebContent process(es).

  • Shared/AccessibilityPreferences.cpp: (IPC::ArgumentCoder<WebKit::AccessibilityPreferences>::encode): (IPC::ArgumentCoder<WebKit::AccessibilityPreferences>::decode):
  • Shared/AccessibilityPreferences.h:
  • UIProcess/Cocoa/WebProcessPoolCocoa.mm: (WebKit::accessibilityPreferences): (WebKit::WebProcessPool::setMediaAccessibilityPreferences): (WebKit::WebProcessPool::mediaAccessibilityPreferencesChangedCallback): (WebKit::WebProcessPool::registerNotificationObservers):
  • UIProcess/WebProcessPool.cpp: (WebKit::WebProcessPool::initializeNewWebProcess):
  • UIProcess/WebProcessPool.h:
  • WebProcess/WebProcess.h:
  • WebProcess/WebProcess.messages.in:
  • WebProcess/cocoa/WebProcessCocoa.mm: (WebKit::WebProcess::accessibilityPreferencesDidChange): (WebKit::WebProcess::setMediaAccessibilityPreferences):

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

2:54 PM Changeset in webkit [279796] by jer.noble@apple.com
  • 6 edits
    1 copy in trunk/Source/WebKit

[Cocoa] Allow the UIProcess to set logging parameters in the GPUProcess
https://bugs.webkit.org/show_bug.cgi?id=227822

Reviewed by Eric Carlson.

For release builds, logLevelString() will return an empty string. Instead, do the same thing
for GPUProcessProxy as we do for WebProcessPool: have a platform-specific initialization
function that, for Cocoa ports, reads log strings from NSUserDefaults.

Drive-by fix: Include <optional> in WKContentPicker.h to work around a unified build error.

  • SourcesCocoa.txt:
  • UIProcess/Cocoa/GPUProcessProxyCocoa.mm: Added.

(WebKit::GPUProcessProxy::platformInitializeGPUProcessParameters):

  • UIProcess/Cocoa/WKContactPicker.h:
  • UIProcess/GPU/GPUProcessProxy.cpp:

(WebKit::GPUProcessProxy::GPUProcessProxy):
(WebKit::GPUProcessProxy::platformInitializeGPUProcessParameters):

  • UIProcess/GPU/GPUProcessProxy.h:
  • WebKit.xcodeproj/project.pbxproj:
2:47 PM Changeset in webkit [279795] by Aditya Keerthi
  • 138 edits in trunk

[iOS] Increase contrast for textfields, checkboxes, and radio buttons
https://bugs.webkit.org/show_bug.cgi?id=227145
<rdar://problem/79470926>

Reviewed by Wenson Hsieh.

Source/WebCore:

Updated textfields, checkboxes, and radio buttons to have a
secondaryLabelColor border, ensuring a higher contrast than the
existing appearance.

Additionally, checkboxes and radio buttons have been updated
to use the system fill color when empty.

  • css/html.css:
  • rendering/RenderThemeIOS.h:
  • rendering/RenderThemeIOS.mm:

(WebCore::RenderThemeIOS::checkboxRadioBorderColor):
(WebCore::RenderThemeIOS::checkboxRadioBackgroundColor):
(WebCore::RenderThemeIOS::paintCheckbox):
(WebCore::RenderThemeIOS::paintRadio):

LayoutTests:

Rebaselined tests to account for changes in appearance.

  • platform/ios-simulator/fast/forms/auto-fill-button/hide-auto-fill-strong-password-viewable-treatment-when-form-is-reset-expected.txt:
  • platform/ios-simulator/fast/forms/auto-fill-button/input-credit-card-auto-fill-button-expected.txt:
  • platform/ios-simulator/fast/forms/auto-fill-button/input-strong-password-viewable-expected.txt:
  • platform/ios-simulator/fast/forms/datalist/datalist-textinput-appearance-expected.txt:
  • platform/ios-wk2/editing/input/caret-at-the-edge-of-input-expected.txt:
  • platform/ios-wk2/editing/input/reveal-caret-of-multiline-input-expected.txt:
  • platform/ios-wk2/editing/inserting/4960120-1-expected.txt:
  • platform/ios-wk2/editing/inserting/before-after-input-element-expected.txt:
  • platform/ios-wk2/editing/pasteboard/input-field-1-expected.txt:
  • platform/ios-wk2/editing/pasteboard/pasting-tabs-expected.txt:
  • platform/ios-wk2/editing/selection/4895428-3-expected.txt:
  • platform/ios-wk2/editing/selection/drag-select-1-expected.txt:
  • platform/ios-wk2/editing/selection/select-from-textfield-outwards-expected.txt:
  • platform/ios-wk2/fast/block/float/overhanging-tall-block-expected.txt:
  • platform/ios-wk2/fast/block/margin-collapse/103-expected.txt:
  • platform/ios-wk2/fast/dynamic/008-expected.txt:
  • platform/ios-wk2/fast/forms/basic-textareas-quirks-expected.txt:
  • platform/ios-wk2/fast/forms/input-appearance-preventDefault-expected.txt:
  • platform/ios-wk2/fast/forms/input-text-click-outside-expected.txt:
  • platform/ios-wk2/fast/forms/input-text-double-click-expected.txt:
  • platform/ios-wk2/fast/forms/input-text-drag-down-expected.txt:
  • platform/ios-wk2/fast/forms/input-text-option-delete-expected.txt:
  • platform/ios-wk2/fast/forms/textAreaLineHeight-expected.txt:
  • platform/ios-wk2/fast/forms/textarea-align-expected.txt:
  • platform/ios-wk2/fast/forms/textarea-placeholder-visibility-1-expected.txt:
  • platform/ios-wk2/fast/forms/textarea-placeholder-visibility-2-expected.txt:
  • platform/ios-wk2/fast/forms/textarea-scroll-height-expected.txt:
  • platform/ios-wk2/fast/forms/textarea-setinnerhtml-expected.txt:
  • platform/ios-wk2/fast/hidpi/resize-corner-hidpi-expected.txt:
  • platform/ios-wk2/fast/parser/entity-comment-in-textarea-expected.txt:
  • platform/ios-wk2/fast/parser/open-comment-in-textarea-expected.txt:
  • platform/ios-wk2/fast/text/international/rtl-white-space-pre-wrap-expected.txt:
  • platform/ios-wk2/fast/text/international/unicode-bidi-plaintext-in-textarea-expected.txt:
  • platform/ios-wk2/fast/transforms/transformed-focused-text-input-expected.txt:
  • platform/ios/editing/pasteboard/4806874-expected.txt:
  • platform/ios/editing/selection/3690703-2-expected.txt:
  • platform/ios/editing/selection/3690703-expected.txt:
  • platform/ios/editing/selection/3690719-expected.txt:
  • platform/ios/editing/selection/4975120-expected.txt:
  • platform/ios/fast/block/float/032-expected.txt:
  • platform/ios/fast/css/input-search-padding-expected.txt:
  • platform/ios/fast/css/line-height-expected.txt:
  • platform/ios/fast/css/text-overflow-input-expected.txt:
  • platform/ios/fast/dom/HTMLTextAreaElement/reset-textarea-expected.txt:
  • platform/ios/fast/events/context-no-deselect-expected.txt:
  • platform/ios/fast/forms/auto-fill-button/input-auto-fill-button-expected.txt:
  • platform/ios/fast/forms/auto-fill-button/input-contacts-auto-fill-button-expected.txt:
  • platform/ios/fast/forms/auto-fill-button/input-strong-password-auto-fill-button-expected.txt:
  • platform/ios/fast/forms/basic-inputs-expected.txt:
  • platform/ios/fast/forms/basic-textareas-expected.txt:
  • platform/ios/fast/forms/encoding-test-expected.txt:
  • platform/ios/fast/forms/fieldset-align-expected.txt:
  • platform/ios/fast/forms/floating-textfield-relayout-expected.txt:
  • platform/ios/fast/forms/form-element-geometry-expected.txt:
  • platform/ios/fast/forms/input-align-expected.txt:
  • platform/ios/fast/forms/input-appearance-bkcolor-expected.txt:
  • platform/ios/fast/forms/input-appearance-default-bkcolor-expected.txt:
  • platform/ios/fast/forms/input-appearance-disabled-expected.txt:
  • platform/ios/fast/forms/input-appearance-focus-expected.txt:
  • platform/ios/fast/forms/input-appearance-height-expected.txt:
  • platform/ios/fast/forms/input-appearance-selection-expected.txt:
  • platform/ios/fast/forms/input-appearance-visibility-expected.txt:
  • platform/ios/fast/forms/input-appearance-width-expected.txt:
  • platform/ios/fast/forms/input-disabled-color-expected.txt:
  • platform/ios/fast/forms/input-double-click-selection-gap-bug-expected.txt:
  • platform/ios/fast/forms/input-field-text-truncated-expected.txt:
  • platform/ios/fast/forms/input-placeholder-visibility-1-expected.txt:
  • platform/ios/fast/forms/input-placeholder-visibility-3-expected.txt:
  • platform/ios/fast/forms/input-spaces-expected.txt:
  • platform/ios/fast/forms/input-table-expected.txt:
  • platform/ios/fast/forms/input-text-click-inside-expected.txt:
  • platform/ios/fast/forms/input-text-scroll-left-on-blur-expected.txt:
  • platform/ios/fast/forms/input-text-self-emptying-click-expected.txt:
  • platform/ios/fast/forms/input-type-text-min-width-expected.txt:
  • platform/ios/fast/forms/input-value-expected.txt:
  • platform/ios/fast/forms/input-width-expected.txt:
  • platform/ios/fast/forms/minWidthPercent-expected.txt:
  • platform/ios/fast/forms/number/number-appearance-rtl-expected.txt:
  • platform/ios/fast/forms/number/number-appearance-spinbutton-disabled-readonly-expected.txt:
  • platform/ios/fast/forms/number/number-appearance-spinbutton-layer-expected.txt:
  • platform/ios/fast/forms/placeholder-pseudo-style-expected.txt:
  • platform/ios/fast/forms/plaintext-mode-2-expected.txt:
  • platform/ios/fast/forms/tabbing-input-iframe-expected.txt:
  • platform/ios/fast/forms/textarea-placeholder-pseudo-style-expected.txt:
  • platform/ios/fast/forms/textarea-scrollbar-expected.txt:
  • platform/ios/fast/forms/textarea-scrolled-type-expected.txt:
  • platform/ios/fast/forms/textarea-width-expected.txt:
  • platform/ios/fast/forms/textfield-focus-ring-expected.txt:
  • platform/ios/fast/forms/textfield-overflow-expected.txt:
  • platform/ios/fast/frames/take-focus-from-iframe-expected.txt:
  • platform/ios/fast/html/details-no-summary4-expected.txt:
  • platform/ios/fast/html/details-open-javascript-expected.txt:
  • platform/ios/fast/html/details-open2-expected.txt:
  • platform/ios/fast/html/details-open4-expected.txt:
  • platform/ios/fast/lists/dynamic-marker-crash-expected.txt:
  • platform/ios/fast/overflow/overflow-x-y-expected.txt:
  • platform/ios/fast/replaced/replaced-breaking-expected.txt:
  • platform/ios/fast/replaced/replaced-breaking-mixture-expected.txt:
  • platform/ios/fast/replaced/width100percent-textarea-expected.txt:
  • platform/ios/fast/replaced/width100percent-textfield-expected.txt:
  • platform/ios/fast/table/colspanMinWidth-expected.txt:
  • platform/ios/fast/table/spanOverlapRepaint-expected.txt:
  • platform/ios/fast/table/text-field-baseline-expected.txt:
  • platform/ios/imported/w3c/web-platform-tests/selection/selection-select-all-move-input-crash-expected.txt:
  • platform/ios/svg/custom/inline-svg-in-xhtml-expected.txt:
  • platform/ios/svg/hixie/mixed/003-expected.txt:
  • platform/ios/tables/mozilla/bugs/45621-expected.txt:
  • platform/ios/tables/mozilla/bugs/bug1188-expected.txt:
  • platform/ios/tables/mozilla/bugs/bug12384-expected.txt:
  • platform/ios/tables/mozilla/bugs/bug18359-expected.txt:
  • platform/ios/tables/mozilla/bugs/bug194024-expected.txt:
  • platform/ios/tables/mozilla/bugs/bug24200-expected.txt:
  • platform/ios/tables/mozilla/bugs/bug2479-2-expected.txt:
  • platform/ios/tables/mozilla/bugs/bug2479-3-expected.txt:
  • platform/ios/tables/mozilla/bugs/bug2479-4-expected.txt:
  • platform/ios/tables/mozilla/bugs/bug28928-expected.txt:
  • platform/ios/tables/mozilla/bugs/bug30559-expected.txt:
  • platform/ios/tables/mozilla/bugs/bug30692-expected.txt:
  • platform/ios/tables/mozilla/bugs/bug4382-expected.txt:
  • platform/ios/tables/mozilla/bugs/bug4527-expected.txt:
  • platform/ios/tables/mozilla/bugs/bug46368-1-expected.txt:
  • platform/ios/tables/mozilla/bugs/bug46368-2-expected.txt:
  • platform/ios/tables/mozilla/bugs/bug51037-expected.txt:
  • platform/ios/tables/mozilla/bugs/bug55545-expected.txt:
  • platform/ios/tables/mozilla/bugs/bug59354-expected.txt:
  • platform/ios/tables/mozilla/bugs/bug7342-expected.txt:
  • platform/ios/tables/mozilla/bugs/bug96334-expected.txt:
  • platform/ios/tables/mozilla/bugs/bug99948-expected.txt:
  • platform/ios/tables/mozilla/dom/tableDom-expected.txt:
  • platform/ios/tables/mozilla/other/move_row-expected.txt:
  • platform/ios/tables/mozilla_expected_failures/bugs/bug2479-5-expected.txt:
  • platform/ios/tables/mozilla_expected_failures/bugs/bug92647-1-expected.txt:
  • platform/ios/transforms/3d/general/perspective-non-layer-expected.txt:
1:37 PM Changeset in webkit [279794] by Fujii Hironori
  • 11 edits
    1 delete in trunk/Source/WebCore

[Cairo][Win] Remove unneeded GraphicsContextPlatformPrivate
https://bugs.webkit.org/show_bug.cgi?id=227828

Reviewed by Don Olmstead.

GraphicsContextPlatformPrivate keeps HDC's transform syncing with
GraphicsContext's transform. However, WinCairo doesn't use it.

  • platform/graphics/BifurcatedGraphicsContext.cpp:
  • platform/graphics/BifurcatedGraphicsContext.h:
  • platform/graphics/GraphicsContext.h:
  • platform/graphics/NullGraphicsContext.h:
  • platform/graphics/cairo/CairoOperations.cpp:

(WebCore::Cairo::State::setCTM):
(WebCore::Cairo::translate):
(WebCore::Cairo::rotate):
(WebCore::Cairo::scale):
(WebCore::Cairo::concatCTM):
(WebCore::Cairo::clip):
(WebCore::Cairo::clipPath):

  • platform/graphics/cairo/GraphicsContextCairo.cpp:

(WebCore::GraphicsContextCairo::GraphicsContextCairo):
(WebCore::GraphicsContextCairo::save):
(WebCore::GraphicsContextCairo::restore):
(WebCore::GraphicsContextCairo::graphicsContextPrivate): Deleted.

  • platform/graphics/cairo/GraphicsContextCairo.h:
  • platform/graphics/cairo/GraphicsContextPlatformPrivateCairo.h: Removed.
  • platform/graphics/win/GraphicsContextCairoWin.cpp:

(WebCore::GraphicsContext::releaseWindowsContext):
(WebCore::GraphicsContextPlatformPrivate::GraphicsContextPlatformPrivate): Deleted.
(WebCore::GraphicsContextPlatformPrivate::flush): Deleted.
(WebCore::GraphicsContextCairo::deprecatedPrivateContext const): Deleted.

  • platform/graphics/win/GraphicsContextWin.cpp:

(WebCore::GraphicsContext::getWindowsContext):

  • platform/win/DragImageCairoWin.cpp:
1:05 PM Changeset in webkit [279793] by mmaxfield@apple.com
  • 16 edits
    1 add in trunk

SVGImageForContainer reports true for is<SVGImage>() but it doesn't inherit from SVGImage
https://bugs.webkit.org/show_bug.cgi?id=227807

Reviewed by Said Abou-Hallawa.

Source/WebCore:

It's too easy to write code like:
if (is<SVGImage>(image))

downcast<SVGImage>(image).doSomething();

Test: SVGImageCasts.SVGImageForContainerIsNotSVGImage

  • WebCore.xcodeproj/project.pbxproj:
  • accessibility/AccessibilityRenderObject.cpp:

(WebCore::AccessibilityRenderObject::remoteSVGRootElement const):

  • html/HTMLImageElement.cpp:

(WebCore::HTMLImageElement::effectiveImageDevicePixelRatio const):

  • html/canvas/CanvasRenderingContext2DBase.cpp:

(WebCore::CanvasRenderingContext2DBase::drawImage):
(WebCore::CanvasRenderingContext2DBase::createPattern):

  • html/canvas/WebGLRenderingContextBase.cpp:

(WebCore::WebGLRenderingContextBase::texImageSourceHelper):

  • loader/cache/CachedImage.cpp:

(WebCore::CachedImage::imageForRenderer):
(WebCore::CachedImage::hasSVGImage const):
(WebCore::CachedImage::setContainerContextForClient):
(WebCore::CachedImage::imageSizeForRenderer const):

  • platform/graphics/CrossfadeGeneratedImage.cpp:

(WebCore::drawCrossfadeSubimage):

  • platform/graphics/Image.cpp:

(WebCore::operator<<):

  • platform/graphics/Image.h:

(WebCore::Image::isSVGImageForContainer const):
(WebCore::Image::actsLikeSVGImage const):

  • platform/graphics/ImageObserver.h:
  • svg/graphics/SVGImage.h:
  • svg/graphics/SVGImageForContainer.cpp:

(WebCore::SVGImageForContainer::SVGImageForContainer):

  • svg/graphics/SVGImageForContainer.h:

Tools:

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

(TestWebKitAPI::TEST):

12:18 PM Changeset in webkit [279792] by Said Abou-Hallawa
  • 2 edits in trunk/Source/WebCore

SVGInlineTextBox::acquirePaintingResource() should return false if the resource can't be applied
https://bugs.webkit.org/show_bug.cgi?id=227826
<rdar://79662757>

Reviewed by Simon Fraser.

Ensure RenderSVGResource::postApplyResource() is called only if the
corresponding RenderSVGResource::applyResource() succeeds. Otherwise
the GraphicsContext stack state will be unbalanced.

  • rendering/svg/SVGInlineTextBox.cpp:

(WebCore::SVGInlineTextBox::acquirePaintingResource):

11:01 AM Changeset in webkit [279791] by Truitt Savell
  • 3 edits in trunk/LayoutTests

[Mac & iOS simulator wk2] imported/w3c/web-platform-tests/navigation-timing/test_navigate_within_document.html is a flaky failure .
https://bugs.webkit.org/show_bug.cgi?id=226600

Unreviewed gardening.

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

  • platform/ios-simulator-wk2/TestExpectations:
  • platform/mac/TestExpectations:
10:50 AM Changeset in webkit [279790] by Patrick Angle
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Perform sidebar panel and navigation bar layout asynchronously during resize
https://bugs.webkit.org/show_bug.cgi?id=227716

Reviewed by Devin Rousso.

Perform layout updates to the navigation bar and selected panel asynchronously so that they can be batched
together, instead of blocking on layout for each resize (of which there will be many during a dragging resize).

  • UserInterface/Views/SingleSidebar.js:

(WI.SingleSidebar.prototype._recalculateWidth):

10:36 AM Changeset in webkit [279789] by Alan Bujtas
  • 3 edits in trunk/Source/WebCore

[LFC][IFC] Negative padding values are invalid (inline box)
https://bugs.webkit.org/show_bug.cgi?id=227838

Reviewed by Antti Koivisto.

Negative values for padding properties are invalid.
https://drafts.csswg.org/css-box/#padding-physical

  • layout/integration/LayoutIntegrationCoverage.cpp:

(WebCore::LayoutIntegration::canUseForChild):

10:32 AM Changeset in webkit [279788] by Chris Dumez
  • 5 edits in trunk

[WebCrypto] deriveBits() incorrectly throws for PBKDF2 algorithm when the password is empty
https://bugs.webkit.org/show_bug.cgi?id=227810

Reviewed by Yusuke Suzuki.

LayoutTests/imported/w3c:

Rebaseline WPT tests that are now passing.

  • web-platform-tests/WebCryptoAPI/derive_bits_keys/pbkdf2.https.any-expected.txt:
  • web-platform-tests/WebCryptoAPI/derive_bits_keys/pbkdf2.https.any.worker-expected.txt:

Source/WebCore:

deriveBits() was incorrectly throwing for PBKDF2 algorithm when the provided password was empty.
The reason for that was that we would pass a null key pointer to CCKeyDerivationPBKDF() in this
case and it was causing CCKeyDerivationPBKDF() to return an error, even though the key length is

  1. To avoid this issue, we now pass an empty string as key to CCKeyDerivationPBKDF() instead of

a null pointer, when the length is 0.

This is causing Safari to fail subtests in the following WPT test:

Empty passwords are supported by both Chrome and Firefox.

No new tests, rebaselined existing tests.

  • crypto/mac/CryptoAlgorithmPBKDF2Mac.cpp:

(WebCore::CryptoAlgorithmPBKDF2::platformDeriveBits):

9:54 AM Changeset in webkit [279787] by Chris Dumez
  • 2 edits in trunk/Source/WebKit

Validate keys in ResourceLoadStatisticsDatabaseStore::findNotVeryPrevalentResources() before using them with HashMap
https://bugs.webkit.org/show_bug.cgi?id=227842

Reviewed by Kate Cheney.

Validate keys in ResourceLoadStatisticsDatabaseStore::findNotVeryPrevalentResources() before using them with HashMap,
to avoid potential crashes. We do not support storing (or looking up) a key with value 0 in a HashMap whose key type
is 'unsigned'.

  • NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp:

(WebKit::ResourceLoadStatisticsDatabaseStore::findNotVeryPrevalentResources):

9:46 AM Changeset in webkit [279786] by jer.noble@apple.com
  • 28 edits in trunk/Source

[Cocoa] Make Coordinator playback commands more precise
https://bugs.webkit.org/show_bug.cgi?id=227756

Reviewed by Eric Carlson.

Source/WebCore:

Add support for precise playback commands from MediaSessionCoordinator to the underlying MediaPlayer.

In the case where a play() command is issued to a HTMLMediaElement and:

  • There is an active MediaSession
  • The MediaSession's active HTMLMediaElement is the current one
  • There is a pending playSession command
  • That command has a hostTime parameter
  • The MediaPlayer backing the element supports playing at a specific host time

Then use the MediaPlayer's playAtHostTime() facility to begin playback, synchronized with the specified
hostTime.

Add support for playAtHostTime() to both MediaPlayerPrivateAVFoundationObjC and MediaPlayerPrivateMediaSourceAVFObjC.

  • Modules/mediasession/MediaSession.h:
  • Modules/mediasession/MediaSessionCoordinator.cpp:

(WebCore::MediaSessionCoordinator::playSession):

  • Modules/mediasession/MediaSessionCoordinator.h:

(WebCore::MediaSessionCoordinator::currentPlaySessionCommand const):

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::updatePlayState):
(WebCore::HTMLMediaElement::playPlayer):
(WebCore::HTMLMediaElement::pausePlayer):

  • html/HTMLMediaElement.h:
  • html/MediaElementSession.h:
  • platform/graphics/MediaPlayer.cpp:

(WebCore::MediaPlayer::supportsPlayAtHostTime const):
(WebCore::MediaPlayer::supportsPauseAtHostTime const):
(WebCore::MediaPlayer::playAtHostTime):
(WebCore::MediaPlayer::pauseAtHostTime):

  • platform/graphics/MediaPlayer.h:
  • platform/graphics/MediaPlayerPrivate.h:

(WebCore::MediaPlayerPrivateInterface::supportsPlayAtHostTime const):
(WebCore::MediaPlayerPrivateInterface::supportsPauseAtHostTime const):
(WebCore::MediaPlayerPrivateInterface::playAtHostTime):
(WebCore::MediaPlayerPrivateInterface::pauseAtHostTime):

  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:

(WebCore::MediaPlayerPrivateAVFoundationObjC::createAVPlayer):
(WebCore::MediaPlayerPrivateAVFoundationObjC::playAtHostTime):
(WebCore::MediaPlayerPrivateAVFoundationObjC::pauseAtHostTime):
(WebCore::MediaPlayerPrivateAVFoundationObjC::setPlayerRate):

  • platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.h:
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:

(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::playInternal):
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::pauseInternal):
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::playAtHostTime):
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::pauseAtHostTime):

Source/WebCore/PAL:

Add SoftLink macros for CMClockMakeHostTimeFromSystemUnits.

  • pal/cf/CoreMediaSoftLink.cpp:
  • pal/cf/CoreMediaSoftLink.h:

Source/WebKit:

Pass through new {play,pause}AtHostTime() and supports{Play,Pause}AtHostTime() methods
to and from the GPU process.

  • GPUProcess/media/RemoteMediaPlayerProxy.cpp:

(WebKit::RemoteMediaPlayerProxy::getConfiguration):
(WebKit::RemoteMediaPlayerProxy::playAtHostTime):
(WebKit::RemoteMediaPlayerProxy::pauseAtHostTime):

  • GPUProcess/media/RemoteMediaPlayerProxy.h:
  • GPUProcess/media/RemoteMediaPlayerProxy.messages.in:
  • WebProcess/GPU/media/MediaPlayerPrivateRemote.cpp:

(WebKit::MediaPlayerPrivateRemote::playAtHostTime):
(WebKit::MediaPlayerPrivateRemote::pauseAtHostTime):

  • WebProcess/GPU/media/MediaPlayerPrivateRemote.h:
  • WebProcess/GPU/media/RemoteMediaPlayerConfiguration.h:

(WebKit::RemoteMediaPlayerConfiguration::encode const):
(WebKit::RemoteMediaPlayerConfiguration::decode):

Source/WTF:

Add a method to convert from a MonotonicTime to a MachAbsoluteTime.

  • wtf/CurrentTime.cpp:

(WTF::machTimebaseInfo):
(WTF::MonotonicTime::fromMachAbsoluteTime):
(WTF::MonotonicTime::toMachAbsoluteTime const):

  • wtf/MonotonicTime.h:
  • wtf/PlatformHave.h:
9:02 AM Changeset in webkit [279785] by ysuzuki@apple.com
  • 9 edits
    5 adds
    8 deletes in trunk

Add BigInt64Array and BigUint64Array support to crypto.getRandomValues
https://bugs.webkit.org/show_bug.cgi?id=227611

Reviewed by Chris Dumez.

LayoutTests/imported/w3c:

Resync web-platform-tests/WebCryptoAPI/ directory.

  • web-platform-tests/WebCryptoAPI/digest/test_digest-expected.txt: Removed.
  • web-platform-tests/WebCryptoAPI/encrypt_decrypt/test_aes_cbc-expected.txt: Removed.
  • web-platform-tests/WebCryptoAPI/encrypt_decrypt/test_aes_gcm-expected.txt: Removed.
  • web-platform-tests/WebCryptoAPI/encrypt_decrypt/test_rsa_oaep-expected.txt: Removed.
  • web-platform-tests/WebCryptoAPI/getRandomValues-bigint.tentative.any-expected.txt: Added.
  • web-platform-tests/WebCryptoAPI/getRandomValues-bigint.tentative.any.html: Added.
  • web-platform-tests/WebCryptoAPI/getRandomValues-bigint.tentative.any.js: Added.

(const.array.of.arrays.test):

  • web-platform-tests/WebCryptoAPI/getRandomValues-bigint.tentative.any.worker-expected.txt: Added.
  • web-platform-tests/WebCryptoAPI/getRandomValues-bigint.tentative.any.worker.html: Added.
  • web-platform-tests/WebCryptoAPI/import_export/test_ec_importKey-expected.txt: Removed.
  • web-platform-tests/WebCryptoAPI/import_export/test_symmetric_importKey-expected.txt: Removed.
  • web-platform-tests/WebCryptoAPI/sign_verify/test_ecdsa-expected.txt: Removed.
  • web-platform-tests/WebCryptoAPI/sign_verify/test_hmac-expected.txt: Removed.
  • web-platform-tests/WebCryptoAPI/w3c-import.log:

Source/WebCore:

Tests: imported/w3c/web-platform-tests/WebCryptoAPI/getRandomValues-bigint.tentative.any.html

imported/w3c/web-platform-tests/WebCryptoAPI/getRandomValues-bigint.tentative.any.worker.html

This patch updates crypto.getRandomValues so that this function can take BigInt64Array / BigUint64Array.
We also add BigInt64Array / BigUint64Array IDL support.

  • bindings/js/JSDOMConvertBufferSource.h:

(WebCore::toPossiblySharedBigInt64Array):
(WebCore::toPossiblySharedBigUint64Array):
(WebCore::toUnsharedBigInt64Array):
(WebCore::toUnsharedBigUint64Array):
(WebCore::JSConverter<IDLFloat64Array>::convert):
(WebCore::Converter<IDLBigInt64Array>::convert):
(WebCore::JSConverter<IDLBigInt64Array>::convert):
(WebCore::Converter<IDLBigUint64Array>::convert):

  • bindings/scripts/CodeGenerator.pm:
  • bindings/scripts/CodeGeneratorJS.pm:

(GetBaseIDLType):

  • bindings/scripts/test/JS/JSTestObj.cpp:

(WebCore::JSTestObjDOMConstructor::construct):
(WebCore::jsTestObjPrototypeFunction_bigInt64Body):
(WebCore::JSC_DEFINE_HOST_FUNCTION):
(WebCore::jsTestObjPrototypeFunction_bigUint64Body):
(WebCore::jsTestObjPrototypeFunction_bigInt64AllowSharedBody):
(WebCore::jsTestObjPrototypeFunction_bigUint64AllowSharedBody):

  • bindings/scripts/test/TestObj.idl:
  • page/Crypto.cpp:

(WebCore::Crypto::getRandomValues):

8:16 AM Changeset in webkit [279784] by youenn@apple.com
  • 3 edits in trunk/Source/WebKit

Use nw_parameters_allow_sharing_port_with_listener if available
https://bugs.webkit.org/show_bug.cgi?id=227835
<rdar://80312536>

Reviewed by Eric Carlson.

Use nw_parameters_allow_sharing_port_with_listener to allow running local loop connections.
Covered by existing tests running on platforms supporting nw_parameters_allow_sharing_port_with_listener.

  • NetworkProcess/webrtc/NetworkRTCUDPSocketCocoa.mm:

(WebKit::NetworkRTCUDPSocketCocoaConnections::createNWConnection):

  • Platform/spi/Cocoa/NWParametersSPI.h:
8:11 AM Changeset in webkit [279783] by ntim@apple.com
  • 3 edits in trunk/Source/WebCore

Make topLayerElements() use Ref instead of RefPtr
https://bugs.webkit.org/show_bug.cgi?id=227839

Reviewed by Youenn Fablet.

  • dom/Document.cpp:

(WebCore::Document::addToTopLayer):
(WebCore::Document::removeFromTopLayer):
(WebCore::Document::activeModalDialog const):

  • dom/Document.h:

(WebCore::Document::topLayerElements const):

6:29 AM Changeset in webkit [279782] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebCore

[GTK] Support dark scrollbars
https://bugs.webkit.org/show_bug.cgi?id=227834

Patch by Alexander Mikhaylenko <Alexander Mikhaylenko> on 2021-07-09
Reviewed by Michael Catanzaro.

Also adjust the colors in light variant to be closer to the GTK scrollbars, and
remove an unused variable.

Unfortunately this leaves the scrollbar corner when non-overlay scrollbars are used,
but it was already broken for light scrollbars as well.

  • platform/adwaita/ScrollbarThemeAdwaita.cpp:

(WebCore::ScrollbarThemeAdwaita::updateScrollbarOverlayStyle):
(WebCore::ScrollbarThemeAdwaita::paint):

  • platform/adwaita/ScrollbarThemeAdwaita.h:
6:12 AM Changeset in webkit [279781] by commit-queue@webkit.org
  • 4 edits in trunk/Tools/buildstream

[Flatpak SDK] Update to libsoup3 2.99.9
https://bugs.webkit.org/show_bug.cgi?id=227833

Patch by Carlos Garcia Campos <cgarcia@igalia.com> on 2021-07-09
Reviewed by Michael Catanzaro.

It requires new glib and glib-networking too.

  • elements/sdk/glib-networking.bst:
  • elements/sdk/glib.bst:
  • elements/sdk/libsoup3.bst:
5:05 AM Changeset in webkit [279780] by ntim@apple.com
  • 5 edits in trunk/Source/WebCore

Add topLayerElements() and activeModalDialog() to Document
https://bugs.webkit.org/show_bug.cgi?id=227800

Reviewed by Antti Koivisto.

These DOM methods are a pre-requisite for a lot of dialog element accessibility work, aside from
the top layer rendering work.

  • dom/Document.cpp:

(WebCore::Document::addToTopLayer):
(WebCore::Document::removeFromTopLayer):
(WebCore::Document::activeModalDialog const):

  • dom/Document.h:

(WebCore::Document::topLayerElements const):

  • dom/Element.cpp:

(WebCore::Element::removedFromAncestor):

  • html/HTMLDialogElement.cpp:

(WebCore::HTMLDialogElement::showModal):
(WebCore::HTMLDialogElement::close):
(WebCore::HTMLDialogElement::parseAttribute):

4:47 AM Changeset in webkit [279779] by commit-queue@webkit.org
  • 6 edits in trunk/Source/WebKit

[GTK] Touchscreen navigation swipe doesn't work when the page scrolls horizontally
https://bugs.webkit.org/show_bug.cgi?id=227691

Patch by Alexander Mikhaylenko <Alexander Mikhaylenko> on 2021-07-09
Reviewed by Michael Catanzaro.

When the page scrolls horizontally, we have a separate code path for events that
WebCore didn't handle and which are considered safe to use to start a swipe
gesture. Unfortunately, that code relies on the NativeWebWheelEvents containing a
GdkEvent, which is only the case for actual scroll events, but not synthesized
scroll events on touchscreen, and the needed info (input source type and a proper
timestamp instead of the truncated one wallTimeForEventTime() produces) is not
stored in NativeWebWheelEvent.

While we don't have GdkEvents for every situation we synthesize wheel events in,
we do have them for touchscreen gestures. They aren't GdkScrollEvents, but that
isn't a problem - the only things we use that are specific to GdkScrollEvent are
scroll deltas and whether it's a scroll stop event, and that's also stored in
NativeWebWheelEvent, and we only need GdkEvent for the time and input source type,
where the event type doesn't really matter.

Since touch GdkEvents are controlled via event sequences rather than stop/propagate
return values, don't try and propagate them if web process has returned them: we've
already claimed their sequence before sending them to web process, so they will be
of no use to other widgets.

  • Shared/NativeWebWheelEvent.h:
  • Shared/gtk/NativeWebWheelEventGtk.cpp:

(WebKit::NativeWebWheelEvent::NativeWebWheelEvent):
Add a GdkEvent parameter to the remaining constructor.

  • UIProcess/API/gtk/PageClientImpl.cpp:

(WebKit::PageClientImpl::wheelEventWasNotHandledByWebCore):

  • UIProcess/API/gtk/WebKitWebViewBase.cpp:

(webkitWebViewBaseZoomBegin):
(webkitWebViewBaseTouchDragBegin):
(webkitWebViewBaseTouchDragUpdate):
(webkitWebViewBaseTouchSwipe):
(webkitWebViewBaseSynthesizeWheelEvent):
Split into versions with and without a GdkEvent parameter.

  • UIProcess/API/gtk/WebKitWebViewBasePrivate.h:
4:18 AM Changeset in webkit [279778] by clopez@igalia.com
  • 4 edits
    2 adds in trunk

[GTK][WPE][libsoup] Test imported/w3c/web-platform-tests/cookies/samesite/about-blank-toplevel.https.html crashes since it was imported
https://bugs.webkit.org/show_bug.cgi?id=227819

Reviewed by Carlos Garcia Campos.

Source/WebCore:

Add missings null-checks to avoid calling soup_cookie_jar_get_cookie_list_with_same_site_info()
with a null pointer in site_for_cookies argument.

Covered by existing tests.

  • platform/network/soup/NetworkStorageSessionSoup.cpp:

(WebCore::NetworkStorageSession::getRawCookies const):
(WebCore::cookiesForSession):

LayoutTests:

Mark the test as passing (is marked as flaky on the general expectations) and add expectation for passing test.

  • platform/glib/TestExpectations:
  • platform/glib/imported/w3c/web-platform-tests/cookies/samesite/about-blank-toplevel.https-expected.txt: Added.
1:31 AM Changeset in webkit [279777] by Carlos Garcia Campos
  • 1 copy in releases/WebKitGTK/webkit-2.32.2

WebKitGTK 2.32.2

1:30 AM Changeset in webkit [279776] by Carlos Garcia Campos
  • 4 edits in releases/WebKitGTK/webkit-2.32

Unreviewed. Update OptionsGTK.cmake and NEWS for 2.32.2 release

.:

  • Source/cmake/OptionsGTK.cmake: Bump version numbers.

Source/WebKit:

  • gtk/NEWS: Add release notes for 2.32.2
1:10 AM Changeset in webkit [279775] by clopez@igalia.com
  • 2 edits in trunk/Tools

[webkitcorepy] run-webkit-tests may hang with python2 after r271683
https://bugs.webkit.org/show_bug.cgi?id=227715

Reviewed by Philippe Normand.

When an exception is raised from a worker if the workers are terminated
via a SIGKILL signal that later causes the task-queue to hang at close().
The issue is not reproducible with python3. So keep the same behaviour for
python3, and for python2 just use terminate() to stop the workers.

  • Scripts/libraries/webkitcorepy/webkitcorepy/task_pool.py:

(TaskPool.exit):

12:14 AM Changeset in webkit [279774] by commit-queue@webkit.org
  • 1 edit
    2 deletes in trunk/LayoutTests

[GLIB] Unreviewed test gardening, update baselines after r279723
https://bugs.webkit.org/show_bug.cgi?id=227812

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

  • platform/glib/imported/w3c/web-platform-tests/WebCryptoAPI/derive_bits_keys/ecdh_bits.https.any-expected.txt: Removed.
  • platform/glib/imported/w3c/web-platform-tests/WebCryptoAPI/derive_bits_keys/ecdh_bits.https.any.worker-expected.txt: Removed.

Jul 8, 2021:

10:55 PM Changeset in webkit [279773] by Yijia Huang
  • 9 edits in trunk/Source/JavaScriptCore

Add Air opcode add/sub-and-shift for ARM64 and select this instruction in Air
https://bugs.webkit.org/show_bug.cgi?id=227509

Reviewed by Saam Barati.

This patch includes two modifications:

  1. Add add/sub-with-shift to Air opcode and the corresponding pattern match for instruction selection.
  2. Minor fix in disassembler.

Given the operation:

add/sub Rd, Rn, Rm, ShiftType, amount

ADD/SUB (shifted register), adds/subs a register value Rn and an optionally-shifted register
value Rm, and writes the result to the destination register Rd. The instruction selector
can utilize this to lowering certain patterns in B3 IR before further Air optimization.

The equivalent pattern would be:

d = n +/- (m ShiftType amount)

Given B3 IR:
Int @0 = ArgumentReg(%x0)
Int @1 = ArgumentReg(%x1)
Int @2 = amount
Int @3 = ZShr(@1, @2)
Int @4 = Add/Sub(@0, @3)
Void@5 = Return(@4, Terminal)

Old optimized AIR
Shift %x1, amount, %x1, @3
Add/Sub %x0, %x1, %x0, @4
Ret %x0, @5

New optimized AIR
Add(Sub)Shift %x0, %x1, amount, %x0, @4
Ret %x0, @5

  • assembler/MacroAssemblerARM64.h:

(JSC::MacroAssemblerARM64::addLeftShift32):
(JSC::MacroAssemblerARM64::addRightShift32):
(JSC::MacroAssemblerARM64::addUnsignedRightShift32):
(JSC::MacroAssemblerARM64::addLeftShift64):
(JSC::MacroAssemblerARM64::addRightShift64):
(JSC::MacroAssemblerARM64::addUnsignedRightShift64):
(JSC::MacroAssemblerARM64::subLeftShift32):
(JSC::MacroAssemblerARM64::subRightShift32):
(JSC::MacroAssemblerARM64::subUnsignedRightShift32):
(JSC::MacroAssemblerARM64::subLeftShift64):
(JSC::MacroAssemblerARM64::subRightShift64):
(JSC::MacroAssemblerARM64::subUnsignedRightShift64):

  • assembler/testmasm.cpp:

(JSC::testAddWithLeftShift32):
(JSC::testAddWithRightShift32):
(JSC::testAddWithUnsignedRightShift32):
(JSC::testAddWithLeftShift64):
(JSC::testAddWithRightShift64):
(JSC::testAddWithUnsignedRightShift64):
(JSC::testSubWithLeftShift32):
(JSC::testSubWithRightShift32):
(JSC::testSubWithUnsignedRightShift32):
(JSC::testSubWithLeftShift64):
(JSC::testSubWithRightShift64):
(JSC::testSubWithUnsignedRightShift64):

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

(checkUsesInstruction):

  • b3/testb3_2.cpp:

(testAddWithLeftShift32):
(testAddWithRightShift32):
(testAddWithUnsignedRightShift32):
(testAddWithLeftShift64):
(testAddWithRightShift64):
(testAddWithUnsignedRightShift64):
(testSubWithLeftShift32):
(testSubWithRightShift32):
(testSubWithUnsignedRightShift32):
(testSubWithLeftShift64):
(testSubWithRightShift64):
(testSubWithUnsignedRightShift64):
(addBitTests):

  • disassembler/ARM64/A64DOpcode.cpp:
  • disassembler/ARM64/A64DOpcode.h:

(JSC::ARM64Disassembler::A64DOpcodeAddSubtractShiftedRegister::immediate6):
(JSC::ARM64Disassembler::A64DOpcodeLogicalShiftedRegister::immediate6):

6:40 PM Changeset in webkit [279772] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit

WebContent: Silence report of AppSupport denial
https://bugs.webkit.org/show_bug.cgi?id=227375

Patch by Adam Mazander <mazander@apple.com> on 2021-07-08
Reviewed by Brent Fulgham.

Manual testing confirms AppSupport does not need access to WebContent. Simplified.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb.in:
6:08 PM Changeset in webkit [279771] by Russell Epstein
  • 8 edits in branches/safari-612.1.22.1-branch/Source

Versioning.

WebKit-7612.1.22.1.4

5:51 PM Changeset in webkit [279770] by Kate Cheney
  • 2 edits in trunk/Source/WebCore

Unreviewed iOS build fix after
https://trac.webkit.org/changeset/279749/webkit.

  • page/PointerCaptureController.cpp:

(WebCore::PointerCaptureController::dispatchEventForTouchAtIndex):

5:38 PM Changeset in webkit [279769] by ysuzuki@apple.com
  • 18 edits in trunk

Fix StructuredClone for streams to handle BigInt64Array / BigUint64Array
https://bugs.webkit.org/show_bug.cgi?id=227571

Reviewed by Chris Dumez.

LayoutTests/imported/w3c:

  • resources/import-expectations.json:
  • web-platform-tests/FileAPI/blob/Blob-constructor.any-expected.txt:
  • web-platform-tests/FileAPI/blob/Blob-constructor.any.js:

(test_blob):

  • web-platform-tests/FileAPI/blob/Blob-constructor.any.worker-expected.txt:
  • web-platform-tests/encoding/encodeInto.any-expected.txt:
  • web-platform-tests/encoding/encodeInto.any.js:

(string_appeared_here.forEach.type.string_appeared_here.forEach):
(Float64Array.forEach.view.string_appeared_here.forEach): Deleted.

  • web-platform-tests/encoding/encodeInto.any.worker-expected.txt:
  • web-platform-tests/encoding/w3c-import.log:
  • web-platform-tests/fetch/api/response/response-clone.any-expected.txt:
  • web-platform-tests/fetch/api/response/response-clone.any.js:
  • web-platform-tests/fetch/api/response/response-clone.any.worker-expected.txt:

Source/WebCore:

While we already support BigInt64Array / BigUint64Array handling even in DOM code,
we lack support of them only in fetch's structuredClone code (which is specialized one
to make it fast by bypassing serialization / deserialization).

This patch fixes the issue to complete BigInt64Array / BigUint64Array in all DOM code.

  • Modules/streams/ReadableStreamInternals.js:

(readableStreamTeePullFunction):
(doStructuredClone): Deleted.

  • bindings/js/JSDOMGlobalObject.cpp:

(WebCore::JSDOMGlobalObject::addBuiltinGlobals):

  • bindings/js/StructuredClone.cpp:

(WebCore::JSC_DEFINE_HOST_FUNCTION):

  • bindings/js/StructuredClone.h:
  • bindings/js/WebCoreBuiltinNames.h:
5:12 PM Changeset in webkit [279768] by Chris Dumez
  • 4 edits in trunk/Source/WebCore

Make sure SVG SMIL animations do not run in processes without any pages
https://bugs.webkit.org/show_bug.cgi?id=227720
<rdar://79625708>

Reviewed by Simon Fraser.

Make sure SVG SMIL animations do not run in processes without any pages.

We have seen traces / logging indicating that SVG SMIL animations may run in cached WebProcesses, thus
using CPU unnecessarily. Cached WebProcesses have no WebPage so this patch adds assertions to catch cases
where those animations run when there is no Page (and early returns in release to avoid doing unnecessary
work).

  • page/Page.cpp:

(WebCore::Page::nonUtilityPageCount):
(WebCore::m_httpsUpgradeEnabled):
(WebCore::Page::~Page):
(WebCore::Page::isOnlyNonUtilityPage const):

  • page/Page.h:
  • svg/animation/SMILTimeContainer.cpp:

(WebCore::SMILTimeContainer::begin):
(WebCore::SMILTimeContainer::resume):
(WebCore::SMILTimeContainer::setElapsed):
(WebCore::SMILTimeContainer::startTimer):
(WebCore::SMILTimeContainer::updateAnimations):

5:11 PM Changeset in webkit [279767] by Chris Dumez
  • 8 edits in trunk

[IndexedDB] KeyPath validity checks should happen on the cloned value, not the original one
https://bugs.webkit.org/show_bug.cgi?id=227813

Reviewed by Geoffrey Garen.

LayoutTests/imported/w3c:

Rebaseline WPT test that is now passing.

  • web-platform-tests/IndexedDB/clone-before-keypath-eval-expected.txt:

Source/WebCore:

KeyPath validity checks should happen on the cloned value, not the original one:

This was causing the following WPT test to fail in WebKit:
https://wpt.live/IndexedDB/clone-before-keypath-eval.html

This test is passing in Chrome and Gecko.

No new tests, rebaselined existing test.

  • Modules/indexeddb/IDBCursor.cpp:

(WebCore::IDBCursor::update):

  • Modules/indexeddb/IDBObjectStore.cpp:

(WebCore::IDBObjectStore::putForCursorUpdate):
(WebCore::IDBObjectStore::putOrAdd):

  • Modules/indexeddb/IDBObjectStore.h:

LayoutTests:

Unskip test as it should no longer be flaky.

5:09 PM Changeset in webkit [279766] by clopez@igalia.com
  • 2 edits
    18 adds in trunk/LayoutTests

[GTK][WPE] Gardening of tests after r279585 and 279705

Re-baseline the tests that have consistent text output, mark the
ones that are flaky as failing and report a crash.

Unreviewed gardening.

  • platform/glib/TestExpectations:
  • platform/glib/http/tests/websocket/tests/hybi/multiple-set-cookies-expected.txt: Added.
  • platform/glib/imported/w3c/web-platform-tests/cookies/attributes/invalid-expected.txt: Added.
  • platform/glib/imported/w3c/web-platform-tests/cookies/attributes/max-age-expected.txt: Added.
  • platform/glib/imported/w3c/web-platform-tests/cookies/attributes/path-expected.txt: Added.
  • platform/glib/imported/w3c/web-platform-tests/cookies/attributes/secure-non-secure-expected.txt: Added.
  • platform/glib/imported/w3c/web-platform-tests/cookies/encoding/charset-expected.txt: Added.
  • platform/glib/imported/w3c/web-platform-tests/cookies/name/name-ctl-expected.txt: Added.
  • platform/glib/imported/w3c/web-platform-tests/cookies/ordering/ordering.sub-expected.txt: Added.
  • platform/glib/imported/w3c/web-platform-tests/cookies/path/match-expected.txt: Added.
  • platform/glib/imported/w3c/web-platform-tests/cookies/value/value-ctl-expected.txt: Added.
  • platform/glib/imported/w3c/web-platform-tests/cookies/value/value-expected.txt: Added.
5:06 PM Changeset in webkit [279765] by Truitt Savell
  • 3 edits in trunk/LayoutTests

[Mac] media/modern-media-controls/media-controller/media-controller-click-on-video-background-should-pause-fullscreen.html is flaky timing out.
https://bugs.webkit.org/show_bug.cgi?id=221017

Unreviewed test gardening.

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

  • platform/mac/TestExpectations:
  • platform/wk2/TestExpectations:
5:04 PM Changeset in webkit [279764] by Wenson Hsieh
  • 2 edits in trunk/Source/WebKit

[watchOS] Tapping "Done" in Scribble when focusing an editable element should dismiss Quickboard
https://bugs.webkit.org/show_bug.cgi?id=227817
rdar://79931134

Reviewed by Tim Horton and Devin Rousso.

After using PUICQuickboardMessageViewController's PUICTextInput-based mode for presenting Scribble UI, we fail
to dismiss PUICQuickboardMessageViewController underneath -dismissAllInputViewControllers:, since Quickboard
is not the top-most view controller (instead, it ends up being PUICQuickboardRemoteViewController). As a result,
the call to -dismissViewControllerAnimated:completion: on the fullscreen input view controller ends up being
dropped on the floor.

Prior to adopting PUICQuickboardMessageViewController and remote text input on watchOS, this worked because the
delegate method -quickboard:textEntered: would only be invoked after the front-most view controller was done
dismissing, such that calling -dismissViewControllerAnimated:completion: on the fullscreen input view
controller would (correctly) dismiss it.

We can address this by checking whether the fullscreen input view controller itself has a presented view
controller in -dismissAllInputViewControllers:, and dismissing that first if necessary.

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView dismissAllInputViewControllers:]):

4:46 PM Changeset in webkit [279763] by Simon Fraser
  • 2 edits in trunk/Source/WebCore

Make backingProviderLayerCanIncludeLayer() a member function of BackingSharingState
https://bugs.webkit.org/show_bug.cgi?id=227818

Reviewed by Alan Bujtas.

Minor code refactor, no behavior change.

  • rendering/RenderLayerCompositor.cpp:

(WebCore::RenderLayerCompositor::BackingSharingState::canIncludeLayer const):
(WebCore::RenderLayerCompositor::computeCompositingRequirements):
(WebCore::RenderLayerCompositor::traverseUnchangedSubtree):
(WebCore::backingProviderLayerCanIncludeLayer): Deleted.

4:25 PM Changeset in webkit [279762] by Russell Epstein
  • 8 edits in branches/safari-612.1.22.0-branch/Source

Versioning.

WebKit-7612.1.22.0.4

4:08 PM Changeset in webkit [279761] by rniwa@webkit.org
  • 16 edits
    7 deletes in trunk/Source/WebCore

Remove more custom binding code with GenerateAddOpaqueRoot
https://bugs.webkit.org/show_bug.cgi?id=227789

Reviewed by Chris Dumez.

Use GenerateAddOpaqueRoot extended IDL option to remove more custom bindings code.

Also made GenerateAddOpaqueRoot default to use wrapped object's opaqueRoot function.

  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/JSAbortControllerCustom.cpp: Removed.
  • bindings/js/JSAudioTrackCustom.cpp: Removed.
  • bindings/js/JSAudioTrackListCustom.cpp: Removed.
  • bindings/js/JSTextTrackCustom.cpp: Removed.
  • bindings/js/JSTextTrackListCustom.cpp: Removed.
  • bindings/js/JSVideoTrackCustom.cpp: Removed.
  • bindings/js/JSVideoTrackListCustom.cpp: Removed.
  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateImplementation):

  • dom/AbortController.h:
  • dom/AbortController.idl:
  • html/track/AudioTrack.idl:
  • html/track/AudioTrackList.idl:
  • html/track/TextTrack.idl:
  • html/track/TextTrackList.idl:
  • html/track/TrackBase.cpp:

(WebCore::TrackBase::opaqueRoot): Added.

  • html/track/TrackBase.h:
  • html/track/TrackListBase.cpp:

(WebCore::TrackListBase::opaqueRoot const): Added.

  • html/track/TrackListBase.h:
  • html/track/VideoTrack.idl:
  • html/track/VideoTrackList.idl:
3:59 PM Changeset in webkit [279760] by commit-queue@webkit.org
  • 18 edits in trunk

Fix some whitespace handling issues in URL setters
https://bugs.webkit.org/show_bug.cgi?id=227806

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

LayoutTests/imported/w3c:

  • web-platform-tests/url/a-element-expected.txt:
  • web-platform-tests/url/a-element-xhtml-expected.txt:
  • web-platform-tests/url/url-setters-stripping.any-expected.txt:
  • web-platform-tests/url/url-setters-stripping.any.worker-expected.txt:

Source/WebCore:

Covered by newly passing wpt tests.

  • dom/Element.cpp:

(WebCore::Element::getURLAttribute const):

  • html/HTMLAnchorElement.cpp:

(WebCore::HTMLAnchorElement::href const):
Don't remove whitespace before giving to completeURL, which will do that for us if it's a valid URL.
If it's not a valid URL, we want the original string, not the trimmed string.

  • html/URLDecomposition.cpp:

(WebCore::parsePort):
Parse ports more like the URLParser, which ignores tabs and newlines.

Source/WTF:

Setters should ignore tabs and newlines like the main parser does.
The protocol setter is problematic, which I reported in https://github.com/whatwg/url/issues/620

  • wtf/URL.cpp:

(WTF::URL::setFragmentIdentifier):

  • wtf/URLParser.cpp:

(WTF::URLParser::isSpecialScheme):
(WTF::URLParser::parse):

  • wtf/URLParser.h:

The URL.hash setter should allow trailing C0 and control characters, which we would otherwise trim.
Rather than introduce a new parameter, use a sentinel value for when we need to do this.

LayoutTests:

Update some old tests that failed in Chrome and Firefox to pass in all browsers after this change.

  • fast/dom/DOMURL/set-href-attribute-port-expected.txt:
  • fast/dom/DOMURL/set-href-attribute-port.html:
  • fast/dom/HTMLAnchorElement/set-href-attribute-port-expected.txt:
  • fast/dom/HTMLAnchorElement/set-href-attribute-port.html:
3:50 PM Changeset in webkit [279759] by Ruben Turcios
  • 1 copy in tags/Safari-612.1.22.0.3

Tag Safari-612.1.22.0.3.

3:36 PM Changeset in webkit [279758] by Russell Epstein
  • 1 copy in tags/Safari-612.1.22.1.3

Tag Safari-612.1.22.1.3.

3:23 PM Changeset in webkit [279757] by Yijia Huang
  • 2 edits in trunk/Tools

Add Yijia Huang as a committer
https://bugs.webkit.org/show_bug.cgi?id=227814

Unreviewed.

  • Scripts/webkitpy/common/config/contributors.json:
3:17 PM Changeset in webkit [279756] by Cameron McCormack
  • 3 edits
    2 adds in trunk

Stop GraphicsLayerCA::recursiveCommitChanges recursion once cMaxLayerTreeDepth is reached
https://bugs.webkit.org/show_bug.cgi?id=227738
<rdar://42584284>

Reviewed by Simon Fraser.

Source/WebCore:

To avoid stack overflow in some configurations, stop
recursiveCommitChange recursion when we reach the same level that we
stop hooking up PlatformCALayers. This will leave GraphicsLayerCAs in
the tree with m_uncommittedChanges, but if we ever do another call to
recursiveCommitChange where the GraphicsLayerCA is now at an
appropriate depth (because some ancestors lost their structural
layers, for example), then we'll process the uncommitted changes at
that point.

Pull up the increment of commitState.treeDepth from
commitLayerChangesBeforeSublayers to recursiveCommitChanges so that
the commitLayerChangesBeforeSublayers call for a mask layer doesn't
contribute to the depth count.

Use structuralLayerPurpose() rather than null-checking
m_structuralLayer to determine whether we count an additional depth
level, since m_structuralLayer reflects whether we already have a
structural layer (which may or may not go away), and
structuralLayerPurpose() can tell us whether we will have a structural
layer.

Test: fast/layers/deep-layer-update.html

  • platform/graphics/ca/GraphicsLayerCA.cpp:

(WebCore::GraphicsLayerCA::recursiveCommitChanges):
(WebCore::GraphicsLayerCA::commitLayerChangesBeforeSublayers):

LayoutTests:

Add a test that changes made to GraphicsLayerCAs that are too deep
in the tree will be committed if they later become not too deep.

  • fast/layers/deep-layer-update-expected.html: Added.
  • fast/layers/deep-layer-update.html: Added.
3:13 PM Changeset in webkit [279755] by Brent Fulgham
  • 11 edits in trunk

[Cocoa] Expose SPI to opt out of Extensible SSO authentication
https://bugs.webkit.org/show_bug.cgi?id=227729
<rdar://problem/75647892>

Reviewed by Tim Horton.

Source/WebKit:

WKWebView clients should be able to disable Extensible SSO authentication flows, so exposing the internal
mechanism as SPI. This is especially important for use cases where a WKWebView will be used to load content
without being attached to a Window, since a Window is required to present the Extensible SSO authentication
UI. Without a Window, WebKit will wait for a Window to be attached causing loads to timeout. By adopting this
API, developers can opt out of Extensible SSO, allowing loads to fail quickly rather than waiting for a timeout.

Tested by a new TestWebKitAPI test case: SOAuthorizationRedirect.DisableSSO

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

(-[WKPreferences _extensibleSSOEnabled]): Add getter for new preference.
(-[WKPreferences _setExtensibleSSOEnabled:]): Add setter.

  • UIProcess/Cocoa/SOAuthorization/NavigationSOAuthorizationSession.mm:

(WebKit::NavigationSOAuthorizationSession::shouldStartInternal): Add new logging so developers can see when a WKWebView
without a Window is attempting to participate in Extensible SSO flows.

  • UIProcess/Cocoa/SOAuthorization/PopUpSOAuthorizationSession.mm:

(WebKit::PopUpSOAuthorizationSession::initSecretWebView): Switch from SPI to API.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::decidePolicyForNavigationAction): Ditto.

  • UIProcess/WebPageProxy.h:

Source/WTF:

Create new WKPreference to allow WebKit clients to opt out of Extensible SSO authentication.

  • Scripts/Preferences/WebPreferences.yaml:

Tools:

Add a new test to confirm that Extenstible SSO authentication flows are bypassed when the new WKPreference
is used. Updated other tests to confirm that the SSO delegate is called when expected.

  • TestWebKitAPI/Tests/WebKitCocoa/TestSOAuthorization.mm:

(-[TestSOAuthorizationDelegate _webView:decidePolicyForSOAuthorizationLoadWithCurrentPolicy:forExtension:completionHandler:]):
(resetState):
(TestWebKitAPI::TEST):

2:15 PM Changeset in webkit [279754] by Ruben Turcios
  • 1 copy in tags/Safari-612.1.18.11.4

Tag Safari-612.1.18.11.4.

2:08 PM Changeset in webkit [279753] by Russell Epstein
  • 1 copy in tags/Safari-612.1.22.11.1

Tag Safari-612.1.22.11.1.

2:07 PM Changeset in webkit [279752] by Russell Epstein
  • 1 delete in tags/Safari-612.1.22.11.1

Delete tag.

1:59 PM Changeset in webkit [279751] by Wenson Hsieh
  • 10 edits
    2 adds in trunk

[Live Text] Selection is misaligned on some images on twitter.com
https://bugs.webkit.org/show_bug.cgi?id=227775
rdar://77142364

Reviewed by Tim Horton.

Source/WebCore:

On Twitter, image thumbnails consist of fully transparent image elements (opacity: 0;) that are overlaid over
div elements with a background image. The images for some of these transparent image elements sometimes don't
match the background image behind it (namely, the image is stretched to exactly fit the bounds of the
transparent image element in a way that does not preserve aspect ratio, whereas the background image is cropped
to cover the div). As such, Live Text in these image elements ends up misaligned against the background image
(which is actually visible to the user).

To address this, special case fully transparent images such that we take a snapshot of the page using the
absolute bounds of the transparent image and run OCR over this snapshot, instead of using the image data as-is.

Test: fast/images/text-recognition/image-overlay-in-transparent-image.html

  • html/HTMLElement.cpp:

(WebCore::HTMLElement::containerRectForTextRecognition):
(WebCore::HTMLElement::updateWithTextRecognitionResult):

  • html/HTMLElement.h:
  • page/Page.cpp:

(WebCore::Page::updateElementsWithTextRecognitionResults):

Source/WebKit:

See WebCore ChangeLog for more details.

  • WebProcess/WebCoreSupport/ShareableBitmapUtilities.cpp:

(WebKit::createShareableBitmap):

  • WebProcess/WebCoreSupport/ShareableBitmapUtilities.h:

(WebKit::createShareableBitmap):

Add an option to handle the scenario where the image renderer is fully transparent by falling back to a frame-
level snapshot, using the bounds of the image renderer.

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::requestTextRecognition):

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::imagePositionInformation):
(WebKit::elementPositionInformation):

LayoutTests:

  • fast/images/text-recognition/image-overlay-in-transparent-image-expected.txt: Added.
  • fast/images/text-recognition/image-overlay-in-transparent-image.html: Added.
1:54 PM Changeset in webkit [279750] by Kate Cheney
  • 79 edits
    2 copies
    14 moves
    7 adds
    9 deletes in trunk

Clean up App Privacy Report code
https://bugs.webkit.org/show_bug.cgi?id=227326
<rdar://problem/79696849>

Reviewed by Brent Fulgham.

Source/WebCore:

Tests: http/tests/app-privacy-report/attribution-load-url.html

http/tests/app-privacy-report/attribution-ping-load.html
http/tests/app-privacy-report/attribution-post-request.html
http/tests/app-privacy-report/attribution-preflight-async.html
http/tests/app-privacy-report/attribution-preflight-sync.html
http/tests/app-privacy-report/attribution-speculative-revalidation.html

Rename App Privacy Report code to better align with the code's purpose
of attributing loads to the app or not. The default value should
be app initiated based on the documentation, so this patch also adjusts
the default value as needed.

  • loader/CrossOriginAccessControl.cpp:

(WebCore::createAccessControlPreflightRequest):

  • loader/DocumentLoader.h:

(WebCore::DocumentLoader::lastNavigationWasAppInitiated const):
(WebCore::DocumentLoader::setLastNavigationWasAppInitiated):
(WebCore::DocumentLoader::lastNavigationWasAppBound const): Deleted.
(WebCore::DocumentLoader::setLastNavigationWasAppBound): Deleted.

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::load):
(WebCore::FrameLoader::updateRequestAndAddExtraFields):

  • loader/FrameLoader.h:
  • platform/network/ResourceRequestBase.cpp:

(WebCore::ResourceRequestBase::setAsIsolatedCopy):

  • platform/network/ResourceRequestBase.h:

(WebCore::ResourceRequestBase::isAppInitiated const):
(WebCore::ResourceRequestBase::setIsAppInitiated):
(WebCore::ResourceRequestBase::ResourceRequestBase):
(WebCore::ResourceRequestBase::encodeBase const):
(WebCore::ResourceRequestBase::decodeBase):
(WebCore::ResourceRequestBase::isAppBound const): Deleted.
(WebCore::ResourceRequestBase::setIsAppBound): Deleted.

  • testing/ServiceWorkerInternals.cpp:

(WebCore::ServiceWorkerInternals::lastNavigationWasAppInitiated):
(WebCore::ServiceWorkerInternals::lastNavigationWasAppBound): Deleted.

  • testing/ServiceWorkerInternals.h:
  • testing/ServiceWorkerInternals.idl:
  • workers/service/ServiceWorkerClientData.cpp:

(WebCore::ServiceWorkerClientData::isolatedCopy const):
(WebCore::ServiceWorkerClientData::from):

  • workers/service/ServiceWorkerClientData.h:

(WebCore::ServiceWorkerClientData::encode const):
(WebCore::ServiceWorkerClientData::decode):

  • workers/service/ServiceWorkerContextData.cpp:

(WebCore::ServiceWorkerContextData::isolatedCopy const):

  • workers/service/ServiceWorkerContextData.h:

(WebCore::ServiceWorkerContextData::encode const):
(WebCore::ServiceWorkerContextData::decode):

  • workers/service/context/ServiceWorkerThreadProxy.cpp:

(WebCore::ServiceWorkerThreadProxy::ServiceWorkerThreadProxy):
(WebCore::ServiceWorkerThreadProxy::setLastNavigationWasAppInitiated):
(WebCore::ServiceWorkerThreadProxy::lastNavigationWasAppInitiated):
(WebCore::ServiceWorkerThreadProxy::setLastNavigationWasAppBound): Deleted.
(WebCore::ServiceWorkerThreadProxy::lastNavigationWasAppBound): Deleted.

  • workers/service/context/ServiceWorkerThreadProxy.h:
  • workers/service/server/RegistrationDatabase.cpp:

(WebCore::RegistrationDatabase::importRecords):

  • workers/service/server/SWServer.cpp:

(WebCore::SWServer::startScriptFetch):
(WebCore::SWServer::updateWorker):
(WebCore::SWServer::clientIsAppInitiatedForRegistrableDomain):
(WebCore::SWServer::updateAppInitiatedValueForWorkers):
(WebCore::SWServer::registerServiceWorkerClient):
(WebCore::SWServer::unregisterServiceWorkerClient):
(WebCore::SWServer::clientIsAppBoundForRegistrableDomain): Deleted.
(WebCore::SWServer::updateAppBoundValueForWorkers): Deleted.

  • workers/service/server/SWServer.h:
  • workers/service/server/SWServerRegistration.cpp:

(WebCore::SWServerRegistration::scheduleSoftUpdate):

  • workers/service/server/SWServerRegistration.h:

(WebCore::SWServerRegistration::isAppInitiated):
(WebCore::SWServerRegistration::isAppBound): Deleted.

  • workers/service/server/SWServerToContextConnection.h:
  • workers/service/server/SWServerWorker.cpp:

(WebCore::m_lastNavigationWasAppInitiated):
(WebCore::SWServerWorker::contextData const):
(WebCore::SWServerWorker::updateAppInitiatedValue):
(WebCore::m_lastNavigationWasAppBound): Deleted.
(WebCore::SWServerWorker::updateAppBoundValue): Deleted.

  • workers/service/server/SWServerWorker.h:

Source/WebKit:

Rename App Privacy Report code to better align with the code's purpose
of attributing loads to the app or not. The default value should
be app initiated based on the documentation, so this patch also adjusts
the default value as needed.

This also adopts the new NSURLRequest attribution API and removes
the deprecated _isNonAppInitiated SPI.

Covered by existing layout and API tests.

  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::preconnectTo):
(WebKit::NetworkProcess::appPrivacyReportTestingData):
(WebKit::NetworkProcess::clearAppPrivacyReportTestingData):
(WebKit::NetworkProcess::appBoundNavigationData): Deleted.
(WebKit::NetworkProcess::clearAppBoundNavigationData): Deleted.

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

(WebKit::NetworkResourceLoader::continueWillSendRedirectedRequest):
(WebKit::NetworkResourceLoader::isAppBound):

  • NetworkProcess/NetworkSession.h:

(WebKit::NetworkSession::appPrivacyReportTestingData):
(WebKit::NetworkSession::appBoundNavigationTestingData): Deleted.

  • NetworkProcess/ServiceWorker/ServiceWorkerFetchTask.cpp:

(WebKit::ServiceWorkerFetchTask::softUpdateIfNeeded):

  • NetworkProcess/ServiceWorker/ServiceWorkerSoftUpdateLoader.cpp:

(WebKit::ServiceWorkerSoftUpdateLoader::loadFromNetwork):

  • NetworkProcess/ServiceWorker/WebSWServerConnection.cpp:

(WebKit::WebSWServerConnection::controlClient):
(WebKit::WebSWServerConnection::createFetchTask):

  • NetworkProcess/ServiceWorker/WebSWServerToContextConnection.cpp:

(WebKit::WebSWServerToContextConnection::updateAppInitiatedValue):
(WebKit::WebSWServerToContextConnection::updateAppBoundValue): Deleted.

  • NetworkProcess/ServiceWorker/WebSWServerToContextConnection.h:
  • NetworkProcess/cache/NetworkCacheSpeculativeLoadManager.cpp:

(WebKit::NetworkCache::constructRevalidationRequest):
(WebKit::NetworkCache::SpeculativeLoadManager::registerLoad):
(WebKit::NetworkCache::SpeculativeLoadManager::startSpeculativeRevalidation):

  • NetworkProcess/cache/NetworkCacheSubresourcesEntry.h:

(WebKit::NetworkCache::SubresourceInfo::isAppInitiated const):
(WebKit::NetworkCache::SubresourceInfo::setIsAppInitiated):
(WebKit::NetworkCache::SubresourceInfo::isAppBound const): Deleted.
(WebKit::NetworkCache::SubresourceInfo::setIsAppBound): Deleted.

  • NetworkProcess/cocoa/NetworkDataTaskCocoa.mm:

(WebKit::NetworkDataTaskCocoa::NetworkDataTaskCocoa):

  • Scripts/webkit/messages.py:

(headers_for_type):

  • Shared/AppPrivacyReport.h:

(WebKit::AppPrivacyReportTestingData::setDidPerformSoftUpdate):
(WebKit::AppPrivacyReportTestingData::clearAppPrivacyReportTestingData):
(WebKit::AppPrivacyReportTestingData::didLoadAppInitiatedRequest):
(WebKit::AppPrivacyReportTestingData::encode const):
(WebKit::AppPrivacyReportTestingData::decode):

  • Shared/Cocoa/WebCoreArgumentCodersCocoa.mm:

(IPC::ArgumentCoder<WebCore::ResourceRequest>::encodePlatformData):
(IPC::ArgumentCoder<WebCore::ResourceRequest>::decodePlatformData):

  • Shared/NavigatingToAppBoundDomain.h:

(WebKit::AppBoundNavigationTestingData::setDidPerformSoftUpdate): Deleted.
(WebKit::AppBoundNavigationTestingData::clearAppBoundNavigationDataTesting): Deleted.
(WebKit::AppBoundNavigationTestingData::updateAppBoundNavigationTestingData): Deleted.
(WebKit::AppBoundNavigationTestingData::encode const): Deleted.
(WebKit::AppBoundNavigationTestingData::decode): Deleted.
(): Deleted.

  • Shared/WebPageCreationParameters.cpp:

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

  • Shared/WebPageCreationParameters.h:
  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _didLoadAppInitiatedRequest:]):
(-[WKWebView _didLoadNonAppInitiatedRequest:]):
(-[WKWebView _appBoundNavigationDataForDomain:completionHandler:]): Deleted.
Removed now that we no longer need to test attribution context, that
is all it was used for.

(-[WKWebView _didLoadAppBoundRequest:]): Deleted.
(-[WKWebView _didLoadNonAppBoundRequest:]): Deleted.

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

(-[WKWebView _lastNavigationWasAppInitiated:]):
(-[WKWebView _appPrivacyReportTestingData:]):
(-[WKWebView _clearAppPrivacyReportTestingData:]):
(-[WKWebView _lastNavigationWasAppBound:]): Deleted.
(-[WKWebView _appBoundNavigationData:]): Deleted.
(-[WKWebView _clearAppBoundNavigationData:]): Deleted.

  • UIProcess/Cocoa/WebPageProxyCocoa.mm:

(WebKit::WebPageProxy::setLastNavigationWasAppInitiated):
(WebKit::WebPageProxy::lastNavigationWasAppInitiated):
(WebKit::WebPageProxy::setLastNavigationWasAppBound): Deleted.
(WebKit::WebPageProxy::lastNavigationWasAppBound): Deleted.

  • UIProcess/Network/NetworkProcessProxy.cpp:

(WebKit::NetworkProcessProxy::preconnectTo):

  • UIProcess/Network/NetworkProcessProxy.h:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::loadRequest):
(WebKit::WebPageProxy::preconnectTo):
(WebKit::WebPageProxy::creationParameters):
(WebKit::WebPageProxy::appPrivacyReportTestingData):
(WebKit::WebPageProxy::clearAppPrivacyReportTestingData):
(WebKit::WebPageProxy::appBoundNavigationData): Deleted.
(WebKit::WebPageProxy::clearAppBoundNavigationData): Deleted.

  • UIProcess/WebPageProxy.h:
  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/Network/WebLoaderStrategy.cpp:

(WebKit::WebLoaderStrategy::loadResource):
(WebKit::WebLoaderStrategy::preconnectTo):

  • WebProcess/Storage/WebSWContextManagerConnection.cpp:

(WebKit::WebSWContextManagerConnection::updateAppInitiatedValue):
(WebKit::WebSWContextManagerConnection::startFetch):
(WebKit::WebSWContextManagerConnection::updateAppBoundValue): Deleted.

  • WebProcess/Storage/WebSWContextManagerConnection.h:
  • WebProcess/Storage/WebSWContextManagerConnection.messages.in:
  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:

(WebKit::WebFrameLoaderClient::dispatchWillSendRequest):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::loadRequest):
(WebKit::WebPage::createDocumentLoader):
(WebKit::WebPage::lastNavigationWasAppInitiated):
(WebKit::WebPage::lastNavigationWasAppBound): Deleted.

  • WebProcess/WebPage/WebPage.h:

(WebKit::WebPage::setLastNavigationWasAppInitiated):
(WebKit::WebPage::setLastNavigationWasAppBound): Deleted.

  • WebProcess/WebPage/WebPage.messages.in:

Tools:

Delete testing functions related to attribution context. Move App
Privacy Report tests into their own file.

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKitCocoa/AppPrivacyReport.mm: Added.

(TEST):
(catch):
(function):
(-[SWAppInitiatedRequestMessageHandler userContentController:didReceiveScriptMessage:]):

  • TestWebKitAPI/Tests/WebKitCocoa/AppPrivacyReportPlugIn.mm: Renamed from Tools/TestWebKitAPI/Tests/WebKitCocoa/InAppBrowserPrivacyPlugIn.mm.

(-[AppPrivacyReportPlugIn webProcessPlugInBrowserContextController:frame:willSendRequestForResource:request:redirectResponse:]):

  • TestWebKitAPI/Tests/WebKitCocoa/InAppBrowserPrivacy.mm:

(-[SWAppBoundRequestMessageHandler userContentController:didReceiveScriptMessage:]): Deleted.

  • TestWebKitAPI/Tests/WebKitCocoa/app-privacy-report-iframe.html: Added.
  • WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl:
  • WebKitTestRunner/InjectedBundle/InjectedBundle.cpp:

(WTR::InjectedBundle::didReceiveMessageToPage):

  • WebKitTestRunner/InjectedBundle/TestRunner.cpp:

(WTR::TestRunner::didLoadAppInitiatedRequest):
(WTR::TestRunner::didLoadNonAppInitiatedRequest):
(WTR::TestRunner::appBoundRequestContextDataForDomain): Deleted.
(WTR::TestRunner::callDidReceiveAppBoundRequestContextDataForDomainCallback): Deleted.
(WTR::TestRunner::didLoadAppBoundRequest): Deleted.
(WTR::TestRunner::didLoadNonAppBoundRequest): Deleted.

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

(WTR::TestController::resetStateToConsistentValues):
(WTR::TestController::didLoadAppInitiatedRequest):
(WTR::TestController::didLoadNonAppInitiatedRequest):
(WTR::TestController::clearAppPrivacyReportTestingData):
(WTR::TestController::appBoundRequestContextDataForDomain): Deleted.
(WTR::TestController::didLoadAppBoundRequest): Deleted.
(WTR::TestController::didLoadNonAppBoundRequest): Deleted.
(WTR::TestController::clearAppBoundNavigationData): Deleted.

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

(WTR::TestInvocation::didReceiveMessageFromInjectedBundle):
(WTR::TestInvocation::didReceiveSynchronousMessageFromInjectedBundle):
(WTR::TestInvocation::didReceiveAppBoundRequestContextDataForDomain): Deleted.

  • WebKitTestRunner/TestInvocation.h:
  • WebKitTestRunner/cocoa/TestControllerCocoa.mm:

(WTR::TestController::didLoadAppInitiatedRequest):
(WTR::TestController::didLoadNonAppInitiatedRequest):
(WTR::TestController::clearAppPrivacyReportTestingData):
(WTR::TestController::appBoundRequestContextDataForDomain): Deleted.
(WTR::TestController::didLoadAppBoundRequest): Deleted.
(WTR::TestController::didLoadNonAppBoundRequest): Deleted.
(WTR::TestController::clearAppBoundNavigationData): Deleted.

  • WebKitTestRunner/cocoa/TestRunnerWKWebView.h:
  • WebKitTestRunner/cocoa/TestRunnerWKWebView.mm:

(-[TestRunnerWKWebView _didLoadAppInitiatedRequest:]):
(-[TestRunnerWKWebView _didLoadNonAppInitiatedRequest:]):
(-[TestRunnerWKWebView _appBoundNavigationDataForDomain:completionHandler:]): Deleted.
(-[TestRunnerWKWebView _didLoadAppBoundRequest:]): Deleted.
(-[TestRunnerWKWebView _didLoadNonAppBoundRequest:]): Deleted.

LayoutTests:

Move App Privacy Report tests into their own directory.

  • TestExpectations:
  • http/tests/app-privacy-report/attribution-load-url-expected.txt: Added.
  • http/tests/app-privacy-report/attribution-load-url.html: Renamed from LayoutTests/http/tests/in-app-browser-privacy/app-bound-attribution-load-url.html.
  • http/tests/app-privacy-report/attribution-ping-load-expected.txt: Renamed from LayoutTests/http/tests/in-app-browser-privacy/app-bound-attribution-ping-load-expected.txt.
  • http/tests/app-privacy-report/attribution-ping-load.html: Renamed from LayoutTests/http/tests/in-app-browser-privacy/app-bound-attribution-ping-load.html.
  • http/tests/app-privacy-report/attribution-post-request-expected.txt: Added.
  • http/tests/app-privacy-report/attribution-post-request.html: Renamed from LayoutTests/http/tests/in-app-browser-privacy/app-bound-attribution-post-request.html.
  • http/tests/app-privacy-report/attribution-preflight-async-expected.txt: Renamed from LayoutTests/http/tests/in-app-browser-privacy/app-bound-attribution-preflight-async-expected.txt.
  • http/tests/app-privacy-report/attribution-preflight-async.html: Renamed from LayoutTests/http/tests/in-app-browser-privacy/app-bound-attribution-preflight-async.html.
  • http/tests/app-privacy-report/attribution-preflight-sync-expected.txt: Renamed from LayoutTests/http/tests/in-app-browser-privacy/app-bound-attribution-preflight-sync-expected.txt.
  • http/tests/app-privacy-report/attribution-preflight-sync.html: Renamed from LayoutTests/http/tests/in-app-browser-privacy/app-bound-attribution-preflight-sync.html.
  • http/tests/app-privacy-report/attribution-speculative-revalidation-expected.txt: Renamed from LayoutTests/http/tests/in-app-browser-privacy/app-bound-attribution-speculative-revalidation-expected.txt.
  • http/tests/app-privacy-report/attribution-speculative-revalidation.html: Renamed from LayoutTests/http/tests/in-app-browser-privacy/app-bound-attribution-speculative-revalidation.html.
  • http/tests/app-privacy-report/resources/frame-with-authenticated-resource.py: Renamed from LayoutTests/http/tests/in-app-browser-privacy/resources/frame-with-authenticated-resource.py.
  • http/tests/app-privacy-report/resources/post.py: Added.
  • http/tests/app-privacy-report/resources/resource-with-auth.py: Renamed from LayoutTests/http/tests/in-app-browser-privacy/resources/resource-with-auth.py.
  • http/tests/in-app-browser-privacy/app-bound-attribution-load-url-expected.txt: Removed.
  • http/tests/in-app-browser-privacy/app-bound-attribution-post-request-expected.txt: Removed.
  • http/tests/in-app-browser-privacy/context-string-for-subframe-expected.txt: Removed.
  • http/tests/in-app-browser-privacy/context-string-for-subframe.html: Removed.
  • http/tests/in-app-browser-privacy/context-string-preconnect-expected.txt: Removed.
  • http/tests/in-app-browser-privacy/context-string-preconnect.html: Removed.
  • http/tests/in-app-browser-privacy/context-string-preflight-expected.txt: Removed.
  • http/tests/in-app-browser-privacy/context-string-preflight.html: Removed.
  • http/tests/in-app-browser-privacy/resources/post.py: Removed.
  • http/tests/navigation/resources/check-ping-app-initiated-data.py: Renamed from LayoutTests/http/tests/navigation/resources/check-ping-app-bound-data.py.
  • platform/ios-wk2/TestExpectations:
1:45 PM Changeset in webkit [279749] by rniwa@webkit.org
  • 3 edits in trunk/Source/WebCore

Deploy smart pointers in PointerCaptureController
https://bugs.webkit.org/show_bug.cgi?id=227352

Reviewed by Wenson Hsieh.

Deployed Ref/RefPtr in more places in PointerCaptureController.
Also made PointerCaptureController::CapturingData ref counted.

  • page/PointerCaptureController.cpp:

(WebCore::PointerCaptureController::pointerCaptureElement const):
(WebCore::PointerCaptureController::setPointerCapture):
(WebCore::PointerCaptureController::releasePointerCapture):
(WebCore::PointerCaptureController::hasPointerCapture):
(WebCore::PointerCaptureController::pointerLockWasApplied):
(WebCore::PointerCaptureController::elementWasRemoved):
(WebCore::PointerCaptureController::reset):
(WebCore::PointerCaptureController::updateHaveAnyCapturingElement):
(WebCore::PointerCaptureController::hasCancelledPointerEventForIdentifier const):
(WebCore::PointerCaptureController::preventsCompatibilityMouseEventsForIdentifier const):
(WebCore::hierarchyHasCapturingEventListeners):
(WebCore::PointerCaptureController::dispatchEventForTouchAtIndex):
(WebCore::PointerCaptureController::pointerEventForMouseEvent):
(WebCore::PointerCaptureController::pointerEventWillBeDispatched):
(WebCore::PointerCaptureController::ensureCapturingDataForPointerEvent):
(WebCore::PointerCaptureController::pointerEventWasDispatched):
(WebCore::PointerCaptureController::cancelPointer):
(WebCore::PointerCaptureController::processPendingPointerCapture):

  • page/PointerCaptureController.h:

(WebCore::PointerCaptureController::CapturingData::create):
(WebCore::PointerCaptureController::CapturingData::CapturingData):

1:29 PM Changeset in webkit [279748] by Simon Fraser
  • 4 edits
    2 adds in trunk

Scrollbar hidden when scroller has a negative z-index child
https://bugs.webkit.org/show_bug.cgi?id=227545

Reviewed by Alan Bujtas.
Source/WebCore:

The code to ensure that overflow:scroll scrollbars appeared on top of composited descendant
layers had incorrect behavior if the only descendant had negative z-index; it would move the
overflow controls container layer to be after that descendant, and thus behind foreground
content.

Fix by inserting the overflow controls container layer in front of the frontmost of the
descendant and the scroller itself.

Test: compositing/scrolling/async-overflow-scrolling/negative-z-in-scroller-hidden-scrollbar.html

  • rendering/RenderLayerCompositor.cpp:

(WebCore::RenderLayerCompositor::adjustOverflowScrollbarContainerLayers):

LayoutTests:

  • compositing/scrolling/async-overflow-scrolling/layer-for-negative-z-in-scroller-expected.txt: Rebaseline
  • compositing/scrolling/async-overflow-scrolling/negative-z-in-scroller-hidden-scrollbar-expected.html: Added.
  • compositing/scrolling/async-overflow-scrolling/negative-z-in-scroller-hidden-scrollbar.html: Added.
1:27 PM Changeset in webkit [279747] by Russell Epstein
  • 10 edits
    1 add in branches/safari-612.1.23-branch

Cherry-pick r279690. rdar://problem/80339399

[JSC] Fix Object.assign fast path to accept undefined/null
https://bugs.webkit.org/show_bug.cgi?id=227769
rdar://80264271

Reviewed by Saam Barati.

JSTests:

  • stress/object-assign-undefined.js: Added. (test):

Source/JavaScriptCore:

Object.assign can accept undefined or null as a second (or latter) parameters.
If it is passed, the parameter is just ignored. Previous DFG / FTL optimization patch
does not handle this case.

  • dfg/DFGByteCodeParser.cpp: (JSC::DFG::ByteCodeParser::handleIntrinsicCall):
  • dfg/DFGFixupPhase.cpp: (JSC::DFG::FixupPhase::fixupNode):
  • dfg/DFGOperations.cpp: (JSC::DFG::JSC_DEFINE_JIT_OPERATION):
  • dfg/DFGOperations.h:
  • dfg/DFGSpeculativeJIT.cpp: (JSC::DFG::SpeculativeJIT::compileObjectAssign):
  • ftl/FTLLowerDFGToB3.cpp: (JSC::FTL::DFG::LowerDFGToB3::compileObjectAssign):
  • runtime/ObjectConstructor.cpp: (JSC::JSC_DEFINE_HOST_FUNCTION):
  • runtime/ObjectConstructorInlines.h: (JSC::objectAssignFast):

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

1:27 PM Changeset in webkit [279746] by Russell Epstein
  • 35 edits
    3 adds in branches/safari-612.1.23-branch

Cherry-pick r279604. rdar://problem/80340434

[JSC] Optimize Object.assign and putDirectInternal
https://bugs.webkit.org/show_bug.cgi?id=227677

Reviewed by Filip Pizlo.

JSTests:

  • microbenchmarks/object-assign-replace.js: Added. (test):
  • microbenchmarks/object-assign-transition.js: Added. (test):

Source/JavaScriptCore:

This patch improves Object.assign performance (and this requires putDirectInternal improvement).

  1. Object.assign is handled by DFG / FTL as ObjectAssign node
  2. We found that putDirectInternal is suboptimal. This patch removes several bottlenecks. They are super critical from the measurement of microbenchmarks.

2.1. Creating and destroying DeferredStructureTransitionWatchpointFire is not free. We should do that only when we need it.
2.2. Before r277620, we are checking m_replacementWatchpointSets's nullptr and that was fast. But after that, we are always

calling HashMap::get, and it is not inlined. This means that if we have StructureRareData, we are always calling HashMap::get
even though there is no m_replacementWatchpointSets set. This patch adds HashMap::isNullStorage to avoid this call by inlinely
check this via LIKELY(m_replacementWatchpointSets.isNullStorage()).

2.3. Structure::addPropertyTransitionToExistingStructure has very cheap fast path and we must inline them to get performance benefit

for major single-transition case.

Added microbenchmarks show significant performance improvements. And Speedometer2 shows 0.6 - 1.0% improvement.

ToT Patched

object-assign-transition 105.2539+-0.2970 88.8046+-0.2029 definitely 1.1852x faster
object-assign-replace 116.1568+-0.0905 75.0673+-0.0658 definitely 1.5474x faster

  • JavaScriptCore.xcodeproj/project.pbxproj:
  • bytecode/Watchpoint.cpp: (JSC::DeferredWatchpointFire::fireAllSlow): (JSC::DeferredWatchpointFire::DeferredWatchpointFire): Deleted. (JSC::DeferredWatchpointFire::~DeferredWatchpointFire): Deleted. (JSC::DeferredWatchpointFire::fireAll): Deleted.
  • bytecode/Watchpoint.h: (JSC::DeferredWatchpointFire::DeferredWatchpointFire): (JSC::DeferredWatchpointFire::fireAll): (JSC::FireDetail::FireDetail): Deleted. (JSC::FireDetail::~FireDetail): Deleted.
  • dfg/DFGAbstractInterpreterInlines.h: (JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):
  • dfg/DFGByteCodeParser.cpp: (JSC::DFG::ByteCodeParser::handleIntrinsicCall):
  • dfg/DFGClobberize.h: (JSC::DFG::clobberize):
  • dfg/DFGDoesGC.cpp: (JSC::DFG::doesGC):
  • dfg/DFGFixupPhase.cpp: (JSC::DFG::FixupPhase::fixupNode):
  • dfg/DFGMayExit.cpp:
  • dfg/DFGNodeType.h:
  • dfg/DFGOperations.cpp: (JSC::DFG::JSC_DEFINE_JIT_OPERATION):
  • dfg/DFGOperations.h:
  • dfg/DFGPredictionPropagationPhase.cpp:
  • dfg/DFGSafeToExecute.h: (JSC::DFG::safeToExecute):
  • dfg/DFGSpeculativeJIT.cpp: (JSC::DFG::SpeculativeJIT::compileObjectAssign):
  • dfg/DFGSpeculativeJIT.h:
  • dfg/DFGSpeculativeJIT32_64.cpp: (JSC::DFG::SpeculativeJIT::compile):
  • dfg/DFGSpeculativeJIT64.cpp: (JSC::DFG::SpeculativeJIT::compile):
  • ftl/FTLCapabilities.cpp: (JSC::FTL::canCompile):
  • ftl/FTLLowerDFGToB3.cpp: (JSC::FTL::DFG::LowerDFGToB3::compileNode): (JSC::FTL::DFG::LowerDFGToB3::compileObjectAssign):
  • runtime/Intrinsic.cpp: (JSC::intrinsicName):
  • runtime/Intrinsic.h:
  • runtime/JSObject.cpp: (JSC::JSObject::deleteProperty):
  • runtime/JSObjectInlines.h: (JSC::JSObject::putDirectInternal):
  • runtime/ObjectConstructor.cpp: (JSC::objectAssignGeneric): (JSC::JSC_DEFINE_HOST_FUNCTION):
  • runtime/ObjectConstructor.h:
  • runtime/ObjectConstructorInlines.h: Added. (JSC::canPerformFastPropertyEnumerationForObjectAssign):
  • runtime/Structure.cpp: (JSC::StructureTransitionTable::singleTransition const): Deleted. (JSC::StructureTransitionTable::get const): Deleted. (JSC::Structure::addPropertyTransitionToExistingStructureImpl): Deleted. (JSC::Structure::addPropertyTransitionToExistingStructure): Deleted. (JSC::Structure::addPropertyTransitionToExistingStructureConcurrently): Deleted.
  • runtime/Structure.h:
  • runtime/StructureInlines.h: (JSC::Structure::didReplaceProperty): (JSC::Structure::propertyReplacementWatchpointSet): (JSC::Structure::addPropertyTransitionToExistingStructureImpl): (JSC::Structure::addPropertyTransitionToExistingStructure): (JSC::Structure::addPropertyTransitionToExistingStructureConcurrently): (JSC::StructureTransitionTable::singleTransition const): (JSC::StructureTransitionTable::get const):

Source/WTF:

  • wtf/HashMap.h:
  • wtf/HashSet.h:
  • wtf/HashTable.h: (WTF::HashTable::isNullStorage const):

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

1:13 PM Changeset in webkit [279745] by Russell Epstein
  • 13 edits in branches/safari-612.1.23-branch/Source/ThirdParty/ANGLE

Cherry-pick r279606. rdar://problem/80339390

REGRESSION (r279466): [Big Sur] webgl/1.0.3/conformance & webgl/2.0.0/conformance are failing
https://bugs.webkit.org/show_bug.cgi?id=227596
Provide Intel workaround for Big Sur systems. Atan and invariant have
issues on older systems, and require us to disable fastmath to produce correct results.

Reviewed by Kenneth Russell.

  • include/platform/FeaturesMtl.h:
  • src/compiler/translator/TranslatorMetalDirect.h: (sh::TranslatorMetalReflection::reset):
  • src/compiler/translator/TranslatorMetalDirect/EmitMetal.cpp: (GenMetalTraverser::emitPostQualifier): (GenMetalTraverser::visitUnary): (GenMetalTraverser::visitAggregate):
  • src/libANGLE/renderer/metal/DisplayMtl.mm: (rx::DisplayMtl::initializeFeatures):
  • src/libANGLE/renderer/metal/ProgramMtl.h: (rx::ProgramMtl::getTranslatedShaderInfo const):
  • src/libANGLE/renderer/metal/ProgramMtl.mm:
  • src/libANGLE/renderer/metal/mtl_glslang_mtl_utils.h:
  • src/libANGLE/renderer/metal/mtl_glslang_mtl_utils.mm: (rx::mtl::GlslangGetMSL):
  • src/libANGLE/renderer/metal/mtl_render_utils.h:
  • src/libANGLE/renderer/metal/mtl_render_utils.mm: (rx::mtl::TransformFeedbackUtils::createMslXfbLibrary): (rx::mtl::TransformFeedbackUtils::getTransformFeedbackRenderPipeline):
  • src/libANGLE/renderer/metal/mtl_utils.h:
  • src/libANGLE/renderer/metal/mtl_utils.mm: (rx::mtl::CreateShaderLibrary):

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

1:01 PM Changeset in webkit [279744] by Russell Epstein
  • 8 edits in branches/safari-612.1.23-branch/Source

Versioning.

WebKit-7612.1.23

12:56 PM Changeset in webkit [279743] by Russell Epstein
  • 1 copy in branches/safari-612.1.23-branch

New branch.

12:26 PM Changeset in webkit [279742] by yoshiaki.jitsukawa@sony.com
  • 6 edits in trunk

[OpenSSL] Implement HKDF and PBKDF2 support
https://bugs.webkit.org/show_bug.cgi?id=227656

Reviewed by Fujii Hironori.

Source/WebCore:

  • crypto/openssl/CryptoAlgorithmHKDFOpenSSL.cpp:

(WebCore::CryptoAlgorithmHKDF::platformDeriveBits): Implemented with HKDF().

  • crypto/openssl/CryptoAlgorithmPBKDF2OpenSSL.cpp:

(WebCore::CryptoAlgorithmPBKDF2::platformDeriveBits):

  • crypto/openssl/CryptoAlgorithmRegistryOpenSSL.cpp: Implemented with PKCS5_PBKDF2_HMAC().

(WebCore::CryptoAlgorithmRegistry::platformRegisterAlgorithms): Register HKDF and PBKDF2.

LayoutTests:

Enable HKDF and PBKDF2 tests.

  • platform/wincairo/TestExpectations:
12:11 PM Changeset in webkit [279741] by mmaxfield@apple.com
  • 4 edits
    2 adds in trunk

Source/WebCore:
[GPU Process] Draw PDFs using an intermediate ImageBuffer when using the GPU process
https://bugs.webkit.org/show_bug.cgi?id=227550

Reviewed by Tim Horton.

When drawing PDFs, we usually already have a cached ImageBuffer of the contents of the PDF.
However, in the situation where we don't have this cached ImageBuffer, we can't just draw
the PDF into the platformContext when we're using the GPU Process. So, instead, we need to
draw the PDF into an intermediate ImageBuffer and then send that to the GPU Process.

When we have a fully functional custom CGContext, we can use that to send all the PDF drawing
commands to the GPU Process, and this patch should then be reverted.

Test: fast/images/pdf-in-canvas.html

  • platform/graphics/cg/PDFDocumentImage.cpp:

(WebCore::PDFDocumentImage::draw):

  • platform/mac/LocalCurrentGraphicsContextMac.mm:

(WebCore::LocalCurrentGraphicsContext::LocalCurrentGraphicsContext):

LayoutTests:
[GPU Process] Temporarily disable drawing large PDFs in display list drawing
https://bugs.webkit.org/show_bug.cgi?id=227550

Reviewed by Tim Horton.

  • fast/images/pdf-in-canvas-expected.html: Added.
  • fast/images/pdf-in-canvas.html: Added.
11:54 AM Changeset in webkit [279740] by keith_miller@apple.com
  • 5 edits in trunk/Source/JavaScriptCore

display-profiler-output should be able to print disassembly for the FTL
https://bugs.webkit.org/show_bug.cgi?id=227798

Reviewed by Saam Barati.

Right now running JSC with the bytecode profiler will not print
disassembly for FTL code. This patch adds this support. In order to get
execution counts there is a callback at the transition between each
DFG node in the Air disassembler. Since B3 code move parts of
DFG nodes to different basic blocks we don't include execution
counts in the dump. However, the DFG-only graph printed before
the disassembly will still have the counts.

  • ftl/FTLCompile.cpp:

(JSC::FTL::compile):

  • ftl/FTLLink.cpp:

(JSC::FTL::link):

  • ftl/FTLState.cpp:

(JSC::FTL::State::dumpDisassembly):

  • ftl/FTLState.h:

(JSC::FTL::State::dumpDisassembly):

11:48 AM Changeset in webkit [279739] by Russell Epstein
  • 1 copy in tags/Safari-612.1.22.11.1

Tag Safari-612.1.22.11.1.

11:38 AM Changeset in webkit [279738] by Truitt Savell
  • 2 edits in trunk/LayoutTests

[Mac wk2 Debug] fast/canvas/canvas-composite-image.html is a flaky crash.
https://bugs.webkit.org/show_bug.cgi?id=227805

Unreviewed test gardening.

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

  • platform/mac-wk2/TestExpectations:
11:24 AM Changeset in webkit [279737] by achristensen@apple.com
  • 1 edit
    2 deletes in trunk/LayoutTests/imported/w3c

Remove unused URL test expectation files.

  • web-platform-tests/url/historical-expected.txt: Removed.
  • web-platform-tests/url/url-setters-expected.txt: Removed.
11:14 AM Changeset in webkit [279736] by commit-queue@webkit.org
  • 5 edits in trunk/Source/WebKit

[GTK] Too easy to trigger navigation swipe on touchscreen
https://bugs.webkit.org/show_bug.cgi?id=226745

Patch by Alexander Mikhaylenko <Alexander Mikhaylenko> on 2021-07-08
Reviewed by Michael Catanzaro.

ViewGestureController uses both x and y deltas to figure out whether to proceed
with a swipe, in the cross-platform part of the code. However, that was optimized
out during the touch handling rewrite, bring it back.

  • UIProcess/API/gtk/PageClientImpl.cpp:

(WebKit::PageClientImpl::wheelEventWasNotHandledByWebCore):

  • UIProcess/API/gtk/WebKitWebViewBase.cpp:

(webkitWebViewBaseHandleWheelEvent):
(webkitWebViewBaseScroll):
(webkitWebViewBaseTouchDragUpdate):
(webkitWebViewBaseTouchDragEnd):

  • UIProcess/ViewGestureController.h:
  • UIProcess/gtk/ViewGestureControllerGtk.cpp:

(WebKit::ViewGestureController::PendingSwipeTracker::scrollEventGetScrollingDeltas):
(WebKit::ViewGestureController::SwipeProgressTracker::handleEvent):
(WebKit::ViewGestureController::beginSimulatedSwipeInDirectionForTesting):
(WebKit::ViewGestureController::completeSimulatedSwipeInDirectionForTesting):

11:07 AM Changeset in webkit [279735] by Russell Epstein
  • 9 edits in branches/safari-612.1.22.11-branch/Source/WebKit

Cherry-pick r279591. rdar://problem/80282927

Collect Accessibility preferences on a background queue
https://bugs.webkit.org/show_bug.cgi?id=227617
<rdar://80055168>

Reviewed by Brent Fulgham.

To avoid blocking the main thread of the UI process, collect Media Accessibility preferences on a background thread,
and send them to the WebContent process(es).

  • Shared/AccessibilityPreferences.cpp: (IPC::ArgumentCoder<WebKit::AccessibilityPreferences>::encode): (IPC::ArgumentCoder<WebKit::AccessibilityPreferences>::decode):
  • Shared/AccessibilityPreferences.h:
  • UIProcess/Cocoa/WebProcessPoolCocoa.mm: (WebKit::accessibilityPreferences): (WebKit::WebProcessPool::setMediaAccessibilityPreferences): (WebKit::WebProcessPool::mediaAccessibilityPreferencesChangedCallback): (WebKit::WebProcessPool::registerNotificationObservers):
  • UIProcess/WebProcessPool.cpp: (WebKit::WebProcessPool::initializeNewWebProcess):
  • UIProcess/WebProcessPool.h:
  • WebProcess/WebProcess.h:
  • WebProcess/WebProcess.messages.in:
  • WebProcess/cocoa/WebProcessCocoa.mm: (WebKit::WebProcess::accessibilityPreferencesDidChange): (WebKit::WebProcess::setMediaAccessibilityPreferences):

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

11:07 AM Changeset in webkit [279734] by Russell Epstein
  • 4 edits in branches/safari-612.1.22.11-branch/Source/WebKit

Cherry-pick r279342. rdar://problem/80282927

Pass correct value of AX per app settings to the WebContent process
https://bugs.webkit.org/show_bug.cgi?id=227441
<rdar://problem/79857797>

Reviewed by Brent Fulgham.

Pass value of type AXValueState instead of a boolean value for per app AX settings.

  • Shared/AccessibilityPreferences.h:
  • UIProcess/Cocoa/WebProcessPoolCocoa.mm: (WebKit::accessibilityPreferences):
  • WebProcess/cocoa/WebProcessCocoa.mm: (WebKit::WebProcess::accessibilityPreferencesDidChange):

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

11:07 AM Changeset in webkit [279733] by Russell Epstein
  • 8 edits in branches/safari-612.1.22.11-branch

Cherry-pick r279449. rdar://problem/80212104

Turn off data ICs by default
https://bugs.webkit.org/show_bug.cgi?id=227334
<rdar://problem/79802812>

Reviewed by Yusuke Suzuki.

JSTests:

  • microbenchmarks/deltablue-varargs.js:
  • microbenchmarks/richards-try-catch.js:

Source/JavaScriptCore:

There are GC crashes that are caused by access data IC sharing. This
patch is both turning off data IC sharing by default, and turning off data
ICs by default.

We should re-enable this once we figure out the issue:
https://bugs.webkit.org/show_bug.cgi?id=227551

Some of our testing modes are still running with data ICs on, so the code doesn't
bit rot. And a select few tests are running with data IC sharing on, for
similar reasons, even though we know it has issues. If those tests start
crashing, we'll just disable sharing completely until the issue is resolved.

  • bytecode/PolymorphicAccess.cpp: (JSC::PolymorphicAccess::regenerate):
  • runtime/OptionsList.h:

Tools:

  • Scripts/run-jsc-stress-tests:

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

11:07 AM Changeset in webkit [279732] by Russell Epstein
  • 8 edits in branches/safari-612.1.22.11-branch/Source/JavaScriptCore

Cherry-pick r279560. rdar://problem/80212179

ActiveScratchBufferScope should take the buffer as argument
https://bugs.webkit.org/show_bug.cgi?id=227670
rdar://80011612

Reviewed by Mark Lam.

https://bugs.webkit.org/show_bug.cgi?id=227013 created ActiveScratchBufferScope.
It is used by operations that can cause the GC to run, to mark as roots the contents of the scratch buffer that is live during that time (if any).
The bug is that it simply asks the VM for a scratch buffer of the right size, but this will always return the last scratch buffer, and not necessarily the one that the operation is actually using.

A fairly simple fix is to pass it directly the scratch buffer, since the operation normally can get it easily enough.
In most cases the operation has access to the m_buffer field of the ScratchBuffer, but getting a pointer to the entire structure from that is fairly simple (I added ScratchBuffer::fromData() to do so).

  • dfg/DFGOSRExit.cpp: (JSC::DFG::JSC_DEFINE_JIT_OPERATION):
  • dfg/DFGOSRExit.h:
  • dfg/DFGOperations.cpp: (JSC::DFG::JSC_DEFINE_JIT_OPERATION):
  • dfg/DFGSpeculativeJIT.cpp: (JSC::DFG::SpeculativeJIT::compileNewArray):
  • dfg/DFGThunks.cpp: (JSC::DFG::osrExitGenerationThunkGenerator):
  • runtime/JSGlobalObject.cpp: (JSC::JSGlobalObject::haveABadTime):
  • runtime/VM.h: (JSC::ScratchBuffer::fromData):
  • runtime/VMInlines.h: (JSC::ActiveScratchBufferScope::ActiveScratchBufferScope): (JSC::ActiveScratchBufferScope::~ActiveScratchBufferScope):

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

10:50 AM Changeset in webkit [279731] by Ruben Turcios
  • 8 edits in branches/safari-612.1.18.11-branch/Source

Versioning.

WebKit-7612.1.18.11.4

10:36 AM Changeset in webkit [279730] by Truitt Savell
  • 2 edits in trunk/LayoutTests

[ Mac Debug ] inspector/canvas/shaderProgram-add-remove-webgl2.html is a flaky text failure.
https://bugs.webkit.org/show_bug.cgi?id=227781

Unreviewed test gardening.

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

  • platform/mac/TestExpectations:
10:27 AM Changeset in webkit [279729] by ysuzuki@apple.com
  • 4 edits in trunk/Source

Use JSC::Yarr::flagsString to get string representation of RegExp flags
https://bugs.webkit.org/show_bug.cgi?id=227790

Reviewed by Keith Miller.

Source/JavaScriptCore:

  • yarr/YarrFlags.h:

Source/WebCore:

This patch uses JSC::Yarr::flagsString function to retrieve string representation of
RegExp flags. This allows JSC to add flags without changing WebCore code.
Covered by existing tests.

  • bindings/js/SerializedScriptValue.cpp:

(WebCore::CloneSerializer::dumpIfTerminal):

10:17 AM Changeset in webkit [279728] by Megan Gardner
  • 3 edits in trunk/Source/WebCore

Add logging for legacy AppHighlight decoding to aid in future debugging.
https://bugs.webkit.org/show_bug.cgi?id=227591

Reviewed by Tim Horton.

  • Modules/highlight/AppHighlightRangeData.cpp:

(WebCore::AppHighlightRangeData::decode):

  • platform/Logging.h:
10:13 AM Changeset in webkit [279727] by commit-queue@webkit.org
  • 4 edits in trunk

Source/WebKit:
_WKWebAuthenticationPanel is returning the wrong operation type in clientDataJSON
https://bugs.webkit.org/show_bug.cgi?id=227726
rdar://80073404

Patch by Garrett Davidson <garrett_davidson@apple.com> on 2021-07-08
Reviewed by Kate Cheney.

The -getAssertion:... method was passing the wrong _WKWebAuthenticationType to produceClientDataJSON().

  • UIProcess/API/Cocoa/_WKWebAuthenticationPanel.mm:

(-[_WKWebAuthenticationPanel getAssertionWithChallenge:origin:options:completionHandler:]):

Tools:
Update the WebAuthenticationPanel.GetAssertionLA test to expect the right value
https://bugs.webkit.org/show_bug.cgi?id=227726
rdar://80073404

Patch by Garrett Davidson <garrett_davidson@apple.com> on 2021-07-08
Reviewed by Kate Cheney.

This test covers the changed code, but expects the wrong value. The existing
expectation was the base64 encoded string:

{"challenge":"AQIDBAECAwQBAgMEAQIDBAECAwQBAgMEAQIDBAECAwQ","origin":"","type":"webauthn.create"}

The "type" field is clearly incorrect here. Update the test to expect the right
value, and change the expectation to a plaintext string instead of base64 encoded,
to make issues like this easier to spot in the future.

While here, also remove an outdated comment.

  • TestWebKitAPI/Tests/WebKitCocoa/_WKWebAuthenticationPanel.mm:

(TestWebKitAPI::TEST):

10:05 AM Changeset in webkit [279726] by ysuzuki@apple.com
  • 2 edits in trunk/JSTests

[JSC] Update Intl.Locale test after AppleICU update
https://bugs.webkit.org/show_bug.cgi?id=227788

Reviewed by Keith Miller.

This patch fixes Intl.Locale test since AppleICU fixes the ICU bug and starts producing the right results.

  • stress/intl-long-locale-id-maximize-minimize.js:

(shouldBe):

9:52 AM Changeset in webkit [279725] by Truitt Savell
  • 3 edits in trunk/LayoutTests

transitions/start-transform-transition.html is flaky failing.
https://bugs.webkit.org/show_bug.cgi?id=207125.

Unreviewed test gardening.

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

  • platform/mac-wk1/TestExpectations:
  • platform/mac/TestExpectations:
9:32 AM Changeset in webkit [279724] by Russell Epstein
  • 36 edits
    2 adds in branches/safari-612.1.22.0-branch

Cherry-pick r279562. rdar://problem/80327101

[iOS] Augment -_webView:didNotHandleTapAsMeaningfulClickAtPoint: to include meaningful taps
https://bugs.webkit.org/show_bug.cgi?id=227666
rdar://80094962

Reviewed by Tim Horton.

Source/WebKit:

The private UI delegate method -_webView:didNotHandleTapAsMeaningfulClickAtPoint: is currently only invoked
when a tap was not handled as a "meaningful" synthetic click (where the notion of "meaningful" is heuristically
determined). However, in order to support revised tab pill minimization behaviors, Safari requires knowledge of
taps that were handled as meaningful clicks as well.

To support this, replace what is currently -_webView:didNotHandleTapAsMeaningfulClickAtPoint: with another
delegate method, -_webView:didTapAtPoint:withResult:, that is always invoked when a tap gesture is recognized
in the web view. The result parameter, a new _WKTapHandlingResult enum, then indicates to the client how the
tap was handled; this currently includes 3 values: one to indicate that the tap gesture did not result in a
synthetic click being dispatched, and two more to indicate whether the synthetic click that was dispatched as a
result of the tap was "meaningfully" handled.

To facilitate the transition from -_webView:didNotHandleTapAsMeaningfulClickAtPoint: to the new SPI, we still
call the old SPI as long as the tap handling result type is not equal to TapHandlingResult::MeaningfulClick;
however, mark the old SPI as deprecated with -_webView:didTapAtPoint:withResult: as the replacement.

Tests: fast/events/ios/did-not-handle-meaningful-click.html

fast/events/ios/meaningful-click-when-focusing-body.html
fast/events/ios/meaningful-click-when-playing-media.html
fast/events/ios/non-meaningful-click-when-tapping-document.html

  • Shared/ios/TapHandlingResult.h: Added.

Add a new C++ enum type to represent the tap handling result type (see description above).

  • UIProcess/API/APIUIClient.h: (API::UIClient::didTapAtPoint): (API::UIClient::didNotHandleTapAsMeaningfulClickAtPoint): Deleted.
  • UIProcess/API/Cocoa/WKUIDelegatePrivate.h:
  • UIProcess/API/Cocoa/_WKTapHandlingResult.h: Added.
  • UIProcess/API/ios/WKWebViewIOS.h:
  • UIProcess/API/ios/WKWebViewIOS.mm: (wkTapHandlingResult):

Add a helper method to convert from the WebKit::TapHandlingResult enum to the SPI-exposed _WKTapHandlingResult.

  • UIProcess/API/ios/WKWebViewPrivateForTestingIOS.h:
  • UIProcess/API/ios/WKWebViewTestingIOS.mm: (-[WKWebView _didTapAtPoint:withResult:]): (-[WKWebView _didNotHandleTapAsMeaningfulClickAtPoint:]): Deleted.
  • UIProcess/Cocoa/UIDelegate.h:
  • UIProcess/Cocoa/UIDelegate.mm: (WebKit::UIDelegate::setDelegate): (WebKit::UIDelegate::UIClient::didTapAtPoint):

Note that we still invoke the old UI delegate SPI here to ensure that these changes don't break Safari before
they have a chance to adopt the new SPI.

(WebKit::UIDelegate::UIClient::didNotHandleTapAsMeaningfulClickAtPoint): Deleted.

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

Replace the DidNotHandleTapAsMeaningfulClickAtPoint message with DidTapAtPoint, which takes both a location
and a flag indicating how the tap was handled by web content.

  • UIProcess/ios/PageClientImplIOS.h:
  • UIProcess/ios/PageClientImplIOS.mm: (WebKit::PageClientImpl::didTapAtPoint): (WebKit::PageClientImpl::didNotHandleTapAsMeaningfulClickAtPoint): Deleted.
  • UIProcess/ios/WebPageProxyIOS.mm: (WebKit::WebPageProxy::didTapAtPoint): (WebKit::WebPageProxy::didNotHandleTapAsMeaningfulClickAtPoint): Deleted.
  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/WebPage/ios/WebPageIOS.mm: (WebKit::WebPage::completeSyntheticClick):

The meaningful tap heuristic no longer determines whether we send an IPC message or not, but rather the type of
TapHandlingResult to send (namely, whether to send NonMeaningfulClick or MeaningfulClick).

(WebKit::WebPage::attemptSyntheticClick):
(WebKit::WebPage::handleTwoFingerTapAtPoint):
(WebKit::WebPage::commitPotentialTapFailed):

Tools:

Update the layout test harness to use the replacement SPI instead of the newly deprecated SPI. See
WebKit/ChangeLog for more details.

  • WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl:
  • WebKitTestRunner/InjectedBundle/InjectedBundle.cpp: (WTR::InjectedBundle::didReceiveMessageToPage):
  • WebKitTestRunner/InjectedBundle/TestRunner.cpp: (WTR::TestRunner::installDidHandleTapCallback): (WTR::TestRunner::callDidHandleTapCallback): (WTR::TestRunner::installDidNotHandleTapAsMeaningfulClickCallback): Deleted. (WTR::TestRunner::callDidNotHandleTapAsMeaningfulClickCallback): Deleted.

Rename this to just DidHandleTapCallback, and make it take a boolean argument indicating whether the tap was
handled as a meaningful click.

  • WebKitTestRunner/InjectedBundle/TestRunner.h:
  • WebKitTestRunner/TestController.cpp: (WTR::TestController::didHandleTap): (WTR::TestController::didNotHandleTapAsMeaningfulClick): Deleted.
  • WebKitTestRunner/TestController.h:
  • WebKitTestRunner/TestInvocation.cpp: (WTR::TestInvocation::didHandleTap): (WTR::TestInvocation::didNotHandleTapAsMeaningfulClick): Deleted.
  • WebKitTestRunner/TestInvocation.h:
  • WebKitTestRunner/cocoa/TestRunnerWKWebView.mm: (-[TestRunnerWKWebView _didTapAtPoint:withResult:]): (-[TestRunnerWKWebView _didNotHandleTapAsMeaningfulClickAtPoint:]): Deleted.

LayoutTests:

Update the existing layout tests. The new UI delegate method should now be invoked in all of the cases; however,
we should only observe meaningful clicks in some of the below scenarios. See WebKit/ChangeLog for more details.

  • fast/events/ios/did-not-handle-meaningful-click-expected.txt:
  • fast/events/ios/did-not-handle-meaningful-click.html:
  • fast/events/ios/meaningful-click-when-focusing-body-expected.txt:
  • fast/events/ios/meaningful-click-when-focusing-body.html:
  • fast/events/ios/meaningful-click-when-playing-media-expected.txt:
  • fast/events/ios/meaningful-click-when-playing-media.html:
  • fast/events/ios/non-meaningful-click-when-tapping-document-expected.txt:
  • fast/events/ios/non-meaningful-click-when-tapping-document.html:

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

9:29 AM Changeset in webkit [279723] by Chris Dumez
  • 8 edits in trunk

[WebCrypto] deriveBits() fails if length is not a multiple of 8 for ECDH algorithm
https://bugs.webkit.org/show_bug.cgi?id=227796

Reviewed by Alex Christensen.

LayoutTests/imported/w3c:

Rebaseline WPT tests now that more checks are passing.

  • web-platform-tests/WebCryptoAPI/derive_bits_keys/ecdh_bits.https.any-expected.txt:
  • web-platform-tests/WebCryptoAPI/derive_bits_keys/ecdh_bits.https.any.worker-expected.txt:

Source/WebCore:

deriveBits() fails if length is not a multiple of 8 for ECDH algorithm. This doesn't match
the specification or the behavior of Chrome.

No new tests, rebaselined existing tests.

  • crypto/algorithms/CryptoAlgorithmECDH.cpp:

(WebCore::CryptoAlgorithmECDH::deriveBits):

LayoutTests:

Update existing layout test due to behavior change.

  • crypto/subtle/ecdh-derive-bits-malformed-parametrs-expected.txt:
  • crypto/subtle/ecdh-derive-bits-malformed-parametrs.html:
8:52 AM Changeset in webkit [279722] by mmaxfield@apple.com
  • 6 edits
    1 copy
    6 adds in trunk

[GPU Process] Canvas image rendering can render arbitrary DOM content in the GPU process, which is against policy (for now)
https://bugs.webkit.org/show_bug.cgi?id=227519
<rdar://problem/76678163>

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

  • web-platform-tests/html/canvas/element/imagebitmap/createImageBitmap-flipY-expected.txt:

Source/WebCore:

Rendering arbitrary DOM content in the GPU process isn't supported yet, but canvas rendering is. However,
canvas has a drawImage() function which can accept an HTMLImageElement as its source, and an HTMLImageElement
can have an SVG document as its source, which would end up triggering our DOM codepath in canvas and thus
in the GPU process.

This patch disables this for now, by rendering the SVG into an ImageBuffer and then drawing the ImageBuffer
in the GPU process. When we eventually implement arbitrary DOM rendering in the GPU process, this patch will
need to be reverted.

Test: fast/images/svg-mask-in-canvas.html

  • svg/graphics/SVGImage.cpp:

(WebCore::SVGImage::nativeImage):
(WebCore::SVGImage::draw):
(WebCore::SVGImage::drawAsNativeImage):

  • svg/graphics/SVGImage.h:

LayoutTests:

  • fast/images/resources/mask.svg: Added.
  • fast/images/svg-mask-in-canvas-expected.html: Added.
  • fast/images/svg-mask-in-canvas.html: Added.
  • platform/mac-wk1/imported/w3c/web-platform-tests/html/canvas/element/imagebitmap/createImageBitmap-flipY-expected.txt: Copied from LayoutTests/imported/w3c/web-platform-tests/html/canvas/element/imagebitmap/createImageBitmap-flipY-expected.txt.
7:47 AM Changeset in webkit [279721] by Antti Koivisto
  • 3 edits
    2 adds in trunk

Shadow host stops rendering after removing a slot, updating style, then its assigned node
https://bugs.webkit.org/show_bug.cgi?id=227652

Reviewed by Alan Bujtas.

Source/WebCore:

Test: fast/shadow-dom/remove-slot-and-host-child.html

  • dom/SlotAssignment.cpp:

(WebCore::SlotAssignment::didChangeSlot):

When we tear down the render tree we also need to request its rebuild unconditionally.

LayoutTests:

  • fast/shadow-dom/remove-slot-and-host-child-expected.html: Added.
  • fast/shadow-dom/remove-slot-and-host-child.html: Added.
6:00 AM WebKitGTK/2.32.x edited by Carlos Garcia Campos
(diff)
4:46 AM Changeset in webkit [279720] by pvollan@apple.com
  • 11 edits
    3 adds in trunk/Source

Set Caption preferences in the UI process
https://bugs.webkit.org/show_bug.cgi?id=227742
<rdar://79040526>

Reviewed by Eric Carlson.

Source/WebCore:

Add a Caption user preferences delegate, which can be subclassed to perform the work in the UI process.

No new tests, since this is not trivial to add a test for. This has been manually tested.

  • WebCore.xcodeproj/project.pbxproj:
  • page/CaptionUserPreferencesMediaAF.cpp:

(WebCore::captionPreferencesDelegate):
(WebCore::CaptionUserPreferencesMediaAF::captionDisplayMode const):
(WebCore::CaptionUserPreferencesMediaAF::platformSetCaptionDisplayMode):
(WebCore::CaptionUserPreferencesMediaAF::setCaptionDisplayMode):
(WebCore::CaptionUserPreferencesMediaAF::setCaptionPreferencesDelegate):
(WebCore::CaptionUserPreferencesMediaAF::platformSetPreferredLanguage):
(WebCore::CaptionUserPreferencesMediaAF::setPreferredLanguage):

  • page/CaptionUserPreferencesMediaAF.h:
  • platform/CaptionPreferencesDelegate.h: Added.

(WebCore::CaptionPreferencesDelegate::~CaptionPreferencesDelegate):
(WebCore::CaptionPreferencesDelegate::setDisplayMode):

Source/WebKit:

Subclass the Caption user preferences delegate, which will send messages to the UI process, requesting to set the preferences.

  • SourcesCocoa.txt:
  • UIProcess/Cocoa/WebProcessProxyCocoa.mm:

(WebKit::WebProcessProxy::setCaptionDisplayMode):
(WebKit::WebProcessProxy::setCaptionLanguage):

  • UIProcess/WebProcessProxy.h:
  • UIProcess/WebProcessProxy.messages.in:
  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/WebCoreSupport/WebCaptionPreferencesDelegate.cpp: Added.

(WebKit::WebCaptionPreferencesDelegate::setDisplayMode):
(WebKit::WebCaptionPreferencesDelegate::setPreferredLanguage):

  • WebProcess/WebCoreSupport/WebCaptionPreferencesDelegate.h: Added.
  • WebProcess/cocoa/WebProcessCocoa.mm:

(WebKit::WebProcess::platformInitializeWebProcess):

3:20 AM Changeset in webkit [279719] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.32/Source/JavaScriptCore

Merge r279107 - Properly set numFPRs on ARM with NEON/VFP_V3_D32
https://bugs.webkit.org/show_bug.cgi?id=227212

Reviewed by Filip Pizlo.

Don't hardcode the number of FP regs on ARMv7 to 16; when targetting a
CPU with NEON or VFP_V3_d32, the number of FP regs is 32.

This also reverts the recent change to add an extra word to RegisterSet
which essentially covered up for this mismatch. The reason this bug only
manifested on certain compiler versions was that GCC 8.4/8.5 where built using
our buildroot infrastructure, whereas the other GCC versions we tested with
were debian system toolchains, targetting a lowest common denominator.

  • assembler/MacroAssemblerARMv7.h:

(JSC::MacroAssemblerARMv7::std::initializer_list<int>):

  • jit/RegisterSet.h:
1:57 AM WebKitGTK/2.32.x edited by Carlos Garcia Campos
(diff)
1:43 AM Changeset in webkit [279718] by Carlos Garcia Campos
  • 4 edits in releases/WebKitGTK/webkit-2.32

Merge r279039 - [MSE][GStreamer] Soundcloud serves MP4 audio with empty tfdt boxes
https://bugs.webkit.org/show_bug.cgi?id=191419

Patch by Philippe Normand <pnormand@igalia.com> on 2021-06-18
Reviewed by Michael Catanzaro.

Source/WebCore:

When MSE is used the player receives broken audio fragments, perhaps because the server
expects the client to repair them. Not much we can do about this on GStreamer side though,
so behave as a Chrome UserAgent and then MSE is not used, the player receives an MP3 stream.

  • platform/UserAgentQuirks.cpp:

(WebCore::urlRequiresChromeBrowser):

Tools:

  • TestWebKitAPI/Tests/WebCore/UserAgentQuirks.cpp:

(TestWebKitAPI::TEST): Add a test for the soundcloud quirk.

1:20 AM WebKitGTK/2.32.x edited by Carlos Garcia Campos
(diff)
1:18 AM Changeset in webkit [279717] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.32/Source/WebCore

Merge r277855 - [GTK] REGRESSION: Broken scrolling on element.io with async scrolling
https://bugs.webkit.org/show_bug.cgi?id=222265

Reviewed by Carlos Garcia Campos.

Fix transform order for layer clipping in TextureMapperLayer.

No new tests.

  • platform/graphics/texmap/TextureMapperLayer.cpp:

(WebCore::TextureMapperLayer::paintSelfAndChildren):

1:18 AM Changeset in webkit [279716] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.32/Source/WebCore

Merge r277539 - [GTK] REGRESSION: Kinetic scrolling on touchpad doesn't work with async scrolling off
https://bugs.webkit.org/show_bug.cgi?id=224182

Patch by Alexander Mikhaylenko <Alexander Mikhaylenko> on 2021-05-15
Reviewed by Michael Catanzaro.

Don't clear the scroll history every time we scroll, that defeats the whole point of having
the scroll history.

  • platform/generic/ScrollAnimatorGeneric.cpp:

(WebCore::ScrollAnimatorGeneric::scrollToPositionWithoutAnimation):

12:41 AM Changeset in webkit [279715] by commit-queue@webkit.org
  • 3 edits in trunk/LayoutTests

[GLIB] Skip WebGL 2.0.y tests explicitly
https://bugs.webkit.org/show_bug.cgi?id=227754

Unreviewed test gardening, some tests from this directory were
explicitly enabled from the top level TestExpectations so we skip them
in our own platform expectations just to be sure.

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

  • platform/gtk/TestExpectations:
  • platform/wpe/TestExpectations:
12:23 AM Changeset in webkit [279714] by commit-queue@webkit.org
  • 4 edits in trunk

[css-scroll-snap] scroll-snap-align should use the box's writing-mode when the box is larger than the snapport
https://bugs.webkit.org/show_bug.cgi?id=227743

Patch by Martin Robinson <mrobinson@igalia.com> on 2021-07-08
Reviewed by Simon Fraser.

Source/WebCore:

No new tests. This fixes an existing WPT test:

  • imported/w3c/web-platform-tests/css/css-scroll-snap/snap-after-initial-layout/scroll-snap-writing-mode-000.html
  • page/scrolling/ScrollSnapOffsetsInfo.cpp:

(WebCore::axesFlippedForWritingModeAndDirection): Added this helper which abstracts the process of
determining if the x-axis and y-axis are flipped given the style's writing mode and text direction.
(WebCore::updateSnapOffsetsForScrollableArea): When the inline axis of the box defining the snap area
is larger than the snapport, we use the box's writing mode and text-direction to determine if the
x-axis and y-axis are flipped.

LayoutTests:

12:23 AM Changeset in webkit [279713] by Fujii Hironori
  • 7 edits in trunk/Source/WebCore

Merge Cairo::save and Cairo::restore into GraphicsContextCairo's methods
https://bugs.webkit.org/show_bug.cgi?id=227784

Reviewed by Žan Doberšek.

Cairo::save and Cairo::restore should be GraphicsContextCairo's
methods.

  • platform/graphics/cairo/CairoOperations.cpp:

(WebCore::Cairo::fillShadowBuffer):
(WebCore::Cairo::save): Deleted.
(WebCore::Cairo::restore): Deleted.

  • platform/graphics/cairo/CairoOperations.h:
  • platform/graphics/cairo/GradientCairo.cpp:

(WebCore::Gradient::fill):

  • platform/graphics/cairo/GraphicsContextCairo.cpp:

(WebCore::GraphicsContextCairo::save):
(WebCore::GraphicsContextCairo::restore):
(WebCore::GraphicsContextCairo::fillRect):
(WebCore::GraphicsContextCairo::saveInternal): Deleted.
(WebCore::GraphicsContextCairo::restoreInternal): Deleted.

  • platform/graphics/cairo/GraphicsContextCairo.h:
  • platform/graphics/nicosia/cairo/NicosiaCairoOperationRecorder.cpp:

(Nicosia::CairoOperationRecorder::fillRect):
(Nicosia::CairoOperationRecorder::save):
(Nicosia::CairoOperationRecorder::restore):

Note: See TracTimeline for information about the timeline view.