Timeline



Feb 14, 2021:

6:08 PM Changeset in webkit [272842] by Peng Liu
  • 46 edits in trunk

[GPUP] Move UseGPUProcessForMediaEnabled from WebPreferencesInternal to WebPreferencesExperimental
https://bugs.webkit.org/show_bug.cgi?id=221310

Reviewed by Eric Carlson.

Source/WTF:

Move UseGPUProcessForMediaEnabled from WebPreferencesInternal to WebPreferencesExperimental,
so that the WebKitTestRunner will turn it on by default.

  • Scripts/Preferences/WebPreferencesExperimental.yaml:
  • Scripts/Preferences/WebPreferencesInternal.yaml:

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/GPUProcess.mm:

(TEST):
Use WKPreferencesSetBoolValueForKeyForTesting() to set the preference for testing.
It works no matter the preference is internal or experimental.

LayoutTests:

Update expectations of the tests which are affected by the "Media In GPUProcess" feature
(WebKitTestRunner will enable the feature by default). Also set "UseGPUProcessForMediaEnabled=false"
for some webrtc tests.

  • platform/ios-wk2/TestExpectations:
  • platform/mac-wk2/TestExpectations:
  • platform/mac/TestExpectations:
  • platform/mac/webrtc/captureCanvas-webrtc-software-encoder.html:
  • platform/wk2/TestExpectations:
  • webrtc/captureCanvas-webrtc-software-h264-baseline.html:
  • webrtc/captureCanvas-webrtc-software-h264-high.html:
  • webrtc/captureCanvas-webrtc.html:
  • webrtc/concurrentVideoPlayback2.html:
  • webrtc/direction-change.html:
  • webrtc/disable-encryption.html:
  • webrtc/h264-baseline.html:
  • webrtc/h264-high.html:
  • webrtc/multi-audio.html:
  • webrtc/multi-video.html:
  • webrtc/peer-connection-track-end.html:
  • webrtc/peerconnection-page-cache-long.html:
  • webrtc/peerconnection-page-cache.html:
  • webrtc/remove-track.html:
  • webrtc/utf8-sdp.html:
  • webrtc/video-addTrack.html:
  • webrtc/video-addTransceiver.html:
  • webrtc/video-autoplay.html:
  • webrtc/video-disabled-black.html:
  • webrtc/video-h264.html:
  • webrtc/video-interruption.html:
  • webrtc/video-mediastreamtrack-stats.html:
  • webrtc/video-mute.html:
  • webrtc/video-remote-mute.html:
  • webrtc/video-replace-muted-track.html:
  • webrtc/video-replace-track-to-null.html:
  • webrtc/video-replace-track.html:
  • webrtc/video-rotation-no-cvo.html:
  • webrtc/video-rotation.html:
  • webrtc/video-setDirection.html:
  • webrtc/video-sframe.html:
  • webrtc/video-stats.html:
  • webrtc/video-unmute.html:
  • webrtc/video-with-data-channel.html:
  • webrtc/video.html:
12:51 PM Changeset in webkit [272841] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

[iOS] MobileSafari crashes at WebCore: WebCore::VideoFullscreenInterfaceAVKit::doEnterFullscreen
https://bugs.webkit.org/show_bug.cgi?id=221863
<rdar://73861140>

Patch by Jean-Yves Avenard <Jean-Yves Avenard> on 2021-02-14
Reviewed by Darin Adler.

On iPad, it's possible for AVKit to fail due to racing requests to exit full screen and enter full screen. The enterFullscreenHandler would attempt to immediately re-enter full screen.
For now we bail-out early to avoid the crash. In a follow-up patch we will ensure that the condition to enter fullscreen while there's a pending operation to exit fullscreen can't occur.
No new tests, can't reproduce. Analysis has been entirely theoretical.

  • platform/ios/VideoFullscreenInterfaceAVKit.mm:

(VideoFullscreenInterfaceAVKit::enterFullscreenHandler):
Exit early if error returned.

11:06 AM Changeset in webkit [272840] by commit-queue@webkit.org
  • 2 edits in trunk/JSTests

JSC stress test stress/copy-data-properties-fast-path.js.default fails on s390x and ppc64le
https://bugs.webkit.org/show_bug.cgi?id=221557
<rdar://problem/74311603>

Unreviewed, unskip this test since it seems Yusuke has already fixed it.

Patch by Michael Catanzaro <Michael Catanzaro> on 2021-02-14

  • stress/copy-data-properties-fast-path.js:
9:18 AM Changeset in webkit [272839] by Darin Adler
  • 3 edits
    2 adds in trunk

Crash calling replaceTrack on a sender that outlives its RTCPeerConnection
https://bugs.webkit.org/show_bug.cgi?id=221870

Reviewed by Youenn Fablet.

Source/WebCore:

Test: fast/mediastream/RTCRtpSender-outlives-RTCPeerConnection.html

  • Modules/mediastream/RTCRtpSender.cpp:

(WebCore::RTCRtpSender::replaceTrack): Added a null check for m_connection.
It's already using WeakPtr, so null check is all we need.

LayoutTests:

  • fast/mediastream/RTCRtpSender-outlives-RTCPeerConnection-expected.txt: Added.
  • fast/mediastream/RTCRtpSender-outlives-RTCPeerConnection.html: Added.

Feb 13, 2021:

7:04 PM Changeset in webkit [272838] by Alexey Shvayka
  • 5 edits
    1 add in trunk

Proxy's GetOwnProperty should complete trap result descriptor before validation
https://bugs.webkit.org/show_bug.cgi?id=221772

Reviewed by Yusuke Suzuki.

JSTests:

  • stress/proxy-get-own-property.js:
  • stress/proxy-returning-incomplete-property-descriptor-error.js: Added.

Source/JavaScriptCore:

This patch implements CompletePropertyDescriptor abstract op and utilizes it in
Proxy's GetOwnProperty, right before IsCompatiblePropertyDescriptor check
as per spec [1].

This change tightens trap result validation rules for properties that are
non-configurable on ProxyTarget, aligning JSC with V8 and SpiderMonkey.

It's impossible to prefill trap result descriptor: toPropertyDescriptor() throws
on malformed descriptors, thus it expects the argument to be an empty descriptor
(added an assert).

Property descriptors returned to userland are unaffected as they were implicitly
completed when filling PropertySlot (see PropertyDescriptor::defaultAttributes).

[1]: https://tc39.es/ecma262/#sec-proxy-object-internal-methods-and-internal-slots-getownproperty-p (step 14)

  • runtime/ObjectConstructor.cpp:

(JSC::toPropertyDescriptor):

  • runtime/ProxyObject.cpp:

(JSC::completePropertyDescriptor):
(JSC::ProxyObject::performInternalMethodGetOwnProperty):

4:05 PM Changeset in webkit [272837] by weinig@apple.com
  • 5 edits in trunk/Source/WebCore

Reduce requirements for color types to only conversion to their reference color
https://bugs.webkit.org/show_bug.cgi?id=221868

Reviewed by Darin Adler.

We currently require every new color type to define a conversion to/from xyz and then perhaps
some more conversions to reference colors to avoid unnecessary trips through XYZ. For example,
if every conversion from HSL to sRGB went through XYZ it would be very silly and inefficient,
and the fact that we require the boiler plate for HSL -> XYZ, even though it's always going to
convert to SRGB first seems unfortunate. We can do better.

At first I thought we could model color conversion as DAG, with XYZ at the root, and each color
type declaring a "reference color" that would get them closer to XYZ. So, HSL would have a
"reference color" of sRGB, sRGB would have a "reference color" of linearSRGB, and linearSRGB
would have a "reference color" XYZ. Then, as long as there was a defined conversion to/from the
"reference color", we could do a least common ancestor graph search between the two color types
being converted between to find the optimal set of conversions needed.

That almost works, but the relationships between the four color types that make up each RGB type
(bounded-gamma-encoded, bounded-linear-encoded, extended-gamma-encoded, extended-linear-encoded)
make it not quite ideal, since a conversion from something like sRGB to ExtendedSRGB would wind
up going through XYZ (since the "reference color" for sRGB is LinearSRGB and the "reference color"
for ExtendedSRGB is LinearExtendedSRGB, and both either "reference colors" are XYZ).

Ultimately, the depth of the type graph is not all that large (though the ASCII art I made is
quite big, though I did remove A98RGB and Rec2020 as they are same as DisplayP3 here):

┌ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ┼ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ┐

Matrix Conversions ┌───────────┐│┌───────────┐

│ │ XYZ (D50) │││ XYZ (D65) │ │

└─────▲─────┘│└─────▲─────┘

│ │ │ │ │

┌─────────────────────────┬───────────┘ │ └───────────┬───────────────────────────────┐
│ │ │ │ │ │ │
│ │ │ │ │
│ │ │ │ │ │ │
│ ProPhotoRGB───────────────────┐ │ SRGB──────────────────────────┐ DisplayP3─────────────────────┐
│ │ │┌────────┐ ┌────────────────┐│ │ │┌────────┐ ┌────────────────┐│ │┌────────┐ ┌────────────────┐│ │
│ ││ Linear │ │ LinearExtended ││ │ ││ Linear │ │ LinearExtended ││ ││ Linear │ │ LinearExtended ││
│ │ │└────────┘ └────────────────┘│ │ │└────────┘ └────────────────┘│ │└────────┘ └────────────────┘│ │
│ ─│─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─│─ ─│─ ─│─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─│─│─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─│─

┌───────────┐ │┌────────┐ ┌────────────────┐│ │ │┌────────┐ ┌────────────────┐│ │┌────────┐ ┌────────────────┐│
│ Lab │ ││ Gamma │ │ GammaExtended ││ │ ││ Gamma │ │ GammaExtended ││ ││ Gamma │ │ GammaExtended ││
└─────▲─────┘ │└────────┘ └────────────────┘│ │ │└────▲───┘ └────────────────┘│ │└────────┘ └────────────────┘│

│ └─────────────────────────────┘ │ └─────┼───────────────────────┘ └─────────────────────────────┘
│ │ ┌──┴──────────┬─────────────┐
│ │ │ │ │

┌───────────┐ │┌───────────┐ ┌───────────┐┌─────────────┐
│ LCH │ ││ HSL │ │ HWB ││SRGB<uint8_t>│
└───────────┘ │└───────────┘ └───────────┘└─────────────┘

From this, it turns out you can handle all the cases in about 5 steps, with most peeling off a
conversion from the front or back or the path and using recursion to continue on. It ultimately
leaves a final step where only matrix conversions remain, which can potentially be further
optimized in another patch to concatenate the matrices at compile time.

  1. Handle the special case SRGBA<uint8_t> for Input and Output, and recursively call conversion.
  1. Handle all color types that are not IsRGBType<T> or IsXYZA<T> for Input and Output. For all these other color types, we can uncondtionally convert them to their "reference" color, as either they have already been handled by a ColorConversion specialization or this will get us closer to the final conversion, and recursively call conversion.
  1. Handle conversions within a RGBFamily (e.g. all have the same descriptor). This will conclude the conversion.
  1. Handle any gamma conversions for the Input and Output, recursively call conversion
  1. At this point, Input and Output are each either Linear-RGB types (of different familes) or XYZA and therefore all additional conversion can happen via matrix transformation. This will conclude the conversion.

With these steps, we group the color types into 3 distinct groups.

  1. RGB types.

These inherit from the RGBType struct and are defined in terms of their xyzToLinear / linearToXYZ
matrices, their transfer function, whether they are bounded or extended and their white point. New
RGB color types can be added without any new conversion code being required, as long as they specify
those properties.

  1. The XYZ type.

This is the root type, and only varies on its white point. If other white points beside D50 and D65
are ever needed, we will need to extend the ChromaticAdapation specializations to also have conversion
matrices between those.

  1. All other types.

All other types (e.g. Lab, LCHA, HSLA, HWBA (and SRGBA<uint8_t>, kind of, it's a special flower) are
the set currently) have their conversions defined in terms of single reference color and require
explicit specialization of the ColorConversion struct to work.

  • platform/graphics/ColorConversion.cpp:

(WebCore::Lab<float>>::convert):
(WebCore::WhitePoint::D50>>::convert):
(): Deleted.
(WebCore::WhitePoint::D65>>::convert): Deleted.
(WebCore::toLinear): Deleted.
(WebCore::toGammaEncoded): Deleted.
(WebCore::A98RGB<float>>::convert): Deleted.
(WebCore::LinearA98RGB<float>>::convert): Deleted.
(WebCore::DisplayP3<float>>::convert): Deleted.
(WebCore::LinearDisplayP3<float>>::convert): Deleted.
(WebCore::ExtendedSRGBA<float>>::convert): Deleted.
(WebCore::LinearExtendedSRGBA<float>>::convert): Deleted.
(WebCore::ProPhotoRGB<float>>::convert): Deleted.
(WebCore::LinearProPhotoRGB<float>>::convert): Deleted.
(WebCore::Rec2020<float>>::convert): Deleted.
(WebCore::LinearRec2020<float>>::convert): Deleted.
(WebCore::LinearSRGBA<float>>::convert): Deleted.
(WebCore::xyzToLinear): Deleted.
(WebCore::linearToXYZ): Deleted.
(WebCore::XYZFor<LinearA98RGB<float>>>::convert): Deleted.
(WebCore::XYZFor<LinearDisplayP3<float>>>::convert): Deleted.
(WebCore::XYZFor<LinearExtendedSRGBA<float>>>::convert): Deleted.
(WebCore::XYZFor<LinearProPhotoRGB<float>>>::convert): Deleted.
(WebCore::XYZFor<LinearRec2020<float>>>::convert): Deleted.
(WebCore::XYZFor<LinearSRGBA<float>>>::convert): Deleted.
(WebCore::XYZFor<Lab<float>>>::convert): Deleted.
(WebCore::XYZFor<A98RGB<float>>>::convert): Deleted.
(WebCore::XYZFor<DisplayP3<float>>>::convert): Deleted.
(WebCore::XYZFor<ExtendedSRGBA<float>>>::convert): Deleted.
(WebCore::XYZFor<HSLA<float>>>::convert): Deleted.
(WebCore::XYZFor<HWBA<float>>>::convert): Deleted.
(WebCore::XYZFor<LCHA<float>>>::convert): Deleted.
(WebCore::XYZFor<ProPhotoRGB<float>>>::convert): Deleted.
(WebCore::XYZFor<Rec2020<float>>>::convert): Deleted.
(WebCore::XYZFor<SRGBA<float>>>::convert): Deleted.

  • platform/graphics/ColorConversion.h:

(WebCore::ColorConversion::convert):
(WebCore::ColorConversion::toLinearEncoded):
(WebCore::ColorConversion::toGammaEncoded):
(WebCore::ColorConversion::toExtended):
(WebCore::ColorConversion::toBounded):
(WebCore::ColorConversion::handleRGBFamilyConversion):
(WebCore::ColorConversion::handleMatrixConversion):

  • platform/graphics/ColorMatrix.h:

(WebCore::operator==):
(WebCore::operator!=):
(WebCore::applyMatricesToColorComponents):

  • platform/graphics/ColorTypes.h:
12:35 PM Changeset in webkit [272836] by ap@apple.com
  • 2 edits in trunk/Source/WebKit

Unreviewed build fix.

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView pointerInteraction:styleForRegion:]):

11:13 AM Changeset in webkit [272835] by Darin Adler
  • 2 edits in trunk/Source/WebCore

Improve computed style handling in degenerate grid cases, sizes and lengths of zero
https://bugs.webkit.org/show_bug.cgi?id=221856

Reviewed by Anders Carlsson.

  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::valueForImageSliceSide): Handle "auto", which can come up with sizes of zero.
(WebCore::valueForNinePieceImage): Simplify by not putting Ref<> results into RefPtr<> locals.
(WebCore::valueForGridTrackList): Clamp insertion point to the actual size of the tracks,
since it can be set to an arbitrary larger value.

11:07 AM Changeset in webkit [272834] by Alan Bujtas
  • 5 edits in trunk/Source/WebCore

[LFC][Integration] Not every inline box contributes to line overflow
https://bugs.webkit.org/show_bug.cgi?id=221867

Reviewed by Antti Koivisto.

Consider the follow content:
<div style="font-size: 20px;">content<span style="font-size: 200px;"><img></span></div>

In quirks mode, the inline box (<span>) does not stretch the line box vertically. What it means in practice is
that the inline box's descent is ignored. While the inline box has a relatively large descent and
in theory it overflows the line (since it is larger than the root inline box's descent)
it should not be taken into account when computing the scrollable overflow.
However adding "padding: 1px" to the <span> will make the inline box stretch the line and now this "1px padding" will
contribute to the scrollable overflow.

  • layout/integration/LayoutIntegrationInlineContentBuilder.cpp:

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

  • layout/integration/LayoutIntegrationInlineContentBuilder.h:
  • layout/integration/LayoutIntegrationLine.h:

(WebCore::LayoutIntegration::NonRootInlineBox::NonRootInlineBox):
(WebCore::LayoutIntegration::NonRootInlineBox::canContributeToLineOverflow const):

  • layout/integration/LayoutIntegrationLineLayout.cpp:

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

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

JSC stress test stress/copy-data-properties-fast-path.js.default fails on s390x and ppc64le
https://bugs.webkit.org/show_bug.cgi?id=221557

Patch by Michael Catanzaro <Michael Catanzaro> on 2021-02-13
Reviewed by Saam Barati.

Skip the test on these architectures. I don't know what else to do with it.

  • stress/copy-data-properties-fast-path.js:
2:59 AM Changeset in webkit [272832] by ysuzuki@apple.com
  • 2 edits in trunk/JSTests

Unreviewed, fix stress/copy-data-properties-fast-path.js occasional failure

Wrap it with try-catch since stack-overflow RangeError in JS can happen.

  • stress/copy-data-properties-fast-path.js:
2:12 AM Changeset in webkit [272831] by ysuzuki@apple.com
  • 9 edits
    1 copy
    1 add
    2 deletes in trunk/Source

[JSC] Enable JITCage on macOS
https://bugs.webkit.org/show_bug.cgi?id=221805
<rdar://problem/74153806>

Reviewed by Mark Lam.

Source/JavaScriptCore:

We enable JITCage too on macOS if it is ARM64E.
We need to add this entitlement only when building it on macOS 120000 or higher version.
Otherwise, we cannot launch the process. This means that we need to dynamically generate entitlements file
because we must not attach this entitlement when building JSC for non 120000 macOS.

This patch follows r248164's way: we must not use CODE_SIGN_ENTITLEMENTS because XCode inserts implicit code-signing
and it breaks our pipeline. We need to disable this XCode's implicit behavior by setting CODE_SIGN_INJECT_BASE_ENTITLEMENTS.

And we also create TestAPI.xcconfig to apply generated entitlements only to testapi and jsc shell.

  • Configurations/Base.xcconfig:
  • Configurations/JSC.xcconfig:
  • Configurations/TestAPI.xcconfig: Copied from Source/JavaScriptCore/Configurations/ToolExecutable.xcconfig.
  • Configurations/ToolExecutable.xcconfig:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • Scripts/process-entitlements.sh: Added.
  • allow-jit-macOS.entitlements: Removed.
  • testapi.entitlements: Removed.

Source/WebKit:

We need to add this entitlement only when building it on macOS 120000 or higher version.
Otherwise, we cannot launch the process. And we attach this entitlement only when building processes
with Apple Internal SDKs.

  • Scripts/process-entitlements.sh:

Source/WTF:

Enable JIT_CAGE when macOS is 120000 or higher with ARM64E.

  • wtf/PlatformEnable.h:

Feb 12, 2021:

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

Rename slotVisitor variables to visitor.
https://bugs.webkit.org/show_bug.cgi?id=221866

Reviewed by Yusuke Suzuki.

In existing code, we sometimes name a SlotVisitor instance slotVisitor and
sometimes just visitor. This patch makes it so that we use visitor consistently
everywhere. This will also reduce the size of the GC verifier patch later.

Also fixed a few typos in comments.

This is a pure refactoring patch. There are no behavior changes.

  • API/JSMarkingConstraintPrivate.cpp:

(JSContextGroupAddMarkingConstraint):

  • bytecode/RecordedStatuses.cpp:

(JSC::RecordedStatuses::visitAggregate):
(JSC::RecordedStatuses::markIfCheap):

  • dfg/DFGGraph.cpp:

(JSC::DFG::Graph::blocksInPostOrder):

  • heap/Heap.cpp:

(JSC::Heap::runBeginPhase):
(JSC::Heap::runFixpointPhase):
(JSC::Heap::runConcurrentPhase):
(JSC::Heap::stopThePeriphery):
(JSC::Heap::resumeThePeriphery):
(JSC::Heap::addCoreConstraints):
(JSC::Heap::performIncrement):

  • heap/HeapInlines.h:

(JSC::Heap::forEachSlotVisitor):

  • runtime/JSSegmentedVariableObject.cpp:

(JSC::JSSegmentedVariableObject::visitChildren):

  • runtime/SamplingProfiler.cpp:

(JSC::SamplingProfiler::visit):

8:36 PM Changeset in webkit [272829] by jer.noble@apple.com
  • 7 edits
    2 adds in trunk

[Mac] Sound does not play on YouTube after switching back to foreground
https://bugs.webkit.org/show_bug.cgi?id=221858
<rdar://70602677>

Reviewed by Eric Carlson.

Source/WebCore:

Test: platform/mac/media/unmute-after-loading.html

Remove a stray, unnecessary reset of a cached muted state which kept mute
state from being changed the first time after loading.

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

(WebCore::MediaPlayerPrivateAVFoundationObjC::createAVPlayer):

  • testing/Internals.cpp:

(WebCore::Internals::privatePlayerMuted):

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

(WebCore::Internals::privatePlayerMuted):

LayoutTests:

  • platform/mac/media/unmute-after-loading-expected.txt: Added.
  • platform/mac/media/unmute-after-loading.html: Added.
6:16 PM Changeset in webkit [272828] by Chris Dumez
  • 42 edits in trunk

Reduce explicit usage of [objC release] in WebKit
https://bugs.webkit.org/show_bug.cgi?id=221780
<rdar://problem/74282389>

Reviewed by Darin Adler.

Apply review feedback from Darin Adler and Sam Weinig after r272789.

Source/WebCore:

  • accessibility/mac/WebAccessibilityObjectWrapperMac.mm:

(-[WebAccessibilityObjectWrapper ALLOW_DEPRECATED_IMPLEMENTATIONS_END]):
(if):

  • editing/cocoa/HTMLConverter.mm:

(HTMLConverter::_addLinkForElement):
(HTMLConverter::_processElement):
(HTMLConverter::_addMarkersToList):

  • platform/ios/WebCoreMotionManager.mm:

(-[WebCoreMotionManager initializeOnMainThread]):

  • platform/network/ios/NetworkStateNotifierIOS.mm:

Source/WebKit:

  • UIProcess/Inspector/ios/WKInspectorHighlightView.h:
  • UIProcess/ios/WKScrollView.mm:
  • UIProcess/mac/WebColorPickerMac.mm:

(+[WKPopoverColorWell _colorPopoverCreateIfNecessary:]):

  • WebProcess/WebPage/mac/WKAccessibilityWebPageObjectBase.mm:

(-[WKAccessibilityWebPageObjectBase setRemoteParent:]):

Source/WebKitLegacy/ios:

  • WebView/WebPDFViewPlaceholder.mm:

(-[WebPDFViewPlaceholder _updateTitleForDocumentIfAvailable]):

Source/WebKitLegacy/mac:

  • DOM/DOMUIKitExtensions.mm:

(-[DOMNode absoluteQuads]):
(-[DOMHTMLAreaElement absoluteQuadsWithOwner:]):

  • DOM/ExceptionHandlers.mm:

(raiseDOMErrorException):

  • DefaultDelegates/WebDefaultUIDelegate.mm:

(-[WebDefaultUIDelegate webView:runJavaScriptTextInputPanelWithPrompt:defaultText:initiatedByFrame:]):

  • History/WebHistory.mm:

(-[WebHistoryPrivate visitedURL:withTitle:]):
(-[WebHistory _visitedURL:withTitle:method:wasFailure:]):

  • History/WebHistoryItem.mm:

(-[WebHistoryItem initFromDictionaryRepresentation:]):

  • Misc/WebNSDataExtras.mm:

(-[NSData _webkit_parseRFC822HeaderFields]):

  • Misc/WebNSPasteboardExtras.mm:

(-[NSPasteboard _web_declareAndWriteDragImageForElement:URL:title:archive:source:]):

  • Plugins/Hosted/NetscapePluginHostManager.mm:

(WebKit::NetscapePluginHostManager::spawnPluginHost):

  • Plugins/Hosted/NetscapePluginInstanceProxy.mm:

(WebKit::NetscapePluginInstanceProxy::performRequest):

  • WebCoreSupport/WebChromeClient.mm:

(WebChromeClient::createWindow):
(WebChromeClient::addMessageToConsole):

  • WebCoreSupport/WebEditorClient.mm:

(attributesForAttributedStringConversion):

  • WebCoreSupport/WebFrameLoaderClient.mm:

(WebFrameLoaderClient::actionDictionary const):
(WebFrameLoaderClient::createFrame):

  • WebCoreSupport/WebInspectorClient.mm:

(-[WebInspectorWindowController initWithInspectedWebView:isUnderTest:]):
(-[WebInspectorWindowController window]):

  • WebView/WebDataSource.mm:

(-[WebDataSource _documentFragmentWithArchive:]):
(-[WebDataSource _makeRepresentation]):

  • WebView/WebFrame.mm:
  • WebView/WebFrameView.mm:
  • WebView/WebHTMLView.mm:

(-[WebHTMLView _updateMouseoverWithEvent:]):

  • WebView/WebNavigationData.mm:
  • WebView/WebPDFRepresentation.mm:

(-[WebPDFRepresentation finishedLoadingWithDataSource:]):

  • WebView/WebPDFView.mm:

(-[WebPDFView _menuItemsFromPDFKitForEvent:]):

  • WebView/WebPolicyDelegate.mm:
  • WebView/WebScriptDebugger.mm:

(WebScriptDebugger::sourceParsed):

  • WebView/WebView.mm:

(-[WebView _openNewWindowWithRequest:]):

  • WebView/WebWindowAnimation.h:
  • WebView/WebWindowAnimation.mm:

(-[WebWindowScaleAnimation setSubAnimation:]):

Tools:

  • DumpRenderTree/mac/TestRunnerMac.mm:

(TestRunner::addChromeInputField):

  • WebKitTestRunner/mac/PlatformWebViewMac.mm:

(WTR::PlatformWebView::addChromeInputField):

5:48 PM Changeset in webkit [272827] by commit-queue@webkit.org
  • 10 edits
    5 adds
    5 deletes in trunk/LayoutTests

[LayoutTests] Convert http/tests/mime convert PHP to Python
https://bugs.webkit.org/show_bug.cgi?id=221737

<rdar://problem/74219024>

Patch by Chris Gambrell <Chris Gambrell> on 2021-02-12
Reviewed by Jonathan Bedard.

  • http/tests/mime/quoted-charset.php: Removed.
  • http/tests/mime/quoted-charset.py: Added.
  • http/tests/mime/resources/style-with-charset.php: Removed.
  • http/tests/mime/resources/style-with-charset.py: Added.
  • http/tests/mime/resources/style-with-text-css-and-invalid-type.php: Removed.
  • http/tests/mime/resources/style-with-text-css-and-invalid-type.py: Added.
  • http/tests/mime/resources/style-with-text-plain.php: Removed.
  • http/tests/mime/resources/style-with-text-plain.py: Added.
  • http/tests/mime/resources/uppercase-mime-type.php: Removed.
  • http/tests/mime/resources/uppercase-mime-type.py: Added.
  • http/tests/mime/standard-mode-does-not-load-stylesheet-with-text-plain-and-css-extension-expected.txt:
  • http/tests/mime/standard-mode-does-not-load-stylesheet-with-text-plain-and-css-extension.html:
  • http/tests/mime/standard-mode-does-not-load-stylesheet-with-text-plain-expected.txt:
  • http/tests/mime/standard-mode-does-not-load-stylesheet-with-text-plain.html:
  • http/tests/mime/standard-mode-loads-stylesheet-with-charset-and-css-extension.html:
  • http/tests/mime/standard-mode-loads-stylesheet-with-charset.html:
  • http/tests/mime/standard-mode-loads-stylesheet-with-text-css-and-invalid-type.html:
  • http/tests/mime/uppercase-mime-type-expected.txt:
  • http/tests/mime/uppercase-mime-type.html:
5:40 PM Changeset in webkit [272826] by jiewen_tan@apple.com
  • 6 edits in trunk

[WebAuthn] Provide SPI to query local credentials
https://bugs.webkit.org/show_bug.cgi?id=221743
<rdar://problem/65849832>

Reviewed by Brent Fulgham.

Source/WebKit:

Covered by API tests.

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

(getAllLocalAuthenticatorCredentialsImpl):
(+[_WKWebAuthenticationPanel getAllLocalAuthenticatorCredentials]):
(+[_WKWebAuthenticationPanel getAllLocalAuthenticatorCredentialsWithAccessGroup:]):
(+[_WKWebAuthenticationPanel deleteLocalAuthenticatorCredentialWithID:]):

  • UIProcess/API/Cocoa/_WKWebAuthenticationPanelForTesting.h:

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/_WKWebAuthenticationPanel.mm:

(TestWebKitAPI::TEST):

5:27 PM Changeset in webkit [272825] by mark.lam@apple.com
  • 4 edits in trunk/Source/JavaScriptCore

Remove some unused methods in MarkedBlock and PreciseAllocation.
https://bugs.webkit.org/show_bug.cgi?id=221864

Reviewed by Yusuke Suzuki.

  • heap/MarkedBlock.h:

(JSC::MarkedBlock::Handle::visitWeakSet): Deleted.
(JSC::MarkedBlock::Handle::reapWeakSet): Deleted.

  • heap/PreciseAllocation.cpp:

(JSC::PreciseAllocation::shrink): Deleted.
(JSC::PreciseAllocation::visitWeakSet): Deleted.
(JSC::PreciseAllocation::reapWeakSet): Deleted.

  • heap/PreciseAllocation.h:
4:32 PM Changeset in webkit [272824] by achristensen@apple.com
  • 3 edits in trunk/LayoutTests

REGRESSION (r272784): [macOS Release] fast/animation/request-animation-frame-throttling-lowPowerMode.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=221843

Reviewed by Chris Dumez.

Something about r272784 subtly changed timing, which caused there to be a little bit of a lag in RAF throttling.
I could reproduce it making the way this test measures frame rate go up to 35, but not 36.
This test is still good, though, because if you remove setLowPowerModeEnabled it spikes up to 60 or 61 frames per second.

  • fast/animation/request-animation-frame-throttling-lowPowerMode-expected.txt:
  • fast/animation/request-animation-frame-throttling-lowPowerMode.html:
4:32 PM Changeset in webkit [272823] by msaboff@apple.com
  • 10 edits
    1 add in trunk

[ARM64e] Harden Mach exception handling
https://bugs.webkit.org/show_bug.cgi?id=221841

Reviewed by Geoffrey Garen.

Source/JavaScriptCore:

Split wasm_throw_from_fault_handler_trampoline into two trampolines to eliminate the
need to pass a register argument to signify if we are using FastTLS. With this change
we don't need to modify registers besides the PC when handling exceptions.
Added sanity checks to make sure handlers are being called for the exceptions they
were registered for.

  • bytecode/BytecodeList.rb:
  • llint/WebAssembly.asm:
  • runtime/VMTraps.cpp:
  • signal: Added.
  • tools/SigillCrashAnalyzer.cpp:

(JSC::installCrashHandler):

  • wasm/WasmFaultSignalHandler.cpp:

(JSC::Wasm::trapHandler):

Source/WTF:

For Darwin ARM64e platforms, we check to make sure that all thread state besides the PC hasn't
been modified by an exception handler.

  • wtf/threads/Signals.cpp:

(WTF::hashThreadState):

Tools:

Updated test to check that the exception type matches the one we registered for.

  • TestWebKitAPI/Tests/WTF/Signals.cpp:

(TEST):

4:29 PM Changeset in webkit [272822] by jer.noble@apple.com
  • 8 edits
    3 adds in trunk

[Mac] Unable to play WebM/Opus generated from Chrome MediaRecorder
https://bugs.webkit.org/show_bug.cgi?id=221808

Reviewed by Eric Carlson.

Source/WebCore:

Test: platform/mac-bigsur/media/media-webm-no-duration.html

In the absense of an explicit decode timestamp, CoreMedia convention is to use
the presentation timestamp instead.

All fields in the CoreAudioOpusHeader must be byte-swapped.

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

(WebCore::MediaSampleAVFObjC::decodeTime const):

  • platform/graphics/cocoa/WebMAudioUtilitiesCocoa.mm:

(WebCore::cookieFromOpusCodecPrivate):

Source/WebKit:

In the absense of an explicit duration parsed from the InitializationSegment,
rely instead on the maximum presentation timestamp available in any MediaTrackReader
to generate an explicit duration.

  • Shared/mac/MediaFormatReader/MediaFormatReader.cpp:

(WebKit::MediaFormatReader::finishParsing):
(WebKit::MediaFormatReader::copyProperty):

  • Shared/mac/MediaFormatReader/MediaTrackReader.cpp:

(WebKit::MediaTrackReader::greatestPresentationTime const):

  • Shared/mac/MediaFormatReader/MediaTrackReader.h:

LayoutTests:

  • platform/mac-bigsur/media/media-webm-no-duration-expected.txt: Added.
  • platform/mac-bigsur/media/media-webm-no-duration.html: Added.
3:52 PM Changeset in webkit [272821] by don.olmstead@sony.com
  • 3 edits in trunk/Tools

[Python-3] Use pathlib to generate file:// urls
https://bugs.webkit.org/show_bug.cgi?id=221850

Reviewed by Jonathan Bedard.

Use pathlib which can generate file:// urls for *nix and Windows. The previous logic
only worked on *nix.

Add the pathlib backport for 2.7.

  • Scripts/webkitpy/init.py:
  • Scripts/webkitpy/common/checkout/scm/scm_unittest.py:

(SVNTestRepository.setup):
(SVNTestRepository._setup_mock_repo):

3:49 PM Changeset in webkit [272820] by don.olmstead@sony.com
  • 2 edits in trunk/Tools

[Python-3] base64.encodestring is deprecated
https://bugs.webkit.org/show_bug.cgi?id=221842

Reviewed by Jonathan Bedard.

In Python 3.9 base64.encodestring was completely removed. Replacing with base64.b64encode
which works in Python 2/3 and is used by the code being tested.

  • Scripts/webkitpy/w3c/wpt_github_unittest.py:

(WPTGitHubTest.test_auth_token):

3:46 PM Changeset in webkit [272819] by don.olmstead@sony.com
  • 2 edits in trunk/Tools

Run additional webkitpy tests on Windows by default
https://bugs.webkit.org/show_bug.cgi?id=221851

Reviewed by Jonathan Bedard.

The tests in WebKit/Scripts and webkitpy.common.config pass on Windows.

The WebKit/Scripts tests are not run when using Cygwin. Without any port option its
the only way to differentiate WinCairo, which doesn't use Cygwin, and AppleWin, which
does.

  • Scripts/webkitpy/test/main.py:
3:35 PM Changeset in webkit [272818] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

[ Big Sur ] media/media-source/media-source-webm-init-inside-segment.html is failing
https://bugs.webkit.org/show_bug.cgi?id=220552

Unreviewed test gardening.

  • platform/mac-wk1/TestExpectations: Skip the test for WK1.
3:29 PM Changeset in webkit [272817] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

imported/w3c/web-platform-tests/html/dom/idlharness.worker.html is timing out on Catalina wk1 debug EWS
https://bugs.webkit.org/show_bug.cgi?id=206503

Unreviewed test gardening.

  • platform/mac-wk1/TestExpectations: Changed expectation from Mojave to Catalina to suppress failure.
3:06 PM Changeset in webkit [272816] by Ryan Haddad
  • 2 edits in trunk/Source/WebKit

Unreviewed, reverting r272799.

Caused debug WK2 tests to exit early with an assertion failure

Reverted changeset:

"Unexpected ASSERT when touch events are dispatched on the
main thread"
https://bugs.webkit.org/show_bug.cgi?id=221832
https://commits.webkit.org/r272799

3:05 PM Changeset in webkit [272815] by Ryan Haddad
  • 2 edits in trunk/Tools

REGRESSION (r268421): TestWebKitAPI.WebKit.PreferenceChanges* tests are flaky failures
https://bugs.webkit.org/show_bug.cgi?id=221848

Unreviewed test gardening.

TestWebKitAPI.WebKit.GlobalPreferenceChangesUsingDefaultsWrite is also flaky, so disable it for Big Sur.

  • TestWebKitAPI/Tests/WebKit/PreferenceChanges.mm:
3:03 PM Changeset in webkit [272814] by Dewei Zhu
  • 2 edits in trunk/Websites/perf.webkit.org

'sync-commits.py' should be able to limit reporting scope to a specific branch on a Git repository.
https://bugs.webkit.org/show_bug.cgi?id=221799

Reviewed by Ryosuke Niwa.

Fetching git commits with 'git log --all ...' may end up fetching commits from branches created for
pull requests. Add 'branch' variable to allow us to limit to a certain branch.

  • tools/sync-commits.py: Added 'branch' variable to GitRepository so that we can fetch from a specific branch.

If branch is not specified, it will still use '--all' to list commits.
(load_repository):
(GitRepository.init):
(GitRepository._fetch_all_hashes):

2:29 PM Changeset in webkit [272813] by commit-queue@webkit.org
  • 3 edits in trunk/Websites/perf.webkit.org

perf.webkit.org/tools/js/analysis-results-notifier.js should allow sending of completion emails regardless of test name
https://bugs.webkit.org/show_bug.cgi?id=221712

Patch by Roy Reapor <rreapor@apple.com> on 2021-02-12
Reviewed by Dewei Zhu.

Rule platforms and tests can be undefined, an empty array, or an array of strings. Undefined will match everything.
Empty array will match nothing. Array of strings will match items in the array.

Rule will not match if either tests or platforms is an empty array.

  • tools/js/analysis-results-notifier.js:

(AnalysisResultsNotifier._validateRules.isUnderfinedOrEmptyArrayOrArrayOfStrings):

  • platforms and tests can now be undefined or an empty array officially

(AnalysisResultsNotifier._validateRules):

  • switched to assert.ok(). console.assert() no longer throws since node v10 (https://github.com/facebook/jest/issues/5634)
  • both rule platforms and tests must pass isUnderfinedOrEmptyArrayOrArrayOfStrings(). previously, rules like {tests: [1, 3], platforms: ['speedometer']} passes validation.

(AnalysisResultsNotifier._applyUpdate):

(AnalysisResultsNotifier._validateRules.isNonemptyArrayOfStrings): Deleted.

  • unit-tests/analysis-results-notifier-tests.js:
  • added a bunch of unittests
  • specify the exact regex match for assert.throws() and assert.doesNotThrow() argument.
2:13 PM Changeset in webkit [272812] by commit-queue@webkit.org
  • 25 edits
    3 adds
    3 deletes in trunk/LayoutTests

[LayoutTests] Convert http/tests/storageAccess convert PHP to Python
https://bugs.webkit.org/show_bug.cgi?id=221720
<rdar://problem/74207513>

Patch by Chris Gambrell <Chris Gambrell> on 2021-02-12
Reviewed by Jonathan Bedard.

  • http/tests/storageAccess/aggregate-sorted-data-with-storage-access.html:
  • http/tests/storageAccess/deny-due-to-no-interaction-under-general-third-party-cookie-blocking-ephemeral.html:
  • http/tests/storageAccess/deny-due-to-no-interaction-under-general-third-party-cookie-blocking.html:
  • http/tests/storageAccess/deny-storage-access-under-opener-ephemeral.html:
  • http/tests/storageAccess/deny-storage-access-under-opener-if-auto-dismiss-ephemeral.html:
  • http/tests/storageAccess/deny-storage-access-under-opener-if-auto-dismiss.html:
  • http/tests/storageAccess/deny-storage-access-under-opener.html:
  • http/tests/storageAccess/grant-storage-access-under-opener-at-popup-user-gesture-ephemeral.html:
  • http/tests/storageAccess/grant-storage-access-under-opener-at-popup-user-gesture.html:
  • http/tests/storageAccess/grant-with-prompt-under-general-third-party-cookie-blocking.html:
  • http/tests/storageAccess/has-storage-access-true-if-third-party-has-cookies-ephemeral.html:
  • http/tests/storageAccess/has-storage-access-true-if-third-party-has-cookies.html:
  • http/tests/storageAccess/has-storage-access-under-general-third-party-cookie-blocking-with-cookie-ephemeral.html:
  • http/tests/storageAccess/has-storage-access-under-general-third-party-cookie-blocking-with-cookie.html:
  • http/tests/storageAccess/request-and-grant-access-cross-origin-non-sandboxed-iframe-ephemeral.html:
  • http/tests/storageAccess/request-and-grant-access-cross-origin-sandboxed-iframe-from-prevalent-domain-with-user-interaction-and-access-from-right-frame.html:
  • http/tests/storageAccess/request-and-grant-access-cross-origin-sandboxed-iframe-from-prevalent-domain-with-user-interaction-but-access-from-wrong-frame.html:
  • http/tests/storageAccess/request-and-grant-access-cross-origin-sandboxed-nested-iframe.html:
  • http/tests/storageAccess/request-and-grant-access-then-detach-should-not-have-access.html:
  • http/tests/storageAccess/request-and-grant-access-then-navigate-cross-site-should-not-have-access.html:
  • http/tests/storageAccess/request-and-grant-access-then-navigate-same-site-should-have-access.html:
  • http/tests/storageAccess/request-and-grant-access-with-per-page-scope-access-from-another-frame.html:
  • http/tests/storageAccess/resources/echo-incoming-cookies-as-json.php: Removed.
  • http/tests/storageAccess/resources/echo-incoming-cookies-as-json.py: Added.
  • http/tests/storageAccess/resources/get-cookies.php: Removed.
  • http/tests/storageAccess/resources/get-cookies.py: Added.
  • http/tests/storageAccess/resources/has-storage-access-iframe.html:
  • http/tests/storageAccess/resources/request-storage-access-iframe.html:
  • http/tests/storageAccess/resources/set-cookie.php: Removed.
  • http/tests/storageAccess/resources/set-cookie.py: Added.
2:07 PM Changeset in webkit [272811] by stephan.szabo@sony.com
  • 2 edits in trunk/Source/WebCore

[PlayStation][Debug] Build fix after r272772
https://bugs.webkit.org/show_bug.cgi?id=221836

Unreviewed Build Fix

  • platform/graphics/nicosia/cairo/NicosiaCairoOperationRecorder.cpp:
2:01 PM Changeset in webkit [272810] by youenn@apple.com
  • 2 edits in trunk/Source/WebKit

Enable video capture in GPUProcess by default on MacOS
https://bugs.webkit.org/show_bug.cgi?id=221750

Reviewed by Eric Carlson.

Manually tested.

  • Shared/WebPreferencesDefaultValues.cpp:

(WebKit::defaultCaptureVideoInGPUProcessEnabled):

1:53 PM Changeset in webkit [272809] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[LFC][IFC] Multiline inline boxes have incorrect content box height/width values
https://bugs.webkit.org/show_bug.cgi?id=221827

Reviewed by Antti Koivisto.

Exclude padding and borders when computing the content box size for a multiline inline box.
(This is similar to r272724 but with inline boxes spanning multiple lines.)

  • layout/inlineformatting/InlineFormattingContext.cpp:

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

1:52 PM Changeset in webkit [272808] by jer.noble@apple.com
  • 2 edits in trunk/Source/WebKit

[Mac] Update Opus setting after a preference change.
https://bugs.webkit.org/show_bug.cgi?id=221807

Reviewed by Eric Carlson.

Make the opusDecoderEnabled() setting dynamic by applying changes
to that setting after a preference update.

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::updatePreferences):

1:49 PM Changeset in webkit [272807] by mmaxfield@apple.com
  • 2 edits in trunk/Source/WebCore

Fix Windows build again after r272772
https://bugs.webkit.org/show_bug.cgi?id=221765

Unreviewed.

No new tests because there is no behavior change.

  • platform/graphics/win/FontCGWin.cpp:

(WebCore::FontCascade::drawGlyphs):

1:35 PM Changeset in webkit [272806] by youenn@apple.com
  • 11 edits in trunk/Source/WebKit

Remote video capture samples should be processed in a background thread
https://bugs.webkit.org/show_bug.cgi?id=221201
<rdar://problem/73826816>

Reviewed by Eric Carlson.

Make RemoteRealtimeVideoSource register to RemoteCaptureSampleManager to get video samples from a background thread.
Make RemoteCaptureSampleManager able to handle incoming video samples in background thread like for audio.
Make UserMediaCaptureManagerProxy use RemoteCaptureSampleManager instead of UserMediaCaptureManager message.
Covered by existing tests.

  • UIProcess/Cocoa/UserMediaCaptureManagerProxy.cpp:
  • WebProcess/cocoa/RemoteCaptureSampleManager.cpp:

(WebKit::RemoteCaptureSampleManager::addSource):
(WebKit::RemoteCaptureSampleManager::removeSource):
(WebKit::RemoteCaptureSampleManager::audioStorageChanged):
(WebKit::RemoteCaptureSampleManager::audioSamplesAvailable):
(WebKit::RemoteCaptureSampleManager::videoSampleAvailable):
(WebKit::RemoteCaptureSampleManager::RemoteVideo::RemoteVideo):
(WebKit::RemoteCaptureSampleManager::RemoteVideo::videoSampleAvailable):

  • WebProcess/cocoa/RemoteCaptureSampleManager.h:
  • WebProcess/cocoa/RemoteCaptureSampleManager.messages.in:
  • WebProcess/cocoa/RemoteRealtimeVideoSource.cpp:

(WebKit::RemoteRealtimeVideoSource::create):
(WebKit::RemoteRealtimeVideoSource::videoSampleAvailable):
(WebKit::RemoteRealtimeVideoSource::remoteVideoSampleAvailable): Deleted.

  • WebProcess/cocoa/RemoteRealtimeVideoSource.h:
  • WebProcess/cocoa/UserMediaCaptureManager.cpp:

(WebKit::UserMediaCaptureManager::remoteVideoSampleAvailable): Deleted.

  • WebProcess/cocoa/UserMediaCaptureManager.h:
  • WebProcess/cocoa/UserMediaCaptureManager.messages.in:
1:31 PM Changeset in webkit [272805] by mmaxfield@apple.com
  • 75 edits in trunk/Source/WebCore

enum LengthType -> enum class LengthType
https://bugs.webkit.org/show_bug.cgi?id=221834

Reviewed by Sam Weinig and Simon Fraser.

iPhoneOS14.2.sdk/usr/include/MacTypes.h:193 has:

typedef SInt32 Fixed;

but we have:

enum LengthType {

... Fixed ...

}

This leads to: error: reference to 'Fixed' is ambiguous

Unfortunately, this error occurs in
/System/Library/Frameworks/CoreText.framework/Headers/SFNTLayoutTypes.h,
which means we can't modify the error site to qualify the name. Therefore,
the best solution is to turn enum LengthType into enum class LengthType.
This is in accordance with WebKit's style guide.

No new tests because there is no behavior change.

  • animation/CSSPropertyAnimation.cpp:

(WebCore::blendFunc):

  • css/BasicShapeFunctions.cpp:

(WebCore::convertToLengthSize):
(WebCore::convertToCenterCoordinate):

  • css/CSSBasicShapes.cpp:

(WebCore::buildSerializablePositionOffset):

  • css/CSSCalculationValue.cpp:

(WebCore::CSSCalcPrimitiveValueNode::createCalcExpression const):
(WebCore::createCSS):

  • css/CSSPrimitiveValue.cpp:

(WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
(WebCore::CSSPrimitiveValue::init):
(WebCore::CSSPrimitiveValue::computeLength const):

  • css/CSSPrimitiveValueMappings.h:

(WebCore::CSSPrimitiveValue::convertToLength const):

  • css/CSSToStyleMap.cpp:

(WebCore::CSSToStyleMap::mapNinePieceImageSlice):
(WebCore::CSSToStyleMap::mapNinePieceImageQuad):

  • css/LengthFunctions.cpp:

(WebCore::valueForLength):
(WebCore::floatValueForLength):

  • css/LengthFunctions.h:

(WebCore::minimumValueForLength):

  • css/TransformFunctions.cpp:

(WebCore::convertToFloatLength):
(WebCore::transformsForValue):
(WebCore::translateForValue):

  • display/css/DisplayFillLayerImageGeometry.cpp:

(WebCore::Display::calculateImageIntrinsicDimensions):

  • dom/Document.cpp:

(WebCore::Document::updateLayoutIfDimensionsOutOfDate):

  • html/HTMLInputElement.cpp:

(WebCore::HTMLInputElement::createInnerTextStyle):

  • html/shadow/DateTimeNumericFieldElement.cpp:

(WebCore::DateTimeNumericFieldElement::adjustMinWidth const):

  • html/shadow/DateTimeSymbolicFieldElement.cpp:

(WebCore::DateTimeSymbolicFieldElement::adjustMinWidth const):

  • html/shadow/TextControlInnerElements.cpp:

(WebCore::TextControlInnerElement::resolveCustomStyle):

  • layout/layouttree/LayoutTreeBuilder.cpp:

(WebCore::Layout::TreeBuilder::buildLayoutTree):
(WebCore::Layout::TreeBuilder::createLayoutBox):

  • page/FrameView.cpp:

(WebCore::FrameView::performFixedWidthAutoSize):

  • page/IntersectionObserver.cpp:

(WebCore::parseRootMargin):
(WebCore::IntersectionObserver::rootMargin const):

  • platform/Length.cpp:

(WebCore::parseLength):
(WebCore::Length::Length):
(WebCore::convertTo100PercentMinusLength):
(WebCore::blend):
(WebCore::operator<<):

  • platform/Length.h:

(WebCore::Length::Length):
(WebCore::Length::operator=):
(WebCore::Length::setValue):
(WebCore::Length::isAuto const):
(WebCore::Length::isFixed const):
(WebCore::Length::isMaxContent const):
(WebCore::Length::isMinContent const):
(WebCore::Length::isPercent const):
(WebCore::Length::isRelative const):
(WebCore::Length::isUndefined const):
(WebCore::Length::isCalculated const):
(WebCore::Length::isLegacyIntrinsic const):
(WebCore::Length::isIntrinsic const):
(WebCore::Length::isFillAvailable const):
(WebCore::Length::isFitContent const):
(WebCore::Length::isMinIntrinsic const):

  • platform/LengthBox.h:

(WebCore::LengthBox::LengthBox):

  • platform/Theme.cpp:

(WebCore::Theme::minimumControlSize const):

  • platform/graphics/Image.cpp:

(WebCore::Image::computeIntrinsicDimensions):

  • platform/graphics/transforms/PerspectiveTransformOperation.cpp:

(WebCore::PerspectiveTransformOperation::blend):

  • platform/graphics/transforms/TranslateTransformOperation.cpp:

(WebCore::TranslateTransformOperation::blend):

  • platform/graphics/transforms/TranslateTransformOperation.h:
  • platform/mac/ThemeMac.mm:

(WebCore::sizeFromNSControlSize):
(WebCore::ThemeMac::minimumControlSize const):

  • rendering/AutoTableLayout.cpp:

(WebCore::AutoTableLayout::recalcColumn):
(WebCore::AutoTableLayout::calcEffectiveLogicalWidth):
(WebCore::AutoTableLayout::layout):

  • rendering/FixedTableLayout.cpp:

(WebCore::FixedTableLayout::calcWidthArray):

  • rendering/GridTrackSizingAlgorithm.cpp:

(WebCore::GridTrackSizingAlgorithm::calculateGridTrackSize const):

  • rendering/RenderBlockFlow.cpp:

(WebCore::isNonBlocksOrNonFixedHeightListItems):
(WebCore::getBPMWidth):

  • rendering/RenderBox.cpp:

(WebCore::RenderBox::constrainLogicalWidthInFragmentByMinMax const):
(WebCore::RenderBox::constrainLogicalHeightByMinMax const):
(WebCore::RenderBox::adjustBorderBoxLogicalWidthForBoxSizing const):
(WebCore::RenderBox::adjustContentBoxLogicalWidthForBoxSizing const):
(WebCore::RenderBox::computeLogicalWidthInFragment const):
(WebCore::RenderBox::computeIntrinsicLogicalWidthUsing const):
(WebCore::RenderBox::sizesLogicalWidthToFitContent const):
(WebCore::RenderBox::computeInlineDirectionMargins const):
(WebCore::RenderBox::computeLogicalHeight const):
(WebCore::RenderBox::computeReplacedLogicalWidthUsing const):
(WebCore::RenderBox::computeReplacedLogicalHeightUsing const):
(WebCore::computeInlineStaticDistance):
(WebCore::RenderBox::computePositionedLogicalWidth const):
(WebCore::RenderBox::computePositionedLogicalWidthUsing const):
(WebCore::computeBlockStaticDistance):
(WebCore::RenderBox::computePositionedLogicalHeightUsing const):
(WebCore::RenderBox::computePositionedLogicalWidthReplaced const):
(WebCore::RenderBox::computePositionedLogicalHeightReplaced const):
(WebCore::RenderBox::percentageLogicalHeightIsResolvable const):

  • rendering/RenderButton.cpp:

(WebCore::RenderButton::updateAnonymousChildStyle const):

  • rendering/RenderDeprecatedFlexibleBox.cpp:

(WebCore::RenderDeprecatedFlexibleBox::allowedChildFlex):

  • rendering/RenderElement.cpp:

(WebCore::includeNonFixedHeight):

  • rendering/RenderFlexibleBox.cpp:

(WebCore::RenderFlexibleBox::computeMainAxisExtentForChild):
(WebCore::RenderFlexibleBox::adjustChildSizeForMinAndMax):
(WebCore::RenderFlexibleBox::mainSizeForPercentageResolution):

  • rendering/RenderFullScreen.cpp:

(WebCore::createFullScreenStyle):

  • rendering/RenderImage.cpp:

(WebCore::RenderImage::layoutShadowContent):

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::calculateClipRects const):

  • rendering/RenderLayerBacking.cpp:

(WebCore::hasNonZeroTransformOrigin):

  • rendering/RenderListMarker.cpp:

(WebCore::RenderListMarker::updateMargins):

  • rendering/RenderMenuList.cpp:

(WebCore::RenderMenuList::adjustInnerStyle):

  • rendering/RenderTableCell.cpp:

(WebCore::RenderTableCell::logicalWidthFromColumns const):

  • rendering/RenderTableSection.cpp:

(WebCore::updateLogicalHeightForCell):

  • rendering/RenderTextControlMultiLine.cpp:

(WebCore::RenderTextControlMultiLine::layoutExcludedChildren):

  • rendering/RenderTextControlSingleLine.cpp:

(WebCore::resetOverriddenHeight):
(WebCore::RenderTextControlSingleLine::layout):

  • rendering/RenderThemeCocoa.mm:

(WebCore::RenderThemeCocoa::adjustApplePayButtonStyle const):

  • rendering/RenderThemeMac.mm:

(WebCore::RenderThemeMac::setSizeFromFont const):
(WebCore::RenderThemeMac::adjustListButtonStyle const):
(WebCore::RenderThemeMac::adjustMenuListStyle const):
(WebCore::RenderThemeMac::adjustMenuListButtonStyle const):
(WebCore::RenderThemeMac::adjustSearchFieldStyle const):
(WebCore::RenderThemeMac::adjustSearchFieldCancelButtonStyle const):
(WebCore::RenderThemeMac::adjustSearchFieldDecorationPartStyle const):
(WebCore::RenderThemeMac::adjustSearchFieldResultsDecorationPartStyle const):
(WebCore::RenderThemeMac::adjustSearchFieldResultsButtonStyle const):
(WebCore::RenderThemeMac::adjustSliderThumbSize const):

  • rendering/TextAutoSizing.cpp:

(WebCore::TextAutoSizingValue::adjustTextNodeSizes):

  • rendering/style/BasicShapes.cpp:

(WebCore::BasicShapeCenterCoordinate::updateComputedLength):

  • rendering/style/BasicShapes.h:

(WebCore::BasicShapeRadius::BasicShapeRadius):

  • rendering/style/BorderData.h:

(WebCore::BorderData::BorderData):

  • rendering/style/FillLayer.h:

(WebCore::FillLayer::initialFillXPosition):
(WebCore::FillLayer::initialFillYPosition):

  • rendering/style/GridTrackSize.h:

(WebCore::GridTrackSize::GridTrackSize):

  • rendering/style/NinePieceImage.h:
  • rendering/style/RenderStyle.cpp:

(WebCore::RenderStyle::setPageScaleTransform):
(WebCore::RenderStyle::setWordSpacing):

  • rendering/style/RenderStyle.h:

(WebCore::RenderStyle::resetMargin):
(WebCore::RenderStyle::initialShapeMargin):
(WebCore::RenderStyle::initialBorderRadius):
(WebCore::RenderStyle::initialObjectPosition):
(WebCore::RenderStyle::initialWordSpacing):
(WebCore::RenderStyle::initialMaxSize):
(WebCore::RenderStyle::initialMargin):
(WebCore::RenderStyle::initialPadding):
(WebCore::RenderStyle::initialTextIndent):
(WebCore::RenderStyle::initialZeroLength):
(WebCore::RenderStyle::initialOneLength):
(WebCore::RenderStyle::initialLineHeight):
(WebCore::RenderStyle::initialFlexBasis):
(WebCore::RenderStyle::initialMarqueeIncrement):
(WebCore::RenderStyle::initialTransformOriginX):
(WebCore::RenderStyle::initialTransformOriginY):
(WebCore::RenderStyle::initialPerspectiveOriginX):
(WebCore::RenderStyle::initialPerspectiveOriginY):
(WebCore::RenderStyle::initialSpecifiedLineHeight):
(WebCore::RenderStyle::initialScrollMargin):
(WebCore::RenderStyle::initialScrollPadding):
(WebCore::RenderStyle::initialGridAutoColumns):
(WebCore::RenderStyle::initialGridAutoRows):
(WebCore::RenderStyle::setBorderRadius):

  • rendering/style/StyleGeneratedImage.cpp:

(WebCore::StyleGeneratedImage::computeIntrinsicDimensions):

  • rendering/style/StyleRareNonInheritedData.h:
  • rendering/style/StyleReflection.h:

(WebCore::StyleReflection::StyleReflection):

  • rendering/style/StyleSurroundData.cpp:

(WebCore::StyleSurroundData::StyleSurroundData):

  • rendering/updating/RenderTreeBuilderFullScreen.cpp:

(WebCore::RenderTreeBuilder::FullScreen::createPlaceholder):

  • style/StyleAdjuster.cpp:

(WebCore::Style::addIntrinsicMargins):
(WebCore::Style::Adjuster::adjust const):
(WebCore::Style::Adjuster::adjustForTextAutosizing):

  • style/StyleBuilderConverter.h:

(WebCore::Style::BuilderConverter::convertLength):
(WebCore::Style::BuilderConverter::convertLengthOrAuto):
(WebCore::Style::BuilderConverter::convertLengthSizing):
(WebCore::Style::BuilderConverter::convertLengthMaxSizing):
(WebCore::Style::BuilderConverter::convertToRadiusLength):
(WebCore::Style::BuilderConverter::convertRadius):
(WebCore::Style::BuilderConverter::convertTo100PercentMinusLength):
(WebCore::Style::BuilderConverter::convertPositionComponent):
(WebCore::Style::BuilderConverter::createGridTrackBreadth):
(WebCore::Style::BuilderConverter::convertWordSpacing):
(WebCore::Style::BuilderConverter::convertLineHeight):

  • style/StyleBuilderCustom.h:

(WebCore::Style::ApplyPropertyBorderImageModifier::applyInitialValue):

  • style/StyleBuilderState.cpp:

(WebCore::Style::BuilderState::createFilterOperations):

  • style/StyleResolveForDocument.cpp:

(WebCore::Style::resolveForDocument):

  • style/StyleResolveForFontRaw.cpp:

(WebCore::Style::resolveForFontRaw):

  • svg/SVGSVGElement.cpp:

(WebCore::SVGSVGElement::intrinsicWidth const):
(WebCore::SVGSVGElement::intrinsicHeight const):

1:26 PM Changeset in webkit [272804] by Aditya Keerthi
  • 3 edits in trunk/Source/WebKit

[tvOS] Fix build failure in WKFormSelectPicker
https://bugs.webkit.org/show_bug.cgi?id=221839
<rdar://problem/74287348>

Reviewed by Wenson Hsieh.

UITableViewStyleInsetGrouped is not available on tvOS. Rather than
have two separate codepaths, we can just use UITableViewStyleGrouped
with sectionContentInsetFollowsLayoutMargins set to YES.

  • Platform/spi/ios/UIKitSPI.h:
  • UIProcess/ios/forms/WKFormSelectPicker.mm:

(-[WKSelectPickerTableViewController initWithView:]):

1:22 PM Changeset in webkit [272803] by don.olmstead@sony.com
  • 2 edits in trunk/Tools

webkitpy.xcode only relevant for darwin platforms
https://bugs.webkit.org/show_bug.cgi?id=221837

Reviewed by Jonathan Bedard.

The tests in webkitpy.xcode are Darwin specific and should only run on that platform.

This issue was discovered when running the tests with Python 3 on Windows which failed
a number of tests in the suite. These tests may run successfully on *nix platforms but
aren't actually relevant.

  • Scripts/webkitpy/test/main.py:
1:10 PM Changeset in webkit [272802] by youenn@apple.com
  • 5 edits in trunk/Source/WebKit

Test landed flaky: [iOS] TestWebKitAPI.WebKit2.CrashGPUProcessWhileCapturing
https://bugs.webkit.org/show_bug.cgi?id=221331
<rdar://problem/73935129>

Reviewed by Eric Carlson.

Now that RemoteRealtimeVideoSource is a RealtimeVideoCaptureSource, we can register RemoteRealtimeVideoSource
to its factory so that it will be muted if another RemoteRealtimeVideoSource is created.
This is now possible as clones of the track will get the same underlying RemoteRealtimeVideoSource.
We can thus only recreate the active source when GPU process crashes.
Covered by test no longer flaky.

  • WebProcess/cocoa/RemoteRealtimeAudioSource.cpp:

(WebKit::RemoteRealtimeAudioSource::gpuProcessConnectionDidClose):

  • WebProcess/cocoa/RemoteRealtimeVideoSource.cpp:

(WebKit::RemoteRealtimeVideoSource::gpuProcessConnectionDidClose):

  • WebProcess/cocoa/UserMediaCaptureManager.cpp:

(WebKit::UserMediaCaptureManager::VideoFactory::setActiveSource): Deleted.

  • WebProcess/cocoa/UserMediaCaptureManager.h:
1:01 PM Changeset in webkit [272801] by Antti Koivisto
  • 3 edits in trunk/LayoutTests

[LFC][Integration] Make accessibility/aria-modal-in-aria-hidden.html more robust
https://bugs.webkit.org/show_bug.cgi?id=221812

Reviewed by Zalan Bujtas.

It is very dependent on exact interactions between the internal testing API and the DOM.
It also seems to be partially testing a wrong thing (probably as workaround for above).

  • accessibility/aria-modal-in-aria-hidden-expected.txt:
  • accessibility/aria-modal-in-aria-hidden.html:

Do rendering update between every mutation and check, not just the last one.
Fix the middle test to use isIgnored too.
(isValid() is not even a function, it is a property, so this relied on getting null to pass)

12:38 PM Changeset in webkit [272800] by Jonathan Bedard
  • 5 edits in trunk/Tools

[webkit-patch] Post both revision and identifier to bugzilla
https://bugs.webkit.org/show_bug.cgi?id=221829
<rdar://problem/74282619>

Reviewed by Aakash Jain.

  • Scripts/webkitpy/tool/commands/download_unittest.py:
  • Scripts/webkitpy/tool/commands/upload_unittest.py:
  • Scripts/webkitpy/tool/comments.py:

(bug_comment_from_svn_revision): Include subversion revision.

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

(CloseBugForLandDiffTest.test_empty_state):

12:25 PM Changeset in webkit [272799] by dino@apple.com
  • 2 edits in trunk/Source/WebKit

Unexpected ASSERT when touch events are dispatched on the main thread
https://bugs.webkit.org/show_bug.cgi?id=221832
<rdar://problem/74283856>

Reviewed by Sam Weinig.

The change in r272558 causes an ASSERT when running on iOS debug
builds. The touch event CompletionHandlers are created on the EventDispatcher
thread, but serviced on the main thread. We now need to state that this
is ok as we create the CompletionHandler.

This is covered by tests, but the EWS bots don't run iOS tests in
debug mode, and the internal bots hadn't caught up yet!

  • Platform/IPC/HandleMessage.h:

(IPC::handleMessageAsync): Pass a CompletionHandlerCallThread into the constructor.

11:43 AM Changeset in webkit [272798] by Truitt Savell
  • 2 edits in trunk/LayoutTests

REGRESSION (r272241) [MacOS wk1] imported/w3c/web-platform-tests/css/css-flexbox/overflow-auto-006.html is flaky failure.
https://bugs.webkit.org/show_bug.cgi?id=221347

Unreviewed test gardening.

Patch by Amir Mark Jr <Amir Mark Jr.> on 2021-02-12

  • platform/mac-wk1/TestExpectations:
11:25 AM Changeset in webkit [272797] by mark.lam@apple.com
  • 11 edits
    1 add in trunk/Source

Move RootMarkReason out of SlotVisitor.
https://bugs.webkit.org/show_bug.cgi?id=221831

Reviewed by Tadeu Zagallo.

Source/JavaScriptCore:

This will lessen the amount of diff needed for the GC verifier later.

  • CMakeLists.txt:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • heap/Heap.cpp:

(JSC::Heap::addCoreConstraints):

  • heap/HeapAnalyzer.h:
  • heap/HeapSnapshotBuilder.cpp:

(JSC::HeapSnapshotBuilder::analyzeEdge):
(JSC::rootTypeToString):

  • heap/HeapSnapshotBuilder.h:
  • heap/RootMarkReason.h: Added.
  • heap/SlotVisitor.h:

(JSC::SetRootMarkReasonScope::SetRootMarkReasonScope):

  • inspector/JSInjectedScriptHost.cpp:

Source/WebCore:

  • bindings/js/DOMGCOutputConstraint.cpp:

(WebCore::DOMGCOutputConstraint::executeImpl):

11:15 AM Changeset in webkit [272796] by Brent Fulgham
  • 2 edits in trunk/Source/WebKit

[macOS] Limit mech-register to required services
https://bugs.webkit.org/show_bug.cgi?id=221768
<rdar://problem/70350150>

Reviewed by Per Arne Vollan.

Limit mach-register to the two cases identified by telemetry.

  • WebProcess/com.apple.WebProcess.sb.in:
11:10 AM Changeset in webkit [272795] by svillar@igalia.com
  • 8 edits
    7 adds
    2 deletes in trunk/LayoutTests

[css-flexbox] Another WPT test import
https://bugs.webkit.org/show_bug.cgi?id=221813

Reviewed by Youenn Fablet.

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-flexbox/flexbox-min-width-auto-005-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-min-width-auto-005.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-min-width-auto-006-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-min-width-auto-006.html: Added.
  • web-platform-tests/css/css-flexbox/percentage-descendant-of-anonymous-flex-item-expected.html: Added.
  • web-platform-tests/css/css-flexbox/percentage-descendant-of-anonymous-flex-item.html: Added.
  • web-platform-tests/css/css-flexbox/radiobutton-min-size-expected.txt: Updated expectations.
  • web-platform-tests/css/css-flexbox/radiobutton-min-size.html: Updated.
  • web-platform-tests/css/css-flexbox/support/40x20-green.png: Added.
  • web-platform-tests/css/css-flexbox/support/w3c-import.log:
  • web-platform-tests/css/css-flexbox/w3c-import.log:

LayoutTests:

Imported the most recent changes in flexbox WPT tests. This implies deleting a local test that
was upstreamed to WPT, so it does not make sense to have a duplicate.

  • TestExpectations: Removed a test that is currently passing. Adding a new expected failure.
  • css3/flexbox/percentage-descendants-of-skipped-flex-item-expected.html: Removed.
  • css3/flexbox/percentage-descendants-of-skipped-flex-item.html: Removed.
  • platform/ios-wk2/imported/w3c/web-platform-tests/css/css-flexbox/radiobutton-min-size-expected.txt:

Updated expectations.

11:08 AM Changeset in webkit [272794] by commit-queue@webkit.org
  • 3 edits
    2 adds in trunk

Crash in WebCore::RenderThemeMac::paintSearchFieldResultsDecorationPart() from large scale
https://bugs.webkit.org/show_bug.cgi?id=221635

Patch by Julian Gonzalez <julian_a_gonzalez@apple.com> on 2021-02-12
Reviewed by Darin Adler.

Source/WebCore:

Test: platform/mac/editing/style/large-scale-crash.html

paintSearchFieldResultsDecorationPart(), unlike other functions like
paintSearchField(), paintSearchFieldCancelButton(), etc. has been
calling [NSButton:drawWithFrame:inView] directly. When a very large
scale has been applied however, this can lead to an assertion below us.
First draw the cell to an ImageBuffer using
paintCellAndSetFocusedElementNeedsRepaintIfNecessary(), as other
functions are already doing (as of 213352).
Thanks to Aditya Keerthi for pointing out this difference
and help with the fix.

  • rendering/RenderThemeMac.mm:

(WebCore::RenderThemeMac::paintSearchFieldResultsDecorationPart):

LayoutTests:

Add a test with a very large value of scale that tests that
we do not trigger the assertion here.
Thanks to Ryosuke Niwa for help in cleaning up the test
and making it more reliable.

  • fast/rendering/searchfield-scale-crash-expected.txt: Added.
  • fast/rendering/searchfield-scale-crash.html: Added.
11:05 AM Changeset in webkit [272793] by Jonathan Bedard
  • 3 edits in trunk/Tools

[webkit-patch] Use identifiers when posting to bugzilla (Follow-up fix)
https://bugs.webkit.org/show_bug.cgi?id=221724
<rdar://problem/74209525>

Rubber-stamped by Aakash Jain.

  • Scripts/libraries/webkitscmpy/webkitscmpy/mocks/remote/svn.py:

(Svn): Keep track of the set of mock remotes.

  • Scripts/libraries/webkitscmpy/webkitscmpy/remote/svn.py:

(Svn._cache_path): Change the cache path if we detect the current host is being mocked.

11:03 AM Changeset in webkit [272792] by aakash_jain@apple.com
  • 1 edit
    1 delete in trunk/Tools

Delete old build.webkit.org templates
https://bugs.webkit.org/show_bug.cgi?id=221692

Reviewed by Jonathan Bedard.

  • CISupport/build-webkit-org/templates: Removed.
10:59 AM Changeset in webkit [272791] by aakash_jain@apple.com
  • 3 edits in trunk/Tools

[build.webkit.org] Avoid hosting results on S3
https://bugs.webkit.org/show_bug.cgi?id=221822

Reviewed by Jonathan Bedard.

Reverts r271801, r272220 and r272399.

  • CISupport/build-webkit-org/public_html/dashboard/Scripts/WebKitBuildbot.js:
  • CISupport/build-webkit-org/steps.py:

(ExtractTestResults.init):
(ExtractTestResults.resultDirectoryURL):

10:50 AM Changeset in webkit [272790] by stephan.szabo@sony.com
  • 3 edits in trunk/Source/WebCore

[WinCairo][Debug] Build fix after r272772
https://bugs.webkit.org/show_bug.cgi?id=221814

Unreviewed build fix.

  • platform/graphics/cairo/FontCairo.cpp:
  • platform/graphics/cairo/GraphicsContextImplCairo.cpp:
10:40 AM Changeset in webkit [272789] by Chris Dumez
  • 92 edits in trunk

Reduce explicit usage of [objC release] in WebKit
https://bugs.webkit.org/show_bug.cgi?id=221780

Reviewed by Alex Christensen.

Reduce explicit usage of [objC release] in WebKit by using smart pointers.

Source/WebCore:

  • accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:

(-[WebAccessibilityObjectWrapper arrayOfTextForTextMarkers:attributed:]):

  • accessibility/mac/AXObjectCacheMac.mm:

(WebCore::AXObjectCache::postTextStateChangePlatformNotification):
(WebCore::postUserInfoForChanges):
(WebCore::AXObjectCache::postTextReplacementPlatformNotification):
(WebCore::AXObjectCache::postTextReplacementPlatformNotificationForTextControl):

  • accessibility/mac/WebAccessibilityObjectWrapperMac.mm:

(-[WebAccessibilityObjectWrapper ALLOW_DEPRECATED_IMPLEMENTATIONS_END]):

  • bridge/testbindings.mm:

(main):

  • editing/cocoa/HTMLConverter.mm:

(HTMLConverter::HTMLConverter):
(HTMLConverter::computedAttributesForElement):
(HTMLConverter::_addMarkersToList):
(fileWrapperForURL):

  • history/mac/HistoryItemMac.mm:

(WebCore::HistoryItem::setViewState):

  • page/scrolling/mac/ScrollingTreeFrameScrollingNodeMac.mm:

(WebCore::ScrollingTreeFrameScrollingNodeMac::exposedUnfilledArea const):

  • platform/ios/WebCoreMotionManager.h:
  • platform/ios/WebCoreMotionManager.mm:

(-[WebCoreMotionManager dealloc]):
(-[WebCoreMotionManager initializeOnMainThread]):
(-[WebCoreMotionManager checkClientStatus]):
(-[WebCoreMotionManager update]):

  • platform/ios/wak/WAKView.mm:

(-[WAKView dealloc]):
(-[WAKView _subviewReferences]):
(-[WAKView addSubview:]):
(-[WAKView removeFromSuperview]):

  • platform/ios/wak/WAKViewInternal.h:
  • platform/mac/PasteboardMac.mm:

(WebCore::writeFileWrapperAsRTFDAttachment):

  • platform/mac/PlatformSpeechSynthesizerMac.mm:

(WebCore::PlatformSpeechSynthesizer::initializeVoiceList):

  • platform/network/ios/NetworkStateNotifierIOS.mm:

(-[WebNetworkStateObserver initWithBlock:]):
(-[WebNetworkStateObserver dealloc]):

  • platform/network/mac/ResourceHandleMac.mm:

(WebCore::ResourceHandle::makeDelegate):

  • platform/text/mac/TextBoundaries.mm:

(WebCore::findWordBoundary):
(WebCore::findNextWordFromIndex):

Source/WebKit:

  • Shared/Cocoa/WKObject.mm:

(-[WKObject dealloc]):
(initializeTargetIfNeeded):
(-[WKObject forwardingTargetForSelector:]):
(-[WKObject forwardInvocation:]):

  • Shared/RemoteLayerTree/RemoteLayerTreePropertyApplier.mm:

(-[UIView _web_setSubviews:]):

  • UIProcess/API/ios/WKWebViewIOS.mm:

(-[WKWebView _snapshotRect:intoImageOfWidth:completionHandler:]):

  • UIProcess/Cocoa/LegacyCustomProtocolManagerClient.mm:

(-[WKCustomProtocolLoader initWithLegacyCustomProtocolManagerProxy:customProtocolID:request:]):
(-[WKCustomProtocolLoader dealloc]):
(WebKit::LegacyCustomProtocolManagerClient::startLoading):

  • UIProcess/Inspector/ios/WKInspectorHighlightView.h:
  • UIProcess/Inspector/ios/WKInspectorHighlightView.mm:

(-[WKInspectorHighlightView initWithFrame:]):
(-[WKInspectorHighlightView dealloc]):
(-[WKInspectorHighlightView _removeAllLayers]):
(-[WKInspectorHighlightView _createLayers:]):

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView _selectPositionAtPoint:stayingWithinFocusedElement:completionHandler:]):
(-[WKContentView selectPositionAtBoundary:inDirection:fromPoint:completionHandler:]):
(-[WKContentView moveSelectionAtBoundary:inDirection:completionHandler:]):
(-[WKContentView updateSelectionWithExtentPoint:withBoundary:completionHandler:]):

  • UIProcess/ios/WKScrollView.mm:

(-[WKScrollView _updateDelegate]):
(-[WKScrollView dealloc]):

  • UIProcess/ios/forms/WKFormSelectPopover.mm:

(-[WKSelectPopover initWithView:hasGroups:]):

  • UIProcess/mac/WKTextInputWindowController.mm:

(-[WKTextInputPanel dealloc]):
(-[WKTextInputPanel init]):

  • UIProcess/mac/WebColorPickerMac.mm:

(+[WKPopoverColorWell _colorPopoverCreateIfNecessary:]):

  • WebProcess/WebPage/mac/WKAccessibilityWebPageObjectBase.h:
  • WebProcess/WebPage/mac/WKAccessibilityWebPageObjectBase.mm:

(-[WKAccessibilityWebPageObjectBase setRemoteParent:]):

  • WebProcess/WebPage/mac/WKAccessibilityWebPageObjectMac.mm:

(-[WKAccessibilityWebPageObject dealloc]):
(-[WKAccessibilityWebPageObject accessibilityAttributeValue:]):

Source/WebKitLegacy/ios:

  • WebCoreSupport/WebChromeClientIOS.mm:

(WebChromeClientIOS::runOpenPanel):

  • WebView/WebPDFViewIOS.mm:

(-[WebPDFView dealloc]):
(-[WebPDFView setDataSource:]):
(-[WebPDFView _checkPDFTitle]):
(-[WebPDFView title]):

  • WebView/WebPDFViewPlaceholder.mm:

(-[WebPDFViewPlaceholder _updateTitleForDocumentIfAvailable]):

Source/WebKitLegacy/mac:

  • DOM/DOMUIKitExtensions.mm:

(-[DOMNode absoluteQuads]):
(-[DOMHTMLAreaElement absoluteQuadsWithOwner:]):

  • DOM/ExceptionHandlers.mm:

(raiseDOMErrorException):

  • DefaultDelegates/WebDefaultUIDelegate.mm:

(-[WebDefaultUIDelegate webView:runJavaScriptTextInputPanelWithPrompt:defaultText:initiatedByFrame:]):

  • History/WebHistory.mm:

(-[WebHistoryPrivate init]):
(-[WebHistoryPrivate dealloc]):
(-[WebHistoryPrivate removeItemFromDateCaches:]):
(-[WebHistoryPrivate addItemToDateCaches:]):
(-[WebHistoryPrivate visitedURL:withTitle:]):
(-[WebHistoryPrivate addItem:discardDuplicate:]):
(-[WebHistoryPrivate rebuildHistoryByDayIfNeeded:]):
(-[WebHistoryPrivate removeAllItems]):
(-[WebHistoryPrivate orderedLastVisitedDays]):
(-[WebHistoryPrivate loadHistoryGutsFromURL:savedItemsCount:collectDiscardedItemsInto:error:]):
(-[WebHistoryPrivate addVisitedLinksToVisitedLinkStore:]):
(-[WebHistory loadFromURL:error:]):
(-[WebHistory _visitedURL:withTitle:method:wasFailure:]):

  • History/WebHistoryItem.mm:

(-[WebHistoryItem initFromDictionaryRepresentation:]):

  • Misc/WebDownload.mm:

(-[WebDownloadInternal dealloc]):
(-[WebDownloadInternal setRealDelegate:]):
(-[WebDownloadInternal downloadDidBegin:]):
(-[WebDownloadInternal download:didReceiveAuthenticationChallenge:]):
(-[WebDownloadInternal download:didReceiveResponse:]):
(-[WebDownloadInternal download:didReceiveDataOfLength:]):
(-[WebDownloadInternal download:decideDestinationWithSuggestedFilename:]):
(-[WebDownloadInternal download:didCreateDestination:]):
(-[WebDownloadInternal downloadDidFinish:]):
(-[WebDownloadInternal download:didFailWithError:]):

  • Misc/WebNSDataExtras.mm:

(-[NSData _webkit_parseRFC822HeaderFields]):

  • Misc/WebNSPasteboardExtras.mm:

(-[NSPasteboard _web_writeFileWrapperAsRTFDAttachment:]):
(-[NSPasteboard _web_declareAndWriteDragImageForElement:URL:title:archive:source:]):

  • Plugins/Hosted/NetscapePluginHostManager.mm:

(WebKit::NetscapePluginHostManager::spawnPluginHost):

  • Plugins/Hosted/NetscapePluginInstanceProxy.mm:

(WebKit::NetscapePluginInstanceProxy::performRequest):

  • Plugins/WebNetscapePluginStream.mm:

(WebNetscapePluginStream::didReceiveData):

  • Plugins/WebNetscapePluginView.mm:

(-[WebNetscapePluginView pluginView:receivedData:]):
(-[WebNetscapePluginView loadPluginRequest:]):
(-[WebNetscapePluginView loadRequest:inTarget:withNotifyData:sendNotification:]):

  • Plugins/WebPluginController.mm:

(-[WebPluginController pluginView:receivedResponse:]):

  • Plugins/WebPluginDatabase.mm:

(-[WebPluginDatabase refresh]):
(-[WebPluginDatabase _removePlugin:]):
(-[WebPluginDatabase _scanForNewPlugins]):

  • WebCoreSupport/WebChromeClient.mm:

(WebChromeClient::createWindow):
(WebChromeClient::addMessageToConsole):
(WebChromeClient::mouseDidMoveOverElement):
(WebChromeClient::exceededDatabaseQuota):
(WebChromeClient::reachedApplicationCacheOriginQuota):
(WebChromeClient::runOpenPanel):
(WebChromeClient::exitFullScreenForElement):

  • WebCoreSupport/WebEditorClient.mm:

(attributesForAttributedStringConversion):

  • WebCoreSupport/WebFrameLoaderClient.mm:

(WebFrameLoaderClient::forceLayoutForNonHTML):
(WebFrameLoaderClient::dispatchCreatePage):
(WebFrameLoaderClient::committedLoad):
(WebFrameLoaderClient::prepareForDataSourceReplacement):
(WebFrameLoaderClient::createDocumentLoader):
(WebFrameLoaderClient::savePlatformDataToCachedFrame):
(WebFrameLoaderClient::transitionToCommittedForNewPage):
(WebFrameLoaderClient::actionDictionary const):
(WebFrameLoaderClient::createFrame):
(pluginView):
(WebFrameLoaderClient::createPlugin):

  • WebCoreSupport/WebGeolocationClient.mm:

(WebGeolocationClient::requestPermission):
(-[WebGeolocationProviderInitializationListener initializationAllowedWebView:]):

  • WebCoreSupport/WebInspectorClient.mm:

(-[WebInspectorWindowController init]):
(-[WebInspectorWindowController initWithInspectedWebView:isUnderTest:]):
(-[WebInspectorWindowController dealloc]):
(-[WebInspectorWindowController frontendWebView]):
(-[WebInspectorWindowController window]):
(-[WebInspectorWindowController showWindow:]):
(-[WebInspectorWindowController webView:runOpenPanelForFileButtonWithResultListener:allowMultipleFiles:]):

  • WebCoreSupport/WebNotificationClient.mm:

(WebNotificationClient::requestPermission):
(WebNotificationClient::checkPermission):

  • WebView/WebArchive.mm:

(-[WebArchivePrivate dealloc]):
(-[WebArchive initWithMainResource:subresources:subframeArchives:]):
(-[WebArchive mainResource]):
(-[WebArchive subresources]):
(-[WebArchive subframeArchives]):

  • WebView/WebDataSource.mm:

(-[WebDataSource _documentFragmentWithArchive:]):
(-[WebDataSource _makeRepresentation]):

  • WebView/WebFrame.mm:

(-[WebFramePrivate dealloc]):
(-[WebFramePrivate setWebFrameView:]):
(+[WebFrame _createFrameWithPage:frameName:frameView:ownerElement:]):
(+[WebFrame _createMainFrameWithPage:frameName:frameView:]):
(+[WebFrame _createMainFrameWithSimpleHTMLDocumentWithPage:frameView:style:]):
(-[WebFrame getDictationResultRanges:andMetadatas:]):
(-[WebFrame frameView]):

  • WebView/WebFrameInternal.h:
  • WebView/WebFrameView.mm:

(-[WebFrameViewPrivate dealloc]):
(-[WebFrameView _scrollView]):
(-[WebFrameView _install]):
(-[WebFrameView initWithFrame:]):
(-[WebFrameView _setCustomScrollViewClass:]):

  • WebView/WebFullScreenController.mm:

(-[WebFullScreenController init]):

  • WebView/WebHTMLView.mm:

(-[WebHTMLView _updateMouseoverWithEvent:]):

  • WebView/WebNavigationData.mm:

(-[WebNavigationDataPrivate dealloc]):
(-[WebNavigationData initWithURLString:title:originalRequest:response:hasSubstituteData:clientRedirectSource:]):
(-[WebNavigationData url]):
(-[WebNavigationData title]):
(-[WebNavigationData originalRequest]):
(-[WebNavigationData response]):
(-[WebNavigationData clientRedirectSource]):

  • WebView/WebPDFDocumentExtras.mm:

(allScriptsInPDFDocument):

  • WebView/WebPDFRepresentation.mm:

(-[WebPDFRepresentation finishedLoadingWithDataSource:]):

  • WebView/WebPDFView.mm:

(-[WebPDFView menuForEvent:]):
(-[WebPDFView countMatchesForText:inDOMRange:options:limit:markMatches:]):
(-[WebPDFView attributedString]):
(-[WebPDFView selectionImageForcingBlackText:]):
(-[WebPDFView _menuItemsFromPDFKitForEvent:]):
(-[WebPDFView _nextMatchFor:direction:caseSensitive:wrap:fromSelection:startInSelection:]):

  • WebView/WebPolicyDelegate.mm:

(-[WebPolicyDecisionListenerPrivate initWithTarget:action:]):
(-[WebPolicyDecisionListenerPrivate dealloc]):
(-[WebPolicyDecisionListener _usePolicy:]):
(-[WebPolicyDecisionListener _invalidate]):

  • WebView/WebPreferences.mm:

(+[WebPreferences _setIBCreatorID:]):

  • WebView/WebScriptDebugger.mm:

(WebScriptDebugger::sourceParsed):

  • WebView/WebTextCompletionController.mm:

(-[WebTextCompletionController _buildUI]):

  • WebView/WebVideoFullscreenController.mm:

(-[WebVideoFullscreenController init]):

  • WebView/WebView.mm:

(-[WebView _registerDraggedTypes]):
(-[WebView _commonInitializationWithFrameName:groupName:]):
(+[WebView _supportedFileExtensions]):
(-[WebView initSimpleHTMLDocumentWithStyle:frame:preferences:groupName:]):
(-[WebView _downloadURL:]):
(-[WebView _openNewWindowWithRequest:]):
(-[WebView _didStartProvisionalLoadForFrame:]):
(-[WebView caretChanged]):
(-[WebView setBackgroundColor:]):
(+[WebView setMIMETypesShownAsHTML:]):
(-[WebView setPreferences:]):
(-[WebView setPreferencesIdentifier:]):
(-[WebView setCurrentNodeHighlight:]):
(-[WebView stopLoadingAndClear]):
(-[WebView _openFrameInNewWindowFromMenu:]):
(-[WebView _searchWithGoogleFromMenu:]):

  • WebView/WebWindowAnimation.mm:

(-[WebWindowScaleAnimation setSubAnimation:]):

Tools:

  • DumpRenderTree/ios/AccessibilityUIElementIOS.mm:

(AccessibilityUIElement::addNotificationListener):
(AccessibilityUIElement::removeNotificationListener):

  • DumpRenderTree/mac/AccessibilityUIElementMac.mm:

(AccessibilityUIElement::addNotificationListener):
(AccessibilityUIElement::removeNotificationListener):

  • DumpRenderTree/mac/DumpRenderTree.mm:

(createWebViewAndOffscreenWindow):
(destroyWebViewAndOffscreenWindow):
(dumpFrameAsPDF):
(dumpBackForwardListForWebView):

  • DumpRenderTree/mac/DumpRenderTreePasteboard.mm:

(+[DumpRenderTreePasteboard _pasteboardWithName:]):

  • DumpRenderTree/mac/EventSendingController.mm:

(-[EventSendingController mouseDown:withModifiers:]):
(-[EventSendingController mouseUp:withModifiers:]):
(-[EventSendingController mouseMoveToX:Y:]):
(-[EventSendingController keyDown:withModifiers:withLocation:]):
(-[EventSendingController sentTouchEventOfType:]):
(-[EventSendingController touchEnd]):
(-[EventSendingController touchCancel]):

  • DumpRenderTree/mac/ResourceLoadDelegate.mm:

(-[ResourceLoadDelegate webView:resource:willSendRequest:redirectResponse:fromDataSource:]):

  • DumpRenderTree/mac/TestRunnerMac.mm:

(TestRunner::applicationCacheDiskUsageForOrigin):
(TestRunner::clearApplicationCacheForOrigin):
(TestRunner::clearBackForwardList):
(TestRunner::keepWebHistory):
(TestRunner::setDatabaseQuota):
(TestRunner::setMockDeviceOrientation):
(TestRunner::setMockGeolocationPosition):
(-[APITestDelegateIPhone initWithTestRunner:utf8Data:baseURL:]):
(-[APITestDelegateIPhone dealloc]):
(-[APITestDelegateIPhone run]):
(-[APITestDelegateIPhone _cleanUp]):
(TestRunner::apiTestNewWindowDataLoadBaseURL):
(-[SynchronousLoader dealloc]):
(-[SynchronousLoader connection:didReceiveAuthenticationChallenge:]):
(+[SynchronousLoader makeRequest:withUsername:password:]):
(TestRunner::addChromeInputField):

  • DumpRenderTree/mac/UIDelegate.h:
  • DumpRenderTree/mac/UIDelegate.mm:

(-[UIDelegate webView:decidePolicyForGeolocationRequestFromOrigin:frame:listener:]):
(-[UIDelegate timerFired]):
(-[UIDelegate dealloc]):

  • WebKitTestRunner/InjectedBundle/ios/AccessibilityUIElementIOS.mm:

(WTR::AccessibilityUIElement::addNotificationListener):
(WTR::AccessibilityUIElement::removeNotificationListener):

  • WebKitTestRunner/InjectedBundle/mac/AccessibilityUIElementMac.mm:

(WTR::AccessibilityUIElement::addNotificationListener):
(WTR::AccessibilityUIElement::removeNotificationListener):

  • WebKitTestRunner/ios/HIDEventGenerator.mm:

(-[HIDEventGenerator interpolatedEvents:]):

  • WebKitTestRunner/ios/PlatformWebViewIOS.mm:

(WTR::PlatformWebView::PlatformWebView):

  • WebKitTestRunner/mac/PlatformWebViewMac.mm:

(WTR::PlatformWebView::addChromeInputField):

  • WebKitTestRunner/mac/WebKitTestRunnerDraggingInfo.h:
  • WebKitTestRunner/mac/WebKitTestRunnerDraggingInfo.mm:

(-[WebKitTestRunnerDraggingInfo dealloc]):
(-[WebKitTestRunnerDraggingInfo draggedImage]):
(-[WebKitTestRunnerDraggingInfo draggingPasteboard]):
(-[WebKitTestRunnerDraggingInfo draggingSource]):

  • WebKitTestRunner/mac/WebKitTestRunnerPasteboard.mm:

(+[WebKitTestRunnerPasteboard _pasteboardWithName:]):
(-[LocalPasteboard _addTypesWithoutUpdatingChangeCount:owner:]):

10:37 AM Changeset in webkit [272788] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

[ macOS wk2 ] webgpu/whlsl/do-while-loop-break.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=215606

Unreviewed test gardening.

Patch by Robert Jenner <Robert Jenner> on 2021-02-12

  • platform/mac-wk2/TestExpectations: Switch expectation from Failure to ImageOnlyFailure.
10:36 AM Changeset in webkit [272787] by aakash_jain@apple.com
  • 1 edit
    1 delete in trunk/Tools

[build.webkit.org] Delete unused Makefile
https://bugs.webkit.org/show_bug.cgi?id=221721

Reviewed by Jonathan Bedard.

  • CISupport/build-webkit-org/Makefile: Removed.
10:20 AM Changeset in webkit [272786] by commit-queue@webkit.org
  • 18 edits
    4 adds
    1 delete in trunk

GPU process WebGL context toDataURL does not work for non-premultiplied contexts
https://bugs.webkit.org/show_bug.cgi?id=221748

Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2021-02-12
Reviewed by Myles C. Maxfield.

Source/WebKit:

Implement GraphicsContextGL::paintRenderingResultsToImageData(). This
is used for Image.toDataURL() call, and returns something for
WebGL canvases that have non-premultiplied alpha.

No new tests, tested by currently failing WebGL conformance and ad hoc tests like
premultiplyalpha-test.html.
This does not make any failing test pass, as the tests test also premultiplied
case, which needs other currently unimplemented code.

  • GPUProcess/graphics/RemoteGraphicsContextGL.messages.in:
  • GPUProcess/graphics/RemoteGraphicsContextGLFunctionsGenerated.h:

(paintRenderingResultsToImageData):
Generated GPU process side implementation.

  • GPUProcess/graphics/RemoteRenderingBackend.cpp:

(WebKit::RemoteRenderingBackend::getImageData):

  • GPUProcess/graphics/RemoteRenderingBackend.h:
  • GPUProcess/graphics/RemoteRenderingBackend.messages.in:

Change ImageDataReference to RefPtr<ImageData>.

  • Platform/IPC/ImageDataReference.h: Removed.

This implementation is redundant. The messages could accept just
RefPtr<WebCore::ImageData>, which is exactly "reference to
Image Data", i.e. ImageDataReference.

RefPtr<WebCore::ImageData> encoder and decoder already exist.

  • Scripts/webkit/messages.py:
  • Scripts/webkit/messages_unittest.py:
  • Scripts/webkit/tests/Makefile:
  • Scripts/webkit/tests/MessageArgumentDescriptions.cpp:

(IPC::jsValueForArguments):
(IPC::messageArgumentDescriptions):

  • Scripts/webkit/tests/MessageNames.cpp:

(IPC::description):
(IPC::receiverName):
(IPC::isValidMessageName):

  • Scripts/webkit/tests/MessageNames.h:
  • Scripts/webkit/tests/TestWithImageData.messages.in: Added.
  • Scripts/webkit/tests/TestWithImageDataMessageReceiver.cpp: Added.

(WebKit::TestWithImageData::didReceiveMessage):
(WebKit::TestWithImageData::didReceiveSyncMessage):

  • Scripts/webkit/tests/TestWithImageDataMessages.h: Added.

(Messages::TestWithImageData::messageReceiverName):
(Messages::TestWithImageData::SendImageData::name):
(Messages::TestWithImageData::SendImageData::SendImageData):
(Messages::TestWithImageData::SendImageData::arguments const):
(Messages::TestWithImageData::ReceiveImageData::name):
(Messages::TestWithImageData::ReceiveImageData::arguments const):

  • Scripts/webkit/tests/TestWithImageDataMessagesReplies.h: Added.

Test using RefPtr<WebCore::ImageData> in messages.in.

  • WebProcess/GPU/graphics/RemoteGraphicsContextGLProxy.cpp:
  • WebProcess/GPU/graphics/RemoteGraphicsContextGLProxy.h:
  • WebProcess/GPU/graphics/RemoteGraphicsContextGLProxyFunctionsGenerated.cpp:

(WebKit::RemoteGraphicsContextGLProxy::paintRenderingResultsToImageData):

  • WebProcess/GPU/graphics/RemoteRenderingBackendProxy.cpp:

(WebKit::RemoteRenderingBackendProxy::getImageData):
Generated Web process side implementation.

Tools:

Add support for generating IPC implementation for functions with RefPtr<>.

  • Scripts/generate-gpup-webgl:
10:06 AM Changeset in webkit [272785] by aakash_jain@apple.com
  • 3 edits in trunk/Tools

[build.webkit.org] commit identifier should show main instead of trunk
https://bugs.webkit.org/show_bug.cgi?id=221798

Reviewed by Jonathan Bedard.

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

(ShowIdentifier.init): Increased timeout to 10 minutes (since first run might take a while).
(ShowIdentifier.evaluateCommand):

  • CISupport/build-webkit-org/steps_unittest.py: Updated unit-tests.
9:50 AM Changeset in webkit [272784] by achristensen@apple.com
  • 28 edits in trunk/Source/WebKit

Stop using GenericCallback from WebPageProxy
https://bugs.webkit.org/show_bug.cgi?id=221653

Reviewed by Chris Dumez.

There are still two uses in the DrawingAreaProxy implementations, but those are quite tangled and deserve their own patch.

  • UIProcess/API/APIAttachment.cpp:

(API::Attachment::updateAttributes):

  • UIProcess/API/APIAttachment.h:
  • UIProcess/API/C/WKPage.cpp:

(CompletionHandler<void):
(WKPageRenderTreeExternalRepresentation):
(WKPageGetSourceForFrame):
(WKPageGetContentsAsString):
(WKPageGetBytecodeProfile):
(WKPageGetSamplingProfilerOutput):
(WTF::Function<void): Deleted.

  • UIProcess/API/Cocoa/APIAttachmentCocoa.mm:

(API::Attachment::updateFromSerializedRepresentation):

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _insertAttachmentWithFileWrapper:contentType:completion:]):
(-[WKWebView _getContentsAsStringWithCompletionHandler:]):
(-[WKWebView _getContentsOfAllFramesAsStringWithCompletionHandler:]):

  • UIProcess/API/Cocoa/_WKAttachment.mm:

(-[_WKAttachment setFileWrapper:contentType:completion:]):

  • UIProcess/Cocoa/WebViewImpl.mm:

(WebKit::WebViewImpl::startSpeaking):

  • UIProcess/GenericCallback.h:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::dispatchActivityStateChange):
(WebKit::WebPageProxy::getRenderTreeExternalRepresentation):
(WebKit::WebPageProxy::getSourceForFrame):
(WebKit::WebPageProxy::getContentsAsString):
(WebKit::WebPageProxy::getBytecodeProfile):
(WebKit::WebPageProxy::getSamplingProfilerOutput):
(WebKit::WebPageProxy::getSelectionOrContentsAsString):
(WebKit::WebPageProxy::didCommitLoadForFrame):
(WebKit::WebPageProxy::didFailLoadForFrame):
(WebKit::WebPageProxy::resetState):
(WebKit::WebPageProxy::installActivityStateChangeCompletionHandler):
(WebKit::WebPageProxy::insertAttachment):
(WebKit::WebPageProxy::updateAttachmentAttributes):
(WebKit::WebPageProxy::didInsertAttachmentWithIdentifier):
(WebKit::WebPageProxy::clearLoadDependentCallbacks): Deleted.
(WebKit::WebPageProxy::voidCallback): Deleted.
(WebKit::WebPageProxy::stringCallback): Deleted.
(WebKit::WebPageProxy::invalidateStringCallback): Deleted.

  • UIProcess/WebPageProxy.h:
  • UIProcess/WebPageProxy.messages.in:
  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView _shareForWebView:]):
(-[WKContentView _defineForWebView:]):
(-[WKContentView accessibilityRetrieveSpeakSelectionContent]):
(-[WKContentView applyAutocorrection:toString:withCompletionHandler:]):

  • UIProcess/ios/WebPageProxyIOS.mm:

(WebKit::WebPageProxy::applyAutocorrection):

  • UIProcess/mac/WKTextFinderClient.mm:

(-[WKTextFinderClient getSelectedText:]):

  • WebProcess/Notifications/NotificationPermissionRequestManager.h:
  • WebProcess/WebCoreSupport/WebNotificationClient.h:
  • WebProcess/WebPage/DrawingArea.h:

(WebKit::DrawingArea::activityStateDidChange):

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

(WebKit::RemoteLayerTreeDrawingArea::activityStateDidChange):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::reinitializeWebPage):
(WebKit::WebPage::setActivityState):
(WebKit::WebPage::getContentsAsString):
(WebKit::WebPage::getRenderTreeExternalRepresentation):
(WebKit::WebPage::getSelectionOrContentsAsString):
(WebKit::WebPage::getSourceForFrame):
(WebKit::WebPage::getBytecodeProfile):
(WebKit::WebPage::getSamplingProfilerOutput):
(WebKit::WebPage::insertAttachment):
(WebKit::WebPage::updateAttachmentAttributes):

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

(WebKit::WebPage::applyAutocorrection):

  • WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.h:
  • WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:

(WebKit::TiledCoreAnimationDrawingArea::handleActivityStateChangeCallbacks):
(WebKit::TiledCoreAnimationDrawingArea::activityStateDidChange):

9:32 AM Changeset in webkit [272783] by mmaxfield@apple.com
  • 2 edits in trunk/Source/WebCore

Fix Windows build after r272772
https://bugs.webkit.org/show_bug.cgi?id=221765

Unreviewed.

No new tests because there is no behavior change.

  • platform/graphics/Font.cpp:
9:17 AM Changeset in webkit [272782] by Jonathan Bedard
  • 6 edits in trunk/Tools

[webkit-patch] Use identifiers when posting to bugzilla
https://bugs.webkit.org/show_bug.cgi?id=221724
<rdar://problem/74209525>

Rubber-stamped by Aakash Jain.

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

(view_identifier_url): Return commits.webkit.org identifier link.

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

(DownloadCommandsTest.mock_svn_remote): Return a mock context for a remote Svn instance.

  • Scripts/webkitpy/tool/commands/upload_unittest.py:
  • Scripts/webkitpy/tool/comments.py:

(bug_comment_from_svn_revision): Query remote Subversion server to construct identifier link.

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

(CloseBugForLandDiffTest.test_empty_state): Mock context for a remote Svn instance.

  • Scripts/webkitpy/tool/steps/preparechangelogforrevert_unittest.py:
4:05 AM Changeset in webkit [272781] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[LFC] Update the block box/container list
https://bugs.webkit.org/show_bug.cgi?id=221800
<rdar://problem/74178203>

Reviewed by Antti Koivisto.

Add DisplayType::FlowRoot to isBlockContainer/isBlockLevelBox and DisplayType::Grid to isBlockLevelBox.

  • layout/layouttree/LayoutBox.cpp:

(WebCore::Layout::Box::isBlockLevelBox const):
(WebCore::Layout::Box::isBlockContainer const):

3:51 AM Changeset in webkit [272780] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[LFC][IFC] LineLayout::enclosingBorderBoxRectFor reports content box size
https://bugs.webkit.org/show_bug.cgi?id=221778

Reviewed by Antti Koivisto.

Before 272724, inline boxes included their paddings and borders in the content box geometry.
Now we can just simply return the border box rect.

  • layout/integration/LayoutIntegrationLineLayout.cpp:

(WebCore::LayoutIntegration::LineLayout::enclosingBorderBoxRectFor const):

3:29 AM Changeset in webkit [272779] by svillar@igalia.com
  • 3 edits
    2 adds in trunk

Crash in InsertTextCommand::doApply
https://bugs.webkit.org/show_bug.cgi?id=213514

Reviewed by Ryosuke Niwa.

Source/WebCore:

The InsertTextCommand might delete the current selection before inserting the text. In that case and when
the selection was ending inside an empty row of a table the code was calling CompositeEditCommand::removeNode()
directly to delete the empty row. That method however does not properly update the m_endingPosition of
the CompositeEditCommand leaving the current selection in an inconsistent state. Replaced that call by
removeNodeUpdatingStates() which ends up calling removeNode() but only after updating the selection state.

Test: editing/deleting/insert-in-orphaned-selection-crash.html

  • editing/DeleteSelectionCommand.cpp:

(WebCore::DeleteSelectionCommand::removePreviouslySelectedEmptyTableRows): Replaced
CompositeEditCommand::removeNode() by removeNodeUpdatingStates().

LayoutTests:

  • editing/deleting/insert-in-orphaned-selection-crash-expected.txt: Added.
  • editing/deleting/insert-in-orphaned-selection-crash.html: Added.
2:54 AM Changeset in webkit [272778] by youenn@apple.com
  • 18 edits in trunk

Make RemoteRealtimeVideoSource a RealtimeVideoCaptureSource
https://bugs.webkit.org/show_bug.cgi?id=221747

Reviewed by Eric Carlson.

Source/WebCore:

Introduce isVideoSource to be able to get presets data from RealtimeVideoSource.
Expose presets in RealtimeVideoSource for GPUProcess to send it to WebProcess.
Remove no longer used m_defaultSize member.
Update RealtimeVideoSource to set some of its members when its capture source is ready,
including settings, size, frame rate and name.
Covered by existing tests.

  • platform/mediastream/RealtimeMediaSource.h:
  • platform/mediastream/RealtimeVideoCaptureSource.cpp:

(WebCore::RealtimeVideoCaptureSource::prepareToProduceData):
(WebCore::RealtimeVideoCaptureSource::presetsData):

  • platform/mediastream/RealtimeVideoCaptureSource.h:
  • platform/mediastream/RealtimeVideoSource.cpp:

(WebCore::RealtimeVideoSource::whenReady):

  • platform/mediastream/RealtimeVideoSource.h:

Source/WebKit:

All capture video sources are now deriving from RealtimeVideoCaptureSource.
This allows to expose a RealtimeVideoSource that can handle changes of resolution and frame rate in software as needed.
This also allows to better align audio and video sources on iOS: there will only be one running source at any given time.
Covered by existing tests.

  • Scripts/webkit/messages.py:
  • UIProcess/Cocoa/UserMediaCaptureManagerProxy.cpp:

(WebKit::UserMediaCaptureManagerProxy::capabilities):
(WebKit::UserMediaCaptureManagerProxy::generatePresets):

  • UIProcess/Cocoa/UserMediaCaptureManagerProxy.h:
  • UIProcess/Cocoa/UserMediaCaptureManagerProxy.messages.in:
  • WebProcess/cocoa/RemoteRealtimeAudioSource.cpp:

(WebKit::RemoteRealtimeAudioSource::createRemoteMediaSource):
(WebKit::RemoteRealtimeAudioSource::setAsReady):

  • WebProcess/cocoa/RemoteRealtimeVideoSource.cpp:

(WebKit::RemoteRealtimeVideoSource::create):
(WebKit::RemoteRealtimeVideoSource::RemoteRealtimeVideoSource):
(WebKit::RemoteRealtimeVideoSource::createRemoteMediaSource):
(WebKit::RemoteRealtimeVideoSource::setAsReady):
(WebKit::RemoteRealtimeVideoSource::remoteVideoSampleAvailable):
(WebKit::RemoteRealtimeVideoSource::setFrameRateWithPreset):
(WebKit::RemoteRealtimeVideoSource::prefersPreset):
(WebKit::RemoteRealtimeVideoSource::gpuProcessConnectionDidClose):

  • WebProcess/cocoa/RemoteRealtimeVideoSource.h:
  • WebProcess/cocoa/UserMediaCaptureManager.cpp:

(WebKit::UserMediaCaptureManager::VideoFactory::createVideoCaptureSource):
(WebKit::UserMediaCaptureManager::DisplayFactory::createDisplayCaptureSource):

LayoutTests:

  • fast/mediastream/resources/getDisplayMedia-utils.js:

(async waitForHeight):
(async waitForWidth):
Updated to fail instead of timing out.

  • fast/mediastream/resources/getUserMedia-helper.js:

Removing no longer needed code that made it impossible to run the tests in browser.

1:38 AM Changeset in webkit [272777] by rniwa@webkit.org
  • 2 edits in trunk/Source/WebCore

Nullopt crash in DOMSelection::getRangeAt
https://bugs.webkit.org/show_bug.cgi?id=221786

Reviewed by Darin Adler.

No new tests since we don't have any way to reproduce this crash.

  • page/DOMSelection.cpp:

(WebCore::DOMSelection::getRangeAt): Added a nullopt check with an assertion.

1:10 AM Changeset in webkit [272776] by Said Abou-Hallawa
  • 26 edits in trunk

Source/WebCore:
Make Pattern hold a NativeImage instead of an Image
https://bugs.webkit.org/show_bug.cgi?id=221637

Reviewed by Simon Fraser.

This will make caching the Pattern data in the GPUP straightforward since
all we need is to cache the NativeImage and encode the pattern data.

  • html/canvas/CanvasPattern.cpp:

(WebCore::CanvasPattern::create):
(WebCore::CanvasPattern::CanvasPattern):

  • html/canvas/CanvasPattern.h:
  • html/canvas/CanvasRenderingContext2DBase.cpp:

(WebCore::CanvasRenderingContext2DBase::createPattern):

  • inspector/InspectorCanvas.cpp:

(WebCore::InspectorCanvas::buildArrayForCanvasPattern):
Extract a NativeImage of an Image. The platform Patterns deal with
NativeImages only.

  • platform/graphics/Image.h:

Remove ImageHandle.

  • platform/graphics/Pattern.cpp:

(WebCore::Pattern::create):
(WebCore::Pattern::Pattern):
(WebCore::Pattern::setPatternSpaceTransform):

  • platform/graphics/Pattern.h:

(WebCore::Pattern::Parameters::encode const):
(WebCore::Pattern::Parameters::decode):
(WebCore::Pattern::encode const): Deleted.
(WebCore::Pattern::decode): Deleted.
Make the new struct 'Parameters' holds all the members other than the
NativeImage. This struct + RenderingResourceIdentifer of the NativeImage
will be recorded for the strokePattern and the fillPattern.

  • platform/graphics/cairo/CairoOperations.cpp:

(WebCore::Cairo::FillSource::FillSource):

  • platform/graphics/cairo/PatternCairo.cpp:

(WebCore::Pattern::createPlatformPattern const):

  • platform/graphics/cg/PatternCG.cpp:

(WebCore::Pattern::createPlatformPattern const):
The platform Pattern deals only with NativeImages.

  • platform/graphics/displaylists/DisplayList.cpp:

(WebCore::DisplayList::DisplayList::shouldDumpForFlags):
SetState::state() is renamed to SetStateItem::stateChange() since it
returns GraphicsContextStateChange.

  • platform/graphics/displaylists/DisplayListItemBuffer.cpp:

(WebCore::DisplayList::ItemHandle::apply):
SetState::apply() has to be a special case.

  • platform/graphics/displaylists/DisplayListItems.cpp:

(WebCore::DisplayList::SetState::SetState):
(WebCore::DisplayList::SetState::apply):
(WebCore::DisplayList::operator<<):
(WebCore::DisplayList::SetState::apply const): Deleted.
Add a new constructor for SetState to be used by the decoder. All the
members of GraphicsContextStateChange will be copied but strokePattern
and fillPattern will be created only when their NativeImages are resolved
in the SetState::apply().

  • platform/graphics/displaylists/DisplayListItems.h:

(WebCore::DisplayList::SetState::stateChange const):
(WebCore::DisplayList::SetState::strokePatternParameters const):
(WebCore::DisplayList::SetState::fillPatternParameters const):
(WebCore::DisplayList::SetState::strokePatternImageIdentifier const):
(WebCore::DisplayList::SetState::fillPatternImageIdentifier const):
(WebCore::DisplayList::SetState::encode const):
(WebCore::DisplayList::SetState::decode):
(WebCore::DisplayList::SetState::state const): Deleted.
Specialize the encode and the decoding of strokePattern and fillPattern
by using the Pattern::Parameters and the RenderingResourceIdentifer of
the NativeImage.

  • platform/graphics/displaylists/DisplayListRecorder.cpp:

(WebCore::DisplayList::Recorder::cacheNativeImage):
(WebCore::DisplayList::Recorder::appendStateChangeItem):
(WebCore::DisplayList::Recorder::drawNativeImage):
(WebCore::DisplayList::Recorder::drawPattern):

  • platform/graphics/displaylists/DisplayListRecorder.h:

Cache the NativeImages of strokePattern and fillPattern.

  • platform/graphics/displaylists/DisplayListReplayer.cpp:

(WebCore::DisplayList::applySetStateItem):
(WebCore::DisplayList::Replayer::applyItem):
Resolve the NativeImages of strokePattern and fillPattern from the cached
NativeImages.

  • platform/graphics/filters/FETile.cpp:

(WebCore::FETile::platformApplySoftware):

  • rendering/RenderLayerBacking.cpp:

(WebCore::patternForDescription):

  • rendering/svg/RenderSVGResourcePattern.cpp:

(WebCore::RenderSVGResourcePattern::buildPattern):
Patterns should be created with NativeImages.

Source/WebKit:
Make Pattern hold a NativeImage instead of an Image
https://bugs.webkit.org/show_bug.cgi?id=221637

Reviewed by Simon Fraser.

  • Shared/WebCoreArgumentCoders.cpp:

(IPC::ArgumentCoder<ImageHandle>::encode): Deleted.
(IPC::ArgumentCoder<ImageHandle>::decode): Deleted.

  • Shared/WebCoreArgumentCoders.h:

Delete the encoding and decoding of Image since it is not used anymore

LayoutTests:
[GPU Process] Implement SetState DisplayList item
https://bugs.webkit.org/show_bug.cgi?id=219468

Reviewed by Simon Fraser.

  • gpu-process/TestExpectations:

Unmark tests that are no longer crash.

12:42 AM Changeset in webkit [272775] by Adrian Perez de Castro
  • 1 copy in releases/WPE WebKit/webkit-2.30.5

WPE WebKit 2.30.5

12:42 AM Changeset in webkit [272774] by Adrian Perez de Castro
  • 4 edits in releases/WebKitGTK/webkit-2.30

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

.:

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

Source/WebKit:

  • wpe/NEWS: Add release notes for 2.30.5.
12:32 AM Changeset in webkit [272773] by Antti Koivisto
  • 7 edits in trunk/Source/WebKit

Increase network layout resource load priority for prioritized loads
https://bugs.webkit.org/show_bug.cgi?id=221751

Reviewed by Geoffrey Garen.

Currently visibility based prioritization only affects resource load scheduler.
We should increase the priority passed to the network layer and so the server too.

  • NetworkProcess/NetworkDataTask.h:

(WebKit::NetworkDataTask::setPriority):

  • NetworkProcess/NetworkLoad.cpp:

(WebKit::NetworkLoad::reprioritizeRequest):

  • NetworkProcess/NetworkLoad.h:
  • NetworkProcess/NetworkLoadScheduler.cpp:

(WebKit::NetworkLoadScheduler::HostContext::shouldDelayLowPriority const):
(WebKit::NetworkLoadScheduler::HostContext::schedule):
(WebKit::NetworkLoadScheduler::HostContext::unschedule):
(WebKit::NetworkLoadScheduler::HostContext::prioritize):

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

(WebKit::NetworkDataTaskCocoa::setPriority):

Feb 11, 2021:

10:53 PM Changeset in webkit [272772] by mmaxfield@apple.com
  • 24 edits in trunk/Source/WebCore

drawGlyphs() should take a Glyph* and an Advance* instead of a GlyphBuffer
https://bugs.webkit.org/show_bug.cgi?id=221765

Reviewed by Simon Fraser.

Making it take a GlyphBuffer is misleading because it only uses the glyph array and the advance array
from inside the GlyphBuffer. A GlyphBuffer also holds a bunch of extra data like glyph origins and an
initial advance. GlyphBuffers internally have a flatten() function which incorporate the origins into
the advances, and this flatten() function needs to have been called before calling drawGlyphs(). Our
code ASSERT()s this, and after the assertion, we shouldn't need the entire GlyphBuffer any more.

No new tests because there is no behavior change.

  • platform/graphics/Font.cpp:
  • platform/graphics/FontCascade.cpp:

(WebCore::FontCascade::drawGlyphBuffer const):

  • platform/graphics/FontCascade.h:
  • platform/graphics/GlyphBufferMembers.h:
  • platform/graphics/GraphicsContext.cpp:

(WebCore::GraphicsContext::drawGlyphs):

  • platform/graphics/GraphicsContext.h:
  • platform/graphics/GraphicsContextImpl.h:
  • platform/graphics/cairo/GraphicsContextImplCairo.cpp:

(WebCore::GraphicsContextImplCairo::drawGlyphs):

  • platform/graphics/cairo/FontCairo.cpp:

(WebCore::FontCascade::drawGlyphs):

  • platform/graphics/cairo/GraphicsContextImplCairo.h:
  • platform/graphics/coretext/FontCascadeCoreText.cpp:

(WebCore::FontCascade::drawGlyphs):

  • platform/graphics/displaylists/DisplayListDrawGlyphsRecorder.h:
  • platform/graphics/displaylists/DisplayListDrawGlyphsRecorderCoreText.cpp:

(WebCore::DisplayList::DrawGlyphsRecorder::drawGlyphs):

  • platform/graphics/displaylists/DisplayListDrawGlyphsRecorderHarfBuzz.cpp:

(WebCore::DisplayList::DrawGlyphsRecorder::drawGlyphs):

  • platform/graphics/displaylists/DisplayListDrawGlyphsRecorderWin.cpp:

(WebCore::DisplayList::DrawGlyphsRecorder::drawGlyphs):

  • platform/graphics/displaylists/DisplayListItems.cpp:

(WebCore::DisplayList::DrawGlyphs::apply const):
(WebCore::DisplayList::DrawGlyphs::generateGlyphBuffer const): Deleted.

  • platform/graphics/displaylists/DisplayListItems.h:
  • platform/graphics/displaylists/DisplayListRecorder.cpp:

(WebCore::DisplayList::Recorder::drawGlyphs):

  • platform/graphics/displaylists/DisplayListRecorder.h:
  • platform/graphics/nicosia/cairo/NicosiaCairoOperationRecorder.cpp:

(Nicosia::CairoOperationRecorder::drawGlyphs):

  • platform/graphics/nicosia/cairo/NicosiaCairoOperationRecorder.h:
  • rendering/mathml/MathOperator.cpp:

(WebCore::MathOperator::paintGlyph):
(WebCore::MathOperator::paint):

  • rendering/mathml/RenderMathMLToken.cpp:

(WebCore::RenderMathMLToken::paint):

9:43 PM Changeset in webkit [272771] by Manuel Rego Casasnovas
  • 4 edits in trunk

[WPE] event.ctrlKey and other are false in keydown event
https://bugs.webkit.org/show_bug.cgi?id=221760

Reviewed by Adrian Perez de Castro.

Source/WebKit:

This is the same issue that was fixed for WebKitGTK in r272489.

Test: fast/events/keyboardevent-modifier.html

  • Shared/libwpe/WebEventFactory.cpp:

(WebKit::modifiersForEventModifiers):
(WebKit::modifiersForKeyboardEvent):
(WebKit::WebEventFactory::createWebKeyboardEvent):

LayoutTests:

  • platform/wpe/TestExpectations: The test passes now.
9:12 PM Changeset in webkit [272770] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[LFC][Integration] The root box's display type should stay Display::Block
https://bugs.webkit.org/show_bug.cgi?id=221801

Reviewed by Antti Koivisto.

  • layout/integration/LayoutIntegrationBoxTree.cpp:

(WebCore::LayoutIntegration::BoxTree::updateStyle):

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

Unreviewed build fix after r272758; include missing change to RuntimeEnabledFeatures.

  • page/RuntimeEnabledFeatures.h:

(WebCore::RuntimeEnabledFeatures::setOpusDecoderEnabled):
(WebCore::RuntimeEnabledFeatures::opusDecoderEnabled const):

6:56 PM Changeset in webkit [272768] by Nikita Vasilyev
  • 6 edits in trunk/Source

Web Inspector: "Show Extended Gridlines" option for grid overlay does not work
https://bugs.webkit.org/show_bug.cgi?id=221775

Reviewed by Devin Rousso.

Replace all mentions of "Gridlines" with "GridLines" (camelcase).

Source/JavaScriptCore:

  • inspector/protocol/DOM.json:

Source/WebCore:

  • inspector/InspectorOverlay.h:
  • inspector/agents/InspectorDOMAgent.cpp:

(WebCore::InspectorDOMAgent::showGridOverlay):

  • inspector/agents/InspectorDOMAgent.h:
6:19 PM Changeset in webkit [272767] by commit-queue@webkit.org
  • 6 edits in trunk

REGRESSION(r272293) WebGL 1.0.2 test expectations say HTTPS
https://bugs.webkit.org/show_bug.cgi?id=221774
<rdar://problem/74149867>

Patch by Alex Christensen <achristensen@webkit.org> on 2021-02-11
Reviewed by Geoff Garen.

Source/WebCore:

www.opengl.org is in the list of hosts that support HTTPS, which affected our test expectations.
Since we need a domain to test with anyways for bug 221591, we may as well use this one.

  • contentextensions/ContentExtensionsBackend.cpp:

(WebCore::ContentExtensions::makeSecureIfNecessary):

LayoutTests:

  • http/tests/contentextensions/make-https-expected.txt:
  • http/tests/webgl/1.0.2/origin-clean-conformance-expected.txt:
  • http/tests/webgl/1.0.2/readPixelsBadArgs-expected.txt:
6:14 PM Changeset in webkit [272766] by mark.lam@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

CodeBlock::propagateTransitions() should also handle OpSetPrivateBrand's LLInt IC.
https://bugs.webkit.org/show_bug.cgi?id=221787

Reviewed by Yusuke Suzuki.

  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::propagateTransitions):

6:08 PM Changeset in webkit [272765] by achristensen@apple.com
  • 2 edits in trunk/Tools

Make WebKitLegacy.CrossPartitionFileSchemeAccess stop timing out on EWS bots
https://bugs.webkit.org/show_bug.cgi?id=206956

  • TestWebKitAPI/Tests/mac/CrossPartitionFileSchemeAccess.mm:

This test times out sometimes, but only on bots. Let's kick the can down the road.

6:03 PM Changeset in webkit [272764] by achristensen@apple.com
  • 18 edits
    4 deletes in trunk

Unreviewed, reverting r272603.

Broke test, has room for improvement

Reverted changeset:

"Synthesize range responses if needed in WebCoreNSURLSession"
https://bugs.webkit.org/show_bug.cgi?id=221072
https://trac.webkit.org/changeset/272603

5:56 PM Changeset in webkit [272763] by don.olmstead@sony.com
  • 2 edits in trunk/Tools

[Python-3] Update pylint version
https://bugs.webkit.org/show_bug.cgi?id=221785

Reviewed by Jonathan Bedard.

Update pylint on Python 3 to version 2.6.0 which supports >=3.5.

Update pylint on Python 2.7 to the last 0.x version, 0.28.0. The logilab packages are
specific to this version only so they are moved into the block.

  • Scripts/webkitpy/init.py:
5:24 PM Changeset in webkit [272762] by Jonathan Bedard
  • 4 edits
    1 add in trunk

Tools:
[run-webkit-tests] Update PHP module configuration
https://bugs.webkit.org/show_bug.cgi?id=221776
<rdar://problem/74248860>

Reviewed by Alexey Proskuryakov.

  • Scripts/webkitpy/layout_tests/servers/apache_http_server.py:

(LayoutTestApacheHttpd.init): Optionally exclude PHP init directory.

  • Scripts/webkitpy/port/base.py:

(Port._darwin_php_version): Add -x version.

LayoutTests:

[run-webkit-tests] Update PHP module configuration

https://bugs.webkit.org/show_bug.cgi?id=221776
<rdar://problem/74248860>

Reviewed by Alexey Proskuryakov.

  • http/conf/apache2.4-x-httpd.conf: Added.
5:18 PM Changeset in webkit [272761] by Lauro Moura
  • 5 edits in trunk/Tools

[WPE] Fix WPEQt tests after r272707
https://bugs.webkit.org/show_bug.cgi?id=220681

Reviewed by Carlos Garcia Campos.

Setting the title became async, so we must wait for it to be
processed.

Same patch as r271578, reapplying after original change was reapplied
in r272707.

  • TestWebKitAPI/Tests/WPEQt/TestLoad.cpp:

(TestLoad::main):

  • TestWebKitAPI/Tests/WPEQt/TestLoadHtml.cpp:

(TestLoadHtml::main):

  • TestWebKitAPI/Tests/WPEQt/TestLoadRequest.cpp:

(TestLoadRequest::main):

  • TestWebKitAPI/Tests/WPEQt/TestRunJavaScript.cpp:

(TestRunJavaScript::main):

4:48 PM Changeset in webkit [272760] by Chris Dumez
  • 10 edits in trunk/Source

Review usage of adoptNS()
https://bugs.webkit.org/show_bug.cgi?id=221779

Reviewed by Alex Christensen.

Review usage of adoptNS():

  1. Make sure we call adoptNS() as soon as we allocate the object instead of doing it later on, as this is less error-prone
  2. Fix cases where we called adoptNS() but really should have retained instead of adopting

Source/WebCore:

  • platform/graphics/ca/cocoa/PlatformCAFiltersCocoa.mm:

(WebCore::PlatformCAFilters::filterValueForOperation):

  • platform/graphics/ca/cocoa/PlatformCALayerCocoa.mm:

(WebCore::PlatformCALayerCocoa::addAnimationForKey):

  • platform/mediarecorder/cocoa/AudioSampleBufferCompressor.mm:

(WebCore::AudioSampleBufferCompressor::gradualDecoderRefreshCount):

  • platform/network/cocoa/ResourceRequestCocoa.mm:

(WebCore::ResourceRequest::doUpdatePlatformRequest):
(WebCore::ResourceRequest::doUpdatePlatformHTTPBody):

  • platform/text/cocoa/LocaleCocoa.mm:

(WebCore::createDateTimeFormatter):

  • testing/Internals.mm:

(WebCore::Internals::encodedPreferenceValue):

Source/WebKit:

  • UIProcess/RemoteLayerTree/RemoteLayerTreeHost.mm:

(WebKit::RemoteLayerTreeHost::makeNode):

  • UIProcess/RemoteLayerTree/ios/RemoteLayerTreeHostIOS.mm:

(WebKit::RemoteLayerTreeHost::makeNode):

4:39 PM Changeset in webkit [272759] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[LFC][Integration] Add scrollable overflow support
https://bugs.webkit.org/show_bug.cgi?id=221777

Reviewed by Simon Fraser.

Normally inline level boxes stretch the line box with their margin box. However inline boxes
behave differently. They stretch the line box with their layout bounds (->glyph sizes)
and they contribute to scrollable overflow with their border boxes (note that vertical margin is ignored on inline boxes).
e.g <div><span style="padding: 100px">text</span></div>
the line will not be stretched to include the 200px vertical padding, but instead the padding is added to the scrollable overflow area.
(see fast/inline/inline-content-with-padding-left-right.html)

  • layout/integration/LayoutIntegrationInlineContentBuilder.cpp:

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

4:08 PM Changeset in webkit [272758] by jer.noble@apple.com
  • 13 edits in trunk/Source

[Mac] Add Experimental Opus Codec support
https://bugs.webkit.org/show_bug.cgi?id=221745

Reviewed by Eric Carlson.

Source/ThirdParty/libwebrtc:

Copy libopus headers into the libwebrtc header directory.

  • libwebrtc.xcodeproj/project.pbxproj:

Source/WebCore:

Add support for the Opus Codec in a WebM container by parsing the Opus private
codec data into a CoreAudio-specific magic cookie, and using that cookie to
initialize an AudioFormatDescription necessary to instantiate the CoreAudio
Opus decoder.

This magic cookie requires information both from the private codec data, but
also requires information parsed directly from the stream itself; update the
createOpusAudioFormatDescription() to take frame data as well as cookie data.

  • platform/audio/PlatformMediaSessionManager.cpp:

(WebCore::PlatformMediaSessionManager::opusDecoderEnabled):
(WebCore::PlatformMediaSessionManager::setOpusDecoderEnabled):

  • platform/audio/PlatformMediaSessionManager.h:
  • platform/graphics/cocoa/SourceBufferParserWebM.cpp:

(WebCore::SourceBufferParserWebM::AudioTrackData::consumeFrameData):

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

(WebCore::createAudioFormatDescriptionForFormat):
(WebCore::opusConfigToFrameDuration):
(WebCore::opusConfigToBandwidth):
(WebCore::cookieFromOpusCodecPrivate):
(WebCore::isOpusDecoderAvailable):
(WebCore::createOpusAudioFormatDescription):
(WebCore::createVorbisAudioFormatDescription):

Source/WebKit:

  • WebProcess/cocoa/WebProcessCocoa.mm:

(WebKit::WebProcess::platformInitializeWebProcess):

Source/WTF:

Add a new experimental feature setting, disabled by default, controlling whether to
enable parsing of Opus tracks from WebM files.

  • Scripts/Preferences/WebPreferencesExperimental.yaml:
  • wtf/PlatformEnableCocoa.h:
3:57 PM Changeset in webkit [272757] by Ruben Turcios
  • 1 copy in tags/Safari-612.1.3.1

Tag Safari-612.1.3.1.

3:43 PM Changeset in webkit [272756] by Ruben Turcios
  • 8 edits in branches/safari-612.1.3-branch/Source

Versioning.

WebKit-7612.1.3.1

3:30 PM Changeset in webkit [272755] by Said Abou-Hallawa
  • 10 edits in trunk

Unreviewed, reverting r270578.
https://bugs.webkit.org/show_bug.cgi?id=221110

Caused incorrect image layout inside a flexbox container.

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-row-013-expected.txt:
  • web-platform-tests/css/css-flexbox/image-as-flexitem-size-003-expected.txt:
  • web-platform-tests/css/css-flexbox/image-as-flexitem-size-003v-expected.txt:
  • web-platform-tests/css/css-flexbox/image-as-flexitem-size-004-expected.txt:
  • web-platform-tests/css/css-flexbox/image-as-flexitem-size-004v-expected.txt:

Source/WebCore:

  • rendering/RenderFlexibleBox.cpp:

(WebCore::RenderFlexibleBox::computeMainSizeFromAspectRatioUsing const):
(WebCore::RenderFlexibleBox::childCrossSizeIsDefinite const):

LayoutTests:

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

Remove unused WebKit::LocalStorageDatabaseTracker::deleteAllDatabases()
<https://webkit.org/b/221734>
<rdar://problem/74215959>

Reviewed by Alexey Proskuryakov.

  • NetworkProcess/WebStorage/LocalStorageDatabaseTracker.cpp:

(WebKit::LocalStorageDatabaseTracker::deleteAllDatabases): Delete.

  • NetworkProcess/WebStorage/LocalStorageDatabaseTracker.h:

(WebKit::LocalStorageDatabaseTracker::deleteAllDatabases): Delete.

  • Remove this method since it's not used anywhere. This fixes a missing symbol linker error for WebCore::SQLiteFileSystem::deleteEmptyDatabaseDirectory() when building WebKit.framework with dead code stripping turned off since that method was not exported from WebCore.framework.
2:25 PM Changeset in webkit [272753] by Aditya Keerthi
  • 5 edits
    2 adds in trunk

[iOS][FCR] Add new picker for <select multiple> elements
https://bugs.webkit.org/show_bug.cgi?id=221636
<rdar://problem/72399337>

Reviewed by Wenson Hsieh.

Source/WebKit:

Test: fast/forms/ios/form-control-refresh/select/select-multiple-picker.html

  • UIProcess/ios/forms/WKFormSelectControl.mm:

(-[WKFormSelectControl initWithView:]):

  • UIProcess/ios/forms/WKFormSelectPicker.h:
  • UIProcess/ios/forms/WKFormSelectPicker.mm:

(-[WKSelectPickerTableViewController initWithView:]):

The new picker is a table view with style UITableStyleInsetGrouped.

(-[WKSelectPickerTableViewController viewWillAppear:]):

Enable/disable the next/previous accessory buttons accordingly.

(-[WKSelectPickerTableViewController numberOfRowsInGroup:]):
(-[WKSelectPickerTableViewController numberOfSectionsInTableView:]):

There will always be at least one section, to display the empty message.
Adding groups will add more sections to the table view.

(-[WKSelectPickerTableViewController tableView:numberOfRowsInSection:]):
(-[WKSelectPickerTableViewController tableView:heightForHeaderInSection:]):

The header for the first section is an inset matching table view inset.

(-[WKSelectPickerTableViewController tableView:heightForFooterInSection:]):

An empty first section should not have a footer if there are more sections
after it. This can occur when the first option belongs to a group.

(-[WKSelectPickerTableViewController tableView:titleForHeaderInSection:]):
(-[WKSelectPickerTableViewController tableView:viewForFooterInSection:]):

Return nil so that the footer height is obeyed.

(-[WKSelectPickerTableViewController tableView:viewForHeaderInSection:]):

The header view displays the group name along with a button to collapse
the section.

(-[WKSelectPickerTableViewController collapseSection:]):

Collapsing sections is implemented by removing the corresponding rows
from the data source. The button is animated by changing its transform.

(-[WKSelectPickerTableViewController findItemIndexAt:]):
(-[WKSelectPickerTableViewController optionItemAtIndexPath:]):
(-[WKSelectPickerTableViewController tableView:cellForRowAtIndexPath:]):
(-[WKSelectPickerTableViewController tableView:didSelectRowAtIndexPath:]):
(-[WKSelectPickerTableViewController next:]):
(-[WKSelectPickerTableViewController previous:]):
(-[WKSelectPickerTableViewController close:]):
(-[WKSelectMultiplePicker initWithView:]):
(-[WKSelectMultiplePicker configurePresentation]):

Display the picker as a half-sheet (that can be dragged up into a
fullscreen view) on iPhones, and as a popover on iPads.

(-[WKSelectMultiplePicker controlView]):
(-[WKSelectMultiplePicker controlBeginEditing]):
(-[WKSelectMultiplePicker controlEndEditing]):
(-[WKSelectMultiplePicker presentationControllerDidDismiss:]):
(-[WKSelectMultiplePicker _indexPathForRow:]):
(-[WKSelectMultiplePicker selectRow:inComponent:extendingSelection:]):

Added testing hook to support layout testing.

LayoutTests:

Added a test which selects options using the new multi-select picker.
Grouped, ungrouped, and disabled options are all tested.

  • fast/forms/ios/form-control-refresh/select/select-multiple-picker-expected.txt: Added.
  • fast/forms/ios/form-control-refresh/select/select-multiple-picker.html: Added.
2:24 PM Changeset in webkit [272752] by commit-queue@webkit.org
  • 4 edits in trunk/Source/WTF

Reduce string copies when converting from NSString/CFStringRef to WTF::String
https://bugs.webkit.org/show_bug.cgi?id=221766

Patch by Alex Christensen <achristensen@webkit.org> on 2021-02-11
Reviewed by Geoff Garen.

This reduces the string copies from two to one which should speed up many things.
The cost is that for non-Latin1-encodable strings of length less than 1024, we now do an allocation
and a reallocation, whereas before we were doing just one allocation. I think even in this case, though,
the cost of a reallocation should be comparable to the cost of doing a double string copy,
and the benefit of reducing a string copy everywhere is compelling.

I also reduced duplicate code by combining the CF and NS implementations.

  • wtf/text/WTFString.h:
  • wtf/text/cf/StringCF.cpp:

(WTF::String::String):

  • wtf/text/cocoa/StringCocoa.mm:

(WTF::String::String): Deleted.

2:22 PM Changeset in webkit [272751] by Jonathan Bedard
  • 7 edits in trunk/Tools

[webkitpy] Use commits.webkit.org instead of trac
https://bugs.webkit.org/show_bug.cgi?id=221764
<rdar://problem/74242815>

Reviewed by Aakash Jain.

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

(view_revision_url):

  • Scripts/webkitpy/tool/commands/download_unittest.py:
  • Scripts/webkitpy/tool/commands/upload_unittest.py:
  • Scripts/webkitpy/tool/steps/closebugforlanddiff_unittest.py:

(CloseBugForLandDiffTest.test_empty_state):

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

(CommitTest._test_check_test_expectations):

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

(UpdateChangeLogsForRevertTest):

2:05 PM Changeset in webkit [272750] by Chris Dumez
  • 5 edits in trunk

[GPUP] <audio> won't load when URL ends with .php causing some tests to time out
https://bugs.webkit.org/show_bug.cgi?id=221695

Reviewed by Eric Carlson.

Source/WebCore:

No new tests, covered by unskipped layout tests.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::mediaPlayerEngineUpdated):
(WebCore::HTMLMediaElement::mediaPlayerDidInitializeMediaEngine):
We were calling HTMLMediaElement::audioSourceProvider() in mediaPlayerEngineUpdated() which
happens right after we've constructed the MediaPlayerPrivate but before we've called
load() on the MediaPlayerPrivate. The issue was that calling audioSourceProvider() would
initialize the AudioSourceProvider and end up sending the RemoteMediaPlayerProxy::CreateAudioSourceProvider
IPC to the GPUProcess. RemoteMediaPlayerProxy::createAudioSourceProvider() would return early
because m_player->audioSourceProvider() returns null. The reason m_player->audioSourceProvider()
returns null is because it's MediaPlayerPrivate is still a NullMediaPlayerPrivate, because
MediaPlayer::load() has not been called in the GPUProcess yet. For this reason, I moved the
audioSourceProvider() initialization from mediaPlayerEngineUpdated() to
mediaPlayerDidInitializeMediaEngine(). mediaPlayerDidInitializeMediaEngine() happens right
after we've called MediaPlayerPrivate::load() which will end up calling MediaPlayer::load()
in the GPUProcess.

  • platform/graphics/MediaPlayer.cpp:

(WebCore::MediaPlayer::loadWithNextMediaEngine):
Pass an empty ContentType to MediaPlayerPrivate::load() when we did not have a content type
but guessed one based on the extension. This ends up getting passed to the MediaPlayer
in the GPUProcess and it is important it knows it does not have a content type so that
it can guess one from the extension and try the next media engine if it cannot find one.

LayoutTests:

Unskip tests that are no longer timing out.

  • gpu-process/TestExpectations:
1:57 PM Changeset in webkit [272749] by Aditya Keerthi
  • 9 edits
    4 adds in trunk

[iOS] Some checkboxes and radio buttons are clipped on top
https://bugs.webkit.org/show_bug.cgi?id=221736
<rdar://problem/73956812>

Reviewed by Simon Fraser.

Source/WebCore:

The clipping occurs due to integral rounding of the paint rect in
both RenderBox::paintBoxDecorations, as well as using the integral
rect in RenderTheme::paint. To fix, use FloatRect and the device
pixel snapped rect when painting these elements.

Tests: fast/forms/ios/form-control-refresh/checkbox/subpixel-clipping.html

fast/forms/ios/form-control-refresh/radio/subpixel-clipping.html

  • rendering/RenderBox.cpp:

(WebCore::RenderBox::paintBoxDecorations):

Moved into RenderTheme to avoid duplication.

  • rendering/RenderElement.cpp:

(WebCore::RenderElement::paintOutline):

Moved into RenderTheme to avoid duplication.

  • rendering/RenderTheme.cpp:

(WebCore::RenderTheme::paint):

Use the device pixel snapped rect when painting checkboxes and radio
buttons.

  • rendering/RenderTheme.h:

(WebCore::RenderTheme::adjustedPaintRect):

On most platforms, no adjustment is performed.

(WebCore::RenderTheme::paintCheckbox):
(WebCore::RenderTheme::paintRadio):

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

(WebCore::RenderThemeIOS::adjustedPaintRect):

On iOS, radio buttons and checkboxes always have a square painting
rect. Updated to use FloatRect, rather than IntRect, to avoid
clipping.

(WebCore::RenderThemeIOS::paintCheckbox):
(WebCore::RenderThemeIOS::paintRadio):

  • rendering/RenderThemeWin.h:

LayoutTests:

Added reference mismatch tests to verify that the clipping no longer
occurs. The tests work by drawing an overlay smaller than the actual
size of the checkbox/radio input. If the input is clipped, only the
overlay will be visible, matching the "-expected-mismatch.html".
However, if the input is drawn correctly, the overlay will not cover
the entire input, and a mismatch will occur.

  • fast/forms/ios/form-control-refresh/checkbox/subpixel-clipping-expected-mismatch.html: Added.
  • fast/forms/ios/form-control-refresh/checkbox/subpixel-clipping.html: Added.
  • fast/forms/ios/form-control-refresh/radio/subpixel-clipping-expected-mismatch.html: Added.
  • fast/forms/ios/form-control-refresh/radio/subpixel-clipping.html: Added.
1:49 PM Changeset in webkit [272748] by jer.noble@apple.com
  • 38 edits
    6 copies
    1 add in trunk/Source

[Cocoa][GPUP] Move RemoteCommandListener into the GPU Process
https://bugs.webkit.org/show_bug.cgi?id=221732

Reviewed by Eric Carlson.

Source/WebCore:

Refactor RemoteCommandListener to allow its methods to work over XPC:

  • Rather than having a synchronous client method to query whether seeking is supported, require clients to set seekability explicitly.
  • Change the RemoteCommandArgument from a union to an Optional<double>.
  • Allow clients to query the MediaPlaybackTarget through the session rather than wait for a notification that the playback target changed.

Additionally, add a mini-factory functionality to RemoteCommandListener to allow
clients to specify a different subclass to be created at runtime.

  • Modules/webaudio/AudioContext.h:
  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::didReceiveRemoteControlCommand):

  • html/HTMLMediaElement.h:
  • html/MediaElementSession.cpp:

(WebCore::MediaElementSession::didReceiveRemoteControlCommand):

  • html/MediaElementSession.h:
  • platform/NowPlayingManager.cpp:

(WebCore::NowPlayingManager::didReceiveRemoteControlCommand):
(WebCore::NowPlayingManager::setNowPlayingInfo):
(WebCore::NowPlayingManager::supportsSeeking const): Deleted.

  • platform/NowPlayingManager.h:
  • platform/RemoteCommandListener.cpp:

(WebCore::remoteCommandListenerCreationFunction):
(WebCore::RemoteCommandListener::setCreationFunction):
(WebCore::RemoteCommandListener::resetCreationFunction):
(WebCore::RemoteCommandListener::create):
(WebCore::RemoteCommandListener::RemoteCommandListener):
(WebCore::RemoteCommandListener::setSupportsSeeking):

  • platform/RemoteCommandListener.h:

(WebCore::RemoteCommandListener::RemoteCommandListener): Deleted.
(WebCore::RemoteCommandListener::updateSupportedCommands): Deleted.
(WebCore::RemoteCommandListener::client const): Deleted.

  • platform/audio/PlatformMediaSession.cpp:

(WebCore::PlatformMediaSession::didReceiveRemoteControlCommand):

  • platform/audio/PlatformMediaSession.h:
  • platform/audio/PlatformMediaSessionManager.cpp:

(WebCore::PlatformMediaSessionManager::processDidReceiveRemoteControlCommand):

  • platform/audio/PlatformMediaSessionManager.h:
  • platform/audio/cocoa/MediaSessionManagerCocoa.h:
  • platform/audio/cocoa/MediaSessionManagerCocoa.mm:

(WebCore::MediaSessionManagerCocoa::scheduleSessionStatusUpdate):

  • platform/audio/ios/MediaSessionHelperIOS.h:
  • platform/audio/ios/MediaSessionHelperIOS.mm:

(MediaSessionHelperiOS::activeVideoRouteDidChange):

  • platform/audio/ios/MediaSessionManagerIOS.mm:

(WebCore::MediaSessionManageriOS::sessionWillBeginPlayback):

  • platform/ios/RemoteCommandListenerIOS.h:
  • platform/ios/RemoteCommandListenerIOS.mm:

(WebCore::RemoteCommandListenerIOS::create):
(WebCore::RemoteCommandListenerIOS::RemoteCommandListenerIOS):
(WebCore::RemoteCommandListenerIOS::updateSupportedCommands):
(WebCore::RemoteCommandListener::create): Deleted.

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

(WebCore::RemoteCommandListenerMac::create):
(WebCore::RemoteCommandListenerMac::updateSupportedCommands):
(WebCore::RemoteCommandListenerMac::RemoteCommandListenerMac):
(WebCore::RemoteCommandListener::create): Deleted.

  • testing/Internals.cpp:

(WebCore::Internals::postRemoteControlCommand):

Source/WebKit:

Add a new Remote/Proxy class pair to facilitate RemoteCommandListener being
created in the GPU Process.

  • DerivedSources-input.xcfilelist:
  • DerivedSources-output.xcfilelist:
  • DerivedSources.make:
  • GPUProcess/GPUConnectionToWebProcess.cpp:

(WebKit::GPUConnectionToWebProcess::createRemoteCommandListener):
(WebKit::GPUConnectionToWebProcess::releaseRemoteCommandListener):

  • GPUProcess/GPUConnectionToWebProcess.h:
  • GPUProcess/GPUConnectionToWebProcess.messages.in:
  • GPUProcess/media/RemoteRemoteCommandListenerProxy.cpp:

(WebKit::RemoteRemoteCommandListenerProxy::RemoteRemoteCommandListenerProxy):
(WebKit::RemoteRemoteCommandListenerProxy::didReceiveRemoteControlCommand):
(WebKit::RemoteRemoteCommandListenerProxy::updateSupportedCommands):

  • GPUProcess/media/RemoteRemoteCommandListenerProxy.h:
  • GPUProcess/media/RemoteRemoteCommandListenerProxy.messages.in:
  • Scripts/webkit/messages.py:
  • Sources.txt:
  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/GPU/GPUProcessConnection.cpp:

(WebKit::GPUProcessConnection::didReceiveRemoteCommand):

  • WebProcess/GPU/media/RemoteRemoteCommandListener.cpp: Added.

(WebKit::RemoteRemoteCommandListener::create):
(WebKit::RemoteRemoteCommandListener::RemoteRemoteCommandListener):
(WebKit::RemoteRemoteCommandListener::~RemoteRemoteCommandListener):
(WebKit::RemoteRemoteCommandListener::gpuProcessConnectionDidClose):
(WebKit::RemoteRemoteCommandListener::didReceiveRemoteControlCommand):

  • WebProcess/GPU/media/RemoteRemoteCommandListener.h:
  • WebProcess/GPU/media/RemoteRemoteCommandListener.messages.in:
  • WebProcess/GPU/media/RemoteRemoteCommandListenerIdentifier.h:
  • WebProcess/GPU/media/ios/RemoteMediaSessionHelper.cpp:

(WebKit::RemoteMediaSessionHelper::activeVideoRouteDidChange):

  • WebProcess/GPU/webrtc/MediaRecorderPrivate.cpp:
  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::setUseGPUProcessForMedia):

1:38 PM Changeset in webkit [272747] by Alexey Shvayka
  • 3 edits
    3 adds
    1 delete in trunk

SetIntegrityLevel should call DefineOwnProperty with partial descriptor
https://bugs.webkit.org/show_bug.cgi?id=221497

Reviewed by Yusuke Suzuki.

JSTests:

  • stress/arguments-define-property-throws-out-of-memory.js: Added.
  • stress/freeze-invokes-out-of-memory.js: Removed.
  • stress/object-freeze-with-arguments-no-oom-error.js: Added.
  • stress/object-freeze-with-proxy-defineProperty.js: Added.

Source/JavaScriptCore:

This patch prevents GetOwnProperty result descriptor from being reused for
DefineOwnProperty. Instead, partial descriptor with only Configurable
and (conditionally) Writable fields is passed, which is observable by
ProxyObject's "defineProperty" trap (and possibly any other opaque object).

Also, replaces isDataDescriptor() check with negated isAccessorDescriptor()
as per spec [1], which is equivalent in this case yet is false dichotomy
for partial descriptors.

Aligns JSC with V8 and SpiderMonkey.

[1]: https://tc39.es/ecma262/#sec-setintegritylevel (step 7.b.ii)

  • runtime/ObjectConstructor.cpp:

(JSC::setIntegrityLevel):

1:34 PM Changeset in webkit [272746] by Darin Adler
  • 2 edits in trunk/Source/WebCore

Use a template to simplify repetitive code in ColorSpaceCG.cpp
https://bugs.webkit.org/show_bug.cgi?id=221770

Reviewed by Sam Weinig.

  • platform/graphics/cg/ColorSpaceCG.cpp:

(WebCore::namedColorSpace): Added.
(WebCore::sRGBColorSpaceRef): Use namedColorSpace. Also took out long-obsolete
workaround for a bug in pre-2013 versions of Core Graphics on Windows.
(WebCore::adobeRGB1998ColorSpaceRef): Ditto.
(WebCore::displayP3ColorSpaceRef): Ditto.
(WebCore::extendedSRGBColorSpaceRef): Ditto.
(WebCore::ITUR_2020ColorSpaceRef): Ditto.
(WebCore::linearSRGBColorSpaceRef): Ditto.
(WebCore::ROMMRGBColorSpaceRef): Ditto.
(WebCore::xyzColorSpaceRef): Ditto.

1:33 PM Changeset in webkit [272745] by Chris Dumez
  • 4 edits in trunk/LayoutTests

[ MacOS Debug wk2] imported/w3c/web-platform-tests/worklets/animation-worklet-service-worker-interception.https.html is a flakey text failure
https://bugs.webkit.org/show_bug.cgi?id=221731
<rdar://problem/74213595>

Unreviewed, skip animation & layout worklets tests since we do not support those and it is
causing those tests to be flaky.

LayoutTests/imported/w3c:

  • web-platform-tests/worklets/animation-worklet-service-worker-interception.https-expected.txt:

LayoutTests:

1:30 PM Changeset in webkit [272744] by Darin Adler
  • 2 edits in trunk/Source/WebKit

[Cocoa] IPC decoder is using decoded size to allocate memory for an array
https://bugs.webkit.org/show_bug.cgi?id=221773

Reviewed by Geoffrey Garen.

  • Shared/Cocoa/ArgumentCodersCocoa.mm:

(IPC::decodeArrayInternal): As with other similar structures, such a Vector and
CFArray, don't use the size to preallocate space when decoding an NSArray. The
decoded size is potentially incorrect, which we will discover indirectly when
decoding the array elements; we can't safely use the size to make a choice about
allocating memory beforehand.

11:59 AM Changeset in webkit [272743] by aakash_jain@apple.com
  • 4 edits in trunk/Tools

build.webkit.org should display commit identifier in builds
https://bugs.webkit.org/show_bug.cgi?id=221730

Reviewed by Jonathan Bedard.

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

(ExtractTestResults.finished):
(ShowIdentifier): build-step to show commit identifier.
(ShowIdentifier.init):
(ShowIdentifier.start):
(ShowIdentifier.evaluateCommand):
(ShowIdentifier.getLastBuildStepByName):
(ShowIdentifier.url_for_identifier):
(ShowIdentifier.getResultSummary): Display custom failure message.
(ShowIdentifier.hideStepIf): Hide this step if successful.

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

(BuildStepMixinAdditions.executedSteps): filter wasn't working as expected with python 3, replaced
with list comprehension.
(TestShowIdentifier): Added unit-tests.
(TestShowIdentifier.test_success):
(TestShowIdentifier.test_failure):

  • CISupport/build-webkit-org/factories.py: Added ShowIdentifier build step.
11:33 AM Changeset in webkit [272742] by commit-queue@webkit.org
  • 2 edits in trunk/Websites/webkit.org

scroll-snap demo should use new spec
https://bugs.webkit.org/show_bug.cgi?id=184046

Patch by Martin Robinson <mrobinson@igalia.com> on 2021-02-11
Reviewed by Wenson Hsieh.

Update the scroll-snap demo to reflect the modern specification. This
demo isn't currently linked from the site, but if it's every linked again
it will now reflect the current specification.

This maintains the old CSS so that the demo continues to work with
old versions of Safari.

  • demos/scroll-snap/index.html: Update the descriptions in the demo to reflect

the newest version of the specification.

11:23 AM Changeset in webkit [272741] by Brent Fulgham
  • 2 edits in trunk/Source/WebKit

[macOS] Add telemetry for a likely-unused call to ipc-posix-shm-read-data
https://bugs.webkit.org/show_bug.cgi?id=221733
<rdar://problem/74214692>

Reviewed by Per Arne Vollan.

Add telemetry to confirm this is unsed.

  • WebProcess/com.apple.WebProcess.sb.in:
11:17 AM Changeset in webkit [272740] by Aditya Keerthi
  • 3 edits
    2 adds in trunk

[iOS][FCR] Range inputs have an incorrect RTL appearance
https://bugs.webkit.org/show_bug.cgi?id=221758
<rdar://problem/74236993>

Reviewed by Wenson Hsieh.

Source/WebCore:

Test: fast/forms/ios/form-control-refresh/range/rtl-appearance.html

  • rendering/RenderThemeIOS.mm:

(WebCore::RenderThemeIOS::paintSliderTrackWithFormControlRefresh):

In a right-to-left appearance, the track should begin filling from
the right.

LayoutTests:

Added a reference mismatch test to verify that a range input with
dir="rtl" has a distinct appearance from a standard range input.

  • fast/forms/ios/form-control-refresh/range/rtl-appearance-expected-mismatch.html: Added.
  • fast/forms/ios/form-control-refresh/range/rtl-appearance.html: Added.
11:12 AM Changeset in webkit [272739] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Web Inspector: Grid section in Layout panel gets out of sync with grid overlay after reopening Web Inspector
https://bugs.webkit.org/show_bug.cgi?id=221728
<rdar://problem/74212444>

Patch by Razvan Caliman <Razvan Caliman> on 2021-02-11
Reviewed by BJ Burg.

Hide all shown grid overlays when the WebInspector is closed.

  • inspector/agents/InspectorDOMAgent.cpp:

(WebCore::InspectorDOMAgent::willDestroyFrontendAndBackend):
(WebCore::InspectorDOMAgent::highlightNodeList):
(WebCore::InspectorDOMAgent::buildObjectForNode):
(WebCore::InspectorDOMAgent::buildObjectForAccessibilityProperties):

10:50 AM Changeset in webkit [272738] by aakash_jain@apple.com
  • 3 edits in trunk/Tools

JSC EWSes should be triggered by change in any jsc file
https://bugs.webkit.org/show_bug.cgi?id=221756

Reviewed by Jonathan Bedard.

  • CISupport/ews-build/steps.py:

(CheckPatchRelevance): Used generic jsc regex.

  • CISupport/ews-build/steps_unittest.py: Made the unit-tests more generic by using for loop to check multiple filenames.
10:33 AM Changeset in webkit [272737] by commit-queue@webkit.org
  • 6 edits in trunk/Source/WebInspectorUI

Web Inspector: Add settings UI for CSS Grid overlay
https://bugs.webkit.org/show_bug.cgi?id=221556
<rdar://problem/74100005>

Patch by Razvan Caliman <Razvan Caliman> on 2021-02-11
Reviewed by Devin Rousso.

Add UI to toggle configuration options for the CSS Grid overlay.
When an option's value changes, all shown overlays are refreshed.

  • Localizations/en.lproj/localizedStrings.js:
  • UserInterface/Base/Setting.js:
  • UserInterface/Controllers/OverlayManager.js:

(WI.OverlayManager):
(WI.OverlayManager.prototype.showGridOverlay):
(WI.OverlayManager.prototype._handleGridSettingChanged):

  • UserInterface/Views/CSSGridSection.css:

(.css-grid-section .node-link,):
(.css-grid-section :is(.heading, .title)):

  • UserInterface/Views/CSSGridSection.js:

(WI.CSSGridSection.prototype.initialLayout):

9:43 AM Changeset in webkit [272736] by weinig@apple.com
  • 7 edits in trunk/Source

Returning sRGB from CG color space functions on failure is too error prone
https://bugs.webkit.org/show_bug.cgi?id=221676

Reviewed by Darin Adler.

Source/WebCore:

  • platform/graphics/cg/ColorCG.cpp:

(WebCore::leakCGColor):
Switch to checking for nullptr rather than sRGB and be explicit about where we can
and cannot use conversion to ExtendedSRGB, rather than the old behavior where we
would secretly use sRGB on platforms without ExtendedSRGB and expect CG to clamp for
us.

  • platform/graphics/cg/ColorSpaceCG.cpp:

(WebCore::sRGBColorSpaceRef):
(WebCore::adobeRGB1998ColorSpaceRef):
(WebCore::displayP3ColorSpaceRef):
(WebCore::extendedSRGBColorSpaceRef):
(WebCore::ITUR_2020ColorSpaceRef):
(WebCore::labColorSpaceRef):
(WebCore::linearSRGBColorSpaceRef):
(WebCore::ROMMRGBColorSpaceRef):
(WebCore::xyzColorSpaceRef):

  • platform/graphics/cg/ColorSpaceCG.h:

(WebCore::cachedNullableCGColorSpace):
(WebCore::cachedCGColorSpace):
Rename cachedCGColorSpace to cachedNullableCGColorSpace to indicate that it can
now return nullptr for unsupported color spaces. Add explicit guards around color
space accessors to ensure they are only called on platforms where they are known
to be supported.

  • platform/graphics/cg/GradientCG.cpp:

(WebCore::Gradient::createCGGradient):
Be explicit about which color space is being used for the gradien when extended colors are present.
This is the same behavior as before, but previously it would happen silently beneath extendedSRGBColorSpaceRef()
which is a suprising result.

Source/WTF:

  • wtf/PlatformHave.h:

Add specific macros for color spaces supported by Core Graphics.

9:30 AM Changeset in webkit [272735] by youenn@apple.com
  • 5 edits in trunk

[MacOS] Enable Audio Capture in GPUProcess by default
https://bugs.webkit.org/show_bug.cgi?id=221400

Reviewed by Eric Carlson.

Source/WebKit:

Covered by existing API tests, in particular TestWebKitAPI.WebKit.OnDeviceChangeCrash.

  • WebKit/UIProcess/UserMediaPermissionRequestManagerProxy.cpp:

We need to synchronously fill the granted requests, otherwise there is a risk that
the granted requests will be cleared (on page close for instance) and then later filled
for the page that was gone.

  • Shared/WebPreferencesDefaultValues.cpp:

(WebKit::defaultCaptureAudioInGPUProcessEnabled):

Tools:

  • TestWebKitAPI/Tests/WebKit/GetUserMediaReprompt.mm:

(-[GetUserMediaRepromptTestView haveStream:]):
Increase timeout since capture might require spinning GPUProcess.

9:26 AM Changeset in webkit [272734] by commit-queue@webkit.org
  • 19 edits
    1 add in trunk

Complete XRSession::requestAnimationFrame implementation
https://bugs.webkit.org/show_bug.cgi?id=220979

Patch by Sergio Villar Senin <svillar@igalia.com> and Imanol Fernandez <imanol> on 2021-02-11
Reviewed by Youenn Fablet.

