Timeline



Apr 26, 2021:

11:19 PM Changeset in webkit [276629] by commit-queue@webkit.org
  • 3 edits
    2 adds in trunk

Remove rounding logic in RenderGeometryMap::mapContainer
https://bugs.webkit.org/show_bug.cgi?id=218577

Patch by Rob Buis <rbuis@igalia.com> on 2021-04-26
Reviewed by Simon Fraser.

Source/WebCore:

Remove rounding logic in RenderGeometryMap::mapContainer and
add the LayoutSize to FloatPoint using FloatPoint::move() to
match what is done in TransformState::translateMappedCoordinates.

Test: fast/layers/geometry-map-accumulated-offset-assert.html

  • platform/graphics/transforms/TransformState.cpp:

(WebCore::TransformState::translateMappedCoordinates):

  • rendering/RenderGeometryMap.cpp:

(WebCore::RenderGeometryMap::mapToContainer const):

LayoutTests:

Add test for this.

  • fast/layers/geometry-map-accumulated-offset-assert-expected.txt: Added.
  • fast/layers/geometry-map-accumulated-offset-assert.html: Added.
10:44 PM Changeset in webkit [276628] by Manuel Rego Casasnovas
  • 13 edits
    2 adds in trunk

REGRESSION (r276264): Reproducible crash in WebCore::UserActionElementSet::clearFlags
https://bugs.webkit.org/show_bug.cgi?id=224957

Reviewed by Ryosuke Niwa.

Source/WebCore:

The crash was due to a problem with the focus and focus-visible flags getting out of sync.
The problem was related to how we deal we script focus in Element::focus(),
we were setting the focus-visible flag before doing focus,
and if the element was moved to a different document in that process,
we were resetting the flag for the same element, but pointing to the new document.
So the old document still kept information about the element and the flag, and it shouldn't.

This patch is based on a patch by Ryosuke Niwa <rniwa@webkit.org>.
The approach to solve the issue is to consolidate the timing for both focus and focus-visible flags
so they don't get out of sync.
For that we add a new FocusVisibility enum to FocusOptions, and we pass it to Element::setFocus()
and use it to pass a different value to Element::setHasFocusVisible().

Test: fast/selectors/focus-visible-crash.html

  • dom/Document.cpp:

(WebCore::Document::setFocusedElement):

  • dom/Element.cpp:

(WebCore::Element::setFocus):
(WebCore::Element::focus):

  • dom/Element.h:
  • dom/FocusOptions.h:
  • html/HTMLAreaElement.cpp:

(WebCore::HTMLAreaElement::setFocus):

  • html/HTMLAreaElement.h:
  • html/HTMLFrameElementBase.cpp:

(WebCore::HTMLFrameElementBase::setFocus):

  • html/HTMLFrameElementBase.h:
  • page/EventHandler.cpp:

(WebCore::EventHandler::internalKeyEvent):

  • page/FocusController.cpp:

(WebCore::FocusController::advanceFocusInDocumentOrder):

  • page/FrameView.cpp:

(WebCore::FrameView::scrollToFragmentInternal):

LayoutTests:

  • fast/selectors/focus-visible-crash-expected.txt: Added.
  • fast/selectors/focus-visible-crash.html: Added.
10:31 PM Changeset in webkit [276627] by commit-queue@webkit.org
  • 8 edits
    2 adds in trunk

Create a containing block when relevant properties are set in the current element will-change
https://bugs.webkit.org/show_bug.cgi?id=167868

Patch by Tim Nguyen <ntim@apple.com> on 2021-04-26
Reviewed by Alan Bujtas.

Per spec, any CSS property that is susceptible to create a containing block should create one when put on the
current element's will-change.

Relevant WPT are enabled.

Test: fast/css/will-change/will-change-creates-containing-block.html

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-box/parsing/padding-computed-expected.txt:

Source/WebCore:

  • rendering/RenderElement.h:

(WebCore::RenderElement::canContainFixedPositionObjects const):
(WebCore::RenderElement::canContainAbsolutelyPositionedObjects const):

  • rendering/style/WillChangeData.cpp:

(WebCore::WillChangeData::createsContainingBlockForOutOfFlowPositioned const):

  • rendering/style/WillChangeData.h:

LayoutTests:

  • TestExpectations:
  • fast/css/will-change/will-change-creates-containing-block-expected.html: Added.
  • fast/css/will-change/will-change-creates-containing-block.html: Added.
7:59 PM Changeset in webkit [276626] by Wenson Hsieh
  • 30 edits in trunk

Subdivide image overlay text into one or more elements per line
https://bugs.webkit.org/show_bug.cgi?id=225038
rdar://75505043

Reviewed by Tim Horton and Devin Rousso.

Source/WebCore:

Refactor some image extraction and image overlay code to allow for multiple elements containing text per line.
See comments below for more details.

Changes covered by augmenting existing layout tests.

  • html/HTMLElement.cpp:

(WebCore::HTMLElement::updateWithImageExtractionResult):

The crux of this change is in this method. Currently, an image overlay has one or more div elements underneath
the root container element, each of which represents a single line (i.e. contains a text node and a line break).
Instead, we make each of these line container divs contain one or more div elements that represent further
subdivided text within each line.

See the corresponding additions patch for more details.

  • html/shadow/imageOverlay.css:

(div#image-overlay):
(div.image-overlay-line, .image-overlay-text):
(.image-overlay-text::selection):

Adjust UA stylesheet to account for the changes in updateWithImageExtractionResult.

(div.image-overlay-text): Deleted.
(div.image-overlay-text::selection): Deleted.

  • platform/ImageExtractionResult.h:

(WebCore::ImageExtractionTextData::ImageExtractionTextData):
(WebCore::ImageExtractionLineData::ImageExtractionLineData):
(WebCore::ImageExtractionLineData::encode const):
(WebCore::ImageExtractionLineData::decode):

Refactor this data structure, by splitting it into ImageExtractionLineData and ImageExtractionTextData.

(WebCore::ImageExtractionResult::isEmpty const):
(WebCore::ImageExtractionResult::encode const):
(WebCore::ImageExtractionResult::decode):

  • platform/graphics/FloatPoint.h:

(WebCore::FloatPoint::rotate):

Add a helper method to rotate a 2D FloatPoint by a given angle, about a given point.

  • platform/graphics/GeometryUtilities.cpp:

(WebCore::rotatedBoundingRectWithMinimumAngleOfRotation):
(WebCore::rotatedBoundingRect): Deleted.

  • platform/graphics/GeometryUtilities.h:
  • testing/Internals.cpp:

(WebCore::getQuad):
(WebCore::makeDataForLine):
(WebCore::Internals::installImageOverlay):

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

Adjust this internal testing hook to accept a list of ImageOverlayLine dictionaries, each of which contains a
list of ImageOverlayText dictionaries.

Tools:

Adjust several existing layout tests after changing internals.installImageOverlay. See WebCore ChangeLog for
more details. Additionally, rename a WebCore geometry helper method.

  • TestWebKitAPI/Tests/WebCore/FloatQuadTests.cpp:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebKit/simple-image-overlay.html:

LayoutTests:

Adjust several existing layout tests after changing internals.installImageOverlay. See WebCore ChangeLog for
more details.

  • fast/images/image-extraction/basic-image-overlay.html:
  • fast/images/image-extraction/click-link-with-image-overlay.html:
  • fast/images/image-extraction/image-overlay-creation-is-idempotent.html:
  • fast/images/image-extraction/image-overlay-in-image-with-zero-font-size.html:
  • fast/images/image-extraction/image-overlay-with-selection-styles-expected.html:
  • fast/images/image-extraction/image-overlay-with-selection-styles.html:
  • fast/images/image-extraction/ios/reselect-word-in-image-overlay.html:
  • fast/images/image-extraction/ios/select-word-in-image-overlay-inside-link.html:
  • fast/images/image-extraction/ios/select-word-in-image-overlay.html:
  • fast/images/image-extraction/ios/selection-rects-in-image-overlay.html:
  • fast/images/image-extraction/mac/copy-image-overlay-text-with-context-menu.html:
  • fast/images/image-extraction/mac/select-image-overlay-in-link-with-mouse-drag.html:
  • fast/images/image-extraction/mac/select-image-overlay-with-mouse-drag-does-not-fire-click.html:
  • fast/images/image-extraction/mac/select-image-overlay-with-mouse-drag.html:
  • fast/images/image-extraction/mac/select-word-in-draggable-image-overlay.html:
  • fast/images/image-extraction/mac/select-word-in-transparent-image-overlay.html:
6:09 PM Changeset in webkit [276625] by keith_miller@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

UnlinkedCodeBlock should have better accounting for extra memory
https://bugs.webkit.org/show_bug.cgi?id=225080

Reviewed by Mark Lam.

Right now we aren't telling the JS GC about the extra memory
attached to UnlinkedCodeBlocks. It looks like on at least some sites this
can be a fairly large percentage of the total memory retained by
the JS object graph. This is very similar to the change we made for
CodeBlocks in r276610.

  • bytecode/UnlinkedCodeBlock.cpp:

(JSC::UnlinkedCodeBlock::visitChildrenImpl):
(JSC::UnlinkedCodeBlock::RareData::sizeInBytes const):

  • bytecode/UnlinkedCodeBlock.h:
5:34 PM Changeset in webkit [276624] by ChangSeok Oh
  • 2 edits in trunk/LayoutTests

Enable AVIF tests for glib platforms
https://bugs.webkit.org/show_bug.cgi?id=225039

Reviewed by Philippe Normand.

This change enables avif tests for glib based platforms.

  • platform/glib/TestExpectations:
5:23 PM Changeset in webkit [276623] by commit-queue@webkit.org
  • 6 edits in trunk/Source/WebKit

Add more eager OOB checks when creating DisplayListReaderHandle & DisplayListWriterHandle.
https://bugs.webkit.org/show_bug.cgi?id=225055
<rdar://71896663>

Patch by Tim Nguyen <ntim@apple.com> on 2021-04-26
Reviewed by Wenson Hsieh.

There were already some OOB checks for both classes, this revision adds checks at creation-time.
Also add a comment on top of SharedDisplayListHandle.h to mention that only subclasses use it.

  • GPUProcess/graphics/DisplayListReaderHandle.h:

(WebKit::DisplayListReaderHandle::create):

  • GPUProcess/graphics/RemoteRenderingBackend.cpp:

(WebKit::RemoteRenderingBackend::didCreateSharedDisplayListHandle):

  • Shared/SharedDisplayListHandle.h:

(WebKit::SharedDisplayListHandle::SharedDisplayListHandle):

  • WebProcess/GPU/graphics/DisplayListWriterHandle.h:

(WebKit::DisplayListWriterHandle::create):

  • WebProcess/GPU/graphics/RemoteRenderingBackendProxy.cpp:

(WebKit::RemoteRenderingBackendProxy::createItemBuffer):

5:20 PM Changeset in webkit [276622] by Alan Coon
  • 8 edits in branches/safari-612.1.11-branch/Source

Versioning.

WebKit-7612.1.11.7

5:04 PM Changeset in webkit [276621] by achristensen@apple.com
  • 58 edits in trunk/Source

Consistently include headers with <Framework/Header.h>
https://bugs.webkit.org/show_bug.cgi?id=225067

Reviewed by Alexey Proskuryakov.

Source/WebCore:

When building with CMake, if a header is included as <Framework/Header.h> in some files
and "Header.h" in others, when compiling a cpp file in the same directory as Header.h,
there doesn't seem to be a way to tell it to include from the Framework directory before
searching the same directory as the cpp file. To solve this, we use consistent include style
for each header.

  • editing/cocoa/DictionaryLookup.mm:
  • platform/graphics/avfoundation/objc/AVOutputDeviceMenuControllerTargetPicker.mm:
  • platform/graphics/avfoundation/objc/AVRoutePickerViewTargetPicker.mm:
  • platform/graphics/avfoundation/objc/MediaPlaybackTargetPickerMac.mm:
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
  • platform/graphics/cocoa/GraphicsContextGLOpenGLCocoa.mm:
  • platform/graphics/cocoa/IOSurface.mm:
  • platform/mac/PlatformScreenMac.mm:
  • testing/Internals.cpp:

Source/WebKit:

  • Shared/API/Cocoa/_WKRenderingProgressEventsInternal.h:
  • Shared/API/Cocoa/_WKSameDocumentNavigationTypeInternal.h:
  • UIProcess/API/Cocoa/NSAttributedString.mm:
  • UIProcess/API/Cocoa/WKBrowsingContextGroupInternal.h:
  • UIProcess/API/Cocoa/WKConnectionInternal.h:
  • UIProcess/API/Cocoa/WKNavigationDataInternal.h:
  • UIProcess/API/Cocoa/WKScriptMessage.mm:
  • UIProcess/API/Cocoa/WKSecurityOriginInternal.h:
  • UIProcess/API/Cocoa/WKWebView.mm:
  • UIProcess/API/Cocoa/WKWebViewConfiguration.mm:
  • UIProcess/API/Cocoa/WKWebViewConfigurationInternal.h:
  • UIProcess/API/Cocoa/WKWebViewInternal.h:
  • UIProcess/API/Cocoa/WKWebpagePreferences.mm:
  • UIProcess/API/Cocoa/WKWebpagePreferencesInternal.h:
  • UIProcess/API/Cocoa/_WKActivatedElementInfoInternal.h:
  • UIProcess/API/Cocoa/_WKAttachment.mm:
  • UIProcess/API/Cocoa/_WKAttachmentInternal.h:
  • UIProcess/API/Cocoa/_WKAuthenticatorResponseInternal.h:
  • UIProcess/API/Cocoa/_WKInspectorConfiguration.mm:
  • UIProcess/API/Cocoa/_WKThumbnailView.mm:
  • UIProcess/API/Cocoa/_WKUserContentFilterInternal.h:
  • UIProcess/API/Cocoa/_WKWebAuthenticationPanelForTesting.h:
  • UIProcess/API/Cocoa/_WKWebAuthenticationPanelInternal.h:
  • UIProcess/API/mac/WKWebViewMac.h:
  • UIProcess/API/mac/WKWebViewMac.mm:
  • UIProcess/Cocoa/MediaUtilities.h:
  • UIProcess/Cocoa/PageClientImplCocoa.mm:
  • UIProcess/Cocoa/SOAuthorization/PopUpSOAuthorizationSession.mm:
  • UIProcess/Cocoa/SOAuthorization/SOAuthorizationSession.mm:
  • UIProcess/Cocoa/UIDelegate.mm:
  • UIProcess/Cocoa/WKContactPicker.mm:
  • UIProcess/Cocoa/WKShareSheet.mm:
  • UIProcess/Cocoa/WKWebViewContentProviderRegistry.mm:
  • UIProcess/Cocoa/WebViewImpl.h:
  • UIProcess/Cocoa/WebViewImpl.mm:
  • UIProcess/Inspector/mac/RemoteWebInspectorUIProxyMac.mm:
  • UIProcess/Inspector/mac/WKInspectorViewController.mm:
  • UIProcess/WebAuthentication/Cocoa/WebAuthenticationPanelClient.mm:
  • UIProcess/ios/WKContentViewInteraction.h:
  • UIProcess/mac/HighPerformanceGPUManager.mm:
  • WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInFrameInternal.h:
  • WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInFramePrivate.h:
  • WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInNodeHandle.mm:
  • WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInNodeHandlePrivate.h:
  • WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInRangeHandleInternal.h:
  • WebProcess/InjectedBundle/API/mac/WKDOMInternals.h:
  • WebProcess/InjectedBundle/API/mac/WKDOMTextIterator.mm:
4:42 PM Changeset in webkit [276620] by Kate Cheney
  • 8 edits
    1 add in trunk

ResourceLoadStatisticsDatabaseStore::aggregatedThirdPartyData() hangs for a long time
https://bugs.webkit.org/show_bug.cgi?id=225063
<rdar://problem/76248557>

Reviewed by Brent Fulgham.

Source/WebKit:

Unique index values speed up sqlite database queries, and prevent
repeated entries in tables without primary keys. Its possible to
get into a state where some tables in the ITP database do not have index
values. We should check on open if the database has index values, and
create them if not. This may require migrating existing data and
removing repeated entries.

  • NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp:

Remove semi-colons in CREATE UNIQUE INDEX queries. They aren't needed
and if we remove them we can use these constexpr values to check for
the correct stored index later on.

(WebKit::stripIndexQueryToMatchStoredValue):
We use CREATE UNIQUE INDEX IF NOT EXISTS to avoid an error if the
unique index already exists, but the value is stored in the database
without the "IF NOT EXISTS" portion. In order to check for correct
values we need to strip this out.

(WebKit::expectedTableAndIndexQueries):
(WebKit::ResourceLoadStatisticsDatabaseStore::checkForMissingTablesInSchema):
(WebKit::ResourceLoadStatisticsDatabaseStore::currentTableAndIndexQueries):
Return the schema and index for a given table. If the index is empty
that means SQLite created an automatic index and we should return
WTF::nullopt.

(WebKit::ResourceLoadStatisticsDatabaseStore::needsUpdatedPrivateClickMeasurementSchema):
(WebKit::ResourceLoadStatisticsDatabaseStore::missingUniqueIndices):
(WebKit::ResourceLoadStatisticsDatabaseStore::missingReferenceToObservedDomains):
(WebKit::ResourceLoadStatisticsDatabaseStore::needsUpdatedSchema):
(WebKit::insertDistinctValuesInTableQuery):
Since unique indices prevent repeat entries, tables without them might
have repeated entries. We need to select only one of each entry to
migrate to the new tables. This picks the one with the most recent
lastUpdated time.

(WebKit::ResourceLoadStatisticsDatabaseStore::migrateDataToNewTablesIfNecessary):
(WebKit::ResourceLoadStatisticsDatabaseStore::addMissingTablesIfNecessary):
(WebKit::ResourceLoadStatisticsDatabaseStore::createUniqueIndices):
This fix revealed an index that is never created. I added it here.

(WebKit::ResourceLoadStatisticsDatabaseStore::isCorrectSubStatisticsCount):

  • NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.h:
  • UIProcess/API/Cocoa/WKWebsiteDataStore.mm:

(-[WKWebsiteDataStore _isRelationshipOnlyInDatabaseOnce:thirdParty:completionHandler:]):

  • UIProcess/API/Cocoa/WKWebsiteDataStorePrivate.h:

Convert SPI previously only used for layout tests to be used for an
API test where we can load a database with repeated values to ensure
the migration is correct after my change.

Tools:

Test coverage. Currently API testing is the only way to test data
migration and schema changes in the ITP database because we can load
a pre-seeded database and check the correct values after migration.
We should add some ability for unit testing in the future.

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKitCocoa/ResourceLoadStatistics.mm:

(TEST):

4:42 PM Changeset in webkit [276619] by Ben Nham
  • 5 edits in trunk/Source

Reduce memory footprint for background tabs
https://bugs.webkit.org/show_bug.cgi?id=225007

Reviewed by Chris Dumez.

When a WebContent process contains only non-visible pages (e.g. if it is a background tab),
we should attempt to reduce our memory footprint after some time interval to help relieve
system-wide memory pressure. This is enabled only on Mac because iOS already does something
similar just before WebContent suspends.

Source/WebKit:

  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::pageDidEnterWindow):
(WebKit::WebProcess::pageWillLeaveWindow):
(WebKit::WebProcess::nonVisibleProcessGraphicsCleanupTimerFired):
(WebKit::WebProcess::nonVisibleProcessMemoryCleanupTimerFired):
(WebKit::WebProcess::nonVisibleProcessCleanupTimerFired): Deleted.

  • WebProcess/WebProcess.h:

Source/WTF:

  • wtf/PlatformEnableCocoa.h:
4:04 PM Changeset in webkit [276618] by Ben Nham
  • 2 edits in trunk/Source/WebKit

Handle warning-level memory notifications more aggressively
https://bugs.webkit.org/show_bug.cgi?id=225008

Reviewed by Chris Dumez.

We've found that in some workloads, the critical-level memory pressure handler releases
significantly more memory than the warning-level memory pressure handler. On Macs, it is
likely that the memory pressure coincides with swapping. So when we get even a warning-level
notification from the OS, we should err on the side of releasing more memory to help relieve
the swapping state. To do this, treat warning level notifications the same as critical level
notifications on Mac if the WebProcess is in the background.

  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::initializeWebProcess):

3:37 PM Changeset in webkit [276617] by Alan Bujtas
  • 2 edits in trunk/LayoutTests

[ Win ] fast/text/line-break-with-locale.html is failing on Windows
https://bugs.webkit.org/show_bug.cgi?id=225074
<rdar://problem/77174542>

Unreviewed test gardening.

  • platform/win/TestExpectations:
2:54 PM Changeset in webkit [276616] by Nikita Vasilyev
  • 5 edits in trunk/Source/WebInspectorUI

Web Inspector: Audit Tab: Edits are not committed when leaving edit mode unless you first click into another text field
https://bugs.webkit.org/show_bug.cgi?id=224318
<rdar://problem/76382755>

Reviewed by Devin Rousso.

Save test and setup code when pressing "Done" button. Don't rely on the blur event because it doesn't fire on
the focused element when it's removed from the DOM.

  • UserInterface/Models/AuditTestBase.js:

(WI.AuditTestBase.prototype.set setup):

  • UserInterface/Models/AuditTestCase.js:

(WI.AuditTestCase.prototype.set test):
Allow setting test and setup after editing is finished.

  • UserInterface/Views/AuditTestCaseContentView.js:

(WI.AuditTestCaseContentView.prototype.layout):
(WI.AuditTestCaseContentView.prototype.saveEditedData):

  • UserInterface/Views/AuditTestContentView.js:

(WI.AuditTestContentView.prototype.detached):
Saving test on detached saves it when selecting a different test in the navigation sidebar.

(WI.AuditTestContentView.prototype.saveEditedData):
(WI.AuditTestContentView.prototype._createSetupEditor):
(WI.AuditTestContentView.prototype._handleEditingChanged):
(WI.AuditTestContentView):

2:44 PM Changeset in webkit [276615] by achristensen@apple.com
  • 4 edits
    1 add in trunk/Source/WebCore/PAL

Add missing SPI declarations
https://bugs.webkit.org/show_bug.cgi?id=225061

Reviewed by Alexey Proskuryakov.

  • PAL.xcodeproj/project.pbxproj:
  • pal/cocoa/CryptoKitCBridgingSoftLink.h:
  • pal/spi/cocoa/CryptoKitCBridgingSPI.h: Added.
  • pal/spi/mac/DataDetectorsSPI.h:
2:37 PM Changeset in webkit [276614] by achristensen@apple.com
  • 17 edits in trunk

Update Mac-specific CMake files
https://bugs.webkit.org/show_bug.cgi?id=225064

Rubber-stamped by Tim Horton.

.:

  • Source/cmake/OptionsMac.cmake:
  • Source/cmake/WebKitCommon.cmake:

Source/JavaScriptCore:

  • PlatformMac.cmake:

Source/ThirdParty/ANGLE:

  • PlatformMac.cmake:

Source/WebCore:

  • PlatformMac.cmake:

Source/WebCore/PAL:

  • pal/PlatformMac.cmake:

Source/WebKit:

  • PlatformMac.cmake:

Source/WebKitLegacy:

  • PlatformMac.cmake:

Tools:

  • MiniBrowser/mac/CMakeLists.txt:
2:31 PM Changeset in webkit [276613] by aakash_jain@apple.com
  • 2 edits in trunk/Tools

[ews-app] Status bubble should only display important messages in pop-over - part 4
https://bugs.webkit.org/show_bug.cgi?id=225076

Reviewed by Jonathan Bedard.

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

(StatusBubble):

2:03 PM Changeset in webkit [276612] by mark.lam@apple.com
  • 3 edits
    1 add in trunk

%TypedArray%.prototype.sort() should not use a regular array as a temp buffer.
https://bugs.webkit.org/show_bug.cgi?id=225062
rdar://77021547

Reviewed by Yusuke Suzuki.

JSTests:

  • stress/typedarray-sort-should-not-use-a-regular-array-as-temp-buffer.js: Added.

Source/JavaScriptCore:

%TypedArray%.prototype.sort() should not be affected by property changes in
Array.prototype.

References:
[1] https://tc39.es/ecma262/#sec-%typedarray%.prototype.sort
[2] https://tc39.es/ecma262/#sec-array.prototype.sort
[3] https://tc39.es/ecma262/#sec-sortcompare

  • builtins/TypedArrayPrototype.js:

(globalPrivate.typedArrayMergeSort):

2:01 PM Changeset in webkit [276611] by Said Abou-Hallawa
  • 2 edits in trunk/Source/WebCore

Remove redundant frameDetached() from the SVGImage destructor
https://bugs.webkit.org/show_bug.cgi?id=221616
<rdar://problem/74149106>

Reviewed by Chris Dumez.

SVGImage was originally written such that it has two separate objects:
a page and a frame; see https://trac.webkit.org/r18470. So it made sense
at that time to clean up the page and the frame separately. The Frame
was cleaned up by telling the frame's loader that the frameDetached().

This code is not necessary right now since the page owns the main frame.
And its destructor recursively detaches itself from all the frames.

  • svg/graphics/SVGImage.cpp:

(WebCore::SVGImage::~SVGImage):

1:22 PM Changeset in webkit [276610] by keith_miller@apple.com
  • 6 edits in trunk/Source

CodeBlock should do a better job accounting for extra memory it allocates.
https://bugs.webkit.org/show_bug.cgi?id=225068

Reviewed by Mark Lam.

Source/JavaScriptCore:

Right now we aren't telling the JS GC about the extra memory
attached to CodeBlocks. It looks like on at least some sites this
can be a fairly large percentage of the total memory retained by
the JS object graph.

  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::visitChildren):
(JSC::CodeBlock::JITData::size const):

  • bytecode/CodeBlock.h:
  • jit/JITCodeMap.h:

(JSC::JITCodeMap::memorySize const):

Source/WTF:

Small convenience function to help compute the memory used by a Bag for JS GC
accounting.

  • wtf/Bag.h:
1:20 PM Changeset in webkit [276609] by keith_miller@apple.com
  • 19 edits in trunk/Source/JavaScriptCore

numCalleeLocals, numParameters, and numVars should be unsigned
https://bugs.webkit.org/show_bug.cgi?id=224995

Reviewed by Mark Lam.

All of the various CodeBlock classes currently have the
numCalleeLocals and numVars marked as ints. I believe this is just
a historical artifact or because VirtualRegister's offset is an
int to make handling constants easier. Regardless, it's a bit
strange to not handle the sign conversion at the point of
comparison between a VirtualRegister offset and the local/var
count. This doesn't completely fix every place we use ints for
these values but starts on the right track. Lastly, I also added
some Check<unsigned>s to the wasm parser for sanity checking.

  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::setNumParameters):
(JSC::CodeBlock::ensureCatchLivenessIsComputedForBytecodeIndexSlow):

  • bytecode/CodeBlock.h:

(JSC::CodeBlock::numParameters const):
(JSC::CodeBlock::numberOfArgumentsToSkip const):
(JSC::CodeBlock::numCalleeLocals const):
(JSC::CodeBlock::numVars const):
(JSC::CodeBlock::numTmps const):
(JSC::CodeBlock::addressOfNumParameters):
(JSC::CodeBlock::isTemporaryRegister):

  • bytecode/UnlinkedCodeBlock.h:

(JSC::UnlinkedCodeBlock::numCalleeLocals const):
(JSC::UnlinkedCodeBlock::numVars const):

  • bytecode/UnlinkedCodeBlockGenerator.h:

(JSC::UnlinkedCodeBlockGenerator::numCalleeLocals const):
(JSC::UnlinkedCodeBlockGenerator::numVars const):
(JSC::UnlinkedCodeBlockGenerator::setNumCalleeLocals):
(JSC::UnlinkedCodeBlockGenerator::setNumVars):
(JSC::UnlinkedCodeBlockGenerator::setNumParameters):

  • bytecompiler/BytecodeGenerator.cpp:

(JSC::BytecodeGenerator::generate):
(JSC::BytecodeGenerator::emitPushFunctionNameScope):

  • bytecompiler/BytecodeGeneratorBaseInlines.h:

(JSC::BytecodeGeneratorBase<Traits>::newRegister):

  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::handleRecursiveTailCall):
(JSC::DFG::ByteCodeParser::inliningCost):
(JSC::DFG::ByteCodeParser::parseBlock):

  • dfg/DFGOSREntrypointCreationPhase.cpp:

(JSC::DFG::OSREntrypointCreationPhase::run):

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::checkArgumentTypes):

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::lower):

  • ftl/FTLOSREntry.cpp:

(JSC::FTL::prepareOSREntry):

  • interpreter/CallFrameClosure.h:
  • interpreter/ProtoCallFrameInlines.h:

(JSC::ProtoCallFrame::init):

  • jit/JIT.cpp:

(JSC::JIT::compileWithoutLinking):

  • runtime/CommonSlowPaths.h:

(JSC::CommonSlowPaths::numberOfStackPaddingSlots):
(JSC::CommonSlowPaths::numberOfStackPaddingSlotsWithExtraSlots):

  • wasm/WasmFunctionCodeBlock.h:

(JSC::Wasm::FunctionCodeBlock::numVars const):
(JSC::Wasm::FunctionCodeBlock::numCalleeLocals const):
(JSC::Wasm::FunctionCodeBlock::setNumVars):
(JSC::Wasm::FunctionCodeBlock::setNumCalleeLocals):

  • wasm/WasmLLIntGenerator.cpp:

(JSC::Wasm::LLIntGenerator::push):
(JSC::Wasm::LLIntGenerator::getDropKeepCount):
(JSC::Wasm::LLIntGenerator::walkExpressionStack):
(JSC::Wasm::LLIntGenerator::checkConsistency):
(JSC::Wasm::LLIntGenerator::materializeConstantsAndLocals):
(JSC::Wasm::LLIntGenerator::splitStack):
(JSC::Wasm::LLIntGenerator::finalize):
(JSC::Wasm::LLIntGenerator::callInformationForCaller):
(JSC::Wasm::LLIntGenerator::addLoop):
(JSC::Wasm::LLIntGenerator::addTopLevel):
(JSC::Wasm::LLIntGenerator::addBlock):
(JSC::Wasm::LLIntGenerator::addIf):
(JSC::Wasm::LLIntGenerator::addElseToUnreachable):

1:03 PM Changeset in webkit [276608] by Russell Epstein
  • 1 copy in tags/Safari-612.1.11.6

Tag Safari-612.1.11.6.

12:46 PM Changeset in webkit [276607] by Fujii Hironori
  • 2 edits in trunk/Source/WebCore

REGRESSION(r272379) [Win] Some emojis are painted with a blank square on the right side of it
https://bugs.webkit.org/show_bug.cgi?id=225047

Reviewed by Don Olmstead.

imported/w3c/web-platform-tests/mathml/relations/css-styling tests cover this change.

  • platform/graphics/WidthIterator.cpp:

(WebCore::WidthIterator::advanceInternal): Don't add the 0 glyphs for Windows too.

11:44 AM Changeset in webkit [276606] by Russell Epstein
  • 1 copy in tags/Safari-607.3.12

Tag Safari-607.3.12.

11:42 AM Changeset in webkit [276605] by Russell Epstein
  • 3 edits
    5 adds in branches/safari-607-branch

Cherry-pick r271368. rdar://problem/77160704

Keep newly created IDBIndex objects in deleted map when IDBTransaction is aborted
https://bugs.webkit.org/show_bug.cgi?id=220489
<rdar://problem/70498831>

Patch by Sihui Liu <sihui_liu@appe.com> on 2021-01-11
Reviewed by Youenn Fablet.

Source/WebCore:

When an upgrade transaction is aborted, we move objects from m_deletedIndexes to m_referencedIndexes to revert
the index deletion operation. When updating m_referencedIndexes, we did not check whether key already exists.
Therefore, some indexes in m_referencedIndexes would be replaced and destroyed (since m_referencedIndexes holds
unique pointers) when the index is still referenced by JS.

Tests: storage/indexeddb/modern/abort-index-info-private.html

storage/indexeddb/modern/abort-index-info.html

  • Modules/indexeddb/IDBObjectStore.cpp: (WebCore::IDBObjectStore::rollbackForVersionChangeAbort):

LayoutTests:

  • storage/indexeddb/modern/abort-index-info-expected.txt: Added.
  • storage/indexeddb/modern/abort-index-info-private-expected.txt: Added.
  • storage/indexeddb/modern/abort-index-info-private.html: Added.
  • storage/indexeddb/modern/abort-index-info.html: Added.
  • storage/indexeddb/modern/resources/abort-index-info.js: Added. (prepareDatabase): (versionChangeSuccessCallback.secondRequest.onerror): (versionChangeSuccessCallback): (secondUpgradeNeeded): (checkState):

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

11:12 AM Changeset in webkit [276604] by Aditya Keerthi
  • 3 edits in trunk/LayoutTests

REGRESSION: fast/forms/ios/ipad/open-picker-using-keyboard.html is timing out
https://bugs.webkit.org/show_bug.cgi?id=225053
<rdar://problem/77042251>

Reviewed by Wenson Hsieh.

Update the test to account for the fact that <select> elements now
present a context menu rather than a popover.

  • fast/forms/ios/ipad/open-picker-using-keyboard-expected.txt:
  • fast/forms/ios/ipad/open-picker-using-keyboard.html:
11:08 AM Changeset in webkit [276603] by Devin Rousso
  • 4 edits in trunk/Source/WebInspectorUI

Web Inspector: Audit: Uncaught Exception: Failed to execute 'delete' on 'IDBObjectStore': The parameter is not a valid key range.
https://bugs.webkit.org/show_bug.cgi?id=224993

Reviewed by BJ Burg.

  • UserInterface/Controllers/AuditManager.js:

(WI.AuditManager.prototype.async processJSON):
(WI.AuditManager.prototype.async addTest):

  • UserInterface/Views/AuditNavigationSidebarPanel.js:

(WI.AuditNavigationSidebarPanel.prototype.willDismissPopover):

  • UserInterface/Views/AuditTreeElement.js:

(WI.AuditTreeElement.prototype.populateContextMenu):
Make sure to save any newly created audits not already in WI.objectStores.audits immediately
so that if the developer tries to delete it before exiting Edit mode (which is normally when
everything is saved) an exception isn't thrown about it not being in WI.objectStores.audits.

10:45 AM Changeset in webkit [276602] by Chris Gambrell
  • 87 edits
    8 adds
    13 deletes in trunk/LayoutTests

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

Reviewed by Jonathan Bedard.

  • http/tests/appcache/fallback.html:
  • http/tests/appcache/main-resource-fallback-for-network-error-crash.html:
  • http/tests/appcache/main-resource-hash.html:
  • http/tests/appcache/main-resource-redirect.html:
  • http/tests/appcache/multi-fallback.html:
  • http/tests/appcache/non-html.xhtml:
  • http/tests/appcache/offline-access.html:
  • http/tests/appcache/remove-cache.html:
  • http/tests/appcache/resources/fail-on-update-2.py:
  • http/tests/appcache/resources/fail-on-update.py:
  • http/tests/appcache/resources/fallback.manifest:
  • http/tests/appcache/resources/main-resource-redirect-frame.py:
  • http/tests/appcache/resources/main-resource-redirect.manifest:
  • http/tests/appcache/resources/multi-fallback.manifest:
  • http/tests/appcache/resources/non-html.manifest:
  • http/tests/appcache/resources/offline-access-frame.html:
  • http/tests/appcache/resources/offline-access.js:

(test):

  • http/tests/appcache/resources/offline-access.manifest:
  • http/tests/appcache/resources/remove-cache.py:
  • http/tests/cache/network-error-during-revalidation.html:
  • http/tests/cache/resources/network-error-during-revalidation-frame.html:
  • http/tests/cache/subresource-fragment-identifier.html:
  • http/tests/cookies/same-site/fetch-after-navigating-iframe-in-cross-origin-page.html:
  • http/tests/cookies/same-site/fetch-after-top-level-navigation-initiated-from-iframe-in-cross-origin-page.html:
  • http/tests/cookies/same-site/fetch-in-cross-origin-iframe.html:
  • http/tests/css/border-image-loading.html:
  • http/tests/css/css-image-loading.html:
  • http/tests/css/css-image-valued-shape.html:
  • http/tests/css/font-face-src-loading.html:
  • http/tests/css/mask-image-loading.html:
  • http/tests/css/reflection-mask-image-loading.html:
  • http/tests/css/resources/request-logging.js:

(ResourceLogging.CallCommand):

  • http/tests/css/vertical-align-baseline-after-image-load-2-expected.html:
  • http/tests/css/vertical-align-baseline-after-image-load-2.html:
  • http/tests/css/vertical-align-baseline-after-image-load-3-expected.html:
  • http/tests/css/vertical-align-baseline-after-image-load-3.html:
  • http/tests/css/vertical-align-baseline-after-image-load-expected.html:
  • http/tests/css/vertical-align-baseline-after-image-load.html:
  • http/tests/fetch/clone-response-body.html:
  • http/tests/fetch/closing-while-fetching.html:
  • http/tests/fetch/fetch-cors-with-referrer.html:
  • http/tests/fetch/fetching-same-resource-with-different-options-expected.txt:
  • http/tests/fetch/fetching-same-resource-with-different-options.html:
  • http/tests/fetch/get-response-body-while-loading.html:
  • http/tests/images/decode-slow-load-static-image.html:
  • http/tests/images/draw-pattern-slow-load-large-image.html:
  • http/tests/images/gif-progressive-load.html:
  • http/tests/images/image-supports-video.html:
  • http/tests/images/jpeg-partial-load.html:
  • http/tests/images/loading-image-border.html:
  • http/tests/images/loading-image-no-border.html:
  • http/tests/images/mp4-partial-load.html:
  • http/tests/images/png-partial-load-no-alpha.html:
  • http/tests/images/png-partial-load.html:
  • http/tests/images/png-progressive-load.html:
  • http/tests/images/webp-partial-load.html:
  • http/tests/images/webp-progressive-load.html:
  • http/tests/loading/preload-img-test.html:
  • http/tests/local/fileapi/file-last-modified-using-open-panel.html:
  • http/tests/local/fileapi/file-last-modified.html:
  • http/tests/local/fileapi/resources/temp-file-utils.js:

(createTempFile):
(touchTempFile):
(removeTempFile):

  • http/tests/local/link-stylesheet-load-order-preload.html:
  • http/tests/local/link-stylesheet-load-order.html:
  • http/tests/media/track/track-webvtt-slow-loading-2.html:
  • http/tests/media/track/track-webvtt-slow-loading.html:
  • http/tests/misc/repeat-open-cancel.html:
  • http/tests/navigation/pending-location-change-assert.html:
  • http/tests/preload/delaying_onload_link_preload_after_discovery_image.html:
  • http/tests/preload/dynamic_remove_preload_href.html:
  • http/tests/preload/not_delaying_window_onload_before_discovery.html:
  • http/tests/preload/not_evicting_preload_at_onload.html:
  • http/tests/resources/basic-auth.php: Removed.
  • http/tests/resources/digest-auth: Removed.
  • http/tests/resources/download-json-with-delay.php: Removed.
  • http/tests/resources/download-json-with-delay.py: Added.
  • http/tests/resources/echo-iframe-src.php: Removed.
  • http/tests/resources/echo-iframe-src.py: Added.
  • http/tests/resources/file-last-modified.php: Removed.
  • http/tests/resources/file-last-modified.py: Added.
  • http/tests/resources/load-and-stall.php: Removed.
  • http/tests/resources/load-and-stall.py: Added.
  • http/tests/resources/network-simulator.php: Removed.
  • http/tests/resources/network-simulator.py: Added.

(temp_path_base):
(generate_no_cache_http_header):
(content_type):
(generate_response):
(handle_increate_resource_count_command):
(handle_reset_resource_count_command):
(handle_get_resource_count_command):
(handle_start_resource_requests_log):
(handle_get_resource_requests_log):
(handle_log_resource_request):

  • http/tests/resources/portabilityLayer.py:

(set_state):

  • http/tests/resources/redirect-to-video-if-accepted.php: Removed.
  • http/tests/resources/redirect-to-video-if-accepted.py: Added.
  • http/tests/resources/reset-temp-file.php: Removed.
  • http/tests/resources/reset-temp-file.py:
  • http/tests/resources/slow-image.php: Removed.
  • http/tests/resources/slow-image.py: Added.
  • http/tests/resources/slow-notify-done.php: Removed.
  • http/tests/resources/slow-notify-done.py: Added.
  • http/tests/resources/touch-temp-file.php: Removed.
  • http/tests/resources/touch-temp-file.py:
  • http/tests/resources/write-temp-file.php: Removed.
  • http/tests/resources/write-temp-file.py:
  • http/tests/security/XFrameOptions/x-frame-options-ancestors-same-origin-allow.html:
  • http/tests/security/resources/allow-if-origin.py:
  • http/tests/swipe/swipe-back-with-outstanding-load-cancellation.html:
  • http/tests/xmlhttprequest/resources/access-control-basic-preflight-cache-invalidation.py:
  • http/tests/xmlhttprequest/resources/access-control-basic-preflight-cache-timeout.py:
  • http/tests/xmlhttprequest/resources/access-control-basic-preflight-cache.py:
  • http/tests/xmlhttprequest/resources/access-control-preflight-denied-xsrf.py:
  • http/tests/xmlhttprequest/resources/no-custom-header.py:
  • http/tests/xmlhttprequest/resources/redirect-cross-origin-tripmine.py:
  • http/tests/xmlhttprequest/resources/remember-bad-password/count-failures.py:
  • http/tests/xmlhttprequest/state-after-network-error.html:
10:38 AM Changeset in webkit [276601] by Russell Epstein
  • 2 edits in branches/safari-607-branch/Source/JavaScriptCore

Cherry-pick r276527. rdar://problem/77160646

[YARR Interpreter] Improper backtrack of parentheses with non-zero based greedy quantifiers
https://bugs.webkit.org/show_bug.cgi?id=224983

Reviewed by Mark Lam.

When we backtrack a parentheses with a greedy non zero based quantifier,
we don't properly restore for the case where we hadn't reached the minimum count.
We now save the input position on entry and restore it when we backtrack for
this case. We also properly release the allocated ParenthesesDisjunctionContext's.

  • yarr/YarrInterpreter.cpp: (JSC::Yarr::Interpreter::matchParentheses): (JSC::Yarr::Interpreter::backtrackParentheses):

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

10:38 AM Changeset in webkit [276600] by Russell Epstein
  • 2 edits in branches/safari-607-branch/Source/JavaScriptCore

Cherry-pick r276524. rdar://problem/77160578

Fix B3 strength reduction for shl.
https://bugs.webkit.org/show_bug.cgi?id=224913
rdar://76978874

Reviewed by Michael Saboff.

If the operation can potentially either underflow or overflow, then the result
can be any value.

  • b3/B3ReduceStrength.cpp:

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

10:36 AM Changeset in webkit [276599] by Ruben Turcios
  • 8 edits in branches/safari-612.1.11-branch/Source

Versioning.

WebKit-7612.1.11.6

10:35 AM Changeset in webkit [276598] by Aditya Keerthi
  • 4 edits in trunk

REGRESSION (r271861): [iOS] Accessory bar navigation to elements outside the viewport fails
https://bugs.webkit.org/show_bug.cgi?id=224980
<rdar://problem/77042311>

Reviewed by Wenson Hsieh.

Source/WebKit:

r271861 introduced logic to prevent obscured elements from being
focusable using the accessory bar, using hit testing. However, it also
prevented elements outside the viewport from participating in accessory
bar navigation.

To fix, include HitTestRequest::IgnoreClipping in the hit test request
options. This ensures that hit test requests are not clipped to the
viewport.

Note that this behavior is covered by an existing test, but the test
only failed on smaller devices.

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::isObscuredElement):

LayoutTests:

  • fast/forms/ios/accessory-bar-navigation.html:

Increase the space between input elements, so that the second input is
positioned out of the viewport on larger devices.

10:32 AM Changeset in webkit [276597] by don.olmstead@sony.com
  • 3 edits in trunk/Tools

[CMake] Modernize WebKit GLib testing
https://bugs.webkit.org/show_bug.cgi?id=225052

Reviewed by Adrian Perez de Castro.

Set values on targets directly rather than the older add_definitions and
include_directories style. Clean up the code and format it properly.

A NO_GTEST_USAGE definition is used to prevent gtest from being included when an alternate
testing framework is used.

  • TestWebKitAPI/config.h:
  • TestWebKitAPI/glib/CMakeLists.txt:
10:26 AM Changeset in webkit [276596] by don.olmstead@sony.com
  • 2 edits in trunk

[PlayStation] Fix build break after r276368
https://bugs.webkit.org/show_bug.cgi?id=225056

Reviewed by Ross Kirsling.

Ensure that the OpenGL::GLES target is created.

  • Source/cmake/OptionsPlayStation.cmake:
9:33 AM Changeset in webkit [276595] by Russell Epstein
  • 7 edits in branches/safari-607-branch/Source

Versioning.

WebKit-7607.3.12

9:30 AM Changeset in webkit [276594] by Alexey Shvayka
  • 3 edits in trunk/Source/WebCore

[WebIDL] Remove [CallNamedSetterOnlyForSupportedProperties] extended attribute
https://bugs.webkit.org/show_bug.cgi?id=225049

Reviewed by Sam Weinig.

It was part of the old CSSStyleDeclaration named getter implementation,
which was removed in r275808.

No new tests, no behavior change.

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateInvokeNamedPropertySetter):
(GeneratePut):
(GeneratePutByIndex):
(GenerateDefineOwnProperty):

  • bindings/scripts/IDLAttributes.json:
9:14 AM Changeset in webkit [276593] by don.olmstead@sony.com
  • 10 edits in trunk

Fix includes for some GTK/GLib headers
https://bugs.webkit.org/show_bug.cgi?id=225020

Reviewed by Adrian Perez de Castro.

Source/WebKit:

An include was assuming Source/WebKit as its root.

  • UIProcess/API/glib/WebKitInitialize.cpp:

Tools:

Update include paths to use their correct <> path.

  • TestWebKitAPI/Tests/WebKitGLib/TestInputMethodContext.cpp:
  • TestWebKitAPI/Tests/WebKitGLib/TestUIClient.cpp:
  • TestWebKitAPI/Tests/WebKitGLib/WebProcessTest.cpp:
  • TestWebKitAPI/glib/WebKitGLib/WebViewTest.cpp:
  • TestWebKitAPI/glib/WebKitGLib/gtk/WebViewTestGtk.cpp:
  • TestWebKitAPI/gtk/PlatformWebViewGtk.cpp:
  • WebKitTestRunner/gtk/EventSenderProxyGtk.cpp:
8:21 AM Changeset in webkit [276592] by Alexey Shvayka
  • 102 edits
    15 adds in trunk

[JSC] OrdinarySet should invoke custom Set? methods
https://bugs.webkit.org/show_bug.cgi?id=217916

Reviewed by Yusuke Suzuki.

JSTests:

  • microbenchmarks/put-slow-no-cache-array.js: Added.
  • microbenchmarks/put-slow-no-cache-function.js: Added.
  • microbenchmarks/put-slow-no-cache-js-proxy.js: Added.
  • microbenchmarks/put-slow-no-cache-long-prototype-chain.js: Added.
  • microbenchmarks/put-slow-no-cache.js: Added.
  • microbenchmarks/reflect-set-with-receiver.js: Added.
  • stress/custom-get-set-proto-chain-put.js:
  • stress/module-namespace-access-set-fails.js: Added.
  • stress/put-non-reified-static-accessor-or-custom.js: Added.
  • stress/put-non-reified-static-function-or-custom.js: Added.
  • stress/put-to-primitive-non-reified-static-custom.js: Added.
  • stress/put-to-primitive.js: Added.
  • stress/put-to-proto-chain-overrides-put.js: Added.
  • stress/typed-array-canonical-numeric-index-string-set.js: Added.

LayoutTests/imported/w3c:

  • web-platform-tests/WebIDL/ecmascript-binding/interface-object-set-receiver-expected.txt: Added.
  • web-platform-tests/WebIDL/ecmascript-binding/interface-object-set-receiver.html: Added.
  • web-platform-tests/WebIDL/ecmascript-binding/interface-prototype-constructor-set-receiver-expected.txt:
  • web-platform-tests/WebIDL/ecmascript-binding/interface-prototype-constructor-set-receiver.html:

Source/JavaScriptCore:

This patch fixes putInlineSlow() to handle special properties (like JSFunction's "name"
and JSArray's "length") in prototype chain. When such property is encountered, prototype
chain traversal is stopped; if it's read-only, a TypeError is thrown in strict mode.

This change adds OverridesPut out of line type info flag, and utilizes it in putInlineSlow()
to invoke overriden methods. While this approach requires put() methods to be aware of
altered receivers, it renders several benefits:

  1. put() method can be used for both "real" Set? overrides and special properties, with its return value remaining bool;
  2. it is simpler, faster, and more predictable than calling GetOwnProperty? in putInlineSlow() or adding defineOwnPropertyViaPut() to the method table.

Removes ordinarySetSlow() for non-index properties, which didn't invoke some Set?
methods as well. Instead, definePropertyOnReceiver() is introduced for altered receivers,
which performs correctly when reached because:

  1. all special properties were already handled (unless it's Reflect.set);
  2. performing putDirectInternal() is unobservable (unless ProxyObject was seen);
  3. putDirectInternal() now fully implements property definition of OrdinarySet [1];
  4. put() override is required if a spec defines custom DefineOwnProperty?.

Since indexed puts handle overrides / altered receivers quite differently, they will
be fixed in a follow-up, completely removing ordinarySetSlow().

Also, by merging putEntry() / putToPrimitive() into putInlineSlow() and introducing
putInlineFastReplacingStaticPropertyIfNeeded() helper, this patch fixes a few bugs:

  1. Direct Set? to non-reified static property now preserves its attributes when replacing Value?.
  2. Prototype chain Set? to non-reified static property now throws if receiver is non-extensible.
  3. Non-reified static writable property now shadows read-only one that is further in prototype chain.
  4. Non-reified static properties in prototype chain of a primitive are now considered.

Fixes a few issues that were previously unobservable:

  1. PropertyAttribute::CustomValue is now unset when a setter-less property is reassigned.
  2. uint64_t putByIndexInline() now calls put() via method table like uint32_t counterpart.

Other notable refactors:

  1. Inlines callCustomSetter(), dropping weird TriState return value.
  2. Simplifies initialization of StringPrototype.
  3. Simplifies isThisValueAltered() to pointer comparisons at non-JSProxy call sites.
  4. Removes doPutPropertySecurityCheck() methods as the same checks are performed by put() methods.
  5. Removes prototypeChainMayInterceptStoreTo(), which pretty much duplicated canPerformFastPutInline().
  6. Removes dummy JSArrayBufferView::put() method.
  7. Removes now unused lookupPut().

Aligns JSC with V8 and SpiderMonkey.

This patch carefully preserves the current behavior of Reflect.set with CustomValue
and prototype chain Set? to a JSCallbackObject / legacy platform object.

This change is performance-neutral on /put/ microbenchmarks as it doesn't affect
caching, only the slow path. Reflect.set with JSFinalObject receiver is 130% faster.
putInlineSlow() microbenchmarks progress by 4-18%.

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

  • API/JSCallbackObject.h:
  • API/JSCallbackObjectFunctions.h:

(JSC::JSCallbackObject<Parent>::put):

  • API/tests/testapiScripts/testapi.js:
  • debugger/DebuggerScope.h:
  • runtime/ClassInfo.h:
  • runtime/ClonedArguments.h:
  • runtime/CustomGetterSetter.cpp:

(JSC::callCustomSetter): Deleted.

  • runtime/CustomGetterSetter.h:
  • runtime/ErrorConstructor.h:
  • runtime/ErrorInstance.h:
  • runtime/GenericArguments.h:
  • runtime/GenericArgumentsInlines.h:

(JSC::GenericArguments<Type>::put):

  • runtime/GetterSetter.h:
  • runtime/JSArray.cpp:

(JSC::JSArray::put):

  • runtime/JSArray.h:
  • runtime/JSArrayBufferView.cpp:

(JSC::JSArrayBufferView::put): Deleted.

  • runtime/JSArrayBufferView.h:
  • runtime/JSCJSValue.cpp:

(JSC::JSValue::putToPrimitive):

  • runtime/JSCell.cpp:

(JSC::JSCell::doPutPropertySecurityCheck): Deleted.

  • runtime/JSCell.h:
  • runtime/JSFunction.cpp:

(JSC::JSFunction::put):

  • runtime/JSFunction.h:
  • runtime/JSGenericTypedArrayView.h:
  • runtime/JSGlobalLexicalEnvironment.h:
  • runtime/JSGlobalObject.cpp:

(JSC::JSGlobalObject::put):

  • runtime/JSGlobalObject.h:
  • runtime/JSLexicalEnvironment.h:
  • runtime/JSModuleEnvironment.h:
  • runtime/JSModuleNamespaceObject.h:
  • runtime/JSObject.cpp:

(JSC::JSObject::getOwnPropertySlot):
(JSC::JSObject::putInlineSlow):
(JSC::definePropertyOnReceiverSlow):
(JSC::JSObject::definePropertyOnReceiver):
(JSC::JSObject::putInlineFastReplacingStaticPropertyIfNeeded):
(JSC::JSObject::doPutPropertySecurityCheck): Deleted.
(JSC::JSObject::prototypeChainMayInterceptStoreTo): Deleted.

  • runtime/JSObject.h:

(JSC::JSObject::putByIndexInline):
(JSC::JSObject::hasNonReifiedStaticProperties):
(JSC::JSObject::getOwnPropertySlot):
(JSC::JSObject::putDirect):
(JSC::JSObject::doPutPropertySecurityCheck): Deleted.

  • runtime/JSObjectInlines.h:

(JSC::JSObject::canPerformFastPutInlineExcludingProto):
(JSC::JSObject::putInlineForJSObject):
(JSC::JSObject::putInlineFast):
(JSC::JSObject::putDirectInternal):

  • runtime/JSProxy.h:
  • runtime/JSTypeInfo.h:

(JSC::TypeInfo::hasStaticPropertyTable const):
(JSC::TypeInfo::overridesPut const):
(JSC::TypeInfo::getOwnPropertySlotMayBeWrongAboutDontEnum const):
(JSC::TypeInfo::hasPutPropertySecurityCheck const): Deleted.

  • runtime/Lookup.h:

(JSC::putEntry): Deleted.
(JSC::lookupPut): Deleted.

  • runtime/PropertySlot.h:
  • runtime/ProxyObject.cpp:

(JSC::ProxyObject::put):

  • runtime/ProxyObject.h:
  • runtime/PutPropertySlot.h:

(JSC::PutPropertySlot::PutPropertySlot):
(JSC::PutPropertySlot::context const):
(JSC::PutPropertySlot::isTaintedByOpaqueObject const):
(JSC::PutPropertySlot::setIsTaintedByOpaqueObject):

  • runtime/ReflectObject.cpp:

(JSC::JSC_DEFINE_HOST_FUNCTION):

  • runtime/RegExpObject.cpp:

(JSC::RegExpObject::put):

  • runtime/RegExpObject.h:
  • runtime/StringObject.cpp:

(JSC::StringObject::put):

  • runtime/StringObject.h:
  • runtime/StringPrototype.cpp:

(JSC::StringPrototype::finishCreation):
(JSC::StringPrototype::create):

  • runtime/StringPrototype.h:
  • runtime/Structure.cpp:

(JSC::Structure::validateFlags):

  • runtime/Structure.h:

(JSC::Structure::hasNonReifiedStaticProperties const):

  • tools/JSDollarVM.cpp:

Source/WebCore:

Fixes:

  1. Legacy platform object's Set? now guards against altered receiver [1]. (aligns with Blink).
  2. Direct Set? to window.%Interface% constructor now preserves DontEnum attribute [2]. (aligns with Blink and Gecko).
  3. Cross-origin non-index put() now throws SecurityError instead of silently failing [3]. (aligns with Blink and Gecko).

Refactors:

  1. Simplifies cross-origin JSDOMWindow::put(), aligning it with JSLocation::put().
  2. Replaces lookupPut() with direct setter call in JSRemoteDOMWindow::put().
  3. Removes now unused doPutPropertySecurityCheck() methods.

Tests: js/dom/script-tests/reflect-set-onto-dom.js

imported/w3c/web-platform-tests/WebIDL/ecmascript-binding/interface-object-set-receiver.html
http/tests/security/cross-frame-access-object-getPrototypeOf-in-put.html

[1] https://heycam.github.io/webidl/#legacy-platform-object-set (step 1)
[2] https://heycam.github.io/webidl/#define-the-global-property-references (step 3.1.3)
[3] https://html.spec.whatwg.org/multipage/browsers.html#crossoriginset-(-o,-p,-v,-receiver-) (step 4)

  • bindings/js/JSDOMWindowCustom.cpp:

(WebCore::JSDOMWindow::put):
(WebCore::JSDOMWindow::doPutPropertySecurityCheck): Deleted.

  • bindings/js/JSLocationCustom.cpp:

(WebCore::JSLocation::doPutPropertySecurityCheck): Deleted.

  • bindings/js/JSRemoteDOMWindowCustom.cpp:

(WebCore::JSRemoteDOMWindow::put):

  • bindings/scripts/CodeGeneratorJS.pm:

(GeneratePut):
(GenerateHeader):

  • bindings/scripts/test/JS/*: Updated.
  • bridge/objc/objc_runtime.h:
  • bridge/runtime_array.h:
  • bridge/runtime_object.h:

Source/WebKit:

  • WebProcess/Plugins/Netscape/JSNPObject.h:

LayoutTests:

  • http/tests/security/cross-frame-access-object-getPrototypeOf-in-put-expected.txt:
  • http/tests/security/cross-frame-access-object-getPrototypeOf-in-put.html:
  • js/dom/reflect-set-onto-dom-expected.txt:
  • js/dom/script-tests/reflect-set-onto-dom.js:
8:04 AM Changeset in webkit [276591] by don.olmstead@sony.com
  • 2 edits in trunk/Source/WebCore

ANGLE X11 build fixes
https://bugs.webkit.org/show_bug.cgi?id=225003

Reviewed by Kenneth Russell.

X11 headers define a bunch of macros with common terms, interfering with WebCore and WTF
enum values. As a workaround, we explicitly undef them.

This is the same fix as the one to GLContext.h in r274869 but applied to the ANGLE headers
that are including X11.

  • platform/graphics/angle/ANGLEHeaders.h:
7:28 AM Changeset in webkit [276590] by pvollan@apple.com
  • 2 edits in trunk/Source/WebKit

[iOS] Update sandbox message filter syntax
https://bugs.webkit.org/show_bug.cgi?id=223384

Reviewed by Brent Fulgham.

Update sandbox message filter syntax on iOS. The previous syntax should also still be supported.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
7:22 AM Changeset in webkit [276589] by Diego Pino Garcia
  • 1 edit
    2 adds in trunk/LayoutTests

[GLIB] Unreviewed test gardening. Emit new GLIB baselines after r276584.

  • platform/glib/imported/w3c/web-platform-tests/shadow-dom/event-on-pseudo-element-crash-expected.txt: Added.
  • platform/glib/imported/w3c/web-platform-tests/shadow-dom/imperative-slot-api-crash-expected.txt: Added.
6:17 AM Changeset in webkit [276588] by Antti Koivisto
  • 10 edits in trunk/Source/WebCore

Refcount Style::Resolver
https://bugs.webkit.org/show_bug.cgi?id=225048

Reviewed by Ryosuke Niwa.

For safety, and to allow more sharing in the future.

  • css/DOMCSSRegisterCustomProperty.cpp:

(WebCore::DOMCSSRegisterCustomProperty::registerProperty):

  • dom/Document.cpp:

(WebCore::Document::userAgentShadowTreeStyleResolver):

  • dom/Document.h:
  • style/StyleResolver.cpp:

Also make the Resolver ISO-allocated.

(WebCore::Style::Resolver::create):

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

(WebCore::Style::Scope::resolver):

  • style/StyleScope.h:
  • style/StyleTreeResolver.cpp:

(WebCore::Style::TreeResolver::Scope::Scope):
(WebCore::Style::TreeResolver::Scope::~Scope):
(WebCore::Style::TreeResolver::styleForStyleable):
(WebCore::Style::TreeResolver::resolveElement):
(WebCore::Style::TreeResolver::resolvePseudoStyle):
(WebCore::Style::TreeResolver::resolve):

  • style/StyleTreeResolver.h:
5:27 AM Changeset in webkit [276587] by Razvan Caliman
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: REGRESSION(r270134) Elements Tab: Details Sidebar toggle is unexpectedly disabled after switching from Timelines tab
https://bugs.webkit.org/show_bug.cgi?id=224772
<rdar://73470211>

Reviewed by Devin Rousso.

Ensure the logic for identifying and showing the represented object for the selected DOMNode
is not run unless the Elements Tab is visible. This guards agains the partial setting of state
when the Elements Tab is not the default tab while opening Web Inspector.

  • UserInterface/Views/ElementsTabContentView.js:

(WI.ElementsTabContentView):
(WI.ElementsTabContentView.prototype.showRepresentedObject):
(WI.ElementsTabContentView.prototype.attached):
(WI.ElementsTabContentView.prototype.detached):
(WI.ElementsTabContentView.prototype._showDOMTreeContentViewIfNeeded):
(WI.ElementsTabContentView.prototype._mainFrameDidChange):
(WI.ElementsTabContentView.prototype._mainResourceDidChange):

4:59 AM Changeset in webkit [276586] by eocanha@igalia.com
  • 10 edits
    2 deletes in trunk

[GStreamer] media/track/in-band/ layout tests introduced in r154908 are failing
https://bugs.webkit.org/show_bug.cgi?id=120665

Reviewed by Philippe Normand.

Source/WebCore:

Solved a deadlock when processing samples from a text track while the main thread is starting to play.
In those circumstances, the text sink is set by Playbin as non-async, so the main thread calling
MediaPlayerPrivateGStreamer::play() is blocked waiting for the preroll to finish. While prerolling,
a text sample is detected in a non-main thread and sent to the main thread for processing. The current
code waits in the non-main thread for the processing to finish, but that won't ever happen because
the main thread is busy in play() waiting for the preroll to complete. Since the non-main thread
doesn't need any result from the main thread, a simple change to avoid the wait is enough to solve the
deadlock.

There was also a bug preventing all the languages of the text tracks being detected on time. Sometimes
the tag event specifying the track language emitted by the demuxer arrives too late to the
webkittextcombiner sink pad (up to several seconds since sent!) and the language remains unset when
the test checks for it. As a result, the test fails because the second track isn't reported to be in
French language ("fr"). The solution to this is to find an earlier (more upstream) pad and listen
there for the (sticky) tag events. There can be multiple tag events, so all of them are checked until
one having the GST_TAG_LANGUAGE_CODE tag is found.

Covered by existing tests (now unskipped).

  • platform/graphics/gstreamer/TextSinkGStreamer.cpp:

(webkitTextSinkHandleSample): Don't wait for handleTextSample() to be completed in the main thread. This avoids the deadlock.

  • platform/graphics/gstreamer/TrackPrivateBaseGStreamer.cpp:

(WebCore::findBestUpstreamPad): Find a pad more upstream than the current one.
(WebCore::TrackPrivateBaseGStreamer::TrackPrivateBaseGStreamer): Call setPad() instead of setting it by hand here.
(WebCore::TrackPrivateBaseGStreamer::setPad): Also manage m_bestUpstreamPad in parallel to m_pad. Add a probe to listen to the tag events instead of checking the "tags" property (the property wasn't present in the best upstream pad).
(WebCore::TrackPrivateBaseGStreamer::disconnect): Remove the probe from m_bestUpstreamPad, instead of removing the old notify::tags listener from m_pad.
(WebCore::TrackPrivateBaseGStreamer::tagsChanged): Check the sticky tag events until the language one is found (or the last event if no language event is available).

  • platform/graphics/gstreamer/TrackPrivateBaseGStreamer.h: Added m_bestUpstreamPad and m_eventProbe. Moved setPad() implementation to the cpp file.

Tools:

Fix media/track/in-band/tests

Add libkate as dependency, so gst-plugins-bad detects it and can build the GstKateDec element.
This isn't actually needed when using Flatpak (the dependency has been added there), but is still
useful when using jhbuild and is also coherent with the need of other multimedia dependencies
such as libvpx.

  • gtk/install-dependencies:
  • wpe/install-dependencies:

LayoutTests:

Removed track-in-band-mpegts-metadata.html because it relies on private streams on mpegts
and those won't ever be exposed by tsdemux. Made testCuesAddedOnce() test more robust
when finding text tracks.

  • media/content/user-private-streams.ts: Removed.
  • media/in-band-tracks.js:

(pollProgress): Make sure that the function repeated at intervals is properly stopped in all the cases.
(canplaythrough): More robust track detection.
(testCuesAddedOnce): Ditto.

  • media/track/in-band/track-in-band-mpegts-metadata.html: Removed.
  • platform/glib/TestExpectations: Unskip media/track/in-band tests.
3:56 AM Changeset in webkit [276585] by rniwa@webkit.org
  • 4 edits in trunk

Implement ShadowRoot.prototype.delegatesFocus attribute
https://bugs.webkit.org/show_bug.cgi?id=224805

Reviewed by Antti Koivisto.

LayoutTests/imported/w3c:

Rebaselined now that test casses are passing.

  • web-platform-tests/shadow-dom/focus/ShadowRoot-delegatesFocus-expected.txt:

Source/WebCore:

Added the IDL attribute. Chrome had supported this IDL attribute for ages.

Test: imported/w3c/web-platform-tests/shadow-dom/focus/ShadowRoot-delegatesFocus.html

  • dom/ShadowRoot.idl:
2:25 AM Changeset in webkit [276584] by rniwa@webkit.org
  • 16 edits
    24 adds
    7 deletes in trunk/LayoutTests

Resync WPT shadow DOM tests as of 02f0cc10
https://bugs.webkit.org/show_bug.cgi?id=225042

Reviewed by Antti Koivisto.

LayoutTests/imported/w3c:

Resync'ed shadow DOM tests as of 02f0cc10c4e92627ccfd8b30ce03e04278af5224.

  • resources/resource-files.json:
  • web-platform-tests/shadow-dom/accesskey.tentative-expected.txt: Added.
  • web-platform-tests/shadow-dom/accesskey.tentative.html: Added.
  • web-platform-tests/shadow-dom/declarative/declarative-after-attachshadow.tentative.html:
  • web-platform-tests/shadow-dom/declarative/declarative-shadow-dom-attachment.tentative.html:
  • web-platform-tests/shadow-dom/declarative/declarative-shadow-dom-basic.tentative.html:
  • web-platform-tests/shadow-dom/declarative/declarative-shadow-dom-opt-in.tentative.html:
  • web-platform-tests/shadow-dom/declarative/declarative-with-disabled-shadow.tentative-expected.txt: Added.
  • web-platform-tests/shadow-dom/declarative/declarative-with-disabled-shadow.tentative.html: Added.
  • web-platform-tests/shadow-dom/declarative/getinnerhtml.tentative.html:
  • web-platform-tests/shadow-dom/declarative/innerhtml-before-closing-tag.tentative-expected.txt: Added.
  • web-platform-tests/shadow-dom/declarative/innerhtml-before-closing-tag.tentative.html: Renamed from innerhtml-before-closing-tag.html.
  • web-platform-tests/shadow-dom/declarative/innerhtml-on-ordinary-template.tentative-expected.txt: Added.
  • web-platform-tests/shadow-dom/declarative/innerhtml-on-ordinary-template.tentative.html: Renamed from innerhtml-on-ordinary-template.html.
  • web-platform-tests/shadow-dom/declarative/move-template-before-closing-tag.tentative-expected.txt: Added.
  • web-platform-tests/shadow-dom/declarative/move-template-before-closing-tag.tentative.html: Renamed from move-template-before-closing-tag.html.
  • web-platform-tests/shadow-dom/declarative/script-access.tentative.html:
  • web-platform-tests/shadow-dom/declarative/w3c-import.log:
  • web-platform-tests/shadow-dom/event-on-pseudo-element-crash.html: Added.
  • web-platform-tests/shadow-dom/focus/ShadowRoot-delegatesFocus-expected.txt: Added.
  • web-platform-tests/shadow-dom/focus/ShadowRoot-delegatesFocus.html: Added.
  • web-platform-tests/shadow-dom/focus/focus-selector-delegatesFocus.html:
  • web-platform-tests/shadow-dom/focus/w3c-import.log:
  • web-platform-tests/shadow-dom/imperative-slot-api-crash-expected.txt: Added.
  • web-platform-tests/shadow-dom/imperative-slot-api-crash.html: Added.
  • web-platform-tests/shadow-dom/imperative-slot-api-expected.txt: Added.
  • web-platform-tests/shadow-dom/imperative-slot-api-slotchange-expected.txt: Renamed from slots-imperative-api-slotchange.tentative-expected.txt.
  • web-platform-tests/shadow-dom/imperative-slot-api-slotchange.html: Renamed from slots-imperative-api-slotchange.tentative.html.
  • web-platform-tests/shadow-dom/imperative-slot-api.html: Renamed from slots-imperative-slot-api.tentative.html.
  • web-platform-tests/shadow-dom/nested-slot-remove-crash-expected.txt:
  • web-platform-tests/shadow-dom/nested-slot-remove-crash.html:
  • web-platform-tests/shadow-dom/w3c-import.log:

LayoutTests:

Rebaselined the test and added platform specific results for the crash tests.

  • platform/ios/imported/w3c/web-platform-tests/shadow-dom/imperative-slot-api-crash-expected.txt: Added.
  • platform/ios/imported/w3c/web-platform-tests/shadow-dom/event-on-pseudo-element-crash-expected.txt: Added.
  • platform/mac/imported/w3c/web-platform-tests/shadow-dom/event-on-pseudo-element-crash-expected.txt: Added.
  • platform/glib/imported/w3c/web-platform-tests/shadow-dom/nested-slot-remove-crash-expected.txt: Rebaselined.
2:04 AM Changeset in webkit [276583] by Angelos Oikonomopoulos
  • 2 edits in trunk/Source/WTF

Bump CeilingOnPageSize to 16KB on MIPS
https://bugs.webkit.org/show_bug.cgi?id=225030

Reviewed by Michael Catanzaro.

  • wtf/PageBlock.h:
1:21 AM Changeset in webkit [276582] by commit-queue@webkit.org
  • 3 edits
    2 adds in trunk

embed element with the src attribute set prevents WebKitTestRunner from exiting
https://bugs.webkit.org/show_bug.cgi?id=223791

Patch by Carlos Garcia Campos <cgarcia@igalia.com> on 2021-04-26
Reviewed by Ryosuke Niwa.

Source/WebCore:

The problem is that the load never finishes, so WTR keeps waiting for the final message from injected bundle
that happens when the page is loaded. When the src attribute is changed,
HTMLPlugInImageElement::updateImageLoaderWithNewURLSoon() is called. That calls
HTMLPlugInImageElement::scheduleUpdateForAfterStyleResolution() that increases the document load event delay
count and queues a style post resolution callback. The document load event delay count is decreased in
HTMLPlugInImageElement::updateAfterStyleResolution(), called by the style post resolution callback. But the
callback is never called because the embed element is not in tree, and it's never added, keeping the document
load event delay unbalanced. We should not call scheduleUpdateForAfterStyleResolution() when the element
is not in render tree, since we know Node::invalidateStyle() will return early and style post resolution
callbacks will not be called. If the element is added to the tree eventually,
scheduleUpdateForAfterStyleResolution() will be called by didRecalcStyle, so the image will be loaded.

Test: fast/images/embed-image-onload-src-change.html

  • html/HTMLPlugInImageElement.cpp:

(WebCore::HTMLPlugInImageElement::updateImageLoaderWithNewURLSoon):

LayoutTests:

Add new test.

  • fast/images/embed-image-onload-src-change-expected.txt: Added.
  • fast/images/embed-image-onload-src-change.html: Added.

Apr 25, 2021:

10:51 PM Changeset in webkit [276581] by rniwa@webkit.org
  • 2 edits in trunk/Tools

Add an option to not enable all experimental features in DumpRenderTree
https://bugs.webkit.org/show_bug.cgi?id=225041

Reviewed by Wenson Hsieh.

Added --no-enable-all-experimental-features to DumpRenderTree as we did
for WebKitTestRunner in r276559.

  • DumpRenderTree/mac/DumpRenderTree.mm:

(setWebPreferencesForTestOptions):
(initializeGlobalsFromCommandLineOptions):

10:24 PM Changeset in webkit [276580] by rniwa@webkit.org
  • 4 edits in trunk/LayoutTests

Unreviewesd EWS fixes.

Skip http/tests/security/referrer-policy-header-multipart.html on WebKit1
after r276526 split it out of http/tests/security/referrer-policy-header.html

  • platform/mac-wk1/TestExpectations:
  • platform/win/TestExpectations:
  • platform/wincairo/TestExpectations:
7:05 PM Changeset in webkit [276579] by Fujii Hironori
  • 2 edits in trunk/LayoutTests

[WinCairo] Unreviewed test gardening

  • platform/wincairo/TestExpectations:
6:03 PM Changeset in webkit [276578] by ChangSeok Oh
  • 6 edits
    2 adds in trunk

Fix a crash caused by AVIF decoding failure
https://bugs.webkit.org/show_bug.cgi?id=223843
<rdar://problem/76205084>

Reviewed by Philippe Normand.

Source/WebCore:

A crash happens when the image count is accessed in AVIFImageDecoder::tryDecodeSize.
This is because an instance of AVIFImageReader is destroyed by setFailed()
in AVIFImageReader::parseHeader. Deciding a failure was hasty because
parsing can fail when necessary data is not received yet. To fix this,
we call setFailed in AVIFImageReader::parseHeader only when all data is received.

Test: http/tests/images/avif-partial-load-crash.html

  • platform/image-decoders/avif/AVIFImageDecoder.cpp:

(WebCore::AVIFImageDecoder::tryDecodeSize):

  • platform/image-decoders/avif/AVIFImageReader.cpp:

(WebCore::AVIFImageReader::parseHeader):
(WebCore::AVIFImageReader::repetitionCount const):

  • platform/image-decoders/avif/AVIFImageReader.h:

LayoutTests:

Check if partial load of avif images crashes.

  • TestExpectations: Skip the test for non-gtk platforms.
  • http/tests/images/avif-partial-load-crash-expected.txt: Added.
  • http/tests/images/avif-partial-load-crash.html: Added.
3:59 PM Changeset in webkit [276577] by Darin Adler
  • 6 edits in trunk

Fix handling of overflow of /= and *= operators with double over Checked<uint64_t> and other 64-bit types.
https://bugs.webkit.org/show_bug.cgi?id=224835

Reviewed by Chris Dumez.

Source/WebCore:

  • platform/graphics/gpu/cocoa/GPUBindGroupAllocatorMetal.mm:

(WebCore::GPUBindGroupAllocator::reallocate): Use integer math instead of floating point math to increase
the size by 25% each time through the loop, staying within the capabilities of our checked integer class.

Source/WTF:

  • wtf/CheckedArithmetic.h: Since it is quite difficult to write correct implementations of the

operations where we multiply or divide a checked integer by a floating point number, deleted
those functions, which were barely used. Also corrected return types of various member functions,
which were unconventional "const Type", replacing them with the conventional "Type" for functions
that return a distinct value, "Type&" for assignment operators, and bool for relational operators.

Tools:

  • TestWebKitAPI/Tests/WTF/CheckedArithmeticOperations.cpp:

Removed tests of the "/=" operator with floating point arguments, no longer supported.

3:53 PM Changeset in webkit [276576] by Cameron McCormack
  • 5 edits in trunk/Source/WebCore

Remove templated operator<<(TextStream&, T*) that interferes with raw pointer formatting.
https://bugs.webkit.org/show_bug.cgi?id=224962

Reviewed by Darin Adler.

We can end up calling into this one (which unhelpfully casts its
argument to intptr_t) instead of the const void* one in
TextStream.h.

Removing this means we can drop static_cast<const void*>(...) in
various places in debugging output code.

  • rendering/RenderLayer.cpp:

(WebCore::outputPaintOrderTreeRecursive):

  • rendering/RenderTreeAsText.cpp:

(WebCore::RenderTreeAsText::writeRenderObject):

  • rendering/svg/SVGRenderTreeAsText.cpp:

(WebCore::writeStandardPrefix):

  • rendering/svg/SVGRenderTreeAsText.h:
3:06 PM Changeset in webkit [276575] by rniwa@webkit.org
  • 24 edits
    1 delete in trunk/Source/WebCore

Make more IndexedDB objects iso-heap'ed
https://bugs.webkit.org/show_bug.cgi?id=225029

Reviewed by Darin Adler.

Deployed IsoHeap on more IndexedDB objects.

  • Modules/indexeddb/IDBFactory.cpp:
  • Modules/indexeddb/IDBFactory.h:
  • Modules/indexeddb/IDBGetAllResult.cpp:
  • Modules/indexeddb/IDBGetAllResult.h:
  • Modules/indexeddb/IDBGetResult.cpp:
  • Modules/indexeddb/IDBGetResult.h:
  • Modules/indexeddb/IDBIndex.cpp:
  • Modules/indexeddb/IDBIndex.h:
  • Modules/indexeddb/IDBKey.cpp:
  • Modules/indexeddb/IDBKey.h:
  • Modules/indexeddb/IDBObjectStore.cpp:
  • Modules/indexeddb/IDBObjectStore.h:
  • Modules/indexeddb/IDBRecordIdentifier.h: Removed since it's not used anywhere.
  • Modules/indexeddb/IDBRequest.cpp:
  • Modules/indexeddb/IDBRequest.h:
  • Modules/indexeddb/client/IDBConnectionProxy.cpp:
  • Modules/indexeddb/client/IDBConnectionProxy.h:
  • Modules/indexeddb/client/IDBConnectionToServer.cpp:
  • Modules/indexeddb/client/IDBConnectionToServer.h:
  • Modules/indexeddb/client/TransactionOperation.cpp:
  • Modules/indexeddb/client/TransactionOperation.h:
  • Modules/indexeddb/shared/IDBDatabaseInfo.cpp:
  • Modules/indexeddb/shared/IDBDatabaseInfo.h:
  • WebCore.xcodeproj/project.pbxproj:
2:45 PM Changeset in webkit [276574] by Devin Rousso
  • 9 edits
    1 delete in trunk/Source

Add ALWAYS_LOG_WITH_STREAM macro for easier development/debugging
https://bugs.webkit.org/show_bug.cgi?id=224959

Reviewed by Darin Adler.

It's often very helpful to use existing operator<< defined on objects, but annoying to
have to copypaste the boilerplate code that creates a WTF::TextStream and uses it in a
WTFLogAlways or wait for a debug build to enable existing LOG_WITH_STREAM.

Source/WebCore:

  • platform/Logging.h:

Move contents of pal/LogMacros.h to wtf/Assertions.h.

Source/WebCore/PAL:

  • pal/LogMacros.h: Removed.
  • PAL.xcodeproj/project.pbxproj:
  • pal/CMakeLists.txt:

Move contents of pal/LogMacros.h to wtf/Assertions.h.

Source/WebKit:

  • Platform/Logging.h:

Move contents of pal/LogMacros.h to wtf/Assertions.h.

Source/WTF:

  • wtf/Assertions.h:

(LOG_WITH_STREAM): Moved from Source/WebCore/pal/LogMacros.h.
(ALWAYS_LOG_WITH_STREAM): Added.
Add ALWAYS_LOG_WITH_STREAM so that one change existing LOG when debugging with minimal
friction. As an example, many times I've wished I could've just changed
`

LOG_WITH_STREAM(Channel, stream << node);

`
to something like
`

ALWAYS_LOG_WITH_STREAM(stream << node);

`
and avoid having to modify the surrounding code too much.

2:09 PM Changeset in webkit [276573] by Devin Rousso
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Audit: REGRESSION(?): creating a new test in Edit mode causes the Results folder to appear
https://bugs.webkit.org/show_bug.cgi?id=224994

Reviewed by Darin Adler.

  • UserInterface/Views/AuditNavigationSidebarPanel.js:

(WI.AuditNavigationSidebarPanel.prototype._addTest):

2:00 PM Changeset in webkit [276572] by commit-queue@webkit.org
  • 8 edits
    1 add in trunk

[css-flexbox] Table layout disregards overriding width
https://bugs.webkit.org/show_bug.cgi?id=224934

Patch by Felipe Erias <Felipe Erias> on 2021-04-25
Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Update expectations.

  • web-platform-tests/css/css-flexbox/table-with-percent-intrinsic-width-expected.txt: This test now passes.

Source/WebCore:

If a table's parent has set an overriding width on it, that value will get preference over the one from
the table's "width" property. This fixes several tests where the width assigned by the flexbox algorithm
did not match the width of the table after layout.

  • rendering/AutoTableLayout.cpp:

(WebCore::AutoTableLayout::applyPreferredLogicalWidthQuirks const): Give precedence to the element's
overriding width if it has been set.

  • rendering/RenderTable.cpp:

(WebCore::RenderTable::updateLogicalWidth): Give precedence to the element's overriding width if it
has been set, instead of discarding it if it is smaller than the style width.
(WebCore::RenderTable::computePreferredLogicalWidths): Take the overriding width into account when
computing the preferred min/max values for the element.

LayoutTests:

  • TestExpectations: Remove three WPT tests that now pass.
  • platform/glib/TestExpectations: Remove one WPT test that now passes.
  • platform/gtk/imported/w3c/web-platform-tests/css/css-flexbox/flex-item-contains-strict-expected.txt: Added.
1:38 PM Changeset in webkit [276571] by jer.noble@apple.com
  • 5 edits in trunk/Source/WebKit

[GPUP] REGRESSION: Selecting play/pause on Spotify.com causes page to reload
https://bugs.webkit.org/show_bug.cgi?id=225023
<rdar://76985997>

Reviewed by Darin Adler.

A zero ObjectIdentifier is apparently invalid, which causes a debug ASSERT on the sending
side and a SIGKILL on the receiving side. Replace the zero ObjectIdentifier message when
clearing a LegacyCDMSession with an Optional<ObjectIdentifier>, and send an explicit
WTF::nullopt when clearing.

  • GPUProcess/media/RemoteMediaPlayerProxy.cpp:

(WebKit::RemoteMediaPlayerProxy::mediaPlayerCachedKeyForKeyId const):
(WebKit::RemoteMediaPlayerProxy::setLegacyCDMSession):

  • GPUProcess/media/RemoteMediaPlayerProxy.h:
  • GPUProcess/media/RemoteMediaPlayerProxy.messages.in:
  • WebProcess/GPU/media/MediaPlayerPrivateRemote.cpp:

(WebKit::MediaPlayerPrivateRemote::setCDMSession):

1:32 PM Changeset in webkit [276570] by jer.noble@apple.com
  • 5 edits in trunk/Source/WebKit

[GPUP][iOS] Silent video playback can interrupt system audio
https://bugs.webkit.org/show_bug.cgi?id=225031
<rdar://76652073>

Reviewed by Eric Carlson.

When the WebContent process asks the GPU Process to set the AVAudioSession audio session
category, the GPU Process as an optimization returns early if the session category being
requested is the same as has already been set. However, the default value of the category
is "None" (which translates to AVAudioSessionCategoryAmbient), and setting the category
to "None" becomes a no-op due to this default. As such, the GPUP never sets the underlying
AVAudioSession's category away from the default, which is AVAudioSessionCategorySoloAmbient,
and thus will interrupt other audio during playback.

Additionally, there's a subtle logic error where the audio session category is not changed
when a given WebContent process (and it's RemoteAudioSession & Proxy) goes away.

The fix for both of these issues is to re-calculate the correct audio session category
when a RemoteAudioSessionProxy is added or removed from RemoteAudioSessionProxyManager.
Since "None" is the default value for a RemoteAudioSessionProxy, the mere act of adding
a new RemoteAudioSessionProxy (which is created when a WebContent process is created)
will cause the audio session category to be set to AVAudioSessionCategoryAmbient.

  • GPUProcess/media/RemoteAudioSessionProxy.cpp:

(WebKit::RemoteAudioSessionProxy::setCategory):

  • GPUProcess/media/RemoteAudioSessionProxy.h:
  • GPUProcess/media/RemoteAudioSessionProxyManager.cpp:

(WebKit::RemoteAudioSessionProxyManager::addProxy):
(WebKit::RemoteAudioSessionProxyManager::removeProxy):
(WebKit::RemoteAudioSessionProxyManager::updateCategory):
(WebKit::RemoteAudioSessionProxyManager::setCategoryForProcess): Deleted.

  • GPUProcess/media/RemoteAudioSessionProxyManager.h:
12:17 PM Changeset in webkit [276569] by commit-queue@webkit.org
  • 7 edits in trunk/Source/ThirdParty/ANGLE

[Metal ANGLE] support primitive restart behavior with simple data types
https://bugs.webkit.org/show_bug.cgi?id=225011

Primitive restart behavior for simple data types is not defined in Metal. Add a pre-draw pass to
create a set of restart indices, rather than re-write the index buffer. This pass avoids
storing more copies of the index buffer: instead, we cache the location of restart indices, and
use them to build draw lists.

Patch by Kyle Piddington <Kyle Piddington> on 2021-04-25
Reviewed by Dean Jackson.

  • src/libANGLE/renderer/metal/BufferMtl.h:
  • src/libANGLE/renderer/metal/BufferMtl.mm:

(rx::IndexConversionBufferMtl::IndexConversionBufferMtl):
(rx::BufferMtl::markConversionBuffersDirty):
(rx::calculateRestartRanges):
(rx::BufferMtl::getRestartIndices):

  • src/libANGLE/renderer/metal/ContextMtl.h:
  • src/libANGLE/renderer/metal/ContextMtl.mm:

(rx::ContextMtl::drawLineLoopElements):
(rx::ContextMtl::drawElementsImpl):
(rx::ContextMtl::drawElementsSimpleTypesPrimitiveRestart): Deleted.

  • src/libANGLE/renderer/metal/VertexArrayMtl.h:
  • src/libANGLE/renderer/metal/VertexArrayMtl.mm:

(rx::VertexArrayMtl::getIndexBuffer):
(rx::VertexArrayMtl::getDrawIndices):
(rx::VertexArrayMtl::convertIndexBuffer):
(rx::VertexArrayMtl::streamIndexBufferFromClient):

12:16 PM Changeset in webkit [276568] by commit-queue@webkit.org
  • 2 edits in trunk/Source/ThirdParty/ANGLE

[Metal ANGLE] Temporarily remove AST validation even for debug builds
https://bugs.webkit.org/show_bug.cgi?id=224991
rdar://76299178

Patch by John Cunningham <johncunningham@apple.com> on 2021-04-25
Reviewed by Kenneth Russell.

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

(rx::ShaderMtl::compileImplMtl):

12:06 PM Changeset in webkit [276567] by commit-queue@webkit.org
  • 3 edits in trunk/Source/ThirdParty/ANGLE

[Metal ANGLE] Select proper IOSurface backing format for WebGL environment
https://bugs.webkit.org/show_bug.cgi?id=224948
<rdar://76284889>

Depending on the architecture, WebCore expects different
IOSurface texture targets for the main buffer. When running catalyst on
Arm64 devices, Metal-ANGLE needs to select the TEXTURE_2D texture target for our
IOSurface/Pbuffer bind point, rather than TEXTURE_RECTANGLE.

Reviewed by Dean Jackson.

Patch by Kyle Piddington <Kyle Piddington> on 2021-04-25

  • src/libANGLE/renderer/metal/DisplayMtl.h:
  • src/libANGLE/renderer/metal/DisplayMtl.mm:

(rx::needsEAGLOnMac):
(rx::DisplayMtl::EGLDrawingBufferTextureTarget):
(rx::DisplayMtl::generateConfigs):

11:35 AM Changeset in webkit [276566] by dino@apple.com
  • 2 edits in trunk/Source/WebKit

[WebXR] Should be enabled when WEBXR_INTERNALS is true
https://bugs.webkit.org/show_bug.cgi?id=225026
<rdar://problem/77111380>

Reviewed by Sam Weinig.

  • Shared/WebPreferencesDefaultValues.cpp:

(WebKit::defaultWebXREnabled): Return true when HAVE(WEBXR_INTERNALS).

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

css-contain category missing from CSSProperties.json
https://bugs.webkit.org/show_bug.cgi?id=224990

Patch by Tyler Wilcock <Tyler Wilcock> on 2021-04-25
Reviewed by Darin Adler.

  • css/CSSProperties.json:

Add missing css-contain category to avoid style lint errors. Example
error:

ERROR: Source/WebCore/css/CSSProperties.json:0: property "contain" has category "css-contain" which is not in the set of categories. [json/syntax] [5]

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

jsonchecker.py validate_string uses Python 2 basestring type instead of Python 2/3 str type
https://bugs.webkit.org/show_bug.cgi?id=224978

Patch by Tyler Wilcock <Tyler Wilcock> on 2021-04-25
Reviewed by Darin Adler.

validate_string uses the Python 2 basestring type instead of the Python 2/3
str type. This causes the check to exit early the first time it validates
a string with this error:

name 'basestring' is not defined

This resulted in jsonchecker not checking the file beyond the first
string validation.

I believe this caused jsonchecker to miss a bug in one of my previous
patches in which I put the "settings-flag" property in the wrong
place:

https://bugs.webkit.org/show_bug.cgi?id=224718#c20

  • Scripts/webkitpy/style/checkers/jsonchecker.py:

(JSONCSSPropertiesChecker.validate_string):
validate_string with Python 2 / 3 str type instead of Python 2
basestring.

Apr 24, 2021:

10:59 PM Changeset in webkit [276563] by rniwa@webkit.org
  • 4 edits in trunk/Source/WebCore

Deploy Ref/RefPtr in DeleteSelectionCommand
https://bugs.webkit.org/show_bug.cgi?id=225028

Reviewed by Wenson Hsieh.

Deployed smart pointers in DeleteSelectionCommand.

Also deployed ScriptDisallowedScope around the code which accesses the render tree.

No new tests since there should be no observable behavioral differences.

  • editing/DeleteSelectionCommand.cpp:

(WebCore::isTableRowEmpty):
(WebCore::isSpecialHTMLElement): Moved from Editing.cpp.
(WebCore::firstInSpecialElement): Ditto.
(WebCore::lastInSpecialElement): Ditto.
(WebCore::positionBeforeContainingSpecialElement): Ditto. Now returns a pair instead of returning
Position and "returning" the special element via an out argument.
(WebCore::positionAfterContainingSpecialElement): Ditto.
(WebCore::DeleteSelectionCommand::initializeStartEnd):
(WebCore::DeleteSelectionCommand::initializePositionData):
(WebCore::DeleteSelectionCommand::handleSpecialCaseBRDelete):
(WebCore::firstEditablePositionInNode):
(WebCore::DeleteSelectionCommand::insertBlockPlaceholderForTableCellIfNeeded):
(WebCore::DeleteSelectionCommand::removeNode):
(WebCore::DeleteSelectionCommand::handleGeneralDelete):
(WebCore::DeleteSelectionCommand::mergeParagraphs):
(WebCore::DeleteSelectionCommand::removePreviouslySelectedEmptyTableRows):
(WebCore::DeleteSelectionCommand::originalStringForAutocorrectionAtBeginningOfSelection):
(WebCore::DeleteSelectionCommand::doApply):

  • editing/Editing.cpp:

(WebCore::isRenderedTable): Return false when the node is not a HTMLElement for consistency.
(WebCore::isSpecialHTMLElement): Moved to DeleteSelectionCommand.cpp.
(WebCore::firstInSpecialElement): Ditto.
(WebCore::lastInSpecialElement): Ditto.
(WebCore::positionBeforeContainingSpecialElement): Ditto.
(WebCore::positionAfterContainingSpecialElement): Ditto.

  • editing/Editing.h:
7:12 PM Changeset in webkit [276562] by timothy_horton@apple.com
  • 15 edits
    5 adds in trunk

Changing the source of a model element with clipping applied does not update the model
https://bugs.webkit.org/show_bug.cgi?id=224917

Reviewed by Simon Fraser.

Source/WebCore:

Tests: model-element/model-element-contents-layer-updates-with-clipping.html

model-element/model-element-contents-layer-updates.html

Previously, a <model> with a contents clipping layer (e.g. border-radius)
would not reparent its contents layer in the right place when setContentsToModel
was called again (because the source changed), leaving the old model
contents layer in place.

  • platform/graphics/ca/GraphicsLayerCA.cpp:

(WebCore::GraphicsLayerCA::updateSublayerList):
Ensure that updateSublayerList always parents contentsLayer in one of its two homes:
under contentsClippingLayer, if it exists; otherwise, directly under the primary layer.

(WebCore::GraphicsLayerCA::setContentsToModel):
Drive-by fix a bug revealed by the tests for this patch: when swapping out the
contents layer in setContentsToModel, we also need to mark ContentsRectsChanged,
or the new contents layer will not get its bounds set during the subsequent flush.

(WebCore::GraphicsLayerCA::setContentsToPlatformLayer):
Remove special-case code that was added to fix this bug just for setContentsToPlatformLayer;
this case is now correctly handled for all contents layers by updateSublayerList.

(WebCore::GraphicsLayerCA::dumpInnerLayer const):

  • platform/graphics/GraphicsLayerClient.h:
  • platform/graphics/ca/PlatformCALayer.cpp:

(WebCore::PlatformCALayer::dumpAdditionalProperties):

  • platform/graphics/ca/PlatformCALayer.h:
  • testing/Internals.cpp:

(WebCore::toPlatformLayerTreeFlags):

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

Add a bit to platformLayerTreeAsText() that makes PlatformCALayerRemoteModelHosting
dump the size of the model that it is hosting, which is used in the test for this bug.

Remove the IncludeOpacity bit since we can just always log opacity if it's not the default.

Source/WebKit:

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

(WebKit::PlatformCALayerRemoteModelHosting::dumpAdditionalProperties):
Add a bit to platformLayerTreeAsText() that makes PlatformCALayerRemoteModelHosting
dump the size of the model that it is hosting, which is used in the test for this bug.

LayoutTests:

  • model-element/model-element-contents-layer-updates-expected.txt: Added.
  • model-element/model-element-contents-layer-updates-with-clipping-expected.txt: Added.
  • model-element/model-element-contents-layer-updates-with-clipping.html: Added.
  • model-element/model-element-contents-layer-updates.html: Added.
  • model-element/resources/cube.usdz: Added.
  • platform/ios-wk2/TestExpectations:
  • platform/mac/TestExpectations:

Add tests that ensure that adding a <model> with one source, then changing
it to another, correctly updates the content layer. Test this both
with and without clipping (the without-clipping case passed before this change,
with-clipping failed).

These tests only work on Cocoa ports with UI-side compositing enabled
because they depend on the PlatformCALayer subclass holding on to the model
data (and logging its size) in order to distinguish between the two models.

5:50 PM Changeset in webkit [276561] by aakash_jain@apple.com
  • 2 edits in trunk/Tools

Rename slave to worker in webkitpy - part 2
https://bugs.webkit.org/show_bug.cgi?id=224988

Reviewed by Jonathan Bedard.

  • Scripts/webkitpy/common/system/crashlogs_unittest.py:
5:47 PM Changeset in webkit [276560] by Russell Epstein
  • 1 copy in tags/Safari-611.2.5

Tag Safari-611.2.5.

5:39 PM Changeset in webkit [276559] by rniwa@webkit.org
  • 8 edits in trunk/Tools

Add an option to not enable all experimental features in WebKitTestRunner
https://bugs.webkit.org/show_bug.cgi?id=224958

Reviewed by Tim Horton.

Added --no-enable-all-experimental-features to run-webkit-tests and WebKitTestRunner.

It causes a crash in DumpRenderTree for now. We should rectify this in the future
when we align the behaviors of WebKitTestRunner and DumpRenderTree.

  • Scripts/webkitpy/layout_tests/run_webkit_tests.py:

(parse_args): Added --no-enable-all-experimental-features.

  • Scripts/webkitpy/port/driver.py:

(Driver.cmd_line): Pass along the option to WebKitTestRunner.

  • WebKitTestRunner/Options.cpp:

(WTR::handleOptionNoEnableAllExperimentalFeatures): Added.
(WTR::OptionsHandler::OptionsHandler): Added --no-enable-all-experimental-features.

  • WebKitTestRunner/Options.h:
  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::initialize):
(WTR::TestController::resetPreferencesToConsistentValues):

  • WebKitTestRunner/TestController.h:
3:31 PM Changeset in webkit [276558] by commit-queue@webkit.org
  • 4 edits
    2 adds in trunk

Crash in BreakBlockquoteCommand::doApply()
https://bugs.webkit.org/show_bug.cgi?id=224941

Patch by Julian Gonzalez <julian_a_gonzalez@apple.com> on 2021-04-24
Reviewed by Ryosuke Niwa.

Source/WebCore:

Despite assertions to the contrary, it is possible for there not to be any node
to move into the new blockquote in BreakBlockquoteCommand::doApply() as a result
of layout updates, so remove the assertions and handle this case.

Test: editing/pasteboard/paste-as-quotation-then-paste-crash.html

  • editing/BreakBlockquoteCommand.cpp:

(WebCore::BreakBlockquoteCommand::doApply):

LayoutTests:

Add test for this crash, running only on Release for now.
Thanks to Tuomas Karkkainen for its basic structure.

  • TestExpectations:
  • editing/pasteboard/paste-as-quotation-then-paste-crash-expected.txt: Added.
  • editing/pasteboard/paste-as-quotation-then-paste-crash.html: Added.
2:29 PM Changeset in webkit [276557] by Russell Epstein
  • 8 edits in branches/safari-611-branch/Source

Versioning.

WebKit-7611.2.5

2:21 PM Changeset in webkit [276556] by Russell Epstein
  • 8 edits in branches/safari-611-branch/Source/WebKit

Reland r275846 with Unreviewed crash fix. rdar://77106929

Corrects crash due to bad merge.

2:14 PM Changeset in webkit [276555] by Russell Epstein
  • 8 edits in branches/safari-611-branch/Source/WebKit

Revert "Re-land Cherry-pick r275846. rdar://problem/76727548"

This reverts commit r276398.

12:36 PM Changeset in webkit [276554] by graouts@webkit.org
  • 11 edits in trunk

Improve parsing and computed style of the rotate CSS property
https://bugs.webkit.org/show_bug.cgi?id=225019

Reviewed by Dean Jackson.

LayoutTests/imported/w3c:

Mark 2 WPT progressions and add some new parsing WPT tests for rotate.

  • web-platform-tests/css/css-transforms/animation/rotate-composition-expected.txt: We don't support additive interpolation,

the FAIL result is most likely a test that passed without proper support for the feature which now fails due to lack of
support for this feature.

  • web-platform-tests/css/css-transforms/parsing/rotate-parsing-valid-expected.txt:
  • web-platform-tests/css/css-transforms/parsing/rotate-parsing-valid.html:
  • web-platform-tests/web-animations/animation-model/animation-types/accumulation-per-property-002-expected.txt:
  • web-platform-tests/web-animations/animation-model/animation-types/addition-per-property-002-expected.txt:
  • web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-002-expected.txt:

Source/WebCore:

There were a few issues with how we parsed the rotate CSS property and how we dealt with it
when resolving the computed style.

When parsing, we required individual vector coordinates to be 1 when others were 0 for a vector
to be considered parallel with the x, y or z axis. We now support any positive value. Then, as
we create the TransformOperation from the CSSValue, we must set the type to ROTATE_3D instead
of ROTATE_Z if the z axis was specified through the CSS value. Indeed, ROTATE_Z is equivalent
to ROTATE and without setting this type to ROTATE_3D, TransformOperation::is3DOperation() would
return false.

This is important because when figuring out the computed style, we should only return an angle
without a rotation vector if TransformOperation::is3DOperation() is false. For the case where
the operation was specified in 3D, we now use the same rule used when parsing to determine
whether the rotation vector is parallel with the x, y or z axis to use the matching keywords.

  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::computedRotate):

  • css/TransformFunctions.cpp:

(WebCore::rotateForValue):

  • css/parser/CSSPropertyParser.cpp:

(WebCore::consumeRotate):

12:35 PM Changeset in webkit [276553] by graouts@webkit.org
  • 6 edits in trunk

Support interpolation of the background-repeat shorthand
https://bugs.webkit.org/show_bug.cgi?id=225016

Reviewed by Dean Jackson.

LayoutTests/imported/w3c:

Mark 10 WPT progressions.

  • web-platform-tests/web-animations/animation-model/animation-types/accumulation-per-property-001-expected.txt:
  • web-platform-tests/web-animations/animation-model/animation-types/addition-per-property-001-expected.txt:
  • web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-001-expected.txt:

Source/WebCore:

  • animation/CSSPropertyAnimation.cpp:

(WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap):

12:33 PM Changeset in webkit [276552] by graouts@webkit.org
  • 7 edits in trunk

Fix interpolation of the clip CSS property
https://bugs.webkit.org/show_bug.cgi?id=225017

Reviewed by Dean Jackson.

LayoutTests/imported/w3c:

Mark 13 WPT progressions.

  • web-platform-tests/web-animations/animation-model/animation-types/accumulation-per-property-001-expected.txt:
  • web-platform-tests/web-animations/animation-model/animation-types/addition-per-property-001-expected.txt:
  • web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-001-expected.txt:
  • web-platform-tests/web-animations/animation-model/keyframe-effects/effect-value-iteration-composite-operation-expected.txt:

Source/WebCore:

While we interpolated the clip value correctly, we wouldn't set the RenderStyle bit that
indicates that there is a non-auto value in the first place. With a new dedicated wrapper,
we can ensure we set the bit correctly as we blend, and that we use discrete interpolation
if both the from and to values aren't auto.

  • animation/CSSPropertyAnimation.cpp:

(WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap):

12:32 PM Changeset in webkit [276551] by graouts@webkit.org
  • 5 edits in trunk

Computed style for the translate CSS property should use px for the z value
https://bugs.webkit.org/show_bug.cgi?id=225018

Reviewed by Dean Jackson.

LayoutTests/imported/w3c:

Mark a single WPT progression.

  • web-platform-tests/css/css-transforms/animation/translate-composition-expected.txt:
  • web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-002-expected.txt:

Source/WebCore:

  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::computedTranslate):

9:02 AM Changeset in webkit [276550] by commit-queue@webkit.org
  • 16 edits in trunk

Refactor ValueRange from enum to enum class
https://bugs.webkit.org/show_bug.cgi?id=224981

Patch by Tyler Wilcock <Tyler Wilcock> on 2021-04-24
Reviewed by Sam Weinig.

Source/WebCore:

Refactor ValueRange from:

enum ValueRange {

ValueRangeAll,
ValueRangeNonNegative

}

to:

enum ValueRange : uint8_t {

All,
NonNegative

}

making it smaller (one byte versus four) and harder to misuse (no
auto-coercion to number types).

  • animation/CSSPropertyAnimation.cpp:

(WebCore::blendFunc):
Refactor ValueRangeAll and ValueRangeNonNegative to ValueRange::All
and ValueRange::NonNegative.

  • css/CSSCalculationValue.cpp:

(WebCore::CSSCalcValue::create):
Refactor ValueRangeAll and ValueRangeNonNegative to ValueRange::All
and ValueRange::NonNegative.

  • css/CSSCalculationValue.h:

(WebCore::CSSCalcValue::createCalculationValue const):
(WebCore::CSSCalcValue::setPermittedValueRange):
Refactor ValueRangeAll and ValueRangeNonNegative to ValueRange::All
and ValueRange::NonNegative.

  • css/MediaQueryExpression.cpp:

(WebCore::consumeFirstValue):
Refactor ValueRangeAll and ValueRangeNonNegative to ValueRange::All
and ValueRange::NonNegative.

  • css/parser/CSSPropertyParser.cpp:

(WebCore::CSSPropertyParser::consumeTransformOrigin):
(WebCore::consumeLetterSpacing):
(WebCore::consumeWordSpacing):
(WebCore::consumeTabSize):
(WebCore::consumeTextSizeAdjust):
(WebCore::consumeFontSize):
(WebCore::consumeLineHeight):
(WebCore::consumeSize):
(WebCore::consumeTextIndent):
(WebCore::consumeScrollPadding):
(WebCore::consumeMaxWidthOrHeight):
(WebCore::consumeWidthOrHeight):
(WebCore::consumeMarginOrOffset):
(WebCore::consumeClipComponent):
(WebCore::consumeLineClamp):
(WebCore::consumeHyphenateLimit):
(WebCore::consumeColumnWidth):
(WebCore::consumeGapLength):
(WebCore::consumeZoom):
(WebCore::consumeAnimationIterationCount):
(WebCore::consumeAnimationValue):
(WebCore::consumeLineWidth):
(WebCore::consumeTranslate3d):
(WebCore::consumeNumbers):
(WebCore::consumePerspective):
(WebCore::consumeTransformValue):
(WebCore::consumeTranslate):
(WebCore::consumeScale):
(WebCore::consumeRotate):
(WebCore::consumePositionLonghand):
(WebCore::consumeFlexBasis):
(WebCore::consumeKerning):
(WebCore::consumeStrokeDasharray):
(WebCore::consumeBaselineShift):
(WebCore::consumeRxOrRy):
(WebCore::consumeBorderRadiusCorner):
(WebCore::consumeTextUnderlineOffset):
(WebCore::consumeTextDecorationThickness):
(WebCore::consumeVerticalAlign):
(WebCore::consumeShapeRadius):
(WebCore::consumeBasicShapePolygon):
(WebCore::consumeRadii):
(WebCore::consumeBasicShapeInset):
(WebCore::consumeBorderImageSlice):
(WebCore::consumeBorderImageOutset):
(WebCore::consumeBorderImageWidth):
(WebCore::consumeReflect):
(WebCore::consumeBackgroundSize):
(WebCore::consumeFitContent):
(WebCore::consumeGridBreadth):
(WebCore::consumeInitialLetter):
(WebCore::consumeWebkitMarqueeIncrement):
(WebCore::consumeWebkitMarqueeRepetition):
(WebCore::consumeWebkitMarqueeSpeed):
(WebCore::consumeAspectRatio):
(WebCore::CSSPropertyParser::parseSingleValue):
(WebCore::CSSPropertyParser::consumeBorderSpacing):
(WebCore::CSSPropertyParser::consumeFlex):
Refactor ValueRangeAll and ValueRangeNonNegative to ValueRange::All
and ValueRange::NonNegative.

  • css/parser/CSSPropertyParserHelpers.cpp:

(WebCore::CSSPropertyParserHelpers::consumeNumberOrPercentDividedBy100Raw):
(WebCore::CSSPropertyParserHelpers::CalcParser::CalcParser):
(WebCore::CSSPropertyParserHelpers::consumeNumberRaw):
(WebCore::CSSPropertyParserHelpers::consumeFontWeightNumberRaw):
(WebCore::CSSPropertyParserHelpers::consumeLengthRaw):
(WebCore::CSSPropertyParserHelpers::consumePercentRaw):
(WebCore::CSSPropertyParserHelpers::consumeAngleRaw):
(WebCore::CSSPropertyParserHelpers::consumeAngleWorkerSafe):
(WebCore::CSSPropertyParserHelpers::consumeTime):
(WebCore::CSSPropertyParserHelpers::consumePositionComponent):
(WebCore::CSSPropertyParserHelpers::consumeDeprecatedGradientPoint):
(WebCore::CSSPropertyParserHelpers::consumeDeprecatedGradient):
(WebCore::CSSPropertyParserHelpers::consumeGradientColorStops):
(WebCore::CSSPropertyParserHelpers::consumeDeprecatedRadialGradient):
(WebCore::CSSPropertyParserHelpers::consumeRadialGradient):
(WebCore::CSSPropertyParserHelpers::consumeFilterFunction):
(WebCore::CSSPropertyParserHelpers::consumeSingleShadow):
(WebCore::CSSPropertyParserHelpers::consumeFontSizeRaw):
(WebCore::CSSPropertyParserHelpers::consumeLineHeightRaw):
Refactor ValueRangeAll and ValueRangeNonNegative to ValueRange::All
and ValueRange::NonNegative.

  • css/parser/CSSPropertyParserHelpers.h:

Refactor ValueRangeAll and ValueRangeNonNegative to ValueRange::All
and ValueRange::NonNegative.

  • css/parser/CSSPropertyParserWorkerSafe.cpp:

(WebCore::CSSPropertyParserHelpersWorkerSafe::consumeFontStretch):
(WebCore::CSSPropertyParserHelpersWorkerSafe::consumeFontStretchRange):
Refactor ValueRangeAll and ValueRangeNonNegative to ValueRange::All
and ValueRange::NonNegative.

  • page/IntersectionObserver.cpp:

(WebCore::parseRootMargin):
Refactor ValueRangeAll and ValueRangeNonNegative to ValueRange::All
and ValueRange::NonNegative.

  • platform/CalculationValue.h:

(WebCore::CalculationValue::CalculationValue):
Refactor ValueRangeAll and ValueRangeNonNegative to ValueRange::All
and ValueRange::NonNegative.

  • platform/Length.cpp:

(WebCore::convertTo100PercentMinusLength):
(WebCore::blendMixedTypes):
(WebCore::blend):
Refactor ValueRangeAll and ValueRangeNonNegative to ValueRange::All
and ValueRange::NonNegative.

  • platform/Length.h:

Refactor enum ValueRange to enum class ValueRange.

  • style/StyleBuilderConverter.h:

(WebCore::Style::BuilderConverter::convertTo100PercentMinusLength):
Refactor ValueRangeAll and ValueRangeNonNegative to ValueRange::All
and ValueRange::NonNegative.

Tools:

ValueRange has been refactored from enum to enum class : uint8_t to
make it smaller and harder to misuse.

  • TestWebKitAPI/Tests/WebCore/CalculationValue.cpp:

(TestWebKitAPI::createTestValue):
Refactor ValueRangeAll and ValueRangeNonNegative to ValueRange::All
and ValueRange::NonNegative.

6:42 AM Changeset in webkit [276549] by Alan Bujtas
  • 3 edits
    2 adds in trunk

[RenderTreeBuilder] Subtree moving should clear the floats on all the descendants
https://bugs.webkit.org/show_bug.cgi?id=224996
<rdar://76837320>

Reviewed by Antti Koivisto.

Source/WebCore:

While moving a subtree, we invalidate the floating object list so that we don't end up with incorrectly placed floats (they'll get regenerated during the subsequent layout).
A float can be "assigned" to more than one RenderBlockFlow (e.g intruding floats). It's very common that a set of descendant RenderBlockFlow
renderers "see" the same set of floats (each RenderBlockFlow has its own list of floating objects).
Now the invalidation is based on ancestor-to-descendant direction starting with finding the outer most containing block for a particular float (see outermostBlockContainingFloatingObject)
The invalidation logic also expects no gaps in the ancestor chain e.g.

RenderBlockFlow (A) -> float X

RenderBlockFlow (B) -> float X

RenderBlockFlow (C) -> float X

if float X is assigned to both A and C, then it must be assigned to B as well.

RenderBlockFlow::removeFloatingObjects() simply removes the float from the renderer. It does not invalidate the ancestor/descendant chain.
e.g. calling B.removeFloatingObjects() would just remove float X from RenderBlockFlow (B)

RenderBlockFlow (A) -> float X

RenderBlockFlow (B)

RenderBlockFlow (C) -> float X

and any subsequent invalidation attempt would fail to clear up A or C (depending on whether it is initiated on A or C).

Test: fast/multicol/floating-boxes-moved-under-multi-column.html

  • rendering/updating/RenderTreeBuilder.cpp:

(WebCore::RenderTreeBuilder::moveChildren):

LayoutTests:

  • fast/multicol/floating-boxes-moved-under-multi-column-expected.txt: Added.
  • fast/multicol/floating-boxes-moved-under-multi-column.html: Added.
6:10 AM Changeset in webkit [276548] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[LFC] Ignore content height and width when 'contain: size' is present
https://bugs.webkit.org/show_bug.cgi?id=225013

Reviewed by Antti Koivisto.

Enable size containment for "shrink to fit width" and for "height: auto" formatting context roots.
https://www.w3.org/TR/css-contain-2/#size-containment.

  • layout/FormattingContextGeometry.cpp:

(WebCore::Layout::FormattingContext::Geometry::contentHeightForFormattingContextRoot const):
(WebCore::Layout::FormattingContext::Geometry::shrinkToFitWidth):

12:41 AM Changeset in webkit [276547] by commit-queue@webkit.org
  • 4 edits
    2 adds in trunk

Move selectedOptions cache invalidation timing
https://bugs.webkit.org/show_bug.cgi?id=224894

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

Source/WebCore:

Move selectedOptions cache invalidation timing out
of setSelectedState, having it in setSelectedState
can cause selectedOptions cache invalidation while
determining the cache.

Test: fast/dom/HTMLSelectElement/selected-options-item-crash.html

  • html/HTMLOptionElement.cpp:

(WebCore::HTMLOptionElement::setSelectedState):

  • html/HTMLSelectElement.cpp:

(WebCore::HTMLSelectElement::updateListBoxSelection):
(WebCore::HTMLSelectElement::selectOption):
(WebCore::HTMLSelectElement::deselectItemsWithoutValidation):
(WebCore::HTMLSelectElement::restoreFormControlState):
(WebCore::HTMLSelectElement::reset):
(WebCore::HTMLSelectElement::updateSelectedState):

LayoutTests:

Add test for this.

  • fast/dom/HTMLSelectElement/selected-options-item-crash-expected.txt: Added.
  • fast/dom/HTMLSelectElement/selected-options-item-crash.html: Added.

Apr 23, 2021:

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

Crash in IndentOutdentCommand::outdentParagraph attempting to move a paragraph
https://bugs.webkit.org/show_bug.cgi?id=224909

Patch by Ian Gilbert <iang@apple.com> on 2021-04-23
Reviewed by Ryosuke Niwa.

Added check inside IndentOutdentCommand::outdentParagraph to ensure that inserting a
HTMLBRElement was successful before attempting to move a paragraph to that node.

  • editing/IndentOutdentCommand.cpp:

(WebCore::IndentOutdentCommand::outdentParagraph):

5:47 PM Changeset in webkit [276545] by Kate Cheney
  • 2 edits in trunk/Source/WebKit

PCM: debug mode should send the second report on a 10 second delay after the first
https://bugs.webkit.org/show_bug.cgi?id=225010
<rdar://problem/77092303>

Reviewed by John Wilander.

Fix a bug in PCM debug mode where we don't set the timer for 10_s
after sending the first report for an attribution.

No new tests, this is debug mode only. Non-debug mode behavior is
covered by existing tests, and I tested debug mode manually.

  • NetworkProcess/PrivateClickMeasurementManager.cpp:

(WebKit::PrivateClickMeasurementManager::firePendingAttributionRequests):
If the attribution has been sent to only one endpoint, indicated by
a non-null laterTimeToSend value, we should set the timer to be 10
seconds if debug mode is enabled.

Also, change the interval time from 1 minute to 10 seconds, because
there was no good reason that it was 1 minute and we should be
consistent. Also 1 minute is a long time to wait during a test.

5:40 PM Changeset in webkit [276544] by Russell Epstein
  • 1 copy in tags/Safari-611.2.4

Tag Safari-611.2.4.

5:36 PM Changeset in webkit [276543] by Russell Epstein
  • 1 copy in tags/Safari-611.1.21.2.6

Tag Safari-611.1.21.2.6.

5:26 PM Changeset in webkit [276542] by Russell Epstein
  • 2 edits in branches/safari-611.1.21.2-branch/Source/JavaScriptCore

Cherry-pick r276527. rdar://problem/77092686

[YARR Interpreter] Improper backtrack of parentheses with non-zero based greedy quantifiers
https://bugs.webkit.org/show_bug.cgi?id=224983

Reviewed by Mark Lam.

When we backtrack a parentheses with a greedy non zero based quantifier,
we don't properly restore for the case where we hadn't reached the minimum count.
We now save the input position on entry and restore it when we backtrack for
this case. We also properly release the allocated ParenthesesDisjunctionContext's.

  • yarr/YarrInterpreter.cpp: (JSC::Yarr::Interpreter::matchParentheses): (JSC::Yarr::Interpreter::backtrackParentheses):

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

5:26 PM Changeset in webkit [276541] by Russell Epstein
  • 8 edits in branches/safari-611.1.21.2-branch/Source

Versioning.

WebKit-7611.1.21.2.6

5:25 PM Changeset in webkit [276540] by aakash_jain@apple.com
  • 1 edit
    2 deletes in trunk/Tools

Delete unused buildbot.css and default.css
https://bugs.webkit.org/show_bug.cgi?id=224997

Reviewed by Alexey Proskuryakov.

  • CISupport/build-webkit-org/public_html/buildbot.css: Removed.
  • CISupport/build-webkit-org/public_html/default.css: Removed.
5:22 PM Changeset in webkit [276539] by Russell Epstein
  • 1 copy in tags/Safari-611.1.21.161.6

Tag Safari-611.1.21.161.6.

5:21 PM Changeset in webkit [276538] by Russell Epstein
  • 2 edits in branches/safari-611.1.21.161-branch/Source/JavaScriptCore

Cherry-pick r276527. rdar://problem/77092673

[YARR Interpreter] Improper backtrack of parentheses with non-zero based greedy quantifiers
https://bugs.webkit.org/show_bug.cgi?id=224983

Reviewed by Mark Lam.

When we backtrack a parentheses with a greedy non zero based quantifier,
we don't properly restore for the case where we hadn't reached the minimum count.
We now save the input position on entry and restore it when we backtrack for
this case. We also properly release the allocated ParenthesesDisjunctionContext's.

  • yarr/YarrInterpreter.cpp: (JSC::Yarr::Interpreter::matchParentheses): (JSC::Yarr::Interpreter::backtrackParentheses):

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

5:21 PM Changeset in webkit [276537] by Russell Epstein
  • 2 edits in branches/safari-611.1.21.161-branch/Source/JavaScriptCore

Cherry-pick r276524. rdar://problem/77092702

Fix B3 strength reduction for shl.
https://bugs.webkit.org/show_bug.cgi?id=224913
rdar://76978874

Reviewed by Michael Saboff.

If the operation can potentially either underflow or overflow, then the result
can be any value.

  • b3/B3ReduceStrength.cpp:

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

5:18 PM Changeset in webkit [276536] by Jonathan Bedard
  • 1 edit
    2 copies
    1 add
    1 delete in trunk/Websites/bugs.webkit.org

Bugzilla needs to linkify identifiers (Part 1)
https://bugs.webkit.org/show_bug.cgi?id=224312
<rdar://problem/75845629>

Reviewed by Dewei Zhu.

  • extensions/Commits: Moved from Trac.
  • extensions/Commits/Config.pm: Changed Plugin name.
  • extensions/Commits/Extension.pm: Ditto.

(_replace_revision): Use commit.webkit.org instead of trac.

  • extensions/Trac: Moved to Commits.
5:18 PM Changeset in webkit [276535] by Russell Epstein
  • 8 edits in branches/safari-611.1.21.161-branch/Source

Versioning.

WebKit-7611.1.21.161.6

5:16 PM Changeset in webkit [276534] by Russell Epstein
  • 1 copy in tags/Safari-611.1.21.0.14

Tag Safari-611.1.21.0.14.

5:13 PM Changeset in webkit [276533] by Russell Epstein
  • 2 edits in branches/safari-611.1.21.0-branch/Source/JavaScriptCore

Cherry-pick r276527. rdar://problem/77092655

[YARR Interpreter] Improper backtrack of parentheses with non-zero based greedy quantifiers
https://bugs.webkit.org/show_bug.cgi?id=224983

Reviewed by Mark Lam.

When we backtrack a parentheses with a greedy non zero based quantifier,
we don't properly restore for the case where we hadn't reached the minimum count.
We now save the input position on entry and restore it when we backtrack for
this case. We also properly release the allocated ParenthesesDisjunctionContext's.

  • yarr/YarrInterpreter.cpp: (JSC::Yarr::Interpreter::matchParentheses): (JSC::Yarr::Interpreter::backtrackParentheses):

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

5:13 PM Changeset in webkit [276532] by Russell Epstein
  • 2 edits in branches/safari-611.1.21.0-branch/Source/JavaScriptCore

Cherry-pick r276524. rdar://problem/77092695

Fix B3 strength reduction for shl.
https://bugs.webkit.org/show_bug.cgi?id=224913
rdar://76978874

Reviewed by Michael Saboff.

If the operation can potentially either underflow or overflow, then the result
can be any value.

  • b3/B3ReduceStrength.cpp:

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

5:08 PM Changeset in webkit [276531] by Russell Epstein
  • 8 edits in branches/safari-611.1.21.0-branch/Source

Versioning.

WebKit-7611.1.21.0.14

4:45 PM Changeset in webkit [276530] by rniwa@webkit.org
  • 2 edits in trunk/Source/WebCore

Crash in constructCustomElementSynchronously
https://bugs.webkit.org/show_bug.cgi?id=224992
<rdar://66988026>

Reviewed by Tadeu Zagallo.

Exit early when the global object is nullptr although this shouldn't happen.

No new tests since we have no reproductions.

  • bindings/js/JSCustomElementInterface.cpp:

(WebCore::JSCustomElementInterface::tryToConstructCustomElement): Added a null check.

4:38 PM Changeset in webkit [276529] by Russell Epstein
  • 2 edits in branches/safari-611-branch/Source/JavaScriptCore

Cherry-pick r276527. rdar://problem/77091667

[YARR Interpreter] Improper backtrack of parentheses with non-zero based greedy quantifiers
https://bugs.webkit.org/show_bug.cgi?id=224983

Reviewed by Mark Lam.

When we backtrack a parentheses with a greedy non zero based quantifier,
we don't properly restore for the case where we hadn't reached the minimum count.
We now save the input position on entry and restore it when we backtrack for
this case. We also properly release the allocated ParenthesesDisjunctionContext's.

  • yarr/YarrInterpreter.cpp: (JSC::Yarr::Interpreter::matchParentheses): (JSC::Yarr::Interpreter::backtrackParentheses):

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

4:21 PM Changeset in webkit [276528] by don.olmstead@sony.com
  • 3 edits in trunk/Source/WebCore

Add additional guards around USE_ANGLE
https://bugs.webkit.org/show_bug.cgi?id=225001

Reviewed by Fujii Hironori.

When USE(ANGLE) initializeOpenGLShims isn't used or available.

When USE(ANGLE) the ANGLE shader compiler isn't needed.

  • platform/graphics/GLContext.cpp:

(WebCore::initializeOpenGLShimsIfNeeded):

  • platform/graphics/texmap/GraphicsContextGLTextureMapper.cpp:
4:06 PM Changeset in webkit [276527] by msaboff@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

[YARR Interpreter] Improper backtrack of parentheses with non-zero based greedy quantifiers
https://bugs.webkit.org/show_bug.cgi?id=224983

Reviewed by Mark Lam.

When we backtrack a parentheses with a greedy non zero based quantifier,
we don't properly restore for the case where we hadn't reached the minimum count.
We now save the input position on entry and restore it when we backtrack for
this case. We also properly release the allocated ParenthesesDisjunctionContext's.

  • yarr/YarrInterpreter.cpp:

(JSC::Yarr::Interpreter::matchParentheses):
(JSC::Yarr::Interpreter::backtrackParentheses):

4:01 PM Changeset in webkit [276526] by Chris Dumez
  • 5 edits
    1 copy
    2 adds in trunk/LayoutTests

http/tests/security/referrer-policy-header.html is slow
https://bugs.webkit.org/show_bug.cgi?id=224998

Reviewed by Geoffrey Garen.

The test is a flaky timeout on the bots because it is slow. On my machine, it takes 17 seconds to run
it with a debug build. To speed things up, I am now running the subtests in parallel instead of
sequentially. I also split the test in 2 (regular response vs multipart response). Each tests now takes
about ~5 seconds to run on my machine.

  • http/tests/security/referrer-policy-header-expected.txt:
  • http/tests/security/referrer-policy-header-multipart-expected.txt: Added.
  • http/tests/security/referrer-policy-header-multipart.html: Added.
  • http/tests/security/referrer-policy-header-test.js: Copied from LayoutTests/http/tests/security/referrer-policy-header.html.

(printResults):
(onmessage):
(runTests):

  • http/tests/security/referrer-policy-header.html:
  • http/tests/security/resources/postReferrer.py:
  • http/tests/security/resources/serve-referrer-policy-and-test.py:
3:46 PM Changeset in webkit [276525] by Russell Epstein
  • 2 edits in branches/safari-611-branch/Source/JavaScriptCore

Cherry-pick r276524. rdar://problem/77089783

Fix B3 strength reduction for shl.
https://bugs.webkit.org/show_bug.cgi?id=224913
rdar://76978874

Reviewed by Michael Saboff.

If the operation can potentially either underflow or overflow, then the result
can be any value.

  • b3/B3ReduceStrength.cpp:

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

3:14 PM Changeset in webkit [276524] by mark.lam@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Fix B3 strength reduction for shl.
https://bugs.webkit.org/show_bug.cgi?id=224913
rdar://76978874

Reviewed by Michael Saboff.

If the operation can potentially either underflow or overflow, then the result
can be any value.

  • b3/B3ReduceStrength.cpp:
3:06 PM Changeset in webkit [276523] by commit-queue@webkit.org
  • 8 edits in trunk/Source/WebKit

Unreviewed, reverting r275562.
https://bugs.webkit.org/show_bug.cgi?id=225002

Causes issues in iOS contextmenu animations and interactions
with other popovers

Reverted changeset:

"[iOS] contextmenu hints can be clipped by the WKWebView"
https://bugs.webkit.org/show_bug.cgi?id=224204
https://trac.webkit.org/changeset/275562

3:04 PM Changeset in webkit [276522] by Aditya Keerthi
  • 2 edits in trunk/Source/WebKit

REGRESSION (r273154): fast/forms/ios/repeatedly-focus-offscreen-select.html is consistently failing
https://bugs.webkit.org/show_bug.cgi?id=224985
<rdar://problem/77042177>

Reviewed by Wenson Hsieh.

The test is failing after r273154, which made <select> elements present
a UIMenu rather than a popover. The old logic ensured popovers were not
presented when the <select> element was offscreen (see r265117 for more
information on why that behavior was necessary), but the new
presentation omitted that logic.

To achieve the correct behavior, and fix the failing test, <select>
menus should not be presented when the element is offscreen.

  • UIProcess/ios/forms/WKFormSelectPicker.mm:

(-[WKSelectPicker controlBeginEditing]):

3:00 PM Changeset in webkit [276521] by cathiechen
  • 7 edits in trunk

Not computing image aspect ratios from width and height attributes for lazy loaded images
https://bugs.webkit.org/show_bug.cgi?id=224197

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

The test cases for error images and images without src in img-aspect-ratio.html are passed. This patch
doesn't change the behavior of the original aspect ratio case, so it's failed like before.

  • web-platform-tests/html/rendering/replaced-elements/attributes-for-embedded-content-and-images/img-aspect-ratio-expected.txt:

Source/WebCore:

This patch supports error images and lazy loaded images (without src attribute) to compute
implicit aspect ratios from width and height attributes. Refactor the code a bit. Added
intrinsicAspectRatioFromWidthHeight() to compute aspect ratio from width and height attributes when
the object is allowed to which is decided by canMapWidthHeightToAspectRatio().
Remove !downcast<RenderImage>(*this).cachedImage() constraint, so that images without src attributes
is allowed. As to error images, compute the aspect ratio when the image shouldDisplayBrokenImageIcon().

  • rendering/RenderImage.cpp:

(WebCore::RenderImage::canMapWidthHeightToAspectRatio const): To indicate that the object is allowed
to compute aspect ratio from width and height attributes.
(WebCore::RenderImage::computeIntrinsicRatioInformation const): When shouldDisplayBrokenImageIcon(),
try to compute the aspect ratio from attributes width and height.

  • rendering/RenderImage.h:
  • rendering/RenderReplaced.cpp:

(WebCore::RenderReplaced::intrinsicAspectRatioFromWidthHeight const): Compute the aspect ratio from attributes width and height.
(WebCore::RenderReplaced::computeIntrinsicRatioInformation const):

  • rendering/RenderReplaced.h:

(WebCore::RenderReplaced::canMapWidthHeightToAspectRatio const): Ditto.

2:53 PM Changeset in webkit [276520] by Ryan Haddad
  • 3 edits in trunk/LayoutTests

imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element/css-module/css-module-worker-test.html is a flakey crash and failure
https://bugs.webkit.org/show_bug.cgi?id=222750

Unreviewed test gardening.

Move expectation to a more general location, this isn't limited to macOS.

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

Unreviewed, reverting r276451.
https://bugs.webkit.org/show_bug.cgi?id=224999

Broke perf testing

Reverted changeset:

"[iOS] Update sandbox message filter syntax"
https://bugs.webkit.org/show_bug.cgi?id=223384
https://trac.webkit.org/changeset/276451

2:32 PM Changeset in webkit [276518] by Russell Epstein
  • 1 edit in branches/safari-611-branch/Source/WebKit/UIProcess/AuxiliaryProcessProxy.cpp

Unreviewed build fix. rdar://problem/76963040

WebKit2/UIProcess/AuxiliaryProcessProxy.cpp:163:10: error: use of undeclared identifier 'isMainRunLoop'

2:29 PM Changeset in webkit [276517] by Ruben Turcios
  • 13 edits in branches/safari-611-branch/Source

Cherry-pick r276324. rdar://problem/77086404

FullGCActivityCallback should use the percentage of pages uncompressed in RAM to determine deferral.
https://bugs.webkit.org/show_bug.cgi?id=224817

Reviewed by Filip Pizlo.

Source/JavaScriptCore:

Right now we try to determine if too many pages are paged out by
dereferencing them and bailing out of the GC if we go over a
deadline. While this works if the only goal is to avoid causing
extensive thrashing on spinny disks (HDD), it doesn't prevent
thrashing when access to disk is fast (e.g. SSD). This is because
on fast disks the proportional time to load the memory from disk
is much lower. Additionally, on SSDs in particular we don't want
to load the pages into RAM then bail as that will force a
different page onto disk, increasing wear.

This patch switches to asking the OS if each MarkedBlock is paged
out. Then if we are over a threshold we wait until we would have
GC'd anyway. This patch uses the (maxVMGrowthFactor - 1) as the
percentage of "slow" pages (paged out or compressed) needed to
defer the GC. The idea behind that threshold is that if we add
that many pages then the same number of pages would be forced
out of RAM for us to do a GC anyway (in the limit).

  • heap/BlockDirectory.cpp: (JSC::BlockDirectory::updatePercentageOfPagedOutPages): (JSC::BlockDirectory::isPagedOut): Deleted.
  • heap/BlockDirectory.h:
  • heap/FullGCActivityCallback.cpp: (JSC::FullGCActivityCallback::doCollection):
  • heap/Heap.cpp: (JSC::Heap::isPagedOut):
  • heap/Heap.h:
  • heap/MarkedSpace.cpp: (JSC::MarkedSpace::isPagedOut):
  • heap/MarkedSpace.h:
  • runtime/OptionsList.h:

Source/WebKit:

Add mincore to the acceptable syscall list.

  • WebProcess/com.apple.WebProcess.sb.in:

Source/WTF:

Add a noexcept flavor of FunctionTraits. On Linux mincore (and probably other syscalls) are marked noexcept so the existing overloads don't work.

  • wtf/FunctionTraits.h:

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

2:01 PM Changeset in webkit [276516] by Fujii Hironori
  • 2 edits in trunk/Source/JavaScriptCore

[JSC][Win] callOperationNoExceptionCheck() also needs to support operations that return SlowPathReturnType
https://bugs.webkit.org/show_bug.cgi?id=224964

Reviewed by Yusuke Suzuki.

r229989 (Bug 183655) added the x64 Windows support only for
callOperation(), but for callOperationNoExceptionCheck().
callOperationNoExceptionCheck() also needs the x64 Windows
support.

This change is a preparation for Bug 224920 that is going to use
callOperationNoExceptionCheck instead of callOperation.

  • jit/JIT.h:

(callOperation): Rewrote by using 'if constexpr' instead of SFINAE.
(callOperationNoExceptionCheck): Added a new implementation for
x64 Windows based on callOperation.

1:11 PM Changeset in webkit [276515] by Brent Fulgham
  • 3 edits in trunk/Source/WebKit

[iOS] GPU Process sandbox lacks IOMobileFramebufferUserClient method filter
https://bugs.webkit.org/show_bug.cgi?id=224956
<rdar://problem/68227590>

Reviewed by Per Arne Vollan.

This patch updates the GPU process sandbox to match the method filter used in the WebContent process
so that we will retain consistent protections when activating the GPU Process. These are the same rules
governing access to this resource when the GPU process is disabled, so should not create a change in behavior.

We also remove unneeded telemetry to reduce messaging burden and avoid performance issues.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.GPU.sb:
  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
12:53 PM Changeset in webkit [276514] by BJ Burg
  • 2 edits in trunk/Source/WebKit

Web Inspector: [Cocoa] WKInspectorResourceURLSchemeHandler needs to serialize cleanup actions
https://bugs.webkit.org/show_bug.cgi?id=224986
<rdar://76768454>

Reviewed by Devin Rousso.

  • UIProcess/Inspector/mac/WKInspectorResourceURLSchemeHandler.mm:

(-[WKInspectorResourceURLSchemeHandler webView:startURLSchemeTask:]):
Do cleanup on the main queue so that it can be serialized with reads.

(-[WKInspectorResourceURLSchemeHandler webView:stopURLSchemeTask:]):
Ensure that all removals from the map are processed before doing a lookup.

12:51 PM Changeset in webkit [276513] by Michael Catanzaro
  • 6 edits in trunk/Source/WebCore

Remove virtual function calls in GraphicsLayer destructors
https://bugs.webkit.org/show_bug.cgi?id=180232

Reviewed by Adrian Perez de Castro.

I notice that ~CoordinatedGraphicsLayer makes a virtual function call to
GraphicsLayer::willBeDestroyed, which makes a virtual function call to
CoordinatedGraphicsLayer::removeFromParent. I think that the functions are being called as
intended, because ~CoordinatedGraphicsLayer has not yet been fully destroyed. However, I'm
reminded of Effective C++ item #9: Never call virtual functions during construction or
destruction ("because such calls will never go to a more derived class than that of the
currently executing constructor or destructor"). This code is almost certain to break if
anyone tries in the future to subclass any of the existing subclasses of GraphicsLayer, so
let's refactor it a bit. This doesn't fix anything, but my hope is that it will make the
code a bit harder to break, and not the opposite.

The main risk here is that some reordering of operations is necessary. The derived class
portion of removeFromParent must now be executed before willBeDestroyed. It can't happen
after, because parent would already be unset by that point. It's hard to be certain that
this won't break anything, but I think it should be fine.

  • platform/graphics/GraphicsLayer.cpp:

(WebCore::GraphicsLayer::willBeDestroyed):
(WebCore::GraphicsLayer::removeFromParentInternal):
(WebCore::GraphicsLayer::removeFromParent):

  • platform/graphics/GraphicsLayer.h:
  • platform/graphics/ca/GraphicsLayerCA.cpp:

(WebCore::GraphicsLayerCA::~GraphicsLayerCA):
(WebCore::GraphicsLayerCA::willBeDestroyed): Deleted.

  • platform/graphics/ca/GraphicsLayerCA.h:
  • platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp:

(WebCore::CoordinatedGraphicsLayer::~CoordinatedGraphicsLayer):

12:34 PM Changeset in webkit [276512] by Sam Sneddon
  • 4 edits
    2 adds in trunk/Tools

Add a conftest.py to run existing webkitpy tests in pytest
https://bugs.webkit.org/show_bug.cgi?id=224687

Reviewed by Jonathan Bedard.

  • Scripts/webkitpy/common/system/executive_unittest.py:

(ExecutiveTest.serial_test_run_in_parallel): Deal with the fact that pytest
running the tests might be not be the same version as the autoinstalled version,
and not API compatible.

  • Scripts/webkitpy/conftest.py: Added.

(pytest_configure): Define the markers the plugins in conftest use
(pytest_addoption): Add --run-integration to allow them to be disabled by default.
(pytest_pycollect_makeitem): Rename serial/integration tests so pytest finds them.
(pytest_collection_modifyitems): Mark tests as skipped when needed per the above.

  • Scripts/webkitpy/pytest.ini: Added.
  • Scripts/webkitpy/test/main_unittest.py:

(TestStubs): Stop these from being picked up by pytest as tests.

  • Scripts/webkitpy/test/markers.py: Fix this so pytest is technically optional,

even though it is always present because of the autoinstalled copy.

12:21 PM Changeset in webkit [276511] by Russell Epstein
  • 1 edit in branches/safari-611-branch/Source/WebKit/UIProcess/Network/NetworkProcessProxy.cpp

Unreviewed build fix.

WebKit2/UIProcess/Network/NetworkProcessProxy.cpp:127:17: error: use of undeclared identifier 'defaultProcess'

12:06 PM Changeset in webkit [276510] by Darin Adler
  • 10 edits in trunk/Source

Remove decoder memory allocations based on untrusted data (sizes) in the stream; related changes
https://bugs.webkit.org/show_bug.cgi?id=224984

Reviewed by Sam Weinig.

Source/WebCore:

  • platform/network/cf/CertificateInfoCFNet.cpp:

(WTF::Persistence::decodeCFData): Removed unneeded check for zero size. Removed code that
locally allocates a vector before bufferIsLargeEnoughToContain is called. Instead use
bufferPointerForDirectRead, which makes does the buffer size check, and pass the pointer
directly to CFDataCreate.

Source/WebKit:

  • Platform/IPC/ArgumentCoders.h: Remove the calls to

HashMap::reserveInitialCapacity and HashSet::reserveInitialCapacity, based
on number read in from the decoder. This means there will be more wasted
memory in these HashMap and HashSet objects, so we have to test to make
sure this does not create a performance problem. But without this check,
we are trying to allocate memory based on an unstrusted size.

  • Shared/Cocoa/WebCoreArgumentCodersCocoa.mm:

(IPC::ArgumentCoder<RefPtr<ApplePayError>>::encode): Removed the coder
for a Vector of these RefPtr, replaced it with a coder for an individual one,
allowing the Vector ArgumentCoder template to handle vector size and construction.
One benefit is that this adds in a shrinkToFit and prevents us from making any
separate mistake about pre-sizing the Vector here since we use shared code.
(IPC::ArgumentCoder<RefPtr<ApplePayError>>::decode): Ditto.

  • Shared/WebCoreArgumentCoders.cpp:

(IPC::ArgumentCoder<RefPtr<SecurityOrigin>>::encode): Ditto.
(IPC::ArgumentCoder<RefPtr<SecurityOrigin>>::decode): Ditto.
(IPC::ArgumentCoder<WebCore::CDMInstanceSession::KeyStatusVector>::encode):
(IPC::ArgumentCoder<WebCore::CDMInstanceSession::KeyStatusVector>::decode):
Removed unnecessary specialization for the KeyStatusVector. There is already
an ArgumentCoder for Vector, for std::pair, for Ref<SharedBuffer>, and for
enumerations like CDMKeyStatus, so there's no need to have a specialized
coder for this. This function that we are removing had a call to
reserveInitialCapacity, but the Vector ArgumentCoder template does not.

  • Shared/WebCoreArgumentCoders.h: Replaced the

ArgumentCoder<Vector<RefPtr<WebCore::ApplePayError>>> specialization with
ArgumentCoder<RefPtr<WebCore::ApplePayError>>. Removed the
ArgumentCoder<WebCore::CDMInstanceSession::KeyStatusVector> specialization.

Source/WTF:

  • wtf/persistence/PersistentDecoder.cpp:

(WTF::Persistence::Decoder::bufferPointerForDirectRead): Added.
(WTF::Persistence::Decoder::decodeFixedLengthData): Refactor to use bufferPointerForDirectRead.

  • wtf/persistence/PersistentDecoder.h: Added bufferPointerForDirectRead function for use in the

rare cases where we want to read directly out of the decoder buffer, rather than writing to a
passed-in pointer. Also did a small refactoring of bufferIsLargeEnoughToContain to use &&
rather than an if statement.

11:57 AM Changeset in webkit [276509] by Kate Cheney
  • 2 edits in trunk/Source/WebKit

Set proper network logging level for full web browsers
https://bugs.webkit.org/show_bug.cgi?id=224982
<rdar://problem/76903650>

Reviewed by Brent Fulgham.

Full web browsers have different low-level network logging requirements
for ephemeral sessions.

No new tests. There's no automated way to test if network level logs
show up. I tested that logging is correct for web browser and non web
browser apps manually.

  • NetworkProcess/cocoa/NetworkSessionCocoa.mm:

(WebKit::configurationForSessionID):
(WebKit::NetworkSessionCocoa::NetworkSessionCocoa):

11:54 AM Changeset in webkit [276508] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

[macOS] imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element/css-module/css-module-worker-test.html is a flakey crash and failure
https://bugs.webkit.org/show_bug.cgi?id=222750

Unreviewed test gardening.

  • platform/mac/TestExpectations:
11:15 AM Changeset in webkit [276507] by Truitt Savell
  • 3 edits in trunk/Source/ThirdParty/ANGLE

Unreviewed, reverting r276190.

broke a test internally.

Reverted changeset:

"Metal-ANGLE: Shared memory texture tests failing in iOS
Simulator"
https://bugs.webkit.org/show_bug.cgi?id=222685
https://commits.webkit.org/r276190

10:44 AM Changeset in webkit [276506] by Chris Dumez
  • 4 edits in trunk/Source

Disable GPUProcess on shipping iOS
https://bugs.webkit.org/show_bug.cgi?id=224897

Reviewed by Eric Carlson.

Source/WebKit:

  • Shared/WebPreferencesDefaultValues.cpp:

(WebKit::defaultUseGPUProcessForCanvasRenderingEnabled):
(WebKit::defaultUseGPUProcessForDOMRenderingEnabled):
(WebKit::defaultUseGPUProcessForMediaEnabled):
(WebKit::defaultUseGPUProcessForWebGLEnabled):
(WebKit::defaultCaptureAudioInGPUProcessEnabled):
(WebKit::defaultCaptureVideoInGPUProcessEnabled):
(WebKit::defaultWebRTCCodecsInGPUProcess):

Source/WTF:

  • wtf/PlatformEnableCocoa.h:
10:31 AM Changeset in webkit [276505] by aakash_jain@apple.com
  • 2 edits in trunk/Tools

Make report-non-inclusive-language ignore .db files
https://bugs.webkit.org/show_bug.cgi?id=224979

Reviewed by Darin Adler.

  • Scripts/report-non-inclusive-language:
10:21 AM Changeset in webkit [276504] by youenn@apple.com
  • 7 edits in trunk

Fix KVO for camera/microphone capture state WKWebView API
https://bugs.webkit.org/show_bug.cgi?id=224922
<rdar://problem/77008199>

Reviewed by Eric Carlson.

Source/WebKit:

Add missing willChange observer call and migrate keys to API keys.
Covered by API test.

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

(WebKit::PageClientImplCocoa::microphoneCaptureWillChange):
(WebKit::PageClientImplCocoa::cameraCaptureWillChange):
(WebKit::PageClientImplCocoa::microphoneCaptureChanged):
(WebKit::PageClientImplCocoa::cameraCaptureChanged):

  • UIProcess/PageClient.h:

(WebKit::PageClient::microphoneCaptureWillChange):
(WebKit::PageClient::cameraCaptureWillChange):

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::updateReportedMediaCaptureState):

Tools:

Add tests for capture state API.

  • TestWebKitAPI/Tests/WebKit/GetUserMedia.mm:

(-[MediaCaptureObserver observeValueForKeyPath:ofObject:change:context:]):
(TestWebKitAPI::waitUntilCameraState):
(TestWebKitAPI::waitUntilMicrophoneState):
(TestWebKitAPI::TEST):

10:04 AM Changeset in webkit [276503] by Russell Epstein
  • 1 edit in branches/safari-611-branch/Source/WebCore/layout/inlineformatting/InlineContentBreaker.cpp

Apply patch. rdar://problem/76963029

10:00 AM WebKitGTK/2.32.x edited by Adrian Perez de Castro
(diff)
9:55 AM Changeset in webkit [276502] by Chris Dumez
  • 25 edits in trunk/Source

Improve our constructDeletedValue() template specializations
https://bugs.webkit.org/show_bug.cgi?id=224889

Reviewed by Darin Adler.

Source/WebCore:

Improve our constructDeletedValue() template specializations and make them more consistent:

  • Use placement-new instead of object assignment since we don't want/need to destroy the existing object (since it is uninitialized).
  • Do as little initialization as possible for performance reasons.
  • Modules/indexeddb/IDBKeyData.cpp:

(WebCore::IDBKeyData::deletedValue): Deleted.

  • Modules/indexeddb/IDBKeyData.h:

(WebCore::IDBKeyDataHashTraits::constructDeletedValue):
(WebCore::IDBKeyDataHashTraits::isDeletedValue):
(WebCore::IDBKeyData::isDeletedValue const): Deleted.

  • Modules/indexeddb/shared/IDBResourceIdentifier.cpp:

(WebCore::IDBResourceIdentifier::deletedValue): Deleted.
(WebCore::IDBResourceIdentifier::isHashTableDeletedValue const): Deleted.

  • Modules/indexeddb/shared/IDBResourceIdentifier.h:

(WebCore::IDBResourceIdentifierHashTraits::constructDeletedValue):
(WebCore::IDBResourceIdentifierHashTraits::isDeletedValue):

  • dom/MessagePortIdentifier.h:

(WTF::HashTraits<WebCore::MessagePortIdentifier>::constructDeletedValue):
(WTF::HashTraits<WebCore::MessagePortIdentifier>::isDeletedValue):

  • history/BackForwardItemIdentifier.h:

(WTF::HashTraits<WebCore::BackForwardItemIdentifier>::constructDeletedValue):
(WTF::HashTraits<WebCore::BackForwardItemIdentifier>::isDeletedValue):

  • layout/LayoutUnits.h:

(WTF::HashTraits<WebCore::Layout::SlotPosition>::constructDeletedValue):
(WTF::HashTraits<WebCore::Layout::SlotPosition>::isDeletedValue):

  • loader/PrivateClickMeasurement.h:

(WebCore::PrivateClickMeasurement::AttributionDestinationSite::matches const):
(WTF::HashTraits<WebCore::PrivateClickMeasurement::SourceSite>::constructDeletedValue):
(WTF::HashTraits<WebCore::PrivateClickMeasurement::SourceSite>::isDeletedValue):
(WTF::HashTraits<WebCore::PrivateClickMeasurement::AttributionDestinationSite>::constructDeletedValue):
(WTF::HashTraits<WebCore::PrivateClickMeasurement::AttributionDestinationSite>::isDeletedValue):
(WebCore::PrivateClickMeasurement::SourceSite::isHashTableDeletedValue const): Deleted.
(WebCore::PrivateClickMeasurement::SourceSite::deletedValue): Deleted.
(WebCore::PrivateClickMeasurement::SourceSite::constructDeletedValue): Deleted.
(WebCore::PrivateClickMeasurement::SourceSite::deleteValue): Deleted.
(WebCore::PrivateClickMeasurement::SourceSite::isDeletedValue const): Deleted.
(WebCore::PrivateClickMeasurement::AttributionDestinationSite::isHashTableDeletedValue const): Deleted.
(WebCore::PrivateClickMeasurement::AttributionDestinationSite::deletedValue): Deleted.
(WebCore::PrivateClickMeasurement::AttributionDestinationSite::constructDeletedValue): Deleted.
(WebCore::PrivateClickMeasurement::AttributionDestinationSite::deleteValue): Deleted.
(WebCore::PrivateClickMeasurement::AttributionDestinationSite::isDeletedValue const): Deleted.

  • page/ClientOrigin.h:

(WTF::HashTraits<WebCore::ClientOrigin>::constructDeletedValue):

  • page/GlobalWindowIdentifier.h:

(WTF::HashTraits<WebCore::GlobalWindowIdentifier>::constructDeletedValue):
(WTF::HashTraits<WebCore::GlobalWindowIdentifier>::isDeletedValue):

  • platform/Cookie.h:

(WTF::HashTraits<WebCore::Cookie>::constructDeletedValue):
(WebCore::Cookie::Cookie): Deleted.

  • platform/graphics/FontCache.cpp:

(WebCore::FontPlatformDataCacheKeyHashTraits::constructDeletedValue):

  • platform/graphics/FontCache.h:

(WebCore::FontCascadeCacheKeyHashTraits::constructDeletedValue):

  • platform/graphics/IntPointHash.h:

(WTF::HashTraits<WebCore::IntPoint>::constructDeletedValue):
(WTF::HashTraits<WebCore::IntPoint>::isDeletedValue):

  • rendering/CSSValueKey.h:

(WTF::HashTraits<WebCore::CSSValueKey>::constructDeletedValue):

  • workers/service/ServiceWorkerClientIdentifier.h:

(WTF::HashTraits<WebCore::ServiceWorkerClientIdentifier>::constructDeletedValue):
(WTF::HashTraits<WebCore::ServiceWorkerClientIdentifier>::isDeletedValue):

Source/WebCore/PAL:

  • pal/SessionID.h:

(WTF::HashTraits<PAL::SessionID>::constructDeletedValue):

Source/WebKit:

Improve our constructDeletedValue() template specializations and make them more consistent:

  • Use placement-new instead of object assignment since we don't want/need to destroy the existing object (since it is uninitialized).
  • Do as little initialization as possible for performance reasons.
  • NetworkProcess/cache/NetworkCache.h:

(WTF::HashTraits<WebKit::NetworkCache::GlobalFrameID>::constructDeletedValue):
(WTF::HashTraits<WebKit::NetworkCache::GlobalFrameID>::isDeletedValue):

  • Platform/IPC/StringReference.h:

(WTF::HashTraits<IPC::StringReference>::constructDeletedValue):

  • Shared/CallbackID.h:

(WTF::HashTraits<WebKit::CallbackID>::constructDeletedValue):
(WTF::HashTraits<WebKit::CallbackID>::isDeletedValue):

Source/WebKitLegacy/mac:

Improve our constructDeletedValue() template specializations and make them more consistent:

  • Use placement-new instead of object assignment since we don't want/need to destroy the existing object (since it is uninitialized).
  • Do as little initialization as possible for performance reasons.
  • History/BinaryPropertyList.cpp:

(IntegerArray::integers const):
(IntegerArray::size const):
(IntegerArrayHashTraits::constructDeletedValue):
(IntegerArrayHashTraits::isDeletedValue):
(IntegerArray::markDeleted): Deleted.
(IntegerArray::isDeletedValue const): Deleted.
(IntegerArray::deletedValueSize): Deleted.

9:53 AM Changeset in webkit [276501] by Russell Epstein
  • 2 edits in branches/safari-611-branch/Source/WebKit

Cherry-pick r276482. rdar://problem/77074513

[Mac] CMBaseClass object pointers can become unaligned on x86
https://bugs.webkit.org/show_bug.cgi?id=224950
<rdar://77020922>

Reviewed by Eric Carlson.

CMBaseClass has a 4-byte version member before its 8-byte pointers on x86. Deal with this
the same way we do with other pointer-bearing, static, CM-type objects: enforce a 4-byte
packing, and prepend the struct with another 4-byte object in order to force the pointers
into 8-byte alignment.

  • Shared/mac/MediaFormatReader/CoreMediaWrapped.h: (WebKit::CoreMediaWrapped<Wrapped>::vTable):

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

9:31 AM Changeset in webkit [276500] by calvaris@igalia.com
  • 2 edits in trunk/Source/WebCore

[GStreamer][EME] cbcs fixes
https://bugs.webkit.org/show_bug.cgi?id=224976

Reviewed by Philippe Normand.

In cbcs you can get from qtdemux buffers without an iv_size
because it had constant_iv_size. We need to check that.

When decryption bails out because of the buffer being unencrypted,
we should TRACE so.

cbcs buffers could not include the subsample_count, we consider 0
as default.

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

(transformInPlace):

9:15 AM WebKitGTK/2.32.x edited by Adrian Perez de Castro
(diff)
9:14 AM WebKitGTK/2.32.x edited by Adrian Perez de Castro
(diff)
9:12 AM WebKitGTK/2.32.x edited by Adrian Perez de Castro
(diff)
8:40 AM Changeset in webkit [276499] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Improve HashTableDeletedValue of ServiceWorkerRegistrationKey
https://bugs.webkit.org/show_bug.cgi?id=224975

Patch by Michael Catanzaro <Michael Catanzaro> on 2021-04-23
Reviewed by Chris Dumez.

We construct only the SecurityOriginData, no need to construct a full
ServiceWorkerRegistrationKey or URL. No behavior changes.

  • workers/service/ServiceWorkerRegistrationKey.h:

(WTF::HashTraits<WebCore::ServiceWorkerRegistrationKey>::constructDeletedValue):
(WTF::HashTraits<WebCore::ServiceWorkerRegistrationKey>::isDeletedValue):
(WebCore::ServiceWorkerRegistrationKey::isHashTableDeletedValue const): Deleted.
(WebCore::ServiceWorkerRegistrationKey::ServiceWorkerRegistrationKey): Deleted.

8:16 AM Changeset in webkit [276498] by cathiechen
  • 8 edits in trunk/LayoutTests/imported/w3c

Import the update to "mapping attribute width and height to aspect ratio" tests from WPT
https://bugs.webkit.org/show_bug.cgi?id=224911

Reviewed by Rob Buis.

Import the update to "mapping attribute width and height to aspect ratio" tests from WPT commit 0ae0bb7cab. Split up the test cases, to make sure
each image has its own test case and won't affect testing other images.

  • web-platform-tests/html/rendering/replaced-elements/attributes-for-embedded-content-and-images/canvas-aspect-ratio-expected.txt:
  • web-platform-tests/html/rendering/replaced-elements/attributes-for-embedded-content-and-images/img-aspect-ratio-expected.txt:
  • web-platform-tests/html/rendering/replaced-elements/attributes-for-embedded-content-and-images/img-aspect-ratio.html:
  • web-platform-tests/html/rendering/replaced-elements/attributes-for-embedded-content-and-images/picture-aspect-ratio-expected.txt:
  • web-platform-tests/html/rendering/replaced-elements/attributes-for-embedded-content-and-images/picture-aspect-ratio.html:
  • web-platform-tests/html/rendering/replaced-elements/attributes-for-embedded-content-and-images/resources/aspect-ratio.js:

(test_computed_style_aspect_ratio):

  • web-platform-tests/html/rendering/replaced-elements/attributes-for-embedded-content-and-images/video-aspect-ratio-expected.txt:
7:32 AM Changeset in webkit [276497] by youenn@apple.com
  • 5 edits in trunk/Source

Handle rotation correctly in WebRTC GPUProcess rendering pipeline
https://bugs.webkit.org/show_bug.cgi?id=224927
<rdar://76915991>

Reviewed by Eric Carlson.

Source/WebCore:

Add a routine to update the affine transformn of the root layer.
Manually tested.

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

(WebCore::LocalSampleBufferDisplayLayer::updateRootLayerAffineTransform):

Source/WebKit:

Instead of updating the inner layer, update the root layer.

  • GPUProcess/webrtc/RemoteSampleBufferDisplayLayer.cpp:

(WebKit::RemoteSampleBufferDisplayLayer::updateAffineTransform):

7:07 AM Changeset in webkit [276496] by commit-queue@webkit.org
  • 2 edits in trunk/Source/JavaScriptCore

Unreviewed, reverting r276486.
https://bugs.webkit.org/show_bug.cgi?id=224973

broke windows build

Reverted changeset:

"[JSC][Win] callOperationNoExceptionCheck() also needs to
support operations that return SlowPathReturnType"
https://bugs.webkit.org/show_bug.cgi?id=224964
https://trac.webkit.org/changeset/276486

6:29 AM Changeset in webkit [276495] by Philippe Normand
  • 2 edits in trunk/Source/WebCore

Unreviewed, GStreamer follow-up after r276493

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:

(WebCore::MediaPlayerPrivateGStreamer::createGSTPlayBin): Remove spurious adoptGRef call, as
this is not transfer-full.

6:17 AM Changeset in webkit [276494] by Philippe Normand
  • 2 edits in trunk/LayoutTests

Unreviewed, GTK gardening

  • platform/gtk/TestExpectations: Remove test expectation for

imported/w3c/web-platform-tests/mediacapture-fromelement/capture.html which is tracked in
the main TestExpectations already.

2:46 AM Changeset in webkit [276493] by commit-queue@webkit.org
  • 7 edits in trunk/Source/WebCore

[Media] Allow access to MediaElement id from MediaPlayerPrivate
https://bugs.webkit.org/show_bug.cgi?id=224818

Patch by Philippe Normand <pnormand@igalia.com> on 2021-04-23
Reviewed by Xabier Rodriguez-Calvar.

A new method is added in the MediaPlayer allowing to query the client media element for its
identifier. That could be useful for accurate naming of the internal player/pipeline in the
MediaPlayerPrivate. If no specific id was set on the media element then the id is empty
string and the MediaPlayerPrivate needs to handle that by forging a unique id.

This also lead me to simplify pipeline-related code in the GStreamer player. The player can
handle only one pipeline in its entire life-time so the code handling pipeline "re-loading"
was actually never hit.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::parseAttribute):

  • html/HTMLMediaElement.h:
  • platform/graphics/MediaPlayer.cpp:

(WebCore::MediaPlayer::elementId const):

  • platform/graphics/MediaPlayer.h:

(WebCore::MediaPlayerClient::mediaPlayerElementId const):

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:

(WebCore::MediaPlayerPrivateGStreamer::load):
(WebCore::MediaPlayerPrivateGStreamer::createGSTPlayBin):
(WebCore::MediaPlayerPrivateGStreamer::loadFull): Deleted.
(WebCore::MediaPlayerPrivateGStreamer::setPipeline): Deleted.

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:
2:43 AM Changeset in webkit [276492] by svillar@igalia.com
  • 2 edits in trunk/Source/WebCore

Do not set synchronous scrolling for layers without relevant scrolling scopes
https://bugs.webkit.org/show_bug.cgi?id=221383

Reviewed by Simon Fraser.

Fixed backgrounds could force the layer compositor to set synchronous scrolling because they're slow
to repaint. However that cannot be done if the layer's boxScrollingScope hasn't been previously updated
in RenderLayer::updateLayerPosition.

  • rendering/RenderLayerCompositor.cpp:

(WebCore::RenderLayerCompositor::updateSynchronousScrollingNodes): Do not call
setSynchronousScrollingReasons() if there is no scrollingScope.

2:23 AM Changeset in webkit [276491] by commit-queue@webkit.org
  • 12 edits
    4 adds in trunk

[LibWebRTC][WPE][GTK] Enable vp9 and NO_MAIN_THREAD_WRAPPING
https://bugs.webkit.org/show_bug.cgi?id=222795

Patch by Philippe Normand <pnormand@igalia.com> on 2021-04-23
Reviewed by Xabier Rodriguez-Calvar.

Source/ThirdParty/libwebrtc:

  • CMakeLists.txt: Enable NO_MAIN_THREAD_WRAPPING as in the XCode build and harmonize options

between Apple and non-Apple ports.

  • Source/webrtc/common_video/h265/h265_pps_parser.h:

Source/WebCore:

Add VP9 encoding and decoding support in the WPE/GTK LibWebRTC backend. The underlying
encoding support is based on LibWebRTC's internal VP9 support. The GStreamer VPx encoders
lack simulcast and high profile support, so can't really be used anyway. The
GStreamerVP8Encoder was removed for this reason as well.

  • platform/mediastream/libwebrtc/GStreamerVideoDecoderFactory.cpp:

(WebCore::VP9Decoder::VP9Decoder):
(WebCore::VP9Decoder::Create):
(WebCore::GStreamerVideoDecoderFactory::CreateVideoDecoder):
(WebCore::GStreamerVideoDecoderFactory::GStreamerVideoDecoderFactory):
(WebCore::GStreamerVideoDecoderFactory::GetSupportedFormats const):

  • platform/mediastream/libwebrtc/GStreamerVideoDecoderFactory.h:
  • platform/mediastream/libwebrtc/GStreamerVideoEncoder.cpp:
  • platform/mediastream/libwebrtc/GStreamerVideoEncoderFactory.cpp:

(WebCore::GStreamerVideoEncoder::makeElement):
(WebCore::GStreamerVideoEncoder::createEncoder):
(WebCore::GStreamerVideoEncoder::SetRestrictionCaps):
(WebCore::GStreamerVideoEncoderFactory::CreateVideoEncoder):
(WebCore::GStreamerVideoEncoderFactory::GStreamerVideoEncoderFactory):
(WebCore::GStreamerVideoEncoderFactory::GetSupportedFormats const):

  • platform/mediastream/libwebrtc/GStreamerVideoEncoderFactory.h:
  • platform/mediastream/libwebrtc/LibWebRTCProviderGStreamer.cpp:

(WebCore::LibWebRTCProviderGStreamer::createDecoderFactory):
(WebCore::LibWebRTCProviderGStreamer::createEncoderFactory):

LayoutTests:

Update GLIB baselines for webrtc tests.

  • platform/glib/TestExpectations:
  • platform/glib/imported/w3c/web-platform-tests/webrtc/RTCPeerConnection-onnegotiationneeded-expected.txt: Added.
  • platform/glib/imported/w3c/web-platform-tests/webrtc/RTCPeerConnection-restartIce.https-expected.txt: Added.
  • platform/glib/imported/w3c/web-platform-tests/webrtc/RTCRtpTransceiver-setCodecPreferences-expected.txt: Added.
12:16 AM Changeset in webkit [276490] by Carlos Garcia Campos
  • 15 edits in trunk/Source/WebKit

[GTK] Implement PageClient::makeViewBlank()
https://bugs.webkit.org/show_bug.cgi?id=224236

Reviewed by Chris Dumez.

Make most of the changes in r275485 cross platform and implement PageClient::makeViewBlank() for the GTK port.

  • UIProcess/API/glib/WebKitUIClient.cpp:
  • UIProcess/API/gtk/PageClientImpl.cpp:

(WebKit::PageClientImpl::makeViewBlank):

  • UIProcess/API/gtk/PageClientImpl.h:
  • UIProcess/API/gtk/WebKitWebViewBase.cpp:

(webkitWebViewBaseSnapshot):
(webkitWebViewBaseDraw):
(webkitWebViewBaseMakeBlank):

  • UIProcess/API/gtk/WebKitWebViewBasePrivate.h:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::didUpdateRenderingAfterCommittingLoad):
(WebKit::WebPageProxy::stopMakingViewBlankDueToLackOfRenderingUpdate):
(WebKit::WebPageProxy::makeViewBlankIfUnpaintedSinceLastLoadCommit):
(WebKit::WebPageProxy::didCommitLoadForFrame):

  • UIProcess/WebPageProxy.h:
  • UIProcess/WebPageProxy.messages.in:
  • UIProcess/mac/WebPageProxyMac.mm:

(WebKit::WebPageProxy::didUpdateRenderingAfterCommittingLoad): Deleted.

  • WebProcess/WebPage/CoordinatedGraphics/CompositingCoordinator.cpp:

(WebKit::CompositingCoordinator::flushPendingLayerChanges):

  • WebProcess/WebPage/CoordinatedGraphics/DrawingAreaCoordinatedGraphics.cpp:

(WebKit::DrawingAreaCoordinatedGraphics::updateBackingStoreState):
(WebKit::DrawingAreaCoordinatedGraphics::display):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::didUpdateRendering):
(WebKit::WebPage::didCommitLoad):

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

(WebKit::WebPage::didUpdateRendering): Deleted.

Apr 22, 2021:

10:42 PM Changeset in webkit [276489] by Diego Pino Garcia
  • 2 edits
    1 add in trunk/LayoutTests

[GTK] Unreviewed test gardening. Update baseline after r276448.

  • platform/glib/TestExpectations:
  • platform/gtk/fast/forms/datalist/input-list-expected.txt: Added.
10:25 PM Changeset in webkit [276488] by commit-queue@webkit.org
  • 18 edits
    2 adds in trunk

[css-counter-styles] Parse @counter-style descriptors
https://bugs.webkit.org/show_bug.cgi?id=224718

Patch by Tyler Wilcock <Tyler Wilcock> on 2021-04-22
Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Parsing for all @counter-style descriptors is implemented with this
patch, so mark more tests passing.

You'll notice that some @counter-style descriptors implemented in this
patch did not gain any passing tests (e.g. pad, negative). In all
of these cases, the expected results contain a <string> value, and we
fail only because we incorrectly don't serialize these <string> values
with quotes. I have manually confirmed in all cases that these values
are properly parsed, so it's just the serialization that's incorrect.

These <string> values serialize without quotes because WebKit's representation
of custom identifiers is not a separate type, but instead overloaded onto the
CSS_STRING type. This means that during serialization time, WebKit must guess
whether it is actually serializing a string (and include quotes if so), or if
it's serializing a custom ident (leaving off quotes if so).

Relevant code snippet:

https://github.com/WebKit/WebKit/blob/36caeec07975bd5f47db8ac6b749c2787230a461/Source/WebCore/css/CSSMarkup.cpp#L153#L161

Relevant changelog snippet from David Hyatt, 2016-12-07:

We also overload CSS_STRING primitive value type and have it act as both a string
and a custom identifier. This is lame, since the parser should have made two different
types of objects instead, but since our parser doesn't do that yet, I added a serializeAsStringOrCustomIdent
that preserves our old behavior of "quote the string only if needed." In this case what
that really meant was "Try to guess that we were originally a custom ident and leave off
quotes if so." This function will go away once we properly create CSSStringValues and
CSSCustomIdentValues instead of turning the latter into strings.

  • web-platform-tests/css/css-counter-styles/counter-style-fallback-expected.txt:
  • web-platform-tests/css/css-counter-styles/counter-style-prefix-suffix-syntax-expected.txt:
  • web-platform-tests/css/css-counter-styles/counter-style-range-syntax-expected.txt:
  • web-platform-tests/css/css-counter-styles/counter-style-speak-as-syntax-expected.txt:
  • web-platform-tests/css/css-counter-styles/counter-style-system-syntax-expected.txt:

Source/WebCore:

Implement parsing and CSSCounterStyleRule IDL interface for @counter-style descriptors.
See spec for full details on all descriptors:

https://drafts.csswg.org/css-counter-styles-3/#the-counter-style-rule

Test: webexposed/counter-style-image-symbols-not-exposed.html and WPTs

  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::ComputedStyleExtractor::valueForPropertyInStyle):
Return nullptr for new @counter-style descriptor properties.

  • css/CSSCounterStyleRule.cpp:

(WebCore::toCounterStyleSystemEnum):
(WebCore::symbolsValidForSystem):
(WebCore::StyleRuleCounterStyle::newValueInvalidOrEqual const):
(WebCore::CSSCounterStyleRule::cssText const):
(WebCore::CSSCounterStyleRule::setName):
(WebCore::CSSCounterStyleRule::setterInternal):
(WebCore::CSSCounterStyleRule::setSystem):
(WebCore::CSSCounterStyleRule::setNegative):
(WebCore::CSSCounterStyleRule::setPrefix):
(WebCore::CSSCounterStyleRule::setSuffix):
(WebCore::CSSCounterStyleRule::setRange):
(WebCore::CSSCounterStyleRule::setPad):
(WebCore::CSSCounterStyleRule::setFallback):
(WebCore::CSSCounterStyleRule::setSymbols):
(WebCore::CSSCounterStyleRule::setAdditiveSymbols):
(WebCore::CSSCounterStyleRule::setSpeakAs):
Implement setters and tangential functionality required by setters.

  • css/CSSCounterStyleRule.h:

Replace FIXME with actual descriptor getter and setter
implementations.

  • css/CSSProperties.json:

Add @counter-style descriptor properties.

  • css/CSSValueKeywords.in:

Add new values required for system and speak-as
@counter-style descriptor properties.

  • css/parser/CSSParserContext.cpp:

(WebCore::CSSParserContext::isPropertyRuntimeDisabled const):
Ensure new @counter-style descriptors are disabled at runtime based
on CSSParserContext state.

  • css/parser/CSSPropertyParser.cpp:

(WebCore::consumeCounterStyleSystem):
(WebCore::consumeCounterStyleSymbol):
(WebCore::consumeCounterStyleNegative):
(WebCore::consumeCounterStyleRangeBound):
(WebCore::consumeCounterStyleRange):
(WebCore::consumeCounterStylePad):
(WebCore::consumeCounterStyleSymbols):
(WebCore::consumeCounterStyleAdditiveSymbols):
(WebCore::consumeCounterStyleSpeakAs):
(WebCore::CSSPropertyParser::parseCounterStyleDescriptor):
Parse @counter-style descriptors.

Tools:

  • DumpRenderTree/TestOptions.cpp:

(WTR::TestOptions::defaults):
Fix typo (missing 's'). CSSCounterStyleAtRulesEnabled, not
CSSCounterStyleAtRuleEnabled.

LayoutTests:

Add test ensuring <image> @counter-style symbol values cannot be
parsed when the counterStyleAtRuleImageSymbolsEnabled feature flag
is disabled.

---

This test is skipped on Windows because I haven't been able to get the
required feature flags (CSSCounterStyleAtRulesEnabled and
CSSCounterStyleAtRuleImageSymbolsEnabled) to work properly for that
port.

The code hidden behind these flags is all in the CSS parser, which is not
unique to Windows, so I think we can be confident that if the test passes
on all other platforms, that the behavior is correct on Windows too.

One attempt at implementing the necessary Windows-specific flag functionality is here:

https://bugs.webkit.org/attachment.cgi?id=426371&action=edit

Which failed to compile[1] with this error:

C:\cygwin\home\buildbot\worker\Windows-EWS\build\Tools\DumpRenderTree\win\DumpRenderTree.cpp(834,51): error C2039: 'setCSSCounterStyleAtRulesEnabled': is not a member of 'IWebPreferencesPrivate7' [C:\cygwin\home\buildbot\worker\Windows-EWS\build\WebKitBuild\Release\Tools\DumpRenderTree\DumpRenderTreeLib.vcxproj]
C:\cygwin\home\buildbot\worker\Windows-EWS\build\Tools\DumpRenderTree\win\DumpRenderTree.cpp(835,62): error C2039: 'setCSSCounterStyleAtRuleImageSymbolsEnabled': is not a member of 'IWebPreferencesPrivate7' [C:\cygwin\home\buildbot\worker\Windows-EWS\build\WebKitBuild\Release\Tools\DumpRenderTree\DumpRenderTreeLib.vcxproj]

Those methods are present in IWebPreferencesPrivate7.idl, and implemented similarly to other
flags in other places (e.g. win/WebPreferences.{h, cpp}, win/WebPreferenceKeysPrivate.h).
I can't reproduce this compilation error on my Windows machine.

I then tried removing the lines that caused the above compilation failure.
Those setters are called in DumpRenderTree::enableExperimentalFeatures, so in
lieu of enabling these flags there I could enable the flag I need via test header.

That patch is: https://bugs.webkit.org/attachment.cgi?id=426509&action=edit

This results in successful compilation, but causes lots (all?) of the
layout tests to fail[2] with a stacktrace that looks like:

10:20 PM Changeset in webkit [276487] by Lauro Moura
  • 2 edits in trunk/WebDriverTests

[GTK][WebDriver] Garden keypress failures

Unreviewed test gardening.

10:16 PM Changeset in webkit [276486] by Fujii Hironori
  • 2 edits in trunk/Source/JavaScriptCore

[JSC][Win] callOperationNoExceptionCheck() also needs to support operations that return SlowPathReturnType
https://bugs.webkit.org/show_bug.cgi?id=224964

Reviewed by Yusuke Suzuki.

r229989 (Bug 183655) added the x64 Windows support only for
callOperation(), but for callOperationNoExceptionCheck().
callOperationNoExceptionCheck() also needs the x64 Windows
support.

This change is a preparation for Bug 224920 that is going to use
callOperationNoExceptionCheck instead of callOperation.

  • jit/JIT.h:

(callOperation): Rewrote by using 'if constexpr' instead of SFINAE.
(callOperationNoExceptionCheck): Added a new implementation for
x64 Windows based on callOperation.

10:06 PM Changeset in webkit [276485] by Lauro Moura
  • 2 edits in trunk/Source/WTF

[WTF] Undefined behavior warning in StringBuilder::allocateBuffer
https://bugs.webkit.org/show_bug.cgi?id=224942

Reviewed by Chris Dumez.

  • wtf/text/StringBuilder.cpp:

(WTF::StringBuilder::allocateBuffer): Add check before calling memcpy

8:56 PM Changeset in webkit [276484] by Megan Gardner
  • 3 edits
    2 adds in trunk

Sometimes appHighlights are not painted when created.
https://bugs.webkit.org/show_bug.cgi?id=224904

Reviewed by Antti Koivisto.

Source/WebCore:

In order for highlights to be painted correctly, we need to not use the new line layout code,
so we need to opt out when we are repainting due to a highlight being added or removed.

Test: http/wpt/css/css-highlight-api/highlight-text-dynamic.html

  • Modules/highlight/Highlight.cpp:

(WebCore::repaintRange):

LayoutTests:

  • http/wpt/css/css-highlight-api/highlight-text-dynamic-expected-mismatch.html: Added.
  • http/wpt/css/css-highlight-api/highlight-text-dynamic.html: Added.
8:26 PM Changeset in webkit [276483] by Diego Pino Garcia
  • 2 edits in trunk/LayoutTests

[GTK] Unreviewed test gardening. Update test expectations.

  • platform/gtk/TestExpectations:
8:23 PM Changeset in webkit [276482] by jer.noble@apple.com
  • 2 edits in trunk/Source/WebKit

[Mac] CMBaseClass object pointers can become unaligned on x86
https://bugs.webkit.org/show_bug.cgi?id=224950
<rdar://77020922>

Reviewed by Eric Carlson.

CMBaseClass has a 4-byte version member before its 8-byte pointers on x86. Deal with this
the same way we do with other pointer-bearing, static, CM-type objects: enforce a 4-byte
packing, and prepend the struct with another 4-byte object in order to force the pointers
into 8-byte alignment.

  • Shared/mac/MediaFormatReader/CoreMediaWrapped.h:

(WebKit::CoreMediaWrapped<Wrapped>::vTable):

7:52 PM Changeset in webkit [276481] by Diego Pino Garcia
  • 7 edits
    20 adds in trunk/LayoutTests

[GTK] Unreviewed test gardening. Update baselines after r276448.

r276448 turned on editable <input type=date> and <input type=time>,
many tests baselines need to be updated or emitted as result differ
from general baseline.

  • platform/gtk/imported/w3c/web-platform-tests/html/dom/reflection-forms-expected.txt:
  • platform/gtk/imported/w3c/web-platform-tests/html/rendering/widgets/baseline-alignment-and-overflow.tentative-expected.txt:
  • platform/gtk/imported/w3c/web-platform-tests/html/semantics/forms/constraints/form-validation-checkValidity-expected.txt: Added.
  • platform/gtk/imported/w3c/web-platform-tests/html/semantics/forms/constraints/form-validation-reportValidity-expected.txt: Added.
  • platform/gtk/imported/w3c/web-platform-tests/html/semantics/forms/constraints/form-validation-validity-badInput-expected.txt:
  • platform/gtk/imported/w3c/web-platform-tests/html/semantics/forms/constraints/form-validation-validity-rangeOverflow-expected.txt: Added.
  • platform/gtk/imported/w3c/web-platform-tests/html/semantics/forms/constraints/form-validation-validity-rangeUnderflow-expected.txt: Added.
  • platform/gtk/imported/w3c/web-platform-tests/html/semantics/forms/constraints/form-validation-validity-stepMismatch-expected.txt: Added.
  • platform/gtk/imported/w3c/web-platform-tests/html/semantics/forms/constraints/form-validation-validity-valid-expected.txt: Added.
  • platform/gtk/imported/w3c/web-platform-tests/html/semantics/forms/constraints/form-validation-validity-valueMissing-expected.txt: Added.
  • platform/gtk/imported/w3c/web-platform-tests/html/semantics/forms/constraints/form-validation-willValidate-expected.txt:
  • platform/gtk/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/date-expected.txt: Added.
  • platform/gtk/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/datetime-expected.txt: Added.
  • platform/gtk/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/datetime-local-expected.txt: Added.
  • platform/gtk/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/input-seconds-leading-zeroes-expected.txt: Added.
  • platform/gtk/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/input-valueasdate-expected.txt: Added.
  • platform/gtk/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/input-valueasdate-stepping-expected.txt: Added.
  • platform/gtk/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/input-valueasnumber-expected.txt: Added.
  • platform/gtk/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/input-valueasnumber-stepping-expected.txt: Added.
  • platform/gtk/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/month-expected.txt: Added.
  • platform/gtk/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/selection-expected.txt:
  • platform/gtk/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/time-2-expected.txt: Added.
  • platform/gtk/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/time-expected.txt: Added.
  • platform/gtk/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/valueMode-expected.txt:
  • platform/gtk/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/week-expected.txt: Added.
  • platform/gtk/imported/w3c/web-platform-tests/html/semantics/selectors/pseudo-classes/inrange-outofrange-expected.txt: Added.
7:33 PM Changeset in webkit [276480] by Wenson Hsieh
  • 2 edits in trunk/Source/WebKit

Followup to r276397
https://bugs.webkit.org/show_bug.cgi?id=224883

Reviewed by Darin Adler.

Use a range-based for loop when mapping FloatQuads in sendTapHighlightForNodeIfNecessary.
No change in behavior.

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::sendTapHighlightForNodeIfNecessary):

6:29 PM Changeset in webkit [276479] by Robert Jenner
  • 2 edits in trunk/LayoutTests

[ BigSur wk2 arm64 ] webrtc/captureCanvas-webrtc.html
https://bugs.webkit.org/show_bug.cgi?id=224963

Uneviewed test gardneing.

  • platform/mac-wk2/TestExpectations: Updated test expectations to Pass Timeout for BigSur arm64 only while test is reviewed.
5:56 PM Changeset in webkit [276478] by Jean-Yves Avenard
  • 3 edits
    2 adds in trunk

Fix color gamut in WebRTC when using VPx software decoder.
https://bugs.webkit.org/show_bug.cgi?id=220972
<rdar://problem/73616455>

Reviewed by Youenn Fablet.

Source/WebCore:

By default, and how libwebrtc is configuring its encoders and decoder, video range levels are used
(16-235). Video range was assumed to use full range instead (0-255), causing blacks to look grey and
whites to appear washed-out.
It is theoretically possible, when using VP9 that full-range level are used. While the information
related to video levels is available at the VP9 codec level; only the color space information is
being made available in libwebrtc's public image data structure, color range isn't.
For now we can assume the default is sufficient, and a follow-up change will be submitted to libwebrtc
later on.

In memory of Dr. Alex. May he rest in peace.
Test: webrtc/video-vp8-videorange.html

  • platform/mediastream/mac/RealtimeIncomingVideoSourceCocoa.mm:

(WebCore::RealtimeIncomingVideoSourceCocoa::pixelBufferPool):

LayoutTests:

  • webrtc/video-vp8-videorange-expected.txt: Added.
  • webrtc/video-vp8-videorange.html: Added.
5:42 PM Changeset in webkit [276477] by Brent Fulgham
  • 4 edits in trunk/Source/WebKit

[iOS] Remove useless 'network-outbound' rule from non-networking file rule
https://bugs.webkit.org/show_bug.cgi?id=224940
<rdar://problem/66583476>

Reviewed by Per Arne Vollan.

No new tests. No effect on behavior.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.GPU.sb:
  • Resources/SandboxProfiles/ios/com.apple.WebKit.Networking.sb:
  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebAuthn.sb:
5:09 PM Changeset in webkit [276476] by BJ Burg
  • 14 edits in trunk

[Cocoa] re-enable test case WKInspectorDelegate.InspectorConfiguration
https://bugs.webkit.org/show_bug.cgi?id=224577
<rdar://70505272>

Reviewed by Devin Rousso.

Source/WebInspectorUI:

Adjust the CSP directive list in the <meta> tag to allow for customization
by WebKit ports.

  • UserInterface/Main.html:
  • Remove default-src 'self' so as not to block custom scheme loads.
  • Remove connect-src * ws: so as not to block custom scheme loads.
  • Add object-src 'none' as we have no reason to allow <object>, <embed>, or <applet>.

Source/WebKit:

For the purposes of testing, we want to be able to issue a fetch() that will
hit a custom URL scheme handler registered with _WKInspectorConfiguration.
This is not allowed by the existing <meta> tag CSP directive list because 'connect-src *'
does not allow connecting to arbitrary schemes, just arbitrary domains.

To fix this, relax the 'connect-src' directive in Main.html and apply
a dynamically-computed CSP directive using the 'Content-Security-Policy' HTTP
response header. This is only sent for main resources (Main.html and Test.html)
using the newly added inspector-resource: URL scheme handler.

The dynamically computed directive explicitly allows 'self' and any other registered
custom URL scheme handlers. WebKit ports which have not migrated away from file:///
will only apply the weaker 'connect-src' directive from the <meta> tag after this change.

Progresses an existing API test: WKInspectorDelegate.InspectorConfiguration.

  • UIProcess/API/Cocoa/_WKInspectorDelegate.h:
  • UIProcess/API/APIInspectorClient.h:

(API::InspectorClient::frontendLoaded):

  • UIProcess/API/Cocoa/_WKInspectorPrivateForTesting.h:
  • UIProcess/API/Cocoa/_WKInspector.mm:
  • UIProcess/API/Cocoa/_WKInspectorTesting.mm:

(JavaScriptSnippetToFetchURL):
(-[_WKInspector _fetchURLForTesting:]):

  • UIProcess/Inspector/WebInspectorUIProxy.cpp:

(WebKit::WebInspectorUIProxy::frontendLoaded): Notify the _WKInspectorDelegate
adapter that the frontend has finished loading.

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

(-[WKInspectorResourceURLSchemeHandler allowedURLSchemesForCSP]):
(-[WKInspectorResourceURLSchemeHandler setAllowedURLSchemesForCSP:]):
(-[WKInspectorResourceURLSchemeHandler webView:startURLSchemeTask:]):
Added. Keep track of allowed custom schemes and allowed main resources.
Apply the CSP directive for main resource requests only.

  • UIProcess/Inspector/mac/WKInspectorViewController.mm:

(-[WKInspectorViewController webViewConfiguration]):
Set the allowed URL schemes property so the URL scheme handler can include
the schemes in the dynamically computed 'connect-src' directive.

Tools:

Trigger a fetch of a resource that uses a custom URL scheme handler in
order to test that custom scheme handlers registered in an _WKInspectorConfiguration
are getting used as expected.

Add an -inspectorFrontendLoaded: delegate method to -WKInspectorDelegate.
This is mainly used to prevent tests from progressing with a half-loaded inspector.

To make it possible to do this fetch(), there are some CSP related changes
that were made for Main.html so that fetching from a registered custom scheme is allowed.

Drive-by, per post-commit comments, add a better fix for the memory leak reported in
https://bugs.webkit.org/show_bug.cgi?id=223899. Thanks Joe!

  • TestWebKitAPI/Tests/WebKitCocoa/WKInspectorDelegate.mm:

(resetGlobalState):
(-[InspectorDelegate inspectorFrontendLoaded:]):
(TEST):
(-[UIDelegate _webView:didAttachLocalInspector:]):
(-[UIDelegate _webView:willCloseLocalInspector:]):
(-[UIDelegate _webViewDidEnableInspectorBrowserDomain:]):
(-[UIDelegate _webViewDidDisableInspectorBrowserDomain:]):

4:04 PM Changeset in webkit [276475] by Lauro Moura
  • 2 edits in trunk/Tools

Unreviewed. Gardening TestSSL flakiness

  • TestWebKitAPI/glib/TestExpectations.json:
4:04 PM Changeset in webkit [276474] by Ruben Turcios
  • 1 copy in tags/Safari-612.1.11.5

Tag Safari-612.1.11.5.

3:33 PM Changeset in webkit [276473] by Simon Fraser
  • 9 edits in trunk

Add trace points for WKWebView snapshotting
https://bugs.webkit.org/show_bug.cgi?id=224943

Reviewed by Tim Horton.

Source/WebKit:

Add new trace points to make snapshotting-related issues easier to diagnose. In the UI
process we start/end a trace scope when requested to snapshot, and before calling the
client's completion handler.

Trace CARenderServer snapshots which happen in the UI process, and in the web process, trace
the start and end of the snapshot painting.

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView takeSnapshotWithConfiguration:completionHandler:]):

  • UIProcess/API/Cocoa/_WKThumbnailView.mm:

(-[_WKThumbnailView requestSnapshot]):

  • UIProcess/API/ios/WKWebViewIOS.mm:

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

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::paintSnapshotAtSize):

Source/WTF:

New snapshot values.

  • wtf/SystemTracing.h:

Tools:

New snapshot descriptions.

  • Tracing/SystemTracePoints.plist:
3:31 PM Changeset in webkit [276472] by Lauro Moura
  • 2 edits in trunk/Source/WebKit

Unreviewed. Guard doesPageNeedTCCD in platform COCOA after r274213
https://bugs.webkit.org/show_bug.cgi?id=224951

Silence -Wunused-function in non-cocoa platforms.

  • UIProcess/UserMediaPermissionRequestManagerProxy.cpp:
3:31 PM Changeset in webkit [276471] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

[SOUP] Null pointer dereference in ResourceLoader::didReceiveAuthenticationChallenge
https://bugs.webkit.org/show_bug.cgi?id=224838

Patch by Michael Catanzaro <Michael Catanzaro> on 2021-04-22
Reviewed by Adrian Perez de Castro.

Add a RELEASE_ASSERT_NOT_REACHED() to avoid this warning.

  • platform/network/soup/AuthenticationChallenge.h:
3:24 PM Changeset in webkit [276470] by commit-queue@webkit.org
  • 5 edits in trunk/Source/JavaScriptCore

Unreviewed, reverting r276456.
https://bugs.webkit.org/show_bug.cgi?id=224952

Windows specific crash

Reverted changeset:

"[JSC} Remove exception checks from non-throwing function
calls in Baseline JIT"
https://bugs.webkit.org/show_bug.cgi?id=224920
https://trac.webkit.org/changeset/276456

3:23 PM Changeset in webkit [276469] by Patrick Griffis
  • 4 edits in trunk/Source

[SOUP] Show more connection information in the inspector
https://bugs.webkit.org/show_bug.cgi?id=224873

Source/WebCore:

Handle SOUP_HTTP_2_0.

Reviewed by Adrian Perez de Castro.

  • platform/network/soup/ResourceResponseSoup.cpp:

(WebCore::ResourceResponse::ResourceResponse):

Source/WebKit:

Show the h2 protocol as well as the connection identifier
in the inspector.

Reviewed by Adrian Perez de Castro.

  • NetworkProcess/soup/NetworkDataTaskSoup.cpp:

(WebKit::NetworkDataTaskSoup::gotHeadersCallback):
(WebKit::soupHTTPVersionToString):
(WebKit::NetworkDataTaskSoup::didGetHeaders):

3:16 PM Changeset in webkit [276468] by Chris Dumez
  • 2 edits in trunk/Source/WebKitLegacy/win

Disable prefixed WebAudio on WebKitLegacy-Windows
https://bugs.webkit.org/show_bug.cgi?id=224944

Reviewed by Eric Carlson.

Disable prefixed WebAudio on WebKitLegacy-Windows. It is already disabled everywhere else.

  • WebView.cpp:

(WebView::notifyPreferencesChanged):

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

REGRESSION (Metal ANGLE): webgl/2.0.0/conformance/glsl/misc/shader-uniform-packing-restrictions.html is constantly timing out.
https://bugs.webkit.org/show_bug.cgi?id=224257

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations: Updating test that's timing out constantly to slow to see if it improves.
3:09 PM Changeset in webkit [276466] by Lauro Moura
  • 2 edits in trunk/Source/ThirdParty/ANGLE

[CMake][ANGLE] Silence -Wreturn-type for gcc and clang
https://bugs.webkit.org/show_bug.cgi?id=224949

Reviewed by Don Olmstead.

Avoid "control reaches end of non-void function" in
sh::TIntermRebuild::traverseChildren(...)

  • CMakeLists.txt:
3:07 PM Changeset in webkit [276465] by graouts@webkit.org
  • 10 edits in trunk

Add discrete animation support for border-image-repeat
https://bugs.webkit.org/show_bug.cgi?id=224923

Reviewed by Antti Koivisto.

LayoutTests/imported/w3c:

Mark 10 WPT progressions.

  • web-platform-tests/web-animations/animation-model/animation-types/accumulation-per-property-001-expected.txt:
  • web-platform-tests/web-animations/animation-model/animation-types/addition-per-property-001-expected.txt:
  • web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-001-expected.txt:

Source/WebCore:

  • animation/CSSPropertyAnimation.cpp:

(WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap):

  • rendering/style/NinePieceImage.cpp:

(WebCore::operator<<):

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

(WebCore::RenderStyle::setBorderImageHorizontalRule):
(WebCore::RenderStyle::setBorderImageVerticalRule):

  • rendering/style/RenderStyle.h:

(WebCore::RenderStyle::borderImageHorizontalRule const):
(WebCore::RenderStyle::borderImageVerticalRule const):

3:02 PM Changeset in webkit [276464] by Alan Bujtas
  • 3 edits
    2 adds in trunk

[RenderTreeBuilder] Multi-column spanners are not part of the enclosing multi-column renderer's subtree
https://bugs.webkit.org/show_bug.cgi?id=224914
<rdar://76846946>

Reviewed by Simon Fraser.

Source/WebCore:

This patch handles the case when the newly inserted renderer is a column spanner and checking enclosingFragmentedFlow()
on the spanner's new parent returns the incorrect enclosing multi-column renderer.
This can result in having the spanner in multiple multi-column flows.

(Note that the spanners are directly attached to the RenderBlockFlow that establishes the multi-column context, while non-spanner
renderers are part of the RenderMultiColumnFlow subtree. e.g

RenderBlockFlow <- spanner's parent.

RenderMultiColumnFlow

Non-spanner renderer

spanner renderer

calling enclosingFragmentedFlow() on a spanner's parent (RenderBlockFlow) returns the parent multi-column flow -and
not the one it establishes. e.g.

RenderMultiColumnFlow <- parent multi-column flow -in case of nested columns.

RenderBlockFlow <- spanner's parent.

RenderMultiColumnFlow

Non-spanner renderer

spanner renderer

)

Test: fast/multicol/spanner-inserted-to-multiple-multicolumns.html

  • rendering/updating/RenderTreeBuilder.cpp:

(WebCore::RenderTreeBuilder::childFlowStateChangesAndAffectsParentBlock):

LayoutTests:

  • fast/multicol/spanner-inserted-to-multiple-multicolumns-expected.txt: Added.
  • fast/multicol/spanner-inserted-to-multiple-multicolumns.html: Added.
2:56 PM Changeset in webkit [276463] by dino@apple.com
  • 2 edits in trunk/Source/WebCore

[WebXR] Optional button test is incorrect
https://bugs.webkit.org/show_bug.cgi?id=224945

Reviewed by Tim Horton.

Fix a conditional test that was always true.

  • testing/WebFakeXRInputController.cpp:

(WebCore::WebFakeXRInputController::getButtonOrPlaceholder const):

(A != B
A != C) -> (A != B && A != C)
2:50 PM Changeset in webkit [276462] by dino@apple.com
  • 2 edits in trunk/Source/WebCore

[WebXR] Closure is capturing this unnecessarily
https://bugs.webkit.org/show_bug.cgi?id=224946

Reviewed by Tim Horton.

Remove the "this" capture.

  • Modules/webxr/WebXRInputSourceArray.cpp:

(WebCore::WebXRInputSourceArray::handleRemovedInputSources):

2:19 PM Changeset in webkit [276461] by Chris Dumez
  • 2 edits in trunk/Source/WebKit

NowPlayingInfoForGPUManager::clearNowPlayingInfoPrivate() sometimes launches the GPUProcess on page close
https://bugs.webkit.org/show_bug.cgi?id=224939

Reviewed by Simon Fraser.

Make sure NowPlayingInfoForGPUManager::clearNowPlayingInfoPrivate() never launches the GPUProcess. The GPU
process already takes care of clearing now playing info on exit.

  • WebProcess/GPU/media/WebMediaStrategy.cpp:

(WebKit::WebMediaStrategy::createNowPlayingManager const):

1:52 PM Changeset in webkit [276460] by Chris Dumez
  • 5 edits in trunk/Source/WebKit

Call RemoteMediaEngineConfigurationFactory::registerFactory() in WebProcess::setUseGPUProcessForMedia()
https://bugs.webkit.org/show_bug.cgi?id=224937

Reviewed by Eric Carlson.

Call RemoteMediaEngineConfigurationFactory::registerFactory() in WebProcess::setUseGPUProcessForMedia(),
like we used to do, instead of doing it in the GPUProcessConnection constructor. It is safer to
register the factory before we have a GPUProcessConnection and we wouldn't want things to behave
differently depending on whether or not the GPUProcess is already launched. I made sure that this does
not eagerly launch the GPUProcess.

  • WebProcess/GPU/GPUProcessConnection.cpp:

(WebKit::GPUProcessConnection::GPUProcessConnection):
(WebKit::GPUProcessConnection::mediaEngineConfigurationFactory): Deleted.

  • WebProcess/GPU/GPUProcessConnection.h:
  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::setUseGPUProcessForMedia):
(WebKit::WebProcess::mediaEngineConfigurationFactory):

  • WebProcess/WebProcess.h:
1:36 PM Changeset in webkit [276459] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit

Fix ENABLE macro around NetworkProcessConnection::connectToRTCDataChannelRemoteSource declaration
https://bugs.webkit.org/show_bug.cgi?id=224938

Patch by Alex Christensen <achristensen@webkit.org> on 2021-04-22
Reviewed by Chris Dumez.

This matches the macro around the definition.

  • WebProcess/Network/NetworkProcessConnection.h:
1:25 PM Changeset in webkit [276458] by commit-queue@webkit.org
  • 4 edits
    2 deletes in trunk

Unreviewed, reverting r271644.
https://bugs.webkit.org/show_bug.cgi?id=224908

Caused regression
<http://webkit.org/b/221962|webkit.org/b/221962>

Reverted changeset:

"[css-multicol] OOM with 1px height columns"
https://bugs.webkit.org/show_bug.cgi?id=220490
https://trac.webkit.org/changeset/271644

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

Add "Tim Nguyen" to contributors.json.
https://bugs.webkit.org/show_bug.cgi?id=224936

Patch by Tim Nguyen <ntim@apple.com> on 2021-04-22
Reviewed by Alexey Proskuryakov.

  • Scripts/webkitpy/common/config/contributors.json:
1:17 PM Changeset in webkit [276456] by ysuzuki@apple.com
  • 5 edits in trunk/Source/JavaScriptCore

[JSC} Remove exception checks from non-throwing function calls in Baseline JIT
https://bugs.webkit.org/show_bug.cgi?id=224920

Reviewed by Tadeu Zagallo.

These functions are not taking JSGlobalObject and will not throw an error.
Use callOperationNoExceptionCheck instead to avoid emitting unnecessary exception checks.

  • jit/JIT.cpp:

(JSC::JIT::emitEnterOptimizationCheck):

  • jit/JITOpcodes.cpp:

(JSC::JIT::emitSlow_op_new_object):
(JSC::JIT::emit_op_catch):
(JSC::JIT::emit_op_switch_imm):
(JSC::JIT::emitSlow_op_loop_hint):
(JSC::JIT::emit_op_profile_type):

  • jit/JITOpcodes32_64.cpp:

(JSC::JIT::emitSlow_op_new_object):
(JSC::JIT::emit_op_catch):
(JSC::JIT::emit_op_switch_imm):
(JSC::JIT::emit_op_profile_type):

  • jit/JITPropertyAccess.cpp:

(JSC::JIT::emitWriteBarrier):

1:01 PM Changeset in webkit [276455] by Fujii Hironori
  • 2 edits in trunk/Tools

[Win][WTR] eventSender.leapForward doesn't work as expected
https://bugs.webkit.org/show_bug.cgi?id=224918

Reviewed by Don Olmstead.

fast/events/click-count.html was failing because
eventSender.leapForward didn't work as expected.

Use Sleep() API to implement it as well as DRT does.

  • WebKitTestRunner/win/EventSenderProxyWin.cpp:

(WTR::EventSenderProxy::dispatchMessage):
(WTR::EventSenderProxy::EventSenderProxy):
(WTR::EventSenderProxy::leapForward):

12:48 PM Changeset in webkit [276454] by BJ Burg
  • 4 edits in trunk

v2: REGRESSION(r266890): [Cocoa] Fix API::InspectorClient leak
https://bugs.webkit.org/show_bug.cgi?id=223899
<rdar://problem/75249282>

Reviewed by Devin Rousso.

Address post-review feedback.

Source/WebKit:

  • UIProcess/API/Cocoa/_WKInspectorTesting.mm:

(-[_WKInspector _openURLExternallyForTesting:useFrontendAPI:]):

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/WKInspectorDelegate.mm:

(TEST):

12:32 PM Changeset in webkit [276453] by achristensen@apple.com
  • 2 edits in trunk/Source/WebKit

Add some new messages.in files to the Mac CMake build

  • PlatformMac.cmake:
12:21 PM Changeset in webkit [276452] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Unreviewed, reverting r276393.

This expectation is needed so that the test will pass on bots

Reverted changeset:

"Mass removing prior test expectations that don't need to be
set anymore"
https://bugs.webkit.org/show_bug.cgi?id=224898
https://commits.webkit.org/r276393

12:19 PM Changeset in webkit [276451] by pvollan@apple.com
  • 2 edits in trunk/Source/WebKit

[iOS] Update sandbox message filter syntax
https://bugs.webkit.org/show_bug.cgi?id=223384
<rdar://problem/75531614>

Reviewed by Brent Fulgham.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
11:44 AM Changeset in webkit [276450] by Chris Lord
  • 61 edits
    2 adds in trunk

Implement FontFace in Workers for OffscreenCanvas
https://bugs.webkit.org/show_bug.cgi?id=224178
<rdar://problem/76529024>

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

FontFace is now available for Workers, rebaseline related tests.

  • web-platform-tests/css/css-font-loading/fontfaceset-load-css-wide-keywords-expected.txt:
  • web-platform-tests/html/canvas/offscreen/text/2d.text.draw.align.center.worker-expected.txt:
  • web-platform-tests/html/canvas/offscreen/text/2d.text.draw.align.end.ltr.worker-expected.txt:
  • web-platform-tests/html/canvas/offscreen/text/2d.text.draw.align.end.rtl.worker-expected.txt:
  • web-platform-tests/html/canvas/offscreen/text/2d.text.draw.align.left.worker-expected.txt:
  • web-platform-tests/html/canvas/offscreen/text/2d.text.draw.align.right.worker-expected.txt:
  • web-platform-tests/html/canvas/offscreen/text/2d.text.draw.align.start.ltr.worker-expected.txt:
  • web-platform-tests/html/canvas/offscreen/text/2d.text.draw.align.start.rtl.worker-expected.txt:
  • web-platform-tests/html/canvas/offscreen/text/2d.text.draw.baseline.alphabetic.worker-expected.txt:
  • web-platform-tests/html/canvas/offscreen/text/2d.text.draw.baseline.bottom.worker-expected.txt:
  • web-platform-tests/html/canvas/offscreen/text/2d.text.draw.baseline.hanging.worker-expected.txt:
  • web-platform-tests/html/canvas/offscreen/text/2d.text.draw.baseline.ideographic.worker-expected.txt:
  • web-platform-tests/html/canvas/offscreen/text/2d.text.draw.baseline.middle.worker-expected.txt:
  • web-platform-tests/html/canvas/offscreen/text/2d.text.draw.baseline.top.worker-expected.txt:
  • web-platform-tests/html/canvas/offscreen/text/2d.text.draw.fill.maxWidth.bound.worker-expected.txt:
  • web-platform-tests/html/canvas/offscreen/text/2d.text.draw.fill.maxWidth.fontface.worker-expected.txt:
  • web-platform-tests/html/canvas/offscreen/text/2d.text.draw.fontface.notinpage.worker-expected.txt:
  • web-platform-tests/html/canvas/offscreen/text/2d.text.draw.fontface.repeat.worker-expected.txt:
  • web-platform-tests/html/canvas/offscreen/text/2d.text.draw.fontface.worker-expected.txt:
  • web-platform-tests/html/canvas/offscreen/text/2d.text.draw.space.basic.worker-expected.txt:
  • web-platform-tests/html/canvas/offscreen/text/2d.text.draw.space.collapse.end.worker-expected.txt:
  • web-platform-tests/html/canvas/offscreen/text/2d.text.draw.space.collapse.nonspace.worker-expected.txt:
  • web-platform-tests/html/canvas/offscreen/text/2d.text.draw.space.collapse.other.worker-expected.txt:
  • web-platform-tests/html/canvas/offscreen/text/2d.text.draw.space.collapse.space.worker-expected.txt:
  • web-platform-tests/html/canvas/offscreen/text/2d.text.draw.space.collapse.start.worker-expected.txt:
  • web-platform-tests/html/canvas/offscreen/text/2d.text.measure.actualBoundingBox.worker-expected.txt:
  • web-platform-tests/html/canvas/offscreen/text/2d.text.measure.advances.worker-expected.txt:
  • web-platform-tests/html/canvas/offscreen/text/2d.text.measure.baselines.worker-expected.txt:
  • web-platform-tests/html/canvas/offscreen/text/2d.text.measure.emHeights.worker-expected.txt:
  • web-platform-tests/html/canvas/offscreen/text/2d.text.measure.fontBoundingBox.worker-expected.txt:
  • web-platform-tests/html/canvas/offscreen/text/2d.text.measure.width.basic.worker-expected.txt:
  • web-platform-tests/html/canvas/offscreen/text/2d.text.measure.width.empty.worker-expected.txt:
  • web-platform-tests/html/canvas/offscreen/text/2d.text.measure.width.space.worker-expected.txt:

Source/WebCore:

To comply with spec and complete the OffscreenCanvas implementation,
FontFace needs to be made available on WorkerGlobalScope. This patch
makes it available and fixes crashes using it due to accessing
main-thread only singletons.

No new tests, rebaselined existing tests.

  • Headers.cmake:
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj: Add new files WorkerFontLoadRequest.cpp, WorkerFontLoadRequest.h
  • css/CSSFontFace.cpp:

(WebCore::CSSFontFace::fontCacheFallingBackToSingleton):
(WebCore::CSSFontFace::font):

  • css/CSSFontFace.h: Use the ScriptExecutionContext's FontCache if possible when loading fonts.
  • css/CSSFontFaceSet.cpp:

(WebCore::CSSFontFaceSet::ensureLocalFontFacesForFamilyRegistered):
(WebCore::CSSFontFaceSet::matchingFacesExcludingPreinstalledFonts):

Use the correct CSSValuePool and FontCache in
ensureLocalFontFacesForFamilyRegistered. Also clarify a vaguely-named
variable.

  • css/CSSFontFaceSource.cpp:

(WebCore::CSSFontFaceSource::CSSFontFaceSource):

Use FontLoadRequest::isPending instead of making assumptions about the
request state on construction.

  • css/FontFace.cpp:

(WebCore::FontFace::create):
(WebCore::FontFace::display const):

  • css/FontFace.h:
  • css/FontFace.idl: Construct with a ScriptExecutionContext instead of a Document and make available for Workers.
  • css/FontFaceSet.idl: Expose to Workers.
  • loader/FontLoadRequest.h:

(WebCore::FontLoadRequest::isWorkerFontLoadRequest const):

Add isPending function and new type WorkerFontLoadRequest.

  • loader/cache/CachedFont.cpp:

(WebCore::CachedFont::createCustomFontData):

Use convertWOFFToSfntIfNecessary().

  • loader/cache/CachedFontLoadRequest.h: Implement FontLoadRequest::isPending.
  • platform/graphics/Font.cpp:

(WebCore::Font::create):
(WebCore::Font::Font):
(WebCore::Font::systemFallbackFontForCharacter const):

  • platform/graphics/Font.h: Add an optional FontCache parameter for use with vertical font data retrieval and add a FontCache parameter to systemFallbackFontForCharacter instead of using the singleton.
  • platform/graphics/FontCache.cpp:

(WebCore::FontCache::fontForPlatformData):

Pass FontCache parameter when creating fonts.

  • platform/graphics/FontCache.h:

(WebCore::FontCache::fontCacheFallingBackToSingleton):

  • platform/graphics/FontCascade.cpp:

(WebCore::FontCascade::update const):

  • platform/graphics/cairo/FontCairoHarfbuzzNG.cpp:

(WebCore::FontCascade::fontForCombiningCharacterSequence const):

Rename fontCacheFallbackToSingleton -> fontCacheFallingBackToSingleton

  • platform/graphics/FontCascadeFonts.cpp:

(WebCore::FontCascadeFonts::realizeFallbackRangesAt):
(WebCore::FontCascadeFonts::glyphDataForSystemFallback):

Use familyNamesData instead of familyNames and pass the FontCache
parameter when calling glyphDataForSystemFallback to make this safe
to use in a Worker.

  • platform/graphics/FontTaggedSettings.h: Add missing wtf/Hasher.h include.
  • platform/graphics/WOFFFileFormat.cpp:

(WebCore::convertWOFFToSfntIfNecessary):

  • platform/graphics/WOFFFileFormat.h: Add utility function to convert WOFF fonts on non-Cocoa platforms.
  • workers/WorkerFontLoadRequest.cpp: Added.

(WebCore::WorkerFontLoadRequest::WorkerFontLoadRequest):
(WebCore::WorkerFontLoadRequest::load):
(WebCore::WorkerFontLoadRequest::ensureCustomFontData):
(WebCore::WorkerFontLoadRequest::createFont):
(WebCore::WorkerFontLoadRequest::setClient):
(WebCore::WorkerFontLoadRequest::didReceiveResponse):
(WebCore::WorkerFontLoadRequest::didReceiveData):
(WebCore::WorkerFontLoadRequest::didFinishLoading):
(WebCore::WorkerFontLoadRequest::didFail):

  • workers/WorkerFontLoadRequest.h: Added. Implement FontLoadRequest for Workers.
  • workers/WorkerGlobalScope.cpp:

(WebCore::WorkerGlobalScope::fonts):
(WebCore::WorkerGlobalScope::fontLoadRequest):
(WebCore::WorkerGlobalScope::beginLoadingFontSoon):

  • workers/WorkerGlobalScope.h: Implement ScriptExecutionContext font-loading related functions.
  • workers/WorkerGlobalScope.idl: Include FontFaceSource.
11:41 AM Changeset in webkit [276449] by ysuzuki@apple.com
  • 5 edits
    1 add in trunk

[JSC] Baseline should have fast path for switch_imm
https://bugs.webkit.org/show_bug.cgi?id=224521

Reviewed by Tadeu Zagallo.

JSTests:

  • stress/switch-imm-baseline.js: Added.

(shouldBe):
(test):

Source/JavaScriptCore:

This patch implements op_switch_imm fast path in Baseline.
We have this fast path in LLInt, DFG, and FTL. So only Baseline lacks this.

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::emitSwitchIntJump):

  • jit/JITOpcodes.cpp:

(JSC::JIT::emit_op_switch_imm):

  • jit/JITOpcodes32_64.cpp:

(JSC::JIT::emit_op_switch_imm):

11:09 AM Changeset in webkit [276448] by Martin Robinson
  • 13 edits
    7 adds in trunk

[GTK] Turn on editable <input type=date> and <input type=time> fields
https://bugs.webkit.org/show_bug.cgi?id=224921

Reviewed by Carlos Garcia Campos.

.:

Turn on editable date and time inputs for GTK

  • Source/cmake/OptionsGTK.cmake: Add new source file to the list.

Source/WebCore:

Turn on editable date and time inputs for GTK.

No new tests. This is covered by enabling existing <input type=date>
and <input type=time> tests.

  • Headers.cmake: Add headers to the list.
  • loader/EmptyClients.cpp: Add missing header include.

Source/WebKit:

Turn on editable date and time inputs for GTK.

  • SourcesGTK.txt: Add source file.
  • UIProcess/API/gtk/PageClientImpl.cpp:

(WebKit::PageClientImpl::createDateTimePicker): Added.

  • UIProcess/API/gtk/PageClientImpl.h: Added method declaration.
  • UIProcess/gtk/WebDateTimePickerGtk.cpp: Added. Stub for date/time picker which

doesn't have any user interface. This will allow clients to use the editable shadow
DOM date/time input editable fields.
(WebKit::WebDateTimePickerGtk::create):
(WebKit::WebDateTimePickerGtk::~WebDateTimePickerGtk):
(WebKit::WebDateTimePickerGtk::WebDateTimePickerGtk):
(WebKit::WebDateTimePickerGtk::endPicker):
(WebKit::WebDateTimePickerGtk::showDateTimePicker):

  • UIProcess/gtk/WebDateTimePickerGtk.h: Added.

Source/WTF:

Turn on editable date and time inputs for GTK.

  • Scripts/Preferences/WebPreferencesInternal.yaml: Set editable date/time inputs

on by default for GTK as well.

LayoutTests:

Turn on editable date and time inputs for GTK.

  • platform/gtk/TestExpectations: Enable new forms test for WebKitGTK.
  • platform/gtk/fast/forms/date/date-input-rendering-basic-expected.txt: Added.
  • platform/gtk/fast/forms/date/date-pseudo-elements-expected.txt: Added.
  • platform/gtk/fast/forms/time/time-input-rendering-basic-expected.txt: Added.
11:05 AM Changeset in webkit [276447] by Aditya Keerthi
  • 5 edits in trunk/Source

Fix the tvOS build after r276325
https://bugs.webkit.org/show_bug.cgi?id=224929
<rdar://problem/77003408>

Reviewed by Wenson Hsieh.

Source/WebKit:

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

[UIColor systemBackgroundColor] is SPI on tvOS.

(-[WKDateTimePickerViewController viewDidLoad]):

UIBlurEffectStyleSystemMaterial is not available on tvOS. Instead, use
a UIView with a system background color as the background view.

Source/WTF:

Fix the tvOS build after r276325

  • wtf/PlatformHave.h:
11:00 AM Changeset in webkit [276446] by BJ Burg
  • 2 edits in trunk/Source/WebKit

v2: Web Inspector: exempt API::SharedJSContext from remote inspection and automatic inspection
https://bugs.webkit.org/show_bug.cgi?id=224841
<rdar://69386559>

Reviewed by Devin Rousso.

Use the RemoteInspector C SPI to temporarily turn off "allow remote inspection by default".

  • UIProcess/API/Cocoa/APISerializedScriptValueCocoa.mm:

(API::SharedJSContext::ensureContext):

10:12 AM Changeset in webkit [276445] by commit-queue@webkit.org
  • 4 edits in trunk

[css-grid] WPT Tests css/css-grid/grid-items/grid-item-percentage-sizes-*.html fail
https://bugs.webkit.org/show_bug.cgi?id=209650

Patch by Ziran Sun <Ziran Sun> on 2021-04-22
Reviewed by Sergio Villar Senin.

Source/WebCore:

We need to check child's writing mode in order to pick the correct dimension to resolve
percentage height against. Overriding containing block size should also be chosen in favour
of special code for orthogonal writing mode.

This change is an import of Chromium CL at
https://chromium-review.googlesource.com/c/chromium/src/+/1348055.

Three tests that failed are now passing.

  • rendering/RenderBox.cpp:

(WebCore::RenderBox::computePercentageLogicalHeight const):

LayoutTests:

  • TestExpectations: grid-item-percentage-sizes-00{1-3}.html are passing and unskipped now.
9:52 AM Changeset in webkit [276444] by Alan Coon
  • 1 copy in tags/Safari-611.1.21.161.5

Tag Safari-611.1.21.161.5.

9:44 AM Changeset in webkit [276443] by Alan Coon
  • 8 edits in branches/safari-611.1.21.161-branch/Source

Versioning.

WebKit-7611.1.21.161.5

9:43 AM Changeset in webkit [276442] by Sam Sneddon
  • 3 edits in trunk/Tools

Ensure all non-local AutoInstalled libraries specify version
https://bugs.webkit.org/show_bug.cgi?id=224872

Reviewed by Jonathan Bedard.

Currently on Python 3 running test-webkitpy fails due to us attempting to
install flask 2.0.0rc1, recently released. We shouldn't, however, be installing
the latest possible version of flask, but rather specifying one. We do actually
attempt to specify one in webkitflaskpy, but we pass the Version object to the
wrong place.

Now actually specifying the versions, we need to change some of them to the
latest version which supports Python 2 to be able to install them to run
test-webkitpy-python2.

To ensure we don't repeat this, this makes AutoInstall.register raise if you try
to register a non-local package without specifying a version.

Additionally, require AutoInstall.register's package argument be a Package by
passing moving the lookup to AutoInstall.install and requiring it to be
successful.

Finally, while I'm touching this, make registering 'autoinstalled' an outright
failure, and make installing a local package fail if it cannot be found.

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

(AutoInstall.register):
(AutoInstall.install):

  • Scripts/libraries/webkitflaskpy/webkitflaskpy/init.py:
9:38 AM Changeset in webkit [276441] by Wenson Hsieh
  • 5 edits
    1 add in trunk

[iOS] The Look Up text service popover should avoid covering selected text
https://bugs.webkit.org/show_bug.cgi?id=224915
rdar://75891746

Reviewed by Megan Gardner.

Source/WebKit:

Adjust the presentation rect when showing the Look Up text service popup using the callout bar on iOS so that
we use the entire bounds of the selection. Currently, we only use the first selection rect (top to bottom) as
the presentation rect, which may cause the popup to obscure selected text.

This seems to have been derived from iOS legacy web view behavior that dating back to rdar://7475904; while the
exact reasoning for this is effectively lost to time, it's likely due to how there used to only be a single
block selection rect in non-editable content in iOS 5 anyways, so taking only the first selection rect would not
be incorrect. However, we now use character granularity selection everywhere in WebKit2, so this logic is no
longer sensible.

Test: TextServicesTests.LookUpPresentationRect

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView _lookupForWebView:]):
(-[WKContentView _translateForWebView:]):

Make a similar adjustment here, since this presentation rect is intended to match that of the Look Up popover.

Tools:

Add a new API test to exercise the change.

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/ios/TextServicesTests.mm: Added.

(TestWebKitAPI::handleLookup):
(TestWebKitAPI::TEST):

  • TestWebKitAPI/ios/UIKitSPI.h: Add SPI declarations for UIWKTextInteractionAssistant.
9:35 AM Changeset in webkit [276440] by Ruben Turcios
  • 6 edits in branches/safari-612.1.11-branch/Source

Cherry-pick r275899. rdar://problem/76986496

Revert r275172
https://bugs.webkit.org/show_bug.cgi?id=224499
<rdar://76396241>

Patch by Alex Christensen <achristensen@webkit.org> on 2021-04-13
Reviewed by Tim Horton.

Source/WebKit:

It turns out that terminate_with_reason uses a different syscall than xpc_connection_kill in its implementation,
and the former is not allowed by Messages's sandbox yet. Revert for Messages until they add it.

  • Platform/IPC/cocoa/ConnectionCocoa.mm: (IPC::ConnectionTerminationWatchdog::watchdogTimerFired): (IPC::Connection::kill):
  • Platform/spi/Cocoa/ReasonSPI.h:
  • UIProcess/Launcher/mac/ProcessLauncherMac.mm: (WebKit::ProcessLauncher::platformInvalidate): (WebKit::terminateWithReason):

Source/WTF:

  • wtf/spi/darwin/XPCSPI.h:

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

9:34 AM Changeset in webkit [276439] by Brent Fulgham
  • 2 edits in trunk/Source/WebKit

[macOS] Re-block access to SYS_setattrlist
https://bugs.webkit.org/show_bug.cgi?id=224892
<rdar://problem/74828532>

Reviewed by Per Arne Vollan.

No new tests. No change in behavior.

  • WebProcess/com.apple.WebProcess.sb.in:
9:12 AM Changeset in webkit [276438] by aakash_jain@apple.com
  • 3 edits in trunk/Tools

Services EWS should run for webkitscmpy and webkitcorepy changes
https://bugs.webkit.org/show_bug.cgi?id=223941

Reviewed by Jonathan Bedard.

  • CISupport/ews-build/steps.py:

(CheckPatchRelevance):

  • CISupport/ews-build/steps_unittest.py: Added unit-test.
9:04 AM Changeset in webkit [276437] by Chris Dumez
  • 5 edits in trunk/Source/WebKit

Call RemoteCDMFactory::registerFactory() in WebProcess::setUseGPUProcessForMedia()
https://bugs.webkit.org/show_bug.cgi?id=224907

Reviewed by Eric Carlson.

Call RemoteCDMFactory::registerFactory() in WebProcess::setUseGPUProcessForMedia() like we
did before r275887, instead of doing it in the GPUProcessConnection constructor. This is
safer as it makes sure the CDMFactory gets registered even if the GPUProcess has not launched
yet. This is also more consistent with what we do for LegacyCDM since Bug 224905.

The MediaKeys API still seems functional after r275887 (unlike the LegacyCDM one) so it does
not seem it caused obvious breakage. That said, it is still safer to restore pre-r275887
behavior. There is also no drawback to restoring the previous behavior since I made sure the
GPUProcess does not get launched eagerly.

  • WebProcess/GPU/GPUProcessConnection.cpp:

(WebKit::GPUProcessConnection::GPUProcessConnection):
(WebKit::GPUProcessConnection::dispatchMessage):

  • WebProcess/GPU/GPUProcessConnection.h:
  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::setUseGPUProcessForMedia):
(WebKit::WebProcess::cdmFactory):

  • WebProcess/WebProcess.h:
8:17 AM Changeset in webkit [276436] by Sam Sneddon
  • 4 edits
    1 move
    1 delete in trunk/Tools

Add an xfail marker for webkitpy's tests; get SCM passing
https://bugs.webkit.org/show_bug.cgi?id=224886

Reviewed by Jonathan Bedard.

Also:

Delete the old, unused skip_if decorator.

Fix our runner to detect unexpected-success and report them as failures.

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

(GitSVNTest.test_rebase_in_progress):
(GitTestWithMock.test_create_patch):

  • Scripts/webkitpy/test/markers.py:

(xfail):
(xfail.decorator):

  • Scripts/webkitpy/test/runner.py:

(Runner.handle):
(_Worker.handle):
(TestResult):
(TestResult.init):
(TestResult.addSuccess):

  • Scripts/webkitpy/test/runner_unittest.py:

(FakeTestCase):
(FakeTestCase.init):
(FakeTestCase.id):
(FakeModuleSuite.run):

  • Scripts/webkitpy/test/skip.py: Removed.
  • Scripts/webkitpy/test/skip_unittest.py: Removed.
7:48 AM Changeset in webkit [276435] by Sam Sneddon
  • 2 edits in trunk/Tools

server_process_unittest.py's MockFile should all be bytes
https://bugs.webkit.org/show_bug.cgi?id=224877

Reviewed by Jonathan Bedard.

This fixes the test when run under pytest on Python 3.

  • Scripts/webkitpy/port/server_process_unittest.py:

(MockFile.read):

7:09 AM Changeset in webkit [276434] by Sam Sneddon
  • 6 edits in trunk/Tools

Fix potential flakiness when running webkitpy tests
https://bugs.webkit.org/show_bug.cgi?id=224887

Reviewed by Jonathan Bedard.

  • Scripts/webkitpy/common/system/executive_unittest.py:

(ExecutiveTest.serial_test_run_in_parallel): Increase the delay to ensure it's
much greater than the VM spawn time, as the current time is a bit marginal when
the system is under load and we're using the spawn multiprocessing start method

  • Scripts/webkitpy/test/main.py:

(Tester.run): Allow argv to be passed through for testing

  • Scripts/webkitpy/test/main_unittest.py:

(TesterTest.test_no_tests_found): Explicitly pass argv to avoid using sys.argv

  • Scripts/webkitpy/w3c/test_parser_unittest.py:

(TestParserTest.test_analyze_pixel_test_all_true): Reset options after test
(TestParserTest.test_analyze_pixel_test_all_false): Reset options after test

  • Scripts/webkitpy/xcode/simulated_device_unittest.py:

(SimulatedDeviceTest.reset_simulated_device_manager): _device_identifier_to_name
is a dict, and should remain one

7:06 AM Changeset in webkit [276433] by imanol
  • 33 edits
    4 copies
    11 adds in trunk

Implement WebXR Input Sources
https://bugs.webkit.org/show_bug.cgi?id=223257

Reviewed by Youenn Fablet.

.:

Enable WPE Gamepad when WebXR is enabled.

  • Source/cmake/OptionsWPE.cmake:

LayoutTests/imported/w3c:

Update WebXR Input Source test expectations.

  • web-platform-tests/webxr/events_input_source_recreation.https-expected.txt: Added.
  • web-platform-tests/webxr/events_input_sources_change.https-expected.txt: Added.
  • web-platform-tests/webxr/events_session_select.https-expected.txt: Added.
  • web-platform-tests/webxr/events_session_select_subframe.https-expected.txt: Added.
  • web-platform-tests/webxr/events_session_squeeze.https-expected.txt: Added.
  • web-platform-tests/webxr/getInputPose_handedness.https-expected.txt: Added.
  • web-platform-tests/webxr/xrInputSource_add_remove.https-expected.txt: Added.
  • web-platform-tests/webxr/xrInputSource_emulatedPosition.https-expected.txt: Added.
  • web-platform-tests/webxr/xrInputSource_profiles.https-expected.txt: Added.
  • web-platform-tests/webxr/xrInputSource_sameObject.https-expected.txt: Added.
  • web-platform-tests/webxr/xrReferenceSpace_originOffset.https-expected.txt: Added.

Source/WebCore:

This patch implements the platform data definition and the DOM bits required to support WebXR Input Sources, the input mechanism used in WebXR.
Example XR input sources include, but are not limited to, handheld controllers, optically tracked hands, and gaze-based input methods.

More info about the API in:

Tested by WebXR WPT.

  • Modules/gamepad/Gamepad.h: Add setConnected method.
  • Modules/webxr/WebXRGamepad.cpp: Bridge between WebXRInputSource and Gamepad

(WebCore::WebXRGamepad::WebXRGamepad):

  • Modules/webxr/WebXRGamepad.h:
  • Modules/webxr/WebXRInputSpace.cpp: Instance of WebXRSpace used for WebXRInputSource spaces.

(WebCore::WebXRInputSpace::create):
(WebCore::WebXRInputSpace::WebXRInputSpace):
(WebCore::WebXRInputSpace::nativeOrigin const):

  • Modules/webxr/WebXRInputSpace.h:
  • Modules/webxr/WebXRFrame.cpp:

(WebCore::WebXRFrame::populatePose): set emulatedPosition based on the spaces.

  • Modules/webxr/WebXRInputSource.cpp: Complete WebXRInputSource implementation.

(WebCore::WebXRInputSpace::create):
(WebCore::WebXRInputSpace::WebXRInputSpace):
(WebCore::WebXRInputSpace::nativeOrigin const):
(WebCore::WebXRInputSource::create):
(WebCore::WebXRInputSource::WebXRInputSource):
(WebCore::WebXRInputSource::update):
(WebCore::WebXRInputSource::requiresInputSourceChange):
(WebCore::WebXRInputSource::disconnect):
(WebCore::WebXRInputSource::pollEvents):
(WebCore::WebXRInputSource::createEvent):

  • Modules/webxr/WebXRInputSource.h:

(WebCore::WebXRInputSource::handle const):
(WebCore::WebXRInputSource::handedness const):
(WebCore::WebXRInputSource::targetRayMode const):
(WebCore::WebXRInputSource::targetRaySpace const):
(WebCore::WebXRInputSource::gripSpace const):
(WebCore::WebXRInputSource::profiles const):
(WebCore::WebXRInputSource::gamepad const):

  • Modules/webxr/WebXRInputSource.idl: Add gamepad attribute.
  • Modules/webxr/WebXRInputSourceArray.cpp: Implement input source updates and event dispatching.

(WebCore::WebXRInputSourceArray::create):
(WebCore::WebXRInputSourceArray::WebXRInputSourceArray):
(WebCore::WebXRInputSourceArray::length const):
(WebCore::WebXRInputSourceArray::item const):
(WebCore::WebXRInputSourceArray::clear):
(WebCore::WebXRInputSourceArray::update):
(WebCore::WebXRInputSourceArray::handleRemovedInputSources):
(WebCore::WebXRInputSourceArray::handleAddedOrUpdatedInputSources):

  • Modules/webxr/WebXRInputSourceArray.h:
  • Modules/webxr/WebXRSession.cpp:

(WebCore::WebXRSession::WebXRSession): Set tracking delegate before initializing tracking and rendering.
(WebCore::WebXRSession::isPositionEmulated const): Add helper method.
(WebCore::WebXRSession::shutdown): Clear WebXRInputSourceArray instance.
(WebCore::WebXRSession::sessionDidInitializeInputSources): Dispatch initial InputSource discovery event.
(WebCore::WebXRSession::onFrame): Update WebXRInputSourceArray instance.

  • Modules/webxr/WebXRSession.h:
  • Modules/webxr/WebXRSpace.cpp: Add virtual class isPositionEmulated to be used in WebXRFrame.

(WebCore::WebXRSpace::isPositionEmulated const):

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

(WebCore::WebXRSystem::requestSession): update FIXME comment.

  • Modules/webxr/XRHandedness.h: Reuse PlatformXR enum.
  • Modules/webxr/XRInputSourceEvent.cpp:

(WebCore::XRInputSourceEvent::XRInputSourceEvent):
(WebCore::XRInputSourceEvent::setFrameActive):

  • Modules/webxr/XRInputSourceEvent.h:
  • Modules/webxr/XRInputSourcesChangeEvent.h:
  • Modules/webxr/XRTargetRayMode.h: Reuse PlatformXR enum.
  • platform/gamepad/GamepadConstants.cpp:

(WebCore::xrStandardGamepadMappingString): Add xr-standard gamepad mapping name.

  • platform/gamepad/GamepadConstants.h:
  • platform/xr/PlatformXR.h: Add Input Source frame data.
  • testing/WebFakeXRDevice.cpp: Implement required changes to run and pass WebXR Input Source tests.

(WebCore::SimulatedXRDevice::initializeTrackingAndRendering):
(WebCore::SimulatedXRDevice::frameTimerFired):
(WebCore::WebFakeXRDevice::simulateResetPose):
(WebCore::WebFakeXRDevice::simulateInputSourceConnection):

  • testing/WebFakeXRDevice.h:
  • testing/WebFakeXRInputController.cpp:

(WebCore::WebFakeXRInputController::create):
(WebCore::WebFakeXRInputController::WebFakeXRInputController):
(WebCore::WebFakeXRInputController::setGripOrigin):
(WebCore::WebFakeXRInputController::setPointerOrigin):
(WebCore::WebFakeXRInputController::disconnect):
(WebCore::WebFakeXRInputController::reconnect):
(WebCore::WebFakeXRInputController::setSupportedButtons):
(WebCore::WebFakeXRInputController::updateButtonState):
(WebCore::WebFakeXRInputController::getFrameData):
(WebCore::WebFakeXRInputController::getButtonOrPlaceholder const):

  • testing/WebFakeXRInputController.h:

LayoutTests:

Update WebXR Input Source test expectations.

  • platform/wpe/TestExpectations:
5:18 AM Changeset in webkit [276432] by Carlos Garcia Campos
  • 9 edits in trunk

[SOUP] Add support for preconnect
https://bugs.webkit.org/show_bug.cgi?id=177934

Reviewed by Sergio Villar Senin.

.:

Enable server preconnect support when building with libsoup3.

  • Source/cmake/OptionsGTK.cmake:
  • Source/cmake/OptionsWPE.cmake:

Source/WebKit:

Use new libsoup API to implement preconnect support.

  • NetworkProcess/NetworkDataTask.cpp:

(WebKit::NetworkDataTask::create):

  • NetworkProcess/soup/NetworkDataTaskSoup.cpp:

(WebKit::NetworkDataTaskSoup::NetworkDataTaskSoup):
(WebKit::NetworkDataTaskSoup::createRequest):
(WebKit::NetworkDataTaskSoup::resume):
(WebKit::NetworkDataTaskSoup::preconnectCallback):

  • NetworkProcess/soup/NetworkDataTaskSoup.h:

LayoutTests:

Remove expectations for tests that are now passing.

  • platform/glib/TestExpectations:
5:14 AM Changeset in webkit [276431] by Philippe Normand
  • 3 edits in trunk/Source/ThirdParty/ANGLE

Unreviewed, WPE build fix after r276390

Fix namespacing issues in nullptr_t invocations.

  • src/compiler/translator/tree_util/IntermRebuild.cpp:

(sh::TIntermRebuild::BaseResult::BaseResult):
(sh::PreResult::PreResult):
(sh::PostResult::PostResult):

  • src/compiler/translator/tree_util/IntermRebuild.h:
4:52 AM Changeset in webkit [276430] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebKit

[GTK] Build error: Couldn't find include 'Soup-2.4.gir'
https://bugs.webkit.org/show_bug.cgi?id=224926

Reviewed by Philippe Normand.

Use the right soup API version when generating the introspection.

  • PlatformGTK.cmake:
4:47 AM Changeset in webkit [276429] by Carlos Garcia Campos
  • 10 edits in trunk

[GTK][WPE] Bump libsoup3 version to 2.99.4
https://bugs.webkit.org/show_bug.cgi?id=224925

Reviewed by Philippe Normand.

.:

  • Source/cmake/OptionsGTK.cmake:
  • Source/cmake/OptionsWPE.cmake:

Source/WebCore:

Update to use the new API.

  • platform/network/soup/ResourceResponseSoup.cpp:

(WebCore::ResourceResponse::ResourceResponse):

  • platform/network/soup/SoupVersioning.h:

(soup_message_get_tls_peer_certificate):
(soup_message_get_tls_peer_certificate_errors):
(soup_message_get_tls_certificate): Deleted.
(soup_message_get_tls_certificate_errors): Deleted.

Tools/buildstream:

  • elements/sdk/libsoup3.bst:

LayoutTests:

Remove expectations for tests that should be passing now.

  • platform/glib/TestExpectations:
1:29 AM Changeset in webkit [276428] by mmaxfield@apple.com
  • 9 edits
    1 add in trunk

[iOS] Web processes recreated after crashing are not created with the right contentSizeCategory
https://bugs.webkit.org/show_bug.cgi?id=224916

Reviewed by Tim Horton.

Source/WebCore:

The constructor of WKWebView sets the contentSizeCategory for the first page.
But if the web process crashes, the new one won't have it set.

This patch simply adds the contentSizeCategory to the WebProcessCreationParameters.

Tests: TextStyleFontSize.Startup

TextStyleFontSize.AfterCrash

  • rendering/RenderThemeCocoa.h:

Source/WebKit:

  • Shared/WebProcessCreationParameters.cpp:

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

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

(WebKit::WebProcessPool::platformInitializeWebProcess):

  • WebProcess/cocoa/WebProcessCocoa.mm:

(WebKit::WebProcess::platformInitializeWebProcess):

Tools:

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/ios/TextStyleFontSize.mm: Added.

(-[TextStyleFontSizeWebView _contentSizeCategory]):
(TEST):

1:27 AM Changeset in webkit [276427] by ysuzuki@apple.com
  • 18 edits
    2 adds in trunk

[JSC] DFG / FTL should inline switch_string
https://bugs.webkit.org/show_bug.cgi?id=224578

Reviewed by Mark Lam.

JSTests:

  • microbenchmarks/switch-inlining.js: Added.

(inner):
(outer):

  • stress/switch-inlining-nested.js: Added.

(shouldBe):
(inner):
(outer):

Source/JavaScriptCore:

Because of r275840 change, we no longer copy StringJumpTable when compiling DFG / FTL code.
Instead we are using a pointer to UnlinkedStringTable stored in UnlinkedCodeBlock.
This allows DFG / FTL to inline CodeBlock which includes op_switch_string. We were previously not able
to do that because we cannot copy StringImpl in DFG / FTL concurrent compiler thread.

  1. We handle StringJumpTable / UnlinkedStringJumpTable in the same way as SimpleJumpTable / UnlinkedSimpleJumpTable.
  2. We put m_ctiDefault of StringJumpTable in the last element of m_ctiOffsets vector of StringJumpTable to make sizeof(StringJumpTable) small.
  3. We use m_indexInTable instead of m_branchOffset in FTL switch generation to make switch table dense.

The microbenchmark shows 30% improvement because of unlocking inlining feature.

ToT Patched

switch-inlining 27.1238+-0.2708 20.2630+-0.1477 definitely 1.3386x faster

<geometric> 27.1238+-0.2708 20.2630+-0.1477 definitely 1.3386x faster

  • bytecode/JumpTable.h:

(JSC::StringJumpTable::ensureCTITable):
(JSC::StringJumpTable::ctiForValue const):
(JSC::StringJumpTable::ctiDefault const):
(JSC::StringJumpTable::isEmpty const):

  • bytecode/UnlinkedCodeBlock.h:

(JSC::UnlinkedStringJumpTable::indexForValue const):

  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::parseBlock):
(JSC::DFG::ByteCodeParser::InlineStackEntry::InlineStackEntry):

  • dfg/DFGCapabilities.cpp:

(JSC::DFG::capabilityLevel):

  • dfg/DFGGraph.h:
  • dfg/DFGJITCompiler.cpp:

(JSC::DFG::JITCompiler::link):

  • dfg/DFGOperations.cpp:

(JSC::DFG::JSC_DEFINE_JIT_OPERATION):

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

(JSC::DFG::SpeculativeJIT::emitSwitchStringOnString):

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::switchStringSlow):

  • ftl/FTLOperations.cpp:

(JSC::FTL::JSC_DEFINE_JIT_OPERATION):

  • ftl/FTLOperations.h:
  • jit/JIT.cpp:

(JSC::JIT::link):

  • jit/JITOpcodes.cpp:

(JSC::JIT::emit_op_switch_string):

  • jit/JITOpcodes32_64.cpp:

(JSC::JIT::emit_op_switch_string):

  • jit/JITOperations.cpp:

(JSC::JSC_DEFINE_JIT_OPERATION):

1:25 AM WebKitGTK/2.32.x edited by Adrian Perez de Castro
(diff)
12:50 AM Changeset in webkit [276426] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebCore

REGRESSION(r275790) [GTK][WPE] Scrolling rendering fails after the second page
https://bugs.webkit.org/show_bug.cgi?id=224824

Patch by Alejandro G. Castro <alex@igalia.com> on 2021-04-22
Reviewed by Simon Fraser.

We are making the implementation more similar to the Apple
scrolling coordinator. Now we reimplement willStartRenderingUpdate
to be able to synchronize the state there. That way we can avoid
the timer and just schedule a rendering update when we want to
commit the tree state.

Test: Fixes the timeout of the overflow-scrollable-after-back.html,
added in the regression.

  • page/scrolling/nicosia/ScrollingCoordinatorNicosia.cpp:

(WebCore::ScrollingCoordinatorNicosia::ScrollingCoordinatorNicosia):
(WebCore::ScrollingCoordinatorNicosia::pageDestroyed):
(WebCore::ScrollingCoordinatorNicosia::commitTreeStateIfNeeded):
(WebCore::ScrollingCoordinatorNicosia::scheduleTreeStateCommit):
(WebCore::ScrollingCoordinatorNicosia::willStartRenderingUpdate):
(WebCore::ScrollingCoordinatorNicosia::commitTreeState): Deleted.

  • page/scrolling/nicosia/ScrollingCoordinatorNicosia.h:
12:40 AM Changeset in webkit [276425] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

GraphicsContextGLOpenGLCocoa should check that ANGLE is loaded in WK1 releaseCurrentContext
https://bugs.webkit.org/show_bug.cgi?id=224532
<rdar://problem/76632149>

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

Avoid crashing in case WK1 is used but ANGLE library is not present.
There are some cases where ANGLE could be omitted for size savings.

  • platform/graphics/cocoa/GraphicsContextGLOpenGLCocoa.mm:

(WebCore::GraphicsContextGLOpenGL::releaseCurrentContext):

Note: See TracTimeline for information about the timeline view.