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

Timeline



Mar 18, 2021:

10:30 PM Changeset in webkit [274704] by Simon Fraser
  • 4 edits in trunk/Source/WebCore

Attempt to fix the macOS build after r274695.

  • platform/graphics/GraphicsContextGL.h:
  • testing/WebFakeXRDevice.cpp:
  • testing/WebFakeXRDevice.h:
9:57 PM Changeset in webkit [274703] by Simon Fraser
  • 9 edits
    9 copies in trunk

Roll over the ChangeLogs

9:45 PM Changeset in webkit [274702] by Lauro Moura
  • 17 edits
    1 add in trunk/LayoutTests

[GLIB] Gardening yet more consistent failures

Unreviewed test gardening.

  • platform/glib/TestExpectations:
  • platform/glib/webgl/webgl-allow-shared-expected.txt: Added with

webgl2 failures, to avoid missihg the webgl checks.

  • platform/gtk/TestExpectations: A bunch of ruby tests were marked as

very old failures but needed only to be rebaselined.

  • platform/gtk/fast/ruby/nested-ruby-expected.txt:
  • platform/gtk/fast/ruby/ruby-beforeafter-expected.txt:
  • platform/gtk/fast/ruby/ruby-empty-rt-expected.txt:
  • platform/gtk/fast/ruby/ruby-runs-spans-expected.txt:
  • platform/gtk/fast/ruby/ruby-trailing-expected.txt:
  • platform/gtk/fast/ruby/rubyDOM-insert-rt-expected.txt:
  • platform/gtk/fast/ruby/rubyDOM-insert-text1-expected.txt:
  • platform/gtk/fast/ruby/rubyDOM-insert-text2-expected.txt:
  • platform/gtk/fast/ruby/rubyDOM-insert-text3-expected.txt:
  • platform/gtk/fast/ruby/rubyDOM-remove-rt1-expected.txt:
  • platform/gtk/fast/ruby/rubyDOM-remove-rt2-expected.txt:
  • platform/gtk/fast/ruby/rubyDOM-remove-text1-expected.txt:
  • platform/gtk/fast/ruby/rubyDOM-remove-text2-expected.txt:
  • platform/wpe/fast/ruby/rubyDOM-remove-rt1-expected.txt:
9:30 PM Changeset in webkit [274701] by mark.lam@apple.com
  • 2 edits in trunk/JSTests

JSTests/stress/heap-analyzer-taking-lock.js intermittently fails --verifyGC=true.
https://bugs.webkit.org/show_bug.cgi?id=222947
rdar://75454308

Reviewed by Michael Saboff.

The issue was already fixed in https://bugs.webkit.org/show_bug.cgi?id=223241.
Removing skipped test option.

  • stress/heap-analyzer-taking-lock.js:
9:21 PM Changeset in webkit [274700] by Simon Fraser
  • 2 edits in trunk/Source/WebCore

Add a fast path for subdivideAndResolveStyle()
https://bugs.webkit.org/show_bug.cgi?id=223480

Reviewed by Myles Maxfield.

Most of the time, InlineTextBox::paint() will be painting text runs with no marked text,
so optimize subdivideAndResolveStyle() for this case.

This removes 1.6% of the time in painting in the MotionMark Design subtest.

  • rendering/MarkedTextStyle.cpp:

(WebCore::subdivideAndResolveStyle):
(WebCore::coalesceAdjacentMarkedTexts): No need to do any work if there are zero or one
ranges.

9:20 PM Changeset in webkit [274699] by sbarati@apple.com
  • 4 edits
    1 add in trunk

JS->Wasm IC must save the tag registers if it uses them
https://bugs.webkit.org/show_bug.cgi?id=223491
<rdar://66445108>

Reviewed by Yusuke Suzuki.

JSTests:

  • wasm/stress/save-tag-callee-saves-in-js-entrypoint-ic.js: Added.

(0x0b.WebAssembly.instantiate.wasm.then.e.const.mod.e.instance.exports.Test.prototype.get breakIt):
(0x0b.WebAssembly.instantiate.wasm.then.e.const.mod.e.instance.exports.Test):
(0x0b.WebAssembly.instantiate.wasm.then.e.const.obj.new.Test):

Source/JavaScriptCore:

It turns out, that when you use a callee save register, you should save it.

  • wasm/js/WebAssemblyFunction.cpp:

(JSC::WebAssemblyFunction::usesTagRegisters const):
(JSC::WebAssemblyFunction::calleeSaves const):
(JSC::WebAssemblyFunction::jsCallEntrypointSlow):
(JSC::WebAssemblyFunction::useTagRegisters const): Deleted.

  • wasm/js/WebAssemblyFunction.h:
7:56 PM Changeset in webkit [274698] by Aditya Keerthi
  • 8 edits in trunk

[iOS] Update strings and icons in the file upload panel
https://bugs.webkit.org/show_bug.cgi?id=223463
<rdar://problem/74999459>

Reviewed by Tim Horton.

Source/WebCore:

  • en.lproj/Localizable.strings:

Removed unused string.

  • platform/LocalizedStrings.h:

WEBCORE_EXPORT the "Choose File" and "Choose Files" strings so that
they can be used in the WebKit layer.

Source/WebKit:

  • UIProcess/ios/forms/WKFileUploadPanel.mm:

(-[WKFileUploadPanel currentAvailableActionTitles]):

Expose the new string for testing.

(-[WKFileUploadPanel _chooseFilesButtonLabel]):
(-[WKFileUploadPanel contextMenuInteraction:configurationForMenuAtLocation:]):

Use the "folder" SF symbol as the icon for the "Choose File" action.

LayoutTests:

Updated existing tests to use async/await rather than promise chaining,
and added new tests that exercise the "multiple" attribute on file
inputs.

  • fast/forms/ios/file-upload-panel-expected.txt:
  • fast/forms/ios/file-upload-panel.html:
7:37 PM Changeset in webkit [274697] by BJ Burg
  • 7 edits
    1 copy
    1 add in trunk/Source/WebKit

[Cocoa] Web Inspector: load inspector resources using a custom scheme handler
https://bugs.webkit.org/show_bug.cgi?id=179904
<rdar://problem/10887211>

Reviewed by Geoff Garen.

Load WebInspectorUI resources via the inspector-resource:// scheme.
Moving off of file:// URLs will allow for a tighter sandbox and
will fix the longstanding issue that Web Inspector's settings are
part of the file:// scheme and cleared when Safari clears website data.

This also has the effect of resetting Web Inspector settings since
they are no longer associated with file:///.

Loading via this scheme is exercised by existing inspector tests.

  • SourcesCocoa.txt: Added new file.
  • WebKit.xcodeproj/project.pbxproj:
  • UIProcess/Inspector/mac/WKInspectorResourceURLSchemeHandler.h: Copied from Source/WebKit/WebProcess/Inspector/mac/WebInspectorUIMac.mm.
  • UIProcess/Inspector/mac/WKInspectorResourceURLSchemeHandler.mm: Added.

(-[WKInspectorResourceURLSchemeHandler webView:startURLSchemeTask:]):
Use a global concurrent queue and NSOperation / NSOperationQueue to support
reading files off the main queue.

(-[WKInspectorResourceURLSchemeHandler webView:stopURLSchemeTask:]):
Translate the request URL to a bundle resource URL, read the data, and send a response
with the file data. Return an error if the file could not be found or read.

  • UIProcess/Inspector/mac/WKInspectorViewController.h:
  • UIProcess/Inspector/mac/WKInspectorViewController.mm:

(-[WKInspectorViewController webViewConfiguration]):
(+[WKInspectorViewController URLForInspectorResource:]):
(-[WKInspectorViewController webView:decidePolicyForNavigationAction:decisionHandler:]):
Allow navigations to URIs with the inspector-resource:// scheme.

  • UIProcess/Inspector/mac/WebInspectorProxyMac.mm:

(WebKit::WebInspectorProxy::inspectorPageURL):
(WebKit::WebInspectorProxy::inspectorTestPageURL):
(WebKit::WebInspectorProxy::inspectorBaseURL):
Updated.

  • WebProcess/Inspector/mac/WebInspectorUIMac.mm:

(WebKit::webInspectorUILocalizedStringsURL):
Updated.

7:23 PM Changeset in webkit [274696] by Wenson Hsieh
  • 2 edits in trunk/Tools

Add a test to exercise the crash in webkit.org/b/223417
https://bugs.webkit.org/show_bug.cgi?id=223485

Reviewed by Tim Horton.

Add an API test that performs a hit-test just outside of the bounds of the WKWebView that contains a full-page
clickable element. This finds the element as the click target, but the hit-tested node is null.

  • TestWebKitAPI/Tests/WebKitCocoa/WKRequestActivatedElementInfo.mm:

(TestWebKitAPI::TEST):

6:27 PM Changeset in webkit [274695] by imanol
  • 25 edits
    6 adds in trunk

Implement WebXR Opaque Framebuffer
https://bugs.webkit.org/show_bug.cgi?id=222607

Reviewed by Youenn Fablet.

LayoutTests/imported/w3c:

Update WebXR Opaque Framebuffer test expectations.

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

Source/WebCore:

This patch adds a base XR layers API which is initially used by WebXRWebGLLayer, but
with the goal of supporting more types of layers in the future (see WebXR Layers spec).

Layers are connected to WebGL by using shared textures. In the case of WebXRWebGLLayer
it creates an Opaque Framebuffer that renders to the shared texture. XR runtimes supporting
double or triple buffering can send different shared textures each frame in the FrameData struct.
The texture for the current frame is attached in WebXRLayer::startFrame and prepared to send it back to the
VR compositor in WebXRLayer::endFrame().

Tested by the WebXR WPT tests.

  • Modules/webxr/WebXRLayer.h: add startFrame and endFrame pure virtual methods.
  • Modules/webxr/WebXRSession.cpp:

(WebCore::WebXRSession::onFrame): do not call RAFs if frameData.shouldRender is false.

  • Modules/webxr/WebXRSession.h: add device getter.
  • Modules/webxr/WebXRSystem.cpp:

(WebCore::WebXRSystem::DummyInlineDevice::requestFrame): always enable frameData.shouldRender flag.

  • Modules/webxr/WebXRSystem.h: Override new virtual functions.
  • Modules/webxr/WebXRViewport.h:

(WebCore::WebXRViewport::rect const): Add helper method.

  • Modules/webxr/WebXRWebGLLayer.cpp: Refactor resource initialization to create method.

(WebCore::WebXRWebGLLayer::create):
(WebCore::WebXRWebGLLayer::WebXRWebGLLayer):
(WebCore::m_isCompositionEnabled):
(WebCore::WebXRWebGLLayer::framebuffer const):
(WebCore::WebXRWebGLLayer::framebufferWidth const):
(WebCore::WebXRWebGLLayer::framebufferHeight const):
(WebCore::WebXRWebGLLayer::startFrame): Prepare Opaque Framebuffer for the start of next frame.
(WebCore::WebXRWebGLLayer::endFrame): Prepare Opaque Framebuffer for VR compositor submitFrame.
(WebCore::WebXRWebGLLayer::canvasResized): Move method

(WebCore::WebXROpaqueFramebuffer::create): Implement class to manage WebXR Opaque framebuffer.
(WebCore::WebXROpaqueFramebuffer::WebXROpaqueFramebuffer):
(WebCore::WebXROpaqueFramebuffer::~WebXROpaqueFramebuffer):
(WebCore::WebXROpaqueFramebuffer::startFrame): Attach shared texture for the current frame.
(WebCore::WebXROpaqueFramebuffer::endFrame): Flush and resolve multisampling if required.
(WebCore::WebXROpaqueFramebuffer::setupFramebuffer): Allocate the Opaque framebuffer with requested attributes.

  • Modules/webxr/WebXRWebGLLayer.h: Add WebXROpaqueFramebuffer and handle members.

(WebCore::WebXROpaqueFramebuffer::handle const):
(WebCore::WebXROpaqueFramebuffer::framebuffer const):
(WebCore::WebXROpaqueFramebuffer::width const):
(WebCore::WebXROpaqueFramebuffer::height const):

  • Sources.txt: Add OpenXRLayer.cpp and OpenXRSwapchain.cpp.
  • html/canvas/WebGL2RenderingContext.cpp:

(WebCore::WebGL2RenderingContext::getFramebufferAttachmentParameter): handle Opaque Framebuffers.

  • html/canvas/WebGLFramebuffer.cpp: Add members and methods required for Opaque Framebuffers.

(WebCore::WebGLFramebuffer::createOpaque):
(WebCore::WebGLFramebuffer::checkStatus const):

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

(WebCore::WebGLRenderingContext::getFramebufferAttachmentParameter): handle Opaque Framebuffers.

  • html/canvas/WebGLRenderingContextBase.cpp: handle Opaque Framebuffers.

(WebCore::WebGLRenderingContextBase::deleteFramebuffer):
(WebCore::WebGLRenderingContextBase::framebufferRenderbuffer):
(WebCore::WebGLRenderingContextBase::framebufferTexture2D):

  • platform/xr/PlatformXR.h: Add method to submitFrame.

(PlatformXR::Device::submitFrame):

  • platform/xr/openxr/OpenXRLayer.cpp: Add class to manage OpenXR layers.

(PlatformXR::OpenXRLayer::OpenXRLayer):
(PlatformXR::OpenXRLayerProjection::create):
(PlatformXR::OpenXRLayerProjection::OpenXRLayerProjection):
(PlatformXR::OpenXRLayerProjection::startFrame):

  • platform/xr/openxr/OpenXRLayer.h: Added.

(PlatformXR::OpenXRLayer::handle):

  • platform/xr/openxr/OpenXRSwapchain.cpp: Add class to manage OpenXR swapchains

(PlatformXR::OpenXRSwapchain::create):
(PlatformXR::OpenXRSwapchain::OpenXRSwapchain):
(PlatformXR::OpenXRSwapchain::~OpenXRSwapchain):
(PlatformXR::OpenXRSwapchain::acquireImage):
(PlatformXR::OpenXRSwapchain::releaseImage):

  • platform/xr/openxr/OpenXRSwapchain.h: Added.
  • platform/xr/openxr/OpenXRUtils.h: Add helper log function

(PlatformXR::xrViewToPose): Use fabs instead of negation

  • platform/xr/openxr/PlatformXROpenXR.cpp:

(PlatformXR::OpenXRDevice::initializeTrackingAndRendering): create GraphicsContextGL for texture sharing.
(PlatformXR::OpenXRDevice::requestFrame): Prepare and fill layers if shouldRender is true.
(PlatformXR::OpenXRDevice::submitFrame): Implement submit layers to OpenXR
(PlatformXR::OpenXRDevice::createLayerProjection): Implement layer creation method
(PlatformXR::OpenXRDevice::deleteLayer): Implement layer deallocation
(PlatformXR::OpenXRDevice::collectEnabledFeatures const):
(PlatformXR::OpenXRDevice::resetSession): Deallocate layers and graphics context.

  • platform/xr/openxr/PlatformXROpenXR.h: Add Layers API
  • testing/WebFakeXRDevice.cpp:

(WebCore::SimulatedXRDevice::recommendedResolution): Increase size to avoid platform minimum FBO size errors
(WebCore::SimulatedXRDevice::initializeTrackingAndRendering): Create graphics context
(WebCore::SimulatedXRDevice::shutDownTrackingAndRendering): Release graphics context
(WebCore::SimulatedXRDevice::frameTimerFired): set up layers in frame data
(WebCore::SimulatedXRDevice::createLayerProjection): creates a texture for a layer.
(WebCore::SimulatedXRDevice::deleteLayer): releases the associated texture to a layer

  • testing/WebFakeXRDevice.h:

LayoutTests:

Update WebXR Opaque Framebuffer test expectations.

  • platform/wpe/TestExpectations:
6:15 PM Changeset in webkit [274694] by Diego Pino Garcia
  • 3 edits in trunk/LayoutTests

[GLIB] REGRESSION(r274273): fast/canvas/webgl/gl-teximage-imagebitmap.html is failing
https://bugs.webkit.org/show_bug.cgi?id=223297

Reviewed by Carlos Garcia Campos.

This test started failing in GTK after r274273. The test fails due to a pixel color difference of 1.
Change failing test to allow a tolerance of 1 when comparing expected and actual results.

  • fast/canvas/webgl/gl-teximage-imagebitmap-expected.txt:
  • fast/canvas/webgl/gl-teximage-imagebitmap.html:
6:02 PM Changeset in webkit [274693] by Russell Epstein
  • 2 edits in branches/safari-612.1.7-branch/Source/WebKit

Revert r274356. rdar://problem/75599898

5:25 PM Changeset in webkit [274692] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebKit

Handle empty bound size during animated resizing
https://bugs.webkit.org/show_bug.cgi?id=223446

Patch by Sihui Liu <sihui_liu@appe.com> on 2021-03-18
Reviewed by Tim Horton.

We don't allow empty bounds in animated resizing: when that happens, we would cancel it. However, a set of
updates involving empty bounds can be merged to a valid update. For example, two changes of frame size
[1] (0, 0, 100, 100) => (0, 0, 0, 50) [2] (0, 0, 0, 50) => (0, 0, 50, 50) can be viewed as single change
(0, 0, 100, 100) => (0, 0, 50, 50), which is valid. We used to ask SPI clients to ensure each update is valid,
but sometimes the frame change is not under client's control. For example when client uses auto layout, empty
frame seems to be a valid mid product.

To handle this case, we can store the old bounds, and actually perform animated resizing on when new valid
bounds show up. For the example above, we would store (0, 0, 100, 100) on [1] and use it to resize from
(0, 0, 100, 100) to (0, 0, 50, 50) on [2].

  • UIProcess/API/Cocoa/WKWebViewInternal.h:
  • UIProcess/API/ios/WKWebViewIOS.mm:

(-[WKWebView _processWillSwapOrDidExit]):
(-[WKWebView _updateVisibleContentRects]): If we still have stored old bounds in _updateVisibleContentRects, it
means they are not consumed in this cycle. In this case let's just cancel animated resizing and send out updates.
(-[WKWebView _cancelAnimatedResize]):
(-[WKWebView _didCompleteAnimatedResize]):
(-[WKWebView _beginAnimatedResizeWithUpdates:]):

5:08 PM Changeset in webkit [274691] by Adrian Perez de Castro
  • 3 edits in releases/WebKitGTK/webkit-2.30/Source/WebKit

Unreviewed non-unified build fixes

  • GPUProcess/media/RemoteMediaResourceLoader.cpp:
  • NetworkProcess/webrtc/NetworkRTCProvider.cpp:
4:56 PM Changeset in webkit [274690] by Robert Jenner
  • 2 edits in trunk/LayoutTests

[ macOS wk2 Release ARM64 ] 3 http/wpt/beacon/cors/cors-preflight-blob are flakey text failures
https://bugs.webkit.org/show_bug.cgi?id=223488

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations: Updating expectations to Pass Failure while tests are being reviewed.
4:46 PM Changeset in webkit [274689] by jiewen_tan@apple.com
  • 2 edits in trunk/Source/WebKit

Update Keychain queries according to internal needs
https://bugs.webkit.org/show_bug.cgi?id=223424
rdar://75434045

Reviewed by Brent Fulgham.

Covered by manual tests.

  • UIProcess/WebAuthentication/Cocoa/LocalAuthenticator.mm:

(updateQuery):
(WebKit::LocalAuthenticatorInternal::getExistingCredentials):
(WebKit::LocalAuthenticator::clearAllCredentials):
(WebKit::LocalAuthenticator::continueMakeCredentialAfterUserVerification):
(WebKit::LocalAuthenticator::continueGetAssertionAfterUserVerification):
(WebKit::LocalAuthenticator::receiveException const):
(WebKit::LocalAuthenticator::deleteDuplicateCredential const):
(shouldUseAlternateQuery): Deleted.
(alternateQueryForRPID): Deleted.

4:42 PM Changeset in webkit [274688] by Wenson Hsieh
  • 5 edits in trunk

Avoid copying item data when iterating in-process display lists
https://bugs.webkit.org/show_bug.cgi?id=223471

Reviewed by Simon Fraser.

Source/WebCore:

As a performance optimization, in the case where display lists are built up without item buffer clients that are
responsible for encoding and decoding display list data, all display list items are constructed (and exist)
directly within the item buffer. In this scenario, there is no need to additionally decode or validate inline
items by copying them into a separate buffer, so we can simply skip this step and just use the memory address of
the item inside m_allocatedBuffers as the curren item handle when iterating through in-process display lists.

This skips almost all of the work done underneath DisplayList::iterator::updateCurrentItem() in the web
process on the Design subtest of MotionMark. Covered by existing API tests (one of which needs a slight
adjustment).

  • platform/graphics/displaylists/DisplayList.cpp:

(WebCore::DisplayList::DisplayList::iterator::atEnd const):
(WebCore::DisplayList::DisplayList::iterator::updateCurrentItem):
(WebCore::DisplayList::DisplayList::iterator::advance):

Rearrange this logic so that we only decode or copy out to a side buffer and perform validation in the case
where we have an item buffer client. Otherwise, we know that the items already exist inside the item buffer's
m_allocatedBuffers, so we can simply use the current memory address (m_cursor) as the item handle.

(WebCore::DisplayList::DisplayList::iterator::clearCurrentItem):

Only destroy the item at m_currentBufferForItem if it doesn't already exist in the display list's item buffer.
(that is, if the item buffer requires a reading client). The items within the item buffer are destroyed upon
clearing the DisplayList, so running this logic would result in a double-free.

(WebCore::DisplayList::DisplayList::iterator::moveToEnd):
(WebCore::DisplayList::DisplayList::iterator::moveCursorToStartOfCurrentBuffer):

  • platform/graphics/displaylists/DisplayList.h:

(WebCore::DisplayList::DisplayList::iterator::itemBuffer const):

Drive-by refactoring: add a helper method to grab the display list's ItemBuffer, and use it in several places
above.

Tools:

Adjust an existing API test that exercises inline display list item validation by assigning a reading client to
the display list.

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

(TestWebKitAPI::TEST):

Move the ReadingClient and WritingClient out of the scope of OutOfLineItemDecodingFailure, so that the
other API test (InlineItemValidationFailure) can also use it.

4:40 PM Changeset in webkit [274687] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebCore

Unreviewed, reverting r274669.
https://bugs.webkit.org/show_bug.cgi?id=223487

Broke two debug layout tests

Reverted changeset:

"CSP headers can block default <video> controls"
https://bugs.webkit.org/show_bug.cgi?id=223422
https://trac.webkit.org/changeset/274669

4:39 PM Changeset in webkit [274686] by Chris Dumez
  • 3 edits in trunk/Source/WebCore

Avoid heap allocation under AudioParamTimeline::processSetTargetFollowedByRamp()
https://bugs.webkit.org/show_bug.cgi?id=223477

Reviewed by Darin Adler.

Stop heap-allocating ParamEvent objects in AudioParamTimeline since they sometimes
get constructed on the audio thread.

  • Modules/webaudio/AudioParamTimeline.cpp:

(WebCore::AudioParamTimeline::insertEvent):
(WebCore::AudioParamTimeline::cancelAndHoldAtTime):
(WebCore::AudioParamTimeline::valueForContextTime):
(WebCore::AudioParamTimeline::valuesForFrameRangeImpl):
(WebCore::AudioParamTimeline::processCancelValues):
(WebCore::AudioParamTimeline::processSetTargetFollowedByRamp):
(WebCore::AudioParamTimeline::handleCancelValues):
(WebCore::AudioParamTimeline::ParamEvent::createSetValueEvent):
(WebCore::AudioParamTimeline::ParamEvent::createLinearRampEvent):
(WebCore::AudioParamTimeline::ParamEvent::createExponentialRampEvent):
(WebCore::AudioParamTimeline::ParamEvent::createSetTargetEvent):
(WebCore::AudioParamTimeline::ParamEvent::createSetValueCurveEvent):
(WebCore::AudioParamTimeline::ParamEvent::createCancelValuesEvent):
(WebCore::AudioParamTimeline::hasValues const):

  • Modules/webaudio/AudioParamTimeline.h:

(WebCore::AudioParamTimeline::ParamEvent::ParamEvent):
(WebCore::AudioParamTimeline::ParamEvent::savedEvent):

4:38 PM Changeset in webkit [274685] by Diego Pino Garcia
  • 3 edits in trunk/Source/WebCore

[GTK][WPE][CMake] libCMS2 should be included only if guard USE_LCMS is defined
https://bugs.webkit.org/show_bug.cgi?id=223340

Reviewed by Carlos Garcia Campos.

  • PlatformGTK.cmake:
  • PlatformWPE.cmake:
4:29 PM Changeset in webkit [274684] by Robert Jenner
  • 2 edits in trunk/LayoutTests

[ macOS Release Wk2 ARM64 ] inspector/css/modify-inline-style.html is a flakey text failure
https://bugs.webkit.org/show_bug.cgi?id=223486

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations: Updating expectations to Pass Failure while test is reviewed.
4:22 PM Changeset in webkit [274683] by Chris Dumez
  • 2 edits in trunk/Source/WebKit

Crash under WebsiteDataStore::terminateNetworkProcess()
https://bugs.webkit.org/show_bug.cgi?id=223482
<rdar://75326967>

Reviewed by Alex Christensen.

Calling WebProcessPool::terminateServiceWorkers() may destroy the WebProcessPool, which would
remove the WebProcessPool from the WebProcessPool::allProcessPools() vector we're iterating
on. To make this safe, I now copy the WebProcessPool into a separate vector and hold a RefPtr
to them. I now iterate over this new vector instead.

  • UIProcess/WebsiteData/WebsiteDataStore.cpp:

(WebKit::WebsiteDataStore::terminateNetworkProcess):

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

Don't spend time painting transparent cell backgrounds
https://bugs.webkit.org/show_bug.cgi?id=223459

Reviewed by Darin Adler.

We can bail early from RenderTableCell::paintBackgroundsBehindCell() if the style has
no background image, and the background color is transparent (the default).

Removes 2% of painting time in the MotionMark Design subtest.

  • rendering/RenderTableCell.cpp:

(WebCore::RenderTableCell::paintBackgroundsBehindCell):

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

[ macOS ARM 64 ] compositing/style-change/backface-visibility-change.htmlis a flakey image failure
https://bugs.webkit.org/show_bug.cgi?id=223484

Unreviewed test gardening.

  • platform/mac/TestExpectations: Updated test expectations to PASS ImageOnlyFailure for Apple Silicon while test is reviewed.
3:59 PM Changeset in webkit [274680] by Nikita Vasilyev
  • 5 edits in trunk

Use 1000-based units for file sizes, per HIG
https://bugs.webkit.org/show_bug.cgi?id=208190
<rdar://problem/71045696>

Reviewed by BJ Burg.

Source/WebInspectorUI:

  • UserInterface/Base/Utilities.js:
  • UserInterface/Views/ResourceSizesContentView.js:

(WI.ResourceSizesContentView.prototype._formattedSizeComponent):

LayoutTests:

  • inspector/unit-tests/number-utilities.html:
3:53 PM Changeset in webkit [274679] by Chris Dumez
  • 7 edits in trunk/Source/WebCore

Avoid heap allocation under PannerNode::processSampleAccurateValues()
https://bugs.webkit.org/show_bug.cgi?id=223466

Reviewed by Darin Adler.

Make sure BaseAudioContext::m_listener gets initialized in the constructor
(on the main thread) instead of doing it lazily in the listener() getter
(which may get called on the audio thread).

  • Modules/webaudio/AudioContext.cpp:

(WebCore::AudioContext::create):
(WebCore::AudioContext::AudioContext):

  • Modules/webaudio/AudioContext.h:

(WebCore::AudioContext::AudioContext):

  • Modules/webaudio/BaseAudioContext.cpp:

(WebCore::BaseAudioContext::BaseAudioContext):
(WebCore::WebCore::BaseAudioContext::listener):

  • Modules/webaudio/BaseAudioContext.h:

(WebCore::BaseAudioContext::BaseAudioContext):

  • Modules/webaudio/OfflineAudioContext.cpp:

(WebCore::OfflineAudioContext::OfflineAudioContext):

  • Modules/webaudio/WebKitAudioContext.cpp:

(WebCore::WebKitAudioContext::WebKitAudioContext):

3:52 PM Changeset in webkit [274678] by timothy@apple.com
  • 4 edits in trunk/Source/WebCore

SpeechSynthesis should honor audioPlaybackRequiresUserGesture setting on iOS.
https://bugs.webkit.org/show_bug.cgi?id=223473
rdar://problem/75586456

Reviewed by Chris Fleizach.

  • Modules/speech/DOMWindowSpeechSynthesis.cpp:

(WebCore::DOMWindowSpeechSynthesis::speechSynthesis): Pass the document.

  • Modules/speech/SpeechSynthesis.cpp:

(WebCore::SpeechSynthesis::create): Pass the document.
(WebCore::SpeechSynthesis::SpeechSynthesis): Set the initial m_restrictions based on document.audioPlaybackRequiresUserGesture().

  • Modules/speech/SpeechSynthesis.h:
3:42 PM Changeset in webkit [274677] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

Avoid heap allocation under AudioWorkletNode::process()
https://bugs.webkit.org/show_bug.cgi?id=223452

Reviewed by Darin Adler.

Always use arrays of size 128 (render quantum) for AudioParam values. We used to
dynamically choose between a size of 128 and 1 (when there is no automation
scheduled and the value is constant for the quantum). This avoids having to make
heap allocations on the audio thread, which are bad for performance.

Content (and existing AudioWorklet tests) can handle either size because the
specification says [1]:
"""
For each array, the array contains the computedValue of the parameter for all
frames in the render quantum. However, if no automation is scheduled during this
render quantum, the array MAY have length 1 with the array element being the
constant value of the AudioParam for the render quantum.
"""

Note that the specification uses "MAY" so this is not a requirement for us to use
an array of size 1 in such case. I also verified that Blink is never using an
array of size 1 either. They always use arrays of 128 (render quantum size) and
std::fill() them with the constant value when there is no automation. Our new
behavior is thus consistent with Blink.

[1] https://webaudio.github.io/web-audio-api/#audioworkletprocess-callback-parameters

  • Modules/webaudio/AudioWorkletNode.cpp:

(WebCore::AudioWorkletNode::initializeAudioParameters):
(WebCore::AudioWorkletNode::process):

3:24 PM Changeset in webkit [274676] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit

[WPE][GTK] Remove plugin process leftover arg from ProcessLauncher
https://bugs.webkit.org/show_bug.cgi?id=223460

Patch by Michael Catanzaro <Michael Catanzaro> on 2021-03-18
Reviewed by Adrian Perez de Castro.

Remove extra nullptr arg.

  • UIProcess/Launcher/glib/ProcessLauncherGLib.cpp:

(WebKit::ProcessLauncher::launchProcess):

3:09 PM Changeset in webkit [274675] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Protect frame before calling setPrinting
https://bugs.webkit.org/show_bug.cgi?id=222664

Patch by Rob Buis <rbuis@igalia.com> on 2021-03-18
Reviewed by Ryosuke Niwa.

