Timeline
Apr 28, 2021:
- 8:55 PM Changeset in webkit [276748] by
-
- 2 edits in trunk/Source/WebCore
Use a WeakHashSet for Document::m_mediaElements
https://bugs.webkit.org/show_bug.cgi?id=225082
Unreviewed. Address the review comments by Chris & Darin.
- dom/Document.cpp:
(WebCore::Document::forEachMediaElement):
- 6:53 PM Changeset in webkit [276747] by
-
- 8 edits in trunk/Source/WebCore
Crash under WebCore::AudioNodeOutput::pull(WebCore::AudioBus*, unsigned long)
https://bugs.webkit.org/show_bug.cgi?id=225174
<rdar://77270701>
Unreviewed, revert r274767 as it introduced this crash.
- Modules/webaudio/AudioNodeInput.cpp:
(WebCore::AudioNodeInput::connect):
(WebCore::AudioNodeInput::disconnect):
(WebCore::AudioNodeInput::disable):
(WebCore::AudioNodeInput::enable):
(WebCore::AudioNodeInput::bus):
(WebCore::AudioNodeInput::sumAllConnections):
(WebCore::AudioNodeInput::pull):
- Modules/webaudio/AudioNodeInput.h:
- Modules/webaudio/AudioNodeOutput.cpp:
(WebCore::AudioNodeOutput::disable):
(WebCore::AudioNodeOutput::enable):
- Modules/webaudio/AudioParam.cpp:
(WebCore::AudioParam::calculateFinalValues):
- Modules/webaudio/AudioSummingJunction.cpp:
(WebCore::AudioSummingJunction::addOutput):
(WebCore::AudioSummingJunction::removeOutput):
(WebCore::AudioSummingJunction::updateRenderingState):
(WebCore::AudioSummingJunction::maximumNumberOfChannels const):
- Modules/webaudio/AudioSummingJunction.h:
(WebCore::AudioSummingJunction::renderingOutput):
(WebCore::AudioSummingJunction::renderingOutput const):
(WebCore::AudioSummingJunction::isConnected const):
(WebCore::AudioSummingJunction::numberOfConnections const):
- Modules/webaudio/WebKitAudioPannerNode.cpp:
(WebCore::WebKitAudioPannerNode::notifyAudioSourcesConnectedToNode):
- 6:36 PM Changeset in webkit [276746] by
-
- 6 edits2 adds in trunk
[iOS] Coalesce adjacent selection geometries when rendering individual selection quads
https://bugs.webkit.org/show_bug.cgi?id=225054
Reviewed by Tim Horton.
Source/WebCore:
Add a heuristic to coalesce adjacent selection geometries when
SelectionRenderingBehavior::UseIndividualQuads
is active. Currently, we pass them directly through to the list of coalesced geometries inside
RenderObject::collectSelectionGeometries, but this can lead to almost perfectly adjacent selection quads
showing a narrow gap in between their selection views.
Instead, we can detect this case where neighboring quads can be united into a single quad without significantly
changing the geometry. Rather than append the new selection geometry in this case, we simply adjust the last
selection geometry's quad so that it encompasses the new selection geometry as well, by extending the top right
and bottom right extent points of the last selection quad to the new selection quad's extent points.
See below for more details.
Test: fast/images/image-extraction/ios/coalesce-selection-rects-in-image-overlay.html
- html/HTMLElement.h:
WEBCORE_EXPORTa couple of helper methods. - rendering/RenderObject.cpp:
(WebCore::RenderObject::collectSelectionGeometriesInternal):
Avoid sorting selection geometries by bounding rect
logicalLeftin the case where we're not coalescing
bounding rects (and also update the preceding comment accordingly).
(WebCore::coalesceSelectionGeometryWithAdjacentQuadsIfPossible):
Add a new helper to unite neighboring quads if: (1) the top right and bottom right of the current quad are very
close to the top left and bottom left of the next quad (respectively), and (2) the angle of rotation of the
bounding rect of the current quad is very close to that of the next quad.
(WebCore::RenderObject::collectSelectionGeometries):
Use the above helper method to either coalesce or append selection geometries to the final vector of coalesced
geometries.
Source/WebKit:
Make some further minor adjustments to selection behavior in image overlays on iOS. In particular, when using
selection handles to modify the selected range, shift the start and end of the selected range so that they're at
the beginning and end of text runs, respectively.
- WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::insideImageOverlay):
(WebKit::expandForImageOverlay):
(WebKit::rangeForPointInRootViewCoordinates):
LayoutTests:
Add a new layout test to verify that adjacent selection rects rotated by the same amount can be coalesced.
- fast/images/image-extraction/ios/coalesce-selection-rects-in-image-overlay-expected.txt: Added.
- fast/images/image-extraction/ios/coalesce-selection-rects-in-image-overlay.html: Added.
- 6:00 PM Changeset in webkit [276745] by
-
- 3 edits2 adds in trunk
[aspect-ratio] Treat border/padding correctly for box-sizing: border-box
https://bugs.webkit.org/show_bug.cgi?id=225015
Patch by Rob Buis <rbuis@igalia.com> on 2021-04-28
Reviewed by Darin Adler.
LayoutTests/imported/w3c:
Import WPT test for this.
- web-platform-tests/css/css-sizing/aspect-ratio/block-aspect-ratio-035-expected.xht: Added.
- web-platform-tests/css/css-sizing/aspect-ratio/block-aspect-ratio-035.html: Added.
Source/WebCore:
When computing logical height in aspect-ratio case, to compute the automatic
minimum size [1] for min-height: auto, the padding was always subtracted,
however it should only be subtracted in the box-sizing: content-box case.
Test: imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio/block-aspect-ratio-035.html
[1] https://www.w3.org/TR/css-sizing-4/#aspect-ratio-minimum
- rendering/RenderBox.cpp:
(WebCore::RenderBox::computeLogicalHeight const):
- 5:51 PM Changeset in webkit [276744] by
-
- 27 edits1 add in trunk
experiment with averaging sampling colors across the top of the page as the scroll area background
https://bugs.webkit.org/show_bug.cgi?id=224987
<rdar://problem/76251889>
Reviewed by Darin Adler.
Source/WebCore:
Tests: SampledPageTopColor.ZeroMaxDifference
SampledPageTopColor.NegativeMaxDifference
SampledPageTopColor.SolidColor
SampledPageTopColor.DifferentColorsWithoutOutlierBelowMaxDifference
SampledPageTopColor.DifferentColorsWithLeftOutlierAboveMaxDifference
SampledPageTopColor.DifferentColorsWithMiddleOutlierAboveMaxDifference
SampledPageTopColor.DifferentColorsWithRightOutlierAboveMaxDifference
SampledPageTopColor.DifferentColorsIndividuallyAboveMaxDifference
SampledPageTopColor.DifferentColorsCumulativelyAboveMaxDifference
SampledPageTopColor.DisplayP3
SampledPageTopColor.ExperimentalUseSampledPageTopColorForScrollAreaBackgroundColor
- dom/Document.h:
(WebCore::Document::sampledPageTopColor const): Added.
- dom/Document.cpp:
(WebCore::Document::enqueuePaintTimingEntryIfNeeded):
(WebCore::colorDifference): Added.
(WebCore::averageColor): Added.
(WebCore::Document::determineSampledPageTopColor): Added.
Wait until the first contentful paint before sampling. Don't sample if that location would
fall into a 3rd-party<iframe>. Currently use 5 snapshots across the top of the page,
allowing for one of either the first or last snapshot to be an outlier, which is not
included in the average of the other snapshots that's used as the final color value. If the
Lab color difference between any two snapshots (unless it's the first or last snapshot as
described above) or across all the (non-outlier) snapshots is too large, bail. Only enabled
if theSampledPageTopColorMaxDifferencesetting is greater than 0.
- page/Page.h:
- page/Page.cpp:
(WebCore::Page::sampledPageTopColor const): Added.
- page/ChromeClient.h:
(WebCore::ChromeClient::didSamplePageTopColor const): Added.
Pass along thesampledPageTopColorto the UIProcess after it's determined or if the above
logic bails (so that theWKWebViewcan adjust_sampledPageTopColortonil).
- rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::rootBackgroundColorOrTransparencyChanged):
Use thesampledPageTopColorif theUseSampledPageTopColorForScrollAreaBackgroundColor
internal preference is enabled instead of the CSSbackground-colorof the<html>/<body>.
Source/WebKit:
- WebProcess/WebCoreSupport/WebChromeClient.h:
- WebProcess/WebCoreSupport/WebChromeClient.cpp:
(WebKit::WebChromeClient::didSamplePageTopColor const): Added.
- WebProcess/WebPage/WebPage.h:
- WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::didSamplePageTopColor): Added.
Pass along thesampledPageTopColorto the UIProcess.
- UIProcess/WebPageProxy.messages.in:
- UIProcess/WebPageProxy.h:
(WebKit::WebPageProxy::sampledPageTopColor): Added.
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::scrollAreaBackgroundColor const):
(WebKit::WebPageProxy::didSamplePageTopColor): Added.
Use thesampledPageTopColorif theUseSampledPageTopColorForScrollAreaBackgroundColor
internal preference is enabled instead of the CSSbackground-colorof the<html>/<body>.
- UIProcess/PageClient.h:
(WebKit::PageClient::sampledPageTopColorWillChange): Added.
(WebKit::PageClient::sampledPageTopColorDidChange): Added.
- UIProcess/Cocoa/PageClientImplCocoa.h:
- UIProcess/Cocoa/PageClientImplCocoa.mm:
(WebKit::PageClientImplCocoa::sampledPageTopColorWillChange): Added.
(WebKit::PageClientImplCocoa::sampledPageTopColorDidChange): Added.
Add ObjC KVO support for-[WKWebView _sampledPageTopColor].
- UIProcess/API/Cocoa/WKWebViewPrivate.h:
- UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _setupPageConfiguration:]):
(-[WKWebView _sampledPageTopColor]): Added.
- UIProcess/API/Cocoa/WKWebViewConfigurationPrivate.h:
- UIProcess/API/Cocoa/WKWebViewConfiguration.mm:
(-[WKWebViewConfiguration init]):
(-[WKWebViewConfiguration copyWithZone:]):
(-[WKWebViewConfiguration _setSampledPageTopColorMaxDifference:]): Added.
(-[WKWebViewConfiguration _sampledPageTopColorMaxDifference]): Added.
Provide SPI to configure theSampledPageTopColorMaxDifferencepreference when
creating theWKWebView. Expose the result as_sampledPageTopColorSPI.
Source/WTF:
- Scripts/Preferences/WebPreferences.yaml:
Add a
SampledPageTopColorMaxDifferencesetting that controls both whether or not to sample
colors from the top of the page (only if value > 0) and the max Lab color difference allowed
across all samples.
- Scripts/Preferences/WebPreferencesInternal.yaml:
Add a
UseSampledPageTopColorForScrollAreaBackgroundColorinternal setting that controls
whether the sampled page top color can be used as the overscroll area background color.
Tools:
- TestWebKitAPI/Tests/WebKitCocoa/SampledPageTopColor.mm: Added.
(-[TestKVOWrapper initWithObservable:keyPath:callback:]):
(-[TestKVOWrapper dealloc]):
(-[TestKVOWrapper observeValueForKeyPath:ofObject:change:context:]):
(createWebViewWithSampledPageTopColorMaxDifference):
(waitForSampledPageTopColorToChangeForHTML):
(createHTMLGradientWithColorStops):
(TEST.SampledPageTopColor.ZeroMaxDifference):
(TEST.SampledPageTopColor.NegativeMaxDifference):
(TEST.SampledPageTopColor.SolidColor):
(TEST.SampledPageTopColor.DifferentColorsWithoutOutlierBelowMaxDifference):
(TEST.SampledPageTopColor.DifferentColorsWithLeftOutlierAboveMaxDifference):
(TEST.SampledPageTopColor.DifferentColorsWithMiddleOutlierAboveMaxDifference):
(TEST.SampledPageTopColor.DifferentColorsWithRightOutlierAboveMaxDifference):
(TEST.SampledPageTopColor.DifferentColorsIndividuallyAboveMaxDifference):
(TEST.SampledPageTopColor.DifferentColorsCumulativelyAboveMaxDifference):
(TEST.SampledPageTopColor.DisplayP3):
(TEST.SampledPageTopColor.ExperimentalUseSampledPageTopColorForScrollAreaBackgroundColor):
- TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
- 5:45 PM Changeset in webkit [276743] by
-
- 2 edits in trunk/LayoutTests
[ iOS wk2 EWS ] imported/w3c/web-platform-tests/workers/interfaces/DedicatedWorkerGlobalScope/postMessage/structured-clone-message.html is flaky crash
https://bugs.webkit.org/show_bug.cgi?id=225169
Unreviewed test gardening.
- platform/ios-simulator-wk2/TestExpectations: Updating expectations to Pass Crash due to a negative impact on EWS.
- 5:25 PM Changeset in webkit [276742] by
-
- 4 edits in trunk/Source
[iOS] Web content process occasionally crashes under VisibleSelection::adjustPositionForEnd
https://bugs.webkit.org/show_bug.cgi?id=225072
rdar://77159489
Reviewed by Darin Adler.
Source/WebCore:
Remove a helper method that was added in r276688, which we no longer need.
- dom/Position.h:
(WebCore::Position::isInTreeScope const): Deleted.
Source/WebKit:
The fix for this crash that I landed in r276688 was based on a misunderstanding that accessing
treeScope()
would trigger a null pointer deref ifisInTreeScope()isfalse. This is not the case, since thetreeScope
of aNodeis a separate notion from whether thatNodeis connected to said tree scope.
Since this crash is really due to dereferencing a null container node in the case where
selectionStartor
selectionEndare null, a better fix is to just check the nullity of the container node.
- WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::rangeForPointInRootViewCoordinates):
- 5:17 PM Changeset in webkit [276741] by
-
- 2 edits in trunk/Source/WTF
Disable App Bound Requests on macOS
https://bugs.webkit.org/show_bug.cgi?id=225155
<rdar://problem/77288787>
App-bound requests is causing potential performance issues on macOS.
We should disable it while we investigate further.
Reviewed by Brent Fulgham.
- wtf/PlatformEnableCocoa.h:
- 4:22 PM Changeset in webkit [276740] by
-
- 4 edits in trunk/Source
Suppress warnings for %{private}s format specifier
https://bugs.webkit.org/show_bug.cgi?id=225137
Reviewed by Alex Christensen.
Add PRIVATE_LOG_STRING macro which is defined depending on if
os_log() is used or rather old printf().
See also: https://bugs.webkit.org/show_bug.cgi?id=207478
Source/WebKit:
- NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp:
(WebKit::ResourceLoadStatisticsDatabaseStore::openITPDatabase):
(WebKit::ResourceLoadStatisticsDatabaseStore::enableForeignKeys):
(WebKit::ResourceLoadStatisticsDatabaseStore::currentTableAndIndexQueries):
(WebKit::ResourceLoadStatisticsDatabaseStore::columnsForTable):
(WebKit::ResourceLoadStatisticsDatabaseStore::addMissingColumnsToTable):
(WebKit::ResourceLoadStatisticsDatabaseStore::renameColumnInTable):
(WebKit::ResourceLoadStatisticsDatabaseStore::addMissingTablesIfNecessary):
(WebKit::ResourceLoadStatisticsDatabaseStore::isEmpty const):
(WebKit::ResourceLoadStatisticsDatabaseStore::insertObservedDomain):
(WebKit::ResourceLoadStatisticsDatabaseStore::relationshipExists const):
(WebKit::ResourceLoadStatisticsDatabaseStore::domainID const):
(WebKit::ResourceLoadStatisticsDatabaseStore::insertDomainRelationshipList):
(WebKit::ResourceLoadStatisticsDatabaseStore::populateFromMemoryStore):
(WebKit::ResourceLoadStatisticsDatabaseStore::mergeStatistic):
(WebKit::ResourceLoadStatisticsDatabaseStore::mergeStatistics):
(WebKit::ResourceLoadStatisticsDatabaseStore::incrementRecordsDeletedCountForDomains):
(WebKit::ResourceLoadStatisticsDatabaseStore::recursivelyFindNonPrevalentDomainsThatRedirectedToThisDomain):
(WebKit::ResourceLoadStatisticsDatabaseStore::markAsPrevalentIfHasRedirectedToPrevalent):
(WebKit::ResourceLoadStatisticsDatabaseStore::requestStorageAccess):
(WebKit::ResourceLoadStatisticsDatabaseStore::requestStorageAccessUnderOpener):
(WebKit::ResourceLoadStatisticsDatabaseStore::grandfatherDataForDomains):
(WebKit::ResourceLoadStatisticsDatabaseStore::ensurePrevalentResourcesForDebugMode):
(WebKit::ResourceLoadStatisticsDatabaseStore::clearTopFrameUniqueRedirectsToSinceSameSiteStrictEnforcement):
(WebKit::ResourceLoadStatisticsDatabaseStore::setUserInteraction):
(WebKit::ResourceLoadStatisticsDatabaseStore::clearUserInteraction):
(WebKit::ResourceLoadStatisticsDatabaseStore::hasHadUserInteraction):
(WebKit::ResourceLoadStatisticsDatabaseStore::setPrevalentResource):
(WebKit::ResourceLoadStatisticsDatabaseStore::setDomainsAsPrevalent):
(WebKit::ResourceLoadStatisticsDatabaseStore::predicateValueForDomain const):
(WebKit::ResourceLoadStatisticsDatabaseStore::clearPrevalentResource):
(WebKit::ResourceLoadStatisticsDatabaseStore::setGrandfathered):
(WebKit::ResourceLoadStatisticsDatabaseStore::setIsScheduledForAllButCookieDataRemoval):
(WebKit::ResourceLoadStatisticsDatabaseStore::getMostRecentlyUpdatedTimestamp const):
(WebKit::ResourceLoadStatisticsDatabaseStore::ensureResourceStatisticsForRegistrableDomain):
(WebKit::ResourceLoadStatisticsDatabaseStore::clearDatabaseContents):
(WebKit::ResourceLoadStatisticsDatabaseStore::removeDataForDomain):
(WebKit::ResourceLoadStatisticsDatabaseStore::cookieAccess):
(WebKit::ResourceLoadStatisticsDatabaseStore::clearGrandfathering):
(WebKit::ResourceLoadStatisticsDatabaseStore::pruneStatisticsIfNeeded):
(WebKit::ResourceLoadStatisticsDatabaseStore::updateLastSeen):
(WebKit::ResourceLoadStatisticsDatabaseStore::updateDataRecordsRemoved):
(WebKit::ResourceLoadStatisticsDatabaseStore::isCorrectSubStatisticsCount):
(WebKit::ResourceLoadStatisticsDatabaseStore::getDomainStringFromDomainID const):
(WebKit::ResourceLoadStatisticsDatabaseStore::appendSubStatisticList const):
(WebKit::ResourceLoadStatisticsDatabaseStore::resourceToString const):
(WebKit::ResourceLoadStatisticsDatabaseStore::domainIDExistsInDatabase):
(WebKit::ResourceLoadStatisticsDatabaseStore::updateOperatingDatesParameters):
(WebKit::ResourceLoadStatisticsDatabaseStore::includeTodayAsOperatingDateIfNecessary):
(WebKit::ResourceLoadStatisticsDatabaseStore::insertExpiredStatisticForTesting):
(WebKit::ResourceLoadStatisticsDatabaseStore::findPrivateClickMeasurement):
(WebKit::ResourceLoadStatisticsDatabaseStore::insertPrivateClickMeasurement):
(WebKit::ResourceLoadStatisticsDatabaseStore::markAllUnattributedPrivateClickMeasurementAsExpiredForTesting):
(WebKit::ResourceLoadStatisticsDatabaseStore::removeUnattributed):
(WebKit::ResourceLoadStatisticsDatabaseStore::allAttributedPrivateClickMeasurement):
(WebKit::ResourceLoadStatisticsDatabaseStore::clearPrivateClickMeasurement):
(WebKit::ResourceLoadStatisticsDatabaseStore::clearExpiredPrivateClickMeasurement):
(WebKit::ResourceLoadStatisticsDatabaseStore::privateClickMeasurementToString):
(WebKit::ResourceLoadStatisticsDatabaseStore::clearSentAttribution):
(WebKit::ResourceLoadStatisticsDatabaseStore::markAttributedPrivateClickMeasurementsAsExpiredForTesting):
Source/WTF:
- wtf/Assertions.h:
- 4:00 PM Changeset in webkit [276739] by
-
- 3 edits2 adds in trunk
Don't create custom scrollbars for fullscreen placeholders.
https://bugs.webkit.org/show_bug.cgi?id=225141
Source/WebCore:
<rdar://64800098>
Reviewed by Darin Adler.
We can end up calling RenderScrollbar::createCustomScrollbar with
element = nullptrfrom RenderLayerScrollableArea::createScrollbar,
when the renderer is a RenderFullscreenPlaceholder.
We don't need to bother with scrollbars for the placeholder, so check to
make sure we have a valid element before creating custom scollbars.
Test: fullscreen/full-screen-crash-custom-scrollbars.html
- rendering/RenderLayerScrollableArea.cpp:
(WebCore::RenderLayerScrollableArea::createScrollbar):
LayoutTests:
Reviewed by Darin Adler.
- fullscreen/full-screen-crash-custom-scrollbars-expected.txt: Added.
- fullscreen/full-screen-crash-custom-scrollbars.html: Added.
- 3:50 PM Changeset in webkit [276738] by
-
- 1 copy in tags/Safari-611.2.6
Tag Safari-611.2.6.
- 3:49 PM Changeset in webkit [276737] by
-
- 2 edits in trunk/Source/WebCore
Make sure we invalidate the iterator in StorageMap::clear()
https://bugs.webkit.org/show_bug.cgi?id=225164
Reviewed by Alex Christensen.
I recently introduced StorageMap::clear() but failed to call invalidateIterator()
like we do in other StorageMap functions that modify the internal HashMap. Since
we cleared the HashMap, we don't want to be keeping a HashMap iterator around.
Looking at the code, I do not think this can cause crashes because the
index >= length()check would fail in StorageMap::key(unsigned). That said, it
is best not to keep a bad iterator around.
- storage/StorageMap.cpp:
(WebCore::StorageMap::clear):
- 3:46 PM Changeset in webkit [276736] by
-
- 2 edits in trunk/LayoutTests
REGRESSION(r276689): [ iOS wk2 ] platform/ios/ios/storage/domstorage/5mb-quota.html is a constant text failure
https://bugs.webkit.org/show_bug.cgi?id=225160
<rdar://problem/77279334>
Reviewed by Jonathan Bedard.
Apply the same fix that was applied to storage/domstorage/quota.html in r276689. Use unicode characters
in the local storage strings so that the test still fails when it expects to, despite the new more
accurate string byte size calculation. This was using ASCII characters so it was not really reaching the
5MB quota.
- platform/ios/ios/storage/domstorage/5mb-quota.html:
- 3:31 PM Changeset in webkit [276735] by
-
- 2 edits in trunk/Tools
[webkitpy] Refactor SimulatorDevice
https://bugs.webkit.org/show_bug.cgi?id=225158
Reviewed by Stephanie Lewis.
- Scripts/webkitpy/xcode/simulated_device.py:
(SimulatedDeviceManager._get_device_identifier_for_type): Handle partially defined device types.
(SimulatedDevice.is_usable): Place Home Screen services into dictionary.
- 2:59 PM Changeset in webkit [276734] by
-
- 3 edits1 delete in trunk/Source/ThirdParty/ANGLE
Stop building libANGLE.a
https://bugs.webkit.org/show_bug.cgi?id=225162
<rdar://problem/57349384>
Patch by Alex Christensen <achristensen@webkit.org> on 2021-04-28
Reviewed by Alexey Proskuryakov.
Now that everyone's linking against the dylib, we don't need to build the static library any more.
- ANGLE.xcodeproj/project.pbxproj:
- Configurations/ANGLE-dynamic.xcconfig:
- src/empty.cpp: Removed.
- 2:54 PM Changeset in webkit [276733] by
-
- 9 edits in trunk
When IPC testing API is enabled, GPU process shouldn't kill Web Process
https://bugs.webkit.org/show_bug.cgi?id=225143
<rdar://70692277>
Reviewed by Chris Dumez.
Source/WebKit:
Set Connection::g_ignoreInvalidMessageForTesting on createGPUConnectionToWebProcess
when the IPC testing API is enabled.
Tests: IPCTestingAPI.CanSendSyncMessageToGPUProcess
IPCTestingAPI.CanSendAsyncMessageToGPUProcess
IPCTestingAPI.CanSendInvalidAsyncMessageToGPUProcessWithoutTermination
- GPUProcess/GPUConnectionToWebProcess.cpp:
(WebKit::GPUConnectionToWebProcess::didReceiveInvalidMessage): Exit early without
killing the Web process if IPC testing API is enabled.
- GPUProcess/GPUProcess.cpp:
(WebKit::GPUProcess::createGPUConnectionToWebProcess): Set the aforementioned flag
on the IPC connection.
- Shared/GPUProcessConnectionParameters.h:
(WebKit::GPUProcessConnectionParameters): Added ignoreInvalidMessageForTesting.
(WebKit::GPUProcessConnectionParameters::encode const):
(WebKit::GPUProcessConnectionParameters::decode):
- UIProcess/WebPageProxy.cpp:
(WebKit::m_limitsNavigationsToAppBoundDomains): Cleanup. Use a helper function.
- UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::getGPUProcessConnection): Set the value of
GPUProcessConnectionParameters::ignoreInvalidMessageForTesting based on the value
of WebProcessProxy::m_ignoreInvalidMessageForTesting.
- UIProcess/WebProcessProxy.h:
(WebKit::WebProcessProxy::ignoreInvalidMessageForTesting const): Added.
Tools:
Added tests for sending IPC messages to GPU process via IPC testing API.
- TestWebKitAPI/Tests/WebKitCocoa/IPCTestingAPI.mm:
(IPCTestingAPI.CanSendInvalidAsyncMessageToUIProcessWithoutTermination): Renamed from
CanSendInvalidAsyncMessageWithoutTermination.
(IPCTestingAPI.CanSendInvalidSyncMessageToUIProcessWithoutTermination): Renamed from
CanSendInvalidMessageWithoutTermination.
(IPCTestingAPI.CanSendSyncMessageToGPUProcess): Added.
(IPCTestingAPI.CanSendAsyncMessageToGPUProcess): Added.
(IPCTestingAPI.CanSendInvalidAsyncMessageToGPUProcessWithoutTermination): Added.
- 1:07 PM Changeset in webkit [276732] by
-
- 3 edits in trunk/Source/WebKit
Unreviewed, reverting r276658.
https://bugs.webkit.org/show_bug.cgi?id=225161
Introduced perf regression
Reverted changeset:
"Enforce IOKit filtering"
https://bugs.webkit.org/show_bug.cgi?id=223937
https://trac.webkit.org/changeset/276658
- 1:03 PM Changeset in webkit [276731] by
-
- 2 edits in trunk/LayoutTests
[ Win ] 4 http/tests/security/contentSecurityPolicy/ tests are failing
https://bugs.webkit.org/show_bug.cgi?id=225071
<rdar://problem/77172923>
Reviewed by Jonathan Bedard.
- http/tests/resources/redirect.py:
(add_cache_control):
(addCacheControl): Deleted.
- 12:59 PM Changeset in webkit [276730] by
-
- 2 edits in trunk/Source/WebKit
REGRESSION(r275267) Network process crashes in Data::adoptMap
https://bugs.webkit.org/show_bug.cgi?id=225159
<rdar://77066555>
Patch by Alex Christensen <achristensen@webkit.org> on 2021-04-28
Reviewed by Geoffrey Garen.
There was a missing check to see if mapping was successful.
- NetworkProcess/cache/NetworkCacheData.cpp:
(WebKit::NetworkCache::Data::mapToFile const):
- 12:35 PM Changeset in webkit [276729] by
-
- 8 edits2 adds in trunk
Fine-tune some more selection behaviors in image overlays
https://bugs.webkit.org/show_bug.cgi?id=225121
Reviewed by Tim Horton.
Source/WebCore:
Make some additional minor refinements to selection behaviors in image overlays.
Test: fast/images/image-extraction/mac/select-image-overlay-with-mouse-drag-2.html
DragAndDropTests.DragSelectedTextInImageOverlay
- html/HTMLElement.cpp:
(WebCore::HTMLElement::updateWithImageExtractionResult):
Unless
-webkit-user-select: none;is explicitly set, make each of the text containers under each line have
-webkit-user-select: all;, so that text selection snaps to the boundaries of each piece of text.
- page/DragController.cpp:
(WebCore::DragController::startDrag):
Drive-by fix: avoid dragging image overlay text out as rich text.
- page/EventHandler.cpp:
(WebCore::nodeToSelectOnMouseDownForNode):
Make an exception for image overlay text, such that we don't select text upon handling a "mousedown" event, even
though the text has-webkit-user-select: all;. Also, deployRefPtrin a few places while I'm here.
(WebCore::expandSelectionToRespectSelectOnMouseDown):
Drive-by fix: deploy
RefPtrin a few places.
Tools:
Add an API test to verify that selected text inside image overlays is dragged out as plain text only.
- TestWebKitAPI/Tests/WebKit/simple-image-overlay.html:
- TestWebKitAPI/Tests/WebKitCocoa/DragAndDropTests.mm:
(TEST):
LayoutTests:
Add a new layout test to verify that text selection expands to contain all text underneath selected text
containers.
- fast/images/image-extraction/mac/select-image-overlay-with-mouse-drag-2-expected.html: Added.
- fast/images/image-extraction/mac/select-image-overlay-with-mouse-drag-2.html: Added.
- 12:26 PM Changeset in webkit [276728] by
-
- 5 edits in trunk/LayoutTests/imported/w3c
[css-grid] Accurize expected result to 0.5 pixel for some contentSpaceAround tests in abspos
https://bugs.webkit.org/show_bug.cgi?id=225145
Patch by Ziran Sun <Ziran Sun> on 2021-04-28
Reviewed by Manuel Rego Casasnovas.
There is a 0.5 pixel difference on expected data width for some contentSpaceAround tests in grid
among platforms. This change is to sync the change in WPT and update expectation files.
- web-platform-tests/css/css-grid/abspos/grid-positioned-items-content-alignment-001-expected.txt:
- web-platform-tests/css/css-grid/abspos/grid-positioned-items-content-alignment-001.html:
- web-platform-tests/css/css-grid/abspos/grid-positioned-items-content-alignment-rtl-001-expected.txt:
- web-platform-tests/css/css-grid/abspos/grid-positioned-items-content-alignment-rtl-001.html:
- 12:00 PM Changeset in webkit [276727] by
-
- 8 edits in trunk
Add SPI to query whether a URL would be upgraded to HTTPS
https://bugs.webkit.org/show_bug.cgi?id=225154
<rdar://77269904>
Reviewed by Geoff Garen.
Source/WebCore:
Covered by API tests.
- contentextensions/ContentExtensionsBackend.cpp:
(WebCore::ContentExtensions::ContentExtensionsBackend::shouldBeMadeSecure):
- contentextensions/ContentExtensionsBackend.h:
Source/WebKit:
- UIProcess/API/Cocoa/WKWebView.mm:
(+[WKWebView _shouldUpgradeToHTTPS:]):
- UIProcess/API/Cocoa/WKWebViewPrivate.h:
Tools:
- TestWebKitAPI/Tests/WebKitCocoa/WKWebViewConfiguration.mm:
(TEST):
- 11:53 AM Changeset in webkit [276726] by
-
- 2 edits in trunk/Source/WebCore
[clang] Remove implicit cast related warnings
https://bugs.webkit.org/show_bug.cgi?id=225139
Reviewed by Darin Adler.
Added explicit cast to suppress warning.
Behavior is not changed from implicit cast.
No new tests because there's no behavior change.
- layout/inlineformatting/InlineLine.cpp:
(WebCore::Layout::Line::Run::removeTrailingLetterSpacing):
- 11:15 AM Changeset in webkit [276725] by
-
- 1 copy in tags/Safari-607.3.13
Tag Safari-607.3.13.
- 11:12 AM Changeset in webkit [276724] by
-
- 8 edits2 adds in branches/safari-607-branch/Source/WebCore
Apply patch. rdar://problem/77237713
- 11:07 AM Changeset in webkit [276723] by
-
- 7 edits in branches/safari-607-branch/Source
Versioning.
WebKit-7607.3.13
- 10:56 AM Changeset in webkit [276722] by
-
- 2 edits in trunk/Tools
[configure-xcode-for-embedded-development] Support Xcode 12.5
https://bugs.webkit.org/show_bug.cgi?id=225127
Reviewed by Stephanie Lewis.
- Scripts/configure-xcode-for-embedded-development: Add definition of
com.apple.package-type.mach-o-executable and com.apple.product-type.tool instead
of copying from the MacOS SDK.
- 10:27 AM Changeset in webkit [276721] by
-
- 7 edits in trunk/Source/WebKit
[iOS] [GPU] The UI process should issue mach sandbox extensions to 'iconservices'
https://bugs.webkit.org/show_bug.cgi?id=225111
<rdar://problem/68366888>
Reviewed by Per Arne Vollan.
In Bug 205443 we did work to extend access to non-web-browsing services to the WebContent process only when
needed. This was lost in the transition to the GPU Process, and should be added back.
This change does the following:
- Adds sandbox extension handles for the iconservices (and related) services to the GPU process creation parameters.
- Updates the GPUProcessProxy to extend iconservices when waranted, and add them to the creation parameter structure.
- Updates the GPUProcess to consume the extensions (when granted).
- Makes a GPU process-specific version of the 'nonBrowserServices' static function for use by GPUProcessProxy. This is needed because fewer services are needed in the GPU process than in the WebContent process.
- Removes unused telemetry from the WebContent process sandbox.
- Switches the GPU process sandbox to deny iconservices (and related) by default, and to consume the extensions instead.
Tested by exisiting TestWebKitAPI tests.
- GPUProcess/GPUProcess.cpp:
(WebKit::GPUProcess::initializeGPUProcess):
- GPUProcess/GPUProcessCreationParameters.cpp:
(WebKit::GPUProcessCreationParameters::encode const):
(WebKit::GPUProcessCreationParameters::decode):
- GPUProcess/GPUProcessCreationParameters.h:
- Resources/SandboxProfiles/ios/com.apple.WebKit.GPU.sb:
- Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
- UIProcess/GPU/GPUProcessProxy.cpp:
(WebKit::GPUProcessProxy::GPUProcessProxy):
- 10:19 AM Changeset in webkit [276720] by
-
- 6 edits in trunk
Remove support for NPAPI plugins in WebView
https://bugs.webkit.org/show_bug.cgi?id=224449
Patch by Alex Christensen <achristensen@webkit.org> on 2021-04-28
Reviewed by Geoffrey Garen.
Source/WebKitLegacy/mac:
In r275912 I turned off all plugin support in WebView after looking into use of NP_Initialize, the entry point for NPAPI plugins.
That was too aggressive, as we found some use of the older WebKit plugin entry point, plugInViewWithArguments, and reverted in r276652.
This cuts out only support for NPAPI plugins for now.
- WebCoreSupport/WebFrameLoaderClient.mm:
(WebFrameLoaderClient::createPlugin):
Source/WTF:
- Scripts/Preferences/WebPreferencesInternal.yaml:
Tools:
- DumpRenderTree/TestOptions.cpp:
(WTR::TestOptions::defaults):
- 10:13 AM Changeset in webkit [276719] by
-
- 46 edits1 add in trunk
Fix exception assertions in light of the TerminationException.
https://bugs.webkit.org/show_bug.cgi?id=225128
rdar://76694909
Reviewed by Robin Morisset.
JSTests:
- stress/suppress-TerminationException-in-JSFunction-prototypeForConstruction.js: Added.
Source/JavaScriptCore:
Some pre-existing functions assertNoException() or releaseAssertNoException().
These assertion may not be valid anymore in light of the TerminationException, and
require some fix up:
- If it makes sense to convert the assertion into an exception check, then do so.
For example, see objectPrototypeToString(), slow_path_create_this().
- If the assertion is at the end of a function just before it returns, or if the remaining code in the function will not be affected by the pending exception, then we can replace the assertion as follows:
assertNoException() => assertNoExceptionExceptTermination()
releaseAssertNoException() => releaseAssertNoExceptionExceptTermination()
For example, see objectPrototypeHasOwnProperty(), JSObject::getOwnNonIndexPropertyNames().
- If the assertion is in a function where perf is not absolutely critical, and the function isn't calling any other functions that will re-enter the VM or potentially get stuck in an infinite loop, then we can use a DeferTermination scope to defer termination.
For example, see Debugger::pauseIfNeeded(), SamplingProfiler::StackFrame::nameFromCallee().
- If the assertion is in an initializer function is only run once and adding exception checks would complicate the code more than it's worth (an engineering judgement), then use a DeferTermination scope.
For example, see ProgramExecutable::initializeGlobalProperties(), setupAdaptiveWatchpoint().
Some leaf (or near-leaf) functions that currently DECLARE_CATCH_SCOPE() may also
fall under this category.
For example, see JSFunction::prototypeForConstruction().
- bytecompiler/BytecodeGenerator.cpp:
(JSC::BytecodeGenerator::addBigIntConstant):
- debugger/Debugger.cpp:
(JSC::Debugger::pauseIfNeeded):
- dfg/DFGOperations.cpp:
(JSC::DFG::JSC_DEFINE_JIT_OPERATION):
- interpreter/Interpreter.cpp:
(JSC::notifyDebuggerOfUnwinding):
(JSC::Interpreter::executeProgram):
(JSC::Interpreter::debug):
- interpreter/ShadowChicken.cpp:
(JSC::ShadowChicken::functionsOnStack):
- jsc.cpp:
(runWithOptions):
- parser/ParserArena.cpp:
(JSC::IdentifierArena::makeBigIntDecimalIdentifier):
- runtime/AbstractModuleRecord.cpp:
(JSC::AbstractModuleRecord::finishCreation):
- runtime/CommonSlowPaths.cpp:
(JSC::JSC_DEFINE_COMMON_SLOW_PATH):
- runtime/ErrorInstance.cpp:
(JSC::ErrorInstance::sanitizedMessageString):
(JSC::ErrorInstance::sanitizedNameString):
- runtime/ExceptionScope.h:
(JSC::ExceptionScope::assertNoExceptionExceptTermination):
(JSC::ExceptionScope::releaseAssertNoExceptionExceptTermination):
- runtime/JSFunction.cpp:
(JSC::JSFunction::prototypeForConstruction):
- runtime/JSGenericTypedArrayViewPrototypeFunctions.h:
(JSC::genericTypedArrayViewProtoFuncIncludes):
(JSC::genericTypedArrayViewProtoFuncIndexOf):
(JSC::genericTypedArrayViewProtoFuncLastIndexOf):
(JSC::genericTypedArrayViewPrivateFuncSubarrayCreate):
- runtime/JSGlobalObject.cpp:
(JSC::setupAdaptiveWatchpoint):
(JSC::JSGlobalObject::init):
(JSC::JSGlobalObject::defineOwnProperty):
(JSC::JSGlobalObject::tryInstallSpeciesWatchpoint):
- runtime/JSModuleLoader.cpp:
(JSC::printableModuleKey):
- runtime/JSModuleNamespaceObject.cpp:
(JSC::JSModuleNamespaceObject::finishCreation):
- runtime/JSObject.cpp:
(JSC::JSObject::ordinaryToPrimitive const):
(JSC::JSObject::getOwnNonIndexPropertyNames):
- runtime/JSTemplateObjectDescriptor.cpp:
(JSC::JSTemplateObjectDescriptor::createTemplateObject):
- runtime/JSTypedArrayViewPrototype.cpp:
- runtime/ObjectPrototype.cpp:
(JSC::objectPrototypeHasOwnProperty):
(JSC::objectPrototypeToString):
- runtime/ProgramExecutable.cpp:
(JSC::ProgramExecutable::initializeGlobalProperties):
- runtime/SamplingProfiler.cpp:
(JSC::SamplingProfiler::StackFrame::nameFromCallee):
- tools/JSDollarVM.cpp:
(JSC::JSC_DEFINE_HOST_FUNCTION):
Source/WebCore:
A few changes plus rebasing bindings test results.
- Modules/plugins/QuickTimePluginReplacement.mm:
(WebCore::QuickTimePluginReplacement::installReplacement):
- bindings/js/JSDOMExceptionHandling.cpp:
(WebCore::propagateExceptionSlowPath):
(WebCore::throwNotSupportedError):
(WebCore::throwInvalidStateError):
(WebCore::throwSecurityError):
(WebCore::throwDOMSyntaxError):
(WebCore::throwDataCloneError):
- bindings/js/JSDOMGlobalObject.cpp:
(WebCore::JSC_DEFINE_HOST_FUNCTION):
- bindings/js/JSDOMGlobalObjectTask.cpp:
- bindings/js/JSDOMMapLike.cpp:
(WebCore::getBackingMap):
- bindings/js/JSDOMSetLike.cpp:
(WebCore::getBackingSet):
- bindings/js/JSMicrotaskCallback.h:
(WebCore::JSMicrotaskCallback::call):
- bindings/js/SerializedScriptValue.cpp:
(WebCore::CloneDeserializer::readTerminal):
- bindings/js/WritableStream.cpp:
(WebCore::WritableStreamInternal::callFunction):
(WebCore::WritableStream::lock):
- bindings/scripts/CodeGeneratorJS.pm:
(GeneratePut):
(GeneratePutByIndex):
(GenerateDefineOwnProperty):
- bindings/scripts/test/JS/JSTestNamedAndIndexedSetterNoIdentifier.cpp:
(WebCore::JSTestNamedAndIndexedSetterNoIdentifier::put):
(WebCore::JSTestNamedAndIndexedSetterNoIdentifier::putByIndex):
(WebCore::JSTestNamedAndIndexedSetterNoIdentifier::defineOwnProperty):
- bindings/scripts/test/JS/JSTestNamedAndIndexedSetterThrowingException.cpp:
(WebCore::JSTestNamedAndIndexedSetterThrowingException::put):
(WebCore::JSTestNamedAndIndexedSetterThrowingException::putByIndex):
(WebCore::JSTestNamedAndIndexedSetterThrowingException::defineOwnProperty):
- bindings/scripts/test/JS/JSTestNamedAndIndexedSetterWithIdentifier.cpp:
(WebCore::JSTestNamedAndIndexedSetterWithIdentifier::put):
(WebCore::JSTestNamedAndIndexedSetterWithIdentifier::putByIndex):
(WebCore::JSTestNamedAndIndexedSetterWithIdentifier::defineOwnProperty):
- bindings/scripts/test/JS/JSTestNamedSetterNoIdentifier.cpp:
(WebCore::JSTestNamedSetterNoIdentifier::put):
(WebCore::JSTestNamedSetterNoIdentifier::putByIndex):
(WebCore::JSTestNamedSetterNoIdentifier::defineOwnProperty):
- bindings/scripts/test/JS/JSTestNamedSetterThrowingException.cpp:
(WebCore::JSTestNamedSetterThrowingException::put):
(WebCore::JSTestNamedSetterThrowingException::putByIndex):
(WebCore::JSTestNamedSetterThrowingException::defineOwnProperty):
- bindings/scripts/test/JS/JSTestNamedSetterWithIdentifier.cpp:
(WebCore::JSTestNamedSetterWithIdentifier::put):
(WebCore::JSTestNamedSetterWithIdentifier::putByIndex):
(WebCore::JSTestNamedSetterWithIdentifier::defineOwnProperty):
- bindings/scripts/test/JS/JSTestNamedSetterWithIndexedGetter.cpp:
(WebCore::JSTestNamedSetterWithIndexedGetter::put):
(WebCore::JSTestNamedSetterWithIndexedGetter::putByIndex):
(WebCore::JSTestNamedSetterWithIndexedGetter::defineOwnProperty):
- bindings/scripts/test/JS/JSTestNamedSetterWithIndexedGetterAndSetter.cpp:
(WebCore::JSTestNamedSetterWithIndexedGetterAndSetter::put):
(WebCore::JSTestNamedSetterWithIndexedGetterAndSetter::putByIndex):
(WebCore::JSTestNamedSetterWithIndexedGetterAndSetter::defineOwnProperty):
- bindings/scripts/test/JS/JSTestNamedSetterWithLegacyUnforgeableProperties.cpp:
(WebCore::JSTestNamedSetterWithLegacyUnforgeableProperties::put):
(WebCore::JSTestNamedSetterWithLegacyUnforgeableProperties::putByIndex):
(WebCore::JSTestNamedSetterWithLegacyUnforgeableProperties::defineOwnProperty):
- html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::didAddUserAgentShadowRoot):
(WebCore::HTMLMediaElement::updateMediaControlsAfterPresentationModeChange):
(WebCore::HTMLMediaElement::getCurrentMediaControlsStatus):
- 9:54 AM Changeset in webkit [276718] by
-
- 8 edits in trunk/Source/WebCore
Remove redundant RenderObject::isInFlowRenderFragmentedFlow
https://bugs.webkit.org/show_bug.cgi?id=225152
Reviewed by Antti Koivisto.
Now that RenderObject::isOutOfFlowRenderFragmentedFlow() is gone (r276707), isInFlowRenderFragmentedFlow() is really just a isRenderFragmentedFlow() check.
- rendering/RenderBlock.cpp:
(WebCore::RenderBlock::selectionGaps):
(WebCore::isChildHitTestCandidate):
- rendering/RenderBlockFlow.cpp:
(WebCore::RenderBlockFlow::updateStylesForColumnChildren):
- rendering/RenderBox.cpp:
(WebCore::RenderBox::skipContainingBlockForPercentHeightCalculation const):
- rendering/RenderBox.h:
(WebCore::RenderBox::canHaveOutsideFragmentRange const):
- rendering/RenderLayer.cpp:
(WebCore::RenderLayer::shouldBeNormalFlowOnly const):
(WebCore::RenderLayer::updateLayerPositions):
(WebCore::RenderLayer::updatePagination):
(WebCore::RenderLayer::calculateClipRects const):
- rendering/RenderObject.h:
(WebCore::RenderObject::isRenderGrid const):
(WebCore::RenderObject::isInFlowRenderFragmentedFlow const): Deleted.
- rendering/updating/RenderTreeBuilderMultiColumn.cpp:
(WebCore::RenderTreeBuilder::MultiColumn::multiColumnDescendantInserted):
- 9:29 AM Changeset in webkit [276717] by
-
- 6 edits2 adds in trunk
Set audio transceiver nMax to 1
https://bugs.webkit.org/show_bug.cgi?id=225149
<rdar://75956639>
Reviewed by Alex Christensen.
Source/WebCore:
Implement step 8.4 of https://w3c.github.io/webrtc-pc/#dom-rtcpeerconnection-addtransceiver and set nMax for audio to 1.
Test: webrtc/audio-addTransceiver.html
- Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.cpp:
(WebCore::LibWebRTCMediaEndpoint::createTransceiverBackends):
(WebCore::LibWebRTCMediaEndpoint::addTransceiver):
- Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.h:
- Modules/mediastream/libwebrtc/LibWebRTCUtils.cpp:
(WebCore::fromRtpTransceiverInit):
- Modules/mediastream/libwebrtc/LibWebRTCUtils.h:
LayoutTests:
- webrtc/audio-addTransceiver-expected.txt: Added.
- webrtc/audio-addTransceiver.html: Added.
- 8:44 AM Changeset in webkit [276716] by
-
- 4 edits in trunk/LayoutTests
Use will-change: opacity instead of will-change: transform in fixed-inside-sticky-no-stacking-context-2.html
https://bugs.webkit.org/show_bug.cgi?id=224910
Patch by Tim Nguyen <ntim@apple.com> on 2021-04-28
Reviewed by Antti Koivisto.
will-change: transform creates a containing block per-spec, which would affect this test, so we use a property
that can create a stacking context, but not a containing block (will-change: opacity).
- platform/ios-simulator-wk2/TestExpectations:
- scrollingcoordinator/ios/fixed-inside-sticky-no-stacking-context-2.html:
- scrollingcoordinator/ios/fixed-inside-sticky-no-stacking-context-2-expected.html:
- 8:44 AM Changeset in webkit [276715] by
-
- 37 edits in trunk/Source
Drop ModernUnprefixedWebAudio & AudioWorklet experimental feature flags
https://bugs.webkit.org/show_bug.cgi?id=225130
Reviewed by Eric Carlson.
Drop ModernUnprefixedWebAudio & AudioWorklet experimental feature flags now that
these features have shipped. It also doesn't make sense to disable them given
that the prefixed WebAudio API is no longer exposed and there is no feature flag
to turn the legacy prefixed API back on.
Source/WebCore:
- Modules/webaudio/AnalyserNode.idl:
- Modules/webaudio/AudioBuffer.idl:
- Modules/webaudio/AudioBufferSourceNode.idl:
- Modules/webaudio/AudioContext.idl:
- Modules/webaudio/AudioParamMap.idl:
- Modules/webaudio/AudioProcessingEvent.idl:
- Modules/webaudio/AudioWorklet.idl:
- Modules/webaudio/AudioWorkletNode.idl:
- Modules/webaudio/AudioWorkletNodeOptions.idl:
- Modules/webaudio/BaseAudioContext.idl:
- Modules/webaudio/BiquadFilterNode.idl:
- Modules/webaudio/ChannelMergerNode.idl:
- Modules/webaudio/ChannelSplitterNode.idl:
- Modules/webaudio/ConstantSourceNode.idl:
- Modules/webaudio/ConstantSourceOptions.idl:
- Modules/webaudio/ConvolverNode.idl:
- Modules/webaudio/DelayNode.idl:
- Modules/webaudio/DynamicsCompressorNode.idl:
- Modules/webaudio/GainNode.idl:
- Modules/webaudio/IIRFilterNode.idl:
- Modules/webaudio/MediaElementAudioSourceNode.idl:
- Modules/webaudio/MediaStreamAudioDestinationNode.idl:
- Modules/webaudio/MediaStreamAudioSourceNode.idl:
- Modules/webaudio/OfflineAudioContext.idl:
- Modules/webaudio/OscillatorNode.idl:
- Modules/webaudio/PannerNode.idl:
- Modules/webaudio/PeriodicWave.idl:
- Modules/webaudio/StereoPannerNode.idl:
- Modules/webaudio/WaveShaperNode.idl:
Source/WebKitLegacy/mac:
- WebView/WebPreferenceKeysPrivate.h:
- WebView/WebPreferences.mm:
(-[WebPreferences modernUnprefixedWebAudioEnabled]): Deleted.
(-[WebPreferences setModernUnprefixedWebAudioEnabled:]): Deleted.
(-[WebPreferences audioWorkletEnabled]): Deleted.
(-[WebPreferences setAudioWorkletEnabled:]): Deleted.
- WebView/WebPreferencesPrivate.h:
Source/WTF:
- Scripts/Preferences/WebPreferencesExperimental.yaml:
- 8:36 AM Changeset in webkit [276714] by
-
- 4 edits1 add in trunk/Source/WebInspectorUI
Web Inspector: CSS Grid - measure usage of grid overlay options
https://bugs.webkit.org/show_bug.cgi?id=225060
<rdar://75843294>
Reviewed by BJ Burg.
Add telemetry instrumentation to track grid overlay configurations and time spent using them.
- UserInterface/Base/Main.js:
(WI.contentLoaded):
- UserInterface/Controllers/GridOverlayConfigurationDiagnosticEventRecorder.js: Added.
(WI.GridOverlayConfigurationDiagnosticEventRecorder):
(WI.GridOverlayConfigurationDiagnosticEventRecorder.get eventSamplingInterval):
(WI.GridOverlayConfigurationDiagnosticEventRecorder.prototype.setup):
(WI.GridOverlayConfigurationDiagnosticEventRecorder.prototype.teardown):
(WI.GridOverlayConfigurationDiagnosticEventRecorder.prototype._handleGridOverlayShown):
(WI.GridOverlayConfigurationDiagnosticEventRecorder.prototype._handleGridOverlayHidden):
(WI.GridOverlayConfigurationDiagnosticEventRecorder.prototype.handleEvent):
(WI.GridOverlayConfigurationDiagnosticEventRecorder.prototype._startEventSamplingTimer):
(WI.GridOverlayConfigurationDiagnosticEventRecorder.prototype._stopEventSamplingTimer):
(WI.GridOverlayConfigurationDiagnosticEventRecorder.prototype._sampleCurrentOverlayConfiguration):
(WI.GridOverlayConfigurationDiagnosticEventRecorder.prototype._didObserveUserInteraction):
(WI.GridOverlayConfigurationDiagnosticEventRecorder.prototype._handleWindowFocus):
(WI.GridOverlayConfigurationDiagnosticEventRecorder.prototype._handleWindowBlur):
(WI.GridOverlayConfigurationDiagnosticEventRecorder.prototype._handleWindowKeyDown):
(WI.GridOverlayConfigurationDiagnosticEventRecorder.prototype._handleWindowMouseDown):
- UserInterface/Controllers/OverlayManager.js:
(WI.OverlayManager.prototype.hasVisibleGridOverlays):
- UserInterface/Main.html:
- 8:29 AM WebKitGTK/2.32.x edited by
- (diff)
- 8:29 AM Changeset in webkit [276713] by
-
- 9 edits in releases/WebKitGTK/webkit-2.32/Source
Merge r275871 - [GStreamer] CaptureDevice monitor used from UIProcess
https://bugs.webkit.org/show_bug.cgi?id=222888
Patch by Philippe Normand <pnormand@igalia.com> on 2021-04-13
Source/WebCore:
Reviewed by Youenn Fablet .
Move the device observer infrastructure from the WebKit UserMediaProcessManager to the
RealtimeMediaSourceCenter.
- platform/mediastream/CaptureDevice.h:
(WebCore::haveDevicesChanged):
- platform/mediastream/RealtimeMediaSourceCenter.cpp:
(WebCore::RealtimeMediaSourceCenter::RealtimeMediaSourceCenter):
(WebCore::RealtimeMediaSourceCenter::Observer::~Observer):
(WebCore::RealtimeMediaSourceCenter::addDevicesChangedObserver):
(WebCore::RealtimeMediaSourceCenter::removeDevicesChangedObserver):
(WebCore::RealtimeMediaSourceCenter::captureDevicesChanged):
(WebCore::RealtimeMediaSourceCenter::triggerDevicesChangedObservers):
(WebCore::RealtimeMediaSourceCenter::setDevicesChangedObserver): Deleted.
- platform/mediastream/RealtimeMediaSourceCenter.h:
(WebCore::RealtimeMediaSourceCenter::Observer::devicesChanged):
Source/WebKit:
Reviewed by Youenn Fablet.
GStreamer ports aim to reduce usage of the GStreamer library in the UIProcess and thus
should not relay capture devicechange monitoring to the UIProcess. For the long term we plan
to migrate media processing to the GPUProcess but for now we have to maintain the media
pipelines in the WebProcess. Initializing GStreamer in multiple processes (including the
UIProcess) has a significant performance impact on embedded platforms, that's why we try to
avoid it as much as possible.
The device monitoring code from the UserMediaProcessManager was partly moved to the
RealtimeMediaSourceCenter so that it can be easily reused by GStreamer ports from the
UserMediaPermissionRequestManager.
- UIProcess/UserMediaProcessManager.cpp:
(WebKit::UserMediaProcessManager::UserMediaProcessManager):
(WebKit::UserMediaProcessManager::updateCaptureDevices):
(WebKit::UserMediaProcessManager::devicesChanged):
(WebKit::UserMediaProcessManager::beginMonitoringCaptureDevices):
- UIProcess/UserMediaProcessManager.h:
- WebProcess/MediaStream/UserMediaPermissionRequestManager.cpp:
(WebKit::UserMediaPermissionRequestManager::UserMediaPermissionRequestManager):
(WebKit::UserMediaPermissionRequestManager::updateCaptureDevices):
(WebKit::UserMediaPermissionRequestManager::DeviceObserver::devicesChanged):
(WebKit::UserMediaPermissionRequestManager::addDeviceChangeObserver):
- WebProcess/MediaStream/UserMediaPermissionRequestManager.h:
(WebKit::UserMediaPermissionRequestManager::DeviceObserver::DeviceObserver):
- 8:20 AM Changeset in webkit [276712] by
-
- 2 edits in trunk/Source/WebKit
Crash under GPUProcessProxy::getGPUProcessConnection()
https://bugs.webkit.org/show_bug.cgi?id=224017
<rdar://75146104>
Reviewed by Darin Adler.
The crash would happen when replyToPendingMessages() get called in the AuxiliaryProcessProxy
destructor and there would be a pending getGPUProcessConnection() IPC. The lambda in
WebProcessPool::getGPUProcessConnection() would check if a WeakPtr to the WebProcessPool is
valid before callingensureGPUProcess().getGPUProcessConnection(). However, at this point,
the WebProcessPool destructor is still running so the WeakPtr is still valid but
ensureGPUProcess().getGPUProcessConnection()will crash because the GPUProcessProxy
destructor has already run.
- UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::~WebProcessPool):
Drop code that was causing the GPUProcessProxy to reply to all its pending IPC messages whenenever
a WebProcessPool gets destroyed. This is incorrect since a GPUProcessProxy may be shared by several
WebProcessPool objects. Note that the AuxiliaryProcessProxy destructor already takes care of
calling replyToPendingMessages().
(WebKit::WebProcessPool::getGPUProcessConnection):
Protect the WebProcessPool is the lambda to prevent the case where this lambda gets called and the
WebProcessPool & GPUProcessProxy are in the middle of destruction.
- 7:33 AM WebKitGTK/2.32.x edited by
- (diff)
- 7:33 AM Changeset in webkit [276711] by
-
- 3 edits in releases/WebKitGTK/webkit-2.32/Source/WebCore
Merge r275596 - [GStreamer] Only seek to change the rate un updatePlaybackRate() when needed
https://bugs.webkit.org/show_bug.cgi?id=224235
Reviewed by Alicia Boya Garcia.
A seek is used by MediaPlayerPrivateGStreamer to update the playback
rate used in the pipeline. There's a special case when the rate is 0.0.
This actually means "paused" and, when set, the pipeline is changed to
PAUSED and no updatePlaybackRate() call is made because of an early
return (and therefore, no seek). When the rate is restored to a
non-zero value, the pipeline is set again to PLAYING, but a
call to updatePlaybackRate() is done, which implies an unconditional
seek.
It should be possible to do the seek in updatePlaybackRate() only if the
rate changed with respect to the original one, instead of always doing
it. This would avoid unneeded seeks, which are complex operations that
can trigger collateral issues such as the one addressed in
https://bugs.webkit.org/show_bug.cgi?id=223742.
- platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
(WebCore::MediaPlayerPrivateGStreamer::updatePlaybackRate): Only seek when the playback rate hasn't changed.
- platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h: Document m_lastPlaybackRate purpose.
- 7:31 AM Changeset in webkit [276710] by
-
- 2 edits in releases/WebKitGTK/webkit-2.32/Source/WebCore
Merge r275757 - Unreviewed, GStreamer Thunder decryptor build fix after r275599
- platform/graphics/gstreamer/eme/WebKitThunderDecryptorGStreamer.cpp:
(decrypt):
- 7:31 AM Changeset in webkit [276709] by
-
- 2 edits in releases/WebKitGTK/webkit-2.32/Source/WebCore
Merge r275654 - Unreviewed. Fixed build warning.
- platform/graphics/gstreamer/eme/WebKitCommonEncryptionDecryptorGStreamer.h: Avoid C-linkage warning.
- 7:31 AM WebKitGTK/2.32.x edited by
- (diff)
- 7:31 AM Changeset in webkit [276708] by
-
- 11 edits in releases/WebKitGTK/webkit-2.32/Source/WebCore
Merge r275599 - [EME][GStreamer] Abort decryptor operations immediately and without errors on flush
https://bugs.webkit.org/show_bug.cgi?id=223742
Reviewed by Xabier Rodriguez-Calvar.
A decryptor transformInPlace() operation can cause potentially long waits in
two situations:
- transformInPlace() is waiting to get the cdmProxy.
- The CDMProxy::decrypt() method is internally waiting for a specific key to become available.
If a seek operation is performed during those long waits, the main thread will
be blocked until the seek finishes the conditions those long waits are waiting
for will never be fulfilled (because the operations that complete them happen
in the main thread, which is blocked), the internal wait timeouts will trigger
and the decoder will trigger an unrecoverable error.
The solution for this is to break the waits by issuing the right notifications,
and to detect the flushes performed by the seek, distinguising this special
"abort" case from a regular error, so that the situation is no longer
unrecoverable.
This solution involves changes in several layers. A public
CDMProxy::abortWaitingForKey() method is exposed to allow the decryptor to
awake the inner waitFor() that checks for the key. The cdmProxy wait is also
awaken in case there's no cdmProxy available yet.
In order to distinguish if the awakenings are caused by real errors (no
cdmProxy, no key available) or by a flush operation (caused by the seek), the
decryptor first needs to keep track of the "flushing" state and allow other
objects to know about it. CDMProxy is one of those objects, but due to layer
limitations it can't directly ask about it to the decryptor (it can't "see"
it).
A new CDMProxyDecryptionClient interface is created, and the decryptor will
hold an implementation of it (as CDMProxyDecryptorClientImplementation).
CDMProxy can then know the client isAborting(), and the client will know the
decryptor and will ask about it.
As the pipeline, and thus the decryptor, can be destroyed at any moment,
the client holds a WeakPtr to the decryptor and will only ask if isAborting()
if the pointer is still alive.
- platform/encryptedmedia/CDMProxy.cpp:
(WebCore::CDMProxy::abortWaitingForKey const): Notify waiting threads.
(WebCore::CDMProxy::tryWaitForKeyHandle const): Take a client and ask it if it's aborting.
(WebCore::CDMProxy::getOrWaitForKeyHandle const): Pass the client along.
(WebCore::CDMProxy::getOrWaitForKeyValue const): Ditto.
- platform/encryptedmedia/CDMProxy.h: Declaration and usage of the CDMProxyDecryptionClient interface.
- platform/graphics/gstreamer/eme/CDMProxyClearKey.cpp:
(WebCore::CDMProxyClearKey::cencSetDecryptionKey): Pass the client along from the context.
- platform/graphics/gstreamer/eme/CDMProxyClearKey.h: Store client in the cencDecryptContext.
- platform/graphics/gstreamer/eme/CDMProxyThunder.cpp:
(WebCore::CDMProxyThunder::getDecryptionSession const): Pass the client along from the context.
(WebCore::CDMProxyThunder::decrypt): Abort operations aren't an error, so just trigger a warning if there's no session.
- platform/graphics/gstreamer/eme/CDMProxyThunder.h: Store client in DecryptionContext.
- platform/graphics/gstreamer/eme/WebKitClearKeyDecryptorGStreamer.cpp:
(decrypt): Ask for client to the superclass and store it in the context.
- platform/graphics/gstreamer/eme/WebKitCommonEncryptionDecryptorGStreamer.cpp:
(CDMProxyDecryptionClientImplementation::CDMProxyDecryptionClientImplementation): Implementation of the CDMProxyDecryptionClient interface.
(CDMProxyDecryptionClientImplementation::isAborting): Ask if the decryptor is flushing.
(constructed): Initialize the client.
(transformInPlace): Check the flush status after waiting for the CDMProxy and for the decryption performed by the subclasses. Release the lock when not needed.
(isCDMProxyAvailable): Renamed mutex to be more generic.
(attachCDMProxy): Ditto. Also renamed condition for the same reason.
(sinkEventHandler): Manage isFlushing status and awake waits for cdmProxy or for session depending on the lifecycle stage.
(webKitMediaCommonEncryptionDecryptIsFlushing): Expose isFlushing status.
(webKitMediaCommonEncryptionDecryptGetCDMProxyDecryptionClient): Return Weak reference to the client.
(changeState): Renamed condition.
(setContext): Renamed mutex.
- platform/graphics/gstreamer/eme/WebKitCommonEncryptionDecryptorGStreamer.h: New getters for isFlushing and the client.
- platform/graphics/gstreamer/eme/WebKitThunderDecryptorGStreamer.cpp:
(decrypt): Ask for client to the superclass and store it in the context.
- 7:21 AM WebKitGTK/2.32.x edited by
- (diff)
- 6:30 AM Changeset in webkit [276707] by
-
- 7 edits in trunk/Source/WebCore
Remove unused RenderObject::isOutOfFlowRenderFragmentedFlow
https://bugs.webkit.org/show_bug.cgi?id=225133
Reviewed by Simon Fraser.
Out-of-flow fragmented flows were originally added for CSS regions (r91760) to provide
an anonymous container for the region content. This is not to be confused with a multi-column box with
"position: absolute/fixed" (such content would still generate an in-flow fragment container).
- rendering/RenderBox.cpp:
(WebCore::RenderBox::computeVisibleRectInContainer const):
- rendering/RenderBoxModelObject.cpp:
(WebCore::RenderBoxModelObject::mapAbsoluteToLocalPoint const):
- rendering/RenderElement.h:
(WebCore::RenderElement::canContainFixedPositionObjects const):
- rendering/RenderLayer.cpp:
(WebCore::accumulateOffsetTowardsAncestor):
(WebCore::RenderLayer::hitTestContents const):
(WebCore::RenderLayer::calculateClipRects const):
- rendering/RenderLayer.h:
(WebCore::RenderLayer::isRenderFragmentedFlow const):
(WebCore::RenderLayer::isOutOfFlowRenderFragmentedFlow const): Deleted.
- rendering/RenderObject.h:
(WebCore::RenderObject::isInFlowRenderFragmentedFlow const):
(WebCore::RenderObject::isOutOfFlowRenderFragmentedFlow const): Deleted.
- 6:30 AM Changeset in webkit [276706] by
-
- 14 edits2 adds in trunk
Asserting that function or variable is accessed in a certain thread should be simpler and more robust
https://bugs.webkit.org/show_bug.cgi?id=224971
Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2021-04-28
Reviewed by Darin Adler.
Source/WebKit:
Use ThreadAssertions in RemoteGraphicsContextGL implementations
as an example.
- GPUProcess/graphics/RemoteGraphicsContextGL.cpp:
(WebKit::RemoteGraphicsContextGL::RemoteGraphicsContextGL):
(WebKit::RemoteGraphicsContextGL::~RemoteGraphicsContextGL):
(WebKit::RemoteGraphicsContextGL::initialize):
(WebKit::RemoteGraphicsContextGL::stopListeningForIPC):
(WebKit::RemoteGraphicsContextGL::displayWasReconfigured):
(WebKit::RemoteGraphicsContextGL::workQueueInitialize):
(WebKit::RemoteGraphicsContextGL::workQueueUninitialize):
(WebKit::RemoteGraphicsContextGL::didComposite):
(WebKit::RemoteGraphicsContextGL::forceContextLost):
(WebKit::RemoteGraphicsContextGL::dispatchContextChangedNotification):
(WebKit::RemoteGraphicsContextGL::reshape):
(WebKit::RemoteGraphicsContextGL::prepareForDisplay):
(WebKit::RemoteGraphicsContextGL::synthesizeGLError):
(WebKit::RemoteGraphicsContextGL::getError):
(WebKit::RemoteGraphicsContextGL::ensureExtensionEnabled):
(WebKit::RemoteGraphicsContextGL::notifyMarkContextChanged):
(WebKit::RemoteGraphicsContextGL::paintRenderingResultsToCanvas):
(WebKit::RemoteGraphicsContextGL::paintCompositedResultsToCanvas):
(WebKit::RemoteGraphicsContextGL::paintImageDataToImageBuffer):
(WebKit::RemoteGraphicsContextGL::copyTextureFromMedia):
(WebKit::RemoteGraphicsContextGL::simulateEventForTesting):
- GPUProcess/graphics/RemoteGraphicsContextGL.h:
- GPUProcess/graphics/RemoteGraphicsContextGLCocoa.cpp:
(WebKit::RemoteGraphicsContextGLCocoa::platformWorkQueueInitialize):
(WebKit::RemoteGraphicsContextGLCocoa::prepareForDisplay):
- GPUProcess/graphics/RemoteGraphicsContextGLFunctionsGenerated.h:
Source/WTF:
Adds support for more fine-grained thread assertion than
ASSERT(isMainThread()) / ASSERT(!isMainThread())
- WTF.xcodeproj/project.pbxproj:
- wtf/CMakeLists.txt:
- wtf/Compiler.h:
Add NO_UNIQUE_ADDRESS which can be used to declare members that are empty in
RELEASE builds. The declaration avoids increasing the size of the enclosing type.
This should be used with ThreadAssertion:
class MyThreadAware {
....
NO_UNIQUE_ADDRESS ThreadAssertion m_ownerThread;
};
- wtf/ThreadAssertions.h: Added.
Add ThreadAssertion class that can be held as a member of a type.
This allows consistent assertions that the code in the type
runs in the expected thread.
Add NamedAssertion& WTF::mainThread.
Add NamedAssertion& WTF::mainRunLoop.
These are only to be used in thread safety analysis phase. These are undefined
symbols, it is an error to reference them.
Adds functions assertIsMainThread() and assertIsMainRunLoop() to replace
patterns of ASSERT(isMainThread()), ASSERT(isMainRunLoop().
In addition to behaving as the direct ASSERT behaves, the functions
enable compile-time thread safety analysis to know that the calling
scope has the assertions. These can be optionally then used in the
function and member signatures to require the assertions.
Tools:
Add simple tests to make sure code in ThreadAssertions.h
compiles.
- Scripts/generate-gpup-webgl:
Use ThreadAssertions in RemoteGraphicsContextGL implementation
as an example.
- TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
- TestWebKitAPI/Tests/WTF/ThreadAssertionsTest.cpp: Added.
(TestWebKitAPI::TEST):
(TestWebKitAPI::WTF_REQUIRES_LOCK):
- 5:25 AM Changeset in webkit [276705] by
-
- 2 edits in trunk/Source/WebCore
Unreviewed, fixing GTK and WPE build with external holepunch enabled after r269907.
- platform/graphics/holepunch/MediaPlayerPrivateHolePunch.h: update signature of load method.
- 3:42 AM Changeset in webkit [276704] by
-
- 1 edit1 delete in trunk/Tools
Delete unused iExploder
https://bugs.webkit.org/show_bug.cgi?id=225118
Rubber-stamped by Alexey Proskuryakov.
- iExploder: Removed.
- 3:35 AM WebKitGTK/2.32.x edited by
- (diff)
- 2:36 AM Changeset in webkit [276703] by
-
- 2 edits in releases/WebKitGTK/webkit-2.32/Source/WebCore
Merge r275528 - [GStreamer] At EOS, change position to match duration, not the other way around.
https://bugs.webkit.org/show_bug.cgi?id=224237
Reviewed by Philippe Normand.
The criteria used to check if playback has finished is currentTime >=
duration. Currently MediaPlayerPrivateGStreamer::didEnd() ensures this
in an awkward way: by changing the duration so that it matches
currentTime, rather than the other way around.
This meant a duration change at the end of playback most of the time,
with a slightly different duration each time, since currentTime is
cached periodically.
This patch reworks that function to work more naturally and less racy:
First, only if the stream doesn't have a set duration (e.g. live
stream), we set a duration to currentTime, as defined in the spec.
Second, at EOS we update currentTime to match duration, rather than
the other way around.
This patch doesn't introduce changes in test results.
- platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
(WebCore::MediaPlayerPrivateGStreamer::didEnd):
- 2:36 AM WebKitGTK/2.32.x edited by
- (diff)
- 2:36 AM Changeset in webkit [276702] by
-
- 4 edits in releases/WebKitGTK/webkit-2.32
Merge r275634 - [GTK] webkit://gpu should print runtime libwpe and wpebackend-fdo versions
https://bugs.webkit.org/show_bug.cgi?id=224298
Patch by Michael Catanzaro <Michael Catanzaro> on 2021-04-07
Reviewed by Adrian Perez de Castro.
.:
- Source/cmake/OptionsGTK.cmake:
Source/WebKit:
- UIProcess/API/glib/WebKitProtocolHandler.cpp:
(WebKit::WebKitProtocolHandler::handleGPU):
- 2:36 AM Changeset in webkit [276701] by
-
- 4 edits2 adds in releases/WebKitGTK/webkit-2.32
Merge r275821 - [MSE][GStreamer] Crash in WebCore::PlaybackPipeline::addSourceBuffer when setting duration and preload is set to none
https://bugs.webkit.org/show_bug.cgi?id=224260
Patch by Philippe Normand <pnormand@igalia.com> on 2021-04-12
Reviewed by Xabier Rodriguez-Calvar.
Source/WebCore:
Disable delayed loading for the GStreamer MSE player, we want the MSE source element to be
configured ASAP, otherwise the playback pipeline will fail in various ways (duration
notifications sent too early, crashes in addSourceBuffer, crashes in attachTracks, and so
on).
Test: media/media-source/media-source-no-preload-set-duration-crash.html
- platform/graphics/gstreamer/mse/MediaPlayerPrivateGStreamerMSE.cpp:
(WebCore::MediaPlayerPrivateGStreamerMSE::durationChanged):
LayoutTests:
- media/media-source/media-source-no-preload-set-duration-crash-expected.txt: Added.
- media/media-source/media-source-no-preload-set-duration-crash.html: Added.
- 2:32 AM WebKitGTK/2.32.x edited by
- (diff)
- 2:32 AM Changeset in webkit [276700] by
-
- 6 edits1 copy in releases/WebKitGTK/webkit-2.32/Source/JavaScriptCore
Merge r275920 - Move cloneUBreakIterator declaration to IntlWorkaround.h
https://bugs.webkit.org/show_bug.cgi?id=224511
Reviewed by Yusuke Suzuki.
Follow up to r275856. There's ultimately no reason IntlWorkaround.cpp needs to be headerless;
this was tied to some confusion about how to successfully include ubrk.h in two different ways.
- JavaScriptCore.xcodeproj/project.pbxproj:
- runtime/IntlSegmenter.cpp:
- runtime/IntlSegmenter.h:
- runtime/IntlSegments.cpp:
- runtime/IntlWorkaround.cpp:
- runtime/IntlWorkaround.h: Added.
- 2:32 AM Changeset in webkit [276699] by
-
- 6 edits1 add in releases/WebKitGTK/webkit-2.32/Source/JavaScriptCore
Merge r275856 - ICU 69 deprecates ubrk_safeClone in favor of ubrk_clone
https://bugs.webkit.org/show_bug.cgi?id=224093
Reviewed by Yusuke Suzuki.
In a shining example of "disappointing library practices", ICU 69 deprecates ubrk_safeClone in favor of
a new *draft* API ubrk_clone, meaning that no function with this functionality is exposed by default.
This patch introduces a function cloneUBreakIterator to abstract over this change; however, since we need to:
- confine the effects of disabling U_HIDE_DRAFT_API to a non-unified implementation file
- still be able to include ubrk.h from IntlSegmenter.h to instantiate ICUDeleter<ubrk_close> (*not*
clone!)
...the new helper function is introduced in a *headerless* implementation file, IntlWorkaround.cpp.
- JavaScriptCore.xcodeproj/project.pbxproj:
- Sources.txt:
- runtime/IntlSegmenter.cpp:
(JSC::IntlSegmenter::segment const):
- runtime/IntlSegmenter.h:
- runtime/IntlSegments.cpp:
(JSC::IntlSegments::createSegmentIterator):
- runtime/IntlWorkaround.cpp: Added.
(JSC::cloneUBreakIterator):
- 1:51 AM Changeset in webkit [276698] by
-
- 8 edits2 adds in trunk
[selectors] Using a modifier key on an element makes it stop matching :focus-visible
https://bugs.webkit.org/show_bug.cgi?id=225075
Reviewed by Ryosuke Niwa.
LayoutTests/imported/w3c:
- web-platform-tests/css/selectors/focus-visible-021-expected.txt: Added.
- web-platform-tests/css/selectors/focus-visible-021.html: Added.
Source/WebCore:
When we used a modifier key on a element that was matching :focus-visible, we stopped matching :focus-visible.
That was wrong, we shouldn't just start matching :focus-visible when a modifier key is used but not the other way around.
This patches fixed that without doing any work if the element is already matching :focus-visible when the user type a key.
Test: imported/w3c/web-platform-tests/css/selectors/focus-visible-021.html
- dom/Element.cpp:
(WebCore::shouldAlwaysHaveFocusVisibleWhenFocused): Helper method for inputs and content editable elements.
(WebCore::Element::setFocus): Use the new helper method.
(WebCore::Element::setHasFocusVisible): Add asserts to avoid setting/unsetting :focus-visible flag wrongly.
- dom/Node.cpp:
(WebCore::Node::isContentEditable const): Just mark as const.
(WebCore::Node::isContentRichlyEditable const): Ditto.
- dom/Node.h: Ditto.
- page/EventHandler.cpp:
(WebCore::EventHandler::internalKeyEvent): Don't do anything regarding :focus-visible flag if the element already matches :focus-visible.
LayoutTests:
- platform/ios/TestExpectations: Skip new test.
- 1:39 AM Changeset in webkit [276697] by
-
- 3 edits2 adds in trunk
Make img elements perform source selection even when not in the document.
https://bugs.webkit.org/show_bug.cgi?id=222801
Reviewed by Ryosuke Niwa.
LayoutTests/imported/w3c:
- web-platform-tests/html/semantics/embedded-content/the-img-element/source-media-outside-doc-expected.txt: Added.
- web-platform-tests/html/semantics/embedded-content/the-img-element/source-media-outside-doc.html: Added.
Source/WebCore:
The rules for image source selection in the HTML spec do not prevent
them from running when an <img> is not in the document. So we update
HTMLImageElement to call selectImageSource() when inserted into and
removed from a <picture> without checking whether it's in a document.
Test: imported/w3c/web-platform-tests/html/semantics/embedded-content/the-img-element/source-media-outside-doc.html
- html/HTMLImageElement.cpp:
(WebCore::HTMLImageElement::~HTMLImageElement): Remove useless call to
setPictureElement, since all it does is clear a weak pointer.
(WebCore::HTMLImageElement::insertedIntoAncestor):
(WebCore::HTMLImageElement::removedFromAncestor):
- 1:09 AM Changeset in webkit [276696] by
-
- 3 edits in trunk/Source/WebCore
Use a WeakHashSet for Document::m_mediaElements
https://bugs.webkit.org/show_bug.cgi?id=225082
Patch by Ian Gilbert <iang@apple.com> on 2021-04-28
Reviewed by Ryosuke Niwa.
Refactoring to use weak pointer instead of raw pointer.
No observable change of behavior.
- dom/Document.cpp:
(WebCore::Document::registerMediaElement):
(WebCore::Document::unregisterMediaElement):
(WebCore::Document::forEachMediaElement):
- dom/Document.h:
- 12:36 AM Changeset in webkit [276695] by
-
- 5 edits in trunk/Source
[WPE][GTK] More correct fixes for stack size issues on musl libc
https://bugs.webkit.org/show_bug.cgi?id=225099
Patch by Daniel Kolesa <Daniel Kolesa> on 2021-04-28
Reviewed by Adrian Perez de Castro.
Partial revert https://bugs.webkit.org/show_bug.cgi?id=210068
Source/JavaScriptCore:
After fixing the thread stack issues in WTF properly, we can revert
the JSC options changes, which are actually harmful since they result
in JSC being unstable. Previously, softReservedZoneSize was causing a
crash when set to 128K because of the main thread stack bounds, and
this is now fixed. We can keep the maxPerThreadStackUsage at 5M as
well; there is no fundamental difference from how things are done on
glibc anymore.
- runtime/OptionsList.h:
Source/WTF:
While the changes in r236306 stopped JSC from crashing outright,
they are not correct, since they also make it rather unstable.
To counter this, increase stack size for threads on Linux with
non-glibc/bionic libcs to 1 megabyte, which is a robust enough
value that should always be sufficient.
While at it, the previous approach to musl thread stack size was
breaking use of DEFAULT_THREAD_STACK_SIZE_IN_KB (if defined) as
well as not properly taking care of the unused parameter. Move
the code to a more appropriate place, which solves these problems.
All this is however not enough, since there is still the main thread;
using pthread_attr_getstack on a main thread is not reliable since main
thread stacks are allowed to grow, and we expect the bounds to always
be constant. On glibc, this already behaved right, but e.g. on musl
(and possibly other C libraries) this is not necessarily the case - at
the point of the check, it was returning 128k (since that's the initial
size reserved by the kernel). Therefore, do the same thing as on Darwin
and use process resource limits to get the boundary on Linux as well.
This results in JavaScriptCore behaving correctly on musl libc and
allows us to drop the options special-casing that was in place.
- wtf/StackBounds.cpp:
(WTF::StackBounds::currentThreadStackBoundsInternal):
- wtf/Threading.cpp:
(WTF::stackSize):
- 12:07 AM Changeset in webkit [276694] by
-
- 33 edits in trunk/LayoutTests
Fix some test typos.
https://bugs.webkit.org/show_bug.cgi?id=225040
Reviewed by Ryosuke Niwa.
- http/tests/canvas/color-fonts/ctm-sbix-2.html:
- http/tests/canvas/color-fonts/ctm-sbix-3.html:
- http/tests/canvas/color-fonts/ctm-sbix-4.html:
- http/tests/canvas/color-fonts/ctm-sbix.html:
- http/tests/canvas/color-fonts/fill-color-sbix-2.html:
- http/tests/canvas/color-fonts/fill-color-sbix-3.html:
- http/tests/canvas/color-fonts/fill-color-sbix-4.html:
- http/tests/canvas/color-fonts/fill-color-sbix.html:
- http/tests/canvas/color-fonts/fill-color-shadow-ctm-sbix-expected.html:
- http/tests/canvas/color-fonts/fill-color-shadow-ctm-sbix.html:
- http/tests/canvas/color-fonts/fill-color-shadow-sbix-expected.html:
- http/tests/canvas/color-fonts/fill-color-shadow-sbix.html:
- http/tests/canvas/color-fonts/fill-gradient-sbix-2.html:
- http/tests/canvas/color-fonts/fill-gradient-sbix-3.html:
- http/tests/canvas/color-fonts/fill-gradient-sbix-4.html:
- http/tests/canvas/color-fonts/fill-gradient-sbix.html:
- http/tests/canvas/color-fonts/linedash-sbix-expected.html:
- http/tests/canvas/color-fonts/linedash-sbix.html:
- http/tests/canvas/color-fonts/stroke-color-sbix-expected.html:
- http/tests/canvas/color-fonts/stroke-color-sbix.html:
- http/tests/canvas/color-fonts/stroke-color-shadow-ctm-sbix-expected.html:
- http/tests/canvas/color-fonts/stroke-color-shadow-ctm-sbix.html:
- http/tests/canvas/color-fonts/stroke-color-shadow-sbix-expected.html:
- http/tests/canvas/color-fonts/stroke-color-shadow-sbix.html:
- http/tests/canvas/color-fonts/stroke-gradient-sbix-2.html:
- http/tests/canvas/color-fonts/stroke-gradient-sbix-3.html:
- http/tests/canvas/color-fonts/stroke-gradient-sbix-4.html:
- http/tests/canvas/color-fonts/stroke-gradient-sbix.html:
- http/tests/canvas/color-fonts/text-sbix-2.html:
- http/tests/canvas/color-fonts/text-sbix-3.html:
- http/tests/canvas/color-fonts/text-sbix-4.html:
- http/tests/canvas/color-fonts/text-sbix.html:
- 12:00 AM Changeset in webkit [276693] by
-
- 2 edits in trunk/Source/ThirdParty/ANGLE
ANGLE should be compiled with thread-safe statics
https://bugs.webkit.org/show_bug.cgi?id=224854
Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2021-04-28
Reviewed by Kenneth Russell.
Compile ANGLE with normal thread-safe c++ local statics.
No known threading failures. Based on ad-hoc risk vs benefit
evaluation of today and after future merges, it appears
better to err in the side of caution.
- Configurations/Base.xcconfig:
Apr 27, 2021:
- 11:39 PM Changeset in webkit [276692] by
-
- 4 edits in trunk/Source
[PlayStation] Suppress warnings for %llu format specifier for uint64_t.
https://bugs.webkit.org/show_bug.cgi?id=225138
Reviewed by Darin Adler.
PRIu64 from <cstdint> should be use to format uint64_t value in printf.
Source/WebCore:
No new tests because there's no behavior change.
- workers/service/server/SWServerWorker.cpp:
(WebCore::SWServerWorker::startTermination):
Source/WebKit:
- NetworkProcess/ServiceWorker/WebSWServerConnection.cpp:
(WebKit::WebSWServerConnection::createFetchTask):
(WebKit::WebSWServerConnection::startFetch):
- 11:26 PM Changeset in webkit [276691] by
-
- 12 edits1 copy1 add in trunk
Add a Condition type that supports thread safety analysis
https://bugs.webkit.org/show_bug.cgi?id=224970
Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2021-04-27
Reviewed by Darin Adler.
Source/WebKit:
Use CheckedCondition and CheckedLock as an example of the
added implementations.
- Platform/IPC/Connection.cpp:
(IPC::Connection::waitForMessage):
(IPC::Connection::processIncomingMessage):
(IPC::Connection::connectionDidClose):
- Platform/IPC/Connection.h:
(IPC::Connection::WTF_GUARDED_BY_LOCK):
Use CheckedCondition (as an example).
Mark up variables protected by
IPC::Connection::m_waitForMessageMutex
to use thread safety analysis.
- Shared/mac/MediaFormatReader/MediaTrackReader.cpp:
(WebKit::MediaTrackReader::greatestPresentationTime const):
Fix unlocked access.
(WebKit::MediaTrackReader::addSample):
(WebKit::MediaTrackReader::waitForSample const):
(WebKit::MediaTrackReader::finishParsing):
(WebKit::MediaTrackReader::copyProperty):
(WebKit::MediaTrackReader::finalize):
- Shared/mac/MediaFormatReader/MediaTrackReader.h:
Use CheckedCondition (as an example).
Mark up variables protected by
MediaTrackReader::m_sampleStorageLock
to use thread safety analysis.
Source/WTF:
Add CheckedCondition, a condition variable to be used with CheckedLock.
Use thread safety analysis annotations for CheckedCondition.
- WTF.xcodeproj/project.pbxproj:
- wtf/CMakeLists.txt:
- wtf/CheckedCondition.h: Added.
- wtf/CheckedLock.h:
Tools:
A simple test for CheckedCondition to make sure
it compiles.
- TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
- TestWebKitAPI/Tests/WTF/CheckedConditionTest.cpp: Copied from Tools/TestWebKitAPI/Tests/WTF/CheckedLockTest.cpp.
(TestWebKitAPI::TEST):
- TestWebKitAPI/Tests/WTF/CheckedLockTest.cpp:
- 9:50 PM Changeset in webkit [276690] by
-
- 4 edits in trunk/LayoutTests
[css-flexbox] Fix expectations of a WPT test that works fine
https://bugs.webkit.org/show_bug.cgi?id=225097
Reviewed by Manuel Rego Casasnovas.
LayoutTests/imported/w3c:
- web-platform-tests/css/css-flexbox/css-flexbox-img-expand-evenly-expected.html:
Fixed the paths of some images that were not properly converted during import.
LayoutTests:
- TestExpectations: Unskipped a test that works fine now.
- 9:43 PM Changeset in webkit [276689] by
-
- 8 edits in trunk
Improve local storage size estimation for quota limitation
https://bugs.webkit.org/show_bug.cgi?id=225123
Reviewed by Alex Christensen.
Source/WebCore:
Improve local storage size estimation for quota limitation:
- Rely on String::sizeInBytes() to compute the String size, instead of using String::length() * sizeof(UChar)
- Make estimation consistent between StorageMap & LocalStorageDatabase
- storage/StorageMap.cpp:
(WebCore::StorageMap::setItem):
(WebCore::StorageMap::setItemIgnoringQuota):
(WebCore::StorageMap::removeItem):
(WebCore::StorageMap::clear):
(WebCore::StorageMap::importItems):
(WebCore::StorageMap::Impl::copy const):
- storage/StorageMap.h:
Source/WebKit:
Improve local storage size estimation for quota limitation:
- Rely on String::sizeInBytes() to compute the String size, instead of using String::length() * sizeof(UChar)
- Make estimation consistent between StorageMap & LocalStorageDatabase
- NetworkProcess/WebStorage/LocalStorageDatabase.cpp:
(WebKit::LocalStorageDatabase::removeItem):
(WebKit::LocalStorageDatabase::setItem):
(WebKit::estimateEntrySize): Deleted.
- NetworkProcess/WebStorage/LocalStorageDatabase.h:
LayoutTests:
Update test to use unicode in the Strings so that the file reaches the quota without
changing the test too much. The test was using ASCII and was thus able to store all
the strings without reaching the quota due to our updated String size calculation.
- storage/domstorage/quota.html:
- 7:54 PM Changeset in webkit [276688] by
-
- 5 edits2 adds in trunk
[iOS] Web content process occasionally crashes under VisibleSelection::adjustPositionForEnd
https://bugs.webkit.org/show_bug.cgi?id=225072
rdar://77159489
Reviewed by Darin Adler.
Source/WebCore:
Add a helper method to check whether or not the given
Positionis in a tree scope. See WebKit/ChangeLog for
more details.
Test: editing/selection/ios/clear-selection-while-moving-selection-handles.html
- dom/Position.h:
(WebCore::Position::isInTreeScope const):
Source/WebKit:
Make
rangeForPointInRootViewCoordinatesrobust in the case where the original selection may have become
orphaned or null, by checking that thetargetNodeand existingselectionStartorselectionEndare in a
tree scope before accessingtreeScope().
- WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::rangeForPointInRootViewCoordinates):
LayoutTests:
Add a layout test that programmatically clears the selection in the middle of changing it by moving selection
handles.
- editing/selection/ios/clear-selection-while-moving-selection-handles-expected.txt: Added.
- editing/selection/ios/clear-selection-while-moving-selection-handles.html: Added.
- 6:55 PM Changeset in webkit [276687] by
-
- 2 edits in trunk/LayoutTests
[GLIB] Unreviewed test gardening. fast/replaced/pdf-as-embed-with-no-mime-type-is-not-blank.html is failing after r276635.
- platform/glib/TestExpectations:
- 6:01 PM Changeset in webkit [276686] by
-
- 3 edits in trunk/Source/JavaScriptCore
Get the bytecode profiler working again
https://bugs.webkit.org/show_bug.cgi?id=225129
Reviewed by Saam Barati.
The bytecode profiler was broken because it was trying to look at unset labels. This patch
improves our label discipline a bit so we don't try to look at unset labels.
- dfg/DFGJITCompiler.cpp:
(JSC::DFG::JITCompiler::linkOSRExits):
- dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::emitInvalidationPoint):
- 5:54 PM Changeset in webkit [276685] by
-
- 2 edits in branches/safari-611-branch/Source/WebCore
Unreviewed build fix. rdar://problem/77211405
Added blobOwner declaration from trac.webkit.org/r276230.
- 5:44 PM Changeset in webkit [276684] by
-
- 6 edits in branches/safari-612.1.12-branch
Cherry-pick r276652. rdar://problem/77235499
Unreviewed, reverting r275912.
rdar://77179042
Broke internal client
Reverted changeset:
"Remove support for NPAPI plugins in WebView"
https://bugs.webkit.org/show_bug.cgi?id=224449
https://commits.webkit.org/r275912
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@276652 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 5:44 PM Changeset in webkit [276683] by
-
- 2 edits in branches/safari-612.1.12-branch/Source/WebKit
Cherry-pick r276590. rdar://problem/77235569
[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:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@276590 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 5:18 PM Changeset in webkit [276682] by
-
- 3 edits in trunk/Source/WTF
Memory pressure events should be logged to com.apple.WebKit subsystem
https://bugs.webkit.org/show_bug.cgi?id=225112
Reviewed by Chris Dumez.
Currently memory pressure events are logged to the default os_log subsystem instead of the
com.apple.WebKit subsystem. This makes it hard to capture such events using common logging
prefs (e.g. a pref that persists all logs from the WebKit subsystem).
To fix this, call WTFInitializeLogChannelStatesFromString at init time. This associates the
WTFLogChannel with an os_log object that sends the messages to the WebKit subsystem.
- wtf/MemoryPressureHandler.cpp:
(WTF::MemoryPressureHandler::singleton):
- wtf/cocoa/MemoryPressureHandlerCocoa.mm:
(WTF::MemoryPressureHandler::install):
- 5:04 PM Changeset in webkit [276681] by
-
- 3 edits in trunk/Source/WebInspectorUI
Web Inspector: Rename "Open in New Tab" context menu item to "Open in New Window"
https://bugs.webkit.org/show_bug.cgi?id=225125
Reviewed by BJ Burg.
Update the context menu item label, as the "Open in..." context menu item opens the target item in a new window,
not a new tab.
- Localizations/en.lproj/localizedStrings.js:
- UserInterface/Views/ContextMenuUtilities.js:
(WI.appendContextMenuItemsForURL):
- 4:53 PM Changeset in webkit [276680] by
-
- 7 edits4 adds in trunk
Web Inspector: Default Audits script are minified in release builds
https://bugs.webkit.org/show_bug.cgi?id=225009
Reviewed by BJ Burg.
Source/WebInspectorUI:
Covered by new test:
- inspector/audit/non-minified-default-audits.html
The default audits have been moved out of
AuditManager.jsand into a specialDefaultAudits.jsin the new
NonMinifieddirectory, which contains JavaScript sources that should be included inMain.jsand
TestCombined.js, but should not have whitespace stripped from their contents because the whitespace is
important to the script. For example, the source for the default audits are visible to the user, and therefore
we want to present well-formatted source in those contexts.
- Scripts/combine-resources.pl:
- Added
NonMinifieddirectory to list of defaultinputDirectoryPatternexceptions for combining resources. - Added
--skip-concatenate-tagso that we don't add tags for script we will eventually append to another script. - Scripts/copy-user-interface-resources.pl:
- Handle
NonMinifieddirectory for sources that will be appended to Main.js, but should not be minified. - Handle
NonMinifieddirectory for sources that will be appended to TestCombined.js.
(combineOrStripResourcesForWebKitAdditions):
- Drive-by fix for typo in combineOrStripResourcesForWebKitAdditions that caused errors to be emitted during builds.
- UserInterface/Controllers/AuditManager.js:
(WI.AuditManager.prototype._addDefaultTests):
(WI.AuditManager):
(WI.AuditManager.prototype._addDefaultTests.const.levelPass): Deleted.
(WI.AuditManager.prototype._addDefaultTests.const.levelWarn): Deleted.
(WI.AuditManager.prototype._addDefaultTests.const.levelFail): Deleted.
(WI.AuditManager.prototype._addDefaultTests.const.levelError): Deleted.
(WI.AuditManager.prototype._addDefaultTests.const.levelUnsupported): Deleted.
(WI.AuditManager.prototype._addDefaultTests.const.dataDOMNodes): Deleted.
(WI.AuditManager.prototype._addDefaultTests.const.dataDOMAttributes): Deleted.
(WI.AuditManager.prototype._addDefaultTests.const.dataErrors): Deleted.
(WI.AuditManager.prototype._addDefaultTests.const.dataCustom): Deleted.
(WI.AuditManager.prototype._addDefaultTests.const.getElementsByComputedRole): Deleted.
(WI.AuditManager.prototype._addDefaultTests.const.getActiveDescendant): Deleted.
(WI.AuditManager.prototype._addDefaultTests.const.getChildNodes): Deleted.
(WI.AuditManager.prototype._addDefaultTests.const.getComputedProperties): Deleted.
(WI.AuditManager.prototype._addDefaultTests.const.getControlledNodes): Deleted.
(WI.AuditManager.prototype._addDefaultTests.const.getFlowedNodes): Deleted.
(WI.AuditManager.prototype._addDefaultTests.const.getMouseEventNode): Deleted.
(WI.AuditManager.prototype._addDefaultTests.const.getOwnedNodes): Deleted.
(WI.AuditManager.prototype._addDefaultTests.const.getParentNode): Deleted.
(WI.AuditManager.prototype._addDefaultTests.const.getSelectedChildNodes): Deleted.
(WI.AuditManager.prototype._addDefaultTests.const.hasEventListeners): Deleted.
(WI.AuditManager.prototype._addDefaultTests.const.hasEventListenersClick): Deleted.
(WI.AuditManager.prototype._addDefaultTests.const.getResources): Deleted.
(WI.AuditManager.prototype._addDefaultTests.const.getResourceContent): Deleted.
(WI.AuditManager.prototype._addDefaultTests.const.unsupported): Deleted.
(WI.AuditManager.prototype._addDefaultTests.hasChildWithRole): Deleted.
(WI.AuditManager.prototype._addDefaultTests.const.testMenuRoleForRequiredChildren): Deleted.
(WI.AuditManager.prototype._addDefaultTests.const.testGridRoleForRequiredChildren): Deleted.
(WI.AuditManager.prototype._addDefaultTests.const.testForAriaLabelledBySpelling): Deleted.
(WI.AuditManager.prototype._addDefaultTests.const.testForMultipleBanners): Deleted.
(WI.AuditManager.prototype._addDefaultTests.const.testForLinkLabels): Deleted.
(WI.AuditManager.prototype._addDefaultTests.const.testRowGroupRoleForRequiredChildren): Deleted.
(WI.AuditManager.prototype._addDefaultTests.const.testTableRoleForRequiredChildren): Deleted.
(WI.AuditManager.prototype._addDefaultTests.const.testForMultipleLiveRegions): Deleted.
(WI.AuditManager.prototype._addDefaultTests.const.testListBoxRoleForRequiredChildren): Deleted.
(WI.AuditManager.prototype._addDefaultTests.const.testImageLabels): Deleted.
(WI.AuditManager.prototype._addDefaultTests.const.testForAriaHiddenFalse): Deleted.
(WI.AuditManager.prototype._addDefaultTests.const.testTreeRoleForRequiredChildren): Deleted.
(WI.AuditManager.prototype._addDefaultTests.const.testRadioGroupRoleForRequiredChildren): Deleted.
(WI.AuditManager.prototype._addDefaultTests.const.testFeedRoleForRequiredChildren): Deleted.
(WI.AuditManager.prototype._addDefaultTests.const.testTabListRoleForRequiredChildren): Deleted.
(WI.AuditManager.prototype._addDefaultTests.const.testButtonLabels): Deleted.
(WI.AuditManager.prototype._addDefaultTests.const.testRowRoleForRequiredChildren): Deleted.
(WI.AuditManager.prototype._addDefaultTests.const.testListRoleForRequiredChildren): Deleted.
(WI.AuditManager.prototype._addDefaultTests.const.testComboBoxRoleForRequiredChildren): Deleted.
(WI.AuditManager.prototype._addDefaultTests.const.testForMultipleMainContentSections): Deleted.
(WI.AuditManager.prototype._addDefaultTests.const.testDialogsForLabels): Deleted.
(WI.AuditManager.prototype._addDefaultTests.const.testForInvalidAriaHiddenValue): Deleted.
(WI.AuditManager.prototype._addDefaultTests.removeWhitespace): Deleted.
- UserInterface/Main.html:
- UserInterface/NonMinified/DefaultAudits.js: Added.
(WI.DefaultAudits.levelPass):
(WI.DefaultAudits.levelWarn):
(WI.DefaultAudits.levelFail):
(WI.DefaultAudits.levelError):
(WI.DefaultAudits.levelUnsupported):
(WI.DefaultAudits.dataDOMNodes):
(WI.DefaultAudits.dataDOMAttributes):
(WI.DefaultAudits.dataErrors):
(WI.DefaultAudits.dataCustom):
(WI.DefaultAudits.getElementsByComputedRole):
(WI.DefaultAudits.getActiveDescendant):
(WI.DefaultAudits.getChildNodes):
(WI.DefaultAudits.getComputedProperties):
(WI.DefaultAudits.getControlledNodes):
(WI.DefaultAudits.getFlowedNodes):
(WI.DefaultAudits.getMouseEventNode):
(WI.DefaultAudits.getOwnedNodes):
(WI.DefaultAudits.getParentNode):
(WI.DefaultAudits.getSelectedChildNodes):
(WI.DefaultAudits.hasEventListeners):
(WI.DefaultAudits.hasEventListenersClick):
(WI.DefaultAudits.getResources):
(WI.DefaultAudits.getResourceContent):
(WI.DefaultAudits.unsupported):
(hasChildWithRole):
(WI.DefaultAudits.testMenuRoleForRequiredChildren):
(WI.DefaultAudits.testGridRoleForRequiredChildren):
(WI.DefaultAudits.testForAriaLabelledBySpelling):
(WI.DefaultAudits.testForMultipleBanners):
(WI.DefaultAudits.testForLinkLabels):
(WI.DefaultAudits.testRowGroupRoleForRequiredChildren):
(WI.DefaultAudits.testTableRoleForRequiredChildren):
(WI.DefaultAudits.testForMultipleLiveRegions):
(WI.DefaultAudits.testListBoxRoleForRequiredChildren):
(WI.DefaultAudits.testImageLabels):
(WI.DefaultAudits.testForAriaHiddenFalse):
(WI.DefaultAudits.testTreeRoleForRequiredChildren):
(WI.DefaultAudits.testRadioGroupRoleForRequiredChildren):
(WI.DefaultAudits.testFeedRoleForRequiredChildren):
(WI.DefaultAudits.testTabListRoleForRequiredChildren):
(WI.DefaultAudits.testButtonLabels):
(WI.DefaultAudits.testRowRoleForRequiredChildren):
(WI.DefaultAudits.testListRoleForRequiredChildren):
(WI.DefaultAudits.testComboBoxRoleForRequiredChildren):
(WI.DefaultAudits.testForMultipleMainContentSections):
(WI.DefaultAudits.testDialogsForLabels):
(WI.DefaultAudits.testForInvalidAriaHiddenValue):
- UserInterface/Test.html:
LayoutTests:
Added test to check that whitespace is preserved in default audits.
- inspector/audit/non-minified-default-audits-expected.txt: Added.
- inspector/audit/non-minified-default-audits.html: Added.
- 4:40 PM Changeset in webkit [276679] by
-
- 4 edits2 adds in trunk
Associate a picture element with an img only if the img is a direct child.
https://bugs.webkit.org/show_bug.cgi?id=225044
Reviewed by Ryosuke Niwa.
LayoutTests/imported/w3c:
- web-platform-tests/html/semantics/embedded-content/the-img-element/img-picture-ancestor-expected.txt: Added.
- web-platform-tests/html/semantics/embedded-content/the-img-element/img-picture-ancestor.html: Added.
Source/WebCore:
Test: imported/w3c/web-platform-tests/html/semantics/embedded-content/the-img-element/img-picture-ancestor.html
- html/HTMLImageElement.cpp:
(WebCore::HTMLImageElement::insertedIntoAncestor):
(WebCore::HTMLImageElement::removedFromAncestor):
- html/parser/HTMLConstructionSite.cpp:
(WebCore::HTMLConstructionSite::createHTMLElementOrFindCustomElementInterface):
- 4:35 PM Changeset in webkit [276678] by
-
- 13 edits in trunk/Source
IPC::decoder::decode() should mark decoder as invalid when failing
https://bugs.webkit.org/show_bug.cgi?id=225117
Reviewed by Darin Adler.
IPC::decoder::decode() should mark decoder as invalid when failing, instead of relying
on individual type decoders to do so. This makes type decoders a bit simpler and less
error-prone.
Source/WebCore:
- Modules/highlight/AppHighlight.h:
(WebCore::AppHighlight::decode):
Source/WebKit:
- Platform/IPC/ArgumentCoders.cpp:
(IPC::ArgumentCoder<CString>::decode):
(IPC::decodeStringText):
- Platform/IPC/ArgumentCoders.h:
- Platform/IPC/Connection.cpp:
(IPC::Connection::dispatchMessageReceiverMessage):
(IPC::Connection::dispatchSyncMessage):
- Platform/IPC/Decoder.cpp:
(IPC::m_destinationID):
- Platform/IPC/Decoder.h:
(IPC::Decoder::decode):
(IPC::Decoder::operator>>):
- Platform/IPC/HandleMessage.h:
(IPC::handleMessage):
(IPC::handleMessageSynchronous):
(IPC::handleMessageSynchronousWantsConnection):
(IPC::handleMessageAsync):
(IPC::handleMessageAsyncWantsConnection):
- WebProcess/Plugins/Plugin.cpp:
(WebKit::Plugin::Parameters::decode):
- 4:01 PM Changeset in webkit [276677] by
-
- 19 edits2 adds in trunk
charset in contentType used in Blob.prototype.slice(start, end, contentType) is lost
https://bugs.webkit.org/show_bug.cgi?id=225057
Patch by Alex Christensen <achristensen@webkit.org> on 2021-04-27
Reviewed by Chris Dumez.
Source/WebCore:
When calling Blob.slice, use the content type from the call, not from the sliced-from blob.
This matches Chrome and Firefox.
When no content type is given, browsers disagree on what happens, so keep existing behavior in that case.
Test: fast/files/blob-content-type.html
- fileapi/Blob.cpp:
(WebCore::Blob::Blob):
- fileapi/ThreadableBlobRegistry.cpp:
(WebCore::ThreadableBlobRegistry::registerBlobURLForSlice):
- fileapi/ThreadableBlobRegistry.h:
- platform/network/BlobRegistry.h:
- platform/network/BlobRegistryImpl.cpp:
(WebCore::BlobRegistryImpl::registerBlobURLForSlice):
- platform/network/BlobRegistryImpl.h:
Source/WebKit:
- NetworkProcess/NetworkConnectionToWebProcess.cpp:
(WebKit::NetworkConnectionToWebProcess::registerBlobURLForSlice):
- NetworkProcess/NetworkConnectionToWebProcess.h:
- NetworkProcess/NetworkConnectionToWebProcess.messages.in:
- NetworkProcess/NetworkProcessPlatformStrategies.cpp:
(WebKit::NetworkProcessPlatformStrategies::createBlobRegistry):
- WebProcess/FileAPI/BlobRegistryProxy.cpp:
(WebKit::BlobRegistryProxy::registerBlobURLForSlice):
- WebProcess/FileAPI/BlobRegistryProxy.h:
Source/WebKitLegacy/mac:
- WebCoreSupport/WebPlatformStrategies.mm:
Source/WebKitLegacy/win:
- WebCoreSupport/WebPlatformStrategies.cpp:
LayoutTests:
- fast/files/blob-content-type-expected.txt: Added.
- fast/files/blob-content-type.html: Added.
- 3:52 PM Changeset in webkit [276676] by
-
- 6 edits1 add in trunk/Source/JavaScriptCore
Move ExceptionExpectation into its own .h file.
https://bugs.webkit.org/show_bug.cgi?id=225124
Reviewed by Robin Morisset.
Also fixed some compiler warnings.
- CMakeLists.txt:
- JavaScriptCore.xcodeproj/project.pbxproj:
- runtime/ExceptionExpectation.h: Added.
- runtime/ExceptionHelpers.h:
- runtime/HashMapImplInlines.h:
(JSC::jsMapHashImpl):
- runtime/JSGenericTypedArrayViewInlines.h:
(JSC::JSGenericTypedArrayView<Adaptor>::setWithSpecificType):
(JSC::JSGenericTypedArrayView<Adaptor>::getOwnPropertySlotByIndex):
- 3:50 PM Changeset in webkit [276675] by
-
- 8 edits in branches/safari-612.1.11-branch/Source
Versioning.
WebKit-7612.1.11.8
- 3:48 PM Changeset in webkit [276674] by
-
- 8 edits in trunk/Source
Versioning.
WebKit-7612.1.13
- 3:46 PM Changeset in webkit [276673] by
-
- 2 edits in trunk/LayoutTests
REGRESSION (r273154): fast/forms/ios/scroll-to-reveal-focused-select.html is timing out
https://bugs.webkit.org/show_bug.cgi?id=225122
<rdar://problem/77041996>
Reviewed by Wenson Hsieh.
- fast/forms/ios/scroll-to-reveal-focused-select.html:
Updated the test to account for the fact that <select> options are no
longer displayed as a keyboard input view.
- 3:31 PM Changeset in webkit [276672] by
-
- 1 copy in branches/safari-612.1.12-branch
New branch.
- 3:11 PM Changeset in webkit [276671] by
-
- 2 edits in trunk/Source/WebKit
HashTableConstIterator's consistency assertion fails while closing m_webIDBServers in NetworkProcess::didClose since r275846
https://bugs.webkit.org/show_bug.cgi?id=225089
Reviewed by Chris Dumez.
The items of m_webIDBServers were removed while iterating
m_webIDBServers.
Move m_webIDBServers to a temporary HashMap before iterating.
- NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::didClose):
- 3:09 PM Changeset in webkit [276670] by
-
- 6 edits in trunk/Tools
Make TestInput immutable
https://bugs.webkit.org/show_bug.cgi?id=224989
Reviewed by Jonathan Bedard.
The main point here is moving computing reference_files and
should_run_pixel_test to when we initially construct TestInput, as at
this point this happens in the some process and thread (since bug
221577), hence there's no real reason for it to happen later.
In doing this, I've eliminated Port.should_run_as_pixel_test on the
basis that no port actually overrode this to apply any different logic,
especially given it seems unlikely that any port would want to use
different logic here. (Note that ports still have some control through
Port.default_pixel_tests.)
With this done, it should then be possible to make TestInput immutable,
which should help make things easier to understand.
Expect, as it happens, there was a reason for it to happen later: we
previously generated all the TestInputs twice, once to find out how
many workers we need and then another time to actually run them (plus
potentially a third time for retries!). There's no actual reason to do
this, so move the creation to Manager.run and pass that list around
instead of the Tests.
- Scripts/webkitpy/layout_tests/controllers/layout_test_runner.py:
(LayoutTestRunner.run_tests): Don't update TestInput.
(LayoutTestRunner._update_test_input): Deleted.
- Scripts/webkitpy/layout_tests/controllers/manager.py:
(Manager._test_input_for_file): Moved from _update_test_input and
Port.should_run_as_pixel_test.
(Manager._get_test_inputs): Deleted.
(Manager._multiply_test_inputs): Simplify code used to generated
repeated/rerun test inputs.
(Manager._update_worker_count): Don't create TestInputs; take
test_inputs as arg.
(Manager._set_up_run): Rename test_names to test_inputs.
(Manager.run): Create TestInput objects here.
(Manager._run_test_subset): Take TestInputs not Tests, generate new
TestInputs for retry if needed.
(Manager._run_tests): Don't create TestInputs; take test_inputs as arg.
- Scripts/webkitpy/layout_tests/models/test.py: Fly-by: use slots.
- Scripts/webkitpy/layout_tests/models/test_input.py:
(TestInput): Migrate to attrs.
(TestInput.init): Deleted.
(TestInput.repr): Deleted.
- Scripts/webkitpy/port/base.py:
(Port.should_run_as_pixel_test): Deleted.
(Port._should_run_as_pixel_test): Deleted.
- 3:06 PM Changeset in webkit [276669] by
-
- 2 edits in trunk/Tools
Optimize Port._expected_baselines_for_suffixes
https://bugs.webkit.org/show_bug.cgi?id=225115
Reviewed by Jonathan Bedard.
This takes out the join() and splitext() calls from the inner loop as
they are loop invariant, and account for a large proportion of the
function's execution time. After this, exists() account for almost
all.
- Scripts/webkitpy/port/base.py:
(Port._expected_baselines_for_suffixes):
- 2:07 PM Changeset in webkit [276668] by
-
- 6 edits2 adds in branches/safari-611-branch
Cherry-pick r276357. rdar://problem/77211423
REGRESSION(r256107): Text moves around when selecting at https://www.tokyo-sports.co.jp/entame/news/2834187/
https://bugs.webkit.org/show_bug.cgi?id=224839
<rdar://74958484>
Reviewed by Darin Adler.
Source/WebCore:
Pass in locale information when constructing the text iterator for the content (locale affects soft wrap opportunities).
Test: fast/text/line-break-with-locale.html
- layout/inlineformatting/InlineTextItem.cpp: (WebCore::Layout::InlineTextItem::createAndAppendTextItems):
- layout/inlineformatting/text/TextUtil.cpp: In addition to locale, add missing line breaking mode. (WebCore::Layout::TextUtil::lineBreakIteratorMode):
- layout/inlineformatting/text/TextUtil.h:
LayoutTests:
- fast/text/line-break-with-locale-expected.html: Added.
- fast/text/line-break-with-locale.html: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@276357 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 2:07 PM Changeset in webkit [276667] by
-
- 2 edits in branches/safari-611-branch/Source/WebCore
Cherry-pick r276352. rdar://problem/77211405
Use BlobURL::getOriginURL in more places
https://bugs.webkit.org/show_bug.cgi?id=224857
Reviewed by Alex Christensen.
Covered by existing tests.
- loader/PolicyChecker.cpp: (WebCore::FrameLoader::PolicyChecker::extendBlobURLLifetimeIfNecessary const):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@276352 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 2:07 PM Changeset in webkit [276666] by
-
- 4 edits3 adds in branches/safari-611-branch
Cherry-pick r276012. rdar://problem/77211405
REGRESSION(Safari 14): iframe with blob url does not work with sandboxing
https://bugs.webkit.org/show_bug.cgi?id=222312
<rdar://problem/74927624>
Reviewed by Chris Dumez.
Source/WebCore:
In https://trac.webkit.org/r275884, we correctly compute whether a blob is to be considered secure or not.
For that, we need to have the blob URL registered with its document origin.
Update PolicyChecker to properly register the temporoary blob URL with its document origin.
Test: http/tests/security/sandbox-iframe-and-blob.https.html
- loader/PolicyChecker.cpp: (WebCore::FrameLoader::PolicyChecker::extendBlobURLLifetimeIfNecessary const):
LayoutTests:
- http/tests/security/resources/sandbox-iframe-and-blob-frame.html: Added.
- http/tests/security/sandbox-iframe-and-blob.https-expected.txt: Added.
- http/tests/security/sandbox-iframe-and-blob.https.html: Added.
- platform/win/TestExpectations:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@276012 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 2:07 PM Changeset in webkit [276665] by
-
- 2 edits in branches/safari-611-branch/Source/WebCore/fileapi
Apply patch. rdar://problem/77211405
- 2:07 PM Changeset in webkit [276664] by
-
- 19 edits in branches/safari-611-branch/Source/JavaScriptCore
Cherry-pick r276609. rdar://problem/77211512
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):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@276609 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 2:07 PM Changeset in webkit [276663] by
-
- 2 edits in branches/safari-611-branch/Source/WebCore
Cherry-pick r276611. rdar://problem/77211533
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):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@276611 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 2:07 PM Changeset in webkit [276662] by
-
- 2 edits in branches/safari-611-branch/Source/WebCore
Cherry-pick r276530. rdar://problem/77211441
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.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@276530 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 2:07 PM Changeset in webkit [276661] by
-
- 5 edits2 adds in branches/safari-611-branch
Cherry-pick r274170. rdar://problem/77194450
REGRESSION (r273003): Animated style may lose original display property value
https://bugs.webkit.org/show_bug.cgi?id=222979
rdar://75056684
Reviewed by Zalan Bujtas.
Source/WebCore:
Test: fast/animation/animation-display-style-adjustment.html
The original (non-blockified) display property value is saved in the beginning of Style::Adjuster::adjust.
It is needed to implement absolute positioning correctly in some situations. However with animations
the style adjustment code may run twice on the same style and the second run will clobber the saved original value.
- rendering/RenderTheme.cpp: (WebCore::RenderTheme::adjustStyle):
- rendering/style/RenderStyle.h: (WebCore::RenderStyle::setDisplay):
Always save the original value when setting the property normally.
(WebCore::RenderStyle::setEffectiveDisplay):
(WebCore::RenderStyle::setOriginalDisplay): Deleted.
Add setEffectiveDisplay that doesn't affect the original value for adjuster use.
- style/StyleAdjuster.cpp: (WebCore::Style::Adjuster::adjust const):
Remove the saving of the original value.
Use setEffectiveDisplay in all adjuster code, preserving the original value.
(WebCore::Style::Adjuster::adjustDisplayContentsStyle const):
(WebCore::Style::Adjuster::adjustSVGElementStyle):
(WebCore::Style::Adjuster::adjustForSiteSpecificQuirks const):
LayoutTests:
- fast/animation/animation-display-style-adjustment-expected.html: Added.
- fast/animation/animation-display-style-adjustment.html: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@274170 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 1:56 PM Changeset in webkit [276660] by
-
- 22 edits2 adds in trunk
[JSC] Remove defaultValue() from the method table
https://bugs.webkit.org/show_bug.cgi?id=225032
Reviewed by Darin Adler.
Source/JavaScriptCore:
This patch not only removes the unnecessary method table entry, but also makes
the presence of custom ToPrimitive behavior observable to userland code.
To maintain object identity and (possibly) enable caching, Symbol.toPrimitive
method is stored on a structure. To avoid any potential breakage, it's made
replaceable and configurable, covering the case when its holder is a ProxyTarget.
For JSCallbackObject, Symbol.toPrimitive method is created only if ConvertToType
callback is present, before initialization is performed.
Also, this change adds additional ordinaryToPrimitive() cast to fix the invariant
that toPrimitive() returns a primitive value, which was broken if ConvertToType
callback returned an object. The invariant is enforced by the spec [1][2] and is
validated via assertion in JSValue::toStringSlowCase().
[1]: https://tc39.es/ecma262/#sec-toprimitive (step 2.b.vi)
[2]: https://tc39.es/ecma262/#sec-ordinarytoprimitive (step 6)
- API/JSCallbackObject.h:
- API/JSCallbackObjectFunctions.h:
(JSC::JSCallbackObject<Parent>::init):
(JSC::JSCallbackObject<Parent>::customToPrimitive):
(JSC::JSCallbackObject<Parent>::defaultValue): Deleted.
- API/tests/testapiScripts/testapi.js:
- runtime/ClassInfo.h:
- runtime/JSCell.cpp:
(JSC::JSCell::defaultValue): Deleted.
- runtime/JSCell.h:
- runtime/JSObject.cpp:
(JSC::JSObject::toPrimitive const):
(JSC::JSObject::defaultValue): Deleted.
- runtime/JSObject.h:
- runtime/Operations.cpp:
(JSC::jsAddSlowCase):
Source/WebCore:
Test: platform/mac/fast/dom/objc-wrapper-toprimitive.html
- bindings/js/JSPluginElementFunctions.cpp:
(WebCore::pluginElementCustomGetOwnPropertySlot):
- bridge/objc/objc_runtime.h:
- bridge/objc/objc_runtime.mm:
(JSC::Bindings::ObjcFallbackObjectImp::finishCreation):
(JSC::Bindings::ObjcFallbackObjectImp::getOwnPropertySlot):
(JSC::Bindings::JSC_DEFINE_HOST_FUNCTION):
(JSC::Bindings::ObjcFallbackObjectImp::defaultValue): Deleted.
- bridge/runtime_object.cpp:
(JSC::Bindings::RuntimeObject::finishCreation):
(JSC::Bindings::RuntimeObject::getOwnPropertySlot):
(JSC::Bindings::JSC_DEFINE_HOST_FUNCTION):
(JSC::Bindings::RuntimeObject::defaultValue): Deleted.
- bridge/runtime_object.h:
LayoutTests:
- platform/mac/fast/dom/objc-wrapper-toprimitive-expected.txt: Added.
- platform/mac/fast/dom/objc-wrapper-toprimitive.html: Added.
- platform/wk2/TestExpectations:
- plugins/npruntime/tostring-expected.txt:
- plugins/npruntime/tostring.html:
- plugins/npruntime/valueof-expected.txt:
- plugins/npruntime/valueof.html:
- 1:55 PM Changeset in webkit [276659] by
-
- 11 edits in trunk/Source
Copy-on-write semantics should be an internal implementation detail of StorageMap
https://bugs.webkit.org/show_bug.cgi?id=225108
Reviewed by Alex Christensen.
Source/WebCore:
Instead of making the StorageMap RefCounted and requiring the client to potentially
replace its StorageMap whenever it calls functions that modify the StorageMap, the
copy-on-write semantics in now an internal implementation detail of StorageMap.
To achieve this, the following changes were made:
- StorageMap is no longer RefCounted. Instead, it has an internal Impl data member that is RefCounted.
- The internal Impl data member is the one that gets copied on write.
- Functions that modify the StorageMap no longer need to return a StorageMap.
- Add a clear() function for convenience.
- storage/StorageMap.cpp:
(WebCore::StorageMap::StorageMap):
(WebCore::StorageMap::invalidateIterator):
(WebCore::StorageMap::setIteratorToIndex):
(WebCore::StorageMap::length const):
(WebCore::StorageMap::key):
(WebCore::StorageMap::getItem const):
(WebCore::StorageMap::setItem):
(WebCore::StorageMap::setItemIgnoringQuota):
(WebCore::StorageMap::removeItem):
(WebCore::StorageMap::clear):
(WebCore::StorageMap::contains const):
(WebCore::StorageMap::importItems):
(WebCore::StorageMap::Impl::copy const):
- storage/StorageMap.h:
(WebCore::StorageMap::items const):
(WebCore::StorageMap::Impl::create):
Source/WebKit:
Update StorageArea due to StorageMap API changes.
- NetworkProcess/WebStorage/StorageArea.cpp:
(WebKit::StorageArea::StorageArea):
(WebKit::StorageArea::setItem):
(WebKit::StorageArea::removeItem):
(WebKit::StorageArea::clear):
(WebKit::StorageArea::items const):
(WebKit::StorageArea::openDatabaseAndImportItemsIfNeeded const):
- NetworkProcess/WebStorage/StorageArea.h:
Source/WebKitLegacy:
Update StorageAreaImpl due to StorageMap API changes.
- Storage/StorageAreaImpl.cpp:
(WebKit::StorageAreaImpl::StorageAreaImpl):
(WebKit::StorageAreaImpl::length):
(WebKit::StorageAreaImpl::key):
(WebKit::StorageAreaImpl::item):
(WebKit::StorageAreaImpl::setItem):
(WebKit::StorageAreaImpl::removeItem):
(WebKit::StorageAreaImpl::clear):
(WebKit::StorageAreaImpl::contains):
(WebKit::StorageAreaImpl::importItems):
(WebKit::StorageAreaImpl::clearForOriginDeletion):
(WebKit::StorageAreaImpl::sessionChanged):
- Storage/StorageAreaImpl.h:
- 1:37 PM Changeset in webkit [276658] by
-
- 3 edits in trunk/Source/WebKit
Enforce IOKit filtering
https://bugs.webkit.org/show_bug.cgi?id=223937
<rdar://problem/76271551>
Reviewed by Brent Fulgham.
Enforce IOKit method filtering based on telemetry. This patch also adds IOKit method telemetry for some Apple Silicion
IOKit classes, which were overlooked in the first telemetry phase.
- Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
- WebProcess/com.apple.WebProcess.sb.in:
- 1:28 PM Changeset in webkit [276657] by
-
- 184 edits in trunk
[iOS][FCR] Add borders for better control visibility
https://bugs.webkit.org/show_bug.cgi?id=225058
<rdar://problem/77161616>
Reviewed by Sam Weinig.
Source/WebCore:
The solid gray backgrounds of new form controls have poor visibility on
site's that have gray-ish backgrounds or draw the controls on top of
a gray area. To fix this, borders are added to all controls to ensure
visibility no matter the background.
The border color is the system background color. This means the border
is invisible on white backgrounds in light mode, and dark backgrounds
in dark mode, ensuring the controls match UIKit styles on backgrounds
where they are guaranteed to be visible. However, these borders are
visible when the page/area background has a similar color to the control
background, improving control visibility.
To paint the borders, a mix of UA stylesheet changes and custom painting
changes are used. This approach is taken to maintain our existing level
of stylability. UA stylesheet changes were applied to controls that
specified a "1px solid black" border in the old design. The border is
now brought back, but with a different color. For controls that have
always had completely custom painting (independent of styles), the
border is painted by the theme.
- css/html.css:
Specify a "1px solid -webkit-control-background" border on controls
that previously (pre-redesign) specified a border in the UA stylesheet.
- css/legacyFormControlsIOS.css:
(select:focus):
Move the <select> focus style into the legacy stylesheet, since it
should not apply to the new design.
- rendering/RenderThemeIOS.mm:
(WebCore::RenderThemeIOS::paintCheckbox):
Paint the checkbox border inside the painting rect, and inset the
actual checkbox by the border. This is necessary, checkboxes use
"box-sizing: border-box", and we do not want to increase the overall
size of checkboxes for compatibility reasons.
(WebCore::RenderThemeIOS::paintRadio):
Painted in a similar manner as checkboxes.
(WebCore::RenderThemeIOS::paintProgressBarWithFormControlRefresh):
(WebCore::RenderThemeIOS::paintMeter):
(WebCore::RenderThemeIOS::paintSliderTrackWithFormControlRefresh):
Slider tracks are already inset by the border size, so we can just
draw a border in the available area.
LayoutTests:
Rebaselined tests to account for changes in appearance.
- accessibility/ios-simulator/unobscured-content-rect-expected.txt:
- accessibility/ios-simulator/unobscured-content-rect.html:
- editing/editable-region/search-field-basic-expected.txt:
- fast/forms/date/date-input-rendering-basic-expected.txt:
- fast/forms/date/date-pseudo-elements-expected.txt:
- fast/forms/ios/form-control-refresh/checkbox/border.html:
Specify a border style, so that the border applies. Note that this test
is currently failing on internal bots.
- fast/forms/ios/form-control-refresh/checkbox/subpixel-clipping-expected-mismatch.html:
- fast/forms/ios/form-control-refresh/checkbox/subpixel-clipping.html:
Add a green background so that the (white) border is visible.
- fast/forms/ios/form-control-refresh/radio/border.html:
- fast/forms/ios/form-control-refresh/radio/subpixel-clipping-expected-mismatch.html:
- fast/forms/ios/form-control-refresh/radio/subpixel-clipping.html:
- fast/forms/time/time-input-rendering-basic-expected.txt:
- platform/ios-simulator/fast/forms/datalist/datalist-searchinput-appearance-expected.txt:
- platform/ios-wk2/compositing/contents-opaque/control-layer-expected.txt:
- platform/ios-wk2/editing/pasteboard/4641033-expected.txt:
- platform/ios-wk2/editing/pasteboard/4944770-1-expected.txt:
- platform/ios-wk2/editing/pasteboard/4944770-2-expected.txt:
- platform/ios-wk2/editing/selection/caret-before-select-expected.txt:
- platform/ios-wk2/fast/block/margin-collapse/103-expected.txt:
- platform/ios-wk2/fast/forms/basic-buttons-expected.txt:
- platform/ios-wk2/fast/forms/targeted-frame-submission-expected.txt:
- platform/ios-wk2/fast/overflow/scroll-nested-positioned-layer-in-overflow-expected.txt:
- platform/ios-wk2/fast/overflow/scrollRevealButton-expected.txt:
- platform/ios-wk2/fast/parser/document-write-option-expected.txt:
- platform/ios-wk2/fast/spatial-navigation/snav-multiple-select-focusring-expected.txt:
- platform/ios-wk2/imported/w3c/web-platform-tests/css/css-pseudo/file-chooser-button-display-toggle-crash.tentative-expected.txt:
- platform/ios-wk2/imported/w3c/web-platform-tests/html/rendering/widgets/baseline-alignment-and-overflow.tentative-expected.txt:
- platform/ios-wk2/imported/w3c/web-platform-tests/html/rendering/widgets/button-layout/abspos-expected.txt:
- platform/ios-wk2/imported/w3c/web-platform-tests/html/rendering/widgets/select-wrap-no-spill.optional-expected.txt:
- platform/ios/css2.1/20110323/replaced-elements-001-expected.txt:
- platform/ios/css3/flexbox/button-expected.txt:
- platform/ios/editing/selection/3690703-2-expected.txt:
- platform/ios/editing/selection/3690703-expected.txt:
- platform/ios/editing/selection/3690719-expected.txt:
- platform/ios/editing/selection/4397952-expected.txt:
- platform/ios/editing/selection/5240265-expected.txt:
- platform/ios/editing/selection/replaced-boundaries-3-expected.txt:
- platform/ios/editing/selection/select-box-expected.txt:
- platform/ios/editing/selection/select-element-paragraph-boundary-expected.txt:
- platform/ios/editing/selection/selection-button-text-expected.txt:
- platform/ios/fast/block/float/float-avoidance-expected.txt:
- platform/ios/fast/block/positioning/inline-block-relposition-expected.txt:
- platform/ios/fast/css/continuationCrash-expected.txt:
- platform/ios/fast/css/focus-ring-exists-for-search-field-expected.txt:
- platform/ios/fast/css/input-search-padding-expected.txt:
- platform/ios/fast/css/margin-top-bottom-dynamic-expected.txt:
- platform/ios/fast/css/rtl-ordering-expected.txt:
- platform/ios/fast/css/text-input-with-webkit-border-radius-expected.txt:
- platform/ios/fast/css/text-overflow-input-expected.txt:
- platform/ios/fast/css/text-transform-select-expected.txt:
- platform/ios/fast/dom/HTMLTableColElement/resize-table-using-col-width-expected.txt:
- platform/ios/fast/dom/HTMLTextAreaElement/reset-textarea-expected.txt:
- platform/ios/fast/dynamic/positioned-movement-with-positioned-children-expected.txt:
- platform/ios/fast/forms/001-expected.txt:
- platform/ios/fast/forms/003-expected.txt:
- platform/ios/fast/forms/004-expected.txt:
- platform/ios/fast/forms/basic-selects-expected.txt:
- platform/ios/fast/forms/blankbuttons-expected.txt:
- platform/ios/fast/forms/box-shadow-override-expected.txt:
- platform/ios/fast/forms/button-align-expected.txt:
- platform/ios/fast/forms/button-cannot-be-nested-expected.txt:
- platform/ios/fast/forms/button-default-title-expected.txt:
- platform/ios/fast/forms/button-generated-content-expected.txt:
- platform/ios/fast/forms/button-positioned-expected.txt:
- platform/ios/fast/forms/button-sizes-expected.txt:
- platform/ios/fast/forms/button-style-color-expected.txt:
- platform/ios/fast/forms/button-table-styles-expected.txt:
- platform/ios/fast/forms/button-text-transform-expected.txt:
- platform/ios/fast/forms/button-white-space-expected.txt:
- platform/ios/fast/forms/control-clip-expected.txt:
- platform/ios/fast/forms/control-clip-overflow-expected.txt:
- platform/ios/fast/forms/control-restrict-line-height-expected.txt:
- platform/ios/fast/forms/disabled-select-change-index-expected.txt:
- platform/ios/fast/forms/file/file-input-direction-expected.txt:
- platform/ios/fast/forms/file/file-input-disabled-expected.txt:
- platform/ios/fast/forms/form-element-geometry-expected.txt:
- platform/ios/fast/forms/formmove3-expected.txt:
- platform/ios/fast/forms/hidden-listbox-expected.txt:
- platform/ios/fast/forms/input-appearance-height-expected.txt:
- platform/ios/fast/forms/input-button-sizes-expected.txt:
- platform/ios/fast/forms/input-first-letter-expected.txt:
- platform/ios/fast/forms/input-value-expected.txt:
- platform/ios/fast/forms/listbox-bidi-align-expected.txt:
- platform/ios/fast/forms/listbox-scrollbar-incremental-load-expected.txt:
- platform/ios/fast/forms/listbox-width-change-expected.txt:
- platform/ios/fast/forms/menulist-clip-expected.txt:
- platform/ios/fast/forms/menulist-deselect-update-expected.txt:
- platform/ios/fast/forms/menulist-narrow-width-expected.txt:
- platform/ios/fast/forms/menulist-no-overflow-expected.txt:
- platform/ios/fast/forms/menulist-option-wrap-expected.txt:
- platform/ios/fast/forms/menulist-restrict-line-height-expected.txt:
- platform/ios/fast/forms/menulist-separator-painting-expected.txt:
- platform/ios/fast/forms/menulist-style-color-expected.txt:
- platform/ios/fast/forms/menulist-width-change-expected.txt:
- platform/ios/fast/forms/option-script-expected.txt:
- platform/ios/fast/forms/option-strip-whitespace-expected.txt:
- platform/ios/fast/forms/option-text-clip-expected.txt:
- platform/ios/fast/forms/placeholder-pseudo-style-expected.txt:
- platform/ios/fast/forms/search-cancel-button-style-sharing-expected.txt:
- platform/ios/fast/forms/search-display-none-cancel-button-expected.txt:
- platform/ios/fast/forms/search-input-rtl-expected.txt:
- platform/ios/fast/forms/search/search-zoom-computed-style-height-expected.txt:
- platform/ios/fast/forms/select-align-expected.txt:
- platform/ios/fast/forms/select-background-none-expected.txt:
- platform/ios/fast/forms/select-baseline-expected.txt:
- platform/ios/fast/forms/select-block-background-expected.txt:
- platform/ios/fast/forms/select-change-listbox-size-expected.txt:
- platform/ios/fast/forms/select-change-listbox-to-popup-expected.txt:
- platform/ios/fast/forms/select-change-popup-to-listbox-expected.txt:
- platform/ios/fast/forms/select-dirty-parent-pref-widths-expected.txt:
- platform/ios/fast/forms/select-disabled-appearance-expected.txt:
- platform/ios/fast/forms/select-element-focus-ring-expected.txt:
- platform/ios/fast/forms/select-empty-option-height-expected.txt:
- platform/ios/fast/forms/select-initial-position-expected.txt:
- platform/ios/fast/forms/select-list-box-with-height-expected.txt:
- platform/ios/fast/forms/select-selected-expected.txt:
- platform/ios/fast/forms/select-style-expected.txt:
- platform/ios/fast/forms/select-visual-hebrew-expected.txt:
- platform/ios/fast/forms/select-writing-direction-natural-expected.txt:
- platform/ios/fast/forms/select/optgroup-rendering-expected.txt:
- platform/ios/fast/forms/selectlist-minsize-expected.txt:
- platform/ios/fast/forms/stuff-on-my-optgroup-expected.txt:
- platform/ios/fast/html/details-replace-summary-child-expected.txt:
- platform/ios/fast/html/details-replace-text-expected.txt:
- platform/ios/fast/html/keygen-expected.txt:
- platform/ios/fast/invalid/014-expected.txt:
- platform/ios/fast/replaced/replaced-breaking-expected.txt:
- platform/ios/fast/replaced/replaced-breaking-mixture-expected.txt:
- platform/ios/fast/replaced/three-selects-break-expected.txt:
- platform/ios/fast/replaced/width100percent-button-expected.txt:
- platform/ios/fast/replaced/width100percent-menulist-expected.txt:
- platform/ios/fast/replaced/width100percent-searchfield-expected.txt:
- platform/ios/fast/selectors/064-expected.txt:
- platform/ios/fast/table/append-cells2-expected.txt:
- platform/ios/fast/table/remove-td-display-none-expected.txt:
- platform/ios/fast/text/drawBidiText-expected.txt:
- platform/ios/fast/text/international/bidi-listbox-atsui-expected.txt:
- platform/ios/fast/text/international/bidi-listbox-expected.txt:
- platform/ios/fast/text/international/bidi-menulist-expected.txt:
- platform/ios/fast/text/international/hindi-spacing-expected.txt:
- platform/ios/fast/text/international/pop-up-button-text-alignment-and-direction-expected.txt:
- platform/ios/svg/custom/foreign-object-skew-expected.txt:
- platform/ios/svg/custom/inline-svg-in-xhtml-expected.txt:
- platform/ios/tables/mozilla/bugs/bug1188-expected.txt:
- platform/ios/tables/mozilla/bugs/bug1318-expected.txt:
- platform/ios/tables/mozilla/bugs/bug138725-expected.txt:
- platform/ios/tables/mozilla/bugs/bug18359-expected.txt:
- platform/ios/tables/mozilla/bugs/bug2479-2-expected.txt:
- platform/ios/tables/mozilla/bugs/bug2479-3-expected.txt:
- platform/ios/tables/mozilla/bugs/bug2479-4-expected.txt:
- platform/ios/tables/mozilla/bugs/bug26178-expected.txt:
- platform/ios/tables/mozilla/bugs/bug28928-expected.txt:
- platform/ios/tables/mozilla/bugs/bug29326-expected.txt:
- platform/ios/tables/mozilla/bugs/bug33855-expected.txt:
- platform/ios/tables/mozilla/bugs/bug39209-expected.txt:
- platform/ios/tables/mozilla/bugs/bug4382-expected.txt:
- platform/ios/tables/mozilla/bugs/bug4429-expected.txt:
- platform/ios/tables/mozilla/bugs/bug44505-expected.txt:
- platform/ios/tables/mozilla/bugs/bug46368-1-expected.txt:
- platform/ios/tables/mozilla/bugs/bug46368-2-expected.txt:
- platform/ios/tables/mozilla/bugs/bug51037-expected.txt:
- platform/ios/tables/mozilla/bugs/bug51727-expected.txt:
- platform/ios/tables/mozilla/bugs/bug52505-expected.txt:
- platform/ios/tables/mozilla/bugs/bug52506-expected.txt:
- platform/ios/tables/mozilla/bugs/bug60749-expected.txt:
- platform/ios/tables/mozilla/bugs/bug68912-expected.txt:
- platform/ios/tables/mozilla/bugs/bug7342-expected.txt:
- platform/ios/tables/mozilla/bugs/bug92647-2-expected.txt:
- platform/ios/tables/mozilla/bugs/bug96334-expected.txt:
- platform/ios/tables/mozilla/collapsing_borders/bug41262-4-expected.txt:
- platform/ios/tables/mozilla/core/margins-expected.txt:
- platform/ios/tables/mozilla/dom/tableDom-expected.txt:
- platform/ios/tables/mozilla/other/move_row-expected.txt:
- platform/ios/tables/mozilla_expected_failures/bugs/bug1725-expected.txt:
- platform/ios/tables/mozilla_expected_failures/bugs/bug2479-5-expected.txt:
- platform/ios/tables/mozilla_expected_failures/bugs/bug58402-2-expected.txt:
- platform/ios/tables/mozilla_expected_failures/collapsing_borders/bug41262-5-expected.txt:
- platform/ios/tables/mozilla_expected_failures/collapsing_borders/bug41262-6-expected.txt:
- platform/ios/transforms/2d/zoom-menulist-expected.txt:
- 1:04 PM Changeset in webkit [276656] by
-
- 98 edits7 adds in trunk
[WebIDL]
window.CSSshould be non-callable object with correct Symbol.toStringTag
https://bugs.webkit.org/show_bug.cgi?id=220855
Reviewed by Sam Weinig.
LayoutTests/imported/w3c:
- web-platform-tests/console/idlharness.any-expected.txt:
- web-platform-tests/console/idlharness.any.worker-expected.txt:
- web-platform-tests/css/cssom/CSS-namespace-object-class-string-expected.txt:
- web-platform-tests/css/cssom/idlharness-expected.txt:
- web-platform-tests/resources/idlharness.js:
Sync from upstream 15ecbfebd504.
- web-platform-tests/wasm/jsapi/idlharness.any-expected.txt:
- web-platform-tests/wasm/jsapi/idlharness.any.worker-expected.txt:
Source/WebCore:
Although
window.CSSis the only namespace object currently handled by code generator,
it's being extended by multiple Houdini specs [1], so keeping it generated is important.
This patch brings spec compliance [2] and web interop while striking a balance between
reducing generated code, avoiding indirection in the generator, and a small code diff.
Feature-wise, a namespace object is a subset of an interface; so instead of creating a
separate harness for it, like for callback interfaces, namespace objects are converted
to interfaces before being handed over to code generator, with a flag on.
While we can reduce the generated code even further, namely around subspaceForImpl(),
this change rather aligns namespace objects with [JSBuiltin] interfaces to avoid making
generator more complicated and introducing an interface with distinct set of methods.
Web-facing changes for
window.CSSare:
- Removed Call and Construct methods, making
typeof CSSreturn "object", which is used for feature detection (thus important for web interop). - Removed "length" / "name" / "prototype" properties.
- Changed Prototype value to %Object.prototype%.
- Added Symbol.toStringTag property with correct descriptor.
All of the above were proven web-compatible by Blink and Gecko.
Also, this patch limits the usage of NeedsConstructorProperty only to
%Interface%.prototype.constructor, as its name suggests.
[1] https://ishoudinireadyyet.com
[2] https://heycam.github.io/webidl/#namespace-object
Tests: imported/w3c/web-platform-tests/css/cssom/idlharness.html
imported/w3c/web-platform-tests/css/cssom/CSS-namespace-object-class-string.html
- WebCore.xcodeproj/project.pbxproj:
- bindings/js/JSDOMConstructorNotCallable.h: Added.
(WebCore::JSDOMConstructorNotCallable::subspaceFor):
(WebCore::JSDOMConstructorNotCallable::JSDOMConstructorNotCallable):
(WebCore::JSDOMConstructorNotCallable::initializeProperties):
(WebCore::JSDOMConstructorNotCallable<JSClass>::create):
(WebCore::JSDOMConstructorNotCallable<JSClass>::createStructure):
(WebCore::JSDOMConstructorNotCallable<JSClass>::finishCreation):
- bindings/scripts/CodeGeneratorJS.pm:
(NeedsImplementationClass):
(GenerateHeader):
(GenerateImplementation):
(GeneratePrototypeDeclaration):
(GetConstructorTemplateClassName):
(GenerateConstructorHelperMethods):
(NeedsConstructorProperty):
- bindings/scripts/IDLAttributes.json:
- bindings/scripts/IDLParser.pm:
(convertNamespaceToInterface):
(Parse):
(parseNamespace):
- bindings/scripts/preprocess-idls.pl:
(containsInterfaceOrCallbackInterfaceFromIDL):
(getInterfaceExtendedAttributesFromIDL):
- bindings/scripts/test/JS/*: Updated.
- css/DOMCSSNamespace+CSSPainting.idl:
- css/DOMCSSNamespace+CSSPropertiesandValues.idl:
- css/DOMCSSNamespace.idl:
- 12:49 PM Changeset in webkit [276655] by
-
- 8 edits in trunk/Source/JavaScriptCore
StructureStubInfo and PolymorphicAccess should account for their non-GC memory
https://bugs.webkit.org/show_bug.cgi?id=225113
Reviewed by Mark Lam.
We don't pass the ConcurrentJSLocker to the helper methods here since the
DECLARE_VISIT_AGGREGATE macro does not allow for extra parameters to be passed.
I filed https://bugs.webkit.org/show_bug.cgi?id=225114 to track that.
- bytecode/CodeBlock.cpp:
(JSC::CodeBlock::JITData::size const):
- bytecode/PolymorphicAccess.cpp:
(JSC::PolymorphicAccess::extraMemoryInBytes const):
- bytecode/PolymorphicAccess.h:
- bytecode/StructureStubInfo.cpp:
(JSC::StructureStubInfo::extraMemoryInBytes):
- bytecode/StructureStubInfo.h:
- 12:41 PM Changeset in webkit [276654] by
-
- 2 edits in trunk/Tools
[ews] Configure bots for stress test queue
https://bugs.webkit.org/show_bug.cgi?id=225000
Reviewed by Aakash Jain.
- CISupport/ews-build/config.json: Add ews181 and ews182.
- 12:02 PM Changeset in webkit [276653] by
-
- 14 edits in trunk/Source
Don't keep local storage data in memory in the NetworkProcess
https://bugs.webkit.org/show_bug.cgi?id=225065
Reviewed by Alex Christensen.
Source/WebCore:
- platform/sql/SQLiteDatabase.h:
- platform/sql/SQLiteFileSystem.h:
Export a couple more symbols.
- storage/StorageMap.cpp:
(WebCore::StorageMap::clear):
- storage/StorageMap.h:
Add a clear() function to StorageMap so that StorageArea doesn't reconstruct a
new StorageMap object unnecessarily when:
- The StorageMap is not shared
- The StorageMap is empty (and clear() is a no-op)
Source/WebKit:
When a WebPage would start to use the local storage API, the WebProcess
would send a sync IPC to the NetworkProcess to retrieve all the local
storage entries for the origin. The NetworkProcess would read those
entries from a SQLite database and send them back to the WebProcess.
Both the NetworkProcess would keep the entries in memory, in a
StorageMap object (which is basically a HashMap). On some sites, the
strings in the local storage may be very large. It is useful for the
WebProcess to keep them in memory for performance reasons, especially
considering that the Web API is synchronous. However, there is no real
need to keep them in memory in the Network Process side, especially
given that the WebProcess already has its own copy. On the network
process side, we can get rid of the StorageMap entirely in the local
storage case and 100% rely on the SQLite database. This is what this
patch implements.
A/B testing shows this is a 2-3% progression on Membuster. There does
not appear to be a meaningful progression on PLUM sadly. This is also
neutral on PLT.
- NetworkProcess/WebStorage/LocalStorageDatabase.cpp:
(WebKit::estimateEntrySize):
(WebKit::LocalStorageDatabase::create):
(WebKit::LocalStorageDatabase::LocalStorageDatabase):
(WebKit::LocalStorageDatabase::openDatabase):
(WebKit::LocalStorageDatabase::tryToOpenDatabase):
(WebKit::LocalStorageDatabase::items const):
(WebKit::LocalStorageDatabase::removeItem):
(WebKit::LocalStorageDatabase::item const):
(WebKit::LocalStorageDatabase::setItem):
(WebKit::LocalStorageDatabase::clear):
(WebKit::LocalStorageDatabase::close):
(WebKit::LocalStorageDatabase::databaseIsEmpty const):
(WebKit::LocalStorageDatabase::openIfExisting):
(WebKit::LocalStorageDatabase::scopedStatement const):
- NetworkProcess/WebStorage/LocalStorageDatabase.h:
- Update LocalStorageDatabase API to match more closely the API of StorageMap. This way StorageArea can rely on the LocalStorageDatabase entirely instead of the StorageMap with minimal changes.
- Add quota support similarly to what is done in StorageArea so that LocalStorageDatabase::setItem() fails when the quota is reached.
- Cache the SQLiteStatements for performance reasons
- NetworkProcess/WebStorage/LocalStorageNamespace.cpp:
(WebKit::LocalStorageNamespace::flushAndClose):
We no longer need to call syncToDatabase() before closing since
LocalStorageDatabase no longer has a queue on pending operations.
- NetworkProcess/WebStorage/StorageArea.cpp:
(WebKit::StorageArea::StorageArea):
(WebKit::StorageArea::addListener):
(WebKit::StorageArea::removeListener):
(WebKit::StorageArea::setItem):
(WebKit::StorageArea::removeItem):
(WebKit::StorageArea::clear):
(WebKit::StorageArea::items const):
(WebKit::StorageArea::ensureDatabase const):
- NetworkProcess/WebStorage/StorageArea.h:
If the StorageArea is used for local storage, we now don't even initialize
a StorageMap and rely entirely on LocalStorageDatabase. If the StorageArea
is used for session storage, we keep using a StorageMap since there is no
backing database. This is fairly straightforward because I updated the
LocalStorageDatabase API to match fairly closely the StorageMap one.
- NetworkProcess/WebStorage/StorageManagerSet.cpp:
(WebKit::StorageManagerSet::waitUntilSyncingLocalStorageFinished):
Source/WebKitLegacy:
- Storage/StorageAreaImpl.cpp:
(WebKit::StorageAreaImpl::clear):
(WebKit::StorageAreaImpl::clearForOriginDeletion):
Use the new StorageMap::clear() to avoid constructing a new StorageMap unnecessarily
when:
- The StorageMap is not shared
- The StorageMap is empty
- 11:52 AM Changeset in webkit [276652] by
-
- 6 edits in trunk
Unreviewed, reverting r275912.
rdar://77179042
Broke internal client
Reverted changeset:
"Remove support for NPAPI plugins in WebView"
https://bugs.webkit.org/show_bug.cgi?id=224449
https://commits.webkit.org/r275912
- 11:52 AM Changeset in webkit [276651] by
-
- 2 edits in trunk/Source/WebKit
[IPC Hardening] Make sure IPC::Decoder constructors consistently call markInvalid() when decoding fails
https://bugs.webkit.org/show_bug.cgi?id=225110
<rdar://76547775>
Reviewed by Darin Adler.
One of the IPC::Decoder constructors was failing to call markInvalid() after failing to
decoder the message name.
- Platform/IPC/Decoder.cpp:
(IPC::m_destinationID):
- 11:50 AM Changeset in webkit [276650] by
-
- 3 edits in trunk/Source/ThirdParty/libwebrtc
Disable WebRTC trace event macros
https://bugs.webkit.org/show_bug.cgi?id=225104
<rdar://76146558>
Reviewed by Eric Carlson.
We are not using trace events so we can disable them as a small optimization.
- Configurations/libwebrtc.xcconfig:
- Configurations/libwebrtcpcrtc.xcconfig:
- 11:39 AM Changeset in webkit [276649] by
-
- 2 edits in trunk/Source/WebCore
SWContextManager::postMessageToServiceWorker should check for valid service worker
https://bugs.webkit.org/show_bug.cgi?id=225096
<rdar://76718162>
Reviewed by Chris Dumez.
There is no guarantee that serviceWorker is not null.
For instance UIProcess may ask WebProcess to terminate all service workers in parallel to network process sending a message to it.
- workers/service/context/SWContextManager.cpp:
(WebCore::SWContextManager::postMessageToServiceWorker):
- 11:13 AM Changeset in webkit [276648] by
-
- 12 edits in trunk/Source
Ask LocalStorage database to free as much memory as possible on memory pressure
https://bugs.webkit.org/show_bug.cgi?id=225109
Reviewed by Geoffrey Garen.
Source/WebCore:
Add releaseMemory() function to SQLiteDatabase that calls sqlite3_db_release_memory()
to free as much memory as possible.
- platform/sql/SQLiteDatabase.cpp:
(WebCore::SQLiteDatabase::releaseMemory):
- platform/sql/SQLiteDatabase.h:
Source/WebKit:
Ask LocalStorage database to free as much memory as possible on memory pressure.
Some of the strings in the database can be large and we don't want SQLite to be
holding on to those for performance reason when we are under memory pressure.
This seems to be a ~1.75% improvement on PLUM/nytimes-home and a ~1% improvement
on PLUM/wikipedia, sadly not enough to show an impact on the overal PLUM score.
- NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::lowMemoryHandler):
- NetworkProcess/NetworkProcess.h:
- NetworkProcess/WebStorage/LocalStorageDatabase.cpp:
(WebKit::LocalStorageDatabase::handleLowMemoryWarning):
- NetworkProcess/WebStorage/LocalStorageDatabase.h:
- NetworkProcess/WebStorage/StorageArea.cpp:
(WebKit::StorageArea::handleLowMemoryWarning):
- NetworkProcess/WebStorage/StorageArea.h:
- NetworkProcess/WebStorage/StorageManagerSet.cpp:
(WebKit::StorageManagerSet::handleLowMemoryWarning):
- NetworkProcess/WebStorage/StorageManagerSet.h:
- 11:10 AM Changeset in webkit [276647] by
-
- 3 edits in trunk/LayoutTests
fast/events/ios/dragstart-on-image-by-long-pressing.html sometimes fails with a text diff
https://bugs.webkit.org/show_bug.cgi?id=225107
rdar://77048635
Reviewed by Darin Adler.
For some reason, when running this layout test in a newly created simulator, the drag cancel preview animation
will finish animating *just* before the "dragend" event is dispatched, which causes the test to fail with a text
diff due to the missingPASS Ended dragoutput.
Address this by making the test robust in both cases (where the animation ends before the page receives
"dragend" and vice versa) by only finishing the test when we've met both conditions.
- fast/events/ios/dragstart-on-image-by-long-pressing-expected.txt:
- fast/events/ios/dragstart-on-image-by-long-pressing.html:
- 10:40 AM Changeset in webkit [276646] by
-
- 2 edits in trunk/Tools
[JSC] Autoscale jobs for remote boards
https://bugs.webkit.org/show_bug.cgi?id=225100
Reviewed by Mark Lam.
When using --gnu-parallel-runner, let GNU parallel handle the number of jobs
unless the user has explicitly requested a specific number of remote processes.
Previously, run-jsc-stress-tests would set numChildProcesses by querying the
first remote, under the assumption that the remotes are homogeneous. The number
of jobs inferred by looking at the CPUs of the first remote may be
inappropriate for the rest of the remotes.
- Scripts/run-jsc-stress-tests:
- 10:18 AM Changeset in webkit [276645] by
-
- 9 edits in trunk
[CMake] Don't use FORWARDING_HEADERS_DIR for GTK WebKit headers
https://bugs.webkit.org/show_bug.cgi?id=225006
Reviewed by Michael Catanzaro.
.:
Create CMake variables WebKit2Gtk_FRAMEWORK_HEADERS_DIR and WebKit2Gtk_DERIVED_SOURCES_DIR
to represent where the WebKit2 GTK headers and derived sources will reside. The names and
locations set then follow along with the conventions used for the other frameworks.
- Source/cmake/OptionsGTK.cmake:
Source/WebInspectorUI:
Use WebKit2Gtk_FRAMEWORK_HEADERS_DIR and WebKit2Gtk_DERIVED_SOURCES_DIR for WebKit2 GTK
headers instead of FORWARDING_HEADERS_DIR and DERIVED_SOURCES_DIR.
- PlatformGTK.cmake:
Source/WebKit:
Use WebKit2Gtk_FRAMEWORK_HEADERS_DIR and WebKit2Gtk_DERIVED_SOURCES_DIR for WebKit2 GTK
headers instead of FORWARDING_HEADERS_DIR and DERIVED_SOURCES_DIR.
- PlatformGTK.cmake:
Tools:
Use WebKit2Gtk_FRAMEWORK_HEADERS_DIR and WebKit2Gtk_DERIVED_SOURCES_DIR for WebKit2 GTK
headers instead of FORWARDING_HEADERS_DIR and DERIVED_SOURCES_DIR.
- MiniBrowser/gtk/CMakeLists.txt:
- TestWebKitAPI/glib/PlatformGTK.cmake:
- 10:08 AM Changeset in webkit [276644] by
-
- 10 edits in trunk/Source
[iOS] [GPU] The UI process should issue the mach sandbox extension to 'com.apple.AGXCompilerService'
https://bugs.webkit.org/show_bug.cgi?id=225004
<rdar://problem/68362930>
Reviewed by Darin Adler.
In Bug 203915 and Bug 210616 we did work to only extend access to AGX-related graphics facilities on relevant hardware. This was
lost in the transition to the GPU Process and should be added back.
Source/WebCore:
This change moves the definition of the AGX-related services and IOKit classes to the AGXCompilerService compilation unit so that
it can be shared by the WebContent and GPUProcess code paths.
Tested by existing graphics tests.
- platform/cocoa/AGXCompilerService.cpp:
(WebCore::agxCompilerServices):
(WebCore::agxCompilerClasses):
- platform/cocoa/AGXCompilerService.h:
Source/WebKit:
This change does the following:
- Adds sandbox extension handles for the AGX-related compiler services and IOKit classes to the GPUProcess creation parameters.
- Updates the GPUProcessProxy to extend AGX features when warranted and add them to the creation parameter structure.
- Updates the GPUProcess to consume the extensions (when granted).
- Updates the WebProcessPool to use the WebCore version of the 'agxCompilerClasses' and 'agxCompilerServices' functions.
- Moves the 'agxCompilerClasses' and 'agxCompilerServices' functions to WebCore, alongside the other AGX functions.
It also corrects the sandbox rule for the AGXCompilerService in the GPU Process sandbox, which incorrectly called it a 'global-name',
when it is an xpc-service.
Tested by existing graphics tests.
- GPUProcess/GPUProcess.cpp:
(WebKit::GPUProcess::initializeGPUProcess):
- GPUProcess/GPUProcessCreationParameters.cpp:
(WebKit::GPUProcessCreationParameters::encode const):
(WebKit::GPUProcessCreationParameters::decode):
- GPUProcess/GPUProcessCreationParameters.h:
- Resources/SandboxProfiles/ios/com.apple.WebKit.GPU.sb: Correct AGX compiler service type.
- UIProcess/Cocoa/WebProcessPoolCocoa.mm:
(WebKit::nonBrowserServices):
(WebKit::WebProcessPool::platformInitializeWebProcess):
(WebKit::agxCompilerClasses): Deleted.
(WebKit::agxCompilerServices): Deleted.
- UIProcess/GPU/GPUProcessProxy.cpp:
(WebKit::GPUProcessProxy::GPUProcessProxy):
- 9:40 AM Changeset in webkit [276643] by
-
- 4 edits in trunk
Correctly interpolate stroke-dasharray in the discrete case
https://bugs.webkit.org/show_bug.cgi?id=225105
Reviewed by Antti Koivisto.
LayoutTests/imported/w3c:
Mark 3 WPT progressions.
- web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-002-expected.txt:
Source/WebCore:
- animation/CSSPropertyAnimation.cpp:
(WebCore::blendFunc):
- 9:23 AM Changeset in webkit [276642] by
-
- 8 edits in branches/safari-611-branch/Source
Versioning.
WebKit-7611.2.6
- 9:18 AM Changeset in webkit [276641] by
-
- 2 edits in trunk/Source/WebKit
AX: Smart invert>Safari>images & other colors improperly invert
https://bugs.webkit.org/show_bug.cgi?id=225077
<rdar://problem/77176061>
Reviewed by Alan Bujtas.
The invert colors property is gathered during the screen data collection phase.
So properly update the value in WebCore, we need to resend these properties when
accessibility settings change.
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::accessibilitySettingsDidChange):
- 8:34 AM Changeset in webkit [276640] by
-
- 2 edits in trunk/Websites/bugs.webkit.org
Bugzilla needs to linkify identifiers (Part 2)
https://bugs.webkit.org/show_bug.cgi?id=224312
<rdar://problem/75845629>
Reviewed by Aakash Jain.
- extensions/Commits/Extension.pm:
(bug_format_comment): Add regex to replace identifiers with a commits.webkit.org link.
(_replace_reference): This function replaces both revisions and identifiers.
(_replace_revision): Renamed _replace_reference.
- 8:29 AM Changeset in webkit [276639] by
-
- 4 edits in trunk
Fix animation of the visibility CSS property between "hidden" and "collapse"
https://bugs.webkit.org/show_bug.cgi?id=225103
Reviewed by Antti Koivisto.
LayoutTests/imported/w3c:
Mark 1 WPT progression.
- web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-002-expected.txt:
Source/WebCore:
The Web Animations spec details the special behavior when animating the visibility property
in https://drafts.csswg.org/web-animations-1/#animating-visibility. There it says that when
interpolating between non-visible values, we should use discrete interpolation formula.
- animation/CSSPropertyAnimation.cpp:
(WebCore::blendFunc):
- 7:25 AM Changeset in webkit [276638] by
-
- 6 edits in trunk
Correctly specify interpolation of page-break-* properties
https://bugs.webkit.org/show_bug.cgi?id=225098
Reviewed by Antti Koivisto.
LayoutTests/imported/w3c:
Mark 15 WPT progressions.
- 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:
As it turns out the page-break-* properties are shorthands of the break-* properties.
- animation/CSSPropertyAnimation.cpp:
(WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap):
- 7:06 AM Changeset in webkit [276637] by
-
- 3 edits2 adds in trunk
[RenderTreeBuilder] ASSERTION FAILED: ancestor->style().columnSpan() != ColumnSpan::All !isValidColumnSpanner(fragmentedFlow, *ancestor) in WebCore::isValidColumnSpanner https://bugs.webkit.org/show_bug.cgi?id=225078
<rdar://76127681>
Reviewed by Antti Koivisto.
Source/WebCore:
MultiColumnBuilder::multiColumnDescendantInserted() expects up-to-date fragmentedFlowState on the newly inserted renderer.
Test: fast/multicol/nested-spanner-assert.html
- rendering/updating/RenderTreeBuilder.cpp:
(WebCore::RenderTreeBuilder::normalizeTreeAfterStyleChange):
(WebCore::RenderTreeBuilder::childFlowStateChangesAndAffectsParentBlock):
LayoutTests:
- fast/multicol/nested-spanner-assert-expected.txt: Added.
- fast/multicol/nested-spanner-assert.html: Added.
- 7:02 AM Changeset in webkit [276636] by
-
- 4 edits in trunk/Tools
Rename slave to worker in TestFailures
https://bugs.webkit.org/show_bug.cgi?id=225079
Reviewed by Jonathan Bedard.
- CISupport/build-webkit-org/public_html/TestFailures/scripts/Builder.js:
- CISupport/build-webkit-org/public_html/TestFailures/scripts/builders_unittests.js:
- CISupport/build-webkit-org/public_html/TestFailures/scripts/results_unittests.js:
- 4:50 AM Changeset in webkit [276635] by
-
- 5 edits1 delete in trunk
[Flatpak SDK] Direct AVIF loading does not work.
https://bugs.webkit.org/show_bug.cgi?id=222867
Patch by Philippe Normand <pnormand@igalia.com> on 2021-04-27
Reviewed by Michael Catanzaro.
Source/WebKit:
- NetworkProcess/soup/NetworkDataTaskSoup.cpp:
(WebKit::NetworkDataTaskSoup::didGetFileInfo): Use mime-type reported for local files by gio
only as a last resort. Our MIMETypeRegistry is more reliable in these cases.
Tools/buildstream:
- elements/sdk-platform.bst:
- elements/sdk/intltool.bst: Removed.
- elements/sdk/shared-mime-info.bst: Bump to version 2.1 which has support for detecting AVIF bitstreams.
- 3:15 AM Changeset in webkit [276634] by
-
- 4 edits in trunk
[css-flexbox] percent children don't resolve against the flex basis on a fully inflexible item with fixed flex-basis
https://bugs.webkit.org/show_bug.cgi?id=210478
Reviewed by Darin Adler.
Source/WebCore:
Flexbox spec defines some additional cases where sizes could be considered definite despite they are
actually indefinite. One of those cases is whenever we have a fully inflexible item with a definite
flex-basis. In that case we should allow desdendants of flex item to resolve against the post-flexing
size of the flex item which is basically the value of the definite flex-basis. Note that in the majority
of cases those percentages are resolved before flexing the item and not recomputed after that.
- rendering/RenderFlexibleBox.cpp:
(WebCore::RenderFlexibleBox::useChildOverridingMainSizeForPercentageResolution): let descendants of
fully inflexible flex items with definite flex-basis to resolve against the post-flexing size. Also added
some documentation because that part of the code is far from obvious for the casual reader.
LayoutTests:
- TestExpectations: Unskipped a couple of tests that are passing now.
- 3:04 AM Changeset in webkit [276633] by
-
- 13 edits in trunk/Source
Add memory allocation checks in more realtime audio capture/rendering places
https://bugs.webkit.org/show_bug.cgi?id=224750
Reviewed by Eric Carlson.
Source/WebCore:
Add FastMalloc macros to catch memory allocation in audio sensitive threads.
Update LibWebRTCAudioModule and RealtimeIncomingAudioSourceCocoa to not rely on Function creation but rely on Timer for large audio gap logging.
Update BaseAudioSharedUnit to not allocate a vector each time an audio sample is captured.
Covered by existing tests.
- platform/mediastream/RealtimeIncomingAudioSource.h:
- platform/mediastream/libwebrtc/LibWebRTCAudioModule.cpp:
(WebCore::LibWebRTCAudioModule::LibWebRTCAudioModule):
(WebCore::LibWebRTCAudioModule::StartPlayout):
(WebCore::LibWebRTCAudioModule::StopPlayout):
(WebCore::LibWebRTCAudioModule::logTimerFired):
(WebCore::LibWebRTCAudioModule::computeDelayUntilNextPolling):
(WebCore::LibWebRTCAudioModule::pollAudioData):
- platform/mediastream/libwebrtc/LibWebRTCAudioModule.h:
- platform/mediastream/mac/AudioMediaStreamTrackRendererCocoa.cpp:
(WebCore::AudioMediaStreamTrackRendererCocoa::pushSamples):
- platform/mediastream/mac/BaseAudioSharedUnit.cpp:
(WebCore::BaseAudioSharedUnit::addClient):
(WebCore::BaseAudioSharedUnit::removeClient):
(WebCore::BaseAudioSharedUnit::audioSamplesAvailable):
- platform/mediastream/mac/BaseAudioSharedUnit.h:
- platform/mediastream/mac/RealtimeIncomingAudioSourceCocoa.cpp:
(WebCore::RealtimeIncomingAudioSourceCocoa::RealtimeIncomingAudioSourceCocoa):
(WebCore::RealtimeIncomingAudioSourceCocoa::startProducingData):
(WebCore::RealtimeIncomingAudioSourceCocoa::stopProducingData):
(WebCore::RealtimeIncomingAudioSourceCocoa::logTimerFired):
(WebCore::RealtimeIncomingAudioSourceCocoa::OnData):
- platform/mediastream/mac/RealtimeIncomingAudioSourceCocoa.h:
Source/WebKit:
- UIProcess/Cocoa/UserMediaCaptureManagerProxy.cpp:
- WebProcess/GPU/webrtc/AudioMediaStreamTrackRenderer.cpp:
(WebKit::AudioMediaStreamTrackRenderer::pushSamples):
(WebKit::AudioMediaStreamTrackRenderer::storageChanged):
- 1:11 AM Changeset in webkit [276632] by
-
- 3 edits in trunk/JSTests
[JSC] Skip tests failing on Loongson 3A4000
https://bugs.webkit.org/show_bug.cgi?id=225091
Reviewed by Yusuke Suzuki.
This new hardware is much faster when it comes to running JSC tests (and
hopefully more reliable than the ci20 boards currently in use), so skip the
couple of tests that fail, so that we can test the Loongson box in production.
- ChakraCore.yaml:
- stress/arguments-properties-order.js:
- 12:42 AM Changeset in webkit [276631] by
-
- 3 edits2 adds in trunk
Check globalObject for null
https://bugs.webkit.org/show_bug.cgi?id=223793
Patch by Rob Buis <rbuis@igalia.com> on 2021-04-27
Reviewed by Youenn Fablet.
Source/WebCore:
Check globalObject for null in RTCRtpSFrameTransform::createStreams
before deferencing.
Test: http/tests/webrtc/sframe-transform-write.html
- Modules/mediastream/RTCRtpSFrameTransform.cpp:
(WebCore::RTCRtpSFrameTransform::createStreams):
LayoutTests:
- http/tests/webrtc/sframe-transform-write-expected.txt: Added.
- http/tests/webrtc/sframe-transform-write.html: Added.
- 12:36 AM Changeset in webkit [276630] by
-
- 3 edits2 adds in trunk
[MathML] Assertion failure in RenderTreeNeedsLayoutChecker
https://bugs.webkit.org/show_bug.cgi?id=224903
Patch by Frédéric Wang <fwang@igalia.com> on 2021-04-27
Reviewed by Alan Bujtas.
Source/WebCore:
After r226180, RenderMathMLRow no longer performs layout of its "embellished operator"
children only its core <mo> descendant, which is causing dirty layout.
Test: mathml/vertical-embellished-op-dirty-layout.html
- rendering/mathml/RenderMathMLRow.cpp:
(WebCore::RenderMathMLRow::stretchVerticalOperatorsAndLayoutChildren): always layout the
"embellished operator" child, after its core <mo>.
LayoutTests:
Add regression test with all vertical embellished operators (other than <mo>) supported
by WebKit.
- mathml/vertical-embellished-op-dirty-layout-expected.txt: Added.
- mathml/vertical-embellished-op-dirty-layout.html: Added.