Timeline
Dec 3, 2021:
- 10:12 PM Changeset in webkit [286526] by
-
- 13 edits in trunk
[GPU Process] (REGRESSION r285597): Fix SVGFilter clamping calculation
https://bugs.webkit.org/show_bug.cgi?id=233843
Reviewed by Simon Fraser.
Source/WebCore:
In this patch:
- lastEffect() is made virtual function of Filter and it's already implemented as non-virtual function in both CSSFilter and SVGFilter.
- The clamping calculations for SVGFilter and CSSFilter are merged in one function called Filter::clampFilterRegionIfNeeded(). This merge makes the new function is the only caller to FilterEffect::maxEffectRect().
- Remove FilterEffect::maxEffectRect() . It can be calculated by clipping the FilterEffect::filterPrimitiveSubregion() to filterRegion() and then scaling the result by filterScale().
- In RenderSVGResourceFilter::applyResource() we need to pass the non- scaled drawingRegion to ImageBuffer::sizeNeedsClamping() because this function starts by scaling the argument 'size' by the argument 'scale'. So we were doubling the scaling by passing 'absoluteDrawingRegion'
- SVGRenderingContext::createImageBuffer() needs to use ImageBuffer:: sizeNeedsClamping() instead of using ImageBuffer::clampedSize(). The former function clamps the size to the MaxClampedArea. But the later function shrinks the size to { MaxClampedLength, MaxClampedLength }.
- When calling createImageBuffer() from RenderSVGResourceFilter
- applyResource() we do not expect any further clamping. But if we pass a size with a side greater than MaxClampedLength to clampedSize(), it will be clamped even if the area is less than MaxClampedArea. And for filters we clamp to the area.
- platform/graphics/filters/Filter.cpp:
(WebCore::Filter::clampFilterRegionIfNeeded):
- platform/graphics/filters/Filter.h:
- platform/graphics/filters/FilterEffect.cpp:
(WebCore::FilterEffect::determineFilterPrimitiveSubregion):
(WebCore::FilterEffect::apply):
- platform/graphics/filters/FilterEffect.h:
(WebCore::FilterEffect::maxEffectRect const): Deleted.
(WebCore::FilterEffect::setMaxEffectRect): Deleted.
- rendering/CSSFilter.cpp:
(WebCore::CSSFilter::lastEffect const):
(WebCore::CSSFilter::lastEffect): Deleted.
(WebCore::CSSFilter::determineFilterPrimitiveSubregion): Deleted.
- rendering/CSSFilter.h:
- rendering/RenderLayerFilters.cpp:
(WebCore::RenderLayerFilters::beginFilterEffect):
- rendering/svg/RenderSVGResourceFilter.cpp:
(WebCore::RenderSVGResourceFilter::applyResource):
- rendering/svg/SVGRenderingContext.cpp:
(WebCore::SVGRenderingContext::createImageBuffer):
- svg/graphics/filters/SVGFilter.h:
LayoutTests:
Unskip two layout tests which were skipped in r285597.
- 7:30 PM Changeset in webkit [286525] by
-
- 3 edits in trunk/LayoutTests
[GLIB] Gardening some consistent timeouts
Unreviewed test gardening.
- platform/glib/TestExpectations:
- platform/wpe/TestExpectations:
- 7:08 PM Changeset in webkit [286524] by
-
- 1 copy in tags/Safari-612.4.2
Tag Safari-612.4.2.
- 7:05 PM Changeset in webkit [286523] by
-
- 8 edits in branches/safari-612-branch/Source
Versioning.
WebKit-7612.4.2
- 5:35 PM Changeset in webkit [286522] by
-
- 4 edits in trunk
[iOS] Web content process sometimes crashes under WebPage::positionInformation()
https://bugs.webkit.org/show_bug.cgi?id=233841
rdar://85917212
Reviewed by Geoffrey Garen.
Source/WebKit:
Add a missing null check in the case where the hit-tested node is null in
WebPage::positionInformation
. This
can happen in a number of ways (one of which is exercised by the new API test).
Test: ImageAnalysisTests.DoNotCrashWhenHitTestingOutsideOfWebView
- WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::positionInformation):
Tools:
Add a test that exercises hit-testing for Live Text, but induces this crash by hit-testing outside of the bounds
of the web view (such that the hit-tested node ends up as null).
- TestWebKitAPI/Tests/WebKitCocoa/ImageAnalysisTests.mm:
(TestWebKitAPI::swizzledLocationInView):
(TestWebKitAPI::TEST):
- 5:14 PM Changeset in webkit [286521] by
-
- 1 copy in tags/Safari-612.4.1
Tag Safari-612.4.1.
- 4:09 PM Changeset in webkit [286520] by
-
- 2 edits in trunk/Source/WebCore
Add BroadcastChannel, COOP, COEP and Web Locks to features.json
https://bugs.webkit.org/show_bug.cgi?id=233839
Reviewed by Alex Christensen.
- features.json:
- 4:02 PM Changeset in webkit [286519] by
-
- 24 edits in trunk
PCM: Unlinkable tokens for triggering event to prevent fraud
https://bugs.webkit.org/show_bug.cgi?id=233673
<rdar://79426347>
Reviewed by Alex Christensen.
Source/WebCore:
This patch allows triggering events to have an optional query parameter like this:
https://destination.example/.well-known/private-click-measurement/trigger-attribution/11?attributionDestinationNonce=ABCDEFabcdef0123456789
The presence of an attributionDestinationNonce triggers PrivateClickMeasurementManager to
ask the server to sign an unlinkable token for the triggering event and then stores the
corresponding secret token plus the signature for later inclusion in the attribution report.
The WebCore changes introduce these new structs and data fields in
WebCore::PrivateClickMeasurement:
- EphemeralDestinationNonce
- UnlinkableToken (base class for the specific ones for source and destination)
- SourceUnlinkableToken
- DestinationUnlinkableToken
- SecretToken (base class for the specific ones for source and destination)
- SourceSecretToken
- DestinationSecretToken
WebCore::PrivateClickMeasurement::AttributionTriggerData now has these optional fields:
- ephemeralDestinationNonce
- destinationUnlinkableToken
- destinationSecretToken
- destinationSite
The remaining changes are setters/getters and creator functions for those data fields.
New API/unit test PrivateClickMeasurement.DestinationClickFraudPrevention.
- html/HTMLAnchorElement.cpp:
(WebCore::HTMLAnchorElement::parsePrivateClickMeasurement const):
- loader/PrivateClickMeasurement.cpp:
(WebCore::PrivateClickMeasurement::SecretToken::isolatedCopy const):
(WebCore::PrivateClickMeasurement::SourceSecretToken::isolatedCopy const):
(WebCore::PrivateClickMeasurement::DestinationSecretToken::isolatedCopy const):
(WebCore::PrivateClickMeasurement::EphemeralNonce::isolatedCopy const):
(WebCore::PrivateClickMeasurement::UnlinkableToken::isolatedCopy const):
(WebCore::PrivateClickMeasurement::SourceUnlinkableToken::isolatedCopy const):
(WebCore::PrivateClickMeasurement::DestinationUnlinkableToken::isolatedCopy const):
(WebCore::PrivateClickMeasurement::parseAttributionRequestQuery):
(WebCore::PrivateClickMeasurement::parseAttributionRequest):
(WebCore::PrivateClickMeasurement::attributionReportJSON const):
(WebCore::PrivateClickMeasurement::EphemeralNonce::isValid const):
(WebCore::PrivateClickMeasurement::setEphemeralSourceNonce):
(WebCore::PrivateClickMeasurement::tokenPublicKeyURL):
(WebCore::PrivateClickMeasurement::tokenPublicKeyURL const):
(WebCore::PrivateClickMeasurement::tokenSignatureURL):
(WebCore::PrivateClickMeasurement::tokenSignatureURL const):
(WebCore::PrivateClickMeasurement::AttributionTriggerData::tokenSignatureJSON const):
(WebCore::PrivateClickMeasurement::SecretToken::isValid const):
(WebCore::PrivateClickMeasurement::setDestinationSecretToken):
(WebCore::PrivateClickMeasurement::EphemeralSourceNonce::isolatedCopy const): Deleted.
(WebCore::PrivateClickMeasurement::EphemeralSourceNonce::isValid const): Deleted.
(WebCore::PrivateClickMeasurement::SourceSecretToken::isValid const): Deleted.
- loader/PrivateClickMeasurement.h:
(WebCore::PrivateClickMeasurement::AttributionTriggerData::AttributionTriggerData):
(WebCore::PrivateClickMeasurement::AttributionTriggerData::setDestinationUnlinkableTokenValue):
(WebCore::PrivateClickMeasurement::AttributionTriggerData::setDestinationSecretToken):
(WebCore::PrivateClickMeasurement::AttributionTriggerData::tokenPublicKeyURL const):
(WebCore::PrivateClickMeasurement::AttributionTriggerData::tokenSignatureURL const):
(WebCore::PrivateClickMeasurement::ephemeralSourceNonce const):
(WebCore::PrivateClickMeasurement::sourceUnlinkableToken):
(WebCore::PrivateClickMeasurement::decode):
(WebCore::PrivateClickMeasurement::EphemeralNonce::encode const):
(WebCore::PrivateClickMeasurement::EphemeralNonce::decode):
(WebCore::PrivateClickMeasurement::AttributionTriggerData::encode const):
(WebCore::PrivateClickMeasurement::AttributionTriggerData::decode):
(WebCore::PrivateClickMeasurement::EphemeralSourceNonce::encode const): Deleted.
(WebCore::PrivateClickMeasurement::EphemeralSourceNonce::decode): Deleted.
- loader/cocoa/PrivateClickMeasurementCocoa.mm:
(WebCore::PrivateClickMeasurement::calculateAndUpdateSourceUnlinkableToken):
(WebCore::PrivateClickMeasurement::calculateAndUpdateDestinationUnlinkableToken):
(WebCore::PrivateClickMeasurement::calculateAndUpdateUnlinkableToken):
(WebCore::PrivateClickMeasurement::calculateAndUpdateSourceSecretToken):
(WebCore::PrivateClickMeasurement::calculateAndUpdateDestinationSecretToken):
(WebCore::PrivateClickMeasurement::calculateAndUpdateSecretToken):
Source/WebKit:
This patch allows triggering events to have an optional query parameter like this:
https://destination.example/.well-known/private-click-measurement/trigger-attribution/11?attributionDestinationNonce=ABCDEFabcdef0123456789
The presence of an attributionDestinationNonce triggers PrivateClickMeasurementManager to
ask the server to sign an unlinkable token for the triggering event and then stores the
corresponding secret token plus the signature for later inclusion in the attribution report.
New API/unit test PrivateClickMeasurement.DestinationClickFraudPrevention.
- NetworkProcess/DatabaseUtilities.cpp:
(WebKit::DatabaseUtilities::buildPrivateClickMeasurementFromDatabase const):
Now handles destination tokens.
- NetworkProcess/NetworkResourceLoader.cpp:
(WebKit::NetworkResourceLoader::willSendRedirectedRequest):
Now sets destinationSite in WebCore::PrivateClickMeasurement::AttributionTriggerData.
- NetworkProcess/PrivateClickMeasurement/PrivateClickMeasurementDatabase.cpp:
(WebKit::PCM::Database::Database):
Now calls addDestinationTokenColumnsIfNecessary().
(WebKit::PCM::Database::insertPrivateClickMeasurement):
Now does insertion of optional destination tokens.
(WebKit::PCM::Database::addDestinationTokenColumnsIfNecessary):
Database migration.
(WebKit::PCM::Database::addBundleIDColumnIfNecessary): Deleted.
Temporary migration function for non-customer builds. No longer needed.
- NetworkProcess/PrivateClickMeasurement/PrivateClickMeasurementDatabase.h:
- NetworkProcess/PrivateClickMeasurement/PrivateClickMeasurementManager.cpp:
(WebKit::PrivateClickMeasurementManager::storeUnattributed):
Just name changes.
(WebKit::PrivateClickMeasurementManager::getTokenPublicKey):
Not changed afaik. Seems like the diff is confused.
(WebKit::PrivateClickMeasurementManager::configureForTokenSigning):
New function to extract shared code.
(WebKit::PrivateClickMeasurementManager::getSignatureBase64URLFromTokenSignatureResponse):
New function to extract shared code.
(WebKit::PrivateClickMeasurementManager::getSignedUnlinkableTokenForSource):
Renamed to add "ForSource" and all shared code extracted.
(WebKit::PrivateClickMeasurementManager::getSignedUnlinkableTokenForDestination):
Different than for the source in that it results in an attribution call.
(PrivateClickMeasurementManager::handleAttribution):
Now does signing of destination token if the optional nonce is in the triggering event.
(PrivateClickMeasurementManager::fireConversionRequest):
(WebKit::PrivateClickMeasurementManager::setPCMFraudPreventionValuesForTesting):
Added empty initializer strings for the destination test token values not in use yet.
(WebKit::PrivateClickMeasurementManager::getSignedUnlinkableToken): Deleted.
Renamed PrivateClickMeasurementManager::getSignedUnlinkableTokenForSource().
- NetworkProcess/PrivateClickMeasurement/PrivateClickMeasurementManager.h:
Tools:
New test PrivateClickMeasurement.DestinationClickFraudPrevention.
The other changes are a report version bump 2->3 and a name change
FraudPrevention–>SourceClickFraudPrevention.
- TestWebKitAPI/Tests/WebCore/PrivateClickMeasurement.cpp:
(TestWebKitAPI::TEST):
- TestWebKitAPI/Tests/WebCore/cocoa/PrivateClickMeasurementCocoa.mm:
(TestWebKitAPI::TEST):
- TestWebKitAPI/Tests/WebKitCocoa/EventAttribution.mm:
(TestWebKitAPI::runBasicPCMTest):
(TestWebKitAPI::triggerAttributionWithSubresourceRedirect):
Extracted shared code.
(TestWebKitAPI::runDestinationWebView):
Extracted shared code.
(TestWebKitAPI::signUnlinkableTokenAndSendSecretToken):
Extracted shared code.
(TestWebKitAPI::TEST):
New test PrivateClickMeasurement.DestinationClickFraudPrevention.
Extracted shared code from PrivateClickMeasurement.SourceClickFraudPrevention.
LayoutTests:
These changes are a report version bump 2->3.
- http/tests/privateClickMeasurement/attribution-conversion-through-fetch-keepalive-expected.txt:
- http/tests/privateClickMeasurement/expired-attribution-report-gets-sent-on-session-start-expected.txt:
- http/tests/privateClickMeasurement/multiple-app-bundle-ids-expected.txt:
- http/tests/privateClickMeasurement/send-attribution-conversion-request-expected.txt:
- http/tests/privateClickMeasurement/store-private-click-measurement-with-source-nonce-expected.txt:
- http/tests/privateClickMeasurement/triggering-event-with-attribution-source-through-fetch-keepalive-expected.txt:
- platform/ios/http/tests/privateClickMeasurement/attribution-conversion-through-fetch-keepalive-expected.txt:
- 3:42 PM Changeset in webkit [286518] by
-
- 4 edits in trunk/Source/WebCore
[LFC][IFC] Move the (bidi)display boxes horizontally by the inline box margin, border and padding end as needed
https://bugs.webkit.org/show_bug.cgi?id=233744
Reviewed by Antti Koivisto.
Keep track of the inline box range in the context of display boxes so that we can adjust the content horizontally
with the margin/border/padding end of the "last" inline box.
We also set the width of the (fragmented inline box type of) display boxes here based on their content right position.
- layout/formattingContexts/inline/InlineDisplayContentBuilder.cpp:
(WebCore::Layout::InlineDisplayContentBuilder::processBidiContent):
- layout/formattingContexts/inline/display/InlineDisplayBox.h:
(WebCore::InlineDisplay::Box::setLogicalRight):
- layout/layouttree/LayoutBoxGeometry.h:
(WebCore::Layout::BoxGeometry::borderAndPaddingEnd const):
- 3:21 PM Changeset in webkit [286517] by
-
- 3 edits in trunk/Source/WebKit
Fix playstation build after r286484
https://bugs.webkit.org/show_bug.cgi?id=233823
unreviewed build fix.
Patch by ujwal koneru <ujwal.koneru@sony.com> on 2021-12-03
- UIProcess/playstation/WebProcessPoolPlayStation.cpp:
(WebKit::WebProcessPool::platformInitializeWebProcess):
- WebProcess/playstation/WebProcessPlayStation.cpp:
(WebKit::WebProcess::platformInitializeWebProcess):
- 2:48 PM Changeset in webkit [286516] by
-
- 5 edits1 add in trunk/Source/bmalloc
[libpas] Bitfit allocator has a wrong assertion when a page's max_free is enough for the size of an allocation, not enough for that allocation's size class, and the object of that size is not aligned to the currently requested alignment
https://bugs.webkit.org/show_bug.cgi?id=233831
Reviewed by Yusuke Suzuki.
What a combination of conditions:
- We just failed bitfit allocation in a page, which gives us some max_free (aka largest_available), and the allocation had nontrivial alignment.
- The max_free is smaller than the size class.
- The max_free is larger than the requested size.
- The max_free object is not aligned to the requested alignment.
The code handles this fine, but has a wrong assertion about it.
This change fixes the assertion and adds a test that deterministically reproduced the issue.
- libpas/libpas.xcodeproj/project.pbxproj:
- libpas/src/libpas/pas_bitfit_allocator.c:
(pas_bitfit_allocator_finish_failing):
- libpas/src/libpas/pas_bitfit_allocator_inlines.h:
(pas_bitfit_allocator_try_allocate):
- libpas/src/test/BitfitTests.cpp: Added.
(std::getBitfitSizeClasses):
(std::assertSizeClasses):
(std::testAllocateAlignedSmallerThanSizeClassAndSmallerThanLargestAvailable):
(addBitfitTests):
- libpas/src/test/TestHarness.cpp:
(main):
- 1:58 PM Changeset in webkit [286515] by
-
- 1 copy in tags/Safari-613.1.10
Tag Safari-613.1.10.
- 1:46 PM Changeset in webkit [286514] by
-
- 2 edits in trunk/Source/WTF
[WK2] Turn on Web Locks API support
https://bugs.webkit.org/show_bug.cgi?id=233816
Reviewed by Darin Adler.
- Scripts/Preferences/WebPreferencesExperimental.yaml:
- 1:14 PM Changeset in webkit [286513] by
-
- 2 edits in trunk/Source/WebKit
Fix the build
- NetworkProcess/storage/NetworkStorageManager.cpp:
- 1:10 PM Changeset in webkit [286512] by
-
- 4 edits in trunk/Source/WebKit
Add more logging for MomentumEventDispatcher
https://bugs.webkit.org/show_bug.cgi?id=233811
Reviewed by Simon Fraser.
Add a temporary event log to MomentumEventDispatcher, to debug delta/offset/curve issues.
- WebProcess/WebPage/EventDispatcher.h:
(WebKit::EventDispatcher::queue):
- WebProcess/WebPage/MomentumEventDispatcher.cpp:
(WebKit::MomentumEventDispatcher::handleWheelEvent):
Accumulate event deltas. Also accumulate event deltas for the
fingers-down phase in the "generated" offset. Store the phase and
momentum phase smooshed into a single field.
(WebKit::MomentumEventDispatcher::dispatchSyntheticMomentumEvent):
Accumulate generated deltas.
(WebKit::MomentumEventDispatcher::didEndMomentumPhase):
Attempt to dump the log 1 second after each momentum phase. We'll skip
it if another scroll has started since.
(WebKit::MomentumEventDispatcher::setScrollingAccelerationCurve):
(WebKit::MomentumEventDispatcher::startDisplayLink):
(WebKit::MomentumEventDispatcher::stopDisplayLink):
(WebKit::MomentumEventDispatcher::consumeDeltaForCurrentTime):
(WebKit::MomentumEventDispatcher::buildOffsetTableWithInitialDelta):
(WebKit::MomentumEventDispatcher::computeNextDelta):
Adopt more MOMENTUM_EVENT_DISPATCHER_TEMPORARY_LOGGING. Error logging
we leave outside of this, because that we'll keep around.
(WebKit::MomentumEventDispatcher::pushLogEntry):
(WebKit::MomentumEventDispatcher::flushLog):
Dump the event log in an easy-to-copy-into-a-CSV format.
- WebProcess/WebPage/MomentumEventDispatcher.h:
- 12:37 PM Changeset in webkit [286511] by
-
- 2 edits in trunk/Source/WebCore
Fix internal Apple builds
Unreviewed.
Turns out -weak_framework works if the framework isn't present at runtime, but
still requires the framework to be present at build time.
No new tests because there is no behavior change.
- Configurations/WebCore.xcconfig:
- 12:29 PM Changeset in webkit [286510] by
-
- 11 edits in branches/safari-612-branch
Cherry-pick r286505. rdar://problem/85918531
Follow-up to r286479 to add API test and address issues found by the test
https://bugs.webkit.org/show_bug.cgi?id=233798
Reviewed by Darin Adler.
Source/WebKit:
Add functionality needed for API testing and fix issues found by the API test.
- UIProcess/API/Cocoa/WKWebViewPrivateForTesting.h:
- UIProcess/API/Cocoa/WKWebViewTesting.mm: (-[WKWebView _isLayerTreeFrozenForTesting:]):
- UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::destroyProvisionalPage): (WebKit::WebPageProxy::isLayerTreeFrozen):
- UIProcess/WebPageProxy.h:
- WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::isLayerTreeFrozen):
- WebProcess/WebPage/WebPage.h:
- WebProcess/WebPage/WebPage.messages.in: Add new SPI to check if the layer tree is frozen in the WebProcess so that I could write an API test for this.
- UIProcess/ProvisionalPageProxy.cpp: (WebKit::ProvisionalPageProxy::ProvisionalPageProxy): Make sure m_provisionalLoadURL gets initialized when the ProvisionalPageProxy gets constructed *after* the provisional load has already started (which is the case when the process swap is triggered by COOP).
(WebKit::ProvisionalPageProxy::didFailProvisionalLoadForFrame):
If the provisional load load fails in the provisional process, and the ProvisionalPageProxy
was constructed on resource response (COOP case), then no longer forward the
didFailProvisionalLoadForFrame() to the WebPageProxy. Instead, we destroy the
ProvisionalPageProxy. This is to avoid duplicate calls to didFailProvisionalLoadForFrame().
In this case, there is still a provisional load ongoing in the committed process and the
ProvisionalPageProxy destructor will take care of stopping that provisional load (due to
r286479), which will cause the committed process to send its own
didFailProvisionalLoadForFrame IPC.
Tools:
Add API test coverage.
- TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@286505 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 12:29 PM Changeset in webkit [286509] by
-
- 4 edits in branches/safari-612-branch/Source/WebKit
Cherry-pick r286479. rdar://problem/85918531
Regression(r283179) Google Drive freezes after downloading a folder
https://bugs.webkit.org/show_bug.cgi?id=233783
<rdar://85918531>
Reviewed by Darin Adler.
When process-swapping on a navigation response due to COOP, we create a new ProvisionalPageProxy
to trigger a provisional load in a new WebProcess. In the common case, the ProvisionalPageProxy
gets committed, we process-swap and everything works fine. However, if the client decides to
convert the navigation into a download (like in the Google Drive case), then the
ProvisionalPageProxy gets destroyed without being committed. The issue is that the committed
process still thinks at this point that it is in the middle of a navigation and its layer
tree is thus frozen with reason=PageTransition. This is what makes Google Drive look frozen
after the download. This is not an issue with PSON because the process-swap happens in
decidePolicyForNavigationAction() and we tell the previous process to ignore the navigation
when we process-swap.
To address the issue, we now tell the committed process to cancel its navigation if the
ProvisionalPageProxy ends up getting destroyed without being committed. This lets the
committed process know there is no point in waiting for this navigation to happen and allows
it to unfreeze its layer tree.
- UIProcess/ProvisionalPageProxy.cpp: (WebKit::ProvisionalPageProxy::ProvisionalPageProxy): (WebKit::ProvisionalPageProxy::~ProvisionalPageProxy):
- UIProcess/ProvisionalPageProxy.h: (WebKit::ProvisionalPageProxy::isProcessSwappingOnNavigationResponse const): (WebKit::ProvisionalPageProxy::shouldClosePreviousPageAfterCommit const): Deleted.
- UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::commitProvisionalPage): (WebKit::WebPageProxy::continueNavigationInNewProcess):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@286479 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 12:23 PM Changeset in webkit [286508] by
-
- 6 edits in trunk/Source/WebKit
Unreviewed, reverting r286487.
Broke multiple builds.
Reverted changeset:
"Rename DerivedSources/WebKit2 to DerivedSources/WebKit"
https://bugs.webkit.org/show_bug.cgi?id=233803
https://commits.webkit.org/r286487
- 12:17 PM Changeset in webkit [286507] by
-
- 29 edits1 add in trunk
Fetch and remove file system data via WKWebsiteDataStore
https://bugs.webkit.org/show_bug.cgi?id=233567
Reviewed by Youenn Fablet.
Source/WebCore:
- Modules/filesystemaccess/FileSystemStorageConnection.h:
Source/WebKit:
Introduce a new WebsiteDataType value FileSystem for FileSystemAccess data. Network process now can fetch and
delete this type of data when fetching and deleteing website data (if FileSystem type is included in target
types).
To track origins that have FileSystem data, this patch introduces a new file named origin in the origin's
directory. This file will be created when OriginStorageManager is created.
To delete existing FileSystem data, network process finds origins that are requested to be deleted and have data
on disk, closes active access handles, and deletes the files. The origin file mentioned above will be deleted if
there is no other file left in the same directory, and empty directories will be deleted.
New API tests: FileSystemAccess.FetchAndRemoveData
FileSystemAccess.RemoveDataByModificationTime
FileSystemAccess.FetchDataForThirdParty
- CMakeLists.txt:
- DerivedSources-input.xcfilelist:
- DerivedSources-output.xcfilelist:
- DerivedSources.make:
- NetworkProcess/Classifier/WebResourceLoadStatisticsStore.cpp:
(WebKit::WebResourceLoadStatisticsStore::monitoredDataTypes):
- NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::fetchWebsiteData):
(WebKit::NetworkProcess::deleteWebsiteData):
(WebKit::NetworkProcess::deleteWebsiteDataForOrigins):
(WebKit::NetworkProcess::deleteAndRestrictWebsiteDataForRegistrableDomains):
(WebKit::NetworkProcess::registrableDomainsWithWebsiteData):
- NetworkProcess/storage/FileSystemStorageHandle.h:
(WebKit::FileSystemStorageHandle::activeSyncAccessHandle const):
- NetworkProcess/storage/FileSystemStorageManager.cpp:
(WebKit::FileSystemStorageManager::~FileSystemStorageManager):
(WebKit::FileSystemStorageManager::close):
- NetworkProcess/storage/FileSystemStorageManager.h:
- NetworkProcess/storage/NetworkStorageManager.cpp:
(WebKit::readOriginFromFile):
(WebKit::writeOriginToFileIfNecessary):
(WebKit::deleteOriginFileIfNecessary):
(WebKit::originDirectoryPath):
(WebKit::originFilePath):
(WebKit::NetworkStorageManager::localOriginStorageManager):
(WebKit::NetworkStorageManager::removeOriginStorageManagerIfPossible):
(WebKit::toWebsiteDataType):
(WebKit::NetworkStorageManager::forEachOriginDirectory):
(WebKit::NetworkStorageManager::fetchDataFromDisk):
(WebKit::NetworkStorageManager::fetchData):
(WebKit::NetworkStorageManager::deleteDataOnDisk):
(WebKit::NetworkStorageManager::deleteData):
(WebKit::NetworkStorageManager::deleteDataModifiedSince):
(WebKit::NetworkStorageManager::deleteDataForRegistrableDomains):
(WebKit::originPath): Deleted.
- NetworkProcess/storage/NetworkStorageManager.h:
- NetworkProcess/storage/OriginStorageManager.cpp:
(WebKit::OriginStorageManager::StorageBucket::toStorageIdentifier):
(WebKit::OriginStorageManager::StorageBucket::typeStoragePath const):
(WebKit::OriginStorageManager::StorageBucket::fileSystemStorageManager):
(WebKit::OriginStorageManager::StorageBucket::isActive):
(WebKit::OriginStorageManager::StorageBucket::deleteData):
(WebKit::OriginStorageManager::StorageBucket::deleteFileSystemStorageData):
(WebKit::OriginStorageManager::OriginStorageManager):
(WebKit::OriginStorageManager::isActive):
(WebKit::OriginStorageManager::deleteData):
- NetworkProcess/storage/OriginStorageManager.h:
- Shared/WebsiteData/WebsiteData.cpp:
(WebKit::WebsiteData::ownerProcess):
- Shared/WebsiteData/WebsiteDataType.h:
- UIProcess/API/Cocoa/WKWebsiteDataRecord.mm:
(dataTypesToString):
- UIProcess/API/Cocoa/WKWebsiteDataRecordInternal.h:
(WebKit::toWebsiteDataType):
(WebKit::toWKWebsiteDataTypes):
- UIProcess/API/Cocoa/WKWebsiteDataRecordPrivate.h:
- UIProcess/API/Cocoa/WKWebsiteDataStore.mm:
(+[WKWebsiteDataStore _allWebsiteDataTypesIncludingPrivate]):
- WebKit.xcodeproj/project.pbxproj:
- WebProcess/Network/NetworkProcessConnection.cpp:
(WebKit::NetworkProcessConnection::didReceiveMessage):
- WebProcess/WebCoreSupport/WebFileSystemStorageConnection.messages.in: Added.
Source/WTF:
- wtf/FileSystem.cpp:
(WTF::FileSystemImpl::readEntireFile): Read whole file content into a Vector.
(WTF::FileSystemImpl::deleteAllFilesModifiedSince): Recursively delete files and folders modified after
specified time in a directory.
- wtf/FileSystem.h:
Tools:
- TestWebKitAPI/Tests/WebKitCocoa/FileSystemAccess.mm:
- 11:52 AM Changeset in webkit [286506] by
-
- 8 edits in branches/safari-613.1.8-branch/Source
Versioning.
WebKit-7613.1.8.4
- 11:39 AM Changeset in webkit [286505] by
-
- 11 edits in trunk
Follow-up to r286479 to add API test and address issues found by the test
https://bugs.webkit.org/show_bug.cgi?id=233798
Reviewed by Darin Adler.
Source/WebKit:
Add functionality needed for API testing and fix issues found by the API test.
- UIProcess/API/Cocoa/WKWebViewPrivateForTesting.h:
- UIProcess/API/Cocoa/WKWebViewTesting.mm:
(-[WKWebView _isLayerTreeFrozenForTesting:]):
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::destroyProvisionalPage):
(WebKit::WebPageProxy::isLayerTreeFrozen):
- UIProcess/WebPageProxy.h:
- WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::isLayerTreeFrozen):
- WebProcess/WebPage/WebPage.h:
- WebProcess/WebPage/WebPage.messages.in:
Add new SPI to check if the layer tree is frozen in the WebProcess so that I could
write an API test for this.
- UIProcess/ProvisionalPageProxy.cpp:
(WebKit::ProvisionalPageProxy::ProvisionalPageProxy):
Make sure m_provisionalLoadURL gets initialized when the ProvisionalPageProxy gets
constructed *after* the provisional load has already started (which is the case
when the process swap is triggered by COOP).
(WebKit::ProvisionalPageProxy::didFailProvisionalLoadForFrame):
If the provisional load load fails in the provisional process, and the ProvisionalPageProxy
was constructed on resource response (COOP case), then no longer forward the
didFailProvisionalLoadForFrame() to the WebPageProxy. Instead, we destroy the
ProvisionalPageProxy. This is to avoid duplicate calls to didFailProvisionalLoadForFrame().
In this case, there is still a provisional load ongoing in the committed process and the
ProvisionalPageProxy destructor will take care of stopping that provisional load (due to
r286479), which will cause the committed process to send its own
didFailProvisionalLoadForFrame IPC.
Tools:
Add API test coverage.
- TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:
- 11:21 AM Changeset in webkit [286504] by
-
- 2 edits in trunk/Source/WTF
Enable Momentum Event Generator by default
https://bugs.webkit.org/show_bug.cgi?id=233807
<rdar://problem/85262515>
Reviewed by Simon Fraser.
- Scripts/Preferences/WebPreferencesInternal.yaml:
Turn it on for modern WebKit. Adjust the description slightly.
- 11:06 AM Changeset in webkit [286503] by
-
- 2 edits in trunk/LayoutTests
[GLIB] WPT css-transform transform-interpolation-rotate-slerp.html is flaky img failing after updated in r286002
Unreviewed test gardening.
- platform/glib/TestExpectations:
- 10:30 AM Changeset in webkit [286502] by
-
- 11 edits1 delete in trunk/Source/JavaScriptCore
Remove StructureIDBlob
https://bugs.webkit.org/show_bug.cgi?id=233723
Reviewed by Yusuke Suzuki.
StructureIDBlob isn't very useful now that StructureIDs are just the
bottom bits of the pointer on 64 bit platforms. In a follow up patch
I'll change the layout of JSCell and Structure so that TypeInfo creation
can be a single load platforms that allow (and don't penalize) misaligned loads.
- CMakeLists.txt:
- JavaScriptCore.xcodeproj/project.pbxproj:
- ftl/FTLAbstractHeapRepository.h:
- ftl/FTLLowerDFGToB3.cpp:
(JSC::FTL::DFG::LowerDFGToB3::compileCompareStrictEq):
- jit/AssemblyHelpers.h:
(JSC::AssemblyHelpers::emitStoreStructureWithTypeInfo):
- jit/JITPropertyAccess.cpp:
(JSC::JIT::emit_op_put_to_scope):
- runtime/Structure.cpp:
(JSC::Structure::Structure):
(JSC::Structure::addNewPropertyTransition):
(JSC::Structure::removeNewPropertyTransition):
(JSC::Structure::attributeChangeTransition):
(JSC::Structure::nonPropertyTransitionSlow):
(JSC::Structure::setBrandTransition):
- runtime/Structure.h:
(JSC::Structure::id const):
(JSC::Structure::objectInitializationBlob const):
(JSC::Structure::idBlob const):
(JSC::Structure::isProxy const):
(JSC::Structure::typeInfo const):
(JSC::Structure::indexingType const):
(JSC::Structure::indexingMode const):
(JSC::Structure::fencedIndexingMode):
(JSC::Structure::indexingModeIncludingHistory const):
(JSC::Structure::indexingModeIncludingHistoryOffset):
(JSC::Structure::structureIDOffset): Deleted.
- runtime/StructureIDBlob.h: Removed.
- runtime/StructureInlines.h:
(JSC::Structure::hasIndexingHeader const):
- tools/VMInspectorInlines.h:
(JSC::VMInspector::verifyCellSize):
- 10:29 AM Changeset in webkit [286501] by
-
- 2 edits in trunk/Source/WebKit
[ Monterey wk2 ] http/tests/media/video-webm-stall.html (layout-test) is a constant text failure
https://bugs.webkit.org/show_bug.cgi?id=233717
rdar://85933254
Reviewed by Peng Liu.
After r274117, we call
PlatformMediaSessionManager::setWebMFormatReaderEnabled
in GPUProcess with
m_webMParserEnabled
instead of the value ofm_webMFormatReaderEnabled
. Since we (arbitrarily) update WebM
parser enablement before WebM format reader enablement, this means that the first call to update preferences
leaves the WebM format reader disabled on PlatformMediaSessionManager even though it should be enabled. Prior to
the more recent change in r285477, this would be corrected on subsequent calls into
GPUProcessProxy::updatePreferences()
, which previously sentGPUProcess::SetWebMFormatReaderEnabled()
messages even if the value of the preference hadn't changed.
r285477 removed those redundant IPC messages when the enablement value hasn't changed, so we can no longer
rely on PlatformMediaSessionManager being eventually updated totrue
due tom_webMParserEnabled
being set to
true. Simply fix this by usingm_webMFormatReaderEnabled
instead ofm_webMParserEnabled
.
- GPUProcess/GPUProcess.cpp:
(WebKit::GPUProcess::setWebMFormatReaderEnabled):
- 10:15 AM Changeset in webkit [286500] by
-
- 4 edits in trunk/Source/WebCore
[LFC][IFC] Set the first/last box flag on the (bidi fragmented) inline box type of display boxes
https://bugs.webkit.org/show_bug.cgi?id=233743
Reviewed by Antti Koivisto.
Keep track of the last constructed inline box type of display box position so that when we
happen to create another fragment for this same inline box, we can change the 'isLastBox' box to false.
- layout/formattingContexts/inline/InlineDisplayContentBuilder.cpp:
(WebCore::Layout::InlineDisplayContentBuilder::insertInlineBoxDisplayBoxForBidiBoundary):
(WebCore::Layout::InlineDisplayContentBuilder::processBidiContent):
- layout/formattingContexts/inline/InlineDisplayContentBuilder.h:
- 10:00 AM Changeset in webkit [286499] by
-
- 5 edits in trunk/Source/WebCore
Introduce WorkerGlobalScope::type() function
https://bugs.webkit.org/show_bug.cgi?id=233793
Reviewed by Alex Christensen.
Introduce WorkerGlobalScope::type() function to replace isDedicatedWorkerGlobalScope() / isServiceWorkerGlobalScope()
/ isSharedWorkerGlobalScope(). This is extracted from Alex's large patch at Bug 230382.
- workers/shared/SharedWorkerGlobalScope.h:
(isType):
- 9:45 AM Changeset in webkit [286498] by
-
- 3 edits in trunk/Source/WebKit
Web Inspector: Web Inspector2 crashes after closing if Web Inspector1 closed first
https://bugs.webkit.org/show_bug.cgi?id=233293
<rdar://problem/85526508>
Reviewed by Devin Rousso.
Cache the inspected page's identifier. During frontend teardown, use the cached indentifier
to remove the message receiver that was added to receive messages from the inspected page.
Other operations using m_inspectedPage should be guarded in case that the inspected
page already been closed and destroyed.
- UIProcess/Inspector/WebInspectorUIProxy.cpp:
(WebKit::WebInspectorUIProxy::createFrontendPage):
(WebKit::WebInspectorUIProxy::closeFrontendPageAndWindow):
- UIProcess/Inspector/WebInspectorUIProxy.h:
- 9:36 AM Changeset in webkit [286497] by
-
- 3 edits in trunk/Source/WebKit
[Cocoa] Web Inspector: fix completion handler type signature for _WKInspectorExtension methods
https://bugs.webkit.org/show_bug.cgi?id=233792
<rdar://problem/85995314>
Reviewed by Devin Rousso.
- UIProcess/API/Cocoa/_WKInspectorExtension.h:
- UIProcess/API/Cocoa/_WKInspectorExtension.mm:
(-[_WKInspectorExtension evaluateScript:frameURL:contextSecurityOrigin:useContentScriptContext:completionHandler:]):
(-[_WKInspectorExtension evaluateScript:inTabWithIdentifier:completionHandler:]):
Replace the completionHandler's NSDictionary argument type withid
.
A dictionary is not necessarily returned here because the implementation deserializes a SerializedScriptValue.
This could be a string, number, array, dictionary, or other serializable values.
While the frontend does return a dictionary payload, this is unpacked on the WebProcess-side
before being sent back out via the _WKInspectorExtension APi.
- 9:35 AM Changeset in webkit [286496] by
-
- 6 edits in trunk/Source/WebCore
Improve dictionary-based DOMPromiseDeferred::settle
https://bugs.webkit.org/show_bug.cgi?id=233751
Patch by Youenn Fablet <youenn@apple.com> on 2021-12-03
Reviewed by Chris Dumez.
Make settle a templated function so that it can adapt to any ExceptionOr based type.
Update call sites that use settle for non ExceptionOr types as they should either use reject or resolve directly.
Covered by existing tests.
- Modules/applepay/ApplePaySetup.cpp:
(WebCore::ApplePaySetup::getSetupFeatures):
(WebCore::ApplePaySetup::begin):
(WebCore::ApplePaySetup::stop):
- Modules/filesystemaccess/FileSystemDirectoryHandle.cpp:
(WebCore::FileSystemDirectoryHandle::getFileHandle):
(WebCore::FileSystemDirectoryHandle::getDirectoryHandle):
(WebCore::FileSystemDirectoryHandle::resolve):
- Modules/filesystemaccess/FileSystemFileHandle.cpp:
(WebCore::FileSystemFileHandle::createSyncAccessHandle):
- bindings/js/JSDOMPromiseDeferred.h:
(WebCore::DOMPromiseDeferred::settle):
(WebCore::DOMPromiseDeferred<IDLDictionary<T>>::resolve): Deleted.
(WebCore::DOMPromiseDeferred<IDLDictionary<T>>::settle): Deleted.
(WebCore::DOMPromiseDeferred<IDLInterface<T>>::resolve): Deleted.
(WebCore::DOMPromiseDeferred<IDLInterface<T>>::settle): Deleted.
- workers/service/ServiceWorkerContainer.cpp:
(WebCore::ServiceWorkerContainer::getNavigationPreloadState):
- 9:19 AM Changeset in webkit [286495] by
-
- 2 edits in trunk/Source/WTF
[:has() pseudo-class] Enable by default
https://bugs.webkit.org/show_bug.cgi?id=233809
Reviewed by Simon Fraser.
Flip the switch.
- Scripts/Preferences/WebPreferencesExperimental.yaml:
- 9:10 AM Changeset in webkit [286494] by
-
- 3 edits in trunk/Source/WebCore
[:has() pseudo-class] Improve result caching
https://bugs.webkit.org/show_bug.cgi?id=233806
Reviewed by Simon Fraser.
Improve caching to to avoid O(n2) cases during invalidation and style resolution.
- css/SelectorChecker.cpp:
(WebCore::SelectorChecker::matchHasPseudoClass const):
Cache matches as well as failures.
Cache failures that don't apply to subtrees.
Check cached matches and failures for all :has() match element types.
- style/SelectorMatchingState.h:
- 9:08 AM Changeset in webkit [286493] by
-
- 76 edits7 adds in trunk/Source/bmalloc
[libpas] Update to 96f9f4c28dc119695311c7c6bd81ed1f3f4e260c (allow more specialization of partial versus exclusive allocation)
https://bugs.webkit.org/show_bug.cgi?id=233782
Reviewed by Yusuke Suzuki.
Libpas's main optimization for lots of isoheaps is partial views of shared pages: a single page may get
chopped up so that different heaps get different ranges of the page. This works out, in a not-too-gross
way, by reusing the segregated heap page management logic.
But previously, pages used exclusively versus pages that were shared looked largely the same; the only
way to tell them apart is that they had a different owner. Notably, those pages would get allocated out
of the same megapages, so a megapage lookup could not tell you if you were exclusive or shared.
This change introduces the concept of pas_segregated_page_role, which is this distinction between
exclusive and shared, and spreads it across all page management logic. So:
-> Page allocation knows the page's role, so it can use different megapages for exclusive or shared.
This enables exclusive and shared to have different deallocation fast paths.
-> Page_kind is now different depending on whether the page is exclusive or shared.
-> Many of the entrypoints into segregated_page that are required to know page_config are now also
required to know page_role. This makes sense, because the combination of megapages and page_kinds
knowing about roles means that anyone who ends up calling segregated_page API will now typically
know the role.
-> It's still possible to dynamically deduce the role using the page's owner, but hardly any code does
that.
This is leveraged in this patch to introduce some tiny space-saving optimizations to isoheaps:
-> Partial deallocation no longer uses the deallocation log.
-> Partial deallocation no longer uses the empty_word_eligibility_optimization.
This change is a stepping stone for introducing more different kinds of roles in the future.
- CMakeLists.txt:
- bmalloc.xcodeproj/project.pbxproj:
- libpas/libpas.xcodeproj/project.pbxproj:
- libpas/src/libpas/bmalloc_heap_config.h:
- libpas/src/libpas/hotbit_heap_config.h:
- libpas/src/libpas/iso_heap_config.h:
- libpas/src/libpas/iso_test_heap_config.h:
- libpas/src/libpas/jit_heap_config.c:
(jit_heap_config_dump_shared_page_directory_arg):
- libpas/src/libpas/jit_heap_config.h:
- libpas/src/libpas/minalign32_heap_config.h:
- libpas/src/libpas/pagesize64k_heap_config.h:
- libpas/src/libpas/pas_basic_heap_page_caches.h:
- libpas/src/libpas/pas_bitfit_allocator.c:
(pas_bitfit_allocator_commit_view):
(pas_bitfit_allocator_finish_failing):
- libpas/src/libpas/pas_bitfit_allocator.h:
- libpas/src/libpas/pas_bitfit_allocator_inlines.h:
(pas_bitfit_allocator_try_allocate):
(pas_bitfit_allocator_reset): Deleted.
(pas_bitfit_allocator_assert_reset): Deleted.
- libpas/src/libpas/pas_bitfit_heap.c:
(pas_bitfit_heap_construct_and_insert_size_class):
(pas_bitfit_heap_ensure_size_class): Deleted.
- libpas/src/libpas/pas_bitfit_heap.h:
- libpas/src/libpas/pas_bitfit_page.c:
(pas_bitfit_page_construct):
- libpas/src/libpas/pas_bitfit_page_config.h:
- libpas/src/libpas/pas_bitfit_page_config_inlines.h:
- libpas/src/libpas/pas_bitfit_page_config_kind.c:
(pas_bitfit_page_config_kind_get_string):
- libpas/src/libpas/pas_bitfit_page_config_kind.h:
(pas_bitfit_page_config_kind_get_string): Deleted.
- libpas/src/libpas/pas_bitfit_page_inlines.h:
(pas_bitfit_page_allocate):
- libpas/src/libpas/pas_bitfit_size_class.c:
(pas_bitfit_size_class_create): Deleted.
- libpas/src/libpas/pas_bitfit_size_class.h:
- libpas/src/libpas/pas_create_basic_heap_page_caches_with_reserved_memory.c:
(pas_create_basic_heap_page_caches_with_reserved_memory):
- libpas/src/libpas/pas_deallocate.c:
(deallocate_segregated):
(pas_try_deallocate_slow_no_cache):
- libpas/src/libpas/pas_deallocate.h:
(pas_deallocate_known_segregated):
(pas_try_deallocate_not_small_exclusive_segregated):
(pas_try_deallocate_impl):
(pas_deallocate_known_segregated_impl): Deleted.
(pas_try_deallocate_not_small): Deleted.
- libpas/src/libpas/pas_enumerate_segregated_heaps.c:
(pas_enumerate_segregated_heaps):
- libpas/src/libpas/pas_fast_megapage_kind.h:
(pas_fast_megapage_kind_get_string):
- libpas/src/libpas/pas_fast_megapage_table.c:
(pas_fast_megapage_table_set_by_index):
- libpas/src/libpas/pas_fast_megapage_table.h:
(pas_fast_megapage_table_get_by_index):
- libpas/src/libpas/pas_get_allocation_size.h:
(pas_get_allocation_size):
- libpas/src/libpas/pas_get_heap.h:
(pas_get_heap):
(pas_get_heap_known_segregated): Deleted.
- libpas/src/libpas/pas_get_object_kind.h:
(pas_get_object_kind):
- libpas/src/libpas/pas_get_page_base.h:
(pas_get_page_base):
- libpas/src/libpas/pas_get_page_base_and_kind_for_small_other_in_fast_megapage.h: Added.
(pas_get_page_base_and_kind_for_small_other_in_fast_megapage):
- libpas/src/libpas/pas_has_object.h:
(pas_has_object):
- libpas/src/libpas/pas_heap_config.h:
- libpas/src/libpas/pas_heap_config_inlines.h:
- libpas/src/libpas/pas_heap_config_kind.c:
(pas_heap_config_kind_get_string):
- libpas/src/libpas/pas_heap_config_kind.h:
(pas_heap_config_kind_get_string): Deleted.
- libpas/src/libpas/pas_heap_config_utils.h:
- libpas/src/libpas/pas_heap_config_utils_inlines.h:
- libpas/src/libpas/pas_internal_config.h:
- libpas/src/libpas/pas_local_allocator.c:
(pas_local_allocator_construct):
(pas_local_allocator_refill_with_bitfit): Deleted.
(pas_local_allocator_finish_refill_with_bitfit): Deleted.
- libpas/src/libpas/pas_local_allocator_inlines.h:
(pas_local_allocator_scan_bits_to_set_up_free_bits):
(pas_local_allocator_set_up_free_bits):
(pas_local_allocator_set_up_primordial_bump):
(pas_local_allocator_start_allocating_in_primordial_partial_view):
(pas_local_allocator_bless_primordial_partial_view_before_stopping):
(pas_local_allocator_try_allocate_in_primordial_partial_view):
(pas_local_allocator_refill_with_known_config):
(pas_local_allocator_return_memory_to_page_set_bit_callback):
(pas_local_allocator_return_memory_to_page_for_role):
(pas_local_allocator_return_memory_to_page):
(pas_local_allocator_try_allocate_small_segregated_slow_impl):
(pas_local_allocator_try_allocate_out_of_line_cases):
(pas_local_allocator_try_allocate_slow_impl):
- libpas/src/libpas/pas_object_kind.h:
(pas_object_kind_for_page_kind):
- libpas/src/libpas/pas_page_base_and_kind.h: Added.
(pas_page_base_and_kind_create):
(pas_page_base_and_kind_create_empty):
- libpas/src/libpas/pas_page_base_config.c: Added.
(pas_page_base_config_get_kind_string):
- libpas/src/libpas/pas_page_base_config.h:
(pas_page_base_config_is_segregated):
(pas_page_base_config_is_bitfit):
(pas_page_base_config_get_config_kind): Deleted.
- libpas/src/libpas/pas_page_kind.h:
(pas_page_kind_get_string):
(pas_page_kind_get_config_kind):
(pas_page_kind_get_segregated_variant):
(pas_page_kind_get_segregated_role):
(pas_page_kind_for_segregated_variant_and_role):
(pas_page_kind_for_bitfit_variant):
- libpas/src/libpas/pas_segregated_deallocation_logging_mode.h: Added.
(pas_segregated_deallocation_logging_mode_does_logging):
(pas_segregated_deallocation_logging_mode_is_size_aware):
(pas_segregated_deallocation_logging_mode_is_checked):
- libpas/src/libpas/pas_segregated_heap.c:
(max_object_size_for_page_config):
(pas_segregated_heap_ensure_size_directory_for_size):
- libpas/src/libpas/pas_segregated_page.c:
(pas_segregated_page_construct):
(pas_segregated_page_and_config_for_address_and_heap_config):
- libpas/src/libpas/pas_segregated_page_config.h:
(pas_segregated_page_config_enable_empty_word_eligibility_optimization_for_role):
(pas_segregated_page_config_logging_mode_for_role):
- libpas/src/libpas/pas_segregated_page_config_inlines.h:
- libpas/src/libpas/pas_segregated_page_config_kind.c:
(pas_segregated_page_config_kind_get_string):
- libpas/src/libpas/pas_segregated_page_config_kind.def:
- libpas/src/libpas/pas_segregated_page_config_kind.h:
(pas_segregated_page_config_kind_get_string): Deleted.
- libpas/src/libpas/pas_segregated_page_config_kind_and_role.c: Added.
(pas_segregated_page_config_kind_and_role_get_string):
- libpas/src/libpas/pas_segregated_page_config_kind_and_role.h: Added.
(pas_segregated_page_config_kind_and_role_create):
- libpas/src/libpas/pas_segregated_page_config_utils.h:
(pas_segregated_page_config_verify_dealloc): Deleted.
- libpas/src/libpas/pas_segregated_page_inlines.h:
(pas_segregated_page_deallocate_with_page):
(pas_segregated_page_deallocate):
(pas_segregated_page_get_directory_for_address_in_page):
(pas_segregated_page_get_directory_for_address_and_page_config):
(pas_segregated_page_get_object_size_for_address_in_page):
(pas_segregated_page_get_object_size_for_address_and_page_config):
(pas_segregated_page_log_or_deallocate):
- libpas/src/libpas/pas_segregated_page_role.h: Added.
(pas_segregated_page_role_get_string):
- libpas/src/libpas/pas_segregated_shared_view.c:
(pas_segregated_shared_view_commit_page):
- libpas/src/libpas/pas_segregated_size_directory.c:
(pas_segregated_size_directory_create):
- libpas/src/libpas/pas_segregated_size_directory.h:
(pas_segregated_size_directory_is_bitfit):
(pas_segregated_size_directory_get_bitfit_size_class):
- libpas/src/libpas/pas_segregated_view.c:
(should_be_eligible):
- libpas/src/libpas/pas_segregated_view.h:
(pas_segregated_view_get_page_role_for_owner):
(pas_segregated_view_get_page_role_for_allocator):
- libpas/src/libpas/pas_segregated_view_allocator_inlines.h:
(pas_segregated_view_will_start_allocating):
- libpas/src/libpas/pas_segregated_view_kind.h:
(pas_segregated_view_kind_get_role_for_owner):
(pas_segregated_view_kind_get_role_for_allocator):
- libpas/src/libpas/pas_thread_local_cache.c:
(process_deallocation_log_with_config):
(flush_deallocation_log):
(pas_thread_local_cache_append_deallocation_slow):
- libpas/src/libpas/pas_thread_local_cache.h:
(pas_thread_local_cache_encode_object):
(pas_thread_local_cache_append_deallocation):
(pas_thread_local_cache_append_deallocation_with_size):
- libpas/src/libpas/pas_try_reallocate.h:
(pas_try_reallocate_table_segregated_case):
(pas_try_reallocate):
- libpas/src/libpas/pas_try_shrink.h:
(pas_try_shrink):
- libpas/src/libpas/pas_utility_heap.c:
(pas_utility_heap_deallocate):
- libpas/src/libpas/pas_utility_heap_config.c:
(pas_utility_heap_allocate_page):
(pas_utility_heap_shared_page_directory_selector):
(pas_utility_heap_config_for_each_shared_page_directory):
(pas_utility_heap_config_dump_shared_page_directory_arg):
- libpas/src/libpas/pas_utility_heap_config.h:
(pas_utility_heap_shared_page_directory_selector): Deleted.
- libpas/src/libpas/pas_utils.h:
(pas_assertion_failed_noreturn_silencer):
- libpas/src/libpas/thingy_heap_config.h:
- libpas/src/test/ThingyAndUtilityHeapAllocationTests.cpp:
(std::addMargeBitfitTests):
- 8:50 AM Changeset in webkit [286492] by
-
- 15 edits in trunk
Add room for more bytecode in WKContentRuleList file format
https://bugs.webkit.org/show_bug.cgi?id=233780
Reviewed by Tim Hatcher.
Source/WebCore:
For rdar://72203352 we will need more bytecode. This adds room for it without putting anything there yet.
As long as we are updating the version number and forcing a recompile, I'm making the string serialization
more like the other action serializations to be able to simplify the interpreter later. I'm also shifting
around a few bits in the bytecode to be more organized and reasonable.
- contentextensions/CompiledContentExtension.h:
- contentextensions/ContentExtensionStringSerialization.cpp:
(WebCore::ContentExtensions::deserializeString):
(WebCore::ContentExtensions::serializeString):
(WebCore::ContentExtensions::stringSerializedLength):
- contentextensions/DFABytecode.h:
(WebCore::ContentExtensions::smallestPossibleJumpSize): Deleted.
- contentextensions/DFABytecodeCompiler.cpp:
(WebCore::ContentExtensions::smallestPossibleJumpSize):
Source/WebKit:
- Shared/WebCompiledContentRuleList.cpp:
(WebKit::WebCompiledContentRuleList::frameURLFiltersBytecode const):
- Shared/WebCompiledContentRuleList.h:
- Shared/WebCompiledContentRuleListData.cpp:
(WebKit::WebCompiledContentRuleListData::encode const):
(WebKit::WebCompiledContentRuleListData::decode):
- Shared/WebCompiledContentRuleListData.h:
(WebKit::WebCompiledContentRuleListData::WebCompiledContentRuleListData):
- UIProcess/API/APIContentRuleListStore.cpp:
(API::ContentRuleListMetaData::fileSize const):
(API::encodeContentRuleListMetaData):
(API::decodeContentRuleListMetaData):
(API::compiledToFile):
(API::createExtension):
(API::getContentRuleListSourceFromMappedFile):
- UIProcess/API/APIContentRuleListStore.h:
Tools:
- TestWebKitAPI/Tests/WebCore/ContentExtensions.cpp:
- 8:35 AM Changeset in webkit [286491] by
-
- 20 edits2 adds in trunk
DisplayCaptureSource doesn't initialize base class correctly
https://bugs.webkit.org/show_bug.cgi?id=233722
Reviewed by Youenn Fablet.
Source/WebCore:
Test: fast/mediastream/get-display-media-settings.html
- platform/mediastream/RealtimeMediaSourceCenter.cpp:
(WebCore::RealtimeMediaSourceCenter::createMediaStream): Pass hashSalt through.
(WebCore::RealtimeMediaSourceCenter::getDisplayMediaDevices): Ditto.
(WebCore::RealtimeMediaSourceCenter::validateRequestConstraintsAfterEnumeration): Ditto.
- platform/mediastream/RealtimeMediaSourceCenter.h:
- platform/mediastream/RealtimeMediaSourceFactory.h:
- platform/mediastream/cocoa/DisplayCaptureSourceCocoa.cpp:
(WebCore::DisplayCaptureSourceCocoa::create): Ditto.
(WebCore::DisplayCaptureSourceCocoa::DisplayCaptureSourceCocoa): Ditto.
- platform/mediastream/cocoa/DisplayCaptureSourceCocoa.h:
- platform/mediastream/gstreamer/GStreamerCaptureDeviceManager.h:
- platform/mediastream/gstreamer/GStreamerDisplayCaptureDeviceManager.cpp:
(WebCore::GStreamerDisplayCaptureDeviceManager::createDisplayCaptureSource): Ditto.
- platform/mediastream/gstreamer/GStreamerVideoCaptureSource.cpp:
- platform/mediastream/mac/RealtimeMediaSourceCenterMac.cpp:
- platform/mock/MockRealtimeMediaSourceCenter.cpp:
- platform/mock/MockRealtimeMediaSourceCenter.cpp:
- platform/mock/MockRealtimeVideoSource.cpp:
(WebCore::MockRealtimeVideoSource::settings):
Source/WebKit:
- UIProcess/Cocoa/UserMediaCaptureManagerProxy.cpp:
(WebKit::UserMediaCaptureManagerProxy::createMediaSourceForCaptureDeviceWithConstraints):
Pass the hash salt to the factory.
- WebProcess/cocoa/RemoteRealtimeDisplaySource.cpp:
(WebKit::RemoteRealtimeDisplaySource::create): Remove 'name' parameter because
CaptureDevice already has the name.
(WebKit::RemoteRealtimeDisplaySource::RemoteRealtimeDisplaySource): Pass name to
base class from device.label().
(WebKit::RemoteRealtimeDisplaySource::createRemoteMediaSource): Don't call setName
with settings, it was already set in the constructor.
- WebProcess/cocoa/RemoteRealtimeDisplaySource.h:
- WebProcess/cocoa/UserMediaCaptureManager.cpp:
(WebKit::UserMediaCaptureManager::DisplayFactory::createDisplayCaptureSource): Pass
hash salt to RemoteRealtimeDisplaySource::create.
- WebProcess/cocoa/UserMediaCaptureManager.h:
LayoutTests:
- fast/mediastream/get-display-media-settings-expected.txt: Added.
- fast/mediastream/get-display-media-settings.html: Added.
- 7:30 AM Changeset in webkit [286490] by
-
- 9 edits2 adds in trunk/LayoutTests
[css-flexbox] WPT import. December 2021 edition
https://bugs.webkit.org/show_bug.cgi?id=233810
Reviewed by Rob Buis.
LayoutTests/imported/w3c:
- resources/resource-files.json:
- web-platform-tests/css/css-flexbox/negative-available-size-crash-expected.txt: Added.
- web-platform-tests/css/css-flexbox/negative-available-size-crash.html: Added.
- web-platform-tests/css/css-flexbox/scrollbars-auto-expected.html:
- web-platform-tests/css/css-flexbox/scrollbars-expected.html:
- web-platform-tests/css/css-flexbox/table-as-item-inflexible-in-column-2.html:
- web-platform-tests/css/css-flexbox/table-as-item-inflexible-in-row-2.html:
- web-platform-tests/css/css-flexbox/w3c-import.log:
LayoutTests:
- TestExpectations: Unskipped a test that works fine after the changes in the import.
- 6:12 AM Changeset in webkit [286489] by
-
- 3 edits in trunk/Source/WebCore
[LFC][IFC] Move the (bidi)display boxes horizontally by the inline box margin, border and padding start as needed
https://bugs.webkit.org/show_bug.cgi?id=233742
Reviewed by Antti Koivisto.
Re-visit the newly constructed display boxes and move them horizontally using the inline box margin, border and padding start values.
Note that in this patch we don't yet handle the end side of the inline boxes.
- layout/formattingContexts/inline/InlineDisplayContentBuilder.cpp:
(WebCore::Layout::InlineDisplayContentBuilder::processBidiContent):
- 6:01 AM Changeset in webkit [286488] by
-
- 16 edits in trunk
Persist NavigationPreloadState in service worker registration database
https://bugs.webkit.org/show_bug.cgi?id=233698
Source/WebCore:
Reviewed by Chris Dumez.
Whenever changing a service worker registration navigation state, trigger storing of the changes in the database.
To do so, we add this state to ServiceWorkerContextData.
When creating a SWServerRegistration, we set default values to false and "true"
as per https://w3c.github.io/ServiceWorker/#service-worker-registration-navigation-preload-header-value.
Covered by updated test.
- workers/service/ServiceWorkerContextData.cpp:
- workers/service/ServiceWorkerContextData.h:
- workers/service/server/RegistrationDatabase.cpp:
- workers/service/server/RegistrationStore.h:
- workers/service/server/SWServer.cpp:
- workers/service/server/SWServer.h:
- workers/service/server/SWServerJobQueue.cpp:
- workers/service/server/SWServerRegistration.cpp:
- workers/service/server/SWServerRegistration.h:
- workers/service/server/SWServerWorker.cpp:
Tools:
<rdar://problem/85963120>
Reviewed by Chris Dumez.
Increase counter from 7 to 8.
- TestWebKitAPI/Tests/WebKitCocoa/ServiceWorkerBasic.mm:
LayoutTests:
Reviewed by Chris Dumez.
- http/wpt/service-workers/service-worker-networkprocess-crash-expected.txt:
- http/wpt/service-workers/service-worker-networkprocess-crash.html:
- 1:31 AM Changeset in webkit [286487] by
-
- 6 edits in trunk/Source/WebKit
Rename DerivedSources/WebKit2 to DerivedSources/WebKit
https://bugs.webkit.org/show_bug.cgi?id=233803
Reviewed by Tim Horton.
Mechanical rename.
No new tests because there is no behavior change.
- Configurations/BaseTarget.xcconfig:
- Scripts/generate-derived-sources.sh:
- Scripts/generate-unified-sources.sh:
- UnifiedSources-output.xcfilelist:
- WebKit.xcodeproj/project.pbxproj:
- 12:50 AM Changeset in webkit [286486] by
-
- 2 edits in trunk/LayoutTests
[GStreamer] test http/tests/security/webaudio-render-remote-audio-allowed-crossorigin.html fails
https://bugs.webkit.org/show_bug.cgi?id=233737
Patch by Arcady Goldmints-Orlov <Arcady Goldmints-Orlov> on 2021-12-03
Reviewed by Philippe Normand.
Give some more time to the frequency analyzer to detect activity.
- http/tests/security/webaudio-render-remote-audio-allowed-crossorigin.html:
- 12:25 AM Changeset in webkit [286485] by
-
- 3 edits2 adds in trunk
[MSE] Fix erase range to prevent accidental deletion in files with changing durations
https://bugs.webkit.org/show_bug.cgi?id=233528
Reviewed by Xabier Rodriguez-Calvar.
Source/WebCore:
In didReceiveSample(), eraseBeginTime was being set to
highestPresentationTimestamp minus a tolerance. The tolerance is not
needed since highestPresentationTimestamp is loaded from exact frame
timestamps, and can cause accidental frame erasure in situations where
there are frames with frames smaller than the tolerance, which is the
case for certain MP4 files.
Test: media/media-source/media-source-append-tiny-durations.html
- platform/graphics/SourceBufferPrivate.cpp:
(WebCore::SourceBufferPrivate::didReceiveSample):
LayoutTests:
- media/media-source/media-source-append-tiny-durations-expected.txt: Added.
- media/media-source/media-source-append-tiny-durations.html: Added.
- 12:06 AM Changeset in webkit [286484] by
-
- 29 edits2 copies in trunk/Source
Network process does not seem to initialize logging
https://bugs.webkit.org/show_bug.cgi?id=233360
<rdar://problem/85765854>
Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2021-12-03
Reviewed by Fujii Hironori.
Source/WebCore:
Export WebCore::logLevelString(), it's the canonical
method to obtain WebCore log configuration string.
It's already used in WebKit, but not on Cocoa platform
where the export matters.
- platform/LogInitialization.h:
Source/WebKit:
Move GPUProcess and WebProcess process creation arguments
related to logging strings to new AuxiliaryProcessCreationParameters.
Use this in all auxiliary processes GPUProcess, WebProcess,
AuthnProcess and NetworkProcess.
Use the canonical WTF::logLevelString(), WebCore::logLevelString(),
WebKit::logLevelString() to initialize Cocoa WebKit2 logging settings
for process creation arguments.
Fixes bugs where
Tools/Scripts/run-minibrowser --debug -WebKit2Logging IPCMessages
would not print IPCMessages logging for NetworkProcess.
- GPUProcess/GPUProcess.cpp:
(WebKit::GPUProcess::initializeGPUProcess):
- GPUProcess/GPUProcessCreationParameters.cpp:
(WebKit::GPUProcessCreationParameters::encode const):
(WebKit::GPUProcessCreationParameters::decode):
- GPUProcess/GPUProcessCreationParameters.h:
- NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::initializeNetworkProcess):
- NetworkProcess/NetworkProcessCreationParameters.cpp:
(WebKit::NetworkProcessCreationParameters::encode const):
(WebKit::NetworkProcessCreationParameters::decode):
- NetworkProcess/NetworkProcessCreationParameters.h:
- Shared/AuxiliaryProcess.cpp:
(WebKit::AuxiliaryProcess::applyProcessCreationParameters):
- Shared/AuxiliaryProcess.h:
- Shared/AuxiliaryProcessCreationParameters.cpp: Copied from Source/WebKit/WebAuthnProcess/WebAuthnProcessCreationParameters.cpp.
(WebKit::AuxiliaryProcessCreationParameters::encode const):
(WebKit::AuxiliaryProcessCreationParameters::decode):
- Shared/AuxiliaryProcessCreationParameters.h: Copied from Source/WebKit/WebAuthnProcess/WebAuthnProcessCreationParameters.h.
- Shared/WebProcessCreationParameters.cpp:
(WebKit::WebProcessCreationParameters::encode const):
(WebKit::WebProcessCreationParameters::decode):
- Shared/WebProcessCreationParameters.h:
- Sources.txt:
- UIProcess/AuxiliaryProcessProxy.cpp:
(WebKit::AuxiliaryProcessProxy::auxiliaryProcessParameters):
- UIProcess/AuxiliaryProcessProxy.h:
- UIProcess/Cocoa/GPUProcessProxyCocoa.mm:
(WebKit::GPUProcessProxy::platformInitializeGPUProcessParameters):
- UIProcess/Cocoa/WebProcessPoolCocoa.mm:
(WebKit::WebProcessPool::platformInitializeWebProcess):
- UIProcess/GPU/GPUProcessProxy.cpp:
(WebKit::GPUProcessProxy::GPUProcessProxy):
(WebKit::GPUProcessProxy::platformInitializeGPUProcessParameters):
- UIProcess/GPU/GPUProcessProxy.h:
- UIProcess/Network/NetworkProcessProxy.cpp:
(WebKit::NetworkProcessProxy::sendCreationParametersToNewProcess):
- UIProcess/WebAuthentication/WebAuthnProcessProxy.cpp:
(WebKit::WebAuthnProcessProxy::singleton):
- UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::initializeNewWebProcess):
- WebAuthnProcess/WebAuthnProcess.cpp:
(WebKit::WebAuthnProcess::initializeWebAuthnProcess):
- WebAuthnProcess/WebAuthnProcessCreationParameters.cpp:
(WebKit::WebAuthnProcessCreationParameters::encode const):
(WebKit::WebAuthnProcessCreationParameters::decode):
- WebAuthnProcess/WebAuthnProcessCreationParameters.h:
- WebKit.xcodeproj/project.pbxproj:
- WebProcess/cocoa/WebProcessCocoa.mm:
(WebKit::WebProcess::platformInitializeWebProcess):
- WebProcess/playstation/WebProcessPlayStation.cpp:
(WebKit::WebProcess::platformInitializeWebProcess):
Dec 2, 2021:
- 11:25 PM Changeset in webkit [286483] by
-
- 6 edits in trunk/Source/WebKit
MomentumEventDispatcher curve sometimes doesn't match the system curve
https://bugs.webkit.org/show_bug.cgi?id=233801
<rdar://problem/85870287>
Reviewed by Simon Fraser.
Three small changes to get us closer to the system curve:
1) Fetch the momentum event dispatch interval from the system, and use
it to scale the momentum start event's delta (which we use as our
initial velocity) into the "ideal" curve's frame rate (which is always
60fps regardless).
2) Back-date the animation start time to the fingers-down phase end event,
so that the momentum start phase has a delta. This seems to match what
the system does.
3) Switch to MonotonicTime for the animation time, since it doesn't need
to be in the same timebase as events (which are oddly in WallTime), and
certainly should be monotonic.
- Shared/ScrollingAccelerationCurve.cpp:
(WebKit::ScrollingAccelerationCurve::ScrollingAccelerationCurve):
(WebKit::ScrollingAccelerationCurve::interpolate):
(WebKit::ScrollingAccelerationCurve::encode const):
(WebKit::ScrollingAccelerationCurve::decode):
(WebKit::operator<<):
- Shared/ScrollingAccelerationCurve.h:
(WebKit::ScrollingAccelerationCurve::frameRate):
(WebKit::ScrollingAccelerationCurve::operator== const):
- Shared/mac/ScrollingAccelerationCurveMac.mm:
(WebKit::fromIOHIDCurve):
(WebKit::fromIOHIDCurveArrayWithAcceleration):
(WebKit::fromIOHIDDevice):
Fetch and propagate the dispatch frame rate. This isn't *really* a
ScrollingAccelerationCurve property, but neither isresolution
;
this is just currently the only place we look up HID properties
and push them to the Web Content process; some re-architecture is
warranted here in the future.
- WebProcess/WebPage/MomentumEventDispatcher.cpp:
(WebKit::MomentumEventDispatcher::handleWheelEvent):
Keep track of the last fingers-down phase ended event timestamp.
(WebKit::MomentumEventDispatcher::didStartMomentumPhase):
Backdate the start time so that the first event has the appropriate delta.
Divide out the dispatch frame rate so that the initial velocity is
as if the curve were running at 60fps (since we *will* run it at 60fps and interpolate).
(WebKit::MomentumEventDispatcher::didEndMomentumPhase):
(WebKit::MomentumEventDispatcher::consumeDeltaForTime):
(WebKit::MomentumEventDispatcher::displayWasRefreshed):
Factor the consume-a-delta-from-the-ideal-curve code out from displayWasRefreshed
so we can use it in the start phase too.
(WebKit::MomentumEventDispatcher::offsetAtTime):
(WebKit::MomentumEventDispatcher::computeNextDelta):
Rename idealCurveFrameRate->idealCurveFrameInterval for accuracy.
- WebProcess/WebPage/MomentumEventDispatcher.h:
- 10:39 PM Changeset in webkit [286482] by
-
- 13 edits in trunk
html/semantics/forms/constraints/form-validation-validity-valid.html WPT test is failing
https://bugs.webkit.org/show_bug.cgi?id=233778
Reviewed by Darin Adler.
LayoutTests/imported/w3c:
Rebaseline WPT tests now that more checks are passing.
- web-platform-tests/html/semantics/forms/constraints/form-validation-validity-valid-expected.txt:
Source/WebCore:
html/semantics/forms/constraints/form-validation-validity-valid.html WPT test is failing in WebKit
but passing in Blink & Gecko. The issue was caused by incorrect willValidate() checks inside
HTMLInputElement::isValid() & HTMLSelectElement::valueMissing().
No new tests, rebaselined existing tests.
- html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::isValid const):
- html/HTMLSelectElement.cpp:
(WebCore::HTMLSelectElement::valueMissing const):
LayoutTests:
Rebaseline WPT tests now that more checks are passing.
- platform/mac-wk2/imported/w3c/web-platform-tests/html/semantics/forms/constraints/form-validation-validity-valid-expected.txt:
- platform/mac-wk2/imported/w3c/web-platform-tests/html/semantics/forms/constraints/form-validation-validity-valueMissing-expected.txt:
- 10:05 PM Changeset in webkit [286481] by
-
- 6 edits in trunk/Source
A Safari tab can rarely get stuck in a state where rendering updates stop happening
https://bugs.webkit.org/show_bug.cgi?id=233784
rdar://85445072
Reviewed by Chris Dumez.
Sometimes a Safari tab can get into a state where rendering updates cease to happen,
which manifests as partially broken scrolling, blank tiles revealed when scrolling,
and somewhat broken page updates. I was able to sometimes reproduce this by clicking
on links in eBay emails from Mail on a system with two displays.
From the one time I reproduce with logging, the output indicated that DisplayRefreshMonitor::displayLinkFired()
would early return because isPreviousFrameDone() was false. The only way for that to occur,
barring memory corruption, is if DisplayRefreshMonitorMac::dispatchDisplayDidRefresh() returned early,
which it does if the callback comes twice in a single event loop; this may explain the rarity.
So fix DisplayRefreshMonitorMac::dispatchDisplayDidRefresh() call setIsPreviousFrameDone(true)
so the next callback can make progress
Also add some locking annotations and fix one missing lock, and some release logging.
Source/WebCore:
- platform/graphics/DisplayRefreshMonitor.cpp:
(WebCore::DisplayRefreshMonitor::stop):
(WebCore::DisplayRefreshMonitor::firedAndReachedMaxUnscheduledFireCount):
(WebCore::DisplayRefreshMonitor::displayLinkFired):
- platform/graphics/DisplayRefreshMonitor.h:
(WebCore::DisplayRefreshMonitor::WTF_REQUIRES_LOCK):
(WebCore::DisplayRefreshMonitor::WTF_GUARDED_BY_LOCK):
(WebCore::DisplayRefreshMonitor::setMaxUnscheduledFireCount): Deleted.
(WebCore::DisplayRefreshMonitor::isScheduled const): Deleted.
(WebCore::DisplayRefreshMonitor::setIsScheduled): Deleted.
(WebCore::DisplayRefreshMonitor::isPreviousFrameDone const): Deleted.
(WebCore::DisplayRefreshMonitor::setIsPreviousFrameDone): Deleted.
Source/WebKit:
- WebProcess/WebPage/mac/DisplayRefreshMonitorMac.cpp:
(WebKit::DisplayRefreshMonitorMac::dispatchDisplayDidRefresh):
- 8:49 PM Changeset in webkit [286480] by
-
- 2 edits2 adds in trunk/LayoutTests
[GLIB] Update test expectations and baselines. Unreviewed test gardening.
https://bugs.webkit.org/show_bug.cgi?id=233799
Add a platform specific baseline for imported/w3c/web-platform-tests/service-workers/service-worker/navigation-preload/broken-chunked-encoding.https.html
as the tests pass on GTK and WPE.
Patch by Arcady Goldmints-Orlov <Arcady Goldmints-Orlov> on 2021-12-02
- platform/glib/TestExpectations:
- platform/glib/imported/w3c/web-platform-tests/service-workers/service-worker/navigation-preload/broken-chunked-encoding.https-expected.txt: Added.
- 8:37 PM Changeset in webkit [286479] by
-
- 4 edits in trunk/Source/WebKit
Regression(r283179) Google Drive freezes after downloading a folder
https://bugs.webkit.org/show_bug.cgi?id=233783
<rdar://85918531>
Reviewed by Darin Adler.
When process-swapping on a navigation response due to COOP, we create a new ProvisionalPageProxy
to trigger a provisional load in a new WebProcess. In the common case, the ProvisionalPageProxy
gets committed, we process-swap and everything works fine. However, if the client decides to
convert the navigation into a download (like in the Google Drive case), then the
ProvisionalPageProxy gets destroyed without being committed. The issue is that the committed
process still thinks at this point that it is in the middle of a navigation and its layer
tree is thus frozen with reason=PageTransition. This is what makes Google Drive look frozen
after the download. This is not an issue with PSON because the process-swap happens in
decidePolicyForNavigationAction() and we tell the previous process to ignore the navigation
when we process-swap.
To address the issue, we now tell the committed process to cancel its navigation if the
ProvisionalPageProxy ends up getting destroyed without being committed. This lets the
committed process know there is no point in waiting for this navigation to happen and allows
it to unfreeze its layer tree.
- UIProcess/ProvisionalPageProxy.cpp:
(WebKit::ProvisionalPageProxy::ProvisionalPageProxy):
(WebKit::ProvisionalPageProxy::~ProvisionalPageProxy):
- UIProcess/ProvisionalPageProxy.h:
(WebKit::ProvisionalPageProxy::isProcessSwappingOnNavigationResponse const):
(WebKit::ProvisionalPageProxy::shouldClosePreviousPageAfterCommit const): Deleted.
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::commitProvisionalPage):
(WebKit::WebPageProxy::continueNavigationInNewProcess):
- 8:24 PM Changeset in webkit [286478] by
-
- 3 edits1 add in trunk
[JSC] shell's $.globalObjectFor is not safe for non object cells
https://bugs.webkit.org/show_bug.cgi?id=233794
Reviewed by Saam Barati.
JSTests:
- stress/dollar-global-object.js: Added.
Source/JavaScriptCore:
Only Object cells can have Structures having JSGlobalObject.
- jsc.cpp:
(JSC_DEFINE_HOST_FUNCTION):
- 8:17 PM Changeset in webkit [286477] by
-
- 6 edits in trunk
AX: In AccessibilityRenderObject::documentLinks, use existing image-map document links instead of always creating new ones
https://bugs.webkit.org/show_bug.cgi?id=233767
Reviewed by Chris Fleizach.
The current implementation of AccessibilityRenderObject::documentLinks always
creates new image-map links rather than using the existing ones created via
AccessibilityRenderObject::addImageMapChildren. This is problematic for two reasons:
- It is wasteful in terms of memory usage as we will endlessly accumulate AccessibilityImageMapLink objects in the cache each time AccessibilityRenderObject::documentLinks is called.
- It breaks
<area>
document links in isolated tree mode, since the objects created this way aren't a child of any other object, and thus don't have any representation in the isolated tree. Concretely, this means AXIsolatedTree::nodeForID never returns anything for these objects.
In this patch, we try to find the existing image-map link children
in AccessibilityRenderObject::documentLinks before falling back to creating new ones.
Source/WebCore:
Fixes test accessibility/mac/document-links.html in isolated tree mode.
- accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::documentLinks):
Try to find the existing image-map link children before falling back to creating new ones.
LayoutTests:
- accessibility/mac/document-links-expected.txt:
Update expectations based on new variable names.
- accessibility/mac/document-links.html:
Modernize test and improve variable naming.
- resources/accessibility-helper.js:
(debugEscaped): Added.
- 7:51 PM Changeset in webkit [286476] by
-
- 2 edits in trunk/Tools
Compilation error on Tools/TestWebKitAPI/Tests/WebKitCocoa/WebPushDaemon.mm
https://bugs.webkit.org/show_bug.cgi?id=233797
rdar://problem/86000569
Unreviewed API test build fix.
- TestWebKitAPI/Tests/WebKitCocoa/WebPushDaemon.mm:
- 7:01 PM Changeset in webkit [286475] by
-
- 3 edits in trunk/Source/WebCore
[LFC][IFC] Create display boxes for fragmented inline boxes on bidi boundaries
https://bugs.webkit.org/show_bug.cgi?id=233736
Reviewed by Antti Koivisto.
In this patch we insert inline box type of display boxes in-between bidi display boxes as needed.
We don't yet compute visual geometry and/or offset the rest of the content with the injected margins, borders and padding.
- layout/formattingContexts/inline/InlineDisplayContentBuilder.cpp:
(WebCore::Layout::InlineDisplayContentBuilder::insertInlineBoxDisplayBoxForBidiBoundary):
(WebCore::Layout::InlineDisplayContentBuilder::processBidiContent):
(WebCore::Layout::InlineDisplayContentBuilder::appendInlineBoxDisplayBoxForBidiBoundary): Deleted.
- layout/formattingContexts/inline/InlineDisplayContentBuilder.h:
- 6:54 PM Changeset in webkit [286474] by
-
- 3 edits in trunk/Source/WebCore
Introduce a MainThreadBridge class inside WebLockManager
https://bugs.webkit.org/show_bug.cgi?id=233789
Reviewed by Darin Adler.
Extract all the logic to hop to and back from the main thread out of the WebLockManager and into a MainThreadBridge
internal class. This is similar to what was done for BroadcastChannel already. It provides better structuring and
slightly better performance by calling isolatedCopy() on the ClientOrigin only once instead of on every call.
No new tests, no web-facing behavior change.
- Modules/web-locks/WebLockManager.cpp:
(WebCore::WebLockManager::MainThreadBridge::create):
(WebCore::WebLockManager::MainThreadBridge::MainThreadBridge):
(WebCore::WebLockManager::MainThreadBridge::requestLock):
(WebCore::WebLockManager::MainThreadBridge::releaseLock):
(WebCore::WebLockManager::MainThreadBridge::abortLockRequest):
(WebCore::WebLockManager::MainThreadBridge::query):
(WebCore::WebLockManager::MainThreadBridge::clientIsGoingAway):
(WebCore::WebLockManager::MainThreadBridge::ensureOnMainThread):
(WebCore::WebLockManager::WebLockManager):
(WebCore::WebLockManager::request):
(WebCore::WebLockManager::didCompleteLockRequest):
(WebCore::WebLockManager::query):
(WebCore::WebLockManager::signalToAbortTheRequest):
(WebCore::WebLockManager::clientIsGoingAway):
(WebCore::WebLockManager::requestLockOnMainThread): Deleted.
(WebCore::WebLockManager::releaseLockOnMainThread): Deleted.
(WebCore::WebLockManager::abortLockRequestOnMainThread): Deleted.
(WebCore::WebLockManager::queryOnMainThread): Deleted.
(WebCore::WebLockManager::ensureOnMainThread): Deleted.
- Modules/web-locks/WebLockManager.h:
- 6:35 PM Changeset in webkit [286473] by
-
- 1 copy in tags/Safari-612.3.6.1.7
Tag Safari-612.3.6.1.7.
- 6:14 PM Changeset in webkit [286472] by
-
- 2 edits in trunk/LayoutTests
[ Monterey ] http/tests/workers/service/serviceworker-websocket.https.html (layout-test) is constant text failure
https://bugs.webkit.org/show_bug.cgi?id=233665
Unreviewed test gardening.
- platform/mac-wk2/TestExpectations:
- 6:06 PM Changeset in webkit [286471] by
-
- 2 edits in trunk/Source/JavaScriptCore
Lower structureHeapAddressSize on more memory limited ARM64 devices
https://bugs.webkit.org/show_bug.cgi?id=233786
<rdar://85940431>
Reviewed by Yusuke Suzuki.
Some processes using JSC are failing the mmap for the 1GB region.
Let's lower the region size to 512MB on lower memory iOS devices.
- runtime/JSCConfig.h:
- 5:42 PM Changeset in webkit [286470] by
-
- 2 edits in trunk/Source/WebKit
Make enum values consisten in ApplicationManifest::Icon::Purpose
and _WKApplicationManifestIconPurpose
https://bugs.webkit.org/show_bug.cgi?id=233764
rdar://85976270
Patch by Rachel Ginsberg <rginsberg@apple.com> on 2021-12-02
Reviewed by Brent Fulgham.
The ApplicationManifest tests already check for 1, 2, and 4 respectively.
- UIProcess/API/Cocoa/_WKApplicationManifest.h:
Set the _WKApplicationManifestIconPurpose enum values to
1, 2, 4 to match the enum values set in ApplicationManifest::Icon::Purpose.
Those values are used in ApplicationManifest because an
OptionSet is used.
- 5:14 PM Changeset in webkit [286469] by
-
- 3 edits in trunk/Source/WebKit
[WP][iOS] Add telemetry to determine which system calls are only used on process launch
https://bugs.webkit.org/show_bug.cgi?id=233649
<rdar://problem/85875930>
Reviewed by Brent Fulgham.
Add telemetry to determine which system calls are only used on WebContent process launch on iOS.
- Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb.in:
- WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::create):
- 5:03 PM Changeset in webkit [286468] by
-
- 2 edits in trunk/Tools
[resultsdbpy] Python 3.10 compatibility
https://bugs.webkit.org/show_bug.cgi?id=233771
<rdar://problem/85978234>
Reviewed by Dewei Zhu.
- Tools/Scripts/libraries/resultsdbpy/resultsdbpy/model/configuration_context.py:
Canonical link: https://commits.webkit.org/244808@main
- 4:56 PM Changeset in webkit [286467] by
-
- 4 edits in trunk/Tools
[git-webkit] Handle ambiguous branch names in land
https://bugs.webkit.org/show_bug.cgi?id=233763
<rdar://problem/85973434>
Reviewed by Dewei Zhu.
- Scripts/libraries/webkitscmpy/setup.py: Bump version.
- Scripts/libraries/webkitscmpy/webkitscmpy/init.py: Ditto.
- Scripts/libraries/webkitscmpy/webkitscmpy/local/git.py:
(Git.rebase): Be explicit about the name of the target branch when modifying timestamps.
Canonical link: https://commits.webkit.org/244807@main
- 4:37 PM Changeset in webkit [286466] by
-
- 12 edits1 add in trunk/Source/WebCore
[GPU Process] Move the FilterEffect boundaries to a new class FilterEffectGeometry
https://bugs.webkit.org/show_bug.cgi?id=233618
rdar://85881969
Reviewed by Cameron McCormack.
The plan is to have Filter own its geometry and the geometry of the
FilterEffects. So move the boundaries and their flags from FilterEffect
to a new class called FilterEffectGeometry.
SVGFilterBuilder will calculate the FilterEffectGeometry for each FilterEffect
and store it in map { key: FilterEffect, value: FilterEffectGeometry }.
Eventually this map is moved to SVGFilter which will be used in the
virtual function effectGeometry(). determineFilterPrimitiveSubregion()
will call this virtual function to calculate the primitive subregion.
- Headers.cmake:
- WebCore.xcodeproj/project.pbxproj:
- platform/graphics/filters/Filter.h:
(WebCore::Filter::effectGeometry const):
- platform/graphics/filters/FilterEffect.cpp:
(WebCore::FilterEffect::determineFilterPrimitiveSubregion):
(WebCore::FilterEffect::apply):
- platform/graphics/filters/FilterEffect.h:
(WebCore::FilterEffect::hasX const): Deleted.
(WebCore::FilterEffect::setHasX): Deleted.
(WebCore::FilterEffect::hasY const): Deleted.
(WebCore::FilterEffect::setHasY): Deleted.
(WebCore::FilterEffect::hasWidth const): Deleted.
(WebCore::FilterEffect::setHasWidth): Deleted.
(WebCore::FilterEffect::hasHeight const): Deleted.
(WebCore::FilterEffect::setHasHeight): Deleted.
(WebCore::FilterEffect::effectBoundaries const): Deleted.
(WebCore::FilterEffect::setEffectBoundaries): Deleted.
- platform/graphics/filters/FilterEffectGeometry.h: Added.
(WebCore::FilterEffectGeometry::FilterEffectGeometry):
(WebCore::FilterEffectGeometry::x const):
(WebCore::FilterEffectGeometry::y const):
(WebCore::FilterEffectGeometry::width const):
(WebCore::FilterEffectGeometry::height const):
- svg/SVGFilterPrimitiveStandardAttributes.cpp:
(WebCore::SVGFilterPrimitiveStandardAttributes::setStandardAttributes const): Deleted.
- svg/SVGFilterPrimitiveStandardAttributes.h:
- svg/graphics/filters/SVGFilter.cpp:
(WebCore::SVGFilter::create):
(WebCore::SVGFilter::effectGeometry const):
- svg/graphics/filters/SVGFilter.h:
- svg/graphics/filters/SVGFilterBuilder.cpp:
(WebCore::boundarySetFlagsForElement):
(WebCore::SVGFilterBuilder::buildFilterEffects):
- svg/graphics/filters/SVGFilterBuilder.h:
(WebCore::SVGFilterBuilder::takeEffectGeometryMap):
- 4:35 PM Changeset in webkit [286465] by
-
- 6 edits in trunk/Source
[WP] Strengthen sandbox when AppCache is disabled
https://bugs.webkit.org/show_bug.cgi?id=233746
<rdar://problem/85953893>
Reviewed by Brent Fulgham.
Source/WebKit:
When AppCache is disabled, we can remove access to some resources in the WebContent process' sandbox.
This is implemented using a new sandbox state variable representing the AppCache state.
- Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb.in:
- WebProcess/WebPage/WebPage.cpp:
- WebProcess/com.apple.WebProcess.sb.in:
Source/WTF:
Add HAVE macro for sandbox state flags support.
- wtf/PlatformHave.h:
- 4:32 PM Changeset in webkit [286464] by
-
- 6 edits6 moves1 add in trunk/Source/WebCore
Move Shared Worker classes to WebCore/workers/shared
https://bugs.webkit.org/show_bug.cgi?id=233769
Reviewed by Alex Christensen.
Move Shared Worker classes to WebCore/workers/shared, for better structuring and consistency
with WebCore/workers/service.
- CMakeLists.txt:
- DerivedSources.make:
- WebCore.xcodeproj/project.pbxproj:
- workers/shared/SharedWorker.cpp: Renamed from Source/WebCore/workers/SharedWorker.cpp.
- workers/shared/SharedWorker.h: Renamed from Source/WebCore/workers/SharedWorker.h.
- workers/shared/SharedWorker.idl: Renamed from Source/WebCore/workers/SharedWorker.idl.
- workers/shared/SharedWorkerGlobalScope.cpp: Renamed from Source/WebCore/workers/SharedWorkerGlobalScope.cpp.
- workers/shared/SharedWorkerGlobalScope.h: Renamed from Source/WebCore/workers/SharedWorkerGlobalScope.h.
- workers/shared/SharedWorkerGlobalScope.idl: Renamed from Source/WebCore/workers/SharedWorkerGlobalScope.idl.
- 4:14 PM Changeset in webkit [286463] by
-
- 1 edit in branches/safari-612-branch/Source/WebCore/page/csp/ContentSecurityPolicy.cpp
Unreviewed build fix. rdar://problem/85943167
candidate function not viable: no known conversion from 'const WTF::String' to 'const WTF::URL' for 3rd argument
- 4:12 PM Changeset in webkit [286462] by
-
- 3 edits1 add in trunk
Fix OOM crash in JSValue::toWTFStringForConsole
https://bugs.webkit.org/show_bug.cgi?id=233775
<rdar://85259423>
Reviewed by Mark Lam.
JSTests:
- stress/pretty-print-oom.js: Added.
Source/JavaScriptCore:
- runtime/JSCJSValue.cpp:
(JSC::JSValue::toWTFStringForConsole const):
- 3:49 PM Changeset in webkit [286461] by
-
- 33 edits10 adds in trunk
Re-add support of image control menus.
https://bugs.webkit.org/show_bug.cgi?id=233305
Reviewed by Tim Horton.
Source/WebCore:
Test: fast/images/image-controls-basic.html
Image control menus are needed for mail transition to modern WebKit, so re-add them
after the removal in https://trac.webkit.org/changeset/272117/webkit
- DerivedSources-input.xcfilelist:
- DerivedSources.make:
- Sources.txt:
- WebCore.xcodeproj/project.pbxproj:
- css/CSSPrimitiveValueMappings.h:
(WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
- css/CSSProperties.json:
- css/CSSValueKeywords.in:
- css/parser/CSSParserIdioms.cpp:
(WebCore::isValueAllowedInMode):
- dom/mac/ImageControlsMac.cpp: Added.
(WebCore::ImageControlsMac::imageControlsElementIdentifier):
(WebCore::ImageControlsMac::imageControlsButtonIdentifier):
(WebCore::ImageControlsMac::hasControls):
(WebCore::ImageControlsMac::imageControlHost):
(WebCore::ImageControlsMac::isImageControlsButtonElement):
(WebCore::ImageControlsMac::containerRect):
(WebCore::ImageControlsMac::createImageControls):
- dom/mac/ImageControlsMac.h: Added.
- html/HTMLAttributeNames.in:
- html/HTMLImageElement.cpp:
(WebCore::HTMLImageElement::HTMLImageElement):
(WebCore::HTMLImageElement::parseAttribute):
(WebCore::HTMLImageElement::didAttachRenderers):
(WebCore::HTMLImageElement::updateImageControls):
(WebCore::HTMLImageElement::tryCreateImageControls):
(WebCore::HTMLImageElement::destroyImageControls):
(WebCore::HTMLImageElement::hasImageControls const):
(WebCore::HTMLImageElement::childShouldCreateRenderer const):
- html/HTMLImageElement.h:
(WebCore::HTMLImageElement::hasShadowControls const):
- html/shadow/mac/ImageControlsMac.css: Added.
(#if defined(ENABLE_SERVICE_CONTROLS) && ENABLE_SERVICE_CONTROLS):
(button#image-controls-button):
(div#image-controls:hover button#image-controls-button):
- html/shadow/mac/ImageControlsRootElementMac.cpp: Added.
(WebCore::xWebkitImageControlsElementIdentifier):
(WebCore::RenderImageControls::RenderImageControls):
(WebCore::RenderImageControls::updateLogicalWidth):
(WebCore::RenderImageControls::computeLogicalHeight const):
(WebCore::hasControl):
(WebCore::imageControlHost):
(WebCore::isImageControls):
(WebCore::ImageControlsRootElement::tryCreate):
(WebCore::ImageControlsRootElementMac::ImageControlsRootElementMac):
(WebCore::ImageControlsRootElementMac::createElementRenderer):
- html/shadow/mac/ImageControlsRootElementMac.h: Added.
- page/ContextMenuController.cpp:
(WebCore::imageFromImageElementNode):
(WebCore::ContextMenuController::maybeCreateContextMenu):
(WebCore::ContextMenuController::showImageControlsMenu):
- page/ContextMenuController.h:
- page/EventHandler.cpp:
(WebCore::EventHandler::textRecognitionCandidateElement const):
- platform/ThemeTypes.cpp:
(WebCore::operator<<):
- platform/ThemeTypes.h:
- rendering/RenderImage.cpp:
(WebCore::RenderImage::RenderImage):
- rendering/RenderTheme.cpp:
(WebCore::RenderTheme::adjustStyle):
(WebCore::RenderTheme::paint):
(WebCore::RenderTheme::paintBorderOnly):
(WebCore::RenderTheme::paintDecorations):
(WebCore::RenderTheme::adjustImageControlsButtonStyle const):
- rendering/RenderTheme.h:
(WebCore::RenderTheme::imageControlsButtonSize const):
(WebCore::RenderTheme::imageControlsButtonPositionOffset const):
(WebCore::RenderTheme::paintImageControlsButton):
- rendering/RenderThemeMac.h:
- rendering/RenderThemeMac.mm:
(WebCore::RenderThemeMac::documentViewFor const):
(WebCore::RenderThemeMac::adjustImageControlsButtonStyle const):
(WebCore::RenderThemeMac::servicesRolloverButtonCell const):
(WebCore::RenderThemeMac::paintImageControlsButton):
(WebCore::RenderThemeMac::imageControlsButtonSize const):
(WebCore::RenderThemeMac::imageControlsButtonPositionOffset const):
- style/UserAgentStyle.cpp:
- style/UserAgentStyle.h:
Source/WebCore/PAL:
Move SPI to SPI specific file.
- PAL.xcodeproj/project.pbxproj:
- pal/spi/mac/NSServicesRolloverButtonCellSPI.h: Added.
Source/WebKit:
Image control menus are needed for mail transition to modern WebKit, so re-add them
after the removal in https://trac.webkit.org/changeset/272117/webkit
- Platform/spi/mac/AppKitSPI.h:
- UIProcess/API/C/WKPreferences.cpp:
(WKPreferencesSetImageControlsEnabled):
(WKPreferencesGetImageControlsEnabled):
- UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _setupPageConfiguration:]):
- UIProcess/API/Cocoa/WKWebViewConfiguration.mm:
(-[WKWebViewConfiguration init]):
(-[WKWebViewConfiguration copyWithZone:]):
(-[WKWebViewConfiguration _imageControlsEnabled]):
(-[WKWebViewConfiguration _setImageControlsEnabled:]):
- UIProcess/API/Cocoa/WKWebViewConfigurationPrivate.h:
Source/WTF:
- Scripts/Preferences/WebPreferences.yaml:
LayoutTests:
Update tests to account for image controls.
- fast/images/image-controls-basic.html: Added.
- fast/images/image-controls-basic-expected.txt: Added.
- platform/mac/fast/images/image-controls-basic-expected.txt: Added.
- 3:48 PM Changeset in webkit [286460] by
-
- 7 edits in trunk/Source/WebKit
[iOS] Add required system call to WebKit sandboxes
https://bugs.webkit.org/show_bug.cgi?id=233730
<rdar://85266065>
Reviewed by Brent Fulgham.
- GPUProcess/mac/com.apple.WebKit.GPUProcess.sb.in:
- NetworkProcess/mac/com.apple.WebKit.NetworkProcess.sb.in:
- Resources/SandboxProfiles/ios/com.apple.WebKit.GPU.sb:
- Resources/SandboxProfiles/ios/com.apple.WebKit.Networking.sb:
- Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb.in:
- WebProcess/com.apple.WebProcess.sb.in:
- 3:37 PM Changeset in webkit [286459] by
-
- 32 edits in trunk/Source
[WebGPU] Hook up navigator.gpu.requestAdapter()
https://bugs.webkit.org/show_bug.cgi?id=233619
Source/WebCore:
Reviewed by Dean Jackson.
Hook up Navigator.GPU to WebKitLegacy/WebKit (via ChromeClient) so WebKit can provide a
RemoteGPUProxy "backing" object.
I have a test for this! But unfortunately I can't commit it yet because HAVE(WEBGPU_IMPLEMENTATION)
has to be off until Apple configures its internal build system. As soon as that's done, I'll add
the test for this!!! (The test passes when run locally.)
- Configurations/WebCore.xcconfig: Weak link with WebGPU.framework. This will
succeed even if WebGPU.framework doesn't exist.
- Modules/WebGPU/GPU.cpp:
(WebCore::GPU::setBacking): This is for WorkerNavigator. To create a GPU object, we have to
go through ChromeClient, which means we have to use the main thread. This means that creating
the GPU object has to be asynchronous on workers. We handle this by having
WorkerNavigator::gpu() return a shell object with no "backing," and asynchronously kick off a
task to construct a backing object and connect it to the shell object. If content calls
requestAdapter() on the shell, that function is already async, so we just fold in the wait for
the backing into the already-existing wait we have to do as a matter of course. This implements
that.
(WebCore::GPU::requestAdapter):
- Modules/WebGPU/GPU.h:
(WebCore::GPU::create):
(WebCore::GPU::backing): Deleted.
(WebCore::GPU::backing const): Deleted.
(WebCore::GPU::GPU): Deleted.
- Modules/WebGPU/GPUDevice.cpp:
(WebCore::GPUDevice::popErrorScope):
- page/Chrome.cpp:
(WebCore::Chrome::createGPUForWebGPU const): Ask WebKit / WebKitLegacy what kind of backing we
should be using.
- page/Chrome.h:
- page/ChromeClient.h:
(WebCore::ChromeClient::createGPUForWebGPU const):
- page/Navigator.cpp:
(WebCore::Navigator::gpu):
- page/Navigator.h:
- page/NavigatorBase.h:
(WebCore::NavigatorBase::gpu): Deleted.
- page/WorkerNavigator.cpp:
(WebCore::WorkerNavigator::gpu):
- page/WorkerNavigator.h:
Source/WebGPU:
Just hook up enough for Instance::requestAdapter() to not fail.
Reviewed by Dean Jackson.
- WebGPU/Adapter.mm:
(WebGPU::Adapter::getLimits):
- WebGPU/Instance.mm:
(WebGPU::Instance::requestAdapter):
(wgpuCreateInstance):
(wgpuInstanceRequestAdapter):
Source/WebKit:
Reviewed by Dean Jackson.
This hooks up a new message, GPUConnectionToWebProcess::createRemoteGPU(), which starts
the whole WebGPU GPU process infrastructure.
- Configurations/BaseTarget.xcconfig: We have to be able to #include files from WebGPU.
- GPUProcess/GPUConnectionToWebProcess.cpp:
(WebKit::GPUConnectionToWebProcess::createRemoteGPU): GPUConnectionToWebProcess owns
the RemoteGPUs.
- GPUProcess/GPUConnectionToWebProcess.h:
- GPUProcess/GPUConnectionToWebProcess.messages.in:
- Sources.txt:
- WebProcess/GPU/graphics/WebGPU/RemoteGPUProxy.cpp:
(WebKit::RemoteGPUProxy::RemoteGPUProxy): Creating a RemoteGPUProxy needs to send a
message to the GPU process to start the GPU process infrastructure. We block while we're
waiting for the reply from the GPU process. This was copied from RemoteGraphicsContextGL.
(WebKit::RemoteGPUProxy::gpuProcessConnectionDidClose):
- WebProcess/GPU/graphics/WebGPU/RemoteGPUProxy.h:
- WebProcess/WebCoreSupport/WebChromeClient.cpp: Hook up RemoteGPUProxy to WebCore.
(WebKit::WebChromeClient::createGPUForWebGPU const):
- WebProcess/WebCoreSupport/WebChromeClient.h:
Source/WebKitLegacy/mac:
Reviewed by Dean Jackson.
- Configurations/WebKitLegacy.xcconfig: We have to be able to #include files from WebGPU.
- WebCoreSupport/WebChromeClient.h:
- WebCoreSupport/WebChromeClient.mm:
(WebChromeClient::createGPUForWebGPU const): Hook up GPUImpl to WebCore.
Source/WTF:
Reviewed by Dean Jackson.
- wtf/PlatformHave.h: Create a HAVE() macro, by default off. As we bring
more infrastructure online, this will eventually flip to on.
- 3:26 PM Changeset in webkit [286458] by
-
- 14 edits1 add in trunk
[css-values-4] Support
*vi
(inline) and*vb
(block) viewport units
https://bugs.webkit.org/show_bug.cgi?id=232895
<rdar://problem/85179134>
Reviewed by Simon Fraser.
Source/WebCore:
*vi
is equal to 1% of the size of the UA-default/large/small/dynamic viewport size in the direction of the root element’s inline axis.
*vb
is equal to 1% of the size of the initial containing block UA-default/small/large/dynamic viewport size in the direction of the root element’s block axis.
As an example, onabout:blank
:
vi
would be equal tovw
vb
would be equal tovh
svi
would be equal tosvw
svb
would be equal tosvh
lvi
would be equal tolvw
lvb
would be equal tolvh
dvi
would be equal todvw
dvb
would be equal todvh
Spec: <https://drafts.csswg.org/css-values-4/#viewport-variants>
Tests: CSSViewportUnits.AllSame
CSSViewportUnits.EmptyUnobscuredSizeOverrides
CSSViewportUnits.SameUnobscuredSizeOverrides
CSSViewportUnits.DifferentUnobscuredSizeOverrides
CSSViewportUnits.SVGDocument
- css/CSSUnits.h:
- css/CSSUnits.cpp:
(WebCore::operator<<):
- css/CSSPrimitiveValue.h:
(WebCore::CSSPrimitiveValue::isViewportPercentageLength):
- css/CSSPrimitiveValue.cpp:
(WebCore::isValidCSSUnitTypeForDoubleConversion):
(WebCore::isStringType):
(WebCore::CSSPrimitiveValue::cleanup):
(WebCore::lengthOfViewportPhysicalAxisForLogicalAxis): Added.
(WebCore::CSSPrimitiveValue::computeUnzoomedNonCalcLengthDouble):
(WebCore::CSSPrimitiveValue::computeNonCalcLengthDouble):
(WebCore::CSSPrimitiveValue::unitTypeString):
(WebCore::CSSPrimitiveValue::formatNumberForCustomCSSText const):
(WebCore::CSSPrimitiveValue::equals const):
- css/parser/CSSParserToken.cpp:
(WebCore::cssPrimitiveValueUnitFromTrie):
- css/parser/CSSPropertyParserHelpers.cpp:
(WebCore::CSSPropertyParserHelpers::consumeLengthRawWithKnownTokenTypeDimension):
- css/calc/CSSCalcCategoryMapping.cpp:
(WebCore::calcUnitCategory):
(WebCore::calculationCategoryForCombination):
(WebCore::hasDoubleValue):
Source/WebInspectorUI:
- UserInterface/Models/CSSCompletions.js:
Tools:
- TestWebKitAPI/Tests/WebKitCocoa/CSSViewportUnits.html:
- TestWebKitAPI/Tests/WebKitCocoa/CSSViewportUnits.svg: Added.
- TestWebKitAPI/Tests/WebKitCocoa/CSSViewportUnits.mm:
(TEST.CSSViewportUnits.AllSame):
(TEST.CSSViewportUnits.EmptyUnobscuredSizeOverrides):
(TEST.CSSViewportUnits.SameUnobscuredSizeOverrides):
(TEST.CSSViewportUnits.DifferentUnobscuredSizeOverrides):
(TEST.CSSViewportUnits.SVGDocument): Added.
- TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
- 3:07 PM Changeset in webkit [286457] by
-
- 8 edits in branches/safari-612-branch/Source
Unreviewed versioning fix.
rdar://85990909
- 3:05 PM Changeset in webkit [286456] by
-
- 2 edits in trunk/Source/WebCore
Unreviewed follow-up to r286453 to address comments from Darin.
- dom/MessageChannel.h:
(WebCore::MessageChannel::port1 const):
(WebCore::MessageChannel::port2 const):
- 2:59 PM Changeset in webkit [286455] by
-
- 38 edits2 copies5 adds in trunk
[WK2] Make Web Lock API work across multiple WebProcesses
https://bugs.webkit.org/show_bug.cgi?id=233719
Reviewed by Alex Christensen.
Source/WebCore:
Make Web Lock API work across multiple WebProcesses. To achieve this, WebLockRegistry is now
an interface with 2 concrete subclasses:
- LocalWebLockRegistry: In charge of the actual storage of the lock registrations. This is basically a rename of the class that used to be named WebLockRegistry. In the WebKitLegacy case, we use a global LocalWebLockRegistry for regular browsing views and another global LocalWebLockRegistry for private browsing views. In the modern WebKit case, the LocalWebLockRegistry is held in the UIProcess by the WebsiteDataStore. It is held by the WebsiteDataStore because we don't want different sessions to share locks. It lives in the UIProcess because it needs to be shared by several WebProcesses. The NetworkProcess may have been suitable too but it would have meant dealing with crash recovery.
- RemoteWebLockRegistry: It has the same interface has LocalWebLockRegistry but merely proxies calls to the UIProcess via IPC.
In the UIProcess, each WebProcessProxy has a WebLockRegistryProxy instance which listens for
IPC from the RemoteWebLockRegistry in the WebProcess. Upon receiving IPC, it validates the
parameters (since the WebProcesses are not trusted) and calls the corresponding functions on
the LocalWebLockRegistry held by the WebProcessProxy's WebsiteDataStore. The WebLockRegistryProxy
is also in charge of notifying the RemoteWebLockRegistry in the WebProcess whenever a lock
request completes and whenever a held lock gets stolen.
- Modules/web-locks/WebLockManager.cpp:
(WebCore::WebLockManager::request):
(WebCore::WebLockManager::didCompleteLockRequest):
(WebCore::WebLockManager::requestLockOnMainThread):
(WebCore::WebLockManager::releaseLockOnMainThread):
(WebCore::WebLockManager::abortLockRequestOnMainThread):
(WebCore::WebLockManager::queryOnMainThread):
(WebCore::WebLockManager::clientIsGoingAway):
(WebCore::WebLockManager::ensureOnMainThread):
- Modules/web-locks/WebLockManager.h:
- Modules/web-locks/WebLockManagerSnapshot.h:
(WebCore::WebLockManagerSnapshot::Info::encode const):
(WebCore::WebLockManagerSnapshot::encode const):
(WebCore::WebLockManagerSnapshot::Info::decode):
(WebCore::WebLockManagerSnapshot::decode):
- Modules/web-locks/WebLockMode.h:
- Modules/web-locks/WebLockRegistry.cpp:
(WebCore::LocalWebLockRegistry::ensureRegistryForOrigin):
(WebCore::LocalWebLockRegistry::existingRegistryForOrigin const):
(WebCore::LocalWebLockRegistry::PerOriginRegistry::create):
(WebCore::LocalWebLockRegistry::PerOriginRegistry::PerOriginRegistry):
(WebCore::LocalWebLockRegistry::PerOriginRegistry::~PerOriginRegistry):
(WebCore::LocalWebLockRegistry::requestLock):
(WebCore::LocalWebLockRegistry::PerOriginRegistry::requestLock):
(WebCore::LocalWebLockRegistry::releaseLock):
(WebCore::LocalWebLockRegistry::PerOriginRegistry::releaseLock):
(WebCore::LocalWebLockRegistry::abortLockRequest):
(WebCore::LocalWebLockRegistry::PerOriginRegistry::abortLockRequest):
(WebCore::LocalWebLockRegistry::PerOriginRegistry::isGrantable const):
(WebCore::LocalWebLockRegistry::PerOriginRegistry::processLockRequestQueue):
(WebCore::LocalWebLockRegistry::snapshot):
(WebCore::LocalWebLockRegistry::PerOriginRegistry::snapshot):
(WebCore::LocalWebLockRegistry::clientIsGoingAway):
(WebCore::LocalWebLockRegistry::PerOriginRegistry::clientsAreGoingAway):
(WebCore::LocalWebLockRegistry::clientsAreGoingAway):
(): Deleted.
(WebCore::WebLockRegistry::registryForOrigin): Deleted.
(WebCore::WebLockRegistry::WebLockRegistry): Deleted.
(WebCore::WebLockRegistry::~WebLockRegistry): Deleted.
(WebCore::WebLockRegistry::requestLock): Deleted.
(WebCore::WebLockRegistry::releaseLock): Deleted.
(WebCore::WebLockRegistry::abortLockRequest): Deleted.
(WebCore::WebLockRegistry::isGrantable const): Deleted.
(WebCore::WebLockRegistry::processLockRequestQueue): Deleted.
(WebCore::WebLockRegistry::snapshot): Deleted.
(WebCore::WebLockRegistry::clientIsGoingAway): Deleted.
- Modules/web-locks/WebLockRegistry.h:
(WebCore::WebLockRegistry::~WebLockRegistry):
- WebCore.xcodeproj/project.pbxproj:
- loader/EmptyClients.cpp:
(WebCore::pageConfigurationWithEmptyClients):
- page/Page.cpp:
(WebCore::Page::Page):
- page/Page.h:
(WebCore::Page::webLockRegistry):
- page/PageConfiguration.cpp:
(WebCore::PageConfiguration::PageConfiguration):
- page/PageConfiguration.h:
Source/WebKit:
See WebCore changelog.
- CMakeLists.txt:
- DerivedSources-input.xcfilelist:
- DerivedSources-output.xcfilelist:
- DerivedSources.make:
- Scripts/webkit/messages.py:
(types_that_cannot_be_forward_declared):
- Sources.txt:
- UIProcess/WebLockRegistryProxy.cpp: Added.
(WebKit::WebLockRegistryProxy::WebLockRegistryProxy):
(WebKit::WebLockRegistryProxy::~WebLockRegistryProxy):
(WebKit::WebLockRegistryProxy::requestLock):
(WebKit::WebLockRegistryProxy::releaseLock):
(WebKit::WebLockRegistryProxy::abortLockRequest):
(WebKit::WebLockRegistryProxy::snapshot):
(WebKit::WebLockRegistryProxy::clientIsGoingAway):
(WebKit::WebLockRegistryProxy::processDidExit):
- UIProcess/WebLockRegistryProxy.h: Added.
- UIProcess/WebLockRegistryProxy.messages.in: Added.
- UIProcess/WebProcessProxy.cpp:
(WebKit::m_webLockRegistry):
(WebKit::WebProcessProxy::shutDown):
- UIProcess/WebProcessProxy.h:
- UIProcess/WebsiteData/WebsiteDataStore.cpp:
(WebKit::WebsiteDataStore::WebsiteDataStore):
- UIProcess/WebsiteData/WebsiteDataStore.h:
(WebKit::WebsiteDataStore::webLockRegistry):
- WebKit.xcodeproj/project.pbxproj:
- WebProcess/Storage/WebSWContextManagerConnection.cpp:
(WebKit::WebSWContextManagerConnection::installServiceWorker):
- WebProcess/WebCoreSupport/RemoteWebLockRegistry.cpp: Added.
(WebKit::RemoteWebLockRegistry::LocksSnapshot::isEmpty const):
(WebKit::RemoteWebLockRegistry::RemoteWebLockRegistry):
(WebKit::RemoteWebLockRegistry::~RemoteWebLockRegistry):
(WebKit::RemoteWebLockRegistry::requestLock):
(WebKit::RemoteWebLockRegistry::releaseLock):
(WebKit::RemoteWebLockRegistry::abortLockRequest):
(WebKit::RemoteWebLockRegistry::snapshot):
(WebKit::RemoteWebLockRegistry::clientIsGoingAway):
(WebKit::RemoteWebLockRegistry::didCompleteLockRequest):
(WebKit::RemoteWebLockRegistry::didStealLock):
- WebProcess/WebCoreSupport/RemoteWebLockRegistry.h: Added.
- WebProcess/WebCoreSupport/RemoteWebLockRegistry.messages.in: Added.
- WebProcess/WebPage/WebPage.cpp:
(WebKit::m_appHighlightsVisible):
- WebProcess/WebProcess.cpp:
(WebKit::WebProcess::WebProcess):
- WebProcess/WebProcess.h:
(WebKit::WebProcess::webLockRegistry):
Source/WebKitLegacy/mac:
See WebCore changelog.
- WebView/WebView.mm:
(getOrCreateWebLockRegistry):
(-[WebView _commonInitializationWithFrameName:groupName:]):
(-[WebView initSimpleHTMLDocumentWithStyle:frame:preferences:groupName:]):
Source/WebKitLegacy/win:
See WebCore Changelog.
- WebView.cpp:
(getOrCreateWebLockRegistry):
(WebView::initWithFrame):
Tools:
Add API test coverage.
- TestWebKitAPI/SourcesCocoa.txt:
- TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
- TestWebKitAPI/Tests/WebKitCocoa/WebLocks.mm: Added.
(TestWebKitAPI::TEST):
- 2:27 PM Changeset in webkit [286454] by
-
- 2 edits in trunk/Source/WebCore
[Apple Pay] recurring line items appear way in the future
https://bugs.webkit.org/show_bug.cgi?id=233779
<rdar://problem/85976407>
Reviewed by Wenson Hsieh.
JavaScript
Date
uses a milliseconds-based value, whereas nativeNSDate
is seconds-based.
- Modules/applepay/cocoa/PaymentSummaryItemsCocoa.mm:
(WebCore::toDate):
- 2:22 PM Changeset in webkit [286453] by
-
- 5 edits in trunk/Source/WebCore
MessageChannel::port1() / port2() should return references instead of pointers
https://bugs.webkit.org/show_bug.cgi?id=233772
Reviewed by Alex Christensen.
This was extracted from Alex Christensen's large patch at Bug 230382.
- Modules/webaudio/AudioWorkletNode.cpp:
(WebCore::AudioWorkletNode::create):
- bindings/js/JSMessageChannelCustom.cpp:
(WebCore::JSMessageChannel::visitAdditionalChildren):
- dom/MessageChannel.cpp:
(WebCore::generateMessagePorts):
(WebCore::MessageChannel::MessageChannel):
- dom/MessageChannel.h:
(WebCore::MessageChannel::port1 const):
(WebCore::MessageChannel::port2 const):
- 2:21 PM Changeset in webkit [286452] by
-
- 13 edits in trunk
[Payment Request] Validate payment method data on construction
https://bugs.webkit.org/show_bug.cgi?id=233292
<rdar://problem/85736007>
Reviewed by Andy Estes.
Source/WebCore:
This will allow developers to replace any
ApplePaySession.supportsVersion
check(s) by
attempting to create aPaymentRequest
object with data specific to Apple Pay. This is
actually an improvement, because it'll also allow developers to catch most errors in that
data earlier, as previously any errors would only be thrown whenshow()
is called.
Spec: <https://github.com/w3c/payment-request/pull/976>
Test: http/tests/ssl/applepay/PaymentRequest.https.html
- Modules/paymentrequest/PaymentRequest.cpp:
(WebCore::PaymentRequest::show):
- Modules/paymentrequest/PaymentHandler.h:
Adjust
PaymentHandler::convertData
to take aDocument
so that additional validation
can be performed on the provided payment method(s) (e.g. check the Apple Pay version).
- Modules/applepay/PaymentRequestValidator.h:
- Modules/applepay/PaymentRequestValidator.mm:
(WebCore::PaymentRequestValidator::validate):
Allow callers to choose what fields to validate. This is needed because when the
ApplePaySessionPaymentRequest
created/converted when validating the payment method data in
thePaymentRequest
constructor isn't able to get fields from thePaymentRequest
as it
hasn't been created yet.
- Modules/applepay/ApplePaySession.cpp:
(WebCore::convertAndValidate):
- Modules/applepay/paymentrequest/ApplePayPaymentHandler.h:
- Modules/applepay/paymentrequest/ApplePayPaymentHandler.cpp:
(WebCore::convertAndValidateApplePayRequest):
(WebCore::ApplePayPaymentHandler::convertData):
(WebCore::ApplePayPaymentHandler::show):
- Modules/applepay-ams-ui/ApplePayAMSUIPaymentHandler.h:
- Modules/applepay-ams-ui/ApplePayAMSUIPaymentHandler.cpp:
(WebCore::convertAndValidateApplePayAMSUIRequest):
(WebCore::ApplePayAMSUIPaymentHandler::convertData):
LayoutTests:
- http/tests/ssl/applepay/PaymentRequest.https.html:
- http/tests/ssl/applepay/PaymentRequest.https-expected.txt:
- 1:51 PM Changeset in webkit [286451] by
-
- 9 edits in trunk/LayoutTests
[WinCairo] Unreviewed test gardening
- platform/wincairo-wk1/TestExpectations:
- platform/wincairo/TestExpectations:
- platform/wincairo/fast/box-shadow/basic-shadows-expected.txt:
- platform/wincairo/fast/dom/52776-expected.txt:
- platform/wincairo/fast/text/atsui-rtl-override-selection-expected.txt:
- platform/wincairo/fast/text/international/bidi-LDB-2-formatting-characters-expected.txt:
- platform/wincairo/fast/text/international/bidi-ignored-for-first-child-inline-expected.txt:
- platform/wincairo/fast/text/international/bidi-neutral-run-expected.txt:
- 1:33 PM Changeset in webkit [286450] by
-
- 4 edits in trunk
[ Monterey ] fast/images/text-recognition/mac/image-overlay-text-disables-app-highlight-menu-items.html (layout-test) is a constant text failure
https://bugs.webkit.org/show_bug.cgi?id=233658
rdar://problem/85886424
Reviewed by Tim Horton.
Source/WTF:
Define ENABLE_APP_HIGHLIGHTS for iOS 15+ and macOS Monterey+. This ensures that
internals.appHighlightContextMenuItemTitles
is defined in layout tests on Monterey.
- wtf/PlatformEnableCocoa.h:
Tools:
Add a forward declaration for open source builds.
- TestWebKitAPI/ios/UIKitSPI.h:
- 1:26 PM Changeset in webkit [286449] by
-
- 3 edits in trunk/Source/WebCore
Verify borderRect is Renderable
https://bugs.webkit.org/show_bug.cgi?id=232650
Patch by Brandon Stewart <Brandon> on 2021-12-02
Reviewed by Alan Bujtas.
Verify that borderRect is renderable.
Align isRenderable() implementations in RoundedRect and FloatRoundedRect.
- platform/graphics/RoundedRect.cpp:
(WebCore::RoundedRect::isRenderable const):
- rendering/RenderBoxModelObject.cpp:
(WebCore::RenderBoxModelObject::paintBoxShadow):
- 1:25 PM Changeset in webkit [286448] by
-
- 2 edits in trunk/Source/WebCore
[LFC][IFC] Redundant line run type checking in InlineDisplayContentBuilder::processNonBidiContent
https://bugs.webkit.org/show_bug.cgi?id=233597
Reviewed by Antti Koivisto.
- layout/formattingContexts/inline/InlineDisplayContentBuilder.cpp:
(WebCore::Layout::InlineDisplayContentBuilder::processNonBidiContent):
- 1:13 PM Changeset in webkit [286447] by
-
- 35 edits in trunk/Source/WebCore
Remove the multipart parameter to FormAssociatedElement::appendFormData, InputType::appendFormData and HTMLFormElement::constructEntryList
https://bugs.webkit.org/show_bug.cgi?id=233774
Patch by Andreu Botella <andreu@andreubotella.com> on 2021-12-02
Reviewed by Chris Dumez.
These parameters were only needed because of an optimization where file inputs were being
added to the DOMFormData as string values containing their filenames if the entry list was
being constructed to be used in a urlencoded or text/plain form submission. This
optimization was removed in r286427 and those parameters can now be dropped.
No behavior change.
- html/BaseButtonInputType.cpp:
(WebCore::BaseButtonInputType::appendFormData const):
- html/BaseButtonInputType.h:
- html/BaseCheckableInputType.cpp:
(WebCore::BaseCheckableInputType::appendFormData const):
- html/BaseCheckableInputType.h:
- html/DOMFormData.cpp:
(WebCore::DOMFormData::create):
- html/FileInputType.cpp:
(WebCore::FileInputType::appendFormData const):
- html/FileInputType.h:
- html/FormAssociatedElement.h:
(WebCore::FormAssociatedElement::appendFormData):
- html/HTMLButtonElement.cpp:
(WebCore::HTMLButtonElement::appendFormData):
- html/HTMLButtonElement.h:
- html/HTMLFormControlElement.h:
- html/HTMLFormElement.cpp:
(WebCore::HTMLFormElement::constructEntryList):
- html/HTMLFormElement.h:
- html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::appendFormData):
- html/HTMLInputElement.h:
- html/HTMLKeygenElement.cpp:
(WebCore::HTMLKeygenElement::appendFormData):
- html/HTMLKeygenElement.h:
- html/HTMLObjectElement.cpp:
(WebCore::HTMLObjectElement::appendFormData):
- html/HTMLObjectElement.h:
- html/HTMLSelectElement.cpp:
(WebCore::HTMLSelectElement::appendFormData):
- html/HTMLSelectElement.h:
- html/HTMLTextAreaElement.cpp:
(WebCore::HTMLTextAreaElement::appendFormData):
- html/HTMLTextAreaElement.h:
- html/HiddenInputType.cpp:
(WebCore::HiddenInputType::appendFormData const):
- html/HiddenInputType.h:
- html/ImageInputType.cpp:
(WebCore::ImageInputType::appendFormData const):
- html/ImageInputType.h:
- html/InputType.cpp:
(WebCore::InputType::appendFormData const):
- html/InputType.h:
- html/SubmitInputType.cpp:
(WebCore::SubmitInputType::appendFormData const):
- html/SubmitInputType.h:
- html/TextFieldInputType.cpp:
(WebCore::TextFieldInputType::appendFormData const):
- html/TextFieldInputType.h:
- loader/FormSubmission.cpp:
(WebCore::FormSubmission::create):
- 1:04 PM Changeset in webkit [286446] by
-
- 2 edits in trunk/Source/WebCore
[LFC][IFC] Introduce createDisplayBoxesInVisualOrderForContentRuns
https://bugs.webkit.org/show_bug.cgi?id=233733
Reviewed by Antti Koivisto.
Revert some of the inline box related bidi changes and start with
a very simple "let's create the display boxes for all _content_ runs in visual order".
This is very similar to InlineDisplayContentBuilder::processNonBidiContent() where we just
loop through the content and construct display boxes.
This is also in preparation for advancing with the inline box case.
- layout/formattingContexts/inline/InlineDisplayContentBuilder.cpp:
(WebCore::Layout::InlineDisplayContentBuilder::processNonBidiContent):
(WebCore::Layout::InlineDisplayContentBuilder::processBidiContent):
- 12:22 PM Changeset in webkit [286445] by
-
- 3 edits in trunk/Source/WebCore
[LFC][IFC] Move inline box geometry (BoxGeometry) update logic to a dedicated function
https://bugs.webkit.org/show_bug.cgi?id=233615
Reviewed by Antti Koivisto.
This is also in preparation for computing the BoxGeometry for bidi inline boxes.
- layout/formattingContexts/inline/InlineDisplayContentBuilder.cpp:
(WebCore::Layout::InlineDisplayContentBuilder::setInlineBoxGeometry):
(WebCore::Layout::InlineDisplayContentBuilder::appendInlineBoxDisplayBox):
(WebCore::Layout::InlineDisplayContentBuilder::appendSpanningInlineBoxDisplayBox):
- layout/formattingContexts/inline/InlineDisplayContentBuilder.h:
- 12:09 PM Changeset in webkit [286444] by
-
- 4 edits in trunk
html/semantics/forms/constraints/input-number-validity-dynamic-value-no-change.html WPT test is failing
https://bugs.webkit.org/show_bug.cgi?id=233765
Reviewed by Darin Adler.
LayoutTests/imported/w3c:
Rebaseline WPT test that is now passing.
- web-platform-tests/html/semantics/forms/constraints/input-number-validity-dynamic-value-no-change-expected.txt:
Source/WebCore:
Per https://html.spec.whatwg.org/#concept-input-min-zero, step base needs to be computed based on
the 'min' attribute, then fallback to the 'value' attribute and finally fallback to the default
step base. WebKit was missing the "fallback to the 'value' attribute logic.
No new tests, rebaselined existing test.
- html/NumberInputType.cpp:
(WebCore::NumberInputType::createStepRange const):
- 11:54 AM Changeset in webkit [286443] by
-
- 3 edits in branches/safari-612-branch
Revert r286394. rdar://problem/83070565
- 11:54 AM Changeset in webkit [286442] by
-
- 3 edits2 deletes in branches/safari-612-branch
Revert r286395. rdar://problem/83070565
- 11:49 AM Changeset in webkit [286441] by
-
- 3 edits2 adds in trunk
Fix crash in GraphicsContextCG::endTransparencyLayer
https://bugs.webkit.org/show_bug.cgi?id=230230
Patch by Tim Nguyen <ntim@apple.com> on 2021-12-02
Reviewed by Myles C. Maxfield.
Source/WebCore:
The crash was due to unbalanced calls to begin and end transparency layers.
A branch handling ancestors of transparent layers that are transform root needed to be
aware of the top layer. Opacity on ancestors don't affect top layer elements so calling
beginTransparencyLayers
onparent()
is incorrect.
Also fix
transparentPaintingAncestor()
to be top layer aware to avoid flickering layers
while scrolling.
Test: fast/layers/top-layer-ancestor-opacity-and-transform-crash.html
- rendering/RenderLayer.cpp:
(WebCore::RenderLayer::transparentPaintingAncestor):
(WebCore::RenderLayer::paintLayerWithEffects):
LayoutTests:
- fast/layers/top-layer-ancestor-opacity-and-transform-crash-expected.txt: Added.
- fast/layers/top-layer-ancestor-opacity-and-transform-crash.html: Added.
- 11:39 AM Changeset in webkit [286440] by
-
- 2 edits in trunk/Tools
REGRESSION: r286075 [ Big Sur x86] 2 TestWebKitAPI.WebPushD (API-Tests) are constant failures
https://bugs.webkit.org/show_bug.cgi?id=233726
Unreviewed gardening.
- Disabling these tests on all Mac platforms until we can figure out the code signing/etc situation
- Fix the truly broken "basic" test everywhere by adapting to messaging changes
- TestWebKitAPI/Tests/WebKitCocoa/WebPushDaemon.mm:
(TestWebKitAPI::TEST):
- 11:35 AM Changeset in webkit [286439] by
-
- 3 edits2 deletes in trunk
Unreviewed, reverting r285570.
Broke StarD build
Reverted changeset:
"Fix crash in GraphicsContextCG::endTransparencyLayer"
https://bugs.webkit.org/show_bug.cgi?id=230230
https://commits.webkit.org/r285570
- 11:19 AM Changeset in webkit [286438] by
-
- 6 edits in trunk/Source
Unreviewed, reverting r286437.
https://bugs.webkit.org/show_bug.cgi?id=233776
Introduced test failure
Reverted changeset:
"[WP] Strengthen sandbox when AppCache is disabled"
https://bugs.webkit.org/show_bug.cgi?id=233746
https://commits.webkit.org/r286437
- 10:44 AM Changeset in webkit [286437] by
-
- 6 edits in trunk/Source
[WP] Strengthen sandbox when AppCache is disabled
https://bugs.webkit.org/show_bug.cgi?id=233746
<rdar://problem/85953893>
Reviewed by Brent Fulgham.
Source/WebKit:
When AppCache is disabled, we can remove access to some resources in the WebContent process' sandbox.
This is implemented using a new sandbox state variable representing the AppCache state.
- Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb.in:
- WebProcess/WebPage/WebPage.cpp:
- WebProcess/com.apple.WebProcess.sb.in:
Source/WTF:
Add HAVE macro for sandbox state flags support.
- wtf/PlatformHave.h:
- 9:57 AM Changeset in webkit [286436] by
-
- 2 edits in branches/safari-613.1.10-branch/Source/WebKit
Cherry-pick r286381. rdar://problem/85832755
[WP] Sandbox telemetry is missing for some system calls
https://bugs.webkit.org/show_bug.cgi?id=233594
<rdar://problem/85832755>
Reviewed by Brent Fulgham.
Sandbox telemetry is missing for some system calls, since telemetry rules are automatically overridden in some cases.
This patch is addressing this by disabling system call inference.
- WebProcess/com.apple.WebProcess.sb.in:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@286381 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 9:57 AM Changeset in webkit [286435] by
-
- 2 edits in branches/safari-613.1.10-branch/Source/WebKit
Cherry-pick r286266. rdar://problem/85832755
[WP] Sandbox telemetry is missing for some system calls
https://bugs.webkit.org/show_bug.cgi?id=233594
<rdar://problem/85832755>
Reviewed by Brent Fulgham.
Sandbox telemetry is missing for some system calls, since telemetry rules are automatically overridden in some cases.
This patch is addressing this by disabling system call inference.
- Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb.in:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@286266 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 9:48 AM Changeset in webkit [286434] by
-
- 2 edits in trunk/Source/WTF
[macCatalyst] Enable support for date/time inputs
https://bugs.webkit.org/show_bug.cgi?id=233710
rdar://80108114
Reviewed by Tim Horton.
Date/time inputs were unsupported due to the lack of support for custom
views inside UIContextMenuInteractions on macCatalyst.
However, after date/time pickers transitioned to use
_UIDatePickerOverlayPresentation in iOS 15, there is nothing preventing
them from functioning on macCatalyst.
- Scripts/Preferences/WebPreferencesInternal.yaml:
- 9:36 AM Changeset in webkit [286433] by
-
- 6 edits8 adds in trunk
[:has() pseudo-class] Invalidation in non-subject position
https://bugs.webkit.org/show_bug.cgi?id=233758
Reviewed by Simon Fraser.
LayoutTests/imported/w3c:
- web-platform-tests/css/selectors/invalidation/has-in-adjacent-position-expected.txt: Added.
- web-platform-tests/css/selectors/invalidation/has-in-adjacent-position.html: Added.
- web-platform-tests/css/selectors/invalidation/has-in-ancestor-position-expected.txt: Added.
- web-platform-tests/css/selectors/invalidation/has-in-ancestor-position.html: Added.
- web-platform-tests/css/selectors/invalidation/has-in-parent-position-expected.txt: Added.
- web-platform-tests/css/selectors/invalidation/has-in-parent-position.html: Added.
- web-platform-tests/css/selectors/invalidation/has-in-sibling-position-expected.txt: Added.
- web-platform-tests/css/selectors/invalidation/has-in-sibling-position.html: Added.
Source/WebCore:
Invalidation for selectors like '.ancestor:has(.foo) #target'.
Tests: imported/w3c/web-platform-tests/css/selectors/invalidation/has-in-adjacent-position.html
imported/w3c/web-platform-tests/css/selectors/invalidation/has-in-ancestor-position.html
imported/w3c/web-platform-tests/css/selectors/invalidation/has-in-parent-position.html
imported/w3c/web-platform-tests/css/selectors/invalidation/has-in-sibling-position.html
- style/ChildChangeInvalidation.cpp:
(WebCore::Style::ChildChangeInvalidation::invalidateForChangedElement):
(WebCore::Style::needsTraversal):
(WebCore::Style::needsDescendantTraversal):
- style/RuleFeature.cpp:
(WebCore::Style::isSiblingOrSubject):
(WebCore::Style::isHasPseudoClassMatchElement):
(WebCore::Style::computeHasPseudoClassMatchElement):
(WebCore::Style::computeSubSelectorMatchElement):
Use new MatchElement::HasNonSubject as a catch-all for cases where :has() is in a non-subject position.
In the future this can be optimized better by computing both the :has match element and the overall
match element separately.
- style/RuleFeature.h:
- style/StyleInvalidator.cpp:
(WebCore::Style::Invalidator::invalidateStyleWithMatchElement):
Worst-case invalidation.
- 8:44 AM Changeset in webkit [286432] by
-
- 3 edits in trunk/Source/WebKit
Add some logging to NetworkRTCProvider
https://bugs.webkit.org/show_bug.cgi?id=233759
Reviewed by Eric Carlson.
No change of behavior.
- NetworkProcess/webrtc/NetworkRTCProvider.cpp:
(WebKit::NetworkRTCProvider::addSocket):
- NetworkProcess/webrtc/NetworkRTCUDPSocketCocoa.mm:
(WebKit::NetworkRTCUDPSocketCocoaConnections::NetworkRTCUDPSocketCocoaConnections):
- 8:33 AM Changeset in webkit [286431] by
-
- 2 edits in trunk/Source/WTF
macOS Monterey build fix after r286420 (suggested by Brady).
- wtf/PlatformHave.h:
- 8:28 AM Changeset in webkit [286430] by
-
- 2 edits in trunk/Source/WebKit
REGRESSION(r285722): Introduced performance regression
https://bugs.webkit.org/show_bug.cgi?id=233718
Unreviewed partial revert of r285722.
- Resources/SandboxProfiles/ios/com.apple.WebKit.GPU.sb:
- 7:46 AM Changeset in webkit [286429] by
-
- 6 edits in trunk/Source/bmalloc
[libpas] Define and use PAS_RISCV
https://bugs.webkit.org/show_bug.cgi?id=233753
Patch by Zan Dobersek <zdobersek@igalia.com> on 2021-12-02
Reviewed by Yusuke Suzuki.
Define PAS_RISCV as appropriate and use it accordingly to avoid custom
x86-64 assembly, much like it's avoided for PAS_ARM. This gets libpas
compiling for RISC-V targets.
- libpas/src/libpas/pas_config.h:
- libpas/src/libpas/pas_config_prefix.h:
- libpas/src/libpas/pas_segregated_page_inlines.h:
(pas_segregated_page_deallocate_with_page):
- libpas/src/libpas/pas_utils.h:
- libpas/src/libpas/pas_utils_prefix.h:
(pas_fence):
- 7:41 AM Changeset in webkit [286428] by
-
- 2 edits in trunk/Source/JavaScriptCore
[RISCV64] Fix effective address loading for LabelReferences with offsets
https://bugs.webkit.org/show_bug.cgi?id=233754
Patch by Zan Dobersek <zdobersek@igalia.com> on 2021-12-02
Reviewed by Yusuke Suzuki.
r286345 (and subsequent change in r286372) introduced a load from a
label address with an additional offset. To properly handle this,
RISCV64 offlineasm generates the desired load-effective-address
instruction but now also generates an additional add instruction when
an offset value is present for that lea.
- offlineasm/riscv64.rb:
- 7:34 AM Changeset in webkit [286427] by
-
- 8 edits in trunk
File inputs in non-multipart form submissions show up as string values in the formdata event
https://bugs.webkit.org/show_bug.cgi?id=233725
Patch by Andreu Botella <andreu@andreubotella.com> on 2021-12-02
Reviewed by Chris Dumez.
LayoutTests/imported/w3c:
Added tests in web-platform-tests/html/semantics/forms/form-submission-0/constructing-form-data-set.html
to check that file inputs show up as File entries in the formdata event.
- web-platform-tests/html/semantics/forms/form-submission-0/constructing-form-data-set-expected.txt:
- web-platform-tests/html/semantics/forms/form-submission-0/constructing-form-data-set.html:
- web-platform-tests/html/semantics/forms/form-submission-0/text-plain.window-expected.txt:
- web-platform-tests/html/semantics/forms/form-submission-0/urlencoded2.window-expected.txt:
Source/WebCore:
When a form's entry list was constructed form a non-multipart/form-data form submission,
file inputs were added to the DOMFormData object as string values consisting of the file's
filename. Before r280310, this optimization was unobservable, since the DOMFormData object
was never exposed to the user halfway through a form submission.
r280310 changed this by adding the formdata event, which fires at the end of the "construct
the entry list" algorithm and can be used to both inspect and modify the DOMFormData object.
This means that it is now observable that file inputs in urlencoded and text/plain form
submissions are encoded as their filenames, and that any new File entries added to the
DOMFormData object the event listeners will be skipped when building the form payload.
This change fixes that by always adding file inputs to DOMFormData as File entries, and
using a File's filename as the string value in FormData::appendNonMultipartKeyValuePairItems
Tests: imported/w3c/web-platform-tests/html/semantics/forms/form-submission-0/constructing-form-data-set.html
imported/w3c/web-platform-tests/html/semantics/forms/form-submission-0/text-plain.window.html
imported/w3c/web-platform-tests/html/semantics/forms/form-submission-0/urlencoded2.window.html
- html/FileInputType.cpp:
(WebCore::FileInputType::appendFormData const): Changed to always add File entries to the
DOMFormData object, rather than adding the filenames as string values whenmultipart
is
false.
- platform/network/FormData.cpp:
(WebCore::FormData::appendNonMultiPartKeyValuePairItems): Changed to encode File entry
values as their filenames, rather than skipping them.
- 7:25 AM Changeset in webkit [286426] by
-
- 5 edits in trunk
AX Isolated Tree: Document links should be stored in web areas, not the root
https://bugs.webkit.org/show_bug.cgi?id=233728
Reviewed by Chris Fleizach.
Source/WebCore:
In WebAccessibilityObjectWrapperMac.mm, we expose the document links attribute (AXLinkUIElements)
on web areas. However, in AXIsolatedObject::initializeAttributeData we currently only store
AXPropertyName::DocumentLinks for the root element, which is not a web area.
In this patch, we store document links for web area elements instead
of the root element.
This patch fixes accessibility/visible-elements.html, which tests document links.
- accessibility/isolatedtree/AXIsolatedObject.cpp:
(WebCore::AXIsolatedObject::initializeAttributeData):
LayoutTests:
- accessibility/visible-elements.html:
- accessibility/visible-elements-expected.txt:
Make this test async so it passes in isolated tree mode.
This test must be async because it includes JS that dynamically
changes page content.
- 7:21 AM Changeset in webkit [286425] by
-
- 6 edits in trunk
Add a fast path for empty string to setInnerHTML()
https://bugs.webkit.org/show_bug.cgi?id=233647
Patch by Alexey Shvayka <ashvayka@apple.com> on 2021-12-02
Reviewed by Geoff Garen.
LayoutTests/imported/w3c:
- web-platform-tests/html/semantics/scripting-1/the-template-element/innerhtml-on-templates/innerhtml-expected.txt:
- web-platform-tests/html/semantics/scripting-1/the-template-element/innerhtml-on-templates/innerhtml.html:
Source/WebCore:
This patch adds a fast path for
element.innerHTML = ""
, which is a common idiom for
removing all children from an element, while ensuring <template> contents is modified
rather than its children [1], and that mutation records are enqueued.
Although there are quite a few insertion modes [1], parsing empty string creates
additional elements only inside <html> container (please see "Anything else" clauses).
Bypassing parser instantiation results in 3.2x progression of the attached microbenchmark.
Both Gecko and Blink has this optimization, which was reported to progress Speedometer2
score (especially Vanilla / jQuery / Preact subtests).
Our
textContent
andinnerText
setters are already fast enough for empty strings.
[1] https://w3c.github.io/DOM-Parsing/#dom-innerhtml-innerhtml (setting, step 3)
[2] https://html.spec.whatwg.org/multipage/parsing.html#parsing-main-inhtml
No behavior change.
- dom/Element.cpp:
(WebCore::Element::setInnerHTML):
- dom/ShadowRoot.cpp:
(WebCore::ShadowRoot::setInnerHTML):
- 6:26 AM Changeset in webkit [286424] by
-
- 13 edits in trunk/Source/JavaScriptCore
[JSC] Generated code size reductions for baseline JIT (all architectures)
https://bugs.webkit.org/show_bug.cgi?id=233474
Patch by Geza Lore <Geza Lore> on 2021-12-02
Reviewed by Yusuke Suzuki.
This patch introduces a few improvements that reduce the generated
code size.
Target independent improvements to the Baseline JIT:
- Some bytecodes that are very frequent (e.g.: get_by_id, call) share
the same instructions at the tail end of the fast and slow paths.
Instead of duplicating these in the slow path, then branch to the next
sequential bytecode on the fast path, make the slow path branch to and
reuse these common instructions, which then naturally fall through to
the next sequential bytecode.
- Minor tweaks in a few places to remove redundant reloading of
immediates and remove redundant moves.
- Remove a small number of redundant unconditional branches from some
DataIC fast paths.
ARMv7/Thumb-2 specific improvements:
- Add assembler support for LDRD and STRD (load/store a pair of
32-bit GPRs) and use them throughout via loadValue/storeValue. This
yields denser code as it often eliminates repeated temporary register
setups (especially for a BaseIndex access), and also due to point 4
below. This is also potentially a performance improvement on
micro-architectures with a 64-bit LSU data-path.
16-bit encoding in Thumb-2, so prefer to use low order registers
as temporaries wherever possible.
The net effect of this patch is that the emitted baseline code during
a run of JetStream2 is ~6.6% smaller on x86_64, ~5.1% smaller on
ARM64, and ~24% smaller on ARMv7/Thumb-2. On ARMv7/Thumb-2, DFG code
is also ~5.3% smaller, while on other architectures the DFG code is
unaffected.
On ARMv7/Thumb-2, this patch also yields an ~2% improvement in
JetStream2 scores on my test machine.
- assembler/ARMv7Assembler.h:
(JSC::ARMv7Assembler::ldrd):
(JSC::ARMv7Assembler::strd):
(JSC::ARMv7Assembler::ARMInstructionFormatter::twoWordOp12Reg4Reg4Reg4Imm8):
- assembler/MacroAssembler.h:
(JSC::MacroAssembler::addPtr):
- assembler/MacroAssemblerARMv7.h:
(JSC::MacroAssemblerARMv7::bestTempRegister):
(JSC::MacroAssemblerARMv7::scratchRegister):
(JSC::MacroAssemblerARMv7::add32):
(JSC::MacroAssemblerARMv7::sub32):
(JSC::MacroAssemblerARMv7::loadPair32):
(JSC::MacroAssemblerARMv7::store32):
(JSC::MacroAssemblerARMv7::storePair32):
(JSC::MacroAssemblerARMv7::compare32AndSetFlags):
(JSC::MacroAssemblerARMv7::test32):
(JSC::MacroAssemblerARMv7::branch32):
(JSC::MacroAssemblerARMv7::farJump):
(JSC::MacroAssemblerARMv7::call):
(JSC::MacroAssemblerARMv7::compare32):
- assembler/MacroAssemblerMIPS.h:
(JSC::MacroAssemblerMIPS::loadPair32):
(JSC::MacroAssemblerMIPS::storePair32):
- jit/AssemblyHelpers.h:
(JSC::AssemblyHelpers::storeValue):
(JSC::AssemblyHelpers::loadValue):
- jit/JIT.cpp:
(JSC::JIT::privateCompileSlowCases):
- jit/JIT.h:
- jit/JITCall.cpp:
(JSC::JIT::compileCallEval):
(JSC::JIT::compileCallEvalSlowCase):
(JSC::JIT::compileOpCall):
(JSC::JIT::compileOpCallSlowCase):
(JSC::JIT::emitSlow_op_iterator_open):
(JSC::JIT::emitSlow_op_iterator_next):
- jit/JITInlineCacheGenerator.cpp:
(JSC::generateGetByIdInlineAccess):
(JSC::JITPutByIdGenerator::generateBaselineDataICFastPath):
- jit/JITInlineCacheGenerator.h:
- jit/JITInlines.h:
(JSC::JIT::setFastPathResumePoint):
(JSC::JIT::fastPathResumePoint const):
- jit/JITOpcodes.cpp:
(JSC::JIT::emit_op_enter):
- jit/JITPropertyAccess.cpp:
(JSC::JIT::emit_op_get_by_val):
(JSC::JIT::generateGetByValSlowCase):
(JSC::JIT::emit_op_get_private_name):
(JSC::JIT::emitSlow_op_get_private_name):
(JSC::JIT::emit_op_try_get_by_id):
(JSC::JIT::emitSlow_op_try_get_by_id):
(JSC::JIT::emit_op_get_by_id_direct):
(JSC::JIT::emitSlow_op_get_by_id_direct):
(JSC::JIT::emit_op_get_by_id):
(JSC::JIT::emitSlow_op_get_by_id):
(JSC::JIT::emit_op_get_by_id_with_this):
(JSC::JIT::emitSlow_op_get_by_id_with_this):
(JSC::JIT::emit_op_in_by_id):
(JSC::JIT::emitSlow_op_in_by_id):
(JSC::JIT::emit_op_in_by_val):
(JSC::JIT::emitSlow_op_in_by_val):
(JSC::JIT::emitHasPrivate):
(JSC::JIT::emitHasPrivateSlow):
(JSC::JIT::emitSlow_op_has_private_name):
(JSC::JIT::emitSlow_op_has_private_brand):
(JSC::JIT::emit_op_enumerator_get_by_val):
(JSC::JIT::emitWriteBarrier):
- 6:15 AM Changeset in webkit [286423] by
-
- 19 edits2 copies in trunk
GraphicsContextGLANGLE should not have Cocoa Mac specific display reconfiguration code
https://bugs.webkit.org/show_bug.cgi?id=233695
Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2021-12-02
Reviewed by Antti Koivisto.
Source/WebCore:
Move code to observe Mac display reconfiguration
away from GraphicsContextGLANGLE to GraphicsContextGLCocoa.
Apply the display reconfiguration listener only for
WebProcessGraphicsContextGLCocoa, it is not needed for the
GPU process contexts.
Move the listener notification code away from GraphicsContextGLOpenGLManager
into its own class. This way GraphicsContextGLOpenGLManager does not need
to know Mac specific interfaces. Later on, GraphicsContextGLOpenGLManager can
be removed altogether.
Changes behavior so that simulateEventForTesting invokes the simulated context
change only for the context being tested. This simplifies the implementation.
No new tests, refactor.
- PlatformMac.cmake:
- SourcesCocoa.txt:
- WebCore.xcodeproj/project.pbxproj:
- platform/graphics/GraphicsContextGLAttributes.h:
(WebCore::GraphicsContextGLAttributes::effectivePowerPreference const):
- platform/graphics/angle/GraphicsContextGLANGLE.cpp:
(WebCore::GraphicsContextGLANGLE::simulateEventForTesting):
- platform/graphics/angle/GraphicsContextGLANGLE.h:
- platform/graphics/cocoa/GraphicsContextGLCocoa.h:
- platform/graphics/cocoa/GraphicsContextGLCocoa.mm:
(WebCore::initializeEGLDisplay):
(WebCore::GraphicsContextGLCocoa::create):
(WebCore::GraphicsContextGLCocoa::GraphicsContextGLCocoa):
(WebCore::GraphicsContextGLCocoa::~GraphicsContextGLCocoa):
(WebCore::GraphicsContextGLANGLE::GraphicsContextGLANGLE):
(WebCore::GraphicsContextGLCocoa::setContextVisibility):
(WebCore::GraphicsContextGLCocoa::updateContextOnDisplayReconfiguration):
(WebCore::GraphicsContextGLANGLE::setContextVisibility): Deleted.
(WebCore::GraphicsContextGLANGLE::displayWasReconfigured): Deleted.
- platform/graphics/cocoa/WebProcessGraphicsContextGLCocoa.mm:
- platform/graphics/mac/DisplayConfigurationMonitor.cpp: Copied from Source/WebCore/platform/graphics/opengl/GraphicsContextGLOpenGLManager.h.
(WebCore::DisplayConfigurationMonitor::singleton):
(WebCore::DisplayConfigurationMonitor::addClient):
(WebCore::DisplayConfigurationMonitor::removeClient):
(WebCore::DisplayConfigurationMonitor::dispatchDisplayWasReconfigured):
- platform/graphics/mac/DisplayConfigurationMonitor.h: Copied from Source/WebCore/platform/graphics/opengl/GraphicsContextGLOpenGLManager.h.
- platform/graphics/opengl/GraphicsContextGLOpenGLManager.cpp:
(WebCore::GraphicsContextGLOpenGLManager::displayWasReconfigured): Deleted.
- platform/graphics/opengl/GraphicsContextGLOpenGLManager.h:
Source/WebKit:
Previous GraphicsContextGLANGLE::displayWasReconfigured()
was renamed to updateContextOnDisplayReconfiguration().
The displayWasReconfigured() was taken into use in the notification interface
DisplayConfigurationMonitor::Client::displayWasReconfigured().
- GPUProcess/graphics/RemoteGraphicsContextGL.cpp:
(WebKit::RemoteGraphicsContextGL::displayWasReconfigured):
- WebProcess/cocoa/WebProcessCocoa.mm:
(WebKit::WebProcess::displayConfigurationChanged):
LayoutTests:
Change the test to account for the behavior change
where the simulated context change event is delivered
only to the context being tested, not to all contexts.
- fast/canvas/webgl/webglcontextchangedevent.html:
- 6:11 AM Changeset in webkit [286422] by
-
- 2 edits in trunk/Source/WebCore
REGRESSION(r286209) [GTK][WPE] crashes in offscreen canvas tests that try to create a GL context
https://bugs.webkit.org/show_bug.cgi?id=233712
Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2021-12-02
Reviewed by Antti Koivisto.
Fix a crash for ports that use offscreen canvas WebGL.
Currently we do not have code to navigate from offscreen canvas
CanvasBase to ChromeClient. For this case it doesn't matter, as
GPUP does not support offscreen canvas in meaningful way
anyway.
No new tests, tested by existing test.
- html/canvas/WebGLRenderingContextBase.cpp:
(WebCore::WebGLRenderingContextBase::create):
- 4:51 AM Changeset in webkit [286421] by
-
- 3 edits in trunk/Source/WebCore
Reset height definiteness when constructing flex items
https://bugs.webkit.org/show_bug.cgi?id=233458
Reviewed by Alan Bujtas.
Flexbox renderer uses an attribute called m_hasDefiniteHeight in order to properly
consider as definite some sizes that are normally considered as indefinite. For example,
a percentage of an intrinsic size is normally indefinite unless the containing block has
an overriding size in which case can be considered as definite.
The value of m_hasDefiniteHeight is properly reset every time we construct a flex item or
just after finishing the layout. However we should do it as well just before computing
the flex basis if the flex item is also a flex container. In that case it might happen that
we try to compute the flex basis value with a value for m_hasDefiniteHeight which can
be potentially outdated.
- rendering/RenderFlexibleBox.cpp:
(WebCore::RenderFlexibleBox::layoutBlock): Use resetHasDefiniteHeight().
(WebCore::RenderFlexibleBox::layoutFlexItems): Ditto.
(WebCore::RenderFlexibleBox::constructFlexItem): Call resetHasDefiniteHeight() if the
flex item is also a flex container.
- rendering/RenderFlexibleBox.h:
(WebCore::RenderFlexibleBox::resetHasDefiniteHeight): Added.
- 1:02 AM Changeset in webkit [286420] by
-
- 4 edits in trunk/Source
AVDelegatingPlaybackCoordinator error compiling on macOS 11
https://bugs.webkit.org/show_bug.cgi?id=232454
Reviewed by Tim Horton.
Source/WebCore/PAL:
- pal/cocoa/AVFoundationSoftLink.h: Don't softlink on platforms that don't have it (No other source changes were necessary)
Source/WTF:
- wtf/PlatformHave.h:
- 12:57 AM Changeset in webkit [286419] by
-
- 58 edits5 copies13 adds in trunk
Add support for NavigationPreloadManager
https://bugs.webkit.org/show_bug.cgi?id=233523
Reviewed by Chris Dumez.
LayoutTests/imported/w3c:
- web-platform-tests/service-workers/idlharness.https.any-expected.txt:
- web-platform-tests/service-workers/idlharness.https.any.worker-expected.txt:
- web-platform-tests/service-workers/service-worker/navigation-preload/broken-chunked-encoding.https-expected.txt: Added.
- web-platform-tests/service-workers/service-worker/navigation-preload/chunked-encoding.https-expected.txt: Added.
- web-platform-tests/service-workers/service-worker/navigation-preload/empty-preload-response-body.https-expected.txt: Added.
- web-platform-tests/service-workers/service-worker/navigation-preload/get-state.https-expected.txt: Added.
- web-platform-tests/service-workers/service-worker/navigation-preload/navigationPreload.https-expected.txt: Added.
- web-platform-tests/service-workers/service-worker/navigation-preload/redirect.https-expected.txt: Added.
- web-platform-tests/service-workers/service-worker/navigation-preload/request-headers.https-expected.txt: Added.
- web-platform-tests/service-workers/service-worker/navigation-preload/resource-timing.https-expected.txt: Added.
- web-platform-tests/service-workers/service-worker/navigation-preload/samesite-cookies.https-expected.txt: Added.
Source/WebCore:
Add service worker navigation preload IDL and implementation.
This includes in particular state management (read and write) on API side and SWServer side.
This state is used in WK2 network code path to enable or not preloads.
We are not yet persisting preload registration state on disk, this will be done as a follow-up.
The FetchEvent preloadResponse returns a promise which has either undefined or a response as resolved value.
In case there is a preloader for that FetchEvent, we start the load when preloadResponse is retrieved by JS.
To implement the retrieval of the preload response, we use FetchResponse::fetch.
To do so, we add an initiator parameter as this preload initiator is the navigation task and not a fetch call.
Covered by enabled tests.
Tests: http/wpt/service-workers/service-worker-iframe-preload.https.html.
- CMakeLists.txt:
- DerivedSources-input.xcfilelist:
- DerivedSources-output.xcfilelist:
- DerivedSources.make:
- Modules/cache/DOMCache.cpp:
- Modules/fetch/FetchLoader.cpp:
- Modules/fetch/FetchLoader.h:
- Modules/fetch/FetchResponse.cpp:
- Modules/fetch/FetchResponse.h:
- Modules/fetch/WindowOrWorkerGlobalScopeFetch.cpp:
- Sources.txt:
- WebCore.xcodeproj/project.pbxproj:
- bindings/js/DOMPromiseProxy.h:
- bindings/js/WebCoreBuiltinNames.h:
- loader/cache/CachedResource.cpp:
- loader/cache/CachedResourceRequestInitiators.cpp:
(WebCore::CachedResourceRequestInitiators::CachedResourceRequestInitiators):
- loader/cache/CachedResourceRequestInitiators.h:
- platform/network/HTTPHeaderNames.in:
- workers/service/FetchEvent.cpp:
- workers/service/FetchEvent.h:
- workers/service/FetchEvent.idl:
- workers/service/NavigationPreloadManager.cpp: Added.
- workers/service/NavigationPreloadManager.h: Added.
- workers/service/NavigationPreloadManager.idl: Added.
- workers/service/NavigationPreloadState.h: Added.
- workers/service/NavigationPreloadState.idl: Added.
- workers/service/SWClientConnection.h:
- workers/service/ServiceWorkerContainer.cpp:
- workers/service/ServiceWorkerContainer.h:
- workers/service/ServiceWorkerRegistration.cpp:
- workers/service/ServiceWorkerRegistration.h:
- workers/service/ServiceWorkerRegistration.idl:
- workers/service/WorkerSWClientConnection.cpp:
- workers/service/WorkerSWClientConnection.h:
- workers/service/context/ServiceWorkerFetch.cpp:
- workers/service/context/ServiceWorkerFetch.h:
- workers/service/context/ServiceWorkerThread.cpp:
- workers/service/context/ServiceWorkerThread.h:
- workers/service/context/ServiceWorkerThreadProxy.cpp:
- workers/service/context/ServiceWorkerThreadProxy.h:
- workers/service/server/SWServerRegistration.cpp:
- workers/service/server/SWServerRegistration.h:
Source/WebKit:
Make use of ServiceWorkerNavigationPreloader when preload flag is true.
We only start as soon as created the preload in case of main frame navigation when preload flag is true.
Update ServiceWorkerNavigationPreloader to differentiate explicit preloads (enabled by NavigationPreloadManager) from implict preloads.
Implict preloads can be used when fetch event is not handled, which is not guaranteed for explicit preloads, given the Service-Worker-Navigation-Preload header.
Add IPC to read and set preload state (enabled and header value).
- NetworkProcess/ServiceWorker/ServiceWorkerFetchTask.cpp:
- NetworkProcess/ServiceWorker/ServiceWorkerNavigationPreloader.cpp:
- NetworkProcess/ServiceWorker/ServiceWorkerNavigationPreloader.h:
- NetworkProcess/ServiceWorker/WebSWServerConnection.cpp:
- NetworkProcess/ServiceWorker/WebSWServerConnection.h:
- NetworkProcess/ServiceWorker/WebSWServerConnection.messages.in:
- WebProcess/Storage/WebSWClientConnection.cpp:
- WebProcess/Storage/WebSWClientConnection.h:
- WebProcess/Storage/WebSWContextManagerConnection.cpp:
- WebProcess/Storage/WebSWContextManagerConnection.h:
- WebProcess/Storage/WebSWContextManagerConnection.messages.in:
Source/WTF:
- Scripts/Preferences/WebPreferencesExperimental.yaml:
LayoutTests:
- 12:37 AM Changeset in webkit [286418] by
-
- 2 edits in trunk/Tools
Unreviewed. [GTK] Use nullptr instead of 0 in JSStringCreateWithCharacters()
- WebKitTestRunner/InjectedBundle/atspi/AccessibilityUIElementAtspi.cpp:
(WTR::AccessibilityUIElement::attributesOfLinkedUIElements):
(WTR::AccessibilityUIElement::attributesOfDocumentLinks):
(WTR::AccessibilityUIElement::stringDescriptionOfAttributeValue):
(WTR::AccessibilityUIElement::stringAttributeValue):
(WTR::AccessibilityUIElement::parameterizedAttributeNames):
(WTR::AccessibilityUIElement::role):
(WTR::AccessibilityUIElement::subrole):
(WTR::AccessibilityUIElement::computedRoleString):
(WTR::AccessibilityUIElement::stringValue):
(WTR::AccessibilityUIElement::language):
(WTR::AccessibilityUIElement::helpText const):
(WTR::AccessibilityUIElement::speakAs):
(WTR::AccessibilityUIElement::ariaDropEffects const):
(WTR::AccessibilityUIElement::rangeForLine):
(WTR::AccessibilityUIElement::rangeForPosition):
(WTR::AccessibilityUIElement::boundsForRange):
(WTR::AccessibilityUIElement::stringForRange):
(WTR::AccessibilityUIElement::attributedStringForRange):
(WTR::AccessibilityUIElement::attributesOfColumnHeaders):
(WTR::AccessibilityUIElement::attributesOfRowHeaders):
(WTR::AccessibilityUIElement::attributesOfColumns):
(WTR::AccessibilityUIElement::attributesOfRows):
(WTR::AccessibilityUIElement::attributesOfVisibleCells):
(WTR::AccessibilityUIElement::attributesOfHeader):
(WTR::AccessibilityUIElement::rowIndexRange):
(WTR::AccessibilityUIElement::columnIndexRange):
(WTR::AccessibilityUIElement::selectedTextRange):
(WTR::AccessibilityUIElement::accessibilityValue const):
(WTR::AccessibilityUIElement::documentEncoding):
(WTR::AccessibilityUIElement::documentURI):
(WTR::AccessibilityUIElement::url):
(WTR::AccessibilityUIElement::stringForTextMarkerRange):
(WTR::AccessibilityUIElement::rectsForTextMarkerRange):
(WTR::AccessibilityUIElement::characterAtOffset):
- 12:18 AM Changeset in webkit [286417] by
-
- 5 edits8 adds in trunk
sticky th or td in table does not stops at specified top
https://bugs.webkit.org/show_bug.cgi?id=232431
<rdar://problem/85011818>
Reviewed by Simon Fraser.
LayoutTests/imported/w3c:
Add new WPT tests that test the behavior of sticky <td> elements in the middle of
tables.
- web-platform-tests/css/css-position/sticky/position-sticky-table-td-bottom-expected.html: Added.
- web-platform-tests/css/css-position/sticky/position-sticky-table-td-bottom.html: Added.
- web-platform-tests/css/css-position/sticky/position-sticky-table-td-left-expected.html: Added.
- web-platform-tests/css/css-position/sticky/position-sticky-table-td-left.html: Added.
- web-platform-tests/css/css-position/sticky/position-sticky-table-td-right-expected.html: Added.
- web-platform-tests/css/css-position/sticky/position-sticky-table-td-right.html: Added.
- web-platform-tests/css/css-position/sticky/position-sticky-table-td-top-expected.html: Added.
- web-platform-tests/css/css-position/sticky/position-sticky-table-td-top.html: Added.
Source/WebCore:
Tests: imported/w3c/web-platform-tests/css/css-position/sticky/position-sticky-table-td-bottom.html
imported/w3c/web-platform-tests/css/css-position/sticky/position-sticky-table-td-left.html
imported/w3c/web-platform-tests/css/css-position/sticky/position-sticky-table-td-right.html
imported/w3c/web-platform-tests/css/css-position/sticky/position-sticky-table-td-top.html
- rendering/RenderBox.h: Make frameRectForStickyPositioning not final.
- rendering/RenderTableCell.cpp:
(WebCore::RenderTableCell::frameRectForStickyPositioning const): Added this implementation
that takes into account that RenderTableCell is positioned relatively to the RenderTableSection.
- rendering/RenderTableCell.h: Added method declaration.
- 12:16 AM Changeset in webkit [286416] by
-
- 10 edits2 adds in trunk
[GTK][a11y] Add implementation of table and table cell interfaces when building with ATSPI
https://bugs.webkit.org/show_bug.cgi?id=233694
Reviewed by Adrian Perez de Castro.
Source/WebCore:
- SourcesGTK.txt:
- accessibility/AccessibilityTableColumn.cpp:
(WebCore::AccessibilityTableColumn::computeAccessibilityIsIgnored const): Do not expose column for ATSPI.
- accessibility/AccessibilityTableHeaderContainer.cpp:
(WebCore::AccessibilityTableHeaderContainer::computeAccessibilityIsIgnored const): Do not expose header container either.
- accessibility/atspi/AccessibilityObjectAtspi.cpp:
(WebCore::AccessibilityObjectAtspi::interfacesForObject):
(WebCore::AccessibilityObjectAtspi::path):
(WebCore::AccessibilityObjectAtspi::wrapperVector const):
(WebCore::AccessibilityObjectAtspi::children const):
(WebCore::AccessibilityObjectAtspi::buildInterfaces const):
- accessibility/atspi/AccessibilityObjectAtspi.h:
- accessibility/atspi/AccessibilityObjectTableAtspi.cpp: Added.
(WebCore::AccessibilityObjectAtspi::rowCount const):
(WebCore::AccessibilityObjectAtspi::columnCount const):
(WebCore::AccessibilityObjectAtspi::cell const):
(WebCore::AccessibilityObjectAtspi::tableCaption const):
(WebCore::AccessibilityObjectAtspi::cellIndex const):
(WebCore::AccessibilityObjectAtspi::rowAtIndex const):
(WebCore::AccessibilityObjectAtspi::columnAtIndex const):
(WebCore::AccessibilityObjectAtspi::rowHeader const):
(WebCore::AccessibilityObjectAtspi::columnHeader const):
(WebCore::AccessibilityObjectAtspi::rowDescription const):
(WebCore::AccessibilityObjectAtspi::columnDescription const):
(WebCore::AccessibilityObjectAtspi::rowExtent const):
(WebCore::AccessibilityObjectAtspi::columnExtent const):
(WebCore::AccessibilityObjectAtspi::cells const):
(WebCore::AccessibilityObjectAtspi::rows const):
(WebCore::AccessibilityObjectAtspi::rowHeaders const):
(WebCore::AccessibilityObjectAtspi::columnHeaders const):
- accessibility/atspi/AccessibilityObjectTableCellAtspi.cpp: Added.
(WebCore::AccessibilityObjectAtspi::cellRowHeaders const):
(WebCore::AccessibilityObjectAtspi::cellColumnHeaders const):
(WebCore::AccessibilityObjectAtspi::rowSpan const):
(WebCore::AccessibilityObjectAtspi::columnSpan const):
(WebCore::AccessibilityObjectAtspi::cellPosition const):
- accessibility/atspi/xml/TableCell.xml:
Tools:
Add unit tests and WTR implementation for tables.
- TestWebKitAPI/Tests/WebKitGtk/TestWebKitAccessibility.cpp:
(testTableBasic):
(beforeAll):
- WebKitTestRunner/InjectedBundle/atspi/AccessibilityUIElementAtspi.cpp:
(WTR::AccessibilityUIElement::rowAtIndex):
(WTR::elementsVector):
(WTR::attributesOfElements):
(WTR::AccessibilityUIElement::attributesOfChildren):
(WTR::AccessibilityUIElement::numberAttributeValue):
(WTR::makeJSArray):
(WTR::AccessibilityUIElement::rowHeaders const):
(WTR::AccessibilityUIElement::columnHeaders const):
(WTR::AccessibilityUIElement::attributesOfColumnHeaders):
(WTR::AccessibilityUIElement::attributesOfRowHeaders):
(WTR::AccessibilityUIElement::attributesOfRows):
(WTR::AccessibilityUIElement::attributesOfVisibleCells):
(WTR::AccessibilityUIElement::rowCount):
(WTR::AccessibilityUIElement::columnCount):
(WTR::AccessibilityUIElement::rowIndexRange):
(WTR::AccessibilityUIElement::columnIndexRange):
(WTR::AccessibilityUIElement::cellForColumnAndRow):
- 12:06 AM Changeset in webkit [286415] by
-
- 4 edits2 adds in trunk
[selectors] :focus-visible should stop matching after blur
https://bugs.webkit.org/show_bug.cgi?id=233688
Reviewed by Antti Koivisto.
LayoutTests/imported/w3c:
Add new test to check that :focus-visible stop matching after blur.
- web-platform-tests/css/selectors/focus-visible-023-expected.txt: Added.
- web-platform-tests/css/selectors/focus-visible-023.html: Added.
Source/WebCore:
Move PseudoClassChangeInvalidation for :focus-visible together with the one for :focus,
as we need to keep both flags in sync when computing the invalidations
(it's not possible to have an element that matches :focus-visible but not :focus,
and that was happening before this change).
Test: imported/w3c/web-platform-tests/css/selectors/focus-visible-023.html
- dom/Element.cpp:
(WebCore::Element::setFocus): Add PseudoClassChangeInvalidation for :focus-visible change,
and put it in the same scope as the flags changes.
(WebCore::Element::setHasFocusVisible): Remove PseudoClassChangeInvalidation from this method.
- page/EventHandler.cpp:
(WebCore::EventHandler::internalKeyEvent): Use PseudoClassChangeInvalidation for :focus-visible change.
Dec 1, 2021:
- 10:27 PM Changeset in webkit [286414] by
-
- 21 edits in trunk
FileSystemSyncAccessHandle should be invalidated when network process crashes
https://bugs.webkit.org/show_bug.cgi?id=232605
<rdar://problem/85187706>
Reviewed by Youenn Fablet.
Source/WebCore:
Make FileSystemStorageConnection keep track of FileSystemSyncAccessHandle. When connection is closed, or access
handle is explicitly invalidated (for example, due to file deletion in the backend), FileSystemStorageConnection
will invalidate FileSystemSyncAccessHandle.
Normally, to close a FileSystemSyncAccessHandle (when close() is called or context stops), we need to:
- close file descriptor (FileSystemSyncAccessHandle::closeFile)
- notify backend about close (FileSystemSyncAccessHandle::closeBackend)
- get close result and complete callbacks (FileSystemSyncAccessHandle::didCloseBackend)
For invalidation case, we only need to perform step 1 and 3 because connection to backend is lost or backend
initiates the close.
API test: FileSystemAccess.NetworkProcessCrashDuringWrite
- Headers.cmake:
- Modules/cache/WindowOrWorkerGlobalScopeCaches.cpp:
- Modules/filesystemaccess/FileSystemFileHandle.cpp:
(WebCore::FileSystemFileHandle::registerSyncAccessHandle):
(WebCore::FileSystemFileHandle::unregisterSyncAccessHandle):
- Modules/filesystemaccess/FileSystemFileHandle.h:
- Modules/filesystemaccess/FileSystemStorageConnection.h:
(WebCore::FileSystemStorageConnection::isWorker const):
- Modules/filesystemaccess/FileSystemSyncAccessHandle.cpp:
(WebCore::FileSystemSyncAccessHandle::FileSystemSyncAccessHandle):
(WebCore::FileSystemSyncAccessHandle::~FileSystemSyncAccessHandle):
(WebCore::FileSystemSyncAccessHandle::closeInternal):
(WebCore::FileSystemSyncAccessHandle::closeFile):
(WebCore::FileSystemSyncAccessHandle::didCloseFile):
(WebCore::FileSystemSyncAccessHandle::closeBackend):
(WebCore::FileSystemSyncAccessHandle::didCloseBackend):
(WebCore::FileSystemSyncAccessHandle::invalidate):
(WebCore::FileSystemSyncAccessHandle::didClose): Deleted.
- Modules/filesystemaccess/FileSystemSyncAccessHandle.h:
- Modules/filesystemaccess/WorkerFileSystemStorageConnection.cpp:
(WebCore::WorkerFileSystemStorageConnection::connectionClosed):
(WebCore::WorkerFileSystemStorageConnection::registerSyncAccessHandle):
(WebCore::WorkerFileSystemStorageConnection::unregisterSyncAccessHandle):
(WebCore::WorkerFileSystemStorageConnection::invalidateAccessHandle):
- Modules/filesystemaccess/WorkerFileSystemStorageConnection.h:
(isType):
- Modules/mediastream/RTCRtpScriptTransformer.cpp:
- WebCore.xcodeproj/project.pbxproj:
- dom/BroadcastChannel.cpp:
- workers/WorkerGlobalScope.cpp:
- workers/WorkerGlobalScope.h:
- workers/WorkerOrWorkletScriptController.cpp:
Source/WebKit:
- WebProcess/WebCoreSupport/WebFileSystemStorageConnection.cpp:
(WebKit::WebFileSystemStorageConnection::connectionClosed):
(WebKit::WebFileSystemStorageConnection::registerSyncAccessHandle):
(WebKit::WebFileSystemStorageConnection::unregisterSyncAccessHandle):
(WebKit::WebFileSystemStorageConnection::invalidateAccessHandle):
- WebProcess/WebCoreSupport/WebFileSystemStorageConnection.h:
Tools:
- TestWebKitAPI/Tests/WebKitCocoa/FileSystemAccess.mm:
(test):
(keepAccessHandleActive):
- 10:05 PM Changeset in webkit [286413] by
-
- 10 edits in trunk
validity.valueMissing should not rely on element's disabled state for inputs of type radio/file/checkbox
https://bugs.webkit.org/show_bug.cgi?id=233735
Reviewed by Darin Adler.
LayoutTests/imported/w3c:
Rebaseline WPT tests now that more checks are passing.
- web-platform-tests/html/semantics/forms/constraints/form-validation-validity-valueMissing-expected.txt:
- web-platform-tests/html/semantics/forms/constraints/radio-valueMissing-expected.txt:
Source/WebCore:
validity.valueMissing should not rely on element's disabled state for inputs of type radio/file/checkbox:
- https://html.spec.whatwg.org/multipage/input.html#radio-button-state-(type=radio):suffering-from-being-missing
- https://html.spec.whatwg.org/multipage/input.html#file-upload-state-(type=file):suffering-from-being-missing
- https://html.spec.whatwg.org/multipage/input.html#checkbox-state-(type=checkbox):suffering-from-being-missing
This was causing us to fail a few WPT tests that are passing in both Blink and Gecko.
- html/BaseDateAndTimeInputType.cpp:
(WebCore::BaseDateAndTimeInputType::valueMissing const):
- html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::valueMissing const):
- html/TextFieldInputType.cpp:
(WebCore::TextFieldInputType::valueMissing const):
LayoutTests:
Rebaseline WPT tests now that more checks are passing.
- platform/mac-wk2/imported/w3c/web-platform-tests/html/semantics/forms/constraints/form-validation-validity-valueMissing-expected.txt:
- 9:03 PM Changeset in webkit [286412] by
-
- 2 edits in trunk/Source/WebInspectorUI
Web Inspector: Console execution context can become an unexpected selection on refresh/navigation
https://bugs.webkit.org/show_bug.cgi?id=233349
Reviewed by Devin Rousso.
There are really three bugs here in
WI.QuickConsole.prototype._handleFrameExecutionContextsCleared
, each of
which contribute to unexpected execution context selections.
- If the frame of the active execution context commits a provisional load, our code attempts to re-select the
new context for that frame, which results in clearing the
Auto
bit for selected context, which means the
context no longer will follow the selected DOM node. This is resolved by no longer following a frame's execution
context on navigation if the current selection isAuto
(tracked by the_useExecutionContextOfInspectedNode
variable).
- Because of the very short timeframe for the above to take place before bailing (previously 10ms) there are
many situations where other large payloads over the protocol, like a complex DOM tree, will cause the timeout to
fire before we receive an event telling us there is a new execution context for the frame, which means we end up
not following the frame anyways. This is improved by increasing the timeout to a still-brisk, but more
reasonable 100ms.
- The timeout in (2) can lead to us having a selected execution context that may no longer be valid because the
fail-safe in
QuickConsole.prototype._handleFrameExecutionContextsCleared
doesn't really fail safely, since it
doesn't provide a new execution context to be active and instead seems to rely on the hope that the context will
still work for future invocations, which I believe is how many users are getting into the state of a blank
execution context picker (with a working drop down menu with actual contexts that are selectable) and are unable
to evaluate anything in the console until re-selecting an execution context.
Additional drive-by change to move the checks for whether or not we can use the execution context of a selected
node into its own method.
- UserInterface/Views/QuickConsole.js:
(WI.QuickConsole.prototype._populateActiveExecutionContextNavigationItemContextMenu):
(WI.QuickConsole.prototype._handleEngineeringShowInternalExecutionContextsSettingChanged):
(WI.QuickConsole.prototype._handleFrameExecutionContextsCleared):
(WI.QuickConsole.prototype._handleTargetRemoved):
(WI.QuickConsole.prototype._canUseExecutionContextOfInspectedNode):
- 8:58 PM Changeset in webkit [286411] by
-
- 3 edits in trunk/Source/WebCore
Scrolling complex websites can stutter: scrolling thread frame can fail to process wheel events
https://bugs.webkit.org/show_bug.cgi?id=233739
rdar://85946176
Reviewed by Tim Horton.
While the scrolling thread is chilling in
ThreadedScrollingTree::waitForRenderingUpdateCompletionOrTimeout(), waiting up to half a
frame to allow the main thread to handle the commit (for scroll synchronization), wheel
events may have been dispatched to the scrolling thread.
If we blow the timeout and commit anyway, we need to make sure we've handled these wheel
events first, so that the current frame can commit some layer movement. We can achieve this
by dispatching the applyLayerPositions(), which will enqueue it behind any waiting wheel
event dispatch from EventDispatcher::internalWheelEvent().
- page/scrolling/ScrollingTree.cpp:
(WebCore::ScrollingTree::applyLayerPositions):
- page/scrolling/ThreadedScrollingTree.cpp:
(WebCore::ThreadedScrollingTree::waitForRenderingUpdateCompletionOrTimeout):
- 8:58 PM Changeset in webkit [286410] by
-
- 3 edits in trunk/Source/WebCore
Scrolling complex websites can stutter: scrolling thread commit can get blocked on scroll synchronization
https://bugs.webkit.org/show_bug.cgi?id=233738
rdar://85880147
Reviewed by Tim Horton.
The scroll synchronization added in r261985 can cause dropped frames while scrolling. This
occurs when ThreadedScrollingTree::waitForRenderingUpdateCompletionOrTimeout(), which is
called at the start of a rendering update on the main thread, starts at a time when it will
delay the handling of displayDidRefreshOnScrollingThread(). This can result in delaying the
CA commit for that frame on the scrolling thread.
The solution is to clamp the duration that waitForRenderingUpdateCompletionOrTimeout() waits
on the condition, so that it doesn't exceed the next expected display refresh time.
- page/scrolling/ThreadedScrollingTree.cpp:
(WebCore::ThreadedScrollingTree::waitForRenderingUpdateCompletionOrTimeout):
(WebCore::ThreadedScrollingTree::displayDidRefreshOnScrollingThread):
- page/scrolling/ThreadedScrollingTree.h:
- 7:00 PM Changeset in webkit [286409] by
-
- 5 edits in trunk/LayoutTests
[GLIB] Update test expectations and baselines. Unreviewed test gardening.
https://bugs.webkit.org/show_bug.cgi?id=233741
Patch by Arcady Goldmints-Orlov <Arcady Goldmints-Orlov> on 2021-12-01
- platform/glib/TestExpectations:
- platform/gtk/imported/w3c/web-platform-tests/html/semantics/forms/constraints/form-validation-validity-rangeOverflow-expected.txt:
- platform/gtk/imported/w3c/web-platform-tests/html/semantics/forms/constraints/form-validation-validity-rangeUnderflow-expected.txt:
- platform/gtk/imported/w3c/web-platform-tests/html/semantics/forms/constraints/form-validation-validity-stepMismatch-expected.txt:
- 6:12 PM Changeset in webkit [286408] by
-
- 9 edits in trunk/Source/WebKit
Avoid allocating and copy memory from a SharedMemory into a SharedBuffer
https://bugs.webkit.org/show_bug.cgi?id=233401
rdar://85637721
Reviewed by Eric Carlson.
We can directly wrap a SharedMemory into a SharedBuffer using
SharedMemory::createSharedBuffer instead.
No change in observable behaviour other than total memory size reduction.
Fly-by fix: check for null when mapping a SharedMemory to an IPC handle
in a couple of spots.
- Shared/ShareableResource.h: Make ShareableResource use thread-safe refcount.
A ShareableResource once created is immutable and the SharedMemory object
itself has thread-safe refounting. Deleting the object outside the main thread
is safe.
Make members const.
- Shared/ShareableResource.cpp:
(WebKit::ShareableResource::wrapInSharedBuffer): Refactor method, using DataSegment::Provider
instead of platfom specific code.
- Shared/WebCoreArgumentCoders.cpp:
(IPC::decodeSharedBuffer):
- UIProcess/Cocoa/WebPasteboardProxyCocoa.mm:
(WebKit::WebPasteboardProxy::setPasteboardBufferForType):
- UIProcess/ios/WebPageProxyIOS.mm:
(WebKit::WebPageProxy::saveImageToLibrary):
- UIProcess/mac/WebPageProxyMac.mm:
(WebKit::WebPageProxy::dataSelectionForPasteboard):
(WebKit::WebPageProxy::setPromisedDataForImage):
- WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:
(WebKit::WebPlatformStrategies::bufferForType):
Hardening code, checking for nullability.
(WebKit::WebPlatformStrategies::readBufferFromPasteboard):
Hardening code, checking for nullability.
- WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::restoreAppHighlightsAndScrollToIndex):
- 6:10 PM Changeset in webkit [286407] by
-
- 11 edits2 deletes in branches/safari-613.1.10-branch/Source/WebKit
Cherry-pick r286386. rdar://problem/75225923
Unreviewed, reverting r286037.
https://bugs.webkit.org/show_bug.cgi?id=233724
Introduced WebRTC crash
Reverted changeset:
"[macOS][GPUP] Remove access in sandbox to
com.apple.audio.AudioComponentRegistrar"
https://bugs.webkit.org/show_bug.cgi?id=231694
https://commits.webkit.org/r286037
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@286386 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 5:11 PM Changeset in webkit [286406] by
-
- 26 edits4 adds in trunk
AX: Support accessibility attributes for <model>
https://bugs.webkit.org/show_bug.cgi?id=233620
<rdar://problem/85852073>
Reviewed by Dean Jackson, Andres Gonzalez.
Source/WebCore:
Support accessible names on <model> tag and plumb through ability for the
platform rendered model framework to return accessibility elements.
Test: accessibility/model-element-attributes.html
- Modules/model-element/HTMLModelElement.cpp:
(WebCore::HTMLModelElement::accessibilityChildren):
- Modules/model-element/HTMLModelElement.h:
- Modules/model-element/ModelPlayer.h:
- Modules/model-element/dummy/DummyModelPlayer.cpp:
(WebCore::DummyModelPlayer::accessibilityChildren):
- Modules/model-element/dummy/DummyModelPlayer.h:
- Modules/model-element/scenekit/SceneKitModelPlayer.h:
- Modules/model-element/scenekit/SceneKitModelPlayer.mm:
(WebCore::SceneKitModelPlayer::accessibilityChildren):
- accessibility/AccessibilityNodeObject.cpp:
(WebCore::AccessibilityNodeObject::usesAltTagForTextComputation const):
(WebCore::shouldUseAccessibilityObjectInnerText):
- accessibility/AccessibilityObject.cpp:
(WebCore::AccessibilityObject::modelElementChildren):
- accessibility/AccessibilityObject.h:
- accessibility/AccessibilityObjectInterface.h:
(WebCore::accessibilityRoleToString):
(WebCore::AXCoreObject::isModel const):
- accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::determineAccessibilityRole):
(WebCore::AccessibilityRenderObject::addChildren):
- accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:
(-[WebAccessibilityObjectWrapper accessibilityElements]):
(-[WebAccessibilityObjectWrapper determineIsAccessibilityElement]):
- accessibility/isolatedtree/AXIsolatedObject.cpp:
(WebCore::AXIsolatedObject::modelElementChildren):
- accessibility/isolatedtree/AXIsolatedObject.h:
- accessibility/mac/AccessibilityObjectMac.mm:
(WebCore::Accessibility::createPlatformRoleMap):
- accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
(-[WebAccessibilityObjectWrapper subrole]):
(-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]):
(-[WebAccessibilityObjectWrapper accessibilityIndexOfChild:]):
(-[WebAccessibilityObjectWrapper accessibilityArrayAttributeCount:]):
(-[WebAccessibilityObjectWrapper accessibilityArrayAttributeValues:index:maxCount:]):
Source/WebKit:
- WebProcess/Model/ARKitInlinePreviewModelPlayer.h:
- WebProcess/Model/ARKitInlinePreviewModelPlayer.mm:
(WebKit::ARKitInlinePreviewModelPlayer::accessibilityChildren):
LayoutTests:
- accessibility/model-element-attributes.html: Added.
- platform/gtk/TestExpectations:
- platform/ios/TestExpectations:
- platform/mac-wk1/TestExpectations:
- platform/ios/accessibility/model-element-attributes-expected.txt: Added.
- platform/mac/accessibility/model-element-attributes-expected.txt: Added.
- platform/win/TestExpectations:
- 4:42 PM Changeset in webkit [286405] by
-
- 6 edits in trunk/Tools
[EWS][GTK][WPE] Add a new Class for running layout tests on the EWS for the GTK and WPE ports.
https://bugs.webkit.org/show_bug.cgi?id=231999
Reviewed by Jonathan Bedard.
This patch adds a new class to the EWS for running layout tests for the GTK and WPE ports.
It will be used initially for the GTK port and later for the WPE one.
Mac/iOS ports will continue to use the current default EWS, so no behaviour change for them.
This new class is specially designed to:
- Work with a tree that is not always green (or even that is often quite red).
- To not report any false positive to the patch author.
- To allow patch authors to use this EWS to get new expectations for patches that need lot of new re-baselines (like a WPT import)
The very simplified logic of how this works is the following:
- Run layout tests with patch (abort early at 500 unexpected failures)
- Run layout tests with patch 10 times for each test that failed consistently (non-flaky) on step 1.
- Run layout tests without patch 10 times for each test that failed consistently (non-flaky) on step 2.
Then report to the patch author only the new consistent failures (tests that failed always with the patch and passed always without the patch, retrying 10 times)
Any flaky test found is only reported to the bot watchers.
For an explainer about why this is needed, and more details about the flow diagram and several design considerations, please check:
https://people.igalia.com/clopez/wkbug/231999/explainer.html
The patch also add 3 new workers to the queue (to a total of 8) to speed up testing.
- CISupport/ews-build/config.json:
- CISupport/ews-build/factories.py:
(GTKTestsFactory):
- CISupport/ews-build/layout_test_failures.py:
(LayoutTestFailures.init):
(LayoutTestFailures.results_from_string):
(LayoutTestFailures.results_from_string.get_failing_tests):
- CISupport/ews-build/steps.py:
(BufferLogHeaderObserver):
(BufferLogHeaderObserver.init):
(BufferLogHeaderObserver.headerReceived):
(BufferLogHeaderObserver.getHeaders):
(BugzillaMixin.send_email_for_infrastructure_issue):
(Trigger.propertiesToPassToTriggers):
(RunWebKitTests.setLayoutTestCommand):
(RunWebKitTests.start):
(RunWebKitTests.commandComplete):
(ReRunWebKitTests.evaluateCommand):
(ReRunWebKitTests.commandComplete):
(RunWebKitTestsWithoutPatch.commandComplete):
(AnalyzeLayoutTestsResults.report_failure):
(AnalyzeLayoutTestsResults.send_email_for_flaky_failure):
(AnalyzeLayoutTestsResults.send_email_for_new_test_failures):
(AnalyzeLayoutTestsResults.start):
(RunWebKit1Tests.start):
(RunWebKitTestsRedTree):
(RunWebKitTestsRedTree._did_command_timed_out):
(RunWebKitTestsRedTree.evaluateCommand):
(RunWebKitTestsRepeatFailuresRedTree):
(RunWebKitTestsRepeatFailuresRedTree.init):
(RunWebKitTestsRepeatFailuresRedTree.setLayoutTestCommand):
(RunWebKitTestsRepeatFailuresRedTree.evaluateCommand):
(RunWebKitTestsRepeatFailuresRedTree.commandComplete):
(RunWebKitTestsRepeatFailuresRedTree.start):
(RunWebKitTestsRepeatFailuresWithoutPatchRedTree):
(RunWebKitTestsRepeatFailuresWithoutPatchRedTree.init):
(RunWebKitTestsRepeatFailuresWithoutPatchRedTree.setLayoutTestCommand):
(RunWebKitTestsRepeatFailuresWithoutPatchRedTree.evaluateCommand):
(RunWebKitTestsRepeatFailuresWithoutPatchRedTree.commandComplete):
(RunWebKitTestsRepeatFailuresWithoutPatchRedTree.start):
(RunWebKitTestsWithoutPatchRedTree):
(RunWebKitTestsWithoutPatchRedTree.evaluateCommand):
(AnalyzeLayoutTestsResultsRedTree):
(AnalyzeLayoutTestsResultsRedTree.report_success):
(AnalyzeLayoutTestsResultsRedTree.report_warning):
(AnalyzeLayoutTestsResultsRedTree.report_infrastructure_issue_and_maybe_retry_build):
(AnalyzeLayoutTestsResultsRedTree.send_email_for_pre_existent_failures):
(AnalyzeLayoutTestsResultsRedTree.start):
- CISupport/ews-build/steps_unittest.py:
- 4:31 PM Changeset in webkit [286404] by
-
- 4 edits in trunk/Source/WebCore
[WebGPU] Add missing files to CMake
https://bugs.webkit.org/show_bug.cgi?id=233687
Reviewed by Sam Weinig.
I forgot to list some files.
Source/WebCore:
No new tests because there is no behavior change.
- Headers.cmake:
Source/WebCore/PAL:
- pal/CMakeLists.txt:
- 4:30 PM Changeset in webkit [286403] by
-
- 42 edits in trunk/Source/WebCore
[WebGPU] Add default values to structs in WebCore/Modules/WebGPU
https://bugs.webkit.org/show_bug.cgi?id=233691
Reviewed by Alex Christensen.
Our bindings code expects that the structs backing dictionaries
have default values for their members.
No new tests because there is no behavior change.
- Modules/WebGPU/GPUBindGroupDescriptor.h:
- Modules/WebGPU/GPUBindGroupEntry.h:
- Modules/WebGPU/GPUBindGroupLayoutEntry.h:
- Modules/WebGPU/GPUBlendComponent.h:
- Modules/WebGPU/GPUBufferBinding.h:
- Modules/WebGPU/GPUBufferBindingLayout.h:
- Modules/WebGPU/GPUBufferDescriptor.h:
- Modules/WebGPU/GPUCanvasConfiguration.h:
- Modules/WebGPU/GPUColorDict.h:
- Modules/WebGPU/GPUColorTargetState.h:
- Modules/WebGPU/GPUComputePassTimestampWrite.h:
- Modules/WebGPU/GPUDepthStencilState.h:
- Modules/WebGPU/GPUExtent3DDict.h:
- Modules/WebGPU/GPUExternalTextureDescriptor.h:
- Modules/WebGPU/GPUImageCopyBuffer.h:
- Modules/WebGPU/GPUImageCopyTexture.h:
- Modules/WebGPU/GPUImageCopyTextureTagged.h:
- Modules/WebGPU/GPUImageDataLayout.h:
- Modules/WebGPU/GPUMultisampleState.h:
- Modules/WebGPU/GPUOrigin2DDict.h:
- Modules/WebGPU/GPUOrigin3DDict.h:
- Modules/WebGPU/GPUPipelineDescriptorBase.h:
- Modules/WebGPU/GPUPrimitiveState.h:
- Modules/WebGPU/GPUProgrammableStage.h:
- Modules/WebGPU/GPUQuerySetDescriptor.h:
- Modules/WebGPU/GPURenderBundleEncoderDescriptor.h:
- Modules/WebGPU/GPURenderPassColorAttachment.h:
- Modules/WebGPU/GPURenderPassDepthStencilAttachment.h:
- Modules/WebGPU/GPURenderPassDescriptor.h:
- Modules/WebGPU/GPURenderPassLayout.h:
- Modules/WebGPU/GPURenderPassTimestampWrite.h:
- Modules/WebGPU/GPURequestAdapterOptions.h:
- Modules/WebGPU/GPUSamplerBindingLayout.h:
- Modules/WebGPU/GPUSamplerDescriptor.h:
- Modules/WebGPU/GPUStencilFaceState.h:
- Modules/WebGPU/GPUStorageTextureBindingLayout.h:
- Modules/WebGPU/GPUTextureBindingLayout.h:
- Modules/WebGPU/GPUTextureDescriptor.h:
- Modules/WebGPU/GPUTextureViewDescriptor.h:
- Modules/WebGPU/GPUVertexAttribute.h:
- Modules/WebGPU/GPUVertexBufferLayout.h:
- 4:29 PM Changeset in webkit [286402] by
-
- 11 edits in trunk
Use Span instead of pointer/length in CompiledContentExtension
https://bugs.webkit.org/show_bug.cgi?id=233727
Reviewed by Tim Hatcher.
Source/WebCore:
No change in behavior. Just simplifying the interface a bit.
- contentextensions/CompiledContentExtension.h:
- contentextensions/ContentExtension.cpp:
(WebCore::ContentExtensions::ContentExtension::ContentExtension):
(WebCore::ContentExtensions::ContentExtension::findFirstIgnorePreviousRules const):
(WebCore::ContentExtensions::ContentExtension::compileGlobalDisplayNoneStyleSheet):
(WebCore::ContentExtensions::ContentExtension::populateConditionCacheIfNeeded):
- contentextensions/ContentExtensionRule.cpp:
(WebCore::ContentExtensions::DeserializedAction::deserialize):
(WebCore::ContentExtensions::DeserializedAction::serializedLength):
- contentextensions/ContentExtensionRule.h:
- contentextensions/ContentExtensionsBackend.cpp:
(WebCore::ContentExtensions::ContentExtensionsBackend::actionsForResourceLoad const):
Source/WebKit:
- Shared/WebCompiledContentRuleList.cpp:
(WebKit::WebCompiledContentRuleList::filtersWithoutConditionsBytecode const):
(WebKit::WebCompiledContentRuleList::filtersWithConditionsBytecode const):
(WebKit::WebCompiledContentRuleList::topURLFiltersBytecode const):
(WebKit::WebCompiledContentRuleList::serializedActions const):
(WebKit::WebCompiledContentRuleList::spanWithOffsetAndLength const):
(WebKit::WebCompiledContentRuleList::filtersWithoutConditionsBytecodeLength const): Deleted.
(WebKit::WebCompiledContentRuleList::filtersWithConditionsBytecodeLength const): Deleted.
(WebKit::WebCompiledContentRuleList::topURLFiltersBytecodeLength const): Deleted.
(WebKit::WebCompiledContentRuleList::actions const): Deleted.
(WebKit::WebCompiledContentRuleList::actionsLength const): Deleted.
- Shared/WebCompiledContentRuleList.h:
Tools:
- TestWebKitAPI/Tests/WebCore/ContentExtensions.cpp:
- 4:18 PM Changeset in webkit [286401] by
-
- 8 edits2 adds in branches/safari-612-branch
Cherry-pick r285320. rdar://problem/85943167
Form action with a redirect should report correct blocked URI
https://bugs.webkit.org/show_bug.cgi?id=232660
<rdar://problem/84969024>
Reviewed by Brent Fulgham.
Source/WebCore:
We currently report the blocked URI as the target of a redirect, per
the spec it should actually be the initiating url.
Test: http/tests/security/contentSecurityPolicy/form-action-redirect-with-correct-blocked-uri.html
- loader/DocumentLoader.cpp: (WebCore::DocumentLoader::willSendRequest):
- loader/FrameLoader.cpp: (WebCore::FrameLoader::checkIfFormActionAllowedByCSP const):
- loader/FrameLoader.h:
- page/csp/ContentSecurityPolicy.cpp: (WebCore::ContentSecurityPolicy::allowResourceFromSource const): (WebCore::ContentSecurityPolicy::allowFormAction const):
- page/csp/ContentSecurityPolicy.h:
LayoutTests:
- http/tests/security/contentSecurityPolicy/form-action-redirect-with-correct-blocked-uri-expected.txt: Added.
- http/tests/security/contentSecurityPolicy/form-action-redirect-with-correct-blocked-uri.html: Added.
- http/tests/security/contentSecurityPolicy/1.1/form-action-src-redirect-blocked-expected.txt: Update console logging to report the correct URL.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@285320 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 4:18 PM Changeset in webkit [286400] by
-
- 2 edits in branches/safari-612-branch/Source/WebCore
Cherry-pick r286309. rdar://problem/84665699
Use scriptDisallowedScope in FrameSelection::updateAppearance
https://bugs.webkit.org/show_bug.cgi?id=233644
Patch by Gabriel Nava Marino <gnavamarino@apple.com> on 2021-11-30
Reviewed by Ryosuke Niwa.
Use scriptDisallowedScope in FrameSelection::updateAppearance to avoid re-entrancy
RenderView problems when a downstream function executes a JS callback.
- editing/FrameSelection.cpp: (WebCore::FrameSelection::validateSelection const): (WebCore::FrameSelection::updateAppearance):
- editing/FrameSelection.h:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@286309 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 4:18 PM Changeset in webkit [286399] by
-
- 4 edits in branches/safari-612-branch
Cherry-pick r286308. rdar://problem/63180952
Scripting attributes are sometimes not properly stripped from elements when JS is disabled
https://bugs.webkit.org/show_bug.cgi?id=233642
<rdar://63180952>
Reviewed by Geoffrey Garen.
Source/WebCore:
HTMLConstructionSite::mergeAttributesFromTokenIntoElement() was not properly stripping scripting
Element attributes when scripting is disabled, unlike other code paths in HTMLConstructionSite().
Covered by new API tests.
- html/parser/HTMLConstructionSite.cpp: (WebCore::HTMLConstructionSite::mergeAttributesFromTokenIntoElement):
Tools:
Add API test coverage.
- TestWebKitAPI/Tests/WebKitCocoa/WKWebViewConfiguration.mm: (TEST):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@286308 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 4:18 PM Changeset in webkit [286398] by
-
- 2 edits in branches/safari-612-branch/Source/WebKit
Cherry-pick r285865. rdar://problem/75139294
Do some hardening in IPC::createMessageDecoder()
https://bugs.webkit.org/show_bug.cgi?id=233148
<rdar://75139294>
Reviewed by Darin Adler.
Do more bound validation insde createMessageDecoder() to make sure we stay within
the bounds of our ReceiveBuffer.
Also, when the body is out of line, set
out_of_line.deallocate
to false since
we are taking ownership of the memory and will vm_deallocate() it ourselves.
Normally the sender (Connection::sendOutgoingMessage) sets that flag to false but
it is better not to rely on the sender setting a particular flag.
- Platform/IPC/cocoa/ConnectionCocoa.mm: (IPC::createMessageDecoder): (IPC::Connection::receiveSourceEventHandler):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@285865 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 4:18 PM Changeset in webkit [286397] by
-
- 8 edits in branches/safari-612-branch
Cherry-pick r285720. rdar://problem/83941760
WebKit is unable to recover if a WebProcess gets terminated while it is launching
https://bugs.webkit.org/show_bug.cgi?id=233001
<rdar://85302938>
Reviewed by Brent Fulgham.
Source/WebKit:
While investigating <rdar://83941760>, I found that the WebAuthn Process would get
jetsammed, which would cause us to call WebProcessPool::terminateAllWebContentProcesses().
I also noticed that if one of these WebProcesses was still launching at the time
of the termination, then the WebProcessProxy / WebPageProxy would keep thinking the
WebProcess is still launching and would never attempt to relaunch it. This would result
in a blank and unresponsive WKWebView which wouldn't be able to do any loads.
The issue was due to ProcessLauncher::terminateProcess() calling invalidate(), which
it would not only terminate the XPC connection, it would also null out m_client. As a
result, we wouldn't notify the client that the process failed to launch. To address
the issue, I move the XPC connection termination logic out of invalidate() and into
its own terminateXPCConnection() function. I then called terminateXPCConnection()
instead of invalidate() inside ProcessLauncher::terminateProcess().
- UIProcess/API/Cocoa/WKProcessPool.mm: (-[WKProcessPool _terminateAllWebContentProcesses]):
- UIProcess/API/Cocoa/WKProcessPoolPrivate.h:
- UIProcess/Launcher/ProcessLauncher.cpp: (WebKit::ProcessLauncher::invalidate):
- UIProcess/Launcher/ProcessLauncher.h:
- UIProcess/Launcher/mac/ProcessLauncherMac.mm: (WebKit::ProcessLauncher::terminateProcess): (WebKit::ProcessLauncher::platformInvalidate): (WebKit::ProcessLauncher::terminateXPCConnection):
Tools:
Add API test coverage, this test was timing out before the fix.
- TestWebKitAPI/Tests/WebKitCocoa/WebProcessTerminate.mm: (TEST):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@285720 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 4:18 PM Changeset in webkit [286396] by
-
- 5 edits in branches/safari-612-branch
Cherry-pick r285619. rdar://problem/83941760
We should not kill all WebContent processes whenever the WebAuthn process crashes
https://bugs.webkit.org/show_bug.cgi?id=232970
<rdar://83941760>
Reviewed by Geoff Garen.
Source/WebKit:
We should not kill all WebContent processes whenever the WebAuthn process crashes. This is overly aggressive. We should
instead do like for the network process and have the WebProcess re-initiate the connection to the WebAuthn process when
it's gone.
No new tests, updated existing API test.
- UIProcess/WebAuthentication/WebAuthnProcessProxy.cpp: (WebKit::WebAuthnProcessProxy::webAuthnProcessCrashed): Do not terminate all WebProcesses when the WebAuthn process crashes.
- WebProcess/WebAuthentication/WebAuthnProcessConnection.cpp: (WebKit::WebAuthnProcessConnection::didClose): Make sure we call WebProcess::webAuthnProcessConnectionClosed() when the WebProcess loses its connection to the WebAuthn process. This makes sure we clear m_webAuthnProcessConnection and properly re-initiate a new WebAuthn process connection the next time WebProcess::ensureWebAuthnProcessConnection() is called.
Tools:
Update API test coverage to reflect behavior change.
- TestWebKitAPI/Tests/WebKitCocoa/_WKWebAuthenticationPanel.mm: (TestWebKitAPI::TEST):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@285619 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 4:18 PM Changeset in webkit [286395] by
-
- 3 edits2 adds in branches/safari-612-branch
Cherry-pick r285570. rdar://problem/83070565
Fix crash in GraphicsContextCG::endTransparencyLayer
https://bugs.webkit.org/show_bug.cgi?id=230230
Reviewed by Myles C. Maxfield.
Source/WebCore:
The crash was due to unbalanced calls to begin and end transparency layers.
A branch handling ancestors of transparent layers that are transform root needed to be
aware of the top layer. Opacity on ancestors don't affect top layer elements so calling
beginTransparencyLayers
onparent()
is incorrect.
Also fix
transparentPaintingAncestor()
to be top layer aware to avoid flickering layers
while scrolling.
Test: fast/layers/top-layer-ancestor-opacity-and-transform-crash.html
- rendering/RenderLayer.cpp: (WebCore::RenderLayer::transparentPaintingAncestor): (WebCore::RenderLayer::paintLayerWithEffects):
LayoutTests:
- fast/layers/top-layer-ancestor-opacity-and-transform-crash-expected.txt: Added.
- fast/layers/top-layer-ancestor-opacity-and-transform-crash.html: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@285570 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 4:17 PM Changeset in webkit [286394] by
-
- 3 edits in branches/safari-612-branch
Cherry-pick r285569. rdar://problem/83070565
Enable dialog tests on Windows
https://bugs.webkit.org/show_bug.cgi?id=232911
Reviewed by Youenn Fablet.
The runtime flag sometimes seems to be off for Windows, change the member in
RuntimeEnabledFeatures.h and re-enable tests.
Source/WebCore:
- page/RuntimeEnabledFeatures.h:
LayoutTests:
- platform/win/TestExpectations:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@285569 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 4:17 PM Changeset in webkit [286393] by
-
- 5 edits in branches/safari-612-branch/Source/WebKit
Cherry-pick r285138. rdar://problem/75139294
Avoid heap-allocating ImportanceAssertion
https://bugs.webkit.org/show_bug.cgi?id=232579
Reviewed by Alex Christensen.
Avoid heap-allocating ImportanceAssertion since this is just a wrapper around a
mach_port.
Also update the ImportanceAssertion destructor to null out the mach port as
hardening given <rdar://75139294>.
- Platform/IPC/Decoder.cpp: (IPC::Decoder::setImportanceAssertion):
- Platform/IPC/Decoder.h:
- Platform/IPC/cocoa/ConnectionCocoa.mm: (IPC::Connection::receiveSourceEventHandler):
- Platform/IPC/cocoa/ImportanceAssertion.h: (IPC::ImportanceAssertion::ImportanceAssertion): (IPC::ImportanceAssertion::operator=): (IPC::ImportanceAssertion::~ImportanceAssertion):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@285138 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 3:52 PM Changeset in webkit [286392] by
-
- 35 edits2 moves in trunk/Source/WebCore
[LBSE] Rename RenderSVGRoot -> LegacyRenderSVGRoot
https://bugs.webkit.org/show_bug.cgi?id=233666
Reviewed by Rob Buis.
RenderSVGRoot looks rather different in the layer-based SVG engine, therefore
it makes most sense, to rename RenderSVGRoot -> LegacyRenderSVGRoot, and bring back
RenderSVGRoot by a new implementation, in small patches that implement the different
pieces layout / painting / etc.
This patches renames RenderSVGRoot -> LegacyRenderSVGRoot and adapts all callsites.
Should not affect any layout tests, as the renderName() stayed 'RenderSVGRoot' after
the rename, to avoid having to rebaseline all SVG layout test expectations.
- Sources.txt:
- WebCore.xcodeproj/project.pbxproj:
- accessibility/AXObjectCache.cpp:
(WebCore::createFromRenderer):
- accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::elementPath const):
- inspector/InspectorOverlay.cpp:
(WebCore::buildRendererHighlight):
- page/FrameView.cpp:
(WebCore::FrameView::applyOverflowToViewport):
(WebCore::FrameView::forceLayoutParentViewIfNeeded):
(WebCore::FrameView::embeddedContentBox const):
- rendering/RenderFlexibleBox.cpp:
- rendering/RenderLayer.cpp:
(WebCore::RenderLayer::setupClipPath):
- rendering/RenderObject.cpp:
- rendering/RenderTreeAsText.cpp:
(WebCore::write):
- rendering/svg/LegacyRenderSVGRoot.cpp: Renamed from Source/WebCore/rendering/svg/RenderSVGRoot.cpp.
(WebCore::LegacyRenderSVGRoot::LegacyRenderSVGRoot):
(WebCore::LegacyRenderSVGRoot::svgSVGElement const):
(WebCore::LegacyRenderSVGRoot::computeIntrinsicRatioInformation const):
(WebCore::LegacyRenderSVGRoot::isEmbeddedThroughSVGImage const):
(WebCore::LegacyRenderSVGRoot::isEmbeddedThroughFrameContainingSVGDocument const):
(WebCore::LegacyRenderSVGRoot::computeReplacedLogicalWidth const):
(WebCore::LegacyRenderSVGRoot::computeReplacedLogicalHeight const):
(WebCore::LegacyRenderSVGRoot::layout):
(WebCore::LegacyRenderSVGRoot::shouldApplyViewportClip const):
(WebCore::LegacyRenderSVGRoot::paintReplaced):
(WebCore::LegacyRenderSVGRoot::willBeDestroyed):
(WebCore::LegacyRenderSVGRoot::insertedIntoTree):
(WebCore::LegacyRenderSVGRoot::willBeRemovedFromTree):
(WebCore::LegacyRenderSVGRoot::styleDidChange):
(WebCore::LegacyRenderSVGRoot::buildLocalToBorderBoxTransform):
(WebCore::LegacyRenderSVGRoot::localToParentTransform const):
(WebCore::LegacyRenderSVGRoot::clippedOverflowRect const):
(WebCore::LegacyRenderSVGRoot::computeFloatVisibleRectInContainer const):
(WebCore::LegacyRenderSVGRoot::mapLocalToContainer const):
(WebCore::LegacyRenderSVGRoot::pushMappingToContainer const):
(WebCore::LegacyRenderSVGRoot::updateCachedBoundaries):
(WebCore::LegacyRenderSVGRoot::nodeAtPoint):
(WebCore::LegacyRenderSVGRoot::hasRelativeDimensions const):
(WebCore::LegacyRenderSVGRoot::addResourceForClientInvalidation):
- rendering/svg/LegacyRenderSVGRoot.h: Renamed from Source/WebCore/rendering/svg/RenderSVGRoot.h.
- rendering/svg/RenderSVGBlock.cpp:
(WebCore::RenderSVGBlock::updateFromStyle):
- rendering/svg/RenderSVGContainer.cpp:
(WebCore::RenderSVGContainer::layout):
- rendering/svg/RenderSVGForeignObject.cpp:
(WebCore::RenderSVGForeignObject::layout):
- rendering/svg/RenderSVGInlineText.cpp:
- rendering/svg/RenderSVGResource.cpp:
(WebCore::RenderSVGResource::markForLayoutAndParentResourceInvalidation):
- rendering/svg/RenderSVGResourceContainer.cpp:
(WebCore::RenderSVGResourceContainer::layout):
- rendering/svg/RenderSVGResourceMarker.cpp:
(WebCore::RenderSVGResourceMarker::layout):
- rendering/svg/RenderSVGResourcePattern.cpp:
- rendering/svg/RenderSVGText.cpp:
(WebCore::RenderSVGText::layout):
- rendering/svg/SVGRenderSupport.cpp:
(WebCore::SVGRenderSupport::localToParentTransform):
(WebCore::SVGRenderSupport::findTreeRootObject):
(WebCore::layoutSizeOfNearestViewportChanged):
(WebCore::SVGRenderSupport::transformToRootChanged):
(WebCore::SVGRenderSupport::isOverflowHidden):
- rendering/svg/SVGRenderSupport.h:
- rendering/svg/SVGRenderTreeAsText.cpp:
(WebCore::write):
- rendering/svg/SVGRenderTreeAsText.h:
- rendering/svg/SVGResources.cpp:
(WebCore::SVGResources::layoutDifferentRootIfNeeded):
- rendering/svg/SVGResources.h:
- rendering/updating/RenderTreeBuilder.cpp:
(WebCore::RenderTreeBuilder::attachInternal):
(WebCore::RenderTreeBuilder::detach):
(WebCore::RenderTreeBuilder::reportVisuallyNonEmptyContent):
- rendering/updating/RenderTreeBuilderSVG.cpp:
(WebCore::RenderTreeBuilder::SVG::attach):
(WebCore::RenderTreeBuilder::SVG::detach):
- rendering/updating/RenderTreeBuilderSVG.h:
- style/StyleAdjuster.cpp:
(WebCore::Style::Adjuster::adjustSVGElementStyle):
- style/StyleBuilderState.cpp:
- svg/SVGLengthContext.cpp:
(WebCore::renderStyleForLengthResolving):
- svg/SVGSVGElement.cpp:
(WebCore::SVGSVGElement::svgAttributeChanged):
(WebCore::SVGSVGElement::localCoordinateSpaceTransform const):
(WebCore::SVGSVGElement::rendererIsNeeded):
(WebCore::SVGSVGElement::createElementRenderer):
(WebCore::SVGSVGElement::currentViewBoxRect const):
(WebCore::SVGSVGElement::currentViewportSize const):
- svg/graphics/SVGImage.cpp:
(WebCore::SVGImage::setContainerSize):
(WebCore::SVGImage::containerSize const):
- svg/graphics/SVGImageCache.cpp:
- 3:33 PM Changeset in webkit [286391] by
-
- 14 edits in trunk/Source
Non-unified build fixes, early December 2021 edition
https://bugs.webkit.org/show_bug.cgi?id=233699
Unreviewed non-unified build fixes.
Source/JavaScriptCore:
- dfg/DFGCodeOriginPool.h: Add missing CodeOrigin.h header.
- heap/Heap.cpp: Add missing GigacageAlignedMemoryAllocator.h header.
- heap/IsoSubspace.cpp: Add missing IsoAlignedMemoryAllocator.h header, and remove
IsoMemoryAllocatorBase.h as it is included by the former.
- runtime/StackFrame.h: Add missing BytecodeIndex.h header.
- runtime/StructureID.h: Add missing wtf/HashTraits.h header.
- tools/Integrity.h: Add missing StructureID.h header.
Source/WebCore:
No new tests needed.
- Modules/web-locks/WebLockManager.cpp: Add missing WebLock.h header.
- Modules/web-locks/WebLockRegistry.cpp: Add missing wtf/CompletionHandler.h header.
- platform/graphics/filters/FEBlend.cpp: Add missing ImageBuffer.h header.
- platform/graphics/filters/FEMerge.cpp: Ditto.
- platform/graphics/filters/FilterImage.h: Add missing FloatRect.h header.
- workers/service/context/ServiceWorkerFetch.h: Add missing FetchIdentifier.h header.
- 3:15 PM Changeset in webkit [286390] by
-
- 2 edits in trunk/Source/JavaScriptCore
[JSC] RegExpTestInline DFG / FTL nodes should introduce a write-barrier
https://bugs.webkit.org/show_bug.cgi?id=233716
Reviewed by Michael Saboff.
Since RegExpTestInline fast path stores cells into JSGlobalObject's RegExpCachedResult field,
we need to consider about inserting a write-barrier onto JSGlobalObject.
This patch adds RegExpTestInline to DFGStoreBarrierInsertionPhase so that DFG / FTL inserts
a write-barrier appropriately.
- dfg/DFGStoreBarrierInsertionPhase.cpp:
- 3:03 PM Changeset in webkit [286389] by
-
- 2 edits in trunk/Tools
Unreviewed API test build fix.
- TestWebKitAPI/Tests/WebKitCocoa/WebPushDaemon.mm:
- 2:58 PM Changeset in webkit [286388] by
-
- 8 edits in branches/safari-612.3.6.1-branch/Source
Versioning.
WebKit-7612.3.6.1.7
- 2:24 PM Changeset in webkit [286387] by
-
- 3 edits in trunk/Source/JavaScriptCore
Add static_assert the value we use to initialize a StructureID buffer should be 0.
https://bugs.webkit.org/show_bug.cgi?id=233720
Reviewed by Yusuke Suzuki.
Also, add static assert that the zero we are putting into the buffer
matches the default StructureID constructor.
- runtime/StructureChain.cpp:
(JSC::StructureChain::create):
- runtime/StructureID.h:
(JSC::StructureID::bits const):
- 2:02 PM Changeset in webkit [286386] by
-
- 11 edits2 deletes in trunk/Source/WebKit
Unreviewed, reverting r286037.
https://bugs.webkit.org/show_bug.cgi?id=233724
Introduced WebRTC crash
Reverted changeset:
"[macOS][GPUP] Remove access in sandbox to
com.apple.audio.AudioComponentRegistrar"
https://bugs.webkit.org/show_bug.cgi?id=231694
https://commits.webkit.org/r286037
- 2:00 PM Changeset in webkit [286385] by
-
- 1 copy in tags/Safari-613.1.9.1
Tag Safari-613.1.9.1.
- 2:00 PM Changeset in webkit [286384] by
-
- 9 edits in branches/safari-613.1.9-branch/Source
Versioning.
WebKit-7613.1.9.1
- 1:31 PM Changeset in webkit [286383] by
-
- 14 edits in trunk
Add csp-report resource type to WKContentRuleList
https://bugs.webkit.org/show_bug.cgi?id=233675
<rdar://71869893>
Reviewed by Tim Hatcher.
Source/WebCore:
This feature is trivial to implement and test except for one small thing: we use a uint16_t to represent the
resource type and context and first party flags, and we already have 16 of them. So we needed to get another
bit from somewhere. What I did was make the flags have a variable length from 1-3 bytes instead of just 2 bytes.
I used the unused upper bits in the instruction to indicate the length of the flags, and if the upper bits were 0,
then I assume it was 2 bytes, which is binary compatible with existing compiled WKContentRuleLists, so no need
to increment the version number and force a recompile. It worked so well that I did the same thing with the actions,
which were 4 bytes but are now 1-4 bytes. This reduced the compiled binary size of one of the tests from 313 bytes
to 288 bytes, a reduction of about 8% of the binary size of the compiled WKContentRuleLists. Larger lists will see
slightly less binary size reduction, but still an improvement.
- contentextensions/ContentExtension.cpp:
(WebCore::ContentExtensions::ContentExtension::ContentExtension):
(WebCore::ContentExtensions::ContentExtension::populateConditionCacheIfNeeded):
- contentextensions/ContentExtensionsBackend.cpp:
(WebCore::ContentExtensions::ContentExtensionsBackend::actionsForResourceLoad const):
- contentextensions/DFABytecode.h:
(WebCore::ContentExtensions::smallestPossibleJumpSize):
(): Deleted.
(WebCore::ContentExtensions::instructionSizeWithArguments): Deleted.
- contentextensions/DFABytecodeCompiler.cpp:
(WebCore::ContentExtensions::append):
(WebCore::ContentExtensions::append24BitInteger):
(WebCore::ContentExtensions::appendZeroes):
(WebCore::ContentExtensions::setBits):
(WebCore::ContentExtensions::bytecodeFlagsSize):
(WebCore::ContentExtensions::bytecodeActionSize):
(WebCore::ContentExtensions::appendVariableLengthInteger):
(WebCore::ContentExtensions::DFABytecodeCompiler::emitAppendAction):
(WebCore::ContentExtensions::DFABytecodeCompiler::emitJump):
(WebCore::ContentExtensions::DFABytecodeCompiler::emitCheckValue):
(WebCore::ContentExtensions::DFABytecodeCompiler::emitCheckValueRange):
(WebCore::ContentExtensions::DFABytecodeCompiler::transitions):
(WebCore::ContentExtensions::DFABytecodeCompiler::compileJumpTable):
(WebCore::ContentExtensions::DFABytecodeCompiler::nodeTransitionsMaxBytecodeSize):
(WebCore::ContentExtensions::DFABytecodeCompiler::compile):
- contentextensions/DFABytecodeInterpreter.cpp:
(WebCore::ContentExtensions::getBits):
(WebCore::ContentExtensions::get24Bits):
(WebCore::ContentExtensions::getInstruction):
(WebCore::ContentExtensions::jumpSizeInBytes):
(WebCore::ContentExtensions::consumeInteger):
(WebCore::ContentExtensions::consume24BitInteger):
(WebCore::ContentExtensions::hasFlags):
(WebCore::ContentExtensions::hasAction):
(WebCore::ContentExtensions::consumeResourceFlagsAndInstruction):
(WebCore::ContentExtensions::consumeAction):
(WebCore::ContentExtensions::getJumpSize):
(WebCore::ContentExtensions::getJumpDistance):
(WebCore::ContentExtensions::matchesCondition):
(WebCore::ContentExtensions::DFABytecodeInterpreter::interpretAppendAction):
(WebCore::ContentExtensions::DFABytecodeInterpreter::interpretTestFlagsAndAppendAction):
(WebCore::ContentExtensions::DFABytecodeInterpreter::interpetJumpTable):
(WebCore::ContentExtensions::DFABytecodeInterpreter::actionsMatchingEverything):
(WebCore::ContentExtensions::DFABytecodeInterpreter::interpretWithConditions):
(WebCore::ContentExtensions::DFABytecodeInterpreter::interpret):
- contentextensions/DFABytecodeInterpreter.h:
(WebCore::ContentExtensions::DFABytecodeInterpreter::DFABytecodeInterpreter):
- loader/PingLoader.cpp:
(WebCore::PingLoader::sendViolationReport):
- loader/ResourceLoadInfo.cpp:
(WebCore::ContentExtensions::readResourceType):
- loader/ResourceLoadInfo.h:
Tools:
- TestWebKitAPI/Tests/WebCore/ContentExtensions.cpp:
(TestWebKitAPI::compareContents):
(TestWebKitAPI::TEST_F):
- TestWebKitAPI/Tests/WebKitCocoa/ContentRuleListNotification.mm:
(TEST):
- 1:25 PM Changeset in webkit [286382] by
-
- 2 edits in trunk/Source/JavaScriptCore
Unreviewed, use void* to suppress GCC warning
https://bugs.webkit.org/show_bug.cgi?id=233379
- runtime/StructureChain.cpp:
(JSC::StructureChain::create):
- 1:18 PM Changeset in webkit [286381] by
-
- 2 edits in trunk/Source/WebKit
[WP] Sandbox telemetry is missing for some system calls
https://bugs.webkit.org/show_bug.cgi?id=233594
<rdar://problem/85832755>
Reviewed by Brent Fulgham.
Sandbox telemetry is missing for some system calls, since telemetry rules are automatically overridden in some cases.
This patch is addressing this by disabling system call inference.
- WebProcess/com.apple.WebProcess.sb.in:
- 1:05 PM Changeset in webkit [286380] by
-
- 3 edits in trunk/Source/WebKit
Unreviewed build fixes after r286346.
- WebProcess/WebPage/MomentumEventDispatcher.cpp:
(WebKit::MomentumEventDispatcher::startDisplayLink):
(WebKit::MomentumEventDispatcher::displayWasRefreshed):
(WebKit::MomentumEventDispatcher::didReceiveScrollEventWithInterval):
(WebKit::MomentumEventDispatcher::buildOffsetTableWithInitialDelta):
(WebKit::MomentumEventDispatcher::offsetAtTime):
(WebKit::momentumDecayRate):
(WebKit::MomentumEventDispatcher::computeNextDelta):
- WebProcess/WebPage/MomentumEventDispatcher.h:
- 12:58 PM Changeset in webkit [286379] by
-
- 2 edits in trunk/Source/WebCore
Remove virtual from RenderWidget::paintContents
https://bugs.webkit.org/show_bug.cgi?id=233709
Patch by Rob Buis <rbuis@igalia.com> on 2021-12-01
Reviewed by Simon Fraser.
Remove virtual from RenderWidget:: paintContents since it is not overridden.
- rendering/RenderWidget.h:
- 12:32 PM Changeset in webkit [286378] by
-
- 3 edits in trunk/Source/JavaScriptCore
Disable madd4 instruction generation globally for MIPS
https://bugs.webkit.org/show_bug.cgi?id=233713
Patch by Mikhail R. Gadelha <Mikhail R. Gadelha> on 2021-12-01
Reviewed by Yusuke Suzuki.
This is an improved version of r285788 and follows the approach used
in r231301. This patch removes the volatile attribute from the double
variable and adds a -mno-madd4 flag globally when compiling on MIPS.
- CMakeLists.txt:
- runtime/ParseInt.h:
(JSC::parseInt):
- 12:29 PM Changeset in webkit [286377] by
-
- 2 edits in trunk/Source/WTF
[Win] OSAllocator::reserveUncommittedAligned should use aligned allocation
https://bugs.webkit.org/show_bug.cgi?id=233674
Reviewed by Keith Miller.
OSAllocator::reserveUncommittedAligned reserved 2GiB for 1GiB
aligned allocation request.
Windows 10 (Desktop) has VirtualAlloc2 API to aligned allocation.
- wtf/win/OSAllocatorWin.cpp:
(WTF::OSAllocator::reserveUncommittedAligned): Use VirtualAlloc2
API if available. Use SOFT_LINK_OPTIONAL for VirtualAlloc2.
- 11:36 AM Changeset in webkit [286376] by
-
- 2 edits in trunk/Tools
[ iOS ] TestWebKitAPI.ApplicationManifest.IconCoding is a constant failure
https://bugs.webkit.org/show_bug.cgi?id=233715
Reviewed by Tim Horton.
- TestWebKitAPI/Tests/WebKitCocoa/ApplicationManifest.mm:
(TestWebKitAPI::TEST): Remove a fragile assertion about the size of NSKeyedArchive that is causing the test to fail on iOS.
- 11:28 AM Changeset in webkit [286375] by
-
- 2 edits in trunk/LayoutTests
[GLIB] Skip model tag test
Unreviewed test gardening.
<model> is not enabled/supported in GTK/WPE.
- platform/glib/TestExpectations:
- 11:23 AM Changeset in webkit [286374] by
-
- 3 edits in trunk/Tools
[macOS] run-benchmark should take diagnostic screenshots upon test timeout
https://bugs.webkit.org/show_bug.cgi?id=232736
Reviewed by Dewei Zhu.
Added defaults for the --diagnose-directory flag depending on platform.
Added diagnose_test_failure method to OSXBrowserDriver to take screenshots and save to diagnostic directory.
- Scripts/webkitpy/benchmark_runner/browser_driver/osx_browser_driver.py:
(OSXBrowserDriver._save_screenshot_to_path):
(OSXBrowserDriver):
(OSXBrowserDriver.diagnose_test_failure):
- 11:14 AM Changeset in webkit [286373] by
-
- 5 edits in trunk/Tools
[webkitscmpy] Do not query remotes when determining branches containing commit
https://bugs.webkit.org/show_bug.cgi?id=233700
<rdar://problem/85920569>
Reviewed by Stephanie Lewis.
- Scripts/libraries/webkitscmpy/setup.py: Bump version.
- Scripts/libraries/webkitscmpy/webkitscmpy/init.py: Ditto.
- Scripts/libraries/webkitscmpy/webkitscmpy/local/git.py:
(Git.branches_for): Remove -a from --contains check.
- Scripts/libraries/webkitscmpy/webkitscmpy/mocks/local/git.py:
Canonical link: https://commits.webkit.org/244732@main
- 11:07 AM Changeset in webkit [286372] by
-
- 2 edits in trunk/Source/JavaScriptCore
Unreviewed, fix CLoop build
https://bugs.webkit.org/show_bug.cgi?id=233379
- llint/LowLevelInterpreter64.asm:
- 11:06 AM Changeset in webkit [286371] by
-
- 2 edits in trunk/Source/WTF
Unreviewed. Fix -Wformat warning after in ThreadingPosix logging
- wtf/posix/ThreadingPOSIX.cpp:
(WTF::Thread::establishHandle):
- 11:01 AM Changeset in webkit [286370] by
-
- 2 edits in trunk/Source/WTF
Fix NEAR_FIELD macro to support iOS devices again
https://bugs.webkit.org/show_bug.cgi?id=233671
rdar://85318070
In a previous change, https://bugs.webkit.org/show_bug.cgi?id=231085, the definition for
the NEAR_FIELD macro removed support for iOS. This change adds it back, fixing
NFC webauthn support.
Reviewed by Brent Fulgham.
Tested manually on an iPhone.
- wtf/PlatformHave.h:
- 10:36 AM Changeset in webkit [286369] by
-
- 17 edits2 adds in trunk
[GStreamer] requestVideoFrameCallback support
https://bugs.webkit.org/show_bug.cgi?id=233541
Reviewed by Xabier Rodriguez-Calvar.
Source/WebCore:
Video frames metadata reported by the player is stored in GstBuffers as a new GstMeta.
Processing times is tracked in converters and decoders using pad probes. The GStreamer
mediastream video capturer is now inserting metadata that includes the capture timestamp in
the buffers. The WebRTC incoming and mock sources are wrapping the metadata in the
MediaSamples they create.
- platform/GStreamer.cmake:
- platform/VideoFrameMetadata.h:
- platform/graphics/gstreamer/GStreamerCommon.h:
(WebCore::fromGstClockTime):
- platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
(WebCore::MediaPlayerPrivateGStreamer::createGSTPlayBin):
(WebCore::MediaPlayerPrivateGStreamer::configureVideoDecoder):
(WebCore::MediaPlayerPrivateGStreamer::pushTextureToCompositor):
(WebCore::MediaPlayerPrivateGStreamer::flushCurrentBuffer):
(WebCore::MediaPlayerPrivateGStreamer::videoFrameMetadata):
- platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:
- platform/graphics/gstreamer/MediaSampleGStreamer.cpp:
(WebCore::MediaSampleGStreamer::MediaSampleGStreamer):
(WebCore::MediaSampleGStreamer::createImageSample):
- platform/graphics/gstreamer/MediaSampleGStreamer.h:
(WebCore::MediaSampleGStreamer::create):
(WebCore::MediaSampleGStreamer::createImageSample):
(WebCore::MediaSampleGStreamer::MediaSampleGStreamer):
- platform/graphics/gstreamer/VideoFrameMetadataGStreamer.cpp: Added.
(videoFrameMetadataAPIGetType):
(videoFrameMetadataGetInfo):
(webkitGstBufferSetVideoSampleMetadata):
(webkitGstTraceProcessingTimeForElement):
(webkitGstBufferGetVideoFrameMetadata):
- platform/graphics/gstreamer/VideoFrameMetadataGStreamer.h: Added.
- platform/mediastream/gstreamer/GStreamerCapturer.cpp:
(WebCore::GStreamerCapturer::createSource):
- platform/mediastream/gstreamer/GStreamerMediaStreamSource.cpp:
(mediaStreamTrackPrivateGetTags):
- platform/mediastream/gstreamer/MockRealtimeVideoSourceGStreamer.cpp:
(WebCore::MockRealtimeVideoSourceGStreamer::updateSampleBuffer):
- platform/mediastream/libwebrtc/gstreamer/RealtimeIncomingVideoSourceLibWebRTC.cpp:
(WebCore::RealtimeIncomingVideoSourceLibWebRTC::OnFrame):
- platform/mediastream/libwebrtc/gstreamer/RealtimeIncomingVideoSourceLibWebRTC.h:
Source/WTF:
- Scripts/Preferences/WebPreferencesExperimental.yaml: Enable rvfc support in GStreamer ports.
LayoutTests:
- platform/glib/TestExpectations: Update rvfc test expectations. WebRTC-related tests fail
mostly because WebRTC encoding/decoding is currently totally broken in WPE/GTK. XR tests
shall be handled in a separate patch.
- 9:50 AM Changeset in webkit [286368] by
-
- 2 edits in trunk/Tools
REGRESSION (r286346): ResourceLoadDelegate.LoadInfo fails
https://bugs.webkit.org/show_bug.cgi?id=233689
Reviewed by Simon Fraser.
- TestWebKitAPI/Tests/WebKitCocoa/ResourceLoadDelegate.mm:
This test asserts that archiving a _WKResourceLoadInfo via NSKeyedArchiver
encodes to a particular size (607 bytes).
If you look at the resultant plist before r286346, the encoded frameID
and resourceLoadID have the same value, and because of NSKeyedArchiver
deduplication, share the same object.
If you look at the resultant plist *after* r286346, the encoded frameID
is one larger than the resourceLoadID, thus cannot be deduplicated, and
end up encoding as separate objects. This results in the encoded size
increasing to 612 bytes.
The reason that the encoded frameID is now one value larger is that
ObjectIdentifier uses a global identifier pool, and r286346 creates
one more ObjectIdentifier during EventHandler construction, destroying
our entirely coincidental ID overlap, and causing the aforementioned
encoded size change.
Remove this assertion from the test, since it is very aggressive and
seems unnecessary. We could instead just rebaseline the test, but it
seems insufficiently important to burden some future developer with
a repeat of this evening of exploration and discovery.
- 9:45 AM Changeset in webkit [286367] by
-
- 4 edits in trunk/Source/WebKitLegacy/mac
Regression(r283912) Broke backward compatibility for Swift bindings
https://bugs.webkit.org/show_bug.cgi?id=233701
<rdar://85627701>
Reviewed by Darin Adler.
Rename EpochTimeStamp back to DOMTimeStamp in DOMObject.h & DOMEvent.h
since those are API headers and we need to maintain backward compatibility.
- DOM/DOMEvent.h:
- DOM/DOMEvent.mm:
(-[DOMEvent timeStamp]):
- DOM/DOMObject.h:
- 9:09 AM Changeset in webkit [286366] by
-
- 4 edits in trunk/Source/WebCore
Adjust a Live Text quirk so that it applies to YouTube image thumbnails
https://bugs.webkit.org/show_bug.cgi?id=233670
Reviewed by Devin Rousso.
Augment this existing quirk so that it (1) applies to YouTube as well, and (2) also forces
-webkit-user-drag
to beauto
.
- dom/ImageOverlay.cpp:
(WebCore::ImageOverlay::updateSubtree):
- page/Quirks.cpp:
(WebCore::Quirks::needsToForceUserSelectAndUserDragWhenInstallingImageOverlay const):
(WebCore::Quirks::needsToForceUserSelectWhenInstallingImageOverlay const): Deleted.
- page/Quirks.h:
- 9:04 AM Changeset in webkit [286365] by
-
- 7 edits2 adds in trunk
[:has() pseudo-class] Sibling combinator invalidation
https://bugs.webkit.org/show_bug.cgi?id=233696
Reviewed by Simon Fraser.
LayoutTests/imported/w3c:
- web-platform-tests/css/selectors/invalidation/has-sibling-expected.txt: Added.
- web-platform-tests/css/selectors/invalidation/has-sibling.html: Added.
Source/WebCore:
Invalidate style correctly for sibling combinators in :has() arguments.
Also add new MatchElement::HasSiblingDescendant value used for :has() arguments that
match the subject elements siblings descendants, like ':has(~ div .descendant)'.
Use it to avoid unnecessary big tree traversals in simple cases.
Test: imported/w3c/web-platform-tests/css/selectors/invalidation/has-sibling.html
- css/SelectorChecker.cpp:
(WebCore::SelectorChecker::matchHasPseudoClass const):
Minimal traversals for HasSibling and HasSiblingDescendant.
- style/ChildChangeInvalidation.cpp:
(WebCore::Style::needsTraversal):
(WebCore::Style::needsDescendantTraversal):
- style/RuleFeature.cpp:
(WebCore::Style::isSiblingOrSubject):
(WebCore::Style::isHasPseudoClassMatchElement):
(WebCore::Style::computeHasPseudoClassMatchElement):
- style/RuleFeature.h:
- style/StyleInvalidator.cpp:
(WebCore::Style::Invalidator::invalidateStyleWithMatchElement):
Invalidation traversal.
- 8:50 AM Changeset in webkit [286364] by
-
- 2 edits in trunk/Source/WebCore
Add a features.json entry to requestVideoFrameCallback
https://bugs.webkit.org/show_bug.cgi?id=233690
Reviewed by Eric Carlson.
No change of behavior.
- features.json:
- 8:41 AM Changeset in webkit [286363] by
-
- 22 edits1 copy2 adds in trunk
CSP: Update URL stripping in reports to match other implementations
https://bugs.webkit.org/show_bug.cgi?id=233135
Reviewed by Kate Cheney.
LayoutTests/imported/w3c:
Update tests as passing.
- web-platform-tests/content-security-policy/generic/directive-name-case-insensitive.sub-expected.txt:
- web-platform-tests/content-security-policy/media-src/media-src-7_1_2.sub-expected.txt:
- web-platform-tests/content-security-policy/media-src/media-src-7_2_2.sub-expected.txt:
- web-platform-tests/content-security-policy/media-src/media-src-blocked.sub-expected.txt:
- web-platform-tests/content-security-policy/reporting/report-original-url.sub-expected.txt:
- web-platform-tests/content-security-policy/reporting/report-strips-fragment-expected.txt:
- web-platform-tests/content-security-policy/securitypolicyviolation/securitypolicyviolation-block-cross-origin-image.sub-expected.txt:
Source/WebCore:
- page/csp/ContentSecurityPolicy.cpp:
(WebCore::ContentSecurityPolicy::createURLForReporting const):
(WebCore::ContentSecurityPolicy::reportViolation const):
(WebCore::ContentSecurityPolicy::deprecatedURLForReporting const): Deleted.
- page/csp/ContentSecurityPolicy.h:
LayoutTests:
Remove skipped tests that now pass. Change CSP tests to expect full URLs.
- TestExpectations:
- http/tests/security/contentSecurityPolicy/1.1/script-blocked-sends-multiple-reports-expected.txt:
- http/tests/security/contentSecurityPolicy/1.1/securitypolicyviolation-block-cross-origin-image-expected.txt:
- http/tests/security/contentSecurityPolicy/1.1/securitypolicyviolation-block-cross-origin-image-from-script-expected.txt:
- http/tests/security/contentSecurityPolicy/1.1/securitypolicyviolation-block-cross-origin-image-from-script.html:
- http/tests/security/contentSecurityPolicy/1.1/securitypolicyviolation-block-cross-origin-image.html:
- http/tests/security/contentSecurityPolicy/1.1/securitypolicyviolation-block-image-https-expected.txt:
- http/tests/security/contentSecurityPolicy/report-blocked-uri-cross-origin-expected.txt:
- http/wpt/fetch/csp-reports-bypass-csp-checks.html:
- platform/glib/imported/w3c/web-platform-tests/content-security-policy/media-src/media-src-7_1_2.sub-expected.txt: Added.
- platform/glib/imported/w3c/web-platform-tests/content-security-policy/media-src/media-src-7_2_2.sub-expected.txt: Added.
- platform/glib/imported/w3c/web-platform-tests/content-security-policy/media-src/media-src-blocked.sub-expected.txt: Added.
- platform/glib/imported/w3c/web-platform-tests/content-security-policy/media-src/media-src-redir-bug.sub-expected.txt:
- 7:47 AM Changeset in webkit [286362] by
-
- 4 edits in trunk/LayoutTests
imported/w3c/web-platform-tests/html/semantics/forms/form-submission-0/multipart-formdata.window.html is no longer failing – remove expectations
https://bugs.webkit.org/show_bug.cgi?id=233664
Patch by Andreu Botella <andreu@andreubotella.com> on 2021-12-01
Reviewed by Chris Dumez.
LayoutTests/imported/w3c:
- web-platform-tests/html/semantics/forms/form-submission-0/multipart-formdata.window-expected.txt:
Updated to match the current test output.
LayoutTests:
- 5:36 AM Changeset in webkit [286361] by
-
- 21 edits4 adds in trunk
Reuse navigation preload if service worker is fetching the corresponding navigation request
https://bugs.webkit.org/show_bug.cgi?id=233490
Reviewed by Chris Dumez.
Source/WebCore:
Store the fetch identifier in FetchRequest as this might be used as the navigation preload identifier.
We set it when creating a FetchRequest for firing a fetch event.
This identifier is kept in case of request cloning or when creating a request as part of calling fetch.
It is used to set the navigationPreloadIdentifier in ResourceLoaderOptions that is piped to WebLoaderStrategy.
Test: http/wpt/service-workers/fetch-service-worker-preload.https.html
- Modules/fetch/FetchLoader.cpp:
- Modules/fetch/FetchRequest.cpp:
- Modules/fetch/FetchRequest.h:
- loader/ResourceLoaderOptions.h:
- loader/ThreadableLoader.cpp:
- workers/service/context/ServiceWorkerFetch.cpp:
- workers/service/context/ServiceWorkerFetch.h:
- workers/service/context/ServiceWorkerThread.cpp:
- workers/service/context/ServiceWorkerThread.h:
- workers/service/context/ServiceWorkerThreadProxy.cpp:
Source/WebKit:
Store navigation preloader in NetworkSession, keyed by the corresponding fetch identifier.
When a navigation request is coming from fetch with the corresponding navigation preload identifier
we look at ongoing preloads and use it if available to answer the fetch.
To do so, we create a new ServiceWorkerFetchTask that will take the preloader of the initial ServiceWorkerFetchTask.
- NetworkProcess/NetworkResourceLoadParameters.cpp:
- NetworkProcess/NetworkResourceLoadParameters.h:
- NetworkProcess/NetworkSession.cpp:
- NetworkProcess/NetworkSession.h:
- NetworkProcess/ServiceWorker/ServiceWorkerFetchTask.cpp:
- NetworkProcess/ServiceWorker/ServiceWorkerFetchTask.h:
- NetworkProcess/ServiceWorker/WebSWServerConnection.cpp:
- WebProcess/Network/WebLoaderStrategy.cpp:
LayoutTests:
- http/wpt/service-workers/fetch-service-worker-preload-worker.js: Added.
- http/wpt/service-workers/fetch-service-worker-preload.https-expected.txt: Added.
- http/wpt/service-workers/fetch-service-worker-preload.https.html: Added.
- http/wpt/service-workers/resources/fetch-service-worker-preload-script.py: Added.
- 4:45 AM Changeset in webkit [286360] by
-
- 2 edits in trunk/Source/JavaScriptCore
[JSC] Fix potential build break related to StructureID.h
https://bugs.webkit.org/show_bug.cgi?id=233693
Patch by Xan Lopez <Xan Lopez> on 2021-12-01
Reviewed by Adrian Perez de Castro.
- runtime/StructureID.h: include StdIntExtras.h for CPURegister.
- 4:27 AM Changeset in webkit [286359] by
-
- 2 edits in trunk/Source/WebKit
WebSWServerConnection::createFetchTask does not need to query twice for a registration
https://bugs.webkit.org/show_bug.cgi?id=233467
Reviewed by Chris Dumez.
Instead of searching for a worker and then searching for a registration,
we now search for a registration and, if not null, directly get its active worker.
This makes it clear the registration is not null in follow-up code and removes a redundant query.
No change of behavior, this is a refactoring.
- NetworkProcess/ServiceWorker/WebSWServerConnection.cpp:
(WebKit::WebSWServerConnection::createFetchTask):
- 2:56 AM Changeset in webkit [286358] by
-
- 5 edits in trunk/Source/WebCore
[MSE][WPE] Parameterize maximum buffer size using the MSE_MAX_BUFFER_SIZE env var
https://bugs.webkit.org/show_bug.cgi?id=233495
Reviewed by Xabier Rodriguez-Calvar.
The current MSE policy of SourceBuffers taking all the available system memory until the MemoryPressureHandler
complains may work fine for a typical desktop system, when caching is preferred over memory footprint. However,
memory is scarce on embedded systems and WebKit may compete with other software for memory resources. In that
scenario, the embedder may prefer to restrict the amount of memory available for each kind of SourceBuffer
(audio, video, text).
For that purpose, the MSE_MAX_BUFFER_SIZE environment variable is honored. It has the following syntax: Case
insensitive, full type (audio, video, text), compact type (a, v, t), wildcard (*), unit multipliers (M=Mb,
K=Kb, <empty>=bytes). Examples:
MSE_MAX_BUFFER_SIZE='V:50M,audio:12k,TeXT:500K'
MSE_MAX_BUFFER_SIZE='*:100M'
MSE_MAX_BUFFER_SIZE='video:90M,T:100000'
- Modules/mediasource/SourceBuffer.cpp: Honor platform imposed buffer size restrictions with higher priority (if present) than the element ones.
- platform/graphics/SourceBufferPrivate.h: Added platformMaximumBufferSize() default implementation that sets no buffer size restrictions.
- platform/graphics/gstreamer/mse/SourceBufferPrivateGStreamer.cpp: Read the MSE_MAX_BUFFER_SIZE environment variable and compute the maximum buffer
size if the size is specified in the variable for all the track types present in the SourceBufferPrivate. Otherwise, use the default size.
- platform/graphics/gstreamer/mse/SourceBufferPrivateGStreamer.h: Override default platformMaximumBufferSize() implementation.
- 2:53 AM Changeset in webkit [286357] by
-
- 2 edits in trunk/Source/WTF
Add a runtime flag to enable CSS Transforms Level 2 spec compliant behavior
https://bugs.webkit.org/show_bug.cgi?id=232618
Reviewed by Simon Fraser.
- Scripts/Preferences/WebPreferencesExperimental.yaml:
- 2:44 AM Changeset in webkit [286356] by
-
- 2 edits in trunk/Source/JavaScriptCore
[JSC] Remove debug print left over from previous patch
https://bugs.webkit.org/show_bug.cgi?id=233692
Unreviewed follow-up patch.
Patch by Xan Lopez <Xan Lopez> on 2021-12-01
- offlineasm/x86.rb: remove debug print.
- 1:07 AM Changeset in webkit [286355] by
-
- 22 edits1 copy in trunk
Add WKWebsiteDataStore configuration option to enable Mock app bundle testing.
https://bugs.webkit.org/show_bug.cgi?id=233679
Reviewed by Tim Horton.
Source/WebKit:
Covered by API tests.
We're about to land actual implementations of app permissions bundles.
But the mock bundles still have a place for testing.
We need a way to switch between Mock and Native.
This patch takes the opportunity to plumb out a WebPushDaemonConnectionConfiguration object
that can easily be augmented in future patches to add new options without messing with messaging directly.
- NetworkProcess/NetworkSession.h:
(WebKit::NetworkSession::webpushdUsesMockBundlesForTesting const):
- NetworkProcess/NetworkSessionCreationParameters.cpp:
(WebKit::NetworkSessionCreationParameters::encode const):
(WebKit::NetworkSessionCreationParameters::decode):
- NetworkProcess/NetworkSessionCreationParameters.h:
- NetworkProcess/Notifications/NetworkNotificationManager.cpp:
(WebKit::NetworkNotificationManager::maybeSendConnectionConfiguration const):
(WebKit::NetworkNotificationManager::sendMessage const):
(WebKit::NetworkNotificationManager::sendMessageWithReply const):
(WebKit::NetworkNotificationManager::maybeSendHostAppAuditToken const): Deleted.
- NetworkProcess/Notifications/NetworkNotificationManager.h:
- NetworkProcess/cocoa/NetworkSessionCocoa.h:
- NetworkProcess/cocoa/NetworkSessionCocoa.mm:
(WebKit::NetworkSessionCocoa::NetworkSessionCocoa):
- Shared/WebPushDaemonConnectionConfiguration.h: Copied from Source/WebKit/Shared/WebPushDaemonConstants.h.
(WebKit::WebPushD::WebPushDaemonConnectionConfiguration::encode const):
(WebKit::WebPushD::WebPushDaemonConnectionConfiguration::decode):
- Shared/WebPushDaemonConstants.h:
(WebKit::WebPushD::messageTypeSendsReply):
- UIProcess/API/Cocoa/_WKWebsiteDataStoreConfiguration.h:
- UIProcess/API/Cocoa/_WKWebsiteDataStoreConfiguration.mm:
(-[_WKWebsiteDataStoreConfiguration webpushdUsesMockBundlesForTesting]):
(-[_WKWebsiteDataStoreConfiguration setWebpushdUsesMockBundlesForTesting:]):
- UIProcess/WebsiteData/WebsiteDataStore.cpp:
(WebKit::WebsiteDataStore::parameters):
- UIProcess/WebsiteData/WebsiteDataStoreConfiguration.cpp:
(WebKit::WebsiteDataStoreConfiguration::copy const):
(WebKit::WebsiteDataStoreConfiguration::webPushDaemonConnectionConfiguration const):
- UIProcess/WebsiteData/WebsiteDataStoreConfiguration.h:
(WebKit::WebsiteDataStoreConfiguration::webpushdUsesMockBundlesForTesting const):
(WebKit::WebsiteDataStoreConfiguration::setWebpushdUsesMockBundlesForTesting):
- WebKit.xcodeproj/project.pbxproj:
- webpushd/AppBundleRequest.mm:
(WebPushD::AppBundleRequest::AppBundleRequest):
(WebPushD::AppBundleRequest::start):
- webpushd/PushClientConnection.h:
(WebPushD::ClientConnection::hasHostAppAuditToken const):
(WebPushD::ClientConnection::useMockBundlesForTesting const):
- webpushd/PushClientConnection.mm:
(WebPushD::ClientConnection::updateConnectionConfiguration):
(WebPushD::ClientConnection::setHostAppAuditTokenData):
- webpushd/WebPushDaemon.h:
- webpushd/WebPushDaemon.mm:
(WebPushD::Daemon::decodeAndHandleMessage):
(WebPushD::Daemon::getOriginsWithPushAndNotificationPermissions):
(WebPushD::Daemon::setDebugModeIsEnabled):
(WebPushD::Daemon::updateConnectionConfiguration):
(WebPushD::Daemon::setHostAppAuditToken): Deleted.
Tools:
- TestWebKitAPI/Tests/WebKitCocoa/WebPushDaemon.mm:
- 12:21 AM Changeset in webkit [286354] by
-
- 2 edits in trunk/Source/WebKit
[GTK][GTK4][WebDriver] Flaky crashes exiting many prompty-related webdriver tests
https://bugs.webkit.org/show_bug.cgi?id=233505
Reviewed by Carlos Garcia Campos.
Covered by existing tests.
When building for GTK4, upon dialog closure the dialog widgets might
be removed withwebkitWebViewDialogSetChild(dialog, NULL)
while
the button is still registered as the default widget of the toplevel.
This commit makes sure we don't have a default widget while the
dialog is unmapped, to mirror the map() behavior.
- UIProcess/API/gtk/WebKitScriptDialogImpl.cpp:
(webkitScriptDialogImplUnmap): Added to unset the default widget.
(webkit_script_dialog_impl_class_init): Register unmap callback.
Nov 30, 2021:
- 11:43 PM Changeset in webkit [286353] by
-
- 2 edits in trunk/Source/WebKit
replace-webkit-additions-includes should assume unknown or empty deployment targets are supported
https://bugs.webkit.org/show_bug.cgi?id=233650
Patch by Antoine Quint <Antoine Quint> on 2021-11-30
Reviewed by Tim Horton.
- mac/replace-webkit-additions-includes.py:
(is_supported_os):
- 11:18 PM Changeset in webkit [286352] by
-
- 20 edits in trunk/Source
Pass the timestamp for scrolling thread animations through all the serviceScrollAnimation() calls
https://bugs.webkit.org/show_bug.cgi?id=233678
Reviewed by Tim Horton.
Source/WebCore:
All scroll animations serviced at the same time should use a common timestamp, and
avoid multiple calls to MonotonicTime::now() by passing the time down through from
ThreadedScrollingTree::displayDidRefreshOnScrollingThread().
Also minor refactoring in ThreadedScrollingTree to prepare for a future patch.
- page/scrolling/ScrollingTree.cpp:
(WebCore::ScrollingTree::nominalFramesPerSecond):
- page/scrolling/ScrollingTreeScrollingNode.h:
- page/scrolling/ScrollingTreeScrollingNodeDelegate.h:
- page/scrolling/ThreadedScrollingTree.cpp:
(WebCore::ThreadedScrollingTree::frameDuration):
(WebCore::ThreadedScrollingTree::maxAllowableRenderingUpdateDurationForSynchronization):
(WebCore::ThreadedScrollingTree::serviceScrollAnimations):
(WebCore::ThreadedScrollingTree::displayDidRefreshOnScrollingThread):
- page/scrolling/ThreadedScrollingTree.h:
- page/scrolling/mac/ScrollingTreeFrameScrollingNodeMac.h:
- page/scrolling/mac/ScrollingTreeFrameScrollingNodeMac.mm:
(WebCore::ScrollingTreeFrameScrollingNodeMac::serviceScrollAnimation):
- page/scrolling/mac/ScrollingTreeOverflowScrollingNodeMac.h:
- page/scrolling/mac/ScrollingTreeOverflowScrollingNodeMac.mm:
(WebCore::ScrollingTreeOverflowScrollingNodeMac::serviceScrollAnimation):
- page/scrolling/mac/ScrollingTreeScrollingNodeDelegateMac.h:
- page/scrolling/mac/ScrollingTreeScrollingNodeDelegateMac.mm:
(WebCore::ScrollingTreeScrollingNodeDelegateMac::serviceScrollAnimation):
- page/scrolling/nicosia/ScrollingTreeFrameScrollingNodeNicosia.cpp:
(WebCore::ScrollingTreeFrameScrollingNodeNicosia::serviceScrollAnimation):
- page/scrolling/nicosia/ScrollingTreeFrameScrollingNodeNicosia.h:
- page/scrolling/nicosia/ScrollingTreeOverflowScrollingNodeNicosia.cpp:
(WebCore::ScrollingTreeOverflowScrollingNodeNicosia::serviceScrollAnimation):
- page/scrolling/nicosia/ScrollingTreeOverflowScrollingNodeNicosia.h:
- page/scrolling/nicosia/ScrollingTreeScrollingNodeDelegateNicosia.cpp:
(WebCore::ScrollingTreeScrollingNodeDelegateNicosia::serviceScrollAnimation):
- page/scrolling/nicosia/ScrollingTreeScrollingNodeDelegateNicosia.h:
Source/WebKit:
- UIProcess/RemoteLayerTree/ios/ScrollingTreeScrollingNodeDelegateIOS.h:
- 11:18 PM Changeset in webkit [286351] by
-
- 15 edits in trunk/Source
Remove the scrolling tree plumbing of the momentumScrollingAnimatorEnabled() setting, which is no longer needed
https://bugs.webkit.org/show_bug.cgi?id=233680
Reviewed by Tim Horton.
We no longer consult the momentumScrollingAnimatorEnabled setting in the scrolling tree, so remove
the plumbing.
Source/WebCore:
- page/scrolling/AsyncScrollingCoordinator.cpp:
(WebCore::AsyncScrollingCoordinator::setFrameScrollingNodeState):
- page/scrolling/ScrollingStateFrameScrollingNode.cpp:
(WebCore::ScrollingStateFrameScrollingNode::ScrollingStateFrameScrollingNode):
(WebCore::ScrollingStateFrameScrollingNode::applicableProperties const):
(WebCore::ScrollingStateFrameScrollingNode::setMomentumScrollingAnimatorEnabled): Deleted.
- page/scrolling/ScrollingStateFrameScrollingNode.h:
- page/scrolling/ScrollingStateNode.h:
- page/scrolling/ScrollingTree.cpp:
(WebCore::ScrollingTree::commitTreeState):
- page/scrolling/ScrollingTree.h:
(WebCore::ScrollingTree::momentumScrollingAnimatorEnabled const): Deleted.
(WebCore::ScrollingTree::setMomentumScrollingAnimatorEnabled): Deleted.
- page/scrolling/ScrollingTreeScrollingNode.cpp:
(WebCore::ScrollingTreeScrollingNode::momentumScrollingAnimatorEnabled const): Deleted.
- page/scrolling/ScrollingTreeScrollingNode.h:
- page/scrolling/mac/ScrollingTreeScrollingNodeDelegateMac.h:
- page/scrolling/mac/ScrollingTreeScrollingNodeDelegateMac.mm:
(WebCore::ScrollingTreeScrollingNodeDelegateMac::momentumScrollingAnimatorEnabled const): Deleted.
- platform/ScrollingEffectsController.cpp:
(WebCore::ScrollingEffectsController::ScrollingEffectsController):
- platform/ScrollingEffectsController.h:
(WebCore::ScrollingEffectsControllerClient::scrollAnimationEnabled const):
(WebCore::ScrollingEffectsControllerClient::momentumScrollingAnimatorEnabled const): Deleted.
(WebCore::ScrollingEffectsController::momentumScrollingAnimatorEnabled const): Deleted.
Source/WebKit:
- Shared/RemoteLayerTree/RemoteScrollingCoordinatorTransaction.cpp:
(ArgumentCoder<ScrollingStateFrameScrollingNode>::encode):
(ArgumentCoder<ScrollingStateFrameScrollingNode>::decode):
- 10:32 PM Changeset in webkit [286350] by
-
- 6 edits in trunk
[css-values-4] Dynamic
dv*
viewport units should not respect the page scale
https://bugs.webkit.org/show_bug.cgi?id=233291
Reviewed by Simon Fraser.
Source/WebCore:
According to the spec (<https://drafts.csswg.org/css-values-4/#viewport-relative-lengths>):
The viewport-percentage lengths are relative to the size of the initial containing block.
As such, we should really be using the layout viewport, not the visual viewport.
Tests: CSSViewportUnits.AllSame
CSSViewportUnits.EmptyUnobscuredSizeOverrides
CSSViewportUnits.SameUnobscuredSizeOverrides
CSSViewportUnits.DifferentUnobscuredSizeOverrides
- page/FrameView.h:
- page/FrameView.cpp:
(WebCore::FrameView::availableContentSizeChanged):
(WebCore::FrameView::layoutOrVisualViewportChanged):
(WebCore::FrameView::unobscuredContentSizeChanged):
(WebCore::FrameView::sizeForCSSDynamicViewportUnits() const):
Make sure to notify elements using CSS viewport units of changes to the layout viewport.
Tools:
- TestWebKitAPI/Tests/WebKitCocoa/CSSViewportUnits.html:
- TestWebKitAPI/Tests/WebKitCocoa/CSSViewportUnits.mm:
(evaluateForNumber):
(dimensionOfElement): Added.
(widthOfElementWithID): Added.
(heightOfElementWithID): ADded.
(viewportUnitLength): Added.
(TEST.CSSViewportUnits.AllSame):
(TEST.CSSViewportUnits.EmptyUnobscuredSizeOverrides):
(TEST.CSSViewportUnits.SameUnobscuredSizeOverrides):
(TEST.CSSViewportUnits.DifferentUnobscuredSizeOverrides):
(getElementHeight): Deleted.
- 10:11 PM Changeset in webkit [286349] by
-
- 4 edits in trunk/Source/WebCore
Null check value returned by WorkerOrWorkletGlobalScope::script()
https://bugs.webkit.org/show_bug.cgi?id=233655
Reviewed by Darin Adler.
Null check value returned by WorkerOrWorkletGlobalScope::script() since it can in theory be null
(it gets cleared in prepareForDestruction()).
- bindings/js/JSDOMConvertPromise.h:
(WebCore::Converter<IDLPromise<T>>::convert):
- bindings/js/JSDOMPromiseDeferred.cpp:
(WebCore::DeferredPromise::handleTerminationExceptionIfNeeded):
- bindings/js/JSEventListener.cpp:
(WebCore::JSEventListener::handleEvent):
- 9:29 PM Changeset in webkit [286348] by
-
- 1 edit6 adds in trunk/Websites/webkit.org
Add resources for an upcoming blog post
https://bugs.webkit.org/show_bug.cgi?id=233681
Unreviewed.
- blog-files/wide-gamut-canvas/pinwheels.html: Added.
- blog-files/wide-gamut-canvas/puzzle.html: Added.
- blog-files/wide-gamut-canvas/puzzle.jpg: Added.
- blog-files/wide-gamut-canvas/squares.html: Added.
- blog-files/wide-gamut-canvas/stripes.html: Added.
- 8:38 PM Changeset in webkit [286347] by
-
- 248 edits2 adds in trunk/Source
Move Subspaces from VM to Heap.
https://bugs.webkit.org/show_bug.cgi?id=233648
rdar://85875751
Reviewed by Saam Barati.
Source/JavaScriptCore:
Subspaces are Heap data structures to begin with, and this refactoring is needed
in preparation for the global GC.
- Embed HeapCellType and IsoHeapCellType instances in Heap directly instead of malloc'ing them separately and referencing them via unique_ptrs. These instances are always instantiated unconditionally anyway. This change eliminates the unneeded busy work to allocate them separately.
- Introduce a HeapSubspaceTypes.h that #include all the types that we have subspaces for. This makes it so that Heap.cpp's #include list is not flooded with these types with subspaces, and that it'll be easier to discern between these Subspace types from other data structures needed for implementing Heap.
- Add VM accessor methods for subspaces that forward to Heap. This will make it easier for us to redirect to a thread local allocator later for the global GC.
- Remove unneeded #includes in VM.h.
- Remove unused CodeBlockSet::iterateViaSubspaces().
- CMakeLists.txt:
- JavaScriptCore.xcodeproj/project.pbxproj:
- bytecode/AccessCase.cpp:
(JSC::AccessCase::generateImpl):
- bytecode/DFGExitProfile.h:
- bytecode/EvalCodeBlock.h:
- bytecode/ExecutableToCodeBlockEdge.cpp:
(JSC::ExecutableToCodeBlockEdge::visitChildrenImpl):
(JSC::ExecutableToCodeBlockEdge::finalizeUnconditionally):
(JSC::ExecutableToCodeBlockEdge::runConstraint):
- bytecode/ExecutableToCodeBlockEdge.h:
- bytecode/FunctionCodeBlock.h:
- bytecode/ModuleProgramCodeBlock.h:
- bytecode/ProgramCodeBlock.h:
- bytecode/Repatch.h:
- bytecode/UnlinkedFunctionExecutable.cpp:
(JSC::UnlinkedFunctionExecutable::unlinkedCodeBlockFor):
(JSC::UnlinkedFunctionExecutable::finalizeUnconditionally):
- bytecode/UnlinkedFunctionExecutable.h:
- dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::emitAllocateRawObject):
- ftl/FTLLowerDFGToB3.cpp:
(JSC::FTL::DFG::LowerDFGToB3::emitNewTypedArrayWithSize):
(JSC::FTL::DFG::LowerDFGToB3::compileCompareStrictEq):
- generator/DSL.rb:
- heap/CodeBlockSet.h:
- heap/CodeBlockSetInlines.h:
(JSC::CodeBlockSet::iterateViaSubspaces): Deleted.
- heap/Heap.cpp:
(JSC::Heap::Heap):
(JSC::Heap::finalizeUnconditionalFinalizers):
(JSC::Heap::deleteAllCodeBlocks):
(JSC::Heap::deleteAllUnlinkedCodeBlocks):
(JSC::Heap::deleteUnmarkedCompiledCode):
(JSC::Heap::sweepInFinalize):
(JSC::Heap::addCoreConstraints):
- heap/Heap.h:
(JSC::Heap::gigacageAuxiliarySpace):
(JSC::Heap::SpaceAndSet::SpaceAndSet):
(JSC::Heap::SpaceAndSet::setFor):
(JSC::Heap::forEachCodeBlockSpace):
(JSC::Heap::forEachScriptExecutableSpace):
- heap/HeapSubspaceTypes.h: Added.
- heap/IsoHeapCellType.h:
- heap/IsoInlinedHeapCellType.h:
- heap/IsoInlinedHeapCellTypeInlines.h: Added.
(JSC::IsoInlinedHeapCellType<CellType>::IsoInlinedHeapCellType):
(JSC::IsoInlinedHeapCellType<CellType>::DestroyFunc::operator const):
(JSC::IsoInlinedHeapCellType<CellType>::finishSweep const):
(JSC::IsoInlinedHeapCellType<CellType>::destroy const):
- heap/MarkedBlockInlines.h:
- inspector/JSInjectedScriptHostPrototype.h:
- inspector/JSJavaScriptCallFramePrototype.h:
- interpreter/CallFrame.h:
- jsc.cpp:
(JSCMemoryFootprint::subspaceFor):
(JSFileDescriptor::subspaceFor):
- runtime/AggregateErrorPrototype.h:
- runtime/ArrayIteratorPrototype.h:
- runtime/AsyncFromSyncIteratorPrototype.h:
- runtime/AsyncFunctionPrototype.h:
- runtime/AsyncGeneratorFunctionPrototype.h:
- runtime/AsyncGeneratorPrototype.h:
- runtime/AsyncIteratorPrototype.h:
- runtime/AtomicsObject.h:
- runtime/BigIntPrototype.h:
- runtime/BrandedStructure.h:
- runtime/ButterflyInlines.h:
(JSC::Butterfly::tryCreateUninitialized):
(JSC::Butterfly::createUninitialized):
(JSC::Butterfly::tryCreate):
(JSC::Butterfly::growArrayRight):
(JSC::Butterfly::reallocArrayRightIfPossible):
- runtime/CachedTypes.h:
- runtime/ClonedArguments.h:
- runtime/ConsoleObject.h:
- runtime/CustomGetterSetter.h:
(JSC::CustomGetterSetter::subspaceFor):
- runtime/DOMAttributeGetterSetter.h:
- runtime/DateInstance.h:
- runtime/DatePrototype.h:
- runtime/DirectArguments.h:
- runtime/ErrorPrototype.h:
- runtime/Exception.h:
- runtime/FinalizationRegistryPrototype.h:
- runtime/FunctionExecutable.h:
- runtime/GeneratorFunctionPrototype.h:
- runtime/GeneratorPrototype.h:
- runtime/GetterSetter.h:
- runtime/HashMapImpl.h:
(JSC::HashMapBuffer::create):
- runtime/InternalFunction.h:
(JSC::InternalFunction::subspaceFor):
- runtime/IntlCollatorPrototype.h:
- runtime/IntlDateTimeFormatPrototype.h:
- runtime/IntlDisplayNamesPrototype.h:
- runtime/IntlListFormatPrototype.h:
- runtime/IntlLocalePrototype.h:
- runtime/IntlNumberFormatPrototype.h:
- runtime/IntlObject.h:
- runtime/IntlPluralRulesPrototype.h:
- runtime/IntlRelativeTimeFormatPrototype.h:
- runtime/IntlSegmentIteratorPrototype.h:
- runtime/IntlSegmenterPrototype.h:
- runtime/IntlSegmentsPrototype.h:
- runtime/IteratorPrototype.h:
- runtime/JSArray.cpp:
(JSC::JSArray::tryCreateUninitializedRestricted):
- runtime/JSArray.h:
(JSC::JSArray::subspaceFor):
(JSC::JSArray::tryCreate):
- runtime/JSArrayBufferPrototype.h:
- runtime/JSArrayBufferView.cpp:
(JSC::JSArrayBufferView::ConstructionContext::ConstructionContext):
- runtime/JSBigInt.cpp:
(JSC::JSBigInt::createWithLength):
- runtime/JSBigInt.h:
- runtime/JSCallee.h:
(JSC::JSCallee::subspaceFor):
- runtime/JSDataViewPrototype.h:
- runtime/JSFunction.h:
(JSC::JSFunction::subspaceFor):
- runtime/JSGenericTypedArrayViewPrototype.h:
- runtime/JSGlobalLexicalEnvironment.h:
- runtime/JSImmutableButterfly.h:
(JSC::JSImmutableButterfly::subspaceFor):
- runtime/JSLexicalEnvironment.h:
(JSC::JSLexicalEnvironment::subspaceFor):
- runtime/JSModuleLoader.h:
- runtime/JSONObject.h:
- runtime/JSObjectInlines.h:
(JSC::JSFinalObject::subspaceFor):
- runtime/JSPromise.h:
(JSC::JSPromise::subspaceFor):
- runtime/JSPromisePrototype.h:
(JSC::JSPromisePrototype::subspaceFor):
- runtime/JSPropertyNameEnumerator.cpp:
(JSC::JSPropertyNameEnumerator::create):
- runtime/JSPropertyNameEnumerator.h:
- runtime/JSProxy.h:
(JSC::JSProxy::subspaceFor):
- runtime/JSString.h:
(JSC::JSString::subspaceFor):
- runtime/JSTypedArrayViewPrototype.h:
- runtime/MapIteratorPrototype.h:
- runtime/MapPrototype.h:
- runtime/MathObject.h:
- runtime/NativeErrorPrototype.h:
- runtime/NativeExecutable.h:
- runtime/NumberObject.h:
(JSC::NumberObject::subspaceFor):
- runtime/ObjectPrototype.h:
- runtime/ProgramExecutable.h:
- runtime/PropertyTable.h:
- runtime/ReflectObject.h:
- runtime/RegExp.h:
- runtime/RegExpObject.h:
- runtime/RegExpPrototype.h:
- runtime/RegExpStringIteratorPrototype.h:
- runtime/ScopedArguments.cpp:
(JSC::ScopedArguments::createUninitialized):
- runtime/ScopedArguments.h:
- runtime/SetIteratorPrototype.h:
- runtime/SetPrototype.h:
- runtime/ShadowRealmPrototype.h:
- runtime/SparseArrayValueMap.h:
- runtime/StringIteratorPrototype.h:
- runtime/StringObject.h:
(JSC::StringObject::subspaceFor):
- runtime/Structure.h:
(JSC::Structure::subspaceFor):
- runtime/StructureChain.cpp:
(JSC::StructureChain::create):
- runtime/StructureChain.h:
- runtime/StructureRareData.h:
- runtime/SymbolPrototype.h:
- runtime/SymbolTable.h:
- runtime/TemporalCalendarPrototype.h:
- runtime/TemporalDurationPrototype.h:
- runtime/TemporalInstantPrototype.h:
- runtime/TemporalNow.h:
- runtime/TemporalObject.h:
- runtime/TemporalPlainTimePrototype.h:
- runtime/TemporalTimeZonePrototype.h:
- runtime/ThrowScope.cpp:
- runtime/VM.cpp:
(JSC::VM::VM):
- runtime/VM.h:
(JSC::VM::cellHeapCellType):
(JSC::VM::destructibleObjectHeapCellType):
(JSC::VM::primitiveGigacageAuxiliarySpace):
(JSC::VM::jsValueGigacageAuxiliarySpace):
(JSC::VM::immutableButterflyJSValueGigacageAuxiliarySpace):
(JSC::VM::gigacageAuxiliarySpace):
(JSC::VM::cellSpace):
(JSC::VM::variableSizedCellSpace):
(JSC::VM::destructibleObjectSpace):
(JSC::VM::arraySpace):
(JSC::VM::bigIntSpace):
(JSC::VM::calleeSpace):
(JSC::VM::clonedArgumentsSpace):
(JSC::VM::customGetterSetterSpace):
(JSC::VM::dateInstanceSpace):
(JSC::VM::domAttributeGetterSetterSpace):
(JSC::VM::exceptionSpace):
(JSC::VM::executableToCodeBlockEdgeSpace):
(JSC::VM::functionSpace):
(JSC::VM::getterSetterSpace):
(JSC::VM::globalLexicalEnvironmentSpace):
(JSC::VM::internalFunctionSpace):
(JSC::VM::jsProxySpace):
(JSC::VM::nativeExecutableSpace):
(JSC::VM::numberObjectSpace):
(JSC::VM::plainObjectSpace):
(JSC::VM::promiseSpace):
(JSC::VM::propertyNameEnumeratorSpace):
(JSC::VM::propertyTableSpace):
(JSC::VM::regExpSpace):
(JSC::VM::regExpObjectSpace):
(JSC::VM::ropeStringSpace):
(JSC::VM::scopedArgumentsSpace):
(JSC::VM::sparseArrayValueMapSpace):
(JSC::VM::stringSpace):
(JSC::VM::stringObjectSpace):
(JSC::VM::structureChainSpace):
(JSC::VM::structureRareDataSpace):
(JSC::VM::structureSpace):
(JSC::VM::brandedStructureSpace):
(JSC::VM::symbolTableSpace):
(JSC::VM::executableToCodeBlockEdgesWithConstraints):
(JSC::VM::executableToCodeBlockEdgesWithFinalizers):
(JSC::VM::codeBlockSpace):
(JSC::VM::functionExecutableSpace):
(JSC::VM::programExecutableSpace):
(JSC::VM::unlinkedFunctionExecutableSpace):
(JSC::VM::setFuzzerAgent): Deleted.
(JSC::VM::SpaceAndSet::SpaceAndSet): Deleted.
(JSC::VM::SpaceAndSet::setFor): Deleted.
(JSC::VM::forEachCodeBlockSpace): Deleted.
(JSC::VM::forEachScriptExecutableSpace): Deleted.
- runtime/VMInlines.h:
(JSC::VM::setFuzzerAgent):
- runtime/WeakMapPrototype.h:
- runtime/WeakObjectRefPrototype.h:
- runtime/WeakSetPrototype.h:
- tools/JSDollarVM.cpp:
- tools/JSDollarVM.h:
- wasm/js/JSWebAssembly.h:
- wasm/js/WebAssemblyCompileErrorPrototype.h:
- wasm/js/WebAssemblyExceptionPrototype.h:
- wasm/js/WebAssemblyGlobalPrototype.h:
- wasm/js/WebAssemblyInstancePrototype.h:
- wasm/js/WebAssemblyLinkErrorPrototype.h:
- wasm/js/WebAssemblyMemoryPrototype.h:
- wasm/js/WebAssemblyModulePrototype.h:
- wasm/js/WebAssemblyRuntimeErrorPrototype.h:
- wasm/js/WebAssemblyTablePrototype.h:
- wasm/js/WebAssemblyTagPrototype.h:
Source/WebCore:
- Embed IsoHeapCellType instances in JSVMClientData directly instead of malloc'ing them separately and referencing them via unique_ptrs. These instances are always instantiated unconditionally anyway. This change eliminates the unneeded busy work to allocate them separately.
- Add missing initialization of JSVMClientData::m_heapCellTypeForJSSharedWorkerGlobalScope. This hasn't been an issue so far because we don't currently allow shared workers.
- Rebase bindings test results.
- bindings/js/JSDOMAsyncIterator.h:
- bindings/js/JSDOMIterator.h:
- bindings/js/JSFileSystemDirectoryHandleIterator.cpp:
(WebCore::JSFileSystemDirectoryHandleIterator::subspaceForImpl):
- bindings/js/WebCoreJSClientData.cpp:
(WebCore::JSVMClientData::JSVMClientData):
- bindings/js/WebCoreJSClientData.h:
- bindings/scripts/CodeGeneratorJS.pm:
(GenerateImplementation):
(GenerateIterableDefinition):
(GeneratePrototypeDeclaration):
- bindings/scripts/test/JS/JSDOMWindow.cpp:
(WebCore::JSDOMWindow::subspaceForImpl):
- bindings/scripts/test/JS/JSDOMWindow.h:
- bindings/scripts/test/JS/JSDedicatedWorkerGlobalScope.cpp:
(WebCore::JSDedicatedWorkerGlobalScope::subspaceForImpl):
- bindings/scripts/test/JS/JSDedicatedWorkerGlobalScope.h:
- bindings/scripts/test/JS/JSExposedStar.cpp:
(WebCore::JSExposedStarDOMConstructor::prototypeForStructure):
(WebCore::JSExposedStar::subspaceForImpl):
- bindings/scripts/test/JS/JSExposedToWorkerAndWindow.cpp:
(WebCore::JSExposedToWorkerAndWindow::subspaceForImpl):
- bindings/scripts/test/JS/JSPaintWorkletGlobalScope.cpp:
(WebCore::JSPaintWorkletGlobalScope::subspaceForImpl):
- bindings/scripts/test/JS/JSPaintWorkletGlobalScope.h:
- bindings/scripts/test/JS/JSServiceWorkerGlobalScope.cpp:
(WebCore::JSServiceWorkerGlobalScope::subspaceForImpl):
- bindings/scripts/test/JS/JSServiceWorkerGlobalScope.h:
- bindings/scripts/test/JS/JSSharedWorkerGlobalScope.cpp:
(WebCore::JSSharedWorkerGlobalScope::subspaceForImpl):
- bindings/scripts/test/JS/JSSharedWorkerGlobalScope.h:
- bindings/scripts/test/JS/JSTestCEReactions.cpp:
(WebCore::JSTestCEReactionsDOMConstructor::prototypeForStructure):
(WebCore::JSTestCEReactions::subspaceForImpl):
- bindings/scripts/test/JS/JSTestCEReactionsStringifier.cpp:
(WebCore::JSTestCEReactionsStringifierDOMConstructor::prototypeForStructure):
(WebCore::JSTestCEReactionsStringifier::subspaceForImpl):
- bindings/scripts/test/JS/JSTestCallTracer.cpp:
(WebCore::JSTestCallTracerDOMConstructor::prototypeForStructure):
(WebCore::JSTestCallTracer::subspaceForImpl):
- bindings/scripts/test/JS/JSTestClassWithJSBuiltinConstructor.cpp:
(WebCore::JSTestClassWithJSBuiltinConstructorDOMConstructor::prototypeForStructure):
(WebCore::JSTestClassWithJSBuiltinConstructor::subspaceForImpl):
- bindings/scripts/test/JS/JSTestConditionalIncludes.cpp:
(WebCore::JSTestConditionalIncludesDOMConstructor::prototypeForStructure):
(WebCore::JSTestConditionalIncludes::subspaceForImpl):
- bindings/scripts/test/JS/JSTestConditionallyReadWrite.cpp:
(WebCore::JSTestConditionallyReadWriteDOMConstructor::prototypeForStructure):
(WebCore::JSTestConditionallyReadWrite::subspaceForImpl):
- bindings/scripts/test/JS/JSTestDOMJIT.cpp:
(WebCore::JSTestDOMJITDOMConstructor::prototypeForStructure):
(WebCore::JSTestDOMJIT::subspaceForImpl):
- bindings/scripts/test/JS/JSTestDefaultToJSON.cpp:
(WebCore::JSTestDefaultToJSONDOMConstructor::prototypeForStructure):
(WebCore::JSTestDefaultToJSON::subspaceForImpl):
- bindings/scripts/test/JS/JSTestDefaultToJSONFilteredByExposed.cpp:
(WebCore::JSTestDefaultToJSONFilteredByExposedDOMConstructor::prototypeForStructure):
(WebCore::JSTestDefaultToJSONFilteredByExposed::subspaceForImpl):
- bindings/scripts/test/JS/JSTestDefaultToJSONIndirectInheritance.cpp:
(WebCore::JSTestDefaultToJSONIndirectInheritanceDOMConstructor::prototypeForStructure):
(WebCore::JSTestDefaultToJSONIndirectInheritance::subspaceForImpl):
- bindings/scripts/test/JS/JSTestDefaultToJSONInherit.cpp:
(WebCore::JSTestDefaultToJSONInheritDOMConstructor::prototypeForStructure):
(WebCore::JSTestDefaultToJSONInherit::subspaceForImpl):
- bindings/scripts/test/JS/JSTestDefaultToJSONInheritFinal.cpp:
(WebCore::JSTestDefaultToJSONInheritFinalDOMConstructor::prototypeForStructure):
(WebCore::JSTestDefaultToJSONInheritFinal::subspaceForImpl):
- bindings/scripts/test/JS/JSTestDelegateToSharedSyntheticAttribute.cpp:
(WebCore::JSTestDelegateToSharedSyntheticAttributeDOMConstructor::prototypeForStructure):
(WebCore::JSTestDelegateToSharedSyntheticAttribute::subspaceForImpl):
- bindings/scripts/test/JS/JSTestDomainSecurity.cpp:
(WebCore::JSTestDomainSecurityDOMConstructor::prototypeForStructure):
(WebCore::JSTestDomainSecurity::subspaceForImpl):
- bindings/scripts/test/JS/JSTestEnabledBySetting.cpp:
(WebCore::JSTestEnabledBySettingDOMConstructor::prototypeForStructure):
(WebCore::JSTestEnabledBySetting::subspaceForImpl):
- bindings/scripts/test/JS/JSTestEnabledForContext.cpp:
(WebCore::JSTestEnabledForContextDOMConstructor::prototypeForStructure):
(WebCore::JSTestEnabledForContext::subspaceForImpl):
- bindings/scripts/test/JS/JSTestEventConstructor.cpp:
(WebCore::JSTestEventConstructor::subspaceForImpl):
- bindings/scripts/test/JS/JSTestEventTarget.cpp:
(WebCore::JSTestEventTargetDOMConstructor::prototypeForStructure):
(WebCore::JSTestEventTarget::subspaceForImpl):
- bindings/scripts/test/JS/JSTestException.cpp:
(WebCore::JSTestExceptionDOMConstructor::prototypeForStructure):
(WebCore::JSTestException::subspaceForImpl):
- bindings/scripts/test/JS/JSTestGenerateAddOpaqueRoot.cpp:
(WebCore::JSTestGenerateAddOpaqueRootDOMConstructor::prototypeForStructure):
(WebCore::JSTestGenerateAddOpaqueRoot::subspaceForImpl):
- bindings/scripts/test/JS/JSTestGenerateIsReachable.cpp:
(WebCore::JSTestGenerateIsReachableDOMConstructor::prototypeForStructure):
(WebCore::JSTestGenerateIsReachable::subspaceForImpl):
- bindings/scripts/test/JS/JSTestGlobalObject.cpp:
(WebCore::JSTestGlobalObject::subspaceForImpl):
- bindings/scripts/test/JS/JSTestGlobalObject.h:
- bindings/scripts/test/JS/JSTestIndexedSetterNoIdentifier.cpp:
(WebCore::JSTestIndexedSetterNoIdentifierDOMConstructor::prototypeForStructure):
(WebCore::JSTestIndexedSetterNoIdentifier::subspaceForImpl):
- bindings/scripts/test/JS/JSTestIndexedSetterThrowingException.cpp:
(WebCore::JSTestIndexedSetterThrowingExceptionDOMConstructor::prototypeForStructure):
(WebCore::JSTestIndexedSetterThrowingException::subspaceForImpl):
- bindings/scripts/test/JS/JSTestIndexedSetterWithIdentifier.cpp:
(WebCore::JSTestIndexedSetterWithIdentifierDOMConstructor::prototypeForStructure):
(WebCore::JSTestIndexedSetterWithIdentifier::subspaceForImpl):
- bindings/scripts/test/JS/JSTestInterface.cpp:
(WebCore::JSTestInterfaceDOMConstructor::construct):
(WebCore::jsTestInterfacePrototypeFunction_entriesCaller):
(WebCore::JSTestInterface::subspaceForImpl):
- bindings/scripts/test/JS/JSTestInterfaceLeadingUnderscore.cpp:
(WebCore::JSTestInterfaceLeadingUnderscoreDOMConstructor::prototypeForStructure):
(WebCore::JSTestInterfaceLeadingUnderscore::subspaceForImpl):
- bindings/scripts/test/JS/JSTestIterable.cpp:
(WebCore::JSTestIterableDOMConstructor::prototypeForStructure):
(WebCore::jsTestIterablePrototypeFunction_entriesCaller):
(WebCore::JSTestIterable::subspaceForImpl):
- bindings/scripts/test/JS/JSTestJSBuiltinConstructor.cpp:
(WebCore::JSTestJSBuiltinConstructorDOMConstructor::prototypeForStructure):
(WebCore::JSTestJSBuiltinConstructor::subspaceForImpl):
- bindings/scripts/test/JS/JSTestLegacyFactoryFunction.cpp:
(WebCore::JSTestLegacyFactoryFunctionDOMConstructor::prototypeForStructure):
(WebCore::JSTestLegacyFactoryFunction::subspaceForImpl):
- bindings/scripts/test/JS/JSTestLegacyNoInterfaceObject.cpp:
(WebCore::JSTestLegacyNoInterfaceObjectPrototype::finishCreation):
(WebCore::JSTestLegacyNoInterfaceObject::subspaceForImpl):
- bindings/scripts/test/JS/JSTestLegacyOverrideBuiltIns.cpp:
(WebCore::JSTestLegacyOverrideBuiltInsDOMConstructor::prototypeForStructure):
(WebCore::JSTestLegacyOverrideBuiltIns::subspaceForImpl):
- bindings/scripts/test/JS/JSTestMapLike.cpp:
(WebCore::JSTestMapLikeDOMConstructor::prototypeForStructure):
(WebCore::JSTestMapLike::subspaceForImpl):
- bindings/scripts/test/JS/JSTestMapLikeWithOverriddenOperations.cpp:
(WebCore::JSTestMapLikeWithOverriddenOperationsDOMConstructor::prototypeForStructure):
(WebCore::JSTestMapLikeWithOverriddenOperations::subspaceForImpl):
- bindings/scripts/test/JS/JSTestNamedAndIndexedSetterNoIdentifier.cpp:
(WebCore::JSTestNamedAndIndexedSetterNoIdentifierDOMConstructor::prototypeForStructure):
(WebCore::JSTestNamedAndIndexedSetterNoIdentifier::subspaceForImpl):
- bindings/scripts/test/JS/JSTestNamedAndIndexedSetterThrowingException.cpp:
(WebCore::JSTestNamedAndIndexedSetterThrowingExceptionDOMConstructor::prototypeForStructure):
(WebCore::JSTestNamedAndIndexedSetterThrowingException::subspaceForImpl):
- bindings/scripts/test/JS/JSTestNamedAndIndexedSetterWithIdentifier.cpp:
(WebCore::JSTestNamedAndIndexedSetterWithIdentifierDOMConstructor::prototypeForStructure):
(WebCore::JSTestNamedAndIndexedSetterWithIdentifier::subspaceForImpl):
- bindings/scripts/test/JS/JSTestNamedDeleterNoIdentifier.cpp:
(WebCore::JSTestNamedDeleterNoIdentifierDOMConstructor::prototypeForStructure):
(WebCore::JSTestNamedDeleterNoIdentifier::subspaceForImpl):
- bindings/scripts/test/JS/JSTestNamedDeleterThrowingException.cpp:
(WebCore::JSTestNamedDeleterThrowingExceptionDOMConstructor::prototypeForStructure):
(WebCore::JSTestNamedDeleterThrowingException::subspaceForImpl):
- bindings/scripts/test/JS/JSTestNamedDeleterWithIdentifier.cpp:
(WebCore::JSTestNamedDeleterWithIdentifierDOMConstructor::prototypeForStructure):
(WebCore::JSTestNamedDeleterWithIdentifier::subspaceForImpl):
- bindings/scripts/test/JS/JSTestNamedDeleterWithIndexedGetter.cpp:
(WebCore::JSTestNamedDeleterWithIndexedGetterDOMConstructor::prototypeForStructure):
(WebCore::JSTestNamedDeleterWithIndexedGetter::subspaceForImpl):
- bindings/scripts/test/JS/JSTestNamedGetterCallWith.cpp:
(WebCore::JSTestNamedGetterCallWithDOMConstructor::prototypeForStructure):
(WebCore::JSTestNamedGetterCallWith::subspaceForImpl):
- bindings/scripts/test/JS/JSTestNamedGetterNoIdentifier.cpp:
(WebCore::JSTestNamedGetterNoIdentifierDOMConstructor::prototypeForStructure):
(WebCore::JSTestNamedGetterNoIdentifier::subspaceForImpl):
- bindings/scripts/test/JS/JSTestNamedGetterWithIdentifier.cpp:
(WebCore::JSTestNamedGetterWithIdentifierDOMConstructor::prototypeForStructure):
(WebCore::JSTestNamedGetterWithIdentifier::subspaceForImpl):
- bindings/scripts/test/JS/JSTestNamedSetterNoIdentifier.cpp:
(WebCore::JSTestNamedSetterNoIdentifierDOMConstructor::prototypeForStructure):
(WebCore::JSTestNamedSetterNoIdentifier::subspaceForImpl):
- bindings/scripts/test/JS/JSTestNamedSetterThrowingException.cpp:
(WebCore::JSTestNamedSetterThrowingExceptionDOMConstructor::prototypeForStructure):
(WebCore::JSTestNamedSetterThrowingException::subspaceForImpl):
- bindings/scripts/test/JS/JSTestNamedSetterWithIdentifier.cpp:
(WebCore::JSTestNamedSetterWithIdentifierDOMConstructor::prototypeForStructure):
(WebCore::JSTestNamedSetterWithIdentifier::subspaceForImpl):
- bindings/scripts/test/JS/JSTestNamedSetterWithIndexedGetter.cpp:
(WebCore::JSTestNamedSetterWithIndexedGetterDOMConstructor::prototypeForStructure):
(WebCore::JSTestNamedSetterWithIndexedGetter::subspaceForImpl):
- bindings/scripts/test/JS/JSTestNamedSetterWithIndexedGetterAndSetter.cpp:
(WebCore::JSTestNamedSetterWithIndexedGetterAndSetterDOMConstructor::prototypeForStructure):
(WebCore::JSTestNamedSetterWithIndexedGetterAndSetter::subspaceForImpl):
- bindings/scripts/test/JS/JSTestNamedSetterWithLegacyOverrideBuiltIns.cpp:
(WebCore::JSTestNamedSetterWithLegacyOverrideBuiltInsDOMConstructor::prototypeForStructure):
(WebCore::JSTestNamedSetterWithLegacyOverrideBuiltIns::subspaceForImpl):
- bindings/scripts/test/JS/JSTestNamedSetterWithLegacyUnforgeableProperties.cpp:
(WebCore::JSTestNamedSetterWithLegacyUnforgeablePropertiesDOMConstructor::prototypeForStructure):
(WebCore::JSTestNamedSetterWithLegacyUnforgeableProperties::subspaceForImpl):
- bindings/scripts/test/JS/JSTestNamedSetterWithLegacyUnforgeablePropertiesAndLegacyOverrideBuiltIns.cpp:
(WebCore::JSTestNamedSetterWithLegacyUnforgeablePropertiesAndLegacyOverrideBuiltInsDOMConstructor::prototypeForStructure):
(WebCore::JSTestNamedSetterWithLegacyUnforgeablePropertiesAndLegacyOverrideBuiltIns::subspaceForImpl):
- bindings/scripts/test/JS/JSTestNamespaceObject.cpp:
(WebCore::JSTestNamespaceObject::subspaceForImpl):
- bindings/scripts/test/JS/JSTestNode.cpp:
(WebCore::jsTestNodePrototypeFunction_entriesCaller):
(WebCore::JSTestNode::subspaceForImpl):
- bindings/scripts/test/JS/JSTestObj.cpp:
(WebCore::JSTestObjDOMConstructor::construct):
(WebCore::JSTestObj::subspaceForImpl):
- bindings/scripts/test/JS/JSTestOperationConditional.cpp:
(WebCore::JSTestOperationConditionalDOMConstructor::prototypeForStructure):
(WebCore::JSTestOperationConditional::subspaceForImpl):
- bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp:
(WebCore::JSTestOverloadedConstructors::subspaceForImpl):
- bindings/scripts/test/JS/JSTestOverloadedConstructorsWithSequence.cpp:
(WebCore::JSTestOverloadedConstructorsWithSequence::subspaceForImpl):
- bindings/scripts/test/JS/JSTestPluginInterface.cpp:
(WebCore::JSTestPluginInterfaceDOMConstructor::prototypeForStructure):
(WebCore::JSTestPluginInterface::subspaceForImpl):
- bindings/scripts/test/JS/JSTestPromiseRejectionEvent.cpp:
(WebCore::JSTestPromiseRejectionEvent::subspaceForImpl):
- bindings/scripts/test/JS/JSTestReadOnlyMapLike.cpp:
(WebCore::JSTestReadOnlyMapLikeDOMConstructor::prototypeForStructure):
(WebCore::JSTestReadOnlyMapLike::subspaceForImpl):
- bindings/scripts/test/JS/JSTestReadOnlySetLike.cpp:
(WebCore::JSTestReadOnlySetLikeDOMConstructor::prototypeForStructure):
(WebCore::JSTestReadOnlySetLike::subspaceForImpl):
- bindings/scripts/test/JS/JSTestReportExtraMemoryCost.cpp:
(WebCore::JSTestReportExtraMemoryCostDOMConstructor::prototypeForStructure):
(WebCore::JSTestReportExtraMemoryCost::subspaceForImpl):
- bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
(WebCore::JSTestSerializedScriptValueInterfaceDOMConstructor::prototypeForStructure):
(WebCore::JSTestSerializedScriptValueInterface::subspaceForImpl):
- bindings/scripts/test/JS/JSTestSetLike.cpp:
(WebCore::JSTestSetLikeDOMConstructor::prototypeForStructure):
(WebCore::JSTestSetLike::subspaceForImpl):
- bindings/scripts/test/JS/JSTestSetLikeWithOverriddenOperations.cpp:
(WebCore::JSTestSetLikeWithOverriddenOperationsDOMConstructor::prototypeForStructure):
(WebCore::JSTestSetLikeWithOverriddenOperations::subspaceForImpl):
- bindings/scripts/test/JS/JSTestStringifier.cpp:
(WebCore::JSTestStringifierDOMConstructor::prototypeForStructure):
(WebCore::JSTestStringifier::subspaceForImpl):
- bindings/scripts/test/JS/JSTestStringifierAnonymousOperation.cpp:
(WebCore::JSTestStringifierAnonymousOperationDOMConstructor::prototypeForStructure):
(WebCore::JSTestStringifierAnonymousOperation::subspaceForImpl):
- bindings/scripts/test/JS/JSTestStringifierNamedOperation.cpp:
(WebCore::JSTestStringifierNamedOperationDOMConstructor::prototypeForStructure):
(WebCore::JSTestStringifierNamedOperation::subspaceForImpl):
- bindings/scripts/test/JS/JSTestStringifierOperationImplementedAs.cpp:
(WebCore::JSTestStringifierOperationImplementedAsDOMConstructor::prototypeForStructure):
(WebCore::JSTestStringifierOperationImplementedAs::subspaceForImpl):
- bindings/scripts/test/JS/JSTestStringifierOperationNamedToString.cpp:
(WebCore::JSTestStringifierOperationNamedToStringDOMConstructor::prototypeForStructure):
(WebCore::JSTestStringifierOperationNamedToString::subspaceForImpl):
- bindings/scripts/test/JS/JSTestStringifierReadOnlyAttribute.cpp:
(WebCore::JSTestStringifierReadOnlyAttributeDOMConstructor::prototypeForStructure):
(WebCore::JSTestStringifierReadOnlyAttribute::subspaceForImpl):
- bindings/scripts/test/JS/JSTestStringifierReadWriteAttribute.cpp:
(WebCore::JSTestStringifierReadWriteAttributeDOMConstructor::prototypeForStructure):
(WebCore::JSTestStringifierReadWriteAttribute::subspaceForImpl):
- bindings/scripts/test/JS/JSTestTypedefs.cpp:
(WebCore::JSTestTypedefsDOMConstructor::construct):
(WebCore::JSTestTypedefs::subspaceForImpl):
- bindings/scripts/test/JS/JSWorkerGlobalScope.cpp:
(WebCore::JSWorkerGlobalScope::subspaceForImpl):
- bindings/scripts/test/JS/JSWorkerGlobalScope.h:
- bindings/scripts/test/JS/JSWorkletGlobalScope.cpp:
(WebCore::JSWorkletGlobalScope::subspaceForImpl):
- bindings/scripts/test/JS/JSWorkletGlobalScope.h:
- bridge/objc/objc_runtime.mm:
(JSC::Bindings::ObjcFallbackObjectImp::subspaceForImpl):
- workers/WorkerOrWorkletScriptController.h:
- 6:56 PM Changeset in webkit [286346] by
-
- 16 edits5 adds in trunk/Source
Add a momentum event synthesizer
https://bugs.webkit.org/show_bug.cgi?id=233653
<rdar://problem/85571258>
Reviewed by Simon Fraser.
Source/WebCore/PAL:
- pal/spi/mac/IOKitSPIMac.h:
Add some SPI.
Source/WebKit:
- Platform/Logging.h:
Add ScrollAnimations log channel to WebKit (it already exists in WebCore).
- Shared/ScrollingAccelerationCurve.cpp: Added.
(WebKit::ScrollingAccelerationCurve::ScrollingAccelerationCurve):
(WebKit::ScrollingAccelerationCurve::interpolate):
(WebKit::ScrollingAccelerationCurve::computeIntermediateValuesIfNeeded):
(WebKit::ScrollingAccelerationCurve::evaluateQuartic):
(WebKit::ScrollingAccelerationCurve::accelerationFactor):
(WebKit::ScrollingAccelerationCurve::encode const):
(WebKit::ScrollingAccelerationCurve::decode):
(WebKit::operator<<):
(WebKit::ScrollingAccelerationCurve::fromNativeWheelEvent):
- Shared/ScrollingAccelerationCurve.h: Added.
(WebKit::ScrollingAccelerationCurve::operator== const):
(WebKit::ScrollingAccelerationCurve::operator!= const):
Add a class that represents a quartic scrolling acceleration curve with
a trailing linear tangent region, and allows interpolation between curves
and evaluation of the curve at a point.
- Shared/mac/ScrollingAccelerationCurveMac.mm: Added.
(WebKit::fromFixedPoint):
(WebKit::readFixedPointParameter):
(WebKit::fromIOHIDCurve):
(WebKit::fromIOHIDCurveArrayWithAcceleration):
(WebKit::ScrollingAccelerationCurve::fromNativeWheelEvent):
Given a NativeWebWheelEvent, extract its underlying platform event
and fetch the ScrollingAccelerationCurve for the originating device.
- Sources.txt:
- SourcesCocoa.txt:
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::handleWheelEvent):
Fetch the current ScrollingAccelerationCurve on each momentum begin event,
if the feature is enabled.
(WebKit::WebPageProxy::sendWheelEvent):
Send the ScrollingAccelerationCurve to EventDispatcher just before
we send the momentum begin event along, if it has changed.
(WebKit::WebPageProxy::windowScreenDidChange):
Keep EventDispatcher apprised of changes to the current screen of the page.
(WebKit::WebPageProxy::resetState):
- UIProcess/WebPageProxy.h:
- WebKit.xcodeproj/project.pbxproj:
- WebProcess/WebPage/EventDispatcher.cpp:
(WebKit::EventDispatcher::EventDispatcher):
(WebKit::EventDispatcher::internalWheelEvent):
Factor most of wheelEvent out into internalWheelEvent, so that
MomentumEventDispatcher can call internalWheelEvent(), skipping the code
in wheelEvent() that forwards the event... to MomentumEventDispatcher.
Also, keep track of where the event came from (UI process or MomentumEventDispatcher)
and avoid sending didReceiveEvent replies to the UI process for synthetic
events that it doesn't know about.
(WebKit::EventDispatcher::wheelEvent):
Forward wheel events to MomentumEventDispatcher.
(WebKit::EventDispatcher::setScrollingAccelerationCurve):
Forward scrolling curve changes to MomentumEventDispatcher.
(WebKit::EventDispatcher::displayWasRefreshed):
Forward display refresh callbacks to MomentumEventDispatcher.
(WebKit::EventDispatcher::windowScreenDidChange):
Forward page screen changes to MomentumEventDispatcher.
- WebProcess/WebPage/EventDispatcher.h:
- WebProcess/WebPage/EventDispatcher.messages.in:
- WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::wheelEvent):
(WebKit::WebPage::dispatchWheelEventWithoutScrolling):
- WebProcess/WebPage/WebPage.h:
Don't send didReceiveEvent for synthetic events from the main thread either.
- WebProcess/WebPage/MomentumEventDispatcher.cpp: Added.
(WebKit::MomentumEventDispatcher::MomentumEventDispatcher):
(WebKit::MomentumEventDispatcher::~MomentumEventDispatcher):
(WebKit::MomentumEventDispatcher::eventShouldStartSyntheticMomentumPhase const):
If we have everything we need (a scrolling curve - which also implies
that the setting is enabled - and raw platform deltas), and the event
is a momentum begin event, we can use it to start a synthetic momentum phase.
(WebKit::MomentumEventDispatcher::handleWheelEvent):
Start or stop the momentum phase as appropriate.
Record any incoming fingers-down phase events in a rolling event history structure.
Block platform-event-driven events from being further handled by WebKit
if we are inside a synthetic momentum phase, since we'll be replacing them.
(WebKit::appKitScrollMultiplierForEvent):
Determine the AppKit scroll muliplier ("accelerated" vs "unaccelerated"
deltas in NSEvent parlance) from the event via division.
(WebKit::MomentumEventDispatcher::dispatchSyntheticMomentumEvent):
Dispatch a synthetic event with the given momentum phase and delta.
We borrow some properties from the event that initiated the momentum
phase (e.g. the position), and some from whatever event we've most
recently seen (even if we told the rest of WebKit to ignore it), so
that we get the most up-to-date state for e.g. the keyboard modifiers.
(WebKit::MomentumEventDispatcher::didStartMomentumPhase):
Record relevant information about the start event, generate the
momentum curve, and start a full-rate display link. Also, send a momentum
begin event, since we blocked the real one.
(WebKit::MomentumEventDispatcher::didEndMomentumPhase):
Send a momentum ended event, shut down the display link, and reset all
per-gesture state.
(WebKit::MomentumEventDispatcher::setScrollingAccelerationCurve):
Store ScrollingAccelerationCurves on a per-page basis.
(WebKit::MomentumEventDispatcher::displayID const):
Look up the displayID for the current gesture's page.
(WebKit::MomentumEventDispatcher::startDisplayLink):
(WebKit::MomentumEventDispatcher::stopDisplayLink):
Start and stop a display link, which will - in a roundabout manner -
eventually call back into displayWasRefreshed.
(WebKit::MomentumEventDispatcher::windowScreenDidChange):
Store DisplayIDs on a per-page basis.
(WebKit::MomentumEventDispatcher::displayWasRefreshed):
When the display link calls us back, emit a single momentum changed
event of sufficient delta to move us to the desired offset along the curve.
(WebKit::MomentumEventDispatcher::didScrollWithInterval):
(WebKit::MomentumEventDispatcher::didScroll):
Record incoming scrolling events into a rolling history deque.
(WebKit::MomentumEventDispatcher::buildOffsetTableWithInitialDelta):
Compute the offsets for the entire "ideal curve" table (at 60Hz) by
running the animation and accumulating the deltas.
(WebKit::interpolate):
(WebKit::MomentumEventDispatcher::offsetAtTime):
Interpolate along the "ideal curve" to determine the intended offset
at a given time.
(WebKit::momentumDecayRate):
(WebKit::MomentumEventDispatcher::computeNextDelta):
Compute the next delta given a delta (and the event history) by applying
a bit of exponential decay and then passing it through the
ScrollingAccelerationCurve. We return both the unaccelerated
and accelerated deltas, because the input to the next iteration of
computeNextDelta is the unaccelerated delta, but the delta applied
to the actual scroll position is the accelerated delta.
- WebProcess/WebPage/MomentumEventDispatcher.h: Added.
Source/WTF:
- wtf/PlatformEnable.h:
Add an ENABLE().
- 6:32 PM Changeset in webkit [286345] by
-
- 90 edits3 copies2 adds2 deletes in trunk/Source
Structures should be allocated out of an aligned pool of memory so StructureID->Structure* is fast.
https://bugs.webkit.org/show_bug.cgi?id=233379
Reviewed by Yusuke Suzuki.
Source/JavaScriptCore:
This patch changes the 64-bit pointer variant of StructureID to
just be the bottom bits of a reserved address space for
structures. With this system the decoding of a StructureID is just
adding the bits to the start of the structure address space (saved
in JSCConfig). We also take care to ignore any high bits of a
StructureID outside the reserved address range. This prevents a
data corruption from causing us to read past the structure space,
much like the gigacage.
Now that StructureIDs can be directly determined from the
Structure* (and visa versa) we no longer need StructureIDTable,
which has been removed. Also, as Structures are still IsoHeaped
but not allocated by fastMalloc, there's a new
AlignedMemoryAllocator subclass that gets MarkedBlocks out of a
simple static allocator.
- CMakeLists.txt:
- JavaScriptCore.xcodeproj/project.pbxproj:
- Sources.txt:
- bytecode/AccessCase.cpp:
(JSC::AccessCase::forEachDependentCell const):
(JSC::AccessCase::propagateTransitions const):
(JSC::AccessCase::generateWithGuard):
- bytecode/ArrayProfile.cpp:
(JSC::ArrayProfile::computeUpdatedPrediction):
- bytecode/ArrayProfile.h:
- bytecode/CodeBlock.cpp:
(JSC::CodeBlock::propagateTransitions):
(JSC::CodeBlock::determineLiveness):
(JSC::CodeBlock::finalizeLLIntInlineCaches):
(JSC::CodeBlock::stronglyVisitWeakReferences):
- bytecode/GetByIdMetadata.h:
(JSC::GetByIdModeMetadata::GetByIdModeMetadata):
(JSC::GetByIdModeMetadata::clearToDefaultModeWithoutCache):
- bytecode/GetByStatus.cpp:
(JSC::GetByStatus::computeFromLLInt):
- bytecode/InlineAccess.cpp:
(JSC::InlineAccess::rewireStubAsJumpInAccess):
(JSC::InlineAccess::resetStubAsJumpInAccess):
- bytecode/PolyProtoAccessChain.cpp:
(JSC::PolyProtoAccessChain::needImpurePropertyWatchpoint const):
- bytecode/PolyProtoAccessChain.h:
- bytecode/PolymorphicAccess.cpp:
(JSC::PolymorphicAccess::visitWeak const):
- bytecode/PutByIdFlags.h:
- bytecode/PutByStatus.cpp:
(JSC::PutByStatus::computeFromLLInt):
- bytecode/SpeculatedType.cpp:
(JSC::speculationFromCell):
- bytecode/StructureStubInfo.cpp:
(JSC::StructureStubInfo::addAccessCase):
(JSC::StructureStubInfo::reset):
- bytecode/StructureStubInfo.h:
(JSC::StructureStubInfo::inlineAccessBaseStructure):
- dfg/DFGAbstractInterpreterInlines.h:
(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):
- dfg/DFGByteCodeParser.cpp:
(JSC::DFG::ByteCodeParser::parseBlock):
- dfg/DFGGraph.cpp:
(JSC::DFG::Graph::dump):
- dfg/DFGJITCompiler.h:
(JSC::DFG::JITCompiler::branchWeakStructure):
- dfg/DFGPlan.cpp:
(JSC::DFG::Plan::finalize):
- dfg/DFGSpeculativeJIT.cpp:
- dfg/DFGSpeculativeJIT64.cpp:
(JSC::DFG::SpeculativeJIT::nonSpeculativeNonPeepholeCompareNullOrUndefined):
(JSC::DFG::SpeculativeJIT::nonSpeculativePeepholeBranchNullOrUndefined):
(JSC::DFG::SpeculativeJIT::compileToBooleanObjectOrOther):
(JSC::DFG::SpeculativeJIT::emitObjectOrOtherBranch):
(JSC::DFG::SpeculativeJIT::emitUntypedBranch):
(JSC::DFG::SpeculativeJIT::compile):
- ftl/FTLLowerDFGToB3.cpp:
(JSC::FTL::DFG::LowerDFGToB3::compileCompareStrictEq):
- heap/Heap.cpp:
(JSC::Heap::runEndPhase):
- heap/Heap.h:
(JSC::Heap::structureIDTable): Deleted.
- heap/IsoAlignedMemoryAllocator.cpp:
(JSC::IsoAlignedMemoryAllocator::IsoAlignedMemoryAllocator):
(JSC::IsoAlignedMemoryAllocator::~IsoAlignedMemoryAllocator):
(JSC::IsoAlignedMemoryAllocator::tryMallocBlock):
(JSC::IsoAlignedMemoryAllocator::freeBlock):
(JSC::IsoAlignedMemoryAllocator::commitBlock):
(JSC::IsoAlignedMemoryAllocator::decommitBlock):
(JSC::IsoAlignedMemoryAllocator::tryAllocateAlignedMemory): Deleted.
(JSC::IsoAlignedMemoryAllocator::freeAlignedMemory): Deleted.
- heap/IsoAlignedMemoryAllocator.h:
- heap/IsoMemoryAllocatorBase.cpp: Copied from Source/JavaScriptCore/heap/IsoAlignedMemoryAllocator.cpp.
(JSC::IsoMemoryAllocatorBase::IsoMemoryAllocatorBase):
(JSC::IsoMemoryAllocatorBase::~IsoMemoryAllocatorBase):
(JSC::IsoMemoryAllocatorBase::releaseMemoryFromSubclassDestructor):
(JSC::IsoMemoryAllocatorBase::tryAllocateAlignedMemory):
(JSC::IsoMemoryAllocatorBase::freeAlignedMemory):
- heap/IsoMemoryAllocatorBase.h: Copied from Source/JavaScriptCore/heap/IsoAlignedMemoryAllocator.h.
- heap/IsoSubspace.cpp:
(JSC::IsoSubspace::IsoSubspace):
(JSC::IsoSubspace::tryAllocateFromLowerTier):
- heap/IsoSubspace.h:
- heap/PreciseAllocation.cpp:
(JSC::PreciseAllocation::tryCreateForLowerTier):
(JSC::PreciseAllocation::createForLowerTier): Deleted.
- heap/PreciseAllocation.h:
- heap/SlotVisitor.cpp:
(JSC::SlotVisitor::appendJSCellOrAuxiliary):
- heap/StructureAlignedMemoryAllocator.cpp: Added.
(JSC::StructureAlignedMemoryAllocator::StructureAlignedMemoryAllocator):
(JSC::StructureAlignedMemoryAllocator::~StructureAlignedMemoryAllocator):
(JSC::StructureAlignedMemoryAllocator::dump const):
(JSC::StructureAlignedMemoryAllocator::tryAllocateMemory):
(JSC::StructureAlignedMemoryAllocator::freeMemory):
(JSC::StructureAlignedMemoryAllocator::tryReallocateMemory):
(JSC::StructureMemoryManager::StructureMemoryManager):
(JSC::StructureMemoryManager::tryMallocStructureBlock):
(JSC::StructureMemoryManager::freeStructureBlock):
(JSC::StructureAlignedMemoryAllocator::initializeStructureAddressSpace):
(JSC::StructureAlignedMemoryAllocator::tryMallocBlock):
(JSC::StructureAlignedMemoryAllocator::freeBlock):
(JSC::StructureAlignedMemoryAllocator::commitBlock):
(JSC::StructureAlignedMemoryAllocator::decommitBlock):
- heap/StructureAlignedMemoryAllocator.h: Copied from Source/JavaScriptCore/heap/IsoAlignedMemoryAllocator.h.
- jit/AssemblyHelpers.cpp:
(JSC::AssemblyHelpers::emitStoreStructureWithTypeInfo):
(JSC::AssemblyHelpers::emitLoadStructure):
(JSC::AssemblyHelpers::emitLoadPrototype):
(JSC::AssemblyHelpers::emitRandomThunk):
(JSC::AssemblyHelpers::emitConvertValueToBoolean):
(JSC::AssemblyHelpers::branchIfValue):
- jit/AssemblyHelpers.h:
(JSC::AssemblyHelpers::branchStructure):
(JSC::AssemblyHelpers::nukeStructureAndStoreButterfly):
- jit/GCAwareJITStubRoutine.cpp:
(JSC::PolymorphicAccessJITStubRoutine::computeHash):
- jit/JITOpcodes.cpp:
(JSC::JIT::emit_op_typeof_is_undefined):
(JSC::JIT::emit_op_jeq_null):
(JSC::JIT::emit_op_jneq_null):
(JSC::JIT::emit_op_eq_null):
(JSC::JIT::emit_op_neq_null):
(JSC::JIT::emit_op_get_prototype_of):
- jit/JITPropertyAccess.cpp:
(JSC::JIT::emit_op_get_property_enumerator):
- jit/JITStubRoutine.h:
- llint/LLIntSlowPaths.cpp:
(JSC::LLInt::LLINT_SLOW_PATH_DECL):
(JSC::LLInt::performLLIntGetByID):
- llint/LowLevelInterpreter.asm:
- llint/LowLevelInterpreter64.asm:
- offlineasm/x86.rb:
- runtime/ArrayPrototype.cpp:
(JSC::JSC_DEFINE_HOST_FUNCTION):
- runtime/BigIntPrototype.cpp:
(JSC::JSC_DEFINE_HOST_FUNCTION):
- runtime/BooleanPrototype.cpp:
(JSC::JSC_DEFINE_HOST_FUNCTION):
- runtime/CommonSlowPaths.cpp:
(JSC::JSC_DEFINE_COMMON_SLOW_PATH):
- runtime/DatePrototype.cpp:
(JSC::formateDateInstance):
(JSC::JSC_DEFINE_HOST_FUNCTION):
- runtime/ErrorInstance.cpp:
(JSC::ErrorInstance::sanitizedMessageString):
(JSC::ErrorInstance::sanitizedNameString):
(JSC::ErrorInstance::sanitizedToString):
- runtime/ErrorPrototype.cpp:
(JSC::JSC_DEFINE_HOST_FUNCTION):
- runtime/FunctionPrototype.cpp:
(JSC::JSC_DEFINE_HOST_FUNCTION):
- runtime/HasOwnPropertyCache.h:
- runtime/InitializeThreading.cpp:
(JSC::initialize):
- runtime/JSCConfig.h:
- runtime/JSCJSValue.cpp:
(JSC::JSValue::dumpInContextAssumingStructure const):
(JSC::JSValue::dumpForBacktrace const):
- runtime/JSCell.cpp:
(JSC::JSCell::toObjectSlow const):
- runtime/JSCell.h:
(JSC::JSCell::clearStructure):
- runtime/JSCellInlines.h:
(JSC::JSCell::structure const):
(JSC::JSCell::setStructure):
- runtime/JSObject.cpp:
(JSC::JSObject::visitButterflyImpl):
(JSC::JSObject::createInitialUndecided):
(JSC::JSObject::createInitialInt32):
(JSC::JSObject::createInitialDouble):
(JSC::JSObject::createInitialContiguous):
(JSC::JSObject::createArrayStorage):
(JSC::JSObject::convertUndecidedToArrayStorage):
(JSC::JSObject::convertInt32ToArrayStorage):
(JSC::JSObject::convertDoubleToArrayStorage):
(JSC::JSObject::convertContiguousToArrayStorage):
(JSC::JSObject::putDirectCustomGetterSetterWithoutTransition):
(JSC::JSObject::putDirectNonIndexAccessorWithoutTransition):
- runtime/JSObject.h:
(JSC::JSObject::nukeStructureAndSetButterfly):
(JSC::JSObject::getPropertySlot):
- runtime/JSObjectInlines.h:
(JSC::JSObject::getPropertySlot):
(JSC::JSObject::getNonIndexPropertySlot):
(JSC::JSObject::putDirectWithoutTransition):
(JSC::JSObject::putDirectInternal):
- runtime/JSPropertyNameEnumerator.cpp:
(JSC::JSPropertyNameEnumerator::JSPropertyNameEnumerator):
(JSC::JSPropertyNameEnumerator::visitChildrenImpl):
- runtime/JSPropertyNameEnumerator.h:
- runtime/NumberPrototype.cpp:
(JSC::toThisNumber):
- runtime/ObjectPrototype.cpp:
(JSC::JSC_DEFINE_HOST_FUNCTION):
(JSC::objectPrototypeToString):
- runtime/RegExpPrototype.cpp:
(JSC::JSC_DEFINE_HOST_FUNCTION):
- runtime/StringPrototype.cpp:
(JSC::JSC_DEFINE_HOST_FUNCTION):
- runtime/Structure.cpp:
(JSC::Structure::Structure):
(JSC::Structure::~Structure):
(JSC::Structure::flattenDictionaryStructure):
(JSC::Structure::dump const):
(JSC::Structure::canCachePropertyNameEnumerator const):
- runtime/Structure.h:
(JSC::Structure::id const):
- runtime/StructureChain.cpp:
(JSC::StructureChain::visitChildrenImpl):
- runtime/StructureID.h: Added.
(JSC::StructureID::nuke const):
(JSC::StructureID::isNuked const):
(JSC::StructureID::decontaminate const):
(JSC::StructureID::operator bool const):
(JSC::StructureID::operator== const):
(JSC::StructureID::operator!= const):
(JSC::StructureID::bits const):
(JSC::StructureID::StructureID):
(JSC::StructureID::isHashTableDeletedValue const):
(JSC::StructureID::decode const):
(JSC::StructureID::encode):
(JSC::StructureIDHash::hash):
(JSC::StructureIDHash::equal):
- runtime/StructureIDBlob.h:
- runtime/StructureIDTable.cpp: Removed.
- runtime/StructureIDTable.h: Removed.
- runtime/StructureRareDataInlines.h:
(JSC::StructureRareData::tryCachePropertyNameEnumeratorViaWatchpoint):
- runtime/SymbolPrototype.cpp:
(JSC::JSC_DEFINE_CUSTOM_GETTER):
(JSC::JSC_DEFINE_HOST_FUNCTION):
- runtime/TypeProfilerLog.cpp:
(JSC::TypeProfilerLog::processLogEntries):
(JSC::TypeProfilerLog::visit):
- runtime/VM.cpp:
(JSC::VM::VM):
- runtime/VM.h:
(JSC::VM::getStructure): Deleted.
(JSC::VM::tryGetStructure): Deleted.
- tools/HeapVerifier.cpp:
(JSC::HeapVerifier::validateJSCell):
- tools/Integrity.cpp:
- tools/Integrity.h:
- tools/IntegrityInlines.h:
(JSC::Integrity::auditStructureID):
- tools/JSDollarVM.cpp:
(JSC::JSC_DEFINE_HOST_FUNCTION):
- wasm/js/WebAssemblyFunction.cpp:
(JSC::WebAssemblyFunction::jsCallEntrypointSlow):
- wasm/js/WebAssemblyGlobalPrototype.cpp:
(JSC::getGlobal):
Source/WTF:
Add an aligned flavor of reserveUncommited, reserveUncommittedAligned.
- wtf/OSAllocator.h:
- wtf/posix/OSAllocatorPOSIX.cpp:
(WTF::OSAllocator::reserveUncommittedAligned):
- wtf/win/OSAllocatorWin.cpp:
(WTF::OSAllocator::reserveUncommittedAligned):
- 6:21 PM Changeset in webkit [286344] by
-
- 7 edits in trunk/Source/WebCore
[Apple Pay] use
#if
insideApplePayPaymentTiming
instead of guarding the entireenum
https://bugs.webkit.org/show_bug.cgi?id=232696
<rdar://problem/83097245>
Reviewed by Tim Horton.
- Modules/applepay/ApplePayPaymentTiming.idl:
- Modules/applepay/ApplePayPaymentTiming.h:
- Modules/applepay/ApplePayLineItem.idl:
- Modules/applepay/ApplePayLineItem.h:
(WebCore::ApplePayLineItem::encode const):
(WebCore::ApplePayLineItem::decode):
Rather than have the entireApplePayPaymentTiming
be guarded, have it always exist and
just guardRecurring
andDeferred
since those are really the things that need guarding.
- Modules/applepay/PaymentSummaryItems.h:
- Modules/applepay/cocoa/PaymentSummaryItemsCocoa.mm:
(WebCore::platformSummaryItem):
Add WKA hooks.
- 6:19 PM Changeset in webkit [286343] by
-
- 2 edits1 copy1 add in trunk/LayoutTests
REBASELINE [ Monterey ]fast/css/continuationCrash.html (layout-test) is a constant text failure
https://bugs.webkit.org/show_bug.cgi?id=233662
Unreviewed test gardening. Monterey rebase.
- platform/mac-bigsur/fast/css/continuationCrash-expected.txt: Copied from LayoutTests/platform/mac/fast/css/continuationCrash-expected.txt.
- platform/mac/fast/css/continuationCrash-expected.txt:
- 6:15 PM Changeset in webkit [286342] by
-
- 2 edits1 copy in trunk/LayoutTests
REBASELINE [ Monterey ] fast/forms/select-list-box-with-height.html (layout-test) is a constant text failure
https://bugs.webkit.org/show_bug.cgi?id=233661
Unreviewed test gardening. Monterey rebase.
- platform/mac-bigsur/fast/forms/select-list-box-with-height-expected.txt: Copied from LayoutTests/platform/mac/fast/forms/select-list-box-with-height-expected.txt.
- platform/mac/fast/forms/select-list-box-with-height-expected.txt:
- 6:09 PM Changeset in webkit [286341] by
-
- 2 edits1 copy in trunk/LayoutTests
REBASELINE: [ Monterey ] fast/forms/control-restrict-line-height.html (layout-test)is a constant text failure
https://bugs.webkit.org/show_bug.cgi?id=233667
Unreviewed test gardening. Monterey rebase.
- platform/mac-bigsur/fast/forms/control-restrict-line-height-expected.txt: Copied from LayoutTests/platform/mac/fast/forms/control-restrict-line-height-expected.txt.
- platform/mac/fast/forms/control-restrict-line-height-expected.txt:
- 5:51 PM Changeset in webkit [286340] by
-
- 1 edit2 adds in trunk/LayoutTests
REBASELINE: imported/w3c/web-platform-tests/mathml/relations/html5-tree/dynamic-childlist-001.html (layout-test) is a constant text failure
https://bugs.webkit.org/show_bug.cgi?id=233668
Unreviewed test gardening. Monterey rebase.
- platform/mac/imported/w3c/web-platform-tests/mathml/relations/html5-tree/dynamic-childlist-001-expected.txt: Added.
- 5:42 PM Changeset in webkit [286339] by
-
- 2 edits1 copy1 add in trunk/LayoutTests
REBASELINE: [ Monterey ] fast/text/international/bidi-neutral-run.html (layout-test) is a constant text failure
https://bugs.webkit.org/show_bug.cgi?id=233657
Unreviewed test gardening. Rebase for Monterey.
- platform/mac-bigsur/fast/text/international/bidi-neutral-run-expected.txt: Copied from LayoutTests/platform/mac/fast/text/international/bidi-neutral-run-expected.txt.
- platform/mac/fast/text/international/bidi-neutral-run-expected.txt:
- 5:34 PM Changeset in webkit [286338] by
-
- 1 edit7 adds in trunk/LayoutTests
REBASELINE [ Monterey ] 2X fast/dom/HTMLAnchorElement (layout-tests) are constant text failures (233659)
https://bugs.webkit.org/show_bug.cgi?id=233659
Uneviewed test gardening. Rebase for Monterey.
- platform/mac-bigsur-wk2/fast/dom/HTMLAnchorElement/anchor-file-blob-convert-to-download-async-delegate-expected.txt: Added.
- platform/mac-bigsur-wk2/fast/dom/HTMLAnchorElement/anchor-file-blob-convert-to-download-expected.txt: Added.
- platform/mac-wk2/fast/dom/HTMLAnchorElement/anchor-file-blob-convert-to-download-async-delegate-expected.txt: Added.
- platform/mac-wk2/fast/dom/HTMLAnchorElement/anchor-file-blob-convert-to-download-expected.txt: Added.
- 5:13 PM Changeset in webkit [286337] by
-
- 2 edits in trunk/LayoutTests
Unreviewed, remove failure expectation for test that is now consistently passing.
- platform/mac-wk2/TestExpectations:
- 5:11 PM Changeset in webkit [286336] by
-
- 1 edit2 adds in trunk/LayoutTests
REBASELINE: [ Monterey ] fast/dom/52776.html (layout-test) is a constant text failure (233669)
https://bugs.webkit.org/show_bug.cgi?id=233669
Unreviewed test gardening. Rebase for non-Monterey macs.
- platform/mac-bigsur/fast/dom/52776-expected.txt: Added.
- 4:46 PM Changeset in webkit [286335] by
-
- 2 edits in trunk/LayoutTests
[ Mac ] http/wpt/service-workers/service-worker-spinning-activate.https.html is flaky failing
https://bugs.webkit.org/show_bug.cgi?id=220754
Unreviewed test gardening.
- platform/mac/TestExpectations: Remove flaky expectation.
- 4:43 PM Changeset in webkit [286334] by
-
- 2 edits in trunk/LayoutTests
[ Mac ] http/wpt/service-workers/service-worker-spinning-install.https.html is flaky failing
https://bugs.webkit.org/show_bug.cgi?id=219516
Unreviewed test gardening.
- platform/mac-wk2/TestExpectations: Remove flaky expectation.
- 4:42 PM Changeset in webkit [286333] by
-
- 2 edits in trunk/LayoutTests
REBASELINE: [ Monterey ] fast/dom/52776.html (layout-test) is a constant text failure (233669)
https://bugs.webkit.org/show_bug.cgi?id=233669
Unreviewed test gardening. Rebase expectation for Monterey.
- platform/mac/fast/dom/52776-expected.txt:
- 3:58 PM Changeset in webkit [286332] by
-
- 3 edits in trunk/LayoutTests
Update test expectations for a number of newly-passing tests.
https://bugs.webkit.org/show_bug.cgi?id=233638
Unreviewed test gardening.
Patch by Arcady Goldmints-Orlov <Arcady Goldmints-Orlov> on 2021-11-30
- TestExpectations:
- platform/glib/TestExpectations:
- 3:46 PM Changeset in webkit [286331] by
-
- 4 edits in trunk/LayoutTests
Unreviewed, rebaseline a few WPT tests on iOS after r286316.
- platform/ios-wk2/imported/w3c/web-platform-tests/html/semantics/forms/constraints/form-validation-validity-rangeOverflow-expected.txt:
- platform/ios-wk2/imported/w3c/web-platform-tests/html/semantics/forms/constraints/form-validation-validity-rangeUnderflow-expected.txt:
- platform/ios-wk2/imported/w3c/web-platform-tests/html/semantics/forms/constraints/form-validation-validity-stepMismatch-expected.txt:
- 3:43 PM Changeset in webkit [286330] by
-
- 2 edits in trunk/Source/WebCore
Fix Playstation build after r286171
https://bugs.webkit.org/show_bug.cgi?id=233581
unreviewed build fix.
Patch by ujwal koneru <ujwal.koneru@sony.com> on 2021-11-30
- platform/posix/SharedBufferPOSIX.cpp:
(WebCore::SharedBuffer::createFromReadingFile):
- 2:58 PM Changeset in webkit [286329] by
-
- 21 edits1 add in trunk
Web Inspector: add ExtensionTabActivation diagnostic event
https://bugs.webkit.org/show_bug.cgi?id=233101
<rdar://85264921>
Reviewed by Devin Rousso.
Source/WebInspectorUI:
Add new diagnostic event that reports the first activation of
an extension tab. Also report the number of active extension tabs.
- UserInterface/Controllers/ExtensionTabActivationDiagnosticEventRecorder.js: Added.
(WI.ExtensionTabActivationDiagnosticEventRecorder):
(WI.ExtensionTabActivationDiagnosticEventRecorder.prototype.setup):
(WI.ExtensionTabActivationDiagnosticEventRecorder.prototype.teardown):
(WI.ExtensionTabActivationDiagnosticEventRecorder.prototype._selectedTabContentViewDidChange):
Report only the first activation. The extension tab iframe does not load until
the first time that the tab is selected and shown.
- UserInterface/Base/Main.js:
(WI.contentLoaded): Add diagnostic event recorder if extensions are supported.
- UserInterface/Controllers/WebInspectorExtensionController.js:
(WI.WebInspectorExtensionController.prototype.registerExtension):
Pass along the new extensionBundleIdentifier argument to the model object.
(WI.WebInspectorExtensionController.prototype.activeExtensionTabContentViews):
Added. This is a helper method for collecting diagnostic event data.
- UserInterface/Debug/Bootstrap.js:
(updateMockWebExtensionTab):
(WI.runBootstrapOperations):
Pass new extensionBundleIdentifier argument for the Mock Extension.
- UserInterface/Main.html: Add new file.
- UserInterface/Models/WebInspectorExtension.js:
(WI.WebInspectorExtension):
(WI.WebInspectorExtension.prototype.get extensionBundleIdentifier):
Store the extension bundle identifier on the model object. Add a getter.
- UserInterface/Protocol/InspectorFrontendAPI.js:
(InspectorFrontendAPI.registerExtension):
Pass new extensionBundleIdentifier argument.
- UserInterface/Views/WebInspectorExtensionTabContentView.js:
(WI.WebInspectorExtensionTabContentView.prototype.get extension): Added.
Source/WebKit:
Add plumbing for new argument 'extensionBundleIdentifier' that's
passed to WebInspectorUI when registering an extension.
- UIProcess/API/Cocoa/_WKInspector.mm:
(-[_WKInspector registerExtensionWithID:extensionBundleIdentifier:displayName:completionHandler:]):
(-[_WKInspector registerExtensionWithID:displayName:completionHandler:]): Deleted.
- UIProcess/API/Cocoa/_WKInspectorExtensionHost.h:
- UIProcess/API/Cocoa/_WKRemoteWebInspectorViewController.mm:
(-[_WKRemoteWebInspectorViewController registerExtensionWithID:extensionBundleIdentifier:displayName:completionHandler:]):
(-[_WKRemoteWebInspectorViewController registerExtensionWithID:displayName:completionHandler:]): Deleted.
- UIProcess/Inspector/WebInspectorUIExtensionControllerProxy.cpp:
(WebKit::WebInspectorUIExtensionControllerProxy::registerExtension):
- UIProcess/Inspector/WebInspectorUIExtensionControllerProxy.h:
- WebProcess/Inspector/WebInspectorUIExtensionController.cpp:
(WebKit::WebInspectorUIExtensionController::registerExtension):
- WebProcess/Inspector/WebInspectorUIExtensionController.h:
- WebProcess/Inspector/WebInspectorUIExtensionController.messages.in:
Tools:
- TestWebKitAPI/Tests/WebKitCocoa/WKInspectorExtension.mm:
(TEST):
- TestWebKitAPI/Tests/WebKitCocoa/WKInspectorExtensionDelegate.mm:
(TEST):
- TestWebKitAPI/Tests/WebKitCocoa/WKInspectorExtensionHost.mm:
(TEST):
Start using new method parameter 'extensionBundleIdentifier'.
- 2:30 PM Changeset in webkit [286328] by
-
- 3 edits in trunk/LayoutTests
[ BigSur+ ] imported/w3c/web-platform-tests/media-source/mediasource-addsourcebuffer.html is consistently failing
https://bugs.webkit.org/show_bug.cgi?id=221230
Unreviewed test gardening.
- platform/mac-wk1/TestExpectations:
- platform/mac/TestExpectations:
- 2:23 PM Changeset in webkit [286327] by
-
- 3 edits2 adds in trunk
nullptr deref in InbandChapterTrackPrivateAVFObjC::processChapters
https://bugs.webkit.org/show_bug.cgi?id=233605
Patch by Gabriel Nava Marino <gnavamarino@apple.com> on 2021-11-30
Reviewed by Eric Carlson.
Source/WebCore:
The createChapterCue lambda gets dispatched onto the main thread. When it executes,
the client might no longer be valid, so we are adding a nullptr check at the start
of the lambda, as is done at the start of the method.
Test: media/track/track-in-band-chapters-invalid-client-crash.html
- platform/graphics/avfoundation/objc/InbandChapterTrackPrivateAVFObjC.mm:
(WebCore::InbandChapterTrackPrivateAVFObjC::processChapters):
LayoutTests:
- media/track/track-in-band-chapters-invalid-client-crash-expected.txt: Added.
- media/track/track-in-band-chapters-invalid-client-crash.html: Added.
- 2:17 PM Changeset in webkit [286326] by
-
- 2 edits in trunk/Source/WTF
[Model] Update required macOS version for camera, animation and audio APIs
https://bugs.webkit.org/show_bug.cgi?id=233656
Patch by Antoine Quint <Antoine Quint> on 2021-11-30
Reviewed by Tim Horton.
- wtf/PlatformEnableCocoa.h:
- 1:54 PM Changeset in webkit [286325] by
-
- 2 edits in trunk/LayoutTests
[ Big Sur+ ] imported/w3c/web-platform-tests/fetch/content-type/script.window.html is failing
https://bugs.webkit.org/show_bug.cgi?id=219965
Unreviewed test gardening.
- platform/mac/TestExpectations:
- 1:40 PM Changeset in webkit [286324] by
-
- 2 edits in trunk/Source/WebCore
[Hardening] Early return in JSLazyEventListener::initializeJSFunction() if !settings().scriptMarkupEnabled()
https://bugs.webkit.org/show_bug.cgi?id=233646
Reviewed by Geoff Garen.
Early return in JSLazyEventListener::initializeJSFunction() if !settings().scriptMarkupEnabled() as a
hardening measure.
- bindings/js/JSLazyEventListener.cpp:
(WebCore::JSLazyEventListener::initializeJSFunction const):
- 1:35 PM Changeset in webkit [286323] by
-
- 7 edits in trunk/Source/ThirdParty/ANGLE
Hardware PCF filtering does not work on iOS 15 when using WebGL2
https://bugs.webkit.org/show_bug.cgi?id=232071
Lower restrictions on sampling D32F formats, and allow filtering
of Depth16F on iOS hardware, as it was previously restricted.
Reviewed by Kenneth Russell.
- include/platform/FeaturesMtl.h:
- src/libANGLE/renderer/metal/DisplayMtl.h:
- src/libANGLE/renderer/metal/DisplayMtl.mm:
(rx::DisplayMtl::initializeFeatures):
(rx::DisplayMtl::supports32BitFloatFiltering const):
(rx::DisplayMtl::supportsDepth24Stencil8PixelFormat const):
- src/libANGLE/renderer/metal/TextureMtl.mm:
(rx::TextureMtl::ensureSamplerStateCreated):
- src/libANGLE/renderer/metal/mtl_format_map.json:
- src/libANGLE/renderer/metal/mtl_format_table_autogen.mm:
(rx::mtl::FormatTable::initNativeFormatCapsAutogen):
- 1:31 PM Changeset in webkit [286322] by
-
- 2 edits in trunk/LayoutTests
REGRESSION (r278630?): [Monterey iOS 14+ ] http/tests/ssl/applepay/ApplePayButton.html is a constant failure
https://bugs.webkit.org/show_bug.cgi?id=226826
Unreviewed test gardening.
- platform/mac/TestExpectations:
- 1:28 PM Changeset in webkit [286321] by
-
- 10 edits in trunk
html/semantics/forms/constraints/form-validation-validity-customError.html WPT test is failing
https://bugs.webkit.org/show_bug.cgi?id=233599
Reviewed by Darin Adler.
LayoutTests/imported/w3c:
Rebaseline WPT test that is now passing.
- web-platform-tests/html/semantics/forms/constraints/form-validation-validity-customError-expected.txt:
Source/WebCore:
No new tests, rebaselined existing test.
- html/FormAssociatedElement.cpp:
(WebCore::FormAssociatedElement::customError const):
Per https://html.spec.whatwg.org/#dom-validitystate-customerror, customError() should return true
if the control is suffering from a custom error. Per https://html.spec.whatwg.org/#custom-validity-error-message,
when setCustomValidity() is called with a non-empty message, the element suffers from a custom error, no
matter if the element is a candidate for constraint validation or not.
(WebCore::FormAssociatedElement::validationMessage const):
Per https://html.spec.whatwg.org/#dom-cva-validationmessage, the validationMessage getter
should return the empty string if "the element is not a candidate for constraint validation".
- 1:14 PM Changeset in webkit [286320] by
-
- 55 edits1 add in trunk/Source/WebKit
[WebGPU] Hook up StreamServerConnection to Remote* classes
https://bugs.webkit.org/show_bug.cgi?id=233600
Reviewed by Kimmo Kinnunen.
In order for all the various Remote* classes in the GPU process to be able to receive messages,
they have to be able to call streamConnection->startReceivingMessages(*this), and when they're done
receiving messages, they need to call streamConnection->stopReceivingMessages(). This means that
all the Remote* objects have to have a Ref to the StreamServerConnection so they can call into it
when they're done receiving messages.
The object model for this matches the object model for RemoteRenderingBackend:
- RemoteGPU is the WebGPU analogue of RemoteRenderingBackend.
- WebGPU::ObjectHeap is the WebGPU analogue of RemoteResourceCache.
- The WebGPU::Remote* objects are the WebGPU analogues of the ImageBuffers, NativeImages, and
Fonts retained by the RemoteResourceCache.
So, here's an ASCII-art diagram of the object model:
+-----------+
| RemoteGPU |
+-----------+
/ |
---------------- |
/ |
/ +--------------------+
/ | WebGPU::ObjectHeap |
/ +--------------------+
/ / | \
/ / | \
| / | \
| +---------------+ +--------------+ +-------------+
| | RemoteTexture | | RemoteDevice | | RemoteQueue | ... etc.
| +---------------+ +--------------+ +-------------+
\ \ | /
\ \ | /
-------------- \ | /
\ \ | /
+------------------------+
| StreamServerConnection |
+------------------------+
Now that the StreamServerConnection is being hooked up, this patch mirrors the design of
RemoteGraphicsContextGL. In this design, the web process sends a create() message with the
StreamConnectionBuffer to the gpu process, which creates a RemoteGraphicsContextGL. The
RemoteGraphicsContextGL owns a StreamConnectionWorkQueue, and upon being created, it starts up the
work queue and enqueues an initialization task to the work queue, which then sends a reply to the web
process including the wakeUpSemaphore from the work queue. While the GPU process is busy doing this,
the web process is blocked, because it can't send any messages through the stream until it has
received the semaphore. Once it has received the semaphore, the connection has been established,
and messages can start flowing. This patch follows this model, except instead of
RemoteGraphicsContextGLProxy communicating with RemoteGraphicsContextGL, RemoteGPUProxy is
communicating with RemoteGPU.
There is one more patch to wire up all the pieces together before we can actually call our first
WebGPU command in Javascript.
- CMakeLists.txt:
- DerivedSources-input.xcfilelist:
- DerivedSources-output.xcfilelist:
- DerivedSources.make:
- GPUProcess/graphics/WebGPU/RemoteAdapter.cpp:
(WebKit::RemoteAdapter::RemoteAdapter):
(WebKit::RemoteAdapter::stopListeningForIPC):
(WebKit::RemoteAdapter::requestDevice):
- GPUProcess/graphics/WebGPU/RemoteAdapter.h:
- GPUProcess/graphics/WebGPU/RemoteBindGroup.cpp:
(WebKit::RemoteBindGroup::RemoteBindGroup):
(WebKit::RemoteBindGroup::stopListeningForIPC):
- GPUProcess/graphics/WebGPU/RemoteBindGroup.h:
- GPUProcess/graphics/WebGPU/RemoteBindGroupLayout.cpp:
(WebKit::RemoteBindGroupLayout::RemoteBindGroupLayout):
(WebKit::RemoteBindGroupLayout::stopListeningForIPC):
- GPUProcess/graphics/WebGPU/RemoteBindGroupLayout.h:
- GPUProcess/graphics/WebGPU/RemoteBuffer.cpp:
(WebKit::RemoteBuffer::RemoteBuffer):
(WebKit::RemoteBuffer::stopListeningForIPC):
- GPUProcess/graphics/WebGPU/RemoteBuffer.h:
- GPUProcess/graphics/WebGPU/RemoteCommandBuffer.cpp:
(WebKit::RemoteCommandBuffer::RemoteCommandBuffer):
(WebKit::RemoteCommandBuffer::stopListeningForIPC):
- GPUProcess/graphics/WebGPU/RemoteCommandBuffer.h:
- GPUProcess/graphics/WebGPU/RemoteCommandEncoder.cpp:
(WebKit::RemoteCommandEncoder::RemoteCommandEncoder):
(WebKit::RemoteCommandEncoder::stopListeningForIPC):
(WebKit::RemoteCommandEncoder::beginRenderPass):
(WebKit::RemoteCommandEncoder::beginComputePass):
(WebKit::RemoteCommandEncoder::finish):
- GPUProcess/graphics/WebGPU/RemoteCommandEncoder.h:
- GPUProcess/graphics/WebGPU/RemoteComputePassEncoder.cpp:
(WebKit::RemoteComputePassEncoder::RemoteComputePassEncoder):
(WebKit::RemoteComputePassEncoder::stopListeningForIPC):
- GPUProcess/graphics/WebGPU/RemoteComputePassEncoder.h:
- GPUProcess/graphics/WebGPU/RemoteComputePipeline.cpp:
(WebKit::RemoteComputePipeline::RemoteComputePipeline):
(WebKit::RemoteComputePipeline::stopListeningForIPC):
(WebKit::RemoteComputePipeline::getBindGroupLayout):
- GPUProcess/graphics/WebGPU/RemoteComputePipeline.h:
- GPUProcess/graphics/WebGPU/RemoteDevice.cpp:
(WebKit::RemoteDevice::RemoteDevice):
(WebKit::RemoteDevice::stopListeningForIPC):
(WebKit::RemoteDevice::createBuffer):
(WebKit::RemoteDevice::createTexture):
(WebKit::RemoteDevice::createSampler):
(WebKit::RemoteDevice::importExternalTexture):
(WebKit::RemoteDevice::createBindGroupLayout):
(WebKit::RemoteDevice::createPipelineLayout):
(WebKit::RemoteDevice::createBindGroup):
(WebKit::RemoteDevice::createShaderModule):
(WebKit::RemoteDevice::createComputePipeline):
(WebKit::RemoteDevice::createRenderPipeline):
(WebKit::RemoteDevice::createComputePipelineAsync):
(WebKit::RemoteDevice::createRenderPipelineAsync):
(WebKit::RemoteDevice::createCommandEncoder):
(WebKit::RemoteDevice::createRenderBundleEncoder):
(WebKit::RemoteDevice::createQuerySet):
- GPUProcess/graphics/WebGPU/RemoteDevice.h:
- GPUProcess/graphics/WebGPU/RemoteExternalTexture.cpp:
(WebKit::RemoteExternalTexture::RemoteExternalTexture):
(WebKit::RemoteExternalTexture::stopListeningForIPC):
- GPUProcess/graphics/WebGPU/RemoteExternalTexture.h:
- GPUProcess/graphics/WebGPU/RemoteGPU.cpp:
(WebKit::RemoteGPU::RemoteGPU):
(WebKit::RemoteGPU::initialize):
(WebKit::RemoteGPU::stopListeningForIPC):
(WebKit::RemoteGPU::workQueueInitialize):
(WebKit::RemoteGPU::workQueueUninitialize):
(WebKit::RemoteGPU::requestAdapter):
- GPUProcess/graphics/WebGPU/RemoteGPU.h:
- GPUProcess/graphics/WebGPU/RemoteGPU.messages.in:
- GPUProcess/graphics/WebGPU/RemotePipelineLayout.cpp:
(WebKit::RemotePipelineLayout::RemotePipelineLayout):
(WebKit::RemotePipelineLayout::stopListeningForIPC):
- GPUProcess/graphics/WebGPU/RemotePipelineLayout.h:
- GPUProcess/graphics/WebGPU/RemoteQuerySet.cpp:
(WebKit::RemoteQuerySet::RemoteQuerySet):
(WebKit::RemoteQuerySet::stopListeningForIPC):
- GPUProcess/graphics/WebGPU/RemoteQuerySet.h:
- GPUProcess/graphics/WebGPU/RemoteQueue.cpp:
(WebKit::RemoteQueue::RemoteQueue):
(WebKit::RemoteQueue::stopListeningForIPC):
- GPUProcess/graphics/WebGPU/RemoteQueue.h:
- GPUProcess/graphics/WebGPU/RemoteRenderBundle.cpp:
(WebKit::RemoteRenderBundle::RemoteRenderBundle):
(WebKit::RemoteRenderBundle::stopListeningForIPC):
- GPUProcess/graphics/WebGPU/RemoteRenderBundle.h:
- GPUProcess/graphics/WebGPU/RemoteRenderBundleEncoder.cpp:
(WebKit::RemoteRenderBundleEncoder::RemoteRenderBundleEncoder):
(WebKit::RemoteRenderBundleEncoder::stopListeningForIPC):
(WebKit::RemoteRenderBundleEncoder::finish):
- GPUProcess/graphics/WebGPU/RemoteRenderBundleEncoder.h:
- GPUProcess/graphics/WebGPU/RemoteRenderPassEncoder.cpp:
(WebKit::RemoteRenderPassEncoder::RemoteRenderPassEncoder):
(WebKit::RemoteRenderPassEncoder::stopListeningForIPC):
- GPUProcess/graphics/WebGPU/RemoteRenderPassEncoder.h:
- GPUProcess/graphics/WebGPU/RemoteRenderPipeline.cpp:
(WebKit::RemoteRenderPipeline::RemoteRenderPipeline):
(WebKit::RemoteRenderPipeline::stopListeningForIPC):
(WebKit::RemoteRenderPipeline::getBindGroupLayout):
- GPUProcess/graphics/WebGPU/RemoteRenderPipeline.h:
- GPUProcess/graphics/WebGPU/RemoteSampler.cpp:
(WebKit::RemoteSampler::RemoteSampler):
(WebKit::RemoteSampler::stopListeningForIPC):
- GPUProcess/graphics/WebGPU/RemoteSampler.h:
- GPUProcess/graphics/WebGPU/RemoteShaderModule.cpp:
(WebKit::RemoteShaderModule::RemoteShaderModule):
(WebKit::RemoteShaderModule::stopListeningForIPC):
- GPUProcess/graphics/WebGPU/RemoteShaderModule.h:
- GPUProcess/graphics/WebGPU/RemoteTexture.cpp:
(WebKit::RemoteTexture::RemoteTexture):
(WebKit::RemoteTexture::stopListeningForIPC):
(WebKit::RemoteTexture::createView):
- GPUProcess/graphics/WebGPU/RemoteTexture.h:
- GPUProcess/graphics/WebGPU/RemoteTextureView.cpp:
(WebKit::RemoteTextureView::RemoteTextureView):
(WebKit::RemoteTextureView::stopListeningForIPC):
- GPUProcess/graphics/WebGPU/RemoteTextureView.h:
- GPUProcess/graphics/WebGPU/WebGPUObjectHeap.cpp:
(WebKit::WebGPU::ObjectHeap::addObject):
(WebKit::WebGPU::ObjectHeap::convertAdapterFromBacking):
(WebKit::WebGPU::ObjectHeap::convertBindGroupFromBacking):
(WebKit::WebGPU::ObjectHeap::convertBindGroupLayoutFromBacking):
(WebKit::WebGPU::ObjectHeap::convertBufferFromBacking):
(WebKit::WebGPU::ObjectHeap::convertCommandBufferFromBacking):
(WebKit::WebGPU::ObjectHeap::convertCommandEncoderFromBacking):
(WebKit::WebGPU::ObjectHeap::convertComputePassEncoderFromBacking):
(WebKit::WebGPU::ObjectHeap::convertComputePipelineFromBacking):
(WebKit::WebGPU::ObjectHeap::convertDeviceFromBacking):
(WebKit::WebGPU::ObjectHeap::convertExternalTextureFromBacking):
(WebKit::WebGPU::ObjectHeap::convertPipelineLayoutFromBacking):
(WebKit::WebGPU::ObjectHeap::convertQuerySetFromBacking):
(WebKit::WebGPU::ObjectHeap::convertQueueFromBacking):
(WebKit::WebGPU::ObjectHeap::convertRenderBundleEncoderFromBacking):
(WebKit::WebGPU::ObjectHeap::convertRenderBundleFromBacking):
(WebKit::WebGPU::ObjectHeap::convertRenderPassEncoderFromBacking):
(WebKit::WebGPU::ObjectHeap::convertRenderPipelineFromBacking):
(WebKit::WebGPU::ObjectHeap::convertSamplerFromBacking):
(WebKit::WebGPU::ObjectHeap::convertShaderModuleFromBacking):
(WebKit::WebGPU::ObjectHeap::convertTextureFromBacking):
(WebKit::WebGPU::ObjectHeap::convertTextureViewFromBacking):
- GPUProcess/graphics/WebGPU/WebGPUObjectHeap.h:
- WebKit.xcodeproj/project.pbxproj:
- WebProcess/GPU/graphics/WebGPU/RemoteGPUProxy.cpp:
(WebKit::RemoteGPUProxy::RemoteGPUProxy):
(WebKit::RemoteGPUProxy::abandonGPUProcess):
(WebKit::RemoteGPUProxy::wasCreated):
(WebKit::RemoteGPUProxy::waitUntilInitialized):
(WebKit::RemoteGPUProxy::requestAdapter):
(WebKit::RemoteGPUProxy::~RemoteGPUProxy): Deleted.
- WebProcess/GPU/graphics/WebGPU/RemoteGPUProxy.h:
- WebProcess/GPU/graphics/WebGPU/RemoteGPUProxy.messages.in: Added.
- 12:57 PM Changeset in webkit [286319] by
-
- 13 edits in trunk/LayoutTests
Unreviewed follow-up to r286316 to fix "undeflows" typo.
- fast/forms/date/ValidityState-rangeUnderflow-date-expected.txt:
- fast/forms/date/ValidityState-rangeUnderflow-date.html:
- fast/forms/datetimelocal/ValidityState-rangeUnderflow-datetimelocal-expected.txt:
- fast/forms/datetimelocal/ValidityState-rangeUnderflow-datetimelocal.html:
- fast/forms/month/ValidityState-rangeUnderflow-month-expected.txt:
- fast/forms/month/ValidityState-rangeUnderflow-month.html:
- fast/forms/number/number-validity-rangeunderflow-expected.txt:
- fast/forms/number/number-validity-rangeunderflow.html:
- fast/forms/time/time-validity-rangeunderflow-expected.txt:
- fast/forms/time/time-validity-rangeunderflow.html:
- fast/forms/week/ValidityState-rangeUnderflow-week-expected.txt:
- fast/forms/week/ValidityState-rangeUnderflow-week.html:
- 12:41 PM Changeset in webkit [286318] by
-
- 19 edits in trunk/Source
[WebXR] Implement ChromeClient API to allow getting explicit consent from user on session features
https://bugs.webkit.org/show_bug.cgi?id=233617
Patch by Ada Chan <adachan@apple.com> on 2021-11-30
Reviewed by Dean Jackson.
Source/WebCore:
Before this change, we just collect the features supported by the device/mode
and return them as resolved features. With this change, we introduce a ChromeClient
API that WebXRSystem::resolveFeaturePermissions() can call that allows clients to
implement a mechanism to ask user for explicit consent on session features.
- Modules/webxr/WebXRSystem.cpp:
(WebCore::WebXRSystem::resolveFeaturePermissions const):
Updated to call the new ChromeClient method requestPermissionOnXRSessionFeatures()
to get the resolved and user permitted XR session features. The feature list is
now returned via a CompletionHandler.
(WebCore::WebXRSystem::requestSession):
Updated now that WebXRSystem::resolveFeaturePermissions() is no longer synchronous.
- Modules/webxr/WebXRSystem.h:
- page/ChromeClient.h:
(WebCore::ChromeClient::requestPermissionOnXRSessionFeatures):
Default implementation preserves current behavior by returning the initial list
of granted features (based on what the device can support).
- platform/xr/PlatformXR.h:
Define EnumTraits for PlatformXR::SessionMode.
Source/WebKit:
Set up WKUIDelegate method for asking user for permission on XR session features.
- Scripts/webkit/messages.py:
(types_that_cannot_be_forward_declared):
(headers_for_type):
- UIProcess/API/APIUIClient.h:
(API::UIClient::requestPermissionOnXRSessionFeatures):
- UIProcess/API/Cocoa/WKUIDelegatePrivate.h:
Declare a WK enum that represents XR session mode and a WK flag
that represents XR session features for use in the new WKUIDelegate method.
Declare a new WKUIDelegate method for requesting user permission for
XR session features that takes in the security origin, the session mode,
the list of device supported features, the list of features that require consent,
and the list of features that optionally require consent.
- UIProcess/Cocoa/UIDelegate.h:
- UIProcess/Cocoa/UIDelegate.mm:
(WebKit::UIDelegate::setDelegate):
(WebKit::toWKXRSessionMode):
(WebKit::toWKXRSessionFeatureFlags):
(WebKit::toPlatformXRFeatures):
(WebKit::UIDelegate::UIClient::requestPermissionOnXRSessionFeatures):
If the WKUIDelegate method for requesting permission is implemented, call it to
get the list of user permitted features. Otherwise, preserve the current behavior
by returning the initially granted features based on device support.
- UIProcess/XR/PlatformXRCoordinator.h:
(WebKit::PlatformXRCoordinator::requestPermissionOnSessionFeatures):
Default implementation returns the initially granted features based on device support.
- UIProcess/XR/PlatformXRSystem.cpp:
(WebKit::PlatformXRSystem::requestPermissionOnSessionFeatures):
- UIProcess/XR/PlatformXRSystem.h:
- UIProcess/XR/PlatformXRSystem.messages.in:
- WebProcess/WebCoreSupport/WebChromeClient.cpp:
(WebKit::WebChromeClient::requestPermissionOnXRSessionFeatures):
- WebProcess/WebCoreSupport/WebChromeClient.h:
- WebProcess/XR/PlatformXRSystemProxy.cpp:
(WebKit::PlatformXRSystemProxy::requestPermissionOnSessionFeatures):
Send a message to the UI process to request user consent on session features.
- WebProcess/XR/PlatformXRSystemProxy.h:
- 12:40 PM Changeset in webkit [286317] by
-
- 36 edits in trunk/Source
Unreviewed, reverting r286227.
https://bugs.webkit.org/show_bug.cgi?id=233652
Broke some Apple-internal builds
Reverted changeset:
"[Model] clean up compile-time flags and condition IDL methods
behind them"
https://bugs.webkit.org/show_bug.cgi?id=233407
https://commits.webkit.org/r286227
- 12:39 PM Changeset in webkit [286316] by
-
- 49 edits in trunk
Several WPT tests under html/semantics/forms/constraints are failing due to extraneous willValidate() checks
https://bugs.webkit.org/show_bug.cgi?id=233604
Reviewed by Darin Adler.
LayoutTests/imported/w3c:
Rebaseline WPT tests now that more checks are passing.
- web-platform-tests/html/semantics/forms/constraints/form-validation-validity-typeMismatch-expected.txt:
Source/WebCore:
Several WPT tests under html/semantics/forms/constraints are failing due to extraneous willValidate() checks.
Per the specification and to match the behavior of Blink & Gecko, ValidityState properties such as
validity.typeMismatch
should return true in case of mismatch even if the control is disabled (and thus
willValidate() returns false).
No new tests, rebaselined existing tests.
- html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::tooShort const):
(WebCore::HTMLInputElement::tooLong const):
(WebCore::HTMLInputElement::typeMismatch const):
(WebCore::HTMLInputElement::hasBadInput const):
(WebCore::HTMLInputElement::rangeUnderflow const):
(WebCore::HTMLInputElement::rangeOverflow const):
(WebCore::HTMLInputElement::stepMismatch const):
LayoutTests:
Rebaseline WPT tests now that more checks are passing.
- platform/mac-wk2/imported/w3c/web-platform-tests/html/semantics/forms/constraints/form-validation-validity-rangeOverflow-expected.txt:
- platform/mac-wk2/imported/w3c/web-platform-tests/html/semantics/forms/constraints/form-validation-validity-rangeUnderflow-expected.txt:
- platform/mac-wk2/imported/w3c/web-platform-tests/html/semantics/forms/constraints/form-validation-validity-stepMismatch-expected.txt:
- 12:38 PM Changeset in webkit [286315] by
-
- 7 edits in trunk
html/semantics/forms/constraints/form-validation-validity-patternMismatch.html WPT test is failing
https://bugs.webkit.org/show_bug.cgi?id=233601
Reviewed by Darin Adler.
LayoutTests/imported/w3c:
Rebaseline WPT test now that it is passing.
- web-platform-tests/html/semantics/forms/constraints/form-validation-validity-patternMismatch-expected.txt:
Source/WebCore:
No new tests, rebaselined existing test.
- html/BaseTextInputType.cpp:
(WebCore::BaseTextInputType::patternMismatch const):
Per https://html.spec.whatwg.org/#attr-input-pattern, when the multiple attribute is present and it
applies to the control, then we should check if the pattern applies to each comma-separated value
in the input (rather than applying the pattern to the whole input).
- html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::patternMismatch const):
Per https://html.spec.whatwg.org/#dom-validitystate-patternmismatch, patternMismatch should be true
when a control has a value that doesn't satisfy the pattern attribute. We had a bug where we would
only return true if the control was eligible for validation (i.e. not disabled).
- 12:10 PM Changeset in webkit [286314] by
-
- 5 edits in trunk/Source/WebKit
[Cocoa] Web Inspector: fix bundle identifier lookup for enabling remote inspection
https://bugs.webkit.org/show_bug.cgi?id=233015
<rdar://85277115>
Reviewed by Darin Adler.
- UIProcess/Inspector/WebInspectorUtilities.h:
- UIProcess/Inspector/WebInspectorUtilities.cpp:
(WebKit::bundleIdentifierForSandboxBroker):
To avoid repeating the logic, extract this code to a helper.
- UIProcess/Cocoa/WebInspectorPreferenceObserver.mm:
(-[WKWebInspectorPreferenceObserver init]):
- UIProcess/Cocoa/WebProcessProxyCocoa.mm:
(WebKit::WebProcessProxy::shouldEnableRemoteInspector):
Use the helper method.
- 12:08 PM Changeset in webkit [286313] by
-
- 6 edits in trunk/Source/JavaScriptCore
Rename "queueTaskToEventLoop" to "queueMicrotaskToEventLoop"
https://bugs.webkit.org/show_bug.cgi?id=233639
Patch by Alexey Shvayka <ashvayka@apple.com> on 2021-11-30
Reviewed by Mark Lam.
This change improves grep-ability and avoids confusion since JSDOMWindowBase's
queueMicrotaskToEventLoop() is capable only of scheduling microtasks (hence its signature).
ECMA-262 has no notion of macrotasks, and now JSC hasn't as well.
No behavior change.
- API/JSAPIGlobalObject.cpp:
- API/JSAPIGlobalObject.mm:
- jsc.cpp:
- runtime/JSGlobalObject.cpp:
(JSC::JSGlobalObject::queueMicrotask):
- runtime/JSGlobalObject.h:
- 12:00 PM Changeset in webkit [286312] by
-
- 4 edits3 adds in trunk
GetMyArgumentByValOutOfBounds needs to check for negative indices
https://bugs.webkit.org/show_bug.cgi?id=232966
<rdar://problem/85519898>
Reviewed by Yusuke Suzuki.
JSTests:
- get-my-argument-by-val-negative-1.js: Added.
- get-my-argument-by-val-negative-2.js: Added.
- get-my-argument-by-val-negative-3.js: Added.
Source/JavaScriptCore:
Negative indices inside of GetMyArgumentByValOutOfBounds would cause
us to have the resulting value be undefined, instead of a full blown
lookup that properly consults the prototype chain and such. The reason for
this is negative indices would show up as "out of bounds", which would
lead this node to result in undefined. But negative indices really should
be treated as string property names, and can't be treated like normal out
of bounds positive integers.
This patch makes it so we speculate that we don't see negative indices. If
we do see negative indices, we stop performing the transformation inside
of arguments elimination so we don't end up in an OSR exit loop.
- dfg/DFGArgumentsEliminationPhase.cpp:
- ftl/FTLLowerDFGToB3.cpp:
(JSC::FTL::DFG::LowerDFGToB3::compileGetMyArgumentByVal):
- 11:52 AM Changeset in webkit [286311] by
-
- 4 edits in trunk
Correct serialization error in _WKApplicationManifestIcon
https://bugs.webkit.org/show_bug.cgi?id=233602
<rdar://problem/85838843>
Reviewed by Devin Rousso.
Source/WebKit:
The 'initWithCoder' method had two mistakes: (1) It attempted to decode the 'purposes'
member as an NSArray of NSString, rather than NSNumber, and (2) it attempted to decode
the 'src' member as an NSString, when it is in fact an NSURL.
These errors caused serialization to fail (since NSSecureCoding correctly rejected the
serialization).
This patch corrects both errors and adds a new test to exercise this code path.
Tested by a new TestWebKitAPI Test: ApplicationManifest.IconCoding
- UIProcess/API/Cocoa/_WKApplicationManifest.mm:
(-[_WKApplicationManifestIcon initWithCoder:]): Correct decoding logic.
Tools:
This patch adds a new test "ApplicationManifest.IconCoding" to exercise the
NSCoder code paths.
- TestWebKitAPI/Tests/WebKitCocoa/ApplicationManifest.mm:
(TestWebKitAPI::TEST):
- 11:34 AM Changeset in webkit [286310] by
-
- 5 edits in trunk
Constructing a FormData from a form can lead to entries with lone surrogates
https://bugs.webkit.org/show_bug.cgi?id=225299
Patch by Andreu Botella <andreu@andreubotella.com> on 2021-11-30
Reviewed by Chris Dumez.
LayoutTests/imported/w3c:
- web-platform-tests/html/semantics/forms/form-submission-0/form-data-set-usv-expected.txt:
Source/WebCore:
According to the HTML specification, names and non-file values in a form's entry list are
scalar value strings. While this is enforced through WebIDL when the entries are added
through the FormData web API, entries that come directly from form controls can contain lone
surrogates. What's more, when a form payload is created from such an entry list, those lone
surrogates can end up encoded as invalid UTF-8.
Since names and non-file values being scalar value strings is an invariant of entry lists,
this change modifies the createFileEntry function in DOMFormData.cpp to replace lone
surrogates in the entry name, and adds a corresponding createStringEntry function, in order
to ensure that every item of the entry list fulfills this invariant.
Tests: imported/w3c/web-platform-tests/html/semantics/forms/form-submission-0/form-data-set-usv.html
- html/DOMFormData.cpp:
(WebCore::createStringEntry): Added to mirror createFileEntry. Replaces lone surrogates in
the name and value.
(WebCore::createFileEntry): Moved from DOMFormData::createFileEntry, and changed to replace
lone surrogates in the entry name.
(WebCore::DOMFormData::append): Changed to use createStringEntry.
(WebCore::DOMFormData::createFileEntry): Moved to createFileEntry.
- html/DOMFormData.h:
- 11:25 AM Changeset in webkit [286309] by
-
- 2 edits in trunk/Source/WebCore
Use scriptDisallowedScope in FrameSelection::updateAppearance
https://bugs.webkit.org/show_bug.cgi?id=233644
Patch by Gabriel Nava Marino <gnavamarino@apple.com> on 2021-11-30
Reviewed by Ryosuke Niwa.
Use scriptDisallowedScope in FrameSelection::updateAppearance to avoid re-entrancy
RenderView problems when a downstream function executes a JS callback.
- editing/FrameSelection.cpp:
(WebCore::FrameSelection::validateSelection const):
(WebCore::FrameSelection::updateAppearance):
- editing/FrameSelection.h:
- 11:24 AM Changeset in webkit [286308] by
-
- 4 edits in trunk
Scripting attributes are sometimes not properly stripped from elements when JS is disabled
https://bugs.webkit.org/show_bug.cgi?id=233642
<rdar://63180952>
Reviewed by Geoffrey Garen.
Source/WebCore:
HTMLConstructionSite::mergeAttributesFromTokenIntoElement() was not properly stripping scripting
Element attributes when scripting is disabled, unlike other code paths in HTMLConstructionSite().
Covered by new API tests.
- html/parser/HTMLConstructionSite.cpp:
(WebCore::HTMLConstructionSite::mergeAttributesFromTokenIntoElement):
Tools:
Add API test coverage.
- TestWebKitAPI/Tests/WebKitCocoa/WKWebViewConfiguration.mm:
(TEST):
- 11:02 AM Changeset in webkit [286307] by
-
- 2 edits in trunk/Source/WTF
[Cocoa] Enable HTMLVideoElement.requestVideoFrameCallback by default
https://bugs.webkit.org/show_bug.cgi?id=233306
Reviewed by Eric Carlson.
- Scripts/Preferences/WebPreferencesExperimental.yaml:
- 10:53 AM Changeset in webkit [286306] by
-
- 2 edits in trunk/Source/WebKit
Web Inspector: fix IPC race between unregistering an extension and Web Inspector closing
https://bugs.webkit.org/show_bug.cgi?id=233264
Reviewed by Devin Rousso.
- UIProcess/Inspector/WebInspectorUIExtensionControllerProxy.cpp:
(WebKit::WebInspectorUIExtensionControllerProxy::inspectorFrontendWillClose):
Remaining registrations will not be removed via unregisterExtension() if
the frontend is already in the midst of closing. Clear out the registry.
(WebKit::WebInspectorUIExtensionControllerProxy::registerExtension):
(WebKit::WebInspectorUIExtensionControllerProxy::unregisterExtension):
Bail out if the inspector has closed between the IPC message being sent
and receiving the async response.
- 10:15 AM Changeset in webkit [286305] by
-
- 7 edits2 adds in trunk
Add support for rvfc to MediaPlayerPrivateMediaSourceAVFObjC
https://bugs.webkit.org/show_bug.cgi?id=233186
Reviewed by Eric Carlson.
Source/WebCore:
Implement rvfc support using canvas painting code path infrastructure.
We check 60 times per second whether a new frame is being displayed.
If so, we update the metadata.
We only enable the test if mediaSourceInlinePaintingEnabled is true since canvas painting does not work otherwise.
Test: http/tests/media/media-source/mediasource-rvfc.html
- platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.h:
- platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:
- testing/InternalSettings.cpp:
- testing/InternalSettings.h:
- testing/InternalSettings.idl:
LayoutTests:
- http/tests/media/media-source/mediasource-rvfc-expected.txt: Added.
- http/tests/media/media-source/mediasource-rvfc.html: Added.
- 10:10 AM Changeset in webkit [286304] by
-
- 3 edits in trunk/Source/WTF
Unreviewed, reverting r286272.
https://bugs.webkit.org/show_bug.cgi?id=233641
Wrong approach to disabling experimental features.
Reverted changeset:
"Disable experimental web features on platforms without UI to
enable them"
https://bugs.webkit.org/show_bug.cgi?id=233152
https://commits.webkit.org/r286272
- 10:09 AM Changeset in webkit [286303] by
-
- 2 edits in trunk
Move Tyler Wilcock to first entry in "emails" key
Unreviewed.
In order to cq+, your committer e-mail address must be the
first entry in the "emails" key.
- metadata/contributors.json:
- 10:03 AM Changeset in webkit [286302] by
-
- 5 edits in trunk/Source/WebCore
[:has() pseudo-class] Cache :has() failures for subtrees
https://bugs.webkit.org/show_bug.cgi?id=233631
Reviewed by Simon Fraser.
Add a temporary (single style resolution/invalidation scoped) cache that remembers whether
a given :has() argument has any matches in a subtree. This avoids repeated tree walks in
presence of very generic descendant matching :has() selectors.
- css/SelectorChecker.cpp:
(WebCore::SelectorChecker::checkOne const):
This optimization can be used if the :has() not matching wasn't about the scope.
(WebCore::SelectorChecker::matchHasPseudoClass const):
When we traverse a subtree and find no matches for a has selector add a cache entry saying so.
Before traversing test if any of the ancestors elements already have a cache entry saying there
are no matches in this subtree for this selector.
- css/SelectorChecker.h:
- style/ElementRuleCollector.cpp:
(WebCore::Style::ElementRuleCollector::ruleMatches):
- style/SelectorMatchingState.h:
(WebCore::Style::makeHasPseudoClassCacheKey):
Add the cache to SelectorMatchingState. It is available when selector filter is.
- 8:44 AM Changeset in webkit [286301] by
-
- 10 edits in trunk/Source
Migrate some WebSWClientConnection messages to async replies
https://bugs.webkit.org/show_bug.cgi?id=233627
Reviewed by Chris Dumez.
Source/WebCore:
Migrate whenRegistrationReady to use a callback.
Use completion handler for whenRegistrationReady as AsyncReply uses CompletionHandler
and use optional to mark that the registration will never be resolved.
Covered by existing tests.
- workers/service/server/SWServer.cpp:
(WebCore::SWServer::Connection::whenRegistrationReady):
(WebCore::SWServer::Connection::resolveRegistrationReadyRequests):
- workers/service/server/SWServer.h:
Source/WebKit:
Migrate didMatchRegistration, didGetRegistrations and registrationReady to async replies.
This is easier to understand and is more robust to connection closure.
- NetworkProcess/ServiceWorker/WebSWServerConnection.cpp:
(WebKit::WebSWServerConnection::matchRegistration):
(WebKit::WebSWServerConnection::getRegistrations):
- NetworkProcess/ServiceWorker/WebSWServerConnection.h:
- NetworkProcess/ServiceWorker/WebSWServerConnection.messages.in:
- WebProcess/Storage/WebSWClientConnection.cpp:
(WebKit::WebSWClientConnection::matchRegistration):
(WebKit::WebSWClientConnection::whenRegistrationReady):
(WebKit::WebSWClientConnection::getRegistrations):
(WebKit::WebSWClientConnection::clear):
(WebKit::WebSWClientConnection::didMatchRegistration): Deleted.
(WebKit::WebSWClientConnection::didGetRegistrations): Deleted.
(WebKit::WebSWClientConnection::registrationReady): Deleted.
- WebProcess/Storage/WebSWClientConnection.h:
- WebProcess/Storage/WebSWClientConnection.messages.in:
- 8:32 AM Changeset in webkit [286300] by
-
- 11 edits2 deletes in trunk
Move TransformStreamAPIEnabled flag to Settings
https://bugs.webkit.org/show_bug.cgi?id=233524
Reviewed by Chris Dumez.
Source/WebCore:
Covered by existing tests.
- Modules/streams/TransformStream.idl:
- Modules/streams/TransformStreamDefaultController.idl:
- dom/TextDecoderStream.idl:
- dom/TextDecoderStreamDecoder.idl:
- dom/TextEncoderStream.idl:
- dom/TextEncoderStreamEncoder.idl:
- page/RuntimeEnabledFeatures.h:
(WebCore::RuntimeEnabledFeatures::readableByteStreamAPIEnabled const):
(WebCore::RuntimeEnabledFeatures::setTransformStreamAPIEnabled): Deleted.
(WebCore::RuntimeEnabledFeatures::transformStreamAPIEnabled const): Deleted.
Source/WTF:
- Scripts/Preferences/WebPreferencesExperimental.yaml:
LayoutTests:
- platform/win/streams/reference-implementation/transform-stream-errors-expected.txt: Removed.
- platform/win/streams/reference-implementation/transform-stream-expected.txt: Removed.
- platform/wincairo/streams/reference-implementation/transform-stream-errors-expected.txt: Removed.
- platform/wincairo/streams/reference-implementation/transform-stream-expected.txt: Removed.
- 8:27 AM Changeset in webkit [286299] by
-
- 8 edits in trunk
ServiceWorkerContainer does not respond well to network process crash
https://bugs.webkit.org/show_bug.cgi?id=233626
Reviewed by Chris Dumez.
Source/WebCore:
Add a boolean to SWClientConnection to identify whether connection is closed.
ServiceWorkerContainer will retrieve a new connection if its existing connection is closed.
Covered by updated test.
- workers/service/SWClientConnection.h:
(WebCore::SWClientConnection::isClosed const):
(WebCore::SWClientConnection::setIsClosed):
- workers/service/ServiceWorkerContainer.cpp:
(WebCore::ServiceWorkerContainer::ensureSWClientConnection):
Source/WebKit:
Set SW client connection as closed when IPC connection gets closed.
- WebProcess/Storage/WebSWClientConnection.cpp:
(WebKit::WebSWClientConnection::connectionToServerLost):
LayoutTests:
- http/wpt/service-workers/service-worker-networkprocess-crash.html:
- platform/mac-wk2/TestExpectations:
Remove flaky expectation as test is no longer flaky according results.webkit.org.
- 8:20 AM Changeset in webkit [286298] by
-
- 5 edits in trunk/Tools
AX: Reduce repetition in retrieving typed attribute values in AccessibilityUIElementMac
https://bugs.webkit.org/show_bug.cgi?id=233603
Reviewed by Chris Fleizach.
We have a lot of functions in both the WebKitTestRunner and DumpRenderTree versions of
AccessibilityUIElementMac that repeat the same logic for getting a typed attribute value.
We can make this simpler.
- DumpRenderTree/AccessibilityUIElement.h:
- DumpRenderTree/mac/AccessibilityUIElementMac.mm:
(AccessibilityUIElement::stringAttributeValue):
Move core logic to new stringAttributeValue(NSString* attribute) function.
(AccessibilityUIElement::stringAttributeValue const): Added.
(AccessibilityUIElement::numberAttributeValue):
Move core logic to new numberAttributeValue(NSString* attribute) function.
(AccessibilityUIElement::numberAttributeValue const): Added.
(AccessibilityUIElement::boolAttributeValue const): Added.
(AccessibilityUIElement::boolAttributeValue):
Move core logic to new boolAttributeValue(NSString* attribute) function.
(AccessibilityUIElement::domIdentifier const):
(AccessibilityUIElement::intValue const):
(AccessibilityUIElement::minValue):
(AccessibilityUIElement::maxValue):
(AccessibilityUIElement::isEnabled):
(AccessibilityUIElement::isRequired const):
(AccessibilityUIElement::isFocused const):
(AccessibilityUIElement::isSelected const):
(AccessibilityUIElement::isExpanded const):
(AccessibilityUIElement::ariaIsGrabbed const):
(AccessibilityUIElement::documentEncoding):
(AccessibilityUIElement::documentURI):
(AccessibilityUIElement::isOnScreen const):
(AccessibilityUIElement::hasPopup const):
(AccessibilityUIElement::popupValue const):
(AccessibilityUIElement::hasDocumentRoleAncestor const):
(AccessibilityUIElement::hasWebApplicationAncestor const):
(AccessibilityUIElement::isInDescriptionListDetail const):
(AccessibilityUIElement::isInDescriptionListTerm const):
(AccessibilityUIElement::isInCell const):
Refactor to use newNSString *attribute
convenience functions.
- WebKitTestRunner/InjectedBundle/AccessibilityUIElement.h:
- WebKitTestRunner/InjectedBundle/mac/AccessibilityUIElementMac.mm:
(WTR::AccessibilityUIElement::stringAttributeValue):
Move core logic to new stringAttributeValue(NSString* attribute) function.
(WTR::AccessibilityUIElement::stringAttributeValue const): Added.
(WTR::AccessibilityUIElement::numberAttributeValue):
Move core logic to new numberAttributeValue(NSString* attribute) function.
(WTR::AccessibilityUIElement::numberAttributeValue const): Added.
(WTR::AccessibilityUIElement::boolAttributeValue const): Added.
(WTR::AccessibilityUIElement::boolAttributeValue):
Move core logic to new boolAttributeValue(NSString* attribute) function.
(WTR::AccessibilityUIElement::domIdentifier const):
(WTR::AccessibilityUIElement::intValue const):
(WTR::AccessibilityUIElement::minValue):
(WTR::AccessibilityUIElement::maxValue):
(WTR::AccessibilityUIElement::isEnabled):
(WTR::AccessibilityUIElement::isRequired const):
(WTR::AccessibilityUIElement::isFocused const):
(WTR::AccessibilityUIElement::isExpanded const):
(WTR::AccessibilityUIElement::currentStateValue const):
(WTR::AccessibilityUIElement::sortDirection const):
(WTR::AccessibilityUIElement::ariaIsGrabbed const):
(WTR::AccessibilityUIElement::documentEncoding):
(WTR::AccessibilityUIElement::documentURI):
(WTR::AccessibilityUIElement::hasPopup const):
(WTR::AccessibilityUIElement::popupValue const):
(WTR::AccessibilityUIElement::hasDocumentRoleAncestor const):
(WTR::AccessibilityUIElement::hasWebApplicationAncestor const):
(WTR::AccessibilityUIElement::isInDescriptionListDetail const):
(WTR::AccessibilityUIElement::isInDescriptionListTerm const):
(WTR::AccessibilityUIElement::isInCell const):
Refactor to use newNSString *attribute
convenience functions.
- 8:09 AM Changeset in webkit [286297] by
-
- 2 edits in trunk/LayoutTests
[GLIB] REGRESSION(r268539): imported/w3c/web-platform-tests/webaudio/the-audio-api/the-stereopanner-interface/no-dezippering.html is failing
https://bugs.webkit.org/show_bug.cgi?id=217845
<rdar://problem/85865551>
Unreviewed, unskip test as it appears it got fixed by r286264.
- platform/glib/TestExpectations:
- 7:44 AM Changeset in webkit [286296] by
-
- 16 edits1 delete in trunk/Source/JavaScriptCore
[JSC] Unify most Baseline ops between JSVALUE64 and JSVALUE32_64
https://bugs.webkit.org/show_bug.cgi?id=233424
Patch by Geza Lore <Geza Lore> on 2021-11-30
Reviewed by Yusuke Suzuki.
This patch unifies the Baseline JIT implementations of most bytecode
ops between the JSVALUE32_64 and JSVALUE64 platforms. There are very
few changes to the generated code on JSVALUE64 (and all are fairly
trivial, e.g.: removal of redundant moves in the slow path), apart
from machine register substitutions. My measurements on x86_64
indicate the patch is performance neutral there (which is what we
expect).
On ARMv7/Thumb-2 JetStream2 shows a 0.4% improvement. This is due to
some of the improved implementations picked up from the JSVALUE64
versions.
Also remove various unused code.
- JavaScriptCore.xcodeproj/project.pbxproj:
- Sources.txt:
- bytecode/StructureStubInfo.cpp:
(JSC::StructureStubInfo::initializeFromUnlinkedStructureStubInfo):
- jit/AssemblyHelpers.h:
(JSC::AssemblyHelpers::branchIfBoolean):
(JSC::AssemblyHelpers::branchIfNotBoolean):
(JSC::AssemblyHelpers::isUndefined):
- jit/GPRInfo.h:
- jit/JIT.cpp:
- jit/JIT.h:
- jit/JITArithmetic.cpp:
(JSC::JIT::emit_op_unsigned):
(JSC::JIT::emit_compareAndJumpImpl):
(JSC::JIT::emit_compareUnsignedAndJumpImpl):
(JSC::JIT::emit_compareUnsignedImpl):
(JSC::JIT::emit_compareAndJumpSlowImpl):
(JSC::JIT::emit_op_inc):
(JSC::JIT::emit_op_dec):
(JSC::JIT::emit_op_mod):
(JSC::JIT::emitBitBinaryOpFastPath):
(JSC::JIT::emit_op_bitnot):
(JSC::JIT::emitRightShiftFastPath):
(JSC::JIT::emitMathICFast):
(JSC::JIT::emitMathICSlow):
(JSC::JIT::emit_op_div):
- jit/JITArithmetic32_64.cpp: Removed.
- jit/JITInlineCacheGenerator.h:
- jit/JITInlines.h:
(JSC::JIT::emitGetVirtualRegisterPayload):
(JSC::JIT::emitPutVirtualRegister):
(JSC::JIT::emitJumpSlowCaseIfNotInt):
(JSC::JIT::loadCodeBlockConstantPayload):
- jit/JITOpcodes.cpp:
(JSC::JIT::emit_op_overrides_has_instance):
(JSC::JIT::emit_op_instanceof):
(JSC::JIT::emitSlow_op_instanceof):
(JSC::JIT::emit_op_is_empty):
(JSC::JIT::emit_op_typeof_is_undefined):
(JSC::JIT::emit_op_is_boolean):
(JSC::JIT::emit_op_is_number):
(JSC::JIT::emit_op_is_big_int):
(JSC::JIT::emit_op_is_cell_with_type):
(JSC::JIT::emit_op_is_object):
(JSC::JIT::emit_op_to_primitive):
(JSC::JIT::emit_op_to_property_key):
(JSC::JIT::emit_op_not):
(JSC::JIT::emit_op_jundefined_or_null):
(JSC::JIT::emit_op_jnundefined_or_null):
(JSC::JIT::emit_op_jeq_ptr):
(JSC::JIT::emit_op_jneq_ptr):
(JSC::JIT::emit_op_eq):
(JSC::JIT::emit_op_neq):
(JSC::JIT::compileOpStrictEq):
(JSC::JIT::emit_op_to_number):
(JSC::JIT::emit_op_to_numeric):
(JSC::JIT::emit_op_to_string):
(JSC::JIT::emit_op_to_object):
(JSC::JIT::emit_op_catch):
(JSC::JIT::emit_op_get_parent_scope):
(JSC::JIT::emit_op_get_scope):
(JSC::JIT::emit_op_to_this):
(JSC::JIT::emit_op_check_tdz):
(JSC::JIT::emit_op_new_regexp):
(JSC::JIT::emit_op_get_rest_length):
(JSC::JIT::emit_op_get_prototype_of):
- jit/JITOpcodes32_64.cpp:
(JSC::JIT::compileOpEqCommon):
(JSC::JIT::compileOpEqSlowCommon):
(JSC::JIT::emit_op_eq):
(JSC::JIT::emit_op_neq):
(JSC::JIT::emit_op_jeq):
(JSC::JIT::emit_op_jneq):
(JSC::JIT::emitSlow_op_eq):
(JSC::JIT::emitSlow_op_neq):
(JSC::JIT::emitSlow_op_jeq):
(JSC::JIT::emitSlow_op_jneq):
(JSC::JIT::compileOpStrictEqCommon):
(JSC::JIT::emit_op_stricteq):
(JSC::JIT::emit_op_nstricteq):
(JSC::JIT::emit_op_jstricteq):
(JSC::JIT::emit_op_jnstricteq):
(JSC::JIT::emitSlow_op_jstricteq):
(JSC::JIT::emitSlow_op_jnstricteq):
- jit/JITPropertyAccess.cpp:
(JSC::JIT::generateGetByValSlowCase):
(JSC::JIT::emitSlow_op_get_private_name):
(JSC::JIT::emitSlow_op_get_by_id_direct):
(JSC::JIT::emitSlow_op_get_by_id):
(JSC::JIT::emitSlow_op_get_by_id_with_this):
(JSC::JIT::emit_op_enumerator_get_by_val):
(JSC::JIT::emit_enumerator_has_propertyImpl):
(JSC::JIT::emitWriteBarrier):
- jit/JSInterfaceJIT.h:
(JSC::JSInterfaceJIT::emitLoadJSCell):
- 7:24 AM Changeset in webkit [286295] by
-
- 12 edits in trunk/Tools
[git-webkit] Use info log level instead of warning
https://bugs.webkit.org/show_bug.cgi?id=233607
<rdar://problem/85840831>
Reviewed by Ryan Haddad.
- Scripts/libraries/webkitscmpy/webkitscmpy/program/branch.py:
(Branch.branch_point): Log to info instead of warning.
(Branch.main): Ditto.
- Scripts/libraries/webkitscmpy/webkitscmpy/program/checkout.py:
(Checkout.main): Log to info instead of warning.
- Scripts/libraries/webkitscmpy/webkitscmpy/program/land.py:
(Land.main): Log to info instead of warning.
- Scripts/libraries/webkitscmpy/webkitscmpy/program/pull_request.py:
(PullRequest.create_commit): Log to info instead of warning.
(PullRequest.main): Ditto.
- Scripts/libraries/webkitscmpy/webkitscmpy/program/setup.py:
(Setup.github): Log to info instead of warning.
(Setup.git): Ditto.
- Scripts/libraries/webkitscmpy/webkitscmpy/test/branch_unittest.py:
(TestBranch.test_basic_git):
(TestBranch.test_prompt_git):
- Scripts/libraries/webkitscmpy/webkitscmpy/test/land_unittest.py:
(TestLand.test_non_editable):
(TestLand.test_with_oops):
(TestLand.test_default):
(TestLand.test_canonicalize):
(TestLand.test_no_svn_canonical_svn):
(TestLand.test_svn):
- Scripts/libraries/webkitscmpy/webkitscmpy/test/pull_request_unittest.py:
- Scripts/libraries/webkitscmpy/webkitscmpy/test/setup_unittest.py:
(TestSetup.test_svn):
(TestSetup.test_github):
Canonical link: https://commits.webkit.org/244654@main
- 7:00 AM Changeset in webkit [286294] by
-
- 3 edits2 adds in trunk
Null check in previousLinePosition
https://bugs.webkit.org/show_bug.cgi?id=233067
Patch by Rob Buis <rbuis@igalia.com> on 2021-11-30
Reviewed by Antti Koivisto.
Source/WebCore:
Null check the iterator closestRunForPoint returns since
it can be null.
Test: editing/selection/move-by-line-crash.html
- editing/VisibleUnits.cpp:
(WebCore::previousLinePosition):
(WebCore::nextLinePosition):
LayoutTests:
- editing/selection/move-by-line-crash-expected.txt: Added.
- editing/selection/move-by-line-crash.html: Added.
- 6:54 AM Changeset in webkit [286293] by
-
- 33 edits1 copy2 moves1 add1 delete in trunk/Source
GraphicsContextGL should have ANGLE-specific subclass
https://bugs.webkit.org/show_bug.cgi?id=233522
Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2021-11-30
Reviewed by Antti Koivisto.
Source/WebCore:
Add GraphicsContextGLANGLE, rename all relevant GraphicsContextGLOpenGL symbols to this.
Leave the implementations in their respective files for ease of review. Also,
some of the symbols might be moved to GraphicsContextGLANGLE subclasses (GraphicsContextGLCocoa
and GraphicsContextGLTextureMapper ANGLE flavor).
GraphicsContextGLOpenGL now means "GraphicsContextGL implemented with OpenGL and OpenGLES".
GraphicsContextGLANGLE means "GraphicsContextGL implemented with ANGLE".
Move GraphicsContextGLOpenGLCommon.cpp into GraphicsContextGLOpenGL.cpp, these now refer to
just the OpenGL implemetation.
Duplicate "rendering result" and "compositing result" functions from GraphicsContextGLOpenGL.cpp
into GraphicsContextGLANGLE.cpp. These are fairly repetitive functions that most likely will
change in the future for ANGLE backend, so the interim duplicated code should not be a big issue.
This is part of work trying to reduce the ifdef use in GraphicsContextGLOpenGL, in order to make
WebGL easier to maintain correctly.
No new tests, a refactor.
- CMakeLists.txt:
- Headers.cmake:
- PlatformMac.cmake:
- Sources.txt:
- SourcesCocoa.txt:
- WebCore.xcodeproj/project.pbxproj:
- platform/graphics/GraphicsContextGL.cpp:
(WebCore::GraphicsContextGL::create): Deleted.
- platform/graphics/GraphicsContextGL.h:
- platform/graphics/GraphicsContextGLState.h: Added.
(WebCore::GraphicsContextGLState::currentBoundTexture const):
(WebCore::GraphicsContextGLState::boundTexture const):
(WebCore::GraphicsContextGLState::currentBoundTarget const):
(WebCore::GraphicsContextGLState::boundTarget const):
(WebCore::GraphicsContextGLState::setBoundTexture):
- platform/graphics/angle/ExtensionsGLANGLE.cpp:
(WebCore::ExtensionsGLANGLE::ExtensionsGLANGLE):
- platform/graphics/angle/ExtensionsGLANGLE.h:
- platform/graphics/angle/GraphicsContextGLANGLE.cpp:
(WebCore::GraphicsContextGLANGLE::drawingBufferTextureTarget):
(WebCore::GraphicsContextGLANGLE::drawingBufferTextureTargetQueryForDrawingTarget):
(WebCore::GraphicsContextGLANGLE::EGLDrawingBufferTextureTargetForDrawingTarget):
(WebCore::GraphicsContextGLANGLE::releaseThreadResources):
(WebCore::GraphicsContextGLANGLE::readPixelsForPaintResults):
(WebCore::GraphicsContextGLANGLE::validateAttributes):
(WebCore::GraphicsContextGLANGLE::reshapeFBOs):
(WebCore::GraphicsContextGLANGLE::attachDepthAndStencilBufferIfNeeded):
(WebCore::GraphicsContextGLANGLE::resolveMultisamplingIfNecessary):
(WebCore::GraphicsContextGLANGLE::renderbufferStorage):
(WebCore::GraphicsContextGLANGLE::getIntegerv):
(WebCore::GraphicsContextGLANGLE::getShaderPrecisionFormat):
(WebCore::GraphicsContextGLANGLE::texImage2D):
(WebCore::GraphicsContextGLANGLE::texSubImage2D):
(WebCore::GraphicsContextGLANGLE::compressedTexImage2D):
(WebCore::GraphicsContextGLANGLE::compressedTexSubImage2D):
(WebCore::GraphicsContextGLANGLE::depthRange):
(WebCore::GraphicsContextGLANGLE::clearDepth):
(WebCore::GraphicsContextGLANGLE::getExtensions):
(WebCore::GraphicsContextGLANGLE::readnPixels):
(WebCore::GraphicsContextGLANGLE::readnPixelsImpl):
(WebCore::GraphicsContextGLANGLE::validateDepthStencil):
(WebCore::GraphicsContextGLANGLE::prepareTexture):
(WebCore::GraphicsContextGLANGLE::prepareTextureImpl):
(WebCore::GraphicsContextGLANGLE::readRenderingResults):
(WebCore::GraphicsContextGLANGLE::reshape):
(WebCore::GraphicsContextGLANGLE::activeTexture):
(WebCore::GraphicsContextGLANGLE::attachShader):
(WebCore::GraphicsContextGLANGLE::bindAttribLocation):
(WebCore::GraphicsContextGLANGLE::bindBuffer):
(WebCore::GraphicsContextGLANGLE::bindFramebuffer):
(WebCore::GraphicsContextGLANGLE::bindRenderbuffer):
(WebCore::GraphicsContextGLANGLE::bindTexture):
(WebCore::GraphicsContextGLANGLE::blendColor):
(WebCore::GraphicsContextGLANGLE::blendEquation):
(WebCore::GraphicsContextGLANGLE::blendEquationSeparate):
(WebCore::GraphicsContextGLANGLE::blendFunc):
(WebCore::GraphicsContextGLANGLE::blendFuncSeparate):
(WebCore::GraphicsContextGLANGLE::bufferData):
(WebCore::GraphicsContextGLANGLE::bufferSubData):
(WebCore::GraphicsContextGLANGLE::getBufferSubData):
(WebCore::GraphicsContextGLANGLE::copyBufferSubData):
(WebCore::GraphicsContextGLANGLE::getInternalformativ):
(WebCore::GraphicsContextGLANGLE::renderbufferStorageMultisample):
(WebCore::GraphicsContextGLANGLE::texStorage2D):
(WebCore::GraphicsContextGLANGLE::texStorage3D):
(WebCore::GraphicsContextGLANGLE::texImage3D):
(WebCore::GraphicsContextGLANGLE::texSubImage3D):
(WebCore::GraphicsContextGLANGLE::compressedTexImage3D):
(WebCore::GraphicsContextGLANGLE::compressedTexSubImage3D):
(WebCore::GraphicsContextGLANGLE::getActiveUniforms):
(WebCore::GraphicsContextGLANGLE::checkFramebufferStatus):
(WebCore::GraphicsContextGLANGLE::clearColor):
(WebCore::GraphicsContextGLANGLE::clear):
(WebCore::GraphicsContextGLANGLE::clearStencil):
(WebCore::GraphicsContextGLANGLE::colorMask):
(WebCore::GraphicsContextGLANGLE::compileShader):
(WebCore::GraphicsContextGLANGLE::compileShaderDirect):
(WebCore::GraphicsContextGLANGLE::texImage2DDirect):
(WebCore::GraphicsContextGLANGLE::copyTexImage2D):
(WebCore::GraphicsContextGLANGLE::copyTexSubImage2D):
(WebCore::GraphicsContextGLANGLE::cullFace):
(WebCore::GraphicsContextGLANGLE::depthFunc):
(WebCore::GraphicsContextGLANGLE::depthMask):
(WebCore::GraphicsContextGLANGLE::detachShader):
(WebCore::GraphicsContextGLANGLE::disable):
(WebCore::GraphicsContextGLANGLE::disableVertexAttribArray):
(WebCore::GraphicsContextGLANGLE::drawArrays):
(WebCore::GraphicsContextGLANGLE::drawElements):
(WebCore::GraphicsContextGLANGLE::enable):
(WebCore::GraphicsContextGLANGLE::enableVertexAttribArray):
(WebCore::GraphicsContextGLANGLE::finish):
(WebCore::GraphicsContextGLANGLE::flush):
(WebCore::GraphicsContextGLANGLE::framebufferRenderbuffer):
(WebCore::GraphicsContextGLANGLE::framebufferTexture2D):
(WebCore::GraphicsContextGLANGLE::frontFace):
(WebCore::GraphicsContextGLANGLE::generateMipmap):
(WebCore::GraphicsContextGLANGLE::getActiveAttribImpl):
(WebCore::GraphicsContextGLANGLE::getActiveAttrib):
(WebCore::GraphicsContextGLANGLE::getActiveUniformImpl):
(WebCore::GraphicsContextGLANGLE::getActiveUniform):
(WebCore::GraphicsContextGLANGLE::getAttachedShaders):
(WebCore::GraphicsContextGLANGLE::getAttribLocation):
(WebCore::GraphicsContextGLANGLE::getAttribLocationDirect):
(WebCore::GraphicsContextGLANGLE::moveErrorsToSyntheticErrorList):
(WebCore::GraphicsContextGLANGLE::getError):
(WebCore::GraphicsContextGLANGLE::getString):
(WebCore::GraphicsContextGLANGLE::hint):
(WebCore::GraphicsContextGLANGLE::isBuffer):
(WebCore::GraphicsContextGLANGLE::isEnabled):
(WebCore::GraphicsContextGLANGLE::isFramebuffer):
(WebCore::GraphicsContextGLANGLE::isProgram):
(WebCore::GraphicsContextGLANGLE::isRenderbuffer):
(WebCore::GraphicsContextGLANGLE::isShader):
(WebCore::GraphicsContextGLANGLE::isTexture):
(WebCore::GraphicsContextGLANGLE::lineWidth):
(WebCore::GraphicsContextGLANGLE::linkProgram):
(WebCore::GraphicsContextGLANGLE::pixelStorei):
(WebCore::GraphicsContextGLANGLE::polygonOffset):
(WebCore::GraphicsContextGLANGLE::sampleCoverage):
(WebCore::GraphicsContextGLANGLE::scissor):
(WebCore::GraphicsContextGLANGLE::shaderSource):
(WebCore::GraphicsContextGLANGLE::stencilFunc):
(WebCore::GraphicsContextGLANGLE::stencilFuncSeparate):
(WebCore::GraphicsContextGLANGLE::stencilMask):
(WebCore::GraphicsContextGLANGLE::stencilMaskSeparate):
(WebCore::GraphicsContextGLANGLE::stencilOp):
(WebCore::GraphicsContextGLANGLE::stencilOpSeparate):
(WebCore::GraphicsContextGLANGLE::texParameterf):
(WebCore::GraphicsContextGLANGLE::texParameteri):
(WebCore::GraphicsContextGLANGLE::uniform1f):
(WebCore::GraphicsContextGLANGLE::uniform1fv):
(WebCore::GraphicsContextGLANGLE::uniform2f):
(WebCore::GraphicsContextGLANGLE::uniform2fv):
(WebCore::GraphicsContextGLANGLE::uniform3f):
(WebCore::GraphicsContextGLANGLE::uniform3fv):
(WebCore::GraphicsContextGLANGLE::uniform4f):
(WebCore::GraphicsContextGLANGLE::uniform4fv):
(WebCore::GraphicsContextGLANGLE::uniform1i):
(WebCore::GraphicsContextGLANGLE::uniform1iv):
(WebCore::GraphicsContextGLANGLE::uniform2i):
(WebCore::GraphicsContextGLANGLE::uniform2iv):
(WebCore::GraphicsContextGLANGLE::uniform3i):
(WebCore::GraphicsContextGLANGLE::uniform3iv):
(WebCore::GraphicsContextGLANGLE::uniform4i):
(WebCore::GraphicsContextGLANGLE::uniform4iv):
(WebCore::GraphicsContextGLANGLE::uniformMatrix2fv):
(WebCore::GraphicsContextGLANGLE::uniformMatrix3fv):
(WebCore::GraphicsContextGLANGLE::uniformMatrix4fv):
(WebCore::GraphicsContextGLANGLE::useProgram):
(WebCore::GraphicsContextGLANGLE::validateProgram):
(WebCore::GraphicsContextGLANGLE::vertexAttrib1f):
(WebCore::GraphicsContextGLANGLE::vertexAttrib1fv):
(WebCore::GraphicsContextGLANGLE::vertexAttrib2f):
(WebCore::GraphicsContextGLANGLE::vertexAttrib2fv):
(WebCore::GraphicsContextGLANGLE::vertexAttrib3f):
(WebCore::GraphicsContextGLANGLE::vertexAttrib3fv):
(WebCore::GraphicsContextGLANGLE::vertexAttrib4f):
(WebCore::GraphicsContextGLANGLE::vertexAttrib4fv):
(WebCore::GraphicsContextGLANGLE::vertexAttribPointer):
(WebCore::GraphicsContextGLANGLE::vertexAttribIPointer):
(WebCore::GraphicsContextGLANGLE::viewport):
(WebCore::GraphicsContextGLANGLE::createVertexArray):
(WebCore::GraphicsContextGLANGLE::deleteVertexArray):
(WebCore::GraphicsContextGLANGLE::isVertexArray):
(WebCore::GraphicsContextGLANGLE::bindVertexArray):
(WebCore::GraphicsContextGLANGLE::getBooleanv):
(WebCore::GraphicsContextGLANGLE::getBufferParameteri):
(WebCore::GraphicsContextGLANGLE::getFloatv):
(WebCore::GraphicsContextGLANGLE::getInteger64):
(WebCore::GraphicsContextGLANGLE::getInteger64i):
(WebCore::GraphicsContextGLANGLE::getFramebufferAttachmentParameteri):
(WebCore::GraphicsContextGLANGLE::getProgrami):
(WebCore::GraphicsContextGLANGLE::getUnmangledInfoLog):
(WebCore::GraphicsContextGLANGLE::getProgramInfoLog):
(WebCore::GraphicsContextGLANGLE::getRenderbufferParameteri):
(WebCore::GraphicsContextGLANGLE::getShaderi):
(WebCore::GraphicsContextGLANGLE::getShaderInfoLog):
(WebCore::GraphicsContextGLANGLE::getShaderSource):
(WebCore::GraphicsContextGLANGLE::getTexParameterf):
(WebCore::GraphicsContextGLANGLE::getTexParameteri):
(WebCore::GraphicsContextGLANGLE::getUniformfv):
(WebCore::GraphicsContextGLANGLE::getUniformiv):
(WebCore::GraphicsContextGLANGLE::getUniformuiv):
(WebCore::GraphicsContextGLANGLE::getUniformLocation):
(WebCore::GraphicsContextGLANGLE::getVertexAttribOffset):
(WebCore::GraphicsContextGLANGLE::createBuffer):
(WebCore::GraphicsContextGLANGLE::createFramebuffer):
(WebCore::GraphicsContextGLANGLE::createProgram):
(WebCore::GraphicsContextGLANGLE::createRenderbuffer):
(WebCore::GraphicsContextGLANGLE::createShader):
(WebCore::GraphicsContextGLANGLE::createTexture):
(WebCore::GraphicsContextGLANGLE::deleteBuffer):
(WebCore::GraphicsContextGLANGLE::deleteFramebuffer):
(WebCore::GraphicsContextGLANGLE::deleteProgram):
(WebCore::GraphicsContextGLANGLE::deleteRenderbuffer):
(WebCore::GraphicsContextGLANGLE::deleteShader):
(WebCore::GraphicsContextGLANGLE::deleteTexture):
(WebCore::GraphicsContextGLANGLE::synthesizeGLError):
(WebCore::GraphicsContextGLANGLE::forceContextLost):
(WebCore::GraphicsContextGLANGLE::recycleContext):
(WebCore::GraphicsContextGLANGLE::dispatchContextChangedNotification):
(WebCore::GraphicsContextGLANGLE::drawArraysInstanced):
(WebCore::GraphicsContextGLANGLE::drawElementsInstanced):
(WebCore::GraphicsContextGLANGLE::vertexAttribDivisor):
(WebCore::GraphicsContextGLANGLE::getUniformBlockIndex):
(WebCore::GraphicsContextGLANGLE::getActiveUniformBlockName):
(WebCore::GraphicsContextGLANGLE::uniformBlockBinding):
(WebCore::GraphicsContextGLANGLE::createQuery):
(WebCore::GraphicsContextGLANGLE::beginQuery):
(WebCore::GraphicsContextGLANGLE::endQuery):
(WebCore::GraphicsContextGLANGLE::getQueryObjectui):
(WebCore::GraphicsContextGLANGLE::createTransformFeedback):
(WebCore::GraphicsContextGLANGLE::deleteTransformFeedback):
(WebCore::GraphicsContextGLANGLE::isTransformFeedback):
(WebCore::GraphicsContextGLANGLE::bindTransformFeedback):
(WebCore::GraphicsContextGLANGLE::beginTransformFeedback):
(WebCore::GraphicsContextGLANGLE::endTransformFeedback):
(WebCore::GraphicsContextGLANGLE::transformFeedbackVaryings):
(WebCore::GraphicsContextGLANGLE::getTransformFeedbackVarying):
(WebCore::GraphicsContextGLANGLE::bindBufferBase):
(WebCore::GraphicsContextGLANGLE::blitFramebuffer):
(WebCore::GraphicsContextGLANGLE::framebufferTextureLayer):
(WebCore::GraphicsContextGLANGLE::invalidateFramebuffer):
(WebCore::GraphicsContextGLANGLE::invalidateSubFramebuffer):
(WebCore::GraphicsContextGLANGLE::readBuffer):
(WebCore::GraphicsContextGLANGLE::copyTexSubImage3D):
(WebCore::GraphicsContextGLANGLE::getFragDataLocation):
(WebCore::GraphicsContextGLANGLE::uniform1ui):
(WebCore::GraphicsContextGLANGLE::uniform2ui):
(WebCore::GraphicsContextGLANGLE::uniform3ui):
(WebCore::GraphicsContextGLANGLE::uniform4ui):
(WebCore::GraphicsContextGLANGLE::uniform1uiv):
(WebCore::GraphicsContextGLANGLE::uniform2uiv):
(WebCore::GraphicsContextGLANGLE::uniform3uiv):
(WebCore::GraphicsContextGLANGLE::uniform4uiv):
(WebCore::GraphicsContextGLANGLE::uniformMatrix2x3fv):
(WebCore::GraphicsContextGLANGLE::uniformMatrix3x2fv):
(WebCore::GraphicsContextGLANGLE::uniformMatrix2x4fv):
(WebCore::GraphicsContextGLANGLE::uniformMatrix4x2fv):
(WebCore::GraphicsContextGLANGLE::uniformMatrix3x4fv):
(WebCore::GraphicsContextGLANGLE::uniformMatrix4x3fv):
(WebCore::GraphicsContextGLANGLE::vertexAttribI4i):
(WebCore::GraphicsContextGLANGLE::vertexAttribI4iv):
(WebCore::GraphicsContextGLANGLE::vertexAttribI4ui):
(WebCore::GraphicsContextGLANGLE::vertexAttribI4uiv):
(WebCore::GraphicsContextGLANGLE::drawRangeElements):
(WebCore::GraphicsContextGLANGLE::drawBuffers):
(WebCore::GraphicsContextGLANGLE::clearBufferiv):
(WebCore::GraphicsContextGLANGLE::clearBufferuiv):
(WebCore::GraphicsContextGLANGLE::clearBufferfv):
(WebCore::GraphicsContextGLANGLE::clearBufferfi):
(WebCore::GraphicsContextGLANGLE::deleteQuery):
(WebCore::GraphicsContextGLANGLE::isQuery):
(WebCore::GraphicsContextGLANGLE::getQuery):
(WebCore::GraphicsContextGLANGLE::createSampler):
(WebCore::GraphicsContextGLANGLE::deleteSampler):
(WebCore::GraphicsContextGLANGLE::isSampler):
(WebCore::GraphicsContextGLANGLE::bindSampler):
(WebCore::GraphicsContextGLANGLE::samplerParameteri):
(WebCore::GraphicsContextGLANGLE::samplerParameterf):
(WebCore::GraphicsContextGLANGLE::getSamplerParameterf):
(WebCore::GraphicsContextGLANGLE::getSamplerParameteri):
(WebCore::GraphicsContextGLANGLE::fenceSync):
(WebCore::GraphicsContextGLANGLE::isSync):
(WebCore::GraphicsContextGLANGLE::deleteSync):
(WebCore::GraphicsContextGLANGLE::clientWaitSync):
(WebCore::GraphicsContextGLANGLE::waitSync):
(WebCore::GraphicsContextGLANGLE::getSynci):
(WebCore::GraphicsContextGLANGLE::pauseTransformFeedback):
(WebCore::GraphicsContextGLANGLE::resumeTransformFeedback):
(WebCore::GraphicsContextGLANGLE::bindBufferRange):
(WebCore::GraphicsContextGLANGLE::getUniformIndices):
(WebCore::GraphicsContextGLANGLE::getActiveUniformBlockiv):
(WebCore::GraphicsContextGLANGLE::multiDrawArraysANGLE):
(WebCore::GraphicsContextGLANGLE::multiDrawArraysInstancedANGLE):
(WebCore::GraphicsContextGLANGLE::multiDrawElementsANGLE):
(WebCore::GraphicsContextGLANGLE::multiDrawElementsInstancedANGLE):
(WebCore::GraphicsContextGLANGLE::waitAndUpdateOldestFrame):
(WebCore::GraphicsContextGLANGLE::simulateEventForTesting):
(WebCore::GraphicsContextGLANGLE::isGLES2Compliant const):
(WebCore::GraphicsContextGLANGLE::paintRenderingResultsToCanvas):
(WebCore::GraphicsContextGLANGLE::paintCompositedResultsToCanvas):
(WebCore::GraphicsContextGLANGLE::paintRenderingResultsToPixelBuffer):
(WebCore::GraphicsContextGLANGLE::readRenderingResultsForPainting):
(WebCore::GraphicsContextGLANGLE::readCompositedResultsForPainting):
(WebCore::GraphicsContextGLOpenGL::drawingBufferTextureTarget): Deleted.
(WebCore::GraphicsContextGLOpenGL::drawingBufferTextureTargetQueryForDrawingTarget): Deleted.
(WebCore::GraphicsContextGLOpenGL::EGLDrawingBufferTextureTargetForDrawingTarget): Deleted.
(WebCore::GraphicsContextGLOpenGL::releaseThreadResources): Deleted.
(WebCore::GraphicsContextGLOpenGL::readPixelsForPaintResults): Deleted.
(WebCore::GraphicsContextGLOpenGL::validateAttributes): Deleted.
(WebCore::GraphicsContextGLOpenGL::reshapeFBOs): Deleted.
(WebCore::GraphicsContextGLOpenGL::attachDepthAndStencilBufferIfNeeded): Deleted.
(WebCore::GraphicsContextGLOpenGL::resolveMultisamplingIfNecessary): Deleted.
(WebCore::GraphicsContextGLOpenGL::renderbufferStorage): Deleted.
(WebCore::GraphicsContextGLOpenGL::getIntegerv): Deleted.
(WebCore::GraphicsContextGLOpenGL::getShaderPrecisionFormat): Deleted.
(WebCore::GraphicsContextGLOpenGL::texImage2D): Deleted.
(WebCore::GraphicsContextGLOpenGL::texSubImage2D): Deleted.
(WebCore::GraphicsContextGLOpenGL::compressedTexImage2D): Deleted.
(WebCore::GraphicsContextGLOpenGL::compressedTexSubImage2D): Deleted.
(WebCore::GraphicsContextGLOpenGL::depthRange): Deleted.
(WebCore::GraphicsContextGLOpenGL::clearDepth): Deleted.
(WebCore::GraphicsContextGLOpenGL::getExtensions): Deleted.
(WebCore::GraphicsContextGLOpenGL::readnPixels): Deleted.
(WebCore::GraphicsContextGLOpenGL::readnPixelsImpl): Deleted.
(WebCore::GraphicsContextGLOpenGL::validateDepthStencil): Deleted.
(WebCore::GraphicsContextGLOpenGL::prepareTexture): Deleted.
(WebCore::GraphicsContextGLOpenGL::prepareTextureImpl): Deleted.
(WebCore::GraphicsContextGLOpenGL::readRenderingResults): Deleted.
(WebCore::GraphicsContextGLOpenGL::reshape): Deleted.
(WebCore::GraphicsContextGLOpenGL::activeTexture): Deleted.
(WebCore::GraphicsContextGLOpenGL::attachShader): Deleted.
(WebCore::GraphicsContextGLOpenGL::bindAttribLocation): Deleted.
(WebCore::GraphicsContextGLOpenGL::bindBuffer): Deleted.
(WebCore::GraphicsContextGLOpenGL::bindFramebuffer): Deleted.
(WebCore::GraphicsContextGLOpenGL::bindRenderbuffer): Deleted.
(WebCore::GraphicsContextGLOpenGL::bindTexture): Deleted.
(WebCore::GraphicsContextGLOpenGL::blendColor): Deleted.
(WebCore::GraphicsContextGLOpenGL::blendEquation): Deleted.
(WebCore::GraphicsContextGLOpenGL::blendEquationSeparate): Deleted.
(WebCore::GraphicsContextGLOpenGL::blendFunc): Deleted.
(WebCore::GraphicsContextGLOpenGL::blendFuncSeparate): Deleted.
(WebCore::GraphicsContextGLOpenGL::bufferData): Deleted.
(WebCore::GraphicsContextGLOpenGL::bufferSubData): Deleted.
(WebCore::GraphicsContextGLOpenGL::getBufferSubData): Deleted.
(WebCore::GraphicsContextGLOpenGL::copyBufferSubData): Deleted.
(WebCore::GraphicsContextGLOpenGL::getInternalformativ): Deleted.
(WebCore::GraphicsContextGLOpenGL::renderbufferStorageMultisample): Deleted.
(WebCore::GraphicsContextGLOpenGL::texStorage2D): Deleted.
(WebCore::GraphicsContextGLOpenGL::texStorage3D): Deleted.
(WebCore::GraphicsContextGLOpenGL::texImage3D): Deleted.
(WebCore::GraphicsContextGLOpenGL::texSubImage3D): Deleted.
(WebCore::GraphicsContextGLOpenGL::compressedTexImage3D): Deleted.
(WebCore::GraphicsContextGLOpenGL::compressedTexSubImage3D): Deleted.
(WebCore::GraphicsContextGLOpenGL::getActiveUniforms): Deleted.
(WebCore::GraphicsContextGLOpenGL::checkFramebufferStatus): Deleted.
(WebCore::GraphicsContextGLOpenGL::clearColor): Deleted.
(WebCore::GraphicsContextGLOpenGL::clear): Deleted.
(WebCore::GraphicsContextGLOpenGL::clearStencil): Deleted.
(WebCore::GraphicsContextGLOpenGL::colorMask): Deleted.
(WebCore::GraphicsContextGLOpenGL::compileShader): Deleted.
(WebCore::GraphicsContextGLOpenGL::compileShaderDirect): Deleted.
(WebCore::GraphicsContextGLOpenGL::texImage2DDirect): Deleted.
(WebCore::GraphicsContextGLOpenGL::copyTexImage2D): Deleted.
(WebCore::GraphicsContextGLOpenGL::copyTexSubImage2D): Deleted.
(WebCore::GraphicsContextGLOpenGL::cullFace): Deleted.
(WebCore::GraphicsContextGLOpenGL::depthFunc): Deleted.
(WebCore::GraphicsContextGLOpenGL::depthMask): Deleted.
(WebCore::GraphicsContextGLOpenGL::detachShader): Deleted.
(WebCore::GraphicsContextGLOpenGL::disable): Deleted.
(WebCore::GraphicsContextGLOpenGL::disableVertexAttribArray): Deleted.
(WebCore::GraphicsContextGLOpenGL::drawArrays): Deleted.
(WebCore::GraphicsContextGLOpenGL::drawElements): Deleted.
(WebCore::GraphicsContextGLOpenGL::enable): Deleted.
(WebCore::GraphicsContextGLOpenGL::enableVertexAttribArray): Deleted.
(WebCore::GraphicsContextGLOpenGL::finish): Deleted.
(WebCore::GraphicsContextGLOpenGL::flush): Deleted.
(WebCore::GraphicsContextGLOpenGL::framebufferRenderbuffer): Deleted.
(WebCore::GraphicsContextGLOpenGL::framebufferTexture2D): Deleted.
(WebCore::GraphicsContextGLOpenGL::frontFace): Deleted.
(WebCore::GraphicsContextGLOpenGL::generateMipmap): Deleted.
(WebCore::GraphicsContextGLOpenGL::getActiveAttribImpl): Deleted.
(WebCore::GraphicsContextGLOpenGL::getActiveAttrib): Deleted.
(WebCore::GraphicsContextGLOpenGL::getActiveUniformImpl): Deleted.
(WebCore::GraphicsContextGLOpenGL::getActiveUniform): Deleted.
(WebCore::GraphicsContextGLOpenGL::getAttachedShaders): Deleted.
(WebCore::GraphicsContextGLOpenGL::getAttribLocation): Deleted.
(WebCore::GraphicsContextGLOpenGL::getAttribLocationDirect): Deleted.
(WebCore::GraphicsContextGLOpenGL::moveErrorsToSyntheticErrorList): Deleted.
(WebCore::GraphicsContextGLOpenGL::getError): Deleted.
(WebCore::GraphicsContextGLOpenGL::getString): Deleted.
(WebCore::GraphicsContextGLOpenGL::hint): Deleted.
(WebCore::GraphicsContextGLOpenGL::isBuffer): Deleted.
(WebCore::GraphicsContextGLOpenGL::isEnabled): Deleted.
(WebCore::GraphicsContextGLOpenGL::isFramebuffer): Deleted.
(WebCore::GraphicsContextGLOpenGL::isProgram): Deleted.
(WebCore::GraphicsContextGLOpenGL::isRenderbuffer): Deleted.
(WebCore::GraphicsContextGLOpenGL::isShader): Deleted.
(WebCore::GraphicsContextGLOpenGL::isTexture): Deleted.
(WebCore::GraphicsContextGLOpenGL::lineWidth): Deleted.
(WebCore::GraphicsContextGLOpenGL::linkProgram): Deleted.
(WebCore::GraphicsContextGLOpenGL::pixelStorei): Deleted.
(WebCore::GraphicsContextGLOpenGL::polygonOffset): Deleted.
(WebCore::GraphicsContextGLOpenGL::sampleCoverage): Deleted.
(WebCore::GraphicsContextGLOpenGL::scissor): Deleted.
(WebCore::GraphicsContextGLOpenGL::shaderSource): Deleted.
(WebCore::GraphicsContextGLOpenGL::stencilFunc): Deleted.
(WebCore::GraphicsContextGLOpenGL::stencilFuncSeparate): Deleted.
(WebCore::GraphicsContextGLOpenGL::stencilMask): Deleted.
(WebCore::GraphicsContextGLOpenGL::stencilMaskSeparate): Deleted.
(WebCore::GraphicsContextGLOpenGL::stencilOp): Deleted.
(WebCore::GraphicsContextGLOpenGL::stencilOpSeparate): Deleted.
(WebCore::GraphicsContextGLOpenGL::texParameterf): Deleted.
(WebCore::GraphicsContextGLOpenGL::texParameteri): Deleted.
(WebCore::GraphicsContextGLOpenGL::uniform1f): Deleted.
(WebCore::GraphicsContextGLOpenGL::uniform1fv): Deleted.
(WebCore::GraphicsContextGLOpenGL::uniform2f): Deleted.
(WebCore::GraphicsContextGLOpenGL::uniform2fv): Deleted.
(WebCore::GraphicsContextGLOpenGL::uniform3f): Deleted.
(WebCore::GraphicsContextGLOpenGL::uniform3fv): Deleted.
(WebCore::GraphicsContextGLOpenGL::uniform4f): Deleted.
(WebCore::GraphicsContextGLOpenGL::uniform4fv): Deleted.
(WebCore::GraphicsContextGLOpenGL::uniform1i): Deleted.
(WebCore::GraphicsContextGLOpenGL::uniform1iv): Deleted.
(WebCore::GraphicsContextGLOpenGL::uniform2i): Deleted.
(WebCore::GraphicsContextGLOpenGL::uniform2iv): Deleted.
(WebCore::GraphicsContextGLOpenGL::uniform3i): Deleted.
(WebCore::GraphicsContextGLOpenGL::uniform3iv): Deleted.
(WebCore::GraphicsContextGLOpenGL::uniform4i): Deleted.
(WebCore::GraphicsContextGLOpenGL::uniform4iv): Deleted.
(WebCore::GraphicsContextGLOpenGL::uniformMatrix2fv): Deleted.
(WebCore::GraphicsContextGLOpenGL::uniformMatrix3fv): Deleted.
(WebCore::GraphicsContextGLOpenGL::uniformMatrix4fv): Deleted.
(WebCore::GraphicsContextGLOpenGL::useProgram): Deleted.
(WebCore::GraphicsContextGLOpenGL::validateProgram): Deleted.
(WebCore::GraphicsContextGLOpenGL::vertexAttrib1f): Deleted.
(WebCore::GraphicsContextGLOpenGL::vertexAttrib1fv): Deleted.
(WebCore::GraphicsContextGLOpenGL::vertexAttrib2f): Deleted.
(WebCore::GraphicsContextGLOpenGL::vertexAttrib2fv): Deleted.
(WebCore::GraphicsContextGLOpenGL::vertexAttrib3f): Deleted.
(WebCore::GraphicsContextGLOpenGL::vertexAttrib3fv): Deleted.
(WebCore::GraphicsContextGLOpenGL::vertexAttrib4f): Deleted.
(WebCore::GraphicsContextGLOpenGL::vertexAttrib4fv): Deleted.
(WebCore::GraphicsContextGLOpenGL::vertexAttribPointer): Deleted.
(WebCore::GraphicsContextGLOpenGL::vertexAttribIPointer): Deleted.
(WebCore::GraphicsContextGLOpenGL::viewport): Deleted.
(WebCore::GraphicsContextGLOpenGL::createVertexArray): Deleted.
(WebCore::GraphicsContextGLOpenGL::deleteVertexArray): Deleted.
(WebCore::GraphicsContextGLOpenGL::isVertexArray): Deleted.
(WebCore::GraphicsContextGLOpenGL::bindVertexArray): Deleted.
(WebCore::GraphicsContextGLOpenGL::getBooleanv): Deleted.
(WebCore::GraphicsContextGLOpenGL::getBufferParameteri): Deleted.
(WebCore::GraphicsContextGLOpenGL::getFloatv): Deleted.
(WebCore::GraphicsContextGLOpenGL::getInteger64): Deleted.
(WebCore::GraphicsContextGLOpenGL::getInteger64i): Deleted.
(WebCore::GraphicsContextGLOpenGL::getFramebufferAttachmentParameteri): Deleted.
(WebCore::GraphicsContextGLOpenGL::getProgrami): Deleted.
(WebCore::GraphicsContextGLOpenGL::getUnmangledInfoLog): Deleted.
(WebCore::GraphicsContextGLOpenGL::getProgramInfoLog): Deleted.
(WebCore::GraphicsContextGLOpenGL::getRenderbufferParameteri): Deleted.
(WebCore::GraphicsContextGLOpenGL::getShaderi): Deleted.
(WebCore::GraphicsContextGLOpenGL::getShaderInfoLog): Deleted.
(WebCore::GraphicsContextGLOpenGL::getShaderSource): Deleted.
(WebCore::GraphicsContextGLOpenGL::getTexParameterf): Deleted.
(WebCore::GraphicsContextGLOpenGL::getTexParameteri): Deleted.
(WebCore::GraphicsContextGLOpenGL::getUniformfv): Deleted.
(WebCore::GraphicsContextGLOpenGL::getUniformiv): Deleted.
(WebCore::GraphicsContextGLOpenGL::getUniformuiv): Deleted.
(WebCore::GraphicsContextGLOpenGL::getUniformLocation): Deleted.
(WebCore::GraphicsContextGLOpenGL::getVertexAttribOffset): Deleted.
(WebCore::GraphicsContextGLOpenGL::createBuffer): Deleted.
(WebCore::GraphicsContextGLOpenGL::createFramebuffer): Deleted.
(WebCore::GraphicsContextGLOpenGL::createProgram): Deleted.
(WebCore::GraphicsContextGLOpenGL::createRenderbuffer): Deleted.
(WebCore::GraphicsContextGLOpenGL::createShader): Deleted.
(WebCore::GraphicsContextGLOpenGL::createTexture): Deleted.
(WebCore::GraphicsContextGLOpenGL::deleteBuffer): Deleted.
(WebCore::GraphicsContextGLOpenGL::deleteFramebuffer): Deleted.
(WebCore::GraphicsContextGLOpenGL::deleteProgram): Deleted.
(WebCore::GraphicsContextGLOpenGL::deleteRenderbuffer): Deleted.
(WebCore::GraphicsContextGLOpenGL::deleteShader): Deleted.
(WebCore::GraphicsContextGLOpenGL::deleteTexture): Deleted.
(WebCore::GraphicsContextGLOpenGL::synthesizeGLError): Deleted.
(WebCore::GraphicsContextGLOpenGL::forceContextLost): Deleted.
(WebCore::GraphicsContextGLOpenGL::recycleContext): Deleted.
(WebCore::GraphicsContextGLOpenGL::dispatchContextChangedNotification): Deleted.
(WebCore::GraphicsContextGLOpenGL::drawArraysInstanced): Deleted.
(WebCore::GraphicsContextGLOpenGL::drawElementsInstanced): Deleted.
(WebCore::GraphicsContextGLOpenGL::vertexAttribDivisor): Deleted.
(WebCore::GraphicsContextGLOpenGL::getUniformBlockIndex): Deleted.
(WebCore::GraphicsContextGLOpenGL::getActiveUniformBlockName): Deleted.
(WebCore::GraphicsContextGLOpenGL::uniformBlockBinding): Deleted.
(WebCore::GraphicsContextGLOpenGL::createQuery): Deleted.
(WebCore::GraphicsContextGLOpenGL::beginQuery): Deleted.
(WebCore::GraphicsContextGLOpenGL::endQuery): Deleted.
(WebCore::GraphicsContextGLOpenGL::getQueryObjectui): Deleted.
(WebCore::GraphicsContextGLOpenGL::createTransformFeedback): Deleted.
(WebCore::GraphicsContextGLOpenGL::deleteTransformFeedback): Deleted.
(WebCore::GraphicsContextGLOpenGL::isTransformFeedback): Deleted.
(WebCore::GraphicsContextGLOpenGL::bindTransformFeedback): Deleted.
(WebCore::GraphicsContextGLOpenGL::beginTransformFeedback): Deleted.
(WebCore::GraphicsContextGLOpenGL::endTransformFeedback): Deleted.
(WebCore::GraphicsContextGLOpenGL::transformFeedbackVaryings): Deleted.
(WebCore::GraphicsContextGLOpenGL::getTransformFeedbackVarying): Deleted.
(WebCore::GraphicsContextGLOpenGL::bindBufferBase): Deleted.
(WebCore::GraphicsContextGLOpenGL::blitFramebuffer): Deleted.
(WebCore::GraphicsContextGLOpenGL::framebufferTextureLayer): Deleted.
(WebCore::GraphicsContextGLOpenGL::invalidateFramebuffer): Deleted.
(WebCore::GraphicsContextGLOpenGL::invalidateSubFramebuffer): Deleted.
(WebCore::GraphicsContextGLOpenGL::readBuffer): Deleted.
(WebCore::GraphicsContextGLOpenGL::copyTexSubImage3D): Deleted.
(WebCore::GraphicsContextGLOpenGL::getFragDataLocation): Deleted.
(WebCore::GraphicsContextGLOpenGL::uniform1ui): Deleted.
(WebCore::GraphicsContextGLOpenGL::uniform2ui): Deleted.
(WebCore::GraphicsContextGLOpenGL::uniform3ui): Deleted.
(WebCore::GraphicsContextGLOpenGL::uniform4ui): Deleted.
(WebCore::GraphicsContextGLOpenGL::uniform1uiv): Deleted.
(WebCore::GraphicsContextGLOpenGL::uniform2uiv): Deleted.
(WebCore::GraphicsContextGLOpenGL::uniform3uiv): Deleted.
(WebCore::GraphicsContextGLOpenGL::uniform4uiv): Deleted.
(WebCore::GraphicsContextGLOpenGL::uniformMatrix2x3fv): Deleted.
(WebCore::GraphicsContextGLOpenGL::uniformMatrix3x2fv): Deleted.
(WebCore::GraphicsContextGLOpenGL::uniformMatrix2x4fv): Deleted.
(WebCore::GraphicsContextGLOpenGL::uniformMatrix4x2fv): Deleted.
(WebCore::GraphicsContextGLOpenGL::uniformMatrix3x4fv): Deleted.
(WebCore::GraphicsContextGLOpenGL::uniformMatrix4x3fv): Deleted.
(WebCore::GraphicsContextGLOpenGL::vertexAttribI4i): Deleted.
(WebCore::GraphicsContextGLOpenGL::vertexAttribI4iv): Deleted.
(WebCore::GraphicsContextGLOpenGL::vertexAttribI4ui): Deleted.
(WebCore::GraphicsContextGLOpenGL::vertexAttribI4uiv): Deleted.
(WebCore::GraphicsContextGLOpenGL::drawRangeElements): Deleted.
(WebCore::GraphicsContextGLOpenGL::drawBuffers): Deleted.
(WebCore::GraphicsContextGLOpenGL::clearBufferiv): Deleted.
(WebCore::GraphicsContextGLOpenGL::clearBufferuiv): Deleted.
(WebCore::GraphicsContextGLOpenGL::clearBufferfv): Deleted.
(WebCore::GraphicsContextGLOpenGL::clearBufferfi): Deleted.
(WebCore::GraphicsContextGLOpenGL::deleteQuery): Deleted.
(WebCore::GraphicsContextGLOpenGL::isQuery): Deleted.
(WebCore::GraphicsContextGLOpenGL::getQuery): Deleted.
(WebCore::GraphicsContextGLOpenGL::createSampler): Deleted.
(WebCore::GraphicsContextGLOpenGL::deleteSampler): Deleted.
(WebCore::GraphicsContextGLOpenGL::isSampler): Deleted.
(WebCore::GraphicsContextGLOpenGL::bindSampler): Deleted.
(WebCore::GraphicsContextGLOpenGL::samplerParameteri): Deleted.
(WebCore::GraphicsContextGLOpenGL::samplerParameterf): Deleted.
(WebCore::GraphicsContextGLOpenGL::getSamplerParameterf): Deleted.
(WebCore::GraphicsContextGLOpenGL::getSamplerParameteri): Deleted.
(WebCore::GraphicsContextGLOpenGL::fenceSync): Deleted.
(WebCore::GraphicsContextGLOpenGL::isSync): Deleted.
(WebCore::GraphicsContextGLOpenGL::deleteSync): Deleted.
(WebCore::GraphicsContextGLOpenGL::clientWaitSync): Deleted.
(WebCore::GraphicsContextGLOpenGL::waitSync): Deleted.
(WebCore::GraphicsContextGLOpenGL::getSynci): Deleted.
(WebCore::GraphicsContextGLOpenGL::pauseTransformFeedback): Deleted.
(WebCore::GraphicsContextGLOpenGL::resumeTransformFeedback): Deleted.
(WebCore::GraphicsContextGLOpenGL::bindBufferRange): Deleted.
(WebCore::GraphicsContextGLOpenGL::getUniformIndices): Deleted.
(WebCore::GraphicsContextGLOpenGL::getActiveUniformBlockiv): Deleted.
(WebCore::GraphicsContextGLOpenGL::multiDrawArraysANGLE): Deleted.
(WebCore::GraphicsContextGLOpenGL::multiDrawArraysInstancedANGLE): Deleted.
(WebCore::GraphicsContextGLOpenGL::multiDrawElementsANGLE): Deleted.
(WebCore::GraphicsContextGLOpenGL::multiDrawElementsInstancedANGLE): Deleted.
(WebCore::GraphicsContextGLOpenGL::waitAndUpdateOldestFrame): Deleted.
- platform/graphics/angle/GraphicsContextGLANGLE.h: Copied from Source/WebCore/platform/graphics/opengl/GraphicsContextGLOpenGL.h.
- platform/graphics/cairo/GraphicsContextGLCairo.cpp:
(WebCore::GraphicsContextGL::paintToCanvas):
(WebCore::GraphicsContextGLOpenGL::paintToCanvas): Deleted.
- platform/graphics/cg/GraphicsContextGLCG.cpp:
(WebCore::GraphicsContextGL::paintToCanvas):
(WebCore::GraphicsContextGLOpenGL::paintToCanvas): Deleted.
Move paintToCanvas from GraphicsContextGLOpenGL to
GraphicsContextGL. It was a generic static function and did not
have any dependency to the GraphicsContextGLOpenGL.
- platform/graphics/cocoa/GraphicsContextGLCocoa.h:
- platform/graphics/cocoa/GraphicsContextGLCocoa.mm:
(WebCore::initializeEGLDisplay):
(WebCore::GraphicsContextGLCocoa::GraphicsContextGLCocoa):
(WebCore::GraphicsContextGLANGLE::GraphicsContextGLANGLE):
(WebCore::GraphicsContextGLANGLE::~GraphicsContextGLANGLE):
(WebCore::GraphicsContextGLANGLE::platformLayer const):
(WebCore::GraphicsContextGLANGLE::makeContextCurrent):
(WebCore::GraphicsContextGLANGLE::checkGPUStatus):
(WebCore::GraphicsContextGLANGLE::setContextVisibility):
(WebCore::GraphicsContextGLANGLE::displayWasReconfigured):
(WebCore::GraphicsContextGLANGLE::reshapeDisplayBufferBacking):
(WebCore::GraphicsContextGLANGLE::allocateAndBindDisplayBufferBacking):
(WebCore::GraphicsContextGLANGLE::bindDisplayBufferBacking):
(WebCore::GraphicsContextGLANGLE::makeCurrent):
(WebCore::GraphicsContextGLCocoa::createPbufferAndAttachIOSurface):
(WebCore::GraphicsContextGLANGLE::prepareForDisplay):
(WebCore::GraphicsContextGLCocoa::asCV):
(WebCore::GraphicsContextGLANGLE::readCompositedResults):
(WebCore::GraphicsContextGLANGLE::paintCompositedResultsToMediaSample):
(WebCore::GraphicsContextGLANGLE::platformReleaseThreadResources):
(WebCore::GraphicsContextGLOpenGL::GraphicsContextGLOpenGL): Deleted.
(WebCore::GraphicsContextGLOpenGL::~GraphicsContextGLOpenGL): Deleted.
(WebCore::GraphicsContextGLOpenGL::platformLayer const): Deleted.
(WebCore::GraphicsContextGLOpenGL::makeContextCurrent): Deleted.
(WebCore::GraphicsContextGLOpenGL::checkGPUStatus): Deleted.
(WebCore::GraphicsContextGLOpenGL::setContextVisibility): Deleted.
(WebCore::GraphicsContextGLOpenGL::displayWasReconfigured): Deleted.
(WebCore::GraphicsContextGLOpenGL::reshapeDisplayBufferBacking): Deleted.
(WebCore::GraphicsContextGLOpenGL::allocateAndBindDisplayBufferBacking): Deleted.
(WebCore::GraphicsContextGLOpenGL::bindDisplayBufferBacking): Deleted.
(WebCore::GraphicsContextGLOpenGL::makeCurrent): Deleted.
(WebCore::GraphicsContextGLOpenGL::isGLES2Compliant const): Deleted.
(WebCore::GraphicsContextGLOpenGL::simulateEventForTesting): Deleted.
(WebCore::GraphicsContextGLOpenGL::prepareForDisplay): Deleted.
(WebCore::GraphicsContextGLOpenGL::asCV): Deleted.
(WebCore::GraphicsContextGLOpenGL::readCompositedResults): Deleted.
(WebCore::GraphicsContextGLOpenGL::paintCompositedResultsToMediaSample): Deleted.
(WebCore::GraphicsContextGLOpenGL::platformReleaseThreadResources): Deleted.
- platform/graphics/cv/GraphicsContextGLCVCocoa.cpp: Renamed from Source/WebCore/platform/graphics/cv/GraphicsContextGLCVANGLE.cpp.
(WebCore::GraphicsContextGLCVCocoa::create):
(WebCore::GraphicsContextGLCVCocoa::~GraphicsContextGLCVCocoa):
(WebCore::GraphicsContextGLCVCocoa::GraphicsContextGLCVCocoa):
(WebCore::GraphicsContextGLCVCocoa::copyPixelBufferToTexture):
- platform/graphics/cv/GraphicsContextGLCVCocoa.h: Renamed from Source/WebCore/platform/graphics/cv/GraphicsContextGLCVANGLE.h.
- platform/graphics/opengl/GraphicsContextGLOpenGL.cpp:
(WebCore::setCurrentNameHashMapForShader):
(WebCore::nameHashForShader):
(WebCore::GraphicsContextGLOpenGL::validateDepthStencil):
(WebCore::GraphicsContextGLOpenGL::prepareTexture):
(WebCore::GraphicsContextGLOpenGL::readRenderingResults):
(WebCore::GraphicsContextGLOpenGL::reshape):
(WebCore::GraphicsContextGLOpenGL::checkVaryingsPacking const):
(WebCore::GraphicsContextGLOpenGL::precisionsMatch const):
(WebCore::GraphicsContextGLOpenGL::activeTexture):
(WebCore::GraphicsContextGLOpenGL::attachShader):
(WebCore::GraphicsContextGLOpenGL::bindAttribLocation):
(WebCore::GraphicsContextGLOpenGL::bindBuffer):
(WebCore::GraphicsContextGLOpenGL::bindFramebuffer):
(WebCore::GraphicsContextGLOpenGL::bindRenderbuffer):
(WebCore::GraphicsContextGLOpenGL::bindTexture):
(WebCore::GraphicsContextGLOpenGL::blendColor):
(WebCore::GraphicsContextGLOpenGL::blendEquation):
(WebCore::GraphicsContextGLOpenGL::blendEquationSeparate):
(WebCore::GraphicsContextGLOpenGL::blendFunc):
(WebCore::GraphicsContextGLOpenGL::blendFuncSeparate):
(WebCore::GraphicsContextGLOpenGL::bufferData):
(WebCore::GraphicsContextGLOpenGL::bufferSubData):
(WebCore::GraphicsContextGLOpenGL::checkFramebufferStatus):
(WebCore::GraphicsContextGLOpenGL::clearColor):
(WebCore::GraphicsContextGLOpenGL::clear):
(WebCore::GraphicsContextGLOpenGL::clearStencil):
(WebCore::GraphicsContextGLOpenGL::colorMask):
(WebCore::GraphicsContextGLOpenGL::compileShader):
(WebCore::GraphicsContextGLOpenGL::compileShaderDirect):
(WebCore::GraphicsContextGLOpenGL::copyTexImage2D):
(WebCore::GraphicsContextGLOpenGL::copyTexSubImage2D):
(WebCore::GraphicsContextGLOpenGL::cullFace):
(WebCore::GraphicsContextGLOpenGL::depthFunc):
(WebCore::GraphicsContextGLOpenGL::depthMask):
(WebCore::GraphicsContextGLOpenGL::detachShader):
(WebCore::GraphicsContextGLOpenGL::disable):
(WebCore::GraphicsContextGLOpenGL::disableVertexAttribArray):
(WebCore::GraphicsContextGLOpenGL::drawArrays):
(WebCore::GraphicsContextGLOpenGL::drawElements):
(WebCore::GraphicsContextGLOpenGL::enable):
(WebCore::GraphicsContextGLOpenGL::enableVertexAttribArray):
(WebCore::GraphicsContextGLOpenGL::finish):
(WebCore::GraphicsContextGLOpenGL::flush):
(WebCore::GraphicsContextGLOpenGL::framebufferRenderbuffer):
(WebCore::GraphicsContextGLOpenGL::framebufferTexture2D):
(WebCore::GraphicsContextGLOpenGL::frontFace):
(WebCore::GraphicsContextGLOpenGL::generateMipmap):
(WebCore::GraphicsContextGLOpenGL::getActiveAttribImpl):
(WebCore::GraphicsContextGLOpenGL::getActiveAttrib):
(WebCore::GraphicsContextGLOpenGL::getActiveUniformImpl):
(WebCore::GraphicsContextGLOpenGL::getActiveUniform):
(WebCore::GraphicsContextGLOpenGL::getAttachedShaders):
(WebCore::generateHashedName):
(WebCore::GraphicsContextGLOpenGL::mappedSymbolInShaderSourceMap):
(WebCore::GraphicsContextGLOpenGL::mappedSymbolName):
(WebCore::GraphicsContextGLOpenGL::originalSymbolInShaderSourceMap):
(WebCore::GraphicsContextGLOpenGL::originalSymbolName):
(WebCore::GraphicsContextGLOpenGL::getAttribLocation):
(WebCore::GraphicsContextGLOpenGL::getAttribLocationDirect):
(WebCore::GraphicsContextGLOpenGL::moveErrorsToSyntheticErrorList):
(WebCore::GraphicsContextGLOpenGL::getError):
(WebCore::GraphicsContextGLOpenGL::getString):
(WebCore::GraphicsContextGLOpenGL::hint):
(WebCore::GraphicsContextGLOpenGL::isBuffer):
(WebCore::GraphicsContextGLOpenGL::isEnabled):
(WebCore::GraphicsContextGLOpenGL::isFramebuffer):
(WebCore::GraphicsContextGLOpenGL::isProgram):
(WebCore::GraphicsContextGLOpenGL::isRenderbuffer):
(WebCore::GraphicsContextGLOpenGL::isShader):
(WebCore::GraphicsContextGLOpenGL::isTexture):
(WebCore::GraphicsContextGLOpenGL::lineWidth):
(WebCore::GraphicsContextGLOpenGL::linkProgram):
(WebCore::GraphicsContextGLOpenGL::pixelStorei):
(WebCore::GraphicsContextGLOpenGL::polygonOffset):
(WebCore::GraphicsContextGLOpenGL::sampleCoverage):
(WebCore::GraphicsContextGLOpenGL::scissor):
(WebCore::GraphicsContextGLOpenGL::shaderSource):
(WebCore::GraphicsContextGLOpenGL::stencilFunc):
(WebCore::GraphicsContextGLOpenGL::stencilFuncSeparate):
(WebCore::GraphicsContextGLOpenGL::stencilMask):
(WebCore::GraphicsContextGLOpenGL::stencilMaskSeparate):
(WebCore::GraphicsContextGLOpenGL::stencilOp):
(WebCore::GraphicsContextGLOpenGL::stencilOpSeparate):
(WebCore::GraphicsContextGLOpenGL::texParameterf):
(WebCore::GraphicsContextGLOpenGL::texParameteri):
(WebCore::GraphicsContextGLOpenGL::uniform1f):
(WebCore::GraphicsContextGLOpenGL::uniform1fv):
(WebCore::GraphicsContextGLOpenGL::uniform2f):
(WebCore::GraphicsContextGLOpenGL::uniform2fv):
(WebCore::GraphicsContextGLOpenGL::uniform3f):
(WebCore::GraphicsContextGLOpenGL::uniform3fv):
(WebCore::GraphicsContextGLOpenGL::uniform4f):
(WebCore::GraphicsContextGLOpenGL::uniform4fv):
(WebCore::GraphicsContextGLOpenGL::uniform1i):
(WebCore::GraphicsContextGLOpenGL::uniform1iv):
(WebCore::GraphicsContextGLOpenGL::uniform2i):
(WebCore::GraphicsContextGLOpenGL::uniform2iv):
(WebCore::GraphicsContextGLOpenGL::uniform3i):
(WebCore::GraphicsContextGLOpenGL::uniform3iv):
(WebCore::GraphicsContextGLOpenGL::uniform4i):
(WebCore::GraphicsContextGLOpenGL::uniform4iv):
(WebCore::GraphicsContextGLOpenGL::uniformMatrix2fv):
(WebCore::GraphicsContextGLOpenGL::uniformMatrix3fv):
(WebCore::GraphicsContextGLOpenGL::uniformMatrix4fv):
(WebCore::GraphicsContextGLOpenGL::useProgram):
(WebCore::GraphicsContextGLOpenGL::validateProgram):
(WebCore::GraphicsContextGLOpenGL::vertexAttrib1f):
(WebCore::GraphicsContextGLOpenGL::vertexAttrib1fv):
(WebCore::GraphicsContextGLOpenGL::vertexAttrib2f):
(WebCore::GraphicsContextGLOpenGL::vertexAttrib2fv):
(WebCore::GraphicsContextGLOpenGL::vertexAttrib3f):
(WebCore::GraphicsContextGLOpenGL::vertexAttrib3fv):
(WebCore::GraphicsContextGLOpenGL::vertexAttrib4f):
(WebCore::GraphicsContextGLOpenGL::vertexAttrib4fv):
(WebCore::GraphicsContextGLOpenGL::vertexAttribPointer):
(WebCore::GraphicsContextGLOpenGL::viewport):
(WebCore::GraphicsContextGLOpenGL::createVertexArray):
(WebCore::GraphicsContextGLOpenGL::deleteVertexArray):
(WebCore::GraphicsContextGLOpenGL::isVertexArray):
(WebCore::GraphicsContextGLOpenGL::bindVertexArray):
(WebCore::GraphicsContextGLOpenGL::getBooleanv):
(WebCore::GraphicsContextGLOpenGL::getBufferParameteri):
(WebCore::GraphicsContextGLOpenGL::getFloatv):
(WebCore::GraphicsContextGLOpenGL::getInteger64):
(WebCore::GraphicsContextGLOpenGL::getInteger64i):
(WebCore::GraphicsContextGLOpenGL::getFramebufferAttachmentParameteri):
(WebCore::GraphicsContextGLOpenGL::getProgrami):
(WebCore::GraphicsContextGLOpenGL::getNonBuiltInActiveSymbolCount):
(WebCore::GraphicsContextGLOpenGL::getUnmangledInfoLog):
(WebCore::GraphicsContextGLOpenGL::getProgramInfoLog):
(WebCore::GraphicsContextGLOpenGL::getRenderbufferParameteri):
(WebCore::GraphicsContextGLOpenGL::getShaderi):
(WebCore::GraphicsContextGLOpenGL::getShaderInfoLog):
(WebCore::GraphicsContextGLOpenGL::getShaderSource):
(WebCore::GraphicsContextGLOpenGL::getTexParameterf):
(WebCore::GraphicsContextGLOpenGL::getTexParameteri):
(WebCore::GraphicsContextGLOpenGL::getUniformfv):
(WebCore::GraphicsContextGLOpenGL::getUniformiv):
(WebCore::GraphicsContextGLOpenGL::getUniformuiv):
(WebCore::GraphicsContextGLOpenGL::getUniformLocation):
(WebCore::GraphicsContextGLOpenGL::getVertexAttribOffset):
(WebCore::GraphicsContextGLOpenGL::texSubImage2D):
(WebCore::GraphicsContextGLOpenGL::compressedTexImage2D):
(WebCore::GraphicsContextGLOpenGL::compressedTexSubImage2D):
(WebCore::GraphicsContextGLOpenGL::createBuffer):
(WebCore::GraphicsContextGLOpenGL::createFramebuffer):
(WebCore::GraphicsContextGLOpenGL::createProgram):
(WebCore::GraphicsContextGLOpenGL::createRenderbuffer):
(WebCore::GraphicsContextGLOpenGL::createShader):
(WebCore::GraphicsContextGLOpenGL::createTexture):
(WebCore::GraphicsContextGLOpenGL::deleteBuffer):
(WebCore::GraphicsContextGLOpenGL::deleteFramebuffer):
(WebCore::GraphicsContextGLOpenGL::deleteProgram):
(WebCore::GraphicsContextGLOpenGL::deleteRenderbuffer):
(WebCore::GraphicsContextGLOpenGL::deleteShader):
(WebCore::GraphicsContextGLOpenGL::deleteTexture):
(WebCore::GraphicsContextGLOpenGL::synthesizeGLError):
(WebCore::GraphicsContextGLOpenGL::forceContextLost):
(WebCore::GraphicsContextGLOpenGL::recycleContext):
(WebCore::GraphicsContextGLOpenGL::dispatchContextChangedNotification):
(WebCore::GraphicsContextGLOpenGL::texImage2DDirect):
(WebCore::GraphicsContextGLOpenGL::drawArraysInstanced):
(WebCore::GraphicsContextGLOpenGL::drawElementsInstanced):
(WebCore::GraphicsContextGLOpenGL::vertexAttribDivisor):
(WebCore::GraphicsContextGLOpenGL::primitiveRestartIndex):
(WebCore::GraphicsContextGLOpenGL::copyBufferSubData):
(WebCore::GraphicsContextGLOpenGL::getBufferSubData):
(WebCore::GraphicsContextGLOpenGL::blitFramebuffer):
(WebCore::GraphicsContextGLOpenGL::framebufferTextureLayer):
(WebCore::GraphicsContextGLOpenGL::invalidateFramebuffer):
(WebCore::GraphicsContextGLOpenGL::invalidateSubFramebuffer):
(WebCore::GraphicsContextGLOpenGL::readBuffer):
(WebCore::GraphicsContextGLOpenGL::getInternalformativ):
(WebCore::GraphicsContextGLOpenGL::renderbufferStorageMultisample):
(WebCore::GraphicsContextGLOpenGL::texStorage2D):
(WebCore::GraphicsContextGLOpenGL::texStorage3D):
(WebCore::GraphicsContextGLOpenGL::copyTexSubImage3D):
(WebCore::GraphicsContextGLOpenGL::getFragDataLocation):
(WebCore::GraphicsContextGLOpenGL::uniform1ui):
(WebCore::GraphicsContextGLOpenGL::uniform2ui):
(WebCore::GraphicsContextGLOpenGL::uniform3ui):
(WebCore::GraphicsContextGLOpenGL::uniform4ui):
(WebCore::GraphicsContextGLOpenGL::uniform1uiv):
(WebCore::GraphicsContextGLOpenGL::uniform2uiv):
(WebCore::GraphicsContextGLOpenGL::uniform3uiv):
(WebCore::GraphicsContextGLOpenGL::uniform4uiv):
(WebCore::GraphicsContextGLOpenGL::uniformMatrix2x3fv):
(WebCore::GraphicsContextGLOpenGL::uniformMatrix3x2fv):
(WebCore::GraphicsContextGLOpenGL::uniformMatrix2x4fv):
(WebCore::GraphicsContextGLOpenGL::uniformMatrix4x2fv):
(WebCore::GraphicsContextGLOpenGL::uniformMatrix3x4fv):
(WebCore::GraphicsContextGLOpenGL::uniformMatrix4x3fv):
(WebCore::GraphicsContextGLOpenGL::vertexAttribI4i):
(WebCore::GraphicsContextGLOpenGL::vertexAttribI4iv):
(WebCore::GraphicsContextGLOpenGL::vertexAttribI4ui):
(WebCore::GraphicsContextGLOpenGL::vertexAttribI4uiv):
(WebCore::GraphicsContextGLOpenGL::vertexAttribIPointer):
(WebCore::GraphicsContextGLOpenGL::drawRangeElements):
(WebCore::GraphicsContextGLOpenGL::drawBuffers):
(WebCore::GraphicsContextGLOpenGL::clearBufferiv):
(WebCore::GraphicsContextGLOpenGL::clearBufferuiv):
(WebCore::GraphicsContextGLOpenGL::clearBufferfv):
(WebCore::GraphicsContextGLOpenGL::clearBufferfi):
(WebCore::GraphicsContextGLOpenGL::createQuery):
(WebCore::GraphicsContextGLOpenGL::deleteQuery):
(WebCore::GraphicsContextGLOpenGL::isQuery):
(WebCore::GraphicsContextGLOpenGL::beginQuery):
(WebCore::GraphicsContextGLOpenGL::endQuery):
(WebCore::GraphicsContextGLOpenGL::getQuery):
(WebCore::GraphicsContextGLOpenGL::getQueryObjectui):
(WebCore::GraphicsContextGLOpenGL::createSampler):
(WebCore::GraphicsContextGLOpenGL::deleteSampler):
(WebCore::GraphicsContextGLOpenGL::isSampler):
(WebCore::GraphicsContextGLOpenGL::bindSampler):
(WebCore::GraphicsContextGLOpenGL::samplerParameteri):
(WebCore::GraphicsContextGLOpenGL::samplerParameterf):
(WebCore::GraphicsContextGLOpenGL::getSamplerParameterf):
(WebCore::GraphicsContextGLOpenGL::getSamplerParameteri):
(WebCore::GraphicsContextGLOpenGL::fenceSync):
(WebCore::GraphicsContextGLOpenGL::isSync):
(WebCore::GraphicsContextGLOpenGL::deleteSync):
(WebCore::GraphicsContextGLOpenGL::clientWaitSync):
(WebCore::GraphicsContextGLOpenGL::waitSync):
(WebCore::GraphicsContextGLOpenGL::getSynci):
(WebCore::GraphicsContextGLOpenGL::createTransformFeedback):
(WebCore::GraphicsContextGLOpenGL::deleteTransformFeedback):
(WebCore::GraphicsContextGLOpenGL::isTransformFeedback):
(WebCore::GraphicsContextGLOpenGL::bindTransformFeedback):
(WebCore::GraphicsContextGLOpenGL::beginTransformFeedback):
(WebCore::GraphicsContextGLOpenGL::endTransformFeedback):
(WebCore::GraphicsContextGLOpenGL::transformFeedbackVaryings):
(WebCore::GraphicsContextGLOpenGL::getTransformFeedbackVarying):
(WebCore::GraphicsContextGLOpenGL::pauseTransformFeedback):
(WebCore::GraphicsContextGLOpenGL::resumeTransformFeedback):
(WebCore::GraphicsContextGLOpenGL::bindBufferBase):
(WebCore::GraphicsContextGLOpenGL::bindBufferRange):
(WebCore::GraphicsContextGLOpenGL::getUniformIndices):
(WebCore::GraphicsContextGLOpenGL::getActiveUniforms):
(WebCore::GraphicsContextGLOpenGL::getUniformBlockIndex):
(WebCore::GraphicsContextGLOpenGL::getActiveUniformBlockName):
(WebCore::GraphicsContextGLOpenGL::uniformBlockBinding):
(WebCore::GraphicsContextGLOpenGL::readnPixels):
(WebCore::GraphicsContextGLOpenGL::getActiveUniformBlockiv):
(WebCore::GraphicsContextGLOpenGL::texImage2D):
(WebCore::GraphicsContextGLOpenGL::texImage3D):
(WebCore::GraphicsContextGLOpenGL::texSubImage3D):
(WebCore::GraphicsContextGLOpenGL::compressedTexImage3D):
(WebCore::GraphicsContextGLOpenGL::compressedTexSubImage3D):
(WebCore::GraphicsContextGLOpenGL::multiDrawArraysANGLE):
(WebCore::GraphicsContextGLOpenGL::multiDrawArraysInstancedANGLE):
(WebCore::GraphicsContextGLOpenGL::multiDrawElementsANGLE):
(WebCore::GraphicsContextGLOpenGL::multiDrawElementsInstancedANGLE):
(WebCore::GraphicsContextGLOpenGL::texImage2DResourceSafe):
- platform/graphics/opengl/GraphicsContextGLOpenGL.h:
- platform/graphics/opengl/GraphicsContextGLOpenGLCommon.cpp: Removed.
(): Deleted.
(WebCore::setCurrentNameHashMapForShader): Deleted.
(WebCore::nameHashForShader): Deleted.
(WebCore::GraphicsContextGLOpenGL::validateDepthStencil): Deleted.
(WebCore::GraphicsContextGLOpenGL::prepareTexture): Deleted.
(WebCore::GraphicsContextGLOpenGL::readRenderingResults): Deleted.
(WebCore::GraphicsContextGLOpenGL::reshape): Deleted.
(WebCore::GraphicsContextGLOpenGL::checkVaryingsPacking const): Deleted.
(WebCore::GraphicsContextGLOpenGL::precisionsMatch const): Deleted.
(WebCore::GraphicsContextGLOpenGL::activeTexture): Deleted.
(WebCore::GraphicsContextGLOpenGL::attachShader): Deleted.
(WebCore::GraphicsContextGLOpenGL::bindAttribLocation): Deleted.
(WebCore::GraphicsContextGLOpenGL::bindBuffer): Deleted.
(WebCore::GraphicsContextGLOpenGL::bindFramebuffer): Deleted.
(WebCore::GraphicsContextGLOpenGL::bindRenderbuffer): Deleted.
(WebCore::GraphicsContextGLOpenGL::bindTexture): Deleted.
(WebCore::GraphicsContextGLOpenGL::blendColor): Deleted.
(WebCore::GraphicsContextGLOpenGL::blendEquation): Deleted.
(WebCore::GraphicsContextGLOpenGL::blendEquationSeparate): Deleted.
(WebCore::GraphicsContextGLOpenGL::blendFunc): Deleted.
(WebCore::GraphicsContextGLOpenGL::blendFuncSeparate): Deleted.
(WebCore::GraphicsContextGLOpenGL::bufferData): Deleted.
(WebCore::GraphicsContextGLOpenGL::bufferSubData): Deleted.
(WebCore::GraphicsContextGLOpenGL::checkFramebufferStatus): Deleted.
(WebCore::GraphicsContextGLOpenGL::clearColor): Deleted.
(WebCore::GraphicsContextGLOpenGL::clear): Deleted.
(WebCore::GraphicsContextGLOpenGL::clearStencil): Deleted.
(WebCore::GraphicsContextGLOpenGL::colorMask): Deleted.
(WebCore::GraphicsContextGLOpenGL::compileShader): Deleted.
(WebCore::GraphicsContextGLOpenGL::compileShaderDirect): Deleted.
(WebCore::GraphicsContextGLOpenGL::copyTexImage2D): Deleted.
(WebCore::GraphicsContextGLOpenGL::copyTexSubImage2D): Deleted.
(WebCore::GraphicsContextGLOpenGL::cullFace): Deleted.
(WebCore::GraphicsContextGLOpenGL::depthFunc): Deleted.
(WebCore::GraphicsContextGLOpenGL::depthMask): Deleted.
(WebCore::GraphicsContextGLOpenGL::detachShader): Deleted.
(WebCore::GraphicsContextGLOpenGL::disable): Deleted.
(WebCore::GraphicsContextGLOpenGL::disableVertexAttribArray): Deleted.
(WebCore::GraphicsContextGLOpenGL::drawArrays): Deleted.
(WebCore::GraphicsContextGLOpenGL::drawElements): Deleted.
(WebCore::GraphicsContextGLOpenGL::enable): Deleted.
(WebCore::GraphicsContextGLOpenGL::enableVertexAttribArray): Deleted.
(WebCore::GraphicsContextGLOpenGL::finish): Deleted.
(WebCore::GraphicsContextGLOpenGL::flush): Deleted.
(WebCore::GraphicsContextGLOpenGL::framebufferRenderbuffer): Deleted.
(WebCore::GraphicsContextGLOpenGL::framebufferTexture2D): Deleted.
(WebCore::GraphicsContextGLOpenGL::frontFace): Deleted.
(WebCore::GraphicsContextGLOpenGL::generateMipmap): Deleted.
(WebCore::GraphicsContextGLOpenGL::getActiveAttribImpl): Deleted.
(WebCore::GraphicsContextGLOpenGL::getActiveAttrib): Deleted.
(WebCore::GraphicsContextGLOpenGL::getActiveUniformImpl): Deleted.
(WebCore::GraphicsContextGLOpenGL::getActiveUniform): Deleted.
(WebCore::GraphicsContextGLOpenGL::getAttachedShaders): Deleted.
(WebCore::generateHashedName): Deleted.
(WebCore::GraphicsContextGLOpenGL::mappedSymbolInShaderSourceMap): Deleted.
(WebCore::GraphicsContextGLOpenGL::mappedSymbolName): Deleted.
(WebCore::GraphicsContextGLOpenGL::originalSymbolInShaderSourceMap): Deleted.
(WebCore::GraphicsContextGLOpenGL::originalSymbolName): Deleted.
(WebCore::GraphicsContextGLOpenGL::getAttribLocation): Deleted.
(WebCore::GraphicsContextGLOpenGL::getAttribLocationDirect): Deleted.
(WebCore::GraphicsContextGLOpenGL::moveErrorsToSyntheticErrorList): Deleted.
(WebCore::GraphicsContextGLOpenGL::getError): Deleted.
(WebCore::GraphicsContextGLOpenGL::getString): Deleted.
(WebCore::GraphicsContextGLOpenGL::hint): Deleted.
(WebCore::GraphicsContextGLOpenGL::isBuffer): Deleted.
(WebCore::GraphicsContextGLOpenGL::isEnabled): Deleted.
(WebCore::GraphicsContextGLOpenGL::isFramebuffer): Deleted.
(WebCore::GraphicsContextGLOpenGL::isProgram): Deleted.
(WebCore::GraphicsContextGLOpenGL::isRenderbuffer): Deleted.
(WebCore::GraphicsContextGLOpenGL::isShader): Deleted.
(WebCore::GraphicsContextGLOpenGL::isTexture): Deleted.
(WebCore::GraphicsContextGLOpenGL::lineWidth): Deleted.
(WebCore::GraphicsContextGLOpenGL::linkProgram): Deleted.
(WebCore::GraphicsContextGLOpenGL::pixelStorei): Deleted.
(WebCore::GraphicsContextGLOpenGL::polygonOffset): Deleted.
(WebCore::GraphicsContextGLOpenGL::sampleCoverage): Deleted.
(WebCore::GraphicsContextGLOpenGL::scissor): Deleted.
(WebCore::GraphicsContextGLOpenGL::shaderSource): Deleted.
(WebCore::GraphicsContextGLOpenGL::stencilFunc): Deleted.
(WebCore::GraphicsContextGLOpenGL::stencilFuncSeparate): Deleted.
(WebCore::GraphicsContextGLOpenGL::stencilMask): Deleted.
(WebCore::GraphicsContextGLOpenGL::stencilMaskSeparate): Deleted.
(WebCore::GraphicsContextGLOpenGL::stencilOp): Deleted.
(WebCore::GraphicsContextGLOpenGL::stencilOpSeparate): Deleted.
(WebCore::GraphicsContextGLOpenGL::texParameterf): Deleted.
(WebCore::GraphicsContextGLOpenGL::texParameteri): Deleted.
(WebCore::GraphicsContextGLOpenGL::uniform1f): Deleted.
(WebCore::GraphicsContextGLOpenGL::uniform1fv): Deleted.
(WebCore::GraphicsContextGLOpenGL::uniform2f): Deleted.
(WebCore::GraphicsContextGLOpenGL::uniform2fv): Deleted.
(WebCore::GraphicsContextGLOpenGL::uniform3f): Deleted.
(WebCore::GraphicsContextGLOpenGL::uniform3fv): Deleted.
(WebCore::GraphicsContextGLOpenGL::uniform4f): Deleted.
(WebCore::GraphicsContextGLOpenGL::uniform4fv): Deleted.
(WebCore::GraphicsContextGLOpenGL::uniform1i): Deleted.
(WebCore::GraphicsContextGLOpenGL::uniform1iv): Deleted.
(WebCore::GraphicsContextGLOpenGL::uniform2i): Deleted.
(WebCore::GraphicsContextGLOpenGL::uniform2iv): Deleted.
(WebCore::GraphicsContextGLOpenGL::uniform3i): Deleted.
(WebCore::GraphicsContextGLOpenGL::uniform3iv): Deleted.
(WebCore::GraphicsContextGLOpenGL::uniform4i): Deleted.
(WebCore::GraphicsContextGLOpenGL::uniform4iv): Deleted.
(WebCore::GraphicsContextGLOpenGL::uniformMatrix2fv): Deleted.
(WebCore::GraphicsContextGLOpenGL::uniformMatrix3fv): Deleted.
(WebCore::GraphicsContextGLOpenGL::uniformMatrix4fv): Deleted.
(WebCore::GraphicsContextGLOpenGL::useProgram): Deleted.
(WebCore::GraphicsContextGLOpenGL::validateProgram): Deleted.
(WebCore::GraphicsContextGLOpenGL::vertexAttrib1f): Deleted.
(WebCore::GraphicsContextGLOpenGL::vertexAttrib1fv): Deleted.
(WebCore::GraphicsContextGLOpenGL::vertexAttrib2f): Deleted.
(WebCore::GraphicsContextGLOpenGL::vertexAttrib2fv): Deleted.
(WebCore::GraphicsContextGLOpenGL::vertexAttrib3f): Deleted.
(WebCore::GraphicsContextGLOpenGL::vertexAttrib3fv): Deleted.
(WebCore::GraphicsContextGLOpenGL::vertexAttrib4f): Deleted.
(WebCore::GraphicsContextGLOpenGL::vertexAttrib4fv): Deleted.
(WebCore::GraphicsContextGLOpenGL::vertexAttribPointer): Deleted.
(WebCore::GraphicsContextGLOpenGL::viewport): Deleted.
(WebCore::GraphicsContextGLOpenGL::createVertexArray): Deleted.
(WebCore::GraphicsContextGLOpenGL::deleteVertexArray): Deleted.
(WebCore::GraphicsContextGLOpenGL::isVertexArray): Deleted.
(WebCore::GraphicsContextGLOpenGL::bindVertexArray): Deleted.
(WebCore::GraphicsContextGLOpenGL::getBooleanv): Deleted.
(WebCore::GraphicsContextGLOpenGL::getBufferParameteri): Deleted.
(WebCore::GraphicsContextGLOpenGL::getFloatv): Deleted.
(WebCore::GraphicsContextGLOpenGL::getInteger64): Deleted.
(WebCore::GraphicsContextGLOpenGL::getInteger64i): Deleted.
(WebCore::GraphicsContextGLOpenGL::getFramebufferAttachmentParameteri): Deleted.
(WebCore::GraphicsContextGLOpenGL::getProgrami): Deleted.
(WebCore::GraphicsContextGLOpenGL::getNonBuiltInActiveSymbolCount): Deleted.
(WebCore::GraphicsContextGLOpenGL::getUnmangledInfoLog): Deleted.
(WebCore::GraphicsContextGLOpenGL::getProgramInfoLog): Deleted.
(WebCore::GraphicsContextGLOpenGL::getRenderbufferParameteri): Deleted.
(WebCore::GraphicsContextGLOpenGL::getShaderi): Deleted.
(WebCore::GraphicsContextGLOpenGL::getShaderInfoLog): Deleted.
(WebCore::GraphicsContextGLOpenGL::getShaderSource): Deleted.
(WebCore::GraphicsContextGLOpenGL::getTexParameterf): Deleted.
(WebCore::GraphicsContextGLOpenGL::getTexParameteri): Deleted.
(WebCore::GraphicsContextGLOpenGL::getUniformfv): Deleted.
(WebCore::GraphicsContextGLOpenGL::getUniformiv): Deleted.
(WebCore::GraphicsContextGLOpenGL::getUniformuiv): Deleted.
(WebCore::GraphicsContextGLOpenGL::getUniformLocation): Deleted.
(WebCore::GraphicsContextGLOpenGL::getVertexAttribOffset): Deleted.
(WebCore::GraphicsContextGLOpenGL::texSubImage2D): Deleted.
(WebCore::GraphicsContextGLOpenGL::compressedTexImage2D): Deleted.
(WebCore::GraphicsContextGLOpenGL::compressedTexSubImage2D): Deleted.
(WebCore::GraphicsContextGLOpenGL::createBuffer): Deleted.
(WebCore::GraphicsContextGLOpenGL::createFramebuffer): Deleted.
(WebCore::GraphicsContextGLOpenGL::createProgram): Deleted.
(WebCore::GraphicsContextGLOpenGL::createRenderbuffer): Deleted.
(WebCore::GraphicsContextGLOpenGL::createShader): Deleted.
(WebCore::GraphicsContextGLOpenGL::createTexture): Deleted.
(WebCore::GraphicsContextGLOpenGL::deleteBuffer): Deleted.
(WebCore::GraphicsContextGLOpenGL::deleteFramebuffer): Deleted.
(WebCore::GraphicsContextGLOpenGL::deleteProgram): Deleted.
(WebCore::GraphicsContextGLOpenGL::deleteRenderbuffer): Deleted.
(WebCore::GraphicsContextGLOpenGL::deleteShader): Deleted.
(WebCore::GraphicsContextGLOpenGL::deleteTexture): Deleted.
(WebCore::GraphicsContextGLOpenGL::synthesizeGLError): Deleted.
(WebCore::GraphicsContextGLOpenGL::forceContextLost): Deleted.
(WebCore::GraphicsContextGLOpenGL::recycleContext): Deleted.
(WebCore::GraphicsContextGLOpenGL::dispatchContextChangedNotification): Deleted.
(WebCore::GraphicsContextGLOpenGL::texImage2DDirect): Deleted.
(WebCore::GraphicsContextGLOpenGL::drawArraysInstanced): Deleted.
(WebCore::GraphicsContextGLOpenGL::drawElementsInstanced): Deleted.
(WebCore::GraphicsContextGLOpenGL::vertexAttribDivisor): Deleted.
(WebCore::GraphicsContextGLOpenGL::primitiveRestartIndex): Deleted.
(WebCore::GraphicsContextGLOpenGL::copyBufferSubData): Deleted.
(WebCore::GraphicsContextGLOpenGL::getBufferSubData): Deleted.
(WebCore::GraphicsContextGLOpenGL::blitFramebuffer): Deleted.
(WebCore::GraphicsContextGLOpenGL::framebufferTextureLayer): Deleted.
(WebCore::GraphicsContextGLOpenGL::invalidateFramebuffer): Deleted.
(WebCore::GraphicsContextGLOpenGL::invalidateSubFramebuffer): Deleted.
(WebCore::GraphicsContextGLOpenGL::readBuffer): Deleted.
(WebCore::GraphicsContextGLOpenGL::getInternalformativ): Deleted.
(WebCore::GraphicsContextGLOpenGL::renderbufferStorageMultisample): Deleted.
(WebCore::GraphicsContextGLOpenGL::texStorage2D): Deleted.
(WebCore::GraphicsContextGLOpenGL::texStorage3D): Deleted.
(WebCore::GraphicsContextGLOpenGL::copyTexSubImage3D): Deleted.
(WebCore::GraphicsContextGLOpenGL::getFragDataLocation): Deleted.
(WebCore::GraphicsContextGLOpenGL::uniform1ui): Deleted.
(WebCore::GraphicsContextGLOpenGL::uniform2ui): Deleted.
(WebCore::GraphicsContextGLOpenGL::uniform3ui): Deleted.
(WebCore::GraphicsContextGLOpenGL::uniform4ui): Deleted.
(WebCore::GraphicsContextGLOpenGL::uniform1uiv): Deleted.
(WebCore::GraphicsContextGLOpenGL::uniform2uiv): Deleted.
(WebCore::GraphicsContextGLOpenGL::uniform3uiv): Deleted.
(WebCore::GraphicsContextGLOpenGL::uniform4uiv): Deleted.
(WebCore::GraphicsContextGLOpenGL::uniformMatrix2x3fv): Deleted.
(WebCore::GraphicsContextGLOpenGL::uniformMatrix3x2fv): Deleted.
(WebCore::GraphicsContextGLOpenGL::uniformMatrix2x4fv): Deleted.
(WebCore::GraphicsContextGLOpenGL::uniformMatrix4x2fv): Deleted.
(WebCore::GraphicsContextGLOpenGL::uniformMatrix3x4fv): Deleted.
(WebCore::GraphicsContextGLOpenGL::uniformMatrix4x3fv): Deleted.
(WebCore::GraphicsContextGLOpenGL::vertexAttribI4i): Deleted.
(WebCore::GraphicsContextGLOpenGL::vertexAttribI4iv): Deleted.
(WebCore::GraphicsContextGLOpenGL::vertexAttribI4ui): Deleted.
(WebCore::GraphicsContextGLOpenGL::vertexAttribI4uiv): Deleted.
(WebCore::GraphicsContextGLOpenGL::vertexAttribIPointer): Deleted.
(WebCore::GraphicsContextGLOpenGL::drawRangeElements): Deleted.
(WebCore::GraphicsContextGLOpenGL::drawBuffers): Deleted.
(WebCore::GraphicsContextGLOpenGL::clearBufferiv): Deleted.
(WebCore::GraphicsContextGLOpenGL::clearBufferuiv): Deleted.
(WebCore::GraphicsContextGLOpenGL::clearBufferfv): Deleted.
(WebCore::GraphicsContextGLOpenGL::clearBufferfi): Deleted.
(WebCore::GraphicsContextGLOpenGL::createQuery): Deleted.
(WebCore::GraphicsContextGLOpenGL::deleteQuery): Deleted.
(WebCore::GraphicsContextGLOpenGL::isQuery): Deleted.
(WebCore::GraphicsContextGLOpenGL::beginQuery): Deleted.
(WebCore::GraphicsContextGLOpenGL::endQuery): Deleted.
(WebCore::GraphicsContextGLOpenGL::getQuery): Deleted.
(WebCore::GraphicsContextGLOpenGL::getQueryObjectui): Deleted.
(WebCore::GraphicsContextGLOpenGL::createSampler): Deleted.
(WebCore::GraphicsContextGLOpenGL::deleteSampler): Deleted.
(WebCore::GraphicsContextGLOpenGL::isSampler): Deleted.
(WebCore::GraphicsContextGLOpenGL::bindSampler): Deleted.
(WebCore::GraphicsContextGLOpenGL::samplerParameteri): Deleted.
(WebCore::GraphicsContextGLOpenGL::samplerParameterf): Deleted.
(WebCore::GraphicsContextGLOpenGL::getSamplerParameterf): Deleted.
(WebCore::GraphicsContextGLOpenGL::getSamplerParameteri): Deleted.
(WebCore::GraphicsContextGLOpenGL::fenceSync): Deleted.
(WebCore::GraphicsContextGLOpenGL::isSync): Deleted.
(WebCore::GraphicsContextGLOpenGL::deleteSync): Deleted.
(WebCore::GraphicsContextGLOpenGL::clientWaitSync): Deleted.
(WebCore::GraphicsContextGLOpenGL::waitSync): Deleted.
(WebCore::GraphicsContextGLOpenGL::getSynci): Deleted.
(WebCore::GraphicsContextGLOpenGL::createTransformFeedback): Deleted.
(WebCore::GraphicsContextGLOpenGL::deleteTransformFeedback): Deleted.
(WebCore::GraphicsContextGLOpenGL::isTransformFeedback): Deleted.
(WebCore::GraphicsContextGLOpenGL::bindTransformFeedback): Deleted.
(WebCore::GraphicsContextGLOpenGL::beginTransformFeedback): Deleted.
(WebCore::GraphicsContextGLOpenGL::endTransformFeedback): Deleted.
(WebCore::GraphicsContextGLOpenGL::transformFeedbackVaryings): Deleted.
(WebCore::GraphicsContextGLOpenGL::getTransformFeedbackVarying): Deleted.
(WebCore::GraphicsContextGLOpenGL::pauseTransformFeedback): Deleted.
(WebCore::GraphicsContextGLOpenGL::resumeTransformFeedback): Deleted.
(WebCore::GraphicsContextGLOpenGL::bindBufferBase): Deleted.
(WebCore::GraphicsContextGLOpenGL::bindBufferRange): Deleted.
(WebCore::GraphicsContextGLOpenGL::getUniformIndices): Deleted.
(WebCore::GraphicsContextGLOpenGL::getActiveUniforms): Deleted.
(WebCore::GraphicsContextGLOpenGL::getUniformBlockIndex): Deleted.
(WebCore::GraphicsContextGLOpenGL::getActiveUniformBlockName): Deleted.
(WebCore::GraphicsContextGLOpenGL::uniformBlockBinding): Deleted.
(WebCore::GraphicsContextGLOpenGL::readnPixels): Deleted.
(WebCore::GraphicsContextGLOpenGL::getActiveUniformBlockiv): Deleted.
(WebCore::GraphicsContextGLOpenGL::texImage2D): Deleted.
(WebCore::GraphicsContextGLOpenGL::texImage3D): Deleted.
(WebCore::GraphicsContextGLOpenGL::texSubImage3D): Deleted.
(WebCore::GraphicsContextGLOpenGL::compressedTexImage3D): Deleted.
(WebCore::GraphicsContextGLOpenGL::compressedTexSubImage3D): Deleted.
(WebCore::GraphicsContextGLOpenGL::multiDrawArraysANGLE): Deleted.
(WebCore::GraphicsContextGLOpenGL::multiDrawArraysInstancedANGLE): Deleted.
(WebCore::GraphicsContextGLOpenGL::multiDrawElementsANGLE): Deleted.
(WebCore::GraphicsContextGLOpenGL::multiDrawElementsInstancedANGLE): Deleted.
(WebCore::GraphicsContextGLOpenGL::texImage2DResourceSafe): Deleted.
- platform/graphics/opengl/GraphicsContextGLOpenGLManager.cpp:
(WebCore::GraphicsContextGLOpenGLManager::addContext):
(WebCore::GraphicsContextGLOpenGLManager::removeContext):
- platform/graphics/opengl/GraphicsContextGLOpenGLManager.h:
- platform/graphics/texmap/GraphicsContextGLTextureMapper.cpp:
(WebCore::GraphicsContextGLOpenGL::isGLES2Compliant const):
- platform/graphics/texmap/GraphicsContextGLTextureMapper.h:
- platform/ios/wak/WebCoreThread.mm:
Source/WebKit:
- GPUProcess/graphics/RemoteGraphicsContextGL.cpp:
(WebKit::RemoteGraphicsContextGL::paintPixelBufferToImageBuffer):
Function paintToCanvas was moved to GraphicsContextGL.
- GPUProcess/graphics/ScopedWebGLRenderingResourcesRequest.cpp:
(WebKit::ScopedWebGLRenderingResourcesRequest::freeWebGLRenderingResources):
Use static functions from GraphicsContextGLANGLE.
- 6:23 AM Changeset in webkit [286292] by
-
- 2 edits in trunk/Source/WebCore
Unreviewed, GTK clang build fix after r286226
- style/RuleFeature.cpp:
(WebCore::Style::RuleFeatureSet::collectFeatures):
- 4:49 AM Changeset in webkit [286291] by
-
- 6 edits in trunk/Source/WebCore
REGRESSION(r269103): this patch is not EME spec compliant
https://bugs.webkit.org/show_bug.cgi?id=233630
Unreviewed, revert r269103. We must validate init data.
Patch by Philippe Normand <pnormand@igalia.com> on 2021-11-30
- Modules/encryptedmedia/CDM.cpp:
(WebCore::CDM::sanitizeInitData):
- platform/encryptedmedia/CDMPrivate.cpp:
(WebCore::CDMPrivate::sanitizeInitData const): Deleted.
- platform/encryptedmedia/CDMPrivate.h:
- platform/graphics/gstreamer/eme/CDMThunder.cpp:
(WebCore::CDMPrivateThunder::supportsInitData const):
(WebCore::CDMPrivateThunder::sanitizeInitData const): Deleted.
- platform/graphics/gstreamer/eme/CDMThunder.h:
- 3:47 AM Changeset in webkit [286290] by
-
- 11 edits4 deletes in trunk/Tools/buildstream
[Flatpak SDK] Update to FDO 21.08.6 release
https://bugs.webkit.org/show_bug.cgi?id=233570
Patch by Philippe Normand <pnormand@igalia.com> on 2021-11-30
Reviewed by Adrian Perez de Castro.
- update to FDO SDK 21.08.6 release, including ccache 4.5.
- update to GStreamer 1.18.5
- update internal pipenv used by bst to pygobject 3.42 (needed for f35 host)
- minor drive-by fixes in gst recipes correcting docker image export, for some reason a manual export of the repo to a docker image triggers gst-inspect-1.0 calls that are expecting user input, so force a non-existant pager as a workaround. This doesn't happen when exporting the repo to flatpak runtimes...
- Pipfile:
- Pipfile.lock:
- elements/freedesktop-sdk.bst:
- elements/sdk/gst-libav.bst:
- elements/sdk/gst-plugin-closedcaption.bst:
- elements/sdk/gst-plugin-dav1d.bst:
- elements/sdk/gst-plugins-bad.bst:
- elements/sdk/gst-plugins-base.bst:
- elements/sdk/gst-plugins-good.bst:
- elements/sdk/gstreamer.bst:
- patches/fdo-sdk-0001-Bump-ccache-to-4.4.2.patch: Removed.
- patches/gst-plugins-base-0001-gst-don-t-use-volatile-to-mean-atomic.patch: Removed.
- patches/gst-plugins-base-0001-gstgl-Fix-build-when-Meson-0.58.0rc1.patch: Removed.
- patches/gst-plugins-good-0001-gst-don-t-use-volatile-to-mean-atomic.patch: Removed.
- 3:46 AM Changeset in webkit [286289] by
-
- 8 edits2 adds1 delete in trunk
Transition from perspective(500px) to 'none' is probably wrong
https://bugs.webkit.org/show_bug.cgi?id=52700
Reviewed by Simon Fraser.
LayoutTests/imported/w3c:
- web-platform-tests/css/css-transforms/animation/transform-interpolation-001-expected.txt:
- web-platform-tests/css/css-transforms/animation/transform-perspective-composition-expected.txt:
Source/WebCore:
Test: animations/3d/animate-to-transform-perpective-to-none.html
Fix the interpolation of the
perspective()
transform function. This
is a port of a similar Chromium CL at:
https://chromium-review.googlesource.com/c/chromium/src/+/2924023
- platform/graphics/transforms/PerspectiveTransformOperation.cpp:
(WebCore::PerspectiveTransformOperation::blend):
- platform/graphics/transforms/PerspectiveTransformOperation.h:
LayoutTests:
- platform/glib/imported/w3c/web-platform-tests/css/css-transforms/animation/transform-interpolation-001-expected.txt: Removed.
- animations/3d/animate-to-transform-perpective-to-none-expected.html: Added.
- animations/3d/animate-to-transform-perpective-to-none.html: Added.
- 2:48 AM Changeset in webkit [286288] by
-
- 11 edits6 adds in trunk
Preload navigation request if the service worker is not immediately ready to handle the navigation request fetch event
https://bugs.webkit.org/show_bug.cgi?id=233471
Reviewed by Chris Dumez.
Source/WebCore:
Add a helper routine.
- loader/FetchOptions.h:
Source/WebKit:
Launching a service worker might take time due to parsing and running the service worker script.
This might delay navigation loads, especially if the service worker is pass through on these loads.
To optimize this code path, we preload the navigation request in case service worker is not running or not yet activated.
We then wait for the service worker to handle the fetch event, which will tell us to either go to the network, in which
case we use the preload, or will provide its own response in which case we use it and cancel the preload.
Test: http/wpt/service-workers/service-worker-preload-when-not-activated.https.html
- NetworkProcess/ServiceWorker/ServiceWorkerFetchTask.cpp:
- NetworkProcess/ServiceWorker/ServiceWorkerFetchTask.h:
- NetworkProcess/ServiceWorker/ServiceWorkerNavigationPreloader.cpp: Added.
- NetworkProcess/ServiceWorker/ServiceWorkerNavigationPreloader.h: Added.
- NetworkProcess/ServiceWorker/WebSWServerConnection.cpp:
- NetworkProcess/ServiceWorker/WebSWServerConnection.h:
- NetworkProcess/webrtc/NetworkMDNSRegister.h:
- Sources.txt:
- WebKit.xcodeproj/project.pbxproj:
LayoutTests:
- http/wpt/service-workers/resources/service-worker-preload-when-not-activated-script.py: Added.
- http/wpt/service-workers/service-worker-preload-when-not-activated-worker.js: Added.
- http/wpt/service-workers/service-worker-preload-when-not-activated.https-expected.txt: Added.
- http/wpt/service-workers/service-worker-preload-when-not-activated.https.html: Added.
- 1:19 AM Changeset in webkit [286287] by
-
- 58 edits in trunk/Source/WebCore
[GPU Process] Calculate the result image rectangle of the FilterEffect in filter coordinates
https://bugs.webkit.org/show_bug.cgi?id=233613
Reviewed by Cameron McCormack.
In this patch:
- determineAbsolutePaintRect() functions are deleted and replaced by calculateImageRect(). The new function returns the image rectangle in filter coordinates. Both the image rectangle in filter coordinates and in user space coordinates will be stored in the result FilterImage.
- FilterConsumer is replaced by Filter::ClipOperation and it is stored in Filter. So there is no need for FilterEffect::m_clipsToBounds.
- resultIsAlphaImage() will take a Vector of FilterImages instead of relying on the input effects. This is a step towards removing the input effects from the FilterEffect.
- Move the maxEffectRect() calculation to Filter and make it also in filter coordinates.
- Make Filter::scaledByFilterScale() just scales a FloatSize. Add other override methods to scale the FloatPoint and FloatRect. Move resolving the relative length to the bounding box in a separate function Filter::resolvedSize() which has to be called explicitly before calling scaledByFilterScale().
- Remove FilterEffect::mapPointFromUserSpaceToBuffer() and replace it by a call to Filter::scaledByFilterScale() followed by a call to FilterImage::mappedAbsolutePoint() since this is what it actually does.
- The SVGFilter and CSSFilter will pass the sourceImageRect in filter coordinates. When creating the sourceImage, sourceImageRect has to be scaled by calling Filter::scaledByFilterScale().
- css/CSSFilterImageValue.cpp:
(WebCore::CSSFilterImageValue::image):
- platform/graphics/GraphicsContext.cpp:
(WebCore::GraphicsContext::drawFilteredImageBuffer):
Scale the context down before drawing the result ImageBuffer and restore
the context back after the drawing. Remove the repeated code from
RenderLayerFilters::applyFilterEffect() and
RenderSVGResourceFilter::postApplyResource().
- platform/graphics/filters/DistantLightSource.cpp:
(WebCore::DistantLightSource::initPaintingData const):
- platform/graphics/filters/DistantLightSource.h:
- platform/graphics/filters/FEColorMatrix.cpp:
(WebCore::FEColorMatrix::resultIsAlphaImage const):
- platform/graphics/filters/FEColorMatrix.h:
- platform/graphics/filters/FEComposite.cpp:
(WebCore::FEComposite::calculateImageRect const):
(WebCore::FEComposite::determineAbsolutePaintRect): Deleted.
- platform/graphics/filters/FEComposite.h:
- platform/graphics/filters/FEConvolveMatrix.cpp:
(WebCore::FEConvolveMatrix::calculateImageRect const):
- platform/graphics/filters/FEConvolveMatrix.h:
(): Deleted.
- platform/graphics/filters/FEDisplacementMap.cpp:
(WebCore::FEDisplacementMap::calculateImageRect const):
- platform/graphics/filters/FEDisplacementMap.h:
- platform/graphics/filters/FEDropShadow.cpp:
(WebCore::FEDropShadow::calculateImageRect const):
(WebCore::FEDropShadow::determineAbsolutePaintRect): Deleted.
- platform/graphics/filters/FEDropShadow.h:
- platform/graphics/filters/FEFlood.cpp:
(WebCore::FEFlood::calculateImageRect const):
- platform/graphics/filters/FEFlood.h:
- platform/graphics/filters/FEGaussianBlur.cpp:
(WebCore::FEGaussianBlur::calculateKernelSize):
(WebCore::FEGaussianBlur::calculateImageRect const):
(WebCore::FEGaussianBlur::resultIsAlphaImage const):
(WebCore::FEGaussianBlur::determineAbsolutePaintRect): Deleted.
- platform/graphics/filters/FEGaussianBlur.h:
- platform/graphics/filters/FELighting.cpp:
(WebCore::FELighting::calculateImageRect const):
- platform/graphics/filters/FELighting.h:
(): Deleted.
- platform/graphics/filters/FEMorphology.cpp:
(WebCore::FEMorphology::calculateImageRect const):
(WebCore::FEMorphology::resultIsAlphaImage const):
(WebCore::FEMorphology::determineAbsolutePaintRect): Deleted.
- platform/graphics/filters/FEMorphology.h:
- platform/graphics/filters/FEOffset.cpp:
(WebCore::FEOffset::calculateImageRect const):
(WebCore::FEOffset::resultIsAlphaImage const):
(WebCore::FEOffset::determineAbsolutePaintRect): Deleted.
- platform/graphics/filters/FEOffset.h:
- platform/graphics/filters/FETile.cpp:
(WebCore::FETile::calculateImageRect const):
(WebCore::FETile::resultIsAlphaImage const):
- platform/graphics/filters/FETile.h:
(): Deleted.
- platform/graphics/filters/FETurbulence.cpp:
(WebCore::FETurbulence::calculateImageRect const):
- platform/graphics/filters/FETurbulence.h:
(): Deleted.
- platform/graphics/filters/Filter.cpp:
(WebCore::Filter::Filter):
(WebCore::Filter::scaledByFilterScale const):
(WebCore::Filter::maxEffectRect const):
(WebCore::Filter::clipToMaxEffectRect const):
- platform/graphics/filters/Filter.h:
(WebCore::Filter::clipOperation const):
(WebCore::Filter::resolvedSize const):
(WebCore::Filter::scaledByFilterScale const): Deleted.
- platform/graphics/filters/FilterEffect.cpp:
(WebCore::FilterEffect::calculateImageRect const):
(WebCore::FilterEffect::determineFilterPrimitiveSubregion):
(WebCore::FilterEffect::apply):
(WebCore::FilterEffect::externalRepresentation const):
(WebCore::FilterEffect::determineAbsolutePaintRect): Deleted.
(WebCore::FilterEffect::clipAbsolutePaintRect): Deleted.
(WebCore::FilterEffect::mapPointFromUserSpaceToBuffer const): Deleted.
- platform/graphics/filters/FilterEffect.h:
(WebCore::FilterEffect::resultIsAlphaImage const):
(WebCore::FilterEffect::absolutePaintRect const): Deleted.
(WebCore::FilterEffect::setAbsolutePaintRect): Deleted.
(WebCore::FilterEffect::setUnclippedAbsoluteSubregion): Deleted.
(WebCore::FilterEffect::clipsToBounds const): Deleted.
(WebCore::FilterEffect::setClipsToBounds): Deleted.
- platform/graphics/filters/FilterImage.cpp:
(WebCore::FilterImage::create):
(WebCore::FilterImage::FilterImage):
(WebCore::FilterImage::maxEffectRect const):
(WebCore::FilterImage::mappedAbsolutePoint const):
- platform/graphics/filters/FilterImage.h:
(WebCore::FilterImage::imageRect const):
- platform/graphics/filters/LightSource.h:
- platform/graphics/filters/PointLightSource.cpp:
(WebCore::PointLightSource::initPaintingData const):
- platform/graphics/filters/PointLightSource.h:
- platform/graphics/filters/SourceAlpha.cpp:
(WebCore::SourceAlpha::calculateImageRect const):
(WebCore::SourceAlpha::determineAbsolutePaintRect): Deleted.
- platform/graphics/filters/SourceAlpha.h:
- platform/graphics/filters/SourceGraphic.cpp:
(WebCore::SourceGraphic::calculateImageRect const):
(WebCore::SourceGraphic::determineAbsolutePaintRect): Deleted.
- platform/graphics/filters/SourceGraphic.h:
- platform/graphics/filters/SpotLightSource.cpp:
(WebCore::SpotLightSource::initPaintingData const):
- platform/graphics/filters/SpotLightSource.h:
- platform/graphics/filters/software/FEDisplacementMapSoftwareApplier.cpp:
(WebCore::FEDisplacementMapSoftwareApplier::apply const):
- platform/graphics/filters/software/FEDropShadowSoftwareApplier.cpp:
(WebCore::FEDropShadowSoftwareApplier::apply const):
- platform/graphics/filters/software/FELightingSoftwareApplier.cpp:
(WebCore::FELightingSoftwareApplier::setPixelInternal):
(WebCore::FELightingSoftwareApplier::applyPlatform):
(WebCore::FELightingSoftwareApplier::apply const):
- platform/graphics/filters/software/FELightingSoftwareApplier.h:
- platform/graphics/filters/software/FEMorphologySoftwareApplier.cpp:
(WebCore::FEMorphologySoftwareApplier::apply const):
- platform/graphics/filters/software/FEOffsetSoftwareApplier.cpp:
(WebCore::FEOffsetSoftwareApplier::apply const):
- rendering/CSSFilter.cpp:
(WebCore::CSSFilter::create):
(WebCore::CSSFilter::CSSFilter):
(WebCore::createBlurEffect):
(WebCore::createSVGFilter):
(WebCore::CSSFilter::buildFilterFunctions):
(WebCore::CSSFilter::setSourceImageRect):
(WebCore::setupLastEffectProperties): Deleted.
- rendering/CSSFilter.h:
- rendering/RenderLayerFilters.cpp:
(WebCore::RenderLayerFilters::buildFilter):
(WebCore::RenderLayerFilters::allocateBackingStore):
(WebCore::RenderLayerFilters::beginFilterEffect):
(WebCore::RenderLayerFilters::applyFilterEffect):
- rendering/svg/RenderSVGResourceFilter.cpp:
(WebCore::RenderSVGResourceFilter::applyResource):
(WebCore::RenderSVGResourceFilter::postApplyResource):
- svg/graphics/filters/SVGFEImage.cpp:
(WebCore::FEImage::calculateImageRect const):
(WebCore::FEImage::determineAbsolutePaintRect): Deleted.
- svg/graphics/filters/SVGFEImage.h:
- svg/graphics/filters/SVGFilter.cpp:
(WebCore::SVGFilter::create):
(WebCore::SVGFilter::SVGFilter):
(WebCore::SVGFilter::resolvedSize const):
(WebCore::SVGFilter::scaledByFilterScale const): Deleted.
- svg/graphics/filters/SVGFilter.h:
- 12:43 AM Changeset in webkit [286286] by
-
- 8 edits in trunk/Source
Remove unnecessary service worker page settings handling
https://bugs.webkit.org/show_bug.cgi?id=233468
Reviewed by Chris Dumez.
Source/WebCore:
Use Settings.shouldUseServiceWorkerShortTimeout instead of dedicated SWContextManager::Connection::shouldUseShortTimeout.
Remove SWContextManager::Connection::shouldUseShortTimeout.
Change ServiceWorkerThreadProxy::createPageForServiceWorker into ServiceWorkerThreadProxy::setupPageForServiceWorker
so that we apply page settings before creating the page document.
No change of behavior.
- workers/service/context/SWContextManager.h:
(WebCore::SWContextManager::Connection::isClosed const):
(WebCore::SWContextManager::Connection::setAsClosed):
(WebCore::SWContextManager::Connection::shouldUseShortTimeout const): Deleted.
(WebCore::SWContextManager::Connection::setShouldUseShortTimeout): Deleted.
- workers/service/context/ServiceWorkerThread.cpp:
(WebCore::ServiceWorkerThread::ServiceWorkerThread):
- workers/service/context/ServiceWorkerThreadProxy.cpp:
(WebCore::ServiceWorkerThreadProxy::setupPageForServiceWorker):
(WebCore::ServiceWorkerThreadProxy::createPageForServiceWorker): Deleted.
- workers/service/context/ServiceWorkerThreadProxy.h:
Source/WebKit:
Use ServiceWorkerThreadProxy::setupPageForServiceWorker and remove WebPreferences specific handling.
- WebProcess/Storage/WebSWContextManagerConnection.cpp:
(WebKit::WebSWContextManagerConnection::updatePreferencesStore):
(WebKit::WebSWContextManagerConnection::installServiceWorker):
- WebProcess/Storage/WebSWContextManagerConnection.h:
Nov 29, 2021:
- 11:28 PM Changeset in webkit [286285] by
-
- 9 edits in trunk/Tools
Store image resolution in layout test snapshots, and have ImageDiff read it
https://bugs.webkit.org/show_bug.cgi?id=233609
Reviewed by Darin Adler.
On the way to fixing bug 232525, we need to communicate to ImageDiff the resolution of
layout test snapshots so that it can account for the resolution when computing pixel
tolerance values, which should be reported in CSS pixels.
So have DumpRenderTree and WebKitTestRunner, on Cocoa platforms, add image resolution
metadata, where a 2x snapshot (i.e. a hidpi test) reports a horizontal and vertical
resolution of 144dpi.
Change ImageDiff to read these values and store them in PlatformImage; a future patch will
make use of the data.
- DumpRenderTree/cg/PixelDumpSupportCG.cpp:
(printPNG):
(dumpBitmap):
- DumpRenderTree/cg/PixelDumpSupportCG.h:
(BitmapContext::scaleFactor const):
(BitmapContext::setScaleFactor):
- DumpRenderTree/ios/PixelDumpSupportIOS.mm:
(createBitmapContextFromWebView):
- DumpRenderTree/mac/PixelDumpSupportMac.mm:
(createBitmapContextFromWebView):
- ImageDiff/ImageDiff.cpp:
(main):
- ImageDiff/PlatformImage.h:
(ImageDiff::PlatformImage::scaleFactor const):
- ImageDiff/cg/PlatformImageCG.cpp:
(ImageDiff::createImageFromDataProvider):
(ImageDiff::PlatformImage::createFromFile):
(ImageDiff::PlatformImage::createFromStdin):
(ImageDiff::PlatformImage::PlatformImage):
- WebKitTestRunner/cg/TestInvocationCG.cpp:
(WTR::dumpBitmap):
(WTR::TestInvocation::dumpPixelsAndCompareWithExpected):
- 9:24 PM Changeset in webkit [286284] by
-
- 61 edits4 copies1 add in trunk
Add initial implementation for the Web Lock API
https://bugs.webkit.org/show_bug.cgi?id=233289
Reviewed by Geoff Garen.
LayoutTests/imported/w3c:
Rebaseline Web Locks WPT tests now that they are all passing.
- web-platform-tests/web-locks/acquire.tentative.https.any-expected.txt:
- web-platform-tests/web-locks/acquire.tentative.https.any.serviceworker-expected.txt:
- web-platform-tests/web-locks/acquire.tentative.https.any.worker-expected.txt:
- web-platform-tests/web-locks/clientids.tentative.https-expected.txt:
- web-platform-tests/web-locks/frames.tentative.https-expected.txt:
- web-platform-tests/web-locks/held.tentative.https.any-expected.txt:
- web-platform-tests/web-locks/held.tentative.https.any.serviceworker-expected.txt:
- web-platform-tests/web-locks/held.tentative.https.any.worker-expected.txt:
- web-platform-tests/web-locks/idlharness.tentative.https.any-expected.txt:
- web-platform-tests/web-locks/idlharness.tentative.https.any.serviceworker-expected.txt:
- web-platform-tests/web-locks/idlharness.tentative.https.any.worker-expected.txt:
- web-platform-tests/web-locks/ifAvailable.tentative.https.any-expected.txt:
- web-platform-tests/web-locks/ifAvailable.tentative.https.any.serviceworker-expected.txt:
- web-platform-tests/web-locks/ifAvailable.tentative.https.any.worker-expected.txt:
- web-platform-tests/web-locks/lock-attributes.tentative.https.any-expected.txt:
- web-platform-tests/web-locks/lock-attributes.tentative.https.any.serviceworker-expected.txt:
- web-platform-tests/web-locks/lock-attributes.tentative.https.any.worker-expected.txt:
- web-platform-tests/web-locks/mode-exclusive.tentative.https.any-expected.txt:
- web-platform-tests/web-locks/mode-exclusive.tentative.https.any.serviceworker-expected.txt:
- web-platform-tests/web-locks/mode-exclusive.tentative.https.any.worker-expected.txt:
- web-platform-tests/web-locks/mode-mixed.tentative.https.any-expected.txt:
- web-platform-tests/web-locks/mode-mixed.tentative.https.any.serviceworker-expected.txt:
- web-platform-tests/web-locks/mode-mixed.tentative.https.any.worker-expected.txt:
- web-platform-tests/web-locks/mode-shared.tentative.https.any-expected.txt:
- web-platform-tests/web-locks/mode-shared.tentative.https.any.serviceworker-expected.txt:
- web-platform-tests/web-locks/mode-shared.tentative.https.any.worker-expected.txt:
- web-platform-tests/web-locks/opaque-origin.tentative.https-expected.txt:
- web-platform-tests/web-locks/query-empty.tentative.https.any-expected.txt:
- web-platform-tests/web-locks/query-empty.tentative.https.any.serviceworker-expected.txt:
- web-platform-tests/web-locks/query-empty.tentative.https.any.worker-expected.txt:
- web-platform-tests/web-locks/query-ordering.tentative.https-expected.txt:
- web-platform-tests/web-locks/query.tentative.https.any-expected.txt:
- web-platform-tests/web-locks/query.tentative.https.any.worker-expected.txt:
- web-platform-tests/web-locks/resource-names.tentative.https.any-expected.txt:
- web-platform-tests/web-locks/resource-names.tentative.https.any.serviceworker-expected.txt:
- web-platform-tests/web-locks/resource-names.tentative.https.any.worker-expected.txt:
- web-platform-tests/web-locks/signal.tentative.https.any-expected.txt:
- web-platform-tests/web-locks/signal.tentative.https.any.serviceworker-expected.txt:
- web-platform-tests/web-locks/signal.tentative.https.any.worker-expected.txt:
- web-platform-tests/web-locks/steal.tentative.https.any-expected.txt:
- web-platform-tests/web-locks/steal.tentative.https.any.serviceworker-expected.txt:
- web-platform-tests/web-locks/steal.tentative.https.any.worker-expected.txt:
- web-platform-tests/web-locks/workers.tentative.https-expected.txt:
Source/WebCore:
Add initial implementation for the Web Lock API as per:
The implementation is complete and passes all the WPT tests. However,
to reduce the patch size, the current implementation only works within
a single WebProcess. In a follow-up, I'll update the implementation so
that the registry lives in the UIProcess and the WebProcess just does
IPC.
No new tests, rebaselined existing tests.
- CMakeLists.txt:
- DerivedSources-input.xcfilelist:
- DerivedSources-output.xcfilelist:
- DerivedSources.make:
- Modules/web-locks/WebLock.cpp:
(WebCore::WebLock::create):
(WebCore::WebLock::WebLock):
- Modules/web-locks/WebLock.h:
(WebCore::WebLock::identifier const):
- Modules/web-locks/WebLockGrantedCallback.idl:
- Modules/web-locks/WebLockIdentifier.h: Copied from Source/WebCore/Modules/web-locks/WebLockGrantedCallback.idl.
- Modules/web-locks/WebLockManager.cpp:
(WebCore::clientOriginFromContext):
(WebCore::WebLockManager::LockRequest::isValid const):
(WebCore::WebLockManager::create):
(WebCore::WebLockManager::WebLockManager):
(WebCore::WebLockManager::request):
(WebCore::WebLockManager::didCompleteLockRequest):
(WebCore::WebLockManager::requestLockOnMainThread):
(WebCore::WebLockManager::releaseLockOnMainThread):
(WebCore::WebLockManager::abortLockRequestOnMainThread):
(WebCore::WebLockManager::queryOnMainThread):
(WebCore::WebLockManager::query):
(WebCore::WebLockManager::signalToAbortTheRequest):
(WebCore::WebLockManager::settleReleasePromise):
(WebCore::WebLockManager::stop):
(WebCore::WebLockManager::virtualHasPendingActivity const):
(WebCore::WebLockManager::activeDOMObjectName const):
- Modules/web-locks/WebLockManager.h:
- Modules/web-locks/WebLockManager.idl:
- Modules/web-locks/WebLockManagerSnapshot.h: Copied from Source/WebCore/Modules/web-locks/WebLock.h.
(WebCore::WebLockManagerSnapshot::Info::isolatedCopy const):
(WebCore::WebLockManagerSnapshot::isolatedCopy const):
- Modules/web-locks/WebLockManagerSnapshot.idl: Copied from Source/WebCore/Modules/web-locks/WebLockGrantedCallback.idl.
- Modules/web-locks/WebLockRegistry.cpp: Added.
(WebCore::WebLockRegistry::registryForOrigin):
(WebCore::WebLockRegistry::WebLockRegistry):
(WebCore::WebLockRegistry::~WebLockRegistry):
(WebCore::WebLockRegistry::requestLock):
(WebCore::WebLockRegistry::releaseLock):
(WebCore::WebLockRegistry::abortLockRequest):
(WebCore::WebLockRegistry::isGrantable const):
(WebCore::WebLockRegistry::processLockRequestQueue):
(WebCore::WebLockRegistry::snapshot):
(WebCore::WebLockRegistry::clientIsGoingAway):
- Modules/web-locks/WebLockRegistry.h: Copied from Source/WebCore/Modules/web-locks/WebLock.h.
- Sources.txt:
- WebCore.xcodeproj/project.pbxproj:
- bindings/js/JSDOMConvertPromise.h:
(WebCore::Converter<IDLPromise<T>>::convert):
Update Converter<IDLPromise<T>>::convert() to deal with worker termination similarly to
what is done is some other places (e.g. DeferredPromise::handleTerminationExceptionIfNeeded(()).
I had to make this fix because one of the WPT tests was hitting a debug assertions in JSC on
worker termination otherwise.
- page/NavigatorBase.cpp:
(WebCore::NavigatorBase::locks):
Source/WTF:
Update Deque::removeAllMatching() to return the number of items removed, similarly
to the corresponding API on Vector.
- wtf/Deque.h:
(WTF::inlineCapacity>::removeAllMatching):
- 8:43 PM Changeset in webkit [286283] by
-
- 3 edits1 add in trunk
[JSC] jumpForTypedArrayOutOfBounds should use asAnyInt since it uses isAnyInt
https://bugs.webkit.org/show_bug.cgi?id=233610
rdar://85820476
Reviewed by Saam Barati.
JSTests:
- stress/anyint-index.js: Added.
(foo):
Source/JavaScriptCore:
Since we are using isAnyInt, then we should use asAnyInt. asUInt32 will crash
if the value is double AnyInt etc.
- dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::jumpForTypedArrayOutOfBounds):
- 8:23 PM Changeset in webkit [286282] by
-
- 3 edits2 adds in trunk
[Webpage translation] Avoid translating text inside image overlays
https://bugs.webkit.org/show_bug.cgi?id=233225
rdar://85713734
Reviewed by Aditya Keerthi.
Source/WebCore:
Add
translate="no"
to image overlay content; text in image overlays is meant to visually match recognized text
in the image, and should never be modified as a part of webpage translation.
Test: fast/images/text-recognition/image-overlay-do-not-translate.html
- dom/ImageOverlay.cpp:
(WebCore::ImageOverlay::updateSubtree):
LayoutTests:
Add a test to verify that
translate
isfalse
on the image overlay root container element.
- fast/images/text-recognition/image-overlay-do-not-translate-expected.txt: Added.
- fast/images/text-recognition/image-overlay-do-not-translate.html: Added.
- 7:25 PM Changeset in webkit [286281] by
-
- 2 edits in trunk/LayoutTests
[GLIB] Gardening SVG filter failures after r286203
Unreviewed test gardening.
- platform/glib/TestExpectations:
- 6:33 PM Changeset in webkit [286280] by
-
- 1 copy in tags/Safari-612.3.6.1.6
Tag Safari-612.3.6.1.6.
- 6:25 PM Changeset in webkit [286279] by
-
- 1 copy in tags/Safari-612.3.6.0.4
Tag Safari-612.3.6.0.4.
- 5:58 PM Changeset in webkit [286278] by
-
- 4 edits3 adds in trunk
FTL's implementation of HasIndexedProperty for InBounds accesses checks the inverse of what it should be checking when exiting by seeing a hole
https://bugs.webkit.org/show_bug.cgi?id=233408
<rdar://problem/85787251>
Reviewed by Mark Lam.
JSTests:
- stress/in-by-val-has-indexed-property-ftl-3.js: Added.
- stress/in-by-val-has-indexed-property-ftl-2.js: Added.
- stress/in-by-val-has-indexed-property-ftl.js: Added.
Source/JavaScriptCore:
The implementation of an InBounds HasIndexedProperty in FTL, when speculating, we
would exit when we did not see a hole, not when we did see a hole. This is
the inverse of what we need to do, we should exit when we do see a hole.
- ftl/FTLLowerDFGToB3.cpp:
(JSC::FTL::DFG::LowerDFGToB3::compileCompareStrictEq):
- tools/JSDollarVM.cpp:
(JSC::JSC_DEFINE_HOST_FUNCTION):
(JSC::JSDollarVM::finishCreation):
- 5:42 PM Changeset in webkit [286277] by
-
- 2 edits in trunk/Source/WebKit
Fix the build
- Shared/ios/WebIOSEventFactory.mm:
(WebIOSEventFactory::createWebWheelEvent):
- 5:23 PM Changeset in webkit [286276] by
-
- 2 edits in trunk/Source/WebCore
Run keyboard-animated scrolls on the scrolling thread
https://bugs.webkit.org/show_bug.cgi?id=233591
Reviewed by Tim Horton.
Calling m_scrollableArea.scrollToPositionWithAnimation() hits the FrameView/RenderLayerScrollableArea
overrides of requestAnimatedScrollToPosition() which dispatch the scroll to the scrolling thread.
This allows the ScrollAnimationSmooth for keyboard-triggered scrolls (spacebar, page up/down, home/end)
to run on the scrolling thread.
- platform/ScrollAnimator.cpp:
(WebCore::ScrollAnimator::singleAxisScroll):
- 5:20 PM Changeset in webkit [286275] by
-
- 3 edits1 add in trunk
[JSC] slice should be aware of TerminationException
https://bugs.webkit.org/show_bug.cgi?id=233593
rdar://85823844
Reviewed by Mark Lam.
JSTests:
- stress/slice-termination-exception.js: Added.
(async infiniteLoop):
Source/JavaScriptCore:
Since termination exception can happen at any time, assertNoException is wrong.
- runtime/ArrayPrototype.cpp:
(JSC::JSC_DEFINE_HOST_FUNCTION):
- 5:20 PM Changeset in webkit [286274] by
-
- 10 edits in trunk
Revert changes related to using a scroll animator for momentum scrolling
https://bugs.webkit.org/show_bug.cgi?id=233585
Reviewed by Tim Horton.
Source/WebCore:
It turns out that running an animation for the momentum phase of a scroll isn't web
compatible, adds a bunch of complexity around interactions with rubberbanding, and
has issues when ScrollAnimationMomentum behavior differs from the momentum event
behavior in its response to initial velocity.
So revert these changes added in r285787, r285797, r285917, r285953, r285964.
- page/scrolling/mac/ScrollingTreeScrollingNodeDelegateMac.mm:
(WebCore::ScrollingTreeScrollingNodeDelegateMac::handleWheelEvent):
- platform/ScrollingEffectsController.h:
- platform/mac/ScrollingEffectsController.mm:
(WebCore::ScrollingEffectsController::handleWheelEvent):
(WebCore::ScrollingEffectsController::startRubberBandAnimation):
(WebCore::phaseToString): Deleted.
(WebCore::adjustedVelocity): Deleted.
LayoutTests:
We can keep the tests but they don't need to change the setting any more.
- fast/scrolling/mac/momentum-animator-end-event-stops.html:
- fast/scrolling/mac/momentum-animator-in-overflow.html:
- fast/scrolling/mac/momentum-animator-maybegin-stops.html:
- fast/scrolling/mac/momentum-animator.html:
- platform/mac-wk2/TestExpectations:
- 4:20 PM Changeset in webkit [286273] by
-
- 9 edits4 copies4 adds in trunk
Make webpushd "fake registration for testing" much more complicated by adding a "mock app bundle" install
https://bugs.webkit.org/show_bug.cgi?id=233454
Reviewed by Alex Christensen.
Covered by API tests.
Before this patch, webpushd remembered "registrations" using a simple in-memory HashMap.
In the near future, registrations will actually be represented with a placeholder app bundle on disk.
The process of installing placeholders (and checking for existing ones) is complicated and asynchronous.
This patch shifts the in-memory testing implementation from a simple HashMap to a "complicated and asynchronous"
registration mechanism that simulates how app-bundle installs will work.
Once the "real" mechanisms are in place there will be much more in-depth testing that we can do.
For now, this is a "no behavior change" patch.
- NetworkProcess/Notifications/Cocoa/WebPushDaemonConnectionCocoa.mm:
(WebKit::WebPushD::Connection::connectionReceivedEvent const):
- UIProcess/API/Cocoa/WKUIDelegatePrivate.h:
- WebKit.xcodeproj/project.pbxproj:
"PushAppBundle" is an abstract base class for representing a placeholder application bundle for a registration.
Eventually there will be a native one for each platform that actually does system operations.
For now, the concrete implementation is the in-memory "Mock" app bundle.
- webpushd/PushAppBundle.h: Copied from Source/WebKit/webpushd/PushClientConnection.h.
- webpushd/PushAppBundle.mm: Copied from Source/WebKit/webpushd/PushClientConnection.h.
(WebPushD::PushAppBundleClient::~PushAppBundleClient):
(WebPushD::PushAppBundle::PushAppBundle):
(WebPushD::PushAppBundle::~PushAppBundle):
(WebPushD::PushAppBundle::detachFromClient):
An "AppBundleRequest" is a queable operation meant to do something with an "App bundle".
For now the operations are "create" and "delete"
- webpushd/AppBundleRequest.h: Added.
(WebPushD::AppBundleRequestImpl::AppBundleRequestImpl):
(WebPushD::AppBundleRequestImpl::~AppBundleRequestImpl):
(WebPushD::AppBundleRequestImpl::callCompletionHandlerAndCleanup):
(WebPushD::AppBundlePermissionsRequest::AppBundlePermissionsRequest):
(WebPushD::AppBundleDeletionRequest::AppBundleDeletionRequest):
- webpushd/AppBundleRequest.mm: Added.
(WebPushD::AppBundleRequest::AppBundleRequest):
(WebPushD::AppBundleRequest::~AppBundleRequest):
(WebPushD::AppBundleRequest::start):
(WebPushD::AppBundleRequest::cancel):
(WebPushD::AppBundleRequest::cleanupAfterCompletionHandler):
(WebPushD::AppBundlePermissionsRequest::startInternal):
(WebPushD::AppBundlePermissionsRequest::didCheckForExistingBundle):
(WebPushD::AppBundlePermissionsRequest::didCreateAppBundle):
(WebPushD::AppBundleDeletionRequest::startInternal):
(WebPushD::AppBundleDeletionRequest::didDeleteExistingBundleWithError):
- webpushd/MockAppBundleForTesting.h: Copied from Source/WebKit/webpushd/PushClientConnection.h.
(WebPushD::MockAppBundleForTesting::create):
- webpushd/MockAppBundleForTesting.mm: Added.
(WebPushD::MockAppBundleForTesting::MockAppBundleForTesting):
(WebPushD::MockAppBundleForTesting::~MockAppBundleForTesting):
(WebPushD::MockAppBundleForTesting::checkForExistingBundle):
(WebPushD::MockAppBundleForTesting::deleteExistingBundle):
(WebPushD::MockAppBundleForTesting::createBundle):
(WebPushD::MockAppBundleForTesting::stop):
- webpushd/MockAppBundleRegistry.h: Copied from Source/WebKit/webpushd/PushClientConnection.h.
- webpushd/MockAppBundleRegistry.mm: Added.
(WebPushD::MockAppBundleRegistry::singleton):
(WebPushD::MockAppBundleRegistry::getOriginsWithRegistrations):
(WebPushD::MockAppBundleRegistry::doesBundleExist):
(WebPushD::MockAppBundleRegistry::createBundle):
(WebPushD::MockAppBundleRegistry::deleteBundle):
- webpushd/PushClientConnection.h:
- webpushd/PushClientConnection.mm:
(WebPushD::ClientConnection::create):
(WebPushD::ClientConnection::enqueueAppBundleRequest):
(WebPushD::ClientConnection::maybeStartNextAppBundleRequest):
(WebPushD::ClientConnection::didCompleteAppBundleRequest):
(WebPushD::ClientConnection::connectionClosed):
- webpushd/WebPushDaemon.h:
- webpushd/WebPushDaemon.mm:
(WebPushD::Daemon::connectionAdded):
(WebPushD::Daemon::connectionRemoved):
(WebPushD::Daemon::requestSystemNotificationPermission):
(WebPushD::Daemon::getOriginsWithPushAndNotificationPermissions):
(WebPushD::Daemon::deletePushAndNotificationRegistration):
- 4:20 PM Changeset in webkit [286272] by
-
- 7 edits in trunk/Source
Disable experimental web features on platforms without UI to enable them
<https://webkit.org/b/233152>
<rdar://problem/85430643>
Reviewed by Brent Fulgham.
Source/WebKit:
- UIProcess/RemoteLayerTree/ios/RemoteLayerTreeHostIOS.mm:
(WebKit::RemoteLayerTreeHost::makeNode):
- WebProcess/WebPage/RemoteLayerTree/PlatformCALayerRemoteModelHosting.h:
- WebProcess/WebPage/RemoteLayerTree/PlatformCALayerRemoteModelHosting.mm:
- Fix build when ENABLE(MODEL_ELEMENT) is false.
Source/WTF:
- wtf/PlatformEnableCocoa.h:
(ENABLE_CORE_IMAGE_ACCELERATED_FILTER_RENDER):
(ENABLE_CSS_PAINTING_API):
(ENABLE_CSS_TYPED_OM):
(ENABLE_MODEL_ELEMENT):
(ENABLE_SEPARATED_MODEL):
- Disable if HAVE(EXPERIMENTAL_WEB_FEATURES_UI) is defined.
- wtf/PlatformHave.h:
(HAVE_EXPERIMENTAL_WEB_FEATURES_UI): Add.
- Define for tvOS and watchOS, which don't have UI to enable experimental web features.
(HAVE_CELESTIAL):
(HAVE_CFNETWORK_ALTERNATIVE_SERVICE):
(HAVE_NETWORK_LOADER):
(HAVE_AVSAMPLEBUFFERVIDEOOUTPUT):
- Disable if HAVE(EXPERIMENTAL_WEB_FEATURES_UI) is defined.
- 4:02 PM Changeset in webkit [286271] by
-
- 2 edits in trunk/Tools
[webkitscmpy] Guard git-webkit with name
https://bugs.webkit.org/show_bug.cgi?id=233278
Reviewed by Stephanie Lewis and Dewei Zhu.
- Scripts/libraries/webkitscmpy/git-webkit:
Canonical link: https://commits.webkit.org/244632@main
- 3:58 PM Changeset in webkit [286270] by
-
- 10 edits in trunk/Source
Plumb raw platform scrolling deltas along in wheel events
https://bugs.webkit.org/show_bug.cgi?id=233583
Reviewed by Simon Fraser.
Source/WebCore:
- platform/PlatformWheelEvent.cpp:
(WebCore::PlatformWheelEvent::createFromGesture):
- platform/PlatformWheelEvent.h:
(WebCore::PlatformWheelEvent::rawPlatformDelta const):
- PAL/pal/spi/mac/IOKitSPIMac.h:
Source/WebKit:
- Shared/WebEventConversion.cpp:
(WebKit::WebKit2PlatformWheelEvent::WebKit2PlatformWheelEvent):
- Shared/WebWheelEvent.cpp:
(WebKit::WebWheelEvent::WebWheelEvent):
(WebKit::WebWheelEvent::encode const):
(WebKit::WebWheelEvent::decode):
- Shared/WebWheelEvent.h:
(WebKit::WebWheelEvent::rawPlatformDelta const):
- Shared/WebWheelEventCoalescer.cpp:
(WebKit::WebWheelEventCoalescer::coalesce):
- Shared/mac/WebEventFactory.mm:
(WebKit::WebEventFactory::createWebWheelEvent):
Extract and plumb raw unaccelerated (in the HID sense) deltas in scroll
events for use in a future patch.
- 3:46 PM Changeset in webkit [286269] by
-
- 8 edits in branches/safari-612.3.6.1-branch/Source
Versioning.
WebKit-7612.3.6.1.6
- 3:30 PM Changeset in webkit [286268] by
-
- 8 edits in branches/safari-612.3.6.0-branch/Source
Versioning.
WebKit-7612.3.6.0.4
- 3:18 PM Changeset in webkit [286267] by
-
- 4 edits in trunk/Source/WebKit
Add WebKitAdditions bits for captive portal mode
https://bugs.webkit.org/show_bug.cgi?id=233569
<rdar://85819906>
Reviewed by Geoffrey Garen.
- UIProcess/API/Cocoa/WKWebpagePreferences.h:
- UIProcess/API/Cocoa/WKWebpagePreferences.mm:
- 3:10 PM Changeset in webkit [286266] by
-
- 2 edits in trunk/Source/WebKit
[WP] Sandbox telemetry is missing for some system calls
https://bugs.webkit.org/show_bug.cgi?id=233594
<rdar://problem/85832755>
Reviewed by Brent Fulgham.
Sandbox telemetry is missing for some system calls, since telemetry rules are automatically overridden in some cases.
This patch is addressing this by disabling system call inference.
- Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb.in:
- 2:47 PM Changeset in webkit [286265] by
-
- 6 edits2 adds in trunk
Add a basic heuristic for sizing text in image overlay blocks
https://bugs.webkit.org/show_bug.cgi?id=233343
rdar://85755755
Reviewed by Tim Horton.
Source/WebCore:
Address a FIXME by implementing a simple heuristic for sizing text in image overlay blocks. Each image overlay
block has a predetermined target width and height; currently, we hard-code the font size in each of these blocks
to be 80% of the target height. While this works in some cases, it also causes content in these blocks to
overflow the container if there's too much text.
Avoid this problem by finding the largest font size, such that text in each container fits within the target
bounds without overflowing vertically (we don't need to worry about horizontal overflow because horizontally
overflowing text will simply wrap to the next line).
Because of line wrapping, it's difficult to analytically compute this font size, so I'm instead using binary
search (up to a fixed number of iterations) to converge on this largest size that avoids exceeding the target
height. See below for more details.
Test: fast/images/text-recognition/image-overlay-blocks.html
- dom/ImageOverlay.cpp:
(WebCore::ImageOverlay::updateWithTextRecognitionResult):
Implement the main logic of the binary search. Establish a goal of ending up with text that fills at least 90%
of the available space in the container (with a max of just slightly over 100%, so that we stop early if we
happen to only barely exceed the target height). Then, starting with a font size that's 80% of the target
height, converge on a font size between 0% and 100% of the target height that achieves this goal. In practice,
most of the injected blocks of text will stop after a single iteration (due to the "80%-of-height" font size
being sufficient to mostly fill available vertical space).
Each FontSizeAdjustmentState here represents a single block container. At the beginning of each iteration, we
ensure that layout is up to date, and set the font size to be between the current min and max value (scaling by
target height to get font size). UsinglinesBoundingBox()
, we compute the height of the rendered text relative
to its parent (which we know a-priori to be as tall as the target height). If this height is at least 90% of the
target height, we finish and remove the font size adjustment state from the vector of pending font adjustments;
otherwise, we adjust the min and max to either increase or decrease the font size as needed, and continue the
loop. We finally bail after an arbitrarily-chosen 10 iterations, if the text in the container is still too
small.
- testing/Internals.cpp:
(WebCore::Internals::installImageOverlay):
Augment this testing-only internals hook so that we can inject arbitrary image overlay block content inside
image overlays.
- testing/Internals.h:
- testing/Internals.idl:
LayoutTests:
Add a new layout test. See WebCore/ChangeLog for more details.
- fast/images/text-recognition/image-overlay-blocks-expected.html: Added.
- fast/images/text-recognition/image-overlay-blocks.html: Added.
- 2:38 PM Changeset in webkit [286264] by
-
- 4 edits in trunk
REGRESSION(r283855) [GTK][WPE] imported/w3c/web-platform-tests/webaudio/the-audio-api/the-pannernode-interface/panner-equalpower.html fails
https://bugs.webkit.org/show_bug.cgi?id=233529
Reviewed by Philippe Normand.
Source/WebCore:
The non-USE(ACCELERATE) implementation for VectorMath::multiplyByScalarThenAddToVector() was wrong, causing the test
to fail on non Cocoa ports. The implementation was wrongly calling multiplyByScalarThenAddToOutput() instead of
multiplyByScalar() before calling add().
- platform/audio/VectorMath.cpp:
(WebCore::VectorMath::multiplyByScalarThenAddToVector):
LayoutTests:
Unskip test that is now passing.
- platform/glib/TestExpectations:
- 2:29 PM Changeset in webkit [286263] by
-
- 5 edits in trunk/Tools
[webkitcorepy] Delete unused environment variables
https://bugs.webkit.org/show_bug.cgi?id=233565
<rdar://problem/85820306>
Reviewed by Dewei Zhu.
- Scripts/libraries/webkitcorepy/setup.py: Bump version.
- Scripts/libraries/webkitcorepy/webkitcorepy/init.py: Ditto.
- Scripts/libraries/webkitcorepy/webkitcorepy/environment.py:
(Environment.init): Keep track of sure environment files.
(Environment.load): Ditto.
(Environment.secure): Delete all unused environment files, since they may contain credentials.
- Scripts/libraries/webkitcorepy/webkitcorepy/tests/environment_unittest.py:
(TestEnvironment.test_secure):
Canonical link: https://commits.webkit.org/244626@main
- 2:04 PM Changeset in webkit [286262] by
-
- 2 edits in trunk/Source/WebCore
REGRESSION(r286205) [WinCairo] WebGL tests are failing
https://bugs.webkit.org/show_bug.cgi?id=233589
Unreviewed crash fix.
EGL_BIND_TO_TEXTURE_TARGET_ANGLE isn't available for Windows.
Restored the previous code.
- platform/graphics/angle/GraphicsContextGLANGLE.cpp:
(WebCore::GraphicsContextGLOpenGL::drawingBufferTextureTarget):
Set m_drawingBufferTextureTarget to EGL_TEXTURE_2D for
PLATFORM(WIN) instead of querying with EGL_BIND_TO_TEXTURE_TARGET_ANGLE.
- 1:34 PM Changeset in webkit [286261] by
-
- 2 edits in trunk/Tools
[webkitcorepy] Environment: Sort values before comparing in unittest
https://bugs.webkit.org/show_bug.cgi?id=233582
Reviewed by Jonathan Bedard.
While Python3.6+'s dicts happen to keep insertion order,
os.listdir
does not guarantee the order of the listed items[1]. This may cause
the Environment unittest to fail when comparing to the fixed expected
data, as it has been happending in some GTK/WPE bots.
[1] https://docs.python.org/3/library/os.html#os.listdir
- Scripts/libraries/webkitcorepy/webkitcorepy/tests/environment_unittest.py:
(TestEnvironment.test_list):
- 1:24 PM Changeset in webkit [286260] by
-
- 4 edits in trunk
WKContentView should allow -captureTextFromCamera: with a caret selection unless the sender is the callout bar
https://bugs.webkit.org/show_bug.cgi?id=233378
rdar://85478344
Reviewed by Tim Horton.
Source/WebKit:
Allow clients to query whether or not the "capture text from camera" action should be enabled on WKWebView in
contexts outside of the callout bar. Currently, WKContentView returns NO for this action when there is a non-
collapsed selection range, but this behavior is only intended for the callout bar; in the case where the action
is (for instance) triggered by a button in the web view chrome, it doesn't make sense to only enable it when the
selection is a caret.
Additionally, adjust the check to use focused element information instead of editor state, such that WebKit
clients can easily query this API (-canPerformAction:withSender:
) inside of input delegate callbacks when
beginning an input session to know whether or not "capture text from camera" should be allowed.
- UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView canPerformActionForWebView:withSender:]):
Tools:
Adjust an API test to exercise the changes. See WebKit/ChangeLog for more details.
- TestWebKitAPI/Tests/WebKitCocoa/WKContentViewEditingActions.mm:
- 12:48 PM Changeset in webkit [286259] by
-
- 26 edits1 move1 add2 deletes in trunk
AX: Unify speech synthesizer platform usage for Mac/iOS
https://bugs.webkit.org/show_bug.cgi?id=231895
<rdar://problem/84372479>
Reviewed by Andres Gonzalez.
LayoutTests/imported/w3c:
Update expectations now that the test passes.
- web-platform-tests/speech-api/SpeechSynthesis-speak-events-expected.txt:
Source/WebCore:
AVSpeechSynthesizer has been fully supported on macOS for a number of years. This allows us to unify platform usage.
Fix a number of tests that had been marked failing/flaky related to speech synthesis.
- Modules/speech/SpeechSynthesis.cpp:
(WebCore::SpeechSynthesis::SpeechSynthesis):
(WebCore::SpeechSynthesis::startSpeakingImmediately):
(WebCore::SpeechSynthesis::speak):
- SourcesCocoa.txt:
- WebCore.xcodeproj/project.pbxproj:
- page/SpeechSynthesisClient.h:
- platform/PlatformSpeechSynthesizer.h:
- platform/graphics/cocoa/FontCacheCoreText.cpp:
(WebCore::variationAxes):
- platform/ios/PlatformSpeechSynthesizerIOS.mm: Removed.
- platform/mac/PlatformSpeechSynthesizerMac.mm: Removed.
- Source/WebCore/platform/cocoa/PlatformSpeechSynthesizerCocoa.mm: Added.
Source/WebCore/PAL:
- PAL.xcodeproj/project.pbxproj:
- pal/cocoa/AVFoundationSoftLink.h:
- pal/cocoa/AVFoundationSoftLink.mm:
- pal/spi/cocoa/AXSpeechManagerSPI.h:
- pal/spi/mac/SpeechSynthesisSPI.h: Removed.
Source/WebKit:
Create a new message for resetting speech synthesis state when the DOMWindow changes
but the Page (and its referenced speech synthesis) stays the same.
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::speechSynthesisResetState):
- UIProcess/WebPageProxy.h:
- UIProcess/WebPageProxy.messages.in:
- WebProcess/WebCoreSupport/WebSpeechSynthesisClient.cpp:
(WebKit::WebSpeechSynthesisClient::resetState):
- WebProcess/WebCoreSupport/WebSpeechSynthesisClient.h:
Source/WTF:
- wtf/PlatformHave.h:
LayoutTests:
- fast/speechsynthesis/speech-synthesis-speak-empty-string-expected.txt:
- platform/mac-catalina-wk1/TestExpectations: Added.
- platform/mac-wk1/TestExpectations:
- platform/mac-wk2/TestExpectations:
- platform/mac/TestExpectations:
- 12:37 PM Changeset in webkit [286258] by
-
- 2 edits in trunk/Source/WebKit
REGRESSION(286219): Build fix.
https://bugs.webkit.org/show_bug.cgi?id=233388
<rdar://problem/84481565>
Unreviewed build fix after r286219.
- WebKit.xcodeproj/project.pbxproj: Don't make duplicate copies of WebContent resources when building the CaptivePortal version of the WCP.
- 12:36 PM Changeset in webkit [286257] by
-
- 2 edits in trunk
Mark myself (Tyler Wilcock) as committer
Unreviewed.
- metadata/contributors.json:
- 12:33 PM Changeset in webkit [286256] by
-
- 52 edits2 deletes in trunk/Source/WebKit
[WebGPU] Delete ObjectRegistry in favor of ObjectHeap
https://bugs.webkit.org/show_bug.cgi?id=233549
Reviewed by Dean Jackson.
Originally, I made these two classes distinct because I thought there were two separate use cases:
- ObjectHeap is the object that owns all WebGPU objects in the GPU process
- ObjectRegistry is the object that can map between WebGPUIdentifiers and their full objects. This
is needed when we receive a message that contains a WebGPUIdentifier, and we need to look up
its represented object.
The original idea was for ObjectHeap to own the objects, and each object would hold a reference to the
shared ObjectRegistry. However, this turns out not to be necessary, because new objects are created
via creation routines on _other objects_. This means that every object is going to have to know about
its owning ObjectHeap anyway (to be able to add newly created objects to it), so there aren't any
separation-of-concerns benefits to be had. If the ObjectHeap owned all the objects by just storing
them in a HashMap<WebGPUIdentifier, Ref<Object>> map, that would allow it to do double duty - it could
own all the objects _and_ be able to look up which WebGPUIdentifier is associated with which object.
So there's no point in having two distinct objects, when just one is sufficient.
So, accepting that, this patch is fairly straightforward, despite being large:
- Before, we were doing m_objectRegistry.addObject(m_identifier, m_backing) and
m_objectHeap.addObject(remoteRenderPassEncoder). Now, we just do
m_objectHeap.addObject(identifier, remoteRenderPassEncoder) instead.
- convertFromBacking() calls go from m_objectRegistry.convertFromBacking() to
m_objectHeap.convertFromBacking().
- objectRegistry.removeObject() calls can be entirely deleted, because the ObjectHeap already knows
when objects are deleted, because it owns them in the first place.
No new tests because there is no behavior change.
- GPUProcess/graphics/WebGPU/RemoteAdapter.cpp:
(WebKit::RemoteAdapter::RemoteAdapter):
(WebKit::RemoteAdapter::requestDevice):
(WebKit::RemoteAdapter::~RemoteAdapter): Deleted.
- GPUProcess/graphics/WebGPU/RemoteAdapter.h:
- GPUProcess/graphics/WebGPU/RemoteBindGroup.cpp:
(WebKit::RemoteBindGroup::RemoteBindGroup):
(WebKit::RemoteBindGroup::~RemoteBindGroup): Deleted.
- GPUProcess/graphics/WebGPU/RemoteBindGroup.h:
- GPUProcess/graphics/WebGPU/RemoteBindGroupLayout.cpp:
(WebKit::RemoteBindGroupLayout::RemoteBindGroupLayout):
(WebKit::RemoteBindGroupLayout::~RemoteBindGroupLayout): Deleted.
- GPUProcess/graphics/WebGPU/RemoteBindGroupLayout.h:
- GPUProcess/graphics/WebGPU/RemoteBuffer.cpp:
(WebKit::RemoteBuffer::RemoteBuffer):
(WebKit::RemoteBuffer::~RemoteBuffer): Deleted.
- GPUProcess/graphics/WebGPU/RemoteBuffer.h:
- GPUProcess/graphics/WebGPU/RemoteCommandBuffer.cpp:
(WebKit::RemoteCommandBuffer::RemoteCommandBuffer):
(WebKit::RemoteCommandBuffer::~RemoteCommandBuffer): Deleted.
- GPUProcess/graphics/WebGPU/RemoteCommandBuffer.h:
- GPUProcess/graphics/WebGPU/RemoteCommandEncoder.cpp:
(WebKit::RemoteCommandEncoder::RemoteCommandEncoder):
(WebKit::RemoteCommandEncoder::beginRenderPass):
(WebKit::RemoteCommandEncoder::beginComputePass):
(WebKit::RemoteCommandEncoder::copyBufferToBuffer):
(WebKit::RemoteCommandEncoder::copyBufferToTexture):
(WebKit::RemoteCommandEncoder::copyTextureToBuffer):
(WebKit::RemoteCommandEncoder::copyTextureToTexture):
(WebKit::RemoteCommandEncoder::fillBuffer):
(WebKit::RemoteCommandEncoder::writeTimestamp):
(WebKit::RemoteCommandEncoder::resolveQuerySet):
(WebKit::RemoteCommandEncoder::finish):
(WebKit::RemoteCommandEncoder::~RemoteCommandEncoder): Deleted.
- GPUProcess/graphics/WebGPU/RemoteCommandEncoder.h:
- GPUProcess/graphics/WebGPU/RemoteComputePassEncoder.cpp:
(WebKit::RemoteComputePassEncoder::RemoteComputePassEncoder):
(WebKit::RemoteComputePassEncoder::setPipeline):
(WebKit::RemoteComputePassEncoder::dispatchIndirect):
(WebKit::RemoteComputePassEncoder::beginPipelineStatisticsQuery):
(WebKit::RemoteComputePassEncoder::setBindGroup):
(WebKit::RemoteComputePassEncoder::~RemoteComputePassEncoder): Deleted.
- GPUProcess/graphics/WebGPU/RemoteComputePassEncoder.h:
- GPUProcess/graphics/WebGPU/RemoteComputePipeline.cpp:
(WebKit::RemoteComputePipeline::RemoteComputePipeline):
(WebKit::RemoteComputePipeline::getBindGroupLayout):
(WebKit::RemoteComputePipeline::~RemoteComputePipeline): Deleted.
- GPUProcess/graphics/WebGPU/RemoteComputePipeline.h:
- GPUProcess/graphics/WebGPU/RemoteDevice.cpp:
(WebKit::RemoteDevice::RemoteDevice):
(WebKit::RemoteDevice::createBuffer):
(WebKit::RemoteDevice::createTexture):
(WebKit::RemoteDevice::createSampler):
(WebKit::RemoteDevice::importExternalTexture):
(WebKit::RemoteDevice::createBindGroupLayout):
(WebKit::RemoteDevice::createPipelineLayout):
(WebKit::RemoteDevice::createBindGroup):
(WebKit::RemoteDevice::createShaderModule):
(WebKit::RemoteDevice::createComputePipeline):
(WebKit::RemoteDevice::createRenderPipeline):
(WebKit::RemoteDevice::createComputePipelineAsync):
(WebKit::RemoteDevice::createRenderPipelineAsync):
(WebKit::RemoteDevice::createCommandEncoder):
(WebKit::RemoteDevice::createRenderBundleEncoder):
(WebKit::RemoteDevice::createQuerySet):
(WebKit::RemoteDevice::~RemoteDevice): Deleted.
- GPUProcess/graphics/WebGPU/RemoteDevice.h:
- GPUProcess/graphics/WebGPU/RemoteExternalTexture.cpp:
(WebKit::RemoteExternalTexture::RemoteExternalTexture):
(WebKit::RemoteExternalTexture::~RemoteExternalTexture): Deleted.
- GPUProcess/graphics/WebGPU/RemoteExternalTexture.h:
- GPUProcess/graphics/WebGPU/RemoteGPU.cpp:
(WebKit::RemoteGPU::RemoteGPU):
(WebKit::RemoteGPU::requestAdapter):
(WebKit::RemoteGPU::~RemoteGPU): Deleted.
- GPUProcess/graphics/WebGPU/RemoteGPU.h:
- GPUProcess/graphics/WebGPU/RemotePipelineLayout.cpp:
(WebKit::RemotePipelineLayout::RemotePipelineLayout):
(WebKit::RemotePipelineLayout::~RemotePipelineLayout): Deleted.
- GPUProcess/graphics/WebGPU/RemotePipelineLayout.h:
- GPUProcess/graphics/WebGPU/RemoteQuerySet.cpp:
(WebKit::RemoteQuerySet::RemoteQuerySet):
(WebKit::RemoteQuerySet::~RemoteQuerySet): Deleted.
- GPUProcess/graphics/WebGPU/RemoteQuerySet.h:
- GPUProcess/graphics/WebGPU/RemoteQueue.cpp:
(WebKit::RemoteQueue::RemoteQueue):
(WebKit::RemoteQueue::submit):
(WebKit::RemoteQueue::writeBuffer):
(WebKit::RemoteQueue::writeTexture):
(WebKit::RemoteQueue::copyExternalImageToTexture):
(WebKit::RemoteQueue::~RemoteQueue): Deleted.
- GPUProcess/graphics/WebGPU/RemoteQueue.h:
- GPUProcess/graphics/WebGPU/RemoteRenderBundle.cpp:
(WebKit::RemoteRenderBundle::RemoteRenderBundle):
(WebKit::RemoteRenderBundle::~RemoteRenderBundle): Deleted.
- GPUProcess/graphics/WebGPU/RemoteRenderBundle.h:
- GPUProcess/graphics/WebGPU/RemoteRenderBundleEncoder.cpp:
(WebKit::RemoteRenderBundleEncoder::RemoteRenderBundleEncoder):
(WebKit::RemoteRenderBundleEncoder::setPipeline):
(WebKit::RemoteRenderBundleEncoder::setIndexBuffer):
(WebKit::RemoteRenderBundleEncoder::setVertexBuffer):
(WebKit::RemoteRenderBundleEncoder::drawIndirect):
(WebKit::RemoteRenderBundleEncoder::drawIndexedIndirect):
(WebKit::RemoteRenderBundleEncoder::setBindGroup):
(WebKit::RemoteRenderBundleEncoder::finish):
(WebKit::RemoteRenderBundleEncoder::~RemoteRenderBundleEncoder): Deleted.
- GPUProcess/graphics/WebGPU/RemoteRenderBundleEncoder.h:
- GPUProcess/graphics/WebGPU/RemoteRenderPassEncoder.cpp:
(WebKit::RemoteRenderPassEncoder::RemoteRenderPassEncoder):
(WebKit::RemoteRenderPassEncoder::setPipeline):
(WebKit::RemoteRenderPassEncoder::setIndexBuffer):
(WebKit::RemoteRenderPassEncoder::setVertexBuffer):
(WebKit::RemoteRenderPassEncoder::drawIndirect):
(WebKit::RemoteRenderPassEncoder::drawIndexedIndirect):
(WebKit::RemoteRenderPassEncoder::setBindGroup):
(WebKit::RemoteRenderPassEncoder::setBlendConstant):
(WebKit::RemoteRenderPassEncoder::beginPipelineStatisticsQuery):
(WebKit::RemoteRenderPassEncoder::executeBundles):
(WebKit::RemoteRenderPassEncoder::~RemoteRenderPassEncoder): Deleted.
- GPUProcess/graphics/WebGPU/RemoteRenderPassEncoder.h:
- GPUProcess/graphics/WebGPU/RemoteRenderPipeline.cpp:
(WebKit::RemoteRenderPipeline::RemoteRenderPipeline):
(WebKit::RemoteRenderPipeline::getBindGroupLayout):
(WebKit::RemoteRenderPipeline::~RemoteRenderPipeline): Deleted.
- GPUProcess/graphics/WebGPU/RemoteRenderPipeline.h:
- GPUProcess/graphics/WebGPU/RemoteSampler.cpp:
(WebKit::RemoteSampler::RemoteSampler):
(WebKit::RemoteSampler::~RemoteSampler): Deleted.
- GPUProcess/graphics/WebGPU/RemoteSampler.h:
- GPUProcess/graphics/WebGPU/RemoteShaderModule.cpp:
(WebKit::RemoteShaderModule::RemoteShaderModule):
(WebKit::RemoteShaderModule::~RemoteShaderModule): Deleted.
- GPUProcess/graphics/WebGPU/RemoteShaderModule.h:
- GPUProcess/graphics/WebGPU/RemoteTexture.cpp:
(WebKit::RemoteTexture::RemoteTexture):
(WebKit::RemoteTexture::createView):
(WebKit::RemoteTexture::~RemoteTexture): Deleted.
- GPUProcess/graphics/WebGPU/RemoteTexture.h:
- GPUProcess/graphics/WebGPU/RemoteTextureView.cpp:
(WebKit::RemoteTextureView::RemoteTextureView):
(WebKit::RemoteTextureView::~RemoteTextureView): Deleted.
- GPUProcess/graphics/WebGPU/RemoteTextureView.h:
- GPUProcess/graphics/WebGPU/WebGPUObjectHeap.cpp:
(WebKit::WebGPU::ObjectHeap::addObject):
(WebKit::WebGPU::ObjectHeap::removeObject):
(WebKit::WebGPU::ObjectHeap::convertAdapterFromBacking):
(WebKit::WebGPU::ObjectHeap::convertBindGroupFromBacking):
(WebKit::WebGPU::ObjectHeap::convertBindGroupLayoutFromBacking):
(WebKit::WebGPU::ObjectHeap::convertBufferFromBacking):
(WebKit::WebGPU::ObjectHeap::convertCommandBufferFromBacking):
(WebKit::WebGPU::ObjectHeap::convertCommandEncoderFromBacking):
(WebKit::WebGPU::ObjectHeap::convertComputePassEncoderFromBacking):
(WebKit::WebGPU::ObjectHeap::convertComputePipelineFromBacking):
(WebKit::WebGPU::ObjectHeap::convertDeviceFromBacking):
(WebKit::WebGPU::ObjectHeap::convertExternalTextureFromBacking):
(WebKit::WebGPU::ObjectHeap::convertPipelineLayoutFromBacking):
(WebKit::WebGPU::ObjectHeap::convertQuerySetFromBacking):
(WebKit::WebGPU::ObjectHeap::convertQueueFromBacking):
(WebKit::WebGPU::ObjectHeap::convertRenderBundleEncoderFromBacking):
(WebKit::WebGPU::ObjectHeap::convertRenderBundleFromBacking):
(WebKit::WebGPU::ObjectHeap::convertRenderPassEncoderFromBacking):
(WebKit::WebGPU::ObjectHeap::convertRenderPipelineFromBacking):
(WebKit::WebGPU::ObjectHeap::convertSamplerFromBacking):
(WebKit::WebGPU::ObjectHeap::convertShaderModuleFromBacking):
(WebKit::WebGPU::ObjectHeap::convertTextureFromBacking):
(WebKit::WebGPU::ObjectHeap::convertTextureViewFromBacking):
- GPUProcess/graphics/WebGPU/WebGPUObjectHeap.h:
- GPUProcess/graphics/WebGPU/WebGPUObjectRegistry.cpp: Removed.
- GPUProcess/graphics/WebGPU/WebGPUObjectRegistry.h: Removed.
- GPUProcess/media/RemoteAudioSourceProviderProxy.cpp:
(WebKit::RemoteAudioSourceProviderProxy::create):
(WebKit::RemoteAudioSourceProviderProxy::createRingBuffer):
(WebKit::RemoteAudioSourceProviderProxy::storageChanged):
- Platform/IPC/ScopedActiveMessageReceiveQueue.h:
- Shared/WebGPU/WebGPUConvertFromBackingContext.h:
- Sources.txt:
- WebKit.xcodeproj/project.pbxproj:
- 12:29 PM Changeset in webkit [286255] by
-
- 11 edits in trunk
[JSC] Add Intl.NumberFormat.formatRangeToParts
JSTests:
https://bugs.webkit.org/show_bug.cgi?id=233539
Reviewed by Ross Kirsling.
- stress/intl-numberformat-format-large.js:
(nf.formatRangeToParts.shouldBe.JSON.stringify.nf.formatRangeToParts):
(nf.formatRangeToParts.shouldBe.JSON.stringify.nf2.formatRangeToParts):
- stress/intl-numberformat-format-range-v3.js:
(nf.formatRange.nf.formatRangeToParts.methods.forEach):
(nf.formatRange.string_appeared_here.forEach): Deleted.
- stress/intl-numberformat-format-string-v3.js:
(nf.formatRangeToParts.shouldBe.JSON.stringify.nf.formatRangeToParts):
(nf.formatRangeToParts.shouldBe.JSON.stringify.nf2.formatRangeToParts):
- stress/intl-numberformat-format-string.js:
(nf.formatRangeToParts.shouldBe.JSON.stringify.nf.formatRangeToParts):
(nf.formatRangeToParts.shouldBe.JSON.stringify.nf2.formatRangeToParts):
Source/JavaScriptCore:
https://bugs.webkit.org/show_bug.cgi?id=233540
Reviewed by Ross Kirsling.
This patch implements Intl.NumberFormat#formatRangeToParts if ICU is 69 or greater.
It also cleans up / optimizes existing Intl.NumberFormat#formatToParts implementation.
We first collect all fields generated by ICU. And then, flattening nested fields into
non-overlapping sequence of parts via flattenFields.
- runtime/IntlNumberFormat.cpp:
(JSC::flattenFields):
(JSC::numberFieldsPracticallyEqual):
(JSC::IntlNumberFormat::formatRangeToPartsInternal):
(JSC::IntlNumberFormat::formatRangeToParts const):
(JSC::IntlNumberFormat::formatToPartsInternal):
(JSC::IntlNumberFormat::formatToParts const):
- runtime/IntlNumberFormat.h:
- runtime/IntlNumberFormatPrototype.cpp:
(JSC::IntlNumberFormatPrototype::finishCreation):
(JSC::JSC_DEFINE_HOST_FUNCTION):
- runtime/IntlRelativeTimeFormat.cpp:
(JSC::IntlRelativeTimeFormat::formatToParts const):
- 12:24 PM Changeset in webkit [286254] by
-
- 6 edits in trunk
[Cocoa] REGRESSION(r281291): Text Style fonts don't have the correct weight set
https://bugs.webkit.org/show_bug.cgi?id=233070
Reviewed by Cameron McCormack.
Source/WebCore:
Text style fonts (like font: -apple-system-body) weren't having their weights detected correctly. When the
bold-fonts accessibility setting is enabled, our detection logic was indicating that the fonts weren't
bold when they actually were. This patch fixes the detection logic to use kCTFontCSSWeightAttribute
instead.
Test: platform/ios/ios/fast/text/opticalFontWithWeight.html
- rendering/RenderThemeCocoa.mm:
(WebCore::cssWeightOfSystemFont):
LayoutTests:
- platform/ios-14/platform/ios/ios/fast/text/opticalFontWithWeight-expected.txt:
- platform/ios/ios/fast/text/opticalFontWithWeight-expected.txt:
- platform/ios/platform/ios/ios/fast/text/opticalFontWithWeight-expected.txt:
- 12:18 PM Changeset in webkit [286253] by
-
- 2 edits in trunk/Source/JavaScriptCore
[GTK] 2.35.1 fails to build for Fedora: undefined reference to 'llint_link_call'
https://bugs.webkit.org/show_bug.cgi?id=233574
Unreviewed, add missing attributes.
Patch by Michael Catanzaro <Michael Catanzaro> on 2021-11-29
- llint/LLIntSlowPaths.h:
- 12:11 PM Changeset in webkit [286252] by
-
- 78 edits in trunk/Source
[WebGPU] Provide default values for descriptor struct members
https://bugs.webkit.org/show_bug.cgi?id=233431
Reviewed by Alex Christensen.
Source/WebCore/PAL:
The purpose of this is to be defensive. Ideally these wouldn't actually be used, but it's
a good idea to be safe and have them specified anyway.
I didn't provide default values for members whose types already have something well-defined,
like variants or optionals. But I did for ints and enums.
Where possible, I've matched the default values listed in the spec.
- pal/graphics/WebGPU/WebGPUBindGroupEntry.h:
- pal/graphics/WebGPU/WebGPUBindGroupLayoutEntry.h:
- pal/graphics/WebGPU/WebGPUBlendComponent.h:
- pal/graphics/WebGPU/WebGPUBufferBinding.h:
- pal/graphics/WebGPU/WebGPUBufferBindingLayout.h:
- pal/graphics/WebGPU/WebGPUBufferDescriptor.h:
- pal/graphics/WebGPU/WebGPUCanvasConfiguration.h:
- pal/graphics/WebGPU/WebGPUColor.h:
- pal/graphics/WebGPU/WebGPUColorTargetState.h:
- pal/graphics/WebGPU/WebGPUCompilationMessage.h:
- pal/graphics/WebGPU/WebGPUComputePassTimestampWrites.h:
- pal/graphics/WebGPU/WebGPUDepthStencilState.h:
- pal/graphics/WebGPU/WebGPUExtent3D.h:
- pal/graphics/WebGPU/WebGPUExternalTextureDescriptor.h:
- pal/graphics/WebGPU/WebGPUImageCopyTexture.h:
- pal/graphics/WebGPU/WebGPUImageCopyTextureTagged.h:
- pal/graphics/WebGPU/WebGPUImageDataLayout.h:
- pal/graphics/WebGPU/WebGPUMultisampleState.h:
- pal/graphics/WebGPU/WebGPUOrigin2D.h:
- pal/graphics/WebGPU/WebGPUOrigin3D.h:
- pal/graphics/WebGPU/WebGPUPipelineDescriptorBase.h:
- pal/graphics/WebGPU/WebGPUPrimitiveState.h:
- pal/graphics/WebGPU/WebGPUQuerySetDescriptor.h:
- pal/graphics/WebGPU/WebGPURenderBundleEncoderDescriptor.h:
- pal/graphics/WebGPU/WebGPURenderPassColorAttachment.h:
- pal/graphics/WebGPU/WebGPURenderPassDepthStencilAttachment.h:
- pal/graphics/WebGPU/WebGPURenderPassDescriptor.h:
- pal/graphics/WebGPU/WebGPURenderPassLayout.h:
- pal/graphics/WebGPU/WebGPURenderPassTimestampWrites.h:
- pal/graphics/WebGPU/WebGPURequestAdapterOptions.h:
- pal/graphics/WebGPU/WebGPUSamplerBindingLayout.h:
- pal/graphics/WebGPU/WebGPUSamplerDescriptor.h:
- pal/graphics/WebGPU/WebGPUStencilFaceState.h:
- pal/graphics/WebGPU/WebGPUStorageTextureBindingLayout.h:
- pal/graphics/WebGPU/WebGPUTextureBindingLayout.h:
- pal/graphics/WebGPU/WebGPUTextureDescriptor.h:
- pal/graphics/WebGPU/WebGPUTextureViewDescriptor.h:
- pal/graphics/WebGPU/WebGPUVertexAttribute.h:
- pal/graphics/WebGPU/WebGPUVertexBufferLayout.h:
Source/WebKit:
No new tests because there is no behavior change.
- Shared/WebGPU/WebGPUBindGroupEntry.h:
- Shared/WebGPU/WebGPUBindGroupLayoutEntry.h:
- Shared/WebGPU/WebGPUBlendComponent.h:
- Shared/WebGPU/WebGPUBufferBinding.h:
- Shared/WebGPU/WebGPUBufferBindingLayout.h:
- Shared/WebGPU/WebGPUBufferDescriptor.h:
- Shared/WebGPU/WebGPUCanvasConfiguration.h:
- Shared/WebGPU/WebGPUColor.h:
- Shared/WebGPU/WebGPUColorTargetState.h:
- Shared/WebGPU/WebGPUCompilationMessage.h:
- Shared/WebGPU/WebGPUComputePassTimestampWrites.h:
- Shared/WebGPU/WebGPUDepthStencilState.h:
- Shared/WebGPU/WebGPUExtent3D.h:
- Shared/WebGPU/WebGPUExternalTextureDescriptor.h:
- Shared/WebGPU/WebGPUImageCopyTexture.h:
- Shared/WebGPU/WebGPUImageCopyTextureTagged.h:
- Shared/WebGPU/WebGPUImageDataLayout.h:
- Shared/WebGPU/WebGPUMultisampleState.h:
- Shared/WebGPU/WebGPUOrigin2D.h:
- Shared/WebGPU/WebGPUOrigin3D.h:
- Shared/WebGPU/WebGPUPrimitiveState.h:
- Shared/WebGPU/WebGPUQuerySetDescriptor.h:
- Shared/WebGPU/WebGPURenderBundleEncoderDescriptor.h:
- Shared/WebGPU/WebGPURenderPassColorAttachment.h:
- Shared/WebGPU/WebGPURenderPassDepthStencilAttachment.h:
- Shared/WebGPU/WebGPURenderPassLayout.h:
- Shared/WebGPU/WebGPURenderPassTimestampWrites.h:
- Shared/WebGPU/WebGPURequestAdapterOptions.h:
- Shared/WebGPU/WebGPUSamplerBindingLayout.h:
- Shared/WebGPU/WebGPUSamplerDescriptor.h:
- Shared/WebGPU/WebGPUStencilFaceState.h:
- Shared/WebGPU/WebGPUStorageTextureBindingLayout.h:
- Shared/WebGPU/WebGPUTextureBindingLayout.h:
- Shared/WebGPU/WebGPUTextureDescriptor.h:
- Shared/WebGPU/WebGPUTextureViewDescriptor.h:
- Shared/WebGPU/WebGPUVertexAttribute.h:
- Shared/WebGPU/WebGPUVertexBufferLayout.h:
- 12:04 PM Changeset in webkit [286251] by
-
- 15 edits4 adds in trunk
[JSC] Public Class Field initialization is slow
https://bugs.webkit.org/show_bug.cgi?id=232479
Reviewed by Alexey Shvayka.
JSTests:
- microbenchmarks/class-fields-classic-constructor-assignments.js: Added.
(Classic_Constructor_Assignments):
(bench):
- microbenchmarks/class-fields-private-fields.js: Added.
(ES2022_Private_Fields):
(bench):
- microbenchmarks/class-fields-public-fields.js: Added.
(ES2022_Public_Fields):
(bench):
- stress/class-fields-getter-override.js: Added.
(shouldThrow):
(defineCGetter.):
(B):
(define0Getter.):
(define0Getter):
(D):
- stress/custom-get-set-proto-chain-put.js:
(let.object.of.getObjects):
- stress/freeze-and-seal-should-prevent-extensions.js:
- stress/object-assign-fast-path.js:
- stress/ordinary-set-exceptions.js:
(shouldThrow):
- stress/put-non-reified-static-function-or-custom.js:
- wasm/js-api/test_basic_api.js:
(const.c.in.constructorProperties.switch):
Source/JavaScriptCore:
Class public field implementation did not have optimization for initializing class fields: using
runtime call to initialize fields instead of IC. This patch leverages put_by_id / put_by_val with
direct flag so that we can enable IC.
Currently, we are not changing original putDirect semantics since it is out of this patch's scope.
We will look into it and probably changing it in a separate patch, but not in this patch.
ToT Patched
class-fields-classic-constructor-assignments
17.1491+-2.6327 15.0906+-0.6795 might be 1.1364x faster
class-fields-public-fields 409.4328+-8.3140 20.2752+-2.0835 definitely 20.1938x faster
class-fields-private-fields 27.2621+-1.3858 25.1810+-3.9873 might be 1.0826x faster
- bytecompiler/NodesCodegen.cpp:
(JSC::DefineFieldNode::emitBytecode):
- runtime/CommonSlowPaths.h:
(JSC::CommonSlowPaths::putDirectWithReify):
- runtime/JSObject.cpp:
(JSC::JSObject::putDirectCustomAccessor):
(JSC::JSObject::putDirectNonIndexAccessor):
- runtime/JSObject.h:
(JSC::JSObject::putDirect):
(JSC::JSObject::putDirectRespectingExtensibility):
- runtime/JSObjectInlines.h:
(JSC::JSObject::putInlineFast):
(JSC::JSObject::putDirectInternal):
(JSC::JSObject::putOwnDataProperty):
(JSC::JSObject::putOwnDataPropertyMayBeIndex):
Source/WTF:
- wtf/text/ASCIILiteral.h:
- 11:57 AM Changeset in webkit [286250] by
-
- 2 edits in trunk/Source/WebKit
Make support for WebKitAdditions in Framework headers conditional based on deployment target
https://bugs.webkit.org/show_bug.cgi?id=233566
Reviewed by Wenson Hsieh.
Only support using WebKitAdditions in framework headers on macOS 12+, iOS 16+, tvOS 16+ and
watchOS 9+.
- mac/replace-webkit-additions-includes.py:
(is_supported_os):
(main):
- 11:55 AM Changeset in webkit [286249] by
-
- 4 edits1 add in trunk
[JSC] private name operation should use RETURN_IF_EXCEPTION
https://bugs.webkit.org/show_bug.cgi?id=233577
rdar://85813869
Reviewed by Mark Lam.
JSTests:
- stress/termination-error-in-private-name.js: Added.
(C):
Source/JavaScriptCore:
Because of TerminatedExecutionError, error can be thrown at any time.
- jit/JITOperations.cpp:
(JSC::JSC_DEFINE_JIT_OPERATION):
(JSC::putPrivateNameOptimize):
(JSC::putPrivateName):
- llint/LLIntSlowPaths.cpp:
(JSC::LLInt::LLINT_SLOW_PATH_DECL):
- 11:51 AM Changeset in webkit [286248] by
-
- 8 edits1 add in trunk
[JSC] Move m_incomingPolymorphicCalls out of CodeBlock::JITData
https://bugs.webkit.org/show_bug.cgi?id=233415
Reviewed by Mark Lam and Darin Adler.
Source/JavaScriptCore:
This patch moves m_incomingPolymorphicCalls from CodeBlock::JITData to CodeBlock since it is now used
in LLInt too if JIT is enabled. To keep CodeBlock small, this patch shrinks sizeof(SentinelLinkedList).
- bytecode/CodeBlock.cpp:
(JSC::CodeBlock::linkIncomingPolymorphicCall):
(JSC::CodeBlock::unlinkIncomingCalls):
- bytecode/CodeBlock.h:
Source/WTF:
Make sizeof(SentinelLinkedList) small. We do not need to have two sentinel for the list.
- wtf/SentinelLinkedList.h:
(WTF::SentinelLinkedList::SentinelLinkedList):
(WTF::RawNode>::begin):
(WTF::RawNode>::end):
(WTF::RawNode>::push):
(WTF::RawNode>::append):
(WTF::RawNode>::takeFrom):
(WTF::RawNode>::SentinelLinkedList): Deleted.
Tools:
Add tests for SentinelLinkedList.
- TestWebKitAPI/CMakeLists.txt:
- TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
- TestWebKitAPI/Tests/WTF/SentinelLinkedList.cpp: Added.
(TestWebKitAPI::TestNode::TestNode):
(TestWebKitAPI::TestNode::value const):
(TestWebKitAPI::TEST):
- 11:43 AM Changeset in webkit [286247] by
-
- 14 edits in branches/safari-612-branch/Source
Cherry-pick r285648. rdar://problem/85171163
Log memory usage metadata when WebContent crosses critical or warning level memory thresholds
https://bugs.webkit.org/show_bug.cgi?id=232976
Reviewed by Darin Adler.
Source/WebCore:
WebCore::logMemoryStatistics was changed to:
- Emit VM tag names as public strings to the log. There isn't anything privacy sensitive about our 256 fixed VM tags, and emitting them to the logs as as private string (as we were doing before) made those log lines useless.
- Use WebCore::memoryUsageStatistics to gather memory metadata, since other WebCore callsites were already using that and it reduces code duplication.
- Only log JS object type counts on internal OS builds. Previously we also logged those counts on public OS builds, but that was useless since all the class names were redacted in the log.
- page/MemoryRelease.cpp: (WebCore::logMemoryStatistics): (WebCore::logMemoryStatisticsReasonDescription): (WebCore::pageCount): Deleted. (WebCore::logMemoryStatisticsAtTimeOfDeath): Deleted.
- page/MemoryRelease.h:
- page/PerformanceLogging.cpp: (WebCore::PerformanceLogging::memoryUsageStatistics): (WebCore::PerformanceLogging::didReachPointOfInterest):
- page/PerformanceLogging.h:
- page/cocoa/PerformanceLoggingCocoa.mm: (WebCore::PerformanceLogging::getPlatformMemoryUsageStatistics):
Source/WebKit:
Added callbacks to log memory usage metadata the first time a process hits these milestones:
- exceeded inactive memory limit while active (on Mac)
- exceeded warning process limit threshold (on other non-Mac Apple platforms)
- exceeded critical process limit threshold (on other non-Mac Apple platforms)
The reason for this is we receive a large number of out of memory reports with very little
info in the logs. We want to log more metadata about memory usage (similar to what we do on
Mac inWebCore::logMemoryStatisticsAtTimeOfDeath
) to help us debug those reports.
- WebProcess/WebProcess.cpp: (WebKit::WebProcess::initializeWebProcess):
- WebProcess/WebProcess.h:
Source/WTF:
Fixed several issues with memory usage tracking:
- pagesPerVMTag now properly accounts for swapped-out pages in its footprint calculation, as footprint(1) already does.
- displayNamePerVMTag now includes all of the most common VM tags associated with WebKit.
- MemoryPressureHandler now knows the specific type of pressure event that occurred. This allows it to differentiate between the entire system being at a warning pressure level vs. just this process hitting its warning memory level limit.
- wtf/MemoryPressureHandler.cpp: (WTF::MemoryPressureHandler::setMemoryPressureStatus): (WTF::MemoryPressureHandler::memoryPressureStatusChanged): (WTF::MemoryPressureHandler::setUnderMemoryPressure): Deleted.
- wtf/MemoryPressureHandler.h: (WTF::MemoryPressureHandler::setMemoryPressureStatusChangedCallback): (WTF::MemoryPressureHandler::isUnderMemoryPressure const):
- wtf/ResourceUsage.h:
- wtf/cocoa/MemoryPressureHandlerCocoa.mm: (WTF::MemoryPressureHandler::install):
- wtf/cocoa/ResourceUsageCocoa.cpp: (WTF::displayNameForVMTag): (WTF::pagesPerVMTag):
- wtf/unix/MemoryPressureHandlerUnix.cpp: (WTF::MemoryPressureHandler::triggerMemoryPressureEvent):
- wtf/win/MemoryPressureHandlerWin.cpp: (WTF::MemoryPressureHandler::windowsMeasurementTimerFired):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@285648 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 11:38 AM Changeset in webkit [286246] by
-
- 5 edits in branches/safari-612-branch/Source
Apply patch. rdar://problem/83673859
- 11:38 AM Changeset in webkit [286245] by
-
- 4 edits in branches/safari-612-branch/Source
Cherry-pick r285130. rdar://problem/85166839
[macOS] Opening local html files is failing
https://bugs.webkit.org/show_bug.cgi?id=232572
<rdar://81330442>
Reviewed by Brent Fulgham.
Source/WebKit:
On some macOS versions, opening local html files is failing. In order for the WebContent process
to successfully issue the file extension to the Networking process, the flags for the extension
in the WebContent process must include the user intent flag when the extension is issued with an
audit token.
- Shared/Cocoa/SandboxExtensionCocoa.mm: (WebKit::SandboxExtensionImpl::sandboxExtensionForType):
Source/WTF:
Declare sandbox flag.
- wtf/spi/darwin/SandboxSPI.h:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@285130 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 11:38 AM Changeset in webkit [286244] by
-
- 3 edits3 adds in branches/safari-612-branch
Cherry-pick r285823. rdar://problem/85236459
Cross-Origin-Embedder-Policy: require-corp
prevents loading of data URL images
https://bugs.webkit.org/show_bug.cgi?id=233131
<rdar://85236459>
Reviewed by Geoffrey Garen.
Source/WebCore:
When doing an initial data URL <img> load, we properly wouldn't perform a cross-origin resource policy check.
This is per the Fetch specification that says to use a scheme fetch [1] when the request URL is a data URL.
When the protocol is data, the scheme fetch algorithm would return a response without performing an HTTP
Fetch. The HTTP check [2] is the algorithm that actually performs a cross-origin resource policy check, at
step 7.
The issue with our implementation was that data URL <img> loads would perform a cross-origin resource policy
check in the case where the image is loaded from our memory cache, due to a check we had in
CachedResourceLoader::requestResource(). As a result, data URL <img> loads would fail when served from the
memory cache, when CORP is enforced. To address the issue and match the specification, we now disable this
CORP check when the request URL is a data URL.
[1] https://fetch.spec.whatwg.org/#scheme-fetch
[2] https://fetch.spec.whatwg.org/#concept-http-fetch
Test: http/wpt/html/cross-origin-embedder-policy/require-corp-data-url.html
- loader/cache/CachedResourceLoader.cpp: (WebCore::CachedResourceLoader::requestResource):
LayoutTests:
Add layout test coverage. This test is based on a reduce test case from Cameron McCormack.
- http/wpt/html/cross-origin-embedder-policy/require-corp-data-url-expected.txt: Added.
- http/wpt/html/cross-origin-embedder-policy/require-corp-data-url.html: Added.
- http/wpt/html/cross-origin-embedder-policy/require-corp-data-url.html.headers: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@285823 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 11:38 AM Changeset in webkit [286243] by
-
- 2 edits in branches/safari-612-branch/Source/WebKit
Cherry-pick r283386. rdar://problem/83953959
Protect WebFrame during invalidatePolicyListener()
https://bugs.webkit.org/show_bug.cgi?id=229981
<rdar://problem/82807413>
Reviewed by Alex Christensen.
- WebProcess/WebPage/WebFrame.cpp: (WebKit::WebFrame::invalidatePolicyListeners): Protect the WebFrame while policy handlers are run.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@283386 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 11:38 AM Changeset in webkit [286242] by
-
- 4 edits in branches/safari-612-branch/Source/WebCore
Apply patch. rdar://problem/83971417
- 11:38 AM Changeset in webkit [286241] by
-
- 3 edits2 adds in branches/safari-612-branch
Cherry-pick r285728. rdar://problem/85236241
[Web Animations] Accelerated animations with a single keyframe don't account for prior forward-filling animations
https://bugs.webkit.org/show_bug.cgi?id=233041
<rdar://problem/85236241>
Reviewed by Dean Jackson.
Source/WebCore:
Test: webanimations/accelerated-animation-after-forward-filling-animation.html
When starting an accelerated animation, we would fill any implicit keyframes based on the unanimated style.
We now also apply all animations below this animation in the target's effect stack such that a previous
forward-filling animation is accounted for.
- animation/KeyframeEffect.cpp: (WebCore::KeyframeEffect::applyPendingAcceleratedActions):
LayoutTests:
Add a new test that runs a forward-filling animation for
transform
, waits for its completion,
then runs anothertransform
animation with an implicit initial keyframe, ensuring that the
result of the first forward-filling animation is accounted for when computing the initial
keyframe.
This test would fail prior to this patch.
- webanimations/accelerated-animation-after-forward-filling-animation-expected.html: Added.
- webanimations/accelerated-animation-after-forward-filling-animation.html: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@285728 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 11:38 AM Changeset in webkit [286240] by
-
- 1 edit in branches/safari-612-branch/Source/WebKit/NetworkProcess/cocoa/NetworkSessionCocoa.h
Unreviewed build fix. rdar://problem/83159358
error: out-of-line definition of 'isolatedSession' does not match any declaration in 'WebKit::SessionSet'
- 11:38 AM Changeset in webkit [286239] by
-
- 3 edits in branches/safari-612-branch/Source/WebKit
Revert r285690. rdar://problem/83381842
- 11:38 AM Changeset in webkit [286238] by
-
- 2 edits in branches/safari-612-branch/Source/WebCore
Revert r285691. rdar://problem/83381842
- 11:38 AM Changeset in webkit [286237] by
-
- 3 edits in branches/safari-612-branch/Source/WebCore
Revert r285680. rdar://problem/85004449
- 11:38 AM Changeset in webkit [286236] by
-
- 9 edits in branches/safari-612-branch
Cherry-pick r285565. rdar://problem/83159358
[macOS] Enable NSURLSession partitioning based on first-party domain at CFNetwork level
https://bugs.webkit.org/show_bug.cgi?id=230750
<rdar://problem/83159358>
Reviewed by Alex Christensen.
Source/WebKit:
- NetworkProcess/cocoa/NetworkDataTaskCocoa.mm: (WebKit::NetworkDataTaskCocoa::NetworkDataTaskCocoa): (overrideAttributionContext): Deleted. Stop disabling CFNetwork NSURLSession partitioning based on first-party domain on macOS.
- NetworkProcess/cocoa/NetworkSessionCocoa.h:
- NetworkProcess/cocoa/NetworkSessionCocoa.mm: (WebKit::NetworkSessionCocoa::sessionWrapperForTask): (WebKit::NetworkSessionCocoa::hasIsolatedSession const): (WebKit::NetworkSessionCocoa::clearIsolatedSessions): (WebKit::NetworkSessionCocoa::invalidateAndCancelSessionSet): Disable ITP session partitioning of certain prevalent domains on platforms where CFNetwork already does full partitioning of all domains (now that it is enabled on macOS 12+ and iOS15+).
Source/WTF:
Add HAVE(CFNETWORK_SESSION_PARTITIONING_BASED_ON_FIRST_PARTY_DOMAIN) build time flag that is true
on newer Apple OSes where CFNetwork does NSURLSession partitioning based on first-party domain for
us.
- wtf/PlatformHave.h:
LayoutTests:
Skip a few ITP session partitioning tests on newer OSes now that session partitioning
happens for all first-party domains at CFNetwork level on these OSes.
- platform/ios-wk2/TestExpectations:
- platform/mac-wk2/TestExpectations:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@285565 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 11:37 AM Changeset in webkit [286235] by
-
- 2 edits in branches/safari-612-branch/Source/WebKit
Cherry-pick r285550. rdar://problem/85075538
REGRESSION (Safari 15): AudioContext.currentTime speeds up (and audio won't play) when Bluetooth speaker connected
https://bugs.webkit.org/show_bug.cgi?id=232728
<rdar://problem/85075538>
Reviewed by Jer Noble.
This was a regression from us moving WebAudio to the GPUProcess in Safari 15. The issue occurred because the
WebProcess (writer) would get further and further ahead of the GPUProcess (reader) after a hardware sample
rate change.
When rendering on https://mdn.github.io/webaudio-examples/audiocontext-states/ with a hardware sample rate of
96Khz, RemoteAudioDestination::render() would get called with a numberOfFrame=128. Each time
RemoteAudioDestination::render() was called, it would signal the IPC semaphore, causing the WebProcess to
produce one WebAudio rendering quantum (128 frames). This would match perfectly and there would be no issues.
However, if during playback, the hardware sample rate changes (which can happen when connecting to bluetooth
speakers), CoreAudio would start calling RemoteAudioDestination::render() with a different numberOfFrame.
For example, when switching the hardware sample rate to 44.1Khz, numberOfFrames would be 278. Every time it
is called, render() would signal the semaphore 3 times, causing the WebProcess to produce 3 WebAudio rendering
quantums (3 * 128 = 384 frames). So each time render() is called, the WebProcess would generate384 - 278 = 105
frames too many, causing it to get further and further ahead of the GPUProcess. One symptom would be that
AudioContext.currentTime would progress too fast. Also, eventually, our RingBuffer between the 2 process would
fill up and lead to rendering issues.
To address the issue, I updated RemoteAudioDestination::render() to keep track of how many extra samples it
requested from the WebProcess previously. This avoids signalling the IPC semaphore too many times and the
WebProcess can no longer get too far ahead of the GPUProcess. The logic matches what was already done in
RemoteAudioMediaStreamTrackRendererInternalUnitManager::Unit::render().
- GPUProcess/media/RemoteAudioDestinationManager.cpp:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@285550 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 11:37 AM Changeset in webkit [286234] by
-
- 2 edits in branches/safari-612-branch/Source/WebCore
Cherry-pick r285531. rdar://problem/83381842
Fix macCatalyst build after r285509
https://bugs.webkit.org/show_bug.cgi?id=232863
Unreviewed.
- Modules/speech/cocoa/SpeechRecognizerCocoa.mm:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@285531 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 11:37 AM Changeset in webkit [286233] by
-
- 3 edits in branches/safari-612-branch/Source/WebKit
Cherry-pick r285509. rdar://problem/83381842
Fix wrong frame count of CARingBuffer in SpeechRecognitionRemoteRealtimeMediaSource
https://bugs.webkit.org/show_bug.cgi?id=232863
<rdar://83381842>
Reviewed by Youenn Fablet.
SpeechRecognitionRealtimeMediaSourceManager::Source uses shared ring buffer to pass audio data to
SpeechRecognitionRemoteRealtimeMediaSource. We used to ask CARingBuffer in
SpeechRecognitionRealtimeMediaSourceManager::Source to allocate with m_numberOfFrames and send m_numberOfFrames
to SpeechRecognitionRemoteRealtimeMediaSource (so SpeechRecognitionRemoteRealtimeMediaSource can create a
corresponding CARingBuffer). This is wrong because CARingBuffer::allocate() rounds up frameCount to power of
two, which means m_numberOfFrames may be not the number used. We should get the actual frameCount in the
setStorage callback of SharedRingBufferStorage, and pass that value to SpeechRecognitionRemoteRealtimeMediaSource.
Manually tested.
- UIProcess/SpeechRecognitionRemoteRealtimeMediaSource.cpp: (WebKit::SpeechRecognitionRemoteRealtimeMediaSource::setStorage):
- WebProcess/Speech/SpeechRecognitionRealtimeMediaSourceManager.cpp: (WebKit::SpeechRecognitionRealtimeMediaSourceManager::Source::Source): (WebKit::SpeechRecognitionRealtimeMediaSourceManager::Source::storageChanged):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@285509 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 11:37 AM Changeset in webkit [286232] by
-
- 3 edits in branches/safari-612-branch/Source/WebCore
Cherry-pick r285330. rdar://problem/85004449
Nested run loops under MediaPlayerPrivateAVFoundationObjC::waitForVideoOutputMediaDataWillChange can cause hang when timeout fires
https://bugs.webkit.org/show_bug.cgi?id=232695
<rdar://problem/85004449>
Reviewed by Jer Noble.
It's possible for MediaPlayerPrivateAVFoundationObjC::waitForVideoOutputMediaDataWillChange
to be called re-entrantly, if the RunLoop::run call ends up processing
an event that also wants to synchronously update the media image. This
can cause a hang:
- Enter the outer waitForVideoOutputMediaDataWillChange call.
- Set up the outer timeout timer.
- Call RunLoop::run.
3.1. Enter the inner waitForVideoOutputMediaDataWillChange call.
3.2. Set up the inner timeout timer.
3.3. Call RunLoop::run.
3.3.1. Wait for new RunLoop events, and none arrive.
3.3.2. The outer timeout timer fires, calling RunLoop::stop.
3.4. Return from waitForVideoOutputMediaDataWillChange, cancelling
the inner timeout timer.
3.5. Wait for more events on the run loop, forever.
To avoid this, we can set up a single timeout timer, and track the
nesting level of our RunLoop::run calls. The innermost RunLoop::run call
will finish either by the timer firing (which calls RunLoop::stop) or by
the video data updating (which also calls RunLoop::stop, under
outputMediaDataWillChange). Either way, once the innermost
RunLoop::run call is finished, we know we can stop processing all of
the ancestor RunLoop:run calls.
- platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
- platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm: (WebCore::MediaPlayerPrivateAVFoundationObjC::waitForVideoOutputMediaDataWillChange): (WebCore::MediaPlayerPrivateAVFoundationObjC::outputMediaDataWillChange):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@285330 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 11:37 AM Changeset in webkit [286231] by
-
- 3 edits3 adds in branches/safari-612-branch
Cherry-pick r284434. rdar://problem/77969801
WebM with invalid size should fail to load with error
https://bugs.webkit.org/show_bug.cgi?id=231886
rdar://77969801
Reviewed by Jer Noble.
Source/WebCore:
libwebm for some elements are using a std::string or a std::vector<uint8_t>
to store their content. Those have infallible memory allocators.
We limit the size we allow the parser to use to some reasonable values.
Test: media/media-webm-invalid-check.html
- platform/graphics/cocoa/SourceBufferParserWebM.cpp: (WebCore::SourceBufferParserWebM::OnElementBegin):
LayoutTests:
- media/content/invalid-size.webm: Added.
- media/media-webm-invalid-check-expected.txt: Added.
- media/media-webm-invalid-check.html: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@284434 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 11:37 AM Changeset in webkit [286230] by
-
- 3 edits1 add in branches/safari-612-branch
Cherry-pick r283300. rdar://problem/85259264
DFG strength reduction on % operator should handle an INT_MIN divisor.
https://bugs.webkit.org/show_bug.cgi?id=230391
<rdar://problem/83229740>
Reviewed by Robin Morisset.
JSTests:
- stress/dfg-strength-reduction-on-mod-should-handle-INT_MIN.js: Added.
Source/JavaScriptCore:
- dfg/DFGStrengthReductionPhase.cpp: (JSC::DFG::StrengthReductionPhase::handleNode):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@283300 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 11:30 AM Changeset in webkit [286229] by
-
- 3 edits5 adds in trunk/LayoutTests
[GLIB] Update test expectations and baselines. Unreviewed test gardening.
https://bugs.webkit.org/show_bug.cgi?id=233530
Patch by Arcady Goldmints-Orlov <Arcady Goldmints-Orlov> on 2021-11-29
- platform/glib/TestExpectations:
- platform/glib/imported/w3c/web-platform-tests/css/css-transforms/animation/transform-interpolation-inline-value-expected.txt: Added.
- platform/glib/storage/domstorage/sessionstorage/blocked-file-access-expected.txt: Added.
- platform/gtk/imported/w3c/web-platform-tests/css/cssom/getComputedStyle-detached-subtree-expected.txt:
- 11:10 AM Changeset in webkit [286228] by
-
- 6 edits1 add in trunk
[JSC] GetTypedArrayLengthAsInt52 can get Array::Generic ArrayMode
https://bugs.webkit.org/show_bug.cgi?id=233571
rdar://85812164
Reviewed by Mark Lam.
JSTests:
- stress/get-typed-array-length-as-int52-generic.js: Added.
(foo.bar):
(foo):
Source/JavaScriptCore:
If speculation is not populated enough, then GetTypedArrayLengthAsInt52 can get Array::Generic.
In that case, we should convert it to Array::ForceExit as it is done in GetArrayLength.
And blessArrayOperation inserts ForceOSRExit. So GetTypedArrayLengthAsInt52 won't be compiled.
- dfg/DFGClobberize.h:
(JSC::DFG::clobberize):
- dfg/DFGFixupPhase.cpp:
(JSC::DFG::FixupPhase::fixupNode):
- dfg/DFGSpeculativeJIT64.cpp:
(JSC::DFG::SpeculativeJIT::compileGetTypedArrayLengthAsInt52):
- ftl/FTLLowerDFGToB3.cpp:
(JSC::FTL::DFG::LowerDFGToB3::compileGetTypedArrayLengthAsInt52):
- 11:06 AM Changeset in webkit [286227] by
-
- 36 edits in trunk/Source
[Model] clean up compile-time flags and condition IDL methods behind them
https://bugs.webkit.org/show_bug.cgi?id=233407
Reviewed by Tim Horton.
Source/WebCore:
We condition the availability of IDL methods recently added to HTMLModelElement by
the new set of ENABLE_MODEL_ELEMENT_XXX_CONTROL flags.
- Modules/model-element/HTMLModelElement.cpp:
- Modules/model-element/HTMLModelElement.h:
- Modules/model-element/HTMLModelElement.idl:
- Modules/model-element/ModelPlayer.h:
- Modules/model-element/dummy/DummyModelPlayer.cpp:
- Modules/model-element/dummy/DummyModelPlayer.h:
- Modules/model-element/scenekit/SceneKitModelPlayer.h:
- Modules/model-element/scenekit/SceneKitModelPlayer.mm:
Source/WebCore/PAL:
We adopt the changes made to flags in wtf/PlatformEnableCocoa.h and wtf/PlatformHave.h.
We also remove the use of existing flags in QuartzCoreSPI.h since they're not actually
valid.
- pal/spi/cocoa/QuartzCoreSPI.h:
- pal/spi/ios/SystemPreviewSPI.h:
- pal/spi/mac/SystemPreviewSPI.h:
Source/WebKit:
On top of adopting the changes made to flags in wtf/PlatformEnableCocoa.h and wtf/PlatformHave.h,
we condition the definition of code related to IDL methods recently added to HTMLModelElement by
the new set of ENABLE_MODEL_ELEMENT_XXX_CONTROL flags, uncluding WebPageProxy messages allowing
for this feature to work.
- Shared/ModelIdentifier.h:
(WebKit::ModelIdentifier::encode const):
(WebKit::ModelIdentifier::decode):
- UIProcess/Cocoa/ModelElementControllerCocoa.mm:
(WebKit::previewHasCameraSupport):
(WebKit::ModelElementController::getCameraForModelElement):
(WebKit::ModelElementController::setCameraForModelElement):
(WebKit::previewHasAnimationSupport):
(WebKit::ModelElementController::isPlayingAnimationForModelElement):
(WebKit::ModelElementController::setAnimationIsPlayingForModelElement):
(WebKit::ModelElementController::isLoopingAnimationForModelElement):
(WebKit::ModelElementController::setIsLoopingAnimationForModelElement):
(WebKit::ModelElementController::animationDurationForModelElement):
(WebKit::ModelElementController::animationCurrentTimeForModelElement):
(WebKit::ModelElementController::setAnimationCurrentTimeForModelElement):
(WebKit::previewHasAudioSupport):
(WebKit::ModelElementController::hasAudioForModelElement):
(WebKit::ModelElementController::isMutedForModelElement):
(WebKit::ModelElementController::setIsMutedForModelElement):
- UIProcess/ModelElementController.h:
- UIProcess/RemoteLayerTree/ios/RemoteLayerTreeHostIOS.mm:
(WebKit::RemoteLayerTreeHost::makeNode):
- UIProcess/WebPageProxy.cpp:
- UIProcess/WebPageProxy.h:
- UIProcess/WebPageProxy.messages.in:
- UIProcess/ios/WKModelInteractionGestureRecognizer.h:
- UIProcess/ios/WKModelInteractionGestureRecognizer.mm:
- UIProcess/ios/WKModelView.h:
- UIProcess/ios/WKModelView.mm:
- WebProcess/Model/ARKitInlinePreviewModelPlayer.h:
- WebProcess/Model/ARKitInlinePreviewModelPlayer.mm:
- WebProcess/Model/WebModelPlayerProvider.cpp:
(WebKit::WebModelPlayerProvider::createModelPlayer):
- WebProcess/Model/ios/ARKitInlinePreviewModelPlayerIOS.h:
- WebProcess/Model/ios/ARKitInlinePreviewModelPlayerIOS.mm:
- WebProcess/Model/mac/ARKitInlinePreviewModelPlayerMac.h:
- WebProcess/Model/mac/ARKitInlinePreviewModelPlayerMac.mm:
(WebKit::ARKitInlinePreviewModelPlayerMac::supportsMouseInteraction):
- WebProcess/WebProcess.cpp:
(WebKit::WebProcess::setWebsiteDataStoreParameters):
Source/WTF:
We refactor and augment the flags related to the <model> element. First, we change the
following existing flags from ENABLE to HAVE since they are about the availability of
specific APIs in ARKit, and more specific ASVInlinePreview. The changes are as follows:
ENABLE_ARKIT_INLINE_PREVIEW_IOS => HAVE_ASV_INLINE_PREVIEW_IOS
ENABLE_ARKIT_INLINE_PREVIEW_MAC => HAVE_ASV_INLINE_PREVIEW_MAC
ENABLE_ARKIT_INLINE_PREVIEW_CAMERA_TRANSFORM => HAVE_ASV_INLINE_PREVIEW_CAMERA_CONTROL
ENABLE_ARKIT_INLINE_PREVIEW_ANIMATIONS_CONTROL => HAVE_ASV_INLINE_PREVIEW_ANIMATION_CONTROL
ENABLE_ARKIT_INLINE_PREVIEW_AUDIO_CONTROL => HAVE_ASV_INLINE_PREVIEW_AUDIO_CONTROL
We retain the ENABLE_ARKIT_INLINE_PREVIEW flag however as, even when the ASVInlinePreview API is
available, we may elect to not use this API.
Then, we add three new flags to specify whether some <model> features exposed to the Web are enabled,
all currently conditioned by the matching HAVE_ASV_INLINE_PREVIEW_ flags, but those could be subject
to more complex rules when other <model> backends expose supporting APIs for these features.
ENABLE_MODEL_ELEMENT_CAMERA_CONTROL
ENABLE_MODEL_ELEMENT_ANIMATION_CONTROL
ENABLE_MODEL_ELEMENT_AUDIO_CONTROL
Finally, we modify the macOS version used to define the HAVE_ASV_INLINE_PREVIEW_XXX_CONTROL flags.
- wtf/PlatformEnableCocoa.h:
- wtf/PlatformHave.h:
- 10:43 AM Changeset in webkit [286226] by
-
- 9 edits in trunk
[:has() pseudo-class] id invalidation support
https://bugs.webkit.org/show_bug.cgi?id=233557
Reviewed by Simon Fraser.
LayoutTests/imported/w3c:
- web-platform-tests/css/selectors/invalidation/attribute-or-elemental-selectors-in-has-expected.txt:
Source/WebCore:
The existing invalidation code doesn't automatically cover id mutations for has since it doesn't use rulesets
(because id mutations are rare and have not been worth optimizing).
- style/ChildChangeInvalidation.cpp:
(WebCore::Style::ChildChangeInvalidation::invalidateForChangedElement):
Invalidate for ids.
Only look for descendant matching :has rulesets for non-children.
- style/IdChangeInvalidation.cpp:
(WebCore::Style::IdChangeInvalidation::invalidateStyle):
Invalidate with RuleSets.
- style/RuleFeature.cpp:
(WebCore::Style::RuleFeatureSet::recursivelyCollectFeaturesFromSelector):
Collect ids for building rulesets for :has case only, similar to tags.
(WebCore::Style::RuleFeatureSet::collectFeatures):
(WebCore::Style::RuleFeatureSet::add):
Use some lambdas to reduce copy code.
(WebCore::Style::RuleFeatureSet::clear):
(WebCore::Style::RuleFeatureSet::shrinkToFit):
- style/RuleFeature.h:
- style/StyleScopeRuleSets.cpp:
(WebCore::Style::ScopeRuleSets::idInvalidationRuleSets const):
- style/StyleScopeRuleSets.h:
- 10:38 AM Changeset in webkit [286225] by
-
- 47 edits in trunk/Source/WebGPU
[WebGPU] Make WebGPU.framework's classes reference counted
https://bugs.webkit.org/show_bug.cgi?id=233547
Reviewed by Dean Jackson.
This is a fairly mechanical change of replacing constructors with calls to create(), and
changing instances to Ref<...>, and using -> instead of .
There's one somewhat interesting design choice here. The header has things like:
typedef struct WGPUAdapterImpl* WGPUAdapter;
But we're using C++ so we want to have something like
namespace WebGPU {
class Adapter : public RefCounted<Adapter> {
...
};
}
So we need to have some way of connecting these two things. This patch opts to do this like so:
struct WGPUAdapterImpl {
Ref<Adapter> adapter;
};
This isn't perfect, because it means that all method calls require a double dereference: one to
dereference the WGPUAdapter to get the WGPUAdapterImpl, and one to dereference the Ref<Adapter>
to get the Adapter. This is the most elegant solution for now, because it doesn't require any
reinterpret_cast<>()'ing. This patch chooses this elegant solution, because premature optimization
is the root of all evil.
- WebGPU/Adapter.h:
(WebGPU::Adapter::create):
- WebGPU/Adapter.mm:
(WebGPU::Adapter::requestDevice):
(wgpuAdapterGetLimits):
(wgpuAdapterGetProperties):
(wgpuAdapterHasFeature):
(wgpuAdapterGetFeatureAtIndex):
(wgpuAdapterRequestDevice):
- WebGPU/BindGroup.h:
(WebGPU::BindGroup::create):
- WebGPU/BindGroup.mm:
(wgpuBindGroupSetLabel):
- WebGPU/BindGroupLayout.h:
(WebGPU::BindGroupLayout::create):
- WebGPU/BindGroupLayout.mm:
(wgpuBindGroupLayoutSetLabel):
- WebGPU/Buffer.h:
(WebGPU::Buffer::create):
- WebGPU/Buffer.mm:
(WebGPU::Buffer::mapAsync):
(wgpuBufferDestroy):
(wgpuBufferGetConstMappedRange):
(wgpuBufferGetMappedRange):
(wgpuBufferMapAsync):
(wgpuBufferUnmap):
(wgpuBufferSetLabel):
- WebGPU/CommandBuffer.h:
(WebGPU::CommandBuffer::create):
- WebGPU/CommandBuffer.mm:
(wgpuCommandBufferSetLabel):
- WebGPU/CommandEncoder.h:
(WebGPU::CommandEncoder::create):
- WebGPU/CommandEncoder.mm:
(WebGPU::CommandEncoder::beginComputePass):
(WebGPU::CommandEncoder::beginRenderPass):
(WebGPU::CommandEncoder::finish):
(wgpuCommandEncoderBeginComputePass):
(wgpuCommandEncoderBeginRenderPass):
(wgpuCommandEncoderCopyBufferToBuffer):
(wgpuCommandEncoderCopyBufferToTexture):
(wgpuCommandEncoderCopyTextureToBuffer):
(wgpuCommandEncoderCopyTextureToTexture):
(wgpuCommandEncoderFillBuffer):
(wgpuCommandEncoderFinish):
(wgpuCommandEncoderInsertDebugMarker):
(wgpuCommandEncoderPopDebugGroup):
(wgpuCommandEncoderPushDebugGroup):
(wgpuCommandEncoderResolveQuerySet):
(wgpuCommandEncoderWriteTimestamp):
(wgpuCommandEncoderSetLabel):
- WebGPU/ComputePassEncoder.h:
(WebGPU::ComputePassEncoder::create):
- WebGPU/ComputePassEncoder.mm:
(wgpuComputePassEncoderBeginPipelineStatisticsQuery):
(wgpuComputePassEncoderDispatch):
(wgpuComputePassEncoderDispatchIndirect):
(wgpuComputePassEncoderEndPass):
(wgpuComputePassEncoderEndPipelineStatisticsQuery):
(wgpuComputePassEncoderInsertDebugMarker):
(wgpuComputePassEncoderPopDebugGroup):
(wgpuComputePassEncoderPushDebugGroup):
(wgpuComputePassEncoderSetBindGroup):
(wgpuComputePassEncoderSetPipeline):
(wgpuComputePassEncoderWriteTimestamp):
(wgpuComputePassEncoderSetLabel):
- WebGPU/ComputePipeline.h:
(WebGPU::ComputePipeline::create):
- WebGPU/ComputePipeline.mm:
(WebGPU::ComputePipeline::getBindGroupLayout):
(wgpuComputePipelineGetBindGroupLayout):
(wgpuComputePipelineSetLabel):
- WebGPU/Device.h:
(WebGPU::Device::create):
- WebGPU/Device.mm:
(WebGPU::Device::createBindGroup):
(WebGPU::Device::createBindGroupLayout):
(WebGPU::Device::createBuffer):
(WebGPU::Device::createCommandEncoder):
(WebGPU::Device::createComputePipeline):
(WebGPU::Device::createComputePipelineAsync):
(WebGPU::Device::createPipelineLayout):
(WebGPU::Device::createQuerySet):
(WebGPU::Device::createRenderBundleEncoder):
(WebGPU::Device::createRenderPipeline):
(WebGPU::Device::createRenderPipelineAsync):
(WebGPU::Device::createSampler):
(WebGPU::Device::createShaderModule):
(WebGPU::Device::createSwapChain):
(WebGPU::Device::createTexture):
(WebGPU::Device::getQueue):
(WebGPU::Device::popErrorScope):
(WebGPU::Device::setDeviceLostCallback):
(WebGPU::Device::setUncapturedErrorCallback):
(wgpuDeviceCreateBindGroup):
(wgpuDeviceCreateBindGroupLayout):
(wgpuDeviceCreateBuffer):
(wgpuDeviceCreateCommandEncoder):
(wgpuDeviceCreateComputePipeline):
(wgpuDeviceCreateComputePipelineAsync):
(wgpuDeviceCreatePipelineLayout):
(wgpuDeviceCreateQuerySet):
(wgpuDeviceCreateRenderBundleEncoder):
(wgpuDeviceCreateRenderPipeline):
(wgpuDeviceCreateRenderPipelineAsync):
(wgpuDeviceCreateSampler):
(wgpuDeviceCreateShaderModule):
(wgpuDeviceCreateSwapChain):
(wgpuDeviceCreateTexture):
(wgpuDeviceDestroy):
(wgpuDeviceGetLimits):
(wgpuDeviceGetQueue):
(wgpuDevicePopErrorScope):
(wgpuDevicePushErrorScope):
(wgpuDeviceSetDeviceLostCallback):
(wgpuDeviceSetUncapturedErrorCallback):
(wgpuDeviceSetLabel):
- WebGPU/Instance.h:
(WebGPU::Instance::create):
- WebGPU/Instance.mm:
(WebGPU::Instance::createSurface):
(WebGPU::Instance::requestAdapter):
(wgpuInstanceCreateSurface):
(wgpuInstanceProcessEvents):
(wgpuInstanceRequestAdapter):
- WebGPU/PipelineLayout.h:
(WebGPU::PipelineLayout::create):
- WebGPU/PipelineLayout.mm:
(wgpuPipelineLayoutSetLabel):
- WebGPU/QuerySet.h:
(WebGPU::QuerySet::create):
- WebGPU/QuerySet.mm:
(wgpuQuerySetDestroy):
(wgpuQuerySetSetLabel):
- WebGPU/Queue.h:
(WebGPU::Queue::create):
- WebGPU/Queue.mm:
(WebGPU::Queue::onSubmittedWorkDone):
(wgpuQueueOnSubmittedWorkDone):
(wgpuQueueSubmit):
(wgpuQueueWriteBuffer):
(wgpuQueueWriteTexture):
(wgpuQueueSetLabel):
- WebGPU/RenderBundle.h:
(WebGPU::RenderBundle::create):
- WebGPU/RenderBundle.mm:
(wgpuRenderBundleSetLabel):
- WebGPU/RenderBundleEncoder.h:
(WebGPU::RenderBundleEncoder::create):
- WebGPU/RenderBundleEncoder.mm:
(WebGPU::RenderBundleEncoder::finish):
(wgpuRenderBundleEncoderDraw):
(wgpuRenderBundleEncoderDrawIndexed):
(wgpuRenderBundleEncoderDrawIndexedIndirect):
(wgpuRenderBundleEncoderDrawIndirect):
(wgpuRenderBundleEncoderFinish):
(wgpuRenderBundleEncoderInsertDebugMarker):
(wgpuRenderBundleEncoderPopDebugGroup):
(wgpuRenderBundleEncoderPushDebugGroup):
(wgpuRenderBundleEncoderSetBindGroup):
(wgpuRenderBundleEncoderSetIndexBuffer):
(wgpuRenderBundleEncoderSetPipeline):
(wgpuRenderBundleEncoderSetVertexBuffer):
(wgpuRenderBundleEncoderSetLabel):
- WebGPU/RenderPassEncoder.h:
(WebGPU::RenderPassEncoder::create):
- WebGPU/RenderPassEncoder.mm:
(wgpuRenderPassEncoderBeginOcclusionQuery):
(wgpuRenderPassEncoderBeginPipelineStatisticsQuery):
(wgpuRenderPassEncoderDraw):
(wgpuRenderPassEncoderDrawIndexed):
(wgpuRenderPassEncoderDrawIndexedIndirect):
(wgpuRenderPassEncoderDrawIndirect):
(wgpuRenderPassEncoderEndOcclusionQuery):
(wgpuRenderPassEncoderEndPass):
(wgpuRenderPassEncoderEndPipelineStatisticsQuery):
(wgpuRenderPassEncoderExecuteBundles):
(wgpuRenderPassEncoderInsertDebugMarker):
(wgpuRenderPassEncoderPopDebugGroup):
(wgpuRenderPassEncoderPushDebugGroup):
(wgpuRenderPassEncoderSetBindGroup):
(wgpuRenderPassEncoderSetBlendConstant):
(wgpuRenderPassEncoderSetIndexBuffer):
(wgpuRenderPassEncoderSetPipeline):
(wgpuRenderPassEncoderSetScissorRect):
(wgpuRenderPassEncoderSetStencilReference):
(wgpuRenderPassEncoderSetVertexBuffer):
(wgpuRenderPassEncoderSetViewport):
(wgpuRenderPassEncoderWriteTimestamp):
(wgpuRenderPassEncoderSetLabel):
- WebGPU/RenderPipeline.h:
(WebGPU::RenderPipeline::create):
- WebGPU/RenderPipeline.mm:
(WebGPU::RenderPipeline::getBindGroupLayout):
(wgpuRenderPipelineGetBindGroupLayout):
(wgpuRenderPipelineSetLabel):
- WebGPU/Sampler.h:
(WebGPU::Sampler::create):
- WebGPU/Sampler.mm:
(wgpuSamplerSetLabel):
- WebGPU/ShaderModule.h:
(WebGPU::ShaderModule::create):
- WebGPU/ShaderModule.mm:
(wgpuShaderModuleSetLabel):
- WebGPU/Surface.h:
(WebGPU::Surface::create):
- WebGPU/Surface.mm:
(wgpuSurfaceGetPreferredFormat):
- WebGPU/SwapChain.h:
(WebGPU::SwapChain::create):
- WebGPU/SwapChain.mm:
(WebGPU::SwapChain::getCurrentTextureView):
(wgpuSwapChainGetCurrentTextureView):
(wgpuSwapChainPresent):
- WebGPU/Texture.h:
(WebGPU::Texture::create):
- WebGPU/Texture.mm:
(WebGPU::Texture::createView):
(wgpuTextureCreateView):
(wgpuTextureDestroy):
(wgpuTextureSetLabel):
- WebGPU/TextureView.h:
(WebGPU::TextureView::create):
- WebGPU/TextureView.mm:
(wgpuTextureViewSetLabel):
- 10:21 AM Changeset in webkit [286224] by
-
- 78 edits in trunk/Source
[WebGPU] IPC class refactorings
https://bugs.webkit.org/show_bug.cgi?id=233546
Reviewed by Dean Jackson.
Source/WebCore/PAL:
Make classes fast allocated.
GPUImpl gets a create() function with no arguments, for ease of callers.
- pal/graphics/WebGPU/Impl/WebGPUAdapterImpl.h:
- pal/graphics/WebGPU/Impl/WebGPUBindGroupImpl.h:
- pal/graphics/WebGPU/Impl/WebGPUBindGroupLayoutImpl.h:
- pal/graphics/WebGPU/Impl/WebGPUBufferImpl.h:
- pal/graphics/WebGPU/Impl/WebGPUCommandBufferImpl.h:
- pal/graphics/WebGPU/Impl/WebGPUCommandEncoderImpl.h:
- pal/graphics/WebGPU/Impl/WebGPUComputePassEncoderImpl.h:
- pal/graphics/WebGPU/Impl/WebGPUComputePipelineImpl.h:
- pal/graphics/WebGPU/Impl/WebGPUConvertToBackingContext.h:
- pal/graphics/WebGPU/Impl/WebGPUDeviceImpl.h:
- pal/graphics/WebGPU/Impl/WebGPUDowncastConvertToBackingContext.h:
- pal/graphics/WebGPU/Impl/WebGPUExternalTextureImpl.h:
- pal/graphics/WebGPU/Impl/WebGPUImpl.cpp:
(PAL::WebGPU::GPUImpl::create):
- pal/graphics/WebGPU/Impl/WebGPUImpl.h:
- pal/graphics/WebGPU/Impl/WebGPUPipelineLayoutImpl.h:
- pal/graphics/WebGPU/Impl/WebGPUQuerySetImpl.h:
- pal/graphics/WebGPU/Impl/WebGPUQueueImpl.h:
- pal/graphics/WebGPU/Impl/WebGPURenderBundleEncoderImpl.h:
- pal/graphics/WebGPU/Impl/WebGPURenderBundleImpl.h:
- pal/graphics/WebGPU/Impl/WebGPURenderPassEncoderImpl.h:
- pal/graphics/WebGPU/Impl/WebGPURenderPipelineImpl.h:
- pal/graphics/WebGPU/Impl/WebGPUSamplerImpl.h:
- pal/graphics/WebGPU/Impl/WebGPUShaderModuleImpl.h:
- pal/graphics/WebGPU/Impl/WebGPUTextureImpl.h:
- pal/graphics/WebGPU/Impl/WebGPUTextureViewImpl.h:
Source/WebKit:
Make classes fast allocated. Also, make the root() function recursive, instead of hardcoding
each class's distance from the root.
RemoteGPUProxy has to be in the WebKit namespace, rather than the WebKit::WebGPU namespace,
because it will be a message receiver, and our code generator doesn't know anything about the
nested namespace.
Also make sure that async functions call their callbacks in every codepath.
No new tests because there is no behavior change.
- GPUProcess/graphics/WebGPU/RemoteAdapter.h:
- GPUProcess/graphics/WebGPU/RemoteBindGroup.h:
- GPUProcess/graphics/WebGPU/RemoteBindGroupLayout.h:
- GPUProcess/graphics/WebGPU/RemoteBuffer.h:
- GPUProcess/graphics/WebGPU/RemoteCommandBuffer.h:
- GPUProcess/graphics/WebGPU/RemoteCommandEncoder.h:
- GPUProcess/graphics/WebGPU/RemoteComputePassEncoder.h:
- GPUProcess/graphics/WebGPU/RemoteComputePipeline.h:
- GPUProcess/graphics/WebGPU/RemoteDevice.h:
- GPUProcess/graphics/WebGPU/RemoteExternalTexture.h:
- GPUProcess/graphics/WebGPU/RemoteGPU.h:
- GPUProcess/graphics/WebGPU/RemotePipelineLayout.h:
- GPUProcess/graphics/WebGPU/RemoteQuerySet.h:
- GPUProcess/graphics/WebGPU/RemoteQueue.h:
- GPUProcess/graphics/WebGPU/RemoteRenderBundle.h:
- GPUProcess/graphics/WebGPU/RemoteRenderBundleEncoder.h:
- GPUProcess/graphics/WebGPU/RemoteRenderPassEncoder.h:
- GPUProcess/graphics/WebGPU/RemoteRenderPipeline.h:
- GPUProcess/graphics/WebGPU/RemoteSampler.h:
- GPUProcess/graphics/WebGPU/RemoteShaderModule.h:
- GPUProcess/graphics/WebGPU/RemoteTexture.h:
- GPUProcess/graphics/WebGPU/RemoteTextureView.h:
- GPUProcess/graphics/WebGPU/WebGPUObjectHeap.h:
- GPUProcess/graphics/WebGPU/WebGPUObjectRegistry.h:
- WebProcess/GPU/graphics/WebGPU/RemoteAdapterProxy.h:
- WebProcess/GPU/graphics/WebGPU/RemoteBindGroupLayoutProxy.h:
- WebProcess/GPU/graphics/WebGPU/RemoteBindGroupProxy.h:
- WebProcess/GPU/graphics/WebGPU/RemoteBufferProxy.h:
- WebProcess/GPU/graphics/WebGPU/RemoteCommandBufferProxy.h:
- WebProcess/GPU/graphics/WebGPU/RemoteCommandEncoderProxy.h:
- WebProcess/GPU/graphics/WebGPU/RemoteComputePassEncoderProxy.h:
- WebProcess/GPU/graphics/WebGPU/RemoteComputePipelineProxy.h:
- WebProcess/GPU/graphics/WebGPU/RemoteDeviceProxy.h:
- WebProcess/GPU/graphics/WebGPU/RemoteExternalTextureProxy.h:
- WebProcess/GPU/graphics/WebGPU/RemoteGPUProxy.cpp:
(WebKit::RemoteGPUProxy::requestAdapter):
(WebKit::WebGPU::RemoteGPUProxy::RemoteGPUProxy): Deleted.
(WebKit::WebGPU::RemoteGPUProxy::~RemoteGPUProxy): Deleted.
(WebKit::WebGPU::RemoteGPUProxy::requestAdapter): Deleted.
- WebProcess/GPU/graphics/WebGPU/RemoteGPUProxy.h:
- WebProcess/GPU/graphics/WebGPU/RemotePipelineLayoutProxy.h:
- WebProcess/GPU/graphics/WebGPU/RemoteQuerySetProxy.h:
- WebProcess/GPU/graphics/WebGPU/RemoteQueueProxy.h:
- WebProcess/GPU/graphics/WebGPU/RemoteRenderBundleEncoderProxy.h:
- WebProcess/GPU/graphics/WebGPU/RemoteRenderBundleProxy.h:
- WebProcess/GPU/graphics/WebGPU/RemoteRenderPassEncoderProxy.h:
- WebProcess/GPU/graphics/WebGPU/RemoteRenderPipelineProxy.h:
- WebProcess/GPU/graphics/WebGPU/RemoteSamplerProxy.h:
- WebProcess/GPU/graphics/WebGPU/RemoteShaderModuleProxy.h:
- WebProcess/GPU/graphics/WebGPU/RemoteTextureProxy.h:
- WebProcess/GPU/graphics/WebGPU/RemoteTextureViewProxy.h:
- WebProcess/GPU/graphics/WebGPU/WebGPUDowncastConvertToBackingContext.h:
- 10:17 AM Changeset in webkit [286223] by
-
- 8 edits in trunk
Remove some unused event names
https://bugs.webkit.org/show_bug.cgi?id=233485
Reviewed by Sam Weinig.
Source/WebCore:
'webkitspeechchange' was added in r69100 and should have been removed in r172259.
'webkitregionoversetchange' was added in r151777 and should have been removed in r222259.
'webkitwillreveal*' were added in r163092 and should have been removed in r218651.
- dom/EventNames.h:
- html/HTMLAttributeNames.in:
- html/HTMLBodyElement.cpp:
(WebCore::HTMLBodyElement::createWindowEventHandlerNameMap):
- html/HTMLElement.cpp:
(WebCore::HTMLElement::createEventHandlerNameMap):
Source/WebInspectorUI:
- UserInterface/Models/ScriptTimelineRecord.js:
(WI.ScriptTimelineRecord.EventType.displayName):
- 10:15 AM Changeset in webkit [286222] by
-
- 2 edits in trunk/Source/WebCore
[GTK] 2.33.1 tarball fails to build on i386
https://bugs.webkit.org/show_bug.cgi?id=233564
Unreviewed.
Patch by Michael Catanzaro <Michael Catanzaro> on 2021-11-29
- platform/graphics/SourceBufferPrivate.h:
- 10:15 AM Changeset in webkit [286221] by
-
- 10 edits in trunk
Form payloads with text/plain enctype should have a final \r\n
https://bugs.webkit.org/show_bug.cgi?id=220783
Patch by Andreu Botella <andreu@andreubotella.com> on 2021-11-29
Reviewed by Darin Adler.
LayoutTests/imported/w3c:
- web-platform-tests/html/semantics/forms/form-submission-0/form-data-set-empty-file.window-expected.txt:
- web-platform-tests/html/semantics/forms/form-submission-0/form-data-set-usv-expected.txt:
- web-platform-tests/html/semantics/forms/form-submission-0/submit-entity-body-expected.txt:
- web-platform-tests/html/semantics/forms/form-submission-0/text-plain.window-expected.txt:
Source/WebCore:
According to the HTML specification, the text/plain form enctype should not only have
entries separated by a \r\n linebreak, but it should also have a final \r\n linebreak.
Firefox and Chrome follow this, while WebKit skips the final linebreak for non-mailto form
submissions. This change adds it in every case.
Tests: imported/w3c/web-platform-tests/html/semantics/forms/form-submission-0/form-data-set-empty-file.window.html
imported/w3c/web-platform-tests/html/semantics/forms/form-submission-0/submit-entity-body.html
imported/w3c/web-platform-tests/html/semantics/forms/form-submission-0/text-plain.window.html
http/tests/misc/form-post-textplain-cross-site.html
http/tests/misc/form-post-textplain.html
- platform/network/FormDataBuilder.cpp:
(WebCore::FormDataBuilder::addKeyValuePairAsFormData): Changed to add a trailing newline.
- loader/FormSubmission.cpp:
(WebCore::appendMailtoPostFormDataToURL): Changed to remove the extra trailing newline that
was added to text/plain mailto payloads.
LayoutTests:
- http/tests/misc/resources/form-post-textplain.py:
- 10:10 AM Changeset in webkit [286220] by
-
- 3 edits2 adds in trunk
Only handle ident tokens in consumeWillChange
https://bugs.webkit.org/show_bug.cgi?id=233459
Patch by Rob Buis <rbuis@igalia.com> on 2021-11-29
Reviewed by Antti Koivisto.
Source/WebCore:
Only handle ident tokens in consumeWillChange.
Test: fast/css/variables/will-change-variable-resolve-crash.html
- css/parser/CSSPropertyParser.cpp:
(WebCore::consumeWillChange):
LayoutTests:
- fast/css/variables/will-change-variable-resolve-crash-expected.txt: Added.
- fast/css/variables/will-change-variable-resolve-crash.html: Added.
- 9:58 AM Changeset in webkit [286219] by
-
- 4 edits1 add in trunk/Source/WebKit
Create a new XPC service with specific entitlements to support Captive Portal use cases
https://bugs.webkit.org/show_bug.cgi?id=233388
<rdar://problem/84481565>
Reviewed by Per Arne Vollan.
This initial patch builds a new XPC service with entitlements tailored to our Captive Portal
use case.
- Configurations/WebContentService.CaptivePortal.xcconfig: Added.
- Configurations/WebContentService.xcconfig:
- Scripts/process-entitlements.sh: Add new sections for captive portal mode
- WebKit.xcodeproj/project.pbxproj: Add new configuration file.
- 9:18 AM Changeset in webkit [286218] by
-
- 17 edits in trunk
Apply WebPreferences on ServiceWorker settings
https://bugs.webkit.org/show_bug.cgi?id=233466
LayoutTests/imported/w3c:
<rdar://problem/85719388>
Reviewed by Chris Dumez.
- web-platform-tests/html/cross-origin-embedder-policy/cross-origin-isolated-permission.https-expected.txt:
Source/WebCore:
Reviewed by Chris Dumez.
Migrate WebLock flag to a page setting.
Update ServiceWorkerThreadProxy to expose its method to create a service worker dummy page.
Covered by existing web lock service worker tests.
- Modules/web-locks/NavigatorLocks.idl:
- Modules/web-locks/WebLock.idl:
- Modules/web-locks/WebLockManager.idl:
- page/RuntimeEnabledFeatures.h:
- workers/service/context/ServiceWorkerThreadProxy.cpp:
- workers/service/context/ServiceWorkerThreadProxy.h:
Source/WebKit:
Reviewed by Chris Dumez.
Make WebPage::updateSettingsGenerated as static to reuse it in service worker code path
just after creation of the dummy Page attached to each service worker.
This allows correct initialization of the settings that are then used by the service worker.
- Scripts/PreferencesTemplates/WebPageUpdatePreferences.cpp.erb:
- WebProcess/Storage/WebSWContextManagerConnection.cpp:
- WebProcess/Storage/WebSWContextManagerConnection.h:
- WebProcess/WebPage/WebPage.cpp:
- WebProcess/WebPage/WebPage.h:
Source/WTF:
Reviewed by Chris Dumez.
- Scripts/Preferences/WebPreferencesExperimental.yaml:
- 9:14 AM Changeset in webkit [286217] by
-
- 2 edits in trunk/Tools
[webkitflaskpy] Make sure flask is registered before importing webkitflaskpy
https://bugs.webkit.org/show_bug.cgi?id=233561
Reviewed by Jonathan Bedard.
bug233339 moved AuthedBlueprint to webkitflaskpy, but flask needs to
be registered before being imported to make sure AutoInstall takes
care of it. This avoidsModuleNotFound: flask
errors running the
tests from a clean tree.
- Scripts/libraries/webkitflaskpy/webkitflaskpy/init.py:
- 8:54 AM Changeset in webkit [286216] by
-
- 9 edits in trunk/Source
Versioning.
WebKit-7613.1.11
- 8:50 AM Changeset in webkit [286215] by
-
- 1 copy in branches/safari-613.1.10-branch
New branch.
- 8:42 AM Changeset in webkit [286214] by
-
- 3 edits in trunk/Source/WebKit
Make WebKitCaptivePortalModeEnabled user default work on macOS
https://bugs.webkit.org/show_bug.cgi?id=233560
Reviewed by Anders Carlsson.
Make WebKitCaptivePortalModeEnabled user default work on macOS, not just iOS. This helps with testing.
- UIProcess/Cocoa/WebProcessPoolCocoa.mm:
- UIProcess/WebProcessPool.cpp:
- 8:03 AM Changeset in webkit [286213] by
-
- 2 edits in trunk/Tools
Consider Source/cmake relevant for JSC
https://bugs.webkit.org/show_bug.cgi?id=233552
Reviewed by Aakash Jain.
Changes in Source/cmake may well be relevant for JSC.
- CISupport/ews-build/steps.py:
(CheckPatchRelevance):
- 7:34 AM Changeset in webkit [286212] by
-
- 2 edits in trunk/Source/JavaScriptCore
[RISCV64] Populate RISCV64Assembler with instruction-generation methods
https://bugs.webkit.org/show_bug.cgi?id=233256
Patch by Zan Dobersek <zdobersek@igalia.com> on 2021-11-29
Reviewed by Yusuke Suzuki.
Sprinkle RISCV64Assembler class with helper methods for generating the
desired instruction values.
Immediate types from the RISCV64Instructions namespace are introduced
into the class for easier usage here and in the MacroAssemblerRISCV64
class. Instruction-generating methods roughly match the different
instruction types in the RISCV64Instructions namespace.
A few optimizations are done around floating-point instructions. We can
use one base method which expects the desired FP size as a template
parameter, and the appropriate RISCV64Instructions type can then be
selected based on that size value. Different combinations for FP move
and conversion instructions are also grouped behind a single method,
with thorough compile-time validation done to prevent generating
invalid instructions.
A few helper methods intended for masking, sign-extension and
zero-extension are also added. The Condition enum is fixed to list only
RISCV-viable conditions, with the values ordered so that a simple
XOR-by-one of a given value will produce the value of the inverted
condition.
- assembler/RISCV64Assembler.h:
(JSC::RISCV64Assembler::invert):
(JSC::RISCV64Assembler::luiInsn):
(JSC::RISCV64Assembler::auipcInsn):
(JSC::RISCV64Assembler::jalInsn):
(JSC::RISCV64Assembler::jalrInsn):
(JSC::RISCV64Assembler::beqInsn):
(JSC::RISCV64Assembler::bneInsn):
(JSC::RISCV64Assembler::bltInsn):
(JSC::RISCV64Assembler::bgeInsn):
(JSC::RISCV64Assembler::bltuInsn):
(JSC::RISCV64Assembler::bgeuInsn):
(JSC::RISCV64Assembler::lbInsn):
(JSC::RISCV64Assembler::lhInsn):
(JSC::RISCV64Assembler::lwInsn):
(JSC::RISCV64Assembler::ldInsn):
(JSC::RISCV64Assembler::lbuInsn):
(JSC::RISCV64Assembler::lhuInsn):
(JSC::RISCV64Assembler::lwuInsn):
(JSC::RISCV64Assembler::sbInsn):
(JSC::RISCV64Assembler::shInsn):
(JSC::RISCV64Assembler::swInsn):
(JSC::RISCV64Assembler::sdInsn):
(JSC::RISCV64Assembler::addiInsn):
(JSC::RISCV64Assembler::sltiInsn):
(JSC::RISCV64Assembler::sltiuInsn):
(JSC::RISCV64Assembler::xoriInsn):
(JSC::RISCV64Assembler::oriInsn):
(JSC::RISCV64Assembler::andiInsn):
(JSC::RISCV64Assembler::slliInsn):
(JSC::RISCV64Assembler::srliInsn):
(JSC::RISCV64Assembler::sraiInsn):
(JSC::RISCV64Assembler::addInsn):
(JSC::RISCV64Assembler::subInsn):
(JSC::RISCV64Assembler::sllInsn):
(JSC::RISCV64Assembler::sltInsn):
(JSC::RISCV64Assembler::sltuInsn):
(JSC::RISCV64Assembler::xorInsn):
(JSC::RISCV64Assembler::srlInsn):
(JSC::RISCV64Assembler::sraInsn):
(JSC::RISCV64Assembler::orInsn):
(JSC::RISCV64Assembler::andInsn):
(JSC::RISCV64Assembler::ecallInsn):
(JSC::RISCV64Assembler::ebreakInsn):
(JSC::RISCV64Assembler::addiwInsn):
(JSC::RISCV64Assembler::slliwInsn):
(JSC::RISCV64Assembler::srliwInsn):
(JSC::RISCV64Assembler::sraiwInsn):
(JSC::RISCV64Assembler::addwInsn):
(JSC::RISCV64Assembler::subwInsn):
(JSC::RISCV64Assembler::sllwInsn):
(JSC::RISCV64Assembler::srlwInsn):
(JSC::RISCV64Assembler::srawInsn):
(JSC::RISCV64Assembler::mulInsn):
(JSC::RISCV64Assembler::mulhInsn):
(JSC::RISCV64Assembler::mulhsuInsn):
(JSC::RISCV64Assembler::mulhuInsn):
(JSC::RISCV64Assembler::divInsn):
(JSC::RISCV64Assembler::divuInsn):
(JSC::RISCV64Assembler::remInsn):
(JSC::RISCV64Assembler::remuInsn):
(JSC::RISCV64Assembler::mulwInsn):
(JSC::RISCV64Assembler::divwInsn):
(JSC::RISCV64Assembler::divuwInsn):
(JSC::RISCV64Assembler::remwInsn):
(JSC::RISCV64Assembler::remuwInsn):
(JSC::RISCV64Assembler::flwInsn):
(JSC::RISCV64Assembler::fldInsn):
(JSC::RISCV64Assembler::fswInsn):
(JSC::RISCV64Assembler::fsdInsn):
(JSC::RISCV64Assembler::fmaddInsn):
(JSC::RISCV64Assembler::fmsubInsn):
(JSC::RISCV64Assembler::fnmsubInsn):
(JSC::RISCV64Assembler::fnmaddInsn):
(JSC::RISCV64Assembler::faddInsn):
(JSC::RISCV64Assembler::fsubInsn):
(JSC::RISCV64Assembler::fmulInsn):
(JSC::RISCV64Assembler::fdivInsn):
(JSC::RISCV64Assembler::fsqrtInsn):
(JSC::RISCV64Assembler::fsgnjInsn):
(JSC::RISCV64Assembler::fsgnjnInsn):
(JSC::RISCV64Assembler::fsgnjxInsn):
(JSC::RISCV64Assembler::fminInsn):
(JSC::RISCV64Assembler::fmaxInsn):
(JSC::RISCV64Assembler::feqInsn):
(JSC::RISCV64Assembler::fltInsn):
(JSC::RISCV64Assembler::fleInsn):
(JSC::RISCV64Assembler::fclassInsn):
(JSC::RISCV64Assembler::fcvtInsn):
(JSC::RISCV64Assembler::fmvInsn):
(JSC::RISCV64Assembler::fenceInsn):
(JSC::RISCV64Assembler::lrwInsn):
(JSC::RISCV64Assembler::scwInsn):
(JSC::RISCV64Assembler::lrdInsn):
(JSC::RISCV64Assembler::scdInsn):
(JSC::RISCV64Assembler::amoswapwInsn):
(JSC::RISCV64Assembler::amoaddwInsn):
(JSC::RISCV64Assembler::amoxorwInsn):
(JSC::RISCV64Assembler::amoandwInsn):
(JSC::RISCV64Assembler::amoorwInsn):
(JSC::RISCV64Assembler::amoswapdInsn):
(JSC::RISCV64Assembler::amoadddInsn):
(JSC::RISCV64Assembler::amoxordInsn):
(JSC::RISCV64Assembler::amoanddInsn):
(JSC::RISCV64Assembler::amoordInsn):
(JSC::RISCV64Assembler::nop):
(JSC::RISCV64Assembler::maskRegister):
(JSC::RISCV64Assembler::signExtend):
(JSC::RISCV64Assembler::zeroExtend):
(JSC::RISCV64Assembler::insn):
(JSC::RISCV64Assembler::insnFP):
(JSC::RISCV64Assembler::isValidShiftAmount):
- 7:08 AM Changeset in webkit [286211] by
-
- 2 edits in trunk/Source/JavaScriptCore
[Cocoa] Stop linking JavaScriptCore.framework with libz because it doesn't use any symbols from it
https://bugs.webkit.org/show_bug.cgi?id=233550
Reviewed by Anders Carlsson.
Every compile produces a message like:
Ld /Users/mmaxfield/Build/Products/Debug/JavaScriptCore.framework/Versions/A/JavaScriptCore normal (in target 'JavaScriptCore' from project 'JavaScriptCore')
ld: warning: linking with (/usr/lib/libz.1.dylib) but not using any symbols from it
- JavaScriptCore.xcodeproj/project.pbxproj:
- 6:32 AM Changeset in webkit [286210] by
-
- 2 edits in trunk/Source/WebCore
[GStreamer][WPE] Control on-disk multimedia buffering via the WPE_SHELL_DISABLE_MEDIA_DISK_CACHE environment variable
https://bugs.webkit.org/show_bug.cgi?id=233492
Reviewed by Xabier Rodriguez-Calvar.
Embedded platforms often don't have a persistent storage suitable for repetitive writes (eg: caching
media files may wear out a flash drive, and RAM memory is scarce enough to use a tmpfs for caching).
Those platforms need a way to disable on-disk caching.
- platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp: Honor environment variable.
- 5:05 AM Changeset in webkit [286209] by
-
- 14 edits in trunk/Source
GPUP GraphicsContextGL creation failure cannot be detected
https://bugs.webkit.org/show_bug.cgi?id=233517
Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2021-11-29
Reviewed by Antti Koivisto.
Source/WebCore:
Before, concrete
GraphicsContextGL
instance was created withGraphicsContextGL::create()
which would internally use host window as a factory if possible. If this produced null, it would
create the "default" GraphicsContextGL subclass instance.
With GPUP, it does not make sense to create "default" type, as that in-process contexts should never
be used.
It also does not make sense to create "default", as it's unclear what the "default" type is.
Instead, use the host window, i.e. the chrome client, to always create the GraphicsContextGL instance
to WebGL. If this fails, the WebGL should be unavailable.
Remove GraphicsContextGL::create() as that is not useful. The callers should either
explicitly specify what subclass to use, for example in testing, or use the polymorhpic factory
(ChromeClient) which knows the policy.
Fix a bug where GPUP WebGL would use in-process context if the lost context would be recreated.
No new tests, a refactor.
- PlatformMac.cmake:
- WebCore.xcodeproj/project.pbxproj:
- html/canvas/WebGLRenderingContextBase.cpp:
(WebCore::WebGLRenderingContextBase::create):
(WebCore::WebGLRenderingContextBase::maybeRestoreContext):
- page/ChromeClient.h:
(WebCore::ChromeClient::createGraphicsContextGL const):
- platform/graphics/WebProcessGraphicsContextGL.h: Added.
- platform/graphics/cocoa/WebProcessGraphicsContextGLCocoa.mm:
(WebCore::createWebProcessGraphicsContextGL):
(WebCore::GraphicsContextGLOpenGL::create): Deleted.
- platform/graphics/opengl/GraphicsContextGLOpenGL.h:
- platform/graphics/texmap/GraphicsContextGLTextureMapper.cpp:
(WebCore::createWebProcessGraphicsContextGL):
(WebCore::GraphicsContextGLOpenGL::create): Deleted.
- platform/xr/openxr/PlatformXROpenXR.cpp:
(PlatformXR::OpenXRDevice::initializeTrackingAndRendering):
- testing/WebFakeXRDevice.cpp:
(WebCore::SimulatedXRDevice::initializeTrackingAndRendering):
Source/WebKit:
If GPUP
GraphicsContextGL
creation fails, return nullptr instead of
trying to create a in-process context.
Enable
WebChromeClient::createGraphicsContextGL()
call for non-GPU process
compilation, as the function is now always called. Returning nullptr signifies failure
to create the context, not a signal to retry some other type.
- WebProcess/WebCoreSupport/WebChromeClient.cpp:
(WebKit::WebChromeClient::createGraphicsContextGL const):
- WebProcess/WebCoreSupport/WebChromeClient.h:
- 3:21 AM Changeset in webkit [286208] by
-
- 2 edits in trunk
Fix ATOMICS_REQUIRE_LIBATOMIC testcase on 32-bits
https://bugs.webkit.org/show_bug.cgi?id=233551
Unreviewed build fix.
There's a syntax error when compiling the test program
on 32-bits. This was not an issue on ARM as atomics are
built in on that platform, but broke the MIPS build.
- Source/cmake/WebKitCompilerFlags.cmake:
- 2:29 AM Changeset in webkit [286207] by
-
- 4 edits in trunk
[css-flexbox] Do not shrink tables bellow their intrinsic sizes
https://bugs.webkit.org/show_bug.cgi?id=232383
Reviewed by Manuel Rego Casasnovas.
Source/WebCore:
Flex layout algorithm uses the flex items min|max sizes to compute the hypothetical main size which
will be used to clamp the size of the items when flexed. In the case of tables as flex items, we were
using the min-size straight away whenever that was definite. However we cannot do that because tables
must not shrink bellow their intrinsic sizes. That's why we should select the maximum of the intrinsic
size and the min-size.
This fixes a WPT test covering this case.
- rendering/RenderFlexibleBox.cpp:
(WebCore::RenderFlexibleBox::computeFlexItemMinMaxSizes): Do not select a min-size smaller than the
table intrinsic size in the main axis.
LayoutTests:
- TestExpectations: Unskip table-as-item-fixed-min-width-3.html which works fine now.
- 2:00 AM Changeset in webkit [286206] by
-
- 6 edits in trunk
[css-flexbox] Add support for replaced elements with intrinsic ratio and no intrinsic size
https://bugs.webkit.org/show_bug.cgi?id=231952
<rdar://problem/84662305>
Reviewed by Manuel Rego Casasnovas.
Source/WebCore:
It might be the case that replaced elements have intrinsic aspect ratio but no
intrinsic dimensions. Actually that's quite common for SVGs for example. We're
incorrectly assuming that flex items with no intrinsic dimensions didn't have
intrinsic aspect ratios which is wrong.
Added new checks that are able to detect those cases were we have an intrinsic
aspect ratio even though there are no intrinsic dimensions.
- rendering/RenderFlexibleBox.cpp:
(WebCore::isRenderReplacedWithIntrinsicAspectRatio):
(WebCore::childHasAspectRatio):
Consider replaced elements with intrinsic ratios and no intrinsic dimensions.
(WebCore::RenderFlexibleBox::computeMainSizeFromAspectRatioUsing const):
Let replaced elements compute the aspect ratio by themselves.
(WebCore::RenderFlexibleBox::childHasComputableAspectRatio const):
- rendering/RenderReplaced.cpp:
(WebCore::RenderReplaced::computeIntrinsicAspectRatio const): New method that
computes the aspect ratio for replaced elements.
- rendering/RenderReplaced.h:
LayoutTests:
- TestExpectations: Unskipped a test case that is now passing.
- 1:41 AM Changeset in webkit [286205] by
-
- 12 edits1 add in trunk/Source/WebCore
GraphicsContextGLANGLE.cpp has platform specific code
https://bugs.webkit.org/show_bug.cgi?id=233515
Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2021-11-29
Reviewed by Antti Koivisto.
GraphicsContextGLANGLE.cpp has platform specific code for modifying
the display buffer backing storage (IOSurface on Cocoa,
normal texture on TextureMapper variants).
This modification should be done through the reshapeDisplayBufferBacking
method call for all implementations, so that in the future
GraphicsContextGLOpenGL ANGLE variant can be renamed GraphicsContextGLANGLE
and still invoke that functionality.
No new tests, refactor.
- platform/graphics/angle/GraphicsContextGLANGLE.cpp:
(WebCore::GraphicsContextGLOpenGL::reshapeFBOs):
(WebCore::GraphicsContextGLOpenGL::platformReleaseThreadResources): Deleted.
- platform/graphics/cocoa/GraphicsContextGLCocoa.mm:
(WebCore::GraphicsContextGLOpenGL::bindDisplayBufferBacking):
- platform/graphics/opengl/GraphicsContextGLOpenGL.h:
- platform/graphics/texmap/GraphicsContextGLTextureMapperANGLE.cpp: Added.
(WebCore::GraphicsContextGLOpenGL::reshapeDisplayBufferBacking):
(WebCore::GraphicsContextGLOpenGL::platformReleaseThreadResources):
- 12:27 AM Changeset in webkit [286204] by
-
- 14 edits in trunk
[LBSE] Add runtime flag for Layer-based SVG engine (LBSE)
https://bugs.webkit.org/show_bug.cgi?id=233211
<rdar://problem/85711597>
Patch by Nikolas Zimmermann <nzimmermann@igalia.com> on 2021-11-29
Reviewed by Sam Weinig.
Add build option ('build-webkit --(no-)layer-based-svg-engine') and
runtime flag ('LayerBasedSVGEngineEnabled' in LBSE enabled builds) to
switch between the SVG engines.
The actual SVG code changes will follow in subsequent patches,
this just adds the infrastructure for LBSE.
.:
- Source/cmake/OptionsFTW.cmake:
- Source/cmake/OptionsGTK.cmake:
- Source/cmake/OptionsMac.cmake:
- Source/cmake/OptionsPlayStation.cmake:
- Source/cmake/OptionsWPE.cmake:
- Source/cmake/OptionsWin.cmake:
- Source/cmake/WebKitFeatures.cmake:
Source/WTF:
- Scripts/Preferences/WebPreferencesInternal.yaml: Add 'LayerBasedSVGEngineEnabled' option.
- wtf/PlatformEnable.h: Disable LBSE by default. (Toggable with build settings in CMake-based builds)
- wtf/PlatformEnableCocoa.h: Enable for PLATFORM(MAC).
Tools:
- Scripts/webkitperl/FeatureList.pm: Add mapping from 'layer-based-svg-engine' -> 'ENABLE_LAYER_BASED_SVG_ENGINE'.