Timeline
Jan 21, 2019:
- 10:50 PM Changeset in webkit [240249] by
-
- 7 edits2 adds in trunk
[iOS] Handle hit testing for subframes
https://bugs.webkit.org/show_bug.cgi?id=192303
Reviewed by Frédéric Wang.
Source/WebCore:
Don't set delegatesScrolling bit for subframes on iOS. It is meant for top level application
controlled scrolling. This fixes coordinate conversions for subframes and makes events work.
Test by Frederic Wang.
Test: fast/scrolling/ios/hit-testing-iframe.html
- platform/ScrollView.cpp:
(WebCore::ScrollView::managesScrollbars const):
Add a function that tells if the scrollview should deal with scrollbars at all
This is always false on iOS and not connected to delegatesScrolling bit.
(WebCore::ScrollView::updateScrollbars):
- platform/ScrollView.h:
- rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::shouldCompositeOverflowControls const):
Source/WebKit:
- WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
(WebKit::WebFrameLoaderClient::transitionToCommittedForNewPage):
Only set delegatesScrolling for the main frame.
LayoutTests:
Test by Frederic Wang.
- fast/scrolling/ios/hit-testing-iframe-expected.html: Added.
- fast/scrolling/ios/hit-testing-iframe.html: Added.
- 9:28 PM Changeset in webkit [240248] by
-
- 23 edits3 deletes in trunk
Unreviewed, roll out r240220 due to date-format-xparb regression
https://bugs.webkit.org/show_bug.cgi?id=193603
JSTests:
- stress/let-lexical-binding-shadow-existing-global-property-ftl.js:
- stress/scope-operation-cache-global-property-before-deleting.js: Removed.
- stress/scope-operation-cache-global-property-bump-counter.js: Removed.
- stress/scope-operation-cache-global-property-even-if-it-fails.js: Removed.
Source/JavaScriptCore:
- bytecode/BytecodeList.rb:
- bytecode/CodeBlock.cpp:
(JSC::CodeBlock::notifyLexicalBindingShadowing):
(JSC::CodeBlock::notifyLexicalBindingUpdate): Deleted.
- bytecode/CodeBlock.h:
- dfg/DFGByteCodeParser.cpp:
(JSC::DFG::ByteCodeParser::parseBlock):
- dfg/DFGDesiredGlobalProperties.cpp:
(JSC::DFG::DesiredGlobalProperties::isStillValidOnMainThread):
- dfg/DFGDesiredGlobalProperties.h:
- dfg/DFGGraph.cpp:
(JSC::DFG::Graph::watchGlobalProperty): Deleted.
- dfg/DFGGraph.h:
- dfg/DFGPlan.cpp:
(JSC::DFG::Plan::isStillValidOnMainThread):
- jit/JITPropertyAccess.cpp:
(JSC::JIT::emit_op_resolve_scope):
- jit/JITPropertyAccess32_64.cpp:
(JSC::JIT::emit_op_resolve_scope):
- llint/LowLevelInterpreter32_64.asm:
- llint/LowLevelInterpreter64.asm:
- runtime/CommonSlowPaths.cpp:
(JSC::SLOW_PATH_DECL):
- runtime/CommonSlowPaths.h:
(JSC::CommonSlowPaths::tryCachePutToScopeGlobal):
(JSC::CommonSlowPaths::tryCacheGetFromScopeGlobal):
- runtime/JSGlobalObject.cpp:
(JSC::JSGlobalObject::notifyLexicalBindingShadowing):
(JSC::JSGlobalObject::getReferencedPropertyWatchpointSet):
(JSC::JSGlobalObject::ensureReferencedPropertyWatchpointSet):
(JSC::JSGlobalObject::bumpGlobalLexicalBindingEpoch): Deleted.
- runtime/JSGlobalObject.h:
(JSC::JSGlobalObject::globalLexicalBindingEpoch const): Deleted.
(JSC::JSGlobalObject::globalLexicalBindingEpochOffset): Deleted.
(JSC::JSGlobalObject::addressOfGlobalLexicalBindingEpoch): Deleted.
- runtime/Options.cpp:
(JSC::Options::initialize):
(JSC::Options::setOptions):
(JSC::Options::setOptionWithoutAlias):
(JSC::correctOptions): Deleted.
- runtime/Options.h:
- runtime/ProgramExecutable.cpp:
(JSC::ProgramExecutable::initializeGlobalProperties):
- 5:55 PM Changeset in webkit [240247] by
-
- 2 edits in trunk/Source/WebKit
Unreviewed test fix after r240243
Nhttps://bugs.webkit.org/show_bug.cgi?id=193660
<rdar://problem/47433602>
The new ResourceLoadStatistics section of 'removeData' was incrementing the
pending callback count before deciding whether to send a message to delete
data. This left the count out-of-balance leading to the operation never
completing.
This patch also prevents sending a second message to the NetworkProcess
requesting data be deleted if the message was already sent in an earlier
section of the method (e.g., as typically happens when all website data
is being deleted).
- UIProcess/WebsiteData/WebsiteDataStore.cpp:
(WebKit::WebsiteDataStore::removeData):
- 5:30 PM Changeset in webkit [240246] by
-
- 5 edits in trunk/Source/JavaScriptCore
[JSC] StrictModeTypeErrorFunction is no longer used
https://bugs.webkit.org/show_bug.cgi?id=193662
Patch by Yusuke Suzuki <ysuzuki@apple.com> on 2019-01-21
Reviewed by Mark Lam.
StrictModeTypeErrorFunction is no longer used. This patch drops it. Furthermore, it also allows us to drop
strictModeTypeErrorFunctionSpace from VM.
- runtime/Error.cpp:
(JSC::StrictModeTypeErrorFunction::destroy): Deleted.
- runtime/Error.h:
(): Deleted.
- runtime/VM.cpp:
(JSC::VM::VM):
- runtime/VM.h:
- 5:18 PM Changeset in webkit [240245] by
-
- 3 edits in trunk/Tools
[GTK][WPE] libgcrypt-1.7.6 can't be compiled on Ubuntu 18.10
https://bugs.webkit.org/show_bug.cgi?id=193643
Reviewed by Michael Catanzaro.
- gtk/jhbuild.modules: Bumped to libgcrypt-1.8.4.
- wpe/jhbuild.modules: Ditto.
- 3:57 PM Changeset in webkit [240244] by
-
- 3 edits1 add in trunk
DoesGC rule is wrong for nodes with BigIntUse
https://bugs.webkit.org/show_bug.cgi?id=193652
Reviewed by Saam Barati.
JSTests:
- stress/big-int-value-op-update-gc-rules.js: Added.
(assert):
(doesGCAdd):
(doesGCSub):
(doesGCDiv):
(doesGCMul):
(doesGCBitAnd):
(doesGCBitOr):
(doesGCBitXor):
Source/JavaScriptCore:
Former rule was that ValueOp does not GC. However this is wrong, since
these operations can trigger GC and mess up memory management. In the end, this
will generate wrong code because we will have wrong GC epoch value during
Store Barrier Insertion phase.
We changed this to consider BigIntUse for such nodes and properly return true when
they are BigIntUse.
- dfg/DFGDoesGC.cpp:
(JSC::DFG::doesGC):
- 2:28 PM Changeset in webkit [240243] by
-
- 39 edits in trunk/Source
Implement message handlers for NetworkProcess-based ResourceLoadStatistics
https://bugs.webkit.org/show_bug.cgi?id=193556
<rdar://problem/47368501>
Reviewed by Alex Christensen.
Source/WebCore:
This patch adds a new observer callback used to message the NetworkProcess when
user interaction events are received. This is needed when the ResourceLoadStatistics
data is not being managed by the UIProcess.
Tested by existing ResourceLoadStatistics and storageAccess tests.
- loader/ResourceLoadObserver.cpp:
(WebCore::ResourceLoadObserver::setLogUserInteractionNotificationCallback):
(WebCore::ResourceLoadObserver::logUserInteractionWithReducedTimeResolution):
- loader/ResourceLoadObserver.h:
- platform/network/cocoa/NetworkStorageSessionCocoa.mm:
(WebCore::NetworkStorageSession::setCookiesFromDOM):
Source/WebKit:
This patch adds a number of sibling methods for tracking ResourceLoadStatistics when the
observations are being handled in the NetworkProcess, rather than the UIProcess. The
original versions of these methods will be removed as part of Bug 193303.
- NetworkProcess/Classifier/ResourceLoadStatisticsMemoryStore.cpp:
(WebKit::ResourceLoadStatisticsMemoryStore::removeDataRecords):
(WebKit::ResourceLoadStatisticsMemoryStore::processStatisticsAndDataRecords):
(WebKit::ResourceLoadStatisticsMemoryStore::grandfatherExistingWebsiteData):
- NetworkProcess/Classifier/ResourceLoadStatisticsMemoryStore.h:
(WebKit::ResourceLoadStatisticsMemoryStore::store const):
- NetworkProcess/Classifier/WebResourceLoadStatisticsStore.cpp:
(WebKit::WebResourceLoadStatisticsStore::setNotifyPagesWhenDataRecordsWereScanned):
(WebKit::WebResourceLoadStatisticsStore::setNotifyPagesWhenTelemetryWasCaptured):
(WebKit::WebResourceLoadStatisticsStore::WebResourceLoadStatisticsStore):
(WebKit::WebResourceLoadStatisticsStore::setPrevalentResourceForDebugMode):
(WebKit::WebResourceLoadStatisticsStore::scheduleStatisticsAndDataRecordsProcessing):
(WebKit::WebResourceLoadStatisticsStore::hasStorageAccess):
(WebKit::WebResourceLoadStatisticsStore::callHasStorageAccessForFrameHandler):
(WebKit::WebResourceLoadStatisticsStore::requestStorageAccess):
(WebKit::WebResourceLoadStatisticsStore::logUserInteraction):
(WebKit::WebResourceLoadStatisticsStore::clearUserInteraction):
(WebKit::WebResourceLoadStatisticsStore::hasHadUserInteraction):
(WebKit::WebResourceLoadStatisticsStore::setLastSeen):
(WebKit::WebResourceLoadStatisticsStore::setPrevalentResource):
(WebKit::WebResourceLoadStatisticsStore::setVeryPrevalentResource):
(WebKit::WebResourceLoadStatisticsStore::isPrevalentResource):
(WebKit::WebResourceLoadStatisticsStore::isVeryPrevalentResource):
(WebKit::WebResourceLoadStatisticsStore::isRegisteredAsSubresourceUnder):
(WebKit::WebResourceLoadStatisticsStore::isRegisteredAsSubFrameUnder):
(WebKit::WebResourceLoadStatisticsStore::isRegisteredAsRedirectingTo):
(WebKit::WebResourceLoadStatisticsStore::clearPrevalentResource):
(WebKit::WebResourceLoadStatisticsStore::setGrandfathered):
(WebKit::WebResourceLoadStatisticsStore::isGrandfathered):
(WebKit::WebResourceLoadStatisticsStore::setSubframeUnderTopFrameOrigin):
(WebKit::WebResourceLoadStatisticsStore::setSubresourceUnderTopFrameOrigin):
(WebKit::WebResourceLoadStatisticsStore::setSubresourceUniqueRedirectTo):
(WebKit::WebResourceLoadStatisticsStore::setSubresourceUniqueRedirectFrom):
(WebKit::WebResourceLoadStatisticsStore::setTopFrameUniqueRedirectTo):
(WebKit::WebResourceLoadStatisticsStore::setTopFrameUniqueRedirectFrom):
(WebKit::WebResourceLoadStatisticsStore::setTimeToLiveUserInteraction):
(WebKit::WebResourceLoadStatisticsStore::logTestingEvent):
(WebKit::WebResourceLoadStatisticsStore::notifyResourceLoadStatisticsProcessed):
(WebKit::WebResourceLoadStatisticsStore::deleteWebsiteDataForTopPrivatelyControlledDomainsInAllPersistentDataStores):
(WebKit::WebResourceLoadStatisticsStore::topPrivatelyControlledDomainsWithWebsiteData):
(WebKit::WebResourceLoadStatisticsStore::sendDiagnosticMessageWithValue const):
(WebKit::WebResourceLoadStatisticsStore::notifyPageStatisticsTelemetryFinished const):
- NetworkProcess/Classifier/WebResourceLoadStatisticsStore.h:
- NetworkProcess/Classifier/WebResourceLoadStatisticsTelemetry.cpp:
(WebKit::submitTopList):
(WebKit::submitTopLists):
(WebKit::notifyPages):
(WebKit::WebResourceLoadStatisticsTelemetry::calculateAndSubmit):
(WebKit::nonEphemeralWebPageProxy): Deleted.
- NetworkProcess/NetworkConnectionToWebProcess.cpp:
(WebKit::NetworkConnectionToWebProcess::logUserInteraction):
- NetworkProcess/NetworkConnectionToWebProcess.h:
- NetworkProcess/NetworkConnectionToWebProcess.messages.in:
- NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::dumpResourceLoadStatistics):
(WebKit::NetworkProcess::isGrandfathered):
(WebKit::NetworkProcess::isPrevalentResource):
(WebKit::NetworkProcess::isVeryPrevalentResource):
(WebKit::NetworkProcess::setGrandfathered):
(WebKit::NetworkProcess::setPrevalentResource):
(WebKit::NetworkProcess::setPrevalentResourceForDebugMode):
(WebKit::NetworkProcess::setVeryPrevalentResource):
(WebKit::NetworkProcess::clearPrevalentResource):
(WebKit::NetworkProcess::submitTelemetry):
(WebKit::NetworkProcess::scheduleCookieBlockingUpdate):
(WebKit::NetworkProcess::scheduleClearInMemoryAndPersistent):
(WebKit::NetworkProcess::resetParametersToDefaultValues):
(WebKit::NetworkProcess::scheduleStatisticsAndDataRecordsProcessing):
(WebKit::NetworkProcess::setNotifyPagesWhenDataRecordsWereScanned):
(WebKit::NetworkProcess::setNotifyPagesWhenTelemetryWasCaptured):
(WebKit::NetworkProcess::setSubframeUnderTopFrameOrigin):
(WebKit::NetworkProcess::isRegisteredAsRedirectingTo):
(WebKit::NetworkProcess::isRegisteredAsSubFrameUnder):
(WebKit::NetworkProcess::setSubresourceUnderTopFrameOrigin):
(WebKit::NetworkProcess::setSubresourceUniqueRedirectTo):
(WebKit::NetworkProcess::setSubresourceUniqueRedirectFrom):
(WebKit::NetworkProcess::isRegisteredAsSubresourceUnder):
(WebKit::NetworkProcess::setTopFrameUniqueRedirectTo):
(WebKit::NetworkProcess::setTopFrameUniqueRedirectFrom):
(WebKit::NetworkProcess::setLastSeen):
(WebKit::NetworkProcess::hasStorageAccess):
(WebKit::NetworkProcess::requestStorageAccess):
(WebKit::NetworkProcess::grantStorageAccess):
(WebKit::NetworkProcess::logUserInteraction):
(WebKit::NetworkProcess::hadUserInteraction):
(WebKit::NetworkProcess::clearUserInteraction):
(WebKit::NetworkProcess::setGrandfatheringTime):
(WebKit::NetworkProcess::setMaxStatisticsEntries):
(WebKit::NetworkProcess::setMinimumTimeBetweenDataRecordsRemoval):
(WebKit::NetworkProcess::setPruneEntriesDownTo):
(WebKit::NetworkProcess::setTimeToLiveUserInteraction):
(WebKit::NetworkProcess::setShouldClassifyResourcesBeforeDataRecordsRemoval):
(WebKit::NetworkProcess::setResourceLoadStatisticsEnabled):
(WebKit::NetworkProcess::setResourceLoadStatisticsDebugMode):
(WebKit::NetworkProcess::resetCacheMaxAgeCapForPrevalentResources):
(WebKit::NetworkProcess::deleteWebsiteData):
(WebKit::filterForTopLevelDomains):
(WebKit::NetworkProcess::deleteWebsiteDataForTopPrivatelyControlledDomainsInAllPersistentDataStores):
(WebKit::NetworkProcess::topPrivatelyControlledDomainsWithWebsiteData):
- NetworkProcess/NetworkProcess.h:
- NetworkProcess/NetworkProcess.messages.in:
- NetworkProcess/NetworkSession.cpp:
(WebKit::NetworkSession::setResourceLoadStatisticsEnabled):
(WebKit::NetworkSession::notifyResourceLoadStatisticsProcessed):
(WebKit::NetworkSession::logDiagnosticMessageWithValue):
(WebKit::NetworkSession::notifyPageStatisticsTelemetryFinished):
(WebKit::NetworkSession::deleteWebsiteDataForTopPrivatelyControlledDomainsInAllPersistentDataStores):
(WebKit::NetworkSession::topPrivatelyControlledDomainsWithWebsiteData):
(WebKit::NetworkSession::enableResourceLoadStatistics): Deleted.
- NetworkProcess/NetworkSession.h:
- NetworkProcess/cocoa/NetworkSessionCocoa.mm:
(WebKit::NetworkSessionCocoa::NetworkSessionCocoa):
- UIProcess/API/C/WKWebsiteDataStoreRef.cpp:
(WKWebsiteDataStoreSetResourceLoadStatisticsDebugModeWithCompletionHandler):
(WKWebsiteDataStoreSetResourceLoadStatisticsPrevalentResourceForDebugMode):
(WKWebsiteDataStoreSetStatisticsLastSeen):
(WKWebsiteDataStoreSetStatisticsPrevalentResource):
(WKWebsiteDataStoreSetStatisticsVeryPrevalentResource):
(WKWebsiteDataStoreDumpResourceLoadStatistics):
(WKWebsiteDataStoreIsStatisticsPrevalentResource):
(WKWebsiteDataStoreIsStatisticsVeryPrevalentResource):
(WKWebsiteDataStoreIsStatisticsRegisteredAsSubresourceUnder):
(WKWebsiteDataStoreIsStatisticsRegisteredAsSubFrameUnder):
(WKWebsiteDataStoreIsStatisticsRegisteredAsRedirectingTo):
(WKWebsiteDataStoreSetStatisticsHasHadUserInteraction):
(WKWebsiteDataStoreIsStatisticsHasHadUserInteraction):
(WKWebsiteDataStoreSetStatisticsGrandfathered):
(WKWebsiteDataStoreIsStatisticsGrandfathered):
(WKWebsiteDataStoreSetStatisticsSubframeUnderTopFrameOrigin):
(WKWebsiteDataStoreSetStatisticsSubresourceUnderTopFrameOrigin):
(WKWebsiteDataStoreSetStatisticsSubresourceUniqueRedirectTo):
(WKWebsiteDataStoreSetStatisticsSubresourceUniqueRedirectFrom):
(WKWebsiteDataStoreSetStatisticsTopFrameUniqueRedirectTo):
(WKWebsiteDataStoreSetStatisticsTopFrameUniqueRedirectFrom):
(WKWebsiteDataStoreSetStatisticsTimeToLiveUserInteraction):
(WKWebsiteDataStoreStatisticsProcessStatisticsAndDataRecords):
(WKWebsiteDataStoreStatisticsUpdateCookieBlocking):
(WKWebsiteDataStoreStatisticsSubmitTelemetry):
(WKWebsiteDataStoreSetStatisticsNotifyPagesWhenDataRecordsWereScanned):
(WKWebsiteDataStoreSetStatisticsShouldClassifyResourcesBeforeDataRecordsRemoval):
(WKWebsiteDataStoreSetStatisticsNotifyPagesWhenTelemetryWasCaptured):
(WKWebsiteDataStoreSetStatisticsMinimumTimeBetweenDataRecordsRemoval):
(WKWebsiteDataStoreSetStatisticsGrandfatheringTime):
(WKWebsiteDataStoreSetStatisticsMaxStatisticsEntries):
(WKWebsiteDataStoreSetStatisticsPruneEntriesDownTo):
(WKWebsiteDataStoreStatisticsClearInMemoryAndPersistentStore):
(WKWebsiteDataStoreStatisticsClearInMemoryAndPersistentStoreModifiedSinceHours):
(WKWebsiteDataStoreStatisticsResetToConsistentState):
- UIProcess/API/Cocoa/WKWebsiteDataStore.mm:
(-[WKWebsiteDataStore _setResourceLoadStatisticsTestingCallback:]):
- UIProcess/Network/NetworkProcessProxy.cpp:
(WebKit::NetworkProcessProxy::clearCallbackStates):
(WebKit::NetworkProcessProxy::didClose):
(WebKit::nonEphemeralWebPageProxy):
(WebKit::NetworkProcessProxy::logGlobalDiagnosticMessageWithValue):
(WebKit::NetworkProcessProxy::dumpResourceLoadStatistics):
(WebKit::NetworkProcessProxy::didDumpResourceLoadStatistics):
(WebKit::NetworkProcessProxy::updatePrevalentDomainsToBlockCookiesFor):
(WebKit::NetworkProcessProxy::didUpdateBlockCookies):
(WebKit::NetworkProcessProxy::isPrevalentResource):
(WebKit::NetworkProcessProxy::isPrevalentResourceResult):
(WebKit::NetworkProcessProxy::isVeryPrevalentResource):
(WebKit::NetworkProcessProxy::setPrevalentResource):
(WebKit::NetworkProcessProxy::setPrevalentResourceForDebugMode):
(WebKit::NetworkProcessProxy::setVeryPrevalentResource):
(WebKit::NetworkProcessProxy::didSetResourceLoadStatisticData):
(WebKit::NetworkProcessProxy::setLastSeen):
(WebKit::NetworkProcessProxy::clearPrevalentResource):
(WebKit::NetworkProcessProxy::scheduleCookieBlockingUpdate):
(WebKit::NetworkProcessProxy::didScheduleCookieBlockingUpdate):
(WebKit::NetworkProcessProxy::scheduleClearInMemoryAndPersistent):
(WebKit::NetworkProcessProxy::didScheduleStatisticsProcessing):
(WebKit::NetworkProcessProxy::scheduleStatisticsAndDataRecordsProcessing):
(WebKit::NetworkProcessProxy::logUserInteraction):
(WebKit::NetworkProcessProxy::hasHadUserInteraction):
(WebKit::NetworkProcessProxy::didHaveUserInteraction):
(WebKit::NetworkProcessProxy::clearUserInteraction):
(WebKit::NetworkProcessProxy::setAgeCapForClientSideCookies):
(WebKit::NetworkProcessProxy::didSetAgeCapForClientSideCookies):
(WebKit::NetworkProcessProxy::setTimeToLiveUserInteraction):
(WebKit::NetworkProcessProxy::didUpdateRuntimeSettings):
(WebKit::NetworkProcessProxy::setNotifyPagesWhenTelemetryWasCaptured):
(WebKit::NetworkProcessProxy::setNotifyPagesWhenDataRecordsWereScanned):
(WebKit::NetworkProcessProxy::setSubframeUnderTopFrameOrigin):
(WebKit::NetworkProcessProxy::isRegisteredAsRedirectingTo):
(WebKit::NetworkProcessProxy::didIsRegisteredAsRedirectingTo):
(WebKit::NetworkProcessProxy::isRegisteredAsSubFrameUnder):
(WebKit::NetworkProcessProxy::didIsRegisteredAsSubFrameUnder):
(WebKit::NetworkProcessProxy::setSubresourceUnderTopFrameOrigin):
(WebKit::NetworkProcessProxy::isRegisteredAsSubresourceUnder):
(WebKit::NetworkProcessProxy::didIsRegisteredAsSubresourceUnder):
(WebKit::NetworkProcessProxy::setSubresourceUniqueRedirectTo):
(WebKit::NetworkProcessProxy::setSubresourceUniqueRedirectFrom):
(WebKit::NetworkProcessProxy::setTopFrameUniqueRedirectTo):
(WebKit::NetworkProcessProxy::setTopFrameUniqueRedirectFrom):
(WebKit::NetworkProcessProxy::isGrandfathered):
(WebKit::NetworkProcessProxy::didIsGrandfathered):
(WebKit::NetworkProcessProxy::setGrandfathered):
(WebKit::NetworkProcessProxy::hasStorageAccess):
(WebKit::NetworkProcessProxy::requestStorageAccess):
(WebKit::NetworkProcessProxy::grantStorageAccess):
(WebKit::NetworkProcessProxy::storageAccessRequestResult):
(WebKit::NetworkProcessProxy::storageAccessOperationResult):
(WebKit::NetworkProcessProxy::didRemoveAllStorageAccess):
(WebKit::NetworkProcessProxy::didSetCacheMaxAgeCapForPrevalentResources):
(WebKit::NetworkProcessProxy::setCacheMaxAgeCap):
(WebKit::NetworkProcessProxy::setGrandfatheringTime):
(WebKit::NetworkProcessProxy::setMaxStatisticsEntries):
(WebKit::NetworkProcessProxy::setMinimumTimeBetweenDataRecordsRemoval):
(WebKit::NetworkProcessProxy::setPruneEntriesDownTo):
(WebKit::NetworkProcessProxy::setShouldClassifyResourcesBeforeDataRecordsRemoval):
(WebKit::NetworkProcessProxy::setResourceLoadStatisticsDebugMode):
(WebKit::NetworkProcessProxy::resetParametersToDefaultValues):
(WebKit::NetworkProcessProxy::submitTelemetry):
(WebKit::NetworkProcessProxy::notifyResourceLoadStatisticsProcessed):
(WebKit::NetworkProcessProxy::notifyWebsiteDataDeletionForTopPrivatelyOwnedDomainsFinished):
(WebKit::NetworkProcessProxy::notifyWebsiteDataScanForTopPrivatelyControlledDomainsFinished):
(WebKit::NetworkProcessProxy::notifyResourceLoadStatisticsTelemetryFinished):
(WebKit::NetworkProcessProxy::didLogUserInteraction): Deleted.
(WebKit::NetworkProcessProxy::didResetCacheMaxAgeCapForPrevalentResources): Deleted.
- UIProcess/Network/NetworkProcessProxy.h:
- UIProcess/Network/NetworkProcessProxy.messages.in:
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::nonEphemeralWebPageProxy):
- UIProcess/WebPageProxy.h:
- UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::ensureNetworkProcess):
- UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::notifyWebsiteDataScanForTopPrivatelyControlledDomainsFinished):
(WebKit::WebProcessProxy::notifyWebsiteDataDeletionForTopPrivatelyOwnedDomainsFinished):
- UIProcess/WebProcessProxy.h:
- UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm:
(WebKit::WebsiteDataStore::parameters):
- UIProcess/WebsiteData/WebsiteDataStore.cpp:
(WebKit::WebsiteDataStore::removeData):
(WebKit::WebsiteDataStore::setMaxStatisticsEntries):
(WebKit::WebsiteDataStore::setPruneEntriesDownTo):
(WebKit::WebsiteDataStore::setGrandfatheringTime):
(WebKit::WebsiteDataStore::setCacheMaxAgeCap):
(WebKit::WebsiteDataStore::setMinimumTimeBetweenDataRecordsRemoval):
(WebKit::WebsiteDataStore::dumpResourceLoadStatistics):
(WebKit::WebsiteDataStore::isPrevalentResource):
(WebKit::WebsiteDataStore::setPrevalentResource):
(WebKit::WebsiteDataStore::setPrevalentResourceForDebugMode):
(WebKit::WebsiteDataStore::isVeryPrevalentResource):
(WebKit::WebsiteDataStore::setVeryPrevalentResource):
(WebKit::WebsiteDataStore::setShouldClassifyResourcesBeforeDataRecordsRemoval):
(WebKit::WebsiteDataStore::setSubframeUnderTopFrameOrigin):
(WebKit::WebsiteDataStore::isRegisteredAsSubFrameUnder):
(WebKit::WebsiteDataStore::setSubresourceUnderTopFrameOrigin):
(WebKit::WebsiteDataStore::isRegisteredAsSubresourceUnder):
(WebKit::WebsiteDataStore::setSubresourceUniqueRedirectTo):
(WebKit::WebsiteDataStore::setSubresourceUniqueRedirectFrom):
(WebKit::WebsiteDataStore::setTopFrameUniqueRedirectTo):
(WebKit::WebsiteDataStore::setTopFrameUniqueRedirectFrom):
(WebKit::WebsiteDataStore::isRegisteredAsRedirectingTo):
(WebKit::WebsiteDataStore::clearPrevalentResource):
(WebKit::WebsiteDataStore::resetParametersToDefaultValues):
(WebKit::WebsiteDataStore::submitTelemetry):
(WebKit::WebsiteDataStore::scheduleClearInMemoryAndPersistent):
(WebKit::WebsiteDataStore::scheduleCookieBlockingUpdate):
(WebKit::WebsiteDataStore::scheduleStatisticsAndDataRecordsProcessing):
(WebKit::WebsiteDataStore::updatePrevalentDomainsToBlockCookiesFor):
(WebKit::WebsiteDataStore::setAgeCapForClientSideCookies):
(WebKit::WebsiteDataStore::setLastSeen):
(WebKit::WebsiteDataStore::setNotifyPagesWhenDataRecordsWereScanned):
(WebKit::WebsiteDataStore::setNotifyPagesWhenTelemetryWasCaptured):
(WebKit::WebsiteDataStore::hasStorageAccessForFrameHandler):
(WebKit::WebsiteDataStore::getAllStorageAccessEntries):
(WebKit::WebsiteDataStore::grantStorageAccessHandler):
(WebKit::WebsiteDataStore::removeAllStorageAccessHandler):
(WebKit::WebsiteDataStore::removePrevalentDomains):
(WebKit::WebsiteDataStore::hasStorageAccess):
(WebKit::WebsiteDataStore::requestStorageAccess):
(WebKit::WebsiteDataStore::grantStorageAccess):
(WebKit::WebsiteDataStore::setTimeToLiveUserInteraction):
(WebKit::WebsiteDataStore::logUserInteraction):
(WebKit::WebsiteDataStore::hasHadUserInteraction):
(WebKit::WebsiteDataStore::clearUserInteraction):
(WebKit::WebsiteDataStore::isGrandfathered):
(WebKit::WebsiteDataStore::setGrandfathered):
(WebKit::WebsiteDataStore::setCacheMaxAgeCapForPrevalentResources):
(WebKit::WebsiteDataStore::resetCacheMaxAgeCapForPrevalentResources):
(WebKit::WebsiteDataStore::webPageWasAdded):
(WebKit::WebsiteDataStore::webPageWasInvalidated):
(WebKit::WebsiteDataStore::webProcessWillOpenConnection):
(WebKit::WebsiteDataStore::webPageWillOpenConnection):
(WebKit::WebsiteDataStore::webPageDidCloseConnection):
(WebKit::WebsiteDataStore::webProcessDidCloseConnection):
(WebKit::WebsiteDataStore::isAssociatedProcessPool const):
(WebKit::WebsiteDataStore::processPools const):
(WebKit::WebsiteDataStore::resourceLoadStatisticsEnabled const):
(WebKit::WebsiteDataStore::setResourceLoadStatisticsEnabled):
(WebKit::WebsiteDataStore::setResourceLoadStatisticsDebugMode):
(WebKit::WebsiteDataStore::enableResourceLoadStatisticsAndSetTestingCallback):
(WebKit::WebsiteDataStore::logTestingEvent):
- UIProcess/WebsiteData/WebsiteDataStore.h:
(WebKit::WebsiteDataStore::setStatisticsTestingCallback):
- WebProcess/WebProcess.cpp:
(WebKit::WebProcess::initializeWebProcess):
- 2:01 PM Changeset in webkit [240242] by
-
- 3 edits in trunk/Source/JavaScriptCore
[JSC] Lazily initialize JSModuleLoader
https://bugs.webkit.org/show_bug.cgi?id=193646
Reviewed by Keith Miller and Saam Barati.
Lazily initialize JSModuleLoader so that we do not need to initialize it until we need modules.
- runtime/JSGlobalObject.cpp:
(JSC::JSGlobalObject::init):
(JSC::JSGlobalObject::visitChildren):
- runtime/JSGlobalObject.h:
(JSC::JSGlobalObject::moduleLoader const):
- 12:50 PM Changeset in webkit [240241] by
-
- 3 edits in trunk/Source/JavaScriptCore
[JSC] sub op with 0 should be optimized
https://bugs.webkit.org/show_bug.cgi?id=190751
Reviewed by Mark Lam.
LLInt sometimes emit
subp 0, %rxx. For example,maxFrameExtentForSlowPathCallis 0 in X86_64, ARM64, and ARM64E.
Sosubp maxFrameExtentForSlowPathCall spbecomessubp 0, %rsp. Whileaddp 0, %rspis removed in offlineasm,
sub operation does not have such an optimization. This patch applies the same optimization to sub operation already
done in add operation. Since the CPU flags changed in offlineasm's these operations are not considered (if these flags
are required, we use special branch operations instead), this optimization is sane.
One problem is that zero-extension of the 32bit register in 64bit architecture. If the instruction emission is skipped,
this won't be happen. Currently, we align our sub to add operation: we skip emission in this case.
- offlineasm/arm64.rb:
- offlineasm/x86.rb:
- 12:15 PM Changeset in webkit [240240] by
-
- 8 edits2 adds in trunk
[LFC][Floats] Take float top position into account when computing containing block height.
https://bugs.webkit.org/show_bug.cgi?id=193655
Reviewed by Antti Koivisto.
Source/WebCore:
When computing the containing block height, we take the first in-flow child's top position and use it as the base position.
However when the first in-flow child clears a previous sibling, its vertical position is not necessarily the correct base for
computing the containing block's height. Let's take the relevant floats into account as well.
Test: fast/block/float/float-first-child-and-clear-sibling.html
- layout/FormattingContextGeometry.cpp:
(WebCore::Layout::contentHeightForFormattingContextRoot):
- layout/floats/FloatingContext.cpp:
(WebCore::Layout::FloatingContext::verticalPositionWithClearance const):
- layout/floats/FloatingState.cpp:
(WebCore::Layout::FloatingState::top const):
- layout/floats/FloatingState.h:
Tools:
- LayoutReloaded/misc/LFC-passing-tests.txt:
LayoutTests:
- fast/block/float/float-first-child-and-clear-sibling-expected.html: Added.
- fast/block/float/float-first-child-and-clear-sibling.html: Added.
- 11:51 AM Changeset in webkit [240239] by
-
- 2 edits in trunk/Source/WebCore
REGRESSION (r240237): Revert changes to WebCore Xcode project
- WebCore.xcodeproj/project.pbxproj: Revert changes that were
fixed in r240135. Darin's patch must have been made prior to
r240135.
- 11:23 AM Changeset in webkit [240238] by
-
- 2 edits in trunk/Source/WebCore
REGRESSION (r240201): Add a POINTER_EVENTS feature flag
https://bugs.webkit.org/show_bug.cgi?id=193577
<rdar://problem/47408511>
- dom/ios/PointerEventIOS.cpp: Add ENABLE(POINTER_EVENTS) macro
to fix tvOS & watchOS builds.
- 11:01 AM Changeset in webkit [240237] by
-
- 117 edits in trunk/Source
Use references rather than pointers for register/unregister functions, and more
https://bugs.webkit.org/show_bug.cgi?id=175028
Reviewed by Daniel Bates.
Source/WebCore:
- Modules/applepay/ApplePaySession.cpp:
(WebCore::ApplePaySession::begin): Pass a reference.
(WebCore::ApplePaySession::completePayment): Ditto.
(WebCore::ApplePaySession::didReachFinalState): Ditto.
- Modules/cache/DOMCache.cpp:
(WebCore::DOMCache::retrieveRecords): Ditto.
(WebCore::DOMCache::batchDeleteOperation): Ditto.
(WebCore::DOMCache::batchPutOperation): Ditto.
- Modules/cache/DOMCacheStorage.cpp:
(WebCore::DOMCacheStorage::match): Ditto.
- Modules/fetch/FetchBodyOwner.cpp:
(WebCore::FetchBodyOwner::loadBlob): Ditto.
(WebCore::FetchBodyOwner::finishBlobLoading): Ditto.
- Modules/fetch/FetchBodySource.cpp:
(WebCore::FetchBodySource::setActive): Ditto.
(WebCore::FetchBodySource::setInactive): Ditto.
- Modules/fetch/FetchResponse.cpp:
(WebCore::FetchResponse::BodyLoader::BodyLoader): Ditto.
(WebCore::FetchResponse::BodyLoader::~BodyLoader): Ditto.
- Modules/mediasource/MediaSource.cpp:
(WebCore::MediaSource::addedToRegistry): Ditto.
(WebCore::MediaSource::removedFromRegistry): Ditto.
- Modules/mediastream/MediaStream.cpp:
(WebCore::MediaStream::~MediaStream): Ditto.
(WebCore::MediaStream::startProducingData): Ditto.
- Modules/mediastream/MediaStreamTrack.cpp:
(WebCore::MediaStreamTrack::MediaStreamTrack): Ditto.
(WebCore::MediaStreamTrack::~MediaStreamTrack): Ditto.
- Modules/mediastream/RTCDataChannel.cpp:
(WebCore::RTCDataChannel::create): Ditto.
(WebCore::RTCDataChannel::close): Ditto.
- Modules/mediastream/RTCPeerConnection.cpp:
(WebCore::RTCPeerConnection::create): Use auto.
- Modules/notifications/Notification.cpp:
(WebCore::Notification::show): Pass a reference.
(WebCore::Notification::finalize): Ditto.
- Modules/webaudio/AudioBasicInspectorNode.cpp:
(WebCore::AudioBasicInspectorNode::updatePullStatus): Ditto.
- Modules/webaudio/AudioContext.cpp:
(WebCore::AudioContext::constructCommon): Ditto.
(WebCore::AudioContext::lazyInitialize): Ditto.
(WebCore::AudioContext::clear): Ditto.
(WebCore::AudioContext::uninitialize): Ditto.
(WebCore::AudioContext::markForDeletion): Take a reference.
(WebCore::AudioContext::addAutomaticPullNode): Ditto.
(WebCore::AudioContext::removeAutomaticPullNode): Ditto.
(WebCore::AudioContext::willBeginPlayback): Pass a reference.
(WebCore::AudioContext::willPausePlayback): Ditto.
- Modules/webaudio/AudioContext.h: Update above functions to take
references rather than pointers.
- Modules/webaudio/AudioNode.cpp:
(WebCore::AudioNode::finishDeref): Pass a reference.
- Modules/websockets/WebSocket.cpp:
(WebCore::WebSocket::connect): Ditto.
(WebCore::WebSocket::stop): Ditto.
(WebCore::WebSocket::didClose): Ditto.
- WebCore.xcodeproj/project.pbxproj: Allowed Xcode to update this file.
- bindings/js/JSDOMWindowBase.cpp:
(WebCore::JSDOMWindowBase::moduleLoaderResolve): Update since
moduleLoader is now a reference.
(WebCore::JSDOMWindowBase::moduleLoaderFetch): Ditto.
(WebCore::JSDOMWindowBase::moduleLoaderEvaluate): Ditto.
(WebCore::JSDOMWindowBase::moduleLoaderImportModule): Ditto.
(WebCore::JSDOMWindowBase::moduleLoaderCreateImportMetaProperties): Ditto.
- dom/ActiveDOMObject.h:
(WebCore::ActiveDOMObject::setPendingActivity): Take a reference.
(WebCore::ActiveDOMObject::unsetPendingActivity): Ditto.
- dom/CharacterData.cpp:
(WebCore::CharacterData::setData): Pass a reference.
(WebCore::CharacterData::insertData): Ditto.
(WebCore::CharacterData::deleteData): Ditto.
(WebCore::CharacterData::replaceData): Ditto.
- dom/Document.cpp:
(WebCore::Document::getElementByAccessKey): Pass a reference.
(WebCore::Document::buildAccessKeyMap): Take a reference.
(WebCore::Document::registerForVisibilityStateChangedCallbacks): Ditto.
(WebCore::Document::unregisterForVisibilityStateChangedCallbacks): Ditto.
(WebCore::Document::addAudioProducer): Ditto.
(WebCore::Document::removeAudioProducer): Ditto.
(WebCore::Document::hoveredElementDidDetach): Ditto.
(WebCore::Document::elementInActiveChainDidDetach): Ditto.
(WebCore::Document::attachNodeIterator): Ditto.
(WebCore::Document::detachNodeIterator): Ditto.
(WebCore::Document::moveNodeIteratorsToNewDocumentSlowCase): Pass
a reference.
(WebCore::Document::nodeChildrenWillBeRemoved): Ditto.
(WebCore::Document::nodeWillBeRemoved): Ditto.
(WebCore::Document::textInserted): Take a reference.
(WebCore::Document::textRemoved): Ditto.
(WebCore::Document::textNodesMerged): Ditto.
(WebCore::Document::textNodeSplit): Ditto.
(WebCore::Document::takeDOMWindowFrom): Ditto.
(WebCore::Document::registerForDocumentSuspensionCallbacks): Ditto.
(WebCore::Document::unregisterForDocumentSuspensionCallbacks): Ditto.
(WebCore::Document::registerForMediaVolumeCallbacks): Ditto.
(WebCore::Document::unregisterForMediaVolumeCallbacks): Ditto.
(WebCore::Document::registerForPrivateBrowsingStateChangedCallbacks): Ditto.
(WebCore::Document::unregisterForPrivateBrowsingStateChangedCallbacks): Ditto.
(WebCore::Document::registerForCaptionPreferencesChangedCallbacks): Ditto.
(WebCore::Document::unregisterForCaptionPreferencesChangedCallbacks): Ditto.
(WebCore::Document::registerForPageScaleFactorChangedCallbacks): Ditto.
(WebCore::Document::unregisterForPageScaleFactorChangedCallbacks): Ditto.
(WebCore::Document::finishedParsing): Use a reference.
(WebCore::Document::attachRange): Take a reference.
(WebCore::Document::detachRange): Ditto.
(WebCore::Document::suspendScheduledTasks): Use a reference.
(WebCore::Document::resumeScheduledTasks): Ditto.
(WebCore::Document::addMediaCanStartListener): Take a reference.
(WebCore::Document::removeMediaCanStartListener): Ditto.
(WebCore::Document::deviceMotionController const): Return a reference.
(WebCore::Document::deviceOrientationController const): Ditto.
(WebCore::Document::simulateDeviceOrientationChange): Use a reference.
(WebCore::Document::fullScreenIsAllowedForElement const): Take a reference.
(WebCore::Document::requestFullScreenForElement): Pass a reference.
(WebCore::Document::webkitExitFullscreen): Ditto.
(WebCore::Document::webkitWillEnterFullScreen): Renamed to remove the
"ForElement" from the function name. Take a reference rather than a pointer.
(WebCore::Document::webkitDidEnterFullScreen): Renamed to remove the
"ForElement" from the function name and removed the unused element argument.
(WebCore::Document::webkitWillExitFullScreen): Ditto.
(WebCore::Document::webkitDidExitFullScreen): Ditto.
(WebCore::Document::pushFullscreenElementStack): Take a reference.
(WebCore::Document::addDocumentToFullScreenChangeEventQueue): Ditto.
(WebCore::DocumentParserYieldToken::DocumentParserYieldToken): Use a reference.
(WebCore::DocumentParserYieldToken::~DocumentParserYieldToken): Ditto.
(WebCore::Document::updateHoverActiveState): Updated name of isInActiveChain.
- dom/Document.h: Updated argument types as described above. Changed a couple
of inline functions to return references.
- dom/DocumentMarkerController.cpp:
(WebCore::DocumentMarkerController::addMarker): Take a reference.
(WebCore::DocumentMarkerController::addMarkerToNode): Ditto.
(WebCore::DocumentMarkerController::addTextMatchMarker): Ditto.
(WebCore::DocumentMarkerController::addDictationPhraseWithAlternativesMarker): Ditto.
(WebCore::DocumentMarkerController::addDictationResultMarker): Ditto.
(WebCore::DocumentMarkerController::addDraggedContentMarker): Ditto.
(WebCore::DocumentMarkerController::removeMarkers): Ditto.
(WebCore::DocumentMarkerController::copyMarkers): Ditto.
(WebCore::DocumentMarkerController::shiftMarkers): Ditto.
(WebCore::DocumentMarkerController::setMarkersActive): DItto.
- dom/DocumentMarkerController.h: Updated argument types as described above.
- dom/Element.cpp:
(WebCore::Element::~Element): Pass a reference.
(WebCore::Element::isUserActionElementInActiveChain const): Updated name of
isInActiveChain.
(WebCore::Element::hasEquivalentAttributes const): Take a reference.
(WebCore::Element::removedFromAncestor): Pass a reference.
(WebCore::Element::clearHoverAndActiveStatusBeforeDetachingRenderer):
Pass a reference and updated name of isInActiveChain.
- dom/Element.h: Renamed inActiveChain to isInActiveChain, updated argument
types to be references, and removed unneeded friend declaration and made
SynchronizationOfLazyAttribute private.
- dom/Node.cpp:
(WebCore::Node::normalize): Pass a reference.
(WebCore::Node::isEqualNode const): Ditto.
- dom/NodeIterator.cpp:
(WebCore::NodeIterator::NodeIterator): Ditto.
(WebCore::NodeIterator::~NodeIterator): Ditto.
- dom/RadioButtonGroups.cpp:
(WebCore::RadioButtonGroup::add): Take a reference.
(WebCore::RadioButtonGroup::updateCheckedState): Ditto.
(WebCore::RadioButtonGroup::remove): Ditto.
(WebCore::RadioButtonGroup::contains const): Ditto.
(WebCore::RadioButtonGroups::addButton): Ditto.
(WebCore::RadioButtonGroups::updateCheckedState): Ditto.
(WebCore::RadioButtonGroups::hasCheckedButton const): Ditto.
(WebCore::RadioButtonGroups::isInRequiredGroup const): Ditto.
(WebCore::RadioButtonGroups::removeButton): Ditto.
- dom/RadioButtonGroups.h: Updated argument types.
- dom/Range.cpp:
(WebCore::Range::Range): Pass a reference.
(WebCore::Range::~Range): Ditto.
(WebCore::Range::setDocument): Ditto.
(WebCore::Range::createContextualFragment): Ditto.
(WebCore::boundaryTextInserted): Ditto.
(WebCore::Range::textInserted): Ditto.
(WebCore::boundaryTextRemoved): Ditto.
(WebCore::Range::textRemoved): Ditto.
(WebCore::boundaryTextNodesSplit): Ditto.
(WebCore::Range::textNodeSplit): Ditto.
- dom/Range.h: Take references instead of pointers.
- dom/ScriptElement.cpp:
(WebCore::ScriptElement::prepareScript): Use reference.
- dom/Text.cpp:
(WebCore::Text::splitText): Pass reference.
- dom/UserActionElementSet.h: Renamed inActiveChain to isInActiveChain to
match the naming scheme of the other similar functions, like isActive.
- editing/AlternativeTextController.cpp:
(WebCore::AlternativeTextController::applyAlternativeTextToRange):
Pass a reference.
(WebCore::AlternativeTextController::respondToUnappliedSpellCorrection): Ditto.
(WebCore::AlternativeTextController::handleAlternativeTextUIResult): Ditto.
(WebCore::AlternativeTextController::respondToUnappliedEditing): Ditto.
(WebCore::AlternativeTextController::markReversed): Ditto.
(WebCore::AlternativeTextController::markCorrection): Ditto.
(WebCore::AlternativeTextController::recordSpellcheckerResponseForModifiedCorrection): Ditto.
(WebCore::AlternativeTextController::markPrecedingWhitespaceForDeletedAutocorrectionAfterCommand): Ditto.
- editing/CompositeEditCommand.cpp:
(WebCore::CompositeEditCommand::replaceTextInNodePreservingMarkers): Ditto.
- editing/DictationCommand.cpp: Ditto.
- editing/Editing.cpp:
(WebCore::areIdenticalElements): Ditto.
- editing/Editor.cpp:
(WebCore::Editor::ignoreSpelling): Ditto.
(WebCore::Editor::learnSpelling): Ditto.
(WebCore::Editor::advanceToNextMisspelling): Ditto.
(WebCore::Editor::clearMisspellingsAndBadGrammar): Ditto.
(WebCore::Editor::markMisspellingsAfterTypingToWord): Ditto.
(WebCore::Editor::markAndReplaceFor): Ditto.
(WebCore::Editor::changeBackToReplacedString): Ditto.
(WebCore::Editor::updateMarkersForWordsAffectedByEditing): Ditto.
(WebCore::Editor::countMatchesForText): Ditto.
(WebCore::Editor::scanRangeForTelephoneNumbers): Ditto.
(WebCore::Editor::editorUIUpdateTimerFired): Ditto.
(WebCore::Editor::handleAcceptedCandidate): Ditto.
- editing/InsertTextCommand.cpp:
(WebCore::InsertTextCommand::doApply): Pass a reference.
- editing/InsertTextCommand.h: Take a reference.
- editing/SpellChecker.cpp:
(WebCore::SpellChecker::didCheckSucceed): Pass a reference.
- editing/SplitTextNodeCommand.cpp:
(WebCore::SplitTextNodeCommand::doApply): Ditto.
(WebCore::SplitTextNodeCommand::doUnapply): Ditto.
- editing/TextCheckingHelper.cpp:
(WebCore::TextCheckingHelper::findFirstMisspelling): Pass a reference.
(WebCore::TextCheckingHelper::findFirstGrammarDetail const): Ditto.
- editing/ios/DictationCommandIOS.cpp:
(WebCore::DictationCommandIOS::doApply): Ditto.
Also added a comment about a possible missing null check; behavior should
be no different than before, but using a reference helps make clear there
was never any null check.
- editing/ios/EditorIOS.mm:
(WebCore::Editor::setDictationPhrasesAsChildOfElement): Ditto.
- fileapi/FileReader.cpp:
(WebCore::FileReader::readInternal): Ditto.
(WebCore::FileReader::abort): Ditto.
(WebCore::FileReader::didFinishLoading): Ditto.
(WebCore::FileReader::didFail): Ditto.
- html/HTMLAppletElement.cpp: Removed unneeded include of HTMLDocument.h.
There's very little left that is truly specific to HTMLDocument vs. Document.
- html/HTMLDocument.h:
(WebCore::HTMLDocument::create): Take a reference.
(WebCore::HTMLDocument::createSynthesizedDocument): Ditto.
- html/HTMLFormElement.cpp:
(WebCore::HTMLFormElement::~HTMLFormElement): Pass a reference.
(WebCore::HTMLFormElement::parseAttribute): Ditto.
(WebCore::HTMLFormElement::didMoveToNewDocument): Ditto.
- html/HTMLIFrameElement.cpp: Removed unneeded include of HTMLDocument.h.
- html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::~HTMLInputElement): Pass a reference.
(WebCore::HTMLInputElement::setChecked): Ditto.
(WebCore::HTMLInputElement::registerForSuspensionCallbackIfNeeded): Ditto.
(WebCore::HTMLInputElement::unregisterForSuspensionCallbackIfNeeded): Ditto.
(WebCore::HTMLInputElement::didMoveToNewDocument): Ditto.
(WebCore::HTMLInputElement::isInRequiredRadioButtonGroup): Ditto.
(WebCore::HTMLInputElement::addToRadioButtonGroup): Ditto.
(WebCore::HTMLInputElement::removeFromRadioButtonGroup): Ditto.
- html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::registerWithDocument): Ditto.
(WebCore::HTMLMediaElement::unregisterWithDocument): Ditto.
(WebCore::HTMLMediaElement::selectMediaResource): Ditto.
(WebCore::HTMLMediaElement::addTextTrack): Ditto.
(WebCore::HTMLMediaElement::clearMediaPlayer): Ditto.
(WebCore::HTMLMediaElement::resume): Ditto.
(WebCore::HTMLMediaElement::setMediaControlsDependOnPageScaleFactor): Ditto.
- html/HTMLNameCollection.cpp: Removed unneeded include of HTMLDocument.h.
- html/HTMLPlugInImageElement.cpp:
(WebCore::HTMLPlugInImageElement::~HTMLPlugInImageElement): Pass a reference.
(WebCore::HTMLPlugInImageElement::createElementRenderer): Ditto.
(WebCore::HTMLPlugInImageElement::didMoveToNewDocument): Ditto.
- html/HTMLSourceElement.cpp: Removed unneeded include of HTMLDocument.h.
- html/HTMLTemplateElement.cpp: Ditto.
- html/RadioInputType.cpp:
(WebCore::RadioInputType::matchesIndeterminatePseudoClass const):
Pass a reference.
- loader/DocumentWriter.cpp:
(WebCore::DocumentWriter::begin): Ditto.
- page/DOMWindow.cpp:
(WebCore::DOMWindow::addEventListener): Ditto.
(WebCore::DOMWindow::removeEventListener): Ditto.
(WebCore::DOMWindow::removeAllEventListeners): Ditto.
- page/EventHandler.cpp:
(WebCore::EventHandler::didStartDrag): Use a reference.
- page/EventSource.cpp:
(WebCore::EventSource::create): Pass reference.
(WebCore::EventSource::networkRequestEnded): Ditto.
(WebCore::EventSource::close): Ditto.
(WebCore::EventSource::abortConnectionAttempt): Ditto.
- page/Frame.cpp: Removed unneeded include of HTMLDocument.h.
- page/FrameView.cpp: Ditto.
(WebCore::FrameView::qualifiesAsVisuallyNonEmpty const): Use reference.
- page/animation/AnimationBase.cpp:
(WebCore::AnimationBase::updateStateMachine): Pass reference.
- page/animation/CSSAnimationController.cpp:
(WebCore::CSSAnimationControllerPrivate::addToAnimationsWaitingForStyle): Take reference.
(WebCore::CSSAnimationControllerPrivate::removeFromAnimationsWaitingForStyle): Ditto.
(WebCore::CSSAnimationControllerPrivate::addToAnimationsWaitingForStartTimeResponse): Ditto.
(WebCore::CSSAnimationControllerPrivate::removeFromAnimationsWaitingForStartTimeResponse): Ditto.
(WebCore::CSSAnimationControllerPrivate::animationWillBeRemoved): Ditto.
- page/animation/CSSAnimationControllerPrivate.h: Ditto.
- page/animation/CompositeAnimation.cpp:
(WebCore::CompositeAnimation::clearElement): Pass reference.
(WebCore::CompositeAnimation::updateTransitions): Ditto.
(WebCore::CompositeAnimation::updateKeyframeAnimations): Ditto.
- page/ios/FrameIOS.mm:
(WebCore::Frame::initWithSimpleHTMLDocument): Ditto.
- platform/graphics/ca/cocoa/PlatformCALayerCocoa.mm:
(WebCore::layerContentsFormat): Add ALLOW_DEPRECATED_DECLARATIONS_BEGIN/END so
I can continue to compile with latest headers.
- rendering/CSSFilter.cpp:
(WebCore::CSSFilter::buildReferenceFilter): Pass reference, small coding style
tweaks as well.
- rendering/svg/RenderSVGResource.cpp:
(WebCore::removeFromCacheAndInvalidateDependencies): Pass reference.
- rendering/svg/RenderSVGResourceContainer.cpp:
(WebCore::RenderSVGResourceContainer::registerResource): Ditto.
- rendering/svg/SVGResources.cpp:
(WebCore::registerPendingResource): Ditto.
- rendering/svg/SVGResourcesCache.cpp:
(WebCore::SVGResourcesCache::resourceDestroyed): Ditto.
- svg/SVGDocumentExtensions.cpp:
(WebCore::SVGDocumentExtensions::addTimeContainer): Take reference.
(WebCore::SVGDocumentExtensions::removeTimeContainer): Ditto.
(WebCore::SVGDocumentExtensions::addResource): Ditto.
(WebCore::SVGDocumentExtensions::addPendingResource): Ditto.
(WebCore::SVGDocumentExtensions::isElementWithPendingResources const): Ditto.
(WebCore::SVGDocumentExtensions::isPendingResource const): Ditto.
(WebCore::SVGDocumentExtensions::clearHasPendingResourcesIfPossible): Ditto.
(WebCore::SVGDocumentExtensions::removeElementFromPendingResources): Ditto.
(WebCore::SVGDocumentExtensions::setOfElementsReferencingTarget): Ditto.
(WebCore::SVGDocumentExtensions::addElementReferencingTarget): Ditto.
(WebCore::SVGDocumentExtensions::removeAllTargetReferencesForElement): Ditto.
(WebCore::SVGDocumentExtensions::clearTargetDependencies): Ditto.
(WebCore::SVGDocumentExtensions::removeAllElementReferencesForTarget): Ditto.
(WebCore::SVGDocumentExtensions::registerSVGFontFaceElement): Ditto.
(WebCore::SVGDocumentExtensions::unregisterSVGFontFaceElement): Ditto.
- svg/SVGDocumentExtensions.h: Ditto.
- svg/SVGElement.cpp:
(WebCore::SVGElement::~SVGElement): Pass reference.
(WebCore::SVGElement::removedFromAncestor): Ditto.
(WebCore::SVGElement::buildPendingResourcesIfNeeded): Ditto.
- svg/SVGFEImageElement.cpp:
(WebCore::SVGFEImageElement::clearResourceReferences): Ditto.
(WebCore::SVGFEImageElement::buildPendingResource): Ditto.
- svg/SVGFontFaceElement.cpp:
(WebCore::SVGFontFaceElement::insertedIntoAncestor): Ditto.
(WebCore::SVGFontFaceElement::removedFromAncestor): Ditto.
- svg/SVGMPathElement.cpp:
(WebCore::SVGMPathElement::buildPendingResource): Ditto.
(WebCore::SVGMPathElement::clearResourceReferences): Ditto.
- svg/SVGPathElement.cpp:
(WebCore::SVGPathElement::invalidateMPathDependencies): Ditto.
- svg/SVGSVGElement.cpp:
(WebCore::SVGSVGElement::SVGSVGElement): Ditto.
(WebCore::SVGSVGElement::~SVGSVGElement): Ditto.
(WebCore::SVGSVGElement::didMoveToNewDocument): Ditto.
(WebCore::SVGSVGElement::insertedIntoAncestor): Ditto.
(WebCore::SVGSVGElement::removedFromAncestor): Ditto.
- svg/SVGTRefElement.cpp:
(WebCore::SVGTRefElement::detachTarget): Ditto.
(WebCore::SVGTRefElement::buildPendingResource): Ditto.
- svg/SVGTextPathElement.cpp:
(WebCore::SVGTextPathElement::clearResourceReferences): Ditto.
(WebCore::SVGTextPathElement::buildPendingResource): Ditto.
- svg/SVGUseElement.cpp:
(WebCore::SVGUseElement::updateShadowTree): Ditto.
- svg/animation/SVGSMILElement.cpp:
(WebCore::SVGSMILElement::clearResourceReferences): Ditto.
(WebCore::SVGSMILElement::buildPendingResource): Ditto.
- testing/Internals.cpp:
(WebCore::Internals::addTextMatchMarker): Ditto.
(WebCore::Internals::webkitWillEnterFullScreenForElement): Ditto.
(WebCore::Internals::webkitDidEnterFullScreenForElement): Ditto.
(WebCore::Internals::webkitWillExitFullScreenForElement): Ditto.
(WebCore::Internals::webkitDidExitFullScreenForElement): Ditto.
- workers/Worker.cpp:
(WebCore::Worker::create): Ditto.
(WebCore::Worker::notifyFinished): Ditto.
- workers/service/ServiceWorkerContainer.cpp:
(WebCore::ServiceWorkerContainer::scheduleJob): Ditto.
(WebCore::ServiceWorkerContainer::jobDidFinish): Ditto.
- xml/XMLHttpRequest.cpp:
(WebCore::XMLHttpRequest::prepareToSend): Ditto.
(WebCore::XMLHttpRequest::createRequest): Ditto.
(WebCore::XMLHttpRequest::internalAbort): Ditto.
(WebCore::XMLHttpRequest::networkErrorTimerFired): Ditto.
(WebCore::XMLHttpRequest::didFail): Ditto.
(WebCore::XMLHttpRequest::didFinishLoading): Ditto.
- xml/XPathStep.cpp: Removed unneeded include of HTMLDocument.h.
(WebCore::XPath::nodeMatchesBasicTest): Changed code to call isHTMLDocument
rather than is<HTMLDocument> since this is not a type check for a downcast,
but rather a behavioral difference that does not depend on any of the data
stored in an HTMLDocument or the use of a distinct C++ class for it.
- xml/XSLTProcessor.cpp:
(WebCore::XSLTProcessor::createDocumentFromSource): Pass a reference.
Source/WebKit:
- WebProcess/FullScreen/WebFullScreenManager.cpp:
(WebKit::WebFullScreenManager::willEnterFullScreen): Update for change to the
functions in Document; pass a reference.
(WebKit::WebFullScreenManager::didEnterFullScreen): Ditto, don't pass the element.
(WebKit::WebFullScreenManager::willExitFullScreen): Ditto.
(WebKit::WebFullScreenManager::didExitFullScreen): Ditto.
- WebProcess/MediaStream/UserMediaPermissionRequestManager.cpp:
(WebKit::UserMediaPermissionRequestManager::startUserMediaRequest): Pass a reference.
(WebKit::UserMediaPermissionRequestManager::mediaCanStart): Ditto.
(WebKit::UserMediaPermissionRequestManager::removeMediaRequestFromMaps): Ditto.
- WebProcess/Plugins/PluginView.cpp:
(WebKit::PluginView::~PluginView): Ditto.
(WebKit::PluginView::initializePlugin): Ditto.
Source/WebKitLegacy:
- WebKitLegacy.xcodeproj/project.pbxproj: Let Xcode update this project.
Source/WebKitLegacy/mac:
- WebCoreSupport/WebKitFullScreenListener.mm:
(-[WebKitFullScreenListener webkitWillEnterFullScreen]): Update for change to the
functions in Document; pass a reference.
(-[WebKitFullScreenListener webkitDidEnterFullScreen]): Ditto, don't pass the element.
(-[WebKitFullScreenListener webkitWillExitFullScreen]): Ditto.
(-[WebKitFullScreenListener webkitDidExitFullScreen]): Ditto.
- WebView/WebFullScreenController.mm:
(-[WebFullScreenController enterFullScreen:]): Ditto.
(-[WebFullScreenController finishedEnterFullScreenAnimation:]): Ditto.
(-[WebFullScreenController exitFullScreen]): Ditto.
(-[WebFullScreenController finishedExitFullScreenAnimation:]): Ditto.
- WebView/WebFullScreenController.mm:
(-[WebView _commonInitializationWithFrameName:groupName:]): Pass a reference.
Source/WebKitLegacy/win:
- Plugins/PluginView.cpp:
(WebCore::PluginView::startOrAddToUnstartedList): Pass a reference.
(WebCore::PluginView::~PluginView): Ditto.
- WebView.cpp:
(WebView::fullScreenClientWillEnterFullScreen): Ditto.
(WebView::fullScreenClientDidEnterFullScreen): Ditto.
(WebView::fullScreenClientDidExitFullScreen): Ditto.
- 10:05 AM Changeset in webkit [240236] by
-
- 2 edits in trunk/Source/WebCore/PAL
Sort PAL Xcode project file
- PAL.xcodeproj/project.pbxproj:
- 9:22 AM Changeset in webkit [240235] by
-
- 7 edits in trunk
Switch remaining VideoToolbox soft-linking in WebCore over to VideoToolboxSoftLink.{cpp,h}
<https://webkit.org/b/193645>
<rdar://problem/47421574>
Reviewed by Alex Christensen.
Source/WebCore:
- platform/cocoa/VideoToolboxSoftLink.cpp:
- platform/cocoa/VideoToolboxSoftLink.h:
- Move soft-linking of VTPixelBufferConformer* functions from PixelBufferConformerCV.cpp to here.
- platform/graphics/cv/PixelBufferConformerCV.cpp:
- Remove local soft-linking of VideoToolbox.framework and switch to VideoToolboxSoftLink.h.
Tools:
- Now checks for local soft-linking of all frameworks that have their own *SoftLinking.{cpp,h,mm} files.
- Changes softlink/uikit warning to softlink/framework.
- Scripts/webkitpy/style/checkers/cpp.py:
(check_language):
(CppChecker):
- Scripts/webkitpy/style/checkers/cpp_unittest.py:
(CppStyleTest):
- 5:32 AM Changeset in webkit [240234] by
-
- 2 edits in trunk/Source/WTF
[GTK] Speculative build fix for Ubuntu LTS
https://bugs.webkit.org/show_bug.cgi?id=193651
Unreviewed build fix.
- wtf/Assertions.h: Add missing <cstdlib> include.
- 4:37 AM Changeset in webkit [240233] by
-
- 1 edit2 adds in trunk/LayoutTests
Add a basic test for scrollable iframe on iOS
https://bugs.webkit.org/show_bug.cgi?id=193650
Patch by Frederic Wang <fwang@igalia.com> on 2019-01-21
Reviewed by Antti Koivisto.
- fast/scrolling/ios/scroll-iframe-expected.html: Added.
- fast/scrolling/ios/scroll-iframe.html: Added.
- 4:27 AM Changeset in webkit [240232] by
-
- 4 edits in trunk/Source/WebCore
Move delegatesScrolling() tests to lower level conversion function in ScrollView
https://bugs.webkit.org/show_bug.cgi?id=193649
Reviewed by Frédéric Wang.
This reduces places where these tests are needed and helps avoid mistakes.
- dom/Document.cpp:
(WebCore::computeIntersectionState):
- page/FrameView.cpp:
(WebCore::FrameView::convertFromRendererToContainingView const):
(WebCore::FrameView::convertFromContainingViewToRenderer const):
- platform/ScrollView.cpp:
(WebCore::ScrollView::viewToContents const):
(WebCore::ScrollView::contentsToView const):
(WebCore::ScrollView::contentsToContainingViewContents const):
(WebCore::ScrollView::rootViewToContents const):
(WebCore::ScrollView::contentsToRootView const):
(WebCore::ScrollView::windowToContents const):
(WebCore::ScrollView::contentsToWindow const):
- 2:14 AM Changeset in webkit [240231] by
-
- 4 edits in trunk/Source/WebCore
REGRESSION(r239915): about 130 test failures on WPE
https://bugs.webkit.org/show_bug.cgi?id=193395
Reviewed by Žan Doberšek.
Since r239915 we are only overriding the characters with Default_Ignorable unicode property when the font
doesn't support the code point. If the font happens to provide a glyph for the character, it's later ignored by
harfbuzz when shaping, but the simple text code path doesn't ignore them unless there isn't a glyph.
- platform/graphics/WidthIterator.cpp:
(WebCore::WidthIterator::advanceInternal): Always ignore characters with Default_Ignorable unicode property.
(WebCore::characterMustDrawSomething): Moved to CharacterProperties.h and renamed as isDefaultIgnorableCodePoint().
- platform/graphics/freetype/GlyphPageTreeNodeFreeType.cpp:
(WebCore::GlyphPage::fill): Use isDefaultIgnorableCodePoint().
- platform/text/CharacterProperties.h:
(WebCore::isDefaultIgnorableCodePoint): Return whether the character has Default_Ignorable unicode property.
- 1:34 AM WebKitGTK/2.22.x edited by
- (diff)
Jan 20, 2019:
- 11:31 PM Changeset in webkit [240230] by
-
- 14 edits7 copies6 adds in trunk/Source/WebCore
[WHLSL] Implement Metal code generation
https://bugs.webkit.org/show_bug.cgi?id=193531
Reviewed by Dean Jackson.
This implements the majority of the metal code generation piece. There are still a few pieces missing,
that I'll add in follow up patches. There's still enough complexity here that this is worth reviewing
on its own, though.
This patch includes a few pieces:
- Metal typedefs for every WHLSL type. This analysis is actually pretty interesting, because complex
types depend on their inner types, and the inner types need to be emitted first. Therefore,
this patch implements a topological sort when emitting types. Also, WHLSL types need to be de-
duped because array references are implemented in MSL as structs, and if you have two structs
in MSL with the same contents, those two structs are not equal and cannot be assigned to each
other. So, this patch creates a trie to de-dup all the UnnamedTypes, and implements a
dependency graph which includes both nodes in the trie as well as NamedTypes which don't appear
in the trie.
- WHLSL enumeration code generation
- A name mangler, which ensures that no text from the source program is contained within the result
program
- Full support for expressions. An expression like "y = *x + 7;" would be converted to something like
Type1 variable1 = *x;
Type2 variable2 = 7;
Type3 variable3 = variable1 + variable2;
y = variable3;
- Mostly complete support for control flow. This is tricky because of how we transform WHLSL
expressions into C++ statements. Therefore, things like "for ( ; *x + 7; )" is difficult to
compile, because we can't put the "*x + 7" generated statements into the for loop itself.
Instead, we have to emit this code inside the loop, in all the places that would implicitly run
it. This patch doesn't fully handle this, see below. (If MSL supported lambdas, we could put
the statements into a lambda and do something like "for ( ; theLambda(); )" but MSL doesn't
support lambdas.)
Missing pieces:
- Entry point pack / unpack code
- Support for "continue" (See above regarding control flow)
- Knowing whether or not a switch case should end with break or fallthrough
- Trapping
- Zero filling variables
- Code generation for compiler-generated native functions (this patch supports native functions in the
standard library), texture functions, and HLSL's half <-> int functions.
No new tests because it isn't hooked up yet. As soon as we can do entry point packing and unpacking,
I'll start porting the test suite.
- Modules/webgpu/WHLSL/AST/WHLSLBuiltInSemantic.h:
(WebCore::WHLSL::AST::BuiltInSemantic::targetIndex):
- Modules/webgpu/WHLSL/AST/WHLSLExpression.h:
(WebCore::WHLSL::AST::Expression::resolvedType):
(WebCore::WHLSL::AST::Expression::type): Deleted.
- Modules/webgpu/WHLSL/AST/WHLSLFunctionDeclaration.h:
(WebCore::WHLSL::AST::FunctionDeclaration::name):
- Modules/webgpu/WHLSL/AST/WHLSLStructureDefinition.h:
(WebCore::WHLSL::AST::StructureDefinition::find):
- Modules/webgpu/WHLSL/Metal/WHLSLEntryPointScaffolding.cpp: Added.
(WebCore::WHLSL::Metal::EntryPointScaffolding::EntryPointScaffolding):
(WebCore::WHLSL::Metal::EntryPointScaffolding::helperTypes):
(WebCore::WHLSL::Metal::EntryPointScaffolding::signature):
(WebCore::WHLSL::Metal::EntryPointScaffolding::unpack):
(WebCore::WHLSL::Metal::EntryPointScaffolding::pack):
- Modules/webgpu/WHLSL/Metal/WHLSLEntryPointScaffolding.h: Copied from Source/WebCore/Modules/webgpu/WHLSL/WHLSLLoopChecker.h.
- Modules/webgpu/WHLSL/Metal/WHLSLFunctionWriter.cpp: Added.
(WebCore::WHLSL::Metal::FunctionDeclarationWriter::FunctionDeclarationWriter):
(WebCore::WHLSL::Metal::FunctionDeclarationWriter::toString):
(WebCore::WHLSL::Metal::FunctionDefinitionWriter::FunctionDefinitionWriter):
(WebCore::WHLSL::Metal::FunctionDefinitionWriter::toString):
(WebCore::WHLSL::Metal::FunctionDefinitionWriter::constantExpressionString):
(WebCore::WHLSL::Metal::FunctionDefinitionWriter::generateNextVariableName):
(WebCore::WHLSL::Metal::metalFunctions):
- Modules/webgpu/WHLSL/Metal/WHLSLFunctionWriter.h: Copied from Source/WebCore/Modules/webgpu/WHLSL/WHLSLLoopChecker.h.
- Modules/webgpu/WHLSL/Metal/WHLSLMetalCodeGenerator.cpp: Copied from Source/WebCore/Modules/webgpu/WHLSL/AST/WHLSLStructureDefinition.h.
(WebCore::WHLSL::Metal::generateMetalCode):
- Modules/webgpu/WHLSL/Metal/WHLSLMetalCodeGenerator.h: Copied from Source/WebCore/Modules/webgpu/WHLSL/WHLSLLoopChecker.h.
- Modules/webgpu/WHLSL/Metal/WHLSLNativeFunctionWriter.cpp: Added.
(WebCore::WHLSL::Metal::getNativeName):
(WebCore::WHLSL::Metal::mapFunctionName):
(WebCore::WHLSL::Metal::convertAddressSpace):
(WebCore::WHLSL::Metal::writeNativeFunction):
- Modules/webgpu/WHLSL/Metal/WHLSLNativeFunctionWriter.h: Copied from Source/WebCore/Modules/webgpu/WHLSL/WHLSLLoopChecker.h.
- Modules/webgpu/WHLSL/Metal/WHLSLTypeNamer.cpp: Added.
(WebCore::WHLSL::Metal::BaseTypeNameNode::BaseTypeNameNode):
(WebCore::WHLSL::Metal::BaseTypeNameNode::isArrayTypeNameNode const):
(WebCore::WHLSL::Metal::BaseTypeNameNode::isArrayReferenceTypeNameNode const):
(WebCore::WHLSL::Metal::BaseTypeNameNode::isPointerTypeNameNode const):
(WebCore::WHLSL::Metal::BaseTypeNameNode::isReferenceTypeNameNode const):
(WebCore::WHLSL::Metal::BaseTypeNameNode::children):
(WebCore::WHLSL::Metal::BaseTypeNameNode::append):
(WebCore::WHLSL::Metal::BaseTypeNameNode::parent):
(WebCore::WHLSL::Metal::BaseTypeNameNode::mangledName const):
(WebCore::WHLSL::Metal::ArrayTypeNameNode::ArrayTypeNameNode):
(WebCore::WHLSL::Metal::ArrayTypeNameNode::numElements const):
(WebCore::WHLSL::Metal::ArrayReferenceTypeNameNode::ArrayReferenceTypeNameNode):
(WebCore::WHLSL::Metal::ArrayReferenceTypeNameNode::addressSpace const):
(WebCore::WHLSL::Metal::PointerTypeNameNode::PointerTypeNameNode):
(WebCore::WHLSL::Metal::PointerTypeNameNode::addressSpace const):
(WebCore::WHLSL::Metal::ReferenceTypeNameNode::ReferenceTypeNameNode):
(WebCore::WHLSL::Metal::ReferenceTypeNameNode::namedType):
(WebCore::WHLSL::Metal::TypeNamer::TypeNamer):
(WebCore::WHLSL::Metal::TypeNamer::visit):
(WebCore::WHLSL::Metal::findInVector):
(WebCore::WHLSL::Metal::find):
(WebCore::WHLSL::Metal::TypeNamer::mangledNameForType):
(WebCore::WHLSL::Metal::TypeNamer::createNameNode):
(WebCore::WHLSL::Metal::TypeNamer::insert):
(WebCore::WHLSL::Metal::MetalTypeDeclarationWriter::MetalTypeDeclarationWriter):
(WebCore::WHLSL::Metal::MetalTypeDeclarationWriter::toString):
(WebCore::WHLSL::Metal::MetalTypeDeclarationWriter::visit):
(WebCore::WHLSL::Metal::TypeNamer::metalTypeDeclarations):
(WebCore::WHLSL::Metal::toString):
(WebCore::WHLSL::Metal::TypeNamer::emitUnnamedTypeDefinition):
(WebCore::WHLSL::Metal::TypeNamer::emitNamedTypeDefinition):
(WebCore::WHLSL::Metal::TypeNamer::metalTypeDefinitions):
(WebCore::WHLSL::Metal::TypeNamer::mangledNameForEnumerationMember):
(WebCore::WHLSL::Metal::TypeNamer::mangledNameForStructureElement):
(WebCore::WHLSL::Metal::TypeNamer::metalTypes):
- Modules/webgpu/WHLSL/Metal/WHLSLTypeNamer.h: Added.
(WebCore::WHLSL::Metal::TypeNamer::generateNextTypeName):
(WebCore::WHLSL::Metal::TypeNamer::generateNextStructureElementName):
(WebCore::WHLSL::Metal::TypeNamer::generateNextEnumerationMemberName):
- Modules/webgpu/WHLSL/WHLSLChecker.cpp:
(WebCore::WHLSL::checkSemantics):
(WebCore::WHLSL::Checker::visit):
- Modules/webgpu/WHLSL/WHLSLGatherEntryPointItems.cpp:
(WebCore::WHLSL::Gatherer::visit):
- Modules/webgpu/WHLSL/WHLSLGatherEntryPointItems.h:
(WebCore::WHLSL::EntryPointItem::EntryPointItem):
- Modules/webgpu/WHLSL/WHLSLLoopChecker.cpp: Removed.
- Modules/webgpu/WHLSL/WHLSLStatementBehaviorChecker.cpp: Added.
(WebCore::WHLSL::StatementBehaviorChecker::takeFunctionBehavior):
(WebCore::WHLSL::checkStatementBehavior):
- Modules/webgpu/WHLSL/WHLSLStatementBehaviorChecker.h: Renamed from Source/WebCore/Modules/webgpu/WHLSL/WHLSLLoopChecker.h.
- Sources.txt:
- WebCore.xcodeproj/project.pbxproj:
- 10:13 PM Changeset in webkit [240229] by
-
- 3 edits2 adds in trunk
DFG: When inlining DataView set* intrinsics we need to set undefined as our result
https://bugs.webkit.org/show_bug.cgi?id=193644
<rdar://problem/46209745>
Reviewed by Yusuke Suzuki.
JSTests:
- stress/data-view-set-intrinsic-undefined-result-2.js: Added.
(foo):
- stress/data-view-set-intrinsic-undefined-result.js: Added.
(foo):
(bar):
Source/JavaScriptCore:
This patch also makes it so we fail fast when we make this mistake.
I've made this mistake more than once.
- dfg/DFGByteCodeParser.cpp:
(JSC::DFG::ByteCodeParser::handleIntrinsicCall):
- 9:49 PM Changeset in webkit [240228] by
-
- 16 edits in trunk/Source/JavaScriptCore
[JSC] Reduce size of SourceProvider
https://bugs.webkit.org/show_bug.cgi?id=193544
Reviewed by Saam Barati.
This patch attempts to reduce the dirty memory footprint by the following 3 optimizations.
- Reordering the members of SourceProvider to reduce the size. This affects on JSC, and CachedScriptSourceProvider used in WebCore.
- Create one SourceProvider for all the builtin code and use substring to create builtin JS functions. This reduces # of SourceProvider created for builtins.
- Drop m_validated flag in SourceProvider since nobody uses it. It also deletes dead code in Parser.cpp.
Unfortunately, MSVC does not accept super long C string literal. So instead, we construct combined string in a form of C array.
- Scripts/tests/builtins/expected/JavaScriptCore-Builtin.Promise-Combined.js-result:
- Scripts/tests/builtins/expected/JavaScriptCore-Builtin.prototype-Combined.js-result:
- Scripts/tests/builtins/expected/JavaScriptCore-BuiltinConstructor-Combined.js-result:
- Scripts/tests/builtins/expected/JavaScriptCore-InternalClashingNames-Combined.js-result:
- Scripts/wkbuiltins/builtins_generate_combined_header.py:
(BuiltinsCombinedHeaderGenerator.generate_output):
- Scripts/wkbuiltins/builtins_generate_combined_implementation.py:
(BuiltinsCombinedImplementationGenerator.generate_output):
- Scripts/wkbuiltins/builtins_generate_separate_implementation.py:
(BuiltinsSeparateImplementationGenerator.generate_output):
- Scripts/wkbuiltins/builtins_generator.py:
(BuiltinsGenerator.generate_embedded_code_data_for_function):
(BuiltinsGenerator.generate_embedded_code_string_section_for_data):
(BuiltinsGenerator.generate_embedded_code_string_section_for_function): Deleted.
- builtins/BuiltinExecutables.cpp:
(JSC::BuiltinExecutables::BuiltinExecutables):
(JSC::JSC_FOREACH_BUILTIN_CODE):
(JSC::BuiltinExecutables::createExecutable):
- builtins/BuiltinExecutables.h:
- parser/Parser.cpp:
(JSC::Parser<LexerType>::Parser):
(JSC::Parser<LexerType>::parseExpressionOrLabelStatement):
(JSC::Parser<LexerType>::shouldCheckPropertyForUnderscoreProtoDuplicate):
(JSC::Parser<LexerType>::parseObjectLiteral):
(JSC::Parser<LexerType>::parseUnaryExpression):
- parser/Parser.h:
- parser/SourceCode.h:
- parser/SourceProvider.cpp:
(JSC::SourceProvider::SourceProvider):
- parser/SourceProvider.h:
(JSC::SourceProvider::isValid const): Deleted.
(JSC::SourceProvider::setValid): Deleted.
- runtime/CachedTypes.cpp:
(JSC::CachedSourceProviderShape::encode):
(JSC::CachedSourceProviderShape::decode const):
- 9:40 PM Changeset in webkit [240227] by
-
- 3 edits1 move1 add1 delete in trunk/Source/WebCore
[WHLSL] Add the statement behavior checker
https://bugs.webkit.org/show_bug.cgi?id=193487
Reviewed by Dean Jackson.
This is a translation of https://github.com/gpuweb/WHLSL/blob/master/Spec/source/index.rst#typing-statements
into C++. It is meant to replace the ReturnChecker and UnreachableCodeChecker in the reference implementation.
No new tests because it isn't hooked up yet. Not enough of the compiler exists to have any meaningful sort
of test. When enough of the compiler is present, I'll port the reference implementation's test suite.
- Modules/webgpu/WHLSL/WHLSLLoopChecker.cpp: Removed. StatementBehaviorChecker does everything that LoopChecker
does.
- Modules/webgpu/WHLSL/WHLSLStatementBehaviorChecker.cpp: Added.
(WebCore::WHLSL::StatementBehaviorChecker::takeFunctionBehavior):
(WebCore::WHLSL::checkStatementBehavior):
- Modules/webgpu/WHLSL/WHLSLStatementBehaviorChecker.h: Renamed from Source/WebCore/Modules/webgpu/WHLSL/WHLSLLoopChecker.h.
- Sources.txt:
- WebCore.xcodeproj/project.pbxproj:
- 9:09 PM Changeset in webkit [240226] by
-
- 2 edits in trunk/Source/WebKit
Unreviewed, fix -Wreturn-type warning
https://bugs.webkit.org/show_bug.cgi?id=193333
<rdar://problem/45649489>
- UIProcess/Automation/WebAutomationSession.cpp:
(WebKit::toProtocol):
- 9:04 PM Changeset in webkit [240225] by
-
- 2 edits in trunk/Source/JavaScriptCore
Unreviewed, fix -Wint-in-bool-context warning
https://bugs.webkit.org/show_bug.cgi?id=193483
<rdar://problem/47280522>
- dfg/DFGFixupPhase.cpp:
(JSC::DFG::FixupPhase::addCheckStructureForOriginalStringObjectUse):
- 8:37 PM Changeset in webkit [240224] by
-
- 39 edits3 deletes in trunk
Rollout r240210: It broke tests on iOS
https://bugs.webkit.org/show_bug.cgi?id=193640
Source/JavaScriptCore:
Unreviewed. ~2650 tests are failing on iOS.
- CMakeLists.txt:
- JavaScriptCore.xcodeproj/project.pbxproj:
- Sources.txt:
- builtins/BuiltinNames.cpp:
(JSC::BuiltinNames::BuiltinNames):
- builtins/BuiltinNames.h:
- bytecode/CodeBlock.cpp:
(JSC::CodeBlock::setConstantIdentifierSetRegisters):
- bytecode/CodeBlock.h:
- bytecode/HandlerInfo.h:
- bytecode/InstructionStream.h:
- bytecode/UnlinkedCodeBlock.h:
(JSC::UnlinkedCodeBlock::addSetConstant):
(JSC::UnlinkedCodeBlock::constantIdentifierSets):
- bytecode/UnlinkedEvalCodeBlock.h:
- bytecode/UnlinkedFunctionCodeBlock.h:
- bytecode/UnlinkedFunctionExecutable.h:
- bytecode/UnlinkedGlobalCodeBlock.h:
(JSC::UnlinkedGlobalCodeBlock::UnlinkedGlobalCodeBlock):
- bytecode/UnlinkedMetadataTable.h:
- bytecode/UnlinkedModuleProgramCodeBlock.h:
- bytecode/UnlinkedProgramCodeBlock.h:
- interpreter/Interpreter.cpp:
- jsc.cpp:
(functionQuit):
(runJSC):
- parser/SourceCode.h:
- parser/SourceCodeKey.h:
(JSC::SourceCodeKey::operator!= const): Deleted.
- parser/UnlinkedSourceCode.h:
- parser/VariableEnvironment.h:
- runtime/CachedTypes.cpp:
(): Deleted.
(JSC::Encoder::Allocation::buffer const): Deleted.
(JSC::Encoder::Allocation::offset const): Deleted.
(JSC::Encoder::Allocation::Allocation): Deleted.
(JSC::Encoder::Encoder): Deleted.
(JSC::Encoder::vm): Deleted.
(JSC::Encoder::malloc): Deleted.
(JSC::Encoder::offsetOf): Deleted.
(JSC::Encoder::cachePtr): Deleted.
(JSC::Encoder::offsetForPtr): Deleted.
(JSC::Encoder::release): Deleted.
(JSC::Encoder::Page::Page): Deleted.
(JSC::Encoder::Page::malloc): Deleted.
(JSC::Encoder::Page::buffer const): Deleted.
(JSC::Encoder::Page::size const): Deleted.
(JSC::Encoder::Page::getOffset const): Deleted.
(JSC::Encoder::allocateNewPage): Deleted.
(JSC::Decoder::Decoder): Deleted.
(JSC::Decoder::~Decoder): Deleted.
(JSC::Decoder::vm): Deleted.
(JSC::Decoder::offsetOf): Deleted.
(JSC::Decoder::cacheOffset): Deleted.
(JSC::Decoder::addFinalizer): Deleted.
(JSC::encode): Deleted.
(JSC::decode): Deleted.
(JSC::VariableLengthObject::buffer const): Deleted.
(JSC::VariableLengthObject::allocate): Deleted.
(JSC::CachedPtr::encode): Deleted.
(JSC::CachedPtr::decode const): Deleted.
(JSC::CachedPtr::operator-> const): Deleted.
(JSC::CachedPtr::get const): Deleted.
(JSC::CachedRefPtr::encode): Deleted.
(JSC::CachedRefPtr::decode const): Deleted.
(JSC::CachedWriteBarrier::encode): Deleted.
(JSC::CachedWriteBarrier::decode const): Deleted.
(JSC::CachedVector::encode): Deleted.
(JSC::CachedVector::decode const): Deleted.
(JSC::CachedPair::encode): Deleted.
(JSC::CachedPair::decode const): Deleted.
(JSC::CachedHashMap::encode): Deleted.
(JSC::CachedHashMap::decode const): Deleted.
(JSC::CachedUniquedStringImpl::encode): Deleted.
(JSC::CachedUniquedStringImpl::decode const): Deleted.
(JSC::CachedStringImpl::encode): Deleted.
(JSC::CachedStringImpl::decode const): Deleted.
(JSC::CachedString::encode): Deleted.
(JSC::CachedString::decode const): Deleted.
(JSC::CachedIdentifier::encode): Deleted.
(JSC::CachedIdentifier::decode const): Deleted.
(JSC::CachedOptional::encode): Deleted.
(JSC::CachedOptional::decode const): Deleted.
(JSC::CachedOptional::decodeAsPtr const): Deleted.
(JSC::CachedSimpleJumpTable::encode): Deleted.
(JSC::CachedSimpleJumpTable::decode const): Deleted.
(JSC::CachedStringJumpTable::encode): Deleted.
(JSC::CachedStringJumpTable::decode const): Deleted.
(JSC::CachedCodeBlockRareData::encode): Deleted.
(JSC::CachedCodeBlockRareData::decode const): Deleted.
(JSC::CachedBitVector::encode): Deleted.
(JSC::CachedBitVector::decode const): Deleted.
(JSC::CachedHashSet::encode): Deleted.
(JSC::CachedHashSet::decode const): Deleted.
(JSC::CachedConstantIdentifierSetEntry::encode): Deleted.
(JSC::CachedConstantIdentifierSetEntry::decode const): Deleted.
(JSC::CachedVariableEnvironment::encode): Deleted.
(JSC::CachedVariableEnvironment::decode const): Deleted.
(JSC::CachedArray::encode): Deleted.
(JSC::CachedArray::decode const): Deleted.
(JSC::CachedScopedArgumentsTable::encode): Deleted.
(JSC::CachedScopedArgumentsTable::decode const): Deleted.
(JSC::CachedSymbolTableEntry::encode): Deleted.
(JSC::CachedSymbolTableEntry::decode const): Deleted.
(JSC::CachedSymbolTable::encode): Deleted.
(JSC::CachedSymbolTable::decode const): Deleted.
(JSC::CachedImmutableButterfly::encode): Deleted.
(JSC::CachedImmutableButterfly::decode const): Deleted.
(JSC::CachedRegExp::encode): Deleted.
(JSC::CachedRegExp::decode const): Deleted.
(JSC::CachedTemplateObjectDescriptor::encode): Deleted.
(JSC::CachedTemplateObjectDescriptor::decode const): Deleted.
(JSC::CachedBigInt::encode): Deleted.
(JSC::CachedBigInt::decode const): Deleted.
(JSC::CachedJSValue::encode): Deleted.
(JSC::CachedJSValue::decode const): Deleted.
(JSC::CachedInstructionStream::encode): Deleted.
(JSC::CachedInstructionStream::decode const): Deleted.
(JSC::CachedMetadataTable::encode): Deleted.
(JSC::CachedMetadataTable::decode const): Deleted.
(JSC::CachedSourceOrigin::encode): Deleted.
(JSC::CachedSourceOrigin::decode const): Deleted.
(JSC::CachedTextPosition::encode): Deleted.
(JSC::CachedTextPosition::decode const): Deleted.
(JSC::CachedSourceProviderShape::encode): Deleted.
(JSC::CachedSourceProviderShape::decode const): Deleted.
(JSC::CachedStringSourceProvider::encode): Deleted.
(JSC::CachedStringSourceProvider::decode const): Deleted.
(JSC::CachedWebAssemblySourceProvider::encode): Deleted.
(JSC::CachedWebAssemblySourceProvider::decode const): Deleted.
(JSC::CachedSourceProvider::encode): Deleted.
(JSC::CachedSourceProvider::decode const): Deleted.
(JSC::CachedUnlinkedSourceCodeShape::encode): Deleted.
(JSC::CachedUnlinkedSourceCodeShape::decode const): Deleted.
(JSC::CachedSourceCode::encode): Deleted.
(JSC::CachedSourceCode::decode const): Deleted.
(JSC::CachedFunctionExecutable::firstLineOffset const): Deleted.
(JSC::CachedFunctionExecutable::lineCount const): Deleted.
(JSC::CachedFunctionExecutable::unlinkedFunctionNameStart const): Deleted.
(JSC::CachedFunctionExecutable::unlinkedBodyStartColumn const): Deleted.
(JSC::CachedFunctionExecutable::unlinkedBodyEndColumn const): Deleted.
(JSC::CachedFunctionExecutable::startOffset const): Deleted.
(JSC::CachedFunctionExecutable::sourceLength const): Deleted.
(JSC::CachedFunctionExecutable::parametersStartOffset const): Deleted.
(JSC::CachedFunctionExecutable::typeProfilingStartOffset const): Deleted.
(JSC::CachedFunctionExecutable::typeProfilingEndOffset const): Deleted.
(JSC::CachedFunctionExecutable::parameterCount const): Deleted.
(JSC::CachedFunctionExecutable::features const): Deleted.
(JSC::CachedFunctionExecutable::sourceParseMode const): Deleted.
(JSC::CachedFunctionExecutable::isInStrictContext const): Deleted.
(JSC::CachedFunctionExecutable::hasCapturedVariables const): Deleted.
(JSC::CachedFunctionExecutable::isBuiltinFunction const): Deleted.
(JSC::CachedFunctionExecutable::isBuiltinDefaultClassConstructor const): Deleted.
(JSC::CachedFunctionExecutable::constructAbility const): Deleted.
(JSC::CachedFunctionExecutable::constructorKind const): Deleted.
(JSC::CachedFunctionExecutable::functionMode const): Deleted.
(JSC::CachedFunctionExecutable::scriptMode const): Deleted.
(JSC::CachedFunctionExecutable::superBinding const): Deleted.
(JSC::CachedFunctionExecutable::derivedContextType const): Deleted.
(JSC::CachedFunctionExecutable::name const): Deleted.
(JSC::CachedFunctionExecutable::ecmaName const): Deleted.
(JSC::CachedFunctionExecutable::inferredName const): Deleted.
(JSC::CachedCodeBlock::instructions const): Deleted.
(JSC::CachedCodeBlock::thisRegister const): Deleted.
(JSC::CachedCodeBlock::scopeRegister const): Deleted.
(JSC::CachedCodeBlock::globalObjectRegister const): Deleted.
(JSC::CachedCodeBlock::sourceURLDirective const): Deleted.
(JSC::CachedCodeBlock::sourceMappingURLDirective const): Deleted.
(JSC::CachedCodeBlock::usesEval const): Deleted.
(JSC::CachedCodeBlock::isStrictMode const): Deleted.
(JSC::CachedCodeBlock::isConstructor const): Deleted.
(JSC::CachedCodeBlock::hasCapturedVariables const): Deleted.
(JSC::CachedCodeBlock::isBuiltinFunction const): Deleted.
(JSC::CachedCodeBlock::superBinding const): Deleted.
(JSC::CachedCodeBlock::scriptMode const): Deleted.
(JSC::CachedCodeBlock::isArrowFunctionContext const): Deleted.
(JSC::CachedCodeBlock::isClassContext const): Deleted.
(JSC::CachedCodeBlock::wasCompiledWithDebuggingOpcodes const): Deleted.
(JSC::CachedCodeBlock::constructorKind const): Deleted.
(JSC::CachedCodeBlock::derivedContextType const): Deleted.
(JSC::CachedCodeBlock::evalContextType const): Deleted.
(JSC::CachedCodeBlock::hasTailCalls const): Deleted.
(JSC::CachedCodeBlock::lineCount const): Deleted.
(JSC::CachedCodeBlock::endColumn const): Deleted.
(JSC::CachedCodeBlock::numVars const): Deleted.
(JSC::CachedCodeBlock::numCalleeLocals const): Deleted.
(JSC::CachedCodeBlock::numParameters const): Deleted.
(JSC::CachedCodeBlock::features const): Deleted.
(JSC::CachedCodeBlock::parseMode const): Deleted.
(JSC::CachedCodeBlock::codeType const): Deleted.
(JSC::CachedCodeBlock::rareData const): Deleted.
(JSC::CachedProgramCodeBlock::encode): Deleted.
(JSC::CachedProgramCodeBlock::decode const): Deleted.
(JSC::CachedModuleCodeBlock::encode): Deleted.
(JSC::CachedModuleCodeBlock::decode const): Deleted.
(JSC::CachedEvalCodeBlock::encode): Deleted.
(JSC::CachedEvalCodeBlock::decode const): Deleted.
(JSC::CachedFunctionCodeBlock::encode): Deleted.
(JSC::CachedFunctionCodeBlock::decode const): Deleted.
(JSC::UnlinkedFunctionCodeBlock::UnlinkedFunctionCodeBlock): Deleted.
(JSC::UnlinkedCodeBlock::UnlinkedCodeBlock): Deleted.
(JSC::CachedCodeBlock<CodeBlockType>::decode const): Deleted.
(JSC::UnlinkedProgramCodeBlock::UnlinkedProgramCodeBlock): Deleted.
(JSC::UnlinkedModuleProgramCodeBlock::UnlinkedModuleProgramCodeBlock): Deleted.
(JSC::UnlinkedEvalCodeBlock::UnlinkedEvalCodeBlock): Deleted.
(JSC::CachedFunctionExecutable::encode): Deleted.
(JSC::CachedFunctionExecutable::decode const): Deleted.
(JSC::UnlinkedFunctionExecutable::UnlinkedFunctionExecutable): Deleted.
(JSC::CachedCodeBlock<CodeBlockType>::encode): Deleted.
(JSC::CachedSourceCodeKey::encode): Deleted.
(JSC::CachedSourceCodeKey::decode const): Deleted.
(JSC::CacheEntry::encode): Deleted.
(JSC::CacheEntry:: const): Deleted.
(JSC:: const): Deleted.
(JSC::encodeCodeBlock): Deleted.
(JSC::decodeCodeBlockImpl): Deleted.
- runtime/CachedTypes.h:
(JSC::decodeCodeBlock): Deleted.
- runtime/CodeCache.cpp:
(JSC::CodeCacheMap::pruneSlowCase):
(JSC::CodeCache::getUnlinkedGlobalCodeBlock):
(JSC::CodeCache::getUnlinkedGlobalFunctionExecutable):
(JSC::CodeCache::write): Deleted.
- runtime/CodeCache.h:
(JSC::CodeCacheMap::findCacheAndUpdateAge):
(JSC::CodeCache::clear):
(JSC::CodeCacheMap::begin): Deleted.
(JSC::CodeCacheMap::end): Deleted.
(JSC::CodeCacheMap::fetchFromDiskImpl): Deleted.
(): Deleted.
(JSC::writeCodeBlock): Deleted.
- runtime/JSBigInt.cpp:
(JSC::JSBigInt::offsetOfData):
(JSC::JSBigInt::dataStorage):
- runtime/JSBigInt.h:
- runtime/Options.cpp:
(JSC::recomputeDependentOptions):
- runtime/Options.h:
- runtime/RegExp.h:
- runtime/ScopedArgumentsTable.h:
- runtime/StackFrame.h:
- runtime/StructureInlines.h:
- runtime/SymbolTable.h:
Source/WTF:
Unreviewed.
- wtf/BitVector.h:
Tools:
Unreviewed.
- Scripts/jsc-stress-test-helpers/bytecode-cache-test-helper:
- Scripts/run-jsc-stress-tests:
- 7:54 PM Changeset in webkit [240223] by
-
- 4 edits2 adds in trunk
JSTests:
MovHint must merge NodeBytecodeUsesAsValue for its child
https://bugs.webkit.org/show_bug.cgi?id=186916
<rdar://problem/41396612>
Reviewed by Yusuke Suzuki.
- stress/arith-abs-to-arith-negate-range-optimizaton.js:
- stress/movhint-backwards-propagation-must-merge-use-as-value.js: Added.
Source/JavaScriptCore:
MovHint must merge NodeBytecodeUsesAsValue for its child in backwards propagation
https://bugs.webkit.org/show_bug.cgi?id=186916
<rdar://problem/41396612>
Reviewed by Yusuke Suzuki.
Otherwise, we may not think we care about the non-integral part in
a division (or perhaps overflow in an add, etc). Consider a program
like this:
return a / b
That gets compiled to:
`
a: ArithDiv We don't check that the remainder is zero here.
b: MovHint(@a)
c: ForceOSRExit
d: Unreachable
`
If we don't inform @a that we care about its result in full number
accuracy, it will choose to ignore its non-integral remainder. This
makes sense if *everybody* that all uses of the Div only cared about
the integral part. However, OSR exit is not one of those users. OSR
exit cares about the fractional bits in such a Div.
- dfg/DFGBackwardsPropagationPhase.cpp:
(JSC::DFG::BackwardsPropagationPhase::propagate):
- 7:33 PM Changeset in webkit [240222] by
-
- 4 edits1 add1 delete in trunk/LayoutTests
Unreviewed GTK test gardening
- accessibility/gtk/xml-roles-exposed-expected.txt:
- platform/gtk/TestExpectations:
- platform/gtk/imported/w3c/web-platform-tests/fetch/security/dangling-markup-mitigation-data-url.tentative.sub-expected.txt: Removed.
- platform/gtk/inspector/css/shadow-scoped-style-expected.txt: Added.
- platform/gtk/svg/text/font-size-below-point-five-expected.txt:
- 7:25 PM Changeset in webkit [240221] by
-
- 2 edits in trunk/Source/WebCore
REGRESSION(r240174): Wrong preprocessor guards in RenderImage::paintAreaElementFocusRing
https://bugs.webkit.org/show_bug.cgi?id=193630
Reviewed by Daniel Bates.
r240174 inadvertently disabled this function on non-Apple platforms.
This fixes layout test fast/images/image-map-outline-in-positioned-container.html.
- rendering/RenderImage.cpp:
(WebCore::RenderImage::paintAreaElementFocusRing):
- 5:39 PM Changeset in webkit [240220] by
-
- 23 edits3 adds in trunk
[JSC] Invalidate old scope operations using global lexical binding epoch
https://bugs.webkit.org/show_bug.cgi?id=193603
<rdar://problem/47380869>
Patch by Yusuke Suzuki <ysuzuki@apple.com> on 2019-01-20
Reviewed by Saam Barati.
JSTests:
- stress/let-lexical-binding-shadow-existing-global-property-ftl.js:
- stress/scope-operation-cache-global-property-before-deleting.js: Added.
(shouldThrow):
(bar):
- stress/scope-operation-cache-global-property-bump-counter.js: Added.
(shouldBe):
(get1):
(get2):
(get1If):
(get2If):
- stress/scope-operation-cache-global-property-even-if-it-fails.js: Added.
(shouldThrow):
(foo):
Source/JavaScriptCore:
Even if the global lexical binding does not shadow the global property at that time, we need to clear the cached information in
scope related operations since we may have a global property previously. Consider the following example,
foo = 0;
function get() { return foo; }
print(get()); 0
print(get()); 0
delete globalThis.foo;
$.evalScript(const foo = 42;);
print(get()); Should be 42, but it returns 0 if the cached information in get() is not cleared.
To invalidate the cache easily, we introduce global lexical binding epoch. It is bumped every time we introduce a new lexical binding
into JSGlobalLexicalEnvironment, since that name could shadow the global property name previously. In op_resolve_scope, we first check
the epoch stored in the metadata, and go to slow path if it is not equal to the current epoch. Our slow path code convert the scope
operation to the appropriate one even if the resolve type is not UnresolvedProperty type. After updating the resolve type of the bytecode,
we update the cached epoch to the current one, so that we can use the cached information as long as we stay in the same epoch.
In op_get_from_scope and op_put_to_scope, we do not use this epoch since Structure check can do the same thing instead. If op_resolve_type
is updated by the epoch, and if it starts returning JSGlobalLexicalEnvironment instead JSGlobalObject, obviously the structure check fails.
And in the slow path, we update op_get_from_scope and op_put_to_scope appropriately.
So, the metadata for scope related bytecodes are eventually updated to the appropriate one. In DFG and FTL, we use the watchpoint based approach.
In DFG and FTL, we concurrently attempt to get the watchpoint for the lexical binding and look into it by usingisStillValid()to avoid
infinite compile-and-fail loop.
When the global lexical binding epoch overflows we iterate all the live CodeBlock and update the op_resolve_scope's epoch. Even if the shadowing
happens, it is OK if we bump the epoch, since op_resolve_scope will return JSGlobalLexicalEnvironment instead of JSGlobalObject, and following
structure check in op_put_to_scope and op_get_from_scope fail. We do not need to update op_get_from_scope and op_put_to_scope because of the same
reason.
- bytecode/BytecodeList.rb:
- bytecode/CodeBlock.cpp:
(JSC::CodeBlock::notifyLexicalBindingUpdate):
(JSC::CodeBlock::notifyLexicalBindingShadowing): Deleted.
- bytecode/CodeBlock.h:
- dfg/DFGByteCodeParser.cpp:
(JSC::DFG::ByteCodeParser::parseBlock):
- dfg/DFGDesiredGlobalProperties.cpp:
(JSC::DFG::DesiredGlobalProperties::isStillValidOnMainThread):
- dfg/DFGDesiredGlobalProperties.h:
- dfg/DFGGraph.cpp:
(JSC::DFG::Graph::watchGlobalProperty):
- dfg/DFGGraph.h:
- dfg/DFGPlan.cpp:
(JSC::DFG::Plan::isStillValidOnMainThread):
- jit/JITPropertyAccess.cpp:
(JSC::JIT::emit_op_resolve_scope):
- jit/JITPropertyAccess32_64.cpp:
(JSC::JIT::emit_op_resolve_scope):
- llint/LowLevelInterpreter32_64.asm:
- llint/LowLevelInterpreter64.asm:
- runtime/CommonSlowPaths.cpp:
(JSC::SLOW_PATH_DECL):
- runtime/CommonSlowPaths.h:
(JSC::CommonSlowPaths::tryCachePutToScopeGlobal):
(JSC::CommonSlowPaths::tryCacheGetFromScopeGlobal):
- runtime/JSGlobalObject.cpp:
(JSC::JSGlobalObject::bumpGlobalLexicalBindingEpoch):
(JSC::JSGlobalObject::getReferencedPropertyWatchpointSet):
(JSC::JSGlobalObject::ensureReferencedPropertyWatchpointSet):
(JSC::JSGlobalObject::notifyLexicalBindingShadowing): Deleted.
- runtime/JSGlobalObject.h:
(JSC::JSGlobalObject::globalLexicalBindingEpoch const):
(JSC::JSGlobalObject::globalLexicalBindingEpochOffset):
(JSC::JSGlobalObject::addressOfGlobalLexicalBindingEpoch):
- runtime/Options.cpp:
(JSC::correctOptions):
(JSC::Options::initialize):
(JSC::Options::setOptions):
(JSC::Options::setOptionWithoutAlias):
- runtime/Options.h:
- runtime/ProgramExecutable.cpp:
(JSC::ProgramExecutable::initializeGlobalProperties):
- 5:26 PM Changeset in webkit [240219] by
-
- 21 edits2 adds in trunk
AX: Support returning relative frames for accessibility
https://bugs.webkit.org/show_bug.cgi?id=193414
<rdar://problem/47268501>
Reviewed by Zalan Bujtas.
Source/WebCore:
Create a way for assistive technologies to retrieve a frame in page space that can be transformed to its final screen space by having the AT message the UI process separately.
Consolidate rect/point conversion methods for macOS and iOS.
This is only needed on WebKit2, where we have to reach back across to the hosting process to get the final frame, so we can skip this test on WK1.
Tests: accessibility/mac/relative-frame.html
- accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:
(-[WebAccessibilityObjectWrapper _accessibilityConvertPointToViewSpace:]):
(-[WebAccessibilityObjectWrapper _accessibilityRelativeFrame]):
(-[WebAccessibilityObjectWrapper accessibilityVisibleContentRect]):
(-[WebAccessibilityObjectWrapper accessibilityActivationPoint]):
(-[WebAccessibilityObjectWrapper accessibilityFrame]):
(-[WebAccessibilityObjectWrapper frameForTextMarkers:]):
(-[WebAccessibilityObjectWrapper rectsForSelectionRects:]):
(-[WebAccessibilityObjectWrapper convertPointToScreenSpace:]): Deleted.
(-[WebAccessibilityObjectWrapper convertRectToScreenSpace:]): Deleted.
- accessibility/mac/WebAccessibilityObjectWrapperBase.h:
- accessibility/mac/WebAccessibilityObjectWrapperBase.mm:
(convertPathToScreenSpaceFunction):
(-[WebAccessibilityObjectWrapperBase convertRectToSpace:space:]):
(-[WebAccessibilityObjectWrapperBase convertPointToScreenSpace:]): Deleted.
- accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
(-[WebAccessibilityObjectWrapper IGNORE_WARNINGS_END]):
(-[WebAccessibilityObjectWrapper position]):
(-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]):
(-[WebAccessibilityObjectWrapper convertPointToScreenSpace:]): Deleted.
Source/WebKit:
- UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView accessibilityAttributeValue:forParameter:]):
(-[WKWebView IGNORE_WARNINGS_END]):
- UIProcess/API/mac/WKView.mm:
(-[WKView accessibilityAttributeValue:forParameter:]):
(-[WKView IGNORE_WARNINGS_END]):
- UIProcess/Cocoa/WebViewImpl.h:
- UIProcess/Cocoa/WebViewImpl.mm:
(WebKit::WebViewImpl::accessibilityAttributeValue):
- UIProcess/ios/WKContentView.mm:
(-[WKContentView accessibilityConvertRelativeFrameFromPage:]):
Tools:
- WebKitTestRunner/InjectedBundle/AccessibilityUIElement.h:
- WebKitTestRunner/InjectedBundle/Bindings/AccessibilityUIElement.idl:
- WebKitTestRunner/InjectedBundle/ios/AccessibilityUIElementIOS.mm:
(WTR::AccessibilityUIElement::stringDescriptionOfAttributeValue):
- WebKitTestRunner/InjectedBundle/mac/AccessibilityUIElementMac.mm:
(WTR::attributesOfElement):
(WTR::AccessibilityUIElement::stringDescriptionOfAttributeValue):
LayoutTests:
- accessibility/mac/relative-frame-expected.txt: Added.
- accessibility/mac/relative-frame.html: Added.
- platform/mac-wk1/TestExpectations:
- 5:06 PM Changeset in webkit [240218] by
-
- 4 edits in trunk/Source/WebCore
On RenderBox, make client sizing be derived from padding box sizing
https://bugs.webkit.org/show_bug.cgi?id=193621
Reviewed by Daniel Bates.
I never liked how clientWidth/Height, an IE-originated term, was used as the basis
for various RenderBox geometry functions.
Fix by adding some functions which return the dimensions of the padding box (which
is the inside of the border and any scrollbar), and define clientWidth/Height in
terms of them.
Also add paddingBoxRectIncludingScrollbar() function that is used by compositing code.
- rendering/RenderBox.cpp:
(WebCore::RenderBox::clientWidth const):
(WebCore::RenderBox::clientHeight const):
- rendering/RenderBox.h:
(WebCore::RenderBox::borderBoxRect const):
(WebCore::RenderBox::computedCSSContentBoxRect const):
(WebCore::RenderBox::contentWidth const):
(WebCore::RenderBox::contentHeight const):
(WebCore::RenderBox::paddingBoxWidth const):
(WebCore::RenderBox::paddingBoxHeight const):
(WebCore::RenderBox::paddingBoxRect const):
(WebCore::RenderBox::paddingBoxRectIncludingScrollbar const):
(WebCore::RenderBox::hasHorizontalOverflow const):
(WebCore::RenderBox::hasVerticalOverflow const):
- rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::computeParentGraphicsLayerRect const):
(WebCore::RenderLayerBacking::updateGeometry):
- 1:15 PM Changeset in webkit [240217] by
-
- 2 edits in trunk/Tools
Unreviewed, add my new email address
- Scripts/webkitpy/common/config/contributors.json:
- 12:39 PM Changeset in webkit [240216] by
-
- 18 edits in trunk/Source/JavaScriptCore
[JSC] Shrink data structure size in JSC/heap
https://bugs.webkit.org/show_bug.cgi?id=193612
Reviewed by Saam Barati.
This patch reduces the size of data structures in JSC/heap. Basically, we reorder the members to remove paddings.
For Subspace, we drop CellAttributes
m_attributes. Instead, we useheapCellType->attributes(). And we use
FreeList::cellSize() instead of holding m_cellSize in LocalAllocator.
This change reduces the size of JSC::VM too since it includes JSC::Heap. The size of VM becomes from 78208 to 76696.
- heap/BlockDirectory.cpp:
- heap/BlockDirectory.h:
- heap/CollectionScope.h:
- heap/CompleteSubspace.cpp:
(JSC::CompleteSubspace::allocatorForSlow):
- heap/FreeList.h:
(JSC::FreeList::offsetOfCellSize):
(JSC::FreeList::cellSize const):
- heap/Heap.cpp:
(JSC::Heap::Heap):
(JSC::Heap::updateObjectCounts):
(JSC::Heap::addToRememberedSet):
(JSC::Heap::runBeginPhase):
(JSC::Heap::willStartCollection):
(JSC::Heap::pruneStaleEntriesFromWeakGCMaps):
(JSC::Heap::deleteSourceProviderCaches):
(JSC::Heap::notifyIncrementalSweeper):
(JSC::Heap::updateAllocationLimits):
- heap/Heap.h:
- heap/IsoAlignedMemoryAllocator.h:
- heap/LargeAllocation.cpp:
- heap/LocalAllocator.cpp:
(JSC::LocalAllocator::LocalAllocator):
- heap/LocalAllocator.h:
(JSC::LocalAllocator::cellSize const):
(JSC::LocalAllocator::offsetOfCellSize):
- heap/MarkedSpace.cpp:
(JSC::MarkedSpace::MarkedSpace):
- heap/MarkedSpace.h:
- heap/MarkingConstraint.h:
- heap/Subspace.cpp:
(JSC::Subspace::initialize):
- heap/Subspace.h:
(JSC::Subspace::attributes const): Deleted.
- heap/SubspaceInlines.h:
(JSC::Subspace::forEachMarkedCell):
(JSC::Subspace::forEachMarkedCellInParallel):
(JSC::Subspace::forEachLiveCell):
(JSC::Subspace::attributes const):
- 12:37 PM Changeset in webkit [240215] by
-
- 2 edits in trunk/Source/WebCore
Unreviewed, rolling out r238275.
Regressed css3/shapes/shape-outside/shape-image/shape-
image-025.html
Reverted changeset:
"ScalableImageDecoder: don't forcefully decode image data when
querying frame completeness, duration"
https://bugs.webkit.org/show_bug.cgi?id=191354
https://trac.webkit.org/changeset/238275
- 11:22 AM Changeset in webkit [240214] by
-
- 2 edits in trunk/LayoutTests
Unreviewed gardening, add failure expectation for js/intl-numberformat.html
This test requires an old version of ICU to pass.
- platform/gtk/TestExpectations:
- 11:17 AM Changeset in webkit [240213] by
-
- 4 edits in trunk
[LFC][BFC] <body>'s overflow property value is propagated to viewport
https://bugs.webkit.org/show_bug.cgi?id=193617
Reviewed by Antti Koivisto.
Source/WebCore:
When the root element is an HTML "HTML" element or an XHTML "html" element, and that element has an HTML "BODY" element
or an XHTML "body" element as a child, user agents must instead apply the 'overflow' property from the first such child element to the viewport,
if the value on the root element is 'visible'. The 'visible' value when used for the viewport must be interpreted as 'auto'.
The element from which the value is propagated must have a used value for 'overflow' of 'visible'.
This also has impact on layout since <body style="overflow: hidden"> would establish a block formatting context.
- layout/layouttree/LayoutBox.cpp:
(WebCore::Layout::Box::isOverflowVisible const):
Tools:
- LayoutReloaded/misc/LFC-passing-tests.txt:
- 10:37 AM Changeset in webkit [240212] by
-
- 18 edits2 deletes in trunk
Unreviewed, rolling out r240209.
Broke GTK/WPE injected bundle
Reverted changeset:
"AX: Support returning relative frames for accessibility"
https://bugs.webkit.org/show_bug.cgi?id=193414
https://trac.webkit.org/changeset/240209
- 10:02 AM Changeset in webkit [240211] by
-
- 49 edits in trunk
[Cocoa] Avoid importing directly from subumbrella frameworks
https://bugs.webkit.org/show_bug.cgi?id=186016
<rdar://problem/40591038>
Reviewed by Sam Weinig.
Source/WebCore:
- Configurations/WebCore.xcconfig: Removed -iframework options from OTHER_CFLAGS and OTHER_CPLUSPLUSFLAGS.
- editing/mac/DictionaryLookupLegacy.mm: Import Quartz.h instead of a PDFKit header.
- platform/mac/PlatformEventFactoryMac.mm: Import Carbon.h instead of HIToolbox headers.
- platform/text/mac/TextEncodingRegistryMac.mm: Import Carbon.h instead of CarbonCore.h.
Source/WebCore/PAL:
- Configurations/PAL.xcconfig: Removed -iframework options from OTHER_CFLAGS and OTHER_CPLUSPLUSFLAGS.
- pal/spi/cg/CoreGraphicsSPI.h: Import ApplicationServices.h instead of ColorSync.h when using SDKs earlier than 10.13.
- pal/spi/mac/HIToolboxSPI.h: Import CarbonPriv.h instead of HIToolboxPriv.h.
- pal/spi/mac/QuickLookMacSPI.h: Import Quartz.h instead of a QuickLookUI header.
Source/WebKit:
- Configurations/BaseTarget.xcconfig: Removed -iframework options from OTHER_CFLAGS and OTHER_CPLUSPLUSFLAGS.
- UIProcess/Automation/mac/WebAutomationSessionMac.mm: Import Carbon.h instead of an HIToolbox header.
- UIProcess/Cocoa/WebViewImpl.mm: Ditto.
- UIProcess/mac/WKPrintingView.mm: Import Quartz.h instead of a PDFKit header.
- UIProcess/mac/WKTextInputWindowController.mm: Import Carbon.h instead of an HIToolbox header.
- WebProcess/Plugins/PDF/PDFAnnotationTextWidgetDetails.h: Import Quartz.h instead of a PDFKit header.
- WebProcess/Plugins/PDF/PDFLayerControllerSPI.h: Ditto.
- WebProcess/Plugins/PDF/PDFPlugin.mm: Ditto.
- WebProcess/Plugins/PDF/PDFPluginAnnotation.mm: Ditto.
- WebProcess/Plugins/PDF/PDFPluginChoiceAnnotation.mm: Ditto.
- WebProcess/Plugins/PDF/PDFPluginPasswordField.mm: Ditto.
- WebProcess/Plugins/PDF/PDFPluginTextAnnotation.mm: Ditto.
- WebProcess/WebPage/mac/WebPageMac.mm: Ditto.
Source/WebKitLegacy/mac:
- Carbon/CarbonWindowAdapter.h: Import Carbon.h instead of HIToolbox headers.
- Carbon/CarbonWindowAdapter.mm: Ditto.
- Carbon/CarbonWindowFrame.m: Ditto.
- Carbon/HIViewAdapter.h: Ditto.
- Configurations/WebKitLegacy.xcconfig: Removed -iframework options from OTHER_CFLAGS_COCOA_TOUCH_NO.
- Plugins/WebNetscapePluginEventHandlerCarbon.mm: Import Carbon.h instead of CarbonEvents.h.
- WebView/WebPDFDocumentExtras.mm: Import Quartz.h instead of a PDFKit header.
- WebView/WebPDFView.h: Ditto.
Tools:
- DumpRenderTree/cg/PixelDumpSupportCG.cpp: Include CoreServices.h instead of a LaunchServices header.
- DumpRenderTree/mac/Configurations/BaseTarget.xcconfig: Removed -iframework options from OTHER_CFLAGS and OTHER_CPLUSPLUSFLAGS.
- DumpRenderTree/mac/LayoutTestHelper.m: Import ApplicationServices.h instead of ColorSync.h when using SDKs earlier than 10.13.
- TestWebKitAPI/Configurations/Base.xcconfig: Removed -iframework options from OTHER_CFLAGS and OTHER_CPLUSPLUSFLAGS.
- WebKitTestRunner/Configurations/BaseTarget.xcconfig: Removed -iframework options from OTHER_CFLAGS and OTHER_CPLUSPLUSFLAGS.
- WebKitTestRunner/cg/TestInvocationCG.cpp: Include CoreServices.h instead of a LaunchServices header.
- 3:20 AM Changeset in webkit [240210] by
-
- 39 edits1 copy2 adds in trunk
Cache bytecode to disk
https://bugs.webkit.org/show_bug.cgi?id=192782
<rdar://problem/46084932>
Reviewed by Keith Miller.
Source/JavaScriptCore:
Add the logic to serialize and deserialize the new JSC bytecode. For now,
the cache is only used for tests.
Each class that can be serialized has a counterpart in CachedTypes, which
handles the decoding and encoding. When decoding, the cached objects are
mmap'd from disk, but only used for creating instances of the respective
in-memory version of each object. Ideally, the mmap'd objects should be
used at runtime in the future.
- CMakeLists.txt:
- JavaScriptCore.xcodeproj/project.pbxproj:
- Sources.txt:
- builtins/BuiltinNames.cpp:
(JSC::BuiltinNames::BuiltinNames):
- builtins/BuiltinNames.h:
- bytecode/CodeBlock.cpp:
(JSC::CodeBlock::setConstantIdentifierSetRegisters):
- bytecode/CodeBlock.h:
- bytecode/HandlerInfo.h:
(JSC::UnlinkedHandlerInfo::UnlinkedHandlerInfo):
- bytecode/InstructionStream.h:
- bytecode/UnlinkedCodeBlock.h:
(JSC::UnlinkedCodeBlock::addSetConstant):
(JSC::UnlinkedCodeBlock::constantIdentifierSets):
- bytecode/UnlinkedEvalCodeBlock.h:
- bytecode/UnlinkedFunctionCodeBlock.h:
- bytecode/UnlinkedFunctionExecutable.h:
- bytecode/UnlinkedGlobalCodeBlock.h:
(JSC::UnlinkedGlobalCodeBlock::UnlinkedGlobalCodeBlock):
- bytecode/UnlinkedMetadataTable.h:
- bytecode/UnlinkedModuleProgramCodeBlock.h:
- bytecode/UnlinkedProgramCodeBlock.h:
- interpreter/Interpreter.cpp:
- jsc.cpp:
(functionQuit):
(runJSC):
- parser/SourceCode.h:
- parser/SourceCodeKey.h:
(JSC::SourceCodeKey::operator!= const):
- parser/UnlinkedSourceCode.h:
- parser/VariableEnvironment.h:
- runtime/CachedTypes.cpp: Added.
(JSC::Encoder::Allocation::buffer const):
(JSC::Encoder::Allocation::offset const):
(JSC::Encoder::Allocation::Allocation):
(JSC::Encoder::Encoder):
(JSC::Encoder::vm):
(JSC::Encoder::malloc):
(JSC::Encoder::offsetOf):
(JSC::Encoder::cachePtr):
(JSC::Encoder::offsetForPtr):
(JSC::Encoder::release):
(JSC::Encoder::Page::Page):
(JSC::Encoder::Page::malloc):
(JSC::Encoder::Page::buffer const):
(JSC::Encoder::Page::size const):
(JSC::Encoder::Page::getOffset const):
(JSC::Encoder::allocateNewPage):
(JSC::Decoder::Decoder):
(JSC::Decoder::~Decoder):
(JSC::Decoder::vm):
(JSC::Decoder::offsetOf):
(JSC::Decoder::cacheOffset):
(JSC::Decoder::addFinalizer):
(JSC::encode):
(JSC::decode):
(JSC::VariableLengthObject::buffer const):
(JSC::VariableLengthObject::allocate):
(JSC::CachedPtr::encode):
(JSC::CachedPtr::decode const):
(JSC::CachedPtr::operator-> const):
(JSC::CachedPtr::get const):
(JSC::CachedRefPtr::encode):
(JSC::CachedRefPtr::decode const):
(JSC::CachedWriteBarrier::encode):
(JSC::CachedWriteBarrier::decode const):
(JSC::CachedVector::encode):
(JSC::CachedVector::decode const):
(JSC::CachedPair::encode):
(JSC::CachedPair::decode const):
(JSC::CachedHashMap::encode):
(JSC::CachedHashMap::decode const):
(JSC::CachedUniquedStringImpl::encode):
(JSC::CachedUniquedStringImpl::decode const):
(JSC::CachedStringImpl::encode):
(JSC::CachedStringImpl::decode const):
(JSC::CachedString::encode):
(JSC::CachedString::decode const):
(JSC::CachedIdentifier::encode):
(JSC::CachedIdentifier::decode const):
(JSC::CachedOptional::encode):
(JSC::CachedOptional::decode const):
(JSC::CachedOptional::decodeAsPtr const):
(JSC::CachedSimpleJumpTable::encode):
(JSC::CachedSimpleJumpTable::decode const):
(JSC::CachedStringJumpTable::encode):
(JSC::CachedStringJumpTable::decode const):
(JSC::CachedCodeBlockRareData::encode):
(JSC::CachedCodeBlockRareData::decode const):
(JSC::CachedBitVector::encode):
(JSC::CachedBitVector::decode const):
(JSC::CachedHashSet::encode):
(JSC::CachedHashSet::decode const):
(JSC::CachedConstantIdentifierSetEntry::encode):
(JSC::CachedConstantIdentifierSetEntry::decode const):
(JSC::CachedVariableEnvironment::encode):
(JSC::CachedVariableEnvironment::decode const):
(JSC::CachedArray::encode):
(JSC::CachedArray::decode const):
(JSC::CachedScopedArgumentsTable::encode):
(JSC::CachedScopedArgumentsTable::decode const):
(JSC::CachedSymbolTableEntry::encode):
(JSC::CachedSymbolTableEntry::decode const):
(JSC::CachedSymbolTable::encode):
(JSC::CachedSymbolTable::decode const):
(JSC::CachedImmutableButterfly::encode):
(JSC::CachedImmutableButterfly::decode const):
(JSC::CachedRegExp::encode):
(JSC::CachedRegExp::decode const):
(JSC::CachedTemplateObjectDescriptor::encode):
(JSC::CachedTemplateObjectDescriptor::decode const):
(JSC::CachedBigInt::encode):
(JSC::CachedBigInt::decode const):
(JSC::CachedJSValue::encode):
(JSC::CachedJSValue::decode const):
(JSC::CachedInstructionStream::encode):
(JSC::CachedInstructionStream::decode const):
(JSC::CachedMetadataTable::encode):
(JSC::CachedMetadataTable::decode const):
(JSC::CachedSourceOrigin::encode):
(JSC::CachedSourceOrigin::decode const):
(JSC::CachedTextPosition::encode):
(JSC::CachedTextPosition::decode const):
(JSC::CachedSourceProviderShape::encode):
(JSC::CachedSourceProviderShape::decode const):
(JSC::CachedStringSourceProvider::encode):
(JSC::CachedStringSourceProvider::decode const):
(JSC::CachedWebAssemblySourceProvider::encode):
(JSC::CachedWebAssemblySourceProvider::decode const):
(JSC::CachedSourceProvider::encode):
(JSC::CachedSourceProvider::decode const):
(JSC::CachedUnlinkedSourceCodeShape::encode):
(JSC::CachedUnlinkedSourceCodeShape::decode const):
(JSC::CachedSourceCode::encode):
(JSC::CachedSourceCode::decode const):
(JSC::CachedFunctionExecutable::firstLineOffset const):
(JSC::CachedFunctionExecutable::lineCount const):
(JSC::CachedFunctionExecutable::unlinkedFunctionNameStart const):
(JSC::CachedFunctionExecutable::unlinkedBodyStartColumn const):
(JSC::CachedFunctionExecutable::unlinkedBodyEndColumn const):
(JSC::CachedFunctionExecutable::startOffset const):
(JSC::CachedFunctionExecutable::sourceLength const):
(JSC::CachedFunctionExecutable::parametersStartOffset const):
(JSC::CachedFunctionExecutable::typeProfilingStartOffset const):
(JSC::CachedFunctionExecutable::typeProfilingEndOffset const):
(JSC::CachedFunctionExecutable::parameterCount const):
(JSC::CachedFunctionExecutable::features const):
(JSC::CachedFunctionExecutable::sourceParseMode const):
(JSC::CachedFunctionExecutable::isInStrictContext const):
(JSC::CachedFunctionExecutable::hasCapturedVariables const):
(JSC::CachedFunctionExecutable::isBuiltinFunction const):
(JSC::CachedFunctionExecutable::isBuiltinDefaultClassConstructor const):
(JSC::CachedFunctionExecutable::constructAbility const):
(JSC::CachedFunctionExecutable::constructorKind const):
(JSC::CachedFunctionExecutable::functionMode const):
(JSC::CachedFunctionExecutable::scriptMode const):
(JSC::CachedFunctionExecutable::superBinding const):
(JSC::CachedFunctionExecutable::derivedContextType const):
(JSC::CachedFunctionExecutable::name const):
(JSC::CachedFunctionExecutable::ecmaName const):
(JSC::CachedFunctionExecutable::inferredName const):
(JSC::CachedCodeBlock::instructions const):
(JSC::CachedCodeBlock::thisRegister const):
(JSC::CachedCodeBlock::scopeRegister const):
(JSC::CachedCodeBlock::globalObjectRegister const):
(JSC::CachedCodeBlock::sourceURLDirective const):
(JSC::CachedCodeBlock::sourceMappingURLDirective const):
(JSC::CachedCodeBlock::usesEval const):
(JSC::CachedCodeBlock::isStrictMode const):
(JSC::CachedCodeBlock::isConstructor const):
(JSC::CachedCodeBlock::hasCapturedVariables const):
(JSC::CachedCodeBlock::isBuiltinFunction const):
(JSC::CachedCodeBlock::superBinding const):
(JSC::CachedCodeBlock::scriptMode const):
(JSC::CachedCodeBlock::isArrowFunctionContext const):
(JSC::CachedCodeBlock::isClassContext const):
(JSC::CachedCodeBlock::wasCompiledWithDebuggingOpcodes const):
(JSC::CachedCodeBlock::constructorKind const):
(JSC::CachedCodeBlock::derivedContextType const):
(JSC::CachedCodeBlock::evalContextType const):
(JSC::CachedCodeBlock::hasTailCalls const):
(JSC::CachedCodeBlock::lineCount const):
(JSC::CachedCodeBlock::endColumn const):
(JSC::CachedCodeBlock::numVars const):
(JSC::CachedCodeBlock::numCalleeLocals const):
(JSC::CachedCodeBlock::numParameters const):
(JSC::CachedCodeBlock::features const):
(JSC::CachedCodeBlock::parseMode const):
(JSC::CachedCodeBlock::codeType const):
(JSC::CachedCodeBlock::rareData const):
(JSC::CachedProgramCodeBlock::encode):
(JSC::CachedProgramCodeBlock::decode const):
(JSC::CachedModuleCodeBlock::encode):
(JSC::CachedModuleCodeBlock::decode const):
(JSC::CachedEvalCodeBlock::encode):
(JSC::CachedEvalCodeBlock::decode const):
(JSC::CachedFunctionCodeBlock::encode):
(JSC::CachedFunctionCodeBlock::decode const):
(JSC::UnlinkedFunctionCodeBlock::UnlinkedFunctionCodeBlock):
(JSC::UnlinkedCodeBlock::UnlinkedCodeBlock):
(JSC::CachedCodeBlock<CodeBlockType>::decode const):
(JSC::UnlinkedProgramCodeBlock::UnlinkedProgramCodeBlock):
(JSC::UnlinkedModuleProgramCodeBlock::UnlinkedModuleProgramCodeBlock):
(JSC::UnlinkedEvalCodeBlock::UnlinkedEvalCodeBlock):
(JSC::CachedFunctionExecutable::encode):
(JSC::CachedFunctionExecutable::decode const):
(JSC::UnlinkedFunctionExecutable::UnlinkedFunctionExecutable):
(JSC::CachedCodeBlock<CodeBlockType>::encode):
(JSC::CachedSourceCodeKey::encode):
(JSC::CachedSourceCodeKey::decode const):
(JSC::CacheEntry::encode):
(JSC::CacheEntry:: const):
(JSC:: const):
(JSC::encodeCodeBlock):
(JSC::decodeCodeBlockImpl):
- runtime/CachedTypes.h: Copied from Source/JavaScriptCore/bytecode/UnlinkedGlobalCodeBlock.h.
(JSC::decodeCodeBlock):
- runtime/CodeCache.cpp:
(JSC::CodeCacheMap::pruneSlowCase):
(JSC::CodeCache::getUnlinkedGlobalCodeBlock):
(JSC::CodeCache::getUnlinkedGlobalFunctionExecutable):
(JSC::CodeCache::write):
- runtime/CodeCache.h:
(JSC::CodeCacheMap::begin):
(JSC::CodeCacheMap::end):
(JSC::CodeCacheMap::fetchFromDiskImpl):
(JSC::CodeCacheMap::findCacheAndUpdateAge):
(JSC::writeCodeBlock):
- runtime/JSBigInt.cpp:
- runtime/JSBigInt.h:
- runtime/Options.cpp:
(JSC::recomputeDependentOptions):
- runtime/Options.h:
- runtime/RegExp.h:
- runtime/ScopedArgumentsTable.h:
- runtime/StackFrame.h:
- runtime/StructureInlines.h:
- runtime/SymbolTable.h:
Source/WTF:
BitVectors have to be friends with JSC::CacheBitVector to allow
serializing its buffer as part of the bytecode cache encoding.
- wtf/BitVector.h:
Tools:
Add test helper to execute bytecode-cache tests: it executes each test
twice, the first with JSC_diskCachePath set to a temporary directory
and second with JSC_forceDiskCache=true (in addition to the cache path)
to guarantee that only the disk cache is being used and no new
UnlinkedCodeBlocks are being created.
- Scripts/jsc-stress-test-helpers/bytecode-cache-test-helper: Added.
- Scripts/run-jsc-stress-tests:
- 1:18 AM Changeset in webkit [240209] by
-
- 18 edits2 adds in trunk
AX: Support returning relative frames for accessibility
https://bugs.webkit.org/show_bug.cgi?id=193414
<rdar://problem/47268501>
Reviewed by Zalan Bujtas.
Source/WebCore:
Create a way for assistive technologies to retrieve a frame in page space that can be transformed to its final screen space by having the AT message the UI process separately.
Consolidate rect/point conversion methods for macOS and iOS.
This is only needed on WebKit2, where we have to reach back across to the hosting process to get the final frame, so we can skip this test on WK1.
Tests: accessibility/mac/relative-frame.html
- accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:
(-[WebAccessibilityObjectWrapper _accessibilityConvertPointToViewSpace:]):
(-[WebAccessibilityObjectWrapper _accessibilityRelativeFrame]):
(-[WebAccessibilityObjectWrapper accessibilityVisibleContentRect]):
(-[WebAccessibilityObjectWrapper accessibilityActivationPoint]):
(-[WebAccessibilityObjectWrapper accessibilityFrame]):
(-[WebAccessibilityObjectWrapper frameForTextMarkers:]):
(-[WebAccessibilityObjectWrapper rectsForSelectionRects:]):
(-[WebAccessibilityObjectWrapper convertPointToScreenSpace:]): Deleted.
(-[WebAccessibilityObjectWrapper convertRectToScreenSpace:]): Deleted.
- accessibility/mac/WebAccessibilityObjectWrapperBase.h:
- accessibility/mac/WebAccessibilityObjectWrapperBase.mm:
(convertPathToScreenSpaceFunction):
(-[WebAccessibilityObjectWrapperBase convertRectToSpace:space:]):
(-[WebAccessibilityObjectWrapperBase convertPointToScreenSpace:]): Deleted.
- accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
(-[WebAccessibilityObjectWrapper IGNORE_WARNINGS_END]):
(-[WebAccessibilityObjectWrapper position]):
(-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]):
(-[WebAccessibilityObjectWrapper convertPointToScreenSpace:]): Deleted.
Source/WebKit:
- UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView accessibilityAttributeValue:forParameter:]):
(-[WKWebView IGNORE_WARNINGS_END]):
- UIProcess/API/mac/WKView.mm:
(-[WKView accessibilityAttributeValue:forParameter:]):
(-[WKView IGNORE_WARNINGS_END]):
- UIProcess/Cocoa/WebViewImpl.h:
- UIProcess/Cocoa/WebViewImpl.mm:
(WebKit::WebViewImpl::accessibilityAttributeValue):
- UIProcess/ios/WKContentView.mm:
(-[WKContentView accessibilityConvertRelativeFrameFromPage:]):
Tools:
- WebKitTestRunner/InjectedBundle/AccessibilityUIElement.h:
- WebKitTestRunner/InjectedBundle/Bindings/AccessibilityUIElement.idl:
- WebKitTestRunner/InjectedBundle/ios/AccessibilityUIElementIOS.mm:
(WTR::AccessibilityUIElement::stringDescriptionOfAttributeValue):
- WebKitTestRunner/InjectedBundle/mac/AccessibilityUIElementMac.mm:
(WTR::attributesOfElement):
(WTR::AccessibilityUIElement::stringDescriptionOfAttributeValue):
LayoutTests:
- accessibility/mac/relative-frame-expected.txt: Added.
- accessibility/mac/relative-frame.html: Added.
- platform/mac-wk1/TestExpectations:
- 12:52 AM Changeset in webkit [240208] by
-
- 12 edits in trunk
Add a POINTER_EVENTS feature flag
https://bugs.webkit.org/show_bug.cgi?id=193577
<rdar://problem/47408511>
Unreviewed. Also enable Pointer Events for iosmac.
Source/JavaScriptCore:
- Configurations/FeatureDefines.xcconfig:
Source/WebCore:
- Configurations/FeatureDefines.xcconfig:
Source/WebCore/PAL:
- Configurations/FeatureDefines.xcconfig:
Source/WebKit:
- Configurations/FeatureDefines.xcconfig:
Source/WebKitLegacy/mac:
- Configurations/FeatureDefines.xcconfig:
Tools:
- TestWebKitAPI/Configurations/FeatureDefines.xcconfig: