Timeline



Jul 26, 2020:

7:03 PM Changeset in webkit [264908] by Simon Fraser
  • 14 edits
    3 copies
    11 adds in trunk

Scroll Snap broken when using RTL layout
https://bugs.webkit.org/show_bug.cgi?id=193671
<rdar://problem/47457471>

Reviewed by Wenson Hsieh.

Source/WebCore:

There were various places in the scroll snapping code which confused scroll offsets (zero-based)
with scroll positions (relative to scroll origin, can be negative). This broke snapping in
direction: rtl content.

The computation of snap locations in updateSnapOffsetsForScrollableArea() was also broken
in RTL; we need to snap the right edge of boxes to the right edge of the scroller for the 'start'
alignment. (Snapping for LTR boxes in an RTL scroller is poorly defined; for now, follow Gecko.)

Tests: css3/scroll-snap/scroll-snap-2d-change-axis-type-rtl.html

css3/scroll-snap/scroll-snap-2d-offsets-computed-independently.rtl.html
css3/scroll-snap/scroll-snap-elements-container-larger-than-children-rtl.html
css3/scroll-snap/scroll-snap-iframe-rtl.html
css3/scroll-snap/scroll-snap-offsets-mixed-rtl.html
css3/scroll-snap/scroll-snap-offsets-rtl.html

  • page/scrolling/AxisScrollSnapOffsets.cpp:

(WebCore::computeScrollSnapAlignOffset):
(WebCore::updateSnapOffsetsForScrollableArea):

  • page/scrolling/mac/ScrollingTreeScrollingNodeDelegateMac.mm:

(WebCore::ScrollingTreeScrollingNodeDelegateMac::scrollOffset const):

  • platform/ScrollAnimator.cpp:

(WebCore::ScrollAnimator::updateActiveScrollSnapIndexForOffset):
(WebCore::ScrollAnimator::scrollOffset const):

  • platform/cocoa/ScrollController.mm:

(WebCore::ScrollController::updateScrollSnapPoints):

Source/WebKit:

There were various places in the scroll snapping code which confused scroll offsets (zero-based)
with scroll positions (relative to scroll origin, can be negative). This broke snapping in
direction: rtl content.

The computation of snap locations in updateSnapOffsetsForScrollableArea() was also broken
in RTL; we need to snap the right edge of boxes to the right edge of the scroller for the 'start'
alignment. (Snapping for LTR boxes in an RTL scroller is poorly defined; for now, follow Gecko.)

  • Shared/RemoteLayerTree/RemoteScrollingCoordinatorTransaction.cpp:

(WebKit::dump):

  • UIProcess/API/ios/WKWebViewIOS.mm:

(-[WKWebView _updateVisibleContentRects]):

  • UIProcess/RemoteLayerTree/RemoteScrollingCoordinatorProxy.h:
  • UIProcess/RemoteLayerTree/ios/RemoteScrollingCoordinatorProxyIOS.mm:

(WebKit::RemoteScrollingCoordinatorProxy::shouldSnapForMainFrameScrolling const):
(WebKit::RemoteScrollingCoordinatorProxy::closestSnapOffsetForMainFrameScrolling const):
(WebKit::RemoteScrollingCoordinatorProxy::hasActiveSnapPoint const):
(WebKit::RemoteScrollingCoordinatorProxy::nearestActiveContentInsetAdjustedSnapOffset const):
(WebKit::RemoteScrollingCoordinatorProxy::nearestActiveContentInsetAdjustedSnapPoint const): Deleted.

LayoutTests:

  • css3/scroll-snap/resources/iframe-content-rtl.html: Added.
  • css3/scroll-snap/scroll-snap-2d-change-axis-type-rtl-expected.txt: Added.
  • css3/scroll-snap/scroll-snap-2d-change-axis-type-rtl.html: Copied from LayoutTests/css3/scroll-snap/scroll-snap-2d-change-axis-type.html.
  • css3/scroll-snap/scroll-snap-2d-change-axis-type.html:
  • css3/scroll-snap/scroll-snap-2d-offsets-computed-independently.html:
  • css3/scroll-snap/scroll-snap-2d-offsets-computed-independently.rtl-expected.txt: Added.
  • css3/scroll-snap/scroll-snap-2d-offsets-computed-independently.rtl.html: Copied from LayoutTests/css3/scroll-snap/scroll-snap-2d-offsets-computed-independently.html.
  • css3/scroll-snap/scroll-snap-elements-container-larger-than-children-rtl-expected.txt: Added.
  • css3/scroll-snap/scroll-snap-elements-container-larger-than-children-rtl.html: Copied from LayoutTests/css3/scroll-snap/scroll-snap-elements-container-larger-than-children.html.
  • css3/scroll-snap/scroll-snap-elements-container-larger-than-children.html:
  • css3/scroll-snap/scroll-snap-iframe-rtl-expected.txt: Added.
  • css3/scroll-snap/scroll-snap-iframe-rtl.html: Added.
  • css3/scroll-snap/scroll-snap-offsets-mixed-rtl-expected.txt: Added.
  • css3/scroll-snap/scroll-snap-offsets-mixed-rtl.html: Added.
  • css3/scroll-snap/scroll-snap-offsets-rtl-expected.txt: Added.
  • css3/scroll-snap/scroll-snap-offsets-rtl.html: Added.
  • fast/scrolling/home-end-keys-scroll-in-rtl-document-expected.txt: Added.
12:25 PM Changeset in webkit [264907] by Wenson Hsieh
  • 20 edits in trunk

REGRESSION (r264690): [ iOS wk2 ] editing/selection/shift-click-includes-existing-selection.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=214688
<rdar://problem/65993683>

Reviewed by Darin Adler.

Source/WebCore/PAL:

Remove logging added in r264882, r264890, r264892, and r264896.

  • pal/spi/ios/GraphicsServicesSPI.h:

Source/WebKit:

Remove logging added in r264882, r264890, r264892, and r264896.

  • Platform/spi/ios/UIKitSPI.h:
  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView _singleTapIdentified:]):
(-[WKContentView _singleTapRecognized:]):

  • UIProcess/ios/WebPageProxyIOS.mm:

(WebKit::WebPageProxy::commitPotentialTap):

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::handleSyntheticClick):

Tools:

Attempt another speculative fix for this flaky test, motivated by logging introduced in r264896. This recently
introduced telemetry would suggest that this test fails when the act of handling a synthetic modifier keydown
fails to update GSKeyboardRef's live modifier flags if the keyboard layout changes mid-event, forcing the
existing GSKeyboardRef to be destroyed and rebuilt.

In this case, the keyboard layout changes from "Hebrew" to "US" when this test fails. There is only one (sane)
explanation for this, which is that one of the editing/input/ios/rtl-keyboard-input-*.html tests switch to an
RTL keyboard ("he_IL" in both cases) by swizzling out -currentInputMode and -currentInputModeInPreference on
UIKeyboardInputModeController. While the swizzling is torn down in between test runs via logic in
TestController::platformResetStateToConsistentValues, it's possible that this change hasn't propagated to
the UIKit or GraphicsServices layers -- in other words, UIApplication's GSKeyboardRef remains stuck in the
Hebrew layout until the next time -GSKeyboardForHWLayout:forceRebuild:createIfNeeded: forces the keyboard to
be rebuilt, which (in this case) seems to happen while running shift-click-includes-existing-selection.html.

For reasons that are still unclear, this lazy regeneration of the GSKeyboardRef causes GraphicsServices' live
modifier state to not update when handling a shift key down HID event. However, we might be able to fix this by
forcing UIKit to sync the default (unswizzled) keyboard layout back to its GSKeyboardRef immediately when we
stop swizzling UIKeyboardInputModeController after running a test that attempts to simulate changing keyboard
input modes.

  • WebKitTestRunner/ios/TestControllerIOS.mm:

(WTR::TestController::platformResetStateToConsistentValues):

Call -prepareKeyboardInputModeFromPreferences: to force the UIApp to update its hardware keyboard state (i.e.
GSKeyboardRef).

  • WebKitTestRunner/ios/UIScriptControllerIOS.mm:

(WTR::UIScriptControllerIOS::singleTapAtPointWithModifiers):

Also, restore this method to how it was prior to r264890, as it doesn't seem like waiting for the HID marker
event after synthesizing a keydown had any effect.

  • WebKitTestRunner/ios/mainIOS.mm:

(-[WebKitTestRunnerApp handleKeyHIDEvent:]): Deleted.

WebKitLibraries:

Remove logging added in r264882, r264890, r264892, and r264896.

  • WebKitPrivateFrameworkStubs/appletvos/13/GraphicsServices.framework/GraphicsServices.tbd:
  • WebKitPrivateFrameworkStubs/appletvos/14/GraphicsServices.framework/GraphicsServices.tbd:
  • WebKitPrivateFrameworkStubs/iOS/13/GraphicsServices.framework/GraphicsServices.tbd:
  • WebKitPrivateFrameworkStubs/iOS/14/GraphicsServices.framework/GraphicsServices.tbd:
  • WebKitPrivateFrameworkStubs/watchos/6/GraphicsServices.framework/GraphicsServices.tbd:
  • WebKitPrivateFrameworkStubs/watchos/7/GraphicsServices.framework/GraphicsServices.tbd:

LayoutTests:

Remove the failing test expectation.

  • platform/ios-simulator-wk2/TestExpectations:
12:22 PM Changeset in webkit [264906] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

-Wunused-parameter in FilterEffectRenderer.cpp
https://bugs.webkit.org/show_bug.cgi?id=214808

Unreviewed.

Patch by Michael Catanzaro <Michael Catanzaro> on 2020-07-26

  • platform/graphics/filters/FilterEffectRenderer.cpp:

(WebCore::FilterEffectRenderer::tryCreate):

12:12 PM Changeset in webkit [264905] by Darin Adler
  • 23 edits
    1 add
    2 deletes in trunk

Stop using live ranges in SpellChecker.h and TextCheckingHelper.h
https://bugs.webkit.org/show_bug.cgi?id=214648

Reviewed by Sam Weinig.

Source/WebCore:

  • accessibility/mac/WebAccessibilityObjectWrapperBase.mm:

Removed unneeded include of TextCheckingHelper.h.

  • dom/DocumentMarkerController.cpp:

(WebCore::DocumentMarkerController::removeMarkers): Updated for change
to the argument type name.
(WebCore::DocumentMarkerController::filterMarkers): Ditto.
(WebCore::addMarker): Added. Convenience so call doesn't have to get
the document to call this.
(WebCore::removeMarkers): Ditto.

  • dom/DocumentMarkerController.h: Moved RemovePartiallyOverlappingMarker

out of the DocumentMarkerController class, tweaked its name and changed
it into an enum class. Added conveniences functions for add/removeMarker.

  • editing/AlternativeTextController.cpp:

(WebCore::AlternativeTextController::respondToUnappliedSpellCorrection):
Use convenience versions of removeMarkers and addMarker.
(WebCore::AlternativeTextController::handleAlternativeTextUIResult): Ditto.
(WebCore::AlternativeTextController::respondToUnappliedEditing): Ditto.
(WebCore::AlternativeTextController::markReversed): Ditto.
(WebCore::AlternativeTextController::markCorrection): Ditto.
(WebCore::AlternativeTextController::recordSpellcheckerResponseForModifiedCorrection): Ditto.
(WebCore::AlternativeTextController::markPrecedingWhitespaceForDeletedAutocorrectionAfterCommand): Ditto.
(WebCore::AlternativeTextController::applyAlternativeTextToRange): Ditto.

  • editing/CompositeEditCommand.cpp:

(WebCore::CompositeEditCommand::replaceTextInNodePreservingMarkers): Ditto.

  • editing/Editor.cpp:

(WebCore::Editor::ignoreSpelling): Ditto.
(WebCore::Editor::learnSpelling): Ditto.
(WebCore::Editor::advanceToNextMisspelling): Rewrote to not use a live
range and for the changes to the TextCheckingHelper.
(WebCore::Editor::isSelectionUngrammatical): Deleted.
(WebCore::Editor::guessesForMisspelledOrUngrammatical): Changed to use a
return value instead of out arguments.
(WebCore::Editor::clearMisspellingsAndBadGrammar): Use convenience
versions of removeMarkers.
(WebCore::Editor::markMisspellingsAfterTypingToWord): Ditto.
(WebCore::Editor::markMisspellingsOrBadGrammar): Updated for change to
TextCheckingHelper.
(WebCore::Editor::markAllMisspellingsAndBadGrammarInRanges): Do not use
live ranges.
(WebCore::correctSpellcheckingPreservingTextCheckingParagraph): Take a
range that isn't a live range.
(WebCore::Editor::markAndReplaceFor): Tweak for changes to text checking
and to use convenience version of addMarker.
(WebCore::Editor::changeBackToReplacedString): Use convenience versions of
removeMarkers and addMarker.
(WebCore::Editor::updateMarkersForWordsAffectedByEditing): Ditto.
(WebCore::Editor::countMatchesForText): Ditto.
(WebCore::Editor::scanSelectionForTelephoneNumbers): Ditto.
(WebCore::Editor::editorUIUpdateTimerFired): Ditto.
(WebCore::Editor::handleAcceptedCandidate): Ditto.

  • editing/Editor.h: Update for the above.
  • editing/SpellChecker.cpp:

(WebCore::SpellCheckRequest::SpellCheckRequest): No longer take live ranges.
(WebCore::SpellCheckRequest::create): Ditto.
(WebCore::SpellChecker::canCheckAsynchronously const): Ditto.
(WebCore::SpellChecker::isCheckable const): Ditto.
(WebCore::SpellChecker::didCheckSucceed): Use convenience versions of
removeMarkers.

  • editing/SpellChecker.h: Remove the use of live ranges. Removed many

unneeded includes and forward declarations.

  • editing/TextCheckingHelper.cpp:

(WebCore::expandToParagraphBoundary): Take and return non-live ranges.
(WebCore::TextCheckingParagraph::TextCheckingParagraph): Ditto.
(WebCore::TextCheckingParagraph::expandRangeToNextEnd): Updated to use
non-live ranges.
(WebCore::TextCheckingParagraph::invalidateParagraphRangeValues): Ditto.
(WebCore::TextCheckingParagraph::paragraphRange const): Ditto.
(WebCore::TextCheckingParagraph::subrange const): Ditto.
(WebCore::TextCheckingParagraph::offsetTo const): Ditto.
(WebCore::TextCheckingParagraph::offsetAsRange const): Ditto.
(WebCore::TextCheckingParagraph::automaticReplacementStart const): Ditto.
(WebCore::TextCheckingParagraph::automaticReplacementLength const): Ditto.
(WebCore::TextCheckingHelper::~TextCheckingHelper): Deleted.
(WebCore::TextCheckingHelper::findMispelledWords const): Renamed from
findFirstMispelling, and made this private function since it has confusing
argument and return types. Reimplemented to use non-live ranges and to use
return values and the addMarker convenience function. Also changed this to
not mark when called just to find the first mispelled word. The old version
always marked, which didn't make logical sense, but was harmless because
the caller always marked the same way. Now this does what it says.
(WebCore::TextCheckingHelper::findFirstMisspelledWord const): Added.
Replaces findFirstMispelling as a public function, and returns a structure
instead of using out arguments.
(WebCore::TextCheckingHelper::findFirstMisspelledWordOrUngrammaticalPhrase const):
Renamed from findFirstMisspellingOrBadGrammar and changed to return a structure
instead of using out arguments.
(WebCore::TextCheckingHelper::findUngrammaticalPhrases const): Renamed from
findFirstGrammarDetail and findFirstBadGrammar. Both functions are now private
and use the new Operation enum class to distinguish the "find first" from
"mark all" usage. Also use the convience version of addMarker and return results
in a structure instead of using out arguments.
(WebCore::TextCheckingHelper::findFirstUngrammaticalPhrase const): Added.
Replaces findFirstBadGrammar as a public function, returns a structure
instead of using out arguments.
(WebCore::TextCheckingHelper::guessesForMisspelledWordOrUngrammaticalPhrase const):
Renamed from guessesForMisspelledOrUngrammaticalRange and changed to return
a structure instead of out arguments.
(WebCore::TextCheckingHelper::markAllMisspelledWords const): Renamed from
markAllMisspellings and changed to use a return value instead of an out argument.
(WebCore::TextCheckingHelper::markAllUngrammaticalPhrases const): Renamed
from markAllBadGrammar.

  • editing/TextCheckingHelper.h: Removed unneed include of "EditorClient.h".

Use non-live ranges. Updated for the other changes above.

  • editing/ios/DictationCommandIOS.cpp:

(WebCore::DictationCommandIOS::doApply): Use the convenience version of addMarker.

  • editing/ios/EditorIOS.mm:

(WebCore::Editor::setDictationPhrasesAsChildOfElement): Ditto.

  • page/ContextMenuController.cpp:

(WebCore::ContextMenuController::populate): Updated for the change to
Editor::guessesForMisspelledOrUngrammatical.

  • platform/text/TextChecking.h: Added a TextCheckingGuesses structure here

used both by Editor and TextCheckingHelper.

Source/WebKit:

  • WebProcess/WebCoreSupport/WebEditorClient.cpp: Added an include

of Range.h, no longer pulled in indirectly by another header.

Source/WebKitLegacy/mac:

  • WebCoreSupport/WebEditorClient.mm:

(WebEditorClient::requestCheckingOfString): Pass the specific types of
results we expect, rather than NSTextCheckingAllSystemTypes.

LayoutTests:

  • editing/spelling/design-mode-spellcheck-off-expected.txt: Updated to use the misspelling

"tyop" instead of "asdf", otherwise spell checking thinks the text is in Romanian,
rather than misspelled US English.

  • editing/spelling/design-mode-spellcheck-off.html: Ditto.
  • platform/mac/editing/pasteboard/drop-text-without-selection-expected.html: Added.

Changed this test into a reference test.

  • platform/mac/editing/pasteboard/drop-text-without-selection-expected.png: Removed.
  • platform/mac/editing/pasteboard/drop-text-without-selection-expected.txt: Removed.
12:10 PM Changeset in webkit [264904] by commit-queue@webkit.org
  • 7 edits in trunk/Source/ThirdParty/libwebrtc

libwebrtc uint64_t build fixes
https://bugs.webkit.org/show_bug.cgi?id=214806

Patch by Michael Catanzaro <Michael Catanzaro> on 2020-07-26
Reviewed by Darin Adler.

WebKitGTK currently fails to build with -DENABLE_EXPERIMENTAL_FEATURES=ON because a bunch of
libwebrtc headers use integer typedefs without declaring them:

  • Source/webrtc/call/rtx_receive_stream.h:
  • Source/webrtc/common_video/h264/pps_parser.h:
  • Source/webrtc/common_video/h264/sps_parser.h:
  • Source/webrtc/modules/audio_processing/aec3/clockdrift_detector.h:
  • Source/webrtc/modules/include/module_common_types_public.h:
  • Source/webrtc/modules/video_coding/decoding_state.h:
12:08 PM Changeset in webkit [264903] by Diego Pino Garcia
  • 2 edits in trunk/Tools

[WPE] Unreviewed test gardening. Update API test expectations.

  • TestWebKitAPI/glib/TestExpectations.json:
11:24 AM Changeset in webkit [264902] by Diego Pino Garcia
  • 12 edits
    1 copy
    1 move
    2 adds
    1 delete in trunk/LayoutTests

[WPE] Unreviewed test gardening. Update test expectations and baselines after r264899.

  • platform/glib/TestExpectations:
  • platform/glib/imported/w3c/web-platform-tests/css/css-sizing/percentage-height-in-flexbox-expected.txt: Renamed from LayoutTests/platform/gtk/imported/w3c/web-platform-tests/css/css-sizing/percentage-height-in-flexbox-expected.txt.
  • platform/glib/mathml/opentype/opentype-stretchy-expected.txt: Renamed from LayoutTests/platform/gtk/mathml/opentype/opentype-stretchy-expected.txt.
  • platform/gtk/TestExpectations:
  • platform/wpe/TestExpectations:
  • platform/wpe/fast/dynamic/insert-before-table-part-in-continuation-expected.txt:
  • platform/wpe/fast/table/cell-absolute-child-expected.txt:
  • platform/wpe/fast/table/empty-cells-expected.txt:
  • platform/wpe/fast/table/prepend-in-anonymous-table-expected.txt:
  • platform/wpe/tables/mozilla/bugs/bug10633-expected.txt:
  • platform/wpe/tables/mozilla/bugs/bug1188-expected.txt:
  • platform/wpe/tables/mozilla/bugs/bug1302-expected.txt:
  • platform/wpe/tables/mozilla/bugs/bug16012-expected.txt:
10:38 AM Changeset in webkit [264901] by youenn@apple.com
  • 6 edits in trunk

Update capture MediaStreamTrack frameRate and aspectRatio capabilities
https://bugs.webkit.org/show_bug.cgi?id=214741

Reviewed by Eric Carlson.

Source/WebCore:

We support frame decimation to decrease the frame rate.
This allows to get a frame rate down to 1.
We support resizing up to max width/height resolution.
This allows very wide aspect ratios.
Covered by updated tests.

  • platform/mediastream/RealtimeVideoCaptureSource.cpp:

(WebCore::RealtimeVideoCaptureSource::updateCapabilities):

LayoutTests:

  • fast/mediastream/MediaStreamTrack-getCapabilities-expected.txt:
  • fast/mediastream/apply-constraints-video-expected.txt:
  • fast/mediastream/apply-constraints-video.html:
10:20 AM Changeset in webkit [264900] by Diego Pino Garcia
  • 2 edits in trunk/Tools

[GTK] Unreviewed test gardening. Update API tests expectations.

  • TestWebKitAPI/glib/TestExpectations.json:
8:35 AM Changeset in webkit [264899] by Wenson Hsieh
  • 4 edits in trunk

Unreviewed, partially revert r264896.
https://bugs.webkit.org/show_bug.cgi?id=214688

This logging is no longer needed.

Source/WebKit:

  • Platform/spi/ios/UIKitSPI.h:

Tools:

  • WebKitTestRunner/ios/mainIOS.mm:

(-[WebKitTestRunnerApp GSKeyboardForHWLayout:forceRebuild:createIfNeeded:]): Deleted.

7:08 AM Changeset in webkit [264898] by Diego Pino Garcia
  • 3 edits in trunk/LayoutTests

[GTK] Unreviewed test gardening. Garden flaky failures after r264897.

  • platform/glib/TestExpectations:
  • platform/gtk/TestExpectations:
5:03 AM Changeset in webkit [264897] by Diego Pino Garcia
  • 1 edit
    2 adds in trunk/LayoutTests

[GLIB] Unreviewed test gardening. Added baseline for WebGL test after r264845.

  • platform/glib/webgl/1.0.3/conformance/renderbuffers/framebuffer-object-attachment-expected.txt: Added.
1:17 AM Changeset in webkit [264896] by Wenson Hsieh
  • 13 edits in trunk

Unreviewed, add even more logging to try and diagnose a flaky test
https://bugs.webkit.org/show_bug.cgi?id=214688
<rdar://problem/65993683>

Source/WebCore/PAL:

Add more GraphicsServices SPI declarations.

  • pal/spi/ios/GraphicsServicesSPI.h:

Source/WebKit:

Add another IPI declaration on UIApplication.

  • Platform/spi/ios/UIKitSPI.h:

Tools:

Evidence so far suggests that this test fails when the process of dispatching a keydown event for a modifier
(in this case, the shift key) causes the UIApplication's hardware keyboard (GSKeyboardRef) to be regenerated.
This may happen in one of two ways: either a rebuild is forced by logic in -[UIApplication handleKeyHIDEvent:],
or forceRebuild is NO, but the keyboard is rebuilt anyways due to a mismatched layout and/or keyboard type.

  • WebKitTestRunner/ios/mainIOS.mm:

(-[WebKitTestRunnerApp GSKeyboardForHWLayout:forceRebuild:createIfNeeded:]):
(-[WebKitTestRunnerApp handleKeyHIDEvent:]):

WebKitLibraries:

Add symbol stubs for non-internal builds.

  • WebKitPrivateFrameworkStubs/appletvos/13/GraphicsServices.framework/GraphicsServices.tbd:
  • WebKitPrivateFrameworkStubs/appletvos/14/GraphicsServices.framework/GraphicsServices.tbd:
  • WebKitPrivateFrameworkStubs/iOS/13/GraphicsServices.framework/GraphicsServices.tbd:
  • WebKitPrivateFrameworkStubs/iOS/14/GraphicsServices.framework/GraphicsServices.tbd:
  • WebKitPrivateFrameworkStubs/watchos/6/GraphicsServices.framework/GraphicsServices.tbd:
  • WebKitPrivateFrameworkStubs/watchos/7/GraphicsServices.framework/GraphicsServices.tbd:

Jul 25, 2020:

10:11 PM Changeset in webkit [264895] by mark.lam@apple.com
  • 8 edits in trunk/Source

pluginElementCustomGetOwnPropertySlot() should support VMInquiry requests.
https://bugs.webkit.org/show_bug.cgi?id=214555
<rdar://problem/65855400>

Reviewed by Yusuke Suzuki.

Source/JavaScriptCore:

  1. Add handling for VMInquiry failure in JSObject::getPropertySlot() and JSObject::getNonIndexPropertySlot(). Basically, if the query isTaintedByOpaqueObject, then we should treat the false result as a failed VMInquiry.
  1. Fix JSModuleNamespaceObject::getOwnPropertySlotCommon() and ProxyObject::getOwnPropertySlotCommon() to initialize the PropertySlot to a jsUndefined() value if we have a failed VMInquiry. The client shouldn't be reading the value if the VMInquiry failed, but as a defensive action, we'll initialize the slot to effectively return an undefined value.
  • runtime/JSModuleNamespaceObject.cpp:

(JSC::JSModuleNamespaceObject::getOwnPropertySlotCommon):

  • runtime/JSObjectInlines.h:

(JSC::JSObject::getPropertySlot):
(JSC::JSObject::getNonIndexPropertySlot):

  • runtime/ProxyObject.cpp:

(JSC::ProxyObject::getOwnPropertySlotCommon):

Source/WebCore:

  1. Add handling for VMInquiry failure in CodeGeneratorJS.
  1. Fix pluginElementCustomGetOwnPropertySlot() to setIsTaintedByOpaqueObject().
  1. Fix pluginElementCustomGetOwnPropertySlot() handle a VMInquiry failure case and if so, to initialize the PropertySlot to a jsUndefined() value. The client shouldn't be reading the value if the VMInquiry failed, but as a defensive action, we'll initialize the slot to effectively return an undefined value.
  • bindings/js/JSPluginElementFunctions.cpp:

(WebCore::pluginElementCustomGetOwnPropertySlot):

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateGetOwnPropertySlot):
(GenerateGetOwnPropertySlotByIndex):

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

(WebCore::JSTestPluginInterface::getOwnPropertySlot):
(WebCore::JSTestPluginInterface::getOwnPropertySlotByIndex):

10:03 PM Changeset in webkit [264894] by ysuzuki@apple.com
  • 23 edits
    2 adds in trunk/JSTests

Update test262
https://bugs.webkit.org/show_bug.cgi?id=214791

Reviewed by Ross Kirsling.

  • test262/config.yaml:
  • test262/expectations.yaml:
  • test262/harness/async-gc.js:
  • test262/latest-changes-summary.txt:
  • test262/test/annexB/language/expressions/typeof/emulates-undefined.js: Added.
  • test262/test/built-ins/FinalizationRegistry/gc-has-one-chance-to-call-cleanupCallback.js:
  • test262/test/built-ins/FinalizationRegistry/prototype/cleanupSome/callback-not-callable-throws.js:
  • test262/test/built-ins/FinalizationRegistry/prototype/cleanupSome/cleanup-prevented-with-reference.js:
  • test262/test/built-ins/FinalizationRegistry/prototype/cleanupSome/cleanup-prevented-with-unregister.js:
  • test262/test/built-ins/FinalizationRegistry/prototype/cleanupSome/custom-this.js:
  • test262/test/built-ins/FinalizationRegistry/prototype/cleanupSome/holdings-multiple-values.js:
  • test262/test/built-ins/FinalizationRegistry/prototype/cleanupSome/length.js:
  • test262/test/built-ins/FinalizationRegistry/prototype/cleanupSome/name.js:
  • test262/test/built-ins/FinalizationRegistry/prototype/cleanupSome/prop-desc.js:
  • test262/test/built-ins/FinalizationRegistry/prototype/cleanupSome/reentrancy.js:
  • test262/test/built-ins/FinalizationRegistry/prototype/cleanupSome/return-undefined-with-gc.js:
  • test262/test/built-ins/FinalizationRegistry/prototype/cleanupSome/return-undefined.js:
  • test262/test/built-ins/FinalizationRegistry/prototype/cleanupSome/this-does-not-have-internal-cells-throws.js:
  • test262/test/built-ins/FinalizationRegistry/prototype/cleanupSome/this-not-object-throws.js:
  • test262/test/built-ins/FinalizationRegistry/prototype/unregister/unregister-cleaned-up-cell.js:
  • test262/test/built-ins/WeakRef/prototype/deref/gc-cleanup-not-prevented-with-wr-deref.js:
  • test262/test/intl402/DisplayNames/length.js:
  • test262/test262-Revision.txt:
9:00 PM Changeset in webkit [264893] by Wenson Hsieh
  • 4 edits
    1 add in trunk

[iOS] Crash under ValidationBubble::setAnchorRect when showing form validation UI in unparented view
https://bugs.webkit.org/show_bug.cgi?id=214789
<rdar://problem/66104012>

Reviewed by Tim Horton.

Source/WebCore:

On iOS, in the case where WKWebView is unparented (or is otherwise missing a root view controller, or the
private WKUIDelegate method -_presentingViewControllerForWebView: returns nil), we end up crashing under
ValidationBubble::setAnchorRect while attempting to add presentingViewController.view (which is nil) to an
array of passthrough views.

Since fallbackViewController is not guaranteed to successfully find a view controller anyways, make this
scenario fail gracefully with a null check, instead of crashing the app.

Test: FormValidation.PresentingFormValidationUIWithoutViewControllerDoesNotCrash

  • platform/ios/ValidationBubbleIOS.mm:

(WebCore::ValidationBubble::setAnchorRect):

Tools:

Add an API test that reproduces the crash.

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKitCocoa/FormValidation.mm: Added.
5:39 PM Changeset in webkit [264892] by Wenson Hsieh
  • 13 edits in trunk

REGRESSION (r264690): [ iOS wk2 ] editing/selection/shift-click-includes-existing-selection.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=214688
<rdar://problem/65993683>

Reviewed by Tim Horton.

Source/WebCore/PAL:

  • pal/spi/ios/GraphicsServicesSPI.h:

Source/WebKit:

Add an SPI declaration on UIApplication.

  • Platform/spi/ios/UIKitSPI.h:

Tools:

Continue to add logging in an attempt to debug this flaky test.

  • WebKitTestRunner/ios/mainIOS.mm:

(-[WebKitTestRunnerApp handleKeyHIDEvent:]):
(-[WebKitTestRunnerApp _handleHIDEvent:]): Drive-by fix: add a missing call to the superclass method.

WebKitLibraries:

Declare the symbol for GSKeyboardGetLiveModifierState(), for non-internal builds.

  • WebKitPrivateFrameworkStubs/appletvos/13/GraphicsServices.framework/GraphicsServices.tbd:
  • WebKitPrivateFrameworkStubs/appletvos/14/GraphicsServices.framework/GraphicsServices.tbd:
  • WebKitPrivateFrameworkStubs/iOS/13/GraphicsServices.framework/GraphicsServices.tbd:
  • WebKitPrivateFrameworkStubs/iOS/14/GraphicsServices.framework/GraphicsServices.tbd:
  • WebKitPrivateFrameworkStubs/watchos/6/GraphicsServices.framework/GraphicsServices.tbd:
  • WebKitPrivateFrameworkStubs/watchos/7/GraphicsServices.framework/GraphicsServices.tbd:
3:33 PM Changeset in webkit [264891] by Simon Fraser
  • 12 edits in trunk

Some scroll snap cleanup
https://bugs.webkit.org/show_bug.cgi?id=214788

Reviewed by Wenson Hsieh.
Source/WebCore:

Mostly cleanup in updateSnapOffsetsForScrollableArea() related to getting the scroll limits,
which changes behavior.

updateSnapOffsetsForScrollableArea() was manually computing the scroll limits with
scrollingElementBox.scrollWidth() - scrollingElementBox.contentWidth(), but needs to use
the same computation that scrolling uses, namely scrollableArea.maximumScrollOffset().
This changes results, since the old code could compute offsets outside of the scroll limits.
It can also get the scrollPosition from the scrollableArea, instead of going via Element.

When computing scroll offsets, explicitly round now (which changes some test results).

  • page/scrolling/AxisScrollSnapOffsets.cpp:

(WebCore::updateSnapOffsetsForScrollableArea):

  • platform/ScrollAnimator.cpp:

(WebCore::ScrollAnimator::updateActiveScrollSnapIndexForOffset): Explicitly round.

  • platform/ScrollTypes.h:
  • platform/ScrollableArea.h:
  • platform/cocoa/ScrollController.h:
  • platform/cocoa/ScrollController.mm:

(WebCore::ScrollController::setActiveScrollSnapIndicesForOffset): Use ScrollOffset instead
of x,y.

LayoutTests:

New results.

  • css3/scroll-snap/scroll-snap-children-with-padding-expected.txt:
  • css3/scroll-snap/scroll-snap-children-with-transforms-expected.txt:
  • css3/scroll-snap/scroll-snap-offsets-expected.txt:
  • css3/scroll-snap/scroll-snap-positions-expected.txt:
1:02 PM Changeset in webkit [264890] by Wenson Hsieh
  • 2 edits in trunk/Tools

REGRESSION (r264690): [ iOS wk2 ] editing/selection/shift-click-includes-existing-selection.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=214688
<rdar://problem/65993683>

Reviewed by Tim Horton.

Attempt a second speculative fix that waits for the keydown HID event to be dequeued and handled by
UIApplication when simulating a shift-tap, to guarantee that the synthetic click gesture recognizer has
up-to-date modifier flags upon dispatching the synthetic HID events on tap.

It's unclear how or why the current implementation might result in the gesture recognizer not being updated with
the right modifier flags, since events in the HID event queue should be handled in order.

  • WebKitTestRunner/ios/UIScriptControllerIOS.mm:

(WTR::UIScriptControllerIOS::singleTapAtPointWithModifiers):

12:48 PM Changeset in webkit [264889] by commit-queue@webkit.org
  • 7 edits in trunk/Source/WebCore

[WebGL2] Context state updates
https://bugs.webkit.org/show_bug.cgi?id=209513

Patch by Kenneth Russell <kbr@chromium.org> on 2020-07-25
Reviewed by Dean Jackson.

Refactor a few methods related to context state to reduce
duplicated code between WebGL 1.0 and 2.0. No behavioral changes.

Covered by existing WebGL conformance tests.

  • html/canvas/WebGL2RenderingContext.cpp:

(WebCore::WebGL2RenderingContext::validateCapability):
(WebCore::WebGL2RenderingContext::clear): Deleted.
(WebCore::WebGL2RenderingContext::hint): Deleted.

  • html/canvas/WebGL2RenderingContext.h:
  • html/canvas/WebGLRenderingContext.cpp:

(WebCore::WebGLRenderingContext::hint): Deleted.
(WebCore::WebGLRenderingContext::clear): Deleted.
(WebCore::WebGLRenderingContext::validateCapability): Deleted.

  • html/canvas/WebGLRenderingContext.h:
  • html/canvas/WebGLRenderingContextBase.cpp:

(WebCore::WebGLRenderingContextBase::clear):
(WebCore::WebGLRenderingContextBase::hint):
(WebCore::WebGLRenderingContextBase::validateCapability):

  • html/canvas/WebGLRenderingContextBase.h:

Jul 24, 2020:

10:58 PM Changeset in webkit [264888] by beidson@apple.com
  • 2 edits in trunk/Source/WebCore/PAL

Declare two more things to fix the build after r264874

  • pal/spi/mac/IOKitSPIMac.h:
10:42 PM Changeset in webkit [264887] by beidson@apple.com
  • 2 edits in trunk/Source/WebCore

Throw another one on the pile take 2.

  • platform/gamepad/cocoa/GameControllerGamepadProvider.mm:

(WebCore::GameControllerGamepadProvider::controllerDidConnect): Back to the NSString* trick now

we know the function is declared.

10:29 PM Changeset in webkit [264886] by beidson@apple.com
  • 2 edits in trunk/Source/WebCore

Throw another one on the pile.

  • platform/gamepad/cocoa/GameControllerGamepadProvider.mm: (Actually include the SPI header)
10:22 PM Changeset in webkit [264885] by beidson@apple.com
  • 4 edits in trunk/Source/WebCore

Maybe the last build fix after r264874

Source/WebCore:

  • platform/gamepad/cocoa/GameControllerGamepadProvider.mm:

Source/WebCore/PAL:

  • pal/spi/mac/IOKitSPIMac.h:
9:54 PM Changeset in webkit [264884] by beidson@apple.com
  • 2 edits in trunk/Source/WebCore

Yet another (bizarre?) attempted build fix after r264874

  • platform/gamepad/cocoa/GameControllerGamepadProvider.mm:

(WebCore::GameControllerGamepadProvider::controllerDidConnect): The last attempt revealed the real

problem - missing declaration for this function. *sigh*

9:37 PM Changeset in webkit [264883] by beidson@apple.com
  • 2 edits in trunk/Source/WebCore

Another (bizarre?) attempted build fix after r264874

  • platform/gamepad/cocoa/GameControllerGamepadProvider.mm:

(WebCore::GameControllerGamepadProvider::controllerDidConnect): The CFSTR macro was wonky

for unknown reasons...? Let's try it this way.

8:52 PM Changeset in webkit [264882] by Wenson Hsieh
  • 6 edits in trunk

REGRESSION (r264690): [ iOS wk2 ] editing/selection/shift-click-includes-existing-selection.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=214688
<rdar://problem/65993683>

Reviewed by Megan Gardner.

Source/WebKit:

Add more logging to try and see why this test is failing on some post-commit iOS bots. In particular, these logs
should test a theory that it's possible for UIScriptControllerIOS::singleTapAtPointWithModifiers to try and
synthesize and send HID events for the tap before GraphicsServices has registered the fact that a modifier key
is being held, which would lead to a regular tap instead of a shift-tap in this test.

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView _singleTapIdentified:]):
(-[WKContentView _singleTapRecognized:]):

  • UIProcess/ios/WebPageProxyIOS.mm:

(WebKit::WebPageProxy::commitPotentialTap):

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::handleSyntheticClick):

Tools:

  • WebKitTestRunner/ios/UIScriptControllerIOS.mm:

(WTR::UIScriptControllerIOS::singleTapAtPointWithModifiers):

8:21 PM Changeset in webkit [264881] by beidson@apple.com
  • 2 edits in trunk/Source/WebCore

Build fix after r264874

Remove all nullability specifiers because just having one goes viral.

  • platform/gamepad/cocoa/GameControllerSPI.h:
8:10 PM Changeset in webkit [264880] by achristensen@apple.com
  • 4 edits
    2 adds in trunk

Null check frame in Document::dispatchDisabledAdaptationsDidChangeForMainFrame and a few other places
https://bugs.webkit.org/show_bug.cgi?id=214715
<rdar://problem/65467702>

Reviewed by Geoffrey Garen.

Source/WebCore:

Test: security/mutation-observer-frame-detach.html

  • dom/Document.cpp:

(WebCore::Document::didBecomeCurrentDocumentInFrame):
(WebCore::Document::initContentSecurityPolicy):

  • loader/DocumentLoader.cpp:

(WebCore::DocumentLoader::commitData):
Add some null checks and early returns if the frame detaches.

  • loader/SubframeLoader.cpp:

(WebCore::FrameLoader::SubframeLoader::loadSubframe):
Balance the call to incrementLoadEventDelayCount in the early return case or this test never finishes loading.

LayoutTests:

  • security/mutation-observer-frame-detach-expected.txt: Added.
  • security/mutation-observer-frame-detach.html: Added.
7:59 PM Changeset in webkit [264879] by ysuzuki@apple.com
  • 2 edits in trunk

Add project.pbxproj editorconfig entry
https://bugs.webkit.org/show_bug.cgi?id=214778

Reviewed by Mark Lam.

We should use tab for project.pbxproj file.

  • .editorconfig:
7:59 PM Changeset in webkit [264878] by commit-queue@webkit.org
  • 4 edits
    2 adds in trunk

Fix assertion when highlighting in detached frames and make loads complete
https://bugs.webkit.org/show_bug.cgi?id=214770

Patch by Alex Christensen <achristensen@webkit.org> on 2020-07-24
Reviewed by Geoffrey Garen.

Source/WebCore:

There's an assertion added in r53218 I think should be an early return.
It can be triggered by an interesting test I found while looking into rdar://problem/65467702
I also needed to balance the call to incrementLoadEventDelayCount in an early return in order to get the test to finish loading.

Test: fast/editing/frame-selection-is-not-caret.html

  • editing/FrameSelection.cpp:

(WebCore::FrameSelection::caretBlinkTimerFired):

  • loader/SubframeLoader.cpp:

(WebCore::FrameLoader::SubframeLoader::loadSubframe):

LayoutTests:

  • fast/editing/frame-selection-is-not-caret-expected.txt: Added.
  • fast/editing/frame-selection-is-not-caret.html: Added.
7:14 PM Changeset in webkit [264877] by dino@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

JavaScriptCore Xcode project has some errors
https://bugs.webkit.org/show_bug.cgi?id=214775

Reviewed by Yusuke Suzuki.

When looking at the build output for JavaScriptCore I noticed two
weird errors in the Xcode project file. Firstly, there was a broken
group called "runtime" that was causing some files to appear
duplicated. Secondly, there was a generated file
WebAssemblyCompileErrorConstructor.lut.h whose location was
incorrectly identified as being part of the project source.

Xcode moved a bunch of other things around, but it seems to compile
fine. Weirdly, the diff shows that the project file had unusual
whitespace. I wonder if it had been edited by hand.

7:09 PM Changeset in webkit [264876] by msaboff@apple.com
  • 3 edits
    2 adds in trunk

Fixed exception check handling below ScheduledAction::executeFunctionInContext()
https://bugs.webkit.org/show_bug.cgi?id=214774

Reviewed by Mark Lam.

Source/WebCore:

Test: js/dom/scheduled-action-exception-checks.html

  • bindings/js/ScheduledAction.cpp:

(WebCore::ScheduledAction::executeFunctionInContext):

LayoutTests:

New test.

  • js/dom/scheduled-action-exception-checks-expected.txt: Added.
  • js/dom/scheduled-action-exception-checks.html: Added.
7:00 PM Changeset in webkit [264875] by Beth Dakin
  • 2 edits in trunk/Tools

Adopt inclusive WKBrowsingContextGroup SPI in the API tests
https://bugs.webkit.org/show_bug.cgi?id=214766

Reviewed by Darin Adler.

Adopt the newer version of this SPI, added in https://trac.webkit.org/changeset/263099/webkit

  • TestWebKitAPI/Tests/WebKitObjC/UserContentTest.mm:

(TEST_F):

6:28 PM Changeset in webkit [264874] by beidson@apple.com
  • 17 edits
    1 copy
    5 adds in trunk

Hard code some MFi controller devices instead of dynamically managing HID vs GameController.framework.
rdar://problem/65961406 and https://bugs.webkit.org/show_bug.cgi?id=214664

Reviewed by Tim Horton.

Source/WebCore:

Covered by API tests.

I'd added code to dynamically tell whether a device would be handled by GameController.framework or IOHID.
On macOS Big Sur, it works flawlessly.
On Catalina, it doesn't.

The key problem being that GameController.framework will try to handle some controllers it should not.

Instead, we can use a hard coded list of the controllers that are most important to support using GCF.

The GCF provider and HID provider coordinate on that list when deciding if they should handle a new device.

The worst case scenario for that list missing an important controller is that it would be handled in HID
instead of GCF, so some features may be missing.

  • Modules/gamepad/GamepadManager.cpp:

(WebCore::GamepadManager::makeGamepadVisible):

  • platform/gamepad/cocoa/GameControllerGamepadProvider.h:

(WebCore::GameControllerGamepadProvider::numberOfConnectedGamepads const):

  • platform/gamepad/cocoa/GameControllerGamepadProvider.mm:

(WebCore::GameControllerGamepadProvider::willHandleVendorAndProduct):
(WebCore::GameControllerGamepadProvider::controllerDidConnect):

  • platform/gamepad/cocoa/GameControllerSPI.h:
  • platform/gamepad/mac/HIDGamepadProvider.h:

(WebCore::HIDGamepadProvider::numberOfConnectedGamepads const):

  • platform/gamepad/mac/HIDGamepadProvider.mm:

(WebCore::deviceAddedCallback):
(WebCore::gameControllerFrameworkWillHandleHIDDevice):
(WebCore::HIDGamepadProvider::deviceAdded):
(WebCore::HIDGamepadProvider::deviceRemoved):
(WebCore::HIDGamepadProvider::waitForManagementDecisionForDevice): Deleted.
(WebCore::HIDGamepadProvider::removeDeviceWaitingForManagementDecision): Deleted.
(WebCore::HIDGamepadProvider::gamePadServiceWasPublished): Deleted.

Source/WebKit:

Add more test-only SPI to monitor the state of connected gamepads.

  • UIProcess/API/Cocoa/WKProcessPool.mm:

(-[WKProcessPool _numberOfConnectedGamepadsForTesting]):
(-[WKProcessPool _numberOfConnectedHIDGamepadsForTesting]):
(-[WKProcessPool _numberOfConnectedGameControllerFrameworkGamepadsForTesting]):

  • UIProcess/API/Cocoa/WKProcessPoolPrivate.h:
  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::numberOfConnectedGamepadsForTesting):

  • UIProcess/WebProcessPool.h:

Tools:

Now that we have more than 1 kind of virtual gamepad (5 to be precise), refactor the VirtualGamepad
mechanism to support easily configurable gamepad mappings.

Each gamepad mapping has its own descriptor and a report derived from it.

The virtual devices trigger the correct "HID vs GCF" behavior via their complete descriptors.

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/mac/HIDGamepads.mm:

(-[GamepadMessageHandler userContentController:didReceiveScriptMessage:]):

  • TestWebKitAPI/mac/GamepadMappings/MicrosoftXboxOne.mm: Added.

(TestWebKitAPI::publishReportCallback):
(TestWebKitAPI::VirtualGamepad::microsoftXboxOneMapping):

  • TestWebKitAPI/mac/GamepadMappings/ShenzhenLongshengweiTechnologyGamepad.mm: Added.

(TestWebKitAPI::publishReportCallback):
(TestWebKitAPI::VirtualGamepad::shenzhenLongshengweiTechnologyGamepadMapping):

  • TestWebKitAPI/mac/GamepadMappings/SonyDualShock4.mm: Added.

(TestWebKitAPI::publishReportCallback):
(TestWebKitAPI::VirtualGamepad::sonyDualshock4Mapping):

  • TestWebKitAPI/mac/GamepadMappings/SteelSeriesNimbus.mm: Copied from Tools/TestWebKitAPI/mac/VirtualGamepad.mm.

(TestWebKitAPI::publishReportCallback):
(TestWebKitAPI::VirtualGamepad::steelSeriesNimbusMapping):

  • TestWebKitAPI/mac/GamepadMappings/SunLightApplicationGenericNES.mm: Added.

(TestWebKitAPI::publishReportCallback):
(TestWebKitAPI::VirtualGamepad::sunLightApplicationGenericNESMapping):

  • TestWebKitAPI/mac/VirtualGamepad.h:
  • TestWebKitAPI/mac/VirtualGamepad.mm:

(TestWebKitAPI::VirtualGamepad::VirtualGamepad):
(TestWebKitAPI::VirtualGamepad::publishReport):
(TestWebKitAPI::VirtualGamepad::makeVirtualNimbus): Deleted.

5:25 PM Changeset in webkit [264873] by ysuzuki@apple.com
  • 27 edits in trunk

[JSC] Skip unrelated / too-compute-heavy tests in Apple Watch Series 3
https://bugs.webkit.org/show_bug.cgi?id=214768

Reviewed by Mark Lam.

JSTests:

We skip following tests in Apple Watch Series 3.

  1. Tests take very long time to reproduce crash.
  2. Tests for FTL, which are unrelated to Apple Watch Series 3.
  3. Tests for fast for-of semantics update, which is not supported in 32bit architectures.
  4. Tests for denormalized numbers where ceil / floor works differently in ARMv7k as expected.
  • ChakraCore.yaml:
  • stress/for-of-iterator-open-osr-at-inlined-return-non-object.js:
  • stress/for-of-iterator-open-osr-at-iterator-set-local.js:
  • stress/for-of-iterator-open-return-non-object.js:
  • stress/op_bitand.js:
  • stress/op_bitor.js:
  • stress/op_bitxor.js:
  • stress/op_lshift-ConstVar.js:
  • stress/op_lshift-VarConst.js:
  • stress/op_lshift-VarVar.js:
  • stress/op_mul-ConstVar.js:
  • stress/op_mul-VarConst.js:
  • stress/op_mul-VarVar.js:
  • stress/op_rshift-ConstVar.js:
  • stress/op_rshift-VarConst.js:
  • stress/op_rshift-VarVar.js:
  • stress/op_sub-ConstVar.js:
  • stress/op_sub-VarConst.js:
  • stress/op_sub-VarVar.js:
  • stress/op_urshift-ConstVar.js:
  • stress/op_urshift-VarConst.js:
  • stress/op_urshift-VarVar.js:
  • stress/spread-forward-call-varargs-stack-overflow.js:
  • stress/toctou-having-a-bad-time-new-array.js:

LayoutTests:

  • js/script-tests/math-denorm.js:
5:12 PM Changeset in webkit [264872] by Jonathan Bedard
  • 2 edits in trunk/Tools

pep8.py:110: FutureWarning: Possible nested set at position 1 (Follow-up fix)
https://bugs.webkit.org/show_bug.cgi?id=214531

Unreviewed test fix.

  • Scripts/webkitpy/thirdparty/init_unittest.py:

(ThirdpartyTest.test_imports): Auto-import of pep8 has been removed.

4:56 PM Changeset in webkit [264871] by Devin Rousso
  • 2 edits in trunk/Source/WebKit

Followup, adopt more descriptive symbol image name for non-LTR
https://bugs.webkit.org/show_bug.cgi?id=214764
<rdar://problem/64000059>

Reviewed by Tim Horton.

  • UIProcess/API/Cocoa/_WKElementAction.mm:

(+[_WKElementAction imageForElementActionType:]):

4:42 PM Changeset in webkit [264870] by Ryan Haddad
  • 2 edits in trunk/Source/WebKit

Unreviewed, reverting r264858.

Caused spurious CRASHING TEST logging during layout test runs

Reverted changeset:

"WebKit::setCrashReportApplicationSpecificInformation() should
also log to WTFLogAlways()"
https://bugs.webkit.org/show_bug.cgi?id=214756
https://trac.webkit.org/changeset/264858

4:40 PM Changeset in webkit [264869] by commit-queue@webkit.org
  • 4 edits in trunk/LayoutTests

[ macO iOS ] http/tests/xmlhttprequest/cross-origin-cookie-storage.html is passing and needs expectations removed
https://bugs.webkit.org/show_bug.cgi?id=214767

Unreviewed test gardening.

Patch by Hector Lopez <Hector Lopez> on 2020-07-24

  • platform/ios-wk1/TestExpectations:
  • platform/ios/TestExpectations:
  • platform/mac/TestExpectations:
4:18 PM Changeset in webkit [264868] by Wenson Hsieh
  • 2 edits in trunk/LayoutTests

REGRESSION (r264690): [ iOS wk2 ] editing/selection/shift-click-includes-existing-selection.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=214688
<rdar://problem/65993683>

Reviewed by Darin Adler.

On iOS, this test simulates a "Shift + tap" and verifies that it extends an existing selection. However, it's
possible for this test to fail if the selection view appears before the tap completes, since the tap may be too
close to one of the selection handle views, causing -[UITextRangeView gestureRecognizerShouldBegin:] to return
NO and cause the synthetic click gesture to fail in favor of toggling the visibility of the callout bar above
the selection view.

Mitigate this by simply adding a large margin between the existing selection and the tap location, to which the
test attempts to extend the selection.

  • editing/selection/shift-click-includes-existing-selection.html:
4:15 PM Changeset in webkit [264867] by Tadeu Zagallo
  • 7 edits
    2 adds in trunk

WKStringGetMaximumUTF8CStringSize should cast before arithmetic
https://bugs.webkit.org/show_bug.cgi?id=214750
<rdar://problem/65884455>

Reviewed by Mark Lam.

Source/WebKit:

When the string is long enough, the multiplication can result in an integer overflow.

Test: js/throw-large-string-oom.html

  • Shared/API/c/WKString.cpp:

(WKStringGetMaximumUTF8CStringSize):

Tools:

  • WebKitTestRunner/InjectedBundle/InjectedBundle.cpp:

(WTR::InjectedBundle::dumpToStdErr):
(WTR::InjectedBundle::outputText):

LayoutTests:

  • TestExpectations:
  • js/throw-large-string-oom-expected.txt: Added.
  • js/throw-large-string-oom.html: Added.
  • platform/wk2/TestExpectations:
3:56 PM Changeset in webkit [264866] by mark.lam@apple.com
  • 3 edits
    2 adds in trunk

Fix exception check handling below postMessage().
https://bugs.webkit.org/show_bug.cgi?id=214761
<rdar://problem/65932136>

Reviewed by Yusuke Suzuki and Keith Miller.

Source/WebCore:

Test: js/dom/missing-exception-check-below-postMessage.html

  • bindings/js/JSDOMConvertSequences.h:

(WebCore::Detail::SequenceConverter::convertArray):
(WebCore::Detail::SequenceConverter::convert):

LayoutTests:

  • js/dom/missing-exception-check-below-postMessage-expected.txt: Added.
  • js/dom/missing-exception-check-below-postMessage.html: Added.
3:53 PM Changeset in webkit [264865] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

REGRESSION (r264845): webgl/2.0.0/conformance2/textures/misc/tex-unpack-params.html is failing
https://bugs.webkit.org/show_bug.cgi?id=214763

Unreviewed test gardening.

This test's failing a few cases on some hardware - the MacMini8,1
bots specifically. Mark it [ Pass Failure ] until this can be
investigated.

Patch by Kenneth Russell <kbr@chromium.org> on 2020-07-24

3:52 PM Changeset in webkit [264864] by eric.carlson@apple.com
  • 2 edits in trunk/Source/WebCore

[Cocoa] Tell AVAssetResourceLoadingContentInformationRequest that asset size is available immediately
https://bugs.webkit.org/show_bug.cgi?id=214759
<rdar://problem/63751958>

Reviewed by Jer Noble.

  • platform/graphics/avfoundation/objc/WebCoreAVFResourceLoader.mm:

(WebCore::WebCoreAVFResourceLoader::responseReceived):

3:47 PM Changeset in webkit [264863] by Devin Rousso
  • 2 edits in trunk/Source/WebKit

Adopt more descriptive symbol image name
https://bugs.webkit.org/show_bug.cgi?id=214764
<rdar://problem/64000059>

Reviewed by Dean Jackson.

  • UIProcess/API/Cocoa/_WKElementAction.mm:

(+[_WKElementAction imageForElementActionType:]):

3:21 PM Changeset in webkit [264862] by Chris Dumez
  • 1 edit
    1 add
    1 delete in trunk/LayoutTests

Unreviewed, land baseline for web-platform-tests/encoding/eof-shift_jis.html.

  • web-platform-tests/encoding/eof-shift_jis-expected.html: Added.
3:04 PM Changeset in webkit [264861] by Russell Epstein
  • 1 copy in tags/Safari-610.1.23.1.2

Tag Safari-610.1.23.1.2.

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

[macOS WK1] imported/w3c/web-platform-tests/svg/path/distance/pathlength-path-mutating.svg is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=214760

Unreviewed test gardening.

  • platform/mac-wk1/TestExpectations: Mark test as flaky.
2:32 PM Changeset in webkit [264859] by Kate Cheney
  • 2 edits in trunk/Source/WebKit

CrashTracer: com.apple.WebKit.WebContent at com.apple.WebKit: WebKit::WebFrame::shouldEnableInAppBrowserPrivacyProtections
https://bugs.webkit.org/show_bug.cgi?id=214745
<rdar://66018965>

Reviewed by Chris Dumez.

We should stop iterating if the frame is null, even if it is not
the main frame, to avoid calling functions on a null frame.

  • WebProcess/WebPage/WebFrame.cpp:

(WebKit::WebFrame::shouldEnableInAppBrowserPrivacyProtections):

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

WebKit::setCrashReportApplicationSpecificInformation() should also log to WTFLogAlways()
<https://webkit.org/b/214756>

Reviewed by Chris Dumez.

  • Platform/cocoa/WKCrashReporter.mm:

(WebKit::setCrashReportApplicationSpecificInformation):

  • Also output the log information via WTFLogAlways() in case Application Specific Information is overwritten or is not included in the crash log.
2:29 PM Changeset in webkit [264857] by ysuzuki@apple.com
  • 6 edits
    1 add in trunk

[JSC] DFG::AbstractValue::filterByValue should re-filter configured m_value via m_type
https://bugs.webkit.org/show_bug.cgi?id=214721
<rdar://problem/65882837>

Reviewed by Mark Lam.

JSTests:

  • stress/speculation-from-structure-and-classinfo-should-agree.js: Added.

(bar):
(foo):

Source/JavaScriptCore:

Let's consider the following case.

  1. Input AbstractValue is saying SpecObjectOther.
  2. We have CheckIsConstant with StringPrototype (which is SpecObjectOther | SpecStringObject in the current SpeculatedType).
  3. We call filterByValue, which filters m_type by SpecObjectOther | SpecStringObject. But the filtered m_type is SpecObjectOther since (2)'s SpeculatedType is broader.
  4. We store the given constant (StringPrototype) to m_value.
  5. This AbstractValue's m_type is SpecObjectOther while its m_value's SpeculatedType is SpecObjectOther | SpecStringObject. Contradiction!

When setting m_value by filterByValue, we should filter m_value with m_type to ensure that m_value is the expected one.
This patch also avoid using SpecObjectOther | SpecStringObject for StringPrototype since we can return narrower type for that.

  • bytecode/SpeculatedType.cpp:

(JSC::speculationFromStructure):

  • dfg/DFGAbstractValue.cpp:

(JSC::DFG::AbstractValue::filterByValue):
(JSC::DFG::AbstractValue::filter):

  • dfg/DFGPredictionPropagationPhase.cpp:
  • runtime/StringObject.cpp:

(JSC::StringObject::finishCreation):

2:03 PM Changeset in webkit [264856] by Simon Fraser
  • 9 edits
    2 adds in trunk

steps() timing function on a transform animation triggers a render every frame
https://bugs.webkit.org/show_bug.cgi?id=214712
<rdar://problem/62737868>

Reviewed by Tim Horton.

Source/WebCore:

An animation of transform, with a steps() timing function, would schedule a rendering
update on every frame. This happened because KeyframeEffect::updateAcceleratedActions()
would keep trying, and failing to start the accelerated animation every frame, since
GraphicsLayerCA refuses to run accelerated animations with steps timing functions.

Fix by making m_isRunningAccelerated an Optional<>, which gets a value once we've tried
to run the animation the first time. Also ensure that we re-try if the timing
function changes, via animationDidChangeTimingProperties().

Test: animations/steps-transform-rendering-updates.html

  • animation/KeyframeEffect.cpp:

(WebCore::KeyframeEffect::isRunningAcceleratedAnimationForProperty const):
(WebCore::KeyframeEffect::updateAcceleratedActions):
(WebCore::KeyframeEffect::animationDidChangeTimingProperties):
(WebCore::KeyframeEffect::animationWasCanceled):
(WebCore::KeyframeEffect::willChangeRenderer):
(WebCore::KeyframeEffect::animationSuspensionStateDidChange):
(WebCore::KeyframeEffect::applyPendingAcceleratedActions):

  • animation/KeyframeEffect.h:

(WebCore::KeyframeEffect::isRunningAccelerated const):

  • page/Page.cpp:

(WebCore::Page::startTrackingRenderingUpdates):
(WebCore::Page::renderingUpdateCount const):
(WebCore::Page::updateRendering):

  • page/Page.h:
  • testing/Internals.cpp:

(WebCore::Internals::startTrackingRenderingUpdates):
(WebCore::Internals::renderingUpdateCount):

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

LayoutTests:

  • animations/steps-transform-rendering-updates-expected.txt: Added.
  • animations/steps-transform-rendering-updates.html: Added.
2:01 PM Changeset in webkit [264855] by mark.lam@apple.com
  • 62 edits
    2 adds in trunk

Fix JS bindings code to DECLARE_THROW_SCOPE in the functions that can throw instead of passing a ThrowScope around.
https://bugs.webkit.org/show_bug.cgi?id=214695
<rdar://problem/65927049>

Reviewed by Yusuke Suzuki.

Source/WebCore:

There are a few exceptions where it makes sense to pass a ThrowScope&, but those
are rare. Unless one has a very good reason to do so, the best practice is to
always DECLARE_THROW_SCOPE in the functions that can throw.

Test: js/dom/missing-exception-check-below-queueMicrotask.html

  • bindings/js/JSDOMAttribute.h:

(WebCore::IDLAttribute::set):
(WebCore::IDLAttribute::setStatic):
(WebCore::IDLAttribute::get):
(WebCore::IDLAttribute::getStatic):

  • bindings/js/JSDOMIterator.h:

(WebCore::iteratorForEach):

  • bindings/js/JSDOMOperation.h:

(WebCore::IDLOperation::call):
(WebCore::IDLOperation::callStatic):

  • bindings/js/JSDOMOperationReturningPromise.h:

(WebCore::IDLOperationReturningPromise::call):
(WebCore::IDLOperationReturningPromise::callReturningOwnPromise):
(WebCore::IDLOperationReturningPromise::callStatic):
(WebCore::IDLOperationReturningPromise::callStaticReturningOwnPromise):

  • bindings/js/JSDOMWindowCustom.cpp:

(WebCore::jsDOMWindowInstanceFunctionOpenDatabaseBody):

  • bindings/js/JSEventTargetCustom.h:

(WebCore::IDLOperation<JSEventTarget>::call):

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateHeader):
(GenerateAttributeGetterBodyDefinition):
(GenerateAttributeSetterBodyDefinition):
(GenerateOperationBodyDefinition):
(GenerateSerializerDefinition):
(GenerateWriteBarriersForArguments):
(GenerateImplementationCustomFunctionCall):
(GenerateIterableDefinition):
(NativeToJSValueMayThrow):
(NativeToJSValue):

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

(WebCore::jsMapLikeSizeGetter):
(WebCore::jsMapLikePrototypeFunctionGetBody):
(WebCore::jsMapLikePrototypeFunctionHasBody):
(WebCore::jsMapLikePrototypeFunctionEntriesBody):
(WebCore::jsMapLikePrototypeFunctionKeysBody):
(WebCore::jsMapLikePrototypeFunctionValuesBody):
(WebCore::jsMapLikePrototypeFunctionForEachBody):
(WebCore::jsMapLikePrototypeFunctionSetBody):
(WebCore::jsMapLikePrototypeFunctionClearBody):
(WebCore::jsMapLikePrototypeFunctionDeleteBody):

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

(WebCore::jsReadOnlyMapLikeSizeGetter):
(WebCore::jsReadOnlyMapLikePrototypeFunctionGetBody):
(WebCore::jsReadOnlyMapLikePrototypeFunctionHasBody):
(WebCore::jsReadOnlyMapLikePrototypeFunctionEntriesBody):
(WebCore::jsReadOnlyMapLikePrototypeFunctionKeysBody):
(WebCore::jsReadOnlyMapLikePrototypeFunctionValuesBody):
(WebCore::jsReadOnlyMapLikePrototypeFunctionForEachBody):

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

(WebCore::jsReadOnlySetLikeSizeGetter):
(WebCore::jsReadOnlySetLikePrototypeFunctionHasBody):
(WebCore::jsReadOnlySetLikePrototypeFunctionEntriesBody):
(WebCore::jsReadOnlySetLikePrototypeFunctionKeysBody):
(WebCore::jsReadOnlySetLikePrototypeFunctionValuesBody):
(WebCore::jsReadOnlySetLikePrototypeFunctionForEachBody):

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

(WebCore::jsSetLikeSizeGetter):
(WebCore::jsSetLikePrototypeFunctionHasBody):
(WebCore::jsSetLikePrototypeFunctionEntriesBody):
(WebCore::jsSetLikePrototypeFunctionKeysBody):
(WebCore::jsSetLikePrototypeFunctionValuesBody):
(WebCore::jsSetLikePrototypeFunctionForEachBody):
(WebCore::jsSetLikePrototypeFunctionAddBody):
(WebCore::jsSetLikePrototypeFunctionClearBody):
(WebCore::jsSetLikePrototypeFunctionDeleteBody):

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

(WebCore::jsTestActiveDOMObjectExcitingAttrGetter):
(WebCore::jsTestActiveDOMObjectPrototypeFunctionExcitingFunctionBody):
(WebCore::jsTestActiveDOMObjectPrototypeFunctionPostMessageBody):
(WebCore::jsTestActiveDOMObjectPrototypeFunctionOverloadedMethod1Body):
(WebCore::jsTestActiveDOMObjectPrototypeFunctionOverloadedMethod2Body):
(WebCore::jsTestActiveDOMObjectPrototypeFunctionOverloadedMethodOverloadDispatcher):

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

(WebCore::jsTestCEReactionsAttributeWithCEReactionsGetter):
(WebCore::setJSTestCEReactionsAttributeWithCEReactionsSetter):
(WebCore::jsTestCEReactionsReflectAttributeWithCEReactionsGetter):
(WebCore::setJSTestCEReactionsReflectAttributeWithCEReactionsSetter):
(WebCore::jsTestCEReactionsStringifierAttributeGetter):
(WebCore::setJSTestCEReactionsStringifierAttributeSetter):
(WebCore::jsTestCEReactionsAttributeWithCEReactionsNotNeededGetter):
(WebCore::setJSTestCEReactionsAttributeWithCEReactionsNotNeededSetter):
(WebCore::jsTestCEReactionsReflectAttributeWithCEReactionsNotNeededGetter):
(WebCore::setJSTestCEReactionsReflectAttributeWithCEReactionsNotNeededSetter):
(WebCore::jsTestCEReactionsStringifierAttributeNotNeededGetter):
(WebCore::setJSTestCEReactionsStringifierAttributeNotNeededSetter):
(WebCore::jsTestCEReactionsPrototypeFunctionMethodWithCEReactionsBody):
(WebCore::jsTestCEReactionsPrototypeFunctionMethodWithCEReactionsNotNeededBody):

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

(WebCore::jsTestCEReactionsStringifierValueGetter):
(WebCore::setJSTestCEReactionsStringifierValueSetter):
(WebCore::jsTestCEReactionsStringifierValueWithoutReactionsGetter):
(WebCore::setJSTestCEReactionsStringifierValueWithoutReactionsSetter):
(WebCore::jsTestCEReactionsStringifierPrototypeFunctionToStringBody):

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

(WebCore::jsTestCallTracerTestAttributeInterfaceGetter):
(WebCore::setJSTestCallTracerTestAttributeInterfaceSetter):
(WebCore::jsTestCallTracerTestAttributeSpecifiedGetter):
(WebCore::setJSTestCallTracerTestAttributeSpecifiedSetter):
(WebCore::jsTestCallTracerTestAttributeWithVariantGetter):
(WebCore::setJSTestCallTracerTestAttributeWithVariantSetter):
(WebCore::jsTestCallTracerTestReadonlyAttributeGetter):
(WebCore::jsTestCallTracerPrototypeFunctionTestOperationInterfaceBody):
(WebCore::jsTestCallTracerPrototypeFunctionTestOperationSpecifiedBody):
(WebCore::jsTestCallTracerPrototypeFunctionTestOperationWithArgumentsBody):
(WebCore::jsTestCallTracerPrototypeFunctionTestOperationWithNullableArgumentBody):
(WebCore::jsTestCallTracerPrototypeFunctionTestOperationWithVariantArgumentBody):
(WebCore::jsTestCallTracerPrototypeFunctionTestOperationWithNullableVariantArgumentBody):
(WebCore::jsTestCallTracerPrototypeFunctionTestOperationWithOptionalVariantArgumentBody):
(WebCore::jsTestCallTracerPrototypeFunctionTestOperationWithDefaultVariantArgumentBody):

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

(WebCore::jsTestDOMJITAnyAttrGetter):
(WebCore::jsTestDOMJITBooleanAttrGetter):
(WebCore::jsTestDOMJITByteAttrGetter):
(WebCore::jsTestDOMJITOctetAttrGetter):
(WebCore::jsTestDOMJITShortAttrGetter):
(WebCore::jsTestDOMJITUnsignedShortAttrGetter):
(WebCore::jsTestDOMJITLongAttrGetter):
(WebCore::jsTestDOMJITUnsignedLongAttrGetter):
(WebCore::jsTestDOMJITLongLongAttrGetter):
(WebCore::jsTestDOMJITUnsignedLongLongAttrGetter):
(WebCore::jsTestDOMJITFloatAttrGetter):
(WebCore::jsTestDOMJITUnrestrictedFloatAttrGetter):
(WebCore::jsTestDOMJITDoubleAttrGetter):
(WebCore::jsTestDOMJITUnrestrictedDoubleAttrGetter):
(WebCore::jsTestDOMJITDomStringAttrGetter):
(WebCore::jsTestDOMJITByteStringAttrGetter):
(WebCore::jsTestDOMJITUsvStringAttrGetter):
(WebCore::jsTestDOMJITNodeAttrGetter):
(WebCore::jsTestDOMJITBooleanNullableAttrGetter):
(WebCore::jsTestDOMJITByteNullableAttrGetter):
(WebCore::jsTestDOMJITOctetNullableAttrGetter):
(WebCore::jsTestDOMJITShortNullableAttrGetter):
(WebCore::jsTestDOMJITUnsignedShortNullableAttrGetter):
(WebCore::jsTestDOMJITLongNullableAttrGetter):
(WebCore::jsTestDOMJITUnsignedLongNullableAttrGetter):
(WebCore::jsTestDOMJITLongLongNullableAttrGetter):
(WebCore::jsTestDOMJITUnsignedLongLongNullableAttrGetter):
(WebCore::jsTestDOMJITFloatNullableAttrGetter):
(WebCore::jsTestDOMJITUnrestrictedFloatNullableAttrGetter):
(WebCore::jsTestDOMJITDoubleNullableAttrGetter):
(WebCore::jsTestDOMJITUnrestrictedDoubleNullableAttrGetter):
(WebCore::jsTestDOMJITDomStringNullableAttrGetter):
(WebCore::jsTestDOMJITByteStringNullableAttrGetter):
(WebCore::jsTestDOMJITUsvStringNullableAttrGetter):
(WebCore::jsTestDOMJITNodeNullableAttrGetter):
(WebCore::jsTestDOMJITPrototypeFunctionGetAttributeBody):
(WebCore::jsTestDOMJITPrototypeFunctionItemBody):
(WebCore::jsTestDOMJITPrototypeFunctionHasAttributeBody):
(WebCore::jsTestDOMJITPrototypeFunctionGetElementByIdBody):
(WebCore::jsTestDOMJITPrototypeFunctionGetElementsByNameBody):

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

(WebCore::jsTestEnabledBySettingTestSubObjEnabledBySettingConstructorGetter):
(WebCore::setJSTestEnabledBySettingTestSubObjEnabledBySettingConstructorSetter):
(WebCore::jsTestEnabledBySettingEnabledBySettingAttributeGetter):
(WebCore::setJSTestEnabledBySettingEnabledBySettingAttributeSetter):
(WebCore::jsTestEnabledBySettingPrototypeFunctionEnabledBySettingOperationBody):

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

(WebCore::jsTestEnabledForContextTestSubObjEnabledForContextConstructorGetter):
(WebCore::setJSTestEnabledForContextTestSubObjEnabledForContextConstructorSetter):

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

(WebCore::jsTestEventConstructorAttr1Getter):
(WebCore::jsTestEventConstructorAttr2Getter):
(WebCore::jsTestEventConstructorAttr3Getter):

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

(WebCore::jsTestEventTargetPrototypeFunctionItemBody):

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

(WebCore::jsTestExceptionNameGetter):

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

(WebCore::jsTestGenerateIsReachableASecretAttributeGetter):

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

