Timeline



Aug 1, 2020:

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

Remove superfluous ResourceTiming constructor overload
https://bugs.webkit.org/show_bug.cgi?id=215063

Patch by Rob Buis <rbuis@igalia.com> on 2020-08-01
Reviewed by Sam Weinig.

Remove superfluous ResourceTiming constructor overload, we
can just call another overload from ResourceTiming::fromLoad.

  • loader/ResourceTiming.cpp:

(WebCore::ResourceTiming::fromLoad):

  • loader/ResourceTiming.h:
8:19 PM Changeset in webkit [265184] by Darin Adler
  • 2 edits in trunk/LayoutTests

Remove test expectation for a WPT test that was removed
https://bugs.webkit.org/show_bug.cgi?id=215066
rdar://42904780

Reviewed by Sam Weinig.

  • platform/mac-wk1/TestExpectations: Removed failure expectation for

a WPT WebCryptoAPI test that no longer exists.

7:53 PM Changeset in webkit [265183] by beidson@apple.com
  • 11 edits
    1 copy
    3 adds in trunk

Special HID mapping for the Logitech F310/F710 controllers.
https://bugs.webkit.org/show_bug.cgi?id=215050

Reviewed by Tim Horton.

Source/WebCore:

Covered by API test.

These two controllers match the standard mapping perfectly. Easy to support.

  • SourcesCocoa.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • platform/gamepad/KnownGamepads.h:
  • platform/gamepad/mac/GamepadConstantsMac.h:
  • platform/gamepad/mac/HIDGamepad.cpp:

(WebCore::HIDGamepad::create):

  • platform/gamepad/mac/HIDGamepadElement.cpp:

(WebCore::HIDGamepadElement::HIDGamepadElement):

  • platform/gamepad/mac/HIDGamepadElement.h:

(WebCore::HIDGamepadElement::isAxis const):

  • platform/gamepad/mac/LogitechGamepad.cpp: Added.

(WebCore::LogitechGamepadHatswitch::gamepadValueChanged):
(WebCore::LogitechGamepad::LogitechGamepad):

  • platform/gamepad/mac/LogitechGamepad.h:

Tools:

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

(TestWebKitAPI::publishReportCallback):
(TestWebKitAPI::VirtualGamepad::logitechF310Mapping):

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

(TestWebKitAPI::publishReportCallback):
(TestWebKitAPI::VirtualGamepad::logitechF710Mapping):

  • TestWebKitAPI/mac/VirtualGamepad.h:
6:50 PM Changeset in webkit [265182] by jh718.park@samsung.com
  • 2 edits in trunk/Source/WebCore

Unreviewed. Remove the build warnings below since r265150.
warning: unused parameter ‘foo’ [-Wunused-parameter]

No new tests, no new behaviors.

  • workers/service/server/SWServerJobQueue.cpp:

(WebCore::doCertificatesMatch):

6:18 PM Changeset in webkit [265181] by Darin Adler
  • 3 edits in trunk/Source/WebKit

Fix and further refine makefile rule for WebKit messages generated files
https://bugs.webkit.org/show_bug.cgi?id=215064

Reviewed by Sam Weinig.

  • DerivedSources-output.xcfilelist: Updated for a file that was omitted

because of a typo in the makefile.

  • DerivedSources.make: Fix "addsufix" typo and reorganized things a bit.
3:55 PM Changeset in webkit [265180] by beidson@apple.com
  • 13 edits
    1 copy
    2 adds in trunk

Special HID mapping for the Google Stadia controller
https://bugs.webkit.org/show_bug.cgi?id=215061

Reviewed by Tim Horton.

Source/WebCore:

New API test coverage.

  • SourcesCocoa.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • platform/gamepad/GamepadConstants.h:
  • platform/gamepad/KnownGamepads.h:
  • platform/gamepad/mac/GamepadConstantsMac.h:
  • platform/gamepad/mac/HIDGamepad.cpp:

(WebCore::HIDGamepad::create):

  • platform/gamepad/mac/HIDGamepadElement.cpp:

(WebCore::HIDGamepadElement::HIDGamepadElement):
(WebCore::HIDGamepadHatswitch::gamepadValueChanged):
(WebCore::HIDGamepadHatswitch::normalizedValue):

  • platform/gamepad/mac/HIDGamepadElement.h:

(WebCore::HIDGamepadElement::isAxis const):
(WebCore::HIDGamepadHatswitch::HIDGamepadHatswitch):

  • platform/gamepad/mac/StadiaHIDGamepad.cpp: Added.

(WebCore::StadiaHIDGamepad::StadiaHIDGamepad):

  • platform/gamepad/mac/StadiaHIDGamepad.h:

Tools:

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

(TestWebKitAPI::publishReportCallback):

(TestWebKitAPI::VirtualGamepad::googleStadiaMapping):

  • TestWebKitAPI/mac/VirtualGamepad.h:
2:48 PM Changeset in webkit [265179] by commit-queue@webkit.org
  • 7 edits in trunk/Source

Unreviewed, reverting r265097, r265113, and r265122.
https://bugs.webkit.org/show_bug.cgi?id=215065

Broke AppleSilicon Big Sur

Reverted changesets:

"Strip pointers instead of authing for byteOffset to not allow
for a possible way to guess data pac"
https://bugs.webkit.org/show_bug.cgi?id=214952
https://trac.webkit.org/changeset/265097

"Compute number of PAC bits from what the OS says its address
space is"
https://bugs.webkit.org/show_bug.cgi?id=214986
https://trac.webkit.org/changeset/265113

"Remove UB from nonPACBitsMask computation"
https://bugs.webkit.org/show_bug.cgi?id=214996
https://trac.webkit.org/changeset/265122

10:54 AM Changeset in webkit [265178] by Keith Rollin
  • 2 edits in trunk/Source/WebKit

Prevent multiple invocations of generate-message-receiver.py
https://bugs.webkit.org/show_bug.cgi?id=215054

Reviewed by Darin Adler.

WebKit/DerivedSources.make is written such that
generate-message-receiver.py can be invoked N times, where N is the
value passed to -j. This results in the N invocations of
generate-message-receiver.py trying trying to generate the same set of
files at the same time, possibly leading to their being corrupted. We
have reports of generated files starting with a 4K block of NULs, and
this contention may be causing it. Address this by using a "pattern
rule" in the makefile, which is documented in GNU make's documentation
as the approach to take when there is one build rule that creates
multiple outputs, as is the case here.

See also <https://bugs.webkit.org/show_bug.cgi?id=166814> and
<http://trac.webkit.org/changeset/210507>.

No new tests -- no new or changed functionality.

  • DerivedSources.make:
10:51 AM Changeset in webkit [265177] by weinig@apple.com
  • 3 edits in trunk/Source/WebCore

Convert LinkHeader to use StringParsingBuffer
https://bugs.webkit.org/show_bug.cgi?id=215017

Reviewed by Darin Adler.

Update LinkHeader parsing to use StringParsingBuffer and do some light cleanup.

  • loader/LinkHeader.cpp:

(WebCore::isSpaceOrTab):
(WebCore::isNotURLTerminatingChar):
(WebCore::isValidParameterNameChar):
(WebCore::isParameterValueEnd):
(WebCore::isParameterValueChar):
(WebCore::findURLBoundaries):
(WebCore::invalidParameterDelimiter):
(WebCore::validFieldEnd):
(WebCore::parseParameterDelimiter):
(WebCore::paramterNameFromString):
(WebCore::parseParameterName):
(WebCore::skipQuotesIfNeeded):
(WebCore::parseParameterValue):
(WebCore::findNextHeader):
(WebCore::LinkHeader::LinkHeader):
(WebCore::LinkHeaderSet::LinkHeaderSet):
(WebCore::LinkHeaderSet::init): Deleted.

  • loader/LinkHeader.h:
8:50 AM Changeset in webkit [265176] by Darin Adler
  • 64 edits in trunk/Source

Remove Range::create and many more uses of live ranges
https://bugs.webkit.org/show_bug.cgi?id=215004

Reviewed by Sam Weinig.

Source/WebCore:

  • accessibility/AccessibilityRenderObject.cpp:

(WebCore::AccessibilityRenderObject::boundsForVisiblePositionRange const):
Use makeSimpleRange.

  • accessibility/atk/AXObjectCacheAtk.cpp:

(WebCore::AXObjectCache::nodeTextChangePlatformNotification): Use SimpleRange.

  • accessibility/atk/WebKitAccessibleHyperlink.cpp:

(rangeLengthForObject): Take SimpleRange.
(webkitAccessibleHyperlinkGetStartIndex): Use makeSimpleRange.
(webkitAccessibleHyperlinkGetEndIndex): Ditto.

  • accessibility/atk/WebKitAccessibleInterfaceText.cpp:

(getSelectionOffsetsForObject): Ditto.

  • accessibility/atk/WebKitAccessibleUtil.cpp:

(objectFocusedAndCaretOffsetUnignored): Ditto.

  • accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:

(+[WebAccessibilityTextMarker startOrEndTextMarkerForRange:isStart:cache:]):
Take SimpleRange.
(-[WebAccessibilityObjectWrapper arrayOfTextForTextMarkers:attributed:]):
Use makeSimpleRange.
(-[WebAccessibilityObjectWrapper _convertToDOMRange:]): Return SimpleRange.
(-[WebAccessibilityObjectWrapper textMarkerRange]): Remove createLiveRange.
(-[WebAccessibilityObjectWrapper textMarkerForPosition:]): Use auto.
(-[WebAccessibilityObjectWrapper misspellingTextMarkerRange:forward:]):
Remove createLiveRange.
(-[WebAccessibilityObjectWrapper rangeFromMarkers:withText:]): Return SimpleRange.
(-[WebAccessibilityObjectWrapper textRectsFromMarkers:withText:]): Add createLiveRange.
(-[WebAccessibilityObjectWrapper rangeForTextMarkers:]): Return SimpleRange.
(-[WebAccessibilityObjectWrapper startOrEndTextMarkerForTextMarkers:isStart:]):
Use auto.
(-[WebAccessibilityObjectWrapper textMarkerRangeForMarkers:]): Get rid of local.
(-[WebAccessibilityObjectWrapper textMarkersForRange:]): Take SimpleRange.

  • accessibility/mac/WebAccessibilityObjectWrapperMac.mm:

(accessibilityTextOperationForParameterizedAttribute): Remove makeSimpleRange.
(accessibilityMisspellingSearchCriteriaForParameterizedAttribute): Return SimpleRange.
(-[WebAccessibilityObjectWrapper textMarkerRangeFromRange:]): Take SimpleRange.
(textMarkerRangeFromRange): Ditto.
(-[WebAccessibilityObjectWrapper startOrEndTextMarkerForRange:isStart:]): Ditto.
(startOrEndTextmarkerForRange): Return SimpleRange.
(-[WebAccessibilityObjectWrapper rangeForTextMarkerRange:]): Ditto.
(-[WebAccessibilityObjectWrapper doAXAttributedStringForTextMarkerRange:spellCheck:]):
Use auto.
(-[WebAccessibilityObjectWrapper doAXAttributedStringForRange:]): Remove createLiveRange.
(-[WebAccessibilityObjectWrapper textMarkerRangeAtTextMarker:forUnit:]): Ditto.
(-[WebAccessibilityObjectWrapper accessibilityAttributeValue:forParameter:]): Ditto.

  • dom/DocumentMarkerController.cpp:

(WebCore::updateRenderedRectsForMarker): Use document marker range function.
(WebCore::range): Added.

  • dom/DocumentMarkerController.h: Update for above.
  • dom/Position.cpp: Removed unneeded Range.h include.
  • dom/Range.cpp:

(WebCore::Range::Range): Removed unused overload that takes start/end.
(WebCore::Range::create): Removed overloads that take start/end.
(WebCore::Range::setStart): Removed overload that takes Position.
(WebCore::Range::setEnd): Ditto.
(WebCore::Range::cloneRange const): Rewrote to use setStart/End since
that's what the constructor used to do.
(WebCore::Range::contains const): Use SimpleRange/createLiveRange
instead of makeRange. Soon this function will be deleted.
(WebCore::rangeOfContents): Deleted.
(WebCore::createLiveRange): Rewrote to use setStart/End since that's
what the constructor used to do.

  • dom/Range.h: Update for above removals.
  • dom/SimpleRange.h: Export commonInclusiveAncestor for use outside WebCore.
  • dom/StaticRange.cpp:

(WebCore::StaticRange::create): Added overload that copies the SimpleRange.

  • dom/StaticRange.h: Update for above.
  • editing/AlternativeTextController.cpp:

(WebCore::AlternativeTextController::respondToMarkerAtEndOfWord): Use document
marker range function.

  • editing/ApplyStyleCommand.cpp:

(WebCore::ApplyStyleCommand::fixRangeAndApplyInlineStyle): Use makeSimpleRange.

  • editing/DeleteSelectionCommand.cpp:

(WebCore::DeleteSelectionCommand::mergeParagraphs): Ditto.
(WebCore::DeleteSelectionCommand::originalStringForAutocorrectionAtBeginningOfSelection):
Ditto.

  • editing/EditingStyle.cpp:

(WebCore::EditingStyle::textDirectionForSelection): Use makeSimpleRange and
intersectingNodes.

  • editing/Editor.cpp:

(WebCore::Editor::replaceSelectionWithFragment): Use makeRangeSelectingNodeContents.
(WebCore::Editor::updateMarkersForWordsAffectedByEditing): Use makeSimpleRange.
(WebCore::Editor::transpose): Ditto.
(WebCore::Editor::rangeOfString): Use makeRangeSelectingNodeContents.
(WebCore::Editor::handleAcceptedCandidate): Update since rangeForTextCheckingResult
now returns an Optional<SimpleRange>.

  • editing/FrameSelection.cpp:

(WebCore::FrameSelection::selectRangeOnElement): Use SimpleRange.

  • editing/ReplaceRangeWithTextCommand.cpp:

(WebCore::ReplaceRangeWithTextCommand::ReplaceRangeWithTextCommand): Take
SimpleRange.
(WebCore::ReplaceRangeWithTextCommand::willApplyCommand): Update since
m_rangeToBeReplaced is a SimpleRange.
(WebCore::ReplaceRangeWithTextCommand::doApply): Ditto.
(WebCore::ReplaceRangeWithTextCommand::targetRanges const): Ditto.

  • editing/ReplaceRangeWithTextCommand.h: Update for above.
  • editing/ReplaceSelectionCommand.cpp:

(WebCore::ReplaceSelectionCommand::insertedContentRange const):
Return a SimpleRange.

  • editing/ReplaceSelectionCommand.h: Update for above.
  • editing/SpellingCorrectionCommand.cpp:

(WebCore::SpellingCorrectionCommand::SpellingCorrectionCommand):
Take a SimpleRange.
(WebCore::SpellingCorrectionCommand::create): Moved here from header.

  • editing/SpellingCorrectionCommand.h: Update for above.
  • editing/TextCheckingHelper.cpp:

(WebCore::TextCheckingHelper::findFirstMisspelledWordOrUngrammaticalPhrase const):
Use makeSimpleRange.

  • editing/TypingCommand.cpp:

(WebCore::TypingCommand::markMisspellingsAfterTyping): Use makeSimpleRange.
(WebCore::TypingCommand::willAddTypingToOpenCommand): Take SimpleRange.
(WebCore::TypingCommand::deleteKeyPressed): Remove createLiveRange.
(WebCore::TypingCommand::forwardDeleteKeyPressed): Ditto.

  • editing/TypingCommand.h: Update for above.
  • editing/VisiblePosition.cpp:

(WebCore::makeRange): Deleted.
(WebCore::startVisiblePosition): Deleted.
(WebCore::endVisiblePosition): Deleted.
(WebCore::setStart): Deleted.
(WebCore::setEnd): Deleted.

  • editing/VisiblePosition.h: Update for above. Also export makeSimpleRange

for use outside WebCore.

  • editing/VisibleUnits.cpp:

(WebCore::suffixLengthForRange): Take SimpleRange.
(WebCore::prefixLengthForRange): Ditto.
(WebCore::previousBoundary): Use makeSimpleRange.
(WebCore::nextBoundary): Ditto.

  • editing/VisibleUnits.h: Update for above.
  • editing/cocoa/DataDetection.mm:

(WebCore::buildQuery): Remove unused local variable.

  • editing/ios/EditorIOS.mm:

(WebCore::Editor::setDictationPhrasesAsChildOfElement): Use makeRangeSelectingNodeContents.

  • page/DOMSelection.cpp:

(WebCore::DOMSelection::getRangeAt): Use createLiveRange.

  • page/DragController.cpp:

(WebCore::DragController::insertDroppedImagePlaceholdersAtCaret): Remove makeSimpleRange.

  • page/Frame.cpp:

(WebCore::Frame::rangeForPoint): Return SimpleRange.

  • page/Frame.h: Update for above.
  • page/ios/FrameIOS.mm:

(WebCore::Frame::interpretationsForCurrentRoot const): Use makeRangeSelectingNodeContents,
intersectingNodes, and makeSimpleRange.

  • testing/Internals.cpp:

(WebCore::Internals::markerRangeForNode): Use createLiveRange and the document
marker range function.

Source/WebKit:

  • WebProcess/InjectedBundle/API/c/WKBundlePageOverlay.cpp:

(API::PageOverlayClientImpl::actionContextForResultAtPoint): Return a
structure that includes a SimpleRange.

  • WebProcess/InjectedBundle/DOM/InjectedBundleNodeHandle.cpp:

(WebKit::InjectedBundleNodeHandle::visibleRange): Use makeSimpleRange.

  • WebProcess/WebPage/Cocoa/TextCheckingControllerProxy.h: Use SimpleRange.
  • WebProcess/WebPage/Cocoa/TextCheckingControllerProxy.mm:

(WebKit::TextCheckingControllerProxy::rangeAndOffsetRelativeToSelection): Use SimpleRange.
(WebKit::TextCheckingControllerProxy::replaceRelativeToSelection): Ditto.
(WebKit::TextCheckingControllerProxy::removeAnnotationRelativeToSelection): Ditto.

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::characterIndexForPointAsync): Remove makeSimpleRange.
(WebKit::WebPage::deleteSurrounding): Use makeSimpleRange.

  • WebProcess/WebPage/WebPageOverlay.cpp:

(WebKit::WebPageOverlay::actionContextForResultAtPoint): Use return value instead of out argument.

  • WebProcess/WebPage/WebPageOverlay.h: Update for above.
  • WebProcess/WebPage/glib/WebPageGLib.cpp:

(WebKit::WebPage::getPlatformEditorState const): Use makeSimpleRange.

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::computeEditableRootHasContentAndPlainText): Use makeSimpleRange.
(WebKit::WebPage::getRectsForGranularityWithSelectionOffset): Removed unneeded null checks that
are already done by makeSimpleRange.
(WebKit::WebPage::getRectsAtSelectionOffsetWithText): Use makeSimpleRange.
(WebKit::WebPage::requestDictationContext): Ditto.
(WebKit::WebPage::autocorrectionContext): Ditto.
(WebKit::linkIndicatorPositionInformation): Use makeRangeSelectingNodeContents.
(WebKit::dataDetectorLinkPositionInformation): Ditto.
(WebKit::WebPage::requestDocumentEditingContext): Use makeSimpleRange.

  • WebProcess/WebPage/mac/WebPageMac.mm:

(WebKit::WebPage::performImmediateActionHitTestAtLocation): Update for change to the
actionContextForResultAtPoint return value.

Source/WebKitLegacy/ios:

  • WebCoreSupport/WebFrameIOS.mm:

(-[WebFrame wordAtPoint:]): Use makeSimpleRange.

  • WebCoreSupport/WebVisiblePosition.mm:

(-[WebVisiblePosition enclosingRangeWithDictationPhraseAlternatives:]): Use document
marker range function.
(-[WebVisiblePosition enclosingRangeWithCorrectionIndicator]): Ditto.
(+[DOMRange rangeForFirstPosition:second:]): Use makeSimpleRange.

Source/WebKitLegacy/mac:

  • DOM/DOMUIKitExtensions.mm:

(-[DOMNode rangeOfContainingParagraph]): Use makeSimpleRange.

  • WebView/WebFrame.mm:

(-[WebFrame _characterRangeAtPoint:]): Update since rangeAtPoint takes a SimpleRange.
(-[WebFrame getDictationResultRanges:andMetadatas:]): Use document marker range function.

  • WebView/WebImmediateActionController.mm:

(-[WebImmediateActionController _defaultAnimationController]): Use makeRangeSelectingNodeContents.
(-[WebImmediateActionController _animationControllerForDataDetectedLink]): Ditto.

Source/WebKitLegacy/win:

  • AccessibleTextImpl.cpp:

(AccessibleText::scrollSubstringTo): Use makeSimpleRange.

6:40 AM Changeset in webkit [265175] by commit-queue@webkit.org
  • 11 edits in trunk/Source/WebKit

Unreviewed, reverting r265171.
https://bugs.webkit.org/show_bug.cgi?id=215060

broke 2 mac api tests

Reverted changeset:

"[Mac] Add Experimental Feature preference for SW VP9"
https://bugs.webkit.org/show_bug.cgi?id=215043
https://trac.webkit.org/changeset/265171

1:02 AM Changeset in webkit [265174] by Megan Gardner
  • 2 edits in trunk/Source/WebKit

Unable to select multiple lines of vertical text correctly
https://bugs.webkit.org/show_bug.cgi?id=213671
<rdar://problem/53753636>

Reviewed by Darin Adler.

In order to make for a better text selection experience, we pulled the selection position
down to be on the last line selectable, rather than snap the selection to a single position.
This made for a better selection experience on small text, but we failed to take
vertical text into account, and a user is locked into only selecting vertical text that ends below the
other anchor point of the selection. We should have the same behavior for vertical text, but correctly
calculated for X instead of Y.
This does not fix all cases, but it fixes the most glaring cases.

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::rangeForPointInRootViewCoordinates):

Jul 31, 2020:

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

[Mac] AudioSessionRoutingArbitrator causes a launch time regression checking for CoreAudio muted state
https://bugs.webkit.org/show_bug.cgi?id=214993

Reviewed by Eric Carlson.

The initial query of isMuted() is only there to tell whether, when we get a notification that the mute state
changed, whether our internal state is dirty and we need to fire a notification. Instead, replace the bool member
with an Optional<bool>, so we know we need to fire a changed notification whenever the first mute state change
comes in.

  • platform/audio/mac/AudioSessionMac.mm:

(WebCore::AudioSession::AudioSession):
(WebCore::AudioSession::handleMutedStateChange):
(WebCore::AudioSessionPrivate::AudioSessionPrivate): Deleted.

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

Unreviewed Windows build fix after r265167; add some missing includes.

  • page/Screen.cpp:
6:29 PM Changeset in webkit [265171] by jer.noble@apple.com
  • 11 edits in trunk/Source/WebKit

[Mac] Add Experimental Feature preference for SW VP9
https://bugs.webkit.org/show_bug.cgi?id=215043
<rdar://problem/66400034>

Reviewed by Beth Dakin.

  • FeatureFlags/WebKit.plist:
  • Shared/WebPageCreationParameters.cpp:

(WebKit::WebPageCreationParameters::encode const):

  • Shared/WebPageCreationParameters.h:
  • Shared/WebPreferences.yaml:
  • Shared/WebPreferencesDefaultValues.cpp:

(WebKit::defaultVP9SWDecoderEnabledOnBattery):

  • Shared/WebPreferencesDefaultValues.h:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::creationParameters):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::m_limitsNavigationsToAppBoundDomains):

  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::enableVP9Decoder):
(WebKit::WebProcess::enableVP9SWDecoder):

  • WebProcess/WebProcess.h:
5:36 PM Changeset in webkit [265170] by mmaxfield@apple.com
  • 9 edits in trunk/Source/WebCore

Clean up text layout code a bit
https://bugs.webkit.org/show_bug.cgi?id=215013

Reviewed by Zalan Bujtas.

This is in preparation for https://bugs.webkit.org/show_bug.cgi?id=214769.

See file-specific ChangeLog entries for more information.

No tests because there is no behavior change.

  • platform/graphics/Font.h: Remove unnecessary declaration.
  • platform/graphics/FontCascade.cpp:

(WebCore::FontCascade::layoutText const): Rename glyphBufferForTextRun() to layoutText().
Also, make it return a GlyphBuffer instead of taking a GlyphBuffer as an out param.
Its previous return, the initial advance, is now returned in GlyphBuffer::initialAdvance.
(WebCore::FontCascade::drawText const): Update to new signature of layoutText().
(WebCore::FontCascade::drawEmphasisMarks const): Inline drawEmphasisMarksForSimpleText()
and drawEmphasisMarksForComplexText(), since they're nearly identical. Update to the new
signature of layoutText().
(WebCore::FontCascade::displayListForTextRun const): Update to the new signature of
layoutText().
(WebCore::FontCascade::layoutSimpleText const): Make this return a new GlyphBuffer, instead
of taking one as an out param. Also, use accessors of WidthIterator instead of reaching
into its guts. The previous return value is now returned in GlyphBuffer::initialAdvance.
(WebCore::FontCascade::layoutComplexText const): Ditto.
(WebCore::FontCascade::floatWidthForSimpleText const): Use accessors of WidthIterator
instead of reaching into its guts.
(WebCore::FontCascade::adjustSelectionRectForSimpleText const): Ditto.
(WebCore::FontCascade::offsetForPositionForSimpleText const): Ditto.
(WebCore::FontCascade::dashesForIntersectionsWithRect const): Same as
FontCascade::drawEmphasisMarks() above.
(WebCore::FontCascade::glyphBufferForTextRun const): Renamed to layoutText().
(WebCore::FontCascade::getGlyphsAndAdvancesForSimpleText const): Renamed to
layoutSimpleText().
(WebCore::FontCascade::getGlyphsAndAdvancesForComplexText const): Renamed to
layoutComplexText().
(WebCore::FontCascade::drawEmphasisMarksForSimpleText const): Inlined into
drawEmphasisMarks().
(WebCore::FontCascade::drawEmphasisMarksForComplexText const): Ditto.

  • platform/graphics/FontCascade.h:
  • platform/graphics/GlyphBuffer.h:

(WebCore::GlyphBufferAdvance::GlyphBufferAdvance):
(WebCore::GlyphBufferAdvance::operator FloatSize):

  • platform/graphics/TextRun.h: Remove unnecessary declaration.
  • platform/graphics/WidthIterator.cpp:

(WebCore::WidthIterator::WidthIterator): Update for changes to WidthIterator.h

  • platform/graphics/WidthIterator.h: Rearrange the class members to sort them by size,

to get better packing. Also, make all member variables private, and initialize them
all with { } syntax.
(WebCore::WidthIterator::finalRoundingWidth const):
(WebCore::WidthIterator::currentCharacter const):

  • rendering/svg/SVGTextMetrics.cpp: Remove unnecessary include.
5:30 PM Changeset in webkit [265169] by commit-queue@webkit.org
  • 22 edits
    20 moves in trunk

Use more inclusive terminology in Tools
https://bugs.webkit.org/show_bug.cgi?id=214971

Patch by Alex Christensen <achristensen@webkit.org> on 2020-07-31
Reviewed by Sam Weinig.

Source/WebKitLegacy/win:

  • Interfaces/IWebViewPrivate.idl:

Rename some test-only API. This should not affect binary compatibility because everything is in the same locations, and the changed API is only used for tests.

  • WebView.h:
  • WebView.cpp:

Tools:

  • DumpRenderTree/TestRunner.cpp:

(addOriginAccessAllowListEntryCallback):
(removeOriginAccessAllowListEntryCallback):
(TestRunner::staticFunctions):
(addOriginAccessWhitelistEntryCallback): Deleted.
(removeOriginAccessWhitelistEntryCallback): Deleted.

  • DumpRenderTree/TestRunner.h:
  • DumpRenderTree/mac/TestRunnerMac.mm:

(TestRunner::addOriginAccessAllowListEntry):
(TestRunner::removeOriginAccessAllowListEntry):
(TestRunner::addOriginAccessWhitelistEntry): Deleted.
(TestRunner::removeOriginAccessWhitelistEntry): Deleted.

  • DumpRenderTree/win/DumpRenderTree.cpp:

(resetWebViewToConsistentStateBeforeTesting):

  • DumpRenderTree/win/TestRunnerWin.cpp:

(TestRunner::addOriginAccessAllowListEntry):
(TestRunner::removeOriginAccessAllowListEntry):
(TestRunner::addOriginAccessWhitelistEntry): Deleted.
(TestRunner::removeOriginAccessWhitelistEntry): Deleted.

  • TestWebKitAPI/Tests/WebKitGLib/TestWebKitUserContentManager.cpp:

(removeOldInjectedContentAndResetLists):
(testUserContentManagerInjectedStyleSheet):
(testUserContentManagerInjectedScript):
(testUserContentManagerContentFilter):

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

(WTR::TestRunner::addOriginAccessAllowListEntry):
(WTR::TestRunner::removeOriginAccessAllowListEntry):
(WTR::TestRunner::addOriginAccessWhitelistEntry): Deleted.
(WTR::TestRunner::removeOriginAccessWhitelistEntry): Deleted.

  • WebKitTestRunner/InjectedBundle/TestRunner.h:

LayoutTests:

  • http/tests/security/contentSecurityPolicy/report-blocked-file-uri.php:
  • http/tests/security/contentSecurityPolicy/xsl-redirect-allowed.html:
  • http/tests/security/contentSecurityPolicy/xsl-redirect-allowed2.html:
  • http/tests/security/contentSecurityPolicy/xsl-redirect-blocked.html:
  • http/tests/security/isolatedWorld/cross-origin-xhr.html:
  • http/tests/security/local-image-from-remote-allow-list-expected.txt: Copied from http/tests/security/local-image-from-remote-whitelisted-expected.txt.
  • http/tests/security/local-image-from-remote-allow-list.html: Copied from http/tests/security/local-image-from-remote-whitelisted.html.
  • http/tests/security/local-image-from-remote-whitelisted-expected.txt: Removed.
  • http/tests/security/local-image-from-remote-whitelisted.html: Removed.
  • http/tests/xmlhttprequest/access-control-basic-allow-list-request-headers-expected.txt: Copied from http/tests/xmlhttprequest/access-control-basic-whitelist-request-headers-expected.txt.
  • http/tests/xmlhttprequest/access-control-basic-allow-list-request-headers.html: Copied from http/tests/xmlhttprequest/access-control-basic-whitelist-request-headers.html.
  • http/tests/xmlhttprequest/access-control-basic-allow-list-response-headers-expected.txt: Copied from http/tests/xmlhttprequest/access-control-basic-whitelist-response-headers-expected.txt.
  • http/tests/xmlhttprequest/access-control-basic-allow-list-response-headers.html: Copied from http/tests/xmlhttprequest/access-control-basic-whitelist-response-headers.html.
  • http/tests/xmlhttprequest/access-control-basic-whitelist-request-headers-expected.txt: Removed.
  • http/tests/xmlhttprequest/access-control-basic-whitelist-request-headers.html: Removed.
  • http/tests/xmlhttprequest/access-control-basic-whitelist-response-headers-expected.txt: Removed.
  • http/tests/xmlhttprequest/access-control-basic-whitelist-response-headers.html: Removed.
  • http/tests/xmlhttprequest/origin-allow-list-all-expected.txt: Copied from http/tests/xmlhttprequest/origin-whitelisting-all-expected.txt.
  • http/tests/xmlhttprequest/origin-allow-list-all.html: Copied from http/tests/xmlhttprequest/origin-whitelisting-all.html.
  • http/tests/xmlhttprequest/origin-allow-list-exact-match-expected.txt: Copied from http/tests/xmlhttprequest/origin-whitelisting-exact-match-expected.txt.
  • http/tests/xmlhttprequest/origin-allow-list-exact-match.html: Copied from http/tests/xmlhttprequest/origin-whitelisting-exact-match.html.
  • http/tests/xmlhttprequest/origin-allow-list-https-expected.txt: Copied from http/tests/xmlhttprequest/origin-whitelisting-https-expected.txt.
  • http/tests/xmlhttprequest/origin-allow-list-https.html: Copied from http/tests/xmlhttprequest/origin-whitelisting-https.html.
  • http/tests/xmlhttprequest/origin-allow-list-ip-addresses-expected.txt: Copied from http/tests/xmlhttprequest/origin-whitelisting-ip-addresses-expected.txt.
  • http/tests/xmlhttprequest/origin-allow-list-ip-addresses-with-subdomains-expected.txt: Copied from http/tests/xmlhttprequest/origin-whitelisting-ip-addresses-with-subdomains-expected.txt.
  • http/tests/xmlhttprequest/origin-allow-list-ip-addresses-with-subdomains.html: Copied from http/tests/xmlhttprequest/origin-whitelisting-ip-addresses-with-subdomains.html.
  • http/tests/xmlhttprequest/origin-allow-list-ip-addresses.html: Copied from http/tests/xmlhttprequest/origin-whitelisting-ip-addresses.html.
  • http/tests/xmlhttprequest/origin-allow-list-removal-expected.txt: Copied from http/tests/xmlhttprequest/origin-whitelisting-removal-expected.txt.
  • http/tests/xmlhttprequest/origin-allow-list-removal.html: Copied from http/tests/xmlhttprequest/origin-whitelisting-removal.html.
  • http/tests/xmlhttprequest/origin-allow-list-subdomains-expected.txt: Copied from http/tests/xmlhttprequest/origin-whitelisting-subdomains-expected.txt.
  • http/tests/xmlhttprequest/origin-allow-list-subdomains.html: Copied from http/tests/xmlhttprequest/origin-whitelisting-subdomains.html.
  • http/tests/xmlhttprequest/origin-whitelisting-all-expected.txt: Removed.
  • http/tests/xmlhttprequest/origin-whitelisting-all.html: Removed.
  • http/tests/xmlhttprequest/origin-whitelisting-exact-match-expected.txt: Removed.
  • http/tests/xmlhttprequest/origin-whitelisting-exact-match.html: Removed.
  • http/tests/xmlhttprequest/origin-whitelisting-https-expected.txt: Removed.
  • http/tests/xmlhttprequest/origin-whitelisting-https.html: Removed.
  • http/tests/xmlhttprequest/origin-whitelisting-ip-addresses-expected.txt: Removed.
  • http/tests/xmlhttprequest/origin-whitelisting-ip-addresses-with-subdomains-expected.txt: Removed.
  • http/tests/xmlhttprequest/origin-whitelisting-ip-addresses-with-subdomains.html: Removed.
  • http/tests/xmlhttprequest/origin-whitelisting-ip-addresses.html: Removed.
  • http/tests/xmlhttprequest/origin-whitelisting-removal-expected.txt: Removed.
  • http/tests/xmlhttprequest/origin-whitelisting-removal.html: Removed.
  • http/tests/xmlhttprequest/origin-whitelisting-subdomains-expected.txt: Removed.
  • http/tests/xmlhttprequest/origin-whitelisting-subdomains.html: Removed.
  • platform/win/TestExpectations:
  • platform/wk2/TestExpectations:
4:41 PM Changeset in webkit [265168] by Chris Dumez
  • 14 edits
    2 copies
    2 adds in trunk

Add OfflineAudioCompletionEvent constructor
https://bugs.webkit.org/show_bug.cgi?id=214994

Reviewed by Eric Carlson.

LayoutTests/imported/w3c:

Rebaseline WPT test now that more checks are passing.

  • web-platform-tests/webaudio/idlharness.https.window-expected.txt:

Source/WebCore:

Add OfflineAudioCompletionEvent constructor, as per:

Test: webaudio/OfflineAudioCompletionEvent-constructor.html

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

(WebCore::BaseAudioContext::finishedRendering):

  • Modules/webaudio/OfflineAudioCompletionEvent.cpp:

(WebCore::OfflineAudioCompletionEvent::create):
(WebCore::OfflineAudioCompletionEvent::OfflineAudioCompletionEvent):

  • Modules/webaudio/OfflineAudioCompletionEvent.h:
  • Modules/webaudio/OfflineAudioCompletionEvent.idl:
  • Modules/webaudio/OfflineAudioCompletionEventInit.h: Copied from Source/WebCore/Modules/webaudio/OfflineAudioCompletionEvent.idl.
  • Modules/webaudio/OfflineAudioCompletionEventInit.idl: Copied from Source/WebCore/Modules/webaudio/OfflineAudioCompletionEvent.idl.
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:

LayoutTests:

Add layout test coverage.

  • webaudio/OfflineAudioCompletionEvent-constructor-expected.txt: Added.
  • webaudio/OfflineAudioCompletionEvent-constructor.html: Added.
4:40 PM Changeset in webkit [265167] by jer.noble@apple.com
  • 13 edits
    2 adds in trunk

[Mac] YouTube does not offer HDR variants to devices which support HDR
https://bugs.webkit.org/show_bug.cgi?id=215022

Reviewed by Eric Carlson.

Source/WebCore:

Test: platform/mac/media/media-source/is-type-supported-vp9-codec-check.html

There are three separate issues which block YouTube from offering HDR:

1) YouTube checks both valid and invalid VP9 strings through MediaSource.isTypeSupported(), and UAs

which answer true to even invalid VP9 strings are blocked from HDR. To solve this, we will now
send isTypeSupported() through the same code path as Media Capabilities.

2) YouTube's standard valid and invalid VP9 strings do not include the fullRangeVideoFlag field, which

would normally be tossed as invalid. We shouldn't relax our requirements globally, so we will
add a Quirk which relaxes the requriement that VP9 strings contain a fullRangeVideoFlag.

3) YouTube's HDR query checks that window.screen.pixelDepth is > 24. We obviously don't want to change

the value of this field globally, so we will add separate Quirk which sets window.screen.pixelDepth
to 25 (a totally nonsensical value) when HDR is available.

Each of these Quirks has a path towards removal for YouTube. The fullRangeVideoFlag field involves
YouTube updating their compatibility check to inculde the fullRangeVideoFlag. The pixelDepth check
can be replaced by the dynamic-range:high Media Query.

  • Modules/mediasource/MediaSource.cpp:

(WebCore::addVP9FullRangeVideoFlagToContentType):
(WebCore::MediaSource::addSourceBuffer):
(WebCore::MediaSource::removeSourceBuffer):
(WebCore::MediaSource::isTypeSupported):
(WebCore::MediaSource::onReadyStateChange):
(WebCore::MediaSource::activeRanges const):

  • Modules/mediasource/MediaSource.h:
  • page/Quirks.cpp:

(WebCore::Quirks::needsVP9FullRangeFlagQuirk const):
(WebCore::Quirks::needsHDRPixelDepthQuirk const):

  • page/Quirks.h:
  • page/Screen.cpp:

(WebCore::Screen::pixelDepth const):

  • platform/graphics/cocoa/SourceBufferParserWebM.cpp:

(WebCore::SourceBufferParserWebM::isContentTypeSupported):

  • platform/graphics/cocoa/VP9UtilitiesCocoa.h:
  • platform/graphics/cocoa/VP9UtilitiesCocoa.mm:

(WebCore::isVPCodecConfigurationRecordSupported):
(WebCore::validateVPParameters):

LayoutTests:

  • platform/mac/media/media-source/is-type-supported-vp9-codec-check-expected.txt: Added.
  • platform/mac/media/media-source/is-type-supported-vp9-codec-check.html: Added.
  • platform/mac/media/mediacapabilities/vp9-decodingInfo-sw-expected.txt:
  • platform/mac/media/mediacapabilities/vp9-decodingInfo-sw.html:
4:36 PM Changeset in webkit [265166] by Jonathan Bedard
  • 3 edits in trunk/Tools

[test-webkitpy] Have CI use verbose logging
https://bugs.webkit.org/show_bug.cgi?id=215019
<rdar://problem/66383986>

Reviewed by Aakash Jain.

  • BuildSlaveSupport/ews-build/steps.py:

(RunWebKitPyPython2Tests): Add --verbose flag.
(RunWebKitPyPython3Tests): Ditto.

  • BuildSlaveSupport/ews-build/steps_unittest.py:

(test_success): Add --verbose flag to test-webkitpy command.
(test_unexpected_failure): Ditto.
(test_failure): Ditto.
(test_errors): Ditto.

3:56 PM Changeset in webkit [265165] by Chris Dumez
  • 5 edits in trunk/Source

Add linked-on-after check to keep WebSQL working in UIWebView until apps are rebuilt with iOS 14 SDK
https://bugs.webkit.org/show_bug.cgi?id=215035
<rdar://problem/65003342>

Reviewed by Tim Horton.

Source/WebCore:

  • platform/RuntimeApplicationChecks.h:
  • platform/cocoa/RuntimeApplicationChecksCocoa.mm:

(WebCore::IOSApplication::isJesusCalling): Deleted.
(WebCore::IOSApplication::isFudget): Deleted.
(WebCore::IOSApplication::isFamilyHealthApp): Deleted.
Drop code that is no longer needed.

Source/WebKitLegacy/mac:

Add linked-on-after check to keep WebSQL working in UIWebView until apps are rebuilt with iOS 14 SDK.

  • WebView/WebPreferences.mm:

(+[WebPreferences initialize]):

3:50 PM Changeset in webkit [265164] by Truitt Savell
  • 2 edits in trunk/LayoutTests

[ macOS ] imported/w3c/web-platform-tests/css/css-scoping/css-scoping-shadow-dynamic-remove-style-detached.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=215039

Unreviewed test gardening.

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

  • platform/mac/TestExpectations:
3:23 PM Changeset in webkit [265163] by Chris Dumez
  • 6 edits in trunk/Source/WebKit

Launch time regression due to EndowmentStateTracker initialization in WebPageProxy constructor
https://bugs.webkit.org/show_bug.cgi?id=215029
<rdar://problem/66362333>

Reviewed by Geoffrey Garen.

EndowmentStateTracker was expensive and in a critical code path during MobileSafari app launch. Since
this code is new, this was a net app launch time regression. To address the regression, the following
changes were made:

  1. We only need the EndowmentStateTracker to monitor if the app is user-facing or not, so that we can suspend / resume media playback as needed. As a result, it is unnecessary to start monitoring user-facing state changes as soon as the WebPageProxy is constructed. Instead, we now wait until media plays on the page for the first time.
  2. It turns out that over 70% of CPU time in the EndowmentStateTracker constructor was spent getting the current endownment for the process. As a result, I updated the code to lazy populate those until they are requested for the first time.
  3. The remaining 30% of CPU time in the EndowmentStateTracker constructor was spent constructing the RBSProcessMonitor. I moved the initialization of the RBSProcessMonitor from the constructor to EndowmentStateTracker::addClient() so that we only construct a monitor when we actually have our first client.
  4. All this code was actually only useful for Catalyst app and was therefore doing work on iOS for no reason. I properly #ifdef'd out this code so that it now only applies to Catalyst apps.
  • UIProcess/EndowmentStateTracker.h:

(WebKit::EndowmentStateTracker::isVisible const):
(WebKit::EndowmentStateTracker::isUserFacing const):

  • UIProcess/EndowmentStateTracker.mm:

(WebKit::EndowmentStateTracker::stateFromEndowments):
(WebKit::EndowmentStateTracker::registerMonitorIfNecessary):
(WebKit::EndowmentStateTracker::addClient):
(WebKit::EndowmentStateTracker::ensureState const const):
(WebKit::EndowmentStateTracker::setState):
(WebKit::EndowmentStateTracker::EndowmentStateTracker): Deleted.
(WebKit::EndowmentStateTracker::setIsUserFacing): Deleted.
(WebKit::EndowmentStateTracker::setIsVisible): Deleted.

  • UIProcess/WebPageProxy.cpp:

(WebKit::m_transcodingQueue):
(WebKit::WebPageProxy::updatePlayingMediaDidChange):

  • UIProcess/WebPageProxy.h:
3:23 PM Changeset in webkit [265162] by Chris Dumez
  • 6 edits in trunk/Source/WebKit

Drop ProcessAssertion::Client and replace with a simple invalidation handler
https://bugs.webkit.org/show_bug.cgi?id=214976

Reviewed by Brady Eidson.

ProcessAssertion had a Client class with 2 functions:
(1) one to indicate that the assertion was invalidated
(2) one to indicate that the UI assertion is about to expire

While ProcessAssertion is used in several places, only the ProcessThrottler
ever sets itself as a client. The reason is that other call sites use
assertion types that do not expire. Also, (2) only makes sense for
ProcessAndUIAssertion, not for ProcessAssertion. Only the ProcessThrottler
is using a ProcessAndUIAssertion.

I think a better design is to have a simple invalidation handler on
the ProcessAssertion, that the call site can set if they are interested
in invalidation.

Similarly, I added a UIAssertion expiration handler on ProcessAndUIAssertion
so that the ProcessThrottler can know if the UIAssertion is about to expire.

This new design also matches more closely the system process assertion API
that ProcessAssertion / ProcessAndUIAssertion are wrapping.

This patch also fixes a bug found by Youenn Fablet where the ProcessThrottler
would only set its invalidation handler in didConnectToProcess(), instead of
doing it every time a new ProcessAssertion is created in setAssertionType().
The assertion type can change (e.g. from foreground to background) after the
process has launched.

  • UIProcess/ProcessAssertion.h:

(WebKit::ProcessAssertion::setInvalidationHandler):
(WebKit::ProcessAssertion::Client::~Client): Deleted.
(WebKit::ProcessAssertion::setClient): Deleted.
(WebKit::ProcessAssertion::client): Deleted.

  • UIProcess/ProcessThrottler.cpp:

(WebKit::ProcessThrottler::setAssertionType):
(WebKit::ProcessThrottler::didConnectToProcess):

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

(WebKit::ProcessAssertion::processAssertionWasInvalidated):
(WebKit::ProcessAndUIAssertion::uiAssertionWillExpireImminently):

3:22 PM Changeset in webkit [265161] by Truitt Savell
  • 3 edits in trunk/LayoutTests

[ macOS wk1 iOS wk2 Release ] imported/w3c/web-platform-tests/websockets/cookies/third-party-cookie-accepted.https.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=215033

Unreviewed test gardening.

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

  • platform/ios-simulator-wk2/TestExpectations:
  • platform/mac-wk1/TestExpectations:
3:14 PM Changeset in webkit [265160] by beidson@apple.com
  • 3 edits
    2 adds in trunk

Log a warning to the dev console when gamepads are accessed from an insecure context.
https://bugs.webkit.org/show_bug.cgi?id=214995

Reviewed by Tim Horton.

Source/WebCore:

Test: http/tests/misc/gamepads-insecure.html

  • Modules/gamepad/NavigatorGamepad.cpp:

(WebCore::NavigatorGamepad::getGamepads): Insecure contexts should log that getGamepads() will

be going away in a future release. Just do it once, because getGamepads() is called frequently.

LayoutTests:

  • http/tests/misc/gamepads-insecure-expected.txt: Added.
  • http/tests/misc/gamepads-insecure.html: Added.
2:02 PM Changeset in webkit [265159] by keith_miller@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Move Options setter to where we allow access to the Options object
https://bugs.webkit.org/show_bug.cgi?id=215028

Reviewed by Saam Barati.

Right now jsc CLI crashes when assertions are enabled on iOS.

  • jsc.cpp:

(main):
(CommandLine::parseArguments):

1:39 PM Changeset in webkit [265158] by jiewen_tan@apple.com
  • 2 edits in trunk/Source/WebKit

SOAuthorizationSession::dismissViewController could crash on calling WebPageProxy::platformWindow
https://bugs.webkit.org/show_bug.cgi?id=214816
<rdar://problem/65681530>

Reviewed by Youenn Fablet.

pageClient() called in WebPageProxy::platformWindow() could be null. Therefore, platformWindow()
needs to check m_pageClient instead.

  • UIProcess/mac/WebPageProxyMac.mm:

(WebKit::WebPageProxy::platformWindow):

1:19 PM Changeset in webkit [265157] by Aditya Keerthi
  • 8 edits in trunk

[macOS] Date/time input types should have a textfield appearance
https://bugs.webkit.org/show_bug.cgi?id=214978

Reviewed by Wenson Hsieh.

Source/WebCore:

On iOS, date/time input types have a menulist-button appearance. However, this appearance
does not match the style of native date controls on macOS. The textfield appearance
with no focus ring brings us closer to a natively styled control.

  • rendering/RenderTheme.h:
  • rendering/RenderThemeMac.h:
  • rendering/RenderThemeMac.mm:

(WebCore::RenderThemeMac::dateInputStyleSheet const):
(WebCore::RenderThemeMac::dateTimeLocalInputStyleSheet const):
(WebCore::RenderThemeMac::monthInputStyleSheet const):
(WebCore::RenderThemeMac::timeInputStyleSheet const):
(WebCore::RenderThemeMac::weekInputStyleSheet const):

LayoutTests:

Rebaselined tests for updated appearance.

  • platform/mac-wk2/fast/forms/date/date-input-rendering-basic-expected.txt:
  • platform/mac-wk2/fast/forms/time/time-input-rendering-basic-expected.txt:
  • platform/mac-wk2/imported/w3c/web-platform-tests/html/rendering/widgets/appearance/default-styles-expected.txt:
12:50 PM Changeset in webkit [265156] by beidson@apple.com
  • 16 edits
    5 copies
    2 adds in trunk

Special HID mapping for the Dualshock 3 controller
<rdar://problem/66255198> and https://bugs.webkit.org/show_bug.cgi?id=214911

Reviewed by Tim Horton.

Source/WebCore:

Covered by API tests.

  • Move GamepadButtons into a GamepadConstants header
  • Add a "KnownGamepads" header to hold all vendor/product pairs that WebKit knows about
  • Add a Dualshock3 controller mapping based on its HID report
  • Add a basic DS3 test based on the HID report
  • Sources.txt:
  • SourcesCocoa.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • platform/gamepad/GamepadConstants.cpp: Copied from Source/WebCore/platform/gamepad/mac/GenericHIDGamepad.h.

(WebCore::standardGamepadMappingString):

  • platform/gamepad/GamepadConstants.h: Added.
  • platform/gamepad/KnownGamepads.h: Copied from Source/WebCore/platform/gamepad/mac/GenericHIDGamepad.h.
  • platform/gamepad/cocoa/GameControllerGamepad.mm:

(WebCore::GameControllerGamepad::setupAsExtendedGamepad):

  • platform/gamepad/mac/Dualshock3HIDGamepad.cpp: Added.

(WebCore::Dualshock3HIDGamepad::Dualshock3HIDGamepad):

  • platform/gamepad/mac/Dualshock3HIDGamepad.h: Copied from Source/WebCore/platform/gamepad/mac/GenericHIDGamepad.h.
  • platform/gamepad/mac/GenericHIDGamepad.cpp:

(WebCore::GenericHIDGamepad::GenericHIDGamepad):
(WebCore::GenericHIDGamepad::id): Deleted.

  • platform/gamepad/mac/GenericHIDGamepad.h:
  • platform/gamepad/mac/HIDGamepad.cpp:

(WebCore::HIDGamepad::create):
(WebCore::HIDGamepad::HIDGamepad):
(WebCore::HIDGamepad::initialize):

  • platform/gamepad/mac/HIDGamepad.h:
  • platform/mac/HIDDevice.h:

(WebCore::HIDDevice::fullProductIdentifier const):

  • platform/mac/HIDElement.h:

(WebCore::HIDElement::fullUsage const):

Tools:

Add a virtual Dualshock3 and verify a few attributes about it.

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

(TestWebKitAPI::publishReportCallback):
(TestWebKitAPI::VirtualGamepad::sonyDualshock3Mapping):

  • TestWebKitAPI/mac/VirtualGamepad.h:
12:39 PM Changeset in webkit [265155] by achristensen@apple.com
  • 3 edits in trunk/Source/WebCore

Fix Windows build.
https://bugs.webkit.org/show_bug.cgi?id=214988

  • platform/network/cf/CertificateInfo.h:
  • platform/network/cf/CertificateInfoCFNet.cpp:
12:24 PM Changeset in webkit [265154] by sbarati@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

Re-enable NO_SMT on Catalina
https://bugs.webkit.org/show_bug.cgi?id=215024

Reviewed by Alexey Proskuryakov.

  • runtime/Options.cpp:

(JSC::defaultTCSMValue):

  • runtime/OptionsList.h:
11:57 AM Changeset in webkit [265153] by commit-queue@webkit.org
  • 2 edits in trunk/LayoutTests

REGRESSION: [ iOS wk2 Debug ] imported/w3c/web-platform-tests/webrtc/RTCSctpTransport-maxChannels.html is a constant crash
https://bugs.webkit.org/show_bug.cgi?id=215025

Unreviewed test gardening.

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

  • platform/ios-simulator-wk2/TestExpectations:
11:47 AM Changeset in webkit [265152] by Chris Dumez
  • 15 edits
    4 copies in trunk

Add constructor for WaveShaperNode
https://bugs.webkit.org/show_bug.cgi?id=214989

Reviewed by Youenn Fablet.

LayoutTests/imported/w3c:

Rebaseline WPT tests now that more checks are passing.

  • web-platform-tests/webaudio/idlharness.https.window-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-waveshapernode-interface/ctor-waveshaper-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-waveshapernode-interface/waveshaper-simple-expected.txt:

Source/WebCore:

Add constructor for WaveShaperNode:

No new tests, rebaselined existing tests.

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

(WebCore::BaseAudioContext::createWaveShaper):

  • Modules/webaudio/OverSampleType.h: Copied from Source/WebCore/Modules/webaudio/WaveShaperNode.idl.
  • Modules/webaudio/OverSampleType.idl: Copied from Source/WebCore/Modules/webaudio/WaveShaperNode.idl.
  • Modules/webaudio/WaveShaperNode.cpp:

(WebCore::WaveShaperNode::create):
(WebCore::WaveShaperNode::setCurve):
(WebCore::processorType):

  • Modules/webaudio/WaveShaperNode.h:

(WTF::LogArgument<WebCore::OverSampleType>::toString):

  • Modules/webaudio/WaveShaperNode.idl:
  • Modules/webaudio/WaveShaperOptions.h: Copied from Source/WebCore/Modules/webaudio/WaveShaperNode.idl.
  • Modules/webaudio/WaveShaperOptions.idl: Copied from Source/WebCore/Modules/webaudio/WaveShaperNode.idl.
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
11:46 AM Changeset in webkit [265151] by sbarati@apple.com
  • 16 edits in trunk/Source/JavaScriptCore

validate untagArrayPtr
https://bugs.webkit.org/show_bug.cgi?id=214953

Reviewed by Keith Miller.

This patch adds validation to untagArrayPtr along paths where we don't
immediately store/load from the result.

This patch also changes the removeArrayPtrTag macro assembler function to
use shifts instead of xpacd to strip the tag, because it's faster.

  • assembler/MacroAssemblerARM64E.h:

(JSC::MacroAssemblerARM64E::untagArrayPtr):
(JSC::MacroAssemblerARM64E::removeArrayPtrTag):

  • assembler/testmasm.cpp:

(JSC::testCagePreservesPACFailureBit):

  • bytecode/AccessCase.cpp:

(JSC::AccessCase::generateWithGuard):

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::cageTypedArrayStorage):

  • dfg/DFGSpeculativeJIT.h:
  • dfg/DFGSpeculativeJIT64.cpp:

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

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::untagArrayPtr):
(JSC::FTL::DFG::LowerDFGToB3::caged):

  • jit/AssemblyHelpers.cpp:

(JSC::AssemblyHelpers::cageWithoutUntagging):
(JSC::AssemblyHelpers::cageConditionallyAndUntag):

  • jit/AssemblyHelpers.h:

(JSC::AssemblyHelpers::cageWithoutUntagging): Deleted.
(JSC::AssemblyHelpers::cageConditionally): Deleted.

  • jit/JITPropertyAccess.cpp:

(JSC::JIT::emitIntTypedArrayPutByVal):
(JSC::JIT::emitFloatTypedArrayPutByVal):

  • wasm/WasmAirIRGenerator.cpp:

(JSC::Wasm::AirIRGenerator::restoreWebAssemblyGlobalState):
(JSC::Wasm::AirIRGenerator::addCallIndirect):

  • wasm/WasmB3IRGenerator.cpp:

(JSC::Wasm::B3IRGenerator::restoreWebAssemblyGlobalState):
(JSC::Wasm::B3IRGenerator::addCallIndirect):

  • wasm/WasmBinding.cpp:

(JSC::Wasm::wasmToWasm):

  • wasm/js/JSToWasm.cpp:

(JSC::Wasm::createJSToWasmWrapper):

  • wasm/js/WebAssemblyFunction.cpp:

(JSC::WebAssemblyFunction::jsCallEntrypointSlow):

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

Update service worker if certificate info does not match when soft updating
https://bugs.webkit.org/show_bug.cgi?id=214988

Reviewed by Alex Christensen.

Source/WebCore:

In case service worker certificate info does not match, treat it as if the script changed.
This is a convenient way to update the service worker and the stored registration database.
Covered by API test.

  • platform/network/cf/CertificateInfo.h:
  • platform/network/cf/CertificateInfoCFNet.cpp:

(WebCore::certificatesMatch):

  • workers/service/server/SWServerJobQueue.cpp:

(WebCore::doCertificatesMatch):
(WebCore::SWServerJobQueue::scriptFetchFinished):

  • workers/service/server/SWServerWorker.h:

(WebCore::SWServerWorker::certificateInfo const):

Source/WebKit:

Make sure service worker soft updater gathers certificate info.

  • NetworkProcess/ServiceWorker/ServiceWorkerSoftUpdateLoader.cpp:

(WebKit::ServiceWorkerSoftUpdateLoader::loadFromNetwork):
(WebKit::ServiceWorkerSoftUpdateLoader::didReceiveResponse):

  • NetworkProcess/cocoa/NetworkSessionCocoa.mm:

(WebKit::NetworkSessionCocoa::allowsSpecificHTTPSCertificateForHost):

Tools:

Update HTTPServer to pass two optional parameters:

  • A port number to listen to if provided
  • A custom server identity to use if provided

The API test is loading an URL on a first server.
This triggers registration of a service worker.
It then stops this server and launches a second server on the same port with a different certificate.
A second page is loaded on the same URL.
This triggers the case of updating a service worker certificate info.

  • TestWebKitAPI/Tests/WebKitCocoa/Challenge.mm:

(createTestIdentity):
(testIdentity):
(testIdentity2):

  • TestWebKitAPI/Tests/WebKitCocoa/ServiceWorkerBasic.mm:
  • TestWebKitAPI/cocoa/HTTPServer.h:
  • TestWebKitAPI/cocoa/HTTPServer.mm:

(TestWebKitAPI::HTTPServer::listenerParameters):
(TestWebKitAPI::HTTPServer::HTTPServer):

10:44 AM Changeset in webkit [265149] by commit-queue@webkit.org
  • 10 edits in trunk

-[WKWebsiteDataStore _renameOrigin:] needs to support IndexedDB renames
https://bugs.webkit.org/show_bug.cgi?id=214905
<rdar://problem/66247978>

Patch by Sihui Liu <sihui_liu@appe.com> on 2020-07-31
Reviewed by Alex Christensen.

Source/WebCore:

To do the renaming, we close all existing databases whose top origin is old origin, and move all files in
directory of old origin to that of new origin.

API test: WebKit.WebsiteDataStoreRenameOriginForIndexedDatabase

  • Modules/indexeddb/server/IDBServer.cpp:

(WebCore::IDBServer::IDBServer::closeDatabasesForOrigins):
(WebCore::IDBServer::IDBServer::closeAndDeleteDatabasesForOrigins):
(WebCore::IDBServer::IDBServer::renameOrigin):

  • Modules/indexeddb/server/IDBServer.h:

Source/WebKit:

  • NetworkProcess/IndexedDB/WebIDBServer.cpp:

(WebKit::WebIDBServer::renameOrigin):

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

(WebKit::NetworkProcess::renameOriginInWebsiteData):

  • UIProcess/API/Cocoa/WKWebsiteDataStore.mm:

(-[WKWebsiteDataStore _renameOrigin:to:forDataOfTypes:completionHandler:]):

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/WebsiteDataStoreCustomPaths.mm:

(TEST):

10:27 AM Changeset in webkit [265148] by Chris Fleizach
  • 2 edits in trunk/Source/WebCore

AX: Inteterminate progressbar reading as 50% with Voiceover
https://bugs.webkit.org/show_bug.cgi?id=214330
<rdar://problem/65570800>

Reviewed by Zalan Bujtas.

Expose indeterminate status to iOS API.

  • accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:

(-[WebAccessibilityObjectWrapper accessibilityIsIndeterminate]):
(-[WebAccessibilityObjectWrapper accessibilityIsInDescriptionListTerm]):
(-[WebAccessibilityObjectWrapper accessibilityIsInDescriptionListDefinition]):

  • Drive by style fix.
10:26 AM Changeset in webkit [265147] by Alan Coon
  • 8 edits in trunk/Source

Versioning.

WebKit-610.1.25

10:21 AM Changeset in webkit [265146] by Alan Coon
  • 1 copy in branches/safari-610.1.24-branch

New branch.

10:09 AM Changeset in webkit [265145] by Peng Liu
  • 4 edits in trunk/Source/WebCore

PIP on netflix.com shows only a gray window and spinner
https://bugs.webkit.org/show_bug.cgi?id=214899

Reviewed by Jer Noble.

Use an empty "seekableRanges" instead of a special "duration" value (NaN) to indicate
that seeking is not supported. With this change, the "duration" will always have a meaningful
value, so that WebAVPlayerController can work properly in the picture-in-picture mode.
Related change: https://trac.webkit.org/changeset/217858.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::supportsSeeking const):

  • platform/cocoa/PlaybackSessionModelMediaElement.mm:

(WebCore::PlaybackSessionModelMediaElement::duration const):
(WebCore::PlaybackSessionModelMediaElement::seekableRanges const):

  • platform/mac/WebPlaybackControlsManager.mm:

(-[WebPlaybackControlsManager canBeginTouchBarScrubbing]):

9:27 AM Changeset in webkit [265144] by Ryan Haddad
  • 3 edits in trunk/Source/WebKit

Unreviewed Catalyst build fix.

  • WebProcess/WebPage/Cocoa/TextCheckingControllerProxy.h: I should have added the include here.
  • WebProcess/WebPage/Cocoa/TextCheckingControllerProxy.mm:
9:10 AM Changeset in webkit [265143] by Jonathan Bedard
  • 3 edits in trunk/Tools

[webkitcorepy] Changes to Tools/Scripts/libraries should trigger EWS
https://bugs.webkit.org/show_bug.cgi?id=214998
<rdar://problem/66355658>

Reviewed by Aakash Jain.

  • BuildSlaveSupport/ews-build/steps.py:

(CheckPatchRelevance): Add Tools/Scripts/libraries.

  • BuildSlaveSupport/ews-build/steps_unittest.py:

(TestCheckPatchRelevance.test_relevant_webkitpy_patch):
(TestCheckPatchRelevance.test_relevant_libraries_patch):

9:00 AM Changeset in webkit [265142] by keith_miller@apple.com
  • 13 edits in trunk/Source/JavaScriptCore

Reduce over include usage in JSC
https://bugs.webkit.org/show_bug.cgi?id=215010

Reviewed by Mark Lam.

My first attempt to fix
https://bugs.webkit.org/show_bug.cgi?id=215009 by making it so we
don't include FastJITPermissions.h in TestWebKitAPI, was
unsuccessful. Mostly because I gave up after several hours of
building... I figure it's still worth it to land the last working
version I was able to get building.

  • assembler/MacroAssemblerCodeRef.h:
  • bytecode/CodeBlock.cpp:
  • bytecode/PolymorphicAccess.h:
  • inspector/agents/InspectorRuntimeAgent.cpp:
  • interpreter/CallFrame.h:
  • jit/ThunkGenerators.cpp:
  • llint/LLIntOffsetsExtractor.cpp:
  • runtime/TypeLocationCache.cpp:
  • runtime/VM.cpp:

(JSC::VM::getCTIStub):

  • runtime/VM.h:

(JSC::VM::getCTIStub): Deleted.

  • tools/JSDollarVM.cpp:
8:54 AM Changeset in webkit [265141] by keith_miller@apple.com
  • 3 edits in trunk/Tools

Fix build around broken internal SDK for iOS 13
https://bugs.webkit.org/show_bug.cgi?id=215009

Reviewed by Mark Lam.

We need to manually include the private headers because the system tries to hide them from us even on internal builds...

  • TestWebKitAPI/Configurations/TestWebKitAPI.xcconfig:
  • TestWebKitAPI/Configurations/TestWebKitAPILibrary.xcconfig:
8:36 AM Changeset in webkit [265140] by aakash_jain@apple.com
  • 2 edits in trunk/Tools

[ews] Add unit-tests for various builder factories
https://bugs.webkit.org/show_bug.cgi?id=214969

Reviewed by Jonathan Bedard.

  • BuildSlaveSupport/ews-build/factories_unittest.py: Added unit-tests.

(TestBuildFactory.test_generic_build_factory):
(TestBuildFactory.test_gtk_build_factory):
(TestBuildFactory.test_wpe_factory):
(TestBuildFactory.test_wincairo_factory):

7:03 AM Changeset in webkit [265139] by pvollan@apple.com
  • 8 edits in trunk/Source

[iOS] Issue a temporary extension to the MobileGestalt daemon when the MobileGestalt cache is invalid
https://bugs.webkit.org/show_bug.cgi?id=214965

Reviewed by Geoffrey Garen.

Source/WebCore/PAL:

Declare MobileGestalt queestion identifier.

  • pal/spi/ios/MobileGestaltSPI.h:

Source/WebKit:

When the MobileGestalt cache is invalid, some MG queries will fail in the WebContent process, since it has no access to the daemon.
This can be fixed by issuing a temporary extension to the daemon, and having the WebContent process query all relevant MG values
while holding the extension. This will bring the values into the in-memory cache, which will be valid after the extension to the
daemon has been revoked. We will still attempt to rebuild the MG cache if invalid, but since we now have a workaround for when the
cache is invalid, we can do this on a secondary thread to avoid blocking the main thread. We also only attempt to rebuild once now,
instead of every time a WebContent process is started. Additionally, add IOKit property read access to "platform-name", since that
is needed by a MG query.

No new tests, since testing this depends on having an invalid cache, which is rare, and non-trivial to enforce in the test
environment.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
  • Shared/WebProcessCreationParameters.cpp:

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

  • Shared/WebProcessCreationParameters.h:
  • UIProcess/Cocoa/WebProcessPoolCocoa.mm:

(WebKit::WebProcessPool::platformInitialize):
(WebKit::WebProcessPool::platformInitializeWebProcess):

  • WebProcess/cocoa/WebProcessCocoa.mm:

(WebKit::WebProcess::platformInitializeWebProcess):

3:57 AM Changeset in webkit [265138] by Carlos Garcia Campos
  • 11 edits
    1 delete in trunk/Source

[GTK] Mouse wheel events on horizontal scrollbar not correctly handled when AC mode is forced
https://bugs.webkit.org/show_bug.cgi?id=207113

Reviewed by Adrian Perez de Castro.

Source/WebCore:

Remove GTK specific code to invert scroll direction of wheel events.

  • page/EventHandler.cpp:

(WebCore::EventHandler::handleWheelEvent):
(WebCore::EventHandler::shouldSwapScrollDirection const): Deleted.

  • platform/SourcesGLib.txt:
  • platform/glib/EventHandlerGLib.cpp: Removed.

Source/WebKit:

Move the direction swap to the UI process before passing the event to the web
process. WebHitTestResultData::isScrollbar is now an enum with values No, Verttical, Horizontal. When a wheel
event is received in the widget we check whether we should invert the direction or not.

  • Shared/API/glib/WebKitHitTestResult.cpp:

(webkitHitTestResultCreate):
(webkitHitTestResultCompare):

  • Shared/WebHitTestResultData.cpp:

(WebKit::WebHitTestResultData::WebHitTestResultData):

  • Shared/WebHitTestResultData.h:
  • UIProcess/API/APIHitTestResult.h:

(API::HitTestResult::isScrollbar const):

  • UIProcess/API/glib/WebKitWebView.cpp:

(webkitWebViewMouseTargetChanged):

  • UIProcess/API/gtk/WebKitWebViewBase.cpp:

(shouldInvertDirectionForScrollEvent):
(webkitWebViewBaseScrollEvent):
(webkitWebViewBaseScroll):
(webkitWebViewBaseSetMouseIsOverScrollbar):

  • UIProcess/API/gtk/WebKitWebViewBasePrivate.h:
2:00 AM Changeset in webkit [265137] by svillar@igalia.com
  • 4 edits in trunk/Source/WebCore

[WebXR] Retrieve supported reference spaces from actual XR systems
https://bugs.webkit.org/show_bug.cgi?id=214187

Reviewed by Carlos Garcia Campos.

Each XR system supports a set of reference spaces which are used by WebXR to stablish
a spatial relationship with user's physical environment. The list of supported reference
spaces determine whether or not a session request succeeds or not, as it will refuse to
start a session with an unsupported reference space.