Protect frame before calling setPrinting
since it could potentially delete the frame
through event handling.

  • page/PrintContext.cpp:

(WebCore::PrintContext::begin):

2:41 PM Changeset in webkit [274674] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

Add another email for myself in contributors.json
https://bugs.webkit.org/show_bug.cgi?id=222700

Patch by Cameron McCormack <Cameron McCormack> on 2021-03-18
Reviewed by Alexey Proskuryakov.

  • Scripts/webkitpy/common/config/contributors.json:
2:19 PM Changeset in webkit [274673] by Antti Koivisto
  • 2 edits in trunk/Source/WebCore

Switch out of scheduled resource load mode only after async scripts have run
https://bugs.webkit.org/show_bug.cgi?id=223464

Reviewed by Geoffrey Garen.

Async scripts may generate more resource loads that benefit from scheduling.

  • page/Page.cpp:

(WebCore::Page::prioritizeVisibleResources):

Also factor the mode transition into a lambda.

1:58 PM Changeset in webkit [274672] by Chris Dumez
  • 4 edits in trunk/Source/WebCore

Avoid heap allocation under BaseAudioContext::sourceNodeDidFinishPlayback()
https://bugs.webkit.org/show_bug.cgi?id=223461

Reviewed by Jer Noble.

BaseAudioContext::sourceNodeDidFinishPlayback() was appending to a m_finishedSourceNodes
Vector, which would cause heap allocations on the audio thread. To avoid such heap
allocations (which are bad for performance), we now set a "isFinishedSourceNode" flag
on the AudioNode. When BaseAudioContext::derefFinishedSourceNodes(), it relies on
this new isFinishedSourceNode flag instead of using the m_finishedSourceNodes Vector.

  • Modules/webaudio/AudioNode.h:

(WebCore::AudioNode::isFinishedSourceNode const):
(WebCore::AudioNode::setIsFinishedSourceNode):

  • Modules/webaudio/BaseAudioContext.cpp:

(WebCore::BaseAudioContext::~BaseAudioContext):
(WebCore::BaseAudioContext::uninitialize):
(WebCore::isFinishedSourceNode):
(WebCore::BaseAudioContext::derefFinishedSourceNodes):
(WebCore::BaseAudioContext::sourceNodeDidFinishPlayback):

  • Modules/webaudio/BaseAudioContext.h:
1:42 PM Changeset in webkit [274671] by Chris Gambrell
  • 21 edits
    1 add
    1 delete in trunk/LayoutTests

[ macOS Wk2 ] http/tests/security/contentSecurityPolicy/report-only-connect-src-xmlhttprequest-redirect-to-blocked.php is constantly text failing
https://bugs.webkit.org/show_bug.cgi?id=223079
<rdar://problem/75323779>

Reviewed by Jonathan Bedard.

  • http/tests/security/contentSecurityPolicy/connect-src-xmlhttprequest-redirect-to-blocked-expected.txt:
  • http/tests/security/contentSecurityPolicy/connect-src-xmlhttprequest-redirect-to-blocked.html:
  • http/tests/security/contentSecurityPolicy/report-document-uri-after-blocked-redirect-expected.txt:
  • http/tests/security/contentSecurityPolicy/report-document-uri-after-blocked-redirect.html:
  • http/tests/security/contentSecurityPolicy/report-only-connect-src-beacon-redirect-blocked-expected.txt:
  • http/tests/security/contentSecurityPolicy/report-only-connect-src-beacon-redirect-blocked.php:
  • http/tests/security/contentSecurityPolicy/report-only-connect-src-xmlhttprequest-redirect-to-blocked-expected.txt:
  • http/tests/security/contentSecurityPolicy/report-only-connect-src-xmlhttprequest-redirect-to-blocked.php:
  • http/tests/security/contentSecurityPolicy/resources/go-to-echo-report.py:
  • http/tests/security/contentSecurityPolicy/resources/redirect.pl:
  • http/tests/security/contentSecurityPolicy/resources/worker-importScript-redirect-cross-origin-allowed.py:
  • http/tests/security/contentSecurityPolicy/resources/worker-importScript-redirect-cross-origin-blocked.py:
  • http/tests/security/contentSecurityPolicy/resources/worker-xhr-allowed.py:
  • http/tests/security/contentSecurityPolicy/resources/worker-xhr-redirect-cross-origin-allowed.py:
  • http/tests/security/contentSecurityPolicy/resources/worker-xhr-redirect-cross-origin-blocked.py:
  • http/tests/security/contentSecurityPolicy/resources/xhr-redirect-not-allowed.pl: Removed.
  • http/tests/security/contentSecurityPolicy/resources/xhr-redirect-not-allowed.py: Added.
  • http/tests/security/no-javascript-refresh.py:
  • platform/mac-wk1/http/tests/security/contentSecurityPolicy/connect-src-xmlhttprequest-redirect-to-blocked-expected.txt:
  • platform/mac-wk1/http/tests/security/contentSecurityPolicy/report-document-uri-after-blocked-redirect-expected.txt:
  • platform/win/http/tests/security/contentSecurityPolicy/connect-src-xmlhttprequest-redirect-to-blocked-expected.txt:
  • platform/win/http/tests/security/contentSecurityPolicy/report-document-uri-after-blocked-redirect-expected.txt:
1:31 PM Changeset in webkit [274670] by Russell Epstein
  • 3 edits in branches/safari-612.1.7-branch/Source/WebCore

Cherry-pick r274669. Unreviewed build fix.

Fix a Catalyst build.

  • Modules/mediasession/MediaMetadata.h: (WebCore::MediaMetadata::artworkImage const):
  • testing/Internals.cpp: (WebCore::Internals::loadArtworkImage):

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

1:26 PM Changeset in webkit [274669] by Devin Rousso
  • 3 edits in trunk/Source/WebCore

CSP headers can block default <video> controls
https://bugs.webkit.org/show_bug.cgi?id=223422
<rdar://problem/41192193>

Reviewed by Antoine Quint.

Covered by existing tests.

  • Modules/modern-media-controls/controls/icon-service.js:

(IconService.prototype.imageForIconAndLayoutTraits):
In order for an <img> to skip CSP checks it must be isInUserAgentShadowTree before setting src.

  • Modules/modern-media-controls/main.js:

(createControls):
Provide the UA shadowRoot to the iconService so it can temporarily attach the <img>.

1:16 PM Changeset in webkit [274668] by Robert Jenner
  • 2 edits in trunk/LayoutTests

[ macOS Wk2 ARM64 ] platform/mac/webrtc/captureCanvas-webrtc-software-encoder.html is a flakey timeout
https://bugs.webkit.org/show_bug.cgi?id=223474

Uneviewed test gardening.

  • platform/mac/TestExpectations: Updating test expectations to include Timeout for arm64 systems.
12:49 PM Changeset in webkit [274667] by achristensen@apple.com
  • 3 edits in trunk/Source/WebCore

Fix a Catalyst build.

  • Modules/mediasession/MediaMetadata.h:

(WebCore::MediaMetadata::artworkImage const):

  • testing/Internals.cpp:

(WebCore::Internals::loadArtworkImage):

12:47 PM Changeset in webkit [274666] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

[GTK] Kinetic iframe async scrolling does not work
https://bugs.webkit.org/show_bug.cgi?id=223133

Patch by Alejandro G. Castro <alex@igalia.com> on 2021-03-18
Reviewed by Carlos Garcia Campos.

Add a condition for the gtk port, it allows end of momentum wheel
events to be detected as a scrollable events, no matter of the
delta value. By definition of the API delta is going to be zero in
gtk end of momentum events according to:
https://developer.gnome.org/gdk3/stable/gdk3-Events.html#gdk-event-is-scroll-stop-event

  • page/scrolling/ScrollingTreeScrollingNode.cpp:

(WebCore::ScrollingTreeScrollingNode::eventCanScrollContents const):

12:45 PM Changeset in webkit [274665] by Robert Jenner
  • 2 edits in trunk/LayoutTests

[ macOS wk2 ARM64 ] fast/images/async-image-background-change.html is a flakey timeout
https://bugs.webkit.org/show_bug.cgi?id=223469

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations: Updating test expectations to Pass Timeout while test is being reviewed.
12:23 PM Changeset in webkit [274664] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

Avoid heap allocations under BiquadDSPKernel::updateCoefficientsIfNecessary()
https://bugs.webkit.org/show_bug.cgi?id=223444

Reviewed by Darin Adler.

Use float[] instead of AudioFloatArray for local variables in updateCoefficientsIfNecessary()
in order to avoid doing heap allocations on the audio thread, for performance reasons.

  • Modules/webaudio/BiquadDSPKernel.cpp:

(WebCore::hasConstantValue):
(WebCore::BiquadDSPKernel::updateCoefficientsIfNecessary):

12:09 PM Changeset in webkit [274663] by Russell Epstein
  • 2 edits in branches/safari-612.1.7-branch/Source/ThirdParty/ANGLE

Cherry-pick r274654. rdar://problem/75583447

'MTLLanguageVersion1_0' is unavailable on Catalyst
https://bugs.webkit.org/show_bug.cgi?id=223392

Patch by Kyle Piddington <Kyle Piddington> on 2021-03-18
Reviewed by Jon Lee.

Disable switch case in catalyst builds

  • src/compiler/translator/TranslatorMetalDirect/EmitMetal.cpp: (GetOperatorString):
  • src/compiler/translator/TranslatorMetalDirect/ProgramPrelude.cpp:
  • src/libANGLE/renderer/metal/FrameBufferMtl.mm: (rx::FramebufferMtl::readPixels):
  • src/libANGLE/renderer/metal/mtl_utils.mm: (rx::mtl::GetUserSetOrHighestMSLVersion):

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

12:09 PM Changeset in webkit [274662] by pvollan@apple.com
  • 2 edits in trunk/LayoutTests

[Win] Update test expectations
https://bugs.webkit.org/show_bug.cgi?id=223456

Unreviewed test gardening.

  • platform/win/TestExpectations:
12:07 PM Changeset in webkit [274661] by Russell Epstein
  • 1 copy in branches/safari-612.1.7-branch

New branch.

12:06 PM Changeset in webkit [274660] by dino@apple.com
  • 3 edits in trunk/Source/ThirdParty/ANGLE

Metal-ANGLE can ASSERT because MTL signal event code is compiled out
https://bugs.webkit.org/show_bug.cgi?id=222859
<rdar://problem/75132180>

Reviewed by Ken Russell.

With the Metal backend enabled, the test
webgl/2.0.0/conformance2/state/gl-object-get-calls.html will
occasionally crash in mtl_command_buffer when it hits unreachable
code because ANGLE_MTL_EVENT_AVAILABLE hasn't been defined. This is
available on macOS 10.14 and above, so should be enabled.

At the same time, it doesn't make sense to call the method that has
unreachable code, so guard against that in mtl_command_buffer.

  • src/libANGLE/renderer/metal/mtl_command_buffer.mm:

(rx::mtl::CommandBuffer::setPendingEvents):

  • src/libANGLE/renderer/metal/mtl_common.h: Define ANGLE_MTL_EVENT_AVAILABLE.
12:05 PM Changeset in webkit [274659] by Russell Epstein
  • 8 edits in trunk/Source

Versioning.

WebKit-7612.1.8

11:52 AM Changeset in webkit [274658] by Robert Jenner
  • 2 edits in trunk/LayoutTests

[ macOS Debug wk2 ARM64 ] ASSERTION FAILED: !m_deletionHasBegun /Volumes/Data/worker/bigsur-debug/build/WebKitBuild/Debug/usr/local/include/wtf/ThreadSafeRefCounted.h(58) : void WTF::ThreadSafeRefCountedBase::ref() const
https://bugs.webkit.org/show_bug.cgi?id=223462

Uneviewed test gardening.

  • platform/mac-wk2/TestExpectations: Updating test expectations to Pass Crash while test is being reviewed.
11:48 AM Changeset in webkit [274657] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

Avoid heap allocations under AudioSampleDataSource::pullSamplesInternal()
https://bugs.webkit.org/show_bug.cgi?id=223449

Reviewed by Jer Noble.

AudioSampleDataSource::pullSamplesInternal() was doing heap allocations on the audio thread,
just for logging purposes (RunLoop::dispatch() & Function constructor do heap allocations).
Drop this logging to address the issue, after clearing this with Jer Noble.

  • platform/audio/cocoa/AudioSampleDataSource.mm:

(WebCore::AudioSampleDataSource::pullSamplesInternal):

11:45 AM Changeset in webkit [274656] by Nikita Vasilyev
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: REGRESSION(r271348): Console: message source code location is not vertically aligned with containing function name
https://bugs.webkit.org/show_bug.cgi?id=223288
<rdar://problem/75498577>

Reviewed by Devin Rousso.

WebKit inline-block behavior changed in r271348 to match the spec more closely.

  • UserInterface/Views/ConsoleMessageView.css:

(.console-message-location.call-frame > .title):
Explicitly set vertical-align to match the behavior prior r271348.

11:36 AM Changeset in webkit [274655] by Amir Mark Jr.
  • 2 edits in trunk/LayoutTests

[ MacOS Wk1 ] http/tests/loading/basic-auth-load-URL-with-consecutive-slashes.html is a flakey failure
https://bugs.webkit.org/show_bug.cgi?id=222563

Unreviewed test gardening.

  • platform/mac-wk1/TestExpectations:
11:18 AM Changeset in webkit [274654] by Ryan Haddad
  • 2 edits in trunk/Source/ThirdParty/ANGLE

'MTLLanguageVersion1_0' is unavailable on Catalyst
https://bugs.webkit.org/show_bug.cgi?id=223392

Patch by Kyle Piddington <Kyle Piddington> on 2021-03-18
Reviewed by Jon Lee.

Disable switch case in catalyst builds

  • src/compiler/translator/TranslatorMetalDirect/EmitMetal.cpp:

(GetOperatorString):

  • src/compiler/translator/TranslatorMetalDirect/ProgramPrelude.cpp:
  • src/libANGLE/renderer/metal/FrameBufferMtl.mm:

(rx::FramebufferMtl::readPixels):

  • src/libANGLE/renderer/metal/mtl_utils.mm:

(rx::mtl::GetUserSetOrHighestMSLVersion):

11:17 AM Changeset in webkit [274653] by Wenson Hsieh
  • 3 edits in trunk/Source/WebKit

[iOS] editing/selection/character-granularity-rect.html fails on certain internal configurations after r274610
https://bugs.webkit.org/show_bug.cgi?id=223447

Reviewed by Devin Rousso.

On versions of iOS where ENABLE(IMAGE_EXTRACTION) is defined but the system feature is disabled, this test
began failing after r274610. This is because the new image extraction deferral gesture now blocks text
interaction gestures, but the code to actually fail this deferring gesture (and thus, "lift" the deferring
gesture gate) is still behind the system flag. As a result, text interactions when the image extraction flag is
disabled will only begin after the touch ends.

This means that when selecting text via a long press, the text selection doesn't appear until lifting the touch
if image extraction is disabled. To fix this, we only enable this deferring gesture in the case where the system
feature is enabled.

  • UIProcess/ios/GestureRecognizerConsistencyEnforcer.mm:

(WebKit::GestureRecognizerConsistencyEnforcer::timerFired):

Additionally tweak the GestureRecognizerConsistencyEnforcer to only forcibly reset lingering unlifted gesture
recognizers if they are enabled.

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView setUpInteraction]):

11:14 AM Changeset in webkit [274652] by Antti Koivisto
  • 2 edits in trunk/Source/WebKit

Don't delay conditional requests in resource load scheduler
https://bugs.webkit.org/show_bug.cgi?id=223450

Reviewed by Geoffrey Garen.

  • NetworkProcess/NetworkLoadScheduler.cpp:

(WebKit::NetworkLoadScheduler::HostContext::schedule):

Conditional requests usually come back as 304s and don't slow other resource loads down.

11:11 AM Changeset in webkit [274651] by Robert Jenner
  • 2 edits in trunk/LayoutTests

[ macOS wk2 ARM 64 ] storage/indexeddb/IDBObject-leak.html is a flakey text failure
https://bugs.webkit.org/show_bug.cgi?id=223453

Uneviewed test gardeing.

  • platform/mac-wk2/TestExpectations: Updating test expectations to Pass Failure while test is being reviewed.
10:51 AM Changeset in webkit [274650] by Chris Dumez
  • 7 edits in trunk/Source/WebCore

Avoid heap allocation under PannerNode::pullInputs()
https://bugs.webkit.org/show_bug.cgi?id=223445

Reviewed by Darin Adler.

PannerNode::pullInputs() was doing a heap allocation on the audio thread when
constructing a HashSet. It turns out that PannerNode::pullInputs() and
PannerNode::notifyAudioSourcesConnectedToNode() were not needed at all in
the modern PannerNode. They were only used to set the PannerNode on
AudioBufferSourceNodes so they could use its dopplerRate. However, the
dopplerRate was only a thing on the legacy WebKitAudioPannerNode. For the
modern PannerNode, there is no dopplerRate so we always end up using 1.0.

To address the issue, I thus completely removed PannerNode's pullInputs &
notifyAudioSourcesConnectedToNode(). I also updated AudioBufferSourceNode
to make it clear it uses a WebKitAudioPannerNode. Finally, I got rid of
the PannerNodeBase base class too since it is no longer needed.

  • Modules/webaudio/AudioBufferSourceNode.cpp:

(WebCore::AudioBufferSourceNode::totalPitchRate):
(WebCore::AudioBufferSourceNode::setPannerNode):
(WebCore::AudioBufferSourceNode::clearPannerNode):
(WebCore::AudioBufferSourceNode::finish):

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

(WebCore::PannerNode::PannerNode):

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

(WebCore::WebKitAudioPannerNode::WebKitAudioPannerNode):

  • Modules/webaudio/WebKitAudioPannerNode.h:
10:25 AM Changeset in webkit [274649] by Robert Jenner
  • 2 edits in trunk/LayoutTests

REGRESSION (r272842): [ BigSur Wk2 ] imported/w3c/web-platform-tests/media-source/mediasource-seekable.html is a flakey text failure
https://bugs.webkit.org/show_bug.cgi?id=221965

Unreviewed test gardeing.

  • platform/mac-wk2/TestExpectations: Removing test expectation, as it appears that the test has been fixed.
9:49 AM Changeset in webkit [274648] by Truitt Savell
  • 25 edits
    6 deletes in trunk

Unreviewed, reverting r274644.

Broke internal Mac Builds

Reverted changeset:

"Implement WebXR Opaque Framebuffer"
https://bugs.webkit.org/show_bug.cgi?id=222607
https://commits.webkit.org/r274644

8:50 AM Changeset in webkit [274647] by Alexey Shvayka
  • 12 edits in trunk/Source/WebCore

[WebIDL] Don't generate setters for global constructor properties
https://bugs.webkit.org/show_bug.cgi?id=222984

Reviewed by Alex Christensen.

r268710 fixed %Interface%.prototype.constructor to respect Set receiver, yet
global constructor properties like window.HTMLElement are exposed to the same bug.

The reason why Object.create(window).HTMLElement = X performs correctly is that
JSObject::putInlineSlow() doesn't invoke JSProxy::put(), nor any other Set
override, during prototype chain traversal. That is being fixed in #217916.

To avoid regressing on the above snippet, this change applies the similiar fix as
in r268710 to global constructor properties: a setter-less CustomValue that is
treated as data descriptor [1] by Set.

Apart from altered receiver case, a patch for #217916 will also fix Enumerable
property attribute to be preserved when original CustomValue property is replaced.

This change reduces WebCore --release binary size by 0.68% (548 KB).

Also, as a drive-by fix, utilizes IsDOMGlobalObject to simplify constructor getters
for all JSDOMGlobalObject subclasses.

No new tests, no behavior change.

[1] https://tc39.es/ecma262/#sec-ordinarysetwithowndescriptor (step 3.e.ii)

  • bindings/scripts/CodeGeneratorJS.pm:

(GetAttributeSetterName):
(GeneratePropertiesHashTable):
(GenerateImplementation):
(GenerateAttributeGetterBodyDefinition):
(GenerateAttributeSetterBodyDefinition):
(GenerateAttributeSetterDefinition):

  • bindings/scripts/test/JS/*: Updated.
8:43 AM Changeset in webkit [274646] by commit-queue@webkit.org
  • 4 edits
    2 adds in trunk

Use double division
https://bugs.webkit.org/show_bug.cgi?id=223366

Patch by Rob Buis <rbuis@igalia.com> on 2021-03-18
Reviewed by Zalan Bujtas.

Source/WebCore:

Use double instead of LayoutUnit division since
LayoutUnit resolution is not high enough to support
near-zero values.

Test: fast/css/aspect-ratio-division-crash.html

  • rendering/RenderBox.cpp:

(WebCore::inlineSizeFromAspectRatio):

  • rendering/RenderBox.h:

(WebCore::RenderBox::blockSizeFromAspectRatio):

LayoutTests:

Add test for this.

  • fast/css/aspect-ratio-division-crash-expected.txt: Added.
  • fast/css/aspect-ratio-division-crash.html: Added.
7:44 AM Changeset in webkit [274645] by commit-queue@webkit.org
  • 3 edits
    4 adds in trunk

Nullptr crash in RenderStyle::shapeOutside()
https://bugs.webkit.org/show_bug.cgi?id=221382

Patch by Frédéric Wang <fwang@igalia.com> on 2021-03-18
Reviewed by Zalan Bujtas.

Source/WebCore:

Before bug 223041, it was possible to get dangling WeakPtr m_renderer on FloatingObject. This
patch adds debug ASSERT and more regression tests.

Tests: fast/block/float/float-pseudo-element-not-removed-crash.html

fast/block/float/float-pseudo-element-not-removed-2-crash.html

  • rendering/FloatingObjects.h: add nullcheck ASSERT for debug builds.

LayoutTests:

Add regression tests.

  • fast/block/float/float-pseudo-element-not-removed-crash-expected.txt: Added.
  • fast/block/float/float-pseudo-element-not-removed-crash.html: Added.
  • fast/block/float/float-pseudo-element-not-removed-crash2-expected.txt: Added.
  • fast/block/float/float-pseudo-element-not-removed-crash2.html: Added.
6:59 AM Changeset in webkit [274644] by imanol
  • 25 edits
    6 adds in trunk

Implement WebXR Opaque Framebuffer
https://bugs.webkit.org/show_bug.cgi?id=222607

Reviewed by Youenn Fablet.

LayoutTests/imported/w3c:

Update WebXR Opaque Framebuffer test expectations.

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

Source/WebCore:

This patch adds a base XR layers API which is initially used by WebXRWebGLLayer, but
with the goal of supporting more types of layers in the future (see WebXR Layers spec).

Layers are connected to WebGL by using shared textures. In the case of WebXRWebGLLayer
it creates an Opaque Framebuffer that renders to the shared texture. XR runtimes supporting
double or triple buffering can send different shared textures each frame in the FrameData struct.
The texture for the current frame is attached in WebXRLayer::startFrame and prepared to send it back to the
VR compositor in WebXRLayer::endFrame().

Tested by the WebXR WPT tests.

  • Modules/webxr/WebXRLayer.h: add startFrame and endFrame pure virtual methods.
  • Modules/webxr/WebXRSession.cpp:

(WebCore::WebXRSession::onFrame): do not call RAFs if frameData.shouldRender is false.

  • Modules/webxr/WebXRSession.h: add device getter.
  • Modules/webxr/WebXRSystem.cpp:

(WebCore::WebXRSystem::DummyInlineDevice::requestFrame): always enable frameData.shouldRender flag.

  • Modules/webxr/WebXRSystem.h: Override new virtual functions.
  • Modules/webxr/WebXRViewport.h:

(WebCore::WebXRViewport::rect const): Add helper method.

  • Modules/webxr/WebXRWebGLLayer.cpp: Refactor resource initialization to create method.

(WebCore::WebXRWebGLLayer::create):
(WebCore::WebXRWebGLLayer::WebXRWebGLLayer):
(WebCore::m_isCompositionEnabled):
(WebCore::WebXRWebGLLayer::framebuffer const):
(WebCore::WebXRWebGLLayer::framebufferWidth const):
(WebCore::WebXRWebGLLayer::framebufferHeight const):
(WebCore::WebXRWebGLLayer::startFrame): Prepare Opaque Framebuffer for the start of next frame.
(WebCore::WebXRWebGLLayer::endFrame): Prepare Opaque Framebuffer for VR compositor submitFrame.
(WebCore::WebXRWebGLLayer::canvasResized): Move method

(WebCore::WebXROpaqueFramebuffer::create): Implement class to manage WebXR Opaque framebuffer.
(WebCore::WebXROpaqueFramebuffer::WebXROpaqueFramebuffer):
(WebCore::WebXROpaqueFramebuffer::~WebXROpaqueFramebuffer):
(WebCore::WebXROpaqueFramebuffer::startFrame): Attach shared texture for the current frame.
(WebCore::WebXROpaqueFramebuffer::endFrame): Flush and resolve multisampling if required.
(WebCore::WebXROpaqueFramebuffer::setupFramebuffer): Allocate the Opaque framebuffer with requested attributes.

  • Modules/webxr/WebXRWebGLLayer.h: Add WebXROpaqueFramebuffer and handle members.

(WebCore::WebXROpaqueFramebuffer::handle const):
(WebCore::WebXROpaqueFramebuffer::framebuffer const):
(WebCore::WebXROpaqueFramebuffer::width const):
(WebCore::WebXROpaqueFramebuffer::height const):

  • Sources.txt: Add OpenXRLayer.cpp and OpenXRSwapchain.cpp.
  • html/canvas/WebGL2RenderingContext.cpp:

(WebCore::WebGL2RenderingContext::getFramebufferAttachmentParameter): handle Opaque Framebuffers.

  • html/canvas/WebGLFramebuffer.cpp: Add members and methods required for Opaque Framebuffers.

(WebCore::WebGLFramebuffer::createOpaque):
(WebCore::WebGLFramebuffer::checkStatus const):

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

(WebCore::WebGLRenderingContext::getFramebufferAttachmentParameter): handle Opaque Framebuffers.

  • html/canvas/WebGLRenderingContextBase.cpp: handle Opaque Framebuffers.

(WebCore::WebGLRenderingContextBase::deleteFramebuffer):
(WebCore::WebGLRenderingContextBase::framebufferRenderbuffer):
(WebCore::WebGLRenderingContextBase::framebufferTexture2D):

  • platform/xr/PlatformXR.h: Add method to submitFrame.

(PlatformXR::Device::submitFrame):

  • platform/xr/openxr/OpenXRLayer.cpp: Add class to manage OpenXR layers.

(PlatformXR::OpenXRLayer::OpenXRLayer):
(PlatformXR::OpenXRLayerProjection::create):
(PlatformXR::OpenXRLayerProjection::OpenXRLayerProjection):
(PlatformXR::OpenXRLayerProjection::startFrame):

  • platform/xr/openxr/OpenXRLayer.h: Added.

(PlatformXR::OpenXRLayer::handle):

  • platform/xr/openxr/OpenXRSwapchain.cpp: Add class to manage OpenXR swapchains

(PlatformXR::OpenXRSwapchain::create):
(PlatformXR::OpenXRSwapchain::OpenXRSwapchain):
(PlatformXR::OpenXRSwapchain::~OpenXRSwapchain):
(PlatformXR::OpenXRSwapchain::acquireImage):
(PlatformXR::OpenXRSwapchain::releaseImage):

  • platform/xr/openxr/OpenXRSwapchain.h: Added.
  • platform/xr/openxr/OpenXRUtils.h: Add helper log function

(PlatformXR::xrViewToPose): Use fabs instead of negation

  • platform/xr/openxr/PlatformXROpenXR.cpp:

(PlatformXR::OpenXRDevice::initializeTrackingAndRendering): create GraphicsContextGL for texture sharing.
(PlatformXR::OpenXRDevice::requestFrame): Prepare and fill layers if shouldRender is true.
(PlatformXR::OpenXRDevice::submitFrame): Implement submit layers to OpenXR
(PlatformXR::OpenXRDevice::createLayerProjection): Implement layer creation method
(PlatformXR::OpenXRDevice::deleteLayer): Implement layer deallocation
(PlatformXR::OpenXRDevice::collectEnabledFeatures const):
(PlatformXR::OpenXRDevice::resetSession): Deallocate layers and graphics context.

  • platform/xr/openxr/PlatformXROpenXR.h: Add Layers API
  • testing/WebFakeXRDevice.cpp:

(WebCore::SimulatedXRDevice::recommendedResolution): Increase size to avoid platform minimum FBO size errors
(WebCore::SimulatedXRDevice::initializeTrackingAndRendering): Create graphics context
(WebCore::SimulatedXRDevice::shutDownTrackingAndRendering): Release graphics context
(WebCore::SimulatedXRDevice::frameTimerFired): set up layers in frame data
(WebCore::SimulatedXRDevice::createLayerProjection): creates a texture for a layer.
(WebCore::SimulatedXRDevice::deleteLayer): releases the associated texture to a layer

  • testing/WebFakeXRDevice.h:

LayoutTests:

Update WebXR Opaque Framebuffer test expectations.

  • platform/wpe/TestExpectations:
5:43 AM Changeset in webkit [274643] by Carlos Garcia Campos
  • 1 copy in releases/WebKitGTK/webkit-2.30.6

WebKitGTK 2.30.6

5:43 AM Changeset in webkit [274642] by Carlos Garcia Campos
  • 4 edits in releases/WebKitGTK/webkit-2.30

Unreviewed. Update OptionsGTK.cmake and NEWS for 2.30.6 release

.:

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

Source/WebKit:

  • gtk/NEWS: Add release notes for 2.30.6.
5:07 AM Changeset in webkit [274641] by Carlos Garcia Campos
  • 11 edits in trunk

[WPE] Bump API version when building with libsoup3
https://bugs.webkit.org/show_bug.cgi?id=223437

Reviewed by Adrian Perez de Castro.

.:

Use 1.1 as the API version when building with soup3.

  • Source/PlatformWPE.cmake:
  • Source/cmake/OptionsWPE.cmake:

Source/WebKit:

  • PlatformWPE.cmake: Use WPE_API_DOC_VERSION instead of WPE_API_VERSION for gtkdoc config files.
  • wpe/wpe-web-extension-uninstalled.pc.in: Add variable for libsoup version.
  • wpe/wpe-web-extension.pc.in: Ditto.
  • wpe/wpe-webkit-uninstalled.pc.in: Ditto.
  • wpe/wpe-webkit.pc.in: Ditto.

Tools:

Use WPE_API_DOC_VERSION instead of WPE_API_VERSION.

  • wpe/manifest.txt.in:
4:15 AM WebKitGTK/2.32.x edited by berto@igalia.com
(diff)
4:13 AM WebKitGTK/2.30.x edited by Carlos Garcia Campos
(diff)
4:12 AM Changeset in webkit [274640] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebCore

[SOUP] SOUP3 crashes inside soup_message_set_request_body
https://bugs.webkit.org/show_bug.cgi?id=223236

Reviewed by Adrian Perez de Castro.

Make WebKitFormDataInputStream implement GPollableInputStream.

  • platform/network/soup/WebKitFormDataInputStream.cpp:

(webkitFormDataInputStreamNew):
(webkitFormDataInputStreamCanPoll):
(webkitFormDataInputStreamIsReadable):
(webkitFormDataInputStreamCreateSource):
(webkitFormDataInputStreamPollableInterfaceInit):

4:09 AM Changeset in webkit [274639] by Lauro Moura
  • 2 edits in trunk/Source/WebCore

[Nicosia] Backport cocoa fix for RTL sticky position from r273982
https://bugs.webkit.org/show_bug.cgi?id=223395

Reviewed by Adrian Perez de Castro.

Fixes fast/css/sticky/sticky-in-rtl-overflow.html for WPE.

  • page/scrolling/nicosia/ScrollingTreeStickyNode.cpp:

(WebCore::ScrollingTreeStickyNode::computeLayerPosition const):

4:04 AM Changeset in webkit [274638] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.30/Source/JavaScriptCore

Merge r271544 - [JSC] Clean up DFGPreciseLocalClobberize to avoid duplicate code
https://bugs.webkit.org/show_bug.cgi?id=220670

Reviewed by Filip Pizlo.

This patch cleans up DFGPreciseLocalClobberize by extracting code to lambda to remove duplicate code.

  • dfg/DFGPreciseLocalClobberize.h:

(JSC::DFG::PreciseLocalClobberizeAdaptor::readTop):

4:04 AM Changeset in webkit [274637] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.30/Source/JavaScriptCore

Merge r271144 - propertyNameEnumerator must check it can still take the fast path after getGenericPropertyNames
https://bugs.webkit.org/show_bug.cgi?id=219957
<rdar://71156284>

Reviewed by Yusuke Suzuki.

We need to check if we still canAccessPropertiesQuicklyForEnumeration on
structureAfterGettingPropertyNames, since we might call out out to a proxy's
getPrototypeOf callback through getGenericPropertyNames.

  • runtime/JSPropertyNameEnumerator.h:

(JSC::propertyNameEnumerator):

4:04 AM Changeset in webkit [274636] by Carlos Garcia Campos
  • 5 edits
    3 adds in releases/WebKitGTK/webkit-2.30

Merge r270373 - iframe with sandbox=allow-top-navigation-by-user-activation can navigate top frame when the user interacts with an iframe from another origin
https://bugs.webkit.org/show_bug.cgi?id=219413
<rdar://problem/64887657>

Reviewed by Geoffrey Garen.

Source/WebCore:

An iframe with sandbox=allow-top-navigation-by-user-activation can navigate the top frame when the user
interacts with an frame from another origin. This is not strict enough and does not match the behavior of
Chrome.

In Chrome, the user activation is only valid for the purpose of navigation if the user interacted with either:

  • The iframe triggering the navigation
  • A descendant iframe of the iframe triggering the navigation
  • A frame from the same origin as the iframe triggering the navigation

This patch aligns our behavior with Chrome's.

Test: http/tests/security/block-top-level-navigations-by-sandboxed-iframe-with-propagated-user-gesture.html

  • dom/Document.cpp:

(WebCore::Document::canNavigateInternal):

  • dom/UserGestureIndicator.cpp:

(WebCore::UserGestureToken::UserGestureToken):
(WebCore::UserGestureToken::isValidForDocument const):
(WebCore::UserGestureIndicator::processingUserGesture):

  • dom/UserGestureIndicator.h:

(WebCore::UserGestureToken::create):

LayoutTests:

Add layout test coverage.

  • http/tests/security/block-top-level-navigations-by-sandboxed-iframe-with-propagated-user-gesture-expected.txt: Added.
  • http/tests/security/block-top-level-navigations-by-sandboxed-iframe-with-propagated-user-gesture.html: Added.
  • http/tests/security/resources/navigate-top-level-frame-to-failure-page-via-message-handler.html: Added.
4:04 AM Changeset in webkit [274635] by Carlos Garcia Campos
  • 3 edits
    3 adds in releases/WebKitGTK/webkit-2.30

Merge r270367 - Block suspicious top level navigations by iframes even if sandbox=allow-top-navigation is specified
https://bugs.webkit.org/show_bug.cgi?id=219408
<rdar://problem/71049726>

Reviewed by Geoffrey Garen.

Source/WebCore:

Block suspicious top level navigations by iframes even if sandbox=allow-top-navigation is specified,
when the parent of the sandboxed iframe is not first-party.

Test: http/tests/security/block-top-level-navigations-by-third-party-sandboxed-iframe.html

  • dom/Document.cpp:

(WebCore::Document::isNavigationBlockedByThirdPartyIFrameRedirectBlocking):

LayoutTests:

Add layout test coverage.

  • http/tests/security/block-top-level-navigations-by-third-party-sandboxed-iframe-expected.txt: Added.
  • http/tests/security/block-top-level-navigations-by-third-party-sandboxed-iframe.html: Added.
  • http/tests/security/resources/navigate-top-level-frame-to-failure-page-via-sandboxed-iframe.html: Added.
4:04 AM Changeset in webkit [274634] by Carlos Garcia Campos
  • 6 edits in releases/WebKitGTK/webkit-2.30

Merge r270321 - Update list of block ports according fetch spec
https://bugs.webkit.org/show_bug.cgi?id=219154

Reviewed by Sam Weinig.

LayoutTests/imported/w3c:

  • web-platform-tests/fetch/api/request/request-bad-port.any-expected.txt:
  • web-platform-tests/fetch/api/request/request-bad-port.any.js:
  • web-platform-tests/fetch/api/request/request-bad-port.any.worker-expected.txt:
  • web-platform-tests/websockets/Create-blocked-port.any-expected.txt:
  • web-platform-tests/websockets/Create-blocked-port.any.js:
  • web-platform-tests/websockets/Create-blocked-port.any.worker-expected.txt:

Source/WTF:

  • wtf/URL.cpp:

(WTF::portAllowed):

4:04 AM Changeset in webkit [274633] by Carlos Garcia Campos
  • 16 edits
    3 adds in releases/WebKitGTK/webkit-2.30

Merge r270101 - Add support for RTCPeerConnection.onicecandidateerror event
https://bugs.webkit.org/show_bug.cgi?id=169644

Reviewed by Alex Christensen.

LayoutTests/imported/w3c:

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

Source/WebCore:

Expose RTCPeerConnection.onicecandidateerror and use it for wrong STUN/TURN server URLs.
For that matter, add RTCPeerConnectionIceErrorEvent as per spec with a slight change to the init directory to keep the same terminology between event and init dictionary.

Covered by updated webrtc/stun-server-filtering.html test.

  • CMakeLists.txt:
  • DerivedSources-input.xcfilelist:
  • DerivedSources-output.xcfilelist:
  • DerivedSources.make:
  • Modules/mediastream/RTCPeerConnection.cpp:

(WebCore::RTCPeerConnection::iceServersFromConfiguration):
(WebCore::iceServersFromConfiguration): Deleted.

  • Modules/mediastream/RTCPeerConnection.h:
  • Modules/mediastream/RTCPeerConnection.idl:
  • Modules/mediastream/RTCPeerConnectionIceErrorEvent.cpp: Added.

(WebCore::RTCPeerConnectionIceErrorEvent::create):
(WebCore::RTCPeerConnectionIceErrorEvent::RTCPeerConnectionIceErrorEvent):
(WebCore::RTCPeerConnectionIceErrorEvent::eventInterface const):

  • Modules/mediastream/RTCPeerConnectionIceErrorEvent.h: Added.
  • Modules/mediastream/RTCPeerConnectionIceErrorEvent.idl: Added.
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/WebCoreBuiltinNames.h:
  • dom/EventNames.h:
  • dom/EventNames.in:

LayoutTests:

  • webrtc/rtcpeerconnection-error-messages-expected.txt:
  • webrtc/stun-server-filtering.html:
4:03 AM Changeset in webkit [274632] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.30/Source/WebCore

Merge r267287 - Crash under WebCore::shouldResetFocusNavigationStartingNode()
https://bugs.webkit.org/show_bug.cgi?id=216714
<rdar://problem/68132047>

Reviewed by Darin Adler.

Protect anchorElement in FrameView::scrollToFragmentInternal() to make sure
it stays alive until the time we pass it to setFocusNavigationStartingNode().

  • page/FrameView.cpp:

(WebCore::FrameView::scrollToFragmentInternal):

4:03 AM Changeset in webkit [274631] by Carlos Garcia Campos
  • 6 edits in releases/WebKitGTK/webkit-2.30

Merge r266798 - Make sure WKWebsiteDataStore operations reuse existing process pools even when all WKWebViews have closed.
<rdar://problem/62978295> and https://bugs.webkit.org/show_bug.cgi?id=216317

Reviewed by Geoffrey Garen.

Source/WebKit:

Covered by new API test.

When WebsiteDataStores are gathering all the NetworkProcesses they might need to message, they miss some
obvious candidates if there are no longer any related WKWebViews.

Fix that by tracking which sessions a NetworkProcess knows about.

  • UIProcess/Network/NetworkProcessProxy.cpp:

(WebKit::NetworkProcessProxy::addSession):
(WebKit::NetworkProcessProxy::hasSession const):
(WebKit::NetworkProcessProxy::removeSession):

  • UIProcess/Network/NetworkProcessProxy.h:
  • UIProcess/WebsiteData/WebsiteDataStore.cpp:

(WebKit::WebsiteDataStore::isAssociatedProcessPool const):

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/WKWebsiteDatastore.mm:

(TestWebKitAPI::TEST):

3:10 AM Changeset in webkit [274630] by svillar@igalia.com
  • 2 edits in trunk/Source/WebCore

Invalidate RenderTreePosition's next sibling with display:contents
https://bugs.webkit.org/show_bug.cgi?id=218578

Reviewed by Antti Koivisto.

When inserting elements in the tree from JS it might happen that the renderTreePosition() in the RenderTreeUpdater
caches a nextSibling() value which is only temporarily correct because we sequentially process the descendants of a
given root node in RenderTreeUpdater::updateRenderTree(). One of those potentially incorrect scenarios is when
using display:contents. We can detect those cases because we would leave a parent element in RenderTreeUpdater::popParent()
without changing renderingParent() and so without changing renderTreePosition(). Once we are in that situation we
must invalidate the cached position so the next sibling is recomputed.

  • rendering/updating/RenderTreeUpdater.cpp:

(WebCore::RenderTreeUpdater::popParent): Invalidate the render tree position's next sibling if the parent element is not
the renderingParent().

2:49 AM Changeset in webkit [274629] by Carlos Garcia Campos
  • 14 edits in releases/WebKitGTK/webkit-2.30/Source

Merge r265623 - REGRESSION (r260684): Messages YouTube inline video: after Multitasking away and Back, Audio is heard but icon indicates "muted"
https://bugs.webkit.org/show_bug.cgi?id=215453
<rdar://problem/66136673>

Reviewed by Tim Horton.

Source/WebCore:

r260684 silenced all JS events during the snapshot sequence that occurs whenever the user homes out of Safari.
This was meant to address compatibility with websites that did not expect various resize/orientationchange
events when homing out. However, the snapshot sequence is fairly long and this was causing us to silence JS
events which have nothing to do with the snapshot sequence, like window.postMessage()'s message events. This is
what caused this regression.

To address the issue, this patch basically reverts r260684 and deals with websites-compatibility issues via
less risky site-specific and event-specific quirks:

  • We silence Window resize events on nytimes.com to address <rdar://problem/59763843>.
  • We silence Window resize events and MediaQueryList change events on twitter.com to address <rdar://problem/58804852> and <rdar://problem/61731801>.
  • css/MediaQueryMatcher.cpp:

(WebCore::MediaQueryMatcher::evaluateAll):

  • dom/EventTarget.cpp:

(WebCore::EventTarget::fireEventListeners):

  • page/FrameView.cpp:

(WebCore::FrameView::sendResizeEventIfNeeded):

  • page/Page.h:

(WebCore::Page::isTakingSnapshotsForApplicationSuspension const):
(WebCore::Page::setIsTakingSnapshotsForApplicationSuspension):
(WebCore::Page::shouldFireEvents const): Deleted.
(WebCore::Page::setShouldFireEvents): Deleted.

  • page/Quirks.cpp:

(WebCore::Quirks::shouldSilenceWindowResizeEvents const):
(WebCore::Quirks::shouldSilenceMediaQueryListChangeEvents const):

  • page/Quirks.h:

Source/WebKit:

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::setIsDoingSnapshotSequence):
(WebKit::WebPageProxy::setShouldFireEvents): Deleted.

  • UIProcess/WebPageProxy.h:
  • UIProcess/ios/WKApplicationStateTrackingView.mm:

(-[WKApplicationStateTrackingView _willBeginSnapshotSequence]):
(-[WKApplicationStateTrackingView _didCompleteSnapshotSequence]):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::setIsDoingSnapshotSequence):
(WebKit::WebPage::setShouldFireEvents): Deleted.

  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/WebPage.messages.in:
2:49 AM Changeset in webkit [274628] by Carlos Garcia Campos
  • 5 edits in releases/WebKitGTK/webkit-2.30

Merge r272921 - [GTK] Need new user agent quirk for Google Docs and Google Drive
https://bugs.webkit.org/show_bug.cgi?id=221845

Patch by Michael Catanzaro <Michael Catanzaro> on 2021-02-16
Reviewed by Adrian Perez de Castro.

Source/WebCore:

Switch Google Docs to use a Chrome browser quirk instead of an Internet Explorer quirk.
Remove the Google Drive quirk altogether. Remove the Internet Explorer and Windows platform
quirks, which are no longer used. Retarget the Google Docs quirk to apply only to
docs.google.com because we no longer need to send the quirk to accounts.youtube.com for it
to be effective. Lastly, update Chrome and Firefox version strings for good measure.

  • platform/UserAgentQuirks.cpp:

(WebCore::urlRequiresChromeBrowser):
(WebCore::urlRequiresLinuxDesktopPlatform):
(WebCore::UserAgentQuirks::quirksForURL):
(WebCore::UserAgentQuirks::stringForQuirk):
(WebCore::urlRequiresInternetExplorerBrowser): Deleted.
(WebCore::urlRequiresWindowsPlatform): Deleted.

  • platform/glib/UserAgentGLib.cpp:

(WebCore::buildUserAgentString):

Tools:

  • TestWebKitAPI/Tests/WebCore/UserAgentQuirks.cpp:

(TestWebKitAPI::assertUserAgentForURLHasChromeBrowserQuirk):
(TestWebKitAPI::assertUserAgentForURLHasFirefoxBrowserQuirk):
(TestWebKitAPI::assertUserAgentForURLHasLinuxPlatformQuirk):
(TestWebKitAPI::assertUserAgentForURLHasMacPlatformQuirk):
(TestWebKitAPI::TEST):
(TestWebKitAPI::assertUserAgentForURLHasInternetExplorerBrowserQuirk): Deleted.
(TestWebKitAPI::assertUserAgentForURLHasWindowsPlatformQuirk): Deleted.

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

Pagination mode: Increase the amount of recursions allowed by RenderTable::layout()
https://bugs.webkit.org/show_bug.cgi?id=218575

Patch by Carlos Garcia Campos <cgarcia@igalia.com> on 2021-03-18
Reviewed by Zalan Bujtas.

In r219394 a recursion check was introduced to avoid infinite recursion when a section is always moved on
RenderTable::layout(). But sometimes it's needed to recurse more than once to layout the table when section move
due to the pagination. This patch limits the recursion level to the amount of sections in the table, instead of
just one.

  • rendering/RenderTable.cpp:

(WebCore::RenderTable::layout):

  • rendering/RenderTable.h:
2:18 AM Changeset in webkit [274626] by commit-queue@webkit.org
  • 4 edits in trunk/Source/WebCore

ASSERTION FAILED: node.isConnected() in matchSlottedPseudoElementRules
https://bugs.webkit.org/show_bug.cgi?id=221440

Patch by Frédéric Wang <fwang@igalia.com> on 2021-03-18
Reviewed by Ryosuke Niwa.

ReplaceSelectionCommand::doApply() removes a <br> from an element and immediately calls
highestNodeToRemoveInPruning() on that element. The former operation may destroy the
element's renderer and confuses the latter operation. This happens in particular for a
<summary> element which ends up being removed from the tree. This in turn causes unexpected
issues such as a debug assertion failure in matchSlottedPseudoElementRules. To address that
problem, ensure the document is laid out before calling highestNodeToRemoveInPruning().
This patch also increases and improves use of RefPtr<Node>.

  • editing/CompositeEditCommand.cpp:

(WebCore::CompositeEditCommand::removeNodeAndPruneAncestors): Use auto & makeRefPtr.
(WebCore::CompositeEditCommand::prune): Store local highestNodeToRemove variable in a RefPtr.
(WebCore::CompositeEditCommand::cleanupAfterDeletion): Store local node variable in a RefPtr.
(WebCore::CompositeEditCommand::breakOutOfEmptyMailBlockquotedParagraph): Store local parentNode variable in a RefPtr.

  • editing/Editing.cpp:

(WebCore::highestNodeToRemoveInPruning): Store local currentNode variable in a a RefPtr.

  • editing/ReplaceSelectionCommand.cpp:

(WebCore::ReplaceSelectionCommand::doApply): Use auto & makeRefPtr. Store local odeToRemove variable in a RefPtr.
Ensure the document is laid out before calling highestNodeToRemoveInPruning.

2:11 AM Changeset in webkit [274625] by Devin Rousso
  • 2 edits in trunk/Source/WebCore

should always use all prerequisites for the ModernMediaControls.{js,css} rules in DerivedSources.make
https://bugs.webkit.org/show_bug.cgi?id=223421

Reviewed by Yusuke Suzuki.

  • DerivedSources.make:

$? is a uniqued space-separated list of all prerequisites modified after the target was modified.
$^ is a uniqued space-separated list of all prerequisites regardless of when the target/prerequisite was modified.
We want to use the latter since we always want to cat all the JS/CSS files, not just the recently edited ones.

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

[GTK][l10n] Updated Polish translation of WebKitGTK for 2.32
https://bugs.webkit.org/show_bug.cgi?id=223149

Patch by Piotr Drąg <piotrdrag@gmail.com> on 2021-03-18
Rubber-stamped by Carlos Garcia Campos.

  • pl.po:
1:42 AM Changeset in webkit [274623] by youenn@apple.com
  • 2 edits in trunk/Source/WebCore

RTCRtpScriptTransformer::writable should check for m_backend
https://bugs.webkit.org/show_bug.cgi?id=223373

Reviewed by Eric Carlson.

Covered by existing tests.

  • Modules/mediastream/RTCRtpScriptTransformer.cpp:

(WebCore::RTCRtpScriptTransformer::writable):
The writer can only start writing after readable is started, which means m_backend is set.
But the transformer may be cleared at which point m_backend is nullified but there might be some encoded frames in the pipe to be written.
Add a null check to fix this.

1:25 AM Changeset in webkit [274622] by youenn@apple.com
  • 9 edits in trunk

Geolocation API does not work in WKWebView with custom URL scheme handler
https://bugs.webkit.org/show_bug.cgi?id=222861
Source/WebCore:

<rdar://problem/75394695>

Reviewed by Eric Carlson.

Covered by API tests.

  • Modules/geolocation/Geolocation.cpp:

(WebCore::Geolocation::shouldBlockGeolocationRequests):
Use Document::isSecureContext to validate whether the document is secure.
This is consistent with other APIs.

Source/WebKit:

<rdar://problem/75394695>

Reviewed by Eric Carlson.

Update geolocation prompt origin to match getUserMedia and show the app name instead of custom scheme origin.

  • UIProcess/Cocoa/MediaPermissionUtilities.mm:

(WebKit::alertMessageText):

Tools:

<rdar://problem/75394695>

Reviewed by Eric Carlson.

  • TestWebKitAPI/Tests/WebKitCocoa/UIDelegate.mm:

(-[GeolocationDelegate setValidationHandler:]):
(-[GeolocationDelegate _webView:requestGeolocationPermissionForFrame:decisionHandler:]):
(TEST):

LayoutTests:

Reviewed by Eric Carlson.

Validated that behavior is consistent with Chrome and Firefox.

  • http/tests/security/resources/geolocation-over-insecure-content.html:

Use internals API to mimick insecure context.

1:08 AM Changeset in webkit [274621] by youenn@apple.com
  • 3 edits in trunk/Source/WTF

Move camera GPU Process flag to experimental
https://bugs.webkit.org/show_bug.cgi?id=223374

Reviewed by Eric Carlson.

  • Scripts/Preferences/WebPreferencesExperimental.yaml:
  • Scripts/Preferences/WebPreferencesInternal.yaml:
12:44 AM Changeset in webkit [274620] by cathiechen
  • 6 edits
    673 adds in trunk/LayoutTests

Import css/css-contain test from WPT
https://bugs.webkit.org/show_bug.cgi?id=223254

Reviewed by Rob Buis.

LayoutTests/imported/w3c:

Import web-platform-tests/css/css-contain from upstream 868fe4c01aef5e27fedc51ea7d938cf556cffec2.

  • resources/import-expectations.json:
  • resources/resource-files.json:
  • web-platform-tests/css/css-contain/META.yml: Added.
  • web-platform-tests/css/css-contain/contain-animation-001-expected.xht: Added.
  • web-platform-tests/css/css-contain/contain-animation-001.html: Added.
  • web-platform-tests/css/css-contain/contain-chrome-thcrash-001-expected.txt: Added.
  • web-platform-tests/css/css-contain/contain-chrome-thcrash-001.html: Added.
  • web-platform-tests/css/css-contain/contain-content-001-expected.html: Added.
  • web-platform-tests/css/css-contain/contain-content-001.html: Added.
  • web-platform-tests/css/css-contain/contain-content-002-expected.html: Added.
  • web-platform-tests/css/css-contain/contain-content-002.html: Added.
  • web-platform-tests/css/css-contain/contain-content-003-expected.xht: Added.
  • web-platform-tests/css/css-contain/contain-content-003.html: Added.
  • web-platform-tests/css/css-contain/contain-content-004-expected.html: Added.
  • web-platform-tests/css/css-contain/contain-content-004.html: Added.
  • web-platform-tests/css/css-contain/contain-content-011-expected.html: Added.
  • web-platform-tests/css/css-contain/contain-content-011.html: Added.
  • web-platform-tests/css/css-contain/contain-crash.html: Added.
  • web-platform-tests/css/css-contain/contain-flexbox-outline-expected.txt: Added.
  • web-platform-tests/css/css-contain/contain-flexbox-outline.html: Added.
  • web-platform-tests/css/css-contain/contain-layout-001-expected.html: Added.
  • web-platform-tests/css/css-contain/contain-layout-001.html: Added.
  • web-platform-tests/css/css-contain/contain-layout-002-expected.xht: Added.
  • web-platform-tests/css/css-contain/contain-layout-002.html: Added.
  • web-platform-tests/css/css-contain/contain-layout-003-expected.xht: Added.
  • web-platform-tests/css/css-contain/contain-layout-003.html: Added.
  • web-platform-tests/css/css-contain/contain-layout-004-expected.xht: Added.
  • web-platform-tests/css/css-contain/contain-layout-004.html: Added.
  • web-platform-tests/css/css-contain/contain-layout-005-expected.xht: Added.
  • web-platform-tests/css/css-contain/contain-layout-005.html: Added.
  • web-platform-tests/css/css-contain/contain-layout-006-expected.xht: Added.
  • web-platform-tests/css/css-contain/contain-layout-006.html: Added.
  • web-platform-tests/css/css-contain/contain-layout-007-expected.xht: Added.
  • web-platform-tests/css/css-contain/contain-layout-007.html: Added.
  • web-platform-tests/css/css-contain/contain-layout-009-expected.xht: Added.
  • web-platform-tests/css/css-contain/contain-layout-009.html: Added.
  • web-platform-tests/css/css-contain/contain-layout-010-expected.xht: Added.
  • web-platform-tests/css/css-contain/contain-layout-010.html: Added.
  • web-platform-tests/css/css-contain/contain-layout-011-expected.xht: Added.
  • web-platform-tests/css/css-contain/contain-layout-011.html: Added.
  • web-platform-tests/css/css-contain/contain-layout-012-expected.xht: Added.
  • web-platform-tests/css/css-contain/contain-layout-012.html: Added.
  • web-platform-tests/css/css-contain/contain-layout-013-expected.xht: Added.
  • web-platform-tests/css/css-contain/contain-layout-013.html: Added.
  • web-platform-tests/css/css-contain/contain-layout-014-expected.xht: Added.
  • web-platform-tests/css/css-contain/contain-layout-014.html: Added.
  • web-platform-tests/css/css-contain/contain-layout-016-expected.html: Added.
  • web-platform-tests/css/css-contain/contain-layout-016.html: Added.
  • web-platform-tests/css/css-contain/contain-layout-017-expected.html: Added.
  • web-platform-tests/css/css-contain/contain-layout-017.html: Added.
  • web-platform-tests/css/css-contain/contain-layout-018-expected.html: Added.
  • web-platform-tests/css/css-contain/contain-layout-018.html: Added.
  • web-platform-tests/css/css-contain/contain-layout-baseline-001-expected.xht: Added.
  • web-platform-tests/css/css-contain/contain-layout-baseline-001.html: Added.
  • web-platform-tests/css/css-contain/contain-layout-baseline-002-expected.xht: Added.
  • web-platform-tests/css/css-contain/contain-layout-baseline-002.html: Added.
  • web-platform-tests/css/css-contain/contain-layout-baseline-003-expected.xht: Added.
  • web-platform-tests/css/css-contain/contain-layout-baseline-003.html: Added.
  • web-platform-tests/css/css-contain/contain-layout-baseline-004-expected.html: Added.
  • web-platform-tests/css/css-contain/contain-layout-baseline-004.html: Added.
  • web-platform-tests/css/css-contain/contain-layout-baseline-005-expected.html: Added.
  • web-platform-tests/css/css-contain/contain-layout-baseline-005.html: Added.
  • web-platform-tests/css/css-contain/contain-layout-breaks-001-expected.html: Added.
  • web-platform-tests/css/css-contain/contain-layout-breaks-001.html: Added.
  • web-platform-tests/css/css-contain/contain-layout-breaks-002-expected.html: Added.
  • web-platform-tests/css/css-contain/contain-layout-breaks-002.html: Added.
  • web-platform-tests/css/css-contain/contain-layout-button-001-expected.html: Added.
  • web-platform-tests/css/css-contain/contain-layout-button-001.html: Added.
  • web-platform-tests/css/css-contain/contain-layout-cell-001-expected.html: Added.
  • web-platform-tests/css/css-contain/contain-layout-cell-001.html: Added.
  • web-platform-tests/css/css-contain/contain-layout-cell-002-expected.html: Added.
  • web-platform-tests/css/css-contain/contain-layout-cell-002.html: Added.
  • web-platform-tests/css/css-contain/contain-layout-containing-block-absolute-001-expected.html: Added.
  • web-platform-tests/css/css-contain/contain-layout-containing-block-absolute-001.html: Added.
  • web-platform-tests/css/css-contain/contain-layout-containing-block-fixed-001-expected.html: Added.
  • web-platform-tests/css/css-contain/contain-layout-containing-block-fixed-001.html: Added.
  • web-platform-tests/css/css-contain/contain-layout-flexbox-001-expected.html: Added.
  • web-platform-tests/css/css-contain/contain-layout-flexbox-001.html: Added.
  • web-platform-tests/css/css-contain/contain-layout-formatting-context-float-001-expected.html: Added.
  • web-platform-tests/css/css-contain/contain-layout-formatting-context-float-001.html: Added.
  • web-platform-tests/css/css-contain/contain-layout-formatting-context-margin-001-expected.html: Added.
  • web-platform-tests/css/css-contain/contain-layout-formatting-context-margin-001.html: Added.
  • web-platform-tests/css/css-contain/contain-layout-grid-001-expected.html: Added.
  • web-platform-tests/css/css-contain/contain-layout-grid-001.html: Added.
  • web-platform-tests/css/css-contain/contain-layout-ifc-022-expected.html: Added.
  • web-platform-tests/css/css-contain/contain-layout-ifc-022.html: Added.
  • web-platform-tests/css/css-contain/contain-layout-ignored-cases-ib-split-001-expected.html: Added.
  • web-platform-tests/css/css-contain/contain-layout-ignored-cases-ib-split-001.html: Added.
  • web-platform-tests/css/css-contain/contain-layout-ignored-cases-no-principal-box-001-expected.html: Added.
  • web-platform-tests/css/css-contain/contain-layout-ignored-cases-no-principal-box-001.html: Added.
  • web-platform-tests/css/css-contain/contain-layout-ignored-cases-no-principal-box-002-expected.html: Added.
  • web-platform-tests/css/css-contain/contain-layout-ignored-cases-no-principal-box-002.html: Added.
  • web-platform-tests/css/css-contain/contain-layout-ignored-cases-no-principal-box-003-expected.html: Added.
  • web-platform-tests/css/css-contain/contain-layout-ignored-cases-no-principal-box-003.html: Added.
  • web-platform-tests/css/css-contain/contain-layout-independent-formatting-context-001-expected.html: Added.
  • web-platform-tests/css/css-contain/contain-layout-independent-formatting-context-001.html: Added.
  • web-platform-tests/css/css-contain/contain-layout-independent-formatting-context-002-expected.html: Added.
  • web-platform-tests/css/css-contain/contain-layout-independent-formatting-context-002.html: Added.
  • web-platform-tests/css/css-contain/contain-layout-independent-formatting-context-003-expected.html: Added.
  • web-platform-tests/css/css-contain/contain-layout-independent-formatting-context-003.html: Added.
  • web-platform-tests/css/css-contain/contain-layout-ink-overflow-013-expected.html: Added.
  • web-platform-tests/css/css-contain/contain-layout-ink-overflow-013.html: Added.
  • web-platform-tests/css/css-contain/contain-layout-ink-overflow-014-expected.html: Added.
  • web-platform-tests/css/css-contain/contain-layout-ink-overflow-014.html: Added.
  • web-platform-tests/css/css-contain/contain-layout-ink-overflow-015-expected.html: Added.
  • web-platform-tests/css/css-contain/contain-layout-ink-overflow-015.html: Added.
  • web-platform-tests/css/css-contain/contain-layout-ink-overflow-016-expected.html: Added.
  • web-platform-tests/css/css-contain/contain-layout-ink-overflow-016.html: Added.
  • web-platform-tests/css/css-contain/contain-layout-ink-overflow-017-expected.html: Added.
  • web-platform-tests/css/css-contain/contain-layout-ink-overflow-017.html: Added.
  • web-platform-tests/css/css-contain/contain-layout-ink-overflow-018-expected.html: Added.
  • web-platform-tests/css/css-contain/contain-layout-ink-overflow-018.html: Added.
  • web-platform-tests/css/css-contain/contain-layout-ink-overflow-019-expected.html: Added.
  • web-platform-tests/css/css-contain/contain-layout-ink-overflow-019.html: Added.
  • web-platform-tests/css/css-contain/contain-layout-ink-overflow-020-expected.html: Added.
  • web-platform-tests/css/css-contain/contain-layout-ink-overflow-020.html: Added.
  • web-platform-tests/css/css-contain/contain-layout-overflow-001-expected.html: Added.
  • web-platform-tests/css/css-contain/contain-layout-overflow-001.html: Added.
  • web-platform-tests/css/css-contain/contain-layout-overflow-002-expected.html: Added.
  • web-platform-tests/css/css-contain/contain-layout-overflow-002.html: Added.
  • web-platform-tests/css/css-contain/contain-layout-size-003-expected.html: Added.
  • web-platform-tests/css/css-contain/contain-layout-size-003.html: Added.
  • web-platform-tests/css/css-contain/contain-layout-stacking-context-001-expected.html: Added.
  • web-platform-tests/css/css-contain/contain-layout-stacking-context-001.html: Added.
  • web-platform-tests/css/css-contain/contain-layout-suppress-baseline-001-expected.html: Added.
  • web-platform-tests/css/css-contain/contain-layout-suppress-baseline-001.html: Added.
  • web-platform-tests/css/css-contain/contain-layout-suppress-baseline-002-expected.html: Added.
  • web-platform-tests/css/css-contain/contain-layout-suppress-baseline-002.html: Added.
  • web-platform-tests/css/css-contain/contain-paint-001-expected.html: Added.
  • web-platform-tests/css/css-contain/contain-paint-001.html: Added.
  • web-platform-tests/css/css-contain/contain-paint-002-expected.html: Added.
  • web-platform-tests/css/css-contain/contain-paint-002.html: Added.
  • web-platform-tests/css/css-contain/contain-paint-004-expected.html: Added.
  • web-platform-tests/css/css-contain/contain-paint-004.html: Added.
  • web-platform-tests/css/css-contain/contain-paint-005-expected.html: Added.
  • web-platform-tests/css/css-contain/contain-paint-005.html: Added.
  • web-platform-tests/css/css-contain/contain-paint-006-expected.html: Added.
  • web-platform-tests/css/css-contain/contain-paint-006.html: Added.
  • web-platform-tests/css/css-contain/contain-paint-007-expected.html: Added.
  • web-platform-tests/css/css-contain/contain-paint-007.html: Added.
  • web-platform-tests/css/css-contain/contain-paint-008-expected.html: Added.
  • web-platform-tests/css/css-contain/contain-paint-008.html: Added.
  • web-platform-tests/css/css-contain/contain-paint-009-expected.xht: Added.
  • web-platform-tests/css/css-contain/contain-paint-009.html: Added.
  • web-platform-tests/css/css-contain/contain-paint-010-expected.xht: Added.
  • web-platform-tests/css/css-contain/contain-paint-010.html: Added.
  • web-platform-tests/css/css-contain/contain-paint-011-expected.xht: Added.
  • web-platform-tests/css/css-contain/contain-paint-011.html: Added.
  • web-platform-tests/css/css-contain/contain-paint-012-expected.xht: Added.
  • web-platform-tests/css/css-contain/contain-paint-012.html: Added.
  • web-platform-tests/css/css-contain/contain-paint-014-expected.html: Added.
  • web-platform-tests/css/css-contain/contain-paint-014.html: Added.
  • web-platform-tests/css/css-contain/contain-paint-015-expected.html: Added.
  • web-platform-tests/css/css-contain/contain-paint-015.html: Added.
  • web-platform-tests/css/css-contain/contain-paint-016-expected.html: Added.
  • web-platform-tests/css/css-contain/contain-paint-016.html: Added.
  • web-platform-tests/css/css-contain/contain-paint-017-expected.html: Added.
  • web-platform-tests/css/css-contain/contain-paint-017.html: Added.
  • web-platform-tests/css/css-contain/contain-paint-018-expected.html: Added.
  • web-platform-tests/css/css-contain/contain-paint-018.html: Added.
  • web-platform-tests/css/css-contain/contain-paint-019-expected.html: Added.
  • web-platform-tests/css/css-contain/contain-paint-019.html: Added.
  • web-platform-tests/css/css-contain/contain-paint-020-expected.html: Added.
  • web-platform-tests/css/css-contain/contain-paint-020.html: Added.
  • web-platform-tests/css/css-contain/contain-paint-021-expected.html: Added.
  • web-platform-tests/css/css-contain/contain-paint-021.html: Added.
  • web-platform-tests/css/css-contain/contain-paint-022-expected.html: Added.
  • web-platform-tests/css/css-contain/contain-paint-022.html: Added.
  • web-platform-tests/css/css-contain/contain-paint-023-expected.xht: Added.
  • web-platform-tests/css/css-contain/contain-paint-023.html: Added.
  • web-platform-tests/css/css-contain/contain-paint-024-expected.xht: Added.
  • web-platform-tests/css/css-contain/contain-paint-024.html: Added.
  • web-platform-tests/css/css-contain/contain-paint-025-expected.html: Added.
  • web-platform-tests/css/css-contain/contain-paint-025.html: Added.
  • web-platform-tests/css/css-contain/contain-paint-047-expected.html: Added.
  • web-platform-tests/css/css-contain/contain-paint-047.html: Added.
  • web-platform-tests/css/css-contain/contain-paint-048-expected.xht: Added.
  • web-platform-tests/css/css-contain/contain-paint-048.html: Added.
  • web-platform-tests/css/css-contain/contain-paint-baseline-001-expected.html: Added.
  • web-platform-tests/css/css-contain/contain-paint-baseline-001.html: Added.
  • web-platform-tests/css/css-contain/contain-paint-cell-001-expected.html: Added.
  • web-platform-tests/css/css-contain/contain-paint-cell-001.html: Added.
  • web-platform-tests/css/css-contain/contain-paint-cell-002-expected.html: Added.
  • web-platform-tests/css/css-contain/contain-paint-cell-002.html: Added.
  • web-platform-tests/css/css-contain/contain-paint-clip-001-expected.html: Added.
  • web-platform-tests/css/css-contain/contain-paint-clip-001.html: Added.
  • web-platform-tests/css/css-contain/contain-paint-clip-002-expected.html: Added.
  • web-platform-tests/css/css-contain/contain-paint-clip-002.html: Added.
  • web-platform-tests/css/css-contain/contain-paint-clip-003-expected.html: Added.
  • web-platform-tests/css/css-contain/contain-paint-clip-003.html: Added.
  • web-platform-tests/css/css-contain/contain-paint-clip-004-expected.html: Added.
  • web-platform-tests/css/css-contain/contain-paint-clip-004.html: Added.
  • web-platform-tests/css/css-contain/contain-paint-clip-005-expected.html: Added.
  • web-platform-tests/css/css-contain/contain-paint-clip-005.html: Added.
  • web-platform-tests/css/css-contain/contain-paint-clip-006-expected.html: Added.
  • web-platform-tests/css/css-contain/contain-paint-clip-006.html: Added.
  • web-platform-tests/css/css-contain/contain-paint-clip-011-expected.xht: Added.
  • web-platform-tests/css/css-contain/contain-paint-clip-011.html: Added.
  • web-platform-tests/css/css-contain/contain-paint-clip-012-expected.xht: Added.
  • web-platform-tests/css/css-contain/contain-paint-clip-012.html: Added.
  • web-platform-tests/css/css-contain/contain-paint-clip-013-expected.xht: Added.
  • web-platform-tests/css/css-contain/contain-paint-clip-013.html: Added.
  • web-platform-tests/css/css-contain/contain-paint-clip-014-expected.xht: Added.
  • web-platform-tests/css/css-contain/contain-paint-clip-014.html: Added.
  • web-platform-tests/css/css-contain/contain-paint-clip-015-expected.html: Added.
  • web-platform-tests/css/css-contain/contain-paint-clip-015.html: Added.
  • web-platform-tests/css/css-contain/contain-paint-clip-016-expected.html: Added.
  • web-platform-tests/css/css-contain/contain-paint-clip-016.html: Added.
  • web-platform-tests/css/css-contain/contain-paint-clip-017-expected.html: Added.
  • web-platform-tests/css/css-contain/contain-paint-clip-017.html: Added.
  • web-platform-tests/css/css-contain/contain-paint-clip-018-expected.html: Added.
  • web-platform-tests/css/css-contain/contain-paint-clip-018.html: Added.
  • web-platform-tests/css/css-contain/contain-paint-clip-019-expected.html: Added.
  • web-platform-tests/css/css-contain/contain-paint-clip-019.html: Added.
  • web-platform-tests/css/css-contain/contain-paint-containing-block-absolute-001-expected.html: Added.
  • web-platform-tests/css/css-contain/contain-paint-containing-block-absolute-001.html: Added.
  • web-platform-tests/css/css-contain/contain-paint-containing-block-fixed-001-expected.html: Added.
  • web-platform-tests/css/css-contain/contain-paint-containing-block-fixed-001.html: Added.
  • web-platform-tests/css/css-contain/contain-paint-formatting-context-float-001-expected.html: Added.
  • web-platform-tests/css/css-contain/contain-paint-formatting-context-float-001.html: Added.
  • web-platform-tests/css/css-contain/contain-paint-formatting-context-margin-001-expected.html: Added.
  • web-platform-tests/css/css-contain/contain-paint-formatting-context-margin-001.html: Added.
  • web-platform-tests/css/css-contain/contain-paint-ifc-011-expected.html: Added.
  • web-platform-tests/css/css-contain/contain-paint-ifc-011.html: Added.
  • web-platform-tests/css/css-contain/contain-paint-ignored-cases-ib-split-001-expected.html: Added.
  • web-platform-tests/css/css-contain/contain-paint-ignored-cases-ib-split-001.html: Added.
  • web-platform-tests/css/css-contain/contain-paint-ignored-cases-internal-table-001a-expected.html: Added.
  • web-platform-tests/css/css-contain/contain-paint-ignored-cases-internal-table-001a.html: Added.
  • web-platform-tests/css/css-contain/contain-paint-ignored-cases-internal-table-001b-expected.html: Added.
  • web-platform-tests/css/css-contain/contain-paint-ignored-cases-internal-table-001b.html: Added.
  • web-platform-tests/css/css-contain/contain-paint-ignored-cases-no-principal-box-001-expected.html: Added.
  • web-platform-tests/css/css-contain/contain-paint-ignored-cases-no-principal-box-001.html: Added.
  • web-platform-tests/css/css-contain/contain-paint-ignored-cases-ruby-containing-block-001-expected.html: Added.
  • web-platform-tests/css/css-contain/contain-paint-ignored-cases-ruby-containing-block-001.html: Added.
  • web-platform-tests/css/css-contain/contain-paint-ignored-cases-ruby-stacking-and-clipping-001-expected.html: Added.
  • web-platform-tests/css/css-contain/contain-paint-ignored-cases-ruby-stacking-and-clipping-001.html: Added.
  • web-platform-tests/css/css-contain/contain-paint-independent-formatting-context-001-expected.html: Added.
  • web-platform-tests/css/css-contain/contain-paint-independent-formatting-context-001.html: Added.
  • web-platform-tests/css/css-contain/contain-paint-independent-formatting-context-002-expected.html: Added.
  • web-platform-tests/css/css-contain/contain-paint-independent-formatting-context-002.html: Added.
  • web-platform-tests/css/css-contain/contain-paint-independent-formatting-context-003-expected.html: Added.
  • web-platform-tests/css/css-contain/contain-paint-independent-formatting-context-003.html: Added.
  • web-platform-tests/css/css-contain/contain-paint-size-001-expected.html: Added.
  • web-platform-tests/css/css-contain/contain-paint-size-001.html: Added.
  • web-platform-tests/css/css-contain/contain-paint-size-002-expected.html: Added.
  • web-platform-tests/css/css-contain/contain-paint-size-002.html: Added.
  • web-platform-tests/css/css-contain/contain-paint-size-003-expected.html: Added.
  • web-platform-tests/css/css-contain/contain-paint-size-003.html: Added.
  • web-platform-tests/css/css-contain/contain-paint-stacking-context-001a-expected.html: Added.
  • web-platform-tests/css/css-contain/contain-paint-stacking-context-001a.html: Added.
  • web-platform-tests/css/css-contain/contain-paint-stacking-context-001b-expected.html: Added.
  • web-platform-tests/css/css-contain/contain-paint-stacking-context-001b.html: Added.
  • web-platform-tests/css/css-contain/contain-paint-table-001-expected.html: Added.
  • web-platform-tests/css/css-contain/contain-paint-table-001.html: Added.
  • web-platform-tests/css/css-contain/contain-paint-table-002-expected.html: Added.
  • web-platform-tests/css/css-contain/contain-paint-table-002.html: Added.
  • web-platform-tests/css/css-contain/contain-size-001-expected.html: Added.
  • web-platform-tests/css/css-contain/contain-size-001.html: Added.
  • web-platform-tests/css/css-contain/contain-size-002-expected.html: Added.
  • web-platform-tests/css/css-contain/contain-size-002.html: Added.
  • web-platform-tests/css/css-contain/contain-size-003-expected.html: Added.
  • web-platform-tests/css/css-contain/contain-size-003.html: Added.
  • web-platform-tests/css/css-contain/contain-size-004-expected.html: Added.
  • web-platform-tests/css/css-contain/contain-size-004.html: Added.
  • web-platform-tests/css/css-contain/contain-size-005-expected.html: Added.
  • web-platform-tests/css/css-contain/contain-size-005.html: Added.
  • web-platform-tests/css/css-contain/contain-size-006-expected.html: Added.
  • web-platform-tests/css/css-contain/contain-size-006.html: Added.
  • web-platform-tests/css/css-contain/contain-size-007-expected.html: Added.
  • web-platform-tests/css/css-contain/contain-size-007.html: Added.
  • web-platform-tests/css/css-contain/contain-size-008-expected.html: Added.
  • web-platform-tests/css/css-contain/contain-size-008.html: Added.
  • web-platform-tests/css/css-contain/contain-size-009-expected.html: Added.
  • web-platform-tests/css/css-contain/contain-size-009.html: Added.
  • web-platform-tests/css/css-contain/contain-size-010-expected.html: Added.
  • web-platform-tests/css/css-contain/contain-size-010.html: Added.
  • web-platform-tests/css/css-contain/contain-size-011-expected.html: Added.
  • web-platform-tests/css/css-contain/contain-size-011.html: Added.
  • web-platform-tests/css/css-contain/contain-size-012-expected.html: Added.
  • web-platform-tests/css/css-contain/contain-size-012.html: Added.
  • web-platform-tests/css/css-contain/contain-size-012b-expected.html: Added.
  • web-platform-tests/css/css-contain/contain-size-012b.html: Added.
  • web-platform-tests/css/css-contain/contain-size-013-expected.xht: Added.
  • web-platform-tests/css/css-contain/contain-size-013.html: Added.
  • web-platform-tests/css/css-contain/contain-size-021-expected.html: Added.
  • web-platform-tests/css/css-contain/contain-size-021.html: Added.
  • web-platform-tests/css/css-contain/contain-size-023-expected.html: Added.
  • web-platform-tests/css/css-contain/contain-size-023.html: Added.
  • web-platform-tests/css/css-contain/contain-size-025-expected.html: Added.
  • web-platform-tests/css/css-contain/contain-size-025.html: Added.
  • web-platform-tests/css/css-contain/contain-size-027-expected.html: Added.
  • web-platform-tests/css/css-contain/contain-size-027.html: Added.
  • web-platform-tests/css/css-contain/contain-size-041-expected.html: Added.
  • web-platform-tests/css/css-contain/contain-size-041.html: Added.
  • web-platform-tests/css/css-contain/contain-size-042-expected.html: Added.
  • web-platform-tests/css/css-contain/contain-size-042.html: Added.
  • web-platform-tests/css/css-contain/contain-size-051-expected.html: Added.
  • web-platform-tests/css/css-contain/contain-size-051.html: Added.
  • web-platform-tests/css/css-contain/contain-size-052-expected.html: Added.
  • web-platform-tests/css/css-contain/contain-size-052.html: Added.
  • web-platform-tests/css/css-contain/contain-size-056-expected.html: Added.
  • web-platform-tests/css/css-contain/contain-size-056.html: Added.
  • web-platform-tests/css/css-contain/contain-size-061-expected.html: Added.
  • web-platform-tests/css/css-contain/contain-size-061.html: Added.
  • web-platform-tests/css/css-contain/contain-size-062-expected.html: Added.
  • web-platform-tests/css/css-contain/contain-size-062.html: Added.
  • web-platform-tests/css/css-contain/contain-size-063-expected.html: Added.
  • web-platform-tests/css/css-contain/contain-size-063.html: Added.
  • web-platform-tests/css/css-contain/contain-size-064-expected.html: Added.
  • web-platform-tests/css/css-contain/contain-size-064.html: Added.
  • web-platform-tests/css/css-contain/contain-size-baseline-001-expected.html: Added.
  • web-platform-tests/css/css-contain/contain-size-baseline-001.html: Added.
  • web-platform-tests/css/css-contain/contain-size-block-001-expected.html: Added.
  • web-platform-tests/css/css-contain/contain-size-block-001.html: Added.
  • web-platform-tests/css/css-contain/contain-size-block-002-expected.html: Added.
  • web-platform-tests/css/css-contain/contain-size-block-002.html: Added.
  • web-platform-tests/css/css-contain/contain-size-block-003-expected.html: Added.
  • web-platform-tests/css/css-contain/contain-size-block-003.html: Added.
  • web-platform-tests/css/css-contain/contain-size-block-004-expected.html: Added.
  • web-platform-tests/css/css-contain/contain-size-block-004.html: Added.
  • web-platform-tests/css/css-contain/contain-size-borders-expected.xht: Added.
  • web-platform-tests/css/css-contain/contain-size-borders.html: Added.
  • web-platform-tests/css/css-contain/contain-size-breaks-001-expected.html: Added.
  • web-platform-tests/css/css-contain/contain-size-breaks-001.html: Added.
  • web-platform-tests/css/css-contain/contain-size-button-001-expected.html: Added.
  • web-platform-tests/css/css-contain/contain-size-button-001.html: Added.
  • web-platform-tests/css/css-contain/contain-size-button-002-expected.html: Added.
  • web-platform-tests/css/css-contain/contain-size-button-002.html: Added.
  • web-platform-tests/css/css-contain/contain-size-fieldset-001-expected.html: Added.
  • web-platform-tests/css/css-contain/contain-size-fieldset-001.html: Added.
  • web-platform-tests/css/css-contain/contain-size-fieldset-002-expected.html: Added.
  • web-platform-tests/css/css-contain/contain-size-fieldset-002.html: Added.
  • web-platform-tests/css/css-contain/contain-size-fieldset-003-expected.html: Added.
  • web-platform-tests/css/css-contain/contain-size-fieldset-003.html: Added.
  • web-platform-tests/css/css-contain/contain-size-fieldset-004-expected.html: Added.
  • web-platform-tests/css/css-contain/contain-size-fieldset-004.html: Added.
  • web-platform-tests/css/css-contain/contain-size-flex-001-expected.html: Added.
  • web-platform-tests/css/css-contain/contain-size-flex-001.html: Added.
  • web-platform-tests/css/css-contain/contain-size-flexbox-001-expected.html: Added.
  • web-platform-tests/css/css-contain/contain-size-flexbox-001.html: Added.
  • web-platform-tests/css/css-contain/contain-size-flexbox-002-expected.html: Added.
  • web-platform-tests/css/css-contain/contain-size-flexbox-002.html: Added.
  • web-platform-tests/css/css-contain/contain-size-grid-001-expected.html: Added.
  • web-platform-tests/css/css-contain/contain-size-grid-001.html: Added.
  • web-platform-tests/css/css-contain/contain-size-grid-002-expected.xht: Added.
  • web-platform-tests/css/css-contain/contain-size-grid-002.html: Added.
  • web-platform-tests/css/css-contain/contain-size-grid-003-expected.txt: Added.
  • web-platform-tests/css/css-contain/contain-size-grid-003.html: Added.
  • web-platform-tests/css/css-contain/contain-size-grid-004-expected.txt: Added.
  • web-platform-tests/css/css-contain/contain-size-grid-004.html: Added.
  • web-platform-tests/css/css-contain/contain-size-grid-005-expected.html: Added.
  • web-platform-tests/css/css-contain/contain-size-grid-005.html: Added.
  • web-platform-tests/css/css-contain/contain-size-inline-block-001-expected.html: Added.
  • web-platform-tests/css/css-contain/contain-size-inline-block-001.html: Added.
  • web-platform-tests/css/css-contain/contain-size-inline-block-002-expected.html: Added.
  • web-platform-tests/css/css-contain/contain-size-inline-block-002.html: Added.
  • web-platform-tests/css/css-contain/contain-size-inline-block-003-expected.html: Added.
  • web-platform-tests/css/css-contain/contain-size-inline-block-003.html: Added.
  • web-platform-tests/css/css-contain/contain-size-inline-block-004-expected.html: Added.
  • web-platform-tests/css/css-contain/contain-size-inline-block-004.html: Added.
  • web-platform-tests/css/css-contain/contain-size-inline-flex-001-expected.html: Added.
  • web-platform-tests/css/css-contain/contain-size-inline-flex-001.html: Added.
  • web-platform-tests/css/css-contain/contain-size-monolithic-001-expected.html: Added.
  • web-platform-tests/css/css-contain/contain-size-monolithic-001.html: Added.
  • web-platform-tests/css/css-contain/contain-size-monolithic-002-expected.html: Added.
  • web-platform-tests/css/css-contain/contain-size-monolithic-002.html: Added.
  • web-platform-tests/css/css-contain/contain-size-multicol-001-expected.xht: Added.
  • web-platform-tests/css/css-contain/contain-size-multicol-001.html: Added.
  • web-platform-tests/css/css-contain/contain-size-multicol-002-expected.html: Added.
  • web-platform-tests/css/css-contain/contain-size-multicol-002.html: Added.
  • web-platform-tests/css/css-contain/contain-size-multicol-003-expected.html: Added.
  • web-platform-tests/css/css-contain/contain-size-multicol-003.html: Added.
  • web-platform-tests/css/css-contain/contain-size-multicol-004-expected.html: Added.
  • web-platform-tests/css/css-contain/contain-size-multicol-004.html: Added.
  • web-platform-tests/css/css-contain/contain-size-multicol-as-flex-item-expected.txt: Added.
  • web-platform-tests/css/css-contain/contain-size-multicol-as-flex-item.html: Added.
  • web-platform-tests/css/css-contain/contain-size-replaced-001-expected.xht: Added.
  • web-platform-tests/css/css-contain/contain-size-replaced-001.html: Added.
  • web-platform-tests/css/css-contain/contain-size-replaced-002-expected.xht: Added.
  • web-platform-tests/css/css-contain/contain-size-replaced-002.html: Added.
  • web-platform-tests/css/css-contain/contain-size-replaced-003a-expected.html: Added.
  • web-platform-tests/css/css-contain/contain-size-replaced-003a.html: Added.
  • web-platform-tests/css/css-contain/contain-size-replaced-003b-expected.html: Added.
  • web-platform-tests/css/css-contain/contain-size-replaced-003b.html: Added.
  • web-platform-tests/css/css-contain/contain-size-replaced-003c-expected.html: Added.
  • web-platform-tests/css/css-contain/contain-size-replaced-003c.html: Added.
  • web-platform-tests/css/css-contain/contain-size-replaced-004-expected.html: Added.
  • web-platform-tests/css/css-contain/contain-size-replaced-004.html: Added.
  • web-platform-tests/css/css-contain/contain-size-replaced-005-expected.html: Added.
  • web-platform-tests/css/css-contain/contain-size-replaced-005.html: Added.
  • web-platform-tests/css/css-contain/contain-size-replaced-006-expected.html: Added.
  • web-platform-tests/css/css-contain/contain-size-replaced-006.html: Added.
  • web-platform-tests/css/css-contain/contain-size-replaced-007-expected.xht: Added.
  • web-platform-tests/css/css-contain/contain-size-replaced-007.html: Added.
  • web-platform-tests/css/css-contain/contain-size-scrollbars-001-expected.html: Added.
  • web-platform-tests/css/css-contain/contain-size-scrollbars-001.html: Added.
  • web-platform-tests/css/css-contain/contain-size-scrollbars-002-expected.html: Added.
  • web-platform-tests/css/css-contain/contain-size-scrollbars-002.html: Added.
  • web-platform-tests/css/css-contain/contain-size-scrollbars-003-expected.html: Added.
  • web-platform-tests/css/css-contain/contain-size-scrollbars-003.html: Added.
  • web-platform-tests/css/css-contain/contain-size-scrollbars-004-expected.html: Added.
  • web-platform-tests/css/css-contain/contain-size-scrollbars-004.html: Added.
  • web-platform-tests/css/css-contain/contain-size-select-001-expected.html: Added.
  • web-platform-tests/css/css-contain/contain-size-select-001.html: Added.
  • web-platform-tests/css/css-contain/contain-size-select-002-expected.html: Added.
  • web-platform-tests/css/css-contain/contain-size-select-002.html: Added.
  • web-platform-tests/css/css-contain/contain-size-select-elem-001-expected.html: Added.
  • web-platform-tests/css/css-contain/contain-size-select-elem-001.html: Added.
  • web-platform-tests/css/css-contain/contain-size-select-elem-002-expected.html: Added.
  • web-platform-tests/css/css-contain/contain-size-select-elem-002.html: Added.
  • web-platform-tests/css/css-contain/contain-size-select-elem-003-expected.html: Added.
  • web-platform-tests/css/css-contain/contain-size-select-elem-003.html: Added.
  • web-platform-tests/css/css-contain/contain-size-select-elem-004-expected.html: Added.
  • web-platform-tests/css/css-contain/contain-size-select-elem-004.html: Added.
  • web-platform-tests/css/css-contain/contain-size-select-elem-005-expected.html: Added.
  • web-platform-tests/css/css-contain/contain-size-select-elem-005.html: Added.
  • web-platform-tests/css/css-contain/contain-size-table-caption-001-expected.html: Added.
  • web-platform-tests/css/css-contain/contain-size-table-caption-001.html: Added.
  • web-platform-tests/css/css-contain/contain-strict-001-expected.html: Added.
  • web-platform-tests/css/css-contain/contain-strict-001.html: Added.
  • web-platform-tests/css/css-contain/contain-strict-002-expected.html: Added.
  • web-platform-tests/css/css-contain/contain-strict-002.html: Added.
  • web-platform-tests/css/css-contain/contain-strict-003-expected.html: Added.
  • web-platform-tests/css/css-contain/contain-strict-003.html: Added.
  • web-platform-tests/css/css-contain/contain-strict-011-expected.html: Added.
  • web-platform-tests/css/css-contain/contain-strict-011.html: Added.
  • web-platform-tests/css/css-contain/contain-style-baseline-001-expected.html: Added.
  • web-platform-tests/css/css-contain/contain-style-baseline-001.html: Added.
  • web-platform-tests/css/css-contain/contain-style-breaks-001-expected.html: Added.
  • web-platform-tests/css/css-contain/contain-style-breaks-001.html: Added.
  • web-platform-tests/css/css-contain/contain-style-breaks-002-expected.html: Added.
  • web-platform-tests/css/css-contain/contain-style-breaks-002.html: Added.
  • web-platform-tests/css/css-contain/contain-style-breaks-003-expected.html: Added.
  • web-platform-tests/css/css-contain/contain-style-breaks-003.html: Added.
  • web-platform-tests/css/css-contain/contain-style-breaks-004-expected.html: Added.
  • web-platform-tests/css/css-contain/contain-style-breaks-004.html: Added.
  • web-platform-tests/css/css-contain/contain-style-breaks-005-expected.html: Added.
  • web-platform-tests/css/css-contain/contain-style-breaks-005.html: Added.
  • web-platform-tests/css/css-contain/contain-style-counters-001-expected.html: Added.
  • web-platform-tests/css/css-contain/contain-style-counters-001.html: Added.
  • web-platform-tests/css/css-contain/contain-style-counters-002-expected.html: Added.
  • web-platform-tests/css/css-contain/contain-style-counters-002.html: Added.
  • web-platform-tests/css/css-contain/contain-style-counters-003-expected.html: Added.
  • web-platform-tests/css/css-contain/contain-style-counters-003.html: Added.
  • web-platform-tests/css/css-contain/contain-style-counters-004-expected.html: Added.
  • web-platform-tests/css/css-contain/contain-style-counters-004.html: Added.
  • web-platform-tests/css/css-contain/contain-subgrid-001-expected.html: Added.
  • web-platform-tests/css/css-contain/contain-subgrid-001.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-001-expected.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-001.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-002-expected.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-002.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-003-expected.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-003.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-004-expected.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-004.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-005-expected.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-005.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-006-expected.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-006.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-007-expected.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-007.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-008-expected.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-008.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-009-expected.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-009.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-010-expected.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-010.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-011-expected.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-011.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-012-expected.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-012.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-013-expected.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-013.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-014-expected.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-014.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-015-expected.txt: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-015.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-016-expected.txt: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-016.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-017-expected.txt: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-017.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-018-expected.txt: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-018.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-019.sub.https-expected.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-019.sub.https.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-020-expected.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-020.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-021-expected.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-021.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-022-expected.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-022.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-023-expected.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-023.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-024-expected.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-024.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-025-expected.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-025.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-026-expected.txt: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-026.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-027-expected.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-027.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-028-expected.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-028.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-029-expected.txt: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-029.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-030-expected.txt: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-030.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-031-expected.txt: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-031.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-032-expected.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-032.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-033.sub.https-expected.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-033.sub.https.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-034-expected.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-034.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-035-expected.txt: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-035.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-036-expected.txt: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-036.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-037-expected.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-037.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-038-expected.txt: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-038.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-039-expected.txt: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-039.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-040-expected.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-040.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-041-expected.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-041.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-042-expected.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-042.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-043-expected.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-043.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-044-expected.txt: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-044.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-045-expected.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-045.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-046-expected.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-046.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-047-expected.txt: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-047.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-048-expected.txt: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-048.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-049-expected.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-049.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-050-expected.txt: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-050.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-051-expected.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-051.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-052-expected.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-052.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-053-expected.txt: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-053.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-054-expected.txt: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-054.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-055-expected.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-055.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-056-expected.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-056.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-057-expected.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-057.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-058-expected.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-058.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-059-expected.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-059.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-060-expected.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-060.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-061-expected.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-061.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-062-expected.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-062.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-063-expected.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-063.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-064-expected.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-064.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-065-expected.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-065.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-066-expected.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-066.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-067-expected.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-067.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-068-expected.txt: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-068.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-069-expected.txt: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-069.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-070-expected.txt: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-070.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-071-expected.txt: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-071.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-072-expected.txt: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-072.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-073-expected.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-073.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-074-expected.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-074.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-075-expected.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-075.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-076-expected.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-076.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-077-expected.txt: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-077.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-078-expected.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-078.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-079-expected.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-079.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-080-expected.txt: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-080.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-081-expected.txt: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-081.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-form-controls-crash.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/inheritance-expected.txt: Added.
  • web-platform-tests/css/css-contain/content-visibility/inheritance.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/parsing/content-visibility-computed-expected.txt: Added.
  • web-platform-tests/css/css-contain/content-visibility/parsing/content-visibility-computed.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/parsing/content-visibility-invalid-expected.txt: Added.
  • web-platform-tests/css/css-contain/content-visibility/parsing/content-visibility-invalid.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/parsing/content-visibility-valid-expected.txt: Added.
  • web-platform-tests/css/css-contain/content-visibility/parsing/content-visibility-valid.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/parsing/w3c-import.log: Added.
  • web-platform-tests/css/css-contain/content-visibility/resources/circles.svg: Added.
  • web-platform-tests/css/css-contain/content-visibility/resources/dice.png: Added.
  • web-platform-tests/css/css-contain/content-visibility/resources/frame.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/resources/text-fragment-target-auto.html: Added.
  • web-platform-tests/css/css-contain/content-visibility/resources/w3c-import.log: Added.
  • web-platform-tests/css/css-contain/content-visibility/w3c-import.log: Added.
  • web-platform-tests/css/css-contain/counter-scoping-001-expected.html: Added.
  • web-platform-tests/css/css-contain/counter-scoping-001.html: Added.
  • web-platform-tests/css/css-contain/counter-scoping-002-expected.html: Added.
  • web-platform-tests/css/css-contain/counter-scoping-002.html: Added.
  • web-platform-tests/css/css-contain/counter-scoping-003-expected.html: Added.
  • web-platform-tests/css/css-contain/counter-scoping-003.html: Added.
  • web-platform-tests/css/css-contain/inheritance-expected.txt: Added.
  • web-platform-tests/css/css-contain/inheritance.html: Added.
  • web-platform-tests/css/css-contain/parsing/contain-computed-expected.txt: Added.
  • web-platform-tests/css/css-contain/parsing/contain-computed.html: Added.
  • web-platform-tests/css/css-contain/parsing/contain-invalid-expected.txt: Added.
  • web-platform-tests/css/css-contain/parsing/contain-invalid.html: Added.
  • web-platform-tests/css/css-contain/parsing/contain-valid-expected.txt: Added.
  • web-platform-tests/css/css-contain/parsing/contain-valid.html: Added.
  • web-platform-tests/css/css-contain/parsing/w3c-import.log: Added.
  • web-platform-tests/css/css-contain/quote-scoping-001-expected.html: Added.
  • web-platform-tests/css/css-contain/quote-scoping-001.html: Added.
  • web-platform-tests/css/css-contain/quote-scoping-002-expected.html: Added.
  • web-platform-tests/css/css-contain/quote-scoping-002.html: Added.
  • web-platform-tests/css/css-contain/quote-scoping-003-expected.html: Added.
  • web-platform-tests/css/css-contain/quote-scoping-003.html: Added.
  • web-platform-tests/css/css-contain/quote-scoping-004-expected.html: Added.
  • web-platform-tests/css/css-contain/quote-scoping-004.html: Added.
  • web-platform-tests/css/css-contain/support/60x60-green.png: Added.
  • web-platform-tests/css/css-contain/support/blue-100x100.png: Added.
  • web-platform-tests/css/css-contain/support/blue50wBy25h.png: Added.
  • web-platform-tests/css/css-contain/support/blue50wBy46h.png: Added.
  • web-platform-tests/css/css-contain/support/pattern-gg-gr-100x100.png: Added.
  • web-platform-tests/css/css-contain/support/swatch-blue.png: Added.
  • web-platform-tests/css/css-contain/support/swatch-orange.png: Added.
  • web-platform-tests/css/css-contain/support/swatch-red.png: Added.
  • web-platform-tests/css/css-contain/support/swatch-yellow.png: Added.
  • web-platform-tests/css/css-contain/support/w3c-import.log: Added.
  • web-platform-tests/css/css-contain/support/white.webm: Added.
  • web-platform-tests/css/css-contain/w3c-import.log: Added.

LayoutTests:

12:32 AM Changeset in webkit [274619] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

WebGL conformance test update script does not use min_version and max_version in all cases
https://bugs.webkit.org/show_bug.cgi?id=223376

Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2021-03-18
Reviewed by Kenneth Russell.

Make the update script respect min_version and max_version when the version is specified
per test.

  • Scripts/webkitpy/update_webgl_conformance_tests_lib/main.py:

(_parse_webgl_tests):

12:21 AM Changeset in webkit [274618] by Wenson Hsieh
  • 2 edits in trunk/Source/WebKit

[iOS] Web process sometimes crashes under WebPage::positionInformation() after r274031
https://bugs.webkit.org/show_bug.cgi?id=223417
<rdar://problem/75540178>

Reviewed by Devin Rousso.

Add a null check to guard against the case where the hit-tested node is null, but the element responding to
click events exists.

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::elementPositionInformation):

Mar 17, 2021:

11:06 PM Changeset in webkit [274617] by sbarati@apple.com
  • 2 edits in trunk/Source/WTF

Make sure we only set HAVE_VM_FLAGS_PERMANENT to 1 when targeting macOS >= 11.0
https://bugs.webkit.org/show_bug.cgi?id=223408

Reviewed by Alexey Proskuryakov.

  • wtf/PlatformHave.h:
10:40 PM Changeset in webkit [274616] by Devin Rousso
  • 2 edits in trunk/Source/WebCore

don't copy imageOverlay.css or meterElementShadow.css
https://bugs.webkit.org/show_bug.cgi?id=223411

Reviewed by Wenson Hsieh.

These files are already parsed into imageOverlayUserAgentStyleSheet and meterElementShadowUserAgentStyleSheet respectively.

  • WebCore.xcodeproj/project.pbxproj:
10:30 PM Changeset in webkit [274615] by commit-queue@webkit.org
  • 8 edits in trunk

Make fast/images/missing-content-image-crash.html results consistent with internal build
https://bugs.webkit.org/show_bug.cgi?id=223399
<rdar://75443811>

Patch by Alex Christensen <achristensen@webkit.org> on 2021-03-17
Reviewed by Darin Adler.

Source/WebCore:

webkit.org is in the internal upgrade list. Add it to the open source list and make our test expectations consistent.

  • contentextensions/ContentExtensionsBackend.cpp:

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/Proxy.mm:

(TestWebKitAPI::TEST):

LayoutTests:

  • fast/images/missing-content-image-crash-expected.txt:
  • http/tests/security/contentSecurityPolicy/user-style-sheet-font-crasher-expected.txt:
  • platform/mac-wk1/http/tests/security/contentSecurityPolicy/user-style-sheet-font-crasher-expected.txt:
10:20 PM Changeset in webkit [274614] by Peng Liu
  • 6 edits in trunk

[GPUP] WebGL2RenderingContext::texImage2D() does not work with a video as the image source
https://bugs.webkit.org/show_bug.cgi?id=223294

Reviewed by Eric Carlson.

Source/WebKit:

No new tests. Fix a test failure.

  • WebProcess/GPU/media/MediaPlayerPrivateRemote.cpp:

(WebKit::MediaPlayerPrivateRemote::updateCachedState):
Add a missing piece to implement MediaPlayerPrivateRemote::videoPlaybackQualityMetrics().

LayoutTests:

  • platform/mac/TestExpectations:
  • platform/mac/media/media-source/videoplaybackquality-decompressionsession-expected.txt:
  • platform/mac/media/media-source/videoplaybackquality-decompressionsession.html:
9:38 PM Changeset in webkit [274613] by ysuzuki@apple.com
  • 8 edits in trunk/Source/WebCore

modern-media-controls css should not allocate heap memory
https://bugs.webkit.org/show_bug.cgi?id=223410

Reviewed by Devin Rousso.

This is CSS version of <https://commits.webkit.org/235444@main>. We should not allocate heap memory for
modern-media-controls.css. This patch leverages UserAgentStyleSheets mechanism to include this style
sheet in constant DATA.

  • DerivedSources-input.xcfilelist:
  • DerivedSources-output.xcfilelist:
  • DerivedSources.make:
  • WebCore.xcodeproj/project.pbxproj:
  • css/make-css-file-arrays.pl:
  • rendering/RenderThemeIOS.mm:

(WebCore::RenderThemeIOS::modernMediaControlsStyleSheet):

  • rendering/RenderThemeMac.mm:

(WebCore::RenderThemeMac::modernMediaControlsStyleSheet):

9:17 PM Changeset in webkit [274612] by Darin Adler
  • 4 edits in trunk

"multile" typo in website and one other place
https://bugs.webkit.org/show_bug.cgi?id=223213

Reviewed by Alex Christensen.

Source/WebCore:

  • features.json: Fix spelling.

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/TextManipulation.mm: Fix spelling.
9:03 PM Changeset in webkit [274611] by Lauro Moura
  • 4 edits
    4 adds in trunk/LayoutTests

[GLIB] Gardening more consistent failures

Unreviewed test gardening.

Added some WPE baselines for tests that just check if no crash
happens.

  • platform/glib/TestExpectations:
  • platform/wpe/TestExpectations:
  • platform/wpe/css1/text_properties/vertical_align-expected.txt: After r271110
  • platform/wpe/fast/editing/mutation-with-display-contents-container-crash-expected.txt: Added.
  • platform/wpe/fast/editing/paste-and-match-style-with-table-crash-expected.txt: Added.
  • platform/wpe/fast/editing/replace-selection-and-apply-style-crash-expected.txt: Added.
7:51 PM Changeset in webkit [274610] by Wenson Hsieh
  • 7 edits in trunk/Source/WebKit

[iOS] Refactor some gesture deferral logic to account for image extraction
https://bugs.webkit.org/show_bug.cgi?id=223400
<rdar://problem/75502285>

Reviewed by Tim Horton.

Refactor some logic around deferring gestures. See below for more details.

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

(-[WKContentView setUpInteraction]):

Rename a few existing deferring gestures, to better reflect that the names are deferral reasons (i.e. touch
start, touch end, or image extraction), rather than the names of the things being deferred.

(-[WKContentView deferringGestures]):
(-[WKContentView _doneDeferringTouchStart:]):
(-[WKContentView _doneDeferringTouchEnd:]):
(-[WKContentView hasSelectablePositionAtPoint:]):
(-[WKContentView textInteractionGesture:shouldBeginAtPoint:]):
(-[WKContentView deferringGestureRecognizer:shouldDeferOtherGestureRecognizer:]):
(-[WKContentView _endImageExtractionGestureDeferral:]):

  • UIProcess/ios/WKDeferringGestureRecognizer.h:

Add a property to indicate that the deferring gesture recognizer should immediately fail upon touchend.

  • UIProcess/ios/WKDeferringGestureRecognizer.mm:

(-[WKDeferringGestureRecognizer touchesEnded:withEvent:]):
(-[WKDeferringGestureRecognizer endDeferral:]):
(-[WKDeferringGestureRecognizer setDefaultPrevented:]): Deleted.

Rename -setDefaultPrevented: to -endDeferral: to decouple this terminology from Event.preventDefault() in
bindings (which is important, now that we have a new deferrer that is not associated with touch events).
Additionally, change this take an enum class instead of a BOOL to help clarify the intent of the given flag.

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

(-[WKImageExtractionGestureRecognizer setState:]):

Add support for a new image extraction gesture delegate method which informs the client that the gesture has
transitioned to Failed state.

7:45 PM Changeset in webkit [274609] by Ross Kirsling
  • 22 edits in trunk

[JSC] Error#cause should apply to WebAssembly error constructors too
https://bugs.webkit.org/show_bug.cgi?id=223404

Reviewed by Yusuke Suzuki.

JSTests:

  • stress/error-cause.js:

Run tests on WebAssembly errors too.

  • wasm/js-api/test_basic_api.js:

Fix test. This behavior was inconsistent with all other error types (and divergent from all other engines).

Source/JavaScriptCore:

Per https://www.w3.org/TR/wasm-js-api-1/#error-objects:

The constructor and properties of WebAssembly errors is as specified for NativeError.

So Error#cause should "just work" for WebAssembly.{CompileError, LinkError, RuntimeError} too.

In the process:

  • Eliminate JSWebAssemblyCompileError and kin since they add no functionality on top of ErrorInstance.
  • Add an on-by-default feature flag (belated from the last patch).
  • API/JSObjectRef.cpp:

(JSObjectMakeError):

  • runtime/AggregateErrorConstructor.cpp:

(JSC::JSC_DEFINE_HOST_FUNCTION):

  • runtime/ErrorConstructor.cpp:

(JSC::JSC_DEFINE_HOST_FUNCTION):

  • runtime/JSGlobalObject.h:
  • runtime/NativeErrorConstructor.cpp:

(JSC::NativeErrorConstructor<errorType>::constructImpl):
(JSC::NativeErrorConstructor<errorType>::callImpl):

  • runtime/OptionsList.h:
  • wasm/WasmOperations.cpp:

(JSC::Wasm::JSC_DEFINE_JIT_OPERATION):

  • wasm/js/JSWebAssemblyCompileError.cpp:

(JSC::createJSWebAssemblyCompileError):
(JSC::JSWebAssemblyCompileError::create): Deleted.
(JSC::JSWebAssemblyCompileError::JSWebAssemblyCompileError): Deleted.

  • wasm/js/JSWebAssemblyCompileError.h:

(): Deleted.

  • wasm/js/JSWebAssemblyInstance.cpp:

(JSC::JSWebAssemblyInstance::finalizeCreation):

  • wasm/js/JSWebAssemblyLinkError.cpp:

(JSC::createJSWebAssemblyLinkError):
(JSC::JSWebAssemblyLinkError::create): Deleted.
(JSC::JSWebAssemblyLinkError::JSWebAssemblyLinkError): Deleted.

  • wasm/js/JSWebAssemblyLinkError.h:

(): Deleted.

  • wasm/js/JSWebAssemblyModule.cpp:

(JSC::JSWebAssemblyModule::createStub):

  • wasm/js/JSWebAssemblyRuntimeError.cpp:

(JSC::createJSWebAssemblyRuntimeError):
(JSC::JSWebAssemblyRuntimeError::create): Deleted.
(JSC::JSWebAssemblyRuntimeError::JSWebAssemblyRuntimeError): Deleted.

  • wasm/js/JSWebAssemblyRuntimeError.h:

(): Deleted.

  • wasm/js/WebAssemblyCompileErrorConstructor.cpp:

(JSC::JSC_DEFINE_HOST_FUNCTION):

  • wasm/js/WebAssemblyLinkErrorConstructor.cpp:

(JSC::JSC_DEFINE_HOST_FUNCTION):

  • wasm/js/WebAssemblyRuntimeErrorConstructor.cpp:

(JSC::JSC_DEFINE_HOST_FUNCTION):

7:40 PM Changeset in webkit [274608] by mark.lam@apple.com
  • 4 edits
    1 add in trunk

Fix race condition in ConcurrentPtrHashSet.
https://bugs.webkit.org/show_bug.cgi?id=223241
rdar://74637896

Reviewed by Yusuke Suzuki.

JSTests:

  • stress/race-to-add-opaque-roots-in-ConcurrentPtrHashSet.js: Added.

Source/WTF:

There exists a race condition where ConcurrentPtrHashSet::resizeIfNecessary() may
not capture an entry added by ConcurrentPtrHashSet::addSlow() concurrently.

ConcurrentPtrHashSet::addSlow() currently does the following:

{

if (table->load.exchangeAdd(1) >= table->maxLoad()) (a1)

return resizeAndAdd(ptr); (a2)


for (;;) {

void* oldEntry = table->array[index].compareExchangeStrong(nullptr, ptr); (a3)
if (!oldEntry) {

if (m_table.load() != table) { (a4)

We added an entry to an old table! We need to reexecute the add on the new table.
return add(ptr);
(a5)

}
return true; (a6)

}
if (oldEntry == ptr)

return false;

... set index to next entry slot to try.

}

}

ConcurrentPtrHashSet::resizeIfNecessary() currently does the following:

{

auto locker = holdLock(m_lock); (r1)
Table* table = m_table.loadRelaxed();
if (table->load.loadRelaxed() < table->maxLoad())

return;

(r2)

std::unique_ptr<Table> newTable = Table::create(table->size * 2);
...
for (unsigned i = 0; i < table->size; ++i) { (r3)

void* ptr = table->array[i].loadRelaxed();
if (!ptr)

continue;


... copy ptr to newTable. (r4)

}


...
m_table.store(newTable.get()); (r5)
...

}

Let's say thread T1 is executing addSlow(), and thread T2 is concurrently executing
resizeIfNecessary().

Consider the following scenario (in chronological order):

  1. T2 has arrived at just before (r5) i.e. it is already done copying the entries in the old m_table.
  2. T1 executes (a3) and writes a new entry into m_table.
  3. T1 checks that the table hasn't been replaced at (a4), and sees that it has not.
  4. T1 returns at (a6), thinking that its new entry is committed.
  5. T2 sets the new m_table at (r5), thereby discarding the new entry that T1 has just written.

The fix is to set m_table to a newly introduced m_stubTable at (r2). m_stubTable
is set up with a size of 0, and load value of 10. This means it is always full.
With this, the following scenarios can play out:

Scenario 1: T2 installs m_stubTable before T1 reaches (a1)

  1. At (a1), T1 sees that m_table (which is m_stubTable) is full.
  2. T1 calls resizeAndAdd() at (a2), which ends up calling resizeIfNecessary() and blocking on the lock at (r1).

Scenario 2: T2 installs m_stubTable after T1 reaches just before (a3)

  1. T1 writes the new entry at (a3).
  2. T1 checks m_table at (a4), and sees that it has changed (now pointing to m_stubTable).
  3. T1 calls add() again at (a5) to redo the operation, and ends with scenario 1.

Scenario 3: T2 installs m_stubTable after T1 reaches (a3), but before (a4)

  1. The new entry has already been added, but we don't know if it made the cut off for T2 to copy it or not. But, it doesn't matter because ...
  2. T1 checks m_table at (a4), and sees that it has changed (now pointing to m_stubTable).
  3. T1 calls add() again at (a5) to redo the operation, and ends with scenario 1.

Scenario 4: T2 installs m_stubTable after T1 reaches (a4)

  1. The new entry has already been added.
  2. T1 checks m_table at (a4), and sees that it has NOT changed (because T2 hasn't installed m_stubTable yet). This means T2's copy loop is guaranteed to not have started yet i.e. the new entry will definitely be picked up by the copy loop.
  3. T1 returns at (a6), and all is well.
  • wtf/ConcurrentPtrHashSet.cpp:

(WTF::ConcurrentPtrHashSet::deleteOldTables):
(WTF::ConcurrentPtrHashSet::initialize):
(WTF::ConcurrentPtrHashSet::containsImplSlow const):
(WTF::ConcurrentPtrHashSet::sizeSlow const):
(WTF::ConcurrentPtrHashSet::resizeIfNecessary):
(WTF::ConcurrentPtrHashSet::Table::initializeStub):

  • wtf/ConcurrentPtrHashSet.h:
7:00 PM Changeset in webkit [274607] by ysuzuki@apple.com
  • 18 edits in trunk/Source

modern-media-controls script should not be allocated in heap
https://bugs.webkit.org/show_bug.cgi?id=223309

Reviewed by Devin Rousso.

Source/JavaScriptCore:

Add --fail-if-non-ascii flag to ensure that input files do not include non-ASCII characters.

  • Scripts/make-js-file-arrays.py:

(main):

Source/WebCore:

Previously, we are concatenating several modern-media-controls scripts into one.
But this causes significant memory overhead (~600KB). Using NSBundle's data still
allocates memory since WTF::String(CFString) allocates heap memory.

Let's use existing mechanism designed for this purpose. We serialize modern-media-controls.js into const C array in
UserAgentScriptData.cpp. UserAgentScript is a mechanism for having user-agent specific script source, and this matches
to our purpose. (for example, UserAgentStyleSheets (CSS version of that) have html.css etc.).

We also InjectedScript_*.js name for these ModernMediaControls.js scripts while this is not directly related to the
heap usage reduction of this patch.

This patch does not do the same thing for CSS of modern-media-controls since this patch's focus is script files first.

  • DerivedSources-input.xcfilelist:
  • DerivedSources-output.xcfilelist:
  • DerivedSources.make:
  • Modules/plugins/QuickTimePluginReplacement.mm:

(WebCore::quickTimePluginReplacementScript):

  • WebCore.xcodeproj/project.pbxproj:
  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::ensureMediaControlsInjectedScript):

  • rendering/RenderTheme.h:

(WebCore::RenderTheme::mediaControlsScripts):
(WebCore::RenderTheme::mediaControlsScript): Deleted.

  • rendering/RenderThemeAdwaita.cpp:

(WebCore::RenderThemeAdwaita::mediaControlsScripts):
(WebCore::RenderThemeAdwaita::mediaControlsScript): Deleted.

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

(WebCore::RenderThemeIOS::purgeCaches):
(WebCore::RenderThemeIOS::mediaControlsScripts):
(WebCore::RenderThemeIOS::mediaControlsScript): Deleted.

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

(WebCore::RenderThemeMac::purgeCaches):
(WebCore::RenderThemeMac::mediaControlsScripts):
(WebCore::RenderThemeMac::mediaControlsScript): Deleted.

  • rendering/RenderThemeWin.cpp:

(WebCore::RenderThemeWin::mediaControlsScripts):
(WebCore::RenderThemeWin::mediaControlsScript): Deleted.

  • rendering/RenderThemeWin.h:
5:30 PM Changeset in webkit [274606] by Russell Epstein
  • 1 copy in tags/Safari-611.1.21.0.9

Tag Safari-611.1.21.0.9.

5:27 PM Changeset in webkit [274605] by Robert Jenner
  • 2 edits in trunk/LayoutTests

REGRESSION (r274264): [ macOS wk2 ] compositing/video/video-border-radius.html is a flakey image failure
https://bugs.webkit.org/show_bug.cgi?id=223383

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations: Updating expectations to Pass ImageOnlyFailure while test is being reviewed.
5:25 PM Changeset in webkit [274604] by Russell Epstein
  • 8 edits in branches/safari-611.1.21.0-branch/Source

Versioning.

WebKit-7611.1.21.0.9

5:15 PM Changeset in webkit [274603] by commit-queue@webkit.org
  • 5 edits in trunk/Source

Reduce maximum HashTable entry size to 250 bytes
https://bugs.webkit.org/show_bug.cgi?id=223398

Patch by Alex Christensen <achristensen@webkit.org> on 2021-03-17
Reviewed by Yusuke Suzuki.

Source/WebCore:

This reduces memory use at runtime.

  • platform/graphics/SourceBufferPrivate.cpp:

(WebCore::SourceBufferPrivate::resetTimestampOffsetInTrackBuffers):
(WebCore::SourceBufferPrivate::resetTrackBuffers):
(WebCore::SourceBufferPrivate::updateHighestPresentationTimestamp):
(WebCore::SourceBufferPrivate::updateBufferedFromTrackBuffers):
(WebCore::SourceBufferPrivate::reenqueSamples):
(WebCore::SourceBufferPrivate::clearTrackBuffers):
(WebCore::SourceBufferPrivate::bufferedSamplesForTrackId):
(WebCore::SourceBufferPrivate::fastSeekTimeForMediaTime):
(WebCore::SourceBufferPrivate::totalTrackBufferSizeInBytes const):
(WebCore::SourceBufferPrivate::addTrackBuffer):
(WebCore::SourceBufferPrivate::updateTrackIds):
(WebCore::SourceBufferPrivate::setAllTrackBuffersNeedRandomAccess):
(WebCore::SourceBufferPrivate::didReceiveSample):

  • platform/graphics/SourceBufferPrivate.h:

Source/WTF:

  • wtf/HashTable.h:

(WTF::KeyTraits>::inlineLookup):

5:07 PM Changeset in webkit [274602] by sbarati@apple.com
  • 9 edits in trunk/Source

Determine if we have useFastJITPermissions on arm64e at runtime instead of hardcoding it as always enabled
https://bugs.webkit.org/show_bug.cgi?id=223388
<rdar://74819266>

Reviewed by Mark Lam.

Source/JavaScriptCore:

  • assembler/FastJITPermissions.h:

(threadSelfRestrictRWXToRW):
(threadSelfRestrictRWXToRX):
(useFastJITPermissions): Deleted.
(fastJITPermissionsIsSupported): Deleted.

  • assembler/LinkBuffer.cpp:

(JSC::LinkBuffer::copyCompactAndLinkCode):

  • jit/ExecutableAllocator.cpp:

(JSC::initializeJITPageReservation):

  • jit/ExecutableAllocator.h:

(JSC::performJITMemcpy):

  • runtime/JSCConfig.h:

Source/WTF:

  • wtf/PlatformEnableCocoa.h:
  • wtf/PlatformUse.h:
5:03 PM Changeset in webkit [274601] by mark.lam@apple.com
  • 10 edits in trunk/Source/JavaScriptCore

Enhance --verboseVerifyGC=true to make it easier to debug GC verifier errors.
https://bugs.webkit.org/show_bug.cgi?id=223401

Reviewed by Saam Barati.

Previously, --verboseVerifyGC=true only dumps the stack trace of the immediate code
path (in the verifier GC) that marked the object that the real GC did not. With
this patch, we'll also dump the trace of the marking chain all the way back to a
GC root. This patch also adds support for tracing the marking chain through opaque
roots.

The marking chain provided is the one that the verifier GC walked. To debug the
error, we use this info and check where the real GC deviates.

Here's an example of the new dump of a GC verifier error:

GC Verifier: ERROR cell 0x12c570500 was not marked
Object: 0x12c570500 with butterfly 0x0 (Structure 0x108eb6d10:[0x3ba8, ArrayBuffer, {}, NonArray, Proto:0x108ed7d90, Leaf]), StructureID: 15272
Cell 0x12c570500 was visited via opaque root 0x10e4b52c0 at:

1 0x100acccdc JSC::VerifierSlotVisitor::appendUnbarriered(JSC::JSCell*)
2 0x100ad0c2f void JSC::WeakBlock::specializedVisit<JSC::MarkedBlock, JSC::AbstractSlotVisitor>(JSC::MarkedBlock&, JSC::AbstractSlotVisitor&)
3 0x100abec2b void JSC::MarkedSpace::visitWeakSets<JSC::AbstractSlotVisitor>(JSC::AbstractSlotVisitor&)
4 0x100aa5167 WTF::Detail::CallableWrapper<JSC::Heap::addCoreConstraints()::$_38, void, JSC::AbstractSlotVisitor&>::call(JSC::AbstractSlotVisitor&)
5 0x100ac1411 JSC::MarkingConstraintSet::executeAllSynchronously(JSC::AbstractSlotVisitor&)
6 0x100a9bd7b JSC::Heap::verifyGC()
7 0x100a9b2f7 JSC::Heap::runEndPhase(JSC::GCConductor)
8 0x100a99434 JSC::Heap::runCurrentPhase(JSC::GCConductor, JSC::CurrentThreadState*)
9 0x100aa332d WTF::ScopedLambdaFunctor<void (JSC::CurrentThreadState&), JSC::Heap::collectInMutatorThread()::$_0>::implFunction(void*, JSC::CurrentThreadState&)
10 0x100ab8794 JSC::callWithCurrentThreadState(WTF::ScopedLambda<void (JSC::CurrentThreadState&)> const&)
11 0x100a9d2cd JSC::Heap::collectInMutatorThread()
12 0x100a99217 JSC::Heap::waitForCollection(unsigned long long)
13 0x100a98cb1 JSC::Heap::collectNow(JSC::Synchronousness, JSC::GCRequest)
14 0x100ab7b4d JSC::LocalAllocator::allocateSlowCase(JSC::Heap&, JSC::GCDeferralContext*, JSC::AllocationFailureMode)
15 0x100ec0785 void* JSC::allocateCell<JSC::JSDataView>(JSC::Heap&, unsigned long)
16 0x100ec0629 JSC::JSDataView::create(JSC::JSGlobalObject*, JSC::Structure*, WTF::RefPtr<JSC::ArrayBuffer, WTF::RawPtrTraits<JSC::ArrayBuffer>, WTF::DefaultRefDerefTraits<JSC::ArrayBuffer> >&&, unsigned int, unsigned int)
17 0x100f893d6 JSC::JSObject* JSC::constructGenericTypedArrayViewWithArguments<JSC::JSDataView>(JSC::JSGlobalObject*, JSC::Structure*, long long, unsigned int, WTF::Optional<unsigned int>)
18 0x100f731dc JSC::constructDataView(JSC::JSGlobalObject*, JSC::CallFrame*)
19 0x5e4a38a010c7
20 0x5e4a38a02095
21 0x1004888d6 vmEntryToJavaScript
22 0x100b83690 JSC::Interpreter::executeProgram(JSC::SourceCode const&, JSC::JSGlobalObject*, JSC::JSObject*)
23 0x100e39a82 JSC::evaluate(JSC::JSGlobalObject*, JSC::SourceCode const&, JSC::JSValue, WTF::NakedPtr<JSC::Exception>&)
24 0x100007606 jscmain(int, char)
25 0x10000644b main

In the real GC, opaque root0x10e4b52c0 was NOT added to the heap's opaque roots.
Opaque root 0x10e4b52c0 was added via cell 0x12c577720 at:

1 0x100ea4fc9 JSC::JSArrayBufferView::visitChildren(JSC::JSCell*, JSC::AbstractSlotVisitor&)
2 0x100acd4e9 JSC::VerifierSlotVisitor::drain()
3 0x100a9bd48 JSC::Heap::verifyGC()
4 0x100a9b2f7 JSC::Heap::runEndPhase(JSC::GCConductor)
5 0x100a99434 JSC::Heap::runCurrentPhase(JSC::GCConductor, JSC::CurrentThreadState*)
6 0x100aa332d WTF::ScopedLambdaFunctor<void (JSC::CurrentThreadState&), JSC::Heap::collectInMutatorThread()::$_0>::implFunction(void*, JSC::CurrentThreadState&)
7 0x100ab8794 JSC::callWithCurrentThreadState(WTF::ScopedLambda<void (JSC::CurrentThreadState&)> const&)
8 0x100a9d2cd JSC::Heap::collectInMutatorThread()
9 0x100a99217 JSC::Heap::waitForCollection(unsigned long long)
10 0x100a98cb1 JSC::Heap::collectNow(JSC::Synchronousness, JSC::GCRequest)
11 0x100ab7b4d JSC::LocalAllocator::allocateSlowCase(JSC::Heap&, JSC::GCDeferralContext*, JSC::AllocationFailureMode)
12 0x100ec0785 void* JSC::allocateCell<JSC::JSDataView>(JSC::Heap&, unsigned long)
13 0x100ec0629 JSC::JSDataView::create(JSC::JSGlobalObject*, JSC::Structure*, WTF::RefPtr<JSC::ArrayBuffer, WTF::RawPtrTraits<JSC::ArrayBuffer>, WTF::DefaultRefDerefTraits<JSC::ArrayBuffer> >&&, unsigned int, unsigned int)
14 0x100f893d6 JSC::JSObject* JSC::constructGenericTypedArrayViewWithArguments<JSC::JSDataView>(JSC::JSGlobalObject*, JSC::Structure*, long long, unsigned int, WTF::Optional<unsigned int>)
15 0x100f731dc JSC::constructDataView(JSC::JSGlobalObject*, JSC::CallFrame*)
16 0x5e4a38a010c7
17 0x5e4a38a02095
18 0x1004888d6 vmEntryToJavaScript
19 0x100b83690 JSC::Interpreter::executeProgram(JSC::SourceCode const&, JSC::JSGlobalObject*, JSC::JSObject*)
20 0x100e39a82 JSC::evaluate(JSC::JSGlobalObject*, JSC::SourceCode const&, JSC::JSValue, WTF::NakedPtr<JSC::Exception>&)
21 0x100007606 jscmain(int, char)
22 0x10000644b main
23 0x7fff203b4f3d start

Object: 0x12c577720 with butterfly 0x0 (Structure 0x108eb6e60:[0xe135, DataView, {}, NonArray, Proto:0x108ed7da0, Leaf]), StructureID: 57653
Cell 0x12c577720 was visited via cell 0x108b528e8 at:

1 0x100acccdc JSC::VerifierSlotVisitor::appendUnbarriered(JSC::JSCell*)
2 0x100f1623c JSC::JSObject::visitChildren(JSC::JSCell*, JSC::AbstractSlotVisitor&)
3 0x100acd4e9 JSC::VerifierSlotVisitor::drain()
4 0x100a9bd48 JSC::Heap::verifyGC()
5 0x100a9b2f7 JSC::Heap::runEndPhase(JSC::GCConductor)
6 0x100a99434 JSC::Heap::runCurrentPhase(JSC::GCConductor, JSC::CurrentThreadState*)
7 0x100aa332d WTF::ScopedLambdaFunctor<void (JSC::CurrentThreadState&), JSC::Heap::collectInMutatorThread()::$_0>::implFunction(void*, JSC::CurrentThreadState&)
8 0x100ab8794 JSC::callWithCurrentThreadState(WTF::ScopedLambda<void (JSC::CurrentThreadState&)> const&)
9 0x100a9d2cd JSC::Heap::collectInMutatorThread()
10 0x100a99217 JSC::Heap::waitForCollection(unsigned long long)
11 0x100a98cb1 JSC::Heap::collectNow(JSC::Synchronousness, JSC::GCRequest)
12 0x100ab7b4d JSC::LocalAllocator::allocateSlowCase(JSC::Heap&, JSC::GCDeferralContext*, JSC::AllocationFailureMode)
13 0x100ec0785 void* JSC::allocateCell<JSC::JSDataView>(JSC::Heap&, unsigned long)
14 0x100ec0629 JSC::JSDataView::create(JSC::JSGlobalObject*, JSC::Structure*, WTF::RefPtr<JSC::ArrayBuffer, WTF::RawPtrTraits<JSC::ArrayBuffer>, WTF::DefaultRefDerefTraits<JSC::ArrayBuffer> >&&, unsigned int, unsigned int)
15 0x100f893d6 JSC::JSObject* JSC::constructGenericTypedArrayViewWithArguments<JSC::JSDataView>(JSC::JSGlobalObject*, JSC::Structure*, long long, unsigned int, WTF::Optional<unsigned int>)
16 0x100f731dc JSC::constructDataView(JSC::JSGlobalObject*, JSC::CallFrame*)
17 0x5e4a38a010c7
18 0x5e4a38a02095
19 0x1004888d6 vmEntryToJavaScript
20 0x100b83690 JSC::Interpreter::executeProgram(JSC::SourceCode const&, JSC::JSGlobalObject*, JSC::JSObject*)
21 0x100e39a82 JSC::evaluate(JSC::JSGlobalObject*, JSC::SourceCode const&, JSC::JSValue, WTF::NakedPtr<JSC::Exception>&)
22 0x100007606 jscmain(int, char)
23 0x10000644b main

Object: 0x108b528e8 with butterfly 0x1806e93070 (Structure 0x108efb090:[0xde87, Array, {}, ArrayWithContiguous, Proto:0x108baf5e8]), StructureID: 56967
Cell 0x108b528e8 was visited via cell 0x108e8fcc0 at:

1 0x100accdd8 JSC::VerifierSlotVisitor::appendUnbarriered(JSC::JSCell*)
2 0x10070634e void JSC::CodeBlock::stronglyVisitWeakReferences<JSC::AbstractSlotVisitor>(JSC::ConcurrentJSLocker const&, JSC::AbstractSlotVisitor&)
3 0x1006eacd7 JSC::CodeBlock::visitChildren(JSC::JSCell*, JSC::AbstractSlotVisitor&)
4 0x100acd4e9 JSC::VerifierSlotVisitor::drain()
5 0x100a9bd48 JSC::Heap::verifyGC()
6 0x100a9b2f7 JSC::Heap::runEndPhase(JSC::GCConductor)
7 0x100a99434 JSC::Heap::runCurrentPhase(JSC::GCConductor, JSC::CurrentThreadState*)
8 0x100aa332d WTF::ScopedLambdaFunctor<void (JSC::CurrentThreadState&), JSC::Heap::collectInMutatorThread()::$_0>::implFunction(void*, JSC::CurrentThreadState&)
9 0x100ab8794 JSC::callWithCurrentThreadState(WTF::ScopedLambda<void (JSC::CurrentThreadState&)> const&)
10 0x100a9d2cd JSC::Heap::collectInMutatorThread()
11 0x100a99217 JSC::Heap::waitForCollection(unsigned long long)
12 0x100a98cb1 JSC::Heap::collectNow(JSC::Synchronousness, JSC::GCRequest)
13 0x100ab7b4d JSC::LocalAllocator::allocateSlowCase(JSC::Heap&, JSC::GCDeferralContext*, JSC::AllocationFailureMode)
14 0x100ec0785 void* JSC::allocateCell<JSC::JSDataView>(JSC::Heap&, unsigned long)
15 0x100ec0629 JSC::JSDataView::create(JSC::JSGlobalObject*, JSC::Structure*, WTF::RefPtr<JSC::ArrayBuffer, WTF::RawPtrTraits<JSC::ArrayBuffer>, WTF::DefaultRefDerefTraits<JSC::ArrayBuffer> >&&, unsigned int, unsigned int)
16 0x100f893d6 JSC::JSObject* JSC::constructGenericTypedArrayViewWithArguments<JSC::JSDataView>(JSC::JSGlobalObject*, JSC::Structure*, long long, unsigned int, WTF::Optional<unsigned int>)
17 0x100f731dc JSC::constructDataView(JSC::JSGlobalObject*, JSC::CallFrame*)
18 0x5e4a38a010c7
19 0x5e4a38a02095
20 0x1004888d6 vmEntryToJavaScript
21 0x100b83690 JSC::Interpreter::executeProgram(JSC::SourceCode const&, JSC::JSGlobalObject*, JSC::JSObject*)
22 0x100e39a82 JSC::evaluate(JSC::JSGlobalObject*, JSC::SourceCode const&, JSC::JSValue, WTF::NakedPtr<JSC::Exception>&)
23 0x100007606 jscmain(int, char)
24 0x10000644b main

Cell: 0x108e8fcc0 (0x108ef8c40:[0xc0e7, ProgramCodeBlock, {}, NonArray, Leaf]), StructureID: 49383
Cell 0x108e8fcc0 was visited from scan of ConservativeScan roots at:

1 0x100accaf8 JSC::VerifierSlotVisitor::append(JSC::ConservativeRoots const&)
2 0x100aa42a2 WTF::Detail::CallableWrapper<JSC::Heap::addCoreConstraints()::$_31, void, JSC::SlotVisitor&>::call(JSC::SlotVisitor&)
3 0x100ac1db2 JSC::MarkingConstraintSolver::runExecutionThread(JSC::SlotVisitor&, JSC::MarkingConstraintSolver::SchedulerPreference, WTF::ScopedLambda<WTF::Optional<unsigned int> ()>)
4 0x100a9f2de JSC::Heap::runTaskInParallel(WTF::RefPtr<WTF::SharedTask<void (JSC::SlotVisitor&)>, WTF::RawPtrTraits<WTF::SharedTask<void (JSC::SlotVisitor&)> >, WTF::DefaultRefDerefTraits<WTF::SharedTask<void (JSC::SlotVisitor&)> > >)
5 0x100ac188f JSC::MarkingConstraintSolver::execute(JSC::MarkingConstraintSolver::SchedulerPreference, WTF::ScopedLambda<WTF::Optional<unsigned int> ()>)
6 0x100ac125c JSC::MarkingConstraintSet::executeConvergenceImpl(JSC::SlotVisitor&)
7 0x100ac0f9b JSC::MarkingConstraintSet::executeConvergence(JSC::SlotVisitor&)
8 0x100a99f24 JSC::Heap::runFixpointPhase(JSC::GCConductor)
9 0x100a99418 JSC::Heap::runCurrentPhase(JSC::GCConductor, JSC::CurrentThreadState*)
10 0x100aa332d WTF::ScopedLambdaFunctor<void (JSC::CurrentThreadState&), JSC::Heap::collectInMutatorThread()::$_0>::implFunction(void*, JSC::CurrentThreadState&)
11 0x100ab8794 JSC::callWithCurrentThreadState(WTF::ScopedLambda<void (JSC::CurrentThreadState&)> const&)
12 0x100a9d2cd JSC::Heap::collectInMutatorThread()
13 0x100a99217 JSC::Heap::waitForCollection(unsigned long long)
14 0x100a98cb1 JSC::Heap::collectNow(JSC::Synchronousness, JSC::GCRequest)
15 0x100ab7b4d JSC::LocalAllocator::allocateSlowCase(JSC::Heap&, JSC::GCDeferralContext*, JSC::AllocationFailureMode)
16 0x100ec0785 void* JSC::allocateCell<JSC::JSDataView>(JSC::Heap&, unsigned long)
17 0x100ec0629 JSC::JSDataView::create(JSC::JSGlobalObject*, JSC::Structure*, WTF::RefPtr<JSC::ArrayBuffer, WTF::RawPtrTraits<JSC::ArrayBuffer>, WTF::DefaultRefDerefTraits<JSC::ArrayBuffer> >&&, unsigned int, unsigned int)
18 0x100f893d6 JSC::JSObject* JSC::constructGenericTypedArrayViewWithArguments<JSC::JSDataView>(JSC::JSGlobalObject*, JSC::Structure*, long long, unsigned int, WTF::Optional<unsigned int>)
19 0x100f731dc JSC::constructDataView(JSC::JSGlobalObject*, JSC::CallFrame*)
20 0x5e4a38a010c7
21 0x5e4a38a02095
22 0x1004888d6 vmEntryToJavaScript
23 0x100b83690 JSC::Interpreter::executeProgram(JSC::SourceCode const&, JSC::JSGlobalObject*, JSC::JSObject*)
24 0x100e39a82 JSC::evaluate(JSC::JSGlobalObject*, JSC::SourceCode const&, JSC::JSValue, WTF::NakedPtr<JSC::Exception>&)
25 0x100007606 jscmain(int, char)
26 0x10000644b main

Note that in this example, the 2nd stack trace was for an opaque root. The verifier
also noted that the opaque root (which was added for the verifier GC) was not added
for the real GC. This pointed to the bug that caused the error (this bug was fixed
in https://bugs.webkit.org/show_bug.cgi?id=223241).

Additional changes in this patch:

  1. Renamed AbstractSlotVisitor::Context to ReferrerContext.
  1. Introduced AbstractSlotVisitor::ReferrerToken, which is an abstraction for either a HeapCell*, an opaque root, or a GC root. ReferrerContext now tracks a ReferrerToken instead of a HeapCell*.
  • heap/AbstractSlotVisitor.h:

(JSC::AbstractSlotVisitor::ReferrerToken::ReferrerToken):
(JSC::AbstractSlotVisitor::ReferrerToken::operator bool const):
(JSC::AbstractSlotVisitor::ReferrerToken::operator! const):
(JSC::AbstractSlotVisitor::ReferrerToken::isHeapCell const):
(JSC::AbstractSlotVisitor::ReferrerToken::isOpaqueRoot const):
(JSC::AbstractSlotVisitor::ReferrerToken::isRootMarkReason const):
(JSC::AbstractSlotVisitor::ReferrerContext::referrer const):
(JSC::AbstractSlotVisitor::ReferrerContext::setReferrer):
(JSC::AbstractSlotVisitor::ReferrerContext::isOpaqueRootContext const):
(JSC::AbstractSlotVisitor::didAddOpaqueRoot):
(JSC::AbstractSlotVisitor::didFindOpaqueRoot):
(JSC::SetRootMarkReasonScope::SetRootMarkReasonScope):
(JSC::AbstractSlotVisitor::Context::cell const): Deleted.

  • heap/AbstractSlotVisitorInlines.h:

(JSC::ReferrerToken::ReferrerToken):
(JSC::ReferrerToken::asCell const):
(JSC::ReferrerToken::asOpaqueRoot const):
(JSC::ReferrerToken::asRootMarkReason const):
(JSC::AbstractSlotVisitor::ReferrerContext::ReferrerContext):
(JSC::AbstractSlotVisitor::ReferrerContext::~ReferrerContext):
(JSC::AbstractSlotVisitor::addOpaqueRoot):
(JSC::AbstractSlotVisitor::containsOpaqueRoot const):
(JSC::AbstractSlotVisitor::referrer const):
(JSC::AbstractSlotVisitor::Context::Context): Deleted.
(JSC::AbstractSlotVisitor::Context::~Context): Deleted.
(JSC::AbstractSlotVisitor::parentCell const): Deleted.

  • heap/Heap.cpp:

(JSC::Heap::addCoreConstraints):

  • heap/Heap.h:
  • heap/SlotVisitor.h:
  • heap/SlotVisitorMacros.h:
  • heap/VerifierSlotVisitor.cpp:

(JSC::MarkerData::MarkerData):
(JSC::VerifierSlotVisitor::MarkedBlockData::markerData const):
(JSC::VerifierSlotVisitor::PreciseAllocationData::markerData const):
(JSC::VerifierSlotVisitor::OpaqueRootData::markerData const):
(JSC::VerifierSlotVisitor::OpaqueRootData::addMarkerData):
(JSC::VerifierSlotVisitor::VerifierSlotVisitor):
(JSC::VerifierSlotVisitor::didAddOpaqueRoot):
(JSC::VerifierSlotVisitor::didFindOpaqueRoot):
(JSC::VerifierSlotVisitor::dump const):
(JSC::VerifierSlotVisitor::dumpMarkerData):
(JSC::VerifierSlotVisitor::testAndSetMarked):

  • heap/VerifierSlotVisitor.h:

(JSC::VerifierSlotVisitor::MarkerData::referrer const):
(JSC::VerifierSlotVisitor::MarkerData::stack const):

  • heap/WeakBlock.cpp:

(JSC::WeakBlock::specializedVisit):

4:47 PM Changeset in webkit [274600] by Aditya Keerthi
  • 276 edits in trunk

[iOS][FCR] Use system colors for the new appearance
https://bugs.webkit.org/show_bug.cgi?id=223303
<rdar://problem/75508598>

Reviewed by Tim Horton.

Source/WebCore:

Use system colors when painting the new controls to ensure consistency
with the rest of the system.

This patch exposes additional system colors in CSS, so that they may be
used by the UA stylesheet. Note that exposing these colors does not
increase the fingerprintable surface since, we already expose other
system colors that have the same traits.

Additionally, HAVE(OS_DARK_MODE_SUPPORT) is removed from these colors
since they are available on all PLATFORM(IOS_FAMILY).

  • css/CSSValueKeywords.in:
  • css/html.css:
  • rendering/RenderThemeIOS.mm:

(WebCore::cssValueIDSelectorList):
(WebCore::RenderThemeIOS::paintCheckbox):
(WebCore::RenderThemeIOS::paintRadio):
(WebCore::RenderThemeIOS::paintProgressBarWithFormControlRefresh):
(WebCore::RenderThemeIOS::paintMeter):
(WebCore::RenderThemeIOS::paintSliderTicks):
(WebCore::RenderThemeIOS::paintSliderTrackWithFormControlRefresh):
(WebCore::RenderThemeIOS::paintMenuListButtonDecorationsWithFormControlRefresh):

Source/WebCore/PAL:

  • pal/spi/ios/UIKitSPI.h:

Add additional system colors declarations for watchOS and tvOS.

LayoutTests:

Rebaselined tests to account for changes in color.

  • fast/forms/date/date-input-rendering-basic-expected.txt:
  • fast/forms/date/date-pseudo-elements-expected.txt:
  • fast/forms/time/time-input-rendering-basic-expected.txt:
  • platform/ios-simulator/fast/forms/auto-fill-button/hide-auto-fill-strong-password-viewable-treatment-when-form-is-reset-expected.txt:
  • platform/ios-simulator/fast/forms/auto-fill-button/input-credit-card-auto-fill-button-expected.txt:
  • platform/ios-simulator/fast/forms/auto-fill-button/input-strong-password-viewable-expected.txt:
  • platform/ios-simulator/fast/forms/datalist/datalist-searchinput-appearance-expected.txt:
  • platform/ios-simulator/fast/forms/datalist/datalist-textinput-appearance-expected.txt:
  • platform/ios-wk2/editing/input/caret-at-the-edge-of-input-expected.txt:
  • platform/ios-wk2/editing/input/reveal-caret-of-multiline-input-expected.txt:
  • platform/ios-wk2/editing/inserting/4960120-1-expected.txt:
  • platform/ios-wk2/editing/inserting/before-after-input-element-expected.txt:
  • platform/ios-wk2/editing/pasteboard/4641033-expected.txt:
  • platform/ios-wk2/editing/pasteboard/4944770-1-expected.txt:
  • platform/ios-wk2/editing/pasteboard/4944770-2-expected.txt:
  • platform/ios-wk2/editing/pasteboard/input-field-1-expected.txt:
  • platform/ios-wk2/editing/pasteboard/pasting-tabs-expected.txt:
  • platform/ios-wk2/editing/selection/4895428-3-expected.txt:
  • platform/ios-wk2/editing/selection/caret-before-select-expected.txt:
  • platform/ios-wk2/editing/selection/drag-select-1-expected.txt:
  • platform/ios-wk2/editing/selection/select-from-textfield-outwards-expected.txt:
  • platform/ios-wk2/fast/block/float/overhanging-tall-block-expected.txt:
  • platform/ios-wk2/fast/block/margin-collapse/103-expected.txt:
  • platform/ios-wk2/fast/dynamic/008-expected.txt:
  • platform/ios-wk2/fast/forms/basic-buttons-expected.txt:
  • platform/ios-wk2/fast/forms/basic-textareas-quirks-expected.txt:
  • platform/ios-wk2/fast/forms/input-appearance-preventDefault-expected.txt:
  • platform/ios-wk2/fast/forms/input-text-click-outside-expected.txt:
  • platform/ios-wk2/fast/forms/input-text-double-click-expected.txt:
  • platform/ios-wk2/fast/forms/input-text-drag-down-expected.txt:
  • platform/ios-wk2/fast/forms/input-text-option-delete-expected.txt:
  • platform/ios-wk2/fast/forms/targeted-frame-submission-expected.txt:
  • platform/ios-wk2/fast/forms/textAreaLineHeight-expected.txt:
  • platform/ios-wk2/fast/forms/textarea-align-expected.txt:
  • platform/ios-wk2/fast/forms/textarea-placeholder-visibility-1-expected.txt:
  • platform/ios-wk2/fast/forms/textarea-placeholder-visibility-2-expected.txt:
  • platform/ios-wk2/fast/forms/textarea-scroll-height-expected.txt:
  • platform/ios-wk2/fast/forms/textarea-setinnerhtml-expected.txt:
  • platform/ios-wk2/fast/hidpi/resize-corner-hidpi-expected.txt:
  • platform/ios-wk2/fast/overflow/scroll-nested-positioned-layer-in-overflow-expected.txt:
  • platform/ios-wk2/fast/overflow/scrollRevealButton-expected.txt:
  • platform/ios-wk2/fast/parser/document-write-option-expected.txt:
  • platform/ios-wk2/fast/parser/entity-comment-in-textarea-expected.txt:
  • platform/ios-wk2/fast/parser/open-comment-in-textarea-expected.txt:
  • platform/ios-wk2/fast/spatial-navigation/snav-multiple-select-focusring-expected.txt:
  • platform/ios-wk2/fast/text/international/rtl-white-space-pre-wrap-expected.txt:
  • platform/ios-wk2/fast/text/international/unicode-bidi-plaintext-in-textarea-expected.txt:
  • platform/ios-wk2/fast/transforms/transformed-focused-text-input-expected.txt:
  • platform/ios-wk2/imported/w3c/web-platform-tests/css/css-pseudo/file-chooser-button-display-toggle-crash.tentative-expected.txt:
  • platform/ios-wk2/imported/w3c/web-platform-tests/html/rendering/widgets/select-wrap-no-spill.optional-expected.txt:
  • platform/ios/css3/flexbox/button-expected.txt:
  • platform/ios/editing/pasteboard/4806874-expected.txt:
  • platform/ios/editing/selection/3690703-2-expected.txt:
  • platform/ios/editing/selection/3690703-expected.txt:
  • platform/ios/editing/selection/3690719-expected.txt:
  • platform/ios/editing/selection/4397952-expected.txt:
  • platform/ios/editing/selection/4975120-expected.txt:
  • platform/ios/editing/selection/5240265-expected.txt:
  • platform/ios/editing/selection/replaced-boundaries-3-expected.txt:
  • platform/ios/editing/selection/select-box-expected.txt:
  • platform/ios/editing/selection/select-element-paragraph-boundary-expected.txt:
  • platform/ios/editing/selection/selection-button-text-expected.txt:
  • platform/ios/fast/block/float/032-expected.txt:
  • platform/ios/fast/block/float/float-avoidance-expected.txt:
  • platform/ios/fast/block/positioning/inline-block-relposition-expected.txt:
  • platform/ios/fast/css/continuationCrash-expected.txt:
  • platform/ios/fast/css/focus-ring-exists-for-search-field-expected.txt:
  • platform/ios/fast/css/input-search-padding-expected.txt:
  • platform/ios/fast/css/line-height-expected.txt:
  • platform/ios/fast/css/margin-top-bottom-dynamic-expected.txt:
  • platform/ios/fast/css/rtl-ordering-expected.txt:
  • platform/ios/fast/css/text-overflow-input-expected.txt:
  • platform/ios/fast/css/text-transform-select-expected.txt:
  • platform/ios/fast/dom/HTMLTableColElement/resize-table-using-col-width-expected.txt:
  • platform/ios/fast/dom/HTMLTextAreaElement/reset-textarea-expected.txt:
  • platform/ios/fast/dynamic/positioned-movement-with-positioned-children-expected.txt:
  • platform/ios/fast/events/context-no-deselect-expected.txt:
  • platform/ios/fast/forms/001-expected.txt:
  • platform/ios/fast/forms/003-expected.txt:
  • platform/ios/fast/forms/004-expected.txt:
  • platform/ios/fast/forms/auto-fill-button/input-auto-fill-button-expected.txt:
  • platform/ios/fast/forms/auto-fill-button/input-contacts-auto-fill-button-expected.txt:
  • platform/ios/fast/forms/auto-fill-button/input-strong-password-auto-fill-button-expected.txt:
  • platform/ios/fast/forms/basic-inputs-expected.txt:
  • platform/ios/fast/forms/basic-selects-expected.txt:
  • platform/ios/fast/forms/basic-textareas-expected.txt:
  • platform/ios/fast/forms/blankbuttons-expected.txt:
  • platform/ios/fast/forms/box-shadow-override-expected.txt:
  • platform/ios/fast/forms/button-align-expected.txt:
  • platform/ios/fast/forms/button-cannot-be-nested-expected.txt:
  • platform/ios/fast/forms/button-generated-content-expected.txt:
  • platform/ios/fast/forms/button-positioned-expected.txt:
  • platform/ios/fast/forms/button-sizes-expected.txt:
  • platform/ios/fast/forms/button-style-color-expected.txt:
  • platform/ios/fast/forms/button-table-styles-expected.txt:
  • platform/ios/fast/forms/button-text-transform-expected.txt:
  • platform/ios/fast/forms/button-white-space-expected.txt:
  • platform/ios/fast/forms/control-clip-expected.txt:
  • platform/ios/fast/forms/control-clip-overflow-expected.txt:
  • platform/ios/fast/forms/control-restrict-line-height-expected.txt:
  • platform/ios/fast/forms/disabled-select-change-index-expected.txt:
  • platform/ios/fast/forms/encoding-test-expected.txt:
  • platform/ios/fast/forms/fieldset-align-expected.txt:
  • platform/ios/fast/forms/file/file-input-direction-expected.txt:
  • platform/ios/fast/forms/file/file-input-disabled-expected.txt:
  • platform/ios/fast/forms/floating-textfield-relayout-expected.txt:
  • platform/ios/fast/forms/form-element-geometry-expected.txt:
  • platform/ios/fast/forms/formmove3-expected.txt:
  • platform/ios/fast/forms/hidden-listbox-expected.txt:
  • platform/ios/fast/forms/input-align-expected.txt:
  • platform/ios/fast/forms/input-appearance-bkcolor-expected.txt:
  • platform/ios/fast/forms/input-appearance-default-bkcolor-expected.txt:
  • platform/ios/fast/forms/input-appearance-disabled-expected.txt:
  • platform/ios/fast/forms/input-appearance-focus-expected.txt:
  • platform/ios/fast/forms/input-appearance-height-expected.txt:
  • platform/ios/fast/forms/input-appearance-selection-expected.txt:
  • platform/ios/fast/forms/input-appearance-visibility-expected.txt:
  • platform/ios/fast/forms/input-appearance-width-expected.txt:
  • platform/ios/fast/forms/input-button-sizes-expected.txt:
  • platform/ios/fast/forms/input-disabled-color-expected.txt:
  • platform/ios/fast/forms/input-double-click-selection-gap-bug-expected.txt:
  • platform/ios/fast/forms/input-field-text-truncated-expected.txt:
  • platform/ios/fast/forms/input-placeholder-visibility-1-expected.txt:
  • platform/ios/fast/forms/input-placeholder-visibility-3-expected.txt:
  • platform/ios/fast/forms/input-spaces-expected.txt:
  • platform/ios/fast/forms/input-table-expected.txt:
  • platform/ios/fast/forms/input-text-click-inside-expected.txt:
  • platform/ios/fast/forms/input-text-scroll-left-on-blur-expected.txt:
  • platform/ios/fast/forms/input-text-self-emptying-click-expected.txt:
  • platform/ios/fast/forms/input-type-text-min-width-expected.txt:
  • platform/ios/fast/forms/input-value-expected.txt:
  • platform/ios/fast/forms/input-width-expected.txt:
  • platform/ios/fast/forms/listbox-bidi-align-expected.txt:
  • platform/ios/fast/forms/listbox-hit-test-zoomed-expected.txt:
  • platform/ios/fast/forms/listbox-scrollbar-incremental-load-expected.txt:
  • platform/ios/fast/forms/listbox-width-change-expected.txt:
  • platform/ios/fast/forms/menulist-clip-expected.txt:
  • platform/ios/fast/forms/menulist-deselect-update-expected.txt:
  • platform/ios/fast/forms/menulist-narrow-width-expected.txt:
  • platform/ios/fast/forms/menulist-no-overflow-expected.txt:
  • platform/ios/fast/forms/menulist-option-wrap-expected.txt:
  • platform/ios/fast/forms/menulist-restrict-line-height-expected.txt:
  • platform/ios/fast/forms/menulist-separator-painting-expected.txt:
  • platform/ios/fast/forms/menulist-style-color-expected.txt:
  • platform/ios/fast/forms/menulist-width-change-expected.txt:
  • platform/ios/fast/forms/minWidthPercent-expected.txt:
  • platform/ios/fast/forms/number/number-appearance-rtl-expected.txt:
  • platform/ios/fast/forms/number/number-appearance-spinbutton-disabled-readonly-expected.txt:
  • platform/ios/fast/forms/number/number-appearance-spinbutton-layer-expected.txt:
  • platform/ios/fast/forms/option-script-expected.txt:
  • platform/ios/fast/forms/option-strip-whitespace-expected.txt:
  • platform/ios/fast/forms/option-text-clip-expected.txt:
  • platform/ios/fast/forms/placeholder-pseudo-style-expected.txt:
  • platform/ios/fast/forms/plaintext-mode-2-expected.txt:
  • platform/ios/fast/forms/search-cancel-button-style-sharing-expected.txt:
  • platform/ios/fast/forms/search-display-none-cancel-button-expected.txt:
  • platform/ios/fast/forms/search-input-rtl-expected.txt:
  • platform/ios/fast/forms/select-align-expected.txt:
  • platform/ios/fast/forms/select-baseline-expected.txt:
  • platform/ios/fast/forms/select-block-background-expected.txt:
  • platform/ios/fast/forms/select-change-listbox-size-expected.txt:
  • platform/ios/fast/forms/select-change-listbox-to-popup-expected.txt:
  • platform/ios/fast/forms/select-change-popup-to-listbox-expected.txt:
  • platform/ios/fast/forms/select-dirty-parent-pref-widths-expected.txt:
  • platform/ios/fast/forms/select-disabled-appearance-expected.txt:
  • platform/ios/fast/forms/select-element-focus-ring-expected.txt:
  • platform/ios/fast/forms/select-empty-option-height-expected.txt:
  • platform/ios/fast/forms/select-initial-position-expected.txt:
  • platform/ios/fast/forms/select-item-background-clip-expected.txt:
  • platform/ios/fast/forms/select-list-box-with-height-expected.txt:
  • platform/ios/fast/forms/select-non-native-rendering-direction-expected.txt:
  • platform/ios/fast/forms/select-selected-expected.txt:
  • platform/ios/fast/forms/select-style-expected.txt:
  • platform/ios/fast/forms/select-visual-hebrew-expected.txt:
  • platform/ios/fast/forms/select-writing-direction-natural-expected.txt:
  • platform/ios/fast/forms/select/optgroup-rendering-expected.txt:
  • platform/ios/fast/forms/selectlist-minsize-expected.txt:
  • platform/ios/fast/forms/stuff-on-my-optgroup-expected.txt:
  • platform/ios/fast/forms/tabbing-input-iframe-expected.txt:
  • platform/ios/fast/forms/textarea-placeholder-pseudo-style-expected.txt:
  • platform/ios/fast/forms/textarea-scrollbar-expected.txt:
  • platform/ios/fast/forms/textarea-scrolled-type-expected.txt:
  • platform/ios/fast/forms/textarea-width-expected.txt:
  • platform/ios/fast/forms/textfield-focus-ring-expected.txt:
  • platform/ios/fast/forms/textfield-overflow-expected.txt:
  • platform/ios/fast/frames/take-focus-from-iframe-expected.txt:
  • platform/ios/fast/html/details-no-summary4-expected.txt:
  • platform/ios/fast/html/details-open-javascript-expected.txt:
  • platform/ios/fast/html/details-open2-expected.txt:
  • platform/ios/fast/html/details-open4-expected.txt:
  • platform/ios/fast/html/details-replace-summary-child-expected.txt:
  • platform/ios/fast/html/details-replace-text-expected.txt:
  • platform/ios/fast/html/keygen-expected.txt:
  • platform/ios/fast/invalid/014-expected.txt:
  • platform/ios/fast/lists/dynamic-marker-crash-expected.txt:
  • platform/ios/fast/overflow/overflow-x-y-expected.txt:
  • platform/ios/fast/replaced/replaced-breaking-expected.txt:
  • platform/ios/fast/replaced/replaced-breaking-mixture-expected.txt:
  • platform/ios/fast/replaced/three-selects-break-expected.txt:
  • platform/ios/fast/replaced/width100percent-button-expected.txt:
  • platform/ios/fast/replaced/width100percent-menulist-expected.txt:
  • platform/ios/fast/replaced/width100percent-searchfield-expected.txt:
  • platform/ios/fast/replaced/width100percent-textarea-expected.txt:
  • platform/ios/fast/replaced/width100percent-textfield-expected.txt:
  • platform/ios/fast/selectors/064-expected.txt:
  • platform/ios/fast/table/append-cells2-expected.txt:
  • platform/ios/fast/table/colspanMinWidth-expected.txt:
  • platform/ios/fast/table/remove-td-display-none-expected.txt:
  • platform/ios/fast/table/spanOverlapRepaint-expected.txt:
  • platform/ios/fast/table/text-field-baseline-expected.txt:
  • platform/ios/fast/text/drawBidiText-expected.txt:
  • platform/ios/fast/text/international/bidi-listbox-atsui-expected.txt:
  • platform/ios/fast/text/international/bidi-listbox-expected.txt:
  • platform/ios/fast/text/international/bidi-menulist-expected.txt:
  • platform/ios/fast/text/international/hindi-spacing-expected.txt:
  • platform/ios/fast/text/international/pop-up-button-text-alignment-and-direction-expected.txt:
  • platform/ios/imported/w3c/web-platform-tests/selection/selection-select-all-move-input-crash-expected.txt:
  • platform/ios/media/controls-styling-strict-expected.txt:
  • platform/ios/svg/custom/foreign-object-skew-expected.txt:
  • platform/ios/svg/custom/inline-svg-in-xhtml-expected.txt:
  • platform/ios/svg/hixie/mixed/003-expected.txt:
  • platform/ios/tables/mozilla/bugs/45621-expected.txt:
  • platform/ios/tables/mozilla/bugs/bug1188-expected.txt:
  • platform/ios/tables/mozilla/bugs/bug12384-expected.txt:
  • platform/ios/tables/mozilla/bugs/bug1318-expected.txt:
  • platform/ios/tables/mozilla/bugs/bug138725-expected.txt:
  • platform/ios/tables/mozilla/bugs/bug18359-expected.txt:
  • platform/ios/tables/mozilla/bugs/bug194024-expected.txt:
  • platform/ios/tables/mozilla/bugs/bug24200-expected.txt:
  • platform/ios/tables/mozilla/bugs/bug2479-2-expected.txt:
  • platform/ios/tables/mozilla/bugs/bug2479-3-expected.txt:
  • platform/ios/tables/mozilla/bugs/bug2479-4-expected.txt:
  • platform/ios/tables/mozilla/bugs/bug26178-expected.txt:
  • platform/ios/tables/mozilla/bugs/bug28928-expected.txt:
  • platform/ios/tables/mozilla/bugs/bug29326-expected.txt:
  • platform/ios/tables/mozilla/bugs/bug30559-expected.txt:
  • platform/ios/tables/mozilla/bugs/bug30692-expected.txt:
  • platform/ios/tables/mozilla/bugs/bug33855-expected.txt:
  • platform/ios/tables/mozilla/bugs/bug39209-expected.txt:
  • platform/ios/tables/mozilla/bugs/bug4382-expected.txt:
  • platform/ios/tables/mozilla/bugs/bug4429-expected.txt:
  • platform/ios/tables/mozilla/bugs/bug44505-expected.txt:
  • platform/ios/tables/mozilla/bugs/bug4527-expected.txt:
  • platform/ios/tables/mozilla/bugs/bug46368-1-expected.txt:
  • platform/ios/tables/mozilla/bugs/bug46368-2-expected.txt:
  • platform/ios/tables/mozilla/bugs/bug51037-expected.txt:
  • platform/ios/tables/mozilla/bugs/bug51727-expected.txt:
  • platform/ios/tables/mozilla/bugs/bug52505-expected.txt:
  • platform/ios/tables/mozilla/bugs/bug52506-expected.txt:
  • platform/ios/tables/mozilla/bugs/bug55545-expected.txt:
  • platform/ios/tables/mozilla/bugs/bug59354-expected.txt:
  • platform/ios/tables/mozilla/bugs/bug60749-expected.txt:
  • platform/ios/tables/mozilla/bugs/bug68912-expected.txt:
  • platform/ios/tables/mozilla/bugs/bug7342-expected.txt:
  • platform/ios/tables/mozilla/bugs/bug92647-2-expected.txt:
  • platform/ios/tables/mozilla/bugs/bug96334-expected.txt:
  • platform/ios/tables/mozilla/bugs/bug99948-expected.txt:
  • platform/ios/tables/mozilla/collapsing_borders/bug41262-4-expected.txt:
  • platform/ios/tables/mozilla/core/margins-expected.txt:
  • platform/ios/tables/mozilla/dom/tableDom-expected.txt:
  • platform/ios/tables/mozilla/other/move_row-expected.txt:
  • platform/ios/tables/mozilla_expected_failures/bugs/bug1725-expected.txt:
  • platform/ios/tables/mozilla_expected_failures/bugs/bug2479-5-expected.txt:
  • platform/ios/tables/mozilla_expected_failures/bugs/bug58402-2-expected.txt:
  • platform/ios/tables/mozilla_expected_failures/bugs/bug92647-1-expected.txt:
  • platform/ios/tables/mozilla_expected_failures/collapsing_borders/bug41262-5-expected.txt:
  • platform/ios/tables/mozilla_expected_failures/collapsing_borders/bug41262-6-expected.txt:
  • platform/ios/transforms/2d/zoom-menulist-expected.txt:
  • platform/ios/transforms/3d/general/perspective-non-layer-expected.txt:
4:47 PM Changeset in webkit [274599] by Alan Coon
  • 1 copy in tags/Safari-611.1.21.1.12

Tag Safari-611.1.21.1.12.

4:47 PM Changeset in webkit [274598] by Russell Epstein
  • 1 copy in tags/Safari-611.1.21.0.8

Tag Safari-611.1.21.0.8.

4:12 PM Changeset in webkit [274597] by Simon Fraser
  • 8 edits
    2 adds in trunk

Avoid unnecessary repaints when transforms change
https://bugs.webkit.org/show_bug.cgi?id=223307

Reviewed by Zalan Bujtas.

Source/WebCore:

RenderElement::repaintBeforeStyleChange() issues repaints when transforms, opacity
or filters change because the layer might disappear, but we know that this only happens
if the style changes between having a transform/filter/non-1 opacity and not.

Transform changes in general repaint via layout (the RenderLayer gets setLayerNeedsFullRepaint()
called on it). Opacity and filter changes repaint by virtue of a RepaintLayer style diff.

This reduces some repaint calls in the MotionMark leaves test.

This code is a mess and dates from ancient times (r7675); it doens't know about self-painting
layers, and duplicates work done in RenderLayerModelObject::styleDidChange() when a renderer
loses its layer, but that's too much to change now.

Test: fast/repaint/transform-change-repaint.html

  • rendering/RenderBox.h:
  • rendering/RenderBoxModelObject.h:
  • rendering/RenderElement.cpp:

(WebCore::RenderElement::repaintBeforeStyleChange):

  • rendering/RenderElement.h:

(WebCore::RenderElement::createsGroupForStyle):

  • rendering/style/RenderStyle.h:

(WebCore::RenderStyle::hasOpacity const):

  • style/StyleAdjuster.cpp:

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

LayoutTests:

  • fast/repaint/transform-change-repaint-expected.txt: Added.
  • fast/repaint/transform-change-repaint.html: Added.
3:59 PM Changeset in webkit [274596] by commit-queue@webkit.org
  • 7 edits in trunk

[css-grid] Incorrect track sizing when using relative sized items in 'auto' column tracks
https://bugs.webkit.org/show_bug.cgi?id=191627

Patch by Ziran Sun <Ziran Sun> on 2021-03-17
Reviewed by Javier Fernandez.

LayoutTests/imported/w3c:

Updated expectation file for test grid-self-baseline-not-applied-if-sizing-cyclic-dependency-001.html.
All sub-tests in this test file are now all passed.

  • web-platform-tests/css/css-grid/alignment/grid-self-baseline-not-applied-if-sizing-cyclic-dependency-001-expected.txt:

Source/WebCore:

Containing block for a grid item is the grid area it's located in. During the GridTrackSizingAlgorithm,
we determine that this item has a relative size (percent in this case) and that the grid area is still
indefinite. Hence, we set nullopt for the grid area width and mark the item for layout. During the item's
layout, we call this RenderBox::containingBlockLogicalWidthForContent to determine the available height.
However, this method checks the containing block's width if the overridingContentLogicalWidth is nullopt,
which is incorrect for grid items. We should never use the grid container for resolving grid item's size.

This change is to return 0_lu for grid item when overridingContainingBlockContentLogicalHeight() or
overridingContainingBlockContentLogicalWidth() returns nullopt rather than use containing block's width
or height.

  • rendering/RenderBox.cpp:

(WebCore::RenderBox::containingBlockLogicalWidthForContent const):

LayoutTests:

3:40 PM Changeset in webkit [274595] by Robert Jenner
  • 2 edits in trunk/LayoutTests

[ macOS wk2 ] media/track/track-cue-css.html is a flakey Image failure
https://bugs.webkit.org/show_bug.cgi?id=223387

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations: Updating test results to Pass ImageOnlyFailure while test is reviewed.
3:33 PM Changeset in webkit [274594] by Chris Dumez
  • 2 edits in trunk/Source/WTF

Memory limit per tab shrinks as you open tabs in the same WebContent process (may affect Google Drive, Dropbox, etc.)
https://bugs.webkit.org/show_bug.cgi?id=223394
<rdar://75499387>

Reviewed by Geoffrey Garen.

Make sure the process memory limit scales with the number of web pages it holds (without cap on the number of
pages).

  • wtf/MemoryPressureHandler.cpp:

(WTF::thresholdForMemoryKillOfInactiveProcess):

2:59 PM Changeset in webkit [274593] by Devin Rousso
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: use native datetime-local picker for changing expires value in cookie popover
https://bugs.webkit.org/show_bug.cgi?id=209389

Reviewed by BJ Burg.

r259173 already made it so that the <input> for Expires used datetime-local, so nothing
needs to be changed to adopt that. We still want to keep the "input" event listener that
parses and validates the value (or placeholder) of the <input type="datetime-local">
because dates in the past should be considered invalid.

  • UserInterface/Views/CookiePopover.js:

(WI.CookiePopover.prototype.show): Add step = 1 so that the seconds field is shown.
(WI.CookiePopover.prototype.show.formatDate): Added.
(WI.CookiePopover.prototype.show.formatDate.pad): Added.

  • UserInterface/Views/CookiePopover.css: Remove the FIXME comment.
2:37 PM Changeset in webkit [274592] by BJ Burg
  • 6 edits
    1 add in trunk/Source/WebInspectorUI

Web Inspector: add GridOverlay diagnostic event and related hooks
https://bugs.webkit.org/show_bug.cgi?id=223256
<rdar://problem/75478239>

Patch by Razvan Caliman <Razvan Caliman> on 2021-03-17
Reviewed by BJ Burg.

Add instrumentation to log telemetry for the CSS Grid Inspector.

We want to answer these questions:

  • How do users prefer to toggle the overlay, in-context from grid badges in the DOM tree or from the aggregated grid node overlay list in Layout sidebar panel?
  • Which overlay options are most used? Did we pick good defaults or do users prefer others?
  • UserInterface/Base/Main.js:

(WI.contentLoaded):

  • UserInterface/Controllers/GridOverlayDiagnosticEventRecorder.js: Added.

(WI.GridOverlayDiagnosticEventRecorder):
(WI.GridOverlayDiagnosticEventRecorder.prototype.setup):
(WI.GridOverlayDiagnosticEventRecorder.prototype.teardown):
(WI.GridOverlayDiagnosticEventRecorder.prototype._handleGridOverlayShown):

  • UserInterface/Controllers/OverlayManager.js:

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

  • UserInterface/Main.html:
  • UserInterface/Views/CSSGridSection.js:

(WI.CSSGridSection.prototype._handleToggleAllCheckboxChanged):
(WI.CSSGridSection.prototype.layout):

  • UserInterface/Views/DOMTreeElement.js:

(WI.DOMTreeElement.prototype._gridBadgeClicked):

2:25 PM Changeset in webkit [274591] by Peng Liu
  • 6 edits in trunk

[GPUP] Some media-source tests fail/timeout when media in GPU Process is enabled
https://bugs.webkit.org/show_bug.cgi?id=221686

Reviewed by Jer Noble.

Source/WebKit:

For a MediaPlayerPrivateRemote, if it is owned by a video element with a reference
to a MediaSource, it needs to use the duration information from the MediaSource.

Covered by existing tests.

  • WebProcess/GPU/media/MediaPlayerPrivateRemote.cpp:

(WebKit::MediaPlayerPrivateRemote::durationMediaTime const):

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

LayoutTests:

  • platform/mac/TestExpectations:
2:24 PM Changeset in webkit [274590] by Matt Lewis
  • 3 edits in trunk/Tools

Add AppleSilicon and Debug WK2 Support to EWS
https://bugs.webkit.org/show_bug.cgi?id=223393

Reviewed by Aakash Jain.

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

(StatusBubble):

  • CISupport/ews-build/config.json:
2:14 PM Changeset in webkit [274589] by eric.carlson@apple.com
  • 6 edits in trunk

[GPUP] media/video-set-rate-from-pause.html fails
https://bugs.webkit.org/show_bug.cgi?id=223386
<rdar://problem/75533945>

Reviewed by Jer Noble.

Source/WebCore:

No new tests, this fixes an existing test.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::setPlaybackRate): Remove the m_player->rate() != rate
check before setting player rate, there may be a change in flight and the test
is already done in the player itself.

  • platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp:

(WebCore::MediaPlayerPrivateAVFoundation::invalidateCachedDuration): Drive-by fix:
update logging.

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

(WebCore::MediaPlayerPrivateAVFoundationObjC::setPlayerRate): Don't set m_cachedRate,
it is already done in the rateDidChange callback from AVFoundation.
(WebCore::MediaPlayerPrivateAVFoundationObjC::rateDidChange): Drive-by fix: do nothing
when the rate hasn't changed.

LayoutTests:

  • platform/wk2/TestExpectations: Remove test that passes.
2:12 PM Changeset in webkit [274588] by jer.noble@apple.com
  • 3 edits in trunk/Source/WebCore

Add logging to FullscreenManager.
https://bugs.webkit.org/show_bug.cgi?id=223389

Reviewed by Eric Carlson.

  • dom/FullscreenManager.cpp:

(WebCore::logClassName):
(WebCore::logChannel):
(WebCore::m_logIdentifier):
(WebCore::FullscreenManager::requestFullscreenForElement):
(WebCore::FullscreenManager::cancelFullscreen):
(WebCore::FullscreenManager::exitFullscreen):
(WebCore::FullscreenManager::willEnterFullscreen):
(WebCore::FullscreenManager::didEnterFullscreen):
(WebCore::FullscreenManager::willExitFullscreen):
(WebCore::FullscreenManager::didExitFullscreen):
(WebCore::FullscreenManager::adjustFullscreenElementOnNodeRemoval):

  • dom/FullscreenManager.h:
1:47 PM Changeset in webkit [274587] by Jonathan Bedard
  • 7 edits in trunk/Tools

[webkitscmpy] Support git-svn in remote mocks
https://bugs.webkit.org/show_bug.cgi?id=223397
<rdar://problem/75541426>

Reviewed by Dewei Zhu.

  • Scripts/libraries/webkitscmpy/setup.py: Bump version.
  • Scripts/libraries/webkitscmpy/webkitscmpy/init.py: Ditto.
  • Scripts/libraries/webkitscmpy/webkitscmpy/mocks/remote/bitbucket.py:

(BitBucket.request): Add git-svn tag.

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

(GitHub._commit_response): Add git-svn tag.

  • Scripts/libraries/webkitscmpy/webkitscmpy/mocks/svn-repo.json: Add hashes to mock svn repo.
  • Scripts/libraries/webkitscmpy/webkitscmpy/test/git_unittest.py:

(TestGitHub.test_commit_hash):
(TestGitHub.test_commit_revision):
(TestBitBucket.test_commit_hash):
(TestBitBucket.test_commit_revision):

1:46 PM Changeset in webkit [274586] by commit-queue@webkit.org
  • 13 edits
    4 adds in trunk

Show media session image artwork in Now Playing information pane.
https://bugs.webkit.org/show_bug.cgi?id=223118
<rdar://problem/75360166>

Patch by Jean-Yves Avenard <Jean-Yves Avenard> on 2021-03-17
Reviewed by Eric Carlson.

Source/WebCore:

Test: fast/mediasession/metadata/artworkdownload.html
Manually tested for Now Playing system integration.

  • Modules/mediasession/MediaMetadata.cpp:

(WebCore::ArtworkImageLoader::ArtworkImageLoader): Implementation of new ArtworkImageLoader class.
(WebCore::ArtworkImageLoader::~ArtworkImageLoader):
(WebCore::ArtworkImageLoader::requestImageResource):
(WebCore::ArtworkImageLoader::notifyFinished):
(WebCore::MediaMetadata::setMediaSession):
(WebCore::MediaMetadata::resetMediaSession):
(WebCore::MediaMetadata::setArtwork):
(WebCore::MediaMetadata::refreshArtworkImage):
(WebCore::MediaMetadata::setArtworkImage): Make use of new ArtworkImageLoader class.

  • Modules/mediasession/MediaMetadata.h: Add new ArtworkImageLoader class. Allows to download from a given URL in relation to a given Document.

(WebCore::MediaMetadata::artworkSrc const):
(WebCore::MediaMetadata::artworkImage const):

  • Modules/mediasession/MediaSession.cpp:

(WebCore::MediaSession::setActionHandler): fix whitespace (automatic).
(WebCore::MediaSession::document const): Add method, used by MediaMetadata

  • Modules/mediasession/MediaSession.h:
  • html/MediaElementSession.cpp:

(WebCore::MediaElementSession::wirelessVideoPlaybackDisabled const): fix whitespace (automatic).
(WebCore::MediaElementSession::mediaEngineUpdated): fix whitespace (automatic).
(WebCore::MediaElementSession::didReceiveRemoteControlCommand): fix whitespace (automatic).
(WebCore::MediaElementSession::nowPlayingInfo const): Add artwork to NowPlayingInfo struct.

  • html/MediaElementSession.h: Add method, used by MediaMetadata
  • platform/audio/NowPlayingInfo.h: Add NowPlayingInfoArtwork struct.

(WebCore::NowPlayingInfoArtwork::operator== const):
(WebCore::NowPlayingInfoArtwork::operator!= const):
(WebCore::NowPlayingInfoArtwork::encode const):
(WebCore::NowPlayingInfoArtwork::decode):
(WebCore::NowPlayingInfo::operator== const):
(WebCore::NowPlayingInfo::operator!= const):
(WebCore::NowPlayingInfo::encode const):
(WebCore::NowPlayingInfo::decode):

  • platform/audio/cocoa/MediaSessionManagerCocoa.mm: Add artwork image to CFDictionary

(WebCore::MediaSessionManagerCocoa::setNowPlayingInfo):
(WebCore::MediaSessionManagerCocoa::updateNowPlayingInfo):

  • testing/Internals.cpp: Add private interface to test ArtworkImageLoader class.

(WebCore::Internals::~Internals): Reject pending ArtworkImageLoader promise if any.
(WebCore::Internals::grabNextMediaStreamTrackFrame): Add missing move.
(WebCore::Internals::loadArtworkImage): New method to load an image.

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

LayoutTests:

  • fast/mediasession/metadata/artworkdownload-expected.txt: Added.
  • fast/mediasession/metadata/artworkdownload.html: Added.
1:42 PM Changeset in webkit [274585] by dino@apple.com
  • 5 edits in trunk/Source/ThirdParty/ANGLE

ANGLE Metal fixups for program generation, readPixels
https://bugs.webkit.org/show_bug.cgi?id=223260

Patch by Kyle Piddington <Kyle Piddington> on 2021-03-17
Reviewed by Dean Jackson.

This diff fixes the following tests:
webgl/2.0.0/conformance2/glsl3/texture-offset-uniform-texture-coordinate.html Is fixed by dropping 'thread' qualifiers on our intermediate texture sampling helper functions. Previously, any uniforms used in sampling textures would have had issues with their namespace.
webgl/2.0.0/conformance2/reading/read-pixels-pack-parameters.html is fixed by correcting an issue with reading from outside the framebuffer. ANGLE Metal was previously reading to the start of the output array, rather than a proper offset.
webgl/2.0.0/conformance2/glsl3/array-equality.html is fixed by adding additional equality functions for handling arrays of structs.

  • src/compiler/translator/TranslatorMetalDirect/EmitMetal.cpp:

(GetOperatorString):

  • src/compiler/translator/TranslatorMetalDirect/ProgramPrelude.cpp:
  • src/libANGLE/renderer/metal/FrameBufferMtl.mm:

(rx::FramebufferMtl::readPixels):

1:22 PM Changeset in webkit [274584] by Russell Epstein
  • 3 edits in branches/safari-611.1.21.1-branch/Source/WebCore

Cherry-pick r274573. rdar://problem/75538214

Degraded ScriptProcessorNode performance/quality for (14.0.3+ and iOS 14.4.1+)
https://bugs.webkit.org/show_bug.cgi?id=223380

Reviewed by Geoffrey Garen.

By extending the scope of the lock in ScriptProcessorNode::process(), r273542 essentially
disabled double-buffering and thus negatively impacted rendering quality.

To address the issue, we now have 2 locks, one per rendering buffer (since we're using
double buffering) and only grab the lock we require when interacting with the buffers
for this index. This maintains thread-safety while re-enabling double buffering.

  • Modules/webaudio/ScriptProcessorNode.cpp: (WebCore::ScriptProcessorNode::createInputBufferForJS const): Avoid duplicate call to topologyMatches() since copyTo() already calls it internally and returns false when !topologyMatches().

(WebCore::ScriptProcessorNode::process):

  • Modules/webaudio/ScriptProcessorNode.h:

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

1:17 PM Changeset in webkit [274583] by Russell Epstein
  • 8 edits in branches/safari-611.1.21.1-branch/Source

Versioning.

WebKit-7611.1.21.1.12

1:11 PM Changeset in webkit [274582] by Russell Epstein
  • 3 edits in branches/safari-611.1.21.0-branch/Source/WebCore

Cherry-pick r274573. rdar://problem/75538213

Degraded ScriptProcessorNode performance/quality for (14.0.3+ and iOS 14.4.1+)
https://bugs.webkit.org/show_bug.cgi?id=223380

Reviewed by Geoffrey Garen.

By extending the scope of the lock in ScriptProcessorNode::process(), r273542 essentially
disabled double-buffering and thus negatively impacted rendering quality.

To address the issue, we now have 2 locks, one per rendering buffer (since we're using
double buffering) and only grab the lock we require when interacting with the buffers
for this index. This maintains thread-safety while re-enabling double buffering.

  • Modules/webaudio/ScriptProcessorNode.cpp: (WebCore::ScriptProcessorNode::createInputBufferForJS const): Avoid duplicate call to topologyMatches() since copyTo() already calls it internally and returns false when !topologyMatches().

(WebCore::ScriptProcessorNode::process):

  • Modules/webaudio/ScriptProcessorNode.h:

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

1:10 PM Changeset in webkit [274581] by Aditya Keerthi
  • 15 edits
    2 adds in trunk

[iOS] Refactor WKFileUploadPanel to use UniformTypeIdentifiers
https://bugs.webkit.org/show_bug.cgi?id=223000
<rdar://problem/75237774>

Reviewed by Tim Horton.

Source/WebKit:

Uniform type identifier APIs in MobileCoreServices were deprecated in
iOS 14. Instead, use the new APIs in the UniformTypeIdentifiers
framework.

This patch also cleans up instances of code duplication when comparing
uniform type idenfifiers and increases the test coverage for
WKFileUploadPanel.

Test: fast/forms/ios/file-upload-panel-accept.html

  • Configurations/WebKit.xcconfig:

Link UniformTypeIdentifiers.framework on watchOS and tvOS.

  • UIProcess/API/ios/WKWebViewPrivateForTestingIOS.h:

Expose _filePickerAcceptedTypeIdentifiers to enable testing of accepted
file types.

  • UIProcess/API/ios/WKWebViewTestingIOS.mm:

(-[WKWebView _filePickerAcceptedTypeIdentifiers]):

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

(-[WKContentView filePickerAcceptedTypeIdentifiers]):

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

(setContainsUTIThatConformsTo):

Modified this helper method to take in an NSSet rather than an NSArray
to avoid unnecessary conversion. Replaced MobileCoreServices API usage
with UniformTypeIdentifiers API.

(-[WKFileUploadPanel presentWithParameters:resultListener:]):

Determine the accepted UTIs and image picker configuration once before
presentation and store them in member variables to reduce code
duplication.

(-[WKFileUploadPanel currentAvailableActionTitles]):
(-[WKFileUploadPanel acceptedTypeIdentifiers]):

Expose the accepted type identifers as a sorted array for testing.

(-[WKFileUploadPanel _mediaTypesForPickerSourceType:]):
(-[WKFileUploadPanel _cameraButtonLabel]):
(-[WKFileUploadPanel contextMenuInteraction:configurationForMenuAtLocation:]):
(-[WKFileUploadPanel showFilePickerMenu]):
(-[WKFileUploadPanel showDocumentPickerMenu]):
(-[WKFileUploadPanel _uploadItemFromMediaInfo:successBlock:failureBlock:]):

Tools:

Added UIScriptController hooks to retrieve the type identifiers for
a presented file upload panel.

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

(WTR::UIScriptController::filePickerAcceptedTypeIdentifiers):

  • WebKitTestRunner/ios/UIScriptControllerIOS.h:
  • WebKitTestRunner/ios/UIScriptControllerIOS.mm:

(WTR::UIScriptControllerIOS::filePickerAcceptedTypeIdentifiers):

LayoutTests:

Added a test to verify that the value of the accept attribute for file
inputs is mapped to the correct set of type identifiers.

  • fast/forms/ios/file-upload-panel-accept-expected.txt: Added.
  • fast/forms/ios/file-upload-panel-accept.html: Added.
  • resources/ui-helper.js:

(window.UIHelper.dismissFilePicker):
(window.UIHelper.filePickerAcceptedTypeIdentifiers):

12:58 PM Changeset in webkit [274580] by Simon Fraser
  • 4 edits in trunk/Source/WebCore

Optimize RenderCounter::rendererStyleChanged()
https://bugs.webkit.org/show_bug.cgi?id=223306

Reviewed by Zalan Bujtas.

Optimize RenderCounter::rendererStyleChanged() for the case of no counters, which is
the most common; inline the check for no counters on old or new styles; this avoid
calling generatingElement() in the common case.

  • rendering/RenderCounter.cpp:

(WebCore::RenderCounter::rendererStyleChangedSlowCase):
(WebCore::RenderCounter::rendererStyleChanged): Deleted.

  • rendering/RenderCounter.h:

(WebCore::RenderCounter::rendererStyleChanged):

  • rendering/RenderElement.cpp:

(WebCore::RenderElement::styleDidChange):

12:55 PM Changeset in webkit [274579] by Russell Epstein
  • 8 edits in branches/safari-611.1.21.0-branch/Source

Versioning.

WebKit-7611.1.21.0.8

12:22 PM Changeset in webkit [274578] by Devin Rousso
  • 5 edits in trunk/Source/WebCore

don't use raw unicode characters in modern media controls JS
https://bugs.webkit.org/show_bug.cgi?id=223390

Reviewed by Eric Carlson.

  • Modules/modern-media-controls/controls/icon-service.js:
  • Modules/modern-media-controls/controls/time-label.js:

(TimeLabel.prototype.commitProperty):

  • Modules/modern-media-controls/media/placard-support.js:

(PlacardSupport.prototype._updateAirPlayPlacard):

  • en.lproj/modern-media-controls-localized-strings.js:

Drive-by: Add missing strings and remove unused ones.

12:10 PM Changeset in webkit [274577] by Brent Fulgham
  • 6 edits in trunk/Source

[Cocoa] Populate NSURLSession with attributed bundle ID
https://bugs.webkit.org/show_bug.cgi?id=223382
<rdar://problem/75498230>

Reviewed by Alex Christensen.

Source/WebCore/PAL:

Add forward declarations for attributed bundle ID.

  • pal/spi/cf/CFNetworkSPI.h:

Source/WebKit:

Update NSURLSession property with attributed bundle ID when supported by the platform.

  • NetworkProcess/cocoa/NetworkSessionCocoa.mm:

(WebKit::NetworkSessionCocoa::NetworkSessionCocoa):
(WebKit::NetworkSessionCocoa::initializeEphemeralStatelessSession):

Source/WTF:

Add new HAVE_CFNETWORK_NSURLSESSION_ATTRIBUTED_BUNDLE_IDENTIFIER macro.

  • wtf/PlatformHave.h:
12:06 PM Changeset in webkit [274576] by Alan Bujtas
  • 5 edits
    2 adds in trunk

Do not collapse ruby's internal anonymous blocks
https://bugs.webkit.org/show_bug.cgi?id=223296
<rdar://75486993>

Reviewed by Antti Koivisto.

Source/WebCore:

The ruby subtree stucture is as follows:

1 RenderRuby object, corresponding to the whole <ruby> HTML element
1+ RenderRubyRun (anonymous)

0 or 1 RenderRubyText (anonymous)
0 or 1 RenderRubyBase (anonymous)

This patch ensures that we don't collapse those anonymous blocks while destroying inner content.

Test: fast/ruby/crash-when-ruby-base-is-collapsed.html

  • rendering/RenderRubyRun.h:

LayoutTests:

  • fast/ruby/crash-when-ruby-base-is-collapsed-expected.txt: Added.
  • fast/ruby/crash-when-ruby-base-is-collapsed.html: Added.
11:56 AM Changeset in webkit [274575] by Nikita Vasilyev
  • 4 edits in trunk/Source/WebInspectorUI

Web Inspector: remove experimental setting and enable "grid" badges
https://bugs.webkit.org/show_bug.cgi?id=223209
<rdar://problem/75442185>

Reviewed by BJ Burg.

  • UserInterface/Base/Setting.js:
  • UserInterface/Views/DOMTreeElement.js:

(WI.DOMTreeElement.prototype._updateGridBadge):

  • UserInterface/Views/SettingsTabContentView.js:

(WI.SettingsTabContentView.prototype._createExperimentalSettingsView):

11:56 AM Changeset in webkit [274574] by Chris Gambrell
  • 30 edits
    36 adds
    34 deletes in trunk/LayoutTests

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

Reviewed by Jonathan Bedard.

  • http/tests/cache/cache-redirections.html:
  • http/tests/cache/cached-main-resource.html:
  • http/tests/cache/cachedEntry-waits-for-response-policy.html:
  • http/tests/cache/content-type-ignored-during-revalidation.html:
  • http/tests/cache/disk-cache/disk-cache-redirect-to-data.html:
  • http/tests/cache/disk-cache/disk-cache-remove-several-pending-writes.html:
  • http/tests/cache/disk-cache/redirect-chain-limits.html:
  • http/tests/cache/disk-cache/resources/json.php: Removed.
  • http/tests/cache/disk-cache/resources/json.py: Added.

(send304):

  • http/tests/cache/disk-cache/resources/make-sha1-collision.php: Removed.
  • http/tests/cache/disk-cache/resources/make-sha1-collision.py: Added.
  • http/tests/cache/disk-cache/resources/redirect-chain.php: Removed.
  • http/tests/cache/disk-cache/resources/redirect-chain.py: Added.
  • http/tests/cache/disk-cache/resources/redirect-to-data.php: Removed.
  • http/tests/cache/disk-cache/resources/redirect-to-data.py: Added.
  • http/tests/cache/disk-cache/shattered-deduplication.html:
  • http/tests/cache/disk-cache/speculative-validation/cacheable-redirect.html:
  • http/tests/cache/disk-cache/speculative-validation/http-auth.html:
  • http/tests/cache/disk-cache/speculative-validation/resources/cacheable-redirect-frame.php: Removed.
  • http/tests/cache/disk-cache/speculative-validation/resources/cacheable-redirect-frame.py: Added.
  • http/tests/cache/disk-cache/speculative-validation/resources/css-to-revalidate.php: Removed.
  • http/tests/cache/disk-cache/speculative-validation/resources/css-to-revalidate.py: Added.
  • http/tests/cache/disk-cache/speculative-validation/resources/frame-with-authenticated-resource.php: Removed.
  • http/tests/cache/disk-cache/speculative-validation/resources/frame-with-authenticated-resource.py: Added.
  • http/tests/cache/disk-cache/speculative-validation/resources/redirect-to-css.php: Removed.
  • http/tests/cache/disk-cache/speculative-validation/resources/redirect-to-css.py: Added.
  • http/tests/cache/disk-cache/speculative-validation/resources/request-headers-script.php: Removed.
  • http/tests/cache/disk-cache/speculative-validation/resources/request-headers-script.py: Added.
  • http/tests/cache/disk-cache/speculative-validation/resources/resource-with-auth.php: Removed.
  • http/tests/cache/disk-cache/speculative-validation/resources/resource-with-auth.py: Added.
  • http/tests/cache/disk-cache/speculative-validation/resources/validation-request-frame.php: Removed.
  • http/tests/cache/disk-cache/speculative-validation/resources/validation-request-frame.py: Added.
  • http/tests/cache/disk-cache/speculative-validation/validation-request.html:
  • http/tests/cache/history-navigation-no-resource-revalidation.html:
  • http/tests/cache/iframe-304-crash-expected.txt:
  • http/tests/cache/iframe-304-crash.html:
  • http/tests/cache/iframe-detach.html:
  • http/tests/cache/link-prefetch-main-resource-iframe.html:
  • http/tests/cache/link-prefetch-main-resource.html:
  • http/tests/cache/main-resource-304-reload.html:
  • http/tests/cache/post-redirect-get.php: Removed.
  • http/tests/cache/post-redirect-get.py: Added.
  • http/tests/cache/post-with-cached-subresources.php: Removed.
  • http/tests/cache/post-with-cached-subresources.py: Added.
  • http/tests/cache/recursive-validation.html:
  • http/tests/cache/redirect-referer.html:
  • http/tests/cache/reload-main-resource.php: Removed.
  • http/tests/cache/reload-main-resource.py: Added.
  • http/tests/cache/resources/body.php: Removed.
  • http/tests/cache/resources/body.py: Added.
  • http/tests/cache/resources/cacheable-iframe.php: Removed.
  • http/tests/cache/resources/cacheable-iframe.py: Added.
  • http/tests/cache/resources/cacheable-random-text.php: Removed.
  • http/tests/cache/resources/cacheable-random-text.py: Added.
  • http/tests/cache/resources/iframe304.php: Removed.
  • http/tests/cache/resources/iframe304.py: Added.
  • http/tests/cache/resources/iframe304body.php: Removed.
  • http/tests/cache/resources/iframe304body.py: Added.
  • http/tests/cache/resources/load-and-check-referer.php: Removed.
  • http/tests/cache/resources/load-and-check-referer.py: Added.

(contentType):

  • http/tests/cache/resources/no-cache-main-resource-next.php: Removed.
  • http/tests/cache/resources/no-cache-main-resource-next.py: Added.
  • http/tests/cache/resources/no-cache-main-resource.php: Removed.
  • http/tests/cache/resources/no-cache-main-resource.py: Added.
  • http/tests/cache/resources/no-cache-with-validation.php: Removed.
  • http/tests/cache/resources/no-cache-with-validation.py: Added.
  • http/tests/cache/resources/partitioned-cache-echo-state.php: Removed.
  • http/tests/cache/resources/partitioned-cache-echo-state.py: Added.
  • http/tests/cache/resources/partitioned-cache-loader.html:
  • http/tests/cache/resources/permanent-redirect.py: Added.
  • http/tests/cache/resources/post-image-to-verify.php: Removed.
  • http/tests/cache/resources/post-image-to-verify.py: Added.
  • http/tests/cache/resources/prefetched-main-resource-iframe.php: Removed.
  • http/tests/cache/resources/prefetched-main-resource-iframe.py: Added.
  • http/tests/cache/resources/prefetched-main-resource.php: Removed.
  • http/tests/cache/resources/prefetched-main-resource.py: Added.
  • http/tests/cache/resources/redirect-referer-iframe.html:
  • http/tests/cache/resources/reload-main-resource-iframe.php: Removed.
  • http/tests/cache/resources/reload-main-resource-iframe.py: Added.
  • http/tests/cache/resources/slow-iframe.php: Removed.
  • http/tests/cache/resources/slow-iframe.py: Added.
  • http/tests/cache/resources/stylesheet-html.php: Removed.
  • http/tests/cache/resources/stylesheet-html.py: Added.
  • http/tests/cache/resources/stylesheet304-bad-content-type.php: Removed.
  • http/tests/cache/resources/stylesheet304-bad-content-type.py: Added.
  • http/tests/cache/resources/stylesheet304.php: Removed.
  • http/tests/cache/resources/svg-defs-vary.php: Removed.
  • http/tests/cache/resources/svg-defs-vary.py: Added.
  • http/tests/cache/resources/xhr-vary-header-response.php: Removed.
  • http/tests/cache/resources/xhr-vary-header-response.py: Added.
  • http/tests/cache/resources/xhr-vary-header-subframe.html:
  • http/tests/cache/stylesheet-sharing.html:
  • http/tests/cache/vary-frameless-document.html:
  • http/tests/cache/xhr-body.html:
  • http/tests/cache/xhr-vary-header.html:
  • http/tests/resources/touch-temp-file.py: Added.
  • http/tests/resources/write-temp-file.py: Added.
  • http/tests/xmlhttprequest/cacheable-cross-origin-redirect-crash.html:
  • platform/win/TestExpectations:
11:52 AM Changeset in webkit [274573] by Chris Dumez
  • 3 edits in trunk/Source/WebCore

Degraded ScriptProcessorNode performance/quality for (14.0.3+ and iOS 14.4.1+)
https://bugs.webkit.org/show_bug.cgi?id=223380

Reviewed by Geoffrey Garen.

By extending the scope of the lock in ScriptProcessorNode::process(), r273542 essentially
disabled double-buffering and thus negatively impacted rendering quality.

To address the issue, we now have 2 locks, one per rendering buffer (since we're using
double buffering) and only grab the lock we require when interacting with the buffers
for this index. This maintains thread-safety while re-enabling double buffering.

  • Modules/webaudio/ScriptProcessorNode.cpp:

(WebCore::ScriptProcessorNode::createInputBufferForJS const):
Avoid duplicate call to topologyMatches() since copyTo() already calls it internally
and returns false when !topologyMatches().

(WebCore::ScriptProcessorNode::process):

  • Modules/webaudio/ScriptProcessorNode.h:
11:21 AM Changeset in webkit [274572] by Amir Mark Jr.
  • 2 edits in trunk/Tools

REGRESSION (r274460): [macOS] TestWebKitAPI.Fullscreen.WKViewDelegate is timing out
https://bugs.webkit.org/show_bug.cgi?id=223282

Unreviewed test gardening.

  • TestWebKitAPI/Tests/WebKitCocoa/FullscreenDelegate.mm:

(TestWebKitAPI::TEST): Disabling the test until it is resolved

10:40 AM Changeset in webkit [274571] by Robert Jenner
  • 2 edits in trunk/LayoutTests

[ macOS wk2 ARM64 ] 2 imported/w3c/web-platform-tests/webrtc are flakey text failures
https://bugs.webkit.org/show_bug.cgi?id=223385

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations: Updating test expectations to Pass Failure for Apple Silicon systems, and removing the Mojave test expectation while tests are being reviewed.
10:39 AM Changeset in webkit [274570] by aakash_jain@apple.com
  • 2 edits in trunk/Tools

[build.webkit.org] Remove code specific to old Buildbot - part 2
https://bugs.webkit.org/show_bug.cgi?id=222928

Reviewed by Jonathan Bedard.

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

(ConfigureBuild.start):

10:37 AM Changeset in webkit [274569] by achristensen@apple.com
  • 2 edits in trunk/Source/WebCore

Derive index EUC-KR from ICU
https://bugs.webkit.org/show_bug.cgi?id=223103

Reviewed by Yusuke Suzuki.

This decreases the binary size of WebCore by a little under 70kb.

  • platform/text/EncodingTables.cpp:

(WebCore::eucKR):

10:28 AM Changeset in webkit [274568] by achristensen@apple.com
  • 11 edits in trunk

Allow UniqueRef to be the value of a HashMap
https://bugs.webkit.org/show_bug.cgi?id=223240

Reviewed by Youenn Fablet.

Source/WebKit:

  • NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp:

(WebKit::ResourceLoadStatisticsDatabaseStore::populateFromMemoryStore):

  • NetworkProcess/Classifier/ResourceLoadStatisticsMemoryStore.cpp:

(WebKit::pruneResources):
(WebKit::ResourceLoadStatisticsMemoryStore::aggregatedThirdPartyData const):
(WebKit::ResourceLoadStatisticsMemoryStore::classifyPrevalentResources):
(WebKit::ResourceLoadStatisticsMemoryStore::ensureResourceStatisticsForRegistrableDomain):
(WebKit::ResourceLoadStatisticsMemoryStore::mergeStatistics):
(WebKit::ResourceLoadStatisticsMemoryStore::updateCookieBlocking):
(WebKit::ResourceLoadStatisticsMemoryStore::processStatistics const):
(WebKit::ResourceLoadStatisticsMemoryStore::registrableDomainsToDeleteOrRestrictWebsiteDataFor):
(WebKit::ResourceLoadStatisticsMemoryStore::pruneStatisticsIfNeeded):
(WebKit::ResourceLoadStatisticsMemoryStore::insertExpiredStatisticForTesting):

  • NetworkProcess/Classifier/ResourceLoadStatisticsMemoryStore.h:
  • Shared/Authentication/AuthenticationManager.cpp:

(WebKit::AuthenticationManager::addChallengeToChallengeMap):
(WebKit::AuthenticationManager::didReceiveAuthenticationChallenge):

  • Shared/Authentication/AuthenticationManager.h:

Source/WTF:

This has the advantage over std::unique_ptr of never providing a null value when you iterate HashMap.values

  • wtf/HashIterators.h:

(WTF::HashTableConstValuesIterator::get const):

  • wtf/HashTraits.h:

(WTF::HashTraits<UniqueRef<T>>::emptyValue):
(WTF::HashTraits<UniqueRef<T>>::constructDeletedValue):
(WTF::HashTraits<UniqueRef<T>>::isDeletedValue):
(WTF::HashTraits<UniqueRef<T>>::peek):
(WTF::HashTraits<UniqueRef<T>>::take):

Tools:

  • TestWebKitAPI/Tests/WTF/HashMap.cpp:

(TestWebKitAPI::TEST):

10:23 AM Changeset in webkit [274567] by mmaxfield@apple.com
  • 3 edits
    1 add in trunk

Laying out complex text in columns is O(n2)
https://bugs.webkit.org/show_bug.cgi?id=223363
<rdar://problem/68279075>

Reviewed by Zalan Bujtas.

PerformanceTests:

  • Layout/complex-columns.html: Added.

Source/WebCore:

When we perform line breaking in complex text, we create a persistent TextLayout object for the entire element, and ask
it questions about how wide various substrings are in the element. Our calling pattern is like this:

layout.width(a, b);
layout.width(b, c);
layout.width(c, d);
layout.width(d, e);

The implementation of TextLayout::width() is like this:

m_controller->advance(before);
float beforeWidth = m_controller->runWidthSoFar();
m_controller->advance(after);
float afterWidth = m_controller->runWidthSoFar();

This means that ComplexTextController is getting called twice in a row with the same position. However, the implementation of
ComplexTextController::advance() has:

if (offset <= m_currentCharacter) {


m_glyphInCurrentRun = 0;

}

The condition is true here, because it's getting called twice in a row with the same condition. However, when the condition
is true, we throw away all the previous work we've done during previous calls to ComplexTextController::advance().

This patch causes an 18x speedup on the performance test.

Performance Test: Layout/complex-columns.html

  • platform/graphics/ComplexTextController.cpp:

(WebCore::ComplexTextController::advance):

10:22 AM Changeset in webkit [274566] by commit-queue@webkit.org
  • 5 edits in trunk/Source/WebCore

Use ASCIILiteral over String for CSSValue::separatorCSSText() to avoid allocation
https://bugs.webkit.org/show_bug.cgi?id=223300

Patch by Tyler Wilcock <Tyler Wilcock> on 2021-03-17
Reviewed by Yusuke Suzuki.

Use ASCIILiteral over String for CSSValue::separatorCSSText() to avoid
allocation, since we know this function will always return an
ASCII string. Also rename separatorCssText to separatorCSSText.

These changes were requested in this comment:
https://bugs.webkit.org/show_bug.cgi?id=223205#c8

  • css/CSSValue.cpp:

(WebCore::CSSValue::separatorCSSText const):
(WebCore::CSSValue::separatorCssText const):
Rename function separatorCssText to separatorCSSText.

  • css/CSSValue.h:

String CSSValue::separatorCssText --> ASCIILiteral CSSValue::separatorCSSText

  • css/CSSValueList.cpp:

(WebCore::CSSValueList::customCSSText const):
Use auto to capture result of separatorCSSText().

  • css/CSSValuePair.cpp:

(WebCore::CSSValuePair::customCSSText const):
Function separatorCssText was renamed to separatorCSSText.

10:09 AM Changeset in webkit [274565] by Chris Dumez
  • 11 edits in trunk

Maybe-regression(STP121): window.open flakily returning null
https://bugs.webkit.org/show_bug.cgi?id=222590
<rdar://problem/75211786>

Reviewed by Geoffrey Garen.

Source/WebKit:

This was an IPC ordering bug. WebPageProxy::DidCommitLoadForFrame is async and WebPageProxy::CreateNewPage is
sync. As a result, it was possible for the WebPageProxy::CreateNewPage to get processed *BEFORE* the
WebPageProxy::DidCommitLoadForFrame IPC. This was causing trouble because Safari rejects the popup opening if
the main frame is doing a provisional load.

To address the issue, introduce a new IPC::SendSyncOption::MaintainOrderingWithAsyncMessages flag and
use it on WebPageProxy::CreateNewPage sync IPC so that it gets processed in order with surrounding async
messages.

  • Platform/IPC/Connection.cpp:

(IPC::Connection::SyncMessageState::processIncomingMessage):
(IPC::Connection::sendSyncMessage):

  • Platform/IPC/Connection.h:
  • Platform/IPC/Decoder.cpp:

(IPC::Decoder::shouldMaintainOrderingWithAsyncMessages const):

  • Platform/IPC/Decoder.h:
  • Platform/IPC/Encoder.cpp:

(IPC::Encoder::setShouldMaintainOrderingWithAsyncMessages):

  • Platform/IPC/Encoder.h:
  • Platform/IPC/MessageFlags.h:
  • WebProcess/WebCoreSupport/WebChromeClient.cpp:

(WebKit::WebChromeClient::createWindow):

Tools:

Add API test coverage.

  • TestWebKitAPI/Tests/WebKit/ModalAlertsSPI.cpp:

(TestWebKitAPI::TEST):
(TestWebKitAPI::checkFrameLoadStateAndCreateNewPage):

10:09 AM Changeset in webkit [274564] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

REGRESSION (r272019): Momentum scrolling in proximity css-scroll-snap scroll areas broken
https://bugs.webkit.org/show_bug.cgi?id=223375

Patch by Martin Robinson <mrobinson@igalia.com> on 2021-03-17
Reviewed by Simon Fraser.

Selectively revert the problematic refactoring in r272019. It is difficult to revert
the entire change since a non-trivial amount of subsequent changes depend on it.

No new tests. This change is a selective revert and animation for momentum
scrolling is very difficult to test.

  • platform/ScrollSnapAnimatorState.cpp:

(WebCore::ScrollSnapAnimatorState::targetOffsetForStartOffset const): Revert changes
from r272019.

10:06 AM Changeset in webkit [274563] by Peng Liu
  • 9 edits in trunk

[GPUP] Some media-source tests fail/timeout when media in GPU Process is enabled
https://bugs.webkit.org/show_bug.cgi?id=221686

Reviewed by Eric Carlson.

Source/WebKit:

With "GPU Process: Media" enabled, a video element with a reference to a MediaSource
object will schedule a "resize" event after the source buffer scheduling an "update" event.
The root cause is that the MediaPlayerPrivateRemote does not notify its HTMLMediaElement
to change its ready state to HAVE_METADATA after the source buffer receives the initialization
segment (in SourceBuffer::sourceBufferPrivateDidReceiveInitializationSegment()).
The requirement is defined in section 3.5.7.6.2 of the specification:
[Initialization Segment Received](https://www.w3.org/TR/media-source/#sourcebuffer-init-segment-received).

  • WebProcess/GPU/media/MediaPlayerPrivateRemote.cpp:

(WebKit::MediaPlayerPrivateRemote::setReadyState):

  • WebProcess/GPU/media/MediaPlayerPrivateRemote.h:
  • WebProcess/GPU/media/SourceBufferPrivateRemote.cpp:

(WebKit::SourceBufferPrivateRemote::setReadyState):

LayoutTests:

Fix the wrong description of a test.

  • media/media-source/media-source-resize-expected.txt:
  • media/media-source/media-source-resize.html:
  • platform/gtk/media/media-source/media-source-resize-expected.txt:
  • platform/mac/TestExpectations:
9:53 AM Changeset in webkit [274562] by Brent Fulgham
  • 6 edits in trunk

[Cocoa] Move loadSimulatedRequest API from Private to Public WKWebView
https://bugs.webkit.org/show_bug.cgi?id=223279
<rdar://problem/75494316>

Reviewed by Darin Adler.

Source/WebKit:

Just moving from SPI headers to API headers (and implementation).

No new tests, since this just changes the visibility of the functionality. The features are
tested with existing TestWebKitAPI tests.

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

(-[WKWebView loadSimulatedRequest:withResponse:responseData:]):
(-[WKWebView loadSimulatedRequest:withResponseHTMLString:]):
(-[WKWebView loadFileRequest:allowingReadAccessToURL:]):

  • UIProcess/API/Cocoa/WKWebViewPrivate.h:

Tools:

Remove private header now that the declarations are in the standard header.

  • TestWebKitAPI/Tests/WebKitCocoa/WKWebViewLoadAPIs.mm:
9:01 AM Changeset in webkit [274561] by Alexey Shvayka
  • 12 edits in trunk

[WebIDL] Fix convertRecord() to throw on enumerable symbol |key|
https://bugs.webkit.org/show_bug.cgi?id=223231

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

  • web-platform-tests/fetch/api/headers/headers-record-expected.txt:

Source/JavaScriptCore:

Export SymbolCoercionError.

  • runtime/JSCJSValue.cpp:

(JSC::JSValue::toStringSlowCase const):

  • runtime/JSCJSValue.h:

Source/WebCore:

This change removes String type filter from getOwnPropertyNames() call [1] so
GetOwnProperty is invoked for a symbol |key|, which is observable by Proxy,
and a TypeError is raised (with helpful error message) if it's enumerable.

Instead of throwing right in convertRecord(), identifierToString() is added,
making IdentifierConverter reusable and close to the spec [2], rather than
implicitly dependent on identifier being a string.

Identifier::string() called on a symbol returns it's Description, which is
very undesirable.

Aligns WebKit with Blink and Gecko.

Tests: imported/w3c/web-platform-tests/fetch/api/headers/headers-record.html

fast/dom/DOMURL/searchparams.html

[1] https://heycam.github.io/webidl/#es-record (step 3)
[2] https://heycam.github.io/webidl/#es-DOMString (step 2)

  • bindings/js/JSDOMConvertRecord.h:

(WebCore::Detail::IdentifierConverter<IDLDOMString>::convert):

  • bindings/js/JSDOMConvertStrings.cpp:

(WebCore::identifierToString):
(WebCore::identifierToByteString):
(WebCore::identifierToUSVString):

  • bindings/js/JSDOMConvertStrings.h:

LayoutTests:

  • fast/dom/DOMURL/searchparams-expected.txt:
  • fast/dom/DOMURL/searchparams.html:
8:54 AM Changeset in webkit [274560] by Simon Fraser
  • 2 edits in trunk/Source/WebCore

Optimize FillLayer::imagesIdentical()
https://bugs.webkit.org/show_bug.cgi?id=223305

Reviewed by Wenson Hsieh.

Test for pointer equality before deep-comparing the FillLayer linked lists. Pointer
equality is common when RenderStyles are cloned.

  • rendering/style/FillLayer.cpp:

(WebCore::FillLayer::imagesIdentical):

8:20 AM Changeset in webkit [274559] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Set media elements' networkState to NETWORK_IDLE if the connection is interrupted
https://bugs.webkit.org/show_bug.cgi?id=223242

Patch by Souju TANAKA <soujyu.tanaka@access-company.com> on 2021-03-17
Reviewed by Eric Carlson.

Media elements' networkState was set to NETWORK_EMPTY if the connection is interrupted after some
media data has been received. This fix changes the state to NETWORK_IDLE, according to recent spec.

No new tests since there seems no way to disconnect network connection during tests.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::mediaLoadingFailedFatally):

6:30 AM Changeset in webkit [274558] by youenn@apple.com
  • 28 edits
    2 deletes in trunk

Align device orientation delegate to getUserMedia/geolocation delegates
https://bugs.webkit.org/show_bug.cgi?id=223247

Reviewed by Eric Carlson.

Source/WebKit:

Refactor code to move device orientation prompt implementation with other prompts in MediaPermissionUtilities.
Update code to use top level origin for prompt.
Update delegate to provide both top level origin and initiating iframe as parameters.
Update the decision handler to take grant, deny or prompt parameter.

Covered by API tests.

  • UIProcess/API/C/WKFrameInfoRef.cpp:

(WKFrameInfoCopySecurityOrigin):

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

(WKPageSetPageUIClient):

  • UIProcess/API/C/WKPageUIClient.h:
  • UIProcess/API/Cocoa/WKUIDelegatePrivate.h:
  • UIProcess/Cocoa/MediaPermissionUtilities.mm:

(WebKit::alertMessageText):
(WebKit::allowButtonText):
(WebKit::doNotAllowButtonText):
(WebKit::alertForPermission):

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

(WebKit::UIDelegate::setDelegate):
(WebKit::UIDelegate::UIClient::shouldAllowDeviceOrientationAndMotionAccess):

  • UIProcess/Cocoa/WKOrientationAccessAlert.h: Removed.
  • UIProcess/Cocoa/WKOrientationAccessAlert.mm: Removed.
  • UIProcess/MediaPermissionUtilities.h:
  • UIProcess/WebsiteData/WebDeviceOrientationAndMotionAccessController.cpp:

(WebKit::WebDeviceOrientationAndMotionAccessController::shouldAllowAccess):

  • WebKit.xcodeproj/project.pbxproj:

Tools:

Update code to print frame info origin and update according additional frame info parameter given to shouldAllowDeviceOrientationAndMotionAccess.
Clear permissions in case test controller changes the device motion permission value.

  • TestWebKitAPI/Tests/WebKitCocoa/DeviceOrientation.mm:

(-[DeviceOrientationPermissionUIDelegate _webView:requestDeviceOrientationAndMotionPermissionForOrigin:initiatedByFrame:decisionHandler:]):
(-[DeviceOrientationPermissionValidationDelegate setValidationHandler:]):
(-[DeviceOrientationPermissionValidationDelegate _webView:requestDeviceOrientationAndMotionPermissionForOrigin:initiatedByFrame:decisionHandler:]):

  • TestWebKitAPI/Tests/WebKitCocoa/WebsitePolicies.mm:

(-[WebsitePoliciesDeviceOrientationUIDelegate _webView:requestDeviceOrientationAndMotionPermissionForOrigin:initiatedByFrame:decisionHandler:]):

  • WebKitTestRunner/TestController.cpp:

(WTR::shouldAllowDeviceOrientationAndMotionAccess):
(WTR::TestController::handleDeviceOrientationAndMotionAccessRequest):
(WTR::TestController::setShouldAllowDeviceOrientationAndMotionAccess):

  • WebKitTestRunner/TestController.h:

LayoutTests:

  • fast/device-orientation/device-motion-request-permission-denied-expected.txt:
  • fast/device-orientation/device-motion-request-permission-granted-expected.txt:
  • fast/device-orientation/device-orientation-request-permission-denied-expected.txt:
  • fast/device-orientation/device-orientation-request-permission-granted-expected.txt:
  • http/tests/device-orientation/device-motion-allowed-in-first-party-only-expected.txt:
  • http/tests/device-orientation/device-motion-third-party-iframe-allowed-by-feature-policy-expected.txt:
  • http/tests/device-orientation/device-orientation-allowed-in-first-party-only-expected.txt:
  • http/tests/device-orientation/device-orientation-permission-granted-in-other-iframes-from-same-origin-expected.txt:
  • http/tests/device-orientation/device-orientation-third-party-iframe-allowed-by-feature-policy-expected.txt:
  • platform/ios/http/tests/events/device-orientation-motion-secure-context-expected.txt:
4:47 AM Changeset in webkit [274557] by commit-queue@webkit.org
  • 9 edits
    2 adds in trunk/Source

Shutdown ANGLE on GPU process when last WebGL context is destroyed
https://bugs.webkit.org/show_bug.cgi?id=223082

Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2021-03-17
Reviewed by Kenneth Russell.

Source/WebCore:

  • CMakeLists.txt:
  • SourcesCocoa.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • platform/graphics/cocoa/GraphicsContextGLOpenGLCocoa.mm:

(WebCore::InitializeEGLDisplay):
(WebCore::GraphicsContextGLOpenGL::GraphicsContextGLOpenGL):

  • platform/graphics/opengl/GraphicsContextGLOpenGL.h:

Hold the default EGLDisplay with a scoped holder that counts
the references to the default display.
(WebCore::GraphicsContextGLOpenGL::releaseAllResourcesIfUnused):
Add a call that uninitializes the ANGLE default display if there are no uses of
the default display.

Source/WebKit:

Schedule a check for releasing the ANGLE default display when global
count of remote graphics contexts reach zero. This should decrease the
memory use of sessions where WebGL is not always on.

Dispatch the check 0.2s after hitting zero, so that the optimization still
affects page navigations but maybe does not redundantly deinitialize /
reinitialize ANGLE in the cases where the context #1 is created and destroyed
frequently.

  • GPUProcess/graphics/RemoteGraphicsContextGL.cpp:

(WebKit::dispatchReleaseAllResourcesIfUnused):
(WebKit::RemoteGraphicsContextGL::initialize):
(WebKit::RemoteGraphicsContextGL::stopListeningForIPC):

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

Protect LibWebRTCAudioModule when playing
https://bugs.webkit.org/show_bug.cgi?id=223243

Reviewed by Alex Christensen.

Make sure to ref LibWebRTCAudioModule when playing.

  • platform/mediastream/libwebrtc/LibWebRTCAudioModule.cpp:

(WebCore::LibWebRTCAudioModule::StartPlayout):
(WebCore::LibWebRTCAudioModule::pollAudioData):

2:01 AM Changeset in webkit [274555] by commit-queue@webkit.org
  • 3 edits in trunk

[GTK][WPE] Enable CSS scroll snap support by default
https://bugs.webkit.org/show_bug.cgi?id=222641

Patch by Martin Robinson <mrobinson@igalia.com> on 2021-03-17
Reviewed by Carlos Garcia Campos.

  • Source/cmake/OptionsGTK.cmake: Enable CSS scroll snap by default.
  • Source/cmake/OptionsWPE.cmake: Ditto.
1:56 AM Changeset in webkit [274554] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

[WPE] Include cog build artefacts in built product archive
https://bugs.webkit.org/show_bug.cgi?id=217477

Patch by Philippe Normand <pnormand@igalia.com> on 2021-03-17
Reviewed by Adrian Perez de Castro.

Include Cog files in the zip file if they're present, so the nightly runner would be able to
start Cog instead of the WPE MiniBrowser.

  • CISupport/built-product-archive:

(createZipFromList):
(archiveBuiltProduct):

1:40 AM Changeset in webkit [274553] by youenn@apple.com
  • 3 edits in trunk/Source/WebKit

Protect RemoteCaptureSampleManager and RemoteAudioSourceProviderManager when hopping to background threads
https://bugs.webkit.org/show_bug.cgi?id=223245

Reviewed by Alex Christensen.

When hopping to a background thread, take a ref to the manager.
Both managers are thread safe refcounted.

  • WebProcess/GPU/media/RemoteAudioSourceProviderManager.cpp:

(WebKit::RemoteAudioSourceProviderManager::addProvider):
(WebKit::RemoteAudioSourceProviderManager::removeProvider):

  • WebProcess/cocoa/RemoteCaptureSampleManager.cpp:

(WebKit::RemoteCaptureSampleManager::addSource):
(WebKit::RemoteCaptureSampleManager::removeSource):

Note: See TracTimeline for information about the timeline view.