(WebCore::jsTestGlobalObjectRegularAttributeGetter):
(WebCore::setJSTestGlobalObjectRegularAttributeSetter):
(WebCore::jsTestGlobalObjectPublicAndPrivateAttributeGetter):
(WebCore::setJSTestGlobalObjectPublicAndPrivateAttributeSetter):
(WebCore::jsTestGlobalObjectPublicAndPrivateConditionalAttributeGetter):
(WebCore::setJSTestGlobalObjectPublicAndPrivateConditionalAttributeSetter):
(WebCore::jsTestGlobalObjectEnabledAtRuntimeAttributeGetter):
(WebCore::setJSTestGlobalObjectEnabledAtRuntimeAttributeSetter):
(WebCore::jsTestGlobalObjectTestCEReactionsConstructorGetter):
(WebCore::setJSTestGlobalObjectTestCEReactionsConstructorSetter):
(WebCore::jsTestGlobalObjectTestCEReactionsStringifierConstructorGetter):
(WebCore::setJSTestGlobalObjectTestCEReactionsStringifierConstructorSetter):
(WebCore::jsTestGlobalObjectTestCallTracerConstructorGetter):
(WebCore::setJSTestGlobalObjectTestCallTracerConstructorSetter):
(WebCore::jsTestGlobalObjectTestCallbackInterfaceConstructorGetter):
(WebCore::setJSTestGlobalObjectTestCallbackInterfaceConstructorSetter):
(WebCore::jsTestGlobalObjectTestClassWithJSBuiltinConstructorConstructorGetter):
(WebCore::setJSTestGlobalObjectTestClassWithJSBuiltinConstructorConstructorSetter):
(WebCore::jsTestGlobalObjectTestDOMJITConstructorGetter):
(WebCore::setJSTestGlobalObjectTestDOMJITConstructorSetter):
(WebCore::jsTestGlobalObjectTestDomainSecurityConstructorGetter):
(WebCore::setJSTestGlobalObjectTestDomainSecurityConstructorSetter):
(WebCore::jsTestGlobalObjectTestEnabledBySettingConstructorGetter):
(WebCore::setJSTestGlobalObjectTestEnabledBySettingConstructorSetter):
(WebCore::jsTestGlobalObjectTestEnabledForContextConstructorGetter):
(WebCore::setJSTestGlobalObjectTestEnabledForContextConstructorSetter):
(WebCore::jsTestGlobalObjectTestEventConstructorConstructorGetter):
(WebCore::setJSTestGlobalObjectTestEventConstructorConstructorSetter):
(WebCore::jsTestGlobalObjectTestEventTargetConstructorGetter):
(WebCore::setJSTestGlobalObjectTestEventTargetConstructorSetter):
(WebCore::jsTestGlobalObjectTestExceptionConstructorGetter):
(WebCore::setJSTestGlobalObjectTestExceptionConstructorSetter):
(WebCore::jsTestGlobalObjectTestGenerateIsReachableConstructorGetter):
(WebCore::setJSTestGlobalObjectTestGenerateIsReachableConstructorSetter):
(WebCore::jsTestGlobalObjectTestGlobalObjectConstructorGetter):
(WebCore::setJSTestGlobalObjectTestGlobalObjectConstructorSetter):
(WebCore::jsTestGlobalObjectTestIndexedSetterNoIdentifierConstructorGetter):
(WebCore::setJSTestGlobalObjectTestIndexedSetterNoIdentifierConstructorSetter):
(WebCore::jsTestGlobalObjectTestIndexedSetterThrowingExceptionConstructorGetter):
(WebCore::setJSTestGlobalObjectTestIndexedSetterThrowingExceptionConstructorSetter):
(WebCore::jsTestGlobalObjectTestIndexedSetterWithIdentifierConstructorGetter):
(WebCore::setJSTestGlobalObjectTestIndexedSetterWithIdentifierConstructorSetter):
(WebCore::jsTestGlobalObjectTestInterfaceConstructorGetter):
(WebCore::setJSTestGlobalObjectTestInterfaceConstructorSetter):
(WebCore::jsTestGlobalObjectTestInterfaceLeadingUnderscoreConstructorGetter):
(WebCore::setJSTestGlobalObjectTestInterfaceLeadingUnderscoreConstructorSetter):
(WebCore::jsTestGlobalObjectTestIterableConstructorGetter):
(WebCore::setJSTestGlobalObjectTestIterableConstructorSetter):
(WebCore::jsTestGlobalObjectTestJSBuiltinConstructorConstructorGetter):
(WebCore::setJSTestGlobalObjectTestJSBuiltinConstructorConstructorSetter):
(WebCore::jsTestGlobalObjectTestMapLikeConstructorGetter):
(WebCore::setJSTestGlobalObjectTestMapLikeConstructorSetter):
(WebCore::jsTestGlobalObjectTestNamedAndIndexedSetterNoIdentifierConstructorGetter):
(WebCore::setJSTestGlobalObjectTestNamedAndIndexedSetterNoIdentifierConstructorSetter):
(WebCore::jsTestGlobalObjectTestNamedAndIndexedSetterThrowingExceptionConstructorGetter):
(WebCore::setJSTestGlobalObjectTestNamedAndIndexedSetterThrowingExceptionConstructorSetter):
(WebCore::jsTestGlobalObjectTestNamedAndIndexedSetterWithIdentifierConstructorGetter):
(WebCore::setJSTestGlobalObjectTestNamedAndIndexedSetterWithIdentifierConstructorSetter):
(WebCore::jsTestGlobalObjectTestNamedConstructorConstructorGetter):
(WebCore::setJSTestGlobalObjectTestNamedConstructorConstructorSetter):
(WebCore::jsTestGlobalObjectAudioConstructorGetter):
(WebCore::setJSTestGlobalObjectAudioConstructorSetter):
(WebCore::jsTestGlobalObjectTestNamedDeleterNoIdentifierConstructorGetter):
(WebCore::setJSTestGlobalObjectTestNamedDeleterNoIdentifierConstructorSetter):
(WebCore::jsTestGlobalObjectTestNamedDeleterThrowingExceptionConstructorGetter):
(WebCore::setJSTestGlobalObjectTestNamedDeleterThrowingExceptionConstructorSetter):
(WebCore::jsTestGlobalObjectTestNamedDeleterWithIdentifierConstructorGetter):
(WebCore::setJSTestGlobalObjectTestNamedDeleterWithIdentifierConstructorSetter):
(WebCore::jsTestGlobalObjectTestNamedDeleterWithIndexedGetterConstructorGetter):
(WebCore::setJSTestGlobalObjectTestNamedDeleterWithIndexedGetterConstructorSetter):
(WebCore::jsTestGlobalObjectTestNamedGetterCallWithConstructorGetter):
(WebCore::setJSTestGlobalObjectTestNamedGetterCallWithConstructorSetter):
(WebCore::jsTestGlobalObjectTestNamedGetterNoIdentifierConstructorGetter):
(WebCore::setJSTestGlobalObjectTestNamedGetterNoIdentifierConstructorSetter):
(WebCore::jsTestGlobalObjectTestNamedGetterWithIdentifierConstructorGetter):
(WebCore::setJSTestGlobalObjectTestNamedGetterWithIdentifierConstructorSetter):
(WebCore::jsTestGlobalObjectTestNamedSetterNoIdentifierConstructorGetter):
(WebCore::setJSTestGlobalObjectTestNamedSetterNoIdentifierConstructorSetter):
(WebCore::jsTestGlobalObjectTestNamedSetterThrowingExceptionConstructorGetter):
(WebCore::setJSTestGlobalObjectTestNamedSetterThrowingExceptionConstructorSetter):
(WebCore::jsTestGlobalObjectTestNamedSetterWithIdentifierConstructorGetter):
(WebCore::setJSTestGlobalObjectTestNamedSetterWithIdentifierConstructorSetter):
(WebCore::jsTestGlobalObjectTestNamedSetterWithIndexedGetterConstructorGetter):
(WebCore::setJSTestGlobalObjectTestNamedSetterWithIndexedGetterConstructorSetter):
(WebCore::jsTestGlobalObjectTestNamedSetterWithIndexedGetterAndSetterConstructorGetter):
(WebCore::setJSTestGlobalObjectTestNamedSetterWithIndexedGetterAndSetterConstructorSetter):
(WebCore::jsTestGlobalObjectTestNamedSetterWithOverrideBuiltinsConstructorGetter):
(WebCore::setJSTestGlobalObjectTestNamedSetterWithOverrideBuiltinsConstructorSetter):
(WebCore::jsTestGlobalObjectTestNamedSetterWithUnforgablePropertiesConstructorGetter):
(WebCore::setJSTestGlobalObjectTestNamedSetterWithUnforgablePropertiesConstructorSetter):
(WebCore::jsTestGlobalObjectTestNamedSetterWithUnforgablePropertiesAndOverrideBuiltinsConstructorGetter):
(WebCore::setJSTestGlobalObjectTestNamedSetterWithUnforgablePropertiesAndOverrideBuiltinsConstructorSetter):
(WebCore::jsTestGlobalObjectTestOperationConditionalConstructorGetter):
(WebCore::setJSTestGlobalObjectTestOperationConditionalConstructorSetter):
(WebCore::jsTestGlobalObjectTestOverloadedConstructorsConstructorGetter):
(WebCore::setJSTestGlobalObjectTestOverloadedConstructorsConstructorSetter):
(WebCore::jsTestGlobalObjectTestOverloadedConstructorsWithSequenceConstructorGetter):
(WebCore::setJSTestGlobalObjectTestOverloadedConstructorsWithSequenceConstructorSetter):
(WebCore::jsTestGlobalObjectTestOverrideBuiltinsConstructorGetter):
(WebCore::setJSTestGlobalObjectTestOverrideBuiltinsConstructorSetter):
(WebCore::jsTestGlobalObjectTestPluginInterfaceConstructorGetter):
(WebCore::setJSTestGlobalObjectTestPluginInterfaceConstructorSetter):
(WebCore::jsTestGlobalObjectTestReadOnlyMapLikeConstructorGetter):
(WebCore::setJSTestGlobalObjectTestReadOnlyMapLikeConstructorSetter):
(WebCore::jsTestGlobalObjectTestReadOnlySetLikeConstructorGetter):
(WebCore::setJSTestGlobalObjectTestReadOnlySetLikeConstructorSetter):
(WebCore::jsTestGlobalObjectTestReportExtraMemoryCostConstructorGetter):
(WebCore::setJSTestGlobalObjectTestReportExtraMemoryCostConstructorSetter):
(WebCore::jsTestGlobalObjectTestSerializationConstructorGetter):
(WebCore::setJSTestGlobalObjectTestSerializationConstructorSetter):
(WebCore::jsTestGlobalObjectTestSerializationIndirectInheritanceConstructorGetter):
(WebCore::setJSTestGlobalObjectTestSerializationIndirectInheritanceConstructorSetter):
(WebCore::jsTestGlobalObjectTestSerializationInheritConstructorGetter):
(WebCore::setJSTestGlobalObjectTestSerializationInheritConstructorSetter):
(WebCore::jsTestGlobalObjectTestSerializationInheritFinalConstructorGetter):
(WebCore::setJSTestGlobalObjectTestSerializationInheritFinalConstructorSetter):
(WebCore::jsTestGlobalObjectTestSerializedScriptValueInterfaceConstructorGetter):
(WebCore::setJSTestGlobalObjectTestSerializedScriptValueInterfaceConstructorSetter):
(WebCore::jsTestGlobalObjectTestSetLikeConstructorGetter):
(WebCore::setJSTestGlobalObjectTestSetLikeConstructorSetter):
(WebCore::jsTestGlobalObjectTestStringifierConstructorGetter):
(WebCore::setJSTestGlobalObjectTestStringifierConstructorSetter):
(WebCore::jsTestGlobalObjectTestStringifierAnonymousOperationConstructorGetter):
(WebCore::setJSTestGlobalObjectTestStringifierAnonymousOperationConstructorSetter):
(WebCore::jsTestGlobalObjectTestStringifierNamedOperationConstructorGetter):
(WebCore::setJSTestGlobalObjectTestStringifierNamedOperationConstructorSetter):
(WebCore::jsTestGlobalObjectTestStringifierOperationImplementedAsConstructorGetter):
(WebCore::setJSTestGlobalObjectTestStringifierOperationImplementedAsConstructorSetter):
(WebCore::jsTestGlobalObjectTestStringifierOperationNamedToStringConstructorGetter):
(WebCore::setJSTestGlobalObjectTestStringifierOperationNamedToStringConstructorSetter):
(WebCore::jsTestGlobalObjectTestStringifierReadOnlyAttributeConstructorGetter):
(WebCore::setJSTestGlobalObjectTestStringifierReadOnlyAttributeConstructorSetter):
(WebCore::jsTestGlobalObjectTestStringifierReadWriteAttributeConstructorGetter):
(WebCore::setJSTestGlobalObjectTestStringifierReadWriteAttributeConstructorSetter):
(WebCore::jsTestGlobalObjectTestTypedefsConstructorGetter):
(WebCore::setJSTestGlobalObjectTestTypedefsConstructorSetter):
(WebCore::jsTestGlobalObjectInstanceFunctionRegularOperationBody):
(WebCore::jsTestGlobalObjectInstanceFunctionEnabledAtRuntimeOperation1Body):
(WebCore::jsTestGlobalObjectInstanceFunctionEnabledAtRuntimeOperation2Body):
(WebCore::jsTestGlobalObjectInstanceFunctionEnabledAtRuntimeOperationOverloadDispatcher):
(WebCore::jsTestGlobalObjectConstructorFunctionEnabledAtRuntimeOperationStaticBody):
(WebCore::jsTestGlobalObjectInstanceFunctionEnabledInSpecificWorldBody):
(WebCore::jsTestGlobalObjectInstanceFunctionEnabledInSpecificWorldWhenRuntimeFeatureEnabledBody):
(WebCore::jsTestGlobalObjectInstanceFunctionEnabledInSpecificWorldWhenRuntimeFeaturesEnabledBody):
(WebCore::jsTestGlobalObjectInstanceFunctionTestPrivateFunctionBody):
(WebCore::jsTestGlobalObjectInstanceFunctionCalculateSecretResultBody):
(WebCore::jsTestGlobalObjectInstanceFunctionGetSecretBooleanBody):
(WebCore::jsTestGlobalObjectInstanceFunctionTestFeatureGetSecretBooleanBody):

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

(WebCore::jsTestIndexedSetterWithIdentifierPrototypeFunctionIndexedSetterBody):

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

(WebCore::jsTestInterfaceConstructorImplementsStaticReadOnlyAttrGetter):
(WebCore::jsTestInterfaceConstructorImplementsStaticAttrGetter):
(WebCore::setJSTestInterfaceConstructorImplementsStaticAttrSetter):
(WebCore::jsTestInterfaceImplementsStr1Getter):
(WebCore::jsTestInterfaceImplementsStr2Getter):
(WebCore::setJSTestInterfaceImplementsStr2Setter):
(WebCore::jsTestInterfaceImplementsStr3Getter):
(WebCore::setJSTestInterfaceImplementsStr3Setter):
(WebCore::jsTestInterfaceImplementsNodeGetter):
(WebCore::setJSTestInterfaceImplementsNodeSetter):
(WebCore::jsTestInterfaceConstructorSupplementalStaticReadOnlyAttrGetter):
(WebCore::jsTestInterfaceConstructorSupplementalStaticAttrGetter):
(WebCore::setJSTestInterfaceConstructorSupplementalStaticAttrSetter):
(WebCore::jsTestInterfaceSupplementalStr1Getter):
(WebCore::jsTestInterfaceSupplementalStr2Getter):
(WebCore::setJSTestInterfaceSupplementalStr2Setter):
(WebCore::jsTestInterfaceSupplementalStr3Getter):
(WebCore::setJSTestInterfaceSupplementalStr3Setter):
(WebCore::jsTestInterfaceSupplementalNodeGetter):
(WebCore::setJSTestInterfaceSupplementalNodeSetter):
(WebCore::jsTestInterfaceReflectAttributeGetter):
(WebCore::setJSTestInterfaceReflectAttributeSetter):
(WebCore::jsTestInterfacePrototypeFunctionImplementsMethod1Body):
(WebCore::jsTestInterfacePrototypeFunctionImplementsMethod2Body):
(WebCore::jsTestInterfacePrototypeFunctionImplementsMethod3Body):
(WebCore::jsTestInterfaceConstructorFunctionImplementsMethod4Body):
(WebCore::jsTestInterfacePrototypeFunctionTakeNodesBody):
(WebCore::jsTestInterfacePrototypeFunctionSupplementalMethod1Body):
(WebCore::jsTestInterfacePrototypeFunctionSupplementalMethod2Body):
(WebCore::jsTestInterfacePrototypeFunctionSupplementalMethod3Body):
(WebCore::jsTestInterfaceConstructorFunctionSupplementalMethod4Body):
(WebCore::jsTestInterfacePrototypeFunctionEntriesCaller):
(WebCore::jsTestInterfacePrototypeFunctionKeysCaller):
(WebCore::jsTestInterfacePrototypeFunctionValuesCaller):
(WebCore::jsTestInterfacePrototypeFunctionForEachCaller):

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

(WebCore::jsTestInterfaceLeadingUnderscoreReadonlyGetter):

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

(WebCore::jsTestIterablePrototypeFunctionEntriesCaller):
(WebCore::jsTestIterablePrototypeFunctionKeysCaller):
(WebCore::jsTestIterablePrototypeFunctionValuesCaller):
(WebCore::jsTestIterablePrototypeFunctionForEachCaller):

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

(WebCore::jsTestJSBuiltinConstructorTestAttributeCustomGetter):
(WebCore::jsTestJSBuiltinConstructorTestAttributeRWCustomGetter):
(WebCore::setJSTestJSBuiltinConstructorTestAttributeRWCustomSetter):
(WebCore::jsTestJSBuiltinConstructorPrototypeFunctionTestCustomFunctionBody):

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

(WebCore::jsTestNamedAndIndexedSetterWithIdentifierPrototypeFunctionNamedSetterBody):
(WebCore::jsTestNamedAndIndexedSetterWithIdentifierPrototypeFunctionIndexedSetterBody):

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

(WebCore::jsTestNamedDeleterWithIdentifierPrototypeFunctionNamedDeleterBody):

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

(WebCore::jsTestNamedGetterWithIdentifierPrototypeFunctionGetterNameBody):

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

(WebCore::jsTestNamedSetterWithIdentifierPrototypeFunctionNamedSetterBody):

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

(WebCore::jsTestNamedSetterWithIndexedGetterPrototypeFunctionNamedSetterBody):
(WebCore::jsTestNamedSetterWithIndexedGetterPrototypeFunctionIndexedSetterBody):

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

(WebCore::jsTestNamedSetterWithIndexedGetterAndSetterPrototypeFunctionNamedSetterBody):
(WebCore::jsTestNamedSetterWithIndexedGetterAndSetterPrototypeFunctionIndexedSetter1Body):
(WebCore::jsTestNamedSetterWithIndexedGetterAndSetterPrototypeFunctionIndexedSetter2Body):
(WebCore::jsTestNamedSetterWithIndexedGetterAndSetterPrototypeFunctionIndexedSetterOverloadDispatcher):

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

(WebCore::jsTestNamedSetterWithUnforgablePropertiesUnforgeableAttributeGetter):
(WebCore::jsTestNamedSetterWithUnforgablePropertiesInstanceFunctionUnforgeableOperationBody):

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

(WebCore::jsTestNamedSetterWithUnforgablePropertiesAndOverrideBuiltinsUnforgeableAttributeGetter):
(WebCore::jsTestNamedSetterWithUnforgablePropertiesAndOverrideBuiltinsInstanceFunctionUnforgeableOperationBody):

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

(WebCore::jsTestNodeNameGetter):
(WebCore::setJSTestNodeNameSetter):
(WebCore::jsTestNodePrototypeFunctionTestWorkerPromiseBody):
(WebCore::jsTestNodePrototypeFunctionCalculateSecretResultBody):
(WebCore::jsTestNodePrototypeFunctionGetSecretBooleanBody):
(WebCore::jsTestNodePrototypeFunctionTestFeatureGetSecretBooleanBody):
(WebCore::jsTestNodePrototypeFunctionEntriesCaller):
(WebCore::jsTestNodePrototypeFunctionKeysCaller):
(WebCore::jsTestNodePrototypeFunctionValuesCaller):
(WebCore::jsTestNodePrototypeFunctionForEachCaller):
(WebCore::JSTestNode::serialize):
(WebCore::jsTestNodePrototypeFunctionToJSONBody):

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

(WebCore::jsTestObjReadOnlyLongAttrGetter):
(WebCore::jsTestObjReadOnlyStringAttrGetter):
(WebCore::jsTestObjReadOnlyTestObjAttrGetter):
(WebCore::jsTestObjConstructorStaticReadOnlyLongAttrGetter):
(WebCore::jsTestObjConstructorStaticStringAttrGetter):
(WebCore::setJSTestObjConstructorStaticStringAttrSetter):
(WebCore::jsTestObjConstructorTestSubObjGetter):
(WebCore::jsTestObjConstructorTestStaticReadonlyObjGetter):
(WebCore::jsTestObjEnumAttrGetter):
(WebCore::setJSTestObjEnumAttrSetter):
(WebCore::jsTestObjByteAttrGetter):
(WebCore::setJSTestObjByteAttrSetter):
(WebCore::jsTestObjOctetAttrGetter):
(WebCore::setJSTestObjOctetAttrSetter):
(WebCore::jsTestObjShortAttrGetter):
(WebCore::setJSTestObjShortAttrSetter):
(WebCore::jsTestObjClampedShortAttrGetter):
(WebCore::setJSTestObjClampedShortAttrSetter):
(WebCore::jsTestObjEnforceRangeShortAttrGetter):
(WebCore::setJSTestObjEnforceRangeShortAttrSetter):
(WebCore::jsTestObjUnsignedShortAttrGetter):
(WebCore::setJSTestObjUnsignedShortAttrSetter):
(WebCore::jsTestObjLongAttrGetter):
(WebCore::setJSTestObjLongAttrSetter):
(WebCore::jsTestObjLongLongAttrGetter):
(WebCore::setJSTestObjLongLongAttrSetter):
(WebCore::jsTestObjUnsignedLongLongAttrGetter):
(WebCore::setJSTestObjUnsignedLongLongAttrSetter):
(WebCore::jsTestObjStringAttrGetter):
(WebCore::setJSTestObjStringAttrSetter):
(WebCore::jsTestObjUsvstringAttrGetter):
(WebCore::setJSTestObjUsvstringAttrSetter):
(WebCore::jsTestObjTestObjAttrGetter):
(WebCore::setJSTestObjTestObjAttrSetter):
(WebCore::jsTestObjTestNullableObjAttrGetter):
(WebCore::setJSTestObjTestNullableObjAttrSetter):
(WebCore::jsTestObjLenientTestObjAttrGetter):
(WebCore::setJSTestObjLenientTestObjAttrSetter):
(WebCore::jsTestObjUnforgeableAttrGetter):
(WebCore::jsTestObjStringAttrTreatingNullAsEmptyStringGetter):
(WebCore::setJSTestObjStringAttrTreatingNullAsEmptyStringSetter):
(WebCore::jsTestObjUsvstringAttrTreatingNullAsEmptyStringGetter):
(WebCore::setJSTestObjUsvstringAttrTreatingNullAsEmptyStringSetter):
(WebCore::jsTestObjByteStringAttrTreatingNullAsEmptyStringGetter):
(WebCore::setJSTestObjByteStringAttrTreatingNullAsEmptyStringSetter):
(WebCore::jsTestObjStringLongRecordAttrGetter):
(WebCore::setJSTestObjStringLongRecordAttrSetter):
(WebCore::jsTestObjUsvstringLongRecordAttrGetter):
(WebCore::setJSTestObjUsvstringLongRecordAttrSetter):
(WebCore::jsTestObjStringObjRecordAttrGetter):
(WebCore::setJSTestObjStringObjRecordAttrSetter):
(WebCore::jsTestObjStringNullableObjRecordAttrGetter):
(WebCore::setJSTestObjStringNullableObjRecordAttrSetter):
(WebCore::jsTestObjStringVoidCallbackRecordAttrGetter):
(WebCore::setJSTestObjStringVoidCallbackRecordAttrSetter):
(WebCore::jsTestObjDictionaryAttrGetter):
(WebCore::setJSTestObjDictionaryAttrSetter):
(WebCore::jsTestObjNullableDictionaryAttrGetter):
(WebCore::setJSTestObjNullableDictionaryAttrSetter):
(WebCore::jsTestObjAnnotatedTypeInUnionAttrGetter):
(WebCore::setJSTestObjAnnotatedTypeInUnionAttrSetter):
(WebCore::jsTestObjAnnotatedTypeInSequenceAttrGetter):
(WebCore::setJSTestObjAnnotatedTypeInSequenceAttrSetter):
(WebCore::jsTestObjImplementationEnumAttrGetter):
(WebCore::setJSTestObjImplementationEnumAttrSetter):
(WebCore::jsTestObjMediaDevicesGetter):
(WebCore::jsTestObjXMLObjAttrGetter):
(WebCore::setJSTestObjXMLObjAttrSetter):
(WebCore::jsTestObjCreateGetter):
(WebCore::setJSTestObjCreateSetter):
(WebCore::jsTestObjReflectedStringAttrGetter):
(WebCore::setJSTestObjReflectedStringAttrSetter):
(WebCore::jsTestObjReflectedUSVStringAttrGetter):
(WebCore::setJSTestObjReflectedUSVStringAttrSetter):
(WebCore::jsTestObjReflectedIntegralAttrGetter):
(WebCore::setJSTestObjReflectedIntegralAttrSetter):
(WebCore::jsTestObjReflectedUnsignedIntegralAttrGetter):
(WebCore::setJSTestObjReflectedUnsignedIntegralAttrSetter):
(WebCore::jsTestObjReflectedBooleanAttrGetter):
(WebCore::setJSTestObjReflectedBooleanAttrSetter):
(WebCore::jsTestObjReflectedURLAttrGetter):
(WebCore::setJSTestObjReflectedURLAttrSetter):
(WebCore::jsTestObjReflectedUSVURLAttrGetter):
(WebCore::setJSTestObjReflectedUSVURLAttrSetter):
(WebCore::jsTestObjReflectedCustomIntegralAttrGetter):
(WebCore::setJSTestObjReflectedCustomIntegralAttrSetter):
(WebCore::jsTestObjReflectedCustomBooleanAttrGetter):
(WebCore::setJSTestObjReflectedCustomBooleanAttrSetter):
(WebCore::jsTestObjReflectedCustomURLAttrGetter):
(WebCore::setJSTestObjReflectedCustomURLAttrSetter):
(WebCore::jsTestObjEnabledAtRuntimeAttributeGetter):
(WebCore::setJSTestObjEnabledAtRuntimeAttributeSetter):
(WebCore::jsTestObjConstructorEnabledAtRuntimeAttributeStaticGetter):
(WebCore::setJSTestObjConstructorEnabledAtRuntimeAttributeStaticSetter):
(WebCore::jsTestObjTypedArrayAttrGetter):
(WebCore::setJSTestObjTypedArrayAttrSetter):
(WebCore::jsTestObjCustomAttrGetter):
(WebCore::setJSTestObjCustomAttrSetter):
(WebCore::jsTestObjOnfooGetter):
(WebCore::setJSTestObjOnfooSetter):
(WebCore::jsTestObjOnwebkitfooGetter):
(WebCore::setJSTestObjOnwebkitfooSetter):
(WebCore::jsTestObjWithExecStateAttributeGetter):
(WebCore::setJSTestObjWithExecStateAttributeSetter):
(WebCore::jsTestObjWithCallWithAndSetterCallWithAttributeGetter):
(WebCore::setJSTestObjWithCallWithAndSetterCallWithAttributeSetter):
(WebCore::jsTestObjWithScriptExecutionContextAttributeGetter):
(WebCore::setJSTestObjWithScriptExecutionContextAttributeSetter):
(WebCore::jsTestObjWithScriptExecutionContextAndExecStateAttributeGetter):
(WebCore::setJSTestObjWithScriptExecutionContextAndExecStateAttributeSetter):
(WebCore::jsTestObjWithScriptExecutionContextAndExecStateWithSpacesAttributeGetter):
(WebCore::setJSTestObjWithScriptExecutionContextAndExecStateWithSpacesAttributeSetter):
(WebCore::jsTestObjConditionalAttr1Getter):
(WebCore::setJSTestObjConditionalAttr1Setter):
(WebCore::jsTestObjConditionalAttr2Getter):
(WebCore::setJSTestObjConditionalAttr2Setter):
(WebCore::jsTestObjConditionalAttr3Getter):
(WebCore::setJSTestObjConditionalAttr3Setter):
(WebCore::jsTestObjConditionalAttr4ConstructorGetter):
(WebCore::setJSTestObjConditionalAttr4ConstructorSetter):
(WebCore::jsTestObjConditionalAttr5ConstructorGetter):
(WebCore::setJSTestObjConditionalAttr5ConstructorSetter):
(WebCore::jsTestObjConditionalAttr6ConstructorGetter):
(WebCore::setJSTestObjConditionalAttr6ConstructorSetter):
(WebCore::jsTestObjCachedAttribute1Getter):
(WebCore::jsTestObjCachedAttribute2Getter):
(WebCore::jsTestObjCachedAttribute3Getter):
(WebCore::jsTestObjAnyAttributeGetter):
(WebCore::setJSTestObjAnyAttributeSetter):
(WebCore::jsTestObjObjectAttributeGetter):
(WebCore::setJSTestObjObjectAttributeSetter):
(WebCore::jsTestObjContentDocumentGetter):
(WebCore::jsTestObjMutablePointGetter):
(WebCore::setJSTestObjMutablePointSetter):
(WebCore::jsTestObjStrawberryGetter):
(WebCore::setJSTestObjStrawberrySetter):
(WebCore::jsTestObjDescriptionGetter):
(WebCore::jsTestObjIdGetter):
(WebCore::setJSTestObjIdSetter):
(WebCore::jsTestObjHashGetter):
(WebCore::jsTestObjReplaceableAttributeGetter):
(WebCore::setJSTestObjReplaceableAttributeSetter):
(WebCore::jsTestObjNullableDoubleAttributeGetter):
(WebCore::jsTestObjNullableLongAttributeGetter):
(WebCore::jsTestObjNullableBooleanAttributeGetter):
(WebCore::jsTestObjNullableStringAttributeGetter):
(WebCore::jsTestObjNullableLongSettableAttributeGetter):
(WebCore::setJSTestObjNullableLongSettableAttributeSetter):
(WebCore::jsTestObjNullableStringSettableAttributeGetter):
(WebCore::setJSTestObjNullableStringSettableAttributeSetter):
(WebCore::jsTestObjNullableUSVStringSettableAttributeGetter):
(WebCore::setJSTestObjNullableUSVStringSettableAttributeSetter):
(WebCore::jsTestObjNullableByteStringSettableAttributeGetter):
(WebCore::setJSTestObjNullableByteStringSettableAttributeSetter):
(WebCore::jsTestObjAttributeGetter):
(WebCore::jsTestObjAttributeWithReservedEnumTypeGetter):
(WebCore::setJSTestObjAttributeWithReservedEnumTypeSetter):
(WebCore::jsTestObjTestReadOnlyVoidPromiseAttributeGetter):
(WebCore::jsTestObjTestReadOnlyPromiseAttributeGetter):
(WebCore::jsTestObjPutForwardsAttributeGetter):
(WebCore::setJSTestObjPutForwardsAttributeSetter):
(WebCore::jsTestObjPutForwardsNullableAttributeGetter):
(WebCore::setJSTestObjPutForwardsNullableAttributeSetter):
(WebCore::jsTestObjStringifierAttributeGetter):
(WebCore::setJSTestObjStringifierAttributeSetter):
(WebCore::jsTestObjConditionallyReadWriteAttributeGetter):
(WebCore::setJSTestObjConditionallyReadWriteAttributeSetter):
(WebCore::jsTestObjConditionalAndConditionallyReadWriteAttributeGetter):
(WebCore::setJSTestObjConditionalAndConditionallyReadWriteAttributeSetter):
(WebCore::jsTestObjRuntimeConditionallyReadWriteAttributeGetter):
(WebCore::setJSTestObjRuntimeConditionallyReadWriteAttributeSetter):
(WebCore::jsTestObjRuntimeConditionallyReadWriteAttributeUnforgeableGetter):
(WebCore::setJSTestObjRuntimeConditionallyReadWriteAttributeUnforgeableSetter):
(WebCore::jsTestObjRuntimeConditionallyReadWriteAttributeUnforgeablePrivateGetter):
(WebCore::setJSTestObjRuntimeConditionallyReadWriteAttributeUnforgeablePrivateSetter):
(WebCore::jsTestObjRuntimeConditionallyReadWriteAttributePromiseGetter):
(WebCore::setJSTestObjRuntimeConditionallyReadWriteAttributePromiseSetter):
(WebCore::jsTestObjConditionallyExposedToWindowAttributeGetter):
(WebCore::setJSTestObjConditionallyExposedToWindowAttributeSetter):
(WebCore::jsTestObjConditionallyExposedToWorkerAttributeGetter):
(WebCore::setJSTestObjConditionallyExposedToWorkerAttributeSetter):
(WebCore::jsTestObjConditionallyExposedToWindowAndWorkerAttributeGetter):
(WebCore::setJSTestObjConditionallyExposedToWindowAndWorkerAttributeSetter):
(WebCore::jsTestObjPrototypeFunctionEnabledAtRuntimeOperation1Body):
(WebCore::jsTestObjPrototypeFunctionEnabledAtRuntimeOperation2Body):
(WebCore::jsTestObjPrototypeFunctionEnabledAtRuntimeOperationOverloadDispatcher):
(WebCore::jsTestObjConstructorFunctionEnabledAtRuntimeOperationStaticBody):
(WebCore::jsTestObjPrototypeFunctionEnabledInSpecificWorldWhenRuntimeFeatureEnabledBody):
(WebCore::jsTestObjPrototypeFunctionWorldSpecificMethodBody):
(WebCore::jsTestObjPrototypeFunctionCalculateSecretResultBody):
(WebCore::jsTestObjPrototypeFunctionGetSecretBooleanBody):
(WebCore::jsTestObjPrototypeFunctionTestFeatureGetSecretBooleanBody):
(WebCore::jsTestObjPrototypeFunctionVoidMethodBody):
(WebCore::jsTestObjPrototypeFunctionVoidMethodWithArgsBody):
(WebCore::jsTestObjPrototypeFunctionByteMethodBody):
(WebCore::jsTestObjPrototypeFunctionByteMethodWithArgsBody):
(WebCore::jsTestObjPrototypeFunctionOctetMethodBody):
(WebCore::jsTestObjPrototypeFunctionOctetMethodWithArgsBody):
(WebCore::jsTestObjPrototypeFunctionLongMethodBody):
(WebCore::jsTestObjPrototypeFunctionLongMethodWithArgsBody):
(WebCore::jsTestObjPrototypeFunctionObjMethodBody):
(WebCore::jsTestObjPrototypeFunctionObjMethodWithArgsBody):
(WebCore::jsTestObjInstanceFunctionUnforgeableMethodBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithArgTreatingNullAsEmptyStringBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithXPathNSResolverParameterBody):
(WebCore::jsTestObjPrototypeFunctionNullableStringMethodBody):
(WebCore::jsTestObjConstructorFunctionNullableStringStaticMethodBody):
(WebCore::jsTestObjPrototypeFunctionNullableStringSpecialMethodBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithEnumArgBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithStandaloneEnumArgBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalEnumArgBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalEnumArgAndDefaultValueBody):
(WebCore::jsTestObjPrototypeFunctionMethodThatRequiresAllArgsAndThrowsBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithUSVStringArgBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithNullableUSVStringArgBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithUSVStringArgTreatingNullAsEmptyStringBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithByteStringArgBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithNullableByteStringArgBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithByteStringArgTreatingNullAsEmptyStringBody):
(WebCore::jsTestObjPrototypeFunctionSerializedValueBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithRecordBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithExceptionBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithExceptionReturningLongBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithExceptionReturningObjectBody):
(WebCore::jsTestObjPrototypeFunctionCustomMethodBody):
(WebCore::jsTestObjPrototypeFunctionCustomMethodWithArgsBody):
(WebCore::jsTestObjPrototypeFunctionPrivateMethodBody):
(WebCore::jsTestObjPrototypeFunctionPublicAndPrivateMethodBody):
(WebCore::jsTestObjPrototypeFunctionAddEventListenerBody):
(WebCore::jsTestObjPrototypeFunctionRemoveEventListenerBody):
(WebCore::jsTestObjPrototypeFunctionWithExecStateVoidBody):
(WebCore::jsTestObjPrototypeFunctionWithExecStateObjBody):
(WebCore::jsTestObjPrototypeFunctionWithExecStateVoidExceptionBody):
(WebCore::jsTestObjPrototypeFunctionWithExecStateObjExceptionBody):
(WebCore::jsTestObjPrototypeFunctionWithScriptExecutionContextBody):
(WebCore::jsTestObjPrototypeFunctionWithScriptExecutionContextAndExecStateBody):
(WebCore::jsTestObjPrototypeFunctionWithScriptExecutionContextAndExecStateObjExceptionBody):
(WebCore::jsTestObjPrototypeFunctionWithScriptExecutionContextAndExecStateWithSpacesBody):
(WebCore::jsTestObjPrototypeFunctionWithDocumentArgumentBody):
(WebCore::jsTestObjPrototypeFunctionWithCallerDocumentArgumentBody):
(WebCore::jsTestObjPrototypeFunctionWithCallerWindowArgumentBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalArgBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalArgAndDefaultValueBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithNonOptionalArgAndOptionalArgBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithNonOptionalArgAndTwoOptionalArgsBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalStringBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalUSVStringBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalAtomStringBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalStringAndDefaultValueBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalAtomStringAndDefaultValueBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalStringIsNullBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalStringIsUndefinedBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalAtomStringIsNullBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalStringIsEmptyStringBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalUSVStringIsEmptyStringBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalAtomStringIsEmptyStringBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalDoubleIsNaNBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalFloatIsNaNBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalLongLongBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalLongLongIsZeroBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalUnsignedLongLongBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalUnsignedLongLongIsZeroBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalSequenceBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalSequenceIsEmptyBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalBooleanBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalBooleanIsFalseBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalAnyBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalObjectBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalNullableWrapperBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalNullableWrapperIsNullBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalXPathNSResolverBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalRecordBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalPromiseBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithCallbackArgBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithNonCallbackArgAndCallbackArgBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithCallbackAndOptionalArgBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithCallbackFunctionArgBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithNonCallbackArgAndCallbackFunctionArgBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithCallbackFunctionAndOptionalArgBody):
(WebCore::jsTestObjConstructorFunctionStaticMethodWithCallbackAndOptionalArgBody):
(WebCore::jsTestObjConstructorFunctionStaticMethodWithCallbackArgBody):
(WebCore::jsTestObjPrototypeFunctionConditionalMethod1Body):
(WebCore::jsTestObjPrototypeFunctionConditionalMethod2Body):
(WebCore::jsTestObjPrototypeFunctionConditionalMethod3Body):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod1Body):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod2Body):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod3Body):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod4Body):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod5Body):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod6Body):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod7Body):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod8Body):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod9Body):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod10Body):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod11Body):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod12Body):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod13Body):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethodOverloadDispatcher):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethodWithOptionalParameter1Body):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethodWithOptionalParameter2Body):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethodWithOptionalParameterOverloadDispatcher):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethodWithDistinguishingUnion1Body):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethodWithDistinguishingUnion2Body):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethodWithDistinguishingUnionOverloadDispatcher):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethodWith2DistinguishingUnions1Body):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethodWith2DistinguishingUnions2Body):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethodWith2DistinguishingUnionsOverloadDispatcher):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethodWithNonDistinguishingUnion1Body):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethodWithNonDistinguishingUnion2Body):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethodWithNonDistinguishingUnionOverloadDispatcher):
(WebCore::jsTestObjPrototypeFunctionOverloadWithNullableUnion1Body):
(WebCore::jsTestObjPrototypeFunctionOverloadWithNullableUnion2Body):
(WebCore::jsTestObjPrototypeFunctionOverloadWithNullableUnionOverloadDispatcher):
(WebCore::jsTestObjPrototypeFunctionOverloadWithOptionalUnion1Body):
(WebCore::jsTestObjPrototypeFunctionOverloadWithOptionalUnion2Body):
(WebCore::jsTestObjPrototypeFunctionOverloadWithOptionalUnionOverloadDispatcher):
(WebCore::jsTestObjPrototypeFunctionOverloadWithNullableNonDistinguishingParameter1Body):
(WebCore::jsTestObjPrototypeFunctionOverloadWithNullableNonDistinguishingParameter2Body):
(WebCore::jsTestObjPrototypeFunctionOverloadWithNullableNonDistinguishingParameterOverloadDispatcher):
(WebCore::jsTestObjConstructorFunctionClassMethodBody):
(WebCore::jsTestObjConstructorFunctionClassMethodWithOptionalBody):
(WebCore::jsTestObjConstructorFunctionClassMethod2Body):
(WebCore::jsTestObjConstructorFunctionOverloadedMethod11Body):
(WebCore::jsTestObjConstructorFunctionOverloadedMethod12Body):
(WebCore::jsTestObjConstructorFunctionOverloadedMethod1OverloadDispatcher):
(WebCore::jsTestObjPrototypeFunctionClassMethodWithClampBody):
(WebCore::jsTestObjPrototypeFunctionClassMethodWithClampOnOptionalBody):
(WebCore::jsTestObjPrototypeFunctionClassMethodWithEnforceRangeBody):
(WebCore::jsTestObjPrototypeFunctionClassMethodWithEnforceRangeOnOptionalBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithUnsignedLongSequenceBody):
(WebCore::jsTestObjPrototypeFunctionStringArrayFunctionBody):
(WebCore::jsTestObjPrototypeFunctionDomStringListFunctionBody):
(WebCore::jsTestObjPrototypeFunctionOperationWithOptionalUnionParameterBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithAndWithoutNullableSequenceBody):
(WebCore::jsTestObjPrototypeFunctionGetElementByIdBody):
(WebCore::jsTestObjPrototypeFunctionGetSVGDocumentBody):
(WebCore::jsTestObjPrototypeFunctionConvert1Body):
(WebCore::jsTestObjPrototypeFunctionConvert2Body):
(WebCore::jsTestObjPrototypeFunctionConvert3Body):
(WebCore::jsTestObjPrototypeFunctionConvert4Body):
(WebCore::jsTestObjPrototypeFunctionMutablePointFunctionBody):
(WebCore::jsTestObjPrototypeFunctionOrangeBody):
(WebCore::jsTestObjPrototypeFunctionVariadicStringMethodBody):
(WebCore::jsTestObjPrototypeFunctionVariadicDoubleMethodBody):
(WebCore::jsTestObjPrototypeFunctionVariadicNodeMethodBody):
(WebCore::jsTestObjPrototypeFunctionVariadicUnionMethodBody):
(WebCore::jsTestObjPrototypeFunctionAnyBody):
(WebCore::jsTestObjPrototypeFunctionTestPromiseFunctionBody):
(WebCore::jsTestObjPrototypeFunctionTestPromiseFunctionWithFloatArgumentBody):
(WebCore::jsTestObjPrototypeFunctionTestPromiseFunctionWithExceptionBody):
(WebCore::jsTestObjPrototypeFunctionTestPromiseFunctionWithOptionalIntArgumentBody):
(WebCore::jsTestObjPrototypeFunctionTestPromiseOverloadedFunction1Body):
(WebCore::jsTestObjPrototypeFunctionTestPromiseOverloadedFunction2Body):
(WebCore::jsTestObjPrototypeFunctionTestPromiseOverloadedFunctionOverloadDispatcher):
(WebCore::jsTestObjConstructorFunctionTestStaticPromiseFunctionBody):
(WebCore::jsTestObjConstructorFunctionTestStaticPromiseFunctionWithExceptionBody):
(WebCore::jsTestObjPrototypeFunctionTestCustomPromiseFunctionBody):
(WebCore::jsTestObjConstructorFunctionTestStaticCustomPromiseFunctionBody):
(WebCore::jsTestObjPrototypeFunctionTestCustomReturnsOwnPromiseFunctionBody):
(WebCore::jsTestObjPrototypeFunctionTestReturnsOwnPromiseAndPromiseProxyFunctionBody):
(WebCore::jsTestObjPrototypeFunctionConditionalOverload1Body):
(WebCore::jsTestObjPrototypeFunctionConditionalOverload2Body):
(WebCore::jsTestObjPrototypeFunctionConditionalOverloadOverloadDispatcher):
(WebCore::jsTestObjPrototypeFunctionSingleConditionalOverload1Body):
(WebCore::jsTestObjPrototypeFunctionSingleConditionalOverload2Body):
(WebCore::jsTestObjPrototypeFunctionSingleConditionalOverloadOverloadDispatcher):
(WebCore::jsTestObjPrototypeFunctionAttachShadowRootBody):
(WebCore::jsTestObjPrototypeFunctionOperationWithExternalDictionaryParameterBody):
(WebCore::jsTestObjPrototypeFunctionBufferSourceParameterBody):
(WebCore::jsTestObjPrototypeFunctionLegacyCallerNamedBody):
(WebCore::jsTestObjPrototypeFunctionTestReturnValueOptimizationBody):
(WebCore::jsTestObjPrototypeFunctionTestReturnValueOptimizationWithExceptionBody):
(WebCore::jsTestObjPrototypeFunctionConditionallyExposedToWindowFunctionBody):
(WebCore::jsTestObjPrototypeFunctionConditionallyExposedToWorkerFunctionBody):
(WebCore::jsTestObjPrototypeFunctionConditionallyExposedToWindowAndWorkerFunctionBody):
(WebCore::jsTestObjPrototypeFunctionToStringBody):
(WebCore::JSTestObj::serialize):
(WebCore::jsTestObjPrototypeFunctionToJSONBody):

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

(WebCore::jsTestOperationConditionalPrototypeFunctionNonConditionalOperationBody):
(WebCore::jsTestOperationConditionalPrototypeFunctionConditionalOperationBody):

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

(WebCore::jsTestOverrideBuiltinsPrototypeFunctionNamedItemBody):

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

(WebCore::jsTestPromiseRejectionEventPromiseGetter):
(WebCore::jsTestPromiseRejectionEventReasonGetter):

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

(WebCore::jsTestSerializationFirstStringAttributeGetter):
(WebCore::setJSTestSerializationFirstStringAttributeSetter):
(WebCore::jsTestSerializationSecondLongAttributeGetter):
(WebCore::setJSTestSerializationSecondLongAttributeSetter):
(WebCore::jsTestSerializationThirdUnserializableAttributeGetter):
(WebCore::setJSTestSerializationThirdUnserializableAttributeSetter):
(WebCore::jsTestSerializationFourthUnrestrictedDoubleAttributeGetter):
(WebCore::setJSTestSerializationFourthUnrestrictedDoubleAttributeSetter):
(WebCore::jsTestSerializationFifthLongAttributeGetter):
(WebCore::setJSTestSerializationFifthLongAttributeSetter):
(WebCore::jsTestSerializationSixthTypedefAttributeGetter):
(WebCore::setJSTestSerializationSixthTypedefAttributeSetter):
(WebCore::jsTestSerializationSeventhDirectlySerializableAttributeGetter):
(WebCore::setJSTestSerializationSeventhDirectlySerializableAttributeSetter):
(WebCore::jsTestSerializationEighthIndirectlyAttributeGetter):
(WebCore::setJSTestSerializationEighthIndirectlyAttributeSetter):
(WebCore::jsTestSerializationNinthOptionalDirectlySerializableAttributeGetter):
(WebCore::setJSTestSerializationNinthOptionalDirectlySerializableAttributeSetter):
(WebCore::jsTestSerializationTenthFrozenArrayAttributeGetter):
(WebCore::setJSTestSerializationTenthFrozenArrayAttributeSetter):
(WebCore::jsTestSerializationEleventhSequenceAttributeGetter):
(WebCore::setJSTestSerializationEleventhSequenceAttributeSetter):
(WebCore::jsTestSerializationTwelfthInterfaceSequenceAttributeGetter):
(WebCore::setJSTestSerializationTwelfthInterfaceSequenceAttributeSetter):
(WebCore::JSTestSerialization::serialize):
(WebCore::jsTestSerializationPrototypeFunctionToJSONBody):

  • bindings/scripts/test/JS/JSTestSerialization.h:
  • bindings/scripts/test/JS/JSTestSerializationInherit.cpp:

(WebCore::jsTestSerializationInheritInheritLongAttributeGetter):
(WebCore::setJSTestSerializationInheritInheritLongAttributeSetter):
(WebCore::JSTestSerializationInherit::serialize):
(WebCore::jsTestSerializationInheritPrototypeFunctionToJSONBody):

  • bindings/scripts/test/JS/JSTestSerializationInherit.h:
  • bindings/scripts/test/JS/JSTestSerializationInheritFinal.cpp:

(WebCore::jsTestSerializationInheritFinalFinalLongAttributeFooGetter):
(WebCore::setJSTestSerializationInheritFinalFinalLongAttributeFooSetter):
(WebCore::jsTestSerializationInheritFinalFinalLongAttributeBarGetter):
(WebCore::setJSTestSerializationInheritFinalFinalLongAttributeBarSetter):
(WebCore::JSTestSerializationInheritFinal::serialize):
(WebCore::jsTestSerializationInheritFinalPrototypeFunctionToJSONBody):

  • bindings/scripts/test/JS/JSTestSerializationInheritFinal.h:
  • bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:

(WebCore::jsTestSerializedScriptValueInterfaceValueGetter):
(WebCore::setJSTestSerializedScriptValueInterfaceValueSetter):
(WebCore::jsTestSerializedScriptValueInterfaceReadonlyValueGetter):
(WebCore::jsTestSerializedScriptValueInterfaceCachedValueGetter):
(WebCore::setJSTestSerializedScriptValueInterfaceCachedValueSetter):
(WebCore::jsTestSerializedScriptValueInterfacePortsGetter):
(WebCore::jsTestSerializedScriptValueInterfaceCachedReadonlyValueGetter):
(WebCore::jsTestSerializedScriptValueInterfacePrototypeFunctionFunctionBody):
(WebCore::jsTestSerializedScriptValueInterfacePrototypeFunctionFunctionReturningBody):

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

(WebCore::jsTestStringifierPrototypeFunctionToStringBody):

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

(WebCore::jsTestStringifierAnonymousOperationPrototypeFunctionToStringBody):

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

(WebCore::jsTestStringifierNamedOperationPrototypeFunctionIdentifierBody):
(WebCore::jsTestStringifierNamedOperationPrototypeFunctionToStringBody):

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

(WebCore::jsTestStringifierOperationImplementedAsPrototypeFunctionIdentifierBody):
(WebCore::jsTestStringifierOperationImplementedAsPrototypeFunctionToStringBody):

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

(WebCore::jsTestStringifierOperationNamedToStringPrototypeFunctionToStringBody):

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

(WebCore::jsTestStringifierReadOnlyAttributeIdentifierGetter):
(WebCore::jsTestStringifierReadOnlyAttributePrototypeFunctionToStringBody):

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

(WebCore::jsTestStringifierReadWriteAttributeIdentifierGetter):
(WebCore::setJSTestStringifierReadWriteAttributeIdentifierSetter):
(WebCore::jsTestStringifierReadWriteAttributePrototypeFunctionToStringBody):

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

(WebCore::jsTestTypedefsUnsignedLongLongAttrGetter):
(WebCore::setJSTestTypedefsUnsignedLongLongAttrSetter):
(WebCore::jsTestTypedefsSerializedScriptValueGetter):
(WebCore::setJSTestTypedefsSerializedScriptValueSetter):
(WebCore::jsTestTypedefsConstructorTestSubObjGetter):
(WebCore::jsTestTypedefsAttributeWithClampGetter):
(WebCore::setJSTestTypedefsAttributeWithClampSetter):
(WebCore::jsTestTypedefsAttributeWithClampInTypedefGetter):
(WebCore::setJSTestTypedefsAttributeWithClampInTypedefSetter):
(WebCore::jsTestTypedefsBufferSourceAttrGetter):
(WebCore::setJSTestTypedefsBufferSourceAttrSetter):
(WebCore::jsTestTypedefsDomTimeStampAttrGetter):
(WebCore::setJSTestTypedefsDomTimeStampAttrSetter):
(WebCore::jsTestTypedefsPrototypeFunctionFuncBody):
(WebCore::jsTestTypedefsPrototypeFunctionSetShadowBody):
(WebCore::jsTestTypedefsPrototypeFunctionMethodWithSequenceArgBody):
(WebCore::jsTestTypedefsPrototypeFunctionNullableSequenceArgBody):
(WebCore::jsTestTypedefsPrototypeFunctionSequenceOfNullablesArgBody):
(WebCore::jsTestTypedefsPrototypeFunctionNullableSequenceOfNullablesArgBody):
(WebCore::jsTestTypedefsPrototypeFunctionNullableSequenceOfUnionsArgBody):
(WebCore::jsTestTypedefsPrototypeFunctionUnionArgBody):
(WebCore::jsTestTypedefsPrototypeFunctionFuncWithClampBody):
(WebCore::jsTestTypedefsPrototypeFunctionFuncWithClampInTypedefBody):
(WebCore::jsTestTypedefsPrototypeFunctionPointFunctionBody):
(WebCore::jsTestTypedefsPrototypeFunctionStringSequenceFunctionBody):
(WebCore::jsTestTypedefsPrototypeFunctionStringSequenceFunction2Body):
(WebCore::jsTestTypedefsPrototypeFunctionCallWithSequenceThatRequiresIncludeBody):
(WebCore::jsTestTypedefsPrototypeFunctionMethodWithExceptionBody):

LayoutTests:

  • js/dom/missing-exception-check-below-queueMicrotask-expected.txt: Added.
  • js/dom/missing-exception-check-below-queueMicrotask.html: Added.
1:58 PM Changeset in webkit [264854] by commit-queue@webkit.org
  • 2 edits in trunk/LayoutTests

[ macOS ] media/media-source/media-source-seek-complete.html is passing and needs expectation removed
https://bugs.webkit.org/show_bug.cgi?id=214758

Unreviewed test gardening.

Patch by Hector Lopez <Hector Lopez> on 2020-07-24

  • platform/mac/TestExpectations:
1:48 PM Changeset in webkit [264853] by jiewen_tan@apple.com
  • 18 edits
    1 add in trunk

Propagating user gesture through Fetch API
https://bugs.webkit.org/show_bug.cgi?id=214444
<rdar://problem/65980953>

Reviewed by Youenn Fablet.

Source/WebCore:

This patch propagates media only user gestures through Fetch API, including Fetch and FetchResponse.

Covered by new test contents.

  • Modules/fetch/DOMWindowFetch.cpp:

(WebCore::DOMWindowFetch::fetch):
Propagates media only user gestures through Fetch.

  • Modules/fetch/FetchBodyConsumer.cpp:

(WebCore::FetchBodyConsumer::clean):
(WebCore::FetchBodyConsumer::resolve):
(WebCore::FetchBodyConsumer::setConsumePromise):
(WebCore::FetchBodyConsumer::resetConsumePromise):
(WebCore::FetchBodyConsumer::loadingFailed):
(WebCore::FetchBodyConsumer::loadingSucceeded):

  • Modules/fetch/FetchBodyConsumer.h:

(WebCore::FetchBodyConsumer::setMaximumIntervalForUserGestureForwarding):
(WebCore::FetchBodyConsumer::FetchBodyConsumer):
Propagates media only user gestures through FetchResponse. UserGestureIndicator is only set in the async promise resolving path.

  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/JSDOMWindowBase.cpp:

(WebCore::JSDOMWindowBase::queueMicrotaskToEventLoop):
Propagates media only user gestures that was propagated through Fetch to the related promise executors.

  • dom/UserGestureIndicator.cpp:

(WebCore::UserGestureIndicator::UserGestureIndicator):
(WebCore::UserGestureIndicator::~UserGestureIndicator):

  • dom/UserGestureIndicator.h:

(WebCore::UserGestureToken::setIsPropagatedFromFetch):
(WebCore::UserGestureToken::resetIsPropagatedFromFetch):
(WebCore::UserGestureToken::isPropagatedFromFetch const):
Adds a flag to indicate the propagation source of a user gesture token. And makes pipelines from testing.

  • page/DOMTimer.cpp:

(WebCore::DOMTimer::fired):
Gathers some constants.

  • testing/Internals.cpp:

(WebCore::Internals::setFetchMaximumIntervalForUserGestureForwarding):

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

Crafts a way to pass the maximum interval from layout tests.

  • xml/XMLHttpRequest.cpp:

(WebCore::XMLHttpRequest::XMLHttpRequest):
Gathers some constants.

LayoutTests:

  • http/tests/media/user-gesture-preserved-across-xmlhttprequest-expected.txt:
  • http/tests/media/user-gesture-preserved-across-xmlhttprequest.html:
  • http/tests/xmlhttprequest/resources/download-header-with-delay.php: Added.
12:59 PM Changeset in webkit [264852] by Russell Epstein
  • 3 edits in branches/safari-610.1.23.1-branch/Source/WebKit

Cherry-pick r264829. rdar://problem/66022006

Add/Update CRASH_WITH_INFO() for invalid IPC message logging
<https://webkit.org/b/214713>

Reviewed by Anders Carlsson.

  • Platform/IPC/cocoa/ConnectionCocoa.mm: (IPC::Connection::sendMessage):
  • Simplify logging by removing CString and using IPC::MessageName enum value instead of hash.
  • Shared/Cocoa/AuxiliaryProcessCocoa.mm: (WebKit::AuxiliaryProcess::didReceiveInvalidMessage):
  • Add IPC::MessageName enum value to setCrashReportApplicationSpecificInformation() output.
  • Change CRASH() to CRASH_WITH_INFO() and pass IPC::MessageName enum value.

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

12:56 PM Changeset in webkit [264851] by Karl Rackler
  • 2 edits in trunk/LayoutTests

[ iOS wk2 ] imported/w3c/web-platform-tests/css/css-fonts/crash-font-face-invalid-descriptor.html is a flaky timeout
https://bugs.webkit.org/show_bug.cgi?id=214757

Unreviewed test gardening.

  • platform/ios-simulator-wk2/TestExpectations:
12:53 PM Changeset in webkit [264850] by Russell Epstein
  • 8 edits in branches/safari-610.1.23.1-branch/Source

Versioning.

WebKit-610.1.23.1.2

12:31 PM Changeset in webkit [264849] by Karl Rackler
  • 2 edits in trunk/LayoutTests

[ iOS wk2 ] http/tests/navigation/subframe-pagehide-handler-starts-load2.html is a flaky timeout
https://bugs.webkit.org/show_bug.cgi?id=214755

Unreviewed test gardening.

  • platform/ios-simulator-wk2/TestExpectations:
12:19 PM Changeset in webkit [264848] by commit-queue@webkit.org
  • 2 edits in trunk/LayoutTests

[ macOS ] media/video-orientation.html is passing and expectation need to be removed
https://bugs.webkit.org/show_bug.cgi?id=214753

Unreviewed test gardening.

Patch by Hector Lopez <Hector Lopez> on 2020-07-24

  • platform/mac/TestExpectations:
11:43 AM Changeset in webkit [264847] by Karl Rackler
  • 2 edits in trunk/LayoutTests

[ iOS wk2 ] imported/w3c/web-platform-tests/html/semantics/embedded-content/the-video-element/resize-during-playback.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=214752

Unreviewed test gardening.

  • platform/ios-simulator-wk2/TestExpectations:
11:41 AM Changeset in webkit [264846] by Chris Dumez
  • 6 edits in trunk/Source/WebKit

Crash under PreconnectTask::start()
https://bugs.webkit.org/show_bug.cgi?id=214747
<rdar://problem/65989668>

Reviewed by Geoffrey Garen.

All user of PreconnectTask construct a PreconnectTask and then call start() on it.
start() dereferences m_networkLoad unconditionally. However, the PreconnectTask
constructor may return early and not initialize m_networkLoad if there is not
NetworkSession for the given sessionID.

To address the issue, update call sites to pass in a valid NetworkSession, so that
the PreconnectTask now always initializes m_networkLoad.

No new tests, we do not know how to reproduce, likely due to a race between
a preconnect request being issued and a network session getting destroyed.

  • NetworkProcess/NetworkConnectionToWebProcess.cpp:

(WebKit::NetworkConnectionToWebProcess::sendH2Ping):
(WebKit::NetworkConnectionToWebProcess::preconnectTo):

  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::preconnectTo):

  • NetworkProcess/PreconnectTask.cpp:

(WebKit::PreconnectTask::PreconnectTask):

  • NetworkProcess/PreconnectTask.h:
  • NetworkProcess/cache/NetworkCacheSpeculativeLoadManager.cpp:

(WebKit::NetworkCache::SpeculativeLoadManager::preconnectForSubresource):

11:33 AM Changeset in webkit [264845] by commit-queue@webkit.org
  • 22 edits in trunk

[WebGL2] Framebuffer and renderbuffer updates
https://bugs.webkit.org/show_bug.cgi?id=126448

Patch by Kenneth Russell <kbr@chromium.org> on 2020-07-24
Reviewed by Dean Jackson.

Source/WebCore:

Implement, or finish implementing, the following WebGL 2.0
framebuffer and renderbuffer related APIs:

framebufferTextureLayer
getInternalformatParameter
getRenderbufferParameter
invalidateFramebuffer
invalidateSubFramebuffer
readBuffer
renderbufferStorage
renderbufferStorageMultisample

Covered by existing WebGL 2.0 conformance tests.

  • html/canvas/WebGL2RenderingContext.cpp:

(WebCore::WebGL2RenderingContext::initializeNewContext):
(WebCore::WebGL2RenderingContext::validateTexFuncLayer):
(WebCore::WebGL2RenderingContext::maxTextureLevelForTarget):
(WebCore::WebGL2RenderingContext::blitFramebuffer):
(WebCore::WebGL2RenderingContext::framebufferTextureLayer):
(WebCore::WebGL2RenderingContext::getInternalformatParameter):
(WebCore::WebGL2RenderingContext::invalidateFramebuffer):
(WebCore::WebGL2RenderingContext::invalidateSubFramebuffer):
(WebCore::WebGL2RenderingContext::renderbufferStorageMultisample):
(WebCore::WebGL2RenderingContext::renderbufferStorageImpl):
(WebCore::WebGL2RenderingContext::renderbufferStorageHelper):
(WebCore::WebGL2RenderingContext::checkAndTranslateAttachments):
(WebCore::WebGL2RenderingContext::renderbufferStorage): Deleted.

  • html/canvas/WebGL2RenderingContext.h:
  • html/canvas/WebGLFramebuffer.cpp:

(WebCore::WebGLFramebuffer::setAttachmentForBoundFramebuffer):
(WebCore::WebGLFramebuffer::attach):
(WebCore::WebGLFramebuffer::removeAttachmentFromBoundFramebuffer):
(WebCore::WebGLFramebuffer::setAttachmentInternal):
(WebCore::WebGLFramebuffer::removeAttachmentInternal):

  • html/canvas/WebGLFramebuffer.h:
  • html/canvas/WebGLRenderingContext.cpp:

(WebCore::WebGLRenderingContext::renderbufferStorage): Deleted.

  • html/canvas/WebGLRenderingContext.h:
  • html/canvas/WebGLRenderingContextBase.cpp:

(WebCore::WebGLRenderingContextBase::framebufferRenderbuffer):
(WebCore::WebGLRenderingContextBase::framebufferTexture2D):
(WebCore::WebGLRenderingContextBase::getRenderbufferParameter):
(WebCore::WebGLRenderingContextBase::renderbufferStorage):
(WebCore::WebGLRenderingContextBase::renderbufferStorageImpl):
(WebCore::WebGLRenderingContextBase::validateTexFuncLevel):
(WebCore::WebGLRenderingContextBase::maxTextureLevelForTarget):
(WebCore::WebGLRenderingContextBase::validateFramebufferFuncParameters):

  • html/canvas/WebGLRenderingContextBase.h:
  • platform/graphics/GraphicsContextGL.h:
  • platform/graphics/angle/GraphicsContextGLANGLE.cpp:

(WebCore::GraphicsContextGLOpenGL::framebufferTextureLayer):
(WebCore::GraphicsContextGLOpenGL::invalidateFramebuffer):
(WebCore::GraphicsContextGLOpenGL::invalidateSubFramebuffer):

  • platform/graphics/opengl/GraphicsContextGLOpenGL.h:

LayoutTests:

Rebaseline WebGL 2.0 conformance tests which are improved with
this patch. Of these, views-with-offsets.html and
gl-object-get-calls.html progress; all of the others now pass
fully.

  • webgl/2.0.0/conformance2/misc/views-with-offsets-expected.txt:
  • webgl/2.0.0/conformance2/renderbuffers/framebuffer-object-attachment-expected.txt:
  • webgl/2.0.0/conformance2/renderbuffers/framebuffer-texture-layer-expected.txt:
  • webgl/2.0.0/conformance2/renderbuffers/invalidate-framebuffer-expected.txt:
  • webgl/2.0.0/conformance2/rendering/framebuffer-unsupported-expected.txt:
  • webgl/2.0.0/conformance2/state/gl-object-get-calls-expected.txt:
  • webgl/2.0.0/conformance2/textures/misc/copy-texture-image-webgl-specific-expected.txt:
  • webgl/2.0.0/conformance2/textures/misc/tex-unpack-params-expected.txt:
11:26 AM Changeset in webkit [264844] by commit-queue@webkit.org
  • 2 edits in trunk/LayoutTests

[ macOS ] svg/batik/text/textPosition2.svg is passing and expectation needs to be removed
https://bugs.webkit.org/show_bug.cgi?id=214749

Unreviewed test gardening.

Patch by Hector Lopez <Hector Lopez> on 2020-07-24

  • platform/mac/TestExpectations:
11:10 AM Changeset in webkit [264843] by Karl Rackler
  • 2 edits in trunk/LayoutTests

[ iOS wk2 ] imported/w3c/web-platform-tests/html/semantics/embedded-content/the-canvas-element/security.pattern.fillStyle.sub.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=214751

Unreviewed test gardening.

  • platform/ios-simulator-wk2/TestExpectations:
10:40 AM Changeset in webkit [264842] by ddkilzer@apple.com
  • 2 edits in trunk/Source/WebKit

[IPC hardening] Add nullptr checks for WebPage::m_activeColorChooser
<https://webkit.org/b/214699>
<rdar://problem/65850975>

Reviewed by Darin Adler.

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::didEndColorPicker):
(WebKit::WebPage::didChooseColor):

  • Add nullptr check before dereferencing m_activeColorChooser.
10:29 AM Changeset in webkit [264841] by Karl Rackler
  • 2 edits in trunk/LayoutTests

[ iOS ] fast/visual-viewport/scroll-event-fired-during-scroll-alone.html is a flakey failure
https://bugs.webkit.org/show_bug.cgi?id=214324

Unreviewed test gardening.

  • platform/ios-simulator-wk2/TestExpectations:
10:22 AM Changeset in webkit [264840] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

[macOS WK1 EWS] compositing/repaint/iframes tests are flaky failures
https://bugs.webkit.org/show_bug.cgi?id=214388

Unreviewed test gardening.

  • platform/mac-wk1/TestExpectations:

Mark all compositing/repaint/iframes as failing for Mojave to speed up EWS while we search for the root cause.

10:19 AM Changeset in webkit [264839] by jer.noble@apple.com
  • 7 edits
    12 adds in trunk

[Cocoa] Add PerformanceTest tool for measuring raw speed of a video decoder
https://bugs.webkit.org/show_bug.cgi?id=214723

Reviewed by Darin Adler.

PerformanceTests:

  • DecoderTest/Configurations/Base.xcconfig: Added.
  • DecoderTest/Configurations/DebugRelease.xcconfig: Added.
  • DecoderTest/Configurations/DecoderTest.xcconfig: Added.
  • DecoderTest/DecoderTest.xcodeproj/project.pbxproj: Added.
  • DecoderTest/DecoderTest/main.mm: Added.

(Function<void):
(main):

  • DecoderTest/Makefile: Added.
  • Makefile.shared: Added.

Source/WebCore:

Export classes used by the DecoderTest performance tool. Drive-by fix: allow the
clients to enable or disable the hardware decoder for a given decompression session.

  • WebCore.xcodeproj/project.pbxproj:
  • platform/MediaSample.h:
  • platform/graphics/cocoa/SourceBufferParserWebM.h:
  • platform/graphics/cocoa/WebCoreDecompressionSession.h:
  • platform/graphics/cocoa/WebCoreDecompressionSession.mm:

(WebCore::WebCoreDecompressionSession::ensureDecompressionSessionForSample):

10:18 AM Changeset in webkit [264838] by youenn@apple.com
  • 4 edits in trunk/Source/WebCore

Monitor the case of a fetch event not able to register to the respondWith promise
https://bugs.webkit.org/show_bug.cgi?id=214631

Reviewed by Alex Christensen.

In some cases, the "Fetch event is destroyed" error is received.
One possibility is that the fetch event is not able to register to its respondWith promise.
Add a specific error message for that case.

This is difficult to test as we would need to have a fetch event trying to register to the respondWith promise
exactly at the time the service worker gets stopped.

  • bindings/js/JSDOMPromise.cpp:

(WebCore::DOMPromise::whenSettled):
(WebCore::DOMPromise::whenPromiseIsSettled):

  • bindings/js/JSDOMPromise.h:
  • workers/service/FetchEvent.cpp:

(WebCore::FetchEvent::respondWith):
Change from weakThis to makeRef. While this is not strictly needed since addExtendLifetimePromise ref the event while calling whenSettled,
this is clearer and more robust.

10:15 AM Changeset in webkit [264837] by youenn@apple.com
  • 2 edits in trunk/Tools

Add some logging to debug WebKit.QuotaDelegate test that times out on a Debug bot
https://bugs.webkit.org/show_bug.cgi?id=214725

Reviewed by Darin Adler.

  • TestWebKitAPI/Tests/WebKitCocoa/StorageQuota.mm:

(doTest):

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

ASSERT(!m_peerConnection.isClosed()) on imported/w3c/web-platform-tests/webrtc/RTCPeerConnection-operations.https.html
https://bugs.webkit.org/show_bug.cgi?id=214189
<rdar://problem/65343941>

Reviewed by Eric Carlson.

Source/WebCore:

Covered by unskipped tests.

  • Modules/mediastream/PeerConnectionBackend.cpp:

(WebCore::PeerConnectionBackend::addPendingTrackEvent):
This can be called in case the connection is closed but should not be in case the connection is stopped.
Update the ASSERT accordingly.

LayoutTests:

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

[ macOS ] svg/wicd/test-rightsizing-b.xhtml is passing and expectation needs to be removed
https://bugs.webkit.org/show_bug.cgi?id=214742

Unreviewed test gardening.

Patch by Hector Lopez <Hector Lopez> on 2020-07-24

  • platform/mac/TestExpectations:
9:44 AM Changeset in webkit [264834] by Chris Dumez
  • 15 edits in trunk

[ iOS wk2 ] imported/w3c/web-platform-tests/web-share/share-without-user-gesture.https.html is a constant timeout
https://bugs.webkit.org/show_bug.cgi?id=214694
<rdar://problem/66001110>

Reviewed by Tim Horton.

Tools:

The test was failing because there was a share sheet still being presented from a previous Web Share test.
TestController::platformResetStateToConsistentValues() would wait for that share sheet to get dismiss and
would eventually give up and report the test as timing out. The issue is that WebKit layout test were
relying on a UIScriptController function to dismiss the share sheet but Web Platform Tests did not.
To address the issue, we now always promptly dismiss the share sheet in WebKitTestRunner, without the need
for a UIScriptController function call. The Share Sheet now gets dismissed promptly in both WebKit tests
and WPT tests.

For robustness, I also added code in WebKitTestRunner to dismiss any remaining presented view controller
after waiting, to avoid failing on the next test in such cases.

  • TestRunnerShared/UIScriptContext/Bindings/UIScriptController.idl:
  • TestRunnerShared/UIScriptContext/UIScriptController.h:

(WTR::UIScriptController::setShareSheetCompletesImmediatelyWithResolution): Deleted.

  • WebKitTestRunner/cocoa/UIScriptControllerCocoa.h:
  • WebKitTestRunner/cocoa/UIScriptControllerCocoa.mm:

(WTR::UIScriptControllerCocoa::setShareSheetCompletesImmediatelyWithResolution): Deleted.
Delete UIScriptController.setShareSheetCompletesImmediatelyWithResolution() utility function for tests now
that it is the default in WebKit TestRunner.

  • WebKitTestRunner/ios/TestControllerIOS.mm:

(WTR::TestController::platformResetStateToConsistentValues):

  • Call _setShareSheetCompletesImmediatelyWithResolutionForTesting:YES on the test WKWebView instead of relying on individual tests to do that.
  • For robustness, if there is still a presented view controller after waiting, we now dismiss it ourselves instead of failing. This otherwise leads to next test to be reported as failing (or timing out) because there is a presented view controller that remains from the previous test. Note that this is not needed to fix the layout test in question since we now properly dismiss the share UI in WPT tests but I still think it is a good thing to do for robustness and avoid test flakiness.

LayoutTests:

  • fast/web-share/share-transient-activation-expired.html:
  • fast/web-share/share-transient-activation.html:
  • fast/web-share/share-with-files.html:
  • fast/web-share/share-with-no-url.html:
  • fast/web-share/share.html:
  • platform/ios/TestExpectations:
  • resources/ui-helper.js:

(window.UIHelper.setShareSheetCompletesImmediatelyWithResolution): Deleted.
Update existing layout test so stop calling UIHelper.setShareSheetCompletesImmediatelyWithResolution() now that it
is the default in WebKitTestRunner.

  • platform/ios/TestExpectations:

Unskip test that is no longer timing out.

9:42 AM Changeset in webkit [264833] by Alexey Shvayka
  • 4 edits in trunk

JSON.parse should not modify non-configurable properties.
https://bugs.webkit.org/show_bug.cgi?id=163446

Reviewed by Darin Adler.

JSTests:

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

Source/JavaScriptCore:

This change implements step 2.c.ii.3 of InternalizeJSONProperty [1], replacing
put() with defineOwnProperty(). Using the latter fixes JSON.parse() with
non-configurable (failures are silently ignored; see note in the spec),
non-writable, and accessor properties, aligning JSC with V8 and SpiderMonkey.

Since it's extremely unlikely for userland reviver to remove or redefine the
next property, a fast path for PropertyAttribute::None attributes is introduced.
It advances microbenchmarks/json-parse-object-*.js by ~13%.

[1]: https://tc39.es/ecma262/#sec-internalizejsonproperty

  • runtime/JSONObject.cpp:

(JSC::Walker::walk):

9:40 AM Changeset in webkit [264832] by commit-queue@webkit.org
  • 3 edits in trunk/LayoutTests

[ macOS iOS ] webarchive/loading/test-loading-archive-subresource-null-mimetype.html is passing and expectations need to be removed
https://bugs.webkit.org/show_bug.cgi?id=214740

Unreviewed test gardening.

Patch by Hector Lopez <Hector Lopez> on 2020-07-24

  • platform/ios/TestExpectations:
  • platform/mac/TestExpectations:
9:28 AM Changeset in webkit [264831] by aakash_jain@apple.com
  • 2 edits in trunk/Tools

[ews] Disable email sending on testing instances of ews
https://bugs.webkit.org/show_bug.cgi?id=214738

Reviewed by Jonathan Bedard.

  • BuildSlaveSupport/ews-build/send_email.py:

(send_email):

9:26 AM Changeset in webkit [264830] by aakash_jain@apple.com
  • 3 edits in trunk/Tools

[ews] Notify bot watchers about build being broken
https://bugs.webkit.org/show_bug.cgi?id=214727

Reviewed by Jonathan Bedard.

  • BuildSlaveSupport/ews-build/steps.py:

(AnalyzeCompileWebKitResults.start):
(AnalyzeCompileWebKitResults.send_email_for_build_failure):

  • BuildSlaveSupport/ews-build/steps_unittest.py:

(TestAnalyzeCompileWebKitResults.setUp):
(TestReRunWebKitTests.configureStep):
(TestAnalyzeLayoutTestsResults.configureStep):

9:03 AM Changeset in webkit [264829] by ddkilzer@apple.com
  • 3 edits in trunk/Source/WebKit

Add/Update CRASH_WITH_INFO() for invalid IPC message logging
<https://webkit.org/b/214713>

Reviewed by Anders Carlsson.

  • Platform/IPC/cocoa/ConnectionCocoa.mm:

(IPC::Connection::sendMessage):

  • Simplify logging by removing CString and using IPC::MessageName enum value instead of hash.
  • Shared/Cocoa/AuxiliaryProcessCocoa.mm:

(WebKit::AuxiliaryProcess::didReceiveInvalidMessage):

  • Add IPC::MessageName enum value to setCrashReportApplicationSpecificInformation() output.
  • Change CRASH() to CRASH_WITH_INFO() and pass IPC::MessageName enum value.
8:53 AM Changeset in webkit [264828] by Karl Rackler
  • 2 edits in trunk/LayoutTests

