Timeline



Nov 13, 2020:

8:04 PM Changeset in webkit [269811] by Lauro Moura
  • 3 edits in trunk/LayoutTests

[GLIB] Gardening some failures

Unreviewed test gardening.

  • platform/glib/TestExpectations:
  • platform/gtk/TestExpectations:
6:16 PM Changeset in webkit [269810] by sihui_liu@apple.com
  • 50 edits
    4 copies
    11 adds in trunk

Implement basic permission check for SpeechRecognition
https://bugs.webkit.org/show_bug.cgi?id=218476
<rdar://problem/71222638>

Reviewed by Youenn Fablet.

Source/WebCore:

Tests: fast/speechrecognition/permission-error.html

fast/speechrecognition/start-recognition-in-removed-iframe.html

  • Modules/speech/SpeechRecognition.cpp:

(WebCore::SpeechRecognition::startRecognition):

  • Modules/speech/SpeechRecognitionConnection.h:
  • Modules/speech/SpeechRecognitionRequest.cpp:

(WebCore::SpeechRecognitionRequest::create): Deleted.

  • Modules/speech/SpeechRecognitionRequest.h:

(WebCore::SpeechRecognitionRequest::clientOrigin const):

  • Modules/speech/SpeechRecognitionRequestInfo.h:

(WebCore::SpeechRecognitionRequestInfo::encode const):
(WebCore::SpeechRecognitionRequestInfo::decode):

  • Modules/speech/SpeechRecognitionUpdate.cpp:

(WebCore::SpeechRecognitionUpdate::create):
(WebCore::SpeechRecognitionUpdate::error const):
(WebCore::SpeechRecognitionUpdate::result const):

  • Modules/speech/SpeechRecognitionUpdate.h:
  • page/DummySpeechRecognitionProvider.h:

Source/WebKit:

Introduce SpeechRecognitionPermissionManager, which checks and requests speech recognition permissions before
we actually start capturing audio and perform recognition. SpeechRecognitionPermissionManager is per-page, like
SpeechRecognitionServer. The checks include:

  1. Sandbox requirement for microphone
  2. TCC check for microphone
  3. TCC check for SFSpeechRecognizer
  4. User permission on speech recognition for origin

Add a delegate function for requesting user permission. By default, user permission is not granted.

API test: WebKit2.SpeechRecognitionUserPermissionPersistence

  • Headers.cmake:
  • Shared/API/APIObject.h:
  • Shared/API/c/WKBase.h:
  • Sources.txt:
  • SourcesCocoa.txt:
  • UIProcess/API/APIUIClient.h:

(API::UIClient::decidePolicyForSpeechRecognitionPermissionRequest):

  • UIProcess/API/C/WKAPICast.h:
  • UIProcess/API/C/WKPage.cpp:

(WKPageSetPageUIClient):

  • UIProcess/API/C/WKPageUIClient.h:
  • UIProcess/API/C/WKSpeechRecognitionPermissionCallback.cpp: Added.

(WKSpeechRecognitionPermissionCallbackGetTypeID):
(WKSpeechRecognitionPermissionCallbackComplete):

  • UIProcess/API/C/WKSpeechRecognitionPermissionCallback.h: Added.
  • UIProcess/API/Cocoa/WKPreferences.mm:

(-[WKPreferences _speechRecognitionEnabled]):
(-[WKPreferences _setSpeechRecognitionEnabled:]):

  • UIProcess/API/Cocoa/WKPreferencesPrivate.h:
  • UIProcess/API/Cocoa/WKUIDelegatePrivate.h:
  • UIProcess/Cocoa/MediaPermissionUtilities.mm: Added.

(WebKit::checkSandboxRequirementForType):
(WebKit::checkUsageDescriptionStringForType):
(WebKit::checkUsageDescriptionStringForSpeechRecognition):
(WebKit::requestAVCaptureAccessForType):
(WebKit::checkAVCaptureAccessForType):
(WebKit::requestSpeechRecognitionAccess):
(WebKit::checkSpeechRecognitionServiceAccess):

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

(WebKit::UIDelegate::UIClient::decidePolicyForSpeechRecognitionPermissionRequest):

  • UIProcess/Cocoa/UserMediaPermissionRequestManagerProxy.mm:

(WebKit::UserMediaPermissionRequestManagerProxy::permittedToCaptureAudio):
(WebKit::UserMediaPermissionRequestManagerProxy::permittedToCaptureVideo):
(WebKit::UserMediaPermissionRequestManagerProxy::requestSystemValidation):
(WebKit::requestAVCaptureAccessForMediaType): Deleted.

  • UIProcess/Cocoa/WebProcessProxyCocoa.mm:
  • UIProcess/MediaPermissionUtilities.h: Copied from Added.
  • UIProcess/SpeechRecognitionPermissionManager.cpp: Added.

(WebKit::computeMicrophoneAccess):
(WebKit::computeSpeechRecognitionServiceAccess):
(WebKit::SpeechRecognitionPermissionManager::SpeechRecognitionPermissionManager):
(WebKit::SpeechRecognitionPermissionManager::~SpeechRecognitionPermissionManager):
(WebKit::SpeechRecognitionPermissionManager::request):
(WebKit::SpeechRecognitionPermissionManager::startNextRequest):
(WebKit::SpeechRecognitionPermissionManager::startProcessingRequest):
(WebKit::SpeechRecognitionPermissionManager::continueProcessingRequest):
(WebKit::SpeechRecognitionPermissionManager::completeCurrentRequest):
(WebKit::SpeechRecognitionPermissionManager::requestSpeechRecognitionServiceAccess):
(WebKit::SpeechRecognitionPermissionManager::requestMicrophoneAccess):
(WebKit::SpeechRecognitionPermissionManager::requestUserPermission):

  • UIProcess/SpeechRecognitionPermissionManager.h: Added.
  • UIProcess/SpeechRecognitionPermissionRequest.h: Added.

(WebKit::SpeechRecognitionPermissionRequest::create):
(WebKit::SpeechRecognitionPermissionRequest::complete):
(WebKit::SpeechRecognitionPermissionRequest::origin const):
(WebKit::SpeechRecognitionPermissionRequest::SpeechRecognitionPermissionRequest):
(WebKit::SpeechRecognitionPermissionCallback::create):
(WebKit::SpeechRecognitionPermissionCallback::complete):
(WebKit::SpeechRecognitionPermissionCallback::SpeechRecognitionPermissionCallback):

  • UIProcess/SpeechRecognitionServer.cpp:

(WebKit::SpeechRecognitionServer::SpeechRecognitionServer):
(WebKit::SpeechRecognitionServer::start):
(WebKit::SpeechRecognitionServer::requestPermissionForRequest):
(WebKit::SpeechRecognitionServer::stop):
(WebKit::SpeechRecognitionServer::abort):
(WebKit::SpeechRecognitionServer::invalidate):
(WebKit::SpeechRecognitionServer::handleRequest):
(WebKit::SpeechRecognitionServer::stopRequest):
(WebKit::SpeechRecognitionServer::abortRequest):
(WebKit::SpeechRecognitionServer::sendUpdate):
(WebKit::SpeechRecognitionServer::processNextPendingRequestIfNeeded): Deleted.
(WebKit::SpeechRecognitionServer::removePendingRequest): Deleted.
(WebKit::SpeechRecognitionServer::startPocessingRequest): Deleted.
(WebKit::SpeechRecognitionServer::stopProcessingRequest): Deleted.

  • UIProcess/SpeechRecognitionServer.h:
  • UIProcess/SpeechRecognitionServer.messages.in:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::didChangeMainDocument):
(WebKit::WebPageProxy::resetState):
(WebKit::WebPageProxy::requestSpeechRecognitionPermission):

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

(WebKit::WebProcessProxy::createSpeechRecognitionServer):

  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/WebCoreSupport/WebSpeechRecognitionConnection.cpp:

(WebKit::WebSpeechRecognitionConnection::start):
(WebKit::WebSpeechRecognitionConnection::didReceiveUpdate):

  • WebProcess/WebCoreSupport/WebSpeechRecognitionConnection.h:

Source/WTF:

  • wtf/PlatformHave.h:

Tools:

  • MiniBrowser/mac/Info.plist:
  • MobileMiniBrowser/MobileMiniBrowser/Info.plist:
  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKitCocoa/SpeechRecognition.mm: Added.

(-[SpeechRecognitionPermissionUIDelegate _webView:requestSpeechRecognitionPermissionForOrigin:decisionHandler:]):
(-[SpeechRecognitionMessageHandler userContentController:didReceiveScriptMessage:]):
(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/speechrecognition-user-permission-persistence.html: Added.
  • WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl:
  • WebKitTestRunner/InjectedBundle/TestRunner.cpp:

(WTR::TestRunner::setIsSpeechRecognitionPermissionGranted):

  • WebKitTestRunner/InjectedBundle/TestRunner.h:
  • WebKitTestRunner/TestController.cpp:

(WTR::decidePolicyForSpeechRecognitionPermissionRequest):
(WTR::TestController::completeSpeechRecognitionPermissionCheck):
(WTR::TestController::setIsSpeechRecognitionPermissionGranted):
(WTR::TestController::createWebViewWithOptions):
(WTR::TestController::resetStateToConsistentValues):

  • WebKitTestRunner/TestController.h:
  • WebKitTestRunner/TestInvocation.cpp:

(WTR::TestInvocation::didReceiveSynchronousMessageFromInjectedBundle):

LayoutTests:

  • TestExpectations:
  • fast/speechrecognition/permission-error-expected.txt: Added.
  • fast/speechrecognition/permission-error.html: Added.
  • fast/speechrecognition/resources/removed-iframe.html: Added.
  • fast/speechrecognition/start-recognition-in-removed-iframe-expected.txt: Added.
  • fast/speechrecognition/start-recognition-in-removed-iframe.html: Added.
  • platform/wk2/TestExpectations:
6:11 PM Changeset in webkit [269809] by Chris Dumez
  • 7 edits in trunk

[GPUProcess] Add basic GPUProcess crash handling for canvas
https://bugs.webkit.org/show_bug.cgi?id=218924

Reviewed by Simon Fraser.

Source/WebKit:

Update RemoteRenderingBackendProxy to be a GPUProcessConnection::Client so that it
gets notified when the IPC connection to the GPUProcess gets severed. When this
happens, RemoteRenderingBackendProxy clears all its SharedMemory handles and
sends IPC messages to the GPU process to recreate all the ImageBuffers we had.

  • WebProcess/GPU/graphics/RemoteImageBufferProxy.h:

(WebKit::RemoteImageBufferProxy::create):
(WebKit::RemoteImageBufferProxy::clearBackend):
(WebKit::RemoteImageBufferProxy::size const):
(WebKit::RemoteImageBufferProxy::renderingMode const):
(WebKit::RemoteImageBufferProxy::colorSpace const):
(WebKit::RemoteImageBufferProxy::pixelFormat const):
(WebKit::RemoteImageBufferProxy::RemoteImageBufferProxy):

  • WebProcess/GPU/graphics/RemoteRenderingBackendProxy.cpp:

(WebKit::RemoteRenderingBackendProxy::RemoteRenderingBackendProxy):
(WebKit::RemoteRenderingBackendProxy::connectToGPUProcess):
(WebKit::recreateImage):
(WebKit::RemoteRenderingBackendProxy::gpuProcessConnectionDidClose):
(WebKit::RemoteRenderingBackendProxy::createImageBuffer):

  • WebProcess/GPU/graphics/RemoteRenderingBackendProxy.h:
  • WebProcess/GPU/graphics/RemoteResourceCacheProxy.h:

(WebKit::RemoteResourceCacheProxy::imageBuffers const):

Tools:

Add API test coverage.

  • TestWebKitAPI/Tests/WebKitCocoa/GPUProcess.mm:

(convertToCGImage):
(getPixelIndex):
(TEST):

5:09 PM Changeset in webkit [269808] by Chris Dumez
  • 2 edits in trunk/Source/WebKit

[GPUProcess] Add basic low memory handling in the GPUProcess
https://bugs.webkit.org/show_bug.cgi?id=218926
<rdar://problem/70300888>

Reviewed by Geoffrey Garen.

Add basic low memory handling in the GPUProcess. For now, the GPUProcess only calls
WTF::releaseFastMallocFreeMemory() on low memory warning.

  • GPUProcess/GPUProcess.cpp:

(WebKit::GPUProcess::initializeGPUProcess):

4:55 PM Changeset in webkit [269807] by Kate Cheney
  • 25 edits in trunk/Source

Can't login to Microsoft Teams
https://bugs.webkit.org/show_bug.cgi?id=218778
<rdar://problem/36331568>

Reviewed by John Wilander.

This is a temporary quirk to assist a high-traffic website while they
complete the large task of migrating away from login flows that
require third party cookies. This quirk will be removed when the site
is updated.

Create a quirk to call the Storage Access API on behalf of Microsoft.

Source/WebCore:

No new tests, site-specific quirk.

  • dom/Element.cpp:

(WebCore::Element::dispatchMouseEvent):
Pass additional parameters to be able to dispatch a synthetic click
if storage access is granted.

  • loader/ResourceLoadObserver.h:

(WebCore::ResourceLoadObserver::setDomainsWithCrossPageStorageAccess):
(WebCore::ResourceLoadObserver::hasCrossPageStorageAccess const):
Store domains in the web process to avoid async calls to the network
process.

(WebCore::isMicrosoftLoginElement):
(WebCore::isMicrosoftDomain):

  • page/Quirks.cpp:

(WebCore::Quirks::triggerOptionalStorageAccessQuirk const):
This is the quirk.

  • page/Quirks.h:
  • platform/network/NetworkStorageSession.cpp:

(WebCore::NetworkStorageSession::setDomainsWithCrossPageStorageAccess):
(WebCore::NetworkStorageSession::grantCrossPageStorageAccess):
(WebCore::NetworkStorageSession::hasStorageAccess const):
(WebCore::NetworkStorageSession::grantStorageAccess):
(WebCore::NetworkStorageSession::removeAllStorageAccess):
(WebCore::NetworkStorageSession::storageAccessQuirks):
(WebCore::NetworkStorageSession::canRequestStorageAccessForLoginPurposesWithoutPriorUserInteraction):
(WebCore::NetworkStorageSession::loginDomainForFirstParty):
(WebCore::NetworkStorageSession::mapToTopDomain):
The user might go directly to login.live.com to sign in to Microsoft
Teams, but may not have seen the Storage Access prompt. In this case,
we should map live.com to microsoft.com and request storage access for
microsoftonline.com under microsoft.com. Since login.live.com is used
for other Microsoft login flows besides Teams, a user may have to
grant storage access to microsoftonline.com even when it is not needed
to complete the login. But this guarantees they will always be
successfully logged into all Microsoft accounts.

  • platform/network/NetworkStorageSession.h:

In order for the user to stay logged in between sessions, we should
update NetworkStorageSession to grant storage access based on values
stored in the ITP database for quirk domains.

Source/WebKit:

  • NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp:

(WebKit::ResourceLoadStatisticsDatabaseStore::grantStorageAccess):
(WebKit::ResourceLoadStatisticsDatabaseStore::grantStorageAccessInternal):
Relax the requirement for user interaction for a specific third party
needing cookies for authentication purposes.

(WebKit::ResourceLoadStatisticsDatabaseStore::clear):
(WebKit::ResourceLoadStatisticsDatabaseStore::cookieAccess):
Relax the requirement for user interaction for a specific third party
needing cookies for authentication purposes.

(WebKit::ResourceLoadStatisticsDatabaseStore::domainsWithStorageAccess const):
(WebKit::ResourceLoadStatisticsDatabaseStore::updateCookieBlocking):

  • NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.h:
  • NetworkProcess/Classifier/ResourceLoadStatisticsMemoryStore.cpp:

(WebKit::ResourceLoadStatisticsMemoryStore::clear):
(WebKit::ResourceLoadStatisticsMemoryStore::updateCookieBlocking):

  • NetworkProcess/Classifier/WebResourceLoadStatisticsStore.cpp:

(WebKit::WebResourceLoadStatisticsStore::requestStorageAccessEphemeral):
Relax user interaction for reasons above.

(WebKit::WebResourceLoadStatisticsStore::callUpdatePrevalentDomainsToBlockCookiesForHandler):

  • NetworkProcess/Classifier/WebResourceLoadStatisticsStore.h:

(WebKit::RegistrableDomainsToBlockCookiesFor::isolatedCopy const):

  • Shared/WebProcessDataStoreParameters.h:

(WebKit::WebProcessDataStoreParameters::encode const):
(WebKit::WebProcessDataStoreParameters::decode):

  • UIProcess/Network/NetworkProcessProxy.cpp:

(WebKit::NetworkProcessProxy::setDomainsWithCrossPageStorageAccess):

  • UIProcess/Network/NetworkProcessProxy.h:
  • UIProcess/Network/NetworkProcessProxy.messages.in:
  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::webProcessDataStoreParameters):
(WebKit::WebProcessPool::setDomainsWithCrossPageStorageAccess):

  • UIProcess/WebProcessPool.h:
  • WebProcess/WebCoreSupport/WebResourceLoadObserver.cpp:

(WebKit::WebResourceLoadObserver::hasCrossPageStorageAccess const):
(WebKit::WebResourceLoadObserver::setDomainsWithCrossPageStorageAccess):

  • WebProcess/WebCoreSupport/WebResourceLoadObserver.h:
  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::setWebsiteDataStoreParameters):
(WebKit::WebProcess::setDomainsWithCrossPageStorageAccess):
Add quirk'd domains to have page level storage access to be able to
use document.cookie.

  • WebProcess/WebProcess.h:
  • WebProcess/WebProcess.messages.in:

Forward domains with the storage access quirk to the web process to
avoid an async call to the network process.

4:20 PM Changeset in webkit [269806] by BJ Burg
  • 2 edits in trunk/Source/WebCore

REGRESSION(r269701): inspector/console/webcore-logging.html is crashing
https://bugs.webkit.org/show_bug.cgi?id=218840
<rdar://problem/71310952>

Reviewed by Devin Rousso.

This test is triggering a bizarre backtrace that fails the assertion ASSERT(m_frontendLoaded)
in the frontend dispatcher. The sequence of events present in the stack trace is as follows:

  1. Test.html finishes loading.
  2. DOMContentLoaded event listener eventually calls InspectorFrontendHost::loaded().
  3. InspectorFrontendClient::frontendLoaded() calls -[NSWindow showWindow:] on the inspector window, which makes the inspected webpage window unfocus and resign first responder.
  4. Unfocusing causes an activity state change and style recalc. Script is unsafe to execute under this.
  5. Synchronously under the style recalc, inspector instrumentation is triggered when layers change.
  6. The backend sends a protocol event, which is synchronously dispatched to the frontend.
  7. Due to script evaluation being unsafe in (4), the frontend dispatcher tries to suspend. This hits the assertion because the frontend dispatcher hasn't been notified that the frontend finished loading as part of (3).

This only affects WebKitLegacy clients, where events 1-7 happen synchronously from top to bottom
due to the single process architecture. In the multiprocess case, frontendLoaded is an async
IPC message and frontend evaluations are not affected by the state of the inspected page.

  • inspector/InspectorFrontendAPIDispatcher.cpp:

(WebCore::InspectorFrontendAPIDispatcher::frontendLoaded): Dispatch messages iff not suspended.

(WebCore::InspectorFrontendAPIDispatcher::suspend): Remove the assertion that is incorrect.
Allow clients of this class to call suspend() before frontendLoaded().

(WebCore::InspectorFrontendAPIDispatcher::unsuspend): Using a similar argument as above, it
is possible that WebKitLegacy may unsuspend the dispatcher before the frontend has fully loaded.

4:02 PM Changeset in webkit [269805] by weinig@apple.com
  • 17 edits in trunk/Source

Move some more WebKit and WebKitLegacy preferences bound to Settings to WebPreferences.yaml
https://bugs.webkit.org/show_bug.cgi?id=218914

Reviewed by Tim Horton.

Source/WebCore:

Moves AppleMailPaginationQuirkEnabled, ContentDispositionAttachmentSandboxEnabled and
UseImageDocumentForSubframePDF from Settings.yaml to WebPreferences.yaml and merges in
WebCore values for ScrollingPerformanceLoggingEnabled.

  • page/Settings.yaml:

Source/WebKit:

  • Shared/WebPageCreationParameters.cpp:

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

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

(WebKit::WebPageProxy::creationParameters):

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

(WebKit::WebPageProxy::appleMailPaginationQuirkEnabled): Deleted.
(WebKit::WebPageProxy::appleMailLinesClampEnabled): Deleted.
Removes appleMailPaginationQuirkEnabled and appleMailLinesClampEnabled.
appleMailPaginationQuirkEnabled is now handled via the preferences infrastructure
and appleMailLinesClampEnabled was unused.

  • Shared/WebPreferencesDefaultValues.cpp:

(WebKit::defaultAppleMailPaginationQuirkEnabled):

  • Shared/WebPreferencesDefaultValues.h:

Adds default value for AppleMailPaginationQuirkEnabled, which is now in WebPreferences.yaml.
Moved from WebPageProxyMac.mm

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::updatePreferences):
Removes explicit setting of setAppleMailPaginationQuirkEnabled, setContentDispositionAttachmentSandboxEnabled,
setScrollingPerformanceLoggingEnabled and setUseImageDocumentForSubframePDF which are all generated now.
LayoutViewportHeightExpansionFactor was already generated so this call was just redundant.

  • WebProcess/WebPage/WebPage.h:

(WebKit::WebPage::setScrollingPerformanceLoggingEnabled): Deleted.
It's also no longer necessary to store m_scrollingPerformanceLoggingEnabled as the value
can be extracted directly from the store in the one place it was read. setScrollingPerformanceLoggingEnabled
was never called, so has been removed.

  • WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:

(WebKit::TiledCoreAnimationDrawingArea::updatePreferences):
Extract scrollingPerformanceLoggingEnabled directly from the store rather than having the page
set it just for this one place to read it.

Source/WebKitLegacy/mac:

  • WebView/WebView.mm:

(-[WebView _commonInitializationWithFrameName:groupName:]):
Remove explicit setting of Settings::setContentDispositionAttachmentSandboxEnabled as
it is now handled by the generated code. Merge together a few sequential #ifdefs while
in the area.

Source/WTF:

Moves AppleMailPaginationQuirkEnabled, ContentDispositionAttachmentSandboxEnabled and
UseImageDocumentForSubframePDF from Settings.yaml to WebPreferences.yaml. Merges in
WebCore values from ScrollingPerformanceLoggingEnabled and removes binding override
since it can now be fully generated.

  • Scripts/Preferences/WebPreferences.yaml:
3:46 PM Changeset in webkit [269804] by aakash_jain@apple.com
  • 2 edits in trunk/Tools

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

Reviewed by Jonathan Bedard.

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

(CompileWebKit.start): Initialize logobserver.
(CompileWebKit.parseOutputLine): Method to process each line.
(CompileWebKit._addToLog): Method to add to the log which is displayed in UI.
(CompileWebKit.createSummary):

2:56 PM Changeset in webkit [269803] by Ryan Haddad
  • 3 edits
    2 deletes in trunk

Unreviewed, reverting r269776.

The test added with this change is asserting

Reverted changeset:

"Null check anchorNode of endingSelection start"
https://bugs.webkit.org/show_bug.cgi?id=218492
https://trac.webkit.org/changeset/269776

2:38 PM Changeset in webkit [269802] by ggaren@apple.com
  • 7 edits in trunk/Source

Removed DeferrableTaskTimer
https://bugs.webkit.org/show_bug.cgi?id=218874

Reviewed by Chris Dumez.

It was (mostly) redundant.

Source/WebCore:

  • platform/Timer.h:

(WebCore::Timer::schedule): This helper function does the same job
that DeferrableTaskTimer used to do.

(WebCore::DeferrableTaskTimer::fired): Deleted.
(WebCore::DeferrableTaskTimer::doTask): Deleted.
(WebCore::DeferrableTaskTimer::cancel): Deleted.

  • platform/mediarecorder/MediaRecorderPrivateMock.cpp:

(WebCore::MediaRecorderPrivateMock::fetchData): Use the new helper function.

  • platform/mediarecorder/MediaRecorderPrivateMock.h: No need for a data

member anymore since we can use the schedule() convenience function instead.

Source/WebKit:

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::updateReportedMediaCaptureState):

  • UIProcess/WebPageProxy.h: Use WTF::RunLoop::Timer instead of

WebCore::Timer because WebCore::Timer for WebKit code in the UI process
is a no-no, which can crash if the UI process also uses WebThread.

2:32 PM Changeset in webkit [269801] by commit-queue@webkit.org
  • 15 edits in trunk

[JSC] Use symbols as identifiers for class fields computed names storage
https://bugs.webkit.org/show_bug.cgi?id=216172

Patch by Xan López <Xan Lopez> on 2020-11-13
Reviewed by Yusuke Suzuki.

Use private symbols for the property keys of the class fields with
computed names. This is cleaner than using raw numeric identifiers and
will be less cumbersome when we add static fields. It also prevents
potential collisions if other features want to store data in the class
scope.

JSTests:

  • stress/class-fields-harmony.js: new test, make sure

setFunctionName works properly with computed fields.

Source/JavaScriptCore:

  • bytecompiler/NodesCodegen.cpp:

(JSC::PropertyListNode::emitSaveComputedFieldName): adapt a comment.

  • parser/Parser.cpp:

(JSC::Parser<LexerType>::parseClass): use private identifiers for computed fields property keys.
(JSC::Parser<LexerType>::parseInstanceFieldInitializerSourceElements): ditto.

  • parser/ParserArena.cpp:

(JSC::IdentifierArena::makePrivateIdentifier): method to create a private identifier.

  • parser/ParserArena.h:
  • runtime/CachedTypes.cpp:

(JSC::CachedUniquedStringImplBase::encode): consider registered symbols, they are used by the parser now.
(JSC::CachedUniquedStringImplBase::decode const): ditto.

  • runtime/VM.cpp:

(JSC::VM::VM):

  • runtime/VM.h:

(JSC::VM::privateSymbolRegistry): create a private symbol registry too.

Source/WTF:

  • wtf/text/SymbolImpl.cpp:

(WTF::RegisteredSymbolImpl::createPrivate): add a method to create a registered private symbol from a string key.

  • wtf/text/SymbolImpl.h:
  • wtf/text/SymbolRegistry.cpp:

(WTF::SymbolRegistry::symbolForKey): consider that we can hold private symbols now too.

  • wtf/text/SymbolRegistry.h:

(WTF::SymbolRegistry::SymbolRegistry): new enum type for public/private symbols.

2:29 PM Changeset in webkit [269800] by Alan Coon
  • 1 copy in tags/Safari-610.3.7.1.4

Tag Safari-610.3.7.1.4.

2:22 PM Changeset in webkit [269799] by Russell Epstein
  • 1 edit in branches/safari-610-branch/Source/ThirdParty/libwebrtc/Source/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_indata.c

Apply patch. rdar://problem/71378194

2:17 PM Changeset in webkit [269798] by Russell Epstein
  • 3 edits
    2 adds in branches/safari-610-branch

Cherry-pick r269384. rdar://problem/71381924

REGRESSION (r257839): Miscomputed style due to computed 'rem' value in matched declaration cache
https://bugs.webkit.org/show_bug.cgi?id=218561
<rdar://problem/70074191>

Reviewed by Zalan Bujtas.

Source/WebCore:

Test: fast/dom/focus-rem-style-update.html

Call to focus() causes computed style update for the element’s ancestor chain before the the document
has otherwise been styled (using the shortcut mechanism introduced in r257839). This style, which uses ‘rem’
unit and so depends on root element font size, gets cached in MatchedDeclarationsCache. The root font size
then changes but during the resulting style update we use this cached value, failing to re-resolve ‘rem’.

  • style/StyleTreeResolver.cpp: (WebCore::Style::TreeResolver::resolveElement):

Invalidate matched declarations cache also when there is no existing document element style.

LayoutTests:

  • fast/dom/focus-rem-style-update-expected.html: Added.
  • fast/dom/focus-rem-style-update.html: Added.

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

2:17 PM Changeset in webkit [269797] by Russell Epstein
  • 2 edits in branches/safari-610-branch/Source/WebCore

Cherry-pick r269321. rdar://problem/71083861

Protect against HTMLMediaElement being destroyed during disptachEvent().
https://bugs.webkit.org/show_bug.cgi?id=218398
<rdar://problem/67613836>

Reviewed by Chris Dumez.

Make the MainThreadGenericEventQueue protect the target as well as the owner of the queue.

Drive-by fix: Create the scoped eventFiringScope object after the protect object, to ensure
that the member variable set by the first scope will safely occur.

Drive-by fix #2: Also null-check the result of document().page() within HTMLMediaElement::dispatchEvent().

  • dom/GenericEventQueue.cpp: (WebCore::MainThreadGenericEventQueue::dispatchOneEvent):
  • html/HTMLMediaElement.cpp: (WebCore::HTMLMediaElement::dispatchEvent):

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

2:17 PM Changeset in webkit [269796] by Russell Epstein
  • 7 edits
    1 add in branches/safari-610-branch/Source

Cherry-pick r269208. rdar://problem/71378171

AX: Incorrect list of voices being displayed on iOS
https://bugs.webkit.org/show_bug.cgi?id=218293

Reviewed by Per Arne Vollan.

Source/WebCore:

Limit the voices that we display in WebSpeech to only built-in system voices. This was the intention of the "compact"
decision, but some mobile assets have compact voices, which are not available WebContent.

  • platform/ios/PlatformSpeechSynthesizerIOS.mm: (WebCore::PlatformSpeechSynthesizer::initializeVoiceList):

Source/WebCore/PAL:

  • PAL.xcodeproj/project.pbxproj:
  • pal/PlatformMac.cmake:
  • pal/spi/cocoa/AXSpeechManagerSPI.h: Added.

Source/WTF:

  • wtf/PlatformHave.h:

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

2:16 PM Changeset in webkit [269795] by Russell Epstein
  • 6 edits
    2 adds in branches/safari-610-branch

Cherry-pick r269121. rdar://problem/71381839

[MSE] Handle trackId changing across Initialization Segments
https://bugs.webkit.org/show_bug.cgi?id=218294
<rdar://problem/70771306>

Reviewed by Eric Carlson.

Source/WebCore:

Test: media/media-source/media-source-trackid-change.html

When appending an initialization segment after the receivedFirstInitializationSegment flag is
true, and when the number of video or audio tracks is 1, the trackId is allowed to change across
initialiaztion segments. When this occurs, move the TrackBuffer inside the trackBufferMap to
refer to the new trackId, so that when MediaSamples are parsed, they're put into the correct
TrackBuffer.

  • Modules/mediasource/SourceBuffer.cpp: (WebCore::SourceBuffer::sourceBufferPrivateDidReceiveInitializationSegment):
  • html/track/AudioTrack.cpp: (WebCore::AudioTrack::setPrivate):
  • html/track/InbandTextTrack.cpp: (WebCore::InbandTextTrack::setPrivate):
  • html/track/VideoTrack.cpp: (WebCore::VideoTrack::setPrivate):

LayoutTests:

  • media/media-source/media-source-trackid-change-expected.txt: Added.
  • media/media-source/media-source-trackid-change.html: Added.

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

2:16 PM Changeset in webkit [269794] by Russell Epstein
  • 2 edits in branches/safari-610-branch/Source/WebCore

Cherry-pick r268782. rdar://problem/71381941

Release assert in ~Node due to render element of pseudo element not getting removed in time
https://bugs.webkit.org/show_bug.cgi?id=217996

Patch by Julian Gonzalez <julian_a_gonzalez@apple.com> on 2020-10-20
Reviewed by Ryosuke Niwa.

When attaching a shadow root to an element, remember to tear down renderers not only if
one exists on the element, but also if it uses display: contents.

  • dom/Element.cpp: (WebCore::Element::addShadowRoot):

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

2:16 PM Changeset in webkit [269793] by Russell Epstein
  • 7 edits in branches/safari-610-branch

Cherry-pick r266052. rdar://problem/71378190

RTCRtpSynchronizationSource.rtpTimestamp is not present
https://bugs.webkit.org/show_bug.cgi?id=215722

Patch by Justin Uberti <justin@uberti.name> on 2020-08-24
Reviewed by Youenn Fablet.

LayoutTests/imported/w3c:

Updated expectations file to indicate that tests checking for .rtpTimestamp now pass.

  • LayoutTests/imported/w3c/web-platform-tests/webrtc/RTCRtpReceiver-getSynchronizationSources.https-expected.txt:

Source/WebCore:

Updated expected results in LayoutTests/imported/w3c/web-platform-tests/webrtc/RTCRtpReceiver-getSynchronizationSources.https-expected.txt.

  • Modules/mediastream/RTCRtpContributingSource.idl:
  • Modules/mediastream/RTCRtpContributingSource.idl:
  • Modules/mediastream/RTCRtpSynchronizationSource.idl: Minor modification to ensure JSRTCRtpSynchronizationSource.cpp gets regenerated.
  • Modules/mediastream/libwebrtc/LibWebRTCRtpReceiverBackend.cpp: (WebCore::fillRTCRtpContributingSource):

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

2:13 PM Changeset in webkit [269792] by pvollan@apple.com
  • 3 edits in trunk/Source/WebKit

[macOS] Issue sandbox extension to the WebContent process for com.apple.lskdd
https://bugs.webkit.org/show_bug.cgi?id=218920
<rdar://problem/69168801>

Reviewed by Geoffrey Garen.

This is a Media related service, and a sandbox extension should be issued to the WebContent process based on GPU runtime settings.

No new tests, covered by existing tests.

  • UIProcess/WebPageProxy.cpp:

(WebKit::mediaRelatedMachServices):

  • WebProcess/com.apple.WebProcess.sb.in:
1:49 PM Changeset in webkit [269791] by ysuzuki@apple.com
  • 8 edits in trunk/JSTests

Unreviewed, skip new ICU related tests in MIPS and ARMv7 and adjust it for ICU 65
https://bugs.webkit.org/show_bug.cgi?id=213822

  • stress/intl-datetimeformat-formatrange-relevant-extensions.js:
  • stress/intl-datetimeformat-formatrange-should-not-handle-gregorian-change-date.js:
  • stress/intl-datetimeformat-formatrange.js:

(test):

  • stress/intl-datetimeformat-formatrangetoparts-relevant-extensions-ja.js:
  • stress/intl-datetimeformat-formatrangetoparts-relevant-extensions.js:
  • stress/intl-datetimeformat-formatrangetoparts-should-not-handle-gregorian-change-date.js:
  • stress/intl-datetimeformat-formatrangetoparts.js:
1:39 PM Changeset in webkit [269790] by commit-queue@webkit.org
  • 6 edits
    1 add in trunk

WebAssembly: opcodes for table.grow and table.size are mixed up
https://bugs.webkit.org/show_bug.cgi?id=218644

Patch by Sergey Rubanov <Sergey Rubanov> on 2020-11-13
Reviewed by Yusuke Suzuki.

JSTests:

  • wasm/stress/table-grow-table-size.js: Added.

(async test):

  • wasm/wasm.json:

Source/JavaScriptCore:

  • wasm/wasm.json:

LayoutTests:

  • workers/wasm-references/test.js:
1:19 PM Changeset in webkit [269789] by Claudio Saavedra
  • 17 edits in trunk/Source

Non-unified build fixes.
https://bugs.webkit.org/show_bug.cgi?id=218905

Unreviewed.

Source/WebCore:

  • Modules/mediarecorder/MediaRecorder.h:
  • Modules/mediastream/libwebrtc/LibWebRTCRtpReceiverTransformBackend.h:
  • Modules/mediastream/libwebrtc/LibWebRTCRtpSenderTransformBackend.h:
  • animation/WebAnimationUtilities.h:
  • display/css/DisplayBoxDecorationData.h:
  • dom/BoundaryPoint.cpp:
  • dom/EventDispatcher.cpp:
  • html/HTMLFrameOwnerElement.h:
  • layout/integration/LayoutIntegrationInlineContentBuilder.h:
  • loader/DocumentWriter.h:
  • page/FrameTree.h:
  • platform/encryptedmedia/CDMPrivate.cpp:
  • rendering/InlineTextBox.cpp:

Source/WebKit:

  • GPUProcess/graphics/RemoteRenderingBackend.cpp:
  • GPUProcess/graphics/RemoteResourceCache.h:
1:11 PM Changeset in webkit [269788] by commit-queue@webkit.org
  • 4 edits
    1 delete in trunk/Source/WebKit

Remove more SecItemShim leftovers
https://bugs.webkit.org/show_bug.cgi?id=218919

Patch by Alex Christensen <achristensen@webkit.org> on 2020-11-13
Reviewed by Geoffrey Garen.

  • Configurations/SecItemShim.xcconfig: Removed.
  • NetworkProcess/EntryPoint/Cocoa/XPCService/NetworkServiceEntryPoint.mm:

(NETWORK_SERVICE_INITIALIZER):

  • PlatformMac.cmake:
  • WebKit.xcodeproj/project.pbxproj:
1:09 PM Changeset in webkit [269787] by Jonathan Bedard
  • 2 edits in trunk/Tools

REGRESSION: r269514 Reset server port before restarting webserver
https://bugs.webkit.org/show_bug.cgi?id=218918
<rdar://problem/71380345>

Reviewed by Stephanie Lewis.

  • Scripts/webkitpy/benchmark_runner/http_server_driver/simple_http_server_driver.py:

(SimpleHTTPServerDriver.serve): Reset server port.
(SimpleHTTPServerDriver.kill_server): Ditto.

10:22 AM Changeset in webkit [269786] by aakash_jain@apple.com
  • 2 edits in trunk/Tools

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

Reviewed by Jonathan Bedard.

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

(TestWithFailureCount.getText): Added FIXME to remove this method after switching to buildbot v2.
(TestWithFailureCount.getText2): Added FIXME to remove this method after switching to buildbot v2.
(TestWithFailureCount.getResultSummary): Method to generate custom step summary.
(RunWebKitTests.getResultSummary): Removed unnecessary u, python3 defaults to unicode anyways.
(RunAPITests):
(RunAPITests.start): Use ParseByLineLogObserver.
(RunAPITests.countFailures):
(RunAPITests.parseOutputLine): Method to process each line.

9:51 AM Changeset in webkit [269785] by Darin Adler
  • 92 edits
    14 deletes in trunk

Remove unused advanced plug-in features: snapshotting and plug-in load policy
https://bugs.webkit.org/show_bug.cgi?id=218835

Reviewed by Tim Horton.

LayoutTests/imported/w3c:

  • LayoutTests/imported/w3c/web-platform-tests/css/css-ui/appearance-cssom-001-expected.txt:

Updated for progression.

Source/WebCore:

  • Headers.cmake: Removed some headers.
  • Sources.txt: Removed some source files.
  • WebCore.xcodeproj/project.pbxproj: Ditto.
  • css/CSSPrimitiveValueMappings.h: Removed SnapshottedPluginOverlayPart.
  • css/CSSValueKeywords.in: Removed snapshotted-plugin-overlay.
  • html/HTMLPlugInElement.cpp:

(WebCore::HTMLPlugInElement::HTMLPlugInElement): Moved member initialization to
the class definition.
(WebCore::HTMLPlugInElement::canProcessDrag const): Deleted.
(WebCore::HTMLPlugInElement::defaultEventHandler): Removed snapshot-specific code.
(WebCore::HTMLPlugInElement::swapRendererTimerFired): Removed code to handle
DisplayingSnapshot state.
(WebCore::HTMLPlugInElement::setDisplayState): Ditto.

  • html/HTMLPlugInElement.h: Removed WaitingForSnapshot, DisplayingSnapshot,

Restarting and RestartingWithPendingMouseClick states, updateSnapshot,
dispatchPendingMouseClick, isRestartedPlugin, and canProcessDrag. Marked some
more functions final, made a couple non-virtual, and moved some things from
public to protected and protected to private.

  • html/HTMLPlugInImageElement.cpp:

(WebCore::titleText): Deleted.
(WebCore::subtitleText): Deleted.
(WebCore::HTMLPlugInImageElement::HTMLPlugInImageElement): Removed a few data
members.
(WebCore::HTMLPlugInImageElement::setDisplayState): Deleted.
(WebCore::HTMLPlugInImageElement::createElementRenderer): Removed code to handle
the DisplayingSnapshot case.
(WebCore::HTMLPlugInImageElement::childShouldCreateRenderer const): Removed code
to handle a snapshotted plug-in.
(WebCore::HTMLPlugInImageElement::willRecalcStyle): Removed check for
the DisplayingSnapshot case.
(WebCore::HTMLPlugInImageElement::updateSnapshot): Deleted.
(WebCore::plugInImageElementIsolatedWorld): Deleted.
(WebCore::HTMLPlugInImageElement::didAddUserAgentShadowRoot): Deleted.
(WebCore::HTMLPlugInImageElement::partOfSnapshotOverlay const): Deleted.
(WebCore::HTMLPlugInImageElement::removeSnapshotTimerFired): Deleted.
(WebCore::HTMLPlugInImageElement::restartSimilarPlugIns): Deleted.
(WebCore::HTMLPlugInImageElement::userDidClickSnapshot): Deleted.
(WebCore::HTMLPlugInImageElement::setIsPrimarySnapshottedPlugIn): Deleted.
(WebCore::HTMLPlugInImageElement::restartSnapshottedPlugIn): Deleted.
(WebCore::HTMLPlugInImageElement::dispatchPendingMouseClick): Deleted.
(WebCore::HTMLPlugInImageElement::simulatedMouseClickTimerFired): Deleted.
(WebCore::documentHadRecentUserGesture): Deleted.
(WebCore::HTMLPlugInImageElement::checkSizeChangeForSnapshotting): Deleted.
(WebCore::is100Percent): Deleted.
(WebCore::isSmallerThanTinySizingThreshold): Deleted.
(WebCore::HTMLPlugInImageElement::isTopLevelFullPagePlugin const): Deleted.
(WebCore::HTMLPlugInImageElement::checkSnapshotStatus): Deleted.
(WebCore::HTMLPlugInImageElement::subframeLoaderWillCreatePlugIn): Deleted.
(WebCore::HTMLPlugInImageElement::subframeLoaderDidCreatePlugIn): Deleted.
(WebCore::HTMLPlugInImageElement::defaultEventHandler): Deleted.

  • html/HTMLPlugInImageElement.h: Removed the functions mentioned above.

Also loadedUrl, snapshotImage, needsCheckForSizeChange, setNeedsCheckForSizeChange,
snapshotDecision, isRestartedPlugin, m_loadedUrl, m_pendingClickEventFromSnapshot,
m_simulatedMouseClickTimer, m_removeSnapshotTimer, m_snapshotImage,
m_createdDuringUserGesture, m_isRestartedPlugin, m_needsCheckForSizeChange,
m_plugInWasCreated, m_deferredPromotionToPrimaryPlugIn, m_sizeWhenSnapshotted,
m_snapshotDecision, and m_plugInDimensionsSpecified.

  • loader/SubframeLoader.cpp:

(WebCore::FrameLoader::SubframeLoader::loadPlugin): Removed calls to
subframeLoaderWillCreatePlugIn/DidCreatePlugIn.

  • page/DragController.cpp:

(WebCore::DragController::canProcessDrag): Removed special case for plug-ins.

  • page/FrameView.cpp:

(WebCore::FrameView::addEmbeddedObjectToUpdate): Removed call to
needsCheckForSizeChange.
(WebCore::FrameView::updateEmbeddedObject): Removed special case for
snapshotted plug-in and call to needsCheckForSizeChange.

  • page/Page.cpp:

(WebCore::Page::Page): Removed m_plugInClient.

  • page/Page.h: Ditto.
  • page/PageConfiguration.cpp: Removed PlugInClient.h.
  • page/PageConfiguration.h: Removed plugInClient.
  • page/PlugInClient.h: Removed.
  • page/Settings.yaml: Removed MaximumPlugInSnapshotAttempts.
  • platform/ThemeTypes.cpp:

(WebCore::operator<<): Removed SnapshottedPluginOverlayPart.

  • platform/ThemeTypes.h: Ditto.
  • plugins/PluginViewBase.h: Removed canProcessDrag, shouldAlwaysAutoStart,

and beginSnapshottingRunningPlugin.

  • rendering/RenderBoxModelObject.h: Added an export because the linker failed.

Not sure what triggered this.

  • rendering/RenderEmbeddedObject.cpp:

(WebCore::RenderEmbeddedObject::paintSnapshotImage): Deleted.
(WebCore::RenderEmbeddedObject::paintContents): Deleted.
(WebCore::RenderEmbeddedObject::layout): Removed code that was only for
snahpshotted plug-ins, guarded both by an explicit check for snapshot state
and by a check of canHaveChildren (now always false).
(WebCore::RenderEmbeddedObject::canHaveChildren const): Deleted.

  • rendering/RenderEmbeddedObject.h: Marked the class final, made everything

private that was protected, removed functions mentioned above, and virtual
canHaveWidget function.

  • rendering/RenderLayerBacking.cpp:

(WebCore::isRestartedPlugin): Deleted.
(WebCore::RenderLayerBacking::isSimpleContainerCompositingLayer const):
Removed call to isRestartedPlugin.

  • rendering/RenderObject.h: Removed isSnapshottedPlugIn.
  • rendering/RenderSnapshottedPlugIn.cpp: Removed.
  • rendering/RenderSnapshottedPlugIn.h: Removed.
  • rendering/RenderTheme.cpp:

(WebCore::RenderTheme::paint): Removed SnapshottedPluginOverlayPart.

  • rendering/RenderTheme.h: Removed paintSnapshottedPluginOverlay.
  • rendering/RenderThemeMac.h: Ditto.
  • rendering/RenderThemeMac.mm:

(WebCore::RenderThemeMac::paintSnapshottedPluginOverlay): Deleted.

  • testing/Internals.cpp:

(WebCore::Internals::isPluginSnapshotted): Always return false.

Source/WebKit:

  • PluginProcess/mac/PluginProcessMac.mm:

(WebKit::muteAudio): Deleted.
(WebKit::PluginProcess::platformInitializePluginProcess):

  • Scripts/webkit/messages.py: Remove PluginProcessType.
  • Shared/Plugins/PluginProcessAttributes.h: Ditto.
  • Shared/Plugins/PluginProcessCreationParameters.cpp:

(WebKit::PluginProcessCreationParameters::encode const): Ditto.
(WebKit::PluginProcessCreationParameters::decode): Ditto.

  • Shared/Plugins/PluginProcessCreationParameters.h: Ditto.
  • Shared/WebProcessCreationParameters.cpp:

(WebKit::WebProcessCreationParameters::encode const): Remove plugInAutoStartOrigins
and pluginLoadClientPolicies.
(WebKit::WebProcessCreationParameters::decode): Ditto.

  • Shared/WebProcessCreationParameters.h: Ditto.
  • Shared/WebProcessDataStoreParameters.h:

(WebKit::WebProcessDataStoreParameters::encode const): Remove plugInAutoStartOriginHashes.
(WebKit::WebProcessDataStoreParameters::decode): Ditto.

  • Sources.txt: Remove PlugInAutoStartProvider.cpp and WebPlugInClient.cpp.
  • UIProcess/API/C/WKContext.cpp:

(WKContextCopyPlugInAutoStartOriginHashes): Return nullptr.
(WKContextSetPlugInAutoStartOriginHashes): Do nothing.
(WKContextSetPlugInAutoStartOriginsFilteringOutEntriesAddedAfterTime): Ditto.
(WKContextSetPlugInAutoStartOrigins): Ditto.

  • UIProcess/API/C/WKPage.cpp:

(WKPageSetPageNavigationClient): Remove decidePolicyForPluginLoad.

  • UIProcess/API/C/WKPreferences.cpp:

(WKPreferencesSetPlugInSnapshottingEnabled): Do nothing.
(WKPreferencesGetPlugInSnapshottingEnabled): Return false.
(WKPreferencesSetSnapshotAllPlugIns): Do nothing.
(WKPreferencesGetSnapshotAllPlugIns): Return false.
(WKPreferencesSetAutostartOriginPlugInSnapshottingEnabled): Do nothing.
(WKPreferencesGetAutostartOriginPlugInSnapshottingEnabled): Return false.
(WKPreferencesSetPrimaryPlugInSnapshotDetectionEnabled): Do nothing.
(WKPreferencesGetPrimaryPlugInSnapshotDetectionEnabled): Return false.

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

(WKContextIsPlugInUpdateAvailable): Return false.
(WKContextSetPluginLoadClientPolicy): Do nothing.
(WKContextClearPluginClientPolicies): Do nothing.

  • UIProcess/API/Cocoa/WKPreferences.mm:

(-[WKPreferences _setPlugInSnapshottingEnabled:]): Do nothing.
(-[WKPreferences _plugInSnapshottingEnabled]): Return NO.

  • UIProcess/API/Cocoa/WKProcessPool.mm:

(toPluginLoadClientPoliciesHashMap): Deleted.
(policiesHashMapToDictionary): Deleted.
(-[WKProcessPool _resetPluginLoadClientPolicies:]): Do nothing.
(-[WKProcessPool _pluginLoadClientPolicies]): Return an empty dictionary.

  • UIProcess/Cocoa/NavigationState.h: Remove didFailToInitializePlugIn,

didBlockInsecurePluginVersion, decidePolicyForPluginLoad,
webViewDidFailToInitializePlugInWithInfo,
webViewDidBlockInsecurePluginVersionWithInfo, and
webViewDecidePolicyForPluginLoadWithCurrentPolicyPluginInfoCompletionHandler.

  • UIProcess/Cocoa/NavigationState.mm:

(WebKit::NavigationState::setNavigationDelegate): Updated for abvoe removals.
(WebKit::NavigationState::NavigationClient::didFailToInitializePlugIn): Deleted.
(WebKit::NavigationState::NavigationClient::didBlockInsecurePluginVersion): Deleted.
(WebKit::pluginModuleLoadPolicy): Deleted.
(WebKit::wkPluginModuleLoadPolicy): Deleted.
(WebKit::NavigationState::NavigationClient::decidePolicyForPluginLoad): Deleted.

  • UIProcess/Plugins/PlugInAutoStartProvider.cpp: Removed.
  • UIProcess/Plugins/PlugInAutoStartProvider.h: Removed.
  • UIProcess/Plugins/PluginProcessManager.cpp:

(WebKit::PluginProcessManager::pluginProcessToken): Removed the
pluginProcessType argument.
(WebKit::PluginProcessManager::fetchWebsiteData): Ditto.
(WebKit::PluginProcessManager::deleteWebsiteData): Ditto.
(WebKit::PluginProcessManager::deleteWebsiteDataForHostNames): Ditto.

  • UIProcess/Plugins/PluginProcessManager.h: Ditto.
  • UIProcess/Plugins/PluginProcessProxy.cpp:

(WebKit::PluginProcessProxy::didFinishLaunching): Removed the code to
handle PluginProcessType::Snapshot.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::findPlugin): Removed the processType argument.

  • UIProcess/WebPageProxy.h: Ditto.
  • UIProcess/WebPageProxy.messages.in: Ditto.
  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::webProcessDataStoreParameters): Removed
plugInAutoStartOriginHashes.
(WebKit::WebProcessPool::initializeNewWebProcess): Removed
plugInAutoStartOrigins and pluginLoadClientPolicies.
(WebKit::WebProcessPool::plugInAutoStartOriginHashes const): Deleted.
(WebKit::WebProcessPool::setPlugInAutoStartOriginHashes): Deleted.
(WebKit::WebProcessPool::setPlugInAutoStartOrigins): Deleted.
(WebKit::WebProcessPool::setPlugInAutoStartOriginsFilteringOutEntriesAddedAfterTime): Deleted.
(WebKit::WebProcessPool::setPluginLoadClientPolicy): Deleted.
(WebKit::WebProcessPool::resetPluginLoadClientPolicies): Deleted.
(WebKit::WebProcessPool::clearPluginClientPolicies): Deleted.

  • UIProcess/WebProcessPool.h: Removed setPluginLoadClientPolicy,

resetPluginLoadClientPolicies, clearPluginClientPolicies,
pluginLoadClientPolicies, plugInAutoStartOriginHashes,
setPlugInAutoStartOriginHashes, setPlugInAutoStartOrigins,
setPlugInAutoStartOriginsFilteringOutEntriesAddedAfterTime,
plugInAutoStartProvider, m_plugInAutoStartProvider, and
m_pluginLoadClientPolicies.

  • UIProcess/WebProcessProxy.cpp:

(WebKit::WebProcessProxy::addPlugInAutoStartOriginHash): Deleted.
(WebKit::WebProcessProxy::plugInDidReceiveUserInteraction): Deleted.

  • UIProcess/WebProcessProxy.h: Ditto.
  • UIProcess/WebProcessProxy.messages.in: Ditto.
  • WebKit.xcodeproj/project.pbxproj: Removed PlugInAutoStartProvider.cpp/h

and WebPlugInClient.cpp/h.

  • WebProcess/InjectedBundle/InjectedBundlePageUIClient.h:

Removed include of RenderSnapshottedPlugIn.h.

  • WebProcess/Plugins/Netscape/mac/PluginProxyMac.mm:

(WebKit::PluginProxy::pluginLayer): Removed code to handle
m_isRestartedProcess.

  • WebProcess/Plugins/PDF/PDFPlugin.h: Removed shouldAlwaysAutoStart.
  • WebProcess/Plugins/Plugin.h: Ditto.
  • WebProcess/Plugins/PluginProxy.cpp:

(WebKit::PluginProxy::create): Removed isRestartedProcess argument.
(WebKit::PluginProxy::PluginProxy): Ditto. Also moved initialization
to the class definition.

  • WebProcess/Plugins/PluginProxy.h: Updated for the above changes.
  • WebProcess/Plugins/PluginView.cpp:

(WebKit::PluginView::PluginView): Removed m_pluginSnapshotTimer.
(WebKit::PluginView::recreateAndInitialize): Removed code to manage
m_pluginSnapshotTimer.
(WebKit::PluginView::initializePlugin): Removed code to set
m_didPlugInStartOffScreen.
(WebKit::PluginView::didInitializePlugin): Removed code to handle
restarting plug-ins.
(WebKit::PluginView::paint): Ditto.
(WebKit::PluginView::handleEvent): Removed calls to
pluginDidReceiveUserInteraction.
(WebKit::PluginView::shouldNotAddLayer const): Return false.
(WebKit::PluginView::invalidateRect): Removed code to handle
restarting plug-ins.
(WebKit::PluginView::isAcceleratedCompositingEnabled): Removed
some Flash-specific code.
(WebKit::isAlmostSolidColor): Deleted.
(WebKit::PluginView::pluginSnapshotTimerFired): Deleted.
(WebKit::PluginView::beginSnapshottingRunningPlugin): Deleted.
(WebKit::PluginView::shouldAlwaysAutoStart const): Deleted.
(WebKit::PluginView::pluginDidReceiveUserInteraction): Deleted.

  • WebProcess/Plugins/PluginView.h: Removed pluginSnapshotTimerFired,

pluginDidReceiveUserInteraction, shouldAlwaysAutoStart,
beginSnapshottingRunningPlugin, m_didPlugInStartOffScreen,
m_pluginSnapshotTimer, m_countSnapshotRetries, m_didReceiveUserInteraction.

  • WebProcess/Plugins/WebPluginInfoProvider.cpp:

(WebKit::WebPluginInfoProvider::setPluginLoadClientPolicy): Deleted.
(WebKit::WebPluginInfoProvider::clearPluginClientPolicies): Deleted.
(WebKit::WebPluginInfoProvider::populatePluginCache): Do not call
pluginLoadClientPolicyForHost.
(WebKit::WebPluginInfoProvider::pluginLoadClientPolicyForHost const): Deleted.
(WebKit::WebPluginInfoProvider::longestMatchedWildcardHostForHost const): Deleted.
(WebKit::WebPluginInfoProvider::replaceHostWithMatchedWildcardHost const): Deleted.

  • WebProcess/Plugins/WebPluginInfoProvider.h: Removed setPluginLoadClientPolicy,

clearPluginClientPolicies, pluginLoadClientPolicyForHost,
longestMatchedWildcardHostForHost, replaceHostWithMatchedWildcardHost,
PluginLoadClientPoliciesByBundleVersion, PluginPolicyMapsByIdentifier, and
m_hostsToPluginIdentifierData.

  • WebProcess/WebCoreSupport/WebPlugInClient.cpp: Removed.
  • WebProcess/WebCoreSupport/WebPlugInClient.h: Removed.
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::WebPage): Removed code to initialize
m_determinePrimarySnapshottedPlugInTimer, plugInClient, and processType.
(WebKit::WebPage::createPlugin): Removed isRestartedProcess.
(WebKit::WebPage::close): Removed m_determinePrimarySnapshottedPlugInTimer code.
(WebKit::WebPage::addPluginView): Ditto.
(WebKit::WebPage::removePluginView): Ditto.
(WebKit::WebPage::canPluginHandleResponse): Removed plug-in process type.
(WebKit::WebPage::didCommitLoad): Removed call to resetPrimarySnapshottedPlugIn.
(WebKit::WebPage::didFinishLoad): Removed m_determinePrimarySnapshottedPlugInTimer
code.
(WebKit::WebPage::determinePrimarySnapshottedPlugInTimerFired): Deleted.
(WebKit::WebPage::determinePrimarySnapshottedPlugIn): Deleted.
(WebKit::WebPage::resetPrimarySnapshottedPlugIn): Deleted.
(WebKit::WebPage::matchesPrimaryPlugIn const): Deleted.
(WebKit::WebPage::plugInIntersectsSearchRect): Deleted.
(WebKit::WebPage::plugInIsPrimarySize): Deleted.

  • WebProcess/WebPage/WebPage.h: Removed determinePrimarySnapshottedPlugIn,

determinePrimarySnapshottedPlugInTimerFired, resetPrimarySnapshottedPlugIn,
matchesPrimaryPlugIn, plugInIntersectsSearchRect, plugInIsPrimarySize,
m_readyToFindPrimarySnapshottedPlugin, m_didFindPrimarySnapshottedPlugin,
m_numberOfPrimarySnapshotDetectionAttempts, m_primaryPlugInPageOrigin,
m_primaryPlugInOrigin, m_primaryPlugInMimeType, and
m_determinePrimarySnapshottedPlugInTimer.

  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::initializeWebProcess): Removed code to set
m_plugInAutoStartOrigins and call to resetPluginLoadClientPolicies.
(WebKit::WebProcess::setWebsiteDataStoreParameters): Removed call
to resetPlugInAutoStartOriginHashes.
(WebKit::addCaseFoldedCharacters): Deleted.
(WebKit::hashForPlugInOrigin): Deleted.
(WebKit::WebProcess::isPlugInAutoStartOriginHash): Deleted.
(WebKit::WebProcess::shouldPlugInAutoStartFromOrigin): Deleted.
(WebKit::WebProcess::plugInDidStartFromOrigin): Deleted.
(WebKit::WebProcess::didAddPlugInAutoStartOriginHash): Deleted.
(WebKit::WebProcess::resetPlugInAutoStartOriginHashes): Deleted.
(WebKit::WebProcess::plugInDidReceiveUserInteraction): Deleted.
(WebKit::WebProcess::setPluginLoadClientPolicy): Deleted.
(WebKit::WebProcess::resetPluginLoadClientPolicies): Deleted.
(WebKit::WebProcess::clearPluginClientPolicies): Deleted.

  • WebProcess/WebProcess.h: Removed shouldPlugInAutoStartFromOrigin,

plugInDidStartFromOrigin, plugInDidReceiveUserInteraction,
setPluginLoadClientPolicy, resetPluginLoadClientPolicies,
clearPluginClientPolicies, isPlugInAutoStartOriginHash,
didAddPlugInAutoStartOriginHash, resetPlugInAutoStartOriginHashes,
m_plugInAutoStartOriginHashes, and m_plugInAutoStartOrigins.

  • WebProcess/WebProcess.messages.in: Removed

DidAddPlugInAutoStartOriginHash, ResetPlugInAutoStartOriginHashes,
SetPluginLoadClientPolicy, ResetPluginLoadClientPolicies, and
ClearPluginClientPolicies.

Source/WebKitLegacy/mac:

  • WebView/WebPreferences.mm:

(-[WebPreferences plugInSnapshottingEnabled]): Return NO.
(-[WebPreferences setPlugInSnapshottingEnabled:]): Do nothing.

Source/WTF:

  • Scripts/Preferences/WebPreferences.yaml: Removed

AutostartOriginPlugInSnapshottingEnabled, PlugInSnapshottingEnabled,
PrimaryPlugInSnapshotDetectionEnabled, and SnapshotAllPlugIns.

Tools:

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: Removed

PluginLoadClientPolicies.mm.

  • TestWebKitAPI/Tests/WebKitCocoa/PluginLoadClientPolicies.mm: Removed.

This tested a feature that is now removed.

LayoutTests:

  • http/tests/plugins/plugin-allow-then-reload-expected.txt: Removed.
  • http/tests/plugins/plugin-allow-then-reload.html: Removed.

This was testing a behavior that's no longer supported, blocking a plug-in so
completely that it doesn't show up in the plug-in list.

  • platform/gtk/imported/w3c/web-platform-tests/css/css-ui/appearance-cssom-001-expected.txt:
  • platform/ios-wk2/imported/w3c/web-platform-tests/css/css-ui/appearance-cssom-001-expected.txt:
  • platform/wpe/imported/w3c/web-platform-tests/css/css-ui/appearance-cssom-001-expected.txt:

Updated for progression.

  • platform/mac-wk1/TestExpectations: Removed snapshotting expectations.
  • platform/mac-wk2/TestExpectations: Ditto.
  • platform/win/TestExpectations: Ditto.
  • platform/wincairo/TestExpectations: Ditto.
  • platform/mac-wk2/plugins/snapshotting: Removed.
  • plugins/snapshotting: Removed.
9:46 AM Changeset in webkit [269784] by weinig@apple.com
  • 68 edits in trunk

Cleanup InternalSettings
https://bugs.webkit.org/show_bug.cgi?id=218881

Reviewed by Darin Adler.

Source/WebCore:

Cleanup InternalSettings by removing all the functions that duplicated functionality
already implemented by InternalSettingsGenerated, sorting the remaining functions by
setting class, and replacing string parameters with proper IDL enums.

  • testing/InternalSettings.cpp:
  • testing/InternalSettings.h:
  • testing/InternalSettings.idl:

Remove duplicate functions and add enums for EditingBehavior, PDFImageCachingPolicy,
StorageBlockingPolicy, SystemLayoutDirection, TrackKind, and UserInterfaceDirectionPolicy.
Most of these map directly to existing WebCore enums (and FontLoadTimingOverride was easily
updated to match the WebCore enum), but new enums were needed for EditingBehavior, PDFImageCachingPolicy
and StorageBlockingPolicy to keep existing tests working. The UserInterfaceDirectionPolicy enum
is different than what the tests expect (tests used "View" rather then "System") but were updated
to match.

  • testing/Internals.cpp:

(WebCore::Internals::Internals):
(WebCore::Internals::setMediaCaptureRequiresSecureConnection): Deleted.

  • testing/Internals.h:

Remove now unused function setMediaCaptureRequiresSecureConnection. This should
be done by the test runner or individual tests as needed.

  • testing/js/WebCoreTestSupport.cpp:

(WebCoreTestSupport::setAllowsAnySSLCertificate):
Switch to calling DeprecatedGlobalSettings directly rather than hopping
through InternalSettings. This allows us to remove the InternalSettings
function.

LayoutTests:

Update tests to work with update InternalSettings related enum values.

  • Platforms passed to internals.settings.setEditingBehavior now must be all lowercase.
  • The value "View" has been renamed to "System" for internals.settings.setUserInterfaceDirectionPolicy
  • editing/mac/selection/double-click-and-drag-over-anchor-to-select.html:
  • editing/selection/shift-click-includes-existing-selection.html:
  • editing/selection/user-select-all-with-shift-expected.txt:
  • editing/selection/user-select-all-with-shift.html:
  • fast/scrolling/rtl-scrollbars-alternate-body-dir-attr-does-not-update-scrollbar-placement-2-expected.html:
  • fast/scrolling/rtl-scrollbars-alternate-iframe-body-dir-attr-does-not-update-scrollbar-placement-expected.html:
  • fast/scrolling/rtl-scrollbars-animation-property.html:
  • fast/scrolling/rtl-scrollbars-elementFromPoint-static.html:
  • fast/scrolling/rtl-scrollbars-elementFromPoint.html:
  • fast/scrolling/rtl-scrollbars-expected.html:
  • fast/scrolling/rtl-scrollbars-iframe-offset-expected.html:
  • fast/scrolling/rtl-scrollbars-iframe-offset.html:
  • fast/scrolling/rtl-scrollbars-iframe-position-absolute.html:
  • fast/scrolling/rtl-scrollbars-iframe-scrolled-expected.html:
  • fast/scrolling/rtl-scrollbars-iframe-scrolled.html:
  • fast/scrolling/rtl-scrollbars-iframe.html:
  • fast/scrolling/rtl-scrollbars-listbox-scroll-expected.html:
  • fast/scrolling/rtl-scrollbars-listbox-scroll.html:
  • fast/scrolling/rtl-scrollbars-listbox-select-left-expected.html:
  • fast/scrolling/rtl-scrollbars-listbox-select-left.html:
  • fast/scrolling/rtl-scrollbars-listbox-select-right-expected.html:
  • fast/scrolling/rtl-scrollbars-listbox-select-right.html:
  • fast/scrolling/rtl-scrollbars-listbox-simple.html:
  • fast/scrolling/rtl-scrollbars-listbox.html:
  • fast/scrolling/rtl-scrollbars-overflow-contents.html:
  • fast/scrolling/rtl-scrollbars-overflow-dir-rtl.html:
  • fast/scrolling/rtl-scrollbars-overflow-elementFromPoint.html:
  • fast/scrolling/rtl-scrollbars-overflow-expected.html:
  • fast/scrolling/rtl-scrollbars-overflow-padding.html:
  • fast/scrolling/rtl-scrollbars-overflow-position-absolute-expected.html:
  • fast/scrolling/rtl-scrollbars-overflow-position-absolute.html:
  • fast/scrolling/rtl-scrollbars-overflow-simple.html:
  • fast/scrolling/rtl-scrollbars-overflow-text-selection-scrolled.html:
  • fast/scrolling/rtl-scrollbars-overflow.html:
  • fast/scrolling/rtl-scrollbars-overlay-no-push-contents-expected.html:
  • fast/scrolling/rtl-scrollbars-overlay-no-push-contents.html:
  • fast/scrolling/rtl-scrollbars-position-absolute-expected.html:
  • fast/scrolling/rtl-scrollbars-position-absolute.html:
  • fast/scrolling/rtl-scrollbars-position-fixed-expected.html:
  • fast/scrolling/rtl-scrollbars-position-fixed.html:
  • fast/scrolling/rtl-scrollbars-positioning-expected.html:
  • fast/scrolling/rtl-scrollbars-positioning.html:
  • fast/scrolling/rtl-scrollbars-simple.html:
  • fast/scrolling/rtl-scrollbars-sticky-document-2-expected.html:
  • fast/scrolling/rtl-scrollbars-sticky-document-2.html:
  • fast/scrolling/rtl-scrollbars-sticky-document-expected.html:
  • fast/scrolling/rtl-scrollbars-sticky-document.html:
  • fast/scrolling/rtl-scrollbars-sticky-iframe-2-expected.html:
  • fast/scrolling/rtl-scrollbars-sticky-iframe-2.html:
  • fast/scrolling/rtl-scrollbars-sticky-iframe-expected.html:
  • fast/scrolling/rtl-scrollbars-sticky-iframe.html:
  • fast/scrolling/rtl-scrollbars-sticky-overflow-scroll-2-expected.html:
  • fast/scrolling/rtl-scrollbars-sticky-overflow-scroll-2.html:
  • fast/scrolling/rtl-scrollbars-sticky-overflow-scroll-expected.html:
  • fast/scrolling/rtl-scrollbars-sticky-overflow-scroll.html:
  • fast/scrolling/rtl-scrollbars-text-selection-expected.html:
  • fast/scrolling/rtl-scrollbars-text-selection-scrolled-expected.html:
  • fast/scrolling/rtl-scrollbars-text-selection-scrolled.html:
  • fast/scrolling/rtl-scrollbars-text-selection.html:
  • fast/scrolling/rtl-scrollbars.html:
9:44 AM Changeset in webkit [269783] by Adrian Perez de Castro
  • 5 edits in releases/WebKitGTK/webkit-2.30/Source/JavaScriptCore

Merge r265891 - B3 IntRange is incorrect for negative masks
https://bugs.webkit.org/show_bug.cgi?id=215536
<rdar://problem/67130430>

Reviewed by Michael Saboff and Robin Morisset.

In the B3 ReduceStrength phase, we compute rangeForMask as (0, mask). This is correct for
positive values, but incorrect when negative. To fix it, we use (INT_MIN & mask, INT_MAX & mask)
as the range for negative masks.

  • b3/B3ReduceStrength.cpp:
  • b3/testb3.h:
  • b3/testb3_1.cpp:

(run):

  • b3/testb3_5.cpp:

(testCheckSubBitAnd):

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

Remote encoder should set its encoder frame callback to nullptr when being released
https://bugs.webkit.org/show_bug.cgi?id=218906

Reviewed by Eric Carlson.

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

(webrtc::RemoteVideoEncoder::Release):
We need to reset the callback at Release call time so that WebKit will take a lock to set it back to null.
That way, we ensure to not call this callback while libwebrtc expects not to be called.

9:21 AM Changeset in webkit [269781] by aakash_jain@apple.com
  • 2 edits in trunk/Tools

[build.webkit.org] Use python3 to run transfer-to-s3 script
https://bugs.webkit.org/show_bug.cgi?id=218904

Reviewed by Jonathan Bedard.

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

(TransferToS3.start):

8:46 AM Changeset in webkit [269780] by Simon Fraser
  • 15 edits
    8 adds in trunk

Force wheel event listeners on the root to be passive
https://bugs.webkit.org/show_bug.cgi?id=218842
<rdar://problem/71312668>

Reviewed by Chris Dumez.

Following Blink (https://www.chromestatus.com/feature/6662647093133312) force 'wheel' and
'mousewheel' event listeners on root objects (window, document and body) to be passive if
they were not explicitly registered as non-passive.

This behavior is controlled by an experimental feature flag, and a linked-on-or-after check
to avoid changing behavior for apps that embed WebKit until they link against new SDKs.

Source/WebCore:

Tests: fast/events/wheel/wheel-event-listeners-on-body-made-passive.html

fast/events/wheel/wheel-event-listeners-on-document-made-passive.html
fast/events/wheel/wheel-event-listeners-on-window-left-active.html
fast/events/wheel/wheel-event-listeners-on-window-made-passive.html

  • page/Quirks.cpp:

(WebCore::Quirks::shouldMakeEventListenerPassive):

  • platform/cocoa/VersionChecks.h:

Source/WebKit:

  • Shared/WebPreferencesDefaultValues.cpp:

(WebKit::defaultCSSOMViewScrollingAPIEnabled):
(WebKit::defaultPassiveWheelListenersAsDefaultOnDocument):

  • Shared/WebPreferencesDefaultValues.h:

Source/WebKitLegacy/mac:

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

(WebKit::defaultPassiveTouchListenersAsDefaultOnDocument):
(WebKit::defaultPassiveWheelListenersAsDefaultOnDocument):

Source/WTF:

  • Scripts/Preferences/WebPreferencesExperimental.yaml:

LayoutTests:

  • fast/events/wheel/wheel-event-listeners-on-body-made-passive-expected.txt: Added.
  • fast/events/wheel/wheel-event-listeners-on-body-made-passive.html: Added.
  • fast/events/wheel/wheel-event-listeners-on-document-made-passive-expected.txt: Added.
  • fast/events/wheel/wheel-event-listeners-on-document-made-passive.html: Added.
  • fast/events/wheel/wheel-event-listeners-on-window-left-active-expected.txt: Added.
  • fast/events/wheel/wheel-event-listeners-on-window-left-active.html: Added.
  • fast/events/wheel/wheel-event-listeners-on-window-made-passive-expected.txt: Added.
  • fast/events/wheel/wheel-event-listeners-on-window-made-passive.html: Added.
8:08 AM Changeset in webkit [269779] by Antti Koivisto
  • 2 edits in trunk/Source/WebCore

[LFC][Integration] Tighten inline-block coverage conditions
https://bugs.webkit.org/show_bug.cgi?id=218901

Reviewed by Zalan Bujtas.

The current ones allow some non-inline-blocks.

  • layout/integration/LayoutIntegrationCoverage.cpp:

(WebCore::LayoutIntegration::canUseForChild):

8:04 AM Changeset in webkit [269778] by commit-queue@webkit.org
  • 3 edits
    2 adds in trunk

Crash in ReplaceSelectionCommand::moveNodeOutOfAncestor
https://bugs.webkit.org/show_bug.cgi?id=218878

Patch by Julian Gonzalez <julian_a_gonzalez@apple.com> on 2020-11-13
Reviewed by Alex Christensen.

Source/WebCore:

Add a missing null check inside moveNodeOutOfAncestor, as splitTreeToNode()
can return nullptr.

Test: editing/execCommand/crash-deleting-after-inserting-text-horizontal-rule.html

  • editing/ReplaceSelectionCommand.cpp:

(WebCore::ReplaceSelectionCommand::moveNodeOutOfAncestor):

LayoutTests:

Add simple test that selects elements, and using execCommand() inserts text
and a horizontal rule, and performs a deletion.

  • editing/execCommand/crash-deleting-after-inserting-text-horizontal-rule-expected.txt: Added.
  • editing/execCommand/crash-deleting-after-inserting-text-horizontal-rule.html: Added.
8:01 AM Changeset in webkit [269777] by eric.carlson@apple.com
  • 2 edits in trunk/Source/WebKit

Add _STAttributionDisplayName to macOS WebContent Info.plist
https://bugs.webkit.org/show_bug.cgi?id=218900

Reviewed by Youenn Fablet.

  • WebProcess/EntryPoint/Cocoa/XPCService/WebContentService/Info-OSX.plist:
8:00 AM Changeset in webkit [269776] by commit-queue@webkit.org
  • 3 edits
    2 adds in trunk

Null check anchorNode of endingSelection start
https://bugs.webkit.org/show_bug.cgi?id=218492

Patch by Rob Buis <rbuis@igalia.com> on 2020-11-13
Reviewed by Alex Christensen.

Source/WebCore:

Null check anchorNode of endingSelection start.

Test: editing/deleting/delete-contenteditable-crash.html

  • editing/DeleteSelectionCommand.cpp:

(WebCore::DeleteSelectionCommand::mergeParagraphs):

LayoutTests:

Add testcase.

  • editing/deleting/delete-contenteditable-crash-expected.txt: Added.
  • editing/deleting/delete-contenteditable-crash.html: Added.
7:30 AM Changeset in webkit [269775] by Aditya Keerthi
  • 11 edits
    1 add in trunk/Source

[iOS][FCR] Add an internal feature flag to enable the new appearance
https://bugs.webkit.org/show_bug.cgi?id=218873
<rdar://problem/71345270>

Reviewed by Tim Horton.

Source/WebCore:

Add a feature flag for the iOS form control refresh, so that the
feature can be tested.

A new user-agent stylesheet is introduced for the refresh so that
the new styles can be opted in to at runtime. Only styles which
differ from the existing stylesheet will be added to the new one.

  • DerivedSources-input.xcfilelist:
  • DerivedSources.make:
  • WebCore.xcodeproj/project.pbxproj:
  • css/iOSFormControlRefresh.css: Added.
  • style/InspectorCSSOMWrappers.cpp:

(WebCore::Style::InspectorCSSOMWrappers::collectDocumentWrappers):

  • style/UserAgentStyle.cpp:

(WebCore::Style::UserAgentStyle::ensureDefaultStyleSheetsForElement):

  • style/UserAgentStyle.h:

Source/WTF:

Enable the feature at build time on PLATFORM(IOS_FAMILY) and disable
the feature at runtime.

  • Scripts/Preferences/WebPreferencesInternal.yaml:
  • wtf/PlatformEnable.h:
  • wtf/PlatformEnableCocoa.h:
6:32 AM Changeset in webkit [269774] by graouts@webkit.org
  • 6 edits in trunk

Support more properties on ::marker
https://bugs.webkit.org/show_bug.cgi?id=218894
<rdar://problem/71368343>

Reviewed by Antti Koivisto.

LayoutTests/imported/w3c:

Mark some WPT progressions.

  • web-platform-tests/css/css-pseudo/parsing/marker-supported-properties-expected.txt:

Source/WebCore:

In preparation for the support of animations on ::marker and other pseudo-elements, we add support for animation and transition
properties and add more rules to the user-agent stylesheet as defined by https://drafts.csswg.org/css-lists-3/#marker-properties.

  • css/html.css:

(::marker):

  • rendering/RenderListItem.cpp:

(WebCore::RenderListItem::computeMarkerStyle const):

  • style/PropertyCascade.cpp:

(WebCore::Style::isValidMarkerStyleProperty):

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

[LFC][Integration] Add initial bidi support
https://bugs.webkit.org/show_bug.cgi?id=218884

Reviewed by Antti Koivisto.

In this patch, we introduce the Bidi Run and the Iterator and use the BidiResolver to compute
the bidi boundaries.
Currently only single direction content is passed in to the BidiResolver which meas that we always
end up with one and only one Bidi run.

  • layout/integration/LayoutIntegrationInlineContentBuilder.cpp:

(WebCore::LayoutIntegration::Iterator::offset const):
(WebCore::LayoutIntegration::Iterator::currentRun const):
(WebCore::LayoutIntegration::Iterator::runOffset const):
(WebCore::LayoutIntegration::Iterator::operator== const):
(WebCore::LayoutIntegration::Iterator::operator!= const):
(WebCore::LayoutIntegration::Iterator::atEnd const):
(WebCore::LayoutIntegration::Iterator::Iterator):
(WebCore::LayoutIntegration::Iterator::direction const):
(WebCore::LayoutIntegration::Iterator::increment):
(WebCore::LayoutIntegration::BidiRun::start const):
(WebCore::LayoutIntegration::BidiRun::end const):
(WebCore::LayoutIntegration::BidiRun::level const):
(WebCore::LayoutIntegration::BidiRun::next const):
(WebCore::LayoutIntegration::BidiRun::setNext):
(WebCore::LayoutIntegration::BidiRun::takeNext):
(WebCore::LayoutIntegration::BidiRun::BidiRun):
(WebCore::LayoutIntegration::InlineContentBuilder::createDisplayLineRuns const):

5:12 AM Changeset in webkit [269772] by magomez@igalia.com
  • 9 edits in trunk

[GTK][WPE] CSS backdrop overlay corners are not rounded on results.webkit.org
https://bugs.webkit.org/show_bug.cgi?id=215445

Reviewed by Carlos Garcia Campos.

Source/WebCore:

Pass the backdropFiltersRect from CoordinatedGraphicsLayer through Nicosia to TextureMapperLayer. The
latter will use this value to clip when painting the backdrop layer.

Based on a patch created by Carlos Garcia Campos <cgarcia@igalia.com>.

  • platform/graphics/nicosia/NicosiaPlatformLayer.h:

(Nicosia::CompositionLayer::flushState):

  • platform/graphics/texmap/TextureMapperLayer.cpp:

(WebCore::TextureMapperLayer::paintSelfAndChildren):
(WebCore::TextureMapperLayer::setBackdropFiltersRect):

  • platform/graphics/texmap/TextureMapperLayer.h:
  • platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp:

(WebCore::CoordinatedGraphicsLayer::setBackdropFilters):
(WebCore::CoordinatedGraphicsLayer::flushCompositingStateForThisLayerOnly):

Source/WebKit:

Pass the backdropFiltersRect from the state to TextureMapperLayer.

  • Shared/CoordinatedGraphics/CoordinatedGraphicsScene.cpp:

(WebKit::CoordinatedGraphicsScene::updateSceneState):

LayoutTests:

Update expectations for passing tests.

  • platform/glib/TestExpectations:
4:41 AM Changeset in webkit [269771] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit

Remove SecItemShim.dylib from network service link
https://bugs.webkit.org/show_bug.cgi?id=218892

Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2020-11-13
Reviewed by Antti Koivisto.

Fixes a build failure after
https://bugs.webkit.org/show_bug.cgi?id=218862

  • Configurations/NetworkService.xcconfig:
4:18 AM Changeset in webkit [269770] by Alan Bujtas
  • 4 edits in trunk/Source/WebCore

[LFC][Integration] Minor rename and cleanup in InlineContentBuilder
https://bugs.webkit.org/show_bug.cgi?id=218883

Reviewed by Antti Koivisto.

  • layout/integration/LayoutIntegrationInlineContentBuilder.cpp:

(WebCore::LayoutIntegration::InlineContentBuilder::build const):
(WebCore::LayoutIntegration::InlineContentBuilder::createDisplayLineRuns const):
(WebCore::LayoutIntegration::InlineContentBuilder::createDisplayLines const):
(WebCore::LayoutIntegration::InlineContentBuilder::constructDisplayLineRuns const): Deleted.
(WebCore::LayoutIntegration::InlineContentBuilder::constructDisplayLines const): Deleted.

  • layout/integration/LayoutIntegrationInlineContentBuilder.h:
  • layout/integration/LayoutIntegrationLineLayout.cpp:

(WebCore::LayoutIntegration::LineLayout::constructContent):

4:07 AM Changeset in webkit [269769] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[LFC][Integration] Decouple box and text run construction
https://bugs.webkit.org/show_bug.cgi?id=218882

Reviewed by Antti Koivisto.

This is in preparation for adding bidi support where we may need to split a run on bidi boundaries.

  • layout/integration/LayoutIntegrationInlineContentBuilder.cpp:

(WebCore::LayoutIntegration::InlineContentBuilder::constructDisplayLineRuns const):

1:53 AM Changeset in webkit [269768] by commit-queue@webkit.org
  • 12 edits in trunk/Source/WebCore

Remove uses of MakeCurrent from WebGL implementation
https://bugs.webkit.org/show_bug.cgi?id=218178
<rdar://problem/70714561>

Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2020-11-13
Reviewed by Dean Jackson.

Work towards WebGL implementation which uses
GraphicsContextGL abstract base class instead of
GraphicsContextGLOpenGL concrete class.

Move GraphicsContextGLOpenGL::makeContextCurrent() to
private section, as it is an implementation detail of
the class. The function is intended to be called at the
start of all public functions that might call into OpenGL
to ensure that OpenGL uses the right context.

Check all return values of makeCurrentContext(). We
should not call into OpenGL if the context is not current,
as that can lead to corruption, crashes or incorrect results.
Add a compile-time warning if the return value is not used.
Non-EWS compiled flavors of GraphicsContextGLOpenGL are changed
only in best effort manner.

Ensure that all functions actually call the makeCurrentContext()
function before calling into OpenGL. Non-ANGLE flavors of
GraphicsContextGLOpenGL are ensured only in best effort manner.

ANGLE flavor of GraphicsContextGLOpenGL function implementations
should call directly the ANGLE functions instead of calling them
through getExtensions() interface. There is no conditional code
inside and the implementation knows exactly which function to
call in all situations. There is no abstraction between
GraphicsContextGLOpenGL and ExtensionsGL, rather they are
in practice the same object currently, semi-artificially split to
two. This is true of other flavors of GraphicsContextGLOpenGL,
but those are left unchanged in this regard.

No new tests, a refactor.

  • html/canvas/WebGLRenderingContextBase.cpp:

(WebCore::WebGLRenderingContextBase::create):
(WebCore::WebGLRenderingContextBase::initializeNewContext):
(WebCore::WebGLRenderingContextBase::validateElementArraySize):
(WebCore::WebGLRenderingContextBase::validateIndexArrayPrecise):
(WebCore::WebGLRenderingContextBase::validateDrawElements):
(WebCore::WebGLRenderingContextBase::readPixels):
(WebCore::WebGLRenderingContextBase::vertexAttribfvImpl):
(WebCore::WebGLRenderingContextBase::initVertexAttrib0):

  • platform/graphics/angle/ExtensionsGLANGLE.cpp:

(WebCore::ExtensionsGLANGLE::supports):
(WebCore::ExtensionsGLANGLE::ensureEnabled):
(WebCore::ExtensionsGLANGLE::getTranslatedShaderSourceANGLE):
(WebCore::ExtensionsGLANGLE::blitFramebuffer):
(WebCore::ExtensionsGLANGLE::renderbufferStorageMultisample):
(WebCore::ExtensionsGLANGLE::createVertexArrayOES):
(WebCore::ExtensionsGLANGLE::deleteVertexArrayOES):
(WebCore::ExtensionsGLANGLE::isVertexArrayOES):
(WebCore::ExtensionsGLANGLE::bindVertexArrayOES):
(WebCore::ExtensionsGLANGLE::drawBuffersEXT):
(WebCore::ExtensionsGLANGLE::drawArraysInstanced):
(WebCore::ExtensionsGLANGLE::drawElementsInstanced):
(WebCore::ExtensionsGLANGLE::vertexAttribDivisor):
(WebCore::ExtensionsGLANGLE::getBooleanvRobustANGLE):
(WebCore::ExtensionsGLANGLE::getBufferParameterivRobustANGLE):
(WebCore::ExtensionsGLANGLE::getFloatvRobustANGLE):
(WebCore::ExtensionsGLANGLE::getFramebufferAttachmentParameterivRobustANGLE):
(WebCore::ExtensionsGLANGLE::getIntegervRobustANGLE):
(WebCore::ExtensionsGLANGLE::getProgramivRobustANGLE):
(WebCore::ExtensionsGLANGLE::getRenderbufferParameterivRobustANGLE):
(WebCore::ExtensionsGLANGLE::getShaderivRobustANGLE):
(WebCore::ExtensionsGLANGLE::getTexParameterfvRobustANGLE):
(WebCore::ExtensionsGLANGLE::getTexParameterivRobustANGLE):
(WebCore::ExtensionsGLANGLE::getUniformfvRobustANGLE):
(WebCore::ExtensionsGLANGLE::getUniformivRobustANGLE):
(WebCore::ExtensionsGLANGLE::getVertexAttribfvRobustANGLE):
(WebCore::ExtensionsGLANGLE::getVertexAttribivRobustANGLE):
(WebCore::ExtensionsGLANGLE::getVertexAttribPointervRobustANGLE):
(WebCore::ExtensionsGLANGLE::readPixelsRobustANGLE):
(WebCore::ExtensionsGLANGLE::texImage2DRobustANGLE):
(WebCore::ExtensionsGLANGLE::texParameterfvRobustANGLE):
(WebCore::ExtensionsGLANGLE::texParameterivRobustANGLE):
(WebCore::ExtensionsGLANGLE::texSubImage2DRobustANGLE):
(WebCore::ExtensionsGLANGLE::compressedTexImage2DRobustANGLE):
(WebCore::ExtensionsGLANGLE::compressedTexSubImage2DRobustANGLE):
(WebCore::ExtensionsGLANGLE::compressedTexImage3DRobustANGLE):
(WebCore::ExtensionsGLANGLE::compressedTexSubImage3DRobustANGLE):
(WebCore::ExtensionsGLANGLE::texImage3DRobustANGLE):
(WebCore::ExtensionsGLANGLE::texSubImage3DRobustANGLE):
(WebCore::ExtensionsGLANGLE::getQueryivRobustANGLE):
(WebCore::ExtensionsGLANGLE::getQueryObjectuivRobustANGLE):
(WebCore::ExtensionsGLANGLE::getBufferPointervRobustANGLE):
(WebCore::ExtensionsGLANGLE::getIntegeri_vRobustANGLE):
(WebCore::ExtensionsGLANGLE::getInternalformativRobustANGLE):
(WebCore::ExtensionsGLANGLE::getVertexAttribIivRobustANGLE):
(WebCore::ExtensionsGLANGLE::getVertexAttribIuivRobustANGLE):
(WebCore::ExtensionsGLANGLE::getUniformuivRobustANGLE):
(WebCore::ExtensionsGLANGLE::getActiveUniformBlockivRobustANGLE):
(WebCore::ExtensionsGLANGLE::getInteger64vRobustANGLE):
(WebCore::ExtensionsGLANGLE::getInteger64i_vRobustANGLE):
(WebCore::ExtensionsGLANGLE::getBufferParameteri64vRobustANGLE):
(WebCore::ExtensionsGLANGLE::samplerParameterivRobustANGLE):
(WebCore::ExtensionsGLANGLE::samplerParameterfvRobustANGLE):
(WebCore::ExtensionsGLANGLE::getSamplerParameterivRobustANGLE):
(WebCore::ExtensionsGLANGLE::getSamplerParameterfvRobustANGLE):
(WebCore::ExtensionsGLANGLE::getFramebufferParameterivRobustANGLE):
(WebCore::ExtensionsGLANGLE::getProgramInterfaceivRobustANGLE):
(WebCore::ExtensionsGLANGLE::getBooleani_vRobustANGLE):
(WebCore::ExtensionsGLANGLE::getMultisamplefvRobustANGLE):
(WebCore::ExtensionsGLANGLE::getTexLevelParameterivRobustANGLE):
(WebCore::ExtensionsGLANGLE::getTexLevelParameterfvRobustANGLE):
(WebCore::ExtensionsGLANGLE::getPointervRobustANGLERobustANGLE):
(WebCore::ExtensionsGLANGLE::readnPixelsRobustANGLE):
(WebCore::ExtensionsGLANGLE::getnUniformfvRobustANGLE):
(WebCore::ExtensionsGLANGLE::getnUniformivRobustANGLE):
(WebCore::ExtensionsGLANGLE::getnUniformuivRobustANGLE):
(WebCore::ExtensionsGLANGLE::texParameterIivRobustANGLE):
(WebCore::ExtensionsGLANGLE::texParameterIuivRobustANGLE):
(WebCore::ExtensionsGLANGLE::getTexParameterIivRobustANGLE):
(WebCore::ExtensionsGLANGLE::getTexParameterIuivRobustANGLE):
(WebCore::ExtensionsGLANGLE::samplerParameterIivRobustANGLE):
(WebCore::ExtensionsGLANGLE::samplerParameterIuivRobustANGLE):
(WebCore::ExtensionsGLANGLE::getSamplerParameterIivRobustANGLE):
(WebCore::ExtensionsGLANGLE::getSamplerParameterIuivRobustANGLE):
(WebCore::ExtensionsGLANGLE::getQueryObjectivRobustANGLE):
(WebCore::ExtensionsGLANGLE::getQueryObjecti64vRobustANGLE):
(WebCore::ExtensionsGLANGLE::getQueryObjectui64vRobustANGLE):

  • platform/graphics/angle/GraphicsContextGLANGLE.cpp:

(WebCore::GraphicsContextGLOpenGL::reshapeFBOs):
(WebCore::GraphicsContextGLOpenGL::renderbufferStorage):
(WebCore::GraphicsContextGLOpenGL::getIntegerv):
(WebCore::GraphicsContextGLOpenGL::getIntegeri_v):
(WebCore::GraphicsContextGLOpenGL::getShaderPrecisionFormat):
(WebCore::GraphicsContextGLOpenGL::depthRange):
(WebCore::GraphicsContextGLOpenGL::clearDepth):
(WebCore::GraphicsContextGLOpenGL::readPixels):
(WebCore::GraphicsContextGLOpenGL::prepareTexture):
(WebCore::GraphicsContextGLOpenGL::readRenderingResults):
(WebCore::GraphicsContextGLOpenGL::reshape):
(WebCore::GraphicsContextGLOpenGL::activeTexture):
(WebCore::GraphicsContextGLOpenGL::attachShader):
(WebCore::GraphicsContextGLOpenGL::bindAttribLocation):
(WebCore::GraphicsContextGLOpenGL::bindBuffer):
(WebCore::GraphicsContextGLOpenGL::bindFramebuffer):
(WebCore::GraphicsContextGLOpenGL::bindRenderbuffer):
(WebCore::GraphicsContextGLOpenGL::bindTexture):
(WebCore::GraphicsContextGLOpenGL::blendColor):
(WebCore::GraphicsContextGLOpenGL::blendEquation):
(WebCore::GraphicsContextGLOpenGL::blendEquationSeparate):
(WebCore::GraphicsContextGLOpenGL::blendFunc):
(WebCore::GraphicsContextGLOpenGL::blendFuncSeparate):
(WebCore::GraphicsContextGLOpenGL::bufferData):
(WebCore::GraphicsContextGLOpenGL::bufferSubData):
(WebCore::GraphicsContextGLOpenGL::mapBufferRange):
(WebCore::GraphicsContextGLOpenGL::unmapBuffer):
(WebCore::GraphicsContextGLOpenGL::copyBufferSubData):
(WebCore::GraphicsContextGLOpenGL::getInternalformativ):
(WebCore::GraphicsContextGLOpenGL::renderbufferStorageMultisample):
(WebCore::GraphicsContextGLOpenGL::texStorage2D):
(WebCore::GraphicsContextGLOpenGL::texStorage3D):
(WebCore::GraphicsContextGLOpenGL::getActiveUniforms):
(WebCore::GraphicsContextGLOpenGL::checkFramebufferStatus):
(WebCore::GraphicsContextGLOpenGL::clearColor):
(WebCore::GraphicsContextGLOpenGL::clear):
(WebCore::GraphicsContextGLOpenGL::clearStencil):
(WebCore::GraphicsContextGLOpenGL::colorMask):
(WebCore::GraphicsContextGLOpenGL::compileShader):
(WebCore::GraphicsContextGLOpenGL::compileShaderDirect):
(WebCore::GraphicsContextGLOpenGL::copyTexImage2D):
(WebCore::GraphicsContextGLOpenGL::copyTexSubImage2D):
(WebCore::GraphicsContextGLOpenGL::cullFace):
(WebCore::GraphicsContextGLOpenGL::depthFunc):
(WebCore::GraphicsContextGLOpenGL::depthMask):
(WebCore::GraphicsContextGLOpenGL::detachShader):
(WebCore::GraphicsContextGLOpenGL::disable):
(WebCore::GraphicsContextGLOpenGL::disableVertexAttribArray):
(WebCore::GraphicsContextGLOpenGL::drawArrays):
(WebCore::GraphicsContextGLOpenGL::drawElements):
(WebCore::GraphicsContextGLOpenGL::enable):
(WebCore::GraphicsContextGLOpenGL::enableVertexAttribArray):
(WebCore::GraphicsContextGLOpenGL::finish):
(WebCore::GraphicsContextGLOpenGL::flush):
(WebCore::GraphicsContextGLOpenGL::framebufferRenderbuffer):
(WebCore::GraphicsContextGLOpenGL::framebufferTexture2D):
(WebCore::GraphicsContextGLOpenGL::frontFace):
(WebCore::GraphicsContextGLOpenGL::generateMipmap):
(WebCore::GraphicsContextGLOpenGL::getActiveAttribImpl):
(WebCore::GraphicsContextGLOpenGL::getActiveUniformImpl):
(WebCore::GraphicsContextGLOpenGL::getAttachedShaders):
(WebCore::GraphicsContextGLOpenGL::getAttribLocation):
(WebCore::GraphicsContextGLOpenGL::moveErrorsToSyntheticErrorList):
(WebCore::GraphicsContextGLOpenGL::getError):
(WebCore::GraphicsContextGLOpenGL::getString):
(WebCore::GraphicsContextGLOpenGL::hint):
(WebCore::GraphicsContextGLOpenGL::isBuffer):
(WebCore::GraphicsContextGLOpenGL::isEnabled):
(WebCore::GraphicsContextGLOpenGL::isFramebuffer):
(WebCore::GraphicsContextGLOpenGL::isProgram):
(WebCore::GraphicsContextGLOpenGL::isRenderbuffer):
(WebCore::GraphicsContextGLOpenGL::isShader):
(WebCore::GraphicsContextGLOpenGL::isTexture):
(WebCore::GraphicsContextGLOpenGL::lineWidth):
(WebCore::GraphicsContextGLOpenGL::linkProgram):
(WebCore::GraphicsContextGLOpenGL::pixelStorei):
(WebCore::GraphicsContextGLOpenGL::polygonOffset):
(WebCore::GraphicsContextGLOpenGL::sampleCoverage):
(WebCore::GraphicsContextGLOpenGL::scissor):
(WebCore::GraphicsContextGLOpenGL::shaderSource):
(WebCore::GraphicsContextGLOpenGL::stencilFunc):
(WebCore::GraphicsContextGLOpenGL::stencilFuncSeparate):
(WebCore::GraphicsContextGLOpenGL::stencilMask):
(WebCore::GraphicsContextGLOpenGL::stencilMaskSeparate):
(WebCore::GraphicsContextGLOpenGL::stencilOp):
(WebCore::GraphicsContextGLOpenGL::stencilOpSeparate):
(WebCore::GraphicsContextGLOpenGL::texParameterf):
(WebCore::GraphicsContextGLOpenGL::texParameteri):
(WebCore::GraphicsContextGLOpenGL::uniform1f):
(WebCore::GraphicsContextGLOpenGL::uniform1fv):
(WebCore::GraphicsContextGLOpenGL::uniform2f):
(WebCore::GraphicsContextGLOpenGL::uniform2fv):
(WebCore::GraphicsContextGLOpenGL::uniform3f):
(WebCore::GraphicsContextGLOpenGL::uniform3fv):
(WebCore::GraphicsContextGLOpenGL::uniform4f):
(WebCore::GraphicsContextGLOpenGL::uniform4fv):
(WebCore::GraphicsContextGLOpenGL::uniform1i):
(WebCore::GraphicsContextGLOpenGL::uniform1iv):
(WebCore::GraphicsContextGLOpenGL::uniform2i):
(WebCore::GraphicsContextGLOpenGL::uniform2iv):
(WebCore::GraphicsContextGLOpenGL::uniform3i):
(WebCore::GraphicsContextGLOpenGL::uniform3iv):
(WebCore::GraphicsContextGLOpenGL::uniform4i):
(WebCore::GraphicsContextGLOpenGL::uniform4iv):
(WebCore::GraphicsContextGLOpenGL::uniformMatrix2fv):
(WebCore::GraphicsContextGLOpenGL::uniformMatrix3fv):
(WebCore::GraphicsContextGLOpenGL::uniformMatrix4fv):
(WebCore::GraphicsContextGLOpenGL::useProgram):
(WebCore::GraphicsContextGLOpenGL::validateProgram):
(WebCore::GraphicsContextGLOpenGL::vertexAttrib1f):
(WebCore::GraphicsContextGLOpenGL::vertexAttrib1fv):
(WebCore::GraphicsContextGLOpenGL::vertexAttrib2f):
(WebCore::GraphicsContextGLOpenGL::vertexAttrib2fv):
(WebCore::GraphicsContextGLOpenGL::vertexAttrib3f):
(WebCore::GraphicsContextGLOpenGL::vertexAttrib3fv):
(WebCore::GraphicsContextGLOpenGL::vertexAttrib4f):
(WebCore::GraphicsContextGLOpenGL::vertexAttrib4fv):
(WebCore::GraphicsContextGLOpenGL::vertexAttribPointer):
(WebCore::GraphicsContextGLOpenGL::vertexAttribIPointer):
(WebCore::GraphicsContextGLOpenGL::viewport):
(WebCore::GraphicsContextGLOpenGL::createVertexArray):
(WebCore::GraphicsContextGLOpenGL::deleteVertexArray):
(WebCore::GraphicsContextGLOpenGL::isVertexArray):
(WebCore::GraphicsContextGLOpenGL::bindVertexArray):
(WebCore::GraphicsContextGLOpenGL::getBooleanv):
(WebCore::GraphicsContextGLOpenGL::getBufferParameteriv):
(WebCore::GraphicsContextGLOpenGL::getFloatv):
(WebCore::GraphicsContextGLOpenGL::getInteger64v):
(WebCore::GraphicsContextGLOpenGL::getInteger64i_v):
(WebCore::GraphicsContextGLOpenGL::getFramebufferAttachmentParameteriv):
(WebCore::GraphicsContextGLOpenGL::getProgramiv):
(WebCore::GraphicsContextGLOpenGL::getProgramInfoLog):
(WebCore::GraphicsContextGLOpenGL::getRenderbufferParameteriv):
(WebCore::GraphicsContextGLOpenGL::getShaderiv):
(WebCore::GraphicsContextGLOpenGL::getShaderInfoLog):
(WebCore::GraphicsContextGLOpenGL::getTexParameterfv):
(WebCore::GraphicsContextGLOpenGL::getTexParameteriv):
(WebCore::GraphicsContextGLOpenGL::getUniformfv):
(WebCore::GraphicsContextGLOpenGL::getUniformiv):
(WebCore::GraphicsContextGLOpenGL::getUniformuiv):
(WebCore::GraphicsContextGLOpenGL::getUniformLocation):
(WebCore::GraphicsContextGLOpenGL::getVertexAttribfv):
(WebCore::GraphicsContextGLOpenGL::getVertexAttribiv):
(WebCore::GraphicsContextGLOpenGL::getVertexAttribOffset):
(WebCore::GraphicsContextGLOpenGL::texSubImage2D):
(WebCore::GraphicsContextGLOpenGL::compressedTexImage2D):
(WebCore::GraphicsContextGLOpenGL::compressedTexSubImage2D):
(WebCore::GraphicsContextGLOpenGL::createBuffer):
(WebCore::GraphicsContextGLOpenGL::createFramebuffer):
(WebCore::GraphicsContextGLOpenGL::createProgram):
(WebCore::GraphicsContextGLOpenGL::createRenderbuffer):
(WebCore::GraphicsContextGLOpenGL::createShader):
(WebCore::GraphicsContextGLOpenGL::createTexture):
(WebCore::GraphicsContextGLOpenGL::deleteBuffer):
(WebCore::GraphicsContextGLOpenGL::deleteFramebuffer):
(WebCore::GraphicsContextGLOpenGL::deleteProgram):
(WebCore::GraphicsContextGLOpenGL::deleteRenderbuffer):
(WebCore::GraphicsContextGLOpenGL::deleteShader):
(WebCore::GraphicsContextGLOpenGL::deleteTexture):
(WebCore::GraphicsContextGLOpenGL::texImage2DDirect):
(WebCore::GraphicsContextGLOpenGL::drawArraysInstanced):
(WebCore::GraphicsContextGLOpenGL::drawElementsInstanced):
(WebCore::GraphicsContextGLOpenGL::vertexAttribDivisor):
(WebCore::GraphicsContextGLOpenGL::getUniformBlockIndex):
(WebCore::GraphicsContextGLOpenGL::getActiveUniformBlockName):
(WebCore::GraphicsContextGLOpenGL::uniformBlockBinding):
(WebCore::GraphicsContextGLOpenGL::createQuery):
(WebCore::GraphicsContextGLOpenGL::beginQuery):
(WebCore::GraphicsContextGLOpenGL::endQuery):
(WebCore::GraphicsContextGLOpenGL::getQueryObjectuiv):
(WebCore::GraphicsContextGLOpenGL::createTransformFeedback):
(WebCore::GraphicsContextGLOpenGL::deleteTransformFeedback):
(WebCore::GraphicsContextGLOpenGL::isTransformFeedback):
(WebCore::GraphicsContextGLOpenGL::bindTransformFeedback):
(WebCore::GraphicsContextGLOpenGL::beginTransformFeedback):
(WebCore::GraphicsContextGLOpenGL::endTransformFeedback):
(WebCore::GraphicsContextGLOpenGL::transformFeedbackVaryings):
(WebCore::GraphicsContextGLOpenGL::getTransformFeedbackVarying):
(WebCore::GraphicsContextGLOpenGL::bindBufferBase):
(WebCore::GraphicsContextGLOpenGL::blitFramebuffer):
(WebCore::GraphicsContextGLOpenGL::framebufferTextureLayer):
(WebCore::GraphicsContextGLOpenGL::invalidateFramebuffer):
(WebCore::GraphicsContextGLOpenGL::invalidateSubFramebuffer):
(WebCore::GraphicsContextGLOpenGL::readBuffer):
(WebCore::GraphicsContextGLOpenGL::copyTexSubImage3D):
(WebCore::GraphicsContextGLOpenGL::getFragDataLocation):
(WebCore::GraphicsContextGLOpenGL::uniform1ui):
(WebCore::GraphicsContextGLOpenGL::uniform2ui):
(WebCore::GraphicsContextGLOpenGL::uniform3ui):
(WebCore::GraphicsContextGLOpenGL::uniform4ui):
(WebCore::GraphicsContextGLOpenGL::uniform1uiv):
(WebCore::GraphicsContextGLOpenGL::uniform2uiv):
(WebCore::GraphicsContextGLOpenGL::uniform3uiv):
(WebCore::GraphicsContextGLOpenGL::uniform4uiv):
(WebCore::GraphicsContextGLOpenGL::uniformMatrix2x3fv):
(WebCore::GraphicsContextGLOpenGL::uniformMatrix3x2fv):
(WebCore::GraphicsContextGLOpenGL::uniformMatrix2x4fv):
(WebCore::GraphicsContextGLOpenGL::uniformMatrix4x2fv):
(WebCore::GraphicsContextGLOpenGL::uniformMatrix3x4fv):
(WebCore::GraphicsContextGLOpenGL::uniformMatrix4x3fv):
(WebCore::GraphicsContextGLOpenGL::vertexAttribI4i):
(WebCore::GraphicsContextGLOpenGL::vertexAttribI4iv):
(WebCore::GraphicsContextGLOpenGL::vertexAttribI4ui):
(WebCore::GraphicsContextGLOpenGL::vertexAttribI4uiv):
(WebCore::GraphicsContextGLOpenGL::drawRangeElements):
(WebCore::GraphicsContextGLOpenGL::drawBuffers):
(WebCore::GraphicsContextGLOpenGL::clearBufferiv):
(WebCore::GraphicsContextGLOpenGL::clearBufferuiv):
(WebCore::GraphicsContextGLOpenGL::clearBufferfv):
(WebCore::GraphicsContextGLOpenGL::clearBufferfi):
(WebCore::GraphicsContextGLOpenGL::deleteQuery):
(WebCore::GraphicsContextGLOpenGL::isQuery):
(WebCore::GraphicsContextGLOpenGL::getQuery):
(WebCore::GraphicsContextGLOpenGL::createSampler):
(WebCore::GraphicsContextGLOpenGL::deleteSampler):
(WebCore::GraphicsContextGLOpenGL::isSampler):
(WebCore::GraphicsContextGLOpenGL::bindSampler):
(WebCore::GraphicsContextGLOpenGL::samplerParameteri):
(WebCore::GraphicsContextGLOpenGL::samplerParameterf):
(WebCore::GraphicsContextGLOpenGL::getSamplerParameterfv):
(WebCore::GraphicsContextGLOpenGL::getSamplerParameteriv):
(WebCore::GraphicsContextGLOpenGL::fenceSync):
(WebCore::GraphicsContextGLOpenGL::isSync):
(WebCore::GraphicsContextGLOpenGL::deleteSync):
(WebCore::GraphicsContextGLOpenGL::clientWaitSync):
(WebCore::GraphicsContextGLOpenGL::waitSync):
(WebCore::GraphicsContextGLOpenGL::getSynciv):
(WebCore::GraphicsContextGLOpenGL::pauseTransformFeedback):
(WebCore::GraphicsContextGLOpenGL::resumeTransformFeedback):
(WebCore::GraphicsContextGLOpenGL::bindBufferRange):
(WebCore::GraphicsContextGLOpenGL::getUniformIndices):

  • platform/graphics/cocoa/GraphicsContextGLOpenGLCocoa.mm:

(WebCore::GraphicsContextGLOpenGL::~GraphicsContextGLOpenGL):
(WebCore::GraphicsContextGLOpenGL::updateCGLContext):

  • platform/graphics/opengl/ExtensionsGLOpenGL.cpp:

(WebCore::ExtensionsGLOpenGL::blitFramebuffer):
(WebCore::ExtensionsGLOpenGL::renderbufferStorageMultisample):
(WebCore::ExtensionsGLOpenGL::createVertexArrayOES):
(WebCore::ExtensionsGLOpenGL::deleteVertexArrayOES):
(WebCore::ExtensionsGLOpenGL::isVertexArrayOES):
(WebCore::ExtensionsGLOpenGL::bindVertexArrayOES):
(WebCore::ExtensionsGLOpenGL::supportsExtension):
(WebCore::ExtensionsGLOpenGL::drawBuffersEXT):
(WebCore::ExtensionsGLOpenGL::drawArraysInstanced):
(WebCore::ExtensionsGLOpenGL::drawElementsInstanced):
(WebCore::ExtensionsGLOpenGL::vertexAttribDivisor):

  • platform/graphics/opengl/ExtensionsGLOpenGLES.cpp:

(WebCore::ExtensionsGLOpenGLES::framebufferTexture2DMultisampleIMG):
(WebCore::ExtensionsGLOpenGLES::renderbufferStorageMultisampleIMG):
(WebCore::ExtensionsGLOpenGLES::renderbufferStorageMultisample):
(WebCore::ExtensionsGLOpenGLES::createVertexArrayOES):
(WebCore::ExtensionsGLOpenGLES::deleteVertexArrayOES):
(WebCore::ExtensionsGLOpenGLES::isVertexArrayOES):
(WebCore::ExtensionsGLOpenGLES::bindVertexArrayOES):
(WebCore::ExtensionsGLOpenGLES::getGraphicsResetStatusARB):
(WebCore::ExtensionsGLOpenGLES::readnPixelsEXT):
(WebCore::ExtensionsGLOpenGLES::getnUniformfvEXT):
(WebCore::ExtensionsGLOpenGLES::getnUniformivEXT):
(WebCore::ExtensionsGLOpenGLES::drawArraysInstanced):
(WebCore::ExtensionsGLOpenGLES::drawElementsInstanced):
(WebCore::ExtensionsGLOpenGLES::vertexAttribDivisor):

  • platform/graphics/opengl/GraphicsContextGLOpenGL.h:
  • platform/graphics/opengl/GraphicsContextGLOpenGLBase.cpp:

(WebCore::GraphicsContextGLOpenGL::renderbufferStorage):
(WebCore::GraphicsContextGLOpenGL::getIntegerv):
(WebCore::GraphicsContextGLOpenGL::getShaderPrecisionFormat):
(WebCore::GraphicsContextGLOpenGL::depthRange):
(WebCore::GraphicsContextGLOpenGL::clearDepth):
(WebCore::GraphicsContextGLOpenGL::readPixels):

  • platform/graphics/opengl/GraphicsContextGLOpenGLCommon.cpp:

(WebCore::GraphicsContextGLOpenGL::prepareTexture):
(WebCore::GraphicsContextGLOpenGL::readRenderingResults):
(WebCore::GraphicsContextGLOpenGL::reshape):
(WebCore::GraphicsContextGLOpenGL::activeTexture):
(WebCore::GraphicsContextGLOpenGL::attachShader):
(WebCore::GraphicsContextGLOpenGL::bindAttribLocation):
(WebCore::GraphicsContextGLOpenGL::bindBuffer):
(WebCore::GraphicsContextGLOpenGL::bindFramebuffer):
(WebCore::GraphicsContextGLOpenGL::bindRenderbuffer):
(WebCore::GraphicsContextGLOpenGL::bindTexture):
(WebCore::GraphicsContextGLOpenGL::blendColor):
(WebCore::GraphicsContextGLOpenGL::blendEquation):
(WebCore::GraphicsContextGLOpenGL::blendEquationSeparate):
(WebCore::GraphicsContextGLOpenGL::blendFunc):
(WebCore::GraphicsContextGLOpenGL::blendFuncSeparate):
(WebCore::GraphicsContextGLOpenGL::bufferData):
(WebCore::GraphicsContextGLOpenGL::bufferSubData):
(WebCore::GraphicsContextGLOpenGL::checkFramebufferStatus):
(WebCore::GraphicsContextGLOpenGL::clearColor):
(WebCore::GraphicsContextGLOpenGL::clear):
(WebCore::GraphicsContextGLOpenGL::clearStencil):
(WebCore::GraphicsContextGLOpenGL::colorMask):
(WebCore::GraphicsContextGLOpenGL::compileShader):
(WebCore::GraphicsContextGLOpenGL::compileShaderDirect):
(WebCore::GraphicsContextGLOpenGL::copyTexImage2D):
(WebCore::GraphicsContextGLOpenGL::copyTexSubImage2D):
(WebCore::GraphicsContextGLOpenGL::cullFace):
(WebCore::GraphicsContextGLOpenGL::depthFunc):
(WebCore::GraphicsContextGLOpenGL::depthMask):
(WebCore::GraphicsContextGLOpenGL::detachShader):
(WebCore::GraphicsContextGLOpenGL::disable):
(WebCore::GraphicsContextGLOpenGL::disableVertexAttribArray):
(WebCore::GraphicsContextGLOpenGL::drawArrays):
(WebCore::GraphicsContextGLOpenGL::drawElements):
(WebCore::GraphicsContextGLOpenGL::enable):
(WebCore::GraphicsContextGLOpenGL::enableVertexAttribArray):
(WebCore::GraphicsContextGLOpenGL::finish):
(WebCore::GraphicsContextGLOpenGL::flush):
(WebCore::GraphicsContextGLOpenGL::framebufferRenderbuffer):
(WebCore::GraphicsContextGLOpenGL::framebufferTexture2D):
(WebCore::GraphicsContextGLOpenGL::frontFace):
(WebCore::GraphicsContextGLOpenGL::generateMipmap):
(WebCore::GraphicsContextGLOpenGL::getActiveAttribImpl):
(WebCore::GraphicsContextGLOpenGL::getActiveUniformImpl):
(WebCore::GraphicsContextGLOpenGL::getAttachedShaders):
(WebCore::GraphicsContextGLOpenGL::getAttribLocation):
(WebCore::GraphicsContextGLOpenGL::getAttribLocationDirect):
(WebCore::GraphicsContextGLOpenGL::moveErrorsToSyntheticErrorList):
(WebCore::GraphicsContextGLOpenGL::getError):
(WebCore::GraphicsContextGLOpenGL::getString):
(WebCore::GraphicsContextGLOpenGL::hint):
(WebCore::GraphicsContextGLOpenGL::isBuffer):
(WebCore::GraphicsContextGLOpenGL::isEnabled):
(WebCore::GraphicsContextGLOpenGL::isFramebuffer):
(WebCore::GraphicsContextGLOpenGL::isProgram):
(WebCore::GraphicsContextGLOpenGL::isRenderbuffer):
(WebCore::GraphicsContextGLOpenGL::isShader):
(WebCore::GraphicsContextGLOpenGL::isTexture):
(WebCore::GraphicsContextGLOpenGL::lineWidth):
(WebCore::GraphicsContextGLOpenGL::linkProgram):
(WebCore::GraphicsContextGLOpenGL::pixelStorei):
(WebCore::GraphicsContextGLOpenGL::polygonOffset):
(WebCore::GraphicsContextGLOpenGL::sampleCoverage):
(WebCore::GraphicsContextGLOpenGL::scissor):
(WebCore::GraphicsContextGLOpenGL::shaderSource):
(WebCore::GraphicsContextGLOpenGL::stencilFunc):
(WebCore::GraphicsContextGLOpenGL::stencilFuncSeparate):
(WebCore::GraphicsContextGLOpenGL::stencilMask):
(WebCore::GraphicsContextGLOpenGL::stencilMaskSeparate):
(WebCore::GraphicsContextGLOpenGL::stencilOp):
(WebCore::GraphicsContextGLOpenGL::stencilOpSeparate):
(WebCore::GraphicsContextGLOpenGL::texParameterf):
(WebCore::GraphicsContextGLOpenGL::texParameteri):
(WebCore::GraphicsContextGLOpenGL::uniform1f):
(WebCore::GraphicsContextGLOpenGL::uniform1fv):
(WebCore::GraphicsContextGLOpenGL::uniform2f):
(WebCore::GraphicsContextGLOpenGL::uniform2fv):
(WebCore::GraphicsContextGLOpenGL::uniform3f):
(WebCore::GraphicsContextGLOpenGL::uniform3fv):
(WebCore::GraphicsContextGLOpenGL::uniform4f):
(WebCore::GraphicsContextGLOpenGL::uniform4fv):
(WebCore::GraphicsContextGLOpenGL::uniform1i):
(WebCore::GraphicsContextGLOpenGL::uniform1iv):
(WebCore::GraphicsContextGLOpenGL::uniform2i):
(WebCore::GraphicsContextGLOpenGL::uniform2iv):
(WebCore::GraphicsContextGLOpenGL::uniform3i):
(WebCore::GraphicsContextGLOpenGL::uniform3iv):
(WebCore::GraphicsContextGLOpenGL::uniform4i):
(WebCore::GraphicsContextGLOpenGL::uniform4iv):
(WebCore::GraphicsContextGLOpenGL::uniformMatrix2fv):
(WebCore::GraphicsContextGLOpenGL::uniformMatrix3fv):
(WebCore::GraphicsContextGLOpenGL::uniformMatrix4fv):
(WebCore::GraphicsContextGLOpenGL::useProgram):
(WebCore::GraphicsContextGLOpenGL::validateProgram):
(WebCore::GraphicsContextGLOpenGL::vertexAttrib1f):
(WebCore::GraphicsContextGLOpenGL::vertexAttrib1fv):
(WebCore::GraphicsContextGLOpenGL::vertexAttrib2f):
(WebCore::GraphicsContextGLOpenGL::vertexAttrib2fv):
(WebCore::GraphicsContextGLOpenGL::vertexAttrib3f):
(WebCore::GraphicsContextGLOpenGL::vertexAttrib3fv):
(WebCore::GraphicsContextGLOpenGL::vertexAttrib4f):
(WebCore::GraphicsContextGLOpenGL::vertexAttrib4fv):
(WebCore::GraphicsContextGLOpenGL::vertexAttribPointer):
(WebCore::GraphicsContextGLOpenGL::viewport):
(WebCore::GraphicsContextGLOpenGL::createVertexArray):
(WebCore::GraphicsContextGLOpenGL::deleteVertexArray):
(WebCore::GraphicsContextGLOpenGL::isVertexArray):
(WebCore::GraphicsContextGLOpenGL::bindVertexArray):
(WebCore::GraphicsContextGLOpenGL::getBooleanv):
(WebCore::GraphicsContextGLOpenGL::getBufferParameteriv):
(WebCore::GraphicsContextGLOpenGL::getFloatv):
(WebCore::GraphicsContextGLOpenGL::getIntegeri_v):
(WebCore::GraphicsContextGLOpenGL::getInteger64v):
(WebCore::GraphicsContextGLOpenGL::getInteger64i_v):
(WebCore::GraphicsContextGLOpenGL::getFramebufferAttachmentParameteriv):
(WebCore::GraphicsContextGLOpenGL::getProgramiv):
(WebCore::GraphicsContextGLOpenGL::getNonBuiltInActiveSymbolCount):
(WebCore::GraphicsContextGLOpenGL::getProgramInfoLog):
(WebCore::GraphicsContextGLOpenGL::getRenderbufferParameteriv):
(WebCore::GraphicsContextGLOpenGL::getShaderiv):
(WebCore::GraphicsContextGLOpenGL::getShaderInfoLog):
(WebCore::GraphicsContextGLOpenGL::getShaderSource):
(WebCore::GraphicsContextGLOpenGL::getTexParameterfv):
(WebCore::GraphicsContextGLOpenGL::getTexParameteriv):
(WebCore::GraphicsContextGLOpenGL::getUniformfv):
(WebCore::GraphicsContextGLOpenGL::getUniformiv):
(WebCore::GraphicsContextGLOpenGL::getUniformLocation):
(WebCore::GraphicsContextGLOpenGL::getVertexAttribfv):
(WebCore::GraphicsContextGLOpenGL::getVertexAttribiv):
(WebCore::GraphicsContextGLOpenGL::getVertexAttribOffset):
(WebCore::GraphicsContextGLOpenGL::texSubImage2D):
(WebCore::GraphicsContextGLOpenGL::compressedTexImage2D):
(WebCore::GraphicsContextGLOpenGL::compressedTexSubImage2D):
(WebCore::GraphicsContextGLOpenGL::createBuffer):
(WebCore::GraphicsContextGLOpenGL::createFramebuffer):
(WebCore::GraphicsContextGLOpenGL::createProgram):
(WebCore::GraphicsContextGLOpenGL::createRenderbuffer):
(WebCore::GraphicsContextGLOpenGL::createShader):
(WebCore::GraphicsContextGLOpenGL::createTexture):
(WebCore::GraphicsContextGLOpenGL::deleteBuffer):
(WebCore::GraphicsContextGLOpenGL::deleteFramebuffer):
(WebCore::GraphicsContextGLOpenGL::deleteProgram):
(WebCore::GraphicsContextGLOpenGL::deleteRenderbuffer):
(WebCore::GraphicsContextGLOpenGL::deleteShader):
(WebCore::GraphicsContextGLOpenGL::deleteTexture):
(WebCore::GraphicsContextGLOpenGL::texImage2DDirect):
(WebCore::GraphicsContextGLOpenGL::primitiveRestartIndex):
(WebCore::GraphicsContextGLOpenGL::copyBufferSubData):
(WebCore::GraphicsContextGLOpenGL::mapBufferRange):
(WebCore::GraphicsContextGLOpenGL::unmapBuffer):
(WebCore::GraphicsContextGLOpenGL::getInternalformativ):
(WebCore::GraphicsContextGLOpenGL::renderbufferStorageMultisample):
(WebCore::GraphicsContextGLOpenGL::texStorage2D):
(WebCore::GraphicsContextGLOpenGL::texStorage3D):
(WebCore::GraphicsContextGLOpenGL::getActiveUniforms):

  • platform/graphics/opengl/GraphicsContextGLOpenGLES.cpp:

(WebCore::GraphicsContextGLOpenGL::readPixels):
(WebCore::GraphicsContextGLOpenGL::reshapeFBOs):
(WebCore::GraphicsContextGLOpenGL::renderbufferStorage):
(WebCore::GraphicsContextGLOpenGL::getIntegerv):
(WebCore::GraphicsContextGLOpenGL::getShaderPrecisionFormat):
(WebCore::GraphicsContextGLOpenGL::depthRange):
(WebCore::GraphicsContextGLOpenGL::clearDepth):
(WebCore::GraphicsContextGLOpenGL::create):
(WebCore::GraphicsContextGLOpenGL::GraphicsContextGLOpenGL):
(WebCore::GraphicsContextGLOpenGL::~GraphicsContextGLOpenGL):

  • platform/graphics/texmap/GraphicsContextGLTextureMapper.cpp:

(WebCore::GraphicsContextGLOpenGL::GraphicsContextGLOpenGL):
(WebCore::GraphicsContextGLOpenGL::~GraphicsContextGLOpenGL):

1:31 AM Changeset in webkit [269767] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

Add Kimmo Kinnunen as committer
https://bugs.webkit.org/show_bug.cgi?id=218888

Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2020-11-13
Reviewed by Antti Koivisto.

  • Scripts/webkitpy/common/config/contributors.json:
12:36 AM Changeset in webkit [269766] by commit-queue@webkit.org
  • 18 edits in trunk/JSTests

WebAssembly: update wabt.js
https://bugs.webkit.org/show_bug.cgi?id=218876

Patch by Sergey Rubanov <Sergey Rubanov> on 2020-11-13
Reviewed by Yusuke Suzuki.

  • wasm/libwabt.js:

(WabtModule): Deleted.

  • wasm/regress/llint-callee-saves-with-fast-memory.js:

(async test):

  • wasm/regress/llint-callee-saves-without-fast-memory.js:

(async test):

  • wasm/regress/regression-with-loop.js:

(async test):

  • wasm/regress/stack-consistency.js:

(async test):

  • wasm/stress/js-wasm-call-many-return-types-on-stack-no-args.js:

(async buildWat):
(async test):
(buildWat): Deleted.

  • wasm/stress/js-wasm-js-varying-arities.js:

(async paramForwarder):
(async test):
(paramForwarder): Deleted.

  • wasm/stress/local-ref.js:

(async test):

  • wasm/stress/loop-more-args-than-results.js:

(async test):

  • wasm/stress/set-local-enclosed-stack.js:

(async test):
(assert.eq.instance.exports.foo): Deleted.
(assert.eq): Deleted.

  • wasm/stress/top-most-enclosing-stack.js:

(async test):

  • wasm/stress/trunc-int-min-minus-one.js:

(async test):

  • wasm/stress/wasm-js-call-many-return-types-on-stack-no-args.js:

(async buildWat):
(async test):
(buildWat): Deleted.

  • wasm/stress/wasm-js-multi-value-exception-in-iterator.js:

(async buildWat):
(async test):
(buildWat.throwError): Deleted.
(buildWat.throwErrorInIterator): Deleted.
(buildWat.tooManyValues): Deleted.
(buildWat.tooFewValues): Deleted.
(buildWat): Deleted.

  • wasm/stress/wasm-wasm-call-indirect-many-return-types-on-stack.js:

(async buildWat):
(async test):
(buildWat): Deleted.

  • wasm/stress/wasm-wasm-call-many-return-types-on-stack-no-args.js:

(async buildWat):
(async test):
(buildWat): Deleted.

  • wasm/wabt-wrapper.js:

(export.async compile):
(export.compile): Deleted.

12:22 AM Changeset in webkit [269765] by magomez@igalia.com
  • 2 edits in trunk/Source/WebCore

[GTK][WPE] FilterInfo must cleared when reusing BitmapTextureGL
https://bugs.webkit.org/show_bug.cgi?id=218854

Reviewed by Carlos Garcia Campos.

Clear the FilterInfo attribute when reusing a BitmapTextureGL.

  • platform/graphics/texmap/BitmapTextureGL.cpp:

(WebCore::BitmapTextureGL::didReset):

Nov 12, 2020:

11:20 PM Changeset in webkit [269764] by youenn@apple.com
  • 34 edits
    7 copies
    14 adds in trunk

Add infrastructure for WebRTC transforms
https://bugs.webkit.org/show_bug.cgi?id=218750

Reviewed by Eric Carlson.

Source/ThirdParty/libwebrtc:

Make sure buffer is owned by the encoded image object.

  • Configurations/libwebrtc.mac.exp:
  • Source/webrtc/sdk/WebKit/WebKitEncoder.h:
  • Source/webrtc/sdk/WebKit/WebKitEncoder.mm:

(webrtc::encoderVideoTaskComplete):

Source/WebCore:

Introduce RTCRtpTransform behind a preference.
Add binding code with libwebrtc to be able to process encoded content in sender and receiver sides.
Add a mock transform to validate the infrastructure is working.

Test: webrtc/webrtc-transform.html

  • CMakeLists.txt:
  • DerivedSources-input.xcfilelist:
  • DerivedSources-output.xcfilelist:
  • DerivedSources.make:
  • Modules/mediastream/RTCRtpReceiver+Transform.idl: Added.
  • Modules/mediastream/RTCRtpReceiver.cpp:

(WebCore::RTCRtpReceiver::~RTCRtpReceiver):
(WebCore::RTCRtpReceiver::stop):
(WebCore::RTCRtpReceiver::setTransform):

  • Modules/mediastream/RTCRtpReceiver.h:
  • Modules/mediastream/RTCRtpReceiverBackend.h:
  • Modules/mediastream/RTCRtpReceiverWithTransform.h: Added.

(WebCore::RTCRtpReceiverWithTransform::transform):
(WebCore::RTCRtpReceiverWithTransform::setTransform):

  • Modules/mediastream/RTCRtpSender+Transform.idl: Added.
  • Modules/mediastream/RTCRtpSender.cpp:

(WebCore::RTCRtpSender::~RTCRtpSender):
(WebCore::RTCRtpSender::stop):
(WebCore::RTCRtpSender::setTransform):

  • Modules/mediastream/RTCRtpSender.h:
  • Modules/mediastream/RTCRtpSenderBackend.h:
  • Modules/mediastream/RTCRtpSenderWithTransform.h: Added.

(WebCore::RTCRtpSenderWithTransform::transform):
(WebCore::RTCRtpSenderWithTransform::setTransform):

  • Modules/mediastream/RTCRtpTransform.cpp: Added.

(WebCore::RTCRtpTransform::~RTCRtpTransform):
(WebCore::RTCRtpTransform::attachToReceiver):
(WebCore::RTCRtpTransform::attachToSender):
(WebCore::RTCRtpTransform::detachFromReceiver):
(WebCore::RTCRtpTransform::detachFromSender):

  • Modules/mediastream/RTCRtpTransform.h: Added.
  • Modules/mediastream/RTCRtpTransform.idl: Added.
  • Modules/mediastream/RTCRtpTransformBackend.h: Added.
  • Modules/mediastream/RTCRtpTransformableFrame.h: Added.
  • Modules/mediastream/libwebrtc/LibWebRTCRtpReceiverBackend.cpp:

(WebCore::LibWebRTCRtpReceiverBackend::createRTCRtpTransformBackend):

  • Modules/mediastream/libwebrtc/LibWebRTCRtpReceiverBackend.h:
  • Modules/mediastream/libwebrtc/LibWebRTCRtpReceiverTransformBackend.cpp: Added.

(WebCore::mediaTypeFromReceiver):
(WebCore::LibWebRTCRtpReceiverTransformBackend::LibWebRTCRtpReceiverTransformBackend):
(WebCore::LibWebRTCRtpReceiverTransformBackend::~LibWebRTCRtpReceiverTransformBackend):
(WebCore::LibWebRTCRtpReceiverTransformBackend::setTransformableFrameCallback):

  • Modules/mediastream/libwebrtc/LibWebRTCRtpReceiverTransformBackend.h: Added.
  • Modules/mediastream/libwebrtc/LibWebRTCRtpSenderBackend.cpp:

(WebCore::LibWebRTCRtpSenderBackend::createRTCRtpTransformBackend):

  • Modules/mediastream/libwebrtc/LibWebRTCRtpSenderBackend.h:
  • Modules/mediastream/libwebrtc/LibWebRTCRtpSenderTransformBackend.cpp: Added.

(WebCore::mediaTypeFromSender):
(WebCore::LibWebRTCRtpSenderTransformBackend::LibWebRTCRtpSenderTransformBackend):
(WebCore::LibWebRTCRtpSenderTransformBackend::~LibWebRTCRtpSenderTransformBackend):
(WebCore::LibWebRTCRtpSenderTransformBackend::setTransformableFrameCallback):

  • Modules/mediastream/libwebrtc/LibWebRTCRtpSenderTransformBackend.h: Added.
  • Modules/mediastream/libwebrtc/LibWebRTCRtpTransformBackend.cpp: Added.

(WebCore::LibWebRTCRtpTransformBackend::setInputCallback):
(WebCore::LibWebRTCRtpTransformBackend::clearTransformableFrameCallback):
(WebCore::LibWebRTCRtpTransformBackend::setOutputCallback):
(WebCore::LibWebRTCRtpTransformBackend::processTransformedFrame):
(WebCore::LibWebRTCRtpTransformBackend::Transform):
(WebCore::LibWebRTCRtpTransformBackend::RegisterTransformedFrameCallback):
(WebCore::LibWebRTCRtpTransformBackend::RegisterTransformedFrameSinkCallback):
(WebCore::LibWebRTCRtpTransformBackend::UnregisterTransformedFrameCallback):
(WebCore::LibWebRTCRtpTransformBackend::UnregisterTransformedFrameSinkCallback):

  • Modules/mediastream/libwebrtc/LibWebRTCRtpTransformBackend.h: Added.

(WebCore::LibWebRTCRtpTransformBackend::LibWebRTCRtpTransformBackend):
(WebCore::LibWebRTCRtpTransformBackend::Release const):

  • Modules/mediastream/libwebrtc/LibWebRTCRtpTransformableFrame.h: Added.

(WebCore::LibWebRTCRtpTransformableFrame::LibWebRTCRtpTransformableFrame):
(WebCore::LibWebRTCRtpTransformableFrame::toRTCFrame):
(WebCore::LibWebRTCRtpTransformableFrame::data const):

  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/WebCoreBuiltinNames.h:
  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateHeader):

  • bindings/scripts/test/JS/JSTestInterface.h:
  • testing/Internals.cpp:

(WebCore::Internals::createMockRTCRtpTransform):

  • testing/Internals.h:
  • testing/Internals.idl:
  • testing/MockRTCRtpTransform.cpp: Added.

(WebCore::MockRTCRtpTransformer::create):
(WebCore::MockRTCRtpTransformer::clear):
(WebCore::MockRTCRtpTransformer::transform):
(WebCore::MockRTCRtpTransformer::isProcessing const):
(WebCore::MockRTCRtpTransformer::MockRTCRtpTransformer):
(WebCore::MockRTCRtpTransform::MockRTCRtpTransform):
(WebCore::MockRTCRtpTransform::~MockRTCRtpTransform):
(WebCore::MockRTCRtpTransform::isProcessing const):
(WebCore::MockRTCRtpTransform::initializeBackendForReceiver):
(WebCore::MockRTCRtpTransform::initializeBackendForSender):
(WebCore::MockRTCRtpTransform::willClearBackend):

  • testing/MockRTCRtpTransform.h: Added.
  • testing/MockRTCRtpTransform.idl: Added.

Source/WebKit:

Remove no longer needed const casting.

  • Configurations/WebKit.xcconfig:
  • WebProcess/GPU/webrtc/LibWebRTCCodecs.cpp:

(WebKit::LibWebRTCCodecs::completedEncoding):

Source/WTF:

Add an experimental preference for WebRTC transforms.

  • Scripts/Preferences/WebPreferencesExperimental.yaml:

LayoutTests:

  • webrtc/webrtc-transform-expected.txt: Added.
  • webrtc/webrtc-transform.html: Added.
8:50 PM Changeset in webkit [269763] by commit-queue@webkit.org
  • 3 edits
    1 delete in trunk/Source/WebKit

Remove SecItemShim.dylib
https://bugs.webkit.org/show_bug.cgi?id=218862

Patch by Alex Christensen <achristensen@webkit.org> on 2020-11-12
Reviewed by Alexey Proskuryakov.

This is dead code since r269697.

  • Shared/mac/SecItemShim.cpp:
  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/mac/SecItemShimLibrary.h: Removed.
  • WebProcess/mac/SecItemShimLibrary.mm: Removed.
7:15 PM Changeset in webkit [269762] by jh718.park@samsung.com
  • 2 edits in trunk/Source/WebCore

Unreviewed. Fix the build warning below since r269753.
warning: unused parameter ‘spacing’ [-Wunused-parameter]

No new tests, no new behaviors.

  • platform/graphics/cairo/GraphicsContextCairo.cpp:

(WebCore::GraphicsContext::drawPlatformPattern):

4:34 PM Changeset in webkit [269761] by Truitt Savell
  • 2 edits in trunk/LayoutTests

REGRESSION: [ Mac wk2 ] webrtc/captureCanvas-webrtc-software-h264-baseline.html is flaky failing
https://bugs.webkit.org/show_bug.cgi?id=218875

unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
4:20 PM Changeset in webkit [269760] by weinig@apple.com
  • 11 edits in trunk

Move more WebKitLegacy specific settings usage to WebPreferences.yaml
https://bugs.webkit.org/show_bug.cgi?id=218852

Reviewed by Tim Horton.

Source/WebCore:

This batch focuses on settings with defaults based on SDK/host app conditions.

  • page/Settings.yaml:

Source/WebKitLegacy/mac:

This batch focuses on settings with defaults based on SDK/host app conditions.

  • WebView/WebPreferences.mm:

(+[WebPreferences initialize]):

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

(WebKit::defaultAllowContentSecurityPolicySourceStarToMatchAnyProtocol):
(WebKit::defaultLoadDeferringEnabled):
(WebKit::defaultWindowFocusRestricted):
(WebKit::defaultUsePreHTML5ParserQuirks):
(WebKit::defaultNeedsAdobeFrameReloadingQuirk):
(WebKit::defaultTreatsAnyTextCSSLinkAsStylesheet):
(WebKit::defaultNeedsFrameNameFallbackToIdQuirk):
(WebKit::defaultNeedsKeyboardEventDisambiguationQuirks):
(WebKit::defaultEnforceCSSMIMETypeInNoQuirksMode):
(WebKit::defaultNeedsIsLoadingInAPISenseQuirk):
(WebKit::defaultUseLegacyBackgroundSizeShorthandBehavior):
(WebKit::defaultAllowDisplayOfInsecureContent):
(WebKit::defaultAllowRunningOfInsecureContent):
(WebKit::defaultShouldConvertInvalidURLsToBlank):

  • WebView/WebView.mm:

(-[WebView _commonInitializationWithFrameName:groupName:]):
(needsSelfRetainWhileLoadingQuirk):
(-[WebView _preferencesChanged:]):
(-[WebView dealloc]):
(-[WebView setFrameLoadDelegate:]):
(shouldEnableLoadDeferring): Deleted.
(shouldRestrictWindowFocus): Deleted.
(shouldUseLegacyBackgroundSizeShorthandBehavior): Deleted.
(shouldAllowDisplayAndRunningOfInsecureContent): Deleted.
(shouldAllowContentSecurityPolicySourceStarToMatchAnyProtocol): Deleted.
(shouldConvertInvalidURLsToBlank): Deleted.
(-[WebView _needsAdobeFrameReloadingQuirk]): Deleted.
(-[WebView _needsLinkElementTextCSSQuirk]): Deleted.
(-[WebView _needsFrameNameFallbackToIdQuirk]): Deleted.
(-[WebView _needsIsLoadingInAPISenseQuirk]): Deleted.
(-[WebView _needsKeyboardEventDisambiguationQuirks]): Deleted.
(-[WebView _needsPreHTML5ParserQuirks]): Deleted.

Source/WTF:

This batch focuses on settings with defaults based on SDK/host app conditions.

  • Scripts/Preferences/WebPreferences.yaml:

Tools:

  • DumpRenderTree/mac/DumpRenderTree.mm:

(resetWebPreferencesToConsistentValues):
Remove unnecessary call of [WebPreferences setUsePreHTML5ParserQuirks:NO] as this is the default.

3:59 PM Changeset in webkit [269759] by Simon Fraser
  • 10 edits
    44 moves
    3 adds in trunk/LayoutTests

Move tests in fast/events that dispatch platform wheel events to their own directory
https://bugs.webkit.org/show_bug.cgi?id=218869

Reviewed by Tim Horton.

Move tests in fast/events that rely on dispatching wheel events via eventSender to their own directory for
easier skipping on particular platforms.

Tests that synthesize DOM events remain in fast/events, since they are cross-platform.

Fix up some linter and sorting errors in TestExpectations.

  • fast/events/wheel/continuous-platform-wheelevent-in-scrolling-div-expected.txt: Renamed from LayoutTests/fast/events/continuous-platform-wheelevent-in-scrolling-div-expected.txt.
  • fast/events/wheel/continuous-platform-wheelevent-in-scrolling-div.html: Renamed from LayoutTests/fast/events/continuous-platform-wheelevent-in-scrolling-div.html.
  • fast/events/wheel/platform-wheelevent-in-scrolling-div-expected.txt: Renamed from LayoutTests/fast/events/platform-wheelevent-in-scrolling-div-expected.txt.
  • fast/events/wheel/platform-wheelevent-in-scrolling-div.html: Renamed from LayoutTests/fast/events/platform-wheelevent-in-scrolling-div.html.
  • fast/events/wheel/platform-wheelevent-paging-x-in-non-scrolling-div-expected.txt: Renamed from LayoutTests/fast/events/platform-wheelevent-paging-x-in-non-scrolling-div-expected.txt.
  • fast/events/wheel/platform-wheelevent-paging-x-in-non-scrolling-div.html: Renamed from LayoutTests/fast/events/platform-wheelevent-paging-x-in-non-scrolling-div.html.
  • fast/events/wheel/platform-wheelevent-paging-x-in-non-scrolling-page-expected.txt: Renamed from LayoutTests/fast/events/platform-wheelevent-paging-x-in-non-scrolling-page-expected.txt.
  • fast/events/wheel/platform-wheelevent-paging-x-in-non-scrolling-page.html: Renamed from LayoutTests/fast/events/platform-wheelevent-paging-x-in-non-scrolling-page.html.
  • fast/events/wheel/platform-wheelevent-paging-x-in-scrolling-div-expected.txt: Renamed from LayoutTests/fast/events/platform-wheelevent-paging-x-in-scrolling-div-expected.txt.
  • fast/events/wheel/platform-wheelevent-paging-x-in-scrolling-div.html: Renamed from LayoutTests/fast/events/platform-wheelevent-paging-x-in-scrolling-div.html.
  • fast/events/wheel/platform-wheelevent-paging-x-in-scrolling-page-expected.txt: Renamed from LayoutTests/fast/events/platform-wheelevent-paging-x-in-scrolling-page-expected.txt.
  • fast/events/wheel/platform-wheelevent-paging-x-in-scrolling-page.html: Renamed from LayoutTests/fast/events/platform-wheelevent-paging-x-in-scrolling-page.html.
  • fast/events/wheel/platform-wheelevent-paging-xy-in-scrolling-div-expected.txt: Renamed from LayoutTests/fast/events/platform-wheelevent-paging-xy-in-scrolling-div-expected.txt.
  • fast/events/wheel/platform-wheelevent-paging-xy-in-scrolling-div.html: Renamed from LayoutTests/fast/events/platform-wheelevent-paging-xy-in-scrolling-div.html.
  • fast/events/wheel/platform-wheelevent-paging-xy-in-scrolling-page-expected.txt: Renamed from LayoutTests/fast/events/platform-wheelevent-paging-xy-in-scrolling-page-expected.txt.
  • fast/events/wheel/platform-wheelevent-paging-xy-in-scrolling-page.html: Renamed from LayoutTests/fast/events/platform-wheelevent-paging-xy-in-scrolling-page.html.
  • fast/events/wheel/platform-wheelevent-paging-y-in-non-scrolling-div-expected.txt: Renamed from LayoutTests/fast/events/platform-wheelevent-paging-y-in-non-scrolling-div-expected.txt.
  • fast/events/wheel/platform-wheelevent-paging-y-in-non-scrolling-div.html: Renamed from LayoutTests/fast/events/platform-wheelevent-paging-y-in-non-scrolling-div.html.
  • fast/events/wheel/platform-wheelevent-paging-y-in-non-scrolling-page-expected.txt: Renamed from LayoutTests/fast/events/platform-wheelevent-paging-y-in-non-scrolling-page-expected.txt.
  • fast/events/wheel/platform-wheelevent-paging-y-in-non-scrolling-page.html: Renamed from LayoutTests/fast/events/platform-wheelevent-paging-y-in-non-scrolling-page.html.
  • fast/events/wheel/platform-wheelevent-paging-y-in-scrolling-div-expected.txt: Renamed from LayoutTests/fast/events/platform-wheelevent-paging-y-in-scrolling-div-expected.txt.
  • fast/events/wheel/platform-wheelevent-paging-y-in-scrolling-div.html: Renamed from LayoutTests/fast/events/platform-wheelevent-paging-y-in-scrolling-div.html.
  • fast/events/wheel/platform-wheelevent-paging-y-in-scrolling-page-expected.txt: Renamed from LayoutTests/fast/events/platform-wheelevent-paging-y-in-scrolling-page-expected.txt.
  • fast/events/wheel/platform-wheelevent-paging-y-in-scrolling-page.html: Renamed from LayoutTests/fast/events/platform-wheelevent-paging-y-in-scrolling-page.html.
  • fast/events/wheel/wheel-event-destroys-frame-expected.txt: Renamed from LayoutTests/fast/events/wheel-event-destroys-frame-expected.txt.
  • fast/events/wheel/wheel-event-destroys-frame.html: Renamed from LayoutTests/fast/events/wheel-event-destroys-frame.html.
  • fast/events/wheel/wheel-event-destroys-overflow-expected.txt: Renamed from LayoutTests/fast/events/wheel-event-destroys-overflow-expected.txt.
  • fast/events/wheel/wheel-event-destroys-overflow.html: Renamed from LayoutTests/fast/events/wheel-event-destroys-overflow.html.
  • fast/events/wheel/wheel-event-outside-body-expected.txt: Renamed from LayoutTests/fast/events/wheel-event-outside-body-expected.txt.
  • fast/events/wheel/wheel-event-outside-body.html: Renamed from LayoutTests/fast/events/wheel-event-outside-body.html.
  • fast/events/wheel/wheelevent-basic-expected.txt: Renamed from LayoutTests/fast/events/wheelevent-basic-expected.txt.
  • fast/events/wheel/wheelevent-basic.html: Renamed from LayoutTests/fast/events/wheelevent-basic.html.
  • fast/events/wheel/wheelevent-direction-inverted-from-device-expected.txt: Renamed from LayoutTests/fast/events/wheelevent-direction-inverted-from-device-expected.txt.
  • fast/events/wheel/wheelevent-direction-inverted-from-device.html: Renamed from LayoutTests/fast/events/wheelevent-direction-inverted-from-device.html.
  • fast/events/wheel/wheelevent-in-horizontal-scrollbar-in-rtl-expected.txt: Renamed from LayoutTests/fast/events/wheelevent-in-horizontal-scrollbar-in-rtl-expected.txt.
  • fast/events/wheel/wheelevent-in-horizontal-scrollbar-in-rtl.html: Renamed from LayoutTests/fast/events/wheelevent-in-horizontal-scrollbar-in-rtl.html.
  • fast/events/wheel/wheelevent-in-text-node-expected.txt: Renamed from LayoutTests/fast/events/wheelevent-in-text-node-expected.txt.
  • fast/events/wheel/wheelevent-in-text-node.html: Renamed from LayoutTests/fast/events/wheelevent-in-text-node.html.
  • fast/events/wheel/wheelevent-in-vertical-scrollbar-in-rtl-expected.txt: Renamed from LayoutTests/fast/events/wheelevent-in-vertical-scrollbar-in-rtl-expected.txt.
  • fast/events/wheel/wheelevent-in-vertical-scrollbar-in-rtl.html: Renamed from LayoutTests/fast/events/wheelevent-in-vertical-scrollbar-in-rtl.html.
  • fast/events/wheel/wheelevent-mousewheel-interaction-expected.txt: Renamed from LayoutTests/fast/events/wheelevent-mousewheel-interaction-expected.txt.
  • fast/events/wheel/wheelevent-mousewheel-interaction.html: Renamed from LayoutTests/fast/events/wheelevent-mousewheel-interaction.html.
  • fast/scrolling/mac/wheel-event-listener-region-inside-overflow-expected.txt: Added.
  • platform/glib/TestExpectations:
  • platform/gtk/TestExpectations:
  • platform/gtk/fast/events/wheel/wheelevent-in-horizontal-scrollbar-in-rtl-expected.txt: Renamed from LayoutTests/platform/gtk/fast/events/wheelevent-in-horizontal-scrollbar-in-rtl-expected.txt.
  • platform/gtk/fast/events/wheel/wheelevent-in-vertical-scrollbar-in-rtl-expected.txt: Renamed from LayoutTests/platform/gtk/fast/events/wheelevent-in-vertical-scrollbar-in-rtl-expected.txt.
  • platform/ios/TestExpectations:
  • platform/mac-wk2/TestExpectations:
  • platform/mac/TestExpectations:
  • platform/win/TestExpectations:
  • platform/wincairo/TestExpectations:
  • platform/wk2/TestExpectations:
  • platform/wpe/TestExpectations:
3:45 PM Changeset in webkit [269758] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebKit

canvas-createPattern-video-modify-crash-log.txt asserts on debug GPUProcess bots
https://bugs.webkit.org/show_bug.cgi?id=218872

Reviewed by Simon Fraser.

  • WebProcess/GPU/graphics/ImageBufferShareableBitmapBackend.cpp:

(WebKit::ImageBufferShareableBitmapBackend::create):
This assertion is wrong; make it the same as the one in ImageBufferCGBitmapBackend.

3:11 PM November 2020 Meeting edited by Jon Davis
(diff)
3:11 PM November 2020 Meeting edited by Jon Davis
(diff)
3:07 PM November 2020 Meeting created by Jon Davis
2:54 PM Changeset in webkit [269757] by Devin Rousso
  • 27 edits in trunk

Web Inspector: ensure that JSON::ArrayOf<T> doesn't allow addItem to be called with a type other than T
https://bugs.webkit.org/show_bug.cgi?id=218686

Reviewed by Brian Burg.

Source/JavaScriptCore:

  • inspector/scripts/codegen/cpp_generator_templates.py:
  • inspector/scripts/codegen/generate_cpp_backend_dispatcher_implementation.py:

(CppBackendDispatcherImplementationGenerator._generate_small_dispatcher_switch_implementation_for_domain):
(CppBackendDispatcherImplementationGenerator._generate_large_dispatcher_switch_implementation_for_domain):

  • inspector/scripts/codegen/generate_cpp_protocol_types_header.py:
  • inspector/scripts/codegen/generate_cpp_protocol_types_implementation.py:

(CppProtocolTypesImplementationGenerator._generate_enum_mapping):
(CppProtocolTypesImplementationGenerator._generate_open_field_names):
Use ASCIILiteral, makeString, and _s instead of inlined char* to ensure that the
String function overload is used.

  • inspector/scripts/tests/expected/command-targetType-matching-domain-debuggableType.json-result:
  • inspector/scripts/tests/expected/commands-with-async-attribute.json-result:
  • inspector/scripts/tests/expected/commands-with-optional-call-return-parameters.json-result:
  • inspector/scripts/tests/expected/definitions-with-mac-platform.json-result:
  • inspector/scripts/tests/expected/domain-debuggableTypes.json-result:
  • inspector/scripts/tests/expected/domain-targetType-matching-domain-debuggableType.json-result:
  • inspector/scripts/tests/expected/domain-targetTypes.json-result:
  • inspector/scripts/tests/expected/domains-with-varying-command-sizes.json-result:
  • inspector/scripts/tests/expected/enum-values.json-result:
  • inspector/scripts/tests/expected/event-targetType-matching-domain-debuggableType.json-result:
  • inspector/scripts/tests/expected/generate-domains-with-feature-guards.json-result:
  • inspector/scripts/tests/expected/shadowed-optional-type-setters.json-result:
  • inspector/scripts/tests/expected/type-declaration-array-type.json-result:
  • inspector/scripts/tests/expected/type-declaration-enum-type.json-result:
  • inspector/scripts/tests/expected/type-declaration-object-type.json-result:
  • inspector/scripts/tests/expected/type-requiring-runtime-casts.json-result:
  • inspector/scripts/tests/expected/type-with-open-parameters.json-result:

Source/WTF:

  • wtf/JSONValues.h:

(WTF::JSONImpl::Value::Value):
(WTF::JSONImpl::Value::Value):
(WTF::JSONImpl::ArrayOf::addItem):

  • wtf/JSONValues.cpp:

(WTF::JSONImpl::Value::create):
Right now, JSON::ArrayOf<T> always has addItem overloads for int, double, String,
and Ref<T> (even when T is not a JSON::Value). This means that a JSON::ArrayOf<int>
can call addItem(42.0) or addItem("foo"_s) and it would work. This doesn't really match
the intention of JSON::ArrayOf<T>, so add some template std::enable_if to ensure that
the only addItem overload that exists is the one that matches T.

Tools:

  • TestWebKitAPI/Tests/WTF/JSONValue.cpp:

(TestWebKitAPI::TEST):
Use _s and makeString to ensure that the String function overload is used.

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

Web Inspector: Uncaught Exception: TypeError: undefined is not an object (evaluating 'target.DOMAgent.hideHighlight')
https://bugs.webkit.org/show_bug.cgi?id=218836

Reviewed by Brian Burg.

  • UserInterface/Controllers/DOMManager.js:

(WI.DOMManager.prototype.hideDOMNodeHighlight):
Some views eagerly call this when detached, possibly even before the WI.mainTarget has
been established (i.e. it's still a WI.MultiplexingBackendTarget). Rather than add a
specific check for the WI.mainTarget, just iterate over WI.targets and check each target
since that's eventually what's going to need to be done anyways.

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

Web Inspector: REGRESSION(?): Graphics: cannot click on recording icon more than once
https://bugs.webkit.org/show_bug.cgi?id=218834

Reviewed by Brian Burg.

  • UserInterface/Views/ContextMenuUtilities.js:

(WI.addMouseDownContextMenuHandlers):
Only ignore future "mousedown" events if the WI.ContextMenu actually has items.

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

Web Inspector: REGRESSION(?): Sources: WebSocket status not shown when organized By Path
https://bugs.webkit.org/show_bug.cgi?id=218679

Reviewed by Brian Burg.

  • UserInterface/Views/SourcesNavigationSidebarPanel.js:

(WI.SourcesNavigationSidebarPanel.prototype._addResource):
Make sure to use WI.WebSocketResourceTreeElement for WI.WebSocketResource.

2:31 PM Changeset in webkit [269753] by Said Abou-Hallawa
  • 24 edits in trunk/Source

[GPU Process] GraphicsContext::drawPattern() should take a NativeImage argument
https://bugs.webkit.org/show_bug.cgi?id=218865

Reviewed by Simon Fraser.

Source/WebCore:

When recording the DisplayList item DrawPattern, the renderingResourceIdentifier
of the NativeImage will be recorded. When replaying it back, the
renderingResourceIdentifier will be resolved to a NativeImage and the
item will be applied the same way we for DrawNativeImage.

DrawPattern will be inline DisplayList item and should not need encoding
or decoding when sending it to the GPU.

  • platform/graphics/GraphicsContext.cpp:

(WebCore::GraphicsContext::drawPattern):

  • platform/graphics/GraphicsContext.h:

(WebCore::GraphicsContext::drawPattern):
(WebCore::GraphicsContext::drawPlatformImage): Deleted.

  • platform/graphics/GraphicsContextImpl.h:
  • platform/graphics/Image.cpp:

(WebCore::Image::drawPattern):

  • platform/graphics/cairo/GraphicsContextCairo.cpp:

(WebCore::GraphicsContext::drawPlatformPattern):
(WebCore::GraphicsContext::drawPattern): Deleted.

  • platform/graphics/cairo/GraphicsContextImplCairo.cpp:

(WebCore::GraphicsContextImplCairo::drawPattern):

  • platform/graphics/cairo/GraphicsContextImplCairo.h:
  • platform/graphics/cg/GraphicsContextCG.cpp:

(WebCore::GraphicsContext::drawPlatformPattern):
(WebCore::GraphicsContext::drawPattern): Deleted.

  • platform/graphics/displaylists/DisplayListItemBuffer.cpp:

(WebCore::DisplayList::ItemHandle::destroy):
(WebCore::DisplayList::ItemHandle::copyTo const):

  • platform/graphics/displaylists/DisplayListItemType.cpp:

(WebCore::DisplayList::isDrawingItem):
(WebCore::DisplayList::isInlineItem):

  • platform/graphics/displaylists/DisplayListItems.cpp:

(WebCore::DisplayList::DrawPattern::DrawPattern):
(WebCore::DisplayList::DrawPattern::apply const):
(WebCore::DisplayList::operator<<):

  • platform/graphics/displaylists/DisplayListItems.h:

(WebCore::DisplayList::DrawPattern::DrawPattern):
(WebCore::DisplayList::DrawPattern::imageIdentifier const):
(WebCore::DisplayList::DrawPattern::imageSize const):
(WebCore::DisplayList::DrawPattern::tileRect const):
(WebCore::DisplayList::DrawPattern::patternTransform const):
(WebCore::DisplayList::DrawPattern::image const): Deleted.
(WebCore::DisplayList::DrawPattern::encode const): Deleted.
(WebCore::DisplayList::DrawPattern::decode): Deleted.

  • platform/graphics/displaylists/DisplayListRecorder.cpp:

(WebCore::DisplayList::Recorder::drawPattern):

  • platform/graphics/displaylists/DisplayListRecorder.h:
  • platform/graphics/displaylists/DisplayListReplayer.cpp:

(WebCore::DisplayList::applyImageBufferItem):
(WebCore::DisplayList::applyNativeImageItem):
(WebCore::DisplayList::Replayer::applyItem):

  • platform/graphics/nicosia/cairo/NicosiaCairoOperationRecorder.cpp:

(Nicosia::CairoOperationRecorder::drawPattern):

  • platform/graphics/nicosia/cairo/NicosiaCairoOperationRecorder.h:
  • platform/graphics/win/GraphicsContextDirect2D.cpp:

(WebCore::GraphicsContext::drawPlatformPattern):
(WebCore::GraphicsContext::drawPattern): Deleted.

  • platform/graphics/win/GraphicsContextImplDirect2D.cpp:

(WebCore::GraphicsContextImplDirect2D::drawPattern):

  • platform/graphics/win/GraphicsContextImplDirect2D.h:

Source/WebKit:

  • GPUProcess/graphics/RemoteRenderingBackend.cpp:

(WebKit::RemoteRenderingBackend::decodeItem):

  • WebProcess/GPU/graphics/RemoteImageBufferProxy.h:
2:18 PM Changeset in webkit [269752] by ajuma@chromium.org
  • 2 edits in trunk/Tools

configure-xcode-for-embedded-development breaks @available in Swift files
https://bugs.webkit.org/show_bug.cgi?id=218850

Reviewed by Jonathan Bedard.

The changes applied by configure-xcode-for-embedded-development
for AvailabilityProhibitedInternal.h cause API_AVAILABLE to be ignored
in Objective-C, but @available is not ignored in Swift. As a result,
if an Objective-C method marked with API_AVAILABLE makes a call
into a Swift class marked with @available, this can lead to an
availability warning even when the calling method is only available
when the callee is available.

To fix this, ensure that @available is also ignored in Swift.

  • Scripts/configure-xcode-for-embedded-development:
2:12 PM Changeset in webkit [269751] by pvollan@apple.com
  • 2 edits in trunk/Source/WebKit

[iOS] IOKit sandbox violation when enabling all GPU runtime flags
https://bugs.webkit.org/show_bug.cgi?id=218820
<rdar://problem/71296116>

Reviewed by Brent Fulgham.

When enabling all GPU runtime flags on iOS, there is an iokit-open sandbox violation for the IOKit class AGXDeviceUserClient
in the WebContent process. When all GPU runtime flags are enabled, IOKit extensions are not provided to the WebContent process,
which should then fall back to a set of rules allowing use of these IOKit classes, with logging. There seems to be a problem
with the fallback for this specific IOKit class, which this patch addresses by adding an extra requirement to the rule. The
extra requirement is that IOKit extensions have not been provided for these IOKit classes.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
2:10 PM Changeset in webkit [269750] by Chris Dumez
  • 10 edits in trunk

[GPUProcess] Add basic GPUProcess crash handling for media playback
https://bugs.webkit.org/show_bug.cgi?id=218825

Reviewed by Eric Carlson.

Source/WebCore:

Add utility function to MediaPlayer to reload the media engine and resume
playback if necessary. This is called after the GPU process has crashed
so that the playback picks up where it left off.

Also add a new seekWhenPossible() function that only attempts to seek
once we've received the metadata. Any attempt to seek before the metadata
has been received gets ignored otherwise.

  • platform/graphics/MediaPlayer.cpp:

(WebCore::MediaPlayer::reloadAndResumePlaybackIfNeeded):
(WebCore::MediaPlayer::seekWhenPossible):
(WebCore::MediaPlayer::readyStateChanged):

  • platform/graphics/MediaPlayer.h:

Source/WebKit:

When the GPU process crashes and there are pending media players, we
now relaunch the GPU process and ask those media players to reconstuct
their private media players, reload the file and resume playback if
necessary. This ensures that in case of a GPU process crash while the
user is playing a video, the video just seamlessly keeps playing from
where it was before the crash.

Before this patch, we would end up busy looping and the WebContent process
would use 100% CPU after a GPU process crash.

  • WebProcess/GPU/GPUProcessConnection.h:

(WebKit::GPUProcessConnection::addClient):
(WebKit::GPUProcessConnection::removeClient):

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

(WebKit::proxyConfigurationForPlayer):
(WebKit::RemoteMediaPlayerManager::gpuProcessConnection const):
(WebKit::RemoteMediaPlayerManager::gpuProcessConnectionDidClose):

  • WebProcess/GPU/media/RemoteMediaPlayerManager.h:

Tools:

Add API test coverage.

  • TestWebKitAPI/Tests/WebKitCocoa/GPUProcess.mm:

(TEST):

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

ASSERTION FAILED: isValidIdentifier(m_identifier) seen with TestWebKitAPI.GPUProcess.WebProcessTerminationAfterTooManyGPUProcessCrashes
https://bugs.webkit.org/show_bug.cgi?id=218856
<rdar://problem/71331809>

Reviewed by Tim Horton.

The API test is repeatedly killing the GPU process. As a result, it is possible for the
GPUProcess to crash while RemoteAudioDestinationProxy::connectToGPUProcess() is in the
middle of its RemoteAudioDestinationManager::CreateAudioDestination() synchronous IPC.
The function would fail to check if the IPC was successful and proceed with an invalid
destinationID in such cases, causing the crash.

We now check if the sendSync() was successful. If it wasn't we now log an error and
return early. RemoteAudioDestinationManager::gpuProcessConnectionDidClose() will get
called later on to notify us that the GPU Process crashed and it will call
connectToGPUProcess() again.

No new tests, covered by existing API test that is flakily crashing.

  • WebProcess/GPU/media/RemoteAudioDestinationProxy.cpp:

(WebKit::RemoteAudioDestinationProxy::connectToGPUProcess):

1:53 PM Changeset in webkit [269748] by Alan Coon
  • 8 edits in branches/safari-610.3.7.1-branch/Source

Versioning.

WebKit-7610.3.7.1.4

1:24 PM Changeset in webkit [269747] by Antti Koivisto
  • 3 edits in trunk/Source/WebCore

[LFC][Integration] VisiblePosition::absoluteSelectionBoundsForLine should use iterator
https://bugs.webkit.org/show_bug.cgi?id=218866

Reviewed by Zalan Bujtas.

  • editing/VisiblePosition.cpp:

(WebCore::VisiblePosition::absoluteSelectionBoundsForLine const):

Also fix confused logical->physical mapping. The client wants physical position.

  • editing/VisiblePosition.h:

(WebCore::VisiblePosition::inlineBoxAndOffset const): Deleted.

12:54 PM Changeset in webkit [269746] by Caio Lima
  • 2 edits in trunk/JSTests

[Intl][ARMv7][MIPS] Skip stress/intl-datetimeformat-formatrange.js
https://bugs.webkit.org/show_bug.cgi?id=218867

Unreviewed test gardening.

  • stress/intl-datetimeformat-formatrange.js:
12:25 PM Changeset in webkit [269745] by Alan Bujtas
  • 15 edits in trunk

[LFC][Integration] Enable inline replaced support
https://bugs.webkit.org/show_bug.cgi?id=218514
<rdar://problem/71239028>

Reviewed by Antti Koivisto.

LayoutTests/imported/w3c:

  • web-platform-tests/html/browsers/sandboxing/sandbox-parse-noscript-expected.txt:

Source/WebCore:

  • layout/integration/LayoutIntegrationCoverage.cpp:

LayoutTests:

Progressions (mostly trimmable trailing whitespace).

  • accessibility/mac/attachment-element-replacement-character-expected.txt:
  • compositing/canvas/accelerated-canvas-compositing-size-limit-expected.txt:
  • platform/mac/fast/block/basic/013-expected.txt:
  • platform/mac/fast/frames/iframe-scrolling-attribute-expected.txt:
10:46 AM Changeset in webkit [269744] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[LFC][IFC] FormattingContext::Geometry::computedHeightValue should handle min, max and fit-content
https://bugs.webkit.org/show_bug.cgi?id=218853

Reviewed by Antti Koivisto.

This is not an actual support for those height values (that's something the caller needs to implement),
it's just avoiding the assertion in valueForLength.

  • layout/FormattingContextGeometry.cpp:

(WebCore::Layout::FormattingContext::Geometry::computedHeightValue const):

10:38 AM Changeset in webkit [269743] by Alan Coon
  • 1 copy in tags/Safari-611.1.4.0.2

Tag Safari-611.1.4.0.2.

10:35 AM Changeset in webkit [269742] by Alan Coon
  • 1 edit in branches/safari-611.1.4.0-branch/Source/WebCore/DerivedSources.make

Unreviewed build fix. rdar://71019899

Remove SpeechRecognition IDL files from WebCore/DerivedSources.make

10:31 AM Changeset in webkit [269741] by Alan Coon
  • 8 edits in branches/safari-611.1.4.0-branch/Source

Versioning.

WebKit-7611.1.4.0.2

10:29 AM Changeset in webkit [269740] by Alan Coon
  • 1 copy in tags/Safari-611.1.5

Tag Safari-611.1.5.

10:26 AM Changeset in webkit [269739] by youenn@apple.com
  • 5 edits in trunk/Source/WebKit

WebProcess should process WebRTC codecs IPC messages from the GPU Process in a background thread
https://bugs.webkit.org/show_bug.cgi?id=218790

Reviewed by Eric Carlson.

Use a WorkQueue to process GPU WebRTC codec IPC messages.
For that reason, handle encoder and decoder map within that queue.

Covered by existing tests.

  • GPUProcess/webrtc/LibWebRTCCodecsProxy.mm:

(WebKit::LibWebRTCCodecsProxy::setEncodeRates):

  • WebProcess/GPU/GPUProcessConnection.cpp:

(WebKit::GPUProcessConnection::dispatchMessage):

  • WebProcess/GPU/webrtc/LibWebRTCCodecs.cpp:

(WebKit::LibWebRTCCodecs::LibWebRTCCodecs):
(WebKit::LibWebRTCCodecs::~LibWebRTCCodecs):
(WebKit::LibWebRTCCodecs::setConnection):
(WebKit::LibWebRTCCodecs::createDecoder):
(WebKit::LibWebRTCCodecs::releaseDecoder):
(WebKit::LibWebRTCCodecs::failedDecoding):
(WebKit::LibWebRTCCodecs::completedDecoding):
(WebKit::LibWebRTCCodecs::createEncoder):
(WebKit::LibWebRTCCodecs::releaseEncoder):
(WebKit::LibWebRTCCodecs::initializeEncoder):
(WebKit::LibWebRTCCodecs::setEncodeRates):
(WebKit::LibWebRTCCodecs::completedEncoding):
(WebKit::LibWebRTCCodecs::dispatchToThread):

  • WebProcess/GPU/webrtc/LibWebRTCCodecs.h:
10:00 AM Changeset in webkit [269738] by aakash_jain@apple.com
  • 2 edits in trunk/Tools

[build.webkit.org] configure buildbot not to send Usage Data to buildbot developers
https://bugs.webkit.org/show_bug.cgi?id=218821

Reviewed by Jonathan Bedard.

  • CISupport/build-webkit-org/master_buildbot2.cfg:
9:57 AM Changeset in webkit [269737] by ysuzuki@apple.com
  • 44 edits
    9 moves
    21 adds
    3 deletes in trunk/JSTests

[JSC] Upgrade test262
https://bugs.webkit.org/show_bug.cgi?id=218845

Reviewed by Alexey Shvayka.

One failing test is test262 bug and tracked in https://github.com/tc39/test262/pull/2898.

  • test262/expectations.yaml:
  • test262/harness/atomicsHelper.js:
  • test262/latest-changes-summary.txt:
  • test262/test/built-ins/Atomics/waitAsync/bigint/true-for-timeout.js:
  • test262/test/built-ins/Atomics/waitAsync/returns-result-object-value-is-promise-resolves-to-timed-out.js:
  • test262/test/built-ins/Atomics/waitAsync/true-for-timeout.js:
  • test262/test/built-ins/Object/seal/configurable-attribute-all-own-properties-set-from-true-to-false-property-are-unaltered.js: Renamed from JSTests/test262/test/built-ins/Object/seal/object-seal-the-configurable-attribute-of-all-own-properties-of-o-are-set-from-true-to-false-and-other-attributes-of-the-property-are-unaltered.js.
  • test262/test/built-ins/Object/seal/configurable-attribute-own-accessor-property-set-from-true-to-false-property-are-unaltered.js: Renamed from JSTests/test262/test/built-ins/Object/seal/object-seal-the-configurable-attribute-of-own-accessor-property-of-o-is-set-from-true-to-false-and-other-attributes-of-the-property-are-unaltered.js.
  • test262/test/built-ins/Object/seal/seal-finalizationregistry.js:
  • test262/test/built-ins/Object/seal/seal-weakref.js:
  • test262/test/built-ins/String/prototype/split/arguments-are-objects-and-instance-is-string-first-object-have-overrided-to-string-function-and-value-of-function-that-throw-exception-second-object-have-overrided-value-of-function-that-throw-exception.js: Removed.
  • test262/test/built-ins/String/prototype/split/separator-override-tostring-limit-override-valueof-throws.js: Renamed from JSTests/test262/test/built-ins/String/prototype/split/arguments-are-objects-and-instance-is-string-first-object-have-overrided-to-string-function-second-object-have-overrided-value-of-function-that-throw-exception.js.
  • test262/test/built-ins/String/prototype/split/separator-override-tostring-limit-override-valueof-tostring-throws.js: Renamed from JSTests/test262/test/built-ins/String/prototype/split/arguments-are-objects-and-instance-is-string-first-object-have-overrided-to-string-function-second-object-have-overrided-value-of-function-and-to-string-function-that-throw-exception.js.
  • test262/test/built-ins/String/prototype/split/separator-override-tostring-limit-override-valueof-tostring.js: Renamed from JSTests/test262/test/built-ins/String/prototype/split/arguments-are-objects-and-instance-is-string-first-object-have-overrided-to-string-function-second-object-have-overrided-value-of-and-to-string-functions.js.
  • test262/test/built-ins/String/prototype/split/separator-override-tostring-limit-override-valueof.js: Renamed from JSTests/test262/test/built-ins/String/prototype/split/arguments-are-objects-and-instance-is-string-first-object-have-overrided-to-string-function-second-object-have-overrided-value-of-function.js.
  • test262/test/built-ins/String/prototype/split/separator-override-tostring-throws-limit-override-valueof-throws.js: Renamed from JSTests/test262/test/built-ins/String/prototype/split/arguments-are-objects-and-instance-is-string-first-object-have-overrided-to-string-function-that-throw-exception-second-object-have-overrided-value-of-function-that-throw-exception.js.
  • test262/test/built-ins/String/prototype/split/separator-override-valueof.js: Renamed from JSTests/test262/test/built-ins/String/prototype/split/argument-is-function-and-instance-is-string-object-object-have-overrided-to-string-and-value-of-functions.js.
  • test262/test/built-ins/String/prototype/split/transferred-to-custom.js: Added.

(Splittable.this.toString):
(Splittable.this.valueOf):
(Splittable):

  • test262/test/built-ins/String/prototype/split/transferred-to-number-separator-override-tostring-returns-regexp.js: Renamed from JSTests/test262/test/built-ins/String/prototype/split/argument-is-object-and-instance-is-number-object-have-overrided-to-string-function-that-return-regexp.js.
  • test262/test/built-ins/String/prototype/split/valueOf-is-called-for-limit-argument.js: Added.

(let.limit.toString):
(let.limit.valueOf):

  • test262/test/built-ins/TypedArray/prototype/every/BigInt/callbackfn-detachbuffer.js:

(testWithBigIntTypedArrayConstructors):

  • test262/test/built-ins/TypedArray/prototype/every/callbackfn-detachbuffer.js:

(testWithTypedArrayConstructors):

  • test262/test/built-ins/TypedArray/prototype/filter/BigInt/callbackfn-detachbuffer.js:

(testWithBigIntTypedArrayConstructors):

  • test262/test/built-ins/TypedArray/prototype/filter/callbackfn-detachbuffer.js:

(testWithTypedArrayConstructors):

  • test262/test/built-ins/TypedArray/prototype/find/BigInt/predicate-may-detach-buffer.js:

(testWithBigIntTypedArrayConstructors):

  • test262/test/built-ins/TypedArray/prototype/find/predicate-may-detach-buffer.js:

(testWithTypedArrayConstructors):

  • test262/test/built-ins/TypedArray/prototype/findIndex/predicate-may-detach-buffer.js:

(testWithTypedArrayConstructors):

  • test262/test/built-ins/TypedArray/prototype/forEach/BigInt/callbackfn-detachbuffer.js:

(testWithBigIntTypedArrayConstructors):

  • test262/test/built-ins/TypedArray/prototype/forEach/callbackfn-detachbuffer.js:

(testWithTypedArrayConstructors):

  • test262/test/built-ins/TypedArray/prototype/map/BigInt/callbackfn-detachbuffer.js:

(testWithBigIntTypedArrayConstructors):

  • test262/test/built-ins/TypedArray/prototype/map/callbackfn-detachbuffer.js:

(testWithTypedArrayConstructors):

  • test262/test/built-ins/TypedArray/prototype/reduce/BigInt/callbackfn-detachbuffer.js:

(testWithBigIntTypedArrayConstructors):

  • test262/test/built-ins/TypedArray/prototype/reduce/callbackfn-detachbuffer.js:

(testWithTypedArrayConstructors):

  • test262/test/built-ins/TypedArray/prototype/reduceRight/BigInt/callbackfn-detachbuffer.js:

(testWithBigIntTypedArrayConstructors):

  • test262/test/built-ins/TypedArray/prototype/reduceRight/callbackfn-detachbuffer.js:

(testWithTypedArrayConstructors):

  • test262/test/built-ins/TypedArray/prototype/slice/BigInt/detached-buffer-custom-ctor-other-targettype.js:

(testWithBigIntTypedArrayConstructors.get sample): Deleted.

  • test262/test/built-ins/TypedArray/prototype/slice/detached-buffer-custom-ctor-other-targettype.js:

(testWithTypedArrayConstructors.get sample): Deleted.

  • test262/test/built-ins/TypedArray/prototype/some/BigInt/callbackfn-detachbuffer.js:

(testWithBigIntTypedArrayConstructors):

  • test262/test/built-ins/TypedArray/prototype/some/callbackfn-detachbuffer.js:

(testWithTypedArrayConstructors):

  • test262/test/built-ins/TypedArrayConstructors/internals/DefineOwnProperty/BigInt/detached-buffer-realm.js:
  • test262/test/built-ins/TypedArrayConstructors/internals/DefineOwnProperty/BigInt/key-is-numericindex-desc-configurable.js:

(testWithBigIntTypedArrayConstructors):

  • test262/test/built-ins/TypedArrayConstructors/internals/DefineOwnProperty/BigInt/key-is-numericindex.js:

(testWithBigIntTypedArrayConstructors):

  • test262/test/built-ins/TypedArrayConstructors/internals/DefineOwnProperty/key-is-numericindex-desc-configurable.js:

(testWithTypedArrayConstructors):

  • test262/test/built-ins/TypedArrayConstructors/internals/DefineOwnProperty/key-is-numericindex.js:

(testWithTypedArrayConstructors):

  • test262/test/built-ins/TypedArrayConstructors/internals/GetOwnProperty/BigInt/index-prop-desc.js:

(testWithBigIntTypedArrayConstructors):

  • test262/test/built-ins/TypedArrayConstructors/internals/GetOwnProperty/index-prop-desc.js:

(testWithTypedArrayConstructors):

  • test262/test/built-ins/TypedArrayConstructors/internals/Set/BigInt/detached-buffer-realm.js:

(testWithBigIntTypedArrayConstructors):

  • test262/test/built-ins/TypedArrayConstructors/internals/Set/BigInt/detached-buffer.js:

(testWithBigIntTypedArrayConstructors):

  • test262/test/built-ins/TypedArrayConstructors/internals/Set/BigInt/tonumber-value-detached-buffer.js:

(testWithBigIntTypedArrayConstructors):

  • test262/test/built-ins/TypedArrayConstructors/internals/Set/detached-buffer-realm.js:

(testWithTypedArrayConstructors):

  • test262/test/built-ins/TypedArrayConstructors/internals/Set/detached-buffer.js:

(testWithTypedArrayConstructors):

  • test262/test/built-ins/TypedArrayConstructors/internals/Set/tonumber-value-detached-buffer.js:

(testWithTypedArrayConstructors):

  • test262/test/intl402/DateTimeFormat/intl-legacy-constructed-symbol-on-unwrap.js: Added.

(try.get target):
(catch):

  • test262/test/intl402/DateTimeFormat/intl-legacy-constructed-symbol.js: Added.
  • test262/test/intl402/NumberFormat/intl-legacy-constructed-symbol-on-unwrap.js: Added.

(try.get target):
(catch):

  • test262/test/intl402/NumberFormat/intl-legacy-constructed-symbol.js: Added.
  • test262/test/language/eval-code/direct/arrow-fn-body-cntns-arguments-fn-decl-params-cntns-dflt-assignment-arrow-func-declare-arguments-assign-incl-def-param-arrow-arguments.js: Removed.
  • test262/test/language/eval-code/direct/arrow-fn-body-cntns-arguments-fn-decl-params-cntns-dflt-assignment-arrow-func-declare-arguments-assign.js: Removed.
  • test262/test/language/literals/string/legacy-non-octal-escape-sequence-1-strict-explicit-pragma.js: Added.

(invalid):

  • test262/test/language/literals/string/legacy-non-octal-escape-sequence-2-strict-explicit-pragma.js: Added.

(invalid):

  • test262/test/language/literals/string/legacy-non-octal-escape-sequence-3-strict-explicit-pragma.js: Added.

(invalid):

  • test262/test/language/literals/string/legacy-non-octal-escape-sequence-4-strict-explicit-pragma.js: Added.

(invalid):

  • test262/test/language/literals/string/legacy-non-octal-escape-sequence-5-strict-explicit-pragma.js: Added.

(invalid):

  • test262/test/language/literals/string/legacy-non-octal-escape-sequence-6-strict-explicit-pragma.js: Added.

(invalid):

  • test262/test/language/literals/string/legacy-non-octal-escape-sequence-7-strict-explicit-pragma.js: Added.

(invalid):

  • test262/test/language/literals/string/legacy-non-octal-escape-sequence-8-strict-explicit-pragma.js: Added.

(invalid):

  • test262/test/language/literals/string/legacy-non-octal-escape-sequence-9-strict-explicit-pragma.js: Added.

(invalid):

  • test262/test/language/module-code/export-expname-binding-string.js:
  • test262/test/language/module-code/export-expname-from-as-unpaired-surrogate.js: Added.
  • test262/test/language/module-code/export-expname-from-star-unpaired-surrogate.js: Added.
  • test262/test/language/module-code/export-expname-from-unpaired-surrogate.js: Added.
  • test262/test/language/module-code/export-expname-import-unpaired-surrogate.js: Added.
  • test262/test/language/module-code/export-expname-string-binding.js: Added.

(foo):

  • test262/test/language/module-code/export-expname-unpaired-surrogate.js: Added.

(Foo):

  • test262/test/language/module-code/export-expname_FIXTURE.js:
  • test262/test262-Revision.txt:
9:43 AM Changeset in webkit [269736] by aakash_jain@apple.com
  • 2 edits in trunk/Tools

[build.webkit.org] Remove obsolete buildHorizon, eventHorizon and logHorizon properties from master_buildbot2.cfg
https://bugs.webkit.org/show_bug.cgi?id=218818

Reviewed by Jonathan Bedard.

  • CISupport/build-webkit-org/master_buildbot2.cfg:
9:41 AM Changeset in webkit [269735] by aakash_jain@apple.com
  • 2 edits in trunk/Tools

[build.webkit.org] Replace status with www in master.cfg
https://bugs.webkit.org/show_bug.cgi?id=218822

Reviewed by Jonathan Bedard.

  • CISupport/build-webkit-org/master_buildbot2.cfg:
9:37 AM Changeset in webkit [269734] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[LFC][Integration] vertical-align: super and sub values are not supported yet.
https://bugs.webkit.org/show_bug.cgi?id=218851

Reviewed by Antti Koivisto.

  • layout/integration/LayoutIntegrationCoverage.cpp:

(WebCore::LayoutIntegration::canUseForChild):

9:03 AM Changeset in webkit [269733] by aakash_jain@apple.com
  • 2 edits in trunk/Tools

[build.webkit.org] replace cslavePortnum? with cprotocols? in master_buildbot2.cfg
https://bugs.webkit.org/show_bug.cgi?id=218819

Reviewed by Jonathan Bedard.

  • CISupport/build-webkit-org/master_buildbot2.cfg:
8:40 AM Changeset in webkit [269732] by Antti Koivisto
  • 7 edits in trunk/Source/WebCore

[LFC][IFC] Use inline iterator in VisiblePosition::left/rightVisuallyDistinctCandidate
https://bugs.webkit.org/show_bug.cgi?id=218848

Reviewed by Zalan Bujtas.

Less direct InlineBox access.

The patch also simplifies the iterator by removing separate LineRunIterator. Base RunIterator
is used instead and the incompatible traversal functions are explicitly hidden in TextRunIterator.

  • editing/VisiblePosition.cpp:

(WebCore::VisiblePosition::leftVisuallyDistinctCandidate const):
(WebCore::VisiblePosition::rightVisuallyDistinctCandidate const):

  • editing/VisibleUnits.cpp:

(WebCore::startPositionForLine):
(WebCore::endPositionForLine):

  • layout/integration/LayoutIntegrationLineIterator.cpp:

(WebCore::LayoutIntegration::LineIterator::firstRun const):
(WebCore::LayoutIntegration::LineIterator::lastRun const):
(WebCore::LayoutIntegration::LineIterator::logicalStartRunWithNode const):
(WebCore::LayoutIntegration::LineIterator::logicalEndRunWithNode const):
(WebCore::LayoutIntegration::LineIterator::closestRunForPoint):
(WebCore::LayoutIntegration::LineIterator::closestRunForLogicalLeftPosition):

  • layout/integration/LayoutIntegrationLineIterator.h:
  • layout/integration/LayoutIntegrationRunIterator.cpp:

(WebCore::LayoutIntegration::RunIterator::nextOnLine const):
(WebCore::LayoutIntegration::RunIterator::previousOnLine const):
(WebCore::LayoutIntegration::RunIterator::nextOnLineIgnoringLineBreak const):
(WebCore::LayoutIntegration::RunIterator::previousOnLineIgnoringLineBreak const):
(WebCore::LayoutIntegration::RunIterator::traverseNextOnLine):
(WebCore::LayoutIntegration::RunIterator::traversePreviousOnLine):
(WebCore::LayoutIntegration::RunIterator::traverseNextOnLineIgnoringLineBreak):
(WebCore::LayoutIntegration::RunIterator::traversePreviousOnLineIgnoringLineBreak):
(WebCore::LayoutIntegration::LineRunIterator::LineRunIterator): Deleted.
(WebCore::LayoutIntegration::LineRunIterator::traverseNextOnLine): Deleted.
(WebCore::LayoutIntegration::LineRunIterator::traversePreviousOnLine): Deleted.
(WebCore::LayoutIntegration::LineRunIterator::traverseNextOnLineIgnoringLineBreak): Deleted.
(WebCore::LayoutIntegration::LineRunIterator::traversePreviousOnLineIgnoringLineBreak): Deleted.
(WebCore::LayoutIntegration::lineRun): Deleted.

  • layout/integration/LayoutIntegrationRunIterator.h:

(WebCore::LayoutIntegration::TextRunIterator::get const):
(WebCore::LayoutIntegration::LineRunIterator::LineRunIterator): Deleted.
(WebCore::LayoutIntegration::LineRunIterator::operator++): Deleted.

5:18 AM Changeset in webkit [269731] by aakash_jain@apple.com
  • 2 edits in trunk/Tools

[build.webkit.org] Update CheckOutSource step for new buildbot (follow-up fix)
https://bugs.webkit.org/show_bug.cgi?id=218802
<rdar://problem/71295484>

Unreviewed minor follow-up fix.

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

(CheckOutSource):

4:18 AM Changeset in webkit [269730] by commit-queue@webkit.org
  • 10 edits
    1 add in trunk/LayoutTests

Simplify mainframe tests tiled-drawing/scrolling/scroll-snap
https://bugs.webkit.org/show_bug.cgi?id=218757

Patch by Martin Robinson <mrobinson@igalia.com> on 2020-11-12
Reviewed by Simon Fraser.

  • tiled-drawing/scrolling/scroll-snap/resources/mainframe-scroll-snap-test.js: Added. Allows

sharing the mainframe scroll testing code between tests and reimplements them with Promises.

  • tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-mainframe-horizontal-legacy.html:
  • tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-mainframe-horizontal-with-margin.html:
  • tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-mainframe-horizontal.html:
  • tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-mainframe-slow-horizontal.html:
  • tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-mainframe-slow-vertical.html:
  • tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-mainframe-vertical-legacy.html:
  • tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-mainframe-vertical-then-horizontal.html:
  • tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-mainframe-vertical-with-margin.html:
  • tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-mainframe-vertical.html:
3:59 AM Changeset in webkit [269729] by commit-queue@webkit.org
  • 21 edits in trunk

[WASM-References] Support imm for ref.null
https://bugs.webkit.org/show_bug.cgi?id=218744

Patch by Dmitry Bezhetskov <dbezhetskov> on 2020-11-12
Reviewed by Yusuke Suzuki.

JSTests:

Updated the Builder DSL and spec tests for ref.null extern/funcref.
Spec is here - https://webassembly.github.io/reference-types/core/.

  • wasm/Builder.js:

(export.default.Builder.prototype._registerSectionBuilders.const.section.in.WASM.description.section.switch.section.case.string_appeared_here.this.section):

  • wasm/Builder_WebAssemblyBinary.js:

(const.putInitExpr):

  • wasm/LowLevelBinary.js:

(export.default.LowLevelBinary.prototype.ref_type):

  • wasm/WASM.js:
  • wasm/references-spec-tests/ref_is_null.js:
  • wasm/references-spec-tests/ref_null.js:
  • wasm/references/externref_globals.js:
  • wasm/references/externref_modules.js:
  • wasm/references/externref_table.js:
  • wasm/references/externref_table_import.js:

(makeImport):
(string_appeared_here.fullGC.assert.eq.1.exports.get_tbl.makeImport):
(string_appeared_here.fullGC.assert.eq.1.exports.get_tbl):

  • wasm/references/func_ref.js:

(assert.eq.instance.exports.fix):

  • wasm/references/is_null.js:

(checkRefNullWithI32ImmType):

  • wasm/references/multitable.js:
  • wasm/wasm.json:

Source/JavaScriptCore:

Updated ref.null according to the ref-types spec:
https://github.com/WebAssembly/reference-types/.

  • wasm/WasmFormat.h:

(JSC::Wasm::isRefType):

  • wasm/WasmFunctionParser.h:

(JSC::Wasm::FunctionParser<Context>::parseExpression):

  • wasm/WasmParser.h:

(JSC::Wasm::Parser<SuccessType>::parseRefType):

  • wasm/WasmSectionParser.cpp:

(JSC::Wasm::SectionParser::parseInitExpr):

  • wasm/wasm.json:
3:25 AM Changeset in webkit [269728] by svillar@igalia.com
  • 3 edits
    2 adds in trunk

Crash in RenderBox::overrideContainingBlockContentHeight()
https://bugs.webkit.org/show_bug.cgi?id=218504
<rdar://problem/70989103>

Reviewed by Zalan Bujtas.

Source/WebCore:

It should check the overriding widths map for vertical writing modes because it deals with logical sizes. Instead it was always checking the
overriding heights map and thus giving incorrect results.

Test: fast/flexbox/flex-column-vertical-rl-dynamic-child-crash.html

  • rendering/RenderBox.cpp:

(WebCore::RenderBox::hasOverridingContainingBlockContentHeight const): Check gOverridingContainingBlockContentLogicalWidthMap
for vertical writing modes.

LayoutTests:

  • fast/flexbox/flex-column-vertical-rl-dynamic-child-crash-expected.txt: Added.
  • fast/flexbox/flex-column-vertical-rl-dynamic-child-crash.html: Added.
3:10 AM Changeset in webkit [269727] by Diego Pino Garcia
  • 2 edits in trunk/Source/WebKit

[GTK] Unreviewed, non-unified build fix.

  • WebProcess/Gamepad/WebGamepadProvider.cpp: Add missing Logging.h header.
2:50 AM Changeset in webkit [269726] by Alan Bujtas
  • 39 edits
    1 copy
    1 delete in trunk

Show legacy line layout visual coverage instead of "simple line" layout.
https://bugs.webkit.org/show_bug.cgi?id=218695

Reviewed by Antti Koivisto.

Source/WebCore:

Paint legacy line layout content with the debug shadow instead of the modern one (and use red instead of blue).

  • layout/integration/LayoutIntegrationLineLayout.cpp:

(WebCore::LayoutIntegration::LineLayout::paint):
(WebCore::LayoutIntegration::LineLayout::debugTextShadow): Deleted.

  • layout/integration/LayoutIntegrationLineLayout.h:
  • rendering/InlineTextBox.cpp:

(WebCore::InlineTextBox::paintMarkedTextForeground):
(WebCore::InlineTextBox::debugTextShadow):

  • rendering/InlineTextBox.h:

Source/WebKit:

  • UIProcess/API/C/WKPreferences.cpp:

(WKPreferencesSetLegacyLineLayoutVisualCoverageEnabled):
(WKPreferencesGetLegacyLineLayoutVisualCoverageEnabled):
(WKPreferencesSetSimpleLineLayoutDebugBordersEnabled): Deleted.
(WKPreferencesGetSimpleLineLayoutDebugBordersEnabled): Deleted.

  • UIProcess/API/C/WKPreferencesRefPrivate.h:
  • UIProcess/API/Cocoa/WKPreferences.mm:

(-[WKPreferences _legacyLineLayoutVisualCoverageEnabled]):
(-[WKPreferences _setLegacyLineLayoutVisualCoverageEnabled:]):
(-[WKPreferences _simpleLineLayoutDebugBordersEnabled]): Deleted.
(-[WKPreferences _setSimpleLineLayoutDebugBordersEnabled:]): Deleted.

  • UIProcess/API/Cocoa/WKPreferencesPrivate.h:

Source/WebKitLegacy/mac:

  • WebView/WebPreferenceKeysPrivate.h:
  • WebView/WebPreferences.mm:

(-[WebPreferences legacyLineLayoutVisualCoverageEnabled]):
(-[WebPreferences setLegacyLineLayoutVisualCoverageEnabled:]):
(-[WebPreferences simpleLineLayoutDebugBordersEnabled]): Deleted.
(-[WebPreferences setSimpleLineLayoutDebugBordersEnabled:]): Deleted.

  • WebView/WebPreferencesPrivate.h:

Source/WTF:

  • Scripts/Preferences/WebPreferencesDebug.yaml:

Tools:

  • MiniBrowser/mac/SettingsController.h:
  • MiniBrowser/mac/SettingsController.m:

(-[SettingsController _populateMenu]):
(-[SettingsController validateMenuItem:]):
(-[SettingsController toggleLegacyLineLayoutVisualCoverageEnabled:]):
(-[SettingsController legacyLineLayoutVisualCoverageEnabled]):
(-[SettingsController toggleSimpleLineLayoutDebugBordersEnabled:]): Deleted.
(-[SettingsController simpleLineLayoutDebugBordersEnabled]): Deleted.

  • MiniBrowser/mac/WK1BrowserWindowController.m:

(-[WK1BrowserWindowController didChangeSettings]):

  • MiniBrowser/mac/WK2BrowserWindowController.m:

(-[WK2BrowserWindowController didChangeSettings]):

LayoutTests:

  • fast/inline/simple-line-layout-16bit-content-expected-mismatch.html: Removed.
  • fast/inline/simple-line-layout-16bit-content.html:
  • fast/text/simple-line-layout-do-not-support-unicode-range-expected.html:
  • fast/text/simple-line-layout-do-not-support-unicode-range.html:
  • fast/text/simple-line-layout-line-box-contain-glyphs-expected.html:
  • fast/text/simple-line-layout-line-box-contain-glyphs.html:
  • fast/text/simple-line-layout-no-surrogate-pairs-expected.html:
  • fast/text/simple-line-layout-no-surrogate-pairs.html:
  • fast/text/simple-line-layout-simple-text-but-complex-font-path-expected.html:
  • fast/text/simple-line-layout-simple-text-but-complex-font-path.html:
  • fast/text/simple-line-layout-with-text-underline-position-expected.html:
  • fast/text/simple-line-layout-with-text-underline-position.html:
  • fast/text/simple-lines-float-expected.html:
  • fast/text/simple-lines-float.html:
  • fast/text/simple-lines-hover-expected.html:
  • fast/text/simple-lines-hover.html:
  • fast/text/simple-lines-multiple-renderers-expected.html:
  • fast/text/simple-lines-multiple-renderers.html:
1:26 AM Changeset in webkit [269725] by Lauro Moura
  • 2 edits in trunk/Tools

[WPE][TestWebKitAPI] Wait for RenderingState::Started to avoid flakiness
https://bugs.webkit.org/show_bug.cgi?id=218841

Reviewed by Adrian Perez de Castro.

The external audio rendering test asked JS to play the video but
checked the condition right away. As with other tests, the full side
effects of the JS call might not have propagated, causing the
assertion to fail. This became especially visible after the build with
r269579.

So, like the other conditions in the test, add a method to wait for
the condition.

  • TestWebKitAPI/Tests/WebKitGLib/TestWebKitWebView.cpp:

(AudioRenderingWebViewTest::waitUntilStarted): Added

1:09 AM Changeset in webkit [269724] by Said Abou-Hallawa
  • 25 edits in trunk/Source

[GPU Process] Implement DisplayList::ClipToImageBuffer item
https://bugs.webkit.org/show_bug.cgi?id=218843

Reviewed by Tim Horton.

Source/WebCore:

Record the renderingResourceIdentifier of the ImageBuffer. At replaying
time, the renderingResourceIdentifier of the ClipToImageBuffer will be
resolved to an ImageBuffer. The actual clipping will be moved to an new
function named ImageBuffer::clipToMask().

  • platform/graphics/ConcreteImageBuffer.h:
  • platform/graphics/GraphicsContext.cpp:

(WebCore::GraphicsContext::clipToImageBuffer):

  • platform/graphics/ImageBuffer.h:
  • platform/graphics/ImageBufferBackend.h:

(WebCore::ImageBufferBackend::clipToMask):

  • platform/graphics/cairo/GraphicsContextCairo.cpp:

(WebCore::GraphicsContext::clipToImageBuffer): Deleted.

  • platform/graphics/cairo/ImageBufferCairoBackend.cpp:

(WebCore::ImageBufferCairoBackend::clipToMask):

  • platform/graphics/cairo/ImageBufferCairoBackend.h:
  • platform/graphics/cg/GraphicsContextCG.cpp:

(WebCore::GraphicsContext::clipToImageBuffer): Deleted.

  • platform/graphics/cg/ImageBufferCGBackend.cpp:

(WebCore::ImageBufferCGBackend::clipToMask):

  • platform/graphics/cg/ImageBufferCGBackend.h:
  • platform/graphics/displaylists/DisplayList.cpp:

(WebCore::DisplayList::DisplayList::append):

  • platform/graphics/displaylists/DisplayListItemBuffer.cpp:

(WebCore::DisplayList::ItemHandle::apply):
(WebCore::DisplayList::ItemHandle::destroy):
(WebCore::DisplayList::ItemHandle::copyTo const):

  • platform/graphics/displaylists/DisplayListItemType.cpp:

(WebCore::DisplayList::sizeOfItemInBytes):
(WebCore::DisplayList::isDrawingItem):
(WebCore::DisplayList::isInlineItem):

  • platform/graphics/displaylists/DisplayListItemType.h:
  • platform/graphics/displaylists/DisplayListItems.cpp:

(WebCore::DisplayList::ClipToImageBuffer::apply const):
(WebCore::DisplayList::operator<<):

  • platform/graphics/displaylists/DisplayListItems.h:

(WebCore::DisplayList::ClipToImageBuffer::ClipToImageBuffer):
(WebCore::DisplayList::ClipToImageBuffer::imageBufferIdentifier const):
(WebCore::DisplayList::ClipToImageBuffer::destinationRect const):

  • platform/graphics/displaylists/DisplayListRecorder.cpp:

(WebCore::DisplayList::Recorder::clipToImageBuffer):

  • platform/graphics/displaylists/DisplayListReplayer.cpp:

(WebCore::DisplayList::Replayer::applyItem):

  • platform/graphics/win/GraphicsContextDirect2D.cpp:

(WebCore::GraphicsContext::clipToImageBuffer): Deleted.

  • platform/graphics/win/ImageBufferDirect2DBackend.cpp:

(WebCore::ImageBufferDirect2DBackend::clipToMask):

  • platform/graphics/win/ImageBufferDirect2DBackend.h:

Source/WebKit:

  • GPUProcess/graphics/RemoteRenderingBackend.cpp:

(WebKit::RemoteRenderingBackend::decodeItem):

  • WebProcess/GPU/graphics/RemoteImageBufferProxy.h:
1:03 AM Changeset in webkit [269723] by zandobersek@gmail.com
  • 2 edits in trunk/Source/WebKit

Unreviewed follow-up to r268965.

  • UIProcess/API/glib/WebKitSettings.cpp:

(webkit_settings_get_enable_accelerated_2d_canvas):
Use the FALSE identifier, following GLib styling guidelines.

12:56 AM Changeset in webkit [269722] by commit-queue@webkit.org
  • 2 edits in trunk/JSTests

[JSC] Skip stress/lars-sab-workers.js on arm32
https://bugs.webkit.org/show_bug.cgi?id=218797

Patch by Angelos Oikonomopoulos <Angelos Oikonomopoulos> on 2020-11-12
Reviewed by Žan Doberšek.

The test is currently flaky on arm32 when run in bytecode-cache mode.
Skip pending further investigation.

  • stress/lars-sab-workers.js:
12:47 AM Changeset in webkit [269721] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit

[GTK] Swipe navigation shadow is blurry on hidpi
https://bugs.webkit.org/show_bug.cgi?id=218800

Patch by Alexander Mikhaylenko <exalm7659@gmail.com> on 2020-11-12
Reviewed by Carlos Garcia Campos.

  • UIProcess/gtk/ViewGestureControllerGtk.cpp:

(WebKit::createElementPattern): Scale surface size and set its scale factor.
(WebKit::ViewGestureController::beginSwipeGesture): Pass scale factor to createElementPattern().

12:21 AM Changeset in webkit [269720] by ysuzuki@apple.com
  • 2 edits in trunk/JSTests

Unreviewed, rebaseline test262's config.yaml part 2

test262 bot is using Catalina, it should use Big Sur. filed in [1].

[1]: https://bugs.webkit.org/show_bug.cgi?id=218844

  • test262/config.yaml:

Nov 11, 2020:

11:57 PM Changeset in webkit [269719] by ysuzuki@apple.com
  • 3 edits in trunk/JSTests

Unreviewed, rebaseline test262's config.yaml

test262 bot is using Catalina, it should use Big Sur. filed in [1].

[1]: https://bugs.webkit.org/show_bug.cgi?id=218844

  • test262/config.yaml:
  • test262/expectations.yaml:
10:30 PM Changeset in webkit [269718] by BJ Burg
  • 3 edits in trunk/Source/WebKit

REGRESSION(r267411): Unable to "Start Element Selection" with Web Inspector closed
https://bugs.webkit.org/show_bug.cgi?id=218838
<rdar://problem/71158215>

Reviewed by Devin Rousso.

The inspector side of the connection between WebInspector (inspected WebProcess) and
WebInspectorUI (inspector WebProcess) was mistakenly removed in r267411. Revert those changes.
Without a valid frontend connection, WebInspector cannot forward some IPC messages
to WebInspectorUI including StartElementSelection.

  • WebProcess/Inspector/WebInspectorUI.cpp:

(WebKit::WebInspectorUI::updateConnection):
(WebKit::WebInspectorUI::closeWindow):

  • WebProcess/Inspector/WebInspectorUI.h:
10:24 PM Changeset in webkit [269717] by commit-queue@webkit.org
  • 3 edits in trunk

[css-grid] Percentage height on replaced item with scrollbar
https://bugs.webkit.org/show_bug.cgi?id=191462

Patch by Ziran Sun <Ziran Sun> on 2020-11-11
Reviewed by Manuel Rego Casasnovas.

This CL is to subtract scrollbar in computeReplacedLogicalHeightUsing().
In RenderBox::computeReplacedLogicalHeightUsing() we should also subtract
scrollbarLogicalHeight() when calculating stretchHeight. Without this subtraction,
it caused issues to resolve the percentage heights on grid item replaced children,
if the grid item has a scrollbar.

It ports the changes from the following patch at Chromium:
https://bugs.chromium.org/p/chromium/issues/detail?id=837141
Test files were already ported in WPT at
https://github.com/web-platform-tests/wpt/commit/538eedafb15733c6113b44998170a6bbdae7518b

  • rendering/RenderBox.cpp:

(WebCore::RenderBox::computeReplacedLogicalHeightUsing const):

10:09 PM Changeset in webkit [269716] by Said Abou-Hallawa
  • 21 edits in trunk/Source

[GPU Process] Delete the DisplayList items: DrawImage and DrawTiledImage
https://bugs.webkit.org/show_bug.cgi?id=218839

Reviewed by Tim Horton.

Source/WebCore:

This is clean up left from r269708. These DisplayList items are not needed
anymore. The default implementation of the recording functions in the super
classes of GraphicsContextImpl was to call Image::draw() or Image::drawTiled()
which we do right now by not recording in the functions:
GraphicsContext::drawImage() and GraphicsContext::drawTiledImage().

  • platform/graphics/GraphicsContextImpl.cpp:

(WebCore::GraphicsContextImpl::drawImageImpl): Deleted.
(WebCore::GraphicsContextImpl::drawTiledImageImpl): Deleted.

  • platform/graphics/GraphicsContextImpl.h:
  • platform/graphics/cairo/GraphicsContextImplCairo.cpp:

(WebCore::GraphicsContextImplCairo::drawImage): Deleted.
(WebCore::GraphicsContextImplCairo::drawTiledImage): Deleted.

  • platform/graphics/cairo/GraphicsContextImplCairo.h:
  • platform/graphics/displaylists/DisplayList.cpp:

(WebCore::DisplayList::DisplayList::append):

  • platform/graphics/displaylists/DisplayListDrawGlyphsRecorderCoreText.cpp:

(WebCore::DisplayList::DrawGlyphsRecorder::recordDrawImage):

  • platform/graphics/displaylists/DisplayListItemBuffer.cpp:

(WebCore::DisplayList::ItemHandle::apply):
(WebCore::DisplayList::ItemHandle::destroy):
(WebCore::DisplayList::ItemHandle::copyTo const):

  • platform/graphics/displaylists/DisplayListItemType.cpp:

(WebCore::DisplayList::sizeOfItemInBytes):
(WebCore::DisplayList::isDrawingItem):
(WebCore::DisplayList::isInlineItem):

  • platform/graphics/displaylists/DisplayListItemType.h:
  • platform/graphics/displaylists/DisplayListItems.cpp:

(WebCore::DisplayList::operator<<):
(WebCore::DisplayList::DrawImage::apply const): Deleted.
(WebCore::DisplayList::DrawTiledImage::apply const): Deleted.
(WebCore::DisplayList::DrawTiledScaledImage::apply const): Deleted.

  • platform/graphics/displaylists/DisplayListItems.h:

(WebCore::DisplayList::DrawImage::DrawImage): Deleted.
(WebCore::DisplayList::DrawImage::image const): Deleted.
(WebCore::DisplayList::DrawImage::source const): Deleted.
(WebCore::DisplayList::DrawImage::destination const): Deleted.
(WebCore::DisplayList::DrawImage::globalBounds const): Deleted.
(WebCore::DisplayList::DrawImage::localBounds const): Deleted.
(WebCore::DisplayList::DrawImage::encode const): Deleted.
(WebCore::DisplayList::DrawImage::decode): Deleted.
(WebCore::DisplayList::DrawTiledImage::image const): Deleted.
(WebCore::DisplayList::DrawTiledImage::source const): Deleted.
(WebCore::DisplayList::DrawTiledImage::destination const): Deleted.
(WebCore::DisplayList::DrawTiledImage::tileSize const): Deleted.
(WebCore::DisplayList::DrawTiledImage::spacing const): Deleted.
(WebCore::DisplayList::DrawTiledImage::DrawTiledImage): Deleted.
(WebCore::DisplayList::DrawTiledImage::globalBounds const): Deleted.
(WebCore::DisplayList::DrawTiledImage::localBounds const): Deleted.
(WebCore::DisplayList::DrawTiledImage::encode const): Deleted.
(WebCore::DisplayList::DrawTiledImage::decode): Deleted.
(WebCore::DisplayList::DrawTiledScaledImage::DrawTiledScaledImage): Deleted.
(WebCore::DisplayList::DrawTiledScaledImage::image const): Deleted.
(WebCore::DisplayList::DrawTiledScaledImage::source const): Deleted.
(WebCore::DisplayList::DrawTiledScaledImage::destination const): Deleted.
(WebCore::DisplayList::DrawTiledScaledImage::globalBounds const): Deleted.
(WebCore::DisplayList::DrawTiledScaledImage::localBounds const): Deleted.
(WebCore::DisplayList::DrawTiledScaledImage::encode const): Deleted.
(WebCore::DisplayList::DrawTiledScaledImage::decode): Deleted.

  • platform/graphics/displaylists/DisplayListRecorder.cpp:

(WebCore::DisplayList::Recorder::drawImage): Deleted.
(WebCore::DisplayList::Recorder::drawTiledImage): Deleted.

  • platform/graphics/displaylists/DisplayListRecorder.h:
  • platform/graphics/nicosia/cairo/NicosiaCairoOperationRecorder.cpp:

(Nicosia::CairoOperationRecorder::drawImage): Deleted.
(Nicosia::CairoOperationRecorder::drawTiledImage): Deleted.

  • platform/graphics/nicosia/cairo/NicosiaCairoOperationRecorder.h:
  • platform/graphics/win/GraphicsContextImplDirect2D.cpp:

(WebCore::GraphicsContextImplDirect2D::drawImage): Deleted.
(WebCore::GraphicsContextImplDirect2D::drawTiledImage): Deleted.

  • platform/graphics/win/GraphicsContextImplDirect2D.h:

Source/WebKit:

  • GPUProcess/graphics/RemoteRenderingBackend.cpp:

(WebKit::RemoteRenderingBackend::decodeItem):

  • WebProcess/GPU/graphics/RemoteImageBufferProxy.h:
9:49 PM Changeset in webkit [269715] by Diego Pino Garcia
  • 2 edits in trunk/Source/WebCore

Unreviewed, GTK Ubuntu LTS build fix after r269662.

  • dom/BoundaryPoint.cpp:
6:53 PM Changeset in webkit [269714] by Chris Dumez
  • 5 edits in trunk/Source

Add RunLoop::Timer constructor taking in a WTF::Function
https://bugs.webkit.org/show_bug.cgi?id=218828

Reviewed by Darin Adler.

Source/WebKit:

Use the new RunLoop::Timer constructor to simplify the code a bit.

  • UIProcess/WebProcessPool.cpp:

(WebKit::m_resetGPUProcessCrashCountTimer):

  • UIProcess/WebProcessPool.h:

Source/WTF:

Add RunLoop::Timer constructor taking in a WTF::Function instead of a function pointer.
This is similar to what was done for WebCore::Timer.

  • wtf/RunLoop.h:
6:34 PM Changeset in webkit [269713] by weinig@apple.com
  • 10 edits in trunk

Move more WebKitLegacy preferences bound to Settings to WebPreferences.yaml
https://bugs.webkit.org/show_bug.cgi?id=218826

Reviewed by Tim Horton.

Source/WebCore:

  • page/Settings.yaml:

Move AcceleratedCompositingForFixedPositionEnabled, ForceWebGLUsesLowPower,
RubberBandingForSubScrollableRegionsEnabled, ShrinksStandaloneImagesToFit and
VisualViewportEnabled to WebPreferences.yaml

Source/WebKitLegacy/mac:

  • WebView/WebPreferences.mm:

(+[WebPreferences initialize]):
Remove manual defaults for ShrinksStandaloneImagesToFit and ForceWebGLUsesLowPower
now they are generated.

  • WebView/WebView.mm:

(-[WebView _preferencesChanged:]):
Remove manual setting of AcceleratedCompositingForFixedPositionEnabled, ForceWebGLUsesLowPower,
RubberBandingForSubScrollableRegionsEnabled, ShrinksStandaloneImagesToFit and
VisualViewportEnabled now that they are generated.

Source/WTF:

  • Scripts/Preferences/WebPreferences.yaml:

Move AcceleratedCompositingForFixedPositionEnabled, ForceWebGLUsesLowPower,
RubberBandingForSubScrollableRegionsEnabled, ShrinksStandaloneImagesToFit and
VisualViewportEnabled to WebPreferences.yaml

Tools:

  • DumpRenderTree/TestOptions.cpp:

(WTR::TestOptions::defaults):

  • DumpRenderTree/mac/DumpRenderTree.mm:

(resetWebPreferencesToConsistentValues):
Switch to using TestOptions for ShrinksStandaloneImagesToFit now that it is supported.

6:04 PM Changeset in webkit [269712] by wilander@apple.com
  • 84 edits
    34 copies
    7 moves
    10 adds
    4 deletes in trunk

PCM: Change from ad-click-attribution to private-click-measurement (in all forms, including .well-known URL)
https://bugs.webkit.org/show_bug.cgi?id=218730
<rdar://problem/71094296>

Reviewed by Alex Christensen.

Change to the official name of the proposed standard Private Click Measurement
https://github.com/privacycg/private-click-measurement.

This includes a change of the reporting URL from
"/.well-known/ad-click-attribution/" to
"/.well-known/private-click-measurement/".

Source/JavaScriptCore:

  • inspector/ConsoleMessage.cpp:

(Inspector::messageSourceValue):

  • inspector/protocol/Console.json:
  • inspector/protocol/Page.json:
  • runtime/ConsoleClient.cpp:

(JSC::appendMessagePrefix):

  • runtime/ConsoleTypes.h:

Source/WebCore:

Tests: http/tests/contentextensions/block-private-click-measurement.html

http/tests/privateClickMeasurement/anchor-tag-attributes-reflect.html
http/tests/privateClickMeasurement/anchor-tag-attributes-validation.html
http/tests/privateClickMeasurement/attribution-conversion-through-cross-site-image-redirect.html
http/tests/privateClickMeasurement/attribution-conversion-through-image-redirect-in-new-window.html
http/tests/privateClickMeasurement/attribution-conversion-through-image-redirect-with-priority.html
http/tests/privateClickMeasurement/attribution-conversion-through-image-redirect-without-priority.html
http/tests/privateClickMeasurement/clear-through-website-data-removal.html
http/tests/privateClickMeasurement/conversion-disabled-in-ephemeral-session.html
http/tests/privateClickMeasurement/expired-attributions-removed.html
http/tests/privateClickMeasurement/second-attribution-converted-with-higher-priority.html
http/tests/privateClickMeasurement/second-attribution-converted-with-lower-priority.html
http/tests/privateClickMeasurement/second-conversion-with-higher-priority.html
http/tests/privateClickMeasurement/second-conversion-with-lower-priority.html
http/tests/privateClickMeasurement/send-attribution-conversion-request.html
http/tests/privateClickMeasurement/store-disabled-in-ephemeral-session.html
http/tests/privateClickMeasurement/store-private-click-measurement.html
inspector/page/overrideSetting-PrivateClickMeasurementDebugModeEnabled.html

  • Headers.cmake:
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • html/HTMLAnchorElement.cpp:

(WebCore::HTMLAnchorElement::parsePrivateClickMeasurement const):
(WebCore::HTMLAnchorElement::handleClick):
(WebCore::HTMLAnchorElement::parseAdClickAttribution const): Deleted.

  • html/HTMLAnchorElement.h:
  • html/HTMLAnchorElement.idl:
  • inspector/InspectorClient.h:
  • inspector/agents/InspectorPageAgent.cpp:

(WebCore::InspectorPageAgent::disable):
(WebCore::InspectorPageAgent::overrideSetting):

  • inspector/agents/page/PageConsoleAgent.cpp:

(WebCore::PageConsoleAgent::getLoggingChannels):

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::changeLocation):
(WebCore::FrameLoader::loadFrameRequest):
(WebCore::FrameLoader::loadURL):

  • loader/FrameLoader.h:
  • loader/NavigationAction.h:

(WebCore::NavigationAction::privateClickMeasurement const):
(WebCore::NavigationAction::setPrivateClickMeasurement):
(WebCore::NavigationAction::adClickAttribution const): Deleted.
(WebCore::NavigationAction::setAdClickAttribution): Deleted.

  • loader/PrivateClickMeasurement.cpp: Renamed from Source/WebCore/loader/AdClickAttribution.cpp.

(WebCore::PrivateClickMeasurement::isValid const):
(WebCore::PrivateClickMeasurement::parseConversionRequest):
(WebCore::PrivateClickMeasurement::convertAndGetEarliestTimeToSend):
(WebCore::PrivateClickMeasurement::markAsExpired):
(WebCore::PrivateClickMeasurement::hasExpired const):
(WebCore::PrivateClickMeasurement::hasHigherPriorityThan const):
(WebCore::PrivateClickMeasurement::reportURL const):
(WebCore::PrivateClickMeasurement::json const):
(WebCore::PrivateClickMeasurement::markConversionAsSent):
(WebCore::PrivateClickMeasurement::wasConversionSent const):
(WebCore::PrivateClickMeasurement::toString const):
(WebCore::PrivateClickMeasurement::debugModeEnabled):

  • loader/PrivateClickMeasurement.h: Renamed from Source/WebCore/loader/AdClickAttribution.h.

(WebCore::PrivateClickMeasurement::Campaign::Campaign):
(WebCore::PrivateClickMeasurement::Campaign::isValid const):
(WebCore::PrivateClickMeasurement::Source::Source):
(WebCore::PrivateClickMeasurement::Source::operator== const):
(WebCore::PrivateClickMeasurement::Source::matches const):
(WebCore::PrivateClickMeasurement::Source::isHashTableDeletedValue const):
(WebCore::PrivateClickMeasurement::Source::deletedValue):
(WebCore::PrivateClickMeasurement::Source::constructDeletedValue):
(WebCore::PrivateClickMeasurement::Source::deleteValue):
(WebCore::PrivateClickMeasurement::Source::isDeletedValue const):
(WebCore::PrivateClickMeasurement::SourceHash::hash):
(WebCore::PrivateClickMeasurement::SourceHash::equal):
(WebCore::PrivateClickMeasurement::Destination::Destination):
(WebCore::PrivateClickMeasurement::Destination::operator== const):
(WebCore::PrivateClickMeasurement::Destination::matches const):
(WebCore::PrivateClickMeasurement::Destination::isHashTableDeletedValue const):
(WebCore::PrivateClickMeasurement::Destination::deletedValue):
(WebCore::PrivateClickMeasurement::Destination::constructDeletedValue):
(WebCore::PrivateClickMeasurement::Destination::deleteValue):
(WebCore::PrivateClickMeasurement::Destination::isDeletedValue const):
(WebCore::PrivateClickMeasurement::DestinationHash::hash):
(WebCore::PrivateClickMeasurement::DestinationHash::equal):
(WebCore::PrivateClickMeasurement::Priority::Priority):
(WebCore::PrivateClickMeasurement::Conversion::Conversion):
(WebCore::PrivateClickMeasurement::Conversion::isValid const):
(WebCore::PrivateClickMeasurement::PrivateClickMeasurement):
(WebCore::PrivateClickMeasurement::source const):
(WebCore::PrivateClickMeasurement::destination const):
(WebCore::PrivateClickMeasurement::earliestTimeToSend const):
(WebCore::PrivateClickMeasurement::isEmpty const):
(WebCore::PrivateClickMeasurement::encode const):
(WebCore::PrivateClickMeasurement::decode):
(WebCore::PrivateClickMeasurement::Conversion::encode const):
(WebCore::PrivateClickMeasurement::Conversion::decode):
(WTF::HashTraits<WebCore::PrivateClickMeasurement::Source>::emptyValue):
(WTF::HashTraits<WebCore::PrivateClickMeasurement::Source>::constructDeletedValue):
(WTF::HashTraits<WebCore::PrivateClickMeasurement::Source>::isDeletedValue):
(WTF::HashTraits<WebCore::PrivateClickMeasurement::Destination>::emptyValue):
(WTF::HashTraits<WebCore::PrivateClickMeasurement::Destination>::constructDeletedValue):
(WTF::HashTraits<WebCore::PrivateClickMeasurement::Destination>::isDeletedValue):

  • page/RuntimeEnabledFeatures.h:

(WebCore::RuntimeEnabledFeatures::privateClickMeasurementDebugModeEnabled const):
(WebCore::RuntimeEnabledFeatures::setPrivateClickMeasurementDebugModeEnabled):
(WebCore::RuntimeEnabledFeatures::adClickAttributionDebugModeEnabled const): Deleted.
(WebCore::RuntimeEnabledFeatures::setAdClickAttributionDebugModeEnabled): Deleted.

  • platform/Logging.h:

Source/WebInspectorUI:

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

(WI.IssueMessage):

  • UserInterface/Protocol/Legacy/14.0/InspectorBackendCommands.js:

Source/WebKit:

  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::initializeNetworkProcess):
(WebKit::NetworkProcess::setPrivateClickMeasurementDebugMode):
(WebKit::NetworkProcess::deleteWebsiteData):
(WebKit::NetworkProcess::deleteWebsiteDataForOrigins):
(WebKit::NetworkProcess::storePrivateClickMeasurement):
(WebKit::NetworkProcess::dumpPrivateClickMeasurement):
(WebKit::NetworkProcess::clearPrivateClickMeasurement):
(WebKit::NetworkProcess::setPrivateClickMeasurementOverrideTimerForTesting):
(WebKit::NetworkProcess::setPrivateClickMeasurementConversionURLForTesting):
(WebKit::NetworkProcess::markPrivateClickMeasurementsAsExpiredForTesting):
(WebKit::NetworkProcess::setAdClickAttributionDebugMode): Deleted.
(WebKit::NetworkProcess::storeAdClickAttribution): Deleted.
(WebKit::NetworkProcess::dumpAdClickAttribution): Deleted.
(WebKit::NetworkProcess::clearAdClickAttribution): Deleted.
(WebKit::NetworkProcess::setAdClickAttributionOverrideTimerForTesting): Deleted.
(WebKit::NetworkProcess::setAdClickAttributionConversionURLForTesting): Deleted.
(WebKit::NetworkProcess::markAdClickAttributionsAsExpiredForTesting): Deleted.

  • NetworkProcess/NetworkProcess.h:
  • NetworkProcess/NetworkProcess.messages.in:
  • NetworkProcess/NetworkProcessCreationParameters.cpp:

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

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

(WebKit::NetworkResourceLoader::willSendRedirectedRequest):
(WebKit::NetworkResourceLoader::continueWillSendRedirectedRequest):

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

(WebKit::NetworkSession::NetworkSession):
(WebKit::NetworkSession::storePrivateClickMeasurement):
(WebKit::NetworkSession::handlePrivateClickMeasurementConversion):
(WebKit::NetworkSession::dumpPrivateClickMeasurement):
(WebKit::NetworkSession::clearPrivateClickMeasurement):
(WebKit::NetworkSession::clearPrivateClickMeasurementForRegistrableDomain):
(WebKit::NetworkSession::setPrivateClickMeasurementOverrideTimerForTesting):
(WebKit::NetworkSession::setPrivateClickMeasurementConversionURLForTesting):
(WebKit::NetworkSession::markPrivateClickMeasurementsAsExpiredForTesting):
(WebKit::NetworkSession::storeAdClickAttribution): Deleted.
(WebKit::NetworkSession::handleAdClickAttributionConversion): Deleted.
(WebKit::NetworkSession::dumpAdClickAttribution): Deleted.
(WebKit::NetworkSession::clearAdClickAttribution): Deleted.
(WebKit::NetworkSession::clearAdClickAttributionForRegistrableDomain): Deleted.
(WebKit::NetworkSession::setAdClickAttributionOverrideTimerForTesting): Deleted.
(WebKit::NetworkSession::setAdClickAttributionConversionURLForTesting): Deleted.
(WebKit::NetworkSession::markAdClickAttributionsAsExpiredForTesting): Deleted.

  • NetworkProcess/NetworkSession.h:
  • NetworkProcess/PrivateClickMeasurementManager.cpp: Renamed from Source/WebKit/NetworkProcess/AdClickAttributionManager.cpp.

(WebKit::PrivateClickMeasurementManager::storeUnconverted):
(WebKit::PrivateClickMeasurementManager::handleConversion):
(WebKit::PrivateClickMeasurementManager::startTimer):
(WebKit::PrivateClickMeasurementManager::convert):
(WebKit::PrivateClickMeasurementManager::fireConversionRequest):
(WebKit::PrivateClickMeasurementManager::firePendingConversionRequests):
(WebKit::PrivateClickMeasurementManager::clear):
(WebKit::PrivateClickMeasurementManager::clearForRegistrableDomain):
(WebKit::PrivateClickMeasurementManager::clearExpired):
(WebKit::PrivateClickMeasurementManager::toString const):
(WebKit::PrivateClickMeasurementManager::setConversionURLForTesting):
(WebKit::PrivateClickMeasurementManager::markAllUnconvertedAsExpiredForTesting):
(WebKit::PrivateClickMeasurementManager::debugModeEnabled const):

  • NetworkProcess/PrivateClickMeasurementManager.h: Renamed from Source/WebKit/NetworkProcess/AdClickAttributionManager.h.

(WebKit::PrivateClickMeasurementManager::PrivateClickMeasurementManager):
(WebKit::PrivateClickMeasurementManager::m_sessionID):
(WebKit::PrivateClickMeasurementManager::setPingLoadFunction):
(WebKit::PrivateClickMeasurementManager::setOverrideTimerForTesting):

  • Platform/Logging.h:
  • Shared/NavigationActionData.cpp:

(WebKit::NavigationActionData::encode const):
(WebKit::NavigationActionData::decode):

  • Shared/NavigationActionData.h:
  • Shared/WebsiteData/WebsiteData.cpp:

(WebKit::WebsiteData::ownerProcess):

  • Shared/WebsiteData/WebsiteDataType.h:
  • Sources.txt:
  • UIProcess/API/APINavigation.h:

(API::Navigation::privateClickMeasurement const):
(API::Navigation::adClickAttribution const): Deleted.

  • UIProcess/API/C/WKPage.cpp:

(WKPageDumpPrivateClickMeasurement):
(WKPageClearPrivateClickMeasurement):
(WKPageSetPrivateClickMeasurementOverrideTimerForTesting):
(WKPageSetPrivateClickMeasurementConversionURLForTesting):
(WKPageMarkPrivateClickMeasurementsAsExpiredForTesting):
(WKPageDumpAdClickAttribution): Deleted.
(WKPageClearAdClickAttribution): Deleted.
(WKPageSetAdClickAttributionOverrideTimerForTesting): Deleted.
(WKPageSetAdClickAttributionConversionURLForTesting): Deleted.
(WKPageMarkAdClickAttributionsAsExpiredForTesting): Deleted.

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

(WKWebsiteDataStoreClearPrivateClickMeasurementsThroughWebsiteDataRemoval):
(WKWebsiteDataStoreClearAdClickAttributionsThroughWebsiteDataRemoval): Deleted.

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

(dataTypesToString):

_WKWebsiteDataTypeAdClickAttributions still supported.
_WKWebsiteDataTypePrivateClickMeasurements added.

  • UIProcess/API/Cocoa/WKWebsiteDataRecordInternal.h:

(WebKit::toWebsiteDataType):

_WKWebsiteDataTypeAdClickAttributions still supported and mapped to
WebsiteDataType::PrivateClickMeasurements.

(WebKit::toWKWebsiteDataTypes):

  • UIProcess/API/Cocoa/WKWebsiteDataRecordPrivate.h:

_WKWebsiteDataTypeAdClickAttributions still supported.
_WKWebsiteDataTypePrivateClickMeasurements added.

  • UIProcess/API/Cocoa/WKWebsiteDataStore.mm:

_WKWebsiteDataTypeAdClickAttributions still supported.
_WKWebsiteDataTypePrivateClickMeasurements added.

(+[WKWebsiteDataStore _allWebsiteDataTypesIncludingPrivate]):

  • UIProcess/Cocoa/WebProcessPoolCocoa.mm:

(WebKit::WebProcessPool::platformInitializeNetworkProcess):

  • UIProcess/Inspector/WebInspectorProxy.cpp:

(WebKit::WebInspectorProxy::setDeveloperPreferenceOverride):

  • UIProcess/Network/NetworkProcessProxy.cpp:

(WebKit::NetworkProcessProxy::setPrivateClickMeasurementDebugMode):
(WebKit::NetworkProcessProxy::setAdClickAttributionDebugMode): Deleted.

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

(WebKit::WebPageProxy::didCommitLoadForFrame):
(WebKit::WebPageProxy::createNewPage):
(WebKit::WebPageProxy::dumpPrivateClickMeasurement):
(WebKit::WebPageProxy::clearPrivateClickMeasurement):
(WebKit::WebPageProxy::setPrivateClickMeasurementOverrideTimerForTesting):
(WebKit::WebPageProxy::setPrivateClickMeasurementConversionURLForTesting):
(WebKit::WebPageProxy::markPrivateClickMeasurementsAsExpiredForTesting):
(WebKit::WebPageProxy::dumpAdClickAttribution): Deleted.
(WebKit::WebPageProxy::clearAdClickAttribution): Deleted.
(WebKit::WebPageProxy::setAdClickAttributionOverrideTimerForTesting): Deleted.
(WebKit::WebPageProxy::setAdClickAttributionConversionURLForTesting): Deleted.
(WebKit::WebPageProxy::markAdClickAttributionsAsExpiredForTesting): Deleted.

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

(WebKit::WebsiteDataStore::setPrivateClickMeasurementDebugMode):
(WebKit::WebsiteDataStore::setAdClickAttributionDebugMode): Deleted.

  • UIProcess/WebsiteData/WebsiteDataStore.h:
  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/WebCoreSupport/WebChromeClient.cpp:

(WebKit::WebChromeClient::createWindow):

  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:

(WebKit::WebFrameLoaderClient::dispatchDecidePolicyForNewWindowAction):
(WebKit::WebFrameLoaderClient::dispatchDecidePolicyForNavigationAction):

Source/WebKitLegacy/mac:

  • WebCoreSupport/WebChromeClient.mm:

(stringForMessageSource):

  • WebView/WebPreferenceKeysPrivate.h:
  • WebView/WebPreferences.mm:

(-[WebPreferences privateClickMeasurementEnabled]):
(-[WebPreferences setPrivateClickMeasurementEnabled:]):
(-[WebPreferences adClickAttributionEnabled]): Deleted.
(-[WebPreferences setAdClickAttributionEnabled:]): Deleted.

  • WebView/WebPreferencesPrivate.h:

Source/WTF:

  • Scripts/Preferences/WebPreferencesExperimental.yaml:

Tools:

  • DumpRenderTree/TestOptions.cpp:

(WTR::TestOptions::defaults):

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebCore/AdClickAttribution.cpp: Removed.
  • TestWebKitAPI/Tests/WebCore/PrivateClickMeasurement.cpp: Added.

(TestWebKitAPI::TEST):

  • WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl:
  • WebKitTestRunner/InjectedBundle/TestRunner.cpp:

(WTR::TestRunner::dumpPrivateClickMeasurement):
(WTR::TestRunner::clearPrivateClickMeasurement):
(WTR::TestRunner::clearPrivateClickMeasurementsThroughWebsiteDataRemoval):
(WTR::TestRunner::setPrivateClickMeasurementOverrideTimerForTesting):
(WTR::TestRunner::setPrivateClickMeasurementConversionURLForTesting):
(WTR::TestRunner::markPrivateClickMeasurementsAsExpiredForTesting):
(WTR::TestRunner::dumpAdClickAttribution): Deleted.
(WTR::TestRunner::clearAdClickAttribution): Deleted.
(WTR::TestRunner::clearAdClickAttributionsThroughWebsiteDataRemoval): Deleted.
(WTR::TestRunner::setAdClickAttributionOverrideTimerForTesting): Deleted.
(WTR::TestRunner::setAdClickAttributionConversionURLForTesting): Deleted.
(WTR::TestRunner::markAdClickAttributionsAsExpiredForTesting): Deleted.

  • WebKitTestRunner/InjectedBundle/TestRunner.h:
  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::resetStateToConsistentValues):
(WTR::PrivateClickMeasurementStringResultCallbackContext::PrivateClickMeasurementStringResultCallbackContext):
(WTR::privateClickMeasurementStringResultCallback):
(WTR::TestController::dumpPrivateClickMeasurement):
(WTR::PrivateClickMeasurementVoidCallbackContext::PrivateClickMeasurementVoidCallbackContext):
(WTR::privateClickMeasurementVoidCallback):
(WTR::TestController::clearPrivateClickMeasurement):
(WTR::TestController::clearPrivateClickMeasurementsThroughWebsiteDataRemoval):
(WTR::TestController::setPrivateClickMeasurementOverrideTimerForTesting):
(WTR::TestController::setPrivateClickMeasurementConversionURLForTesting):
(WTR::TestController::markPrivateClickMeasurementsAsExpiredForTesting):
(WTR::AdClickAttributionStringResultCallbackContext::AdClickAttributionStringResultCallbackContext): Deleted.
(WTR::adClickAttributionStringResultCallback): Deleted.
(WTR::TestController::dumpAdClickAttribution): Deleted.
(WTR::AdClickAttributionVoidCallbackContext::AdClickAttributionVoidCallbackContext): Deleted.
(WTR::adClickAttributionVoidCallback): Deleted.
(WTR::TestController::clearAdClickAttribution): Deleted.
(WTR::TestController::clearAdClickAttributionsThroughWebsiteDataRemoval): Deleted.
(WTR::TestController::setAdClickAttributionOverrideTimerForTesting): Deleted.
(WTR::TestController::setAdClickAttributionConversionURLForTesting): Deleted.
(WTR::TestController::markAdClickAttributionsAsExpiredForTesting): Deleted.

  • WebKitTestRunner/TestController.h:
  • WebKitTestRunner/TestInvocation.cpp:

(WTR::TestInvocation::dumpResults):
(WTR::TestInvocation::didReceiveSynchronousMessageFromInjectedBundle):
(WTR::TestInvocation::dumpPrivateClickMeasurement):
(WTR::TestInvocation::dumpAdClickAttribution): Deleted.

  • WebKitTestRunner/TestInvocation.h:

LayoutTests:

  • TestExpectations:
  • http/tests/adClickAttribution/attribution-conversion-through-cross-site-image-redirect-expected.txt: Removed.
  • http/tests/adClickAttribution/expired-attributions-removed-expected.txt: Removed.
  • http/tests/adClickAttribution/resources/redirectToConversionOnIPAddress.php: Removed.
  • http/tests/adClickAttribution/store-ad-click-attribution-expected.txt: Removed.
  • http/tests/adClickAttribution/store-disabled-in-ephemeral-session-expected.txt: Removed.
  • http/tests/contentextensions/block-ad-click-attribution-expected.txt: Removed.
  • http/tests/contentextensions/block-private-click-measurement-expected.txt: Added.
  • http/tests/contentextensions/block-private-click-measurement.html: Renamed from LayoutTests/http/tests/contentextensions/block-ad-click-attribution.html.
  • http/tests/contentextensions/block-private-click-measurement.html.json: Renamed from LayoutTests/http/tests/contentextensions/block-ad-click-attribution.html.json.
  • http/tests/privateClickMeasurement/anchor-tag-attributes-reflect-expected.txt: Renamed from LayoutTests/http/tests/adClickAttribution/anchor-tag-attributes-reflect-expected.txt.
  • http/tests/privateClickMeasurement/anchor-tag-attributes-reflect.html: Renamed from LayoutTests/http/tests/adClickAttribution/anchor-tag-attributes-reflect.html.
  • http/tests/privateClickMeasurement/anchor-tag-attributes-validation-expected.txt: Renamed from LayoutTests/http/tests/adClickAttribution/anchor-tag-attributes-validation-expected.txt.
  • http/tests/privateClickMeasurement/anchor-tag-attributes-validation.html: Renamed from LayoutTests/http/tests/adClickAttribution/anchor-tag-attributes-validation.html.
  • http/tests/privateClickMeasurement/attribution-conversion-through-cross-site-image-redirect-expected.txt: Added.
  • http/tests/privateClickMeasurement/attribution-conversion-through-cross-site-image-redirect.html: Renamed from LayoutTests/http/tests/adClickAttribution/attribution-conversion-through-cross-site-image-redirect.html.
  • http/tests/privateClickMeasurement/attribution-conversion-through-image-redirect-in-new-window-expected.txt: Renamed from LayoutTests/http/tests/adClickAttribution/attribution-conversion-through-image-redirect-in-new-window-expected.txt.
  • http/tests/privateClickMeasurement/attribution-conversion-through-image-redirect-in-new-window.html: Renamed from LayoutTests/http/tests/adClickAttribution/attribution-conversion-through-image-redirect-in-new-window.html.
  • http/tests/privateClickMeasurement/attribution-conversion-through-image-redirect-with-priority-expected.txt: Renamed from LayoutTests/http/tests/adClickAttribution/attribution-conversion-through-image-redirect-with-priority-expected.txt.
  • http/tests/privateClickMeasurement/attribution-conversion-through-image-redirect-with-priority.html: Renamed from LayoutTests/http/tests/adClickAttribution/attribution-conversion-through-image-redirect-with-priority.html.
  • http/tests/privateClickMeasurement/attribution-conversion-through-image-redirect-without-priority-expected.txt: Renamed from LayoutTests/http/tests/adClickAttribution/attribution-conversion-through-image-redirect-without-priority-expected.txt.
  • http/tests/privateClickMeasurement/attribution-conversion-through-image-redirect-without-priority.html: Renamed from LayoutTests/http/tests/adClickAttribution/attribution-conversion-through-image-redirect-without-priority.html.
  • http/tests/privateClickMeasurement/clear-through-website-data-removal-expected.txt: Renamed from LayoutTests/http/tests/adClickAttribution/clear-through-website-data-removal-expected.txt.
  • http/tests/privateClickMeasurement/clear-through-website-data-removal.html: Renamed from LayoutTests/http/tests/adClickAttribution/clear-through-website-data-removal.html.
  • http/tests/privateClickMeasurement/conversion-disabled-in-ephemeral-session-expected.txt: Renamed from LayoutTests/http/tests/adClickAttribution/conversion-disabled-in-ephemeral-session-expected.txt.
  • http/tests/privateClickMeasurement/conversion-disabled-in-ephemeral-session.html: Renamed from LayoutTests/http/tests/adClickAttribution/conversion-disabled-in-ephemeral-session.html.
  • http/tests/privateClickMeasurement/expired-attributions-removed-expected.txt: Added.
  • http/tests/privateClickMeasurement/expired-attributions-removed.html: Renamed from LayoutTests/http/tests/adClickAttribution/expired-attributions-removed.html.
  • http/tests/privateClickMeasurement/resources/conversionFilePath.php: Renamed from LayoutTests/http/tests/adClickAttribution/resources/conversionFilePath.php.
  • http/tests/privateClickMeasurement/resources/conversionReport.php: Renamed from LayoutTests/http/tests/adClickAttribution/resources/conversionReport.php.
  • http/tests/privateClickMeasurement/resources/convertAndPostMessageBack.html: Renamed from LayoutTests/http/tests/adClickAttribution/resources/convertAndPostMessageBack.html.
  • http/tests/privateClickMeasurement/resources/getConversionData.php: Renamed from LayoutTests/http/tests/adClickAttribution/resources/getConversionData.php.
  • http/tests/privateClickMeasurement/resources/redirectToConversion.php: Renamed from LayoutTests/http/tests/adClickAttribution/resources/redirectToConversion.php.
  • http/tests/privateClickMeasurement/resources/redirectToConversionOnIPAddress.php: Added.
  • http/tests/privateClickMeasurement/resources/util.js: Renamed from LayoutTests/http/tests/adClickAttribution/resources/util.js.

(prepareTest):
(tearDownAndFinish):

  • http/tests/privateClickMeasurement/second-attribution-converted-with-higher-priority-expected.txt: Renamed from LayoutTests/http/tests/adClickAttribution/second-attribution-converted-with-higher-priority-expected.txt.
  • http/tests/privateClickMeasurement/second-attribution-converted-with-higher-priority.html: Renamed from LayoutTests/http/tests/adClickAttribution/second-attribution-converted-with-higher-priority.html.
  • http/tests/privateClickMeasurement/second-attribution-converted-with-lower-priority-expected.txt: Renamed from LayoutTests/http/tests/adClickAttribution/second-attribution-converted-with-lower-priority-expected.txt.
  • http/tests/privateClickMeasurement/second-attribution-converted-with-lower-priority.html: Renamed from LayoutTests/http/tests/adClickAttribution/second-attribution-converted-with-lower-priority.html.
  • http/tests/privateClickMeasurement/second-conversion-with-higher-priority-expected.txt: Renamed from LayoutTests/http/tests/adClickAttribution/second-conversion-with-higher-priority-expected.txt.
  • http/tests/privateClickMeasurement/second-conversion-with-higher-priority.html: Renamed from LayoutTests/http/tests/adClickAttribution/second-conversion-with-higher-priority.html.
  • http/tests/privateClickMeasurement/second-conversion-with-lower-priority-expected.txt: Renamed from LayoutTests/http/tests/adClickAttribution/second-conversion-with-lower-priority-expected.txt.
  • http/tests/privateClickMeasurement/second-conversion-with-lower-priority.html: Renamed from LayoutTests/http/tests/adClickAttribution/second-conversion-with-lower-priority.html.
  • http/tests/privateClickMeasurement/send-attribution-conversion-request-expected.txt: Renamed from LayoutTests/http/tests/adClickAttribution/send-attribution-conversion-request-expected.txt.
  • http/tests/privateClickMeasurement/send-attribution-conversion-request.html: Renamed from LayoutTests/http/tests/adClickAttribution/send-attribution-conversion-request.html.
  • http/tests/privateClickMeasurement/store-disabled-in-ephemeral-session-expected.txt: Added.
  • http/tests/privateClickMeasurement/store-disabled-in-ephemeral-session.html: Renamed from LayoutTests/http/tests/adClickAttribution/store-disabled-in-ephemeral-session.html.
  • http/tests/privateClickMeasurement/store-private-click-measurement-expected.txt: Added.
  • http/tests/privateClickMeasurement/store-private-click-measurement.html: Renamed from LayoutTests/http/tests/adClickAttribution/store-ad-click-attribution.html.
  • inspector/page/overrideSetting-AdClickAttributionDebugModeEnabled-expected.txt: Removed.
  • inspector/page/overrideSetting-PrivateClickMeasurementDebugModeEnabled-expected.txt: Added.
  • inspector/page/overrideSetting-PrivateClickMeasurementDebugModeEnabled.html: Renamed from LayoutTests/inspector/page/overrideSetting-AdClickAttributionDebugModeEnabled.html.
  • platform/mac-wk2/TestExpectations:
  • platform/wk2/TestExpectations:
5:48 PM Changeset in webkit [269711] by Peng Liu
  • 24 edits in trunk/Source

Update RemoteMediaPlayerMIMETypeCache to add the support for AVFoundationMSE media engine
https://bugs.webkit.org/show_bug.cgi?id=218788

Reviewed by Eric Carlson.

Source/WebCore:

With this patch, we can create MSE media players (AVFoundationMSE) in the GPU process.

This patch cleans up MIMETypeCache, AVAssetMIMETypeCache, and
AVStreamDataParserMIMETypeCache. A media player factory and SourceBufferParserAVFObjC
will only need to use one MIMETypeCache, either AVAssetMIMETypeCache or
AVStreamDataParserMIMETypeCache, but not both.

To be consistent with MediaPlayerPrivateAVFoundationObjC, this patch renames
supportsType() of MediaPlayerPrivateMediaSourceAVFObjC to supportsTypeAndCodecs().

  • platform/graphics/MIMETypeCache.h:
  • platform/graphics/MediaPlayer.cpp:

(WebCore::buildMediaEnginesVector):

  • platform/graphics/MediaPlayer.h:
  • platform/graphics/avfoundation/CDMPrivateMediaSourceAVFObjC.mm:

(WebCore::CDMPrivateMediaSourceAVFObjC::supportsKeySystemAndMimeType):
(WebCore::CDMPrivateMediaSourceAVFObjC::supportsMIMEType):

  • platform/graphics/avfoundation/objc/AVAssetMIMETypeCache.h:
  • platform/graphics/avfoundation/objc/AVAssetTrackUtilities.mm:
  • platform/graphics/avfoundation/objc/AVStreamDataParserMIMETypeCache.h:
  • platform/graphics/avfoundation/objc/AVStreamDataParserMIMETypeCache.mm:

(WebCore::AVStreamDataParserMIMETypeCache::isAvailable const):
(WebCore::AVStreamDataParserMIMETypeCache::canDecodeType):
(WebCore::AVStreamDataParserMIMETypeCache::supportedTypes):

  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.h:
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:

(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::getSupportedTypes):
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::supportsTypeAndCodecs):
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::supportsType): Deleted.

  • platform/graphics/avfoundation/objc/MediaSourcePrivateAVFObjC.mm:

(WebCore::MediaSourcePrivateAVFObjC::addSourceBuffer):

  • platform/graphics/avfoundation/objc/SourceBufferParserAVFObjC.mm:

(WebCore::SourceBufferParserAVFObjC::isContentTypeSupported):

  • platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm:

(WebCore::SourceBufferPrivateAVFObjC::canSwitchToType):

Source/WebKit:

Originally, RemoteMediaPlayerMIMETypeCache inherits from MIMETypeCache.
It needs to implement three functions: isAvailable(), canDecodeExtendedType(),
supportedTypes() through IPC messages, and the IPC message receivers in
RemoteMediaPlayerManagerProxy needs to repeat the work done by AVAssetMIMETypeCache
and AVStreamDataParserMIMETypeCache.

Actually, MediaPlayerRemoteFactory only needs two functions from
RemoteMediaPlayerMIMETypeCache: supportedTypes() and supportsTypeAndCodecs().
We can implement these two functions with IPC messages to RemoteMediaPlayerManagerProxy
and cache the results to avoid too many IPC messages. In addition, the implementation of
the IPC message receivers in RemoteMediaPlayerManagerProxy can reuse the implementation
of AVAssetMIMETypeCache and AVStreamDataParserMIMETypeCache.

  • GPUProcess/media/RemoteMediaPlayerManagerProxy.cpp:

(WebKit::RemoteMediaPlayerManagerProxy::supportsTypeAndCodecs):
(WebKit::RemoteMediaPlayerManagerProxy::canDecodeExtendedType): Deleted.

  • GPUProcess/media/RemoteMediaPlayerManagerProxy.h:
  • GPUProcess/media/RemoteMediaPlayerManagerProxy.messages.in:
  • WebProcess/GPU/media/RemoteAudioDestinationProxy.h:
  • WebProcess/GPU/media/RemoteCDMInstanceSession.cpp:
  • WebProcess/GPU/media/RemoteMediaPlayerMIMETypeCache.cpp:

(WebKit::RemoteMediaPlayerMIMETypeCache::addSupportedTypes):
(WebKit::RemoteMediaPlayerMIMETypeCache::supportedTypes):
(WebKit::RemoteMediaPlayerMIMETypeCache::supportsTypeAndCodecs):
(WebKit::RemoteMediaPlayerMIMETypeCache::mimeCache const): Deleted.
(WebKit::RemoteMediaPlayerMIMETypeCache::staticContainerTypeList): Deleted.
(WebKit::RemoteMediaPlayerMIMETypeCache::isUnsupportedContainerType): Deleted.
(WebKit::RemoteMediaPlayerMIMETypeCache::canDecodeExtendedType): Deleted.
(WebKit::RemoteMediaPlayerMIMETypeCache::initializeCache): Deleted.

  • WebProcess/GPU/media/RemoteMediaPlayerMIMETypeCache.h:
  • WebProcess/GPU/media/RemoteMediaPlayerManager.cpp:

(WebKit::RemoteMediaPlayerManager::getSupportedTypes):
(RemoteMediaPlayerManager::initialize):

5:47 PM Changeset in webkit [269710] by timothy_horton@apple.com
  • 50 edits in trunk

Add minimal support for deep color IOSurface backing store to ImageBuffer
https://bugs.webkit.org/show_bug.cgi?id=218816

Reviewed by Simon Fraser.

Source/WebCore:

No new tests; will be covered by all deep color tests when GPU Process DOM rendering lands.

Make it possible to pass a ColorFormat into the ImageBuffer constructor,
and add RGB10 and RGB10A8 ColorFormats.

We don't currently support get/putImageData for deep color buffers, because
that is not needed for ImageBuffers backing RemoteLayerBackingStore (the motivation
for this), but if we eventually wanted to more generally support deep color ImageBuffers,
that's most of the remaining work.

Also, standardize on BGRA8 as the default ColorFormat for buffers.
iOS, Cairo, IOSurface, and ShareableBitmap all already use BGRA8 by default;
only ImageBuffer with CGBitmap backing store on macOS used RGBA8. So,
for sanity's sake (and so that it's easy to have a default passed into
the constructor), standardize on BGRA8.

  • html/CustomPaintCanvas.cpp:

(WebCore::CustomPaintCanvas::copiedImage const):

  • html/HTMLCanvasElement.cpp:

(WebCore::HTMLCanvasElement::createImageBuffer const):

  • html/HTMLVideoElement.cpp:

(WebCore::HTMLVideoElement::createBufferForPainting const):

  • html/ImageBitmap.cpp:

(WebCore::ImageBitmap::createImageBuffer):

  • page/Chrome.cpp:

(WebCore::Chrome::createImageBuffer const):

  • page/Chrome.h:
  • page/ChromeClient.h:

(WebCore::ChromeClient::createImageBuffer const):

  • platform/HostWindow.h:
  • platform/graphics/ConcreteImageBuffer.h:

(WebCore::ConcreteImageBuffer::create):

  • platform/graphics/ImageBuffer.cpp:

(WebCore::ImageBuffer::create):

  • platform/graphics/ImageBuffer.h:

Plumbing ColorFormat around.

  • platform/graphics/ImageBufferBackend.cpp:

(WebCore::ImageBufferBackend::ImageBufferBackend):
(WebCore::ImageBufferBackend::toBGRAData const):
(WebCore::ImageBufferBackend::copyImagePixels const):
(WebCore::ImageBufferBackend::getImageData const):
(WebCore::ImageBufferBackend::putImageData):
Assert that copyImagePixels is always operating on a 8-bit buffer,
since that's all it supports for now.

  • platform/graphics/ImageBufferBackend.h:

(WebCore::ImageBufferBackend::colorFormat const):
(WebCore::ImageBufferBackend::bytesPerRow const):
(WebCore::ImageBufferBackend::backendColorFormat const): Deleted.

  • platform/graphics/RemoteVideoSample.cpp:

(WebCore::transferBGRAPixelBufferToIOSurface):

  • platform/graphics/cairo/ImageBufferCairoBackend.h:
  • platform/graphics/cairo/ImageBufferCairoImageSurfaceBackend.cpp:

(WebCore::ImageBufferCairoImageSurfaceBackend::create):
(WebCore::ImageBufferCairoImageSurfaceBackend::ImageBufferCairoImageSurfaceBackend):

  • platform/graphics/cairo/ImageBufferCairoImageSurfaceBackend.h:
  • platform/graphics/cg/ImageBufferCGBackend.cpp:

(WebCore::createBitmapImageAfterScalingIfNeeded):
(WebCore::ImageBufferCGBackend::toCFData const):
(WebCore::copyImagePixelsAccelerated):

  • platform/graphics/cg/ImageBufferCGBitmapBackend.cpp:

(WebCore::ImageBufferCGBitmapBackend::create):
(WebCore::ImageBufferCGBitmapBackend::ImageBufferCGBitmapBackend):
(WebCore::ImageBufferCGBitmapBackend::copyNativeImage const):
Adopt ColorFormat and standardize on BGRA8.

  • platform/graphics/cg/ImageBufferCGBitmapBackend.h:
  • platform/graphics/cg/ImageBufferIOSurfaceBackend.cpp:

(WebCore::ImageBufferIOSurfaceBackend::create):
(WebCore::ImageBufferIOSurfaceBackend::ImageBufferIOSurfaceBackend):
(WebCore::ImageBufferIOSurfaceBackend::backendColorFormat const): Deleted.

  • platform/graphics/cg/ImageBufferIOSurfaceBackend.h:
  • platform/graphics/cocoa/IOSurface.h:
  • platform/graphics/cocoa/IOSurface.mm:

(WebCore::IOSurface::IOSurface):
(WebCore::IOSurface::ensurePlatformContext):
(WebCore::IOSurface::format const):
(WebCore::IOSurface::formatForColorFormat):
(WebCore::operator<<):

  • platform/graphics/displaylists/DisplayListImageBuffer.h:

(WebCore::DisplayList::ImageBuffer::create):

Source/WebKit:

  • GPUProcess/graphics/RemoteImageBuffer.h:

(WebKit::RemoteImageBuffer::create):
(WebKit::RemoteImageBuffer::RemoteImageBuffer):

  • GPUProcess/graphics/RemoteRenderingBackend.cpp:

(WebKit::RemoteRenderingBackend::imageBufferBackendWasCreated):
(WebKit::RemoteRenderingBackend::createImageBuffer):

  • GPUProcess/graphics/RemoteRenderingBackend.h:
  • GPUProcess/graphics/RemoteRenderingBackend.messages.in:
  • Scripts/webkit/messages.py:
  • Shared/RemoteLayerTree/RemoteLayerBackingStore.mm:

(WebKit::RemoteLayerBackingStore::bytesPerPixel const):
(WebKit::RemoteLayerBackingStore::surfaceBufferFormat const):

  • Shared/ShareableBitmap.cpp:

(WebKit::ShareableBitmap::create):

  • UIProcess/API/ios/WKWebViewIOS.mm:

(-[WKWebView _takeViewSnapshot]):

  • WebProcess/GPU/graphics/ImageBufferShareableBitmapBackend.cpp:

(WebKit::ImageBufferShareableBitmapBackend::create):
(WebKit::ImageBufferShareableBitmapBackend::ImageBufferShareableBitmapBackend):

  • WebProcess/GPU/graphics/ImageBufferShareableBitmapBackend.h:
  • WebProcess/GPU/graphics/RemoteImageBufferProxy.h:

(WebKit::RemoteImageBufferProxy::createBackend):

  • WebProcess/GPU/graphics/RemoteRenderingBackendProxy.cpp:

(WebKit::RemoteRenderingBackendProxy::createImageBuffer):
(WebKit::RemoteRenderingBackendProxy::imageBufferBackendWasCreated):

  • WebProcess/GPU/graphics/RemoteRenderingBackendProxy.h:
  • WebProcess/GPU/graphics/RemoteRenderingBackendProxy.messages.in:
  • WebProcess/GPU/graphics/cocoa/ImageBufferShareableIOSurfaceBackend.cpp:

(WebKit::ImageBufferShareableIOSurfaceBackend::create):

  • WebProcess/GPU/graphics/cocoa/ImageBufferShareableIOSurfaceBackend.h:
  • WebProcess/WebCoreSupport/WebChromeClient.cpp:

(WebKit::WebChromeClient::createImageBuffer const):

  • WebProcess/WebCoreSupport/WebChromeClient.h:

Tools:

  • DumpRenderTree/ios/PixelDumpSupportIOS.mm:

(createBitmapContextFromWebView):

5:16 PM Changeset in webkit [269709] by Wenson Hsieh
  • 6 edits in trunk

Add system trace points for the GPU process display list processing loop
https://bugs.webkit.org/show_bug.cgi?id=218824

Reviewed by Simon Fraser.

Source/WebKit:

Capture the time spent applying display list items in the GPU process with a pair of new trace points, to aid
performance debugging and analysis.

  • GPUProcess/graphics/RemoteRenderingBackend.cpp:

(WebKit::RemoteRenderingBackend::wakeUpAndApplyDisplayList):

Source/WTF:

  • wtf/SystemTracing.h:

Tools:

  • Tracing/SystemTracePoints.plist:
4:59 PM Changeset in webkit [269708] by Said Abou-Hallawa
  • 32 edits
    1 add in trunk/Source

[GPU Process] Cache the NativeImage in GPU Process and allow referencing it with its RemoteResourceIdentifier
https://bugs.webkit.org/show_bug.cgi?id=217596

Reviewed by Simon Fraser.

Source/WebCore:

In this patch all the drawImage functions will not be recorded as display
list items. Instead we are going to let them proceed till they reach lower
level calls such as drawNativeImage().

  • Headers.cmake:
  • WebCore.xcodeproj/project.pbxproj:
  • platform/graphics/BitmapImage.cpp:

(WebCore::BitmapImage::subsamplingLevelForScaleFactor):
Because we no longer record DrawImage, calling BitmapImage::draw() is now
allowed even if the GraphicsContext is backed by a DisplayList::Recorder.
If the image sub-sampling is allowed, which we do for iOS, this function
is going to be called. We need to guard using the platformContext by calling
hasPlatformContext() first.

  • platform/graphics/GraphicsContext.cpp:

(WebCore::GraphicsContext::drawImage):
(WebCore::GraphicsContext::drawTiledImage):
We have to let these function proceed till they end up calling the
DOM rendering for SVGImage, PDFDocumentImage::draw for pdf image and
drawNativeImage for the rest.

  • platform/graphics/ImageBuffer.h:

Make ImageBuffer a CanMakeWeakPtr so we can have a HashMap whose values
are of type WeakPtr<ImageBuffer>.

  • platform/graphics/NativeImage.cpp:

(WebCore::NativeImage::create):
(WebCore::NativeImage::NativeImage):
(WebCore::NativeImage::~NativeImage):

  • platform/graphics/NativeImage.h:

(WebCore::NativeImage::renderingResourceIdentifier const):
(WebCore::NativeImage::setObserver):
Add an observer to NativeImage whose job is to observe when it is being
destroyed. Add also an renderingResourceIdentifier so it can be used to
reference the NativeImage in a NativeImageHashMap.

  • platform/graphics/NativeImageReference.h: Added.

This definition can be used to encode/decode a Ref<NativeImage> for IPC
messages.

  • platform/graphics/displaylists/DisplayList.cpp:

(WebCore::DisplayList::m_nativeImages):
(WebCore::DisplayList::DisplayList::operator=):
(WebCore::DisplayList::DisplayList::clear):

  • platform/graphics/displaylists/DisplayList.h:

(WebCore::DisplayList::DisplayList::nativeImages const):
(WebCore::DisplayList::DisplayList::cacheImageBuffer):
(WebCore::DisplayList::DisplayList::cacheNativeImage):
Add the ability to cache the NativeImage in DisplayList such that its
renderingResourceIdentifier can be used when recording DrawNativeImage
and m_nativeImages can be used to access the NativeImage when replaying
back DrawNativeImage.

  • platform/graphics/displaylists/DisplayListItemBuffer.cpp:

(WebCore::DisplayList::ItemHandle::destroy):

  • platform/graphics/displaylists/DisplayListItemType.cpp:

(WebCore::DisplayList::isInlineItem):

  • platform/graphics/displaylists/DisplayListItems.cpp:

(WebCore::DisplayList::operator<<):
(WebCore::DisplayList::DrawNativeImage::apply const):
(WebCore::DisplayList::DrawNativeImage::DrawNativeImage): Deleted.

  • platform/graphics/displaylists/DisplayListItems.h:

(WebCore::DisplayList::DrawImageBuffer::DrawImageBuffer):
(WebCore::DisplayList::DrawImageBuffer::imageBufferIdentifier const):
(WebCore::DisplayList::DrawNativeImage::DrawNativeImage):
(WebCore::DisplayList::DrawNativeImage::imageIdentifier const):
(WebCore::DisplayList::DrawImageBuffer::renderingResourceIdentifier const): Deleted.
(WebCore::DisplayList::DrawNativeImage::encode const): Deleted.
(WebCore::DisplayList::DrawNativeImage::decode): Deleted.
DrawNativeImage is an inline item now. No encoding/decoding is needed.

  • platform/graphics/displaylists/DisplayListRecorder.cpp:

(WebCore::DisplayList::Recorder::drawImageBuffer):
(WebCore::DisplayList::Recorder::drawNativeImage):

  • platform/graphics/displaylists/DisplayListRecorder.h:

(WebCore::DisplayList::Recorder::Delegate::cacheNativeImage):
Ask the DisplayList::Recorder::Delegate to cache the NativeImage.

  • platform/graphics/displaylists/DisplayListReplayer.cpp:

(WebCore::DisplayList::Replayer::Replayer):
(WebCore::DisplayList::Replayer::applyItem):

  • platform/graphics/displaylists/DisplayListReplayer.h:

Resolve the renderingResourceIdentifier of DrawNativeImage to a NativeImage
from the m_nativeImages before drawing it.

Source/WebKit:

Recorder::drawNativeImage() will ensure the NativeImage is cached before
recording the DrawNativeImage item with the renderingResourceIdentifier.

Because RemoteImageBufferProxy is a superclass of DisplayList::Recorder::
Delegate, it will ensure the NativeImage is cached in its RemoteResourceCacheProxy.

If the NativeImage is registered in RemoteResourceCacheProxy for the first
time, it is going to be sent as an IPC message to GPU. Upon receiving this
message, RemoteRenderingBackend will cache this NativeImage in its
RemoteResourceCache. This message has to be received for any NativeImage
only once for its entire life time.

When flushing the DisplayList of any ImageBuffer, RemoteImageBuffer will
ensure the NativeImages are cached in the RemoteResourceCache are passed
to DisplayList::Replayer so it can use them to get NativeImage for every
DrawNativeImage with the same renderingResourceIdentifier it was recorded
with.

When NativeImage is bing destroyed, its destructor will call its observer
virtual method releaseNativeImage(). RemoteResourceCacheProxy will be a
superclass NativeImage::Observer so its overriding method will be called.
When RemoteResourceCacheProxy::releaseNativeImage() is called it is going
to delete the NativeImage from RemoteResourceCacheProxy and is going to
send a message to GPU to delete the corresponding NativeImage from
RemoteResourceCache via RemoteRenderingBackend::releaseRemoteResource().

  • GPUProcess/graphics/RemoteImageBuffer.h:
  • GPUProcess/graphics/RemoteRenderingBackend.cpp:

(WebKit::RemoteRenderingBackend::cacheNativeImage):
(WebKit::RemoteRenderingBackend::decodeItem):

  • GPUProcess/graphics/RemoteRenderingBackend.h:
  • GPUProcess/graphics/RemoteRenderingBackend.messages.in:
  • GPUProcess/graphics/RemoteResourceCache.cpp:

(WebKit::RemoteResourceCache::cacheNativeImage):
(WebKit::RemoteResourceCache::releaseRemoteResource):

  • GPUProcess/graphics/RemoteResourceCache.h:

(WebKit::RemoteResourceCache::nativeImages const):

  • Scripts/webkit/messages.py:
  • Shared/WebCoreArgumentCoders.cpp:

(IPC::ArgumentCoder<Ref<NativeImage>>::encode):
(IPC::ArgumentCoder<Ref<NativeImage>>::decode):

  • WebProcess/GPU/graphics/RemoteImageBufferProxy.h:

(WebKit::RemoteImageBufferProxy::~RemoteImageBufferProxy):
(WebKit::RemoteImageBufferProxy::RemoteImageBufferProxy):

  • WebProcess/GPU/graphics/RemoteRenderingBackendProxy.cpp:

(WebKit::RemoteRenderingBackendProxy::createImageBuffer):
(WebKit::RemoteRenderingBackendProxy::cacheNativeImage):
(WebKit::RemoteRenderingBackendProxy::releaseRemoteResource):

  • WebProcess/GPU/graphics/RemoteRenderingBackendProxy.h:
  • WebProcess/GPU/graphics/RemoteResourceCacheProxy.cpp:

(WebKit::RemoteResourceCacheProxy::RemoteResourceCacheProxy):
(WebKit::RemoteResourceCacheProxy::cacheImageBuffer):
(WebKit::RemoteResourceCacheProxy::cachedImageBuffer):
(WebKit::RemoteResourceCacheProxy::cacheNativeImage):
(WebKit::RemoteResourceCacheProxy::releaseNativeImage):

  • WebProcess/GPU/graphics/RemoteResourceCacheProxy.h:
4:37 PM Changeset in webkit [269707] by ysuzuki@apple.com
  • 5 edits in trunk/JSTests

Unreviewed, fix wrong tests at the final clean up
https://bugs.webkit.org/show_bug.cgi?id=213822

  • stress/intl-datetimeformat-formatrange.js:
  • stress/intl-datetimeformat-formatrangetoparts-relevant-extensions-ja.js:

(Intl.DateTimeFormat.formatRangeToParts.compareParts.fmt1.formatRangeToParts): Deleted.
(Intl.DateTimeFormat.formatRangeToParts.compareParts.fmt2.formatRangeToParts): Deleted.
(Intl.DateTimeFormat.formatRangeToParts.compareParts.fmt3.formatRangeToParts): Deleted.
(Intl.DateTimeFormat.formatRangeToParts.compareParts.fmt4.formatRangeToParts): Deleted.
(Intl.DateTimeFormat.formatRangeToParts.compareParts.fmt5.formatRangeToParts): Deleted.
(Intl.DateTimeFormat.formatRangeToParts.vm.icuVersion): Deleted.
(Intl.DateTimeFormat.formatRangeToParts.compareParts.fmt6.formatRangeToParts): Deleted.
(Intl.DateTimeFormat.formatRangeToParts.compareParts.fmt7.formatRangeToParts): Deleted.
(Intl.DateTimeFormat.formatRangeToParts.compareParts.fmt8.formatRangeToParts): Deleted.
(Intl.DateTimeFormat.formatRangeToParts.compareParts.fmt9.formatRangeToParts): Deleted.
(Intl.DateTimeFormat.formatRangeToParts.compareParts.fmt10.formatRangeToParts): Deleted.
(Intl.DateTimeFormat.formatRangeToParts.compareParts.fmt11.formatRangeToParts): Deleted.
(Intl.DateTimeFormat.formatRangeToParts.compareParts.fmt12.formatRangeToParts): Deleted.
(Intl.DateTimeFormat.formatRangeToParts.compareParts.fmt13.formatRangeToParts): Deleted.
(Intl.DateTimeFormat.formatRangeToParts.compareParts.fmt14.formatRangeToParts): Deleted.
(Intl.DateTimeFormat.formatRangeToParts.compareParts.fmt15.formatRangeToParts): Deleted.
(Intl.DateTimeFormat.formatRangeToParts.compareParts.fmt16.formatRangeToParts): Deleted.

  • stress/intl-datetimeformat-formatrangetoparts-relevant-extensions.js:
  • stress/intl-datetimeformat-formatrangetoparts.js:
4:25 PM Changeset in webkit [269706] by ysuzuki@apple.com
  • 13 edits
    5 adds in trunk

[JSC] Implement Intl.DateTimeFormat.formatRangeToParts
https://bugs.webkit.org/show_bug.cgi?id=213822
<rdar://problem/69328711>

Reviewed by Ross Kirsling.

JSTests:

  • stress/intl-datetimeformat-formatrange-relevant-extensions.js:
  • stress/intl-datetimeformat-formatrange-should-not-handle-gregorian-change-date.js: Added.

(shouldBe):
(vm.icuHeaderVersion):

  • stress/intl-datetimeformat-formatrange.js:

(shouldThrow):
(test):

  • stress/intl-datetimeformat-formatrangetoparts-relevant-extensions-ja.js: Added.

(shouldBe):
(compareParts):
(shouldThrow):
(Intl.DateTimeFormat.formatRangeToParts.compareParts.fmt1.formatRangeToParts):
(Intl.DateTimeFormat.formatRangeToParts.compareParts.fmt2.formatRangeToParts):
(Intl.DateTimeFormat.formatRangeToParts.compareParts.fmt3.formatRangeToParts):
(Intl.DateTimeFormat.formatRangeToParts.compareParts.fmt4.formatRangeToParts):
(Intl.DateTimeFormat.formatRangeToParts.compareParts.fmt5.formatRangeToParts):
(Intl.DateTimeFormat.formatRangeToParts.vm.icuVersion):
(Intl.DateTimeFormat.formatRangeToParts.compareParts.fmt6.formatRangeToParts):
(Intl.DateTimeFormat.formatRangeToParts.compareParts.fmt7.formatRangeToParts):
(Intl.DateTimeFormat.formatRangeToParts.compareParts.fmt8.formatRangeToParts):
(Intl.DateTimeFormat.formatRangeToParts.compareParts.fmt9.formatRangeToParts):
(Intl.DateTimeFormat.formatRangeToParts.compareParts.fmt10.formatRangeToParts):
(Intl.DateTimeFormat.formatRangeToParts.compareParts.fmt11.formatRangeToParts):
(Intl.DateTimeFormat.formatRangeToParts.compareParts.fmt12.formatRangeToParts):
(Intl.DateTimeFormat.formatRangeToParts.compareParts.fmt13.formatRangeToParts):
(Intl.DateTimeFormat.formatRangeToParts.compareParts.fmt14.formatRangeToParts):
(Intl.DateTimeFormat.formatRangeToParts.compareParts.fmt15.formatRangeToParts):
(Intl.DateTimeFormat.formatRangeToParts.compareParts.fmt16.formatRangeToParts):

  • stress/intl-datetimeformat-formatrangetoparts-relevant-extensions.js: Added.

(shouldBe):
(compareParts):
(shouldThrow):

  • stress/intl-datetimeformat-formatrangetoparts-should-not-handle-gregorian-change-date.js: Added.

(shouldBe):
(compareParts):
(vm.icuHeaderVersion):

  • stress/intl-datetimeformat-formatrangetoparts.js: Added.

(shouldBe):
(compareParts):
(shouldThrow):

  • test262/config.yaml:
  • test262/expectations.yaml: This failure is because of CLDR data inside ICU. ICU 67 will fix them.

Source/JavaScriptCore:

This patch implements Intl.DateTimeFormat.formatRangeToParts. It is already stage-4 (included in the spec).
The inputs are date interval, and this function generates array of parts of formatted string of date interval.
Currently, required ICU APIs are draft status. So, for now, we track ABI changes, and use APIs with careful version checks.

However, currently, OpenSource macOS WebKit is built with specific ICU header (ICU 62 headers). So for now, we disable it
in OpenSource macOS WebKit build. But we enable it for Apple Internal SDK WebKit build. We can enable it if we include
multiple ICU header sets and select appropriate one against the linked ICU version. In the other platforms, they are using
corresponding ICU headers so that we can just enable it.

There are two interesting implementation topics.

  1. From ICU 67, the signature of udtitvfmt_formatToResult is changed. We need to switch the implementation with fine grained ICU version checks.
  2. udtitvfmt_formatToResult does not have an ability to configure gregorian calendar change date: before that date, the calendar is julian. In ECMAScript spec, we need to ignore this gregorian calendar change date, and we should handle all gregorian calendar dates as is even if the dates are older than gregorian calendar change date. However, since udtitvfmt_formatToResult does not offer the above ability, ICU automatically switches the calendar between gregorian and julian. To fix this issue, ICU 67 introduced udtitvfmt_formatCalendarToResult, which can take an explicit calendar for each input date so that we configure gregorian calendar change date. But this only exists after ICU 67. In the implementations using ICU 64-66, we just use udtitvfmt_formatToResult.
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • Sources.txt:
  • runtime/IntlDateTimeFormat.cpp:

(JSC::UDateIntervalFormatDeleter::operator()):
(JSC::IntlDateTimeFormat::formatToParts const):
(JSC::definitelyAfterGregorianCalendarChangeDate):
(JSC::formattedValueFromDateRange):
(JSC::IntlDateTimeFormat::formatRange):
(JSC::IntlDateTimeFormat::formatRangeToParts):

  • runtime/IntlDateTimeFormat.h:
  • runtime/IntlDateTimeFormatPrototype.cpp:

(JSC::IntlDateTimeFormatPrototype::create):
(JSC::IntlDateTimeFormatPrototype::finishCreation):
(JSC::JSC_DEFINE_HOST_FUNCTION):

  • runtime/IntlDateTimeFormatPrototype.h:
  • runtime/OptionsList.h:
4:01 PM Changeset in webkit [269705] by Ryan Haddad
  • 3 edits in trunk/Tools

[webkitpy] Bump CURRENT_VERSION to 11.0 for Mac port
https://bugs.webkit.org/show_bug.cgi?id=218581

Reviewed by Jonathan Bedard.

  • Scripts/webkitpy/port/mac.py:

(MacPort):

  • Scripts/webkitpy/port/mac_unittest.py:

(MacTest):
(MacTest.test_big_sur_baseline_search_path):

3:37 PM Changeset in webkit [269704] by weinig@apple.com
  • 13 edits in trunk

Remove unused ExperimentalNotificationsEnabled setting
https://bugs.webkit.org/show_bug.cgi?id=218813

Reviewed by Tim Horton.

Source/WebCore:

  • page/Settings.yaml:

Remove ExperimentalNotificationsEnabled. It was unused.

Source/WebKitLegacy/mac:

  • WebView/WebPreferenceKeysPrivate.h:
  • WebView/WebPreferences.mm:

(+[WebPreferences initialize]):
(-[WebPreferences setExperimentalNotificationsEnabled:]):
(-[WebPreferences experimentalNotificationsEnabled]):

  • WebView/WebPreferencesPrivate.h:
  • WebView/WebView.mm:

(-[WebView _preferencesChanged:]):
Obsolete ExperimentalNotificationsEnabled preference as it does nothing.

Source/WebKitLegacy/win:

  • WebPreferences.cpp:

(WebPreferences::setExperimentalNotificationsEnabled):
(WebPreferences::experimentalNotificationsEnabled):

  • WebView.cpp:

(WebView::notifyPreferencesChanged):
Obsolete ExperimentalNotificationsEnabled preference as it does nothing.

Tools:

  • DumpRenderTree/mac/DumpRenderTree.mm:

(resetWebPreferencesToConsistentValues):

  • DumpRenderTree/win/DumpRenderTree.cpp:

(resetWebPreferencesToConsistentValues):
Stop setting ExperimentalNotificationsEnabled to false. It does nothing.

2:49 PM Changeset in webkit [269703] by Chris Dumez
  • 8 edits in trunk

Terminate WebProcesses if GPUProcess crashes more than twice in 30 seconds
https://bugs.webkit.org/show_bug.cgi?id=218811
<rdar://problem/71292424>

Reviewed by Tim Horton.

Source/WebKit:

If the GPUProcess crashes more than twice in 30 seconds, we now terminate all WebProcesses
to try and get back into a good state. This is to avoid getting into a situation where
the GPUProcess is crash looping.

  • UIProcess/AuxiliaryProcessProxy.cpp:

(WebKit::AuxiliaryProcessProxy::terminate):

  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::gpuProcessCrashed):
(WebKit::WebProcessPool::resetGPUProcessCrashCount):
(WebKit::WebProcessPool::terminateAllWebContentProcesses):

  • UIProcess/WebProcessPool.h:

Tools:

Add API test coverage.

  • TestWebKitAPI/Tests/WebKitCocoa/GPUProcess.mm:

(TEST):

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

(-[TestNavigationDelegate waitForWebContentProcessDidTerminate]):
(-[WKWebView _test_waitForWebContentProcessDidTerminate]):

2:12 PM Changeset in webkit [269702] by Ryan Haddad
  • 1 edit
    8 adds in trunk/LayoutTests

Unreviewed test gardening, add Mojave specific baselines.

  • platform/mac-mojave/fast/text/international/system-language/navigator-language/navigator-language-en-US-expected.txt: Added.
  • platform/mac-mojave/fast/text/international/system-language/navigator-language/navigator-language-en-expected.txt: Added.
  • platform/mac-mojave/fast/text/international/system-language/navigator-language/navigator-language-es-ES-expected.txt: Added.
  • platform/mac-mojave/fast/text/international/system-language/navigator-language/navigator-language-es-expected.txt: Added.
  • platform/mac-mojave/fast/text/international/system-language/navigator-language/navigator-language-fr-expected.txt: Added.
  • platform/mac-mojave/fast/text/international/system-language/navigator-language/navigator-language-hi-expected.txt: Added.
  • platform/mac-mojave/fast/text/international/system-language/navigator-language/navigator-language-pt-BR-expected.txt: Added.
  • platform/mac-mojave/fast/text/international/system-language/navigator-language/navigator-language-ru-expected.txt: Added.
1:44 PM Changeset in webkit [269701] by BJ Burg
  • 34 edits
    10 copies
    5 adds in trunk

[Cocoa] Inspector Extensions: Add _WKInspectorExtension and related plumbing
https://bugs.webkit.org/show_bug.cgi?id=217783
<rdar://problem/69968787>

Reviewed by Devin Rousso.

Source/WebCore:

  • inspector/InspectorFrontendClient.h:
  • inspector/InspectorFrontendClientLocal.h:

In order for WebInspectorUIExtensionController to work with remote and local
inspectors, it stores a weak pointer the inspector's InspectorFrontendClient.
Expose the frontend's page so that the frontend API dispatcher can dispatch to it.

Source/WebInspectorUI:

  • UserInterface/Main.html: Add new files.
  • UserInterface/Controllers/AppControllerBase.js:

(WI.AppControllerBase):
(WI.AppControllerBase.prototype.get extensionController):
Hang the extension controller off of the global singleton, as there can only be one.

  • UserInterface/Controllers/WebInspectorExtensionController.js:

(WI.WebInspectorExtensionController):
(WI.WebInspectorExtensionController.prototype.registerExtension):
(WI.WebInspectorExtensionController.prototype.unregisterExtension):
Added. For now, just keep the UUIDs in a map and log the result.

  • UserInterface/Models/WebInspectorExtension.js:

(WI.WebInspectorExtension):
(WI.WebInspectorExtension.prototype.get extensionID):
(WI.WebInspectorExtension.prototype.get displayName):
Added. This is a data object for now.

  • UserInterface/Protocol/InspectorFrontendAPI.js:

(InspectorFrontendAPI.loadCompleted):
(InspectorFrontendAPI.registerExtension):
(InspectorFrontendAPI.unregisterExtension):
Added. Forward invocations to the extension controller.

Source/WebKit:

_WKInspectorExtension is new SPI that represents a Web Extension that uses the 'devtools'
API to interact with Web Inspector. An extension is associated with its _WKInspectorExtensionHost.
A WebKit client that supports Web Extensions can use this class to implement 'devtools' extension APIs.

Add _WKInspectorExtensionHost methods to register and unregister an extension.
Add plumbing so that the extension in registered in the frontend with WI.InspectorExtensionController.

Later patches will flesh out the needed functionality to implement rest of the 'devtools' API.

  • Sources.txt:
  • SourcesCocoa.txt:
  • DerivedSources-input.xcfilelist:
  • DerivedSources-output.xcfilelist:
  • DerivedSources.make:
  • WebKit.xcodeproj/project.pbxproj:

Add new files.

  • Scripts/webkit/messages.py: If a message includes InspectorExtensionError,

then generate an include for InspectorExtensionTypes.h where it is declared.

  • Shared/API/APIObject.h:
  • Shared/Cocoa/APIObject.mm:

(API::Object::newObject):
New API object type.

  • Shared/InspectorExtensionTypes.h: Added error code enum and useful type aliases.
  • Shared/InspectorExtensionTypes.cpp:

(WebKit::inspectorExtensionErrorToString):

  • UIProcess/API/APIInspectorExtension.h:
  • UIProcess/API/APIInspectorExtension.cpp:

(API::InspectorExtension::create):
(API::InspectorExtension::InspectorExtension):
(API::InspectorExtension::~InspectorExtension):
Added. This is a placeholder object that's used for the wrapper system,
since we don't have single C++ objects for each extension to back the API object.

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

(-[_WKInspector registerExtensionWithID:displayName:completionHandler:]):
(-[_WKInspector unregisterExtension:completionHandler:]):
Implement new _WKInspectorExtensionHost methods. Send IPC to the Inspector web process.

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

(-[_WKInspectorExtension initWithIdentifier:]):
(-[_WKInspectorExtension dealloc]):
(-[_WKInspectorExtension _apiObject]):
(-[_WKInspectorExtension extensionID]):
Added. This is a data object that's also used as a token to unregister the extension.

  • UIProcess/API/Cocoa/_WKInspectorExtensionHost.h: Add new SPI.
  • UIProcess/API/Cocoa/_WKInspectorExtensionInternal.h:
  • UIProcess/API/Cocoa/_WKRemoteWebInspectorViewController.h:
  • UIProcess/API/Cocoa/_WKRemoteWebInspectorViewController.mm:

(-[_WKRemoteWebInspectorViewController registerExtensionWithID:displayName:completionHandler:]):
(-[_WKRemoteWebInspectorViewController unregisterExtension:completionHandler:]):
Implement new _WKInspectorExtensionHost methods. Send IPC to the Inspector web process.

  • UIProcess/Inspector/RemoteWebInspectorProxy.h:
  • UIProcess/Inspector/RemoteWebInspectorProxy.messages.in: Add FrontendLoaded.

(WebKit::RemoteWebInspectorProxy::extensionController const): Added.

  • UIProcess/Inspector/RemoteWebInspectorProxy.cpp:

(WebKit::RemoteWebInspectorProxy::frontendLoaded):
(WebKit::RemoteWebInspectorProxy::createFrontendPageAndWindow):
Set up the extension controller object after the frontend has been created.
Hook up the FrontendLoaded event sent from Inspector web process so that the
extension controller can be notified of when it's safe to message the frontend.

  • UIProcess/Inspector/WebInspectorProxy.cpp:

(WebKit::WebInspectorProxy::createFrontendPage):
(WebKit::WebInspectorProxy::closeFrontendPageAndWindow):
(WebKit::WebInspectorProxy::frontendLoaded):
Set up the extension controller object after the frontend has been created.

  • UIProcess/Inspector/WebInspectorProxy.h:

(WebKit::WebInspectorProxy::extensionController const): Added.

  • UIProcess/Inspector/WebInspectorUIExtensionControllerProxy.h:
  • UIProcess/Inspector/WebInspectorUIExtensionControllerProxy.cpp: Added.

(WebKit::WebInspectorUIExtensionControllerProxy::WebInspectorUIExtensionControllerProxy):
(WebKit::WebInspectorUIExtensionControllerProxy::~WebInspectorUIExtensionControllerProxy):
(WebKit::WebInspectorUIExtensionControllerProxy::whenFrontendHasLoaded):
(WebKit::WebInspectorUIExtensionControllerProxy::inspectorFrontendLoaded):
(WebKit::WebInspectorUIExtensionControllerProxy::registerExtension):
(WebKit::WebInspectorUIExtensionControllerProxy::unregisterExtension):
Added. Forward API requests to the Web Inspector's web process to be evaluated in the frontend.

  • WebProcess/Inspector/WebInspectorFrontendAPIDispatcher.h:
  • WebProcess/Inspector/WebInspectorFrontendAPIDispatcher.cpp:

(WebKit::WebInspectorFrontendAPIDispatcher::dispatchCommand):
Add a more generic way to encode values to be passed as arguments to InspectorFrontendAPI.dispatch.

  • WebProcess/Inspector/WebInspectorUI.cpp:

(WebKit::WebInspectorUI::establishConnection):
(WebKit::WebInspectorUI::closeWindow):

  • WebProcess/Inspector/WebInspectorUI.h:

(WebKit::WebInspectorUI::frontendPage const): Added.
(WebKit::WebInspectorUI::frontendAPIDispatcher): Added.

  • WebProcess/Inspector/WebInspectorUIExtensionController.h:
  • WebProcess/Inspector/WebInspectorUIExtensionController.messages.in: Added.
  • WebProcess/Inspector/WebInspectorUIExtensionController.cpp: Added.

(WebKit::WebInspectorUIExtensionController::WebInspectorUIExtensionController):
(WebKit::WebInspectorUIExtensionController::~WebInspectorUIExtensionController):
(WebKit::WebInspectorUIExtensionController::registerExtension):
(WebKit::WebInspectorUIExtensionController::unregisterExtension):
(WebKit::WebInspectorUIExtensionController::parseInspectorExtensionErrorFromResult):
Handle incoming messages by forwarding the associated command to WI.WebExtensionController
via InspectorFrontendAPI evaluations.

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

Fallout from unified build chunking shifts.

  • UIProcess/WebAuthentication/Cocoa/LocalAuthenticator.mm:

(WebKit::LocalAuthenticatorInternal::getExistingCredentials):
(WebKit::LocalAuthenticator::continueMakeCredentialAfterUserVerification):
Fallout from unified build chunking shifts, but more.

Tools:

Add API tests to exercise new methods of the _WKInspectorExtensionHost protocol.

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: New test file.
  • TestWebKitAPI/Tests/WebKitCocoa/WKInspectorExtensionHost.mm: Added.

(resetGlobalState):
(-[UIDelegateForTestingInspectorExtensionHost _webView:didAttachLocalInspector:]):
(TEST):

1:09 PM Changeset in webkit [269700] by achristensen@apple.com
  • 4 edits in trunk/Source

Define USE(LEGACY_CFNETWORK_DOWNLOADS)
https://bugs.webkit.org/show_bug.cgi?id=218814

Reviewed by Geoffrey Garen.

Source/WebKit:

Mojave CFNetwork has a few download bugs I'll need to work around.
With this change I can use USE(LEGACY_CFNETWORK_DOWNLOADS) instead of MAC_OS_X_VERSION_MIN_REQUIRED,
which is more in line with WebKit style. This will be used more in bug 217747.

  • NetworkProcess/Downloads/cocoa/DownloadCocoa.mm:

(WebKit::Download::resume):

Source/WTF:

  • wtf/PlatformUse.h:
12:56 PM Changeset in webkit [269699] by aakash_jain@apple.com
  • 2 edits in trunk/Tools

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

Reviewed by Jonathan Bedard.

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

(CheckOutSource):
(CheckOutSource.init):

12:16 PM Changeset in webkit [269698] by Chris Dumez
  • 13 edits in trunk

[GPUProcess] Seamlessly resume WebAudio playback if the GPU Process crashes
https://bugs.webkit.org/show_bug.cgi?id=218806

Reviewed by Geoffrey Garen.

Source/WebCore:

  • platform/audio/cocoa/AudioDestinationCocoa.h:

Export function so it can be called from WebKit layer.

Source/WebKit:

In case of a GPU process crash, we were previously terminating all WebProcesses.
This patch makes it so that WebProcesses are no longer terminated in such cases.
Additionally, this patch makes sure that if WebAudio is rendering audio while
the GPU Process crashes, the GPU process will get relaunched right away and
audio rendering will seamlessly continue.

  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::gpuProcessCrashed):

  • WebProcess/GPU/GPUProcessConnection.cpp:

(WebKit::GPUProcessConnection::didClose):

  • WebProcess/GPU/GPUProcessConnection.h:

(WebKit::GPUProcessConnection::Client::gpuProcessConnectionDidClose):
(WebKit::GPUProcessConnection::addClient):
(WebKit::GPUProcessConnection::removeClient):

  • WebProcess/GPU/media/RemoteAudioDestinationProxy.cpp:

(WebKit::RemoteAudioDestinationProxy::RemoteAudioDestinationProxy):
(WebKit::RemoteAudioDestinationProxy::connectToGPUProcess):
(WebKit::RemoteAudioDestinationProxy::gpuProcessConnectionDidClose):

  • WebProcess/GPU/media/RemoteAudioDestinationProxy.h:
  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::gpuProcessConnectionClosed):

  • WebProcess/WebProcess.h:

Tools:

Extend API test coverage.

  • TestWebKitAPI/Tests/WebKitCocoa/GPUProcess.mm:

(TEST):

12:15 PM Changeset in webkit [269697] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit

Use _CFURLConnectionSetFrameworkStubs instead of DYLD_INTERPOSE on Intel Macs
https://bugs.webkit.org/show_bug.cgi?id=218810

Patch by Alex Christensen <achristensen@webkit.org> on 2020-11-11
Reviewed by Geoffrey Garen.

A long, long time ago, we realized that CFNetwork was looking in the keychain for persistent credentials,
and in order to make the network process get credentials as the UI process, we introduced SecItemShim which
used DYLD_INTERPOSE to intercept the calls to the security framework and synchronously message the UI process
for those calls. Over the last 6 years we have realized that doesn't work on iOS or Apple silicon Macs, so
we use _CFURLConnectionSetFrameworkStubs instead. That works on Intel Macs, too, and I'm reasonably certain
that using it everywhere won't break anything, so as a step towards rdar://problem/15588174 which should allow
us to use asynchronous messages and no more globalNetworkProcess pointer, let's stop using DYLD_INTERPOSE.

  • Shared/mac/SecItemShim.cpp:

(WebKit::initializeSecItemShim):

11:57 AM Changeset in webkit [269696] by commit-queue@webkit.org
  • 7 edits in trunk/Source

Don't look in keychain for SecKeyRef after deserializing SecIdentityRef
https://bugs.webkit.org/show_bug.cgi?id=218809
<rdar://problem/69394018>

Patch by Alex Christensen <achristensen@webkit.org> on 2020-11-11
Reviewed by Geoffrey Garen.

Source/WebKit:

In ye olden days of WebKit2, we used to use special code to serialize an NSURLCredential with an identity.
We needed to serialize the certificate chain and a way to look in the keychain to find the private key.
That didn't work with third party apps not entitled to look in the keychain, and it also didn't work with hardware
keys that retain the private key themselves, so we introduced SecKeyProxy. Now, all those things work and we don't
serialize SecIdentityRefs any more, so let's remove the problematic dead code that would have tried.
Luckily, we now have API tests that verify that client certificate authentication still works.

r169938 added a restriction to looking in the keychain only if the parent app has entitlements needed to do so.
That restriction isn't needed any more because nobody looks in the keychain from the network process.

r269162 entirely removed looking in the keychain for private keys for client certificate authentication.
This is moving in that same direction.

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

(WebKit::XPCServiceInitializerDelegate::checkEntitlements):

  • Shared/cf/ArgumentCodersCF.cpp:

(IPC::typeFromCFTypeRef):
(IPC::encode):
(IPC::decode):
(IPC::setAllowsDecodingSecKeyRef): Deleted.
(IPC::copyPersistentRef): Deleted.

  • Shared/cf/ArgumentCodersCF.h:
  • Shared/mac/WebCoreArgumentCodersMac.mm:

(IPC::ArgumentCoder<WebCore::Credential>::encodePlatformData):
(IPC::ArgumentCoder<WebCore::Credential>::decodePlatformData):

Source/WTF:

  • wtf/spi/cocoa/SecuritySPI.h:
11:54 AM Changeset in webkit [269695] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Protect ScheduledURLNavigation member
https://bugs.webkit.org/show_bug.cgi?id=218593

Patch by Rob Buis <rbuis@igalia.com> on 2020-11-11
Reviewed by Alex Christensen.

Protect ScheduledURLNavigation member m_url by using a copy since
ScheduledURLNavigation itself is not protected and may be cancelled
(and thus deleted) just at the time it is sending a message to the
UIProcess which encodes the passed m_url member variable.

  • loader/NavigationScheduler.cpp:
11:50 AM Changeset in webkit [269694] by ysuzuki@apple.com
  • 6 edits in trunk/Source/JavaScriptCore

[JSC] wasm fault trampoline should be C code since it is tagged as CFunctionPtr
https://bugs.webkit.org/show_bug.cgi?id=218781

Reviewed by Keith Miller and Mark Lam.

When returning from signal handler, handler requires that instruction pointer is CFunctionPtrTag-ed.
So we should set C trampoline instead of JIT trampoline here.
This patch implements trampoline in LLInt Wasm code so that we can use CFunctionPtrTag.

  • bytecode/BytecodeList.rb:
  • llint/WebAssembly.asm:
  • wasm/WasmFaultSignalHandler.cpp:

(JSC::Wasm::trapHandler):

11:37 AM Changeset in webkit [269693] by Antti Koivisto
  • 23 edits in trunk/Source/WebCore

Replace confusing extraWidthToEndOfLine parameter with an enum
https://bugs.webkit.org/show_bug.cgi?id=218793

Reviewed by Zalan Bujtas.

When a client of localCaretRect wants a rect that extends from caret to the end of the line it gets the length
of the remaining line awkwardly via extraWidthToEndOfLine out-parameter and then uses it to mutate the caret rect.

Instead just pass an enum telling that an extended rect is required and compute it in when constructing the rect.

  • editing/Editor.cpp:

(WebCore::Editor::firstRectForRange const):

  • editing/RenderedPosition.cpp:

(WebCore::RenderedPosition::absoluteRect const):

  • editing/RenderedPosition.h:
  • rendering/RenderBlock.cpp:

(WebCore::RenderBlock::localCaretRect const):

  • rendering/RenderBlock.h:
  • rendering/RenderBlockFlow.cpp:

(WebCore::RenderBlockFlow::computeCaretRect const):

  • rendering/RenderBlockFlow.h:
  • rendering/RenderBox.cpp:

(WebCore::RenderBox::localCaretRect const):

  • rendering/RenderBox.h:
  • rendering/RenderBoxModelObject.cpp:

(WebCore::RenderBoxModelObject::localCaretRectForEmptyElement const):

  • rendering/RenderBoxModelObject.h:
  • rendering/RenderInline.cpp:

(WebCore::RenderInline::localCaretRect const):

  • rendering/RenderInline.h:
  • rendering/RenderLineBreak.cpp:

(WebCore::RenderLineBreak::localCaretRect const):

  • rendering/RenderLineBreak.h:
  • rendering/RenderObject.cpp:

(WebCore::RenderObject::localCaretRect const):

  • rendering/RenderObject.h:
  • rendering/RenderObjectEnums.h:
  • rendering/RenderText.cpp:

(WebCore::RenderText::localCaretRect const):

  • rendering/RenderText.h:
  • rendering/svg/RenderSVGInlineText.cpp:

(WebCore::RenderSVGInlineText::localCaretRect const):

  • rendering/svg/RenderSVGInlineText.h:
11:13 AM Changeset in webkit [269692] by Andres Gonzalez
  • 3 edits in trunk/Source/WebCore

Implementation for AXIsolatedObject methods that return a VisiblePositionRange.
https://bugs.webkit.org/show_bug.cgi?id=218783

Reviewed by Chris Fleizach.

Fix for the following tests in isolated tree mode:
accessibility/mac/attributed-string-with-listitem-multiple-lines.html
accessibility/mac/character-offset-from-upstream-position.html

Methods that return a VisiblePositionRange need to be called on the main
thread. The implementation of each of these methods forward the call to
the associated AXObject.

  • accessibility/isolatedtree/AXIsolatedObject.cpp:

(WebCore::AXIsolatedObject::visiblePositionRange const):
(WebCore::AXIsolatedObject::visiblePositionRangeForLine const):
(WebCore::AXIsolatedObject::visiblePositionRangeForUnorderedPositions const):
(WebCore::AXIsolatedObject::positionOfLeftWord const):
(WebCore::AXIsolatedObject::positionOfRightWord const):
(WebCore::AXIsolatedObject::leftLineVisiblePositionRange const):
(WebCore::AXIsolatedObject::rightLineVisiblePositionRange const):
(WebCore::AXIsolatedObject::sentenceForPosition const):
(WebCore::AXIsolatedObject::paragraphForPosition const):
(WebCore::AXIsolatedObject::styleRangeForPosition const):
(WebCore::AXIsolatedObject::visiblePositionRangeForRange const):
(WebCore::AXIsolatedObject::lineRangeForPosition const):

  • accessibility/isolatedtree/AXIsolatedObject.h:
11:12 AM Changeset in webkit [269691] by sihui_liu@apple.com
  • 2 edits in trunk/Source/WebKit

REGRESSION (r269348): ASSERTION FAILED: !m_messageReceiverMapCount under WebKit::SpeechRecognitionServer::~SpeechRecognitionServer
https://bugs.webkit.org/show_bug.cgi?id=218770
<rdar://problem/71252234>

Reviewed by Youenn Fablet.

Remove SpeechRecognitionServer from MessageReceiverMap before it is destroyed.

  • UIProcess/WebProcessProxy.cpp:

(WebKit::WebProcessProxy::~WebProcessProxy):

10:43 AM Changeset in webkit [269690] by Chris Dumez
  • 4 edits in trunk/Source/WebKit

REGRESSION (r269657): ASSERTION FAILED: Completion handler should always be called under WebKit::GPUProcessProxy::~GPUProcessProxy
https://bugs.webkit.org/show_bug.cgi?id=218807
<rdar://problem/71285627>

Reviewed by Geoffrey Garen.

GPUProcessProxy::sendPrepareToSuspend() was failing to send the IPC to the GPUProcess and was also
failing to call its completion handler, thus asserting in Debug. Update GPUProcessProxy to actually
send the PrepareToSuspend / ProcessDidResume IPCs to the GPUProcess. The GPUProcess actually already
had an implementation to deal with those IPCs.

No new tests, covered by existing tests that are crashing in debug.

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

(WebKit::GPUProcessProxy::sendPrepareToSuspend):
(WebKit::GPUProcessProxy::sendProcessDidResume):

  • UIProcess/GPU/GPUProcessProxy.h:
10:27 AM Changeset in webkit [269689] by aakash_jain@apple.com
  • 2 edits in trunk/Tools

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

Reviewed by Jonathan Bedard.

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

(ParseByLineLogObserver): New helper class to replace usage of LineConsumerLogObserver. This both makes it
easier to adopt the generator-based approach and reduces duplication of: while True, try, run some code,
then except GeneratorExit.
(ParseByLineLogObserver.init): Takes one argument: the function to run against each line produced.
(RunWebKitTests):
(RunWebKitTests.start): Initialize log_observer and appropriate variables.
(RunWebKitTests._parseRunWebKitTestsOutput): Added FIXME to remove this method after switching to buildbot v2.
(RunWebKitTests.parseOutputLine): Method to parse each log line as it is generated.
(RunWebKitTests.processTestFailures): Method to summarize the test failure information.
(RunWebKitTests.commandComplete):
(RunWebKitTests.evaluateCommand): Call processTestFailures method before processing results.
(RunWebKitTests.getResultSummary): Method to show step summary in new buildbot.
(RunWebKitTests.getText): Added FIXME to remove this method after switching to buildbot v2.
(RunWebKitTests.getText2): Ditto.

10:06 AM Changeset in webkit [269688] by eric.carlson@apple.com
  • 12 edits in trunk/Source/WebCore

USB microphone not recognized iOS Safari
https://bugs.webkit.org/show_bug.cgi?id=211192
<rdar://problem/62607313>

Reviewed by Youenn Fablet.

Source/WebCore:

Testing requires hardware, tested manually.

  • platform/mediastream/CaptureDevice.h: Add concept of default device.

(WebCore::CaptureDevice::isDefault const):
(WebCore::CaptureDevice::setIsDefault):
(WebCore::CaptureDevice::encode const):
(WebCore::CaptureDevice::decode):

  • platform/mediastream/ios/AVAudioSessionCaptureDevice.h: Don't retain port

description, it is never used.

  • platform/mediastream/ios/AVAudioSessionCaptureDevice.mm:

(WebCore::AVAudioSessionCaptureDevice::create): Add default input parameter.
(WebCore::AVAudioSessionCaptureDevice::AVAudioSessionCaptureDevice): Set enabled
and default attributes.

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

(-[WebAVAudioSessionAvailableInputsListener initWithCallback:audioSession:]): Take
parent object and audio session. Listen for session route change notification.
(-[WebAVAudioSessionAvailableInputsListener invalidate]):
(-[WebAVAudioSessionAvailableInputsListener routeDidChange:]):
(WebCore::AVAudioSessionCaptureDeviceManager::AVAudioSessionCaptureDeviceManager):
Allocate and use an auxiliary audio session because it isn't possible to enumerate
all audio inputs without one.
(WebCore::AVAudioSessionCaptureDeviceManager::audioSessionDeviceWithUID): No need
to call refreshAudioCaptureDevices, audioSessionCaptureDevices does it if necessary.
(WebCore::AVAudioSessionCaptureDeviceManager::scheduleUpdateCaptureDevices): New,
refresh devices on a task queue because we frequently get more than one notification
when a route changes.
(WebCore::AVAudioSessionCaptureDeviceManager::refreshAudioCaptureDevices): Sort devices
so the default is always first. Only call deviceChanged when something actually changes.
(-[WebAVAudioSessionAvailableInputsListener initWithCallback:]): Deleted.
(-[WebAVAudioSessionAvailableInputsListener observeValueForKeyPath:ofObject:change:context:]): Deleted.

  • platform/mediastream/mac/CoreAudioCaptureDevice.cpp:

(WebCore::getDeviceInfo): Deal with input and output devices. Translate the data
source name if possible.
(WebCore::CoreAudioCaptureDevice::create):
(WebCore::CoreAudioCaptureDevice::CoreAudioCaptureDevice): Set new default attribute.
(WebCore::CoreAudioCaptureDevice::defaultDevice): New.

  • platform/mediastream/mac/CoreAudioCaptureDevice.h:
  • platform/mediastream/mac/CoreAudioCaptureDeviceManager.cpp:

(WebCore::CoreAudioCaptureDeviceManager::scheduleUpdateCaptureDevices): New, coalesce
calls to refreshAudioCaptureDevices.
(WebCore::CoreAudioCaptureDeviceManager::coreAudioCaptureDevices):
(WebCore::computeAudioDeviceList): No need to check for the default device explicitly.
(WebCore::CoreAudioCaptureDeviceManager::refreshAudioCaptureDevices):
(WebCore::getDefaultCaptureInputDevice): Deleted.
(WebCore::getDefaultCaptureOutputDevice): Deleted.

  • platform/mediastream/mac/CoreAudioCaptureDeviceManager.h:

Source/WebCore/PAL:

  • pal/spi/cocoa/AVFoundationSPI.h: Declare +[AVAudioSession initAuxiliarySession].
9:23 AM Changeset in webkit [269687] by Noam Rosenthal
  • 2 edits in trunk/Source/WebCore

ContentfulPaintChecker should not trigger plugin snapshotting
https://bugs.webkit.org/show_bug.cgi?id=218777
<rdar://problem/71256352>

Reviewed by Simon Fraser.

Widgets should not be notified when detecting contentful paint.

No new tests, a minor optimization.

  • page/FrameView.cpp:

(WebCore::FrameView::willPaintContents):

8:17 AM Changeset in webkit [269686] by commit-queue@webkit.org
  • 12 edits in trunk/Source/WebCore

Unreviewed, reverting r269680.
https://bugs.webkit.org/show_bug.cgi?id=218803

Broke a webgl test on ios-wk2

Reverted changeset:

"Remove uses of MakeCurrent from WebGL implementation"
https://bugs.webkit.org/show_bug.cgi?id=218178
https://trac.webkit.org/changeset/269680

8:03 AM Changeset in webkit [269685] by Adrian Perez de Castro
  • 2 edits in trunk/Source/WebCore

[GStreamer] Fix build due to unhandled AudioConfiguration Optional<T> members introduced in r269631

Unreviewed build fix.

  • platform/graphics/gstreamer/GStreamerRegistryScanner.cpp:

(WebCore::GStreamerRegistryScanner::isConfigurationSupported const): Use .valueOr(0) in
arguments to GST_DEBUG() macro to avoid passing non-POD types through varargs.

7:59 AM Changeset in webkit [269684] by Antti Koivisto
  • 2 edits in trunk/Source/WebCore

[LFC][Integration] Pass replaced box baseline to IFC
https://bugs.webkit.org/show_bug.cgi?id=218801

Reviewed by Zalan Bujtas.

This fixes <attachment> element tests (like fast/attachment/attachment-title.html) with full replaced element support enabled.

It is also needed for the future inline-block support.

(WebCore::LayoutIntegration::LineLayout::updateReplacedDimensions):

7:52 AM Changeset in webkit [269683] by commit-queue@webkit.org
  • 3 edits in trunk/Tools

Use FileDownload to fetch built product from master
https://bugs.webkit.org/show_bug.cgi?id=218440

Patch by Angelos Oikonomopoulos <Angelos Oikonomopoulos> on 2020-11-11
Reviewed by Aakash Jain.

This removes the need for a front-end web server to serve the static
files.

  • CISupport/ews-build/steps.py:

(DownloadBuiltProductFromMaster):
(DownloadBuiltProductFromMaster.init):
(DownloadBuiltProductFromMaster.getResultSummary):

  • CISupport/ews-build/steps_unittest.py:
7:06 AM Changeset in webkit [269682] by Wenson Hsieh
  • 11 edits
    2 copies
    1 move
    1 add in trunk/Source/WebKit

[Concurrent display lists] Add an initial implementation of concurrent display list rendering
https://bugs.webkit.org/show_bug.cgi?id=218426
<rdar://problem/71167220>

Reviewed by Ryosuke Niwa.

This patch adds a first-cut implementation of concurrent display list rendering, which allows the GPU and web
processes to read and write display list data at the same time. To achieve this, we remove the placeholder
shared memory display list encoding mechanism previously added in <webkit.org/b/218406>, and replace it with a
new model in which a writer (i.e. the web process) and a reader (i.e. the GPU process) share a set of reusable
shared memory buffers which contain display list item data. As the writer appends data to shared memory, it
increments a counter in each shared memory buffer that represents the number of bytes that the reader has yet to
read; as the reader reads display list items from shared memory, it decrements this counter.

This patch also implements a simple strategy for reusing these shared item buffers. The web process maintains a
queue of reusable buffers; when display list items are appended and the current writable buffer is out of
capacity, the display list item buffer calls out to WebKit2 via a client method to request more shared memory.
Here, the web process traverses the queue of reusable item buffers in search of a buffer with sufficient
capacity; if found, we hand this back to WebCore as an opaque ItemBufferHandle; otherwise, we allocate a new
reusable shared memory buffer. Item buffers that have been used become reusable only after they are (1) no
longer being read from -- i.e., the counter value is 0, and (2) they are not actively being written to.
Buffers that have been used are lazily reintroduced into the reuse queue when a display list requests a handle
to writable item buffer data.

See below for more details.

  • GPUProcess/graphics/DisplayListReaderHandle.cpp: Copied from Source/WebKit/Shared/SharedDisplayListHandle.cpp.

(WebKit::DisplayListReaderHandle::advance):
(WebKit::DisplayListReaderHandle::displayListForReading const):

  • GPUProcess/graphics/DisplayListReaderHandle.h: Copied from Source/WebKit/Shared/SharedDisplayListHandle.cpp.

(WebKit::DisplayListReaderHandle::create):
(WebKit::DisplayListReaderHandle::DisplayListReaderHandle):

Add a new helper class to represent a shared display list item buffer that the GPU process can use to consume
display list items. Advancing the cursor in DisplayListReaderHandle decrements the "remaining bytes" counter;
the class also has a helper method for creating a new DisplayList with a given offset into the shared buffer,
as well the number of bytes to read.

  • GPUProcess/graphics/RemoteImageBuffer.h:

Handle the MetaCommandSwitchTo and FlushContext items by (respectively) informing the rendering backend
about the next buffer to read from, and sending a "flush committed" IPC message back to the web process.

(WebKit::RemoteImageBuffer::RemoteImageBuffer):

  • GPUProcess/graphics/RemoteRenderingBackend.cpp:

(WebKit::RemoteRenderingBackend::applyDisplayListsFromHandle):
(WebKit::RemoteRenderingBackend::wakeUpAndApplyDisplayList):

This is the main loop in the GPU process that is responsible for applying incoming display list item data. This
IPC endpoint receives information about where to start (i.e. an item buffer ID and an offset into shared memory
in that buffer) and begins reading ranges of display list item data inside that buffer. After it is done
processing all of its unread bytes, it then checks the unread byte count once again, and continues the loop if
the web process has advanced this count.

(WebKit::RemoteRenderingBackend::setNextItemBufferToRead):
(WebKit::RemoteRenderingBackend::didCreateSharedDisplayListHandle):

Add logic to handle the case where we reached the end of an item buffer, but the next buffer identifier is still
unknown to us (since it is still "in transit" via the DidCreateSharedDisplayListHandle IPC message). In this
case, we remember the next buffer identifier in m_nextItemBufferToRead, and exit the processing loop inside
wakeUpAndApplyDisplayList. Upon receiving the shared memory handle in didCreateSharedDisplayListHandle, we
then automatically resume display list processing, starting from the beginning of this new buffer.

(WebKit::RemoteRenderingBackend::applyDisplayList): Deleted.
(WebKit::RemoteRenderingBackend::submitDisplayList): Deleted.
(WebKit::RemoteRenderingBackend::flushDisplayListAndCommit): Deleted.
(WebKit::RemoteRenderingBackend::didCreateSharedItemData): Deleted.

We don't need any of these methods anymore, now that there is only one codepath for processing display list
items. See RemoteRenderingBackend::wakeUpAndApplyDisplayList above. Also, rename didCreateSharedItemData
to didCreateSharedDisplayListHandle (also above).

  • GPUProcess/graphics/RemoteRenderingBackend.h:
  • GPUProcess/graphics/RemoteRenderingBackend.messages.in:
  • Shared/SharedDisplayListHandle.h:

(WebKit::SharedDisplayListHandle::sharedMemory):
(WebKit::SharedDisplayListHandle::sharedMemory const):
(WebKit::SharedDisplayListHandle::identifier const):
(WebKit::SharedDisplayListHandle::data const):
(WebKit::SharedDisplayListHandle::unreadBytes):
(WebKit::SharedDisplayListHandle::Lock::Lock):
(WebKit::SharedDisplayListHandle::Lock::~Lock):
(WebKit::SharedDisplayListHandle::SharedDisplayListHandle):
(WebKit::SharedDisplayListHandle::header):
(WebKit::SharedDisplayListHandle::header const):
(WebKit::SharedDisplayListHandle::encode const): Deleted.
(WebKit::SharedDisplayListHandle::decode): Deleted.

Repurpose SharedDisplayListHandle to serve as a base class for both DisplayListReaderHandle and
DisplayListWriterHandle. This base class is aware of the memory layout of the display list item buffer in
shared memory (in particular, the fact that the first 8 bytes are the atomic lock and the next 8 bytes contain
the unread byte counter).

Internally, this uses a protected RAII class, SharedDisplayListHandle::Lock, to grab the lock before either
reading or writing the unread bytes count.

  • Sources.txt:
  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/GPU/graphics/DisplayListWriterHandle.cpp: Added.

(WebKit::DisplayListWriterHandle::advance):
(WebKit::DisplayListWriterHandle::availableCapacity const):
(WebKit::DisplayListWriterHandle::createHandle const):
(WebKit::DisplayListWriterHandle::resetWritableOffsetIfPossible):

This helper method moves the writable offset (see below) back to the start of the buffer if it is not being read
from by the GPU process.

  • WebProcess/GPU/graphics/DisplayListWriterHandle.h: Renamed from Source/WebKit/Shared/SharedDisplayListHandle.cpp.

(WebKit::DisplayListWriterHandle::create):
(WebKit::DisplayListWriterHandle::writableOffset const):

Similar to DisplayListReaderHandle, except that this contains logic specific to the web process for writing
display list items into shared memory. Advancing the cursor in DisplayListWriterHandle increments the counter.
It also increments the writableOffset of the handle, which represents the minimum offset into the shared
buffer that may contain newly appended display list items.

(WebKit::DisplayListWriterHandle::DisplayListWriterHandle):

  • WebProcess/GPU/graphics/RemoteImageBufferProxy.h:
  • WebProcess/GPU/graphics/RemoteRenderingBackendProxy.cpp:

(WebKit::RemoteRenderingBackendProxy::submitDisplayList):
(WebKit::RemoteRenderingBackendProxy::updateReusableHandles):

This private helper iterates the set of buffers that are not currently being written to, and adds each one to
the reusable buffer queue only if its writable offset is at the start.

(WebKit::RemoteRenderingBackendProxy::createItemBuffer):

Implements logic that hands shared item buffer data handles to WebCore for writing display list items. This will
try to reuse an item buffer in the reuse queue, if possible, and fall back to allocating a new chunk of shared
memory if no reusable buffer is found (or the existing buffers have insufficient capacity). The fact that we
iterate through each reusable buffer in order, combined with the above logic in updateReusableHandles, ensures
that once we begin writing to a item buffer, we will continue using that item buffer until it exhausts available
capacity.

This property is important because it allows the GPU process to simply start reading item data from a given
offset and buffer ID (specified in the WakeUpAndApplyDisplayList IPC message), and seamlessly continue
reading data even after it exhausts all available item data in the current buffer by continuing from the start
of the item buffer that contains the next display list items (which we learn in the GPU process by encountering
a MetaCommandSwitchTo item at the end of the previous buffer).

In "steady state" (wherein both processes are concurrently writing and reading items as quickly as possible),
this means that as the web process is busy filling up each item buffer with item data, the GPU process is also
busy applying all the item data in one buffer and automatically moving on to the next buffer with no additional
IPC messages required.

(WebKit::RemoteRenderingBackendProxy::flushDisplayListAndCommit): Deleted.

  • WebProcess/GPU/graphics/RemoteRenderingBackendProxy.h:
6:19 AM Changeset in webkit [269681] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[LFC][Integration] Add modern line layout statistics
https://bugs.webkit.org/show_bug.cgi?id=218782

Reviewed by Antti Koivisto.

notifyutil -p com.apple.WebKit.showModernLineLayoutCoverage and com.apple.WebKit.showModernLineLayoutReasons.
e.g.

nytimes.com:


Modern line layout coverage: 64.20%

Number of blocks: total(196) legacy(71)
Content length: total(8313) legacy(2976)
nested renderers: 20.77%
flow does not establishes inline formatting context: 3.04%
non top level column: 6.56%
missing glyph or glyph needs another font: 0.02%
unsupported TextFragment: 0.31%
text-shadow: 12.80%


  • layout/integration/LayoutIntegrationCoverage.cpp:

(WebCore::LayoutIntegration::printReason):
(WebCore::LayoutIntegration::printReasons):
(WebCore::LayoutIntegration::printTextForSubtree):
(WebCore::LayoutIntegration::textLengthForSubtree):
(WebCore::LayoutIntegration::collectNonEmptyLeafRenderBlockFlows):
(WebCore::LayoutIntegration::collectNonEmptyLeafRenderBlockFlowsForCurrentPage):
(WebCore::LayoutIntegration::printModernLineLayoutBlockList):
(WebCore::LayoutIntegration::printModernLineLayoutCoverage):
(WebCore::LayoutIntegration::canUseForLineLayoutWithReason):

4:27 AM Changeset in webkit [269680] by commit-queue@webkit.org
  • 12 edits in trunk/Source/WebCore

Remove uses of MakeCurrent from WebGL implementation
https://bugs.webkit.org/show_bug.cgi?id=218178
<rdar://problem/70714561>

Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2020-11-11
Reviewed by Dean Jackson.

Work towards WebGL implementation which uses
GraphicsContextGL abstract base class instead of
GraphicsContextGLOpenGL concrete class.

Move GraphicsContextGLOpenGL::makeContextCurrent() to
private section, as it is an implementation detail of
the class. The function is intended to be called at the
start of all public functions that might call into OpenGL
to ensure that OpenGL uses the right context.

Check all return values of makeCurrentContext(). We
should not call into OpenGL if the context is not current,
as that can lead to corruption, crashes or incorrect results.
Add a compile-time warning if the return value is not used.
Non-EWS compiled flavors of GraphicsContextGLOpenGL are changed
only in best effort manner.

Ensure that all functions actually call the makeCurrentContext()
function before calling into OpenGL. Non-ANGLE flavors of
GraphicsContextGLOpenGL are ensured only in best effort manner.

ANGLE flavor of GraphicsContextGLOpenGL function implementations
should call directly the ANGLE functions instead of calling them
through getExtensions() interface. There is no conditional code
inside and the implementation knows exactly which function to
call in all situations. There is no abstraction between
GraphicsContextGLOpenGL and ExtensionsGL, rather they are
in practice the same object currently, semi-artificially split to
two. This is true of other flavors of GraphicsContextGLOpenGL,
but those are left unchanged in this regard.

No new tests, a refactor.

  • html/canvas/WebGLRenderingContextBase.cpp:

(WebCore::WebGLRenderingContextBase::create):
(WebCore::WebGLRenderingContextBase::initializeNewContext):
(WebCore::WebGLRenderingContextBase::validateElementArraySize):
(WebCore::WebGLRenderingContextBase::validateIndexArrayPrecise):
(WebCore::WebGLRenderingContextBase::validateDrawElements):
(WebCore::WebGLRenderingContextBase::readPixels):
(WebCore::WebGLRenderingContextBase::vertexAttribfvImpl):
(WebCore::WebGLRenderingContextBase::initVertexAttrib0):

  • platform/graphics/angle/ExtensionsGLANGLE.cpp:

(WebCore::ExtensionsGLANGLE::supports):
(WebCore::ExtensionsGLANGLE::ensureEnabled):
(WebCore::ExtensionsGLANGLE::getTranslatedShaderSourceANGLE):
(WebCore::ExtensionsGLANGLE::blitFramebuffer):
(WebCore::ExtensionsGLANGLE::renderbufferStorageMultisample):
(WebCore::ExtensionsGLANGLE::createVertexArrayOES):
(WebCore::ExtensionsGLANGLE::deleteVertexArrayOES):
(WebCore::ExtensionsGLANGLE::isVertexArrayOES):
(WebCore::ExtensionsGLANGLE::bindVertexArrayOES):
(WebCore::ExtensionsGLANGLE::drawBuffersEXT):
(WebCore::ExtensionsGLANGLE::drawArraysInstanced):
(WebCore::ExtensionsGLANGLE::drawElementsInstanced):
(WebCore::ExtensionsGLANGLE::vertexAttribDivisor):
(WebCore::ExtensionsGLANGLE::getBooleanvRobustANGLE):
(WebCore::ExtensionsGLANGLE::getBufferParameterivRobustANGLE):
(WebCore::ExtensionsGLANGLE::getFloatvRobustANGLE):
(WebCore::ExtensionsGLANGLE::getFramebufferAttachmentParameterivRobustANGLE):
(WebCore::ExtensionsGLANGLE::getIntegervRobustANGLE):
(WebCore::ExtensionsGLANGLE::getProgramivRobustANGLE):
(WebCore::ExtensionsGLANGLE::getRenderbufferParameterivRobustANGLE):
(WebCore::ExtensionsGLANGLE::getShaderivRobustANGLE):
(WebCore::ExtensionsGLANGLE::getTexParameterfvRobustANGLE):
(WebCore::ExtensionsGLANGLE::getTexParameterivRobustANGLE):
(WebCore::ExtensionsGLANGLE::getUniformfvRobustANGLE):
(WebCore::ExtensionsGLANGLE::getUniformivRobustANGLE):
(WebCore::ExtensionsGLANGLE::getVertexAttribfvRobustANGLE):
(WebCore::ExtensionsGLANGLE::getVertexAttribivRobustANGLE):
(WebCore::ExtensionsGLANGLE::getVertexAttribPointervRobustANGLE):
(WebCore::ExtensionsGLANGLE::readPixelsRobustANGLE):
(WebCore::ExtensionsGLANGLE::texImage2DRobustANGLE):
(WebCore::ExtensionsGLANGLE::texParameterfvRobustANGLE):
(WebCore::ExtensionsGLANGLE::texParameterivRobustANGLE):
(WebCore::ExtensionsGLANGLE::texSubImage2DRobustANGLE):
(WebCore::ExtensionsGLANGLE::compressedTexImage2DRobustANGLE):
(WebCore::ExtensionsGLANGLE::compressedTexSubImage2DRobustANGLE):
(WebCore::ExtensionsGLANGLE::compressedTexImage3DRobustANGLE):
(WebCore::ExtensionsGLANGLE::compressedTexSubImage3DRobustANGLE):
(WebCore::ExtensionsGLANGLE::texImage3DRobustANGLE):
(WebCore::ExtensionsGLANGLE::texSubImage3DRobustANGLE):
(WebCore::ExtensionsGLANGLE::getQueryivRobustANGLE):
(WebCore::ExtensionsGLANGLE::getQueryObjectuivRobustANGLE):
(WebCore::ExtensionsGLANGLE::getBufferPointervRobustANGLE):
(WebCore::ExtensionsGLANGLE::getIntegeri_vRobustANGLE):
(WebCore::ExtensionsGLANGLE::getInternalformativRobustANGLE):
(WebCore::ExtensionsGLANGLE::getVertexAttribIivRobustANGLE):
(WebCore::ExtensionsGLANGLE::getVertexAttribIuivRobustANGLE):
(WebCore::ExtensionsGLANGLE::getUniformuivRobustANGLE):
(WebCore::ExtensionsGLANGLE::getActiveUniformBlockivRobustANGLE):
(WebCore::ExtensionsGLANGLE::getInteger64vRobustANGLE):
(WebCore::ExtensionsGLANGLE::getInteger64i_vRobustANGLE):
(WebCore::ExtensionsGLANGLE::getBufferParameteri64vRobustANGLE):
(WebCore::ExtensionsGLANGLE::samplerParameterivRobustANGLE):
(WebCore::ExtensionsGLANGLE::samplerParameterfvRobustANGLE):
(WebCore::ExtensionsGLANGLE::getSamplerParameterivRobustANGLE):
(WebCore::ExtensionsGLANGLE::getSamplerParameterfvRobustANGLE):
(WebCore::ExtensionsGLANGLE::getFramebufferParameterivRobustANGLE):
(WebCore::ExtensionsGLANGLE::getProgramInterfaceivRobustANGLE):
(WebCore::ExtensionsGLANGLE::getBooleani_vRobustANGLE):
(WebCore::ExtensionsGLANGLE::getMultisamplefvRobustANGLE):
(WebCore::ExtensionsGLANGLE::getTexLevelParameterivRobustANGLE):
(WebCore::ExtensionsGLANGLE::getTexLevelParameterfvRobustANGLE):
(WebCore::ExtensionsGLANGLE::getPointervRobustANGLERobustANGLE):
(WebCore::ExtensionsGLANGLE::readnPixelsRobustANGLE):
(WebCore::ExtensionsGLANGLE::getnUniformfvRobustANGLE):
(WebCore::ExtensionsGLANGLE::getnUniformivRobustANGLE):
(WebCore::ExtensionsGLANGLE::getnUniformuivRobustANGLE):
(WebCore::ExtensionsGLANGLE::texParameterIivRobustANGLE):
(WebCore::ExtensionsGLANGLE::texParameterIuivRobustANGLE):
(WebCore::ExtensionsGLANGLE::getTexParameterIivRobustANGLE):
(WebCore::ExtensionsGLANGLE::getTexParameterIuivRobustANGLE):
(WebCore::ExtensionsGLANGLE::samplerParameterIivRobustANGLE):
(WebCore::ExtensionsGLANGLE::samplerParameterIuivRobustANGLE):
(WebCore::ExtensionsGLANGLE::getSamplerParameterIivRobustANGLE):
(WebCore::ExtensionsGLANGLE::getSamplerParameterIuivRobustANGLE):
(WebCore::ExtensionsGLANGLE::getQueryObjectivRobustANGLE):
(WebCore::ExtensionsGLANGLE::getQueryObjecti64vRobustANGLE):
(WebCore::ExtensionsGLANGLE::getQueryObjectui64vRobustANGLE):

  • platform/graphics/angle/GraphicsContextGLANGLE.cpp:

(WebCore::GraphicsContextGLOpenGL::reshapeFBOs):
(WebCore::GraphicsContextGLOpenGL::renderbufferStorage):
(WebCore::GraphicsContextGLOpenGL::getIntegerv):
(WebCore::GraphicsContextGLOpenGL::getIntegeri_v):
(WebCore::GraphicsContextGLOpenGL::getShaderPrecisionFormat):
(WebCore::GraphicsContextGLOpenGL::depthRange):
(WebCore::GraphicsContextGLOpenGL::clearDepth):
(WebCore::GraphicsContextGLOpenGL::readPixels):
(WebCore::GraphicsContextGLOpenGL::prepareTexture):
(WebCore::GraphicsContextGLOpenGL::readRenderingResults):
(WebCore::GraphicsContextGLOpenGL::reshape):
(WebCore::GraphicsContextGLOpenGL::activeTexture):
(WebCore::GraphicsContextGLOpenGL::attachShader):
(WebCore::GraphicsContextGLOpenGL::bindAttribLocation):
(WebCore::GraphicsContextGLOpenGL::bindBuffer):
(WebCore::GraphicsContextGLOpenGL::bindFramebuffer):
(WebCore::GraphicsContextGLOpenGL::bindRenderbuffer):
(WebCore::GraphicsContextGLOpenGL::bindTexture):
(WebCore::GraphicsContextGLOpenGL::blendColor):
(WebCore::GraphicsContextGLOpenGL::blendEquation):
(WebCore::GraphicsContextGLOpenGL::blendEquationSeparate):
(WebCore::GraphicsContextGLOpenGL::blendFunc):
(WebCore::GraphicsContextGLOpenGL::blendFuncSeparate):
(WebCore::GraphicsContextGLOpenGL::bufferData):
(WebCore::GraphicsContextGLOpenGL::bufferSubData):
(WebCore::GraphicsContextGLOpenGL::mapBufferRange):
(WebCore::GraphicsContextGLOpenGL::unmapBuffer):
(WebCore::GraphicsContextGLOpenGL::copyBufferSubData):
(WebCore::GraphicsContextGLOpenGL::getInternalformativ):
(WebCore::GraphicsContextGLOpenGL::renderbufferStorageMultisample):
(WebCore::GraphicsContextGLOpenGL::texStorage2D):
(WebCore::GraphicsContextGLOpenGL::texStorage3D):
(WebCore::GraphicsContextGLOpenGL::getActiveUniforms):
(WebCore::GraphicsContextGLOpenGL::checkFramebufferStatus):
(WebCore::GraphicsContextGLOpenGL::clearColor):
(WebCore::GraphicsContextGLOpenGL::clear):
(WebCore::GraphicsContextGLOpenGL::clearStencil):
(WebCore::GraphicsContextGLOpenGL::colorMask):
(WebCore::GraphicsContextGLOpenGL::compileShader):
(WebCore::GraphicsContextGLOpenGL::compileShaderDirect):
(WebCore::GraphicsContextGLOpenGL::copyTexImage2D):
(WebCore::GraphicsContextGLOpenGL::copyTexSubImage2D):
(WebCore::GraphicsContextGLOpenGL::cullFace):
(WebCore::GraphicsContextGLOpenGL::depthFunc):
(WebCore::GraphicsContextGLOpenGL::depthMask):
(WebCore::GraphicsContextGLOpenGL::detachShader):
(WebCore::GraphicsContextGLOpenGL::disable):
(WebCore::GraphicsContextGLOpenGL::disableVertexAttribArray):
(WebCore::GraphicsContextGLOpenGL::drawArrays):
(WebCore::GraphicsContextGLOpenGL::drawElements):
(WebCore::GraphicsContextGLOpenGL::enable):
(WebCore::GraphicsContextGLOpenGL::enableVertexAttribArray):
(WebCore::GraphicsContextGLOpenGL::finish):
(WebCore::GraphicsContextGLOpenGL::flush):
(WebCore::GraphicsContextGLOpenGL::framebufferRenderbuffer):
(WebCore::GraphicsContextGLOpenGL::framebufferTexture2D):
(WebCore::GraphicsContextGLOpenGL::frontFace):
(WebCore::GraphicsContextGLOpenGL::generateMipmap):
(WebCore::GraphicsContextGLOpenGL::getActiveAttribImpl):
(WebCore::GraphicsContextGLOpenGL::getActiveUniformImpl):
(WebCore::GraphicsContextGLOpenGL::getAttachedShaders):
(WebCore::GraphicsContextGLOpenGL::getAttribLocation):
(WebCore::GraphicsContextGLOpenGL::moveErrorsToSyntheticErrorList):
(WebCore::GraphicsContextGLOpenGL::getError):
(WebCore::GraphicsContextGLOpenGL::getString):
(WebCore::GraphicsContextGLOpenGL::hint):
(WebCore::GraphicsContextGLOpenGL::isBuffer):
(WebCore::GraphicsContextGLOpenGL::isEnabled):
(WebCore::GraphicsContextGLOpenGL::isFramebuffer):
(WebCore::GraphicsContextGLOpenGL::isProgram):
(WebCore::GraphicsContextGLOpenGL::isRenderbuffer):
(WebCore::GraphicsContextGLOpenGL::isShader):
(WebCore::GraphicsContextGLOpenGL::isTexture):
(WebCore::GraphicsContextGLOpenGL::lineWidth):
(WebCore::GraphicsContextGLOpenGL::linkProgram):
(WebCore::GraphicsContextGLOpenGL::pixelStorei):
(WebCore::GraphicsContextGLOpenGL::polygonOffset):
(WebCore::GraphicsContextGLOpenGL::sampleCoverage):
(WebCore::GraphicsContextGLOpenGL::scissor):
(WebCore::GraphicsContextGLOpenGL::shaderSource):
(WebCore::GraphicsContextGLOpenGL::stencilFunc):
(WebCore::GraphicsContextGLOpenGL::stencilFuncSeparate):
(WebCore::GraphicsContextGLOpenGL::stencilMask):
(WebCore::GraphicsContextGLOpenGL::stencilMaskSeparate):
(WebCore::GraphicsContextGLOpenGL::stencilOp):
(WebCore::GraphicsContextGLOpenGL::stencilOpSeparate):
(WebCore::GraphicsContextGLOpenGL::texParameterf):
(WebCore::GraphicsContextGLOpenGL::texParameteri):
(WebCore::GraphicsContextGLOpenGL::uniform1f):
(WebCore::GraphicsContextGLOpenGL::uniform1fv):
(WebCore::GraphicsContextGLOpenGL::uniform2f):
(WebCore::GraphicsContextGLOpenGL::uniform2fv):
(WebCore::GraphicsContextGLOpenGL::uniform3f):
(WebCore::GraphicsContextGLOpenGL::uniform3fv):
(WebCore::GraphicsContextGLOpenGL::uniform4f):
(WebCore::GraphicsContextGLOpenGL::uniform4fv):
(WebCore::GraphicsContextGLOpenGL::uniform1i):
(WebCore::GraphicsContextGLOpenGL::uniform1iv):
(WebCore::GraphicsContextGLOpenGL::uniform2i):
(WebCore::GraphicsContextGLOpenGL::uniform2iv):
(WebCore::GraphicsContextGLOpenGL::uniform3i):
(WebCore::GraphicsContextGLOpenGL::uniform3iv):
(WebCore::GraphicsContextGLOpenGL::uniform4i):
(WebCore::GraphicsContextGLOpenGL::uniform4iv):
(WebCore::GraphicsContextGLOpenGL::uniformMatrix2fv):
(WebCore::GraphicsContextGLOpenGL::uniformMatrix3fv):
(WebCore::GraphicsContextGLOpenGL::uniformMatrix4fv):
(WebCore::GraphicsContextGLOpenGL::useProgram):
(WebCore::GraphicsContextGLOpenGL::validateProgram):
(WebCore::GraphicsContextGLOpenGL::vertexAttrib1f):
(WebCore::GraphicsContextGLOpenGL::vertexAttrib1fv):
(WebCore::GraphicsContextGLOpenGL::vertexAttrib2f):
(WebCore::GraphicsContextGLOpenGL::vertexAttrib2fv):
(WebCore::GraphicsContextGLOpenGL::vertexAttrib3f):
(WebCore::GraphicsContextGLOpenGL::vertexAttrib3fv):
(WebCore::GraphicsContextGLOpenGL::vertexAttrib4f):
(WebCore::GraphicsContextGLOpenGL::vertexAttrib4fv):
(WebCore::GraphicsContextGLOpenGL::vertexAttribPointer):
(WebCore::GraphicsContextGLOpenGL::vertexAttribIPointer):
(WebCore::GraphicsContextGLOpenGL::viewport):
(WebCore::GraphicsContextGLOpenGL::createVertexArray):
(WebCore::GraphicsContextGLOpenGL::deleteVertexArray):
(WebCore::GraphicsContextGLOpenGL::isVertexArray):
(WebCore::GraphicsContextGLOpenGL::bindVertexArray):
(WebCore::GraphicsContextGLOpenGL::getBooleanv):
(WebCore::GraphicsContextGLOpenGL::getBufferParameteriv):
(WebCore::GraphicsContextGLOpenGL::getFloatv):
(WebCore::GraphicsContextGLOpenGL::getInteger64v):
(WebCore::GraphicsContextGLOpenGL::getInteger64i_v):
(WebCore::GraphicsContextGLOpenGL::getFramebufferAttachmentParameteriv):
(WebCore::GraphicsContextGLOpenGL::getProgramiv):
(WebCore::GraphicsContextGLOpenGL::getProgramInfoLog):
(WebCore::GraphicsContextGLOpenGL::getRenderbufferParameteriv):
(WebCore::GraphicsContextGLOpenGL::getShaderiv):
(WebCore::GraphicsContextGLOpenGL::getShaderInfoLog):
(WebCore::GraphicsContextGLOpenGL::getTexParameterfv):
(WebCore::GraphicsContextGLOpenGL::getTexParameteriv):
(WebCore::GraphicsContextGLOpenGL::getUniformfv):
(WebCore::GraphicsContextGLOpenGL::getUniformiv):
(WebCore::GraphicsContextGLOpenGL::getUniformuiv):
(WebCore::GraphicsContextGLOpenGL::getUniformLocation):
(WebCore::GraphicsContextGLOpenGL::getVertexAttribfv):
(WebCore::GraphicsContextGLOpenGL::getVertexAttribiv):
(WebCore::GraphicsContextGLOpenGL::getVertexAttribOffset):
(WebCore::GraphicsContextGLOpenGL::texSubImage2D):
(WebCore::GraphicsContextGLOpenGL::compressedTexImage2D):
(WebCore::GraphicsContextGLOpenGL::compressedTexSubImage2D):
(WebCore::GraphicsContextGLOpenGL::createBuffer):
(WebCore::GraphicsContextGLOpenGL::createFramebuffer):
(WebCore::GraphicsContextGLOpenGL::createProgram):
(WebCore::GraphicsContextGLOpenGL::createRenderbuffer):
(WebCore::GraphicsContextGLOpenGL::createShader):
(WebCore::GraphicsContextGLOpenGL::createTexture):
(WebCore::GraphicsContextGLOpenGL::deleteBuffer):
(WebCore::GraphicsContextGLOpenGL::deleteFramebuffer):
(WebCore::GraphicsContextGLOpenGL::deleteProgram):
(WebCore::GraphicsContextGLOpenGL::deleteRenderbuffer):
(WebCore::GraphicsContextGLOpenGL::deleteShader):
(WebCore::GraphicsContextGLOpenGL::deleteTexture):
(WebCore::GraphicsContextGLOpenGL::texImage2DDirect):
(WebCore::GraphicsContextGLOpenGL::drawArraysInstanced):
(WebCore::GraphicsContextGLOpenGL::drawElementsInstanced):
(WebCore::GraphicsContextGLOpenGL::vertexAttribDivisor):
(WebCore::GraphicsContextGLOpenGL::getUniformBlockIndex):
(WebCore::GraphicsContextGLOpenGL::getActiveUniformBlockName):
(WebCore::GraphicsContextGLOpenGL::uniformBlockBinding):
(WebCore::GraphicsContextGLOpenGL::createQuery):
(WebCore::GraphicsContextGLOpenGL::beginQuery):
(WebCore::GraphicsContextGLOpenGL::endQuery):
(WebCore::GraphicsContextGLOpenGL::getQueryObjectuiv):
(WebCore::GraphicsContextGLOpenGL::createTransformFeedback):
(WebCore::GraphicsContextGLOpenGL::deleteTransformFeedback):
(WebCore::GraphicsContextGLOpenGL::isTransformFeedback):
(WebCore::GraphicsContextGLOpenGL::bindTransformFeedback):
(WebCore::GraphicsContextGLOpenGL::beginTransformFeedback):
(WebCore::GraphicsContextGLOpenGL::endTransformFeedback):
(WebCore::GraphicsContextGLOpenGL::transformFeedbackVaryings):
(WebCore::GraphicsContextGLOpenGL::getTransformFeedbackVarying):
(WebCore::GraphicsContextGLOpenGL::bindBufferBase):
(WebCore::GraphicsContextGLOpenGL::blitFramebuffer):
(WebCore::GraphicsContextGLOpenGL::framebufferTextureLayer):
(WebCore::GraphicsContextGLOpenGL::invalidateFramebuffer):
(WebCore::GraphicsContextGLOpenGL::invalidateSubFramebuffer):
(WebCore::GraphicsContextGLOpenGL::readBuffer):
(WebCore::GraphicsContextGLOpenGL::copyTexSubImage3D):
(WebCore::GraphicsContextGLOpenGL::getFragDataLocation):
(WebCore::GraphicsContextGLOpenGL::uniform1ui):
(WebCore::GraphicsContextGLOpenGL::uniform2ui):
(WebCore::GraphicsContextGLOpenGL::uniform3ui):
(WebCore::GraphicsContextGLOpenGL::uniform4ui):
(WebCore::GraphicsContextGLOpenGL::uniform1uiv):
(WebCore::GraphicsContextGLOpenGL::uniform2uiv):
(WebCore::GraphicsContextGLOpenGL::uniform3uiv):
(WebCore::GraphicsContextGLOpenGL::uniform4uiv):
(WebCore::GraphicsContextGLOpenGL::uniformMatrix2x3fv):
(WebCore::GraphicsContextGLOpenGL::uniformMatrix3x2fv):
(WebCore::GraphicsContextGLOpenGL::uniformMatrix2x4fv):
(WebCore::GraphicsContextGLOpenGL::uniformMatrix4x2fv):
(WebCore::GraphicsContextGLOpenGL::uniformMatrix3x4fv):
(WebCore::GraphicsContextGLOpenGL::uniformMatrix4x3fv):
(WebCore::GraphicsContextGLOpenGL::vertexAttribI4i):
(WebCore::GraphicsContextGLOpenGL::vertexAttribI4iv):
(WebCore::GraphicsContextGLOpenGL::vertexAttribI4ui):
(WebCore::GraphicsContextGLOpenGL::vertexAttribI4uiv):
(WebCore::GraphicsContextGLOpenGL::drawRangeElements):
(WebCore::GraphicsContextGLOpenGL::drawBuffers):
(WebCore::GraphicsContextGLOpenGL::clearBufferiv):
(WebCore::GraphicsContextGLOpenGL::clearBufferuiv):
(WebCore::GraphicsContextGLOpenGL::clearBufferfv):
(WebCore::GraphicsContextGLOpenGL::clearBufferfi):
(WebCore::GraphicsContextGLOpenGL::deleteQuery):
(WebCore::GraphicsContextGLOpenGL::isQuery):
(WebCore::GraphicsContextGLOpenGL::getQuery):
(WebCore::GraphicsContextGLOpenGL::createSampler):
(WebCore::GraphicsContextGLOpenGL::deleteSampler):
(WebCore::GraphicsContextGLOpenGL::isSampler):
(WebCore::GraphicsContextGLOpenGL::bindSampler):
(WebCore::GraphicsContextGLOpenGL::samplerParameteri):
(WebCore::GraphicsContextGLOpenGL::samplerParameterf):
(WebCore::GraphicsContextGLOpenGL::getSamplerParameterfv):
(WebCore::GraphicsContextGLOpenGL::getSamplerParameteriv):
(WebCore::GraphicsContextGLOpenGL::fenceSync):
(WebCore::GraphicsContextGLOpenGL::isSync):
(WebCore::GraphicsContextGLOpenGL::deleteSync):
(WebCore::GraphicsContextGLOpenGL::clientWaitSync):
(WebCore::GraphicsContextGLOpenGL::waitSync):
(WebCore::GraphicsContextGLOpenGL::getSynciv):
(WebCore::GraphicsContextGLOpenGL::pauseTransformFeedback):
(WebCore::GraphicsContextGLOpenGL::resumeTransformFeedback):
(WebCore::GraphicsContextGLOpenGL::bindBufferRange):
(WebCore::GraphicsContextGLOpenGL::getUniformIndices):

  • platform/graphics/cocoa/GraphicsContextGLOpenGLCocoa.mm:

(WebCore::GraphicsContextGLOpenGL::~GraphicsContextGLOpenGL):
(WebCore::GraphicsContextGLOpenGL::updateCGLContext):

  • platform/graphics/opengl/ExtensionsGLOpenGL.cpp:

(WebCore::ExtensionsGLOpenGL::blitFramebuffer):
(WebCore::ExtensionsGLOpenGL::renderbufferStorageMultisample):
(WebCore::ExtensionsGLOpenGL::createVertexArrayOES):
(WebCore::ExtensionsGLOpenGL::deleteVertexArrayOES):
(WebCore::ExtensionsGLOpenGL::isVertexArrayOES):
(WebCore::ExtensionsGLOpenGL::bindVertexArrayOES):
(WebCore::ExtensionsGLOpenGL::supportsExtension):
(WebCore::ExtensionsGLOpenGL::drawBuffersEXT):
(WebCore::ExtensionsGLOpenGL::drawArraysInstanced):
(WebCore::ExtensionsGLOpenGL::drawElementsInstanced):
(WebCore::ExtensionsGLOpenGL::vertexAttribDivisor):

  • platform/graphics/opengl/ExtensionsGLOpenGLES.cpp:

(WebCore::ExtensionsGLOpenGLES::framebufferTexture2DMultisampleIMG):
(WebCore::ExtensionsGLOpenGLES::renderbufferStorageMultisampleIMG):
(WebCore::ExtensionsGLOpenGLES::renderbufferStorageMultisample):
(WebCore::ExtensionsGLOpenGLES::createVertexArrayOES):
(WebCore::ExtensionsGLOpenGLES::deleteVertexArrayOES):
(WebCore::ExtensionsGLOpenGLES::isVertexArrayOES):
(WebCore::ExtensionsGLOpenGLES::bindVertexArrayOES):
(WebCore::ExtensionsGLOpenGLES::getGraphicsResetStatusARB):
(WebCore::ExtensionsGLOpenGLES::readnPixelsEXT):
(WebCore::ExtensionsGLOpenGLES::getnUniformfvEXT):
(WebCore::ExtensionsGLOpenGLES::getnUniformivEXT):
(WebCore::ExtensionsGLOpenGLES::drawArraysInstanced):
(WebCore::ExtensionsGLOpenGLES::drawElementsInstanced):
(WebCore::ExtensionsGLOpenGLES::vertexAttribDivisor):

  • platform/graphics/opengl/GraphicsContextGLOpenGL.h:
  • platform/graphics/opengl/GraphicsContextGLOpenGLBase.cpp:

(WebCore::GraphicsContextGLOpenGL::renderbufferStorage):
(WebCore::GraphicsContextGLOpenGL::getIntegerv):
(WebCore::GraphicsContextGLOpenGL::getShaderPrecisionFormat):
(WebCore::GraphicsContextGLOpenGL::depthRange):
(WebCore::GraphicsContextGLOpenGL::clearDepth):
(WebCore::GraphicsContextGLOpenGL::readPixels):

  • platform/graphics/opengl/GraphicsContextGLOpenGLCommon.cpp:

(WebCore::GraphicsContextGLOpenGL::prepareTexture):
(WebCore::GraphicsContextGLOpenGL::readRenderingResults):
(WebCore::GraphicsContextGLOpenGL::reshape):
(WebCore::GraphicsContextGLOpenGL::activeTexture):
(WebCore::GraphicsContextGLOpenGL::attachShader):
(WebCore::GraphicsContextGLOpenGL::bindAttribLocation):
(WebCore::GraphicsContextGLOpenGL::bindBuffer):
(WebCore::GraphicsContextGLOpenGL::bindFramebuffer):
(WebCore::GraphicsContextGLOpenGL::bindRenderbuffer):
(WebCore::GraphicsContextGLOpenGL::bindTexture):
(WebCore::GraphicsContextGLOpenGL::blendColor):
(WebCore::GraphicsContextGLOpenGL::blendEquation):
(WebCore::GraphicsContextGLOpenGL::blendEquationSeparate):
(WebCore::GraphicsContextGLOpenGL::blendFunc):
(WebCore::GraphicsContextGLOpenGL::blendFuncSeparate):
(WebCore::GraphicsContextGLOpenGL::bufferData):
(WebCore::GraphicsContextGLOpenGL::bufferSubData):
(WebCore::GraphicsContextGLOpenGL::checkFramebufferStatus):
(WebCore::GraphicsContextGLOpenGL::clearColor):
(WebCore::GraphicsContextGLOpenGL::clear):
(WebCore::GraphicsContextGLOpenGL::clearStencil):
(WebCore::GraphicsContextGLOpenGL::colorMask):
(WebCore::GraphicsContextGLOpenGL::compileShader):
(WebCore::GraphicsContextGLOpenGL::compileShaderDirect):
(WebCore::GraphicsContextGLOpenGL::copyTexImage2D):
(WebCore::GraphicsContextGLOpenGL::copyTexSubImage2D):
(WebCore::GraphicsContextGLOpenGL::cullFace):
(WebCore::GraphicsContextGLOpenGL::depthFunc):
(WebCore::GraphicsContextGLOpenGL::depthMask):
(WebCore::GraphicsContextGLOpenGL::detachShader):
(WebCore::GraphicsContextGLOpenGL::disable):
(WebCore::GraphicsContextGLOpenGL::disableVertexAttribArray):
(WebCore::GraphicsContextGLOpenGL::drawArrays):
(WebCore::GraphicsContextGLOpenGL::drawElements):
(WebCore::GraphicsContextGLOpenGL::enable):
(WebCore::GraphicsContextGLOpenGL::enableVertexAttribArray):
(WebCore::GraphicsContextGLOpenGL::finish):
(WebCore::GraphicsContextGLOpenGL::flush):
(WebCore::GraphicsContextGLOpenGL::framebufferRenderbuffer):
(WebCore::GraphicsContextGLOpenGL::framebufferTexture2D):
(WebCore::GraphicsContextGLOpenGL::frontFace):
(WebCore::GraphicsContextGLOpenGL::generateMipmap):
(WebCore::GraphicsContextGLOpenGL::getActiveAttribImpl):
(WebCore::GraphicsContextGLOpenGL::getActiveUniformImpl):
(WebCore::GraphicsContextGLOpenGL::getAttachedShaders):
(WebCore::GraphicsContextGLOpenGL::getAttribLocation):
(WebCore::GraphicsContextGLOpenGL::getAttribLocationDirect):
(WebCore::GraphicsContextGLOpenGL::moveErrorsToSyntheticErrorList):
(WebCore::GraphicsContextGLOpenGL::getError):
(WebCore::GraphicsContextGLOpenGL::getString):
(WebCore::GraphicsContextGLOpenGL::hint):
(WebCore::GraphicsContextGLOpenGL::isBuffer):
(WebCore::GraphicsContextGLOpenGL::isEnabled):
(WebCore::GraphicsContextGLOpenGL::isFramebuffer):
(WebCore::GraphicsContextGLOpenGL::isProgram):
(WebCore::GraphicsContextGLOpenGL::isRenderbuffer):
(WebCore::GraphicsContextGLOpenGL::isShader):
(WebCore::GraphicsContextGLOpenGL::isTexture):
(WebCore::GraphicsContextGLOpenGL::lineWidth):
(WebCore::GraphicsContextGLOpenGL::linkProgram):
(WebCore::GraphicsContextGLOpenGL::pixelStorei):
(WebCore::GraphicsContextGLOpenGL::polygonOffset):
(WebCore::GraphicsContextGLOpenGL::sampleCoverage):
(WebCore::GraphicsContextGLOpenGL::scissor):
(WebCore::GraphicsContextGLOpenGL::shaderSource):
(WebCore::GraphicsContextGLOpenGL::stencilFunc):
(WebCore::GraphicsContextGLOpenGL::stencilFuncSeparate):
(WebCore::GraphicsContextGLOpenGL::stencilMask):
(WebCore::GraphicsContextGLOpenGL::stencilMaskSeparate):
(WebCore::GraphicsContextGLOpenGL::stencilOp):
(WebCore::GraphicsContextGLOpenGL::stencilOpSeparate):
(WebCore::GraphicsContextGLOpenGL::texParameterf):
(WebCore::GraphicsContextGLOpenGL::texParameteri):
(WebCore::GraphicsContextGLOpenGL::uniform1f):
(WebCore::GraphicsContextGLOpenGL::uniform1fv):
(WebCore::GraphicsContextGLOpenGL::uniform2f):
(WebCore::GraphicsContextGLOpenGL::uniform2fv):
(WebCore::GraphicsContextGLOpenGL::uniform3f):
(WebCore::GraphicsContextGLOpenGL::uniform3fv):
(WebCore::GraphicsContextGLOpenGL::uniform4f):
(WebCore::GraphicsContextGLOpenGL::uniform4fv):
(WebCore::GraphicsContextGLOpenGL::uniform1i):
(WebCore::GraphicsContextGLOpenGL::uniform1iv):
(WebCore::GraphicsContextGLOpenGL::uniform2i):
(WebCore::GraphicsContextGLOpenGL::uniform2iv):
(WebCore::GraphicsContextGLOpenGL::uniform3i):
(WebCore::GraphicsContextGLOpenGL::uniform3iv):
(WebCore::GraphicsContextGLOpenGL::uniform4i):
(WebCore::GraphicsContextGLOpenGL::uniform4iv):
(WebCore::GraphicsContextGLOpenGL::uniformMatrix2fv):
(WebCore::GraphicsContextGLOpenGL::uniformMatrix3fv):
(WebCore::GraphicsContextGLOpenGL::uniformMatrix4fv):
(WebCore::GraphicsContextGLOpenGL::useProgram):
(WebCore::GraphicsContextGLOpenGL::validateProgram):
(WebCore::GraphicsContextGLOpenGL::vertexAttrib1f):
(WebCore::GraphicsContextGLOpenGL::vertexAttrib1fv):
(WebCore::GraphicsContextGLOpenGL::vertexAttrib2f):
(WebCore::GraphicsContextGLOpenGL::vertexAttrib2fv):
(WebCore::GraphicsContextGLOpenGL::vertexAttrib3f):
(WebCore::GraphicsContextGLOpenGL::vertexAttrib3fv):
(WebCore::GraphicsContextGLOpenGL::vertexAttrib4f):
(WebCore::GraphicsContextGLOpenGL::vertexAttrib4fv):
(WebCore::GraphicsContextGLOpenGL::vertexAttribPointer):
(WebCore::GraphicsContextGLOpenGL::viewport):
(WebCore::GraphicsContextGLOpenGL::createVertexArray):
(WebCore::GraphicsContextGLOpenGL::deleteVertexArray):
(WebCore::GraphicsContextGLOpenGL::isVertexArray):
(WebCore::GraphicsContextGLOpenGL::bindVertexArray):
(WebCore::GraphicsContextGLOpenGL::getBooleanv):
(WebCore::GraphicsContextGLOpenGL::getBufferParameteriv):
(WebCore::GraphicsContextGLOpenGL::getFloatv):
(WebCore::GraphicsContextGLOpenGL::getIntegeri_v):
(WebCore::GraphicsContextGLOpenGL::getInteger64v):
(WebCore::GraphicsContextGLOpenGL::getInteger64i_v):
(WebCore::GraphicsContextGLOpenGL::getFramebufferAttachmentParameteriv):
(WebCore::GraphicsContextGLOpenGL::getProgramiv):
(WebCore::GraphicsContextGLOpenGL::getNonBuiltInActiveSymbolCount):
(WebCore::GraphicsContextGLOpenGL::getProgramInfoLog):
(WebCore::GraphicsContextGLOpenGL::getRenderbufferParameteriv):
(WebCore::GraphicsContextGLOpenGL::getShaderiv):
(WebCore::GraphicsContextGLOpenGL::getShaderInfoLog):
(WebCore::GraphicsContextGLOpenGL::getShaderSource):
(WebCore::GraphicsContextGLOpenGL::getTexParameterfv):
(WebCore::GraphicsContextGLOpenGL::getTexParameteriv):
(WebCore::GraphicsContextGLOpenGL::getUniformfv):
(WebCore::GraphicsContextGLOpenGL::getUniformiv):
(WebCore::GraphicsContextGLOpenGL::getUniformLocation):
(WebCore::GraphicsContextGLOpenGL::getVertexAttribfv):
(WebCore::GraphicsContextGLOpenGL::getVertexAttribiv):
(WebCore::GraphicsContextGLOpenGL::getVertexAttribOffset):
(WebCore::GraphicsContextGLOpenGL::texSubImage2D):
(WebCore::GraphicsContextGLOpenGL::compressedTexImage2D):
(WebCore::GraphicsContextGLOpenGL::compressedTexSubImage2D):
(WebCore::GraphicsContextGLOpenGL::createBuffer):
(WebCore::GraphicsContextGLOpenGL::createFramebuffer):
(WebCore::GraphicsContextGLOpenGL::createProgram):
(WebCore::GraphicsContextGLOpenGL::createRenderbuffer):
(WebCore::GraphicsContextGLOpenGL::createShader):
(WebCore::GraphicsContextGLOpenGL::createTexture):
(WebCore::GraphicsContextGLOpenGL::deleteBuffer):
(WebCore::GraphicsContextGLOpenGL::deleteFramebuffer):
(WebCore::GraphicsContextGLOpenGL::deleteProgram):
(WebCore::GraphicsContextGLOpenGL::deleteRenderbuffer):
(WebCore::GraphicsContextGLOpenGL::deleteShader):
(WebCore::GraphicsContextGLOpenGL::deleteTexture):
(WebCore::GraphicsContextGLOpenGL::texImage2DDirect):
(WebCore::GraphicsContextGLOpenGL::primitiveRestartIndex):
(WebCore::GraphicsContextGLOpenGL::copyBufferSubData):
(WebCore::GraphicsContextGLOpenGL::mapBufferRange):
(WebCore::GraphicsContextGLOpenGL::unmapBuffer):
(WebCore::GraphicsContextGLOpenGL::getInternalformativ):
(WebCore::GraphicsContextGLOpenGL::renderbufferStorageMultisample):
(WebCore::GraphicsContextGLOpenGL::texStorage2D):
(WebCore::GraphicsContextGLOpenGL::texStorage3D):
(WebCore::GraphicsContextGLOpenGL::getActiveUniforms):

  • platform/graphics/opengl/GraphicsContextGLOpenGLES.cpp:

(WebCore::GraphicsContextGLOpenGL::readPixels):
(WebCore::GraphicsContextGLOpenGL::reshapeFBOs):
(WebCore::GraphicsContextGLOpenGL::renderbufferStorage):
(WebCore::GraphicsContextGLOpenGL::getIntegerv):
(WebCore::GraphicsContextGLOpenGL::getShaderPrecisionFormat):
(WebCore::GraphicsContextGLOpenGL::depthRange):
(WebCore::GraphicsContextGLOpenGL::clearDepth):
(WebCore::GraphicsContextGLOpenGL::create):
(WebCore::GraphicsContextGLOpenGL::GraphicsContextGLOpenGL):
(WebCore::GraphicsContextGLOpenGL::~GraphicsContextGLOpenGL):

  • platform/graphics/texmap/GraphicsContextGLTextureMapper.cpp:

(WebCore::GraphicsContextGLOpenGL::GraphicsContextGLOpenGL):
(WebCore::GraphicsContextGLOpenGL::~GraphicsContextGLOpenGL):

4:15 AM Changeset in webkit [269679] by commit-queue@webkit.org
  • 122 edits in trunk/LayoutTests

Resync web-platform-tests/css/css-sizing/aspect-ratio from upstream
https://bugs.webkit.org/show_bug.cgi?id=218796

Patch by Rob Buis <rbuis@igalia.com> on 2020-11-11
Reviewed by Frédéric Wang.

LayoutTests/imported/w3c:

Resync web-platform-tests/css/css-sizing/aspect-ratio from upstream fe67f0b56f.

  • resources/import-expectations.json:
  • resources/resource-files.json:
  • web-platform-tests/css/css-sizing/aspect-ratio/abspos-001.html:
  • web-platform-tests/css/css-sizing/aspect-ratio/abspos-002.html:
  • web-platform-tests/css/css-sizing/aspect-ratio/abspos-003.html:
  • web-platform-tests/css/css-sizing/aspect-ratio/abspos-004.html:
  • web-platform-tests/css/css-sizing/aspect-ratio/abspos-005.html:
  • web-platform-tests/css/css-sizing/aspect-ratio/abspos-006.html:
  • web-platform-tests/css/css-sizing/aspect-ratio/abspos-007.html:
  • web-platform-tests/css/css-sizing/aspect-ratio/abspos-008.html:
  • web-platform-tests/css/css-sizing/aspect-ratio/abspos-009.html:
  • web-platform-tests/css/css-sizing/aspect-ratio/abspos-010.html:
  • web-platform-tests/css/css-sizing/aspect-ratio/abspos-011.html:
  • web-platform-tests/css/css-sizing/aspect-ratio/abspos-012.html:
  • web-platform-tests/css/css-sizing/aspect-ratio/abspos-013.html:
  • web-platform-tests/css/css-sizing/aspect-ratio/abspos-014.html:
  • web-platform-tests/css/css-sizing/aspect-ratio/auto-margins-001.html:
  • web-platform-tests/css/css-sizing/aspect-ratio/block-aspect-ratio-001.html:
  • web-platform-tests/css/css-sizing/aspect-ratio/block-aspect-ratio-002.html:
  • web-platform-tests/css/css-sizing/aspect-ratio/block-aspect-ratio-003.html:
  • web-platform-tests/css/css-sizing/aspect-ratio/block-aspect-ratio-004.html:
  • web-platform-tests/css/css-sizing/aspect-ratio/block-aspect-ratio-005.html:
  • web-platform-tests/css/css-sizing/aspect-ratio/block-aspect-ratio-006.html:
  • web-platform-tests/css/css-sizing/aspect-ratio/block-aspect-ratio-007.html:
  • web-platform-tests/css/css-sizing/aspect-ratio/block-aspect-ratio-008.html:
  • web-platform-tests/css/css-sizing/aspect-ratio/block-aspect-ratio-009.html:
  • web-platform-tests/css/css-sizing/aspect-ratio/block-aspect-ratio-010.html:
  • web-platform-tests/css/css-sizing/aspect-ratio/block-aspect-ratio-011.html:
  • web-platform-tests/css/css-sizing/aspect-ratio/block-aspect-ratio-012.html:
  • web-platform-tests/css/css-sizing/aspect-ratio/block-aspect-ratio-013.html:
  • web-platform-tests/css/css-sizing/aspect-ratio/block-aspect-ratio-014.html:
  • web-platform-tests/css/css-sizing/aspect-ratio/block-aspect-ratio-015.html:
  • web-platform-tests/css/css-sizing/aspect-ratio/block-aspect-ratio-016.html:
  • web-platform-tests/css/css-sizing/aspect-ratio/block-aspect-ratio-017.html:
  • web-platform-tests/css/css-sizing/aspect-ratio/block-aspect-ratio-018.html:
  • web-platform-tests/css/css-sizing/aspect-ratio/block-aspect-ratio-019.html:
  • web-platform-tests/css/css-sizing/aspect-ratio/block-aspect-ratio-020.html:
  • web-platform-tests/css/css-sizing/aspect-ratio/block-aspect-ratio-021.html:
  • web-platform-tests/css/css-sizing/aspect-ratio/block-aspect-ratio-022.html:
  • web-platform-tests/css/css-sizing/aspect-ratio/block-aspect-ratio-023.html:
  • web-platform-tests/css/css-sizing/aspect-ratio/block-aspect-ratio-024.html:
  • web-platform-tests/css/css-sizing/aspect-ratio/block-aspect-ratio-025.html:
  • web-platform-tests/css/css-sizing/aspect-ratio/block-aspect-ratio-026.html:
  • web-platform-tests/css/css-sizing/aspect-ratio/block-aspect-ratio-027.html:
  • web-platform-tests/css/css-sizing/aspect-ratio/block-aspect-ratio-028.html:
  • web-platform-tests/css/css-sizing/aspect-ratio/block-aspect-ratio-with-margin-collapsing-001.html:
  • web-platform-tests/css/css-sizing/aspect-ratio/block-aspect-ratio-with-margin-collapsing-002.html:
  • web-platform-tests/css/css-sizing/aspect-ratio/flex-aspect-ratio-001.html:
  • web-platform-tests/css/css-sizing/aspect-ratio/flex-aspect-ratio-002.html:
  • web-platform-tests/css/css-sizing/aspect-ratio/flex-aspect-ratio-003.html:
  • web-platform-tests/css/css-sizing/aspect-ratio/flex-aspect-ratio-004.html:
  • web-platform-tests/css/css-sizing/aspect-ratio/flex-aspect-ratio-005.html:
  • web-platform-tests/css/css-sizing/aspect-ratio/flex-aspect-ratio-006.html:
  • web-platform-tests/css/css-sizing/aspect-ratio/flex-aspect-ratio-007.html:
  • web-platform-tests/css/css-sizing/aspect-ratio/flex-aspect-ratio-008.html:
  • web-platform-tests/css/css-sizing/aspect-ratio/flex-aspect-ratio-009.html:
  • web-platform-tests/css/css-sizing/aspect-ratio/flex-aspect-ratio-010.html:
  • web-platform-tests/css/css-sizing/aspect-ratio/flex-aspect-ratio-011.html:
  • web-platform-tests/css/css-sizing/aspect-ratio/flex-aspect-ratio-012.html:
  • web-platform-tests/css/css-sizing/aspect-ratio/flex-aspect-ratio-013.html:
  • web-platform-tests/css/css-sizing/aspect-ratio/flex-aspect-ratio-014.html:
  • web-platform-tests/css/css-sizing/aspect-ratio/flex-aspect-ratio-015.html:
  • web-platform-tests/css/css-sizing/aspect-ratio/flex-aspect-ratio-016.html:
  • web-platform-tests/css/css-sizing/aspect-ratio/flex-aspect-ratio-017.html:
  • web-platform-tests/css/css-sizing/aspect-ratio/flex-aspect-ratio-018.html:
  • web-platform-tests/css/css-sizing/aspect-ratio/flex-aspect-ratio-019.html:
  • web-platform-tests/css/css-sizing/aspect-ratio/flex-aspect-ratio-020.html:
  • web-platform-tests/css/css-sizing/aspect-ratio/flex-aspect-ratio-021.html:
  • web-platform-tests/css/css-sizing/aspect-ratio/flex-aspect-ratio-022.html:
  • web-platform-tests/css/css-sizing/aspect-ratio/flex-aspect-ratio-023.html:
  • web-platform-tests/css/css-sizing/aspect-ratio/flex-aspect-ratio-024.html:
  • web-platform-tests/css/css-sizing/aspect-ratio/intrinsic-size-001.html:
  • web-platform-tests/css/css-sizing/aspect-ratio/intrinsic-size-002.html:
  • web-platform-tests/css/css-sizing/aspect-ratio/intrinsic-size-003.html:
  • web-platform-tests/css/css-sizing/aspect-ratio/intrinsic-size-004.html:
  • web-platform-tests/css/css-sizing/aspect-ratio/intrinsic-size-005.html:
  • web-platform-tests/css/css-sizing/aspect-ratio/intrinsic-size-006.html:
  • web-platform-tests/css/css-sizing/aspect-ratio/intrinsic-size-007.html:
  • web-platform-tests/css/css-sizing/aspect-ratio/intrinsic-size-008.html:
  • web-platform-tests/css/css-sizing/aspect-ratio/parsing/contain-intrinsic-size-computed.html:
  • web-platform-tests/css/css-sizing/aspect-ratio/parsing/contain-intrinsic-size-valid-expected.txt:
  • web-platform-tests/css/css-sizing/aspect-ratio/parsing/contain-intrinsic-size-valid.html:
  • web-platform-tests/css/css-sizing/aspect-ratio/percentage-resolution-001.html:
  • web-platform-tests/css/css-sizing/aspect-ratio/percentage-resolution-002.html:
  • web-platform-tests/css/css-sizing/aspect-ratio/percentage-resolution-003.html:
  • web-platform-tests/css/css-sizing/aspect-ratio/percentage-resolution-004.html:
  • web-platform-tests/css/css-sizing/aspect-ratio/quirks-mode-001.html:
  • web-platform-tests/css/css-sizing/aspect-ratio/quirks-mode-002.html:
  • web-platform-tests/css/css-sizing/aspect-ratio/quirks-mode-003.html:
  • web-platform-tests/css/css-sizing/aspect-ratio/replaced-element-001.html:
  • web-platform-tests/css/css-sizing/aspect-ratio/replaced-element-002.html:
  • web-platform-tests/css/css-sizing/aspect-ratio/replaced-element-003.html:
  • web-platform-tests/css/css-sizing/aspect-ratio/replaced-element-004.html:
  • web-platform-tests/css/css-sizing/aspect-ratio/replaced-element-005.html:
  • web-platform-tests/css/css-sizing/aspect-ratio/replaced-element-006.html:
  • web-platform-tests/css/css-sizing/aspect-ratio/replaced-element-007.html:
  • web-platform-tests/css/css-sizing/aspect-ratio/replaced-element-008.html:
  • web-platform-tests/css/css-sizing/aspect-ratio/replaced-element-009.html:
  • web-platform-tests/css/css-sizing/aspect-ratio/replaced-element-010.html:
  • web-platform-tests/css/css-sizing/aspect-ratio/replaced-element-011.html:
  • web-platform-tests/css/css-sizing/aspect-ratio/replaced-element-012.html:
  • web-platform-tests/css/css-sizing/aspect-ratio/replaced-element-013.html:
  • web-platform-tests/css/css-sizing/aspect-ratio/replaced-element-014.html:
  • web-platform-tests/css/css-sizing/aspect-ratio/replaced-element-015.html:
  • web-platform-tests/css/css-sizing/aspect-ratio/replaced-element-016.html:
  • web-platform-tests/css/css-sizing/aspect-ratio/replaced-element-017.html:
  • web-platform-tests/css/css-sizing/aspect-ratio/replaced-element-018.html:
  • web-platform-tests/css/css-sizing/aspect-ratio/replaced-element-019.html:
  • web-platform-tests/css/css-sizing/aspect-ratio/replaced-element-020.html:
  • web-platform-tests/css/css-sizing/aspect-ratio/replaced-element-021.html:
  • web-platform-tests/css/css-sizing/aspect-ratio/replaced-element-022.html:
  • web-platform-tests/css/css-sizing/aspect-ratio/replaced-element-023.html:
  • web-platform-tests/css/css-sizing/aspect-ratio/replaced-element-024.html:
  • web-platform-tests/css/css-sizing/aspect-ratio/replaced-element-025.html:
  • web-platform-tests/css/css-sizing/aspect-ratio/replaced-element-026.html:
  • web-platform-tests/css/css-sizing/aspect-ratio/replaced-element-027.html:
  • web-platform-tests/css/css-sizing/aspect-ratio/small-aspect-ratio-crash.html:
  • web-platform-tests/css/css-sizing/aspect-ratio/support/w3c-import.log:
  • web-platform-tests/css/css-sizing/aspect-ratio/w3c-import.log:

LayoutTests:

Adapt platform test expectations.

2:44 AM Changeset in webkit [269678] by commit-queue@webkit.org
  • 12 edits
    2 moves
    1 add in trunk/Source/WebCore

Refactor VideoTextureCopier to be specific to a particular GraphicsContextGL and polymorphic to it
https://bugs.webkit.org/show_bug.cgi?id=217218
<rdar://problem/69876433>

Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2020-11-11
Reviewed by Dean Jackson.

Work towards WebGL implementation which uses GraphicsContextGL abstract
base class instead of GraphicsContextGLOpenGL concrete class.

Relatively minimal changes to make AVFOUNDATION variants of MediaPlayerPrivate
compile when GraphicsContextGL is passed as the context instead of
GraphicsContextGLOpenGL.

Changes functionality so that the conversion resources (shaders, FBO)
are allocated per context instead of previously per video element.
This also means that context loss is handled correctly for the element.

Removes unused RGB texture copying code from the copy implementation.
This was left unused when OpenGL and OpenGL ES backends for AVF users
were removed.

Makes it possible to have GraphicsContextGLRemote that is able to copy
both AVF media textures as well as remote media textures.

Makes it possible to have Cocoa variant of GraphicsContextGLOpenGL that
is able to copy both AVF media textures as well as remote media
textures.

Changes only the AVF variants of MediaPlayerPrivate, not
the GStreamer variants. Similar interface GraphicsContextGLGStreamer
could be implemented for GStreamer if/when remote WebGL would support
GStreamer. If this is not done, a downcast from GraphicsContextGL
to GraphicsContextGLOpenGL can be added at the moment when the GraphicsContextGLOpenGL
uses in core WebGL are modified to GraphicsContextGL uses.

No new tests, a refactor.

  • PlatformMac.cmake:
  • SourcesCocoa.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • platform/graphics/GraphicsContextGL.h:
  • platform/graphics/angle/GraphicsContextGLANGLE.cpp:

(WebCore::GraphicsContextGLOpenGL::asCV):

  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:

(WebCore::MediaPlayerPrivateAVFoundationObjC::copyVideoTextureToPlatformTexture):

  • platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.h:
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:

(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::copyVideoTextureToPlatformTexture):

  • platform/graphics/cocoa/GraphicsContextGLOpenGLCocoa.mm:

(WebCore::GraphicsContextGLOpenGL::~GraphicsContextGLOpenGL):

  • platform/graphics/cv/GraphicsContextGLCV.h: Added.
  • platform/graphics/cv/GraphicsContextGLCVANGLE.cpp: Renamed from Source/WebCore/platform/graphics/cv/VideoTextureCopierCV.cpp.

(WebCore::GraphicsContextGLCVANGLE::GraphicsContextGLCVANGLE):
(WebCore::GraphicsContextGLCVANGLE::~GraphicsContextGLCVANGLE):
(WebCore::GraphicsContextGLCVANGLE::initializeUVContextObjects):
(WebCore::GraphicsContextGLCVANGLE::attachIOSurfaceToTexture):
(WebCore::GraphicsContextGLCVANGLE::detachIOSurfaceFromTexture):
(WebCore::GraphicsContextGLCVANGLE::copyPixelBufferToTexture):

  • platform/graphics/cv/GraphicsContextGLCVANGLE.h: Renamed from Source/WebCore/platform/graphics/cv/VideoTextureCopierCV.h.
  • platform/graphics/opengl/GraphicsContextGLOpenGL.h:
1:06 AM Changeset in webkit [269677] by ysuzuki@apple.com
  • 2 edits in trunk/Source/WTF

Unreviewed, reverting r269403
https://bugs.webkit.org/show_bug.cgi?id=218143

Now, bytecode list is moved out of JSCConfig. So it is not large size now.

  • wtf/WTFConfig.h:
12:35 AM Changeset in webkit [269676] by commit-queue@webkit.org
  • 19 edits
    1 delete in trunk/Source

Unreviewed, reverting r269244.
https://bugs.webkit.org/show_bug.cgi?id=218483

Patch is breaking tests

Reverted changeset:

"Stop sending origins from WebProcess to UIProcess for
getUserMedia requests"
https://bugs.webkit.org/show_bug.cgi?id=218192
https://trac.webkit.org/changeset/269244

12:13 AM Changeset in webkit [269675] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit

[GTK] Annotate WebKitUserMessage getters as nullable
https://bugs.webkit.org/show_bug.cgi?id=218761

Patch by Corentin Noël <corentin.noel@collabora.com> on 2020-11-11
Reviewed by Carlos Garcia Campos.

These properties can be set to NULL at creation time.

  • Shared/API/glib/WebKitUserMessage.cpp:

Nov 10, 2020:

11:57 PM Changeset in webkit [269674] by Noam Rosenthal
  • 2 edits in trunk/Tools

Unreviewed, cleanup my watchlist entries.

  • Scripts/webkitpy/common/config/watchlist:
10:18 PM Changeset in webkit [269673] by Lauro Moura
  • 2 edits in trunk/Tools

[GLIB] Update page-visibility test after r269665

Unreviewed test gardening.

  • TestWebKitAPI/Tests/WebKitGLib/TestWebKitWebView.cpp:

(testWebViewPageVisibility):

9:23 PM Changeset in webkit [269672] by Lauro Moura
  • 3 edits in trunk/LayoutTests

[GLIB] Gardening webrtc failures

After libwebrtc M87 update in r269642

  • platform/glib/TestExpectations:
  • platform/gtk/TestExpectations:
8:55 PM Changeset in webkit [269671] by commit-queue@webkit.org
  • 84 edits
    34 copies
    7 moves
    10 adds
    4 deletes in trunk

Unreviewed, reverting r269660.
https://bugs.webkit.org/show_bug.cgi?id=218786

Crashing in EWS iOS simulator bots

Reverted changeset:

"PCM: Change from ad-click-attribution to private-click-
measurement (in all forms, including .well-known URL)"
https://bugs.webkit.org/show_bug.cgi?id=218730
https://trac.webkit.org/changeset/269660

6:28 PM Changeset in webkit [269670] by Ross Kirsling
  • 10 edits
    1 add in trunk

Align %TypedArray% behavior with recent spec adjustments
https://bugs.webkit.org/show_bug.cgi?id=218776

Reviewed by Yusuke Suzuki.

JSTests:

  • stress/reflect-set.js:
  • stress/typedarray-functions-with-neutered.js:
  • stress/typedarray-includes.js:
  • stress/typedarray-indexOf.js:
  • stress/typedarray-join.js: Added.
  • stress/typedarray-lastIndexOf.js:

Update tests.

  • test262/expectations.yaml:

Mark a handful of test cases as temporarily failing.
These will disappear in a future test262 update.

Source/JavaScriptCore:

The recent spec changes for typed arrays with detached buffers had certain ripple effects,
namely the following two PRs which will be presented in next week's TC39 meeting.
Since no controversy is expected, this patch addresses them now, though test262 adjustments are forthcoming.

  1. https://github.com/tc39/ecma262/pull/2210 It is correct that ta[i] = n doesn't throw when ta has a detached buffer or i is otherwise OOB, but by not throwing, Reflect.set(ta, i, n) is obliged to return true.
  1. https://github.com/tc39/ecma262/pull/2221 Until now, %TypedArray%.prototype.{includes, indexOf, join, lastIndexOf} lacked a rigorous specification; in particular, each has a parameter that may detach the buffer upon valueOf or toString, and the expected behavior was not made clear. It seems most sensible to do what the corresponding Array methods do upon array.length = 0: make use of the cached length but don't access indices, such that indexOf/lastIndexOf return -1 while includes/join act as if the elements were all undefined.
  • runtime/JSGenericTypedArrayViewInlines.h:

(JSC::JSGenericTypedArrayView<Adaptor>::put):
(JSC::JSGenericTypedArrayView<Adaptor>::defineOwnProperty):
(JSC::JSGenericTypedArrayView<Adaptor>::putByIndex):

  • runtime/JSGenericTypedArrayViewPrototypeFunctions.h:

(JSC::genericTypedArrayViewProtoFuncIncludes):
(JSC::genericTypedArrayViewProtoFuncIndexOf):
(JSC::genericTypedArrayViewProtoFuncJoin):
(JSC::genericTypedArrayViewProtoFuncLastIndexOf):

5:11 PM Changeset in webkit [269669] by Alan Coon
  • 2 edits in branches/safari-611.1.5-branch/Source/WebKit

Cherry-pick r269643. rdar://problem/71261915

[macCatalyst] Add entitlement for message filtering
https://bugs.webkit.org/show_bug.cgi?id=218768
<rdar://problem/71247464>

Reviewed by Tim Horton.

Add required message filtering entitlement for Catalyst.

No new tests, covered by existing tests.

  • Scripts/process-entitlements.sh:

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

5:11 PM Changeset in webkit [269668] by Alan Coon
  • 2 edits in branches/safari-611.1.5-branch/Source/WebKit

Cherry-pick r269617. rdar://problem/71261924

Fix crashes when mapping shared display list item data into display lists in the GPU process
https://bugs.webkit.org/show_bug.cgi?id=218739

Reviewed by Tim Horton.

I added a "stop-gap" mechanism in r269525 to allow the GPU process to handle newly refactored display list
items by encoding display list items directly into shared memory buffers in the web process and reading them
back in the GPU process, using standard IPC messages only, and also without reusing any shared memory buffers.

However, I introduced a bug in this "stop-gap" mechanism when I tried to clean up some GPU-process-side logic
for unregistering these shared memory buffers in the GPU process, by taking shared memory buffers out of the
map in the GPU process without ensuring that they're kept alive over the course of applying the display list.

This code is going away soon anyways (see webkit.org/b/218426), but in the meantime, we should at least ensure
that this temporary shared memory mechanism doesn't cause huge waves of layout test failures.

  • GPUProcess/graphics/RemoteRenderingBackend.cpp: (WebKit::RemoteRenderingBackend::applyDisplayList):

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

5:07 PM Changeset in webkit [269667] by commit-queue@webkit.org
  • 3 edits in trunk/JSTests

stress/intl-datetimeformat-formatrange.js and stress/intl-datetimeformat-formatrange-relevant-extensions.js fail with ICU 65.1
https://bugs.webkit.org/show_bug.cgi?id=218763

Patch by Michael Catanzaro <Michael Catanzaro> on 2020-11-10
Reviewed by Yusuke Suzuki.

Yesterday Red Hat upgraded its internal CI to Fedora 32 (ICU 65.1), causing
stress/intl-datetimeformat-formatrange-relevant-extensions.js and
stress/intl-datetimeformat-formatrange.js to begin failing. The problem is that the space
characters used in the range format changed at some point. The current version of the test
expects normal ASCII space characters for ICU 67 and newer, and special spaces for older
versions of ICU.

The test passes for me locally on Fedora 33 (ICU 67.1), so perhaps we just need to use the
new codepath for ICU 65 and 66 as well.

  • stress/intl-datetimeformat-formatrange-relevant-extensions.js:
  • stress/intl-datetimeformat-formatrange.js:

(test):

5:04 PM Changeset in webkit [269666] by pvollan@apple.com
  • 2 edits in trunk/Source/WebKit

[macOS] Enforce message filtering in the WebContent process
https://bugs.webkit.org/show_bug.cgi?id=218756
<rdar://problem/71240766>

Reviewed by David Kilzer.

Based on telemetry, we should deny access to messages not being used in the WebContent process on macOS.

No new tests, covered by existing tests.

  • WebProcess/com.apple.WebProcess.sb.in:
4:53 PM Changeset in webkit [269665] by Chris Dumez
  • 16 edits
    1 add in trunk

Webkit incorrectly setting visibilityState to "prerender" when opening link in new tab
https://bugs.webkit.org/show_bug.cgi?id=215851
<rdar://problem/67817100>

Reviewed by Geoff Garen.

Source/WebCore:

Drop "prerender" state from VisibilityState. It has been dropped from the specification
and other browser engines so it is confusing to developers:

  • dom/VisibilityState.h:
  • dom/VisibilityState.idl:
  • page/Page.cpp:

(WebCore::Page::visibilityState const):

Source/WebKit:

  • Shared/API/c/WKSharedAPICast.h:

(WebKit::toVisibilityState):

  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDocumentGtk.cpp:

(webkit_dom_document_get_visibility_state):

Source/WebKitLegacy/mac:

  • DOM/DOMDocument.mm:

(-[DOMDocument visibilityState]):

  • WebView/WebView.mm:

(kit):

Tools:

Add API test coverage.

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

(TEST):

  • WebKitTestRunner/InjectedBundle/TestRunner.cpp:

(WTR::TestRunner::setPageVisibility):

LayoutTests:

Drop dead code in test for prerender.

  • fast/events/page-visibility-transition-test.html:
4:46 PM Changeset in webkit [269664] by timothy_horton@apple.com
  • 6 edits in trunk/Source

Use GraphicsContext instead of CGContext in RemoteLayerBackingStore
https://bugs.webkit.org/show_bug.cgi?id=218738

Reviewed by Wenson Hsieh.

Source/WebCore:

No new tests; just refactoring a heavily-tested codepath.

  • platform/graphics/GraphicsContext.h:
  • platform/graphics/Path.h:

Export some things.

Source/WebKit:

  • Shared/RemoteLayerTree/RemoteLayerBackingStore.mm:

(WebKit::RemoteLayerBackingStore::drawInContext):
Make use of the GraphicsContext abstraction instead of dropping down
to CGContext, in preparation for DisplayList rendering.

4:46 PM Changeset in webkit [269663] by Kocsen Chung
  • 1 copy in tags/Safari-610.3.6.3

Tag Safari-610.3.6.3.

4:41 PM Changeset in webkit [269662] by Darin Adler
  • 24 edits
    7 adds in trunk

Remove another function that implicitly uses the composed tree (intersects with range)
https://bugs.webkit.org/show_bug.cgi?id=218726

Reviewed by Ryosuke Niwa.

Source/WebCore:

Tests: fast/dom/rangeContainsBoundaryPoint.html

fast/dom/rangeIntersectsNode.html
fast/dom/rangeIntersectsRange.html

  • Sources.txt: Added BoundaryPoint.cpp.
  • WebCore.xcodeproj/project.pbxproj: Ditto.
  • accessibility/AccessibilityRenderObject.cpp:

(WebCore::AccessibilityRenderObject::documentBasedSelectedTextRange const):
Use intersects<ComposedTree>.

  • accessibility/atk/WebKitAccessibleUtil.cpp:

(selectionBelongsToObject): Ditto.

  • dom/BoundaryPoint.cpp: Added.
  • dom/Range.cpp:

(WebCore::Range::isPointInRange): Use contains instead of contains<Tree>
since the normal tree is now default.
(WebCore::Range::intersectsNode const): Use intersects instead of
intersects<Tree> since the normal tree is now default.

  • dom/SimpleRange.cpp:

(WebCore::makeBoundaryPointBeforeNode): Moved to BoundaryPoint.cpp.
(WebCore::makeBoundaryPointAfterNode): Ditto.
(WebCore::isOffsetBeforeChild): Ditto.
(WebCore::order): Ditto.
(WebCore::treeOrderForTesting): Ditto.
(WebCore::containsForTesting): Added an overload for range and boundary point.
(WebCore::intersects): Deleted two of these that were using ComposedTree.
(WebCore::intersectsForTesting): Added.
(WebCore::intersection): Use intersects<ComposedTree>.
(WebCore::contains): Implemented this template function and use it to replac
the incorrect specialization we had for ComposedTree.
(WebCore::containsCrossingDocumentBoundaries): Added.

  • dom/SimpleRange.h: Made the contains functions template arguments default

to Tree. Added another overload of containsForTesting and added intersectsForTesting.
Removed intersects functions that were deprecated; the ones that used ComposedTree.
Added containsCrossingDocumentBoundaries.

  • editing/Editor.cpp:

(WebCore::isFrameInRange): Use intersects<ComposedTree>.
(WebCore::Editor::scanSelectionForTelephoneNumbers): Ditto.

  • editing/FrameSelection.cpp:

(WebCore::FrameSelection::respondToNodeModification): Ditto.

  • editing/VisiblePosition.cpp:

(WebCore::makeVisiblePositionRange): Added.

  • editing/VisiblePosition.h: Added makeVisiblePositionRange, which takes

an Optional<SimpleRange>.

  • page/DOMSelection.cpp:

(WebCore::DOMSelection::addRange): Use intersects instead of
intersects<Tree> since the normal tree is now default.
(WebCore::DOMSelection::containsNode const): Use intersects/contains
instead of intersects/contains<Tree> since the normal tree is now default.

  • page/DragController.cpp:

(WebCore::DragController::insertDroppedImagePlaceholdersAtCaret):
Use intersects<ComposedTree>.

  • testing/Internals.cpp:

(WebCore::Internals::rangeContainsBoundaryPoint): Added.
(WebCore::Internals::rangeIntersectsNode): Added.
(WebCore::Internals::rangeIntersectsRange): Added.

  • testing/Internals.h: Updated for the above.
  • testing/Internals.idl: Ditto.

Source/WebKit:

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::requestDocumentEditingContext): Refactor to use VisiblePositionRange and
to call intersects on two of them, to improve the code readability and also sidestep the
issue of calling the intersects template function from outside WebCore.

Source/WebKitLegacy/mac:

  • WebView/WebPDFView.mm:

(isFrameInRange): Deleted. This function used intersects, and deleting it side-steps
the issue of calling the intersects function template from outside WebCore.
(-[WebPDFView countMatchesForText:inDOMRange:options:limit:markMatches:]):
Use containsCrossingDocumentBoundaries instead of isFrameInRange.

Tools:

  • TestWebKitAPI/Tests/WebCore/DocumentOrder.cpp:

(TestWebKitAPI::makeBoundaryPoint): Deleted.
Deleted the DocumentOrder.IsPointInRange, DocumentOrder.RangeIntersectsRange and
DocumentOrder.RangeIntersectsNode tests, each replaced by an internals-based test.

LayoutTests:

  • fast/dom/rangeContainsBoundaryPoint-expected.txt: Added.
  • fast/dom/rangeContainsBoundaryPoint.html: Added.
  • fast/dom/rangeIntersectsNode-expected.txt: Added.
  • fast/dom/rangeIntersectsNode.html: Added.
  • fast/dom/rangeIntersectsRange-expected.txt: Added.
  • fast/dom/rangeIntersectsRange.html: Added.

These tests were formerly part of TestWebKitAPI. Moving to internals-style tests at
Ryosuke's suggestion since these are not something exposed as API or SPI.

4:40 PM Changeset in webkit [269661] by Kocsen Chung
  • 1 copy in tags/Safari-610.3.7.1.3

Tag Safari-610.3.7.1.3.

4:33 PM Changeset in webkit [269660] by wilander@apple.com
  • 84 edits
    34 copies
    7 moves
    10 adds
    4 deletes in trunk

PCM: Change from ad-click-attribution to private-click-measurement (in all forms, including .well-known URL)
https://bugs.webkit.org/show_bug.cgi?id=218730
<rdar://problem/71094296>

Reviewed by Devin Rousso.

Change to the official name of the proposed standard Private Click Measurement
https://github.com/privacycg/private-click-measurement.

This includes a change of the reporting URL from
"/.well-known/ad-click-attribution/" to
"/.well-known/private-click-measurement/".

Source/JavaScriptCore:

  • inspector/ConsoleMessage.cpp:

(Inspector::messageSourceValue):

  • inspector/protocol/Console.json:
  • inspector/protocol/Page.json:
  • runtime/ConsoleClient.cpp:

(JSC::appendMessagePrefix):

  • runtime/ConsoleTypes.h:

Source/WebCore:

Tests: http/tests/contentextensions/block-private-click-measurement.html

http/tests/privateClickMeasurement/anchor-tag-attributes-reflect.html
http/tests/privateClickMeasurement/anchor-tag-attributes-validation.html
http/tests/privateClickMeasurement/attribution-conversion-through-cross-site-image-redirect.html
http/tests/privateClickMeasurement/attribution-conversion-through-image-redirect-in-new-window.html
http/tests/privateClickMeasurement/attribution-conversion-through-image-redirect-with-priority.html
http/tests/privateClickMeasurement/attribution-conversion-through-image-redirect-without-priority.html
http/tests/privateClickMeasurement/clear-through-website-data-removal.html
http/tests/privateClickMeasurement/conversion-disabled-in-ephemeral-session.html
http/tests/privateClickMeasurement/expired-attributions-removed.html
http/tests/privateClickMeasurement/second-attribution-converted-with-higher-priority.html
http/tests/privateClickMeasurement/second-attribution-converted-with-lower-priority.html
http/tests/privateClickMeasurement/second-conversion-with-higher-priority.html
http/tests/privateClickMeasurement/second-conversion-with-lower-priority.html
http/tests/privateClickMeasurement/send-attribution-conversion-request.html
http/tests/privateClickMeasurement/store-disabled-in-ephemeral-session.html
http/tests/privateClickMeasurement/store-private-click-measurement.html
inspector/page/overrideSetting-PrivateClickMeasurementDebugModeEnabled.html

  • Headers.cmake:
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • html/HTMLAnchorElement.cpp:

(WebCore::HTMLAnchorElement::parsePrivateClickMeasurement const):
(WebCore::HTMLAnchorElement::handleClick):
(WebCore::HTMLAnchorElement::parseAdClickAttribution const): Deleted.

  • html/HTMLAnchorElement.h:
  • html/HTMLAnchorElement.idl:
  • inspector/InspectorClient.h:
  • inspector/agents/InspectorPageAgent.cpp:

(WebCore::InspectorPageAgent::disable):
(WebCore::InspectorPageAgent::overrideSetting):

  • inspector/agents/page/PageConsoleAgent.cpp:

(WebCore::PageConsoleAgent::getLoggingChannels):

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::changeLocation):
(WebCore::FrameLoader::loadFrameRequest):
(WebCore::FrameLoader::loadURL):

  • loader/FrameLoader.h:
  • loader/NavigationAction.h:

(WebCore::NavigationAction::privateClickMeasurement const):
(WebCore::NavigationAction::setPrivateClickMeasurement):
(WebCore::NavigationAction::adClickAttribution const): Deleted.
(WebCore::NavigationAction::setAdClickAttribution): Deleted.

  • loader/PrivateClickMeasurement.cpp: Renamed from Source/WebCore/loader/AdClickAttribution.cpp.

(WebCore::PrivateClickMeasurement::isValid const):
(WebCore::PrivateClickMeasurement::parseConversionRequest):
(WebCore::PrivateClickMeasurement::convertAndGetEarliestTimeToSend):
(WebCore::PrivateClickMeasurement::markAsExpired):
(WebCore::PrivateClickMeasurement::hasExpired const):
(WebCore::PrivateClickMeasurement::hasHigherPriorityThan const):
(WebCore::PrivateClickMeasurement::reportURL const):
(WebCore::PrivateClickMeasurement::json const):
(WebCore::PrivateClickMeasurement::markConversionAsSent):
(WebCore::PrivateClickMeasurement::wasConversionSent const):
(WebCore::PrivateClickMeasurement::toString const):
(WebCore::PrivateClickMeasurement::debugModeEnabled):

  • loader/PrivateClickMeasurement.h: Renamed from Source/WebCore/loader/AdClickAttribution.h.

(WebCore::PrivateClickMeasurement::Campaign::Campaign):
(WebCore::PrivateClickMeasurement::Campaign::isValid const):
(WebCore::PrivateClickMeasurement::Source::Source):
(WebCore::PrivateClickMeasurement::Source::operator== const):
(WebCore::PrivateClickMeasurement::Source::matches const):
(WebCore::PrivateClickMeasurement::Source::isHashTableDeletedValue const):
(WebCore::PrivateClickMeasurement::Source::deletedValue):
(WebCore::PrivateClickMeasurement::Source::constructDeletedValue):
(WebCore::PrivateClickMeasurement::Source::deleteValue):
(WebCore::PrivateClickMeasurement::Source::isDeletedValue const):
(WebCore::PrivateClickMeasurement::SourceHash::hash):
(WebCore::PrivateClickMeasurement::SourceHash::equal):
(WebCore::PrivateClickMeasurement::Destination::Destination):
(WebCore::PrivateClickMeasurement::Destination::operator== const):
(WebCore::PrivateClickMeasurement::Destination::matches const):
(WebCore::PrivateClickMeasurement::Destination::isHashTableDeletedValue const):
(WebCore::PrivateClickMeasurement::Destination::deletedValue):
(WebCore::PrivateClickMeasurement::Destination::constructDeletedValue):
(WebCore::PrivateClickMeasurement::Destination::deleteValue):
(WebCore::PrivateClickMeasurement::Destination::isDeletedValue const):
(WebCore::PrivateClickMeasurement::DestinationHash::hash):
(WebCore::PrivateClickMeasurement::DestinationHash::equal):
(WebCore::PrivateClickMeasurement::Priority::Priority):
(WebCore::PrivateClickMeasurement::Conversion::Conversion):
(WebCore::PrivateClickMeasurement::Conversion::isValid const):
(WebCore::PrivateClickMeasurement::PrivateClickMeasurement):
(WebCore::PrivateClickMeasurement::source const):
(WebCore::PrivateClickMeasurement::destination const):
(WebCore::PrivateClickMeasurement::earliestTimeToSend const):
(WebCore::PrivateClickMeasurement::isEmpty const):
(WebCore::PrivateClickMeasurement::encode const):
(WebCore::PrivateClickMeasurement::decode):
(WebCore::PrivateClickMeasurement::Conversion::encode const):
(WebCore::PrivateClickMeasurement::Conversion::decode):
(WTF::HashTraits<WebCore::PrivateClickMeasurement::Source>::emptyValue):
(WTF::HashTraits<WebCore::PrivateClickMeasurement::Source>::constructDeletedValue):
(WTF::HashTraits<WebCore::PrivateClickMeasurement::Source>::isDeletedValue):
(WTF::HashTraits<WebCore::PrivateClickMeasurement::Destination>::emptyValue):
(WTF::HashTraits<WebCore::PrivateClickMeasurement::Destination>::constructDeletedValue):
(WTF::HashTraits<WebCore::PrivateClickMeasurement::Destination>::isDeletedValue):

  • page/RuntimeEnabledFeatures.h:

(WebCore::RuntimeEnabledFeatures::privateClickMeasurementDebugModeEnabled const):
(WebCore::RuntimeEnabledFeatures::setPrivateClickMeasurementDebugModeEnabled):
(WebCore::RuntimeEnabledFeatures::adClickAttributionDebugModeEnabled const): Deleted.
(WebCore::RuntimeEnabledFeatures::setAdClickAttributionDebugModeEnabled): Deleted.

  • platform/Logging.h:

Source/WebInspectorUI:

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

(WI.IssueMessage):

  • UserInterface/Protocol/Legacy/14.0/InspectorBackendCommands.js:

Source/WebKit:

  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::initializeNetworkProcess):
(WebKit::NetworkProcess::setPrivateClickMeasurementDebugMode):
(WebKit::NetworkProcess::deleteWebsiteData):
(WebKit::NetworkProcess::deleteWebsiteDataForOrigins):
(WebKit::NetworkProcess::storePrivateClickMeasurement):
(WebKit::NetworkProcess::dumpPrivateClickMeasurement):
(WebKit::NetworkProcess::clearPrivateClickMeasurement):
(WebKit::NetworkProcess::setPrivateClickMeasurementOverrideTimerForTesting):
(WebKit::NetworkProcess::setPrivateClickMeasurementConversionURLForTesting):
(WebKit::NetworkProcess::markPrivateClickMeasurementsAsExpiredForTesting):
(WebKit::NetworkProcess::setAdClickAttributionDebugMode): Deleted.
(WebKit::NetworkProcess::storeAdClickAttribution): Deleted.
(WebKit::NetworkProcess::dumpAdClickAttribution): Deleted.
(WebKit::NetworkProcess::clearAdClickAttribution): Deleted.
(WebKit::NetworkProcess::setAdClickAttributionOverrideTimerForTesting): Deleted.
(WebKit::NetworkProcess::setAdClickAttributionConversionURLForTesting): Deleted.
(WebKit::NetworkProcess::markAdClickAttributionsAsExpiredForTesting): Deleted.

  • NetworkProcess/NetworkProcess.h:
  • NetworkProcess/NetworkProcess.messages.in:
  • NetworkProcess/NetworkProcessCreationParameters.cpp:

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

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

(WebKit::NetworkResourceLoader::willSendRedirectedRequest):
(WebKit::NetworkResourceLoader::continueWillSendRedirectedRequest):

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

(WebKit::NetworkSession::NetworkSession):
(WebKit::NetworkSession::storePrivateClickMeasurement):
(WebKit::NetworkSession::handlePrivateClickMeasurementConversion):
(WebKit::NetworkSession::dumpPrivateClickMeasurement):
(WebKit::NetworkSession::clearPrivateClickMeasurement):
(WebKit::NetworkSession::clearPrivateClickMeasurementForRegistrableDomain):
(WebKit::NetworkSession::setPrivateClickMeasurementOverrideTimerForTesting):
(WebKit::NetworkSession::setPrivateClickMeasurementConversionURLForTesting):
(WebKit::NetworkSession::markPrivateClickMeasurementsAsExpiredForTesting):
(WebKit::NetworkSession::storeAdClickAttribution): Deleted.
(WebKit::NetworkSession::handleAdClickAttributionConversion): Deleted.
(WebKit::NetworkSession::dumpAdClickAttribution): Deleted.
(WebKit::NetworkSession::clearAdClickAttribution): Deleted.
(WebKit::NetworkSession::clearAdClickAttributionForRegistrableDomain): Deleted.
(WebKit::NetworkSession::setAdClickAttributionOverrideTimerForTesting): Deleted.
(WebKit::NetworkSession::setAdClickAttributionConversionURLForTesting): Deleted.
(WebKit::NetworkSession::markAdClickAttributionsAsExpiredForTesting): Deleted.

  • NetworkProcess/NetworkSession.h:
  • NetworkProcess/PrivateClickMeasurementManager.cpp: Renamed from Source/WebKit/NetworkProcess/AdClickAttributionManager.cpp.

(WebKit::PrivateClickMeasurementManager::storeUnconverted):
(WebKit::PrivateClickMeasurementManager::handleConversion):
(WebKit::PrivateClickMeasurementManager::startTimer):
(WebKit::PrivateClickMeasurementManager::convert):
(WebKit::PrivateClickMeasurementManager::fireConversionRequest):
(WebKit::PrivateClickMeasurementManager::firePendingConversionRequests):
(WebKit::PrivateClickMeasurementManager::clear):
(WebKit::PrivateClickMeasurementManager::clearForRegistrableDomain):
(WebKit::PrivateClickMeasurementManager::clearExpired):
(WebKit::PrivateClickMeasurementManager::toString const):
(WebKit::PrivateClickMeasurementManager::setConversionURLForTesting):
(WebKit::PrivateClickMeasurementManager::markAllUnconvertedAsExpiredForTesting):
(WebKit::PrivateClickMeasurementManager::debugModeEnabled const):

  • NetworkProcess/PrivateClickMeasurementManager.h: Renamed from Source/WebKit/NetworkProcess/AdClickAttributionManager.h.

(WebKit::PrivateClickMeasurementManager::PrivateClickMeasurementManager):
(WebKit::PrivateClickMeasurementManager::m_sessionID):
(WebKit::PrivateClickMeasurementManager::setPingLoadFunction):
(WebKit::PrivateClickMeasurementManager::setOverrideTimerForTesting):

  • Platform/Logging.h:
  • Shared/NavigationActionData.cpp:

(WebKit::NavigationActionData::encode const):
(WebKit::NavigationActionData::decode):

  • Shared/NavigationActionData.h:
  • Shared/WebsiteData/WebsiteData.cpp:

(WebKit::WebsiteData::ownerProcess):

  • Shared/WebsiteData/WebsiteDataType.h:
  • Sources.txt:
  • UIProcess/API/APINavigation.h:

(API::Navigation::privateClickMeasurement const):
(API::Navigation::adClickAttribution const): Deleted.

  • UIProcess/API/C/WKPage.cpp:

(WKPageDumpPrivateClickMeasurement):
(WKPageClearPrivateClickMeasurement):
(WKPageSetPrivateClickMeasurementOverrideTimerForTesting):
(WKPageSetPrivateClickMeasurementConversionURLForTesting):
(WKPageMarkPrivateClickMeasurementsAsExpiredForTesting):
(WKPageDumpAdClickAttribution): Deleted.
(WKPageClearAdClickAttribution): Deleted.
(WKPageSetAdClickAttributionOverrideTimerForTesting): Deleted.
(WKPageSetAdClickAttributionConversionURLForTesting): Deleted.
(WKPageMarkAdClickAttributionsAsExpiredForTesting): Deleted.

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

(WKWebsiteDataStoreClearPrivateClickMeasurementsThroughWebsiteDataRemoval):
(WKWebsiteDataStoreClearAdClickAttributionsThroughWebsiteDataRemoval): Deleted.

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

(dataTypesToString):

  • UIProcess/API/Cocoa/WKWebsiteDataRecordInternal.h:

(WebKit::toWebsiteDataType):
(WebKit::toWKWebsiteDataTypes):

  • UIProcess/API/Cocoa/WKWebsiteDataRecordPrivate.h:
  • UIProcess/API/Cocoa/WKWebsiteDataStore.mm:

(+[WKWebsiteDataStore _allWebsiteDataTypesIncludingPrivate]):

  • UIProcess/Cocoa/WebProcessPoolCocoa.mm:

(WebKit::WebProcessPool::platformInitializeNetworkProcess):

  • UIProcess/Inspector/WebInspectorProxy.cpp:

(WebKit::WebInspectorProxy::setDeveloperPreferenceOverride):

  • UIProcess/Network/NetworkProcessProxy.cpp:

(WebKit::NetworkProcessProxy::setPrivateClickMeasurementDebugMode):
(WebKit::NetworkProcessProxy::setAdClickAttributionDebugMode): Deleted.

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

(WebKit::WebPageProxy::didCommitLoadForFrame):
(WebKit::WebPageProxy::createNewPage):
(WebKit::WebPageProxy::dumpPrivateClickMeasurement):
(WebKit::WebPageProxy::clearPrivateClickMeasurement):
(WebKit::WebPageProxy::setPrivateClickMeasurementOverrideTimerForTesting):
(WebKit::WebPageProxy::setPrivateClickMeasurementConversionURLForTesting):
(WebKit::WebPageProxy::markPrivateClickMeasurementsAsExpiredForTesting):
(WebKit::WebPageProxy::dumpAdClickAttribution): Deleted.
(WebKit::WebPageProxy::clearAdClickAttribution): Deleted.
(WebKit::WebPageProxy::setAdClickAttributionOverrideTimerForTesting): Deleted.
(WebKit::WebPageProxy::setAdClickAttributionConversionURLForTesting): Deleted.
(WebKit::WebPageProxy::markAdClickAttributionsAsExpiredForTesting): Deleted.

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

(WebKit::WebsiteDataStore::setPrivateClickMeasurementDebugMode):
(WebKit::WebsiteDataStore::setAdClickAttributionDebugMode): Deleted.

  • UIProcess/WebsiteData/WebsiteDataStore.h:
  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/WebCoreSupport/WebChromeClient.cpp:

(WebKit::WebChromeClient::createWindow):

  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:

(WebKit::WebFrameLoaderClient::dispatchDecidePolicyForNewWindowAction):
(WebKit::WebFrameLoaderClient::dispatchDecidePolicyForNavigationAction):

Source/WebKitLegacy/mac:

  • WebCoreSupport/WebChromeClient.mm:

(stringForMessageSource):

  • WebView/WebPreferenceKeysPrivate.h:
  • WebView/WebPreferences.mm:

(-[WebPreferences privateClickMeasurementEnabled]):
(-[WebPreferences setPrivateClickMeasurementEnabled:]):
(-[WebPreferences adClickAttributionEnabled]): Deleted.
(-[WebPreferences setAdClickAttributionEnabled:]): Deleted.

  • WebView/WebPreferencesPrivate.h:

Source/WTF:

  • Scripts/Preferences/WebPreferencesExperimental.yaml:

Tools:

  • DumpRenderTree/TestOptions.cpp:

(WTR::TestOptions::defaults):

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebCore/AdClickAttribution.cpp: Removed.
  • TestWebKitAPI/Tests/WebCore/PrivateClickMeasurement.cpp: Added.

(TestWebKitAPI::TEST):

  • WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl:
  • WebKitTestRunner/InjectedBundle/TestRunner.cpp:

(WTR::TestRunner::dumpPrivateClickMeasurement):
(WTR::TestRunner::clearPrivateClickMeasurement):
(WTR::TestRunner::clearPrivateClickMeasurementsThroughWebsiteDataRemoval):
(WTR::TestRunner::setPrivateClickMeasurementOverrideTimerForTesting):
(WTR::TestRunner::setPrivateClickMeasurementConversionURLForTesting):
(WTR::TestRunner::markPrivateClickMeasurementsAsExpiredForTesting):
(WTR::TestRunner::dumpAdClickAttribution): Deleted.
(WTR::TestRunner::clearAdClickAttribution): Deleted.
(WTR::TestRunner::clearAdClickAttributionsThroughWebsiteDataRemoval): Deleted.
(WTR::TestRunner::setAdClickAttributionOverrideTimerForTesting): Deleted.
(WTR::TestRunner::setAdClickAttributionConversionURLForTesting): Deleted.
(WTR::TestRunner::markAdClickAttributionsAsExpiredForTesting): Deleted.

  • WebKitTestRunner/InjectedBundle/TestRunner.h:
  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::resetStateToConsistentValues):
(WTR::PrivateClickMeasurementStringResultCallbackContext::PrivateClickMeasurementStringResultCallbackContext):
(WTR::privateClickMeasurementStringResultCallback):
(WTR::TestController::dumpPrivateClickMeasurement):
(WTR::PrivateClickMeasurementVoidCallbackContext::PrivateClickMeasurementVoidCallbackContext):
(WTR::privateClickMeasurementVoidCallback):
(WTR::TestController::clearPrivateClickMeasurement):
(WTR::TestController::clearPrivateClickMeasurementsThroughWebsiteDataRemoval):
(WTR::TestController::setPrivateClickMeasurementOverrideTimerForTesting):
(WTR::TestController::setPrivateClickMeasurementConversionURLForTesting):
(WTR::TestController::markPrivateClickMeasurementsAsExpiredForTesting):
(WTR::AdClickAttributionStringResultCallbackContext::AdClickAttributionStringResultCallbackContext): Deleted.
(WTR::adClickAttributionStringResultCallback): Deleted.
(WTR::TestController::dumpAdClickAttribution): Deleted.
(WTR::AdClickAttributionVoidCallbackContext::AdClickAttributionVoidCallbackContext): Deleted.
(WTR::adClickAttributionVoidCallback): Deleted.
(WTR::TestController::clearAdClickAttribution): Deleted.
(WTR::TestController::clearAdClickAttributionsThroughWebsiteDataRemoval): Deleted.
(WTR::TestController::setAdClickAttributionOverrideTimerForTesting): Deleted.
(WTR::TestController::setAdClickAttributionConversionURLForTesting): Deleted.
(WTR::TestController::markAdClickAttributionsAsExpiredForTesting): Deleted.

  • WebKitTestRunner/TestController.h:
  • WebKitTestRunner/TestInvocation.cpp:

(WTR::TestInvocation::dumpResults):
(WTR::TestInvocation::didReceiveSynchronousMessageFromInjectedBundle):
(WTR::TestInvocation::dumpPrivateClickMeasurement):
(WTR::TestInvocation::dumpAdClickAttribution): Deleted.

  • WebKitTestRunner/TestInvocation.h:

LayoutTests:

  • TestExpectations:
  • http/tests/adClickAttribution/attribution-conversion-through-cross-site-image-redirect-expected.txt: Removed.
  • http/tests/adClickAttribution/expired-attributions-removed-expected.txt: Removed.
  • http/tests/adClickAttribution/resources/redirectToConversionOnIPAddress.php: Removed.
  • http/tests/adClickAttribution/store-ad-click-attribution-expected.txt: Removed.
  • http/tests/adClickAttribution/store-disabled-in-ephemeral-session-expected.txt: Removed.
  • http/tests/contentextensions/block-ad-click-attribution-expected.txt: Removed.
  • http/tests/contentextensions/block-private-click-measurement-expected.txt: Added.
  • http/tests/contentextensions/block-private-click-measurement.html: Renamed from LayoutTests/http/tests/contentextensions/block-ad-click-attribution.html.
  • http/tests/contentextensions/block-private-click-measurement.html.json: Renamed from LayoutTests/http/tests/contentextensions/block-ad-click-attribution.html.json.
  • http/tests/privateClickMeasurement/anchor-tag-attributes-reflect-expected.txt: Renamed from LayoutTests/http/tests/adClickAttribution/anchor-tag-attributes-reflect-expected.txt.
  • http/tests/privateClickMeasurement/anchor-tag-attributes-reflect.html: Renamed from LayoutTests/http/tests/adClickAttribution/anchor-tag-attributes-reflect.html.
  • http/tests/privateClickMeasurement/anchor-tag-attributes-validation-expected.txt: Renamed from LayoutTests/http/tests/adClickAttribution/anchor-tag-attributes-validation-expected.txt.
  • http/tests/privateClickMeasurement/anchor-tag-attributes-validation.html: Renamed from LayoutTests/http/tests/adClickAttribution/anchor-tag-attributes-validation.html.
  • http/tests/privateClickMeasurement/attribution-conversion-through-cross-site-image-redirect-expected.txt: Added.
  • http/tests/privateClickMeasurement/attribution-conversion-through-cross-site-image-redirect.html: Renamed from LayoutTests/http/tests/adClickAttribution/attribution-conversion-through-cross-site-image-redirect.html.
  • http/tests/privateClickMeasurement/attribution-conversion-through-image-redirect-in-new-window-expected.txt: Renamed from LayoutTests/http/tests/adClickAttribution/attribution-conversion-through-image-redirect-in-new-window-expected.txt.
  • http/tests/privateClickMeasurement/attribution-conversion-through-image-redirect-in-new-window.html: Renamed from LayoutTests/http/tests/adClickAttribution/attribution-conversion-through-image-redirect-in-new-window.html.
  • http/tests/privateClickMeasurement/attribution-conversion-through-image-redirect-with-priority-expected.txt: Renamed from LayoutTests/http/tests/adClickAttribution/attribution-conversion-through-image-redirect-with-priority-expected.txt.
  • http/tests/privateClickMeasurement/attribution-conversion-through-image-redirect-with-priority.html: Renamed from LayoutTests/http/tests/adClickAttribution/attribution-conversion-through-image-redirect-with-priority.html.
  • http/tests/privateClickMeasurement/attribution-conversion-through-image-redirect-without-priority-expected.txt: Renamed from LayoutTests/http/tests/adClickAttribution/attribution-conversion-through-image-redirect-without-priority-expected.txt.
  • http/tests/privateClickMeasurement/attribution-conversion-through-image-redirect-without-priority.html: Renamed from LayoutTests/http/tests/adClickAttribution/attribution-conversion-through-image-redirect-without-priority.html.
  • http/tests/privateClickMeasurement/clear-through-website-data-removal-expected.txt: Renamed from LayoutTests/http/tests/adClickAttribution/clear-through-website-data-removal-expected.txt.
  • http/tests/privateClickMeasurement/clear-through-website-data-removal.html: Renamed from LayoutTests/http/tests/adClickAttribution/clear-through-website-data-removal.html.
  • http/tests/privateClickMeasurement/conversion-disabled-in-ephemeral-session-expected.txt: Renamed from LayoutTests/http/tests/adClickAttribution/conversion-disabled-in-ephemeral-session-expected.txt.
  • http/tests/privateClickMeasurement/conversion-disabled-in-ephemeral-session.html: Renamed from LayoutTests/http/tests/adClickAttribution/conversion-disabled-in-ephemeral-session.html.
  • http/tests/privateClickMeasurement/expired-attributions-removed-expected.txt: Added.
  • http/tests/privateClickMeasurement/expired-attributions-removed.html: Renamed from LayoutTests/http/tests/adClickAttribution/expired-attributions-removed.html.
  • http/tests/privateClickMeasurement/resources/conversionFilePath.php: Renamed from LayoutTests/http/tests/adClickAttribution/resources/conversionFilePath.php.
  • http/tests/privateClickMeasurement/resources/conversionReport.php: Renamed from LayoutTests/http/tests/adClickAttribution/resources/conversionReport.php.
  • http/tests/privateClickMeasurement/resources/convertAndPostMessageBack.html: Renamed from LayoutTests/http/tests/adClickAttribution/resources/convertAndPostMessageBack.html.
  • http/tests/privateClickMeasurement/resources/getConversionData.php: Renamed from LayoutTests/http/tests/adClickAttribution/resources/getConversionData.php.
  • http/tests/privateClickMeasurement/resources/redirectToConversion.php: Renamed from LayoutTests/http/tests/adClickAttribution/resources/redirectToConversion.php.
  • http/tests/privateClickMeasurement/resources/redirectToConversionOnIPAddress.php: Added.
  • http/tests/privateClickMeasurement/resources/util.js: Renamed from LayoutTests/http/tests/adClickAttribution/resources/util.js.

(prepareTest):
(tearDownAndFinish):

  • http/tests/privateClickMeasurement/second-attribution-converted-with-higher-priority-expected.txt: Renamed from LayoutTests/http/tests/adClickAttribution/second-attribution-converted-with-higher-priority-expected.txt.
  • http/tests/privateClickMeasurement/second-attribution-converted-with-higher-priority.html: Renamed from LayoutTests/http/tests/adClickAttribution/second-attribution-converted-with-higher-priority.html.
  • http/tests/privateClickMeasurement/second-attribution-converted-with-lower-priority-expected.txt: Renamed from LayoutTests/http/tests/adClickAttribution/second-attribution-converted-with-lower-priority-expected.txt.
  • http/tests/privateClickMeasurement/second-attribution-converted-with-lower-priority.html: Renamed from LayoutTests/http/tests/adClickAttribution/second-attribution-converted-with-lower-priority.html.
  • http/tests/privateClickMeasurement/second-conversion-with-higher-priority-expected.txt: Renamed from LayoutTests/http/tests/adClickAttribution/second-conversion-with-higher-priority-expected.txt.
  • http/tests/privateClickMeasurement/second-conversion-with-higher-priority.html: Renamed from LayoutTests/http/tests/adClickAttribution/second-conversion-with-higher-priority.html.
  • http/tests/privateClickMeasurement/second-conversion-with-lower-priority-expected.txt: Renamed from LayoutTests/http/tests/adClickAttribution/second-conversion-with-lower-priority-expected.txt.
  • http/tests/privateClickMeasurement/second-conversion-with-lower-priority.html: Renamed from LayoutTests/http/tests/adClickAttribution/second-conversion-with-lower-priority.html.
  • http/tests/privateClickMeasurement/send-attribution-conversion-request-expected.txt: Renamed from LayoutTests/http/tests/adClickAttribution/send-attribution-conversion-request-expected.txt.
  • http/tests/privateClickMeasurement/send-attribution-conversion-request.html: Renamed from LayoutTests/http/tests/adClickAttribution/send-attribution-conversion-request.html.
  • http/tests/privateClickMeasurement/store-disabled-in-ephemeral-session-expected.txt: Added.
  • http/tests/privateClickMeasurement/store-disabled-in-ephemeral-session.html: Renamed from LayoutTests/http/tests/adClickAttribution/store-disabled-in-ephemeral-session.html.
  • http/tests/privateClickMeasurement/store-private-click-measurement-expected.txt: Added.
  • http/tests/privateClickMeasurement/store-private-click-measurement.html: Renamed from LayoutTests/http/tests/adClickAttribution/store-ad-click-attribution.html.
  • inspector/page/overrideSetting-AdClickAttributionDebugModeEnabled-expected.txt: Removed.
  • inspector/page/overrideSetting-PrivateClickMeasurementDebugModeEnabled-expected.txt: Added.
  • inspector/page/overrideSetting-PrivateClickMeasurementDebugModeEnabled.html: Renamed from LayoutTests/inspector/page/overrideSetting-AdClickAttributionDebugModeEnabled.html.
  • platform/mac-wk2/TestExpectations:
  • platform/wk2/TestExpectations:
4:28 PM Changeset in webkit [269659] by Simon Fraser
  • 20 edits in trunk/Source

Make PlatformWheelEventPhase an enum class
https://bugs.webkit.org/show_bug.cgi?id=218772

Reviewed by Tim Horton.

Change PlatformWheelEventPhase to be an enum class.

Changed code that maps between NSEventPhase and PlatformWheelEventPhase to not
treat NSEventPhase as a set of bits, since it only ever contains one of the bits.

Source/WebCore:

  • dom/WheelEvent.h:
  • page/EventHandler.cpp:

(WebCore::handleWheelEventPhaseInScrollableArea):
(WebCore::handleWheelEventInAppropriateEnclosingBox):

  • page/WheelEventTestMonitor.cpp:

(WebCore::WheelEventTestMonitor::receivedWheelEvent):

  • page/mac/EventHandlerMac.mm:

(WebCore::findEnclosingScrollableContainer):
(WebCore::EventHandler::recordWheelEventForDeltaFilter):
(WebCore::EventHandler::processWheelEventForScrollSnap):

  • page/scrolling/ScrollingTree.cpp:

(WebCore::ScrollingTree::willWheelEventStartSwipeGesture):

  • page/scrolling/ScrollingTreeGestureState.cpp:

(WebCore::ScrollingTreeGestureState::handleGestureCancel):
(WebCore::ScrollingTreeGestureState::nodeDidHandleEvent):

  • page/scrolling/ScrollingTreeScrollingNode.cpp:

(WebCore::ScrollingTreeScrollingNode::canHandleWheelEvent const):

  • page/scrolling/mac/ScrollingTreeScrollingNodeDelegateMac.mm:

(WebCore::ScrollingTreeScrollingNodeDelegateMac::handleWheelEvent):

  • platform/PlatformWheelEvent.cpp:

(WebCore::operator<<):

  • platform/PlatformWheelEvent.h:

(WebCore::PlatformWheelEvent::useLatchedEventElement const):
(WebCore::PlatformWheelEvent::isGestureStart const):
(WebCore::PlatformWheelEvent::isGestureContinuation const):
(WebCore::PlatformWheelEvent::shouldResetLatching const):
(WebCore::PlatformWheelEvent::isNonGestureEvent const):
(WebCore::PlatformWheelEvent::isEndOfMomentumScroll const):
(WebCore::PlatformWheelEvent::isGestureBegin const):
(WebCore::PlatformWheelEvent::isGestureCancel const):
(WebCore::PlatformWheelEvent::isEndOfNonMomentumScroll const):
(WebCore::PlatformWheelEvent::isTransitioningToMomentumScroll const):

  • platform/ScrollAnimator.cpp:

(WebCore::ScrollAnimator::handleWheelEvent):

  • platform/cocoa/ScrollController.mm:

(WebCore::ScrollController::handleWheelEvent):
(WebCore::toWheelEventStatus):

  • platform/mac/PlatformEventFactoryMac.mm:

(WebCore::phaseFromNSEventPhase):
(WebCore::momentumPhaseForEvent):
(WebCore::phaseForEvent):

  • platform/mac/ScrollAnimatorMac.mm:

(WebCore::ScrollAnimatorMac::handleWheelEventPhase):
(WebCore::newGestureIsStarting):
(WebCore::gestureShouldBeginSnap):

Source/WebKit:

  • UIProcess/RemoteLayerTree/mac/ScrollerPairMac.mm:

(WebKit::ScrollerPairMac::handleWheelEvent):

  • WebProcess/WebPage/EventDispatcher.cpp:

(WebKit::EventDispatcher::wheelEvent):

Source/WebKitLegacy/mac:

  • DOM/WebDOMOperations.mm:

(toNSEventPhase):

3:53 PM Changeset in webkit [269658] by ggaren@apple.com
  • 3 edits
    1 add in trunk/Source

Stop using objc_autoreleasePool{Push, Pop} in RunLoop observers
https://bugs.webkit.org/show_bug.cgi?id=218728

Reviewed by Tim Horton.

Use in a RunLoop observer is deprecated when a built-in version of the
behavior is available (because the conflicting pool management commands
crash each other).

This is UIWebView, so there are no rules. Tested manually, at a safe
distance.

  • platform/ios/wak/WebCoreThread.mm:

(WebRunLoopLockInternal):
(WebRunLoopUnlockInternal):
(WebRunLoopEnableNested):
(WebRunLoopDisableNested):
(RunWebThread):

3:36 PM Changeset in webkit [269657] by Chris Dumez
  • 12 edits
    2 adds in trunk

GPUProcess does not properly get relaunched after crashing
https://bugs.webkit.org/show_bug.cgi?id=218769

Reviewed by Tim Horton.

Source/WebKit:

After the GPUProcess crashes, we need to make sure we construct a new GPUProcessProxy
so that a new process gets relaunched. Previously, this wasn't possible because
the GPUProcessProxy was a "never destroyed" singleton.

The GPUProcessProxy is now kept alive by the WebProcessPool objects refing it.
Upon crashing, all WebProcessPools clear their GPUProcessProxy RefPtr so that the
old GPUProcessProxy gets destroyed. The next time a GPUProcessProxy is needed, a new
one gets constructed. We still make sure that all WebProcessPool objects share the
same GPUProcessProxy, as before this patch.

  • UIProcess/API/Cocoa/WKProcessPool.mm:

(-[WKProcessPool _gpuProcessIdentifier]):

  • UIProcess/API/Cocoa/WKProcessPoolPrivate.h:
  • UIProcess/GPU/GPUProcessProxy.cpp:

(WebKit::GPUProcessProxy::getOrCreate):
(WebKit::GPUProcessProxy::GPUProcessProxy):
(WebKit::GPUProcessProxy::~GPUProcessProxy):
(WebKit::GPUProcessProxy::processWillShutDown):
(WebKit::GPUProcessProxy::gpuProcessCrashed):

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

(WebKit::UserMediaPermissionRequestManagerProxy::syncWithWebCorePrefs const):

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::willStartCapture):
(WebKit::WebPageProxy::setOrientationForMediaCapture):

  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::ensureGPUProcess):
(WebKit::WebProcessPool::gpuProcessCrashed):
(WebKit::WebProcessPool::getGPUProcessConnection):
(WebKit::WebProcessPool::updateAudibleMediaAssertions):

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

(-[WKContentView _setupVisibilityPropagationViewForGPUProcess]):

Tools:

Add API test coverage.

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

(TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/audio-context-playing.html: Added.
3:35 PM Changeset in webkit [269656] by Kocsen Chung
  • 2 edits in branches/safari-610.3.7.1-branch/Source/WebKit

Cherry-pick r269651. rdar://problem/71256353

[macOS] Allow IOGLESBundleName for Apple Silicon Macs
https://bugs.webkit.org/show_bug.cgi?id=218774
<rdar://problem/67473780>

Unreviewed follow-up fix to r269649.

Two additional keys are needed: MetalPluginClassName and MetalPluginName

  • WebProcess/com.apple.WebProcess.sb.in:

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

3:33 PM Changeset in webkit [269655] by Alan Bujtas
  • 7 edits in trunk

[LFC][Integration] Enable vertical alignment on replaced content
https://bugs.webkit.org/show_bug.cgi?id=218101

Reviewed by Antti Koivisto.

Source/WebCore:

  • layout/integration/LayoutIntegrationCoverage.cpp:

LayoutTests:

Combination of trailing whitespace and pixel rounding.

  • platform/ios/css1/formatting_model/height_of_lines-expected.txt:
  • platform/ios/css1/text_properties/vertical_align-expected.txt:
  • platform/mac/css1/formatting_model/height_of_lines-expected.txt:
  • platform/mac/css1/text_properties/vertical_align-expected.txt:
3:31 PM Changeset in webkit [269654] by Alan Coon
  • 2 edits in branches/safari-610.3.6-branch/Source/WebKit

Cherry-pick r269651. rdar://problem/71256392

[macOS] Allow IOGLESBundleName for Apple Silicon Macs
https://bugs.webkit.org/show_bug.cgi?id=218774
<rdar://problem/67473780>

Unreviewed follow-up fix to r269649.

Two additional keys are needed: MetalPluginClassName and MetalPluginName

  • WebProcess/com.apple.WebProcess.sb.in:

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

3:31 PM Changeset in webkit [269653] by Alan Coon
  • 2 edits in branches/safari-610.3.6-branch/Source/WebKit

Cherry-pick r269649. rdar://problem/71256392

[macOS] Allow IOGLESBundleName for Apple Silicon Macs
https://bugs.webkit.org/show_bug.cgi?id=218774
<rdar://problem/67473780>

Reviewed by Tim Horton.

The WebContent should be able to read the IOGLESBundleName IOKit property on
Apple Silicon Macs. This will help the OpenGL stack make better choices about
which bundles to load when processing WebGL content.

  • WebProcess/com.apple.WebProcess.sb.in:

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

3:28 PM Changeset in webkit [269652] by Alan Coon
  • 8 edits in branches/safari-610.3.6-branch/Source

Versioning.

WebKit-7610.3.6.3

3:18 PM Changeset in webkit [269651] by Brent Fulgham
  • 2 edits in trunk/Source/WebKit

[macOS] Allow IOGLESBundleName for Apple Silicon Macs
https://bugs.webkit.org/show_bug.cgi?id=218774
<rdar://problem/67473780>

Unreviewed follow-up fix to r269649.

Two additional keys are needed: MetalPluginClassName and MetalPluginName

  • WebProcess/com.apple.WebProcess.sb.in:
3:17 PM Changeset in webkit [269650] by Kocsen Chung
  • 2 edits in branches/safari-610.3.7.1-branch/Source/WebKit

Cherry-pick r269649. rdar://problem/71256353

[macOS] Allow IOGLESBundleName for Apple Silicon Macs
https://bugs.webkit.org/show_bug.cgi?id=218774
<rdar://problem/67473780>

Reviewed by Tim Horton.

The WebContent should be able to read the IOGLESBundleName IOKit property on
Apple Silicon Macs. This will help the OpenGL stack make better choices about
which bundles to load when processing WebGL content.

  • WebProcess/com.apple.WebProcess.sb.in:

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

3:02 PM Changeset in webkit [269649] by Brent Fulgham
  • 2 edits in trunk/Source/WebKit

[macOS] Allow IOGLESBundleName for Apple Silicon Macs
https://bugs.webkit.org/show_bug.cgi?id=218774
<rdar://problem/67473780>

Reviewed by Tim Horton.

The WebContent should be able to read the IOGLESBundleName IOKit property on
Apple Silicon Macs. This will help the OpenGL stack make better choices about
which bundles to load when processing WebGL content.

  • WebProcess/com.apple.WebProcess.sb.in:
2:58 PM Changeset in webkit [269648] by Said Abou-Hallawa
  • 7 edits in trunk/Source

[macCatalyst] Fix various build breaks
https://bugs.webkit.org/show_bug.cgi?id=218771

Reviewed by Tim Horton.

Source/WebCore:

Use PlatformImagePtr which is encapsulated in NativeImage.

  • editing/cocoa/DictionaryLookup.mm:

(-[WebRevealHighlight drawHighlightContentForItem:context:]):

Source/WebKit:

Use NO_RETURN_DUE_TO_ASSERT for unreachable function.

  • UIProcess/Cocoa/UserMediaPermissionRequestProxy.mm:

(WebKit::UserMediaPermissionRequestProxy::doDefaultAction):

  • UIProcess/UserMediaPermissionRequestProxy.h:

Source/WebKitLegacy/mac:

Use 'BOOL' instead of 'bool' for the functions arguments to resolve the
conflict with _setBoolValue which takes 'BOOL'.

  • WebView/WebPreferences.mm:

(-[WebPreferences setAVKitEnabled:]):
(-[WebPreferences setNetworkDataUsageTrackingEnabled:]):

2:20 PM Changeset in webkit [269647] by pvollan@apple.com
  • 9 edits in trunk/Source/WebKit

[Cocoa] Send GPU sandbox extensions in Web page creation parameters
https://bugs.webkit.org/show_bug.cgi?id=218708

Reviewed by Brent Fulgham.

To pick up correct runtime settings, the GPU sandbox extensions should be sent to the WebContent process as part of the Web page creation parameters.

No new tests, covered by existing tests.

  • Shared/WebPageCreationParameters.cpp:

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

  • Shared/WebPageCreationParameters.h:
  • Shared/WebProcessCreationParameters.cpp:

(WebKit::WebProcessCreationParameters::encode const):
(WebKit::WebProcessCreationParameters::decode):

  • Shared/WebProcessCreationParameters.h:
  • UIProcess/Cocoa/WebProcessPoolCocoa.mm:

(WebKit::WebProcessPool::platformInitializeWebProcess):
(WebKit::mediaRelatedMachServices): Deleted.
(WebKit::gpuIOKitClasses): Deleted.

  • UIProcess/WebPageProxy.cpp:

(WebKit::gpuIOKitClasses):
(WebKit::mediaRelatedMachServices):
(WebKit::WebPageProxy::creationParameters):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::m_limitsNavigationsToAppBoundDomains):

  • WebProcess/cocoa/WebProcessCocoa.mm:

(WebKit::WebProcess::platformInitializeWebProcess):

1:36 PM Changeset in webkit [269646] by Andres Gonzalez
  • 2 edits in trunk/LayoutTests

Fix for LayoutTests/accessibility/mac/search-subrole.html in isolated tree mode.
https://bugs.webkit.org/show_bug.cgi?id=218766

Reviewed by Chris Fleizach.

  • accessibility/mac/search-subrole.html: Modify so that it works in both

isolated tree mode on and off.

1:27 PM Changeset in webkit [269645] by Alan Bujtas
  • 3 edits in trunk/Source/WebCore

[LFC][IFC] Add support for replaced element baseline
https://bugs.webkit.org/show_bug.cgi?id=218767

Reviewed by Antti Koivisto.

Replaced elements can have set baselines.

  • layout/inlineformatting/InlineFormattingContextGeometry.cpp:

(WebCore::Layout::LineBoxBuilder::constructInlineLevelBoxes):

  • layout/layouttree/LayoutReplacedBox.h:

(WebCore::Layout::ReplacedBox::setBaseline):
(WebCore::Layout::ReplacedBox::baseline const):

1:17 PM Changeset in webkit [269644] by jer.noble@apple.com
  • 4 edits in trunk/Source

Unreviewed internal macOS build-fix.

Source/WebCore/PAL:

  • pal/avfoundation/OutputDevice.mm:

(PAL::OutputDevice::supportsSpatialAudio const):

Source/WTF:

  • wtf/PlatformHave.h:
1:11 PM Changeset in webkit [269643] by pvollan@apple.com
  • 2 edits in trunk/Source/WebKit

[macCatalyst] Add entitlement for message filtering
https://bugs.webkit.org/show_bug.cgi?id=218768
<rdar://problem/71247464>

Reviewed by Tim Horton.

Add required message filtering entitlement for Catalyst.

No new tests, covered by existing tests.

  • Scripts/process-entitlements.sh:
12:49 PM Changeset in webkit [269642] by youenn@apple.com
  • 1611 edits
    2 copies
    2 moves
    356 adds
    112 deletes in trunk

Update WebRTC liwebrtc to M87
https://bugs.webkit.org/show_bug.cgi?id=218436

LayoutTests/imported/w3c:

Reviewed by Eric Carlson.

  • web-platform-tests/webrtc/RTCPeerConnection-createDataChannel-expected.txt:
  • web-platform-tests/webrtc/RTCPeerConnection-transceivers.https-expected.txt:
  • web-platform-tests/webrtc/RTCRtpTransceiver-stop-expected.txt:

Source/ThirdParty/libwebrtc:

Reviewed by Eric Carlson.

  • CMakeLists.txt:
  • Configurations/libwebrtc.iOS.exp:
  • Configurations/libwebrtc.iOSsim.exp:
  • Configurations/libwebrtc.mac.exp:
  • Source/webrtc: Resynced.
  • WebKit/libwebrtc-m87-diff: Added.
  • libwebrtc.xcodeproj/project.pbxproj:

Source/WebCore:

Reviewed by Eric Carlson.

Move from deprecated to new APIs.

Covered by existing tests.

  • Modules/mediastream/libwebrtc/LibWebRTCRtpTransceiverBackend.cpp:

(WebCore::LibWebRTCRtpTransceiverBackend::setDirection):
(WebCore::LibWebRTCRtpTransceiverBackend::stop):

  • Modules/mediastream/libwebrtc/LibWebRTCStatsCollector.cpp:

(WebCore::fillRTCDataChannelStats):

  • platform/mediastream/RealtimeOutgoingVideoSource.h:
  • platform/mediastream/gstreamer/GStreamerVideoFrameLibWebRTC.cpp:

(WebCore::GStreamerVideoFrameLibWebRTC::ToI420):

  • platform/mediastream/gstreamer/GStreamerVideoFrameLibWebRTC.h:
  • platform/mediastream/libwebrtc/GStreamerVideoEncoderFactory.cpp:

(WebCore::GStreamerEncodedImageBuffer::create):
(WebCore::GStreamerEncodedImageBuffer::GStreamerEncodedImageBuffer):
(WebCore::GStreamerVideoEncoderFactory::CreateVideoEncoder):
(WebCore::GStreamerVideoEncoder::Fragmentize): Deleted.

  • platform/mediastream/libwebrtc/GStreamerVideoEncoderFactory.h:
  • testing/MockLibWebRTCPeerConnection.h:

Source/WebKit:

Reviewed by Eric Carlson.

Update code now that fragmentation headers are computed at packetization time.

  • Configurations/WebKit.xcconfig:
  • GPUProcess/webrtc/LibWebRTCCodecsProxy.mm:

(WebKit::LibWebRTCCodecsProxy::createEncoder):

  • Scripts/webkit/messages.py:
  • Shared/RTCNetwork.h:
  • WebProcess/GPU/webrtc/LibWebRTCCodecs.cpp:

(WebKit::LibWebRTCCodecs::completedEncoding):

  • WebProcess/GPU/webrtc/LibWebRTCCodecs.h:
  • WebProcess/GPU/webrtc/LibWebRTCCodecs.messages.in:

LayoutTests:

Reviewed by Eric Carlson.

We now have to explicitly support all packetization modes, which is similar to what Chrome is doing.

  • webrtc/h264-packetization-mode.html:
12:40 PM Changeset in webkit [269641] by commit-queue@webkit.org
  • 23 edits in trunk

Parse aspect-ratio CSS property
https://bugs.webkit.org/show_bug.cgi?id=218437

Patch by Rob Buis <rbuis@igalia.com> on 2020-11-10
Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Add improved test results.

  • web-platform-tests/css/css-cascade/all-prop-initial-xml-expected.txt:
  • web-platform-tests/css/css-sizing/aspect-ratio/parsing/contain-intrinsic-size-computed-expected.txt:
  • web-platform-tests/css/css-sizing/aspect-ratio/parsing/contain-intrinsic-size-valid-expected.txt:
  • web-platform-tests/css/cssom/cssstyledeclaration-csstext-expected.txt:

Source/WebCore:

Parse aspect-ratio CSS property according to the specification [1].

[1] https://drafts.csswg.org/css-sizing-4/#aspect-ratio

  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::ComputedStyleExtractor::valueForPropertyInStyle):

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

(WebCore::CSSParserContext::CSSParserContext):
(WebCore::operator==):

  • css/parser/CSSParserContext.h:
  • css/parser/CSSPropertyParser.cpp:

(WebCore::consumeAspectRatio):
(WebCore::CSSPropertyParser::parseSingleValue):

  • rendering/style/RenderStyle.h:

(WebCore::RenderStyle::aspectRatioWidth const):
(WebCore::RenderStyle::aspectRatioHeight const):
(WebCore::RenderStyle::setAspectRatio):
(WebCore::RenderStyle::initialAspectRatioWidth):
(WebCore::RenderStyle::initialAspectRatioHeight):

  • rendering/style/RenderStyleConstants.cpp:

(WebCore::operator<<):

  • rendering/style/RenderStyleConstants.h:
  • rendering/style/StyleRareNonInheritedData.cpp:

(WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
(WebCore::StyleRareNonInheritedData::operator== const):

  • rendering/style/StyleRareNonInheritedData.h:
  • style/StyleBuilderCustom.h:

(WebCore::Style::BuilderCustom::applyValueWebkitAspectRatio):
(WebCore::Style::BuilderCustom::applyInitialAspectRatio):
(WebCore::Style::BuilderCustom::applyInheritAspectRatio):
(WebCore::Style::BuilderCustom::applyValueAspectRatio):

Source/WTF:

Add an experimental preference for aspect-ratio.

  • Scripts/Preferences/WebPreferencesExperimental.yaml:

LayoutTests:

Adapt platform test expectations.

  • platform/gtk/imported/w3c/web-platform-tests/css/cssom/cssstyledeclaration-csstext-expected.txt:
  • platform/ios-wk2/imported/w3c/web-platform-tests/css/cssom/cssstyledeclaration-csstext-expected.txt:
  • platform/wpe/imported/w3c/web-platform-tests/css/cssom/cssstyledeclaration-csstext-expected.txt:
12:30 PM Changeset in webkit [269640] by Wenson Hsieh
  • 10 edits in trunk

REGRESSION (r269525): Many layout tests crash when run under ASan
https://bugs.webkit.org/show_bug.cgi?id=218733
<rdar://problem/71206273>

Reviewed by Tim Horton.

Source/WebCore:

When running tests under ASan, many layout tests crash under Vector::asanBufferSizeWillChangeTo, which (when
ASan is enabled) will crash when the start of the buffer is misaligned to 8 bytes. When appending DrawGlyph
display list items that have Vectors with inline capacities, the start of a buffer may end up at an offset that
is not aligned to 8 bytes, since all display list items are currently laid out back-to-back, with a single byte
to represent the item type and each item's data following immediately thereafter.

To address this, adjust display list item buffer logic to make sure that for each item that is appended to an
item buffer, both the item type and the item itself are aligned to 8 bytes.

  • platform/graphics/displaylists/DisplayList.cpp:

(WebCore::DisplayList::DisplayList::iterator::updateCurrentItem):

  • platform/graphics/displaylists/DisplayListItemBuffer.cpp:

(WebCore::DisplayList::ItemHandle::copyTo const):
(WebCore::DisplayList::ItemBuffer::swapWritableBufferIfNeeded):
(WebCore::DisplayList::ItemBuffer::appendEncodedData):
(WebCore::DisplayList::ItemBuffer::appendDataAndLength): Deleted.

  • platform/graphics/displaylists/DisplayListItemBuffer.h:

(WebCore::DisplayList::ItemHandle::type const):
(WebCore::DisplayList::ItemHandle::get const):
(WebCore::DisplayList::ItemBuffer::append):
(WebCore::DisplayList::ItemBuffer::uncheckedAppend):
(WebCore::DisplayList::ItemHandle::size const): Deleted.

  • platform/graphics/displaylists/DisplayListItemType.cpp:

(WebCore::DisplayList::sizeOfItemInBytes):
(WebCore::DisplayList::paddedSizeOfTypeAndItemInBytes):

Change sizeOfItemInBytes to paddedSizeOfTypeAndItemInBytes, and make it include both the padded size of an
item type (8 bytes), the size of the item itself, and the minimum amount of padding after the item that's
required to make sure the total size is aligned to 8 bytes.

  • platform/graphics/displaylists/DisplayListItemType.h:

Source/WebKit:

Construct the item 8 bytes after the handle offset, instead of 1 byte (also, add a FIXME indicating that we some
way of achieving this without requiring WebKit2 to be aware of an item handle's memory layout).

  • GPUProcess/graphics/RemoteRenderingBackend.h:

(WebKit::RemoteRenderingBackend::decodeAndCreate):

Tools:

  • TestWebKitAPI/Tests/WebCore/DisplayListTests.cpp:

(TestWebKitAPI::TEST):

11:40 AM Changeset in webkit [269639] by Antti Koivisto
  • 7 edits in trunk/Source/WebCore

[LFC][Integration] Move caret rect computation out of iterator
https://bugs.webkit.org/show_bug.cgi?id=218747

Reviewed by Zalan Bujtas.

Move it to RenderBlockFlow which it mostly deals with.

  • layout/integration/LayoutIntegrationLineIterator.cpp:

(WebCore::LayoutIntegration::PathLine::computeCaretRect const): Deleted.

  • layout/integration/LayoutIntegrationLineIterator.h:

(WebCore::LayoutIntegration::PathLine::selectionRect const):

  • rendering/RenderBlockFlow.cpp:

(WebCore::RenderBlockFlow::computeCaretRect const):

  • rendering/RenderBlockFlow.h:
  • rendering/RenderLineBreak.cpp:

(WebCore::RenderLineBreak::localCaretRect const):

  • rendering/RenderText.cpp:

(WebCore::RenderText::localCaretRect const):

11:38 AM Changeset in webkit [269638] by Alan Coon
  • 2 edits in branches/safari-611.1.5-branch/Source/WebKit

Cherry-pick r269610. rdar://problem/71247293

REGRESSION (r269557): ASSERTION FAILED: Completion handler should always be called under WebCore::HTMLMediaElement::exitFullscreen
https://bugs.webkit.org/show_bug.cgi?id=218722

Reviewed by Eric Carlson.

No new tests, covered by an existing test that is crashing on the bots.

  • WebProcess/cocoa/VideoFullscreenManager.mm: (WebKit::VideoFullscreenManager::exitVideoFullscreenForVideoElement):

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

11:34 AM Changeset in webkit [269637] by eric.carlson@apple.com
  • 2 edits in trunk/LayoutTests

REGRESSION (r269407): ASSERTION FAILED: willBeComposited == needsToBeComposited(layer, queryData) in WebCore::RenderLayerCompositor::computeCompositingRequirements
https://bugs.webkit.org/show_bug.cgi?id=218723
<rdar://problem/71208603>

Unreviewed test gardening.

  • platform/mac/TestExpectations: Skip plugins/quicktime-plugin-replacement.html, the plug-in

replacement is an iOS-only feature.

11:30 AM Changeset in webkit [269636] by Russell Epstein
  • 1 copy in branches/safari-611.1.5-branch

New branch.

11:21 AM Changeset in webkit [269635] by Andres Gonzalez
  • 14 edits in trunk

Fix for LayoutTests/accessibility/mac/search-predicate.html in isolated tree mode.
https://bugs.webkit.org/show_bug.cgi?id=218732

Reviewed by Chris Fleizach.

Source/WebCore:

Test: accessibility/mac/search-predicate.html.

  • Implemented AXIsolatedObject::scrollXXX methods.
  • Added handling of "AXIsOnScreen" attribute to WebAccessibilityOobjectWrapperMac.
  • accessibility/isolatedtree/AXIsolatedObject.cpp:

(WebCore::AXIsolatedObject::performFunctionOnMainThread const):
(WebCore::AXIsolatedObject::scrollToMakeVisible const):
(WebCore::AXIsolatedObject::scrollToMakeVisibleWithSubFocus const):
(WebCore::AXIsolatedObject::scrollToGlobalPoint const):
(WebCore::AXIsolatedObject::performFunctionOnMainThread): Deleted.
(WebCore::AXIsolatedObject::isVisible const): Deleted.

  • accessibility/isolatedtree/AXIsolatedObject.h:
  • accessibility/mac/WebAccessibilityObjectWrapperMac.mm:

(-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]):

Tools:

Exposed isOnScreen method to JS.

  • WebKitTestRunner/InjectedBundle/AccessibilityUIElement.cpp:

(WTR::AccessibilityUIElement::isOnScreen const):

  • WebKitTestRunner/InjectedBundle/AccessibilityUIElement.h:
  • WebKitTestRunner/InjectedBundle/Bindings/AccessibilityUIElement.idl:
  • WebKitTestRunner/InjectedBundle/mac/AccessibilityUIElementMac.mm:

(WTR::AccessibilityUIElement::isOnScreen const):

LayoutTests:

This test now passes in both isolated tree mode on and off.

  • accessibility/mac/search-predicate.html:
11:20 AM Changeset in webkit [269634] by aakash_jain@apple.com
  • 2 edits in trunk/Tools

[build.webkit.org] Only upload to S3 when running on production server
https://bugs.webkit.org/show_bug.cgi?id=218755

Reviewed by Jonathan Bedard.

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

(TransferToS3.doStepIf):

11:19 AM Changeset in webkit [269633] by aakash_jain@apple.com
  • 3 edits in trunk/Tools

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

Reviewed by Jonathan Bedard.

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

(ExtractTestResults): Making this step similar to corresponding EWS step. Also added name to this step to make it more readable (than MasterShellCommand).
(ExtractTestResults.init):
(ExtractTestResults.resultDirectoryURL):
(ExtractTestResults.start):

  • CISupport/build-webkit-org/steps_unittest.py: Updated unit-tests to handle step name change.
11:15 AM Changeset in webkit [269632] by Chris Dumez
  • 6 edits
    2 adds in trunk

Crash when accessing OfflineAudioContext.length after failing to construct rendering AudioBuffer
https://bugs.webkit.org/show_bug.cgi?id=218754
<rdar://problem/71186978>

Reviewed by Eric Carlson.

Source/WebCore:

OfflineAudioContext.length should return the length passed to the constructor, even if we
failed to construct the internal AudioBuffer (and obviously we should not crash). This
matches the behavior of Firefox and Chrome.

I have also added a console message when we fail to construct the internal rendering
AudioBuffer, for clarity.

Test: webaudio/OfflineAudioContext/bad-buffer-length.html

  • Modules/webaudio/OfflineAudioContext.cpp:

(WebCore::OfflineAudioContext::OfflineAudioContext):
(WebCore::OfflineAudioContext::create):

  • Modules/webaudio/OfflineAudioContext.h:

LayoutTests:

Add layout test coverage and rebaseline a couple of tests now that a console message is logged.

  • webaudio/OfflineAudioContext-bad-buffer-crash-expected.txt:
  • webaudio/OfflineAudioContext/bad-buffer-length-expected.txt: Added.
  • webaudio/OfflineAudioContext/bad-buffer-length.html: Added.
  • webaudio/dom-exceptions-expected.txt:
11:10 AM Changeset in webkit [269631] by jer.noble@apple.com
  • 11 edits
    3 copies
    3 adds in trunk

Add support for AudioConfiguration.spatialRendering
https://bugs.webkit.org/show_bug.cgi?id=218727
<rdar://problem/71213348>

Reviewed by Eric Carlson.

Source/WebCore:

Test: media/mediacapabilities/mock-decodingInfo-spatialRendering.html

Add support for spatialRendring. On Cocoa ports, this will query AVAudioContext for spatial rendering support.

Drive-by fix: The AudioConfiguration.idl marks sampleRate, bitrate, and channels as optional; those need to
be reflected in the C++ struct.

  • Modules/mediacapabilities/AudioConfiguration.idl:
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:

(WebCore::exernalDeviceDisplayNameForPlayer):

  • platform/graphics/cocoa/MediaEngineConfigurationFactoryCocoa.cpp:

(WebCore::createMediaPlayerDecodingConfigurationCocoa):

  • platform/mediacapabilities/AudioConfiguration.h:
  • platform/mediacapabilities/MediaCapabilitiesLogging.cpp:

(WebCore::toJSONObject):

  • platform/mock/MediaEngineConfigurationFactoryMock.cpp:

(WebCore::canDecodeMedia):
(WebCore::canSmoothlyDecodeMedia):
(WebCore::canPowerEfficientlyDecodeMedia):
(WebCore::canSmoothlyEncodeMedia):
(WebCore::canPowerEfficientlyEncodeMedia):

Source/WebCore/PAL:

  • PAL.xcodeproj/project.pbxproj:
  • pal/avfoundation/OutputContext.h: Copied from Source/WebCore/platform/mediacapabilities/AudioConfiguration.h.

(PAL::OutputContext::platformContext const):

  • pal/avfoundation/OutputContext.mm: Added.

(PAL::OutputContext::OutputContext):
(PAL::OutputContext::sharedAudioPresentationOutputContext):
(PAL::OutputContext::supportsMultipleOutputDevices):
(PAL::OutputContext::deviceName):
(PAL::OutputContext::outputDevices const):

  • pal/avfoundation/OutputDevice.h: Copied from Source/WebCore/platform/mediacapabilities/AudioConfiguration.h.

(PAL::OutputDevice::platformDevice const):

  • pal/avfoundation/OutputDevice.mm: Copied from Source/WebCore/platform/mediacapabilities/AudioConfiguration.h.

(PAL::OutputDevice::OutputDevice):
(PAL::OutputDevice::name const):
(PAL::OutputDevice::deviceFeatures const):
(PAL::OutputDevice::supportsSpatialAudio const):

  • pal/spi/cocoa/AVFoundationSPI.h:

LayoutTests:

  • media/mediacapabilities/mock-decodingInfo-spatialRendering-expected.txt: Added.
  • media/mediacapabilities/mock-decodingInfo-spatialRendering.html: Added.
10:51 AM Changeset in webkit [269630] by Chris Dumez
  • 7 edits in trunk/Source

[GPUProcess] Regression(r268632) Garbage is rendered on speakers when using WebAudio
https://bugs.webkit.org/show_bug.cgi?id=218729

Reviewed by Eric Carlson.

Source/WebCore:

  • platform/audio/cocoa/AudioDestinationCocoa.h:
  • platform/mock/MockAudioDestinationCocoa.cpp:

(WebCore::MockAudioDestinationCocoa::start):
(WebCore::MockAudioDestinationCocoa::stop):
(WebCore::MockAudioDestinationCocoa::tick):

  • platform/mock/MockAudioDestinationCocoa.h:

Make AudioDestinationCocoa::m_dispatchToRenderThread private so that subclasses cannot set it.
Update MockAudioDestinationCocoa to use m_dispatchToRenderThread to dispatch to the
render thread when available, instead of unconditionally dispatching to its own WorkQueue and
then expecting AudioDestinationCocoa::render() to render to the actual rendering thread.

Source/WebKit:

RemoteAudioDestinationProxy::requestBuffer() was calling AudioDestinationCocoa::render()
and expecting RemoteAudioDestinationProxy::renderOnRenderingThead() to get called as
a result. It would take care of writing to the CARingBuffer and sending the IPC back
to the GPU process in renderOnRenderingThead(). The issue was that AudioDestinationCocoa
uses a PushPullFIFO internally for buffering. It first fetches available frames from
the FIFO and then only calls renderOnRenderingThead() with the number of frames that
remain to processed (usually 0). As a result, RemoteAudioDestinationProxy::renderOnRenderingThead()
would often store 0 frames instead of 128 (or sometimes a number of frames less than
128), even though the full 128 frames were actually rendered.

To address the issue, stop overriding renderOnRenderingThead() in
RemoteAudioDestinationProxy. Instead, do the writing to the CARingBuffer and the IPC
response in RemoteAudioDestinationProxy::requestBuffer(), directly after calling
AudioDestinationCocoa::render(). After calling AudioDestinationCocoa::render()
we know that |framesToRender| frames have been rendered / added to the buffer.

  • WebProcess/GPU/media/RemoteAudioDestinationProxy.cpp:

(WebKit::RemoteAudioDestinationProxy::requestBuffer):

  • WebProcess/GPU/media/RemoteAudioDestinationProxy.h:
9:28 AM Changeset in webkit [269629] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

[Debug] imported/w3c/web-platform-tests/html/canvas/element/path-objects/2d.path.ellipse.basics.html is asserting
https://bugs.webkit.org/show_bug.cgi?id=218671

Unreviewed test gardening.

7:14 AM Changeset in webkit [269628] by svillar@igalia.com
  • 2 edits
    28 adds in trunk/LayoutTests/imported/w3c

[css-flex] Import image-as-flexitem-* WPT tests
https://bugs.webkit.org/show_bug.cgi?id=218746

Reviewed by Manuel Rego Casasnovas.

Import the image-as-flexitem-size-* tests which are useful to test the handling of replaced elements as
flex items and more in general, flex items with aspect ratios. We're currently failing a bunch of subtests
but since we're passing most of them, I'm uploading them with failed expectations. Follow-up patches
will fix the failing subtests.

  • web-platform-tests/css/css-flexbox/image-as-flexitem-size-001-expected.txt: Added.
  • web-platform-tests/css/css-flexbox/image-as-flexitem-size-001.html: Added.
  • web-platform-tests/css/css-flexbox/image-as-flexitem-size-001v-expected.txt: Added.
  • web-platform-tests/css/css-flexbox/image-as-flexitem-size-001v.html: Added.
  • web-platform-tests/css/css-flexbox/image-as-flexitem-size-002-expected.txt: Added.
  • web-platform-tests/css/css-flexbox/image-as-flexitem-size-002.html: Added.
  • web-platform-tests/css/css-flexbox/image-as-flexitem-size-002v-expected.txt: Added.
  • web-platform-tests/css/css-flexbox/image-as-flexitem-size-002v.html: Added.
  • web-platform-tests/css/css-flexbox/image-as-flexitem-size-003-expected.txt: Added.
  • web-platform-tests/css/css-flexbox/image-as-flexitem-size-003.html: Added.
  • web-platform-tests/css/css-flexbox/image-as-flexitem-size-003v-expected.txt: Added.
  • web-platform-tests/css/css-flexbox/image-as-flexitem-size-003v.html: Added.
  • web-platform-tests/css/css-flexbox/image-as-flexitem-size-004-expected.txt: Added.
  • web-platform-tests/css/css-flexbox/image-as-flexitem-size-004.html: Added.
  • web-platform-tests/css/css-flexbox/image-as-flexitem-size-004v-expected.txt: Added.
  • web-platform-tests/css/css-flexbox/image-as-flexitem-size-004v.html: Added.
  • web-platform-tests/css/css-flexbox/image-as-flexitem-size-005-expected.txt: Added.
  • web-platform-tests/css/css-flexbox/image-as-flexitem-size-005.html: Added.
  • web-platform-tests/css/css-flexbox/image-as-flexitem-size-005v-expected.txt: Added.
  • web-platform-tests/css/css-flexbox/image-as-flexitem-size-005v.html: Added.
  • web-platform-tests/css/css-flexbox/image-as-flexitem-size-006-expected.txt: Added.
  • web-platform-tests/css/css-flexbox/image-as-flexitem-size-006.html: Added.
  • web-platform-tests/css/css-flexbox/image-as-flexitem-size-006v-expected.txt: Added.
  • web-platform-tests/css/css-flexbox/image-as-flexitem-size-006v.html: Added.
  • web-platform-tests/css/css-flexbox/image-as-flexitem-size-007-expected.txt: Added.
  • web-platform-tests/css/css-flexbox/image-as-flexitem-size-007.html: Added.
  • web-platform-tests/css/css-flexbox/image-as-flexitem-size-007v-expected.txt: Added.
  • web-platform-tests/css/css-flexbox/image-as-flexitem-size-007v.html: Added.
  • web-platform-tests/css/css-flexbox/w3c-import.log:
6:59 AM Changeset in webkit [269627] by Antti Koivisto
  • 2 edits in trunk/Source/WebCore

[LFC][Integration] Allow object-fit
https://bugs.webkit.org/show_bug.cgi?id=218740

Reviewed by Zalan Bujtas.

  • layout/integration/LayoutIntegrationCoverage.cpp:

(WebCore::LayoutIntegration::canUseForChild):

6:58 AM Changeset in webkit [269626] by clopez@igalia.com
  • 29 edits
    2 copies
    3 moves
    27 adds
    1 delete in trunk/LayoutTests

[GTK][WPE] Rebaseline tests after r269510, r269598, r269600 and r269612.

Unreviewed GTK/WPE gardening.

  • platform/gtk/editing/selection/simple-line-layout-caret-is-gone-expected.txt: Removed.
  • platform/gtk/fast/dom/Window/window-lookup-precedence-expected.txt:
  • platform/gtk/fast/repaint/focus-ring-repaint-expected.txt:
  • platform/gtk/fast/table/005-expected.txt: Copied from LayoutTests/platform/glib/fast/table/005-expected.txt.
  • platform/gtk/fast/table/unbreakable-images-quirk-expected.txt: Copied from LayoutTests/platform/glib/fast/table/unbreakable-images-quirk-expected.txt.
  • platform/gtk/imported/w3c/web-platform-tests/html/canvas/offscreen/drawing-images-to-the-canvas/2d.drawImage.zerosource-expected.txt: Added.
  • platform/gtk/imported/w3c/web-platform-tests/html/canvas/offscreen/drawing-images-to-the-canvas/2d.drawImage.zerosource.image-expected.txt: Added.
  • platform/gtk/imported/w3c/web-platform-tests/html/canvas/offscreen/drawing-images-to-the-canvas/2d.drawImage.zerosource.worker-expected.txt: Added.
  • platform/gtk/imported/w3c/web-platform-tests/html/semantics/interfaces-expected.txt:
  • platform/gtk/tables/mozilla/bugs/bug2973-expected.txt: Renamed from LayoutTests/platform/glib/tables/mozilla/bugs/bug2973-expected.txt.
  • platform/gtk/tables/mozilla_expected_failures/bugs/bug8499-expected.txt:
  • platform/wpe/css3/filters/effect-brightness-clamping-expected.txt:
  • platform/wpe/css3/filters/effect-brightness-clamping-hw-expected.txt:
  • platform/wpe/css3/filters/effect-brightness-expected.txt:
  • platform/wpe/css3/filters/effect-brightness-hw-expected.txt:
  • platform/wpe/css3/filters/effect-combined-expected.txt:
  • platform/wpe/css3/filters/effect-combined-hw-expected.txt:
  • platform/wpe/css3/filters/effect-contrast-expected.txt:
  • platform/wpe/css3/filters/effect-contrast-hw-expected.txt:
  • platform/wpe/css3/filters/effect-drop-shadow-expected.txt:
  • platform/wpe/css3/filters/effect-drop-shadow-hw-expected.txt:
  • platform/wpe/css3/filters/effect-grayscale-expected.txt:
  • platform/wpe/css3/filters/effect-grayscale-hw-expected.txt:
  • platform/wpe/css3/filters/effect-hue-rotate-expected.txt:
  • platform/wpe/css3/filters/effect-hue-rotate-hw-expected.txt:
  • platform/wpe/css3/filters/effect-invert-expected.txt:
  • platform/wpe/css3/filters/effect-invert-hw-expected.txt:
  • platform/wpe/css3/filters/effect-opacity-expected.txt:
  • platform/wpe/css3/filters/effect-opacity-hw-expected.txt:
  • platform/wpe/css3/filters/effect-saturate-expected.txt:
  • platform/wpe/css3/filters/effect-saturate-hw-expected.txt:
  • platform/wpe/css3/filters/effect-sepia-expected.txt:
  • platform/wpe/css3/filters/effect-sepia-hw-expected.txt:
  • platform/wpe/fast/table/005-expected.txt: Renamed from LayoutTests/platform/glib/fast/table/005-expected.txt.
  • platform/wpe/fast/table/unbreakable-images-quirk-expected.txt: Renamed from LayoutTests/platform/glib/fast/table/unbreakable-images-quirk-expected.txt.
  • platform/wpe/imported/w3c/web-platform-tests/html/canvas/offscreen/drawing-images-to-the-canvas/2d.drawImage.zerosource-expected.txt: Added.
  • platform/wpe/imported/w3c/web-platform-tests/html/canvas/offscreen/drawing-images-to-the-canvas/2d.drawImage.zerosource.image-expected.txt: Added.
  • platform/wpe/imported/w3c/web-platform-tests/html/canvas/offscreen/drawing-images-to-the-canvas/2d.drawImage.zerosource.worker-expected.txt: Added.
  • platform/wpe/imported/w3c/web-platform-tests/html/semantics/document-metadata/the-meta-element/color-scheme/meta-color-scheme-attribute-changes-expected.txt: Added.
  • platform/wpe/imported/w3c/web-platform-tests/html/semantics/document-metadata/the-meta-element/color-scheme/meta-color-scheme-empty-content-value-expected.txt: Added.
  • platform/wpe/imported/w3c/web-platform-tests/html/semantics/document-metadata/the-meta-element/color-scheme/meta-color-scheme-first-valid-applies-expected.txt: Added.
  • platform/wpe/imported/w3c/web-platform-tests/html/semantics/document-metadata/the-meta-element/color-scheme/meta-color-scheme-insert-expected.txt: Added.
  • platform/wpe/imported/w3c/web-platform-tests/html/semantics/document-metadata/the-meta-element/color-scheme/meta-color-scheme-no-content-value-expected.txt: Added.
  • platform/wpe/imported/w3c/web-platform-tests/html/semantics/document-metadata/the-meta-element/color-scheme/meta-color-scheme-presentational-hint-expected.txt: Added.
  • platform/wpe/imported/w3c/web-platform-tests/html/semantics/document-metadata/the-meta-element/color-scheme/meta-color-scheme-remove-expected.txt: Added.
  • platform/wpe/imported/w3c/web-platform-tests/html/semantics/document-metadata/the-meta-element/color-scheme/meta-color-scheme-remove-head-expected.txt: Added.
  • platform/wpe/imported/w3c/web-platform-tests/html/semantics/document-metadata/the-meta-element/color-scheme/meta-color-scheme-single-value-in-body-expected.txt: Added.
  • platform/wpe/imported/w3c/web-platform-tests/html/semantics/document-metadata/the-meta-element/color-scheme/meta-color-scheme-single-value-in-head-expected.txt: Added.
  • platform/wpe/imported/w3c/web-platform-tests/html/semantics/document-metadata/the-meta-element/color-scheme/meta-color-scheme-single-value-in-shadow-tree-expected.txt: Added.
  • platform/wpe/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/selection-pointer-expected.txt: Added.
  • platform/wpe/tables/mozilla/bugs/bug101674-expected.txt:
  • platform/wpe/tables/mozilla/bugs/bug2973-expected.txt: Added.
  • platform/wpe/tables/mozilla_expected_failures/bugs/bug8499-expected.txt:
5:30 AM Changeset in webkit [269625] by clopez@igalia.com
  • 2 edits in trunk/Tools

[GTK] [REGRESSSION(r269390) Several editing/ tests are flaky
https://bugs.webkit.org/show_bug.cgi?id=218607

Reviewed by Adrian Perez de Castro.

After r269390 some of the internal preferences like LiveRangeSelectionEnabled
are not resetted to their default value on WTR between test runs.
So when a test changes some of this properties it may cause failures on
the next tests that will run on the same WTR process.

  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::resetPreferencesToConsistentValues): Add back the call to WKPreferencesResetAllInternalDebugFeatures() that was removed on r269390.

3:44 AM Changeset in webkit [269624] by graouts@webkit.org
  • 6 edits in trunk

align-self should be a discrete animatable property
https://bugs.webkit.org/show_bug.cgi?id=218742

Reviewed by Antti Koivisto.

LayoutTests/imported/w3c:

  • 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:

  • animation/CSSPropertyAnimation.cpp:

(WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap):

3:35 AM Changeset in webkit [269623] by graouts@webkit.org
  • 9 edits in trunk

[Web Animations] KeyframeEffect.pseudoElement does not return a valid string when targeting ::marker or ::first-letter
https://bugs.webkit.org/show_bug.cgi?id=218741
<rdar://problem/71229846>

Reviewed by Dean Jackson.

LayoutTests/imported/w3c:

Mark two new PASS results showing that KeyframeEffect.pseudoElement shows the correct value
when targeting ::marker or ::first-letter.

  • web-platform-tests/web-animations/interfaces/Animatable/animate-expected.txt:

Source/WebCore:

We used to use PseudoElement::pseudoElementNameForEvents() to go from PseudoId to a String, but PseudoElement
only knows about ::before and ::after and not about valid pseudo-elements. We remove that method and create an
equivalent in WebAnimationUtilities that knows about all public pseudo-elements.

  • animation/DeclarativeAnimation.cpp:

(WebCore::DeclarativeAnimation::enqueueDOMEvent):

  • animation/KeyframeEffect.cpp:

(WebCore::KeyframeEffect::pseudoElement const):

  • animation/WebAnimationUtilities.cpp:

(WebCore::pseudoIdAsString):

  • animation/WebAnimationUtilities.h:
  • dom/PseudoElement.cpp:

(WebCore::PseudoElement::pseudoElementNameForEvents): Deleted.

  • dom/PseudoElement.h:
1:28 AM Changeset in webkit [269622] by commit-queue@webkit.org
  • 3 edits
    4 adds in trunk

Scroll-snap on the root aligns to the body margin edge, not the viewport edge
https://bugs.webkit.org/show_bug.cgi?id=210476
<rdar://problem/61755103>

Patch by Martin Robinson <mrobinson@igalia.com> on 2020-11-10
Reviewed by Simon Fraser.

Source/WebCore:

When passing the frame viewport to updateSnapOffsetsForScrollableArea, be sure to put it
into the coordinate system of the root element padding box. This means offsetting it by the
margins of the root element.

Tests: tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-mainframe-horizontal-with-margin.html

tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-mainframe-vertical-with-margin.html

  • page/FrameView.cpp:

(WebCore::FrameView::updateSnapOffsets): Offset viewport by top and left margins of the
root element.

LayoutTests:

Added tests for new behavior.

  • tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-mainframe-horizontal-with-margin-expected.txt: Added.
  • tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-mainframe-horizontal-with-margin.html: Added.
  • tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-mainframe-vertical-with-margin-expected.txt: Added.
  • tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-mainframe-vertical-with-margin.html: Added.
1:05 AM Changeset in webkit [269621] by Carlos Garcia Campos
  • 3 edits in trunk/Source/WebKit

[GTK4] WebView is flipped
https://bugs.webkit.org/show_bug.cgi?id=218354

Reviewed by Adrian Perez de Castro.

Stop painting y-flipped textures when buildig with GTK4.

  • UIProcess/gtk/AcceleratedBackingStoreWayland.cpp:

(WebKit::AcceleratedBackingStoreWayland::snapshot):

  • WebProcess/WebPage/libwpe/AcceleratedSurfaceLibWPE.h:
1:03 AM Changeset in webkit [269620] by Carlos Garcia Campos
  • 4 edits in trunk/Source/WebKit

[GTK] Crash in WebKit::DropTarget::drop
https://bugs.webkit.org/show_bug.cgi?id=217482

Reviewed by Michael Catanzaro.

If we don't have selection data when drop is called, just return early to let leave continue. Also change
accept() to receive the drop context and position to be set after leaving any previous operation.

  • UIProcess/API/gtk/DropTarget.h:
  • UIProcess/API/gtk/DropTargetGtk3.cpp:

(WebKit::DropTarget::DropTarget):
(WebKit::DropTarget::accept):
(WebKit::DropTarget::drop):

  • UIProcess/API/gtk/DropTargetGtk4.cpp:

(WebKit::DropTarget::DropTarget):
(WebKit::DropTarget::accept):

12:59 AM Changeset in webkit [269619] by Carlos Garcia Campos
  • 2 edits in trunk/Tools

[GTK] MiniBrowser: add buttons to insert ordered/unordered lists to editor toolbar
https://bugs.webkit.org/show_bug.cgi?id=218648

Reviewed by Carlos Alberto Lopez Perez.

  • MiniBrowser/gtk/BrowserWindow.c:
12:56 AM Changeset in webkit [269618] by Carlos Garcia Campos
  • 4 edits in trunk/Source/WebKit

[GTK][WPE] WEBKIT_PLUGIN_ERROR_WILL_HANDLE_LOAD returned when plugins are disabled
https://bugs.webkit.org/show_bug.cgi?id=216123

Reviewed by Adrian Perez de Castro.

Undeprecate webkit_plugin_error_quark and WEBKIT_PLUGIN_ERROR_WILL_HANDLE_LOAD, and update documentation.

  • UIProcess/API/glib/WebKitWebView.cpp:

(webkitWebViewLoadFail):

  • UIProcess/API/gtk/WebKitError.h:
  • UIProcess/API/wpe/WebKitError.h:
12:07 AM Changeset in webkit [269617] by Wenson Hsieh
  • 2 edits in trunk/Source/WebKit

Fix crashes when mapping shared display list item data into display lists in the GPU process
https://bugs.webkit.org/show_bug.cgi?id=218739

Reviewed by Tim Horton.

I added a "stop-gap" mechanism in r269525 to allow the GPU process to handle newly refactored display list
items by encoding display list items directly into shared memory buffers in the web process and reading them
back in the GPU process, using standard IPC messages only, and also without reusing any shared memory buffers.

However, I introduced a bug in this "stop-gap" mechanism when I tried to clean up some GPU-process-side logic
for unregistering these shared memory buffers in the GPU process, by taking shared memory buffers out of the
map in the GPU process without ensuring that they're kept alive over the course of applying the display list.

This code is going away soon anyways (see webkit.org/b/218426), but in the meantime, we should at least ensure
that this temporary shared memory mechanism doesn't cause huge waves of layout test failures.

  • GPUProcess/graphics/RemoteRenderingBackend.cpp:

(WebKit::RemoteRenderingBackend::applyDisplayList):

Nov 9, 2020:

11:42 PM Changeset in webkit [269616] by timothy_horton@apple.com
  • 4 edits in trunk/Source/WebCore

Exceptions under PlatformCALayerCocoa::drawLayerContents with DisplayList-backed layers
https://bugs.webkit.org/show_bug.cgi?id=218731

Reviewed by Simon Fraser.

No new tests; all tests will cover this once GPU Process for DOM rendering lands.

  • platform/graphics/ca/cocoa/PlatformCALayerCocoa.mm:

(WebCore::PlatformCALayer::drawLayerContents):
Refactor this function to use three state savers, all released by scope instead of explicitly.
This fixes the bug in the title, which was that we would call +restoreGraphicsState on NSGraphicsContext
regardless of whether we have a platform context or not (while we'd only save if we /did/ have one).

  • platform/graphics/ios/FontAntialiasingStateSaver.h:

(WebCore::FontAntialiasingStateSaver::~FontAntialiasingStateSaver):
(WebCore::FontAntialiasingStateSaver::restore): Deleted.
Make FontAntialiasingStateSaver behave like all of the other -StateSavers, performing "restore"
in its destructor.

  • platform/ios/LegacyTileCache.mm:

(WebCore::LegacyTileCache::drawWindowContent):
We don't have to restore explicitly anymore.

8:58 PM Changeset in webkit [269615] by Lauro Moura
  • 2 edits in trunk/WebDriverTests

[WebDriver] Gardening some WPE failures

Unreviewed test gardening.

7:14 PM Changeset in webkit [269614] by Said Abou-Hallawa
  • 134 edits
    1 copy
    1 move in trunk/Source

[GPU Process] Control the life cycle of the platform image by a new class named NativeImage
https://bugs.webkit.org/show_bug.cgi?id=218427

Reviewed by Simon Fraser.

Source/WebCore:

This adds a new level of indirection around NativeImagePtr which is now
renamed PlatformImagePtr. The goal is to control the life cycle of the
PlatfromImagePtr in WebKit regardless if it is retained outside WebKit
or not. In future patches, deleting the NativeImage will be observed by
RemoteResoureCache such that it will be removed from the GPUP cache when
the object is destroyed in WebP.

The new structural hierarchy of the bitmap image is the following:

  • CachedImage (responsible of receiving the encoded image data)
    • BitmapImage (responsible of decoding the image data)
      • NativeImage (represents an image frame and controls the life cycle of PlatformImagePtr in WebKit)
        • PlatformImagePtr (represents a platform image and it is the result of ImageDecoder)
  • Headers.cmake:
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • html/HTMLVideoElement.cpp:

(WebCore::HTMLVideoElement::nativeImageForCurrentTime):

  • html/HTMLVideoElement.h:
  • html/canvas/CanvasRenderingContext2DBase.cpp:

(WebCore::CanvasRenderingContext2DBase::drawImage):

  • page/mac/TextIndicatorWindow.mm:

(-[WebTextIndicatorView initWithFrame:textIndicator:margin:offset:]):
(createContentCrossfadeAnimation):

  • platform/graphics/BitmapImage.cpp:

(WebCore::BitmapImage::BitmapImage):
(WebCore::BitmapImage::frameImageAtIndexCacheIfNeeded):
(WebCore::BitmapImage::nativeImage):
(WebCore::BitmapImage::nativeImageForCurrentFrame):
(WebCore::BitmapImage::preTransformedNativeImageForCurrentFrame):
(WebCore::BitmapImage::nativeImageOfSize):
(WebCore::BitmapImage::framesNativeImages):
(WebCore::drawNativeImage):
(WebCore::BitmapImage::draw):

  • platform/graphics/BitmapImage.h:
  • platform/graphics/ConcreteImageBuffer.h:
  • platform/graphics/GraphicsContext.cpp:

(WebCore::GraphicsContext::drawNativeImage):

  • platform/graphics/GraphicsContext.h:

(WebCore::GraphicsContext::drawNativeImage):
(WebCore::GraphicsContext::drawPlatformImage):

  • platform/graphics/GraphicsContextGLImageExtractor.h:
  • platform/graphics/GraphicsContextImpl.h:
  • platform/graphics/Icon.h:
  • platform/graphics/Image.h:

(WebCore::Image::nativeImage):
(WebCore::Image::nativeImageForCurrentFrame):
(WebCore::Image::preTransformedNativeImageForCurrentFrame):
(WebCore::Image::nativeImageOfSize):

  • platform/graphics/ImageBackingStore.h:
  • platform/graphics/ImageBuffer.cpp:

(WebCore::ImageBuffer::sinkIntoNativeImage):

  • platform/graphics/ImageBuffer.h:
  • platform/graphics/ImageBufferBackend.cpp:

(WebCore::ImageBufferBackend::sinkIntoNativeImage):

  • platform/graphics/ImageBufferBackend.h:
  • platform/graphics/ImageDecoder.h:
  • platform/graphics/ImageFrame.cpp:

(WebCore::ImageFrame::clearImage):
(WebCore::ImageFrame::singlePixelSolidColor const):

  • platform/graphics/ImageFrame.h:

(WebCore::ImageFrame::nativeImage const):

  • platform/graphics/ImageSource.cpp:

(WebCore::ImageSource::ImageSource):
(WebCore::ImageSource::setNativeImage):
(WebCore::ImageSource::cacheMetadataAtIndex):
(WebCore::ImageSource::cachePlatformImageAtIndex):
(WebCore::ImageSource::cachePlatformImageAtIndexAsync):
(WebCore::ImageSource::startAsyncDecodingQueue):
(WebCore::ImageSource::frameAtIndexCacheIfNeeded):
(WebCore::ImageSource::createFrameImageAtIndex):
(WebCore::ImageSource::frameImageAtIndex):
(WebCore::ImageSource::frameImageAtIndexCacheIfNeeded):
(WebCore::ImageSource::cacheNativeImageAtIndex): Deleted.
(WebCore::ImageSource::cacheNativeImageAtIndexAsync): Deleted.

  • platform/graphics/ImageSource.h:

(WebCore::ImageSource::create):

  • platform/graphics/MediaPlayer.cpp:

(WebCore::MediaPlayer::nativeImageForCurrentTime):

  • platform/graphics/MediaPlayer.h:
  • platform/graphics/MediaPlayerPrivate.h:

(WebCore::MediaPlayerPrivateInterface::nativeImageForCurrentTime):

  • platform/graphics/NativeImage.cpp: Copied from Source/WebCore/platform/graphics/NativeImagePtr.h.

(WebCore::NativeImage::create):
(WebCore::NativeImage::NativeImage):

  • platform/graphics/NativeImage.h:

(WebCore::NativeImage::platformImage const):

  • platform/graphics/PlatformImage.h: Renamed from Source/WebCore/platform/graphics/NativeImagePtr.h.
  • platform/graphics/VideoLayerManager.h:
  • platform/graphics/avfoundation/objc/ImageDecoderAVFObjC.h:
  • platform/graphics/avfoundation/objc/ImageDecoderAVFObjC.mm:

(WebCore::ImageDecoderAVFObjC::createFrameImageAtIndex):

  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:

(WebCore::MediaPlayerPrivateAVFoundationObjC::updateVideoFullscreenInlineImage):
(WebCore::MediaPlayerPrivateAVFoundationObjC::setVideoFullscreenLayer):
(WebCore::MediaPlayerPrivateAVFoundationObjC::updateLastImage):
(WebCore::MediaPlayerPrivateAVFoundationObjC::paintWithVideoOutput):
(WebCore::MediaPlayerPrivateAVFoundationObjC::nativeImageForCurrentTime):

  • platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.h:
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:

(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::nativeImageForCurrentTime):
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::updateLastImage):
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::paintCurrentFrameInContext):
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::setVideoFullscreenLayer):

  • platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.h:
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.mm:

(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::setVideoFullscreenLayer):
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::updateCurrentFrameImage):
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::paintCurrentFrameInContext):

  • platform/graphics/avfoundation/objc/VideoLayerManagerObjC.h:
  • platform/graphics/avfoundation/objc/VideoLayerManagerObjC.mm:

(WebCore::VideoLayerManagerObjC::setVideoFullscreenLayer):
(WebCore::VideoLayerManagerObjC::updateVideoFullscreenInlineImage):

  • platform/graphics/ca/GraphicsLayerCA.cpp:

(WebCore::GraphicsLayerCA::updateContentsImage):

  • platform/graphics/ca/GraphicsLayerCA.h:
  • platform/graphics/cairo/CairoOperations.cpp:

(WebCore::Cairo::drawShadowLayerBuffer):
(WebCore::Cairo::drawShadowImage):
(WebCore::Cairo::fillShadowBuffer):
(WebCore::Cairo::drawPlatformImage):
(WebCore::Cairo::drawNativeImage): Deleted.

  • platform/graphics/cairo/CairoOperations.h:
  • platform/graphics/cairo/GraphicsContextCairo.cpp:

(WebCore::GraphicsContext::drawPlatformImage):
(WebCore::GraphicsContext::clipToImageBuffer):
(WebCore::GraphicsContext::drawPattern):
(WebCore::GraphicsContext::platformDrawNativeImage): Deleted.

  • platform/graphics/cairo/GraphicsContextGLCairo.cpp:

(WebCore::GraphicsContextGLImageExtractor::extractImage):

  • platform/graphics/cairo/GraphicsContextImplCairo.cpp:

(WebCore::GraphicsContextImplCairo::drawImageBuffer):
(WebCore::GraphicsContextImplCairo::drawNativeImage):
(WebCore::GraphicsContextImplCairo::drawPattern):
(WebCore::GraphicsContextImplCairo::clipToImageBuffer):

  • platform/graphics/cairo/GraphicsContextImplCairo.h:
  • platform/graphics/cairo/ImageBufferCairoBackend.cpp:

(WebCore::ImageBufferCairoBackend::draw):
(WebCore::ImageBufferCairoBackend::drawPattern):

  • platform/graphics/cairo/ImageBufferCairoSurfaceBackend.cpp:

(WebCore::ImageBufferCairoSurfaceBackend::copyNativeImage const):
(WebCore::ImageBufferCairoSurfaceBackend::cairoSurfaceCoerceToImage const):
(WebCore::ImageBufferCairoSurfaceBackend::toBGRAData const):

  • platform/graphics/cairo/ImageBufferCairoSurfaceBackend.h:
  • platform/graphics/cairo/NativeImageCairo.cpp:

(WebCore::NativeImage::size const):
(WebCore::NativeImage::hasAlpha const):
(WebCore::NativeImage::singlePixelSolidColor const):
(WebCore::NativeImage::clearSubimages):
(WebCore::nativeImageSize): Deleted.
(WebCore::nativeImageHasAlpha): Deleted.
(WebCore::nativeImageSinglePixelSolidColor): Deleted.
(WebCore::drawNativeImage): Deleted.
(WebCore::clearNativeImageSubimages): Deleted.

  • platform/graphics/cairo/PatternCairo.cpp:

(WebCore::Pattern::createPlatformPattern const):

  • platform/graphics/cg/GraphicsContextCG.cpp:

(WebCore::GraphicsContext::drawPlatformImage):
(WebCore::GraphicsContext::drawPattern):
(WebCore::GraphicsContext::clipToImageBuffer):
(WebCore::GraphicsContext::platformDrawNativeImage): Deleted.

  • platform/graphics/cg/GraphicsContextGLCG.cpp:

(WebCore::GraphicsContextGLImageExtractor::extractImage):
(WebCore::GraphicsContextGLOpenGL::paintToCanvas):

  • platform/graphics/cg/ImageBufferCGBackend.cpp:

(WebCore::createBitmapImageAfterScalingIfNeeded):
(WebCore::ImageBufferCGBackend::copyImage const):
(WebCore::ImageBufferCGBackend::draw):
(WebCore::ImageBufferCGBackend::toCFData const):

  • platform/graphics/cg/ImageBufferCGBitmapBackend.cpp:

(WebCore::ImageBufferCGBitmapBackend::copyNativeImage const):

  • platform/graphics/cg/ImageBufferCGBitmapBackend.h:
  • platform/graphics/cg/ImageBufferIOSurfaceBackend.cpp:

(WebCore::ImageBufferIOSurfaceBackend::copyNativeImage const):
(WebCore::ImageBufferIOSurfaceBackend::sinkIntoNativeImage):
(WebCore::ImageBufferIOSurfaceBackend::drawConsuming):

  • platform/graphics/cg/ImageBufferIOSurfaceBackend.h:
  • platform/graphics/cg/ImageDecoderCG.cpp:

(WebCore::ImageDecoderCG::createFrameImageAtIndex):

  • platform/graphics/cg/ImageDecoderCG.h:
  • platform/graphics/cg/NativeImageCG.cpp:

(WebCore::NativeImage::size const):
(WebCore::NativeImage::hasAlpha const):
(WebCore::NativeImage::singlePixelSolidColor const):
(WebCore::NativeImage::clearSubimages):
(WebCore::nativeImageSize): Deleted.
(WebCore::nativeImageHasAlpha): Deleted.
(WebCore::nativeImageSinglePixelSolidColor): Deleted.
(WebCore::clearNativeImageSubimages): Deleted.

  • platform/graphics/cg/PatternCG.cpp:

(WebCore::Pattern::createPlatformPattern const):

  • platform/graphics/coreimage/FilterEffectRendererCoreImage.mm:

(WebCore::FilterEffectRendererCoreImage::imageForSourceGraphic):

  • platform/graphics/displaylists/DisplayListItems.cpp:

(WebCore::DisplayList::DrawNativeImage::DrawNativeImage):

  • platform/graphics/displaylists/DisplayListItems.h:

(WebCore::DisplayList::DrawNativeImage::decode):

  • platform/graphics/displaylists/DisplayListRecorder.cpp:

(WebCore::DisplayList::Recorder::drawNativeImage):

  • platform/graphics/displaylists/DisplayListRecorder.h:
  • platform/graphics/gstreamer/ImageDecoderGStreamer.cpp:

(WebCore::ImageDecoderGStreamer::createFrameImageAtIndex):

  • platform/graphics/gstreamer/ImageDecoderGStreamer.h:
  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:

(WebCore::MediaPlayerPrivateGStreamer::nativeImageForCurrentTime):

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:
  • platform/graphics/gtk/ImageGtk.cpp:

(WebCore::BitmapImage::getGdkPixbuf):
(WebCore::BitmapImage::gdkTexture):

  • platform/graphics/ios/IconIOS.mm:

(WebCore::Icon::Icon):
(WebCore::Icon::createIconForImage):
(WebCore::Icon::paint):

  • platform/graphics/mac/ImageMac.mm:

(WebCore::BitmapImage::tiffRepresentation):
(WebCore::BitmapImage::snapshotNSImage):

  • platform/graphics/nicosia/NicosiaImageBufferPipe.cpp:

(Nicosia::NicosiaImageBufferPipeSource::handle):

  • platform/graphics/nicosia/cairo/NicosiaCairoOperationRecorder.cpp:

(Nicosia::CairoOperationRecorder::drawNativeImage):
(Nicosia::CairoOperationRecorder::drawPattern):
(Nicosia::CairoOperationRecorder::clipToImageBuffer):

  • platform/graphics/nicosia/cairo/NicosiaCairoOperationRecorder.h:
  • platform/graphics/texmap/BitmapTextureGL.cpp:

(WebCore::BitmapTextureGL::updateContents):

  • platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:

(WebCore::GraphicsLayerTextureMapper::GraphicsLayerTextureMapper):
(WebCore::GraphicsLayerTextureMapper::setContentsToImage):

  • platform/graphics/texmap/GraphicsLayerTextureMapper.h:
  • platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp:

(WebCore::CoordinatedGraphicsLayer::CoordinatedGraphicsLayer):
(WebCore::CoordinatedGraphicsLayer::setContentsToImage):
(WebCore::CoordinatedGraphicsLayer::flushCompositingStateForThisLayerOnly):

  • platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.h:
  • platform/graphics/win/Direct2DOperations.cpp:

(WebCore::Direct2D::drawPlatformImage):
(WebCore::Direct2D::drawNativeImage): Deleted.

  • platform/graphics/win/Direct2DOperations.h:
  • platform/graphics/win/GraphicsContextDirect2D.cpp:

(WebCore::GraphicsContext::drawPlatformImage):
(WebCore::GraphicsContext::platformDrawNativeImage): Deleted.

  • platform/graphics/win/GraphicsContextImplDirect2D.cpp:

(WebCore::GraphicsContextImplDirect2D::drawNativeImage):

  • platform/graphics/win/GraphicsContextImplDirect2D.h:
  • platform/graphics/win/ImageBufferDirect2DBackend.cpp:

(WebCore::ImageBufferDirect2DBackend::create):
(WebCore::ImageBufferDirect2DBackend::ImageBufferDirect2DBackend):
(WebCore::ImageBufferDirect2DBackend::copyNativeImage const):
(WebCore::createCroppedImageIfNecessary):
(WebCore::ImageBufferDirect2DBackend::copyImage const):
(WebCore::ImageBufferDirect2DBackend::sinkIntoImage):
(WebCore::ImageBufferDirect2DBackend::compatibleBitmap):

  • platform/graphics/win/ImageBufferDirect2DBackend.h:
  • platform/graphics/win/ImageCGWin.cpp:

(WebCore::BitmapImage::create):
(WebCore::BitmapImage::drawFrameMatchingSourceSize):

  • platform/graphics/win/ImageCairoWin.cpp:

(WebCore::BitmapImage::drawFrameMatchingSourceSize):

  • platform/graphics/win/ImageDecoderDirect2D.cpp:

(WebCore::ImageDecoderDirect2D::createFrameImageAtIndex):

  • platform/graphics/win/ImageDecoderDirect2D.h:
  • platform/graphics/win/NativeImageDirect2D.cpp:

(WebCore::NativeImage::size const):
(WebCore::NativeImage::hasAlpha const):
(WebCore::NativeImage::singlePixelSolidColor const):
(WebCore::NativeImage::clearSubimages):
(WebCore::nativeImageSize): Deleted.
(WebCore::nativeImageHasAlpha): Deleted.
(WebCore::nativeImageSinglePixelSolidColor): Deleted.
(WebCore::drawNativeImage): Deleted.
(WebCore::clearNativeImageSubimages): Deleted.

  • platform/gtk/CursorGtk.cpp:

(WebCore::createCustomCursor):

  • platform/gtk/DragImageGtk.cpp:

(WebCore::createDragImageFromImage):

  • platform/image-decoders/ScalableImageDecoder.cpp:

(WebCore::ScalableImageDecoder::createFrameImageAtIndex):

  • platform/image-decoders/ScalableImageDecoder.h:
  • platform/image-decoders/cairo/ImageBackingStoreCairo.cpp:

(WebCore::ImageBackingStore::image const):

  • platform/mediastream/mac/DisplayCaptureSourceCocoa.cpp:

(WebCore::DisplayCaptureSourceCocoa::emitFrame):

  • platform/mediastream/mac/DisplayCaptureSourceCocoa.h:
  • platform/mediastream/mac/MockRealtimeVideoSourceMac.mm:

(WebCore::MockRealtimeVideoSourceMac::updateSampleBuffer):

  • platform/win/DragImageCGWin.cpp:

(WebCore::createDragImageFromImage):

  • platform/win/DragImageCairoWin.cpp:

(WebCore::createDragImageFromImage):

  • rendering/RenderThemeIOS.mm:

(WebCore::RenderThemeIOS::paintSystemPreviewBadge):

  • svg/graphics/SVGImage.cpp:

(WebCore::SVGImage::nativeImageForCurrentFrame):
(WebCore::SVGImage::nativeImage):

  • svg/graphics/SVGImage.h:
  • svg/graphics/SVGImageForContainer.cpp:

(WebCore::SVGImageForContainer::nativeImageForCurrentFrame):

  • svg/graphics/SVGImageForContainer.h:

Source/WebKit:

  • Scripts/webkit/messages.py:
  • Shared/API/c/cg/WKImageCG.cpp:

(WKImageCreateFromCGImage):

  • Shared/WebCoreArgumentCoders.cpp:

(IPC::ArgumentCoder<Ref<NativeImage>>::encode):
(IPC::ArgumentCoder<Ref<NativeImage>>::decode):
(IPC::encodeNativeImage): Deleted.
(IPC::decodeNativeImage): Deleted.
(IPC::encodeOptionalNativeImage): Deleted.
(IPC::decodeOptionalNativeImage): Deleted.
(IPC::ArgumentCoder<NativeImagePtr>::encode): Deleted.
(IPC::ArgumentCoder<NativeImagePtr>::decode): Deleted.

  • Shared/WebCoreArgumentCoders.h:
  • Shared/cg/ShareableBitmapCG.cpp:

(WebKit::ShareableBitmap::createImage):

  • Shared/win/ShareableBitmapDirect2D.cpp:

(WebKit::ShareableBitmap::paint):

  • UIProcess/API/glib/IconDatabase.cpp:

(WebKit::IconDatabase::loadIconForPageURL):
(WebKit::IconDatabase::setIconForPageURL):

  • UIProcess/API/glib/IconDatabase.h:
  • UIProcess/ios/DragDropInteractionState.mm:

(WebKit::uiImageForImage):

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView _deliverDelayedDropPreviewIfPossible:]):
(uiImageForImage):
(-[WKContentView _handleDropByInsertingImagePlaceholders:session:]):
(-[WKContentView _presentationSnapshotForPreviewItemController:]):

  • WebProcess/GPU/graphics/ImageBufferShareableBitmapBackend.cpp:

(WebKit::ImageBufferShareableBitmapBackend::copyNativeImage const):

  • WebProcess/GPU/graphics/ImageBufferShareableBitmapBackend.h:
  • WebProcess/GPU/media/MediaPlayerPrivateRemote.cpp:

(WebKit::MediaPlayerPrivateRemote::nativeImageForCurrentTime):

  • WebProcess/GPU/media/MediaPlayerPrivateRemote.h:
  • WebProcess/Plugins/PluginView.cpp:

(WebKit::isAlmostSolidColor):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::didChooseFilesForOpenPanelWithDisplayStringAndIcon):

Source/WebKitLegacy/mac:

  • DOM/DOM.mm:

(-[DOMNode getPreviewSnapshotImage:andRects:]):

  • Misc/WebCache.mm:

(+[WebCache imageForURL:]):

  • WebView/WebView.mm:

(-[WebUITextIndicatorData initWithImage:textIndicatorData:scale:]):

5:25 PM Changeset in webkit [269613] by Alan Coon
  • 8 edits in branches/safari-610.3.7.1-branch/Source

Versioning.

WebKit-7610.3.7.1.3

4:29 PM Changeset in webkit [269612] by Chris Dumez
  • 70 edits
    78 deletes in trunk

Unexpose obsolete HTMLAppletElement interface
https://bugs.webkit.org/show_bug.cgi?id=218677

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Rebaseline WPT tests now that more checks are passing.

  • web-platform-tests/dom/nodes/getElementsByClassName-30-expected.txt:
  • web-platform-tests/html/dom/documents/dom-tree-accessors/nameditem-03-expected.txt:
  • web-platform-tests/html/dom/historical-expected.txt:
  • web-platform-tests/html/semantics/interfaces-expected.txt:

Source/WebCore:

Drop support for HTMLAppletElement. This feature is obsolete and has been removed from
the HTML specification. The <applet> element was removed in Gecko 56 and Chrome 47
already.

No new tests, rebaselined existing tests.

  • CMakeLists.txt:
  • DerivedSources-input.xcfilelist:
  • DerivedSources-output.xcfilelist:
  • DerivedSources.make:
  • Headers.cmake:
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/JSPluginElementFunctions.cpp:
  • bindings/js/JSPluginElementFunctions.h:
  • html/CachedHTMLCollection.h:

(WebCore::nameShouldBeVisibleInDocumentAll):

  • html/GenericCachedHTMLCollection.cpp:

(WebCore::GenericCachedHTMLCollection<traversalType>::elementMatches const):

  • html/HTMLAppletElement.cpp: Removed.
  • html/HTMLAppletElement.h: Removed.
  • html/HTMLAppletElement.idl: Removed.
  • html/HTMLNameCollection.cpp:

(WebCore::WindowNameCollection::elementMatchesIfNameAttributeMatch):
(WebCore::DocumentNameCollection::elementMatchesIfIdAttributeMatch):
(WebCore::DocumentNameCollection::elementMatchesIfNameAttributeMatch):

  • html/HTMLPlugInImageElement.h:
  • html/HTMLTagNames.in:
  • loader/EmptyClients.cpp:
  • loader/EmptyFrameLoaderClient.h:
  • loader/FrameLoaderClient.h:
  • loader/SubframeLoader.cpp:
  • loader/SubframeLoader.h:
  • rendering/RenderEmbeddedObject.cpp:
  • rendering/RenderEmbeddedObject.h:

Source/WebKit:

  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLAppletElement.cpp:

(webkit_dom_html_applet_element_dispatch_event):
(webkit_dom_html_applet_element_add_event_listener):
(webkit_dom_html_applet_element_remove_event_listener):
(webkit_dom_html_applet_element_get_align):
(webkit_dom_html_applet_element_set_align):
(webkit_dom_html_applet_element_get_alt):
(webkit_dom_html_applet_element_set_alt):
(webkit_dom_html_applet_element_get_archive):
(webkit_dom_html_applet_element_set_archive):
(webkit_dom_html_applet_element_get_code):
(webkit_dom_html_applet_element_set_code):
(webkit_dom_html_applet_element_get_code_base):
(webkit_dom_html_applet_element_set_code_base):
(webkit_dom_html_applet_element_get_height):
(webkit_dom_html_applet_element_set_height):
(webkit_dom_html_applet_element_get_hspace):
(webkit_dom_html_applet_element_set_hspace):
(webkit_dom_html_applet_element_get_name):
(webkit_dom_html_applet_element_set_name):
(webkit_dom_html_applet_element_get_object):
(webkit_dom_html_applet_element_set_object):
(webkit_dom_html_applet_element_get_vspace):
(webkit_dom_html_applet_element_set_vspace):
(webkit_dom_html_applet_element_get_width):
(webkit_dom_html_applet_element_set_width):

  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLAppletElementPrivate.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLPrivate.cpp:
  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
  • WebProcess/WebCoreSupport/WebFrameLoaderClient.h:

Source/WebKitLegacy/mac:

  • DOM/DOMHTMLAppletElement.mm:

(-[DOMHTMLAppletElement align]):
(-[DOMHTMLAppletElement setAlign:]):
(-[DOMHTMLAppletElement alt]):
(-[DOMHTMLAppletElement setAlt:]):
(-[DOMHTMLAppletElement archive]):
(-[DOMHTMLAppletElement setArchive:]):
(-[DOMHTMLAppletElement code]):
(-[DOMHTMLAppletElement setCode:]):
(-[DOMHTMLAppletElement codeBase]):
(-[DOMHTMLAppletElement setCodeBase:]):
(-[DOMHTMLAppletElement height]):
(-[DOMHTMLAppletElement setHeight:]):
(-[DOMHTMLAppletElement hspace]):
(-[DOMHTMLAppletElement setHspace:]):
(-[DOMHTMLAppletElement name]):
(-[DOMHTMLAppletElement setName:]):
(-[DOMHTMLAppletElement object]):
(-[DOMHTMLAppletElement setObject:]):
(-[DOMHTMLAppletElement vspace]):
(-[DOMHTMLAppletElement setVspace:]):
(-[DOMHTMLAppletElement width]):
(-[DOMHTMLAppletElement setWidth:]):

  • WebCoreSupport/WebFrameLoaderClient.h:
  • WebCoreSupport/WebFrameLoaderClient.mm:

(WebFrameLoaderClient::redirectDataToPlugin):

Source/WebKitLegacy/win:

  • WebCoreSupport/WebFrameLoaderClient.cpp:
  • WebCoreSupport/WebFrameLoaderClient.h:
  • WebFrame.cpp:

LayoutTests:

  • dom/html/level2/html/HTMLAppletElement01-expected.txt: Removed.
  • dom/html/level2/html/HTMLAppletElement01.html: Removed.
  • dom/html/level2/html/HTMLAppletElement01.js: Removed.
  • dom/html/level2/html/HTMLAppletElement02-expected.txt: Removed.
  • dom/html/level2/html/HTMLAppletElement02.html: Removed.
  • dom/html/level2/html/HTMLAppletElement02.js: Removed.
  • dom/html/level2/html/HTMLAppletElement03-expected.txt: Removed.
  • dom/html/level2/html/HTMLAppletElement03.html: Removed.
  • dom/html/level2/html/HTMLAppletElement03.js: Removed.
  • dom/html/level2/html/HTMLAppletElement04-expected.txt: Removed.
  • dom/html/level2/html/HTMLAppletElement04.html: Removed.
  • dom/html/level2/html/HTMLAppletElement04.js: Removed.
  • dom/html/level2/html/HTMLAppletElement06-expected.txt: Removed.
  • dom/html/level2/html/HTMLAppletElement06.html: Removed.
  • dom/html/level2/html/HTMLAppletElement06.js: Removed.
  • dom/html/level2/html/HTMLAppletElement07-expected.txt: Removed.
  • dom/html/level2/html/HTMLAppletElement07.html: Removed.
  • dom/html/level2/html/HTMLAppletElement07.js: Removed.
  • dom/html/level2/html/HTMLAppletElement08-expected.txt: Removed.
  • dom/html/level2/html/HTMLAppletElement08.html: Removed.
  • dom/html/level2/html/HTMLAppletElement08.js: Removed.
  • dom/html/level2/html/HTMLAppletElement09-expected.txt: Removed.
  • dom/html/level2/html/HTMLAppletElement09.html: Removed.
  • dom/html/level2/html/HTMLAppletElement09.js: Removed.
  • dom/html/level2/html/HTMLAppletElement10-expected.txt: Removed.
  • dom/html/level2/html/HTMLAppletElement10.html: Removed.
  • dom/html/level2/html/HTMLAppletElement10.js: Removed.
  • dom/html/level2/html/HTMLDocument08.html: Removed.
  • dom/xhtml/level2/html/HTMLAppletElement01-expected.txt: Removed.
  • dom/xhtml/level2/html/HTMLAppletElement01.js: Removed.
  • dom/xhtml/level2/html/HTMLAppletElement01.xhtml: Removed.
  • dom/xhtml/level2/html/HTMLAppletElement02-expected.txt: Removed.
  • dom/xhtml/level2/html/HTMLAppletElement02.js: Removed.
  • dom/xhtml/level2/html/HTMLAppletElement02.xhtml: Removed.
  • dom/xhtml/level2/html/HTMLAppletElement03-expected.txt: Removed.
  • dom/xhtml/level2/html/HTMLAppletElement03.js: Removed.
  • dom/xhtml/level2/html/HTMLAppletElement03.xhtml: Removed.
  • dom/xhtml/level2/html/HTMLAppletElement04-expected.txt: Removed.
  • dom/xhtml/level2/html/HTMLAppletElement04.js: Removed.
  • dom/xhtml/level2/html/HTMLAppletElement04.xhtml: Removed.
  • dom/xhtml/level2/html/HTMLAppletElement06-expected.txt: Removed.
  • dom/xhtml/level2/html/HTMLAppletElement06.js: Removed.
  • dom/xhtml/level2/html/HTMLAppletElement06.xhtml: Removed.
  • dom/xhtml/level2/html/HTMLAppletElement07-expected.txt: Removed.
  • dom/xhtml/level2/html/HTMLAppletElement07.js: Removed.
  • dom/xhtml/level2/html/HTMLAppletElement07.xhtml: Removed.
  • dom/xhtml/level2/html/HTMLAppletElement08-expected.txt: Removed.
  • dom/xhtml/level2/html/HTMLAppletElement08.js: Removed.
  • dom/xhtml/level2/html/HTMLAppletElement08.xhtml: Removed.
  • dom/xhtml/level2/html/HTMLAppletElement09-expected.txt: Removed.
  • dom/xhtml/level2/html/HTMLAppletElement09.js: Removed.
  • dom/xhtml/level2/html/HTMLAppletElement09.xhtml: Removed.
  • dom/xhtml/level2/html/HTMLAppletElement10-expected.txt: Removed.
  • dom/xhtml/level2/html/HTMLAppletElement10.js: Removed.
  • dom/xhtml/level2/html/HTMLAppletElement10.xhtml: Removed.
  • dom/xhtml/level2/html/HTMLDocument08.xhtml: Removed.

Drop outdated tests.

  • fast/dom/HTMLDocument/document-special-properties-expected.txt:
  • fast/dom/Window/element-constructors-on-window-expected.txt:
  • fast/dom/Window/get-set-properties-expected.txt:
  • fast/dom/Window/get-set-properties.html:
  • fast/dom/Window/resources/window-properties.js:
  • fast/dom/Window/window-lookup-precedence-expected.txt:
  • fast/dom/Window/window-special-properties-expected.txt:
  • fast/dom/document-all-expected.txt:
  • fast/dom/document-all.html:
  • fast/dom/dom-constructors-expected.txt:
  • fast/dom/dom-constructors.html:
  • fast/dom/element-attribute-js-null-expected.txt:
  • fast/dom/element-attribute-js-null.html:
  • fast/dom/html-collections-named-getter-expected.txt:
  • fast/dom/html-collections-named-getter.html:
  • fast/dom/htmlcollection-non-html-expected.txt:
  • fast/dom/htmlcollection-non-html.html:
  • fast/dom/plugin-attributes-enumeration-expected.txt:
  • fast/dom/wrapper-classes-expected.txt:
  • fast/dom/wrapper-classes.html:
  • fast/frames/sandboxed-iframe-plugins-expected.txt:
  • fast/frames/sandboxed-iframe-plugins.html:
  • fast/text/text-combine-crash-expected.txt:
  • http/tests/security/cross-frame-access-put-expected.txt:
  • platform/mac-wk2/fast/dom/Window/window-lookup-precedence-expected.txt:
  • platform/mac-wk2/imported/w3c/web-platform-tests/html/semantics/interfaces-expected.txt:

Update / rebaseline existing tests to reflect behavior change.

  • platform/wk2/TestExpectations:

Drop outdated tests.

3:49 PM Changeset in webkit [269611] by aakash_jain@apple.com
  • 2 edits in trunk/Tools

[build.webkit.org] Do not print master environment variables in build steps
https://bugs.webkit.org/show_bug.cgi?id=218711

Reviewed by Jonathan Bedard.

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

(TransferToS3.init): Set logEnviron to False for newer buildbot.
(ExtractTestResults.init): Ditto.

3:48 PM Changeset in webkit [269610] by Peng Liu
  • 2 edits in trunk/Source/WebKit

REGRESSION (r269557): ASSERTION FAILED: Completion handler should always be called under WebCore::HTMLMediaElement::exitFullscreen
https://bugs.webkit.org/show_bug.cgi?id=218722

Reviewed by Eric Carlson.

No new tests, covered by an existing test that is crashing on the bots.

  • WebProcess/cocoa/VideoFullscreenManager.mm:

(WebKit::VideoFullscreenManager::exitVideoFullscreenForVideoElement):

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

Null dereference in CompositeEditCommand::splitTreeToNode() due to not checking for top of DOM tree
https://bugs.webkit.org/show_bug.cgi?id=218215

Patch by Julian Gonzalez <julian_a_gonzalez@apple.com> on 2020-11-09
Reviewed by Ryosuke Niwa.

Source/WebCore:

Add a check for a non-existent parent node when splitting a tree, and fix up
a caller to not pass a node without a parent node.

Test: editing/inserting/insert-list-in-iframe-in-list.html

  • editing/CompositeEditCommand.cpp:

(WebCore::CompositeEditCommand::moveParagraphs):

  • editing/InsertListCommand.cpp:

(WebCore::InsertListCommand::unlistifyParagraph):

LayoutTests:

Add layout test that catches crash during insertion of a list inside an iframe
(that itself is inside of a list).

  • editing/inserting/insert-list-in-iframe-in-list-expected.txt: Added.
  • editing/inserting/insert-list-in-iframe-in-list.html: Added.
3:40 PM Changeset in webkit [269608] by commit-queue@webkit.org
  • 3 edits in trunk/Tools

[JSC] Enable bytecode cache testing in stress tests for Linux
https://bugs.webkit.org/show_bug.cgi?id=218072

Patch by Xan López <Xan Lopez> on 2020-11-09
Reviewed by Yusuke Suzuki.

We only need to tweak how we define the temporary dir for the
bytecode cache in order for stress tests to support bytecode cache
testing on Linux.

This is skipped on Linux/MIPS for now, since the bots are already
slow enough and we have one blocker bug with incorrect parameter
quoting on some tests. See bug #218703.

  • Scripts/jsc-stress-test-helpers/bytecode-cache-test-helper.sh:

receive the temporary dir template as an argument. Also tweak the
script a bit so that it does not use arrays, that way it will work
in any POSIX shell.

  • Scripts/run-jsc-stress-tests: pass a different temporary dir

template for Darwin and Linux, since mktemp works differently
there.

3:27 PM Changeset in webkit [269607] by Truitt Savell
  • 2 edits in trunk/LayoutTests

REGRESSION: [ Mac ] media/video-buffering-allowed.html is flaky timeout
https://bugs.webkit.org/show_bug.cgi?id=217621

Unreviewed test gardening.

  • platform/mac/TestExpectationsRosetta:
3:11 PM Changeset in webkit [269606] by Wenson Hsieh
  • 10 edits in trunk/Source

Rename ImageBuffer::flushDisplayList to ImageBuffer::submitDisplayList
https://bugs.webkit.org/show_bug.cgi?id=218720

Reviewed by Tim Horton.

Source/WebCore:

Rename flushDisplayList to submitDisplayList, to better capture the fact that it's only responsible for
applying the contents of the given display list rather than performing a context flush, or applying and clearing
out the contents of the given display list.

No change in behavior.

  • platform/graphics/ImageBuffer.h:

(WebCore::ImageBuffer::submitDisplayList):
(WebCore::ImageBuffer::flushDisplayList): Deleted.

Source/WebKit:

See Source/WebCore/ChangeLog for more details.

  • GPUProcess/graphics/RemoteImageBuffer.h:
  • GPUProcess/graphics/RemoteRenderingBackend.cpp:

(WebKit::RemoteRenderingBackend::applyDisplayList):
(WebKit::RemoteRenderingBackend::submitDisplayList):
(WebKit::RemoteRenderingBackend::flushDisplayList): Deleted.

Additionally rename flushDisplayList on RemoteRenderingBackend, since this IPC message doesn't actually
perform a context flush.

  • GPUProcess/graphics/RemoteRenderingBackend.h:
  • GPUProcess/graphics/RemoteRenderingBackend.messages.in:
  • WebProcess/GPU/graphics/RemoteImageBufferProxy.h:
  • WebProcess/GPU/graphics/RemoteRenderingBackendProxy.cpp:

(WebKit::RemoteRenderingBackendProxy::submitDisplayList):
(WebKit::RemoteRenderingBackendProxy::flushDisplayList): Deleted.

  • WebProcess/GPU/graphics/RemoteRenderingBackendProxy.h:
2:54 PM Changeset in webkit [269605] by Alan Bujtas
  • 39 edits
    1 add
    1 delete in trunk

Unreviewed, reverting r269603.

Needs Safari patch

Reverted changeset:

"Show legacy line layout visual coverage instead of "simple
line" layout."
https://bugs.webkit.org/show_bug.cgi?id=218695
https://trac.webkit.org/changeset/269603

2:49 PM Changeset in webkit [269604] by Truitt Savell
  • 2 edits in trunk/LayoutTests

[Mac] inspector/debugger/tail-deleted-frames/tail-deleted-frames-intermediate-frames.html is a flaky timeout
https://bugs.webkit.org/show_bug.cgi?id=218725

Unreviewed test gardening.

  • platform/mac/TestExpectationsRosetta:
2:28 PM Changeset in webkit [269603] by Alan Bujtas
  • 39 edits
    1 copy
    1 delete in trunk

Show legacy line layout visual coverage instead of "simple line" layout.
https://bugs.webkit.org/show_bug.cgi?id=218695

Reviewed by Antti Koivisto.

Source/WebCore:

Paint legacy line layout content with the debug shadow instead of the modern one (and use red instead of blue).

  • layout/integration/LayoutIntegrationLineLayout.cpp:

(WebCore::LayoutIntegration::LineLayout::paint):
(WebCore::LayoutIntegration::LineLayout::debugTextShadow): Deleted.

  • layout/integration/LayoutIntegrationLineLayout.h:
  • rendering/InlineTextBox.cpp:

(WebCore::InlineTextBox::paintMarkedTextForeground):
(WebCore::InlineTextBox::debugTextShadow):

  • rendering/InlineTextBox.h:

Source/WebKit:

  • UIProcess/API/C/WKPreferences.cpp:

(WKPreferencesSetLegacyLineLayoutVisualCoverageEnabled):
(WKPreferencesGetLegacyLineLayoutVisualCoverageEnabled):
(WKPreferencesSetSimpleLineLayoutDebugBordersEnabled): Deleted.
(WKPreferencesGetSimpleLineLayoutDebugBordersEnabled): Deleted.

  • UIProcess/API/C/WKPreferencesRefPrivate.h:
  • UIProcess/API/Cocoa/WKPreferences.mm:

(-[WKPreferences _legacyLineLayoutVisualCoverageEnabled]):
(-[WKPreferences _setLegacyLineLayoutVisualCoverageEnabled:]):
(-[WKPreferences _simpleLineLayoutDebugBordersEnabled]): Deleted.
(-[WKPreferences _setSimpleLineLayoutDebugBordersEnabled:]): Deleted.

  • UIProcess/API/Cocoa/WKPreferencesPrivate.h:

Source/WebKitLegacy/mac:

  • WebView/WebPreferenceKeysPrivate.h:
  • WebView/WebPreferences.mm:

(-[WebPreferences legacyLineLayoutVisualCoverageEnabled]):
(-[WebPreferences setLegacyLineLayoutVisualCoverageEnabled:]):
(-[WebPreferences simpleLineLayoutDebugBordersEnabled]): Deleted.
(-[WebPreferences setSimpleLineLayoutDebugBordersEnabled:]): Deleted.

  • WebView/WebPreferencesPrivate.h:

Source/WTF:

  • Scripts/Preferences/WebPreferencesDebug.yaml:

Tools:

  • MiniBrowser/mac/SettingsController.h:
  • MiniBrowser/mac/SettingsController.m:

(-[SettingsController _populateMenu]):
(-[SettingsController validateMenuItem:]):
(-[SettingsController toggleLegacyLineLayoutVisualCoverageEnabled:]):
(-[SettingsController legacyLineLayoutVisualCoverageEnabled]):
(-[SettingsController toggleSimpleLineLayoutDebugBordersEnabled:]): Deleted.
(-[SettingsController simpleLineLayoutDebugBordersEnabled]): Deleted.

  • MiniBrowser/mac/WK1BrowserWindowController.m:

(-[WK1BrowserWindowController didChangeSettings]):

  • MiniBrowser/mac/WK2BrowserWindowController.m:

(-[WK2BrowserWindowController didChangeSettings]):

LayoutTests:

  • fast/inline/simple-line-layout-16bit-content-expected-mismatch.html: Removed.
  • fast/inline/simple-line-layout-16bit-content.html:
  • fast/text/simple-line-layout-do-not-support-unicode-range-expected.html:
  • fast/text/simple-line-layout-do-not-support-unicode-range.html:
  • fast/text/simple-line-layout-line-box-contain-glyphs-expected.html:
  • fast/text/simple-line-layout-line-box-contain-glyphs.html:
  • fast/text/simple-line-layout-no-surrogate-pairs-expected.html:
  • fast/text/simple-line-layout-no-surrogate-pairs.html:
  • fast/text/simple-line-layout-simple-text-but-complex-font-path-expected.html:
  • fast/text/simple-line-layout-simple-text-but-complex-font-path.html:
  • fast/text/simple-line-layout-with-text-underline-position-expected.html:
  • fast/text/simple-line-layout-with-text-underline-position.html:
  • fast/text/simple-lines-float-expected.html:
  • fast/text/simple-lines-float.html:
  • fast/text/simple-lines-hover-expected.html:
  • fast/text/simple-lines-hover.html:
  • fast/text/simple-lines-multiple-renderers-expected.html:
  • fast/text/simple-lines-multiple-renderers.html:
2:27 PM Changeset in webkit [269602] by Diego Pino Garcia
  • 2 edits in trunk/Tools

[webkitpy] When platform is GTK or WPE, make lint-test-expectations lint GLIB too
https://bugs.webkit.org/show_bug.cgi?id=218691

Reviewed by Carlos Alberto Lopez Perez.

In the test expectations hierarchy, both GTK and WPE share a common
root, GLIB. It's not possible to lint GLIB test expectations as it's
not a platform with a builder associated. Thus, make lint-test-expectations
lint GLIB test expectations when linting GLIB or WPE.

  • Scripts/webkitpy/layout_tests/lint_test_expectations.py:

(lint):

1:54 PM Changeset in webkit [269601] by Simon Fraser
  • 8 edits in trunk/Source/WebCore

[LFC Display] Implement background bleed avoidance, and border-radius clipping of backgrounds
https://bugs.webkit.org/show_bug.cgi?id=218713

Reviewed by Zalan Bujtas.

Make BoxDecorationPainter into a class so it can hold references to the box, rounded rect
etc, and settle on a policy of passing PaintingContext as an argument to all the painting
functions.

Add code to compute the BackgroundBleedAvoidance policy, and implement the various policies
following rendering code.

  • display/css/DisplayBoxDecorationData.cpp:

(WebCore::Display::BorderEdge::obscuresBackgroundEdge const):
(WebCore::Display::BoxDecorationData::hasBorder const):
(WebCore::Display::BoxDecorationData::hasBorderRadius const):
(WebCore::Display::BoxDecorationData::borderObscuresBackground const):
(WebCore::Display::BoxDecorationData::borderObscuresBackgroundEdge const):

  • display/css/DisplayBoxDecorationData.h:

(WebCore::Display::borderWidths):

  • display/css/DisplayBoxDecorationPainter.cpp:

(WebCore::Display::BorderPainter::BorderPainter):
(WebCore::Display::roundedRectWithIncludedRadii):
(WebCore::Display::roundedInsetBorderForRect):
(WebCore::Display::BorderPainter::drawBoxSideFromPath const):
(WebCore::Display::BorderPainter::clipBorderSidePolygon const):
(WebCore::Display::BorderPainter::drawLineForBoxSide const):
(WebCore::Display::BorderPainter::paintOneBorderSide const):
(WebCore::Display::BorderPainter::paintBorderSides const):
(WebCore::Display::BorderPainter::paintTranslucentBorderSides const):
(WebCore::Display::shrinkRectByOneDevicePixel):
(WebCore::Display::BorderPainter::borderInnerRectAdjustedForBleedAvoidance const):
(WebCore::Display::BorderPainter::paintBorders const):
(WebCore::Display::BoxDecorationPainter::paintBorders const):
(WebCore::Display::BoxDecorationPainter::paintFillLayer const):
(WebCore::Display::BoxDecorationPainter::BoxDecorationPainter):
(WebCore::Display::BoxDecorationPainter::computeBorderRect):
(WebCore::Display::BoxDecorationPainter::paintBackgroundImages const):
(WebCore::Display::BoxDecorationPainter::backgroundRoundedRectAdjustedForBleedAvoidance const):
(WebCore::Display::BoxDecorationPainter::paintBackground const):
(WebCore::Display::BoxDecorationPainter::determineBackgroundBleedAvoidance):
(WebCore::Display::BoxDecorationPainter::paintBackgroundAndBorders const):
(): Deleted.
(WebCore::Display::BorderPainter::roundedBorderForRect const): Deleted.
(WebCore::Display::BorderPainter::roundedInsetBorderForRect const): Deleted.
(WebCore::Display::BoxDecorationPainter::paintBorders): Deleted.
(WebCore::Display::paintFillLayer): Deleted.
(WebCore::Display::BoxDecorationPainter::paintBackgroundImages): Deleted.
(WebCore::Display::BoxDecorationPainter::paintBackground): Deleted.
(WebCore::Display::BoxDecorationPainter::paintBackgroundAndBorders): Deleted.

  • display/css/DisplayBoxDecorationPainter.h:

(WebCore::Display::BoxDecorationPainter::borderRoundedRect const):
(WebCore::Display::BoxDecorationPainter::includeLeftEdge const):
(WebCore::Display::BoxDecorationPainter::includeRightEdge const):

  • display/css/DisplayBoxPainter.cpp:

(WebCore::Display::BoxPainter::paintBoxDecorations):

  • display/css/DisplayStyle.cpp:

(WebCore::Display::Style::backgroundHasOpaqueTopLayer const):

  • display/css/DisplayStyle.h:
1:41 PM Changeset in webkit [269600] by Alan Bujtas
  • 62 edits in trunk

[LFC][Integration] Enable inline image support
https://bugs.webkit.org/show_bug.cgi?id=217874

Source/WebCore:

Reviewed by Antti Koivisto.

  • layout/integration/LayoutIntegrationCoverage.cpp:

LayoutTests:

Combination of different issues:

  1. Do not retain the whitespace (new line) after the replaced content.
  2. Do not treat images+text as unbreakable content (neither FF nor Chrome does)
  3. Rounding differences.

Reviewed by Antti Koivisto.

1:28 PM Changeset in webkit [269599] by Fujii Hironori
  • 4 edits in trunk

[TextureMapper] backdrop-filter should use the identity transform to render the root layer
https://bugs.webkit.org/show_bug.cgi?id=218699

Reviewed by Don Olmstead.

Source/WebCore:

Even thouth CSS reflections mirror the content, backdrop-filter in
the reflection doesn't. It sees through the background.
css3/filters/backdrop/backdrop-filter-with-reflection.html is the
test case.

  • platform/graphics/texmap/TextureMapperLayer.cpp:

(WebCore::TextureMapperLayer::paintSelfAndChildrenWithReplica):
(WebCore::TextureMapperLayer::paintIntoSurface):
(WebCore::TextureMapperLayer::paintWithIntermediateSurface):
Removed TextureMapperPaintOptions::isReplica.

LayoutTests:

  • platform/glib/TestExpectations: Unmarked

css3/filters/backdrop/{backdrop-filter-with-reflection-add-backdrop.html,
backdrop-filter-with-reflection-value-change.html,backdrop-filter-with-reflection.html}

1:23 PM Changeset in webkit [269598] by Chris Dumez
  • 154 edits
    5 copies
    207 adds
    8 deletes in trunk/LayoutTests

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

Reviewed by Sam Weinig.

Resync web-platform-tests/html tests from upstream 7a287c9e26fbc12.

  • resources/import-expectations.json:
  • resources/resource-files.json:
  • web-platform-tests/html/*: Updated.
1:18 PM Changeset in webkit [269597] by keith_miller@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Add total counts to sampling profiler dump
https://bugs.webkit.org/show_bug.cgi?id=218666

Reviewed by Yusuke Suzuki.

This is nice for computing the approximate percentage of total time in a function.

  • runtime/SamplingProfiler.cpp:

(JSC::SamplingProfiler::reportTopFunctions):
(JSC::SamplingProfiler::reportTopBytecodes):

12:53 PM Changeset in webkit [269596] by aakash_jain@apple.com
  • 2 edits in trunk/Tools

[build.webkit.org] Use workersrc instead of slavesrc for new Buildbot
https://bugs.webkit.org/show_bug.cgi?id=218717

Reviewed by Jonathan Bedard.

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

(UploadBuiltProduct.init): Used workersrc instead of slavesrc.
(UploadTestResults.init): Ditto.
(Run32bitJSCTests.start): Drive-by fix to use workerEnvironment instead of slaveEnvironment.

12:25 PM Changeset in webkit [269595] by aakash_jain@apple.com
  • 2 edits in trunk/Tools

[build.webkit.org] remove unused imports from loadConfig.py
https://bugs.webkit.org/show_bug.cgi?id=218718

Reviewed by Dewei Zhu.

  • CISupport/build-webkit-org/loadConfig.py:
12:21 PM Changeset in webkit [269594] by Aditya Keerthi
  • 6 edits in trunk/LayoutTests

Remove experimental: and internal: prefixes from recently added tests
https://bugs.webkit.org/show_bug.cgi?id=218658

Reviewed by Devin Rousso.

The tests below were written before r269360. Since the experimental:
and internal: prefixes are no longer needed, they should be removed.

  • contact-picker/contacts-select-after-dismissing-picker.html:
  • contact-picker/contacts-select-while-presenting-picker.html:
  • contact-picker/contacts-select.html:
  • fast/scrolling/mac/overflow-scrollbars-toggle-dark-mode-expected.html:
  • fast/scrolling/mac/overflow-scrollbars-toggle-dark-mode.html:
12:20 PM Changeset in webkit [269593] by pvollan@apple.com
  • 21 edits
    6 adds in trunk

[macOS] System sounds should be played in the UI process
https://bugs.webkit.org/show_bug.cgi?id=218405
Source/WebCore:

<rdar://problem/70898846>

Reviewed by Darin Adler.

In preparation of blocking the system sound server in the WebContent process, system sounds should be played in the UI process.
This patch creates a system sound manager, which delegates the sound request if a delegate is present, otherwise the function
PAL::systemBeep will be called.

API test: WebKit.SystemBeep

  • Headers.cmake:
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • editing/Editor.cpp:

(WebCore::Editor::cut):
(WebCore::Editor::copy):
(WebCore::Editor::performDelete):

  • editing/EditorCommand.cpp:

(WebCore::executeSelectToMark):
(WebCore::executeSwapWithMark):

  • editing/cocoa/EditorCocoa.mm:

(WebCore::Editor::takeFindStringFromSelection):

  • inspector/InspectorFrontendHost.cpp:

(WebCore::InspectorFrontendHost::beep):

  • platform/SystemSoundDelegate.h: Added.

(WebCore::SystemSoundDelegate::~SystemSoundDelegate):
(WebCore::SystemSoundDelegate::systemBeep):

  • platform/SystemSoundManager.cpp: Added.

(WebCore::SystemSoundManager::singleton):
(WebCore::SystemSoundManager::setSystemSoundDelegate):
(WebCore::SystemSoundManager::systemBeep):

  • platform/SystemSoundManager.h: Added.
  • platform/audio/StereoPanner.cpp:
  • testing/Internals.cpp:

(WebCore::Internals::systemBeep):

  • testing/Internals.h:
  • testing/Internals.idl:

Source/WebKit:

<rdar://problem/70898846>

Reviewed by Darin Adler.

Subclass SystemSoundDelegate, which will forward system sound requests to the UI process.

  • Sources.txt:
  • UIProcess/WebProcessProxy.cpp:

(WebKit::WebProcessProxy::systemBeep):

  • UIProcess/WebProcessProxy.h:
  • UIProcess/WebProcessProxy.messages.in:
  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/WebSystemSoundDelegate.cpp: Added.

(WebKit::WebSystemSoundDelegate::systemBeep):

  • WebProcess/WebSystemSoundDelegate.h: Added.
  • WebProcess/cocoa/WebProcessCocoa.mm:

(WebKit::WebProcess::platformInitializeWebProcess):

Tools:

Reviewed by Darin Adler.

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKit/SystemBeep.mm: Added.

(TEST):

12:19 PM Changeset in webkit [269592] by commit-queue@webkit.org
  • 1 edit
    2 adds in trunk/LayoutTests

Add testcase for r269538
https://bugs.webkit.org/show_bug.cgi?id=218502

Patch by Rob Buis <rbuis@igalia.com> on 2020-11-09
Reviewed by Simon Fraser.

I forgot to add a testcase in r269538.

  • fast/css/marquee-with-layer-display-inline-crash-expected.txt: Added.
  • fast/css/marquee-with-layer-display-inline-crash.html: Added.
12:16 PM Changeset in webkit [269591] by Wenson Hsieh
  • 3 edits in trunk/Source/WebCore

Clean up some code after inline display list refactoring
https://bugs.webkit.org/show_bug.cgi?id=218714

Reviewed by Tim Horton.

See below for more details.

  • platform/graphics/displaylists/DisplayListItems.h:

Remove a couple of extraneous encode() and decode() method declarations.

  • platform/graphics/displaylists/DisplayListReplayer.cpp:

(WebCore::DisplayList::Replayer::replay):

Add a missing ++ for this counter variable.

12:10 PM Changeset in webkit [269590] by keith_miller@apple.com
  • 1 edit
    2 adds in trunk/JSTests

Add microbenchmark for FinalizationRegistry basic usage
https://bugs.webkit.org/show_bug.cgi?id=218667

Reviewed by Yusuke Suzuki.

The no unregister token benchmark runs in ~40ms and the unregister
token in ~25ms on my Mac Pro. Interestingly, it also shows that
using an unregister token make FinalizationRegistry ~4x slower
(total time is longer because the number of objects is 10x bigger
in the test). This is because we have to store all the data in a
HashMap<UnregisterToken, JSObject> rather than a Vector<JSObject>.

  • microbenchmarks/finalizationRegistryCleanup.js: Added.

(async callback):

  • microbenchmarks/finalizationRegistryCleanupWithUnregisterToken.js: Added.

(async callback):

11:31 AM Changeset in webkit [269589] by pvollan@apple.com
  • 2 edits in trunk/Source/WebKit

[Cocoa] Diagnostic service sandbox violation loading any webpage
https://bugs.webkit.org/show_bug.cgi?id=218710
<rdar://problem/71124931>

Reviewed by Alexey Proskuryakov.

Loading any Web page will cause a diagnostic service mach-lookup sandbox violation. Consume the extension to
the service as early as possible in WebProcess::platformInitializeWebProcess, since there are code paths in
this method which will try to access the diagnostic service.

  • WebProcess/cocoa/WebProcessCocoa.mm:

(WebKit::WebProcess::platformInitializeWebProcess):

11:11 AM Changeset in webkit [269588] by Fujii Hironori
  • 4 edits
    2 adds in trunk

[TextureMapper] The top and left sides of drop-shadow are clipped
https://bugs.webkit.org/show_bug.cgi?id=218647

Reviewed by Don Olmstead.

Source/WebCore:

TextureMapperLayer::computeOverlapRegions incorrectly calculated
the local bounding rect for top and left of outsets.

The drop-shadow was incorrectly blended with the content.

Test: compositing/filters/drop-shadow.html

  • platform/graphics/texmap/TextureMapperLayer.cpp:

(WebCore::TextureMapperLayer::computeOverlapRegions): Stopped
using std::max for the left and top of outsets. Stopped taking the
unite with unfilteredTargetRect because outsets are always
positive.

  • platform/graphics/texmap/TextureMapperShaderProgram.cpp:

Fixed sourceOver().

LayoutTests:

  • compositing/filters/drop-shadow-expected.html: Added.
  • compositing/filters/drop-shadow.html: Added.
11:08 AM Changeset in webkit [269587] by Devin Rousso
  • 21 edits
    2 adds in trunk

autofocus of text input should not select text
https://bugs.webkit.org/show_bug.cgi?id=218585
<rdar://problem/60130704>

Reviewed by Wenson Hsieh.

Source/WebCore:

Test: fast/forms/input-text-autofocus.html

  • dom/Document.h:
  • history/CachedPage.cpp:

(WebCore::CachedPage::restore):

  • html/HTMLInputElement.h:
  • html/HTMLInputElement.cpp:

(WebCore::HTMLInputElement::updateFocusAppearance):
(WebCore::HTMLInputElement::setDefaultSelectionAfterFocus):
(WebCore::HTMLInputElement::runPostTypeUpdateTasks):
(WebCore::HTMLInputElement::didAttachRenderers):

  • html/HTMLTextAreaElement.cpp:

(WebCore::HTMLTextAreaElement::updateFocusAppearance):

  • html/InputType.cpp:

(WebCore::InputType::accessKeyAction):

  • page/EventHandler.cpp:

(WebCore::EventHandler::dispatchMouseEvent):

  • page/FocusController.cpp:

(WebCore::FocusController::advanceFocusInDocumentOrder):
(WebCore::FocusController::advanceFocusDirectionallyInContainer):
Slightly rework SelectionRestorationMode to replace SetDefault with two new values:

  • PlaceCaretAtStart puts the caret at the start, regardless of any cached selection
  • SelectAll selects all text, regardless of any cached selection (existing behavior)

In order to preserve existing behavior, the default Restore will have the same effect as
SelectAll if there is no cached selection (and is renamed to RestoreOrSelectAll as such).

  • dom/Element.h:
  • dom/Element.cpp:

(WebCore::Element::focus):

  • html/HTMLLabelElement.h:
  • html/HTMLLabelElement.cpp:

(WebCore::HTMLLabelElement::focus):

  • html/HTMLLegendElement.h:
  • html/HTMLLegendElement.cpp:

(WebCore::HTMLLegendElement::focus):
Replace the bool restorePreviousSelection with SelectionRestorationMode since that's
what it's eventually used for anyways. This also allows for more flexibility in behavior,
such as callers using the new SelectionRestorationMode values.

  • html/HTMLFormControlElement.cpp:

(WebCore::HTMLFormControlElement::didAttachRenderers):
Change to PlaceCaretAtStart to match other browsers.

Source/WebKit:

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::restoreSelectionInFocusedEditableElement):
Slightly rework SelectionRestorationMode to replace SetDefault with two new values:

  • PlaceCaretAtStart puts the caret at the start, regardless of any cached selection
  • SelectAll selects all text, regardless of any cached selection (existing behavior)

In order to preserve existing behavior, the default Restore will have the same effect as
SelectAll if there is no cached selection (and is renamed to RestoreOrSelectAll as such).

LayoutTests:

  • fast/forms/input-text-autofocus.html: Added.
  • fast/forms/input-text-autofocus-expected.txt: Added.
  • fast/forms/input-first-letter-edit.html:
  • fast/forms/input-first-letter-edit-expected.html:
10:53 AM Changeset in webkit [269586] by commit-queue@webkit.org
  • 2 edits in trunk

Enable llint asm on aarch64 when USE(64KB_PAGE_BLOCK) is enabled
https://bugs.webkit.org/show_bug.cgi?id=218613

Patch by Michael Catanzaro <Michael Catanzaro> on 2020-11-09
Reviewed by Carlos Alberto Lopez Perez.

Normally we fall back to cloop when JIT is not supported. But on aarch64, llint asm is well-
supported, so it is safe to use that here. This will only happen on aarch64, and only when
USE(64KB_PAGE_BLOCK) is enabled, which should probably only be used by RHEL and SUSE.
Everyone else should get the JIT.

  • Source/cmake/WebKitFeatures.cmake:
10:30 AM Changeset in webkit [269585] by Antti Koivisto
  • 3 edits in trunk/Source/WebCore

[LFC] Initialize border style correctly
https://bugs.webkit.org/show_bug.cgi?id=218712

Reviewed by Zalan Bujtas.

Tested by fast/events/drag-image-with-border-image.html with image integration enabled.

  • layout/FormattingContextGeometry.cpp:

(WebCore::Layout::FormattingContext::Geometry::computedBorder const):

BorderValue::boxModelWidth() doesn't take non-color decorations into account.
Calling style.borderLeftWidth() and pals does the right thing.

  • rendering/style/BorderValue.h:

(WebCore::BorderValue::style const):
(WebCore::BorderValue::boxModelWidth const): Deleted.

Remove this unneeded helper.

10:00 AM Changeset in webkit [269584] by pvollan@apple.com
  • 13 edits
    3 copies
    4 adds in trunk

[macOS] Set preference for overridden languages in the WebContent process after entering the sandbox.
https://bugs.webkit.org/show_bug.cgi?id=218097
Source/WebKit:

<rdar://problem/70586545>

Reviewed by Alexey Proskuryakov.

Currently, the preference for overridden languages in the WebContent process is set before entering the sandbox,
which leaves behind an open connection to opendirectoryd. This preference should be set after entering the
sandbox to avoid this. This patch sets the preference after the initialization function has been executed.

API test: WebKit.OverrideAppleLanguagesPreference

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

(WebKit::setAppleLanguagesPreference):
(WebKit::XPCServiceEventHandler):
(WebKit::XPCServiceMain):

  • WebProcess/com.apple.WebProcess.sb.in:

Source/WTF:

Reviewed by Alexey Proskuryakov.

Disable CFPrefs direct mode for older versions of macOS. In practice, it was already disabled since a mach connection to cfprefsd
was established before entering the sandbox on older versions on macOS, but that is fixed in this patch.

  • wtf/PlatformEnableCocoa.h:

Tools:

Reviewed by Alexey Proskuryakov.

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKit/AccessibilityReduceMotion.mm:
  • TestWebKitAPI/Tests/WebKit/EnableAccessibility.mm:
  • TestWebKitAPI/Tests/WebKit/OverrideAppleLanguagesPreference.mm: Added.

(TEST):

  • TestWebKitAPI/Tests/WebKit/PreferenceChanges.mm:

LayoutTests:

Reviewed by Alexey Proskuryakov.

Add test for sandbox access to cfprefsd.daemon, and mark cfprefsd tests as failing for Mojave and Catalina, since CFPrefs
direct mode is not enabled on those versions of macOS.

  • fast/sandbox/mac/sandbox-mach-lookup-expected.txt:
  • fast/sandbox/mac/sandbox-mach-lookup.html:
  • platform/mac-catalina/fast/sandbox: Added.
  • platform/mac-catalina/fast/sandbox/mac: Added.
  • platform/mac-catalina/fast/sandbox/mac/sandbox-mach-lookup-expected.txt: Added.
  • platform/mac-mojave/fast/sandbox: Added.
  • platform/mac-mojave/fast/sandbox/mac: Added.
  • platform/mac-mojave/fast/sandbox/mac/sandbox-mach-lookup-expected.txt: Added.
9:55 AM Changeset in webkit [269583] by Chris Lord
  • 3 edits in trunk/Source/WebCore

[GTK] kinetic scroll speed should be cumulative
https://bugs.webkit.org/show_bug.cgi?id=203914

Reviewed by Carlos Garcia Campos.

Accumulate velocity in the same direction with ScrollAnimationKinetic.

  • platform/ScrollAnimationKinetic.cpp:

(WebCore::ScrollAnimationKinetic::stop):
(WebCore::ScrollAnimationKinetic::start):
(WebCore::ScrollAnimationKinetic::animationTimerFired):
(WebCore::ScrollAnimationKinetic::deltaToNextFrame):

  • platform/ScrollAnimationKinetic.h:
9:26 AM Changeset in webkit [269582] by Chris Dumez
  • 4 edits in trunk

Look at parents when event bubbles for input element activation behavior
https://bugs.webkit.org/show_bug.cgi?id=218660

Reviewed by Ryosuke Niwa.

LayoutTests/imported/w3c:

Rebaseline WPT test that is now fully passing.

  • web-platform-tests/dom/events/Event-dispatch-click-expected.txt:

Source/WebCore:

When a click event is dispatched at a node that is not an HTMLInputElement, and if the
event bubbles, we should look up the tree to see if there is an HTMLInputElement that
we should trigger activation behavior for. Prevously, we were failing to do this.

The new behavior is consistent with Blink.

No new tests, rebaselined existing test.

  • dom/EventDispatcher.cpp:

(WebCore::findInputElementInEventPath):
(WebCore::EventDispatcher::dispatchEvent):

8:41 AM Changeset in webkit [269581] by aakash_jain@apple.com
  • 6 edits in trunk/Tools

[build.webkit.org] Add python 3 support - part 3
https://bugs.webkit.org/show_bug.cgi?id=218706

Reviewed by Jonathan Bedard.

  • CISupport/Shared/transfer-archive-to-s3: Updated print method to be both python 2 and 3 compatible.
  • CISupport/built-product-archive: Ditto.
  • CISupport/delete-stale-build-files: Ditto.
  • CISupport/build-webkit-org/loadConfig.py: Removed unnecessary filter method.
  • CISupport/ews-build/loadConfig.py: Ditto.
2:30 AM Changeset in webkit [269580] by jh718.park@samsung.com
  • 2 edits in trunk/Source/WebKit

Unreviewed. Fix the build warning below since r269525.
warning: control reaches end of non-void function [-Wreturn-type]

No new tests, no new behaviors.

  • WebProcess/GPU/graphics/RemoteImageBufferProxy.h:
2:20 AM Changeset in webkit [269579] by Chris Lord
  • 9 edits in trunk/Source/WebCore

[GTK][WPE] Scrolling with mouse wheel doesn't work on iframes with async scrolling enabled
https://bugs.webkit.org/show_bug.cgi?id=214179

Reviewed by Žan Doberšek.

Implement ScrollingTree::scrollingNodeForPoint in
ScrollingTreeNicosia. This fixes overflow and iframe scrolling when
async scrolling is enabled on WPE and GTK ports.

  • page/scrolling/ThreadedScrollingTree.h:
  • page/scrolling/nicosia/ScrollingTreeFrameScrollingNodeNicosia.cpp:

(WebCore::ScrollingTreeFrameScrollingNodeNicosia::commitStateBeforeChildren):

  • page/scrolling/nicosia/ScrollingTreeFrameScrollingNodeNicosia.h:
  • page/scrolling/nicosia/ScrollingTreeNicosia.cpp:

(WebCore::collectDescendantLayersAtPoint):
(WebCore::ScrollingTreeNicosia::scrollingNodeForPoint):

  • page/scrolling/nicosia/ScrollingTreeNicosia.h:
  • page/scrolling/nicosia/ScrollingTreeOverflowScrollingNodeNicosia.cpp:

(WebCore::ScrollingTreeOverflowScrollingNodeNicosia::commitStateBeforeChildren):

  • page/scrolling/nicosia/ScrollingTreeOverflowScrollingNodeNicosia.h:
  • platform/graphics/nicosia/NicosiaPlatformLayer.h:

(Nicosia::CompositionLayer::flushState):
(Nicosia::CompositionLayer::accessPending):

2:19 AM Changeset in webkit [269578] by Chris Lord
  • 4 edits in trunk

REGRESSION(r269503): [GTK][WPE] >200 tests are failing
https://bugs.webkit.org/show_bug.cgi?id=218654
<rdar://problem/71116949>

Reviewed by Žan Doberšek.

Source/WebCore:

Replace the NativeImagePtr calls with ImageBuffer::draw. With the
cairo implementation, in the cases where it's possible, it amounts to
the same thing, but the draw implementation also handles cases that
the previous patch didn't.

  • platform/graphics/cairo/GraphicsContextImplCairo.cpp:

(WebCore::GraphicsContextImplCairo::drawImageBuffer):

LayoutTests:

Mark 5 canvas tests as passing.

  • platform/glib/TestExpectations:
12:20 AM Changeset in webkit [269577] by zandobersek@gmail.com
  • 3 edits in trunk/Source/WebKit

[WPE] ScrollGestureController should only handle complete touch interactions
https://bugs.webkit.org/show_bug.cgi?id=218329

Reviewed by Carlos Garcia Campos.

ScrollGestureController's purpose is to handle otherwise-unhandled
touch events and translate those into a scrolling gesture.

Until now, it was possible for a touch motion event to trigger that
gesture even when the corresponding touch down event was not handled
by the ScrollGestureController, e.g. it was not produced due to the
touch interaction being started somewhere else, or the Web content
actually handled that event.

A flag is added to ScrollGestureController to track that an unhandled
touch down event was confronted, before allowing subsequent unhandled
touch motion events to trigger the scrolling gesture when conditions
are met. The flag is reset upon the touch up event.

  • UIProcess/API/wpe/ScrollGestureController.cpp:

(WebKit::ScrollGestureController::handleEvent):

  • UIProcess/API/wpe/ScrollGestureController.h:
Note: See TracTimeline for information about the timeline view.