So far, no reference spaces were retrieved from the actual devices. This patch adds the
required OpenXR machinery to retrieve them. In particular, we have to create a XrSession
(although we don't have to start it) in order to retrieve the reference spaces. Since we
don't need it to show content to the user we can create it in headless mode and then discard
it afterwards when no longer needed.

  • Modules/webxr/WebXRSession.cpp:

(WebCore::WebXRSession::WebXRSession): Clarify a comment. Also s/TODO/FIXME/g.

  • platform/xr/openxr/PlatformXROpenXR.cpp:

(PlatformXR::isExtensionSupported): New method to check whether a specific extension
is supported.
(PlatformXR::Instance::Impl::checkInstanceExtensionProperties const): renamed from
enumerateInstanceExtensionProperties(). Returns whether or not the call succeeded.
(PlatformXR::Instance::Impl::Impl): Pass the list of enabled extensions to the instance.
(PlatformXR::Instance::enumerateImmersiveXRDevices): Log the systems found.
(PlatformXR::OpenXRDevice::OpenXRDevice):
(PlatformXR::OpenXRDevice::enumerateReferenceSpaces const): New method to list the
supported reference spaces by the XR system.
(PlatformXR::OpenXRDevice::collectSupportedSessionModes): Store reference spaces as
enabled features for supported modes.
(PlatformXR::OpenXRDevice::collectConfigurationViews): Renamed from
enumerateConfigurationViews().
(PlatformXR::Instance::Impl::enumerateInstanceExtensionProperties const): Deleted.
(PlatformXR::OpenXRDevice::enumerateConfigurationViews): Deleted.

  • platform/xr/openxr/PlatformXROpenXR.h:
12:45 AM Changeset in webkit [265136] by ysuzuki@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

[JSC] Follow-up changes after r265036
https://bugs.webkit.org/show_bug.cgi?id=214982

Reviewed by Darin Adler.

  • dfg/DFGOSRExit.cpp:

(JSC::DFG::OSRExit::compileExit): Remove dupe definitions in OSRExit.

  • jit/JITCall32_64.cpp:

(JSC::JIT::emit_op_iterator_open): We should use emitJumpSlowCaseIfNotJSCell(regT1).

12:15 AM Changeset in webkit [265135] by youenn@apple.com
  • 2 edits in trunk/Source/WebCore

Add LibWebRTCAudioModule logging
https://bugs.webkit.org/show_bug.cgi?id=214987

Reviewed by Eric Carlson.

  • platform/mediastream/libwebrtc/LibWebRTCAudioModule.cpp:

(WebCore::LibWebRTCAudioModule::RegisterAudioCallback):
(WebCore::LibWebRTCAudioModule::StartPlayout):
(WebCore::LibWebRTCAudioModule::StopPlayout):

Jul 30, 2020:

11:16 PM Changeset in webkit [265134] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebKit

Optimize WebsiteDataStoreConfiguration::copy
https://bugs.webkit.org/show_bug.cgi?id=215012
<rdar://problem/64263406>

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

The WebsiteDataStoreConfiguration constructor does some read/write heavy things.
We only want to do these things if we are not just going to overwrite the strings with strings from another WebsiteDataStoreConfiguration.
No change in behavior, just making things faster.

  • UIProcess/WebsiteData/WebsiteDataStoreConfiguration.cpp:

(WebKit::WebsiteDataStoreConfiguration::WebsiteDataStoreConfiguration):
(WebKit::WebsiteDataStoreConfiguration::copy const):

  • UIProcess/WebsiteData/WebsiteDataStoreConfiguration.h:

(WebKit::WebsiteDataStoreConfiguration::create):

11:05 PM Changeset in webkit [265133] by Simon Fraser
  • 2 edits in trunk/Source/WebCore

Minor RenderLayerCompositor::updateBackingAndHierarchy() cleanup
https://bugs.webkit.org/show_bug.cgi?id=215008

Reviewed by Zalan Bujtas.

Instead of setting child layers, and then adding another child (overflowControlLayer),
append overflowControlLayer to the vector and then set children.

No behavior change.

  • rendering/RenderLayerCompositor.cpp:

(WebCore::RenderLayerCompositor::updateBackingAndHierarchy):

10:51 PM Changeset in webkit [265132] by sbarati@apple.com
  • 2 edits in trunk/JSTests

Skip stress/operand-should-fit-in-abstract-heap-encoded-payload-format.js
https://bugs.webkit.org/show_bug.cgi?id=215001

Reviewed by Darin Adler.

The test takes > 4 minutes when run on an idle machine. That's too long.

  • stress/operand-should-fit-in-abstract-heap-encoded-payload-format.js:
9:49 PM Changeset in webkit [265131] by Simon Fraser
  • 2 edits in trunk/Source/WTF

Have TimingScope track the max event duration
https://bugs.webkit.org/show_bug.cgi?id=215006

Reviewed by Tim Horton.

Have TimingScope track and print the longest event, as well as the count and
mean duration.

  • wtf/TimingScope.cpp:

(WTF::TimingScope::scopeDidEnd):

9:43 PM Changeset in webkit [265130] by Lauro Moura
  • 2 edits in trunk/LayoutTests

[GTK][WPE] Garden three persistent failures from gtk release bot.

Unreviewed test gardening.

These were also affecting the debug and WPE bots.

  • platform/glib/TestExpectations:
8:44 PM Changeset in webkit [265129] by weinig@apple.com
  • 15 edits in trunk/Source/WebCore

It would be nice if the predicate taking functions in ParsingUtilities.h didn't require specifying the character type
https://bugs.webkit.org/show_bug.cgi?id=215002

Reviewed by Darin Adler.

Remove the need for specifying the character type by providing overloads for LChar and UChar
explicitly.

  • html/parser/HTMLSrcsetParser.cpp:

(WebCore::parseImageCandidatesFromSrcsetAttribute):

  • html/parser/ParsingUtilities.h:

(WebCore::characterPredicate):

  • html/track/VTTScanner.h:

(WebCore::characterPredicate):

  • loader/LinkHeader.cpp:

(WebCore::findURLBoundaries):
(WebCore::invalidParameterDelimiter):
(WebCore::parseParameterDelimiter):
(WebCore::parseParameterName):
(WebCore::skipQuotesIfNeeded):
(WebCore::parseParameterValue):
(WebCore::findNextHeader):

  • loader/ResourceCryptographicDigest.cpp:

(WebCore::parseCryptographicDigestImpl):
(WebCore::parseEncodedCryptographicDigestImpl):

  • loader/SubresourceIntegrity.cpp:

(WebCore::splitOnSpaces):

  • loader/appcache/ApplicationCacheManifestParser.cpp:

(WebCore::parseApplicationCacheManifest):

  • page/csp/ContentSecurityPolicyDirectiveList.cpp:

(WebCore::ContentSecurityPolicyDirectiveList::parseDirective):
(WebCore::ContentSecurityPolicyDirectiveList::parseReportURI):

  • page/csp/ContentSecurityPolicyMediaListDirective.cpp:

(WebCore::ContentSecurityPolicyMediaListDirective::parse):

  • page/csp/ContentSecurityPolicySourceList.cpp:

(WebCore::isSourceListNone):
(WebCore::ContentSecurityPolicySourceList::parse):
(WebCore::ContentSecurityPolicySourceList::parseSource):
(WebCore::ContentSecurityPolicySourceList::parseScheme):
(WebCore::ContentSecurityPolicySourceList::parseHost):
(WebCore::ContentSecurityPolicySourceList::parsePath):
(WebCore::ContentSecurityPolicySourceList::parsePort):
(WebCore::ContentSecurityPolicySourceList::parseNonceSource):

  • platform/DateComponents.cpp:

(WebCore::countDigits):

  • svg/SVGLengthList.cpp:

(WebCore::SVGLengthList::parse):

  • svg/SVGParserUtilities.cpp:

(WebCore::genericParseNumber):

  • svg/SVGParserUtilities.h:

(WebCore::skipOptionalSVGSpaces):

8:25 PM Changeset in webkit [265128] by Jonathan Bedard
  • 2 edits in trunk/Tools

[webkitcorepy] Add an auto-installer (Unreviewed follow-up fix)
https://bugs.webkit.org/show_bug.cgi?id=214606

Unreviewed development nit.

  • .gitignore: Add Scripts/libraries/autoinstalled to .gitignore.
8:18 PM Changeset in webkit [265127] by Ryan Haddad
  • 2 edits in trunk/Source/WebKit

Unreviewed second attempt to fix Catalyst build after r265084.

  • WebProcess/WebPage/Cocoa/TextCheckingControllerProxy.mm:
7:05 PM Changeset in webkit [265126] by weinig@apple.com
  • 3 edits in trunk/Source/WebCore

Convert DateComponents to use StringParsingBuffer
https://bugs.webkit.org/show_bug.cgi?id=213929

Reviewed by Darin Adler.

  • Switches string parsing in DateComponents to using StringParsingBuffer, making use of ParsingUtilities to streamline / simplify the code.
  • Moves a few constant values only used in DateComponents.cpp to DateComponents.cpp
  • Rename toInt in DateComponents.cpp to parseInt, and have use an Optional return value rather than bool + out-parameter.
  • Add new parseIntWithinLimits that also checks that parsed value is within specfied limits, as this is what almost all of the int parsing in DateComponents needs.
  • platform/DateComponents.cpp:

(WebCore::countDigits):
(WebCore::parseInt):
(WebCore::parseIntWithinLimits):
(WebCore::DateComponents::parseYear):
(WebCore::withinHTMLDateLimits):
(WebCore::createFromString):
(WebCore::DateComponents::fromParsingMonth):
(WebCore::DateComponents::fromParsingDate):
(WebCore::DateComponents::fromParsingWeek):
(WebCore::DateComponents::fromParsingTime):
(WebCore::DateComponents::fromParsingDateTimeLocal):
(WebCore::DateComponents::fromParsingDateTime):
(WebCore::DateComponents::parseTimeZone):
(WebCore::DateComponents::parseMonth):
(WebCore::DateComponents::parseDate):
(WebCore::DateComponents::parseWeek):
(WebCore::DateComponents::parseTime):
(WebCore::DateComponents::parseDateTimeLocal):
(WebCore::DateComponents::parseDateTime):
(WebCore::DateComponents::setMonthsSinceEpoch):
(WebCore::DateComponents::setMillisecondsSinceEpochForWeek):
(WebCore::toInt): Deleted.

  • platform/DateComponents.h:

(WebCore::DateComponents::minimumYear): Deleted.
(WebCore::DateComponents::maximumYear): Deleted.

6:44 PM Changeset in webkit [265125] by Nikita Vasilyev
  • 2 edits in trunk/Source/WebInspectorUI

REGRESSION (r?): Web Inspector: Timelines: blue border below selected timeline when in edit mode
https://bugs.webkit.org/show_bug.cgi?id=214979
<rdar://problem/66338399>

Reviewed by Devin Rousso.

Color the top border after the selected item with the same background as the selected item.
When editing, don't color that border with the selected item background.

  • UserInterface/Views/TimelineOverview.css:

(.timeline-overview.edit-instruments > .tree-outline.timelines .item:not(:first-child),):
(body:matches(.window-inactive, .window-docked-inactive) .timeline-overview:not(.edit-instruments) > .tree-outline.timelines .item.selected + .item):
(body:not(.window-inactive, .window-docked-inactive) .timeline-overview:not(.edit-instruments) > .tree-outline.timelines:focus-within .item.selected + .item):
(@media (prefers-color-scheme: dark) .timeline-overview:not(.frames) > .graphs-container > .timeline-overview-graph:nth-child(even)):
(.timeline-overview > .tree-outline.timelines .item.selected + .item): Deleted.
(body:not(.window-inactive, .window-docked-inactive) .timeline-overview > .tree-outline.timelines:focus-within .item.selected + .item): Deleted.
(@media (prefers-color-scheme: dark) .timeline-overview.edit-instruments > .tree-outline.timelines .item:not(:first-child),): Deleted.
(@media (prefers-color-scheme: dark) .timeline-overview > .tree-outline.timelines .item.selected + .item): Deleted.

6:14 PM Changeset in webkit [265124] by Fujii Hironori
  • 2 edits in trunk/Tools

webkitpy: If LC_ALL is set to a empty string, svn doesn't use the password store
https://bugs.webkit.org/show_bug.cgi?id=214983

Reviewed by Darin Adler.

If LC_ALL is set to a empty string, svn doesn't use the password
store in my environment. I'm using svn with gpg-agent on Ubuntu
20.04 (svn version 1.13.0, gpg-agent 2.2.19).

r101274 (Bug 68691) has set LC_ALL to a empty string.

If I invoke 'svn ci' on my terminal, svn askes gpg-agent my
password as expected, but if I invoke 'LC_ALL= svn ci', svn askes
my password by itself.

  • Scripts/webkitpy/common/host.py:

(Host._engage_awesome_locale_hacks): Set the env var LC_ALL to 'en_US.UTF-8'.

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

[webkitcorepy] Make scripts called with sudo use a userspace autoinstall
https://bugs.webkit.org/show_bug.cgi?id=214981
<rdar://problem/66342996>

Reviewed by Dewei Zhu.

Sudo can bring havoc to the autoinstaller, because the directories it creates will belong
to the root user. We should ensure that the directories created by a sudo script call
are owned by the user that called sudo, when possible.

  • Scripts/libraries/webkitcorepy/webkitcorepy/init.py:
  • Scripts/libraries/webkitcorepy/webkitcorepy/autoinstall.py:

(Package.install): Ensure that installed packages are not owned by root, if possible.
(AutoInstall.userspace_should_own): Ensure that a directory or file is not owned by root, if possible.
(AutoInstall.set_directory): Ensure that the directories containing auto-installed packages are not
owned by root, if possible.

5:17 PM Changeset in webkit [265122] by keith_miller@apple.com
  • 4 edits in trunk/Source

Remove UB from nonPACBitsMask computation
https://bugs.webkit.org/show_bug.cgi?id=214996

Reviewed by Tadeu Zagallo.

For non-ARM64E we now set numberOfPACBits to zero, which was causing UB in our computation of the nonPACBitsMask.

Source/JavaScriptCore:

  • assembler/MacroAssemblerARM64E.h:

Source/WTF:

  • wtf/CagedPtr.h:
5:15 PM Changeset in webkit [265121] by Devin Rousso
  • 1 edit
    3 adds in trunk/Source/WebInspectorUI

Web Inspector: Add another Protocol Version (iOS 14.0)
https://bugs.webkit.org/show_bug.cgi?id=214991
<rdar://problem/59156892>

Reviewed by Brian Burg.

  • UserInterface/Protocol/Legacy/14.0/InspectorBackendCommands.js: Added.
  • Versions/Inspector-iOS-14.0.json: Added.
5:12 PM Changeset in webkit [265120] by Nikita Vasilyev
  • 21 edits in trunk/Source/WebInspectorUI

Web Inspector: on Big Sur, match OS background, text, and border colors
https://bugs.webkit.org/show_bug.cgi?id=214366
<rdar://problem/65617290>

Reviewed by Devin Rousso.

Refactoring:

  • Remove --background-color-code because it was always the same value as --background-color-content.
  • Replace commonly hardcoded hsl(0, 0%, 97%) background with --background-color-intermediate.
  • UserInterface/Views/AnimationDetailsSidebarPanel.css:

(.sidebar > .panel.details.animation > .content > .details-section.animation-keyframes .details-section):
(.sidebar > .panel.details.animation > .content > .details-section.animation-keyframes .details-section .row.styles .CodeMirror):

  • UserInterface/Views/BoxShadowEditor.css:

(.box-shadow-editor > table > tr > td > input[type="text"]):

  • UserInterface/Views/BreakpointActionView.css:

(@media (prefers-color-scheme: dark) .breakpoint-action-eval-editor):

  • UserInterface/Views/BreakpointPopoverController.css:

(.edit-breakpoint-popover-condition):

  • UserInterface/Views/ChangesDetailsSidebarPanel.css:

(.sidebar > .panel.changes-panel .css-rule):

  • UserInterface/Views/ComputedStyleSection.css:

(.computed-style-section .computed-property-item.expanded):
(.computed-style-properties.details-section > .content,):

  • UserInterface/Views/ConsolePrompt.css:

(.console-prompt):
(.console-prompt > .CodeMirror-scroll):

  • UserInterface/Views/CookiePopover.css:

(.popover .cookie-popover-content > table > tr > td > input:matches([type="text"], [type="datetime-local"])):

  • UserInterface/Views/DetailsSection.css:

(.details-section .details-section):
(.details-section .details-section > .header):
Refactor. --background-color-content is the same color value.

(.details-section .details-section:not(.collapsed) > .header):
Refactor. --border-color-secondary is the same color value.

(.details-section > .content > .group:nth-child(even)):
(.details-section > .content > .group > .row:matches(.empty, .text)):
(@media (prefers-color-scheme: dark) .details-section > .header > label,):

  • UserInterface/Views/DividerNavigationItem.css:

(.navigation-bar .item.divider):
Don't use hairline dividers. MacOS Catalina and Big Sur don't use hairline borders.

  • UserInterface/Views/GraphicsOverviewContentView.css:

(.content-view.graphics-overview > section > .header):
(@media (prefers-color-scheme: dark) .content-view.graphics-overview):

  • UserInterface/Views/LocalResourceOverridePopover.css:

(.popover .local-resource-override-popover-content .editor):

  • UserInterface/Views/LogContentView.css:

(@media (prefers-color-scheme: dark) .console-messages):

  • UserInterface/Views/QuickConsole.css:

(.quick-console):

  • UserInterface/Views/ScopeChainDetailsSidebarPanel.css:

(@media (prefers-color-scheme: dark) .watch-expression-editor):

  • UserInterface/Views/SpreadsheetCSSStyleDeclarationSection.css:

(.spreadsheet-css-declaration):
(.spreadsheet-css-declaration.locked):

  • UserInterface/Views/SyntaxHighlightingDefaultTheme.css:

(@media (prefers-color-scheme: dark) .cm-s-default,):

  • UserInterface/Views/TabBar.css:

(body.big-sur.docked .tab-bar > .border.bottom):

  • UserInterface/Views/URLBreakpointPopover.css:

(.popover .url-breakpoint-content > .editor-wrapper > .editor):

  • UserInterface/Views/Variables.css:

(:root):
Add --separator-color, which has the same semantics as separator color from Apple HIG
(https://developer.apple.com/design/human-interface-guidelines/ios/visual-design/color/#dynamic-system-colors).
--border-color-secondary was only defined in the dark mode. Define it in the light mode, too.

(body.window-inactive):
Remove unused variable.

(body.big-sur):
(@media (prefers-color-scheme: dark) :root):
(@media (prefers-color-scheme: dark) body.big-sur):
(@media (prefers-color-scheme: dark) body.window-inactive):
(body.window-inactive *): Remove unnecessarily greedy selector.

4:54 PM Changeset in webkit [265119] by Ryan Haddad
  • 2 edits in trunk/Source/WebCore

Unreviewed attempt to fix Catalyst build after r265084.

  • editing/cocoa/DictionaryLookup.mm:
4:35 PM Changeset in webkit [265118] by Devin Rousso
  • 14 edits in trunk/Source/WebInspectorUI

Web Inspector: only show scrollbars when needed
https://bugs.webkit.org/show_bug.cgi?id=214980

Reviewed by Brian Burg.

Prefer overflow: auto; instead of overflow: scroll; wherever possible, as when using a
hardware mouse scrollbars are always shown for the latter, even when the content fits.

  • UserInterface/Debug/UncaughtExceptionReporter.css:

(.sheet-container):

  • UserInterface/Views/AuditTestContentView.css:

(.content-view-container > .content-view.audit-test):

  • UserInterface/Views/CanvasOverviewContentView.css:

(.content-view.canvas-overview > .content-view.canvas.saved-recordings .tree-outline):

  • UserInterface/Views/CanvasSidebarPanel.css:

(.sidebar > .panel.navigation.canvas.has-recordings > .content > .recording-content):

  • UserInterface/Views/DOMEventsBreakdownView.css:

(.waterfall-popover-content .dom-events-breakdown):

  • UserInterface/Views/DOMNodeEventsContentView.css:

(.dom-node-details.dom-events):

  • UserInterface/Views/GraphicsOverviewContentView.css:

(.content-view.graphics-overview):

  • UserInterface/Views/LocalRemoteObjectContentView.css:

(.content-view.local-remote-object):

  • UserInterface/Views/NetworkResourceDetailView.css:

(.content-view.resource-details):

  • UserInterface/Views/OpenResourceDialog.css:

(.open-resource-dialog > .tree-outline):

  • UserInterface/Views/SourceCodeTextEditor.css:

(.popover .debugger-popover-content > .body):

  • UserInterface/Views/CPUTimelineView.css:

(.timeline-view.cpu): Added.
(body .timeline-view.cpu): Deleted.

  • UserInterface/Views/MemoryTimelineView.css:

(.timeline-view.memory): Added.
(body .timeline-view.memory): Deleted.
Although !important is kind of a "hack", adding body to the selector is more of a "hack"
and is easier to unintentionally break.

4:31 PM Changeset in webkit [265117] by Wenson Hsieh
  • 3 edits
    2 adds in trunk

[iPadOS] Two taps are required to choose a country/region when creating an account on ea.com
https://bugs.webkit.org/show_bug.cgi?id=214984
<rdar://problem/66261490>

Reviewed by Devin Rousso.

Source/WebKit:

On the desktop version of the account creation page on ea.com, tapping a custom selection menu element
programmatically focuses a real select element that is positioned far outside the viewport. As a result, on
iPad, we still attempt to show a popover for this focused select at the element location. This popover is not
visible to the user, but on iOS 13, it still steals modal focus from the web view, which means that an
additional tap anywhere in the window is required to dismiss the (invisible) popover before the user can choose
one of the options in the custom in-page menu that is shown.

Furthermore, upon choosing one of these options, the page programmatically focuses the offscreen select again.
This causes us to re-present the offscreen popover, which requires yet another tap to dismiss on iOS 13.
However, on iOS 14, this actually results in a crash when attempting to scroll the popover's inner UITableView
to the selected row.

To fix both the crash on iOS 14 and the multiple redundant taps required to dismiss the popover on iOS 13, avoid
showing popovers altogether if the popover's presentation rect is outside the bounds of the content view, since
we cannot reasonably expect a user to interact with such a popover anyways.

Test: fast/forms/ios/repeatedly-focus-offscreen-select.html

  • UIProcess/ios/forms/WKFormPopover.mm:

(-[WKRotatingPopover presentPopoverAnimated:]):

LayoutTests:

Add a test that exercises both the crash and the UI bug on iPadOS. Note that this test already passes on iOS,
where we don't use popovers for focused selects.

  • fast/forms/ios/repeatedly-focus-offscreen-select-expected.txt: Added.
  • fast/forms/ios/repeatedly-focus-offscreen-select.html: Added.
4:22 PM Changeset in webkit [265116] by dino@apple.com
  • 7 edits in trunk

[WebGL] Safari snapshots of WebGL content in the tab picker don't work
https://bugs.webkit.org/show_bug.cgi?id=214452
<rdar://problem/21243082>

Source/WebCore:

Original patch by Justin Fan. Reviewed by Darin Adler.

Test is in TestWebKitAPI/Tests/WebKitCocoa/WKWebViewSnapshot.mm.

  • html/HTMLCanvasElement.cpp:

(WebCore::HTMLCanvasElement::paint): Will properly request a paint when a snapshot is requested.

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

(WebCore::WebGLRenderingContextBase::paintRenderingResultsToCanvas): Only clear the last snapshot if readPixels will succeed.

  • rendering/RenderHTMLCanvas.cpp:

(WebCore::RenderHTMLCanvas::paintReplaced):

Tools:

Test for snapshotting. Marked as PLATFORM(MAC) for now.

  • TestWebKitAPI/Tests/WebKitCocoa/WKWebViewSnapshot.mm:

(TEST):

4:08 PM Changeset in webkit [265115] by jer.noble@apple.com
  • 19 edits
    2 adds in trunk

[Cocoa] Adopt -[AVContentKeyRequest willOutputBeObscuredDueToInsufficientExternalProtectionForDisplays:]
https://bugs.webkit.org/show_bug.cgi?id=214659
<rdar://problem/63555006>

Reviewed by Darin Adler.
Source/WebCore:

Use the new WTF::Observer object as the listener type for notifying clients of display changes. When a displayChanged
event is observed, use the new AVContentKeyRequest -willOutputBeObscuredDueToInsufficientExternalProtectionForDisplays:
to set the keyStatus for that request appropriately.

  • Modules/encryptedmedia/MediaKeySession.cpp:

(WebCore::MediaKeySession::MediaKeySession):
(WebCore::MediaKeySession::displayID):
(WebCore::MediaKeySession::displayChanged):

  • Modules/encryptedmedia/MediaKeySession.h:
  • dom/Document.cpp:

(WebCore::Document::windowScreenDidChange):
(WebCore::Document::addDisplayChangedObserver):

  • dom/Document.h:
  • platform/encryptedmedia/CDMInstanceSession.h:

(WebCore::CDMInstanceSession::displayChanged):

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

(-[WebCoreFPSContentKeySessionDelegate contentKeySession:externalProtectionStatusDidChangeForContentKeyRequest:]):
(WebCore::CDMInstanceFairPlayStreamingAVFObjC::externalProtectionStatusDidChangeForContentKeyRequest):
(WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::displayChanged):
(WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::externalProtectionStatusDidChangeForContentKeyRequest):
(WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::updateProtectionStatusForDisplayID):

Source/WebCore/PAL:

  • pal/spi/cocoa/AVFoundationSPI.h:

Source/WebKit:

Support clients in the GPU process asking for (and receiving updates to) the current displayID.

  • GPUProcess/media/RemoteCDMInstanceSessionProxy.cpp:

(WebKit::RemoteCDMInstanceSessionProxy::displayIDChanged):

  • GPUProcess/media/RemoteCDMInstanceSessionProxy.h:
  • GPUProcess/media/RemoteCDMInstanceSessionProxy.messages.in:

Source/WTF:

Add a new Observer template class. This allows classes to provide support for listeners without requiring
those listeners to subclass from a pure-virtual (and CanMakeWeakPtr capable) client class. Instead, clients
can just create one of these Observer objects, and pass a WeakPtr to that observer to the notifying object.
When the client object destroys the observer, it is automatically unregistered when the observing object
uses a WeakHashSet.

  • WTF.xcodeproj/project.pbxproj:
  • wtf/CMakeLists.txt:
  • wtf/Observer.h: Added.

(WTF::Observer<Out):

Tools:

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WTF/Observer.cpp: Added.

(TestWebKitAPI::TEST):

3:27 PM Changeset in webkit [265114] by commit-queue@webkit.org
  • 10 edits in trunk

[WebGL2] Buffer updates
https://bugs.webkit.org/show_bug.cgi?id=209511

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

Various fixes in bufferData, bufferSubData, and getBufferSubData. Passes all WebGL conformance tests in conformance/buffers/* and conformance2/buffers/*.

  • html/canvas/WebGL2RenderingContext.cpp:

(WebCore::WebGL2RenderingContext::sliceArrayBufferView):
(WebCore::WebGL2RenderingContext::getBufferSubData):

  • html/canvas/WebGLRenderingContextBase.cpp:

(WebCore::WebGLRenderingContextBase::bufferData):
(WebCore::WebGLRenderingContextBase::bufferSubData):

  • html/canvas/WebGLRenderingContextBase.h:
  • html/canvas/WebGLRenderingContextBase.idl:
3:26 PM Changeset in webkit [265113] by keith_miller@apple.com
  • 5 edits in trunk/Source

Compute number of PAC bits from what the OS says its address space is
https://bugs.webkit.org/show_bug.cgi?id=214986

Reviewed by Saam Barati.

Source/JavaScriptCore:

  • assembler/MacroAssemblerARM64E.h:

Source/WTF:

  • wtf/CagedPtr.h:
  • wtf/PtrTag.h:
3:17 PM Changeset in webkit [265112] by Caio Lima
  • 3 edits
    1 add in trunk

[JSC][32-bits] interator_next should check for EmptyValue instead of undefined to execute LLInt fast path
https://bugs.webkit.org/show_bug.cgi?id=214963

Reviewed by Yusuke Suzuki.

JSTests:

  • stress/invalidate-array-iterator-prototype-next.js: Added.

Source/JavaScriptCore:

There was a bug in previous implementation that allows execution of
interator_next fast path if we set ArrayIterator.prototype.next to

  1. This happened because we were not properly checking ValueEmpty

from m_next. This patch is fixing such issue and doing the proper
verification.

  • llint/LowLevelInterpreter32_64.asm:
3:08 PM Changeset in webkit [265111] by Alan Coon
  • 1 copy in releases/Apple/Safari Technology Preview/Safari Technology Preview 111

Added a tag for Safari Technology Preview release 111.

3:08 PM Changeset in webkit [265110] by Alan Coon
  • 1 copy in releases/Apple/Safari Technology Preview/Safari Technology Preview 110

Added a tag for Safari Technology Preview release 110.

3:07 PM Changeset in webkit [265109] by Alan Coon
  • 1 copy in releases/Apple/Safari Technology Preview/Safari Technology Preview 109

Added a tag for Safari Technology Preview release 109.

3:07 PM Changeset in webkit [265108] by Alan Coon
  • 1 copy in releases/Apple/Safari Technology Preview/Safari Technology Preview 108

Added a tag for Safari Technology Preview release 108.

3:06 PM Changeset in webkit [265107] by Alan Coon
  • 1 copy in releases/Apple/Safari Technology Preview/Safari Technology Preview 107

Added a tag for Safari Technology Preview release 107.

3:06 PM Changeset in webkit [265106] by Alan Coon
  • 1 copy in releases/Apple/Safari Technology Preview/Safari Technology Preview 106

Added a tag for Safari Technology Preview release 106.

3:06 PM Changeset in webkit [265105] by Alan Coon
  • 1 copy in releases/Apple/Safari Technology Preview/Safari Technology Preview 105

Added a tag for Safari Technology Preview release 105.

3:04 PM Changeset in webkit [265104] by Alan Coon
  • 1 copy in releases/Apple/Safari Technology Preview/Safari Technology Preview 104

Added a tag for Safari Technology Preview release 104.

3:04 PM Changeset in webkit [265103] by Alan Coon
  • 1 copy in releases/Apple/Safari Technology Preview/Safari Technology Preview 103

Added a tag for Safari Technology Preview release 103.

3:04 PM Changeset in webkit [265102] by Alan Coon
  • 1 copy in releases/Apple/Safari Technology Preview/Safari Technology Preview 102

Added a tag for Safari Technology Preview release 102.

3:03 PM Changeset in webkit [265101] by Alan Coon
  • 1 copy in releases/Apple/Safari Technology Preview/Safari Technology Preview 101

Added a tag for Safari Technology Preview release 101.

3:03 PM Changeset in webkit [265100] by Alan Coon
  • 1 copy in releases/Apple/Safari Technology Preview/Safari Technology Preview 100

Added a tag for Safari Technology Preview release 100.

3:01 PM Changeset in webkit [265099] by Alan Coon
  • 1 copy in releases/Apple/Safari Technology Preview/Safari Technology Preview 99

Added a tag for Safari Technology Preview release 99.

2:51 PM Changeset in webkit [265098] by graouts@webkit.org
  • 6 edits in trunk

[ iOS ] webanimations/accelerated-animation-with-easing.html is still flaky
https://bugs.webkit.org/show_bug.cgi?id=214327
<rdar://problem/65569237>

Reviewed by Dean Jackson.

Source/WebKit:

When we fixed bug 213495 in r263506, we started calling PlatformCAAnimation::setTimingFunction()
to set the animation-wide timing function of CSS Animations and JS-originated animations alike.
However, we neglected to update PlatformCAAnimationRemote, used on iOS, to be able to handle
both animation-wide timing functions as well as keyframe-specific timing functions. This patch
adds a new "timingFunction" member to PlatformCAAnimationRemote::Properties to allow for this
and this new member is used in setTimingFunction() and copyTimingFunctionFrom(). Finally, after
the animation is decoded in the UI process, we call -[CAKeyframeAnimation setTimingFunction:]
inside addAnimationToLayer() to use this animation-wide timing function.

This fixes the test added originally in r263506 which would only work flakily, a symptom of this
missing implementation on iOS.

  • WebProcess/WebPage/RemoteLayerTree/PlatformCAAnimationRemote.h:
  • WebProcess/WebPage/RemoteLayerTree/PlatformCAAnimationRemote.mm:

(WebKit::encodeTimingFunction):
(WebKit::decodeTimingFunction):
(WebKit::PlatformCAAnimationRemote::Properties::encode const):
(WebKit::PlatformCAAnimationRemote::Properties::decode):
(WebKit::PlatformCAAnimationRemote::setTimingFunction):
(WebKit::PlatformCAAnimationRemote::copyTimingFunctionFrom):
(WebKit::addAnimationToLayer):
(WebKit::operator<<):

LayoutTests:

Remove the flaky expectation and remove the extra tolerance added in r263761 when it was thought that
this test was merely flaky and not completely broken on iOS as it turned out to be.

  • platform/ios-wk2/TestExpectations:
  • webanimations/accelerated-animation-with-easing.html:
2:44 PM Changeset in webkit [265097] by sbarati@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

Strip pointers instead of authing for byteOffset to not allow for a possible way to guess data pac
https://bugs.webkit.org/show_bug.cgi?id=214952

Reviewed by Keith Miller.

In the old way of doing things, we would auth the vector pointer before subtracting
the base from it. Since we never validated the auth, this allowed for a
potential data-PAC bypass by just repeatedly calling byteOffset in a loop
and observing the integer result of the operation.

Since byteOffset does no loads/stores, it suffices to just strip the PAC
bits before doing the subtraction. This eliminates any such attacks like
the above because the PAC bits are ignored.

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileGetTypedArrayByteOffset):

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileGetTypedArrayByteOffset):

2:44 PM Changeset in webkit [265096] by ddkilzer@apple.com
  • 4 edits in trunk/Tools

check-webkit-style should enforce acronym capitalization at start/end of an identifier
<https://webkit.org/b/214954>

Reviewed by Jonathan Bedard.

  • DumpRenderTree/mac/DumpRenderTree.mm:

(shouldIgnoreWebCoreNodeLeaks):
(changeWindowScaleIfNeeded):

  • Fix case issues in variables using URL acronym.
  • Scripts/webkitpy/style/checkers/cpp.py:

(_check_identifier_name_for_acronyms): Add.

  • This contains the logic to report acronyms with invalid case at the start and at the end of an identifer.

(check_identifier_name_in_declaration):

  • Keep track of whether the identifer came from a class, namespace or struct.
  • Fix bug where auto variables would not be checked because auto was removed with other non-type keywords like inline, leaving no type for the variable. Add a comment to describe what this line is doing.
  • Fix bug when removing "new" that changed an identifier named "newURL" to "URL".
  • Add call to _check_identifier_name_for_acronyms() to implement the check.

(CppChecker):

  • Add 'readability/naming/acronym' to the list of active checkers.
  • Scripts/webkitpy/style/checkers/cpp_unittest.py:

(WebKitStyleTest.test_identifier_names_with_acronyms):

  • Add tests. About half of the tests were taken from actual code that initially caused false positives during development.
2:28 PM Changeset in webkit [265095] by jer.noble@apple.com
  • 11 edits in trunk

[Cocoa] Make DecoderTest run against .mp4 files; add rate-limiting.
https://bugs.webkit.org/show_bug.cgi?id=214807

Reviewed by Darin Adler.

PerformanceTests:

Look up the UTI type of the specified file, and create the appropriate SourceBufferParser
by passing in the ContentType (converted from UTI). Also, add a --rate-limit flag which
causes the decompression session to run at the same FPS as the underlying media.

  • DecoderTest/DecoderTest.xcodeproj/project.pbxproj:
  • DecoderTest/DecoderTest/main.mm:

(main):

Source/WebCore:

Export registerWebKitVP9Decoder() from VP9UtilitiesCocoa instead of LibWebRTCProvider to make it easier
for DecodeTest to import, as LibWebRTCProvider also pulls in a bunch of libwebrtc headers. Also, export
SourceBufferParser.h so DecoderTest can create parsers for fMP4 files.

  • SourcesCocoa.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • platform/graphics/cocoa/VP9UtilitiesCocoa.h:
  • platform/graphics/cocoa/VP9UtilitiesCocoa.mm:

(WebCore::registerWebKitVP9Decoder):

Source/WebKit:

  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::enableVP9Decoder):

2:24 PM Changeset in webkit [265094] by Beth Dakin
  • 2 edits in trunk/Tools

Make report-non-inclusive-language ignore xcuserstate
https://bugs.webkit.org/show_bug.cgi?id=214985

Reviewed by Darin Adler.

Ignore xcuserstate since it introduces random noise.

  • Scripts/report-non-inclusive-language:
2:21 PM Changeset in webkit [265093] by commit-queue@webkit.org
  • 14 edits in trunk/LayoutTests

[WebGL2] Enable conformance2/textures/{image,video} and related layout tests
https://bugs.webkit.org/show_bug.cgi?id=214977

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

Enable dozens more WebGL 2.0 conformance tests, most
significantly:

webgl/2.0.0/conformance/textures/image/*
webgl/2.0.0/conformance[2]/textures/video/*

which are now passing completely.

  • TestExpectations:
  • webgl/2.0.0/conformance2/textures/video/tex-2d-r11f_g11f_b10f-rgb-float-expected.txt:
  • webgl/2.0.0/conformance2/textures/video/tex-2d-r11f_g11f_b10f-rgb-half_float-expected.txt:
  • webgl/2.0.0/conformance2/textures/video/tex-2d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev-expected.txt:
  • webgl/2.0.0/conformance2/textures/video/tex-2d-r16f-red-float-expected.txt:
  • webgl/2.0.0/conformance2/textures/video/tex-2d-r16f-red-half_float-expected.txt:
  • webgl/2.0.0/conformance2/textures/video/tex-2d-r32f-red-float-expected.txt:
  • webgl/2.0.0/conformance2/textures/video/tex-2d-rg16f-rg-float-expected.txt:
  • webgl/2.0.0/conformance2/textures/video/tex-2d-rg16f-rg-half_float-expected.txt:
  • webgl/2.0.0/conformance2/textures/video/tex-2d-rg32f-rg-float-expected.txt:
  • webgl/2.0.0/conformance2/textures/video/tex-2d-rg8-rg-unsigned_byte-expected.txt:
  • webgl/2.0.0/conformance2/textures/video/tex-2d-rg8ui-rg_integer-unsigned_byte-expected.txt:
  • webgl/2.0.0/conformance2/textures/video/tex-2d-rgb5_a1-rgba-unsigned_byte-expected.txt:
1:14 PM Changeset in webkit [265092] by rniwa@webkit.org
  • 6 edits
    2 adds in trunk

Clicking on a shadow DOM does not move the selection to the focused element when delegatesFocus is set to true
https://bugs.webkit.org/show_bug.cgi?id=214859
<rdar://problem/66192901>

Reviewed by Wenson Hsieh.

Source/WebCore:

The bug was caused by EventHandler moving the selection to where the user had clicked, not to where the focus
had been delegated, which is a uniquely WebKit behavior. Fixed the bug by revealing the focused element as done
in Element::focus in EventHandler::dispatchMouseEvent and avoid updating the selection to the clicked point
later in EventHandler::handleMousePressEventSingleClick by adding an early exit.

Test: fast/shadow-dom/delegates-focus-and-types-into-input.html

  • dom/Element.cpp:

(WebCore::Element::focus):
(WebCore::Element::revealFocusedElement): Extracted from Element::focus.

  • dom/Element.h:
  • page/EventHandler.cpp:

(WebCore::EventHandler::handleMousePressEventSingleClick): Added an early exit when dispatchMouseEvent had
delegated the focus to an element different from the one the user had clicked.
(WebCore::EventHandler::dispatchMouseEvent): Added a code to reveal the newly focused element when the focus
had been delegated.

  • page/EventHandler.h:

LayoutTests:

Added a regression test.

  • fast/shadow-dom/delegates-focus-and-types-into-input-expected.txt: Added.
  • fast/shadow-dom/delegates-focus-and-types-into-input.html: Added.
11:25 AM Changeset in webkit [265091] by timothy_horton@apple.com
  • 11 edits in trunk

Web content gets stuck in an inactive state (no cursor updates or text insertion caret) when activating a tab with a thumbnail visible
https://bugs.webkit.org/show_bug.cgi?id=214962
<rdar://problem/65670984>

Reviewed by Wenson Hsieh.

Source/WebCore:

New API test: WebKit.WKThumbnailViewResetsViewStateWhenUnparented

  • testing/Internals.cpp:

(WebCore::Internals::isPageActive const):

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

Add a "view window is active" getter.

Source/WebKit:

  • UIProcess/Cocoa/WebViewImpl.mm:

(WebKit::WebViewImpl::setThumbnailView):
When WKThumbnailView is unparented, invalidate all activity state bits.
We do this because many of the functions that compute activity state bits
use the WKThumbnailView's window while it is parented. When it is unparented,
and we switch back to using the WKWebView's window, we mustn't get stuck
with activity state bits from WKThumbnailView's window.

This was particularly problematic in the case of the WKThumbnailViews
used for tab hover previews, because that window is not key, so we'd get
stuck with the inactive-window state, resulting in a lack of cursor updates,
a hidden text caret, the wrong selection color, etc.

  • UIProcess/mac/PageClientImplMac.mm:

(WebKit::PageClientImpl::isViewWindowActive):
While writing the API test for this, I noticed that isViewWindowActive
returns YES if there is no key window AND WKWebView is unparented
([NSApp keyWindow] == activeWindow() == nil).
This seems completely insane (how can the window be active if it doesn't
exist?), and breaks the test, so ensure that we only say YES if we actually
have a window.

Tools:

  • TestWebKitAPI/Tests/WebKit/WKThumbnailView.mm:

(TestWebKitAPI::TEST):
Add a test ensuring that we go back to the active-window state after
unparenting a WKThumbnailView that was installed in an inactive window.

(-[WKThumbnailViewDelegate webView:didFinishNavigation:]): Deleted.

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

(-[OffscreenWindow initWithSize:]):
(-[OffscreenWindow initWithSize:isKeyWindow:]):
(-[OffscreenWindow isKeyWindow]):

11:20 AM Changeset in webkit [265090] by ysuzuki@apple.com
  • 2 edits in trunk/JSTests

Unreviewed, fix bottom-tuple.js test
https://bugs.webkit.org/show_bug.cgi?id=214956

Only thing we would like to check in this test is whether this does not crash.

  • wasm/stress/bottom-tuple.js:

(catch): Deleted.

10:30 AM Changeset in webkit [265089] by Peng Liu
  • 2 edits in trunk/Source/WebKit

ASSERTION FAILED: !isInRoutingArbitrationForArbitrator(proxy) in WebKit::SharedArbitrator::beginRoutingArbitrationForArbitrator
https://bugs.webkit.org/show_bug.cgi?id=214904

Reviewed by Jer Noble.

Only add an AudioSessionRoutingArbitratorProxy to the WeakHashSet (m_arbitrators)
if the routing arbitration is completed successfully.

  • UIProcess/Media/cocoa/AudioSessionRoutingArbitratorProxyCocoa.mm:

(WebKit::SharedArbitrator::beginRoutingArbitrationForArbitrator):

10:12 AM Changeset in webkit [265088] by graouts@webkit.org
  • 3 edits
    2 adds in trunk

[iOS] Unable to swipe on IMDB.com after long press on image
https://bugs.webkit.org/show_bug.cgi?id=214968
<rdar://problem/66234421>

Reviewed by Wenson Hsieh.

Source/WebCore:

When a long press occurs on an <img>, a system drag interaction is initiated on iOS. In WebCore,
EventHandler::tryToBeginDragAtPoint() is called and a synthetic mouse event is produced, causing
handleMousePressEvent() to be called. Further down the call chain, dispatchPointerEventIfNeeded()
is called and a valid PointerEvent is generated in PointerCaptureController::pointerEventForMouseEvent()
with "pointerType" set to "mouse", even though there is already a touch interaction initiated.

We now check whether there are known touches before generating a PointerEvent for a MouseEvent.

In the case of IMDb, the page would keep track of "pointerdown" events to track whether a multi-touch
user gesture is in progress so that their slide shows can support two-finger zooming as well as
single-finger swiping. In the case of a long press, the second "pointerdown" event would trick
the code in thinking a zoom gesture was initiated and it never recovered.

Test: pointerevents/ios/long-press-yields-single-pointerdown-event.html

  • page/PointerCaptureController.cpp:

(WebCore::PointerCaptureController::pointerEventForMouseEvent):

LayoutTests:

Add a test that triggers a long press gesture on an <img> and checks a single "pointerdown" event
was dispatched. Prior to the WebCore change in this patch, two events would be dispatched.

  • pointerevents/ios/long-press-yields-single-pointerdown-event-expected.txt: Added.
  • pointerevents/ios/long-press-yields-single-pointerdown-event.html: Added.
9:36 AM Changeset in webkit [265087] by pvollan@apple.com
  • 6 edits in trunk/Source/WebKit

Remember to check entitlement before communicating over XPC
https://bugs.webkit.org/show_bug.cgi?id=214825

Reviewed by Brent Fulgham.

Remember to check entitlement before communicating over XPC with another WebKit process. This needs to be done
to make sure that it really is a WebKit process on the other end.

  • NetworkProcess/NetworkProcess.cpp:

(WebKit::m_messagePortChannelRegistry):

  • Shared/Cocoa/XPCEndpoint.mm:

(WebKit::XPCEndpoint::XPCEndpoint):

  • Shared/Cocoa/XPCEndpointClient.mm:

(WebKit::XPCEndpointClient::setEndpoint):

  • WebProcess/WebPage/Cocoa/WebPageCocoa.mm:

(WebKit::WebPage::platformDidReceiveLoadParameters):

  • WebProcess/cocoa/WebProcessCocoa.mm:

(WebKit::WebProcess::handleXPCEndpointMessages const):

9:32 AM Changeset in webkit [265086] by Chris Dumez
  • 57 edits in trunk

OfflineAudioContext.startRendering() should return a Promise
https://bugs.webkit.org/show_bug.cgi?id=214940

Reviewed by Eric Carlson.

LayoutTests/imported/w3c:

A lot of Web Audio web-platform-tests were unable to run properly due to OfflineAudioContext.startRendering()
not returning a Promise. Now that we fixed that, a lot of tests are actually running much further. We get a
lot of new PASS lines. We also get new FAIL lines too for subtests that are now running and failing but
previously could not even run.

  • web-platform-tests/webaudio/idlharness.https.window-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-analysernode-interface/realtimeanalyser-fft-scaling-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-analysernode-interface/test-analyser-gain-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-audiobuffer-interface/audiobuffer-reuse-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-audiobuffersourcenode-interface/audiobuffersource-grain-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-audiobuffersourcenode-interface/audiobuffersource-one-sample-loop-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-audiobuffersourcenode-interface/audiobuffersource-start-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-audiobuffersourcenode-interface/audiosource-onended-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-audiobuffersourcenode-interface/audiosource-time-limits-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-audiobuffersourcenode-interface/sample-accurate-scheduling-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-audiocontext-interface/audiocontext-suspend-resume-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-audionode-interface/audionode-connect-order-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/audioparam-connect-audioratesignal-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/audioparam-setValueCurve-exceptions-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/audioparam-summingjunction-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/setTargetAtTime-after-event-within-block-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/setValueAtTime-within-block-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-channelmergernode-interface/audiochannelmerger-disconnect-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-channelmergernode-interface/audiochannelmerger-input-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-channelmergernode-interface/audiochannelmerger-input-non-default-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-channelsplitternode-interface/audiochannelsplitter-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-convolvernode-interface/convolution-mono-mono-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-delaynode-interface/delaynode-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-delaynode-interface/delaynode-max-default-delay-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-delaynode-interface/delaynode-max-nondefault-delay-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-delaynode-interface/delaynode-maxdelay-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-delaynode-interface/delaynode-maxdelaylimit-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-delaynode-interface/delaynode-scheduling-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-oscillatornode-interface/detune-limiting-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-oscillatornode-interface/osc-basic-waveform-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-pannernode-interface/panner-automation-basic-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-pannernode-interface/panner-automation-position-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-pannernode-interface/test-pannernode-automation-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-waveshapernode-interface/waveshaper-expected.txt:

Source/WebCore:

OfflineAudioContext.startRendering() should return a Promise:

This is important as it was preventing a lot of web-platform-tests from running
properly and our test coverage was therefore really poor.

No new tests, rebaselined existing tests.

  • Modules/webaudio/AudioBuffer.idl:
  • Modules/webaudio/AudioDestinationNode.h:
  • Modules/webaudio/BaseAudioContext.cpp:

(WebCore::BaseAudioContext::finishedRendering):

  • Modules/webaudio/BaseAudioContext.h:

(WebCore::BaseAudioContext::didFinishOfflineRendering):

  • Modules/webaudio/DefaultAudioDestinationNode.cpp:

(WebCore::DefaultAudioDestinationNode::startRendering):

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

(WebCore::OfflineAudioContext::startOfflineRendering):
(WebCore::OfflineAudioContext::didFinishOfflineRendering):

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

(WebCore::OfflineAudioDestinationNode::startRendering):

  • Modules/webaudio/OfflineAudioDestinationNode.h:
9:31 AM Changeset in webkit [265085] by Kate Cheney
  • 5 edits
    4 adds in trunk/Source/WebKit

REGRESSION (r264925): run-safari --debug no longer works
https://bugs.webkit.org/show_bug.cgi?id=214947
<rdar://problem/66297850>

Reviewed by Darin Adler.

Removing these APIs in WebKit caused older versions of Safari to
break. We should add back in empty functions to make this work.

No new tests. Manually verified this fix.

  • Shared/API/c/WKRenderLayer.cpp: Added.

(WKRenderLayerGetTypeID):
(WKRenderLayerGetRenderer):
(WKRenderLayerCopyRendererName):
(WKRenderLayerCopyElementTagName):
(WKRenderLayerCopyElementID):
(WKRenderLayerGetElementClassNames):
(WKRenderLayerGetAbsoluteBounds):
(WKRenderLayerIsClipping):
(WKRenderLayerIsClipped):
(WKRenderLayerIsReflection):
(WKRenderLayerGetCompositingLayerType):
(WKRenderLayerGetBackingStoreMemoryEstimate):
(WKRenderLayerGetNegativeZOrderList):
(WKRenderLayerGetNormalFlowList):
(WKRenderLayerGetPositiveZOrderList):
(WKRenderLayerGetFrameContentsLayer):

  • Shared/API/c/WKRenderLayer.h: Added.
  • Shared/API/c/WKRenderObject.cpp: Added.

(WKRenderObjectGetTypeID):
(WKRenderObjectCopyName):
(WKRenderObjectCopyTextSnippet):
(WKRenderObjectGetTextLength):
(WKRenderObjectCopyElementTagName):
(WKRenderObjectCopyElementID):
(WKRenderObjectGetElementClassNames):
(WKRenderObjectGetAbsolutePosition):
(WKRenderObjectGetFrameRect):
(WKRenderObjectGetChildren):

  • Shared/API/c/WKRenderObject.h: Added.
  • Sources.txt:
  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/InjectedBundle/API/c/WKBundlePage.cpp:

(WKBundlePageCopyRenderTree):
(WKBundlePageCopyRenderLayerTree):

  • WebProcess/InjectedBundle/API/c/WKBundlePagePrivate.h:
9:17 AM Changeset in webkit [265084] by Darin Adler
  • 61 edits in trunk/Source

Further reduction in the use of live ranges, particularly in headers
https://bugs.webkit.org/show_bug.cgi?id=214793

Reviewed by Sam Weinig.

Source/WebCore:

  • accessibility/AccessibilityObject.cpp:

(WebCore::AccessibilityObject::performTextOperation): Do not call createLiveRange.
(WebCore::AccessibilityObject::replaceTextInRange): Ditto.

  • dom/SimpleRange.cpp: Moved makeSimpleRange functions to the header.
  • dom/SimpleRange.h: Reworked the makeSimpleRange implementation to avoid a mistake

which made template expansion infinitely recurse while compiling and crash the compiler.
Ended up moving all the code to the header. Should be a good thing; I expect it will
optimize well inlined.

  • editing/CompositeEditCommand.cpp:

(WebCore::CompositeEditCommand::moveParagraphs): Use makeSimpleRange.

  • editing/Editor.cpp:

(WebCore::Editor::replaceSelectionWithText): Do not call createLiveRange.
(WebCore::Editor::setComposition): Use SimpleRange.
(WebCore::Editor::stringForCandidateRequest const): Do not call createLiveRange.
(WebCore::Editor::handleAcceptedCandidate): Use auto intead of RefPtr<Range>.

  • editing/EditorCommand.cpp:

(WebCore::expandSelectionToGranularity): Do not call createLiveRange.
(WebCore::executeDeleteToMark): Ditto.
(WebCore::executeSelectToMark): Ditto.
(WebCore::valueFormatBlock): Ditto.

  • editing/FormatBlockCommand.cpp:

(WebCore::FormatBlockCommand::formatRange): Use makeSimpleRange.
(WebCore::FormatBlockCommand::elementForFormatBlockCommand): Take a
SimpleRange.

  • editing/FormatBlockCommand.h: Updated for above.
  • editing/FrameSelection.cpp:

(WebCore::FrameSelection::moveTo): Deleted overload taking a live range.
(WebCore::FrameSelection::setSelectedRange): Take a SimpleRange.

  • editing/FrameSelection.h: Updated for above.
  • editing/ReplaceSelectionCommand.cpp:

(WebCore::ReplacementFragment::ReplacementFragment): Do not call
createLiveRange.

  • editing/VisibleUnits.cpp:

(WebCore::enclosingTextUnitOfGranularity): Return SimpleRange.
(WebCore::wordRangeFromPosition): Ditto.
(WebCore::closestWordBoundaryForPosition): Use SimpleRange.
(WebCore::rangeExpandedByCharactersInDirectionAtWordBoundary): Return
a SimpleRange.
(WebCore::rangeExpandedAroundPositionByCharacters): Ditto.
(WebCore::wordBoundaryForPositionWithoutCrossingLine): Use SimpleRange.

  • editing/VisibleUnits.h: Updated for above.
  • editing/cocoa/DataDetection.mm:

(WebCore::DataDetection::detectItemAroundHitTestResult):
Use SimpleRange.

  • editing/cocoa/DictionaryLookup.mm:

(WebCore::DictionaryLookup::rangeForSelection): Use SimpleRange.
(WebCore::DictionaryLookup::rangeAtHitTestResult): Ditto.

  • editing/cocoa/EditorCocoa.mm:

(WebCore::Editor::getPasteboardTypesAndDataForAttachment):
Do not call createLiveRange.

  • editing/cocoa/WebContentReaderCocoa.mm:

(WebCore::WebContentReader::readPlainText): Ditto.

  • editing/gtk/WebContentReaderGtk.cpp:

(WebCore::WebContentReader::readPlainText): Ditto.

  • editing/libwpe/EditorLibWPE.cpp:

(WebCore::createFragmentFromPasteboardData): Ditto.

  • editing/mac/DictionaryLookupLegacy.mm:

(WebCore::DictionaryLookup::rangeAtHitTestResult): Use SimpleRange.

  • editing/markup.cpp:

(WebCore::serializePreservingVisualAppearance): Take SimpleRange.
(WebCore::contextPreservesNewline): Ditto.
(WebCore::createFragmentFromText): Ditto.

  • editing/markup.h: Updated for above.
  • loader/archive/cf/LegacyWebArchive.cpp:

(WebCore::LegacyWebArchive::create): Take SimpleRange.

  • loader/archive/cf/LegacyWebArchive.h: Updated for above.
  • page/DragController.cpp:

(WebCore::DragController::performDragOperation): Use SimpleRange.
(WebCore::DragController::concludeEditDrag): Do not call createLiveRange.
(WebCore::selectElement): Use SimpleRange.
(WebCore::DragController::removeAllDroppedImagePlaceholders): Ditto.
(WebCore::DragController::insertDroppedImagePlaceholdersAtCaret): Ditto.

  • page/DragController.h: Use SimpleRange.
  • page/Page.cpp:

(WebCore::Page::findTextMatches): Return vector of SimpleRange, in
structure so we have one return value instead of two out arguments.
Also renamed from findStringMatchingRanges.
(WebCore::Page::rangeOfString): Return SimpleRange.
(WebCore::replaceRanges): Do not call createLiveRange.
(WebCore::Page::replaceRangesWithText): Take SimpleRange.

  • page/Page.h: Updated for above.
  • page/ios/FrameIOS.mm:

(WebCore::Frame::wordsInCurrentParagraph const): Use SimpleRange.

  • rendering/HitTestResult.cpp:

(WebCore::HitTestResult::isOverTextInsideFormControlElement const):
Use SimpleRange, and also use hasAnyPlainText instead of computing
the plain text string and checking if it's empty.

Source/WebKit:

  • Shared/API/c/mac/WKWebArchiveRef.cpp:

(WKWebArchiveCreateFromRange): Use makeSimpleRange.

  • Shared/APIWebArchive.h: Use SimpleRange.
  • Shared/APIWebArchive.mm:

(API::WebArchive::create): Take SimpleRange.

  • Shared/EditingRange.cpp:

(WebKit::EditingRange::toRange): Don't call createLiveRange.
(WebKit::EditingRange::fromRange): Take SimpleRange.

  • Shared/EditingRange.h: Updated for above.
  • WebProcess/InjectedBundle/API/APIInjectedBundleEditorClient.h:

Take SimpleRange, String, StyleProperties instead of
Range, StringImpl, CSSStyleDeclaration.

  • WebProcess/InjectedBundle/API/glib/WebKitWebEditor.cpp:

String instead of StringImpl.

  • WebProcess/InjectedBundle/API/mac/WKDOMDocument.mm:

(-[WKDOMDocument createDocumentFragmentWithText:]): Use SimpleRange.

  • WebProcess/InjectedBundle/API/mac/WKDOMRange.mm:

(-[WKDOMRange rangeByExpandingToWordBoundaryByCharacters:inDirection:]):
Use SimpleRange and createLiveRange.

  • WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextController.mm:

(-[WKWebProcessPlugInBrowserContextController _setEditingDelegate:]):
Updated for changes to bundle editor client.

  • WebProcess/InjectedBundle/DOM/InjectedBundleRangeHandle.cpp:

(WebKit::InjectedBundleRangeHandle::create): Deleted. Moved the
code into InjectedBundleRangeHandle::getOrCreate.
(WebKit::createHandle): Added. Makes a handle for a SimpleRange.

  • WebProcess/InjectedBundle/DOM/InjectedBundleRangeHandle.h:

Updated for above.

  • WebProcess/InjectedBundle/InjectedBundlePageEditorClient.cpp:

(WebKit::createHandle): Added. Makes a handle for a CSSStyleDeclaration.
(WebKit::InjectedBundlePageEditorClient::shouldBeginEditing):
Updated for changes to bundle editor client.
(WebKit::InjectedBundlePageEditorClient::shouldEndEditing): Ditto.
(WebKit::InjectedBundlePageEditorClient::shouldInsertNode): Ditto.
(WebKit::InjectedBundlePageEditorClient::shouldInsertText): Ditto.
(WebKit::InjectedBundlePageEditorClient::shouldDeleteRange): Ditto.
(WebKit::InjectedBundlePageEditorClient::shouldChangeSelectedRange): Ditto.
(WebKit::InjectedBundlePageEditorClient::shouldApplyStyle): Ditto.
(WebKit::InjectedBundlePageEditorClient::didBeginEditing): Ditto.
(WebKit::InjectedBundlePageEditorClient::didEndEditing): Ditto.
(WebKit::InjectedBundlePageEditorClient::didChange): Ditto.
(WebKit::InjectedBundlePageEditorClient::didChangeSelection): Ditto.
(WebKit::InjectedBundlePageEditorClient::willWriteToPasteboard): Ditto.
(WebKit::InjectedBundlePageEditorClient::getPasteboardDataForRange): Ditto.
(WebKit::InjectedBundlePageEditorClient::performTwoStepDrop): Ditto.

  • WebProcess/InjectedBundle/InjectedBundlePageEditorClient.h:

Updated for above.

  • WebProcess/WebCoreSupport/WebEditorClient.cpp:

(WebKit::WebEditorClient::shouldDeleteRange): Updated to call new
revised bundle editor client.
(WebKit::WebEditorClient::shouldBeginEditing): Ditto.
(WebKit::WebEditorClient::shouldEndEditing): Ditto.
(WebKit::WebEditorClient::shouldInsertNode): Ditto.
(WebKit::WebEditorClient::shouldInsertText): Ditto.
(WebKit::WebEditorClient::shouldChangeSelectedRange): Ditto.
(WebKit::WebEditorClient::shouldApplyStyle): Ditto.
(WebKit::WebEditorClient::willWriteSelectionToPasteboard): Ditto.
(WebKit::WebEditorClient::getClientPasteboardData): Ditto.
(WebKit::WebEditorClient::performTwoStepDrop): Ditto.
(WebKit::insertionPointFromCurrentSelection): Use SimpleRange.

  • WebProcess/WebPage/FindController.cpp:

(WebKit::FindController::replaceMatches): Use SimpleRange.
(WebKit::FindController::findString): Updated for change to
Page::findTextMatches function.
(WebKit::FindController::findStringMatches): Ditto.
(WebKit::FindController::getImageForFindMatch): Use SimpleRange.
(WebKit::FindController::selectFindMatch): Ditto.

  • WebProcess/WebPage/FindController.h: Updated for above.
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::getMarkedRangeAsync): Do not call createLiveRange.
(WebKit::WebPage::getSelectedRangeAsync): Ditto.
(WebKit::WebPage::characterIndexForPointAsync): Call makeSimpleRange.

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::plainTextForContext): Changed overloads a bit to work
better with Optional<SimpleRange> and removed the ones that explicitly
take a Range, updating callers to compensate.
(WebKit::plainTextForDisplay): Ditto.
(WebKit::WebPage::getPlatformEditorState const): Use SimpleRange.
(WebKit::WebPage::getSelectionContext): Ditto.
(WebKit::WebPage::didConcludeEditDrag): Ditto.
(WebKit::WebPage::handleStylusSingleTapAtPoint): Ditto.
(WebKit::WebPage::selectWithGesture): Ditto.
(WebKit::rangeForPointInRootViewCoordinates): Return SimpleRange.
(WebKit::rangeAtWordBoundaryForPosition): Ditto.
(WebKit::WebPage::updateSelectionWithTouches): Use SimpleRange.
(WebKit::WebPage::selectWithTwoTouches): Ditto.
(WebKit::WebPage::extendSelection): Ditto.
(WebKit::WebPage::selectWordBackward): Ditto.
(WebKit::WebPage::moveSelectionByOffset): Ditto.
(WebKit::WebPage::getRectsForGranularityWithSelectionOffset): Ditto.
(WebKit::WebPage::selectPositionAtPoint): Ditto.
(WebKit::WebPage::selectPositionAtBoundaryWithDirection): Ditto.
(WebKit::WebPage::moveSelectionAtBoundaryWithDirection): Ditto.
(WebKit::WebPage::rangeForGranularityAtPoint): Ditto.
(WebKit::WebPage::selectTextWithGranularityAtPoint): Ditto.
(WebKit::WebPage::updateSelectionWithExtentPointAndBoundary): Ditto.
(WebKit::WebPage::updateSelectionWithExtentPoint): Ditto.
(WebKit::WebPage::replaceSelectedText): Ditto.
(WebKit::WebPage::replaceDictatedText): Ditto.
(WebKit::WebPage::requestAutocorrectionData): Ditto.
(WebKit::WebPage::applyAutocorrectionInternal): Ditto.
(WebKit::WebPage::autocorrectionContext): Ditto.
(WebKit::dataDetectorLinkPositionInformation): Ditto.
(WebKit::WebPage::updateSelectionWithDelta): Ditto.
(WebKit::WebPage::focusTextInputContextAndPlaceCaret): Ditto.

Source/WebKitLegacy/ios:

  • WebCoreSupport/WebVisiblePosition.mm:

(-[WebVisiblePosition enclosingTextUnitOfGranularity:inDirectionIfAtBoundary:]):
Use SimpleRange.

Source/WebKitLegacy/mac:

  • DOM/DOMHTML.mm:

(-[DOMHTMLDocument createDocumentFragmentWithText:]): Use SimpleRange.

  • DOM/DOMUIKitExtensions.mm:

(-[DOMRange move:inDirection:]): Ditto.
(-[DOMRange extend:inDirection:]): Ditto.

  • DOM/WebDOMOperations.mm:

(-[DOMRange webArchive]): Ditto.

  • WebView/WebFrame.mm:

(-[WebFrame _firstRectForDOMRange:]): Moved a "*" to save a little work.
(-[WebFrame setSelectedDOMRange:affinity:closeTyping:userTriggered:]):
Use SimpleRange.
(-[WebFrame _replaceSelectionWithText:selectReplacement:smartReplace:matchStyle:]):
Ditto.
(-[WebFrame _replaceSelectionWithText:selectReplacement:smartReplace:]):
Ditto.
(-[WebFrame _documentFragmentForText:]): Ditto.

  • WebView/WebView.mm:

(-[WebView DOMRangeOfString:relativeTo:options:]): Ditto.
(-[WebView setSelectedDOMRange:affinity:]): Ditto.

Source/WebKitLegacy/win:

  • AccessibleTextImpl.cpp: Added an include of Range.h.
9:04 AM Changeset in webkit [265083] by Truitt Savell
  • 2 edits in trunk/LayoutTests

[ macOS wk1 ] imported/w3c/web-platform-tests/pointerevents/pointerevent_attributes_hoverable_pointers.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=214967

Unreviewed test gardening.

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

  • platform/mac-wk1/TestExpectations:
8:55 AM Changeset in webkit [265082] by Jonathan Bedard
  • 6 edits in trunk/Tools

[Big Sur] Add limited Seed 3 support to EWS
https://bugs.webkit.org/show_bug.cgi?id=214874
<rdar://problem/66216190>

Reviewed by Aakash Jain.

  • BuildSlaveSupport/ews-app/ews/views/statusbubble.py:

(StatusBubble): Add AppleSilicon bubbles.

  • BuildSlaveSupport/ews-build/config.json: Add AppleSilicon device.
  • BuildSlaveSupport/ews-build/factories.py:

(macOSBuildOnlyFactory): Skip uploading to S3.

  • BuildSlaveSupport/ews-build/factories_unittest.py:

(TestBuildFactory.test_macos_build_only_factory):

  • BuildSlaveSupport/ews-build/loadConfig.py: Import macOSBuildOnlyFactory.
8:10 AM Changeset in webkit [265081] by commit-queue@webkit.org
  • 22 edits in trunk

Remove non-inclusive terminology from WebKit variable names and test-only SPI
https://bugs.webkit.org/show_bug.cgi?id=214941

Patch by Alex Christensen <achristensen@webkit.org> on 2020-07-30
Reviewed by Michael Catanzaro.

Source/WebKit:

  • NetworkProcess/NetworkConnectionToWebProcess.cpp:

(WebKit::NetworkConnectionToWebProcess::addOriginAccessAllowListEntry):
(WebKit::NetworkConnectionToWebProcess::removeOriginAccessAllowListEntry):
(WebKit::NetworkConnectionToWebProcess::resetOriginAccessAllowLists):
(WebKit::NetworkConnectionToWebProcess::addOriginAccessWhitelistEntry): Deleted.
(WebKit::NetworkConnectionToWebProcess::removeOriginAccessWhitelistEntry): Deleted.
(WebKit::NetworkConnectionToWebProcess::resetOriginAccessWhitelists): Deleted.

  • NetworkProcess/NetworkConnectionToWebProcess.h:
  • NetworkProcess/NetworkConnectionToWebProcess.messages.in:
  • Shared/WebProcessCreationParameters.cpp:

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

  • Shared/WebProcessCreationParameters.h:
  • UIProcess/API/glib/WebKitUserContent.cpp:

(_WebKitUserStyleSheet::_WebKitUserStyleSheet):
(webkit_user_style_sheet_new):
(webkit_user_style_sheet_new_for_world):
(_WebKitUserScript::_WebKitUserScript):
(webkit_user_script_new):
(webkit_user_script_new_for_world):

  • UIProcess/API/glib/WebKitWebContext.cpp:

(pathIsBlocked):
(webkit_web_context_add_path_to_sandbox):
(pathIsBlacklisted): Deleted.

  • UIProcess/API/gtk/WebKitUserContent.h:
  • UIProcess/API/wpe/WebKitUserContent.h:
  • UIProcess/Cocoa/WebProcessPoolCocoa.mm:

(WebKit::WebProcessPool::platformInitializeWebProcess):

  • UIProcess/Launcher/glib/BubblewrapLauncher.cpp:

(WebKit::setupSeccomp):

  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::setFontAllowList):

  • UIProcess/WebProcessPool.h:
  • WebProcess/InjectedBundle/API/c/WKBundle.cpp:

(WKBundleAddOriginAccessAllowListEntry):
(WKBundleRemoveOriginAccessAllowListEntry):
(WKBundleResetOriginAccessAllowLists):
(WKBundleAddOriginAccessWhitelistEntry): Deleted.
(WKBundleRemoveOriginAccessWhitelistEntry): Deleted.
(WKBundleResetOriginAccessWhitelists): Deleted.

  • WebProcess/InjectedBundle/API/c/WKBundlePrivate.h:
  • WebProcess/InjectedBundle/InjectedBundle.cpp:

(WebKit::InjectedBundle::addOriginAccessAllowListEntry):
(WebKit::InjectedBundle::removeOriginAccessAllowListEntry):
(WebKit::InjectedBundle::resetOriginAccessAllowLists):
(WebKit::InjectedBundle::addOriginAccessWhitelistEntry): Deleted.
(WebKit::InjectedBundle::removeOriginAccessWhitelistEntry): Deleted.
(WebKit::InjectedBundle::resetOriginAccessWhitelists): Deleted.

  • WebProcess/InjectedBundle/InjectedBundle.h:
  • WebProcess/cocoa/WebProcessCocoa.mm:

(WebKit::WebProcess::platformInitializeWebProcess):

Tools:

  • WebKitTestRunner/InjectedBundle/InjectedBundle.cpp:

(WTR::InjectedBundle::beginTesting):

  • WebKitTestRunner/InjectedBundle/TestRunner.cpp:

(WTR::TestRunner::addOriginAccessWhitelistEntry):
(WTR::TestRunner::removeOriginAccessWhitelistEntry):

1:53 AM Changeset in webkit [265080] by Carlos Garcia Campos
  • 26 edits in trunk

[GTK4] Enable API tests
https://bugs.webkit.org/show_bug.cgi?id=214344

Reviewed by Adrian Perez de Castro.

.:

Build API tests for GTK4 too.

  • Source/cmake/OptionsGTK.cmake:

Source/WebKit:

Use a custom KeyEvent struct to pass to the IM filter as a fake GdkEvent to be able to test input methods with
GTK4.

  • UIProcess/API/glib/InputMethodFilter.h:
  • UIProcess/API/gtk/InputMethodFilterGtk.cpp:

(WebKit::InputMethodFilter::platformEventKeyIsKeyPress const):
(WebKit::InputMethodFilter::filterKeyEvent):

  • UIProcess/API/gtk/WebKitWebViewBaseInternal.h:
  • UIProcess/CoordinatedGraphics/DrawingAreaProxyCoordinatedGraphics.cpp:

(WebKit::DrawingAreaProxyCoordinatedGraphics::DrawingMonitor::start):
(WebKit::DrawingAreaProxyCoordinatedGraphics::DrawingMonitor::stop):

Tools:

Port API tests to GTK4. Context menu and option menu tests are still disabled for GTK4 because we plan to change
the API for GTK4 in those cases.

  • TestWebKitAPI/Tests/WebKitGLib/TestDownloads.cpp:

(beforeAll):

  • TestWebKitAPI/Tests/WebKitGLib/TestInputMethodContext.cpp:

(webkitInputMethodContextMockFilterKeyEvent):

  • TestWebKitAPI/Tests/WebKitGLib/TestMultiprocess.cpp:
  • TestWebKitAPI/Tests/WebKitGLib/TestOptionMenu.cpp:

(beforeAll):

  • TestWebKitAPI/Tests/WebKitGLib/TestUIClient.cpp:

(checkMimeTypeForFilter):

  • TestWebKitAPI/Tests/WebKitGLib/TestWebExtensions.cpp:

(testWebExtensionInputElementIsUserEdited):

  • TestWebKitAPI/Tests/WebKitGLib/TestWebKitSettings.cpp:

(testWebKitSettings):

  • TestWebKitAPI/Tests/WebKitGLib/TestWebKitWebView.cpp:
  • TestWebKitAPI/Tests/WebKitGtk/AccessibilityTestServer.cpp:
  • TestWebKitAPI/Tests/WebKitGtk/InspectorTestServer.cpp:

(main):

  • TestWebKitAPI/Tests/WebKitGtk/TestContextMenu.cpp:

(testContextMenuPopulateMenu):
(beforeAll):

  • TestWebKitAPI/Tests/WebKitGtk/TestInspector.cpp:
  • TestWebKitAPI/Tests/WebKitGtk/TestPrinting.cpp:
  • TestWebKitAPI/Tests/WebKitGtk/TestWebViewEditor.cpp:

(Clipboard::Clipboard):
(Clipboard::clear):
(Clipboard::containsText const):
(Clipboard::waitForText):
(Clipboard::readText):
(testWebViewEditorCutCopyPasteNonEditable):
(testWebViewEditorCutCopyPasteEditable):
(testWebViewEditorSelectAllNonEditable):
(testWebViewEditorSelectAllEditable):
(loadContentsAndTryToCutSelection):

  • TestWebKitAPI/glib/WebKitGLib/TestMain.h:

(Test::Test):

  • TestWebKitAPI/glib/WebKitGLib/gtk/WebViewTestGtk.cpp:

(WebViewTest::platformDestroy):
(WebViewTest::showInWindow):

  • TestWebKitAPI/gtk/PlatformUtilitiesGtk.cpp:

(TestWebKitAPI::Util::isKeyDown):

  • TestWebKitAPI/gtk/PlatformWebViewGtk.cpp:

(TestWebKitAPI::PlatformWebView::~PlatformWebView):
(TestWebKitAPI::PlatformWebView::initialize):

12:21 AM Changeset in webkit [265079] by beidson@apple.com
  • 24 edits
    6 copies
    3 adds in trunk

Refactor HID gamepad code to be much less fragile and much easier to hack on.
https://bugs.webkit.org/show_bug.cgi?id=214910

Reviewed by Darin Adler.

Source/WebCore:

Covered by API tests.

Currently - for HID device gamepads - we throw all buttons and axes against the wall and see what sticks.
Instead, for specific popular devices, we'd like to have device-specific mappings so the representation makes sense.

To support that work, this is a major refactoring of the HID gamepad code. It does the following:

  • Breaks out logic specific to IOHIDDeviceRef into HIDDevice
  • Breaks out logic specific to IOHIDElementRef into HIDElement
  • Moves responsibities of managing things to the right places (e.g. HIDElement manages its own current value directly)
  • Makes HIDGamepadElement derive from HIDElement directly
  • Moves device specific logic from HIDGamepad into a subclass of HID gamepad. Currently the only subclass is "generic" which encompasses HIDGamepad's old behavior
  • Changes button/value vectors from Vector<double> to Vector<SharedGamepadValue> so multiple objects can reference the value at once. e.g. HIDGamepadButton can simply update it's own SharedGamepadValue without knowing which HIDGamepad owns it or which index into the gamepad's value vector it should be mutating.

This will be critical in the "specific device mapping" work as some types of HIDElements actually drive more than one
gamepad button value.
e.g. a "direction pad axis" actually manages 2 button values, or a "hat-switch" direction pad manages 4 button values

This patch doesn't change any current behavior.

  • Modules/gamepad/Gamepad.cpp:

(WebCore::Gamepad::updateFromPlatformGamepad):

  • Sources.txt:
  • SourcesCocoa.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • platform/Logging.h:
  • platform/gamepad/PlatformGamepad.h:
  • platform/gamepad/SharedGamepadValue.h: Copied from Source/WebKit/UIProcess/Gamepad/UIGamepad.h.

(WebCore::SharedGamepadValue::SharedGamepadValue):
(WebCore::SharedGamepadValue::setValue):
(WebCore::SharedGamepadValue::value const):
(WebCore::SharedGamepadValue::Data::Data):

  • platform/gamepad/cocoa/GameControllerGamepad.h:
  • platform/gamepad/cocoa/GameControllerGamepad.mm:

(WebCore::GameControllerGamepad::setupAsExtendedGamepad):
(WebCore::GameControllerGamepad::setupAsGamepad):

  • platform/gamepad/mac/GenericHIDGamepad.cpp: Added.

(WebCore::GenericHIDGamepad::GenericHIDGamepad):
(WebCore::GenericHIDGamepad::id):
(WebCore::GenericHIDGamepad::maybeAddGenericDesktopElement):
(WebCore::GenericHIDGamepad::maybeAddButtonElement):

  • platform/gamepad/mac/GenericHIDGamepad.h: Copied from Source/WebKit/WebProcess/Gamepad/WebGamepad.h.
  • platform/gamepad/mac/HIDGamepad.cpp:

(WebCore::HIDGamepad::create):
(WebCore::HIDGamepad::HIDGamepad):
(WebCore::HIDGamepad::initialize):
(WebCore::HIDGamepad::valueChanged):
(WebCore::HIDGamepad::getCurrentValueForElement): Deleted.
(WebCore::HIDGamepad::initElements): Deleted.
(WebCore::HIDGamepad::initElementsFromArray): Deleted.
(WebCore::HIDGamepad::maybeAddButton): Deleted.
(WebCore::HIDGamepad::maybeAddAxis): Deleted.

  • platform/gamepad/mac/HIDGamepad.h:

(WebCore::HIDGamepad::hidDevice const):
(WebCore::HIDGamepadElement::HIDGamepadElement): Deleted.
(WebCore::HIDGamepadElement::~HIDGamepadElement): Deleted.
(WebCore::HIDGamepadElement::isButton const): Deleted.
(WebCore::HIDGamepadElement::isAxis const): Deleted.
(WebCore::HIDGamepadButton::HIDGamepadButton): Deleted.
(WebCore::HIDGamepadAxis::HIDGamepadAxis): Deleted.

  • platform/gamepad/mac/HIDGamepadElement.cpp: Added.

(WebCore::HIDGamepadElement::HIDGamepadElement):
(WebCore::HIDGamepadElement::refreshCurrentValue):
(WebCore::HIDGamepadElement::normalizedValue):
(WebCore::HIDGamepadButton::gamepadValueChanged):
(WebCore::HIDGamepadAxis::gamepadValueChanged):
(WebCore::HIDGamepadAxis::normalizedValue):

  • platform/gamepad/mac/HIDGamepadElement.h: Copied from Source/WebCore/platform/gamepad/PlatformGamepad.h.

(WebCore::HIDGamepadElement::~HIDGamepadElement):
(WebCore::HIDGamepadElement::isButton const):
(WebCore::HIDGamepadElement::isAxis const):

  • platform/gamepad/mac/HIDGamepadProvider.mm:

(WebCore::HIDGamepadProvider::deviceAdded):

  • platform/gamepad/mac/MultiGamepadProvider.h:
  • platform/graphics/cocoa/SourceBufferParserWebM.cpp:
  • platform/mac/HIDDevice.cpp: Added.

(WebCore::HIDDevice::HIDDevice):
(WebCore::HIDDevice::uniqueInputElementsInDeviceTreeOrder const):

  • platform/mac/HIDDevice.h: Copied from Source/WebCore/platform/gamepad/PlatformGamepad.h.

(WebCore::HIDDevice::rawElement const):
(WebCore::HIDDevice::vendorID const):
(WebCore::HIDDevice::productID const):
(WebCore::HIDDevice::productName const):

  • platform/mac/HIDElement.cpp: Copied from Source/WebKit/UIProcess/Gamepad/UIGamepad.h.

(WebCore::HIDElement::HIDElement):
(WebCore::HIDElement::valueChanged):

  • platform/mac/HIDElement.h: Copied from Source/WebKit/UIProcess/Gamepad/UIGamepad.h.

(WebCore::HIDElement::rawElement const):
(WebCore::HIDElement::physicalMin const):
(WebCore::HIDElement::physicalMax const):
(WebCore::HIDElement::physicalValue const):
(WebCore::HIDElement::usage const):
(WebCore::HIDElement::usagePage const):
(WebCore::HIDElement::cookie const):

  • testing/MockGamepad.cpp:

(WebCore::MockGamepad::updateDetails):
(WebCore::MockGamepad::setAxisValue):
(WebCore::MockGamepad::setButtonValue):

  • testing/MockGamepad.h:

Source/WebKit:

  • Shared/Gamepad/GamepadData.cpp:

(WebKit::GamepadData::GamepadData):

  • Shared/Gamepad/GamepadData.h:
  • UIProcess/Gamepad/UIGamepad.h:
  • WebProcess/Gamepad/WebGamepad.cpp:

(WebKit::WebGamepad::axisValues const):
(WebKit::WebGamepad::buttonValues const):
(WebKit::WebGamepad::updateValues):

  • WebProcess/Gamepad/WebGamepad.h:

Tools:

Add a test that verifies connect, basic button/axis changes, and disconnect of a HID gamepad.

  • TestWebKitAPI/Tests/mac/HIDGamepads.mm:
12:17 AM Changeset in webkit [265078] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit

Unreviewed, reverting r265043.
https://bugs.webkit.org/show_bug.cgi?id=214959

Will re-land after Safari 14 branching

Reverted changeset:

"Enable paint timing by default"
https://bugs.webkit.org/show_bug.cgi?id=211736
https://trac.webkit.org/changeset/265043

Jul 29, 2020:

11:58 PM Changeset in webkit [265077] by Fujii Hironori
  • 6 edits in trunk/Tools

Replace 'http://svn.webkit.org' with 'https://svn.webkit.org' in webkitpy scripts
https://bugs.webkit.org/show_bug.cgi?id=214957

Reviewed by Daniel Bates.

SVNRepository.has_authorization_for_realm failed to find the realm
string.

  • Scripts/webkitpy/common/checkout/changelog.py:

(ChangeLogEntry): Removed a unused variable 'svn_id_regexp'.

  • Scripts/webkitpy/common/checkout/scm/scm_unittest.py:
  • Scripts/webkitpy/common/config/urls.py:
  • Scripts/webkitpy/tool/commands/suggestnominations.py:

(AbstractCommitLogCommand): Changed _revision_regexp to use 'https?' to accept 'https'.

  • Scripts/webkitpy/tool/commands/suggestnominations_unittest.py:
10:43 PM Changeset in webkit [265076] by ysuzuki@apple.com
  • 2 edits in trunk/JSTests

Unreviewed, use requireOptions
https://bugs.webkit.org/show_bug.cgi?id=214956

  • wasm/stress/bottom-tuple.js:
10:43 PM Changeset in webkit [265075] by jh718.park@samsung.com
  • 2 edits in trunk/Source/WebCore

Unreviewed. Remove the build warning below since r265062.
warning: comparison of unsigned expression < 0 is always false [-Wtype-limits]

No new tests, no new behaviors.

  • Modules/webaudio/AudioBuffer.cpp:

(WebCore::AudioBuffer::copyFromChannel):
(WebCore::AudioBuffer::copyToChannel):

9:42 PM Changeset in webkit [265074] by ysuzuki@apple.com
  • 17 edits
    2 copies
    1 add in trunk

[JSC] Add B3::BottomTupleValue node
https://bugs.webkit.org/show_bug.cgi?id=214956
<rdar://problem/65192877>

Reviewed by Keith Miller.

JSTests:

  • wasm/stress/bottom-tuple.js: Added.

(try.main):
(catch):

Source/JavaScriptCore:

In B3 strength reduction, we convert B3 values to bottom value based on type after Oops kind, and then they are *typically* removed later.
While we support bottom values for usual types, we do not have a bottom value for tuple type. So when replaceWithBottom is called, we
fail to replace Patchpoints producing tuples with bottom values.

This patch newly adds B3 BottomTupleValue, which is just a BottomValue for tuple. We can extend it to generate arbitrary constant
tuple values, but for now, we just support bottom tuple values. We add a new node instead of generating patchpoint which generates bottom
values since BottomTupleValues implementation is simpler: BottomTupleValue just emits bunch of zero clear for Air tmps and Air does everything
automatically. On the other hand, implementing a patchpoint needs to add code which clears things with zero while checking the ValueRep. And
since we have Const32, Const64, etc. values, having this kind of value for tuple too is natural. Plus, this design allows us to remove bunch
of unnecessary instructions after lowering this to Air since Air knows what instructions will be emitted by this BottomTupleValue, and Air
can remove a lot of zero clear instructions if they are not read later by Extract.

  • JavaScriptCore.xcodeproj/project.pbxproj:
  • Sources.txt:
  • b3/B3BottomTupleValue.cpp: Copied from Source/JavaScriptCore/b3/B3InsertionSet.cpp.

(JSC::B3::BottomTupleValue::dumpMeta const):

  • b3/B3BottomTupleValue.h: Copied from Source/JavaScriptCore/b3/B3InsertionSet.cpp.
  • b3/B3InsertionSet.cpp:

(JSC::B3::InsertionSet::insertBottom):

  • b3/B3LowerToAir.cpp:
  • b3/B3Opcode.cpp:

(WTF::printInternal):

  • b3/B3Opcode.h:
  • b3/B3Procedure.cpp:

(JSC::B3::Procedure::addBottom):

  • b3/B3TypeMap.h:

(JSC::B3::TypeMap::TypeMap): Deleted.

  • b3/B3Validate.cpp:
  • b3/B3Value.cpp:

(JSC::B3::Value::effects const):
(JSC::B3::Value::key const):

  • b3/B3Value.h:
  • b3/B3ValueInlines.h:
  • b3/B3ValueKey.cpp:

(JSC::B3::ValueKey::materialize const):

  • b3/testb3_7.cpp:

(testBottomTupleValue):
(addTupleTests):

6:01 PM Changeset in webkit [265073] by jer.noble@apple.com
  • 10 edits in trunk/Source

Support HDR decode in SW VP9
https://bugs.webkit.org/show_bug.cgi?id=214928
Source/ThirdParty/libwebrtc:

Reviewed by Eric Carlson.

Support converting I010 buffers (full-planar, 10-bit data packed into the LSB of a 16-bit int)
into CVPixelBuffers (bi-planar, 10-bit data packed into the MSB of a 16-bit int). This requires
using functions from libyuv to merge and scale 16-bit planar data, optimized for AVX2. To know
that incoming buffers are 10-bit, and whether they're full-range, parse the 'vpcC' atom attached
to the CMFormatDescription.

  • Source/webrtc/sdk/WebKit/WebKitUtilities.mm:

(webrtc::MergeUVPlane_16):
(webrtc::CopyPlane_16):
(webrtc::CopyVideoFrameToPixelBuffer):
(webrtc::pixelBufferFromFrame):

  • Source/webrtc/sdk/WebKit/WebKitVP9Decoder.cpp:

(webrtc::createWebKitVP9Decoder):
(webrtc::startVP9DecoderSession):
(webrtc::WebKitVP9DecoderReceiver::createPixelBufferPoolForFormatDescription):
(webrtc::WebKitVP9DecoderReceiver::Decoded):

Source/WebCore:

Reviewed by Eric Carlson.

Convert the incoming properties parsed from the VP9 header into extensions to our
CMFormatDescription attached to each incoming video fram.

Drive-by fix: Files in the wild will have incorrect values for whether a given
frame is a keyframe or not. Trust the VP9 header parser rather than the container
in this situations.

  • platform/graphics/cocoa/SourceBufferParserWebM.cpp:

(WebCore::convertToCMColorPrimaries):
(WebCore::convertToCMTransferFunction):
(WebCore::convertToCMYCbCRMatrix):
(WebCore::createFormatDescriptionFromVP9HeaderParser):
(WebCore::SourceBufferParserWebM::OnFrame):

Source/WebCore/PAL:

<rdar://problem/66284848>

Reviewed by Eric Carlson.

  • pal/cf/CoreMediaSoftLink.cpp:
  • pal/cf/CoreMediaSoftLink.h:
6:00 PM Changeset in webkit [265072] by Megan Gardner
  • 2 edits in trunk/Source/WebKit

Highlight color does not switch after being set it system preferences.
https://bugs.webkit.org/show_bug.cgi?id=214938
<rdar://problem/65270586>

Reviewed by Tim Horton.

After the changes to the sandbox and how defaults are being transferred to the web process
(https://trac.webkit.org/changeset/258064/webkit), the highlight color was not being updated
immediately. We need to send the proper notification after setting the defaults so that the
color cache is invalidated after it is actually set and we do not end up with a stale value.

  • WebProcess/cocoa/WebProcessCocoa.mm:

(WebKit::userHighlightColorPreferenceKey):
(WebKit::dispatchSimulatedNotificationsForPreferenceChange):

5:14 PM Changeset in webkit [265071] by ysuzuki@apple.com
  • 10 edits
    3 deletes in trunk/JSTests

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

Reviewed by Ross Kirsling.

related-year-zh.js tests are updated and passing.

  • test262/config.yaml:
  • test262/latest-changes-summary.txt:
  • test262/test/intl402/DateTimeFormat/prototype/format/related-year-zh.js:
  • test262/test/intl402/DateTimeFormat/prototype/formatToParts/related-year-zh.js:

(actual.forEach):
(verifyFormatParts): Deleted.
(verifyFormatParts.df.formatToParts): Deleted.

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

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

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

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

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

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

  • test262/test/intl402/Segmenter/prototype/segment/segment-word.js: Removed.
  • test262/test262-Revision.txt:
4:57 PM Changeset in webkit [265070] by commit-queue@webkit.org
  • 2 edits in trunk/Source/ThirdParty/ANGLE

[GTK] 2.29.4 fails to link on armv7hl
https://bugs.webkit.org/show_bug.cgi?id=214934

Patch by Michael Catanzaro <Michael Catanzaro> on 2020-07-29
Reviewed by Carlos Alberto Lopez Perez.

Link ANGLE to with -ldl

  • CMakeLists.txt:
4:50 PM Changeset in webkit [265069] by ysuzuki@apple.com
  • 5 edits in trunk/JSTests

[JSC] Skip too heavy tests for Debug build
https://bugs.webkit.org/show_bug.cgi?id=214939

Reviewed by Mark Lam.

They are taking too much time in Debug build and cause timeout. We should skip them.

  • ChakraCore.yaml:
  • stress/codeblock-destructor-access-unlinkedcodeblock.js:
  • stress/dfg-to-string-on-string-object-does-not-gc.js:
  • stress/rest-parameter-many-arguments.js:
4:40 PM Changeset in webkit [265068] by Darin Adler
  • 1 edit
    1 add in trunk/Tools

Add script to help us count uses of non-inclusive terms
https://bugs.webkit.org/show_bug.cgi?id=214942

Reviewed by Beth Dakin.

  • Scripts/report-non-inclusive-language: Added.
4:34 PM Changeset in webkit [265067] by Wenson Hsieh
  • 2 edits in trunk/Source/WebCore

[iPadOS] Custom dropdown menu dismisses immediately on account.nhl.com
https://bugs.webkit.org/show_bug.cgi?id=214944
<rdar://problem/66248506>

Reviewed by Jer Noble.

Exempt account.nhl.com from site-specific "simulated mouse events" behavior, since it is incompatible with some
custom dropdown menus that appear on this website.

  • page/Quirks.cpp:

(WebCore::Quirks::shouldDispatchSimulatedMouseEvents const):

4:29 PM Changeset in webkit [265066] by Chris Dumez
  • 29 edits
    4 adds in trunk

Added constructor methods to ChannelMergerNode, ChannelSplitterNode
https://bugs.webkit.org/show_bug.cgi?id=214851
<rdar://problem/66233763>

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

LayoutTests/imported/w3c:

Re-baselined existing tests that now pass, or fail due to a different interface.

  • web-platform-tests/webaudio/idlharness.https.window-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-audiobuffersourcenode-interface/buffer-resampling-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-audiobuffersourcenode-interface/sub-sample-buffer-stitching-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/k-rate-dynamics-compressor-connections-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-audioworklet-interface/simple-input-output.https-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-channelmergernode-interface/active-processing.https-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-channelmergernode-interface/audiochannelmerger-basic-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-channelmergernode-interface/ctor-channelmerger-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-channelsplitternode-interface/audiochannelsplitter-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-channelsplitternode-interface/ctor-channelsplitter-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-oscillatornode-interface/detune-limiting-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-pannernode-interface/panner-distance-clamping-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-scriptprocessornode-interface/simple-input-output-expected.txt:

Source/WebCore:

Added constructors for ChannelMergerNode, ChannelSplitterNode according to spec:
https://www.w3.org/TR/webaudio/#ChannelMergerNode-constructors. Added new files
for ChannelMergerOptions and ChannelSplitterOptions. This patch also ensures that
BaseAudioContext::create*() and *Node::create() methods behave the same.

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

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

(WebCore::BaseAudioContext::createChannelSplitter):
(WebCore::BaseAudioContext::createChannelMerger):

  • Modules/webaudio/ChannelMergerNode.cpp:

(WebCore::ChannelMergerNode::create):
(WebCore::ChannelMergerNode::setChannelCount):
(WebCore::ChannelMergerNode::setChannelCountMode):

  • Modules/webaudio/ChannelMergerNode.h:
  • Modules/webaudio/ChannelMergerNode.idl:
  • Modules/webaudio/ChannelMergerOptions.h: Added.
  • Modules/webaudio/ChannelMergerOptions.idl: Added.
  • Modules/webaudio/ChannelSplitterNode.cpp:

(WebCore::ChannelSplitterNode::create):
(WebCore::ChannelSplitterNode::setChannelCount):
(WebCore::ChannelSplitterNode::setChannelCountMode):
(WebCore::ChannelSplitterNode::setChannelInterpretation):

  • Modules/webaudio/ChannelSplitterNode.h:
  • Modules/webaudio/ChannelSplitterNode.idl:
  • Modules/webaudio/ChannelSplitterOptions.h: Added.
  • Modules/webaudio/ChannelSplitterOptions.idl: Added.
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
4:15 PM Changeset in webkit [265065] by Tadeu Zagallo
  • 3 edits
    1 add in trunk

WebAssembly validation for call_indirect is incorrect
https://bugs.webkit.org/show_bug.cgi?id=214901
<rdar://problem/65189677>

Reviewed by Saam Barati.

JSTests:

  • wasm/stress/validate-call_indirect.js: Added.

(try.main):
(catch):

Source/JavaScriptCore:

There was an incorrect condition when validating call_indirect's arguments, which often resulted in skipping this validation.

  • wasm/WasmFunctionParser.h:

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

3:47 PM Changeset in webkit [265064] by commit-queue@webkit.org
  • 666 edits
    5 copies
    4 moves
    73 adds
    32 deletes in trunk/Source/ThirdParty/ANGLE

Roll ANGLE to 2020-07-28
https://bugs.webkit.org/show_bug.cgi?id=214897

Patch by Kenneth Russell <kbr@chromium.org> on 2020-07-29
Reviewed by Alex Christensen.

Roll to current ANGLE revision. Large ChangeLog below has been
truncated except for a few significant files.

Add dependency on zlib wrapper in third_party/zlib/google for both
Xcode and CMake builds. Small change to this wrapper for the
WinCairo build's system zlib, which doesn't define z_const.

  • .gitignore:
  • ANGLE.plist:
  • ANGLE.xcodeproj/project.pbxproj:
  • CMakeLists.txt:
  • Configurations/ANGLE-dynamic.xcconfig:
  • Configurations/ANGLE-static.xcconfig:
  • GLESv2.cmake:
  • PlatformWin.cmake:
  • third_party/zlib/google/compression_utils_portable.cc: Added.
  • third_party/zlib/google/compression_utils_portable.h: Added.
3:24 PM Changeset in webkit [265063] by Kate Cheney
  • 13 edits
    2 adds in trunk

Migrate App-Bound Domains code from WebKit Additions
https://bugs.webkit.org/show_bug.cgi?id=214889
<rdar://problem/66075857>

Reviewed by Brent Fulgham.

Source/WebKit:

No new tests, this is just code migration and will be tested
by existing App-Bound Domains tests.

  • NetworkProcess/cocoa/NetworkSessionCocoa.mm:

(WebKit::activateSessionCleanup):
(WebKit::NetworkSessionCocoa::sessionWrapperForTask):

  • Shared/Cocoa/DefaultWebBrowserChecks.h: Added.
  • Shared/Cocoa/DefaultWebBrowserChecks.mm: Added.

Holds all functions related to full browser checks and
App-Bound Domains.

(WebKit::shouldBeTreatedAsFullBrowser):
(WebKit::getAppBoundDomainsTesting):
These functions allow us to treat our test runners as full browsers
while triggering non-browser mode for testing other App-Bound Domains
functionality.

(WebKit::isInWebKitChildProcess):
(WebKit::hasRequestedCrossWebsiteTrackingPermission):
(WebKit::determineITPStateInternal):
(WebKit::determineITPState):
(WebKit::doesAppHaveITPEnabled):
(WebKit::doesParentProcessHaveITPEnabled):
(WebKit::hasProhibitedUsageStrings):
(WebKit::isParentProcessAFullWebBrowser):
(WebKit::isFullWebBrowser):

  • UIProcess/API/APIHTTPCookieStore.cpp:

(API::HTTPCookieStore::filterAppBoundCookies):

  • UIProcess/API/APIPageConfiguration.cpp:

(API::PageConfiguration::PageConfiguration):
(): Deleted.

  • UIProcess/WebPageProxy.cpp:
  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::WebProcessPool):
(WebKit::WebProcessPool::ensureNetworkProcess):
(WebKit::WebProcessPool::createNewWebProcess):

  • UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm:

(WebKit::WebsiteDataStore::addTestDomains const):
(WebKit::WebsiteDataStore::ensureAppBoundDomains const):

  • UIProcess/WebsiteData/WebsiteDataStore.h:
  • WebKit.xcodeproj/project.pbxproj:

Tools:

Replace WebKit Additions macros with code to set a different bundle
identifier indicating that we want to run an App-Bound Domains test.

Remove #if USE(APPLE_INTERNAL_SDK) check so we run these tests on EWS.

  • TestWebKitAPI/Tests/WebKitCocoa/InAppBrowserPrivacy.mm:

(cleanUpInAppBrowserPrivacyTestSettings):
(initializeInAppBrowserPrivacyTestSettings):

LayoutTests:

  • platform/ios-wk2/TestExpectations:

These tests are now expected to pass.

3:07 PM Changeset in webkit [265062] by commit-queue@webkit.org
  • 9 edits in trunk

Added copyFromChannel, copyToChannel to AudioBuffer
https://bugs.webkit.org/show_bug.cgi?id=214926

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

LayoutTests/imported/w3c:

Re-baselined existing tests. Fails on catching sharedBuffer being passed in, but currently

WebKit does not support sharedBuffer implementation.

  • web-platform-tests/webaudio/idlharness.https.window-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-audiobuffer-interface/audiobuffer-copy-channel-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-audiobuffer-interface/audiobuffer-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-waveshapernode-interface/waveshaper-limits-expected.txt:

Source/WebCore:

Added copyFromChannel, copyToChannel methods according to spec:
https://www.w3.org/TR/webaudio/#dom-audiobuffer-copyfromchannel-destination.
Used Chromium implementation for reference:
https://source.chromium.org/chromium/chromium/src/+/master:third_party/blink/renderer/modules/webaudio/audio_buffer.cc.

Re-baselined existing tests. Fails on catching sharedBuffer being passed in, but currently
WebKit does not support sharedBuffer implementation.

  • Modules/webaudio/AudioBuffer.cpp:

(WebCore::AudioBuffer::getChannelData):
(WebCore::AudioBuffer::copyFromChannel):
(WebCore::AudioBuffer::copyToChannel):

  • Modules/webaudio/AudioBuffer.h:
  • Modules/webaudio/AudioBuffer.idl:
3:00 PM Changeset in webkit [265061] by Simon Fraser
  • 6 edits in trunk/Tools

Make the lock icon update correctly in MiniBrowser
https://bugs.webkit.org/show_bug.cgi?id=214933

Reviewed by Alex Christensen.

Various fixes to the MiniBrowser lock icon. Set the initial state to unlocked in the XIB.
Dim the icon when there is no certificate to display. Dim it and show unlocked for WK1 windows.

  • MiniBrowser/mac/BrowserWindow.xib:
  • MiniBrowser/mac/BrowserWindowController.h:
  • MiniBrowser/mac/BrowserWindowController.m:

(-[BrowserWindowController showCertificate:]):

  • MiniBrowser/mac/WK1BrowserWindowController.m:

(-[WK1BrowserWindowController validateUserInterfaceItem:]):

  • MiniBrowser/mac/WK2BrowserWindowController.m:

(-[WK2BrowserWindowController validateUserInterfaceItem:]):

2:55 PM Changeset in webkit [265060] by Jonathan Bedard
  • 2 edits in trunk/Tools

[webkitcorepy] Add an auto-installer (Unreviewed follow-up fix 2)
https://bugs.webkit.org/show_bug.cgi?id=214606

Unreviewed infrastructure fix.

webkit-patch just ignores svn:ignore, and lands the patch with only a changelog.

  • Scripts/libraries: Added property svn:ignore.
2:50 PM Changeset in webkit [265059] by Wenson Hsieh
  • 8 edits
    1 add in trunk

[macOS] Inspector bar in Mail compose shows incorrect text alignment style for ranged selections
https://bugs.webkit.org/show_bug.cgi?id=214930
<rdar://problem/66185224>

Reviewed by Tim Horton.

Source/WebCore:

When a range of text is selected, AppKit consults -attributedSubstringForProposedRange:completionHandler: (or
just -attributedSubstringFromRange: in WebKitLegacy) to update the inspector bar with new style information.
Among this information is the paragraph style (an NSParagraphStyle corresponding to the attribute key
NSParagraphStyleAttributeName), which AppKit uses to select either the left, center or right text alignment
segmented control.

However, in both WebKitLegacy and modern WebKit, we don't include this information at all in HTMLConverter,
so AppKit just defaults to using -[NSParagraphStyle defaultParagraphStyle], with a default text alignment of
NSTextAlignmentNatural.

To fix this, include a new paragraph style object in the case where the text alignment is not equal to natural
(in other words, either a direction has been explicitly specified, or the text alignment style is not equal to
"start"). This paragraph style matches the default paragraph style, except for the alignment property which
is set to the corresponding NSTextAlignment value.

Tests: AttributedSubstringForProposedRange.TextAlignmentParagraphStyles

FontAttributes.FontAttributesAfterChangingSelection

  • editing/Editor.cpp:

(WebCore::Editor::fontAttributesAtSelectionStart const):

Also fixes an existing bug in Editor::fontAttributesAtSelectionStart, where NSTextAlignmentNatural is
currently always used for text-align: start;, even if the direction is specified as RTL. Instead, change this
so that we only fall back to "natural" if no direction is specified; otherwise, go with the explicit "left" or
"right" values.

  • editing/cocoa/HTMLConverter.mm:

(WebCore::editingAttributedString):

Tools:

Add a new API test and adjust an existing test to verify the codechange.

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/TestWebKitAPI/mac/AppKitSPI.h:
  • TestWebKitAPI/Tests/WebKitCocoa/FontAttributes.mm:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/rich-text-attributes.html:
  • TestWebKitAPI/Tests/mac/AttributedSubstringForProposedRange.mm: Added.

(TEST):

2:50 PM Changeset in webkit [265058] by Jonathan Bedard
  • 1 edit in trunk/Tools/ChangeLog

[webkitcorepy] Add an auto-installer (Unreviewed follow-up fix)
https://bugs.webkit.org/show_bug.cgi?id=214606

Unreviewed infrastructure fix.

svn:ignore was not correctly set when the patch was landed.

  • Scripts/libraries: Added property svn:ignore.
2:41 PM Changeset in webkit [265057] by Fujii Hironori
  • 2 edits in trunk/Source/WTF

[Win Debug] Unreviewed build fix

JavaScriptCore/runtime/JSArrayBufferView.cpp(51): error C2660: 'Gigacage::isEnabled': function does not take 0 arguments

  • wtf/Gigacage.h:

(Gigacage::isEnabled): Added isEnabled taking no argument which was adeed to bmalloc in r249556 (Bug 201521).

2:22 PM Changeset in webkit [265056] by jer.noble@apple.com
  • 8 edits in trunk/Source

REGRESSION(r264476): Calling systemHasAC() regresses launch time performance
https://bugs.webkit.org/show_bug.cgi?id=214907
<rdar://problem/66191430>

Reviewed by Eric Carlson.

Source/WebCore:

Because calling into IOPS can block, delay queries about AC state during WebProcessPool creation until
the next run-loop.

Simultaneously, we don't need to check HDR state in the UI process for IOS, so send a default value
there as well.

  • platform/cocoa/PowerSourceNotifier.h:
  • platform/cocoa/PowerSourceNotifier.mm:

(WebCore::PowerSourceNotifier::PowerSourceNotifier):

  • platform/cocoa/SystemBattery.h:
  • platform/cocoa/SystemBattery.mm:

(WebCore::cachedSystemHasAC):

  • platform/ios/PlatformScreenIOS.mm:

(WebCore::collectScreenProperties):

Source/WebKit:

  • UIProcess/Cocoa/WebProcessPoolCocoa.mm:

(WebKit::WebProcessPool::platformInitializeWebProcess):

2:21 PM Changeset in webkit [265055] by don.olmstead@sony.com
  • 7 edits in trunk/Source

Remove USE(ZLIB)
https://bugs.webkit.org/show_bug.cgi?id=214929

Reviewed by Darin Adler.

Source/WebCore:

Remove USE(ZLIB) guards in WebSocket code. Since WebSocketDeflateFramer::canDeflate
is always true remove it and the callsite checking it in WebSocketChannel.

  • Modules/websockets/WebSocketChannel.cpp:

(WebCore::WebSocketChannel::connect):

  • Modules/websockets/WebSocketDeflateFramer.cpp:

(WebCore::WebSocketExtensionDeflateFrame::processResponse):
(WebCore::WebSocketDeflateFramer::enableDeflate):
(WebCore::WebSocketDeflateFramer::deflate):
(WebCore::WebSocketDeflateFramer::resetDeflateContext):
(WebCore::WebSocketDeflateFramer::inflate):
(WebCore::WebSocketDeflateFramer::resetInflateContext):
(WebCore::WebSocketDeflateFramer::canDeflate const): Deleted.

  • Modules/websockets/WebSocketDeflateFramer.h:
  • Modules/websockets/WebSocketDeflater.cpp:

Source/WTF:

Remove setting a default value of USE_ZLIB.

  • wtf/PlatformUse.h:
2:02 PM Changeset in webkit [265054] by Ryan Haddad
  • 1 edit
    2 copies
    1 move
    6 adds
    1 delete in trunk/LayoutTests

Unreviewed iOS test gardening.

  • platform/ios-13/imported/w3c/web-platform-tests/css/css-flexbox/inline-flex-editing-with-updating-text-crash-expected.txt: Copied from LayoutTests/platform/ios-wk2/imported/w3c/web-platform-tests/css/css-flexbox/inline-flex-editing-with-updating-text-crash-expected.txt.
  • platform/ios-13/imported/w3c/web-platform-tests/fetch/redirect-navigate/preserve-fragment-expected.txt: Added.
  • platform/ios-13/imported/w3c/web-platform-tests/mathml/relations/css-styling/ignored-properties-001-expected.txt: Renamed from LayoutTests/platform/ios-wk2/imported/w3c/web-platform-tests/mathml/relations/css-styling/ignored-properties-001-expected.txt.
  • platform/ios/imported/w3c/web-platform-tests/css/css-flexbox/inline-flex-editing-with-updating-text-crash-expected.txt: Renamed from LayoutTests/platform/ios-wk2/imported/w3c/web-platform-tests/css/css-flexbox/inline-flex-editing-with-updating-text-crash-expected.txt.
  • platform/ios/imported/w3c/web-platform-tests/fetch/redirect-navigate/preserve-fragment-expected.txt: Added.
2:02 PM Changeset in webkit [265053] by Jonathan Bedard
  • 5 edits in trunk/Tools

[ews.webkit.org] Skip build upload for embedded iOS builds
https://bugs.webkit.org/show_bug.cgi?id=214923

Reviewed by Aakash Jain.

  • BuildSlaveSupport/ews-build/config.json: Skip upload for iOS Embedded builds.
  • BuildSlaveSupport/ews-build/factories.py:

(iOSEmbeddedBuildFactory): Skip building and uploading product archive.

1:24 PM Changeset in webkit [265052] by Chris Dumez
  • 6 edits in trunk/Source/WebCore

Calling AudioNode constructors should have identical behavior to using create*() function on BaseAudioContext
https://bugs.webkit.org/show_bug.cgi?id=214931

Reviewed by Eric Carlson.

Calling AudioNode constructors should have identical behavior to using create*() function on BaseAudioContext.
Otherwise, this leads to assertion hits on the bots like we saw for Bug 214851.

We need to make sure that the AudioContext gets initialized when an AudioNode constructor gets called. We also
need to make sure refNode() gets called if necessary.

  • Modules/webaudio/BaseAudioContext.cpp:

(WebCore::BaseAudioContext::createPanner):
(WebCore::BaseAudioContext::createOscillator):
(WebCore::BaseAudioContext::createPeriodicWave):

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

(WebCore::OscillatorNode::create):

  • Modules/webaudio/PannerNode.cpp:

(WebCore::PannerNode::create):

  • Modules/webaudio/PeriodicWave.cpp:

(WebCore::PeriodicWave::create):

1:00 PM Changeset in webkit [265051] by Simon Fraser
  • 5 edits in trunk

REGRESSION: ASSERTION FAILED: !needsLayout() on tiled-drawing/scrolling/fast-scroll-mainframe-zoom.html flakily
https://bugs.webkit.org/show_bug.cgi?id=214651
Source/WebCore:

<rdar://problem/65952371>

Reviewed by Zalan Bujtas.

Page::doAfterUpdateRendering() is expected to only call functions that can't trigger layout. However,
it could cause the firing of the "monitorWheelEvent" callback which can run arbitrary JS, so move that
earlier in the rendering update, before we do the final layout.

Also assert that the main frame doesn't need layout at the end of Page::doAfterUpdateRendering();
we were only checking subframes.

Tested by lots of existing tests.

  • page/Page.cpp:

(WebCore::Page::updateRendering):
(WebCore::Page::doAfterUpdateRendering):

LayoutTests:

Reviewed by Zalan Bujtas.

De-flake this test.

  • fast/scrolling/mac/scrollbars/overflow-in-iframe-overlay-scrollbar-hovered-expected.txt:
  • fast/scrolling/mac/scrollbars/overflow-in-iframe-overlay-scrollbar-hovered.html:
12:12 PM Changeset in webkit [265050] by Chris Dumez
  • 6 edits in trunk

Make sure playback state constants remain on OscillatorNode for backward compatibility
https://bugs.webkit.org/show_bug.cgi?id=214925

Reviewed by Eric Carlson.

Source/WebCore:

Make sure playback state constants remain on OscillatorNode for backward compatibility,
while we keep supporting the prefixed Web Audio API.

No new tests, updated existing test.

  • Modules/webaudio/OscillatorNode.idl:
  • Modules/webaudio/WebKitOscillatorNode.idl:

LayoutTests:

Improve layout test coverage.

  • webaudio/oscillatornode-legacy-api-expected.txt:
  • webaudio/oscillatornode-legacy-api.html:
11:43 AM Changeset in webkit [265049] by Jonathan Bedard
  • 5 edits
    2 adds in trunk/Tools

[webkitcorepy] Add an auto-installer
https://bugs.webkit.org/show_bug.cgi?id=214606

Reviewed by Darin Adler.

Add an autoinstaller to webkitcorepy. This is eventually intended to replace the
autoinstaller in webkitpy.

  • Scripts/libraries: Added property svn:ignore.
  • Scripts/libraries/webkitcorepy/README.md:
  • Scripts/libraries/webkitcorepy/webkitcorepy/init.py:
  • Scripts/libraries/webkitcorepy/webkitcorepy/autoinstall.py: Added.

(Package): Class representing a single Python module.
(Package.Archive): Class representing a zip file containing a package.
(Package.Archive.init): Construct representation with a name, version and
downloadable link.
(Package.Archive.repr): Archives are named based on their package name
and version.
(Package.Archive.path): The location of a downloaded archive on disk.
(Package.Archive.download): Download archive and write contents to disk.
(Package.Archive.unpack): Unpack archive on disk into package.
(Package.init): Packages are constructed with a name, version and name on
PyPi, which is assumed to be the package name unless specified.
(Package.location): Location of the package on disk.
(Package.do_post_install): Some packages have post-install actions, execute
those.
(Package.archives): Return a list of archives which match the specified
package parameters.
(Package.is_cached): Check the AutoInstall manifest to see if a package has
already been installed.
(Package.install): If needed, find a compatible archive for the specified
package, download and install it.
(AutoInstall): Namespace for auto-install functionality.
(AutoInstall._request): Make a request to the package index specified.
(AutoInstall.enable): Enable the auto-installer.
(AutoInstall.disable): Disable the auto-installer.
(AutoInstall.set_directory): Set the directory to save auto-installed libraries to.
(AutoInstall.set_index): Use a different package index.
(AutoInstall.set_timeout): Set the default timeout.
(AutoInstall.register): Add a package to the list of packages to be installed
when encountered.
(AutoInstall.install): Given a package, register and install that package.
(AutoInstall.install_everything): Install all registered packages if they are not
already.
(AutoInstall.find_module): Check and see if a requested module has been registered,
if it has, install that module if needed.

  • Scripts/libraries/webkitcorepy/webkitcorepy/cacert.pem: Added.
  • Scripts/libraries/webkitcorepy/webkitcorepy/rootcerts.p7b: Added.
  • Scripts/webkitpy/init.py: Add logger, autoinstalled requests and certifi.
  • Scripts/webkitpy/test/main.py:

(Tester._run_tests): Include webkitcorepy.AutoInstall when installing everything.

11:30 AM Changeset in webkit [265048] by Chris Dumez
  • 4 edits in trunk

http/tests/cookies/document-cookie-multiple-cookies.html is failing on Windows
https://bugs.webkit.org/show_bug.cgi?id=214880

Reviewed by Darin Adler.

Source/WebCore:

Fix same bug as in r264943 but on Windows.

No new tests, covered by http/tests/cookies/document-cookie-multiple-cookies.html.

  • platform/network/cf/NetworkStorageSessionCFNetWin.cpp:

(WebCore::parseDOMCookie):
(WebCore::NetworkStorageSession::setCookiesFromDOM const):

LayoutTests:

Unskip test that is no longer failing on Windows.

  • platform/win/TestExpectations:
11:11 AM Changeset in webkit [265047] by youenn@apple.com
  • 5 edits in trunk

scaleResolutionDownBy has no effect on RTCRtpSender
https://bugs.webkit.org/show_bug.cgi?id=214783
<rdar://problem/66108346>

Reviewed by Eric Carlson.

Source/WebCore:

Covered by updated test.

  • Modules/mediastream/libwebrtc/LibWebRTCUtils.cpp:

(WebCore::updateRTCRtpSendParameters):
Allow to change scaleResolutionDownBy.

LayoutTests:

  • webrtc/video-expected.txt:
  • webrtc/video.html:
10:45 AM Changeset in webkit [265046] by mark.lam@apple.com
  • 23 edits in trunk/Source/WebCore

CodeGeneratorJS should release the throwScope before doing a void call at end of a function.
https://bugs.webkit.org/show_bug.cgi?id=214924

Reviewed by Chris Dumez.

It is necessary to release the throwScope because the void call at the end of the
function may throw an exception. Releasing the throwScope here says that this
function is releasing the responsibility to handle the exception, and will allow
the potential exception from the trailing void call to propagate to its caller.
The responsibility to handle the exception is passed to this function's caller (or
some earlier caller in the stack). It is ok to release the throwScope here
because the trailing void call will effectively be the last thing that this
function does before returning.

Covered by existing tests.

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateImplementationFunctionCall):

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

(WebCore::jsMapLikePrototypeFunctionClearBody):

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

(WebCore::jsSetLikePrototypeFunctionClearBody):

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

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

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

(WebCore::jsTestCEReactionsPrototypeFunctionMethodWithCEReactionsBody):
(WebCore::jsTestCEReactionsPrototypeFunctionMethodWithCEReactionsNotNeededBody):

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

(WebCore::jsTestCallTracerPrototypeFunctionTestOperationInterfaceBody):
(WebCore::jsTestCallTracerPrototypeFunctionTestOperationSpecifiedBody):
(WebCore::jsTestCallTracerPrototypeFunctionTestOperationWithArgumentsBody):
(WebCore::jsTestCallTracerPrototypeFunctionTestOperationWithNullableArgumentBody):
(WebCore::jsTestCallTracerPrototypeFunctionTestOperationWithVariantArgumentBody):
(WebCore::jsTestCallTracerPrototypeFunctionTestOperationWithNullableVariantArgumentBody):
(WebCore::jsTestCallTracerPrototypeFunctionTestOperationWithOptionalVariantArgumentBody):
(WebCore::jsTestCallTracerPrototypeFunctionTestOperationWithDefaultVariantArgumentBody):

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

(WebCore::jsTestEnabledBySettingPrototypeFunctionEnabledBySettingOperationBody):

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

(WebCore::jsTestGlobalObjectInstanceFunctionRegularOperationBody):
(WebCore::jsTestGlobalObjectInstanceFunctionEnabledAtRuntimeOperation1Body):
(WebCore::jsTestGlobalObjectInstanceFunctionEnabledAtRuntimeOperation2Body):
(WebCore::jsTestGlobalObjectConstructorFunctionEnabledAtRuntimeOperationStaticBody):
(WebCore::jsTestGlobalObjectInstanceFunctionEnabledInSpecificWorldBody):
(WebCore::jsTestGlobalObjectInstanceFunctionEnabledInSpecificWorldWhenRuntimeFeatureEnabledBody):
(WebCore::jsTestGlobalObjectInstanceFunctionEnabledInSpecificWorldWhenRuntimeFeaturesEnabledBody):
(WebCore::jsTestGlobalObjectInstanceFunctionTestPrivateFunctionBody):
(WebCore::jsTestGlobalObjectInstanceFunctionCalculateSecretResultBody):

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

(WebCore::jsTestIndexedSetterWithIdentifierPrototypeFunctionIndexedSetterBody):

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

(WebCore::jsTestInterfacePrototypeFunctionImplementsMethod1Body):
(WebCore::jsTestInterfaceConstructorFunctionImplementsMethod4Body):
(WebCore::jsTestInterfacePrototypeFunctionSupplementalMethod1Body):
(WebCore::jsTestInterfaceConstructorFunctionSupplementalMethod4Body):

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

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

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

(WebCore::jsTestNamedDeleterWithIdentifierPrototypeFunctionNamedDeleterBody):

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

(WebCore::jsTestNamedSetterWithIdentifierPrototypeFunctionNamedSetterBody):

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

(WebCore::jsTestNamedSetterWithIndexedGetterPrototypeFunctionNamedSetterBody):

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

(WebCore::jsTestNamedSetterWithIndexedGetterAndSetterPrototypeFunctionNamedSetterBody):
(WebCore::jsTestNamedSetterWithIndexedGetterAndSetterPrototypeFunctionIndexedSetter1Body):

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

(WebCore::jsTestNamedSetterWithUnforgablePropertiesInstanceFunctionUnforgeableOperationBody):

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

(WebCore::jsTestNamedSetterWithUnforgablePropertiesAndOverrideBuiltinsInstanceFunctionUnforgeableOperationBody):

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

(WebCore::jsTestNodePrototypeFunctionTestWorkerPromiseBody):
(WebCore::jsTestNodePrototypeFunctionCalculateSecretResultBody):

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

(WebCore::callJSTestObj1):
(WebCore::callJSTestObj3):
(WebCore::jsTestObjPrototypeFunctionEnabledAtRuntimeOperation1Body):
(WebCore::jsTestObjPrototypeFunctionEnabledAtRuntimeOperation2Body):
(WebCore::jsTestObjConstructorFunctionEnabledAtRuntimeOperationStaticBody):
(WebCore::jsTestObjPrototypeFunctionEnabledInSpecificWorldWhenRuntimeFeatureEnabledBody):
(WebCore::jsTestObjPrototypeFunctionWorldSpecificMethodBody):
(WebCore::jsTestObjPrototypeFunctionCalculateSecretResultBody):
(WebCore::jsTestObjPrototypeFunctionVoidMethodBody):
(WebCore::jsTestObjPrototypeFunctionVoidMethodWithArgsBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithArgTreatingNullAsEmptyStringBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithXPathNSResolverParameterBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithEnumArgBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithStandaloneEnumArgBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalEnumArgBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalEnumArgAndDefaultValueBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithUSVStringArgBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithNullableUSVStringArgBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithUSVStringArgTreatingNullAsEmptyStringBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithByteStringArgBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithNullableByteStringArgBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithByteStringArgTreatingNullAsEmptyStringBody):
(WebCore::jsTestObjPrototypeFunctionSerializedValueBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithRecordBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithExceptionBody):
(WebCore::jsTestObjPrototypeFunctionAddEventListenerBody):
(WebCore::jsTestObjPrototypeFunctionRemoveEventListenerBody):
(WebCore::jsTestObjPrototypeFunctionWithExecStateVoidBody):
(WebCore::jsTestObjPrototypeFunctionWithExecStateVoidExceptionBody):
(WebCore::jsTestObjPrototypeFunctionWithScriptExecutionContextBody):
(WebCore::jsTestObjPrototypeFunctionWithScriptExecutionContextAndExecStateBody):
(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::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::jsTestObjPrototypeFunctionOverloadedMethodWithOptionalParameter1Body):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethodWithOptionalParameter2Body):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethodWithDistinguishingUnion1Body):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethodWithDistinguishingUnion2Body):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethodWith2DistinguishingUnions1Body):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethodWith2DistinguishingUnions2Body):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethodWithNonDistinguishingUnion1Body):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethodWithNonDistinguishingUnion2Body):
(WebCore::jsTestObjPrototypeFunctionOverloadWithNullableUnion1Body):
(WebCore::jsTestObjPrototypeFunctionOverloadWithNullableUnion2Body):
(WebCore::jsTestObjPrototypeFunctionOverloadWithOptionalUnion1Body):
(WebCore::jsTestObjPrototypeFunctionOverloadWithOptionalUnion2Body):
(WebCore::jsTestObjPrototypeFunctionOverloadWithNullableNonDistinguishingParameter1Body):
(WebCore::jsTestObjPrototypeFunctionOverloadWithNullableNonDistinguishingParameter2Body):
(WebCore::jsTestObjConstructorFunctionClassMethodBody):
(WebCore::jsTestObjConstructorFunctionOverloadedMethod11Body):
(WebCore::jsTestObjConstructorFunctionOverloadedMethod12Body):
(WebCore::jsTestObjPrototypeFunctionClassMethodWithClampBody):
(WebCore::jsTestObjPrototypeFunctionClassMethodWithClampOnOptionalBody):
(WebCore::jsTestObjPrototypeFunctionClassMethodWithEnforceRangeBody):
(WebCore::jsTestObjPrototypeFunctionClassMethodWithEnforceRangeOnOptionalBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithUnsignedLongSequenceBody):
(WebCore::jsTestObjPrototypeFunctionOperationWithOptionalUnionParameterBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithAndWithoutNullableSequenceBody):
(WebCore::jsTestObjPrototypeFunctionConvert1Body):
(WebCore::jsTestObjPrototypeFunctionConvert2Body):
(WebCore::jsTestObjPrototypeFunctionConvert3Body):
(WebCore::jsTestObjPrototypeFunctionConvert4Body):
(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::jsTestObjConstructorFunctionTestStaticPromiseFunctionBody):
(WebCore::jsTestObjConstructorFunctionTestStaticPromiseFunctionWithExceptionBody):
(WebCore::jsTestObjPrototypeFunctionConditionalOverload1Body):
(WebCore::jsTestObjPrototypeFunctionConditionalOverload2Body):
(WebCore::jsTestObjPrototypeFunctionSingleConditionalOverload1Body):
(WebCore::jsTestObjPrototypeFunctionSingleConditionalOverload2Body):
(WebCore::jsTestObjPrototypeFunctionAttachShadowRootBody):
(WebCore::jsTestObjPrototypeFunctionOperationWithExternalDictionaryParameterBody):
(WebCore::jsTestObjPrototypeFunctionBufferSourceParameterBody):
(WebCore::jsTestObjPrototypeFunctionLegacyCallerNamedBody):
(WebCore::jsTestObjPrototypeFunctionTestReturnValueOptimizationBody):
(WebCore::jsTestObjPrototypeFunctionTestReturnValueOptimizationWithExceptionBody):
(WebCore::jsTestObjPrototypeFunctionConditionallyExposedToWindowFunctionBody):
(WebCore::jsTestObjPrototypeFunctionConditionallyExposedToWorkerFunctionBody):
(WebCore::jsTestObjPrototypeFunctionConditionallyExposedToWindowAndWorkerFunctionBody):

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

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

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

(WebCore::jsTestSerializedScriptValueInterfacePrototypeFunctionFunctionBody):

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

(WebCore::jsTestTypedefsPrototypeFunctionFuncBody):
(WebCore::jsTestTypedefsPrototypeFunctionSetShadowBody):
(WebCore::jsTestTypedefsPrototypeFunctionNullableSequenceArgBody):
(WebCore::jsTestTypedefsPrototypeFunctionSequenceOfNullablesArgBody):
(WebCore::jsTestTypedefsPrototypeFunctionNullableSequenceOfNullablesArgBody):
(WebCore::jsTestTypedefsPrototypeFunctionNullableSequenceOfUnionsArgBody):
(WebCore::jsTestTypedefsPrototypeFunctionUnionArgBody):
(WebCore::jsTestTypedefsPrototypeFunctionFuncWithClampBody):
(WebCore::jsTestTypedefsPrototypeFunctionFuncWithClampInTypedefBody):
(WebCore::jsTestTypedefsPrototypeFunctionMethodWithExceptionBody):

9:54 AM Changeset in webkit [265045] by mark.lam@apple.com
  • 4 edits in trunk/Source/JavaScriptCore

Update some JSArrayBufferView comments and add some assertions.
https://bugs.webkit.org/show_bug.cgi?id=214914

Reviewed by Darin Adler.

  • runtime/ArrayBuffer.cpp:

(JSC::ArrayBuffer::createAdopted):

  • runtime/JSArrayBufferView.cpp:

(JSC::JSArrayBufferView::ConstructionContext::ConstructionContext):
(JSC::JSArrayBufferView::finalize):

  • runtime/JSArrayBufferView.h:
9:36 AM Changeset in webkit [265044] by Darin Adler
  • 55 edits in trunk/Source

Improve range idioms and other changes to prepare the way for more reduction in live range use
https://bugs.webkit.org/show_bug.cgi?id=214882

Reviewed by Sam Weinig.

Source/WebCore:

  • accessibility/AXObjectCache.cpp:

(WebCore::AccessibilityReplacedText::AccessibilityReplacedText): Call the
VisiblePosition versions of start and end instead of converting to Position
and then back to VisiblePosition.
(WebCore::AXObjectCache::rangeMatchesTextNearRange): Simplify with makeSimpleRange.
(WebCore::AXObjectCache::characterOffsetForPoint): Ditto.

  • accessibility/AccessibilityObject.cpp:

(WebCore::AccessibilityObject::visiblePositionRangeForUnorderedPositions const):
Update idiom for creating VisiblePositionRange since it's just a struct now
without explicit constructors.
(WebCore::AccessibilityObject::positionOfLeftWord const): Ditto.
(WebCore::AccessibilityObject::positionOfRightWord const): Ditto.
(WebCore::AccessibilityObject::leftLineVisiblePositionRange const): Ditto.
(WebCore::AccessibilityObject::rightLineVisiblePositionRange const): Ditto.
(WebCore::AccessibilityObject::sentenceForPosition const): Ditto.
(WebCore::AccessibilityObject::paragraphForPosition const): Ditto.
(WebCore::AccessibilityObject::styleRangeForPosition const): Ditto.
(WebCore::AccessibilityObject::visiblePositionRangeForRange const): Ditto.
(WebCore::AccessibilityObject::lineRangeForPosition const): Ditto.
(WebCore::AccessibilityObject::stringForVisiblePositionRange): Ditto.
(WebCore::AccessibilityObject::lengthForVisiblePositionRange const): Ditto.
(WebCore::AccessibilityObject::nextSentenceEndPosition const): Ditto.
(WebCore::AccessibilityObject::previousSentenceStartPosition const): Ditto.

  • accessibility/AccessibilityObjectInterface.h: Moved VisiblePositionRange

to VisiblePosition.h for wider use. Also removed constructors.

  • accessibility/AccessibilityRenderObject.cpp:

(WebCore::AccessibilityRenderObject::textUnderElement const): Simplify with
makeSimpleRange.
(WebCore::AccessibilityRenderObject::linkClickPoint): Ditto.
(WebCore::AccessibilityRenderObject::clickPoint): Ditto.
(WebCore::AccessibilityRenderObject::visiblePositionRange const): Updated
for removal of VisiblePositionRange constructor.
(WebCore::AccessibilityRenderObject::visiblePositionRangeForLine const):
Remove unnecessary explicit conversion to VisiblePositionRange.

  • accessibility/mac/WebAccessibilityObjectWrapperMac.mm:

(visiblePositionRangeForTextMarkerRange): Added, replacing separate functions
for start and end.
(-[WebAccessibilityObjectWrapper visiblePositionRangeForTextMarkerRange:]):
Simplify using visiblePositionRangeForTextMarkerRange.

  • dom/Document.cpp: Added include of "Range.h", may not be needed right now,

but highly likely to be needed after future live range work.

  • dom/Node.cpp: Removed include of "Range.h".
  • dom/Position.h: Added PositionRange. This will be a more efficient

alternative to SimpleRange that can avoid computing node offets for positions
before and after anchor nodes in some cases. Not used yet.

  • dom/RadioButtonGroups.cpp: Removed include of "Range.h".
  • dom/Range.h: Export makeSimpleRange overload now used outside WebCore.
  • dom/SimpleRange.cpp:

(WebCore::makeSimpleRange): Added overloads for ranges that consist of just
a single boundary point, so the argument does not have to be passed twice.
(WebCore::commonInclusiveAncestor): Added overload so caller can just pass
a simple range rather than passing two boundary point container nodes.

  • dom/SimpleRange.h: Added makeSimpleRange overloads that take one or more

argument that can be passed to makeBoundaryPoint or actual boundary points.

  • dom/StaticRange.cpp: Removed include of "Range.h".
  • editing/AlternativeTextController.cpp:

(WebCore::AlternativeTextController::markPrecedingWhitespaceForDeletedAutocorrectionAfterCommand):
Simplify with makeSimpleRange.
(WebCore::AlternativeTextController::processMarkersOnTextToBeReplacedByResult):
Ditto.

  • editing/ApplyStyleCommand.cpp:

(WebCore::ApplyStyleCommand::applyBlockStyle): Ditto.

  • editing/CompositeEditCommand.cpp:

(WebCore::stringForVisiblePositionIndexRange): Updated for removal of
VisiblePositionRange constructor; also use move to reduce reference count
churn a tiny bit.
(WebCore::CompositeEditCommand::moveParagraphs): Simplify with makeSimpleRange.

  • editing/DeleteSelectionCommand.cpp: Added include of "Range.h", may not be needed now,

but highly likely to be needed after future live range work.

  • editing/Editing.cpp:

(WebCore::indexForVisiblePosition): Simplify using makeSimpleRange and
makeBoundaryPointBeforeNodeContents.

  • editing/Editor.cpp:

(WebCore::Editor::selectedText const): Simplify using VisibleSelection::firstRange.
(WebCore::extendSelection): Simplify using makeSimpleRange.
(WebCore::Editor::contextRangeForCandidateRequest const): Ditto.
(WebCore::Editor::adjustedSelectionRange): Simplify with the new overload
of commonInclusiveAncestor.

  • editing/FrameSelection.cpp:

(WebCore::FrameSelection::wordOffsetInRange const): Deleted. Moved the code
into the iOS-specific part of WebKitLegacy WebFrame.
(WebCore::FrameSelection::spaceFollowsWordInRange const): Deleted. Moved the
code into the iOS-specific part of WebKitLegacy WebFrame.
(WebCore::FrameSelection::selectionAtSentenceStart const): Merged in with
actualSelectionAtSentenceStart.
(WebCore::FrameSelection::actualSelectionAtSentenceStart const): Deleted.

  • editing/FrameSelection.h: Updated for the above deletion.
  • editing/TextCheckingHelper.cpp:

(WebCore::TextCheckingParagraph::offsetTo const): Simplify with makeSimpleRange.

  • editing/TextManipulationController.cpp:

(WebCore::ParagraphContentIterator::ParagraphContentIterator): Simplify with
makeSimpleRange.

  • editing/TypingCommand.cpp:

(WebCore::TypingCommand::postTextStateChangeNotificationForDeletion): Pass
visibleStart/End instead of converting to Position and back to VisiblePosition.

  • editing/VisiblePosition.cpp:

(WebCore::makeSimpleRange): Added. Converts a VisiblePositionRange into
a SimpleRange.

  • editing/VisiblePosition.h: Moved VisiblePositionRange here.
  • editing/VisibleSelection.cpp:

(WebCore::VisibleSelection::firstRange const): Simplify using makeSimpleRange.
(WebCore::VisibleSelection::toNormalizedRange const): Ditto.
(WebCore::makeSearchRange): Deleted. This was confusingly named given that
it was only used in appendTrailingWhitespace.
(WebCore::VisibleSelection::appendTrailingWhitespace): Merged makeSearchRange
in here and simplified using makeSimpleRange.

  • editing/VisibleSelection.h: Added conversion to VisiblePositionRange.

Previously this was implemented as a constructor for VisiblePositionRange,
but that was a layering inversion since this is built on top of VisiblePosition.

  • editing/VisibleUnits.cpp:

(WebCore::distanceBetweenPositions): Simplified using makeSimpleRange.
(WebCore::charactersAroundPosition): Ditto.
(WebCore::wordRangeFromPosition): Removed an unhelpful comment.
(WebCore::closestWordBoundaryForPosition): Ditto.

  • editing/cocoa/DataDetection.mm:

(WebCore::detectItem): Simplify using makeSimpleRange.
(WebCore::searchForLinkRemovingExistingDDLinks): Removed out argument
about modifying the DOM. This was used to work around a problem caused by
using live ranges. The problem no longer exists because the code does not
use live ranges any more.
(WebCore::DataDetection::detectContentInRange): Removed the workaround.

  • editing/cocoa/DictionaryLookup.mm:

(WebCore::DictionaryLookup::rangeForSelection): Simplify using makeSimpleRange.
(WebCore::DictionaryLookup::rangeAtHitTestResult): Ditto.

  • editing/cocoa/WebContentReaderCocoa.mm: Added include of "Range.h", may

not be needed now, but highly likely to be needed after future live range work.

  • editing/ios/DictationCommandIOS.cpp: Removed include of "Range.h".
  • editing/mac/DictionaryLookupLegacy.mm:

(WebCore::DictionaryLookup::rangeForSelection): Simplify using makeSimpleRange.
(WebCore::DictionaryLookup::rangeAtHitTestResult): Ditto.

  • editing/mac/EditorMac.mm: Removed include of "Range.h".
  • editing/markup.cpp:

(WebCore::StyledMarkupAccumulator::renderedTextRespectingRange): Simplify
using makeSimpleRange.

  • editing/win/EditorWin.cpp: Added include of "Range.h", may not be needed now,

but highly likely to be needed after future live range work.

  • html/shadow/mac/ImageControlsButtonElementMac.cpp: Removed include of "Range.h".
  • page/DOMSelection.cpp:

(WebCore::DOMSelection::addRange): Call setSelection instead of moveTo.
No need to have two functions that do the same thing.

  • page/EventHandler.cpp:

(WebCore::textDistance): Simplify using makeSimpleRange.

  • page/Frame.cpp:

(WebCore::Frame::rangeForPoint): Simplify using makeSimpleRange.

  • page/TextIndicator.cpp:

(WebCore::estimatedBackgroundColorForRange): Simplify using the
commonInclusiveAncestor overload that takes a range.
(WebCore::initializeIndicator): Ditto.

Source/WebKit:

  • WebProcess/InjectedBundle/API/c/WKBundleNodeHandle.cpp:

(WKBundleNodeHandleGetRenderRect): Emptied out this unused function and added
ASSERT_NOT_REACHED. Later, we can delete this once we deal with any link-time
dependencies. I believe Safari may link with this but never calls it.
(WKBundleNodeHandleCopyVisibleRange): Ditto.
(WKBundleNodeHandleSetHTMLInputElementSpellcheckEnabled): Ditto.
(WKBundleNodeHandleGetHTMLInputElementAutoFilled): Ditto.
(WKBundleNodeHandleGetHTMLInputElementAutoFillButtonEnabled): Ditto.
(WKBundleNodeHandleGetHTMLInputElementAutoFillAvailable): Ditto.
(WKBundleNodeHandleGetHTMLInputElementAutoFillButtonBounds): Ditto.
(WKBundleNodeHandleCopyHTMLTableCellElementCellAbove): Ditto.
(WKBundleNodeHandleCopyHTMLFrameElementContentFrame): Ditto.
(WKBundleNodeHandleGetHTMLInputElementAutofilled): Ditto.
(WKBundleNodeHandleSetHTMLInputElementAutofilled): Ditto.
(WKBundleNodeHandleSetHTMLInputElementAutoFillButtonEnabled): Ditto.

  • WebProcess/WebPage/Cocoa/TextCheckingControllerProxy.mm:

(WebKit::TextCheckingControllerProxy::annotatedSubstringBetweenPositions):
Simplify with makeSimpleRange.

  • WebProcess/WebPage/glib/WebPageGLib.cpp: Added include of "Range.h",

may not be needed right now, but highly likely to be needed after
future live range work.

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

(WebKit::WebPage::selectWithGesture): Simplify with makeSimpleRange.
(WebKit::WebPage::requestDocumentEditingContext): Ditto.

  • WebProcess/WebPage/mac/WebPageMac.mm:

(WebKit::WebPage::attributedSubstringForCharacterRangeAsync):
Use auto for range to prepare for possible change of type from live
range to SimpleRange.

Source/WebKitLegacy:

  • WebKitLegacy.xcodeproj/project.pbxproj: Removed singly-building

DOMUIKitExtensions.mm, which also is built in a unified source file.
We don't need to build it twice.

Source/WebKitLegacy/mac:

  • WebCoreSupport/WebEditorClient.mm:

(insertionPointFromCurrentSelection): Simplify with makeSimpleRange.
(WebEditorClient::requestCandidatesForSelection): Ditto.

  • WebView/WebFrame.mm:

(-[WebFrame _convertToDOMRange:rangeIsRelativeTo:]): Get rid of
unnecessary construction of a range just to get an end point.
(-[WebFrame wordOffsetInRange:]): Moved logic here from VisibleSelection.
(-[WebFrame spaceFollowsWordInRange:]): Ditto.

9:02 AM Changeset in webkit [265043] by Noam Rosenthal
  • 2 edits in trunk/Source/WebKit

Enable paint timing by default
https://bugs.webkit.org/show_bug.cgi?id=211736

Reviewed by Simon Fraser.

  • Shared/WebPreferences.yaml:

PaintTimingEnabled default to true.

8:33 AM Changeset in webkit [265042] by Adrian Perez de Castro
  • 1 copy in releases/WPE WebKit/webkit-2.29.2

WPE WebKit 2.29.2

8:33 AM Changeset in webkit [265041] by Adrian Perez de Castro
  • 4 edits in trunk

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

.:

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

Source/WebKit:

  • wpe/NEWS: Add release notes for 2.29.2.
7:51 AM Changeset in webkit [265040] by Jonathan Bedard
  • 2 edits in trunk/Tools

[build.webkit.org] Add Big Sur builder (Follow-up Fix)
https://bugs.webkit.org/show_bug.cgi?id=214879
<rdar://problem/66221071>

Reviewed by Aakash Jain.

  • BuildSlaveSupport/build.webkit.org-config/wkbuild.py:

(_should_file_trigger_build): Add Big Sur.

6:38 AM Changeset in webkit [265039] by Adrian Perez de Castro
  • 9 edits in trunk/Source/WebCore

Non-unified build fixes, late July 2020 edition
https://bugs.webkit.org/show_bug.cgi?id=214918

Unreviewed build fix.

No new tests needed.

  • Modules/webaudio/WebKitOscillatorNode.h: Add missing WebKitAudioContext.h header to make

the constructor of WebKitOscillatorNode that WebKitAudioContext inherits from the base
context, otherwise the compiler does not know which base class constructor to invoke.

  • bindings/js/JSDOMConvertDate.h: Add missing JSGlobalObject.h header.
  • bindings/js/ReadableStreamDefaultController.cpp: Sprinkle missing JSC:: namespace

prefixes where needed.
(WebCore::invokeReadableStreamDefaultControllerFunction):
(WebCore::ReadableStreamDefaultController::close):
(WebCore::ReadableStreamDefaultController::error):
(WebCore::ReadableStreamDefaultController::enqueue):

  • editing/SpellChecker.cpp: Add missing inclusion of TextIterator.h.
  • editing/SpellChecker.h: Add missing inclusion of SimpleRange.h.
  • editing/TextCheckingHelper.h: Forward declare Frame and VisibleSelection.
  • editing/TextIterator.cpp: Add missing inclusion of Range.h.
  • workers/WorkerScriptLoader.h: Add missing inclusion of CertificateInfo.h.
5:35 AM Changeset in webkit [265038] by commit-queue@webkit.org
  • 29 edits
    4 deletes in trunk

Unreviewed, reverting r265002.
https://bugs.webkit.org/show_bug.cgi?id=214919

Broke imported/w3c/web-platform-tests/webaudio/the-audio-api
/the-scriptprocessornode-interface/simple-input-output.html

Reverted changeset:

"Added constructor methods to ChannelMergerNode,
ChannelSplitterNode"
https://bugs.webkit.org/show_bug.cgi?id=214851
https://trac.webkit.org/changeset/265002

4:55 AM Changeset in webkit [265037] by commit-queue@webkit.org
  • 13 edits
    2 deletes in trunk

Unreviewed, reverting r265018.
https://bugs.webkit.org/show_bug.cgi?id=214917

Broke various ios-wk2 tests.

Reverted changeset:

"Migrate App-Bound Domains code from WebKit Additions"
https://bugs.webkit.org/show_bug.cgi?id=214889
https://trac.webkit.org/changeset/265018

3:32 AM Changeset in webkit [265036] by Paulo Matos
  • 15 edits in trunk

for..of intrinsics implementation for 32bits
https://bugs.webkit.org/show_bug.cgi?id=214737

Reviewed by Yusuke Suzuki.

Joint work with Caio Lima <Caio Lima>.
JSTests:

Unskip tests previously skipped due to missing for..of intrinsics.

  • stress/for-of-array-different-globals.js:
  • 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:

Source/JavaScriptCore:

Implements for..of intrinsics for 32bits.
Adds or8 instruction to ARMv7 and MIPS Macro Assembler.
Adds intrinsic operations to LLInt and Baseline for 32bits.
Fixes DFG OSR Exit bug, where checkpoint temporary value is
incorrectly recreated for Baseline.
Refactors code in DFG OSR Exit to be easier to modify and
maintain by separating the switch cases for 32 and 64bits.

  • assembler/MacroAssemblerARMv7.h:

(JSC::MacroAssemblerARMv7::or8): Adds or8(TrustedImm, AbsoluteAddress)
(JSC::MacroAssemblerARMv7::or32):
(JSC::MacroAssemblerARMv7::store8):

  • assembler/MacroAssemblerMIPS.h:

(JSC::MacroAssemblerMIPS::or8): Adds or8(TrustedImm, AbsoluteAddress)
(JSC::MacroAssemblerMIPS::store8):

  • assembler/testmasm.cpp:

(JSC::testOrImmMem): Tests or8

  • bytecompiler/BytecodeGenerator.cpp:

(JSC::BytecodeGenerator::emitEnumeration):

  • dfg/DFGOSRExit.cpp:

(JSC::DFG::OSRExit::compileExit): Fixes DFG OSR Exit bug, where checkpoint temporary value is
incorrectly recreated for Baseline. Refactors code in DFG OSR Exit to be easier to modify and
maintain by separating the switch cases for 32 and 64bits.

  • jit/JIT.h:
  • jit/JITCall32_64.cpp:

(JSC::JIT::emitPutCallResult):
(JSC::JIT::compileSetupFrame):
(JSC::JIT::compileOpCall):
(JSC::JIT::emit_op_iterator_open):
(JSC::JIT::emitSlow_op_iterator_open):
(JSC::JIT::emit_op_iterator_next):
(JSC::JIT::emitSlow_op_iterator_next):

  • jit/JITInlines.h:

(JSC::JIT::emitJumpSlowCaseIfNotJSCell):

  • llint/LowLevelInterpreter32_64.asm:
1:45 AM Changeset in webkit [265035] by youenn@apple.com
  • 4 edits in trunk

TestWebKitAPI.WebKit.QuotaDelegate flaky times out
https://bugs.webkit.org/show_bug.cgi?id=214842

Reviewed by Geoffrey Garen.

Source/WebKit:

Add some release logging.

  • UIProcess/Network/NetworkProcessProxy.cpp:

(WebKit::NetworkProcessProxy::requestStorageSpace):

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/StorageQuota.mm:

In case the page is not visible, quota increase delegate will be denied.
Delay the cache storage hence the quota increase until the page is visible.

1:32 AM Changeset in webkit [265034] by ysuzuki@apple.com
  • 5 edits in trunk

[JSC] Reflect object should have toStringTag with "Reflect"
https://bugs.webkit.org/show_bug.cgi?id=214909

Reviewed by Mark Lam.

JSTests:

  • stress/reflect.js:
  • test262/expectations.yaml:

Source/JavaScriptCore:

We call JSC_TO_STRING_TAG_WITHOUT_TRANSITION in ReflectObject to set "Reflect" @@toStringTag, which fixes one test262 failure.

  • runtime/ReflectObject.cpp:

(JSC::ReflectObject::finishCreation):

1:16 AM Changeset in webkit [265033] by Carlos Garcia Campos
  • 1 copy in releases/WebKitGTK/webkit-2.29.4

WebKitGTK 2.29.4

1:15 AM Changeset in webkit [265032] by Carlos Garcia Campos
  • 4 edits in trunk

Unreviewed. Update OptionsGTK.cmake and NEWS for 2.29.4 release

.:

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

Source/WebKit:

  • gtk/NEWS: Add release notes for 2.29.4.

Jul 28, 2020:

11:47 PM Changeset in webkit [265031] by Fujii Hironori
  • 2 edits in trunk/Source/WebCore

[WinCairo] REGRESSION(r264986) Unreviewed crash fix
https://bugs.webkit.org/show_bug.cgi?id=201507

  • platform/graphics/egl/GLContextEGL.cpp:

(WebCore::GLContextEGL::createWindowContext): Initialize a variable 'surface' as EGL_NO_SURFACE for WinCairo.

11:18 PM Changeset in webkit [265030] by ysuzuki@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

[JSC] Add hasCustomGetterSetterProperties to canAccessPropertiesQuicklyForEnumeration
https://bugs.webkit.org/show_bug.cgi?id=214908
<rdar://problem/65883816>

Reviewed by Mark Lam.

canAccessPropertiesQuicklyForEnumeration should filter out hasCustomGetterSetterProperties too.

  • runtime/Structure.cpp:

(JSC::Structure::canAccessPropertiesQuicklyForEnumeration const):

10:37 PM Changeset in webkit [265029] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

REGRESSION (r264930): [ iOS debug wk2 ] webrtc/video.html is a constant failure
https://bugs.webkit.org/show_bug.cgi?id=214888

Unreviewed test gardening.

  • platform/ios-simulator-wk2/TestExpectations: Remove test expectation

since the change that caused the failure was reverted.

10:18 PM Changeset in webkit [265028] by Chris Dumez
  • 15 edits
    2 copies
    2 adds in trunk

Source/WebCore:
Move non standard OscillatorNode API to new webKitOscillatorNode interface
https://bugs.webkit.org/show_bug.cgi?id=214902

Reviewed by Darin Adler.

Move non standard OscillatorNode API to new webKitOscillatorNode interface:
https://webaudio.github.io/web-audio-api/#oscillatornode

Namely, the playbackState attribute and its associated constants are now exposed
on the prefixed webKitOscillatorNode interface instead of the unprefixed
OscillatorNode. This way, this API is still available to apps using the prefixed
API but we do not support this legacy API if the app is using the modern unprefixed
API.

Test: webaudio/oscillatornode-legacy-api.html

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

(WebCore::OscillatorNode::create):
(WebCore::OscillatorNode::setType):
(WebCore::OscillatorNode::setPeriodicWave):

  • Modules/webaudio/OscillatorNode.h:
  • Modules/webaudio/OscillatorNode.idl:
  • Modules/webaudio/WebKitAudioContext.cpp:

(WebCore::WebKitAudioContext::createWebKitOscillator):

  • Modules/webaudio/WebKitAudioContext.h:
  • Modules/webaudio/WebKitAudioContext.idl:
  • Modules/webaudio/WebKitOscillatorNode.h: Copied from Source/WebCore/Modules/webaudio/OscillatorNode.idl.

(WebCore::WebKitOscillatorNode::create):
(WebCore::WebKitOscillatorNode::setWebKitPeriodicWave):
(WebCore::WebKitOscillatorNode::WebKitOscillatorNode):

  • Modules/webaudio/WebKitOscillatorNode.idl: Copied from Source/WebCore/Modules/webaudio/OscillatorNode.idl.
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/WebCoreBuiltinNames.h:

LayoutTests:
Move non standard OscillatorNode API to new WebKitOscillatorNode interface
https://bugs.webkit.org/show_bug.cgi?id=214902

Reviewed by Darin Adler.

Add layout test coverage.

  • webaudio/oscillatornode-legacy-api-expected.txt: Added.
  • webaudio/oscillatornode-legacy-api.html: Added.
9:31 PM Changeset in webkit [265027] by BJ Burg
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: REGRESSION(r255396): Audit: button to exit edit mode in main content area is missing border
https://bugs.webkit.org/show_bug.cgi?id=214898
<rdar://problem/66238391>

Reviewed by Devin Rousso.

  • UserInterface/Base/Main.js: codify that this function only accepts ButtonNavigationItems.

Future developers, you'll need to adjust the CSS for non-button navigation items to work out.

  • UserInterface/Views/Main.css:

(.navigation-item-help > .navigation-bar > .item.button):
(.navigation-item-help > .navigation-bar > .item.button:not(.text-only)):
(.navigation-item-help > .navigation-bar > .item.button.text-only):
(.navigation-item-help > .navigation-bar > .item): Deleted.
(.navigation-item-help > .navigation-bar > .item:not(.text-only)): Deleted.
(.navigation-item-help > .navigation-bar > .item.text-only): Deleted.
Split out the rules for text-only buttons. The regressing change added more specificity
for the text + image case which made the border transparent and removed extra padding.
Also add .button since we only expect buttons to be used in this context.

6:58 PM Changeset in webkit [265026] by Karl Rackler
  • 5 edits in trunk

Unreviewed, reverting r264930.

Reverting Pre-Submission Testing

Reverted changeset:

"scaleResolutionDownBy has no effect on RTCRtpSender"
https://bugs.webkit.org/show_bug.cgi?id=214783
https://trac.webkit.org/changeset/264930

6:30 PM Changeset in webkit [265025] by dino@apple.com
  • 3 edits in trunk/Tools

run-minibrowser doesn't respect webkit configuration
https://bugs.webkit.org/show_bug.cgi?id=214857
<rdar://problem/66187636>

Reviewed by Jonathan Bedard.

  • Scripts/webkitpy/minibrowser/run_webkit_app.py:

(main): Don't force a Release configuration if none was given.

  • Scripts/webkitpy/port/config.py:

(Config.flag_for_configuration): Look at the default configuration if we didn't
pass one in.

4:59 PM Changeset in webkit [265024] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Unreviewed test gardening, remove duplicate TestExpectations entry.

  • platform/win/TestExpectations:
4:56 PM Changeset in webkit [265023] by commit-queue@webkit.org
  • 2 edits in trunk/Source/ThirdParty/ANGLE

Pause during ANGLE roll script after rebasing and before deleting temporary Git repo
https://bugs.webkit.org/show_bug.cgi?id=212717

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

Give the user the opportunity to manually examine the changes
relative to upstream ANGLE, and to undo any accidental or
undesired ones, before finishing the roll.

  • update-angle.sh:
4:49 PM Changeset in webkit [265022] by Karl Rackler
  • 1 edit in trunk/LayoutTests/platform/win/TestExpectations

[ Win10 ] http/tests/cookies/document-cookie-multiple-cookies.html is failing on Windows
https://bugs.webkit.org/show_bug.cgi?id=214880

Unreviewed test gardening.

  • platform/win/TestExpectations:
4:41 PM Changeset in webkit [265021] by Karl Rackler
  • 2 edits in trunk/LayoutTests

[ Win10 ] http/tests/cookies/document-cookie-multiple-cookies.html is failing on Windows
https://bugs.webkit.org/show_bug.cgi?id=214880

Unreviewed test gardening.

  • platform/win/TestExpectations:
4:41 PM Changeset in webkit [265020] by Oriol Brufau
  • 4 edits
    4 adds in trunk

[css-grid] Fix 'align-content' in grid containers with small content area
https://bugs.webkit.org/show_bug.cgi?id=214370

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Create a WPT test and import another one.

  • web-platform-tests/css/css-grid/alignment/grid-place-content-001-expected.txt: Added.
  • web-platform-tests/css/css-grid/alignment/grid-place-content-001.html: Added.
  • web-platform-tests/css/css-sizing/available-height-for-replaced-content-001-expected.txt: Added.
  • web-platform-tests/css/css-sizing/available-height-for-replaced-content-001.html: Added.
  • web-platform-tests/css/css-sizing/w3c-import.log:

Source/WebCore:

In order to properly obey 'align-content', grid containers need to know
the available grid space for the block axis. But there was a bug when
the sum of border and padding sizes in the block axis were bigger than
the content area. Then the available space was considered to be that sum.

This patch fixes it so that the available grid space is the size of its
content box when that is definite.

Tests: imported/w3c/web-platform-tests/css/css-grid/alignment/grid-place-content-001.html

imported/w3c/web-platform-tests/css/css-sizing/available-height-for-replaced-content-001.html

  • rendering/RenderBox.cpp:

(WebCore::RenderBox::availableLogicalHeight const):

4:21 PM Changeset in webkit [265019] by Peng Liu
  • 4 edits in trunk/Source/WebCore

Clean up PlaybackSessionInterface[Mac|AVKit]
https://bugs.webkit.org/show_bug.cgi?id=214895

Reviewed by Eric Carlson.

No new tests, no functional change.

  • platform/ios/PlaybackSessionInterfaceAVKit.h:
  • platform/ios/PlaybackSessionInterfaceAVKit.mm:

(WebCore::PlaybackSessionInterfaceAVKit::PlaybackSessionInterfaceAVKit):
(WebCore::PlaybackSessionInterfaceAVKit::playbackSessionModel const):
Remove unnecessary WEBCORE_EXPORT.
Include the correct header for Ref.
Replace "protected" with "private".
Use WeakPtr of PlaybackSessionModel instead of a raw pointer.

  • platform/mac/PlaybackSessionInterfaceMac.h:

Add "final" to ensureControlsManager().
Some small cleanup.

4:14 PM Changeset in webkit [265018] by Kate Cheney
  • 13 edits
    2 adds in trunk

Migrate App-Bound Domains code from WebKit Additions
https://bugs.webkit.org/show_bug.cgi?id=214889
<rdar://problem/66075857>

Reviewed by Brent Fulgham.

Source/WebKit:

No new tests, this is just code migration and will be tested
by existing App-Bound Domains tests.

  • NetworkProcess/cocoa/NetworkSessionCocoa.mm:

(WebKit::activateSessionCleanup):
(WebKit::NetworkSessionCocoa::sessionWrapperForTask):

  • Shared/Cocoa/DefaultWebBrowserChecks.h: Added.
  • Shared/Cocoa/DefaultWebBrowserChecks.mm: Added.

Holds all functions related to full browser checks and
App-Bound Domains.

(WebKit::shouldBeTreatedAsFullBrowser):
(WebKit::getAppBoundDomainsTesting):
These functions allow us to treat our test runners as full browsers
while triggering non-browser mode for testing other App-Bound Domains
functionality.

(WebKit::isInWebKitChildProcess):
(WebKit::hasRequestedCrossWebsiteTrackingPermission):
(WebKit::determineITPStateInternal):
(WebKit::determineITPState):
(WebKit::doesAppHaveITPEnabled):
(WebKit::doesParentProcessHaveITPEnabled):
(WebKit::hasProhibitedUsageStrings):
(WebKit::isParentProcessAFullWebBrowser):
(WebKit::isFullWebBrowser):

  • UIProcess/API/APIHTTPCookieStore.cpp:

(API::HTTPCookieStore::filterAppBoundCookies):

  • UIProcess/API/APIPageConfiguration.cpp:

(API::PageConfiguration::PageConfiguration):
(): Deleted.

  • UIProcess/WebPageProxy.cpp:
  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::WebProcessPool):
(WebKit::WebProcessPool::ensureNetworkProcess):
(WebKit::WebProcessPool::createNewWebProcess):

  • UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm:

(WebKit::WebsiteDataStore::addTestDomains const):
(WebKit::WebsiteDataStore::ensureAppBoundDomains const):

  • UIProcess/WebsiteData/WebsiteDataStore.h:
  • WebKit.xcodeproj/project.pbxproj:

Tools:

Replace WebKit Additions macros with code to set a different bundle
identifier indicating that we want to run an App-Bound Domains test.

Remove #if USE(APPLE_INTERNAL_SDK) check so we run these tests on EWS.

  • TestWebKitAPI/Tests/WebKitCocoa/InAppBrowserPrivacy.mm:

(cleanUpInAppBrowserPrivacyTestSettings):
(initializeInAppBrowserPrivacyTestSettings):

LayoutTests:

  • platform/ios-wk2/TestExpectations:

These tests are now expected to pass.

4:04 PM Changeset in webkit [265017] by aakash_jain@apple.com
  • 2 edits in trunk/Tools

[ews] Add macOS Big Sur support in PrintConfiguration
https://bugs.webkit.org/show_bug.cgi?id=214903

Reviewed by Darin Adler.

  • BuildSlaveSupport/ews-build/steps.py:

(PrintConfiguration.convert_build_to_os_name):

3:48 PM Changeset in webkit [265016] by Jonathan Bedard
  • 4 edits in trunk/Tools

[build.webkit.org] Add Big Sur builder
https://bugs.webkit.org/show_bug.cgi?id=214879
<rdar://problem/66221071>

Reviewed by Aakash Jain.

  • BuildSlaveSupport/build.webkit.org-config/config.json: Add Big Sur release builder.
  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/WebKitBuildbot.js:

(WebKitBuildbot): Add new builder to bot watcher's dashboard.

  • BuildSlaveSupport/build.webkit.org-config/steps_unittest.py: Add BigSur.
3:43 PM Changeset in webkit [265015] by Karl Rackler
  • 2 edits in trunk/LayoutTests

REGRESSION (r264522): [ macOS wk1 ] 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-wk1/TestExpectations:
3:24 PM Changeset in webkit [265014] by Chris Dumez
  • 7 edits in trunk

[EventSource] WebKit fails to UTF-8 encode the Last-Event-ID HTTP header value
https://bugs.webkit.org/show_bug.cgi?id=214860

Reviewed by Alex Christensen and Darin Adler.

LayoutTests/imported/w3c:

Rebaseline a couple of web-platform-tests that are now passing.

  • web-platform-tests/eventsource/format-field-id-2-expected.txt:
  • web-platform-tests/eventsource/format-field-id-expected.txt:

Source/WebCore:

WebKit fails to UTF-8 encode the Last-Event-ID HTTP header value for EventSource.

The specification is here:
https://html.spec.whatwg.org/multipage/server-sent-events.html#reestablish-the-connection (step 5.3.)

This is causing us to fail a couple of EventSource web-platform-tests which are passing in both Chrome & Firefox.

No new tests, rebaselined existing tests.

  • platform/network/cf/ResourceRequestCFNet.cpp:

(WebCore::setHeaderFields):

  • platform/network/cf/ResourceRequestCFNet.h:

(WebCore::httpHeaderValueUsingSuitableEncoding):

  • platform/network/cocoa/ResourceRequestCocoa.mm:

(WebCore::ResourceRequest::doUpdatePlatformRequest):

3:09 PM Changeset in webkit [265013] by Jonathan Bedard
  • 3 edits
    2 adds in trunk/Tools

[Big Sur] Add Seed 3 to bot watcher's dashboard\nhttps://bugs.webkit.org/show_bug.cgi?id=214863\n<rdar://problem/66198642>\n\nReviewed by Darin Adler.\n\n* BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Images/BigSur.png: Added.\n* BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Images/BigSur@2x.png: Added.\n* BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/Dashboard.js: Add Big Sur.\n* BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Styles/Main.css: Ditto.\n

3:07 PM Changeset in webkit [265012] by Alan Coon
  • 1 copy in tags/Safari-610.1.23.1.3

Tag Safari-610.1.23.1.3.

3:06 PM Changeset in webkit [265011] by Alan Coon
  • 1 copy in tags/Safari-610.1.23.0.2

Tag Safari-610.1.23.0.2.

2:43 PM Changeset in webkit [265010] by Jonathan Bedard
  • 2 edits in trunk/Source/WebCore/PAL

[Big Sur] Wrap SPI in feature guards (Follow-up fix)
https://bugs.webkit.org/show_bug.cgi?id=214844
<rdar://problem/66178527>

Unreviewed build fix.

  • pal/spi/mac/NSImageSPI.h: Guard SPI with NS_ASSUME_NONNULL.
2:38 PM Changeset in webkit [265009] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebKit

Web Share API Level 2: Can only perform one share action per share sheet invocation
https://bugs.webkit.org/show_bug.cgi?id=214894

Reviewed by Wenson Hsieh.

No new tests; our WKShareSheet testing mechanism intentionally bypasses
actually presenting the share sheet, which is the only way to test this.

WKShareSheet assumes that UIActivityViewController's completionWithItemsHandler
is only called once, when the share sheet is dismissed, and uses it to
clean up the temporary file written to disk, and send the success state
to the API.

However, it is actually called per share action, of which an arbitrary number
can be performed per UIActivityViewController invocation.

Defer cleanup until the share sheet is actually dismissed (which we observe
using UIAdaptivePresentationControllerDelegate's -presentationControllerDidDismiss: callback),
and respond to the Web Share API with success if *any* attempted share action
succeeded.

  • UIProcess/Cocoa/WKShareSheet.mm:

(-[WKShareSheet presentWithParameters:inRect:completionHandler:]):
(-[WKShareSheet presentWithShareDataArray:inRect:]):
(-[WKShareSheet sharingServicePicker:didChooseSharingService:]):
(-[WKShareSheet sharingService:didFailToShareItems:error:]):
(-[WKShareSheet sharingService:didShareItems:]):
(-[WKShareSheet presentationControllerDidDismiss:]):
(-[WKShareSheet dismiss]):
Fold dispatchDidDismiss and _didCompleteWithSuccess into -dismiss,
so we only have one "dismiss if needed and also do the requisite cleanup"
path. -dismiss should only be called when it is no longer possible to do
additional sharing actions for the current share sheet invocation.

(-[WKShareSheet _didCompleteWithSuccess:]): Deleted.
(-[WKShareSheet dispatchDidDismiss]): Deleted.

2:34 PM Changeset in webkit [265008] by BJ Burg
  • 2 edits in trunk/Source/WebInspectorUI

REGRESSION(r262716) Web Inspector: start button is misaligned in Audit content view
https://bugs.webkit.org/show_bug.cgi?id=214891

Reviewed by Devin Rousso.

In r262716, a rendering defect related to flexbox was fixed. Web Inspector
layout inadvertently relied on the defect. Now that it's fixed, a CSS rule is
pushing the outline for navigation help buttons out of vertical alignment
with surrounding textt.

  • UserInterface/Views/Main.css:

(.navigation-item-help): Remove line-height. It was previously ignored
due to a layout bug, and now its presence messes up vertical alignment.

2:20 PM Changeset in webkit [265007] by commit-queue@webkit.org
  • 3 edits in trunk/LayoutTests

[ Mac ] webgl/2.0.0/ tests failing after r264997
https://bugs.webkit.org/show_bug.cgi?id=214893

Unreviewed test gardening.

Mark webgl/2.0.0/conformance/uniforms/gl-uniform-arrays.html slow
in Debug mode.

Incorporate upstream fix to
webgl/2.0.0/conformance2/rendering/clear-srgb-color-buffer.html
from https://github.com/KhronosGroup/WebGL/pull/3132 .

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

  • TestExpectations:
  • webgl/2.0.0/resources/webgl_test_files/conformance2/rendering/clear-srgb-color-buffer.html:
2:07 PM Changeset in webkit [265006] by Alan Bujtas
  • 5 edits
    1 add
    1 delete in trunk/LayoutTests

Regression (r264960): [mac-wk1] fast/dynamic/size-to-content-autosize-with-percent-document-height.html is consistently failing
https://bugs.webkit.org/show_bug.cgi?id=214885
<rdar://problem/66218218>

Unreviewed.

Make the autosizing test case work with WK1.

  • fast/dynamic/size-to-content-autosize-with-percent-document-height-expected.html: Removed.
  • fast/dynamic/size-to-content-autosize-with-percent-document-height-expected.txt: Added.
  • fast/dynamic/size-to-content-autosize-with-percent-document-height.html:
  • platform/glib/TestExpectations:
  • platform/ios/TestExpectations:
  • platform/mac-wk1/TestExpectations:
2:04 PM Changeset in webkit [265005] by youenn@apple.com
  • 2 edits
    4 adds in trunk/LayoutTests

Add WebRTC tests exercising H264 with various resolutions and bitrates.
https://bugs.webkit.org/show_bug.cgi?id=214867

Reviewed by Eric Carlson.

Add additional tests to better cover underlying H264 codecs.

  • TestExpectations: Mark tests as slow.
  • webrtc/h264-baseline-expected.txt: Added.
  • webrtc/h264-baseline.html: Added.
  • webrtc/h264-high-expected.txt: Added.
  • webrtc/h264-high.html: Added.
1:29 PM Changeset in webkit [265004] by commit-queue@webkit.org
  • 3 edits in trunk/LayoutTests

[WebGL2] Enable more multiple render target layout tests
https://bugs.webkit.org/show_bug.cgi?id=214780

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

Re-enable two WebGL 2.0 layout tests that are now passing after
the fix for Bug 211156.

  • TestExpectations:
  • webgl/2.0.0/conformance2/rendering/clear-func-buffer-type-match-expected.txt:
1:22 PM Changeset in webkit [265003] by Fujii Hironori
  • 2 edits in trunk/Source/WebCore

[WinCairo] ANGLE D3D renderer can crash when PlatformDisplayWin is destructed in IPC thread
https://bugs.webkit.org/show_bug.cgi?id=214241

Reviewed by Don Olmstead.

Web process calls _exit() in IPC thread when the IPC connection is
closed. PlatformDisplay::sharedDisplay has a static variable of
std::unique_ptr<PlatformDisplay> to ensure it will be destructed
on the process termination. This rarely causes crashes in ANGLE
because ANGLE D3D renderer isn't thread-safe at the moment.

  • platform/graphics/PlatformDisplay.cpp:

(WebCore::PlatformDisplay::sharedDisplay): Don't destruct
PlatformDisplay for PLATFORM(WIN). Use unique_ptr::release to leak it.

1:14 PM Changeset in webkit [265002] by commit-queue@webkit.org
  • 29 edits
    4 adds in trunk

Added constructor methods to ChannelMergerNode, ChannelSplitterNode
https://bugs.webkit.org/show_bug.cgi?id=214851

Patch by Clark Wang <clark_wang@apple.com> on 2020-07-28
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-audiobuffersourcenode-interface/buffer-resampling-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-audiobuffersourcenode-interface/sub-sample-buffer-stitching-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/k-rate-dynamics-compressor-connections-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-audioworklet-interface/simple-input-output.https-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-channelmergernode-interface/active-processing.https-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-channelmergernode-interface/audiochannelmerger-basic-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-channelmergernode-interface/ctor-channelmerger-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-channelsplitternode-interface/audiochannelsplitter-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-channelsplitternode-interface/ctor-channelsplitter-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-oscillatornode-interface/detune-limiting-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-pannernode-interface/panner-distance-clamping-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-scriptprocessornode-interface/simple-input-output-expected.txt:

Source/WebCore:

Added constructors for ChannelMergerNode, ChannelSplitterNode according to spec:
https://www.w3.org/TR/webaudio/#ChannelMergerNode-constructors. Added new files
for ChannelMergerOptions and ChannelSplitterOptions.

Re-baselined existing tests that now pass, or fail due to a different interface.

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

(WebCore::BaseAudioContext::createChannelSplitter):
(WebCore::BaseAudioContext::createChannelMerger):

  • Modules/webaudio/ChannelMergerNode.cpp:

(WebCore::ChannelMergerNode::create):
(WebCore::ChannelMergerNode::setChannelCount):
(WebCore::ChannelMergerNode::setChannelCountMode):

  • Modules/webaudio/ChannelMergerNode.h:
  • Modules/webaudio/ChannelMergerNode.idl:
  • Modules/webaudio/ChannelMergerOptions.h: Added.
  • Modules/webaudio/ChannelMergerOptions.idl: Added.
  • Modules/webaudio/ChannelSplitterNode.cpp:

(WebCore::ChannelSplitterNode::create):
(WebCore::ChannelSplitterNode::setChannelCount):
(WebCore::ChannelSplitterNode::setChannelCountMode):
(WebCore::ChannelSplitterNode::setChannelInterpretation):

  • Modules/webaudio/ChannelSplitterNode.h:
  • Modules/webaudio/ChannelSplitterNode.idl:
  • Modules/webaudio/ChannelSplitterOptions.h: Added.
  • Modules/webaudio/ChannelSplitterOptions.idl: Added.
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
1:03 PM Changeset in webkit [265001] by commit-queue@webkit.org
  • 14 edits
    6 adds in trunk

PerformanceObserver should work with 'type' and not just entryTypes
https://bugs.webkit.org/show_bug.cgi?id=209216

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

LayoutTests/imported/w3c:

Add po-observe-type.any.html and po-observe-type.any.worker.html tests and
update improved test expectations.

  • web-platform-tests/performance-timeline/performanceobservers.js: Added.

(findMatch):
(checkEntries):
(wait):
(checkSorted):

  • web-platform-tests/performance-timeline/po-observe-type.any-expected.txt: Added.
  • web-platform-tests/performance-timeline/po-observe-type.any.html: Added.
  • web-platform-tests/performance-timeline/po-observe-type.any.js: Added.

(test):
(async_test):

  • web-platform-tests/performance-timeline/po-observe-type.any.worker-expected.txt: Added.
  • web-platform-tests/performance-timeline/po-observe-type.any.worker.html: Added.
  • web-platform-tests/resource-timing/buffered-flag.any-expected.txt:
  • web-platform-tests/resource-timing/buffered-flag.any.worker-expected.txt:
  • web-platform-tests/resource-timing/object-not-found-adds-entry-expected.txt:
  • web-platform-tests/user-timing/buffered-flag.any-expected.txt:
  • web-platform-tests/user-timing/buffered-flag.any.worker-expected.txt:

Source/WebCore:

Add support for 'type' attribute as specified here [1].

Tests: imported/w3c/web-platform-tests/performance-timeline/po-observe-type.any.html

imported/w3c/web-platform-tests/performance-timeline/po-observe-type.any.worker.html

[1] https://w3c.github.io/performance-timeline/#dom-performanceobserverinit

  • page/PerformanceObserver.cpp:

(WebCore::PerformanceObserver::observe):

  • page/PerformanceObserver.h:
  • page/PerformanceObserver.idl:

LayoutTests:

Adjust test to be aligned with the specification and skip
tests that time out.

  • TestExpectations:
  • performance-api/performance-observer-api-expected.txt:
  • performance-api/resources/observer-api.js:
12:28 PM Changeset in webkit [265000] by caitp@igalia.com
  • 19 edits
    1 add in trunk

[JSC] add IC support for op_get_private_name
https://bugs.webkit.org/show_bug.cgi?id=213545

Reviewed by Saam Barati.

JSTests:

Add a crashtest for a crash in an earlier edition of the GPN IC patch.

  • stress/get-private-name-cache-failure.js: Added.

Source/JavaScriptCore:

The baseline JIT now supports a fast path for op_private_name,
using a variant of GetByVal IC.

The generated AccessCase has the following qualities:

  • Always "direct", relying only on the current structure for cachebility
  • Never impure (DOM properties are not supported at this time, ProxyObjects are treated as JSObjects)

Based on the microbenchmark reviewed on https://bugs.webkit.org/show_bug.cgi?id=213544, this sees
an improvement of roughly 50% on average.

  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::finishCreation):

  • bytecode/StructureStubInfo.cpp:

(JSC::StructureStubInfo::reset):

  • bytecode/StructureStubInfo.h:
  • dfg/DFGSpeculativeJIT32_64.cpp:

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

  • dfg/DFGSpeculativeJIT64.cpp:

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

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileGetByVal):

  • jit/ICStats.h:
  • jit/JIT.cpp:

(JSC::JIT::privateCompileMainPass):
(JSC::JIT::privateCompileSlowCases):

  • jit/JIT.h:
  • jit/JITInlineCacheGenerator.cpp:

(JSC::JITGetByValGenerator::JITGetByValGenerator):

  • jit/JITInlineCacheGenerator.h:
  • jit/JITOperations.cpp:

(JSC::getPrivateName):

  • jit/JITOperations.h:
  • jit/JITPropertyAccess.cpp:

(JSC::JIT::emit_op_get_by_val):
(JSC::JIT::emit_op_get_private_name):
(JSC::JIT::emitSlow_op_get_private_name):

  • jit/JITPropertyAccess32_64.cpp:

(JSC::JIT::emit_op_get_by_val):
(JSC::JIT::emit_op_get_private_name):
(JSC::JIT::emitSlow_op_get_private_name):

  • jit/Repatch.cpp:

(JSC::appropriateOptimizingGetByFunction):
(JSC::appropriateGetByFunction):
(JSC::tryCacheGetBy):

  • jit/Repatch.h:
12:21 PM Changeset in webkit [264999] by timothy@apple.com
  • 3 edits in trunk/Source/WebKit

Web Inspector: Don't allow docking to a hidden web view
https://bugs.webkit.org/show_bug.cgi?id=214886

Reviewed by Devin Rousso.

  • UIProcess/Inspector/WebInspectorProxy.cpp:

(WebKit::WebInspectorProxy::attach): Call platformCanAttach() since it can do a live check.
(WebKit::WebInspectorProxy::detach): Return early if already attached, otherwise asserts later.

  • UIProcess/Inspector/mac/WebInspectorProxyMac.mm:

(WebKit::WebInspectorProxy::platformCanAttach): Return flase when the web view is hidden.

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

REGRESSION (r264930): [ iOS debug wk2 ] webrtc/video.html is a constant failure
https://bugs.webkit.org/show_bug.cgi?id=214888

Unreviewed test gardening.

  • platform/ios-simulator-wk2/TestExpectations:
11:03 AM Changeset in webkit [264997] by commit-queue@webkit.org
  • 189 edits
    45 adds in trunk/LayoutTests

[WebGL2] Update WebGL 2.0.0 conformance suite snapshot
https://bugs.webkit.org/show_bug.cgi?id=214792

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

WebKit's snapshot of the WebGL 2.0.0 conformance suite was taken
in 2018, before the suite was finalized. Since then many bug fixes
were made to the tests. This new snapshot was taken by running the
conformance suite importing script:

python generate-webgl-tests.py -w \

~/[...]/WebGL/conformance-suites/2.0.0 -o 2.0.0

This update changes the expectations for a few tests. These are
all progressions except for one test,
conformance2/glsl3/tricky-loop-conditions.html, which contains a
few new sub-tests which will have to be fixed.

  • TestExpectations:
  • webgl/2.0.0/conformance/context/constants-and-properties-expected.txt:
  • webgl/2.0.0/conformance/context/context-lost-restored-expected.txt:
  • webgl/2.0.0/conformance/extensions/ext-sRGB-expected.txt:
  • webgl/2.0.0/conformance/extensions/oes-vertex-array-object-expected.txt:
  • webgl/2.0.0/conformance2/context/constants-and-properties-2-expected.txt:
  • webgl/2.0.0/conformance2/glsl3/tricky-loop-conditions-expected.txt:
  • webgl/2.0.0/conformance2/textures/misc/copy-texture-image-expected.txt:
  • webgl/2.0.0/conformance2/textures/misc/tex-image-with-bad-args-expected.txt:
  • webgl/2.0.0/conformance2/textures/misc/tex-mipmap-levels-expected.txt:
  • webgl/2.0.0/conformance2/textures/misc/tex-srgb-mipmap-expected.txt:
  • webgl/2.0.0/conformance2/textures/misc/tex-storage-and-subimage-3d-expected.txt:
  • webgl/2.0.0/conformance2/vertex_arrays/vertex-array-object-expected.txt:
  • webgl/2.0.0/resources/webgl_test_files/README.md:
  • webgl/2.0.0/resources/webgl_test_files/conformance/00_test_list.txt:
  • webgl/2.0.0/resources/webgl_test_files/conformance/attribs/00_test_list.txt:
  • webgl/2.0.0/resources/webgl_test_files/conformance/attribs/gl-bindAttribLocation-aliasing.html:
  • webgl/2.0.0/resources/webgl_test_files/conformance/attribs/gl-vertex-attrib-zero-issues.html:
  • webgl/2.0.0/resources/webgl_test_files/conformance/attribs/gl-vertexattribpointer.html:
  • webgl/2.0.0/resources/webgl_test_files/conformance/buffers/00_test_list.txt:
  • webgl/2.0.0/resources/webgl_test_files/conformance/canvas/00_test_list.txt:
  • webgl/2.0.0/resources/webgl_test_files/conformance/canvas/canvas-test.html:
  • webgl/2.0.0/resources/webgl_test_files/conformance/context/constants-and-properties.html:
  • webgl/2.0.0/resources/webgl_test_files/conformance/context/context-attributes-alpha-depth-stencil-antialias.html:
  • webgl/2.0.0/resources/webgl_test_files/conformance/context/context-lost-restored.html:
  • webgl/2.0.0/resources/webgl_test_files/conformance/extensions/00_test_list.txt:
  • webgl/2.0.0/resources/webgl_test_files/conformance/extensions/angle-instanced-arrays.html:
  • webgl/2.0.0/resources/webgl_test_files/conformance/extensions/ext-disjoint-timer-query.html:
  • webgl/2.0.0/resources/webgl_test_files/conformance/extensions/ext-sRGB.html:
  • webgl/2.0.0/resources/webgl_test_files/conformance/extensions/oes-texture-float.html:
  • webgl/2.0.0/resources/webgl_test_files/conformance/extensions/oes-texture-half-float.html:
  • webgl/2.0.0/resources/webgl_test_files/conformance/extensions/oes-vertex-array-object.html:
  • webgl/2.0.0/resources/webgl_test_files/conformance/extensions/webgl-compressed-texture-etc.html:
  • webgl/2.0.0/resources/webgl_test_files/conformance/extensions/webgl-compressed-texture-pvrtc.html:
  • webgl/2.0.0/resources/webgl_test_files/conformance/extensions/webgl-compressed-texture-size-limit.html:
  • webgl/2.0.0/resources/webgl_test_files/conformance/extensions/webgl-depth-texture.html:
  • webgl/2.0.0/resources/webgl_test_files/conformance/extensions/webgl-draw-buffers.html:
  • webgl/2.0.0/resources/webgl_test_files/conformance/glsl/00_test_list.txt:
  • webgl/2.0.0/resources/webgl_test_files/conformance/glsl/bugs/00_test_list.txt:
  • webgl/2.0.0/resources/webgl_test_files/conformance/glsl/bugs/angle-ambiguous-function-call.html:
  • webgl/2.0.0/resources/webgl_test_files/conformance/glsl/bugs/compare-loop-index-to-uniform.html:
  • webgl/2.0.0/resources/webgl_test_files/conformance/glsl/bugs/constant-precision-qualifier.html:
  • webgl/2.0.0/resources/webgl_test_files/conformance/glsl/bugs/floored-division-accuracy.html:
  • webgl/2.0.0/resources/webgl_test_files/conformance/glsl/bugs/logic-inside-block-without-braces.html:
  • webgl/2.0.0/resources/webgl_test_files/conformance/glsl/bugs/modulo-arithmetic-accuracy.html:
  • webgl/2.0.0/resources/webgl_test_files/conformance/glsl/bugs/multiplication-assignment.html:
  • webgl/2.0.0/resources/webgl_test_files/conformance/glsl/bugs/sampler-struct-function-arg.html:
  • webgl/2.0.0/resources/webgl_test_files/conformance/glsl/bugs/sequence-operator-evaluation-order.html:
  • webgl/2.0.0/resources/webgl_test_files/conformance/glsl/bugs/struct-constructor-highp-bug.html:
  • webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/00_test_list.txt:
  • webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/global-variable-init.html:
  • webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shaders-with-invariance.html:
  • webgl/2.0.0/resources/webgl_test_files/conformance/misc/00_test_list.txt:
  • webgl/2.0.0/resources/webgl_test_files/conformance/misc/webgl-specific.html:
  • webgl/2.0.0/resources/webgl_test_files/conformance/more/functions/texImage2DHTML.html:
  • webgl/2.0.0/resources/webgl_test_files/conformance/more/functions/texSubImage2DHTML.html:
  • webgl/2.0.0/resources/webgl_test_files/conformance/more/functions/vertexAttribPointerBadArgs.html:
  • webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/struct/nestedstructcomb_various_frag.frag:
  • webgl/2.0.0/resources/webgl_test_files/conformance/ogles/GL/struct/nestedstructcomb_various_vert.vert:
  • webgl/2.0.0/resources/webgl_test_files/conformance/reading/00_test_list.txt:
  • webgl/2.0.0/resources/webgl_test_files/conformance/renderbuffers/00_test_list.txt:
  • webgl/2.0.0/resources/webgl_test_files/conformance/renderbuffers/framebuffer-object-attachment.html:
  • webgl/2.0.0/resources/webgl_test_files/conformance/rendering/00_test_list.txt:
  • webgl/2.0.0/resources/webgl_test_files/conformance/rendering/polygon-offset.html:
  • webgl/2.0.0/resources/webgl_test_files/conformance/state/gl-enable-enum-test.html:
  • webgl/2.0.0/resources/webgl_test_files/conformance/textures/canvas/00_test_list.txt:
  • webgl/2.0.0/resources/webgl_test_files/conformance/textures/canvas_sub_rectangle/00_test_list.txt:
  • webgl/2.0.0/resources/webgl_test_files/conformance/textures/image/00_test_list.txt:
  • webgl/2.0.0/resources/webgl_test_files/conformance/textures/image_bitmap_from_blob/00_test_list.txt:
  • webgl/2.0.0/resources/webgl_test_files/conformance/textures/image_bitmap_from_canvas/00_test_list.txt:
  • webgl/2.0.0/resources/webgl_test_files/conformance/textures/image_bitmap_from_image/00_test_list.txt:
  • webgl/2.0.0/resources/webgl_test_files/conformance/textures/image_bitmap_from_image_bitmap/00_test_list.txt:
  • webgl/2.0.0/resources/webgl_test_files/conformance/textures/image_bitmap_from_image_data/00_test_list.txt:
  • webgl/2.0.0/resources/webgl_test_files/conformance/textures/image_bitmap_from_video/00_test_list.txt:
  • webgl/2.0.0/resources/webgl_test_files/conformance/textures/image_data/00_test_list.txt:
  • webgl/2.0.0/resources/webgl_test_files/conformance/textures/misc/00_test_list.txt:
  • webgl/2.0.0/resources/webgl_test_files/conformance/textures/misc/texture-size-limit.html:
  • webgl/2.0.0/resources/webgl_test_files/conformance/textures/misc/texture-size.html:
  • webgl/2.0.0/resources/webgl_test_files/conformance/textures/svg_image/00_test_list.txt:
  • webgl/2.0.0/resources/webgl_test_files/conformance/textures/video/00_test_list.txt:
  • webgl/2.0.0/resources/webgl_test_files/conformance/textures/webgl_canvas/00_test_list.txt:
  • webgl/2.0.0/resources/webgl_test_files/conformance/typedarrays/array-unit-tests.html:
  • webgl/2.0.0/resources/webgl_test_files/conformance/uniforms/00_test_list.txt:
  • webgl/2.0.0/resources/webgl_test_files/conformance/uniforms/gl-uniform-arrays.html:
  • webgl/2.0.0/resources/webgl_test_files/conformance2/00_test_list.txt:
  • webgl/2.0.0/resources/webgl_test_files/conformance2/attribs/00_test_list.txt:
  • webgl/2.0.0/resources/webgl_test_files/conformance2/attribs/gl-vertexattribipointer-offsets.html:
  • webgl/2.0.0/resources/webgl_test_files/conformance2/attribs/gl-vertexattribipointer.html:
  • webgl/2.0.0/resources/webgl_test_files/conformance2/buffers/00_test_list.txt:
  • webgl/2.0.0/resources/webgl_test_files/conformance2/buffers/one-large-uniform-buffer.html:
  • webgl/2.0.0/resources/webgl_test_files/conformance2/buffers/uniform-buffers.html:
  • webgl/2.0.0/resources/webgl_test_files/conformance2/context/00_test_list.txt:
  • webgl/2.0.0/resources/webgl_test_files/conformance2/context/constants-and-properties-2.html:
  • webgl/2.0.0/resources/webgl_test_files/conformance2/extensions/00_test_list.txt:
  • webgl/2.0.0/resources/webgl_test_files/conformance2/extensions/ext-color-buffer-float.html:
  • webgl/2.0.0/resources/webgl_test_files/conformance2/glsl3/00_test_list.txt:
  • webgl/2.0.0/resources/webgl_test_files/conformance2/glsl3/array-assign-constructor.html:
  • webgl/2.0.0/resources/webgl_test_files/conformance2/glsl3/array-in-complex-expression.html:
  • webgl/2.0.0/resources/webgl_test_files/conformance2/glsl3/compare-structs-containing-arrays.html:
  • webgl/2.0.0/resources/webgl_test_files/conformance2/glsl3/short-circuiting-in-loop-condition.html:
  • webgl/2.0.0/resources/webgl_test_files/conformance2/glsl3/tricky-loop-conditions.html:
  • webgl/2.0.0/resources/webgl_test_files/conformance2/glsl3/vector-dynamic-indexing.html:
  • webgl/2.0.0/resources/webgl_test_files/conformance2/programs/00_test_list.txt:
  • webgl/2.0.0/resources/webgl_test_files/conformance2/renderbuffers/00_test_list.txt:
  • webgl/2.0.0/resources/webgl_test_files/conformance2/renderbuffers/framebuffer-object-attachment.html:
  • webgl/2.0.0/resources/webgl_test_files/conformance2/renderbuffers/multisampled-renderbuffer-initialization.html:
  • webgl/2.0.0/resources/webgl_test_files/conformance2/renderbuffers/readbuffer.html:
  • webgl/2.0.0/resources/webgl_test_files/conformance2/rendering/00_test_list.txt:
  • webgl/2.0.0/resources/webgl_test_files/conformance2/rendering/blitframebuffer-filter-outofbounds.html:
  • webgl/2.0.0/resources/webgl_test_files/conformance2/rendering/blitframebuffer-filter-srgb.html:
  • webgl/2.0.0/resources/webgl_test_files/conformance2/rendering/blitframebuffer-multisampled-readbuffer.html:
  • webgl/2.0.0/resources/webgl_test_files/conformance2/rendering/blitframebuffer-outside-readbuffer.html:
  • webgl/2.0.0/resources/webgl_test_files/conformance2/rendering/blitframebuffer-scissor-enabled.html:
  • webgl/2.0.0/resources/webgl_test_files/conformance2/rendering/blitframebuffer-size-overflow.html:
  • webgl/2.0.0/resources/webgl_test_files/conformance2/rendering/blitframebuffer-srgb-and-linear-drawbuffers.html:
  • webgl/2.0.0/resources/webgl_test_files/conformance2/rendering/blitframebuffer-stencil-only.html:
  • webgl/2.0.0/resources/webgl_test_files/conformance2/rendering/blitframebuffer-test.html:
  • webgl/2.0.0/resources/webgl_test_files/conformance2/rendering/clear-srgb-color-buffer.html:
  • webgl/2.0.0/resources/webgl_test_files/conformance2/rendering/draw-buffers.html:
  • webgl/2.0.0/resources/webgl_test_files/conformance2/rendering/element-index-uint.html:
  • webgl/2.0.0/resources/webgl_test_files/conformance2/rendering/framebuffer-completeness-unaffected.html:
  • webgl/2.0.0/resources/webgl_test_files/conformance2/rendering/instanced-arrays.html:
  • webgl/2.0.0/resources/webgl_test_files/conformance2/rendering/uniform-block-buffer-size.html:
  • webgl/2.0.0/resources/webgl_test_files/conformance2/samplers/00_test_list.txt:
  • webgl/2.0.0/resources/webgl_test_files/conformance2/sync/sync-webgl-specific.html:
  • webgl/2.0.0/resources/webgl_test_files/conformance2/textures/canvas/00_test_list.txt:
  • webgl/2.0.0/resources/webgl_test_files/conformance2/textures/canvas_sub_rectangle/00_test_list.txt:
  • webgl/2.0.0/resources/webgl_test_files/conformance2/textures/image/00_test_list.txt:
  • webgl/2.0.0/resources/webgl_test_files/conformance2/textures/image_bitmap_from_blob/00_test_list.txt:
  • webgl/2.0.0/resources/webgl_test_files/conformance2/textures/image_bitmap_from_canvas/00_test_list.txt:
  • webgl/2.0.0/resources/webgl_test_files/conformance2/textures/image_bitmap_from_image/00_test_list.txt:
  • webgl/2.0.0/resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_bitmap/00_test_list.txt:
  • webgl/2.0.0/resources/webgl_test_files/conformance2/textures/image_bitmap_from_image_data/00_test_list.txt:
  • webgl/2.0.0/resources/webgl_test_files/conformance2/textures/image_bitmap_from_video/00_test_list.txt:
  • webgl/2.0.0/resources/webgl_test_files/conformance2/textures/image_data/00_test_list.txt:
  • webgl/2.0.0/resources/webgl_test_files/conformance2/textures/misc/00_test_list.txt:
  • webgl/2.0.0/resources/webgl_test_files/conformance2/textures/misc/copy-texture-image-luma-format.html:
  • webgl/2.0.0/resources/webgl_test_files/conformance2/textures/misc/copy-texture-image.html:
  • webgl/2.0.0/resources/webgl_test_files/conformance2/textures/misc/tex-image-with-bad-args-from-dom-elements.html:
  • webgl/2.0.0/resources/webgl_test_files/conformance2/textures/misc/tex-image-with-bad-args.html:
  • webgl/2.0.0/resources/webgl_test_files/conformance2/textures/misc/tex-image-with-different-data-source.html:
  • webgl/2.0.0/resources/webgl_test_files/conformance2/textures/misc/tex-mipmap-levels.html:
  • webgl/2.0.0/resources/webgl_test_files/conformance2/textures/misc/tex-srgb-mipmap.html:
  • webgl/2.0.0/resources/webgl_test_files/conformance2/textures/misc/tex-storage-2d.html:
  • webgl/2.0.0/resources/webgl_test_files/conformance2/textures/misc/tex-storage-and-subimage-3d.html:
  • webgl/2.0.0/resources/webgl_test_files/conformance2/textures/misc/texel-fetch-undefined.html:
  • webgl/2.0.0/resources/webgl_test_files/conformance2/textures/svg_image/00_test_list.txt:
  • webgl/2.0.0/resources/webgl_test_files/conformance2/textures/video/00_test_list.txt:
  • webgl/2.0.0/resources/webgl_test_files/conformance2/textures/webgl_canvas/00_test_list.txt:
  • webgl/2.0.0/resources/webgl_test_files/conformance2/transform_feedback/00_test_list.txt:
  • webgl/2.0.0/resources/webgl_test_files/conformance2/transform_feedback/transform_feedback.html:
  • webgl/2.0.0/resources/webgl_test_files/conformance2/vertex_arrays/vertex-array-object.html:
  • webgl/2.0.0/resources/webgl_test_files/deqp/framework/common/tcuFloat.js:

(goog.scope.tcuFloat.deFloat):
(goog.scope.tcuFloat.deFloat.prototype.deFloatBuffer):
(goog.scope.tcuFloat.deFloat.prototype.deFloatParametersNumber):
(goog.scope.tcuFloat.deFloat.prototype.deFloatParameters):
(goog.scope.tcuFloat.deFloat.prototype.getBitRange):
(goog.scope.tcuFloat.newFloat10):
(goog.scope.tcuFloat.newFloat64):
(goog.scope):
(goog.scope.tcuFloat.deFloat.prototype.array32): Deleted.
(goog.scope.tcuFloat.deFloat.prototype.deFloatNumber64): Deleted.

  • webgl/2.0.0/resources/webgl_test_files/deqp/framework/common/tcuFuzzyImageCompare.js:

(goog.scope.tcuFuzzyImageCompare.bilinearSample):

  • webgl/2.0.0/resources/webgl_test_files/deqp/framework/common/tcuSkipList.js:
  • webgl/2.0.0/resources/webgl_test_files/deqp/framework/common/tcuTestCase.js:

(goog.scope.tcuTestCase.getQueryVal):
(goog.scope.tcuTestCase.Runner.prototype.terminate):
(goog.scope.tcuTestCase.getFilter): Deleted.

  • webgl/2.0.0/resources/webgl_test_files/deqp/framework/delibs/debase/deMath.js:

(goog.scope.deMath.arrayToNumber):
(goog.scope.deMath.numberToArray):
(goog.scope.deMath.getBitRange):
(goog.scope.DE_ASSERT): Deleted.
(goog.scope.deMath.getArray32BitRange): Deleted.

  • webgl/2.0.0/resources/webgl_test_files/deqp/functional/gles3/es3fFboColorbufferTests.js:

(goog.scope.es3fFboColorbufferTests.FboColorMultiTex2DCase.prototype.render):
(goog.scope.es3fFboColorbufferTests.FboColorTexCubeCase.prototype.render):
(goog.scope.es3fFboColorbufferTests.FboColorTex2DArrayCase.prototype.render):
(goog.scope.es3fFboColorbufferTests.FboColorTex3DCase.prototype.render):
(goog.scope.es3fFboColorbufferTests.FboBlendCase.prototype.render):
(goog.scope.es3fFboColorbufferTests.FboColorbufferTests.prototype.init):
(goog.scope.es3fFboColorbufferTests.run):
(goog.scope):

  • webgl/2.0.0/resources/webgl_test_files/deqp/functional/gles3/es3fLifetimeTests.js:

(goog.scope.es3fLifetimeTests.ScaleProgram.prototype.setPos):

  • webgl/2.0.0/resources/webgl_test_files/deqp/functional/gles3/es3fMultisampleTests.js:

(goog.scope.es3fMultisampleTests.MultisampleCase.prototype.init):
(goog.scope.es3fMultisampleTests.NumSamplesCase.prototype.iterate):

  • webgl/2.0.0/resources/webgl_test_files/deqp/functional/gles3/es3fNegativeVertexArrayApiTests.js:

(goog.scope.es3fNegativeVertexArrayApiTests.init):

  • webgl/2.0.0/resources/webgl_test_files/deqp/functional/gles3/es3fPixelBufferObjectTest.js:

(goog.scope.es3fPixelBufferObjectTest.ReadPixelsTest.prototype.iterate):

  • webgl/2.0.0/resources/webgl_test_files/deqp/functional/gles3/es3fShaderOperatorTests.js:

(goog.scope.es3fShaderOperatorTests.run):
(goog.scope):

  • webgl/2.0.0/resources/webgl_test_files/deqp/functional/gles3/es3fShaderPrecisionTests.js:

(goog.scope.es3fShaderPrecisionTests.add):
(goog.scope.es3fShaderPrecisionTests.sub):
(goog.scope.es3fShaderPrecisionTests.mul):
(goog.scope.es3fShaderPrecisionTests.mul32):
(goog.scope.es3fShaderPrecisionTests.div):
(goog.scope.es3fShaderPrecisionTests.createFloatPrecisionEvalProgram):
(goog.scope.es3fShaderPrecisionTests.createIntUintPrecisionEvalProgram):
(goog.scope.es3fShaderPrecisionTests.ShaderFloatPrecisionCase):
(goog.scope.es3fShaderPrecisionTests.ShaderFloatPrecisionCase.prototype.init):
(goog.scope.es3fShaderPrecisionTests.ShaderFloatPrecisionCase.prototype.deinit):
(goog.scope.es3fShaderPrecisionTests.ShaderFloatPrecisionCase.prototype.compare):
(goog.scope.es3fShaderPrecisionTests.ShaderFloatPrecisionCase.prototype.iterate):
(goog.scope.es3fShaderPrecisionTests.ShaderIntPrecisionCase):
(goog.scope.es3fShaderPrecisionTests.ShaderIntPrecisionCase.prototype.init):
(goog.scope.es3fShaderPrecisionTests.ShaderIntPrecisionCase.prototype.deinit):
(goog.scope.es3fShaderPrecisionTests.extendTo32Bit):
(goog.scope.es3fShaderPrecisionTests.ShaderIntPrecisionCase.prototype.iterate):
(goog.scope.es3fShaderPrecisionTests.ShaderUintPrecisionCase):
(goog.scope.es3fShaderPrecisionTests.ShaderUintPrecisionCase.prototype.init):
(goog.scope.es3fShaderPrecisionTests.ShaderUintPrecisionCase.prototype.deinit):
(goog.scope.es3fShaderPrecisionTests.ShaderUintPrecisionCase.prototype.iterate):
(goog.scope.FloatCase):
(goog.scope.IntCase):
(goog.scope.UintCase):
(goog.scope.es3fShaderPrecisionTests.ShaderPrecisionTests.prototype.init):

  • webgl/2.0.0/resources/webgl_test_files/deqp/functional/gles3/es3fShaderTextureFunctionTests.js:

(goog.scope.es3fShaderTextureFunctionTests.TextureSizeCase.prototype.testTextureSize):
(goog.scope.es3fShaderTextureFunctionTests.run):
(goog.scope):

  • webgl/2.0.0/resources/webgl_test_files/deqp/functional/gles3/es3fTextureFilteringTests.js:

(goog.scope.es3fTextureFilteringTests.run):
(goog.scope):

  • webgl/2.0.0/resources/webgl_test_files/deqp/temp_externs/html5.js:
  • webgl/2.0.0/resources/webgl_test_files/extra/50x50pixel-black-with-red-triangle.png: Added.
  • webgl/2.0.0/resources/webgl_test_files/extra/canvas-compositing-test.png: Added.
  • webgl/2.0.0/resources/webgl_test_files/extra/sample-100.png: Added.
  • webgl/2.0.0/resources/webgl_test_files/extra/sample-200.png: Added.
  • webgl/2.0.0/resources/webgl_test_files/extra/sample-400.png: Added.
  • webgl/2.0.0/resources/webgl_test_files/extra/webgl-translate-shader.html:
  • webgl/2.0.0/resources/webgl_test_files/js/js-test-pre.js:

(nonKhronosFrameworkNotifyDone):

  • webgl/2.0.0/resources/webgl_test_files/js/tests/iterable-test.js:

(doNextTest):
(run):
(IterableTest):
(createPreserveDrawingBufferLeakTest): Deleted.

  • webgl/2.0.0/resources/webgl_test_files/js/tests/out-of-bounds-test.js:

(runDrawArraysTest):
(runDrawElementsTest):
(runInstancedTest):

  • webgl/2.0.0/resources/webgl_test_files/js/tests/tex-image-and-sub-image-2d-with-canvas-sub-rectangle.js:

(init):
(runTestOnBindingTarget):
(generateTest):

  • webgl/2.0.0/resources/webgl_test_files/js/tests/tex-image-and-sub-image-2d-with-canvas.js:

(init):
(setCanvasToRedGreen):
(checkSourceCanvasImageData):
(runOneIteration):
(runTest.runTexImageTest.):
(runTest.runTexImageTest):
(runTest):
(generateTest):
(replicateRedChannel): Deleted.
(zapColorChannels): Deleted.
(setAlphaChannelTo1): Deleted.
(replicateAllRedChannels): Deleted.
(setAllAlphaChannelsTo1): Deleted.
(repeatCountForTextureFormat): Deleted.
(setCanvasToSemiTransparentRedGreen): Deleted.
(setCanvasTo257x257SemiTransparent): Deleted.
(setCanvasToMinSemiTransparent): Deleted.

  • webgl/2.0.0/resources/webgl_test_files/js/tests/tex-image-and-sub-image-2d-with-image-data.js:

(init):

  • webgl/2.0.0/resources/webgl_test_files/js/tests/tex-image-and-sub-image-2d-with-image.js:

(init):

  • webgl/2.0.0/resources/webgl_test_files/js/tests/tex-image-and-sub-image-2d-with-svg-image.js:

(init):

  • webgl/2.0.0/resources/webgl_test_files/js/tests/tex-image-and-sub-image-2d-with-video.js:

(init):
(runOneIteration):

  • webgl/2.0.0/resources/webgl_test_files/js/tests/tex-image-and-sub-image-2d-with-webgl-canvas.js:

(init):
(runOneIteration):
(runTest.runTexImageTest.):
(runTest.runTexImageTest):
(runTest):
(generateTest):
(shouldRepeatTestForTextureFormat): Deleted.
(): Deleted.

  • webgl/2.0.0/resources/webgl_test_files/js/tests/tex-image-and-sub-image-3d-with-canvas.js:

(runTest.runTexImageTest.):
(runTest.runTexImageTest):
(runTest):
(generateTest):

  • webgl/2.0.0/resources/webgl_test_files/js/tests/tex-image-and-sub-image-3d-with-video.js:

(runOneIteration):

  • webgl/2.0.0/resources/webgl_test_files/js/tests/tex-image-and-sub-image-3d-with-webgl-canvas.js:

(runOneIteration):
(runTest.runTexImageTest.):
(runTest.runTexImageTest):
(runTest):
(generateTest):

  • webgl/2.0.0/resources/webgl_test_files/js/tests/tex-image-and-sub-image-with-image-bitmap-utils.js:

(runOneIterationImageBitmapTest):
(runOneIterationImageBitmapTestSubSource):

  • webgl/2.0.0/resources/webgl_test_files/js/webgl-test-utils.js:

(glEnumToString):
(setupTransformFeedbackProgram):
(setupUnitQuad):
(setupUnitQuadWithTexCoords):
(setupTexturedQuad):
(setupColorQuad):
(setupTexturedQuadWithTexCoords):
(setupTexturedQuadWithCubeMap):
(glTypeToTypedArrayType):
(getBytesPerComponent):
(fillTexture):
(checkCanvasRectColor):
(checkCanvasRect):
(shouldThrowOrGenerateGLError):
(loadShader):
(getRequestVidFrameCallback):
(setZeroTimeout):
(maybeCallCallback):
(playingListener):
(timeupdateListener):
(startPlayingAndWaitForVideo):
(linearChannelToSRGB):
(WebGLTestUtils):
(setupQuadWithTexCoords): Deleted.
(dummySetProgramAndDrawNothing): Deleted.
(comparePixels): Deleted.
(displayImageDiff): Deleted.
(createImageFromPixel): Deleted.

  • webgl/2.0.0/resources/webgl_test_files/py/lint/README.md:
  • webgl/2.0.0/resources/webgl_test_files/py/lint/lint.allowlist: Added.
  • webgl/2.0.0/resources/webgl_test_files/py/lint/lint.py:

(parse_allowlist_file):
(parse_allowlist_file.inner):
(allowlist_errors):
(main.run_lint):
(parse_whitelist_file): Deleted.
(parse_whitelist_file.inner): Deleted.
(whitelist_errors): Deleted.

  • webgl/2.0.0/resources/webgl_test_files/py/tex_image_test_generator.py:
  • webgl/2.0.0/resources/webgl_test_files/resources/1-channel.jpg: Added.
  • webgl/2.0.0/resources/webgl_test_files/resources/3x3.png: Added.
  • webgl/2.0.0/resources/webgl_test_files/resources/blue-1x1.jpg: Added.
  • webgl/2.0.0/resources/webgl_test_files/resources/bug-32888-texture.png: Added.
  • webgl/2.0.0/resources/webgl_test_files/resources/gray-1024x1024.jpg: Added.
  • webgl/2.0.0/resources/webgl_test_files/resources/gray-ramp-256-with-128-alpha.png: Added.
  • webgl/2.0.0/resources/webgl_test_files/resources/gray-ramp-256.png: Added.
  • webgl/2.0.0/resources/webgl_test_files/resources/gray-ramp-default-gamma.png: Added.
  • webgl/2.0.0/resources/webgl_test_files/resources/gray-ramp-gamma0.1.png: Added.
  • webgl/2.0.0/resources/webgl_test_files/resources/gray-ramp-gamma1.0.png: Added.
  • webgl/2.0.0/resources/webgl_test_files/resources/gray-ramp-gamma2.0.png: Added.
  • webgl/2.0.0/resources/webgl_test_files/resources/gray-ramp-gamma4.0.png: Added.
  • webgl/2.0.0/resources/webgl_test_files/resources/gray-ramp-gamma9.0.png: Added.
  • webgl/2.0.0/resources/webgl_test_files/resources/gray-ramp.png: Added.
  • webgl/2.0.0/resources/webgl_test_files/resources/green-2x2-16bit.png: Added.
  • webgl/2.0.0/resources/webgl_test_files/resources/npot-video.mp4: Added.
  • webgl/2.0.0/resources/webgl_test_files/resources/npot-video.theora.ogv: Added.
  • webgl/2.0.0/resources/webgl_test_files/resources/npot-video.webmvp8.webm: Added.
  • webgl/2.0.0/resources/webgl_test_files/resources/opengl_logo.jpg: Added.
  • webgl/2.0.0/resources/webgl_test_files/resources/red-green-blue-cyan-4x4.png: Added.
  • webgl/2.0.0/resources/webgl_test_files/resources/red-green-blue-cyan-4x4.psd: Added.
  • webgl/2.0.0/resources/webgl_test_files/resources/red-green-semi-transparent.png: Added.
  • webgl/2.0.0/resources/webgl_test_files/resources/red-green.bt601.vp9.webm: Added.
  • webgl/2.0.0/resources/webgl_test_files/resources/red-green.mp4: Added.
  • webgl/2.0.0/resources/webgl_test_files/resources/red-green.png: Added.
  • webgl/2.0.0/resources/webgl_test_files/resources/red-green.theora.ogv: Added.
  • webgl/2.0.0/resources/webgl_test_files/resources/red-green.webmvp8.webm: Added.
  • webgl/2.0.0/resources/webgl_test_files/resources/red-indexed.png: Added.
  • webgl/2.0.0/resources/webgl_test_files/resources/small-square-with-cie-rgb-profile.png: Added.
  • webgl/2.0.0/resources/webgl_test_files/resources/small-square-with-colormatch-profile.png: Added.
  • webgl/2.0.0/resources/webgl_test_files/resources/small-square-with-colorspin-profile.jpg: Added.
  • webgl/2.0.0/resources/webgl_test_files/resources/small-square-with-colorspin-profile.png: Added.
  • webgl/2.0.0/resources/webgl_test_files/resources/small-square-with-e-srgb-profile.png: Added.
  • webgl/2.0.0/resources/webgl_test_files/resources/small-square-with-smpte-c-profile.png: Added.
  • webgl/2.0.0/resources/webgl_test_files/resources/small-square-with-srgb-iec61966-2.1-profile.png: Added.
  • webgl/2.0.0/resources/webgl_test_files/resources/thunderbird-logo-64x64.png: Added.
  • webgl/2.0.0/resources/webgl_test_files/resources/transparent-on-left-indexed.png: Added.
  • webgl/2.0.0/resources/webgl_test_files/resources/webgl-logo.png: Added.
  • webgl/2.0.0/resources/webgl_test_files/resources/zero-alpha.png: Added.
  • webgl/2.0.0/resources/webgl_test_files/test-guidelines.md:
  • webgl/2.0.0/resources/webgl_test_files/webgl-conformance-tests.html:
10:50 AM Changeset in webkit [264996] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

REGRESSION: (r264950): [ iOS wk2 ] broke 4 xmlhttprequest tests
https://bugs.webkit.org/show_bug.cgi?id=214873

Unreviewed test gardening.

  • platform/ios-simulator-wk2/TestExpectations: Remove flaky

expectation since I rebaselined these tests with r264989.

10:34 AM Changeset in webkit [264995] by ysuzuki@apple.com
  • 6 edits
    1 add in trunk

[JSC][wasm] Truncating slightly less than INT32_MIN is incorrect
https://bugs.webkit.org/show_bug.cgi?id=214834

Reviewed by Darin Adler.

JSTests:

  • wasm/spec-tests/conversions.wast.js:
  • wasm/stress/trunc-int-min-minus-one.js: Added.

Source/JavaScriptCore:

Wasm trunc_f64_s should handle (INT32_MIN - 1.0, INT32_MIN) range too.

  • llint/WebAssembly.asm:
  • wasm/WasmAirIRGenerator.cpp:

(JSC::Wasm::AirIRGenerator::addOp<OpType::I32TruncSF64>):

  • wasm/WasmB3IRGenerator.cpp:

(JSC::Wasm::B3IRGenerator::addOp<OpType::I32TruncSF64>):

10:14 AM Changeset in webkit [264994] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Test landed broken(?): [ macOS wk1 ] fast/dynamic/size-to-content-autosize-with-percent-document-height.html is a constant image failure
https://bugs.webkit.org/show_bug.cgi?id=214876

Unreviewed test gardening.

  • platform/mac-wk1/TestExpectations: Mark the test as failing while the cause is investigated.
10:03 AM Changeset in webkit [264993] by Karl Rackler
  • 4 edits in trunk/Source

Unreviewed, reverting r264955.

Reverting because this commit may have caused issues with
tests.

Reverted changeset:

"WebCoreResourceHandleAsOperationQueueDelegate can use
RunLoop::dispatch"
https://bugs.webkit.org/show_bug.cgi?id=214771
https://trac.webkit.org/changeset/264955

9:52 AM Changeset in webkit [264992] by sbarati@apple.com
  • 4 edits
    3 adds in trunk

JSPromise::reject might throw more than an unterminated exception
https://bugs.webkit.org/show_bug.cgi?id=214854
<rdar://problem/66152648>

Reviewed by Yusuke Suzuki.

Source/WebCore:

Before, we were assuming the only exception that could be thrown
was an early termination exception. However, it's tenuous to assume
the types of exceptions that can be thrown. This particular test was
throwing a stack overflow exception. It's better form to just propagate
the exception upwards instead of attempting to enumerate the list of
valid exceptions.

Test: js/dom/promise-rejection-might-stack-overflow.html

  • bindings/js/JSDOMPromiseDeferred.cpp:

(WebCore::DeferredPromise::reject):

LayoutTests:

  • js/dom/promise-rejection-might-stack-overflow-expected.txt: Added.
  • js/dom/promise-rejection-might-stack-overflow.html: Added.
  • js/dom/script-tests/promise-rejection-might-stack-overflow.js: Added.

(foo):

9:38 AM Changeset in webkit [264991] by mark.lam@apple.com
  • 3 edits
    1 add in trunk

ASSERTION FAILED: isSymbol() in Source/JavaScriptCore/runtime/JSCell.cpp(188)
https://bugs.webkit.org/show_bug.cgi?id=214837

Reviewed by Darin Adler.

JSTests:

  • stress/jsc-shell-test-properties-should-not-be-enumerable.js: Added.

Source/JavaScriptCore:

The issue found by this bug was that jsc shell test properties were enumerable.
These properties are only meant for test development use. They will never be
present in a productized JavaScript environment.

This patch helps reduce the change of users of the jsc shell tripping up on these
test properties when enumerating the global object.

  • jsc.cpp:
9:34 AM WebKitGTK/2.28.x edited by Michael Catanzaro
(diff)
9:30 AM Changeset in webkit [264990] by commit-queue@webkit.org
  • 4 edits in trunk/Source

Add null checks in ResourceLoader
https://bugs.webkit.org/show_bug.cgi?id=214786
<rdar://problem/61106685>

Patch by Alex Christensen <achristensen@webkit.org> on 2020-07-28
Reviewed by Youenn Fablet.

Source/WebCore:

We had added some iOS-only checks based on crash tracer data.
It turns out these code paths are indeed reachable. Let's make ResourceLoader less platform-dependent.

The original patch for this has a test that would reach this code, but it never finishes loading.
Rather than add a test that always times out or not committing the fix, I commit the fix without the test.

  • loader/ResourceLoader.cpp:

(WebCore::ResourceLoader::init):
(WebCore::ResourceLoader::cancel):

Source/WebKit:

  • WebProcess/Plugins/PDF/PDFPlugin.mm:

(WebKit::PDFPlugin::getResourceBytesAtPosition):

9:25 AM Changeset in webkit [264989] by Ryan Haddad
  • 1 edit
    8 adds in trunk/LayoutTests

Add test expectations and baselines for iOS 14
https://bugs.webkit.org/show_bug.cgi?id=214709

Unreviewed test gardening.

Add a few missing baselines for failures that weren't caught by EWS
due to pre-existing flaky expectations.

  • platform/ios-13/http/tests/xmlhttprequest/methods-async-expected.txt: Added.
  • platform/ios-13/http/tests/xmlhttprequest/methods-expected.txt: Added.
  • platform/ios-13/http/tests/xmlhttprequest/workers/methods-async-expected.txt: Added.
  • platform/ios-13/http/tests/xmlhttprequest/workers/methods-expected.txt: Added.
9:15 AM Changeset in webkit [264988] by ysuzuki@apple.com
  • 19 edits
    2 adds in trunk

IndexedDB binding utilities miss exception checks
https://bugs.webkit.org/show_bug.cgi?id=214820
<rdar://problem/66152374>

Reviewed by Mark Lam.

Source/JavaScriptCore:

jsStringWithCache does not need to take JSGlobalObject*.

  • runtime/JSString.h:

(JSC::jsStringWithCache):

Source/WebCore:

Test: js/dom/indexed-db-operations-exception-checks.html

This patch appropriately inserts exception checking code into IndexedDB binding utilities.

  • Modules/indexeddb/IDBKeyRange.cpp:

(WebCore::IDBKeyRange::only):
(WebCore::IDBKeyRange::lowerBound):
(WebCore::IDBKeyRange::upperBound):
(WebCore::IDBKeyRange::bound):
(WebCore::IDBKeyRange::includes):

  • bindings/js/IDBBindingUtilities.cpp:

(WebCore::get):
(WebCore::set):
(WebCore::toJS):
(WebCore::createIDBKeyFromValue):
(WebCore::internalCreateIDBKeyFromScriptValueAndKeyPath):
(WebCore::ensureNthValueOnKeyPath):
(WebCore::injectIDBKeyIntoScriptValue):
(WebCore::maybeCreateIDBKeyFromScriptValueAndKeyPath):
(WebCore::canInjectIDBKeyIntoScriptValue):
(WebCore::scriptValueToIDBKey):

  • bindings/js/IDBBindingUtilities.h:
  • bindings/js/JSCustomXPathNSResolver.cpp:

(WebCore::JSCustomXPathNSResolver::lookupNamespaceURI):

  • bindings/js/JSDOMConvertDate.cpp:

(WebCore::valueToDate):

  • bindings/js/JSDOMConvertDate.h:

(WebCore::Converter<IDLDate>::convert):

  • bindings/js/JSDOMConvertStrings.h:

(WebCore::JSConverter<IDLDOMString>::convert):
(WebCore::JSConverter<IDLByteString>::convert):
(WebCore::JSConverter<IDLUSVString>::convert):

  • bindings/js/JSDOMConvertWebGL.cpp:

(WebCore::convertToJSValue):

  • bindings/js/JSLazyEventListener.cpp:

(WebCore::JSLazyEventListener::initializeJSFunction const):

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateEnumerationImplementationContent):

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

(WebCore::convertEnumerationToJS):

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

(WebCore::convertEnumerationToJS):

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

(WebCore::convertEnumerationToJS):

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

(WebCore::convertEnumerationToJS):

  • bridge/c/c_utility.cpp:

(JSC::Bindings::convertNPVariantToValue):

LayoutTests:

  • js/dom/indexed-db-operations-exception-checks-expected.txt: Added.
  • js/dom/indexed-db-operations-exception-checks.html: Added.
9:02 AM Changeset in webkit [264987] by Karl Rackler
  • 2 edits in trunk/LayoutTests

REGRESSION (r262539): [ iOS wk2 ] imported/w3c/web-platform-tests/html/canvas/element/imagebitmap/createImageBitmap-drawImage.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=214877

Unreviewed test gardening.

  • platform/ios-simulator-wk2/TestExpectations:
8:31 AM Changeset in webkit [264986] by Adrian Perez de Castro
  • 2 edits in trunk/Source/WebCore

[GTK] Crash in Nicosia::GC3DLayer::makeContextCurrent due to failure in EGL display creation
https://bugs.webkit.org/show_bug.cgi?id=201507

Reviewed by Carlos Garcia Campos.

Ensure that EGL context and display creation failures are always
logged using RELEASE_LOG_INFO(), even for intermediate failures for
which a fallback will be tried next, in order to ease diagnosis of
related issues. Failure to create contexts at the end of the public
methods ::createContext() and ::createSharingContext() is still
logged with WTFLogAlways() to write a notice to standard error, and
let users/developers know that something failed and checking the
complete logs (e.g. with "journalctl" on Linux) may reveal more
information.

This also replaces the chains of "if" statements with a single
"switch" on the PlatformDisplay::Type enum, which makes the code
easier to follow and should be more robust as well.

No new tests needed.

  • platform/graphics/egl/GLContextEGL.cpp:

(WebCore::GLContextEGL::getEGLConfig):
(WebCore::GLContextEGL::createWindowContext):
(WebCore::GLContextEGL::createSurfacelessContext):
(WebCore::GLContextEGL::createContext):
(WebCore::GLContextEGL::createSharingContext):

8:27 AM Changeset in webkit [264985] by calvaris@igalia.com
  • 2 edits in trunk/Source/WebCore

[GStreamer] Use GST_PLUGIN_FEATURE_RANK env var to have Thunder ranked higher in runtime instead of current custom one
https://bugs.webkit.org/show_bug.cgi?id=214826

  • platform/graphics/gstreamer/GStreamerCommon.cpp: Unreviewed,

added comment about delaying because of the dependency on
GStreamer 1.16.

8:17 AM Changeset in webkit [264984] by Adrian Perez de Castro
  • 1 copy in releases/WPE WebKit/webkit-2.28.4

WPE WebKit 2.28.4

8:17 AM Changeset in webkit [264983] by Adrian Perez de Castro
  • 4 edits in releases/WebKitGTK/webkit-2.28

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

.:

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

Source/WebKit:

  • wpe/NEWS: Add release notes for 2.28.4.
7:15 AM Changeset in webkit [264982] by Karl Rackler
  • 2 edits in trunk/LayoutTests

REGRESSION: (r264950): [ iOS wk2 ] broke 4 xmlhttprequest tests
https://bugs.webkit.org/show_bug.cgi?id=214873

Unreviewed test gardening.

  • platform/ios-simulator-wk2/TestExpectations:
7:00 AM Changeset in webkit [264981] by Jonathan Bedard
  • 2 edits
    1 delete in trunk/Tools

[webkitcorepy] Add string_utils (Part 3)
https://bugs.webkit.org/show_bug.cgi?id=214405

Reviewed by Aakash Jain.

  • Scripts/webkit-patch:

(ForgivingUTF8Writer.write): Replace unicode_compatibility with string_utils.

  • Scripts/webkitpy/common/unicode_compatibility.py: Removed.
6:32 AM Changeset in webkit [264980] by Caio Lima
  • 3 edits in trunk/JSTests

[32-bits] Skipping some failing tests on ARMv7 and MIPS
https://bugs.webkit.org/show_bug.cgi?id=214872

Unreviewed Gardening.

  • stress/ftl-reflect-get-prototype-of.js:
  • stress/intl-suppored-locales-of.js:
6:26 AM Changeset in webkit [264979] by Karl Rackler
  • 2 edits in trunk/LayoutTests

REGRESSION: (r264492) Broke 4 WebRTC tests and 1 webrtc tests
https://bugs.webkit.org/show_bug.cgi?id=214730

Unreviewed test gardening.

  • platform/ios-simulator-wk2/TestExpectations:
5:49 AM Changeset in webkit [264978] by Carlos Garcia Campos
  • 3 edits in trunk/LayoutTests

Unreviewed GTK gardening. Rebaseline tests after r264968

  • platform/gtk/imported/w3c/web-platform-tests/css/cssom/css-style-attr-decl-block-expected.txt:
  • platform/gtk/imported/w3c/web-platform-tests/css/cssom/cssstyledeclaration-csstext-expected.txt:
5:39 AM Changeset in webkit [264977] by Carlos Garcia Campos
  • 1 copy in releases/WebKitGTK/webkit-2.28.4

WebKitGTK 2.28.4

5:38 AM Changeset in webkit [264976] by Carlos Garcia Campos
  • 4 edits in releases/WebKitGTK/webkit-2.28

Unreviewed. Update OptionsGTK.cmake and NEWS for 2.28.4 release

.:

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

Source/WebKit:

  • gtk/NEWS: Add release notes for 2.28.4.
5:18 AM Changeset in webkit [264975] by calvaris@igalia.com
  • 7 edits in trunk

[GStreamer] media/vp9.html failing since check-in in r263894
https://bugs.webkit.org/show_bug.cgi?id=213947

Reviewed by Philippe Normand.

Source/WebCore:

Test: media/vp9.html.

  • testing/Internals.cpp:

(WebCore::Internals::usingGStreamer const): Added.

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

LayoutTests:

  • media/vp9.html: Used usingGStreamer() to adjust expectation of

the first test and to enable the second. Both are passing now for
GStreamer ports.

  • platform/glib/TestExpectations: Removed media/vp9.html failure

from expectations.

3:46 AM Changeset in webkit [264974] by Diego Pino Garcia
  • 3 edits in trunk/LayoutTests

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

  • platform/glib/TestExpectations:
  • platform/gtk/TestExpectations:
3:34 AM Changeset in webkit [264973] by Carlos Garcia Campos
  • 3 edits in releases/WebKitGTK/webkit-2.28/Source/WebCore

Merge r259525 - Protect contentFrame in SubframeLoader::loadOrRedirectSubframe with RefPtr.
https://bugs.webkit.org/show_bug.cgi?id=127096
<rdar://problem/61221941>

Reviewed by Alex Christensen.

ContentFrame is used throughout loadOrRedirectSubframe so it needs to be protected with RefPtr.
And if loader changes frame in SubframeLoader::loadSubframe, return nullptr to notify the caller.

No new tests, covered by existing test.

  • loader/SubframeLoader.cpp:

(WebCore::SubframeLoader::loadOrRedirectSubframe):
(WebCore::SubframeLoader::loadSubframe):

  • loader/SubframeLoader.h:
3:34 AM Changeset in webkit [264972] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.28/Source/WebCore

Merge r261208 - Crash in match_constness<WebCore::CSSValue, WebCore::CSSPrimitiveValue>::type& WTF::downcast<WebCore::CSSPrimitiveValue, WebCore::CSSValue> -- ASAN
https://bugs.webkit.org/show_bug.cgi?id=211479

Patch by Pinki Gyanchandani <pgyanchandani@apple.com> on 2020-05-05
Reviewed by Geoffrey Garen.

Added check to downcast CSSValue to CSSPrimitiveValue, only if valid CSSPrimitveValue is associated with the property.

New test would be added to Internal repository.

  • css/StyleProperties.cpp:

(WebCore::StyleProperties::pageBreakPropertyValue const):

3:34 AM Changeset in webkit [264971] by Carlos Garcia Campos
  • 7 edits in releases/WebKitGTK/webkit-2.28

Merge r263302 - Crash in WebCore::Range::borderAndTextRects
https://bugs.webkit.org/show_bug.cgi?id=209379

Patch by Pinki Gyanchandani <pgyanchandani@apple.com> on 2020-06-19
Reviewed by Darin Adler.

When a parentless node is moved to a new document, then all ranges associated with this node and its children also should
be updated with new document information.

Test woould be submitted later.

  • dom/Document.cpp:

(WebCore::Document::parentlessNodeMoveToNewDocument):

  • dom/Document.h:
  • dom/Node.cpp:

(WebCore::Node::moveNodeToNewDocument):

  • dom/Range.cpp:

(WebCore::Range::parentlessNodeMoveToNewDocumentAffectsRange):
(WebCore::Range::updateRangeForParentlessNodeMoveToNewDocument):

  • dom/Range.h:
3:34 AM Changeset in webkit [264970] by Carlos Garcia Campos
  • 5 edits
    2 adds in releases/WebKitGTK/webkit-2.28

Merge r264364 - When invalidating the clients of an SVG resource we should not go beyond the RenderSVGRoot
https://bugs.webkit.org/show_bug.cgi?id=211804
<rdar://problem/60308199>

Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2020-07-14
Reviewed by Zalan Bujtas.

Source/WebCore:

ComplexLineLayout::layoutLineBoxes() walks through the renderers of a line.
The order of this walk may include a node and its children. For example
the layout of a RenderInline may be run first, then it is followed by the
layout for a RenderSVGRoot which happens to be a child of the RenderInline.

If the RenderSVGRoot has a dirty RenderSVGResource, e.g. RenderSVGResourceClipper,
this resource will call RenderSVGResource::markForLayoutAndParentResourceInvalidation()
which will invalidate its ancestors including RenderSVGRoot and RenderInline
by setting the normalChildNeedsLayoutBit() for each of them.

The layout of SVG is hierarchical which means RenderSVGRoot will finish
its layout after finishing the layout of all its descendants including
this RenderSVGResource. So dirtying the RenderSVGRoot is this scenario
is okay since RenderSVGRoot will do another SVGRenderSupport::layoutChildren()
and will clear its needsLayout bits before it returns.

The problem happens because we set normalChildNeedsLayoutBit for the containing
RenderInline and this leaves the render tree dirty. Later Document::resolveStyle()
may called to invalidate an SVG element e.g. RenderSVGPath. So setNeedsLayout()
is called for this object. Because the normalChildNeedsLayoutBit() is set
for the RenderInline, RenderObject::markContainingBlocksForLayout() stops
in the middle and do not mark the containing RenderBlock. So we end up
with a render tree like this:

+ RenderView
+ HTML RenderBlock
+ BODY RenderBody

  • RenderBlock + ANY-ELEMENT RenderInline + svg RenderSVGRoot
  • clipPath RenderSVGResourceClipper + polygon RenderSVGPath

where the '+' means needsLayout() is true and '-' means needsLayout() is
false.

So the layout will not run for RenderBlock with '-' sign. And we end up
with dirty RenderSVGPath or even worse RenderSVGPath with uninitialized
m_path. So a null pointer deref may happen.

The fix is to prevent mutating the render tree while running the layout
of the SVG resource. This can be done by making the RenderSVGResource not
dirtying any renderer beyond the RenderSVGRoot when it finishes its layout.
The SVG resource layout should not affect the intrinsic size of the SVG
if it is embedded in an HTML document.

In RenderObject::markContainingBlocksForLayout(), we do something similar
when we break if the ancestor is objectIsRelayoutBoundary().

Test: svg/in-html/inline-svg-resource-dynamic-update.html

  • rendering/svg/RenderSVGResource.cpp:

(WebCore::RenderSVGResource::markForLayoutAndParentResourceInvalidation):

  • rendering/svg/RenderSVGRoot.cpp:

(WebCore::RenderSVGRoot::layout):

  • rendering/svg/RenderSVGRoot.h:

LayoutTests:

  • svg/in-html/inline-svg-resource-dynamic-update-expected.txt: Added.
  • svg/in-html/inline-svg-resource-dynamic-update.html: Added.
2:55 AM Changeset in webkit [264969] by Carlos Garcia Campos
  • 2 edits in trunk/LayoutTests

Unreviewed GTK gardening. Mark compositing/clipping/border-radius-stacking-context-clip.html as failure

  • platform/gtk/TestExpectations:
2:03 AM Changeset in webkit [264968] by Carlos Garcia Campos
  • 15 edits
    13 adds in trunk

[GTK][WPE] Support for backdrop-filter
https://bugs.webkit.org/show_bug.cgi?id=169988

Reviewed by Adrian Perez de Castro.

.:

Enable FILTERS_LEVEL_2 by default for WPE and GTK.

  • Source/cmake/OptionsGTK.cmake:
  • Source/cmake/OptionsWPE.cmake:

Source/WebCore:

Add initial support for backdrop filters to coordinated graphics.

  • platform/graphics/nicosia/NicosiaPlatformLayer.h:

(Nicosia::CompositionLayer::flushState): Update the backdrop layer.

  • platform/graphics/texmap/TextureMapper.h:
  • platform/graphics/texmap/TextureMapperLayer.cpp:

(WebCore::TextureMapperLayer::computeTransformsRecursive): Call it on backdrop layer too.
(WebCore::TextureMapperLayer::paintSelfAndChildren): Paint the backdrop layer before current layer to apply
backdrop filters on previous contents, then the layer is painted on top.
(WebCore::TextureMapperLayer::paintIntoSurface): In case of backdrop layer paint the root layer up to the target
layer into the intermediate surface.
(WebCore::TextureMapperLayer::setBackdropLayer): Set the bakdrop layer and mark it as such.
(WebCore::TextureMapperLayer::applyAnimationsRecursively): Also call syncAnimations on backdrop layer to get the
filters updated.

  • platform/graphics/texmap/TextureMapperLayer.h:
  • platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp:

(WebCore::CoordinatedGraphicsLayer::didChangeBackdropFilters):
(WebCore::CoordinatedGraphicsLayer::didChangeBackdropFiltersRect):
(WebCore::CoordinatedGraphicsLayer::setShouldUpdateVisibleRect): Also call it for backdrop layer.
(WebCore::CoordinatedGraphicsLayer::setContentsVisible): Ditto.
(WebCore::CoordinatedGraphicsLayer::setBackdropFilters):
(WebCore::CoordinatedGraphicsLayer::setBackdropFiltersRect):
(WebCore::CoordinatedGraphicsLayer::flushCompositingState): Also call it for backdrop layer.
(WebCore::CoordinatedGraphicsLayer::flushCompositingStateForThisLayerOnly): Handle the changes in backdrop
filters and the rect, creating the backdrop layer or updating it.
(WebCore::CoordinatedGraphicsLayer::syncPendingStateChangesIncludingSubLayers): Also call it for backdrop layer.
(WebCore::CoordinatedGraphicsLayer::addAnimation): Handle AnimatedPropertyWebkitBackdropFilter property.
(WebCore::dumpInnerLayer): Dump internal layer info.
(WebCore::CoordinatedGraphicsLayer::dumpAdditionalProperties const): Dump backdrop layer.

  • platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.h:

Source/WebKit:

Set the backdrop layer if changed when updating the scene state.

  • Shared/CoordinatedGraphics/CoordinatedGraphicsScene.cpp:

(WebKit::CoordinatedGraphicsScene::updateSceneState):

LayoutTests:

Update test expectations.

  • platform/glib/TestExpectations:
  • platform/glib/css3/filters/backdrop/backdrop-filter-does-not-size-properly-absolute-expected.txt: Added.
  • platform/glib/css3/filters/backdrop/backdrop-filter-does-not-size-properly-border-and-padding-expected.txt: Added.
  • platform/glib/css3/filters/backdrop/backdrop-filter-with-clip-path-expected.txt: Added.
  • platform/glib/css3/filters/backdrop/backdrop-filter-with-cliprect-expected.txt: Added.
  • platform/glib/css3/filters/backdrop/backdrop-filter-with-mask-expected.txt: Added.
  • platform/glib/css3/filters/backdrop/backdrop-with-visibility-hidden-changing-expected.txt: Added.
  • platform/glib/css3/filters/backdrop/backdrop-with-visibility-hidden-expected.txt: Added.
  • platform/glib/css3/filters/backdrop/resource-use-add-more-layers-expected.txt: Added.
  • platform/glib/css3/filters/backdrop/resource-use-excessive-expected.txt: Added.
  • platform/glib/css3/filters/backdrop/resource-use-ok-expected.txt: Added.
  • platform/glib/css3/filters/backdrop/resource-use-remove-some-layers-expected.txt: Added.
  • platform/gtk/TestExpectations:
  • platform/wpe/TestExpectations:
1:01 AM Changeset in webkit [264967] by youenn@apple.com
  • 4 edits
    3 adds in trunk

ReadableStreamDefaultController should use private JS built-in methods
https://bugs.webkit.org/show_bug.cgi?id=214819

Reviewed by Darin Adler.

Source/WebCore:

Call directly private buitl-in methods instead of getting close/error/enqueue methods from the controller.
Test: http/wpt/fetch/readableStreamDefaultController-overwriting.html

  • bindings/js/ReadableStreamDefaultController.cpp:

(WebCore::invokeReadableStreamDefaultControllerFunction):
(WebCore::ReadableStreamDefaultController::close):
(WebCore::ReadableStreamDefaultController::error):
(WebCore::ReadableStreamDefaultController::enqueue):

  • bindings/js/ReadableStreamDefaultController.h:

(WebCore::ReadableStreamDefaultController::enqueue):
(WebCore::ReadableStreamDefaultController::error):

LayoutTests:

  • http/wpt/fetch/readableStreamDefaultController-overwriting-expected.txt: Added.
  • http/wpt/fetch/readableStreamDefaultController-overwriting.html: Added.
  • http/wpt/fetch/resources/lengthy-pass.py: Added.
1:01 AM Changeset in webkit [264966] by youenn@apple.com
  • 6 edits in trunk/Source

Disable low latency code path for H264 constrained baseline
https://bugs.webkit.org/show_bug.cgi?id=214830

Reviewed by Eric Carlson.

Source/ThirdParty/libwebrtc:

In case of baseline profile, use straight VTB encoder.
In case of high profile, use low latency code path if enabled.
In case of MacOS software code path, enable low latency code path as straight VTB encoder buffers frames.

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

(-[RTCVideoEncoderH264 initWithCodecInfo:]):
(-[RTCVideoEncoderH264 resetCompressionSessionWithPixelFormat:]):

Source/WebKit:

Enable low latency code path on iOS.
Manually tested.

  • Shared/WebPreferences.yaml:
  • Shared/WebPreferencesDefaultValues.cpp:

(WebKit::defaultWebRTCH264LowLatencyEncoderEnabled):

  • Shared/WebPreferencesDefaultValues.h:
Note: See TracTimeline for information about the timeline view.