[ iOS debug wk2 ] imported/w3c/web-platform-tests/css/css-flexbox/getcomputedstyle/flexbox_computedstyle_align-content-center.html is a flaky timeout
https://bugs.webkit.org/show_bug.cgi?id=214739

Unreviewed test gardening.

  • platform/ios-simulator-wk2/TestExpectations:
8:49 AM Changeset in webkit [264827] by ysuzuki@apple.com
  • 3 edits
    1 add in trunk

[JSC] Do not use hardened Array for Intl supportedLocalesOf
https://bugs.webkit.org/show_bug.cgi?id=214676

Reviewed by Mark Lam.

JSTests:

  • stress/intl-suppored-locales-of.js: Added.

(shouldBe):

Source/JavaScriptCore:

We do not need to call getOwnPropertyNames & defineOwnProperty because hardening array of Intl.XXX.supportedLocalesOf is removed from the spec.
We should just return an array from bestFitSupportedLocales or lookupSupportedLocales, while this change is not observable to users (but it is better
for performance). This fully fixes https://github.com/tc39/ecma402/pull/278.

  • runtime/IntlObject.cpp:

(JSC::supportedLocales):

8:34 AM Changeset in webkit [264826] by Karl Rackler
  • 2 edits in trunk/LayoutTests

[ iOS wk2 ] imported/w3c/web-platform-tests/css/css-flexbox/align-self-014.html is a flaky timeout
https://bugs.webkit.org/show_bug.cgi?id=214736

Unreviewed test gardening.

  • platform/ios-simulator-wk2/TestExpectations:
8:12 AM Changeset in webkit [264825] by commit-queue@webkit.org
  • 2 edits in trunk/JSTests

Skip crashing test on mips
https://bugs.webkit.org/show_bug.cgi?id=214729

Patch by Angelos Oikonomopoulos <Angelos Oikonomopoulos> on 2020-07-24
Reviewed by Noam Rosenthal.

  • stress/compare-eq-should-use-known-other-use.js:
8:09 AM Changeset in webkit [264824] by Karl Rackler
  • 2 edits in trunk/LayoutTests

[ iOS wk2 ] http/tests/security/xssAuditor/cached-frame.html is a flaky timeout
https://bugs.webkit.org/show_bug.cgi?id=214735

Unreviewed test gardening.

  • platform/ios-simulator-wk2/TestExpectations:
8:04 AM Changeset in webkit [264823] by commit-queue@webkit.org
  • 3 edits in trunk/JSTests

REGRESSION(r264639): Intl.DisplayNames tests failing on all architectures
https://bugs.webkit.org/show_bug.cgi?id=214589

Patch by Michael Catanzaro <Michael Catanzaro> on 2020-07-24
Reviewed by Darin Adler.

Massage the tests for compatibility with ICU 63.1. I don't understand how exactly ICU's
behavior has changed between releases, and some of the conditions need to be added in
somewhat strange places, but this at least makes the tests pass.

  • stress/intl-displaynames.js:

(vm.icuVersion):

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

(vm.icuVersion):

7:24 AM Changeset in webkit [264822] by youenn@apple.com
  • 2 edits in trunk/Source/ThirdParty/libwebrtc

Do not require hardware H264 encoder in case of HAVE_VTB_REQUIREDLOWLATENCY
https://bugs.webkit.org/show_bug.cgi?id=214687

Reviewed by Eric Carlson.

  • Source/webrtc/sdk/objc/components/video_codec/RTCVideoEncoderH264.mm:

(-[RTCVideoEncoderH264 resetCompressionSessionWithPixelFormat:]):

7:22 AM Changeset in webkit [264821] by Karl Rackler
  • 2 edits in trunk/LayoutTests

[ iOS debug wk2 ] imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element/moving-between-documents/before-prepare-createHTMLDocument-fetch-error-external-module.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=214734

Unreviewed test gardening.

  • platform/ios-simulator-wk2/TestExpectations:
7:00 AM Changeset in webkit [264820] by Karl Rackler
  • 2 edits in trunk/LayoutTests

[ iOS wk2 ] imported/w3c/web-platform-tests/IndexedDB/key-generators/reading-autoincrement-store.any.serviceworker.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=214732

Unreviewed test gardening.

  • platform/ios-simulator-wk2/TestExpectations:
6:35 AM Changeset in webkit [264819] by Karl Rackler
  • 2 edits in trunk/LayoutTests

[ iOS debug wk2 ] imported/w3c/web-platform-tests/IndexedDB/key-generators/reading-autoincrement-store-cursors.any.serviceworker.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=214731

Unreviewed test gardening.

  • platform/ios-simulator-wk2/TestExpectations:
6:11 AM Changeset in webkit [264818] by Karl Rackler
  • 2 edits in trunk/LayoutTests

[ iOS wk2 ] fast/scrolling/ios/programmatic-scroll-while-zoomed.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=214358

Unreviewed test gardening.

  • platform/ios-simulator-wk2/TestExpectations:
5:20 AM Changeset in webkit [264817] by Karl Rackler
  • 2 edits in trunk/LayoutTests

[ iOS debug wk2 ] imported/w3c/web-platform-tests/webrtc/RTCSctpTransport-constructor.html and webrtc/simulcast-h264.html are flaky crash
https://bugs.webkit.org/show_bug.cgi?id=214730

Unreviewed test gardening.

  • platform/ios-simulator-wk2/TestExpectations:
3:43 AM Changeset in webkit [264816] by calvaris@igalia.com
  • 4 edits in trunk

[GStreamer] gst_buffer_unmap: assertion 'GST_IS_BUFFER (buffer)' failed
https://bugs.webkit.org/show_bug.cgi?id=213364

Reviewed by Philippe Normand.

Source/WebCore:

The initial patch for this bug had good intentions but it failed
in something basic and tests did not tackle the original
issue. The problem was in that the destructor of the subclass was
being called before the destructor of the superclass, hence the
buffer was unreffed before unmapped.

Now we finish what we started by adding an unmapEarly method that
can be used as regular API if wanted and that it is used by the
GstMappedOwnedBuffer destructor to instruct GstMappedBuffer
superclass to actually unmap without having to wait for the
destructor of the superclass to kick in.

Tests: GStreamerTest::mappedOwnedBufferDestruction and
GStreamerTest::mappedBufferValidityUnmapEarly API tests.

  • platform/graphics/gstreamer/GStreamerCommon.h:

(WebCore::GstMappedBuffer::~GstMappedBuffer):
(WebCore::GstMappedBuffer::unmapEarly):
(WebCore::GstMappedOwnedBuffer::~GstMappedOwnedBuffer):

Tools:

  • TestWebKitAPI/Tests/WebCore/gstreamer/GstMappedBuffer.cpp:

(TestWebKitAPI::TEST_F): Added
GStreamerTest::mappedOwnedBufferDestruction and
GStreamerTest::mappedBufferValidityUnmapEarly tests.

3:06 AM Changeset in webkit [264815] by youenn@apple.com
  • 4 edits in trunk

Remove assertions in RTCVideoEncoderH264 that are wrong in case of simulcast
https://bugs.webkit.org/show_bug.cgi?id=214684

Reviewed by Darin Adler.

Source/ThirdParty/libwebrtc:

  • Source/webrtc/sdk/objc/components/video_codec/RTCVideoEncoderH264.mm:

(-[RTCVideoEncoderH264 encode:codecSpecificInfo:frameTypes:]):
In case of simulcast, the session expected width/height and samples width/height are not matching.
This is expected and the session handles it properly.

LayoutTests:

  • platform/mac-wk2/TestExpectations:
2:58 AM Changeset in webkit [264814] by youenn@apple.com
  • 5 edits in trunk/Source/WebKit

Use one socket server for the whole network process instead of one socket server per web process connection
https://bugs.webkit.org/show_bug.cgi?id=214593

Reviewed by Alex Christensen.

Instead of a socket server per web process, we will only create one for all web processes.
Conversely, we do the same for the network manager.
This should allow to reduce our use of sockets in network process and hopefully reduce the occurence of sockets fd above FD_SETSIZE.
Covered by existing tests.

  • NetworkProcess/webrtc/NetworkRTCMonitor.cpp:

(WebKit::networkManager):
(WebKit::NetworkManagerWrapper::addListener):
(WebKit::NetworkManagerWrapper::removeListener):
(WebKit::NetworkManagerWrapper::onNetworksChanged):
(WebKit::NetworkRTCMonitor::~NetworkRTCMonitor):
(WebKit::NetworkRTCMonitor::startUpdatingIfNeeded):
(WebKit::NetworkRTCMonitor::stopUpdating):
(WebKit::NetworkRTCMonitor::onNetworksChanged):

  • NetworkProcess/webrtc/NetworkRTCMonitor.h:
  • NetworkProcess/webrtc/NetworkRTCProvider.cpp:

(WebKit::rtcNetworkThread):
(WebKit::NetworkRTCProvider::NetworkRTCProvider):
(WebKit::NetworkRTCProvider::close):
(WebKit::NetworkRTCProvider::createSocket):
(WebKit::NetworkRTCProvider::createUDPSocket):
(WebKit::NetworkRTCProvider::createServerTCPSocket):
(WebKit::NetworkRTCProvider::wrapNewTCPConnection):
(WebKit::NetworkRTCProvider::sendToSocket):
(WebKit::NetworkRTCProvider::closeSocket):
(WebKit::NetworkRTCProvider::setSocketOption):
(WebKit::NetworkRTCProvider::addSocket):
(WebKit::NetworkRTCProvider::takeSocket):
(WebKit::NetworkRTCProvider::newConnection):
(WebKit::NetworkRTCProvider::callOnRTCNetworkThread):

  • NetworkProcess/webrtc/NetworkRTCProvider.h:

(WebKit::NetworkRTCProvider::connection):

12:30 AM Changeset in webkit [264813] by commit-queue@webkit.org
  • 3 edits in trunk/Tools

Add a GNU parallel runner
https://bugs.webkit.org/show_bug.cgi?id=214356

Patch by Angelos Oikonomopoulos <Angelos Oikonomopoulos> on 2020-07-24
Reviewed by Keith Miller.

At the moment, run-jsc-stress-tests uses make as a (local) job scheduling
engine (i.e. doesn't make use of the dependency tracking at all). However,
this causes problems for the distributed job scheduling we want to do when
using --remote.

If a remote is down, the tests will fail.
If a remote goes down during testing, the tests will fail.

There is no reason not to ignore remotes that are unavailable. What's more,
we should be able to reschedule jobs that were in the middle of execution when
a remote host goes down.

This patch tries to leverage GNU parallel as the execution engine to
hopefully transparently handle some of those failure scenarios.

  • Scripts/run-javascriptcore-tests:

(runJSCStressTests):

  • Scripts/run-jsc-stress-tests:

Jul 23, 2020:

10:31 PM Changeset in webkit [264812] by Wenson Hsieh
  • 11 edits in trunk

Tapping QuickType suggestions for a misspelled word does nothing in Mail compose
https://bugs.webkit.org/show_bug.cgi?id=214705
<rdar://problem/58320785>

Reviewed by Tim Horton.

Source/WebKit:

In WebKit2-based editing contexts on iOS (such as Mail compose), tapping on a misspelled word will result in
QuickType suggestions in the input accessory row either showing up blank (i.e. with no suggestions), or will
show suggestions that are contextual to the text selection prior to selecting the misspelled word. Subsequently,
attempting to choose of these suggestions results in no text being inserted. This happens for a couple of
reasons:

  1. UIKit doesn't attempt to re-request the autocorrection context after tapping on a misspelled word. UIKit

just uses -selectWordForReplacement to extend the selection over the misspelled word, which doesn't
currently fire any of the selection change callbacks on UIInputDelegate. As a result, UIKit will instead
believe that the selection is collapsed to the start or end of the misspelled word.

  1. Upon attempting to compute text suggestions for QuickType, -[UIKeyboardImpl replacementsFromSelectedText]

uses -textInRange: to grab the currently selected text, which (in WKContentView) is currently hard-coded
to always return nil.

We address (1) by bookending -selectWordForReplacement with calls to -beginSelectionChange and
-endSelectionChange, and address (2) by teaching -textInRange: to return the current text selection, only in
the case where the given UITextRange is equal to the current ranged selection.

Test: SelectionTests.SelectedTextAfterSelectingWordForReplacement

  • UIProcess/WebPageProxy.h:

(WebKit::WebPageProxy::extendSelection):

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

(-[WKContentView cleanUpInteraction]):
(-[WKContentView textInRange:]):

Special-case the scenario where the input text range is exactly the same as self.selectedTextRange by
returning the currently selected text that is cached on EditorState. In all other cases, continue to return
nil.

(-[WKContentView selectedTextRange]):

Cache the current selected text range on WKContentView, such that repeated calls to selectedTextRange when the
selection has not changed does not require a new WKTextRange to be constructed every time.

(-[WKContentView _selectionChanged]):

Invalidate the cached selected text range whenever the selection has changed.

(-[WKContentView selectWordForReplacement]):

Use the completion callback added below to bookend this method with -(begin|end)SelectionChange.

(-[WKContentView _updateChangedSelection:]):

Invalidate the cached selected text range whenever we're about to tell UIKit to repaint the selection.

  • UIProcess/ios/WebPageProxyIOS.mm:

(WebKit::WebPageProxy::extendSelection):

Add an optional completion callback to extendSelection.

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

(WebKit::WebPage::extendSelection):

Tools:

  • TestWebKitAPI/Tests/ios/SelectionByWord.mm:

Add a unit test to exercise the changes in behavior when calling UITextInput API.

(-[SelectionChangeListener setSelectionWillChangeHandler:]):
(-[SelectionChangeListener setSelectionDidChangeHandler:]):
(-[SelectionChangeListener selectionWillChangeHandler]):
(-[SelectionChangeListener selectionDidChangeHandler]):
(-[SelectionChangeListener selectionWillChange:]):
(-[SelectionChangeListener selectionDidChange:]):
(-[SelectionChangeListener textWillChange:]):
(-[SelectionChangeListener textDidChange:]):

  • TestWebKitAPI/ios/UIKitSPI.h:
10:04 PM Changeset in webkit [264811] by commit-queue@webkit.org
  • 27 edits
    1 add in trunk/Source

Split Windows parts from CFNetworkSPI.h to CFNetworkSPIWin.h
https://bugs.webkit.org/show_bug.cgi?id=214719

Patch by Alex Christensen <achristensen@webkit.org> on 2020-07-23
Reviewed by Tim Horton.

Source/WebCore:

No change in behavior.
Windows CFNetwork work is not actively developed, but Cocoa is.
This makes it easier to find where to put new things.

  • platform/network/NetworkStorageSession.h:
  • platform/network/ResourceHandleClient.h:
  • platform/network/ResourceHandleInternal.h:
  • platform/network/cf/CookieStorageCFNet.cpp:
  • platform/network/cf/CredentialStorageCFNet.cpp:
  • platform/network/cf/NetworkStorageSessionCFNetWin.cpp:
  • platform/network/cf/ResourceErrorCF.cpp:
  • platform/network/cf/ResourceHandleCFNet.cpp:
  • platform/network/cf/ResourceHandleCFURLConnectionDelegate.cpp:
  • platform/network/cf/ResourceHandleCFURLConnectionDelegateWithOperationQueue.cpp:
  • platform/network/cf/ResourceRequestCFNet.cpp:
  • platform/network/cf/ResourceRequestCFNet.h:
  • platform/network/cf/ResourceResponse.h:
  • platform/network/cf/ResourceResponseCFNet.cpp:
  • platform/network/cf/SocketStreamHandleImplCFNet.cpp:

Source/WebCore/PAL:

  • pal/PlatformAppleWin.cmake:
  • pal/spi/cf/CFNetworkSPI.h:
  • pal/spi/win/CFNetworkSPIWin.h: Added.

Source/WebKitLegacy/win:

  • WebCache.cpp:
  • WebCoreSupport/WebFrameNetworkingContext.cpp:
  • WebCoreSupport/WebPlatformStrategies.cpp:
  • WebError.cpp:
  • WebURLResponse.cpp:
  • WebView.cpp:
9:48 PM Changeset in webkit [264810] by Peng Liu
  • 2 edits in trunk/Source/WebKit

Safari Related Leaked Assertions after Playing YouTube Video
https://bugs.webkit.org/show_bug.cgi?id=214706

Reviewed by Jer Noble.

A 10 second grace period before removing the activity token was introduced in r252692.
However, some websites, e.g., youtube.com, requests the video element to play the
next video 10 seconds after completing the current one (when the Safari is in the background).
That can lead to a race condition between the web process and the UI process. They may send
IPC messages to each other at the same time:
1) The web process sends a WebPageProxy::IsPlayingMediaDidChange message to the UI process
to notify that video/audio is playing, so the UI process will take a MediaPlayback assertion.
2) The UI process sends a WebProcess::PrepareToSuspend message to the web process, which
will suspend the web process.

Eventually, the web process will suspend, which means no video/audio playback.
But the UI process believes that there is a web process playing video/audio, so it will
take a MediaPlayback assertion.

This patch fixes the race condition by ignoring the WebPageProxy::IsPlayingMediaDidChange
message in the UIProcess if the process throttler believes that the process should not be
running, so that the MediaPlayback assertion will not be created.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::isPlayingMediaDidChange):

8:53 PM Changeset in webkit [264809] by ysuzuki@apple.com
  • 7 edits
    1 add in trunk

[JSC] Arrow function |this| resolution should not be trapped by with-scope
https://bugs.webkit.org/show_bug.cgi?id=214716
<rdar://problem/65980639>

Reviewed by Darin Adler.

JSTests:

  • stress/proxy-trap-this.js: Added.

(shouldNotThrow):
(const.handler.has):
(test):

Source/JavaScriptCore:

We were using usual "this" named variable in lexical-environment to load and store arrow-function's |this|.
But since this looks normal variable, it can be trapped by "with" scope's object while it should not be.
We use thisPrivateName instead to avoid this behavior since Proxy does not trap private names.

  • builtins/BuiltinNames.h:
  • bytecompiler/BytecodeGenerator.cpp:

(JSC::BytecodeGenerator::initializeArrowFunctionContextScopeIfNeeded):
(JSC::BytecodeGenerator::variable):
(JSC::BytecodeGenerator::createVariable):
(JSC::BytecodeGenerator::emitLoadThisFromArrowFunctionLexicalEnvironment):
(JSC::BytecodeGenerator::emitPutThisToArrowFunctionContextScope):

  • bytecompiler/NodesCodegen.cpp:

(JSC::HasOwnPropertyFunctionCallDotNode::emitBytecode):
(JSC::ForInNode::emitBytecode):

  • runtime/CommonIdentifiers.cpp:

(JSC::CommonIdentifiers::CommonIdentifiers):

  • runtime/CommonIdentifiers.h:
7:28 PM Changeset in webkit [264808] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Remove dead code in ResourceHandleCFNet.cpp
https://bugs.webkit.org/show_bug.cgi?id=214717

Patch by Alex Christensen <achristensen@webkit.org> on 2020-07-23
Reviewed by Darin Adler.

ResourceHandleCFNet.cpp is not compiled on Cocoa platforms any more.
Remove Cocoa-specific code in that file, which was used on iOS before adopting NSURLSession.

  • platform/network/cf/ResourceHandleCFNet.cpp:

(WebCore::ResourceHandle::createCFURLConnection):
(WebCore::ResourceHandle::start):
(WebCore::ResourceHandle::tryHandlePasswordBasedAuthentication):
(WebCore::ResourceHandle::receivedCredential):
(WebCore::ResourceHandle::schedule): Deleted.
(WebCore::ResourceHandle::unschedule): Deleted.

5:50 PM Changeset in webkit [264807] by commit-queue@webkit.org
  • 10 edits in trunk

[WebGL2] Query Objects
https://bugs.webkit.org/show_bug.cgi?id=126940

Patch by James Darpinian <James Darpinian> on 2020-07-23
Reviewed by Dean Jackson.

Source/WebCore:

Passes conformance tests webgl/2.0.0/conformance2/query/*

  • html/canvas/WebGL2RenderingContext.cpp:

(WebCore::WebGL2RenderingContext::deleteQuery):
(WebCore::WebGL2RenderingContext::isQuery):
(WebCore::WebGL2RenderingContext::validateQueryTarget):
(WebCore::WebGL2RenderingContext::beginQuery):
(WebCore::WebGL2RenderingContext::endQuery):
(WebCore::WebGL2RenderingContext::getQuery):
(WebCore::WebGL2RenderingContext::getQueryParameter):

  • html/canvas/WebGL2RenderingContext.h:
  • html/canvas/WebGLQuery.cpp:

(WebCore::WebGLQuery::deleteObjectImpl):

  • html/canvas/WebGLQuery.h:
  • html/canvas/WebGLRenderingContextBase.cpp:

(WebCore::WebGLRenderingContextBase::validateWebGLObject):

  • platform/graphics/angle/GraphicsContextGLANGLE.cpp:

(WebCore::GraphicsContextGLOpenGL::deleteQuery):
(WebCore::GraphicsContextGLOpenGL::isQuery):
(WebCore::GraphicsContextGLOpenGL::getQuery):

LayoutTests:

  • webgl/2.0.0/conformance2/query/query-expected.txt:
  • webgl/2.0.0/conformance2/state/gl-object-get-calls-expected.txt:
4:54 PM Changeset in webkit [264806] by pvollan@apple.com
  • 4 edits in trunk/Source/WebKit

Crash in block in WebKit::LaunchServicesDatabaseObserver::LaunchServicesDatabaseObserver
https://bugs.webkit.org/show_bug.cgi?id=214702

Reviewed by Chris Dumez.

Calling xpc_connection_send_message in the block in WebKit::LaunchServicesDatabaseObserver::LaunchServicesDatabaseObserver will
sometimes crash because the XPC connection object is invalid. The block is called on a secondary thread, and the m_connections
member variable needs to be protected by a lock. Also, make sure the XPC connections objects in m_connections are valid by
retaining them when captured in a block. This is done by redeclaring a local XPC connection variable as an OSObjectPtr instead
of a raw XPC connection object.

No new tests, since I have not been able to reproduce this issue.

  • NetworkProcess/cocoa/LaunchServicesDatabaseObserver.h:
  • NetworkProcess/cocoa/LaunchServicesDatabaseObserver.mm:

(WebKit::LaunchServicesDatabaseObserver::LaunchServicesDatabaseObserver):
(WebKit::LaunchServicesDatabaseObserver::startObserving):
(WebKit::LaunchServicesDatabaseObserver::handleEvent):

  • Shared/Cocoa/XPCEndpoint.mm:

(WebKit::XPCEndpoint::XPCEndpoint):

4:42 PM Changeset in webkit [264805] by commit-queue@webkit.org
  • 36 edits
    5 adds in trunk/Source/WebCore

Infrastructure Work for Integrating CoreImage for Accelerated CSS/SVG Filter Rendering
https://bugs.webkit.org/show_bug.cgi?id=213672

Patch by Guowei Yang <guowei_yang@apple.com> on 2020-07-23
Reviewed by Simon Fraser.

This patch is the infrastructure work to enable filter rendering using
CoreImage. The design of this code is as follows:

0) changing WebCore configuration for using CoreImage framework from

iOS/mac only to unconditional, so watchOS and tvOS could also use
CoreImage

1) adding a new API to obtain the IOSurface from an AcceleratedImageBuffer

since CoreImage needs to render to an IOSurface

2) Instead of applying the filters inside FilterEffect, a new class,

FilterEffectRendererCoreImage is designed to handle the rendering. We hide
the implementation details by subclassing from a generic FilterEffectRenderer class.
This also has the benefit of organizing CoreImage obj-c calls in one place. This class
owns a FilterEffect node, that is the last FilterEffect of a given filter graph.
The filter graph will be traversed backwards and filter parameters is gathered
along the way. Then CIFilters will be created and connected to a larger CIFilter
graph. The output of the CIFilter graph will be rendered to the IOSurface of
a newly created AcceleratedImageBuffer. This image buffer will be returned
to RenderLayerFilters and rendered to the screen

3) Inside CSSFilter::build, we first try to create a FilterEffectRenderer by passing in

a renderer setting. A valid pointer will be returned only when the following two conditions
are met:

. CoreImage rendering is enabled in settings
. All the filters inside the filter graph is implemented using CIFilters

No new tests are required as this is the
infrastructure code for integrating CoreImage
This patch should pass all the existing css3/filters tests

  • Configurations/WebCore.xcconfig: modified flag definition

so that CoreImage is used on all Apple Platforms, not only iPhone.

  • Sources.txt: Added the generic FilterEffectRenderer class file
  • SourcesCocoa.txt: added FilterEffectRendererCoreImage.mm
  • WebCore.xcodeproj/project.pbxproj: Reflecting newly added files,

with some ordering changes

  • platform/graphics/ConcreteImageBuffer.h: overrides isAccelerated()

function that returns true only if the backend is IOSurface

  • platform/graphics/ImageBuffer.h: defined virtual function isAccelerated()
  • platform/graphics/ImageBufferBackend.h: defined virtual function isAccelerated() that returns false in the base class

(WebCore::ImageBufferBackend::isAccelerated const): returns false for the base class

  • platform/graphics/PlatformImageBuffer.h: added SPECIALIZE_TYPE_TRAITS to check what type of ImageBufferBackend is
  • platform/graphics/PlatformImageBuffer.h: Added API to obtain IOSurface from IOSurfaceBackend; added SPECIALIZE_TYPE_TRAITS

(WebCore::AcceleratedImageBuffer::surface): Obtain the IOSurface pointer

from ImageBufferIOSurfaceBackend

(isType): check if a given ImageBuffer is type AcceleratedImageBuffer

  • platform/graphics/cg/ImageBufferIOSurfaceBackend.cpp:

(WebCore::ImageBufferIOSurfaceBackend::surface): added an API to get the

IOSurface pointer

(WebCore::ImageBufferIOSurfaceBackend::isAccelerated const): returns true

because it is an accelerated image buffer

  • platform/graphics/cg/ImageBufferIOSurfaceBackend.h: added function surface()

and isAccelerated()

  • platform/graphics/coreimage/FilterEffectRendererCoreImage.h: Added.
  • platform/graphics/coreimage/FilterEffectRendererCoreImage.mm: Added.

(WebCore::FilterEffectRendererCoreImage::tryCreate): creates a FilterEffectRendererCoreImage

unique pointer. If the filters inside the graph are not all implemented,
we return nullptr

(WebCore::FilterEffectRendererCoreImage::supportsCoreImageRendering):

a function that takes in FilterEffect& and returns true if its a filter effect
type that is implemented in CoreImage, false otherwise

(WebCore::FilterEffectRendererCoreImage::applyEffects): takes in a FilterEffect pointer,

calls FilterEffectRendererCoreImage::connectCIFilters to create the final output CIImage

(WebCore::FilterEffectRendererCoreImage::connectCIFilters): recursive

helper function that traverses the FilterEffect graph backwards,
creates CIFilter graph based on the subclass type of current processing
FilterEffect node. It will cache the CIFilter in a hashmap, whose key
is the corresponding FilterEffect pointer.

(WebCore::FilterEffectRendererCoreImage::canRenderUsingCIFilters): unction

that takes in the last FilterEffect node and determines whether
all of the filters inside the filter graph is already implemented using
CIFilters. It returns false as long as there is one filter that hasn't
been implemented. The rendering procedure will fallback to software mode
if this function returns false

(WebCore::FilterEffectRendererCoreImage::output const): returns the ImageBuffer

that contains the data of the final output image

(WebCore::FilterEffectRendererCoreImage::renderToImageBuffer): r

enders CIImage* to an ImageBuffer

(WebCore::FilterEffectRendererCoreImage::destRect const): calculates the destination

bounding box

(WebCore::FilterEffectRendererCoreImage::clearResult): clears all the saved results
(WebCore::FilterEffectRendererCoreImage::FilterEffectRendererCoreImage): constructor

  • platform/graphics/filters/FEBlend.cpp:

(WebCore::FEBlend::FEBlend): Pass an additional FilterEffect::Type argument

to base class constructor

  • platform/graphics/filters/FEColorMatrix.cpp:

(WebCore::FEColorMatrix::FEColorMatrix): ditto

  • platform/graphics/filters/FEComponentTransfer.cpp:

(WebCore::FEComponentTransfer::FEComponentTransfer): ditto

  • platform/graphics/filters/FEComposite.cpp:

(WebCore::FEComposite::FEComposite): ditto

  • platform/graphics/filters/FEConvolveMatrix.cpp:

(WebCore::FEConvolveMatrix::FEConvolveMatrix): ditto

  • platform/graphics/filters/FEDiffuseLighting.cpp:

(WebCore::FEDiffuseLighting::FEDiffuseLighting):ditto

  • platform/graphics/filters/FEDisplacementMap.cpp:

(WebCore::FEDisplacementMap::FEDisplacementMap):ditto

  • platform/graphics/filters/FEDisplacementMap.h:
  • platform/graphics/filters/FEDropShadow.cpp:

(WebCore::FEDropShadow::FEDropShadow):ditto

  • platform/graphics/filters/FEFlood.cpp:

(WebCore::FEFlood::FEFlood):ditto

  • platform/graphics/filters/FEGaussianBlur.cpp:

(WebCore::FEGaussianBlur::FEGaussianBlur):ditto

  • platform/graphics/filters/FELighting.cpp:

(WebCore::FELighting::FELighting):ditto

  • platform/graphics/filters/FELighting.h:
  • platform/graphics/filters/FEMerge.cpp:

(WebCore::FEMerge::FEMerge): ditto

  • platform/graphics/filters/FEMorphology.cpp:

(WebCore::FEMorphology::FEMorphology): ditto

  • platform/graphics/filters/FEOffset.cpp:

(WebCore::FEOffset::FEOffset): ditto

  • platform/graphics/filters/FESpecularLighting.cpp:

(WebCore::FESpecularLighting::FESpecularLighting): ditto

  • platform/graphics/filters/FETile.cpp:

(WebCore::FETile::FETile): ditto

  • platform/graphics/filters/FETurbulence.cpp:

(WebCore::FETurbulence::FETurbulence): ditto

  • platform/graphics/filters/FilterEffect.cpp:

(WebCore::FilterEffect::FilterEffect): ditto

  • platform/graphics/filters/FilterEffect.h: added a const member, m_filterEffectType

(WebCore::FilterEffect::filterEffectClassType): returns the FilterEffect

class type

  • platform/graphics/filters/FilterEffectRenderer.cpp: Added.

(WebCore::FilterEffectRenderer::tryCreate): tries creates a new FilterEffectRenderer

unique pointer. Here, we check whether the renderer setting has
CoreImage accelerated filter rendering enabled; we also check if all the
filters in the given FilterEffect graph is already implemented using
CoreImage. If both conditions are satisfied, create a FilterEffectRendererCoreImage
otherwise returns nullptr.

  • platform/graphics/filters/FilterEffectRenderer.h: Added.
  • platform/graphics/filters/SourceAlpha.cpp:

(WebCore::SourceAlpha::SourceAlpha): Pass an additional FilterEffect::Type argument

to base class constructor

  • platform/graphics/filters/SourceAlpha.h:
  • platform/graphics/filters/SourceGraphic.h:

(WebCore::SourceGraphic::SourceGraphic): ditto

  • rendering/CSSFilter.cpp:

(WebCore::CSSFilter::build): we try to create a FilterEffectRenderer here by passing

in the state of the CoreImage Accelerated Rendering feature switch

(WebCore::CSSFilter::apply): If we have a valid m_filterRenderer pointer, that means

we can render the result image using CoreImage path, thus we don't call effect.apply()
fall back to software mode if hasResult() returns false.

(WebCore::CSSFilter::output const): if we have a valid m_filterRenderer, then we will

obtain the ImageBuffer result from it, not FilterEffect

(WebCore::CSSFilter::outputRect const): if we have a valid m_filterRenderer, then we will

obtain the ImageBuffer result from it, not FilterEffect

  • rendering/CSSFilter.h:
  • svg/graphics/filters/SVGFEImage.cpp:

(WebCore::FEImage::FEImage): Pass an additional FilterEffect::Type argument

to base class constructor

4:08 PM Changeset in webkit [264804] by ysuzuki@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

[JSC] FTL OSR entry should store boxed |this|
https://bugs.webkit.org/show_bug.cgi?id=214675
<rdar://problem/65474072>

Reviewed by Michael Saboff and Mark Lam.

In this patch, after ensuring that we will go to FTL OSR entry, we store boxed |this| instead of the unboxed value
to agree to the FTL assumption that all arguments should be boxed.

  • dfg/DFGOperations.cpp:
  • ftl/FTLOSREntry.cpp:

(JSC::FTL::prepareOSREntry):

3:48 PM Changeset in webkit [264803] by BJ Burg
  • 2 edits in trunk/Source/WebKit

Web Inspector: developerExtrasEnabled should be respected when opening local Web Inspector (part 2)
https://bugs.webkit.org/show_bug.cgi?id=214669

Reviewed by Devin Rousso and Joseph Pecoraro.

  • UIProcess/Inspector/WebInspectorProxy.cpp:

(WebKit::WebInspectorProxy::save):
(WebKit::WebInspectorProxy::append): Add missing check for developerExtrasEnabled.

3:35 PM Changeset in webkit [264802] by ysuzuki@apple.com
  • 3 edits
    2 adds in trunk

We should have exception check after promise operation
https://bugs.webkit.org/show_bug.cgi?id=214610
<rdar://problem/65881794>

Reviewed by Youenn Fablet and Mark Lam.

Source/WebCore:

Test: js/dom/promise-should-have-exception-check-on-operation.html

Add exception check after promise operations.

  • bindings/js/JSDOMPromiseDeferred.cpp:

(WebCore::DeferredPromise::reject):

LayoutTests:

  • js/dom/promise-should-have-exception-check-on-operation-expected.txt: Added.
  • js/dom/promise-should-have-exception-check-on-operation.html: Added.
3:33 PM Changeset in webkit [264801] by keith_miller@apple.com
  • 5 edits
    2 deletes in trunk

iOS simulator does not support WebAssembly
https://bugs.webkit.org/show_bug.cgi?id=191064

Reviewed by Yusuke Suzuki.

Source/WTF:

Now that it seems we can JIT in the Simulator we should enable
WebAssembly there. This just means enabling FTL/B3 so WASM gets
enabled.

  • wtf/PlatformEnable.h:
  • wtf/PlatformEnableCocoa.h:

LayoutTests:

Remove simulator only expectations/failures now that WebAssembly is available in the simulator.

  • platform/ios-simulator/TestExpectations:
  • platform/ios-simulator/imported/w3c/web-platform-tests/xhr/send-data-sharedarraybuffer.any-expected.txt:
  • platform/ios-simulator/imported/w3c/web-platform-tests/xhr/send-data-sharedarraybuffer.any.worker-expected.txt:
  • platform/ios-wk2/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audiobuffer-interface/audiobuffer-copy-channel-expected.txt:
3:28 PM Changeset in webkit [264800] by Alan Coon
  • 1 copy in tags/Safari-610.1.23.1.1

Tag Safari-610.1.23.1.1.

3:28 PM Changeset in webkit [264799] by Russell Epstein
  • 1 delete in tags/Safari-610.1.23.1.1

Delete tag.

3:26 PM Changeset in webkit [264798] by Ryan Haddad
  • 3 edits in trunk/LayoutTests

[ iOS wk2 ] imported/w3c/web-platform-tests/web-share/share-without-user-gesture.https.html is a constant timeout
https://bugs.webkit.org/show_bug.cgi?id=214694

Unreviewd test gardening.

  • platform/ios-simulator-wk2/TestExpectations:
  • platform/ios/TestExpectations: Skip the test since it is a consistent timeout.
3:25 PM Changeset in webkit [264797] by Russell Epstein
  • 2 edits in branches/safari-610.1.23.1-branch/Source/WebCore

Cherry-pick r264796. rdar://problem/66016644

[Cocoa|WebM] Seeking can leave parser in hung state
https://bugs.webkit.org/show_bug.cgi?id=214704
<rdar://problem/66009420>

Reviewed by Eric Carlson.

When the parser is explicitly reset, make sure to clear out all the tracks and initialization datas. Otherwise, a half-filled
CMSampleBuffer can be left waiting around for more data, which may never arrive, and no further samples will ever be parsed.

  • platform/graphics/cocoa/SourceBufferParserWebM.cpp: (WebCore::SourceBufferParserWebM::resetParserState):

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

3:21 PM Changeset in webkit [264796] by jer.noble@apple.com
  • 2 edits in trunk/Source/WebCore

[Cocoa|WebM] Seeking can leave parser in hung state
https://bugs.webkit.org/show_bug.cgi?id=214704
<rdar://problem/66009420>

Reviewed by Eric Carlson.

When the parser is explicitly reset, make sure to clear out all the tracks and initialization datas. Otherwise, a half-filled
CMSampleBuffer can be left waiting around for more data, which may never arrive, and no further samples will ever be parsed.

  • platform/graphics/cocoa/SourceBufferParserWebM.cpp:

(WebCore::SourceBufferParserWebM::resetParserState):

3:20 PM Changeset in webkit [264795] by aakash_jain@apple.com
  • 4 edits in trunk/Tools

[ews] Notify bot watchers about pre-existing and flaky test failures found on ews bots
https://bugs.webkit.org/show_bug.cgi?id=207475

Reviewed by Jonathan Bedard.

  • BuildSlaveSupport/ews-build/steps.py:

(ReRunWebKitTests.evaluateCommand):
(ReRunWebKitTests.send_email_for_flaky_failure): Method to send email for flaky failure.
(AnalyzeLayoutTestsResults.report_pre_existing_failures):
(AnalyzeLayoutTestsResults.send_email_for_flaky_failure): Method to send email for flaky failure.
(AnalyzeLayoutTestsResults.send_email_for_pre_existing_failure): Method to send email for pre-existing failure.

  • BuildSlaveSupport/ews-build/steps.py: Updated unit-tests accordingly.
  • BuildSlaveSupport/ews-build/send_email.py: Added error handling.
3:17 PM Changeset in webkit [264794] by Truitt Savell
  • 2 edits in trunk/LayoutTests

[ macOS Release wk1 ] imported/w3c/web-platform-tests/css/css-overflow/overflow-recalc-001.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=214703

Unreviewed test gardening.

Patch by Hector Lopez <Hector Lopez> on 2020-07-23

  • platform/mac-wk1/TestExpectations:
3:15 PM Changeset in webkit [264793] by Russell Epstein
  • 1 copy in tags/Safari-610.1.23.1.1

Tag Safari-610.1.23.1.1.

2:57 PM Changeset in webkit [264792] by Russell Epstein
  • 2 edits in branches/safari-610.1.23.1-branch/Source/WebCore

Cherry-pick r264791. rdar://problem/66014800

[Cocoa] RELEASE_ASSERT when calling registerSupplementalVP9Decoder() when VideoToolbox.framework is not present
https://bugs.webkit.org/show_bug.cgi?id=214697
<rdar://problem/66010949>

Reviewed by Eric Carlson.

  • platform/graphics/cocoa/VP9UtilitiesCocoa.mm: (WebCore::registerSupplementalVP9Decoder): (WebCore::isVP9DecoderAvailable):

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

2:41 PM Changeset in webkit [264791] by jer.noble@apple.com
  • 2 edits in trunk/Source/WebCore

[Cocoa] RELEASE_ASSERT when calling registerSupplementalVP9Decoder() when VideoToolbox.framework is not present
https://bugs.webkit.org/show_bug.cgi?id=214697
<rdar://problem/66010949>

Reviewed by Eric Carlson.

  • platform/graphics/cocoa/VP9UtilitiesCocoa.mm:

(WebCore::registerSupplementalVP9Decoder):
(WebCore::isVP9DecoderAvailable):

2:21 PM Changeset in webkit [264790] by commit-queue@webkit.org
  • 16 edits in trunk

Allow IndexedDB in third-party frames
https://bugs.webkit.org/show_bug.cgi?id=214583
<rdar://problem/61278487>

Patch by Sihui Liu <sihui_liu@appe.com> on 2020-07-23
Reviewed by Geoffrey Garen.

Source/WebCore:

Match IndexedDB's behavior with localStorage. Third-party iframes now have access to IndexedDB with partitioned
in-memory storage. The partitioning key is ClientOrigin, which consists of opening origin and top origin.

API Test: IndexedDB.IndexedDBThirdPartyFrameHasAccess

IndexedDB.IndexedDBThirdPartyDataRemoval
IndexedDB.IndexedDBThirdPartyWorkerHasAccess

  • Modules/indexeddb/IDBDatabaseIdentifier.cpp:

(WebCore::IDBDatabaseIdentifier::IDBDatabaseIdentifier):
(WebCore::m_isTransient):
(WebCore::IDBDatabaseIdentifier::isolatedCopy const):
(WebCore::IDBDatabaseIdentifier::loggingString const):

  • Modules/indexeddb/IDBDatabaseIdentifier.h:

(WebCore::IDBDatabaseIdentifier::hash const):
(WebCore::IDBDatabaseIdentifier::operator== const):
(WebCore::IDBDatabaseIdentifier::isTransient const):
(WebCore::IDBDatabaseIdentifier::encode const):
(WebCore::IDBDatabaseIdentifier::decode):

  • Modules/indexeddb/IDBFactory.cpp:

(WebCore::shouldThrowSecurityException):
(WebCore::IDBFactory::openInternal):
(WebCore::IDBFactory::deleteDatabase):

  • Modules/indexeddb/server/IDBServer.cpp:

(WebCore::IDBServer::IDBServer::createBackingStore):

  • Modules/webdatabase/DOMWindowWebDatabase.cpp:

(WebCore::DOMWindowWebDatabase::openDatabase):

  • page/SecurityOrigin.h:

(WebCore::SecurityOrigin::canAccessDatabase const):

Source/WebKit:

Do no append extra space to displayName if host is empty.

  • UIProcess/WebsiteData/WebsiteDataStore.cpp:

(WebKit::WebsiteDataStore::fetchDataAndApply):

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/IndexedDBPersistence.mm:

(postResult):
(catch):

LayoutTests:

Update test expectation for new behavior.

  • http/tests/security/cross-origin-indexeddb-expected.txt:
  • http/tests/security/cross-origin-indexeddb.html:
  • http/tests/security/cross-origin-worker-indexeddb-expected.txt:
  • http/tests/security/resources/document-for-cross-origin-worker-indexeddb.html:
2:05 PM Changeset in webkit [264789] by Chris Dumez
  • 15 edits in trunk

Add support for SVGAElement's rel / relList attributes
https://bugs.webkit.org/show_bug.cgi?id=214690

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Rebaseline WPT tests that are now passing.

  • web-platform-tests/dom/lists/DOMTokenList-coverage-for-attributes-expected.txt:
  • web-platform-tests/svg/idlharness.window-expected.txt:
  • web-platform-tests/svg/linking/scripted/a.rel-getter-01-expected.txt:
  • web-platform-tests/svg/linking/scripted/rellist-feature-detection-expected.txt:

Source/WebCore:

Add support for SVGAElement's rel / relList attributes:
https://www.w3.org/TR/SVG/linking.html#InterfaceSVGAElement

No new tests, rebaselined existing tests.

  • svg/SVGAElement.cpp:

(WebCore::SVGAElement::parseAttribute):
(WebCore::SVGAElement::relList const):

  • svg/SVGAElement.h:
  • svg/SVGAElement.idl:
  • svg/svgattrs.in:
1:37 PM Changeset in webkit [264788] by ysuzuki@apple.com
  • 5 edits
    2 adds in trunk

Add exception check for WebCore createRejectedPromiseWithTypeError
https://bugs.webkit.org/show_bug.cgi?id=214680
<rdar://problem/65925490>

Reviewed by Mark Lam.

Source/WebCore:

Test: js/dom/rejected-promise-creation-should-check-exception.html

Add missing exception checks in createRejectedPromiseWithTypeError.

  • bindings/js/JSDOMAttribute.h:

(WebCore::IDLAttribute::get):

  • bindings/js/JSDOMOperationReturningPromise.h:

(WebCore::IDLOperationReturningPromise::call):
(WebCore::IDLOperationReturningPromise::callReturningOwnPromise):

  • bindings/js/JSDOMPromiseDeferred.cpp:

(WebCore::createRejectedPromiseWithTypeError):

LayoutTests:

  • js/dom/rejected-promise-creation-should-check-exception-expected.txt: Added.
  • js/dom/rejected-promise-creation-should-check-exception.html: Added.
1:34 PM Changeset in webkit [264787] by Alan Coon
  • 8 edits in branches/safari-610.1.23.0-branch/Source

Versioning.

WebKit-610.1.23.0.1

1:27 PM Changeset in webkit [264786] by Fujii Hironori
  • 3 edits in trunk/Source/WebCore

[CMake][Win] Build StructuredExceptionHandlerSuppressor.cpp and makesafeseh.asm only for AppleWin
https://bugs.webkit.org/show_bug.cgi?id=214671

Reviewed by Per Arne Vollan.

StructuredExceptionHandlerSuppressor is used only by AppleWin port
in platform/graphics/ca/win/LayerChangesFlusher.cpp.
makesafeseh.asm causes a building problem for 32bit WinCairo
because it is using OBJECT library type for WebCore.

  • PlatformAppleWin.cmake: Added build rules for them.
  • PlatformWin.cmake: Removed build rules for them.
1:16 PM Changeset in webkit [264785] by david_quesada@apple.com
  • 2 edits in trunk/Source/WebKit

Unable to present file upload picker after interactively dismissing a previously opened picker
https://bugs.webkit.org/show_bug.cgi?id=209613
rdar://problem/60931009

Reviewed by Daniel Bates.

-[<UIDocumentPickerViewController> documentPickerWasCancelled:] doesn't get called if you
dismiss the view controller using the interactive swipe dismissal gesture added in iOS 13.
As a result, the web view will continue to think it's showing a file picker after dismissing
it this way, meaning you can't present any other file pickers from the same web view. Fix
this by implementing UIAdaptivePresentationControllerDelegate in WKFileUploadPanel to cancel
and tear down the file picker operation when the view controller is interactively dismised.

  • UIProcess/ios/forms/WKFileUploadPanel.mm:

(-[WKFileUploadPanel showFilePickerMenu]):
(-[WKFileUploadPanel presentationControllerDidDismiss:]):

1:00 PM Changeset in webkit [264784] by Andres Gonzalez
  • 3 edits in trunk/Source/WebCore

Update the isolated tree even when there is no client request.
https://bugs.webkit.org/show_bug.cgi?id=214692

Reviewed by Chris Fleizach.

AXObjectCache::updateIsolatedTree was checking for isIsolatedTreeEnabled,
which in turn checks for whether the clientSupportsIsolatedTree. Often
at the time updateIsolatedTree is called, there is no client request
since client requests and updates occur in separate threads,
independently from each other. Thus the isolated tree wasn't being
updated. This patch removes the check for isIsolatedTreeEnabled and rely
on the presence of an isolated tree for the given PageID to perform the
update.
In addition, added an update of the isolated tree for AXLoadingEvent::AXLoadingFinished.
This fixes several instance of dynamic content page changes that were
not being reflected on the isolated tree.

  • accessibility/AXObjectCache.cpp:

(WebCore::AXObjectCache::clientSupportsIsolatedTree): Some logging.
(WebCore::AXObjectCache::isIsolatedTreeEnabled): Some logging.
(WebCore::AXObjectCache::frameLoadingEventNotification): Calls updateIsolatedTree.
(WebCore::AXObjectCache::updateIsolatedTree): Handles AXLoadingEvents.

  • accessibility/AXObjectCache.h:
12:46 PM Changeset in webkit [264783] by Aditya Keerthi
  • 4 edits in trunk/Source

[macOS] Datalist dropdown scrollbar position does not match visible region
https://bugs.webkit.org/show_bug.cgi?id=214656

Reviewed by Wenson Hsieh.

Source/WebKit:

Currently, the content insets for the dropdown are set on an NSScrollView's contentView,
rather than the NSScrollView itself. On the latest macOS, this results in accurate state
within the NSScrollView, leading to an inaccurate scrollbar position. To fix, set the
content insets directly on the NSScrollView.

However, on older macOS, setting content insets on the NSScrollView causes the view to start
out slightly scrolled (by a value equal to the top inset). This issue is solved by preserving
the existing behavior (setting insets on the contentView) on older macOS.

Also, set the style of the embedded NSTableView to NSTableViewStyleFullWidth, to ensure the
view respects the insets we specify.

No new tests, as the change is purely visual and affects native UI.

  • UIProcess/mac/WebDataListSuggestionsDropdownMac.mm:

(-[WKDataListSuggestionTableView initWithElementRect:]):
(-[WKDataListSuggestionsController initWithInformation:inView:]):

Source/WTF:

  • wtf/PlatformHave.h: Define HAVE_NSTABLEVIEWSTYLE.
12:22 PM Changeset in webkit [264782] by commit-queue@webkit.org
  • 18 edits
    4 adds in trunk

Added PeriodicWave constructor according to spec
https://bugs.webkit.org/show_bug.cgi?id=214615

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

LayoutTests/imported/w3c:

Re-baselined existing tests that now pass, or fail further along.

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

Source/WebCore:

Re-baselined existing tests that now pass.

Added PeriodicWave constructor according to spec: https://www.w3.org/TR/webaudio/#periodicwave.
Added PeriodicWaveConstraints, PeriodicWaveOptions files. Updated PeriodicWave::createBandLimitedTables
to normalize waveform based on spec: https://www.w3.org/TR/webaudio/#waveform-normalization.
Added updated createPeriodicWave method in BaseAudioContext, and moved old createPeriodicWave method
Into WebKitAudioContext.

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

(WebCore::BaseAudioContext::createPeriodicWave):

  • Modules/webaudio/BaseAudioContext.h:

(WebCore::BaseAudioContext::createPeriodicWave):

  • Modules/webaudio/BaseAudioContext.idl:
  • Modules/webaudio/PeriodicWave.cpp:

(WebCore::PeriodicWave::create):
(WebCore::PeriodicWave::createBandLimitedTables):

  • Modules/webaudio/PeriodicWave.h:
  • Modules/webaudio/PeriodicWave.idl:
  • Modules/webaudio/PeriodicWaveConstraints.h: Added.
  • Modules/webaudio/PeriodicWaveConstraints.idl: Added.
  • Modules/webaudio/PeriodicWaveOptions.h: Added.
  • Modules/webaudio/PeriodicWaveOptions.idl: Added.
  • Modules/webaudio/WebKitAudioContext.cpp:

(WebCore::WebKitAudioContext::createPeriodicWave):

  • Modules/webaudio/WebKitAudioContext.h:
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
11:51 AM Changeset in webkit [264781] by ysuzuki@apple.com
  • 4 edits
    1 add in trunk

[JSC] BigInt can be false in boolean context in DFG AI
https://bugs.webkit.org/show_bug.cgi?id=214678
<rdar://problem/65894751>

Reviewed by Mark Lam.

JSTests:

  • stress/bigint-can-be-false-in-boolean-context.js: Added.

(foo.bar):
(foo):

Source/JavaScriptCore:

DFG::AbstractInterpreter::booleanResult returns wrong result if finite structure includes HeapBigInt structure
since HeapBigInt 0n can be evaluated false in boolean context while this function does not care it. This patch
fixes it and cleans up code by using WTF/TriState.

  • dfg/DFGAbstractInterpreter.h:

(): Deleted.

  • dfg/DFGAbstractInterpreterInlines.h:

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

11:45 AM Changeset in webkit [264780] by ddkilzer@apple.com
  • 5 edits in trunk/Source

[IPC hardening] WebKit::ArgumentCoder<BlobPart>::decode() and encode() should use enum BlobPart::Type
<https://webkit.org/b/214665>
<rdar://problem/65777948>

Reviewed by Darin Adler.

Source/WebCore:

  • platform/network/BlobPart.h:

(WebCore::BlobPart::Type):

  • Convert to an enum class of size bool.

(WebCore::BlobPart::BlobPart):
(WebCore::BlobPart::data const):
(WebCore::BlobPart::moveData):
(WebCore::BlobPart::url const):

  • Change BlobPart::Type enums to use fully qualified name.
  • platform/network/BlobRegistryImpl.cpp:

(WebCore::BlobRegistryImpl::registerBlobURL):

  • Change BlobPart::Type enums to use fully qualified name.

Source/WebKit:

  • Shared/WebCoreArgumentCoders.cpp:

(IPC::ArgumentCoder<BlobPart>::encode):

  • Change BlobPart::Type enums to use fully qualified name.
  • Encode using WebCore::BlobPart::Type value.
  • Change break statements to early return statements.
  • Add ASSERT_NOT_REACHED() to catch bugs.

(IPC::ArgumentCoder<BlobPart>::decode):

  • Change BlobPart::Type enums to use fully qualified name.
  • Decode using Optional<WebCore::BlobPart::Type> variable.
  • Change break statements to early return statements.
  • Remove default: label, move return WTF::nullopt to the end of the method, and add ASSERT_NOT_REACHED() to catch bugs.
11:26 AM Changeset in webkit [264779] by Ryan Haddad
  • 2 edits in trunk/Tools

[ews] Update bot watcher email address
https://bugs.webkit.org/show_bug.cgi?id=214693

Reviewed by Aakash Jain.

  • BuildSlaveSupport/ews-build/send_email.py:
11:25 AM Changeset in webkit [264778] by Simon Fraser
  • 2 edits in trunk/Source/WebCore

updateRendering trace point should exclude SVG
https://bugs.webkit.org/show_bug.cgi?id=214649

Reviewed by Geoffrey Garen.

Don't issue the trace point for SVGImage Pages.

  • page/Page.cpp:

(WebCore::Page::updateRendering):

11:19 AM Changeset in webkit [264777] by Karl Rackler
  • 2 edits in trunk/LayoutTests

[ iOS wk2 ] imported/w3c/web-platform-tests/web-share/share-without-user-gesture.https.html is a constant timeout
https://bugs.webkit.org/show_bug.cgi?id=214694

Unreviewed test gardening.

  • platform/ios-simulator-wk2/TestExpectations:
11:00 AM Changeset in webkit [264776] by Jonathan Bedard
  • 5 edits in trunk/Tools

[run-webkit-tests] Override suite name for results database reporting
https://bugs.webkit.org/show_bug.cgi?id=214686
<rdar://problem/65997324>

Reviewed by Aakash Jain.

  • Scripts/webkitpy/api_tests/manager.py:

(Manager.run): Allow options to override suite name.

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

(Manager.run): Allow options to override suite name.

  • Scripts/webkitpy/results/options.py:

(upload_options): Add --suite flag to override suite name.

  • Scripts/webkitpy/test/main.py:

(Tester._run_tests): Allow options to override suite name.

10:24 AM Changeset in webkit [264775] by Alan Bujtas
  • 7 edits in trunk

Unreviewed, reverting r262124.

See REGRESSION(r262124) Overlapping text on Youtube's video upload page
https://bugs.webkit.org/show_bug.cgi?id=214655

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-flexbox/percentage-heights-003-expected.txt:

Source/WebCore:

  • rendering/RenderFlexibleBox.cpp:

(WebCore::RenderFlexibleBox::mainSizeForPercentageResolution):

LayoutTests:

  • css3/flexbox/definite-main-size-expected.txt:
  • css3/flexbox/definite-main-size.html:
10:22 AM Changeset in webkit [264774] by Russell Epstein
  • 7 edits in branches/safari-610.1.23.1-branch/Source

Cherry-pick r264747. rdar://problem/65995978

[Cocoa] Add feature flag for WebM & VP9
https://bugs.webkit.org/show_bug.cgi?id=214672
<rdar://problem/65959506>

Reviewed by Beth Dakin.

Source/WebKit:

  • FeatureFlags/WebKit.plist:
  • Shared/WebPreferences.yaml:
  • Shared/WebPreferencesDefaultValues.cpp: (WebKit::defaultVP9DecoderEnabled): (WebKit::defaultWebMParserEnabled):
  • Shared/WebPreferencesDefaultValues.h:

Source/WTF:

  • wtf/PlatformEnableCocoa.h:

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

10:22 AM Changeset in webkit [264773] by Russell Epstein
  • 2 edits in branches/safari-610.1.23.1-branch/Source/WebCore

Cherry-pick r264742. rdar://problem/65995985

[Cocoa|WebM] Decode error when seeking
https://bugs.webkit.org/show_bug.cgi?id=214666

Reviewed by Eric Carlson.

A decoder error is hit when seeking because we think all samples coming out of the SourceBufferParserWebM are sync-samples.
This is because the attachment added with CMSetAttachment() is ignored; the correct way to set sample attachments is by
getting the sample attachments array with CMSampleBufferGetSampleAttachmentsArray(), and then iterating over the attachments
and adding keys to the underlying mutable CFDictionary.

  • platform/graphics/cocoa/SourceBufferParserWebM.cpp: (WebCore::SourceBufferParserWebM::OnFrame):

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

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

Versioning.

WebKit-610.1.23.2.1

10:11 AM Changeset in webkit [264771] by ddkilzer@apple.com
  • 2 edits in trunk/Source/WebKit

[IPC hardening] FilterOperation decode/encode should use early returns
<https://webkit.org/b/214667>
<rdar://problem/65946400>

Reviewed by Darin Adler.

  • Shared/WebCoreArgumentCoders.cpp:

(IPC::ArgumentCoder<FilterOperation>::encode):

  • Change break statements to early return statements.
  • Add ASSERT_NOT_REACHED() to catch bugs.

(IPC::decodeFilterOperation):

  • Change break statements to early return statements.
  • Remove call to decoder.markInvalid() since it is redundant.
  • Return false from FilterOperation::APPLE_INVERT_LIGHTNESS label to match FilterOperation::NONE and FilterOperation::REFERENCE.
  • Add ASSERT_NOT_REACHED() to catch bugs.
  • Change final return statement from true to false since valid decoding returns true earlier.
10:09 AM Changeset in webkit [264770] by Russell Epstein
  • 8 edits in branches/safari-610.1.23.1-branch/Source

Versioning.

WebKit-610.1.23.1.1

9:36 AM Changeset in webkit [264769] by beidson@apple.com
  • 15 edits
    10 adds in trunk

Add Gamepad tests that exercise the native frameworks
<rdar://problem/65343674> and https://bugs.webkit.org/show_bug.cgi?id=214188

Reviewed by Tim Horton.

Source/WebCore:

  • platform/gamepad/mac/MultiGamepadProvider.h:

(WebCore::MultiGamepadProvider::setUsesOnlyHIDGamepadProvider):

  • platform/gamepad/mac/MultiGamepadProvider.mm:

(WebCore::MultiGamepadProvider::startMonitoringGamepads):
(WebCore::MultiGamepadProvider::stopMonitoringGamepads):

Source/WebKit:

Add some testing-only SPI for TestWebKitAPI.

  • UIProcess/API/Cocoa/WKProcessPool.mm:

(-[WKProcessPool _numberOfConnectedGamepadsForTesting]):
(-[WKProcessPool _setUsesOnlyHIDGamepadProviderForTesting:]):

  • UIProcess/API/Cocoa/WKProcessPoolPrivate.h:
  • UIProcess/Gamepad/UIGamepadProvider.h:

(WebKit::UIGamepadProvider::numberOfConnectedGamepads const):

  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::numberOfConnectedGamepadsForTesting):
(WebKit::WebProcessPool::setUsesOnlyHIDGamepadProviderForTesting):

  • UIProcess/WebProcessPool.h:

Source/WTF:

  • wtf/PlatformHave.h:

Tools:

For Internal builds, we can create HID devices that exercise the native gamepad providers.
E.g. Actually exercise the IOHID gamepad provider codepath.

Give the Internal TestWebKitAPI build some entitlements:

  • TestWebKitAPI/Configurations/TestWebKitAPI-macOS-internal.entitlements: Added.
  • TestWebKitAPI/Configurations/TestWebKitAPI.xcconfig:
  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:

Add a very basic test that connects a device, presses a button, and verifies the web page sees it:

  • TestWebKitAPI/Tests/mac/HIDGamepads.mm: Added.

(-[GamepadMessageHandler userContentController:didReceiveScriptMessage:]):
(TestWebKitAPI::handleGamepadConnect):

Add the beginnings of a VirtualGamepad device that reads in a HID descriptor (just like real gamepads):

  • TestWebKitAPI/mac/VirtualGamepad.h: Added.
  • TestWebKitAPI/mac/VirtualGamepad.mm: Added.

(TestWebKitAPI::VirtualGamepad::makeVirtualNimbus):
(TestWebKitAPI::VirtualGamepad::VirtualGamepad):
(TestWebKitAPI::VirtualGamepad::~VirtualGamepad):
(TestWebKitAPI::VirtualGamepad::setButtonValue):
(TestWebKitAPI::VirtualGamepad::setAxisValue):
(TestWebKitAPI::VirtualGamepad::publishReport):

WebKitLibraries:

  • WebKitPrivateFrameworkStubs/Mac/101500/HID.framework/HID.tbd: Added.
  • WebKitPrivateFrameworkStubs/Mac/101600/HID.framework/HID.tbd: Added.
  • WebKitPrivateFrameworkStubs/Mac/110000/HID.framework/HID.tbd: Added.
9:34 AM Changeset in webkit [264768] by Alan Coon
  • 1 copy in branches/safari-610.1.23.2-branch

New branch.

9:34 AM Changeset in webkit [264767] by Alan Coon
  • 1 copy in branches/safari-610.1.23.1-branch

New branch.

9:34 AM Changeset in webkit [264766] by Alan Coon
  • 1 copy in branches/safari-610.1.23.0-branch

New branch.

8:50 AM Changeset in webkit [264765] by Karl Rackler
  • 2 edits in trunk/LayoutTests

[ iOS wk2 ] editing/selection/shift-click-includes-existing-selection.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=214688

Unreviewed test gardening.

  • platform/ios-simulator-wk2/TestExpectations:
8:32 AM WikiStart edited by Simon Fraser
(diff)
8:27 AM Changeset in webkit [264764] by calvaris@igalia.com
  • 2 edits in trunk/Source/WebCore

Unreviewed, build fix after r264762.

  • platform/graphics/gstreamer/GStreamerCommon.cpp: Added include

SharedBuffer.h.

8:14 AM Changeset in webkit [264763] by Karl Rackler
  • 2 edits in trunk/LayoutTests

[ iOS ] imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audiobuffer-interface/audiobuffer-copy-channel.html and imported/w3c/web-platform-tests/xhr/send-data-sharedarraybuffer.any.html and imported/w3c/web-platform-tests/xhr/send-data-sharedarraybuffer.any.worker.html do not support WebAssembly and marking Skip.
https://bugs.webkit.org/show_bug.cgi?id=214681

Unreviewed test gardening.

  • platform/ios-simulator/TestExpectations:
7:55 AM Changeset in webkit [264762] by calvaris@igalia.com
  • 18 edits in trunk

[GStreamer] gst_buffer_unmap: assertion 'GST_IS_BUFFER (buffer)' failed
https://bugs.webkit.org/show_bug.cgi?id=213364

Reviewed by Philippe Normand.

Source/WebCore:

In some cases as in passing init datas around, the InitData that
contains a SharedBuffer that contains a non-reffed mapped buffer
can outlive the buffer itself, creating this problem.

In this patch we make a new class called GstMappedOwnedBuffer that
is to map read-only buffers and that is used for the InitData
SharedBuffer. GstMappedBuffer does not support SharedBuffer
anymore and is not ref counted anymore as it is intended for short
term and quick usage.

Test: imported/w3c/web-platform-tests/encrypted-media/clearkey-mp4-setmediakeys-to-multiple-video-elements.https.html

  • platform/SharedBuffer.cpp:

(WebCore::SharedBuffer::create):
(WebCore::SharedBuffer::SharedBuffer):
(WebCore::SharedBuffer::DataSegment::data const):
(WebCore::SharedBuffer::DataSegment::size const):

  • platform/SharedBuffer.h:
  • platform/audio/gstreamer/WebKitWebAudioSourceGStreamer.cpp:

(webKitWebAudioSrcAllocateBuffersAndRenderAudio):

  • platform/graphics/gstreamer/GStreamerCommon.cpp:

(WebCore::GstMappedBuffer::createVector const):
(WebCore::GstMappedOwnedBuffer::createSharedBuffer):

  • platform/graphics/gstreamer/GStreamerCommon.h:

(WebCore::GstMappedBuffer::GstMappedBuffer):
(WebCore::GstMappedBuffer::~GstMappedBuffer):
(WebCore::GstMappedBuffer::isValid const):
(WebCore::GstMappedBuffer::data):
(WebCore::GstMappedBuffer::data const):
(WebCore::GstMappedBuffer::size const):
(WebCore::GstMappedBuffer::operator bool const):
(WebCore::GstMappedBuffer::operator! const):
(WebCore::GstMappedOwnedBuffer::create):
(WebCore::GstMappedOwnedBuffer::GstMappedOwnedBuffer):
(WebCore::operator==):

  • platform/graphics/gstreamer/InbandTextTrackPrivateGStreamer.cpp:

(WebCore::InbandTextTrackPrivateGStreamer::notifyTrackOfSample):

  • platform/graphics/gstreamer/eme/CDMProxyThunder.cpp:

(WebCore::CDMProxyThunder::getDecryptionSession const):

  • platform/graphics/gstreamer/eme/GStreamerEMEUtilities.h:

(WebCore::InitData::InitData):

  • platform/graphics/gstreamer/eme/WebKitClearKeyDecryptorGStreamer.cpp:

(decrypt):

  • platform/mediastream/gstreamer/MockRealtimeAudioSourceGStreamer.cpp:

(WebCore::MockRealtimeAudioSourceGStreamer::render):

  • platform/mediastream/gstreamer/RealtimeOutgoingAudioSourceLibWebRTC.cpp:

(WebCore::RealtimeOutgoingAudioSourceLibWebRTC::pullAudioData):

  • platform/mediastream/gstreamer/RealtimeOutgoingVideoSourceLibWebRTC.cpp:

(WebCore::RealtimeOutgoingVideoSourceLibWebRTC::createBlackFrame):

  • platform/mediastream/libwebrtc/GStreamerVideoEncoderFactory.cpp:

(WebCore::GStreamerVideoEncoder::Fragmentize):

Tools:

Reworked tests for GstMappedBuffer and added tests for
GstMappedOwnedBuffer.

  • TestWebKitAPI/Tests/WebCore/gstreamer/GstMappedBuffer.cpp:

(TestWebKitAPI::TEST_F):

LayoutTests:

  • platform/glib/TestExpectations: flagged

imported/w3c/web-platform-tests/encrypted-media/clearkey-mp4-setmediakeys-to-multiple-video-elements.https.html
as Pass.

7:33 AM Changeset in webkit [264761] by Karl Rackler
  • 2 edits in trunk/LayoutTests

[ iOS wk2 debug ] imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element/moving-between-documents/before-prepare-createHTMLDocument-fetch-error-external-classic.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=214685

Unreviewed test gardening.

  • platform/ios-simulator-wk2/TestExpectations:
7:16 AM Changeset in webkit [264760] by Karl Rackler
  • 2 edits in trunk/LayoutTests

[ iOS wk2 ] imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audiocontext-interface/suspend-after-construct.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=214422

Unreviewed test gardening.

  • platform/ios-simulator-wk2/TestExpectations:
6:08 AM Changeset in webkit [264759] by Karl Rackler
  • 3 edits in trunk/LayoutTests

[ macOS ] media/media-source/media-source-seek-redundant-append.html is a flaky timeout
https://bugs.webkit.org/show_bug.cgi?id=207146

Unreviewed test gardening.

  • platform/mac-wk1/TestExpectations:
  • platform/mac/TestExpectations:
5:51 AM Changeset in webkit [264758] by Caio Lima
  • 3 edits in trunk/Source/JavaScriptCore

[32-bits] Fixing the return of doVMEntry into LowLevelInterpreter32_64.asm
https://bugs.webkit.org/show_bug.cgi?id=214641

Reviewed by Mark Lam.

Adjusting the return of doVMEntry for 32-bits LLInt to proper set
EncodedJSValue return in little-endian architectures. It is expected
that tag is stored in r1 and payload is stored in r0.

  • llint/LowLevelInterpreter.asm:
  • llint/LowLevelInterpreter32_64.asm:
5:37 AM Changeset in webkit [264757] by Karl Rackler
  • 2 edits in trunk/LayoutTests

[ Mac wk2 ] tiled-drawing/scrolling/fixed/four-bars-zoomed.html is flaky failing..
https://bugs.webkit.org/show_bug.cgi?id=209624

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
5:21 AM Changeset in webkit [264756] by Karl Rackler
  • 2 edits in trunk/LayoutTests

[ macOS wk2 debug ] imported/w3c/web-platform-tests/media-source/mediasource-changetype-play-implicit.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=214683

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
4:47 AM Changeset in webkit [264755] by Karl Rackler
  • 2 edits in trunk/LayoutTests

[ macOS WK2 ] imported/w3c/web-platform-tests/css/cssom/stylesheet-same-origin.sub.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=214682

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
4:23 AM Changeset in webkit [264754] by commit-queue@webkit.org
  • 3 edits in trunk/JSTests

Fix logic error in r264703
https://bugs.webkit.org/show_bug.cgi?id=214674

Unreviewed Gardening.

Patch by Angelos Oikonomopoulos <Angelos Oikonomopoulos> on 2020-07-23

  • stress/intl-displaynames.js:
  • stress/intl-parse-unicode-subtags.js:
3:59 AM Changeset in webkit [264753] by commit-queue@webkit.org
  • 5 edits in trunk

Unreviewed, reverting r264745.
https://bugs.webkit.org/show_bug.cgi?id=214681

Broke 3 web-platform-tests on iOS

Reverted changeset:

"iOS simulator does not support WebAssembly"
https://bugs.webkit.org/show_bug.cgi?id=191064
https://trac.webkit.org/changeset/264745

3:44 AM Changeset in webkit [264752] by aakash_jain@apple.com
  • 1 edit
    1 add in trunk/Tools

[ews] Add support to send emails in ews
https://bugs.webkit.org/show_bug.cgi?id=214670

Reviewed by Darin Adler.

  • BuildSlaveSupport/ews-build/send_email.py: Added script to send emails.

(send_email):
(send_email_to_bot_watchers):

1:49 AM Changeset in webkit [264751] by mark.lam@apple.com
  • 7 edits
    2 adds in trunk

Fix missing exception checks below RTCPeerConnection.generateCertificate().
https://bugs.webkit.org/show_bug.cgi?id=214668
<rdar://problem/65929975>

Reviewed by Yusuke Suzuki.

Source/WebCore:

Test: webrtc/missing-exception-checks-RTCPeerConnection-generateCertificate.html

  • bindings/js/JSCustomElementRegistryCustom.cpp:

(WebCore::JSCustomElementRegistry::whenDefined):

  • bindings/js/JSDOMConvertUnion.h:
  • bindings/js/JSDOMOperationReturningPromise.h:

(WebCore::IDLOperationReturningPromise::call):
(WebCore::IDLOperationReturningPromise::callReturningOwnPromise):
(WebCore::IDLOperationReturningPromise::callStatic):
(WebCore::IDLOperationReturningPromise::callStaticReturningOwnPromise):

  • bindings/js/JSDOMPromiseDeferred.cpp:

(WebCore::DeferredPromise::reject):
(WebCore::rejectPromiseWithExceptionIfAny):

  • bindings/js/JSDOMPromiseDeferred.h:

(WebCore::callPromiseFunction):

LayoutTests:

  • webrtc/missing-exception-checks-RTCPeerConnection-generateCertificate-expected.txt: Added.
  • webrtc/missing-exception-checks-RTCPeerConnection-generateCertificate.html: Added.
1:25 AM Changeset in webkit [264750] by Alexey Shvayka
  • 7 edits
    2 adds in trunk

Remove ArrayNode::m_optional
https://bugs.webkit.org/show_bug.cgi?id=214294

Reviewed by Darin Adler.

JSTests:

  • microbenchmarks/destructuring-array-literal.js: Added.
  • microbenchmarks/function-dot-apply-array-literal.js: Added.
  • stress/apply-second-argument-must-be-array-like.js:
  • stress/destructuring-assignment-syntax.js:

Source/JavaScriptCore:

m_optional, which dates back to KJS era, means "is this an array with optional trailing comma,
with elision, or an empty array". It was used by ArrayNode::streamTo() to preserve a trailing
comma when converting array node to source string, as well as in few other places,
before ECMA-262 clarified trailing comma in array literals [1].

Currently, m_optional is used only by ArrayNode::isSimpleArray(), along with m_elision.
Checking m_elision is enough since trailing comma doesn't add extra undefined element.

This patch completely removes m_optional, speeding up destructuring and function.apply()
with empty arrays and arrays with trailing commas by ~55% and a factor of 11 respectively.
Reflect.apply() optimization (https://webkit.org/b/190668) will also benefit from this change.

Also, this change converts isSpreadExpression() check to an ASSERT (was enabled by r196323).

[1]: https://tc39.es/ecma262/#sec-array-initializer

  • bytecompiler/NodesCodegen.cpp:

(JSC::ArrayNode::isSimpleArray const):
(JSC::ArrayNode::toArgumentList const):
(JSC::ArrayNode::emitDirectBinding):

  • parser/NodeConstructors.h:

(JSC::ArrayNode::ArrayNode):

  • parser/Nodes.h:
12:50 AM Changeset in webkit [264749] by Diego Pino Garcia
  • 3 edits in trunk/LayoutTests

[GTK] Unreviewed test gardening. Update GTK baseline after r264646.

  • platform/gtk/mathml/opentype/opentype-stretchy-expected.png:
  • platform/gtk/mathml/opentype/opentype-stretchy-expected.txt:
12:28 AM Changeset in webkit [264748] by Alexey Shvayka
  • 2 edits in trunk/Source/JavaScriptCore

Remove emitIsUndefined() from ClassExprNode::emitBytecode()
https://bugs.webkit.org/show_bug.cgi?id=214645

Reviewed by Darin Adler.

This change removes superclass === undefined check because it's missing from
the spec [1] and isn't a common case. No behavior change: values except null are
passed to OpIsConstructor, resulting in the same error being thrown for undefined.

Test: LayoutTests/js/class-syntax-extends.html

[1]: https://tc39.es/ecma262/#sec-runtime-semantics-classdefinitionevaluation (step 5.e)

  • bytecompiler/NodesCodegen.cpp:

(JSC::ClassExprNode::emitBytecode):

Jul 22, 2020:

9:52 PM Changeset in webkit [264747] by jer.noble@apple.com
  • 7 edits in trunk/Source

[Cocoa] Add feature flag for WebM & VP9
https://bugs.webkit.org/show_bug.cgi?id=214672
<rdar://problem/65959506>

Reviewed by Beth Dakin.

Source/WebKit:

  • FeatureFlags/WebKit.plist:
  • Shared/WebPreferences.yaml:
  • Shared/WebPreferencesDefaultValues.cpp:

(WebKit::defaultVP9DecoderEnabled):
(WebKit::defaultWebMParserEnabled):

  • Shared/WebPreferencesDefaultValues.h:

Source/WTF:

  • wtf/PlatformEnableCocoa.h:
9:49 PM Changeset in webkit [264746] by Conrad Shultz
  • 71 edits in trunk

Update macOS Version macros
https://bugs.webkit.org/show_bug.cgi?id=214653

Reviewed by Tim Horton.

PerformanceTests:

  • MediaTime/Configurations/Base.xcconfig:
  • MediaTime/Configurations/DebugRelease.xcconfig:

Source/bmalloc:

  • Configurations/Base.xcconfig:
  • Configurations/DebugRelease.xcconfig:

Source/JavaScriptCore:

  • Configurations/Base.xcconfig:
  • Configurations/DebugRelease.xcconfig:
  • Configurations/Version.xcconfig:
  • Configurations/WebKitTargetConditionals.xcconfig:

Source/ThirdParty:

  • gtest/xcode/Config/DebugProject.xcconfig:
  • gtest/xcode/Config/ReleaseProject.xcconfig:

Source/ThirdParty/ANGLE:

  • Configurations/Base.xcconfig:
  • Configurations/DebugRelease.xcconfig:
  • Configurations/Version.xcconfig:
  • Configurations/WebKitTargetConditionals.xcconfig:

Source/ThirdParty/libwebrtc:

  • Configurations/Base.xcconfig:
  • Configurations/DebugRelease.xcconfig:
  • Configurations/Version.xcconfig:
  • Configurations/WebKitTargetConditionals.xcconfig:

Source/WebCore:

  • Configurations/Base.xcconfig:
  • Configurations/DebugRelease.xcconfig:
  • Configurations/Version.xcconfig:
  • Configurations/WebKitTargetConditionals.xcconfig:

Source/WebCore/PAL:

  • Configurations/Base.xcconfig:
  • Configurations/DebugRelease.xcconfig:
  • Configurations/Version.xcconfig:
  • Configurations/WebKitTargetConditionals.xcconfig:

Source/WebInspectorUI:

  • Configurations/Base.xcconfig:
  • Configurations/DebugRelease.xcconfig:
  • Configurations/Version.xcconfig:
  • Configurations/WebKitTargetConditionals.xcconfig:

Source/WebKit:

  • Configurations/Base.xcconfig:
  • Configurations/DebugRelease.xcconfig:
  • Configurations/Version.xcconfig:
  • Configurations/WebKitTargetConditionals.xcconfig:

Source/WebKitLegacy/mac:

  • Configurations/Base.xcconfig:
  • Configurations/DebugRelease.xcconfig:
  • Configurations/Version.xcconfig:
  • Configurations/WebKitTargetConditionals.xcconfig:

Source/WTF:

  • Configurations/Base.xcconfig:
  • Configurations/DebugRelease.xcconfig:
  • wtf/PlatformHave.h:

Tools:

  • ContentExtensionTester/Configurations/Base.xcconfig:
  • ContentExtensionTester/Configurations/DebugRelease.xcconfig:
  • DumpRenderTree/mac/Configurations/Base.xcconfig:
  • DumpRenderTree/mac/Configurations/DebugRelease.xcconfig:
  • ImageDiff/cg/Configurations/Base.xcconfig:
  • ImageDiff/cg/Configurations/DebugRelease.xcconfig:
  • MiniBrowser/Configurations/Base.xcconfig:
  • MiniBrowser/Configurations/DebugRelease.xcconfig:
  • TestWebKitAPI/Configurations/Base.xcconfig:
  • TestWebKitAPI/Configurations/DebugRelease.xcconfig:
  • TestWebKitAPI/Configurations/WebKitTargetConditionals.xcconfig:
  • WebEditingTester/Configurations/Base.xcconfig:
  • WebEditingTester/Configurations/DebugRelease.xcconfig:
  • WebKitTestRunner/Configurations/Base.xcconfig:
  • WebKitTestRunner/Configurations/DebugRelease.xcconfig:
  • lldb/lldbWebKitTester/Configurations/Base.xcconfig:
  • lldb/lldbWebKitTester/Configurations/DebugRelease.xcconfig:
9:20 PM Changeset in webkit [264745] by keith_miller@apple.com
  • 4 edits in trunk

iOS simulator does not support WebAssembly
https://bugs.webkit.org/show_bug.cgi?id=191064

Reviewed by Yusuke Suzuki.

Now that it seems we can JIT in the Simulator we should enable
WebAssembly there. This just means enabling FTL/B3 so WASM gets
enabled.

  • wtf/PlatformEnable.h:
  • wtf/PlatformEnableCocoa.h:
9:15 PM Changeset in webkit [264744] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

[Win10] js/weakref-finalizationregistry.html is frequently timing out
https://bugs.webkit.org/show_bug.cgi?id=214673

Unreviewed test gardening.

  • platform/win/TestExpectations: Mark test as flaky.
8:33 PM Changeset in webkit [264743] by ggaren@apple.com
  • 5 edits in trunk/Source

WTF::Function adoption should be explicit instead of implicit
https://bugs.webkit.org/show_bug.cgi?id=214654

Reviewed by Darin Adler.

Source/JavaScriptCore:

  • heap/Heap.cpp:

(JSC::Heap::LambdaFinalizerOwner::finalize): Use new adopt function.

Source/WTF:

  • wtf/Function.h:

(WTF::Function<Out):
(WTF::adoptImpl): Added an adopt function for Functions and made the
adopting constructor private.

  • wtf/cf/RunLoopCF.cpp:

(WTF::RunLoop::dispatch): Use new adopt function.

8:01 PM Changeset in webkit [264742] by jer.noble@apple.com
  • 2 edits in trunk/Source/WebCore

[Cocoa|WebM] Decode error when seeking
https://bugs.webkit.org/show_bug.cgi?id=214666

Reviewed by Eric Carlson.

A decoder error is hit when seeking because we think all samples coming out of the SourceBufferParserWebM are sync-samples.
This is because the attachment added with CMSetAttachment() is ignored; the correct way to set sample attachments is by
getting the sample attachments array with CMSampleBufferGetSampleAttachmentsArray(), and then iterating over the attachments
and adding keys to the underlying mutable CFDictionary.

  • platform/graphics/cocoa/SourceBufferParserWebM.cpp:

(WebCore::SourceBufferParserWebM::OnFrame):

6:49 PM Changeset in webkit [264741] by Fujii Hironori
  • 2 edits in trunk/Source/WebCore

[WinCairo][32bit] JPEG2000ImageDecoder.cpp: error C2664: 'std::unique_ptr<...>::unique_ptr(...)': cannot convert argument 2 from 'void (stdcall *)(opj_codec_t *)' to 'const _Dx &'
https://bugs.webkit.org/show_bug.cgi?id=214657

Reviewed by Darin Adler.

cdecl and stdcall calling conventions don't match.
<https://docs.microsoft.com/en-us/cpp/cpp/argument-passing-and-naming-conventions>

  • platform/image-decoders/jpeg2000/JPEG2000ImageDecoder.cpp:

(WebCore::JPEG2000ImageDecoder::decode): Use decltype for the second template argument of unique_ptr.

6:44 PM Changeset in webkit [264740] by Fujii Hironori
  • 2 edits in trunk/Source/WebKit

[WinCairo][32bit] ConnectionWin.cpp(327): error C2664: 'BOOL RegisterWaitForSingleObject(...)': cannot convert argument 3 from 'void (cdecl *)(...)' to 'WAITORTIMERCALLBACK'
https://bugs.webkit.org/show_bug.cgi?id=214658

Reviewed by Darin Adler.

cdecl and stdcall calling conventions don't match.
<https://docs.microsoft.com/en-us/cpp/cpp/argument-passing-and-naming-conventions>

  • Platform/IPC/Connection.h: Added WINAPI to Connection::EventListener::callback method.
6:41 PM Changeset in webkit [264739] by Jon Davis
  • 2 edits in trunk/Source/WebCore

Add feature status for CSS Containment Module Level 1
https://bugs.webkit.org/show_bug.cgi?id=214663

Reviewed by Darin Adler.

  • features.json:
6:37 PM Changeset in webkit [264738] by Jon Davis
  • 2 edits in trunk/Source/WebCore

Add feature status for the focus-visible pseudo-selector
https://bugs.webkit.org/show_bug.cgi?id=214662

Reviewed by Darin Adler.

  • features.json:
5:21 PM Changeset in webkit [264737] by Wenson Hsieh
  • 2 edits in trunk/Source/WebCore

Unreviewed, update feature status for async clipboard API

  • features.json: Move from "In Development" to "Supported".
5:08 PM Changeset in webkit [264736] by mark.lam@apple.com
  • 34 edits in trunk/Source

Disallow VM entry when doing a VMInquiry.
https://bugs.webkit.org/show_bug.cgi?id=214624
<rdar://problem/65915314>

Reviewed by Saam Barati.

Source/JavaScriptCore:

  1. In PropertySlot's constructor, automatically install a DisallowVMEntry scope if the passed in internal method type is VMInquiry. This ensures that we won't be able to enter the VM to call JS code while doing the inquiry. As a result, the PropertySlot constructor will now take an optional VM pointer, which is must be passed in in when the internal method type is VMInquiry.

Note that the handling of attempts to enter the VM depends on
Options::crashOnDisallowedVMEntry().

On Debug build (due to ASSERT_ENABLED), Options::crashOnDisallowedVMEntry()
defaults to true and the VM will crash on disallowed entry.
On Release build, Options::crashOnDisallowedVMEntry() defaults to false and
disallow entry attempts into the VM will be treated like calling an empty
function that returns undefined. This is not new behavior in this patch, but
I just want to have a reminder here of how DisallowVMEntry will be enforcing
no entry into the VM while doing a VMInquiry.

  1. After VMInquiry gets, sometimes the client code wants to do other work that do entails entering the VM. In such cases, we need to reset the PropertySlot's disallowVMEntry scope. Fixed up a few places in client code to do this reset.
  1. Make the DisableVMEntry scope copyable. At least one place wants to copy PropertySlot, and as a result, will need to copy its embedded DisableVMEntry scope as well if installed.

For DisableVMEntry, we'll handle copying semantics as follows: copying a
DisableVMEntry will ref the VM::disallowVMEntryCount. The count will be
decremented when both instances are destructed. As a result, VM entry will
be disallowed as long as one of the copies are still alive.

  1. For the setObjectToStringValue() method of Structure and StructureRareData, we were previously passing a PropertySlot by copy. We don't really need to do this. Ultimately, only StructureRareData::setObjectToStringValue() needs to access a few of the PropertySlot query methods. So, we changed these methods to pass a const PropertySlot& instead to void the needless copying.
  • API/JSCallbackObjectFunctions.h:

(JSC::JSCallbackObject<Parent>::put):
(JSC::JSCallbackObject<Parent>::staticFunctionGetter):

  • heap/HeapSnapshotBuilder.cpp:

(JSC::HeapSnapshotBuilder::json):

  • inspector/JSInjectedScriptHost.cpp:

(Inspector::JSInjectedScriptHost::queryInstances):

  • interpreter/Interpreter.cpp:

(JSC::Interpreter::execute):

  • jit/JITOperations.cpp:
  • llint/LLIntSlowPaths.cpp:

(JSC::LLInt::LLINT_SLOW_PATH_DECL):

  • runtime/DisallowVMEntry.h:

(JSC::DisallowVMEntryImpl::DisallowVMEntryImpl):

  • runtime/ErrorInstance.cpp:

(JSC::ErrorInstance::sanitizedToString):

  • runtime/JSFunction.cpp:

(JSC::JSFunction::getOwnNonIndexPropertyNames):
(JSC::JSFunction::put):
(JSC::JSFunction::defineOwnProperty):

  • runtime/JSGenericTypedArrayViewConstructorInlines.h:

(JSC::constructGenericTypedArrayViewWithArguments):

  • runtime/JSGlobalObject.cpp:

(JSC::getGetterById):
(JSC::JSGlobalObject::defineOwnProperty):
(JSC::JSGlobalObject::tryInstallArraySpeciesWatchpoint):

  • runtime/JSObject.cpp:

(JSC::JSObject::calculatedClassName):

  • runtime/JSObjectInlines.h:

(JSC::JSObject::getPrivateFieldSlot):

  • runtime/JSScope.cpp:

(JSC::abstractAccess):

  • runtime/PropertySlot.h:

(JSC::PropertySlot::PropertySlot):

  • runtime/SamplingProfiler.cpp:

(JSC::SamplingProfiler::StackFrame::nameFromCallee):

  • runtime/Structure.h:
  • runtime/StructureInlines.h:

(JSC::Structure::setObjectToStringValue):

  • runtime/StructureRareData.cpp:

(JSC::StructureRareData::setObjectToStringValue):

  • runtime/StructureRareData.h:
  • tools/JSDollarVM.cpp:

(JSC::functionGetGetterSetter):

Source/WebCore:

  1. Change binding to reset the DisallowVMEntry scope in PropertySlot after doing a VMInquiry.
  2. Rebase bindings test results to match.
  • bindings/js/JSDOMAbstractOperations.h:

(WebCore::isVisibleNamedProperty):
(WebCore::accessVisibleNamedProperty):

  • bindings/scripts/CodeGeneratorJS.pm:

(GeneratePut):
(GeneratePutByIndex):
(GenerateDefineOwnProperty):

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

(WebCore::JSTestNamedAndIndexedSetterNoIdentifier::put):
(WebCore::JSTestNamedAndIndexedSetterNoIdentifier::putByIndex):
(WebCore::JSTestNamedAndIndexedSetterNoIdentifier::defineOwnProperty):

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

(WebCore::JSTestNamedAndIndexedSetterThrowingException::put):
(WebCore::JSTestNamedAndIndexedSetterThrowingException::putByIndex):
(WebCore::JSTestNamedAndIndexedSetterThrowingException::defineOwnProperty):

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

(WebCore::JSTestNamedAndIndexedSetterWithIdentifier::put):
(WebCore::JSTestNamedAndIndexedSetterWithIdentifier::putByIndex):
(WebCore::JSTestNamedAndIndexedSetterWithIdentifier::defineOwnProperty):

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

(WebCore::JSTestNamedSetterNoIdentifier::put):
(WebCore::JSTestNamedSetterNoIdentifier::putByIndex):
(WebCore::JSTestNamedSetterNoIdentifier::defineOwnProperty):

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

(WebCore::JSTestNamedSetterThrowingException::put):
(WebCore::JSTestNamedSetterThrowingException::putByIndex):
(WebCore::JSTestNamedSetterThrowingException::defineOwnProperty):

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

(WebCore::JSTestNamedSetterWithIdentifier::put):
(WebCore::JSTestNamedSetterWithIdentifier::putByIndex):
(WebCore::JSTestNamedSetterWithIdentifier::defineOwnProperty):

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

(WebCore::JSTestNamedSetterWithIndexedGetter::put):
(WebCore::JSTestNamedSetterWithIndexedGetter::putByIndex):
(WebCore::JSTestNamedSetterWithIndexedGetter::defineOwnProperty):

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

(WebCore::JSTestNamedSetterWithIndexedGetterAndSetter::put):
(WebCore::JSTestNamedSetterWithIndexedGetterAndSetter::putByIndex):
(WebCore::JSTestNamedSetterWithIndexedGetterAndSetter::defineOwnProperty):

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

(WebCore::JSTestNamedSetterWithUnforgableProperties::put):
(WebCore::JSTestNamedSetterWithUnforgableProperties::putByIndex):
(WebCore::JSTestNamedSetterWithUnforgableProperties::defineOwnProperty):

4:57 PM Changeset in webkit [264735] by Ryan Haddad
  • 1 edit
    2 deletes in trunk/LayoutTests

Unreviewed test gardening, remove old test expectation directories for iOS 12 since they are unused.

  • platform/ios-12/TestExpectations: Removed.
  • platform/ios-12/css2.1/t0805-c5519-brdr-r-01-e-expected.txt: Removed.
  • platform/ios-12/css2.1/t0905-c5525-fltblck-00-d-ag-expected.txt: Removed.
  • platform/ios-12/css2.1/t1202-counter-09-b-expected.txt: Removed.
  • platform/ios-12/css2.1/t1202-counters-09-b-expected.txt: Removed.
  • platform/ios-12/editing/deleting/delete-emoji-1-expected.txt: Removed.
  • platform/ios-12/editing/deleting/delete-emoji-9-expected.txt: Removed.
  • platform/ios-12/editing/deleting/delete-emoji-expected.txt: Removed.
  • platform/ios-12/fast/css-generated-content/014-expected.txt: Removed.
  • platform/ios-12/fast/css/apple-system-colors-expected.txt: Removed.
  • platform/ios-12/fast/css/beforeSelectorOnCodeElement-expected.txt: Removed.
  • platform/ios-12/fast/css/line-height-font-order-expected.txt: Removed.
  • platform/ios-12/fast/events/touch/ios/pointer-events-with-modifiers-expected.txt: Removed.
  • platform/ios-12/fast/events/updateLayoutForHitTest-expected.txt: Removed.
  • platform/ios-12/fast/overflow/007-expected.txt: Removed.
  • platform/ios-12/fast/table/col-and-colgroup-offsets-expected.txt: Removed.
  • platform/ios-12/fast/text/hyphenate-avoid-orphaned-word-expected.txt: Removed.
  • platform/ios-12/fast/text/hyphenate-character-expected.txt: Removed.
  • platform/ios-12/fast/text/hyphens-expected.txt: Removed.
  • platform/ios-12/imported/w3c/web-platform-tests/cors/access-control-expose-headers-parsing.window-expected.txt: Removed.
  • platform/ios-12/imported/w3c/web-platform-tests/fetch/api/basic/header-value-combining.any-expected.txt: Removed.
  • platform/ios-12/imported/w3c/web-platform-tests/fetch/api/basic/header-value-combining.any.worker-expected.txt: Removed.
  • platform/ios-12/imported/w3c/web-platform-tests/fetch/api/basic/request-headers.any-expected.txt: Removed.
  • platform/ios-12/imported/w3c/web-platform-tests/fetch/api/basic/request-headers.any.worker-expected.txt: Removed.
  • platform/ios-12/imported/w3c/web-platform-tests/fetch/content-type/script.window-expected.txt: Removed.
  • platform/ios-12/imported/w3c/web-platform-tests/fetch/nosniff/parsing-nosniff.window-expected.txt: Removed.
  • platform/ios-12/imported/w3c/web-platform-tests/xhr/getallresponseheaders-expected.txt: Removed.
  • platform/ios-12/imported/w3c/web-platform-tests/xhr/getresponseheader.any-expected.txt: Removed.
  • platform/ios-12/imported/w3c/web-platform-tests/xhr/getresponseheader.any.worker-expected.txt: Removed.
  • platform/ios-12/platform/ios/ios/fast/text/opticalFont-expected.txt: Removed.
  • platform/ios-12/platform/ios/ios/fast/text/opticalFontWithTextStyle-expected.txt: Removed.
  • platform/ios-12/platform/ios/ios/fast/text/opticalFontWithWeight-expected.txt: Removed.
  • platform/ios-12/quicklook/excel-expected.txt: Removed.
  • platform/ios-12/quicklook/excel-legacy-expected.txt: Removed.
  • platform/ios-12/quicklook/excel-macro-enabled-expected.txt: Removed.
  • platform/ios-12/quicklook/keynote-09-expected.txt: Removed.
  • platform/ios-12/quicklook/numbers-09-expected.txt: Removed.
  • platform/ios-12/quicklook/pages-09-expected.txt: Removed.
  • platform/ios-12/quicklook/powerpoint-expected.txt: Removed.
  • platform/ios-12/quicklook/powerpoint-legacy-expected.txt: Removed.
  • platform/ios-12/svg/custom/object-sizing-expected.txt: Removed.
  • platform/ios-12/tables/mozilla/bugs/bug10269-2-expected.txt: Removed.
  • platform/ios-12/tables/mozilla/bugs/bug10296-1-expected.txt: Removed.
  • platform/ios-12/tables/mozilla/bugs/bug139524-2-expected.txt: Removed.
  • platform/ios-12/tables/mozilla_expected_failures/bugs/bug2479-5-expected.txt: Removed.
  • platform/ipad-12/TestExpectations: Removed.
  • platform/ipad-12/fast/scrolling/ios/overflow-scroll-inherited-expected.txt: Removed.
  • platform/ipad-12/fast/scrolling/ios/overflow-scrolling-ancestor-clip-expected.txt: Removed.
  • platform/ipad-12/fast/scrolling/ios/overflow-scrolling-ancestor-clip-size-expected.txt: Removed.
  • platform/ipad-12/fast/scrolling/ios/subpixel-overflow-scrolling-with-ancestor-expected.txt: Removed.
  • platform/ipad-12/fast/viewport/ios/width-is-device-width-overflowing-body-overflow-hidden-tall-expected.txt: Removed.
  • platform/ipad-12/platform/ios/ios/fast/text/opticalFontWithTextStyle-expected.txt: Removed.
  • platform/ipad-12/scrollingcoordinator/ios/ui-scrolling-tree-expected.txt: Removed.
4:52 PM Changeset in webkit [264734] by eric.carlson@apple.com
  • 7 edits
    1 copy
    7 adds
    2 deletes in trunk

[Cocoa] canPlayType with 'codecs' parameter should never return "maybe"
https://bugs.webkit.org/show_bug.cgi?id=214621
<rdar://problem/65146785>

Reviewed by Jer Noble.

Source/WebCore:

No new tests, updated existing tests and results.

  • platform/graphics/MIMETypeCache.cpp:

(WebCore::MIMETypeCache::canDecodeType):

LayoutTests:

  • media/media-can-play-av1-expected.txt:
  • media/media-can-play-av1.html:
  • media/vp9.html:
  • platform/ios/imported/w3c/web-platform-tests/html/semantics/embedded-content/media-elements/mime-types/canPlayType-expected.txt: Added.
  • platform/ios/media/media-can-play-av1-expected.txt: Removed.
  • platform/ios/media/media-can-play-wav-audio-expected.txt: Copied from LayoutTests/platform/mac/media/media-can-play-wav-audio-expected.txt.
  • platform/mac/imported/w3c/web-platform-tests/html/semantics/embedded-content/media-elements/mime-types/canPlayType-expected.txt: Added.
  • platform/mac/media/media-can-play-av1-expected.txt: Removed.
  • platform/mac/media/media-can-play-wav-audio-expected.txt:
4:38 PM Changeset in webkit [264733] by commit-queue@webkit.org
  • 16 edits in trunk

[WebGL2] Implement multiple render target entry points
https://bugs.webkit.org/show_bug.cgi?id=211156

Patch by Kenneth Russell <kbr@chromium.org> on 2020-07-22
Reviewed by Dean Jackson.

Source/WebCore:

Implement the drawBuffers and clearBuffer entry points.

Integrate the clearBuffer APIs with preserveDrawingBuffer:false's
auto-clearing. Move some auto-clearing state from
WebGLRenderingContextBase to GraphicsContextGL and
GraphicsContextGLOpenGL.

Rename setPreserveDrawingBuffer to enablePreserveDrawingBuffer to
make it clear that arbitrary changes of preserveDrawingBuffer are
not supported. setPreserveDrawingBuffer was previously added for
capture of preserveDrawingBuffer:false WebGL canvases.

Covered by existing WebGL conformance tests and canvas capture
layout tests.

  • Modules/mediastream/CanvasCaptureMediaStreamTrack.cpp:

(WebCore::CanvasCaptureMediaStreamTrack::Source::canvasChanged):

  • html/canvas/WebGL2RenderingContext.cpp:

(WebCore::WebGL2RenderingContext::drawBuffers):
(WebCore::WebGL2RenderingContext::clearBufferiv):
(WebCore::WebGL2RenderingContext::clearBufferuiv):
(WebCore::WebGL2RenderingContext::clearBufferfv):
(WebCore::WebGL2RenderingContext::clearBufferfi):
(WebCore::WebGL2RenderingContext::validateClearBuffer):
(WebCore::WebGL2RenderingContext::updateBuffersToAutoClear):

  • html/canvas/WebGL2RenderingContext.h:
  • html/canvas/WebGLFramebuffer.cpp:

(WebCore::WebGLFramebuffer::drawBuffersIfNecessary):

  • html/canvas/WebGLRenderingContextBase.cpp:

(WebCore::WebGLRenderingContextBase::clearIfComposited):
(WebCore::WebGLRenderingContextBase::enablePreserveDrawingBuffer):

  • html/canvas/WebGLRenderingContextBase.h:

(WebCore::WebGLRenderingContextBase::setPreserveDrawingBuffer): Deleted.

  • platform/graphics/GraphicsContextGL.cpp:

(WebCore::GraphicsContextGL::enablePreserveDrawingBuffer):

  • platform/graphics/GraphicsContextGL.h:
  • platform/graphics/angle/GraphicsContextGLANGLE.cpp:

(WebCore::GraphicsContextGLOpenGL::markLayerComposited):
(WebCore::GraphicsContextGLOpenGL::drawBuffers):
(WebCore::GraphicsContextGLOpenGL::clearBufferiv):
(WebCore::GraphicsContextGLOpenGL::clearBufferuiv):
(WebCore::GraphicsContextGLOpenGL::clearBufferfv):
(WebCore::GraphicsContextGLOpenGL::clearBufferfi):

  • platform/graphics/opengl/GraphicsContextGLOpenGL.cpp:

(WebCore::GraphicsContextGLOpenGL::resetBuffersToAutoClear):
(WebCore::GraphicsContextGLOpenGL::setBuffersToAutoClear):
(WebCore::GraphicsContextGLOpenGL::getBuffersToAutoClear const):
(WebCore::GraphicsContextGLOpenGL::enablePreserveDrawingBuffer):

  • platform/graphics/opengl/GraphicsContextGLOpenGL.h:
  • platform/graphics/opengl/GraphicsContextGLOpenGLCommon.cpp:

(WebCore::GraphicsContextGLOpenGL::markLayerComposited):
(WebCore::GraphicsContextGLOpenGL::drawBuffers):

LayoutTests:

Rebaseline one layout test which is now fully passing, and another
which now properly detects errors.

  • fast/canvas/webgl/webgl2/sequences-expected.txt:
  • webgl/2.0.0/conformance2/reading/read-pixels-from-fbo-test-expected.txt:
4:36 PM Changeset in webkit [264732] by ddkilzer@apple.com
  • 2 edits in trunk/Source/WebKit

Follow-up: [IPC hardening] WebKit::ObjCObjectGraph::decode() and encode() should use enum ObjCType type
<https://webkit.org/b/214618>
<rdar://problem/65777899>

Unreviewed fix to get rid of extra namespace blocks.

  • Shared/mac/ObjCObjectGraph.mm:

(enum class WebKit::ObjCType):

  • Move enum class definition back to its original location.

(WTF::EnumTraits<WebKit::ObjCType>):

  • Move to the end of the file. Noticed this worked in ColorSpaceData.mm.
3:31 PM Changeset in webkit [264731] by Karl Rackler
  • 1 edit in trunk/LayoutTests/ChangeLog

[ macOS debug wk2 ] Set expectation for imported/w3c/web-platform-tests/webrtc/RTCSctpTransport-events.html is a flaky crash.
https://bugs.webkit.org/show_bug.cgi?id=214661

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
3:22 PM Changeset in webkit [264730] by Karl Rackler
  • 2 edits in trunk/LayoutTests

[ macOS debug wk2 ] Set expectation for imported/w3c/web-platform-tests/webrtc/RTCSctpTransport-events.html is a flaky crash.
webkit.org/b/214661

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
3:10 PM Changeset in webkit [264729] by Wenson Hsieh
  • 4 edits in trunk

Article headlines are split across multiple lines after translating tagesschau.de
https://bugs.webkit.org/show_bug.cgi?id=214652
<rdar://problem/63995571>

Reviewed by Tim Horton.

Source/WebCore:

Treat block-level heading elements (h1 through h6) as item boundaries. On this website, we currently vend
the main heading and sub-heading as separate tokens in the same item, which sometimes causes the machine
translation framework to try and rearrange and split tokens, since it treats the combination of the main heading
and sub-heading text as a single sentence to be translated.

Test: TextManipulation.StartTextManipulationExtractsHeadingElementsAsSeparateItems

  • editing/TextManipulationController.cpp:

(WebCore::isEnclosingItemBoundaryElement):

Tools:

Adds a new API test (a reduced version of article headlines from the front page of tagesschau.de).

  • TestWebKitAPI/Tests/WebKitCocoa/TextManipulation.mm:
2:55 PM Changeset in webkit [264728] by Alan Coon
  • 1 copy in tags/Safari-610.1.23

Tag Safari-610.1.23.

2:28 PM Changeset in webkit [264727] by Chris Dumez
  • 2 edits in trunk/Source/WebCore/PAL

Unreviewed attempt to fix internal build with very recent SDKs.

  • pal/spi/cocoa/LaunchServicesSPI.h:
2:15 PM Changeset in webkit [264726] by Alan Coon
  • 8 edits in branches/safari-610.1.22.0-branch/Source

Versioning.

WebKit-610.1.22.0.2

2:01 PM Changeset in webkit [264725] by Karl Rackler
  • 2 edits in trunk/LayoutTests

Set test expectation for tiled-drawing/scrolling/fast-scroll-mainframe-zoom.html as it is flaky crash
https://bugs.webkit.org/show_bug.cgi?id=214651

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
1:17 PM Changeset in webkit [264724] by achristensen@apple.com
  • 27 edits in trunk

Safari does not present CertificateInfo for service-worker served documents
https://bugs.webkit.org/show_bug.cgi?id=206403
<rdar://problem/65410875>

Reviewed by Darin Adler and Youenn Fablet.

Source/WebCore:

When loading a service worker JavaScript resource, we need to tell the network process to include certificate info with the response.
We then pass that response to the ServiceWorkerContextData for storage. When the service worker generates responses to fetches, use that
certificate chain for WKWebView.serverTrust when the page is committed.

Covered by updating a test I wrote in r264687.

  • platform/network/ResourceResponseBase.h:

(WebCore::ResourceResponseBase::setCertificateInfo):

  • platform/network/cf/CertificateInfo.h:
  • platform/network/cf/CertificateInfoCFNet.cpp:

(WebCore::CertificateInfo::isolatedCopy const):

  • platform/network/soup/CertificateInfo.h:

(WebCore::CertificateInfo::isolatedCopy const):

  • workers/Worker.cpp:

(WebCore::Worker::create):

  • workers/WorkerScriptLoader.cpp:

(WebCore::WorkerScriptLoader::loadAsynchronously):
(WebCore::WorkerScriptLoader::didReceiveResponse):

  • workers/WorkerScriptLoader.h:

(WebCore::WorkerScriptLoader::certificateInfo const):

  • workers/service/ServiceWorkerContainer.cpp:

(WebCore::ServiceWorkerContainer::jobFinishedLoadingScript):

  • workers/service/ServiceWorkerContainer.h:
  • workers/service/ServiceWorkerContextData.cpp:

(WebCore::ServiceWorkerContextData::isolatedCopy const):

  • workers/service/ServiceWorkerContextData.h:

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

  • workers/service/ServiceWorkerFetchResult.h:

(WebCore::ServiceWorkerFetchResult::isolatedCopy const):
(WebCore::serviceWorkerFetchError):
(WebCore::ServiceWorkerFetchResult::encode const):
(WebCore::ServiceWorkerFetchResult::decode):

  • workers/service/ServiceWorkerGlobalScope.h:
  • workers/service/ServiceWorkerJob.cpp:

(WebCore::ServiceWorkerJob::fetchScriptWithContext):
(WebCore::ServiceWorkerJob::notifyFinished):

  • workers/service/ServiceWorkerJobClient.h:
  • workers/service/context/ServiceWorkerFetch.cpp:

(WebCore::ServiceWorkerFetch::processResponse):
(WebCore::ServiceWorkerFetch::dispatchFetchEvent):

  • workers/service/server/RegistrationDatabase.cpp:

(WebCore::RegistrationDatabase::importRecords):

  • workers/service/server/SWServer.cpp:

(WebCore::SWServer::addRegistrationFromStore):
Also fix a possible use-after-move bug, depending on parameter evaluation order which is undefined behavior.
(WebCore::SWServer::updateWorker):
(WebCore::SWServer::installContextData):

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

(WebCore::SWServerJobQueue::scriptFetchFinished):

  • workers/service/server/SWServerWorker.cpp:

(WebCore::SWServerWorker::SWServerWorker):
(WebCore::SWServerWorker::contextData const):

  • workers/service/server/SWServerWorker.h:

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/ServiceWorkerBasic.mm:
1:16 PM Changeset in webkit [264723] by ddkilzer@apple.com
  • 3 edits in trunk/Source/WebCore

Unreviewed build fix after r264710, r264719, r264721: use more HAVE_AVPLAYER_VIDEORANGEOVERRIDE.

  • platform/PlatformScreen.h:
  • platform/mac/PlatformScreenMac.mm:

(WebCore::collectScreenProperties):

  • Guard more code with HAVE(AVPLAYER_VIDEORANGEOVERRIDE).
1:04 PM Changeset in webkit [264722] by Fujii Hironori
  • 3 edits
    3 adds in trunk

[Win][Uniscribe] Material icons containing underscore or numbers aren't shown because ScriptItemize splits them apart
https://bugs.webkit.org/show_bug.cgi?id=201214

Reviewed by Don Olmstead.

Source/WebCore:

ScriptItemize split "3d_rotation" into "3", "d", "_" and
"rotation". It has a option fMergeNeutralItems to control it.

Test: fonts/ligature.html

  • platform/graphics/win/ComplexTextControllerUniscribe.cpp:

(WebCore::ComplexTextController::collectComplexTextRunsForCharacters):
Set fMergeNeutralItems of SCRIPT_CONTROL true.

LayoutTests:

  • fonts/ligature-expected.html: Added.
  • fonts/ligature.html: Added.
  • fonts/ligature.woff: Added. Created a font for testing ligature

containing only 0-9, underscore, 'a' and U+E000 glyphs. U+E000 has
a ligature string "0_a".

12:58 PM Changeset in webkit [264721] by jer.noble@apple.com
  • 2 edits in trunk/Source/WebCore

Further unreviewed build fix after r264710; need more HAVE_AVPLAYER_VIDEORANGEOVERRIDE guards.

  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
12:33 PM Changeset in webkit [264720] by ddkilzer@apple.com
  • 2 edits in trunk/Source/WebKit

[IPC hardening] WebKit::ObjCObjectGraph::decode() and encode() should use enum ObjCType type
<https://webkit.org/b/214618>
<rdar://problem/65777899>

Unreviewed fix to include the better header.

  • Shared/mac/ObjCObjectGraph.mm:
  • Switch #include from OptionSet.h to EnumTraits.h.
12:27 PM Changeset in webkit [264719] by jer.noble@apple.com
  • 8 edits in trunk/Source

Unreviewed build fix after r264710; add a HAVE_AVPLAYER_VIDEORANGEOVERRIDE guard.

Source/WebCore:

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

(WebCore::MediaPlayerPrivateAVFoundationObjC::createAVPlayer):
(WebCore::MediaPlayerPrivateAVFoundationObjC::setPreferredDynamicRangeMode):

Source/WebCore/PAL:

  • pal/spi/cocoa/AVFoundationSPI.h:

Source/WebKit:

  • WebProcess/cocoa/WebProcessCocoa.mm:

(WebKit::WebProcess::updatePageScreenProperties):

Source/WTF:

  • wtf/PlatformHave.h:
12:00 PM Changeset in webkit [264718] by ysuzuki@apple.com
  • 2 edits in trunk/Tools

TestWTF.WTF_Packed.PackedAlignedPtr should be adjusted because ARM macOS is using 48 bits for effective address width
https://bugs.webkit.org/show_bug.cgi?id=214633

Reviewed by Mark Lam.

While PlatformOS.h's condition is updated, the test is not changed. This patch just aligns the condition used in this test
to the one in PlatformOS.h.

  • TestWebKitAPI/Tests/WTF/Packed.cpp:

(TestWebKitAPI::TEST):

11:59 AM Changeset in webkit [264717] by BJ Burg
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Sources tab empty, sidebar nonfunctional
https://bugs.webkit.org/show_bug.cgi?id=214611
<rdar://problem/65898051>

Reviewed by Devin Rousso.

This is caused when a subresource fails its initial load. This generates a
networking IssueMessage without a source code location, which is not adequately handled.

  • UserInterface/Views/IssueTreeElement.js:

(WI.IssueTreeElement.prototype._updateTitles):
(WI.IssueTreeElement):
If there is no sourceCodeLocation for the issue, then don't try to compute line numbers.

11:47 AM Changeset in webkit [264716] by Simon Fraser
  • 2 edits in trunk/LayoutTests

compositing/repaint/iframes/compositing-iframe-scroll-repaint.html fails on Mojave
https://bugs.webkit.org/show_bug.cgi?id=214647

Unreviewed test gardening. This test fails on Mojave.

  • platform/mac-wk1/TestExpectations:
11:35 AM Changeset in webkit [264715] by Jonathan Bedard
  • 5 edits
    2 adds in trunk/Tools

[webkitcorepy] Add string_utils (Part 1)
https://bugs.webkit.org/show_bug.cgi?id=214405

Reviewed by Dewei Zhu.

Centralize handling of unicode encoding/decoding along with various tools
for printing strings.

  • Scripts/libraries/webkitcorepy/webkitcorepy/init.py:
  • Scripts/libraries/webkitcorepy/webkitcorepy/string_utils.py: Added.

(encode): Encode a string as bytes.
(decode): Decode a bytes as a string.
(ordinal): Convert a number to 1st, 2nd, 3rd, 4th, ect.
(pluralize): Convert a string to it's plurlarized version, if provided number indicates
it should be.
(join): Join a list of elements in a human-readable form.
(out_of): Create a fraction which takes up a constant amount of characters.
(elapsed): Describe the amount of time elapsed as a human-readable string.

  • Scripts/libraries/webkitcorepy/webkitcorepy/tests/string_utils_unittest.py: Added.

(StringUtils): Test string_utils.

  • Scripts/webkitpy/common/unicode_compatibility.py: Replaced with webkitcorepy.string_utils.
11:28 AM Changeset in webkit [264714] by mmaxfield@apple.com
  • 4 edits
    3 adds
    1 delete in trunk

REGRESSION(r205826): narrowNoBreakSpace (U+202F) has zero width, regardless of font
https://bugs.webkit.org/show_bug.cgi?id=214626
<rdar://problem/65193790>

Reviewed by Timothy Hatcher.

Source/WebCore:

There's no reason to overwrite narrowNoBreakSpace with zeroWidthSpace.

This is becoming much more prominent now because a lot of the French unit formatting data in CLDR - and hence in e.g. NSMeasurementFormatter - uses 202F between numeric value and unit, e.g. "37 km"

It works in native content on macOS, and in all other browsers on macOS, but not in WebKit.

Test: fast/text/narrowNoBreakSpace.html

  • platform/graphics/Font.cpp:

(WebCore::overrideControlCharacters):

LayoutTests:

  • fast/text/narrowNoBreakSpace-expected-mismatch.html: Added.
  • fast/text/narrowNoBreakSpace.html: Added.
  • fast/text/narrow-non-breaking-space-expected-mismatch.html: Renamed from fast/text/narrow-non-breaking-space-expected.html.
  • fast/text/narrow-non-breaking-space.html: Made the test more robust.
11:25 AM Changeset in webkit [264713] by commit-queue@webkit.org
  • 4 edits in trunk/Source/WebCore

Fix validation of deleted WebGL objects
https://bugs.webkit.org/show_bug.cgi?id=214622

Patch by James Darpinian <James Darpinian> on 2020-07-22
Reviewed by Dean Jackson.

Programs and shaders need to be validated differently than other WebGL objects.
Using a deleted WebGL object should cause an INVALID_OPERATION error, except
for programs and shaders which should be INVALID_VALUE.

  • html/canvas/WebGL2RenderingContext.cpp:

(WebCore::WebGL2RenderingContext::getFragDataLocation):
(WebCore::WebGL2RenderingContext::transformFeedbackVaryings):
(WebCore::WebGL2RenderingContext::getTransformFeedbackVarying):
(WebCore::WebGL2RenderingContext::getUniformIndices):
(WebCore::WebGL2RenderingContext::getActiveUniforms):
(WebCore::WebGL2RenderingContext::getUniformBlockIndex):
(WebCore::WebGL2RenderingContext::getActiveUniformBlockParameter):
(WebCore::WebGL2RenderingContext::getActiveUniformBlockName):
(WebCore::WebGL2RenderingContext::uniformBlockBinding):

  • html/canvas/WebGLRenderingContextBase.cpp:

(WebCore::WebGLRenderingContextBase::attachShader):
(WebCore::WebGLRenderingContextBase::bindAttribLocation):
(WebCore::WebGLRenderingContextBase::compileShader):
(WebCore::WebGLRenderingContextBase::detachShader):
(WebCore::WebGLRenderingContextBase::validateWebGLObject):
(WebCore::WebGLRenderingContextBase::validateWebGLProgramOrShader):
(WebCore::WebGLRenderingContextBase::getActiveAttrib):
(WebCore::WebGLRenderingContextBase::getActiveUniform):
(WebCore::WebGLRenderingContextBase::getAttachedShaders):
(WebCore::WebGLRenderingContextBase::getAttribLocation):
(WebCore::WebGLRenderingContextBase::getProgramParameter):
(WebCore::WebGLRenderingContextBase::getProgramInfoLog):
(WebCore::WebGLRenderingContextBase::getShaderParameter):
(WebCore::WebGLRenderingContextBase::getShaderInfoLog):
(WebCore::WebGLRenderingContextBase::getShaderSource):
(WebCore::WebGLRenderingContextBase::getUniform):
(WebCore::WebGLRenderingContextBase::getUniformLocation):
(WebCore::WebGLRenderingContextBase::linkProgramWithoutInvalidatingAttribLocations):
(WebCore::WebGLRenderingContextBase::shaderSource):
(WebCore::WebGLRenderingContextBase::validateProgram):

  • html/canvas/WebGLRenderingContextBase.h:
11:23 AM Changeset in webkit [264712] by Jon Davis
  • 2 edits in trunk/Source/WebCore

Update feature status to include the inert attribute
https://bugs.webkit.org/show_bug.cgi?id=214644

Reviewed by Darin Adler.

  • features.json:
11:16 AM Changeset in webkit [264711] by aakash_jain@apple.com
  • 3 edits in trunk/Tools

[ews-app] Pass api key in more secure manner
https://bugs.webkit.org/show_bug.cgi?id=214639

Reviewed by Jonathan Bedard.

  • BuildSlaveSupport/ews-app/ews/common/bugzilla.py:

(Bugzilla.get_bugzilla_api_key): Method to read api key from file instead of environment variable.
(Bugzilla.fetch_data_from_bugzilla_with_authentication): Method to fetch data from bugzilla using api key.
(Bugzilla._fetch_attachment_json): Do not append api key in the url, use new method instead.
(Bugzilla._get_bug_json): Ditto.
(Bugzilla._get_commit_queue_patches_from_bug): Ditto.

  • BuildSlaveSupport/ews-app/ews/common/util.py:

(fetch_data_from_url): Log the url to help in debugging any possible issues.

11:12 AM Changeset in webkit [264710] by jer.noble@apple.com
  • 23 edits in trunk

[macOS] Adopt AVPlayer.videoRangeOverride
https://bugs.webkit.org/show_bug.cgi?id=213902
<rdar://problem/63953509>

Reviewed by Youenn Fablet.

Source/WebCore:

AVPlayer.videoRangeOverride and also +[AVPlayer preferredVideoRangeForDisplays:] are replacements for the
process-global MTShouldPlayHDR() and MTOverrideShouldPlayHDRVideo() and should be used preferentially if
present.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::createMediaPlayer):
(WebCore::HTMLMediaElement::setPreferredDynamicRangeMode):

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

(WebCore::Page::screenPropertiesDidChange):
(WebCore::Page::windowScreenDidChange):

  • page/Page.h:
  • platform/PlatformScreen.h:

(WebCore::preferredDynamicRangeMode):

  • platform/ScreenProperties.h:

(WebCore::ScreenData::encode const):
(WebCore::ScreenData::decode):

  • platform/graphics/MediaPlayer.cpp:

(WebCore::MediaPlayer::setPreferredDynamicRangeMode):

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

(WebCore::MediaPlayerPrivateInterface::setPreferredDynamicRangeMode):

  • platform/graphics/avfoundation/objc/CDMSessionAVStreamSession.mm:

(WebCore::CDMSessionAVStreamSession::update):

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

(WebCore::convertDynamicRangeModeEnumToAVVideoRange):
(WebCore::MediaPlayerPrivateAVFoundationObjC::createAVPlayer):
(WebCore::MediaPlayerPrivateAVFoundationObjC::setPreferredDynamicRangeMode):

  • platform/mac/PlatformScreenMac.mm:

(WebCore::convertAVVideoRangeToEnum):
(WebCore::collectScreenProperties):
(WebCore::preferredDynamicRangeMode):

Source/WebCore/PAL:

  • pal/cocoa/AVFoundationSoftLink.h:
  • pal/cocoa/AVFoundationSoftLink.mm:
  • pal/spi/cocoa/AVFoundationSPI.h:

Source/WebKit:

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::screenPropertiesDidChange):

  • WebProcess/cocoa/WebProcessCocoa.mm:

(WebKit::WebProcess::updatePageScreenProperties):

Tools:

  • TestWebKitAPI/Tests/WebCore/cocoa/AVFoundationSoftLinkTest.mm:

(TestWebKitAPI::TEST):

11:00 AM Changeset in webkit [264709] by Alan Coon
  • 3 edits in branches/safari-610.1.23-branch/Source/ThirdParty/libwebrtc

Cherry-pick r264693. rdar://problem/65944676

Unreviewed build fix after r264685; copy headers to the correct path during a DEPLOYMENT_LOCATION build.

  • Configurations/libwebm.xcconfig:
  • libwebrtc.xcodeproj/project.pbxproj:

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

11:00 AM Changeset in webkit [264708] by Alan Coon
  • 34 edits
    5 copies
    9 adds in branches/safari-610.1.23-branch

Cherry-pick r264685. rdar://problem/65944676

[Cocoa] Add experimental MSE WebM parser
https://bugs.webkit.org/show_bug.cgi?id=214529
Source/ThirdParty/libwebrtc:

<rdar://problem/65782467>

Reviewed by Eric Carlson.

Add the vp9_header_parser from libwebrtc to the project, and add its
symbols to the list of exported symbols. Because this header wants to
be installed to a "common/vp9_header_parser.h" path, split up the default
CopyHeadersInstallPhase into two separate CopyFiles build phases that
put headers into different locations.

  • Configurations/libwebm.xcconfig:
  • Configurations/libwebrtc.iOS.exp:
  • Configurations/libwebrtc.iOSsim.exp:
  • Configurations/libwebrtc.mac.exp:
  • Source/third_party/libwebm/common/vp9_header_parser.h: (vp9_parser::Vp9HeaderParser::color_range const): (vp9_parser::Vp9HeaderParser::subsampling_x const): (vp9_parser::Vp9HeaderParser::subsampling_y const):
  • libwebrtc.xcodeproj/project.pbxproj:

Source/WebCore:

Reviewed by Eric Carlson.

Test: media/media-source/media-source-webm.html

Add an experimental MSE WebM parser to SourceBufferPrivateAVFObjC. This will require extensive refactoring
of SourceBufferPrivateAVFObjC, to extract out the parser into a new, virtualized class. This new parser can
take advantage of new C++>11 features such as lambdas to clean up some problematic existing code. The new
virtualized SourceBufferParser class uses passed-in Function objects, rather than pure-virtual Client classes
to notify it's parent object when the parser encounters initialization- or media-data.

Because SourceBufferPrivateAVFObjC will now have to deal with AudioTrackPrivate and VideoTrackPrivate objects
that are not necessarily Audio- and VideoTrackPrivateMediaSourceAVFObjC subclasses, move those classes notification
features up into Audio- and VideoTrackPrivate, again using a Function object rather than a client class.

Add a new SourceBufferParserWebM and associated AudioTrackPrivateWebM and VideoTrackPrivateWebM classes, which
use libwebm via libwebrtc to parse appended buffers. SourceBufferParserWebM feeds passed-in data into a
libwebm-provided parser of its own. It then builds up tracks and samples based on callbacks from that same parser,
constructing CMSampleBuffers and VideoTrackPrivate objects out of the underlying libwebm primitives.

Because WebM uses a UUID as its track identifier, the representation of a "trackID" inside WebCore must be
increased from an int to a uint64_t, or trackIDs will be truncated or zeroed when passed between classes and
when converted to and from AtomStrings.

This early implementation is not yet able to pass the WebM WPT media-source/ tests, as we only have a VP9 decoder
available, and those tests use both VP8 and Vorbis.

  • SourcesCocoa.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • page/RuntimeEnabledFeatures.h: (WebCore::RuntimeEnabledFeatures::setWebMParserEnabled): (WebCore::RuntimeEnabledFeatures::webMParserEnabled const):
  • platform/graphics/AudioTrackPrivate.h: (WebCore::AudioTrackPrivate::setEnabled): (WebCore::AudioTrackPrivate::setEnabledChangedCallback):
  • platform/graphics/VP9Utilities.cpp: (WebCore::isValidVPColorPrimaries): (WebCore::isValidVPTransferCharacteristics): (WebCore::isValidVPMatrixCoefficients): (WebCore::parseVPCodecParameters):
  • platform/graphics/VP9Utilities.h:
  • platform/graphics/VideoTrackPrivate.h: (WebCore::VideoTrackPrivate::setSelected): (WebCore::VideoTrackPrivate::setSelectedChangedCallback):
  • platform/graphics/avfoundation/objc/AudioTrackPrivateMediaSourceAVFObjC.cpp: (WebCore::AudioTrackPrivateMediaSourceAVFObjC::AudioTrackPrivateMediaSourceAVFObjC): (WebCore::AudioTrackPrivateMediaSourceAVFObjC::setEnabled):
  • platform/graphics/avfoundation/objc/AudioTrackPrivateMediaSourceAVFObjC.h:
  • platform/graphics/avfoundation/objc/CDMSessionAVContentKeySession.mm: (WebCore::CDMSessionAVContentKeySession::update):
  • platform/graphics/avfoundation/objc/CDMSessionAVStreamSession.mm: (WebCore::CDMSessionAVStreamSession::update):
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm: (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::supportsType):
  • platform/graphics/avfoundation/objc/MediaSampleAVFObjC.h: (WebCore::MediaSampleAVFObjC::create): (WebCore::MediaSampleAVFObjC::MediaSampleAVFObjC):
  • platform/graphics/avfoundation/objc/MediaSourcePrivateAVFObjC.mm: (WebCore::MediaSourcePrivateAVFObjC::addSourceBuffer):
  • platform/graphics/avfoundation/objc/SourceBufferParserAVFObjC.h: Added. (isType):
  • platform/graphics/avfoundation/objc/SourceBufferParserAVFObjC.mm: Added. (-[WebAVStreamDataParserListener initWithParser:parent:]): (-[WebAVStreamDataParserListener dealloc]): (-[WebAVStreamDataParserListener invalidate]): (-[WebAVStreamDataParserListener streamDataParser:didParseStreamDataAsAsset:]): (-[WebAVStreamDataParserListener streamDataParser:didParseStreamDataAsAsset:withDiscontinuity:]): (-[WebAVStreamDataParserListener streamDataParser:didFailToParseStreamDataWithError:]): (-[WebAVStreamDataParserListener streamDataParser:didProvideMediaData:forTrackID:mediaType:flags:]): (-[WebAVStreamDataParserListener streamDataParserWillProvideContentKeyRequestInitializationData:forTrackID:]): (-[WebAVStreamDataParserListener streamDataParser:didProvideContentKeyRequestInitializationData:forTrackID:]): (WebCore::SourceBufferParserAVFObjC::isContentTypeSupported): (WebCore::SourceBufferParserAVFObjC::SourceBufferParserAVFObjC): (WebCore::SourceBufferParserAVFObjC::~SourceBufferParserAVFObjC): (WebCore::SourceBufferParserAVFObjC::appendData): (WebCore::SourceBufferParserAVFObjC::flushPendingMediaData): (WebCore::SourceBufferParserAVFObjC::setShouldProvideMediaDataForTrackID): (WebCore::SourceBufferParserAVFObjC::shouldProvideMediadataForTrackID): (WebCore::SourceBufferParserAVFObjC::resetParserState): (WebCore::SourceBufferParserAVFObjC::didParseStreamDataAsAsset): (WebCore::SourceBufferParserAVFObjC::didFailToParseStreamDataWithError): (WebCore::SourceBufferParserAVFObjC::didProvideMediaDataForTrackID): (WebCore::SourceBufferParserAVFObjC::willProvideContentKeyRequestInitializationDataForTrackID): (WebCore::SourceBufferParserAVFObjC::didProvideContentKeyRequestInitializationDataForTrackID):
  • platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.h:
  • platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm: (WebCore::SourceBufferPrivateAVFObjC::create): (WebCore::SourceBufferPrivateAVFObjC::SourceBufferPrivateAVFObjC): (WebCore::SourceBufferPrivateAVFObjC::~SourceBufferPrivateAVFObjC): (WebCore::SourceBufferPrivateAVFObjC::didParseInitializationData): (WebCore::SourceBufferPrivateAVFObjC::didEncounterErrorDuringParsing): (WebCore::SourceBufferPrivateAVFObjC::didProvideMediaDataForTrackID): (WebCore::SourceBufferPrivateAVFObjC::willProvideContentKeyRequestInitializationDataForTrackID): (WebCore::SourceBufferPrivateAVFObjC::didProvideContentKeyRequestInitializationDataForTrackID): (WebCore::SourceBufferPrivateAVFObjC::append): (WebCore::SourceBufferPrivateAVFObjC::appendCompleted): (WebCore::SourceBufferPrivateAVFObjC::abort): (WebCore::SourceBufferPrivateAVFObjC::resetParserState): (WebCore::SourceBufferPrivateAVFObjC::destroyParser): (WebCore::SourceBufferPrivateAVFObjC::clearTracks): (WebCore::SourceBufferPrivateAVFObjC::hasSelectedVideo const): (WebCore::SourceBufferPrivateAVFObjC::trackDidChangeSelected): (WebCore::SourceBufferPrivateAVFObjC::trackDidChangeEnabled): (WebCore::SourceBufferPrivateAVFObjC::parser const): (WebCore::SourceBufferPrivateAVFObjC::attemptToDecrypt): (WebCore::SourceBufferPrivateAVFObjC::flush): (WebCore::SourceBufferPrivateAVFObjC::enqueueSample): (WebCore::SourceBufferPrivateAVFObjC::isReadyForMoreSamples): (WebCore::SourceBufferPrivateAVFObjC::didBecomeReadyForMoreSamples): (WebCore::SourceBufferPrivateAVFObjC::notifyClientWhenReadyForMoreSamples): (WebCore::SourceBufferPrivateAVFObjC::canSetMinimumUpcomingPresentationTime const):
  • platform/graphics/avfoundation/objc/VideoTrackPrivateMediaSourceAVFObjC.h:
  • platform/graphics/avfoundation/objc/VideoTrackPrivateMediaSourceAVFObjC.mm: (WebCore::VideoTrackPrivateMediaSourceAVFObjC::VideoTrackPrivateMediaSourceAVFObjC):
  • platform/graphics/cocoa/AudioTrackPrivateWebM.cpp: Copied from Source/WebCore/platform/graphics/cocoa/VP9UtilitiesCocoa.h. (WebCore::AudioTrackPrivateWebM::create): (WebCore::AudioTrackPrivateWebM::AudioTrackPrivateWebM): (WebCore::AudioTrackPrivateWebM::id const): (WebCore::AudioTrackPrivateWebM::label const): (WebCore::AudioTrackPrivateWebM::language const): (WebCore::AudioTrackPrivateWebM::trackIndex const):
  • platform/graphics/cocoa/AudioTrackPrivateWebM.h: Copied from Source/WebCore/platform/graphics/cocoa/VP9UtilitiesCocoa.h.
  • platform/graphics/cocoa/SourceBufferParser.cpp: Copied from Source/WebCore/platform/graphics/cocoa/VP9UtilitiesCocoa.h. (WebCore::SourceBufferParser::isContentTypeSupported): (WebCore::SourceBufferParser::create):
  • platform/graphics/cocoa/SourceBufferParser.h: Added. (WebCore::SourceBufferParser::setDidParseInitializationDataCallback): (WebCore::SourceBufferParser::setDidEncounterErrorDuringParsingCallback): (WebCore::SourceBufferParser::setDidProvideMediaDataCallback): (WebCore::SourceBufferParser::setWillProvideContentKeyRequestInitializationDataForTrackIDCallback): (WebCore::SourceBufferParser::setDidProvideContentKeyRequestInitializationDataForTrackIDCallback):
  • platform/graphics/cocoa/SourceBufferParserWebM.cpp: Added. (WebCore::isWebmParserAvailable): (WebCore::SourceBufferParserWebM::isContentTypeSupported): (WebCore::SourceBufferParserWebM::SourceBufferParserWebM): (WebCore::SourceBufferParserWebM::appendData): (WebCore::SourceBufferParserWebM::flushPendingMediaData): (WebCore::SourceBufferParserWebM::setShouldProvideMediaDataForTrackID): (WebCore::SourceBufferParserWebM::shouldProvideMediadataForTrackID): (WebCore::SourceBufferParserWebM::resetParserState): (WebCore::SourceBufferParserWebM::trackDataForTrackNumber): (WebCore::SourceBufferParserWebM::OnElementBegin): (WebCore::SourceBufferParserWebM::OnEbml): (WebCore::SourceBufferParserWebM::OnSegmentBegin): (WebCore::SourceBufferParserWebM::OnInfo): (WebCore::SourceBufferParserWebM::OnClusterBegin): (WebCore::SourceBufferParserWebM::OnTrackEntry): (WebCore::SourceBufferParserWebM::OnBlockBegin): (WebCore::SourceBufferParserWebM::OnBlockEnd): (WebCore::SourceBufferParserWebM::OnSimpleBlockBegin): (WebCore::SourceBufferParserWebM::OnSimpleBlockEnd): (WebCore::SourceBufferParserWebM::OnBlockGroupBegin): (WebCore::SourceBufferParserWebM::OnBlockGroupEnd): (WebCore::convertToColorPrimaries): (WebCore::convertToTransferCharacteristics): (WebCore::convertToMatrixCoefficients): (WebCore::convertSubsamplingXYToChromaSubsampling): (WebCore::createFormatDescriptionFromVP9HeaderParser): (WebCore::SourceBufferParserWebM::OnFrame):
  • platform/graphics/cocoa/SourceBufferParserWebM.h: Added. (WebCore::SourceBufferParserWebM::status const): (WebCore::SourceBufferParserWebM::type const): (isType):
  • platform/graphics/cocoa/VP9UtilitiesCocoa.h:
  • platform/graphics/cocoa/VP9UtilitiesCocoa.mm: (WebCore::isVP9DecoderAvailable): (WebCore::validateVPParameters):
  • platform/graphics/cocoa/VideoTrackPrivateWebM.cpp: (WebCore::VideoTrackPrivateWebM::create): (WebCore::VideoTrackPrivateWebM::VideoTrackPrivateWebM): (WebCore::VideoTrackPrivateWebM::id const): (WebCore::VideoTrackPrivateWebM::label const): (WebCore::VideoTrackPrivateWebM::language const): (WebCore::VideoTrackPrivateWebM::trackIndex const):
  • platform/graphics/cocoa/VideoTrackPrivateWebM.h:

Source/WebKit:

<rdar://problem/65782467>

Reviewed by Eric Carlson.

Add an Experimental setting to enable the MSE WebM parser (off by default).

  • Shared/WebPreferences.yaml:

LayoutTests:

<rdar://problem/65782467>

Reviewed by Eric Carlson.

  • media/media-source/content/test-vp9-manifest.json: Added.
  • media/media-source/content/test-vp9.webm: Added.
  • media/media-source/media-source-webm-expected.txt: Added.
  • media/media-source/media-source-webm.html: Added.

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

11:00 AM Changeset in webkit [264707] by Alan Coon
  • 2 edits in branches/safari-610.1.23-branch/Source/WebKit

Cherry-pick r264678. rdar://problem/65944685

[macOS] Layout tests exiting early with crashes
https://bugs.webkit.org/show_bug.cgi?id=214612
<rdar://problem/65897905>

Reviewed by Brent Fulgham.

This is caused by the WebContent process making a syscall not allowed by the sandbox.

  • WebProcess/com.apple.WebProcess.sb.in:

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

11:00 AM Changeset in webkit [264706] by Alan Coon
  • 8 edits in branches/safari-610.1.23-branch/Source

Cherry-pick r264659. rdar://problem/65944694

[Cocoa] Adopt VTRegisterSupplementalVideoDecoderIfAvailable
https://bugs.webkit.org/show_bug.cgi?id=214585
<rdar://problem/65863651>

Reviewed by Youenn Fablet.

Source/WebCore:

  • WebCore.xcodeproj/project.pbxproj:
  • platform/cocoa/VideoToolboxSoftLink.cpp:
  • platform/cocoa/VideoToolboxSoftLink.h:
  • platform/graphics/cocoa/VP9UtilitiesCocoa.h:
  • platform/graphics/cocoa/VP9UtilitiesCocoa.mm: (WebCore::registerSupplementalVP9Decoder):

Source/WebKit:

  • WebProcess/WebProcess.cpp: (WebKit::WebProcess::enableVP9Decoder):

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

10:51 AM Changeset in webkit [264705] by Jon Davis
  • 2 edits in trunk/Source/WebCore

Update status for Web App Manifest
https://bugs.webkit.org/show_bug.cgi?id=204863

Reviewed by Dean Jackson.

  • features.json:
10:48 AM Changeset in webkit [264704] by Simon Fraser
  • 17 edits
    4 adds in trunk

Scrolling tesla.com on iPad is not smooth
https://bugs.webkit.org/show_bug.cgi?id=214627
Source/WebCore:

Reviewed by Tim Horton.

This is the iOS equivalent of the fix in r264203; if the user is scrolling (or we're animating for
scroll snap), layout should not trigger scroll position changes via computation of the current snap
location.

To fix this, we need to send data from the UI process to the web process about which scrolling tree
nodes the user is scrolling. That's done via RemoteScrollingUIState, which will, in the long term,
become a more general UI -> WebProcess scrolling state updating mechanism. For now, it just keeps
track of nodes undergoing scroll snap and user scrolls (only the latter is hooked up for now).

Test: fast/scrolling/ios/adjust-scroll-snap-during-gesture.html

  • page/scrolling/AsyncScrollingCoordinator.h:
  • page/scrolling/ScrollingTree.h:

(WebCore::ScrollingTree::scrollingTreeNodeWillStartPanGesture):
(WebCore::ScrollingTree::scrollingTreeNodeWillStartScroll):
(WebCore::ScrollingTree::scrollingTreeNodeDidEndScroll):

Source/WebKit:

<rdar://problem/65568979>

Reviewed by Tim Horton.

This is the iOS equivalent of the fix in r264203; if the user is scrolling (or we're animating for
scroll snap), layout should not trigger scroll position changes via computation of the current snap
location.

To fix this, we need to send data from the UI process to the web process about which scrolling tree
nodes the user is scrolling. That's done via RemoteScrollingUIState, which will, in the long term,
become a more general UI -> WebProcess scrolling state updating mechanism. For now, it just keeps
track of nodes undergoing scroll snap and user scrolls (only the latter is hooked up for now).

  • Shared/RemoteLayerTree/RemoteScrollingUIState.cpp: Added.

(WebKit::RemoteScrollingUIState::encode const):
(WebKit::RemoteScrollingUIState::decode):
(WebKit::RemoteScrollingUIState::addNodeWithActiveScrollSnap):
(WebKit::RemoteScrollingUIState::removeNodeWithActiveScrollSnap):
(WebKit::RemoteScrollingUIState::addNodeWithActiveUserScroll):
(WebKit::RemoteScrollingUIState::removeNodeWithActiveUserScroll):

  • Shared/RemoteLayerTree/RemoteScrollingUIState.h: Added.

(WebKit::RemoteScrollingUIState::changes const):
(WebKit::RemoteScrollingUIState::clearChanges):
(WebKit::RemoteScrollingUIState::nodesWithActiveScrollSnap const):
(WebKit::RemoteScrollingUIState::nodesWithActiveUserScrolls const):

  • SourcesCocoa.txt:
  • UIProcess/RemoteLayerTree/RemoteScrollingCoordinatorProxy.cpp:

(WebKit::RemoteScrollingCoordinatorProxy::RemoteScrollingCoordinatorProxy):
(WebKit::RemoteScrollingCoordinatorProxy::sendUIStateChangedIfNecessary):

  • UIProcess/RemoteLayerTree/RemoteScrollingCoordinatorProxy.h:
  • UIProcess/RemoteLayerTree/RemoteScrollingTree.cpp:

(WebKit::RemoteScrollingTree::scrollingTreeNodeWillStartPanGesture):
(WebKit::RemoteScrollingTree::scrollingTreeNodeWillStartScroll):
(WebKit::RemoteScrollingTree::scrollingTreeNodeDidEndScroll):

  • UIProcess/RemoteLayerTree/RemoteScrollingTree.h:
  • UIProcess/RemoteLayerTree/ios/RemoteScrollingCoordinatorProxyIOS.mm:

(WebKit::RemoteScrollingCoordinatorProxy::scrollViewForScrollingNodeID const):
(WebKit::RemoteScrollingCoordinatorProxy::scrollingTreeNodeWillStartPanGesture):
(WebKit::RemoteScrollingCoordinatorProxy::scrollingTreeNodeWillStartScroll):
(WebKit::RemoteScrollingCoordinatorProxy::scrollingTreeNodeDidEndScroll):

  • UIProcess/RemoteLayerTree/ios/ScrollingTreeScrollingNodeDelegateIOS.mm:

(WebKit::ScrollingTreeScrollingNodeDelegateIOS::scrollWillStart const):
(WebKit::ScrollingTreeScrollingNodeDelegateIOS::scrollDidEnd const):
(WebKit::ScrollingTreeScrollingNodeDelegateIOS::scrollViewWillStartPanGesture const):

  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/WebPage/RemoteLayerTree/RemoteScrollingCoordinator.h:
  • WebProcess/WebPage/RemoteLayerTree/RemoteScrollingCoordinator.messages.in:
  • WebProcess/WebPage/RemoteLayerTree/RemoteScrollingCoordinator.mm:

(WebKit::RemoteScrollingCoordinator::isUserScrollInProgress const):
(WebKit::RemoteScrollingCoordinator::isScrollSnapInProgress const):
(WebKit::RemoteScrollingCoordinator::scrollingStateInUIProcessChanged):

LayoutTests:

<rdar://problem/65568979>

Reviewed by Tim Horton.

  • fast/scrolling/ios/adjust-scroll-snap-during-gesture-expected.txt: Added.
  • fast/scrolling/ios/adjust-scroll-snap-during-gesture.html: Added.
10:17 AM Changeset in webkit [264703] by commit-queue@webkit.org
  • 3 edits in trunk/JSTests

Skip failing intl tests on ARM
https://bugs.webkit.org/show_bug.cgi?id=214638

Unreviewed Gardening.

Patch by Angelos Oikonomopoulos <Angelos Oikonomopoulos> on 2020-07-22

  • stress/intl-displaynames.js:
  • stress/intl-parse-unicode-subtags.js:
9:51 AM Changeset in webkit [264702] by Truitt Savell
  • 2 edits in trunk/LayoutTests

[ macOS ] imported/w3c/web-platform-tests/css/css-pseudo/marker-hit-testing.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=214643

Unreviewed test gardening.

Patch by Hector Lopez <Hector Lopez> on 2020-07-22

  • platform/mac/TestExpectations:
9:28 AM Changeset in webkit [264701] by ddkilzer@apple.com
  • 3 edits in trunk/Source/WebKit

[IPC hardening] WebKit::ObjCObjectGraph::decode() and encode() should use enum ObjCType type
<https://webkit.org/b/214618>
<rdar://problem/65777899>

Reviewed by Youenn Fablet.

  • Shared/mac/ObjCObjectGraph.h:
  • Drive-by fix to use #pragma once. This is included in some plain C++ source files.
  • Shared/mac/ObjCObjectGraph.mm:

(WebKit::ObjCType):

  • Move enum definition to the top of the file so that the EnumTraits<> can be defined after it, but before it's used.

(WTF::EnumTraits<WebKit::ObjCType>): Add.

  • Define so that IPC::Decoder and IPC::Encoder can validate enum values.

(WebKit::ObjCObjectGraph::encode):

  • Encode using WebKit::ObjCType value.
  • Add ObjCType::Null label so that default: label can be removed. Change break statements to early return statements.
  • Move ASSERT_NOT_REACHED() to the end of the method.

(WebKit::ObjCObjectGraph::decode):

  • Decode using WebKit::ObjCType value.
  • Change break statements to early return statements.
  • Remove default: label, and move return false to the end of the method. Add ASSERT_NOT_REACHED().
9:21 AM Changeset in webkit [264700] by commit-queue@webkit.org
  • 13 edits in trunk

Unreviewed, reverting r264691.
https://bugs.webkit.org/show_bug.cgi?id=214642

Regressed fast/mediastream/captureStream/canvas3d.html

Reverted changeset:

"[WebGL2] Implement multiple render target entry points"
https://bugs.webkit.org/show_bug.cgi?id=211156
https://trac.webkit.org/changeset/264691

9:09 AM Changeset in webkit [264699] by Megan Gardner
  • 2 edits in trunk/Source/WebKit

Tapped DataDetected links present sub-menus from the wrong location.
https://bugs.webkit.org/show_bug.cgi?id=214628
<rdar://problem/64808642>

When getting the positionInformation associated with presenting DataDetectors UI
we were not indicating that we need the linkIndicator data. This caused the
resulting CGRect to not be filled out, and we were returning a zeroed out CGRect
to the DataDetectors framework for the location that it should present the subMenu from.
Setting this bit ensures that all the necessary data is calculated and returned
when a DataDetector link is tapped.

Reviewed by Wenson Hsieh.

  • WebProcess/WebCoreSupport/ios/WebChromeClientIOS.mm:

(WebKit::WebChromeClient::showDataDetectorsUIForElement):

8:59 AM Changeset in webkit [264698] by youenn@apple.com
  • 3 edits
    3 adds in trunk

KeepAlive fetch should not be blocked in pagehide event handlers
https://bugs.webkit.org/show_bug.cgi?id=214630
<rdar://problem/65564772>

Reviewed by Chris Dumez.

Source/WebCore:

Test: http/wpt/fetch/fetch-in-pagehide.html

  • loader/cache/CachedResource.cpp:

(WebCore::CachedResource::load):
Allow keep alive fetches to proceed similarly to ping loads.

LayoutTests:

  • http/wpt/fetch/fetch-in-pagehide-expected.txt: Added.
  • http/wpt/fetch/fetch-in-pagehide.html: Added.
  • http/wpt/fetch/resources/fetch-in-pagehide-window.html: Added.
8:23 AM Changeset in webkit [264697] by Jonathan Bedard
  • 1 edit
    1 delete in trunk/Tools

[webkitpy] Remove version.py
https://bugs.webkit.org/show_bug.cgi?id=214580

Reviewed by Darin Adler.

  • Scripts/webkitpy/common/version.py: Removed.
8:07 AM Changeset in webkit [264696] by ggaren@apple.com
  • 10 edits in trunk/Source

JSRunLoopTimer should use WTF::RunLoop rather than custom CF code
https://bugs.webkit.org/show_bug.cgi?id=214102

Unreviewed, re-landing r264242 with crash fixed.

Source/JavaScriptCore:

We needed to synchronize timer destruction with timer firing.

  • runtime/DeferredWorkTimer.cpp:

(JSC::DeferredWorkTimer::doWork):
(JSC::DeferredWorkTimer::runRunLoop):

  • runtime/JSRunLoopTimer.cpp:

(JSC::epochTime):
(JSC::JSRunLoopTimer::Manager::PerVMData::PerVMData):
(JSC::JSRunLoopTimer::Manager::timerDidFireCallback):
(JSC::JSRunLoopTimer::Manager::PerVMData::~PerVMData):
(JSC::JSRunLoopTimer::Manager::timerDidFire):
(JSC::JSRunLoopTimer::Manager::registerVM):
(JSC::JSRunLoopTimer::Manager::scheduleTimer):
(JSC::JSRunLoopTimer::Manager::cancelTimer):
(JSC::JSRunLoopTimer::Manager::PerVMData::setRunLoop): Deleted.
(JSC::JSRunLoopTimer::Manager::didChangeRunLoop): Deleted.

  • runtime/JSRunLoopTimer.h:

(JSC::JSRunLoopTimer::Manager::PerVMData::PerVMData): Deleted.

  • runtime/VM.cpp:

(JSC::VM::VM):
(JSC::VM::create):
(JSC::VM::tryCreate):
(JSC::VM::setRunLoop): Deleted.

  • runtime/VM.h:

(JSC::VM::runLoop const):

Source/WebCore:

Since I was here, I applied Darin's previous review feedback that I had
missed.

  • bindings/js/CommonVM.cpp:

(WebCore::commonVMSlow):

Source/WTF:

To support JSC using external locking around a RunLoop timer, we needed
to avoid modifying unsynchronized timer state while firing.

  • wtf/cf/RunLoopCF.cpp:

(WTF::RunLoop::TimerBase::start):

6:30 AM BuildingGtk edited by clopez@igalia.com
(diff)
6:29 AM BuildingGtk edited by clopez@igalia.com
(diff)
5:22 AM Changeset in webkit [264695] by Diego Pino Garcia
  • 5 edits
    1 add in trunk/LayoutTests

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

  • platform/glib/TestExpectations:
  • platform/glib/imported/w3c/web-platform-tests/encoding/eof-shift_jis-expected.txt: Added.
  • platform/gtk/TestExpectations:
  • platform/gtk/imported/w3c/web-platform-tests/css/css-sizing/percentage-height-in-flexbox-expected.txt:
  • platform/wpe/TestExpectations:
4:33 AM BuildingGtk edited by clopez@igalia.com
(diff)
3:47 AM Changeset in webkit [264694] by Carlos Garcia Campos
  • 5 edits in trunk

[GTK][WPE] ITP: use the database store unconditionally
https://bugs.webkit.org/show_bug.cgi?id=214590

Reviewed by Adrian Perez de Castro.

Source/WebKit:

The memory store is now considered legacy.

  • NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp:

(WebKit::ResourceLoadStatisticsDatabaseStore::ResourceLoadStatisticsDatabaseStore): Use
FileSystem::pathByAppendingComponent() to create the database path.
(WebKit::ResourceLoadStatisticsDatabaseStore::openITPDatabase): Ensure the directory exists before trying to
open the database.

  • UIProcess/soup/WebProcessPoolSoup.cpp:

(WebKit::WebProcessPool::platformInitializeNetworkProcess): Always enable the ITP databae by default.

Tools:

Update the unit test to monitor the database file instead of the old log file.

  • TestWebKitAPI/Tests/WebKitGLib/TestWebsiteData.cpp:

(testWebsiteDataITP):

Note: See TracTimeline for information about the timeline view.