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

Timeline



Sep 20, 2019:

11:37 PM Changeset in webkit [250179] by aestes@apple.com
  • 21 edits
    3 copies
    1 add in trunk/Source

[Apple Pay] Clean up handling of summary items and payment method updates
https://bugs.webkit.org/show_bug.cgi?id=202018
<rdar://problem/55470632>

Reviewed by Tim Horton.

Source/WebCore:

Replaced the PaymentMethodUpdate struct with a class that knows how to convert from
ApplePayPaymentMethodUpdate structs to PKPaymentRequestPaymentMethodUpdate instances.

Moved some scattered-around free functions for converting payment summary items into
PaymentSummaryItems{.h,Cocoa.mm}.

  • Modules/applepay/ApplePayPaymentMethodUpdate.h:
  • Modules/applepay/ApplePaySession.cpp:

(WebCore::finishConverting):
(WebCore::convertAndValidateTotal):
(WebCore::convertAndValidate):

  • Modules/applepay/ApplePaySessionPaymentRequest.h:
  • Modules/applepay/PaymentCoordinator.h:
  • Modules/applepay/PaymentCoordinatorClient.h:
  • Modules/applepay/PaymentHeaders.h:
  • Modules/applepay/PaymentMethodUpdate.h: Added.
  • Modules/applepay/PaymentSummaryItems.h: Added.
  • Modules/applepay/cocoa/PaymentMethodUpdateCocoa.mm: Added.

(WebCore::PaymentMethodUpdate::PaymentMethodUpdate):
(WebCore::PaymentMethodUpdate::totalAndLineItems const):
(WebCore::PaymentMethodUpdate::platformUpdate const):

  • Modules/applepay/cocoa/PaymentSummaryItemsCocoa.mm: Added.

(WebCore::toDecimalNumber):
(WebCore::toPKPaymentSummaryItemType):
(WebCore::toPKPaymentSummaryItem):
(WebCore::platformSummaryItems):

  • Modules/applepay/paymentrequest/ApplePayPaymentHandler.cpp:

(WebCore::ApplePayPaymentHandler::paymentMethodUpdated):

  • SourcesCocoa.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • testing/MockPaymentCoordinator.cpp:

(WebCore::MockPaymentCoordinator::completePaymentMethodSelection):

Source/WebKit:

Now that PaymentMethodUpdate knows how to convert itself to a
PKPaymentRequestPaymentMethodUpdate, PaymentAuthorizationPresenter can merely pass the
converted update directly to the platform delegate rather than passing the individual
components and relying on the delegate to instantiate the platform update itself. Added
FIXMEs for applying a similar treatment to ShippingContactUpdate and ShippingMethodUpdate.

  • Platform/cocoa/PaymentAuthorizationPresenter.h:
  • Platform/cocoa/PaymentAuthorizationPresenter.mm:

(WebKit::PaymentAuthorizationPresenter::completePaymentMethodSelection):
(WebKit::PaymentAuthorizationPresenter::completeShippingContactSelection):
(WebKit::PaymentAuthorizationPresenter::completeShippingMethodSelection):

  • Platform/cocoa/WKPaymentAuthorizationDelegate.h:
  • Platform/cocoa/WKPaymentAuthorizationDelegate.mm:

(-[WKPaymentAuthorizationDelegate completePaymentMethodSelection:]):
(-[WKPaymentAuthorizationDelegate completeShippingContactSelection:]):
(-[WKPaymentAuthorizationDelegate completeShippingMethodSelection:]):
(-[WKPaymentAuthorizationDelegate _didSelectPaymentMethod:completion:]):
(-[WKPaymentAuthorizationDelegate _didSelectShippingContact:completion:]):
(-[WKPaymentAuthorizationDelegate _didSelectShippingMethod:completion:]):
(-[WKPaymentAuthorizationDelegate completeShippingContactSelection:summaryItems:shippingMethods:errors:]): Deleted.

  • Shared/ApplePay/WebPaymentCoordinatorProxy.h:
  • Shared/ApplePay/cocoa/WebPaymentCoordinatorProxyCocoa.h:
  • Shared/ApplePay/cocoa/WebPaymentCoordinatorProxyCocoa.mm:

(WebKit::WebPaymentCoordinatorProxy::platformPaymentRequest):
(WebKit::toPKPaymentSummaryItemType): Deleted.
(WebKit::toPKPaymentSummaryItem): Deleted.
(WebKit::toPKPaymentSummaryItems): Deleted.

  • Shared/Cocoa/WebCoreArgumentCodersCocoa.mm:

(IPC::ArgumentCoder<WebCore::PaymentMethodUpdate>::encode):
(IPC::ArgumentCoder<WebCore::PaymentMethodUpdate>::decode):

10:29 PM Changeset in webkit [250178] by mitz@apple.com
  • 7 copies
    1 add in releases/Apple/watchOS 6.0

Added a tag for watchOS 6.0.

10:27 PM Changeset in webkit [250177] by mitz@apple.com
  • 8 copies
    1 add in releases/Apple/iOS 13.0

Added a tag for iOS 13.0.

7:11 PM Changeset in webkit [250176] by keith_miller@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

eliding a move in Air O0 needs to mark the dest's old reg as available
https://bugs.webkit.org/show_bug.cgi?id=202066

Reviewed by Saam Barati.

Also adds a new release method that handles all the invariants of
returning a register to the available register pool.

  • b3/air/AirAllocateRegistersAndStackAndGenerateCode.cpp:

(JSC::B3::Air::GenerateAndAllocateRegisters::release):
(JSC::B3::Air::GenerateAndAllocateRegisters::spill):
(JSC::B3::Air::GenerateAndAllocateRegisters::freeDeadTmpsIfNeeded):
(JSC::B3::Air::GenerateAndAllocateRegisters::generate):

  • b3/air/AirAllocateRegistersAndStackAndGenerateCode.h:
6:24 PM Changeset in webkit [250175] by commit-queue@webkit.org
  • 4 edits
    2 adds in trunk

Assertion fires when animating a discrete property with values range and multiple animators
https://bugs.webkit.org/show_bug.cgi?id=201926

Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2019-09-20
Reviewed by Darin Adler.

Source/WebCore:

The first animator of a property is considered the result element. The
other animators will be just contributers to the first animator. For the
first animator and in SVGSMILElement::progress(), we call resetAnimatedType()
which creates m_animator in SVGAnimateElementBase::animator(). But for
the other animators we do not call resetAnimatedType(). So their m_animator
will stay null until they are used for the first time.

If SVGAnimationElement::startedActiveInterval() calls calculateToAtEndOfDurationValue()
for a discrete property this will have no effect and the call should be
ignored. So SVGAnimateElementBase::calculateToAtEndOfDurationValue()
should bail out early if isDiscreteAnimator() is true.

The bug is isDiscreteAnimator() will return false if the m_animator is
null even if the animated property is discrete, e.g. SVGAnimatedString.
The fix is to make isDiscreteAnimator() ensure m_animator is created.

Unrelated change:
Make most of the protected methods of SVGAnimateElementBase be private.

Test: svg/animations/multiple-discrete-values-animate.svg

  • svg/SVGAnimateElementBase.cpp:

(WebCore::SVGAnimateElementBase::calculateFromAndByValues):
(WebCore::SVGAnimateElementBase::calculateToAtEndOfDurationValue):

LayoutTests:

Animate a discrete property, such as SVGAnimatedString. There should be
multiple animators and the range of animation has to be set by the 'values'
attribute.

  • svg/animations/multiple-discrete-values-animate-expected.txt: Added.
  • svg/animations/multiple-discrete-values-animate.svg: Added.
6:07 PM Changeset in webkit [250174] by aakash_jain@apple.com
  • 3 edits in trunk/Tools

[EWS] JSC queues should re-build ToT and compare results on build failure
https://bugs.webkit.org/show_bug.cgi?id=201999

Reviewed by Jonathan Bedard.

  • BuildSlaveSupport/ews-build/factories.py:

(JSCTestsFactory.init): Do not add the UnApplyPatchIfRequired and CompileJSCOnlyToT step here, as
these are dynamically added (if required) in steps.py in CompileWebKit.evaluateCommand() using addStepsAfterCurrentStep().
Also setting skipUpload=False since we don't need to upload the archive for this queue. Building and testing is done in same build.

  • BuildSlaveSupport/ews-build/steps.py:

(CompileWebKit.evaluateCommand): Add CompileJSCOnlyToT or CompileWebKitToT build-step based on 'group' property.
(AnalyzeCompileWebKitResults.start): Ditto.
(CompileJSCOnly.start): Set the 'group' property to 'jsc'.
(CompileJSCOnlyToT.evaluateCommand): Over-ride evaluateCommand, so that base-class' (CompileWebKit) evaluateCommand is
not used, base class evaluateCommand adds build-steps dynamically.

5:36 PM Changeset in webkit [250173] by Keith Rollin
  • 2 edits in trunk/Source/WebCore

Remove dead code for a specific macOS and iOS SDK
https://bugs.webkit.org/show_bug.cgi?id=202054
<rdar://problem/55569619>

Reviewed by Zalan Bujtas.

ComplexTextController::collectComplexTextRunsForCharacters in
ComplexTextControllerCoreText.mm has some code for compatibility with
specifically macOS 10.14.0 and iOS 12.0 (see Bug 186571). We don't
build for these targets any more (when we build for macOS 10.14, it's
for a later minor revision), so this code can be removed.

No new tests -- no new or changed functionality.

  • platform/graphics/mac/ComplexTextControllerCoreText.mm:

(WebCore::ComplexTextController::collectComplexTextRunsForCharacters):

5:29 PM Changeset in webkit [250172] by mark.lam@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Harden assertion in StructureIDTable::get().
https://bugs.webkit.org/show_bug.cgi?id=202067
<rdar://problem/55577923>

Reviewed by Keith Miller.

  • runtime/StructureIDTable.h:

(JSC::StructureIDTable::get):

5:17 PM Changeset in webkit [250171] by Keith Rollin
  • 4 edits in trunk/Source

Remove some support for < iOS 13
https://bugs.webkit.org/show_bug.cgi?id=202027
<rdar://problem/55547109>

Reviewed by Alex Christensen.

Remove some support for iOS versions less than 13.0.

Update conditionals that reference IPHONE_OS_VERSION_MIN_REQUIRED
and
IPHONE_OS_VERSION_MAX_ALLOWED, assuming that they both have
values >= 130000. This means that expressions like
"IPHONE_OS_VERSION_MIN_REQUIRED < 101300" are always False and
"
IPHONE_OS_VERSION_MIN_REQUIRED >= 101300" are always True.

After version checks have been removed, there are some cases where the

preprocessor conditional looks like "#if PLATFORM(MAC)

PLATFORM(IOS_FAMILY)". These can be collapsed into "#if
PLATFORM(COCOA)". This additional cleanup will be performed in a
subsequent patch.

This removal is part of a series of patches effecting the removal of
dead code for old versions of iOS. This particular pass involves
changes in which Joe Pecoraro was involved. These changes are isolated
from other similar changes in order to facilitate the reviewing
process.

Source/WebCore/PAL:

  • pal/spi/cf/CFNetworkSPI.h:

Source/WebKit:

  • NetworkProcess/cocoa/NetworkSessionCocoa.mm:

(-[WKNetworkSessionDelegate URLSession:task:didFinishCollectingMetrics:]):

5:15 PM Changeset in webkit [250170] by Kocsen Chung
  • 1 copy in branches/safari-608.2.30.1-branch

New branch.

5:13 PM Changeset in webkit [250169] by achristensen@apple.com
  • 42 edits
    1 move
    4 deletes in trunk/Source

Remove unnecessary abstractions around WebsiteDataStore
https://bugs.webkit.org/show_bug.cgi?id=201655

Reviewed by Chris Dumez.

Source/WebCore:

  • Modules/webdatabase/cocoa/DatabaseManagerCocoa.mm:

(WebCore::DatabaseManager::platformInitialize):

Source/WebKit:

  • PlatformFTW.cmake:
  • PlatformWin.cmake:
  • Sources.txt:
  • SourcesCocoa.txt:
  • SourcesGTK.txt:
  • SourcesWPE.txt:
  • UIProcess/API/APIHTTPCookieStore.cpp:
  • UIProcess/API/APIHTTPCookieStore.h:
  • UIProcess/API/APIPageConfiguration.cpp:

(API::PageConfiguration::websiteDataStore):
(API::PageConfiguration::setWebsiteDataStore):

  • UIProcess/API/APIPageConfiguration.h:
  • UIProcess/API/APIProcessPoolConfiguration.cpp:
  • UIProcess/API/APIWebsiteDataStore.cpp: Removed.
  • UIProcess/API/APIWebsiteDataStore.h: Removed.
  • UIProcess/API/APIWebsitePolicies.cpp:

(API::WebsitePolicies::WebsitePolicies):
(API::WebsitePolicies::setWebsiteDataStore):
(API::WebsitePolicies::data):

  • UIProcess/API/APIWebsitePolicies.h:
  • UIProcess/API/C/WKAPICast.h:
  • UIProcess/API/C/WKContext.cpp:

(WKContextSetCacheModel):
(WKContextGetCacheModel):

  • UIProcess/API/C/WKFramePolicyListener.cpp:
  • UIProcess/API/C/WKWebsiteDataStoreRef.cpp:

(WKWebsiteDataStoreGetTypeID):
(WKWebsiteDataStoreGetDefaultDataStore):
(WKWebsiteDataStoreCreateNonPersistentDataStore):
(WKWebsiteDataStoreCreateWithConfiguration):
(WKWebsiteDataStoreGetHTTPCookieStore):
(WKWebsiteDataStoreSetResourceLoadStatisticsDebugModeWithCompletionHandler):
(WKWebsiteDataStoreSetResourceLoadStatisticsPrevalentResourceForDebugMode):
(WKWebsiteDataStoreSetStatisticsLastSeen):
(WKWebsiteDataStoreSetStatisticsPrevalentResource):
(WKWebsiteDataStoreSetStatisticsVeryPrevalentResource):
(WKWebsiteDataStoreDumpResourceLoadStatistics):
(WKWebsiteDataStoreIsStatisticsPrevalentResource):
(WKWebsiteDataStoreIsStatisticsVeryPrevalentResource):
(WKWebsiteDataStoreIsStatisticsRegisteredAsSubresourceUnder):
(WKWebsiteDataStoreIsStatisticsRegisteredAsSubFrameUnder):
(WKWebsiteDataStoreIsStatisticsRegisteredAsRedirectingTo):
(WKWebsiteDataStoreSetStatisticsHasHadUserInteraction):
(WKWebsiteDataStoreIsStatisticsHasHadUserInteraction):
(WKWebsiteDataStoreSetStatisticsGrandfathered):
(WKWebsiteDataStoreIsStatisticsGrandfathered):
(WKWebsiteDataStoreSetStatisticsSubframeUnderTopFrameOrigin):
(WKWebsiteDataStoreSetStatisticsSubresourceUnderTopFrameOrigin):
(WKWebsiteDataStoreSetStatisticsSubresourceUniqueRedirectTo):
(WKWebsiteDataStoreSetStatisticsSubresourceUniqueRedirectFrom):
(WKWebsiteDataStoreSetStatisticsTopFrameUniqueRedirectTo):
(WKWebsiteDataStoreSetStatisticsTopFrameUniqueRedirectFrom):
(WKWebsiteDataStoreSetStatisticsCrossSiteLoadWithLinkDecoration):
(WKWebsiteDataStoreSetStatisticsTimeToLiveUserInteraction):
(WKWebsiteDataStoreStatisticsProcessStatisticsAndDataRecords):
(WKWebsiteDataStoreStatisticsUpdateCookieBlocking):
(WKWebsiteDataStoreStatisticsSubmitTelemetry):
(WKWebsiteDataStoreSetStatisticsNotifyPagesWhenDataRecordsWereScanned):
(WKWebsiteDataStoreSetStatisticsIsRunningTest):
(WKWebsiteDataStoreSetStatisticsShouldClassifyResourcesBeforeDataRecordsRemoval):
(WKWebsiteDataStoreSetStatisticsNotifyPagesWhenTelemetryWasCaptured):
(WKWebsiteDataStoreSetStatisticsMinimumTimeBetweenDataRecordsRemoval):
(WKWebsiteDataStoreSetStatisticsGrandfatheringTime):
(WKWebsiteDataStoreSetStatisticsMaxStatisticsEntries):
(WKWebsiteDataStoreSetStatisticsPruneEntriesDownTo):
(WKWebsiteDataStoreStatisticsClearInMemoryAndPersistentStore):
(WKWebsiteDataStoreStatisticsClearInMemoryAndPersistentStoreModifiedSinceHours):
(WKWebsiteDataStoreStatisticsClearThroughWebsiteDataRemoval):
(WKWebsiteDataStoreStatisticsDeleteCookiesForTesting):
(WKWebsiteDataStoreStatisticsHasLocalStorage):
(WKWebsiteDataStoreSetStatisticsCacheMaxAgeCap):
(WKWebsiteDataStoreStatisticsHasIsolatedSession):
(WKWebsiteDataStoreStatisticsResetToConsistentState):
(WKWebsiteDataStoreRemoveAllFetchCaches):
(WKWebsiteDataStoreRemoveFetchCacheForOrigin):
(WKWebsiteDataStoreRemoveAllIndexedDatabases):
(WKWebsiteDataStoreRemoveLocalStorage):
(WKWebsiteDataStoreRemoveAllServiceWorkerRegistrations):
(WKWebsiteDataStoreGetFetchCacheOrigins):
(WKWebsiteDataStoreGetFetchCacheSizeForOrigin):
(WKWebsiteDataStoreCopyServiceWorkerRegistrationDirectory):
(WKWebsiteDataStoreSetServiceWorkerRegistrationDirectory):
(WKWebsiteDataStoreClearAllDeviceOrientationPermissions):
(WKWebsiteDataStoreSetWebAuthenticationMockConfiguration):
(WKWebsiteDataStoreClearAdClickAttributionsThroughWebsiteDataRemoval):

  • UIProcess/API/C/WKWebsitePolicies.cpp:
  • UIProcess/API/Cocoa/APIWebsiteDataStoreCocoa.mm: Removed.
  • UIProcess/API/Cocoa/WKWebsiteDataStore.mm:

(+[WKWebsiteDataStore defaultDataStore]):
(+[WKWebsiteDataStore nonPersistentDataStore]):
(-[WKWebsiteDataStore dealloc]):
(-[WKWebsiteDataStore httpCookieStore]):
(-[WKWebsiteDataStore removeDataOfTypes:modifiedSince:completionHandler:]):
(-[WKWebsiteDataStore removeDataOfTypes:forDataRecords:completionHandler:]):
(+[WKWebsiteDataStore _defaultDataStoreExists]):
(+[WKWebsiteDataStore _deleteDefaultDataStoreForTesting]):
(-[WKWebsiteDataStore _initWithConfiguration:]):
(-[WKWebsiteDataStore _fetchDataRecordsOfTypes:withOptions:completionHandler:]):
(-[WKWebsiteDataStore _resourceLoadStatisticsEnabled]):
(-[WKWebsiteDataStore _setResourceLoadStatisticsEnabled:]):
(-[WKWebsiteDataStore _resourceLoadStatisticsDebugMode]):
(-[WKWebsiteDataStore _setResourceLoadStatisticsDebugMode:]):
(-[WKWebsiteDataStore _cacheStorageDirectory]):
(-[WKWebsiteDataStore _setCacheStorageDirectory:]):
(-[WKWebsiteDataStore _serviceWorkerRegistrationDirectory]):
(-[WKWebsiteDataStore _setServiceWorkerRegistrationDirectory:]):
(-[WKWebsiteDataStore _setBoundInterfaceIdentifier:]):
(-[WKWebsiteDataStore _boundInterfaceIdentifier]):
(-[WKWebsiteDataStore _setAllowsCellularAccess:]):
(-[WKWebsiteDataStore _allowsCellularAccess]):
(-[WKWebsiteDataStore _setProxyConfiguration:]):
(-[WKWebsiteDataStore _sourceApplicationBundleIdentifier]):
(-[WKWebsiteDataStore _setSourceApplicationBundleIdentifier:]):
(-[WKWebsiteDataStore _sourceApplicationSecondaryIdentifier]):
(-[WKWebsiteDataStore _setSourceApplicationSecondaryIdentifier:]):
(-[WKWebsiteDataStore _proxyConfiguration]):
(-[WKWebsiteDataStore _indexedDBDatabaseDirectory]):
(-[WKWebsiteDataStore _resourceLoadStatisticsSetShouldSubmitTelemetry:]):
(-[WKWebsiteDataStore _setResourceLoadStatisticsTestingCallback:]):
(-[WKWebsiteDataStore _getAllStorageAccessEntriesFor:completionHandler:]):
(-[WKWebsiteDataStore _scheduleCookieBlockingUpdate:]):
(-[WKWebsiteDataStore _setPrevalentDomain:completionHandler:]):
(-[WKWebsiteDataStore _getIsPrevalentDomain:completionHandler:]):
(-[WKWebsiteDataStore _clearPrevalentDomain:completionHandler:]):
(-[WKWebsiteDataStore _processStatisticsAndDataRecords:]):
(-[WKWebsiteDataStore _hasRegisteredServiceWorker]):
(-[WKWebsiteDataStore _delegate]):
(-[WKWebsiteDataStore set_delegate:]):

  • UIProcess/API/Cocoa/WKWebsiteDataStoreInternal.h:
  • UIProcess/API/glib/APIWebsiteDataStoreGLib.cpp: Removed.
  • UIProcess/API/glib/WebKitWebsiteDataManager.cpp:

(webkitWebsiteDataManagerSetProperty):
(webkitWebsiteDataManagerGetDataStore):
(webkit_website_data_manager_get_local_storage_directory):
(webkit_website_data_manager_get_disk_cache_directory):
(webkit_website_data_manager_get_offline_application_cache_directory):
(webkit_website_data_manager_get_indexeddb_directory):
(webkit_website_data_manager_get_websql_directory):
(webkit_website_data_manager_get_hsts_cache_directory):
(webkit_website_data_manager_fetch):
(webkit_website_data_manager_remove):
(webkit_website_data_manager_clear):
(webkitWebsiteDataManagerCreate): Deleted.

  • UIProcess/API/glib/WebKitWebsiteDataManagerPrivate.h:
  • UIProcess/API/win/APIWebsiteDataStoreWin.cpp: Removed.
  • UIProcess/Cocoa/NavigationState.mm:
  • UIProcess/Network/NetworkProcessProxy.cpp:

(WebKit::NetworkProcessProxy::NetworkProcessProxy):
(WebKit::NetworkProcessProxy::websiteDataStoreFromSessionID):

  • UIProcess/Network/NetworkProcessProxy.h:
  • UIProcess/WebFramePolicyListenerProxy.cpp:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::WebPageProxy):
(WebKit::WebPageProxy::receivedNavigationPolicyDecision):

  • UIProcess/WebProcessPool.cpp:

(WebKit::m_webProcessCache):
(WebKit::WebProcessPool::ensureNetworkProcess):
(WebKit::WebProcessPool::establishWorkerContextConnectionToNetworkProcess):
(WebKit::WebProcessPool::tryTakePrewarmedProcess):
(WebKit::WebProcessPool::processDidFinishLaunching):
(WebKit::WebProcessPool::processForRegistrableDomain):
(WebKit::WebProcessPool::createWebPage):
(WebKit::WebProcessPool::mayHaveRegisteredServiceWorkers):

  • UIProcess/WebProcessPool.h:
  • UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm:

(WebKit::WebsiteDataStore::defaultApplicationCacheDirectory):
(WebKit::WebsiteDataStore::defaultCacheStorageDirectory):
(WebKit::WebsiteDataStore::defaultNetworkCacheDirectory):
(WebKit::WebsiteDataStore::defaultMediaCacheDirectory):
(WebKit::WebsiteDataStore::defaultIndexedDBDatabaseDirectory):
(WebKit::WebsiteDataStore::defaultServiceWorkerRegistrationDirectory):
(WebKit::WebsiteDataStore::defaultLocalStorageDirectory):
(WebKit::WebsiteDataStore::defaultMediaKeysStorageDirectory):
(WebKit::WebsiteDataStore::defaultWebSQLDatabaseDirectory):
(WebKit::WebsiteDataStore::defaultResourceLoadStatisticsDirectory):
(WebKit::WebsiteDataStore::defaultJavaScriptConfigurationDirectory):
(WebKit::WebsiteDataStore::tempDirectoryFileSystemRepresentation):
(WebKit::WebsiteDataStore::cacheDirectoryFileSystemRepresentation):
(WebKit::WebsiteDataStore::websiteDataDirectoryFileSystemRepresentation):

  • UIProcess/WebsiteData/WebsiteDataStore.cpp:

(WebKit::globalDefaultDataStore):
(WebKit::WebsiteDataStore::defaultDataStore):
(WebKit::WebsiteDataStore::deleteDefaultDataStoreForTesting):
(WebKit::WebsiteDataStore::defaultDataStoreExists):
(WebKit::WebsiteDataStore::defaultDataStoreConfiguration):
(WebKit::WebsiteDataStore::isAssociatedProcessPool const):
(WebKit::WebsiteDataStore::defaultMediaCacheDirectory):
(WebKit::WebsiteDataStore::defaultJavaScriptConfigurationDirectory):
(WebKit::WebsiteDataStore::defaultDeviceIdHashSaltsStorageDirectory):

  • UIProcess/WebsiteData/WebsiteDataStore.h:
  • UIProcess/WebsiteData/WebsiteDataStoreConfiguration.cpp:
  • UIProcess/WebsiteData/win/WebsiteDataStoreWin.cpp:

(WebKit::WebsiteDataStore::defaultApplicationCacheDirectory):
(WebKit::WebsiteDataStore::defaultCacheStorageDirectory):
(WebKit::WebsiteDataStore::defaultNetworkCacheDirectory):
(WebKit::WebsiteDataStore::defaultIndexedDBDatabaseDirectory):
(WebKit::WebsiteDataStore::defaultServiceWorkerRegistrationDirectory):
(WebKit::WebsiteDataStore::defaultLocalStorageDirectory):
(WebKit::WebsiteDataStore::defaultMediaKeysStorageDirectory):
(WebKit::WebsiteDataStore::defaultWebSQLDatabaseDirectory):
(WebKit::WebsiteDataStore::defaultResourceLoadStatisticsDirectory):
(WebKit::WebsiteDataStore::cacheDirectoryFileSystemRepresentation):
(WebKit::WebsiteDataStore::websiteDataDirectoryFileSystemRepresentation):

  • UIProcess/glib/WebProcessProxyGLib.cpp:

(WebKit::WebProcessProxy::platformGetLaunchOptions):

  • UIProcess/glib/WebsiteDataStoreGLib.cpp: Copied from Source/WebKit/UIProcess/API/glib/APIWebsiteDataStoreGLib.cpp.

(API::WebsiteDataStore::defaultApplicationCacheDirectory): Deleted.
(API::WebsiteDataStore::defaultNetworkCacheDirectory): Deleted.
(API::WebsiteDataStore::defaultCacheStorageDirectory): Deleted.
(API::WebsiteDataStore::defaultIndexedDBDatabaseDirectory): Deleted.
(API::WebsiteDataStore::defaultServiceWorkerRegistrationDirectory): Deleted.
(API::WebsiteDataStore::defaultLocalStorageDirectory): Deleted.
(API::WebsiteDataStore::defaultMediaKeysStorageDirectory): Deleted.
(API::WebsiteDataStore::defaultDeviceIdHashSaltsStorageDirectory): Deleted.
(API::WebsiteDataStore::defaultWebSQLDatabaseDirectory): Deleted.
(API::WebsiteDataStore::defaultHSTSDirectory): Deleted.
(API::WebsiteDataStore::defaultResourceLoadStatisticsDirectory): Deleted.
(API::WebsiteDataStore::cacheDirectoryFileSystemRepresentation): Deleted.
(API::WebsiteDataStore::websiteDataDirectoryFileSystemRepresentation): Deleted.

  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/MediaCache/WebMediaKeyStorageManager.cpp:

(WebKit::WebMediaKeyStorageManager::setWebsiteDataStore):

4:59 PM Changeset in webkit [250168] by Kocsen Chung
  • 1 copy in tags/Safari-608.2.11.1.10

Tag Safari-608.2.11.1.10.

4:59 PM Changeset in webkit [250167] by commit-queue@webkit.org
  • 3 edits
    3 adds
    2 deletes in trunk

[resource-timing] Report performance entries with all HTTP status codes
https://bugs.webkit.org/show_bug.cgi?id=202040

Patch by Alex Christensen <achristensen@webkit.org> on 2019-09-20
Reviewed by Joseph Pecoraro.

LayoutTests/imported/w3c:

  • web-platform-tests/resource-timing/resource_ignore_failures-expected.txt: Removed.
  • web-platform-tests/resource-timing/resource_ignore_failures.html: Removed.

This test is no longer in wpt and it would regress with this change, so we remove it.

  • web-platform-tests/resource-timing/resources/status-code.py: Added.

(main):

  • web-platform-tests/resource-timing/status-codes-create-entry-expected.txt: Added.
  • web-platform-tests/resource-timing/status-codes-create-entry.html: Added.

Source/WebCore:

This follows a Chromium change at https://chromium-review.googlesource.com/c/chromium/src/+/1796544
The spec change is being discussed at https://github.com/w3c/resource-timing/issues/165

Test: imported/w3c/web-platform-tests/resource-timing/status-codes-create-entry.html

I had to slightly modify the test to make sure the entry count was > 0 instead of == 1 to reduce flakyness because sometimes we load the 200 image twice.
I'll submit a PR to WPT, too.

  • loader/ResourceTimingInformation.cpp:

(WebCore::ResourceTimingInformation::shouldAddResourceTiming):

4:54 PM Changeset in webkit [250166] by Kocsen Chung
  • 9 edits in branches/safari-608.2.11.1-branch/Source/WebKit

Revert to match Safari-608.2.11.1.7 content.

4:46 PM Changeset in webkit [250165] by Chris Dumez
  • 6 edits in trunk

REGRESSION (iOS 13): rAF stops firing when navigating away cross-origin and then back
https://bugs.webkit.org/show_bug.cgi?id=201767
<rdar://problem/55350854>

Reviewed by Tim Horton.

Source/WebKit:

This is a follow-up to r249961 to address crashes when navigating back cross-origin to a page
that uses requestAnimationFrame. r249961 took care of moving RemoteLayerTreeDisplayRefreshMonitor
objects from one RemoteLayerTreeDrawingArea to another but failed to tell those monitors
about their new drawingArea. As a result, RemoteLayerTreeDrawingArea::willDestroyDisplayRefreshMonitor()
would not get called on the new drawing area when it should have.

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

(WebKit::RemoteLayerTreeDisplayRefreshMonitor::updateDrawingArea):

  • WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.mm:

(WebKit::RemoteLayerTreeDrawingArea::adoptDisplayRefreshMonitorsFromDrawingArea):

LayoutTests:

Call finishJSTest() on a timer to make it more likely to reproduce the bug.

  • http/tests/navigation/page-cache-requestAnimationFrame.html:
4:18 PM Changeset in webkit [250164] by Kocsen Chung
  • 1 copy in tags/Safari-608.3.3

Tag Safari-608.3.3.

4:17 PM Changeset in webkit [250163] by Kocsen Chung
  • 1 delete in tags/Safari-608.3.3

Delete tag.

4:16 PM Changeset in webkit [250162] by Kocsen Chung
  • 1 copy in tags/Safari-608.3.3

Tag Safari-608.3.3.

3:58 PM Changeset in webkit [250161] by Keith Rollin
  • 3 edits in trunk/Source/WebCore

Remove check of setSourceAppPid selector that's no longer needed
https://bugs.webkit.org/show_bug.cgi?id=201971
<rdar://problem/55505761>

Reviewed by Andy Estes.

Bug 172152 introduced a check of the NEFilterSource selector
setSourceAppPid in order to support OS's that didn't support it. All
supported Cocoa platforms now support it, so the check can be removed.

Source/WebCore:

No new tests -- no new or changed functionality.

  • platform/cocoa/NetworkExtensionContentFilter.mm:

(WebCore::NetworkExtensionContentFilter::initialize):

Source/WebCore/PAL:

  • pal/spi/cocoa/NEFilterSourceSPI.h:
3:19 PM Changeset in webkit [250160] by Keith Rollin
  • 12 edits
    1 delete in trunk

Remove some support for < iOS 13
https://bugs.webkit.org/show_bug.cgi?id=201967
<rdar://problem/55504738>

Reviewed by Andy Estes.

Remove some support for iOS versions less than 13.0.

Update conditionals that reference IPHONE_OS_VERSION_MIN_REQUIRED
and
IPHONE_OS_VERSION_MAX_ALLOWED, assuming that they both have
values >= 130000. This means that expressions like
"IPHONE_OS_VERSION_MIN_REQUIRED < 101300" are always False and
"
IPHONE_OS_VERSION_MIN_REQUIRED >= 101300" are always True.

After version checks have been removed, there are some cases where the

preprocessor conditional looks like "#if PLATFORM(MAC)

PLATFORM(IOS_FAMILY)". These can be collapsed into "#if
PLATFORM(COCOA)". This additional cleanup will be performed in a
subsequent patch.

This removal is part of a series of patches effecting the removal of
dead code for old versions of iOS. This particular pass involves
changes in which Andy Estes was involved. These changes are isolated
from other similar changes in order to facilitate the reviewing
process.

Source/WebCore:

No new tests -- no new or changed functionality.

  • platform/cocoa/NetworkExtensionContentFilter.mm:

(WebCore::NetworkExtensionContentFilter::initialize):

Source/WebCore/PAL:

  • pal/spi/cocoa/NEFilterSourceSPI.h:

Source/WebKit:

  • NetworkProcess/cocoa/NetworkSessionCocoa.mm:

(WebKit::NetworkSessionCocoa::NetworkSessionCocoa):

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView _dataForPreviewItemController:atPosition:type:]):

  • UIProcess/ios/forms/WKFileUploadPanel.mm:

(-[WKFileUploadPanel _uploadItemFromMediaInfo:successBlock:failureBlock:]):

Source/WTF:

  • wtf/FeatureDefines.h:

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/WKPDFView.mm: Removed.
2:51 PM Changeset in webkit [250159] by Kocsen Chung
  • 7 edits in branches/safari-608.2.11.1-branch/Source

Versioning.

2:50 PM Changeset in webkit [250158] by Kocsen Chung
  • 1 copy in tags/Safari-608.2.11.1.9

Tag Safari-608.2.11.1.9.

2:49 PM Changeset in webkit [250157] by timothy_horton@apple.com
  • 5 edits in trunk/Source/WebKit

Sanitize suggested filenames used for saving PDFs
https://bugs.webkit.org/show_bug.cgi?id=202034
<rdar://problem/53183075>

Reviewed by Chris Dumez.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::didFinishLoadingDataForCustomContentProvider):
(WebKit::WebPageProxy::saveDataToFileInDownloadsFolder):
(WebKit::WebPageProxy::savePDFToFileInDownloadsFolder):

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

(WebKit::WebPageProxy::savePDFToTemporaryFolderAndOpenWithNativeApplicationRaw): Deleted.

  • UIProcess/mac/WebPageProxyMac.mm:

(WebKit::WebPageProxy::savePDFToTemporaryFolderAndOpenWithNativeApplication):
(WebKit::WebPageProxy::savePDFToTemporaryFolderAndOpenWithNativeApplicationRaw): Deleted.
Sanitize suggested filenames to ensure that they comprise only one path component
when concatenated with their destination directory.

2:45 PM Changeset in webkit [250156] by achristensen@apple.com
  • 4 edits in trunk/Tools

Begin moving WebsiteDataStore setters to WebsiteDataStoreConfiguration
https://bugs.webkit.org/show_bug.cgi?id=202025

Reviewed by Chris Dumez.

One expected change in behavior is that the resource load statistics directory is not created on startup with an ephemeral session any more
because we call the constructor of WebsiteDataStoreConfiguration inside _WKWebsiteDataStoreConfiguration and set the default directory like we do the other directories.

  • TestWebKitAPI/Tests/WebKitCocoa/StorageQuota.mm:
  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::websiteDataStore):
(WTR::TestController::generatePageConfiguration):

2:40 PM Changeset in webkit [250155] by Chris Dumez
  • 2 edits in trunk/Source/WebKit

Add release logging for when a view is added / removed from a window
https://bugs.webkit.org/show_bug.cgi?id=202050

Reviewed by Tim Horton.

Add release logging for when a view is added / removed from a window to help determine the
view's visibility in the logs.

  • UIProcess/ios/WKApplicationStateTrackingView.mm:

(-[WKApplicationStateTrackingView willMoveToWindow:]):
(-[WKApplicationStateTrackingView didMoveToWindow]):

2:37 PM Changeset in webkit [250154] by Chris Dumez
  • 2 edits in trunk/Source/WebKit

ApplicationStateTracker::m_isBackground initialization does not account for UIScenes
https://bugs.webkit.org/show_bug.cgi?id=202048

Reviewed by Geoffrey Garen.

ApplicationStateTracker::m_isBackground initialization does not account for UIScenes, it merely checks
the visibility state of the whole app. It should instead check the visibility state of the window's
UIScene.

This patch also refactors the code a little bit to reduce #ifdef'ing.

  • UIProcess/ApplicationStateTracker.mm:

(WebKit::ApplicationStateTracker::ApplicationStateTracker):

2:35 PM Changeset in webkit [250153] by Chris Dumez
  • 44 edits in trunk/Source

Document no longer needs to store a SessionID
https://bugs.webkit.org/show_bug.cgi?id=202024

Reviewed by Geoffrey Garen.

Document no longer needs to store a SessionID, now that we have a single
session per WebProcess. It can simply get its sessionID from its Page.

Source/WebCore:

  • Modules/mediastream/RTCPeerConnection.cpp:

(WebCore::RTCPeerConnection::create):

  • Modules/websockets/WebSocketChannel.cpp:

(WebCore::WebSocketChannel::didOpenSocketStream):

  • accessibility/mac/WebAccessibilityObjectWrapperMac.mm:

(-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]):

  • dom/DOMImplementation.cpp:

(WebCore::createXMLDocument):
(WebCore::DOMImplementation::createDocument):
(WebCore::DOMImplementation::createHTMLDocument):

  • dom/DOMImplementation.h:
  • dom/Document.cpp:

(WebCore::Document::Document):
(WebCore::m_undoManager):
(WebCore::Document::create):
(WebCore::Document::createNonRenderedPlaceholder):
(WebCore::Document::cloneDocumentWithoutChildren const):
(WebCore::Document::sessionID const):
(WebCore::Document::privateBrowsingStateDidChange):
(WebCore::Document::ensureTemplateDocument):
(WebCore::Document::logger):
(WebCore::Document::didLogMessage):

  • dom/Document.h:

(WebCore::Document::create):

  • dom/XMLDocument.h:

(WebCore::XMLDocument::create):
(WebCore::XMLDocument::createXHTML):
(WebCore::XMLDocument::XMLDocument):

  • html/FTPDirectoryDocument.cpp:

(WebCore::FTPDirectoryDocument::FTPDirectoryDocument):

  • html/FTPDirectoryDocument.h:
  • html/HTMLAnchorElement.cpp:

(WebCore::HTMLAnchorElement::parseAdClickAttribution const):

  • html/HTMLDocument.cpp:

(WebCore::HTMLDocument::createSynthesizedDocument):
(WebCore::HTMLDocument::HTMLDocument):
(WebCore::HTMLDocument::cloneDocumentWithoutChildren const):

  • html/HTMLDocument.h:

(WebCore::HTMLDocument::create):

  • html/ImageDocument.cpp:

(WebCore::ImageDocument::ImageDocument):

  • html/MediaDocument.cpp:

(WebCore::MediaDocument::MediaDocument):

  • html/MediaDocument.h:
  • html/PluginDocument.cpp:

(WebCore::PluginDocument::PluginDocument):

  • html/TextDocument.cpp:

(WebCore::TextDocument::TextDocument):

  • html/TextDocument.h:
  • inspector/DOMPatchSupport.cpp:

(WebCore::DOMPatchSupport::patchDocument):

  • loader/CookieJar.cpp:

(WebCore::CookieJar::cookieRequestHeaderFieldProxy):
(WebCore::CookieJar::cookieRequestHeaderFieldValue const):

  • loader/CookieJar.h:
  • loader/DocumentWriter.cpp:

(WebCore::DocumentWriter::createDocument):

  • loader/SinkDocument.cpp:

(WebCore::SinkDocument::SinkDocument):

  • loader/cache/CachedResource.cpp:

(WebCore::CachedResource::setResponse):
(WebCore::CachedResource::varyHeaderValuesMatch):

  • loader/cache/CachedSVGDocument.cpp:

(WebCore::CachedSVGDocument::finishLoading):

  • loader/cache/CachedSVGFont.cpp:

(WebCore::CachedSVGFont::ensureCustomFontData):

  • page/Page.cpp:

(WebCore::Page::configureLoggingChannel):

  • platform/network/CacheValidation.cpp:

(WebCore::cookieRequestHeaderFieldValue):
(WebCore::collectVaryingRequestHeaders):
(WebCore::verifyVaryingRequestHeaders):

  • platform/network/CacheValidation.h:
  • svg/SVGDocument.cpp:

(WebCore::SVGDocument::SVGDocument):
(WebCore::SVGDocument::cloneDocumentWithoutChildren const):

  • svg/SVGDocument.h:

(WebCore::SVGDocument::create):

  • workers/service/ServiceWorkerContainer.cpp:

(WebCore::ServiceWorkerContainer::isAlwaysOnLoggingAllowed const):

  • worklets/WorkletGlobalScope.cpp:

(WebCore::WorkletGlobalScope::WorkletGlobalScope):

  • worklets/WorkletGlobalScope.h:
  • xml/DOMParser.cpp:

(WebCore::DOMParser::parseFromString):

  • xml/DOMParser.h:
  • xml/DOMParser.idl:
  • xml/XMLHttpRequest.cpp:
  • xml/XSLTProcessor.cpp:

(WebCore::XSLTProcessor::createDocumentFromSource):

Source/WebKit:

  • WebProcess/WebPage/WebCookieJar.cpp:

(WebKit::WebCookieJar::cookieRequestHeaderFieldValue const):

  • WebProcess/WebPage/WebCookieJar.h:
2:23 PM Changeset in webkit [250152] by Devin Rousso
  • 5 edits
    2 adds in trunk

Web Inspector: HTML Formatter - better indentation/newline handling for self closing tags
https://bugs.webkit.org/show_bug.cgi?id=202036

Reviewed by Joseph Pecoraro.

Source/WebInspectorUI:

  • UserInterface/Workers/Formatter/HTMLFormatter.js:

(HTMLFormatter.prototype._before):

LayoutTests:

  • inspector/formatting/formatting-xml.html:
  • inspector/formatting/formatting-xml-expected.txt:
  • inspector/formatting/resources/xml-tests/self-closing.xml: Added.
  • inspector/formatting/resources/xml-tests/self-closing-expected.xml: Added.
2:06 PM Changeset in webkit [250151] by Chris Dumez
  • 3 edits in trunk/Source/WebKit

[iOS] ASSERTION FAILED: Unsafe to ref/deref of ShareableBitmap from different threads
https://bugs.webkit.org/show_bug.cgi?id=201712
<rdar://problem/55289916>

Reviewed by Tim Horton.

Make sure ShareableBitmap objects are always ref'd / deref'd on the main thread by dispatching to
the main thread in ShareableBitmap::releaseBitmapContextData() before calling deref().

  • Shared/ShareableBitmap.cpp:

(WebKit::ShareableBitmap::ShareableBitmap):
(WebKit::ShareableBitmap::~ShareableBitmap):

  • Shared/cg/ShareableBitmapCG.cpp:

(WebKit::ShareableBitmap::createGraphicsContext):
(WebKit::ShareableBitmap::releaseBitmapContextData):

2:01 PM Changeset in webkit [250150] by achristensen@apple.com
  • 15 edits in trunk/Source/WebKit

Begin moving WebsiteDataStore setters to WebsiteDataStoreConfiguration
https://bugs.webkit.org/show_bug.cgi?id=202025

Reviewed by Chris Dumez.

Most of these were only needed before initNonPersistentConfiguration existed.

  • UIProcess/API/C/WKWebsiteDataStoreConfigurationRef.cpp:

(WKWebsiteDataStoreConfigurationGetPerOriginStorageQuota):
(WKWebsiteDataStoreConfigurationSetPerOriginStorageQuota):

  • UIProcess/API/C/WKWebsiteDataStoreConfigurationRef.h:
  • UIProcess/API/C/WKWebsiteDataStoreRef.cpp:

(WKWebsiteDataStoreSetPerOriginStorageQuota):

  • UIProcess/API/C/WKWebsiteDataStoreRef.h:
  • UIProcess/API/Cocoa/WKWebsiteDataStore.mm:

(-[WKWebsiteDataStore _initWithConfiguration:]):
(-[WKWebsiteDataStore _perOriginStorageQuota]):
(-[WKWebsiteDataStore _setPerOriginStorageQuota:]):

  • UIProcess/API/Cocoa/WKWebsiteDataStorePrivate.h:
  • UIProcess/API/Cocoa/_WKWebsiteDataStoreConfiguration.h:
  • UIProcess/API/Cocoa/_WKWebsiteDataStoreConfiguration.mm:

(-[_WKWebsiteDataStoreConfiguration perOriginStorageQuota]):
(-[_WKWebsiteDataStoreConfiguration setPerOriginStorageQuota:]):
(-[_WKWebsiteDataStoreConfiguration boundInterfaceIdentifier]):
(-[_WKWebsiteDataStoreConfiguration setBoundInterfaceIdentifier:]):
(-[_WKWebsiteDataStoreConfiguration allowsCellularAccess]):
(-[_WKWebsiteDataStoreConfiguration setAllowsCellularAccess:]):
(-[_WKWebsiteDataStoreConfiguration proxyConfiguration]):
(-[_WKWebsiteDataStoreConfiguration setProxyConfiguration:]):

  • UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm:

(WebKit::WebsiteDataStore::parameters):

  • UIProcess/WebsiteData/WebsiteDataStore.cpp:

(WebKit::WebsiteDataStore::WebsiteDataStore):
(WebKit::WebsiteDataStore::setSourceApplicationSecondaryIdentifier):
(WebKit::WebsiteDataStore::setSourceApplicationBundleIdentifier):

  • UIProcess/WebsiteData/WebsiteDataStore.h:

(WebKit::WebsiteDataStore::setBoundInterfaceIdentifier):
(WebKit::WebsiteDataStore::boundInterfaceIdentifier):
(WebKit::WebsiteDataStore::sourceApplicationBundleIdentifier const):
(WebKit::WebsiteDataStore::sourceApplicationSecondaryIdentifier const):
(WebKit::WebsiteDataStore::setAllowsCellularAccess):
(WebKit::WebsiteDataStore::allowsCellularAccess):
(WebKit::WebsiteDataStore::setProxyConfiguration):
(WebKit::WebsiteDataStore::proxyConfiguration):
(WebKit::WebsiteDataStore::setPerOriginStorageQuota): Deleted.

  • UIProcess/WebsiteData/WebsiteDataStoreConfiguration.cpp:

(WebKit::WebsiteDataStoreConfiguration::copy):

  • UIProcess/WebsiteData/WebsiteDataStoreConfiguration.h:

(WebKit::WebsiteDataStoreConfiguration::boundInterfaceIdentifier const):
(WebKit::WebsiteDataStoreConfiguration::setBoundInterfaceIdentifier):
(WebKit::WebsiteDataStoreConfiguration::allowsCellularAccess const):
(WebKit::WebsiteDataStoreConfiguration::setAllowsCellularAccess):
(WebKit::WebsiteDataStoreConfiguration::proxyConfiguration const):
(WebKit::WebsiteDataStoreConfiguration::setProxyConfiguration):

1:49 PM Changeset in webkit [250149] by Joseph Pecoraro
  • 7 edits
    2 deletes in trunk/Source/WebInspectorUI

Web Inspector: Remove BranchManager in favor of just using currentRevision
https://bugs.webkit.org/show_bug.cgi?id=202000

Reviewed by Devin Rousso.

Remove BranchManager. The Branch concept never got fleshed out, and would
likely be too complex for the average case. Local Overrides are simpler.
In the interest of expanding Local Overrides to more content lets simply
by removing Branches.

  • Localizations/en.lproj/localizedStrings.js:
  • UserInterface/Base/Main.js:

(WI.loaded):

  • UserInterface/Controllers/BranchManager.js: Removed.
  • UserInterface/Controllers/CSSManager.js:

(WI.CSSManager.prototype._resourceContentDidChange.applyStyleSheetChanges.styleSheetFound):
(WI.CSSManager.prototype._resourceContentDidChange.applyStyleSheetChanges):
(WI.CSSManager.prototype._resourceContentDidChange):
(WI.CSSManager.prototype._updateResourceContent.fetchedStyleSheetContent):

  • UserInterface/Main.html:
  • UserInterface/Models/Branch.js: Removed.
  • UserInterface/Models/SourceCode.js:

(WI.SourceCode.prototype._processContent):
(WI.SourceCode):

  • UserInterface/Views/TextResourceContentView.js:

(WI.TextResourceContentView.prototype._textEditorContentDidChange):

1:36 PM Changeset in webkit [250148] by achristensen@apple.com
  • 12 edits
    2 adds in trunk/Source/WebKit

Introduce LegacyGlobalSettings for settings the NetworkProcess needs from a WebProcessPool
https://bugs.webkit.org/show_bug.cgi?id=201970

Reviewed by Geoff Garen.

I'm starting by moving the cache model to this new abstraction.
We were using it in tests to disable the page cache, which should be done with a boolean on the pool configuration, not by changing the cache model.
We were also using it in WKContextSetCacheModel which has several clients that won't change quickly, so this abstraction is used to maintain existing behavior.
I need this so I can make a NetworkProcess not depend on anything from a WebProcessPool when starting.

  • Sources.txt:
  • UIProcess/API/APIProcessPoolConfiguration.cpp:

(API::ProcessPoolConfiguration::copy):

  • UIProcess/API/APIProcessPoolConfiguration.h:
  • UIProcess/API/C/WKContext.cpp:

(WKContextSetCacheModel):
(WKContextGetCacheModel):

  • UIProcess/API/Cocoa/_WKProcessPoolConfiguration.mm:

(-[_WKProcessPoolConfiguration pageCacheEnabled]):
(-[_WKProcessPoolConfiguration setPageCacheEnabled:]):

  • UIProcess/LegacyGlobalSettings.cpp: Added.

(WebKit::LegacyGlobalSettings::singleton):
(WebKit::LegacyGlobalSettings::setCacheModel):

  • UIProcess/LegacyGlobalSettings.h: Added.

(WebKit::LegacyGlobalSettings::cacheModel const):

  • UIProcess/WebProcessCache.cpp:

(WebKit::WebProcessCache::updateCapacity):

  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::ensureNetworkProcess):
(WebKit::WebProcessPool::initializeNewWebProcess):
(WebKit::WebProcessPool::updateMaxSuspendedPageCount):
(WebKit::WebProcessPool::setCacheModel):

  • UIProcess/WebProcessPool.h:
  • WebKit.xcodeproj/project.pbxproj:
1:30 PM Changeset in webkit [250147] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

[SVG2]: Add auto behavior for rx and ry to the SVG <ellipse> and <rect> elements (Addressing review comments)
https://bugs.webkit.org/show_bug.cgi?id=199843

Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2019-09-20
Reviewed by Darin Adler.

Make RenderSVGEllipse calculate of the ellipse's rx and ry more efficiently.

  • rendering/svg/RenderSVGEllipse.cpp:

(WebCore::RenderSVGEllipse::calculateRadiiAndCenter):

1:29 PM Changeset in webkit [250146] by achristensen@apple.com
  • 7 edits in trunk/Source/WebKit

Deprecate unused C API aliases for WebsiteDataStore
https://bugs.webkit.org/show_bug.cgi?id=202029

Reviewed by Chris Dumez.

This is a piece of r249768.

  • UIProcess/API/C/WKApplicationCacheManager.cpp:

(WKApplicationCacheManagerGetTypeID):
(WKApplicationCacheManagerGetApplicationCacheOrigins):
(WKApplicationCacheManagerDeleteEntriesForOrigin):
(WKApplicationCacheManagerDeleteAllEntries):

  • UIProcess/API/C/WKApplicationCacheManager.h:
  • UIProcess/API/C/WKKeyValueStorageManager.cpp:

(WKKeyValueStorageManagerGetTypeID):
(WKKeyValueStorageManagerGetOriginKey):
(WKKeyValueStorageManagerGetCreationTimeKey):
(WKKeyValueStorageManagerGetModificationTimeKey):
(WKKeyValueStorageManagerGetKeyValueStorageOrigins):
(WKKeyValueStorageManagerGetStorageDetailsByOrigin):
(WKKeyValueStorageManagerDeleteEntriesForOrigin):
(WKKeyValueStorageManagerDeleteAllEntries):

  • UIProcess/API/C/WKKeyValueStorageManager.h:
  • UIProcess/API/C/WKResourceCacheManager.cpp:

(WKResourceCacheManagerGetTypeID):
(WKResourceCacheManagerGetCacheOrigins):
(WKResourceCacheManagerClearCacheForOrigin):
(WKResourceCacheManagerClearCacheForAllOrigins):
(toWebsiteDataTypes): Deleted.

  • UIProcess/API/C/WKResourceCacheManager.h:
1:21 PM Changeset in webkit [250145] by Adrian Perez de Castro
  • 2 edits in trunk

Unreviewed. Bump WPE version numbers.

  • Source/cmake/OptionsWPE.cmake:
1:17 PM Changeset in webkit [250144] by achristensen@apple.com
  • 11 edits in trunk/Source

Remove functionality to disable TLS fallback
https://bugs.webkit.org/show_bug.cgi?id=201998

Reviewed by Geoff Garen.

Source/WebCore/PAL:

  • pal/spi/cf/CFNetworkSPI.h:

Source/WebKit:

Since r249019 it is not used. It was a useful experiment and I'm glad we didn't see any regressions.

  • NetworkProcess/NetworkSessionCreationParameters.cpp:

(WebKit::NetworkSessionCreationParameters::privateSessionParameters):
(WebKit::NetworkSessionCreationParameters::encode const):
(WebKit::NetworkSessionCreationParameters::decode):

  • NetworkProcess/NetworkSessionCreationParameters.h:
  • NetworkProcess/cocoa/NetworkSessionCocoa.mm:

(WebKit::NetworkSessionCocoa::NetworkSessionCocoa):

  • UIProcess/API/Cocoa/WKWebsiteDataStore.mm:

(-[WKWebsiteDataStore _setAllowsTLSFallback:]):
(-[WKWebsiteDataStore _allowsTLSFallback]):

  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::ensureNetworkProcess):

  • UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm:

(WebKit::WebsiteDataStore::parameters):

  • UIProcess/WebsiteData/WebsiteDataStore.cpp:

(WebKit::WebsiteDataStore::setAllowsTLSFallback): Deleted.

  • UIProcess/WebsiteData/WebsiteDataStore.h:

(WebKit::WebsiteDataStore::allowsTLSFallback const): Deleted.

1:11 PM Changeset in webkit [250143] by achristensen@apple.com
  • 17 edits in trunk/Source/WebKit

Remove unused storage paths on APIProcessPoolConfiguration
https://bugs.webkit.org/show_bug.cgi?id=202028

Reviewed by Chris Dumez.

This is a piece of r249768.
There is no way to set these paths and they have been replaced by WebsiteDataStore paths.
There was one remaining use of the global disk cache directory in NetworkProcess::setCacheModel,
which I replaced with the default session's disk cache directory, which is equivalent.

  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::setCacheModel):

  • NetworkProcess/NetworkProcess.h:

(WebKit::NetworkProcess::diskCacheDirectory const): Deleted.

  • NetworkProcess/NetworkProcessCreationParameters.cpp:

(WebKit::NetworkProcessCreationParameters::encode const):
(WebKit::NetworkProcessCreationParameters::decode):
(WebKit::NetworkProcessCreationParameters::NetworkProcessCreationParameters): Deleted.

  • NetworkProcess/NetworkProcessCreationParameters.h:
  • NetworkProcess/NetworkSession.cpp:

(WebKit::NetworkSession::NetworkSession):

  • NetworkProcess/cache/NetworkCache.cpp:

(WebKit::NetworkCache::Cache::open):
(WebKit::NetworkCache::Cache::Cache):

  • NetworkProcess/cache/NetworkCache.h:

(WebKit::NetworkCache::Cache::storageDirectory):

  • NetworkProcess/cocoa/NetworkProcessCocoa.mm:

(WebKit::NetworkProcess::platformInitializeNetworkProcessCocoa):

  • UIProcess/API/APIProcessPoolConfiguration.cpp:

(API::ProcessPoolConfiguration::copy):
(API::ProcessPoolConfiguration::createWithWebsiteDataStoreConfiguration): Deleted.
(API::ProcessPoolConfiguration::ProcessPoolConfiguration): Deleted.
(API::ProcessPoolConfiguration::~ProcessPoolConfiguration): Deleted.

  • UIProcess/API/APIProcessPoolConfiguration.h:
  • UIProcess/API/glib/WebKitWebContext.cpp:

(webkitWebContextConstructed):
(webkit_web_context_set_disk_cache_directory):
(websiteDataStoreConfigurationForWebProcessPoolConfiguration): Deleted.

  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::ensureNetworkProcess):
(WebKit::WebProcessPool::resolvePathsForSandboxExtensions):
(WebKit::WebProcessPool::webProcessDataStoreParameters):

  • UIProcess/WebProcessPool.h:
  • UIProcess/WebsiteData/WebsiteDataStore.cpp:

(WebKit::WebsiteDataStore::processPools const):

  • UIProcess/WebsiteData/WebsiteDataStoreConfiguration.h:
1:10 PM Changeset in webkit [250142] by Keith Rollin
  • 8 edits in trunk/Source

Remove some support for < iOS 13
https://bugs.webkit.org/show_bug.cgi?id=202032
<rdar://problem/55548468>

Reviewed by Alex Christensen.

Remove some support for iOS versions less than 13.0.

Update conditionals that reference IPHONE_OS_VERSION_MIN_REQUIRED
and
IPHONE_OS_VERSION_MAX_ALLOWED, assuming that they both have
values >= 130000. This means that expressions like
"IPHONE_OS_VERSION_MIN_REQUIRED < 101300" are always False and
"
IPHONE_OS_VERSION_MIN_REQUIRED >= 101300" are always True.

This removal is part of a series of patches effecting the removal of
dead code for old versions of iOS. This particular pass involves
changes in which Dan Bates was involved. These changes are isolated
from other similar changes in order to facilitate the reviewing
process.

Source/WebCore:

No new tests -- no new or changed functionality.

  • platform/network/cf/ResourceRequestCFNet.cpp:

(WebCore::ResourceRequest::doUpdatePlatformRequest):
(WebCore::ResourceRequest::doUpdateResourceRequest):

  • platform/network/cocoa/CookieCocoa.mm:

(WebCore::Cookie::operator NSHTTPCookie * _Nullable const):

  • platform/network/cocoa/ResourceRequestCocoa.mm:

(WebCore::ResourceRequest::doUpdateResourceRequest):
(WebCore::ResourceRequest::doUpdatePlatformRequest):

Source/WebKit:

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView _interpretKeyEvent:isCharEvent:]):

Source/WebKitLegacy/mac:

  • WebView/WebHTMLView.mm:

(-[WebHTMLView _handleEditingKeyEvent:]):

12:47 PM Changeset in webkit [250141] by Adrian Perez de Castro
  • 1 copy in releases/WPE WebKit/webkit-2.26.0

WPE WebKit 2.26.0

12:46 PM Changeset in webkit [250140] by Adrian Perez de Castro
  • 4 edits in releases/WebKitGTK/webkit-2.26

