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

Timeline



Jun 18, 2020:

8:59 PM Changeset in webkit [263254] by Diego Pino Garcia
  • 3 edits
    3 adds in trunk/LayoutTests

[GTK] Unreviewed test gardening. Update test expectations after r263222.

  • platform/gtk/TestExpectations:
  • platform/gtk/imported/w3c/web-platform-tests/service-workers/service-worker/fetch-audio-tainting.https-expected.txt: Added.
8:42 PM Changeset in webkit [263253] by Doug Kelly
  • 4 edits in trunk/Source/WebCore

Use paintCellAndSetFocusedElementNeedsRepaintIfNecessary() for search field buttons
https://bugs.webkit.org/show_bug.cgi?id=213352
<rdar://problem/57129008>

Reviewed by Simon Fraser.

The search fields cancel and results buttons should use the common
paintCellAndSetFocusedElementNeedsRepaintIfNecessary() function instead of directly painting the cell.
This allows for an image buffer to be used for drawing specifically in cases when it becomes needed,
when a scale (either via zoom or CSS transform) is applied.

This also moves the logic for determining if an image buffer should be used into
ThemeMac::drawCellOrFocusRingWithViewIntoContext(), which uses the current user-defined CTM
(inverting the base CTM to negate the effect of a device-specific scale factor). This also negates
the need for the page scale factor and the effective zoom applied to the renderer style, since it is
computed into the CTM already.

  • platform/mac/ThemeMac.h:
  • platform/mac/ThemeMac.mm:

(WebCore::paintToggleButton):
(WebCore::paintButton):
(WebCore::ThemeMac::drawCellOrFocusRingWithViewIntoContext):
(WebCore::paintColorWell):
(WebCore::ThemeMac::paint):

  • rendering/RenderThemeMac.mm:

(WebCore::RenderThemeMac::paintCellAndSetFocusedElementNeedsRepaintIfNecessary):
(WebCore::RenderThemeMac::paintSliderThumb):
(WebCore::RenderThemeMac::paintSearchFieldCancelButton):
(WebCore::RenderThemeMac::paintSearchFieldResultsButton):

8:30 PM Changeset in webkit [263252] by mark.lam@apple.com
  • 7 edits in trunk/Source

Unify Bitmap math loops in MarkedBlock::Handle::specializedSweep().
https://bugs.webkit.org/show_bug.cgi?id=213345

Reviewed by Robin Morisset and Saam Barati.

Source/JavaScriptCore:

This change appears to be performance neutral. However, we'll take the change
because we know that it does less work, and the new way of expressing the Bitmap
math in MarkedBlock::Handle::specializedSweep() does appear to be easier to
understand than the old code.

Also addressed feedback from Robin and Saam in https://bugs.webkit.org/show_bug.cgi?id=213071.

Changes made:

  1. Use the new Bitmap::words() API to get direct access to the underlying bits storage. With this, we can do the merging of the marked and newlyAllocated bits with a single pass looping thru the bitmap words.
  1. In MarkedBlock::Handle::specializedSweep()'s Bitmap free list code, moved the implementation of handleDeadCells lambda down to the call to freeAtoms.forEachSetBit() because this is the only place it is used.
  1. Fixed MarkedBlock::Handle::specializedSweep()'s Bitmap free list code to handle the dead cells unconditionally. This condition check was wrongly adapted from the linked list implementation where handleDeadCell() was called in 2 places depending on the destruction mode. With the Bitmap free list, there is only once place to handle the dead cells, and it should be executed unconditionally.

This fixes a bug where the FreeList::originalSize() never gets computed if the
cells in the block does not need destruction.

  1. Renamed FreeList::bitmapRows() to FreeList::bitmapRowsMinusOne(). Renamed FreeList::offsetOfBitmapRows() to FreeList::offsetOfBitmapRowsMinusOne().
  1. Also fixed some typos in comments.
  • heap/FreeList.h:

(JSC::FreeList::bitmapIsEmpty const):
(JSC::FreeList::offsetOfBitmapRowsMinusOne):
(JSC::FreeList::bitmapRowsMinusOne const):
(JSC::FreeList::offsetOfBitmapRows): Deleted.
(JSC::FreeList::bitmapRows const): Deleted.

  • heap/FreeListInlines.h:

(JSC::FreeList::allocate):
(JSC::FreeList::forEach const):

  • heap/MarkedBlockInlines.h:

(JSC::MarkedBlock::Handle::specializedSweep):

  • jit/AssemblyHelpers.cpp:

(JSC::AssemblyHelpers::emitAllocateWithNonNullAllocator):

Source/WTF:

  1. Removed Bitmap::words. Use Bitmap::numberOfWords instead.
  2. Removed Bitmap::wordSize. Use Bitmap::bitsInWord instead.
  3. Added a new Bitmap::words() method which returns the address of the underlying bitmap storage as a Bitmap::Word*. This enables clients to do direct bit manipulation on the Bitmap words if needed.
  • wtf/Bitmap.h:

(WTF::WordType>::get const):
(WTF::WordType>::set):
(WTF::WordType>::testAndSet):
(WTF::WordType>::testAndClear):
(WTF::WordType>::concurrentTestAndSet):
(WTF::WordType>::concurrentTestAndClear):
(WTF::WordType>::clear):
(WTF::WordType>::invert):
(WTF::WordType>::nextPossiblyUnset const):
(WTF::WordType>::count const):
(WTF::WordType>::isEmpty const):
(WTF::WordType>::isFull const):
(WTF::WordType>::merge):
(WTF::WordType>::filter):
(WTF::WordType>::exclude):
(WTF::WordType>::concurrentFilter):
(WTF::WordType>::subsumes const):
(WTF::WordType>::forEachSetBit const):
(WTF::WordType>::findBit const):
(WTF::WordType>::mergeAndClear):
(WTF::WordType>::setAndClear):
(WTF::WordType>::setEachNthBit):
(WTF::= const):
(WTF::=):
(WTF::WordType>::hash const):

6:45 PM Changeset in webkit [263251] by ddkilzer@apple.com
  • 2 edits in trunk/Source/WebKit

Use fastMalloc/fastFree in WebCoreArgumentCodersMac.mm
<https://webkit.org/b/213325>

Reviewed by Darin Adler.

  • Shared/mac/WebCoreArgumentCodersMac.mm:

(IPC::createArchiveList):
(IPC::createCFURLRequestFromSerializableRepresentation):

6:43 PM Changeset in webkit [263250] by ysuzuki@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

[JSC] Remove dead non-ICU locale Date code since we are always using ICU version
https://bugs.webkit.org/show_bug.cgi?id=213362

Reviewed by Ross Kirsling.

There are old non-ICU version of Date locale code. But this is now dead code since we are always using ICU version,
which is invoked from builtin JS DatePrototype.js. We should remove these dead code.

  • runtime/DatePrototype.cpp:

(JSC::DatePrototype::finishCreation):
(): Deleted.
(JSC::styleFromArgString): Deleted.
(JSC::formatLocaleDate): Deleted.
(JSC::dateProtoFuncToLocaleString): Deleted.
(JSC::dateProtoFuncToLocaleDateString): Deleted.
(JSC::dateProtoFuncToLocaleTimeString): Deleted.

6:04 PM Changeset in webkit [263249] by ysuzuki@apple.com
  • 1 edit
    2 adds in trunk/LayoutTests

Unreviewed, fix test failure in Windows part 2
https://bugs.webkit.org/show_bug.cgi?id=213269

Looks like Windows TWR and DRT have different implementation.

  • platform/win/fast/dom/Window/alert-with-unmatched-utf16-surrogate-should-not-crash-expected.txt: Added.
  • platform/wincairo/fast/dom/Window/alert-with-unmatched-utf16-surrogate-should-not-crash-expected.txt: Added.
5:37 PM Changeset in webkit [263248] by timothy_horton@apple.com
  • 11 edits
    2 moves in trunk

Remove some vestiges of the 32-bit Plugin Process
https://bugs.webkit.org/show_bug.cgi?id=213361

Reviewed by Dan Bernstein.

.:

  • Makefile.shared:

This hack from r203348 is no longer needed, because WebKit cannot be built for 32-bit anymore.

Source/WebKit:

We haven't launched 32-bit plugins for a while, but there are some
build system complications and random references in the code that we can get rid of.

  • WebKit.xcodeproj/project.pbxproj:
  • Configurations/PluginService.xcconfig: Renamed from Source/WebKit/Configurations/PluginService.64.xcconfig.

No need for .64 in the name anymore, since it's the only one.
We do have to leave the .64 in the product name because there are other things in the system that depend on this.

  • PluginProcess/EntryPoint/Cocoa/XPCService/PluginService.Info.plist: Renamed from Source/WebKit/PluginProcess/EntryPoint/Cocoa/XPCService/PluginService.64.Info.plist.

No need for .64 in the name anymore.

  • UIProcess/AuxiliaryProcessProxy.cpp:

(WebKit::AuxiliaryProcessProxy::getLaunchOptions):

  • UIProcess/Launcher/ProcessLauncher.h:
  • UIProcess/Launcher/mac/ProcessLauncherMac.mm:

(WebKit::serviceName):

  • UIProcess/Plugins/mac/PluginProcessProxyMac.mm:

(WebKit::PluginProcessProxy::platformGetLaunchOptionsWithAttributes):
There need only be one ProcessType for the plugin process now!

  • UIProcess/Plugins/unix/PluginProcessProxyUnix.cpp:

(WebKit::PluginProcessProxy::platformGetLaunchOptionsWithAttributes):

  • UIProcess/Launcher/glib/BubblewrapLauncher.cpp:

(WebKit::bubblewrapSpawn):

  • UIProcess/Launcher/glib/ProcessLauncherGLib.cpp:

(WebKit::ProcessLauncher::launchProcess):
GTK WebKit appears to also only launch 64-bit plugin processes.

4:42 PM Changeset in webkit [263247] by Alan Coon
  • 1 copy in tags/Safari-609.3.5.1.2

Tag Safari-609.3.5.1.2.

4:38 PM Changeset in webkit [263246] by Alan Coon
  • 8 edits in branches/safari-609.3.5.1-branch/Source

Versioning.

WebKit-609.3.5.1.2

4:34 PM Changeset in webkit [263245] by ysuzuki@apple.com
  • 3 edits in trunk/LayoutTests

Unreviewed, fix test failure in Windows
https://bugs.webkit.org/show_bug.cgi?id=213269

  • fast/dom/Window/alert-with-unmatched-utf16-surrogate-should-not-crash-expected.txt:
  • fast/dom/Window/alert-with-unmatched-utf16-surrogate-should-not-crash.html:
4:28 PM Changeset in webkit [263244] by Truitt Savell
  • 2 edits in trunk/LayoutTests

[ Catalina Debug WK2 ] fast/events/platform-wheelevent-in-scrolling-div.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=213351

Unreviewed test gardening.

Patch by Karl Rackler <Karl Rackler> on 2020-06-18

  • platform/mac-wk2/TestExpectations:
4:13 PM Changeset in webkit [263243] by Ross Kirsling
  • 3 edits in trunk/Source/JavaScriptCore

Unreviewed, address Darin's feedback on r263227.

  • runtime/IntlRelativeTimeFormat.cpp:

(JSC::IntlRelativeTimeFormat::UNumberFormatDeleter::operator() const):
(JSC::IntlRelativeTimeFormat::initializeRelativeTimeFormat):
(JSC::IntlRelativeTimeFormat::formatToParts const):

  • runtime/IntlRelativeTimeFormat.h:

Keep ownership over our UNumberFormat instance after all,
to avoid relying on behavior ICU isn't explicitly guaranteeing.

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

Add SPI to preconnect to a server (Follow-up fix)
https://bugs.webkit.org/show_bug.cgi?id=213109
<rdar://problem/64184412>

Unreviewed build-fix.

  • TestWebKitAPI/Tests/WebKitCocoa/Preconnect.mm: HTTPServer does not exist if HAVE(NETWORK_FRAMEWORK) is false.
4:04 PM Changeset in webkit [263241] by Jonathan Bedard
  • 2 edits in trunk/Tools

[iOS] Two KeyboardInputTests are failing on recent iOS SDK versions (build-fix)
https://bugs.webkit.org/show_bug.cgi?id=213183
<rdar://problem/64273483>

Unreviewed build fix.

  • TestWebKitAPI/Tests/ios/KeyboardInputTestsIOS.mm:

(webViewWithAutofocusedInput): bool may not be the same type as BOOL.

3:58 PM Changeset in webkit [263240] by sbarati@apple.com
  • 2 edits in trunk/JSTests

sampling-profiler-wasm-name-section should run for more iterations
https://bugs.webkit.org/show_bug.cgi?id=207576
<rdar://problem/59431250>

Reviewed by Mark Lam.

This test was flaky because the sampling profiler is inherently probabilistic.
We need to run it for more iterations to ensure it's not flaky.

  • stress/sampling-profiler-wasm-name-section.js:
3:53 PM Changeset in webkit [263239] by Alan Coon
  • 8 edits in branches/safari-610.1.17-branch/Source

Versioning.

WebKit-610.1.17.1

3:53 PM Changeset in webkit [263238] by Alan Coon
  • 15 edits
    2 moves
    2 deletes in branches/safari-610.1.17-branch

Temporarily revert non-Hunter tested content.

3:47 PM Changeset in webkit [263237] by Alan Coon
  • 1 copy in tags/Safari-609.3.5.1.1

Tag Safari-609.3.5.1.1.

3:47 PM Changeset in webkit [263236] by Russell Epstein
  • 12 edits
    2 adds in branches/safari-609.3.5.0-branch

Apply patch. rdar://problem/64178850

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

call skip when skipping JetStream2 wasm test
https://bugs.webkit.org/show_bug.cgi?id=213354

Reviewed by Yusuke Suzuki.

So we can see the logging that we're skipping.

  • Scripts/run-jsc-stress-tests:
3:37 PM Changeset in webkit [263234] by Alan Coon
  • 8 edits in branches/safari-609.3.5.1-branch/Source

Versioning.

WebKit-609.3.5.1.1

3:18 PM Changeset in webkit [263233] by Alan Coon
  • 1 copy in tags/Safari-610.1.17

Tag Safari-610.1.17.

3:16 PM Changeset in webkit [263232] by Megan Gardner
  • 2 edits in trunk/Source/WebKit

Workaround for UIKit layout bug in time picker.
https://bugs.webkit.org/show_bug.cgi?id=213346
<rdar://problem/64042277>

Reviewed by Tim Horton.

There is a bug in the layout of UIKit that needs to be fixed.
Until then, this workaround should give us a view that is viable.

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView resignFirstResponderForWebView]):

  • UIProcess/ios/forms/WKDateTimeInputControl.mm:

(-[WKDateTimeContextMenuViewController preferredContentSize]):

3:11 PM Changeset in webkit [263231] by Devin Rousso
  • 3 edits in trunk/Source/WebCore

Web Inspector: ASSERTION FAILED: decodedLength >= dataLength at WebCore::NetworkResourcesData::ResourceData::decodeDataToContent()
https://bugs.webkit.org/show_bug.cgi?id=213271
<rdar://problem/64168350>

Reviewed by Brian Burg.

Remove the invalid ASSERT(decodedLength >= dataLength) as it's very possible for decoded
content to be smaller than encoded content (e.g. something gzipped).

Use String::sizeInBytes instead of StringImpl::sizeInBytes as the latter also includes
sizeof(*this), which is not really part of the resource's size, as it's really more of an
implementation detail.

  • inspector/NetworkResourcesData.h:
  • inspector/NetworkResourcesData.cpp:

(WebCore::NetworkResourcesData::ResourceData::removeContent):
(WebCore::NetworkResourcesData::ResourceData::decodeDataToContent):
(WebCore::NetworkResourcesData::setResourceContent):
(WebCore::NetworkResourcesData::maybeDecodeDataToContent):
(WebCore::contentSizeInBytes): Deleted.

2:54 PM Changeset in webkit [263230] by aestes@apple.com
  • 2 edits in trunk/Source/WebCore

[Apple Pay] Fix a log message typo in PaymentCoordinator::didAuthorizePayment

Rubber-stamped by Beth Dakin.

  • Modules/applepay/PaymentCoordinator.cpp:

(WebCore::PaymentCoordinator::didAuthorizePayment): Logged the correct function name.

2:12 PM Changeset in webkit [263229] by Russell Epstein
  • 8 edits in branches/safari-609.3.5.0-branch/Source

Versioning.

WebKit-609.3.5.0.1

1:54 PM Changeset in webkit [263228] by jh718.park@samsung.com
  • 2 edits in trunk/Tools

Unreviewed. Remove the build warning below since r262971.
warning: comparison of integer expressions of different signedness: ‘int’ and ‘size_t’ {aka ‘long unsigned int’} [-Wsign-compare]

  • WebKitTestRunner/TestController.cpp:

(WTR::getAllStorageAccessEntriesCallback):

1:48 PM Changeset in webkit [263227] by Ross Kirsling
  • 12 edits in trunk

[Intl] Enable RelativeTimeFormat and Locale by default
https://bugs.webkit.org/show_bug.cgi?id=213324

Reviewed by Yusuke Suzuki.

JSTests:

  • stress/intl-locale-as-intl-param.js:
  • stress/intl-locale.js:
  • stress/intl-relativetimeformat.js:
  • test262/config.yaml:

Remove feature flags.

Source/JavaScriptCore:

  • runtime/IntlObject.cpp:

(JSC::createDateTimeFormatConstructor):
(JSC::createLocaleConstructor):
(JSC::createNumberFormatConstructor):
(JSC::createRelativeTimeFormatConstructor):
(JSC::IntlObject::finishCreation):
Unconditionalize creation of RelativeTimeFormat and Locale constructors.

  • runtime/IntlRelativeTimeFormat.cpp:

(JSC::IntlRelativeTimeFormat::initializeRelativeTimeFormat):
(JSC::IntlRelativeTimeFormat::formatToParts const):
(JSC::IntlRelativeTimeFormat::UNumberFormatDeleter::operator() const): Deleted.

  • runtime/IntlRelativeTimeFormat.h:

Fix an actual bug -- URelativeDateTimeFormatter *adopts* the UNumberFormat it's instantiated with,
so we can't keep a unique_ptr to it.

  • runtime/OptionsList.h:

Remove feature flags.

Tools:

  • Scripts/run-jsc-stress-tests:

Remove feature flags.

1:34 PM WebInspectorCodingStyleGuide edited by Devin Rousso
(diff)
1:34 PM WebInspectorCodingStyleGuide edited by Devin Rousso
(diff)
1:33 PM WebInspectorCodingStyleGuide edited by Devin Rousso
(diff)
1:29 PM WebInspectorCodingStyleGuide edited by Devin Rousso
(diff)
1:25 PM WebInspectorCodingStyleGuide edited by Devin Rousso
(diff)
1:22 PM Changeset in webkit [263226] by Alan Coon
  • 8 edits in branches/safari-610.1.15.51-branch/Source

Versioning.

WebKit-610.1.15.51.5

1:12 PM Changeset in webkit [263225] by Devin Rousso
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: Console: add comments for localized strings in execution context picker
https://bugs.webkit.org/show_bug.cgi?id=213280

Reviewed by Joseph Pecoraro.

  • UserInterface/Views/QuickConsole.js:

(WI.QuickConsole.prototype._populateActiveExecutionContextNavigationItemContextMenu):

  • Localizations/en.lproj/localizedStrings.js:
1:09 PM WebInspectorTests edited by Devin Rousso
(diff)
1:07 PM Changeset in webkit [263224] by aestes@apple.com
  • 2 edits in trunk/Tools

Unreviewed build fix after r263194

  • WebKitTestRunner/ios/TestControllerIOS.mm:

(WTR::TestController::platformResetStateToConsistentValues): Guarded code that mentions
UIContextMenuInteraction with USE(UICONTEXTMENU).

1:06 PM Changeset in webkit [263223] by ggaren@apple.com
  • 2 edits in trunk/Source/WTF

Unreviewed, re-landing r262904.

r263219 and r263175 should fix the test flakiness we saw.

Re-landed changeset:

"[Cocoa] Build callOnMainThread on WTF::RunLoop rather than on
a timer"
https://bugs.webkit.org/show_bug.cgi?id=213063
https://trac.webkit.org/changeset/262904

11:22 AM Changeset in webkit [263222] by Alexey Shvayka
  • 6 edits in trunk

Promise built-in functions should be anonymous non-constructors
https://bugs.webkit.org/show_bug.cgi?id=213317

Reviewed by Darin Adler.

JSTests:

  • test262/expectations.yaml: Mark 20 test cases as passing.

Source/JavaScriptCore:

This patch makes userland-exposed Promise built-in functions
non-constructors and sets their "name" properties to empty strings
as per spec [1], aligning JSC with V8 and SpiderMonkey.

@createResolvingFunctionsWithoutPromise change is covered by test262's
async-generator/yield-thenable-create-resolving-functions-*.js cases.

Promise microbenchmarks are neutral. Promise constructors bytecode is
unchanged, while @createResolvingFunctions* bytecode is reduced by 2
instructions.

[1]: https://tc39.es/ecma262/#sec-ecmascript-standard-built-in-objects

  • builtins/PromiseConstructor.js:

(nakedConstructor.Promise):
(nakedConstructor.InternalPromise):

  • builtins/PromiseOperations.js:

(globalPrivate.newPromiseCapabilitySlow):
(globalPrivate.createResolvingFunctions):
(globalPrivate.createResolvingFunctionsWithoutPromise):
(globalPrivate.createResolvingFunctions.resolve): Deleted.
(globalPrivate.createResolvingFunctions.reject): Deleted.
(resolve): Deleted.
(reject): Deleted.

  • builtins/PromisePrototype.js:

(globalPrivate.getThenFinally):
(globalPrivate.getCatchFinally):
(valueThunk): Deleted.
(thrower): Deleted.

10:47 AM Changeset in webkit [263221] by Alan Bujtas
  • 3 edits
    2 adds in trunk

[LFC][BFC] Available space computation for the float avoider needs coordinate mapping
https://bugs.webkit.org/show_bug.cgi?id=213339

Reviewed by Antti Koivisto.

Source/WebCore:

The FloatConstraints position values are in formatting root coordinates but the available space
requires containing block coordinates.

Test: fast/layoutformattingcontext/float-avoider-available-horizontal-space.html

  • layout/blockformatting/BlockFormattingContext.cpp:

(WebCore::Layout::BlockFormattingContext::usedAvailableWidthForFloatAvoider):

LayoutTests:

  • fast/layoutformattingcontext/float-avoider-available-horizontal-space-expected.html: Added.
  • fast/layoutformattingcontext/float-avoider-available-horizontal-space.html: Added.
10:45 AM Changeset in webkit [263220] by stephan.szabo@sony.com
  • 2 edits in trunk/Source/WebCore

[PlayStation] Build fix for errors with structured bindings to const structure
https://bugs.webkit.org/show_bug.cgi?id=213323

Reviewed by Fujii Hironori.

Our system seems to have trouble with these structured bindings,
similar to what was previously seen for clang-cl.

No new tests, build fix.

  • inspector/agents/InspectorNetworkAgent.cpp:
10:42 AM Changeset in webkit [263219] by ggaren@apple.com
  • 2 edits in trunk/LayoutTests

inspector/canvas/create-context-webgpu.html was a flaky failure after r262904
https://bugs.webkit.org/show_bug.cgi?id=213343

Reviewed by Darin Adler.

This test races a zero-delay GC timer against WebCore releasing its last
reference to a WebGPU canvas. Flaky!

Make GC deterministic by continually retrying GC until the Web
Inspector is notified that the canvas has been collected.

Also make sure to stop GC'ing afterwards. I'm not sure if this matters
or not, but it is good to prevent one test from changing behavior in
another.

  • inspector/canvas/resources/create-context-utilities.js:

(destroyCanvases):

10:28 AM Changeset in webkit [263218] by youenn@apple.com
  • 4 edits in trunk

REGRESSION (r263098): [Win10] http/tests/security/cross-origin-clean-css-resource-timing.html and http/tests/security/cross-origin-css-resource-timing.html are failing
https://bugs.webkit.org/show_bug.cgi?id=213303
<rdar://problem/64452203>

Reviewed by Alex Christensen.

Source/WebCore:

Covered by existing tests.

  • loader/ResourceLoaderOptions.h:

Reverting part of https://trac.webkit.org/changeset/263098/webkit that might have broken win10 bots.

LayoutTests:

  • platform/win/TestExpectations:
10:25 AM Changeset in webkit [263217] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

[GStreamer] Avoid setting GstContext twice in GLVideoSinkGStreamer
https://bugs.webkit.org/show_bug.cgi?id=213029

Patch by Víctor Manuel Jáquez Leal <vjaquez@igalia.com> on 2020-06-18
Reviewed by Xabier Rodriguez-Calvar.

There is a reported issued in GStrearGL < 1.17 for GLBaseFilter
can't handle its GLContext and Display reassignation. This patch
aims to to avoid setting Display or GL Context in GL video sink
multiple times by checking if the video sink bin already has those
contexts.

Also, instead of relying on an assert if something goes wrong at
fetching the GL parameters, it returns an error at state change.

No new tests required.

  • platform/graphics/gstreamer/GLVideoSinkGStreamer.cpp:

(requestGLContext):
(setGLContext): new function.
(webKitGLVideoSinkChangeState):

10:10 AM Changeset in webkit [263216] by Alexey Shvayka
  • 8 edits in trunk

TypedArray.prototype.set is incorrect with primitives
https://bugs.webkit.org/show_bug.cgi?id=212730

Reviewed by Yusuke Suzuki.

JSTests:

  • test262/expectations.yaml: Mark 2 test cases as passing.

Source/JavaScriptCore:

This change implements step 14 of %TypedArray%.prototype.set [1],
which coerces primitives to objects instead of throwing an error,
aligning JSC with V8 and SpiderMonkey.

[1]: https://tc39.es/ecma262/#sec-%typedarray%.prototype.set-array-offset

  • runtime/JSGenericTypedArrayViewPrototypeFunctions.h:

(JSC::genericTypedArrayViewProtoFuncSet):

LayoutTests:

  • fast/canvas/webgl/array-get-and-set-method-removal-expected.txt:
  • fast/canvas/webgl/array-get-and-set-method-removal.html:
  • fast/canvas/webgl/array-set-invalid-arguments-expected.txt:
10:03 AM Changeset in webkit [263215] by Diego Pino Garcia
  • 3 edits
    4 adds in trunk/LayoutTests

[GTK] Unreviewed test gardening. Update test expectations after r263207.

  • platform/glib/js/dom/constructor-length-expected.txt: Updated.
  • platform/gtk/TestExpectations:
  • platform/gtk/imported/w3c/web-platform-tests/html/canvas/element/imagebitmap/createImageBitmap-serializable-expected.txt: Added.
9:52 AM Changeset in webkit [263214] by Alan Coon
  • 5 edits
    2 moves in branches/safari-610.1.17-branch/Source/WebCore

Cherry-pick r263129. rdar://problem/64492826

FileListCreator should only be used for resolving directories
https://bugs.webkit.org/show_bug.cgi?id=213259
<rdar://problem/64375709>

Reviewed by David Kilzer.

Depending on whether directories should be resolved, FileListCreator::create would either
synchronously execute its completion handler then return nullptr or asynchronously dispatch
its completion handler then return a non-null RefPtr. Interfaces with sometimes-synchronous
callbacks can be hard to use correctly; e.g., r262962 fixes a problem where
FileInputType::m_fileListCreator was being modified in an unexpected order.

This patch makes the interface between FileInputType and FileListCreator less error-prone
and more explicit by renaming FileListCreator to DirectoryFileListCreator, making its job
solely to create directory FileLists on a background queue, and giving it an explicit start
member function. For non-directories, FileInputType::filesChosen now bypasses
DirectoryFileListCreator and directly converts from Vector<FileChooserFileInfo> to FileList.

Covered by existing tests.

  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • html/DirectoryFileListCreator.cpp: Renamed from html/FileListCreator.cpp. (WebCore::createFileList): Removed the template and ShouldResolveDirectories parameter. (WebCore::DirectoryFileListCreator::DirectoryFileListCreator): Moved the work queue dispatching to DirectoryFileListCreator::start. (WebCore::DirectoryFileListCreator::start): Added; moved the work queue dispatching here from the ctor.
  • html/DirectoryFileListCreator.h: Renamed from html/FileListCreator.h. (WebCore::DirectoryFileListCreator::create): Stopped performing non-directory creation and changed the return value back to Ref<>.
  • html/FileInputType.cpp: (WebCore::FileInputType::filesChosen): Moved most of the work done in the FileListCreator completion handler to didCreateFileList. When !FileInputType::allowsDirectories, used Vector::map to convert paths to a Vector<Ref<File>>, used that to create a FileList, then called didCreateFileList. Otherwise, created and started a DirectoryFileListCreator that calls didCreateFileList in its completion handler. (WebCore::FileInputType::didCreateFileList): Added; sets the new file list and icon and clears m_directoryFileListCreator.
  • html/FileInputType.h:

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

9:52 AM Changeset in webkit [263213] by Alan Coon
  • 5 edits
    2 adds in branches/safari-610.1.17-branch

Cherry-pick r263128. rdar://problem/64492837

REGRESSION (r262643): DumpRenderTree at com.apple.WebCore: WebCore::Document::prepareCanvasesForDisplayIfNeeded
https://bugs.webkit.org/show_bug.cgi?id=213221
rdar://64260400

Reviewed by Simon Fraser.

Source/WebCore:

A Document could still be holding a pointer to an HTMLCanvasElement after the
canvas had been deleted because the CanvasObserver protocol was disconnected
too early. The fix is to explicitly clear the canvas from the Document as it
stops observing.

Test: webgl/preparation-removed-from-document.html

  • dom/Document.cpp: (WebCore::Document::prepareCanvasesForDisplayIfNeeded): Copy the HashSet to a Vector just in case something weird happens to the set during iteration. (WebCore::Document::clearCanvasPreparation): Remove the canvas from the list of of elements that need preparation.
  • dom/Document.h: Add the new clearCanvasPreparation method.
  • html/HTMLCanvasElement.cpp: (WebCore::HTMLCanvasElement::~HTMLCanvasElement): Clear the document. (WebCore::HTMLCanvasElement::didMoveToNewDocument): Ditto. (WebCore::HTMLCanvasElement::removedFromAncestor): Ditto.

LayoutTests:

Test that triggers a rendering on a canvas, then rips it out of
the document before drawing.

  • webgl/preparation-removed-from-document-expected.txt: Added.
  • webgl/preparation-removed-from-document.html: Added.

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

9:52 AM Changeset in webkit [263212] by Alan Coon
  • 7 edits in branches/safari-610.1.17-branch/Source/WebCore

Cherry-pick r263119. rdar://problem/64492834

Web Inspector: replace completion handler with a function in interception.
https://bugs.webkit.org/show_bug.cgi?id=213252

Patch by Pavel Feldman <pavel.feldman@gmail.com> on 2020-06-16
Reviewed by Devin Rousso.

Don't use a CompletionHandler as it asserts that it's been called when it's destroyed.
Both Network.interceptRequestWithResponse and Network.interceptRequestWithError essentially
"skip" the network pipeline, so the CompletionHandler is not invoked for those commands.

  • inspector/InspectorInstrumentation.cpp: (WebCore::InspectorInstrumentation::interceptRequestImpl):
  • inspector/InspectorInstrumentation.h: (WebCore::InspectorInstrumentation::interceptRequest):
  • inspector/InspectorInstrumentationWebKit.cpp: (WebCore::InspectorInstrumentationWebKit::interceptRequestInternal):
  • inspector/InspectorInstrumentationWebKit.h: (WebCore::InspectorInstrumentationWebKit::interceptRequest):
  • inspector/agents/InspectorNetworkAgent.cpp: (WebCore::InspectorNetworkAgent::interceptRequest): (WebCore::InspectorNetworkAgent::interceptRequestWithResponse): (WebCore::InspectorNetworkAgent::interceptRequestWithError):
  • inspector/agents/InspectorNetworkAgent.h: (WebCore::InspectorNetworkAgent::PendingInterceptRequest::PendingInterceptRequest): (WebCore::InspectorNetworkAgent::PendingInterceptRequest::continueAsHandled):

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

9:32 AM Changeset in webkit [263211] by Doug Kelly
  • 4 edits in trunk/Source/WebCore

Clamp text run width to zero
https://bugs.webkit.org/show_bug.cgi?id=212655
<rdar://problem/61462335>

Reviewed by Said Abou-Hallawa.

It's possible to end up with a text run with negative width, if the text run is relatively short
and the character spacing is relatively large (but negative). If this occurs, clamp the value to
zero. This also adds additional asserts and checks to ensure the value remains non-negative.

  • platform/graphics/cg/GraphicsContextCG.cpp:

(WebCore::GraphicsContext::drawLinesForText):

  • rendering/ComplexLineLayout.cpp:

(WebCore::setLogicalWidthForTextRun):

  • rendering/RenderText.cpp:

(WebCore::RenderText::width const):

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

Unreviewed infrastructure fix, temporarily remove ews116 due to hardware failure tracked with rdar://64424245

  • BuildSlaveSupport/ews-build/config.json:
9:28 AM Changeset in webkit [263209] by ddkilzer@apple.com
  • 3 edits in trunk/Source/WebCore

Fix misspellings of "namespace" in comments

  • page/SpatialNavigation.h:
  • platform/gtk/RenderThemeScrollbar.cpp:
8:53 AM Changeset in webkit [263208] by ddkilzer@apple.com
  • 31 edits in trunk/Source

[IPC hardening] OptionSet<> values should be validated
<https://webkit.org/b/213199>
<rdar://problem/64369963>

Reviewed by Anders Carlsson.

Source/WebCore:

Summary:

  • Add WTF::EnumTraits<> for all OptionSet<> enums.
  • Specify unsigned backing types for enum classes.
  • loader/CrossOriginAccessControl.h:
  • page/ActivityState.h:
  • page/AutoplayEvent.h:
  • page/CrossSiteNavigationDataTransfer.h:
  • page/LayoutMilestone.h:
  • page/TextIndicator.h:
  • platform/PlatformEvent.h:
  • platform/graphics/GraphicsContext.h:

Source/WebKit:

Summary:

  • Add WTF::EnumTraits<> for all OptionSet<> enums.
  • Specify unsigned backing types for enum classes.
  • NetworkProcess/NetworkProcess.h:
  • NetworkProcess/NetworkSession.h:
  • Platform/IPC/ArgumentCoders.h:

(IPC::ArgumentCoder<OptionSet<T>>::encode):
(IPC::ArgumentCoder<OptionSet<T>>::decode):

  • Add WTF::isValidOptionSet() checks.
  • Platform/IPC/Decoder.h:
  • Platform/IPC/Encoder.h:
  • Replace <wtf/EnumTraits.h> with <wtf/OptionSet.h> since the latter now includes the former.
  • Platform/IPC/MessageFlags.h:
  • Shared/DocumentEditingContext.h:
  • Shared/RemoteLayerTree/RemoteLayerTreeTransaction.h:
  • Shared/WebEvent.h:
  • Shared/WebsiteAutoplayQuirk.h:
  • Shared/WebsiteData/WebsiteData.h:
  • Shared/WebsiteData/WebsiteDataFetchOption.h:
  • Shared/WebsiteData/WebsiteDataType.h:
  • Shared/ios/GestureTypes.h:
  • UIProcess/Network/NetworkProcessProxy.h:
  • UIProcess/Plugins/PluginProcessManager.h:
  • UIProcess/WebProcessProxy.h:
  • UIProcess/WebsiteData/WebsiteDataStore.h:
  • WebProcess/WebProcess.h:

Source/WTF:

  • wtf/OptionSet.h:

(WTF::isValidOptionSet): Add.

7:25 AM Changeset in webkit [263207] by Diego Pino Garcia
  • 2 edits in trunk/LayoutTests

[GTK] Unreviewed test gardening. Update status of flaky timeout failures after r263206.

  • platform/gtk/TestExpectations:
4:41 AM Changeset in webkit [263206] by Diego Pino Garcia
  • 2 edits in trunk/LayoutTests

[GTK] Unreviewed test gardening. Remove stale flaky failures after r263205.

  • platform/gtk/TestExpectations:
2:45 AM Changeset in webkit [263205] by Diego Pino Garcia
  • 2 edits in trunk/LayoutTests

[GTK] Unreviewed test gardening. Remove stake flaky crash failures after r263204.

  • platform/gtk/TestExpectations:
1:17 AM Changeset in webkit [263204] by Carlos Garcia Campos
  • 13 edits in trunk

[GTK][WPE] Add API to configure and handle service worker registrations to WebKitWebsiteDataManager
https://bugs.webkit.org/show_bug.cgi?id=213290

Reviewed by Michael Catanzaro.

Source/WebKit:

The default path is always used even for apps setting a base data directory. We should handle
WebsiteDataType::ServiceWorkerRegistrations to configure the directory and allow to fetch and clear them.

  • UIProcess/API/glib/WebKitWebsiteData.cpp:

(recordContainsSupportedDataTypes):
(toWebKitWebsiteDataTypes):

  • UIProcess/API/glib/WebKitWebsiteDataManager.cpp:

(webkitWebsiteDataManagerGetProperty):
(webkitWebsiteDataManagerSetProperty):
(webkitWebsiteDataManagerConstructed):
(webkit_website_data_manager_class_init):
(webkitWebsiteDataManagerGetDataStore):
(webkit_website_data_manager_get_service_worker_registrations_directory):
(toWebsiteDataTypes):

  • UIProcess/API/gtk/WebKitWebsiteData.h:
  • UIProcess/API/gtk/WebKitWebsiteDataManager.h:
  • UIProcess/API/gtk/docs/webkit2gtk-4.0-sections.txt:
  • UIProcess/API/wpe/WebKitWebsiteData.h:
  • UIProcess/API/wpe/WebKitWebsiteDataManager.h:
  • UIProcess/API/wpe/docs/wpe-1.0-sections.txt:

Tools:

Handle new website data in MiniBrowser and add a unit test.

  • MiniBrowser/gtk/main.c:

(gotWebsiteDataCallback):

  • TestWebKitAPI/Tests/WebKitGLib/TestWebsiteData.cpp:

(serverCallback):
(testWebsiteDataConfiguration):
(testWebsiteDataEphemeral):
(testWebsiteDataITP):
(testWebsiteDataServiceWorkerRegistrations):
(beforeAll):

  • TestWebKitAPI/glib/WebKitGLib/TestMain.h:

(Test::Test):

1:15 AM Changeset in webkit [263203] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebCore/platform/gtk/po

[GTK] [l10n] Updated Ukrainian translation of WebKitGTK
https://bugs.webkit.org/show_bug.cgi?id=212844

Patch by Yuri Chornoivan <yurchor@ukr.net> on 2020-06-18
Rubber-stamped by Carlos Garcia Campos.

  • uk.po:
1:12 AM Changeset in webkit [263202] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebKit

Unreviewed. Fix a typo introduced in r263085

Patch by Yuri Chornoivan <yurchor@ukr.net> on 2020-06-18

  • UIProcess/API/glib/WebKitWebsiteDataManager.cpp:

(webkit_website_data_manager_class_init):

12:36 AM Changeset in webkit [263201] by Diego Pino Garcia
  • 5 edits in trunk/LayoutTests

[WPE] Unreviewed test gardening. Update test expectations after r263199.

  • platform/glib/TestExpectations:
  • platform/gtk/TestExpectations:
  • platform/wpe/TestExpectations:
  • platform/wpe/accessibility/roles-exposed-expected.txt:

Jun 17, 2020:

10:54 PM Changeset in webkit [263200] by Diego Pino Garcia
  • 3 edits
    2 adds in trunk/LayoutTests

[GTK] Unreviewed test gardening. Update test expectations after r263197.

  • platform/glib/TestExpectations:
  • platform/gtk/TestExpectations:
  • platform/gtk/http/tests/plugins/plugin-javascript-access-allow-all-plugins-expected.txt: Added.
  • platform/wpe/TestExpectations:
9:16 PM Changeset in webkit [263199] by Chris Dumez
  • 7 edits in trunk

Added missing orientation attributes to PannerNode
https://bugs.webkit.org/show_bug.cgi?id=213301

Patch by Clark Wang <clark_wang@apple.com> on 2020-06-17
Reviewed by Chris Dumez.

LayoutTests/imported/w3c:

Re-baselined previous tests that now have passing test cases.

  • web-platform-tests/webaudio/idlharness.https.window-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-pannernode-interface/pannernode-basic-expected.txt:

Source/WebCore:

Implemented orientation attributes in PannerNode interface, as per spec: https://www.w3.org/TR/webaudio/#pannernode.
Added FIXME comments for removing velocity later.

Re-baselined previous tests that now have passing test cases.

  • Modules/webaudio/PannerNode.cpp:

(WebCore::PannerNode::PannerNode):
(WebCore::PannerNode::orientation const):
(WebCore::PannerNode::setOrientation):
(WebCore::PannerNode::distanceConeGain):

  • Modules/webaudio/PannerNode.h:
  • Modules/webaudio/PannerNode.idl:
9:14 PM Changeset in webkit [263198] by Chris Dumez
  • 99 edits
    16 copies in trunk

Add experimental feature flag for modern & unprefixed WebAudio API
https://bugs.webkit.org/show_bug.cgi?id=213268

Reviewed by Jer Noble.

LayoutTests/imported/w3c:

Rebaseline a few web-platform-tests now that they are passing or failing at a later stage.
This is due to our WebAudio getting properly unprefixed in the context of layout tests.

  • web-platform-tests/webaudio/idlharness.https.window-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-audiocontext-interface/audiocontext-detached-execution-context.tentative-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-audionode-interface/audionode-connect-method-chaining-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-offlineaudiocontext-interface/offlineaudiocontext-detached-execution-context.tentative-expected.txt:

Source/WebCore:

Add experimental feature flag for modern & unprefixed WebAudio API,
off by default.

This patch split the AudioContext, OfflineAudioContext and PannerNode
IDL interfaces into their prefixed and unprefixed versions. The
unprefixed versions are behind the new experimental feature flag that
is currently off by default but automatically gets turned on in the
context of layout tests.

This will give us more flexibility when working on the modern and
unprefixed WebAudio API as we will not have to worry about backward
compatibility. This also allows us to easily turn it on or off via
the experimental features menu in Safari.

No new tests, rebaselined existing tests.

  • CMakeLists.txt:
  • DerivedSources-input.xcfilelist:
  • DerivedSources-output.xcfilelist:
  • DerivedSources.make:
  • Modules/webaudio/AnalyserNode.cpp:

(WebCore::AnalyserNode::AnalyserNode):

  • Modules/webaudio/AnalyserNode.h:
  • Modules/webaudio/AudioBasicInspectorNode.cpp:

(WebCore::AudioBasicInspectorNode::AudioBasicInspectorNode):

  • Modules/webaudio/AudioBasicInspectorNode.h:
  • Modules/webaudio/AudioBasicProcessorNode.cpp:

(WebCore::AudioBasicProcessorNode::AudioBasicProcessorNode):

  • Modules/webaudio/AudioBasicProcessorNode.h:
  • Modules/webaudio/AudioBufferSourceNode.cpp:

(WebCore::AudioBufferSourceNode::create):
(WebCore::AudioBufferSourceNode::AudioBufferSourceNode):
(WebCore::AudioBufferSourceNode::setBuffer):
(WebCore::AudioBufferSourceNode::setPannerNode):

  • Modules/webaudio/AudioBufferSourceNode.h:
  • Modules/webaudio/AudioContext.cpp:

(WebCore::AudioContextBase::AudioContextBase):
(WebCore::AudioContext::AudioContext):
(WebCore::AudioContextBase::document const):
(WebCore::AudioContextBase::scriptExecutionContext const):

  • Modules/webaudio/AudioContext.h:

(WebCore::AudioContextBase::AutoLocker::AutoLocker):
(WebCore::AudioContextBase::AutoLocker::~AutoLocker):
(WebCore::AudioContext::maxNumberOfChannels):
(isType):

  • Modules/webaudio/AudioContext.idl:
  • Modules/webaudio/AudioContextState.h: Copied from Source/WebCore/Modules/webaudio/OfflineAudioContext.idl.
  • Modules/webaudio/AudioContextState.idl: Copied from Source/WebCore/Modules/webaudio/OfflineAudioContext.idl.
  • Modules/webaudio/AudioDestinationNode.cpp:

(WebCore::AudioDestinationNode::AudioDestinationNode):

  • Modules/webaudio/AudioDestinationNode.h:
  • Modules/webaudio/AudioNode.cpp:

(WebCore::AudioNode::AudioNode):
(WebCore::AudioNode::connect):
(WebCore::AudioNode::disconnect):
(WebCore::AudioNode::setChannelCount):
(WebCore::AudioNode::setChannelCountMode):
(WebCore::AudioNode::setChannelInterpretation):
(WebCore::AudioNode::enableOutputsIfNecessary):
(WebCore::AudioNode::deref):
(WebCore::AudioNode::contextForBindings const):

  • Modules/webaudio/AudioNode.h:

(WebCore::AudioNode::context):
(WebCore::AudioNode::context const):

  • Modules/webaudio/AudioNode.idl:
  • Modules/webaudio/AudioNodeOutput.h:

(WebCore::AudioNodeOutput::context):

  • Modules/webaudio/AudioParam.cpp:

(WebCore::AudioParam::AudioParam):

  • Modules/webaudio/AudioParam.h:
  • Modules/webaudio/AudioParamTimeline.cpp:

(WebCore::AudioParamTimeline::valueForContextTime):

  • Modules/webaudio/AudioParamTimeline.h:
  • Modules/webaudio/AudioScheduledSourceNode.cpp:

(WebCore::AudioScheduledSourceNode::AudioScheduledSourceNode):

  • Modules/webaudio/AudioScheduledSourceNode.h:
  • Modules/webaudio/AudioSummingJunction.cpp:

(WebCore::AudioSummingJunction::AudioSummingJunction):

  • Modules/webaudio/AudioSummingJunction.h:

(WebCore::AudioSummingJunction::context):

  • Modules/webaudio/BiquadFilterNode.cpp:

(WebCore::BiquadFilterNode::BiquadFilterNode):

  • Modules/webaudio/BiquadFilterNode.h:
  • Modules/webaudio/BiquadProcessor.cpp:

(WebCore::BiquadProcessor::BiquadProcessor):

  • Modules/webaudio/BiquadProcessor.h:
  • Modules/webaudio/ChannelMergerNode.cpp:

(WebCore::ChannelMergerNode::create):
(WebCore::ChannelMergerNode::ChannelMergerNode):

  • Modules/webaudio/ChannelMergerNode.h:
  • Modules/webaudio/ChannelSplitterNode.cpp:

(WebCore::ChannelSplitterNode::create):
(WebCore::ChannelSplitterNode::ChannelSplitterNode):

  • Modules/webaudio/ChannelSplitterNode.h:
  • Modules/webaudio/ConvolverNode.cpp:

(WebCore::ConvolverNode::ConvolverNode):

  • Modules/webaudio/ConvolverNode.h:
  • Modules/webaudio/DefaultAudioDestinationNode.cpp:

(WebCore::DefaultAudioDestinationNode::DefaultAudioDestinationNode):

  • Modules/webaudio/DefaultAudioDestinationNode.h:
  • Modules/webaudio/DelayNode.cpp:

(WebCore::DelayNode::DelayNode):
(WebCore::DelayNode::create):

  • Modules/webaudio/DelayNode.h:
  • Modules/webaudio/DelayProcessor.cpp:

(WebCore::DelayProcessor::DelayProcessor):

  • Modules/webaudio/DelayProcessor.h:
  • Modules/webaudio/DistanceModelType.h: Copied from Source/WebCore/Modules/webaudio/OfflineAudioContext.idl.
  • Modules/webaudio/DistanceModelType.idl: Copied from Source/WebCore/Modules/webaudio/OfflineAudioContext.idl.
  • Modules/webaudio/DynamicsCompressorNode.cpp:

(WebCore::DynamicsCompressorNode::DynamicsCompressorNode):

  • Modules/webaudio/DynamicsCompressorNode.h:
  • Modules/webaudio/GainNode.cpp:

(WebCore::GainNode::GainNode):

  • Modules/webaudio/GainNode.h:
  • Modules/webaudio/MediaElementAudioSourceNode.cpp:

(WebCore::MediaElementAudioSourceNode::create):
(WebCore::MediaElementAudioSourceNode::MediaElementAudioSourceNode):
(WebCore::MediaElementAudioSourceNode::setFormat):

  • Modules/webaudio/MediaElementAudioSourceNode.h:
  • Modules/webaudio/MediaStreamAudioDestinationNode.cpp:

(WebCore::MediaStreamAudioDestinationNode::create):
(WebCore::MediaStreamAudioDestinationNode::MediaStreamAudioDestinationNode):

  • Modules/webaudio/MediaStreamAudioDestinationNode.h:
  • Modules/webaudio/MediaStreamAudioSourceNode.cpp:

(WebCore::MediaStreamAudioSourceNode::create):
(WebCore::MediaStreamAudioSourceNode::MediaStreamAudioSourceNode):

  • Modules/webaudio/MediaStreamAudioSourceNode.h:
  • Modules/webaudio/OfflineAudioContext.idl:
  • Modules/webaudio/OfflineAudioDestinationNode.cpp:

(WebCore::OfflineAudioDestinationNode::OfflineAudioDestinationNode):

  • Modules/webaudio/OfflineAudioDestinationNode.h:
  • Modules/webaudio/OscillatorNode.cpp:

(WebCore::OscillatorNode::create):
(WebCore::OscillatorNode::OscillatorNode):

  • Modules/webaudio/OscillatorNode.h:
  • Modules/webaudio/PannerNode.cpp:

(WebCore::PannerNodeBase::PannerNodeBase):
(WebCore::PannerNode::PannerNode):

  • Modules/webaudio/PannerNode.h:
  • Modules/webaudio/PannerNode.idl:
  • Modules/webaudio/PanningModelType.h: Copied from Source/WebCore/Modules/webaudio/OfflineAudioContext.idl.
  • Modules/webaudio/PanningModelType.idl: Copied from Source/WebCore/Modules/webaudio/OfflineAudioContext.idl.
  • Modules/webaudio/ScriptProcessorNode.cpp:

(WebCore::ScriptProcessorNode::create):
(WebCore::ScriptProcessorNode::ScriptProcessorNode):

  • Modules/webaudio/ScriptProcessorNode.h:
  • Modules/webaudio/WaveShaperNode.cpp:

(WebCore::WaveShaperNode::WaveShaperNode):

  • Modules/webaudio/WaveShaperNode.h:
  • Modules/webaudio/WebKitAudioContext.cpp: Copied from Source/WebCore/Modules/webaudio/AudioContext.cpp.

(WebCore::WebKitAudioContext::isSampleRateRangeGood):
(WebCore::WebKitAudioContext::create):
(WebCore::WebKitAudioContext::WebKitAudioContext):
(WebCore::WebKitAudioContext::constructCommon):
(WebCore::WebKitAudioContext::~WebKitAudioContext):
(WebCore::WebKitAudioContext::lazyInitialize):
(WebCore::WebKitAudioContext::clear):
(WebCore::WebKitAudioContext::uninitialize):
(WebCore::WebKitAudioContext::isInitialized const):
(WebCore::WebKitAudioContext::addReaction):
(WebCore::WebKitAudioContext::setState):
(WebCore::WebKitAudioContext::stop):
(WebCore::WebKitAudioContext::suspend):
(WebCore::WebKitAudioContext::resume):
(WebCore::WebKitAudioContext::activeDOMObjectName const):
(WebCore::WebKitAudioContext::hostingDocumentIdentifier const):
(WebCore::WebKitAudioContext::isSuspended const):
(WebCore::WebKitAudioContext::visibilityStateChanged):
(WebCore::WebKitAudioContext::wouldTaintOrigin const):
(WebCore::WebKitAudioContext::createBuffer):
(WebCore::WebKitAudioContext::decodeAudioData):
(WebCore::WebKitAudioContext::createBufferSource):
(WebCore::WebKitAudioContext::createMediaElementSource):
(WebCore::WebKitAudioContext::createMediaStreamSource):
(WebCore::WebKitAudioContext::createMediaStreamDestination):
(WebCore::WebKitAudioContext::createScriptProcessor):
(WebCore::WebKitAudioContext::createBiquadFilter):
(WebCore::WebKitAudioContext::createWaveShaper):
(WebCore::WebKitAudioContext::createPanner):
(WebCore::WebKitAudioContext::createConvolver):
(WebCore::WebKitAudioContext::createDynamicsCompressor):
(WebCore::WebKitAudioContext::createAnalyser):
(WebCore::WebKitAudioContext::createGain):
(WebCore::WebKitAudioContext::createDelay):
(WebCore::WebKitAudioContext::createChannelSplitter):
(WebCore::WebKitAudioContext::createChannelMerger):
(WebCore::WebKitAudioContext::createOscillator):
(WebCore::WebKitAudioContext::createPeriodicWave):
(WebCore::WebKitAudioContext::notifyNodeFinishedProcessing):
(WebCore::WebKitAudioContext::derefFinishedSourceNodes):
(WebCore::WebKitAudioContext::refNode):
(WebCore::WebKitAudioContext::derefNode):
(WebCore::WebKitAudioContext::derefUnfinishedSourceNodes):
(WebCore::WebKitAudioContext::lock):
(WebCore::WebKitAudioContext::tryLock):
(WebCore::WebKitAudioContext::unlock):
(WebCore::WebKitAudioContext::isAudioThread const):
(WebCore::WebKitAudioContext::isGraphOwner const):
(WebCore::WebKitAudioContext::addDeferredFinishDeref):
(WebCore::WebKitAudioContext::handlePreRenderTasks):
(WebCore::WebKitAudioContext::handlePostRenderTasks):
(WebCore::WebKitAudioContext::handleDeferredFinishDerefs):
(WebCore::WebKitAudioContext::markForDeletion):
(WebCore::WebKitAudioContext::scheduleNodeDeletion):
(WebCore::WebKitAudioContext::deleteMarkedNodes):
(WebCore::WebKitAudioContext::markSummingJunctionDirty):
(WebCore::WebKitAudioContext::removeMarkedSummingJunction):
(WebCore::WebKitAudioContext::markAudioNodeOutputDirty):
(WebCore::WebKitAudioContext::handleDirtyAudioSummingJunctions):
(WebCore::WebKitAudioContext::handleDirtyAudioNodeOutputs):
(WebCore::WebKitAudioContext::addAutomaticPullNode):
(WebCore::WebKitAudioContext::removeAutomaticPullNode):
(WebCore::WebKitAudioContext::updateAutomaticPullNodes):
(WebCore::WebKitAudioContext::processAutomaticPullNodes):
(WebCore::WebKitAudioContext::nodeWillBeginPlayback):
(WebCore::shouldDocumentAllowWebAudioToAutoPlay):
(WebCore::WebKitAudioContext::willBeginPlayback):
(WebCore::WebKitAudioContext::willPausePlayback):
(WebCore::WebKitAudioContext::startRendering):
(WebCore::WebKitAudioContext::mediaCanStart):
(WebCore::WebKitAudioContext::mediaState const):
(WebCore::WebKitAudioContext::pageMutedStateDidChange):
(WebCore::WebKitAudioContext::isPlayingAudioDidChange):
(WebCore::WebKitAudioContext::finishedRendering):
(WebCore::WebKitAudioContext::dispatchEvent):
(WebCore::WebKitAudioContext::incrementActiveSourceCount):
(WebCore::WebKitAudioContext::decrementActiveSourceCount):
(WebCore::WebKitAudioContext::suspendRendering):
(WebCore::WebKitAudioContext::resumeRendering):
(WebCore::WebKitAudioContext::close):
(WebCore::WebKitAudioContext::suspendPlayback):
(WebCore::WebKitAudioContext::mayResumePlayback):
(WebCore::WebKitAudioContext::postTask):
(WebCore::WebKitAudioContext::origin const):
(WebCore::WebKitAudioContext::addConsoleMessage):
(WebCore::WebKitAudioContext::clearPendingActivity):
(WebCore::WebKitAudioContext::makePendingActivity):
(WebCore::WebKitAudioContext::logChannel const):

  • Modules/webaudio/WebKitAudioContext.h: Copied from Source/WebCore/Modules/webaudio/AudioContext.h.

(WebCore::WebKitAudioContext::destination):
(WebCore::WebKitAudioContext::activeSourceCount const):
(WebCore::WebKitAudioContext::listener):
(WebCore::WebKitAudioContext::isClosed const):
(WebCore::WebKitAudioContext::connectionCount const):
(WebCore::WebKitAudioContext::audioThread const):
(WebCore::WebKitAudioContext::maxNumberOfChannels):
(WebCore::WebKitAudioContext::userGestureRequiredForAudioStart const):
(WebCore::WebKitAudioContext::pageConsentRequiredForAudioStart const):
(WebCore::WebKitAudioContext::state const):
(isType):

  • Modules/webaudio/WebKitAudioContext.idl: Copied from Source/WebCore/Modules/webaudio/AudioContext.idl.
  • Modules/webaudio/WebKitAudioPannerNode.cpp: Copied from Source/WebCore/Modules/webaudio/PannerNode.cpp.

(WebCore::fixNANs):
(WebCore::WebKitAudioPannerNode::WebKitAudioPannerNode):
(WebCore::WebKitAudioPannerNode::~WebKitAudioPannerNode):
(WebCore::WebKitAudioPannerNode::pullInputs):
(WebCore::WebKitAudioPannerNode::process):
(WebCore::WebKitAudioPannerNode::reset):
(WebCore::WebKitAudioPannerNode::initialize):
(WebCore::WebKitAudioPannerNode::uninitialize):
(WebCore::WebKitAudioPannerNode::listener):
(WebCore::WebKitAudioPannerNode::setPanningModel):
(WebCore::WebKitAudioPannerNode::distanceModel const):
(WebCore::WebKitAudioPannerNode::setDistanceModel):
(WebCore::WebKitAudioPannerNode::getAzimuthElevation):
(WebCore::WebKitAudioPannerNode::dopplerRate):
(WebCore::WebKitAudioPannerNode::distanceConeGain):
(WebCore::WebKitAudioPannerNode::notifyAudioSourcesConnectedToNode):

  • Modules/webaudio/WebKitAudioPannerNode.h: Copied from Source/WebCore/Modules/webaudio/PannerNode.h.
  • Modules/webaudio/WebKitAudioPannerNode.idl: Copied from Source/WebCore/Modules/webaudio/PannerNode.idl.
  • Modules/webaudio/WebKitOfflineAudioContext.cpp: Copied from Source/WebCore/Modules/webaudio/DelayNode.cpp.

(WebCore::WebKitOfflineAudioContext::WebKitOfflineAudioContext):
(WebCore::WebKitOfflineAudioContext::create):

  • Modules/webaudio/WebKitOfflineAudioContext.h: Copied from Source/WebCore/Modules/webaudio/DelayNode.h.
  • Modules/webaudio/WebKitOfflineAudioContext.idl: Copied from Source/WebCore/Modules/webaudio/OfflineAudioContext.idl.
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/WebCoreBuiltinNames.h:
  • dom/EventTargetFactory.in:
  • page/Settings.yaml:
  • testing/Internals.cpp:

(WebCore::Internals::setAudioContextRestrictions):

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

Source/WebKit:

Add experimental feature flag for modern & unprefixed WebAudio API,
off by default.

  • Shared/WebPreferences.yaml:
8:23 PM Changeset in webkit [263197] by Fujii Hironori
  • 3 edits in trunk/Tools

RebaselineServer: "Rebaseline queue" button is placed behind the footer
https://bugs.webkit.org/show_bug.cgi?id=213258

Reviewed by Zalan Bujtas.

  • Scripts/webkitpy/tool/servers/data/rebaselineserver/index.html: Moved 'log' and 'queue' elements after 'footer' element.
  • Scripts/webkitpy/tool/servers/data/rebaselineserver/main.css:

(#queue): Changed 'bottom' property from 3em to 4em.

7:26 PM Changeset in webkit [263196] by Wenson Hsieh
  • 10 edits in trunk

[macOS] Shift-tab in a bullet list in Mail Compose jumps back to Subject field
https://bugs.webkit.org/show_bug.cgi?id=213320
<rdar://problem/63831962>

Reviewed by Tim Horton.

Source/WebCore:

After the changes in r262051, pressing shift-tab in a bulleted list in Mail compose on macOS no longer triggers
an outdent command. This is because the default behavior of the "keydown" event will now relinquish focus to the
embedding client (i.e. the "chrome"). In this case, Mail makes the Subject field above the compose web view the
first responder.

This is necessary on iOS, where Mail does not attempt to intercept shift+tab and move focus to the subject line.
However, Mail on macOS intercepts the keypress event, and either triggers outdent (if the selection is inside a
list or blockquote) or focuses the Subject line. Since focus is relinquished during "keydown", this logic no
longer runs, and hitting shift+tab in a list always relinquishes focus.

To address this, refactor the changes made in r262051 so that we treat the default behavior of the "keypress"
event (rather than "keydown") as relinquishing focus. See WebKit/ChangeLog for more details.

Test: WebKit.ShiftTabDoesNotTakeFocusFromEditableWebViewWhenPreventingKeyPress

  • page/EventHandler.cpp:

(WebCore::EventHandler::defaultTabEventHandler):

Remove a call to relinquish focus when handling tab.

  • page/FocusController.h:

Source/WebKit:

See WebCore/ChangeLog for more detail.

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::handleKeyEventByRelinquishingFocusToChrome):

  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::handleEditingKeyboardEvent):

Hoist logic for relinquishing focus as a result of shift+tab from EventHandler to WebPage, so that it is the
default behavior when processing a "keypress" event that corresponds to shift+tab in an editable web view on
Cocoa platforms. If we do end up relinquishing focus, then we consider the keypress event to be handled.

  • WebProcess/WebPage/mac/WebPageMac.mm:

(WebKit::WebPage::handleEditingKeyboardEvent):

Tools:

Add a new API test to verify that preventing the "keypress" event for shift+tab in an SPI-editable web view
causes us to avoid relinquishing focus.

  • TestWebKitAPI/Tests/WebKitCocoa/UIDelegate.mm:
6:55 PM Changeset in webkit [263195] by mark.lam@apple.com
  • 13 edits in trunk/Source

Replace JSC::FreeList linked list with a Bitmap.
https://bugs.webkit.org/show_bug.cgi?id=213071

Reviewed by Filip Pizlo.

Source/JavaScriptCore:

Implement an alternative to the linked list FreeList. This alternative uses
a Bitmap to record which atom in the block is available for allocation.

The intuition here is that allocation using the Bitmap implementation will do:

2 loads - m_currentRowBitmap, m_currentMarkedBlockRowAddress
1 store - m_currentRowBitmap

whereas the linked list implementation will do:

3 loads - m_scrambledHead, m_secret, result->scrambledNext
1 store - m_scrambledHead

and result->scrambledNext is from a different region of code and therefore not
in the same cache line.

The downside of the Bitmap implementation is that it uses more instructions.

This change is currently only enabled for x86_64, which shows about a 0.8%
progression on Speedometer 2.

It appears to be about a 1% regression on ARM64E. Hence, for now, we keep the
linked list implementation for ARM64 builds.

This is how the Bitmap FreeList works:

  1. The Bitmap implementation only replaces the linked list implementation. It does not replace the bump allocator.
  1. The Bitmap allocator keeps a m_bitmap that is initialized in MarkedBlock::Handle::specializedSweep() to have a bit set for each atom location that is available for allocation (i.e. is free). Note that a cell is usually allocated using more than 1 atom. Only the bit corresponding to the first atom (in that cell length range of free atoms) will be set.

This is consistent with how bits in MarkedBlock::Footer::m_marks and
MarkedBlock::Footer::m_newlyAllocated are set i.e. only the bit for the first
atom in the cell can be set.

  1. The allocation algorithm thinks of the MarkedBlock as consisting of rows of atoms, where the number of atoms in a row equals the number of bits in a AtomsBitmap::Word. On 64-bit CPUs, this would be 64.

We will start allocating from the last (highest numbered) row down to the
first (row 0). As we allocate, we will only update m_currentRowIndex and
m_currentRowBitmap. m_bitmap will not be updated. This is so in order to
reduce the number of instructions executed during an allocation.

When m_currentRowIndex points to N, the AtomsBitmap::Word for row N in
m_bitmap will have been copied into m_currentRowBitmap. This is the row
that we will be allocating from until the row is exhausted.

This is how we know whether an atom is available for allocation or not:

  1. Atoms in any rows above m_currentRowIndex are guaranteed to be allocated already (because we allocate downwards), and hence, are not available.
  1. For row m_currentRowIndex, m_currentRowBitmap is the source of truth

on which atoms in the row are available for allocation.

  1. For rows below m_currentRowIndex, m_bitmap is the source of truth on

which atoms are available for allocation.

When m_currentRowIndex reaches 0, the info in m_bitmap is completely
obsoleted, and m_currentRowBitmap holds the availability info for row 0.
When both m_currentRowIndex and m_currentRowBitmap are 0, then we have
completely exhausted the block and no more atoms are available for
allocation.

  1. Allocation happens in 3 paths: fast, middle, slow.

The fast path checks m_currentRowBitmap. If it's not 0, then we compute the
bit number of the lowest set bit in it. That bit number will be used together
with m_currentMarkedBlockRowAddress to compute the address of the atom
location available for allocation. m_currentRowBitmap will be updated to clear
the bit for the atom that has just ben allocated.

If m_currentRowBitmap is 0, then we'll go to the middle path.

The middle path checks m_currentRowIndex to see if we have more rows to allocate
from. For each m_currentRowIndex, we check its corresponding AtomsBitmap::Word
in m_bitmap. If the word is non-zero, we copy it to m_currentRowBitmap and
jump to the fast path to do the allocation. The middle path will update
m_currentRowIndex to point to the current row we're allocating from.

If we have decremented m_currentRowIndex down to 0 but still can't find a
non-zero AtomsBitmap::Word in m_bitmap, then the block has been exhausted, and
we'll go to the slow path.

The slow path is analogous to the old slow path i.e. we try to refill the
LocalAllocator with a new MarkedBlock.

  1. On the layout of fields in FreeList (see changes in FreeList.h), we try to preserve the positions of the bump allocator fields. The only change we made there is n the location of m_cellSize. It is now moved up next to m_remaining, and m_originalSize is moved down. This is because m_originalSize is only accessed in the slow path, and m_cellSize is accessed in the bump allocation path.

Next, we try to put Bitmap allocation fields where the linked list fields
would have been. The one bit of trickiness is that we'll put
m_currentMarkedBlockRowAddress in a union with m_payloadEnd. This is because
m_payloadEnd is only used in the bump allocation path. If m_remaining is 0,
then we can reuse this location for m_currentMarkedBlockRowAddress.

With this, we would have 4 bytes of padding after m_currentRowIndex. For
compactness, we put m_originalSize there in that space. For builds that use
the linked list implementation, m_originalSize will be located below after
m_cellSize.

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::allocateHeapCell):

  • heap/FreeList.cpp:

(JSC::FreeList::clear):
(JSC::FreeList::initializeAtomsBitmap):
(JSC::FreeList::initializeBump):
(JSC::FreeList::contains const):
(JSC::FreeList::dump const):

  • heap/FreeList.h:

(JSC::FreeList::bitmapIsEmpty const):
(JSC::FreeList::allocationWillFail const):
(JSC::FreeList::offsetOfCurrentRowBitmap):
(JSC::FreeList::offsetOfBitmapRows):
(JSC::FreeList::offsetOfCurrentRowIndex):
(JSC::FreeList::offsetOfCurrentMarkedBlockRowAddress):
(JSC::FreeList::offsetOfRemaining):
(JSC::FreeList::atomsBitmap):
(JSC::FreeList::bitmapRows const):
(JSC::FreeList::offsetOfOriginalSize): Deleted.

  • heap/FreeListInlines.h:

(JSC::FreeList::allocate):
(JSC::FreeList::forEach const):

  • heap/LocalAllocator.cpp:

(JSC::LocalAllocator::isFreeListedCell const):

  • heap/MarkedBlock.h:

(JSC::MarkedBlock::Handle::atomAt const):

  • heap/MarkedBlockInlines.h:

(JSC::MarkedBlock::Handle::specializedSweep):

  • jit/AssemblyHelpers.cpp:

(JSC::AssemblyHelpers::emitAllocateWithNonNullAllocator):

  • jit/AssemblyHelpers.h:

(JSC::AssemblyHelpers::emitAllocateWithNonNullAllocator):

Source/WTF:

  1. Use countOfBits<> template to compute the number of bits.
  2. Introduce log2() and log2Constexpr() utility functions.
  3. Make Bitmap<>::forEachSetBit() a little bit more efficient: we don't need to keep iterating if the bitmap word is already empty of bits.
  • wtf/Bitmap.h:

(WTF::WordType>::forEachSetBit const):

  • wtf/MathExtras.h:

(WTF::clzConstexpr):
(WTF::clz):
(WTF::ctzConstexpr):
(WTF::ctz):
(WTF::getMSBSet):
(WTF::getMSBSetConstexpr):
(WTF::log2):
(WTF::log2Constexpr):

6:45 PM Changeset in webkit [263194] by aestes@apple.com
  • 2 edits in trunk/Tools

REGRESSION (r258092): fast/forms/ios/file-upload-panel.html fails when HAVE(UICONTEXTMENU_LOCATION)
https://bugs.webkit.org/show_bug.cgi?id=213314
<rdar://problem/60339129>

Reviewed by Maciej Stachowiak.

fast/forms/ios/file-upload-panel.html sets the shouldHandleRunOpenPanel and
shouldPresentPopovers test options to false so that WKTR will (a) not register a
runOpenPanel UI delegate callback, causing WebKit to create a WKFileUploadPanel instead, and
(b) swizzle two UIKit view controller presentation methods to prevent the document picker
menu from being presented. The test merely wants the WKFileUploadPanel instance to exist in
order to query its available actions, not for it to show UI.

In r258092, WKFileUploadPanel now sometimes uses a UIContextMenuInteraction instance to
present the document picker menu, but -[UIContextMenuInteraction _presentMenuAtLocation:]
fails due to WKTR's above-mentioned swizzling. When this failure occurs,
UIContextMenuInteraction calls -contextMenuInteraction:willEndForConfiguration:animator: on
its delegate (the WKFileUploadPanel), which dismisses the open panel before the test has had
a chance to query the available actions.

Fixed this by swizzling -[UIContextMenuInteraction _presentMenuAtLocation:] when the
shouldPresentPopovers test option is false.

  • WebKitTestRunner/ios/TestControllerIOS.mm:

(overridePresentMenuOrPopoverOrViewController): Renamed from
overridePresentViewControllerOrPopover.
(WTR::TestController::platformResetStateToConsistentValues): Swizzled
-[UIContextMenuInteraction _presentMenuAtLocation:] with
overridePresentMenuOrPopoverOrViewController when the shouldPresentPopovers test option is
false.
(overridePresentViewControllerOrPopover): Renamed to
overridePresentMenuOrPopoverOrViewController.

6:37 PM Changeset in webkit [263193] by mark.lam@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

StructureIDTable::validate() doesn't work when compiled with GCC.
https://bugs.webkit.org/show_bug.cgi?id=213302
<rdar://problem/64452172>

Reviewed by Yusuke Suzuki.

I was previously using ensureStillAliveHere() to force the validation load to
not be elided. However, this is not how ensureStillAliveHere() works. The proper
way to force the load is to use a volatile pointer instead, which is applied in
this patch.

With Clang, the ensureStillAliveHere() happened to do what I expected, but with
GCC it did not. The compiler is at liberty to elide the load because there is
no memory clobbering operation between the load and the call to
ensureStillAliveHere(). Switching to using the volatile pointer solution.

  • runtime/StructureIDTable.h:

(JSC::StructureIDTable::validate):

4:57 PM Changeset in webkit [263192] by Beth Dakin
  • 4 edits in trunk/Source/WebKit

Remove references to blacklist/whitelist in the old C API
https://bugs.webkit.org/show_bug.cgi?id=213322

Reviewed by Tim Horton.

  • UIProcess/API/C/WKPageGroup.cpp:

(WKPageGroupAddUserStyleSheet):
(WKPageGroupAddUserScript):

  • UIProcess/API/C/WKPageGroup.h:
  • WebProcess/InjectedBundle/API/c/WKBundlePrivate.h:
4:53 PM Changeset in webkit [263191] by sbarati@apple.com
  • 2 edits in trunk/JSTests

Skip JSTests/stress/check-is-constant-non-cell-should-not-array-profile-during-osr-exit.js on memory limited devices
https://bugs.webkit.org/show_bug.cgi?id=213321

Reviewed by Mark Lam.

It uses ~1GB of memory and jetsams on iOS devices.

  • stress/check-is-constant-non-cell-should-not-array-profile-during-osr-exit.js:
4:03 PM Changeset in webkit [263190] by Alan Coon
  • 1 copy in branches/safari-609.3.5.3-branch

New branch.

4:03 PM Changeset in webkit [263189] by Alan Coon
  • 1 copy in branches/safari-609.3.5.2-branch

New branch.

4:03 PM Changeset in webkit [263188] by Alan Coon
  • 1 copy in branches/safari-609.3.5.1-branch

New branch.

4:03 PM Changeset in webkit [263187] by Alan Coon
  • 1 copy in branches/safari-609.3.5.0-branch

New branch.

3:46 PM Changeset in webkit [263186] by sihui_liu@apple.com
  • 2 edits in trunk/Tools

REGRESSION (r263044): [macOS] TestWebKitAPI.TextManipulation.InsertingContentIntoAlreadyManipulatedContentCreatesTextManipulationItem is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=213311
<rdar://problem/64456413>

Reviewed by Wenson Hsieh.

TextManipulation.InsertingContentIntoAlreadyManipulatedContentCreatesTextManipulationItem does not wait long
enough to make sure TextManipulationController gets notified about the insertion and starts observing.

  • TestWebKitAPI/Tests/WebKitCocoa/TextManipulation.mm:

(TestWebKitAPI::TEST):

3:45 PM Changeset in webkit [263185] by Alan Coon
  • 8 edits in trunk/Source

Versioning.

WebKit-610.1.18

3:31 PM Changeset in webkit [263184] by Alan Coon
  • 8 edits in branches/safari-609-branch/Source

Versioning.

WebKit-609.3.6

3:30 PM Changeset in webkit [263183] by Alan Coon
  • 1 copy in tags/Safari-609.3.5

Tag Safari-609.3.5.

3:23 PM Changeset in webkit [263182] by Alan Coon
  • 1 copy in branches/safari-610.1.17-branch

Tag Safari-610.1.17.

2:29 PM Changeset in webkit [263181] by aakash_jain@apple.com
  • 11 edits
    3 deletes in trunk/Tools

Delete code for old ews bindings queue
https://bugs.webkit.org/show_bug.cgi?id=213315

Rubber-stamped by Alexey Proskuryakov.

  • Scripts/webkitpy/common/config/ews.json:
  • Scripts/webkitpy/common/config/ports.py:

(DeprecatedPort.run_bindings_tests_command): Deleted.
(WinPort.run_bindings_tests_command): Deleted.

  • Scripts/webkitpy/common/config/ports_mock.py:

(MockPort.run_bindings_tests_command): Deleted.

  • Scripts/webkitpy/common/net/generictestresults.py: Removed.
  • Scripts/webkitpy/common/net/generictestresults_unittest.py: Removed.
  • Scripts/webkitpy/tool/bot/bindingstestresultsreader.py: Removed.
  • Scripts/webkitpy/tool/bot/patchanalysistask.py:

(PatchAnalysisTask._retry_bindings_tests): Deleted.

  • Scripts/webkitpy/tool/bot/retrylogic_unittest.py:

(MockBindingsEarlyWarningSystem): Deleted.
(MockBindingsEarlyWarningSystem.init): Deleted.
(MockBindingsEarlyWarningSystem.test_results): Deleted.
(BindingsEarlyWarningSystemTest): Deleted.
(BindingsEarlyWarningSystemTest._results_indicate_all_passed): Deleted.
(BindingsEarlyWarningSystemTest._create_task): Deleted.
(BindingsEarlyWarningSystemTest.test_success_case): Deleted.
(BindingsEarlyWarningSystemTest.test_test_failure): Deleted.
(BindingsEarlyWarningSystemTest.test_fix): Deleted.
(BindingsEarlyWarningSystemTest.test_ineffective_patch): Deleted.
(BindingsEarlyWarningSystemTest.test_partially_effective_patch): Deleted.
(BindingsEarlyWarningSystemTest.test_different_test_failures_in_patch_and_tree): Deleted.

  • Scripts/webkitpy/tool/commands/earlywarningsystem.py:
  • Scripts/webkitpy/tool/commands/earlywarningsystem_unittest.py:

(TestBindingsEWS): Deleted.
(AbstractEarlyWarningSystemTest.test_failing_bindings_tests_message): Deleted.

  • Scripts/webkitpy/tool/steps/checkpatchrelevance.py:
  • Scripts/webkitpy/tool/steps/runtests.py:

(RunTests._run_bindings_tests): Deleted.

  • Scripts/webkitpy/tool/steps/steps_unittest.py:

(test_patch_relevant_bindings): Deleted.
(test_runtests_api): Deleted.

1:23 PM Changeset in webkit [263180] by ysuzuki@apple.com
  • 3 edits
    1 add in trunk

[JSC] Freeze JSBigInt when setting it as a constant in AI
https://bugs.webkit.org/show_bug.cgi?id=213310
<rdar://problem/64450410>

Reviewed by Mark Lam.

JSTests:

  • stress/bigint-constant-fold-to-numeric.js: Added.

(foo):

Source/JavaScriptCore:

JSCells should be explicitly frozen via DFG::Graph::freeze or DFG::Graph::freezeStrong. And heap JSBigInt is JSCell.
We should freeze it before setting it as a parameter of setConstant in AI. We use DFG::Graph::freeze since we know
that this is coming from somewhere in DFG graph: this ToNumeric node itself is not newly producing this JSBigInt.

  • dfg/DFGAbstractInterpreterInlines.h:

(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):

1:09 PM Changeset in webkit [263179] by graouts@webkit.org
  • 3 edits
    8 adds in trunk

quikr.com: unable to select item from dropdown
https://bugs.webkit.org/show_bug.cgi?id=213260
<rdar://problem/58106011>

Reviewed by Zalan Bujtas.

Source/WebCore:

Only account for box-shadow when computing the background rect if the clipping element itself has non-zero used width and height.

Tests: fast/box-shadow/hit-test-box-shadow-and-margin-on-zero-height-clipping-container.html

fast/box-shadow/hit-test-box-shadow-and-margin-on-zero-width-clipping-container.html
fast/box-shadow/hit-test-box-shadow-on-zero-height-clipping-container.html
fast/box-shadow/hit-test-box-shadow-on-zero-width-clipping-container.html

  • rendering/RenderBox.cpp:

(WebCore::RenderBox::addVisualEffectOverflow):

LayoutTests:

Add two new tests that check that we correctly do not consider content within a clipping container that
has 0-width or 0-height and box-shadow, with or without empty margins.

  • fast/box-shadow/hit-test-box-shadow-and-margin-on-zero-height-clipping-container-expected.txt: Added.
  • fast/box-shadow/hit-test-box-shadow-and-margin-on-zero-height-clipping-container.html: Added.
  • fast/box-shadow/hit-test-box-shadow-and-margin-on-zero-width-clipping-container-expected.txt: Added.
  • fast/box-shadow/hit-test-box-shadow-and-margin-on-zero-width-clipping-container.html: Added.
  • fast/box-shadow/hit-test-box-shadow-on-zero-height-clipping-container-expected.txt: Added.
  • fast/box-shadow/hit-test-box-shadow-on-zero-height-clipping-container.html: Added.
  • fast/box-shadow/hit-test-box-shadow-on-zero-width-clipping-container-expected.txt: Added.
  • fast/box-shadow/hit-test-box-shadow-on-zero-width-clipping-container.html: Added.
12:52 PM Changeset in webkit [263178] by ddkilzer@apple.com
  • 4 edits in trunk/Source

Replace OptionSetTraits/OptionSetValues with EnumTraits/EnumValues
<https://webkit.org/b/213264>

Reviewed by Brent Fulgham.

Source/WebCore:

  • page/DragActions.h:

(EnumTraits<WebCore::DragDestinationAction>):

  • Rename from OptionSetTraits<WebCore::DragDestinationAction>.

(OptionSetTraits<WebCore::DragOperation>):
(OptionSetTraits<WebCore::DragSourceAction>):

  • Remove since EnumTraits<> already exist for both.

Source/WTF:

  • wtf/OptionSet.h:

(WTF::isValidOptionSetEnum):
(WTF::maskRawValue):

  • Replace OptionSetTraits<>/OptionSetValues<> with EnumTraits<>/EnumValues<>.
12:44 PM Changeset in webkit [263177] by Alexey Shvayka
  • 28 edits
    17 copies
    66 adds
    10 deletes in trunk/JSTests

Update test262 to commit 8d3dd2d1a0a5
https://bugs.webkit.org/show_bug.cgi?id=213312

