Timeline
Mar 11, 2020:
- 9:57 PM Changeset in webkit [258314] by
-
- 9 edits in trunk/Source
Adopt AVSampleBufferVideoOutput
https://bugs.webkit.org/show_bug.cgi?id=208951
Reviewed by Eric Carlson.
Source/WebCore:
Adopt AVSampleBufferVideoOutput, used for extracting decoded samples from an AVSampleBufferDisplayLayer.
Rather than use a separate decompression session when we need to, e.g., paint samples into WebGL, we will
add a AVSBVO to the AVSBDL and use it to extract CVPixelBuffers when asked.
- platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.h:
- platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::updateLastPixelBuffer):
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::acceleratedRenderingStateChanged):
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::ensureLayer):
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::isVideoOutputAvailable const):
Source/WebCore/PAL:
- pal/cocoa/AVFoundationSoftLink.h:
- pal/cocoa/AVFoundationSoftLink.mm:
- pal/spi/cocoa/AVFoundationSPI.h:
Source/WTF:
- wtf/PlatformHave.h:
- 9:25 PM Changeset in webkit [258313] by
-
- 5 edits in trunk/Source/WebCore
Removed unused textElements member from AccessibilityText structure.
https://bugs.webkit.org/show_bug.cgi?id=208967
Reviewed by Chris Fleizach.
The textElements member of AccessibilityText is not used by any client
and its computation is causing crashes in IsolatedTree mode. So this
change removes it.
- accessibility/AccessibilityNodeObject.cpp:
(WebCore::AccessibilityNodeObject::titleElementText const):
(WebCore::AccessibilityNodeObject::ariaLabeledByText const):
- accessibility/AccessibilityObject.h:
(WebCore::AccessibilityText::AccessibilityText):
- accessibility/isolatedtree/AXIsolatedObject.cpp:
(WebCore::AXIsolatedObject::initializeAttributeData):
(WebCore::AXIsolatedObject::accessibilityText const):
- accessibility/isolatedtree/AXIsolatedObject.h:
- 9:24 PM Changeset in webkit [258312] by
-
- 2 edits in trunk/Source/WebKit
[GPU Process] encodeNativeImage() should pass imageSize to GraphicsContext::drawNativeImage()
https://bugs.webkit.org/show_bug.cgi?id=208936
Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2020-03-11
Reviewed by Myles C. Maxfield.
Passing an empty FloatSize makes drawNativeImage() draws nothing to
the ShareableBitmap
- Shared/WebCoreArgumentCoders.cpp:
(IPC::encodeNativeImage):
- 9:19 PM Changeset in webkit [258311] by
-
- 4 edits in trunk/Source/WebKit
RemoteImageBuffer::getImageData() has to clear its DisplayList after calling flushDrawingContext()
https://bugs.webkit.org/show_bug.cgi?id=208931
Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2020-03-11
Reviewed by Myles C. Maxfield.
Instead of letting every caller to flushDrawingContextAndWaitCommit() or
flushDrawingContext() be responsible of clearing the DisplayList, we can
make these functions take this responsibility.
- WebProcess/GPU/graphics/RemoteImageBuffer.h:
- WebProcess/GPU/graphics/RemoteImageBufferMessageHandler.cpp:
(WebKit::RemoteImageBufferMessageHandler::flushDrawingContext):
(WebKit::RemoteImageBufferMessageHandler::flushDrawingContextAndWaitCommit):
- WebProcess/GPU/graphics/RemoteImageBufferMessageHandler.h:
- 8:19 PM Changeset in webkit [258310] by
-
- 9 edits in trunk/Source
Non-unified build fixes early March 2020 edition Take 2
https://bugs.webkit.org/show_bug.cgi?id=208968
Unreviewed build fix.
Source/WebCore:
- editing/TextIterator.cpp:
- editing/TextIterator.h:
- editing/TextManipulationController.cpp:
- editing/VisibleSelection.cpp:
- editing/VisibleUnits.cpp:
Source/WebKit:
- WebProcess/GPU/graphics/RemoteImageBufferMessageHandler.cpp:
- WebProcess/GPU/media/RemoteMediaPlayerManager.cpp:
(WebKit::RemoteMediaPlayerManager::createRemoteMediaPlayer):
- 7:55 PM Changeset in webkit [258309] by
-
- 12 edits5 adds in trunk/Source/WebKit
[GPUP] Add entry points for non-Cocoa ports
https://bugs.webkit.org/show_bug.cgi?id=208965
Reviewed by Michael Catanzaro.
Add a CMake target for the GPU Process that is optionally defined based on
whether the process is enabled.
Add an entry point for the GPU Process for unix and windows ports. Use this
as the source for the GPU Process by specifying it in the Platform CMake file.
Add in hooks for both Windows and GLib to launch the GPU Process if it is
enabled in the port.
- CMakeLists.txt:
- GPUProcess/EntryPoint/unix/GPUProcessMain.cpp: Added.
(main):
- GPUProcess/EntryPoint/win/GPUProcessMain.cpp: Added.
(main):
- GPUProcess/GPUProcessMain.h: Added.
- PlatformFTW.cmake:
- PlatformGTK.cmake:
- PlatformMac.cmake:
- PlatformPlayStation.cmake:
- PlatformWPE.cmake:
- PlatformWin.cmake:
- Shared/ProcessExecutablePath.h:
- Shared/glib/ProcessExecutablePathGLib.cpp:
(WebKit::executablePathOfGPUProcess):
- UIProcess/Launcher/glib/ProcessLauncherGLib.cpp:
(WebKit::ProcessLauncher::launchProcess):
- UIProcess/Launcher/win/ProcessLauncherWin.cpp:
(WebKit::processName):
- 7:48 PM Changeset in webkit [258308] by
-
- 4 edits in trunk/Source/WebCore
Large single select elements are incorrectly sized
https://bugs.webkit.org/show_bug.cgi?id=208966
Reviewed by Tim Horton.
Adjusts several size and margin values for menu lists (i.e. the default appearance of non-multiple select
elements) to reflect recent changes in macOS. Additionally, adds a workaround for <rdar://problem/60350699>,
which causes text inside many form controls (including select buttons) to be incorrectly sized.
- platform/mac/ThemeMac.h:
- platform/mac/ThemeMac.mm:
(WebCore::ThemeMac::systemFontSizeFor):
(WebCore::ThemeMac::controlFont const):
- rendering/RenderThemeMac.mm:
Replace calls to +[NSFont systemFontSizeForControlSize:] with
ThemeMac::systemFontSizeFor(NSControlSize size)
in order to work around <rdar://problem/60350699>.
(WebCore::RenderThemeMac::updateCachedSystemFontDescription const):
(WebCore::RenderThemeMac::setFontFromControlSize const):
(WebCore::RenderThemeMac::controlSizeForSystemFont const):
(WebCore::RenderThemeMac::popupButtonMargins const):
(WebCore::menuListButtonSizes):
- 6:50 PM Changeset in webkit [258307] by
-
- 1 copy in tags/Safari-610.1.7
Tag Safari-610.1.7.
- 6:43 PM Changeset in webkit [258306] by
-
- 2 edits in branches/safari-610.1.7-branch/Source/WebKit
Cherry-pick r258304. rdar://problem/60351239
[macOS] Register with accessibility when the WebContent process starts
https://bugs.webkit.org/show_bug.cgi?id=208960
Reviewed by Brent Fulgham.
When we reenabled CF prefs direct mode in <https://bugs.webkit.org/show_bug.cgi?id=208690>, we started to register
with accessibility when we received a message to do so from the UI process. This would typically happen when the user
enabled accessibility. On macOS, this notification does not work the same way as on iOS, and it is assumed that
accessibility should always be enabled. Therefore we should go back to registering with accessibility on startup of
the WebContent process on macOS.
- WebProcess/cocoa/WebProcessCocoa.mm: (WebKit::WebProcess::platformInitializeProcess): (WebKit::WebProcess::unblockAccessibilityServer):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@258304 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 6:35 PM Changeset in webkit [258305] by
-
- 2 edits in trunk/Source/WebKit
[GPUP] Add special handling of MediaTime within message generator
https://bugs.webkit.org/show_bug.cgi?id=208958
Reviewed by Eric Carlson.
When compiling the GPU Process sources without unified sources there were
numerous compilation errors around MediaTime. Only GPU Process .messages.in
files reference this type so there was no special handling within messages.py.
Adding explicit references to MediaTime so the proper header is used and all
sources compile.
- Scripts/webkit/messages.py:
- 6:22 PM Changeset in webkit [258304] by
-
- 2 edits in trunk/Source/WebKit
[macOS] Register with accessibility when the WebContent process starts
https://bugs.webkit.org/show_bug.cgi?id=208960
Reviewed by Brent Fulgham.
When we reenabled CF prefs direct mode in <https://bugs.webkit.org/show_bug.cgi?id=208690>, we started to register
with accessibility when we received a message to do so from the UI process. This would typically happen when the user
enabled accessibility. On macOS, this notification does not work the same way as on iOS, and it is assumed that
accessibility should always be enabled. Therefore we should go back to registering with accessibility on startup of
the WebContent process on macOS.
- WebProcess/cocoa/WebProcessCocoa.mm:
(WebKit::WebProcess::platformInitializeProcess):
(WebKit::WebProcess::unblockAccessibilityServer):
- 6:22 PM Changeset in webkit [258303] by
-
- 4 edits2 adds in trunk
AX: accessibilityReplaceRange:withText: doesn't post an AXValueChanged notification like when typing with kb
https://bugs.webkit.org/show_bug.cgi?id=208332
<rdar://problem/58489685>
Patch by Canhai Chen <canhai_chen@apple.com> on 2020-03-11
Reviewed by Chris Fleizach.
Source/WebCore:
When accessibilityReplaceRange:withText: is called to insert or replace text, there should be a
AXValueChanged notification posted with the correct user info to notify the AX client that the text value
has been changed with detailed info about the change.
Post a notification in Editor::replaceSelectionWithFragment for EditAction::Insert edit type
with replaced text and selection.
Add a new test for text replacement value change notification in editable div, text input, and textarea,
including direct text insertion and replace-and-insert.
Test: accessibility/mac/replace-text-with-range-value-change-notification.html
- editing/Editor.cpp:
(WebCore::Editor::replaceSelectionWithFragment):
- editing/ReplaceSelectionCommand.h:
(WebCore::ReplaceSelectionCommand::documentFragmentPlainText const):
LayoutTests:
Test text replacement value change notification in editable div, text input, and textarea,
including direct text insertion and replace-and-insert.
- accessibility/mac/replace-text-with-range-value-change-notification-expected.txt: Added.
- accessibility/mac/replace-text-with-range-value-change-notification.html: Added.
- 6:10 PM Changeset in webkit [258302] by
-
- 9 edits in trunk/Source/WebKit
[GPUP] RemoteAudioDestination classes should require ENABLE(WEB_AUDIO)
https://bugs.webkit.org/show_bug.cgi?id=208956
Reviewed by Dean Jackson.
RemoteAudioDestinationProxy uses AudioBus directly. For ports that don't
ENABLE(WEB_AUDIO) there is no implementation and linker errors will occur after
building with ENABLE(GPU_PROCESS).
Add guards for ENABLE(WEB_AUDIO) around relevant implementations.
- GPUProcess/GPUConnectionToWebProcess.cpp:
(WebKit::GPUConnectionToWebProcess::dispatchMessage):
(WebKit::GPUConnectionToWebProcess::dispatchSyncMessage):
- GPUProcess/GPUConnectionToWebProcess.h:
- GPUProcess/media/RemoteAudioDestinationManager.cpp:
- GPUProcess/media/RemoteAudioDestinationManager.h:
- GPUProcess/media/RemoteAudioDestinationManager.messages.in:
- WebProcess/GPU/media/RemoteAudioDestinationProxy.cpp:
- WebProcess/GPU/media/RemoteAudioDestinationProxy.h:
- WebProcess/GPU/media/RemoteAudioDestinationProxy.messages.in:
- 5:33 PM Changeset in webkit [258301] by
-
- 3 edits in branches/safari-610.1.7-branch/Source/WebCore
Cherry-pick r258297. rdar://problem/60347323
AX: Isolated tree: enabling secondary thread for the wrong clients
https://bugs.webkit.org/show_bug.cgi?id=208950
Reviewed by Chris Fleizach.
Removed incorrect call to _AXUIElementUseSecondaryAXThread and wrap it
in initializeSecondaryAXThread with the appropriate checks.
- accessibility/AXObjectCache.cpp: (WebCore::AXObjectCache::isolatedTreeFocusedObject): (WebCore::AXObjectCache::initializeSecondaryAXThread): (WebCore::AXObjectCache::isolatedTreeRootObject):
- accessibility/AXObjectCache.h:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@258297 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 5:33 PM Changeset in webkit [258300] by
-
- 6 edits in branches/safari-610.1.7-branch/Source/WebKit
Cherry-pick r258296. rdar://problem/60348995
Add a parameter to allow ignoring app-bound domain categorization
https://bugs.webkit.org/show_bug.cgi?id=208949
<rdar://problem/60239187>
Reviewed by Brent Fulgham.
Introduce a new parameter to ignore app-bound domain categorization
for specific WebViews.
- UIProcess/API/APIPageConfiguration.h: (API::PageConfiguration::ignoresAppBoundDomains const): (API::PageConfiguration::setIgnoresAppBoundDomains):
- UIProcess/API/Cocoa/WKWebViewConfiguration.mm: (-[WKWebViewConfiguration _ignoresAppBoundDomains]): (-[WKWebViewConfiguration _setIgnoresAppBoundDomains:]):
- UIProcess/API/Cocoa/WKWebViewConfigurationPrivate.h:
- UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::setIsNavigatingToAppBoundDomain):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@258296 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 5:30 PM Changeset in webkit [258299] by
-
- 2 edits in trunk/LayoutTests
[WebGL] Additional WebGL bot gardening
https://bugs.webkit.org/show_bug.cgi?id=208961
Unreviewed test gardening.
- webgl/TestExpectations:
- 4:58 PM Changeset in webkit [258298] by
-
- 3 edits in trunk/Source/WebKit
Unreviewed, reverting r258294.
https://bugs.webkit.org/show_bug.cgi?id=208957
Introduced API failure (Requested by perarne on #webkit).
Reverted changeset:
"[macOS] _AXSApplicationAccessibilityEnabled should not be
called"
https://bugs.webkit.org/show_bug.cgi?id=208953
https://trac.webkit.org/changeset/258294
Patch by Commit Queue <commit-queue@webkit.org> on 2020-03-11
- 4:56 PM Changeset in webkit [258297] by
-
- 3 edits in trunk/Source/WebCore
AX: Isolated tree: enabling secondary thread for the wrong clients
https://bugs.webkit.org/show_bug.cgi?id=208950
Reviewed by Chris Fleizach.
Removed incorrect call to _AXUIElementUseSecondaryAXThread and wrap it
in initializeSecondaryAXThread with the appropriate checks.
- accessibility/AXObjectCache.cpp:
(WebCore::AXObjectCache::isolatedTreeFocusedObject):
(WebCore::AXObjectCache::initializeSecondaryAXThread):
(WebCore::AXObjectCache::isolatedTreeRootObject):
- accessibility/AXObjectCache.h:
- 4:53 PM Changeset in webkit [258296] by
-
- 6 edits in trunk/Source/WebKit
Add a parameter to allow ignoring app-bound domain categorization
https://bugs.webkit.org/show_bug.cgi?id=208949
<rdar://problem/60239187>
Reviewed by Brent Fulgham.
Introduce a new parameter to ignore app-bound domain categorization
for specific WebViews.
- UIProcess/API/APIPageConfiguration.h:
(API::PageConfiguration::ignoresAppBoundDomains const):
(API::PageConfiguration::setIgnoresAppBoundDomains):
- UIProcess/API/Cocoa/WKWebViewConfiguration.mm:
(-[WKWebViewConfiguration _ignoresAppBoundDomains]):
(-[WKWebViewConfiguration _setIgnoresAppBoundDomains:]):
- UIProcess/API/Cocoa/WKWebViewConfigurationPrivate.h:
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::setIsNavigatingToAppBoundDomain):
- 4:49 PM Changeset in webkit [258295] by
-
- 26 edits in trunk/Source
[EME] Issue an "encrypted" event when a new encrypted initialization segment is encountered
https://bugs.webkit.org/show_bug.cgi?id=208923
Reviewed by Eric Carlson.
Source/WebCore:
When AVStreamDataParser encounters an initialization segment indicating encrypted content, it
will issue a -streamDataParser:didProvideContentKeyRequestInitializationData:forTrackID: message
to its delegate. If the parser is already associated with an AVContentKeySession, it will instead
allow the session to handle the initialization segment and the delagete method will not be called.
When the latter situation occurs, we can detect that the -didProvideRequest callback did not
occur due to the client calling MediaKeySession.generateRequest() and therefore must have been
due to parsing an encrypted segment. In response, store the request in a list of "unexpected"
requests to be checked the next time a MediaKeySession tries to generateRequest(). Then, we will
pass the initalizationData and type to HTMLMediaElement through a new client interface, where it
will use that initializationData to issue an "encrypted" event. If the client passes that same
initializationData back into MediaKeySession, the "unexpected" request can be found, and re-used.
Drive-by fixes: Added a ton of debug logging messages to the CDMPrivate classes.
- Modules/encryptedmedia/CDM.cpp:
(WebCore::CDM::CDM):
- Modules/encryptedmedia/CDM.h:
- Modules/encryptedmedia/CDMClient.h:
- Modules/encryptedmedia/MediaKeySession.cpp:
(WebCore::MediaKeySession::create):
(WebCore::MediaKeySession::MediaKeySession):
- Modules/encryptedmedia/MediaKeySession.h:
- Modules/encryptedmedia/MediaKeySystemAccess.cpp:
(WebCore::MediaKeySystemAccess::createMediaKeys):
- Modules/encryptedmedia/MediaKeySystemAccess.h:
- Modules/encryptedmedia/MediaKeySystemAccess.idl:
- Modules/encryptedmedia/MediaKeys.cpp:
(WebCore::MediaKeys::MediaKeys):
(WebCore::MediaKeys::createSession):
(WebCore::MediaKeys::setServerCertificate):
(WebCore::MediaKeys::attachCDMClient):
(WebCore::MediaKeys::detachCDMClient):
(WebCore::MediaKeys::attemptToResumePlaybackOnClients):
(WebCore::MediaKeys::unrequestedInitializationDataReceived):
(WebCore::MediaKeys::nextChildIdentifier const):
- Modules/encryptedmedia/MediaKeys.h:
(WebCore::MediaKeys::create): Deleted.
(WebCore::MediaKeys::cdmInstance): Deleted.
(WebCore::MediaKeys::cdmInstance const): Deleted.
- Modules/encryptedmedia/MediaKeys.idl:
- WebCore.xcodeproj/project.pbxproj:
- html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::cdmClientUnrequestedInitializationDataReceived):
- html/HTMLMediaElement.h:
- platform/encryptedmedia/CDMFactory.h:
- platform/encryptedmedia/CDMInstance.h:
(WebCore::CDMInstance::setClient):
(WebCore::CDMInstance::clearClient):
(WebCore::CDMInstance::setLogger):
- platform/encryptedmedia/CDMInstanceSession.h:
(WebCore::CDMInstanceSession::setLogger):
(WebCore::CDMInstanceSession::setClient):
- platform/encryptedmedia/CDMPrivate.h:
(WebCore::CDMPrivate::setLogger):
- platform/graphics/avfoundation/CDMFairPlayStreaming.cpp:
(WebCore::logChannel):
(WebCore::CDMPrivateFairPlayStreaming::setLogger):
(WebCore::CDMPrivateFairPlayStreaming::supportsConfiguration const):
- platform/graphics/avfoundation/CDMFairPlayStreaming.h:
- platform/graphics/avfoundation/objc/CDMInstanceFairPlayStreamingAVFObjC.h:
- platform/graphics/avfoundation/objc/CDMInstanceFairPlayStreamingAVFObjC.mm:
(WebCore::logChannel):
(WebCore::initTypeForRequest):
(WebCore::CDMInstanceFairPlayStreamingAVFObjC::setLogger):
(WebCore::CDMInstanceFairPlayStreamingAVFObjC::takeUnexpectedKeyRequestForInitializationData):
(WebCore::CDMInstanceFairPlayStreamingAVFObjC::setServerCertificate):
(WebCore::CDMInstanceFairPlayStreamingAVFObjC::setStorageDirectory):
(WebCore::CDMInstanceFairPlayStreamingAVFObjC::setClient):
(WebCore::CDMInstanceFairPlayStreamingAVFObjC::clearClient):
(WebCore::CDMInstanceFairPlayStreamingAVFObjC::didProvideRequest):
(WebCore::CDMInstanceFairPlayStreamingAVFObjC::didProvideRequests):
(WebCore::CDMInstanceFairPlayStreamingAVFObjC::didProvideRenewingRequest):
(WebCore::CDMInstanceFairPlayStreamingAVFObjC::didProvidePersistableRequest):
(WebCore::CDMInstanceFairPlayStreamingAVFObjC::didFailToProvideRequest):
(WebCore::CDMInstanceFairPlayStreamingAVFObjC::requestDidSucceed):
(WebCore::CDMInstanceFairPlayStreamingAVFObjC::shouldRetryRequestForReason):
(WebCore::CDMInstanceFairPlayStreamingAVFObjC::groupSessionIdentifierChanged):
(WebCore::CDMInstanceFairPlayStreamingAVFObjC::sessionForRequest const):
(WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::setLogger):
(WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::requestLicense):
(WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::updateLicense):
(WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::loadSession):
(WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::closeSession):
(WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::removeSessionData):
(WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::setClient):
(WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::hasRequest const):
Source/WebCore/PAL:
- pal/spi/cocoa/AVFoundationSPI.h:
Source/WTF:
- wtf/LoggerHelper.h:
(WTF::LoggerHelper::childLogIdentifier): Made static.
- 4:27 PM Changeset in webkit [258294] by
-
- 3 edits in trunk/Source/WebKit
[macOS] _AXSApplicationAccessibilityEnabled should not be called
https://bugs.webkit.org/show_bug.cgi?id=208953
Reviewed by Brent Fulgham.
This function should only be called on iOS, not on macOS.
- UIProcess/Cocoa/WebProcessPoolCocoa.mm:
(WebKit::WebProcessPool::platformInitializeWebProcess):
- UIProcess/Cocoa/WebProcessProxyCocoa.mm:
(WebKit::WebProcessProxy::unblockAccessibilityServerIfNeeded):
- 3:42 PM Changeset in webkit [258293] by
-
- 30 edits in trunk
[WebAuthn] Formalize the Keychain schema
https://bugs.webkit.org/show_bug.cgi?id=183533
<rdar://problem/43347926>
Reviewed by Brent Fulgham.
Source/WebCore:
Covered by new test contents within existing files.
- Modules/webauthn/AuthenticatorAssertionResponse.cpp:
(WebCore::AuthenticatorAssertionResponse::create):
(WebCore::AuthenticatorAssertionResponse::AuthenticatorAssertionResponse):
- Modules/webauthn/AuthenticatorAssertionResponse.h:
Modifies the constructors to accept userEntity.name.
- Modules/webauthn/cbor/CBORValue.h:
Adds a FIXME.
- testing/MockWebAuthenticationConfiguration.h:
(WebCore::MockWebAuthenticationConfiguration::LocalConfiguration::encode const):
(WebCore::MockWebAuthenticationConfiguration::LocalConfiguration::decode):
- testing/MockWebAuthenticationConfiguration.idl:
Modifies the test infra to use Credential ID as the unique identifier for a credential instead of
the original combination of RP ID and user handle.
Source/WebKit:
This patch formalizes the schema for the Keychain as follows:
kSecAttrLabel: RP ID
kSecAttrApplicationLabel: Credential ID (auto-gen by Keychain)
kSecAttrApplicationTag: { "id": UserEntity.id, "name": UserEntity.name } (CBOR encoded)
Noted, the vale of kSecAttrApplicationLabel is automatically generated by the Keychain, which is a SHA-1 hash of
the public key.
According to the Step 7. from https://www.w3.org/TR/webauthn/#op-make-cred, the following fields are mandatory
- rpId (rpEntity.id);
- userHandle (userEntity.id), this is required for authenticators that support resident keys;
- credentialId.
Some other optional fields are:
(from https://www.w3.org/TR/webauthn/#dictdef-publickeycredentialrpentity)
- rpEntity.name;
- rpEnitty.icon;
(from https://www.w3.org/TR/webauthn/#dictdef-publickeycredentialuserentity)
- userEntity.displayName;
- userEntity.name;
- userEntity.icon;
(from https://www.w3.org/TR/webauthn/#sign-counter)
- signature counter.
Among the six possible fields, only 4. is chosen to store. Here is why:
For rpEntity, rpEntity.id which is either the domain or the eTLD + 1 of the website is
sufficient enough to either classify the credential or serving the UI. Also, this is the only
trustworthy information that the UserAgent produce. Others could potentially be used by
malicious websites for attacking the Keychain or spoofing/phishing users when being displayed
in the UI. Also, rpEnitty.icon is a URL to the website's favicon, which if not implemented
correctly can be used for tracking.
For userEntity, userEntity.name is the human readable version of userEntity.id, and therefore
is chosen to store such that later on WebKit can pass it to UI client to help users disambiguate
different credentials. And it is necessary as userEntity.id is not guaranteed to be human
readable. Others are abandoned for the very same reason as above.
We hard code a zero value for 'signature counter'. While this is a theoretically interesting
technique for a RP to detect private key cloning, it is unlikely to be useful in practice.
We store the private keys in our SEP. This counter would only be a meaningful protection if
adversaries were able to extract private key data from the SEP without Apple noticing, but
were not able to manipulate this counter to fool the RP.
In terms of the schema,
1) RP ID is needed to query all credentials related, and therefore it needs a column and kSecAttrLabel
is supposed to be human readable;
2) kSecAttrApplicationLabel is the auto generated programmatical identifier for a SecItem, and
therefore is suitable as the credential ID. Given the input to the SHA-1 is generated by us, and
it is only needed to be powerful enough to be unique across the keychain within a device, and potentially
to be unique across different other credential ID for the same user. The SHA-1 collision attack
doesn't seem valid here.
3) kSecAttrApplicationTag is the only other column Keychain allows applications to modify. Therefore,
UserEntity.id and UserEntity.name is bundled to use this slot. The reason to use CBOR here is that
it is more friendly then JSON to encode binaries, and it is used widely in WebAuthn.
- UIProcess/WebAuthentication/Cocoa/LocalAuthenticator.h:
- UIProcess/WebAuthentication/Cocoa/LocalAuthenticator.mm:
(WebKit::LocalAuthenticatorInternal::toArrayBuffer):
(WebKit::LocalAuthenticatorInternal::getExistingCredentials):
(WebKit::LocalAuthenticator::makeCredential):
(WebKit::LocalAuthenticator::continueMakeCredentialAfterUserVerification):
(WebKit::LocalAuthenticator::continueMakeCredentialAfterAttested):
(WebKit::LocalAuthenticator::getAssertion):
(WebKit::LocalAuthenticator::deleteDuplicateCredential const):
- UIProcess/WebAuthentication/Mock/MockLocalConnection.mm:
(WebKit::MockLocalConnection::filterResponses const):
Tools:
Modifies the test infra to use Credential ID as the unique identifier for a credential instead of
the original combination of RP ID and user handle.
- WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl:
- WebKitTestRunner/InjectedBundle/TestRunner.cpp:
(WTR::TestRunner::cleanUpKeychain):
(WTR::TestRunner::keyExistsInKeychain):
- WebKitTestRunner/InjectedBundle/TestRunner.h:
- WebKitTestRunner/TestController.h:
- WebKitTestRunner/TestInvocation.cpp:
(WTR::TestInvocation::didReceiveSynchronousMessageFromInjectedBundle):
- WebKitTestRunner/cocoa/TestControllerCocoa.mm:
(WTR::TestController::cleanUpKeychain):
(WTR::TestController::keyExistsInKeychain):
LayoutTests:
New tests are added and all tests are modified to use Credential ID to identify a credential instead
of { RP ID, user handle }.
- http/wpt/webauthn/public-key-credential-create-failure-local-silent.https-expected.txt:
- http/wpt/webauthn/public-key-credential-create-failure-local-silent.https.html:
- http/wpt/webauthn/public-key-credential-create-failure-local.https-expected.txt:
- http/wpt/webauthn/public-key-credential-create-failure-local.https.html:
- http/wpt/webauthn/public-key-credential-create-success-local.https-expected.txt:
- http/wpt/webauthn/public-key-credential-create-success-local.https.html:
- http/wpt/webauthn/public-key-credential-get-failure-local-silent.https-expected.txt:
- http/wpt/webauthn/public-key-credential-get-failure-local-silent.https.html:
- http/wpt/webauthn/public-key-credential-get-failure-local.https.html:
- http/wpt/webauthn/public-key-credential-get-success-local.https.html:
- http/wpt/webauthn/resources/util.js:
- 3:26 PM Changeset in webkit [258292] by
-
- 2 edits in branches/safari-610.1.7-branch/Source/WebKit
Cherry-pick r258289. rdar://problem/60341123
[macOS] Crash under WebKit::WebProcessPool::platformInitialize()
https://bugs.webkit.org/show_bug.cgi?id=208945
Unreviewed temporary compile fix.
- UIProcess/Cocoa/WebProcessProxyCocoa.mm: (WebKit::WebProcessProxy::unblockAccessibilityServerIfNeeded):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@258289 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 3:26 PM Changeset in webkit [258291] by
-
- 3 edits in branches/safari-610.1.7-branch/Source/WebKit
Cherry-pick r258288. rdar://problem/60341123
[macOS] Crash under WebKit::WebProcessPool::platformInitialize()
https://bugs.webkit.org/show_bug.cgi?id=208945
Reviewed by Tim Horton.
Check that accessibility library is present before attempting to call functions in it.
No new tests, since I am not able to reproduce.
- UIProcess/Cocoa/WebProcessPoolCocoa.mm: (WebKit::WebProcessPool::platformInitializeWebProcess):
- UIProcess/Cocoa/WebProcessProxyCocoa.mm: (WebKit::WebProcessProxy::unblockAccessibilityServerIfNeeded):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@258288 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 3:22 PM Changeset in webkit [258290] by
-
- 2 edits in branches/safari-610.1.7-branch/Source/WebKit
Cherry-pick r258225. rdar://problem/60342513
File upload cancels before files can be uploaded.
https://bugs.webkit.org/show_bug.cgi?id=208846
<rdar://problem/60244249>
Reviewed by Tim Horton.
With the new UIContextMenus, we needed to cancel in order for everything to be
reset correctly in WebCore. But this can only be done in the animation completion
handler, but we only want to cancel if we aren't presenting a different picker.
- UIProcess/ios/forms/WKFileUploadPanel.mm: (-[WKFileUploadPanel contextMenuInteraction:configurationForMenuAtLocation:]): (-[WKFileUploadPanel contextMenuInteraction:willEndForConfiguration:animator:]): (-[WKFileUploadPanel ensureContextMenuInteraction]):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@258225 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 3:18 PM Changeset in webkit [258289] by
-
- 2 edits in trunk/Source/WebKit
[macOS] Crash under WebKit::WebProcessPool::platformInitialize()
https://bugs.webkit.org/show_bug.cgi?id=208945
Unreviewed temporary compile fix.
- UIProcess/Cocoa/WebProcessProxyCocoa.mm:
(WebKit::WebProcessProxy::unblockAccessibilityServerIfNeeded):
- 3:01 PM Changeset in webkit [258288] by
-
- 3 edits in trunk/Source/WebKit
[macOS] Crash under WebKit::WebProcessPool::platformInitialize()
https://bugs.webkit.org/show_bug.cgi?id=208945
Reviewed by Tim Horton.
Check that accessibility library is present before attempting to call functions in it.
No new tests, since I am not able to reproduce.
- UIProcess/Cocoa/WebProcessPoolCocoa.mm:
(WebKit::WebProcessPool::platformInitializeWebProcess):
- UIProcess/Cocoa/WebProcessProxyCocoa.mm:
(WebKit::WebProcessProxy::unblockAccessibilityServerIfNeeded):
- 2:57 PM Changeset in webkit [258287] by
-
- 2 edits in trunk/Source/WebCore
REGRESSION (r257502): HitTestLocation::HitTestLocation(const FloatPoint&, const FloatQuad&) should set m_isRectBased to true
https://bugs.webkit.org/show_bug.cgi?id=208947
Reviewed by Wenson Hsieh.
Partial revert of r257502. I accidentally removed initialization of m_isRectBased when refactoring
the code in HitTestLocation::HitTestLocation(const FloatPoint&, const FloatQuad&). Revert this to
be faithful to the code before my change.
- rendering/HitTestLocation.cpp:
- 2:43 PM Changeset in webkit [258286] by
-
- 6 edits in trunk
Test262-runner should always consider crashes as new failures
https://bugs.webkit.org/show_bug.cgi?id=208943
Reviewed by Yusuke Suzuki.
JSTests:
- test262/expectations.yaml:
Source/JavaScriptCore:
BigInt.asUintN() / BigInt.asIntN() should not crash when called even if we have
not implemented them yet...
- runtime/BigIntConstructor.cpp:
(JSC::bigIntConstructorFuncAsUintN):
(JSC::bigIntConstructorFuncAsIntN):
Tools:
Right now the runner will consider crashes with no output as passes, which is obviously bad.
Since we should never crash on a conformance test we should consider a crash as a new failure
100% of the time.
- Scripts/test262/Runner.pm:
(processFile):
(runTest):
(processResult):
- 2:32 PM Changeset in webkit [258285] by
-
- 4 edits in branches/safari-610.1.7-branch/Source
Cherry-pick r258284. rdar://problem/60341123
[macOS] Crash under WebKit::WebProcessPool::platformInitialize()
https://bugs.webkit.org/show_bug.cgi?id=208945
Source/WebKit:
<rdar://problem/60330751>
Reviewed by Brent Fulgham.
Check that accessibility library is present before attempting to use constants from it.
No new tests, since I am unable to reproduce.
- UIProcess/Cocoa/WebProcessPoolCocoa.mm: (WebKit::WebProcessPool::registerNotificationObservers): (WebKit::WebProcessPool::unregisterNotificationObservers):
Source/WTF:
Reviewed by Brent Fulgham.
Add macro to optionally soft link library.
- wtf/cocoa/SoftLinking.h:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@258284 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 2:25 PM Changeset in webkit [258284] by
-
- 4 edits in trunk/Source
[macOS] Crash under WebKit::WebProcessPool::platformInitialize()
https://bugs.webkit.org/show_bug.cgi?id=208945
Source/WebKit:
<rdar://problem/60330751>
Reviewed by Brent Fulgham.
Check that accessibility library is present before attempting to use constants from it.
No new tests, since I am unable to reproduce.
- UIProcess/Cocoa/WebProcessPoolCocoa.mm:
(WebKit::WebProcessPool::registerNotificationObservers):
(WebKit::WebProcessPool::unregisterNotificationObservers):
Source/WTF:
Reviewed by Brent Fulgham.
Add macro to optionally soft link library.
- wtf/cocoa/SoftLinking.h:
- 2:02 PM Changeset in webkit [258283] by
-
- 4 edits in trunk/Source
Enable safe browsing warnings in Mac Catalyst WebKit
https://bugs.webkit.org/show_bug.cgi?id=208944
<rdar://problem/58854302>
Reviewed by Tim Horton.
Source/WebKit:
I manually verified using the steps in the radar that it works as one would hope.
- Configurations/WebKit.xcconfig:
Source/WTF:
- wtf/PlatformHave.h:
- 2:00 PM Changeset in webkit [258282] by
-
- 3 edits2 adds in trunk
icloud.com Notes text in titles and headings is distorted
https://bugs.webkit.org/show_bug.cgi?id=208908
<rdar://problem/58874371>
Reviewed by Zalan Bujtas.
Source/WebCore:
icloud.com Notes determines if a font has finished loading by measuring it repeatedly.
Depending on the state of the page, we may slice the text differently in different
circumstances. These slices are all supposed to sum together equivalently, but
floating point precision may cause the results to be slightly off.
WidthIterator::applyFontTransforms() was summing a large list of numbers, and then
subtracting the same large list of numbers. A more robust design would be to sum
it twice, and then subtract the two sums.
Test: fast/text/shaping-width-precision.html
- platform/graphics/WidthIterator.cpp:
(WebCore::WidthIterator::applyFontTransforms):
LayoutTests:
- fast/text/shaping-width-precision-expected.txt: Added.
- fast/text/shaping-width-precision.html: Added.
- 1:47 PM Changeset in webkit [258281] by
-
- 2 edits in trunk/LayoutTests
[WPE] Gardening, update TestExpectations
https://bugs.webkit.org/show_bug.cgi?id=208939
Unreviewed gardening.
- platform/wpe/TestExpectations:
- 1:32 PM Changeset in webkit [258280] by
-
- 2 edits in trunk/Source/WebKit
Fix the macCatalyst build after r258250
- WebProcess/WebPage/Cocoa/TextCheckingControllerProxy.mm:
(WebKit::TextCheckingControllerProxy::annotatedSubstringBetweenPositions):
- 1:26 PM Changeset in webkit [258279] by
-
- 5 edits5 adds in trunk
Throws incorrectly a syntax error when declaring a top level catch variable the same as a parameter
https://bugs.webkit.org/show_bug.cgi?id=189914
Reviewed by Saam Barati.
JSTests:
- ChakraCore/test/es6/globalParamCatchNewTargetSyntaxError.baseline-jsc:
- stress/catch-destructuring-shadow-lexical-const-variable-global.js: Added.
(catch):
- stress/catch-destructuring-shadow-lexical-variable-class.js: Added.
(Foo):
(Bar):
(Baz):
- stress/catch-destructuring-shadow-lexical-variable-function.js: Added.
(foo):
(bar):
- stress/catch-destructuring-shadow-lexical-variable-global.js: Added.
(catch):
- stress/catch-destructuring-shadow-var-global.js: Added.
(catch):
- test262/expectations.yaml:
Source/JavaScriptCore:
When we are parsing catch block parameters we should increment the statement depth so we don't think
we are trying to shadow top level lexical variables in the same statement depth.
- parser/Parser.cpp:
(JSC::Parser<LexerType>::parseTryStatement):
- 1:22 PM Changeset in webkit [258278] by
-
- 5 edits in trunk/Source/WebCore
SVG filter triggers unstable layout.
https://bugs.webkit.org/show_bug.cgi?id=207444
rdar://problem/59297004
Reviewed by Simon Fraser.
SVG filter code marks DOM nodes dirty and schedules style recalc outside of the SVG root
while in layout. This could lead to unstable layout and cause battery drain.
(See webkit.org/b/208903)
- rendering/RenderLayer.cpp: Remove filterNeedsRepaint(). It's a dangerously misleading name and should
not be part of RenderLayer.
(WebCore::RenderLayer::calculateClipRects const):
- rendering/RenderLayer.h:
- rendering/RenderLayerFilters.cpp:
(WebCore::RenderLayerFilters::notifyFinished):
- rendering/svg/RenderSVGResourceContainer.cpp:
(WebCore::RenderSVGResourceContainer::markAllClientsForInvalidation):
(WebCore::RenderSVGResourceContainer::markAllClientLayersForInvalidation):
- 1:19 PM Changeset in webkit [258277] by
-
- 3 edits in trunk/Source/WebKit
Terminate the Network / Plugin processes when receiving invalid IPC from them
https://bugs.webkit.org/show_bug.cgi?id=208933
<rdar://problem/58026473>
Reviewed by Geoffrey Garen.
- UIProcess/Network/NetworkProcessProxy.cpp:
(WebKit::NetworkProcessProxy::didReceiveInvalidMessage):
- UIProcess/Plugins/PluginProcessProxy.cpp:
(WebKit::PluginProcessProxy::didReceiveInvalidMessage):
- 1:09 PM Changeset in webkit [258276] by
-
- 5 edits in trunk/LayoutTests
[ macOS wk1 ] imported/w3c/web-platform-tests/web-animations/timing-model/animations/pausing-an-animation.html is flaky failing
https://bugs.webkit.org/show_bug.cgi?id=207566
<rdar://problem/59355382>
Patch by Antoine Quint <graouts@webkit.org> on 2020-03-11
Reviewed by Dean Jackson.
LayoutTests/imported/w3c:
We silence the unhandled Promise warning so that the test output is both cleaner and more stable.
- web-platform-tests/web-animations/timing-model/animations/pausing-an-animation-expected.txt:
- web-platform-tests/web-animations/timing-model/animations/pausing-an-animation.html:
LayoutTests:
- platform/mac-wk1/TestExpectations:
- 1:06 PM Changeset in webkit [258275] by
-
- 5 edits in trunk/LayoutTests
REGRESSION: (r255821) [ iOS Mac wk1 ] imported/w3c/web-platform-tests/web-animations/timing-model/animations/finishing-an-animation.html
https://bugs.webkit.org/show_bug.cgi?id=207278
<rdar://problem/59195524>
Patch by Antoine Quint <graouts@webkit.org> on 2020-03-11
Reviewed by Dean Jackson.
LayoutTests/imported/w3c:
We silence the unhandled Promise warning so that the test output is both cleaner and more stable.
- web-platform-tests/web-animations/timing-model/animations/finishing-an-animation.html:
LayoutTests:
- platform/ios/TestExpectations:
- platform/mac-wk1/TestExpectations:
- 1:04 PM Changeset in webkit [258274] by
-
- 4 edits in trunk
[Mac wk2 Release] imported/w3c/web-platform-tests/web-animations/timing-model/animations/updating-the-finished-state.html flaky fail
https://bugs.webkit.org/show_bug.cgi?id=206746
<rdar://problem/58867580>
Patch by Antoine Quint <graouts@webkit.org> on 2020-03-11
Reviewed by Dean Jackson.
Source/WebCore:
Because we could end up in situation where localTime was very marginally smaller than endTime inside of WebAnimation::play(), we would end up
with an unresolved hold time and we would return before calling WebAnimation::timingDidChange() and thus scheduling an animation update from
the timeline because we'd assume it was paused. As a result, the animation would never end and the test would wait for a "finish" event which
would never come.
We now account for an epsilon value when comparing times to account for such situations.
- animation/WebAnimation.cpp:
(WebCore::WebAnimation::play):
LayoutTests:
- platform/mac-wk2/TestExpectations:
- 12:50 PM Changeset in webkit [258273] by
-
- 2 edits in trunk/Source/WebKit
Fix the macCatalyst build after r258250
- WebProcess/WebPage/Cocoa/TextCheckingControllerProxy.mm:
- 12:34 PM Changeset in webkit [258272] by
-
- 4 edits in trunk
Assertion hit under WebPageProxy::suspendCurrentPageIfPossible() when bypassing certificate warning page
https://bugs.webkit.org/show_bug.cgi?id=208927
<rdar://problem/55448331>
Reviewed by Alex Christensen.
Source/WebKit:
When suspending a previous page after a process-swap, we refuse to do the suspension if the currently
committed URL does not match the url of the current back/forward list item. This makes sense since we
will store the suspended page on the back/forward list item and restore that back when navigating back
to that item. I had a debug assertion in there to help me figure out how this could happen. It turns
out that calling loadAlternateHTML on the view will replace the content of the view with the provided
HTML string, update the committed URL but not create a new back/forward list item. This is so that
if you reload or go/back to this back/forward list item, we will attempt to load the original URL
again. This would however trip my assertion. I am therefore removing my debug assertion and adding API
test coverage.
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::suspendCurrentPageIfPossible):
Tools:
Add API test coverage.
- TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:
- 11:34 AM Changeset in webkit [258271] by
-
- 5 edits in trunk/Tools
[GTK] Switch EWS api-gtk bot from buildAndTest to testOnly
https://bugs.webkit.org/show_bug.cgi?id=208860
Reviewed by Carlos Alberto Lopez Perez.
- BuildSlaveSupport/ews-app/ews/views/statusbubble.py:
(StatusBubble): Added 'api-gtk'.
- BuildSlaveSupport/ews-build/config.json:
- BuildSlaveSupport/ews-build/factories.py:
(BuildFactory.init): Call InstallGTKDependencies() if platform is
GTK.
(TestFactory.init): Call InstallGTKDependencies() if platform is
GTK.
(GTKBuildFactory):
(GTKBuildFactory.init): Deleted.
(GTKBuildAndTestFactory): Deleted.
(GTKBuildAndTestFactory.init): Deleted.
(GTKAPIBuildAndTestFactory): Deleted.
- BuildSlaveSupport/ews-build/loadConfig.py:
- 11:01 AM Changeset in webkit [258270] by
-
- 2 edits in trunk/LayoutTests
REGRESSION: (r257915?) [ Mac ] accessibility/accessibility-node-memory-management.html is flaky failing.
https://bugs.webkit.org/show_bug.cgi?id=208930
Unreviewed test gardening.
- platform/mac/TestExpectations:
- 10:42 AM Changeset in webkit [258269] by
-
- 9 edits1 add in trunk/Source/WebKit
Introduce ResourceLoadStatisticsParameters and move members from NetworkSessionCreationParameters
https://bugs.webkit.org/show_bug.cgi?id=208895
Patch by Alex Christensen <achristensen@webkit.org> on 2020-03-11
Reviewed by Youenn Fablet.
No change in behavior yet, but this will help us organize things better.
- NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::initializeNetworkProcess):
- NetworkProcess/NetworkSession.cpp:
(WebKit::NetworkSession::NetworkSession):
- NetworkProcess/NetworkSessionCreationParameters.cpp:
(WebKit::NetworkSessionCreationParameters::encode const):
(WebKit::NetworkSessionCreationParameters::decode):
- NetworkProcess/NetworkSessionCreationParameters.h:
- NetworkProcess/cocoa/NetworkSessionCocoa.mm:
(WebKit::NetworkSessionCocoa::NetworkSessionCocoa):
- Shared/ResourceLoadStatisticsParameters.h: Added.
(WebKit::ResourceLoadStatisticsParameters::encode const):
(WebKit::ResourceLoadStatisticsParameters::decode):
- UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::ensureNetworkProcess):
- UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm:
(WebKit::WebsiteDataStore::parameters):
- WebKit.xcodeproj/project.pbxproj:
- 10:30 AM Changeset in webkit [258268] by
-
- 8 edits1 copy1 add in trunk
Defer async scripts until DOMContentLoaded or first paint, whichever comes first
https://bugs.webkit.org/show_bug.cgi?id=208896
Reviewed by Darin Adler.
LayoutTests/imported/w3c:
Rebbaseline WPT test due to script execution timing change.
- web-platform-tests/html/semantics/scripting-1/the-script-element/execution-timing/085-expected.txt:
Source/WebCore:
Defer async scripts until DOMContentLoaded or first paint, whichever comes first. In
Bug 207698, we deferred them until DOMContentLoaded, as a first-paint optimization.
However, this seems overly aggressive on pages like wikipedia and it is sufficient
to defer those scripts until first-paint to get the performance win.
- dom/Document.cpp:
(WebCore::Document::shouldDeferAsynchronousScriptsUntilParsingFinishes const):
- page/Settings.yaml:
Source/WebKit:
Defer async scripts until DOMContentLoaded or first paint, whichever comes first. In
Bug 207698, we deferred them until DOMContentLoaded, as a first-paint optimization.
However, this seems overly aggressive on pages like wikipedia and it is sufficient
to defer those scripts until first-paint to get the performance win.
- Shared/WebPreferences.yaml:
- UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _setupPageConfiguration:]):
- 10:05 AM Changeset in webkit [258267] by
-
- 2 edits in trunk/Source/WebCore
Consolidate detachment of document timeline into Document::commonTeardown.
https://bugs.webkit.org/show_bug.cgi?id=208786
<rdar://problem/59936716>
Patch by Jack Lee <Jack Lee> on 2020-03-11
Reviewed by Ryosuke Niwa.
Move detachment of DocumentTimeline to Document::commonTeardown().
No new tests. Covered by existing document tests.
- dom/Document.cpp:
(WebCore::Document::removedLastRef):
(WebCore::Document::commonTeardown):
(WebCore::Document::prepareForDestruction):
- 9:50 AM Changeset in webkit [258266] by
-
- 18 edits in trunk/Source
Unreviewed, reverting r258263.
https://bugs.webkit.org/show_bug.cgi?id=208922
it is breaking internal builds (Requested by youenn on
#webkit).
Reverted changeset:
"Move AudioSession interruption listener code to AudioSession"
https://bugs.webkit.org/show_bug.cgi?id=208714
https://trac.webkit.org/changeset/258263
- 9:41 AM Changeset in webkit [258265] by
-
- 2 edits in branches/safari-610.1.7-branch/Source/WebKit
Cherry-pick r258252. rdar://problem/60310741
[iOS] A syscall is denied by the sandbox
https://bugs.webkit.org/show_bug.cgi?id=208892
<rdar://problem/60294880>
Reviewed by Brent Fulgham.
Add denied syscall to sandbox on iOS.
- Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@258252 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 9:41 AM Changeset in webkit [258264] by
-
- 2 edits in branches/safari-610.1.7-branch/Source/WebKit
Cherry-pick r258247. rdar://problem/60305091
Some common domains should always be App-bound domains
https://bugs.webkit.org/show_bug.cgi?id=208893
<rdar://problem/60280943>
Reviewed by Brent Fulgham.
Some domains, like about:blank and pages loaded from files should
always be considered app-bound.
- UIProcess/WebPageProxy.cpp: (WebKit::shouldBeTreatedAsAppBound): (WebKit::WebPageProxy::setIsNavigatingToAppBoundDomain):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@258247 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 8:46 AM Changeset in webkit [258263] by
-
- 18 edits in trunk/Source
Move AudioSession interruption listener code to AudioSession
https://bugs.webkit.org/show_bug.cgi?id=208714
Reviewed by Jer Noble.
Source/WebCore:
Move AudioSession interruption detection code from MediaSessionManagerIOS helper to AudioSessionIOS.
Add interruption observer capabilities to AudioSession and make MediaSessionManagerIOS an observer of it.
Manually tested.
- platform/audio/AudioSession.cpp:
(WebCore::AudioSession::addInterruptionObserver):
(WebCore::AudioSession::removeInterruptionObserver):
(WebCore::AudioSession::beginInterruption):
(WebCore::AudioSession::endInterruption):
- platform/audio/AudioSession.h:
- platform/audio/ios/AudioSessionIOS.mm:
(-[WebInterruptionObserverHelper initWithCallback:]):
(-[WebInterruptionObserverHelper dealloc]):
(-[WebInterruptionObserverHelper clearCallback]):
(-[WebInterruptionObserverHelper interruption:]):
(WebCore::AudioSessionPrivate::AudioSessionPrivate):
(WebCore::AudioSessionPrivate::~AudioSessionPrivate):
(WebCore::AudioSession::addInterruptionObserver):
(WebCore::AudioSession::removeInterruptionObserver):
(WebCore::AudioSession::beginInterruption):
(WebCore::AudioSession::endInterruption):
- platform/audio/ios/MediaSessionHelperIOS.h:
- platform/audio/ios/MediaSessionHelperIOS.mm:
(-[WebMediaSessionHelper initWithCallback:]):
- platform/audio/ios/MediaSessionManagerIOS.h:
- platform/audio/ios/MediaSessionManagerIOS.mm:
(WebCore::MediaSessionManageriOS::MediaSessionManageriOS):
(WebCore::MediaSessionManageriOS::~MediaSessionManageriOS):
(WebCore::MediaSessionManageriOS::providePresentingApplicationPIDIfNecessary):
Source/WebKit:
Make RemoteAudioSessionProxyManager an observer for AudioSession interruptions.
When being interrupted, notify all WebProcesses and trigger begin/end interruption mechanisms.
We only send interruption to sessions that are active in RemoteAudioSessionProxyManager.
Minor refactorting to move manager proxies from a map to a weak hash set.
- GPUProcess/GPUConnectionToWebProcess.cpp:
(WebKit::GPUConnectionToWebProcess::didClose):
(WebKit::GPUConnectionToWebProcess::audioSessionProxy):
- GPUProcess/media/RemoteAudioSessionProxy.cpp:
(WebKit::RemoteAudioSessionProxy::setCategory):
(WebKit::RemoteAudioSessionProxy::setPreferredBufferSize):
(WebKit::RemoteAudioSessionProxy::tryToSetActive):
- GPUProcess/media/RemoteAudioSessionProxyManager.cpp:
(WebKit::RemoteAudioSessionProxyManager::RemoteAudioSessionProxyManager):
(WebKit::RemoteAudioSessionProxyManager::~RemoteAudioSessionProxyManager):
(WebKit::RemoteAudioSessionProxyManager::addProxy):
(WebKit::RemoteAudioSessionProxyManager::removeProxy):
(WebKit::RemoteAudioSessionProxyManager::setCategoryForProcess):
(WebKit::RemoteAudioSessionProxyManager::setPreferredBufferSizeForProcess):
(WebKit::RemoteAudioSessionProxyManager::tryToSetActiveForProcess):
(WebKit::RemoteAudioSessionProxyManager::beginAudioSessionInterruption):
(WebKit::RemoteAudioSessionProxyManager::endAudioSessionInterruption):
- GPUProcess/media/RemoteAudioSessionProxyManager.h:
- GPUProcess/media/ios/RemoteMediaSessionHelperProxy.cpp:
- GPUProcess/media/ios/RemoteMediaSessionHelperProxy.h:
- WebProcess/GPU/media/ios/RemoteMediaSessionHelper.cpp:
- WebProcess/GPU/media/ios/RemoteMediaSessionHelper.h:
- WebProcess/GPU/media/ios/RemoteMediaSessionHelper.messages.in:
- 7:50 AM Changeset in webkit [258262] by
-
- 2 edits in trunk/LayoutTests
[WPE] Gardening, update TestExpectations related with WebGL 2.0.0 tests
https://bugs.webkit.org/show_bug.cgi?id=208916
Unreviewed gardening.
- platform/wpe/TestExpectations:
- 7:47 AM Changeset in webkit [258261] by
-
- 2 edits in trunk/Tools
[ews] Add unit test to prevent multiple schedulers for a builder.
https://bugs.webkit.org/show_bug.cgi?id=208917
Reviewed by Carlos Alberto Lopez Perez.
- BuildSlaveSupport/ews-build/loadConfig_unittest.py:
(ConfigDotJSONTest.test_multiple_scheduers_for_builder): Added unit test.
(TagsForBuilderTest): Fixed a typo.
- 7:40 AM Changeset in webkit [258260] by
-
- 3 edits2 adds in trunk
Crash in KeyframeEffect::getAnimatedStyle
https://bugs.webkit.org/show_bug.cgi?id=208318
<rdar://problem/59848234>
Patch by Jack Lee <Jack Lee> on 2020-03-11
Reviewed by Antoine Quint.
Source/WebCore:
Quit getAnimatedStyle if element is rendererless.
Test: fast/animation/keyframe-rendererless-element-crash.html
- animation/KeyframeEffect.cpp:
(WebCore::KeyframeEffect::getAnimatedStyle):
LayoutTests:
Quit getAnimatedStyle if element is rendererless.
- fast/animation/keyframe-rendererless-element-crash-expected.txt: Added.
- fast/animation/keyframe-rendererless-element-crash.html: Added.
- 5:44 AM Changeset in webkit [258259] by
-
- 2 edits in trunk/LayoutTests
[WPE] Gardening, update TestExpectations
https://bugs.webkit.org/show_bug.cgi?id=208912
Unreviewed gardening.
- platform/wpe/TestExpectations:
- 3:48 AM Changeset in webkit [258258] by
-
- 2 edits5 deletes in trunk/LayoutTests
Regression r258148: js/dom/navigator-maxtouchpoints.html is consistently failing on windows
https://bugs.webkit.org/show_bug.cgi?id=208856
Unreviewed test gardening.
Since Pointer Events are now enabled by default everywhere, we can remove platform-specific results
and rely on the generic expectation where the navigator.maxTouchPoints property is 0.
- js/dom/navigator-maxtouchpoints-expected.txt:
- platform/gtk/js/dom/navigator-maxtouchpoints-expected.txt: Removed.
- platform/ios/js/dom/navigator-maxtouchpoints-expected.txt: Removed.
- platform/mac/js/dom/navigator-maxtouchpoints-expected.txt: Removed.
- platform/win/js/dom/navigator-maxtouchpoints-expected.txt: Removed.
- platform/wpe/js/dom/navigator-maxtouchpoints-expected.txt: Removed.
- 2:53 AM Changeset in webkit [258257] by
-
- 1 edit2 deletes in trunk/LayoutTests
[WPE] Gardening, remove WPE specific expected results
https://bugs.webkit.org/show_bug.cgi?id=208909
Unreviewed gardening.
- platform/wpe/imported/w3c/web-platform-tests/fetch/api/redirect/redirect-mode.any-expected.txt: Removed.
- platform/wpe/imported/w3c/web-platform-tests/fetch/api/redirect/redirect-mode.any.worker-expected.txt: Removed.
- 2:20 AM Changeset in webkit [258256] by
-
- 2 edits in trunk/Tools
[GTK] Failing API tests under the Flatpak SDK environment
https://bugs.webkit.org/show_bug.cgi?id=208871
Reviewed by Michael Catanzaro.
The load-failed signal callback should return a boolean result,
otherwise we enter in unknown territory depending on how the
toolchain compiles this, possibly triggering bad behavior (with
GCC 9.2 from the Flatpak SDK) or not caring at all (with current
GCC toolchain on buildbots).
Patch suggested by Michael Catanzaro.
- TestWebKitAPI/glib/WebKitGLib/LoadTrackingTest.cpp:
(loadFailedCallback):
- 2:00 AM Changeset in webkit [258255] by
-
- 9 edits in trunk
[iOS] Unskip fast/mediastream tests
https://bugs.webkit.org/show_bug.cgi?id=208636
Reviewed by Eric Carlson.
Source/WebCore:
Add label to the settings so that we correctly send this information back to WebProcess.
Covered by existing tests.
- platform/mediastream/mac/AVVideoCaptureSource.mm:
(WebCore::AVVideoCaptureSource::settings):
- platform/mock/MockRealtimeAudioSource.cpp:
(WebCore::MockRealtimeAudioSource::settings):
- platform/mock/MockRealtimeVideoSource.cpp:
(WebCore::MockRealtimeVideoSource::settings):
LayoutTests:
- fast/mediastream/MediaStream-video-element-expected.txt:
- fast/mediastream/MediaStream-video-element.html:
Do not output sourceBuffer which is not supported in all platforms.
- fast/mediastream/MediaStreamTrack-getSettings-expected.txt:
- platform/ios/TestExpectations:
Mar 10, 2020:
- 11:22 PM Changeset in webkit [258254] by
-
- 6 edits in trunk
[OpenSSL] Implement WebCrypto APIs for AES-CTR and AES-KW
https://bugs.webkit.org/show_bug.cgi?id=208186
Patch by Tomoki Imai <Tomoki Imai> on 2020-03-10
Reviewed by Fujii Hironori.
Source/WebCore:
Added WebCrypto implementations for the following algorithms with OpenSSL.
- AES-CTR
- AES-KW
Enabled WebCrypto LayoutTests for AES-CTR and AES-KW.
- crypto/openssl/CryptoAlgorithmAES_CTROpenSSL.cpp:
(WebCore::aesAlgorithm): Added. Helper function to select which AES-CTR algorithm to be used by checking key size.
(WebCore::crypt): Added. Helper function shared by platformEncrypt/platformDecrypt.
(WebCore::CryptoAlgorithmAES_CTR::platformEncrypt): Implemented.
(WebCore::CryptoAlgorithmAES_CTR::platformDecrypt): Implemented.
- crypto/openssl/CryptoAlgorithmAES_KWOpenSSL.cpp:
(WebCore::aesAlgorithm): Added. Helper function to select which AES-KW algorithm to be used by checking key size.
(WebCore::cryptWrapKey): Added. Helper function for platformWrapKey.
(WebCore::cryptUnwrapKey): Added. Helper function for platformUnwrapKey.
(WebCore::CryptoAlgorithmAES_KW::platformWrapKey): Implemented.
(WebCore::CryptoAlgorithmAES_KW::platformUnwrapKey): Implemented.
- crypto/openssl/CryptoAlgorithmRegistryOpenSSL.cpp:
(WebCore::CryptoAlgorithmRegistry::platformRegisterAlgorithms): Registered CryptoAlgorithmAES_CTR and CryptoAlgorithmAES_KW.
LayoutTests:
Enabled WebCrypto LayoutTests for AES-CTR and AES-KW along with the implementations.
- platform/wincairo/TestExpectations:
- 10:44 PM Changeset in webkit [258253] by
-
- 23 edits in trunk/Source
[GPU Process] Work towards compiling out on non-Cocoa ports
https://bugs.webkit.org/show_bug.cgi?id=208899
Reviewed by Darin Adler.
Source/WebCore:
Add in additional headers required for GPU Process build.
- Headers.cmake:
Source/WebKit:
Work through some compilation issues on non-Cocoa ports when attempting to build
out the GPU Process. Fix platform guards for some methods. Fix compilation issues
for non-unified builds.
Add in CMake listing of messages.in and include directories required for building
with ENABLE_GPU_PROCESS.
- CMakeLists.txt:
- GPUProcess/GPUConnectionToWebProcess.cpp:
(WebKit::GPUConnectionToWebProcess::didClose):
- GPUProcess/GPUConnectionToWebProcess.messages.in:
- GPUProcess/GPUProcess.cpp:
- GPUProcess/graphics/RemoteImageBufferMessageHandlerProxy.h:
- GPUProcess/graphics/RemoteImageBufferProxy.h:
(WebKit::RemoteImageBufferProxy::create):
- GPUProcess/graphics/RemoteRenderingBackendProxy.cpp:
- GPUProcess/graphics/RemoteRenderingBackendProxy.h:
- GPUProcess/media/RemoteMediaPlayerProxy.cpp:
(WebKit::RemoteMediaPlayerProxy::getConfiguration):
(WebKit::RemoteMediaPlayerProxy::setVideoFullscreenGravity):
(WebKit::RemoteMediaPlayerProxy::updateVideoFullscreenInlineImage):
(WebKit::RemoteMediaPlayerProxy::setVideoFullscreenMode):
(WebKit::RemoteMediaPlayerProxy::videoFullscreenStandbyChanged):
(WebKit::RemoteMediaPlayerProxy::mediaPlayerReadyStateChanged):
(WebKit::RemoteMediaPlayerProxy::notifyTrackModeChanged):
- GPUProcess/media/RemoteMediaPlayerProxy.h:
- GPUProcess/media/RemoteMediaPlayerProxy.messages.in:
- UIProcess/GPU/GPUProcessProxy.h:
- WebProcess/GPU/GPUProcessConnection.cpp:
- WebProcess/GPU/graphics/ImageBufferShareableBitmapBackend.cpp:
- WebProcess/GPU/graphics/ImageBufferShareableBitmapBackend.h:
- WebProcess/GPU/graphics/RemoteImageBufferMessageHandler.h:
- WebProcess/GPU/graphics/RemoteRenderingBackend.cpp:
- WebProcess/GPU/media/AudioTrackPrivateRemote.h:
- WebProcess/GPU/media/MediaPlayerPrivateRemote.cpp:
- WebProcess/GPU/media/TextTrackPrivateRemote.h:
- 9:51 PM Changeset in webkit [258252] by
-
- 2 edits in trunk/Source/WebKit
[iOS] A syscall is denied by the sandbox
https://bugs.webkit.org/show_bug.cgi?id=208892
<rdar://problem/60294880>
Reviewed by Brent Fulgham.
Add denied syscall to sandbox on iOS.
- Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
- 9:25 PM Changeset in webkit [258251] by
-
- 7 edits in trunk/JSTests
Re-import test262 to acquire DST fix
https://bugs.webkit.org/show_bug.cgi?id=208901
Reviewed by Don Olmstead.
- test262/latest-changes-summary.txt:
- test262/test/built-ins/AggregateError/newtarget-proto-fallback.js:
- test262/test/built-ins/Array/prototype/filter/create-proto-from-ctor-realm-array.js:
- test262/test/built-ins/Array/prototype/indexOf/15.4.4.14-4-4.js:
- test262/test/built-ins/Date/parse/without-utc-offset.js:
- test262/test262-Revision.txt:
- 9:07 PM Changeset in webkit [258250] by
-
- 18 edits in trunk/Source
Make TextIterator::range return a SimpleRange
https://bugs.webkit.org/show_bug.cgi?id=208797
Reviewed by Don Olmstead.
Source/WebCore:
- accessibility/AXObjectCache.cpp:
(WebCore::AXObjectCache::traverseToOffsetInRange): Updated since
TextIterator::range returns a SimpleRange. Also use TextIterator::node where
appropriate instead of repeating the code for it here.
(WebCore::AXObjectCache::lengthForRange): Use TextIterator::node.
- accessibility/AccessibilityObject.cpp:
(WebCore::AccessibilityObject::stringForRange const): Use TextIterator::node.
(WebCore::AccessibilityObject::stringForVisiblePositionRange): Ditto.
(WebCore::AccessibilityObject::lengthForVisiblePositionRange const): Ditto.
- accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:
(-[WebAccessibilityObjectWrapper arrayOfTextForTextMarkers:attributed:]):
Use TextIterator::node and createLiveRange.
- accessibility/mac/WebAccessibilityObjectWrapperMac.mm: Added include
of SimpleRange and removed "using namespace HTMLNames".
(AXAttributeStringSetStyle): Use HTMLNames namespace explicitly.
(-[WebAccessibilityObjectWrapper doAXAttributedStringForTextMarkerRange:spellCheck:]):
Use TextIterator::node.
(-[WebAccessibilityObjectWrapper subrole]): Use HTMLNames namespace explicitly.
- dom/DocumentMarkerController.cpp:
(WebCore::DocumentMarkerController::collectTextRanges): Use createLiveRange
here since we don't want to convert move the class to SimpleRange at this time.
- dom/Position.cpp: Added include of Range.h.
- dom/RangeBoundaryPoint.h: Removed a bogus "const" on the return value of
RangeBoundaryPoint::toPosition.
- editing/TextIterator.cpp:
(WebCore::BitStack::BitStack): Deleted.
(WebCore::BitStack::size const): Deleted.
(WebCore::TextIterator::range const): Return a SimpleRange.
(WebCore::TextIterator::node const): Updated for the above.
(WebCore::CharacterIterator::range const): Use SimpleRange right up until the
return statement, where we do createLiveRange. Will come back and remove that soon.
(WebCore::TextIterator::rangeFromLocationAndLength): Use createLiveRange in
one place, SimpleRange in another.
- editing/TextIterator.h: Removed include of "Range.h" since we can just use
a forward declaration instead. Removed unneeded forward declarations. Simplified
the BitStack and TextIteratorCopyableText classes by initializing data members
and removing explicit definitions of the constructors and destructors. Took out
a stray "explicit" that wasn't needed. Changed the return value of
TextIterator::range to SimpleRange.
- editing/TextManipulationController.cpp:
(WebCore::ParagraphContentIterator::ParagraphContentIterator): Call
createLiveRange.
(WebCore::ParagraphContentIterator::advance): Ditto.
(WebCore::ParagraphContentIterator::startPosition): Ditto.
(WebCore::ParagraphContentIterator::endPosition): Ditto.
- editing/cocoa/DataDetection.mm:
(WebCore::DataDetection::detectContentInRange): Use createLiveRange.
- editing/cocoa/HTMLConverter.mm:
(WebCore::editingAttributedStringFromRange): Use SimpleRange instead
of a live range.
Source/WebKit:
- WebProcess/InjectedBundle/API/mac/WKDOMTextIterator.mm:
(-[WKDOMTextIterator currentRange]): Use createLiveRange.
- WebProcess/WebPage/Cocoa/WebPageCocoa.mm: Added includes.
Source/WebKitLegacy/mac:
- WebView/WebTextIterator.mm:
(-[WebTextIterator currentRange]): Use createLiveRange.
- 8:26 PM Changeset in webkit [258249] by
-
- 5 edits2 adds in trunk
Track "scrolling scope" on RenderLayers
https://bugs.webkit.org/show_bug.cgi?id=208620
Reviewed by Zalan Bujtas.
Source/WebCore:
The scrolling scope code added in r257920 failed to recompute m_contentsScrollingScope
when hasCompositedScrollableOverflow() changed, causing bugs on gmail.
Recompute the m_contentsScrollingScope to match or not match the m_boxScrollingScope
based on whether the layer is composited-scrollable.
Test: fast/scrolling/mac/absolute-in-overflow-scroll-dynamic.html
- rendering/RenderLayer.cpp:
(WebCore::RenderLayer::updateLayerPosition):
- rendering/RenderLayerCompositor.cpp:
(WebCore::isScrolledByOverflowScrollLayer):
LayoutTests:
- fast/scrolling/mac/absolute-in-overflow-scroll-dynamic-expected.html: Added.
- fast/scrolling/mac/absolute-in-overflow-scroll-dynamic.html: Added.
- fast/scrolling/mac/absolute-in-overflow-scroll.html: Fix typo.
- 7:40 PM Changeset in webkit [258248] by
-
- 9 edits in trunk/Source
Non-unified build fixes early March 2020 edition
https://bugs.webkit.org/show_bug.cgi?id=208897
Unreviewed build fix.
Source/WebCore:
- Modules/mediacontrols/MediaControlsHost.h:
- dom/BoundaryPoint.h:
- dom/StaticRange.cpp:
- editing/FrameSelection.cpp:
- loader/cache/CachedResourceRequest.cpp:
- page/scrolling/ScrollingTreeFrameScrollingNode.h:
Source/WebKit:
- NetworkProcess/NetworkLoadChecker.h:
- 7:00 PM Changeset in webkit [258247] by
-
- 2 edits in trunk/Source/WebKit
Some common domains should always be App-bound domains
https://bugs.webkit.org/show_bug.cgi?id=208893
<rdar://problem/60280943>
Reviewed by Brent Fulgham.
Some domains, like about:blank and pages loaded from files should
always be considered app-bound.
- UIProcess/WebPageProxy.cpp:
(WebKit::shouldBeTreatedAsAppBound):
(WebKit::WebPageProxy::setIsNavigatingToAppBoundDomain):
- 6:35 PM Changeset in webkit [258246] by
-
- 2 edits in trunk/Source/WebInspectorUI
REGRESSION(r253759): Web Inspector: Audits: results folder doesn't get selected by pressing Arrow Down key
https://bugs.webkit.org/show_bug.cgi?id=208679
<rdar://problem/60108942>
Reviewed by Timothy Hatcher.
- UserInterface/Views/AuditNavigationSidebarPanel.js:
(WI.AuditNavigationSidebarPanel.prototype.initialLayout):
(WI.AuditNavigationSidebarPanel.prototype._handleAuditManagerEditingChanged):
We do actually want to prevent repeat selection, as we may end up attempting to select the
sameWI.TreeElementtwice due to the nature ofWI.SelectionController, which would call
through toWI.NavigationSidebarPanel.prototype.showDefaultContentView()which deselects
any selectedWI.TreeElement. Reselecting the previously selectedWI.TreeElementwhen
exiting edit mode is much more of a special case than any of the ways for moving selection
to aWI.FolderTreeElement, so add logic just for that case instead of affecting the entire
WI.TreeOutline. When restoring the selection after leaving edit mode, if the currently
selectedWI.TreeElementwas also the previously selectedWI.TreeElement, deselect and
reselect it so we're "reset" back to a fresh state.
- 6:32 PM Changeset in webkit [258245] by
-
- 3 edits in trunk/Source/WebKit
Web Inspector: make
WebKit::WebInspectorProxy::m_isOpeningGTK only
https://bugs.webkit.org/show_bug.cgi?id=208831
<rdar://problem/57720692>
Reviewed by Brian Burg.
- UIProcess/Inspector/WebInspectorProxy.h:
- UIProcess/Inspector/WebInspectorProxy.cpp:
(WebKit::WebInspectorProxy::open):
- 6:24 PM Changeset in webkit [258244] by
-
- 2 edits in trunk/LayoutTests
REGRESSION(iOS): editing/selection/ios/selection-after-changing-text-with-callout-menu.html intermittently fails
https://bugs.webkit.org/show_bug.cgi?id=208898
Reviewed by Wenson Hsieh.
iOS no longer shows the callout bar upon Cmd+A. Click on the selection to bring up the callout bar manually.
- editing/selection/ios/selection-after-changing-text-with-callout-menu.html:
- 5:42 PM Changeset in webkit [258243] by
-
- 2 edits in branches/safari-610.1.7-branch/Source/WebCore
Cherry-pick r258229. rdar://problem/60299543
REGRESSION (r257920): inbox flickers and disappears when scrolling gmail
https://bugs.webkit.org/show_bug.cgi?id=208883
rdar://problem/60287447
Partially revert r257920 since it caused gmail scrolling flickers.
- rendering/RenderLayerCompositor.cpp: (WebCore::isScrolledByOverflowScrollLayer):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@258229 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 5:42 PM Changeset in webkit [258242] by
-
- 2 edits in branches/safari-610.1.7-branch/Source/WebCore
Cherry-pick r258226. rdar://problem/60299189
Set important EGL context attributes
https://bugs.webkit.org/show_bug.cgi?id=208724
<rdar://problem/60168306>
Temporarily revert r258025 while investigating a crash.
- platform/graphics/cocoa/GraphicsContextGLOpenGLCocoa.mm: (WebCore::GraphicsContextGLOpenGL::GraphicsContextGLOpenGL):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@258226 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 5:28 PM Changeset in webkit [258241] by
-
- 8 edits in trunk/Source
Versioning.
- 5:02 PM Changeset in webkit [258240] by
-
- 2 edits in trunk/Source/WebKit
[CoreIPC] WebPasteboardProxy::SetPasteboardBufferForType uses "0" for both uint64_t and a pointer value
<https://webkit.org/b/208879>
<rdar://problem/60165624>
Reviewed by Wenson Hsieh.
- UIProcess/Cocoa/WebPasteboardProxyCocoa.mm:
(WebKit::WebPasteboardProxy::setPasteboardBufferForType):
- Change 0 to nullptr to make code easier to read.
- 4:41 PM Changeset in webkit [258239] by
-
- 3 edits3 adds in trunk
Nullptr crash in CompositeEditCommand::moveParagraphWithClones when indenting non-enclosed elements.
https://bugs.webkit.org/show_bug.cgi?id=208628
<rdar://problem/52011509>
Patch by Jack Lee <Jack Lee> on 2020-03-10
Reviewed by Ryosuke Niwa.
When indenting a non-enclosed paragraph, quit if start of contents is not a descendant or sibling of outer block.
Source/WebCore:
Test: fast/editing/indent-non-enclosed-element-crash.html
- editing/IndentOutdentCommand.cpp:
(WebCore::IndentOutdentCommand::indentIntoBlockquote):
LayoutTests:
- fast/editing/indent-non-enclosed-element-crash-expected.txt: Added.
- fast/editing/indent-non-enclosed-element-crash.html: Added.
- 4:36 PM Changeset in webkit [258238] by
-
- 2 edits in trunk/Source/WebCore
[PlayStation] incomplete type 'WebCore::ScrollingStateFrameScrollingNode' named in nested name specifier
https://bugs.webkit.org/show_bug.cgi?id=208882
Reviewed by Simon Fraser.
No new tests, build fix.
- page/scrolling/ScrollingTreeScrollingNode.cpp: Add include of ScrollingStateFrameScrollingNode when ENABLE(SCROLLING_THREAD) is true.
- 3:57 PM Changeset in webkit [258237] by
-
- 2 edits in trunk/Source/WebCore
Build fix.
- platform/audio/ios/MediaSessionHelperIOS.mm:
(MediaSessionHelperiOS::providePresentingApplicationPID):
Fix an unused parameter warning.
- 3:54 PM Changeset in webkit [258236] by
-
- 3 edits in trunk/LayoutTests
[ macOS iOS ] imported/w3c/web-platform-tests/IndexedDB/idbobjectstore_openKeyCursor.htm is flaky failing
https://bugs.webkit.org/show_bug.cgi?id=208890
Unreviewed test gardening.
- platform/ios-wk2/TestExpectations:
- platform/mac-wk1/TestExpectations:
- 3:41 PM Changeset in webkit [258235] by
-
- 2 edits in trunk/Source/WebKit
Enable accessibility IsolatedTree in WebKit.
https://bugs.webkit.org/show_bug.cgi?id=208881
Reviewed by Chris Fleizach.
Sets the default value of accessibility IsolatedTree support to true.
- Shared/WebPreferences.yaml:
- 3:37 PM Changeset in webkit [258234] by
-
- 2 edits in trunk/LayoutTests
REGRESSION: (r257944?) [ Mac wk2 ] fast/images/decode-render-animated-image.html is flaky failing.
https://bugs.webkit.org/show_bug.cgi?id=208889
Unreviewed test gardening.
- platform/mac-wk2/TestExpectations:
- 3:21 PM Changeset in webkit [258233] by
-
- 2 edits in trunk/LayoutTests
[ iOS ] fast/css-custom-paint/image.html is flaky timing out
https://bugs.webkit.org/show_bug.cgi?id=208887
Unreviewed test gardening
- platform/ios-wk2/TestExpectations:
- 3:04 PM Changeset in webkit [258232] by
-
- 1 copy in tags/Safari-610.1.6.3
Tag Safari-610.1.6.3.
- 3:02 PM Changeset in webkit [258231] by
-
- 8 edits in branches/safari-610.1.6-branch/Source
Versioning.
- 2:47 PM Changeset in webkit [258230] by
-
- 3 edits in trunk/LayoutTests
[WebGL] Additional gardening for webgl bot DEQP expectations
https://bugs.webkit.org/show_bug.cgi?id=208884
Unreviewed test gardening.
- webgl/2.0.0/deqp/functional/gles3/pixelbufferobject-expected.txt:
- webgl/TestExpectations:
- 2:27 PM Changeset in webkit [258229] by
-
- 2 edits in trunk/Source/WebCore
REGRESSION (r257920): inbox flickers and disappears when scrolling gmail
https://bugs.webkit.org/show_bug.cgi?id=208883
rdar://problem/60287447
Partially revert r257920 since it caused gmail scrolling flickers.
- rendering/RenderLayerCompositor.cpp:
(WebCore::isScrolledByOverflowScrollLayer):
- 2:21 PM Changeset in webkit [258228] by
-
- 1 copy in tags/Safari-610.1.6.2
Tag Safari-610.1.6.2.
- 2:18 PM Changeset in webkit [258227] by
-
- 8 edits in branches/safari-610.1.6-branch/Source
Versioning.
- 1:09 PM Changeset in webkit [258226] by
-
- 2 edits in trunk/Source/WebCore
Set important EGL context attributes
https://bugs.webkit.org/show_bug.cgi?id=208724
<rdar://problem/60168306>
Temporarily revert r258025 while investigating a crash.
- platform/graphics/cocoa/GraphicsContextGLOpenGLCocoa.mm:
(WebCore::GraphicsContextGLOpenGL::GraphicsContextGLOpenGL):
- 12:16 PM Changeset in webkit [258225] by
-
- 2 edits in trunk/Source/WebKit
File upload cancels before files can be uploaded.
https://bugs.webkit.org/show_bug.cgi?id=208846
<rdar://problem/60244249>
Reviewed by Tim Horton.
With the new UIContextMenus, we needed to cancel in order for everything to be
reset correctly in WebCore. But this can only be done in the animation completion
handler, but we only want to cancel if we aren't presenting a different picker.
- UIProcess/ios/forms/WKFileUploadPanel.mm:
(-[WKFileUploadPanel contextMenuInteraction:configurationForMenuAtLocation:]):
(-[WKFileUploadPanel contextMenuInteraction:willEndForConfiguration:animator:]):
(-[WKFileUploadPanel ensureContextMenuInteraction]):
- 12:08 PM Changeset in webkit [258224] by
-
- 2 edits in trunk/Source/JavaScriptCore
[JSC] Fix iso-subspace static_assert for JSJavaScriptCallFramePrototype
https://bugs.webkit.org/show_bug.cgi?id=208874
Reviewed by Saam Barati.
This static_assert should ensure the condition for JSJavaScriptCallFramePrototype, not for JSInjectedScriptHostPrototype.
- inspector/JSJavaScriptCallFramePrototype.h:
- 11:46 AM Changeset in webkit [258223] by
-
- 6 edits in trunk/Source
Make sure that ServiceWorkerFrameLoaderClient lifetime exceeds its frame lifetime
https://bugs.webkit.org/show_bug.cgi?id=208855
<rdar://problem/60187332>
Reviewed by Geoffrey Garen.
Source/WebCore:
Add lifetime management of the loader client to SWContextManager instead of its connection, which has a shorter lifetime.
No JS observable change of behavior.
- workers/service/context/SWContextManager.cpp:
(WebCore::SWContextManager::addServiceWorkerFrameLoaderClient):
(WebCore::SWContextManager::removeServiceWorkerFrameLoaderClient):
- workers/service/context/SWContextManager.h:
Source/WebKit:
In case connection is destroyed, for instance due to network process crashing,
we destroy all service worker frame loader clients.
This is too soon as service worker thread proxy is refcounted and can last longer.
For that reason, we now let the SWContextManager handle the lifetime of the frame loader clients.
Drive-by fix: generate a new frame identifier instead of using an internal counter which can be wrong in case of new connection
and might clash with other frame identifiers now that service workers can run in process with pages.
- WebProcess/Storage/WebSWContextManagerConnection.cpp:
(WebKit::ServiceWorkerFrameLoaderClient::create):
(WebKit::ServiceWorkerFrameLoaderClient::ServiceWorkerFrameLoaderClient):
(WebKit::ServiceWorkerFrameLoaderClient::frameLoaderDestroyed):
(WebKit::WebSWContextManagerConnection::installServiceWorker):
- WebProcess/Storage/WebSWContextManagerConnection.h:
- 11:30 AM Changeset in webkit [258222] by
-
- 1 edit9 adds in trunk/LayoutTests
[WPE] Gardening, emit new baselines of WebGL 1.0.3 conformance tests
https://bugs.webkit.org/show_bug.cgi?id=208854
Unreviewed gardening.
- platform/wpe/webgl/1.0.3/conformance/glsl/misc/shaders-with-name-conflicts-expected.txt: Added.
- platform/wpe/webgl/1.0.3/conformance/misc/webgl-specific-expected.txt: Added.
- platform/wpe/webgl/1.0.3/conformance/rendering/point-no-attributes-expected.txt: Added.
- platform/wpe/webgl/1.0.3/conformance/textures/texture-copying-feedback-loops-expected.txt: Added.
- 11:25 AM Changeset in webkit [258221] by
-
- 9 edits2 adds in trunk/Source/WebCore
Add logging for Modern EME methods.
https://bugs.webkit.org/show_bug.cgi?id=205519
Reviewed by Eric Carlson.
- Modules/encryptedmedia/MediaKeySession.cpp:
(WebCore::MediaKeySession::create):
(WebCore::MediaKeySession::MediaKeySession):
(WebCore::MediaKeySession::generateRequest):
(WebCore::MediaKeySession::load):
(WebCore::MediaKeySession::update):
(WebCore::MediaKeySession::close):
(WebCore::MediaKeySession::remove):
(WebCore::MediaKeySession::sessionClosed):
(WebCore::MediaKeySession::logChannel const):
- Modules/encryptedmedia/MediaKeySession.h:
- Modules/encryptedmedia/MediaKeys.cpp:
(WebCore::MediaKeys::createSession):
(WebCore::MediaKeys::setServerCertificate):
- Modules/encryptedmedia/MediaKeys.h:
- Modules/encryptedmedia/MediaKeys.idl:
- Modules/encryptedmedia/NavigatorEME.cpp:
(WTF::LogArgument<Vector<T>>::toString):
(WTF::LogArgument<Optional<T>>::toString):
(WebCore::NavigatorEME::requestMediaKeySystemAccess):
(WebCore::tryNextSupportedConfiguration):
- Sources.txt:
- WebCore.xcodeproj/project.pbxproj:
- platform/encryptedmedia/CDMLogging.cpp: Added.
(WebCore::toJSONObject):
(WebCore::toJSONString):
(WTF::LogArgument<WebCore::CDMKeySystemConfiguration>::toString):
(WTF::LogArgument<WebCore::CDMMediaCapability>::toString):
(WTF::LogArgument<WebCore::CDMRestrictions>::toString):
(WTF::LogArgument<WebCore::CDMEncryptionScheme>::toString):
(WTF::LogArgument<WebCore::CDMKeyStatus>::toString):
(WTF::LogArgument<WebCore::CDMMessageType>::toString):
(WTF::LogArgument<WebCore::CDMRequirement>::toString):
(WTF::LogArgument<WebCore::CDMSessionType>::toString):
- platform/encryptedmedia/CDMLogging.h: Added.
- platform/mediastream/libwebrtc/LibWebRTCProviderCocoa.cpp:
- 11:14 AM Changeset in webkit [258220] by
-
- 2 edits in trunk/Tools
Sync FeatureList.pm with CMake definitions
https://bugs.webkit.org/show_bug.cgi?id=208866
Reviewed by Michael Catanzaro.
- Scripts/webkitperl/FeatureList.pm:
- 10:52 AM Changeset in webkit [258219] by
-
- 5 edits in trunk/Source/WebCore
Remove the special DisplayList handling in CanvasRenderingContext2DBase
https://bugs.webkit.org/show_bug.cgi?id=208828
Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2020-03-10
Reviewed by Myles C. Maxfield.
Remove DisplayListDrawingContext and use DisplayList::DrawingContext
instead. Remove 'tracksDisplayListReplay' since it is always 'false'.
Remove contextDisplayListMap() since items are added to it only if
'tracksDisplayListReplay' is true which never happens.
- html/CustomPaintCanvas.cpp:
(WebCore::CustomPaintCanvas::getContext):
- html/canvas/CanvasRenderingContext2DBase.cpp:
(WebCore::CanvasRenderingContext2DBase::~CanvasRenderingContext2DBase):
(WebCore::CanvasRenderingContext2DBase::paintRenderingResultsToCanvas):
(WebCore::CanvasRenderingContext2DBase::drawingContext const):
(WebCore::DisplayListDrawingContext::DisplayListDrawingContext): Deleted.
(WebCore::contextDisplayListMap): Deleted.
(WebCore::CanvasRenderingContext2DBase::setTracksDisplayListReplay): Deleted.
(WebCore::CanvasRenderingContext2DBase::displayListAsText const): Deleted.
(WebCore::CanvasRenderingContext2DBase::replayDisplayListAsText const): Deleted.
- html/canvas/CanvasRenderingContext2DBase.h:
(WebCore::CanvasRenderingContext2DBase::tracksDisplayListReplay const): Deleted.
- platform/graphics/displaylists/DisplayListDrawingContext.h:
- 10:47 AM Changeset in webkit [258218] by
-
- 1 copy in branches/safari-609.2.1.2-branch
New branch.
- 10:44 AM Changeset in webkit [258217] by
-
- 2 edits in trunk/Tools
[ews] Add unit tests for commit queue factory
https://bugs.webkit.org/show_bug.cgi?id=208862
Reviewed by Jonathan Bedard.
- BuildSlaveSupport/ews-build/factories_unittest.py:
(TestCommitQueueFactory):
(TestCommitQueueFactory.test_commit_queue_factory): Added unit-test for commit-queue factory.
- 10:43 AM Changeset in webkit [258216] by
-
- 2 edits in trunk/Tools
[ews-app] Status bubble should only display important messages in pop-over - part 3
https://bugs.webkit.org/show_bug.cgi?id=208865
Reviewed by Jonathan Bedard.
- BuildSlaveSupport/ews-app/ews/views/statusbubble.py:
(StatusBubble): Added more strings to STEPS_TO_HIDE.
- 10:36 AM Changeset in webkit [258215] by
-
- 7 edits in trunk/Source/WebCore
[MSE] Use CMSampleBufferGetOutputPresentationTimeStamp / CMSampleBufferGetOutputDuration for all presentation times and durations
https://bugs.webkit.org/show_bug.cgi?id=208827
Reviewed by Eric Carlson.
CMSampleBufferGetOutputPresentationTimeStamp takes into account pre-roll trim durations and
movie edit lists, and as such, should be used as the "correct" value for "presentation
time".
outputPresentationTime() is inconsistently used, so rather than replacing all references of
outputPresentationTime() with presentationTime(), simply redefine presetationTime() in terms
of CMSampleBufferGetPresentationTimeStamp() and remove outputPresentationTime() entirely.
- Modules/mediasource/SourceBuffer.cpp:
(WebCore::SourceBuffer::updateMinimumUpcomingPresentationTime):
- platform/MediaSample.h:
(WebCore::MediaSample::outputPresentationTime const): Deleted.
(WebCore::MediaSample::outputDuration const): Deleted.
- platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.mm:
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::calculateTimelineOffset):
- platform/graphics/avfoundation/objc/MediaSampleAVFObjC.h:
- platform/graphics/avfoundation/objc/MediaSampleAVFObjC.mm:
(WebCore::MediaSampleAVFObjC::presentationTime const):
(WebCore::MediaSampleAVFObjC::duration const):
(WebCore::MediaSampleAVFObjC::outputDuration const):
(WebCore::MediaSampleAVFObjC::dump const):
(WebCore::MediaSampleAVFObjC::toJSONString const):
(WebCore::MediaSampleAVFObjC::outputPresentationTime const): Deleted.
- platform/mediastream/RealtimeVideoCaptureSource.cpp:
(WebCore::RealtimeVideoCaptureSource::adaptVideoSample):
- 10:26 AM Changeset in webkit [258214] by
-
- 3 edits in trunk/Source/WebCore
Add release logging for when a navigation by a third-party (or untrusted) iframe is blocked
https://bugs.webkit.org/show_bug.cgi?id=208863
Reviewed by Youenn Fablet.
Add release logging for when a navigation by a third-party (or untrusted) iframe is blocked, to
help identify potential regressions in behavior.
- dom/Document.cpp:
(WebCore::Document::canNavigate):
(WebCore::Document::frameID const):
(WebCore::Document::isAlwaysOnLoggingAllowed const):
- dom/Document.h:
- 9:59 AM WebKitGTK/2.26.x edited by
- (diff)
- 9:27 AM Changeset in webkit [258213] by
-
- 4 edits in trunk/Source/WebKit
Do not create a service worker connection if service worker is not enabled in network process
https://bugs.webkit.org/show_bug.cgi?id=208851
Reviewed by Simon Fraser.
In case of navigation redirection, we were trying to go to service worker without checking the service worker entitlement.
Instead, we should check the service worker entitlement and return early in that case.
Covered by manually running minibrowser on simulator.
- NetworkProcess/NetworkConnectionToWebProcess.cpp:
(WebKit::NetworkConnectionToWebProcess::isServiceWorkerAllowed const):
(WebKit::NetworkConnectionToWebProcess::createFetchTask):
(WebKit::NetworkConnectionToWebProcess::scheduleResourceLoad):
- NetworkProcess/NetworkConnectionToWebProcess.h:
- NetworkProcess/NetworkResourceLoader.cpp:
(WebKit::NetworkResourceLoader::continueWillSendRequest):
(WebKit::NetworkResourceLoader::startWithServiceWorker):
- 9:15 AM Changeset in webkit [258212] by
-
- 2 edits in trunk/LayoutTests
[WPE] Gardening, update TestExpectations
https://bugs.webkit.org/show_bug.cgi?id=208853
Unreviewed gardening.
- platform/wpe/TestExpectations:
- 9:11 AM Changeset in webkit [258211] by
-
- 2 edits in trunk/Tools
[WPE] MiniBrowser: Close child WebViews when exiting
https://bugs.webkit.org/show_bug.cgi?id=208689
Reviewed by Carlos Garcia Campos.
Store created views so we can release them before exiting.
- MiniBrowser/wpe/main.cpp:
(webViewClose):
(createWebView):
(main):
- 8:12 AM Changeset in webkit [258210] by
-
- 3 edits in trunk/Tools
Add ValidateCommiterAndReviewer and ValidateChangeLogAndReviewer build steps in commit-queue
https://bugs.webkit.org/show_bug.cgi?id=208861
Reviewed by Jonathan Bedard.
- BuildSlaveSupport/ews-build/factories.py:
(Factory.init): Remove verifycqplus parameter.
(CommitQueueFactory): Inherit from factory.BuildFactory base class instead of custom Factory class.
(CommitQueueFactory.init): Add required build steps, especially ValidateCommiterAndReviewer,
UpdateWorkingDirectory and ValidateChangeLogAndReviewer.
- 7:56 AM Changeset in webkit [258209] by
-
- 3 edits in trunk/LayoutTests
Flaky Test: svg/custom/object-sizing-explicit-height.xhtml
https://bugs.webkit.org/show_bug.cgi?id=208592
Unreviewed test gardening
- platform/ios/TestExpectations:
- platform/mac/TestExpectations:
- 7:42 AM Changeset in webkit [258208] by
-
- 19 edits in trunk/Source
Remove SampleBufferDisplayLayer sync IPC
https://bugs.webkit.org/show_bug.cgi?id=208804
Reviewed by Eric Carlson.
Source/WebCore:
Add an initialize method to initialize the sample buffer display layer.
It takes a completion handler so that the initialization can be asynchronous.
Update the player to, on initialization callback, create the necessary observers and hook the fullscreen manager.
Update MediaPlayerPrivateMediaStreamAVFObjC to no longer expose rootLayer and rootLayerBoundsDidChange.
This was used by the root layer observer.
Instead, pass the root layer to the observer when starting the observer and pass a callback to the observer.
Covered by existing tests.
- platform/graphics/avfoundation/SampleBufferDisplayLayer.cpp:
(WebCore::SampleBufferDisplayLayer::create):
- platform/graphics/avfoundation/SampleBufferDisplayLayer.h:
- platform/graphics/avfoundation/objc/LocalSampleBufferDisplayLayer.h:
- platform/graphics/avfoundation/objc/LocalSampleBufferDisplayLayer.mm:
(WebCore::LocalSampleBufferDisplayLayer::create):
(WebCore::LocalSampleBufferDisplayLayer::LocalSampleBufferDisplayLayer):
(WebCore::LocalSampleBufferDisplayLayer::initialize):
- platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.h:
- platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.mm:
(-[WebRootSampleBufferBoundsChangeListener initWithCallback:]):
(-[WebRootSampleBufferBoundsChangeListener invalidate]):
(-[WebRootSampleBufferBoundsChangeListener begin:]):
(-[WebRootSampleBufferBoundsChangeListener stop]):
(-[WebRootSampleBufferBoundsChangeListener observeValueForKeyPath:ofObject:change:context:]):
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::MediaPlayerPrivateMediaStreamAVFObjC):
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::ensureLayers):
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::updateDisplayLayer):
(-[WebRootSampleBufferBoundsChangeListener initWithParent:]): Deleted.
(-[WebRootSampleBufferBoundsChangeListener begin]): Deleted.
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::rootLayer const): Deleted.
Source/WebKit:
Implement the initialize method as an async IPC.
- GPUProcess/GPUConnectionToWebProcess.cpp:
(WebKit::GPUConnectionToWebProcess::dispatchSyncMessage):
- GPUProcess/webrtc/RemoteSampleBufferDisplayLayer.cpp:
(WebKit::RemoteSampleBufferDisplayLayer::RemoteSampleBufferDisplayLayer):
- GPUProcess/webrtc/RemoteSampleBufferDisplayLayerManager.cpp:
(WebKit::RemoteSampleBufferDisplayLayerManager::createLayer):
- GPUProcess/webrtc/RemoteSampleBufferDisplayLayerManager.h:
- GPUProcess/webrtc/RemoteSampleBufferDisplayLayerManager.messages.in:
- WebProcess/GPU/media/RemoteMediaPlayerManager.cpp:
(WebKit::RemoteMediaPlayerManager::updatePreferences):
- WebProcess/GPU/webrtc/SampleBufferDisplayLayer.cpp:
(WebKit::SampleBufferDisplayLayer::create):
(WebKit::SampleBufferDisplayLayer::SampleBufferDisplayLayer):
(WebKit::SampleBufferDisplayLayer::initialize):
- WebProcess/GPU/webrtc/SampleBufferDisplayLayer.h:
- WebProcess/GPU/webrtc/SampleBufferDisplayLayerManager.cpp:
(WebKit::SampleBufferDisplayLayerManager::createLayer):
- WebProcess/GPU/webrtc/SampleBufferDisplayLayerManager.h:
- 7:26 AM Changeset in webkit [258207] by
-
- 2 edits in trunk/LayoutTests
[ macOS ] imported/w3c/web-platform-tests/webmessaging/Channel_postMessage_Blob.htm is flaky failing
https://bugs.webkit.org/show_bug.cgi
Unreviewed test gardening
- platform/mac/TestExpectations:
- 7:06 AM Changeset in webkit [258206] by
-
- 5 edits in trunk/Source/WebCore
[Cairo] Use std::unique_ptr for cairo_path_t
https://bugs.webkit.org/show_bug.cgi?id=208808
Reviewed by Sergio Villar Senin.
- platform/graphics/cairo/CairoOperations.cpp:
(WebCore::Cairo::clipForPatternFilling):
(WebCore::Cairo::drawPathShadow):
- platform/graphics/cairo/CairoUniquePtr.h:
(WebCore::CairoPtrDeleter<cairo_path_t>::operator() const):
- platform/graphics/cairo/CairoUtilities.cpp:
(WebCore::appendPathToCairoContext):
- platform/graphics/cairo/PathCairo.cpp:
(WebCore::Path::Path):
(WebCore::Path::operator=):
(WebCore::Path::addPath):
(WebCore::Path::applySlowCase const):
- 6:56 AM Changeset in webkit [258205] by
-
- 3 edits in trunk/LayoutTests
REGRESSION(r257977): [GTK] http/tests/media/hls/video-cookie.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=208803
Reviewed by Philippe Normand.
Supply Content-Length, so WebKit GStreamer can actually know when the download has finished
without mistaking EOF with a stall.
- http/tests/media/resources/video-cookie-check-cookie.php: Supply Content-Length.
- platform/gtk/TestExpectations: Removed the test as failing.
- 6:50 AM Changeset in webkit [258204] by
-
- 7 edits2 deletes in trunk/Source/WebCore
[Cairo] Remove PlatformPathCairo
https://bugs.webkit.org/show_bug.cgi?id=208807
Reviewed by Darin Adler.
We have a class CairoPath defined in PlatformPathCairo.h that simply wraps a cairo_t. We can use the cairo_t
directly as PlatformPath and simplify the cairo path implementation.
- platform/SourcesCairo.txt:
- platform/graphics/Path.h:
(WebCore::Path::platformPath const):
- platform/graphics/cairo/CairoOperations.cpp:
(WebCore::Cairo::fillRectWithRoundedHole):
(WebCore::Cairo::fillPath):
(WebCore::Cairo::strokePath):
(WebCore::Cairo::clipPath):
- platform/graphics/cairo/CairoUtilities.cpp:
(WebCore::appendWebCorePathToCairoContext):
- platform/graphics/cairo/FontCairo.cpp:
(WebCore::Font::platformPathForGlyph const):
- platform/graphics/cairo/PathCairo.cpp:
(WebCore::Path::Path):
(WebCore::Path::ensurePlatformPath):
(WebCore::Path::operator=):
(WebCore::Path::clear):
(WebCore::Path::isEmptySlowCase const):
(WebCore::Path::currentPointSlowCase const):
(WebCore::Path::translate):
(WebCore::Path::moveToSlowCase):
(WebCore::Path::addLineToSlowCase):
(WebCore::Path::addRect):
(WebCore::Path::addQuadCurveTo):
(WebCore::Path::addBezierCurveTo):
(WebCore::Path::addArcSlowCase):
(WebCore::Path::addArcTo):
(WebCore::Path::addEllipse):
(WebCore::Path::addPath):
(WebCore::Path::closeSubpath):
(WebCore::Path::boundingRectSlowCase const):
(WebCore::Path::strokeBoundingRect const):
(WebCore::Path::contains const):
(WebCore::Path::strokeContains const):
(WebCore::Path::applySlowCase const):
(WebCore::Path::transform):
- platform/graphics/cairo/PlatformPathCairo.cpp: Removed.
- platform/graphics/cairo/PlatformPathCairo.h: Removed.
- 6:21 AM Changeset in webkit [258203] by
-
- 2 edits in trunk/Tools
[GTK] API favicon test flaky timeouts
https://bugs.webkit.org/show_bug.cgi?id=208189
Reviewed by Carlos Garcia Campos.
Sometimes the favicon changes already during the load. Keeping
track of it in the WebView favicon property notification handler
gets us rid of the race.
- TestWebKitAPI/Tests/WebKitGLib/TestWebKitFaviconDatabase.cpp:
(testFaviconDatabaseGetFavicon):
- 6:02 AM Changeset in webkit [258202] by
-
- 12 edits in trunk
[iOS] Make sure a MediStreamTrack clone does not interrupt the being cloned track
https://bugs.webkit.org/show_bug.cgi?id=208634
Reviewed by Eric Carlson.
Source/WebCore:
Covered by reenabled tests.
- platform/mediastream/RealtimeMediaSourceFactory.h:
(WebCore::SingleSourceFactory::activeSource): .
Source/WebKit:
- WebProcess/cocoa/UserMediaCaptureManager.cpp:
(WebKit::UserMediaCaptureManager::VideoFactory::setActiveSource):
Do nothing since GPUProcess will handle the muting itself if it creates multiple sources.
- WebProcess/cocoa/UserMediaCaptureManager.h:
LayoutTests:
- fast/mediastream/MediaStream-clone.html:
- fast/mediastream/MediaStreamTrack-clone.html:
- fast/mediastream/mediastreamtrack-video-clone.html:
- platform/ios/TestExpectations:
- platform/ios/mediastream/getUserMedia-single-capture.html:
muting is now longer synchronous in WebProcess since it relies on GPUProcess factory to mute the remote track.
Update the test to account for this.
Also, make sure to use a different device, so that we do not use a track cloning under the hood.
- webrtc/multi-video.html:
- 5:53 AM Changeset in webkit [258201] by
-
- 12 edits in trunk/Source
Remove sync IPC when creating a remote capture source
https://bugs.webkit.org/show_bug.cgi?id=208816
Reviewed by Eric Carlson.
Source/WebCore:
Add a whenInitialized method to allow for async creation of realtime media source.
Use this method when creating a MediaStream for getUserMedia/getDisplayMedia.
Covered by existing tests.
- platform/mediastream/MediaStreamPrivate.cpp:
(WebCore::MediaStreamPrivate::create):
- platform/mediastream/MediaStreamPrivate.h:
- platform/mediastream/RealtimeMediaSource.h:
- platform/mediastream/RealtimeMediaSourceCenter.cpp:
(WebCore::RealtimeMediaSourceCenter::createMediaStream):
Source/WebKit:
Use whenInitialized to wait for the async IPC that tells whether the remote source was created successfully.
Use the async response to gather the capabilities so as to remove the corresponding sync IPC.
- Platform/IPC/Connection.h:
(IPC::AsyncReplyError::create):
- UIProcess/Cocoa/UserMediaCaptureManagerProxy.cpp:
(WebKit::UserMediaCaptureManagerProxy::createMediaSourceForCaptureDeviceWithConstraints):
- UIProcess/Cocoa/UserMediaCaptureManagerProxy.h:
- UIProcess/Cocoa/UserMediaCaptureManagerProxy.messages.in:
- WebProcess/cocoa/UserMediaCaptureManager.cpp:
(WebKit::UserMediaCaptureManager::Source::didFail):
(WebKit::UserMediaCaptureManager::Source::setAsReady):
(WebKit::UserMediaCaptureManager::Source::setCapabilities):
(WebKit::UserMediaCaptureManager::createCaptureSource):
(WebKit::UserMediaCaptureManager::Source::capabilities):
- 5:49 AM Changeset in webkit [258200] by
-
- 3 edits in trunk/Source/WebKit
Do not process RTC Network messages coming from NetworkProcess if LibWebRTCNetwork is not active
https://bugs.webkit.org/show_bug.cgi?id=207376
Reviewed by Eric Carlson.
In case LibWebRTCNetwork is not active, we do not have instantiated any peer connection.
We do not have started any related RTC thread so we are not expecting any RTC message from Network Process.
Exit early in that case.
- WebProcess/Network/NetworkProcessConnection.cpp:
(WebKit::NetworkProcessConnection::didReceiveMessage):
- WebProcess/Network/webrtc/LibWebRTCNetwork.h:
(WebKit::LibWebRTCNetwork::isActive const):
- 5:37 AM WebKitGTK/2.28.x edited by
- (diff)
- 5:33 AM Changeset in webkit [258199] by
-
- 2 edits in trunk/Source/WebCore
Unreviewed, !USE(GSTREAMER_GL) build fix after r258197.
- platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
(WebCore::GstVideoFrameHolder::platformLayerBuffer):
- 5:27 AM Changeset in webkit [258198] by
-
- 2 edits in trunk/Tools
Generate commit-queue status bubble from new EWS
https://bugs.webkit.org/show_bug.cgi?id=208811
Reviewed by Jonathan Bedard.
- BuildSlaveSupport/ews-app/ews/views/statusbubble.py:
(StatusBubble._build_bubbles_for_patch):
- 5:10 AM WebKitGTK/2.28.x edited by
- (diff)
- 5:08 AM Changeset in webkit [258197] by
-
- 10 edits in trunk/Source/WebCore
[GStreamer][GL] External OES textures rendering support
https://bugs.webkit.org/show_bug.cgi?id=208572
Patch by Philippe Normand <philn@igalia.com> on 2020-03-10
Reviewed by Žan Doberšek.
For hardware that contains native YUV samplers, some drivers may
only support external-oes import of YUV textures, so by supporting
this texture target in the MediaPlayer we can avoid some costly
operations in the pipeline.
- platform/graphics/gstreamer/GLVideoSinkGStreamer.cpp:
(webKitGLVideoSinkSetMediaPlayerPrivate):
- platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
(WebCore::GstVideoFrameHolder::GstVideoFrameHolder):
(WebCore::GstVideoFrameHolder::platformLayerBuffer):
(WebCore::MediaPlayerPrivateGStreamer::paint):
- platform/graphics/gstreamer/VideoTextureCopierGStreamer.cpp:
(WebCore::VideoTextureCopierGStreamer::copyVideoTextureToPlatformTexture):
- platform/graphics/texmap/TextureMapperGL.cpp:
(WebCore::TextureMapperGL::drawTexturedQuadWithProgram):
(WebCore::TextureMapperGL::drawTextureExternalOES):
- platform/graphics/texmap/TextureMapperGL.h:
- platform/graphics/texmap/TextureMapperPlatformLayerBuffer.cpp:
(WebCore::TextureMapperPlatformLayerBuffer::clone):
(WebCore::TextureMapperPlatformLayerBuffer::paintToTextureMapper):
- platform/graphics/texmap/TextureMapperPlatformLayerBuffer.h:
- platform/graphics/texmap/TextureMapperShaderProgram.cpp:
(WebCore::TextureMapperShaderProgram::create):
- platform/graphics/texmap/TextureMapperShaderProgram.h:
- 5:08 AM Changeset in webkit [258196] by
-
- 1 edit in trunk/LayoutTests/platform/win/js/dom/navigator-maxtouchpoints-expected.txt
Regression r258148: js/dom/navigator-maxtouchpoints.html is consistently failing on windows
https://bugs.webkit.org/show_bug.cgi?id=208856
Unreviewed test gardening.
Following the removal of ENABLE_POINTER_EVENTS, the feature is on by default everywhere and this test should now return 0 instead of undefined.
- platform/win/js/dom/navigator-maxtouchpoints-expected.txt:
- 4:48 AM Changeset in webkit [258195] by
-
- 2 edits in trunk/Source/WebKit
REGRESSION(r258182): [GTK] Remove reference to unrequestedTextCheckingSequence
https://bugs.webkit.org/show_bug.cgi?id=208852
Reviewed by Carlos Garcia Campos.
unrequestedTextCheckingSequence was removed in r258182. This variable
was still used in an assertion, which broke GTK Debug build.
- UIProcess/gtk/TextCheckerGtk.cpp:
(WebKit::TextChecker::requestCheckingOfString):
- 4:27 AM Changeset in webkit [258194] by
-
- 8 edits1 move3 adds4 deletes in trunk
Align with Origin header changes
https://bugs.webkit.org/show_bug.cgi?id=199261
Patch by Rob Buis <rbuis@igalia.com> on 2020-03-10
Reviewed by Darin Adler.
LayoutTests/imported/w3c:
Import fetch/origin tests.
- resources/import-expectations.json:
- web-platform-tests/fetch/origin/assorted.window-expected.txt: Added.
- web-platform-tests/fetch/origin/assorted.window.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/fetch/origin/no-cors.any.html.
- web-platform-tests/fetch/origin/assorted.window.js: Added.
(promise_test.async const):
(promise_test):
(await.new.Promise):
(async const):
(navigationReferrerPolicy):
(fetchReferrerPolicy):
(referrerPolicyTestString):
- web-platform-tests/fetch/origin/no-cors.any-expected.txt: Removed.
- web-platform-tests/fetch/origin/no-cors.any.js: Removed.
- web-platform-tests/fetch/origin/no-cors.any.worker-expected.txt: Removed.
- web-platform-tests/fetch/origin/no-cors.any.worker.html: Removed.
- web-platform-tests/fetch/origin/resources/redirect-and-stash.py:
(main):
- web-platform-tests/fetch/origin/resources/referrer-policy.py: Added.
(main):
- web-platform-tests/fetch/origin/resources/w3c-import.log:
- web-platform-tests/fetch/origin/w3c-import.log:
Source/WebCore:
Call generateOriginHeader in more places so that we comply
more with "append a requestOriginheader" algorithm [1].
Test: imported/w3c/web-platform-tests/fetch/origin/assorted.window.html
[1] https://fetch.spec.whatwg.org/#append-a-request-origin-header
- loader/FrameLoader.cpp:
(WebCore::FrameLoader::submitForm):
- loader/cache/CachedResourceRequest.cpp:
(WebCore::CachedResourceRequest::updateReferrerOriginAndUserAgentHeaders):
- 4:10 AM Changeset in webkit [258193] by
-
- 1 copy in releases/WebKitGTK/webkit-2.28.0
WebKitGTK 2.28.0
- 4:09 AM Changeset in webkit [258192] by
-
- 4 edits in releases/WebKitGTK/webkit-2.28
Unreviewed. Update OptionsGTK.cmake and NEWS for 2.28.0 release
.:
- Source/cmake/OptionsGTK.cmake: Bump version numbers.
Source/WebKit:
- gtk/NEWS: Add release notes for 2.28.0.
- 2:55 AM Changeset in webkit [258191] by
-
- 4 edits in trunk/Source/WebKit
Drop unused DisableICECandidateFiltering / EnableICECandidateFiltering IPC messages
https://bugs.webkit.org/show_bug.cgi?id=208843
<rdar://problem/59683940>
Reviewed by Youenn Fablet.
- WebProcess/WebPage/WebPage.cpp:
(WebKit::m_processDisplayName):
(WebKit::WebPage::disableICECandidateFiltering): Deleted.
(WebKit::WebPage::enableICECandidateFiltering): Deleted.
- WebProcess/WebPage/WebPage.h:
- WebProcess/WebPage/WebPage.messages.in:
- 2:19 AM Changeset in webkit [258190] by
-
- 1 edit1 add in trunk/JSTests
JSC 32bits is failing on new test stress/numberingSystemsForLocale-cached-strings-should-be-immortal-and-safe-for-concurrent-access.js
https://bugs.webkit.org/show_bug.cgi?id=206864
Patch by Paulo Matos <Paulo Matos> on 2020-03-10
Reviewed by Yusuke Suzuki.
Add new test to memory limited devices - behaviour is the same as
numberingSystemsForLocale-cached-strings-should-be-immortal-and-safe-for-concurrent-access.js
but it creates 25 threads instead of 100.
- stress/numberingSystemsForLocale-cached-strings-should-be-immortal-and-safe-for-concurrent-access_memory-limited.js: Added.
(let.theCode):
- 1:32 AM Changeset in webkit [258189] by
-
- 4 edits in trunk/Source/WebCore
REGRESSION: (r257905) [ Mac wk2 Debug ] ASSERTION FAILED: !m_isolatedWorld->isNormal() m_wrapper !m_jsFunction https://bugs.webkit.org/show_bug.cgi?id=208642
Reviewed by Darin Adler.
This patch fixes stale assertions and comments in JSEventListener.h, which has various problems.
- This assertion is saying, "If m_wrapper is dead, m_jsFunction must be dead". This is wrong. Given that we have conservative
GC, JSC never guarantees such a condition. Even if m_wrapper is dead, m_jsFunction can be alive by various reasons: conservative
GC finds it, user code stores this function somewhere reachable from the root, etc.
The reason why this wrong assertion exists here is because the JSEventListener code and assertion assume that m_jsFunction is nullptr
when it is not initialized, and once it is initialized, it should be non nullptr. This is wrong because Weak<> can collect it if it
is not retained. This
!m_jsFunctioncheck mixes "it is not initialized" and "it is already initialized but collected". The correct assertion should be checkingm_wrapperandm_jsFunctionare alive (not checking deadness, which is not guaranteed) if the event-listener is once initialized. This patch adds m_isInitialized member to track this status separately fromm_wrapperandm_jsFunction. - JSEventListener::jsFunction has
if (!m_jsFunction)condition. But this is not correct. This can revive JSFunction if it is collected because m_wrapper is gone or some way, but this is not expected behavior. The correct way is checkingm_isInitialized. Once the event-listener is initialized, keeping m_wrapper and m_jsFunction alive is the responsibility of JSEventListener's owner. - The comments about "zombie m_jsFunctions" is wrong. We are using JSC::Weak<>. So if the object gets collected, it returns nullptr, not getting a zombie pointer.
- We are emitting write-barrier in a wrong order. In the heavily stressed scenario, it is possible that concurrent marking scans JSEventListener just after we emit the write-barrier, and this marking misses the assigned value. We must emit a write-barrier after the assignment. If the write-barrier code is written after the assignment, it correctly offers memory fence to ensure this ordering.
- We also remove "world is not normal, anything is allowed" assertion. The assertion is allowing non-normal world to get dead m_wrapper. But skipping event handlers only in non-normal world does not make sense. And it is originally added as a hack to avoid assertions caused by non-normal world.
While we are not sure which test is causing, it seems that we found a real bug by fixing this assertion[1].
[1]: https://bugs.webkit.org/show_bug.cgi?id=208798
- bindings/js/JSEventListener.cpp:
(WebCore::JSEventListener::JSEventListener):
(WebCore::JSEventListener::visitJSFunction):
- bindings/js/JSEventListener.h:
(WebCore::JSEventListener::wrapper const):
(WebCore::JSEventListener::setWrapperWhenInitializingJSFunction const):
(WebCore::JSEventListener::jsFunction const):
(WebCore::JSEventListener::setWrapper const): Deleted.
- bindings/js/JSLazyEventListener.cpp:
(WebCore::JSLazyEventListener::initializeJSFunction const):
- 1:28 AM Changeset in webkit [258188] by
-
- 3 edits1 add in releases/WebKitGTK/webkit-2.28
Merge r258143 - Tail calls are broken on ARM_THUMB2 and MIPS
https://bugs.webkit.org/show_bug.cgi?id=197797
Reviewed by Yusuke Suzuki.
JSTests:
- stress/tail-call-with-spilled-registers.js: Added.
Source/JavaScriptCore:
prepareForTailCalloperation expects that header size + parameters
size is aligned with stack (alignment is 16-bytes for every architecture).
This means that headerSizeInBytes + argumentsIncludingThisInBytes needs
to be multiple of 16. This was not being preserved during getter IC code
for 32-bits. The code generated was taking in account only
headerSizeInRegisters (it is 4 on 32-bits) and argumentsIncludingThis
(that is always 1 for getters) and allocating 32-bytes when applying
operation(headerSize + argumentsIncludingThis) * 8 - sizeof(CallerFrameAndPC).
This results in a stack frame with size of 40 bytes (after we push
lrandsp). SinceprepareForTailCallexpects frames to be
16-bytes aligned, it will then calculate the top of such frame
considering it is 48 bytes, cloberring values of previous frame and
causing unexpected behavior. This patch is fixing how this IC code
calculates the stack frame usingroundArgumentCountToAlignFrame(numberOfParameters)
aligning with what we do on code without IC installed.
This was not a problem for getter and setter IC on 64-bits because
roundArgumentCountToAlignFrame(1) == 1androundArgumentCountToAlignFrame(2) == 3
while it isroundArgumentCountToAlignFrame(1) == 2and
roundArgumentCountToAlignFrame(2) == 2for MIPS and ARMv7.
- bytecode/AccessCase.cpp:
(JSC::AccessCase::generateImpl):
- 1:28 AM Changeset in webkit [258187] by
-
- 2 edits in releases/WebKitGTK/webkit-2.28/Source/bmalloc
Merge r258142 - Build failure on ppc64le if unix is undefined
https://bugs.webkit.org/show_bug.cgi?id=207906
Patch by Mike Gorse <mgorse@suse.com> on 2020-03-09
Reviewed by Yusuke Suzuki.
- bmalloc/BPlatform.h: Check for unix along with unix.
- 12:11 AM Changeset in webkit [258186] by
-
- 1 edit in trunk/Source/WebKit/Platform/unix/ModuleUnix.cpp
Unreviewed, fix "no return statement".