Unreviewed. Update OptionsWPE.cmake and NEWS for the 2.26.0 release

.:

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

Source/WebKit:

  • wpe/NEWS: Add release notes for 2.26.0
12:39 PM Changeset in webkit [250139] by Truitt Savell
  • 66 edits
    1 move
    15 deletes in trunk

Unreviewed, rolling out r250114.

Broke ~16 webgpu/ tests on Mojave wk2

Reverted changeset:

"Web Inspector: Canvas: show WebGPU shader pipelines"
https://bugs.webkit.org/show_bug.cgi?id=201675
https://trac.webkit.org/changeset/250114

12:31 PM Changeset in webkit [250138] by Keith Rollin
  • 6 edits in trunk

Remove some support for < iOS 13
https://bugs.webkit.org/show_bug.cgi?id=201973
<rdar://problem/55506966>

Reviewed by Alex Christensen.

Remove some support for iOS versions less than 13.0.

Update conditionals that reference IPHONE_OS_VERSION_MIN_REQUIRED
and
IPHONE_OS_VERSION_MAX_ALLOWED, assuming that they both have
values >= 130000. This means that expressions like
"IPHONE_OS_VERSION_MIN_REQUIRED < 101300" are always False and
"
IPHONE_OS_VERSION_MIN_REQUIRED >= 101300" are always True.

This removal is part of a series of patches effecting the removal of
dead code for old versions of iOS. This particular pass involves
changes in which Chris Dumez was involved. These changes are isolated
from other similar changes in order to facilitate the reviewing
process.

Source/WebKit:

  • NetworkProcess/Downloads/cocoa/DownloadCocoa.mm:

(WebKit::Download::resume):

Source/WTF:

  • wtf/FeatureDefines.h:

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:
11:42 AM Changeset in webkit [250137] by Alan Coon
  • 3 edits
    4 adds in branches/safari-608-branch

Revert "Revert r247573. rdar://problem/55461395"

11:18 AM Changeset in webkit [250136] by Alan Coon
  • 8 edits in branches/safari-608.2.11.1-branch/Source/WebKit

Apply patch. rdar://problem/55564031

10:24 AM Changeset in webkit [250135] by Alan Coon
  • 7 edits in branches/safari-608.2.11.1-branch/Source

Versioning.

10:21 AM Changeset in webkit [250134] by Alan Coon
  • 3 edits
    4 deletes in branches/safari-608-branch

Revert r247573. rdar://problem/55461395

8:53 AM Changeset in webkit [250133] by Chris Dumez
  • 2 edits in trunk/Source/WebKit

Unreviewed, fix confusing release logging under WebPageProxy::loadRequestWithNavigationShared().

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::loadRequestWithNavigationShared):

8:41 AM Changeset in webkit [250132] by Antti Koivisto
  • 4 edits in trunk/Source/WebCore

Implement Position::upstream and Position::downstream with line layout iterator
https://bugs.webkit.org/show_bug.cgi?id=202043

Reviewed by Zalan Bujtas.

These can eventually work without switching to lineboxes.

  • dom/Position.cpp:

(WebCore::Position::upstream const):
(WebCore::Position::downstream const):

Factor the loops into TextBox::isLastOnLine function.

  • rendering/line/LineLayoutInterfaceTextBoxes.cpp:

(WebCore::LineLayoutInterface::TextBox::isLastOnLine const):

Looking into root boxes is a much more efficient way to figure this out.

(WebCore::LineLayoutInterface::TextBox::isLast const):
(WebCore::LineLayoutInterface::TextBoxIterator::ComplexPath::nextInlineTextBoxInTextOrder const):
(WebCore::LineLayoutInterface::TextBoxIterator::traverseNextInTextOrder):

  • rendering/line/LineLayoutInterfaceTextBoxes.h:
8:40 AM Changeset in webkit [250131] by sbarati@apple.com
  • 2 edits in trunk/JSTests

Unreviewed. Make toctou-having-a-bad-time-new-array.js run for less time because it's timing out on the debug bots.

  • stress/toctou-having-a-bad-time-new-array.js:
8:23 AM Changeset in webkit [250130] by Chris Dumez
  • 2 edits in trunk/Source/WebKit

Regression(r248832): Unable to quicklook HTML files in Mail
https://bugs.webkit.org/show_bug.cgi?id=202012
<rdar://problem/55285295>

Reviewed by Per Arne Vollan.

Follow-up to fix bug in r250110. Now that loadFile() calls
maybeInitializeSandboxExtensionHandle(), it no longer needs to
call assumeReadAccessToBaseURL(). This is because maybeInitializeSandboxExtensionHandle()
already take care of it.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::loadFile):

8:07 AM Changeset in webkit [250129] by commit-queue@webkit.org
  • 6 edits
    1 add in trunk/Source

Implement memory monitoring functions for Linux OS
https://bugs.webkit.org/show_bug.cgi?id=200391

Patch by Paulo Matos <Paulo Matos> on 2019-09-20
Reviewed by Žan Doberšek.

Source/JavaScriptCore:

  • jsc.cpp:

Source/WTF:

  • wtf/PlatformGTK.cmake:
  • wtf/PlatformJSCOnly.cmake:
  • wtf/PlatformWPE.cmake:
  • wtf/linux/ProcessMemoryFootprint.h: Added.

(ProcessMemoryFootprint::now):
(ProcessMemoryFootprint::resetPeak):

7:29 AM WebKitGTK/2.26.x edited by Adrian Perez de Castro
(diff)
6:36 AM Changeset in webkit [250128] by Alan Bujtas
  • 22 edits
    2 copies in trunk/Source/WebCore

[LFC] Introduce LayoutContext class
https://bugs.webkit.org/show_bug.cgi?id=202026
<rdar://problem/55546622>

Reviewed by Antti Koivisto.

Move context related functionality from LayoutState to LayoutContext.
To initiate a layout, create a LayoutContext, pass the current LayoutState object in and call layout().

  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • layout/FormattingContext.cpp:

(WebCore::Layout::FormattingContext::layoutOutOfFlowContent):

  • layout/FormattingContext.h:
  • layout/FormattingContextGeometry.cpp:

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

  • layout/LayoutState.cpp:

(WebCore::Layout::LayoutState::createFormattingStateForFormattingRootIfNeeded):
(WebCore::Layout::LayoutState::updateLayout): Deleted.
(WebCore::Layout::LayoutState::layoutFormattingContextSubtree): Deleted.
(WebCore::Layout::LayoutState::styleChanged): Deleted.
(WebCore::Layout::LayoutState::markNeedsUpdate): Deleted.
(WebCore::Layout::LayoutState::createFormattingContext): Deleted.
(WebCore::Layout::LayoutState::run): Deleted.

  • layout/LayoutState.h:

(WebCore::Layout::LayoutState::hasFormattingState const):
(WebCore::Layout::LayoutState::setQuirksMode):
(WebCore::Layout::LayoutState::inNoQuirksMode const):
(WebCore::Layout::LayoutState::updateAll): Deleted.

  • layout/Verification.cpp:

(WebCore::Layout::LayoutContext::verifyAndOutputMismatchingLayoutTree):
(WebCore::Layout::LayoutState::verifyAndOutputMismatchingLayoutTree const): Deleted.

  • layout/blockformatting/BlockFormattingContext.cpp:

(WebCore::Layout::BlockFormattingContext::layoutFormattingContextRoot):

  • layout/blockformatting/BlockFormattingContextGeometry.cpp:

(WebCore::Layout::BlockFormattingContext::Geometry::intrinsicWidthConstraints):

  • layout/blockformatting/BlockInvalidation.cpp:

(WebCore::Layout::computeUpdateType):
(WebCore::Layout::computeUpdateTypeForAncestor):
(WebCore::Layout::BlockInvalidation::invalidate):

  • layout/blockformatting/BlockInvalidation.h:
  • layout/displaytree/DisplayBox.h:
  • layout/inlineformatting/InlineFormattingContext.cpp:

(WebCore::Layout::InlineFormattingContext::computeIntrinsicWidthForFormattingRoot):
(WebCore::Layout::InlineFormattingContext::layoutFormattingContextRoot):

  • layout/inlineformatting/InlineInvalidation.cpp:

(WebCore::Layout::InlineInvalidation::invalidate):

  • layout/inlineformatting/InlineInvalidation.h:
  • layout/layouttree/LayoutTreeBuilder.cpp:

(WebCore::Layout::printLayoutTreeForLiveDocuments):

  • layout/tableformatting/TableFormattingContext.cpp:

(WebCore::Layout::TableFormattingContext::layoutTableCellBox):
(WebCore::Layout::TableFormattingContext::computePreferredWidthForColumns):

  • layout/tableformatting/TableInvalidation.cpp:

(WebCore::Layout::TableInvalidation::invalidate):

  • layout/tableformatting/TableInvalidation.h:
  • page/FrameViewLayoutContext.cpp:

(WebCore::layoutUsingFormattingContext):

4:00 AM Changeset in webkit [250127] by commit-queue@webkit.org
  • 76 edits
    1 copy
    63 adds in trunk/LayoutTests

Synchronize MathML WPT tests against upstream
https://bugs.webkit.org/show_bug.cgi?id=201975

Patch by Rob Buis <rbuis@igalia.com> on 2019-09-20
Reviewed by Frédéric Wang.

LayoutTests/imported/w3c:

Sync is based on a3a4442b04c37155f81c4ad4ae9c06339f76ce14.

  • resources/import-expectations.json:
  • web-platform-tests/mathml/presentation-markup/direction/direction-006.html:
  • web-platform-tests/mathml/presentation-markup/direction/direction-007.html:
  • web-platform-tests/mathml/presentation-markup/direction/direction-008.html:
  • web-platform-tests/mathml/presentation-markup/direction/direction-009.html:
  • web-platform-tests/mathml/presentation-markup/direction/direction-010.html:
  • web-platform-tests/mathml/presentation-markup/fractions/frac-bar-002-expected.html: Added.
  • web-platform-tests/mathml/presentation-markup/fractions/frac-bar-002.html: Added.
  • web-platform-tests/mathml/presentation-markup/fractions/frac-default-padding-expected.html: Added.
  • web-platform-tests/mathml/presentation-markup/fractions/frac-default-padding.html: Added.
  • web-platform-tests/mathml/presentation-markup/fractions/frac-rendering-from-in-flow-expected.html: Added.
  • web-platform-tests/mathml/presentation-markup/fractions/frac-rendering-from-in-flow.html: Added.
  • web-platform-tests/mathml/presentation-markup/fractions/w3c-import.log:
  • web-platform-tests/mathml/presentation-markup/menclose/legacy-menclose-radical-notation-expected.html: Added.
  • web-platform-tests/mathml/presentation-markup/menclose/legacy-menclose-radical-notation.html: Added.
  • web-platform-tests/mathml/presentation-markup/menclose/w3c-import.log: Copied from LayoutTests/imported/w3c/web-platform-tests/mathml/presentation-markup/mrow/w3c-import.log.
  • web-platform-tests/mathml/presentation-markup/mrow/legacy-mrow-like-elements-001-expected.txt: Added.
  • web-platform-tests/mathml/presentation-markup/mrow/legacy-mrow-like-elements-001.html: Added.
  • web-platform-tests/mathml/presentation-markup/mrow/legacy-mrow-like-elements-002-expected.html: Added.
  • web-platform-tests/mathml/presentation-markup/mrow/legacy-mrow-like-elements-002.html: Added.
  • web-platform-tests/mathml/presentation-markup/mrow/legacy-mstyle-attributes-expected.txt: Added.
  • web-platform-tests/mathml/presentation-markup/mrow/legacy-mstyle-attributes.html: Added.
  • web-platform-tests/mathml/presentation-markup/mrow/w3c-import.log:
  • web-platform-tests/mathml/presentation-markup/operators/embellished-operator-001-expected.txt:
  • web-platform-tests/mathml/presentation-markup/operators/embellished-operator-001.html:
  • web-platform-tests/mathml/presentation-markup/operators/embellished-operator-002-expected.txt:
  • web-platform-tests/mathml/presentation-markup/operators/embellished-operator-002.html:
  • web-platform-tests/mathml/presentation-markup/operators/mo-form-dynamic.html:
  • web-platform-tests/mathml/presentation-markup/operators/mo-form-fallback.html:
  • web-platform-tests/mathml/presentation-markup/operators/mo-form-minus-plus.html:
  • web-platform-tests/mathml/presentation-markup/operators/mo-form.html:
  • web-platform-tests/mathml/presentation-markup/operators/mo-movablelimits-default.html:
  • web-platform-tests/mathml/presentation-markup/operators/mo-movablelimits-dynamic.html:
  • web-platform-tests/mathml/presentation-markup/operators/mo-movablelimits-from-in-flow-expected.html: Added.
  • web-platform-tests/mathml/presentation-markup/operators/mo-movablelimits-from-in-flow.html: Added.
  • web-platform-tests/mathml/presentation-markup/operators/mo-movablelimits.html:
  • web-platform-tests/mathml/presentation-markup/operators/mo-paint-lspace-rspace.html:
  • web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-001-expected.txt: Added.
  • web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-001.html: Added.
  • web-platform-tests/mathml/presentation-markup/operators/w3c-import.log:
  • web-platform-tests/mathml/presentation-markup/radicals/radical-rendering-from-in-flow-expected.html: Added.
  • web-platform-tests/mathml/presentation-markup/radicals/radical-rendering-from-in-flow.html: Added.
  • web-platform-tests/mathml/presentation-markup/radicals/w3c-import.log:
  • web-platform-tests/mathml/presentation-markup/scripts/cramped-001-expected.txt: Added.
  • web-platform-tests/mathml/presentation-markup/scripts/cramped-001.html: Added.
  • web-platform-tests/mathml/presentation-markup/scripts/w3c-import.log:
  • web-platform-tests/mathml/presentation-markup/spaces/space-like-004-expected.txt:
  • web-platform-tests/mathml/presentation-markup/spaces/space-like-004.html:
  • web-platform-tests/mathml/presentation-markup/tables/table-001-expected.txt: Added.
  • web-platform-tests/mathml/presentation-markup/tables/table-001.html: Added.
  • web-platform-tests/mathml/presentation-markup/tables/table-002-expected.txt: Added.
  • web-platform-tests/mathml/presentation-markup/tables/table-002.html: Added.
  • web-platform-tests/mathml/presentation-markup/tables/w3c-import.log:
  • web-platform-tests/mathml/relations/css-styling/attribute-mapping-001.html:
  • web-platform-tests/mathml/relations/css-styling/displaystyle-011.html:
  • web-platform-tests/mathml/relations/css-styling/displaystyle-012.html:
  • web-platform-tests/mathml/relations/css-styling/displaystyle-013.html:
  • web-platform-tests/mathml/relations/css-styling/displaystyle-014.html:
  • web-platform-tests/mathml/relations/css-styling/displaystyle-015.html:
  • web-platform-tests/mathml/relations/css-styling/ignored-properties-001-expected.txt: Added.
  • web-platform-tests/mathml/relations/css-styling/ignored-properties-001.html: Added.
  • web-platform-tests/mathml/relations/css-styling/mathsize-attribute-css-keywords.html:
  • web-platform-tests/mathml/relations/css-styling/mathsize-attribute-legacy-values.html:
  • web-platform-tests/mathml/relations/css-styling/mathvariant-auto.html:
  • web-platform-tests/mathml/relations/css-styling/mathvariant-bold-fraktur.html:
  • web-platform-tests/mathml/relations/css-styling/mathvariant-bold-italic.html:
  • web-platform-tests/mathml/relations/css-styling/mathvariant-bold-sans-serif.html:
  • web-platform-tests/mathml/relations/css-styling/mathvariant-bold-script.html:
  • web-platform-tests/mathml/relations/css-styling/mathvariant-bold.html:
  • web-platform-tests/mathml/relations/css-styling/mathvariant-double-struck.html:
  • web-platform-tests/mathml/relations/css-styling/mathvariant-fraktur.html:
  • web-platform-tests/mathml/relations/css-styling/mathvariant-initial.html:
  • web-platform-tests/mathml/relations/css-styling/mathvariant-italic.html:
  • web-platform-tests/mathml/relations/css-styling/mathvariant-looped.html:
  • web-platform-tests/mathml/relations/css-styling/mathvariant-monospace.html:
  • web-platform-tests/mathml/relations/css-styling/mathvariant-sans-serif-bold-italic.html:
  • web-platform-tests/mathml/relations/css-styling/mathvariant-sans-serif-italic.html:
  • web-platform-tests/mathml/relations/css-styling/mathvariant-sans-serif.html:
  • web-platform-tests/mathml/relations/css-styling/mathvariant-script.html:
  • web-platform-tests/mathml/relations/css-styling/mathvariant-stretched.html:
  • web-platform-tests/mathml/relations/css-styling/mathvariant-tailed.html:
  • web-platform-tests/mathml/relations/css-styling/not-participating-to-parent-layout.html:
  • web-platform-tests/mathml/relations/css-styling/padding-border-margin/border-002.html:
  • web-platform-tests/mathml/relations/css-styling/padding-border-margin/margin-002.html:
  • web-platform-tests/mathml/relations/css-styling/padding-border-margin/padding-002.html:
  • web-platform-tests/mathml/relations/css-styling/w3c-import.log:
  • web-platform-tests/mathml/relations/css-styling/width-height-001.html:
  • web-platform-tests/mathml/relations/html5-tree/clipboard-event-handlers.tentative-expected.txt:
  • web-platform-tests/mathml/relations/html5-tree/clipboard-event-handlers.tentative.html:
  • web-platform-tests/mathml/relations/html5-tree/css-inline-style-dynamic.tentative-expected.html:
  • web-platform-tests/mathml/relations/html5-tree/display-2-expected.html: Added.
  • web-platform-tests/mathml/relations/html5-tree/display-2.html: Added.
  • web-platform-tests/mathml/relations/html5-tree/math-global-event-handlers.tentative-expected.txt:
  • web-platform-tests/mathml/relations/html5-tree/math-global-event-handlers.tentative.html:
  • web-platform-tests/mathml/relations/html5-tree/tabindex-001-expected.txt: Added.
  • web-platform-tests/mathml/relations/html5-tree/tabindex-001.html: Added.
  • web-platform-tests/mathml/relations/html5-tree/tabindex-002-expected.txt: Added.
  • web-platform-tests/mathml/relations/html5-tree/tabindex-002.html: Added.
  • web-platform-tests/mathml/relations/html5-tree/w3c-import.log:
  • web-platform-tests/mathml/support/box-navigation.js: Added.

(IsInFlow):
(firstInFlowChild):
(nextInFlowSibling):
(previousInFlowSibling):

  • web-platform-tests/mathml/support/feature-detection.js:

(MathMLFeatureDetection.string_appeared_here):
(MathMLFeatureDetection.has_mspace): Deleted.
(MathMLFeatureDetection.has_operator_spacing): Deleted.
(MathMLFeatureDetection.has_mfrac): Deleted.
(MathMLFeatureDetection.has_msqrt): Deleted.
(MathMLFeatureDetection.has_menclose): Deleted.
(MathMLFeatureDetection.has_dir): Deleted.

  • web-platform-tests/mathml/support/mathml-fragments.js:

(FragmentHelper.createElement):
(FragmentHelper.forceNonEmptyElement):
(FragmentHelper.forceNonEmptyDescendants):

  • web-platform-tests/mathml/support/operator-dictionary.js: Added.

(async.fetchOperatorDictionary):
(splitKey):
(spaceIndexToLength):
(defaultPropertyValue):

  • web-platform-tests/mathml/support/operator-dictionary.json: Added.
  • web-platform-tests/mathml/support/w3c-import.log:
  • web-platform-tests/mathml/tools/mathvariant-transforms.py:
  • web-platform-tests/mathml/tools/operator-dictionary.py: Added.

(parseHexaNumber):
(parseHexaSequence):
(parseSpaces):
(parseProperties):
(buildKeyAndValueFrom):
(createSizeVariants):
(createStretchy):

  • web-platform-tests/mathml/tools/operator-dictionary.xsl: Added.
  • web-platform-tests/mathml/tools/utils/misc.py:
  • web-platform-tests/mathml/tools/utils/w3c-import.log:
  • web-platform-tests/mathml/tools/w3c-import.log:

LayoutTests:

  • TestExpectations:
  • platform/gtk/imported/w3c/web-platform-tests/mathml/presentation-markup/mrow/legacy-mrow-like-elements-001-expected.txt: Added.
  • platform/gtk/imported/w3c/web-platform-tests/mathml/presentation-markup/mrow/legacy-mstyle-attributes-expected.txt: Added.
  • platform/gtk/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/dir-mo-expected.txt: Added.
  • platform/gtk/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-001-expected.txt: Added.
  • platform/gtk/imported/w3c/web-platform-tests/mathml/presentation-markup/scripts/cramped-001-expected.txt: Added.
  • platform/gtk/imported/w3c/web-platform-tests/mathml/presentation-markup/tables/table-001-expected.txt: Added.
  • platform/gtk/imported/w3c/web-platform-tests/mathml/presentation-markup/tables/table-002-expected.txt: Added.
  • platform/gtk/imported/w3c/web-platform-tests/mathml/relations/css-styling/ignored-properties-001-expected.txt: Added.
  • platform/gtk/imported/w3c/web-platform-tests/mathml/relations/html5-tree/tabindex-001-expected.txt: Added.
  • platform/gtk/imported/w3c/web-platform-tests/mathml/relations/html5-tree/tabindex-002-expected.txt: Added.
  • platform/ios-wk1/imported/w3c/web-platform-tests/matml/presentation-markup/operators/operator-dictionary-001-expected.txt: Added.
  • platform/ios-wk1/imported/w3c/web-platform-tests/matml/relations/css-styling/ignored-properties-001-expected.txt: Added.
  • platform/mac/TestExpectations:
  • tests-options.json:
1:45 AM Changeset in webkit [250126] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WTF

UI process crash when using callOnMainThread() after the main thread dispatcher has been destroyed
https://bugs.webkit.org/show_bug.cgi?id=197266

Patch by Libor Bukata <libor.bukata@oracle.com> on 2019-09-20
Reviewed by Carlos Garcia Campos.

  • wtf/generic/MainThreadGeneric.cpp:

(WTF::scheduleDispatchFunctionsOnMainThread):

1:33 AM Changeset in webkit [250125] by jh718.park@samsung.com
  • 2 edits in trunk/Source/WebKit

Unreviewed. Remove duplicated HashMap iteration since r248734.

ASSERT statement already exists for |storageNamespaceID|,
so |HashMap.get| for the parameter is not needed.

  • NetworkProcess/WebStorage/StorageManager.cpp:

(WebKit::StorageManager::destroySessionStorageNamespace):

1:28 AM Changeset in webkit [250124] by Devin Rousso
  • 9 edits in trunk/Source/JavaScriptCore

ASSERT NOT REACHED in Inspector::InjectedScriptModule::ensureInjected() seen with inspector/heap/getRemoteObject.html
https://bugs.webkit.org/show_bug.cgi?id=201713
<rdar://problem/55290349>

Reviewed by Joseph Pecoraro.

Expose the Exception object by leveraging an Expected of JSValue as the return value
instead of using a referenced bool (which wouldn't include any of the exception's info).

  • bindings/ScriptFunctionCall.h:
  • bindings/ScriptFunctionCall.cpp:

(Deprecated::ScriptFunctionCall::call):

  • inspector/InjectedScript.cpp:

(Inspector::InjectedScript::wrapCallFrames const):
(Inspector::InjectedScript::wrapObject const):
(Inspector::InjectedScript::wrapJSONString const):
(Inspector::InjectedScript::wrapTable const):
(Inspector::InjectedScript::previewValue const):
(Inspector::InjectedScript::findObjectById const):
(Inspector::InjectedScript::releaseObjectGroup):

  • inspector/InjectedScriptBase.h:
  • inspector/InjectedScriptBase.cpp:

(Inspector::InjectedScriptBase::callFunctionWithEvalEnabled const):
(Inspector::InjectedScriptBase::makeCall):
(Inspector::InjectedScriptBase::makeAsyncCall):

  • inspector/InjectedScriptManager.h:
  • inspector/InjectedScriptManager.cpp:

(Inspector::InjectedScriptManager::createInjectedScript):
(Inspector::InjectedScriptManager::injectedScriptFor):

  • inspector/InjectedScriptModule.cpp:

(Inspector::InjectedScriptModule::ensureInjected):

12:09 AM Changeset in webkit [250123] by jh718.park@samsung.com
  • 3 edits in trunk/Source/WebKit

Unreviewed. Fix Build warning below since r248734.

warning: unused variable ‘foo’ [-Wunused-variable]

  • NetworkProcess/WebStorage/StorageManager.cpp:

(WebKit::StorageManager::destroySessionStorageNamespace):

  • NetworkProcess/WebStorage/StorageManagerSet.cpp:

(WebKit::StorageManagerSet::add):
(WebKit::StorageManagerSet::waitUntilTasksFinished):

Sep 19, 2019:

10:32 PM Changeset in webkit [250122] by mitz@apple.com
  • 9 copies
    1 add in releases/Apple/Safari 13.0

Added a tag for Safari 13.0.

9:55 PM Changeset in webkit [250121] by Brent Fulgham
  • 13 edits
    2 adds in trunk/Tools

[FTW] Enable WebKitTestRunner build
https://bugs.webkit.org/show_bug.cgi?id=201996

Reviewed by Fujii Hironori.

It's time to start getting the test system up and running for FTW.

This patch does the following:

  1. Adds relevant CMake changes to get things building.
  2. Adds a "--ftw" flag to the build scripts that will trigger a relevant build.
  3. Updates 'webkitpy' to recognize the 'ftw' port.

Note: Pixel tests are not yet supported.

  • PlatformFTW.cmake: Build the WK2 test runner.
  • Scripts/build-webkit: Update to recognize the FTW port.
  • Scripts/webkitdirs.pm: Ditto.
  • Scripts/webkitperl/webkitdirs_unittest/extractNonMacOSHostConfiguration.pl: Ditto.
  • Scripts/webkitpy/common/config/ports.py: Ditto.
  • Scripts/webkitpy/common/config/ports_unittest.py: Ditto.
  • Scripts/webkitpy/common/version_name_map.py: Ditto.
  • Scripts/webkitpy/port/factory.py: Ditto.
  • Scripts/webkitpy/port/win.py: Ditto.
  • WebKitTestRunner/InjectedBundle/InjectedBundlePage.cpp:

(WTR::InjectedBundlePage::dumpDOMAsWebArchive): Don't build or run this method
on Windows.

  • WebKitTestRunner/PlatformFTW.cmake: Added.
  • WebKitTestRunner/PlatformWebView.h:
  • WebKitTestRunner/win/PlatformWebViewWin.cpp:
  • WebKitTestRunner/win/TestInvocationDirect2D.cpp: Added.

(WTR::TestInvocation::dumpPixelsAndCompareWithExpected): Add stub implementation.

9:47 PM Changeset in webkit [250120] by jh718.park@samsung.com
  • 2 edits in trunk/Source/WebCore

Unreviewed. Fix Build error below since r248879.

warning: unused variable ‘canvas’ [-Wunused-variable]

No new tests, no new behavioral changes.

  • html/canvas/GPUBasedCanvasRenderingContext.cpp:

(WebCore::GPUBasedCanvasRenderingContext::notifyCanvasContentChanged):

8:51 PM Changeset in webkit [250119] by Brent Fulgham
  • 4 edits in trunk/Source/WebKit

[FTW, WinCairo] Support running tests in Release mode
https://bugs.webkit.org/show_bug.cgi?id=202021

Reviewed by Don Olmstead.

In Bug 201597, we added new features to better lock down JSC features in the
potentially untrusted WebContent process.

Unfortunately, this change included XPC Dictionary items used at startup to
lock down JSC features before entering the main execution of the process. These
changes were not done for the WinCairo or FTW ports.

We need to pass the state of the JIT and whether to enable certain JSC features
at process launch. Since the XPC mechanisms we use on macOS and iOS do not exist
on Windows, I am implementing them as command-line flags.

-configure-jsc-for-testing: Sets the JSC in testing mode.
-disable-jit: Disables the JIT.

See r249808 for the equivalent changes on macOS and iOS.

  • PlatformFTW.cmake: Add some missing header files needed when building tests.
  • Shared/win/AuxiliaryProcessMainWin.cpp:

(WebKit::AuxiliaryProcessMainBase::parseCommandLine):

  • UIProcess/Launcher/win/ProcessLauncherWin.cpp:

(WebKit::ProcessLauncher::launchProcess):

8:36 PM Changeset in webkit [250118] by Joseph Pecoraro
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: searching in overrides doesn't work
https://bugs.webkit.org/show_bug.cgi?id=202020

Reviewed by Devin Rousso.

  • UserInterface/Views/SourceCodeTextEditor.js:

(WI.SourceCodeTextEditor.prototype.customPerformSearch):
Do not go to agents for a local resource. Search locally in the TextEditor.

8:18 PM Changeset in webkit [250117] by Fujii Hironori
  • 8 edits in trunk/Tools

[Win][MiniBrowser] Use _com_ptr_t methods instead of calling QueryInterface explictly
https://bugs.webkit.org/show_bug.cgi?id=201976

Reviewed by Don Olmstead.

This change consists of three refactorings:

  1. Replaced explicit QueryInterface with _com_ptr_t methods
  2. Replaced typedef with _COM_SMARTPTR_TYPEDEF macro
  3. Replaced WebCore's COMPtr with _com_ptr_t because it is not a public WebKit API
  • MiniBrowser/win/MiniBrowserWebHost.cpp:

(MiniBrowserWebHost::didFirstLayoutInFrame): Deleted.

  • MiniBrowser/win/MiniBrowserWebHost.h:

(MiniBrowserWebHost::didFirstLayoutInFrame):

  • MiniBrowser/win/PrintWebUIDelegate.cpp:

(getHandleFromWebView):
(PrintWebUIDelegate::webViewPrintingMarginRect):
(PrintWebUIDelegate::runModal):
(PrintWebUIDelegate::createModalDialog):

  • MiniBrowser/win/WebKitLegacyBrowserWindow.cpp:

(WebKitLegacyBrowserWindow::init):
(WebKitLegacyBrowserWindow::setToDefaultPreferences):
(WebKitLegacyBrowserWindow::showLastVisitedSites):
(WebKitLegacyBrowserWindow::reload):
(WebKitLegacyBrowserWindow::resetZoom):
(WebKitLegacyBrowserWindow::zoomIn):
(WebKitLegacyBrowserWindow::zoomOut):
(WebKitLegacyBrowserWindow::showLayerTree):
(WebKitLegacyBrowserWindow::print):

  • MiniBrowser/win/WebKitLegacyBrowserWindow.h:

(WebKitLegacyBrowserWindow::privatePreferences):

  • MiniBrowser/win/WinMain.cpp:

(wWinMain):

  • MiniBrowser/win/stdafx.h:
7:31 PM Changeset in webkit [250116] by ysuzuki@apple.com
  • 13 edits
    1 add in trunk

[JSC] DFG op_call_varargs should not assume that one-previous-local of freeReg is usable
https://bugs.webkit.org/show_bug.cgi?id=202014

Reviewed by Saam Barati.

JSTests:

  • stress/call-varargs-inlining-should-not-clobber-previous-to-free-register.js: Added.

(v0):

Source/JavaScriptCore:

Let's look into the bytecode generated by the test.

[ 0] enter
[ 1] get_scope loc4
[ 3] mov loc5, loc4
[ 6] check_traps
[ 7] mov loc6, callee
[ 10] create_direct_arguments loc7
[ 12] to_this this
[ 15] mov loc8, loc7
[ 18] mov loc9, loc6
[ 21] mov loc12, Undefined(const0)
[ 24] get_by_id loc11, loc6, 0
[ 29] jneq_ptr loc11, ApplyFunction, 18(->47)
[ 34] mov loc11, loc6
[ 37] call_varargs loc11, loc11, this, loc8, loc13, 0
[ 45] jmp 17(->62)
[ 47] mov loc16, loc6
[ 50] mov loc15, this
[ 53] mov loc14, loc8
[ 56] call loc11, loc11, 3, 22
...

call_varargs uses loc13 as firstFreeReg (first usable bottom register in the current stack-frame to spread variadic arguments after this).
This is correct. And call_varargs uses |this| as this argument for the call_varargs. This |this| argument is not in a region starting from loc13.
And it is not in the previous place to loc13 (|this| is not loc12).

On the other hand, DFG::ByteCodeParser's inlining path is always assuming that the previous to firstFreeReg is usable and part of arguments.
But this is wrong. loc12 in the above bytecode is used for [ 56] call loc11, loc11, 3, 22's argument later, and this call assumes
that loc12 is not clobbered by call_varargs. But DFG and FTL clobbers it.

The test is recursively calling the same function, and we inline the same function one-level. And stack-overflow error happens when inlined
CallForwardVarargs (from op_call_varargs) is called. FTL recovers the frames, and at this point, outer function's loc12 is recovered to garbage since
LoadVarargs clobbers it. And we eventually use it and crash.

60:<!0:-> LoadVarargs(Check:Untyped:Kill:@30, MustGen, start = loc13, count = loc15, machineStart = loc7, machineCount = loc9, offset = 0, mandatoryMinimum = 0, limit = 2, R:World, W:Stack(-16),Stack(-14),Stack(-13),Heap, Exits, ClobbersExit, bc#37, ExitValid)

This LoadVarargs clobbers loc12, loc13, and loc15 while loc12 is used.

In all the tiers, op_call_varargs first allocates enough region to hold varargs including |this|. And we store |this| value to a correct place.
DFG should not assume that the previous register to firstFreeReg is used for |this|.

This patch fixes DFG::ByteCodeParser's stack region calculation for op_call_varargs inlining. And we rename maxNumArguments to maxArgumentCountIncludingThis to
represent that maxArgumentCountIncludingThis includes |this| count.

  • bytecode/CallLinkInfo.cpp:

(JSC::CallLinkInfo::setMaxArgumentCountIncludingThis):
(JSC::CallLinkInfo::setMaxNumArguments): Deleted.

  • bytecode/CallLinkInfo.h:

(JSC::CallLinkInfo::addressOfMaxArgumentCountIncludingThis):
(JSC::CallLinkInfo::maxArgumentCountIncludingThis):
(JSC::CallLinkInfo::addressOfMaxNumArguments): Deleted.
(JSC::CallLinkInfo::maxNumArguments): Deleted.

  • bytecode/CallLinkStatus.cpp:

(JSC::CallLinkStatus::computeFor):
(JSC::CallLinkStatus::dump const):

  • bytecode/CallLinkStatus.h:

(JSC::CallLinkStatus::maxArgumentCountIncludingThis const):
(JSC::CallLinkStatus::maxNumArguments const): Deleted.

  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::handleVarargsInlining):

  • dfg/DFGSpeculativeJIT32_64.cpp:

(JSC::DFG::SpeculativeJIT::emitCall):

  • dfg/DFGSpeculativeJIT64.cpp:

(JSC::DFG::SpeculativeJIT::emitCall):

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileDirectCallOrConstruct):

  • jit/JITCall.cpp:

(JSC::JIT::compileSetupFrame):

  • jit/JITCall32_64.cpp:

(JSC::JIT::compileSetupFrame):

  • jit/JITOperations.cpp:
6:39 PM Changeset in webkit [250115] by jdiggs@igalia.com
  • 2 edits in trunk/Tools

[GTK] Dependency hunspell-en-gb cannot be found on Fedora 30
https://bugs.webkit.org/show_bug.cgi?id=202009

Update package name to hunspell-en-GB.

Reviewed by Carlos Alberto Lopez Perez.

  • gtk/install-dependencies:
6:20 PM Changeset in webkit [250114] by Devin Rousso
  • 66 edits
    6 copies
    1 move
    9 adds in trunk

Web Inspector: Canvas: show WebGPU shader pipelines
https://bugs.webkit.org/show_bug.cgi?id=201675

Reviewed by Joseph Pecoraro.

Source/JavaScriptCore:

  • inspector/protocol/Canvas.json:

Add a ProgramType enum that conveys the type of shader program/pipeline when notifying the
frontend of a new program

Source/WebCore:

Tests: inspector/canvas/requestShaderSource-webgpu.html

inspector/canvas/shaderProgram-add-remove-webgpu.html
inspector/canvas/updateShader-webgpu.html

Create common base classes for WebGPUPipeline and GPUPipeline so that Web Inspector can
instrument both render and compute shader pipelines.

Refactor InspectorShaderProgram to support both WebGLProgram and WebGPUPipeline so
that the same object can be used for all types of shader "program"s.

Keep a copy of each shader module's source, and allow the shader module to be updated.

  • Modules/webgpu/WebGPUDevice.h:
  • Modules/webgpu/WebGPUDevice.cpp:

(WebCore::WebGPUDevice::createShaderModule const):
(WebCore::WebGPUDevice::createRenderPipeline): Added.
(WebCore::WebGPUDevice::createComputePipeline): Added.
(WebCore::WebGPUDevice::createRenderPipeline const): Deleted.
(WebCore::WebGPUDevice::createComputePipeline const): Deleted.

  • Modules/webgpu/WebGPUPipeline.h: Added.

(WebCore::WebGPUPipeline::isRenderPipeline const):
(WebCore::WebGPUPipeline::isComputePipeline const):
(WebCore::WebGPUPipeline::scriptExecutionContext const):

  • Modules/webgpu/WebGPUPipeline.cpp: Added.

(WebCore::WebGPUPipeline::instancesMutex):
(WebCore::WebGPUPipeline::WebGPUPipeline):
(WebCore::WebGPUPipeline::~WebGPUPipeline):

  • platform/graphics/gpu/GPUPipeline.cpp: Added.
  • platform/graphics/gpu/GPUPipeline.h: Added.

(WebCore::GPUPipeline::isRenderPipeline const):
(WebCore::GPUPipeline::isComputePipeline const):

  • Modules/webgpu/WebGPUComputePipeline.idl:
  • Modules/webgpu/WebGPUComputePipeline.h:

(WebCore::WebGPUComputePipeline::computePipeline const): Deleted.

  • Modules/webgpu/WebGPUComputePipeline.cpp:

(WebCore::WebGPUComputePipeline::create):
(WebCore::WebGPUComputePipeline::WebGPUComputePipeline):
(WebCore::WebGPUComputePipeline::recompile): Added.

  • platform/graphics/gpu/GPUComputePipeline.h:

(WebCore::GPUComputePipeline::isComputePipeline): Added.

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

(WebCore::GPUComputePipeline::tryCreate):
(WebCore::GPUComputePipeline::GPUComputePipeline):
(WebCore::GPUComputePipeline::recompile): Added.

  • Modules/webgpu/WebGPURenderPipeline.idl:
  • Modules/webgpu/WebGPURenderPipeline.h:

(WebCore::WebGPURenderPipeline::renderPipeline const): Deleted.

  • Modules/webgpu/WebGPURenderPipeline.cpp:

(WebCore::WebGPURenderPipeline::create):
(WebCore::WebGPURenderPipeline::WebGPURenderPipeline):
(WebCore::WebGPURenderPipeline::recompile): Added.

  • platform/graphics/gpu/GPURenderPipeline.h:

(WebCore::GPURenderPipeline::isRenderPipeline): Added.

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

(WebCore::tryCreateMtlRenderPipelineState):
(WebCore::GPURenderPipeline::tryCreate):
(WebCore::GPURenderPipeline::GPURenderPipeline):
(WebCore::GPURenderPipeline::recompile): Added.

  • Modules/webgpu/WebGPUShaderModule.h:

(WebCore::WebGPUShaderModule::source const): Added.

  • Modules/webgpu/WebGPUShaderModule.cpp:

(WebCore::WebGPUShaderModule::update): Added.

  • Modules/webgpu/WebGPUProgrammableStageDescriptor.h:
  • platform/graphics/gpu/GPUProgrammableStageDescriptor.h:

(WebCore::GPUProgrammableStageDescriptor::GPUProgrammableStageDescriptor):

  • inspector/InspectorShaderProgram.h:
  • inspector/InspectorShaderProgram.cpp:

(WebCore::InspectorShaderProgram::create):
(WebCore::InspectorShaderProgram::InspectorShaderProgram):
(WebCore::InspectorShaderProgram::program const): Added.
(WebCore::InspectorShaderProgram::pipeline const): Added.
(WebCore::shaderForType): Added.
(WebCore::InspectorShaderProgram::requestShaderSource): Added.
(WebCore::InspectorShaderProgram::updateShader): Added.
(WebCore::InspectorShaderProgram::context const): Deleted.
(WebCore::InspectorShaderProgram::shaderForType): Deleted.

  • inspector/agents/InspectorCanvasAgent.h:
  • inspector/agents/InspectorCanvasAgent.cpp:

(WebCore::InspectorCanvasAgent::InspectorCanvasAgent):
(WebCore::InspectorCanvasAgent::discardAgent):
(WebCore::InspectorCanvasAgent::enable):
(WebCore::InspectorCanvasAgent::disable):
(WebCore::InspectorCanvasAgent::requestShaderSource):
(WebCore::InspectorCanvasAgent::updateShader):
(WebCore::InspectorCanvasAgent::setShaderProgramDisabled):
(WebCore::InspectorCanvasAgent::setShaderProgramHighlighted):
(WebCore::InspectorCanvasAgent::frameNavigated):
(WebCore::InspectorCanvasAgent::didCreateWebGLProgram): Added.
(WebCore::InspectorCanvasAgent::willDestroyWebGLProgram): Added.
(WebCore::InspectorCanvasAgent::isWebGLProgramDisabled): Added.
(WebCore::InspectorCanvasAgent::isWebGLProgramHighlighted): Added.
(WebCore::InspectorCanvasAgent::didCreateWebGPUPipeline): Added.
(WebCore::InspectorCanvasAgent::willDestroyWebGPUPipeline): Added.
(WebCore::InspectorCanvasAgent::programDestroyedTimerFired): Added.
(WebCore::InspectorCanvasAgent::reset): Added.
(WebCore::InspectorCanvasAgent::unbindProgram):
(WebCore::InspectorCanvasAgent::findInspectorProgram):
(WebCore::InspectorCanvasAgent::didCreateProgram): Deleted.
(WebCore::InspectorCanvasAgent::willDeleteProgram): Deleted.
(WebCore::InspectorCanvasAgent::isShaderProgramDisabled): Deleted.
(WebCore::InspectorCanvasAgent::isShaderProgramHighlighted): Deleted.
(WebCore::InspectorCanvasAgent::clearCanvasData): Deleted.

  • inspector/InspectorInstrumentation.h:

(WebCore::InspectorInstrumentation::didCreateWebGLProgram): Added.
(WebCore::InspectorInstrumentation::willDestroyWebGLProgram): Added.
(WebCore::InspectorInstrumentation::isWebGLProgramDisabled): Added.
(WebCore::InspectorInstrumentation::isWebGLProgramHighlighted): Added.
(WebCore::InspectorInstrumentation::didCreateWebGPUPipeline): Added.
(WebCore::InspectorInstrumentation::willDestroyWebGPUPipeline): Added.
(WebCore::InspectorInstrumentation::didCreateProgram): Deleted.
(WebCore::InspectorInstrumentation::willDeleteProgram): Deleted.
(WebCore::InspectorInstrumentation::isShaderProgramDisabled): Deleted.
(WebCore::InspectorInstrumentation::isShaderProgramHighlighted): Deleted.

  • inspector/InspectorInstrumentation.cpp:

(WebCore::InspectorInstrumentation::didCreateWebGLProgramImpl): Added.
(WebCore::InspectorInstrumentation::willDestroyWebGLProgramImpl): Added.
(WebCore::InspectorInstrumentation::isWebGLProgramDisabledImpl): Added.
(WebCore::InspectorInstrumentation::isWebGLProgramHighlightedImpl): Added.
(WebCore::InspectorInstrumentation::didCreateWebGPUPipelineImpl): Added.
(WebCore::InspectorInstrumentation::willDestroyWebGPUPipelineImpl): Added.
(WebCore::InspectorInstrumentation::didCreateProgramImpl): Deleted.
(WebCore::InspectorInstrumentation::willDeleteProgramImpl): Deleted.
(WebCore::InspectorInstrumentation::isShaderProgramDisabledImpl): Deleted.
(WebCore::InspectorInstrumentation::isShaderProgramHighlightedImpl): Deleted.

  • html/canvas/WebGLProgram.h:
  • html/canvas/WebGLProgram.cpp:

(WebCore::WebGLProgram::WebGLProgram):
(WebCore::WebGLProgram::~WebGLProgram):

  • html/canvas/WebGLRenderingContextBase.cpp:

(WebCore::InspectorScopedShaderProgramHighlight::showHightlight):
(WebCore::WebGLRenderingContextBase::createProgram):
(WebCore::WebGLRenderingContextBase::deleteProgram):
(WebCore::WebGLRenderingContextBase::drawArrays):
(WebCore::WebGLRenderingContextBase::drawElements):
Rename WebGL program instrumentation points to be less ambiguous.

  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:

Source/WebInspectorUI:

Show WebGPU shader pipelines ("programs") underneath each corresponding WebGPU device.

Allow editing of attached shader modules for each WebGPU shader pipeline, but don't allow
highlighting/disabling, as WebGPU pipelines don't have those capabilities/concepts yet.

  • UserInterface/Protocol/CanvasObserver.js:

(WI.CanvasObserver.prototype.programCreated):

  • UserInterface/Controllers/CanvasManager.js:

(WI.CanvasManager.prototype.programCreated):

  • UserInterface/Models/Canvas.js:

(WI.Canvas.prototype.nextShaderProgramDisplayNumberForProgramType): Added.
(WI.Canvas.prototype.nextShaderProgramDisplayNumber): Deleted.

  • UserInterface/Models/ShaderProgram.js:

(WI.ShaderProgram):
(WI.ShaderProgram.contextTypeSupportsProgramType): Added.
(WI.ShaderProgram.programTypeSupportsShaderType): Added.
(WI.ShaderProgram.prototype.get programType): Added.
(WI.ShaderProgram.prototype.get displayName):
(WI.ShaderProgram.prototype.set disabled):
(WI.ShaderProgram.prototype.requestShaderSource):
(WI.ShaderProgram.prototype.updateShader):
(WI.ShaderProgram.prototype.showHighlight):
(WI.ShaderProgram.prototype.hideHighlight):
(WI.ShaderProgram.prototype.requestVertexShaderSource): Deleted.
(WI.ShaderProgram.prototype.requestFragmentShaderSource): Deleted.
(WI.ShaderProgram.prototype.updateVertexShader): Deleted.
(WI.ShaderProgram.prototype.updateFragmentShader): Deleted.
(WI.ShaderProgram.prototype._requestShaderSource): Deleted.
(WI.ShaderProgram.prototype._updateShader): Deleted.

  • UserInterface/Views/ShaderProgramContentView.js:

(WI.ShaderProgramContentView):
(WI.ShaderProgramContentView.prototype.get navigationItems): Added.
(WI.ShaderProgramContentView.prototype.shown):
(WI.ShaderProgramContentView.prototype.hidden):
(WI.ShaderProgramContentView.prototype.get saveData):
(WI.ShaderProgramContentView.prototype._refreshContent):
(WI.ShaderProgramContentView.prototype._updateShader):
(WI.ShaderProgramContentView.prototype._contentDidChange):

  • UserInterface/Views/ShaderProgramContentView.css:

(.content-view.shader-program > .shader): Added.
(.content-view.shader-program > .shader.compute): Added.
(body[dir=ltr] .content-view.shader-program > .shader.vertex,): Added.
(body[dir=ltr] .content-view.shader-program > .shader.fragment,): Added.
(.content-view.shader-program > .shader + .shader): Added.
(.content-view.shader-program > .shader > header > *): Added.
(.content-view.shader-program > .shader > header > .shader-type): Added.
(@media (prefers-color-scheme: dark) .content-view.shader-program > .shader > header): Added.
(.content-view.shader-program > .text-editor.shader): Deleted.
(body[dir=ltr] .content-view.shader-program > .text-editor.shader.vertex,): Deleted.
(body[dir=ltr] .content-view.shader-program > .text-editor.shader.fragment,): Deleted.
(body[dir=ltr] .content-view.shader-program > .text-editor.shader + .text-editor.shader): Deleted.
(body[dir=rtl] .content-view.shader-program > .text-editor.shader + .text-editor.shader): Deleted.
(.content-view.shader-program > .text-editor.shader > .type-title): Deleted.
(.content-view.shader-program > .text-editor.shader > .CodeMirror): Deleted.

  • UserInterface/Views/CodeMirrorAdditions.js:
  • UserInterface/Views/ShaderProgramTreeElement.js:

(WI.ShaderProgramTreeElement):
(WI.ShaderProgramTreeElement.prototype.onattach):
(WI.ShaderProgramTreeElement.prototype.ondetach):
(WI.ShaderProgramTreeElement.prototype.canSelectOnMouseDown):
(WI.ShaderProgramTreeElement.prototype.populateContextMenu):

  • Localizations/en.lproj/localizedStrings.js:

LayoutTests:

Split existing shader tests into WebGL and WebGPU sub-tests for different platforms.

  • inspector/canvas/requestShaderSource.html:
  • inspector/canvas/requestShaderSource-expected.txt:
  • inspector/canvas/updateShader.html:
  • inspector/canvas/updateShader-expected.txt:
  • inspector/canvas/resources/shaderProgram-utilities-webgpu.js: Added.
  • inspector/canvas/requestShaderSource-webgpu.html: Added.
  • inspector/canvas/requestShaderSource-webgpu-expected.txt: Added.
  • inspector/canvas/shaderProgram-add-remove-webgpu.html: Added.
  • inspector/canvas/shaderProgram-add-remove-webgpu-expected.txt: Added.
  • inspector/canvas/updateShader-webgpu-expected.txt: Added.
  • inspector/canvas/updateShader-webgpu.html: Added.
  • inspector/canvas/resources/shaderProgram-utilities-webgl.js: Renamed from LayoutTests/inspector/canvas/resources/shaderProgram-utilities.js.
  • inspector/canvas/console-record-webgl.html:
  • inspector/canvas/console-record-webgl2.html:
  • inspector/canvas/recording-webgl-frameCount.html:
  • inspector/canvas/recording-webgl-full.html:
  • inspector/canvas/recording-webgl-memoryLimit.html:
  • inspector/canvas/recording-webgl-snapshots.html:
  • inspector/canvas/recording-webgl2-frameCount.html:
  • inspector/canvas/recording-webgl2-full.html:
  • inspector/canvas/recording-webgl2-memoryLimit.html:
  • inspector/canvas/recording-webgl2-snapshots.html:
  • inspector/canvas/requestShaderSource-webgl.html: Added.
  • inspector/canvas/requestShaderSource-webgl-expected.txt: Added.
  • inspector/canvas/setShaderProgramDisabled.html:
  • inspector/canvas/setShaderProgramHighlighted.html:
  • inspector/canvas/shaderProgram-add-remove-webgl.html:
  • inspector/canvas/shaderProgram-add-remove-webgl2.html:
  • inspector/canvas/updateShader-webgl.html: Added.
  • inspector/canvas/updateShader-webgl-expected.txt: Added.
  • platform/gtk/TestExpectations:
  • platform/ios/TestExpectations:
  • platform/mac-wk1/TestExpectations:
  • platform/mac/TestExpectations:
  • platform/win/TestExpectations:
  • platform/wincairo/TestExpectations:
  • platform/wpe/TestExpectations:
5:46 PM Changeset in webkit [250113] by Jonathan Bedard
  • 3 edits in trunk/Tools

results.webkit.org: Collapse results with the same version name
https://bugs.webkit.org/show_bug.cgi?id=201779

Rubber-stamped by Aakash Jain.

  • resultsdbpy/resultsdbpy/view/static/js/configuration.js:

(Configuration.prototype.const.ending.this.version_name.substring):
(Configuration.prototype.toKey): Prefer version_name over version number in key.
(Configuration.prototype.compare): version_name comparison should always override version comparison.
(Configuration.prototype.compareSDKs): Make SDK regex global.
(Configuration.prototype.toParams): Remove E tag on version_name.
(Configuration): Append E tag on the version_name based on the SDK.

  • resultsdbpy/resultsdbpy/view/static/js/timeline.js:

(TimelineFromEndpoint.prototype.toString): Print version number with SDK.

5:29 PM Changeset in webkit [250112] by mark.lam@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

Rename VMInspector::m_list to m_vmList.
https://bugs.webkit.org/show_bug.cgi?id=202015

Reviewed by Yusuke Suzuki.

m_vmList is more descriptive, and this rename helps grep-ability by disambiguating
it from other m_lists in the code base.

  • tools/VMInspector.cpp:

(JSC::VMInspector::add):
(JSC::VMInspector::remove):

  • tools/VMInspector.h:

(JSC::VMInspector::iterate):

5:11 PM Changeset in webkit [250111] by Chris Dumez
  • 4 edits in trunk/Source/WebKit

Add better logging for when the view visibility state changes
https://bugs.webkit.org/show_bug.cgi?id=202008

Reviewed by Geoffrey Garen.

  • UIProcess/ApplicationStateTracker.mm:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::updateActivityState):

  • UIProcess/ios/WebPageProxyIOS.mm:

(WebKit::WebPageProxy::applicationDidEnterBackground):
(WebKit::WebPageProxy::applicationWillEnterForeground):

4:55 PM Changeset in webkit [250110] by Chris Dumez
  • 8 edits in trunk/Source/WebKit

Regression(r248832): Unable to quicklook HTML files in Mail
https://bugs.webkit.org/show_bug.cgi?id=202012
<rdar://problem/55285295>

Reviewed by Geoff Garen and Brent Fulgham.

r248832 inadvertently reverted the fix for Mail that landed in r247400 by not using
the same logic to initialize the sandbox extension if the process had already
finished launching or not. In particular, the new code path that happens on process
launch unconditionally used '/' as resource directory for the sandbox extension if
the client did not provide one. The logic in maybeInitializeSandboxExtensionHandle()
would use the file URL's base URL as resource directory when creating a sandbox
extension for '/' would fail (which it often does).

To address the issue, have the logic that runs on process launch call
maybeInitializeSandboxExtensionHandle() so avoid duplicating code and make sure
both cases now have the Mail fix.

  • UIProcess/AuxiliaryProcessProxy.cpp:

(WebKit::AuxiliaryProcessProxy::didFinishLaunching):

  • UIProcess/AuxiliaryProcessProxy.h:

(WebKit::AuxiliaryProcessProxy::isLaunching const):

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::maybeInitializeSandboxExtensionHandle):
(WebKit::WebPageProxy::loadRequestWithNavigationShared):
(WebKit::WebPageProxy::loadFile):

  • UIProcess/WebPageProxy.h:
  • WebProcess/WebPage/WebPage.messages.in:
4:34 PM Changeset in webkit [250109] by Alan Coon
  • 1 copy in tags/Safari-608.2.11.1.8

Tag Safari-608.2.11.1.8.

4:15 PM Changeset in webkit [250108] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebKit

macCatalyst apps crash under TextCheckingControllerProxy::replaceRelativeToSelection when spell checking
https://bugs.webkit.org/show_bug.cgi?id=202010
<rdar://problem/54974971>

Reviewed by Beth Dakin.

  • WebProcess/WebPage/Cocoa/TextCheckingControllerProxy.mm:

(WebKit::TextCheckingControllerProxy::replaceRelativeToSelection):
relativeReplacementRange is in the coordinate space of the document's text,
not the replacement string. We need to adjust into replacement string
coordinates before slicing the replacement, or we'll throw an exception
trying to read past the end of the string, in the case where the
replacement string is shorter than the replaced string (by more than 2 characters).

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

Reduce the number of required tag bits for the JSValue.
https://bugs.webkit.org/show_bug.cgi?id=201990

Reviewed by Yusuke Suzuki.

We're reducing the number of tag bits to 15. It should just work.

How did we arrive at 15 bits?
============================
Currently, the minimum number of top bits used by doubles is 13-bits. The
highest double bit encoding are:

"negative" pureNaN: starts with 0xfff8
negative infinity: starts with 0xfff0
highest number: starts with 0xffe*
lowest number: starts with 0x0000

Requirements:

  1. We need tags for 2 range of numbers: pointers (all 0s at the top), and ints (all 1s at the top).
  1. We want to be able to add an offset to double bits and ensure that they never end up in the ranges for pointers and ints.
  1. The int tag must be higher than whatever value is produced in the top bits when boxing a double. We have code that relies on this relationship being true and checks if a JSValue is an int by checking if the tag bits are above or equal to the int tag.
  1. We don't want to burn more than 2 CPU registers for tag / mask registers.

Based on the bit encoding of doubles, the full number range of the top 13 bits
are used in valid double numbers. This means the minimum tag bits must be greater
than 13.

Consider a 14-bit tag. The DoubleEncodeOffset will be 1 << 50 i.e. starts with
0x0004. With this encoding,

"negative" pureNaN: maps to 0xfff8 + 0x0004 => 0xfffc

i.e. the top 14 bits are all set. This conflicts with the int number range.

Next, consider a 15-bit tag. The DoubleEncodeOffset will be 1 << 49 i.e. starts
with 0x0002. With this encoding:

"negative" pureNaN: maps to 0xfff8 + 0x0002 => 0xfffa
negative infinity: maps to 0xfff0 + 0x0002 => 0xfff2

i.e. 0xfffe (top 5 bits set) is available to represent ints. This is the encoding
that we'll adopt in this patch.

Alternate encodings schemes to consider in the future:
=====================================================

  1. If we're willing and able to purifyNaN at all the places that can produce a "negative" pureNaN, e.g. after a division, then we can remove the "negative" pureNaN as a valid double bit encoding. With this, we can now box doubles with just a 14-bit tag, and DoubleEncodeOffset will be 1 << 50 i.e. starts with 0x0004.

With this encoding, the top double, negative infinity, is encoded as follows:

negative infinity: maps to 0xfff0 + 0x0004 => 0xfff4

i.e. leaving 0xfffc as the tag for ints.

We didn't adopt this scheme at this time because it adds complexity, and may
have performance impact from the extra purifyNaN checks.

Ref: https://bugs.webkit.org/show_bug.cgi?id=202002

  1. If we're willing to use 3 tag registers or always materialize one of them, we can also adopt a 14-bit tag as follows:

Pointer { 0000:PPPP:PPPP:PPPP

/ 0002:::

Double { ...

\ FFFC:::

Integer { FFFF:0000:IIII:IIII

where ...

NumberMask is 0xfffc: any bits set in the top 14 bits is a number.
IntMask is 0xffff: value is int if value & IntMask == IntMask.
NotCellMask is NumberMask | OtherTag.

Since the highest double is "negative" pureNaN i.e. starts with 0xfff8, adding
a DoubleEncodeOffset of 1<<50 (starts with 0x0004) produces 0xfffc which is
still less than 0xffff.

We didn't adopt this scheme at this time because it adds complexity and may
have a performance impact from either burning another register, or materializing
the 3rd mask.

Ref: https://bugs.webkit.org/show_bug.cgi?id=202005

  • runtime/JSCJSValue.h:
2:46 PM Changeset in webkit [250106] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit

WebStorageNamespaceProvider / StorageNamespaceImpl no longer need SessionIDs
https://bugs.webkit.org/show_bug.cgi?id=201922
<rdar://problem/55505906>

Patch by Yury Semikhatsky <yurys@chromium.org> on 2019-09-19
Reviewed by Chris Dumez.

Fix GTK Debug compilation after https://trac.webkit.org/changeset/250083:
../../Source/WebKit/WebProcess/WebStorage/WebStorageNamespaceProvider.cpp:75:55: error: no member named 'singleton' in namespace 'WebCore::Process'
ASSERT_UNUSED(sessionID, sessionID == WebProcess::singleton().sessionID());


  • WebProcess/WebStorage/WebStorageNamespaceProvider.cpp:
2:34 PM Changeset in webkit [250105] by Ryan Haddad
  • 2 edits in trunk/Tools

REGRESSION: [iOS 13?] TestWebKitAPI.SharedBufferTest.tryCreateArrayBufferLargeSegments is failing
https://bugs.webkit.org/show_bug.cgi?id=201902

Unreviewed test gardening.

  • TestWebKitAPI/Tests/WebCore/SharedBuffer.cpp: Disable the test on iOS.
2:19 PM Changeset in webkit [250104] by Chris Dumez
  • 40 edits in trunk/Source

WorkerGlobalScope does not need a SessionID
https://bugs.webkit.org/show_bug.cgi?id=201991

Reviewed by Alex Christensen.

WorkerGlobalScope does not need a SessionID, now that we have a single session
per WebProcess.

Source/WebCore:

  • dom/Document.cpp:

(WebCore::Document::resume):
(WebCore::Document::privateBrowsingStateDidChange):

  • dom/Document.h:
  • dom/ScriptExecutionContext.h:
  • loader/DocumentLoader.cpp:

(WebCore::DocumentLoader::matchRegistration):
(WebCore::DocumentLoader::commitData):
(WebCore::DocumentLoader::registerTemporaryServiceWorkerClient):
(WebCore::DocumentLoader::unregisterTemporaryServiceWorkerClient):

  • testing/Internals.cpp:

(WebCore::Internals::serviceWorkerClientIdentifier const):
(WebCore::Internals::storeRegistrationsOnDisk):
(WebCore::Internals::hasServiceWorkerRegistration):
(WebCore::Internals::terminateServiceWorker):
(WebCore::Internals::hasServiceWorkerConnection):

  • workers/DedicatedWorkerGlobalScope.cpp:

(WebCore::DedicatedWorkerGlobalScope::create):
(WebCore::DedicatedWorkerGlobalScope::DedicatedWorkerGlobalScope):

  • workers/DedicatedWorkerGlobalScope.h:
  • workers/DedicatedWorkerThread.cpp:

(WebCore::DedicatedWorkerThread::DedicatedWorkerThread):
(WebCore::DedicatedWorkerThread::createWorkerGlobalScope):

  • workers/DedicatedWorkerThread.h:
  • workers/Worker.cpp:

(WebCore::Worker::notifyFinished):

  • workers/WorkerGlobalScope.cpp:

(WebCore::WorkerGlobalScope::WorkerGlobalScope):

  • workers/WorkerGlobalScope.h:
  • workers/WorkerGlobalScopeProxy.h:
  • workers/WorkerMessagingProxy.cpp:

(WebCore::WorkerMessagingProxy::startWorkerGlobalScope):

  • workers/WorkerMessagingProxy.h:
  • workers/WorkerThread.cpp:

(WebCore::WorkerThreadStartupData::WorkerThreadStartupData):
(WebCore::WorkerThread::WorkerThread):
(WebCore::WorkerThread::workerThread):

  • workers/WorkerThread.h:
  • workers/service/ServiceWorker.cpp:

(WebCore::ServiceWorker::postMessage):

  • workers/service/ServiceWorkerContainer.cpp:

(WebCore::mainThreadConnection):
(WebCore::ServiceWorkerContainer::addRegistration):
(WebCore::ServiceWorkerContainer::removeRegistration):
(WebCore::ServiceWorkerContainer::updateRegistration):
(WebCore::ServiceWorkerContainer::jobResolvedWithRegistration):
(WebCore::ServiceWorkerContainer::notifyRegistrationIsSettled):
(WebCore::ServiceWorkerContainer::jobFinishedLoadingScript):
(WebCore::ServiceWorkerContainer::notifyFailedFetchingScript):
(WebCore::ServiceWorkerContainer::ensureSWClientConnection):

  • workers/service/ServiceWorkerGlobalScope.cpp:

(WebCore::ServiceWorkerGlobalScope::create):
(WebCore::ServiceWorkerGlobalScope::ServiceWorkerGlobalScope):

  • workers/service/ServiceWorkerGlobalScope.h:
  • workers/service/ServiceWorkerProvider.cpp:

(WebCore::ServiceWorkerProvider::mayHaveServiceWorkerRegisteredForOrigin):
(WebCore::ServiceWorkerProvider::registerServiceWorkerClients):

  • workers/service/ServiceWorkerProvider.h:
  • workers/service/WorkerSWClientConnection.cpp:

(WebCore::WorkerSWClientConnection::WorkerSWClientConnection):
(WebCore::WorkerSWClientConnection::matchRegistration):
(WebCore::WorkerSWClientConnection::getRegistrations):
(WebCore::WorkerSWClientConnection::whenRegistrationReady):
(WebCore::WorkerSWClientConnection::addServiceWorkerRegistrationInServer):
(WebCore::WorkerSWClientConnection::removeServiceWorkerRegistrationInServer):
(WebCore::WorkerSWClientConnection::didResolveRegistrationPromise):
(WebCore::WorkerSWClientConnection::postMessageToServiceWorker):
(WebCore::WorkerSWClientConnection::serverConnectionIdentifier const):
(WebCore::WorkerSWClientConnection::syncTerminateWorker):
(WebCore::WorkerSWClientConnection::registerServiceWorkerClient):
(WebCore::WorkerSWClientConnection::finishFetchingScriptInServer):
(WebCore::WorkerSWClientConnection::scheduleJob):

  • workers/service/WorkerSWClientConnection.h:
  • workers/service/context/ServiceWorkerThread.cpp:

(WebCore::ServiceWorkerThread::ServiceWorkerThread):
(WebCore::ServiceWorkerThread::createWorkerGlobalScope):

  • workers/service/context/ServiceWorkerThread.h:
  • workers/service/context/ServiceWorkerThreadProxy.cpp:

(WebCore::ServiceWorkerThreadProxy::ServiceWorkerThreadProxy):

  • workers/service/context/ServiceWorkerThreadProxy.h:
  • worklets/WorkletGlobalScope.h:

(WebCore::WorkletGlobalScope::sessionID const):

  • xml/DOMParser.cpp:

(WebCore::DOMParser::parseFromString):

  • xml/DOMParser.h:
  • xml/DOMParser.idl:
  • xml/XMLHttpRequest.cpp:

Source/WebKit:

  • WebProcess/Storage/WebSWContextManagerConnection.cpp:

(WebKit::WebSWContextManagerConnection::installServiceWorker):

  • WebProcess/Storage/WebServiceWorkerProvider.cpp:

(WebKit::WebServiceWorkerProvider::serviceWorkerConnection):
(WebKit::WebServiceWorkerProvider::existingServiceWorkerConnection):
(WebKit::WebServiceWorkerProvider::serviceWorkerConnectionForSession): Deleted.
(WebKit::WebServiceWorkerProvider::existingServiceWorkerConnectionForSession): Deleted.

  • WebProcess/Storage/WebServiceWorkerProvider.h:
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::updateThrottleState):

1:52 PM Changeset in webkit [250103] by commit-queue@webkit.org
  • 10 edits
    12 adds in trunk

Source/WebCore:
[SVG2]: Add auto behavior for rx and ry to the SVG <ellipse> and<rect> elements
https://bugs.webkit.org/show_bug.cgi?id=199843

Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2019-09-19
Reviewed by Simon Fraser, Nikolas Zimmermann.

The specification is: https://www.w3.org/TR/SVG2/geometry.html#RxProperty.

Change the initial value of rx and ry to be "auto". Change the parser to
parse LengthOrAuto for these properties. Handle the case if one of them
is missing.

Tests: svg/custom/ellipse-radius-auto-dynamic.svg

svg/custom/ellipse-radius-auto-initial.svg
svg/custom/ellipse-radius-length-initial.svg
svg/custom/rect-radius-auto-dynamic.svg
svg/custom/rect-radius-auto-initial.svg
svg/custom/rect-radius-length-initial.svg

  • css/CSSProperties.json:
  • css/parser/CSSPropertyParser.cpp:

(WebCore::consumeRxOrRy):

  • rendering/style/RenderStyle.h:

(WebCore::RenderStyle::initialRadius):

  • rendering/style/SVGRenderStyleDefs.cpp:

(WebCore::StyleLayoutData::StyleLayoutData):

  • rendering/svg/RenderSVGEllipse.cpp:

(WebCore::RenderSVGEllipse::calculateRadiiAndCenter):

LayoutTests:
[SVG2]: Add auto behavior for rx and ry to the SVG <ellipse> and <rect> elements
https://bugs.webkit.org/show_bug.cgi?id=199843

Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2019-09-19
Reviewed by Simon Fraser, Nikolas Zimmermann.

Add tests which exercise the initial setting for rx and ry: length, 'auto'.
Add tests to dynamically change the values of these properties from length
to 'auto'.

Skip the tests with dynamic changes till webkit.org/b/201918 is fixed.

  • TestExpectations:
  • svg/css/parse-length-expected.txt:
  • svg/css/parse-length.html:
  • svg/custom/ellipse-radius-auto-dynamic-expected.svg: Added.
  • svg/custom/ellipse-radius-auto-dynamic.svg: Added.
  • svg/custom/ellipse-radius-auto-initial-expected.svg: Added.
  • svg/custom/ellipse-radius-auto-initial.svg: Added.
  • svg/custom/ellipse-radius-length-initial-expected.svg: Added.
  • svg/custom/ellipse-radius-length-initial.svg: Added.
  • svg/custom/rect-radius-auto-dynamic-expected.svg: Added.
  • svg/custom/rect-radius-auto-dynamic.svg: Added.
  • svg/custom/rect-radius-auto-initial-expected.svg: Added.
  • svg/custom/rect-radius-auto-initial.svg: Added.
  • svg/custom/rect-radius-length-initial-expected.svg: Added.
  • svg/custom/rect-radius-length-initial.svg: Added.
1:07 PM Changeset in webkit [250102] by aakash_jain@apple.com
  • 2 edits in trunk/Tools

[ews] Fix platform for JSC EWS
https://bugs.webkit.org/show_bug.cgi?id=201997

Reviewed by Jonathan Bedard.

  • BuildSlaveSupport/ews-build/config.json:
12:36 PM Changeset in webkit [250101] by Justin Fan
  • 13 edits in trunk/Websites/webkit.org

[WebGPU] Update messaging to reflect STP 92 requirement for demos
https://bugs.webkit.org/show_bug.cgi?id=201931

Reviewed by Jon Lee.

Demos don't work anymore on versions of Safari older than STP 92,
so update WebGPU feature detection to reflect that.

  • demos/webgpu/babylon/babylonWebGpu.max.js:
  • demos/webgpu/babylon/oneHelmetWebGPU.html:
  • demos/webgpu/babylon/oneSphereWebGPU.html:
  • demos/webgpu/compute-blur.html:
  • demos/webgpu/compute-boids-compile.html:
  • demos/webgpu/compute-boids.html:
  • demos/webgpu/hello-cube.html:
  • demos/webgpu/hello-triangle.html:
  • demos/webgpu/scripts/compute-blur.js:

(async.init):

  • demos/webgpu/scripts/compute-boids-compile.js:
  • demos/webgpu/scripts/hello-triangle.js:

(async.helloTriangle):

  • demos/webgpu/textured-cube.html:
12:19 PM Changeset in webkit [250100] by commit-queue@webkit.org
  • 6 edits
    2 adds in trunk

HTMLVideoElement with a broken poster image will take square dimension
https://bugs.webkit.org/show_bug.cgi?id=174122
<rdar://problem/33121806>

Patch by Peng Liu <Peng Liu> on 2019-09-19
Reviewed by Daniel Bates.

Source/WebCore:

For a video element, if only the width attribute is given and the height attribute is missing,
an invalid poster image will make its aspect ratio to be 1, which is the historical WebKit behavior
if we're painting alt text and/or a broken image. This fix prevents that behavior to impact video elements.

We add a virtual function shouldDisplayBrokenImageIcon() to RenderImage and it will return true
only when the image source is given but cannot be downloaded. RenderMedia overrides this virtual function
and always return false because it never shows the broken image icon. RenderVideo inherits
that behavior from RenderMedia.

Then, in RenderImage::computeIntrinsicRatioInformation(), we only set the aspect ratio to 1
when we need to show the broken image icon. It is the historical WebKit behavior that we want to keep
for image element, but we also want to avoid its impact (this bug) on video elements.

We also replace the imageResource().errorOccurred() with shouldDisplayBrokenImageIcon() in
TreeBuilder::createLayoutBox() for the same reason.

The logic to display the broken image icon in RenderImage::renderReplaced() is also cleaned up.

Test: media/video-poster-not-found.html

  • layout/layouttree/LayoutTreeBuilder.cpp:

(WebCore::Layout::TreeBuilder::createLayoutBox):

  • rendering/RenderImage.cpp:

(WebCore::RenderImage::shouldDisplayBrokenImageIcon const):
(WebCore::RenderImage::paintReplaced):
(WebCore::RenderImage::computeIntrinsicRatioInformation const):

  • rendering/RenderImage.h:
  • rendering/RenderMedia.h:

LayoutTests:

When only the width (no height) attribute of a video element is given
and the the poster image is missing (cannot be downloaded),
the aspect ratio of the video element should not be 1, which is the default behavior
of WebKit to paint a broken image. Instead, it should be the aspect ratio of the video content.

  • media/video-poster-not-found-expected.txt: Added.
  • media/video-poster-not-found.html: Added.
12:02 PM Changeset in webkit [250099] by mark.lam@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Refactoring: fix broken indentation in JSNonDestructibleProxy.h.
https://bugs.webkit.org/show_bug.cgi?id=201989

Reviewed by Saam Barati.

This patch only unindent the code to get it back to compliant formatting.
There is no actual code change.

  • runtime/JSNonDestructibleProxy.h:

(JSC::JSNonDestructibleProxy::subspaceFor):
(JSC::JSNonDestructibleProxy::create):
(JSC::JSNonDestructibleProxy::createStructure):
(JSC::JSNonDestructibleProxy::JSNonDestructibleProxy):

11:45 AM Changeset in webkit [250098] by Tadeu Zagallo
  • 4 edits
    1 add in trunk

Syntax checker should report duplicate proto properties
https://bugs.webkit.org/show_bug.cgi?id=201897
<rdar://problem/53201788>

Reviewed by Mark Lam.

JSTests:

  • stress/syntax-checker-duplicate-underscore-proto.js: Added.

(catch):

Source/JavaScriptCore:

Currently we have two ways of parsing object literals:

  • parseObjectLiteral: this is called in sloppy mode, and as an optimization for syntax checking, it doesn't allocate string literals while parsing properties. It does still allocate identifiers, but it won't store them in the Property object that it creates for each parsed property. This method backtracks and calls parseObjectStrictLiteral if it finds any getters or setters.
  • parseObjectStrictLiteral: this is called in strict mode, or when the object contains getters/setters as stated above. This will always allocate string literals as well as identifiers and store them in the Property object, even during syntax checking.

From looking at the history, it seems that there was a distinction between these two methods:
parseStrictObjectLiteral was introduced in r62848 and contained an extra check for duplicate
getters/setters or properties defined as both getters/setters and constants. That distinction
was removed and the only distinction that remained was whether we build strings and store the
strings and properties as part of the Property object created by SyntaxChecker::createProperty.
However, this optimization is no longer valid, since we need to throw a SyntaxError for duplicate
proto properties in object literals even in sloppy mode, which means that we do need to build
the strings and identifiers and store them as part of the Property objects.

  • parser/Parser.cpp:

(JSC::Parser<LexerType>::parseObjectLiteral):
(JSC::Parser<LexerType>::parsePrimaryExpression):
(JSC::Parser<LexerType>::parseStrictObjectLiteral): Deleted.

  • parser/Parser.h:
11:34 AM WebKitGTK/StableRelease edited by clopez@igalia.com
(diff)
11:28 AM Changeset in webkit [250097] by mark.lam@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Remove a now unnecessary hack to work around static const needing external linkage.
https://bugs.webkit.org/show_bug.cgi?id=201988

Reviewed by Saam Barati.

MacroAssembler::dataTempRegister is now a constexpr, thereby ensuring that it's
inlinable.

  • b3/B3Common.cpp:

(JSC::B3::pinnedExtendedOffsetAddrRegister):

11:04 AM Changeset in webkit [250096] by Alan Coon
  • 2 edits in branches/safari-608.2.11.1-branch/Source/WebKit

Cherry-pick r250069. rdar://problem/55524978

Eagerly create and add the m_layerHostingView to WKWebView.
https://bugs.webkit.org/show_bug.cgi?id=201942

Reviewed by Tim Horton.

Some apps will add subviews to WKWebView, and by the time we add our m_layerHostingView view we might be
adding it behind a view that should have been added behind our layer hosting view subview. This affected
the Spark email app, due to changes in order of loading delegate calls and when compositing is enabled.
Instead of delayed creation of m_layerHostingView, always create it and add it to to the WKWebView.
This ensures proper ordering of subviews when clients add a view behind all existing subviews.

  • UIProcess/Cocoa/WebViewImpl.mm: (WebKit::WebViewImpl::WebViewImpl): Create and add m_layerHostingView here. (WebKit::WebViewImpl::setAcceleratedCompositingRootLayer): Remove creation and removal of m_layerHostingView. Just set the sublayers of m_layerHostingView's layer here.

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

11:01 AM Changeset in webkit [250095] by Alan Coon
  • 7 edits in branches/safari-608.2.11.1-branch/Source

Versioning.

9:14 AM Changeset in webkit [250094] by mark.lam@apple.com
  • 43 edits in trunk/Source/JavaScriptCore

Replace JSValue #defines with static constexpr values.
https://bugs.webkit.org/show_bug.cgi?id=201966

Reviewed by Yusuke Suzuki.

static constexpr is the modern C++ way to define these constants.

Some of the values are typed int64_t and some are int32_t. The original #define
values are int64_t. Hence, we adopt int64_t as the default type to use here.

However, some of these constants are being used as 32-bit values, and the code
was static_cast'ing them into int32_t. This set of constants are all the small
values that fit in an int32_t anyway. So, we're putting these in int32_t instead
so that we don't have to keep casting them. In the few places where they are
used as int64_t, they will automatically get up-casted anyway.

In this patch, we also did the following:

  1. Renamed TagMask to NotCellMask, because everywhere in the code, we're basically using it to filter out cells like this:

if (value & NotCellMask) then goto handleNotCellCase;

  1. Renamed TagTypeNumber to NumberTag for a shorter name.

Ditto for TagBitTypeOther, TagBitBool, TagBitUndefined, TagBitsWasm, and TagWasmMask.
They are now OtherTag, BoolTag, UndefinedTag, WasmTag, and WasmMask.

  1. Introduced DoubleEncodeOffsetBit so that client code do not embed this value as a literal constant. We now define DoubleEncodeOffset based on DoubleEncodeOffsetBit ensuring consistency.
  1. Introduced MiscTag so that clients don't have to put this set of tags together themselves.
  1. Removed static asserts for tags in LLIntData.cpp because the offlineasm now captures these values correctly with constexpr statements. These static asserts were holdovers from the old days back when we had to define LLInt constant values manually, and we needed a mechanism to detect when the values have changed in the source.
  1. Replaced some runtime asserts in RegisterSet.cpp with static_asserts.
  1. In Wasm::wasmToJS(), we were constructing the value of JSValue::DoubleEncodeOffset constant by left shifting 1 by JSValue::DoubleEncodeOffsetBit. There's no need to do this for ARM64 because the constant can be loaded efficiently with a single MOVZ instruction. So, we add a CPU(ARM64) case to just move the constant into the target register.
  • assembler/AbortReason.h:
  • bytecode/AccessCase.cpp:

(JSC::AccessCase::generateWithGuard):

  • dfg/DFGOSRExit.cpp:

(JSC::DFG::OSRExit::executeOSRExit):
(JSC::DFG::OSRExit::compileExit):

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::silentFill):
(JSC::DFG::SpeculativeJIT::checkArgumentTypes):
(JSC::DFG::SpeculativeJIT::compileValueToInt32):
(JSC::DFG::SpeculativeJIT::compileDoubleRep):
(JSC::DFG::SpeculativeJIT::getIntTypedArrayStoreOperand):
(JSC::DFG::SpeculativeJIT::speculateMisc):

  • dfg/DFGSpeculativeJIT.h:

(JSC::DFG::SpeculativeJIT::spill):

  • dfg/DFGSpeculativeJIT64.cpp:

(JSC::DFG::SpeculativeJIT::fillJSValue):
(JSC::DFG::SpeculativeJIT::nonSpeculativeNonPeepholeCompareNullOrUndefined):
(JSC::DFG::SpeculativeJIT::nonSpeculativePeepholeBranchNullOrUndefined):
(JSC::DFG::SpeculativeJIT::emitCall):
(JSC::DFG::SpeculativeJIT::fillSpeculateBoolean):
(JSC::DFG::SpeculativeJIT::compileObjectStrictEquality):
(JSC::DFG::SpeculativeJIT::compileObjectToObjectOrOtherEquality):
(JSC::DFG::SpeculativeJIT::compilePeepHoleObjectToObjectOrOtherEquality):
(JSC::DFG::SpeculativeJIT::compileInt52Compare):
(JSC::DFG::SpeculativeJIT::compileObjectOrOtherLogicalNot):
(JSC::DFG::SpeculativeJIT::compileLogicalNot):
(JSC::DFG::SpeculativeJIT::emitObjectOrOtherBranch):
(JSC::DFG::SpeculativeJIT::emitBranch):
(JSC::DFG::SpeculativeJIT::compile):
(JSC::DFG::SpeculativeJIT::moveTrueTo):
(JSC::DFG::SpeculativeJIT::moveFalseTo):
(JSC::DFG::SpeculativeJIT::blessBoolean):

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::lower):
(JSC::FTL::DFG::LowerDFGToB3::compileDoubleRep):
(JSC::FTL::DFG::LowerDFGToB3::compileBooleanToNumber):
(JSC::FTL::DFG::LowerDFGToB3::compileUnaryMathIC):
(JSC::FTL::DFG::LowerDFGToB3::compileBinaryMathIC):
(JSC::FTL::DFG::LowerDFGToB3::compilePutById):
(JSC::FTL::DFG::LowerDFGToB3::compileGetByVal):
(JSC::FTL::DFG::LowerDFGToB3::compileArrayIndexOf):
(JSC::FTL::DFG::LowerDFGToB3::compileGetArgument):
(JSC::FTL::DFG::LowerDFGToB3::compileCallOrConstruct):
(JSC::FTL::DFG::LowerDFGToB3::compileDirectCallOrConstruct):
(JSC::FTL::DFG::LowerDFGToB3::compileTailCall):
(JSC::FTL::DFG::LowerDFGToB3::compileCallOrConstructVarargsSpread):
(JSC::FTL::DFG::LowerDFGToB3::compileCallOrConstructVarargs):
(JSC::FTL::DFG::LowerDFGToB3::compileCallEval):
(JSC::FTL::DFG::LowerDFGToB3::compileInById):
(JSC::FTL::DFG::LowerDFGToB3::compileInstanceOf):
(JSC::FTL::DFG::LowerDFGToB3::compileGetEnumeratorStructurePname):
(JSC::FTL::DFG::LowerDFGToB3::compileGetEnumeratorGenericPname):
(JSC::FTL::DFG::LowerDFGToB3::getById):
(JSC::FTL::DFG::LowerDFGToB3::getByIdWithThis):
(JSC::FTL::DFG::LowerDFGToB3::compileCheckSubClass):
(JSC::FTL::DFG::LowerDFGToB3::compileCallDOMGetter):
(JSC::FTL::DFG::LowerDFGToB3::emitBinarySnippet):
(JSC::FTL::DFG::LowerDFGToB3::emitBinaryBitOpSnippet):
(JSC::FTL::DFG::LowerDFGToB3::emitRightShiftSnippet):
(JSC::FTL::DFG::LowerDFGToB3::equalNullOrUndefined):
(JSC::FTL::DFG::LowerDFGToB3::buildTypeOf):
(JSC::FTL::DFG::LowerDFGToB3::isInt32):
(JSC::FTL::DFG::LowerDFGToB3::isNotInt32):
(JSC::FTL::DFG::LowerDFGToB3::boxInt32):
(JSC::FTL::DFG::LowerDFGToB3::isCellOrMisc):
(JSC::FTL::DFG::LowerDFGToB3::isNotCellOrMisc):
(JSC::FTL::DFG::LowerDFGToB3::unboxDouble):
(JSC::FTL::DFG::LowerDFGToB3::boxDouble):
(JSC::FTL::DFG::LowerDFGToB3::isNotCell):
(JSC::FTL::DFG::LowerDFGToB3::isCell):
(JSC::FTL::DFG::LowerDFGToB3::isNotMisc):
(JSC::FTL::DFG::LowerDFGToB3::isNotBoolean):
(JSC::FTL::DFG::LowerDFGToB3::boxBoolean):
(JSC::FTL::DFG::LowerDFGToB3::isNotOther):
(JSC::FTL::DFG::LowerDFGToB3::isOther):

  • ftl/FTLOSRExitCompiler.cpp:

(JSC::FTL::reboxAccordingToFormat):
(JSC::FTL::compileStub):

  • interpreter/CalleeBits.h:

(JSC::CalleeBits::boxWasm):
(JSC::CalleeBits::isWasm const):
(JSC::CalleeBits::asWasmCallee const):

  • jit/AssemblyHelpers.cpp:

(JSC::AssemblyHelpers::jitAssertIsJSInt32):
(JSC::AssemblyHelpers::jitAssertIsJSNumber):
(JSC::AssemblyHelpers::jitAssertIsJSDouble):
(JSC::AssemblyHelpers::jitAssertIsCell):
(JSC::AssemblyHelpers::jitAssertTagsInPlace):
(JSC::AssemblyHelpers::emitConvertValueToBoolean):

  • jit/AssemblyHelpers.h:

(JSC::AssemblyHelpers::emitSaveThenMaterializeTagRegisters):
(JSC::AssemblyHelpers::emitRestoreSavedTagRegisters):
(JSC::AssemblyHelpers::emitMaterializeTagCheckRegisters):
(JSC::AssemblyHelpers::branchIfNotCell):
(JSC::AssemblyHelpers::branchIfCell):
(JSC::AssemblyHelpers::branchIfOther):
(JSC::AssemblyHelpers::branchIfNotOther):
(JSC::AssemblyHelpers::branchIfInt32):
(JSC::AssemblyHelpers::branchIfNotInt32):
(JSC::AssemblyHelpers::branchIfNumber):
(JSC::AssemblyHelpers::branchIfNotNumber):
(JSC::AssemblyHelpers::branchIfNotDoubleKnownNotInt32):
(JSC::AssemblyHelpers::branchIfBoolean):
(JSC::AssemblyHelpers::branchIfNotBoolean):
(JSC::AssemblyHelpers::boxDouble):
(JSC::AssemblyHelpers::unboxDoubleWithoutAssertions):
(JSC::AssemblyHelpers::boxInt52):
(JSC::AssemblyHelpers::boxBooleanPayload):
(JSC::AssemblyHelpers::boxInt32):

  • jit/CallFrameShuffleData.h:
  • jit/CallFrameShuffler.cpp:

(JSC::CallFrameShuffler::CallFrameShuffler):
(JSC::CallFrameShuffler::dump const):
(JSC::CallFrameShuffler::prepareAny):

  • jit/CallFrameShuffler.h:

(JSC::CallFrameShuffler::getFreeRegister const):

  • jit/CallFrameShuffler64.cpp:

(JSC::CallFrameShuffler::emitBox):
(JSC::CallFrameShuffler::tryAcquireNumberTagRegister):
(JSC::CallFrameShuffler::tryAcquireTagTypeNumber): Deleted.

  • jit/GPRInfo.h:

(JSC::GPRInfo::reservedRegisters):

  • jit/JITArithmetic.cpp:

(JSC::JIT::emit_compareAndJumpSlow):

  • jit/JITBitAndGenerator.cpp:

(JSC::JITBitAndGenerator::generateFastPath):

  • jit/JITBitOrGenerator.cpp:

(JSC::JITBitOrGenerator::generateFastPath):

  • jit/JITBitXorGenerator.cpp:

(JSC::JITBitXorGenerator::generateFastPath):

  • jit/JITCall.cpp:

(JSC::JIT::compileTailCall):

  • jit/JITDivGenerator.cpp:

(JSC::JITDivGenerator::generateFastPath):

  • jit/JITInlines.h:

(JSC::JIT::emitPatchableJumpIfNotInt):

  • jit/JITLeftShiftGenerator.cpp:

(JSC::JITLeftShiftGenerator::generateFastPath):

  • jit/JITMulGenerator.cpp:

(JSC::JITMulGenerator::generateFastPath):

  • jit/JITOpcodes.cpp:

(JSC::JIT::emit_op_overrides_has_instance):
(JSC::JIT::emit_op_is_undefined):
(JSC::JIT::emit_op_is_undefined_or_null):
(JSC::JIT::emit_op_is_boolean):
(JSC::JIT::emit_op_is_number):
(JSC::JIT::emit_op_is_cell_with_type):
(JSC::JIT::emit_op_is_object):
(JSC::JIT::emit_op_not):
(JSC::JIT::emit_op_jeq_null):
(JSC::JIT::emit_op_jneq_null):
(JSC::JIT::emit_op_jundefined_or_null):
(JSC::JIT::emit_op_jnundefined_or_null):
(JSC::JIT::emit_op_eq_null):
(JSC::JIT::emit_op_neq_null):

  • jit/JITPropertyAccess.cpp:

(JSC::JIT::emitGenericContiguousPutByVal):
(JSC::JIT::emitFloatTypedArrayPutByVal):

  • jit/JITRightShiftGenerator.cpp:

(JSC::JITRightShiftGenerator::generateFastPath):

  • jit/RegisterSet.cpp:

(JSC::RegisterSet::runtimeTagRegisters):
(JSC::RegisterSet::llintBaselineCalleeSaveRegisters):
(JSC::RegisterSet::dfgCalleeSaveRegisters):
(JSC::RegisterSet::ftlCalleeSaveRegisters):

  • jit/SpecializedThunkJIT.h:

(JSC::SpecializedThunkJIT::returnDouble):
(JSC::SpecializedThunkJIT::tagReturnAsInt32):

  • jit/ThunkGenerators.cpp:

(JSC::virtualThunkFor):
(JSC::nativeForGenerator):
(JSC::arityFixupGenerator):
(JSC::absThunkGenerator):

  • llint/LLIntData.cpp:

(JSC::LLInt::Data::performAssertions):

  • llint/LowLevelInterpreter.asm:
  • llint/LowLevelInterpreter.cpp:

(JSC::CLoop::execute):

  • llint/LowLevelInterpreter64.asm:
  • offlineasm/arm64.rb:
  • offlineasm/cloop.rb:
  • offlineasm/x86.rb:
  • runtime/JSCJSValue.h:
  • runtime/JSCJSValueInlines.h:

(JSC::JSValue::isUndefinedOrNull const):
(JSC::JSValue::isCell const):
(JSC::JSValue::isInt32 const):
(JSC::JSValue::JSValue):
(JSC::JSValue::asDouble const):
(JSC::JSValue::isNumber const):

  • wasm/js/WasmToJS.cpp:

(JSC::Wasm::wasmToJS):

  • wasm/js/WebAssemblyFunction.cpp:

(JSC::WebAssemblyFunction::jsCallEntrypointSlow):

9:11 AM Changeset in webkit [250093] by Brent Fulgham
  • 18 edits
    1 copy
    2 adds in trunk

Create InjectedBundle SPI to better support NSSecureCoding
https://bugs.webkit.org/show_bug.cgi?id=201810
<rdar://problem/55265713>

The encoding/decoding routines used by WebKit’s InjectedBundles are based on NSCoding.
While we have changed WebKit internals to use NSSecureCoding, there are a number of
injected bundles that need to serialize custom classes between the InjectedBundle and
the relevant WebKit UIProcess.

We need to lock down this communications channel by enforcing NSSecureCoding.

This patch creates new SPI to allow the UIProcess to specify classes that it will accept
in messages from the WebContet Process (and Injected Bundle).

It adds the following property to the WKProcessPoolConfiguration:

@property (nonatomic, copy) NSSet<Class> *customClassesForParameterCoder;

If no custom classes are specified, the standard serialization primitives are supported:

NSArray, NSData, NSDate, NSDictionary, NSNull, NSNumber, NSSet, NSString,
NSTimeZone, NSURL, and NSUUID.

Reviewed by Brady Eidson.

Source/WebKit:

  • UIProcess/API/APIProcessPoolConfiguration.cpp:

(API::ProcessPoolConfiguration::copy): Copy any custom classes.

  • UIProcess/API/APIProcessPoolConfiguration.h:
  • UIProcess/API/C/WKContextConfigurationRef.cpp:

(WKContextConfigurationCopyCustomClassesForParameterCoder): Added.
(WKContextConfigurationSetCustomClassesForParameterCoder): Added.

  • UIProcess/API/C/WKContextConfigurationRef.h:
  • UIProcess/API/Cocoa/WKProcessGroup.h:
  • UIProcess/API/Cocoa/WKProcessGroup.mm:

(toStringVector): Added.
(-[WKProcessGroup initWithInjectedBundleURL:andCustomClassesForParameterCoder:]):

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _setInputDelegate:]): Restrict serialization to allowed classes.

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

(-[_WKProcessPoolConfiguration customClassesForParameterCoder]): Added.
(-[_WKProcessPoolConfiguration setCustomClassesForParameterCoder:]): Added.

  • UIProcess/Cocoa/WebProcessPoolCocoa.mm:

(WebKit::WebProcessPool::platformInitialize): Register any custom classes
provided in the configuraton.
(WebKit::WebProcessPool::initializeClassesForParameterCoding): Added.
(WebKit::WebProcessPool::allowedClassesForParameterCoding const): Added.

  • UIProcess/WebProcessPool.h:
  • UIProcess/ios/PageClientImplIOS.mm:

(WebKit::PageClientImpl::elementDidFocus): Restrict serialization to allowed
classes only.

Tools:

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKitCocoa/BundleFormDelegate.mm: Added.

(-[BundleFormDelegateRemoteObject didGetFocus]):
(-[FormInputDelegate _webView:decidePolicyForFocusedElement:]):
(TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/BundleFormDelegatePlugIn.mm: Added.

(-[BundleFormDelegatePlugIn webProcessPlugIn:didCreateBrowserContextController:]):
(-[BundleFormDelegatePlugIn _webProcessPlugInBrowserContextController:willBeginInputSessionForElement:inFrame:userIsInteracting:]):
(-[BundleFormDelegatePlugIn _webProcessPlugInBrowserContextController:didFocusTextField:inFrame:]):

  • TestWebKitAPI/Tests/WebKitCocoa/BundleFormDelegateProtocol.h: Copied from Tools/TestWebKitAPI/WKWebViewConfigurationExtras.h.
  • TestWebKitAPI/Tests/WebKitCocoa/WKProcessPoolConfiguration.mm:

(TEST):

  • TestWebKitAPI/WKWebViewConfigurationExtras.h:
  • TestWebKitAPI/WKWebViewConfigurationExtras.mm:

(+[WKWebViewConfiguration _test_configurationWithTestPlugInClassName:configureJSCForTesting:]):
(+[WKWebViewConfiguration _test_configurationWithTestPlugInClassName:configureJSCForTesting:andCustomParameterClasses:]):

8:52 AM Changeset in webkit [250092] by Antti Koivisto
  • 5 edits in trunk/Source/WebCore

Turn static DocumentRuleSets::s_isInvalidatingStyleWithRuleSets assertion bit into a member
https://bugs.webkit.org/show_bug.cgi?id=201985
<rdar://problem/54851871>

Reviewed by Zalan Bujtas.

This assert bit was catching cases that are not dangerous. Turn it into a member to narrow the scope.

  • css/DocumentRuleSets.cpp:

(WebCore::DocumentRuleSets::~DocumentRuleSets):
(WebCore::DocumentRuleSets::collectFeatures const):
(): Deleted.

  • css/DocumentRuleSets.h:

(WebCore::DocumentRuleSets::isInvalidatingStyleWithRuleSets):

  • style/AttributeChangeInvalidation.cpp:

(WebCore::Style::AttributeChangeInvalidation::invalidateStyleWithRuleSets):

  • style/ClassChangeInvalidation.cpp:

(WebCore::Style::ClassChangeInvalidation::invalidateStyleWithRuleSets):

8:35 AM Changeset in webkit [250091] by Alan Bujtas
  • 4 edits in trunk/Source/WebCore

[LFC] Remove redundant Layout::Box::ElementTypes
https://bugs.webkit.org/show_bug.cgi?id=201963

Reviewed by Antti Koivisto.

These types can be solved through RenderStyle.

  • layout/layouttree/LayoutBox.cpp:

(WebCore::Layout::Box::isPaddingApplicable const):

  • layout/layouttree/LayoutBox.h:

(WebCore::Layout::Box::isTableHeader const):
(WebCore::Layout::Box::isTableBody const):
(WebCore::Layout::Box::isTableFooter const):
(WebCore::Layout::Box::isTableRow const):
(WebCore::Layout::Box::isTableColumnGroup const):
(WebCore::Layout::Box::isTableColumn const):
(WebCore::Layout::Box::isTableCell const):

  • layout/layouttree/LayoutTreeBuilder.cpp:

(WebCore::Layout::TreeBuilder::createLayoutBox):

  • page/FrameViewLayoutContext.cpp:

(WebCore::layoutUsingFormattingContext):

8:19 AM Changeset in webkit [250090] by magomez@igalia.com
  • 3 edits in trunk/LayoutTests

[WPE][GTK] Gardening after r250087
https://bugs.webkit.org/show_bug.cgi?id=201984

Unreviewed WPE and GTK+ gardening after r250087.

  • platform/gtk/TestExpectations:
  • platform/wpe/TestExpectations:
7:58 AM Changeset in webkit [250089] by Alan Bujtas
  • 3 edits in trunk/Source/WebCore

[LFC][IFC] InlineFormattingContext::InlineLayout should not need to call LayoutState::establishedFormattingState
https://bugs.webkit.org/show_bug.cgi?id=201972
<rdar://problem/55505869>

Reviewed by Antti Koivisto.

InlineLayout has access to InlineFormattingContext, so it should just query it instead of calling LayoutState::establishedFormattingState.

  • layout/inlineformatting/InlineFormattingContext.h:

(WebCore::Layout::InlineFormattingContext::InlineLayout::formattingContext const):
(WebCore::Layout::InlineFormattingContext::InlineLayout::formattingState):

  • layout/inlineformatting/InlineFormattingContextLineLayout.cpp:

(WebCore::Layout::InlineFormattingContext::InlineLayout::InlineLayout):
(WebCore::Layout::InlineFormattingContext::InlineLayout::layout):
(WebCore::Layout::InlineFormattingContext::InlineLayout::createDisplayRuns):
(WebCore::Layout::InlineFormattingContext::InlineLayout::layout const): Deleted.
(WebCore::Layout::InlineFormattingContext::InlineLayout::createDisplayRuns const): Deleted.

6:25 AM Changeset in webkit [250088] by Alan Bujtas
  • 6 edits in trunk/Source/WebCore

[LFC] FloatingContext should take the root container.
https://bugs.webkit.org/show_bug.cgi?id=201968
<rdar://problem/55505090>

Reviewed by Antti Koivisto.

Now FormattingContext::root() does not need to be public anymore.

  • layout/FormattingContext.h:

(WebCore::Layout::FormattingContext::root const):

  • layout/blockformatting/BlockFormattingContext.cpp:

(WebCore::Layout::BlockFormattingContext::layoutInFlowContent):

  • layout/floats/FloatingContext.cpp:

(WebCore::Layout::FloatingContext::FloatingContext):
(WebCore::Layout::FloatingContext::mapPointFromFormattingContextRootToFloatingStateRoot const):

  • layout/floats/FloatingContext.h:

(WebCore::Layout::FloatingContext::root const):

  • layout/inlineformatting/InlineFormattingContextLineLayout.cpp:

(WebCore::Layout::InlineFormattingContext::InlineLayout::layout const):
(WebCore::Layout::InlineFormattingContext::InlineLayout::createDisplayRuns const):

Note: See TracTimeline for information about the timeline view.