Reviewed by Yusuke Suzuki.

  • test262/expectations.yaml:
  • test262/latest-changes-summary.txt:
  • test262/test/*: Updated.
  • test262/test262-Revision.txt:
12:07 PM Changeset in webkit [263176] by dino@apple.com
  • 1 edit in trunk/Source/ThirdParty/ANGLE/ANGLE.xcodeproj/project.pbxproj

Another build fix for iOS.

This time for the new build system, which
wasn't running a custom rule for exported header files.

  • ANGLE.xcodeproj/project.pbxproj:
11:55 AM Changeset in webkit [263175] by ggaren@apple.com
  • 3 edits in trunk/Source/WebCore

media/remoteplayback-target-availability.html was a flaky failure after r262904
https://bugs.webkit.org/show_bug.cgi?id=213294

Reviewed by Sam Weinig.

AirPlay availability is a global that depends on a timer (and/or an
external piece of hardware). Therefore, the first value RemotePlayback
sees for AirPlay availability, while usually 'unavailable', is sometimes
'available'. Flaky!

In this case, media/remoteplayback-prompt.html triggered an AirPlay
availability check, and then media/remoteplayback-target-availability.html,
if run in the same process, sometimes saw 'available' as its initial
availability state.

Make RemotePlayback's initial availability state deterministic by
recording availability state at the time we enqueue our task, rather
than at the time we dequeue our task. (By specification and
implementation, RemotePlayback's initial availability state is always
'unavailable', regardless of AirPlay state.) This is OK to do because,
if the state ever changes after we enqueue our task, we'll get an update
notification and enqueue a new task.

  • Modules/remoteplayback/RemotePlayback.cpp:

(WebCore::RemotePlayback::watchAvailability): Copy the availability
state when we enqueue our task, and do not update it when we dequeue our
task. This is the heart of the bug fix.

Make sure to manually update availability state when we first register
to monitor availability, since we never got an update notification for
the current state.

(WebCore::RemotePlayback::prompt): For consistency with
watchAvailability, do not update availability state when we dequeue our
task. (This means that prompting before watching availability is always
an error, which is fine, and consistent with the spec, which says, "If
the user agent stops monitoring the list of available remote playback
devices... It SHOULD also set the availability value for all media
elements to false.")

Make sure to manually update availability state when we first register
to monitor availability, since we never got an update notification for
the current state.

(WebCore::RemotePlayback::availabilityChanged): For consistency with
watchAvailability, do not update availability state when we dequeue our
task.

(WebCore::RemotePlayback::updateAvailability): Deleted. We never
synchronously update our state anymore. All state changes are queued and
processed in order.

  • Modules/remoteplayback/RemotePlayback.h:
11:40 AM Changeset in webkit [263174] by keith_miller@apple.com
  • 3 edits
    2 adds in trunk

$vm.haveABadTime/isHavingABadTime should work with non-globalObject parameters
https://bugs.webkit.org/show_bug.cgi?id=213304

Reviewed by Mark Lam.

JSTests:

  • stress/dollarVM-have-a-bad-time-no-params.js: Added.
  • stress/dollarVM-have-a-bad-time-works-for-non-global-object-params.js: Added.

Source/JavaScriptCore:

Previously, $vm.haveABadTime would crash if passed a
non-globalObject object as the first parameter because it was
missing a return in front the error handling case. This patch
resolves that issue but also extends the semantics of
haveABadTime/isHavingABadTime to either use the global object of
the first parameter even if it's not a JSGlobalObject. If no
argument is passed, haveABadTime/isHavingABadTime instead use the
global object of the callee.

  • tools/JSDollarVM.cpp:

(JSC::functionHaveABadTime):
(JSC::functionIsHavingABadTime):

11:38 AM Changeset in webkit [263173] by mark.lam@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Gardening: move some unused data inside ENABLE(JIT) to unbreak the CLoop build.
https://bugs.webkit.org/show_bug.cgi?id=213255

Not reviewed.

  • assembler/testmasm.cpp:
11:29 AM Changeset in webkit [263172] by dino@apple.com
  • 1 edit in trunk/Source/ThirdParty/ANGLE/src/libANGLE/renderer/gl/cgl/ContextCGL.cpp

Fix iOS build.

  • src/libANGLE/renderer/gl/cgl/ContextCGL.cpp:
11:25 AM Changeset in webkit [263171] by Kate Cheney
  • 2 edits in trunk/LayoutTests

http/tests/in-app-browser-privacy/non-app-bound-domain-does-not-get-app-bound-session.html is a constant failure
https://bugs.webkit.org/show_bug.cgi?id=213272
<rdar://problem/64427778>

Reviewed by David Kilzer.

Before a navigation occurs, an app-bound network session is created
by default. If any non-app bound navigations occur, a new session is
created. Since this test only checks for the existance of an app-bound
session, it should clear the app-bound session after the initial load
to properly test functionality.

  • http/tests/in-app-browser-privacy/non-app-bound-domain-does-not-get-app-bound-session.html:
11:23 AM Changeset in webkit [263170] by Russell Epstein
  • 1 copy in tags/Safari-610.1.15.51.4

Tag Safari-610.1.15.51.4.

11:16 AM Changeset in webkit [263169] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit

Null check plugin.m_data before using it in PDFPlugin::ByteRangeRequest::completeUnconditionally
https://bugs.webkit.org/show_bug.cgi?id=213305
<rdar://problem/60349279>

Patch by Alex Christensen <achristensen@webkit.org> on 2020-06-17
Reviewed by Brady Eidson.

  • WebProcess/Plugins/PDF/PDFPlugin.mm:

(WebKit::PDFPlugin::ByteRangeRequest::completeUnconditionally):

11:07 AM Changeset in webkit [263168] by aakash_jain@apple.com
  • 3 edits
    1 delete in trunk/Tools

Delete code for old ews style queue
https://bugs.webkit.org/show_bug.cgi?id=213297

Rubber-stamped by Alexey Proskuryakov.

  • Scripts/webkitpy/tool/bot/stylequeuetask.py: Removed.
  • Scripts/webkitpy/tool/commands/queues.py:

(StyleQueue): Deleted.
(StyleQueue.init): Deleted.
(StyleQueue.review_patch): Deleted.
(StyleQueue.run_command): Deleted.
(StyleQueue.expected_failures): Deleted.
(StyleQueue.refetch_patch): Deleted.

  • Scripts/webkitpy/tool/commands/queues_unittest.py:

(TestReviewQueue): Deleted.

10:56 AM Changeset in webkit [263167] by commit-queue@webkit.org
  • 11 edits
    4 adds
    1 delete in trunk

Image referrerpolicy mutations should be considered "relevant mutations"
https://bugs.webkit.org/show_bug.cgi?id=209970

Patch by Rob Buis <rbuis@igalia.com> on 2020-06-17
Reviewed by Youenn Fablet.

LayoutTests/imported/w3c:

Import latest version of relevant-mutations.html.
Because original-referrer-policy-applied.sub.html is older and assumes referrerpolicy is not a relevant
mutation, remove it and replace it by imported image-loading-lazy-referrerpolicy-change.sub.html.

  • web-platform-tests/html/semantics/embedded-content/resources/common.js: Added.

(ElementLoadPromise):
(ElementLoadPromise.prototype.element):
(is_image_fully_loaded):

  • web-platform-tests/html/semantics/embedded-content/the-img-element/image-loading-lazy-referrerpolicy-change.sub-expected.txt: Added.
  • web-platform-tests/html/semantics/embedded-content/the-img-element/image-loading-lazy-referrerpolicy-change.sub.html: Added.
  • web-platform-tests/html/semantics/embedded-content/the-img-element/original-referrer-policy-applied.sub.html: Removed.
  • web-platform-tests/html/semantics/embedded-content/the-img-element/relevant-mutations-expected.txt: Added.
  • web-platform-tests/html/semantics/embedded-content/the-img-element/relevant-mutations.html:

Source/WebCore:

Make referrerpolicy state changes a relevant mutation [1]. In order to indicate
that we are dealing with a relevant mutation add an enum to updateFromElement, in
order to run "update the image data" algorithm [2] in case it is a relevant mutation.

Tests: imported/w3c/web-platform-tests/html/semantics/embedded-content/the-img-element/relevant-mutations.html

imported/w3c/web-platform-tests/html/semantics/embedded-content/the-img-element/image-loading-lazy-referrerpolicy-change.sub.html

[1] https://html.spec.whatwg.org/#reacting-to-dom-mutations:attr-img-referrerpolicy
[2] https://html.spec.whatwg.org/#when-to-obtain-images

  • html/HTMLImageElement.cpp:

(WebCore::HTMLImageElement::attributeChanged):

  • html/HTMLImageElement.h:
  • loader/ImageLoader.cpp:

(WebCore::ImageLoader::updateFromElement):
(WebCore::ImageLoader::updateFromElementIgnoringPreviousError):
(WebCore::ImageLoader::loadDeferredImage):

  • loader/ImageLoader.h:

LayoutTests:

Unskip relevant-mutations.html.

  • TestExpectations:
  • platform/mac-wk1/TestExpectations:
  • platform/win/TestExpectations:
10:47 AM Changeset in webkit [263166] by aakash_jain@apple.com
  • 9 edits
    1 delete in trunk/Tools

Delete code for old ews webkitpy queue
https://bugs.webkit.org/show_bug.cgi?id=213299

Reviewed by Jonathan Bedard.

  • Scripts/webkitpy/common/config/ews.json:
  • Scripts/webkitpy/common/net/generictestresults.py:

(WebkitpyTestResults): Deleted.

  • Scripts/webkitpy/tool/bot/patchanalysistask.py:
  • Scripts/webkitpy/tool/bot/webkitpytestresultsreader.py: Removed.
  • Scripts/webkitpy/tool/commands/earlywarningsystem.py:
  • Scripts/webkitpy/tool/commands/earlywarningsystem_unittest.py:

(TestWebkitpyEWS): Deleted.
(AbstractEarlyWarningSystemTest.test_failing_webkitpy_tests_message): Deleted.

  • Scripts/webkitpy/tool/steps/checkpatchrelevance.py:
  • Scripts/webkitpy/tool/steps/runtests.py:

(RunTests._run_webkitpy_tests): Deleted.

  • Scripts/webkitpy/tool/steps/steps_unittest.py:

(test_runtests_webkitpy): Deleted.
(test_patch_not_relevant_bindings): Deleted.
(test_runtests_api_debug): Deleted.

10:31 AM Changeset in webkit [263165] by ysuzuki@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Unreviewed, avoid node access in link-task
https://bugs.webkit.org/show_bug.cgi?id=213266
<rdar://problem/64453001>

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileCheckJSCast):

10:28 AM Changeset in webkit [263164] by keith_miller@apple.com
  • 3 edits
    2 adds in trunk

WebKitTestRunner should not crash on alert with invalid utf16 strings
https://bugs.webkit.org/show_bug.cgi?id=213269

Reviewed by Simon Fraser.

Tools:

  • WebKitTestRunner/StringFunctions.h:

(WTR::toWTFString):

LayoutTests:

  • fast/dom/Window/alert-with-unmatched-utf16-surrogate-should-not-crash-expected.txt: Added.
  • fast/dom/Window/alert-with-unmatched-utf16-surrogate-should-not-crash.html: Added.
10:23 AM Changeset in webkit [263163] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

Unreviewed attempt to fix internal macOS build after r263157.

  • rendering/RenderThemeMac.mm:
10:10 AM Changeset in webkit [263162] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

REGRESSION (r263098): [Win10] http/tests/security/cross-origin-clean-css-resource-timing.html and http/tests/security/cross-origin-css-resource-timing.html are failing
https://bugs.webkit.org/show_bug.cgi?id=213303

Unreviewed test gardening.

  • platform/win/TestExpectations: Mark tests as failing.
10:06 AM Changeset in webkit [263161] by Alan Coon
  • 3 edits in branches/safari-609-branch/Source/ThirdParty/libwebrtc

Cherry-pick r263154. rdar://problem/64452498

Improve SCTP cookie generation
https://bugs.webkit.org/show_bug.cgi?id=213284
<rdar://problem/64438133>

Reviewed by Eric Carlson.

  • Source/webrtc/media/sctp/sctp_transport.cc:
  • Source/webrtc/media/sctp/sctp_transport.h:

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

9:56 AM Changeset in webkit [263160] by weinig@apple.com
  • 172 edits in trunk/Source/WebCore

Use constructor operations in WebIDL
https://bugs.webkit.org/show_bug.cgi?id=201397

Reviewed by Eric Carlson.

Add support for constructor syntax in WebIDL (https://heycam.github.io/webidl/#idl-constructors)

  • [Constructor(...)] extended attributes become constructor(...) operations
  • [JSBuiltinConstructor] becomes [JSBuiltin] constructor(...)
  • [CustomConstructor] becomes [Custom] constructor(...)
  • [ConstructorMayThrowException] becomes [MayThrowException] constructor(...) and can now be unique per-overload
  • [ConstructorCallWith=Foo] becomes [CallWith=Foo] constructor(...) and can now also be unique per-overload

This change leaves NamedConstructor as is, but a subsequent change will replace it with the
specified LegacyFactoryFunction extended attribute.

  • Modules/airplay/WebKitPlaybackTargetAvailabilityEvent.idl:
  • Modules/applepay/ApplePayError.idl:
  • Modules/applepay/ApplePaySession.idl:
  • Modules/applepay/ApplePaySetup.idl:
  • Modules/async-clipboard/ClipboardItem.idl:
  • Modules/encryptedmedia/MediaKeyMessageEvent.idl:
  • Modules/encryptedmedia/legacy/WebKitMediaKeyMessageEvent.idl:
  • Modules/encryptedmedia/legacy/WebKitMediaKeyNeededEvent.idl:
  • Modules/encryptedmedia/legacy/WebKitMediaKeys.idl:
  • Modules/fetch/FetchHeaders.idl:
  • Modules/fetch/FetchRequest.idl:
  • Modules/fetch/FetchResponse.idl:
  • Modules/gamepad/GamepadEvent.idl:
  • Modules/highlight/HighlightMap.idl:
  • Modules/highlight/HighlightRangeGroup.idl:
  • Modules/indexeddb/IDBVersionChangeEvent.idl:
  • Modules/mediarecorder/BlobEvent.idl:
  • Modules/mediarecorder/MediaRecorder.idl:
  • Modules/mediarecorder/MediaRecorderErrorEvent.idl:
  • Modules/mediasession/MediaRemoteControls.idl:
  • Modules/mediasession/MediaSession.idl:
  • Modules/mediasource/MediaSource.idl:
  • Modules/mediastream/MediaStream.idl:
  • Modules/mediastream/MediaStreamTrackEvent.idl:
  • Modules/mediastream/OverconstrainedError.idl:
  • Modules/mediastream/OverconstrainedErrorEvent.idl:
  • Modules/mediastream/RTCDTMFToneChangeEvent.idl:
  • Modules/mediastream/RTCDataChannelEvent.idl:
  • Modules/mediastream/RTCIceCandidate.idl:
  • Modules/mediastream/RTCPeerConnection.idl:
  • Modules/mediastream/RTCPeerConnectionIceEvent.idl:
  • Modules/mediastream/RTCSessionDescription.idl:
  • Modules/mediastream/RTCTrackEvent.idl:
  • Modules/notifications/Notification.idl:
  • Modules/paymentrequest/MerchantValidationEvent.idl:
  • Modules/paymentrequest/PaymentMethodChangeEvent.idl:
  • Modules/paymentrequest/PaymentRequest.idl:
  • Modules/paymentrequest/PaymentRequestUpdateEvent.idl:
  • Modules/pictureinpicture/EnterPictureInPictureEvent.idl:
  • Modules/speech/SpeechSynthesisUtterance.idl:
  • Modules/streams/ByteLengthQueuingStrategy.idl:
  • Modules/streams/CountQueuingStrategy.idl:
  • Modules/streams/ReadableByteStreamController.idl:
  • Modules/streams/ReadableStream.idl:
  • Modules/streams/ReadableStreamBYOBReader.idl:
  • Modules/streams/ReadableStreamBYOBRequest.idl:
  • Modules/streams/ReadableStreamDefaultController.idl:
  • Modules/streams/ReadableStreamDefaultReader.idl:
  • Modules/streams/WritableStream.idl:
  • Modules/webaudio/AudioContext.idl:
  • Modules/webaudio/OfflineAudioContext.idl:
  • Modules/webgpu/GPUOutOfMemoryError.idl:
  • Modules/webgpu/GPUUncapturedErrorEvent.idl:
  • Modules/webgpu/GPUValidationError.idl:
  • Modules/websockets/CloseEvent.idl:
  • Modules/websockets/WebSocket.idl:
  • Modules/webxr/WebXRRigidTransform.idl:
  • Modules/webxr/WebXRWebGLLayer.idl:
  • Modules/webxr/XRInputSourceEvent.idl:
  • Modules/webxr/XRInputSourcesChangeEvent.idl:
  • Modules/webxr/XRReferenceSpaceEvent.idl:
  • Modules/webxr/XRSessionEvent.idl:
  • animation/AnimationPlaybackEvent.idl:
  • animation/DocumentTimeline.idl:
  • animation/KeyframeEffect.idl:
  • animation/WebAnimation.idl:
  • bindings/scripts/CodeGeneratorJS.pm:

(ShouldGenerateToJSDeclaration):
(GetFullyQualifiedImplementationCallName):
(GenerateParametersCheck):
(GetConstructorTemplateClassName):
(GenerateConstructorDefinition):
(GenerateConstructorHelperMethods):
(HasCustomConstructor):
(IsConstructable):
(HasJSBuiltinConstructor):
(AddJSBuiltinIncludesIfNeeded):
(IsJSBuiltinConstructor): Deleted.

  • bindings/scripts/IDLAttributes.json:
  • bindings/scripts/IDLParser.pm:

(assertExtendedAttributesValidForContext):
(copyExtendedAttributes):
(cloneOperation):
(applyTypedefs):
(parseInterfaceMember):
(parseConstructor):
(parseExtendedAttributeRest):
(applyMemberList):
(applyExtendedAttributeList):

  • bindings/scripts/test/JS/JSTestInterface.cpp:
  • bindings/scripts/test/JS/JSTestNamedConstructor.cpp:

(WebCore::JSTestNamedConstructorConstructor::initializeProperties):
(WebCore::JSTestNamedConstructorNamedConstructor::construct):
(WebCore::JSTestNamedConstructorNamedConstructor::initializeProperties):

  • bindings/scripts/test/TestClassWithJSBuiltinConstructor.idl:
  • bindings/scripts/test/TestEventConstructor.idl:
  • bindings/scripts/test/TestInterface.idl:
  • bindings/scripts/test/TestJSBuiltinConstructor.idl:
  • bindings/scripts/test/TestNamedConstructor.idl:
  • bindings/scripts/test/TestNode.idl:
  • bindings/scripts/test/TestObj.idl:
  • bindings/scripts/test/TestOverloadedConstructors.idl:
  • bindings/scripts/test/TestOverloadedConstructorsWithSequence.idl:
  • bindings/scripts/test/TestPromiseRejectionEvent.idl:
  • bindings/scripts/test/TestTypedefs.idl:
  • css/DOMMatrix.idl:
  • css/DOMMatrixReadOnly.idl:
  • css/FontFace.idl:
  • css/FontFaceSet.idl:
  • css/MediaQueryListEvent.idl:
  • css/WebKitCSSMatrix.idl:
  • css/typedom/TypedOMCSSUnitValue.idl:
  • css/typedom/TypedOMCSSUnparsedValue.idl:
  • dom/AbortController.idl:
  • dom/AnimationEvent.idl:
  • dom/BeforeLoadEvent.idl:
  • dom/ClipboardEvent.idl:
  • dom/Comment.idl:
  • dom/CompositionEvent.idl:
  • dom/CustomEvent.idl:
  • dom/DOMException.idl:
  • dom/DOMPoint.idl:
  • dom/DOMPointReadOnly.idl:
  • dom/DOMQuad.idl:
  • dom/DOMRect.idl:
  • dom/DOMRectReadOnly.idl:
  • dom/Document.idl:
  • dom/DocumentFragment.idl:
  • dom/DragEvent.idl:
  • dom/ErrorEvent.idl:
  • dom/Event.idl:
  • dom/EventTarget.idl:
  • dom/FocusEvent.idl:
  • dom/HashChangeEvent.idl:
  • dom/InputEvent.idl:
  • dom/KeyboardEvent.idl:
  • dom/MessageChannel.idl:
  • dom/MessageEvent.idl:
  • dom/MouseEvent.idl:
  • dom/MutationObserver.idl:
  • dom/OverflowEvent.idl:
  • dom/PageTransitionEvent.idl:
  • dom/PointerEvent.idl:
  • dom/PopStateEvent.idl:
  • dom/ProgressEvent.idl:
  • dom/PromiseRejectionEvent.idl:
  • dom/Range.idl:
  • dom/SecurityPolicyViolationEvent.idl:
  • dom/StaticRange.idl:
  • dom/Text.idl:
  • dom/TextDecoder.idl:
  • dom/TextEncoder.idl:
  • dom/TransitionEvent.idl:
  • dom/UIEvent.idl:
  • dom/WebKitAnimationEvent.idl:
  • dom/WebKitTransitionEvent.idl:
  • dom/WheelEvent.idl:
  • fileapi/Blob.idl:
  • fileapi/File.idl:
  • fileapi/FileReader.idl:
  • fileapi/FileReaderSync.idl:
  • html/DOMFormData.idl:
  • html/DOMURL.idl:
  • html/HTMLElement.idl:
  • html/HTMLOptionElement.idl:
  • html/ImageData.idl:
  • html/MediaController.idl:
  • html/MediaEncryptedEvent.idl:
  • html/OffscreenCanvas.idl:
  • html/URLSearchParams.idl:
  • html/canvas/Path2D.idl:
  • html/canvas/WebGLContextEvent.idl:
  • html/track/DataCue.idl:
  • html/track/TextTrackCue.idl:
  • html/track/TrackEvent.idl:
  • html/track/VTTCue.idl:
  • html/track/VTTRegion.idl:
  • page/EventSource.idl:
  • page/IntersectionObserver.idl:
  • page/IntersectionObserverEntry.idl:
  • page/PerformanceObserver.idl:
  • page/ResizeObserver.idl:
  • page/UndoItem.idl:
  • page/WebKitPoint.idl:
  • storage/StorageEvent.idl:
  • workers/Worker.idl:
  • workers/service/ExtendableEvent.idl:
  • workers/service/ExtendableMessageEvent.idl:
  • workers/service/FetchEvent.idl:
  • xml/DOMParser.idl:
  • xml/XMLHttpRequest.idl:
  • xml/XMLSerializer.idl:
  • xml/XPathEvaluator.idl:
  • xml/XSLTProcessor.idl:
9:55 AM Changeset in webkit [263159] by Alan Bujtas
  • 2 edits in trunk/LayoutTests

[Win] Unreviewed test gardening.

  • platform/win/TestExpectations:
9:54 AM Changeset in webkit [263158] by aestes@apple.com
  • 2 edits in trunk/Source/WebCore/PAL

Another unreviewed build fix after r263150

  • pal/spi/cocoa/PassKitSPI.h:
9:51 AM Changeset in webkit [263157] by commit-queue@webkit.org
  • 42 edits
    2 copies
    1 add in trunk

IndexedDB: Support IDBFactory databases method
https://bugs.webkit.org/show_bug.cgi?id=211043

Patch by Darryl Pogue <darryl@dpogue.ca> on 2020-06-17
Reviewed by Youenn Fablet.

LayoutTests/imported/w3c:

Adjust test expectations for IDBFactory.prototype.databases().

  • web-platform-tests/IndexedDB/get-databases.any-expected.txt:
  • web-platform-tests/IndexedDB/get-databases.any.worker-expected.txt:
  • web-platform-tests/IndexedDB/idbfactory-databases-opaque-origin-expected.txt:
  • web-platform-tests/IndexedDB/idbfactory-origin-isolation-expected.txt:
  • web-platform-tests/IndexedDB/idlharness.any-expected.txt:
  • web-platform-tests/IndexedDB/idlharness.any.worker-expected.txt:

Source/WebCore:

Add support for fetching the list of IDB database names and versions
from the IDBServer, and expose the functionality as
IDBFactory.prototype.databases().

Spec: https://w3c.github.io/IndexedDB/#dom-idbfactory-databases

  • Headers.cmake:
  • Modules/indexeddb/IDBActiveDOMObject.h:

(WebCore::IDBActiveDOMObject::performCallbackOnOriginThread):

  • Modules/indexeddb/IDBDatabaseNameAndVersionRequest.cpp: Added.

(WebCore::IDBDatabaseNameAndVersionRequest::create):
(WebCore::IDBDatabaseNameAndVersionRequest::IDBDatabaseNameAndVersionRequest):
(WebCore::IDBDatabaseNameAndVersionRequest::~IDBDatabaseNameAndVersionRequest):
(WebCore::IDBDatabaseNameAndVersionRequest::complete):
(WebCore::IDBDatabaseNameAndVersionRequest::activeDOMObjectName const):
(WebCore::IDBDatabaseNameAndVersionRequest::virtualHasPendingActivity const):
(WebCore::IDBDatabaseNameAndVersionRequest::stop):

  • Modules/indexeddb/IDBDatabaseNameAndVersionRequest.h: Added.
  • Modules/indexeddb/IDBFactory.cpp:

(WebCore::IDBFactory::databases):
(WebCore::IDBFactory::getAllDatabaseNames):

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

(WebCore::IDBClient::IDBConnectionProxy::connectionToServerLost):
(WebCore::IDBClient::IDBConnectionProxy::getAllDatabaseNamesAndVersions):
(WebCore::IDBClient::IDBConnectionProxy::didGetAllDatabaseNamesAndVersions):
(WebCore::IDBClient::IDBConnectionProxy::forgetActivityForCurrentThread):
(WebCore::IDBClient::IDBConnectionProxy::getAllDatabaseNames): Deleted.

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

(WebCore::IDBClient::IDBConnectionToServer::getAllDatabaseNamesAndVersions):
(WebCore::IDBClient::IDBConnectionToServer::didGetAllDatabaseNamesAndVersions):
(WebCore::IDBClient::IDBConnectionToServer::getAllDatabaseNames): Deleted.
(WebCore::IDBClient::IDBConnectionToServer::didGetAllDatabaseNames): Deleted.

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

(WebCore::IDBServer::IDBConnectionToClient::didGetAllDatabaseNamesAndVersions):
(WebCore::IDBServer::IDBConnectionToClient::didGetAllDatabaseNames): Deleted.

  • Modules/indexeddb/server/IDBConnectionToClient.h:
  • Modules/indexeddb/server/IDBConnectionToClientDelegate.h:
  • Modules/indexeddb/server/IDBServer.cpp:

(WebCore::IDBServer::IDBServer::getAllDatabaseNamesAndVersions):
(WebCore::IDBServer::IDBServer::getAllDatabaseNames): Deleted.

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

(WebCore::IDBServer::SQLiteIDBBackingStore::databaseNameAndVersionFromFile):
(WebCore::IDBServer::SQLiteIDBBackingStore::databaseNameFromFile): Deleted.

  • Modules/indexeddb/server/SQLiteIDBBackingStore.h:
  • Modules/indexeddb/shared/IDBDatabaseNameAndVersion.h: Added.

(WebCore::IDBDatabaseNameAndVersion::encode const):
(WebCore::IDBDatabaseNameAndVersion::decode):
(WebCore::IDBDatabaseNameAndVersion::isolatedCopy const):

  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • inspector/agents/InspectorIndexedDBAgent.cpp:

(WebCore::InspectorIndexedDBAgent::requestDatabaseNames):

  • loader/EmptyClients.cpp:

Source/WebKit:

Plumbing for returning a list of IDB databases and versions.

  • NetworkProcess/IndexedDB/WebIDBConnectionToClient.cpp:

(WebKit::WebIDBConnectionToClient::didGetAllDatabaseNamesAndVersions):
(WebKit::WebIDBConnectionToClient::didGetAllDatabaseNames): Deleted.

  • NetworkProcess/IndexedDB/WebIDBConnectionToClient.h:
  • NetworkProcess/IndexedDB/WebIDBServer.cpp:

(WebKit::WebIDBServer::getAllDatabaseNamesAndVersions):
(WebKit::WebIDBServer::getAllDatabaseNames): Deleted.

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

(WebKit::WebIDBConnectionToServer::getAllDatabaseNamesAndVersions):
(WebKit::WebIDBConnectionToServer::didGetAllDatabaseNamesAndVersions):
(WebKit::WebIDBConnectionToServer::getAllDatabaseNames): Deleted.
(WebKit::WebIDBConnectionToServer::didGetAllDatabaseNames): Deleted.

  • WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.h:
  • WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.messages.in:

Source/WebKitLegacy:

Plumbing for returning a list of IDB databases and versions.

  • Storage/InProcessIDBServer.cpp:

(InProcessIDBServer::getAllDatabaseNamesAndVersions):
(InProcessIDBServer::didGetAllDatabaseNamesAndVersions):
(InProcessIDBServer::getAllDatabaseNames): Deleted.
(InProcessIDBServer::didGetAllDatabaseNames): Deleted.

  • Storage/InProcessIDBServer.h:
9:42 AM Changeset in webkit [263156] by weinig@apple.com
  • 8 edits in trunk

[WPT] infrastructure/assumptions/html-elements.html fails due to changes in style when all: initial is used
https://bugs.webkit.org/show_bug.cgi?id=213171

Reviewed by Antti Koivisto.

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-cascade/all-prop-initial-xml-expected.txt:
  • web-platform-tests/infrastructure/assumptions/html-elements-expected.txt:

Update test results.

Source/WebCore:

Update existing test results that now pass.

  • css/CSSProperties.json:

Use initialStrokeColor (the default) rather than hardcoding the incorrect currentColor. The spec (and initialStrokeColor)
say this should be transparent.

  • style/StyleBuilderCustom.h:

(WebCore::Style::ApplyPropertyBorderImageModifier::applyInitialValue):
Match the mask image NinePieceImage constructor, and set fill to true for mask image slices.

LayoutTests:

  • platform/ios/imported/w3c/web-platform-tests/css/css-cascade/all-prop-initial-xml-expected.txt:

Update test results.

9:24 AM Changeset in webkit [263155] by Alan Bujtas
  • 3 edits in trunk/Source/WebCore

[LFC][Float] Move float avoiders' final position compute next to when the static position is computed
https://bugs.webkit.org/show_bug.cgi?id=213250

Reviewed by Antti Koivisto.

Now that the float avoider's final position has no dependecy on the computed height, we can
move it all the way up, next to where we computed the static position.

  • layout/blockformatting/BlockFormattingContext.cpp:

(WebCore::Layout::BlockFormattingContext::layoutInFlowContent):
(WebCore::Layout::BlockFormattingContext::computePositionToAvoidFloats):
(WebCore::Layout::BlockFormattingContext::computeHeightAndMargin):
(WebCore::Layout::BlockFormattingContext::precomputeVerticalPositionForAncestors): Deleted.

  • layout/blockformatting/BlockFormattingContext.h:
9:24 AM Changeset in webkit [263154] by youenn@apple.com
  • 3 edits in trunk/Source/ThirdParty/libwebrtc

Improve SCTP cookie generation
https://bugs.webkit.org/show_bug.cgi?id=213284
<rdar://problem/64438133>

Reviewed by Eric Carlson.

  • Source/webrtc/media/sctp/sctp_transport.cc:
  • Source/webrtc/media/sctp/sctp_transport.h:
9:23 AM Changeset in webkit [263153] by graouts@webkit.org
  • 5 edits
    2 adds in trunk

[Modern Media Controls] CSS "cursor" property shoud be respected in media controls shadow root
https://bugs.webkit.org/show_bug.cgi?id=213295
<rdar://problem/61911638>

Reviewed by Timothy Hatcher.

Source/WebCore:

Allow the "cursor" property to be inherited in the media controls shadow root, but still overriden
for interactive objects in the media controls as well as placard text.

Test: media/modern-media-controls/css/cursor.html

  • Modules/modern-media-controls/controls/controls-bar.css:

(.controls-bar):

  • Modules/modern-media-controls/controls/media-controls.css:

(.media-controls-container):
(.media-controls):

  • Modules/modern-media-controls/controls/placard.css:

(.placard .title,):

LayoutTests:

Add a test that checks that setting the "cursor" property on a <video> element also applies to the
media controls in the element's shadow root.

  • media/modern-media-controls/css/cursor-expected.txt: Added.
  • media/modern-media-controls/css/cursor.html: Added.
9:17 AM Changeset in webkit [263152] by aestes@apple.com
  • 2 edits in trunk/Source/WebCore/PAL

Unreviewed build fix after r263150

  • pal/spi/cocoa/PassKitSPI.h:
8:59 AM Changeset in webkit [263151] by mark.lam@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

Add a shiftAndAdd() emitter in AssemblyHelpers.
https://bugs.webkit.org/show_bug.cgi?id=213255

Reviewed by Michael Saboff.

void shiftAndAdd(RegisterID base, RegisterID index, uint8_t shift, RegisterID dest, Optional<RegisterID> = { });

Emits code to compute: dest = base + index << shift.

  • assembler/testmasm.cpp:

(doubleOperands):
(floatOperands):
(int32Operands):
(int64Operands):
(JSC::testShiftAndAdd):
(JSC::run):
(JSC::doubleOperands): Deleted.
(JSC::floatOperands): Deleted.
(JSC::int32Operands): Deleted.
(JSC::int64Operands): Deleted.

  • jit/AssemblyHelpers.h:

(JSC::AssemblyHelpers::shiftAndAdd):

8:55 AM Changeset in webkit [263150] by aestes@apple.com
  • 30 edits
    2 copies
    1 add in trunk

[Apple Pay] Enable layout tests on more platforms
https://bugs.webkit.org/show_bug.cgi?id=212955
<rdar://problem/64174156>

Reviewed by Alex Christensen.

Source/WebCore:

Added runtime checks to determine the Apple Pay API version when installments are enabled.

Enabled tests in http/tests/ssl/applepay on iOS.

  • Modules/applepay/ApplePayInstallmentConfiguration.idl:
  • Modules/applepay/ApplePayInstallmentConfigurationWebCore.h:
  • Modules/applepay/ApplePayInstallmentItem.h:
  • Modules/applepay/ApplePayInstallmentItem.idl:
  • Modules/applepay/ApplePayInstallmentItemType.h:
  • Modules/applepay/ApplePayInstallmentItemType.idl:
  • Modules/applepay/ApplePayInstallmentRetailChannel.h:
  • Modules/applepay/ApplePayInstallmentRetailChannel.idl: Removed uses of

APPLE_PAY_INSTALLMENT_IDENTIFIERS and APPLE_PAY_INSTALLMENT_ITEMS (or replaced with
APPLE_PAY_INSTALLMENTS).

  • Modules/applepay/PaymentAPIVersion.h:
  • Modules/applepay/cocoa/PaymentAPIVersionCocoa.mm:

(WebCore::PaymentAPIVersion::current): Moved the computation of current API version from
PaymentCoordinatorClient::supportsVersion to here. Added runtime checks to determine the
level of PassKit installments support since we don't have enough information to tell at
compile time.

  • Modules/applepay/PaymentCoordinatorClient.cpp:

(WebCore::PaymentCoordinatorClient::supportsVersion): Changed to call
PaymentAPIVersion::current.

  • Modules/applepay/PaymentInstallmentConfiguration.mm:

(WebCore::makeNSArrayElement):
(WebCore::createPlatformConfiguration):
(WebCore::PaymentInstallmentConfiguration::create):
(WebCore::PaymentInstallmentConfiguration::applePayInstallmentConfiguration const): Removed
uses of HAVE_PASSKIT_INSTALLMENT_ITEMS and HAVE_PASSKIT_INSTALLMENT_IDENTIFIERS. Used
runtime checks to determine support for PKPaymentInstallmentConfiguration and
PKPaymentInstallmentItem.

  • SourcesCocoa.txt:
  • WebCore.xcodeproj/project.pbxproj: Added source files for PaymentAPIVersion.

Source/WebCore/PAL:

PassKit added SPIs for Apple Pay installments over a series of iOS 13 and macOS Catalina
minor updates. WebKit trunk is still built across a range of iOS 13 and macOS Catalina minor
update SDKs that contain none, some, or all of the installment SPIs. It's not possible to
reliably detect the SDK minor version at compile-time, so instead we now use our own SPI
declarations unless we know all minor versions of the major SDK version contain all of the
installments definitions.

  • PAL.xcodeproj/project.pbxproj: Added PassKitInstallmentsSPI.h.
  • pal/cocoa/PassKitSoftLink.h:
  • pal/cocoa/PassKitSoftLink.mm: Used SOFT_LINK_CLASS_FOR_SOURCE_OPTIONAL_WITH_EXPORT on both

Mac and iOS to soft-link PKPaymentInstallmentConfiguration and PKPaymentInstallmentItem.

  • pal/spi/cocoa/PassKitInstallmentSPI.h: Added. When building against an SDK that is known

to declare the PassKit installments SPIs, this file includes the SPI headers. Otherwise, it
declares the SPIs.

  • pal/spi/cocoa/PassKitSPI.h: Moved PassKit installments SPI declarations to

PassKitInstallmentSPI.h.

Source/WTF:

  • wtf/PlatformEnableCocoa.h: Removed ENABLE_APPLE_PAY_INSTALLMENT_IDENTIFIERS,

ENABLE_APPLE_PAY_INSTALLMENT_ITEMS, ENABLE_APPLE_PAY_SESSION_V8,
ENABLE_APPLE_PAY_SESSION_V9, and ENABLE_APPLE_PAY_SESSION_V10.

  • wtf/PlatformHave.h: Removed HAVE_PASSKIT_INSTALLMENT_IDENTIFIERS and corrected iOS version

checks for HAVE_PASSKIT_INSTALLMENTS.

LayoutTests:

  • http/tests/ssl/applepay/ApplePayInstallmentItems.https.html: Changed to fail instead of

time out when API version 9 isn't supported.

  • http/tests/ssl/applepay/ApplePayError.html:
  • http/tests/ssl/applepay/ApplePaySession.html:
  • http/tests/ssl/applepay/ApplePaySessionV3.html:
  • http/tests/ssl/applepay/ApplePaySessionV4.html:
  • http/tests/ssl/applepay/ApplePaySessionV5.html: Removed a custom element-clicking function

and used UIHelper.activateElement instead.

  • platform/ios-wk2/TestExpectations: Un-skipped http/tests/ssl/applepay.

Marked PaymentRequest.https.html as Slow. Marked ApplePayInstallmentItems.https.html as
Failure.

  • platform/mac-wk2/TestExpectations: Removed a trailing '/'. Skipped

ApplePayInstallmentItems.https.html on Mojave and marked it as Failure on Catalina.

8:47 AM Changeset in webkit [263149] by Alan Bujtas
  • 3 edits in trunk/Source/WebCore

[LFC][Floats] Remove redundant mapping functions
https://bugs.webkit.org/show_bug.cgi?id=213249

Reviewed by Antti Koivisto.

It's incorrect to map the entire display box when the height is no even computed yet.

  • layout/floats/FloatingContext.cpp:

(WebCore::Layout::FloatingContext::positionForFloat const):
(WebCore::Layout::FloatingContext::positionForNonFloatingFloatAvoider const):
(WebCore::Layout::FloatingContext::verticalPositionWithClearance const):
(WebCore::Layout::FloatingContext::append):
(WebCore::Layout::FloatingContext::absoluteDisplayBoxCoordinates const):
(WebCore::Layout::FloatingContext::mapTopLeftToFloatingStateRoot const):
(WebCore::Layout::FloatingContext::mapToFloatingStateRoot const): Deleted.
(WebCore::Layout::FloatingContext::mapTopToFloatingStateRoot const): Deleted.

  • layout/floats/FloatingContext.h:
8:34 AM Changeset in webkit [263148] by Truitt Savell
  • 2 edits in trunk/LayoutTests

[ Catalina WK2 Release ] http/tests/IndexedDB/storage-limit-1.https.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=213292

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
7:55 AM Changeset in webkit [263147] by Alan Bujtas
  • 6 edits in trunk/Source/WebCore

[LFC]Floats] Cleanup FloatAvoider interface
https://bugs.webkit.org/show_bug.cgi?id=213195

Reviewed by Antti Koivisto.

Remove redundant functions/parameters.

  • layout/blockformatting/BlockFormattingContext.cpp:

(WebCore::Layout::BlockFormattingContext::computePositionToAvoidFloats):

  • layout/floats/FloatAvoider.cpp:

(WebCore::Layout::FloatAvoider::FloatAvoider):
(WebCore::Layout::FloatAvoider::topLeftInContainingBlock const): Deleted.

  • layout/floats/FloatAvoider.h:
  • layout/floats/FloatingContext.cpp:

(WebCore::Layout::findAvailablePosition):
(WebCore::Layout::FloatingContext::positionForFloat const):
(WebCore::Layout::FloatingContext::positionForNonFloatingFloatAvoider const):
(WebCore::Layout::FloatingContext::positionForFormattingContextRoot const): Deleted.
(WebCore::Layout::FloatingContext::findPositionForFloatBox const): Deleted.

  • layout/floats/FloatingContext.h:
7:41 AM Changeset in webkit [263146] by msaboff@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

[Wasm] Reduce the amount of memory used by the Air register coloring allocator
https://bugs.webkit.org/show_bug.cgi?id=212106

Reviewed by Yusuke Suzuki.

Changed InterferenceEdge to be a templated class so we can instantiate an unsigned
short version to cut memory in half for code that has less than 216 temps.
Through instrumentation, my testing showed that almost all compilations use the
16bit implementation. Although this change is for all B3/Air compilations at O2,
Wasm compilations are usally larger and therefore get the greatest benefit.

This allowed increasing the default value for the option webAssemblyBBQFallbackSize,
with a small increase in memory usage.

  • b3/air/AirAllocateRegistersByGraphColoring.cpp:
  • runtime/OptionsList.h:
7:25 AM Changeset in webkit [263145] by Diego Pino Garcia
  • 10 edits
    1 delete in trunk/LayoutTests

[GTK] Unreviewed test gardening. Update baselines and test expectations after r263143.

  • platform/glib/svg/custom/svg-fonts-in-text-controls-expected.txt:
  • platform/gtk/TestExpectations:
  • platform/gtk/accessibility/form-control-value-settable-expected.txt:
  • platform/gtk/accessibility/roles-exposed-expected.txt:
  • platform/gtk/fast/css/line-height-expected.txt:
  • platform/gtk/fast/forms/placeholder-pseudo-style-expected.txt:
  • platform/gtk/fast/forms/searchfield-heights-expected.txt:
  • platform/gtk/http/tests/plugins/plugin-javascript-access-expected.txt: Removed.
  • platform/gtk/imported/w3c/web-platform-tests/css/css-color/animation/opacity-interpolation-expected.txt:
  • platform/gtk/plugins/mouse-click-plugin-clears-selection-expected.txt:
7:05 AM Changeset in webkit [263144] by Alan Bujtas
  • 7 edits
    2 deletes in trunk/Source/WebCore

[LFC][Floats] Remove FloatBox class
https://bugs.webkit.org/show_bug.cgi?id=213184

Reviewed by Antti Koivisto.

Apparently the only difference between a non-floating float avoider (regular formatting context root)
and a float box is that while float boxes intersect their margin box, simple float avoiders use their border box.
We can do that without subclassing FloatAvoider.

This patch is also in preparation for moving "computeFloatPosition" next to the static position computation when
the height value is not computed yet. So instead of passing in the display box, let's just pass in top/left and width.

  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • layout/floats/FloatAvoider.cpp:

(WebCore::Layout::FloatAvoider::FloatAvoider):
(WebCore::Layout::FloatAvoider::setHorizontalPosition):
(WebCore::Layout::FloatAvoider::setVerticalPosition):
(WebCore::Layout::FloatAvoider::initialHorizontalPosition const):
(WebCore::Layout::FloatAvoider::overflowsContainingBlock const):
(WebCore::Layout::FloatAvoider::topLeftInContainingBlock const):
(WebCore::Layout::FloatAvoider::setHorizontalConstraints): Deleted.
(WebCore::Layout::FloatAvoider::setVerticalConstraint): Deleted.
(WebCore::Layout::FloatAvoider::horizontalPositionCandidate): Deleted.
(WebCore::Layout::FloatAvoider::verticalPositionCandidate): Deleted.
(WebCore::Layout::FloatAvoider::rectInContainingBlock const): Deleted.

  • layout/floats/FloatAvoider.h:

(WebCore::Layout::FloatAvoider::resetHorizontalPosition):
(WebCore::Layout::FloatAvoider::isLeftAligned const):
(WebCore::Layout::FloatAvoider::borderBoxWidth const):
(WebCore::Layout::FloatAvoider::marginBefore const):
(WebCore::Layout::FloatAvoider::marginAfter const):
(WebCore::Layout::FloatAvoider::marginStart const):
(WebCore::Layout::FloatAvoider::marginEnd const):
(WebCore::Layout::FloatAvoider::marginBoxWidth const):
(WebCore::Layout::FloatAvoider::isFloatingBox const):
(WebCore::Layout::FloatAvoider::layoutBox const):
(WebCore::Layout::FloatAvoider::top const):
(WebCore::Layout::FloatAvoider::left const):
(WebCore::Layout::FloatAvoider::right const):
(WebCore::Layout::FloatAvoider::rect const): Deleted.
(WebCore::Layout::FloatAvoider::displayBox const): Deleted.
(WebCore::Layout::FloatAvoider::displayBox): Deleted.

  • layout/floats/FloatBox.cpp: Removed.
  • layout/floats/FloatBox.h: Removed.
  • layout/floats/FloatingContext.cpp:

(WebCore::Layout::FloatingContext::positionForFloat const):
(WebCore::Layout::FloatingContext::positionForFormattingContextRoot const):
(WebCore::Layout::findAvailablePosition):
(WebCore::Layout::FloatingContext::findPositionForFloatBox const):
(WebCore::Layout::FloatingContext::findPositionForFormattingContextRoot const):
(WebCore::Layout::FloatPair::intersects const):
(WebCore::Layout::FloatPair::horizontalConstraints const):

  • layout/floats/FloatingContext.h:
4:34 AM Changeset in webkit [263143] by aakash_jain@apple.com
  • 7 edits in trunk/Tools

Delete old ews client side code - part 2
https://bugs.webkit.org/show_bug.cgi?id=213262

Reviewed by Alexey Proskuryakov.

  • Scripts/webkitpy/common/net/bugzilla/attachment.py:
  • Scripts/webkitpy/tool/bot/patchanalysistask.py:

(PatchAnalysisTaskDelegate.command_passed): Deleted.
(PatchAnalysisTaskDelegate.command_failed): Deleted.

  • Scripts/webkitpy/tool/commands/earlywarningsystem.py:

(AbstractEarlyWarningSystem.command_passed): Deleted.
(AbstractEarlyWarningSystem.command_failed): Deleted.

  • Scripts/webkitpy/tool/commands/perfalizer.py:

(PerfalizerTask.command_passed): Deleted.
(PerfalizerTask.command_failed): Deleted.

  • Scripts/webkitpy/tool/commands/perfalizer_unittest.py:
  • Scripts/webkitpy/tool/commands/queues.py:

(AbstractPatchQueue._next_patch): Deleted.
(AbstractPatchQueue._did_error): Deleted.
(AbstractPatchQueue._did_skip): Deleted.
(AbstractPatchQueue._unlock_patch): Deleted.
(StyleQueue.command_passed): Deleted.
(StyleQueue.command_failed): Deleted.

2:34 AM Changeset in webkit [263142] by Paulo Matos
  • 2 edits in trunk/Tools

Add new Igalia EWS workers for ARM/MIPS
https://bugs.webkit.org/show_bug.cgi?id=212803

Reviewed by Aakash Jain.

  • BuildSlaveSupport/ews-build/config.json:
1:55 AM Changeset in webkit [263141] by youenn@apple.com
  • 9 edits in trunk

Make ReadableStream robust against user code
https://bugs.webkit.org/show_bug.cgi?id=212915
<rdar://problem/64133221>

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

We now get pull/cancel only once from the source.

  • web-platform-tests/streams/readable-streams/bad-underlying-sources-expected.txt:
  • web-platform-tests/streams/readable-streams/bad-underlying-sources.dedicatedworker-expected.txt:
  • web-platform-tests/streams/readable-streams/bad-underlying-sources.serviceworker.https-expected.txt:

Source/WebCore:

Create tee source with private slots instead of public ones.
When source has one of this private slot, we directly go to the creation of a ReadableStream.
Covered by existing tests.

  • Modules/streams/ReadableStream.js:

(initializeReadableStream):

  • Modules/streams/ReadableStreamInternals.js:

(setupReadableStreamDefaultController):
(readableStreamTee):
(readableStreamDefaultControllerCallPullIfNeeded):
(readableStreamDefaultControllerCancel):

  • Modules/streams/StreamInternals.js:

(promiseInvokeOrNoopMethodNoCatch):
(promiseInvokeOrNoopNoCatch):
(promiseInvokeOrNoopMethod):
(promiseInvokeOrNoop):

  • bindings/js/WebCoreBuiltinNames.h:
1:52 AM Changeset in webkit [263140] by Antti Koivisto
  • 6 edits in trunk/Source/WebCore

Fix spelling of evaluteDynamicMediaQueryRules
https://bugs.webkit.org/show_bug.cgi?id=213287

Unreviewed.

  • style/RuleSet.cpp:

(WebCore::Style::RuleSet::addRulesFromSheet):
(WebCore::Style::RuleSet::evaluateDynamicMediaQueryRules):
(WebCore::Style::RuleSet::evaluteDynamicMediaQueryRules): Deleted.

  • style/RuleSet.h:
  • style/StyleResolver.cpp:

(WebCore::Style::Resolver::evaluateDynamicMediaQueries):

  • style/StyleScopeRuleSets.cpp:

(WebCore::Style::ScopeRuleSets::evaluateDynamicMediaQueryRules):
(WebCore::Style::ScopeRuleSets::evaluteDynamicMediaQueryRules): Deleted.

  • style/StyleScopeRuleSets.h:
1:17 AM Changeset in webkit [263139] by Diego Pino Garcia
  • 2 edits in trunk/Source/WebCore

REGRESSION(r262994): [GTK] More than 100 tests are failing
https://bugs.webkit.org/show_bug.cgi?id=213173

Unreviewed gardening.

Add default initialization for WebCore::PluginInfo::clientLoadPolicy and
WebCore::PluginInfo::isApplicationPlugin.

  • plugins/PluginData.h:
12:29 AM Changeset in webkit [263138] by commit-queue@webkit.org
  • 2 edits in trunk

REGRESSION(r260760): ENABLE_GRAPHICS_CONTEXT_GL should be ON, not TRUE
https://bugs.webkit.org/show_bug.cgi?id=212057

Patch by Michael Catanzaro <Michael Catanzaro> on 2020-06-17
Reviewed by Carlos Garcia Campos.

This is already set by feature policy. Don't clobber it.

  • Source/cmake/OptionsGTK.cmake:
Note: See TracTimeline for information about the timeline view.