LayoutTests/imported/w3c:

Enable XRSession RAF tests.

  • web-platform-tests/webxr/xrSession_requestAnimationFrame_timestamp.https-expected.txt: Added.

Source/WebCore:

  • Implement the render loop for immersive and inline XR sessions.
  • Implement WebXR render state updates.
  • Create the FrameData struct used to query frame specific data from XR devices.
  • Use window RAF for inline XR sessions.
  • Implement WebFakeXRDevice testing rendering loop using a timer.
  • Implement OpenXR session states and session tracking.
  • Improve OpenXR event handling.

Tested by the WebXR platform tests.

  • Modules/webxr/WebXRFrame.cpp: Add m_active, m_time and m_session members

(WebCore::WebXRFrame::create):
(WebCore::WebXRFrame::WebXRFrame):

  • Modules/webxr/WebXRFrame.h:

(WebCore::WebXRFrame::setTime):
(WebCore::WebXRFrame::setActive):
(WebCore::WebXRFrame::isActive const):

  • Modules/webxr/WebXRRenderState.h: Add m_compositionDisabled member and output canvas setter

(WebCore::WebXRRenderState::setOutputCanvas):
(WebCore::WebXRRenderState::compositionDisabled const):
(WebCore::WebXRRenderState::setCompositionDisabled):

  • Modules/webxr/WebXRSession.cpp:

(WebCore::WebXRSession::create):
(WebCore::WebXRSession::WebXRSession):
(WebCore::WebXRSession::initialize): required to creat the XRFrame with makeRef(this)
(WebCore::WebXRSession::requestReferenceSpace): implement reference space creation
(WebCore::WebXRSession::requestAnimationFrame): implement render loop for immersive and inline sessions
(WebCore::WebXRSession::applyPendingRenderState): implement WebXR render state updates
(WebCore::WebXRSession::frameShouldBeRendered const): add check based on the spec
(WebCore::WebXRSession::requestFrame): implement helper function to dispatch a frame request to XR devices
(WebCore::WebXRSession::onFrame): process the XR frame and call the RAF callbacks

  • Modules/webxr/WebXRSession.h:
  • Modules/webxr/WebXRSystem.cpp: Implement render loop using window raf loop.

(WebCore::WebXRSystem::WebXRSystem):
(WebCore::WebXRSystem::DummyInlineDevice::DummyInlineDevice): Add ScriptExecutionContext
(WebCore::WebXRSystem::DummyInlineDevice::requestFrame): Adapt to the new interface

  • Modules/webxr/WebXRSystem.h:
  • Modules/webxr/WebXRWebGLLayer.cpp:

(WebCore::WebXRWebGLLayer::canvas const): Implement canvas getter

  • Modules/webxr/WebXRWebGLLayer.h:

(WebCore::WebXRWebGLLayer::compositionDisabled const): add
(WebCore::WebXRWebGLLayer::setCompositionDisabled): add

  • platform/xr/PlatformXR.h: Add FrameData struct
  • platform/xr/openxr/PlatformXROpenXR.cpp: Implement render loop using OpenXR API

(PlatformXR::OpenXRDevice::resetSession):
(PlatformXR::OpenXRDevice::shutDownTrackingAndRendering):
(PlatformXR::OpenXRDevice::pollEvents): Implement event loop to query m_sessionState
(PlatformXR::sessionIsActive): add
(PlatformXR::sessionIsRunning): add
(PlatformXR::OpenXRDevice::beginSession):
(PlatformXR::xrViewToViewData): helper function to convert data from OpenXR
(PlatformXR::OpenXRDevice::requestFrame): start OpenXR frame, query pose and view data
(PlatformXR::OpenXRDevice::waitUntilStopping): properly wait for OpenXR event before ending the session.

  • platform/xr/openxr/PlatformXROpenXR.h:
  • testing/WebFakeXRDevice.cpp: Implement render loop using a timer

(WebCore::SimulatedXRDevice::SimulatedXRDevice):
(WebCore::SimulatedXRDevice::~SimulatedXRDevice):
(WebCore::SimulatedXRDevice::shutDownTrackingAndRendering):
(WebCore::SimulatedXRDevice::stopTimer):
(WebCore::SimulatedXRDevice::frameTimerFired):
(WebCore::SimulatedXRDevice::requestFrame):

  • testing/WebFakeXRDevice.h:

LayoutTests:

  • platform/wpe/TestExpectations:
9:09 AM Changeset in webkit [272733] by Lauro Moura
  • 2 edits in trunk/Tools

[Flatpak SDK] Fix env forwarding for older flatpak versions
https://bugs.webkit.org/show_bug.cgi?id=221757

Rubber-stamped by Philippe Normand.

Older flatpak versions (pre 1.10) might not have been patched for the
envvar CVE that triggered the new behavior and would still be
receiving the environment through envvars instead of the --args file
descriptor.

  • flatpak/webkit-bwrap:
8:58 AM Changeset in webkit [272732] by don.olmstead@sony.com
  • 7 edits in trunk

[CMake] WEBKIT_EXECUTABLE can incorrectly link framework
https://bugs.webkit.org/show_bug.cgi?id=221703

Reviewed by Michael Catanzaro.

.:

After r272484 which added an additional test for TestJavaScriptCore the PlayStation build
began failing with an unresolved symbol in bmalloc. On PlayStation both WTF and bmalloc
are linked into JavaScriptCore. That library was building successfully which implied that
WTF was being erroniously linked into TestJavaScriptCore.

Inside _WEBKIT_EXECUTABLE_LINK_FRAMEWORK there was an invalid conditional which was causing
WTF to be linked. Fixed the logic to ensure that if the requested framework is linked into
another framework that is being linked then it is not added to the linker.

  • Source/cmake/WebKitMacros.cmake:

Source/JavaScriptCore:

GTK compiles JavaScriptCore as a SHARED library but the symbols from WTF are not being
properly exposed from it. Workaround this by linking WTF directly until GTK turns on
hidden visibility and properly exports symbols.

  • shell/PlatformGTK.cmake:

Tools:

GTK compiles JavaScriptCore as a SHARED library but the symbols from WTF are not being
properly exposed from it. Workaround this by linking WTF directly until GTK turns on
hidden visibility and properly exports symbols.

  • TestWebKitAPI/CMakeLists.txt:
  • TestWebKitAPI/PlatformGTK.cmake:
8:36 AM Changeset in webkit [272731] by weinig@apple.com
  • 19 edits in trunk/Source

Rework RGB color types to be more declarative to reduce code duplication and make progress toward better automatic conversion
https://bugs.webkit.org/show_bug.cgi?id=221677

Reviewed by Darin Adler.

Source/WebCore:

The "RGB" family of colors (those inheriting from RGBType) all share a common structure
can be generalized to simplify their conversions and centralize their definitions.

To do this, each RGB color type now defines a "Descriptor" type (e.g. SRGBDescriptor for
SRGBA) which includes:

  • What transfer function it uses (e.g. SRGBTransferFunction)
  • What whitePoint it is defined for (e.g. WhitePoint::D65)
  • What matrices it uses to convert from linear to xyz and from xyz to linear.

Then using type aliases, the color type is defined using the descriptor and one of the four
base types: BoundedGammaEncoded, BoundedLinearEncoded, ExtendedGammaEncoded, and ExtendedLinearEncoded.
So, for the SRGBA family of color types, they are defined as:

template<typename T> using SRGBA = BoundedGammaEncoded<T, SRGBADescriptor<T>>;
template<typename T> using LinearSRGBA = BoundedLinearEncoded<T, SRGBADescriptor<T>>;
template<typename T> using ExtendedSRGBA = ExtendedGammaEncoded<T, SRGBADescriptor<T>>;
template<typename T> using LinearExtendedSRGBA = ExtendedLinearEncoded<T, SRGBADescriptor<T>>;

By using type aliases like this, we gain the ability to easily set up relationships between
the types. For instance, the BoundedGammaEncoded type has the following members:

using LinearCounterpart = BoundedLinearEncoded<T, D>;
using ExtendedCounterpart = ExtendedGammaEncoded<T, D>;

Where D is the "Descriptor" it was made with. This allows helper functions such as the conversion
functions to automatically know what counterpart to use without having to write specialized versions
for each pair. This will aid in unifying conversion functions further.

This change also removes the XYZReference member of the color types, replacing it with the
WhitePoint, which can be used to construct the XYZReference as is done by the new XYZFor<> alias.
This will allow for straigthforward comparisons when we stop always converting through XYZA.

As a result of moving the matrices to the color type descriptors, we can now simplify all the
linear to xyz and xyz to linear conversions to use generic functions (called linearToXYZ and
xyzToLinear not suprisingly) and since the descriptors also include the transfer function we
can further simplify the gamma conversion functions to no longer explicitly passing the transfer
function.

Two consequenes of using complex type aliases for the color types, rather than direct structs, is
that we can no longer easily forward declare the color types, so ColorTypes.h is included in a few
more places now, and the deduction guides we had been using don't work, so we must explicitly specify
the type in a few places. We should be able to reduce the amount included in most places by splitting
up the color types into their own headers, and only including the needed color type, only SRGBA in
practice.

This also adds back a missing clamp to the conversion from SRGBA<float> to SRGBA<uint8_t> that I didn't
intend to remove in a previous patch, but I am not actual sure is necessary. While I work that out,
better to add it back.

  • css/parser/CSSParser.h:
  • css/parser/CSSParserFastPaths.h:
  • platform/graphics/Color.cpp:

(WebCore::Color::lightened const):
(WebCore::Color::darkened const):

  • platform/graphics/ColorComponents.h:

(WebCore::mapColorComponents):

  • platform/graphics/ColorConversion.cpp:

(WebCore::toLinear):
(WebCore::toGammaEncoded):
(WebCore::A98RGB<float>>::convert):
(WebCore::LinearA98RGB<float>>::convert):
(WebCore::DisplayP3<float>>::convert):
(WebCore::LinearDisplayP3<float>>::convert):
(WebCore::ExtendedSRGBA<float>>::convert):
(WebCore::LinearExtendedSRGBA<float>>::convert):
(WebCore::ProPhotoRGB<float>>::convert):
(WebCore::LinearProPhotoRGB<float>>::convert):
(WebCore::Rec2020<float>>::convert):
(WebCore::LinearRec2020<float>>::convert):
(WebCore::SRGBA<float>>::convert):
(WebCore::LinearSRGBA<float>>::convert):
(WebCore::xyzToLinear):
(WebCore::linearToXYZ):
(WebCore::XYZFor<LinearA98RGB<float>>>::convert):
(WebCore::XYZFor<LinearDisplayP3<float>>>::convert):
(WebCore::XYZFor<LinearExtendedSRGBA<float>>>::convert):
(WebCore::XYZFor<LinearProPhotoRGB<float>>>::convert):
(WebCore::XYZFor<LinearRec2020<float>>>::convert):
(WebCore::XYZFor<LinearSRGBA<float>>>::convert):
(WebCore::Lab<float>>::convert):
(WebCore::XYZFor<Lab<float>>>::convert):
(WebCore::XYZFor<A98RGB<float>>>::convert):
(WebCore::XYZFor<DisplayP3<float>>>::convert):
(WebCore::XYZFor<ExtendedSRGBA<float>>>::convert):
(WebCore::HSLA<float>>::convert):
(WebCore::XYZFor<HSLA<float>>>::convert):
(WebCore::HWBA<float>>::convert):
(WebCore::XYZFor<HWBA<float>>>::convert):
(WebCore::LCHA<float>>::convert):
(WebCore::XYZFor<LCHA<float>>>::convert):
(WebCore::XYZFor<ProPhotoRGB<float>>>::convert):
(WebCore::XYZFor<Rec2020<float>>>::convert):
(WebCore::XYZFor<SRGBA<float>>>::convert):
(WebCore::LinearA98RGB<float>::ReferenceXYZ>::convert): Deleted.
(WebCore::LinearDisplayP3<float>::ReferenceXYZ>::convert): Deleted.
(WebCore::LinearExtendedSRGBA<float>::ReferenceXYZ>::convert): Deleted.
(WebCore::LinearProPhotoRGB<float>::ReferenceXYZ>::convert): Deleted.
(WebCore::LinearRec2020<float>::ReferenceXYZ>::convert): Deleted.
(WebCore::LinearSRGBA<float>::ReferenceXYZ>::convert): Deleted.
(WebCore::Lab<float>::ReferenceXYZ>::convert): Deleted.
(WebCore::A98RGB<float>::ReferenceXYZ>::convert): Deleted.
(WebCore::DisplayP3<float>::ReferenceXYZ>::convert): Deleted.
(WebCore::ExtendedSRGBA<float>::ReferenceXYZ>::convert): Deleted.
(WebCore::HSLA<float>::ReferenceXYZ>::convert): Deleted.
(WebCore::HWBA<float>::ReferenceXYZ>::convert): Deleted.
(WebCore::LCHA<float>::ReferenceXYZ>::convert): Deleted.
(WebCore::ProPhotoRGB<float>::ReferenceXYZ>::convert): Deleted.
(WebCore::Rec2020<float>::ReferenceXYZ>::convert): Deleted.
(WebCore::SRGBA<float>::ReferenceXYZ>::convert): Deleted.

  • platform/graphics/ColorConversion.h:

(WebCore::ColorConversion::convert):

  • platform/graphics/ColorTypes.h:

(WebCore::asColorComponents):

  • platform/graphics/ImageBackingStore.h:

(WebCore::ImageBackingStore::blendPixel):
(WebCore::ImageBackingStore::pixelValue const):

  • platform/graphics/avfoundation/InbandTextTrackPrivateAVF.cpp:

(WebCore::makeSimpleColorFromARGBCFArray):

  • platform/graphics/cg/ColorCG.cpp:

(WebCore::roundAndClampToSRGBALossy):

  • platform/graphics/filters/FilterOperation.h:
  • platform/graphics/mac/ColorMac.mm:

(WebCore::makeSimpleColorFromNSColor):

  • platform/ios/ColorIOS.mm:

(WebCore::colorFromUIColor):

Source/WebKit:

  • UIProcess/API/wpe/WebKitColor.cpp:

(webkitColorToWebCoreColor):
Update to specify SRGBA<float>, which is now required due to lack of deduction guides through
type aliases.

8:28 AM Changeset in webkit [272730] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

Audio is sometimes distorted when using createMediaElementSource
https://bugs.webkit.org/show_bug.cgi?id=221553

Reviewed by Eric Carlson.

AudioSourceProviderAVFObjC::provideInput() was calculating the number of
frames available in the RingBuffer like so:
endFrame - (m_readCount + writeAheadCount)

The issue is that when writeAheadCount is greater than 0, (m_readCount + writeAheadCount)
can become greater than endFrame, causing us to end up with a super large number of
available frames. This can lead us to render garbage because we may be reading more
frames than available the RingBuffer.

I have also made a change in the case where rendering has already started were we ignore
writeAheadCount and render whatever we have in the RingBuffer. After we've started rendering,
deciding not to render because of writeAheadCount, even though there are available frames
in the RingBuffer, is really hurtful to user experience. This was reproducible on
https://www.waveplayer.info/createmediaelementsource-test/ where we would start rendering
for a bit, then output silence and then pick up rendering again (this time for good).

  • platform/graphics/avfoundation/AudioSourceProviderAVFObjC.mm:

(WebCore::AudioSourceProviderAVFObjC::provideInput):

8:22 AM Changeset in webkit [272729] by Russell Epstein
  • 1 copy in tags/Safari-612.1.3

Tag Safari-612.1.3.

8:09 AM Changeset in webkit [272728] by Simon Fraser
  • 2 edits in trunk/Source/WebKit

Crash when UI-side compositing is enabled on macOS
https://bugs.webkit.org/show_bug.cgi?id=221740

Reviewed by Tim Horton.

When UI-side compositing is enabled on macOS, WebProcess::updatePageScreenProperties()
crashes because allOf(m_pageMap.values(), ...) return a null WebPage. We're inside
WebProcess::createWebPage() here, so haven't set the HashMap value yet.

  • WebProcess/cocoa/WebProcessCocoa.mm:

(WebKit::WebProcess::updatePageScreenProperties):

8:06 AM Changeset in webkit [272727] by Chris Lord
  • 6 edits in trunk/Source/WebCore

Remove FontSelector dependence in CSSFontFace when creating a new FontFace wrapper
https://bugs.webkit.org/show_bug.cgi?id=221753

Reviewed by Myles C. Maxfield.

Add a parameter to the CSSFontFace-based FontFace constructor to allow
specifying the ScriptExecutionContext and therefore allow removal of
another dependence on m_fontSelector in CSSFontFace.

No new tests because there is no behavior change.

  • css/CSSFontFace.cpp:

(WebCore::CSSFontFace::wrapper):

  • css/CSSFontFace.h:
  • css/FontFace.cpp:

(WebCore::FontFace::create):
(WebCore::FontFace::FontFace):

  • css/FontFace.h:
  • css/FontFaceSet.cpp:

(WebCore::FontFaceSet::Iterator::next):
(WebCore::FontFaceSet::load):

7:25 AM Changeset in webkit [272726] by Manuel Rego Casasnovas
  • 4 edits
    1 copy
    1 add in trunk/LayoutTests

Add more Selenium key codes for test_driver.send_keys()
https://bugs.webkit.org/show_bug.cgi?id=221674

Reviewed by Carlos Garcia Campos.

LayoutTests/imported/w3c:

Add more Selenium key codes (https://seleniumhq.github.io/selenium/docs/api/py/webdriver/selenium.webdriver.common.keys.html).
Not all of them are added, only the ones that are supported in eventSender.keyDown().

  • web-platform-tests/html/semantics/forms/form-submission-0/implicit-submission.optional-expected.txt: Updated expectations

as this test was using the code for ENTER.

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

LayoutTests:

  • platform/ios/imported/w3c/web-platform-tests/html/semantics/forms/form-submission-0/implicit-submission.optional-expected.txt: Copied from LayoutTests/imported/w3c/web-platform-tests/html/semantics/forms/form-submission-0/implicit-submission.optional-expected.txt.
6:56 AM Changeset in webkit [272725] by Alan Bujtas
  • 6 edits in trunk/Source/WebCore

[LFC][IFC] Introduce dedicated logical rect getter for each inline level box type
https://bugs.webkit.org/show_bug.cgi?id=221725

Reviewed by Antti Koivisto.

This helps when different type of rects (margin vs. border) are returned for different type of boxes.

  • layout/inlineformatting/InlineFormattingContext.cpp:

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

  • layout/inlineformatting/InlineLineBox.cpp:

(WebCore::Layout::LineBox::logicalRectForTextRun const):
(WebCore::Layout::LineBox::logicalRectForLineBreakBox const):
(WebCore::Layout::LineBox::logicalRectForInlineLevelBox const):
(WebCore::Layout::LineBox::logicalMarginRectForAtomicInlineLevelBox const):
(WebCore::Layout::LineBox::logicalRectForInlineBox const):
(WebCore::Layout::LineBox::logicalMarginRectForInlineLevelBox const): Deleted.

  • layout/inlineformatting/InlineLineBox.h:
  • layout/integration/LayoutIntegrationInlineContentBuilder.cpp:

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

  • layout/layouttree/LayoutTreeBuilder.cpp:

(WebCore::Layout::showInlineTreeAndRuns):

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

[LFC][IFC] Inline boxes have incorrect content box height/width values
https://bugs.webkit.org/show_bug.cgi?id=221739

Reviewed by Antti Koivisto.

Do not include horizontal and vertical padding and borders when computing the content box size.

  • layout/inlineformatting/InlineFormattingContext.cpp:

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

  • layout/inlineformatting/InlineLineBox.cpp:

(WebCore::Layout::LineBox::logicalRectForInlineBox const):

6:44 AM Changeset in webkit [272723] by pvollan@apple.com
  • 2 edits in trunk/Source/WebKit

[macOS] Add syscall to allow list in WebContent sandbox
https://bugs.webkit.org/show_bug.cgi?id=221705
<rdar://problem/74162777>

Reviewed by Brent Fulgham.

Add required syscall to allow list in WebContent sandbox on macOS.

  • WebProcess/com.apple.WebProcess.sb.in:
6:40 AM Changeset in webkit [272722] by youenn@apple.com
  • 2 edits in trunk/LayoutTests

Remove GPUProcess flag in MediaRecorder tests
https://bugs.webkit.org/show_bug.cgi?id=221401

Reviewed by Eric Carlson.

We will remove http/wpt/mediarecorder/MediaRecorder-AV-audio-video-dataavailable.html once rdar://problem/74043225 is fixed.

  • http/wpt/mediarecorder/pause-recording.html:

Increase timer to cope with added latency introduced by IPC messaging.

6:18 AM Changeset in webkit [272721] by svillar@igalia.com
  • 12 edits in trunk/Source

Non unified build fixes for mid February 2021
https://bugs.webkit.org/show_bug.cgi?id=221749

Reviewed by Youenn Fablet.

Source/WebCore:

  • CMakeLists.txt:
  • Modules/mediastream/SFrameUtils.cpp:
  • Modules/mediastream/STUNMessageParsing.h:
  • bindings/js/WebCoreBuiltinNames.h:
  • dom/EventTargetFactory.in:
  • inspector/InspectorFrontendAPIDispatcher.cpp:

(WebCore::InspectorFrontendAPIDispatcher::evaluateOrQueueExpression):

  • workers/DedicatedWorkerGlobalScope.cpp:
  • workers/Worker.cpp:

Source/WebKit:

  • GPUProcess/graphics/RemoteRenderingBackend.cpp:
  • GPUProcess/media/RemoteCDMInstanceProxy.cpp:
5:42 AM Changeset in webkit [272720] by svillar@igalia.com
  • 2 edits in trunk/LayoutTests

Unreviewed test gardening.

  • platform/ios/TestExpectations: Replaced Failure by ImageOnlyFailure for a couple of tests I imported yesterday.
3:08 AM Changeset in webkit [272719] by youenn@apple.com
  • 7 edits
    1 copy
    2 moves
    1 add in trunk/Source/WebKit

Split RemoteRealtimeMediaSource in two audio-specific and video-specific classes
https://bugs.webkit.org/show_bug.cgi?id=221608

Reviewed by Eric Carlson.

Split RemoteRealtimeMediaSource in RemoteRealtimeAudioSource and RemoteRealtimeVideoSource.
This will allow RemoteRealtimeVideoSource to become a RealtimeVideoCaptureSource in a follow-up
to properly handle fan-out to multiple clones with various frame rates and resolutions.
This also allows removing differences of behaviors between audio and video classes.

No change of behavior.

  • SourcesCocoa.txt:
  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/cocoa/RemoteCaptureSampleManager.cpp:

(WebKit::RemoteCaptureSampleManager::addSource):
(WebKit::RemoteCaptureSampleManager::didUpdateSourceConnection):
(WebKit::RemoteCaptureSampleManager::RemoteAudio::RemoteAudio):

  • WebProcess/cocoa/RemoteCaptureSampleManager.h:
  • WebProcess/cocoa/RemoteRealtimeAudioSource.cpp: Added.

(WebKit::RemoteRealtimeAudioSource::create):
(WebKit::RemoteRealtimeAudioSource::RemoteRealtimeAudioSource):
(WebKit::RemoteRealtimeAudioSource::createRemoteMediaSource):
(WebKit::RemoteRealtimeAudioSource::~RemoteRealtimeAudioSource):
(WebKit::RemoteRealtimeAudioSource::whenReady):
(WebKit::RemoteRealtimeAudioSource::didFail):
(WebKit::RemoteRealtimeAudioSource::setAsReady):
(WebKit::RemoteRealtimeAudioSource::setCapabilities):
(WebKit::RemoteRealtimeAudioSource::setSettings):
(WebKit::RemoteRealtimeAudioSource::remoteAudioSamplesAvailable):
(WebKit::RemoteRealtimeAudioSource::connection):
(WebKit::RemoteRealtimeAudioSource::startProducingData):
(WebKit::RemoteRealtimeAudioSource::stopProducingData):
(WebKit::RemoteRealtimeAudioSource::capabilities):
(WebKit::RemoteRealtimeAudioSource::applyConstraints):
(WebKit::RemoteRealtimeAudioSource::applyConstraintsSucceeded):
(WebKit::RemoteRealtimeAudioSource::applyConstraintsFailed):
(WebKit::RemoteRealtimeAudioSource::hasEnded):
(WebKit::RemoteRealtimeAudioSource::captureStopped):
(WebKit::RemoteRealtimeAudioSource::captureFailed):
(WebKit::RemoteRealtimeAudioSource::gpuProcessConnectionDidClose):

  • WebProcess/cocoa/RemoteRealtimeAudioSource.h: Copied from Source/WebKit/WebProcess/cocoa/RemoteRealtimeMediaSource.h.

(WebKit::RemoteRealtimeAudioSource::identifier const):

  • WebProcess/cocoa/RemoteRealtimeVideoSource.cpp: Renamed from Source/WebKit/WebProcess/cocoa/RemoteRealtimeMediaSource.cpp.

(WebKit::RemoteRealtimeVideoSource::create):
(WebKit::RemoteRealtimeVideoSource::RemoteRealtimeVideoSource):
(WebKit::RemoteRealtimeVideoSource::createRemoteMediaSource):
(WebKit::RemoteRealtimeVideoSource::~RemoteRealtimeVideoSource):
(WebKit::RemoteRealtimeVideoSource::whenReady):
(WebKit::RemoteRealtimeVideoSource::didFail):
(WebKit::RemoteRealtimeVideoSource::setAsReady):
(WebKit::RemoteRealtimeVideoSource::clone):
(WebKit::RemoteRealtimeVideoSource::setCapabilities):
(WebKit::RemoteRealtimeVideoSource::setSettings):
(WebKit::RemoteRealtimeVideoSource::remoteVideoSampleAvailable):
(WebKit::RemoteRealtimeVideoSource::connection):
(WebKit::RemoteRealtimeVideoSource::startProducingData):
(WebKit::RemoteRealtimeVideoSource::stopProducingData):
(WebKit::RemoteRealtimeVideoSource::setShouldApplyRotation):
(WebKit::RemoteRealtimeVideoSource::capabilities):
(WebKit::RemoteRealtimeVideoSource::applyConstraints):
(WebKit::RemoteRealtimeVideoSource::applyConstraintsSucceeded):
(WebKit::RemoteRealtimeVideoSource::applyConstraintsFailed):
(WebKit::RemoteRealtimeVideoSource::hasEnded):
(WebKit::RemoteRealtimeVideoSource::captureStopped):
(WebKit::RemoteRealtimeVideoSource::captureFailed):
(WebKit::RemoteRealtimeVideoSource::stopBeingObserved):
(WebKit::RemoteRealtimeVideoSource::requestToEnd):
(WebKit::RemoteRealtimeVideoSource::gpuProcessConnectionDidClose):

  • WebProcess/cocoa/RemoteRealtimeVideoSource.h: Renamed from Source/WebKit/WebProcess/cocoa/RemoteRealtimeMediaSource.h.
  • WebProcess/cocoa/UserMediaCaptureManager.cpp:

(WebKit::UserMediaCaptureManager::addAudioSource):
(WebKit::UserMediaCaptureManager::removeAudioSource):
(WebKit::UserMediaCaptureManager::addVideoSource):
(WebKit::UserMediaCaptureManager::removeVideoSource):
(WebKit::UserMediaCaptureManager::sourceStopped):
(WebKit::UserMediaCaptureManager::sourceEnded):
(WebKit::UserMediaCaptureManager::captureFailed):
(WebKit::UserMediaCaptureManager::sourceMutedChanged):
(WebKit::UserMediaCaptureManager::sourceSettingsChanged):
(WebKit::UserMediaCaptureManager::remoteVideoSampleAvailable):
(WebKit::UserMediaCaptureManager::applyConstraintsSucceeded):
(WebKit::UserMediaCaptureManager::applyConstraintsFailed):
(WebKit::UserMediaCaptureManager::AudioFactory::createAudioCaptureSource):
(WebKit::UserMediaCaptureManager::VideoFactory::createVideoCaptureSource):
(WebKit::UserMediaCaptureManager::DisplayFactory::createDisplayCaptureSource):

  • WebProcess/cocoa/UserMediaCaptureManager.h:

(WebKit::UserMediaCaptureManager::remoteCaptureSampleManager):

2:55 AM Changeset in webkit [272718] by commit-queue@webkit.org
  • 4 edits in trunk

Handle min-width/min-height:auto for aspect-ratio
https://bugs.webkit.org/show_bug.cgi?id=220582

Patch by Rob Buis <rbuis@igalia.com> on 2021-02-11
Reviewed by Antti Koivisto.

Source/WebCore:

Implement automatic minimum size [1] handling for aspect-ratio
as specified here [2].

[1] https://drafts.csswg.org/css-sizing-3/#automatic-minimum-size
[2] https://drafts.csswg.org/css-sizing-4/#aspect-ratio-minimum

  • rendering/RenderBox.cpp:

(WebCore::RenderBox::constrainLogicalWidthInFragmentByMinMax const):
(WebCore::RenderBox::constrainLogicalHeightByMinMax const):
(WebCore::RenderBox::computePositionedLogicalWidthUsing const):
(WebCore::RenderBox::computePositionedLogicalHeight const):
(WebCore::RenderBox::computePositionedLogicalHeightUsing const):

LayoutTests:

Enable tests that pass now.

2:30 AM Changeset in webkit [272717] by Carlos Garcia Campos
  • 1 copy in releases/WebKitGTK/webkit-2.30.5

WebKitGTK 2.30.5

2:29 AM Changeset in webkit [272716] by Carlos Garcia Campos
  • 4 edits in releases/WebKitGTK/webkit-2.30

Unreviewed. Update OptionsGTK.cmake and NEWS for 2.30.5 release

.:

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

Source/WebKit:

  • gtk/NEWS: Add release notes for 2.30.5.
2:06 AM Changeset in webkit [272715] by mmaxfield@apple.com
  • 6 edits
    4 adds in trunk

Remove another use of FontSelector from within CSSFontFace
https://bugs.webkit.org/show_bug.cgi?id=221071

Reviewed by Darin Adler.

Source/WebCore:

Instead of CSSFontFace directly knowing about CSSFontSelector, we can just make CSSFontSelector
inherit from CSSFontFace::Client.

Also, clean up the callback methods a little bit.

Tests: fast/text/font-loading-multiple-documents.html

fast/text/font-loading-multiple-sets.html

  • css/CSSFontFace.cpp:

(WebCore::iterateClients):
(WebCore::CSSFontFace::CSSFontFace):
(WebCore::CSSFontFace::fontLoadEventOccurred):
(WebCore::CSSFontFace::updateStyleIfNeeded):

  • css/CSSFontFace.h:
  • css/CSSFontSelector.cpp:

(WebCore::CSSFontSelector::fontLoaded):
(WebCore::CSSFontSelector::fontStyleUpdateNeeded):

  • css/CSSFontSelector.h:

LayoutTests:

  • fast/text/font-loading-multiple-documents-expected.html: Added.
  • fast/text/font-loading-multiple-documents.html: Added.
  • fast/text/font-loading-multiple-sets-expected.txt: Added.
  • fast/text/font-loading-multiple-sets.html: Added.
1:31 AM Changeset in webkit [272714] by Carlos Garcia Campos
  • 4 edits in releases/WebKitGTK/webkit-2.30/Source/WebCore

Merge r272646 - [GStreamer] Make m_client WeakPtr in AudioSourceProviderGStreamer
https://bugs.webkit.org/show_bug.cgi?id=217952

Reviewed by Carlos Garcia Campos.

  • platform/audio/AudioSourceProviderClient.h: Turned into

CanMakeWeakPtr.

  • platform/audio/gstreamer/AudioSourceProviderGStreamer.cpp:

(WebCore::AudioSourceProviderGStreamer::setClient): Adapt to use
WeakPtr.

  • platform/audio/gstreamer/AudioSourceProviderGStreamer.h: Turned

m_client into WeakPtr.

1:31 AM Changeset in webkit [272713] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.30/Source/WebCore

Merge r270184 - [GStreamer] AudioSourceProvider can potentially invoke an already-freed client
https://bugs.webkit.org/show_bug.cgi?id=217952

Reviewed by Xabier Rodriguez-Calvar.

  • platform/audio/gstreamer/AudioSourceProviderGStreamer.cpp:

(WebCore::AudioSourceProviderGStreamer::deinterleavePadsConfigured): Check the provider has
a client before setting up the audio format.

1:29 AM Changeset in webkit [272712] by Lauro Moura
  • 3 edits in trunk/Tools

[Flatpak SDK] Support multiple builds running at the same time
https://bugs.webkit.org/show_bug.cgi?id=221711

Reviewed by Philippe Normand.

Instead of writing the environment to a file, read the --setenv
arguments from the --args file descriptor passed to webkit-bwrap like
bwrap itself would do.

  • flatpak/flatpakutils.py: Do not write the env file anymore

(WebkitFlatpak.run_in_sandbox):

  • flatpak/webkit-bwrap: Read the environment from the args file

descriptor.

12:44 AM Changeset in webkit [272711] by commit-queue@webkit.org
  • 7 edits
    2 adds in trunk

the nested grid container which has replaced item with 'max-height' has wrong width(0px).
https://bugs.webkit.org/show_bug.cgi?id=219194

Patch by Ziran Sun <Ziran Sun> on 2021-02-11
Reviewed by Javier Fernandez.
LayoutTests/imported/w3c:

The test is imported from WPT.

  • web-platform-tests/css/css-grid/grid-items/grid-auto-margin-and-replaced-item-001-expected.html: Added.
  • web-platform-tests/css/css-grid/grid-items/grid-auto-margin-and-replaced-item-001.html: Added.
  • web-platform-tests/css/css-sizing/percentage-height-in-flexbox-expected.txt: Added.

Source/WebCore:

Width of a nested grid container with margin:auto returns 0 when their item has "max-height".
This causes the grid item's position wrong due to the wrongly comuputed auto-margin value.
This change is to check whether the preferred logical width is dirty when the grid area changes.

It's a reland of r272338, which got reverted because it broken
imported/w3c/web-platform-tests/css/css-sizing/percentage-height-in-flexbox.html on ios. This change
actually fixes the test failure in the flexbox test. Hence, updating test expectation file of
the flexbox test seems working.

This is an import of Chromium change at
https://chromium-review.googlesource.com/c/chromium/src/+/2503910
This change also imported needsPreferredWidthsRecalculation() from Chromium to RenderReplaced to
address the test case specified here.

Test: imported/w3c/web-platform-tests/css/css-grid/grid-items/grid-auto-margin-and-replaced-item-001.html

  • rendering/GridTrackSizingAlgorithm.cpp:

(WebCore::GridTrackSizingAlgorithmStrategy::minContentForChild const):
(WebCore::GridTrackSizingAlgorithmStrategy::maxContentForChild const):

  • rendering/RenderReplaced.cpp:

(WebCore::RenderReplaced::needsPreferredWidthsRecalculation const):

  • rendering/RenderReplaced.h:

Feb 10, 2021:

11:25 PM Changeset in webkit [272710] by Wenson Hsieh
  • 7 edits in trunk

[Webpage translation] Add support for the -_translate: action on WKContentView
https://bugs.webkit.org/show_bug.cgi?id=221713
Source/WebKit:

Reviewed by Tim Horton.

Add another way to trigger web page translation on iOS, via the -_translate: selector.

  • Platform/spi/ios/UIKitSPI.h:

Add a new staged SPI declaration on UIWKTextInteractionAssistant. Additionally remove an old staging
declaration for a method in UIWebGeolocationPolicyDecider.

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

(-[WKContentView _translateForWebView:]):

Grab the currently selected text and invoke the new method on UIWKTextInteractionAssistant.

(-[WKContentView _addShortcutForWebView:]):

Drive-by fix: remove an extraneous nil check.

(-[WKContentView canPerformActionForWebView:withSender:]):

Return YES if the selection is ranged, and we're not inside a password input.

Tools:

<rdar://problem/73902020>

Reviewed by Tim Horton.

Add an API test to exercise -canPerformAction:withSender: with the new action.

  • TestWebKitAPI/Tests/WebKitCocoa/WKWebViewEditActions.mm:
11:24 PM Changeset in webkit [272709] by jer.noble@apple.com
  • 18 edits
    5 copies
    1 add in trunk/Source

Move AudioHardwareListener into the GPU Process
https://bugs.webkit.org/show_bug.cgi?id=221455

Reviewed by Eric Carlson.

Source/WebCore:

Allow clients to override the creation method for AudioHardwareListener::create().

  • platform/audio/AudioHardwareListener.cpp:

(WebCore::audioHardwareListenerCreationFunction):
(WebCore::AudioHardwareListener::setCreationFunction):
(WebCore::AudioHardwareListener::resetCreationFunction):
(WebCore::AudioHardwareListener::create):

  • platform/audio/AudioHardwareListener.h:
  • platform/audio/mac/AudioHardwareListenerMac.cpp:

(WebCore::AudioHardwareListener::create): Deleted.

Source/WebKit:

Add a new Remote pair of classes, RemoteAudioHardwareListener/Proxy.

  • CMakeLists.txt:
  • DerivedSources-input.xcfilelist:
  • DerivedSources-output.xcfilelist:
  • DerivedSources.make:
  • GPUProcess/GPUConnectionToWebProcess.cpp:

(WebKit::GPUConnectionToWebProcess::createAudioHardwareListener):
(WebKit::GPUConnectionToWebProcess::releaseAudioHardwareListener):

  • GPUProcess/GPUConnectionToWebProcess.h:
  • GPUProcess/GPUConnectionToWebProcess.messages.in:
  • GPUProcess/media/RemoteAudioHardwareListenerProxy.cpp:

(WebKit::RemoteAudioHardwareListenerProxy::RemoteAudioHardwareListenerProxy):
(WebKit::RemoteAudioHardwareListenerProxy::audioHardwareDidBecomeActive):
(WebKit::RemoteAudioHardwareListenerProxy::audioHardwareDidBecomeInactive):
(WebKit::RemoteAudioHardwareListenerProxy::audioOutputDeviceChanged):

  • GPUProcess/media/RemoteAudioHardwareListenerProxy.h:
  • GPUProcess/media/RemoteLegacyCDMFactoryProxy.cpp:
  • Scripts/webkit/messages.py:
  • Sources.txt:
  • SourcesCocoa.txt:
  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/GPU/media/RemoteAudioHardwareListener.cpp: Added.

(WebKit::RemoteAudioHardwareListener::create):
(WebKit::RemoteAudioHardwareListener::RemoteAudioHardwareListener):
(WebKit::RemoteAudioHardwareListener::~RemoteAudioHardwareListener):
(WebKit::RemoteAudioHardwareListener::gpuProcessConnectionDidClose):
(WebKit::RemoteAudioHardwareListener::audioHardwareDidBecomeActive):
(WebKit::RemoteAudioHardwareListener::audioHardwareDidBecomeInactive):
(WebKit::RemoteAudioHardwareListener::audioOutputDeviceChanged):

  • WebProcess/GPU/media/RemoteAudioHardwareListener.h:
  • WebProcess/GPU/media/RemoteAudioHardwareListener.messages.in:
  • WebProcess/GPU/media/RemoteAudioHardwareListenerIdentifier.h:
  • WebProcess/GPU/webrtc/MediaRecorderPrivate.h:
  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::setUseGPUProcessForMedia):

10:26 PM Changeset in webkit [272708] by jiewen_tan@apple.com
  • 3 edits in trunk/Source/WebKit

[WebAuthn] Update - [ASCAppleIDCredential initWithUser:...] to match the latest SPI
https://bugs.webkit.org/show_bug.cgi?id=221723
<rdar://problem/74038383>

Reviewed by Brent Fulgham.

