Timeline



Mar 10, 2021:

11:28 PM Changeset in webkit [274268] by Nikita Vasilyev
  • 4 edits in trunk/Source/WebInspectorUI

Web Inspector: Add checkbox to toggle all grid overlays
https://bugs.webkit.org/show_bug.cgi?id=221924
<rdar://problem/74365101>

Reviewed by BJ Burg.

  • UserInterface/Controllers/OverlayManager.js:

Drive-by: remove unused getter.

  • UserInterface/Views/CSSGridSection.css:

(.css-grid-section .toggle-all):

  • UserInterface/Views/CSSGridSection.js:

(WI.CSSGridSection):
(WI.CSSGridSection.prototype.initialLayout):
(WI.CSSGridSection.prototype._handleToggleAllCheckboxChanged):

(WI.CSSGridSection.prototype.layout):
Drive-by: replace Array.prototype.includes, which runs at O(n) time, with isGridOverlayVisible,
which checks a Map instead.

(WI.CSSGridSection.prototype._handleGridOverlayStateChanged):
(WI.CSSGridSection.prototype._updateToggleAllCheckbox):
Optimization: minimize number of Map lookups when when at least one overlay is visible and at least one is hidden.

9:59 PM Changeset in webkit [274267] by commit-queue@webkit.org
  • 5 edits in trunk

Fix intrinsic-size-005.html
https://bugs.webkit.org/show_bug.cgi?id=222970

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

Source/WebCore:

In orthogonal flow case with aspect-ratio in effect, compute logical height
from logical width provided the logical width is a fixed length.

  • rendering/RenderBlock.cpp:

(WebCore::RenderBlock::computeChildPreferredLogicalWidths const):

  • rendering/RenderBox.h:

LayoutTests:

Enable test that passes now.

7:48 PM Changeset in webkit [274266] by Russell Epstein
  • 2 edits in branches/safari-611.1.21.1-branch/Source/WebKit

Cherry-pick r274231. rdar://problem/75290553

[iOS] Add additional telemetry to WebContent sandbox
https://bugs.webkit.org/show_bug.cgi?id=223035
<rdar://75275161>

Reviewed by Geoffrey Garen.

Add additional telemetry to WebContent sandbox on iOS.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:

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

7:24 PM Changeset in webkit [274265] by Russell Epstein
  • 8 edits in branches/safari-611.1.21.1-branch/Source

Versioning.

WebKit-7611.1.21.1.9

6:40 PM Changeset in webkit [274264] by Peng Liu
  • 17 edits in trunk

[GPU Process] Assertion under RenderLayerCompositor::computeCompositingRequirements()
https://bugs.webkit.org/show_bug.cgi?id=220375

Reviewed by Eric Carlson.

Source/WebCore:

MediaPlayer calls HTMLMediaElement::mediaEngineWasUpdated() when a media element
loads a new URL and MediaPlayer::supportsAcceleratedRendering() may change from
false to true at the same time. However, HTMLMediaElement::mediaEngineWasUpdated()
does not notify the renderer about the change in the same run loop. Instead, it
schedules a task to do that. This leads to a race condition that
RenderLayerBacking::contentChanged(VideoChanged) gets called after the compositing
update where RenderLayerCompositor::canAccelerateVideoRendering() returns true.
This happens because renderer checks MediaPlayer::supportsAcceleratedRendering()
in RenderLayerCompositor::canAccelerateVideoRendering(), which changes its value
when MediaPlayer calls HTMLMediaElement::mediaEngineWasUpdated().

To fix this race condition, HTMLMediaElement needs to notify RenderVideo and
changes the supportsAcceleratedRendering property seen from renderer's perspective
in the same run loop. With this patch, HTMLMediaElement keeps a cached value of
MediaPlayer::supportsAcceleratedRendering(), and only updates its value when
HTMLMediaElement notifies the renderer. In addition, RenderVideo checks
HTMLMediaElement::supportsAcceleratedRendering() instead of
MediaPlayer::supportsAcceleratedRendering(), so that the renderer will
see the new value of supportsAcceleratedRendering and receive the content
change notification in the same run loop.

No new tests. Fix assertion failures in tests.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::mediaEngineWasUpdated):
(WebCore::HTMLMediaElement::clearMediaPlayer):

  • html/HTMLMediaElement.h:

(WebCore::HTMLMediaElement::supportsAcceleratedRendering const):

  • rendering/RenderVideo.cpp:

(WebCore::RenderVideo::paintReplaced):
(WebCore::RenderVideo::supportsAcceleratedRendering const):

Source/WebKit:

When "GPU Process: Media" is enabled, MediaPlayer will call mediaPlayerEngineUpdated()
three times when a media element tries to load a URL. The three calls happen at the
following time points:
1) MediaPlayer creates a MediaPlayerPrivateRemote.
2) MediaPlayerPrivateRemote receives the response of a "createMediaPlayer" message
from the GPU process and gets the initial configurations of the "remote" media player.
3) The RemoteMediaPlayerProxy creates a MediaPlayerPrivate in the GPU process and
notify the MediaPlayerPrivateRemote in the WebContent process.

The second call of mediaPlayerEngineUpdated() is unnecessary because the player's
configuration at that time is similar to NullMediaPlayerPrivate. This patch removes it.

For the third call of mediaPlayerEngineUpdated(), we have to make sure that
the MediaPlayerPrivateRemote has received the configuration update from the GPU
process before the call. Therefore, this patch removes the message
MediaPlayerPrivateRemote::EngineUpdated, and let MediaPlayerPrivateRemote
decide when to call mediaPlayerEngineUpdated().

  • GPUProcess/media/RemoteMediaPlayerManagerProxy.cpp:

(WebKit::RemoteMediaPlayerManagerProxy::createMediaPlayer):

  • GPUProcess/media/RemoteMediaPlayerManagerProxy.h:
  • GPUProcess/media/RemoteMediaPlayerManagerProxy.messages.in:

The playerConfiguration is meaningless in this step so we can remove it.

  • GPUProcess/media/RemoteMediaPlayerProxy.cpp:

(WebKit::RemoteMediaPlayerProxy::mediaPlayerEngineUpdated): Deleted.

  • GPUProcess/media/RemoteMediaPlayerProxy.h:
  • GPUProcess/media/cocoa/RemoteMediaPlayerProxyCocoa.mm:

(WebKit::RemoteMediaPlayerProxy::prepareForPlayback):

  • WebProcess/GPU/media/MediaPlayerPrivateRemote.cpp:

(WebKit::MediaPlayerPrivateRemote::MediaPlayerPrivateRemote):
(WebKit::MediaPlayerPrivateRemote::load):
(WebKit::MediaPlayerPrivateRemote::setConfiguration): Deleted.
(WebKit::MediaPlayerPrivateRemote::engineUpdated): Deleted.

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

(WebKit::RemoteMediaPlayerManager::createRemoteMediaPlayer):

LayoutTests:

  • platform/wk2/TestExpectations:
6:39 PM Changeset in webkit [274263] by Tadeu Zagallo
  • 3 edits
    1 add in trunk

AI validator patchpoint should read heap top
https://bugs.webkit.org/show_bug.cgi?id=223052
<rdar://75087095>

Reviewed by Saam Barati.

JSTests:

  • stress/private-methods-inheritance.js: Added.

(A):
(A.prototype.x):
(B.prototype.y):
(B):

Source/JavaScriptCore:

Currently, the patchpoint doesn't specify any reads, which allows it to be moved around by B3
and can cause false positives since it at least read the structure ID for comparing values.

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::validateAIState):

6:17 PM Changeset in webkit [274262] by Russell Epstein
  • 1 copy in tags/Safari-611.1.21.0.6

Tag Safari-611.1.21.0.6.

6:16 PM Changeset in webkit [274261] by Russell Epstein
  • 1 copy in tags/Safari-611.1.21.2.2

Tag Safari-611.1.21.2.2.

6:14 PM Changeset in webkit [274260] by Russell Epstein
  • 1 copy in tags/Safari-611.1.21.1.8

Tag Safari-611.1.21.1.8.

6:11 PM Changeset in webkit [274259] by Chris Dumez
  • 2 edits in trunk/Source/WebKitLegacy/win

Unreviewed Window build fix after r274252.

  • WebKitQuartzCoreAdditions/CAD3DRenderer.cpp:
6:01 PM Changeset in webkit [274258] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

Unreviewed, another Windows build fix after r274252.

  • platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp:

(WebCore::AVFWrapper::dispatchQueue const):
(WebCore::AVFWrapper::AVFWrapper):
(WebCore::AVFWrapper::~AVFWrapper):
(WebCore::AVFWrapper::createAssetForURL):
(WebCore::AVFWrapper::createPlayer):
(WebCore::AVFWrapper::createPlayerItem):
(WebCore::AVFWrapper::createAVCFVideoLayer):

5:51 PM Changeset in webkit [274257] by Chris Dumez
  • 3 edits in trunk/Source/WebCore

Unreviewed, another Windows build fix after r274252.

  • platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp:

(WebCore::AVFWrapper::createPlayerItem):

  • platform/network/cf/LoaderRunLoopCF.cpp:
5:44 PM Changeset in webkit [274256] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

Unreviewed attempt to fix Windows build after r274252.

  • platform/graphics/cg/ColorSpaceCG.cpp:
5:36 PM Changeset in webkit [274255] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

Unreviewed attempt to fix Windows build after r274252.

  • platform/graphics/cg/ColorSpaceCG.cpp:
5:26 PM Changeset in webkit [274254] by Russell Epstein
  • 2 edits in branches/safari-611.1.21.2-branch/Source/WebKit

Cherry-pick r274231. rdar://problem/75291920

[iOS] Add additional telemetry to WebContent sandbox
https://bugs.webkit.org/show_bug.cgi?id=223035
<rdar://75275161>

Reviewed by Geoffrey Garen.

Add additional telemetry to WebContent sandbox on iOS.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:

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

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

Versioning.

WebKit-7611.1.21.2.2

5:08 PM Changeset in webkit [274252] by Chris Dumez
  • 95 edits in trunk

Use RetainPtr<> / OSObjectPtr<> more in WebKit
https://bugs.webkit.org/show_bug.cgi?id=223030

Reviewed by Darin Adler.

Source/JavaScriptCore:

  • inspector/remote/cocoa/RemoteInspectorCocoa.mm:

(Inspector::RemoteInspector::setupXPCConnectionIfNeeded):

  • inspector/remote/cocoa/RemoteInspectorXPCConnection.h:
  • inspector/remote/cocoa/RemoteInspectorXPCConnection.mm:

(Inspector::RemoteInspectorXPCConnection::RemoteInspectorXPCConnection):
(Inspector::RemoteInspectorXPCConnection::closeFromMessage):
(Inspector::RemoteInspectorXPCConnection::closeOnQueue):
(Inspector::RemoteInspectorXPCConnection::handleEvent):
(Inspector::RemoteInspectorXPCConnection::sendMessage):

  • jsc.cpp:

(jscmain):

Source/WebCore:

  • bridge/objc/objc_class.mm:

(JSC::Bindings::classesByIsA):
(JSC::Bindings::_createClassesByIsAIfNecessary):
(JSC::Bindings::ObjcClass::classForIsA):

  • editing/SmartReplaceCF.cpp:

(WebCore::getSmartSet):

  • page/cocoa/ResourceUsageOverlayCocoa.mm:

(WebCore::createColor):
(WebCore::ResourceUsageOverlay::platformInitialize):
(WebCore::drawGraphLabel):
(WebCore::drawCpuHistory):
(WebCore::drawGCHistory):
(WebCore::ResourceUsageOverlay::platformDraw):

  • platform/cf/win/CertificateCFWin.cpp:

(WebCore::createCertContextDeallocator):
(WebCore::copyCertificateToData):

  • platform/graphics/FontPlatformData.h:
  • platform/graphics/Pattern.h:
  • platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp:

(WebCore::AVFWrapper::dispatchQueue const):
(WebCore::createMetadataKeyNames):
(WebCore::metadataKeyNames):
(WebCore::AVFWrapper::AVFWrapper):
(WebCore::AVFWrapper::~AVFWrapper):
(WebCore::AVFWrapper::createAssetForURL):
(WebCore::AVFWrapper::createPlayer):
(WebCore::AVFWrapper::createPlayerItem):
(WebCore::AVFWrapper::checkPlayability):
(WebCore::AVFWrapper::createAVCFVideoLayer):

  • platform/graphics/cg/ColorCG.cpp:

(WTF::RetainPtr<CGColorRef>>::createValueForKey):
(WebCore::createCGColor):
(WebCore::cachedCGColor):

  • platform/graphics/cg/ColorSpaceCG.cpp:

(WebCore::namedColorSpace):

  • platform/graphics/cg/GraphicsContextCG.cpp:

(WebCore::GraphicsContext::applyStrokePattern):
(WebCore::GraphicsContext::applyFillPattern):

  • platform/graphics/cg/GraphicsContextPlatformPrivateCG.h:

(WebCore::GraphicsContextPlatformPrivate::GraphicsContextPlatformPrivate):

  • platform/graphics/cg/PathCG.cpp:

(WebCore::createScratchContext):
(WebCore::scratchContext):
(WebCore::copyCGPathClosingSubpaths):
(WebCore::Path::contains const):

  • platform/graphics/cg/PatternCG.cpp:

(WebCore::Pattern::createPlatformPattern const):

  • platform/graphics/coretext/FontPlatformDataCoreText.cpp:

(WebCore::FontPlatformData::FontPlatformData):

  • platform/graphics/cv/ImageTransferSessionVT.mm:

(WebCore::ImageTransferSessionVT::createPixelBuffer):

  • platform/graphics/mac/ComplexTextControllerCoreText.mm:

(WebCore::ComplexTextController::collectComplexTextRunsForCharacters):

  • platform/graphics/mac/SimpleFontDataCoreText.cpp:

(WebCore::Font::getCFStringAttributes const):

  • platform/graphics/win/GraphicsContextCGWin.cpp:

(WebCore::CGContextWithHDC):

  • platform/ios/Device.cpp:

(WebCore::deviceName):

  • platform/ios/DragImageIOS.mm:

(WebCore::cascadeForSystemFont):

  • platform/ios/wak/WebCoreThread.mm:

(webThreadReleaseSource):
(webThreadReleaseObjArray):
(delegateSource):
(mainRunLoopAutoUnlockObserver):
(SendDelegateMessage):
(WebThreadAdoptAndRelease):
(HandleWebThreadReleaseSource):
(MainRunLoopAutoUnlock):
(_WebThreadAutoLock):
(_WebRunLoopEnableNestedFromMainThread):
(_WebRunLoopDisableNestedFromMainThread):
(RunWebThread):
(StartWebThread):

  • platform/ios/wak/WebCoreThreadRun.cpp:
  • platform/mac/PowerObserverMac.cpp:

(WebCore::PowerObserver::PowerObserver):
(WebCore::PowerObserver::~PowerObserver):

  • platform/mac/PowerObserverMac.h:
  • platform/mediarecorder/cocoa/AudioSampleBufferCompressor.h:
  • platform/mediarecorder/cocoa/AudioSampleBufferCompressor.mm:

(WebCore::AudioSampleBufferCompressor::AudioSampleBufferCompressor):
(WebCore::AudioSampleBufferCompressor::~AudioSampleBufferCompressor):
(WebCore::AudioSampleBufferCompressor::finish):
(WebCore::AudioSampleBufferCompressor::addSampleBuffer):

  • platform/mediarecorder/cocoa/VideoSampleBufferCompressor.h:
  • platform/mediarecorder/cocoa/VideoSampleBufferCompressor.mm:

(WebCore::VideoSampleBufferCompressor::VideoSampleBufferCompressor):
(WebCore::VideoSampleBufferCompressor::~VideoSampleBufferCompressor):
(WebCore::VideoSampleBufferCompressor::finish):
(WebCore::VideoSampleBufferCompressor::addSampleBuffer):

  • platform/mediastream/ios/AVAudioSessionCaptureDeviceManager.h:
  • platform/mediastream/ios/AVAudioSessionCaptureDeviceManager.mm:

(WebCore::AVAudioSessionCaptureDeviceManager::AVAudioSessionCaptureDeviceManager):
(WebCore::AVAudioSessionCaptureDeviceManager::~AVAudioSessionCaptureDeviceManager):
(WebCore::AVAudioSessionCaptureDeviceManager::refreshAudioCaptureDevices):
(WebCore::AVAudioSessionCaptureDeviceManager::getCaptureDevices):
(WebCore::AVAudioSessionCaptureDeviceManager::disableAllDevicesQuery):

  • platform/network/NetworkStorageSession.h:
  • platform/network/cf/AuthenticationCF.cpp:

(WebCore::createCF):

  • platform/network/cf/AuthenticationCF.h:
  • platform/network/cf/CertificateInfoCFNet.cpp:

(WebCore::CertificateInfo::certificateChainFromSecTrust):

  • platform/network/cf/CredentialStorageCFNet.cpp:

(WebCore::copyCredentialFromProtectionSpace):
(WebCore::CredentialStorage::getFromPersistentStorage):

  • platform/network/cf/LoaderRunLoopCF.cpp:

(WebCore::loaderRunLoop):

  • platform/network/cf/NetworkStorageSessionCFNetWin.cpp:

(WebCore::createPrivateStorageSession):

  • platform/network/cf/ProtectionSpaceCFNet.cpp:

(WebCore::ProtectionSpace::receivesCredentialSecurely const):

  • platform/network/cf/ResourceHandleCFNet.cpp:

(WebCore::ResourceHandle::tryHandlePasswordBasedAuthentication):
(WebCore::ResourceHandle::receivedCredential):
(WebCore::ResourceHandle::platformLoadResourceSynchronously):

  • platform/network/cf/ResourceHandleCFURLConnectionDelegateWithOperationQueue.cpp:

(WebCore::getRunLoop):

  • platform/network/cf/ResourceRequestCFNet.cpp:

(WebCore::siteForCookies):
(WebCore::ResourceRequest::doUpdatePlatformRequest):
(WebCore::ResourceRequest::doUpdatePlatformHTTPBody):
(WebCore::ResourceRequest::setStorageSession):

  • platform/network/cocoa/NetworkStorageSessionCocoa.mm:

(WebCore::createPrivateStorageSession):

  • platform/network/ios/WebCoreURLResponseIOS.mm:

(WebCore::createExtensionToMIMETypeMap):
(WebCore::adjustMIMETypeIfNecessary):

  • platform/network/mac/WebCoreURLResponse.mm:

(WebCore::createExtensionToMIMETypeMap):
(WebCore::adjustMIMETypeIfNecessary):

  • platform/text/mac/TextBoundaries.mm:

(WebCore::tokenizerForString):

  • platform/win/DragImageCGWin.cpp:

(WebCore::allocImage):

  • rendering/RenderThemeIOS.mm:

(WebCore::getSharedFunctionRef):

  • testing/cocoa/WebArchiveDumpSupport.mm:

(WebCoreTestSupport::createCFURLResponseFromResponseData):
(WebCoreTestSupport::convertWebResourceResponseToDictionary):

Source/WebKit:

  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::newTestingSession):
(WebKit::NetworkProcess::ensureSession):

  • NetworkProcess/NetworkProcess.h:
  • NetworkProcess/cocoa/NetworkProcessCocoa.mm:

(WebKit::NetworkProcess::clearDiskCache):

  • NetworkProcess/mac/NetworkProcessMac.mm:

(WebKit::NetworkProcess::platformTerminate):

  • Platform/IPC/Connection.h:
  • Platform/IPC/cocoa/ConnectionCocoa.mm:

(IPC::Connection::platformInvalidate):
(IPC::Connection::cancelReceiveSource):
(IPC::Connection::open):
(IPC::Connection::initializeSendSource):
(IPC::Connection::receiveSourceEventHandler):

  • Shared/Cocoa/DefaultWebBrowserChecks.mm:

(WebKit::itpQueue):
(WebKit::determineITPState):
(WebKit::doesAppHaveITPEnabled):

  • Shared/EntryPointUtilities/Cocoa/XPCService/XPCServiceMain.mm:

(WebKit::XPCServiceEventHandler):

  • Shared/ShareableResource.cpp:

(WebKit::createShareableResourceDeallocator):
(WebKit::ShareableResource::wrapInSharedBuffer):

  • Shared/cf/ArgumentCodersCF.cpp:

(IPC::decode):

  • UIProcess/mac/LegacySessionStateCoding.cpp:

(WebKit::encodeSessionHistoryEntryData):

  • WebProcess/WebPage/Cocoa/WebCookieCacheCocoa.mm:

(WebKit::WebCookieCache::inMemoryStorageSession):

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

(WebKit::RemoteLayerTreeDrawingArea::RemoteLayerTreeDrawingArea):
(WebKit::RemoteLayerTreeDrawingArea::updateRendering):

Source/WebKitLegacy:

223030_RetainPtr

  • WebCoreSupport/NetworkStorageSessionMap.cpp:

(NetworkStorageSessionMap::switchToNewTestingSession):
(NetworkStorageSessionMap::ensureSession):

Source/WebKitLegacy/ios:

  • WebView/WebPDFViewIOS.mm:

(createCGColorWithDeviceWhite):
(+[WebPDFView shadowColor]):
(+[WebPDFView backgroundColor]):

Source/WebKitLegacy/mac:

  • Misc/WebElementDictionary.mm:

(lookupTable):
(addLookupKey):
(+[WebElementDictionary initializeLookupTable]):
(-[WebElementDictionary _fillCache]):
(-[WebElementDictionary objectForKey:]):

  • WebView/WebView.mm:

(+[WebView _makeAllWebViewsPerformSelector:]):
(-[WebView _removeFromAllWebViewsSet]):
(-[WebView _addToAllWebViewsSet]):
(+[WebView closeAllWebViews]):
(+[WebView _maxCacheModelInAnyInstance]):

Source/WebKitLegacy/win:

  • WebApplicationCache.cpp:

(WebApplicationCache::originsWithCache):

  • WebDownloadCFNet.cpp:

(WebDownload::useCredential):
(WebDownload::didReceiveAuthenticationChallenge):

  • WebKitQuartzCoreAdditions/CAD3DRenderer.cpp:

(WKQCA::updateBounds):

  • WebLocalizableStrings.cpp:

(LocalizedString::LocalizedString):
(LocalizedString::operator CFStringRef const):
(LocalizedString::operator LPCTSTR const):
(copyLocalizedStringFromBundle):

  • WebPreferences.cpp:

(defaultSettings):
(WebPreferences::initializeDefaultSettings):
(WebPreferences::valueForKey):
(WebPreferences::copyWebKitPreferencesToCFPreferences):

Source/WTF:

  • wtf/MemoryPressureHandler.cpp:

(WTF::MemoryPressureHandler::setDispatchQueue):

  • wtf/MemoryPressureHandler.h:
  • wtf/WorkQueue.h:
  • wtf/cocoa/MemoryPressureHandlerCocoa.mm:

(WTF::MemoryPressureHandler::install):
(WTF::MemoryPressureHandler::uninstall):
(WTF::MemoryPressureHandler::holdOff):

  • wtf/cocoa/WorkQueueCocoa.cpp:

(WTF::WorkQueue::dispatch):
(WTF::WorkQueue::dispatchAfter):
(WTF::WorkQueue::platformInitialize):
(WTF::WorkQueue::platformInvalidate):

  • wtf/text/cf/StringImplCF.cpp:

(WTF::StringWrapperCFAllocator::allocator):
(WTF::StringImpl::createCFString):

Tools:

  • DumpRenderTree/cg/PixelDumpSupportCG.cpp:

(createBitmapContext):

  • DumpRenderTree/cg/PixelDumpSupportCG.h:

(BitmapContext::createByAdoptingBitmapAndContext):
(BitmapContext::BitmapContext):

  • DumpRenderTree/mac/DumpRenderTree.mm:

(WebThreadLockAfterDelegateCallbacksHaveCompleted):

  • DumpRenderTree/win/PixelDumpSupportWin.cpp:

(createBitmapContextFromWebView):

  • ImageDiff/ImageDiff.xcodeproj/project.pbxproj:
  • ImageDiff/cg/PlatformImageCG.cpp:

(ImageDiff::PlatformImage::pixels const):

  • WebKitTestRunner/cg/TestInvocationCG.cpp:

(WTR::createCGContextFromCGImage):
(WTR::createCGContextFromImage):
(WTR::TestInvocation::dumpPixelsAndCompareWithExpected):

4:33 PM Changeset in webkit [274251] by Jonathan Bedard
  • 5 edits in trunk/Tools

[git-webkit] Make identifier last string in 'find'
https://bugs.webkit.org/show_bug.cgi?id=223031
<rdar://problem/75272100>

Reviewed by Ryosuke Niwa.

  • Scripts/libraries/webkitscmpy/setup.py: Bump version.
  • Scripts/libraries/webkitscmpy/webkitscmpy/init.py: Ditto.
  • Scripts/libraries/webkitscmpy/webkitscmpy/program/find.py:

(Info.main):

  • Scripts/libraries/webkitscmpy/webkitscmpy/test/find_unittest.py:
4:11 PM Changeset in webkit [274250] by Russell Epstein
  • 1 delete in tags/Safari-612.1.5.4

Delete tag.

4:05 PM Changeset in webkit [274249] by Devin Rousso
  • 25 edits in trunk/Source

Add plumbing for defaultPlaybackRate to AVKit
https://bugs.webkit.org/show_bug.cgi?id=222991
<rdar://problem/75012417>

Reviewed by Eric Carlson.

Source/WebCore:

  • platform/cocoa/PlaybackSessionModel.h:

(WebCore::PlaybackSessionModelClient::rateChanged):

  • platform/cocoa/PlaybackSessionModelMediaElement.h:
  • platform/cocoa/PlaybackSessionModelMediaElement.mm:

(WebCore::PlaybackSessionModelMediaElement::updateForEventName):
(WebCore::PlaybackSessionModelMediaElement::setDefaultPlaybackRate): Added.
(WebCore::PlaybackSessionModelMediaElement::defaultPlaybackRate const): Added.
(WebCore::PlaybackSessionModelMediaElement::playbackRate const):

  • platform/ios/PlaybackSessionInterfaceAVKit.h:
  • platform/ios/PlaybackSessionInterfaceAVKit.mm:

(WebCore::PlaybackSessionInterfaceAVKit::PlaybackSessionInterfaceAVKit):
(WebCore::PlaybackSessionInterfaceAVKit::rateChanged):

  • platform/ios/WebVideoFullscreenControllerAVKit.mm:

(VideoFullscreenControllerContext::rateChanged):
(VideoFullscreenControllerContext::setDefaultPlaybackRate): Added.
(VideoFullscreenControllerContext::defaultPlaybackRate const): Added.

  • platform/ios/WebAVPlayerController.h:
  • platform/ios/WebAVPlayerController.mm:

(-[WebAVPlayerController init]):
(-[WebAVPlayerController dealloc]):
(-[WebAVPlayerController observeValueForKeyPath:ofObject:change:context:]):

  • platform/mac/PlaybackSessionInterfaceMac.h:
  • platform/mac/PlaybackSessionInterfaceMac.mm:

(WebCore::PlaybackSessionInterfaceMac::rateChanged):
(WebCore::PlaybackSessionInterfaceMac::setPlayBackControlsManager):

  • platform/mac/VideoFullscreenInterfaceMac.h:
  • platform/mac/VideoFullscreenInterfaceMac.mm:

(WebCore::VideoFullscreenInterfaceMac::rateChanged):

  • platform/mac/WebPlaybackControlsManager.h:
  • platform/mac/WebPlaybackControlsManager.mm:

Source/WebCore/PAL:

  • pal/spi/cocoa/AVKitSPI.h:

Source/WebKit:

  • WebProcess/cocoa/PlaybackSessionManager.messages.in:
  • WebProcess/cocoa/PlaybackSessionManager.h:
  • WebProcess/cocoa/PlaybackSessionManager.mm:

(WebKit::PlaybackSessionInterfaceContext::rateChanged):
(WebKit::PlaybackSessionManager::rateChanged):
(WebKit::PlaybackSessionManager::setDefaultPlaybackRate): Added.

  • UIProcess/Cocoa/PlaybackSessionManagerProxy.messages.in:
  • UIProcess/Cocoa/PlaybackSessionManagerProxy.h:
  • UIProcess/Cocoa/PlaybackSessionManagerProxy.mm:

(WebKit::PlaybackSessionModelContext::setDefaultPlaybackRate): Added.
(WebKit::PlaybackSessionModelContext::rateChanged):
(WebKit::PlaybackSessionManagerProxy::rateChanged):
(WebKit::PlaybackSessionManagerProxy::setDefaultPlaybackRate): Added.

  • UIProcess/ios/fullscreen/WKFullScreenViewController.mm:

(WKFullScreenViewControllerPlaybackSessionModelClient::rateChanged):

4:01 PM Changeset in webkit [274248] by Jonathan Bedard
  • 8 edits in trunk/Tools

[resultsdbpy] Make client aware of hashes and revisions
https://bugs.webkit.org/show_bug.cgi?id=223001
<rdar://problem/75237812>

Reviewed by Dewei Zhu.

  • Scripts/libraries/resultsdbpy/resultsdbpy/init.py: Bump version.
  • Scripts/libraries/resultsdbpy/resultsdbpy/view/static/js/commit.js:

(Commit): Support both "id" and "identifier" in constructor.
(Commit.prototype.repr): Centralize string representation of commit.
(_CommitBank.prototype._loadSiblings):

  • Scripts/libraries/resultsdbpy/resultsdbpy/view/static/js/investigate.js:

(commitsForUuid): Use repr().

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

(xAxisFromScale): Use repr().
(TimelineFromEndpoint.prototype.render.onDotEnterFactory): Ditto.

  • Scripts/libraries/resultsdbpy/resultsdbpy/view/templates/commits.html: Convert JSON to Commit object.
  • Scripts/libraries/resultsdbpy/resultsdbpy/view/templates/investigate.html: Use repr().
  • Scripts/libraries/resultsdbpy/setup.py: Bump version.
4:00 PM Changeset in webkit [274247] by pvollan@apple.com
  • 2 edits in trunk/Source/WebKit

[iOS] Adjust telemetry rule
https://bugs.webkit.org/show_bug.cgi?id=223045

Reviewed by Geoffrey Garen.

Adjust socket-option related telemetry rule on iOS.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
3:56 PM WebKitGTK/2.32.x edited by Michael Catanzaro
(diff)
3:42 PM Changeset in webkit [274246] by Russell Epstein
  • 8 edits in branches/safari-611.1.21.0-branch/Source

Versioning.

WebKit-7611.1.21.0.6

3:38 PM Changeset in webkit [274245] by Russell Epstein
  • 9 edits in branches/safari-611.1.21.0-branch/Source/WebKit

Revert r271193. rdar://problem/75273221

3:33 PM Changeset in webkit [274244] by Chris Gambrell
  • 237 edits
    122 adds
    122 deletes in trunk/LayoutTests

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

Reviewed by Jonathan Bedard.

  • TestExpectations:
  • http/tests/fetch/redirectmode-and-preload-expected.txt:
  • http/tests/fetch/redirectmode-and-preload.html:
  • http/tests/local/file-url-sent-as-referer.html:
  • http/tests/security/basic-auth-subresource-expected.txt:
  • http/tests/security/basic-auth-subresource.html:
  • http/tests/security/cached-cross-origin-preloaded-css-stylesheet-expected.txt:
  • http/tests/security/cached-cross-origin-preloaded-css-stylesheet.html:
  • http/tests/security/cached-cross-origin-preloading-css-stylesheet-expected.txt:
  • http/tests/security/cached-cross-origin-preloading-css-stylesheet.html:
  • http/tests/security/cached-cross-origin-shared-css-stylesheet.html:
  • http/tests/security/cannot-read-cssrules-redirect.html:
  • http/tests/security/cannot-read-cssrules.html:
  • http/tests/security/canvas-remote-read-remote-image-allowed-with-credentials.html:
  • http/tests/security/canvas-remote-read-remote-image-allowed.html:
  • http/tests/security/canvas-remote-read-remote-image-blocked-no-crossorigin.html:
  • http/tests/security/canvas-remote-read-remote-image-blocked-then-allowed.html:
  • http/tests/security/clean-origin-css-exposed-resource-timing.html:
  • http/tests/security/contentSecurityPolicy/1.1/child-src/frame-redirect-blocked.html:
  • http/tests/security/contentSecurityPolicy/1.1/child-src/worker-redirect-blocked-expected.txt:
  • http/tests/security/contentSecurityPolicy/1.1/child-src/worker-redirect-blocked.html:
  • http/tests/security/contentSecurityPolicy/1.1/module-scriptnonce-in-enforced-policy-and-not-in-report-only.html:
  • http/tests/security/contentSecurityPolicy/1.1/module-scriptnonce-in-one-enforced-policy-neither-in-another-enforced-policy-nor-report-policy.html:
  • http/tests/security/contentSecurityPolicy/1.1/module-scriptnonce-redirect-same-origin.html:
  • http/tests/security/contentSecurityPolicy/1.1/module-scriptnonce-redirect.html:
  • http/tests/security/contentSecurityPolicy/1.1/report-uri-effective-directive-expected.txt:
  • http/tests/security/contentSecurityPolicy/1.1/report-uri-effective-directive.php: Removed.
  • http/tests/security/contentSecurityPolicy/1.1/report-uri-effective-directive.py: Added.
  • http/tests/security/contentSecurityPolicy/1.1/resources/module-scriptnonce-in-enforced-policy-and-not-in-report-only.php: Removed.
  • http/tests/security/contentSecurityPolicy/1.1/resources/module-scriptnonce-in-enforced-policy-and-not-in-report-only.py: Added.
  • http/tests/security/contentSecurityPolicy/1.1/resources/module-scriptnonce-in-one-enforced-policy-neither-in-another-enforced-policy-nor-report-policy.php: Removed.
  • http/tests/security/contentSecurityPolicy/1.1/resources/module-scriptnonce-in-one-enforced-policy-neither-in-another-enforced-policy-nor-report-policy.py: Added.
  • http/tests/security/contentSecurityPolicy/1.1/resources/scripthash-in-enforced-policy-and-not-in-report-only.php: Removed.
  • http/tests/security/contentSecurityPolicy/1.1/resources/scripthash-in-enforced-policy-and-not-in-report-only.py: Added.
  • http/tests/security/contentSecurityPolicy/1.1/resources/scripthash-in-one-enforced-policy-neither-in-another-enforced-policy-nor-report-policy.php: Removed.
  • http/tests/security/contentSecurityPolicy/1.1/resources/scripthash-in-one-enforced-policy-neither-in-another-enforced-policy-nor-report-policy.py: Added.
  • http/tests/security/contentSecurityPolicy/1.1/resources/scriptnonce-in-enforced-policy-and-not-in-report-only.php: Removed.
  • http/tests/security/contentSecurityPolicy/1.1/resources/scriptnonce-in-enforced-policy-and-not-in-report-only.py: Added.
  • http/tests/security/contentSecurityPolicy/1.1/resources/scriptnonce-in-one-enforced-policy-neither-in-another-enforced-policy-nor-report-policy.php: Removed.
  • http/tests/security/contentSecurityPolicy/1.1/resources/scriptnonce-in-one-enforced-policy-neither-in-another-enforced-policy-nor-report-policy.py: Added.
  • http/tests/security/contentSecurityPolicy/1.1/script-blocked-sends-multiple-reports-expected.txt:
  • http/tests/security/contentSecurityPolicy/1.1/script-blocked-sends-multiple-reports.php: Removed.
  • http/tests/security/contentSecurityPolicy/1.1/script-blocked-sends-multiple-reports.py: Added.
  • http/tests/security/contentSecurityPolicy/1.1/scripthash-allowed-by-enforced-policy-and-blocked-by-report-policy-expected.txt:
  • http/tests/security/contentSecurityPolicy/1.1/scripthash-allowed-by-enforced-policy-and-blocked-by-report-policy.php: Removed.
  • http/tests/security/contentSecurityPolicy/1.1/scripthash-allowed-by-enforced-policy-and-blocked-by-report-policy.py: Added.
  • http/tests/security/contentSecurityPolicy/1.1/scripthash-allowed-by-enforced-policy-and-blocked-by-report-policy2-expected.txt:
  • http/tests/security/contentSecurityPolicy/1.1/scripthash-allowed-by-enforced-policy-and-blocked-by-report-policy2.php: Removed.
  • http/tests/security/contentSecurityPolicy/1.1/scripthash-allowed-by-enforced-policy-and-blocked-by-report-policy2.py: Added.
  • http/tests/security/contentSecurityPolicy/1.1/scripthash-allowed-by-legacy-enforced-policy-and-blocked-by-report-policy-expected.txt:
  • http/tests/security/contentSecurityPolicy/1.1/scripthash-allowed-by-legacy-enforced-policy-and-blocked-by-report-policy.php: Removed.
  • http/tests/security/contentSecurityPolicy/1.1/scripthash-allowed-by-legacy-enforced-policy-and-blocked-by-report-policy.py: Added.
  • http/tests/security/contentSecurityPolicy/1.1/scripthash-allowed-by-legacy-enforced-policy-and-blocked-by-report-policy2-expected.txt:
  • http/tests/security/contentSecurityPolicy/1.1/scripthash-allowed-by-legacy-enforced-policy-and-blocked-by-report-policy2.php: Removed.
  • http/tests/security/contentSecurityPolicy/1.1/scripthash-allowed-by-legacy-enforced-policy-and-blocked-by-report-policy2.py: Added.
  • http/tests/security/contentSecurityPolicy/1.1/scripthash-blocked-by-enforced-policy-and-allowed-by-report-policy-expected.txt:
  • http/tests/security/contentSecurityPolicy/1.1/scripthash-blocked-by-enforced-policy-and-allowed-by-report-policy.php: Removed.
  • http/tests/security/contentSecurityPolicy/1.1/scripthash-blocked-by-enforced-policy-and-allowed-by-report-policy.py: Added.
  • http/tests/security/contentSecurityPolicy/1.1/scripthash-blocked-by-enforced-policy-and-allowed-by-report-policy2.php: Removed.
  • http/tests/security/contentSecurityPolicy/1.1/scripthash-blocked-by-enforced-policy-and-allowed-by-report-policy2.py: Added.
  • http/tests/security/contentSecurityPolicy/1.1/scripthash-blocked-by-legacy-enforced-policy-and-allowed-by-report-policy.php: Removed.
  • http/tests/security/contentSecurityPolicy/1.1/scripthash-blocked-by-legacy-enforced-policy-and-allowed-by-report-policy.py: Added.
  • http/tests/security/contentSecurityPolicy/1.1/scripthash-blocked-by-legacy-enforced-policy-and-allowed-by-report-policy2.php: Removed.
  • http/tests/security/contentSecurityPolicy/1.1/scripthash-blocked-by-legacy-enforced-policy-and-allowed-by-report-policy2.py: Added.
  • http/tests/security/contentSecurityPolicy/1.1/scripthash-blocked-by-legacy-enforced-policy-and-blocked-by-report-policy-expected.txt:
  • http/tests/security/contentSecurityPolicy/1.1/scripthash-blocked-by-legacy-enforced-policy-and-blocked-by-report-policy.php: Removed.
  • http/tests/security/contentSecurityPolicy/1.1/scripthash-blocked-by-legacy-enforced-policy-and-blocked-by-report-policy.py: Added.
  • http/tests/security/contentSecurityPolicy/1.1/scripthash-blocked-by-legacy-enforced-policy-and-blocked-by-report-policy2-expected.txt:
  • http/tests/security/contentSecurityPolicy/1.1/scripthash-blocked-by-legacy-enforced-policy-and-blocked-by-report-policy2.php: Removed.
  • http/tests/security/contentSecurityPolicy/1.1/scripthash-blocked-by-legacy-enforced-policy-and-blocked-by-report-policy2.py: Added.
  • http/tests/security/contentSecurityPolicy/1.1/scripthash-in-enforced-policy-and-not-in-report-only.html:
  • http/tests/security/contentSecurityPolicy/1.1/scripthash-in-one-enforced-policy-neither-in-another-enforced-policy-nor-report-policy.html:
  • http/tests/security/contentSecurityPolicy/1.1/scriptnonce-allowed-by-enforced-policy-and-blocked-by-report-policy.php: Removed.
  • http/tests/security/contentSecurityPolicy/1.1/scriptnonce-allowed-by-enforced-policy-and-blocked-by-report-policy.py: Added.
  • http/tests/security/contentSecurityPolicy/1.1/scriptnonce-allowed-by-enforced-policy-and-blocked-by-report-policy2.php: Removed.
  • http/tests/security/contentSecurityPolicy/1.1/scriptnonce-allowed-by-enforced-policy-and-blocked-by-report-policy2.py: Added.
  • http/tests/security/contentSecurityPolicy/1.1/scriptnonce-allowed-by-legacy-enforced-policy-and-blocked-by-report-policy.php: Removed.
  • http/tests/security/contentSecurityPolicy/1.1/scriptnonce-allowed-by-legacy-enforced-policy-and-blocked-by-report-policy.py: Added.
  • http/tests/security/contentSecurityPolicy/1.1/scriptnonce-allowed-by-legacy-enforced-policy-and-blocked-by-report-policy2.php: Removed.
  • http/tests/security/contentSecurityPolicy/1.1/scriptnonce-allowed-by-legacy-enforced-policy-and-blocked-by-report-policy2.py: Added.
  • http/tests/security/contentSecurityPolicy/1.1/scriptnonce-blocked-by-enforced-policy-and-allowed-by-report-policy-expected.txt:
  • http/tests/security/contentSecurityPolicy/1.1/scriptnonce-blocked-by-enforced-policy-and-allowed-by-report-policy.php: Removed.
  • http/tests/security/contentSecurityPolicy/1.1/scriptnonce-blocked-by-enforced-policy-and-allowed-by-report-policy.py: Added.
  • http/tests/security/contentSecurityPolicy/1.1/scriptnonce-blocked-by-enforced-policy-and-allowed-by-report-policy2.php: Removed.
  • http/tests/security/contentSecurityPolicy/1.1/scriptnonce-blocked-by-enforced-policy-and-allowed-by-report-policy2.py: Added.
  • http/tests/security/contentSecurityPolicy/1.1/scriptnonce-blocked-by-legacy-enforced-policy-and-allowed-by-report-policy.php: Removed.
  • http/tests/security/contentSecurityPolicy/1.1/scriptnonce-blocked-by-legacy-enforced-policy-and-allowed-by-report-policy.py: Added.
  • http/tests/security/contentSecurityPolicy/1.1/scriptnonce-blocked-by-legacy-enforced-policy-and-allowed-by-report-policy2.php: Removed.
  • http/tests/security/contentSecurityPolicy/1.1/scriptnonce-blocked-by-legacy-enforced-policy-and-allowed-by-report-policy2.py: Added.
  • http/tests/security/contentSecurityPolicy/1.1/scriptnonce-blocked-by-legacy-enforced-policy-and-blocked-by-report-policy.php: Removed.
  • http/tests/security/contentSecurityPolicy/1.1/scriptnonce-blocked-by-legacy-enforced-policy-and-blocked-by-report-policy.py: Added.
  • http/tests/security/contentSecurityPolicy/1.1/scriptnonce-blocked-by-legacy-enforced-policy-and-blocked-by-report-policy2.php: Removed.
  • http/tests/security/contentSecurityPolicy/1.1/scriptnonce-blocked-by-legacy-enforced-policy-and-blocked-by-report-policy2.py: Added.
  • http/tests/security/contentSecurityPolicy/1.1/scriptnonce-in-enforced-policy-and-not-in-report-only.html:
  • http/tests/security/contentSecurityPolicy/1.1/scriptnonce-in-one-enforced-policy-neither-in-another-enforced-policy-nor-report-policy.html:
  • http/tests/security/contentSecurityPolicy/1.1/scriptnonce-redirect.html:
  • http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-css-in-iframe-report-only-expected.txt:
  • http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-css-in-iframe-report-only.html:
  • http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-image-in-iframe-with-enforced-and-report-policies-expected.txt:
  • http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-image-in-iframe-with-enforced-and-report-policies.html:
  • http/tests/security/contentSecurityPolicy/block-all-mixed-content/resources/frame-with-insecure-css-report-only.php: Removed.
  • http/tests/security/contentSecurityPolicy/block-all-mixed-content/resources/frame-with-insecure-css-report-only.py: Added.
  • http/tests/security/contentSecurityPolicy/block-all-mixed-content/resources/frame-with-insecure-image-with-enforced-and-report-policies.php: Removed.
  • http/tests/security/contentSecurityPolicy/block-all-mixed-content/resources/frame-with-insecure-image-with-enforced-and-report-policies.py: Added.
  • http/tests/security/contentSecurityPolicy/connect-src-eventsource-redirect-to-blocked.html:
  • http/tests/security/contentSecurityPolicy/connect-src-xmlhttprequest-redirect-to-blocked.html:
  • http/tests/security/contentSecurityPolicy/eval-allowed-in-report-only-mode-and-sends-report.php: Removed.
  • http/tests/security/contentSecurityPolicy/eval-allowed-in-report-only-mode-and-sends-report.py: Added.
  • http/tests/security/contentSecurityPolicy/eval-allowed-in-report-only-mode.php: Removed.
  • http/tests/security/contentSecurityPolicy/eval-allowed-in-report-only-mode.py: Added.
  • http/tests/security/contentSecurityPolicy/iframe-inside-csp.html:
  • http/tests/security/contentSecurityPolicy/image-document-default-src-none.html:
  • http/tests/security/contentSecurityPolicy/report-and-enforce-expected.txt:
  • http/tests/security/contentSecurityPolicy/report-and-enforce.php: Removed.
  • http/tests/security/contentSecurityPolicy/report-and-enforce.py: Added.
  • http/tests/security/contentSecurityPolicy/report-blocked-data-uri-expected.txt:
  • http/tests/security/contentSecurityPolicy/report-blocked-data-uri.php: Removed.
  • http/tests/security/contentSecurityPolicy/report-blocked-data-uri.py: Added.
  • http/tests/security/contentSecurityPolicy/report-blocked-file-uri-expected.txt:
  • http/tests/security/contentSecurityPolicy/report-blocked-file-uri.php: Removed.
  • http/tests/security/contentSecurityPolicy/report-blocked-file-uri.py: Added.
  • http/tests/security/contentSecurityPolicy/report-blocked-uri-and-do-not-follow-redirect-when-sending-report-expected.txt:
  • http/tests/security/contentSecurityPolicy/report-blocked-uri-and-do-not-follow-redirect-when-sending-report.php: Removed.
  • http/tests/security/contentSecurityPolicy/report-blocked-uri-and-do-not-follow-redirect-when-sending-report.py: Added.
  • http/tests/security/contentSecurityPolicy/report-blocked-uri-cross-origin-expected.txt:
  • http/tests/security/contentSecurityPolicy/report-blocked-uri-cross-origin.php: Removed.
  • http/tests/security/contentSecurityPolicy/report-blocked-uri-cross-origin.py: Added.
  • http/tests/security/contentSecurityPolicy/report-blocked-uri-expected.txt:
  • http/tests/security/contentSecurityPolicy/report-blocked-uri.php: Removed.
  • http/tests/security/contentSecurityPolicy/report-blocked-uri.py: Added.
  • http/tests/security/contentSecurityPolicy/report-cross-origin-no-cookies-expected.txt:
  • http/tests/security/contentSecurityPolicy/report-cross-origin-no-cookies-when-private-browsing-enabled-expected.txt:
  • http/tests/security/contentSecurityPolicy/report-cross-origin-no-cookies-when-private-browsing-enabled.php: Removed.
  • http/tests/security/contentSecurityPolicy/report-cross-origin-no-cookies-when-private-browsing-enabled.py: Added.
  • http/tests/security/contentSecurityPolicy/report-cross-origin-no-cookies.php: Removed.
  • http/tests/security/contentSecurityPolicy/report-cross-origin-no-cookies.py: Added.
  • http/tests/security/contentSecurityPolicy/report-only-connect-src-beacon-redirect-blocked-expected.txt:
  • http/tests/security/contentSecurityPolicy/report-only-connect-src-beacon-redirect-blocked.php:
  • http/tests/security/contentSecurityPolicy/report-only-connect-src-xmlhttprequest-redirect-to-blocked-expected.txt:
  • http/tests/security/contentSecurityPolicy/report-only-connect-src-xmlhttprequest-redirect-to-blocked.php:
  • http/tests/security/contentSecurityPolicy/report-only-expected.txt:
  • http/tests/security/contentSecurityPolicy/report-only-from-header-expected.txt:
  • http/tests/security/contentSecurityPolicy/report-only-from-header.php: Removed.
  • http/tests/security/contentSecurityPolicy/report-only-from-header.py: Added.
  • http/tests/security/contentSecurityPolicy/report-only-report-uri-missing.php: Removed.
  • http/tests/security/contentSecurityPolicy/report-only-report-uri-missing.py: Added.
  • http/tests/security/contentSecurityPolicy/report-only-upgrade-insecure-expected.txt:
  • http/tests/security/contentSecurityPolicy/report-only-upgrade-insecure.php: Removed.
  • http/tests/security/contentSecurityPolicy/report-only-upgrade-insecure.py: Added.
  • http/tests/security/contentSecurityPolicy/report-only.php: Removed.
  • http/tests/security/contentSecurityPolicy/report-only.py: Added.
  • http/tests/security/contentSecurityPolicy/report-same-origin-no-cookies-when-private-browsing-toggled-expected.txt:
  • http/tests/security/contentSecurityPolicy/report-same-origin-no-cookies-when-private-browsing-toggled.php: Removed.
  • http/tests/security/contentSecurityPolicy/report-same-origin-no-cookies-when-private-browsing-toggled.py: Added.
  • http/tests/security/contentSecurityPolicy/report-same-origin-with-cookies-expected.txt:
  • http/tests/security/contentSecurityPolicy/report-same-origin-with-cookies-when-private-browsing-enabled-expected.txt:
  • http/tests/security/contentSecurityPolicy/report-same-origin-with-cookies-when-private-browsing-enabled.php: Removed.
  • http/tests/security/contentSecurityPolicy/report-same-origin-with-cookies-when-private-browsing-enabled.py: Added.
  • http/tests/security/contentSecurityPolicy/report-same-origin-with-cookies.php: Removed.
  • http/tests/security/contentSecurityPolicy/report-same-origin-with-cookies.py: Added.
  • http/tests/security/contentSecurityPolicy/report-uri-expected.txt:
  • http/tests/security/contentSecurityPolicy/report-uri-from-inline-javascript-expected.txt:
  • http/tests/security/contentSecurityPolicy/report-uri-from-inline-javascript.php: Removed.
  • http/tests/security/contentSecurityPolicy/report-uri-from-inline-javascript.py: Added.
  • http/tests/security/contentSecurityPolicy/report-uri-from-javascript-expected.txt:
  • http/tests/security/contentSecurityPolicy/report-uri-from-javascript.php: Removed.
  • http/tests/security/contentSecurityPolicy/report-uri-from-javascript.py: Added.
  • http/tests/security/contentSecurityPolicy/report-uri-scheme-relative-expected.txt:
  • http/tests/security/contentSecurityPolicy/report-uri-scheme-relative.php: Removed.
  • http/tests/security/contentSecurityPolicy/report-uri-scheme-relative.py: Added.
  • http/tests/security/contentSecurityPolicy/report-uri.php: Removed.
  • http/tests/security/contentSecurityPolicy/report-uri.py: Added.
  • http/tests/security/contentSecurityPolicy/resources/child-src-test.js:

(injectFrameRedirectingTo):

  • http/tests/security/contentSecurityPolicy/resources/determine-content-security-policy-header.php: Removed.
  • http/tests/security/contentSecurityPolicy/resources/generate-csp-report.php:
  • http/tests/security/contentSecurityPolicy/resources/go-to-echo-report.php: Removed.
  • http/tests/security/contentSecurityPolicy/resources/go-to-echo-report.py: Added.
  • http/tests/security/contentSecurityPolicy/resources/image-document-default-src-none-iframe.php: Removed.
  • http/tests/security/contentSecurityPolicy/resources/image-document-default-src-none-iframe.py: Added.
  • http/tests/security/contentSecurityPolicy/resources/redir.py: Added.
  • http/tests/security/contentSecurityPolicy/resources/sandbox.php: Removed.
  • http/tests/security/contentSecurityPolicy/resources/sandbox.py: Added.
  • http/tests/security/contentSecurityPolicy/resources/sandboxed-eval.php: Removed.
  • http/tests/security/contentSecurityPolicy/resources/sandboxed-eval.py: Added.
  • http/tests/security/contentSecurityPolicy/resources/utils.py: Added.

(determine_content_security_policy_header):

  • http/tests/security/contentSecurityPolicy/resources/worker-importScript-redirect-cross-origin-allowed.php: Removed.
  • http/tests/security/contentSecurityPolicy/resources/worker-importScript-redirect-cross-origin-allowed.py: Added.
  • http/tests/security/contentSecurityPolicy/resources/worker-importScript-redirect-cross-origin-blocked.php: Removed.
  • http/tests/security/contentSecurityPolicy/resources/worker-importScript-redirect-cross-origin-blocked.py: Added.
  • http/tests/security/contentSecurityPolicy/resources/worker-xhr-allowed.php: Removed.
  • http/tests/security/contentSecurityPolicy/resources/worker-xhr-allowed.py: Added.
  • http/tests/security/contentSecurityPolicy/resources/worker-xhr-redirect-cross-origin-allowed.php: Removed.
  • http/tests/security/contentSecurityPolicy/resources/worker-xhr-redirect-cross-origin-allowed.py: Added.
  • http/tests/security/contentSecurityPolicy/resources/worker-xhr-redirect-cross-origin-blocked.php: Removed.
  • http/tests/security/contentSecurityPolicy/resources/worker-xhr-redirect-cross-origin-blocked.py: Added.
  • http/tests/security/contentSecurityPolicy/resources/xsl-redirect-allowed.php: Removed.
  • http/tests/security/contentSecurityPolicy/resources/xsl-redirect-allowed.py: Added.
  • http/tests/security/contentSecurityPolicy/resources/xsl-redirect-blocked.php: Removed.
  • http/tests/security/contentSecurityPolicy/resources/xsl-redirect-blocked.py: Added.
  • http/tests/security/contentSecurityPolicy/same-origin-plugin-document-blocked-in-child-window-report-expected.txt:
  • http/tests/security/contentSecurityPolicy/same-origin-plugin-document-blocked-in-child-window-report.php: Removed.
  • http/tests/security/contentSecurityPolicy/same-origin-plugin-document-blocked-in-child-window-report.py: Added.
  • http/tests/security/contentSecurityPolicy/sandbox-allow-scripts-in-http-header-control.html:
  • http/tests/security/contentSecurityPolicy/sandbox-allow-scripts-in-http-header.html:
  • http/tests/security/contentSecurityPolicy/sandbox-allow-scripts-in-http-header2.php: Removed.
  • http/tests/security/contentSecurityPolicy/sandbox-allow-scripts-in-http-header2.py: Added.
  • http/tests/security/contentSecurityPolicy/sandbox-empty-in-http-header-expected.txt:
  • http/tests/security/contentSecurityPolicy/sandbox-empty-in-http-header-inherited-by-subframe.php: Removed.
  • http/tests/security/contentSecurityPolicy/sandbox-empty-in-http-header-inherited-by-subframe.py: Added.
  • http/tests/security/contentSecurityPolicy/sandbox-empty-in-http-header.php: Removed.
  • http/tests/security/contentSecurityPolicy/sandbox-empty-in-http-header.py: Added.
  • http/tests/security/contentSecurityPolicy/sandbox-in-http-header-control-expected.txt:
  • http/tests/security/contentSecurityPolicy/sandbox-in-http-header-control.html:
  • http/tests/security/contentSecurityPolicy/sandbox-in-http-header-expected.txt:
  • http/tests/security/contentSecurityPolicy/sandbox-in-http-header.html:
  • http/tests/security/contentSecurityPolicy/sandbox-invalid-header-expected.txt:
  • http/tests/security/contentSecurityPolicy/sandbox-invalid-header.html:
  • http/tests/security/contentSecurityPolicy/sandbox-report-only.html:
  • http/tests/security/contentSecurityPolicy/script-src-redirect-expected.txt:
  • http/tests/security/contentSecurityPolicy/script-src-redirect.html:
  • http/tests/security/contentSecurityPolicy/user-style-sheet-font-crasher.php: Removed.
  • http/tests/security/contentSecurityPolicy/user-style-sheet-font-crasher.py: Added.
  • http/tests/security/contentSecurityPolicy/worker-blob-inherits-csp-importScripts-redirect-cross-origin-blocked.html:
  • http/tests/security/contentSecurityPolicy/worker-csp-blocks-xhr-redirect-cross-origin.html:
  • http/tests/security/contentSecurityPolicy/worker-csp-importScripts-redirect-cross-origin-allowed.html:
  • http/tests/security/contentSecurityPolicy/worker-csp-importScripts-redirect-cross-origin-blocked.html:
  • http/tests/security/contentSecurityPolicy/worker-without-csp-importScripts-redirect-cross-origin-allowed.html:
  • http/tests/security/contentSecurityPolicy/xsl-allowed.php: Removed.
  • http/tests/security/contentSecurityPolicy/xsl-allowed.py: Added.
  • http/tests/security/contentSecurityPolicy/xsl-blocked.php: Removed.
  • http/tests/security/contentSecurityPolicy/xsl-blocked.py: Added.
  • http/tests/security/contentSecurityPolicy/xsl-img-blocked.php: Removed.
  • http/tests/security/contentSecurityPolicy/xsl-img-blocked.py: Added.
  • http/tests/security/contentSecurityPolicy/xsl-redirect-allowed.html:
  • http/tests/security/contentSecurityPolicy/xsl-redirect-allowed2.html:
  • http/tests/security/contentSecurityPolicy/xsl-redirect-blocked.html:
  • http/tests/security/contentSecurityPolicy/xsl-unaffected-by-style-src-1.php: Removed.
  • http/tests/security/contentSecurityPolicy/xsl-unaffected-by-style-src-1.py: Added.
  • http/tests/security/contentSecurityPolicy/xsl-unaffected-by-style-src-2.php: Removed.
  • http/tests/security/contentSecurityPolicy/xsl-unaffected-by-style-src-2.py: Added.
  • http/tests/security/cookie-module-import-expected.txt:
  • http/tests/security/cookie-module-import-propagate-expected.txt:
  • http/tests/security/cookie-module-import-propagate.html:
  • http/tests/security/cookie-module-import.html:
  • http/tests/security/cookie-module-propagate-expected.txt:
  • http/tests/security/cookie-module-propagate.html:
  • http/tests/security/cookie-module.html:
  • http/tests/security/cookies/cookies-wrong-domain-rejected.php: Removed.
  • http/tests/security/cookies/cookies-wrong-domain-rejected.py: Added.
  • http/tests/security/cors-post-redirect-301.html:
  • http/tests/security/cors-post-redirect-302.html:
  • http/tests/security/cors-post-redirect-303.html:
  • http/tests/security/cors-post-redirect-307-pson.html:
  • http/tests/security/cors-post-redirect-307.html:
  • http/tests/security/cors-post-redirect-308.html:
  • http/tests/security/credentials-in-referer.html:
  • http/tests/security/credentials-main-resource.html:
  • http/tests/security/cross-origin-cached-images-canvas.html:
  • http/tests/security/cross-origin-cached-images-expected.txt:
  • http/tests/security/cross-origin-cached-images-parallel-expected.txt:
  • http/tests/security/cross-origin-cached-images-parallel.html:
  • http/tests/security/cross-origin-cached-images.html:
  • http/tests/security/cross-origin-cached-resource-expected.txt:
  • http/tests/security/cross-origin-cached-scripts-expected.txt:
  • http/tests/security/cross-origin-cached-scripts-parallel-expected.txt:
  • http/tests/security/cross-origin-cached-scripts-parallel.html:
  • http/tests/security/cross-origin-cached-scripts.html:
  • http/tests/security/cross-origin-clean-css-resource-timing.html:
  • http/tests/security/cross-origin-css-9.html:
  • http/tests/security/cross-origin-css-resource-timing.html:
  • http/tests/security/css-mask-image-credentials.html:
  • http/tests/security/css-mask-image.html:
  • http/tests/security/http-0.9/default-port-script-blocked.html:
  • http/tests/security/http-0.9/resources/close-connection.php: Removed.
  • http/tests/security/http-0.9/resources/close-connection.py: Added.
  • http/tests/security/import-module-crossorigin-loads-error.html:
  • http/tests/security/import-script-crossorigin-loads-error.html:
  • http/tests/security/isolatedWorld/bypass-main-world-csp-for-xhr-redirect.html:
  • http/tests/security/isolatedWorld/bypass-main-world-csp-worker-blob-importScript-redirect-cross-origin.html:
  • http/tests/security/isolatedWorld/bypass-main-world-csp-worker-importScripts-redirect-cross-origin.html:
  • http/tests/security/isolatedWorld/bypass-main-world-csp-worker-redirect.html:
  • http/tests/security/isolatedWorld/bypass-worker-csp-for-xhr-redirect-cross-origin.html:
  • http/tests/security/isolatedWorld/bypass-worker-csp-for-xhr.html:
  • http/tests/security/load-image-after-redirection-2-expected.txt:
  • http/tests/security/load-image-after-redirection-2.html:
  • http/tests/security/load-image-after-redirection-expected.txt:
  • http/tests/security/load-image-after-redirection.html:
  • http/tests/security/mixedContent/insecure-basic-auth-image-allowCrossOriginSubresourcesToAskForCredentials.https-expected.txt:
  • http/tests/security/mixedContent/insecure-basic-auth-image-allowCrossOriginSubresourcesToAskForCredentials.https.html:
  • http/tests/security/mixedContent/insecure-basic-auth-image.https-expected.txt:
  • http/tests/security/mixedContent/insecure-basic-auth-image.https.html:
  • http/tests/security/mixedContent/insecure-image-redirects-to-basic-auth-secure-image-allowCrossOriginSubresourcesToAskForCredentials-expected.txt:
  • http/tests/security/mixedContent/insecure-image-redirects-to-basic-auth-secure-image-expected.txt:
  • http/tests/security/mixedContent/insecure-script-redirects-to-basic-auth-secure-script-expected.https.txt:
  • http/tests/security/mixedContent/insecure-script-redirects-to-basic-auth-secure-script-expected.txt:
  • http/tests/security/mixedContent/insecure-stylesheet-redirects-to-basic-auth-secure-stylesheet-expected.txt:
  • http/tests/security/mixedContent/resources/frame-with-insecure-image-redirects-to-basic-auth-secure-image.html:
  • http/tests/security/mixedContent/resources/frame-with-insecure-script-redirects-to-basic-auth-secure-script.html:
  • http/tests/security/mixedContent/resources/frame-with-insecure-stylesheet-redirects-to-basic-auth-secure-stylesheet.html:
  • http/tests/security/mixedContent/resources/frame-with-programmatically-added-insecure-image-redirects-to-basic-auth-secure-image.html:
  • http/tests/security/mixedContent/resources/subresource/protected-image.php: Removed.
  • http/tests/security/mixedContent/resources/subresource/protected-image.py: Added.
  • http/tests/security/mixedContent/resources/subresource/protected-page.php: Removed.
  • http/tests/security/mixedContent/resources/subresource/protected-page.py: Added.
  • http/tests/security/mixedContent/resources/subresource/protected-script.php: Removed.
  • http/tests/security/mixedContent/resources/subresource/protected-script.py: Added.
  • http/tests/security/mixedContent/resources/subresource/protected-stylesheet.php: Removed.
  • http/tests/security/mixedContent/resources/subresource/protected-stylesheet.py: Added.
  • http/tests/security/mixedContent/resources/subresource2/protected-image.php: Removed.
  • http/tests/security/mixedContent/resources/subresource2/protected-image.py: Added.
  • http/tests/security/mixedContent/secure-page-navigates-to-basic-auth-insecure-page.https-expected.txt:
  • http/tests/security/mixedContent/secure-page-navigates-to-basic-auth-insecure-page.https.html:
  • http/tests/security/mixedContent/secure-page-navigates-to-basic-auth-secure-page-via-insecure-redirect.https-expected.txt:
  • http/tests/security/mixedContent/secure-page-navigates-to-basic-auth-secure-page-via-insecure-redirect.https.html:
  • http/tests/security/mixedContent/secure-redirect-to-insecure-redirect-to-basic-auth-secure-image-allowCrossOriginSubresourcesToAskForCredentials.https-expected.txt:
  • http/tests/security/mixedContent/secure-redirect-to-insecure-redirect-to-basic-auth-secure-image-allowCrossOriginSubresourcesToAskForCredentials.https.html:
  • http/tests/security/mixedContent/secure-redirect-to-insecure-redirect-to-basic-auth-secure-image.https-expected.txt:
  • http/tests/security/mixedContent/secure-redirect-to-insecure-redirect-to-basic-auth-secure-image.https.html:
  • http/tests/security/mixedContent/secure-redirect-to-secure-redirect-to-basic-auth-insecure-image-allowCrossOriginSubresourcesToAskForCredentials.https-expected.txt:
  • http/tests/security/mixedContent/secure-redirect-to-secure-redirect-to-basic-auth-insecure-image-allowCrossOriginSubresourcesToAskForCredentials.https.html:
  • http/tests/security/mixedContent/secure-redirect-to-secure-redirect-to-basic-auth-insecure-image.https-expected.txt:
  • http/tests/security/mixedContent/secure-redirect-to-secure-redirect-to-basic-auth-insecure-image.https.html:
  • http/tests/security/mixedContent/secure-redirect-to-secure-redirect-to-basic-auth-secure-image-allowCrossOriginSubresourcesToAskForCredentials.https-expected.txt:
  • http/tests/security/mixedContent/secure-redirect-to-secure-redirect-to-basic-auth-secure-image-allowCrossOriginSubresourcesToAskForCredentials.https.html:
  • http/tests/security/mixedContent/secure-redirect-to-secure-redirect-to-basic-auth-secure-image.https-expected.txt:
  • http/tests/security/mixedContent/secure-redirect-to-secure-redirect-to-basic-auth-secure-image.https.html:
  • http/tests/security/no-javascript-location-percent-escaped.html:
  • http/tests/security/no-javascript-location.html:
  • http/tests/security/no-javascript-refresh-expected.txt:
  • http/tests/security/no-javascript-refresh-percent-escaped.php: Removed.
  • http/tests/security/no-javascript-refresh-percent-escaped.py: Added.
  • http/tests/security/no-javascript-refresh-spaces-expected.txt:
  • http/tests/security/no-javascript-refresh-spaces.php: Removed.
  • http/tests/security/no-javascript-refresh-spaces.py: Added.
  • http/tests/security/no-javascript-refresh.php: Removed.
  • http/tests/security/no-javascript-refresh.py: Added.
  • http/tests/security/no-referrer.html:
  • http/tests/security/private-browsing-http-auth.html:
  • http/tests/security/referrer-policy-attribute-style-no-referrer.html:
  • http/tests/security/referrer-policy-header-and-meta-tag-emptyString.html:
  • http/tests/security/referrer-policy-header-and-meta-tag.html:
  • http/tests/security/referrer-policy-window-open.html:
  • http/tests/security/resources/abe-allow-credentials.php: Removed.
  • http/tests/security/resources/abe-allow-credentials.py: Added.
  • http/tests/security/resources/abe-allow-star.php: Removed.
  • http/tests/security/resources/abe-allow-star.py: Added.
  • http/tests/security/resources/allow-if-origin.php: Removed.
  • http/tests/security/resources/allow-if-origin.py: Added.
  • http/tests/security/resources/attachment.php: Removed.
  • http/tests/security/resources/auth-echo.php: Removed.
  • http/tests/security/resources/auth-echo.py: Added.
  • http/tests/security/resources/basic-auth-subresource.html:
  • http/tests/security/resources/canvas-cors-subtest.html:
  • http/tests/security/resources/captions-with-access-control-headers.php: Removed.
  • http/tests/security/resources/captions-with-access-control-headers.py: Added.
  • http/tests/security/resources/cookie-protected-script.php: Removed.
  • http/tests/security/resources/cookie-protected-script.py: Added.
  • http/tests/security/resources/cors-deny.php: Removed.
  • http/tests/security/resources/cors-deny.py: Added.
  • http/tests/security/resources/cors-post-redirect-target.php: Removed.
  • http/tests/security/resources/cors-post-redirect-target.py: Added.
  • http/tests/security/resources/credentials-in-referer-frame.php: Removed.
  • http/tests/security/resources/credentials-in-referer-frame.py: Added.
  • http/tests/security/resources/credentials-in-referer.php: Removed.
  • http/tests/security/resources/credentials-in-referer.py: Added.
  • http/tests/security/resources/credentials-main-resource.php: Removed.
  • http/tests/security/resources/credentials-main-resource.py: Added.
  • http/tests/security/resources/css-mask-image-credentials-2.html:
  • http/tests/security/resources/echo-referrer.php: Removed.
  • http/tests/security/resources/echo-referrer.py: Added.
  • http/tests/security/resources/empty-svg.php: Removed.
  • http/tests/security/resources/empty-svg.py: Added.
  • http/tests/security/resources/get-css-if-origin-header.php: Removed.
  • http/tests/security/resources/get-css-if-origin-header.py: Added.
  • http/tests/security/resources/green-if-no-referrer-css.php: Removed.
  • http/tests/security/resources/green-if-no-referrer-css.py: Added.
  • http/tests/security/resources/image-access-control.php: Removed.
  • http/tests/security/resources/image-access-control.py: Added.
  • http/tests/security/resources/image-credential-check.php: Removed.
  • http/tests/security/resources/image-credential-check.py: Added.
  • http/tests/security/resources/import-module-crossorigin-loads-error-src.js:
  • http/tests/security/resources/imported-loading-subresources.css:

(#mydiv):

  • http/tests/security/resources/loading-subresources.css:

(#mydiv):

  • http/tests/security/resources/loading-subresources.php: Removed.
  • http/tests/security/resources/loading-subresources.py: Added.
  • http/tests/security/resources/module-nest-import.php: Removed.
  • http/tests/security/resources/module-nest-import.py: Added.
  • http/tests/security/resources/nested-referrer-policy-postmessage.html:
  • http/tests/security/resources/no-javascript-location-percent-escaped.php: Removed.
  • http/tests/security/resources/no-javascript-location-percent-escaped.py: Added.
  • http/tests/security/resources/no-javascript-location.php: Removed.
  • http/tests/security/resources/no-javascript-location.py: Added.
  • http/tests/security/resources/no-referrer-frame.php: Removed.
  • http/tests/security/resources/no-referrer-frame.py: Added.
  • http/tests/security/resources/no-referrer.php: Removed.
  • http/tests/security/resources/no-referrer.py: Added.
  • http/tests/security/resources/pass-if-no-referrer.php: Removed.
  • http/tests/security/resources/pass-if-no-referrer.py: Added.
  • http/tests/security/resources/postReferrer.php: Removed.
  • http/tests/security/resources/postReferrer.py: Added.
  • http/tests/security/resources/redirect-allow-star.php: Removed.
  • http/tests/security/resources/redirect-allow-star.py: Added.
  • http/tests/security/resources/redirect.php: Removed.
  • http/tests/security/resources/redirect.py: Added.
  • http/tests/security/resources/referrer-policy-log.php: Removed.
  • http/tests/security/resources/referrer-policy-log.py: Added.
  • http/tests/security/resources/referrer-policy-postmessage.php: Removed.
  • http/tests/security/resources/referrer-policy-postmessage.py: Added.
  • http/tests/security/resources/referrer-policy-redirect-link-downgrade.html:
  • http/tests/security/resources/referrer-policy-redirect-link.html:
  • http/tests/security/resources/referrer-policy-redirect.html:
  • http/tests/security/resources/referrer-policy-start.html:
  • http/tests/security/resources/rel-noreferrer.html:
  • http/tests/security/resources/send-mime-types.php: Removed.
  • http/tests/security/resources/send-mime-types.py: Added.
  • http/tests/security/resources/serve-referrer-policy-and-meta-tag.php: Removed.
  • http/tests/security/resources/serve-referrer-policy-and-meta-tag.py: Added.
  • http/tests/security/resources/serve-referrer-policy-and-test.php:
  • http/tests/security/resources/set-cookie.php: Removed.
  • http/tests/security/resources/set-cookie.py: Added.
  • http/tests/security/resources/showRefererImage.php: Removed.
  • http/tests/security/resources/showRefererImage.py: Added.
  • http/tests/security/resources/subresource1/protected-image.php: Removed.
  • http/tests/security/resources/subresource1/protected-image.py: Added.
  • http/tests/security/resources/subresource2/protected-image.php: Removed.
  • http/tests/security/resources/subresource2/protected-image.py: Added.
  • http/tests/security/resources/xorigincss1-allow-star.php: Removed.
  • http/tests/security/resources/xorigincss1-allow-star.py: Added.
  • http/tests/security/shape-image-cors-redirect-error-message-logging-1.html:
  • http/tests/security/shape-image-cors-redirect-error-message-logging-2.html:
  • http/tests/security/shape-image-cors-redirect-error-message-logging-3-expected.txt:
  • http/tests/security/shape-image-cors-redirect-error-message-logging-3.html:
  • http/tests/security/shape-image-cors-redirect-error-message-logging-4.html:
  • http/tests/security/shape-image-cors-redirect.html:
  • http/tests/security/shape-image-cors.html:
  • http/tests/security/shape-outside-and-cached-resources-expected.html:
  • http/tests/security/shape-outside-and-cached-resources.html:
  • http/tests/security/srcdoc-inherits-referrer-for-forms.html:
  • http/tests/security/srcdoc-inherits-referrer.html:
  • http/tests/security/strip-referrer-to-origin-for-third-party-redirects-in-private-mode.html:
  • http/tests/security/strip-referrer-to-origin-for-third-party-requests-in-private-mode.html:
  • http/tests/security/svg-image-leak.html:
  • http/tests/security/text-track-crossorigin.html:
  • http/tests/security/webaudio-render-remote-audio-allowed-crossorigin-redirect.html:
  • http/tests/security/webaudio-render-remote-audio-blocked-no-crossorigin-redirect.html:
  • http/tests/security/webgl-remote-read-remote-image-allowed-with-credentials.html:
  • http/tests/security/webgl-remote-read-remote-image-allowed.html:
  • http/tests/security/webgl-remote-read-remote-image-blocked-no-crossorigin.html:
  • http/tests/security/xss-DENIED-getSVGDocument-iframe.html:
  • http/tests/security/xss-DENIED-getSVGDocument-object.html:
  • http/tests/security/xss-DENIED-mime-type-execute-as-html.html:
  • http/tests/security/xssAuditor/crash-while-loading-tag-with-pause.html:
  • http/tests/security/xssAuditor/full-block-iframe-no-inherit.php: Removed.
  • http/tests/security/xssAuditor/full-block-iframe-no-inherit.py: Added.
  • http/tests/security/xssAuditor/resources/echo-intertag.pl:
  • http/tests/security/xssAuditor/resources/tag-with-pause.php: Removed.
  • http/tests/security/xssAuditor/resources/tag-with-pause.py: Added.
  • http/tests/ssl/referer-301.html:
  • http/tests/ssl/referer-303.html:
  • http/tests/xmlhttprequest/cacheable-cross-origin-redirect-crash.html:
  • platform/gtk/TestExpectations:
  • platform/ios-wk1/TestExpectations:
  • platform/ios/TestExpectations:
  • platform/mac-wk1/TestExpectations:
  • platform/mac-wk1/http/tests/security/contentSecurityPolicy/1.1/child-src/worker-redirect-blocked-expected.txt:
  • platform/mac-wk1/http/tests/security/contentSecurityPolicy/connect-src-eventsource-redirect-to-blocked-expected.txt:
  • platform/mac-wk1/http/tests/security/contentSecurityPolicy/connect-src-xmlhttprequest-redirect-to-blocked-expected.txt:
  • platform/mac-wk2/TestExpectations:
  • platform/win/TestExpectations:
  • platform/win/http/tests/security/basic-auth-subresource-expected.txt:
  • platform/win/http/tests/security/contentSecurityPolicy/1.1/child-src/worker-redirect-blocked-expected.txt:
  • platform/win/http/tests/security/contentSecurityPolicy/connect-src-eventsource-redirect-to-blocked-expected.txt:
  • platform/win/http/tests/security/contentSecurityPolicy/connect-src-xmlhttprequest-redirect-to-blocked-expected.txt:
  • platform/wk2/TestExpectations:
  • platform/wk2/http/tests/security/basic-auth-subresource-expected.txt:
  • platform/wk2/http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-image-in-iframe-with-enforced-and-report-policies-expected.txt:
  • platform/wk2/http/tests/security/mixedContent/insecure-basic-auth-image-allowCrossOriginSubresourcesToAskForCredentials.https-expected.txt:
  • platform/wk2/http/tests/security/mixedContent/insecure-image-redirects-to-basic-auth-secure-image-allowCrossOriginSubresourcesToAskForCredentials-expected.txt:
  • platform/wk2/http/tests/security/mixedContent/secure-redirect-to-insecure-redirect-to-basic-auth-secure-image-allowCrossOriginSubresourcesToAskForCredentials.https-expected.txt:
  • platform/wk2/http/tests/security/mixedContent/secure-redirect-to-secure-redirect-to-basic-auth-insecure-image-allowCrossOriginSubresourcesToAskForCredentials.https-expected.txt:
3:27 PM Changeset in webkit [274243] by Russell Epstein
  • 2 edits in branches/safari-611.1.21.1-branch/Source/WebCore

Cherry-pick r274203. rdar://problem/75273198

Release assertion failures under Editor::scanSelectionForTelephoneNumbers
https://bugs.webkit.org/show_bug.cgi?id=223016
<rdar://problem/73159921>

Reviewed by Ryosuke Niwa.

No new tests; speculative fix for a non-reproducible crash, which theoretically
has been avoided in a second way on trunk.

  • editing/Editor.cpp: (WebCore::extendSelection): (WebCore::Editor::scanSelectionForTelephoneNumbers): In r272777, Ryosuke discovered a case where FrameSelection::isRange() can be true, but firstRange() is an invalid range; in testing, forcing this to be the case reproduces the crash as reported.

While that change may have fixed the root cause of this crash, we don't
know that we've found all of the ways that one can get a orphaned
selection *into* FrameSelection, and want a less risky workaround for
this crash, so we'll also fix it in scanSelectionForTelephoneNumbers,
by null-checking the result of FrameSelection::firstRange().

Also null-check the result of extendSelection(), since I cannot prove for sure
that a valid range cannot become invalid in this method.

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

3:25 PM Changeset in webkit [274242] by Russell Epstein
  • 8 edits in branches/safari-611.1.21.1-branch/Source

Versioning.

WebKit-7611.1.21.1.8

2:07 PM Changeset in webkit [274241] by dino@apple.com
  • 4 edits in trunk/Source/WTF

Use std::forward for forwarding references instead of WTFMove
https://bugs.webkit.org/show_bug.cgi?id=223040

Reviewed by Darin Adler.

A newer version of clang produced a helpful warning that told
us we were using WTFMove in places where we should use std::forward.

  • wtf/Expected.h:

(std::experimental::fundamentals_v3::expected::operator=):

  • wtf/Function.h:

(WTF::Function<Out):

  • wtf/NeverDestroyed.h:

(WTF::makeNeverDestroyed):

2:03 PM Changeset in webkit [274240] by Chris Dumez
  • 4 edits in trunk/Tools

Improve AppleLanguagesTest.UpdateAppleLanguages API test
https://bugs.webkit.org/show_bug.cgi?id=223037

Reviewed by Per Arne Vollan.

Made the following improvements to the test:

  1. Use 'en-GB' initially instead of 'en-US'. Our bots use 'en-US' by default so this makes sure we are indeed able to change the system language.
  2. Make it so that the test no longer times out if the languageevent fires but navigator.language returns an unexpected language. This was done by using [TestWKWebView performAfterReceivingAnyMessage:] instead of [TestWKWebView performAfterMessage:action:].
  3. Add an internal timeout handling in the test instead of relying on the test suite's timeout. Without this, we would fail to reset the system's language at the end of the test in case of a timeout.
  • TestWebKitAPI/Tests/WebKit/OverrideAppleLanguagesPreference.mm:

(TEST_F):

  • TestWebKitAPI/cocoa/TestWKWebView.h:
  • TestWebKitAPI/cocoa/TestWKWebView.mm:

(-[TestMessageHandler setWildcardMessageHandler:]):
(-[TestMessageHandler userContentController:didReceiveScriptMessage:]):
(-[TestWKWebView performAfterReceivingAnyMessage:]):

2:00 PM Changeset in webkit [274239] by keith_miller@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

executeModuleProgram needs to ensure module argument array is still in scope
https://bugs.webkit.org/show_bug.cgi?id=223039

Reviewed by Saam Barati.

This was causing testing builds to crash for wasm tests.

  • interpreter/Interpreter.cpp:

(JSC::Interpreter::executeModuleProgram):

1:58 PM Changeset in webkit [274238] by Russell Epstein
  • 4 edits in branches/safari-612.1.5-branch/Source

Cherry-pick r273453. rdar://problem/75280351

Unreviewed, fix build with the latest iOS SDK.

Source/WebCore:

  • platform/DragData.h: (WebCore::DragData::operator=): Deleted.

Source/WebKit:

  • Shared/FocusedElementInformation.h:

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

1:56 PM Changeset in webkit [274237] by jer.noble@apple.com
  • 2 edits in trunk/Source/ThirdParty/libwebrtc

CRASH in MergeUVRow_AVX2
https://bugs.webkit.org/show_bug.cgi?id=222996
<rdar://75183835>

Reviewed by Geoff Garen.

Crash logging shows occasional crashes in MergeUVRow_AVX2. These crashes all occur when
calling -[AVAssetImageGenerator copyCGImageAtTime:actualTime:error:]. This path is only used
when there was no prior image generated, and a new image is not available from
AVPlayerItemVideoOutput, which is a scenario which only occurs when doing a software-paint
immedately after a <video> element begins loading. While we should probably stop using
AVAssetImageGenerator, that would be a much riskier change, and wouldn't address the
underlying cause of the crash. Instead, bailing out early when in this state would cause
decoding to fail, but since this scenario only appears to occur for the
AVAssetImageGenerator path, painting would quickly recover as soon as
AVPlayerItemVideoOutput begins emitting frames.

The explanation for these crashes seems to be a mismatch between the size of the libvpx
output frame and the size of the CVPixelBuffer where the converted frame data is being
stored. Add a pre-flight check that will bail out early in this scenario.

  • Source/webrtc/sdk/WebKit/WebKitUtilities.mm:

(webrtc::CopyVideoFrameToPixelBuffer):

1:45 PM Changeset in webkit [274236] by Ruben Turcios
  • 2 edits in branches/safari-611.1.21.0-branch/Source/WebKit

Cherry-pick r274231. rdar://problem/75279800

[iOS] Add additional telemetry to WebContent sandbox
https://bugs.webkit.org/show_bug.cgi?id=223035
<rdar://75275161>

Reviewed by Geoffrey Garen.

Add additional telemetry to WebContent sandbox on iOS.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:

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

1:41 PM Changeset in webkit [274235] by graouts@webkit.org
  • 10 edits
    2 deletes in trunk

Improve font-variation-settings interpolation
https://bugs.webkit.org/show_bug.cgi?id=223027

Reviewed by Dean Jackson.

LayoutTests/imported/w3c:

Add an extra 140 PASS results.

  • web-platform-tests/css/css-fonts/inheritance-expected.txt:
  • web-platform-tests/css/css-fonts/animations/font-variation-settings-composition-expected.txt:
  • web-platform-tests/css/css-fonts/animations/font-variation-settings-interpolation-expected.txt:
  • web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-001-expected.txt:

Source/WebCore:

The animation wrapper for font-variation-settings had no canInterpolate() override. We now
implement such a method with the same logic used for blendFunc() method for FontVariationSettings
which only blends when the values have the same number of entries, and the same tag for each
entry.

We also modify the blendFunc() method to remove the return of empty values since it should only
be called in a scenario where the method can blend the values (due to canInterpolate() being
implemented) or with progress equal to 0 or 1 if the animation is discrete. In the latter cases,
we simply return the "from" or "to" values as-is.

Finally, to pass the tests for the "initial" and "inherit" values, we implement the custom
style builder methods for font-variation-settings.

  • animation/CSSPropertyAnimation.cpp:

(WebCore::blendFunc):

  • style/StyleBuilderCustom.h:

(WebCore::Style::BuilderCustom::applyInitialFontVariationSettings):
(WebCore::Style::BuilderCustom::applyInheritFontVariationSettings):

LayoutTests:

Remove an incorrect test that is also testing functionality well covered by the WPT test
css/css-fonts/animations/font-variation-settings-interpolation.html.

  • animations/font-variations/font-variation-settings-unlike-expected.txt: Deleted.
  • animations/font-variations/font-variation-settings-unlike.html: Deleted.
  • platform/win/TestExpectations:
1:30 PM Changeset in webkit [274234] by graouts@webkit.org
  • 6 edits in trunk

Improve background-size interpolation
https://bugs.webkit.org/show_bug.cgi?id=223025

Reviewed by Dean Jackson.

LayoutTests/imported/w3c:

Add an extra 32 PASS results. We now pass all the background-size interpolation tests except for
those involving the "contain" and "cover" keywords which we don't support.

  • web-platform-tests/css/css-backgrounds/animations/background-size-interpolation-expected.txt:

Source/WebCore:

Add the necessary canInterpolate() overrides to classes used to interpolate background-size.

  • animation/CSSPropertyAnimation.cpp:

(WebCore::FillLayerAnimationPropertyWrapperBase::canInterpolate const):

LayoutTests:

Add console logging for transitions/transition-to-from-undefined.html which tests transitions
between properties that cannot be interpolated and thus don't yield a transition.

  • transitions/lengthsize-transition-to-from-auto-expected.txt:
1:20 PM Changeset in webkit [274233] by Adrian Perez de Castro
  • 3 edits in trunk/Tools

[WPE][GTK] Running Tools/gtk/install-dependencies installs too many packages on Debian/Ubuntu
https://bugs.webkit.org/show_bug.cgi?id=223036

Reviewed by Don Olmstead.

Avoid installing unneeded packages by passing --no-install-recommends to apt-get
invocations. While at it, also make sure to always pass -y to make the installation
non-interactive.

  • gtk/install-dependencies:
  • wpe/install-dependencies:
1:16 PM Changeset in webkit [274232] by Aditya Keerthi
  • 10 edits
    2 adds in trunk

[iOS][FCR] Color inputs are painted outside their box
https://bugs.webkit.org/show_bug.cgi?id=222299
<rdar://problem/74621954>

Reviewed by Wenson Hsieh.

Source/WebCore:

Color inputs have a gradient decoration around their inner swatch. Since
this decoration is painted using a stroke with a non-zero thickness
around the input's box, a portion of the decoration overflows the box.

To fix, use an inset rect to draw the gradient decoration, ensuring the
stroke is drawn within the input's box.

This patch also updates the padding and stroke thickness to match the
latest specifications.

Test: fast/forms/ios/form-control-refresh/color/paint-within-box.html

  • css/html.css:

(input[type="color"]):

Update padding to match specification.

(input[type="color"]::-webkit-color-swatch-wrapper):

Update padding to match specification.

  • css/legacyFormControlsIOS.css:

(input[type="color"]::-webkit-color-swatch-wrapper):

  • rendering/RenderTheme.cpp:

(WebCore::RenderTheme::paintDecorations):

Use the device-pixel-snapped rect when painting the decoration for color
inputs, to ensure the swatch is centered within the input.

We should also consider moving other controls to using the
device-pixel-snapped rect when painting, as some controls still use
integral snapped rects. However, each control should be individually
audited to avoid breakage.

(WebCore::RenderTheme::paintColorWellDecorations):

  • rendering/RenderTheme.h:
  • rendering/RenderThemeIOS.h:
  • rendering/RenderThemeIOS.mm:

(WebCore::RenderThemeIOS::colorInputStyleSheet):

Update the default width/height of color inputs to match the latest
specification.

(WebCore::RenderThemeIOS::paintColorWellDecorations):

Inset the stroke rect to ensure the gradient is painted within the
input's box.

LayoutTests:

Added a reference test which verifies that color inputs are painted
within their box. This is done by drawing a square over the input
and comparing to a page which contains a square of the same size,
with the input hidden.

Rebaselined tests after change to padding.

  • fast/forms/ios/form-control-refresh/color/paint-within-box-expected.html: Added.
  • fast/forms/ios/form-control-refresh/color/paint-within-box.html: Added.
  • platform/ios-wk2/imported/w3c/web-platform-tests/html/rendering/widgets/baseline-alignment-and-overflow.tentative-expected.txt:
  • platform/ios/fast/forms/color/input-appearance-color-expected.txt:
1:07 PM Changeset in webkit [274231] by pvollan@apple.com
  • 2 edits in trunk/Source/WebKit

[iOS] Add additional telemetry to WebContent sandbox
https://bugs.webkit.org/show_bug.cgi?id=223035
<rdar://75275161>

Reviewed by Geoffrey Garen.

Add additional telemetry to WebContent sandbox on iOS.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
12:43 PM Changeset in webkit [274230] by Nikita Vasilyev
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Syntax highlighting for JSX is incorrect
https://bugs.webkit.org/show_bug.cgi?id=217613
<rdar://problem/70210975>

Reviewed by BJ Burg.

Out of the box, React specifies the "js" extension for JSX files.
Use JSX mode for source map resources with the "js" extension. This
appears to match what the other browsers' developer tools do.

  • UserInterface/Models/SourceMapResource.js:

(WI.SourceMapResource):

12:36 PM Changeset in webkit [274229] by Razvan Caliman
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: CSS Grid Inspector clean-up
https://bugs.webkit.org/show_bug.cgi?id=222913
<rdar://problem/75171301>

Reviewed by BJ Burg.

Remove obsolete methods to show/hide the grid overlay directly from a DOMNode.
Remove engineering-only context menu helpers used while implementing grid overlays.

  • UserInterface/Models/DOMNode.js:
  • UserInterface/Views/ContextMenuUtilities.js:
12:09 PM Changeset in webkit [274228] by Brent Fulgham
  • 12 edits in trunk

[Cocoa] Add additional bundle ID property to WKWebViewConfiguration
https://bugs.webkit.org/show_bug.cgi?id=222919
<rdar://problem/75013854>

Reviewed by Alex Christensen.

Source/WebKit:

Add an additional property to _WKWebsiteDataStoreConfiguration to help thread the correct bundle
ID of the driving application to lower levels of WebKit so that we can provide better messaging
when a remote service (e.g., Safari View Controller or ASWebAuthenticationSession) is used. Currently
we often lack context and have to report a generic "web content" message that doesn't help a user
understand which app is actually requesting the load.

We cannot use either of the existing bundle ID's for this purpose since we always indicate 'com.apple.Safari'
as the source application to ensure proper handling of web traffic in lower levels of the system Network stack,
and sourceApplicationSecondaryIdentifier is used for Apple Pay purposes and cannot be repurposed for this task.

This first patch adds the property. A follow-up patch will flesh out the implementation.

  • NetworkProcess/NetworkSessionCreationParameters.cpp:

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

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

(WebKit::NetworkSessionCocoa::attributedBundleIdentifier const):
(WebKit::NetworkSessionCocoa::NetworkSessionCocoa):

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

(-[_WKWebsiteDataStoreConfiguration setAttributedBundleIdentifier:]):
(-[_WKWebsiteDataStoreConfiguration attributedBundleIdentifier]):

  • UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm:

(WebKit::WebsiteDataStore::platformSetNetworkParameters):

  • UIProcess/WebsiteData/WebsiteDataStoreConfiguration.cpp:

(WebKit::WebsiteDataStoreConfiguration::copy):

  • UIProcess/WebsiteData/WebsiteDataStoreConfiguration.h:

(WebKit::WebsiteDataStoreConfiguration::attributedBundleIdentifier const):
(WebKit::WebsiteDataStoreConfiguration::setAttributedBundleIdentifier):

Tools:

Update existing SettingNonPersistentDataStorePathsThrowsException test with new property.

  • TestWebKitAPI/Tests/WebKitCocoa/WKWebsiteDatastore.mm:

(TestWebKitAPI::TEST):

11:58 AM Changeset in webkit [274227] by Darin Adler
  • 77 edits in trunk/Source

[Cocoa] Make WebKit API Objective-C objects safe to release on non-main threads
https://bugs.webkit.org/show_bug.cgi?id=223013

Reviewed by Geoffrey Garen.

Source/WebCore:

  • platform/mac/WebCoreObjCExtras.h: Added WebCoreObjCScheduleDeallocateOnMainRunLoop.

Use #pragma once.

  • platform/mac/WebCoreObjCExtras.mm:

(safeIsKindOfClass): Added. Allows us to use the functions below on classes that
play proxying tricks with the isKindOfClass: method.
(WebCoreObjCScheduleDeallocateOnMainThread): Use safeIsKindOfClass.
(WebCoreObjCScheduleDeallocateOnMainRunLoop): Added.

Source/WebKit:

Used ensureOnMainRunLoop in dealloc methods where possible to make them
thread-safe. Used WebCoreObjCScheduleDeallocateOnMainRunLoop instead in cases
that were too complex to be done with ensureOnMainRunLoop.

  • Shared/API/APIFrameHandle.cpp:

(API::FrameHandle::~FrameHandle): Deleted.

  • Shared/API/APIFrameHandle.h: Use pragma once. Marked the class final.

Removed explicit destructor because it is not helpful.

  • Shared/API/Cocoa/_WKFrameHandle.mm:

(-[_WKFrameHandle dealloc]): Use WebCoreObjCScheduleDeallocateOnMainRunLoop.

  • Shared/API/Cocoa/_WKHitTestResult.mm:

(-[_WKHitTestResult dealloc]): Ditto.

  • Shared/Cocoa/WKNSArray.mm:

(-[WKNSArray dealloc]): Ditto.

  • Shared/Cocoa/WKNSData.mm:

(-[WKNSData dealloc]): Ditto.

  • Shared/Cocoa/WKNSDictionary.mm:

(-[WKNSDictionary dealloc]): Ditto.

  • Shared/Cocoa/WKObject.mm:

(-[WKObject dealloc]): Ditto.

  • UIProcess/API/C/mac/WKPagePrivateMac.mm:

(-[WKObservablePageState dealloc]): Use ensureOnMainRunLoop.

  • UIProcess/API/Cocoa/PageLoadStateObserver.h: Added clearObject for use in

the WKObservablePageState deallc method. Removed header guards since this is
an Objective-C header and #import takes care of it.

  • UIProcess/API/Cocoa/WKBackForwardList.mm:

(-[WKBackForwardList dealloc]): Use WebCoreObjCScheduleDeallocateOnMainRunLoop.

  • UIProcess/API/Cocoa/WKBackForwardListItem.mm:

(-[WKBackForwardListItem dealloc]): Ditto.

  • UIProcess/API/Cocoa/WKBrowsingContextController.mm:

(-[WKBrowsingContextController dealloc]): Ditto.

  • UIProcess/API/Cocoa/WKBrowsingContextGroup.mm:

(-[WKBrowsingContextGroup dealloc]): Ditto.

  • UIProcess/API/Cocoa/WKConnection.mm:

(-[WKConnection dealloc]): Ditto.

  • UIProcess/API/Cocoa/WKContentRuleList.mm:

(-[WKContentRuleList dealloc]): Ditto.

  • UIProcess/API/Cocoa/WKContentRuleListStore.mm:

(-[WKContentRuleListStore dealloc]): Ditto.

  • UIProcess/API/Cocoa/WKContentWorld.mm:

(-[WKContentWorld dealloc]): Ditto.

  • UIProcess/API/Cocoa/WKDownload.mm:

(-[WKDownload dealloc]): Ditto.

  • UIProcess/API/Cocoa/WKFrameInfo.mm:

(-[WKFrameInfo dealloc]): Ditto.

  • UIProcess/API/Cocoa/WKHTTPCookieStore.mm:

(-[WKHTTPCookieStore dealloc]): Ditto.

  • UIProcess/API/Cocoa/WKNavigation.mm:

(-[WKNavigation dealloc]): Ditto.

  • UIProcess/API/Cocoa/WKNavigationAction.mm:

(-[WKNavigationAction dealloc]): Ditto.

  • UIProcess/API/Cocoa/WKNavigationData.mm:

(-[WKNavigationData dealloc]): Ditto.

  • UIProcess/API/Cocoa/WKNavigationResponse.mm:

(-[WKNavigationResponse dealloc]): Ditto.

  • UIProcess/API/Cocoa/WKPreferences.mm:

(-[WKPreferences dealloc]): Ditto.

  • UIProcess/API/Cocoa/WKProcessPool.mm:

(-[WKProcessPool dealloc]): Ditto.

  • UIProcess/API/Cocoa/WKSecurityOrigin.mm:

(-[WKSecurityOrigin dealloc]): Ditto.

  • UIProcess/API/Cocoa/WKUserContentController.mm:

(-[WKUserContentController dealloc]): Ditto.

  • UIProcess/API/Cocoa/WKUserScript.mm:

(-[WKUserScript dealloc]): Ditto.

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView dealloc]): Ditto.

  • UIProcess/API/Cocoa/WKWebpagePreferences.mm:

(-[WKWebpagePreferences dealloc]): Ditto.

  • UIProcess/API/Cocoa/WKWebsiteDataRecord.mm:

(-[WKWebsiteDataRecord dealloc]): Ditto.

  • UIProcess/API/Cocoa/WKWebsiteDataStore.mm:

(-[WKWebsiteDataStore dealloc]): Ditto.

  • UIProcess/API/Cocoa/WKWindowFeatures.mm:

(-[WKWindowFeatures dealloc]): Ditto.

  • UIProcess/API/Cocoa/_WKApplicationManifest.mm:

(-[_WKApplicationManifest dealloc]): Ditto.

  • UIProcess/API/Cocoa/_WKAttachment.mm:

(-[_WKAttachment dealloc]): Ditto.

  • UIProcess/API/Cocoa/_WKAutomationSession.mm:

(-[_WKAutomationSession dealloc]): Ditto.

  • UIProcess/API/Cocoa/_WKContentRuleListAction.mm:

(-[_WKContentRuleListAction dealloc]): Ditto.

  • UIProcess/API/Cocoa/_WKCustomHeaderFields.mm:

(-[_WKCustomHeaderFields dealloc]): Ditto.

  • UIProcess/API/Cocoa/_WKExperimentalFeature.mm:

(-[_WKExperimentalFeature dealloc]): Ditto.

  • UIProcess/API/Cocoa/_WKFrameTreeNode.mm:

(-[_WKFrameTreeNode dealloc]): Ditto.

  • UIProcess/API/Cocoa/_WKGeolocationPosition.mm:

(-[_WKGeolocationPosition dealloc]): Ditto.

  • UIProcess/API/Cocoa/_WKInspectorConfiguration.mm:

(-[_WKInspectorConfiguration dealloc]): Ditto.

  • UIProcess/API/Cocoa/_WKInspectorDebuggableInfo.mm:

(-[_WKInspectorDebuggableInfo dealloc]): Ditto.

  • UIProcess/API/Cocoa/_WKInspectorExtension.mm:

(-[_WKInspectorExtension dealloc]): Ditto.

  • UIProcess/API/Cocoa/_WKInternalDebugFeature.mm:

(-[_WKInternalDebugFeature dealloc]): Ditto.

  • UIProcess/API/Cocoa/_WKProcessPoolConfiguration.mm:

(-[_WKProcessPoolConfiguration dealloc]): Ditto.

  • UIProcess/API/Cocoa/_WKResourceLoadInfo.mm:

(-[_WKResourceLoadInfo dealloc]): Ditto.

  • UIProcess/API/Cocoa/_WKResourceLoadStatisticsFirstParty.mm:

(-[_WKResourceLoadStatisticsFirstParty dealloc]): Ditto.

  • UIProcess/API/Cocoa/_WKResourceLoadStatisticsThirdParty.mm:

(-[_WKResourceLoadStatisticsThirdParty dealloc]): Ditto.

  • UIProcess/API/Cocoa/_WKUserInitiatedAction.mm:

(-[_WKUserInitiatedAction dealloc]): Ditto.

  • UIProcess/API/Cocoa/_WKUserStyleSheet.mm:

(-[_WKUserStyleSheet dealloc]): Ditto.

  • UIProcess/API/Cocoa/_WKVisitedLinkStore.mm:

(-[_WKVisitedLinkStore dealloc]): Ditto.

  • UIProcess/API/Cocoa/_WKWebAuthenticationAssertionResponse.mm:

(-[_WKWebAuthenticationAssertionResponse dealloc]): Ditto.

  • UIProcess/API/Cocoa/_WKWebAuthenticationPanel.mm:

(-[_WKWebAuthenticationPanel dealloc]): Ditto.

  • UIProcess/API/Cocoa/_WKWebsiteDataStoreConfiguration.mm:

(-[_WKWebsiteDataStoreConfiguration dealloc]): Ditto.

  • UIProcess/API/mac/WKView.mm:

(-[WKView dealloc]): Ditto.

  • UIProcess/Cocoa/WKSafeBrowsingWarning.mm:

(-[WKSafeBrowsingWarning dealloc]): Use ensureOnMainRunLoop.

  • UIProcess/mac/WKPrintingView.mm:

(-[WKPrintingView dealloc]): Ditto.

  • WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInFrame.mm:

(-[WKWebProcessPlugInFrame dealloc]): Use WebCoreObjCScheduleDeallocateOnMainRunLoop.

  • WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInHitTestResult.mm:

(-[WKWebProcessPlugInHitTestResult dealloc]): Ditto.

  • WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInNodeHandle.mm:

(-[WKWebProcessPlugInNodeHandle dealloc]): Ditto.

  • WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInPageGroup.mm:

(-[WKWebProcessPlugInPageGroup dealloc]): Ditto.

  • WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInRangeHandle.mm:

(-[WKWebProcessPlugInRangeHandle dealloc]): Ditto.

  • WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInScriptWorld.mm:

(-[WKWebProcessPlugInScriptWorld dealloc]): Ditto.

  • WebProcess/InjectedBundle/API/mac/WKDOMNode.mm:

(-[WKDOMNode dealloc]): Use ensureOnMainRunLoop.

  • WebProcess/InjectedBundle/API/mac/WKDOMRange.mm:

(-[WKDOMRange dealloc]): Ditto.

  • WebProcess/InjectedBundle/API/mac/WKWebProcessPlugIn.mm:

(-[WKWebProcessPlugInController dealloc]): Use WebCoreObjCScheduleDeallocateOnMainRunLoop.

  • WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextController.mm:

(-[WKWebProcessPlugInBrowserContextController dealloc]): Ditto.

Source/WTF:

  • wtf/MainThread.cpp:

(WTF::ensureOnMainRunLoop): Added. For use in cases where we want to be more
efficient, and synchronous, when already on the main run loop, but we can do
the work asynchronously when called and not on the main run loop.

  • wtf/MainThread.h: Added ensureOnMainRunLoop.
11:27 AM Changeset in webkit [274226] by Alan Coon
  • 1 copy in tags/Safari-612.1.6.2

Tag Safari-612.1.6.2.

11:16 AM Changeset in webkit [274225] by Robert Jenner
  • 2 edits in trunk/LayoutTests

[ macOS wk2 ] imported/w3c/web-platform-tests/html/semantics/embedded-content/media-elements/media_fragment_seek.html is a flakey text failure
https://bugs.webkit.org/show_bug.cgi?id=223014

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations: Marking test as Pass Fail, until it can be fixed.
11:11 AM Changeset in webkit [274224] by Alan Coon
  • 2 edits in branches/safari-612.1.6-branch/Source/WebKit

Cherry-pick r274129. rdar://problem/75163359

Regression(r273875): Potential over-release in WKRemoteObjectCoder's decodeObjCObject()
https://bugs.webkit.org/show_bug.cgi?id=222954
<rdar://75163359>

Reviewed by Darin Adler.

r273875 added an adoptNS() for the result of [allocation initWithCoder:decoder]. This would be
fine in general, except that we call awakeAfterUsingCoder on the result right after. As per the
awakeAfterUsingCoder documentation [1], it may return the receiver or a new object. When it
returns a new object, it takes care of releasing the receiver. This is an issue for us here since
we were holding the receiver in a smart pointer.

[1] https://developer.apple.com/documentation/objectivec/nsobject/1417074-awakeafterusingcoder

  • Shared/API/Cocoa/WKRemoteObjectCoder.mm: (decodeObjCObject):

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

11:09 AM Changeset in webkit [274223] by Alan Coon
  • 8 edits in branches/safari-612.1.6-branch/Source

Versioning.

WebKit-7612.1.6.2

11:06 AM Changeset in webkit [274222] by Alan Coon
  • 1 copy in tags/Safari-612.1.5.4

Tag Safari-612.1.5.4.

11:05 AM Changeset in webkit [274221] by Devin Rousso
  • 2 edits in trunk/Source/WebCore

Unreviewed, fix the internal build

  • Modules/applepay/cocoa/PaymentMethodCocoa.mm:

(WebCore::convert):

10:59 AM Changeset in webkit [274220] by Sam Sneddon
  • 2 edits in trunk/Tools

Adding Python type annotations to test_expectations.py
https://bugs.webkit.org/show_bug.cgi?id=222770

Reviewed by Jonathan Bedard.

  • Scripts/webkitpy/layout_tests/models/test_expectations.py:

(ParseError.init):
(ParseError.str):
(ParseError.repr):
(TestExpectationWarning.init):
(TestExpectationParser):
(TestExpectationParser.init):
(TestExpectationParser.parse):
(TestExpectationParser.expectation_for_skipped_test):
(TestExpectationParser._parse_line):
(TestExpectationParser._parse_modifiers):
(TestExpectationParser._parse_expectations):
(TestExpectationParser._check_test_exists):
(TestExpectationParser._collect_matching_tests):
(TestExpectationParser._tokenize_line):
(TestExpectationLine):
(TestExpectationLine.init):
(TestExpectationLine.str):
(TestExpectationLine.is_invalid):
(TestExpectationLine.is_flaky):
(TestExpectationLine.expected_behavior):
(TestExpectationLine.create_passing_expectation):
(TestExpectationLine.to_string):
(TestExpectationLine._serialize_parsed_expectations):
(TestExpectationLine._serialize_parsed_modifiers):
(TestExpectationLine._format_line):
(TestExpectationsModel):
(TestExpectationsModel.init):
(TestExpectationsModel._dict_of_sets):
(TestExpectationsModel.get_test_set):
(TestExpectationsModel.get_test_set_for_keyword):
(TestExpectationsModel.get_tests_with_result_type):
(TestExpectationsModel.get_tests_with_timeline):
(TestExpectationsModel.get_modifiers):
(TestExpectationsModel.has_modifier):
(TestExpectationsModel.has_keyword):
(TestExpectationsModel.has_test):
(TestExpectationsModel.get_expectation_line):
(TestExpectationsModel.get_expectations):
(TestExpectationsModel.get_expectations_or_pass):
(TestExpectationsModel.expectations_to_string):
(TestExpectationsModel.get_expectations_string):
(TestExpectationsModel.expectation_to_string):
(TestExpectationsModel.add_expectation_line):
(TestExpectationsModel._add_test):
(TestExpectationsModel._clear_expectations_for_test):
(TestExpectationsModel._remove_from_sets):
(TestExpectationsModel._already_seen_better_match):
(TestExpectations):
(TestExpectations.expectation_from_string):
(TestExpectations.result_was_expected):
(TestExpectations.remove_pixel_failures):
(TestExpectations.remove_leak_failures):
(TestExpectations.has_pixel_failures):
(TestExpectations.suffixes_for_expectations):
(TestExpectations.init):
(TestExpectations.readable_filename_and_line_number):
(TestExpectations.parse_generic_expectations):
(TestExpectations.parse_default_port_expectations):
(TestExpectations.parse_override_expectations):
(TestExpectations.parse_all_expectations):
(TestExpectations.model):
(TestExpectations.get_rebaselining_failures):
(TestExpectations.filtered_expectations_for_test):
(TestExpectations.matches_an_expected_result):
(TestExpectations.is_rebaselining):
(TestExpectations._shorten_filename):
(TestExpectations._report_warnings):
(TestExpectations._process_tests_without_expectations):
(TestExpectations.has_warnings):
(TestExpectations.remove_configuration_from_test):
(TestExpectations.remove_rebaselined_tests):
(TestExpectations.remove_rebaselined_tests.without_rebaseline_modifier):
(TestExpectations._add_expectations):
(TestExpectations.add_skipped_tests):
(TestExpectations.list_to_string):
(TestExpectations.serialize):
(TestExpectations.nones_out):

10:31 AM Changeset in webkit [274219] by Sam Sneddon
  • 2 edits in trunk/Tools

Mark myself as a committer.

Unreviewed.

Also claim I know about webkitpy.

  • Scripts/webkitpy/common/config/contributors.json:
10:15 AM Changeset in webkit [274218] by Alan Coon
  • 1 copy in tags/Safari-611.1.21.1.6

Tag Safari-611.1.21.1.6.

9:31 AM Changeset in webkit [274217] by Alan Bujtas
  • 4 edits
    2 adds in trunk

Multi-column state propagation should follow containing block rules
https://bugs.webkit.org/show_bug.cgi?id=222932
<rdar://problem/74459411>

Reviewed by Antti Koivisto.

Source/WebCore:

When a renderer(A) gains multi-column context

  1. a special RenderMultiColumnFlow renderer is constructed
  2. it is then inserted under the original renderer(A) and
  3. all (A)'s descendants get moved under this newly constructed RenderMultiColumnFlow renderer.

At step #3 we update each descendants flow state by calling initializeFragmentedFlowStateOnInsertion().
This patch check if the out-of-flow descendant is really part of the multi-column flow and updates the state accordingly.
e.g

<div style="column-count: 2"><div><div id=child style="position: absolute"></div></div></div>
"child" is _not_ part of the multi-column subtree. child's containing block is an ancestor of the multi-column renderer.

<div style="column-count: 2"><div style="position: relative"><div id=child style="position: absolute"></div></div></div>
"child" _is_ part of the multi-column subtree. child's containing block is the relatively positioned renderer which is part of the multi-column flow.

Test: fast/multicol/state-propagation-over-out-of-flow-boundary.html

  • rendering/RenderObject.cpp:

(WebCore::RenderObject::setFragmentedFlowStateIncludingDescendants):
(WebCore::RenderObject::initializeFragmentedFlowStateOnInsertion):
(WebCore::RenderObject::resetFragmentedFlowStateOnRemoval):

  • rendering/RenderObject.h:

LayoutTests:

  • fast/multicol/state-propagation-over-out-of-flow-boundary-expected.txt: Added.
  • fast/multicol/state-propagation-over-out-of-flow-boundary.html: Added.
9:26 AM Changeset in webkit [274216] by commit-queue@webkit.org
  • 14 edits in trunk

[GTK] Reenable -fvisibility=hidden
https://bugs.webkit.org/show_bug.cgi?id=181916

Patch by Michael Catanzaro <Michael Catanzaro> on 2021-03-10
Reviewed by Don Olmstead.

.:

In non-DEVELOPER_MODE builds, we rely on a linker version script to hide symbols that we
don't want to export. Building with hidden visibility might seem redundant with this, but
actually building with hidden visibility has advantages anyway. See
https://gcc.gnu.org/wiki/Visibility.

Note that I'm not confident GTK port can safely use -fvisibility-inlines-hidden, since it's
split between two shared objects. Also, because GTK is split into two shared objects, GTK
needs to build bmalloc and WTF as CMake OBJECT libraries, which is effectively the same as
using -Wl,--whole-archive to prevent symbols from being prematurely stripped away.

P.S. Major credit to Don Olmstead, who did most of the work to make this possible, which has
already landed in previous patches.

  • Source/cmake/OptionsGTK.cmake:

Source/JavaScriptCore:

We need to export the destructor of IsoHeapCellType.

  • heap/IsoHeapCellType.cpp:
  • heap/IsoHeapCellType.h:

Source/WebCore:

We need to export the destructor of EventTarget and the delete operator of
EventTargetWithInlineData. They are used in WebKitTestRunner.

  • PlatformGTK.cmake:
  • dom/EventTarget.cpp:
  • dom/EventTarget.h:

Source/WTF:

We need to export WTF::filenameForDisplay.

  • wtf/FileSystem.h:

Tools:

  • TestWebKitAPI/PlatformGTK.cmake:
  • TestWebKitAPI/glib/TestExpectations.json:
8:18 AM Changeset in webkit [274215] by Wenson Hsieh
  • 6 edits in trunk/Source

Logic for updating the text selection when dragging selection handles should account for image overlays
https://bugs.webkit.org/show_bug.cgi?id=223010

Reviewed by Tim Horton.

Source/WebCore:

Rename shouldUpdateSelectionForMouseDrag to shouldExtendSelectionToTargetNode. See WebKit Changelog for more
details.

  • html/HTMLElement.cpp:

(WebCore::HTMLElement::shouldExtendSelectionToTargetNode):
(WebCore::HTMLElement::shouldUpdateSelectionForMouseDrag): Deleted.

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

(WebCore::EventHandler::updateSelectionForMouseDrag):

Source/WebKit:

Apply the same logic introduced in r272503 to iOS, when extending the selection by moving selection handles. In
the case where the hit-tested node is the image overlay container (as opposed to any text inside the container),
it's better avoid updating the selection, rather than extend the selection to the start of the image overlay.

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::rangeForPointInRootViewCoordinates):

7:49 AM Changeset in webkit [274214] by Jonathan Bedard
  • 6 edits in trunk/Tools

git-webkit should have an "info" command
https://bugs.webkit.org/show_bug.cgi?id=222846
<rdar://problem/75171053>

Reviewed by Ryosuke Niwa.

  • Scripts/libraries/webkitscmpy/setup.py: Bump version.
  • Scripts/libraries/webkitscmpy/webkitscmpy/init.py: Ditto.
  • Scripts/libraries/webkitscmpy/webkitscmpy/program/init.py:

(main): Add Info command.

  • Scripts/libraries/webkitscmpy/webkitscmpy/program/find.py:

(Info):
(Info.parser): Moved from Find.parser, exclude argument.
(Info.main): Moved from Find.main, add a default reference.
(Find):
(Find.parser): Invoke Info.parser.
(Find.main): Invoke Info.main with user's specified reference.

  • Scripts/libraries/webkitscmpy/webkitscmpy/test/find_unittest.py:
6:57 AM Changeset in webkit [274213] by youenn@apple.com
  • 3 edits in trunk/Source/WebKit

Do not send sandbox extensions to WebProcess if capture happens in GPUProcess
https://bugs.webkit.org/show_bug.cgi?id=222961

Reviewed by Eric Carlson.

In case capture does not happen in WebProcess, we do not need to send the tccd sandbox extension.
Ditto for camera/microphone sandbox extensions if capture happens in GPUProcess.
Manually tested.

  • UIProcess/UserMediaPermissionRequestManagerProxy.cpp:

(WebKit::c):
(WebKit::UserMediaPermissionRequestManagerProxy::finishGrantingRequest):

  • UIProcess/UserMediaProcessManager.cpp:

(WebKit::UserMediaProcessManager::willCreateMediaStream):

6:53 AM Changeset in webkit [274212] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[Multi-column] Adjust the flow state of the descendants when going from not-inside-flow to inside-flow
https://bugs.webkit.org/show_bug.cgi?id=222987

Reviewed by Antti Koivisto.

Sometimes the flow state could change even when the renderer stays out-of-flow (e.g when going from fixed to absolute and
the (new)containing block is inside a multi-column flow).

  • rendering/updating/RenderTreeBuilder.cpp:

(WebCore::RenderTreeBuilder::normalizeTreeAfterStyleChange):

6:46 AM Changeset in webkit [274211] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

Clean up the text boxes when the associated text renderer is detached from the tree
https://bugs.webkit.org/show_bug.cgi?id=223009
<rdar://74788950>

Reviewed by Antti Koivisto.

This is the case when the text renderer gets moved under a different block and the original block
becomes non-legacy based line layout.
The inline text boxes are normally cleaned up either when the associated renderer is destroyed
or during the subsequent layout when the legacy code invalidates the line.
However when we switch from legacy to modern line layout this invalidation never runs.
This patch ensures that the text boxes are destroyed soon after the renderer is detached.

  • rendering/updating/RenderTreeBuilder.cpp:

(WebCore::RenderTreeBuilder::detachFromRenderElement):

6:29 AM Changeset in webkit [274210] by commit-queue@webkit.org
  • 6 edits in trunk

[WPE][GTK] Introduce NeedsUnbrandedUserAgent quirk and use it for accounts.google.com, docs.google.com, and drive.google.com
https://bugs.webkit.org/show_bug.cgi?id=222978

Patch by Michael Catanzaro <Michael Catanzaro> on 2021-03-10
Reviewed by Carlos Garcia Campos.

Source/WebCore:

This is a follow-up to bug #222039. I simplified our Google user agent quirks too much in
that bug, breaking accounts.google.com, docs.google.com, and drive.google.com for clients
that set application name and version in the user agent. What we really need here is an
empty quirk in order to ensure our most boring standard user agent is used without any
application branding or customizations. But we no longer need to fake platform or browser,
as was required in the past.

Additionaly, clean up the code a bit. We shouldn't need to compute domain and baseDomain
many separate times, for instance. There's also no need to perform string operations to
add the WebKit version to the user agent, since the version has been frozen for several
years now and is likely to remain frozen indefinitely. Finally, remove some forgotten
leftovers of our Internet Explorer and Windows quirks that were previously used for Google
Docs.

  • platform/UserAgentQuirks.cpp:

(WebCore::urlRequiresChromeBrowser):
(WebCore::urlRequiresFirefoxBrowser):
(WebCore::urlRequiresMacintoshPlatform):
(WebCore::urlRequiresUnbrandedUserAgent):
(WebCore::UserAgentQuirks::quirksForURL):
(WebCore::UserAgentQuirks::stringForQuirk):
(WebCore::isGoogle): Deleted.
(WebCore::urlRequiresLinuxDesktopPlatform): Deleted.

  • platform/UserAgentQuirks.h:
  • platform/glib/UserAgentGLib.cpp:

(WebCore::buildUserAgentString):
(WebCore::standardUserAgent):
(WebCore::standardUserAgentForURL):
(WebCore::versionForUAString): Deleted.

Tools:

  • TestWebKitAPI/Tests/WebCore/UserAgentQuirks.cpp:

(TestWebKitAPI::assertUserAgentForURLHasEmptyQuirk):
(TestWebKitAPI::TEST):
(TestWebKitAPI::assertUserAgentForURLHasLinuxPlatformQuirk): Deleted.

4:52 AM Changeset in webkit [274209] by aakash_jain@apple.com
  • 3 edits in trunk/Tools

[build.webkit.org] Update RunJavaScriptCoreTests step for new buildbot
https://bugs.webkit.org/show_bug.cgi?id=223011

Reviewed by Dewei Zhu.

  • CISupport/build-webkit-org/steps.py:

(RunJavaScriptCoreTests.start): Used logobserver.
(RunJavaScriptCoreTests.countFailures):

  • CISupport/build-webkit-org/steps_unittest.py:

(TestRunJavaScriptCoreTests.test_success): Added unit-test.
(TestRunJavaScriptCoreTests.test_failure): Ditto.

3:56 AM Changeset in webkit [274208] by commit-queue@webkit.org
  • 9 edits in trunk

Unreviewed, reverting r274166.
https://bugs.webkit.org/show_bug.cgi?id=223024

Broke GTK Debug builds

Reverted changeset:

"[GTK] Reenable -fvisibility=hidden"
https://bugs.webkit.org/show_bug.cgi?id=181916
https://trac.webkit.org/changeset/274166

3:54 AM Changeset in webkit [274207] by youenn@apple.com
  • 5 edits in trunk/Source/WebCore

Make RTCDataChannel use a ScriptExecutionContext instead of a Document
https://bugs.webkit.org/show_bug.cgi?id=222963

Reviewed by Eric Carlson.

As part of trying to transfer data channels to workers, this is a refactoring that replaces use of Document by use of ScriptExecutionContext.

No change of behavior.

  • Modules/mediastream/RTCDataChannel.cpp:

(WebCore::RTCDataChannel::create):
(WebCore::RTCDataChannel::createMessageQueue):
(WebCore::RTCDataChannel::RTCDataChannel):

  • Modules/mediastream/RTCDataChannel.h:
  • fileapi/NetworkSendQueue.cpp:

(WebCore::NetworkSendQueue::NetworkSendQueue):
(WebCore::NetworkSendQueue::enqueue):

  • fileapi/NetworkSendQueue.h:
3:52 AM Changeset in webkit [274206] by youenn@apple.com
  • 5 edits
    4 adds in trunk

Remove getUserMedia denied requests if user grants a new getUserMedia request
https://bugs.webkit.org/show_bug.cgi?id=222962
<rdar://74805451>

Reviewed by Eric Carlson.

Source/WebKit:

A user may deny an audio getUserMedia request.
On user gesture, user may be reprompted, in which case user may grant access.
Before the patch, after these two getUserMedia calls, if the web page was trying to call getUserMedia without user gesture, it would fail.
With this patch, we remove the first denied request based on the second granted request.
This allows getUserMedia to be granted, even without a user gesture.

Tests: fast/mediastream/granted-denied-request-management1.html

fast/mediastream/granted-denied-request-management2.html

  • UIProcess/UserMediaPermissionRequestManagerProxy.cpp:

(WebKit::UserMediaPermissionRequestManagerProxy::finishGrantingRequest):
(WebKit::isMatchingDeniedRequest):
(WebKit::UserMediaPermissionRequestManagerProxy::wasRequestDenied):
(WebKit::UserMediaPermissionRequestManagerProxy::updateStoredRequests):
(WebKit::UserMediaPermissionRequestManagerProxy::getRequestAction):

  • UIProcess/UserMediaPermissionRequestManagerProxy.h:

LayoutTests:

  • fast/mediastream/getUserMedia-deny-persistency5.html:

Update according new heuristic.

  • fast/mediastream/granted-denied-request-management1-expected.txt: Added.
  • fast/mediastream/granted-denied-request-management1.html: Added.
  • fast/mediastream/granted-denied-request-management2-expected.txt: Added.
  • fast/mediastream/granted-denied-request-management2.html: Added.
3:24 AM Changeset in webkit [274205] by commit-queue@webkit.org
  • 8 edits in trunk/Source/WebKit

Unreviewed, reverting r274186.
https://bugs.webkit.org/show_bug.cgi?id=223023

triggers an infinite network process launch loop in GTK

Reverted changeset:

"REGRESSION (r272376): [iOS] ASSERTION FAILED:

sessionID.isEphemeral()
!path.isEmpty() in

WebKit::NetworkProcess::swServerForSession"
https://bugs.webkit.org/show_bug.cgi?id=222713
https://trac.webkit.org/changeset/274186

1:44 AM Changeset in webkit [274204] by Adrian Perez de Castro
  • 1 copy in releases/WPE WebKit/webkit-2.31.90

WPE WebKit 2.31.90

12:19 AM Changeset in webkit [274203] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebCore

Release assertion failures under Editor::scanSelectionForTelephoneNumbers
https://bugs.webkit.org/show_bug.cgi?id=223016
<rdar://problem/73159921>

Reviewed by Ryosuke Niwa.

No new tests; speculative fix for a non-reproducible crash, which theoretically
has been avoided in a second way on trunk.

  • editing/Editor.cpp:

(WebCore::extendSelection):
(WebCore::Editor::scanSelectionForTelephoneNumbers):
In r272777, Ryosuke discovered a case where FrameSelection::isRange()
can be true, but firstRange() is an invalid range; in testing, forcing
this to be the case reproduces the crash as reported.

While that change may have fixed the root cause of this crash, we don't
know that we've found all of the ways that one can get a orphaned
selection *into* FrameSelection, and want a less risky workaround for
this crash, so we'll also fix it in scanSelectionForTelephoneNumbers,
by null-checking the result of FrameSelection::firstRange().

Also null-check the result of extendSelection(), since I cannot prove for sure
that a valid range cannot become invalid in this method.

Mar 9, 2021:

11:43 PM Changeset in webkit [274202] by Russell Epstein
  • 3 edits
    1 add in branches/safari-612.1.5-branch

Cherry-pick r273654. rdar://problem/75252578

Restoring App Highlight crashes if no range is found.
https://bugs.webkit.org/show_bug.cgi?id=222524

Reviewed by Tim Horton.

Source/WebCore:

Test: TestWebKitAPI.AppHighlights.AppHighlightRestoreFailure

  • Modules/highlight/AppHighlightStorage.cpp: (WebCore::AppHighlightStorage::restoreAppHighlight):

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/WKAppHighlights.mm: (TestWebKitAPI::TEST):

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

11:36 PM Changeset in webkit [274201] by don.olmstead@sony.com
  • 24 edits in trunk

GLib JSC API headers should only include other GLib JSC API headers
https://bugs.webkit.org/show_bug.cgi?id=222803

Reviewed by Michael Catanzaro.

.:

GTK and WPE both build the JavaScriptCore GLib API. However they diverged with their CMake
variable names for the directory containing jsc. Declare a single variable for that
directory, DERIVED_SOURCES_JAVASCRIPTCORE_GLIB_DIR, that is shared between GLib ports.

Remove the GLIB_API_DIR variant which will just be replaced with
${DERIVED_SOURCES_JAVASCRIPTCORE_GLIB_DIR}/jsc in the CMake code.

  • Source/cmake/OptionsGTK.cmake:
  • Source/cmake/OptionsWPE.cmake:

Source/JavaScriptCore:

A number of private GLib JSC headers are directly including private JavaScriptCore headers.
To get this to compile ${FORWARDING_HEADERS_DIR}/JavaScriptCore was added to the list of
includes in targets that needed the JSC headers. This is incorrect because they are being
distributed in different directories.

The private JSC headers being used were replaced with forward declarations. The source
files were then updated accordingly.

Also the include directories that contained the <jsc/Foo.h> headers were added to
JavaScriptCore_INTERFACE_INCLUDE_DIRECTORIES so they're properly propagated to dependants.

  • API/glib/JSCClassPrivate.h:
  • API/glib/JSCContext.cpp:
  • API/glib/JSCContextPrivate.h:
  • API/glib/JSCVirtualMachine.cpp:
  • API/glib/JSCVirtualMachinePrivate.h:
  • API/glib/JSCWrapperMap.cpp:
  • GLib.cmake:
  • PlatformGTK.cmake:

Source/WebKit:

Update the includes and include directories.

  • PlatformGTK.cmake:
  • PlatformWPE.cmake:
  • WebProcess/InjectedBundle/API/glib/DOM/WebKitDOMNode.cpp:
  • WebProcess/InjectedBundle/API/glib/WebKitFrame.cpp:

Tools:

Update the includes and include directories.

  • MiniBrowser/wpe/CMakeLists.txt:
  • TestWebKitAPI/PlatformGTK.cmake:
  • TestWebKitAPI/PlatformWPE.cmake:
  • TestWebKitAPI/Tests/JavaScriptCore/glib/TestJSC.cpp:
  • TestWebKitAPI/glib/PlatformGTK.cmake:
  • TestWebKitAPI/glib/PlatformWPE.cmake:
11:03 PM Changeset in webkit [274200] by commit-queue@webkit.org
  • 3 edits
    2 adds in trunk

Nullptr crash in Node::isTextNode() via ApplyBlockElementCommand::endOfNextParagraphSplittingTextNodesIfNeeded
https://bugs.webkit.org/show_bug.cgi?id=222620

Patch by Venky Dass <yaranamavenkataramana@apple.com> on 2021-03-09
Reviewed by Ryosuke Niwa.
Source/WebCore:

When a text node does not have a previous sibling there is a crash. The fix is to check if there is a previous sibling
before we try to de-reference it.

Test: editing/inserting/indent-split-text-not-having-previous-sibling-crash.html

  • editing/ApplyBlockElementCommand.cpp:

(WebCore::ApplyBlockElementCommand::endOfNextParagraphSplittingTextNodesIfNeeded):

LayoutTests:

Adding a regression test.

  • editing/inserting/indent-split-text-not-having-previous-sibling-crash-expected.txt: Added.
  • editing/inserting/indent-split-text-not-having-previous-sibling-crash.html: Added.
10:39 PM Changeset in webkit [274199] by rniwa@webkit.org
  • 5 edits in trunk

Unreviewed, reverting r274054.

Broke http/tests/misc/empty-urls.html

Reverted changeset:

"Use counters for pending events"
https://bugs.webkit.org/show_bug.cgi?id=218556
https://commits.webkit.org/r274054

10:20 PM Changeset in webkit [274198] by graouts@webkit.org
  • 5 edits in trunk

Correctly blend the flex-basis CSS property
https://bugs.webkit.org/show_bug.cgi?id=222981

Reviewed by Dean Jackson.

LayoutTests/imported/w3c:

Add an extra 14 PASS results. We now pass all the flex-basis interpolation tests.

  • web-platform-tests/css/css-flexbox/animation/flex-basis-composition-expected.txt:
  • web-platform-tests/css/css-flexbox/animation/flex-basis-interpolation-expected.txt:

Source/WebCore:

To correctly support blending of flex-basis we must ensure that negative values aren't
allowed but also ensure that "flex" doesn't interpolate if flex-basis can't either.

  • animation/CSSPropertyAnimation.cpp:

(WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap):

9:30 PM Changeset in webkit [274197] by commit-queue@webkit.org
  • 8 edits in trunk

HTTPS upgrade should allow same-site redirects from HTTPS to HTTP
https://bugs.webkit.org/show_bug.cgi?id=222994
<rdar://75159643>

Patch by Alex Christensen <achristensen@webkit.org> on 2021-03-09
Reviewed by Geoff Garen.

Source/WebCore:

Several sites support HTTPS, but have certain pages or resources that for some reason are only served over HTTP.
If you try to load the resource over HTTPS, it will simply redirect you to HTTP. In order to increase compatibility
with the web, we need to not do infinite redirect loops in this case.

The next version of this patch will have a test, but feel free to review the content of this code change before then.

  • contentextensions/ContentExtensionsBackend.cpp:

(WebCore::ContentExtensions::makeSecureIfNecessary):
(WebCore::ContentExtensions::ContentExtensionsBackend::processContentRuleListsForLoad):

  • contentextensions/ContentExtensionsBackend.h:
  • loader/ResourceLoader.cpp:

(WebCore::ResourceLoader::willSendRequestInternal):

  • page/UserContentProvider.cpp:

(WebCore::UserContentProvider::processContentRuleListsForLoad):

  • page/UserContentProvider.h:

(WebCore::UserContentProvider::processContentRuleListsForLoad):

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/ContentRuleListNotification.mm:

(TEST):

9:19 PM Changeset in webkit [274196] by Ryan Haddad
  • 4 edits
    1 add in trunk/LayoutTests

Resync web-platform-tests/dom tests from upstream
https://bugs.webkit.org/show_bug.cgi?id=222983

Unreviewed test gardening.

Rebaseline a few tests for iOS.

  • platform/ios-wk2/imported/w3c/web-platform-tests/dom/events/Event-dispatch-redispatch-expected.txt:
  • platform/ios-wk2/imported/w3c/web-platform-tests/dom/nodes/Document-createEvent.https-expected.txt:
  • platform/ios/imported/w3c/web-platform-tests/dom/events/EventTarget-dispatchEvent-expected.txt:
  • platform/ios/imported/w3c/web-platform-tests/dom/slot-recalc-expected.txt: Added.
8:51 PM Changeset in webkit [274195] by Chris Dumez
  • 2 edits in trunk/Tools

[ BigSur wk2 arm64 ] quite a few fast/forms (Layout-Tests) are text failing on Apple Silicon
https://bugs.webkit.org/show_bug.cgi?id=222988
<rdar://problem/75230416>

Unreviewed, disable AppleLanguagesTest.UpdateAppleLanguages API test on Apple Silicon since
it is timing out there and not properly resetting the system language. This is causing
trouble on the bots.

  • TestWebKitAPI/Tests/WebKit/OverrideAppleLanguagesPreference.mm:
8:44 PM Changeset in webkit [274194] by Chris Dumez
  • 2 edits in trunk/Source/WebKit

REGRESSION (r274174): ASSERTION FAILED: m_shouldBeCalledOnMainThread == isMainThread() under WebKit::RemoteSampleBufferDisplayLayerManager::createLayer
https://bugs.webkit.org/show_bug.cgi?id=223015
<rdar://problem/75248289>

Unreviewed, r274174 mistakenly replaced a call to dispatchToThread() with a call to callOnMainRunLoop().

  • GPUProcess/webrtc/RemoteSampleBufferDisplayLayerManager.cpp:

(WebKit::RemoteSampleBufferDisplayLayerManager::createLayer):

7:38 PM Changeset in webkit [274193] by Chris Dumez
  • 2 edits in trunk/Source/WTF

Use RELEASE_ASSERT() for Deque bounds checks
https://bugs.webkit.org/show_bug.cgi?id=223008

Reviewed by Alex Christensen.

Use RELEASE_ASSERT() for Deque bounds checks instead of ASSERT(), similarly to what we did for Vector.

  • wtf/Deque.h:

(WTF::inlineCapacity>::removeFirst):
(WTF::inlineCapacity>::removeLast):

7:12 PM Changeset in webkit [274192] by weinig@apple.com
  • 12 edits in trunk/Source

Preferences do not need to be passed to the WebProcess via WebPageCreationParameters since the store already is
https://bugs.webkit.org/show_bug.cgi?id=222945

Reviewed by Simon Fraser.

Source/WebCore:

  • page/EventHandler.cpp:

(WebCore::EventHandler::mouseDownMayStartSelect const):
Get textInteractionEnabled state from preferences, rather than copying its state to the page.

  • page/Page.cpp:

(WebCore::m_shouldRelaxThirdPartyCookieBlocking):

  • page/Page.h:

(WebCore::Page::textInteractionEnabled const): Deleted.
(WebCore::Page::setTextInteractionEnabled): Deleted.

  • page/PageConfiguration.h:

Remove textInteractionEnabled state from Page/PageConfiguration have it use Settings like other settings.

Source/WebKit:

needsInAppBrowserPrivacyQuirks and textInteractionEnabled were both being passed to the WebProcess twice,
once via the preferences store, and once via explicit serialization.

Use the preferences infrastructure to do this for us instead, and remove a bunch of unneeded code.

  • Shared/WebPageCreationParameters.cpp:

(WebKit::WebPageCreationParameters::encode const):
(WebKit::WebPageCreationParameters::decode):

  • Shared/WebPageCreationParameters.h:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::creationParameters):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::m_lastNavigationWasAppBound):
(WebKit::WebPage::updatePreferences):

Source/WTF:

  • Scripts/Preferences/WebPreferencesDebug.yaml:

NeedsInAppBrowserPrivacyQuirks is only ever accessed via the WebKit preferences store,
so does not need to be exposed in WebKitLegacy or WebCore. Achieve this by removing the
WebKitLegacy and WebCore defaults.

6:53 PM Changeset in webkit [274191] by Brent Fulgham
  • 2 edits in trunk/Source/WebKit

REGRESSION (r274109): Catalina Perf tests failing due to unexpected output (222993)
https://bugs.webkit.org/show_bug.cgi?id=222993
<rdar://75235585>

Reviewed by Alex Christensen.

NSURL generates a single line of console output when we use [NSURL init]. We can avoid hitting this
message by using the preferred default initializer.

Found by existing tests (e.g.: Animation/balls.html)

  • Shared/Cocoa/ArgumentCodersCocoa.mm:

(-[WKSecureCodingURLWrapper initWithCoder:]):
(-[WKSecureCodingURLWrapper initWithURL:]):

6:36 PM Changeset in webkit [274190] by Robert Jenner
  • 2 edits in trunk/LayoutTests

[ macOS wk 2 ] media/media-source/media-source-canplaythrough-event.html is a flakey text failure
https://bugs.webkit.org/show_bug.cgi?id=223012

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations: Updating test expectations to Pass Failure, until test can be fixed.
6:21 PM Changeset in webkit [274189] by Chris Dumez
  • 94 edits in trunk/Source/WebKit

Use UniqueRef<> instead of std::unique_ptr<> when passing IPC::Encoder to sendMessage()
https://bugs.webkit.org/show_bug.cgi?id=222992

Reviewed by Alex Christensen.

Use UniqueRef<> instead of std::unique_ptr<> when passing IPC::Encoder to sendMessage(), to
make it clear it cannot be null.

I had to update didReceiveSyncMessage() to return a boolean since we can no longer rely
on the function nulling out the encoder it is given (since I modified the type from
std::unique_ptr to WTF::UniqueRef).

  • Platform/IPC/Connection.cpp:

(IPC::Connection::dispatchMessageReceiverMessage):
(IPC::Connection::createSyncMessageEncoder):
(IPC::Connection::sendMessage):
(IPC::Connection::sendSyncReply):
(IPC::Connection::sendSyncMessage):
(IPC::Connection::sendOutgoingMessages):
(IPC::Connection::dispatchSyncMessage):

  • Platform/IPC/Connection.h:

(IPC::Connection::send):
(IPC::Connection::sendWithAsyncReply):
(IPC::Connection::sendSync):

  • Platform/IPC/Encoder.cpp:

(IPC::Encoder::wrapForTesting):

  • Platform/IPC/Encoder.h:
  • Platform/IPC/HandleMessage.h:

(IPC::handleMessageSynchronous):
(IPC::handleMessageSynchronousWantsConnection):
(IPC::handleMessageAsync):
(IPC::handleMessageAsyncWantsConnection):

  • Platform/IPC/MessageSender.cpp:

(IPC::MessageSender::sendMessage):

  • Platform/IPC/MessageSender.h:
  • Platform/IPC/StreamServerConnection.h:

(IPC::StreamServerConnectionBase::sendSyncReply):

  • Platform/IPC/cocoa/ConnectionCocoa.mm:

(IPC::Connection::open):
(IPC::Connection::sendOutgoingMessage):

  • Platform/IPC/unix/ConnectionUnix.cpp:

(IPC::Connection::sendOutgoingMessage):

  • Platform/IPC/win/ConnectionWin.cpp:

(IPC::Connection::sendOutgoingMessage):

  • Scripts/webkit/messages.py:
  • UIProcess/AuxiliaryProcessProxy.cpp:

(WebKit::AuxiliaryProcessProxy::sendMessage):

  • UIProcess/AuxiliaryProcessProxy.h:

(WebKit::AuxiliaryProcessProxy::send):
(WebKit::AuxiliaryProcessProxy::sendWithAsyncReply):

  • UIProcess/DrawingAreaProxy.cpp:

(WebKit::DrawingAreaProxy::sendMessage):

  • UIProcess/DrawingAreaProxy.h:
  • UIProcess/ProvisionalPageProxy.cpp:

(WebKit::ProvisionalPageProxy::sendMessage):

  • UIProcess/ProvisionalPageProxy.h:
  • UIProcess/SuspendedPageProxy.cpp:

(WebKit::SuspendedPageProxy::sendMessage):

  • UIProcess/SuspendedPageProxy.h:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::sendMessage):

  • UIProcess/WebPageProxy.h:
  • WebProcess/WebPage/IPCTestingAPI.cpp:

(WebKit::IPCTestingAPI::JSIPC::sendMessage):
(WebKit::IPCTestingAPI::JSIPC::sendSyncMessage):

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

(WebKit::RemoteLayerTreeDrawingArea::updateRendering):
(WebKit::RemoteLayerTreeDrawingArea::BackingStoreFlusher::create):
(WebKit::RemoteLayerTreeDrawingArea::BackingStoreFlusher::BackingStoreFlusher):
(WebKit::RemoteLayerTreeDrawingArea::BackingStoreFlusher::flush):

4:57 PM Changeset in webkit [274188] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

[BigSur arm64] 4 canvas-color-fonts tests consistently failing
https://bugs.webkit.org/show_bug.cgi?id=223005

Unreviewed test gardening.

  • platform/mac/TestExpectations: Mark tests as failing.
4:43 PM Changeset in webkit [274187] by achristensen@apple.com
  • 5 edits in trunk/Source

Reduce unnecessary string copies in ParsedContentRange
https://bugs.webkit.org/show_bug.cgi?id=221769

Reviewed by Geoff Garen.

Source/WebCore:

  • platform/network/ParsedContentRange.cpp:

(WebCore::parseContentRange):
(WebCore::ParsedContentRange::ParsedContentRange):

  • platform/network/ParsedRequestRange.cpp:

(WebCore::ParsedRequestRange::parse):

  • platform/network/ParsedRequestRange.h:

(WebCore::ParsedRequestRange::parse):

Source/WTF:

  • wtf/text/StringView.h:

(WTF::StringView::toInt64Strict const):

  • wtf/text/WTFString.h:
4:40 PM Changeset in webkit [274186] by achristensen@apple.com
  • 8 edits in trunk/Source/WebKit
REGRESSION (r272376): [iOS] ASSERTION FAILED: sessionID.isEphemeral()
!path.isEmpty() in WebKit::NetworkProcess::swServerForSession

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

Reviewed by Geoff Garen.

Because NetworkProcess::CreateNetworkConnectionToWebProcess is sent with SendOption::DispatchMessageEvenWhenWaitingForSyncReply, it is possible
for two messages of type NetworkProcess::AddWebsiteDataStore and two messages of type NetworkProcess::CreateNetworkConnectionToWebProcess to be in the queue,
but the second NetworkProcess::CreateNetworkConnectionToWebProcess jumps to the front of the line while the UI process is waiting for the reply to the first.
Then, when calling NetworkProcess::swServerForSession we expect the session's parameters to have been initialized in the network process already, but we cut
ahead of the parameter initialization message. This is a realistically rare condition that can only be hit when using SPI, but it is hit in the
ResourceLoadStatistics.StoreSuspension API test. To fix this, we send the WebsiteDataStoreParameters from each WebsiteDataStore in the NetworkProcessCreationParameters.
To avoid doing extra work, we introduce an early return in NetworkProcessProxy::addSession if we have already added parameters from this session to the network process.

  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::initializeNetworkProcess):
(WebKit::NetworkProcess::addSessionStorageQuotaManager):

  • NetworkProcess/NetworkProcessCreationParameters.cpp:

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

  • NetworkProcess/NetworkProcessCreationParameters.h:
  • UIProcess/Network/NetworkProcessProxy.cpp:

(WebKit::NetworkProcessProxy::sendCreationParametersToNewProcess):
(WebKit::NetworkProcessProxy::addSession):

  • UIProcess/Network/NetworkProcessProxy.h:
  • UIProcess/WebsiteData/WebsiteDataStore.cpp:

(WebKit::WebsiteDataStore::parametersFromEachWebsiteDataStore):

  • UIProcess/WebsiteData/WebsiteDataStore.h:
3:59 PM Changeset in webkit [274185] by Alan Coon
  • 1 delete in tags/Safari-611.1.21.1.6

Delete tag.

3:51 PM Changeset in webkit [274184] by commit-queue@webkit.org
  • 13 edits in trunk

Unreviewed, reverting r274171.
https://bugs.webkit.org/show_bug.cgi?id=223004

Broke canvas layout tests on Apple Silicon

Reverted changeset:

"[GPUP] Enable 2D Canvas in layout tests by default"
https://bugs.webkit.org/show_bug.cgi?id=222835
https://trac.webkit.org/changeset/274171

3:50 PM Changeset in webkit [274183] by mmaxfield@apple.com
  • 2 edits in trunk/Tools

MotionMark scores are super sensitive to a single long frame
https://bugs.webkit.org/show_bug.cgi?id=220847
<rdar://problem/74152743>

Unreviewed.

Update the plan.

  • Scripts/webkitpy/benchmark_runner/data/plans/motionmark1.1.plan:
3:42 PM Changeset in webkit [274182] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

[Big Sur arm64] WebGL texture-copying-feedback-loops tests crashing in com.apple.AppleMetalOpenGLRenderer GLDContextRec::finishResource
https://bugs.webkit.org/show_bug.cgi?id=223002

Unreviewed test gardening.

  • platform/mac/TestExpectations: Skip tests for Big Sur arm64.
3:30 PM Changeset in webkit [274181] by keith_miller@apple.com
  • 3 edits
    1 add in trunk

JSC Crash in makeString() while creating Error object.
https://bugs.webkit.org/show_bug.cgi?id=222452

Reviewed by Mark Lam.

JSTests:

  • stress/large-string-should-not-crash-error-creation.js: Added.

Source/JavaScriptCore:

This patch clamps the user provided part of error messages to
2-KB of characters. Technically, it could actually be 4-KB of
data for 16-bit strings. This is a somewhat randomly picked length
but seems like it should be sufficient for any normal use case I
can think of.

  • runtime/ExceptionHelpers.cpp:

(JSC::clampErrorMessage):
(JSC::defaultApproximateSourceError):
(JSC::defaultSourceAppender):

3:22 PM Changeset in webkit [274180] by Ben Nham
  • 2 edits in trunk/Source/WebCore

REGRESSION: [BigSur] ASSERT NOT REACHED in WebCore::ResourceLoadPriority WebCore::toResourceLoadPriority
https://bugs.webkit.org/show_bug.cgi?id=222998

Unreviewed, fix the debug assert caused by r274161.

CFURLRequestGetRequestPriority can return -1 for requests with no priority set (e.g. some
requests from the media stack). We need to handle this case when transforming a
CFURLRequestPriority to a ResourceLoadPriority.

  • platform/network/cf/ResourceRequestCFNet.h:

(WebCore::toResourceLoadPriority):

3:08 PM Changeset in webkit [274179] by mmaxfield@apple.com
  • 2 edits in trunk/PerformanceTests

MotionMark scores are super sensitive to a single long frame
https://bugs.webkit.org/show_bug.cgi?id=220847
<rdar://problem/74152743>

Reviewed by Jon Lee.

Currently, "ramp" tests have three phases. The middle phase is where they try to determine a maximum reasonable
complexity, and the third one is where they try various complexities between 0 and the maximum. The calculation
of this maximum reasonable complexity is currently very sensitive to outlier frame times. If there is a single
outlier frame time, the failure mode is to assume that the maximum complexity is ~10. So, the solution is to
ignore outlier frame times during this first phase, and to ensure that there are at least 9 frames measured that
have non-outlier times.

This test also changes the speed of the middle phase. Previously, each interval during this phase had
a complexity that was 3.16x of the previous complexity. This patch changes that to 1.78x of the previous
complexity for complexities above 50, and 1.33x for complexities above 10,000.

  • MotionMark/tests/resources/main.js:

(filterOutOutliers):
(_measureAndResetInterval):
(update):
(registerFrameTime):
(intervalHasConcluded):
(start):
(didFinishInterval):

3:07 PM Changeset in webkit [274178] by Russell Epstein
  • 1 copy in releases/Apple/Safari Technology Preview/Safari Technology Preview 120

Added a tag for Safari Technology Preview release 120.

2:54 PM Changeset in webkit [274177] by Russell Epstein
  • 1 delete in releases/Apple/Safari Technology Preview/Safari Technology Preview 120

Delete release.

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

Crash under WebViewImpl::flagsChanged()
https://bugs.webkit.org/show_bug.cgi?id=222989

Reviewed by Tim Horton.

Capture a WeakPtr for |this| in the lambda passed to interpretKeyEvent() and make sure |this|
is still alive before getting m_page. This is the same pattern that is used for other
interpretKeyEvent() calls in this file (but this one was missed).

  • UIProcess/Cocoa/WebViewImpl.mm:

(WebKit::WebViewImpl::flagsChanged):

2:17 PM Changeset in webkit [274175] by eric.carlson@apple.com
  • 3 edits in trunk/Source/WebCore

[GPU Process] MSE videos are unable to AirPlay
https://bugs.webkit.org/show_bug.cgi?id=222956
rdar://72798835

When a user picks an device from the AirPlay menu, WebKit fires a
'webkitcurrentplaybacktargetiswirelesschanged' event at the <video> element and
sets video.webkitCurrentPlaybackTargetIsWireless to true so script in the page
is aware that the user wants to use AirPlay. AirPlay requires a <video> element to
be backed by a url that an AppleTV can load and play, so this is also a signal for
a page's script to change the <video> source if it is currently backed by a source
that is incompatible with AirPlay, e.g. MSE, MediaStream, data:. If the current media engine
does not support AirPlay (m_player->canPlayToWirelessPlaybackTarget() returns false)
by the next runloop, HTMLMediaElement fires webkitcurrentplaybacktargetiswirelesschanged
again and sets video.webkitCurrentPlaybackTargetIsWireless to false to signal
that AirPlay is not active.

When media is played in the GPU Process, one turn of the runloop isn't long enough
for the new media engine to be set up, configured, and have the new state pushed
back to the web process, so HTMLMediaElement will now wait for up to 500ms for
m_player->canPlayToWirelessPlaybackTarget() to return true.

Reviewed by Jer Noble.

Tested manually, this requires and AppleTV to test.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::checkPlaybackTargetCompatablity):
(WebCore::HTMLMediaElement::setIsPlayingToWirelessTarget):

  • html/HTMLMediaElement.h:
2:07 PM Changeset in webkit [274174] by Chris Dumez
  • 50 edits in trunk

Stop using callOnMainThread() / isMainThread() in WebKit2
https://bugs.webkit.org/show_bug.cgi?id=222986

Reviewed by Alex Christensen.

Source/WebKit:

Use callOnMainRunLoop() / callOnMainRunLoopAndWait() / isMainRunLoop() in WebKit2
instead of callOnMainThread() / callOnMainThreadAndWait() / isMainThread().
Using the "MainThread" variants doesn't do the right thing in the UIProcess when
an iOS app is using both WK1 (with WebThread) and WK2.

  • GPUProcess/graphics/RemoteGraphicsContextGL.cpp:

(WebKit::RemoteGraphicsContextGL::copyTextureFromMedia):

  • GPUProcess/media/RemoteAudioDestinationManager.cpp:

(WebKit::RemoteAudioDestination::render):

  • GPUProcess/media/RemoteMediaResource.cpp:

(WebKit::RemoteMediaResource::~RemoteMediaResource):
(WebKit::RemoteMediaResource::responseReceived):

  • GPUProcess/webrtc/RemoteSampleBufferDisplayLayerManager.cpp:

(WebKit::RemoteSampleBufferDisplayLayerManager::close):
(WebKit::RemoteSampleBufferDisplayLayerManager::createLayer):
(WebKit::RemoteSampleBufferDisplayLayerManager::releaseLayer):

  • NetworkProcess/Downloads/Download.cpp:

(WebKit::Download::cancel):

  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::storageQuotaManager):

  • NetworkProcess/cache/CacheStorageEngine.cpp:

(WebKit::CacheStorage::getDirectorySize):
(WebKit::CacheStorage::Engine::diskUsage):

  • NetworkProcess/cocoa/NetworkDataTaskCocoa.mm:

(WebKit::NetworkDataTaskCocoa::resume):

  • NetworkProcess/webrtc/NetworkRTCMonitor.cpp:

(WebKit::NetworkManagerWrapper::onNetworksChanged):

  • NetworkProcess/webrtc/NetworkRTCProvider.cpp:

(WebKit::NetworkRTCProvider::createServerTCPSocket):
(WebKit::NetworkRTCProvider::createClientTCPSocket):
(WebKit::NetworkRTCProvider::createResolver):
(WebKit::NetworkRTCProvider::stopResolver):
(WebKit::NetworkRTCProvider::closeListeningSockets):

  • Platform/IPC/Connection.cpp:

(IPC::Connection::sendMessage):
(IPC::Connection::dispatchMessage):

  • Shared/Authentication/cocoa/AuthenticationManagerCocoa.mm:

(WebKit::AuthenticationManager::initializeConnection):

  • Shared/mac/MediaFormatReader/MediaFormatReader.cpp:

(WebKit::MediaFormatReader::startOnMainThread):
(WebKit::MediaFormatReader::parseByteSource):
(WebKit::MediaFormatReader::didParseTracks):
(WebKit::MediaFormatReader::didProvideMediaData):
(WebKit::MediaFormatReader::finishParsing):

  • Shared/mac/MediaFormatReader/MediaSampleByteRange.cpp:

(WebKit::MediaSampleByteRange::MediaSampleByteRange):

  • Shared/mac/MediaFormatReader/MediaTrackReader.cpp:

(WebKit::MediaTrackReader::MediaTrackReader):
(WebKit::MediaTrackReader::addSample):
(WebKit::MediaTrackReader::finishParsing):

  • Shared/mac/MediaFormatReader/MediaTrackReader.h:
  • UIProcess/API/glib/IconDatabase.cpp:

(WebKit::IconDatabase::IconDatabase):
(WebKit::IconDatabase::~IconDatabase):
(WebKit::IconDatabase::createTablesIfNeeded):
(WebKit::IconDatabase::populatePageURLToIconURLMap):
(WebKit::IconDatabase::clearStatements):
(WebKit::IconDatabase::pruneTimerFired):
(WebKit::IconDatabase::startPruneTimer):
(WebKit::IconDatabase::clearLoadedIconsTimerFired):
(WebKit::IconDatabase::startClearLoadedIconsTimer):
(WebKit::IconDatabase::iconIDForIconURL):
(WebKit::IconDatabase::setIconIDForPageURL):
(WebKit::IconDatabase::iconData):
(WebKit::IconDatabase::addIcon):
(WebKit::IconDatabase::updateIconTimestamp):
(WebKit::IconDatabase::deleteIcon):
(WebKit::IconDatabase::checkIconURLAndSetPageURLIfNeeded):
(WebKit::IconDatabase::loadIconForPageURL):
(WebKit::IconDatabase::iconURLForPageURL):
(WebKit::IconDatabase::setIconForPageURL):
(WebKit::IconDatabase::clear):

  • UIProcess/Cocoa/MediaPermissionUtilities.mm:

(WebKit::requestAVCaptureAccessForType):
(WebKit::requestSpeechRecognitionAccess):

  • UIProcess/Cocoa/PreferenceObserver.mm:

(-[WKUserDefaults _notifyObserversOfChangeFromValuesForKeys:toValuesForKeys:]):

  • UIProcess/Cocoa/WebProcessPoolCocoa.mm:

(WebKit::nonBrowserServices):
(WebKit::agxCompilerClasses):
(WebKit::agxCompilerServices):
(WebKit::diagnosticServices):

  • UIProcess/Inspector/socket/RemoteInspectorClient.cpp:

(WebKit::RemoteInspectorClient::sendWebInspectorEvent):
(WebKit::RemoteInspectorClient::didClose):

  • UIProcess/WebFramePolicyListenerProxy.cpp:

(WebKit::WebFramePolicyListenerProxy::didReceiveSafeBrowsingResults):

  • UIProcess/WebPageProxy.cpp:

(WebKit::gpuIOKitClasses):
(WebKit::gpuMachServices):
(WebKit::mediaRelatedMachServices):

  • UIProcess/ios/WKPDFView.mm:

(-[WKPDFView web_setContentProviderData:suggestedFilename:]):

  • UIProcess/mac/WKPrintingView.mm:

(-[WKPrintingView dealloc]):

  • WebProcess/Cache/WebCacheStorageConnection.cpp:

(WebKit::WebCacheStorageConnection::~WebCacheStorageConnection):

  • WebProcess/GPU/graphics/RemoteImageBufferProxy.h:

(WebKit::RemoteImageBufferProxy::waitForDidFlushOnSecondaryThread):

  • WebProcess/GPU/media/MediaPlayerPrivateRemote.cpp:

(WebKit::MediaPlayerPrivateRemote::load):

  • WebProcess/GPU/media/RemoteAudioDestinationProxy.cpp:

(WebKit::RemoteAudioDestinationProxy::renderQuantum):

  • WebProcess/GPU/media/RemoteAudioSourceProvider.cpp:

(WebKit::RemoteAudioSourceProvider::RemoteAudioSourceProvider):
(WebKit::RemoteAudioSourceProvider::close):

  • WebProcess/GPU/media/RemoteImageDecoderAVF.cpp:

(WebKit::RemoteImageDecoderAVF::createFrameImageAtIndex):

  • WebProcess/GPU/webrtc/LibWebRTCCodecs.cpp:

(WebKit::LibWebRTCCodecs::setCallbacks):
(WebKit::LibWebRTCCodecs::failedDecoding):
(WebKit::LibWebRTCCodecs::completedDecoding):
(WebKit::LibWebRTCCodecs::completedEncoding):

  • WebProcess/Network/webrtc/LibWebRTCResolver.cpp:

(WebKit::LibWebRTCResolver::sendOnMainThread):

  • WebProcess/Network/webrtc/LibWebRTCSocketFactory.cpp:

(WebKit::LibWebRTCSocketFactory::createServerTcpSocket):
(WebKit::LibWebRTCSocketFactory::createUdpSocket):
(WebKit::LibWebRTCSocketFactory::createClientTcpSocket):

  • WebProcess/Network/webrtc/WebRTCMonitor.cpp:

(WebKit::WebRTCMonitor::sendOnMainThread):

  • WebProcess/Plugins/PDF/PDFPlugin.mm:

(WebKit::PDFPlugin::pdfLog):
(WebKit::PDFPlugin::logStreamLoader):
(WebKit::PDFPlugin::verboseLog):
(WebKit::PDFPlugin::receivedNonLinearizedPDFSentinel):
(WebKit::dataProviderGetBytesAtPositionCallback):
(WebKit::dataProviderGetByteRangesCallback):
(WebKit::dataProviderReleaseInfoCallback):
(WebKit::PDFPlugin::threadEntry):
(WebKit::PDFPlugin::getResourceBytesAtPositionMainThread):
(WebKit::PDFPlugin::getResourceBytesAtPosition):
(WebKit::PDFPlugin::adoptBackgroundThreadDocument):
(WebKit::PDFPlugin::installPDFDocument):
(WebKit::PDFPlugin::tryRunScriptsInPDFDocument):

  • WebProcess/Storage/WebSWClientConnection.cpp:

(WebKit::WebSWClientConnection::didMatchRegistration):
(WebKit::WebSWClientConnection::didGetRegistrations):
(WebKit::WebSWClientConnection::matchRegistration):
(WebKit::WebSWClientConnection::getRegistrations):

  • WebProcess/Storage/WebServiceWorkerFetchTaskClient.cpp:

(WebKit::WebServiceWorkerFetchTaskClient::didReceiveFormDataAndFinish):
(WebKit::WebServiceWorkerFetchTaskClient::cleanup):

  • WebProcess/WebPage/FindController.cpp:

(WebKit::FindController::drawRect):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::elementDidBlur):

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::handleSyntheticClick):
(WebKit::WebPage::didFinishContentChangeObserving):
(WebKit::WebPage::updateInputContextAfterBlurringAndRefocusingElementIfNeeded):

  • WebProcess/WebPage/mac/DrawingAreaMac.cpp:

(WebKit::DisplayRefreshMonitorMac::displayLinkFired):

  • WebProcess/WebPage/mac/WKAccessibilityWebPageObjectBase.mm:

(-[WKAccessibilityWebPageObjectBase axObjectCache]):
(-[WKAccessibilityWebPageObjectBase accessibilityPluginObject]):
(-[WKAccessibilityWebPageObjectBase setWebPage:]):
(-[WKAccessibilityWebPageObjectBase setHasMainFramePlugin:]):
(-[WKAccessibilityWebPageObjectBase setRemoteParent:]):

  • WebProcess/cocoa/RemoteRealtimeAudioSource.cpp:

(WebKit::RemoteRealtimeAudioSource::remoteAudioSamplesAvailable):

  • WebProcess/cocoa/RemoteRealtimeMediaSourceProxy.cpp:

(WebKit::RemoteRealtimeMediaSourceProxy::connection):

Source/WTF:

  • wtf/MainThread.h:

Tools:

Add corresponding style checker rules.

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

(check_no_callonmainthread):
(check_no_ismainthread):
(check_style):
(CppChecker):

1:36 PM Changeset in webkit [274173] by Manuel Rego Casasnovas
  • 7 edits in trunk/Source/WebCore

[selectors] Move :focus-viisble & :focus-within flags from Node to UserActionElementSet
https://bugs.webkit.org/show_bug.cgi?id=222647

Reviewed by Antti Koivisto.

This patch avoids using flags in Node.h for :focus-visible and :focus-within pseudo classes,
and move them to UserActionElementSet.
This makes them consistent with :focus flag, and saves some bits in Node.h for other flags in the future.

On top of that this makes :focus-within SelectorCompiler implementation consistent with :focus and :focus-visible implementations.

  • css/SelectorCheckerTestFunctions.h:

(WebCore::matchesFocusWithinPseudoClass):

  • cssjit/SelectorCompiler.cpp:

(WebCore::SelectorCompiler::JSC_DEFINE_JIT_OPERATION):
(WebCore::SelectorCompiler::addPseudoClassType):
(WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementMatching):

  • dom/Element.cpp:

(WebCore::Element::isUserActionElementHasFocusVisible const):
(WebCore::Element::isUserActionElementHasFocusWithin const):
(WebCore::Element::setHasFocusVisible):
(WebCore::Element::setHasFocusWithin):

  • dom/Element.h:

(WebCore::Element::hasFocusVisible const):
(WebCore::Element::hasFocusWithin const):

  • dom/Node.h:

(WebCore::Node::flagIsLink):

  • dom/UserActionElementSet.h:

(WebCore::UserActionElementSet::hasFocusVisible):
(WebCore::UserActionElementSet::hasFocusWithin):
(WebCore::UserActionElementSet::setHasFocusVisible):
(WebCore::UserActionElementSet::setHasFocusWithin):

1:27 PM Changeset in webkit [274172] by Chris Dumez
  • 53 edits in trunk/Source/WebKit

[IPC Hardening] Protect against bad input in WebProcessProxy::createSpeechRecognitionServer() and MessageReceiverMap
https://bugs.webkit.org/show_bug.cgi?id=222948
<rdar://problem/75191472>

Reviewed by Alex Christensen.

Update MessageReceiverMap so that:

  1. Trying to remove a MessageReceiver that is not in the map does not do dangerous things.
  2. It stores weak pointers to the receivers instead of raw pointers. This would avoid doing bad things when trying to remove a message receiver that's already been destroyed.

Add a MESSAGE_CHECK() in WebProcessProxy::createSpeechRecognitionServer() to
make sure the identifier is not already in the map. There used to be a debug
assertion but we should MESSAGE_CHECK() too since the value is coming from
IPC.

  • GPUProcess/GPUConnectionToWebProcess.h:
  • GPUProcess/GPUProcess.h:
  • GPUProcess/media/RemoteAudioSessionProxy.h:
  • GPUProcess/media/RemoteCDMFactoryProxy.h:
  • GPUProcess/media/RemoteCDMProxy.h:
  • GPUProcess/media/RemoteLegacyCDMFactoryProxy.h:
  • GPUProcess/media/RemoteLegacyCDMProxy.h:
  • GPUProcess/media/RemoteLegacyCDMSessionProxy.h:
  • GPUProcess/media/RemoteMediaEngineConfigurationFactoryProxy.h:
  • GPUProcess/media/RemoteMediaPlayerManagerProxy.h:
  • GPUProcess/media/RemoteMediaPlayerProxy.h:
  • GPUProcess/media/RemoteMediaResourceManager.h:
  • GPUProcess/webrtc/RemoteSampleBufferDisplayLayer.h:
  • NetworkProcess/NetworkProcess.h:
  • NetworkProcess/ServiceWorker/WebSWServerConnection.h:
  • NetworkProcess/ServiceWorker/WebSWServerToContextConnection.h:
  • Platform/IPC/MessageReceiver.h:
  • Platform/IPC/MessageReceiverMap.cpp:

(IPC::MessageReceiverMap::addMessageReceiver):
(IPC::MessageReceiverMap::removeMessageReceiver):
(IPC::MessageReceiverMap::dispatchMessage):
(IPC::MessageReceiverMap::dispatchSyncMessage):

  • Platform/IPC/MessageReceiverMap.h:
  • Shared/API/Cocoa/RemoteObjectRegistry.h:
  • Shared/ApplePay/WebPaymentCoordinatorProxy.h:
  • Shared/Authentication/AuthenticationManager.h:
  • Shared/AuxiliaryProcess.h:
  • UIProcess/GPU/GPUProcessProxy.h:
  • UIProcess/Inspector/WebInspectorProxy.h:
  • UIProcess/Inspector/WebInspectorUIExtensionControllerProxy.h:
  • UIProcess/Media/AudioSessionRoutingArbitratorProxy.h:
  • UIProcess/Network/CustomProtocols/LegacyCustomProtocolManagerProxy.h:
  • UIProcess/Network/NetworkProcessProxy.h:
  • UIProcess/ProvisionalPageProxy.h:
  • UIProcess/SpeechRecognitionRemoteRealtimeMediaSourceManager.h:
  • UIProcess/SpeechRecognitionServer.h:
  • UIProcess/SuspendedPageProxy.h:
  • UIProcess/WebAuthentication/WebAuthnProcessProxy.h:
  • UIProcess/WebPageProxy.h:
  • UIProcess/WebProcessPool.h:
  • UIProcess/WebProcessProxy.cpp:

(WebKit::WebProcessProxy::createSpeechRecognitionServer):

  • UIProcess/WebProcessProxy.h:
  • WebAuthnProcess/WebAuthnProcess.h:
  • WebProcess/GPU/GPUProcessConnection.h:
  • WebProcess/GPU/graphics/RemoteRenderingBackendProxy.h:
  • WebProcess/GPU/media/MediaPlayerPrivateRemote.h:
  • WebProcess/GPU/media/MediaSourcePrivateRemote.h:
  • WebProcess/GPU/media/SourceBufferPrivateRemote.h:
  • WebProcess/GPU/webrtc/SampleBufferDisplayLayer.h:
  • WebProcess/Inspector/WebInspectorUIExtensionController.h:
  • WebProcess/Network/WebSocketChannel.h:
  • WebProcess/Speech/SpeechRecognitionRealtimeMediaSourceManager.h:
  • WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.h:
  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.h:
  • WebProcess/WebStorage/StorageAreaMap.h:
1:19 PM Changeset in webkit [274171] by Said Abou-Hallawa
  • 13 edits in trunk

[GPUP] Enable 2D Canvas in layout tests by default
https://bugs.webkit.org/show_bug.cgi?id=222835

Reviewed by Simon Fraser.

Source/WTF:

Move UseGPUProcessForCanvasRenderingEnabled from WebPreferencesInternal
to WebPreferencesExperimental so that the WebKitTestRunner will turn it
on by default.

  • Scripts/Preferences/WebPreferencesExperimental.yaml:
  • Scripts/Preferences/WebPreferencesInternal.yaml:

LayoutTests:

Some of the canvas layout tests are still failing when GPUP is enabled
for 2D Canvas. Skip these tests for now.

  • http/tests/canvas/color-fonts/fill-gradient-sbix-2.html:
  • http/tests/canvas/color-fonts/fill-gradient-sbix-3.html:
  • http/tests/canvas/color-fonts/fill-gradient-sbix-4.html:
  • http/tests/canvas/color-fonts/stroke-gradient-sbix-2.html:
  • http/tests/canvas/color-fonts/stroke-gradient-sbix-3.html:
  • http/tests/canvas/color-fonts/stroke-gradient-sbix-4.html:

webkit.org/b/222881

  • inspector/canvas/memory.html:

webkit.org/b/222880

1:17 PM Changeset in webkit [274170] by Antti Koivisto
  • 5 edits
    2 adds in trunk

REGRESSION (r273003): Animated style may lose original display property value
https://bugs.webkit.org/show_bug.cgi?id=222979
rdar://75056684

Reviewed by Zalan Bujtas.

Source/WebCore:

Test: fast/animation/animation-display-style-adjustment.html

The original (non-blockified) display property value is saved in the beginning of Style::Adjuster::adjust.
It is needed to implement absolute positioning correctly in some situations. However with animations
the style adjustment code may run twice on the same style and the second run will clobber the saved original value.

  • rendering/RenderTheme.cpp:

(WebCore::RenderTheme::adjustStyle):

  • rendering/style/RenderStyle.h:

(WebCore::RenderStyle::setDisplay):

Always save the original value when setting the property normally.

(WebCore::RenderStyle::setEffectiveDisplay):
(WebCore::RenderStyle::setOriginalDisplay): Deleted.

Add setEffectiveDisplay that doesn't affect the original value for adjuster use.

  • style/StyleAdjuster.cpp:

(WebCore::Style::Adjuster::adjust const):

Remove the saving of the original value.
Use setEffectiveDisplay in all adjuster code, preserving the original value.

(WebCore::Style::Adjuster::adjustDisplayContentsStyle const):
(WebCore::Style::Adjuster::adjustSVGElementStyle):
(WebCore::Style::Adjuster::adjustForSiteSpecificQuirks const):

LayoutTests:

  • fast/animation/animation-display-style-adjustment-expected.html: Added.
  • fast/animation/animation-display-style-adjustment.html: Added.
12:52 PM Changeset in webkit [274169] by aakash_jain@apple.com
  • 3 edits in trunk/Tools

buildbot checkconfig is failing in ews after buildbot upgrade
https://bugs.webkit.org/show_bug.cgi?id=222974

Reviewed by Jonathan Bedard.

  • CISupport/ews-build/steps.py:

(RunEWSBuildbotCheckConfig.start): Set LC_ALL environment variable on bots.

  • CISupport/ews-build/steps_unittest.py: Updated unit-tests accordingly.
12:41 PM Changeset in webkit [274168] by weinig@apple.com
  • 8 edits in trunk/Source

Remove CSSParserContext::enforcesCSSMIMETypeInNoQuirksMode as it is unused
https://bugs.webkit.org/show_bug.cgi?id=222949

Reviewed by Darin Adler.

At some point in the past we stoped doing anything with the enforcesCSSMIMETypeInNoQuirksMode
bit on CSSParserContext.

The only time it was ever disabled was when running ancient versions of iWeb, a product that
itself hasn't existed for over a decade, so I think we are ok to remove it.

Source/WebCore:

  • css/parser/CSSParserContext.cpp:

(WebCore::operator==):

  • css/parser/CSSParserContext.h:

(WebCore::CSSParserContextHash::hash):

Source/WebKitLegacy/mac:

  • WebView/WebPreferencesDefaultValues.h:
  • WebView/WebPreferencesDefaultValues.mm:

(WebKit::defaultEnforceCSSMIMETypeInNoQuirksMode): Deleted.

Source/WTF:

  • Scripts/Preferences/WebPreferences.yaml:
12:14 PM Changeset in webkit [274167] by Chris Dumez
  • 17 edits
    6 adds in trunk/LayoutTests/imported/w3c

Resync web-platform-tests/dom tests from upstream
https://bugs.webkit.org/show_bug.cgi?id=222983

Reviewed by Geoffrey Garen.

Resync web-platform-tests/dom tests from upstream 7a9388b0f029e03.

  • web-platform-tests/dom/events/Event-dispatch-click-expected.txt:
  • web-platform-tests/dom/events/Event-dispatch-click.html:
  • web-platform-tests/dom/events/Event-dispatch-redispatch.html:
  • web-platform-tests/dom/events/Event-stopPropagation-cancel-bubbling-expected.txt: Added.
  • web-platform-tests/dom/events/Event-stopPropagation-cancel-bubbling.html: Added.
  • web-platform-tests/dom/events/EventTarget-dispatchEvent-expected.txt:
  • web-platform-tests/dom/events/document-level-wheel-event-listener-passive-by-default-expected.txt: Added.
  • web-platform-tests/dom/events/document-level-wheel-event-listener-passive-by-default.html: Added.
  • web-platform-tests/dom/events/w3c-import.log:
  • web-platform-tests/dom/nodes/Document-createEvent.https-expected.txt:
  • web-platform-tests/dom/nodes/Document-createEvent.https.html:
  • web-platform-tests/dom/nodes/Document-createEvent.js:
  • web-platform-tests/dom/nodes/Element-matches-expected.txt:
  • web-platform-tests/dom/nodes/Element-webkitMatchesSelector-expected.txt:
  • web-platform-tests/dom/nodes/ParentNode-querySelector-All-expected.txt:
  • web-platform-tests/dom/nodes/ParentNode-querySelector-All-xht-expected.txt:
  • web-platform-tests/dom/nodes/aria-element-reflection.tentative-expected.txt:
  • web-platform-tests/dom/nodes/aria-element-reflection.tentative.html:
  • web-platform-tests/dom/nodes/selectors.js:
  • web-platform-tests/dom/slot-recalc-expected.txt: Added.
  • web-platform-tests/dom/slot-recalc.html: Added.
  • web-platform-tests/dom/w3c-import.log:
12:11 PM Changeset in webkit [274166] by commit-queue@webkit.org
  • 9 edits in trunk

.:
[GTK] Reenable -fvisibility=hidden
https://bugs.webkit.org/show_bug.cgi?id=181916

Patch by Michael Catanzaro <Michael Catanzaro> on 2021-03-09
Reviewed by Don Olmstead.

In non-DEVELOPER_MODE builds, we rely on a linker version script to hide symbols that we
don't want to export. Building with hidden visibility might seem redundant with this, but
actually building with hidden visibility has advantages anyway. See
https://gcc.gnu.org/wiki/Visibility.

Note that I'm not confident GTK port can safely use -fvisibility-inlines-hidden, since it's
split between two shared objects. Also, because GTK is split into two shared objects, GTK
needs to build bmalloc and WTF as CMake OBJECT libraries, which is effectively the same as
using -Wl,--whole-archive to prevent symbols from being prematurely stripped away.

P.S. Major credit to Don Olmstead, who did most of the work to make this possible, which has
already landed in previous patches.

  • Source/cmake/OptionsGTK.cmake:

Source/WebCore:
[WPE][GTK] Reenable -fvisibility=hidden (and -fvisibility-inlines-hidden for WPE)
https://bugs.webkit.org/show_bug.cgi?id=181916

Patch by Michael Catanzaro <Michael Catanzaro> on 2021-03-09
Reviewed by Don Olmstead.

We need to export the destructor of EventTarget.

  • PlatformGTK.cmake:
  • dom/EventTarget.cpp:
  • dom/EventTarget.h:

Tools:
[GTK] Reenable -fvisibility=hidden
https://bugs.webkit.org/show_bug.cgi?id=181916

Patch by Michael Catanzaro <Michael Catanzaro> on 2021-03-09
Reviewed by Don Olmstead.

  • TestWebKitAPI/PlatformGTK.cmake:
  • TestWebKitAPI/glib/TestExpectations.json:
12:09 PM Changeset in webkit [274165] by graouts@webkit.org
  • 4 edits
    2 adds in trunk

[Web Animations] setKeyframes does not preserve animation's current offset
https://bugs.webkit.org/show_bug.cgi?id=222939
<rdar://problem/75207793>

Reviewed by Dean Jackson.

Source/WebCore:

Test: webanimations/set-keyframes-after-animation-completion.html

When setKeyframes() is called on a KeyframeEffect, it clears the existing blending keyframes
created for the style system which will be re-populated on the next style update.

When an animation completes, it becomes eligible for being removed unless its effect is the
top-most effect in the target element's effect stack affecting one of the CSS properties
animated by effects in the stack. To determine what properties an effect animates, the method
KeyframeEffect::animatedProperties() is used.

Until now, KeyframeEffect::animatedProperties() simply returned the properties from the
blending keyframes. As such, if blending keyframes are empty, that method returns an empty
set of properties.

Since blending keyframes are cleared by a call to setKeyframes(), calling this method on
the effect of an animation that just finished will remove that animation and the effect
will no longer be applied when updating styles.

To fix this, we add a new instance variable on KeyframeEffect to store the list of properties
affected by the effect from the keyframes parsed by setKeyframes() until we generate the
blending keyframes during the next style update.

As soon as we generate the blending keyframes and setBlendingKeyframes() is called, we clear
that new property. This guarantees that no matter how keyframes are specified – CSS Transitions,
CSS Animations or Web Animations JS API – the animatedProperties() method returns the set
of affected properties.

  • animation/KeyframeEffect.cpp:

(WebCore::KeyframeEffect::animatedProperties):
(WebCore::KeyframeEffect::setBlendingKeyframes):

  • animation/KeyframeEffect.h:

(WebCore::KeyframeEffect::animatedProperties const): Deleted.

LayoutTests:

Add a new test that checks that updating keyframes after an animation has completed
correctly updates styles accounting for the new keyframes.

  • webanimations/set-keyframes-after-animation-completion-expected.html: Added.
  • webanimations/set-keyframes-after-animation-completion.html: Added.
12:03 PM Changeset in webkit [274164] by Said Abou-Hallawa
  • 2 edits in trunk/Source/WebCore

[GPU Process] ImageBitmap should release its ImageBuffer in the main thread
https://bugs.webkit.org/show_bug.cgi?id=222960

Reviewed by Simon Fraser.

The ImageBuffer of the ImageBitmap should be deleted on the main thread
only since its deletion may require sending messages to the GPUP.

Covered by existing test:

imported/w3c/web-platform-tests/html/canvas/element/imagebitmap/createImageBitmap-in-worker-transfer.html

  • html/ImageBitmap.cpp:

(WebCore::ImageBitmap::~ImageBitmap):

11:57 AM Changeset in webkit [274163] by Fujii Hironori
  • 3 edits in trunk/Source/WebKit

[WinCairo] Deadlocks in WTF::Thread::ThreadHolder::~ThreadHolder while WebKitWebProcess.exe is shutting down
https://bugs.webkit.org/show_bug.cgi?id=222682

Reviewed by Don Olmstead.

WinCairo WebKit2 layout tests were observing deadlocks in
WTF::Thread::ThreadHolder::~ThreadHolder while
WebKitWebProcess.exe is shutting down in the IPC thread.
WebProcess calls _exit in IPC threads if a IPC connection is
disconnected.

r260911 (Bug 210955) fixed a similar deadlock by skipping the
destruction in ~ThreadHolder if the calling thread is the main
thread.

Microsoft Docs describe how a process is terminated and recommend
TerminateProcess API to avoid such deadlocks.
<https://docs.microsoft.com/en-us/windows/win32/api/processthreadsapi/nf-processthreadsapi-exitprocess>

  • NetworkProcess/NetworkProcess.cpp:

(WebKit::callExitSoon): Use TerminateProcess instead of _exit.

  • WebProcess/WebProcess.cpp:

(WebKit::callExit): Ditto.

11:24 AM Changeset in webkit [274162] by Wenson Hsieh
  • 2 edits in trunk/Source/WebCore

Unreviewed, fix the ENABLE(APP_HIGHLIGHTS) build after r274155

  • Modules/highlight/AppHighlightStorage.h: Fix the signature of AppHighlightStorage::storeAppHighlight.
11:08 AM Changeset in webkit [274161] by Ben Nham
  • 8 edits in trunk/Source

Adopt new NSURLSessionConfiguration SPI for connection cache configuration
https://bugs.webkit.org/show_bug.cgi?id=222934

Reviewed by Geoffrey Garen.

Source/WebCore:

This uses the NSURLSessionConfiguration connection cache limit SPI introduced in Big Sur to
properly set the parameters we want for HTTP/1.1 connections. Previously we tried to do this
using _CFNetworkHTTPConnectionCacheSetLimit in NetworkProcessCocoa, but this didn't work
because that SPI only applies to NSURLConnection rather than NSURLSession.

In particular, this meant that the number of priority levels wasn't set correctly, which we
had to work around by constraining the number of priority levels when mapping WebKit
resource priorities to CFNetwork priorities (https://bugs.webkit.org/show_bug.cgi?id=203423).
This patch adopts the SPI and removes that workaround.

  • platform/network/cf/ResourceRequestCFNet.h:

(WebCore::toResourceLoadPriority):
(WebCore::toPlatformRequestPriority):

Source/WebCore/PAL:

Declare NSURLSessionConfiguration connection cache limit SPI when building using the public SDK.

  • pal/spi/cf/CFNetworkSPI.h:

Source/WebKit:

This uses the NSURLSessionConfiguration connection cache limit SPI introduced in Big Sur to
properly set the parameters we want for HTTP/1.1 connections. Previously we tried to do this
using _CFNetworkHTTPConnectionCacheSetLimit in NetworkProcessCocoa, but this didn't work
because that SPI only applies to NSURLConnection rather than NSURLSession.

In particular, this meant that the number of priority levels wasn't set correctly, which we
had to work around by constraining the number of priority levels when mapping WebKit
resource priorities to CFNetwork priorities (https://bugs.webkit.org/show_bug.cgi?id=203423).
This patch adopts the SPI and removes that workaround.

  • NetworkProcess/cocoa/NetworkSessionCocoa.mm:

(WebKit::configurationForSessionID):

Source/WTF:

Add the HAVE_CFNETWORK_NSURLSESSION_CONNECTION_CACHE_LIMITS flag to control whether or not
to use the connection cache limit SPI on NSURLSessionConfiguration.

  • wtf/PlatformHave.h:
10:58 AM Changeset in webkit [274160] by Chris Dumez
  • 2 edits in trunk/Source/WebKit

[IPC Hardening] IPC::decode(Decoder& decoder, RetainPtr<CFDictionaryRef>&) should make sure keys & values aren't null
https://bugs.webkit.org/show_bug.cgi?id=222980

Reviewed by Geoffrey Garen.

[NSMutableDictionary setObject:forKey:] throws an exception when the given object or key is nil. The dictionary decoder
should therefore fail nicely when either of these is nil, instead of crashing.

  • Shared/cf/ArgumentCodersCF.cpp:

(IPC::decode):

10:58 AM Changeset in webkit [274159] by mark.lam@apple.com
  • 4 edits in trunk

Use --verifyGC=true on some JSC stress test configurations.
https://bugs.webkit.org/show_bug.cgi?id=222289

Reviewed by Filip Pizlo.

JSTests:

  • stress/heap-analyzer-taking-lock.js:

Tools:

  • Scripts/run-jsc-stress-tests:
10:50 AM Changeset in webkit [274158] by Chris Dumez
  • 3 edits in trunk/Source/WebKit

[IPC Hardening] SandboxExtension::HandleArray IPC decoder should not call Vector::resize()
https://bugs.webkit.org/show_bug.cgi?id=222977
<rdar://problem/75218451>

Reviewed by Anders Carlsson.

SandboxExtension::HandleArray IPC decoder should not call Vector::resize() with an untrusted size
coming from IPC. Instead, call Vector::append(), like the Vector IPC decoder does.

  • Shared/Cocoa/SandboxExtensionCocoa.mm:

(WebKit::SandboxExtension::HandleArray::append):
(WebKit::SandboxExtension::HandleArray::decode):

  • Shared/SandboxExtension.h:

(WebKit::SandboxExtension::append):

10:32 AM Changeset in webkit [274157] by Razvan Caliman
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: Jump from Layout panel to grid container element
https://bugs.webkit.org/show_bug.cgi?id=222429
<rdar://problem/74751801>

Reviewed by Devin Rousso.

Add a button to inspect a CSS grid overlay's corresponding element.
Remove the similar functionality from the overloaded label.

  • UserInterface/Views/CSSGridSection.css:

(.css-grid-section .node-display-name,):
(.css-grid-section .node-overlay-list-item-container :is(.go-to-arrow, .inline-swatch)):
(.css-grid-section .node-overlay-list-item-container:not(:hover) .go-to-arrow):

  • UserInterface/Views/CSSGridSection.js:

(WI.CSSGridSection.prototype.layout):

10:15 AM Changeset in webkit [274156] by Peng Liu
  • 10 edits in trunk

[GPUP] Test fast/images/animated-image-mp4.html times out when media in GPU Process is enabled
https://bugs.webkit.org/show_bug.cgi?id=221795

Reviewed by Eric Carlson.

Source/WebCore:

No new tests. Fix test failures.

  • platform/graphics/cocoa/IOSurface.h:

Add an empty line to make the comment clear.

  • platform/graphics/cocoa/WebCoreDecompressionSession.mm:

(WebCore::WebCoreDecompressionSession::ensureDecompressionSessionForSample):
Fix an error in the attributes of a VTDecompressionSession.

Source/WebKit:

Pass the color space along with a MachSendRight created from an IOSurface to ensure
that we can recreate the image from the MachSendRight/IOSurface properly.

  • GPUProcess/media/RemoteImageDecoderAVFProxy.cpp:

(WebKit::RemoteImageDecoderAVFProxy::createFrameImageAtIndex):

  • GPUProcess/media/RemoteImageDecoderAVFProxy.h:
  • GPUProcess/media/RemoteImageDecoderAVFProxy.messages.in:
  • WebProcess/GPU/media/RemoteImageDecoderAVF.cpp:

(WebKit::RemoteImageDecoderAVF::createFrameImageAtIndex):
This functions needs to return a valid image when it is called in the main thread,
otherwise, the animation will pause.

LayoutTests:

  • platform/wk2/TestExpectations:
10:01 AM Changeset in webkit [274155] by Megan Gardner
  • 4 edits in trunk/Source/WebCore

Hold onto AppHighlights and restore them once the page is loaded.
https://bugs.webkit.org/show_bug.cgi?id=222640

Reviewed by Devin Rousso.

  • Modules/highlight/AppHighlightStorage.cpp:

(WebCore::AppHighlightStorage::restoreAppHighlight):
(WebCore::AppHighlightStorage::restoreUnrestoredAppHighlights):

  • Modules/highlight/AppHighlightStorage.h:
  • dom/Document.cpp:

(WebCore::Document::finishedParsing):

9:38 AM Changeset in webkit [274154] by youenn@apple.com
  • 6 edits in trunk

MediaRecorder.requestData() not returning all captured media after a pause
https://bugs.webkit.org/show_bug.cgi?id=222285
<rdar://problem/74884561>

Reviewed by Eric Carlson.

Source/WebCore:

Previously, when flushing, we are called on a background thread and we hop to the main thread to append data.
In some cases, we were resolving the completion handlers before appending all data.
To prevent this, we now append data from a background thread.
To do so, we lock when accessing m_data, either to append or take the data.
In addition, we cancel writing when clearing the writer.
This allows to clean the writer delegate without fearing that write operations are happening.

Covered by updated test.

  • platform/mediarecorder/cocoa/MediaRecorderPrivateWriterCocoa.h:
  • platform/mediarecorder/cocoa/MediaRecorderPrivateWriterCocoa.mm:

(-[WebAVAssetWriterDelegate initWithWriter:]):
(-[WebAVAssetWriterDelegate assetWriter:didProduceFragmentedHeaderData:]):
(-[WebAVAssetWriterDelegate assetWriter:didProduceFragmentedMediaData:fragmentedMediaDataReport:]):
(WebCore::MediaRecorderPrivateWriter::initialize):
(WebCore::MediaRecorderPrivateWriter::clear):
(WebCore::MediaRecorderPrivateWriter::stopRecording):
(WebCore::MediaRecorderPrivateWriter::completeFetchData):
(WebCore::MediaRecorderPrivateWriter::appendData):
(WebCore::MediaRecorderPrivateWriter::takeData):

LayoutTests:

  • http/wpt/mediarecorder/pause-recording-expected.txt:
  • http/wpt/mediarecorder/pause-recording.html:
9:37 AM Changeset in webkit [274153] by Chris Dumez
  • 2 edits in trunk/Source/WebKit

[IPC Hardening] Protect WebPageProxy::willSubmitForm() against bad Strings
https://bugs.webkit.org/show_bug.cgi?id=222955
<rdar://problem/75195062>

Reviewed by Anders Carlsson.

The Strings passed in textFieldValues are used as keys in a HashMap later on so we need
to validate them.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::willSubmitForm):

9:36 AM Changeset in webkit [274152] by youenn@apple.com
  • 2 edits in trunk/Source/ThirdParty/libwebrtc

Duplicate headers in WebRTC
https://bugs.webkit.org/show_bug.cgi?id=222519
<rdar://problem/75137024>

Reviewed by Eric Carlson.

  • libwebrtc.xcodeproj/project.pbxproj:
9:35 AM Changeset in webkit [274151] by Razvan Caliman
  • 2 edits in trunk/Source/WebInspectorUI

[Cocoa] Web Inspector: Console search box is broken, advancing to next result instead pastes from system find pasteboard
https://bugs.webkit.org/show_bug.cgi?id=220773
<rdar://problem/73410423>

Reviewed by Devin Rousso.

Ensure FindBanner is always marked as shown in the Console
to prevent malfunction when advancing through search results.

  • UserInterface/Views/FindBanner.js:

(WI.FindBanner):
(WI.FindBanner.prototype.set targetElement):
(WI.FindBanner.prototype.hide):

8:55 AM Changeset in webkit [274150] by commit-queue@webkit.org
  • 5 edits in trunk

[WebRTC][GStreamer] webrtc/multi-video.html crashes
https://bugs.webkit.org/show_bug.cgi?id=222792

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

Source/WebCore:

Add safeguards preventing removal of a pad that was not yet added.

  • platform/mediastream/gstreamer/GStreamerMediaStreamSource.cpp:

(webkitMediaStreamSrcAddPad):
(webkitMediaStreamSrcRemovePad):

LayoutTests:

Update expectations for webrtc/multi-video.html which is currently expected to fail.

  • platform/glib/TestExpectations:
  • platform/gtk/TestExpectations:
8:53 AM Changeset in webkit [274149] by commit-queue@webkit.org
  • 6 edits in trunk

[GStreamer][WebRTC] VideoEncoder still doesn't comply with WebKit style
https://bugs.webkit.org/show_bug.cgi?id=222901

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

Source/WebCore:

Refactor the code to comply with WebKit's coding style. A new function allowing to set the
encoder element was also factored out, in preparation for the camerabin support.

  • platform/mediastream/libwebrtc/GStreamerVideoEncoder.cpp:

(Encoders::registerEncoder):
(webrtcVideoEncoderGetProperty):
(webrtcVideoEncoderSetBitrate):
(webrtcVideoEncoderSetEncoder):
(webrtcVideoEncoderSetFormat):
(webrtcVideoEncoderSetProperty):
(setBitrateKbitPerSec):
(setBitrateBitPerSec):
(webrtcVideoEncoderConstructed):
(webkit_webrtc_video_encoder_class_init):

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

(WebCore::GStreamerVideoEncoderFactory::GStreamerVideoEncoderFactory):

Tools:

  • Scripts/webkitpy/style/checker.py: Move the GStreamer VideoEncoder to the list of custom

GStreamer elements complying with WebKit's coding style.

8:21 AM Changeset in webkit [274148] by Wenson Hsieh
  • 28 edits in trunk

[macOS] Add a way to trigger webpage translation via the context menu
https://bugs.webkit.org/show_bug.cgi?id=222953
<rdar://problem/73901967>

Reviewed by Devin Rousso.

Source/WebCore:

Introduce a WebCore enum for the new context menu item. Additionally, update Localizable.strings by re-running
Tools/Scripts/update-webkit-localizable-strings.

  • en.lproj/Localizable.strings:
  • page/ContextMenuContext.h:

(WebCore::ContextMenuContext::setSelectionBounds):
(WebCore::ContextMenuContext::selectionBounds const):

Add a new member to represent the text selection bounds in root view coordinates.

  • page/ContextMenuController.cpp:

(WebCore::ContextMenuController::contextMenuItemSelected):

Compute and set text selection bounds.

(WebCore::ContextMenuController::populate):
(WebCore::ContextMenuController::checkOrEnableIfNeeded const):

  • platform/ContextMenuItem.cpp:

(WebCore::isValidContextMenuAction):

  • platform/ContextMenuItem.h:

Add the new enum value.

  • platform/LocalizedStrings.cpp:

(WebCore::truncatedStringForMenuItem):

Renamed this from truncatedStringForLookupMenuItem, since it's now used for this new translate menu item.

(WebCore::contextMenuItemTagLookUpInDictionary):
(WebCore::contextMenuItemTagTranslate):

Add a helper function to return the title for the new translate menu item, modeled after "Look Up".

(WebCore::truncatedStringForLookupMenuItem): Deleted.

  • platform/LocalizedStrings.h:

Source/WebKit:

Add support for the new context menu item in WebKit2. See below for more details.

  • Shared/API/c/WKContextMenuItemTypes.h:
  • Shared/API/c/WKSharedAPICast.h:

(WebKit::toAPI):
(WebKit::toImpl):

Add a C API value for the new WebCore enum.

  • Shared/ContextMenuContextData.cpp:

(WebKit::ContextMenuContextData::ContextMenuContextData):
(WebKit::ContextMenuContextData::encode const):
(WebKit::ContextMenuContextData::decode):

  • Shared/ContextMenuContextData.h:

(WebKit::ContextMenuContextData::selectionBounds const):

Add a rect, selectionBounds, to ContextMenuContextData that represents the rect of the current text
selection in root view coordinates.

  • UIProcess/API/Cocoa/WKMenuItemIdentifiers.mm:
  • UIProcess/API/Cocoa/WKMenuItemIdentifiersPrivate.h:
  • UIProcess/Cocoa/WebPageProxyCocoa.mm:

(WebKit::WebPageProxy::canHandleContextMenuTranslation const):

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

(WebKit::WebViewImpl::canHandleContextMenuTranslation const):

Consult the class method to return whether or not the menu item should be present. If not, then we filter this
item out from the list of context menu items in WebContextMenuProxyMac below.

(WebKit::WebViewImpl::handleContextMenuTranslation):

Handle the translation action by using NSPopover to present an LTUITranslationViewController.

  • UIProcess/PageClient.h:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::contextMenuItemSelected):

  • UIProcess/WebPageProxy.h:
  • UIProcess/mac/PageClientImplMac.h:
  • UIProcess/mac/PageClientImplMac.mm:

(WebKit::PageClientImpl::canHandleContextMenuTranslation const):
(WebKit::PageClientImpl::handleContextMenuTranslation):

  • UIProcess/mac/WebContextMenuProxyMac.mm:

(WebKit::WebContextMenuProxyMac::getContextMenuFromItems):

Remove the translate menu item if we're already presented in the context of a popover, or if the system does not
support the feature (see WebViewImpl::canHandleContextMenuTranslation).

(WebKit::menuItemIdentifier):

Source/WebKitLegacy/mac:

Add (no-op) handling for the new enum value.

  • WebView/WebHTMLView.mm:

(toTag):

Tools:

Adjust an API test. This new enum value is now the new last valid item value.

  • TestWebKitAPI/Tests/WebCore/ContextMenuAction.cpp:

(TestWebKitAPI::TEST):

7:51 AM Changeset in webkit [274147] by graouts@webkit.org
  • 8 edits in trunk

Correctly blend column-width and column-count CSS properties
https://bugs.webkit.org/show_bug.cgi?id=222969

Reviewed by Antti Koivisto.

LayoutTests/imported/w3c:

Add an extra 160 PASS results. We now pass all the column-width and column-count interpolation tests.

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

Source/WebCore:

We used to simply blend column-width and column-count as float and unsigned short properties
with no minimum value and no accounting for the "auto" value which only blends discretely.

We generalize some of the code added for the z-index wrapper by creating a new AutoPropertyWrapper
which takes into two method arguments for the hasAuto() and setHasAuto() methods on RenderStyle
and an optional minimum value, which we set to 0 for column-width, 1 for column-count and don't
specify for z-index since it doesn't have a minimum value.

  • animation/CSSPropertyAnimation.cpp:

(WebCore::AutoPropertyWrapper::AutoPropertyWrapper):
(WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap):
(WebCore::ZIndexPropertyWrapper::ZIndexPropertyWrapper): Deleted.

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

Suspend widget hierarchy updates while executing node insertion
https://bugs.webkit.org/show_bug.cgi?id=222719

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

  • dom/ContainerNode.cpp:

(WebCore::executeNodeInsertionWithScriptAssertion):

6:56 AM Changeset in webkit [274145] by Antti Koivisto
  • 2 edits in trunk/Source/WebCore

Increase resource load priority of async scripts from low to medium
https://bugs.webkit.org/show_bug.cgi?id=222966

Reviewed by Zalan Bujtas.

Low priority loads may be delayed during parsing. We want async script to be immediately available when parsing
completes so 'medium' is the appropriate priority

  • dom/LoadableClassicScript.cpp:

(WebCore::LoadableClassicScript::load):

6:38 AM Changeset in webkit [274144] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[Multi-column] Adjust fragmented flow state of the out-of-flow descendants
https://bugs.webkit.org/show_bug.cgi?id=222958
<rdar://74865741>

Reviewed by Antti Koivisto.

When a block container's style change from positioned to non-positioned and it is part of a multi-column context,
we need to make sure that the out-of-flow positined descendants' flow state are updated accordingly (as
they may not be part of the multi-column context anymore).

  • rendering/RenderElement.cpp:

(WebCore::RenderElement::adjustFragmentedFlowStateOnContainingBlockChangeIfNeeded):

4:05 AM Changeset in webkit [274143] by Chris Lord
  • 13 edits in trunk

Allow creation of a CSSFontSelector with a non-Document ScriptExecutionContext
https://bugs.webkit.org/show_bug.cgi?id=222735

Reviewed by Darin Adler.

Replace Document member of CSSFontSelector with a ScriptExecutionContext.
This also changes make_names.pl string header generation to allow for easier enumeration of font family strings.

No new tests as new behaviour is currently unused. Existing behaviour covered by existing tests.

  • bindings/scripts/StaticString.pm:

(GenerateStrings): Revert change from bug 222552

  • css/CSSFontSelector.cpp:

(WebCore::CSSFontSelector::CSSFontSelector):
(WebCore::m_version):
(WebCore::CSSFontSelector::fontFaceSet):
(WebCore::CSSFontSelector::addFontFaceRule):
(WebCore::CSSFontSelector::fontStyleUpdateNeeded):
(WebCore::CSSFontSelector::resolveGenericFamily):
(WebCore::CSSFontSelector::fontRangesForFamily):
(WebCore::CSSFontSelector::stopLoadingAndClearFonts):
(WebCore::CSSFontSelector::beginLoadingFontSoon):
(WebCore::CSSFontSelector::loadPendingFonts):
(WebCore::CSSFontSelector::fontLoadingTimerFired):
(WebCore::CSSFontSelector::fallbackFontCount):
(WebCore::CSSFontSelector::fallbackFontAt):

  • css/CSSFontSelector.h:
  • css/FontFaceSet.cpp:

(WebCore::FontFaceSet::create):
(WebCore::FontFaceSet::FontFaceSet):

  • css/FontFaceSet.h:
  • css/FontFaceSet.idl:
  • dom/Document.h:
  • dom/ScriptExecutionContext.h:
  • dom/make_names.pl:

(printNamesHeaderFile): Make global string data and names accessible via a Vector and add an enum of name indices.

  • platform/graphics/FontGenericFamilies.cpp:

(WebCore:: const):

  • platform/graphics/FontGenericFamilies.h:
3:20 AM Changeset in webkit [274142] by graouts@webkit.org
  • 9 edits in trunk

Select CSS properties animating as float should not allow negative values
https://bugs.webkit.org/show_bug.cgi?id=222912

Reviewed by Sam Weinig.

LayoutTests/imported/w3c:

Add an extra 57 PASS results. We now pass all the outline-width interpolation tests.

  • web-platform-tests/css/css-backgrounds/animations/border-width-interpolation-expected.txt:
  • web-platform-tests/css/css-multicol/animation/column-width-interpolation-expected.txt:
  • web-platform-tests/css/css-ui/animation/outline-width-composition-expected.txt:
  • web-platform-tests/css/css-ui/animation/outline-width-interpolation-expected.txt:

Source/WebCore:

The properties border-width, column-width, outline-width, perspective,
flex-grow and flex-shrink do not allow negative values. We create a new
animation wrapper specifically for these properties.

  • animation/CSSPropertyAnimation.cpp:

(WebCore::NonNegativeFloatPropertyWrapper::NonNegativeFloatPropertyWrapper):
(WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap):

LayoutTests:

Mark WPT progressions for a platform-specific result.

  • platform/ios/imported/w3c/web-platform-tests/css/css-backgrounds/animations/border-width-interpolation-expected.txt:
12:53 AM Changeset in webkit [274141] by commit-queue@webkit.org
  • 6 edits in trunk

WebGL2: Red flickering when using copyTexImage2D()
https://bugs.webkit.org/show_bug.cgi?id=222790

Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2021-03-09
Reviewed by Kenneth Russell.

Source/WebCore:

Reading non-full FBO rectangle with copyTexImage2D would
cause invalid operation on WebGL2.
This is probably due to misunderstanding between what was old
GL desktop + GLES mobile backends
"isGLES2Compatible() == runs on Desktop GL"
vs new ANGLE backend
"isGLES2Compatible() == !m_isForWebGL2".

Add testing to fast/canvas/webgl/copy-tex-image-and-sub-image-2d.html.

  • platform/graphics/angle/GraphicsContextGLANGLE.cpp:

(WebCore::GraphicsContextGLOpenGL::resolveMultisamplingIfNecessary):
Use BlitFramebuffer for WebGL2 non-full framebuffer copyTexImage2D calls.
On WebGL we use BlitFramebufferANGLE as before.

LayoutTests:

  • fast/canvas/webgl/copy-tex-image-and-sub-image-2d-expected.txt:
  • fast/canvas/webgl/copy-tex-image-and-sub-image-2d.html:

Change the test to test WebGL2 and copyTexImage2D with non-full framebuffer
rectangles.

  • fast/canvas/webgl/resources/webgl-test.js:

(create3DContext):
Fix logic error when trying to create WebGL2 context.

12:26 AM Changeset in webkit [274140] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Remove references to unimplemented and deprecated scroll-snap properties
https://bugs.webkit.org/show_bug.cgi?id=221746

Patch by Martin Robinson <mrobinson@igalia.com> on 2021-03-09
Reviewed by Simon Fraser.

No new tests. This should not change behavior in any way.

  • css/CSSProperties.json: Remove references to deprecated and unimplemented CSS properties.

Mar 8, 2021:

11:57 PM Changeset in webkit [274139] by graouts@webkit.org
  • 5 edits in trunk/LayoutTests

Unreviewed. Update border-width interpolation test after WPT PR #27934.

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-backgrounds/animations/border-width-interpolation-expected.txt:
  • web-platform-tests/css/css-backgrounds/animations/border-width-interpolation.html:

LayoutTests:

  • platform/ios/imported/w3c/web-platform-tests/css/css-backgrounds/animations/border-width-interpolation-expected.txt:
11:19 PM Changeset in webkit [274138] by youenn@apple.com
  • 3 edits in trunk/Source/WebKit

Allow access to more cmio services from Web/GPU processes
https://bugs.webkit.org/show_bug.cgi?id=222465

Reviewed by Per Arne Vollan.

These new services are used when getting camera access.
Manually tested.

  • GPUProcess/mac/com.apple.WebKit.GPUProcess.sb.in:
  • WebProcess/com.apple.WebProcess.sb.in:
9:57 PM Changeset in webkit [274137] by Simon Fraser
  • 4 edits
    2 adds in trunk

REGRESSION(r274025-r273811): Crash under RenderLayerBacking::updateGeometry()
https://bugs.webkit.org/show_bug.cgi?id=222021
rdar://74414963

Reviewed by Zalan Bujtas.

When a RenderLayer gains or loses its scrollable area, we have to set the dirty
bit on the RenderLayer to ensure that RenderLayerBacking::updateConfiguration() runs,
which updates compositing layers for scrolling.

Source/WebCore:

Also add to logging the scrollableArea if present.

Test: fast/layers/remove-scrollable-area-crash.html

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::calculateClipRects const):
(WebCore::outputPaintOrderTreeRecursive):

  • rendering/RenderTreeAsText.cpp:

LayoutTests:

  • fast/layers/remove-scrollable-area-crash.html: Added.
9:41 PM Changeset in webkit [274136] by timothy_horton@apple.com
  • 3 edits in trunk/Source/WebCore

<model>'s inner compositing layer is re-created every time it moves
https://bugs.webkit.org/show_bug.cgi?id=222950

Reviewed by Simon Fraser.

No new tests, just a performance optimization.

  • Modules/model-element/HTMLModelElement.cpp:

(WebCore::HTMLModelElement::model const):
(WebCore::HTMLModelElement::notifyFinished):

  • Modules/model-element/HTMLModelElement.h:

It turns out that we need Model's identity to be stable in order to make
the early return in setContentsToModel (called every time the layer's properties
change from RenderLayerBacking::updateConfiguration) work, otherwise
we re-create the inner layer over and over again.

9:40 PM Changeset in webkit [274135] by stephan.szabo@sony.com
  • 5 edits in trunk/Tools

[PlayStation] Various small fixes for TestWTF/TestWebKit tests on PlayStation
https://bugs.webkit.org/show_bug.cgi?id=222931

Reviewed by Don Olmstead.

  • TestWebKitAPI/PlatformPlayStation.cmake: Link to API for process termination
  • TestWebKitAPI/Tests/WTF/DataMutex.cpp: Turn off test using ASSERT_DEATH
  • TestWebKitAPI/Tests/WebKit/ReloadPageAfterCrash.cpp: Use PlayStation api to kill webprocess for this test
  • TestWebKitAPI/playstation/PlatformWebViewPlayStation.cpp: Set size in resizeTo
9:24 PM Changeset in webkit [274134] by rniwa@webkit.org
  • 3 edits in trunk/Websites/perf.webkit.org

[perf dashboard] Use async/await in tests for TimeSeriesChart and InteractiveTimeSeriesChart
https://bugs.webkit.org/show_bug.cgi?id=222876

Reviewed by Sam Weinig.

Use async/await instead of chaining promises manually in the browser tests for
TimeSeriesChart and InteractiveTimeSeriesChart for better readability.

  • browser-tests/interactive-time-series-chart-tests.js:
  • browser-tests/time-series-chart-tests.js:
8:17 PM Changeset in webkit [274133] by Russell Epstein
  • 1 copy in tags/Safari-611.1.21.1.7

Tag Safari-611.1.21.1.7.

8:14 PM Changeset in webkit [274132] by Russell Epstein
  • 8 edits in branches/safari-611.1.21.1-branch/Source

Versioning.

WebKit-7611.1.21.1.7

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

Crash in in ReplaceSelectionCommand::mergeEndIfNeeded()
https://bugs.webkit.org/show_bug.cgi?id=222941

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

Make a copy of Ref<HTMLBRElement> when inserting before start of paragraph.

  • editing/ReplaceSelectionCommand.cpp:

(WebCore::ReplaceSelectionCommand::mergeEndIfNeeded):

7:40 PM Changeset in webkit [274130] by Chris Dumez
  • 4 edits in trunk/Source/WebKit

Simplify CallbackAggregator in WebsiteDataStore::fetchDataAndApply()
https://bugs.webkit.org/show_bug.cgi?id=222937

Reviewed by Darin Adler.

Simplify CallbackAggregator in WebsiteDataStore::fetchDataAndApply():

  1. Get rid of removePendingCallback() / addPendingCallback() / callIfNeeded() and instead rely on ref counting to determine when we need to call the apply function.
  2. Replaced removePendingCallback() with addWebsiteData() since it takes a WebsiteData as an object and make it so that it can be called on any thread for convenience.
  • Shared/WebsiteData/WebsiteData.cpp:

(WebKit::WebsiteData::isolatedCopy const):
(WebKit::WebsiteData::Entry::isolatedCopy const):

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

(WebKit::WebsiteDataStore::fetchDataAndApply):

7:07 PM Changeset in webkit [274129] by Chris Dumez
  • 2 edits in trunk/Source/WebKit

Regression(r273875): Potential over-release in WKRemoteObjectCoder's decodeObjCObject()
https://bugs.webkit.org/show_bug.cgi?id=222954
<rdar://75163359>

Reviewed by Darin Adler.

r273875 added an adoptNS() for the result of [allocation initWithCoder:decoder]. This would be
fine in general, except that we call awakeAfterUsingCoder on the result right after. As per the
awakeAfterUsingCoder documentation [1], it may return the receiver or a new object. When it
returns a new object, it takes care of releasing the receiver. This is an issue for us here since
we were holding the receiver in a smart pointer.

[1] https://developer.apple.com/documentation/objectivec/nsobject/1417074-awakeafterusingcoder

  • Shared/API/Cocoa/WKRemoteObjectCoder.mm:

(decodeObjCObject):

6:44 PM Changeset in webkit [274128] by stephan.szabo@sony.com
  • 3 edits in trunk/Tools

TestWebKitAPI WebKit.HitTestResultNodeHandle does not complete with ENABLE_CONTEXT_MENUS=OFF
https://bugs.webkit.org/show_bug.cgi?id=222938

Reviewed by Ross Kirsling.

Make the test only build with context menus are supported.

  • TestWebKitAPI/Tests/WebKit/HitTestResultNodeHandle.cpp:
  • TestWebKitAPI/Tests/WebKit/HitTestResultNodeHandle_Bundle.cpp:
6:10 PM Changeset in webkit [274127] by Jonathan Bedard
  • 5 edits in trunk/Tools

[webkitscmpy] Isolate dateutil imports
https://bugs.webkit.org/show_bug.cgi?id=222946
<rdar://problem/75191226>

Reviewed by Dewei Zhu.

  • Scripts/libraries/webkitscmpy/setup.py: Bump version.
  • Scripts/libraries/webkitscmpy/webkitscmpy/init.py: Ditto.
  • Scripts/libraries/webkitscmpy/webkitscmpy/mocks/remote/svn.py:

(Svn.request): Isolate dateutil imports.

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

REGRESSION (r274033): [ macOS/iOS ] model-element/model-element-ready-load-aborted.html is text failing
https://bugs.webkit.org/show_bug.cgi?id=222917
<rdar://problem/75173628>

Reviewed by Wenson Hsieh.

  • model-element/model-element-ready-load-aborted.html:

Fix this test; it could flakily fail if the load completed before unparenting the element,
which became more common after r274033 added a test that ran first and cached the resource.

Set the source just before unparenting to resolve this race.

5:12 PM Changeset in webkit [274125] by Alan Coon
  • 1 copy in tags/Safari-611.1.21.0.5

Tag Safari-611.1.21.0.5.

5:11 PM Changeset in webkit [274124] by Alan Coon
  • 1 delete in tags/Safari-611.1.21.0.5

Delete tag.

5:06 PM Changeset in webkit [274123] by Alan Coon
  • 1 copy in tags/Safari-611.1.21.1.6

Tag Safari-611.1.21.1.6.

4:55 PM Changeset in webkit [274122] by Andres Gonzalez
  • 6 edits in trunk

Enable accessibility/aria-invalid.html test on iOS.
https://bugs.webkit.org/show_bug.cgi?id=222942
<rdar://problem/75188832>

Reviewed by Chris Fleizach.

Tools:

Modified AccessibilityUIElement::stringAttributeValue to handle invalid
status, so that test JS can query for it.

  • WebKitTestRunner/InjectedBundle/ios/AccessibilityUIElementIOS.mm:

(WTR::AccessibilityUIElement::stringAttributeValue):

LayoutTests:

Enabled this test on iOS.
Minor change in the order in which the invalid notification is logged.

  • accessibility/aria-invalid-expected.txt:
  • accessibility/aria-invalid.html:
  • platform/ios/TestExpectations:
4:45 PM Changeset in webkit [274121] by Alan Coon
  • 1 copy in tags/Safari-611.1.21.0.5

Create tag Safari-611.1.21.0.5.

4:33 PM Changeset in webkit [274120] by Adrian Perez de Castro
  • 11 edits in releases/WebKitGTK/webkit-2.32/Source

Unreviewed non-unified build fixes.

Source/JavaScriptCore:

  • wasm/WasmGlobal.h: Add missing SlotVisitorMacros.h header.
  • wasm/WasmTable.h: Ditto.

Source/WebCore:

  • CMakeLists.txt: Build ScrollingMomentumCalculator.cpp in the test support library.
  • dom/Event.cpp: Add missing TouchList.h header.
  • dom/EventContext.cpp: Add missing EventNames.h header.
  • page/scrolling/ScrollSnapOffsetsInfo.cpp: Add missing Logging.h header.
  • platform/network/soup/SoupNetworkSession.cpp: Add missing SoupVersioning.h header.
  • rendering/RenderLayerModelObject.cpp: Add missing RenderLayerScrollableArea.h header.
  • rendering/RenderModel.cpp: Move inclusion of "config.h" before ENABLE() check.
4:33 PM Changeset in webkit [274119] by Adrian Perez de Castro
  • 3 edits in releases/WebKitGTK/webkit-2.32/Source

Merge r272721 - Non unified build fixes for mid February 2021

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

Reviewed by Youenn Fablet.

Source/WebCore:

  • CMakeLists.txt:
  • Modules/mediastream/SFrameUtils.cpp:
  • Modules/mediastream/STUNMessageParsing.h:
  • bindings/js/WebCoreBuiltinNames.h:
  • dom/EventTargetFactory.in:
  • inspector/InspectorFrontendAPIDispatcher.cpp:

(WebCore::InspectorFrontendAPIDispatcher::evaluateOrQueueExpression):

  • workers/DedicatedWorkerGlobalScope.cpp:
  • workers/Worker.cpp:

Source/WebKit:

  • GPUProcess/graphics/RemoteRenderingBackend.cpp:
  • GPUProcess/media/RemoteCDMInstanceProxy.cpp:
4:33 PM Changeset in webkit [274118] by Adrian Perez de Castro
  • 2 edits in releases/WebKitGTK/webkit-2.32/Tools

Merge r273551 - Unreviewed, WPE build fix after SDK r273544 deployment

  • TestWebKitAPI/PlatformWPE.cmake: GLib include path was missing in the TestJavaScriptCore

build.

4:15 PM Changeset in webkit [274117] by jer.noble@apple.com
  • 9 edits in trunk/Source/WebKit

[Cocoa][GPUP] Enable WebM/Vorbis/Opus in the GPU process
https://bugs.webkit.org/show_bug.cgi?id=222926

Reviewed by Eric Carlson.

The first time a GPUProcessProxy is created, and whenever a new WebPageProxy is created,
The GPUProcessProxy will query all existing WebPageGroups and their WebPreferences. If
any group enables "Media in the GPU Process", and also WebM, Vorbis, or Opus, those features
which are enabled will also be enabled inside the GPU process.

  • GPUProcess/GPUProcess.cpp:

(WebKit::GPUProcess::setWebMParserEnabled):
(WebKit::GPUProcess::setWebMFormatReaderEnabled):
(WebKit::GPUProcess::setOpusDecoderEnabled):
(WebKit::GPUProcess::setVorbisDecoderEnabled):

  • GPUProcess/GPUProcess.h:
  • GPUProcess/GPUProcess.messages.in:
  • UIProcess/GPU/GPUProcessProxy.cpp:

(WebKit::GPUProcessProxy::getOrCreate):
(WebKit::GPUProcessProxy::updatePreferences):

  • UIProcess/GPU/GPUProcessProxy.h:
  • UIProcess/WebPageGroup.cpp:

(WebKit::WebPageGroup::forEach):

  • UIProcess/WebPageGroup.h:
  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::createWebPage):

4:03 PM Changeset in webkit [274116] by commit-queue@webkit.org
  • 3 edits in trunk/LayoutTests/imported/w3c

Unreviewed, reverting r274071.
https://bugs.webkit.org/show_bug.cgi?id=222951

Broke a test

Reverted changeset:

https://trac.webkit.org/changeset/274071

4:00 PM Changeset in webkit [274115] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebCore

Fix unified build due to missing header include.
https://bugs.webkit.org/show_bug.cgi?id=222782
<rdar://problem/75081020>

Patch by Jean-Yves Avenard <Jean-Yves Avenard> on 2021-03-08
Reviewed by Wenson Hsieh.

No change in functionality.

  • Modules/model-element/HTMLModelElement.cpp:

Add #include.

3:35 PM Changeset in webkit [274114] by weinig@apple.com
  • 2 edits in trunk/Source/WebCore

Make Color threadsafe
https://bugs.webkit.org/show_bug.cgi?id=222886

Reviewed by Darin Adler.

Color is mostly threadsafe already and can really be used as an immutable
value type in most cases. Let's make that completely true by making the out
of line component case ThreadSafeRefCounted.

  • platform/graphics/Color.h:
3:21 PM Changeset in webkit [274113] by mark.lam@apple.com
  • 2 edits in trunk/Tools

JSC stress tests' $testSpecificRequiredOptions should be appended last.
https://bugs.webkit.org/show_bug.cgi?id=222936

Reviewed by Keith Miller.

This allows each test to get the last say on what options it needs.

  • Scripts/run-jsc-stress-tests:
3:06 PM Changeset in webkit [274112] by Patrick Angle
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: REGRESSION (r267038): Inspector fails to show any details about animations/transitions in the timeline
https://bugs.webkit.org/show_bug.cgi?id=222921

Reviewed by Devin Rousso.

Timeline views should always be updated with the time from the overview, but r267038 erroneously prevented the
end time from being updated while recording was stopping and prevented the current time from being updated while
recording was stopping or inactive, which meant after a recording finished (Stopping -> Inactive) the timeline
views would not be updated with the current time. Because _updateTimelineViewTimes can be called when a
different content view is selected, it was incorrect to gate setting these values based on the recording state.
The check for not being in the inactive state was particularly problematic as it is quite common that a
developer would open a specific timelime view for the first time after recording finishes, at which point all
values should be populated regardless of recording state. The source of the time values continues to be handled
in such a way as to prevent values from continuously jumping around as a recording is stopped but data continues
to arrive.

  • UserInterface/Views/TimelineRecordingContentView.js:

(WI.TimelineRecordingContentView.prototype._updateTimes):

  • Drive-by spelling correction.

(WI.TimelineRecordingContentView.prototype._updateTimelineViewTimes):

  • Remove checks for the current recording state.
2:47 PM Changeset in webkit [274111] by weinig@apple.com
  • 6 edits in trunk

Add preference reseting to WebKitLegacy Windows to simplify testing reset
https://bugs.webkit.org/show_bug.cgi?id=222865

Reviewed by Brent Fulgham.

Source/WebKitLegacy/win:

Add resetForTesting() function to allow easy reseting of all preferences
for testing, matching functionality added to Cocoa WebKitLegacy.

  • Interfaces/IWebPreferencesPrivate.idl:
  • WebPreferences.cpp:

(WebPreferences::resetForTesting):

  • WebPreferences.h:

Tools:

  • DumpRenderTree/win/DumpRenderTree.cpp:

(resetWebPreferencesToConsistentValues):
Call the new resetForTesting() method to ensure all values are reset back
to defaults for each test without have to explicitly list them.

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

Web Inspector: REGRESSION(r269359): TypeError: undefined is not an object (evaluating 'listenersForEventType')
https://bugs.webkit.org/show_bug.cgi?id=222940

Reviewed by BJ Burg.

  • UserInterface/Models/JavaScriptBreakpoint.js:

(WI.JavaScriptBreakpoint.prototype.get special):
The existing logic for get special checks if this is one of the specially saved objects
on WI.debuggerManager (e.g. assertionFailuresBreakpoint). When deleting a breakpoint,
WI.debuggerManager has already cleared out it's previously saved reference to that object,
so it won't match. Use the existing _isSpecial (which looks at the _sourceCodeLocation)
as a backup in case this doesn't directly match any of the saved objects.

2:39 PM Changeset in webkit [274109] by Brent Fulgham
  • 2 edits in trunk/Source/WebKit

REGRESSION (r273541): Payloads requiring NSURL in serialization fail
https://bugs.webkit.org/show_bug.cgi?id=222856
<rdar://problem/75036452>

Reviewed by Darin Adler.

In Bug 222145 I converted serialization of CFURLRequest to NSURLRequest. As part of that change,
I used a new encoder (WKSecureCodingURLWrapper) to wrap the NSURL to ensure proper handling of
encoded URLs.

The WKSecureCodingURLWrapper should have been declared as a subclass of NSURL, so that NSSecureCoding
would respect it as a valid way of serializing an NSURL.

This patch corrects that oversight.

  • Shared/Cocoa/ArgumentCodersCocoa.mm:
2:22 PM Changeset in webkit [274108] by aakash_jain@apple.com
  • 3 edits in trunk/Tools

[ews] Remove old Python 2 related code
https://bugs.webkit.org/show_bug.cgi?id=222933

Reviewed by Dewei Zhu.

  • CISupport/ews-build/steps.py:
  • CISupport/build-webkit-org/steps.py:
2:19 PM Changeset in webkit [274107] by Alan Coon
  • 5 edits in branches/safari-611.1.21.1-branch

Cherry-pick r273997. rdar://problem/75180339

Regression(r268097): WKWebView.URL is nil in the processDidTerminate delegate
https://bugs.webkit.org/show_bug.cgi?id=222809

Reviewed by Michael Catanzaro.

Source/WebKit:

There was a PageLoadState::Transaction in resetStateAfterProcessTermination() that
was previously making sure we would not clear the WebView's URL before calling the
processDidTerminate client delegate. Now that we call the client delegate in a
separate function (WebPageProxy::dispatchProcessDidTerminate), we need to make move
the PageLoadState::Transaction to the caller in
WebProcessProxy::processDidTerminateOrFailedToLaunch(), so that its scope covers
both resetStateAfterProcessTermination() & dispatchProcessDidTerminate() calls.

  • UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::resetStateAfterProcessTermination):
  • UIProcess/WebProcessProxy.cpp: (WebKit::WebProcessProxy::processDidTerminateOrFailedToLaunch):

Tools:

Add API test coverage.

  • TestWebKitAPI/Tests/WebKitCocoa/WebContentProcessDidTerminate.mm: (TEST):

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

2:10 PM Changeset in webkit [274106] by BJ Burg
  • 3 edits in trunk/Source/WebKit

[Cocoa] Changes in WebInspectorUI's appearance don't propagate to .effectiveAppearance while docked
https://bugs.webkit.org/show_bug.cgi?id=222925
<rdar://71201454>

Reviewed by Devin Rousso.

Update the appearance property for the underlying webView in addition to
setting it for the inspector NSWindow (undocked only).

This fix is needed for both local and remote inspector code paths.

  • UIProcess/Inspector/mac/RemoteWebInspectorProxyMac.mm:

(WebKit::RemoteWebInspectorProxy::platformSetForcedAppearance):

  • UIProcess/Inspector/mac/WebInspectorProxyMac.mm:

(WebKit::WebInspectorProxy::applyForcedAppearance):

2:09 PM Changeset in webkit [274105] by Ruben Turcios
  • 5 edits in branches/safari-611.1.21.0-branch

Cherry-pick r273997. rdar://problem/75180327

Regression(r268097): WKWebView.URL is nil in the processDidTerminate delegate
https://bugs.webkit.org/show_bug.cgi?id=222809

Reviewed by Michael Catanzaro.

Source/WebKit:

There was a PageLoadState::Transaction in resetStateAfterProcessTermination() that
was previously making sure we would not clear the WebView's URL before calling the
processDidTerminate client delegate. Now that we call the client delegate in a
separate function (WebPageProxy::dispatchProcessDidTerminate), we need to make move
the PageLoadState::Transaction to the caller in
WebProcessProxy::processDidTerminateOrFailedToLaunch(), so that its scope covers
both resetStateAfterProcessTermination() & dispatchProcessDidTerminate() calls.

  • UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::resetStateAfterProcessTermination):
  • UIProcess/WebProcessProxy.cpp: (WebKit::WebProcessProxy::processDidTerminateOrFailedToLaunch):

Tools:

Add API test coverage.

  • TestWebKitAPI/Tests/WebKitCocoa/WebContentProcessDidTerminate.mm: (TEST):

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

2:09 PM Changeset in webkit [274104] by Ruben Turcios
  • 2 edits in branches/safari-611.1.21.0-branch/Source/WebKit

Cherry-pick r274051. rdar://problem/75178467

[WebAuthn] Expand WebAuthn Process's sandbox profile on iOS
https://bugs.webkit.org/show_bug.cgi?id=222858
<rdar://problem/74772012>

Reviewed by Brent Fulgham.

Allows WebAuthn process to use AAA again.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebAuthn.sb:

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

2:09 PM Changeset in webkit [274103] by Ruben Turcios
  • 2 edits in branches/safari-611.1.21.0-branch/Source/WebCore

Cherry-pick r273894. rdar://problem/75178487

AVAudioSessionCaptureDeviceManager::retrieveAudioSessionCaptureDevices is unnecessarily creating a NSArray twice
https://bugs.webkit.org/show_bug.cgi?id=222732

Reviewed by Eric Carlson.

Before the patch, [m_audioSession availableInputs] was called twice.
This creates two NSArray which is not create from a memory standpoint.
There is also the risk that the two NSArrays have two different size, in which case Vector::uncheckedAppend would fail.

Cannot be easily tested, no observable change expected.

  • platform/mediastream/ios/AVAudioSessionCaptureDeviceManager.mm: (WebCore::AVAudioSessionCaptureDeviceManager::retrieveAudioSessionCaptureDevices const):

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

2:03 PM Changeset in webkit [274102] by sbarati@apple.com
  • 4 edits
    2 adds in trunk

Using an undeclared private field inside eval shouldn't crash
https://bugs.webkit.org/show_bug.cgi?id=222834
<rdar://75035388>

Reviewed by Yusuke Suzuki.

JSTests:

  • stress/declared-private-field-in-eval.js: Added.
  • stress/undeclared-private-field-in-eval.js: Added.

Source/JavaScriptCore:

The private methods patch regressed our behavior when using undeclared private
fields or methods from an inner eval inside a class. That patch made us crash.
This patch aligns us with the spec to throw a Syntax Error during eval parsing.

  • parser/Parser.cpp:

(JSC::Parser<LexerType>::parseInner):
(JSC::Parser<LexerType>::parseMemberExpression):

  • parser/Parser.h:

(JSC::Parser<LexerType>::parse):

1:47 PM Changeset in webkit [274101] by Darin Adler
  • 28 edits
    1 delete in trunk

Fix inspector viewing of canvas save/restore stack, and tighten and simplify CanvasRenderingContext2DBase
https://bugs.webkit.org/show_bug.cgi?id=222532

Reviewed by Sam Weinig.

Source/WebCore:

The inspector code is the only client that looks into the graphics context and gets at
saved states in the save/restore state stack. It was doing so in an inconsistent way, and
in may cases ignoring the state in the stack and simply using the current state. This fixes
almost everything to actually use the state stack.

Separately did some related refactoring. This includes a bit more inlining and removing a
class that was being used in the interface to Path where we can more simply use a Function<>.

  • WebCore.xcodeproj/project.pbxproj: Removed StrokeStyleApplier.h.
  • html/canvas/CanvasRenderingContext2D.cpp:

(WebCore::CanvasRenderingContext2D::setFont): Use a global AtomString for the default font
family name so we don't potentially create a new one every time we call this function.
Call usesCSSCompatibilityParseMode so we don't have to get at private member
m_usesCSSCompatibilityParseMode.
(WebCore::CanvasRenderingContext2D::measureText): Call defaultFontFamily(), which returns
an AtomString so we don't have to look it up every time this function is called.
(WebCore::CanvasRenderingContext2D::drawTextInternal): Removed unnecessary allocation of a
TextMetrics object, which we don't use and then deallocate. Update since normalizedSpaces
now uses a return value instead of an in/out argument. Also use && instead of ?: and
update for name change of canDrawTextWithParams.

  • html/canvas/CanvasRenderingContext2D.h: Removed unneeded header includes, unneeded

override of webkitBackingStorePixelRatio and made the override of is2d private, since
no one should need to call it on a CanvasRenderingContext2D.

  • html/canvas/CanvasRenderingContext2DBase.cpp: Use constexpr for a file-local constant.

(WebCore::CanvasStrokeStyleApplier::CanvasStrokeStyleApplier): Deleted this entire class,
since we now use a function instead of an object.
(WebCore::toCanvasLineCap): Moved these functions to the top of the file since they are
now used in the State class.
(WebCore::fromCanvasLineCap): Ditto.
(WebCore::toCanvasLineJoin): Ditto.
(WebCore::fromCanvasLineJoin): Ditto.
(WebCore::toCanvasTextAlign): Ditto.
(WebCore::fromCanvasTextAlign): Ditto.
(WebCore::toCanvasTextBaseline): Ditto.
(WebCore::fromCanvasTextBaseline): Ditto.
(WebCore::CanvasRenderingContext2DBase::State::operator=): Deleted the copy constructor
and assignment operator since they are the default ones.
(WebCore::CanvasRenderingContext2DBase::State::fontString const): Added. Moved the code
here from the function named font, making it possible to use this in the inspector code.
(WebCore::CanvasRenderingContext2DBase::State::canvasLineCap const): Ditto.
(WebCore::CanvasRenderingContext2DBase::State::canvasLineJoin const): Ditto.
(WebCore::CanvasRenderingContext2DBase::State::canvasTextAlign const): Ditto.
(WebCore::CanvasRenderingContext2DBase::State::canvasTextBaseline const): Ditto.
(WebCore::CanvasRenderingContext2DBase::State::globalCompositeOperationString const): Ditto.
(WebCore::CanvasRenderingContext2DBase::State::shadowColorString const): Ditto.
(WebCore::CanvasRenderingContext2DBase::lineWidth const): Moved to the header.
(WebCore::CanvasRenderingContext2DBase::lineCap const): Ditto.
(WebCore::CanvasRenderingContext2DBase::lineJoin const): Ditto.
(WebCore::CanvasRenderingContext2DBase::miterLimit const): Ditto.
(WebCore::CanvasRenderingContext2DBase::shadowOffsetX const): Ditto.
(WebCore::CanvasRenderingContext2DBase::shadowOffsetY const): Ditto.
(WebCore::CanvasRenderingContext2DBase::shadowBlur const): Ditto.
(WebCore::CanvasRenderingContext2DBase::shadowColor const): Ditto.
(WebCore::CanvasRenderingContext2DBase::getLineDash const): Ditto.
(WebCore::CanvasRenderingContext2DBase::lineDashOffset const): Ditto.
(WebCore::CanvasRenderingContext2DBase::globalAlpha const): Ditto.
(WebCore::CanvasRenderingContext2DBase::globalCompositeOperation const): Ditto.
(WebCore::isFullCanvasCompositeMode): Made this file local, no longer a member function.
(WebCore::CanvasRenderingContext2DBase::isPointInPathInternal): Tweak style to match
the following function.
(WebCore::CanvasRenderingContext2DBase::isPointInStrokeInternal): Use a lambda for the
stroke style applier so we don't need a class.
(WebCore::CanvasRenderingContext2DBase::didDrawEntireCanvas): Updated since didDraw
now takes an OptionSet.
(WebCore::CanvasRenderingContext2DBase::didDraw): Updated to take an OptionSet.
(WebCore::CanvasRenderingContext2DBase::getImageData const): Use a single makeString
instead of a StringBuilder for an error message.
(WebCore::CanvasRenderingContext2DBase::putImageData): Updated since didDraw now
takes an OptionSet.
(WebCore::CanvasRenderingContext2DBase::imageSmoothingQuality const): Moved to the header.
(WebCore::CanvasRenderingContext2DBase::imageSmoothingEnabled const): Ditto.
(WebCore::CanvasRenderingContext2DBase::font const): Ditto. The bulk of the function is
now in CanvasRenderingContext2DBase::State::fontString.
(WebCore::CanvasRenderingContext2DBase::textAlign const): Deleted.
(WebCore::CanvasRenderingContext2DBase::textBaseline const): Deleted.
(WebCore::CanvasRenderingContext2DBase::canDrawText): Renamed from canDrawTextWithParams,
since the fact that a function has parameters doesn't need to be part of its name.
(WebCore::CanvasRenderingContext2DBase::normalizeSpaces): Use a return value instead of
an in/out argument for better clarity. This also matches the needs of all the call sites.
(WebCore::CanvasRenderingContext2DBase::drawText): Updated for changes to canDrawText
and normalizeSpaces.
(WebCore::CanvasRenderingContext2DBase::measureTextInternal): Ditto.

  • html/canvas/CanvasRenderingContext2DBase.h: Removed unneeded forward declarations.

Made the constructor protected. Moved the code for many simple getters here so they
can be inlined. The main call site is the JavaScript bindings. Removed unused getLineCap
and getLineJoin functions. Made the webkitBackingStorePixelRatio function static and
constexpr. Removed unused usesDisplayListDrawing function. Marked the FontProxy
class final. Removed the explicit copy constructor and assignment operator from the State
struct: letting the compiler generate it is better for our purposes. Made the state
function protected. Made most formerly-protected members private instead, since there
is no need for derived classes to use them. Made the enumeration CanvasDidDrawOption
into an enum class named DidDrawOption and use it with OptionSet instead of passing it
as an unsigned. Marked hasInvertibleTransform final instead of override.

  • html/canvas/OffscreenCanvasRenderingContext2D.cpp:

(WebCore::OffscreenCanvasRenderingContext2D::setFont): Call usesCSSCompatibilityParseMode
so we don't have to get at private member m_usesCSSCompatibilityParseMode.

  • html/canvas/OffscreenCanvasRenderingContext2D.h: Made isOffscreen2d private.
  • html/canvas/PaintRenderingContext2D.h: Made isPaint private.
  • inspector/InspectorCanvas.cpp:

(WebCore::InspectorCanvas::buildInitialState): When iterating the state stack, do not
get anything directly from the context, since it will give the value for the current
state, not the stack element we are iterating. Added a FIXME for the one case where
this was not easy to fix, "setPath", and left it broken as before.

  • platform/graphics/ImageBufferBackend.cpp:

(WebCore::ImageBufferBackend::getImageData const): Removed unneeded null check for
the data. ImageData::create will return nullptr, not an object with nullptr for data.

  • platform/graphics/Path.h: Use Function<void(GraphicsContext&)> instead of

StrkeStyleApplier.

  • platform/graphics/StrokeStyleApplier.h: Removed.
  • platform/graphics/cairo/PathCairo.cpp:

(WebCore::Path::strokeBoundingRect const): Use Function<void(GraphicsContext&)>.
(WebCore::Path::strokeContains const): Ditto.

  • platform/graphics/cg/PathCG.cpp:

(WebCore::Path::strokeContains const): Ditto.
(WebCore::Path::strokeBoundingRect const): Ditto.

  • platform/graphics/win/PathDirect2D.cpp:

(WebCore::Path::strokeContains const): Ditto.
(WebCore::Path::strokeBoundingRect const): Ditto.

  • rendering/svg/RenderSVGResourceGradient.cpp:

(WebCore::RenderSVGResourceGradient::applyResource): Pass a reference to
SVGRenderSupport::applyStrokeStyleToContext instead of a pointer.

  • rendering/svg/RenderSVGResourcePattern.cpp:

(WebCore::RenderSVGResourcePattern::applyResource): Ditto.

  • rendering/svg/RenderSVGResourceSolidColor.cpp:

(WebCore::RenderSVGResourceSolidColor::applyResource): Ditto.

  • rendering/svg/RenderSVGShape.cpp:

(WebCore::RenderSVGShape::shapeDependentStrokeContains): Use a lambda instead of
a StrokeStyleApplier object when calling strokeContainer.
(WebCore::RenderSVGShape::calculateStrokeBoundingBox const): Use a lambda instead
of a StrokeStyleApplier object when calling strokeBoundingRect.

  • rendering/svg/SVGRenderSupport.cpp:

(WebCore::SVGRenderSupport::applyStrokeStyleToContext): Take a reference rather
than a pointer.

  • rendering/svg/SVGRenderSupport.h: Updated for the above.

LayoutTests:

  • inspector/canvas/recording-2d-frameCount-expected.txt: Update since the state stack value of

the direction property is now correctly saved.

  • inspector/canvas/recording-2d-full-expected.txt: Ditto.
  • inspector/canvas/recording-2d-memoryLimit-expected.txt: Ditto.
  • inspector/canvas/recording-2d-saves-expected.txt: Updated.
  • inspector/canvas/recording-2d-saves.html: Added tests of setting all the properties

that the inspector canvas state machinery serializes, rather than just testing fillStyle.

  • inspector/canvas/resources/recording-2d.js:

(performSavePreActions.saveAndSet): Ditto.
(performSavePreActions): Ditto.

1:23 PM Changeset in webkit [274100] by Devin Rousso
  • 2 edits in trunk/Source/WebCore

[macCatalyst] Assertion Failed: this.visible in _pinchGestureRecognizerStateDidChange
https://bugs.webkit.org/show_bug.cgi?id=222927
<rdar://problem/75178415>

Reviewed by Eric Carlson.

  • Modules/modern-media-controls/controls/ios-inline-media-controls.js:

(IOSInlineMediaControls.prototype.gestureRecognizerStateDidChange):
(IOSInlineMediaControls.prototype._pinchGestureRecognizerStateDidChange): Drive-by: Rename for clarity.

1:12 PM Changeset in webkit [274099] by commit-queue@webkit.org
  • 5 edits
    6 adds in trunk

Fix replaced element definiteness as a grid-item
https://bugs.webkit.org/show_bug.cgi?id=221337

Patch by Ziran Sun <Ziran Sun> on 2021-03-08
Reviewed by Javier Fernandez.

LayoutTests/imported/w3c:

The test is imported from WPT.

  • web-platform-tests/css/css-grid/grid-items/percentage-size-indefinite-replaced-expected.html: Added.
  • web-platform-tests/css/css-grid/grid-items/percentage-size-indefinite-replaced.html: Added.
  • web-platform-tests/css/css-grid/grid-item-percentage-quirk-001-expected.html: Added.
  • web-platform-tests/css/css-grid/grid-item-percentage-quirk-001.html: Added.
  • web-platform-tests/css/css-grid/grid-item-percentage-quirk-002-expected.html: Added.
  • web-platform-tests/css/css-grid/grid-item-percentage-quirk-002.html: Added.

Source/WebCore:

When resolving indefinite percentage sizes against an intrinsic size for replaced grid item, if 'height'
has a computed value of 'auto', and the element has an intrinsic ratio then the used value of 'height'is:
(used width) / (intrinsic ratio) according to http://www.w3.org/TR/CSS21/visudet.html#inline-replaced-height
(10.6.2 Inline, replaced elements).

This changes makes RenderReplaced::hasReplacedLogicalHeight to return false when a replaced grid-item
has an indefinite containing-block override logical-height. This is to make sure
RenderReplaced::computeReplacedLogicalHeight() handles cases described correctly.

It is an import of chromium CL at https://chromium-review.googlesource.com/c/chromium/src/+/2562558
This change only picks parts that is applicable for WebKit from the chromium CL. It also fix test
css/css-grid/grid-item-percentage-quirk-001.html in WPT.

Test: imported/w3c/web-platform-tests/css/css-grid/grid-items/percentage-size-indefinite-replaced.html
Test: imported/w3c/web-platform-tests/css/css-grid/grid-item-percentage-quirk-001.html
Test: imported/w3c/web-platform-tests/css/css-grid/grid-item-percentage-quirk-002.html

  • rendering/RenderBoxModelObject.cpp:

(WebCore::RenderBoxModelObject::hasAutoHeightOrContainingBlockWithAutoHeight const):

1:12 PM Changeset in webkit [274098] by Ryan Haddad
  • 12 edits in trunk/Source/WebCore

Unreviewed, reverting r274069.

Caused an assertion failure with
TestWebKitAPI.DocumentOrder.Positions

Reverted changeset:

"Allow creation of a CSSFontSelector with a non-Document
ScriptExecutionContext"
https://bugs.webkit.org/show_bug.cgi?id=222735
https://commits.webkit.org/r274069

1:09 PM Changeset in webkit [274097] by Ryan Haddad
  • 2 edits in trunk/Tools

Move WebGL test bot to Big Sur
https://bugs.webkit.org/show_bug.cgi?id=222501

Unreviewed infrastructure fix.

  • CISupport/build-webkit-org/config.json: Add missing architecture.
12:55 PM Changeset in webkit [274096] by Patrick Angle
  • 5 edits
    2 adds in trunk/Source/WebCore

Web Inspector: Grid overlay does not adjust for element transforms (rotation, scale, etc.)
https://bugs.webkit.org/show_bug.cgi?id=222565

Reviewed by BJ Burg & Devin Rousso.

Added support throughout the grid drawing code to support grids that have been translated/rotated/scaled by
passing all coordinates through the renderGrid's transform before drawing.

Relative directions/lengths throughout (e.g. left, width, and column) are expressed as if there was no
transform applied to the grid in order to help with readability and reasoning with the code in the future.

  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • inspector/InspectorOverlay.cpp:
  • Added variant that doesn't resize bounds as a side effect.

(WebCore::quadToPath):
(WebCore::InspectorOverlay::drawLayoutHatching):

  • Support drawing hatching in a FloatQuad instead of a FloatRect.

(WebCore::InspectorOverlay::drawGridOverlay):

  • Use the renderGrid to transform known points into drawing coordinates.
  • inspector/InspectorOverlay.h:
  • platform/graphics/FloatLine.cpp: Added.

(WebCore::FloatLine::pointAtAbsoluteDistance const):

  • Finds the point that is the given absolute distance from the start point. The distance may be less than 0 or

greater than the length of the line.
(WebCore::FloatLine::pointAtRelativeDistance const):

  • Finds the point that is the given relative distance from the start point, where 0 is the start point and 1.0

is the end point. The distance may be less than zero or greater than 1.
(WebCore::FloatLine::extendedToBounds const):

  • Creates a new FloatLine that at least covers the provided bounds such that the new line's points will either

be outside or on the bounds.
(WebCore::FloatLine::intersectionWith const):

  • Finds the FloatPoint at the intersection of this FloatLine and another FloatLine.
  • platform/graphics/FloatLine.h: Added.
  • Introduced FloatLine class to store two points that conceptually form a line.

(WebCore::FloatLine::FloatLine):
(WebCore::FloatLine::start const):
(WebCore::FloatLine::end const):
(WebCore::FloatLine::length const):

12:33 PM Changeset in webkit [274095] by Jonathan Bedard
  • 2 edits in trunk/Tools

[run-webkit-tests] Delete old results server code (Follow-up)
https://bugs.webkit.org/show_bug.cgi?id=222393
<rdar://problem/74722220>

Unreviewed follow-up fix.

  • Scripts/webkitpy/layout_tests/run_webkit_tests.py:

(parse_args): Re-add allowed-host.

12:33 PM Changeset in webkit [274094] by Chris Dumez
  • 3 edits in trunk/Source/WebCore

Make sure AudioDestination::hardwareSampleRate() returns a valid sample rate
https://bugs.webkit.org/show_bug.cgi?id=222915

Reviewed by Eric Carlson.

Make sure AudioDestination::hardwareSampleRate() returns a valid sample rate. Returning a sample
rate of 0 would end up doing bad things because WebAudio code sometimes needs to divide values
by the sample rate.

  • Modules/webaudio/DefaultAudioDestinationNode.cpp:

(WebCore::DefaultAudioDestinationNode::DefaultAudioDestinationNode):
Add assertion to make sure the hardware sample rate is valid.

  • platform/audio/mac/AudioSessionMac.mm:

(WebCore::AudioSession::sampleRate const):
Log an error message and return 44100 as sample rate in case of error, instead of 0.

12:29 PM Changeset in webkit [274093] by Devin Rousso
  • 2 edits in trunk/Source/WebCore

Don't override previously found IDL files in the bindings generator
https://bugs.webkit.org/show_bug.cgi?id=222922

Reviewed by Sam Weinig.

If the same IDL file exists in

  • $(BUILT_PRODUCTS_DIR)/usr/local/include/WebKitAdditions
  • $(SDKROOT)/usr/local/include/WebKitAdditions
  • $(WebCore)/*/*.idl

then IDLFileForInterface should return the first one found, not the last one found.

  • bindings/scripts/CodeGenerator.pm:

(IDLFileForInterface):

12:18 PM Changeset in webkit [274092] by Megan Gardner
  • 2 edits in trunk/Source/WebCore

Localizable.string.txt fix
https://bugs.webkit.org/show_bug.cgi?id=222025
rdar://74262934

Reviewed by Tim Horton.

  • DerivedSources.make:
12:16 PM Changeset in webkit [274091] by Simon Fraser
  • 7 edits
    2 adds in trunk

Trackpad scrolling in the web inspector timeline is broken
https://bugs.webkit.org/show_bug.cgi?id=222853
rdar://73509018

Reviewed by Sam Weinig.
Source/WebCore:

Commit r266333 or thereabouts broke trackpad scrolling in the inspector timeline.

This scrolling works via a wheel event handler on a non-scrollable element that
dispatches a copy of the wheel event to a proxy overflow:scroll in script. This
broke the default wheel event handling path.

Fix by having EventHandler::defaultWheelEventHandler() only respect latching and
m_currentWheelEventAllowsScrolling (which is set based on WheelEventProcessingSteps
from the scrolling thread) for user events, i.e. those with an underlying native event.

Also make Event loggable, and add some braces.

Test: fast/events/wheel/redispatched-wheel-event.html

  • dom/Event.cpp:

(WebCore::Event::debugDescription const):
(WebCore::operator<<):

  • dom/Event.h:
  • dom/EventDispatcher.cpp:

(WebCore::EventDispatcher::dispatchEvent):

  • dom/Node.cpp:

(WebCore::Node::defaultEventHandler): This clause needs braces.

  • page/EventHandler.cpp:

(WebCore::EventHandler::defaultWheelEventHandler):

LayoutTests:

  • fast/events/wheel/redispatched-wheel-event-expected.txt: Added.
  • fast/events/wheel/redispatched-wheel-event.html: Added.
12:10 PM Changeset in webkit [274090] by Ruben Turcios
  • 8 edits in branches/safari-611.1.21.1-branch/Source

Versioning.

WebKit-7611.1.21.1.6

12:09 PM Changeset in webkit [274089] by stephan.szabo@sony.com
  • 7 edits in trunk/Source

[WinCairo] Builds with ENABLE_CONTEXT_MENUS=OFF fail
https://bugs.webkit.org/show_bug.cgi?id=222771

Reviewed by Don Olmstead.

Build fix for turning off context menus adding ifdefs as necessary.

Source/WebKit:

  • UIProcess/win/PageClientImpl.h:
  • UIProcess/win/WebView.cpp:

Source/WebKitLegacy/win:

  • WebCoreSupport/WebContextMenuClient.cpp:
  • WebCoreSupport/WebContextMenuClient.h:
  • WebView.cpp:
11:55 AM Changeset in webkit [274088] by ChangSeok Oh
  • 2 edits in trunk/LayoutTests

[GTK] avif tests failing
https://bugs.webkit.org/show_bug.cgi?id=222882

Reviewed by Philippe Normand.

Skip avif related tests since the avif support is disabled as default.
We will enable them when activating the avif support as default.

  • platform/gtk/TestExpectations:
11:51 AM Changeset in webkit [274087] by wilander@apple.com
  • 29 edits
    1 move in trunk

PCM: Align fraud prevention token naming with issue 73 in the Privacy CG repo
https://bugs.webkit.org/show_bug.cgi?id=222838
<rdar://75115427>

Reviewed by Brent Fulgham.

This patch doesn't change functionality and only aligns naming to this W3C Privacy CG issue:
https://github.com/privacycg/private-click-measurement/issues/73

Source/WebCore:

Naming for PCM fraud prevention is updated like this:

/.well-known/private-click-measurement/sign-secret-token/ changed to
/.well-known/private-click-measurement/sign-unlinkable-token/

/.well-known/private-click-measurement/get-unlinkable-token-public-key/ changed to
/.well-known/private-click-measurement/get-token-public-key/

source_secret_token in requests for token signature changed to source_unlinkable_token

source_unlinkable_token in attribution reports changed to source_secret_token

Variable, member, and function names are being renamed similarly.

  • loader/PrivateClickMeasurement.cpp:

(WebCore::PrivateClickMeasurement::attributionReportJSON const):
(WebCore::PrivateClickMeasurement::tokenSignatureJSON const):
(WebCore::PrivateClickMeasurement::setSourceSecretToken):
(WebCore::PrivateClickMeasurement::SourceSecretToken::isValid const):
(WebCore::PrivateClickMeasurement::setSourceUnlinkableToken): Deleted.
(WebCore::PrivateClickMeasurement::SourceUnlinkableToken::isValid const): Deleted.

  • loader/PrivateClickMeasurement.h:

(WebCore::PrivateClickMeasurement::setSourceUnlinkableTokenValue):
(WebCore::PrivateClickMeasurement::sourceUnlinkableToken const):
(WebCore::PrivateClickMeasurement::setSourceSecretTokenValue): Deleted.

  • loader/cocoa/PrivateClickMeasurementCocoa.mm:

(WebCore::PrivateClickMeasurement::calculateAndUpdateSourceUnlinkableToken):
(WebCore::PrivateClickMeasurement::calculateAndUpdateSourceSecretToken):

Source/WebKit:

Naming for PCM fraud prevention is updated like this:

/.well-known/private-click-measurement/sign-secret-token/ changed to
/.well-known/private-click-measurement/sign-unlinkable-token/

/.well-known/private-click-measurement/get-unlinkable-token-public-key/ changed to
/.well-known/private-click-measurement/get-token-public-key/

source_secret_token in requests for token signature changed to source_unlinkable_token

source_unlinkable_token in attribution reports changed to source_secret_token

Variable, member, and function names are being renamed similarly.

  • NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp:

(WebKit::ResourceLoadStatisticsDatabaseStore::buildPrivateClickMeasurementFromDatabase):

  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::setPCMFraudPreventionValuesForTesting):
(WebKit::NetworkProcess::setFraudPreventionValuesForTesting): Deleted.

Renamed setPCMFraudPreventionValuesForTesting() to make it more clear.

  • NetworkProcess/NetworkProcess.h:
  • NetworkProcess/NetworkProcess.messages.in:
  • NetworkProcess/NetworkSession.cpp:

(WebKit::NetworkSession::setPCMFraudPreventionValuesForTesting):
(WebKit::NetworkSession::setFraudPreventionValuesForTesting): Deleted.

Renamed setPCMFraudPreventionValuesForTesting() to make it more clear.

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

(WebKit::PrivateClickMeasurementManager::storeUnattributed):
(WebKit::PrivateClickMeasurementManager::getTokenPublicKey):
(WebKit::PrivateClickMeasurementManager::getSignedUnlinkableToken):
(WebKit::PrivateClickMeasurementManager::setPCMFraudPreventionValuesForTesting):
(WebKit::PrivateClickMeasurementManager::getSignedSecretToken): Deleted.
(WebKit::PrivateClickMeasurementManager::setFraudPreventionValuesForTesting): Deleted.

Renamed setPCMFraudPreventionValuesForTesting() to make it more clear.

  • NetworkProcess/PrivateClickMeasurementManager.h:
  • UIProcess/API/C/WKPage.cpp:

(WKPageSetPCMFraudPreventionValuesForTesting):
(WKPageSetFraudPreventionValuesForTesting): Deleted.

Renamed WKPageSetPCMFraudPreventionValuesForTesting() to make it more clear.

  • UIProcess/API/C/WKPagePrivate.h:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::setPCMFraudPreventionValuesForTesting):
(WebKit::WebPageProxy::setFraudPreventionValuesForTesting): Deleted.

Renamed setPCMFraudPreventionValuesForTesting() to make it more clear.

  • UIProcess/WebPageProxy.h:

Tools:

Naming for PCM fraud prevention is updated like this:

/.well-known/private-click-measurement/sign-secret-token/ changed to
/.well-known/private-click-measurement/sign-unlinkable-token/

/.well-known/private-click-measurement/get-unlinkable-token-public-key/ changed to
/.well-known/private-click-measurement/get-token-public-key/

source_secret_token in requests for token signature changed to source_unlinkable_token

source_unlinkable_token in attribution reports changed to source_secret_token

Variable, member, and function names are being renamed similarly.

  • TestWebKitAPI/Tests/WebCore/PrivateClickMeasurement.cpp:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebCore/cocoa/PrivateClickMeasurementCocoa.mm:

(TestWebKitAPI::TEST):

  • WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl:
  • WebKitTestRunner/InjectedBundle/TestRunner.cpp:

(WTR::TestRunner::setPrivateClickMeasurementFraudPreventionValuesForTesting):
(WTR::TestRunner::setFraudPreventionValuesForTesting): Deleted.

  • WebKitTestRunner/InjectedBundle/TestRunner.h:
  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::setPCMFraudPreventionValuesForTesting):
(WTR::TestController::setFraudPreventionValuesForTesting): Deleted.

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

(WTR::TestInvocation::didReceiveSynchronousMessageFromInjectedBundle):

LayoutTests:

  • http/tests/privateClickMeasurement/resources/fraudPreventionTestURL.php: Renamed from LayoutTests/http/tests/privateClickMeasurement/resources/signToken.php.

The way this PHP file is used goes beyond signing tokens so it now has a generic name.

  • http/tests/privateClickMeasurement/store-private-click-measurement-with-source-nonce-expected.txt:

Re-baselined to reflect the new naming.

  • http/tests/privateClickMeasurement/store-private-click-measurement-with-source-nonce.html:
11:36 AM Changeset in webkit [274086] by Ruben Turcios
  • 8 edits in branches/safari-611.1.21.0-branch/Source

Versioning.

WebKit-7611.1.21.0.5

11:12 AM Changeset in webkit [274085] by Aditya Keerthi
  • 2 edits in trunk/Source/WebKit

[iOS] <select multiple> group headers are illegible in dark mode
https://bugs.webkit.org/show_bug.cgi?id=222914
<rdar://problem/75020326>

Reviewed by Tim Horton.

  • UIProcess/ios/forms/WKFormSelectPicker.mm:

(-[WKSelectPickerTableViewController tableView:heightForHeaderInSection:]):

Do not specify a textColor for the header label. This ensures the default
semantic label color is used, which automatically adapts when dark mode
is enabled.

11:12 AM Changeset in webkit [274084] by Jonathan Bedard
  • 26 edits
    1 delete in trunk/Tools

[resultsdbpy] Adopt webkitscmpy
https://bugs.webkit.org/show_bug.cgi?id=222754
<rdar://problem/75049209>

Reviewed by Dewei Zhu.

Adopting webkitscmpy's remote repositories requires using the unit testing paradigms from
those objects, which requires considerable adjustment of testing code.

  • Scripts/libraries/resultsdbpy/resultsdbpy/init.py: Bump version, include webkitscmpy.
  • Scripts/libraries/resultsdbpy/resultsdbpy/controller/archive_controller_unittest.py:
  • Scripts/libraries/resultsdbpy/resultsdbpy/controller/ci_controller_unittest.py:
  • Scripts/libraries/resultsdbpy/resultsdbpy/controller/commit_controller.py:

(CommitController.register): Use webkitscmpy's exceptions.

  • Scripts/libraries/resultsdbpy/resultsdbpy/controller/commit_controller_unittest.py:

(CommitControllerTest.test_register_via_post): Deleted.

  • Scripts/libraries/resultsdbpy/resultsdbpy/controller/failure_controller_unittest.py:
  • Scripts/libraries/resultsdbpy/resultsdbpy/controller/suite_controller_unittest.py:
  • Scripts/libraries/resultsdbpy/resultsdbpy/controller/test_controller_unittest.py:
  • Scripts/libraries/resultsdbpy/resultsdbpy/controller/upload_controller_unittest.py:
  • Scripts/libraries/resultsdbpy/resultsdbpy/model/archive_context_unittest.py:
  • Scripts/libraries/resultsdbpy/resultsdbpy/model/ci_context_unittest.py:
  • Scripts/libraries/resultsdbpy/resultsdbpy/model/commit_context.py:

(CommitContext.branch_keys_for_commits):
(CommitContext.find_commits_by_id): default_branch is now an instance variable.
(CommitContext.find_commits_by_uuid): Ditto.
(CommitContext.find_commits_by_timestamp): Ditto.
(CommitContext.find_commits_in_range): Ditto.
(CommitContext.sibling_commits): Ditto.
(CommitContext.register_commit_with_repo_and_id): webkitscmpy repositories compute branch.

  • Scripts/libraries/resultsdbpy/resultsdbpy/model/commit_context_unittest.py:
  • Scripts/libraries/resultsdbpy/resultsdbpy/model/failure_context_unittest.py:
  • Scripts/libraries/resultsdbpy/resultsdbpy/model/mock_model_factory.py:

(MockModelFactory):
(MockModelFactory.safari): Use shared webkitscmpy mocks.
(MockModelFactory.webkit): Ditto.
(MockModelFactory.create): Timestamps in webkitscmpy are just integers.
(MockModelFactory.iterate_all_commits): webkitscmpy and resultsdbpy have slightly different
commit representations, so the mechanics of registering commits are different.

  • Scripts/libraries/resultsdbpy/resultsdbpy/model/mock_repository.py: Removed.
  • Scripts/libraries/resultsdbpy/resultsdbpy/model/model_unittest.py:
  • Scripts/libraries/resultsdbpy/resultsdbpy/model/repository.py:

(Repository):
(Repository.init): default_branch is now an instance variable.
(Repository.commit_for_id): webkitscmpy does not require the branch, given a hash or revision.
(StashRepository): Retrieve commit from webkitscmpy's remote BitBucket object.
(WebKitRepository): Hard-code WebKit's Subversion URL. This is temporary, since WebKit will shortly
become a GitHub repository.
(SCMException): Deleted.
(HTTPRepository): Deleted.
(SVNRepository): Deleted.
(WebKitRepository.commit_for_id.diff_changelogs): Deleted.

  • Scripts/libraries/resultsdbpy/resultsdbpy/model/repository_unittest.py:
  • Scripts/libraries/resultsdbpy/resultsdbpy/model/suite_context_unittest.py:
  • Scripts/libraries/resultsdbpy/resultsdbpy/model/test_context_unittest.py:
  • Scripts/libraries/resultsdbpy/resultsdbpy/model/upload_context_unittest.py:
  • Scripts/libraries/resultsdbpy/resultsdbpy/view/archive_view_unittest.py:
  • Scripts/libraries/resultsdbpy/resultsdbpy/view/commit_view_unittest.py:
  • Scripts/libraries/resultsdbpy/resultsdbpy/view/view_routes_unittest.py:
  • Scripts/libraries/resultsdbpy/setup.py: Bump version.
11:07 AM Changeset in webkit [274083] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

REGRESSION (r269627?): ASSERTION FAILED: &layoutState().establishedFormattingState(layoutBox.formattingContextRoot()) == this in WebCore::Layout::FormattingState::boxGeometry
https://bugs.webkit.org/show_bug.cgi?id=219905

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations: Skip the test.
11:07 AM Changeset in webkit [274082] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

REGRESSION (r272842): [iOS] security/contentSecurityPolicy/video-with-data-url-allowed-by-media-src-star.html is consistently failing
https://bugs.webkit.org/show_bug.cgi?id=222840

Unreviewed test gardening.

  • platform/ios/TestExpectations: Mark test as failing.
11:04 AM Changeset in webkit [274081] by Chris Dumez
  • 2 edits in trunk/Source/WebKit

Simplify CallbackAggregator in WebsiteDataStore::removeData()
https://bugs.webkit.org/show_bug.cgi?id=222837

Reviewed by Geoffrey Garen.

Simplify CallbackAggregator in WebsiteDataStore::removeData(). We don't need an explicit
counter data member or explicit calls to addPendingCallback() / removePendingCallback().
We can simply rely on the ref count of the CallbackAggregator.

  • UIProcess/WebsiteData/WebsiteDataStore.cpp:

(WebKit::WebsiteDataStore::removeData):

10:09 AM Changeset in webkit [274080] by Jonathan Bedard
  • 14 edits in trunk/Tools

[webkitscmpy] Add repository_id
https://bugs.webkit.org/show_bug.cgi?id=222827
<rdar://problem/75111000>

Reviewed by Dewei Zhu.

  • Scripts/libraries/webkitscmpy/setup.py: Bump version.
  • Scripts/libraries/webkitscmpy/webkitscmpy/init.py: Ditto.
  • Scripts/libraries/webkitscmpy/webkitscmpy/commit.py:

(Commit.Encoder.default): Add repository_id.
(Commit.init): Ditto.

  • Scripts/libraries/webkitscmpy/webkitscmpy/local/git.py:

(Git.init): Allow caller to specify repository id.
(Git.commit): Pass repository id to commit.

  • Scripts/libraries/webkitscmpy/webkitscmpy/local/scm.py:

(Scm.init): Allow caller to specify repository id.

  • Scripts/libraries/webkitscmpy/webkitscmpy/local/svn.py:

(Svn.init): Allow caller to specify repository id.
(Svn.commit): Pass repository id to commit.

  • Scripts/libraries/webkitscmpy/webkitscmpy/remote/bitbucket.py:

(BitBucket.init): Allow caller to specify repository id, infer from url.
(BitBucket.commit): Pass repository id to commit.

  • Scripts/libraries/webkitscmpy/webkitscmpy/remote/git_hub.py:

(GitHub.init): Allow caller to specify repository id, infer from url.
(GitHub.commit): Pass repository id to commit.

  • Scripts/libraries/webkitscmpy/webkitscmpy/remote/scm.py:

(Scm.init): Allow caller to specify repository id.

  • Scripts/libraries/webkitscmpy/webkitscmpy/remote/svn.py:

(Svn.init): Allow caller to specify repository id, infer from url.
(Svn.commit): Pass repository id to commit.

  • Scripts/libraries/webkitscmpy/webkitscmpy/scm_base.py:

(ScmBase.init): Allow caller to specify repository id.

  • Scripts/libraries/webkitscmpy/webkitscmpy/test/git_unittest.py:

(TestGitHub.test_id):
(TestBitBucket.test_id):

  • Scripts/libraries/webkitscmpy/webkitscmpy/test/svn_unittest.py:

(TestRemoteSvn.test_id):

10:05 AM Changeset in webkit [274079] by commit-queue@webkit.org
  • 3 edits in trunk/Tools

webkitbot should stop saying "<revision> broke the build" when we revert commits
https://bugs.webkit.org/show_bug.cgi?id=222906

Patch by Michael Catanzaro <Michael Catanzaro> on 2021-03-08
Reviewed by Jonathan Bedard.

Instead of saying the patch "broke the build," let's say it "introduced a regression." This
is more generic, since we revert patches for lots of reasons that are not build failures.
Build failures count as regressions.

  • Scripts/webkitpy/tool/commands/download.py:

(CreateRevert._prepare_state):

  • Scripts/webkitpy/tool/commands/download_unittest.py:
10:02 AM Changeset in webkit [274078] by graouts@webkit.org
  • 2 edits in trunk/LayoutTests

[Web Animations] imported/w3c/web-platform-tests/css/css-transitions/before-load-001.html is a failure
https://bugs.webkit.org/show_bug.cgi?id=203416

Unreviewed.

This test now passes reliably on iOS according to
https://results.webkit.org/?suite=layout-tests&test=imported%2Fw3c%2Fweb-platform-tests%2Fcss%2Fcss-transitions%2Fbefore-load-001.html

  • platform/ios/TestExpectations:
9:56 AM Changeset in webkit [274077] by graouts@webkit.org
  • 3 edits
    2 deletes in trunk/LayoutTests

Unreviewed. Remove a test supporting code that was removed from the WPT suite (see issue #27923).

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-transitions/properties-value-auto-001-expected.txt: Removed.
  • web-platform-tests/css/css-transitions/properties-value-auto-001.html: Removed.
  • web-platform-tests/css/css-transitions/support/properties.js:

(values.string_appeared_here):
(root.getAutoPropertyTests): Deleted.

LayoutTests:

  • platform/glib/TestExpectations:
  • platform/ios/TestExpectations:
9:51 AM Changeset in webkit [274076] by Peng Liu
  • 9 edits in trunk

[GPUP] Some media tests related to canvas fail when media in GPU Process is enabled
https://bugs.webkit.org/show_bug.cgi?id=221820

Reviewed by Jer Noble.

Source/WebCore:

When "GPU Process: Media" is enabled and "GPU Process: Canvas Rendering" is disabled,
MediaPlayerPrivateAVFoundationObjC::nativeImageForCurrentTime() will be called
to get native images (video frames) from a video player. This function will copy
pixel buffers from CoreVideo, and we may need to rotate the pixel buffers before
converting them to native images. The process to copy pixel buffers from CoreVideo
and rotate them is implemented in MediaPlayerPrivateAVFoundationObjC::updateLastPixelBuffer().
It rotates pixel buffers with an ImageRotationSessionVT object (m_imageRotationSession).

With the current implementation of ImageRotationSessionVT, we can rotate pixel buffers
with following two approaches:

  • Construct an uninitialized instance, and call `ImageRotationSessionVT::rotate(

MediaSample&, const RotationProperties&, IsCGImageCompatible). The rotate` function
will initialize the object if needed.

  • Construct an instance with given rotation properties, size, pixel buffer format,

and CGImage compatibility, then call ImageRotationSessionVT::rotate(CVPixelBufferRef).
When we call the rotate function, we need to make sure the pixel buffer's format
is consistent with the ImageRotationSessionVT instance. Otherwise, the rotation will
fail and the caller will get an empty pixel buffer (this bug).

In order to use the second approach in MediaPlayerPrivateAVFoundationObjC, we need to
figure out the pixel buffer format to construct an ImageRotationSessionVT instance.
But that can only be done after we get a pixel buffer from CoreVideo.

This patch refactors ImageRotationSessionVT to better support the aforementioned
second approach. MediaPlayerPrivateAVFoundationObjC constructs an ImageRotationSessionVT
instance without pixel buffer format, and the ImageRotationSessionVT instance
will figure out the pixel buffer format by itself and configures its CVPixelBufferPool
properly when we call rotate function.

No new tests. Fix a test failure:

  • media/video-orientation-canvas.html
  • platform/graphics/avfoundation/objc/ImageDecoderAVFObjC.mm:

(WebCore::ImageDecoderAVFObjC::readTrackMetadata):

  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:

(WebCore::MediaPlayerPrivateAVFoundationObjC::updateRotationSession):
(WebCore::MediaPlayerPrivateAVFoundationObjC::nativeImageForCurrentTime):
We have to update the image synchronously to ensure that the caller gets the correct image.

  • platform/graphics/cv/ImageRotationSessionVT.h:

Remove isMatching() because it is not defined/used.

  • platform/graphics/cv/ImageRotationSessionVT.mm:

(WebCore::ImageRotationSessionVT::ImageRotationSessionVT):
(WebCore::ImageRotationSessionVT::initialize):
(WebCore::ImageRotationSessionVT::rotate):

  • platform/mediastream/mac/RealtimeOutgoingVideoSourceCocoa.mm:

(WebCore::RealtimeOutgoingVideoSourceCocoa::rotatePixelBuffer):

LayoutTests:

  • media/video-orientation-canvas.html:
  • platform/wk2/TestExpectations:
9:27 AM Changeset in webkit [274075] by Chris Gambrell
  • 2 edits in trunk/LayoutTests

REGRESSION: [iOS] http/tests/security/strip-referrer-to-origin-for-third-party-redirects-in-private-mode.html is failing
https://bugs.webkit.org/show_bug.cgi?id=222823
<rdar://problem/75133450>

Reviewed by Darin Adler.

  • http/tests/security/strip-referrer-to-origin-for-third-party-redirects-in-private-mode.html:
8:57 AM Changeset in webkit [274074] by weinig@apple.com
  • 14 edits in trunk/Source

Remove quirks for the no longer supported iAd Producer
https://bugs.webkit.org/show_bug.cgi?id=222894

Reviewed by Chris Dumez.

Source/WebCore:

Remove two quirks that were only for iAd Producer, which is no longer
supported on the latest macOS operating systems.

By removing one quirk, we can also remove some indirection in CSSStyleDeclaration.

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateAttributeSetterBodyDefinition):

  • bindings/scripts/test/JS/JSTestCSSProperty.cpp:

(WebCore::setJSTestCSSProperty_propertySetter):

  • css/CSSStyleDeclaration.cpp:

(WebCore::CSSStyleDeclaration::setNamedItem):
(WebCore::CSSStyleDeclaration::setPropertyValueInternal): Deleted.

  • css/CSSStyleDeclaration.h:
  • loader/DocumentLoader.cpp:

(WebCore::DocumentLoader::isLoadingInAPISense const):

  • page/DeprecatedGlobalSettings.cpp:

(WebCore::DeprecatedGlobalSettings::setShouldRespectPriorityInCSSAttributeSetters): Deleted.
(WebCore::DeprecatedGlobalSettings::shouldRespectPriorityInCSSAttributeSetters): Deleted.

  • page/DeprecatedGlobalSettings.h:

Source/WebKitLegacy/mac:

Remove two quirks that were only for iAd Producer, which is no longer
supported on the latest macOS operating systems.

  • WebView/WebPreferencesDefaultValues.h:
  • WebView/WebPreferencesDefaultValues.mm:

(WebKit::defaultNeedsIsLoadingInAPISenseQuirk): Deleted.

  • WebView/WebView.mm:

(-[WebView _commonInitializationWithFrameName:groupName:]):
(shouldRespectPriorityInCSSAttributeSetters): Deleted.

Source/WTF:

  • Scripts/Preferences/WebPreferences.yaml:

Remove NeedsIsLoadingInAPISenseQuirk preference which only existed to enable
a quirk for iAd Producer.

8:27 AM WebKitGTK/Debugging edited by Philippe Normand
(diff)
8:05 AM WebKitGTK/2.32.x edited by Michael Catanzaro
(diff)
8:01 AM Changeset in webkit [274073] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Unreviewed, reverting r273197.
https://bugs.webkit.org/show_bug.cgi?id=222909

Revert of r273084 broke building on Linux platforms

Reverted changeset:

"Remove unused isGoogle function"
https://bugs.webkit.org/show_bug.cgi?id=222227
https://trac.webkit.org/changeset/273197

7:28 AM Changeset in webkit [274072] by graouts@webkit.org
  • 4 edits in trunk/LayoutTests

[Web Animations] Some tests under web-animations/timing-model/animations are ImageOnlyFailure
https://bugs.webkit.org/show_bug.cgi?id=207260

Reviewed by Sam Weinig.

These three tests have been passing reliably on most plaforms for a while now and should no longer
be marked as ImageOnlyFailure:

  • imported/w3c/web-platform-tests/web-animations/timing-model/animations/reverse-running-animation.html
  • imported/w3c/web-platform-tests/web-animations/timing-model/animations/update-playback-rate-fast.html
  • imported/w3c/web-platform-tests/web-animations/timing-model/animations/update-playback-rate-slow.html

The first of those three tests is still an ImageOnlyFailure on GTK and WPE, so we add that expectation
to the platform-specific files.

  • TestExpectations:
  • platform/gtk/TestExpectations:
  • platform/wpe/TestExpectations:
7:20 AM Changeset in webkit [274071] by graouts@webkit.org
  • 2 edits in trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-backgrounds/animations

Unreviewed. Update border-width interpolation test after WPT PR #27934.

  • web-platform-tests/css/css-backgrounds/animations/border-width-interpolation-expected.txt:
  • web-platform-tests/css/css-backgrounds/animations/border-width-interpolation.html:
6:45 AM WebKitGTK/2.32.x edited by Michael Catanzaro
(diff)
6:38 AM Changeset in webkit [274070] by commit-queue@webkit.org
  • 5 edits in trunk

Unreviewed, reverting r273084.
https://bugs.webkit.org/show_bug.cgi?id=222905

User agent quirks still needed after all

Reverted changeset:

"[GTK] Remove all Google user agent quirks except for Google
Docs"
https://bugs.webkit.org/show_bug.cgi?id=222039
https://trac.webkit.org/changeset/273084

5:53 AM Changeset in webkit [274069] by Chris Lord
  • 12 edits in trunk/Source/WebCore

Allow creation of a CSSFontSelector with a non-Document ScriptExecutionContext
https://bugs.webkit.org/show_bug.cgi?id=222735

Reviewed by Darin Adler.

Replace Document member of CSSFontSelector with a ScriptExecutionContext.
This also changes make_names.pl string header generation to allow for easier enumeration of font family strings.

No new tests as new behaviour is currently unused. Existing behaviour covered by existing tests.

  • bindings/scripts/StaticString.pm:

(GenerateStrings): Revert change from bug 222552

  • css/CSSFontSelector.cpp:

(WebCore::CSSFontSelector::CSSFontSelector):
(WebCore::m_version):
(WebCore::CSSFontSelector::fontFaceSet):
(WebCore::CSSFontSelector::addFontFaceRule):
(WebCore::CSSFontSelector::fontStyleUpdateNeeded):
(WebCore::CSSFontSelector::resolveGenericFamily):
(WebCore::CSSFontSelector::fontRangesForFamily):
(WebCore::CSSFontSelector::stopLoadingAndClearFonts):
(WebCore::CSSFontSelector::beginLoadingFontSoon):
(WebCore::CSSFontSelector::loadPendingFonts):
(WebCore::CSSFontSelector::fontLoadingTimerFired):
(WebCore::CSSFontSelector::fallbackFontCount):
(WebCore::CSSFontSelector::fallbackFontAt):

  • css/CSSFontSelector.h:
  • css/FontFaceSet.cpp:

(WebCore::FontFaceSet::create):
(WebCore::FontFaceSet::FontFaceSet):

  • css/FontFaceSet.h:
  • css/FontFaceSet.idl:
  • dom/Document.h:
  • dom/ScriptExecutionContext.h:
  • dom/make_names.pl:

(printNamesHeaderFile): Make global string data and names accessible via a Vector and add an enum of name indices.

  • platform/graphics/FontGenericFamilies.cpp:

(WebCore:: const):

  • platform/graphics/FontGenericFamilies.h:
4:37 AM Changeset in webkit [274068] by commit-queue@webkit.org
  • 6 edits in trunk

Support aspect-ratio in intrinsic sizing
https://bugs.webkit.org/show_bug.cgi?id=220861

Patch by Rob Buis <rbuis@igalia.com> on 2021-03-08
Reviewed by Antti Koivisto.

Source/WebCore:

Support aspect-ratio in intrinsic sizing calculations.
The values min-content/max-content/fit-content
get set a value through aspect-ratio [1].
However min-width:auto is special, it should take content
into account [2]. In order to support this, compute
logical (intrinsic) width using MinIntrinsic, since staying
with MinContent/MaxContent would cause an infinite loop.

Behavior matches Firefox and Chrome.

[1] https://www.w3.org/TR/css-sizing-4/#propdef-aspect-ratio
[2] https://www.w3.org/TR/css-sizing-4/#aspect-ratio-minimum

  • rendering/RenderBlock.cpp:

(WebCore::RenderBlock::computePreferredLogicalWidths):
Compute child min/max pref widths from aspect-ratio if it applies.

  • rendering/RenderBox.cpp:

(WebCore::RenderBox::constrainLogicalWidthInFragmentByMinMax const):
Add an allowIntrinsic parameter to prevent recursion.
(WebCore::RenderBox::computeIntrinsicLogicalWidthUsing const):
Compute intrinsic logical width from aspect ratio if possible.
(WebCore::RenderBox::computeLogicalWidthInFragmentUsing const):
(WebCore::RenderBox::shouldComputeLogicalHeightFromAspectRatio const):
min/max/fit-content in the block axis is treated as auto.
(WebCore::RenderBox::computeLogicalWidthFromAspectRatio const):
Prevent recursion by passing false for allowIntrinsic.

  • rendering/RenderBox.h:

LayoutTests:

Enable tests that pass now.

3:55 AM Changeset in webkit [274067] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

[Web Animations] Don't update animation playback rate if timeline is inactive
https://bugs.webkit.org/show_bug.cgi?id=222839

Patch by Ian Gilbert <iang@apple.com> on 2021-03-08
Reviewed by Antoine Quint.

An inactive timeline will return WTF::nullopt for an unresolved time value.
Added nullopt check to abort setting playback rate when we cannot calculate a new start time.

No new tests as reproducing requires navigating to a new document while updating the playback
rate and I was unable to make a reliable test case.

  • animation/WebAnimation.cpp:

(WebCore::WebAnimation::updatePlaybackRate):

2:43 AM Changeset in webkit [274066] by commit-queue@webkit.org
  • 19 edits
    4 adds in trunk

WebGL asserts after GPU process times out
https://bugs.webkit.org/show_bug.cgi?id=222546

Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2021-03-08
Reviewed by Wenson Hsieh.

Source/WebCore:

Add a trigger internals.simulateEventForWebGLContext("timeout", context)
to trigger timeout for calls to a WebGL context.

Tests: fast/canvas/webgl/lose-context-on-timeout-async.html

fast/canvas/webgl/lose-context-on-timeout.html

  • testing/Internals.cpp:

(WebCore::Internals::simulateEventForWebGLContext):

Source/WebKit:

IPC::StreamClientConnection::tryAcquire would assert on

ASSERT(untrustedLimit < (dataSize() - 1));

The untrustedLimit value would be then:

StreamConnectionBuffer::serverOffsetClientIsWaitingTag.

This would be equivalent of assertion added in this commit:

ASSERT(clientLimit != ClientLimit::clientIsWaitingTag);

This would happen in case of timeout, because upon entering
the wait sequence:

1) The client itself would first write the tag value to the

offset variable.

2) Wait and timeout the wait.
3) run the next iteration of the acquire loop.

The next iteration would load the tag value written before,
e.g. serverOffsetClientIsWaitingTag.
This would be then used in clampedLimit() call.

Fix this by taking it into account that the variable might be
ClientLimit::clientIsWaitingTag within the acquire loop.

Possibly fix future similar problems by not treating the value as
size_t, rather treat it as enum class ClientOffset : size_t. This
enables the compiler to enforce that when checking for the various tag
values, the holder must hold the enum class. When intending to interpret
the value as size_t, holder must explicitly convert.

Do the above change for the ServerOffset.

Tests: fast/canvas/webgl/lose-context-on-timeout-async.html

fast/canvas/webgl/lose-context-on-timeout.html

  • GPUProcess/GPUConnectionToWebProcess.cpp:

(WebKit::GPUConnectionToWebProcess::releaseGraphicsContextGL):
Do not assert that the release message actually releases the context.
For testing, the induce the timeout by releasing the context prematurely
and treating the subsequent messages as if they were non-legit messages.
That should be just skipped.

(WebKit::GPUConnectionToWebProcess::releaseGraphicsContextGLForTesting):
Add a public function to invoke from "ForTesting" codepaths.

(WebKit::GPUConnectionToWebProcess::dispatchMessage):
(WebKit::GPUConnectionToWebProcess::dispatchSyncMessage):
Skip RemoteGraphicsContextGL messages that do not get routed to any
instance. These messages can be "non-legit", ones that are sent before
the "context was lost" message reached the sender, or ones that are
sent during simulated timeout.
These do not contain asserts as it is expected that these will occur in
above situations.

  • GPUProcess/GPUConnectionToWebProcess.h:
  • GPUProcess/graphics/RemoteGraphicsContextGL.cpp:

(WebKit::RemoteGraphicsContextGL::simulateEventForTesting):

  • GPUProcess/graphics/RemoteGraphicsContextGL.h:
  • GPUProcess/graphics/RemoteGraphicsContextGL.messages.in:
  • GPUProcess/graphics/RemoteGraphicsContextGLFunctionsGenerated.h:

Add the simulateEventForTesting function to simulate the
timeout. Simulate via just removing the context, which causes
left-over messages to skipped.
Currently we do not simulate the timeout with an infinite loop
in GPU process threads as that is not supported.
Currently we do not simulate the timeout with a gpu process
crash since it is not supported to be tested (will cause a
reload).

  • Platform/IPC/StreamClientConnection.cpp:

(IPC::StreamClientConnection::StreamClientConnection):

  • Platform/IPC/StreamClientConnection.h:

(IPC::StreamClientConnection::sendSync):
(IPC::StreamClientConnection::release):
Change size_t usage to -> ClientOffset, ServerOffset

(IPC::StreamClientConnection::tryAcquire):
Fix the assertion of equivalent of ASSERT(clientLimit != ClientLimit::clientIsWaitingTag);
by reorganizing the acquire loop.

(IPC::StreamClientConnection::toLimit const):
Fix the off-by-one in assertion error
( < dataSize() - 1 vs <= dataSize() - 1)

Rename from clampedLimit() to toLimit(), as the
clamping is confusing as the client trusts the
server.

  • Platform/IPC/StreamConnectionBuffer.cpp:

(IPC::StreamConnectionBuffer::StreamConnectionBuffer):
(IPC::StreamConnectionBuffer::operator=):
(IPC::StreamConnectionBuffer::encode const):

  • Platform/IPC/StreamConnectionBuffer.h:

(IPC::StreamConnectionBuffer::clientOffset):
(IPC::StreamConnectionBuffer::serverOffset):
(IPC::StreamConnectionBuffer::clientWaitSemaphore):
(IPC::StreamConnectionBuffer::maximumSize):

  • Platform/IPC/StreamServerConnection.cpp:

(IPC::StreamServerConnectionBase::tryAquire):
(IPC::StreamServerConnectionBase::release):
Change size_t usage to -> ClientOffset, ServerOffset

(IPC::StreamServerConnectionBase::clampedLimit const):
Fix the off-by-one in assertion error
( < dataSize() - 1 vs <= dataSize() - 1)

  • Platform/IPC/StreamServerConnection.h:

(IPC::StreamServerConnectionBase::sharedServerLimit):
(IPC::StreamServerConnectionBase::sharedServerOffset):

  • WebProcess/GPU/graphics/RemoteGraphicsContextGLProxy.cpp:

(WebKit::RemoteGraphicsContextGLProxy::synthesizeGLError):
(WebKit::RemoteGraphicsContextGLProxy::getError):
For the cases where the timeout would happen in these two functions,
call the markContextLost() instead of wasLost(). This is to clarify
all the context lost handling to use the same pattern.

(WebKit::RemoteGraphicsContextGLProxy::simulateEventForTesting):

  • WebProcess/GPU/graphics/RemoteGraphicsContextGLProxy.h:
  • WebProcess/GPU/graphics/RemoteGraphicsContextGLProxyFunctionsGenerated.cpp:

LayoutTests:

Add tests to test the case where a WebGL call times out.
Add two variants: one which most probably times out on
synchronous call, and one which most probably times out on
asynchronous call.

  • fast/canvas/webgl/lose-context-on-status-failure.html:

The testing APIs were changed, so replace use of
Internals.setFailNextGPUStatusCheck()
with Internals.simulateEventForWebGLContext()

  • fast/canvas/webgl/lose-context-on-timeout-async-expected.txt: Added.
  • fast/canvas/webgl/lose-context-on-timeout-async.html: Added.
  • fast/canvas/webgl/lose-context-on-timeout-expected.txt: Added.
  • fast/canvas/webgl/lose-context-on-timeout.html: Added.
  • fast/canvas/webgl/webglcontextchangedevent.html:
1:37 AM Changeset in webkit [274065] by commit-queue@webkit.org
  • 15 edits in trunk

WebGL context screen change events should work with GPU process
https://bugs.webkit.org/show_bug.cgi?id=219669
<rdar://problem/72373371>

Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2021-03-08
Reviewed by Per Arne Vollan.

Source/WebKit:

Pass display configuration change notification from UI
process to GPU process.

Fixes

fast/canvas/webgl/webglcontextchangedevent.html
fast/canvas/webgl/context-update-on-display-configuration.html

  • GPUProcess/GPUConnectionToWebProcess.cpp:

(WebKit::GPUConnectionToWebProcess::displayConfigurationChanged):

  • GPUProcess/GPUConnectionToWebProcess.h:
  • GPUProcess/GPUProcess.cpp:

(WebKit::GPUProcess::displayConfigurationChanged):

  • GPUProcess/GPUProcess.h:
  • GPUProcess/GPUProcess.messages.in:
  • GPUProcess/graphics/RemoteGraphicsContextGL.cpp:

(WebKit::RemoteGraphicsContextGL::displayWasReconfigured):

  • GPUProcess/graphics/RemoteGraphicsContextGL.h:
  • Platform/IPC/ScopedActiveMessageReceiveQueue.h:

(IPC::ScopedActiveMessageReceiveQueue::operator-> const):

  • UIProcess/GPU/GPUProcessProxy.cpp:

(WebKit::GPUProcessProxy::displayConfigurationChanged):

  • UIProcess/GPU/GPUProcessProxy.h:
  • UIProcess/WebProcessPool.cpp:

(WebKit::displayReconfigurationCallBack):
(WebKit::WebProcessPool::sendDisplayConfigurationChangedMessageForTesting):

LayoutTests:

  • fast/canvas/webgl/webglcontextchangedevent.html:

Make manually testable.

  • gpu-process/TestExpectations:

Remove two tests that now pass.

12:59 AM Changeset in webkit [274064] by commit-queue@webkit.org
  • 3 edits
    2 adds in trunk

REGRESSION(r272900): Nullptr crash in ComposedTreeIterator::traverseNextInShadowTree() via ShadowRoot::hostChildElementDidChange
https://bugs.webkit.org/show_bug.cgi?id=222720

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

Source/WebCore:

The list of assigned nodes contains weak pointers, we should check the node hasn't been destroyed.

Test: fast/html/details-set-inner-text-crash.html

  • dom/ComposedTreeIterator.cpp:

(WebCore::ComposedTreeIterator::traverseNextInShadowTree):

LayoutTests:

  • fast/html/details-set-inner-text-crash-expected.txt: Added.
  • fast/html/details-set-inner-text-crash.html: Added.
12:52 AM Changeset in webkit [274063] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore/platform/gtk/po

[GTK] Update Simplified Chinese translation
https://bugs.webkit.org/show_bug.cgi?id=222845

Patch by Dingzhong Chen <wsxy162@gmail.com> on 2021-03-08
Reviewed by Carlos Garcia Campos.

  • zh_CN.po:
12:28 AM Changeset in webkit [274062] by Diego Pino Garcia
  • 19 edits
    2 adds
    4 deletes in trunk/LayoutTests

[GTK] Unreviewed test gardening. Update baselines.

  • platform/glib/fast/css/getComputedStyle/computed-style-expected.txt: After r273882.
  • platform/glib/fast/css/getComputedStyle/computed-style-without-renderer-expected.txt: After r273882.
  • platform/glib/fast/table/table-display-types-strict-expected.txt: After r273386.
  • platform/glib/http/tests/navigation/redirect-to-fragment2-expected.txt: Added. Passing since r273781.
  • platform/glib/imported/w3c/web-platform-tests/mediacapture-streams/MediaStream-MediaElement-srcObject.https-expected.txt: After r273644.
  • platform/glib/svg/css/getComputedStyle-basic-expected.txt: After r273882.
  • platform/gtk/compositing/geometry/clipping-foreground-expected.png: After r271348.
  • platform/gtk/compositing/geometry/clipping-foreground-expected.txt: After r271348.
  • platform/gtk/css1/text_properties/vertical_align-expected.txt: After r273386.
  • platform/gtk/fast/dom/HTMLMeterElement/meter-element-expected.txt: After r271110.
  • platform/gtk/fast/dom/HTMLMeterElement/meter-styles-changing-pseudo-expected.txt: After r271110.
  • platform/gtk/fast/dom/HTMLMeterElement/meter-styles-expected.png: After r271110.
  • platform/gtk/fast/dom/HTMLMeterElement/meter-styles-expected.txt: After r271110.
  • platform/gtk/fast/forms/input-disabled-color-expected.png: After r271021.
  • platform/gtk/fast/forms/input-disabled-color-expected.txt: After r271021.
  • platform/gtk/fast/forms/linebox-overflow-in-textarea-padding-expected.png: After r271348.
  • platform/gtk/fast/forms/linebox-overflow-in-textarea-padding-expected.txt: After r271348.
  • platform/gtk/fast/inline-block/inline-block-vertical-align-expected.txt: After r271110.
  • platform/gtk/fast/scrolling/overflow-scrollable-after-back-expected.txt: Removed. Stale baseline.
  • platform/gtk/http/tests/navigation/redirect-to-fragment2-expected.txt: Removed. Moved to GLib baseline.
  • platform/gtk/imported/w3c/web-platform-tests/css/css-color/animation/opacity-interpolation-expected.txt: Removed. Stale baseline.
  • platform/gtk/imported/w3c/web-platform-tests/css/cssom/cssstyledeclaration-csstext-expected.txt: After r273072.
  • platform/wpe/http/tests/navigation/redirect-to-fragment2-expected.txt: Removed. Moved to GLib baseline.

Mar 7, 2021:

7:45 PM Changeset in webkit [274061] by Lauro Moura
  • 3 edits
    2 adds in trunk/LayoutTests

[GLIB] Gardening and updating baselines

Unreviewed test gardening.

  • platform/glib/TestExpectations:
  • platform/glib/imported/w3c/web-platform-tests/shadow-dom/nested-slot-remove-crash-expected.txt: Added.
  • platform/wpe/TestExpectations:
6:02 PM Changeset in webkit [274060] by Lauro Moura
  • 2 edits in trunk/Source/WebCore

Unreviewed. Fix -Wunused-parameter warning after r274033

  • rendering/RenderLayerCompositor.cpp:

(WebCore::RenderLayerCompositor::requiresCompositingForModel const):

5:48 PM Changeset in webkit [274059] by Lauro Moura
  • 2 edits in trunk/Source/WebCore

Unreviewed. Fix -Wreturn-type warning after r273891

  • Modules/mediastream/MediaStreamTrack.cpp:

(WebCore::trackMatchesKind):

2:45 PM Changeset in webkit [274058] by Wenson Hsieh
  • 6 edits in trunk

[iOS] maild hits a simulated crash when ENABLE(APP_HIGHLIGHTS) is defined
https://bugs.webkit.org/show_bug.cgi?id=222893
<rdar://problem/74230060>

Reviewed by Tim Horton.

Source/WebKit:

Fix the simulated crash by not initializing the shared callout bar and installing menu items for new app
highlight actions in the case where the web view is unparented. Additionally, avoid this work in the case where
the selection is not a range.

Test: AppHighlights.AvoidForcingCalloutBarInitialization

  • UIProcess/API/ios/WKWebViewIOS.mm:

(-[WKWebView didMoveToWindow]):

Call -setUpAppHighlightMenusIfNeeded to ensure that we still add app highlight menu items in the case where
we avoided it previously, due to the web view being unparented. Note that if we're being unparented (i.e.
self.window has just become nil), we will return early from -setUpAppHighlightMenusIfNeeded.

  • UIProcess/ios/WKContentViewInteraction.h:
  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView _selectionChanged]):
(-[WKContentView setUpAppHighlightMenusIfNeeded]):
(-[WKContentView setUpAppHighlightMenus]): Deleted.

Rename setUpAppHighlightMenus to setUpAppHighlightMenusIfNeeded, and declare it in the header so that we
can call into it from -didMoveToWindow above.

Tools:

Add an API test to verify that we don't attempt to initialize the platform callout bar.

  • TestWebKitAPI/Tests/WebKitCocoa/WKAppHighlights.mm:
12:32 PM Changeset in webkit [274057] by Said Abou-Hallawa
  • 6 edits in trunk

[GPU Process] Recording transparency layer should reset the alpha of lastDrawingState
https://bugs.webkit.org/show_bug.cgi?id=222855

Reviewed by Simon Fraser.

Source/WebCore:

After appending BeginTransparencyLayer item, the alpha of lastDrawingState
should be reset. So any subsequent setAlpha() should be accumulated even
if the new alpha equals to the last alpha which was set in lastDrawingState.

  • platform/graphics/GraphicsContext.cpp:

(WebCore::GraphicsContext::beginTransparencyLayer):
(WebCore::GraphicsContext::endTransparencyLayer):

  • platform/graphics/displaylists/DisplayListRecorder.cpp:

(WebCore::DisplayList::Recorder::beginTransparencyLayer):
(WebCore::DisplayList::Recorder::endTransparencyLayer):

  • platform/graphics/displaylists/DisplayListRecorder.h:

(WebCore::DisplayList::Recorder::ContextState::cloneForTransparencyLayer const):

LayoutTests:

  • gpu-process/TestExpectations:
12:26 PM Changeset in webkit [274056] by graouts@webkit.org
  • 2 edits in trunk/LayoutTests

[Mojave] webanimations/accelerated-transform-related-animation-property-order.html is failing
https://bugs.webkit.org/show_bug.cgi?id=220018

Reviewed by Sam Weinig.

Mojave is no longer supported on ToT and this test has been passing reliably on the bots.

  • platform/mac-wk2/TestExpectations:
12:16 PM Changeset in webkit [274055] by graouts@webkit.org
  • 8 edits in trunk

Correctly handle "auto" values when blending z-index
https://bugs.webkit.org/show_bug.cgi?id=222870

Reviewed by Dean Jackson.

LayoutTests/imported/w3c:

Add an extra 72 PASS results. We now pass all the z-index interpolation tests.

Another test has new failures, but this is expected, this test behaves the same way
across Firefox and Chrome as well.

  • web-platform-tests/css/css-transitions/animations/z-index-interpolation-expected.txt:
  • web-platform-tests/css/css-transitions/properties-value-auto-001-expected.txt:

Source/WebCore:

Create a dedicated wrapper for z-index such that we can handle "auto" values
instead of just blending an int.

  • animation/CSSPropertyAnimation.cpp:

(WebCore::ZIndexPropertyWrapper::ZIndexPropertyWrapper):
(WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap):

LayoutTests:

Fix the test animations/stacking-context-unchanged-while-running.html which made the
wrong assumption about blending of z-index with auto values. We now make this test
expect an "auto" value and update the helper to know how to deal with "auto" values
for "z-index".

  • animations/resources/animation-test-helpers.js:

(getPropertyValue):
(comparePropertyValue):

  • animations/stacking-context-unchanged-while-running.html:
11:50 AM Changeset in webkit [274054] by commit-queue@webkit.org
  • 5 edits in trunk

Use counters for pending events
https://bugs.webkit.org/show_bug.cgi?id=218556

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

Source/WebCore:

Use counters for pending events instead of flags since
it is allowed to schedule multiple events:
https://html.spec.whatwg.org/multipage/images.html#update-the-image-data

  • loader/ImageLoader.cpp:

(WebCore::ImageLoader::ImageLoader):
(WebCore::ImageLoader::~ImageLoader):
(WebCore::ImageLoader::clearImageWithoutConsideringPendingLoadEvent):
(WebCore::ImageLoader::updateFromElement):
(WebCore::ImageLoader::notifyFinished):
(WebCore::ImageLoader::updatedHasPendingEvent):
(WebCore::ImageLoader::dispatchPendingBeforeLoadEvent):
(WebCore::ImageLoader::dispatchPendingLoadEvent):
(WebCore::ImageLoader::dispatchPendingErrorEvent):

  • loader/ImageLoader.h:

(WebCore::ImageLoader::hasPendingBeforeLoadEvent const):
(WebCore::ImageLoader::hasPendingActivity const):

LayoutTests:

The onerror can be called multiple times, after the first call
container will have no parent, so protect against that in
subsequent calls.

  • fast/dom/modify-node-and-while-in-the-callback-too-crash.html:
10:16 AM Changeset in webkit [274053] by weinig@apple.com
  • 6 edits in trunk/Source

Move new color(), lab() and lch() color functions behind runtime settings.
https://bugs.webkit.org/show_bug.cgi?id=222869

Reviewed by Simon Fraser.

Source/WebCore:

Add checking for new experimental feature flag for the new CSS Color 4 color types.

As the flag is on by default, there is no change in behavior. This is just to allow
ports to disable the feature if they need to.

  • css/parser/CSSParserContext.cpp:

(WebCore::operator==):

  • css/parser/CSSParserContext.h:

(WebCore::CSSParserContextHash::hash):

  • css/parser/CSSPropertyParserHelpers.cpp:

(WebCore::CSSPropertyParserHelpers::parseHWBParameters):
(WebCore::CSSPropertyParserHelpers::parseLabParameters):
(WebCore::CSSPropertyParserHelpers::parseLCHParameters):
(WebCore::CSSPropertyParserHelpers::parseColorFunctionForRGBTypes):
(WebCore::CSSPropertyParserHelpers::parseColorFunctionForLabParameters):
(WebCore::CSSPropertyParserHelpers::parseColorFunctionForXYZParameters):
(WebCore::CSSPropertyParserHelpers::parseColorFunctionParameters):
(WebCore::CSSPropertyParserHelpers::parseColorFunction):

Source/WTF:

  • Scripts/Preferences/WebPreferencesExperimental.yaml:

Add experimental feature flag for the new CSS Color 4 color types.

9:41 AM Changeset in webkit [274052] by weinig@apple.com
  • 4 edits in trunk/Tools

Transition Cocoa DumpRenderTree to allow any preference keys, not just hard coded supported ones
https://bugs.webkit.org/show_bug.cgi?id=222868

Reviewed by Simon Fraser.

This allows any preference key in a WebPreference*.yaml to be used for Cocoa WebKitLegacy
tests in the comment header command, just like WebKitTestRunner.

  • DumpRenderTree/TestOptions.cpp:

(WTR::TestOptions::defaults):
Update defaults to only the default values that don't match
defaults in WebPreference*.yaml files and experimental features
that are not supported in but still declare support in the file.

  • DumpRenderTree/TestRunner.h:

Remove unimplemented function declaration.

  • DumpRenderTree/mac/DumpRenderTree.mm:

(setWebPreferencesForTestOptions):
(setDefaultsToConsistentValuesForTesting):
(prepareConsistentTestingEnvironment):
(resetWebPreferencesToConsistentValues): Deleted.
(webPreferenceFeatureValue): Deleted.
Replace most explicit reseting with the combination of _resetForTesting, automatic
enabling experimental features, and use of _set<type>PreferenceForTestingWithValue
from TestOptions.

Mar 6, 2021:

9:35 PM Changeset in webkit [274051] by jiewen_tan@apple.com
  • 2 edits in trunk/Source/WebKit

[WebAuthn] Expand WebAuthn Process's sandbox profile on iOS
https://bugs.webkit.org/show_bug.cgi?id=222858
<rdar://problem/74772012>

Reviewed by Brent Fulgham.

Allows WebAuthn process to use AAA again.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebAuthn.sb:
9:11 PM Changeset in webkit [274050] by Alan Bujtas
  • 5 edits
    2 adds in trunk

Only positive integers are allowed as values of orphans and widows
https://bugs.webkit.org/show_bug.cgi?id=222875
<rdar://problem/72996948>

Reviewed by Ryosuke Niwa.

Source/WebCore:

See https://drafts.csswg.org/css-break-3/#widows-orphans

Test: fast/multicol/negative-widow-value-crash.html

  • animation/CSSPropertyAnimation.cpp:

(WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap):

  • rendering/style/RenderStyle.h:

(WebCore::RenderStyle::widows const):
(WebCore::RenderStyle::orphans const):
(WebCore::RenderStyle::setWidows):
(WebCore::RenderStyle::setOrphans):
(WebCore::RenderStyle::initialWidows):
(WebCore::RenderStyle::initialOrphans):

  • rendering/style/StyleRareInheritedData.h:

LayoutTests:

  • fast/multicol/negative-widow-value-crash-expected.txt: Added.
  • fast/multicol/negative-widow-value-crash.html: Added.
9:04 PM Changeset in webkit [274049] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebCore

REGRESSION(r274033) [GLIB] Bots exiting early after lots of failures due to render tree differences
https://bugs.webkit.org/show_bug.cgi?id=222878

Reviewed by Wenson Hsieh.

  • rendering/RenderLayerCompositor.cpp:

(WebCore::RenderLayerCompositor::requiresCompositingForModel const):
Invert the logic (to the sane direction, I have no idea why I typed it this way),
so that we don't require compositing for everything if ENABLE(MODEL_ELEMENT) is false.

6:37 PM Changeset in webkit [274048] by Alan Bujtas
  • 8 edits in trunk/Source/WebCore

[LFC][IFC] Provide a better estimate on the number of inline level boxes per line for LineBox.
https://bugs.webkit.org/show_bug.cgi?id=222821

Reviewed by Antti Koivisto.

Let's counting the number of inline level box on the line. It is a much better estimate than the number of runs even
if it misses some inline boxes when they span over multiple lines (the fail rate is ~1% on nytimes.com).

  • layout/inlineformatting/InlineFormattingContextGeometry.cpp:

(WebCore::Layout::LineBoxBuilder::build):

  • layout/inlineformatting/InlineLine.cpp:

(WebCore::Layout::Line::initialize):
(WebCore::Layout::Line::appendInlineBoxStart):
(WebCore::Layout::Line::appendNonReplacedInlineLevelBox):
(WebCore::Layout::Line::appendLineBreak):

  • layout/inlineformatting/InlineLine.h:

(WebCore::Layout::Line::inlineLevelBoxCount const):

  • layout/inlineformatting/InlineLineBox.cpp:

(WebCore::Layout::LineBox::LineBox):

  • layout/inlineformatting/InlineLineBox.h:
  • layout/inlineformatting/InlineLineBuilder.cpp:

(WebCore::Layout::LineBuilder::layoutInlineContent):

  • layout/inlineformatting/InlineLineBuilder.h:
6:28 PM Changeset in webkit [274047] by rniwa@webkit.org
  • 2 edits in trunk/Websites/perf.webkit.org

[perf dashboard] Modernize TimeSeries and TimeSeriesView
https://bugs.webkit.org/show_bug.cgi?id=222872

Reviewed by Dewei Zhu.

Declare instance fields in class declarations, use const/let instead of var, and use generators
for forward and backward iterations instead of manually implementing the iterator protocol.

This patch also splits FilteredTimeSeriesView out of TimeSeriesView.

  • public/v3/models/time-series.js:

(TimeSeries): Moved the declaration of _data instance field to the class declaration.
(TimeSeries.prototype.constructor): Deleted.
(TimeSeries.prototype.extendToFuture):
(TimeSeries.prototype.valuesBetweenRange):
(TimeSeries.prototype.findById):
(TimeSeries.prototype.findPointAfterTime):
(TimeSeriesView): Declared the instance fields in the class declaration.
(TimeSeriesView.prototype.constructor): Removed filteredData from the argument since it's split
out to FilteredTimeSeriesView now.
(TimeSeriesView.prototype.get _data): Added. An abstraction needed for FilteredTimeSeriesView.
(TimeSeriesView.prototype._findIndexForPoint): Ditto. Moved out of the constructor.
(TimeSeriesView.prototype.filter): Return a FilteredTimeSeriesView.
(TimeSeriesView.prototype.viewTimeRange): Use _subRange to return either TimeSeriesView or
FilteredTimeSeriesView which ever is needed.
(TimeSeriesView.prototype._subRange): An abstraction needed for FilteredTimeSeriesView.
(TimeSeriesView.prototype.Symbol.iterator): Made this a generator instead of implementing
the iterator protocol directly.
(TimeSeriesView.prototype._reverse): Ditto.
(FilteredTimeSeriesView): Added.
(FilteredTimeSeriesView.prototype.constructor): Added. Assert that afterEndingIndex is less than
the length of the filtered data. This assertion was missing in TimeSeries prior to this patch
when filteredData is specified.
(FilteredTimeSeriesView.prototype.get _data): Added.
(FilteredTimeSeriesView.prototype._subRange): Added. Instantiate FilteredTimeSeriesView with
the same filtered data.
(FilteredTimeSeriesView.prototype._findIndexForPoint): Moved from TimeSeriesView's constructor.
(FilteredTimeSeriesView.prototype._buildPointIndexMap): Moved from TimeSeriesView.

6:25 PM Changeset in webkit [274046] by rniwa@webkit.org
  • 3 edits in trunk/Websites/perf.webkit.org

[perf dashboard] Some browser tests are flaky or failing
https://bugs.webkit.org/show_bug.cgi?id=222874

Reviewed by Dewei Zhu.

There were two tests in TimeSeriesChart tests that were intermittently failing due to the test
not reliably waiting for the iframe's resize to take effect and not waiting for the time series'
fetching logic to run 'til completion before waiting for canvas charts to be re-drawn. Fixing
these by adding code to wait for these conditons.

All browser tests for markup-component.js was broken in r274036 as require function is not
available in browsers. Added a workaround in BrowsingContext to add a make assert.ok function
using expect(~).to.be.true().

  • browser-tests/index.html:

(BrowsingContext.prototype.constructor):
(waitForElementResize): Added.

  • browser-tests/time-series-chart-tests.js: Fixed bugs in the tests.
5:02 PM Changeset in webkit [274045] by commit-queue@webkit.org
  • 2 edits in trunk/Source/JavaScriptCore

Unreviewed, reverting r274041.
https://bugs.webkit.org/show_bug.cgi?id=222873

Broke the build instead of fixing it

Reverted changeset:

"Fix the build"
https://trac.webkit.org/changeset/274041

4:27 PM Changeset in webkit [274044] by rniwa@webkit.org
  • 2 edits in trunk/Websites/perf.webkit.org

[perf dashboard] Modernize DataModelObject and LabeledObject
https://bugs.webkit.org/show_bug.cgi?id=222871

Reviewed by Dewei Zhu.

Use const/let instead of var, async/await instead of Promise.then, and Map instead
of a regular object for a dictionary.

Also define instance fields in the class declaration instead of simply adding them
in the class constructors, and set the default parameter values instead of relying
on the unspecified argument being undefined.

  • public/v3/models/data-model.js:

(DataModelObject.ensureSingleton):
(DataModelObject.namedStaticMap):
(DataModelObject.ensureNamedStaticMap):
(DataModelObject.findById):
(DataModelObject.listForStaticMap):
(DataModelObject.async cachedFetch):
(DataModelObject):
(LabeledObject.sortByName):
(DataModelObject.cachedFetch): Deleted.

4:25 PM Changeset in webkit [274043] by rniwa@webkit.org
  • 4 edits in trunk/Websites/perf.webkit.org

[perf dashboard] Modernize MeasurementSet
https://bugs.webkit.org/show_bug.cgi?id=222857

Reviewed by Dewei Zhu.

Modernized MeasurementSet by using new instance field syntax, let/const instead of var,
async/await instead of then/catch, and Map instead of an object as a dictionary.

  • public/v3/models/measurement-set.js:

(Array.prototype.includes): Deleted this polyfill which was needed for an old node.js.
(MeasurementSet): Moved the initialization of instance variables here. Also use Map
for this._allFetches instead of using a regular object as a dictionary.
(MeasurementSet.findSet): Use Map for MeasurementSet mapping.
(MeasurementSet.prototype.findClusters): Use const and let instead of var.
(MeasurementSet.prototype.async fetchBetween): Use async & await instead of Promise.then.
(MeasurementSet.prototype._ensureClusterPromise): Use let/const instead of var.
(MeasurementSet.prototype._urlForCache): Renamed from _constructUrl and removed the argument
for useCache since this function is now only used for feteching JSON caches.
(MeasurementSet.async _fetchPrimaryCluster): Use async/await and let/const. Consolidated
the API call to re-generate new JSON files and inlined API path here.
(MeasurementSet.async _fetchSecondaryCluster): Use async/await.
(MeasurementSet._addFetchedCluster): Use let/const instead of var.
(MeasurementSet.async fetchSegmentation): Use async/await and let/const.
(MeasurementSet.async _cachedClusterSegmentation): Ditto.
(MeasurementSet.prototype.async _invokeSegmentationAlgorithm): Ditto.

  • unit-tests/measurement-set-tests.js:

(beforeEach): Updated the logic to reset measurement sets since the static variable was
renamed in MeasurementSet.findSet above.

  • unit-tests/resources/mock-v3-models.js:

(MockModels.inject): Ditto.

11:09 AM Changeset in webkit [274042] by ddkilzer@apple.com
  • 3 edits in trunk/Tools

webkit-patch won't parse rdar://nnnnnnnn URLs in ChangeLogs
<https://webkit.org/b/222863>

Reviewed by Simon Fraser.

  • Scripts/webkitpy/common/checkout/changelog.py:

(ChangeLogEntry):

  • Update regex.
  • Scripts/webkitpy/common/checkout/changelog_unittest.py:

(test_fuzzy_radar_matchnone):

  • Move test cases that used to fail into another test.

(test_fuzzy_radar_match_format_without_context): Add.

  • Rename from test_fuzzy_radar_match_format_1().

(test_fuzzy_radar_match_format_1):

  • Rename to test_fuzzy_radar_match_format_without_context().

(test_fuzzy_radar_match_format_2):

  • Combine with test_fuzzy_radar_match_format_without_context().

(test_fuzzy_radar_match_format_with_context): Add.

  • Rename from test_fuzzy_radar_match_format_3().

(test_fuzzy_radar_match_format_3):

  • Rename to test_fuzzy_radar_match_format_with_context().
11:03 AM Changeset in webkit [274041] by mmaxfield@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Fix the build

Unreviewed.

  • dfg/DFGOSRExit.cpp:

(JSC::DFG::JSC_DEFINE_JIT_OPERATION):

10:45 AM Changeset in webkit [274040] by weinig@apple.com
  • 5 edits in trunk

Simplify DumpRenderTree WebPreferences reset
https://bugs.webkit.org/show_bug.cgi?id=218024
<rdar://problem/70764568>

Reviewed by Simon Fraser.

Source/WebKitLegacy/mac:

  • WebView/WebPreferences.mm:

(WebPreferencesPrivate::WebPreferencesPrivate):
(-[WebPreferences encodeWithCoder:]):
(-[WebPreferences _valueForKey:]):
(-[WebPreferences _setStringValue:forKey:]):
(-[WebPreferences _setStringArrayValueForKey:forKey:]):
(-[WebPreferences _setIntegerValue:forKey:]):
(-[WebPreferences _setUnsignedIntValue:forKey:]):
(-[WebPreferences _setFloatValue:forKey:]):
(-[WebPreferences _setBoolValue:forKey:]):
(-[WebPreferences _setLongLongValue:forKey:]):
(-[WebPreferences _setUnsignedLongLongValue:forKey:]):
(-[WebPreferences _startBatchingUpdates]):
(-[WebPreferences _stopBatchingUpdates]):
(-[WebPreferences _batchUpdatePreferencesInBlock:]):
(-[WebPreferences _resetForTesting]):
(-[WebPreferences _postPreferencesChangedNotification]):
(-[WebPreferences _postPreferencesChangedAPINotification]):
(-[WebPreferences _invalidateCachedPreferences]):
(WebPreferencesPrivate::~WebPreferencesPrivate): Deleted.

  • WebView/WebPreferencesPrivate.h:

Add new helpers for testing to reset and batch updates.

Tools:

Use new _batchUpdatePreferencesInBlock and _resetForTesting to simplify and
improve the performance of resetting preferences.

_batchUpdatePreferencesInBlock makes it so we only trigger the recalculation
of WebCore::Settings once per test, rather than linearly with the number of
settings that we reset.

_resetForTesting will allow us to remove explicit resetting of preferences
that use the existing default value (though this change does not utilize
that yet, to limit the number of changes in this commit).

  • DumpRenderTree/mac/DumpRenderTree.mm:

(resetWebPreferencesToConsistentValues):
(setWebPreferencesForTestOptions):
(resetWebViewToConsistentState):

10:21 AM Changeset in webkit [274039] by Alan Bujtas
  • 3 edits
    2 adds in trunk

[RenderTreeBuilder] Invalidate beforeChild when parent changes to RubyBase
https://bugs.webkit.org/show_bug.cgi?id=222862
<rdar://problem/73659871>

Reviewed by Antti Koivisto.

Source/WebCore:

The beforeChild value becomes invalid when the ruby subtree requires a ruby base and the child is going to
be attached under this newly constrcuted ruby base (the child and the beforeChild will not end up in the same subtree).

Test: fast/ruby/crash-when-attaching-to-base.html

  • rendering/updating/RenderTreeBuilderRuby.cpp:

(WebCore::RenderTreeBuilder::Ruby::attach):

LayoutTests:

  • fast/ruby/crash-when-attaching-to-base-expected.txt: Added.
  • fast/ruby/crash-when-attaching-to-base.html: Added.
8:28 AM Changeset in webkit [274038] by graouts@webkit.org
  • 38 edits in trunk

Improve blending of Length and other Length-related types
https://bugs.webkit.org/show_bug.cgi?id=222816

Reviewed by Antti Koivisto.

LayoutTests/imported/w3c:

Add an extra 153 PASS results. We now pass all the column-gap, row-gap, border-image-slice,
max-height and max-width interpolation tests.

  • web-platform-tests/css/css-align/animation/column-gap-composition-expected.txt:
  • web-platform-tests/css/css-align/animation/column-gap-interpolation-expected.txt:
  • web-platform-tests/css/css-align/animation/row-gap-composition-expected.txt:
  • web-platform-tests/css/css-align/animation/row-gap-interpolation-expected.txt:
  • web-platform-tests/css/css-backgrounds/animations/background-position-interpolation-expected.txt:
  • web-platform-tests/css/css-backgrounds/animations/background-position-origin-interpolation-expected.txt:
  • web-platform-tests/css/css-backgrounds/animations/background-size-interpolation-expected.txt:
  • web-platform-tests/css/css-backgrounds/animations/border-image-slice-interpolation-expected.txt:
  • web-platform-tests/css/css-backgrounds/animations/border-radius-interpolation-expected.txt:
  • web-platform-tests/css/css-box/animation/margin-bottom-composition-expected.txt:
  • web-platform-tests/css/css-box/animation/margin-left-composition-expected.txt:
  • web-platform-tests/css/css-box/animation/margin-right-composition-expected.txt:
  • web-platform-tests/css/css-box/animation/margin-top-composition-expected.txt:
  • web-platform-tests/css/css-box/animation/padding-bottom-composition-expected.txt:
  • web-platform-tests/css/css-box/animation/padding-left-composition-expected.txt:
  • web-platform-tests/css/css-box/animation/padding-right-composition-expected.txt:
  • web-platform-tests/css/css-box/animation/padding-top-composition-expected.txt:
  • web-platform-tests/css/css-flexbox/animation/flex-basis-composition-expected.txt:
  • web-platform-tests/css/css-position/animations/bottom-composition-expected.txt:
  • web-platform-tests/css/css-position/animations/left-composition-expected.txt:
  • web-platform-tests/css/css-position/animations/right-composition-expected.txt:
  • web-platform-tests/css/css-position/animations/top-composition-expected.txt:
  • web-platform-tests/css/css-shapes/animation/shape-margin-composition-expected.txt:
  • web-platform-tests/css/css-sizing/animation/max-height-composition-expected.txt:
  • web-platform-tests/css/css-sizing/animation/max-height-interpolation-expected.txt:
  • web-platform-tests/css/css-sizing/animation/max-width-composition-expected.txt:
  • web-platform-tests/css/css-sizing/animation/max-width-interpolation-expected.txt:
  • web-platform-tests/css/css-values/animations/calc-interpolation-expected.txt:
  • web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-001-expected.txt:
  • web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-002-expected.txt:

Source/WebCore:

We improve the blending behavior of a number of CSS properties that are represented as Length
or a type built upon Length, such as LengthSize, LengthBox or GapLength.

We remove the NonNegativeLengthPropertyWrapper class and instead allow LengthPropertyWrapper to
be passed some flags: one that indicates whether the CSS property supports <length-percentage>
values and one that indicates whether negative values are supported. We use those flags to
several CSS properties that are using LengthPropertyWrapper to ensure they have the correct
blending behavior.

We also take the code from the canInterpolateBetweenLengths lambda in LengthBoxPropertyWrapper's
canInterpolate override and refactor it into the canInterpolateLengths static method so that we
may use it across LengthPropertyWrapper and LengthVariantPropertyWrapper.

As for LengthVariantPropertyWrapper, we also update its canInterpolate() override to call into
type-specific static canInterpolateLengthVariants() methods which are implemented for LengthSize
and GapLength.

Finally, we update the blend() method for Length to return the from/to values as-is when progress
is 0 or 1, respectively.

  • animation/CSSPropertyAnimation.cpp:

(WebCore::blendFunc):
(WebCore::canInterpolateLengths):
(WebCore::LengthPropertyWrapper::LengthPropertyWrapper):
(WebCore::canInterpolateLengthVariants):
(WebCore::LengthVariantPropertyWrapper::LengthVariantPropertyWrapper):
(WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap):
(WebCore::NonNegativeLengthPropertyWrapper::NonNegativeLengthPropertyWrapper): Deleted.

  • platform/Length.cpp:

(WebCore::blend):

LayoutTests:

Adjust expectations of a couple of WPT tests with platform-specific results.

We also add console logging for a non-WPT test, transitions/transition-to-from-undefined.html, which tests
transitions between properties that cannot be interpolated and thus don't yield a transition.

  • platform/ios-wk2/imported/w3c/web-platform-tests/css/css-box/animation/padding-bottom-composition-expected.txt:
  • platform/ios-wk2/imported/w3c/web-platform-tests/css/css-box/animation/padding-top-composition-expected.txt:
  • transitions/transition-to-from-undefined-expected.txt:
6:42 AM Changeset in webkit [274037] by Alexey Shvayka
  • 18 edits
    3 adds
    4 deletes in trunk

BooleanConstructor should be inlined in DFG / FTL
https://bugs.webkit.org/show_bug.cgi?id=220322

Reviewed by Yusuke Suzuki.

JSTests:

Reorganize tests so the every UseKind / needsTypeCheck / invert combination is covered.

  • microbenchmarks/array-filter-boolean-constructor.js: Added.
  • stress/dfg-branch.js: Added.
  • stress/dfg-to-boolean.js: Added.
  • stress/logical-not-masquerades-as-undefined.js: Removed.
  • stress/logical-not-masquerades.js: Removed.
  • stress/logical-not.js: Removed.
  • stress/value-to-boolean.js: Removed.

Source/JavaScriptCore:

array.filter(Boolean) is a rather popular idiom for removing falsy items from an array.
Also, Boolean(X) is sometimes used for explicit type casting.

This patch introduces ToBoolean DFG node and reorganizes compileLogicalNot(node) into
compileToBoolean(node, bool invert), leveraging already existing emitConvertValueToBoolean().

This approach is better than emitting LogicalNot<KnownBooleanUse>(LogicalNot(X)) as it results
in cleaner DFG node tree and is ~7% faster w/o FTL. Also, it enables adding a op_to_boolean
bytecode that will be generated for very common !!X patterns, reducing instruction count.

Just as LogicalNot, BooleanConstructor should handle masquerader objects, because Annex B
patches ToBoolean abstract op [1], preventing us from emitting simpler code.

This change advances provided microbenchmark by 110%, and is neutral for other ToBoolean cases.

[1]: https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot-to-boolean

  • dfg/DFGAbstractInterpreterInlines.h:

(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):

  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::handleConstantInternalFunction):

  • dfg/DFGClobberize.h:

(JSC::DFG::clobberize):

  • dfg/DFGDoesGC.cpp:

(JSC::DFG::doesGC):

  • dfg/DFGFixupPhase.cpp:

(JSC::DFG::FixupPhase::fixupNode):

  • dfg/DFGMayExit.cpp:
  • dfg/DFGNodeType.h:
  • dfg/DFGPredictionPropagationPhase.cpp:
  • dfg/DFGSafeToExecute.h:

(JSC::DFG::safeToExecute):

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileToBooleanString):
(JSC::DFG::SpeculativeJIT::compileToBooleanStringOrOther):
(JSC::DFG::SpeculativeJIT::compileStringZeroLength): Deleted.
(JSC::DFG::SpeculativeJIT::compileLogicalNotStringOrOther): Deleted.

  • dfg/DFGSpeculativeJIT.h:
  • dfg/DFGSpeculativeJIT32_64.cpp:

(JSC::DFG::SpeculativeJIT::compileToBooleanObjectOrOther):
(JSC::DFG::SpeculativeJIT::compileToBoolean):
(JSC::DFG::SpeculativeJIT::compile):
(JSC::DFG::SpeculativeJIT::compileObjectOrOtherLogicalNot): Deleted.
(JSC::DFG::SpeculativeJIT::compileLogicalNot): Deleted.

  • dfg/DFGSpeculativeJIT64.cpp:

(JSC::DFG::SpeculativeJIT::compileToBooleanObjectOrOther):
(JSC::DFG::SpeculativeJIT::compileToBoolean):
(JSC::DFG::SpeculativeJIT::compile):
(JSC::DFG::SpeculativeJIT::compileObjectOrOtherLogicalNot): Deleted.
(JSC::DFG::SpeculativeJIT::compileLogicalNot): Deleted.

  • dfg/DFGWatchpointCollectionPhase.cpp:

(JSC::DFG::WatchpointCollectionPhase::handle):

  • ftl/FTLCapabilities.cpp:

(JSC::FTL::canCompile):

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileNode):
(JSC::FTL::DFG::LowerDFGToB3::compileToBoolean):

6:31 AM Changeset in webkit [274036] by zhifei_fang@apple.com
  • 32 edits
    1 add in trunk/Websites/perf.webkit.org

Make server test run with new node version
https://bugs.webkit.org/show_bug.cgi?id=222463

Change assert.equal to assert.strictEqual since node deprecated this API
Add a new function console.assert to make sure it will throw an error

Reviewed by Ryosuke Niwa.

  • public/v3/models/repository.js:

(Repository.sortByNamePreferringOnesWithURL):
(Repository):

  • server-tests/admin-platforms-tests.js:
  • server-tests/admin-reprocess-report-tests.js:
  • server-tests/api-build-requests-tests.js:

(return.TestServer.remoteAPI.getJSON.string_appeared_here.then):

  • server-tests/api-commits-tests.js:

(assertCommitIsSameAsOneSubmitted):
(return.TestServer.remoteAPI.getJSON.string_appeared_here.then):

  • server-tests/api-manifest-tests.js:

(return.TestServer.remoteAPI.getJSON.string_appeared_here.then):

  • server-tests/api-measurement-set-tests.js:
  • server-tests/api-report-commits-tests.js:

(emptyReport.then):
(async initialReportCommits):
(async setUpTestsWithExpectedStatus):
(async testWithExpectedFailure):

  • server-tests/api-report-tests.js:

(emptyReport.then):

  • server-tests/api-test-groups.js:
  • server-tests/api-update-triggerable-tests.js:

(update.then):
(then.response.db.selectAll.string_appeared_here.then):
(then.db.selectAll.string_appeared_here.then):
(then.Manifest.fetch.then):

  • server-tests/api-upload-root-tests.js:
  • server-tests/api-uploaded-file-tests.js:

(return.TestServer.remoteAPI.getJSON.string_appeared_here.then):

  • server-tests/privileged-api-add-build-requests-tests.js:

(async createAnalysisTask):
(const.commitSet.of.updatedGroups.0.requestedCommitSets):

  • server-tests/privileged-api-create-analysis-task-tests.js:
  • server-tests/privileged-api-create-test-group-tests.js:

(createAnalysisTask):
(return.createAnalysisTask.string_appeared_here.then):
(return.addTriggerableAndCreateTask.string_appeared_here.then):
(string_appeared_here.then):

  • server-tests/privileged-api-upate-run-status.js:
  • server-tests/privileged-api-update-test-group-tests.js:

(async createAnalysisTask):

  • server-tests/privileged-api-upload-file-tests.js:

(TestServer.testConfig.uploadFileLimitInMB.1.then):

  • server-tests/resources/common-operations.js:

(async assertThrows):

  • server-tests/resources/temporary-file.js:

(TemporaryFile.makeTemporaryFileOfSizeInMB):

  • server-tests/tools-buildbot-triggerable-tests.js:

(assertRequestAndResolve):
(then.refetchManifest.then):
(getBuilderNameToIDMapPromise.then):

  • server-tests/tools-os-build-fetcher-tests.js:
  • server-tests/tools-sync-buildbot-integration-tests.js:

(assertAndResolveRequest):

  • tools/js/assert-override.js: Added.

(makeConsoleAssertThrow):

  • tools/js/buildbot-syncer.js:

(BuildbotBuildEntry.prototype.initialize):
(BuildbotBuildEntry.prototype.buildRequestStatusIfUpdateIsNeeded):
(BuildbotBuildEntry):
(BuildbotSyncer.prototype.scheduleRequest):
(BuildbotSyncer._loadConfig):
(BuildbotSyncer._parseRepositoryGroup):
(BuildbotSyncer._validateAndMergeConfig):
(BuildbotSyncer):

  • tools/js/buildbot-triggerable.js:

(BuildbotTriggerable.prototype._validateRequests):

  • tools/js/markup-component.js:

(const.MarkupDocument.new.MarkupDocument.prototype._idForClone):
(const.MarkupDocument.new.MarkupDocument.prototype.markup):

  • tools/js/os-build-fetcher.js:

(prototype._addOwnedCommitsForBuild):

  • tools/js/remote.js:

(NodeRemoteAPI.prototype.configure):

  • tools/js/v3-models.js:
  • unit-tests/commit-set-tests.js:
4:59 AM Changeset in webkit [274035] by Alan Bujtas
  • 3 edits
    2 adds in trunk

[RenderTreeBuilder] Readjust the first child when it is the multicolumn container
https://bugs.webkit.org/show_bug.cgi?id=222851
<rdar://problem/73392642>

Reviewed by Simon Fraser.

Source/WebCore:

When a newly constructed renderer is supposed to be first child of its soon-to-be parent but
the parent establishes a multicolumn context (so its first child is a RenderMultiColumnFlow) this
renderer should be attached under the column container instead.

Test: fast/multicol/readjust-first-child-on-attach.html

  • rendering/updating/RenderTreeBuilderBlockFlow.cpp:

(WebCore::RenderTreeBuilder::BlockFlow::attach):

LayoutTests:

  • fast/multicol/readjust-first-child-on-attach-expected.txt: Added.
  • fast/multicol/readjust-first-child-on-attach.html: Added.
4:53 AM Changeset in webkit [274034] by dino@apple.com
  • 6 edits in trunk/Source

dlopen_preflight is failing (temporarily) but obsolete
https://bugs.webkit.org/show_bug.cgi?id=222829

Reviewed by Jer Noble.

I hit a bug where dlopen_preflight was failing in a particular build.
That is now fixed, but as I was discussing it with the dyld team
they said we should stop using it. The rationale was that it only
made sense during the PowerPC to Intel transition, and it is as
expensive as dlopen now.

Source/WebCore:

  • platform/graphics/avfoundation/objc/AVAssetMIMETypeCache.mm:

(WebCore::AVAssetMIMETypeCache::isAvailable const): Remove the preflight opening
of the AVFoundation framework.

  • platform/graphics/avfoundation/objc/AVStreamDataParserMIMETypeCache.mm:

(WebCore::AVStreamDataParserMIMETypeCache::isAvailable const):

Source/WTF:

  • wtf/PlatformUse.h: No need for preflight linking code.
  • wtf/cocoa/SoftLinking.h:
3:13 AM Changeset in webkit [274033] by timothy_horton@apple.com
  • 43 edits
    1 copy
    5 adds in trunk

<model> should create a model-owning compositing layer
https://bugs.webkit.org/show_bug.cgi?id=222798

Reviewed by Simon Fraser.

Source/JavaScriptCore:

  • inspector/protocol/LayerTree.json:

Add a compositing reason for <model>.

Source/WebCore:

Test: model-element/model-element-graphics-layers.html

  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • platform/graphics/GraphicsLayer.h:

(WebCore::GraphicsLayer::setContentsToModel):

  • platform/graphics/Model.cpp: Added.

(WebCore::Model::create):
(WebCore::Model::Model):
(WebCore::operator<<):

  • platform/graphics/Model.h: Added.

(WebCore::Model::encode const):
(WebCore::Model::decode):
Add Model, a wrapper for the model.
For now, it just wraps a SharedBuffer.
In the future, it may contain other things, like file paths, identifiers, etc.

  • Modules/model-element/HTMLModelElement.cpp:

(WebCore::HTMLModelElement::model const):

  • Modules/model-element/HTMLModelElement.h:

HTMLModelElement can now vend a Model instead of just a SharedBuffer.

  • platform/graphics/ca/GraphicsLayerCA.cpp:

(WebCore::GraphicsLayerCA::createPlatformCALayer):
(WebCore::GraphicsLayerCA::setContentsToModel):

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

(WebCore::operator<<):

  • platform/graphics/ca/PlatformCALayer.h:
  • platform/graphics/ca/cocoa/PlatformCALayerCocoa.mm:

(WebCore::PlatformCALayerCocoa::PlatformCALayerCocoa):
Allow a GraphicsLayer to be given a Model as contents (as we do for e.g. Image and other things).
For simplicity's sake, and because anything more is unnecessary, just re-create
the ModelLayer when the model changes.

  • rendering/RenderBoxModelObject.h:
  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::contentChanged):

  • rendering/RenderLayerBacking.cpp:

(WebCore::RenderLayerBacking::updateConfiguration):
(WebCore::RenderLayerBacking::contentChanged):

  • rendering/RenderLayerCompositor.cpp:

(WebCore::RenderLayerCompositor::requiresCompositingLayer const):
(WebCore::RenderLayerCompositor::requiresOwnBackingStore const):
(WebCore::RenderLayerCompositor::reasonsForCompositing const):
(WebCore::RenderLayerCompositor::logReasonsForCompositing):
(WebCore::RenderLayerCompositor::requiresCompositingForModel const):

  • rendering/RenderLayerCompositor.h:
  • rendering/RenderModel.cpp:

(WebCore::RenderModel::requiresLayer const):
(WebCore::RenderModel::updateFromElement):
(WebCore::RenderModel::update):

  • rendering/RenderModel.h:

Require compositing for <model>, and add a custom layer type.

  • inspector/agents/InspectorLayerTreeAgent.cpp:

(WebCore::InspectorLayerTreeAgent::reasonsForCompositingLayer):
Add a compositing reason for <model>.

Source/WebInspectorUI:

  • Localizations/en.lproj/localizedStrings.js:
  • UserInterface/Views/LayerTreeDetailsSidebarPanel.js:

(WI.LayerTreeDetailsSidebarPanel.prototype._populateListOfCompositingReasons):
(WI.LayerTreeDetailsSidebarPanel):

  • UserInterface/Views/Layers3DContentView.js:

(WI.Layers3DContentView.prototype._updateReasonsList):
(WI.Layers3DContentView):
Add a compositing reason for <model>.

Source/WebKit:

  • Shared/RemoteLayerTree/RemoteLayerBackingStore.mm:

(WebKit::RemoteLayerBackingStore::display):

  • Shared/RemoteLayerTree/RemoteLayerTreeTransaction.h:
  • Shared/RemoteLayerTree/RemoteLayerTreeTransaction.mm:

(WebKit::RemoteLayerTreeTransaction::LayerCreationProperties::encode const):
(WebKit::RemoteLayerTreeTransaction::LayerCreationProperties::decode):
(WebKit::RemoteLayerTreeTransaction::description const):

  • SourcesCocoa.txt:
  • UIProcess/RemoteLayerTree/RemoteLayerTreeHost.mm:

(WebKit::RemoteLayerTreeHost::makeNode):

  • UIProcess/RemoteLayerTree/ios/RemoteLayerTreeHostIOS.mm:

(WebKit::RemoteLayerTreeHost::makeNode):

  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/WebPage/RemoteLayerTree/GraphicsLayerCARemote.cpp:

(WebKit::GraphicsLayerCARemote::createPlatformCALayer):

  • WebProcess/WebPage/RemoteLayerTree/GraphicsLayerCARemote.h:
  • WebProcess/WebPage/RemoteLayerTree/PlatformCALayerRemote.cpp:

(WebKit::PlatformCALayerRemote::create):
(WebKit::PlatformCALayerRemote::populateCreationProperties):

  • WebProcess/WebPage/RemoteLayerTree/PlatformCALayerRemote.h:
  • WebProcess/WebPage/RemoteLayerTree/PlatformCALayerRemoteCustom.h:
  • WebProcess/WebPage/RemoteLayerTree/PlatformCALayerRemoteCustom.mm:

(WebKit::PlatformCALayerRemoteCustom::populateCreationProperties):

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

(WebKit::PlatformCALayerRemoteModelHosting::create):
(WebKit::PlatformCALayerRemoteModelHosting::PlatformCALayerRemoteModelHosting):
(WebKit::PlatformCALayerRemoteModelHosting::clone const):
(WebKit::PlatformCALayerRemoteModelHosting::populateCreationProperties):

  • WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeContext.mm:

(WebKit::RemoteLayerTreeContext::layerDidEnterContext):
Create a new PlatformCALayerRemote subclass that knows about Model, and
passes its model along in the layer creation properties.

For now, the special model layer type will just make a plain layer.
Future patches will replace it with model-specific rendering.

LayoutTests:

  • model-element/model-element-graphics-layers-expected.txt: Added.
  • model-element/model-element-graphics-layers.html: Added.
  • model-element/model-element-renderer-expected.txt:
  • model-element/model-element-renderer-no-source-expected.txt:

Add a test ensuring that we make a compositing layer via layer dump, and update
existing tests that also happen to reveal this via render tree dump as well.

Note: See TracTimeline for information about the timeline view.