No tests.

  • Platform/spi/Cocoa/AuthenticationServicesCoreSPI.h:
  • UIProcess/WebAuthentication/Cocoa/AuthenticatorPresenterCoordinator.mm:

(WebKit::AuthenticatorPresenterCoordinator::dimissPresenter):

10:22 PM Changeset in webkit [272707] by commit-queue@webkit.org
  • 42 edits
    1 copy in trunk

Use event loop to set title
https://bugs.webkit.org/show_bug.cgi?id=218496

Patch by Rob Buis <rbuis@igalia.com> on 2021-02-10
Reviewed by Darin Adler.

Source/WebCore:

Use event loop to set title to avoid calling WebFrameLoaderClient
within HTMLTitleElement::insertedIntoAncestor.

  • dom/Document.cpp:

(WebCore::Document::updateTitle):

  • dom/Document.h:

(WebCore::Document::titleWithDirection const):

  • loader/DocumentLoader.cpp:

(WebCore::DocumentLoader::setTitle):

  • loader/EmptyClients.h:
  • page/Chrome.cpp:

(WebCore::Chrome::print):

  • page/ChromeClient.h:

Source/WebKit:

Add title parameter to PrintFrame message.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::printFrame):

  • UIProcess/WebPageProxy.h:
  • UIProcess/WebPageProxy.messages.in:
  • WebProcess/WebCoreSupport/WebChromeClient.cpp:

(WebKit::WebChromeClient::print):

  • WebProcess/WebCoreSupport/WebChromeClient.h:

Source/WebKitLegacy/mac:

Adjust to API change.

  • WebCoreSupport/WebChromeClient.h:
  • WebCoreSupport/WebChromeClient.mm:

(WebChromeClient::print):

Source/WebKitLegacy/win:

Adjust to API change.

  • WebCoreSupport/WebChromeClient.cpp:

(WebChromeClient::print):

  • WebCoreSupport/WebChromeClient.h:

Tools:

Adapt unit tests to wait for title change tasks
to be processed.

  • TestWebKitAPI/Tests/WebKit/PageLoadState.cpp:

(TestWebKitAPI::didChangeTitle):
(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/UIDelegate.mm:

(TEST):

  • TestWebKitAPI/Tests/WebKitGLib/TestAuthentication.cpp:

(testWebViewAuthenticationFailure):
(testWebViewAuthenticationNoCredential):
(testWebViewAuthenticationSuccess):
(testWebViewAuthenticationEmptyRealm):

  • TestWebKitAPI/Tests/WebKitGLib/TestBackForwardList.cpp:

(testBackForwardListNavigation):

  • TestWebKitAPI/Tests/WebKitGLib/TestLoaderClient.cpp:

(testWebViewTitle):

  • TestWebKitAPI/Tests/WebKitGLib/TestSSL.cpp:

(testLoadFailedWithTLSErrors):

  • TestWebKitAPI/Tests/WebKitGLib/TestWebKitSettings.cpp:

(testWebKitSettingsJavaScriptMarkup):

  • TestWebKitAPI/Tests/WebKitGLib/TestWebKitWebView.cpp:

(testWebViewTitleChange):

LayoutTests:

Adapt tests to make sure pending title change tasks
are processed before the test is done.

  • TestExpectations:
  • fast/dom/title-text-property-2.html:
  • fast/dom/title-text-property-assigning-empty-string.html:
  • fast/dom/title-text-property.html:
  • http/tests/globalhistory/history-delegate-basic-title-expected.txt:
  • http/tests/globalhistory/history-delegate-basic-title.html:
  • http/tests/loading/basic-auth-load-URL-with-consecutive-slashes-expected.txt:
  • http/tests/loading/basic-auth-load-URL-with-consecutive-slashes.html:
  • http/tests/loading/redirect-with-no-location-crash-expected.txt:
  • http/tests/loading/redirect-with-no-location-crash.html:
  • platform/mac-wk2/TestExpectations:
  • platform/win/http/tests/loading/basic-auth-load-URL-with-consecutive-slashes-expected.txt: Copied from LayoutTests/http/tests/loading/basic-auth-load-URL-with-consecutive-slashes-expected.txt.
  • platform/wk2/http/tests/loading/basic-auth-load-URL-with-consecutive-slashes-expected.txt:
  • platform/wk2/http/tests/loading/redirect-with-no-location-crash-expected.txt:
9:28 PM Changeset in webkit [272706] by mmaxfield@apple.com
  • 25 edits
    1 move in trunk/Source

Move pal/spi/cocoa/CoreTextSPI.h to pal/spi/cf/CoreTextSPI.h
https://bugs.webkit.org/show_bug.cgi?id=221683

Reviewed by Simon Fraser.

Core Text has a C API, and doesn't depend on UIKit/AppKit. It also exists on Windows,
where there is no Cocoa. And pal/spi/cf already includes things like CoreAudioSPI.h
and CoreVideoSPI.h

Source/WebCore:

No new tests because there is no behavior change.

  • platform/cocoa/DragImageCocoa.mm:
  • platform/graphics/Font.cpp:
  • platform/graphics/cocoa/FontCacheCoreText.cpp:
  • platform/graphics/cocoa/FontFamilySpecificationCoreText.cpp:
  • platform/graphics/cocoa/FontPlatformDataCocoa.mm:
  • platform/graphics/cocoa/SystemFontDatabaseCoreText.h:
  • platform/graphics/coretext/FontCascadeCoreText.cpp:
  • platform/graphics/coretext/FontCoreText.cpp:
  • platform/graphics/coretext/FontPlatformDataCoreText.cpp:
  • platform/graphics/coretext/GlyphPageCoreText.cpp:
  • platform/graphics/mac/ComplexTextControllerCoreText.mm:
  • platform/graphics/mac/FontCustomPlatformData.cpp:
  • platform/graphics/mac/SimpleFontDataCoreText.cpp:
  • rendering/RenderThemeCocoa.mm:
  • rendering/RenderThemeIOS.mm:
  • testing/Internals.cpp:

Source/WebCore/PAL:

  • PAL.xcodeproj/project.pbxproj:
  • pal/PlatformMac.cmake:
  • pal/spi/cf/CoreTextSPI.h: Renamed from Source/WebCore/PAL/pal/spi/cocoa/CoreTextSPI.h.

Source/WebKit:

  • Shared/Cocoa/CoreTextHelpers.mm:
  • Shared/Cocoa/WebCoreArgumentCodersCocoa.mm:
  • UIProcess/ios/forms/WKNumberPadView.mm:
  • WebProcess/WebPage/WebPage.cpp:
9:23 PM Changeset in webkit [272705] by Ryan Haddad
  • 28 edits in trunk/Source/WebKit

Unreviewed, reverting r272702.

Caused assertion failure on macOS debug WK2 bots

Reverted changeset:

"Stop using GenericCallback from WebPageProxy"
https://bugs.webkit.org/show_bug.cgi?id=221653
https://trac.webkit.org/changeset/272702

8:49 PM Changeset in webkit [272704] by Ryan Haddad
  • 1 edit
    1 copy
    1 add
    2 deletes in trunk/LayoutTests

[ Big Sur ] imported/w3c/web-platform-tests/css/css-flexbox/contain-size-layout-abspos-flex-container-crash.html is failing
https://bugs.webkit.org/show_bug.cgi?id=221681

Unreviewed test gardening.

Consolidate test baselines for mac since the result is the same across configurations.

  • platform/mac-catalina/imported/w3c/web-platform-tests/css/css-flexbox/contain-size-layout-abspos-flex-container-crash-expected.txt: Removed.
  • platform/mac/imported/w3c/web-platform-tests/css/css-flexbox/contain-size-layout-abspos-flex-container-crash-expected.txt: Renamed from LayoutTests/platform/mac-catalina-wk1/imported/w3c/web-platform-tests/css/css-flexbox/contain-size-layout-abspos-flex-container-crash-expected.txt.
7:18 PM Changeset in webkit [272703] by rniwa@webkit.org
  • 9 edits in trunk/Source

Reduce the overhead of DocumentFragment in innerHTML & outerHTML
https://bugs.webkit.org/show_bug.cgi?id=221535
<rdar://problem/73861015>

Reviewed by Geoffrey Garen.

Source/WebCore:

This patch reduces the overhead of using DocumentFragment in innerHTMl and outerHTML setters by

  1. Cache DocumentFragment used for innerHTML and outerHTML.
  2. Adding a fast path to removeAllChildrenWithScriptAssertion when removing child nodes from (1)

immediately before appending it to the new parent. This is safe for now since no DOM nodes or API
store information about its root node or parent node when it's DocumentFragment, and and there
are no node flags to be updated or invalidated since we're removing already-disconnected nodes
to which no script ever had access up until this point. We release-assert these conditions before
going into the fast path.

No new tests since there should be no observable behavior change.

  • dom/ContainerNode.cpp:

(WebCore::ContainerNode::removeAllChildrenWithScriptAssertion): Added a fast path. See above.

  • dom/Document.cpp:

(WebCore::Document::commonTeardown): Clear m_documentFragmentForInnerOuterHTML as it would keep
the ownewr document (this Document) alive otherwise.
(WebCore::Document::documentFragmentForInnerOuterHTML): Added. Lazily create a DocumentFragment
used to parse the fragment for innerHTML and outerHTML setters. Remove any child nodes left in
the document fragment in the case the last call to replaceChildrenWithFragment took a fast path
for a single text node, which case we don't remove any child nodes from DocumentFragment.

  • dom/Document.h:
  • dom/DocumentFragment.h:

(WebCore::DocumentFragment::setIsDocumentFragmentForInnerOuterHTML): Added.

  • dom/Node.h:

(WebCore::Node::isDocumentFragmentForInnerOuterHTML const): Added.

  • editing/markup.cpp:

(WebCore::createFragmentForMarkup): Extracted from createFragmentForInnerOuterHTML to share code
between createFragmentForInnerOuterHTML and createContextualFragment.
(WebCore::createFragmentForInnerOuterHTML): Reuse the fragment in createFragmentForMarkup.
(WebCore::createContextualFragment): Don't reuse the fragment in createFragmentForMarkup as this
function is used by Range::createContextualFragment which exposes the document fragment to
arbitrary author scripts.
(WebCore::hasOneChild): Deleted since we now have Node::hasOneChild.
(WebCore::hasOneTextChild): Use Node::hasOneChild.
(WebCore::replaceChildrenWithFragment): Added assertions to make sure we don't have any child nodes
left after replacing the children.

Source/WTF:

Added a helper function for writing assertions.

  • wtf/WeakPtr.h:

(WTF::WeakPtrFactory::isInitialized const): Added.

7:06 PM Changeset in webkit [272702] by achristensen@apple.com
  • 28 edits in trunk/Source/WebKit

Stop using GenericCallback from WebPageProxy
https://bugs.webkit.org/show_bug.cgi?id=221653

Reviewed by Chris Dumez.

There are still two uses in the DrawingAreaProxy implementations, but those are quite tangled and deserve their own patch.

  • UIProcess/API/APIAttachment.cpp:

(API::Attachment::updateAttributes):

  • UIProcess/API/APIAttachment.h:
  • UIProcess/API/C/WKPage.cpp:

(CompletionHandler<void):
(WKPageRenderTreeExternalRepresentation):
(WKPageGetSourceForFrame):
(WKPageGetContentsAsString):
(WKPageGetBytecodeProfile):
(WKPageGetSamplingProfilerOutput):
(WTF::Function<void): Deleted.

  • UIProcess/API/Cocoa/APIAttachmentCocoa.mm:

(API::Attachment::updateFromSerializedRepresentation):

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _insertAttachmentWithFileWrapper:contentType:completion:]):
(-[WKWebView _getContentsAsStringWithCompletionHandler:]):
(-[WKWebView _getContentsOfAllFramesAsStringWithCompletionHandler:]):

  • UIProcess/API/Cocoa/_WKAttachment.mm:

(-[_WKAttachment setFileWrapper:contentType:completion:]):

  • UIProcess/Cocoa/WebViewImpl.mm:

(WebKit::WebViewImpl::startSpeaking):

  • UIProcess/GenericCallback.h:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::dispatchActivityStateChange):
(WebKit::WebPageProxy::getRenderTreeExternalRepresentation):
(WebKit::WebPageProxy::getSourceForFrame):
(WebKit::WebPageProxy::getContentsAsString):
(WebKit::WebPageProxy::getBytecodeProfile):
(WebKit::WebPageProxy::getSamplingProfilerOutput):
(WebKit::WebPageProxy::getSelectionOrContentsAsString):
(WebKit::WebPageProxy::didCommitLoadForFrame):
(WebKit::WebPageProxy::didFailLoadForFrame):
(WebKit::WebPageProxy::resetState):
(WebKit::WebPageProxy::installActivityStateChangeCompletionHandler):
(WebKit::WebPageProxy::insertAttachment):
(WebKit::WebPageProxy::updateAttachmentAttributes):
(WebKit::WebPageProxy::didInsertAttachmentWithIdentifier):
(WebKit::WebPageProxy::clearLoadDependentCallbacks): Deleted.
(WebKit::WebPageProxy::voidCallback): Deleted.
(WebKit::WebPageProxy::stringCallback): Deleted.
(WebKit::WebPageProxy::invalidateStringCallback): Deleted.

  • UIProcess/WebPageProxy.h:
  • UIProcess/WebPageProxy.messages.in:
  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView _shareForWebView:]):
(-[WKContentView _defineForWebView:]):
(-[WKContentView accessibilityRetrieveSpeakSelectionContent]):
(-[WKContentView applyAutocorrection:toString:withCompletionHandler:]):

  • UIProcess/ios/WebPageProxyIOS.mm:

(WebKit::WebPageProxy::applyAutocorrection):

  • UIProcess/mac/WKTextFinderClient.mm:

(-[WKTextFinderClient getSelectedText:]):

  • WebProcess/Notifications/NotificationPermissionRequestManager.h:
  • WebProcess/WebCoreSupport/WebNotificationClient.h:
  • WebProcess/WebPage/DrawingArea.h:

(WebKit::DrawingArea::activityStateDidChange):

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

(WebKit::RemoteLayerTreeDrawingArea::activityStateDidChange):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::reinitializeWebPage):
(WebKit::WebPage::setActivityState):
(WebKit::WebPage::getContentsAsString):
(WebKit::WebPage::getRenderTreeExternalRepresentation):
(WebKit::WebPage::getSelectionOrContentsAsString):
(WebKit::WebPage::getSourceForFrame):
(WebKit::WebPage::getBytecodeProfile):
(WebKit::WebPage::getSamplingProfilerOutput):
(WebKit::WebPage::insertAttachment):
(WebKit::WebPage::updateAttachmentAttributes):

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

(WebKit::WebPage::applyAutocorrection):

  • WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.h:
  • WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:

(WebKit::TiledCoreAnimationDrawingArea::handleActivityStateChangeCallbacks):
(WebKit::TiledCoreAnimationDrawingArea::activityStateDidChange):

6:25 PM Changeset in webkit [272701] by Alan Bujtas
  • 5 edits in trunk/Source/WebCore

[LFC][IFC] Logical width of a line box is equal to the inner logical width of its containing block
https://bugs.webkit.org/show_bug.cgi?id=221648

Reviewed by Antti Koivisto.

This is is used when horizontal scrolling is allowed (not supported atm).

  • layout/inlineformatting/InlineFormattingContextGeometry.cpp:

(WebCore::Layout::LineBoxBuilder::build):
(WebCore::Layout::LineBoxBuilder::constructInlineLevelBoxes):

  • layout/inlineformatting/InlineLineBox.cpp:

(WebCore::Layout::LineBox::LineBox):
(WebCore::Layout::m_contentLogicalWidth):

  • layout/inlineformatting/InlineLineBox.h:

(WebCore::Layout::LineBox::contentLogicalWidth const):

6:25 PM Changeset in webkit [272700] by ddkilzer@apple.com
  • 2 edits in trunk/Source/WebCore

WebCore::genericFamily() should use checked_cf_cast<>
<https://webkit.org/b/221521>

Reviewed by Sam Weinig.

  • platform/graphics/cocoa/SystemFontDatabaseCoreText.cpp:

(WebCore::genericFamily):

  • Switch from dynamic_cf_cast<> to checked_cf_cast<> because we always expect a CFStringRef type object to be returned from CTFontDescriptorCopyAttribute().
6:22 PM Changeset in webkit [272699] by don.olmstead@sony.com
  • 2 edits in trunk

[CMake] Enable hidden visibility on JSCOnly
https://bugs.webkit.org/show_bug.cgi?id=221726

Reviewed by Yusuke Suzuki.

Turn on hidden visibility for all *NIX ports of JSCOnly. To properly export the symbols
from WTF/bmalloc OBJECT libraries are used. This requires CMake 3.12 or later to
function properly.

  • Source/cmake/OptionsJSCOnly.cmake:
5:26 PM Changeset in webkit [272698] by Simon Fraser
  • 2 edits in trunk/Source/WebKit

REGRESSION (r269824) IOSurface allocation failure causes crash in RemoteLayerBackingStore::display()
https://bugs.webkit.org/show_bug.cgi?id=221729
rdar://72651289

Reviewed by Tim Horton.

The refactoring in r269824 dropped a null check on the front buffer surface (IOSurface allocation
can fail when the process reaches a hardcoded limit). Restore the null check.

  • Shared/RemoteLayerTree/RemoteLayerBackingStore.mm:

(WebKit::RemoteLayerBackingStore::display):

4:11 PM Changeset in webkit [272697] by chris.reid@sony.com
  • 4 edits
    3 adds in trunk

[PlayStation] Add initial RESOURCE_USAGE implementation
https://bugs.webkit.org/show_bug.cgi?id=221706

Reviewed by Ross Kirsling.

.:

  • Source/cmake/OptionsPlayStation.cmake:

Source/WebCore:

Add initial RESOURCE_USAGE data for the inspector.
CPU usage and total memory information is just stubbed out for now.

  • PlatformPlayStation.cmake:
  • page/playstation/ResourceUsageOverlayPlayStation.cpp: Added.
  • page/playstation/ResourceUsageThreadPlayStation.cpp: Added.
4:07 PM Changeset in webkit [272696] by Peng Liu
  • 9 edits in trunk/Source

Remove MediaSourcePrivateClient::monitorSourceBuffers()
https://bugs.webkit.org/show_bug.cgi?id=220945

Reviewed by Youenn Fablet.

Source/WebCore:

Remove MediaSourcePrivateClient::monitorSourceBuffers() for all ports except GStreamer
port because MediaSourcePrivate does not call it. This patch also adds some log messages
related to seeking.

No new tests, no functional change.

  • Modules/mediasource/MediaSource.h:
  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::seekWithTolerance):

  • platform/graphics/MediaSourcePrivateClient.h:
  • platform/graphics/SourceBufferPrivate.cpp:

(WebCore::SourceBufferPrivate::appendCompleted):

  • platform/graphics/avfoundation/objc/MediaSourcePrivateAVFObjC.h:

Source/WebKit:

  • GPUProcess/media/RemoteMediaSourceProxy.cpp:

(WebKit::RemoteMediaSourceProxy::monitorSourceBuffers): Deleted.

  • GPUProcess/media/RemoteMediaSourceProxy.h:
3:56 PM Changeset in webkit [272695] by Ruben Turcios
  • 40 edits
    18 deletes in branches/safari-612.1.3-branch

Cherry-pick r272561. rdar://problem/74210218

Unreviewed, reverting r272480, r272481, and r272500.
https://bugs.webkit.org/show_bug.cgi?id=221586

Caused assertion failure seen with EME tests

Reverted changesets:

"Permission request API for MediaKeySystem access support"
https://bugs.webkit.org/show_bug.cgi?id=221187
https://trac.webkit.org/changeset/272480

"Unreviewed, build fix after r272480"
https://trac.webkit.org/changeset/272481

"Permission request API for MediaKeySystem access support"
https://bugs.webkit.org/show_bug.cgi?id=221187
https://trac.webkit.org/changeset/272500

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

3:50 PM Changeset in webkit [272694] by jiewen_tan@apple.com
  • 12 edits in trunk

[WebAuthn] Produce ClientDataJSON in the SPI
https://bugs.webkit.org/show_bug.cgi?id=221623
<rdar://problem/71509394>

Reviewed by Brent Fulgham.

Source/WebKit:

Instead of asking the clients of the SPI to pre-calculate the ClientDataJSON hash for us, we do
that in the SPI space ourselves.

Covered by API tests.

  • UIProcess/API/Cocoa/_WKAuthenticatorAssertionResponse.mm:

(-[_WKAuthenticatorAssertionResponse initWithClientDataJSON:rawId:extensions:authenticatorData:signature:userHandle:]):
(-[_WKAuthenticatorAssertionResponse initWithRawId:extensions:authenticatorData:signature:userHandle:]): Deleted.

  • UIProcess/API/Cocoa/_WKAuthenticatorAssertionResponseInternal.h:
  • UIProcess/API/Cocoa/_WKAuthenticatorAttestationResponse.mm:

(-[_WKAuthenticatorAttestationResponse initWithClientDataJSON:rawId:extensions:attestationObject:]):
(-[_WKAuthenticatorAttestationResponse initWithRawId:extensions:attestationObject:]): Deleted.

  • UIProcess/API/Cocoa/_WKAuthenticatorAttestationResponseInternal.h:
  • UIProcess/API/Cocoa/_WKAuthenticatorResponse.h:
  • UIProcess/API/Cocoa/_WKAuthenticatorResponse.mm:

(-[_WKAuthenticatorResponse initWithClientDataJSON:rawId:extensions:]):
(-[_WKAuthenticatorResponse initWithRawId:extensions:]): Deleted.

  • UIProcess/API/Cocoa/_WKAuthenticatorResponseInternal.h:

Adds a field to return the JSON serialized bytes for the ClientDataJSON.

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

(produceClientDataJson):
(produceClientDataJsonHash):
(wkAuthenticatorAttestationResponse):
(-[_WKWebAuthenticationPanel makeCredentialWithChallenge:origin:options:completionHandler:]):
(wkAuthenticatorAssertionResponse):
(-[_WKWebAuthenticationPanel getAssertionWithChallenge:origin:options:completionHandler:]):
(-[_WKWebAuthenticationPanel makeCredentialWithHash:options:completionHandler:]): Deleted.
(-[_WKWebAuthenticationPanel getAssertionWithHash:options:completionHandler:]): Deleted.
Modifies the SPI to accept a challenge and an origin to calculate the ClientDataJSON.

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/_WKWebAuthenticationPanel.mm:

(TestWebKitAPI::TEST):

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

Tag Safari-611.1.17.

3:44 PM Changeset in webkit [272692] by Ruben Turcios
  • 2 edits in trunk/Tools

Adding self to contributor.json file.

  • Scripts/webkitpy/common/config/contributors.json:
3:31 PM Changeset in webkit [272691] by Alan Coon
  • 46 edits in branches/safari-611-branch

Revert r272541. rdar://problem/74208306

3:27 PM Changeset in webkit [272690] by don.olmstead@sony.com
  • 7 edits in trunk/Source

Non-unified build fixes, early February 2021 edition
https://bugs.webkit.org/show_bug.cgi?id=221701

Unreviewed non-unified build fixes.

Source/JavaScriptCore:

  • bytecode/IterationModeMetadata.h:
  • bytecode/SetPrivateBrandStatus.h:

Source/WebCore:

  • rendering/RenderImage.cpp:

Source/WebKit:

  • NetworkProcess/PrivateClickMeasurementManager.cpp:
3:24 PM Changeset in webkit [272689] by Alan Coon
  • 8 edits in branches/safari-611-branch/Source

Versioning.

WebKit-7611.1.17

3:20 PM Changeset in webkit [272688] by Russell Epstein
  • 1 copy in tags/Safari-611.1.14.0.2

Tag Safari-611.1.14.0.2.

3:20 PM Changeset in webkit [272687] by Russell Epstein
  • 1 copy in tags/Safari-611.1.14.1.2

Tag Safari-611.1.14.1.2.

2:35 PM Changeset in webkit [272686] by Ryan Haddad
  • 4 edits in trunk

Unreviewed, reverting r272507.

Caused TestWebKitAPI.WebKit.OnDeviceChangeCrash to become a
flaky timeout

Reverted changeset:

"[MacOS] Enable Audio Capture in GPUProcess by default"
https://bugs.webkit.org/show_bug.cgi?id=221400
https://trac.webkit.org/changeset/272507

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

We should not static_assert on an ENABLE() macro.
https://bugs.webkit.org/show_bug.cgi?id=221714
rdar://74197896

Reviewed by Yusuke Suzuki.

This is because the ENABLE() macro reduces to a macro expression
(defined ENABLE_##WTF_FEATURE && ENABLE_##WTF_FEATURE) which is not a C++
expression that a static_assert can evaluate.

  • llint/LLIntData.cpp:
  • llint/LLIntData.h:

(JSC::LLInt::getCodePtr):
(JSC::LLInt::getWide16CodePtr):
(JSC::LLInt::getWide32CodePtr):

1:34 PM Changeset in webkit [272684] by BJ Burg
  • 21 edits in trunk/Source

[Cocoa] Web Inspector: add support for evaluating script on the inspected page via _WKInspectorExtension
https://bugs.webkit.org/show_bug.cgi?id=221567
<rdar://71208534>

Reviewed by Devin Rousso.

Source/WebCore:

This patch adds support for handling returned Promise values in an intelligent way.
If a callback was supplied, then wait for the promise to settle and invoke the
callback with its settled result. To support this, the dispatcher keeps a map of
unfulfilled DOMPromises and the callback that is chained to the DOMPromise.

  • inspector/InspectorFrontendAPIDispatcher.h:
  • inspector/InspectorFrontendAPIDispatcher.cpp:

(WebCore::InspectorFrontendAPIDispatcher::~InspectorFrontendAPIDispatcher):
(WebCore::InspectorFrontendAPIDispatcher::reset):
Clear the pending responses map when destructing or resetting the dispatcher.

(WebCore::InspectorFrontendAPIDispatcher::frontendGlobalObject):
Upgrade from JSGlobalObject to JSDOMGlobalObject, which is needed to call JSDOMPromise methods.

(WebCore::InspectorFrontendAPIDispatcher::evaluateOrQueueExpression):
The meat of this patch. Chain a Function onto the JSDOMPromise. Inside the lambda function,
try to look up and invoke the corresponding EvaluationResultHandler for this evaluation result.

(WebCore::InspectorFrontendAPIDispatcher::invalidatePendingResponses):
Since these are CompletionHandlers we need to call them one way or another.

Source/WebInspectorUI:

This patch adds InspectorFrontendAPI.evaluateScriptForExtension().

  • UserInterface/Controllers/WebInspectorExtensionController.js:

(WI.WebInspectorExtensionController.prototype.evaluateScriptForExtension):
Translate arguments into a corresponding RuntimeAgent.evaluate invocation.
The parameters are not yet implemented, and will be filled in by a subsequent patch.

  • UserInterface/Models/WebInspectorExtension.js: Add new error enum value.
  • UserInterface/Protocol/InspectorFrontendAPI.js:

(InspectorFrontendAPI.evaluateScriptForExtension):
Plumbing.

Source/WebKit:

This patch adds a new method to _WKInspectorExtension which is used to implement
browser.devtools.inspectedWindow.eval in the Web Extensions API.

  • Shared/InspectorExtensionTypes.h:
  • Shared/InspectorExtensionTypes.cpp:

(WebKit::inspectorExtensionErrorToString):
Add enum value NotImplemented.

  • UIProcess/API/APIInspectorExtension.h:
  • UIProcess/API/APIInspectorExtension.cpp:

(API::InspectorExtension::evaluateScript):
Plumbing.

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

(nsErrorFromExceptionDetails):
Move this helper up near the top as it is now exposed via <WebKit/WKWebViewInternal.h>.

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

(-[_WKInspectorExtension evaluateScript:frameURL:contextSecurityOrigin:useContentScriptContext:completionHandler:]):
Add new method to evaluate script in the inspected page. The semantics of the parameters
are intended to match those of browser.devtools.inspectedWindow.eval.

  • UIProcess/Inspector/WebInspectorUIExtensionControllerProxy.h:
  • UIProcess/Inspector/WebInspectorUIExtensionControllerProxy.cpp:

(WebKit::WebInspectorUIExtensionControllerProxy::evaluateScriptForExtension):
Plumbing.

  • WebProcess/Inspector/WebInspectorUIExtensionController.h:
  • WebProcess/Inspector/WebInspectorUIExtensionController.messages.in:

Add new message for evaluateScript.

  • WebProcess/Inspector/WebInspectorUIExtensionController.cpp:

(WebKit::WebInspectorUIExtensionController::parseInspectorExtensionErrorFromEvaluationResult):
Support the new error enum value.

(WebKit::WebInspectorUIExtensionController::unregisterExtension):
(WebKit::WebInspectorUIExtensionController::createTabForExtension):
Drive-by, simplify this by passing the EvaluationResult value without unwrapping.

(WebKit::WebInspectorUIExtensionController::evaluateScriptForExtension):
This is the meat of the patch. Call out to InspectorFrontendAPI.evaluateScriptForExtension.
Inspect the return value and invoke the completion handler with the result or an error.

1:27 PM Changeset in webkit [272683] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

[MacOS] animations/keyframe-pseudo-shadow.html is flakey failing.
https://bugs.webkit.org/show_bug.cgi?id=221491

Unreviewed test gardening.

Patch by Amir Mark Jr <Amir Mark Jr.> on 2021-02-10

  • platform/mac/TestExpectations:
1:16 PM Changeset in webkit [272682] by Peng Liu
  • 2 edits in trunk/LayoutTests

[GPUP] Reset expectations of media related tests
https://bugs.webkit.org/show_bug.cgi?id=221700

Unreviewed test gardening.

  • gpu-process/TestExpectations:
1:06 PM Changeset in webkit [272681] by aakash_jain@apple.com
  • 7 edits
    1 delete in trunk/Tools

[build.webkit.org] Remove code specific to old Buildbot
https://bugs.webkit.org/show_bug.cgi?id=221558

Reviewed by Jonathan Bedard.

  • CISupport/build-webkit-org/buildbot.tac:
  • CISupport/build-webkit-org/loadConfig.py:
  • CISupport/build-webkit-org/loadConfig_unittest.py:
  • CISupport/build-webkit-org/master.cfg: Removed.
  • CISupport/build-webkit-org/steps.py:

(TestWithFailureCount.getText): Deleted.
(TestWithFailureCount.getText2): Deleted.
(CompileWebKit.createSummary): Deleted.
(RunWebKitTests._parseRunWebKitTestsOutput): Deleted.
(RunWebKitTests.commandComplete): Deleted.
(RunWebKitTests.getText): Deleted.
(RunWebKitTests.getText2): Deleted.
(ExtractTestResults.start): Deleted.

  • CISupport/ews-build/steps.py:
  • CISupport/ews-build/steps_unittest.py:
1:04 PM Changeset in webkit [272680] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebKit

WebGL IPC messages are delivered out of order
https://bugs.webkit.org/show_bug.cgi?id=221488

Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2021-02-10
Reviewed by Chris Dumez.

Sync messages are delivered before earlier async messages, if some other
WebKit part waits on sync replies.

No new tests, makes the existing WebGL --use-gpu-process tests a bit less
flakey.

  • WebProcess/GPU/graphics/RemoteGraphicsContextGLProxy.h:
  • WebProcess/GPU/graphics/RemoteGraphicsContextGLProxy.cpp:

Mark all async messages with IPC::SendOption::DispatchMessageEvenWhenWaitingForSyncReply.
There are no messages in the receiver message list that would make sense
to be delivered out of order.

12:55 PM Changeset in webkit [272679] by ap@apple.com
  • 7 edits in trunk/Source

Do not differentiate between Release and Production via ENABLE_DEVELOPER_MODE
https://bugs.webkit.org/show_bug.cgi?id=221684

Reviewed by Sam Weinig.

It is invalid to create behaviors that are different between these. There is
almost no difference in usage scenarios between build modes - either can be
produced by CI for validation, either can be used for local testing, etc.

  • Configurations/Base.xcconfig:
  • Configurations/DebugRelease.xcconfig:

Source/WebCore:

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::ensureMediaControlsInjectedScript):

12:34 PM Changeset in webkit [272678] by Chris Dumez
  • 5 edits
    2 adds in trunk/Source/WebCore

WebCore::createBusFromInMemoryAudioFile() may crash under ExtAudioFileRead()
https://bugs.webkit.org/show_bug.cgi?id=221642
<rdar://72789841>

Reviewed by Geoffrey Garen.

The crash seems to indicate we are passing an AudioBufferList to ExtAudioFileRead()
that contains a null buffer. It is not obvious how this is happening but I have made
the following changes:

  1. createAudioBufferList() / destroyAudioListBuffer() implementation is now shared on both macOS and iOS. The implementation now uses fastCalloc and returns null in case of failure to allocate.
  2. createAudioBufferList() was renamed to tryCreateAudioBufferList() to make it clear it can return null. All call sites now properly deal with tryCreateAudioBufferList() potentially return null
  3. Add a new validateAudioBufferList() function which makes sure that the AudioBufferList we are about to pass to ExtAudioFileRead() does not contain any null buffer. In case of validation failure, we log an error, generate a simulated crash log and early return gracefully instead of crashing later on.
  4. Added more assertions to help catch bugs.
  • SourcesCocoa.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • platform/audio/cocoa/AudioFileReaderCocoa.cpp: Added.

(WebCore::tryCreateAudioBufferList):
(WebCore::destroyAudioBufferList):
(WebCore::validateAudioBufferList):

  • platform/audio/cocoa/AudioFileReaderCocoa.h: Added.
  • platform/audio/ios/AudioFileReaderIOS.cpp:

(WebCore::AudioFileReader::createBus):
(WebCore::createAudioBufferList): Deleted.
(WebCore::destroyAudioBufferList): Deleted.

  • platform/audio/mac/AudioFileReaderMac.cpp:

(WebCore::AudioFileReader::createBus):
(WebCore::createAudioBufferList): Deleted.
(WebCore::destroyAudioBufferList): Deleted.

12:34 PM Changeset in webkit [272677] by Alan Coon
  • 1 copy in tags/Safari-611.1.16

Tag Safari-611.1.16.

12:31 PM Changeset in webkit [272676] by commit-queue@webkit.org
  • 1 edit
    2 moves in trunk/LayoutTests

Rename testcase to indicate hang
https://bugs.webkit.org/show_bug.cgi?id=221375

Patch by Rob Buis <rbuis@igalia.com> on 2021-02-10
Reviewed by Ryosuke Niwa.

Rename testcase to indicate hang rather than crash.

  • plugins/embed-creation-hang-expected.txt: Renamed from LayoutTests/plugins/embed-creation-crash-expected.txt.
  • plugins/embed-creation-hang.html: Renamed from LayoutTests/plugins/embed-creation-crash.html.
12:25 PM Changeset in webkit [272675] by Alan Coon
  • 6 edits in branches/safari-611-branch

Revert r272538. rdar://problem/74183111

12:25 PM Changeset in webkit [272674] by Alan Coon
  • 2 edits in branches/safari-611-branch/Source/JavaScriptCore

Revert r272539. rdar://problem/74183111

12:16 PM Changeset in webkit [272673] by Alan Coon
  • 8 edits in branches/safari-611-branch/Source

Versioning.

WebKit-7611.1.16

12:05 PM Changeset in webkit [272672] by Russell Epstein
  • 2 edits in branches/safari-611.1.14.1-branch/Source/JavaScriptCore

Cherry-pick r272663. rdar://problem/74197958

Don't crash when reparsing an arrow function and the parsing invariant is broken
https://bugs.webkit.org/show_bug.cgi?id=221632
<rdar://71874091>

Reviewed by Tadeu Zagallo and Mark Lam.

We have code where we assert that when reparsing an arrow function,
we see the '=>' token after parsing the parameters. Since we already
parsed the arrow function before, this assertion makes sense. But somehow,
this is leading to crashes on real websites. We don't know why this invariant
is being broken. I'm changing this to a debug assert, and we're tracking
the full fix in:
https://bugs.webkit.org/show_bug.cgi?id=221633

  • parser/Parser.cpp: (JSC::Parser<LexerType>::parseInner):

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

12:04 PM Changeset in webkit [272671] by Russell Epstein
  • 8 edits in branches/safari-611.1.14.1-branch/Source

Versioning.

WebKit-7611.1.14.1.2

12:02 PM Changeset in webkit [272670] by commit-queue@webkit.org
  • 10 edits
    4 adds in trunk

Web Inspector: Display all CSS grids on page in Layout panel
https://bugs.webkit.org/show_bug.cgi?id=221145
<rdar://problem/73764515>

Patch by Razvan Caliman <Razvan Caliman> on 2021-02-10
Reviewed by Devin Rousso.

Source/WebInspectorUI:

Show a list of CSS Grid containers in the Layout sidebar panel of the Elements Tab.
Whenever grid nodes are added to or removed from the page, the list is updated.

Clicking on a checkbox next to a grid node toggles the Grid overlay for that node.
Changing the color of the swatch next to a grid node updates the color of the overlay if it is visible.

Add OverlayManager to mediate showing and hiding Grid overlays.

  • Localizations/en.lproj/localizedStrings.js:
  • UserInterface/Base/Main.js:

(WI.loaded):

  • UserInterface/Controllers/OverlayManager.js: Added.

(WI.OverlayManager):
(WI.OverlayManager.prototype.get nodesWithGridOverlay):
(WI.OverlayManager.prototype.showGridOverlay):
(WI.OverlayManager.prototype.hideGridOverlay):
OverlayManager is a singleton used to show and hide overlays for nodes on the inspected page.
It maintains state of all overlays that are visible on the page. It fires events when they are shown or hidden.

  • UserInterface/Main.html:
  • UserInterface/Models/DOMNode.js:

(WI.DOMNode):
(WI.DOMNode.prototype.set layoutContextType):
(WI.DOMNode.prototype.markDestroyed):
Whenever a node is removed from the DOM, its layoutContextType property changes to null.
This dispatches a WI.DOMNode.Event.LayoutContextTypeChanged event which is handled in CSSGridSection
to refresh the list of grid node containers on the page.

  • UserInterface/Views/BoxModelDetailsSectionRow.js:

(WI.BoxModelDetailsSectionRow.prototype.set nodeStyles):

  • UserInterface/Views/CSSGridSection.css: Added.

(.css-grid-section .node-link):
(.css-grid-section .heading):

  • UserInterface/Views/CSSGridSection.js: Added.

(WI.CSSGridSection):
(WI.CSSGridSection.prototype.attached):
(WI.CSSGridSection.prototype.detached):
(WI.CSSGridSection.prototype.initialLayout):
(WI.CSSGridSection.prototype.layout):
(WI.CSSGridSection.prototype._handleGridOverlayStateChanged):
(WI.CSSGridSection.prototype._handleLayoutContextTypeChanged):
(WI.CSSGridSection.prototype._refreshGridNodeSet):
CSSGridSection is a new View under LayoutDetailsSidebarPanel.
It holds a list of grid nodes on the page and a set of configuration options
to pass when showing the Grid overlay (upcoming in separate patch).

  • UserInterface/Views/LayoutDetailsSidebarPanel.css: Added.

(.details-section.layout-css-grid > .content > .group > .row > .css-grid-section):

  • UserInterface/Views/LayoutDetailsSidebarPanel.js:

(WI.LayoutDetailsSidebarPanel.prototype.initialLayout):

LayoutTests:

DOMNode.layoutContextType is null when not defined.
Update layout test and corresponding expected result.

  • inspector/css/nodeLayoutContextTypeChanged-expected.txt:
  • inspector/css/nodeLayoutContextTypeChanged.html:
11:58 AM Changeset in webkit [272669] by Wenson Hsieh
  • 25 edits in trunk

Use HAVE(PEPPER_UI_CORE) instead of PLATFORM(WATCHOS) to guard code that uses PepperUICore
https://bugs.webkit.org/show_bug.cgi?id=221679

Reviewed by Tim Horton.

Source/WebKit:

Use HAVE(PEPPER_UI_CORE) instead of PLATFORM(WATCHOS) in code that depends on PepperUICore, either directly
or indirectly. While technically equivalent, the former is more semantically precise. Common examples of this
include dependencies on Quickboard for text input, or PepperUICore category extensions on common UIKit classes
(e.g. digital crown support in WKScrollView.mm). No change in behavior.

Inspired by <https://bugs.webkit.org/show_bug.cgi?id=221649#c2>.

  • Platform/spi/watchos/PepperUICoreSPI.h:
  • UIProcess/ios/WKContentViewInteraction.h:
  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView _willStartScrollingOrZooming]):
(-[WKContentView _didEndScrollingOrZooming]):
(-[WKContentView _updateTextInputTraits:]):
(-[WKContentView _elementDidFocus:userIsInteracting:blurPreviousNode:activityStateChanges:userObject:]):
(-[WKContentView _elementDidBlur]):
(-[WKContentView reloadContextViewForPresentedListViewController]):
(-[WKContentView _wheelChangedWithEvent:]):
(-[WKContentView _simulateTextEntered:]):
(-[WKContentView selectFormAccessoryPickerRow:]):
(-[WKContentView selectFormAccessoryHasCheckedItemAtRow:]):
(-[WKContentView textContentTypeForTesting]):
(-[WKContentView formInputLabel]):
(-[WKContentView setTimePickerValueToHour:minute:]):

  • UIProcess/ios/WKScrollView.mm:

(-[WKScrollView initWithFrame:]):

  • UIProcess/ios/forms/WKDatePickerViewController.h:
  • UIProcess/ios/forms/WKDatePickerViewController.mm:
  • UIProcess/ios/forms/WKFocusedFormControlView.h:
  • UIProcess/ios/forms/WKFocusedFormControlView.mm:
  • UIProcess/ios/forms/WKNumberPadView.h:
  • UIProcess/ios/forms/WKNumberPadView.mm:
  • UIProcess/ios/forms/WKNumberPadViewController.h:
  • UIProcess/ios/forms/WKNumberPadViewController.mm:
  • UIProcess/ios/forms/WKQuickboardListViewController.h:
  • UIProcess/ios/forms/WKQuickboardListViewController.mm:
  • UIProcess/ios/forms/WKSelectMenuListViewController.h:
  • UIProcess/ios/forms/WKSelectMenuListViewController.mm:
  • UIProcess/ios/forms/WKTextInputListViewController.h:
  • UIProcess/ios/forms/WKTextInputListViewController.mm:
  • UIProcess/ios/forms/WKTimePickerViewController.h:
  • UIProcess/ios/forms/WKTimePickerViewController.mm:

Source/WTF:

Add the HAVE(PEPPER_UI_CORE) compile-time flag.

  • wtf/PlatformHave.h:

Tools:

  • WebKitTestRunner/cocoa/TestRunnerWKWebView.mm:

(isQuickboardViewController):

11:53 AM Changeset in webkit [272668] by Russell Epstein
  • 2 edits in branches/safari-611.1.14.0-branch/Source/JavaScriptCore

Cherry-pick r272663. rdar://problem/74197969

Don't crash when reparsing an arrow function and the parsing invariant is broken
https://bugs.webkit.org/show_bug.cgi?id=221632
<rdar://71874091>

Reviewed by Tadeu Zagallo and Mark Lam.

We have code where we assert that when reparsing an arrow function,
we see the '=>' token after parsing the parameters. Since we already
parsed the arrow function before, this assertion makes sense. But somehow,
this is leading to crashes on real websites. We don't know why this invariant
is being broken. I'm changing this to a debug assert, and we're tracking
the full fix in:
https://bugs.webkit.org/show_bug.cgi?id=221633

  • parser/Parser.cpp: (JSC::Parser<LexerType>::parseInner):

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

11:50 AM Changeset in webkit [272667] by Russell Epstein
  • 8 edits in branches/safari-611.1.14.0-branch/Source

Versioning.

WebKit-7611.1.14.0.2

11:41 AM Changeset in webkit [272666] by achristensen@apple.com
  • 2 edits in trunk/Source/WebKit

REGRESSION (r272628): [macOS] TestWebKitAPI.WKWebView.SnapshotImageError is consistently failing
https://bugs.webkit.org/show_bug.cgi?id=221702

I got a little carried away with my error reduction. This one needs an error.

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView takeSnapshotWithConfiguration:completionHandler:]):

11:27 AM Changeset in webkit [272665] by Aditya Keerthi
  • 2 edits in trunk/Source/WebCore

[iOS][FCR] Add reduced motion animation for indeterminate progress bars
https://bugs.webkit.org/show_bug.cgi?id=221680
<rdar://problem/74191515>

Reviewed by Wenson Hsieh.

The reduced motion animation for indeterminate progress bars is an
opacity pulse from 30% to 60%.

  • rendering/RenderThemeIOS.mm:

(WebCore::RenderThemeIOS::paintProgressBarWithFormControlRefresh):

11:01 AM Changeset in webkit [272664] by aakash_jain@apple.com
  • 5 edits in trunk/Tools

[ews] Remove old build.webkit.org unit-tests
https://bugs.webkit.org/show_bug.cgi?id=221678

Reviewed by Jonathan Bedard.

  • CISupport/ews-build/factories.py:

(ServicesFactory.init):

  • CISupport/ews-build/factories_unittest.py:

(TestTestsFactory.test_services_factory):

  • CISupport/ews-build/steps.py:

(ReRunWebKitPerlTests.evaluateCommand):
(RunBuildWebKitOrgOldUnitTests): Deleted.
(RunBuildWebKitOrgOldUnitTests.init): Deleted.
(RunBuildWebKitOrgOldUnitTests.getResultSummary): Deleted.

  • CISupport/ews-build/steps_unittest.py:

(TestRunBuildWebKitOrgUnitTests.test_failure):
(TestRunBuildWebKitOrgOldUnitTests): Deleted.
(TestRunBuildWebKitOrgOldUnitTests.setUp): Deleted.
(TestRunBuildWebKitOrgOldUnitTests.tearDown): Deleted.
(TestRunBuildWebKitOrgOldUnitTests.test_success): Deleted.
(TestRunBuildWebKitOrgOldUnitTests.test_failure): Deleted.

10:46 AM Changeset in webkit [272663] by sbarati@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Don't crash when reparsing an arrow function and the parsing invariant is broken
https://bugs.webkit.org/show_bug.cgi?id=221632
<rdar://71874091>

Reviewed by Tadeu Zagallo and Mark Lam.

We have code where we assert that when reparsing an arrow function,
we see the '=>' token after parsing the parameters. Since we already
parsed the arrow function before, this assertion makes sense. But somehow,
this is leading to crashes on real websites. We don't know why this invariant
is being broken. I'm changing this to a debug assert, and we're tracking
the full fix in:
https://bugs.webkit.org/show_bug.cgi?id=221633

  • parser/Parser.cpp:

(JSC::Parser<LexerType>::parseInner):

10:26 AM Changeset in webkit [272662] by Antti Koivisto
  • 5 edits
    2 adds in trunk

[LFC][Integration] Paint invalidation for inline element style changes
https://bugs.webkit.org/show_bug.cgi?id=221669

Reviewed by Zalan Bujtas.

Source/WebCore:

Test: fast/repaint/inline-style-change.html

Compute the repaint rect for RenderInline.

  • layout/integration/LayoutIntegrationLineLayout.cpp:

(WebCore::LayoutIntegration::LineLayout::visualOverflowBoundingBoxRectFor const):

  • layout/integration/LayoutIntegrationLineLayout.h:
  • rendering/RenderInline.cpp:

(WebCore::RenderInline::linesVisualOverflowBoundingBox const):
(WebCore::RenderInline::clippedOverflowRectForRepaint const):

LayoutTests:

  • fast/repaint/inline-style-change-expected.txt: Added.
  • fast/repaint/inline-style-change.html: Added.
10:23 AM Changeset in webkit [272661] by Patrick Griffis
  • 2 edits in trunk/Tools

Update status in contributors.json

Unreviewed.

  • Scripts/webkitpy/common/config/contributors.json:
9:38 AM Changeset in webkit [272660] by Kate Cheney
  • 11 edits in trunk/Source/WebKit

PCM: Expired reports get sent at the same time after a session restart
https://bugs.webkit.org/show_bug.cgi?id=221555
<rdar://problem/73724816>

Reviewed by John Wilander.

Since PCM data is now persisted, we need to address the case of a
session-restart after 24-48+ hours. We should not send all overdue
attributions in the same burst in case multiple have the same destination
and could identify a user cross-site.

This patch kicks off the timer to fire pending attributions on session-start
and sends one report at a time. If more than one overdue report exists
at any time, we schedule the timer for a random interval between 15 and
30 minutes.

In theory this could result in some attributions never being sent if a
user keeps quitting and restarting a session. In practice this is
probably unlikely. Protecting the user's privacy is a hard requirement,
so we think possible starvation of some reports is the right tradeoff.

  • NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp:

(WebKit::ResourceLoadStatisticsDatabaseStore::clearSentAttribution):
(WebKit::ResourceLoadStatisticsDatabaseStore::clearSentAttributions): Deleted.

  • NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.h:
  • NetworkProcess/Classifier/ResourceLoadStatisticsMemoryStore.h:
  • NetworkProcess/Classifier/ResourceLoadStatisticsStore.h:
  • NetworkProcess/Classifier/WebResourceLoadStatisticsStore.cpp:

(WebKit::WebResourceLoadStatisticsStore::clearSentAttribution):
(WebKit::WebResourceLoadStatisticsStore::clearSentAttributions): Deleted.

  • NetworkProcess/Classifier/WebResourceLoadStatisticsStore.h:

Remove unused SQLite query. Update the query to sort attributed PCM
by earliestTimeToSend, which seems important now that we send only
one overdue report at a time. Change the clearSentAttributions
function to take only a single attribution.

  • NetworkProcess/NetworkSession.cpp:

(WebKit::NetworkSession::NetworkSession):
Convert m_privateClickMeasurement to a unique_ptr so we can wait to
create it after WebResourceLoadStatisticsStore is created. This ensures
that the call to create the SQLite database will run on a
background thread before we try to collect overdue PCM attributions.

(WebKit::NetworkSession::storePrivateClickMeasurement):
(WebKit::NetworkSession::handlePrivateClickMeasurementConversion):
(WebKit::NetworkSession::dumpPrivateClickMeasurement):
(WebKit::NetworkSession::clearPrivateClickMeasurement):
(WebKit::NetworkSession::clearPrivateClickMeasurementForRegistrableDomain):
(WebKit::NetworkSession::setPrivateClickMeasurementOverrideTimerForTesting):
(WebKit::NetworkSession::markAttributedPrivateClickMeasurementsAsExpiredForTesting):
(WebKit::NetworkSession::setPrivateClickMeasurementConversionURLForTesting):
(WebKit::NetworkSession::markPrivateClickMeasurementsAsExpiredForTesting):
(WebKit::NetworkSession::firePrivateClickMeasurementTimerImmediately):

  • NetworkProcess/NetworkSession.h:
  • NetworkProcess/PrivateClickMeasurementManager.cpp:

(WebKit::PrivateClickMeasurementManager::PrivateClickMeasurementManager):
(WebKit::PrivateClickMeasurementManager::firePendingAttributionRequest):
(WebKit::PrivateClickMeasurementManager::attribute):
Drive-by fixes to add protectedThis and check if PrivateClickMeasurementManager
is still alive when this lambda is called.

9:07 AM Changeset in webkit [272659] by Wenson Hsieh
  • 19 edits in trunk

[watchOS] Adopt PUICQuickboardController for text input
https://bugs.webkit.org/show_bug.cgi?id=221649

Reviewed by Tim Horton.

Source/WebKit:

Refactor text input on watchOS to use PUICQuickboardController, instead of custom WebKit subclasses of
PUICQuickboardListViewController. This new API serves the same purpose as the current list view controller
subclass, by providing a view that offers options to dictate, scribble, and choose text suggestions. See below
for more details.

For the time being, this new PUICQuickboardController doesn't provide a way to render a custom header view
for us to show the domain name; to avoid introducing a security or privacy bug in the interim, guard this behind
a WebKit-exposed runtime-enabled setting that's off by default. We can remove this setting and instead just use
the HAVE(QUICKBOARD_CONTROLLER) build-time flag once support for the custom header view is complete.

  • Platform/spi/watchos/PepperUICoreSPI.h:

Include a couple of new headers if HAVE(QUICKBOARD_CONTROLLER) is set.

  • UIProcess/ios/WKContentViewInteraction.h:

Add a _presentedQuickboardController instance variable if HAVE(QUICKBOARD_CONTROLLER) is set.

  • UIProcess/ios/WKContentViewInteraction.mm:

Add protocol conformance to PUICQuickboardControllerDelegate.

(-[WKContentView _updateInteractionTintColor:]):
(-[WKContentView tintColorDidChange]):

Refactor this to take UITextInputTraits, instead of using _traits.

(-[WKContentView textInputTraits]):
(-[WKContentView _updateTextInputTraits:]):

Refactor this to modify the given set of text input traits given current focused element information state,
rather than operating on the _traits instance variable. This refactoring allows us to share logic when setting
up text input traits on both iOS and watchOS; in the former case, we're setting up a set of cached _traits on
the content view, but in the latter case, we're modifying a newly created PUICTextInputContext that we'll then
set on the PUICQuickboardController.

(-[WKContentView _createQuickboardController:]):

Add a helper method to create and return a new PUICQuickboardController that's suitable for the current
focused element's state.

(-[WKContentView presentViewControllerForCurrentFocusedElement]):

Present the view controller for the focused element, by either using a custom WebKit-owned
PUICQuickboardListViewController subclass, or by using a new PUICQuickboardController with a custom text
input context. Note that in the latter case, we may not be able to invoke the UI delegate hook
-_webView:didPresentFocusedElementViewController:, since the presenting view controller's transition
coordinator may not have been created yet in the scenario where we're spinning up the Quickboard view service
for the first time, since the call to establish the XPC connection is asynchronous in PepperUICore, and we don't
attempt to present the remote view controller until the connection is established. This makes it so that we
can't rely on the -didPresentFocusedElementViewController: hook in WebKitTestRunner to know when a
PUICQuickboardController has finished presenting.

To work around this, we teach the test harness to override -presentViewController:animated:completion: and
call into the test runner's WKWebView subclass when a remote quickboard controller is done presenting. In the
longer term, we will require SPI from PepperUICore to present a PUICQuickboardController with a completion
block.

(-[WKContentView _isPresentingFullScreenInputView]):

A "full screen input view" for the focused element is now present if either _presentedQuickboardController is
set, or _presentedFullScreenInputViewController is set.

(-[WKContentView dismissAllInputViewControllers:]):

Dismiss either the currently presented _presentedQuickboardController or
_presentedFullScreenInputViewController, and invoke the UI delegate method
-_webView:didDismissFocusedElementViewController: when finished.

(-[WKContentView quickboardController:textInputValueDidChange:]):
(-[WKContentView quickboardControllerTextInputValueCancelled:]):
(-[WKContentView dismissQuickboardViewControllerAndRevealFocusedFormOverlayIfNecessary:]):
(-[WKContentView textContentTypeForQuickboard]):

Refactor -_updateTextInputTraits: to call a helper method (-textContentTypeForQuickboard) on watchOS to
convert the current focused element information to a UITextContentType.

(-[WKContentView textContentTypeForListViewController:]):
(-[WKContentView _simulateTextEntered:]):
(-[WKContentView textContentTypeForTesting]):
(-[WKContentView formInputLabel]):

Update a few internal testing hooks to handle the case where we have a _presentedQuickboardController instead
of a _presentedFullScreenInputViewController.

(-[WKContentView _updateInteractionTintColor]): Deleted.

  • UIProcess/ios/forms/WKTextInputListViewController.mm:

(-[WKTextInputListViewController additionalTrayButtons]): Suppress a deprecation warning.

Source/WTF:

Add a new internal setting. See other ChangeLogs for more detail.

  • Scripts/Preferences/WebPreferencesInternal.yaml:

Tools:

Make some small tweaks to WebKitTestRunner in support of using PUICQuickboardController for text input.

  • WebKitTestRunner/Configurations/Base.xcconfig:
  • WebKitTestRunner/Configurations/WebKitTestRunnerApp.xcconfig:

Adjust the test harness on watchOS to link against PepperUICore, so that we can reference the
PUICQuickboardViewController and PUICQuickboardRemoteViewController classes below.

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

(isQuickboardViewController):
(-[TestRunnerWKWebView _didPresentViewController:]):

Override -presentViewController:animated:completion: on the view controller below, and call this new method
on the TestRunnerWKWebView when a view controller is finished presenting. We need to do this to ensure that
the input view presentation callbacks continue to work after adopting PUICQuickboardController; see WebKit
ChangeLog for more details.

  • WebKitTestRunner/ios/PlatformWebViewIOS.mm:

(-[PlatformWebViewController presentViewController:animated:completion:]):

LayoutTests:

Enable QuickboardControllerForTextInputEnabled, on relevant versions of watchOS.

  • fast/forms/watchos/delete-content-in-text-field.html:
  • fast/forms/watchos/edit-text-field-calls-injected-bundle.html:
  • fast/forms/watchos/form-control-label-text.html:
  • fast/forms/watchos/time-picker-value-change.html:
  • fast/forms/watchos/username-text-content-type.html:
9:06 AM Changeset in webkit [272658] by mmaxfield@apple.com
  • 1 edit in trunk/Source/WebKit/ChangeLog

Replace ChangeLog entry I accidentally deleted in r272657

Unreviewed.

8:59 AM Changeset in webkit [272657] by mmaxfield@apple.com
  • 3 edits in trunk/Source/WebKit

Revert r272586 because we're not ready yet

We're still trying to figure out the right way to trigger this behavior.

Unreviewed.

  • WebProcess/EntryPoint/Cocoa/XPCService/WebContentService/Info-OSX.plist:
  • WebProcess/com.apple.WebProcess.sb.in:
8:53 AM Changeset in webkit [272656] by commit-queue@webkit.org
  • 3 edits
    2 adds
    2 deletes in trunk/LayoutTests

[LayoutTests] Convert http/tests/css convert PHP to Python
https://bugs.webkit.org/show_bug.cgi?id=221511
<rdar://problem/74049585>

Patch by Chris Gambrell <Chris Gambrell> on 2021-02-10
Reviewed by Jonathan Bedard.

  • http/tests/css/font-face-src-loading.html:
  • http/tests/css/link-css-disabled-value-with-slow-loading-sheet-in-error.html:
  • http/tests/css/resources/500.php: Removed.
  • http/tests/css/resources/500.py: Added.
  • http/tests/css/resources/webfont-request.php: Removed.
  • http/tests/css/resources/webfont-request.py: Added.

(getRequestCount):
(setRequestCount):

8:18 AM Changeset in webkit [272655] by aakash_jain@apple.com
  • 5 edits in trunk/Tools

[ews] Add build-step to run build.webkit.org new unit-tests
https://bugs.webkit.org/show_bug.cgi?id=219454

Reviewed by Jonathan Bedard.

  • CISupport/ews-build/steps.py:

(RunBuildWebKitOrgOldUnitTests): Renamed.
(RunBuildWebKitOrgUnitTests): Build step to run build.webkit.org new unit-tests.

  • CISupport/ews-build/steps_unittest.py: Added unit-tests.
  • CISupport/ews-build/factories.py:

(ServicesFactory.init): Added the new build-step, also change the step order slightly.

  • CISupport/ews-build/factories_unittest.py:
7:58 AM Changeset in webkit [272654] by Brent Fulgham
  • 5 edits
    1 add in trunk

Create stub methods to support finer-grained control over loading
https://bugs.webkit.org/show_bug.cgi?id=221430
<rdar://problem/73999547>

Reviewed by Geoffrey Garen.

Source/WebKit:

Create three new WebKit Cocoa methods that accept NSURLRequest, rather than URL. This allows
us to pass additional hints to the networking subsystem.

Tested with new API Tests.

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView loadSimulatedRequest:withResponse:responseData:]):
(-[WKWebView loadSimulatedRequest:withResponseHTMLString:]):
(-[WKWebView loadFileRequest:allowingReadAccessToURL:]):

  • UIProcess/API/Cocoa/WKWebViewPrivate.h:

Tools:

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKitCocoa/WKWebViewLoadAPIs.mm: Added.

(TEST):

7:46 AM Changeset in webkit [272653] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

Unreviewed build fix.

Add missing header include.

  • platform/gamepad/mac/GenericHIDGamepad.cpp:
7:44 AM Changeset in webkit [272652] by mmaxfield@apple.com
  • 3 edits
    2 adds in trunk

REGRESSION(r263255): Text styles without an explicit language tag do not honor the system language
https://bugs.webkit.org/show_bug.cgi?id=221598
<rdar://problem/69194294>

Reviewed by Zalan Bujtas.

Source/WebCore:

The distinction between NULL and CFSTR("") strikes again!

Test: fast/text/international/system-language/jp-circled.html

  • platform/graphics/cocoa/SystemFontDatabaseCoreText.cpp:

(WebCore::SystemFontDatabaseCoreText::createTextStyleFont):

LayoutTests:

  • fast/text/international/system-language/jp-circled-expected-mismatch.html: Added.
  • fast/text/international/system-language/jp-circled.html: Added.
7:19 AM Changeset in webkit [272651] by Manuel Rego Casasnovas
  • 5 edits
    3 adds in trunk/LayoutTests

Add support for modifier keys in test_driver.send_keys()
https://bugs.webkit.org/show_bug.cgi?id=221465

Reviewed by Carlos Garcia Campos.

LayoutTests/imported/w3c:

Allow to send modifier keys combinations, like "Ctrl + y" through test_driver.send_keys().

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

(convertSeleniumKeyCode):
(window.test_driver_internal.send_keys):

  • web-platform-tests/uievents/keyboard/modifier-keys-combinations-expected.txt: Added.
  • web-platform-tests/uievents/keyboard/modifier-keys-combinations.html: Added.

LayoutTests:

Add specific -expected.txt file for Mac platform. Meta key is detected differently than in other platforms.

  • platform/ios/TestExpectations: Skip test as it's timing out on iOS.
  • platform/mac/imported/w3c/web-platform-tests/uievents/keyboard/modifier-keys-combinations-expected.txt: Added.
  • platform/mac/imported/w3c/web-platform-tests/uievents/keyboard/modifier-keys-expected.txt: Update expectations as it nows mostly passes.
7:04 AM Changeset in webkit [272650] by Lauro Moura
  • 2 edits in trunk/Tools

[GTK] Gardening TestResources failures after r272636

Unreviewed test gardening.

  • TestWebKitAPI/glib/TestExpectations.json:
6:59 AM Changeset in webkit [272649] by Alan Bujtas
  • 4 edits
    2 adds in trunk

[LFC][IFC] Pass in sane content width values to InlineContentBreaker
https://bugs.webkit.org/show_bug.cgi?id=221628
Source/WebCore:

rdar://problem/73874164

Reviewed by Antti Koivisto.

Insanely large zoom value could produce Nan letter-spacing values.
Let's tighten the inline content width values so that InlineContentBreaker can always expect valid InlineLayoutUnit values.

Test: fast/text/letter-spacing-produces-nan-width.html

  • layout/inlineformatting/InlineContentBreaker.cpp:

(WebCore::Layout::InlineContentBreaker::ContinuousContent::append):

  • layout/inlineformatting/text/TextUtil.cpp:

(WebCore::Layout::TextUtil::width):

LayoutTests:

Reviewed by Antti Koivisto.

  • fast/text/letter-spacing-produces-nan-width-expected.txt: Added.
  • fast/text/letter-spacing-produces-nan-width.html: Added.
6:49 AM Changeset in webkit [272648] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[LFC][IFC] Add inline box vertical border/padding to enclosing top and bottom
https://bugs.webkit.org/show_bug.cgi?id=221647

Reviewed by Antti Koivisto.

While inline boxes (<span>) don't stretch the line box vertically with their paddings and borders,
we need those boxes to be included in the enclosing top/bottom geometries.
This is also in preparation for supporting inline box overflow scroll.

  • layout/inlineformatting/InlineFormattingContext.cpp:

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

  • layout/integration/LayoutIntegrationCoverage.cpp:
6:37 AM Changeset in webkit [272647] by weinig@apple.com
  • 4 edits in trunk/Source/WebKit

Workaround some order dependent issues by parenting remote layers before applying other properties
https://bugs.webkit.org/show_bug.cgi?id=221585

Reviewed by Simon Fraser.

This runs the updateChildren (renamed to applyHierarchyUpdates for consistency) part of
the RemoteLayerTreePropertyApplier for all the transaction changes prior to running the
rest of applyProperties to work around some downstream bugs that currently require parented
layers to work. This likely won't be required forever, but it should be harmless to do.

  • Shared/RemoteLayerTree/RemoteLayerTreePropertyApplier.h:
  • Shared/RemoteLayerTree/RemoteLayerTreePropertyApplier.mm:

(WebKit::RemoteLayerTreePropertyApplier::applyProperties):
(WebKit::RemoteLayerTreePropertyApplier::applyHierarchyUpdates):
(WebKit::RemoteLayerTreePropertyApplier::updateChildren): Deleted.

  • UIProcess/RemoteLayerTree/RemoteLayerTreeHost.mm:

(WebKit::RemoteLayerTreeHost::updateLayerTree):

4:43 AM Changeset in webkit [272646] by calvaris@igalia.com
  • 4 edits in trunk/Source/WebCore

[GStreamer] Make m_client WeakPtr in AudioSourceProviderGStreamer
https://bugs.webkit.org/show_bug.cgi?id=217952

Reviewed by Carlos Garcia Campos.

  • platform/audio/AudioSourceProviderClient.h: Turned into

CanMakeWeakPtr.

  • platform/audio/gstreamer/AudioSourceProviderGStreamer.cpp:

(WebCore::AudioSourceProviderGStreamer::setClient): Adapt to use
WeakPtr.

  • platform/audio/gstreamer/AudioSourceProviderGStreamer.h: Turned

m_client into WeakPtr.

4:04 AM Changeset in webkit [272645] by commit-queue@webkit.org
  • 15 edits in trunk

RemoteGraphicsContextGLProxy should support losing the context and should lose the context on timeouts
https://bugs.webkit.org/show_bug.cgi?id=221396

Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2021-02-10
Reviewed by Simon Fraser.

Source/WebKit:

Implement support for RemoteGraphicsContextGLProxy acting on
losing the context in RemoteGraphicsContextGL.

Implement support for RemoteGraphicsContextGLProxy timing out on message
sends. Force the context to be lost.

Implement support for GPUProcessConnection disconnect. Force the context
be lost.

  • GPUProcess/graphics/RemoteGraphicsContextGL.cpp:

Send a bool via WasCreated method, so that the
receiver knows if creation was successful or not.
Currently the creation always succeeds.

Previously it was designed to use wasLost instead,
but this has the problem that the client will wait
for WasCreated in particular cases to ensure initialization,
and thus we cannot wait for "WasCreated OR WasLost".

(WebKit::RemoteGraphicsContextGL::RemoteGraphicsContextGL):
(WebKit::RemoteGraphicsContextGL::synthesizeGLError):
(WebKit::RemoteGraphicsContextGL::getError):

Manually implement few methods that contain custom client-side
logic wrt. lost context.

  • GPUProcess/graphics/RemoteGraphicsContextGL.h:
  • GPUProcess/graphics/RemoteGraphicsContextGL.messages.in:
  • GPUProcess/graphics/RemoteGraphicsContextGLFunctionsGenerated.h:

(setFailNextGPUStatusCheck):
(getBooleanv):

  • WebProcess/GPU/GPUProcessConnection.cpp:

(WebKit::GPUProcessConnection::dispatchMessage):

Skip the RemoteGraphicsContextGLProxy messages that do not have
a receiver. This is expected, as we cannot assume that only expected
messages arrive to the message hander.

The client, i.e. the web process, might

  • just delete the proxy
  • force the context to be lost
  • notice a timeout and force the context to be lost

while the GPU process cannot know this. RemoteGraphicsContextGL might
already have sent messages to the Proxy.

  • WebProcess/GPU/graphics/RemoteGraphicsContextGLProxy.cpp:

(WebKit::RemoteGraphicsContextGLProxy::create):
(WebKit::RemoteGraphicsContextGLProxy::RemoteGraphicsContextGLProxy):
(WebKit::RemoteGraphicsContextGLProxy::~RemoteGraphicsContextGLProxy):

Listen to GPUProcessConnection::Client notifications about
connection closure. When the connection closes, mark the context object
lost.

Store the reference to GPUProcessConnection so that when the connection
is shut down and new one is instantiated, RemoteGraphicsContextGLProxy
destruction logic will correctly refer to the one it was using.

(WebKit::RemoteGraphicsContextGLProxy::reshape):
(WebKit::RemoteGraphicsContextGLProxy::prepareForDisplay):
(WebKit::RemoteGraphicsContextGLProxy::ensureExtensionEnabled):
(WebKit::RemoteGraphicsContextGLProxy::notifyMarkContextChanged):
(WebKit::RemoteGraphicsContextGLProxy::synthesizeGLError):
(WebKit::RemoteGraphicsContextGLProxy::getError):
(WebKit::RemoteGraphicsContextGLProxy::wasCreated):
(WebKit::RemoteGraphicsContextGLProxy::wasLost):

When the context lost event happens, disconnect with
the GPUProcessConnection.

(WebKit::RemoteGraphicsContextGLProxy::wasChanged):
(WebKit::RemoteGraphicsContextGLProxy::markContextLost):
(WebKit::RemoteGraphicsContextGLProxy::waitUntilInitialized):
(WebKit::RemoteGraphicsContextGLProxy::gpuProcessConnectionDidClose):

When the connection closes, mark the context object
lost.

(WebKit::RemoteGraphicsContextGLProxy::disconnect):

  • WebProcess/GPU/graphics/RemoteGraphicsContextGLProxy.h:
  • WebProcess/GPU/graphics/RemoteGraphicsContextGLProxy.messages.in:
  • WebProcess/GPU/graphics/RemoteGraphicsContextGLProxyFunctionsGenerated.cpp:

Changes generated by the code-generator wrt handling timeouts from the sends.

Tools:

Generate calls to lose the context on timeouts.

Generate the send calls as calls to the helper functions to send the
messages. The helper functions will provide the non-changing arguments.

Move few messages to be implemented by hand.

  • Scripts/generate-gpup-webgl:

LayoutTests:

Fix the lose-context-on-status-failure.html. The test was using
an internal function to lose the context and then synchronously
checking that the context was lost. With GPU process this is not
possible, so check after normal Canvas webglcontextlost event.

Enable the test for --use-gpu-process.

  • fast/canvas/webgl/lose-context-on-status-failure.html:
  • gpu-process/TestExpectations:
3:29 AM Changeset in webkit [272644] by svillar@igalia.com
  • 59 edits
    15 copies
    46 moves
    592 adds
    1 delete in trunk/LayoutTests

[css-flexbox] Import & update latest WPT flexbox tests
https://bugs.webkit.org/show_bug.cgi?id=221484

Reviewed by Rob Buis.

LayoutTests/imported/w3c:

  • resources/import-expectations.json:
  • resources/resource-files.json:
  • web-platform-tests/css/css-flexbox/abspos/abspos-autopos-htb-ltr-expected.xht: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/abspos-autopos-htb-ltr-expected.xht.
  • web-platform-tests/css/css-flexbox/abspos/abspos-autopos-htb-ltr.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/abspos-autopos-htb-ltr.html.
  • web-platform-tests/css/css-flexbox/abspos/abspos-autopos-htb-rtl-expected.xht: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/abspos-autopos-htb-rtl-expected.xht.
  • web-platform-tests/css/css-flexbox/abspos/abspos-autopos-htb-rtl.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/abspos-autopos-htb-rtl.html.
  • web-platform-tests/css/css-flexbox/abspos/abspos-autopos-vlr-ltr-expected.xht: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/abspos-autopos-vlr-ltr-expected.xht.
  • web-platform-tests/css/css-flexbox/abspos/abspos-autopos-vlr-ltr.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/abspos-autopos-vlr-ltr.html.
  • web-platform-tests/css/css-flexbox/abspos/abspos-autopos-vlr-rtl-expected.xht: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/abspos-autopos-vlr-rtl-expected.xht.
  • web-platform-tests/css/css-flexbox/abspos/abspos-autopos-vlr-rtl.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/abspos-autopos-vlr-rtl.html.
  • web-platform-tests/css/css-flexbox/abspos/abspos-autopos-vrl-ltr-expected.xht: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/abspos-autopos-vrl-ltr-expected.xht.
  • web-platform-tests/css/css-flexbox/abspos/abspos-autopos-vrl-ltr.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/abspos-autopos-vrl-ltr.html.
  • web-platform-tests/css/css-flexbox/abspos/abspos-autopos-vrl-rtl-expected.xht: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/abspos-autopos-vrl-rtl-expected.xht.
  • web-platform-tests/css/css-flexbox/abspos/abspos-autopos-vrl-rtl.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/abspos-autopos-vrl-rtl.html.
  • web-platform-tests/css/css-flexbox/abspos/abspos-descendent-001-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/abspos-descendent-001-expected.txt.
  • web-platform-tests/css/css-flexbox/abspos/abspos-descendent-001.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/abspos-descendent-001.html.
  • web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-align-content-001-expected.html: Added.
  • web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-align-content-001.html: Added.
  • web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-align-content-002-expected.html: Added.
  • web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-align-content-002.html: Added.
  • web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-align-content-003-expected.html: Added.
  • web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-align-content-003.html: Added.
  • web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-align-content-004-expected.html: Added.
  • web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-align-content-004.html: Added.
  • web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-align-content-005-expected.html: Added.
  • web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-align-content-005.html: Added.
  • web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-align-content-006-expected.html: Added.
  • web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-align-content-006.html: Added.
  • web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-align-content-007-expected.html: Added.
  • web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-align-content-007.html: Added.
  • web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-align-content-008-expected.html: Added.
  • web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-align-content-008.html: Added.
  • web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-align-content-rtl-001-expected.html: Added.
  • web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-align-content-rtl-001.html: Added.
  • web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-align-content-rtl-002-expected.html: Added.
  • web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-align-content-rtl-002.html: Added.
  • web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-align-content-vertWM-001-expected.html: Added.
  • web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-align-content-vertWM-001.html: Added.
  • web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-align-content-vertWM-002-expected.html: Added.
  • web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-align-content-vertWM-002.html: Added.
  • web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-align-self-001-expected.html: Added.
  • web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-align-self-001.html: Added.
  • web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-align-self-002-expected.html: Added.
  • web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-align-self-002.html: Added.
  • web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-align-self-003-expected.html: Added.
  • web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-align-self-003.html: Added.
  • web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-align-self-004-expected.html: Added.
  • web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-align-self-004.html: Added.
  • web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-align-self-005-expected.html: Added.
  • web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-align-self-005.html: Added.
  • web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-align-self-006-expected.html: Added.
  • web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-align-self-006.html: Added.
  • web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-align-self-007-expected.html: Added.
  • web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-align-self-007.html: Added.
  • web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-align-self-008-expected.html: Added.
  • web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-align-self-008.html: Added.
  • web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-align-self-rtl-001-expected.html: Added.
  • web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-align-self-rtl-001.html: Added.
  • web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-align-self-rtl-002-expected.html: Added.
  • web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-align-self-rtl-002.html: Added.
  • web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-align-self-rtl-003-expected.html: Added.
  • web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-align-self-rtl-003.html: Added.
  • web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-align-self-rtl-004-expected.html: Added.
  • web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-align-self-rtl-004.html: Added.
  • web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-align-self-safe-001-expected.html: Added.
  • web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-align-self-safe-001.html: Added.
  • web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-align-self-vertWM-001-expected.html: Added.
  • web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-align-self-vertWM-001.html: Added.
  • web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-align-self-vertWM-002-expected.html: Added.
  • web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-align-self-vertWM-002.html: Added.
  • web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-align-self-vertWM-003-expected.html: Added.
  • web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-align-self-vertWM-003.html: Added.
  • web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-align-self-vertWM-004-expected.html: Added.
  • web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-align-self-vertWM-004.html: Added.
  • web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-fallback-align-content-001-expected.html: Added.
  • web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-fallback-align-content-001.html: Added.
  • web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-fallback-justify-content-001-expected.html: Added.
  • web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-fallback-justify-content-001.html: Added.
  • web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-justify-content-001-expected.html: Added.
  • web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-justify-content-001.html: Added.
  • web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-justify-content-002-expected.html: Added.
  • web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-justify-content-002.html: Added.
  • web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-justify-content-003-expected.html: Added.
  • web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-justify-content-003.html: Added.
  • web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-justify-content-004-expected.html: Added.
  • web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-justify-content-004.html: Added.
  • web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-justify-content-005-expected.html: Added.
  • web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-justify-content-005.html: Added.
  • web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-justify-content-006-expected.html: Added.
  • web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-justify-content-006.html: Added.
  • web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-justify-content-007-expected.html: Added.
  • web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-justify-content-007.html: Added.
  • web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-justify-content-008-expected.html: Added.
  • web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-justify-content-008.html: Added.
  • web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-justify-content-rtl-001-expected.html: Added.
  • web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-justify-content-rtl-001.html: Added.
  • web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-justify-content-rtl-002-expected.html: Added.
  • web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-justify-content-rtl-002.html: Added.
  • web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-justify-content-vertWM-001-expected.html: Added.
  • web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-justify-content-vertWM-001.html: Added.
  • web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-justify-content-vertWM-002-expected.html: Added.
  • web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-justify-content-vertWM-002.html: Added.
  • web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-justify-self-001-expected.html: Added.
  • web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-justify-self-001.html: Added.
  • web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-margin-001-expected.html: Added.
  • web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-margin-001.html: Added.
  • web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-margin-002-expected.html: Added.
  • web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-margin-002.html: Added.
  • web-platform-tests/css/css-flexbox/abspos/flexbox-abspos-child-001a-expected.html: Added.
  • web-platform-tests/css/css-flexbox/abspos/flexbox-abspos-child-001a.html: Added.
  • web-platform-tests/css/css-flexbox/abspos/flexbox-abspos-child-001b-expected.html: Added.
  • web-platform-tests/css/css-flexbox/abspos/flexbox-abspos-child-001b.html: Added.
  • web-platform-tests/css/css-flexbox/abspos/flexbox-abspos-child-002-expected.html: Added.
  • web-platform-tests/css/css-flexbox/abspos/flexbox-abspos-child-002.html: Added.
  • web-platform-tests/css/css-flexbox/abspos/flexbox_absolute-atomic-expected.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/flexbox_absolute-atomic-expected.html.
  • web-platform-tests/css/css-flexbox/abspos/flexbox_absolute-atomic.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/flexbox_absolute-atomic.html.
  • web-platform-tests/css/css-flexbox/abspos/flexbox_inline-abspos-expected.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/flexbox_inline-abspos-expected.html.
  • web-platform-tests/css/css-flexbox/abspos/flexbox_inline-abspos.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/flexbox_inline-abspos.html.
  • web-platform-tests/css/css-flexbox/abspos/position-absolute-001-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/position-absolute-001-expected.txt.
  • web-platform-tests/css/css-flexbox/abspos/position-absolute-001.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/position-absolute-001.html.
  • web-platform-tests/css/css-flexbox/abspos/position-absolute-002-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/position-absolute-002-expected.txt.
  • web-platform-tests/css/css-flexbox/abspos/position-absolute-002.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/position-absolute-002.html.
  • web-platform-tests/css/css-flexbox/abspos/position-absolute-003-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/position-absolute-003-expected.txt.
  • web-platform-tests/css/css-flexbox/abspos/position-absolute-003.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/position-absolute-003.html.
  • web-platform-tests/css/css-flexbox/abspos/position-absolute-004-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/position-absolute-004-expected.txt.
  • web-platform-tests/css/css-flexbox/abspos/position-absolute-004.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/position-absolute-004.html.
  • web-platform-tests/css/css-flexbox/abspos/position-absolute-005-expected.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/position-absolute-005-expected.html.
  • web-platform-tests/css/css-flexbox/abspos/position-absolute-005.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/position-absolute-005.html.
  • web-platform-tests/css/css-flexbox/abspos/position-absolute-006-expected.xht: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/position-absolute-006-expected.xht.
  • web-platform-tests/css/css-flexbox/abspos/position-absolute-006.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/position-absolute-006.html.
  • web-platform-tests/css/css-flexbox/abspos/position-absolute-007-expected.xht: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/position-absolute-007-expected.xht.
  • web-platform-tests/css/css-flexbox/abspos/position-absolute-007.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/position-absolute-007.html.
  • web-platform-tests/css/css-flexbox/abspos/position-absolute-008-expected.xht: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/position-absolute-008-expected.xht.
  • web-platform-tests/css/css-flexbox/abspos/position-absolute-008.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/position-absolute-008.html.
  • web-platform-tests/css/css-flexbox/abspos/position-absolute-009-expected.xht: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/position-absolute-009-expected.xht.
  • web-platform-tests/css/css-flexbox/abspos/position-absolute-009.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/position-absolute-009.html.
  • web-platform-tests/css/css-flexbox/abspos/position-absolute-010-expected.xht: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/position-absolute-010-expected.xht.
  • web-platform-tests/css/css-flexbox/abspos/position-absolute-010.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/position-absolute-010.html.
  • web-platform-tests/css/css-flexbox/abspos/position-absolute-011-expected.xht: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/position-absolute-011-expected.xht.
  • web-platform-tests/css/css-flexbox/abspos/position-absolute-011.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/position-absolute-011.html.
  • web-platform-tests/css/css-flexbox/abspos/position-absolute-012-expected.txt: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/position-absolute-012-expected.txt.
  • web-platform-tests/css/css-flexbox/abspos/position-absolute-012.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/position-absolute-012.html.
  • web-platform-tests/css/css-flexbox/abspos/position-absolute-013-expected.txt: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/position-absolute-013-expected.txt.
  • web-platform-tests/css/css-flexbox/abspos/position-absolute-013.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/position-absolute-013.html.
  • web-platform-tests/css/css-flexbox/abspos/position-absolute-014-expected.txt: Added.
  • web-platform-tests/css/css-flexbox/abspos/position-absolute-014.html: Added.
  • web-platform-tests/css/css-flexbox/abspos/position-absolute-015-expected.txt: Added.
  • web-platform-tests/css/css-flexbox/abspos/position-absolute-015.html: Added.
  • web-platform-tests/css/css-flexbox/abspos/position-absolute-containing-block-001-expected.html: Added.
  • web-platform-tests/css/css-flexbox/abspos/position-absolute-containing-block-001.html: Added.
  • web-platform-tests/css/css-flexbox/abspos/position-absolute-containing-block-002-expected.html: Added.
  • web-platform-tests/css/css-flexbox/abspos/position-absolute-containing-block-002.html: Added.
  • web-platform-tests/css/css-flexbox/abspos/w3c-import.log: Added.
  • web-platform-tests/css/css-flexbox/align-baseline-expected.html:
  • web-platform-tests/css/css-flexbox/align-content-horiz-001a-expected.txt: Added.
  • web-platform-tests/css/css-flexbox/align-content-horiz-001a.html: Added.
  • web-platform-tests/css/css-flexbox/align-content-horiz-001b-expected.txt: Added.
  • web-platform-tests/css/css-flexbox/align-content-horiz-001b.html: Added.
  • web-platform-tests/css/css-flexbox/align-content-horiz-002-expected.txt: Added.
  • web-platform-tests/css/css-flexbox/align-content-horiz-002.html: Added.
  • web-platform-tests/css/css-flexbox/align-content-vert-001a-expected.txt: Added.
  • web-platform-tests/css/css-flexbox/align-content-vert-001a.html: Added.
  • web-platform-tests/css/css-flexbox/align-content-vert-001b-expected.txt: Added.
  • web-platform-tests/css/css-flexbox/align-content-vert-001b.html: Added.
  • web-platform-tests/css/css-flexbox/align-content-vert-002-expected.txt: Added.
  • web-platform-tests/css/css-flexbox/align-content-vert-002.html: Added.
  • web-platform-tests/css/css-flexbox/align-content-wmvert-001-expected.txt: Added.
  • web-platform-tests/css/css-flexbox/align-content-wmvert-001.html: Added.
  • web-platform-tests/css/css-flexbox/align-content_center-expected.html:
  • web-platform-tests/css/css-flexbox/align-content_flex-end-expected.html:
  • web-platform-tests/css/css-flexbox/align-content_flex-start-expected.html:
  • web-platform-tests/css/css-flexbox/align-content_space-around-expected.html:
  • web-platform-tests/css/css-flexbox/align-content_space-between-expected.html:
  • web-platform-tests/css/css-flexbox/align-content_stretch-expected.html:
  • web-platform-tests/css/css-flexbox/align-items-007.html:
  • web-platform-tests/css/css-flexbox/align-self-015-expected.html:
  • web-platform-tests/css/css-flexbox/auto-margins-003-expected.html:
  • web-platform-tests/css/css-flexbox/break-nested-float-in-flex-item-001-print-expected.html: Added.
  • web-platform-tests/css/css-flexbox/break-nested-float-in-flex-item-001-print.html: Added.
  • web-platform-tests/css/css-flexbox/break-nested-float-in-flex-item-002-print-expected.html: Added.
  • web-platform-tests/css/css-flexbox/break-nested-float-in-flex-item-002-print.html: Added.
  • web-platform-tests/css/css-flexbox/canvas-dynamic-change-001.html:
  • web-platform-tests/css/css-flexbox/contain-size-layout-abspos-flex-container-crash-expected.txt: Added.
  • web-platform-tests/css/css-flexbox/contain-size-layout-abspos-flex-container-crash.html: Added.
  • web-platform-tests/css/css-flexbox/css-flexbox-img-expand-evenly-expected.html:
  • web-platform-tests/css/css-flexbox/css-flexbox-row-expected.html:
  • web-platform-tests/css/css-flexbox/css-flexbox-row-reverse-expected.html:
  • web-platform-tests/css/css-flexbox/css-flexbox-row-reverse-wrap-expected.html:
  • web-platform-tests/css/css-flexbox/css-flexbox-row-reverse-wrap-reverse-expected.html:
  • web-platform-tests/css/css-flexbox/css-flexbox-row-reverse-wrap-reverse.html:
  • web-platform-tests/css/css-flexbox/css-flexbox-row-reverse-wrap.html:
  • web-platform-tests/css/css-flexbox/css-flexbox-row-reverse.html:
  • web-platform-tests/css/css-flexbox/css-flexbox-row-wrap-expected.html:
  • web-platform-tests/css/css-flexbox/css-flexbox-row-wrap-reverse-expected.html:
  • web-platform-tests/css/css-flexbox/css-flexbox-row-wrap-reverse.html:
  • web-platform-tests/css/css-flexbox/css-flexbox-row-wrap.html:
  • web-platform-tests/css/css-flexbox/css-flexbox-row.html:
  • web-platform-tests/css/css-flexbox/dynamic-baseline-change-expected.html: Added.
  • web-platform-tests/css/css-flexbox/dynamic-baseline-change-nested-expected.html: Added.
  • web-platform-tests/css/css-flexbox/dynamic-baseline-change-nested.html: Added.
  • web-platform-tests/css/css-flexbox/dynamic-baseline-change.html: Added.
  • web-platform-tests/css/css-flexbox/dynamic-grid-flex-abspos-expected.txt: Added.
  • web-platform-tests/css/css-flexbox/dynamic-grid-flex-abspos.html: Added.
  • web-platform-tests/css/css-flexbox/fieldset-as-item-overflow-expected.html: Added.
  • web-platform-tests/css/css-flexbox/fieldset-as-item-overflow.html: Added.
  • web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-column-018-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-column-018.html: Added.
  • web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-row-015-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-row-015.html: Added.
  • web-platform-tests/css/css-flexbox/flex-item-compressible-001-expected.txt: Added.
  • web-platform-tests/css/css-flexbox/flex-item-compressible-001.html: Added.
  • web-platform-tests/css/css-flexbox/flex-item-compressible-002-expected.txt: Added.
  • web-platform-tests/css/css-flexbox/flex-item-compressible-002.html: Added.
  • web-platform-tests/css/css-flexbox/flex-item-contains-size-layout-001-expected.xht: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/abspos-autopos-htb-ltr-expected.xht.
  • web-platform-tests/css/css-flexbox/flex-item-contains-size-layout-001.html: Added.
  • web-platform-tests/css/css-flexbox/flex-item-vertical-align-expected.html:
  • web-platform-tests/css/css-flexbox/flex-minimum-height-flex-items-005.xht:
  • web-platform-tests/css/css-flexbox/flex-minimum-height-flex-items-007.xht:
  • web-platform-tests/css/css-flexbox/flex-minimum-height-flex-items-013.html:
  • web-platform-tests/css/css-flexbox/flex-minimum-height-flex-items-025-expected.txt: Added.
  • web-platform-tests/css/css-flexbox/flex-minimum-height-flex-items-025.html: Added.
  • web-platform-tests/css/css-flexbox/flex-minimum-height-flex-items-026-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flex-minimum-height-flex-items-026.html: Added.
  • web-platform-tests/css/css-flexbox/flex-minimum-height-flex-items-027-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flex-minimum-height-flex-items-027.html: Added.
  • web-platform-tests/css/css-flexbox/flex-minimum-height-flex-items-028-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flex-minimum-height-flex-items-028.html: Added.
  • web-platform-tests/css/css-flexbox/flex-minimum-height-flex-items-029-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flex-minimum-height-flex-items-029.html: Added.
  • web-platform-tests/css/css-flexbox/flex-minimum-height-flex-items-030-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flex-minimum-height-flex-items-030.html: Added.
  • web-platform-tests/css/css-flexbox/flex-minimum-size-003-expected.txt: Added.
  • web-platform-tests/css/css-flexbox/flex-minimum-size-003.html: Added.
  • web-platform-tests/css/css-flexbox/flex-minimum-width-flex-items-005.xht:
  • web-platform-tests/css/css-flexbox/flex-minimum-width-flex-items-013.html:
  • web-platform-tests/css/css-flexbox/flex-minimum-width-flex-items-015-expected.xht: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/abspos-autopos-htb-ltr-expected.xht.
  • web-platform-tests/css/css-flexbox/flex-minimum-width-flex-items-015.html: Added.
  • web-platform-tests/css/css-flexbox/flex-minimum-width-flex-items-016-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flex-minimum-width-flex-items-016.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-align-items-center-nested-001-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-align-items-center-nested-001.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-align-self-baseline-horiz-001a-expected.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-align-self-baseline-horiz-001a.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-align-self-baseline-horiz-001b-expected.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-align-self-baseline-horiz-001b.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-align-self-baseline-horiz-002-expected.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-align-self-baseline-horiz-002.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-align-self-baseline-horiz-003-expected.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-align-self-baseline-horiz-003.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-align-self-baseline-horiz-004-expected.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-align-self-baseline-horiz-004.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-align-self-baseline-horiz-005-expected.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-align-self-baseline-horiz-005.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-align-self-baseline-horiz-006-expected.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-align-self-baseline-horiz-006.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-align-self-baseline-horiz-007-expected.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-align-self-baseline-horiz-007.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-align-self-baseline-horiz-008-expected.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-align-self-baseline-horiz-008.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-align-self-horiz-001-block-expected.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-align-self-horiz-001-block.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-align-self-horiz-001-table-expected.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-align-self-horiz-001-table.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-align-self-horiz-002-expected.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-align-self-horiz-002.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-align-self-horiz-003-expected.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-align-self-horiz-003.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-align-self-horiz-004-expected.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-align-self-horiz-004.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-align-self-horiz-005-expected.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-align-self-horiz-005.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-align-self-stretch-vert-001-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-align-self-stretch-vert-001.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-align-self-stretch-vert-002-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-align-self-stretch-vert-002.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-align-self-vert-001-expected.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-align-self-vert-001.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-align-self-vert-002-expected.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-align-self-vert-002.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-align-self-vert-003-expected.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-align-self-vert-003.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-align-self-vert-004-expected.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-align-self-vert-004.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-align-self-vert-rtl-001-expected.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-align-self-vert-rtl-001.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-align-self-vert-rtl-002-expected.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-align-self-vert-rtl-002.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-align-self-vert-rtl-003-expected.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-align-self-vert-rtl-003.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-align-self-vert-rtl-004-expected.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-align-self-vert-rtl-004.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-align-self-vert-rtl-005-expected.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-align-self-vert-rtl-005.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-anonymous-items-001-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-anonymous-items-001.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-baseline-align-self-baseline-horiz-001-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-baseline-align-self-baseline-horiz-001.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-baseline-align-self-baseline-vert-001-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-baseline-align-self-baseline-vert-001.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-baseline-empty-001a-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-baseline-empty-001a.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-baseline-empty-001b-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-baseline-empty-001b.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-baseline-multi-item-horiz-001a-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-baseline-multi-item-horiz-001a.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-baseline-multi-item-horiz-001b-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-baseline-multi-item-horiz-001b.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-baseline-multi-item-vert-001a-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-baseline-multi-item-vert-001a.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-baseline-multi-item-vert-001b-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-baseline-multi-item-vert-001b.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-baseline-multi-line-horiz-001-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-baseline-multi-line-horiz-001.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-baseline-multi-line-horiz-002-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-baseline-multi-line-horiz-002.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-baseline-multi-line-horiz-003-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-baseline-multi-line-horiz-003.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-baseline-multi-line-horiz-004-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-baseline-multi-line-horiz-004.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-baseline-multi-line-vert-001-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-baseline-multi-line-vert-001.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-baseline-multi-line-vert-002-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-baseline-multi-line-vert-002.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-baseline-single-item-001a-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-baseline-single-item-001a.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-baseline-single-item-001b-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-baseline-single-item-001b.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-basic-block-horiz-001-expected.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-basic-block-horiz-001.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-basic-block-horiz-001v-expected.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-basic-block-horiz-001v.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-basic-block-vert-001-expected.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-basic-block-vert-001.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-basic-block-vert-001v-expected.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-basic-block-vert-001v.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-basic-canvas-horiz-001-expected.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-basic-canvas-horiz-001.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-basic-canvas-horiz-001v-expected.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-basic-canvas-horiz-001v.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-basic-canvas-vert-001-expected.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-basic-canvas-vert-001.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-basic-canvas-vert-001v-expected.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-basic-canvas-vert-001v.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-basic-fieldset-horiz-001-expected.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-basic-fieldset-horiz-001.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-basic-fieldset-vert-001-expected.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-basic-fieldset-vert-001.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-basic-iframe-horiz-001-expected.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-basic-iframe-horiz-001.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-basic-iframe-vert-001-expected.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-basic-iframe-vert-001.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-basic-img-horiz-001-expected.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-basic-img-horiz-001.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-basic-img-vert-001-expected.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-basic-img-vert-001.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-basic-textarea-horiz-001-expected.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-basic-textarea-horiz-001.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-basic-textarea-vert-001-expected.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-basic-textarea-vert-001.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-basic-video-horiz-001-expected.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-basic-video-horiz-001.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-basic-video-vert-001-expected.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-basic-video-vert-001.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-break-request-horiz-001a-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-break-request-horiz-001a.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-break-request-horiz-001b-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-break-request-horiz-001b.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-break-request-horiz-002a-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-break-request-horiz-002a.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-break-request-horiz-002b-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-break-request-horiz-002b.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-break-request-vert-001a-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-break-request-vert-001a.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-break-request-vert-001b-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-break-request-vert-001b.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-break-request-vert-002a-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-break-request-vert-002a.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-break-request-vert-002b-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-break-request-vert-002b.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-collapsed-item-baseline-001-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-collapsed-item-baseline-001.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-collapsed-item-horiz-001-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-collapsed-item-horiz-001.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-collapsed-item-horiz-002-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-collapsed-item-horiz-002.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-collapsed-item-horiz-003-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-collapsed-item-horiz-003.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-column-row-gap-001-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-column-row-gap-001.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-column-row-gap-002-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-column-row-gap-002.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-column-row-gap-003-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-column-row-gap-003.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-column-row-gap-004-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-column-row-gap-004.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-definite-sizes-001-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-definite-sizes-001.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-definite-sizes-002-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-definite-sizes-002.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-definite-sizes-003-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-definite-sizes-003.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-definite-sizes-004-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-definite-sizes-004.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-definite-sizes-005-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-definite-sizes-005.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-definite-sizes-006-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-definite-sizes-006.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-dyn-resize-001-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-dyn-resize-001.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-flex-basis-content-001a-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-flex-basis-content-001a.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-flex-basis-content-001b-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-flex-basis-content-001b.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-flex-basis-content-002a-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-flex-basis-content-002a.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-flex-basis-content-002b-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-flex-basis-content-002b.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-flex-basis-content-003a-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-flex-basis-content-003a.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-flex-basis-content-003b-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-flex-basis-content-003b.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-flex-basis-content-004a-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-flex-basis-content-004a.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-flex-basis-content-004b-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-flex-basis-content-004b.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-flex-flow-001-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-flex-flow-001.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-flex-flow-002-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-flex-flow-002.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-flex-wrap-horiz-001-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-flex-wrap-horiz-001.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-flex-wrap-horiz-002-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-flex-wrap-horiz-002.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-flex-wrap-vert-001-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-flex-wrap-vert-001.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-flex-wrap-vert-002-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-flex-wrap-vert-002.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-items-as-stacking-contexts-001-expected.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-items-as-stacking-contexts-001.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-items-as-stacking-contexts-002-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-items-as-stacking-contexts-002.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-items-as-stacking-contexts-003-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-items-as-stacking-contexts-003.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-justify-content-horiz-001a-expected.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-justify-content-horiz-001a.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-justify-content-horiz-001b-expected.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-justify-content-horiz-001b.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-justify-content-horiz-002-expected.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-justify-content-horiz-002.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-justify-content-horiz-003-expected.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-justify-content-horiz-003.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-justify-content-horiz-004-expected.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-justify-content-horiz-004.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-justify-content-horiz-005-expected.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-justify-content-horiz-005.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-justify-content-horiz-006-expected.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-justify-content-horiz-006.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-justify-content-vert-001a-expected.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-justify-content-vert-001a.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-justify-content-vert-001b-expected.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-justify-content-vert-001b.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-justify-content-vert-002-expected.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-justify-content-vert-002.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-justify-content-vert-003-expected.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-justify-content-vert-003.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-justify-content-vert-004-expected.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-justify-content-vert-004.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-justify-content-vert-005-expected.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-justify-content-vert-005.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-justify-content-vert-006-expected.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-justify-content-vert-006.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-justify-content-wmvert-001-expected.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-justify-content-wmvert-001.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-margin-auto-horiz-001-expected.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-margin-auto-horiz-001.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-margin-auto-horiz-002-expected.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-margin-auto-horiz-002.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-mbp-horiz-001-expected.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-mbp-horiz-001-reverse-expected.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-mbp-horiz-001-reverse.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-mbp-horiz-001-rtl-expected.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-mbp-horiz-001-rtl-reverse-expected.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-mbp-horiz-001-rtl-reverse.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-mbp-horiz-001-rtl.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-mbp-horiz-001.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-mbp-horiz-002a-expected.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-mbp-horiz-002a.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-mbp-horiz-002b-expected.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-mbp-horiz-002b.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-mbp-horiz-002v-expected.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-mbp-horiz-002v.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-mbp-horiz-003-expected.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-mbp-horiz-003-reverse-expected.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-mbp-horiz-003-reverse.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-mbp-horiz-003.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-mbp-horiz-003v-expected.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-mbp-horiz-003v.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-mbp-horiz-004-expected.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-mbp-horiz-004.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-min-height-auto-001-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-min-height-auto-001.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-min-height-auto-002a-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-min-height-auto-002a.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-min-height-auto-002b-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-min-height-auto-002b.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-min-height-auto-002c-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-min-height-auto-002c.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-min-height-auto-003-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-min-height-auto-003.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-min-height-auto-004-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-min-height-auto-004.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-min-width-auto-001-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-min-width-auto-001.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-min-width-auto-002a-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-min-width-auto-002a.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-min-width-auto-002b-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-min-width-auto-002b.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-min-width-auto-002c-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-min-width-auto-002c.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-min-width-auto-003-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-min-width-auto-003.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-min-width-auto-004-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-min-width-auto-004.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-overflow-horiz-001-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-overflow-horiz-001.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-overflow-horiz-002-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-overflow-horiz-002.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-overflow-horiz-003-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-overflow-horiz-003.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-overflow-horiz-004-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-overflow-horiz-004.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-overflow-horiz-005-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-overflow-horiz-005.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-overflow-vert-001-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-overflow-vert-001.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-overflow-vert-002-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-overflow-vert-002.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-overflow-vert-003-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-overflow-vert-003.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-overflow-vert-004-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-overflow-vert-004.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-overflow-vert-005-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-overflow-vert-005.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-paint-ordering-001-expected.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-paint-ordering-001.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-paint-ordering-002-expected.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-paint-ordering-002.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-paint-ordering-003-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-paint-ordering-003.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-root-node-001a-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-root-node-001a.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-root-node-001b-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-root-node-001b.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-safe-overflow-position-001-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-safe-overflow-position-001.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-single-line-clamp-1-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-single-line-clamp-1.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-single-line-clamp-2-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-single-line-clamp-2.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-single-line-clamp-3-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-single-line-clamp-3.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-sizing-horiz-001-expected.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-sizing-horiz-001.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-sizing-horiz-002-expected.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-sizing-horiz-002.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-sizing-vert-001-expected.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-sizing-vert-001.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-sizing-vert-002-expected.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-sizing-vert-002.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-table-fixup-001-expected.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-table-fixup-001.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-whitespace-handling-001a-expected.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-whitespace-handling-001a.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-whitespace-handling-001b-expected.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-whitespace-handling-001b.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-whitespace-handling-002-expected.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-whitespace-handling-002.xhtml: Added.
  • web-platform-tests/css/css-flexbox/flexbox-with-pseudo-elements-001-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-with-pseudo-elements-001.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-with-pseudo-elements-002-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-with-pseudo-elements-002.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-with-pseudo-elements-003-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-with-pseudo-elements-003.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-writing-mode-001-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-writing-mode-001.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-writing-mode-002-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-writing-mode-002.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-writing-mode-003-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-writing-mode-003.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-writing-mode-004-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-writing-mode-004.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-writing-mode-005-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-writing-mode-005.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-writing-mode-006-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-writing-mode-006.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-writing-mode-007-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-writing-mode-007.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-writing-mode-008-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-writing-mode-008.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-writing-mode-009-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-writing-mode-009.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-writing-mode-010-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-writing-mode-010.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-writing-mode-011-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-writing-mode-011.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-writing-mode-012-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-writing-mode-012.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-writing-mode-013-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-writing-mode-013.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-writing-mode-014-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-writing-mode-014.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-writing-mode-015-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-writing-mode-015.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-writing-mode-016-expected.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox-writing-mode-016.html: Added.
  • web-platform-tests/css/css-flexbox/flexbox_justifycontent-center-overflow-expected.html: Removed.
  • web-platform-tests/css/css-flexbox/flexbox_justifycontent-center-overflow-expected.txt: Added.
  • web-platform-tests/css/css-flexbox/flexbox_justifycontent-center-overflow.html:
  • web-platform-tests/css/css-flexbox/flexbox_stf-table-singleline-2-expected.html:
  • web-platform-tests/css/css-flexbox/flexbox_stf-table-singleline-2.html:
  • web-platform-tests/css/css-flexbox/flexbox_stf-table-singleline-expected.html:
  • web-platform-tests/css/css-flexbox/flexbox_stf-table-singleline.html:
  • web-platform-tests/css/css-flexbox/flexible-order-expected.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/Flexible-order-expected.html.
  • web-platform-tests/css/css-flexbox/flexible-order.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/Flexible-order.html.
  • web-platform-tests/css/css-flexbox/gap-006-lr-expected.html:
  • web-platform-tests/css/css-flexbox/gap-006-lr.html:
  • web-platform-tests/css/css-flexbox/gap-006-ltr-expected.html:
  • web-platform-tests/css/css-flexbox/gap-006-ltr.html:
  • web-platform-tests/css/css-flexbox/gap-006-rl-expected.html:
  • web-platform-tests/css/css-flexbox/gap-006-rl.html:
  • web-platform-tests/css/css-flexbox/gap-006-rtl-expected.html:
  • web-platform-tests/css/css-flexbox/gap-006-rtl.html:
  • web-platform-tests/css/css-flexbox/getcomputedstyle/flexbox_computedstyle_flex-basis-0percent-expected.txt:
  • web-platform-tests/css/css-flexbox/getcomputedstyle/flexbox_computedstyle_flex-basis-0percent.html:
  • web-platform-tests/css/css-flexbox/getcomputedstyle/flexbox_computedstyle_flex-shorthand-number-expected.txt:
  • web-platform-tests/css/css-flexbox/getcomputedstyle/flexbox_computedstyle_flex-shorthand-number.html:
  • web-platform-tests/css/css-flexbox/grid-flex-item-005-expected.html: Added.
  • web-platform-tests/css/css-flexbox/grid-flex-item-005.html: Added.
  • web-platform-tests/css/css-flexbox/grid-flex-item-006-expected.xht: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/abspos-autopos-htb-ltr-expected.xht.
  • web-platform-tests/css/css-flexbox/grid-flex-item-006.html: Added.
  • web-platform-tests/css/css-flexbox/height-percentage-with-dynamic-container-size-expected.txt: Added.
  • web-platform-tests/css/css-flexbox/height-percentage-with-dynamic-container-size.html: Added.
  • web-platform-tests/css/css-flexbox/justify-content-006-expected.txt: Added.
  • web-platform-tests/css/css-flexbox/justify-content-006.html: Added.
  • web-platform-tests/css/css-flexbox/ortho-table-item-001-expected.html: Added.
  • web-platform-tests/css/css-flexbox/ortho-table-item-001.html: Added.
  • web-platform-tests/css/css-flexbox/percentage-max-height-002-expected.html: Added.
  • web-platform-tests/css/css-flexbox/percentage-max-height-002.html: Added.
  • web-platform-tests/css/css-flexbox/percentage-max-height-003-expected.xht: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/abspos-autopos-htb-ltr-expected.xht.
  • web-platform-tests/css/css-flexbox/percentage-max-height-003.html: Added.
  • web-platform-tests/css/css-flexbox/percentage-size-quirks-002-expected.txt: Added.
  • web-platform-tests/css/css-flexbox/percentage-size-quirks-002.html: Added.
  • web-platform-tests/css/css-flexbox/position-absolute-scrollbar-freeze-expected.html: Added.
  • web-platform-tests/css/css-flexbox/position-absolute-scrollbar-freeze.html: Added.
  • web-platform-tests/css/css-flexbox/position-relative-percentage-top-002-expected.xht: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/abspos-autopos-htb-ltr-expected.xht.
  • web-platform-tests/css/css-flexbox/position-relative-percentage-top-002.html: Added.
  • web-platform-tests/css/css-flexbox/position-relative-percentage-top-003-expected.xht: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/abspos-autopos-htb-ltr-expected.xht.
  • web-platform-tests/css/css-flexbox/position-relative-percentage-top-003.html: Added.
  • web-platform-tests/css/css-flexbox/quirks-auto-block-size-with-percentage-item.html:
  • web-platform-tests/css/css-flexbox/scrollbars-auto-min-content-sizing-expected.txt: Added.
  • web-platform-tests/css/css-flexbox/scrollbars-auto-min-content-sizing.html: Added.
  • web-platform-tests/css/css-flexbox/scrollbars-no-margin-expected.html: Added.
  • web-platform-tests/css/css-flexbox/scrollbars-no-margin.html: Added.
  • web-platform-tests/css/css-flexbox/stretch-input-in-column-expected.html:
  • web-platform-tests/css/css-flexbox/svg-root-as-flex-item-002-expected.xht: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/abspos-autopos-htb-ltr-expected.xht.
  • web-platform-tests/css/css-flexbox/svg-root-as-flex-item-002.html: Added.
  • web-platform-tests/css/css-flexbox/svg-root-as-flex-item-003-expected.html: Added.
  • web-platform-tests/css/css-flexbox/svg-root-as-flex-item-003.html: Added.
  • web-platform-tests/css/css-flexbox/svg-root-as-flex-item-004-expected.xht: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/abspos-autopos-htb-ltr-expected.xht.
  • web-platform-tests/css/css-flexbox/svg-root-as-flex-item-004.html: Added.
  • web-platform-tests/css/css-flexbox/svg-root-as-flex-item-005-expected.xht: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/abspos-autopos-htb-ltr-expected.xht.
  • web-platform-tests/css/css-flexbox/svg-root-as-flex-item-005.html: Added.
  • web-platform-tests/css/css-flexbox/svg-root-as-flex-item-006-expected.txt: Added.
  • web-platform-tests/css/css-flexbox/svg-root-as-flex-item-006.html: Added.
  • web-platform-tests/css/css-flexbox/table-as-item-fixed-min-width-2-expected.xht: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/abspos-autopos-htb-ltr-expected.xht.
  • web-platform-tests/css/css-flexbox/table-as-item-fixed-min-width-2.html: Added.
  • web-platform-tests/css/css-flexbox/table-as-item-fixed-min-width-3-expected.xht: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/abspos-autopos-htb-ltr-expected.xht.
  • web-platform-tests/css/css-flexbox/table-as-item-fixed-min-width-3.html: Added.
  • web-platform-tests/css/css-flexbox/table-as-item-fixed-min-width.html:
  • web-platform-tests/css/css-flexbox/table-as-item-flex-cross-size-expected.xht: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/abspos-autopos-htb-ltr-expected.xht.
  • web-platform-tests/css/css-flexbox/table-as-item-flex-cross-size.html: Added.
  • web-platform-tests/css/css-flexbox/table-as-item-percent-width-cell-001-expected.html: Added.
  • web-platform-tests/css/css-flexbox/table-as-item-percent-width-cell-001.html: Added.
  • web-platform-tests/css/css-flexbox/table-as-item-specified-width-expected.html: Added.
  • web-platform-tests/css/css-flexbox/table-as-item-specified-width.html: Added.
  • web-platform-tests/css/css-flexbox/table-as-item-stretch-cross-size-expected.xht: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/abspos-autopos-htb-ltr-expected.xht.
  • web-platform-tests/css/css-flexbox/table-as-item-stretch-cross-size.html: Added.
  • web-platform-tests/css/css-flexbox/table-item-flex-percentage-width-expected.html: Added.
  • web-platform-tests/css/css-flexbox/table-item-flex-percentage-width.html: Added.
  • web-platform-tests/css/css-flexbox/table-with-percent-intrinsic-width-expected.txt: Added.
  • web-platform-tests/css/css-flexbox/table-with-percent-intrinsic-width.html: Added.
  • web-platform-tests/css/css-flexbox/w3c-import.log:

LayoutTests:

Sync'ed our local copy to latest upstream data.

  • TestExpectations: Added new failing tests with bugs.
  • platform/glib/TestExpectations: Removed a couple of tests that are working fine after import.
  • platform/ios/TestExpectations: Added new failing tests with bugs.
  • platform/ios/imported/w3c/web-platform-tests/css/css-flexbox/abspos/position-absolute-012-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/position-absolute-012-expected.txt.
  • platform/ios/imported/w3c/web-platform-tests/css/css-flexbox/abspos/position-absolute-013-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/position-absolute-013-expected.txt.
  • platform/ios/imported/w3c/web-platform-tests/css/css-flexbox/contain-size-layout-abspos-flex-container-crash-expected.txt: Added.
  • platform/ios/imported/w3c/web-platform-tests/css/css-flexbox/flex-item-compressible-001-expected.txt: Added.
  • platform/mac-catalina-wk1/imported/w3c/web-platform-tests/css/css-flexbox/contain-size-layout-abspos-flex-container-crash-expected.txt: Added.
  • platform/mac-catalina/imported/w3c/web-platform-tests/css/css-flexbox/contain-size-layout-abspos-flex-container-crash-expected.txt: Added.
  • platform/mac/TestExpectations: Added new failing tests with bugs.
2:18 AM Changeset in webkit [272643] by Philippe Normand
  • 8 edits
    2 adds in trunk

[WPE] Optionally build Cog as external project and replacement for MiniBrowser
https://bugs.webkit.org/show_bug.cgi?id=221518

Reviewed by Adrian Perez de Castro.

.:

  • Source/cmake/OptionsWPE.cmake: New variable for JSC forwarded headers path, useful

uninstalled builds of projects depending on JSC.

Source/WebKit:

  • PlatformWPE.cmake: Produce uninstalled pkg-config files for wpe-webkit and web-extension

libraries. Also populate the JSC ForwardedHeaders path during the build.

  • wpe/wpe-web-extension-uninstalled.pc.in: Added.
  • wpe/wpe-webkit-uninstalled.pc.in: Added.

Tools:

By passing -DENABLE_COG=ON during the WPE build, the Cog browser is now built as an
external project. The repository is cloned in Tools/wpe/cog and the code can be edited
there.

The run-minibrowser --wpe script will now first try to execute cog and fallback to
MiniBrowser if it wasn't found. Cog is also a MiniBrowser, but with some additional
features, see https://github.com/Igalia/cog for more informations.

  • PlatformWPE.cmake: Configure Cog as an external project in developer builds.
  • Scripts/webkitpy/port/wpe.py:

(WPEPort.run_minibrowser): First check for cog, fallback to MiniBrowser if not found.

  • flatpak/flatpakutils.py:

(WebkitFlatpak.run_in_sandbox): Set pkg-config path to lookup libraries in the WebKit's
build directory as well.

1:42 AM Changeset in webkit [272642] by Carlos Garcia Campos
  • 2 edits in trunk/LayoutTests

Some privateClickMeasurement might output the information in different order depending on platform
https://bugs.webkit.org/show_bug.cgi?id=221406

Reviewed by Michael Catanzaro.

The script conversionReport.php iterates the HTTP headers to show the information, but header's order can be
different for different platforms. We could just check every value we want to show to make sure we always
provide them in the same order.

  • http/tests/privateClickMeasurement/resources/conversionReport.php:
1:41 AM Changeset in webkit [272641] by Carlos Garcia Campos
  • 10 edits in trunk/Source

[SOUP] Simplify ResourceRequest and ResourceResponse
https://bugs.webkit.org/show_bug.cgi?id=221543

Reviewed by Adrian Perez de Castro.

Source/WebCore:

There's unused code there and it can be refactored.

  • ResourceRequest:
    • Remove unused member m_soupFlags.
    • Remove updateSoupMessage() that is always called after a SoupMessage has been created and add createSoupMessage() to return a new SoupMessage.
    • Set the message priority in the createSoupMessage() too.
    • Remove updateFromSoupMessage() that is curently used only by WebSockets to update the request headers after the request is sent to include cookies and other headers set by libsoup. We can simply use updateFromSoupMessageHeaders() for that case instead.
  • ResourceResponse:
    • Remove unused member m_soupFlags.
    • Remove updateFromSoupMessage() that is always used with a newly created ResourceResponse and use the ResourceResponse constructor that receives a SoupMessage instead.
    • Sniffed content type is now received as an optional parameter of the ResourceResponse constructor that receives a SoupMessage, and used to set the MIME type and text encoding.
    • Remove unused certificate info getters and the encode/decode methods that are no longer needed.
  • platform/network/soup/ResourceRequest.h:

(WebCore::ResourceRequest::encodeWithPlatformData const):
(WebCore::ResourceRequest::decodeWithPlatformData):

  • platform/network/soup/ResourceRequestSoup.cpp:

(WebCore::toSoupMessagePriority):
(WebCore::ResourceRequest::createSoupMessage const):

  • platform/network/soup/ResourceResponse.h:

(WebCore::ResourceResponse::ResourceResponse):
(WebCore::ResourceResponse::soupMessageCertificate const):
(WebCore::ResourceResponse::soupMessageTLSErrors const):

  • platform/network/soup/ResourceResponseSoup.cpp:

(WebCore::ResourceResponse::ResourceResponse):
(WebCore::ResourceResponse::updateSoupMessageHeaders const):
(WebCore::ResourceResponse::updateFromSoupMessageHeaders):

Source/WebKit:

Use new ResourceRequest and ResourceResponse API.

  • NetworkProcess/soup/NetworkDataTaskSoup.cpp:

(WebKit::NetworkDataTaskSoup::createRequest): Use ResourceRequest::createSoupMessage().
(WebKit::NetworkDataTaskSoup::didSendRequest): Use ResourceResponse passing the SoupMessage and sniffed content type.
(WebKit::NetworkDataTaskSoup::didRequestNextPart): Create a ResourceResponse passing the url, content type,
expected length and text encoding. Then call ResourceResponse::updateFromSoupMessageHeaders() to set the headers.

  • NetworkProcess/soup/NetworkSessionSoup.cpp:

(WebKit::NetworkSessionSoup::createWebSocketTask): Use ResourceRequest::createSoupMessage() and pass the
ResourceRequest to WebSocketTask constructor.

  • NetworkProcess/soup/WebSocketTaskSoup.cpp:

(WebKit::WebSocketTask::WebSocketTask): Save the ResourceRequest and then just call
ResourceRequest::updateFromSoupMessageHeaders() to update the headers after the response has been sent by libsoup.
(WebKit::WebSocketTask::didConnect): Use ResourceResponse constructor with the SoupMessage directly.
(WebKit::WebSocketTask::didFail): Ditto.

  • NetworkProcess/soup/WebSocketTaskSoup.h:
1:13 AM Changeset in webkit [272640] by commit-queue@webkit.org
  • 6 edits
    2 adds in trunk

Do not schedule update on embed creation
https://bugs.webkit.org/show_bug.cgi?id=221375

Patch by Rob Buis <rbuis@igalia.com> on 2021-02-10
Reviewed by Ryosuke Niwa.

Source/WebCore:

Do not schedule update on embed creation.

Test: plugins/embed-creation-crash.html

  • html/HTMLEmbedElement.cpp:

(WebCore::HTMLEmbedElement::create):

  • html/HTMLObjectElement.cpp:

(WebCore::HTMLObjectElement::create):

  • html/HTMLPlugInImageElement.cpp:

(WebCore::HTMLPlugInImageElement::finishCreating): Deleted.

  • html/HTMLPlugInImageElement.h:

LayoutTests:

Add test for this.

  • plugins/embed-creation-crash-expected.txt: Added.
  • plugins/embed-creation-crash.html: Added.
12:53 AM Changeset in webkit [272639] by Lauro Moura
  • 2 edits
    1 add in trunk/LayoutTests

[ATK] Support focusable-inside-hidden test
https://bugs.webkit.org/show_bug.cgi?id=221646

Reviewed by Chris Fleizach.

ATK uses a different field for the description. (See r201216 and
r201072).

  • accessibility/focusable-inside-hidden.html: Add check for ATK.
  • platform/glib/accessibility/focusable-inside-hidden-expected.txt: Added.
Note: See TracTimeline for information about the timeline view.