Timeline
Feb 10, 2021:
- 11:25 PM Changeset in webkit [272710] by
-
- 7 edits in trunk
[Webpage translation] Add support for the -_translate: action on WKContentView
https://bugs.webkit.org/show_bug.cgi?id=221713
Source/WebKit:
Reviewed by Tim Horton.
Add another way to trigger web page translation on iOS, via the
-_translate:selector.
- Platform/spi/ios/UIKitSPI.h:
Add a new staged SPI declaration on
UIWKTextInteractionAssistant. Additionally remove an old staging
declaration for a method inUIWebGeolocationPolicyDecider.
- UIProcess/API/ios/WKWebViewIOS.h:
- UIProcess/ios/WKContentViewInteraction.h:
- UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView _translateForWebView:]):
Grab the currently selected text and invoke the new method on
UIWKTextInteractionAssistant.
(-[WKContentView _addShortcutForWebView:]):
Drive-by fix: remove an extraneous
nilcheck.
(-[WKContentView canPerformActionForWebView:withSender:]):
Return
YESif the selection is ranged, and we're not inside a password input.
Tools:
<rdar://problem/73902020>
Reviewed by Tim Horton.
Add an API test to exercise
-canPerformAction:withSender:with the new action.
- TestWebKitAPI/Tests/WebKitCocoa/WKWebViewEditActions.mm:
- 11:24 PM Changeset in webkit [272709] by
-
- 18 edits5 copies1 add in trunk/Source
Move AudioHardwareListener into the GPU Process
https://bugs.webkit.org/show_bug.cgi?id=221455
Reviewed by Eric Carlson.
Source/WebCore:
Allow clients to override the creation method for AudioHardwareListener::create().
- platform/audio/AudioHardwareListener.cpp:
(WebCore::audioHardwareListenerCreationFunction):
(WebCore::AudioHardwareListener::setCreationFunction):
(WebCore::AudioHardwareListener::resetCreationFunction):
(WebCore::AudioHardwareListener::create):
- platform/audio/AudioHardwareListener.h:
- platform/audio/mac/AudioHardwareListenerMac.cpp:
(WebCore::AudioHardwareListener::create): Deleted.
Source/WebKit:
Add a new Remote pair of classes, RemoteAudioHardwareListener/Proxy.
- CMakeLists.txt:
- DerivedSources-input.xcfilelist:
- DerivedSources-output.xcfilelist:
- DerivedSources.make:
- GPUProcess/GPUConnectionToWebProcess.cpp:
(WebKit::GPUConnectionToWebProcess::createAudioHardwareListener):
(WebKit::GPUConnectionToWebProcess::releaseAudioHardwareListener):
- GPUProcess/GPUConnectionToWebProcess.h:
- GPUProcess/GPUConnectionToWebProcess.messages.in:
- GPUProcess/media/RemoteAudioHardwareListenerProxy.cpp:
(WebKit::RemoteAudioHardwareListenerProxy::RemoteAudioHardwareListenerProxy):
(WebKit::RemoteAudioHardwareListenerProxy::audioHardwareDidBecomeActive):
(WebKit::RemoteAudioHardwareListenerProxy::audioHardwareDidBecomeInactive):
(WebKit::RemoteAudioHardwareListenerProxy::audioOutputDeviceChanged):
- GPUProcess/media/RemoteAudioHardwareListenerProxy.h:
- GPUProcess/media/RemoteLegacyCDMFactoryProxy.cpp:
- Scripts/webkit/messages.py:
- Sources.txt:
- SourcesCocoa.txt:
- WebKit.xcodeproj/project.pbxproj:
- WebProcess/GPU/media/RemoteAudioHardwareListener.cpp: Added.
(WebKit::RemoteAudioHardwareListener::create):
(WebKit::RemoteAudioHardwareListener::RemoteAudioHardwareListener):
(WebKit::RemoteAudioHardwareListener::~RemoteAudioHardwareListener):
(WebKit::RemoteAudioHardwareListener::gpuProcessConnectionDidClose):
(WebKit::RemoteAudioHardwareListener::audioHardwareDidBecomeActive):
(WebKit::RemoteAudioHardwareListener::audioHardwareDidBecomeInactive):
(WebKit::RemoteAudioHardwareListener::audioOutputDeviceChanged):
- WebProcess/GPU/media/RemoteAudioHardwareListener.h:
- WebProcess/GPU/media/RemoteAudioHardwareListener.messages.in:
- WebProcess/GPU/media/RemoteAudioHardwareListenerIdentifier.h:
- WebProcess/GPU/webrtc/MediaRecorderPrivate.h:
- WebProcess/WebProcess.cpp:
(WebKit::WebProcess::setUseGPUProcessForMedia):
- 10:26 PM Changeset in webkit [272708] by
-
- 3 edits in trunk/Source/WebKit
[WebAuthn] Update - [ASCAppleIDCredential initWithUser:...] to match the latest SPI
https://bugs.webkit.org/show_bug.cgi?id=221723
<rdar://problem/74038383>
Reviewed by Brent Fulgham.
No tests.
- Platform/spi/Cocoa/AuthenticationServicesCoreSPI.h:
- UIProcess/WebAuthentication/Cocoa/AuthenticatorPresenterCoordinator.mm:
(WebKit::AuthenticatorPresenterCoordinator::dimissPresenter):
- 10:22 PM Changeset in webkit [272707] by
-
- 42 edits1 copy in trunk
Use event loop to set title
https://bugs.webkit.org/show_bug.cgi?id=218496
Patch by Rob Buis <rbuis@igalia.com> on 2021-02-10
Reviewed by Darin Adler.
Source/WebCore:
Use event loop to set title to avoid calling WebFrameLoaderClient
within HTMLTitleElement::insertedIntoAncestor.
- dom/Document.cpp:
(WebCore::Document::updateTitle):
- dom/Document.h:
(WebCore::Document::titleWithDirection const):
- loader/DocumentLoader.cpp:
(WebCore::DocumentLoader::setTitle):
- loader/EmptyClients.h:
- page/Chrome.cpp:
(WebCore::Chrome::print):
- page/ChromeClient.h:
Source/WebKit:
Add title parameter to PrintFrame message.
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::printFrame):
- UIProcess/WebPageProxy.h:
- UIProcess/WebPageProxy.messages.in:
- WebProcess/WebCoreSupport/WebChromeClient.cpp:
(WebKit::WebChromeClient::print):
- WebProcess/WebCoreSupport/WebChromeClient.h:
Source/WebKitLegacy/mac:
Adjust to API change.
- WebCoreSupport/WebChromeClient.h:
- WebCoreSupport/WebChromeClient.mm:
(WebChromeClient::print):
Source/WebKitLegacy/win:
Adjust to API change.
- WebCoreSupport/WebChromeClient.cpp:
(WebChromeClient::print):
- WebCoreSupport/WebChromeClient.h:
Tools:
Adapt unit tests to wait for title change tasks
to be processed.
- TestWebKitAPI/Tests/WebKit/PageLoadState.cpp:
(TestWebKitAPI::didChangeTitle):
(TestWebKitAPI::TEST):
- TestWebKitAPI/Tests/WebKitCocoa/UIDelegate.mm:
(TEST):
- TestWebKitAPI/Tests/WebKitGLib/TestAuthentication.cpp:
(testWebViewAuthenticationFailure):
(testWebViewAuthenticationNoCredential):
(testWebViewAuthenticationSuccess):
(testWebViewAuthenticationEmptyRealm):
- TestWebKitAPI/Tests/WebKitGLib/TestBackForwardList.cpp:
(testBackForwardListNavigation):
- TestWebKitAPI/Tests/WebKitGLib/TestLoaderClient.cpp:
(testWebViewTitle):
- TestWebKitAPI/Tests/WebKitGLib/TestSSL.cpp:
(testLoadFailedWithTLSErrors):
- TestWebKitAPI/Tests/WebKitGLib/TestWebKitSettings.cpp:
(testWebKitSettingsJavaScriptMarkup):
- TestWebKitAPI/Tests/WebKitGLib/TestWebKitWebView.cpp:
(testWebViewTitleChange):
LayoutTests:
Adapt tests to make sure pending title change tasks
are processed before the test is done.
- TestExpectations:
- fast/dom/title-text-property-2.html:
- fast/dom/title-text-property-assigning-empty-string.html:
- fast/dom/title-text-property.html:
- http/tests/globalhistory/history-delegate-basic-title-expected.txt:
- http/tests/globalhistory/history-delegate-basic-title.html:
- http/tests/loading/basic-auth-load-URL-with-consecutive-slashes-expected.txt:
- http/tests/loading/basic-auth-load-URL-with-consecutive-slashes.html:
- http/tests/loading/redirect-with-no-location-crash-expected.txt:
- http/tests/loading/redirect-with-no-location-crash.html:
- platform/mac-wk2/TestExpectations:
- platform/win/http/tests/loading/basic-auth-load-URL-with-consecutive-slashes-expected.txt: Copied from LayoutTests/http/tests/loading/basic-auth-load-URL-with-consecutive-slashes-expected.txt.
- platform/wk2/http/tests/loading/basic-auth-load-URL-with-consecutive-slashes-expected.txt:
- platform/wk2/http/tests/loading/redirect-with-no-location-crash-expected.txt:
- 9:28 PM Changeset in webkit [272706] by
-
- 25 edits1 move in trunk/Source
Move pal/spi/cocoa/CoreTextSPI.h to pal/spi/cf/CoreTextSPI.h
https://bugs.webkit.org/show_bug.cgi?id=221683
Reviewed by Simon Fraser.
Core Text has a C API, and doesn't depend on UIKit/AppKit. It also exists on Windows,
where there is no Cocoa. And pal/spi/cf already includes things like CoreAudioSPI.h
and CoreVideoSPI.h
Source/WebCore:
No new tests because there is no behavior change.
- platform/cocoa/DragImageCocoa.mm:
- platform/graphics/Font.cpp:
- platform/graphics/cocoa/FontCacheCoreText.cpp:
- platform/graphics/cocoa/FontFamilySpecificationCoreText.cpp:
- platform/graphics/cocoa/FontPlatformDataCocoa.mm:
- platform/graphics/cocoa/SystemFontDatabaseCoreText.h:
- platform/graphics/coretext/FontCascadeCoreText.cpp:
- platform/graphics/coretext/FontCoreText.cpp:
- platform/graphics/coretext/FontPlatformDataCoreText.cpp:
- platform/graphics/coretext/GlyphPageCoreText.cpp:
- platform/graphics/mac/ComplexTextControllerCoreText.mm:
- platform/graphics/mac/FontCustomPlatformData.cpp:
- platform/graphics/mac/SimpleFontDataCoreText.cpp:
- rendering/RenderThemeCocoa.mm:
- rendering/RenderThemeIOS.mm:
- testing/Internals.cpp:
Source/WebCore/PAL:
- PAL.xcodeproj/project.pbxproj:
- pal/PlatformMac.cmake:
- pal/spi/cf/CoreTextSPI.h: Renamed from Source/WebCore/PAL/pal/spi/cocoa/CoreTextSPI.h.
Source/WebKit:
- Shared/Cocoa/CoreTextHelpers.mm:
- Shared/Cocoa/WebCoreArgumentCodersCocoa.mm:
- UIProcess/ios/forms/WKNumberPadView.mm:
- WebProcess/WebPage/WebPage.cpp:
- 9:23 PM Changeset in webkit [272705] by
-
- 28 edits in trunk/Source/WebKit
Unreviewed, reverting r272702.
Caused assertion failure on macOS debug WK2 bots
Reverted changeset:
"Stop using GenericCallback from WebPageProxy"
https://bugs.webkit.org/show_bug.cgi?id=221653
https://trac.webkit.org/changeset/272702
- 8:49 PM Changeset in webkit [272704] by
-
- 1 edit1 copy1 add2 deletes in trunk/LayoutTests
[ Big Sur ] imported/w3c/web-platform-tests/css/css-flexbox/contain-size-layout-abspos-flex-container-crash.html is failing
https://bugs.webkit.org/show_bug.cgi?id=221681
Unreviewed test gardening.
Consolidate test baselines for mac since the result is the same across configurations.
- platform/mac-catalina/imported/w3c/web-platform-tests/css/css-flexbox/contain-size-layout-abspos-flex-container-crash-expected.txt: Removed.
- platform/mac/imported/w3c/web-platform-tests/css/css-flexbox/contain-size-layout-abspos-flex-container-crash-expected.txt: Renamed from LayoutTests/platform/mac-catalina-wk1/imported/w3c/web-platform-tests/css/css-flexbox/contain-size-layout-abspos-flex-container-crash-expected.txt.
- 7:18 PM Changeset in webkit [272703] by
-
- 9 edits in trunk/Source
Reduce the overhead of DocumentFragment in innerHTML & outerHTML
https://bugs.webkit.org/show_bug.cgi?id=221535
<rdar://problem/73861015>
Reviewed by Geoffrey Garen.
Source/WebCore:
This patch reduces the overhead of using DocumentFragment in innerHTMl and outerHTML setters by
- Cache DocumentFragment used for innerHTML and outerHTML.
- Adding a fast path to removeAllChildrenWithScriptAssertion when removing child nodes from (1)
immediately before appending it to the new parent. This is safe for now since no DOM nodes or API
store information about its root node or parent node when it's DocumentFragment, and and there
are no node flags to be updated or invalidated since we're removing already-disconnected nodes
to which no script ever had access up until this point. We release-assert these conditions before
going into the fast path.
No new tests since there should be no observable behavior change.
- dom/ContainerNode.cpp:
(WebCore::ContainerNode::removeAllChildrenWithScriptAssertion): Added a fast path. See above.
- dom/Document.cpp:
(WebCore::Document::commonTeardown): Clear m_documentFragmentForInnerOuterHTML as it would keep
the ownewr document (this Document) alive otherwise.
(WebCore::Document::documentFragmentForInnerOuterHTML): Added. Lazily create a DocumentFragment
used to parse the fragment for innerHTML and outerHTML setters. Remove any child nodes left in
the document fragment in the case the last call to replaceChildrenWithFragment took a fast path
for a single text node, which case we don't remove any child nodes from DocumentFragment.
- dom/Document.h:
- dom/DocumentFragment.h:
(WebCore::DocumentFragment::setIsDocumentFragmentForInnerOuterHTML): Added.
- dom/Node.h:
(WebCore::Node::isDocumentFragmentForInnerOuterHTML const): Added.
- editing/markup.cpp:
(WebCore::createFragmentForMarkup): Extracted from createFragmentForInnerOuterHTML to share code
between createFragmentForInnerOuterHTML and createContextualFragment.
(WebCore::createFragmentForInnerOuterHTML): Reuse the fragment in createFragmentForMarkup.
(WebCore::createContextualFragment): Don't reuse the fragment in createFragmentForMarkup as this
function is used by Range::createContextualFragment which exposes the document fragment to
arbitrary author scripts.
(WebCore::hasOneChild): Deleted since we now have Node::hasOneChild.
(WebCore::hasOneTextChild): Use Node::hasOneChild.
(WebCore::replaceChildrenWithFragment): Added assertions to make sure we don't have any child nodes
left after replacing the children.
Source/WTF:
Added a helper function for writing assertions.
- wtf/WeakPtr.h:
(WTF::WeakPtrFactory::isInitialized const): Added.
- 7:06 PM Changeset in webkit [272702] by
-
- 28 edits in trunk/Source/WebKit
Stop using GenericCallback from WebPageProxy
https://bugs.webkit.org/show_bug.cgi?id=221653
Reviewed by Chris Dumez.
There are still two uses in the DrawingAreaProxy implementations, but those are quite tangled and deserve their own patch.
- UIProcess/API/APIAttachment.cpp:
(API::Attachment::updateAttributes):
- UIProcess/API/APIAttachment.h:
- UIProcess/API/C/WKPage.cpp:
(CompletionHandler<void):
(WKPageRenderTreeExternalRepresentation):
(WKPageGetSourceForFrame):
(WKPageGetContentsAsString):
(WKPageGetBytecodeProfile):
(WKPageGetSamplingProfilerOutput):
(WTF::Function<void): Deleted.
- UIProcess/API/Cocoa/APIAttachmentCocoa.mm:
(API::Attachment::updateFromSerializedRepresentation):
- UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _insertAttachmentWithFileWrapper:contentType:completion:]):
(-[WKWebView _getContentsAsStringWithCompletionHandler:]):
(-[WKWebView _getContentsOfAllFramesAsStringWithCompletionHandler:]):
- UIProcess/API/Cocoa/_WKAttachment.mm:
(-[_WKAttachment setFileWrapper:contentType:completion:]):
- UIProcess/Cocoa/WebViewImpl.mm:
(WebKit::WebViewImpl::startSpeaking):
- UIProcess/GenericCallback.h:
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::dispatchActivityStateChange):
(WebKit::WebPageProxy::getRenderTreeExternalRepresentation):
(WebKit::WebPageProxy::getSourceForFrame):
(WebKit::WebPageProxy::getContentsAsString):
(WebKit::WebPageProxy::getBytecodeProfile):
(WebKit::WebPageProxy::getSamplingProfilerOutput):
(WebKit::WebPageProxy::getSelectionOrContentsAsString):
(WebKit::WebPageProxy::didCommitLoadForFrame):
(WebKit::WebPageProxy::didFailLoadForFrame):
(WebKit::WebPageProxy::resetState):
(WebKit::WebPageProxy::installActivityStateChangeCompletionHandler):
(WebKit::WebPageProxy::insertAttachment):
(WebKit::WebPageProxy::updateAttachmentAttributes):
(WebKit::WebPageProxy::didInsertAttachmentWithIdentifier):
(WebKit::WebPageProxy::clearLoadDependentCallbacks): Deleted.
(WebKit::WebPageProxy::voidCallback): Deleted.
(WebKit::WebPageProxy::stringCallback): Deleted.
(WebKit::WebPageProxy::invalidateStringCallback): Deleted.
- UIProcess/WebPageProxy.h:
- UIProcess/WebPageProxy.messages.in:
- UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView _shareForWebView:]):
(-[WKContentView _defineForWebView:]):
(-[WKContentView accessibilityRetrieveSpeakSelectionContent]):
(-[WKContentView applyAutocorrection:toString:withCompletionHandler:]):
- UIProcess/ios/WebPageProxyIOS.mm:
(WebKit::WebPageProxy::applyAutocorrection):
- UIProcess/mac/WKTextFinderClient.mm:
(-[WKTextFinderClient getSelectedText:]):
- WebProcess/Notifications/NotificationPermissionRequestManager.h:
- WebProcess/WebCoreSupport/WebNotificationClient.h:
- WebProcess/WebPage/DrawingArea.h:
(WebKit::DrawingArea::activityStateDidChange):
- WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.h:
- WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.mm:
(WebKit::RemoteLayerTreeDrawingArea::activityStateDidChange):
- WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::reinitializeWebPage):
(WebKit::WebPage::setActivityState):
(WebKit::WebPage::getContentsAsString):
(WebKit::WebPage::getRenderTreeExternalRepresentation):
(WebKit::WebPage::getSelectionOrContentsAsString):
(WebKit::WebPage::getSourceForFrame):
(WebKit::WebPage::getBytecodeProfile):
(WebKit::WebPage::getSamplingProfilerOutput):
(WebKit::WebPage::insertAttachment):
(WebKit::WebPage::updateAttachmentAttributes):
- WebProcess/WebPage/WebPage.h:
- WebProcess/WebPage/WebPage.messages.in:
- WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::applyAutocorrection):
- WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.h:
- WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:
(WebKit::TiledCoreAnimationDrawingArea::handleActivityStateChangeCallbacks):
(WebKit::TiledCoreAnimationDrawingArea::activityStateDidChange):
- 6:25 PM Changeset in webkit [272701] by
-
- 5 edits in trunk/Source/WebCore
[LFC][IFC] Logical width of a line box is equal to the inner logical width of its containing block
https://bugs.webkit.org/show_bug.cgi?id=221648
Reviewed by Antti Koivisto.
This is is used when horizontal scrolling is allowed (not supported atm).
- layout/inlineformatting/InlineFormattingContextGeometry.cpp:
(WebCore::Layout::LineBoxBuilder::build):
(WebCore::Layout::LineBoxBuilder::constructInlineLevelBoxes):
- layout/inlineformatting/InlineLineBox.cpp:
(WebCore::Layout::LineBox::LineBox):
(WebCore::Layout::m_contentLogicalWidth):
- layout/inlineformatting/InlineLineBox.h:
(WebCore::Layout::LineBox::contentLogicalWidth const):
- 6:25 PM Changeset in webkit [272700] by
-
- 2 edits in trunk/Source/WebCore
WebCore::genericFamily() should use checked_cf_cast<>
<https://webkit.org/b/221521>
Reviewed by Sam Weinig.
- platform/graphics/cocoa/SystemFontDatabaseCoreText.cpp:
(WebCore::genericFamily):
- Switch from dynamic_cf_cast<> to checked_cf_cast<> because we always expect a CFStringRef type object to be returned from CTFontDescriptorCopyAttribute().
- 6:22 PM Changeset in webkit [272699] by
-
- 2 edits in trunk
[CMake] Enable hidden visibility on JSCOnly
https://bugs.webkit.org/show_bug.cgi?id=221726
Reviewed by Yusuke Suzuki.
Turn on hidden visibility for all *NIX ports of JSCOnly. To properly export the symbols
from WTF/bmalloc OBJECT libraries are used. This requires CMake 3.12 or later to
function properly.
- Source/cmake/OptionsJSCOnly.cmake:
- 5:26 PM Changeset in webkit [272698] by
-
- 2 edits in trunk/Source/WebKit
REGRESSION (r269824) IOSurface allocation failure causes crash in RemoteLayerBackingStore::display()
https://bugs.webkit.org/show_bug.cgi?id=221729
rdar://72651289
Reviewed by Tim Horton.
The refactoring in r269824 dropped a null check on the front buffer surface (IOSurface allocation
can fail when the process reaches a hardcoded limit). Restore the null check.
- Shared/RemoteLayerTree/RemoteLayerBackingStore.mm:
(WebKit::RemoteLayerBackingStore::display):
- 4:11 PM Changeset in webkit [272697] by
-
- 4 edits3 adds in trunk
[PlayStation] Add initial RESOURCE_USAGE implementation
https://bugs.webkit.org/show_bug.cgi?id=221706
Reviewed by Ross Kirsling.
.:
- Source/cmake/OptionsPlayStation.cmake:
Source/WebCore:
Add initial RESOURCE_USAGE data for the inspector.
CPU usage and total memory information is just stubbed out for now.
- PlatformPlayStation.cmake:
- page/playstation/ResourceUsageOverlayPlayStation.cpp: Added.
- page/playstation/ResourceUsageThreadPlayStation.cpp: Added.
- 4:07 PM Changeset in webkit [272696] by
-
- 9 edits in trunk/Source
Remove MediaSourcePrivateClient::monitorSourceBuffers()
https://bugs.webkit.org/show_bug.cgi?id=220945
Reviewed by Youenn Fablet.
Source/WebCore:
Remove MediaSourcePrivateClient::monitorSourceBuffers() for all ports except GStreamer
port because MediaSourcePrivate does not call it. This patch also adds some log messages
related to seeking.
No new tests, no functional change.
- Modules/mediasource/MediaSource.h:
- html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::seekWithTolerance):
- platform/graphics/MediaSourcePrivateClient.h:
- platform/graphics/SourceBufferPrivate.cpp:
(WebCore::SourceBufferPrivate::appendCompleted):
- platform/graphics/avfoundation/objc/MediaSourcePrivateAVFObjC.h:
Source/WebKit:
- GPUProcess/media/RemoteMediaSourceProxy.cpp:
(WebKit::RemoteMediaSourceProxy::monitorSourceBuffers): Deleted.
- GPUProcess/media/RemoteMediaSourceProxy.h:
- 3:56 PM Changeset in webkit [272695] by
-
- 40 edits18 deletes in branches/safari-612.1.3-branch
Cherry-pick r272561. rdar://problem/74210218
Unreviewed, reverting r272480, r272481, and r272500.
https://bugs.webkit.org/show_bug.cgi?id=221586
Caused assertion failure seen with EME tests
Reverted changesets:
"Permission request API for MediaKeySystem access support"
https://bugs.webkit.org/show_bug.cgi?id=221187
https://trac.webkit.org/changeset/272480
"Unreviewed, build fix after r272480"
https://trac.webkit.org/changeset/272481
"Permission request API for MediaKeySystem access support"
https://bugs.webkit.org/show_bug.cgi?id=221187
https://trac.webkit.org/changeset/272500
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@272561 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 3:50 PM Changeset in webkit [272694] by
-
- 12 edits in trunk
[WebAuthn] Produce ClientDataJSON in the SPI
https://bugs.webkit.org/show_bug.cgi?id=221623
<rdar://problem/71509394>
Reviewed by Brent Fulgham.
Source/WebKit:
Instead of asking the clients of the SPI to pre-calculate the ClientDataJSON hash for us, we do
that in the SPI space ourselves.
Covered by API tests.
- UIProcess/API/Cocoa/_WKAuthenticatorAssertionResponse.mm:
(-[_WKAuthenticatorAssertionResponse initWithClientDataJSON:rawId:extensions:authenticatorData:signature:userHandle:]):
(-[_WKAuthenticatorAssertionResponse initWithRawId:extensions:authenticatorData:signature:userHandle:]): Deleted.
- UIProcess/API/Cocoa/_WKAuthenticatorAssertionResponseInternal.h:
- UIProcess/API/Cocoa/_WKAuthenticatorAttestationResponse.mm:
(-[_WKAuthenticatorAttestationResponse initWithClientDataJSON:rawId:extensions:attestationObject:]):
(-[_WKAuthenticatorAttestationResponse initWithRawId:extensions:attestationObject:]): Deleted.
- UIProcess/API/Cocoa/_WKAuthenticatorAttestationResponseInternal.h:
- UIProcess/API/Cocoa/_WKAuthenticatorResponse.h:
- UIProcess/API/Cocoa/_WKAuthenticatorResponse.mm:
(-[_WKAuthenticatorResponse initWithClientDataJSON:rawId:extensions:]):
(-[_WKAuthenticatorResponse initWithRawId:extensions:]): Deleted.
- UIProcess/API/Cocoa/_WKAuthenticatorResponseInternal.h:
Adds a field to return the JSON serialized bytes for the ClientDataJSON.
- UIProcess/API/Cocoa/_WKWebAuthenticationPanel.h:
- UIProcess/API/Cocoa/_WKWebAuthenticationPanel.mm:
(produceClientDataJson):
(produceClientDataJsonHash):
(wkAuthenticatorAttestationResponse):
(-[_WKWebAuthenticationPanel makeCredentialWithChallenge:origin:options:completionHandler:]):
(wkAuthenticatorAssertionResponse):
(-[_WKWebAuthenticationPanel getAssertionWithChallenge:origin:options:completionHandler:]):
(-[_WKWebAuthenticationPanel makeCredentialWithHash:options:completionHandler:]): Deleted.
(-[_WKWebAuthenticationPanel getAssertionWithHash:options:completionHandler:]): Deleted.
Modifies the SPI to accept a challenge and an origin to calculate the ClientDataJSON.
Tools:
- TestWebKitAPI/Tests/WebKitCocoa/_WKWebAuthenticationPanel.mm:
(TestWebKitAPI::TEST):
- 3:47 PM Changeset in webkit [272693] by
-
- 1 copy in tags/Safari-611.1.17
Tag Safari-611.1.17.
- 3:44 PM Changeset in webkit [272692] by
-
- 2 edits in trunk/Tools
Adding self to contributor.json file.
- Scripts/webkitpy/common/config/contributors.json:
- 3:31 PM Changeset in webkit [272691] by
-
- 46 edits in branches/safari-611-branch
Revert r272541. rdar://problem/74208306
- 3:27 PM Changeset in webkit [272690] by
-
- 7 edits in trunk/Source
Non-unified build fixes, early February 2021 edition
https://bugs.webkit.org/show_bug.cgi?id=221701
Unreviewed non-unified build fixes.
Source/JavaScriptCore:
- bytecode/IterationModeMetadata.h:
- bytecode/SetPrivateBrandStatus.h:
Source/WebCore:
- rendering/RenderImage.cpp:
Source/WebKit:
- NetworkProcess/PrivateClickMeasurementManager.cpp:
- 3:24 PM Changeset in webkit [272689] by
-
- 8 edits in branches/safari-611-branch/Source
Versioning.
WebKit-7611.1.17
- 3:20 PM Changeset in webkit [272688] by
-
- 1 copy in tags/Safari-611.1.14.0.2
Tag Safari-611.1.14.0.2.
- 3:20 PM Changeset in webkit [272687] by
-
- 1 copy in tags/Safari-611.1.14.1.2
Tag Safari-611.1.14.1.2.
- 2:35 PM Changeset in webkit [272686] by
-
- 4 edits in trunk
Unreviewed, reverting r272507.
Caused TestWebKitAPI.WebKit.OnDeviceChangeCrash to become a
flaky timeout
Reverted changeset:
"[MacOS] Enable Audio Capture in GPUProcess by default"
https://bugs.webkit.org/show_bug.cgi?id=221400
https://trac.webkit.org/changeset/272507
- 2:00 PM Changeset in webkit [272685] by
-
- 2 edits in trunk/Source/JavaScriptCore
We should not static_assert on an ENABLE() macro.
https://bugs.webkit.org/show_bug.cgi?id=221714
rdar://74197896
Reviewed by Yusuke Suzuki.
This is because the ENABLE() macro reduces to a macro expression
(defined ENABLE_##WTF_FEATURE && ENABLE_##WTF_FEATURE)which is not a C++
expression that a static_assert can evaluate.
- llint/LLIntData.cpp:
- llint/LLIntData.h:
(JSC::LLInt::getCodePtr):
(JSC::LLInt::getWide16CodePtr):
(JSC::LLInt::getWide32CodePtr):
- 1:34 PM Changeset in webkit [272684] by
-
- 21 edits in trunk/Source
[Cocoa] Web Inspector: add support for evaluating script on the inspected page via _WKInspectorExtension
https://bugs.webkit.org/show_bug.cgi?id=221567
<rdar://71208534>
Reviewed by Devin Rousso.
Source/WebCore:
This patch adds support for handling returned Promise values in an intelligent way.
If a callback was supplied, then wait for the promise to settle and invoke the
callback with its settled result. To support this, the dispatcher keeps a map of
unfulfilled DOMPromises and the callback that is chained to the DOMPromise.
- inspector/InspectorFrontendAPIDispatcher.h:
- inspector/InspectorFrontendAPIDispatcher.cpp:
(WebCore::InspectorFrontendAPIDispatcher::~InspectorFrontendAPIDispatcher):
(WebCore::InspectorFrontendAPIDispatcher::reset):
Clear the pending responses map when destructing or resetting the dispatcher.
(WebCore::InspectorFrontendAPIDispatcher::frontendGlobalObject):
Upgrade from JSGlobalObject to JSDOMGlobalObject, which is needed to call JSDOMPromise methods.
(WebCore::InspectorFrontendAPIDispatcher::evaluateOrQueueExpression):
The meat of this patch. Chain a Function onto the JSDOMPromise. Inside the lambda function,
try to look up and invoke the corresponding EvaluationResultHandler for this evaluation result.
(WebCore::InspectorFrontendAPIDispatcher::invalidatePendingResponses):
Since these are CompletionHandlers we need to call them one way or another.
Source/WebInspectorUI:
This patch adds InspectorFrontendAPI.evaluateScriptForExtension().
- UserInterface/Controllers/WebInspectorExtensionController.js:
(WI.WebInspectorExtensionController.prototype.evaluateScriptForExtension):
Translate arguments into a corresponding RuntimeAgent.evaluate invocation.
The parameters are not yet implemented, and will be filled in by a subsequent patch.
- UserInterface/Models/WebInspectorExtension.js: Add new error enum value.
- UserInterface/Protocol/InspectorFrontendAPI.js:
(InspectorFrontendAPI.evaluateScriptForExtension):
Plumbing.
Source/WebKit:
This patch adds a new method to _WKInspectorExtension which is used to implement
browser.devtools.inspectedWindow.evalin the Web Extensions API.
- Shared/InspectorExtensionTypes.h:
- Shared/InspectorExtensionTypes.cpp:
(WebKit::inspectorExtensionErrorToString):
Add enum value NotImplemented.
- UIProcess/API/APIInspectorExtension.h:
- UIProcess/API/APIInspectorExtension.cpp:
(API::InspectorExtension::evaluateScript):
Plumbing.
- UIProcess/API/Cocoa/WKWebViewInternal.h:
- UIProcess/API/Cocoa/WKWebView.mm:
(nsErrorFromExceptionDetails):
Move this helper up near the top as it is now exposed via <WebKit/WKWebViewInternal.h>.
- UIProcess/API/Cocoa/_WKInspectorExtension.h:
- UIProcess/API/Cocoa/_WKInspectorExtension.mm:
(-[_WKInspectorExtension evaluateScript:frameURL:contextSecurityOrigin:useContentScriptContext:completionHandler:]):
Add new method to evaluate script in the inspected page. The semantics of the parameters
are intended to match those ofbrowser.devtools.inspectedWindow.eval.
- UIProcess/Inspector/WebInspectorUIExtensionControllerProxy.h:
- UIProcess/Inspector/WebInspectorUIExtensionControllerProxy.cpp:
(WebKit::WebInspectorUIExtensionControllerProxy::evaluateScriptForExtension):
Plumbing.
- WebProcess/Inspector/WebInspectorUIExtensionController.h:
- WebProcess/Inspector/WebInspectorUIExtensionController.messages.in:
Add new message for evaluateScript.
- WebProcess/Inspector/WebInspectorUIExtensionController.cpp:
(WebKit::WebInspectorUIExtensionController::parseInspectorExtensionErrorFromEvaluationResult):
Support the new error enum value.
(WebKit::WebInspectorUIExtensionController::unregisterExtension):
(WebKit::WebInspectorUIExtensionController::createTabForExtension):
Drive-by, simplify this by passing the EvaluationResult value without unwrapping.
(WebKit::WebInspectorUIExtensionController::evaluateScriptForExtension):
This is the meat of the patch. Call out to InspectorFrontendAPI.evaluateScriptForExtension.
Inspect the return value and invoke the completion handler with the result or an error.
- 1:27 PM Changeset in webkit [272683] by
-
- 2 edits in trunk/LayoutTests
[MacOS] animations/keyframe-pseudo-shadow.html is flakey failing.
https://bugs.webkit.org/show_bug.cgi?id=221491
Unreviewed test gardening.
Patch by Amir Mark Jr <Amir Mark Jr.> on 2021-02-10
- platform/mac/TestExpectations:
- 1:16 PM Changeset in webkit [272682] by
-
- 2 edits in trunk/LayoutTests
[GPUP] Reset expectations of media related tests
https://bugs.webkit.org/show_bug.cgi?id=221700
Unreviewed test gardening.
- gpu-process/TestExpectations:
- 1:06 PM Changeset in webkit [272681] by
-
- 7 edits1 delete in trunk/Tools
[build.webkit.org] Remove code specific to old Buildbot
https://bugs.webkit.org/show_bug.cgi?id=221558
Reviewed by Jonathan Bedard.
- CISupport/build-webkit-org/buildbot.tac:
- CISupport/build-webkit-org/loadConfig.py:
- CISupport/build-webkit-org/loadConfig_unittest.py:
- CISupport/build-webkit-org/master.cfg: Removed.
- CISupport/build-webkit-org/steps.py:
(TestWithFailureCount.getText): Deleted.
(TestWithFailureCount.getText2): Deleted.
(CompileWebKit.createSummary): Deleted.
(RunWebKitTests._parseRunWebKitTestsOutput): Deleted.
(RunWebKitTests.commandComplete): Deleted.
(RunWebKitTests.getText): Deleted.
(RunWebKitTests.getText2): Deleted.
(ExtractTestResults.start): Deleted.
- CISupport/ews-build/steps.py:
- CISupport/ews-build/steps_unittest.py:
- 1:04 PM Changeset in webkit [272680] by
-
- 3 edits in trunk/Source/WebKit
WebGL IPC messages are delivered out of order
https://bugs.webkit.org/show_bug.cgi?id=221488
Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2021-02-10
Reviewed by Chris Dumez.
Sync messages are delivered before earlier async messages, if some other
WebKit part waits on sync replies.
No new tests, makes the existing WebGL --use-gpu-process tests a bit less
flakey.
- WebProcess/GPU/graphics/RemoteGraphicsContextGLProxy.h:
- WebProcess/GPU/graphics/RemoteGraphicsContextGLProxy.cpp:
Mark all async messages with IPC::SendOption::DispatchMessageEvenWhenWaitingForSyncReply.
There are no messages in the receiver message list that would make sense
to be delivered out of order.
- 12:55 PM Changeset in webkit [272679] by
-
- 7 edits in trunk/Source
Do not differentiate between Release and Production via ENABLE_DEVELOPER_MODE
https://bugs.webkit.org/show_bug.cgi?id=221684
Reviewed by Sam Weinig.
It is invalid to create behaviors that are different between these. There is
almost no difference in usage scenarios between build modes - either can be
produced by CI for validation, either can be used for local testing, etc.
- Configurations/Base.xcconfig:
- Configurations/DebugRelease.xcconfig:
Source/WebCore:
- html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::ensureMediaControlsInjectedScript):
- 12:34 PM Changeset in webkit [272678] by
-
- 5 edits2 adds in trunk/Source/WebCore
WebCore::createBusFromInMemoryAudioFile() may crash under ExtAudioFileRead()
https://bugs.webkit.org/show_bug.cgi?id=221642
<rdar://72789841>
Reviewed by Geoffrey Garen.
The crash seems to indicate we are passing an AudioBufferList to ExtAudioFileRead()
that contains a null buffer. It is not obvious how this is happening but I have made
the following changes:
- createAudioBufferList() / destroyAudioListBuffer() implementation is now shared on both macOS and iOS. The implementation now uses fastCalloc and returns null in case of failure to allocate.
- createAudioBufferList() was renamed to tryCreateAudioBufferList() to make it clear it can return null. All call sites now properly deal with tryCreateAudioBufferList() potentially return null
- Add a new validateAudioBufferList() function which makes sure that the AudioBufferList we are about to pass to ExtAudioFileRead() does not contain any null buffer. In case of validation failure, we log an error, generate a simulated crash log and early return gracefully instead of crashing later on.
- Added more assertions to help catch bugs.
- SourcesCocoa.txt:
- WebCore.xcodeproj/project.pbxproj:
- platform/audio/cocoa/AudioFileReaderCocoa.cpp: Added.
(WebCore::tryCreateAudioBufferList):
(WebCore::destroyAudioBufferList):
(WebCore::validateAudioBufferList):
- platform/audio/cocoa/AudioFileReaderCocoa.h: Added.
- platform/audio/ios/AudioFileReaderIOS.cpp:
(WebCore::AudioFileReader::createBus):
(WebCore::createAudioBufferList): Deleted.
(WebCore::destroyAudioBufferList): Deleted.
- platform/audio/mac/AudioFileReaderMac.cpp:
(WebCore::AudioFileReader::createBus):
(WebCore::createAudioBufferList): Deleted.
(WebCore::destroyAudioBufferList): Deleted.
- 12:34 PM Changeset in webkit [272677] by
-
- 1 copy in tags/Safari-611.1.16
Tag Safari-611.1.16.
- 12:31 PM Changeset in webkit [272676] by
-
- 1 edit2 moves in trunk/LayoutTests
Rename testcase to indicate hang
https://bugs.webkit.org/show_bug.cgi?id=221375
Patch by Rob Buis <rbuis@igalia.com> on 2021-02-10
Reviewed by Ryosuke Niwa.
Rename testcase to indicate hang rather than crash.
- plugins/embed-creation-hang-expected.txt: Renamed from LayoutTests/plugins/embed-creation-crash-expected.txt.
- plugins/embed-creation-hang.html: Renamed from LayoutTests/plugins/embed-creation-crash.html.
- 12:25 PM Changeset in webkit [272675] by
-
- 6 edits in branches/safari-611-branch
Revert r272538. rdar://problem/74183111
- 12:25 PM Changeset in webkit [272674] by
-
- 2 edits in branches/safari-611-branch/Source/JavaScriptCore
Revert r272539. rdar://problem/74183111
- 12:16 PM Changeset in webkit [272673] by
-
- 8 edits in branches/safari-611-branch/Source
Versioning.
WebKit-7611.1.16
- 12:05 PM Changeset in webkit [272672] by
-
- 2 edits in branches/safari-611.1.14.1-branch/Source/JavaScriptCore
Cherry-pick r272663. rdar://problem/74197958
Don't crash when reparsing an arrow function and the parsing invariant is broken
https://bugs.webkit.org/show_bug.cgi?id=221632
<rdar://71874091>
Reviewed by Tadeu Zagallo and Mark Lam.
We have code where we assert that when reparsing an arrow function,
we see the '=>' token after parsing the parameters. Since we already
parsed the arrow function before, this assertion makes sense. But somehow,
this is leading to crashes on real websites. We don't know why this invariant
is being broken. I'm changing this to a debug assert, and we're tracking
the full fix in:
https://bugs.webkit.org/show_bug.cgi?id=221633
- parser/Parser.cpp: (JSC::Parser<LexerType>::parseInner):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@272663 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 12:04 PM Changeset in webkit [272671] by
-
- 8 edits in branches/safari-611.1.14.1-branch/Source
Versioning.
WebKit-7611.1.14.1.2
- 12:02 PM Changeset in webkit [272670] by
-
- 10 edits4 adds in trunk
Web Inspector: Display all CSS grids on page in Layout panel
https://bugs.webkit.org/show_bug.cgi?id=221145
<rdar://problem/73764515>
Patch by Razvan Caliman <Razvan Caliman> on 2021-02-10
Reviewed by Devin Rousso.
Source/WebInspectorUI:
Show a list of CSS Grid containers in the Layout sidebar panel of the Elements Tab.
Whenever grid nodes are added to or removed from the page, the list is updated.
Clicking on a checkbox next to a grid node toggles the Grid overlay for that node.
Changing the color of the swatch next to a grid node updates the color of the overlay if it is visible.
Add OverlayManager to mediate showing and hiding Grid overlays.
- Localizations/en.lproj/localizedStrings.js:
- UserInterface/Base/Main.js:
(WI.loaded):
- UserInterface/Controllers/OverlayManager.js: Added.
(WI.OverlayManager):
(WI.OverlayManager.prototype.get nodesWithGridOverlay):
(WI.OverlayManager.prototype.showGridOverlay):
(WI.OverlayManager.prototype.hideGridOverlay):
OverlayManageris a singleton used to show and hide overlays for nodes on the inspected page.
It maintains state of all overlays that are visible on the page. It fires events when they are shown or hidden.
- UserInterface/Main.html:
- UserInterface/Models/DOMNode.js:
(WI.DOMNode):
(WI.DOMNode.prototype.set layoutContextType):
(WI.DOMNode.prototype.markDestroyed):
Whenever a node is removed from the DOM, itslayoutContextTypeproperty changes tonull.
This dispatches aWI.DOMNode.Event.LayoutContextTypeChangedevent which is handled inCSSGridSection
to refresh the list of grid node containers on the page.
- UserInterface/Views/BoxModelDetailsSectionRow.js:
(WI.BoxModelDetailsSectionRow.prototype.set nodeStyles):
- UserInterface/Views/CSSGridSection.css: Added.
(.css-grid-section .node-link):
(.css-grid-section .heading):
- UserInterface/Views/CSSGridSection.js: Added.
(WI.CSSGridSection):
(WI.CSSGridSection.prototype.attached):
(WI.CSSGridSection.prototype.detached):
(WI.CSSGridSection.prototype.initialLayout):
(WI.CSSGridSection.prototype.layout):
(WI.CSSGridSection.prototype._handleGridOverlayStateChanged):
(WI.CSSGridSection.prototype._handleLayoutContextTypeChanged):
(WI.CSSGridSection.prototype._refreshGridNodeSet):
CSSGridSectionis a newViewunderLayoutDetailsSidebarPanel.
It holds a list of grid nodes on the page and a set of configuration options
to pass when showing the Grid overlay (upcoming in separate patch).
- UserInterface/Views/LayoutDetailsSidebarPanel.css: Added.
(.details-section.layout-css-grid > .content > .group > .row > .css-grid-section):
- UserInterface/Views/LayoutDetailsSidebarPanel.js:
(WI.LayoutDetailsSidebarPanel.prototype.initialLayout):
LayoutTests:
DOMNode.layoutContextType is null when not defined.
Update layout test and corresponding expected result.
- inspector/css/nodeLayoutContextTypeChanged-expected.txt:
- inspector/css/nodeLayoutContextTypeChanged.html:
- 11:58 AM Changeset in webkit [272669] by
-
- 25 edits in trunk
Use HAVE(PEPPER_UI_CORE) instead of PLATFORM(WATCHOS) to guard code that uses PepperUICore
https://bugs.webkit.org/show_bug.cgi?id=221679
Reviewed by Tim Horton.
Source/WebKit:
Use
HAVE(PEPPER_UI_CORE)instead ofPLATFORM(WATCHOS)in code that depends on PepperUICore, either directly
or indirectly. While technically equivalent, the former is more semantically precise. Common examples of this
include dependencies on Quickboard for text input, or PepperUICore category extensions on common UIKit classes
(e.g. digital crown support inWKScrollView.mm). No change in behavior.
Inspired by <https://bugs.webkit.org/show_bug.cgi?id=221649#c2>.
- Platform/spi/watchos/PepperUICoreSPI.h:
- UIProcess/ios/WKContentViewInteraction.h:
- UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView _willStartScrollingOrZooming]):
(-[WKContentView _didEndScrollingOrZooming]):
(-[WKContentView _updateTextInputTraits:]):
(-[WKContentView _elementDidFocus:userIsInteracting:blurPreviousNode:activityStateChanges:userObject:]):
(-[WKContentView _elementDidBlur]):
(-[WKContentView reloadContextViewForPresentedListViewController]):
(-[WKContentView _wheelChangedWithEvent:]):
(-[WKContentView _simulateTextEntered:]):
(-[WKContentView selectFormAccessoryPickerRow:]):
(-[WKContentView selectFormAccessoryHasCheckedItemAtRow:]):
(-[WKContentView textContentTypeForTesting]):
(-[WKContentView formInputLabel]):
(-[WKContentView setTimePickerValueToHour:minute:]):
- UIProcess/ios/WKScrollView.mm:
(-[WKScrollView initWithFrame:]):
- UIProcess/ios/forms/WKDatePickerViewController.h:
- UIProcess/ios/forms/WKDatePickerViewController.mm:
- UIProcess/ios/forms/WKFocusedFormControlView.h:
- UIProcess/ios/forms/WKFocusedFormControlView.mm:
- UIProcess/ios/forms/WKNumberPadView.h:
- UIProcess/ios/forms/WKNumberPadView.mm:
- UIProcess/ios/forms/WKNumberPadViewController.h:
- UIProcess/ios/forms/WKNumberPadViewController.mm:
- UIProcess/ios/forms/WKQuickboardListViewController.h:
- UIProcess/ios/forms/WKQuickboardListViewController.mm:
- UIProcess/ios/forms/WKSelectMenuListViewController.h:
- UIProcess/ios/forms/WKSelectMenuListViewController.mm:
- UIProcess/ios/forms/WKTextInputListViewController.h:
- UIProcess/ios/forms/WKTextInputListViewController.mm:
- UIProcess/ios/forms/WKTimePickerViewController.h:
- UIProcess/ios/forms/WKTimePickerViewController.mm:
Source/WTF:
Add the
HAVE(PEPPER_UI_CORE)compile-time flag.
- wtf/PlatformHave.h:
Tools:
- WebKitTestRunner/cocoa/TestRunnerWKWebView.mm:
(isQuickboardViewController):
- 11:53 AM Changeset in webkit [272668] by
-
- 2 edits in branches/safari-611.1.14.0-branch/Source/JavaScriptCore
Cherry-pick r272663. rdar://problem/74197969
Don't crash when reparsing an arrow function and the parsing invariant is broken
https://bugs.webkit.org/show_bug.cgi?id=221632
<rdar://71874091>
Reviewed by Tadeu Zagallo and Mark Lam.
We have code where we assert that when reparsing an arrow function,
we see the '=>' token after parsing the parameters. Since we already
parsed the arrow function before, this assertion makes sense. But somehow,
this is leading to crashes on real websites. We don't know why this invariant
is being broken. I'm changing this to a debug assert, and we're tracking
the full fix in:
https://bugs.webkit.org/show_bug.cgi?id=221633
- parser/Parser.cpp: (JSC::Parser<LexerType>::parseInner):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@272663 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 11:50 AM Changeset in webkit [272667] by
-
- 8 edits in branches/safari-611.1.14.0-branch/Source
Versioning.
WebKit-7611.1.14.0.2
- 11:41 AM Changeset in webkit [272666] by
-
- 2 edits in trunk/Source/WebKit
REGRESSION (r272628): [macOS] TestWebKitAPI.WKWebView.SnapshotImageError is consistently failing
https://bugs.webkit.org/show_bug.cgi?id=221702
I got a little carried away with my error reduction. This one needs an error.
- UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView takeSnapshotWithConfiguration:completionHandler:]):
- 11:27 AM Changeset in webkit [272665] by
-
- 2 edits in trunk/Source/WebCore
[iOS][FCR] Add reduced motion animation for indeterminate progress bars
https://bugs.webkit.org/show_bug.cgi?id=221680
<rdar://problem/74191515>
Reviewed by Wenson Hsieh.
The reduced motion animation for indeterminate progress bars is an
opacity pulse from 30% to 60%.
- rendering/RenderThemeIOS.mm:
(WebCore::RenderThemeIOS::paintProgressBarWithFormControlRefresh):
- 11:01 AM Changeset in webkit [272664] by
-
- 5 edits in trunk/Tools
[ews] Remove old build.webkit.org unit-tests
https://bugs.webkit.org/show_bug.cgi?id=221678
Reviewed by Jonathan Bedard.
- CISupport/ews-build/factories.py:
(ServicesFactory.init):
- CISupport/ews-build/factories_unittest.py:
(TestTestsFactory.test_services_factory):
- CISupport/ews-build/steps.py:
(ReRunWebKitPerlTests.evaluateCommand):
(RunBuildWebKitOrgOldUnitTests): Deleted.
(RunBuildWebKitOrgOldUnitTests.init): Deleted.
(RunBuildWebKitOrgOldUnitTests.getResultSummary): Deleted.
- CISupport/ews-build/steps_unittest.py:
(TestRunBuildWebKitOrgUnitTests.test_failure):
(TestRunBuildWebKitOrgOldUnitTests): Deleted.
(TestRunBuildWebKitOrgOldUnitTests.setUp): Deleted.
(TestRunBuildWebKitOrgOldUnitTests.tearDown): Deleted.
(TestRunBuildWebKitOrgOldUnitTests.test_success): Deleted.
(TestRunBuildWebKitOrgOldUnitTests.test_failure): Deleted.
- 10:46 AM Changeset in webkit [272663] by
-
- 2 edits in trunk/Source/JavaScriptCore
Don't crash when reparsing an arrow function and the parsing invariant is broken
https://bugs.webkit.org/show_bug.cgi?id=221632
<rdar://71874091>
Reviewed by Tadeu Zagallo and Mark Lam.
We have code where we assert that when reparsing an arrow function,
we see the '=>' token after parsing the parameters. Since we already
parsed the arrow function before, this assertion makes sense. But somehow,
this is leading to crashes on real websites. We don't know why this invariant
is being broken. I'm changing this to a debug assert, and we're tracking
the full fix in:
https://bugs.webkit.org/show_bug.cgi?id=221633
- parser/Parser.cpp:
(JSC::Parser<LexerType>::parseInner):
- 10:26 AM Changeset in webkit [272662] by
-
- 5 edits2 adds in trunk
[LFC][Integration] Paint invalidation for inline element style changes
https://bugs.webkit.org/show_bug.cgi?id=221669
Reviewed by Zalan Bujtas.
Source/WebCore:
Test: fast/repaint/inline-style-change.html
Compute the repaint rect for RenderInline.
- layout/integration/LayoutIntegrationLineLayout.cpp:
(WebCore::LayoutIntegration::LineLayout::visualOverflowBoundingBoxRectFor const):
- layout/integration/LayoutIntegrationLineLayout.h:
- rendering/RenderInline.cpp:
(WebCore::RenderInline::linesVisualOverflowBoundingBox const):
(WebCore::RenderInline::clippedOverflowRectForRepaint const):
LayoutTests:
- fast/repaint/inline-style-change-expected.txt: Added.
- fast/repaint/inline-style-change.html: Added.
- 10:23 AM Changeset in webkit [272661] by
-
- 2 edits in trunk/Tools
Update status in contributors.json
Unreviewed.
- Scripts/webkitpy/common/config/contributors.json:
- 9:38 AM Changeset in webkit [272660] by
-
- 11 edits in trunk/Source/WebKit
PCM: Expired reports get sent at the same time after a session restart
https://bugs.webkit.org/show_bug.cgi?id=221555
<rdar://problem/73724816>
Reviewed by John Wilander.
Since PCM data is now persisted, we need to address the case of a
session-restart after 24-48+ hours. We should not send all overdue
attributions in the same burst in case multiple have the same destination
and could identify a user cross-site.
This patch kicks off the timer to fire pending attributions on session-start
and sends one report at a time. If more than one overdue report exists
at any time, we schedule the timer for a random interval between 15 and
30 minutes.
In theory this could result in some attributions never being sent if a
user keeps quitting and restarting a session. In practice this is
probably unlikely. Protecting the user's privacy is a hard requirement,
so we think possible starvation of some reports is the right tradeoff.
- NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp:
(WebKit::ResourceLoadStatisticsDatabaseStore::clearSentAttribution):
(WebKit::ResourceLoadStatisticsDatabaseStore::clearSentAttributions): Deleted.
- NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.h:
- NetworkProcess/Classifier/ResourceLoadStatisticsMemoryStore.h:
- NetworkProcess/Classifier/ResourceLoadStatisticsStore.h:
- NetworkProcess/Classifier/WebResourceLoadStatisticsStore.cpp:
(WebKit::WebResourceLoadStatisticsStore::clearSentAttribution):
(WebKit::WebResourceLoadStatisticsStore::clearSentAttributions): Deleted.
- NetworkProcess/Classifier/WebResourceLoadStatisticsStore.h:
Remove unused SQLite query. Update the query to sort attributed PCM
by earliestTimeToSend, which seems important now that we send only
one overdue report at a time. Change the clearSentAttributions
function to take only a single attribution.
- NetworkProcess/NetworkSession.cpp:
(WebKit::NetworkSession::NetworkSession):
Convert m_privateClickMeasurement to a unique_ptr so we can wait to
create it after WebResourceLoadStatisticsStore is created. This ensures
that the call to create the SQLite database will run on a
background thread before we try to collect overdue PCM attributions.
(WebKit::NetworkSession::storePrivateClickMeasurement):
(WebKit::NetworkSession::handlePrivateClickMeasurementConversion):
(WebKit::NetworkSession::dumpPrivateClickMeasurement):
(WebKit::NetworkSession::clearPrivateClickMeasurement):
(WebKit::NetworkSession::clearPrivateClickMeasurementForRegistrableDomain):
(WebKit::NetworkSession::setPrivateClickMeasurementOverrideTimerForTesting):
(WebKit::NetworkSession::markAttributedPrivateClickMeasurementsAsExpiredForTesting):
(WebKit::NetworkSession::setPrivateClickMeasurementConversionURLForTesting):
(WebKit::NetworkSession::markPrivateClickMeasurementsAsExpiredForTesting):
(WebKit::NetworkSession::firePrivateClickMeasurementTimerImmediately):
- NetworkProcess/NetworkSession.h:
- NetworkProcess/PrivateClickMeasurementManager.cpp:
(WebKit::PrivateClickMeasurementManager::PrivateClickMeasurementManager):
(WebKit::PrivateClickMeasurementManager::firePendingAttributionRequest):
(WebKit::PrivateClickMeasurementManager::attribute):
Drive-by fixes to add protectedThis and check if PrivateClickMeasurementManager
is still alive when this lambda is called.
- 9:07 AM Changeset in webkit [272659] by
-
- 19 edits in trunk
[watchOS] Adopt PUICQuickboardController for text input
https://bugs.webkit.org/show_bug.cgi?id=221649
Reviewed by Tim Horton.
Source/WebKit:
Refactor text input on watchOS to use
PUICQuickboardController, instead of custom WebKit subclasses of
PUICQuickboardListViewController. This new API serves the same purpose as the current list view controller
subclass, by providing a view that offers options to dictate, scribble, and choose text suggestions. See below
for more details.
For the time being, this new
PUICQuickboardControllerdoesn't provide a way to render a custom header view
for us to show the domain name; to avoid introducing a security or privacy bug in the interim, guard this behind
a WebKit-exposed runtime-enabled setting that's off by default. We can remove this setting and instead just use
theHAVE(QUICKBOARD_CONTROLLER)build-time flag once support for the custom header view is complete.
- Platform/spi/watchos/PepperUICoreSPI.h:
Include a couple of new headers if
HAVE(QUICKBOARD_CONTROLLER)is set.
- UIProcess/ios/WKContentViewInteraction.h:
Add a
_presentedQuickboardControllerinstance variable ifHAVE(QUICKBOARD_CONTROLLER)is set.
- UIProcess/ios/WKContentViewInteraction.mm:
Add protocol conformance to
PUICQuickboardControllerDelegate.
(-[WKContentView _updateInteractionTintColor:]):
(-[WKContentView tintColorDidChange]):
Refactor this to take
UITextInputTraits, instead of using_traits.
(-[WKContentView textInputTraits]):
(-[WKContentView _updateTextInputTraits:]):
Refactor this to modify the given set of text input traits given current focused element information state,
rather than operating on the_traitsinstance variable. This refactoring allows us to share logic when setting
up text input traits on both iOS and watchOS; in the former case, we're setting up a set of cached_traitson
the content view, but in the latter case, we're modifying a newly createdPUICTextInputContextthat we'll then
set on thePUICQuickboardController.
(-[WKContentView _createQuickboardController:]):
Add a helper method to create and return a new
PUICQuickboardControllerthat's suitable for the current
focused element's state.
(-[WKContentView presentViewControllerForCurrentFocusedElement]):
Present the view controller for the focused element, by either using a custom WebKit-owned
PUICQuickboardListViewControllersubclass, or by using a newPUICQuickboardControllerwith a custom text
input context. Note that in the latter case, we may not be able to invoke the UI delegate hook
-_webView:didPresentFocusedElementViewController:, since the presenting view controller's transition
coordinator may not have been created yet in the scenario where we're spinning up the Quickboard view service
for the first time, since the call to establish the XPC connection is asynchronous in PepperUICore, and we don't
attempt to present the remote view controller until the connection is established. This makes it so that we
can't rely on the-didPresentFocusedElementViewController:hook in WebKitTestRunner to know when a
PUICQuickboardControllerhas finished presenting.
To work around this, we teach the test harness to override
-presentViewController:animated:completion:and
call into the test runner'sWKWebViewsubclass when a remote quickboard controller is done presenting. In the
longer term, we will require SPI from PepperUICore to present aPUICQuickboardControllerwith a completion
block.
(-[WKContentView _isPresentingFullScreenInputView]):
A "full screen input view" for the focused element is now present if either
_presentedQuickboardControlleris
set, or_presentedFullScreenInputViewControlleris set.
(-[WKContentView dismissAllInputViewControllers:]):
Dismiss either the currently presented
_presentedQuickboardControlleror
_presentedFullScreenInputViewController, and invoke the UI delegate method
-_webView:didDismissFocusedElementViewController:when finished.
(-[WKContentView quickboardController:textInputValueDidChange:]):
(-[WKContentView quickboardControllerTextInputValueCancelled:]):
(-[WKContentView dismissQuickboardViewControllerAndRevealFocusedFormOverlayIfNecessary:]):
(-[WKContentView textContentTypeForQuickboard]):
Refactor
-_updateTextInputTraits:to call a helper method (-textContentTypeForQuickboard) on watchOS to
convert the current focused element information to aUITextContentType.
(-[WKContentView textContentTypeForListViewController:]):
(-[WKContentView _simulateTextEntered:]):
(-[WKContentView textContentTypeForTesting]):
(-[WKContentView formInputLabel]):
Update a few internal testing hooks to handle the case where we have a
_presentedQuickboardControllerinstead
of a_presentedFullScreenInputViewController.
(-[WKContentView _updateInteractionTintColor]): Deleted.
- UIProcess/ios/forms/WKTextInputListViewController.mm:
(-[WKTextInputListViewController additionalTrayButtons]): Suppress a deprecation warning.
Source/WTF:
Add a new internal setting. See other ChangeLogs for more detail.
- Scripts/Preferences/WebPreferencesInternal.yaml:
Tools:
Make some small tweaks to WebKitTestRunner in support of using
PUICQuickboardControllerfor text input.
- WebKitTestRunner/Configurations/Base.xcconfig:
- WebKitTestRunner/Configurations/WebKitTestRunnerApp.xcconfig:
Adjust the test harness on watchOS to link against PepperUICore, so that we can reference the
PUICQuickboardViewControllerandPUICQuickboardRemoteViewControllerclasses below.
- WebKitTestRunner/cocoa/TestRunnerWKWebView.h:
- WebKitTestRunner/cocoa/TestRunnerWKWebView.mm:
(isQuickboardViewController):
(-[TestRunnerWKWebView _didPresentViewController:]):
Override
-presentViewController:animated:completion:on the view controller below, and call this new method
on theTestRunnerWKWebViewwhen a view controller is finished presenting. We need to do this to ensure that
the input view presentation callbacks continue to work after adoptingPUICQuickboardController; see WebKit
ChangeLog for more details.
- WebKitTestRunner/ios/PlatformWebViewIOS.mm:
(-[PlatformWebViewController presentViewController:animated:completion:]):
LayoutTests:
Enable
QuickboardControllerForTextInputEnabled, on relevant versions of watchOS.
- fast/forms/watchos/delete-content-in-text-field.html:
- fast/forms/watchos/edit-text-field-calls-injected-bundle.html:
- fast/forms/watchos/form-control-label-text.html:
- fast/forms/watchos/time-picker-value-change.html:
- fast/forms/watchos/username-text-content-type.html:
- 9:06 AM Changeset in webkit [272658] by
-
- 1 edit in trunk/Source/WebKit/ChangeLog
Replace ChangeLog entry I accidentally deleted in r272657
Unreviewed.
- 8:59 AM Changeset in webkit [272657] by
-
- 3 edits in trunk/Source/WebKit
Revert r272586 because we're not ready yet
We're still trying to figure out the right way to trigger this behavior.
Unreviewed.
- WebProcess/EntryPoint/Cocoa/XPCService/WebContentService/Info-OSX.plist:
- WebProcess/com.apple.WebProcess.sb.in:
- 8:53 AM Changeset in webkit [272656] by
-
- 3 edits2 adds2 deletes in trunk/LayoutTests
[LayoutTests] Convert http/tests/css convert PHP to Python
https://bugs.webkit.org/show_bug.cgi?id=221511
<rdar://problem/74049585>
Patch by Chris Gambrell <Chris Gambrell> on 2021-02-10
Reviewed by Jonathan Bedard.
- http/tests/css/font-face-src-loading.html:
- http/tests/css/link-css-disabled-value-with-slow-loading-sheet-in-error.html:
- http/tests/css/resources/500.php: Removed.
- http/tests/css/resources/500.py: Added.
- http/tests/css/resources/webfont-request.php: Removed.
- http/tests/css/resources/webfont-request.py: Added.
(getRequestCount):
(setRequestCount):
- 8:18 AM Changeset in webkit [272655] by
-
- 5 edits in trunk/Tools
[ews] Add build-step to run build.webkit.org new unit-tests
https://bugs.webkit.org/show_bug.cgi?id=219454
Reviewed by Jonathan Bedard.
- CISupport/ews-build/steps.py:
(RunBuildWebKitOrgOldUnitTests): Renamed.
(RunBuildWebKitOrgUnitTests): Build step to run build.webkit.org new unit-tests.
- CISupport/ews-build/steps_unittest.py: Added unit-tests.
- CISupport/ews-build/factories.py:
(ServicesFactory.init): Added the new build-step, also change the step order slightly.
- CISupport/ews-build/factories_unittest.py:
- 7:58 AM Changeset in webkit [272654] by
-
- 5 edits1 add in trunk
Create stub methods to support finer-grained control over loading
https://bugs.webkit.org/show_bug.cgi?id=221430
<rdar://problem/73999547>
Reviewed by Geoffrey Garen.
Source/WebKit:
Create three new WebKit Cocoa methods that accept NSURLRequest, rather than URL. This allows
us to pass additional hints to the networking subsystem.
Tested with new API Tests.
- UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView loadSimulatedRequest:withResponse:responseData:]):
(-[WKWebView loadSimulatedRequest:withResponseHTMLString:]):
(-[WKWebView loadFileRequest:allowingReadAccessToURL:]):
- UIProcess/API/Cocoa/WKWebViewPrivate.h:
Tools:
- TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
- TestWebKitAPI/Tests/WebKitCocoa/WKWebViewLoadAPIs.mm: Added.
(TEST):
- 7:46 AM Changeset in webkit [272653] by
-
- 2 edits in trunk/Source/WebCore
Unreviewed build fix.
Add missing header include.
- platform/gamepad/mac/GenericHIDGamepad.cpp:
- 7:44 AM Changeset in webkit [272652] by
-
- 3 edits2 adds in trunk
REGRESSION(r263255): Text styles without an explicit language tag do not honor the system language
https://bugs.webkit.org/show_bug.cgi?id=221598
<rdar://problem/69194294>
Reviewed by Zalan Bujtas.
Source/WebCore:
The distinction between NULL and CFSTR("") strikes again!
Test: fast/text/international/system-language/jp-circled.html
- platform/graphics/cocoa/SystemFontDatabaseCoreText.cpp:
(WebCore::SystemFontDatabaseCoreText::createTextStyleFont):
LayoutTests:
- fast/text/international/system-language/jp-circled-expected-mismatch.html: Added.
- fast/text/international/system-language/jp-circled.html: Added.
- 7:19 AM Changeset in webkit [272651] by
-
- 5 edits3 adds in trunk/LayoutTests
Add support for modifier keys in test_driver.send_keys()
https://bugs.webkit.org/show_bug.cgi?id=221465
Reviewed by Carlos Garcia Campos.
LayoutTests/imported/w3c:
Allow to send modifier keys combinations, like "Ctrl + y" through test_driver.send_keys().
- web-platform-tests/resources/testdriver-vendor.js:
(convertSeleniumKeyCode):
(window.test_driver_internal.send_keys):
- web-platform-tests/uievents/keyboard/modifier-keys-combinations-expected.txt: Added.
- web-platform-tests/uievents/keyboard/modifier-keys-combinations.html: Added.
LayoutTests:
Add specific -expected.txt file for Mac platform. Meta key is detected differently than in other platforms.
- platform/ios/TestExpectations: Skip test as it's timing out on iOS.
- platform/mac/imported/w3c/web-platform-tests/uievents/keyboard/modifier-keys-combinations-expected.txt: Added.
- platform/mac/imported/w3c/web-platform-tests/uievents/keyboard/modifier-keys-expected.txt: Update expectations as it nows mostly passes.
- 7:04 AM Changeset in webkit [272650] by
-
- 2 edits in trunk/Tools
[GTK] Gardening TestResources failures after r272636
Unreviewed test gardening.
- TestWebKitAPI/glib/TestExpectations.json:
- 6:59 AM Changeset in webkit [272649] by
-
- 4 edits2 adds in trunk
[LFC][IFC] Pass in sane content width values to InlineContentBreaker
https://bugs.webkit.org/show_bug.cgi?id=221628
Source/WebCore:
rdar://problem/73874164
Reviewed by Antti Koivisto.
Insanely large zoom value could produce Nan letter-spacing values.
Let's tighten the inline content width values so that InlineContentBreaker can always expect valid InlineLayoutUnit values.
Test: fast/text/letter-spacing-produces-nan-width.html
- layout/inlineformatting/InlineContentBreaker.cpp:
(WebCore::Layout::InlineContentBreaker::ContinuousContent::append):
- layout/inlineformatting/text/TextUtil.cpp:
(WebCore::Layout::TextUtil::width):
LayoutTests:
Reviewed by Antti Koivisto.
- fast/text/letter-spacing-produces-nan-width-expected.txt: Added.
- fast/text/letter-spacing-produces-nan-width.html: Added.
- 6:49 AM Changeset in webkit [272648] by
-
- 2 edits in trunk/Source/WebCore
[LFC][IFC] Add inline box vertical border/padding to enclosing top and bottom
https://bugs.webkit.org/show_bug.cgi?id=221647
Reviewed by Antti Koivisto.
While inline boxes (<span>) don't stretch the line box vertically with their paddings and borders,
we need those boxes to be included in the enclosing top/bottom geometries.
This is also in preparation for supporting inline box overflow scroll.
- layout/inlineformatting/InlineFormattingContext.cpp:
(WebCore::Layout::InlineFormattingContext::computeGeometryForLineContent):
- layout/integration/LayoutIntegrationCoverage.cpp:
- 6:37 AM Changeset in webkit [272647] by
-
- 4 edits in trunk/Source/WebKit
Workaround some order dependent issues by parenting remote layers before applying other properties
https://bugs.webkit.org/show_bug.cgi?id=221585
Reviewed by Simon Fraser.
This runs the updateChildren (renamed to applyHierarchyUpdates for consistency) part of
the RemoteLayerTreePropertyApplier for all the transaction changes prior to running the
rest of applyProperties to work around some downstream bugs that currently require parented
layers to work. This likely won't be required forever, but it should be harmless to do.
- Shared/RemoteLayerTree/RemoteLayerTreePropertyApplier.h:
- Shared/RemoteLayerTree/RemoteLayerTreePropertyApplier.mm:
(WebKit::RemoteLayerTreePropertyApplier::applyProperties):
(WebKit::RemoteLayerTreePropertyApplier::applyHierarchyUpdates):
(WebKit::RemoteLayerTreePropertyApplier::updateChildren): Deleted.
- UIProcess/RemoteLayerTree/RemoteLayerTreeHost.mm:
(WebKit::RemoteLayerTreeHost::updateLayerTree):
- 4:43 AM Changeset in webkit [272646] by
-
- 4 edits in trunk/Source/WebCore
[GStreamer] Make m_client WeakPtr in AudioSourceProviderGStreamer
https://bugs.webkit.org/show_bug.cgi?id=217952
Reviewed by Carlos Garcia Campos.
- platform/audio/AudioSourceProviderClient.h: Turned into
CanMakeWeakPtr.
- platform/audio/gstreamer/AudioSourceProviderGStreamer.cpp:
(WebCore::AudioSourceProviderGStreamer::setClient): Adapt to use
WeakPtr.
- platform/audio/gstreamer/AudioSourceProviderGStreamer.h: Turned
m_client into WeakPtr.
- 4:04 AM Changeset in webkit [272645] by
-
- 15 edits in trunk
RemoteGraphicsContextGLProxy should support losing the context and should lose the context on timeouts
https://bugs.webkit.org/show_bug.cgi?id=221396
Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2021-02-10
Reviewed by Simon Fraser.
Source/WebKit:
Implement support for RemoteGraphicsContextGLProxy acting on
losing the context in RemoteGraphicsContextGL.
Implement support for RemoteGraphicsContextGLProxy timing out on message
sends. Force the context to be lost.
Implement support for GPUProcessConnection disconnect. Force the context
be lost.
- GPUProcess/graphics/RemoteGraphicsContextGL.cpp:
Send a bool via WasCreated method, so that the
receiver knows if creation was successful or not.
Currently the creation always succeeds.
Previously it was designed to use wasLost instead,
but this has the problem that the client will wait
for WasCreated in particular cases to ensure initialization,
and thus we cannot wait for "WasCreated OR WasLost".
(WebKit::RemoteGraphicsContextGL::RemoteGraphicsContextGL):
(WebKit::RemoteGraphicsContextGL::synthesizeGLError):
(WebKit::RemoteGraphicsContextGL::getError):
Manually implement few methods that contain custom client-side
logic wrt. lost context.
- GPUProcess/graphics/RemoteGraphicsContextGL.h:
- GPUProcess/graphics/RemoteGraphicsContextGL.messages.in:
- GPUProcess/graphics/RemoteGraphicsContextGLFunctionsGenerated.h:
(setFailNextGPUStatusCheck):
(getBooleanv):
- WebProcess/GPU/GPUProcessConnection.cpp:
(WebKit::GPUProcessConnection::dispatchMessage):
Skip the RemoteGraphicsContextGLProxy messages that do not have
a receiver. This is expected, as we cannot assume that only expected
messages arrive to the message hander.
The client, i.e. the web process, might
- just delete the proxy
- force the context to be lost
- notice a timeout and force the context to be lost
while the GPU process cannot know this. RemoteGraphicsContextGL might
already have sent messages to the Proxy.
- WebProcess/GPU/graphics/RemoteGraphicsContextGLProxy.cpp:
(WebKit::RemoteGraphicsContextGLProxy::create):
(WebKit::RemoteGraphicsContextGLProxy::RemoteGraphicsContextGLProxy):
(WebKit::RemoteGraphicsContextGLProxy::~RemoteGraphicsContextGLProxy):
Listen to GPUProcessConnection::Client notifications about
connection closure. When the connection closes, mark the context object
lost.
Store the reference to GPUProcessConnection so that when the connection
is shut down and new one is instantiated, RemoteGraphicsContextGLProxy
destruction logic will correctly refer to the one it was using.
(WebKit::RemoteGraphicsContextGLProxy::reshape):
(WebKit::RemoteGraphicsContextGLProxy::prepareForDisplay):
(WebKit::RemoteGraphicsContextGLProxy::ensureExtensionEnabled):
(WebKit::RemoteGraphicsContextGLProxy::notifyMarkContextChanged):
(WebKit::RemoteGraphicsContextGLProxy::synthesizeGLError):
(WebKit::RemoteGraphicsContextGLProxy::getError):
(WebKit::RemoteGraphicsContextGLProxy::wasCreated):
(WebKit::RemoteGraphicsContextGLProxy::wasLost):
When the context lost event happens, disconnect with
the GPUProcessConnection.
(WebKit::RemoteGraphicsContextGLProxy::wasChanged):
(WebKit::RemoteGraphicsContextGLProxy::markContextLost):
(WebKit::RemoteGraphicsContextGLProxy::waitUntilInitialized):
(WebKit::RemoteGraphicsContextGLProxy::gpuProcessConnectionDidClose):
When the connection closes, mark the context object
lost.
(WebKit::RemoteGraphicsContextGLProxy::disconnect):
- WebProcess/GPU/graphics/RemoteGraphicsContextGLProxy.h:
- WebProcess/GPU/graphics/RemoteGraphicsContextGLProxy.messages.in:
- WebProcess/GPU/graphics/RemoteGraphicsContextGLProxyFunctionsGenerated.cpp:
Changes generated by the code-generator wrt handling timeouts from the sends.
Tools:
Generate calls to lose the context on timeouts.
Generate the send calls as calls to the helper functions to send the
messages. The helper functions will provide the non-changing arguments.
Move few messages to be implemented by hand.
- Scripts/generate-gpup-webgl:
LayoutTests:
Fix the lose-context-on-status-failure.html. The test was using
an internal function to lose the context and then synchronously
checking that the context was lost. With GPU process this is not
possible, so check after normal Canvas webglcontextlost event.
Enable the test for --use-gpu-process.
- fast/canvas/webgl/lose-context-on-status-failure.html:
- gpu-process/TestExpectations:
- 3:29 AM Changeset in webkit [272644] by
-
- 59 edits15 copies46 moves592 adds1 delete in trunk/LayoutTests
[css-flexbox] Import & update latest WPT flexbox tests
https://bugs.webkit.org/show_bug.cgi?id=221484
Reviewed by Rob Buis.
LayoutTests/imported/w3c:
- resources/import-expectations.json:
- resources/resource-files.json:
- web-platform-tests/css/css-flexbox/abspos/abspos-autopos-htb-ltr-expected.xht: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/abspos-autopos-htb-ltr-expected.xht.
- web-platform-tests/css/css-flexbox/abspos/abspos-autopos-htb-ltr.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/abspos-autopos-htb-ltr.html.
- web-platform-tests/css/css-flexbox/abspos/abspos-autopos-htb-rtl-expected.xht: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/abspos-autopos-htb-rtl-expected.xht.
- web-platform-tests/css/css-flexbox/abspos/abspos-autopos-htb-rtl.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/abspos-autopos-htb-rtl.html.
- web-platform-tests/css/css-flexbox/abspos/abspos-autopos-vlr-ltr-expected.xht: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/abspos-autopos-vlr-ltr-expected.xht.
- web-platform-tests/css/css-flexbox/abspos/abspos-autopos-vlr-ltr.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/abspos-autopos-vlr-ltr.html.
- web-platform-tests/css/css-flexbox/abspos/abspos-autopos-vlr-rtl-expected.xht: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/abspos-autopos-vlr-rtl-expected.xht.
- web-platform-tests/css/css-flexbox/abspos/abspos-autopos-vlr-rtl.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/abspos-autopos-vlr-rtl.html.
- web-platform-tests/css/css-flexbox/abspos/abspos-autopos-vrl-ltr-expected.xht: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/abspos-autopos-vrl-ltr-expected.xht.
- web-platform-tests/css/css-flexbox/abspos/abspos-autopos-vrl-ltr.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/abspos-autopos-vrl-ltr.html.
- web-platform-tests/css/css-flexbox/abspos/abspos-autopos-vrl-rtl-expected.xht: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/abspos-autopos-vrl-rtl-expected.xht.
- web-platform-tests/css/css-flexbox/abspos/abspos-autopos-vrl-rtl.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/abspos-autopos-vrl-rtl.html.
- web-platform-tests/css/css-flexbox/abspos/abspos-descendent-001-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/abspos-descendent-001-expected.txt.
- web-platform-tests/css/css-flexbox/abspos/abspos-descendent-001.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/abspos-descendent-001.html.
- web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-align-content-001-expected.html: Added.
- web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-align-content-001.html: Added.
- web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-align-content-002-expected.html: Added.
- web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-align-content-002.html: Added.
- web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-align-content-003-expected.html: Added.
- web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-align-content-003.html: Added.
- web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-align-content-004-expected.html: Added.
- web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-align-content-004.html: Added.
- web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-align-content-005-expected.html: Added.
- web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-align-content-005.html: Added.
- web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-align-content-006-expected.html: Added.
- web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-align-content-006.html: Added.
- web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-align-content-007-expected.html: Added.
- web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-align-content-007.html: Added.
- web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-align-content-008-expected.html: Added.
- web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-align-content-008.html: Added.
- web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-align-content-rtl-001-expected.html: Added.
- web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-align-content-rtl-001.html: Added.
- web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-align-content-rtl-002-expected.html: Added.
- web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-align-content-rtl-002.html: Added.
- web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-align-content-vertWM-001-expected.html: Added.
- web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-align-content-vertWM-001.html: Added.
- web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-align-content-vertWM-002-expected.html: Added.
- web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-align-content-vertWM-002.html: Added.
- web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-align-self-001-expected.html: Added.
- web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-align-self-001.html: Added.
- web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-align-self-002-expected.html: Added.
- web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-align-self-002.html: Added.
- web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-align-self-003-expected.html: Added.
- web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-align-self-003.html: Added.
- web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-align-self-004-expected.html: Added.
- web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-align-self-004.html: Added.
- web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-align-self-005-expected.html: Added.
- web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-align-self-005.html: Added.
- web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-align-self-006-expected.html: Added.
- web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-align-self-006.html: Added.
- web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-align-self-007-expected.html: Added.
- web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-align-self-007.html: Added.
- web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-align-self-008-expected.html: Added.
- web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-align-self-008.html: Added.
- web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-align-self-rtl-001-expected.html: Added.
- web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-align-self-rtl-001.html: Added.
- web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-align-self-rtl-002-expected.html: Added.
- web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-align-self-rtl-002.html: Added.
- web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-align-self-rtl-003-expected.html: Added.
- web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-align-self-rtl-003.html: Added.
- web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-align-self-rtl-004-expected.html: Added.
- web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-align-self-rtl-004.html: Added.
- web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-align-self-safe-001-expected.html: Added.
- web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-align-self-safe-001.html: Added.
- web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-align-self-vertWM-001-expected.html: Added.
- web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-align-self-vertWM-001.html: Added.
- web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-align-self-vertWM-002-expected.html: Added.
- web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-align-self-vertWM-002.html: Added.
- web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-align-self-vertWM-003-expected.html: Added.
- web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-align-self-vertWM-003.html: Added.
- web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-align-self-vertWM-004-expected.html: Added.
- web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-align-self-vertWM-004.html: Added.
- web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-fallback-align-content-001-expected.html: Added.
- web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-fallback-align-content-001.html: Added.
- web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-fallback-justify-content-001-expected.html: Added.
- web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-fallback-justify-content-001.html: Added.
- web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-justify-content-001-expected.html: Added.
- web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-justify-content-001.html: Added.
- web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-justify-content-002-expected.html: Added.
- web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-justify-content-002.html: Added.
- web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-justify-content-003-expected.html: Added.
- web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-justify-content-003.html: Added.
- web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-justify-content-004-expected.html: Added.
- web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-justify-content-004.html: Added.
- web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-justify-content-005-expected.html: Added.
- web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-justify-content-005.html: Added.
- web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-justify-content-006-expected.html: Added.
- web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-justify-content-006.html: Added.
- web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-justify-content-007-expected.html: Added.
- web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-justify-content-007.html: Added.
- web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-justify-content-008-expected.html: Added.
- web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-justify-content-008.html: Added.
- web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-justify-content-rtl-001-expected.html: Added.
- web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-justify-content-rtl-001.html: Added.
- web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-justify-content-rtl-002-expected.html: Added.
- web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-justify-content-rtl-002.html: Added.
- web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-justify-content-vertWM-001-expected.html: Added.
- web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-justify-content-vertWM-001.html: Added.
- web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-justify-content-vertWM-002-expected.html: Added.
- web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-justify-content-vertWM-002.html: Added.
- web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-justify-self-001-expected.html: Added.
- web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-justify-self-001.html: Added.
- web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-margin-001-expected.html: Added.
- web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-margin-001.html: Added.
- web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-margin-002-expected.html: Added.
- web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-margin-002.html: Added.
- web-platform-tests/css/css-flexbox/abspos/flexbox-abspos-child-001a-expected.html: Added.
- web-platform-tests/css/css-flexbox/abspos/flexbox-abspos-child-001a.html: Added.
- web-platform-tests/css/css-flexbox/abspos/flexbox-abspos-child-001b-expected.html: Added.
- web-platform-tests/css/css-flexbox/abspos/flexbox-abspos-child-001b.html: Added.
- web-platform-tests/css/css-flexbox/abspos/flexbox-abspos-child-002-expected.html: Added.
- web-platform-tests/css/css-flexbox/abspos/flexbox-abspos-child-002.html: Added.
- web-platform-tests/css/css-flexbox/abspos/flexbox_absolute-atomic-expected.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/flexbox_absolute-atomic-expected.html.
- web-platform-tests/css/css-flexbox/abspos/flexbox_absolute-atomic.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/flexbox_absolute-atomic.html.
- web-platform-tests/css/css-flexbox/abspos/flexbox_inline-abspos-expected.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/flexbox_inline-abspos-expected.html.
- web-platform-tests/css/css-flexbox/abspos/flexbox_inline-abspos.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/flexbox_inline-abspos.html.
- web-platform-tests/css/css-flexbox/abspos/position-absolute-001-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/position-absolute-001-expected.txt.
- web-platform-tests/css/css-flexbox/abspos/position-absolute-001.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/position-absolute-001.html.
- web-platform-tests/css/css-flexbox/abspos/position-absolute-002-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/position-absolute-002-expected.txt.
- web-platform-tests/css/css-flexbox/abspos/position-absolute-002.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/position-absolute-002.html.
- web-platform-tests/css/css-flexbox/abspos/position-absolute-003-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/position-absolute-003-expected.txt.
- web-platform-tests/css/css-flexbox/abspos/position-absolute-003.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/position-absolute-003.html.
- web-platform-tests/css/css-flexbox/abspos/position-absolute-004-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/position-absolute-004-expected.txt.
- web-platform-tests/css/css-flexbox/abspos/position-absolute-004.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/position-absolute-004.html.
- web-platform-tests/css/css-flexbox/abspos/position-absolute-005-expected.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/position-absolute-005-expected.html.
- web-platform-tests/css/css-flexbox/abspos/position-absolute-005.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/position-absolute-005.html.
- web-platform-tests/css/css-flexbox/abspos/position-absolute-006-expected.xht: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/position-absolute-006-expected.xht.
- web-platform-tests/css/css-flexbox/abspos/position-absolute-006.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/position-absolute-006.html.
- web-platform-tests/css/css-flexbox/abspos/position-absolute-007-expected.xht: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/position-absolute-007-expected.xht.
- web-platform-tests/css/css-flexbox/abspos/position-absolute-007.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/position-absolute-007.html.
- web-platform-tests/css/css-flexbox/abspos/position-absolute-008-expected.xht: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/position-absolute-008-expected.xht.
- web-platform-tests/css/css-flexbox/abspos/position-absolute-008.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/position-absolute-008.html.
- web-platform-tests/css/css-flexbox/abspos/position-absolute-009-expected.xht: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/position-absolute-009-expected.xht.
- web-platform-tests/css/css-flexbox/abspos/position-absolute-009.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/position-absolute-009.html.
- web-platform-tests/css/css-flexbox/abspos/position-absolute-010-expected.xht: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/position-absolute-010-expected.xht.
- web-platform-tests/css/css-flexbox/abspos/position-absolute-010.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/position-absolute-010.html.
- web-platform-tests/css/css-flexbox/abspos/position-absolute-011-expected.xht: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/position-absolute-011-expected.xht.
- web-platform-tests/css/css-flexbox/abspos/position-absolute-011.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/position-absolute-011.html.
- web-platform-tests/css/css-flexbox/abspos/position-absolute-012-expected.txt: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/position-absolute-012-expected.txt.
- web-platform-tests/css/css-flexbox/abspos/position-absolute-012.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/position-absolute-012.html.
- web-platform-tests/css/css-flexbox/abspos/position-absolute-013-expected.txt: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/position-absolute-013-expected.txt.
- web-platform-tests/css/css-flexbox/abspos/position-absolute-013.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/position-absolute-013.html.
- web-platform-tests/css/css-flexbox/abspos/position-absolute-014-expected.txt: Added.
- web-platform-tests/css/css-flexbox/abspos/position-absolute-014.html: Added.
- web-platform-tests/css/css-flexbox/abspos/position-absolute-015-expected.txt: Added.
- web-platform-tests/css/css-flexbox/abspos/position-absolute-015.html: Added.
- web-platform-tests/css/css-flexbox/abspos/position-absolute-containing-block-001-expected.html: Added.
- web-platform-tests/css/css-flexbox/abspos/position-absolute-containing-block-001.html: Added.
- web-platform-tests/css/css-flexbox/abspos/position-absolute-containing-block-002-expected.html: Added.
- web-platform-tests/css/css-flexbox/abspos/position-absolute-containing-block-002.html: Added.
- web-platform-tests/css/css-flexbox/abspos/w3c-import.log: Added.
- web-platform-tests/css/css-flexbox/align-baseline-expected.html:
- web-platform-tests/css/css-flexbox/align-content-horiz-001a-expected.txt: Added.
- web-platform-tests/css/css-flexbox/align-content-horiz-001a.html: Added.
- web-platform-tests/css/css-flexbox/align-content-horiz-001b-expected.txt: Added.
- web-platform-tests/css/css-flexbox/align-content-horiz-001b.html: Added.
- web-platform-tests/css/css-flexbox/align-content-horiz-002-expected.txt: Added.
- web-platform-tests/css/css-flexbox/align-content-horiz-002.html: Added.
- web-platform-tests/css/css-flexbox/align-content-vert-001a-expected.txt: Added.
- web-platform-tests/css/css-flexbox/align-content-vert-001a.html: Added.
- web-platform-tests/css/css-flexbox/align-content-vert-001b-expected.txt: Added.
- web-platform-tests/css/css-flexbox/align-content-vert-001b.html: Added.
- web-platform-tests/css/css-flexbox/align-content-vert-002-expected.txt: Added.
- web-platform-tests/css/css-flexbox/align-content-vert-002.html: Added.
- web-platform-tests/css/css-flexbox/align-content-wmvert-001-expected.txt: Added.
- web-platform-tests/css/css-flexbox/align-content-wmvert-001.html: Added.
- web-platform-tests/css/css-flexbox/align-content_center-expected.html:
- web-platform-tests/css/css-flexbox/align-content_flex-end-expected.html:
- web-platform-tests/css/css-flexbox/align-content_flex-start-expected.html:
- web-platform-tests/css/css-flexbox/align-content_space-around-expected.html:
- web-platform-tests/css/css-flexbox/align-content_space-between-expected.html:
- web-platform-tests/css/css-flexbox/align-content_stretch-expected.html:
- web-platform-tests/css/css-flexbox/align-items-007.html:
- web-platform-tests/css/css-flexbox/align-self-015-expected.html:
- web-platform-tests/css/css-flexbox/auto-margins-003-expected.html:
- web-platform-tests/css/css-flexbox/break-nested-float-in-flex-item-001-print-expected.html: Added.
- web-platform-tests/css/css-flexbox/break-nested-float-in-flex-item-001-print.html: Added.
- web-platform-tests/css/css-flexbox/break-nested-float-in-flex-item-002-print-expected.html: Added.
- web-platform-tests/css/css-flexbox/break-nested-float-in-flex-item-002-print.html: Added.
- web-platform-tests/css/css-flexbox/canvas-dynamic-change-001.html:
- web-platform-tests/css/css-flexbox/contain-size-layout-abspos-flex-container-crash-expected.txt: Added.
- web-platform-tests/css/css-flexbox/contain-size-layout-abspos-flex-container-crash.html: Added.
- web-platform-tests/css/css-flexbox/css-flexbox-img-expand-evenly-expected.html:
- web-platform-tests/css/css-flexbox/css-flexbox-row-expected.html:
- web-platform-tests/css/css-flexbox/css-flexbox-row-reverse-expected.html:
- web-platform-tests/css/css-flexbox/css-flexbox-row-reverse-wrap-expected.html:
- web-platform-tests/css/css-flexbox/css-flexbox-row-reverse-wrap-reverse-expected.html:
- web-platform-tests/css/css-flexbox/css-flexbox-row-reverse-wrap-reverse.html:
- web-platform-tests/css/css-flexbox/css-flexbox-row-reverse-wrap.html:
- web-platform-tests/css/css-flexbox/css-flexbox-row-reverse.html:
- web-platform-tests/css/css-flexbox/css-flexbox-row-wrap-expected.html:
- web-platform-tests/css/css-flexbox/css-flexbox-row-wrap-reverse-expected.html:
- web-platform-tests/css/css-flexbox/css-flexbox-row-wrap-reverse.html:
- web-platform-tests/css/css-flexbox/css-flexbox-row-wrap.html:
- web-platform-tests/css/css-flexbox/css-flexbox-row.html:
- web-platform-tests/css/css-flexbox/dynamic-baseline-change-expected.html: Added.
- web-platform-tests/css/css-flexbox/dynamic-baseline-change-nested-expected.html: Added.
- web-platform-tests/css/css-flexbox/dynamic-baseline-change-nested.html: Added.
- web-platform-tests/css/css-flexbox/dynamic-baseline-change.html: Added.
- web-platform-tests/css/css-flexbox/dynamic-grid-flex-abspos-expected.txt: Added.
- web-platform-tests/css/css-flexbox/dynamic-grid-flex-abspos.html: Added.
- web-platform-tests/css/css-flexbox/fieldset-as-item-overflow-expected.html: Added.
- web-platform-tests/css/css-flexbox/fieldset-as-item-overflow.html: Added.
- web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-column-018-expected.html: Added.
- web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-column-018.html: Added.
- web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-row-015-expected.html: Added.
- web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-row-015.html: Added.
- web-platform-tests/css/css-flexbox/flex-item-compressible-001-expected.txt: Added.
- web-platform-tests/css/css-flexbox/flex-item-compressible-001.html: Added.
- web-platform-tests/css/css-flexbox/flex-item-compressible-002-expected.txt: Added.
- web-platform-tests/css/css-flexbox/flex-item-compressible-002.html: Added.
- web-platform-tests/css/css-flexbox/flex-item-contains-size-layout-001-expected.xht: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/abspos-autopos-htb-ltr-expected.xht.
- web-platform-tests/css/css-flexbox/flex-item-contains-size-layout-001.html: Added.
- web-platform-tests/css/css-flexbox/flex-item-vertical-align-expected.html:
- web-platform-tests/css/css-flexbox/flex-minimum-height-flex-items-005.xht:
- web-platform-tests/css/css-flexbox/flex-minimum-height-flex-items-007.xht:
- web-platform-tests/css/css-flexbox/flex-minimum-height-flex-items-013.html:
- web-platform-tests/css/css-flexbox/flex-minimum-height-flex-items-025-expected.txt: Added.
- web-platform-tests/css/css-flexbox/flex-minimum-height-flex-items-025.html: Added.
- web-platform-tests/css/css-flexbox/flex-minimum-height-flex-items-026-expected.html: Added.
- web-platform-tests/css/css-flexbox/flex-minimum-height-flex-items-026.html: Added.
- web-platform-tests/css/css-flexbox/flex-minimum-height-flex-items-027-expected.html: Added.
- web-platform-tests/css/css-flexbox/flex-minimum-height-flex-items-027.html: Added.
- web-platform-tests/css/css-flexbox/flex-minimum-height-flex-items-028-expected.html: Added.
- web-platform-tests/css/css-flexbox/flex-minimum-height-flex-items-028.html: Added.
- web-platform-tests/css/css-flexbox/flex-minimum-height-flex-items-029-expected.html: Added.
- web-platform-tests/css/css-flexbox/flex-minimum-height-flex-items-029.html: Added.
- web-platform-tests/css/css-flexbox/flex-minimum-height-flex-items-030-expected.html: Added.
- web-platform-tests/css/css-flexbox/flex-minimum-height-flex-items-030.html: Added.
- web-platform-tests/css/css-flexbox/flex-minimum-size-003-expected.txt: Added.
- web-platform-tests/css/css-flexbox/flex-minimum-size-003.html: Added.
- web-platform-tests/css/css-flexbox/flex-minimum-width-flex-items-005.xht:
- web-platform-tests/css/css-flexbox/flex-minimum-width-flex-items-013.html:
- web-platform-tests/css/css-flexbox/flex-minimum-width-flex-items-015-expected.xht: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/abspos-autopos-htb-ltr-expected.xht.
- web-platform-tests/css/css-flexbox/flex-minimum-width-flex-items-015.html: Added.
- web-platform-tests/css/css-flexbox/flex-minimum-width-flex-items-016-expected.html: Added.
- web-platform-tests/css/css-flexbox/flex-minimum-width-flex-items-016.html: Added.
- web-platform-tests/css/css-flexbox/flexbox-align-items-center-nested-001-expected.html: Added.
- web-platform-tests/css/css-flexbox/flexbox-align-items-center-nested-001.html: Added.
- web-platform-tests/css/css-flexbox/flexbox-align-self-baseline-horiz-001a-expected.xhtml: Added.
- web-platform-tests/css/css-flexbox/flexbox-align-self-baseline-horiz-001a.xhtml: Added.
- web-platform-tests/css/css-flexbox/flexbox-align-self-baseline-horiz-001b-expected.xhtml: Added.
- web-platform-tests/css/css-flexbox/flexbox-align-self-baseline-horiz-001b.xhtml: Added.
- web-platform-tests/css/css-flexbox/flexbox-align-self-baseline-horiz-002-expected.xhtml: Added.
- web-platform-tests/css/css-flexbox/flexbox-align-self-baseline-horiz-002.xhtml: Added.
- web-platform-tests/css/css-flexbox/flexbox-align-self-baseline-horiz-003-expected.xhtml: Added.
- web-platform-tests/css/css-flexbox/flexbox-align-self-baseline-horiz-003.xhtml: Added.
- web-platform-tests/css/css-flexbox/flexbox-align-self-baseline-horiz-004-expected.xhtml: Added.
- web-platform-tests/css/css-flexbox/flexbox-align-self-baseline-horiz-004.xhtml: Added.
- web-platform-tests/css/css-flexbox/flexbox-align-self-baseline-horiz-005-expected.xhtml: Added.
- web-platform-tests/css/css-flexbox/flexbox-align-self-baseline-horiz-005.xhtml: Added.
- web-platform-tests/css/css-flexbox/flexbox-align-self-baseline-horiz-006-expected.xhtml: Added.
- web-platform-tests/css/css-flexbox/flexbox-align-self-baseline-horiz-006.xhtml: Added.
- web-platform-tests/css/css-flexbox/flexbox-align-self-baseline-horiz-007-expected.xhtml: Added.
- web-platform-tests/css/css-flexbox/flexbox-align-self-baseline-horiz-007.xhtml: Added.
- web-platform-tests/css/css-flexbox/flexbox-align-self-baseline-horiz-008-expected.xhtml: Added.
- web-platform-tests/css/css-flexbox/flexbox-align-self-baseline-horiz-008.xhtml: Added.
- web-platform-tests/css/css-flexbox/flexbox-align-self-horiz-001-block-expected.xhtml: Added.
- web-platform-tests/css/css-flexbox/flexbox-align-self-horiz-001-block.xhtml: Added.
- web-platform-tests/css/css-flexbox/flexbox-align-self-horiz-001-table-expected.xhtml: Added.
- web-platform-tests/css/css-flexbox/flexbox-align-self-horiz-001-table.xhtml: Added.
- web-platform-tests/css/css-flexbox/flexbox-align-self-horiz-002-expected.xhtml: Added.
- web-platform-tests/css/css-flexbox/flexbox-align-self-horiz-002.xhtml: Added.
- web-platform-tests/css/css-flexbox/flexbox-align-self-horiz-003-expected.xhtml: Added.
- web-platform-tests/css/css-flexbox/flexbox-align-self-horiz-003.xhtml: Added.
- web-platform-tests/css/css-flexbox/flexbox-align-self-horiz-004-expected.xhtml: Added.
- web-platform-tests/css/css-flexbox/flexbox-align-self-horiz-004.xhtml: Added.
- web-platform-tests/css/css-flexbox/flexbox-align-self-horiz-005-expected.xhtml: Added.
- web-platform-tests/css/css-flexbox/flexbox-align-self-horiz-005.xhtml: Added.
- web-platform-tests/css/css-flexbox/flexbox-align-self-stretch-vert-001-expected.html: Added.
- web-platform-tests/css/css-flexbox/flexbox-align-self-stretch-vert-001.html: Added.
- web-platform-tests/css/css-flexbox/flexbox-align-self-stretch-vert-002-expected.html: Added.
- web-platform-tests/css/css-flexbox/flexbox-align-self-stretch-vert-002.html: Added.
- web-platform-tests/css/css-flexbox/flexbox-align-self-vert-001-expected.xhtml: Added.
- web-platform-tests/css/css-flexbox/flexbox-align-self-vert-001.xhtml: Added.
- web-platform-tests/css/css-flexbox/flexbox-align-self-vert-002-expected.xhtml: Added.
- web-platform-tests/css/css-flexbox/flexbox-align-self-vert-002.xhtml: Added.
- web-platform-tests/css/css-flexbox/flexbox-align-self-vert-003-expected.xhtml: Added.
- web-platform-tests/css/css-flexbox/flexbox-align-self-vert-003.xhtml: Added.
- web-platform-tests/css/css-flexbox/flexbox-align-self-vert-004-expected.xhtml: Added.
- web-platform-tests/css/css-flexbox/flexbox-align-self-vert-004.xhtml: Added.
- web-platform-tests/css/css-flexbox/flexbox-align-self-vert-rtl-001-expected.xhtml: Added.
- web-platform-tests/css/css-flexbox/flexbox-align-self-vert-rtl-001.xhtml: Added.
- web-platform-tests/css/css-flexbox/flexbox-align-self-vert-rtl-002-expected.xhtml: Added.
- web-platform-tests/css/css-flexbox/flexbox-align-self-vert-rtl-002.xhtml: Added.
- web-platform-tests/css/css-flexbox/flexbox-align-self-vert-rtl-003-expected.xhtml: Added.
- web-platform-tests/css/css-flexbox/flexbox-align-self-vert-rtl-003.xhtml: Added.
- web-platform-tests/css/css-flexbox/flexbox-align-self-vert-rtl-004-expected.xhtml: Added.
- web-platform-tests/css/css-flexbox/flexbox-align-self-vert-rtl-004.xhtml: Added.
- web-platform-tests/css/css-flexbox/flexbox-align-self-vert-rtl-005-expected.xhtml: Added.
- web-platform-tests/css/css-flexbox/flexbox-align-self-vert-rtl-005.xhtml: Added.
- web-platform-tests/css/css-flexbox/flexbox-anonymous-items-001-expected.html: Added.
- web-platform-tests/css/css-flexbox/flexbox-anonymous-items-001.html: Added.
- web-platform-tests/css/css-flexbox/flexbox-baseline-align-self-baseline-horiz-001-expected.html: Added.
- web-platform-tests/css/css-flexbox/flexbox-baseline-align-self-baseline-horiz-001.html: Added.
- web-platform-tests/css/css-flexbox/flexbox-baseline-align-self-baseline-vert-001-expected.html: Added.
- web-platform-tests/css/css-flexbox/flexbox-baseline-align-self-baseline-vert-001.html: Added.
- web-platform-tests/css/css-flexbox/flexbox-baseline-empty-001a-expected.html: Added.
- web-platform-tests/css/css-flexbox/flexbox-baseline-empty-001a.html: Added.
- web-platform-tests/css/css-flexbox/flexbox-baseline-empty-001b-expected.html: Added.
- web-platform-tests/css/css-flexbox/flexbox-baseline-empty-001b.html: Added.
- web-platform-tests/css/css-flexbox/flexbox-baseline-multi-item-horiz-001a-expected.html: Added.
- web-platform-tests/css/css-flexbox/flexbox-baseline-multi-item-horiz-001a.html: Added.
- web-platform-tests/css/css-flexbox/flexbox-baseline-multi-item-horiz-001b-expected.html: Added.
- web-platform-tests/css/css-flexbox/flexbox-baseline-multi-item-horiz-001b.html: Added.
- web-platform-tests/css/css-flexbox/flexbox-baseline-multi-item-vert-001a-expected.html: Added.
- web-platform-tests/css/css-flexbox/flexbox-baseline-multi-item-vert-001a.html: Added.
- web-platform-tests/css/css-flexbox/flexbox-baseline-multi-item-vert-001b-expected.html: Added.
- web-platform-tests/css/css-flexbox/flexbox-baseline-multi-item-vert-001b.html: Added.
- web-platform-tests/css/css-flexbox/flexbox-baseline-multi-line-horiz-001-expected.html: Added.
- web-platform-tests/css/css-flexbox/flexbox-baseline-multi-line-horiz-001.html: Added.
- web-platform-tests/css/css-flexbox/flexbox-baseline-multi-line-horiz-002-expected.html: Added.
- web-platform-tests/css/css-flexbox/flexbox-baseline-multi-line-horiz-002.html: Added.
- web-platform-tests/css/css-flexbox/flexbox-baseline-multi-line-horiz-003-expected.html: Added.
- web-platform-tests/css/css-flexbox/flexbox-baseline-multi-line-horiz-003.html: Added.
- web-platform-tests/css/css-flexbox/flexbox-baseline-multi-line-horiz-004-expected.html: Added.
- web-platform-tests/css/css-flexbox/flexbox-baseline-multi-line-horiz-004.html: Added.
- web-platform-tests/css/css-flexbox/flexbox-baseline-multi-line-vert-001-expected.html: Added.
- web-platform-tests/css/css-flexbox/flexbox-baseline-multi-line-vert-001.html: Added.
- web-platform-tests/css/css-flexbox/flexbox-baseline-multi-line-vert-002-expected.html: Added.
- web-platform-tests/css/css-flexbox/flexbox-baseline-multi-line-vert-002.html: Added.
- web-platform-tests/css/css-flexbox/flexbox-baseline-single-item-001a-expected.html: Added.
- web-platform-tests/css/css-flexbox/flexbox-baseline-single-item-001a.html: Added.
- web-platform-tests/css/css-flexbox/flexbox-baseline-single-item-001b-expected.html: Added.
- web-platform-tests/css/css-flexbox/flexbox-baseline-single-item-001b.html: Added.
- web-platform-tests/css/css-flexbox/flexbox-basic-block-horiz-001-expected.xhtml: Added.
- web-platform-tests/css/css-flexbox/flexbox-basic-block-horiz-001.xhtml: Added.
- web-platform-tests/css/css-flexbox/flexbox-basic-block-horiz-001v-expected.xhtml: Added.
- web-platform-tests/css/css-flexbox/flexbox-basic-block-horiz-001v.xhtml: Added.
- web-platform-tests/css/css-flexbox/flexbox-basic-block-vert-001-expected.xhtml: Added.
- web-platform-tests/css/css-flexbox/flexbox-basic-block-vert-001.xhtml: Added.
- web-platform-tests/css/css-flexbox/flexbox-basic-block-vert-001v-expected.xhtml: Added.
- web-platform-tests/css/css-flexbox/flexbox-basic-block-vert-001v.xhtml: Added.
- web-platform-tests/css/css-flexbox/flexbox-basic-canvas-horiz-001-expected.xhtml: Added.
- web-platform-tests/css/css-flexbox/flexbox-basic-canvas-horiz-001.xhtml: Added.
- web-platform-tests/css/css-flexbox/flexbox-basic-canvas-horiz-001v-expected.xhtml: Added.
- web-platform-tests/css/css-flexbox/flexbox-basic-canvas-horiz-001v.xhtml: Added.
- web-platform-tests/css/css-flexbox/flexbox-basic-canvas-vert-001-expected.xhtml: Added.
- web-platform-tests/css/css-flexbox/flexbox-basic-canvas-vert-001.xhtml: Added.
- web-platform-tests/css/css-flexbox/flexbox-basic-canvas-vert-001v-expected.xhtml: Added.
- web-platform-tests/css/css-flexbox/flexbox-basic-canvas-vert-001v.xhtml: Added.
- web-platform-tests/css/css-flexbox/flexbox-basic-fieldset-horiz-001-expected.xhtml: Added.
- web-platform-tests/css/css-flexbox/flexbox-basic-fieldset-horiz-001.xhtml: Added.
- web-platform-tests/css/css-flexbox/flexbox-basic-fieldset-vert-001-expected.xhtml: Added.
- web-platform-tests/css/css-flexbox/flexbox-basic-fieldset-vert-001.xhtml: Added.
- web-platform-tests/css/css-flexbox/flexbox-basic-iframe-horiz-001-expected.xhtml: Added.
- web-platform-tests/css/css-flexbox/flexbox-basic-iframe-horiz-001.xhtml: Added.
- web-platform-tests/css/css-flexbox/flexbox-basic-iframe-vert-001-expected.xhtml: Added.
- web-platform-tests/css/css-flexbox/flexbox-basic-iframe-vert-001.xhtml: Added.
- web-platform-tests/css/css-flexbox/flexbox-basic-img-horiz-001-expected.xhtml: Added.
- web-platform-tests/css/css-flexbox/flexbox-basic-img-horiz-001.xhtml: Added.
- web-platform-tests/css/css-flexbox/flexbox-basic-img-vert-001-expected.xhtml: Added.
- web-platform-tests/css/css-flexbox/flexbox-basic-img-vert-001.xhtml: Added.
- web-platform-tests/css/css-flexbox/flexbox-basic-textarea-horiz-001-expected.xhtml: Added.
- web-platform-tests/css/css-flexbox/flexbox-basic-textarea-horiz-001.xhtml: Added.
- web-platform-tests/css/css-flexbox/flexbox-basic-textarea-vert-001-expected.xhtml: Added.
- web-platform-tests/css/css-flexbox/flexbox-basic-textarea-vert-001.xhtml: Added.
- web-platform-tests/css/css-flexbox/flexbox-basic-video-horiz-001-expected.xhtml: Added.
- web-platform-tests/css/css-flexbox/flexbox-basic-video-horiz-001.xhtml: Added.
- web-platform-tests/css/css-flexbox/flexbox-basic-video-vert-001-expected.xhtml: Added.
- web-platform-tests/css/css-flexbox/flexbox-basic-video-vert-001.xhtml: Added.
- web-platform-tests/css/css-flexbox/flexbox-break-request-horiz-001a-expected.html: Added.
- web-platform-tests/css/css-flexbox/flexbox-break-request-horiz-001a.html: Added.
- web-platform-tests/css/css-flexbox/flexbox-break-request-horiz-001b-expected.html: Added.
- web-platform-tests/css/css-flexbox/flexbox-break-request-horiz-001b.html: Added.
- web-platform-tests/css/css-flexbox/flexbox-break-request-horiz-002a-expected.html: Added.
- web-platform-tests/css/css-flexbox/flexbox-break-request-horiz-002a.html: Added.
- web-platform-tests/css/css-flexbox/flexbox-break-request-horiz-002b-expected.html: Added.
- web-platform-tests/css/css-flexbox/flexbox-break-request-horiz-002b.html: Added.
- web-platform-tests/css/css-flexbox/flexbox-break-request-vert-001a-expected.html: Added.
- web-platform-tests/css/css-flexbox/flexbox-break-request-vert-001a.html: Added.
- web-platform-tests/css/css-flexbox/flexbox-break-request-vert-001b-expected.html: Added.
- web-platform-tests/css/css-flexbox/flexbox-break-request-vert-001b.html: Added.
- web-platform-tests/css/css-flexbox/flexbox-break-request-vert-002a-expected.html: Added.
- web-platform-tests/css/css-flexbox/flexbox-break-request-vert-002a.html: Added.
- web-platform-tests/css/css-flexbox/flexbox-break-request-vert-002b-expected.html: Added.
- web-platform-tests/css/css-flexbox/flexbox-break-request-vert-002b.html: Added.
- web-platform-tests/css/css-flexbox/flexbox-collapsed-item-baseline-001-expected.html: Added.
- web-platform-tests/css/css-flexbox/flexbox-collapsed-item-baseline-001.html: Added.
- web-platform-tests/css/css-flexbox/flexbox-collapsed-item-horiz-001-expected.html: Added.
- web-platform-tests/css/css-flexbox/flexbox-collapsed-item-horiz-001.html: Added.
- web-platform-tests/css/css-flexbox/flexbox-collapsed-item-horiz-002-expected.html: Added.
- web-platform-tests/css/css-flexbox/flexbox-collapsed-item-horiz-002.html: Added.
- web-platform-tests/css/css-flexbox/flexbox-collapsed-item-horiz-003-expected.html: Added.
- web-platform-tests/css/css-flexbox/flexbox-collapsed-item-horiz-003.html: Added.
- web-platform-tests/css/css-flexbox/flexbox-column-row-gap-001-expected.html: Added.
- web-platform-tests/css/css-flexbox/flexbox-column-row-gap-001.html: Added.
- web-platform-tests/css/css-flexbox/flexbox-column-row-gap-002-expected.html: Added.
- web-platform-tests/css/css-flexbox/flexbox-column-row-gap-002.html: Added.
- web-platform-tests/css/css-flexbox/flexbox-column-row-gap-003-expected.html: Added.
- web-platform-tests/css/css-flexbox/flexbox-column-row-gap-003.html: Added.
- web-platform-tests/css/css-flexbox/flexbox-column-row-gap-004-expected.html: Added.
- web-platform-tests/css/css-flexbox/flexbox-column-row-gap-004.html: Added.
- web-platform-tests/css/css-flexbox/flexbox-definite-sizes-001-expected.html: Added.
- web-platform-tests/css/css-flexbox/flexbox-definite-sizes-001.html: Added.
- web-platform-tests/css/css-flexbox/flexbox-definite-sizes-002-expected.html: Added.
- web-platform-tests/css/css-flexbox/flexbox-definite-sizes-002.html: Added.
- web-platform-tests/css/css-flexbox/flexbox-definite-sizes-003-expected.html: Added.
- web-platform-tests/css/css-flexbox/flexbox-definite-sizes-003.html: Added.
- web-platform-tests/css/css-flexbox/flexbox-definite-sizes-004-expected.html: Added.
- web-platform-tests/css/css-flexbox/flexbox-definite-sizes-004.html: Added.
- web-platform-tests/css/css-flexbox/flexbox-definite-sizes-005-expected.html: Added.
- web-platform-tests/css/css-flexbox/flexbox-definite-sizes-005.html: Added.
- web-platform-tests/css/css-flexbox/flexbox-definite-sizes-006-expected.html: Added.
- web-platform-tests/css/css-flexbox/flexbox-definite-sizes-006.html: Added.
- web-platform-tests/css/css-flexbox/flexbox-dyn-resize-001-expected.html: Added.
- web-platform-tests/css/css-flexbox/flexbox-dyn-resize-001.html: Added.
- web-platform-tests/css/css-flexbox/flexbox-flex-basis-content-001a-expected.html: Added.
- web-platform-tests/css/css-flexbox/flexbox-flex-basis-content-001a.html: Added.
- web-platform-tests/css/css-flexbox/flexbox-flex-basis-content-001b-expected.html: Added.
- web-platform-tests/css/css-flexbox/flexbox-flex-basis-content-001b.html: Added.
- web-platform-tests/css/css-flexbox/flexbox-flex-basis-content-002a-expected.html: Added.
- web-platform-tests/css/css-flexbox/flexbox-flex-basis-content-002a.html: Added.
- web-platform-tests/css/css-flexbox/flexbox-flex-basis-content-002b-expected.html: Added.
- web-platform-tests/css/css-flexbox/flexbox-flex-basis-content-002b.html: Added.
- web-platform-tests/css/css-flexbox/flexbox-flex-basis-content-003a-expected.html: Added.
- web-platform-tests/css/css-flexbox/flexbox-flex-basis-content-003a.html: Added.
- web-platform-tests/css/css-flexbox/flexbox-flex-basis-content-003b-expected.html: Added.
- web-platform-tests/css/css-flexbox/flexbox-flex-basis-content-003b.html: Added.
- web-platform-tests/css/css-flexbox/flexbox-flex-basis-content-004a-expected.html: Added.
- web-platform-tests/css/css-flexbox/flexbox-flex-basis-content-004a.html: Added.
- web-platform-tests/css/css-flexbox/flexbox-flex-basis-content-004b-expected.html: Added.
- web-platform-tests/css/css-flexbox/flexbox-flex-basis-content-004b.html: Added.
- web-platform-tests/css/css-flexbox/flexbox-flex-flow-001-expected.html: Added.
- web-platform-tests/css/css-flexbox/flexbox-flex-flow-001.html: Added.
- web-platform-tests/css/css-flexbox/flexbox-flex-flow-002-expected.html: Added.
- web-platform-tests/css/css-flexbox/flexbox-flex-flow-002.html: Added.
- web-platform-tests/css/css-flexbox/flexbox-flex-wrap-horiz-001-expected.html: Added.
- web-platform-tests/css/css-flexbox/flexbox-flex-wrap-horiz-001.html: Added.
- web-platform-tests/css/css-flexbox/flexbox-flex-wrap-horiz-002-expected.html: Added.
- web-platform-tests/css/css-flexbox/flexbox-flex-wrap-horiz-002.html: Added.
- web-platform-tests/css/css-flexbox/flexbox-flex-wrap-vert-001-expected.html: Added.
- web-platform-tests/css/css-flexbox/flexbox-flex-wrap-vert-001.html: Added.
- web-platform-tests/css/css-flexbox/flexbox-flex-wrap-vert-002-expected.html: Added.
- web-platform-tests/css/css-flexbox/flexbox-flex-wrap-vert-002.html: Added.
- web-platform-tests/css/css-flexbox/flexbox-items-as-stacking-contexts-001-expected.xhtml: Added.
- web-platform-tests/css/css-flexbox/flexbox-items-as-stacking-contexts-001.xhtml: Added.
- web-platform-tests/css/css-flexbox/flexbox-items-as-stacking-contexts-002-expected.html: Added.
- web-platform-tests/css/css-flexbox/flexbox-items-as-stacking-contexts-002.html: Added.
- web-platform-tests/css/css-flexbox/flexbox-items-as-stacking-contexts-003-expected.html: Added.
- web-platform-tests/css/css-flexbox/flexbox-items-as-stacking-contexts-003.html: Added.
- web-platform-tests/css/css-flexbox/flexbox-justify-content-horiz-001a-expected.xhtml: Added.
- web-platform-tests/css/css-flexbox/flexbox-justify-content-horiz-001a.xhtml: Added.
- web-platform-tests/css/css-flexbox/flexbox-justify-content-horiz-001b-expected.xhtml: Added.
- web-platform-tests/css/css-flexbox/flexbox-justify-content-horiz-001b.xhtml: Added.
- web-platform-tests/css/css-flexbox/flexbox-justify-content-horiz-002-expected.xhtml: Added.
- web-platform-tests/css/css-flexbox/flexbox-justify-content-horiz-002.xhtml: Added.
- web-platform-tests/css/css-flexbox/flexbox-justify-content-horiz-003-expected.xhtml: Added.
- web-platform-tests/css/css-flexbox/flexbox-justify-content-horiz-003.xhtml: Added.
- web-platform-tests/css/css-flexbox/flexbox-justify-content-horiz-004-expected.xhtml: Added.
- web-platform-tests/css/css-flexbox/flexbox-justify-content-horiz-004.xhtml: Added.
- web-platform-tests/css/css-flexbox/flexbox-justify-content-horiz-005-expected.xhtml: Added.
- web-platform-tests/css/css-flexbox/flexbox-justify-content-horiz-005.xhtml: Added.
- web-platform-tests/css/css-flexbox/flexbox-justify-content-horiz-006-expected.xhtml: Added.
- web-platform-tests/css/css-flexbox/flexbox-justify-content-horiz-006.xhtml: Added.
- web-platform-tests/css/css-flexbox/flexbox-justify-content-vert-001a-expected.xhtml: Added.
- web-platform-tests/css/css-flexbox/flexbox-justify-content-vert-001a.xhtml: Added.
- web-platform-tests/css/css-flexbox/flexbox-justify-content-vert-001b-expected.xhtml: Added.
- web-platform-tests/css/css-flexbox/flexbox-justify-content-vert-001b.xhtml: Added.
- web-platform-tests/css/css-flexbox/flexbox-justify-content-vert-002-expected.xhtml: Added.
- web-platform-tests/css/css-flexbox/flexbox-justify-content-vert-002.xhtml: Added.
- web-platform-tests/css/css-flexbox/flexbox-justify-content-vert-003-expected.xhtml: Added.
- web-platform-tests/css/css-flexbox/flexbox-justify-content-vert-003.xhtml: Added.
- web-platform-tests/css/css-flexbox/flexbox-justify-content-vert-004-expected.xhtml: Added.
- web-platform-tests/css/css-flexbox/flexbox-justify-content-vert-004.xhtml: Added.
- web-platform-tests/css/css-flexbox/flexbox-justify-content-vert-005-expected.xhtml: Added.
- web-platform-tests/css/css-flexbox/flexbox-justify-content-vert-005.xhtml: Added.
- web-platform-tests/css/css-flexbox/flexbox-justify-content-vert-006-expected.xhtml: Added.
- web-platform-tests/css/css-flexbox/flexbox-justify-content-vert-006.xhtml: Added.
- web-platform-tests/css/css-flexbox/flexbox-justify-content-wmvert-001-expected.xhtml: Added.
- web-platform-tests/css/css-flexbox/flexbox-justify-content-wmvert-001.xhtml: Added.
- web-platform-tests/css/css-flexbox/flexbox-margin-auto-horiz-001-expected.xhtml: Added.
- web-platform-tests/css/css-flexbox/flexbox-margin-auto-horiz-001.xhtml: Added.
- web-platform-tests/css/css-flexbox/flexbox-margin-auto-horiz-002-expected.xhtml: Added.
- web-platform-tests/css/css-flexbox/flexbox-margin-auto-horiz-002.xhtml: Added.
- web-platform-tests/css/css-flexbox/flexbox-mbp-horiz-001-expected.xhtml: Added.
- web-platform-tests/css/css-flexbox/flexbox-mbp-horiz-001-reverse-expected.xhtml: Added.
- web-platform-tests/css/css-flexbox/flexbox-mbp-horiz-001-reverse.xhtml: Added.
- web-platform-tests/css/css-flexbox/flexbox-mbp-horiz-001-rtl-expected.xhtml: Added.
- web-platform-tests/css/css-flexbox/flexbox-mbp-horiz-001-rtl-reverse-expected.xhtml: Added.
- web-platform-tests/css/css-flexbox/flexbox-mbp-horiz-001-rtl-reverse.xhtml: Added.
- web-platform-tests/css/css-flexbox/flexbox-mbp-horiz-001-rtl.xhtml: Added.
- web-platform-tests/css/css-flexbox/flexbox-mbp-horiz-001.xhtml: Added.
- web-platform-tests/css/css-flexbox/flexbox-mbp-horiz-002a-expected.xhtml: Added.
- web-platform-tests/css/css-flexbox/flexbox-mbp-horiz-002a.xhtml: Added.
- web-platform-tests/css/css-flexbox/flexbox-mbp-horiz-002b-expected.xhtml: Added.
- web-platform-tests/css/css-flexbox/flexbox-mbp-horiz-002b.xhtml: Added.
- web-platform-tests/css/css-flexbox/flexbox-mbp-horiz-002v-expected.xhtml: Added.
- web-platform-tests/css/css-flexbox/flexbox-mbp-horiz-002v.xhtml: Added.
- web-platform-tests/css/css-flexbox/flexbox-mbp-horiz-003-expected.xhtml: Added.
- web-platform-tests/css/css-flexbox/flexbox-mbp-horiz-003-reverse-expected.xhtml: Added.
- web-platform-tests/css/css-flexbox/flexbox-mbp-horiz-003-reverse.xhtml: Added.
- web-platform-tests/css/css-flexbox/flexbox-mbp-horiz-003.xhtml: Added.
- web-platform-tests/css/css-flexbox/flexbox-mbp-horiz-003v-expected.xhtml: Added.
- web-platform-tests/css/css-flexbox/flexbox-mbp-horiz-003v.xhtml: Added.
- web-platform-tests/css/css-flexbox/flexbox-mbp-horiz-004-expected.xhtml: Added.
- web-platform-tests/css/css-flexbox/flexbox-mbp-horiz-004.xhtml: Added.
- web-platform-tests/css/css-flexbox/flexbox-min-height-auto-001-expected.html: Added.
- web-platform-tests/css/css-flexbox/flexbox-min-height-auto-001.html: Added.
- web-platform-tests/css/css-flexbox/flexbox-min-height-auto-002a-expected.html: Added.
- web-platform-tests/css/css-flexbox/flexbox-min-height-auto-002a.html: Added.
- web-platform-tests/css/css-flexbox/flexbox-min-height-auto-002b-expected.html: Added.
- web-platform-tests/css/css-flexbox/flexbox-min-height-auto-002b.html: Added.
- web-platform-tests/css/css-flexbox/flexbox-min-height-auto-002c-expected.html: Added.
- web-platform-tests/css/css-flexbox/flexbox-min-height-auto-002c.html: Added.
- web-platform-tests/css/css-flexbox/flexbox-min-height-auto-003-expected.html: Added.
- web-platform-tests/css/css-flexbox/flexbox-min-height-auto-003.html: Added.
- web-platform-tests/css/css-flexbox/flexbox-min-height-auto-004-expected.html: Added.
- web-platform-tests/css/css-flexbox/flexbox-min-height-auto-004.html: Added.
- web-platform-tests/css/css-flexbox/flexbox-min-width-auto-001-expected.html: Added.
- web-platform-tests/css/css-flexbox/flexbox-min-width-auto-001.html: Added.
- web-platform-tests/css/css-flexbox/flexbox-min-width-auto-002a-expected.html: Added.
- web-platform-tests/css/css-flexbox/flexbox-min-width-auto-002a.html: Added.
- web-platform-tests/css/css-flexbox/flexbox-min-width-auto-002b-expected.html: Added.
- web-platform-tests/css/css-flexbox/flexbox-min-width-auto-002b.html: Added.
- web-platform-tests/css/css-flexbox/flexbox-min-width-auto-002c-expected.html: Added.
- web-platform-tests/css/css-flexbox/flexbox-min-width-auto-002c.html: Added.
- web-platform-tests/css/css-flexbox/flexbox-min-width-auto-003-expected.html: Added.
- web-platform-tests/css/css-flexbox/flexbox-min-width-auto-003.html: Added.
- web-platform-tests/css/css-flexbox/flexbox-min-width-auto-004-expected.html: Added.
- web-platform-tests/css/css-flexbox/flexbox-min-width-auto-004.html: Added.
- web-platform-tests/css/css-flexbox/flexbox-overflow-horiz-001-expected.html: Added.
- web-platform-tests/css/css-flexbox/flexbox-overflow-horiz-001.html: Added.
- web-platform-tests/css/css-flexbox/flexbox-overflow-horiz-002-expected.html: Added.
- web-platform-tests/css/css-flexbox/flexbox-overflow-horiz-002.html: Added.
- web-platform-tests/css/css-flexbox/flexbox-overflow-horiz-003-expected.html: Added.
- web-platform-tests/css/css-flexbox/flexbox-overflow-horiz-003.html: Added.
- web-platform-tests/css/css-flexbox/flexbox-overflow-horiz-004-expected.html: Added.
- web-platform-tests/css/css-flexbox/flexbox-overflow-horiz-004.html: Added.
- web-platform-tests/css/css-flexbox/flexbox-overflow-horiz-005-expected.html: Added.
- web-platform-tests/css/css-flexbox/flexbox-overflow-horiz-005.html: Added.
- web-platform-tests/css/css-flexbox/flexbox-overflow-vert-001-expected.html: Added.
- web-platform-tests/css/css-flexbox/flexbox-overflow-vert-001.html: Added.
- web-platform-tests/css/css-flexbox/flexbox-overflow-vert-002-expected.html: Added.
- web-platform-tests/css/css-flexbox/flexbox-overflow-vert-002.html: Added.
- web-platform-tests/css/css-flexbox/flexbox-overflow-vert-003-expected.html: Added.
- web-platform-tests/css/css-flexbox/flexbox-overflow-vert-003.html: Added.
- web-platform-tests/css/css-flexbox/flexbox-overflow-vert-004-expected.html: Added.
- web-platform-tests/css/css-flexbox/flexbox-overflow-vert-004.html: Added.
- web-platform-tests/css/css-flexbox/flexbox-overflow-vert-005-expected.html: Added.
- web-platform-tests/css/css-flexbox/flexbox-overflow-vert-005.html: Added.
- web-platform-tests/css/css-flexbox/flexbox-paint-ordering-001-expected.xhtml: Added.
- web-platform-tests/css/css-flexbox/flexbox-paint-ordering-001.xhtml: Added.
- web-platform-tests/css/css-flexbox/flexbox-paint-ordering-002-expected.xhtml: Added.
- web-platform-tests/css/css-flexbox/flexbox-paint-ordering-002.xhtml: Added.
- web-platform-tests/css/css-flexbox/flexbox-paint-ordering-003-expected.html: Added.
- web-platform-tests/css/css-flexbox/flexbox-paint-ordering-003.html: Added.
- web-platform-tests/css/css-flexbox/flexbox-root-node-001a-expected.html: Added.
- web-platform-tests/css/css-flexbox/flexbox-root-node-001a.html: Added.
- web-platform-tests/css/css-flexbox/flexbox-root-node-001b-expected.html: Added.
- web-platform-tests/css/css-flexbox/flexbox-root-node-001b.html: Added.
- web-platform-tests/css/css-flexbox/flexbox-safe-overflow-position-001-expected.html: Added.
- web-platform-tests/css/css-flexbox/flexbox-safe-overflow-position-001.html: Added.
- web-platform-tests/css/css-flexbox/flexbox-single-line-clamp-1-expected.html: Added.
- web-platform-tests/css/css-flexbox/flexbox-single-line-clamp-1.html: Added.
- web-platform-tests/css/css-flexbox/flexbox-single-line-clamp-2-expected.html: Added.
- web-platform-tests/css/css-flexbox/flexbox-single-line-clamp-2.html: Added.
- web-platform-tests/css/css-flexbox/flexbox-single-line-clamp-3-expected.html: Added.
- web-platform-tests/css/css-flexbox/flexbox-single-line-clamp-3.html: Added.
- web-platform-tests/css/css-flexbox/flexbox-sizing-horiz-001-expected.xhtml: Added.
- web-platform-tests/css/css-flexbox/flexbox-sizing-horiz-001.xhtml: Added.
- web-platform-tests/css/css-flexbox/flexbox-sizing-horiz-002-expected.xhtml: Added.
- web-platform-tests/css/css-flexbox/flexbox-sizing-horiz-002.xhtml: Added.
- web-platform-tests/css/css-flexbox/flexbox-sizing-vert-001-expected.xhtml: Added.
- web-platform-tests/css/css-flexbox/flexbox-sizing-vert-001.xhtml: Added.
- web-platform-tests/css/css-flexbox/flexbox-sizing-vert-002-expected.xhtml: Added.
- web-platform-tests/css/css-flexbox/flexbox-sizing-vert-002.xhtml: Added.
- web-platform-tests/css/css-flexbox/flexbox-table-fixup-001-expected.xhtml: Added.
- web-platform-tests/css/css-flexbox/flexbox-table-fixup-001.xhtml: Added.
- web-platform-tests/css/css-flexbox/flexbox-whitespace-handling-001a-expected.xhtml: Added.
- web-platform-tests/css/css-flexbox/flexbox-whitespace-handling-001a.xhtml: Added.
- web-platform-tests/css/css-flexbox/flexbox-whitespace-handling-001b-expected.xhtml: Added.
- web-platform-tests/css/css-flexbox/flexbox-whitespace-handling-001b.xhtml: Added.
- web-platform-tests/css/css-flexbox/flexbox-whitespace-handling-002-expected.xhtml: Added.
- web-platform-tests/css/css-flexbox/flexbox-whitespace-handling-002.xhtml: Added.
- web-platform-tests/css/css-flexbox/flexbox-with-pseudo-elements-001-expected.html: Added.
- web-platform-tests/css/css-flexbox/flexbox-with-pseudo-elements-001.html: Added.
- web-platform-tests/css/css-flexbox/flexbox-with-pseudo-elements-002-expected.html: Added.
- web-platform-tests/css/css-flexbox/flexbox-with-pseudo-elements-002.html: Added.
- web-platform-tests/css/css-flexbox/flexbox-with-pseudo-elements-003-expected.html: Added.
- web-platform-tests/css/css-flexbox/flexbox-with-pseudo-elements-003.html: Added.
- web-platform-tests/css/css-flexbox/flexbox-writing-mode-001-expected.html: Added.
- web-platform-tests/css/css-flexbox/flexbox-writing-mode-001.html: Added.
- web-platform-tests/css/css-flexbox/flexbox-writing-mode-002-expected.html: Added.
- web-platform-tests/css/css-flexbox/flexbox-writing-mode-002.html: Added.
- web-platform-tests/css/css-flexbox/flexbox-writing-mode-003-expected.html: Added.
- web-platform-tests/css/css-flexbox/flexbox-writing-mode-003.html: Added.
- web-platform-tests/css/css-flexbox/flexbox-writing-mode-004-expected.html: Added.
- web-platform-tests/css/css-flexbox/flexbox-writing-mode-004.html: Added.
- web-platform-tests/css/css-flexbox/flexbox-writing-mode-005-expected.html: Added.
- web-platform-tests/css/css-flexbox/flexbox-writing-mode-005.html: Added.
- web-platform-tests/css/css-flexbox/flexbox-writing-mode-006-expected.html: Added.
- web-platform-tests/css/css-flexbox/flexbox-writing-mode-006.html: Added.
- web-platform-tests/css/css-flexbox/flexbox-writing-mode-007-expected.html: Added.
- web-platform-tests/css/css-flexbox/flexbox-writing-mode-007.html: Added.
- web-platform-tests/css/css-flexbox/flexbox-writing-mode-008-expected.html: Added.
- web-platform-tests/css/css-flexbox/flexbox-writing-mode-008.html: Added.
- web-platform-tests/css/css-flexbox/flexbox-writing-mode-009-expected.html: Added.
- web-platform-tests/css/css-flexbox/flexbox-writing-mode-009.html: Added.
- web-platform-tests/css/css-flexbox/flexbox-writing-mode-010-expected.html: Added.
- web-platform-tests/css/css-flexbox/flexbox-writing-mode-010.html: Added.
- web-platform-tests/css/css-flexbox/flexbox-writing-mode-011-expected.html: Added.
- web-platform-tests/css/css-flexbox/flexbox-writing-mode-011.html: Added.
- web-platform-tests/css/css-flexbox/flexbox-writing-mode-012-expected.html: Added.
- web-platform-tests/css/css-flexbox/flexbox-writing-mode-012.html: Added.
- web-platform-tests/css/css-flexbox/flexbox-writing-mode-013-expected.html: Added.
- web-platform-tests/css/css-flexbox/flexbox-writing-mode-013.html: Added.
- web-platform-tests/css/css-flexbox/flexbox-writing-mode-014-expected.html: Added.
- web-platform-tests/css/css-flexbox/flexbox-writing-mode-014.html: Added.
- web-platform-tests/css/css-flexbox/flexbox-writing-mode-015-expected.html: Added.
- web-platform-tests/css/css-flexbox/flexbox-writing-mode-015.html: Added.
- web-platform-tests/css/css-flexbox/flexbox-writing-mode-016-expected.html: Added.
- web-platform-tests/css/css-flexbox/flexbox-writing-mode-016.html: Added.
- web-platform-tests/css/css-flexbox/flexbox_justifycontent-center-overflow-expected.html: Removed.
- web-platform-tests/css/css-flexbox/flexbox_justifycontent-center-overflow-expected.txt: Added.
- web-platform-tests/css/css-flexbox/flexbox_justifycontent-center-overflow.html:
- web-platform-tests/css/css-flexbox/flexbox_stf-table-singleline-2-expected.html:
- web-platform-tests/css/css-flexbox/flexbox_stf-table-singleline-2.html:
- web-platform-tests/css/css-flexbox/flexbox_stf-table-singleline-expected.html:
- web-platform-tests/css/css-flexbox/flexbox_stf-table-singleline.html:
- web-platform-tests/css/css-flexbox/flexible-order-expected.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/Flexible-order-expected.html.
- web-platform-tests/css/css-flexbox/flexible-order.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/Flexible-order.html.
- web-platform-tests/css/css-flexbox/gap-006-lr-expected.html:
- web-platform-tests/css/css-flexbox/gap-006-lr.html:
- web-platform-tests/css/css-flexbox/gap-006-ltr-expected.html:
- web-platform-tests/css/css-flexbox/gap-006-ltr.html:
- web-platform-tests/css/css-flexbox/gap-006-rl-expected.html:
- web-platform-tests/css/css-flexbox/gap-006-rl.html:
- web-platform-tests/css/css-flexbox/gap-006-rtl-expected.html:
- web-platform-tests/css/css-flexbox/gap-006-rtl.html:
- web-platform-tests/css/css-flexbox/getcomputedstyle/flexbox_computedstyle_flex-basis-0percent-expected.txt:
- web-platform-tests/css/css-flexbox/getcomputedstyle/flexbox_computedstyle_flex-basis-0percent.html:
- web-platform-tests/css/css-flexbox/getcomputedstyle/flexbox_computedstyle_flex-shorthand-number-expected.txt:
- web-platform-tests/css/css-flexbox/getcomputedstyle/flexbox_computedstyle_flex-shorthand-number.html:
- web-platform-tests/css/css-flexbox/grid-flex-item-005-expected.html: Added.
- web-platform-tests/css/css-flexbox/grid-flex-item-005.html: Added.
- web-platform-tests/css/css-flexbox/grid-flex-item-006-expected.xht: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/abspos-autopos-htb-ltr-expected.xht.
- web-platform-tests/css/css-flexbox/grid-flex-item-006.html: Added.
- web-platform-tests/css/css-flexbox/height-percentage-with-dynamic-container-size-expected.txt: Added.
- web-platform-tests/css/css-flexbox/height-percentage-with-dynamic-container-size.html: Added.
- web-platform-tests/css/css-flexbox/justify-content-006-expected.txt: Added.
- web-platform-tests/css/css-flexbox/justify-content-006.html: Added.
- web-platform-tests/css/css-flexbox/ortho-table-item-001-expected.html: Added.
- web-platform-tests/css/css-flexbox/ortho-table-item-001.html: Added.
- web-platform-tests/css/css-flexbox/percentage-max-height-002-expected.html: Added.
- web-platform-tests/css/css-flexbox/percentage-max-height-002.html: Added.
- web-platform-tests/css/css-flexbox/percentage-max-height-003-expected.xht: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/abspos-autopos-htb-ltr-expected.xht.
- web-platform-tests/css/css-flexbox/percentage-max-height-003.html: Added.
- web-platform-tests/css/css-flexbox/percentage-size-quirks-002-expected.txt: Added.
- web-platform-tests/css/css-flexbox/percentage-size-quirks-002.html: Added.
- web-platform-tests/css/css-flexbox/position-absolute-scrollbar-freeze-expected.html: Added.
- web-platform-tests/css/css-flexbox/position-absolute-scrollbar-freeze.html: Added.
- web-platform-tests/css/css-flexbox/position-relative-percentage-top-002-expected.xht: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/abspos-autopos-htb-ltr-expected.xht.
- web-platform-tests/css/css-flexbox/position-relative-percentage-top-002.html: Added.
- web-platform-tests/css/css-flexbox/position-relative-percentage-top-003-expected.xht: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/abspos-autopos-htb-ltr-expected.xht.
- web-platform-tests/css/css-flexbox/position-relative-percentage-top-003.html: Added.
- web-platform-tests/css/css-flexbox/quirks-auto-block-size-with-percentage-item.html:
- web-platform-tests/css/css-flexbox/scrollbars-auto-min-content-sizing-expected.txt: Added.
- web-platform-tests/css/css-flexbox/scrollbars-auto-min-content-sizing.html: Added.
- web-platform-tests/css/css-flexbox/scrollbars-no-margin-expected.html: Added.
- web-platform-tests/css/css-flexbox/scrollbars-no-margin.html: Added.
- web-platform-tests/css/css-flexbox/stretch-input-in-column-expected.html:
- web-platform-tests/css/css-flexbox/svg-root-as-flex-item-002-expected.xht: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/abspos-autopos-htb-ltr-expected.xht.
- web-platform-tests/css/css-flexbox/svg-root-as-flex-item-002.html: Added.
- web-platform-tests/css/css-flexbox/svg-root-as-flex-item-003-expected.html: Added.
- web-platform-tests/css/css-flexbox/svg-root-as-flex-item-003.html: Added.
- web-platform-tests/css/css-flexbox/svg-root-as-flex-item-004-expected.xht: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/abspos-autopos-htb-ltr-expected.xht.
- web-platform-tests/css/css-flexbox/svg-root-as-flex-item-004.html: Added.
- web-platform-tests/css/css-flexbox/svg-root-as-flex-item-005-expected.xht: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/abspos-autopos-htb-ltr-expected.xht.
- web-platform-tests/css/css-flexbox/svg-root-as-flex-item-005.html: Added.
- web-platform-tests/css/css-flexbox/svg-root-as-flex-item-006-expected.txt: Added.
- web-platform-tests/css/css-flexbox/svg-root-as-flex-item-006.html: Added.
- web-platform-tests/css/css-flexbox/table-as-item-fixed-min-width-2-expected.xht: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/abspos-autopos-htb-ltr-expected.xht.
- web-platform-tests/css/css-flexbox/table-as-item-fixed-min-width-2.html: Added.
- web-platform-tests/css/css-flexbox/table-as-item-fixed-min-width-3-expected.xht: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/abspos-autopos-htb-ltr-expected.xht.
- web-platform-tests/css/css-flexbox/table-as-item-fixed-min-width-3.html: Added.
- web-platform-tests/css/css-flexbox/table-as-item-fixed-min-width.html:
- web-platform-tests/css/css-flexbox/table-as-item-flex-cross-size-expected.xht: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/abspos-autopos-htb-ltr-expected.xht.
- web-platform-tests/css/css-flexbox/table-as-item-flex-cross-size.html: Added.
- web-platform-tests/css/css-flexbox/table-as-item-percent-width-cell-001-expected.html: Added.
- web-platform-tests/css/css-flexbox/table-as-item-percent-width-cell-001.html: Added.
- web-platform-tests/css/css-flexbox/table-as-item-specified-width-expected.html: Added.
- web-platform-tests/css/css-flexbox/table-as-item-specified-width.html: Added.
- web-platform-tests/css/css-flexbox/table-as-item-stretch-cross-size-expected.xht: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/abspos-autopos-htb-ltr-expected.xht.
- web-platform-tests/css/css-flexbox/table-as-item-stretch-cross-size.html: Added.
- web-platform-tests/css/css-flexbox/table-item-flex-percentage-width-expected.html: Added.
- web-platform-tests/css/css-flexbox/table-item-flex-percentage-width.html: Added.
- web-platform-tests/css/css-flexbox/table-with-percent-intrinsic-width-expected.txt: Added.
- web-platform-tests/css/css-flexbox/table-with-percent-intrinsic-width.html: Added.
- web-platform-tests/css/css-flexbox/w3c-import.log:
LayoutTests:
Sync'ed our local copy to latest upstream data.
- TestExpectations: Added new failing tests with bugs.
- platform/glib/TestExpectations: Removed a couple of tests that are working fine after import.
- platform/ios/TestExpectations: Added new failing tests with bugs.
- platform/ios/imported/w3c/web-platform-tests/css/css-flexbox/abspos/position-absolute-012-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/position-absolute-012-expected.txt.
- platform/ios/imported/w3c/web-platform-tests/css/css-flexbox/abspos/position-absolute-013-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/position-absolute-013-expected.txt.
- platform/ios/imported/w3c/web-platform-tests/css/css-flexbox/contain-size-layout-abspos-flex-container-crash-expected.txt: Added.
- platform/ios/imported/w3c/web-platform-tests/css/css-flexbox/flex-item-compressible-001-expected.txt: Added.
- platform/mac-catalina-wk1/imported/w3c/web-platform-tests/css/css-flexbox/contain-size-layout-abspos-flex-container-crash-expected.txt: Added.
- platform/mac-catalina/imported/w3c/web-platform-tests/css/css-flexbox/contain-size-layout-abspos-flex-container-crash-expected.txt: Added.
- platform/mac/TestExpectations: Added new failing tests with bugs.
- 2:18 AM Changeset in webkit [272643] by
-
- 8 edits2 adds in trunk
[WPE] Optionally build Cog as external project and replacement for MiniBrowser
https://bugs.webkit.org/show_bug.cgi?id=221518
Reviewed by Adrian Perez de Castro.
.:
- Source/cmake/OptionsWPE.cmake: New variable for JSC forwarded headers path, useful
uninstalled builds of projects depending on JSC.
Source/WebKit:
- PlatformWPE.cmake: Produce uninstalled pkg-config files for wpe-webkit and web-extension
libraries. Also populate the JSC ForwardedHeaders path during the build.
- wpe/wpe-web-extension-uninstalled.pc.in: Added.
- wpe/wpe-webkit-uninstalled.pc.in: Added.
Tools:
By passing
-DENABLE_COG=ONduring the WPE build, the Cog browser is now built as an
external project. The repository is cloned in Tools/wpe/cog and the code can be edited
there.
The run-minibrowser --wpe script will now first try to execute cog and fallback to
MiniBrowser if it wasn't found. Cog is also a MiniBrowser, but with some additional
features, see https://github.com/Igalia/cog for more informations.
- PlatformWPE.cmake: Configure Cog as an external project in developer builds.
- Scripts/webkitpy/port/wpe.py:
(WPEPort.run_minibrowser): First check for cog, fallback to MiniBrowser if not found.
- flatpak/flatpakutils.py:
(WebkitFlatpak.run_in_sandbox): Set pkg-config path to lookup libraries in the WebKit's
build directory as well.
- 1:42 AM Changeset in webkit [272642] by
-
- 2 edits in trunk/LayoutTests
Some privateClickMeasurement might output the information in different order depending on platform
https://bugs.webkit.org/show_bug.cgi?id=221406
Reviewed by Michael Catanzaro.
The script conversionReport.php iterates the HTTP headers to show the information, but header's order can be
different for different platforms. We could just check every value we want to show to make sure we always
provide them in the same order.
- http/tests/privateClickMeasurement/resources/conversionReport.php:
- 1:41 AM Changeset in webkit [272641] by
-
- 10 edits in trunk/Source
[SOUP] Simplify ResourceRequest and ResourceResponse
https://bugs.webkit.org/show_bug.cgi?id=221543
Reviewed by Adrian Perez de Castro.
Source/WebCore:
There's unused code there and it can be refactored.
- ResourceRequest:
- Remove unused member m_soupFlags.
- Remove updateSoupMessage() that is always called after a SoupMessage has been created and add createSoupMessage() to return a new SoupMessage.
- Set the message priority in the createSoupMessage() too.
- Remove updateFromSoupMessage() that is curently used only by WebSockets to update the request headers after the request is sent to include cookies and other headers set by libsoup. We can simply use updateFromSoupMessageHeaders() for that case instead.
- ResourceResponse:
- Remove unused member m_soupFlags.
- Remove updateFromSoupMessage() that is always used with a newly created ResourceResponse and use the ResourceResponse constructor that receives a SoupMessage instead.
- Sniffed content type is now received as an optional parameter of the ResourceResponse constructor that receives a SoupMessage, and used to set the MIME type and text encoding.
- Remove unused certificate info getters and the encode/decode methods that are no longer needed.
- platform/network/soup/ResourceRequest.h:
(WebCore::ResourceRequest::encodeWithPlatformData const):
(WebCore::ResourceRequest::decodeWithPlatformData):
- platform/network/soup/ResourceRequestSoup.cpp:
(WebCore::toSoupMessagePriority):
(WebCore::ResourceRequest::createSoupMessage const):
- platform/network/soup/ResourceResponse.h:
(WebCore::ResourceResponse::ResourceResponse):
(WebCore::ResourceResponse::soupMessageCertificate const):
(WebCore::ResourceResponse::soupMessageTLSErrors const):
- platform/network/soup/ResourceResponseSoup.cpp:
(WebCore::ResourceResponse::ResourceResponse):
(WebCore::ResourceResponse::updateSoupMessageHeaders const):
(WebCore::ResourceResponse::updateFromSoupMessageHeaders):
Source/WebKit:
Use new ResourceRequest and ResourceResponse API.
- NetworkProcess/soup/NetworkDataTaskSoup.cpp:
(WebKit::NetworkDataTaskSoup::createRequest): Use ResourceRequest::createSoupMessage().
(WebKit::NetworkDataTaskSoup::didSendRequest): Use ResourceResponse passing the SoupMessage and sniffed content type.
(WebKit::NetworkDataTaskSoup::didRequestNextPart): Create a ResourceResponse passing the url, content type,
expected length and text encoding. Then call ResourceResponse::updateFromSoupMessageHeaders() to set the headers.
- NetworkProcess/soup/NetworkSessionSoup.cpp:
(WebKit::NetworkSessionSoup::createWebSocketTask): Use ResourceRequest::createSoupMessage() and pass the
ResourceRequest to WebSocketTask constructor.
- NetworkProcess/soup/WebSocketTaskSoup.cpp:
(WebKit::WebSocketTask::WebSocketTask): Save the ResourceRequest and then just call
ResourceRequest::updateFromSoupMessageHeaders() to update the headers after the response has been sent by libsoup.
(WebKit::WebSocketTask::didConnect): Use ResourceResponse constructor with the SoupMessage directly.
(WebKit::WebSocketTask::didFail): Ditto.
- NetworkProcess/soup/WebSocketTaskSoup.h:
- 1:13 AM Changeset in webkit [272640] by
-
- 6 edits2 adds in trunk
Do not schedule update on embed creation
https://bugs.webkit.org/show_bug.cgi?id=221375
Patch by Rob Buis <rbuis@igalia.com> on 2021-02-10
Reviewed by Ryosuke Niwa.
Source/WebCore:
Do not schedule update on embed creation.
Test: plugins/embed-creation-crash.html
- html/HTMLEmbedElement.cpp:
(WebCore::HTMLEmbedElement::create):
- html/HTMLObjectElement.cpp:
(WebCore::HTMLObjectElement::create):
- html/HTMLPlugInImageElement.cpp:
(WebCore::HTMLPlugInImageElement::finishCreating): Deleted.
- html/HTMLPlugInImageElement.h:
LayoutTests:
Add test for this.
- plugins/embed-creation-crash-expected.txt: Added.
- plugins/embed-creation-crash.html: Added.
- 12:53 AM Changeset in webkit [272639] by
-
- 2 edits1 add in trunk/LayoutTests
[ATK] Support focusable-inside-hidden test
https://bugs.webkit.org/show_bug.cgi?id=221646
Reviewed by Chris Fleizach.
ATK uses a different field for the description. (See r201216 and
r201072).
- accessibility/focusable-inside-hidden.html: Add check for ATK.
- platform/glib/accessibility/focusable-inside-hidden-expected.txt: Added.
Feb 9, 2021:
- 9:46 PM Changeset in webkit [272638] by
-
- 9 edits3 adds in trunk
[JSC] C++ iteration should support fast iterator protocol
https://bugs.webkit.org/show_bug.cgi?id=221526
Reviewed by Alexey Shvayka.
JSTests:
- microbenchmarks/map-constructor.js: Added.
(test):
- stress/map-constructor-hole-throw.js: Added.
(shouldBe):
(shouldThrow):
(values.proto.return):
(Map.prototype):
Source/JavaScriptCore:
This patch adds fast iteration protocol support in C++ iteration (forEachIterable).
In JS, we have op_iterator_open / op_iterator_next to iterate array quickly.
But we do not use this feature in C++ forEachIterable. In this patch we integrate
the same (or a bit more efficient since we can avoid creating JSArrayIterator) mechanism
so that iteration in C++ gets faster for normal arrays.
We observed 1.9x faster in Map creation with arrays.
ToT Patched
map-constructor 35.7446+-0.2354 18.7516+-0.4534 definitely 1.9062x faster
- CMakeLists.txt:
- JavaScriptCore.xcodeproj/project.pbxproj:
- inspector/JSInjectedScriptHost.cpp:
(Inspector::JSInjectedScriptHost::iteratorEntries):
- runtime/CommonSlowPaths.cpp:
(JSC::iteratorOpenTryFastImpl):
- runtime/IteratorOperations.cpp:
(JSC::iteratorClose):
(JSC::prepareForFastArrayIteration):
- runtime/IteratorOperations.h:
(JSC::forEachInIterable):
- runtime/JSArrayIterator.h:
- 9:22 PM Changeset in webkit [272637] by
-
- 9 edits in trunk/Source/WebKit
Use CompletionHandler instead of ApplicationManifestCallback
https://bugs.webkit.org/show_bug.cgi?id=221627
Reviewed by Chris Dumez.
- UIProcess/API/C/WKPage.cpp:
(WKPageGetApplicationManifest_b):
- UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _getApplicationManifestWithCompletionHandler:]):
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::getApplicationManifest):
(WebKit::WebPageProxy::applicationManifestCallback): Deleted.
- UIProcess/WebPageProxy.h:
- UIProcess/WebPageProxy.messages.in:
- WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::getApplicationManifest):
(WebKit::WebPage::didFinishLoadingApplicationManifest):
- WebProcess/WebPage/WebPage.h:
- WebProcess/WebPage/WebPage.messages.in:
- 9:21 PM Changeset in webkit [272636] by
-
- 15 edits in trunk/Source/WebKit
Use CompletionHandler instead of DataCallback
https://bugs.webkit.org/show_bug.cgi?id=221639
Reviewed by Chris Dumez.
- UIProcess/API/C/WKFrame.cpp:
(WKFrameGetMainResourceData):
(WKFrameGetResourceData):
(WKFrameGetWebArchive):
- UIProcess/API/C/WKPage.cpp:
(WKPageGetSelectionAsWebArchiveData):
(WKPageDrawPagesToPDF):
- UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView createWebArchiveDataWithCompletionHandler:]):
(-[WKWebView _getMainResourceDataWithCompletionHandler:]):
- UIProcess/WebFrameProxy.cpp:
(WebKit::WebFrameProxy::getWebArchive):
(WebKit::WebFrameProxy::getMainResourceData):
(WebKit::WebFrameProxy::getResourceData):
- UIProcess/WebFrameProxy.h:
- UIProcess/WebPageProxy.cpp:
(WebKit::CompletionHandler<void):
(WebKit::WebPageProxy::getContentsAsMHTMLData):
(WebKit::WebPageProxy::getSelectionAsWebArchiveData):
(WebKit::WebPageProxy::getMainResourceDataOfFrame):
(WebKit::WebPageProxy::getResourceDataFromFrame):
(WebKit::WebPageProxy::getWebArchiveOfFrame):
(WebKit::WebPageProxy::drawPagesToPDF):
(WebKit::WebPageProxy::dataCallback): Deleted.
- UIProcess/WebPageProxy.h:
- UIProcess/WebPageProxy.messages.in:
- UIProcess/mac/WKPrintingView.mm:
(-[WKPrintingView _preparePDFDataForPrintingOnSecondaryThread]):
- WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::getContentsAsMHTMLData):
(WebKit::WebPage::getSelectionAsWebArchiveData):
(WebKit::WebPage::getMainResourceDataOfFrame):
(WebKit::WebPage::getResourceDataFromFrame):
(WebKit::WebPage::getWebArchiveOfFrame):
(WebKit::WebPage::drawPagesToPDF):
- WebProcess/WebPage/WebPage.h:
- WebProcess/WebPage/WebPage.messages.in:
- 8:35 PM Changeset in webkit [272635] by
-
- 10 edits in trunk/Source/WebKit
Use CompletionHandler instead of PrintFinishedCallback
https://bugs.webkit.org/show_bug.cgi?id=221643
Reviewed by Chris Dumez.
- UIProcess/API/gtk/WebKitPrintOperation.cpp:
(webkitPrintOperationPrintPagesForFrame):
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::drawPagesForPrinting):
(WebKit::WebPageProxy::printFinishedCallback): Deleted.
- UIProcess/WebPageProxy.h:
- UIProcess/WebPageProxy.messages.in:
- WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::drawPagesForPrinting):
(WebKit::WebPage::didFinishPrintOperation): Deleted.
- WebProcess/WebPage/WebPage.h:
- WebProcess/WebPage/WebPage.messages.in:
- WebProcess/WebPage/gtk/WebPrintOperationGtk.cpp:
(WebKit::WebPrintOperationGtk::printDone):
- WebProcess/WebPage/gtk/WebPrintOperationGtk.h:
- 7:43 PM Changeset in webkit [272634] by
-
- 4 edits2 moves2 deletes in trunk/LayoutTests
[GLIB] Rebaseline table tests after r272100 and garden some a11 failures.
Unreviewed test gardening.
- platform/glib/TestExpectations:
Updates after r272100.
- platform/glib/fast/table/005-expected.txt: Renamed from LayoutTests/platform/gtk/fast/table/005-expected.txt.
- platform/glib/tables/mozilla/bugs/bug1224-expected.txt: Renamed from LayoutTests/platform/gtk/tables/mozilla/bugs/bug1224-expected.txt.
- platform/wpe/fast/table/005-expected.txt: Removed.
- platform/wpe/tables/mozilla/bugs/bug1224-expected.txt: Removed.
- platform/wpe/tables/mozilla/bugs/bug32205-3-expected.txt:
- platform/wpe/tables/mozilla/other/wa_table_thtd_rowspan-expected.txt:
- 7:30 PM Changeset in webkit [272633] by
-
- 3 edits in trunk/Source/WebCore
REGRESSION: (r272458): [BigSur Debug] ASSERTION FAILED: m_haveAddedMediaUsageManagerSession in WebCore::MediaElementSession::updateMediaUsageIfChanged()
https://bugs.webkit.org/show_bug.cgi?id=221634
<rdar://problem/74161017>
Reviewed by Ryosuke Niwa.
No new tests, this fixes an assertion in an existing test.
- html/MediaElementSession.cpp:
(WebCore::MediaElementSession::MediaElementSession):
(WebCore::MediaElementSession::addMediaUsageManagerSessionIfNecessary):
(WebCore::MediaElementSession::inActiveDocumentChanged):
(WebCore::MediaElementSession::updateMediaUsageIfChanged):
(WebCore::MediaElementSession::addedMediaUsageManagerSessionIfNecessary): Deleted.
- html/MediaElementSession.h:
- 7:24 PM Changeset in webkit [272632] by
-
- 2 edits in trunk/Source/WebCore
[GTK] Export additional methods of SourceBufferPrivate to support hidden visibility
https://bugs.webkit.org/show_bug.cgi?id=221625
Reviewed by Michael Catanzaro.
Add additional WEBCORE_EXPORTs to SourceBufferPrivate that were found when linking GTK with
hidden visibility turned on.
- platform/graphics/SourceBufferPrivate.h:
(WebCore::SourceBufferPrivate::removeCodedFrames):
- 6:24 PM Changeset in webkit [272631] by
-
- 3 edits in trunk/Source/WebKit
Unreviewed, build fix after r272630
- UIProcess/ios/WKActionSheetAssistant.h:
- UIProcess/ios/WKActionSheetAssistant.mm:
- 6:06 PM Changeset in webkit [272630] by
-
- 33 edits2 copies18 moves13 adds in trunk
[iOS] Add support for the language/subtitle tracks button using
UIMenu
https://bugs.webkit.org/show_bug.cgi?id=221594
<rdar://problem/74129129>
Reviewed by Eric Carlson and Wenson Hsieh.
Source/WebCore:
Tests: media/modern-media-controls/tracks-support/ios/tracks-support-auto-text-track.html
media/modern-media-controls/tracks-support/ios/tracks-support-click-track-in-contextmenu.html
media/modern-media-controls/tracks-support/ios/tracks-support-hidden-tracks.html
media/modern-media-controls/tracks-support/ios/tracks-support-off-text-track.html
media/modern-media-controls/tracks-support/ios/tracks-support-show-contextmenu-then-double-click-on-tracks-button.html
media/modern-media-controls/tracks-support/ios/tracks-support-text-track-selected-via-media-api.html
media/modern-media-controls/tracks-support/mac/tracks-support-auto-text-track.html
media/modern-media-controls/tracks-support/mac/tracks-support-click-track-in-panel.html
media/modern-media-controls/tracks-support/mac/tracks-support-hidden-tracks.html
media/modern-media-controls/tracks-support/mac/tracks-support-off-text-track.html
media/modern-media-controls/tracks-support/mac/tracks-support-show-and-populate-panel.html
media/modern-media-controls/tracks-support/mac/tracks-support-show-panel-after-dragging-controls.html
media/modern-media-controls/tracks-support/mac/tracks-support-show-panel-fullscreen.html
media/modern-media-controls/tracks-support/mac/tracks-support-show-panel-then-double-click-on-tracks-button.html
media/modern-media-controls/tracks-support/mac/tracks-support-text-track-selected-via-media-api.html
- page/MediaControlsContextMenuItem.h: Added.
(WebCore::MediaControlsContextMenuItem::encode const):
(WebCore::MediaControlsContextMenuItem::decode):
Simple POD object for sending data from the WebProcess to the UIProcess for theUIMenu.
- Modules/modern-media-controls/media/tracks-support.js:
(TracksSupport.prototype.buttonWasPressed):
(TracksSupport.prototype.syncControl):
- Modules/mediacontrols/MediaControlsHost.idl:
- Modules/mediacontrols/MediaControlsHost.h:
- Modules/mediacontrols/MediaControlsHost.cpp:
(WebCore::MediaControlsHost::showMediaControlsContextMenu): Added.
- page/ChromeClient.h:
(WebCore::ChromeClient::showMediaControlsContextMenu):
Provide a host hook for generating and sending theUIMenudata. When aUIActionis
selected or the menu is dismissed, the relevantMediaControlsContextMenuItem::IDis sent
back as the response to the async message and is used to perform the action related to the
type of the object (e.g.AudioTrack,TextTrack, etc.) that was previously associated
with thatMediaControlsContextMenuItem::ID.
- en.lproj/Localizable.strings:
- platform/LocalizedStrings.h:
- platform/LocalizedStrings.cpp:
(WebCore::textTrackSubtitlesText): Deleted.
Add localizable strings for "Languages" and "Subtitles" headers/submenus.
- Headers.cmake:
- WebCore.xcodeproj/project.pbxproj:
Source/WebKit:
- WebProcess/WebCoreSupport/WebChromeClient.h:
- WebProcess/WebCoreSupport/WebChromeClient.cpp:
(WebKit::WebChromeClient::showMediaControlsContextMenu): Added.
- WebProcess/WebPage/WebPage.h:
- WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::showMediaControlsContextMenu): Added.
- UIProcess/WebPageProxy.messages.in:
- UIProcess/WebPageProxy.h:
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::showMediaControlsContextMenu): Added.
Send the givenMediaControlsContextMenuItems to the UIProcess for theUIMenu.
- UIProcess/PageClient.h:
(WebKit::PageClient::showMediaControlsContextMenu): Added.
- UIProcess/ios/PageClientImplIOS.h:
- UIProcess/ios/PageClientImplIOS.mm:
(WebKit::PageClientImpl::showMediaControlsContextMenu): Added.
- UIProcess/ios/WKContentViewInteraction.h:
- UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView actionSheetAssistantDidShowContextMenu:]): Added.
(-[WKContentView actionSheetAssistantDidDismissContextMenu:]): Added.
(-[WKContentView _showMediaControlsContextMenu:items:completionHandler:]): Added.
(-[WKContentView _contentsOfUserInterfaceItem:]):
Pass the givenMediaControlsContextMenuItems to theWKActionSheetAssistant.
- UIProcess/ios/WKActionSheetAssistant.h:
- UIProcess/ios/WKActionSheetAssistant.mm:
(-[WKActionSheetAssistant dealloc]):
(-[WKActionSheetAssistant _removeContextMenuInteractions]): Added.
(-[WKActionSheetAssistant _ensureDataDetectorContextMenuInteraction]): Added.
(-[WKActionSheetAssistant _ensureMediaControlsContextMenuInteraction]): Added.
(-[WKActionSheetAssistant hasContextMenuInteraction]):
(-[WKActionSheetAssistant showDataDetectorsUIForPositionInformation:]):
(-[WKActionSheetAssistant _uiMenuElementsForMediaControlContextMenuItems:]): Added.
(-[WKActionSheetAssistant showMediaControlsContextMenu:items:completionHandler:]): Added.
(-[WKActionSheetAssistant contextMenuInteraction:configurationForMenuAtLocation:]):
(-[WKActionSheetAssistant contextMenuInteraction:previewForHighlightingMenuWithConfiguration:]):
(-[WKActionSheetAssistant contextMenuInteraction:willDisplayMenuForConfiguration:animator:]): Added.
(-[WKActionSheetAssistant contextMenuInteraction:willEndForConfiguration:animator:]):
(-[WKActionSheetAssistant _contextMenuInteraction:overrideSuggestedActionsForConfiguration:]):
(-[WKActionSheetAssistant _contentsOfContextMenuItem:]): Added.
(-[WKActionSheetAssistant currentlyAvailableActionTitles]): Added.
(-[WKActionSheetAssistant currentlyAvailableMediaControlsContextMenuItems]): Added.
(-[WKActionSheetAssistant currentAvailableActionTitles]): Deleted.
(-[WKActionSheetAssistant removeContextMenuInteraction]): Deleted.
(-[WKActionSheetAssistant ensureContextMenuInteraction]): Deleted.
Instead of assuming that the onlyUIContextMenuInteractionis for data detectors, check
the giveninteractionto see if it's the data detector interaction before doing any work.
This allows the media controlsUIContextMenuInteractionto exist side-by-side and use the
WKActionSheetAssistantas its delegate too (especially since it's not possible for both
contextmenus to be active at the same time). Present the media controls contextmenu without
a preview (it uses an emptyUIViewfor proper sizing) at the location provided. Selecting
aUIActionwill send theMediaControlsContextMenuItem::IDback to the WebProcess.
Also add support for
UIScriptController.prototype.contentsOfUserInterfaceItemUIScriptController.prototype.didShowContextMenuCallbackUIScriptController.prototype.didDismissContextMenuCallback
for usage in the added
LayoutTests/media/modern-media-controls/tracks-support/ios/tests.
Source/WTF:
- Scripts/Preferences/WebPreferences.yaml:
Create a
MediaControlsContextMenusEnabledsetting for guarding an IDL hook to WK2 only.
Tools:
- WebKitTestRunner/ios/UIScriptControllerIOS.mm:
(WTR::UIScriptControllerIOS::rectForMenuAction const):
In addition to looking at the activeUICalloutBar(if it exists), walk the view hierarchy
looking for anyUILabelthat contains the given text and use that as the rect to tap.
While this isn't the most confident/consistent approach, UIKit doesn't have anything like
UICalloutBarfor contextmenu interactions, and this is only used inside WKTR (which has no
other UI outside than the page), so it's expected that callers know what they're doing.
LayoutTests:
- media/modern-media-controls/resources/media-controls-utils.js:
(getTracksContextMenu): Added.
- media/modern-media-controls/tracks-support/ios/tracks-support-auto-text-track.html: Added.
- media/modern-media-controls/tracks-support/ios/tracks-support-auto-text-track-expected.txt: Added.
- media/modern-media-controls/tracks-support/ios/tracks-support-click-track-in-contextmenu.html: Added.
- media/modern-media-controls/tracks-support/ios/tracks-support-click-track-in-contextmenu-expected.txt: Added.
- media/modern-media-controls/tracks-support/ios/tracks-support-hidden-tracks.html: Added.
- media/modern-media-controls/tracks-support/ios/tracks-support-hidden-tracks-expected.txt: Added.
- media/modern-media-controls/tracks-support/ios/tracks-support-off-text-track.html: Added.
- media/modern-media-controls/tracks-support/ios/tracks-support-off-text-track-expected.txt: Added.
- media/modern-media-controls/tracks-support/ios/tracks-support-show-contextmenu-then-double-click-on-tracks-button.html: Added.
- media/modern-media-controls/tracks-support/ios/tracks-support-show-contextmenu-then-double-click-on-tracks-button-expected.txt: Added.
- media/modern-media-controls/tracks-support/ios/tracks-support-text-track-selected-via-media-api.html: Added.
- media/modern-media-controls/tracks-support/ios/tracks-support-text-track-selected-via-media-api-expected.txt: Added.
Duplicate existing
TracksSupporttests to test for similar results but using the new iOS path.
- media/modern-media-controls/tracks-support/mac/tracks-support-auto-text-track.html: Renamed from LayoutTests/media/modern-media-controls/tracks-support/tracks-support-auto-text-track.html.
- media/modern-media-controls/tracks-support/mac/tracks-support-auto-text-track-expected.txt: Renamed from LayoutTests/media/modern-media-controls/tracks-support/tracks-support-auto-text-track-expected.txt.
- media/modern-media-controls/tracks-support/mac/tracks-support-click-track-in-panel.html: Renamed from LayoutTests/media/modern-media-controls/tracks-support/tracks-support-click-track-in-panel.html.
- media/modern-media-controls/tracks-support/mac/tracks-support-click-track-in-panel-expected.txt: Renamed from LayoutTests/media/modern-media-controls/tracks-support/tracks-support-click-track-in-panel-expected.txt.
- media/modern-media-controls/tracks-support/mac/tracks-support-hidden-tracks.html: Renamed from LayoutTests/media/modern-media-controls/tracks-support/tracks-support-hidden-tracks.html.
- media/modern-media-controls/tracks-support/mac/tracks-support-hidden-tracks-expected.txt: Renamed from LayoutTests/media/modern-media-controls/tracks-support/tracks-support-hidden-tracks-expected.txt.
- media/modern-media-controls/tracks-support/mac/tracks-support-off-text-track.html: Renamed from LayoutTests/media/modern-media-controls/tracks-support/tracks-support-off-text-track.html.
- media/modern-media-controls/tracks-support/mac/tracks-support-off-text-track-expected.txt: Renamed from LayoutTests/media/modern-media-controls/tracks-support/tracks-support-off-text-track-expected.txt.
- media/modern-media-controls/tracks-support/mac/tracks-support-show-and-populate-panel.html: Renamed from LayoutTests/media/modern-media-controls/tracks-support/tracks-support-show-and-populate-panel.html.
- media/modern-media-controls/tracks-support/mac/tracks-support-show-and-populate-panel-expected.txt: Renamed from LayoutTests/media/modern-media-controls/tracks-support/tracks-support-show-and-populate-panel-expected.txt.
- media/modern-media-controls/tracks-support/mac/tracks-support-show-panel-after-dragging-controls.html: Renamed from LayoutTests/media/modern-media-controls/tracks-support/tracks-support-show-panel-after-dragging-controls.html.
- media/modern-media-controls/tracks-support/mac/tracks-support-show-panel-after-dragging-controls-expected.txt: Renamed from LayoutTests/media/modern-media-controls/tracks-support/tracks-support-show-panel-after-dragging-controls-expected.txt.
- media/modern-media-controls/tracks-support/mac/tracks-support-show-panel-fullscreen.html: Renamed from LayoutTests/media/modern-media-controls/tracks-support/tracks-support-show-panel-fullscreen.html.
- media/modern-media-controls/tracks-support/mac/tracks-support-show-panel-fullscreen-expected.txt: Renamed from LayoutTests/media/modern-media-controls/tracks-support/tracks-support-show-panel-fullscreen-expected.txt.
- media/modern-media-controls/tracks-support/mac/tracks-support-show-panel-then-double-click-on-tracks-button.html: Renamed from LayoutTests/media/modern-media-controls/tracks-support/tracks-support-show-panel-then-double-click-on-tracks-button.html.
- media/modern-media-controls/tracks-support/mac/tracks-support-show-panel-then-double-click-on-tracks-button-expected.txt: Renamed from LayoutTests/media/modern-media-controls/tracks-support/tracks-support-show-panel-then-double-click-on-tracks-button-expected.txt.
- media/modern-media-controls/tracks-support/mac/tracks-support-text-track-selected-via-media-api.html: Renamed from LayoutTests/media/modern-media-controls/tracks-support/tracks-support-text-track-selected-via-media-api.html.
- media/modern-media-controls/tracks-support/mac/tracks-support-text-track-selected-via-media-api-expected.txt: Renamed from LayoutTests/media/modern-media-controls/tracks-support/tracks-support-text-track-selected-via-media-api-expected.txt.
- platform/mac/TestExpectations:
Moved existing
TracksSupporttests to amacsubfolder so they can be skipped on iOS.
- 5:52 PM Changeset in webkit [272629] by
-
- 18 edits2 adds in trunk/Source/WebKit
Make sure we are no longer show the previous page when running a JS prompt
https://bugs.webkit.org/show_bug.cgi?id=215782
<rdar://problem/67698601>
Reviewed by Simon Fraser.
Make sure we are no longer show the previous page when running a JS prompt.
If we have not yet done a layer tree commit since the last load commit, then
we are likely still showing the previous page. If we are asked to run a JS
prompt / alert / confirm at this point, it would be confusing to still show
the previous page. In order to address the issue, we now make the view blank
in such scenario (ideally, we'd have painted the new page but this is
currently not a trivial thing to do).
To make the view blank, the approach chosen was to add a blank overlay view
on top of the content. This overlay view gets taken down as soon as we
paint the view again.
- SourcesCocoa.txt:
- UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _hasBlankOverlay]):
(-[WKWebView _setHasBlankOverlay:]):
- UIProcess/API/Cocoa/WKWebViewInternal.h:
- UIProcess/API/Cocoa/WKWebViewPrivate.h:
- UIProcess/Cocoa/PageClientImplCocoa.h:
- UIProcess/Cocoa/PageClientImplCocoa.mm:
(WebKit::PageClientImplCocoa::setHasBlankOverlay):
- UIProcess/Cocoa/WKBlankOverlayView.h: Added.
- UIProcess/Cocoa/WKBlankOverlayView.mm: Added.
(-[WKBlankOverlayView initWithFrame:]):
- UIProcess/PageClient.h:
(WebKit::PageClient::setHasBlankOverlay):
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::didFirstLayerTreeCommitAfterCommittingLoad):
(WebKit::WebPageProxy::makeViewBlankIfUnpaintedSinceLastLoadCommit):
(WebKit::WebPageProxy::didCommitLoadForFrame):
(WebKit::WebPageProxy::runJavaScriptAlert):
(WebKit::WebPageProxy::runJavaScriptConfirm):
(WebKit::WebPageProxy::runJavaScriptPrompt):
- UIProcess/WebPageProxy.h:
- UIProcess/WebPageProxy.messages.in:
- UIProcess/ios/WebPageProxyIOS.mm:
(WebKit::WebPageProxy::didCommitLayerTree):
- UIProcess/mac/WebPageProxyMac.mm:
(WebKit::WebPageProxy::didUpdateRenderingAfterCommittingLoad):
- WebKit.xcodeproj/project.pbxproj:
- WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::didCommitLoad):
- WebProcess/WebPage/WebPage.h:
- WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:
(WebKit::TiledCoreAnimationDrawingArea::updateRendering):
- WebProcess/WebPage/mac/WebPageMac.mm:
(WebKit::WebPage::didUpdateRendering):
- 5:29 PM Changeset in webkit [272628] by
-
- 12 edits in trunk/Source/WebKit
Use CompletionHandler instead of ImageCallback
https://bugs.webkit.org/show_bug.cgi?id=221626
Reviewed by Chris Dumez.
- UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView takeSnapshotWithConfiguration:completionHandler:]):
- UIProcess/API/Cocoa/_WKThumbnailView.mm:
(-[_WKThumbnailView requestSnapshot]):
- UIProcess/API/ios/WKWebViewIOS.mm:
(-[WKWebView _snapshotRect:intoImageOfWidth:completionHandler:]):
- UIProcess/GenericCallback.h:
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::drawRectToImage):
(WebKit::WebPageProxy::takeSnapshot):
(WebKit::WebPageProxy::imageCallback): Deleted.
- UIProcess/WebPageProxy.h:
- UIProcess/WebPageProxy.messages.in:
- UIProcess/mac/WKPrintingView.mm:
(-[WKPrintingView _drawPreview:]):
- WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::takeSnapshot):
(WebKit::WebPage::drawRectToImage):
- WebProcess/WebPage/WebPage.h:
- WebProcess/WebPage/WebPage.messages.in:
- 5:28 PM Changeset in webkit [272627] by
-
- 12 edits in trunk/Source/WebKit
Use CompletionHandler instead of UnsignedCallback
https://bugs.webkit.org/show_bug.cgi?id=221631
Reviewed by Chris Dumez.
- UIProcess/Cocoa/WebViewImpl.mm:
(WebKit::WebViewImpl::characterIndexForPoint):
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::replaceMatches):
(WebKit::WebPageProxy::characterIndexForPointAsync):
(WebKit::WebPageProxy::unsignedCallback): Deleted.
- UIProcess/WebPageProxy.h:
- UIProcess/WebPageProxy.messages.in:
- UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView selectTextWithGranularity:atPoint:completionHandler:]):
(-[WKContentView beginSelectionInDirection:completionHandler:]):
(-[WKContentView updateSelectionWithExtentPoint:completionHandler:]):
(-[WKContentView updateSelectionWithExtentPoint:withBoundary:completionHandler:]):
- UIProcess/ios/WebPageProxyIOS.mm:
(WebKit::WebPageProxy::beginSelectionInDirection):
(WebKit::WebPageProxy::updateSelectionWithExtentPoint):
(WebKit::WebPageProxy::updateSelectionWithExtentPointAndBoundary):
- UIProcess/mac/WKTextFinderClient.mm:
(-[WKTextFinderClient replaceMatches:withString:inSelectionOnly:resultCollector:]):
- WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::replaceMatches):
(WebKit::WebPage::characterIndexForPointAsync):
- WebProcess/WebPage/WebPage.h:
- WebProcess/WebPage/WebPage.messages.in:
- WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::beginSelectionInDirection):
(WebKit::WebPage::updateSelectionWithExtentPointAndBoundary):
(WebKit::WebPage::updateSelectionWithExtentPoint):
- 5:19 PM Changeset in webkit [272626] by
-
- 7 edits in trunk
Descendants of row and column headers should expose the aria-sort attribute.
https://bugs.webkit.org/show_bug.cgi?id=221590
Reviewed by Chris Fleizach.
Source/WebCore:
Tests:
accessibility/aria-sort.html
accessibility/ios-simulator/aria-sort-ios.html
Walk up the accessibility hierarchy to check for an inherited aria-sort
attribute present in a row or column header ancestor.
- accessibility/AccessibilityObject.cpp:
(WebCore::AccessibilityObject::sortDirection const):
LayoutTests:
Expanded this test to include the case where the header contains a child
element that must also expose the aria-sort attribute inherited from its
parent.
- accessibility/aria-sort-expected.txt:
- accessibility/aria-sort.html:
- accessibility/ios-simulator/aria-sort-ios-expected.txt:
- accessibility/ios-simulator/aria-sort-ios.html:
- 5:18 PM Changeset in webkit [272625] by
-
- 21 edits9 adds in trunk/Source
[GPUP] Run ImageDecoderAVFObjC in the GPU Process
https://bugs.webkit.org/show_bug.cgi?id=221317
Reviewed by Jer Noble.
Source/WebCore:
Modify
ImageDecoderandImageDecoderAVFObjCclasses in order to runImageDecoderAVFObjC
in the GPU process.
- Add install/reset factory methods to
ImageDecoderclass. - Add a struct
FrameInfo. - Export some methods of
ImageDecoderAVFObjCto WebKit.
- WebCore.xcodeproj/project.pbxproj:
- platform/graphics/ImageDecoder.cpp:
(WebCore::platformRegisterFactories):
(WebCore::installedFactories):
(WebCore::ImageDecoder::installFactory):
(WebCore::ImageDecoder::resetFactories):
(WebCore::ImageDecoder::clearFactories):
(WebCore::ImageDecoder::create):
(WebCore::ImageDecoder::supportsMediaType):
- platform/graphics/ImageDecoder.h:
(WebCore::ImageDecoder::FrameInfo::encode const):
(WebCore::ImageDecoder::FrameInfo::decode):
- platform/graphics/ImageDecoderIdentifier.h: Added.
- platform/graphics/avfoundation/objc/ImageDecoderAVFObjC.h:
(WebCore::ImageDecoderAVFObjC::hasTrack const):
- platform/graphics/avfoundation/objc/ImageDecoderAVFObjC.mm:
(WebCore::ImageDecoderAVFObjC::frameInfos const):
(WebCore::ImageDecoderAVFObjC::createFrameImageAtIndex):
- platform/graphics/cocoa/WebCoreDecompressionSession.h:
- platform/graphics/cocoa/WebCoreDecompressionSession.mm:
(WebCore::WebCoreDecompressionSession::ensureDecompressionSessionForSample):
Update the attribute so that we can create an IOSurface from a decoded frame.
Source/WebKit:
This patch adds the support to run
ImageDecoderAVFObjCin the GPU process when the
"GPU Process: Media" preference is on. TheRemoteImageDecoderAVFrunning in the Web
process forwards video data to theRemoteImageDecoderAVFProxyrunning in the GPU process,
which parses the data and returns frame information ("hasAlpha" and "duration") to the
Web process.RemoteImageDecoderAVFProxywill generate (decode) frames (images) after
receiving requests fromRemoteImageDecoderAVF. The decoded frames are transferred to
the Web process through IOSurfaces, and the frames will be cached in the Web process.
- DerivedSources-input.xcfilelist:
- DerivedSources-output.xcfilelist:
- DerivedSources.make:
- GPUProcess/GPUConnectionToWebProcess.cpp:
(WebKit::GPUConnectionToWebProcess::imageDecoderAVFProxy):
(WebKit::GPUConnectionToWebProcess::dispatchMessage):
(WebKit::GPUConnectionToWebProcess::dispatchSyncMessage):
- GPUProcess/GPUConnectionToWebProcess.h:
- GPUProcess/media/RemoteImageDecoderAVFProxy.cpp: Added.
(WebKit::RemoteImageDecoderAVFProxy::RemoteImageDecoderAVFProxy):
(WebKit::RemoteImageDecoderAVFProxy::createDecoder):
(WebKit::RemoteImageDecoderAVFProxy::deleteDecoder):
(WebKit::RemoteImageDecoderAVFProxy::encodedDataStatusChanged):
(WebKit::RemoteImageDecoderAVFProxy::setExpectedContentSize):
(WebKit::RemoteImageDecoderAVFProxy::setData):
(WebKit::RemoteImageDecoderAVFProxy::createFrameImageAtIndex):
- GPUProcess/media/RemoteImageDecoderAVFProxy.h: Added.
- GPUProcess/media/RemoteImageDecoderAVFProxy.messages.in: Added.
- Scripts/webkit/messages.py:
- SourcesCocoa.txt:
- WebKit.xcodeproj/project.pbxproj:
- WebProcess/GPU/media/RemoteImageDecoderAVF.cpp: Added.
(WebKit::RemoteImageDecoderAVF::RemoteImageDecoderAVF):
(WebKit::RemoteImageDecoderAVF::~RemoteImageDecoderAVF):
(WebKit::RemoteImageDecoderAVF::gpuProcessConnection const):
(WebKit::RemoteImageDecoderAVF::canDecodeType):
(WebKit::RemoteImageDecoderAVF::supportsMediaType):
(WebKit::RemoteImageDecoderAVF::encodedDataStatus const):
(WebKit::RemoteImageDecoderAVF::setEncodedDataStatusChangeCallback):
(WebKit::RemoteImageDecoderAVF::size const):
(WebKit::RemoteImageDecoderAVF::frameCount const):
(WebKit::RemoteImageDecoderAVF::repetitionCount const):
(WebKit::RemoteImageDecoderAVF::uti const):
(WebKit::RemoteImageDecoderAVF::filenameExtension const):
(WebKit::RemoteImageDecoderAVF::frameSizeAtIndex const):
(WebKit::RemoteImageDecoderAVF::frameIsCompleteAtIndex const):
(WebKit::RemoteImageDecoderAVF::frameMetadataAtIndex const):
(WebKit::RemoteImageDecoderAVF::frameDurationAtIndex const):
(WebKit::RemoteImageDecoderAVF::frameHasAlphaAtIndex const):
(WebKit::RemoteImageDecoderAVF::frameAllowSubsamplingAtIndex const):
(WebKit::RemoteImageDecoderAVF::frameBytesAtIndex const):
(WebKit::RemoteImageDecoderAVF::createFrameImageAtIndex):
(WebKit::RemoteImageDecoderAVF::setExpectedContentSize):
(WebKit::RemoteImageDecoderAVF::setData):
(WebKit::RemoteImageDecoderAVF::clearFrameBufferCache):
(WebKit::RemoteImageDecoderAVF::encodedDataStatusChanged):
- WebProcess/GPU/media/RemoteImageDecoderAVF.h: Added.
- WebProcess/GPU/media/RemoteImageDecoderAVFManager.cpp: Added.
(WebKit::RemoteImageDecoderAVFManager::createImageDecoder):
(WebKit::RemoteImageDecoderAVFManager::deleteRemoteImageDecoder):
(WebKit::RemoteImageDecoderAVFManager::RemoteImageDecoderAVFManager):
(WebKit::RemoteImageDecoderAVFManager::~RemoteImageDecoderAVFManager):
(WebKit::RemoteImageDecoderAVFManager::supplementName):
(WebKit::RemoteImageDecoderAVFManager::gpuProcessConnection const):
(WebKit::RemoteImageDecoderAVFManager::setUseGPUProcess):
(WebKit::RemoteImageDecoderAVFManager::encodedDataStatusChanged):
- WebProcess/GPU/media/RemoteImageDecoderAVFManager.h: Added.
- WebProcess/GPU/media/RemoteImageDecoderAVFManager.messages.in: Added.
- WebProcess/GPU/webrtc/MediaRecorderPrivate.cpp: Fix unified build failures.
- WebProcess/GPU/webrtc/MediaRecorderPrivate.h: Ditto.
- WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::updatePreferences):
- WebProcess/WebProcess.cpp:
(WebKit::WebProcess::setUseGPUProcessForMedia):
- 5:04 PM Changeset in webkit [272624] by
-
- 1 copy in tags/Safari-612.1.2.6
Tag Safari-612.1.2.6.
- 4:56 PM Changeset in webkit [272623] by
-
- 8 edits in branches/safari-612.1.2-branch/Source
Versioning.
WebKit-7612.1.2.6
- 4:38 PM Changeset in webkit [272622] by
-
- 7 edits in trunk/Source/WebCore
Reduce the overhead of HTMLDocumentParser in innerHTML setter
https://bugs.webkit.org/show_bug.cgi?id=221596
Reviewed by Simon Fraser.
This patch reduces the overhead of HTMLDocumentParser for innerHTML.
This appears to be ~0.5% Speedometer progression.
No new tests since there should be no observable behavior differences.
- dom/ScriptableDocumentParser.h:
(WebCore::ScriptableDocumentParser:isWaitingForScripts): Removed since this abstract
virtual function is only used in HTMLDocumentParser.
- html/FTPDirectoryDocument.cpp:
(WebCore::FTPDirectoryDocument::isWaitingForScripts): Removed. There are no scripts
in ftp directory document but there is no need to override it here.
- html/parser/HTMLDocumentParser.cpp:
(WebCore::HTMLDocumentParser::pumpTokenizer): Exit early when we're parsing a fragment
to avoid accessing the scheduler, preloader, and document loader for various things
since they're all irrelevant for fragment parsing.
(WebCore::HTMLDocumentParser::isWaitingForScripts const): Return false immediately when
parsing a document fragment as a fast path.
- html/parser/HTMLDocumentParser.h:
- xml/parser/XMLDocumentParser.cpp:
(WebCore::XMLDocumentParser::isWaitingForScripts const): Removed. Unused.
- xml/parser/XMLDocumentParser.h:
- 4:34 PM Changeset in webkit [272621] by
-
- 5 edits in trunk/Source/WTF
REGRESSION(r269017): Speedometer2 1% regression
https://bugs.webkit.org/show_bug.cgi?id=221640
Reviewed by Mark Lam.
Reverting r269017, r269478, and r272095 because of Speedometer2 ~1% regression.
- wtf/HashTable.h:
(WTF::KeyTraits>::inlineLookup):
(WTF::KeyTraits>::lookupForWriting):
(WTF::KeyTraits>::fullLookupForWriting):
(WTF::KeyTraits>::addUniqueForInitialization):
(WTF::KeyTraits>::add):
- wtf/HashTraits.h:
- wtf/MetaAllocator.cpp:
(WTF::MetaAllocator::addFreeSpace):
- wtf/MetaAllocator.h:
- 4:22 PM Changeset in webkit [272620] by
-
- 1 copy in tags/Safari-611.1.14.1.1
Tag Safari-611.1.14.1.1.
- 4:21 PM Changeset in webkit [272619] by
-
- 1 copy in tags/Safari-611.1.14.0.1
Tag Safari-611.1.14.0.1.
- 4:15 PM Changeset in webkit [272618] by
-
- 25 edits in trunk
Rename SecurityOrigin's canAccess() to isSameOriginDomain() to match HTML specification naming
https://bugs.webkit.org/show_bug.cgi?id=221630
Reviewed by Geoffrey Garen.
Rename SecurityOrigin's canAccess() to isSameOriginDomain() to match HTML specification naming:
Source/WebCore:
- bindings/js/JSDOMBindingSecurity.cpp:
(WebCore::canAccessDocument):
- bindings/js/ScriptController.cpp:
(WebCore::ScriptController::canAccessFromCurrentOrigin):
(WebCore::ScriptController::executeJavaScriptURL):
- dom/Document.cpp:
(WebCore::canAccessAncestor):
(WebCore::Document::supportsPaintTiming const):
(WebCore::Document::domTimerAlignmentInterval const):
(WebCore::Document::isNavigationBlockedByThirdPartyIFrameRedirectBlocking):
(WebCore::Document::initContentSecurityPolicy):
(WebCore::Document::requestAnimationFrame):
(WebCore::Document::updateIntersectionObservations):
- dom/Element.cpp:
(WebCore::Element::focus):
- dom/SecurityContext.cpp:
(WebCore::SecurityContext::isSecureTransitionTo const):
- dom/UserGestureIndicator.cpp:
(WebCore::UserGestureToken::UserGestureToken):
- html/HTMLFormControlElement.cpp:
(WebCore::shouldAutofocus):
- html/HTMLPlugInImageElement.cpp:
(WebCore::HTMLPlugInImageElement::canLoadURL const):
- loader/DocumentLoader.cpp:
(WebCore::shouldUseActiveServiceWorkerFromParent):
- loader/DocumentWriter.cpp:
(WebCore::canReferToParentFrameEncoding):
- loader/FrameLoader.cpp:
(WebCore::FrameLoader::dispatchBeforeUnloadEvent):
- loader/LinkLoader.cpp:
(WebCore::LinkLoader::preconnectIfNeeded):
- loader/ResourceLoadInfo.cpp:
(WebCore::ContentExtensions::ResourceLoadInfo::isThirdParty const):
- page/DOMWindow.cpp:
(WebCore::DOMWindow::alert):
(WebCore::DOMWindow::confirmForBindings):
(WebCore::DOMWindow::prompt):
(WebCore::DOMWindow::isSameSecurityOriginAsMainFrame const):
(WebCore::DOMWindow::crossDomainAccessErrorMessage):
(WebCore::DOMWindow::isInsecureScriptAccess):
- page/FrameView.cpp:
(WebCore::FrameView::safeToPropagateScrollToParent const):
- page/Location.cpp:
(WebCore::Location::reload):
- page/SecurityOrigin.cpp:
(WebCore::SecurityOrigin::isSameOriginDomain const):
(WebCore::SecurityOrigin::canReceiveDragData const):
(WebCore::SecurityOrigin::canAccess const): Deleted.
- page/SecurityOrigin.h:
- platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
(WebCore::MediaPlayerPrivateGStreamer::wouldTaintOrigin const):
- platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:
(webKitSrcWouldTaintOrigin):
- platform/network/cocoa/WebCoreNSURLSession.mm:
(-[WebCoreNSURLSession wouldTaintOrigin:]):
- rendering/RenderWidget.cpp:
(WebCore::RenderWidget::paintContents):
Tools:
- TestWebKitAPI/Tests/WebCore/SecurityOrigin.cpp:
(TestWebKitAPI::TEST_F):
- 3:06 PM Changeset in webkit [272617] by
-
- 7 edits in trunk/Source
[Cocoa] rename
ENGINEERING_BUILDtoENABLE_DEVELOPER_MODEto match other platforms
https://bugs.webkit.org/show_bug.cgi?id=221621
Reviewed by Michael Catanzaro.
- Configurations/Base.xcconfig:
- Configurations/DebugRelease.xcconfig:
Source/WebCore:
(WebCore::HTMLMediaElement::ensureMediaControlsInjectedScript):
- 3:04 PM Changeset in webkit [272616] by
-
- 2 edits in trunk/Source/WebCore
Change release log to mention IOSurface
https://bugs.webkit.org/show_bug.cgi?id=221629
Reviewed by Tim Horton.
It's more memorable to search logs for "IOSurface".
- platform/graphics/cocoa/IOSurface.mm:
(WebCore::IOSurface::IOSurface):
- 2:51 PM Changeset in webkit [272615] by
-
- 2 edits in trunk/Tools
Fix Catalina build.
https://bugs.webkit.org/show_bug.cgi?id=221431
- TestWebKitAPI/Tests/WebKitCocoa/MediaSession.mm:
(TestWebKitAPI::TEST_F):
- 2:48 PM Changeset in webkit [272614] by
-
- 2 edits in trunk
AX: introduction.md broken architecture.png link
https://bugs.webkit.org/show_bug.cgi?id=221607
<rdar://problem/74140397>
Reviewed by Sam Weinig.
- Introduction.md: webkit2-process-architecture.png Moved to resources.
- 2:12 PM Changeset in webkit [272613] by
-
- 5 edits1 copy1 add in trunk/LayoutTests
Unreviewed, reverting r272426.
Caused test failures / flakiness
Reverted changeset:
"Remove GPUProcess flag in MediaRecorder tests"
https://bugs.webkit.org/show_bug.cgi?id=221401
https://trac.webkit.org/changeset/272426
- 2:07 PM Changeset in webkit [272612] by
-
- 7 edits in trunk
Fix warning introduced by r272580
https://bugs.webkit.org/show_bug.cgi?id=221612
JSTests:
Unreviewd, update test262/config.yaml
Patch by Caio Lima <Caio Lima> on 2021-02-09
- test262/config.yaml:
Since
class-methods-privatealso includes private accessors tests,
we should enable it only after https://bugs.webkit.org/show_bug.cgi?id=194435
gets closed.
Source/JavaScriptCore:
Unreviewed build fixes.
Patch by Caio Lima <Caio Lima> on 2021-02-09
- bytecode/CheckPrivateBrandVariant.cpp:
- bytecode/CheckPrivateBrandVariant.h:
- bytecode/SetPrivateBrandVariant.cpp:
- bytecode/SetPrivateBrandVariant.h:
- 2:05 PM Changeset in webkit [272611] by
-
- 19 edits in trunk/Source
[macOS] Add internal preference to control how AVOutputContext is allocated
https://bugs.webkit.org/show_bug.cgi?id=221583
<rdar://73830632>
Reviewed by Jer Noble.
Source/WebCore:
No new tests, this can only be tested manually.
- Modules/airplay/WebMediaSessionManager.cpp:
(WebCore::WebMediaSessionManager::showPlaybackTargetPicker):
- Modules/airplay/WebMediaSessionManagerClient.h:
(WebCore::WebMediaSessionManagerClient::alwaysOnLoggingAllowed const):
(WebCore::WebMediaSessionManagerClient::useiTunesAVOutputContext const):
(WebCore::WebMediaSessionManagerClient::alwaysOnLoggingAllowed): Deleted.
- platform/graphics/MediaPlaybackTargetPicker.cpp:
(WebCore::MediaPlaybackTargetPicker::showPlaybackTargetPicker):
- platform/graphics/MediaPlaybackTargetPicker.h:
- platform/graphics/avfoundation/objc/AVOutputDeviceMenuControllerTargetPicker.h:
- platform/graphics/avfoundation/objc/AVOutputDeviceMenuControllerTargetPicker.mm:
(WebCore::AVOutputDeviceMenuControllerTargetPicker::showPlaybackTargetPicker):
- platform/graphics/avfoundation/objc/AVPlaybackTargetPicker.h:
- platform/graphics/avfoundation/objc/AVRoutePickerViewTargetPicker.h:
- platform/graphics/avfoundation/objc/AVRoutePickerViewTargetPicker.mm:
(WebCore::AVRoutePickerViewTargetPicker::outputContextInternal):
(WebCore::AVRoutePickerViewTargetPicker::showPlaybackTargetPicker):
- platform/graphics/avfoundation/objc/MediaPlaybackTargetPickerMac.h:
- platform/graphics/avfoundation/objc/MediaPlaybackTargetPickerMac.mm:
(WebCore::MediaPlaybackTargetPickerMac::showPlaybackTargetPicker):
- platform/mock/MediaPlaybackTargetPickerMock.cpp:
(WebCore::MediaPlaybackTargetPickerMock::showPlaybackTargetPicker):
- platform/mock/MediaPlaybackTargetPickerMock.h:
Source/WebKit:
- UIProcess/WebPageProxy.h:
- UIProcess/mac/WebPageProxyMac.mm:
(WebKit::WebPageProxy::useiTunesAVOutputContext const):
Source/WTF:
- Scripts/Preferences/WebPreferencesInternal.yaml:
- 1:52 PM Changeset in webkit [272610] by
-
- 37 edits in trunk
Implement scroll-snap-stop for scroll snapping
https://bugs.webkit.org/show_bug.cgi?id=197744
<rdar://problem/50708356>
LayoutTests/imported/w3c:
Reviewed by Simon Fraser.
- web-platform-tests/css/css-cascade/all-prop-initial-xml-expected.txt:
- web-platform-tests/css/css-scroll-snap/inheritance-expected.txt:
- web-platform-tests/css/css-scroll-snap/parsing/scroll-snap-stop-computed-expected.txt:
- web-platform-tests/css/css-scroll-snap/parsing/scroll-snap-stop-valid-expected.txt:
- web-platform-tests/css/css-scroll-snap/scroll-snap-stop-change-expected.txt:
- web-platform-tests/css/css-scroll-snap/scroll-snap-stop-expected.txt:
- web-platform-tests/css/css-scroll-snap/scroll-snap-type-on-root-element-expected.txt:
- web-platform-tests/css/cssom/cssstyledeclaration-csstext-expected.txt:
Source/WebCore:
Reviewed by Simon Fraser.
No new tests. This is tested by existing, imported WPT tests:
imported/w3c/web-platform-tests/css/css-scroll-snap/inheritance-expected.txt:
imported/w3c/web-platform-tests/css/css-scroll-snap/parsing/scroll-snap-stop-computed-expected.txt:
imported/w3c/web-platform-tests/css/css-scroll-snap/parsing/scroll-snap-stop-valid-expected.txt:
imported/w3c/web-platform-tests/css/css-scroll-snap/scroll-snap-stop-change-expected.txt:
imported/w3c/web-platform-tests/css/css-scroll-snap/scroll-snap-stop-expected.txt:
imported/w3c/web-platform-tests/css/css-scroll-snap/scroll-snap-type-on-root-element-expected.txt:
- css/CSSComputedStyleDeclaration.cpp:
(WebCore::ComputedStyleExtractor::valueForPropertyInStyle): Add support the new CSS property.
- css/CSSPrimitiveValueMappings.h:
(WebCore::CSSPrimitiveValue::operator ScrollSnapAxisAlignType const): Ditto.
(WebCore::CSSPrimitiveValue::CSSPrimitiveValue): Ditto.
(WebCore::CSSPrimitiveValue::operator ScrollSnapStop const): ditto.
- css/CSSProperties.json: Ditto.
- css/parser/CSSPropertyParser.cpp:
(WebCore::CSSPropertyParser::parseSingleValue): Ditto.
- page/scrolling/ScrollSnapOffsetsInfo.cpp:
(WebCore::indicesOfNearestSnapOffsets): Update to accept SnapOffset instead of a raw
value.
(WebCore::findFirstSnapStopOffsetBetweenOriginAndDestination): Added this helper which looks
between the scroll origin and destination to find a candidate scroll offset with ScrollSnapStop::Always.
This offset will always be chosen for directional scrolls.
(WebCore::closestSnapOffsetWithOffsetsAndRanges): Use new helper to find offsets with ScrollSnapStop::Always.
(WebCore::computeAxisProximitySnapOffsetRanges): Deal with SnapOffset instead of raw values.
(WebCore::updateSnapOffsetsForScrollableArea): Ditto.
(WebCore::convertOffsetInfo): Ditto.
- page/scrolling/ScrollSnapOffsetsInfo.h:
(WebCore::ScrollSnapOffsetsInfo::offsetsForAxis const): Ditto.
(WebCore::operator<<): Consolidated all TextStream implementations here instead of repeating
them throughout the code.
- platform/ScrollableArea.cpp:
(WebCore::ScrollableArea::setScrollSnapOffsetInfo): Set the scroll snap offset info all at once.
(WebCore::ScrollableArea::clearSnapOffsets): We no longer clear horizontal and vertical offsets separately.
(WebCore::ScrollableArea::nearestActiveSnapPoint): Access the offset value.
- platform/ScrollableArea.h:
- platform/cocoa/ScrollController.mm:
(WebCore::ScrollController::setNearestScrollSnapIndexForAxisAndOffset): Ditto.
- platform/cocoa/ScrollSnapAnimatorState.h:
(WebCore::ScrollSnapAnimatorState::snapOffsetsForAxis const): Deal with SnapOffsets instead of raw values.
(WebCore::ScrollSnapAnimatorState::setSnapOffsetsAndPositionRangesForAxis): Ditto.
- platform/cocoa/ScrollSnapAnimatorState.mm:
- rendering/RenderLayerModelObject.cpp:
(WebCore::RenderLayerModelObject::styleDidChange): Update scroll snap information when the
scroll-snap-stop
property changes. Also ensure that we update everything for FrameView's instead of only some properties.
- rendering/style/RenderStyle.cpp:
(WebCore::RenderStyle::initialScrollSnapStop): Added for new CSS property.
(WebCore::RenderStyle::scrollSnapStop const): Ditto.
(WebCore::RenderStyle::setScrollSnapStop): Ditto.
- rendering/style/RenderStyle.h:
- rendering/style/RenderStyleConstants.cpp:
(WebCore::operator<<): Ditto.
- rendering/style/RenderStyleConstants.h:
- rendering/style/StyleRareNonInheritedData.h:
- style/StyleBuilderConverter.h:
(WebCore::Style::BuilderConverter::convertScrollSnapStop): Ditto.
- testing/Internals.cpp:
(WebCore::appendOffsets): Handle the case where we are printing an offset with ScrollSnapStop::Always.
Source/WebKit:
Reviewed by Simon Fraser.
- Shared/RemoteLayerTree/RemoteScrollingCoordinatorTransaction.cpp: Add encoding and decoding support
for the SnapOffset struct.
(ArgumentCoder<SnapOffset<float>>::encode):
(ArgumentCoder<SnapOffset<float>>::decode):
- UIProcess/RemoteLayerTree/ios/RemoteScrollingCoordinatorProxyIOS.mm: Update to use SnapOffset struct.
(WebKit::RemoteScrollingCoordinatorProxy::shouldSnapForMainFrameScrolling const):
(WebKit::RemoteScrollingCoordinatorProxy::hasActiveSnapPoint const):
(WebKit::RemoteScrollingCoordinatorProxy::nearestActiveContentInsetAdjustedSnapOffset const):
LayoutTests:
Reviewed by Simon Fraser.
- platform/ios-wk2/imported/w3c/web-platform-tests/css/cssom/cssstyledeclaration-csstext-expected.txt:
- 1:51 PM Changeset in webkit [272609] by
-
- 3 edits in trunk/LayoutTests
[LayoutTests] Convert xmlhttprequest php to Python (Follow-up fix)
https://bugs.webkit.org/show_bug.cgi?id=220995
<rdar://problem/73630008>
Unreviewed test fix.
- http/tests/media/user-gesture-preserved-across-xmlhttprequest.html: Lengthen timeouts, Python is slightly slower than PHP.
- http/tests/xmlhttprequest/resources/download-with-delay.py: Match iteration behavior to PHP script.
- 1:30 PM Changeset in webkit [272608] by
-
- 2 edits in trunk/Source/WebKit
[macOS] Deny mach-lookup to the distributed notifications service
https://bugs.webkit.org/show_bug.cgi?id=221604
<rdar://problem/69169123>
Reviewed by Brent Fulgham.
Deny mach-lookup to the distributed notifications service in the WebContent process on macOS.
- WebProcess/com.apple.WebProcess.sb.in:
- 1:21 PM Changeset in webkit [272607] by
-
- 131 edits6 adds in trunk
Disallow alert/confirm/prompt in cross-origin-domain subframes
https://bugs.webkit.org/show_bug.cgi?id=221568
Reviewed by Geoff Garen.
Source/WebCore:
Disallow alert/confirm/prompt in cross-origin-domain subframes as per the latest HTML specification:
Tests: http/tests/security/cross-origin-js-prompt-forbidden.html
http/tests/security/same-origin-different-domain-js-prompt-forbidden.html
- page/DOMWindow.cpp:
(WebCore::DOMWindow::alert):
(WebCore::DOMWindow::confirmForBindings):
(WebCore::DOMWindow::prompt):
- page/SecurityOrigin.cpp:
- page/SecurityOrigin.h:
LayoutTests:
Add layout test coverage and update existing tests to stop using alert() in cross-origin iframes.
- fast/events/popup-blocked-from-unique-frame-via-window-open-named-sibling-frame-expected.txt:
- fast/events/popup-blocked-from-unique-frame-via-window-open-named-sibling-frame.html:
- fast/events/popup-when-select-change-expected.txt:
- fast/events/popup-when-select-change.html:
- fast/events/resize-subframe-expected.txt:
- fast/events/resize-subframe.html:
- fast/forms/autofocus-in-sandbox-with-allow-scripts-expected.txt:
- fast/forms/autofocus-in-sandbox-with-allow-scripts.html:
- fast/frames/resources/navigate-top-by-name-to-fail.html:
- fast/frames/sandboxed-iframe-navigation-top-by-name-denied-expected.txt:
- http/tests/cookies/resources/third-party-cookie-relaxing-iframe.html:
- http/tests/cookies/third-party-cookie-relaxing-expected.txt:
- http/tests/history/cross-origin-replace-history-object-child-expected.txt:
- http/tests/history/cross-origin-replace-history-object-expected.txt:
- http/tests/history/resources/cross-origin-replaces-history-object-child-iframe.html:
- http/tests/history/resources/cross-origin-replaces-history-object-iframe.html:
- http/tests/plugins/resources/third-party-cookie-accept-policy-iframe.html:
- http/tests/plugins/third-party-cookie-accept-policy-expected.txt:
- http/tests/security/contentSecurityPolicy/embed-redirect-allowed-expected.txt:
- http/tests/security/contentSecurityPolicy/embed-redirect-allowed2-expected.txt:
- http/tests/security/contentSecurityPolicy/frame-src-cross-origin-load-expected.txt:
- http/tests/security/contentSecurityPolicy/iframe-allowed-when-loaded-via-javascript-url-expected.txt:
- http/tests/security/contentSecurityPolicy/iframe-inside-csp-expected.txt:
- http/tests/security/contentSecurityPolicy/iframe-redirect-allowed-by-child-src-expected.txt:
- http/tests/security/contentSecurityPolicy/iframe-redirect-allowed-by-child-src2-expected.txt:
- http/tests/security/contentSecurityPolicy/iframe-redirect-allowed-by-frame-src-expected.txt:
- http/tests/security/contentSecurityPolicy/iframe-redirect-allowed-by-frame-src2-expected.txt:
- http/tests/security/contentSecurityPolicy/object-redirect-allowed-expected.txt:
- http/tests/security/contentSecurityPolicy/object-redirect-allowed2-expected.txt:
- http/tests/security/contentSecurityPolicy/resources/alert-fail.html:
- http/tests/security/contentSecurityPolicy/resources/alert-fail.js:
(catch):
- http/tests/security/contentSecurityPolicy/resources/alert-pass.html:
- http/tests/security/contentSecurityPolicy/resources/alert-pass.js:
(catch):
- http/tests/security/contentSecurityPolicy/resources/sandbox.php:
- http/tests/security/contentSecurityPolicy/resources/sandboxed-eval.php:
- http/tests/security/contentSecurityPolicy/sandbox-allow-scripts-in-http-header-control-expected.txt:
- http/tests/security/contentSecurityPolicy/sandbox-allow-scripts-in-http-header-expected.txt:
- http/tests/security/contentSecurityPolicy/sandbox-report-only-expected.txt:
- http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/proper-nested-upgrades-expected.txt:
- http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/upgrades-mixed-content-expected.txt:
- http/tests/security/cross-origin-js-prompt-forbidden-expected.txt: Added.
- http/tests/security/cross-origin-js-prompt-forbidden.html: Added.
- http/tests/security/dataURL/resources/foreign-domain-data-url-accessor-iframe.html:
- http/tests/security/dataURL/resources/foreign-domain-data-url-accessor-opened-frame.html:
- http/tests/security/dataURL/xss-DENIED-from-data-url-in-foreign-domain-subframe-expected.txt:
- http/tests/security/dataURL/xss-DENIED-from-data-url-in-foreign-domain-window-open-expected.txt:
- http/tests/security/mixedContent/resources/frame-with-insecure-websocket.html:
- http/tests/security/mixedContent/websocket/insecure-websocket-in-iframe-expected.txt:
- http/tests/security/resources/cross-origin-js-prompt-forbidden.html: Added.
- http/tests/security/same-origin-different-domain-js-prompt-forbidden-expected.txt: Added.
- http/tests/security/same-origin-different-domain-js-prompt-forbidden.html: Added.
- http/tests/security/xssAuditor/base-href-control-char-expected.txt:
- http/tests/security/xssAuditor/base-href-direct-expected.txt:
- http/tests/security/xssAuditor/base-href-expected.txt:
- http/tests/security/xssAuditor/base-href-null-char-expected.txt:
- http/tests/security/xssAuditor/base-href-safe-expected.txt:
- http/tests/security/xssAuditor/base-href-safe2-expected.txt:
- http/tests/security/xssAuditor/base-href-safe3-expected.txt:
- http/tests/security/xssAuditor/base-href-scheme-relative-expected.txt:
- http/tests/security/xssAuditor/cached-frame-expected.txt:
- http/tests/security/xssAuditor/cached-frame.html:
- http/tests/security/xssAuditor/cookie-injection-expected.txt:
- http/tests/security/xssAuditor/data-urls-work-expected.txt:
- http/tests/security/xssAuditor/data-urls-work.html:
- http/tests/security/xssAuditor/dom-write-innerHTML-expected.txt:
- http/tests/security/xssAuditor/dom-write-innerHTML.html:
- http/tests/security/xssAuditor/form-action-expected.txt:
- http/tests/security/xssAuditor/formaction-on-button-expected.txt:
- http/tests/security/xssAuditor/formaction-on-input-expected.txt:
- http/tests/security/xssAuditor/javascript-link-safe-expected.txt:
- http/tests/security/xssAuditor/javascript-link-safe.html:
- http/tests/security/xssAuditor/property-escape-noquotes-expected.txt:
- http/tests/security/xssAuditor/property-escape-noquotes-tab-slash-chars-expected.txt:
- http/tests/security/xssAuditor/property-escape-noquotes-tab-slash-chars.html:
- http/tests/security/xssAuditor/property-escape-noquotes.html:
- http/tests/security/xssAuditor/property-inject-expected.txt:
- http/tests/security/xssAuditor/property-inject.html:
- http/tests/security/xssAuditor/resources/base-href/really-safe-script.js:
- http/tests/security/xssAuditor/resources/base-href/safe-script.js:
- http/tests/security/xssAuditor/resources/echo-intertag.pl:
- http/tests/security/xssAuditor/resources/javascript-link-safe.html:
- http/tests/security/xssAuditor/resources/nph-cached.pl:
- http/tests/security/xssAuditor/resources/safe-script-noquotes.js:
- http/tests/security/xssAuditor/resources/safe-script.js:
- http/tests/security/xssAuditor/resources/script-tag-safe2.html:
- http/tests/security/xssAuditor/script-tag-near-start-expected.txt:
- http/tests/security/xssAuditor/script-tag-near-start.html:
- http/tests/security/xssAuditor/script-tag-safe2-expected.txt:
- http/tests/security/xssAuditor/script-tag-safe2.html:
- http/tests/security/xssAuditor/script-tag-safe3-expected.txt:
- http/tests/security/xssAuditor/script-tag-safe3.html:
- http/tests/security/xssAuditor/script-tag-src-redirect-safe-expected.txt:
- http/tests/security/xssAuditor/script-tag-with-injected-comment-expected.txt:
- http/tests/security/xssAuditor/script-tag-with-injected-comment.html:
- http/tests/security/xssAuditor/script-tag-with-source-same-host-expected.txt:
- platform/wk2/http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/proper-nested-upgrades-expected.txt:
- 1:18 PM Changeset in webkit [272606] by
-
- 10 edits in trunk/Source/WebKit
Use CompletionHandler instead of ComputedPagesCallback
https://bugs.webkit.org/show_bug.cgi?id=221619
Reviewed by Chris Dumez.
- UIProcess/API/C/WKPage.cpp:
(WKPageComputePagesForPrinting):
- UIProcess/GenericCallback.h:
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::computePagesForPrinting):
(WebKit::WebPageProxy::computedPagesCallback): Deleted.
- UIProcess/WebPageProxy.h:
- UIProcess/WebPageProxy.messages.in:
- UIProcess/mac/WKPrintingView.mm:
(-[WKPrintingView _askPageToComputePageRects]):
- WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::computePagesForPrinting):
- WebProcess/WebPage/WebPage.h:
- WebProcess/WebPage/WebPage.messages.in:
- 1:17 PM Changeset in webkit [272605] by
-
- 9 edits in trunk/Source/WebKit
Use CompletionHandler instead of NowPlayingInfoCallback
https://bugs.webkit.org/show_bug.cgi?id=221617
Reviewed by Chris Dumez.
- UIProcess/API/Cocoa/WKWebViewTesting.mm:
(-[WKWebView _requestActiveNowPlayingSessionInfo:]):
- UIProcess/Cocoa/WebPageProxyCocoa.mm:
(WebKit::WebPageProxy::requestActiveNowPlayingSessionInfo):
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::requestActiveNowPlayingSessionInfo): Deleted.
(WebKit::WebPageProxy::nowPlayingInfoCallback): Deleted.
- UIProcess/WebPageProxy.h:
- UIProcess/WebPageProxy.messages.in:
- WebProcess/WebPage/Cocoa/WebPageCocoa.mm:
(WebKit::WebPage::requestActiveNowPlayingSessionInfo):
- WebProcess/WebPage/WebPage.messages.in:
- 1:01 PM Changeset in webkit [272604] by
-
- 2 edits in trunk/Source/WebKitLegacy/mac
Unreviewed build fix. Reapply r272500.
Permission request API for MediaKeySystem access support
https://bugs.webkit.org/show_bug.cgi?id=221187
Unreviewed build fix for macCatalyst.
Patch by Ryan Haddad <Ryan Haddad> on 2021-02-08
- WebCoreSupport/WebMediaKeySystemClient.h: Add a check for ENABLE(ENCRYPTED_MEDIA).
- 12:58 PM Changeset in webkit [272603] by
-
- 18 edits4 adds in trunk
Synthesize range responses if needed in WebCoreNSURLSession
https://bugs.webkit.org/show_bug.cgi?id=221072
Reviewed by Geoff Garen.
Source/WebCore:
When we make a media request with a Range HTTP header field and the server doesn't respond with a 206 with Content-Range header field,
until now we would just fail to play the video. In order to successfully play these videos, I introduce the RangeResponseGenerator class,
which will receive the data for a request for such a video and feed the data into WebCoreNSURLSession as the requested ranges are received.
Seeking is problematic, but at least we will try our best to play the video.
I added API tests that try to play a video that didn't play before using a server that doesn't support range requests. Manual verification is also necessary.
- Sources.txt:
- SourcesCocoa.txt:
- WebCore.xcodeproj/project.pbxproj:
- platform/graphics/PlatformMediaResourceLoader.h:
(WebCore::PlatformMediaResource::setClient):
- platform/graphics/avfoundation/objc/WebCoreAVFResourceLoader.mm:
(WebCore::PlatformResourceMediaLoader::create):
- platform/network/ParsedRequestRange.cpp: Added.
(WebCore::ParsedRequestRange::parse):
- platform/network/ParsedRequestRange.h: Added.
(WebCore::ParsedRequestRange::begin const):
(WebCore::ParsedRequestRange::end const):
(WebCore::ParsedRequestRange::ParsedRequestRange):
- platform/network/cocoa/RangeResponseGenerator.h: Added.
- platform/network/cocoa/RangeResponseGenerator.mm: Added.
(WebCore::RangeResponseGenerator::Data::Data):
(WebCore::RangeResponseGenerator::Data::TaskData::TaskData):
(WebCore::synthesizedResponseForRange):
(WebCore::RangeResponseGenerator::removeTask):
(WebCore::RangeResponseGenerator::giveResponseToTaskIfBytesInRangeReceived):
(WebCore::RangeResponseGenerator::expectedContentLengthFromData):
(WebCore::RangeResponseGenerator::giveResponseToTasksWithFinishedRanges):
(WebCore::RangeResponseGenerator::willHandleRequest):
(WebCore::RangeResponseGenerator::willSynthesizeRangeResponses):
- platform/network/cocoa/WebCoreNSURLSession.h:
- platform/network/cocoa/WebCoreNSURLSession.mm:
(-[WebCoreNSURLSession rangeResponseGenerator]):
(-[WebCoreNSURLSession dataTaskWithURL:]):
(WebCore::WebCoreNSURLSessionDataTaskClient::dataSent):
(WebCore::WebCoreNSURLSessionDataTaskClient::responseReceived):
(WebCore::WebCoreNSURLSessionDataTaskClient::shouldCacheResponse):
(WebCore::WebCoreNSURLSessionDataTaskClient::dataReceived):
(WebCore::WebCoreNSURLSessionDataTaskClient::redirectReceived):
(WebCore::WebCoreNSURLSessionDataTaskClient::accessControlCheckFailed):
(WebCore::WebCoreNSURLSessionDataTaskClient::loadFailed):
(WebCore::WebCoreNSURLSessionDataTaskClient::loadFinished):
(-[WebCoreNSURLSessionDataTask _restart]):
(-[WebCoreNSURLSessionDataTask _finish]):
(-[WebCoreNSURLSessionDataTask resource:sentBytes:totalBytesToBeSent:]):
(-[WebCoreNSURLSessionDataTask resource:receivedResponse:completionHandler:]):
(-[WebCoreNSURLSessionDataTask resource:shouldCacheResponse:]):
(-[WebCoreNSURLSessionDataTask resource:receivedData:length:]):
(-[WebCoreNSURLSessionDataTask resource:receivedRedirect:request:completionHandler:]):
(-[WebCoreNSURLSessionDataTask _resource:loadFinishedWithError:metrics:]):
(-[WebCoreNSURLSessionDataTask resource:accessControlCheckFailedWithError:]):
(-[WebCoreNSURLSessionDataTask resource:loadFailedWithError:]):
(-[WebCoreNSURLSessionDataTask resourceFinished:metrics:]):
(-[WebCoreNSURLSessionDataTask initWithSession:identifier:URL:]): Deleted.
Source/WebKit:
- WebProcess/GPU/media/MediaPlayerPrivateRemote.cpp:
(WebKit::MediaPlayerPrivateRemote::requestResource):
Tools:
- TestWebKitAPI/Tests/WebCore/ParsedContentRange.cpp:
(TestWebKitAPI::TEST):
- TestWebKitAPI/Tests/WebKitCocoa/Challenge.mm:
(TestWebKitAPI::clientCertServer):
- TestWebKitAPI/Tests/WebKitCocoa/MediaLoading.mm:
(TestWebKitAPI::testVideoBytes):
(TestWebKitAPI::runVideoTest):
(TestWebKitAPI::TEST):
- TestWebKitAPI/cocoa/HTTPServer.h:
(TestWebKitAPI::HTTPResponse::HTTPResponse):
(TestWebKitAPI::HTTPServer::HTTPResponse::HTTPResponse): Deleted.
- TestWebKitAPI/cocoa/HTTPServer.mm:
(TestWebKitAPI::HTTPServer::RequestData::RequestData):
(TestWebKitAPI::appendToVector):
(TestWebKitAPI::HTTPServer::parsePath):
(TestWebKitAPI::HTTPServer::respondToRequests):
(TestWebKitAPI::HTTPResponse::bodyFromString):
(TestWebKitAPI::HTTPResponse::serialize):
- 12:27 PM Changeset in webkit [272602] by
-
- 2 edits in trunk/Source/WebCore
[LFC][IFC] Disable BIDI processing for modern line layout
https://bugs.webkit.org/show_bug.cgi?id=221615
Reviewed by Sam Weinig.
This was added in preparation for BIDI content support but we are not there yet. Let's just disable it for now.
- layout/integration/LayoutIntegrationInlineContentBuilder.cpp:
(WebCore::LayoutIntegration::InlineContentBuilder::createDisplayLineRuns const):
- 12:24 PM Changeset in webkit [272601] by
-
- 2 edits in trunk/Source/WebCore
[LFC][Integration] Style change on an inline box should trigger invalidation
https://bugs.webkit.org/show_bug.cgi?id=221573
Reviewed by Antti Koivisto.
Invalidate the line layout path when the inline box (RenderInline) needs layout.
e.g. the font-family property change in imported/w3c/web-platform-tests/css/css-fonts/generic-family-keywords-001.html
(This is sadly a full invalidation at this point.)
- rendering/RenderInline.cpp:
(WebCore::RenderInline::styleDidChange):
- 12:21 PM Changeset in webkit [272600] by
-
- 22 edits3 deletes in trunk
[GPUP] Test media/track/audio-track-add-remove.html crashes on debug bots
https://bugs.webkit.org/show_bug.cgi?id=221595
Reviewed by Eric Carlson.
Source/WebKit:
Under stress tests, instances of RemoteAudioTrackProxy, RemoteTextTrackProxy, and
RemoteVideoTrackProxy might be destroyed in the GPU process when an IPC message
comes and leads to an assertion failure.
To fix the assertion failure, this patches removes three IPC message receivers in
the GPU process:
- RemoteAudioTrackProxy
- RemoteTextTrackProxy
- RemoteVideoTrackProxy
Instead of using these three message receivers, this patch adds three new IPC messages
to RemoteMediaPlayerProxy:
- AudioTrackSetEnabled
- TextTrackSetMode
- VideoTrackSetSelected
No new tests, fixing following tests:
- media/track/audio-track-add-remove.html
- media/track/audio-track.html
- CMakeLists.txt:
- DerivedSources.make:
- GPUProcess/media/RemoteAudioTrackProxy.cpp:
(WebKit::RemoteAudioTrackProxy::RemoteAudioTrackProxy):
(WebKit::RemoteAudioTrackProxy::~RemoteAudioTrackProxy):
- GPUProcess/media/RemoteAudioTrackProxy.h:
- GPUProcess/media/RemoteAudioTrackProxy.messages.in: Removed.
- GPUProcess/media/RemoteMediaPlayerProxy.cpp:
(WebKit::RemoteMediaPlayerProxy::audioTrackSetEnabled):
(WebKit::RemoteMediaPlayerProxy::videoTrackSetSelected):
(WebKit::RemoteMediaPlayerProxy::textTrackSetMode):
- GPUProcess/media/RemoteMediaPlayerProxy.h:
- GPUProcess/media/RemoteMediaPlayerProxy.messages.in:
- GPUProcess/media/RemoteTextTrackProxy.cpp:
(WebKit::RemoteTextTrackProxy::RemoteTextTrackProxy):
(WebKit::RemoteTextTrackProxy::~RemoteTextTrackProxy):
- GPUProcess/media/RemoteTextTrackProxy.h:
- GPUProcess/media/RemoteTextTrackProxy.messages.in: Removed.
- GPUProcess/media/RemoteVideoTrackProxy.cpp:
(WebKit::RemoteVideoTrackProxy::RemoteVideoTrackProxy):
(WebKit::RemoteVideoTrackProxy::~RemoteVideoTrackProxy):
- GPUProcess/media/RemoteVideoTrackProxy.h:
- GPUProcess/media/RemoteVideoTrackProxy.messages.in: Removed.
- WebKit.xcodeproj/project.pbxproj:
- WebProcess/GPU/media/AudioTrackPrivateRemote.cpp:
(WebKit::AudioTrackPrivateRemote::AudioTrackPrivateRemote):
(WebKit::AudioTrackPrivateRemote::setEnabled):
- WebProcess/GPU/media/AudioTrackPrivateRemote.h:
- WebProcess/GPU/media/MediaPlayerPrivateRemote.cpp:
(WebKit::MediaPlayerPrivateRemote::addRemoteAudioTrack):
(WebKit::MediaPlayerPrivateRemote::addRemoteTextTrack):
(WebKit::MediaPlayerPrivateRemote::addRemoteVideoTrack):
- WebProcess/GPU/media/TextTrackPrivateRemote.cpp:
(WebKit::TextTrackPrivateRemote::TextTrackPrivateRemote):
(WebKit::TextTrackPrivateRemote::setMode):
- WebProcess/GPU/media/TextTrackPrivateRemote.h:
- WebProcess/GPU/media/VideoTrackPrivateRemote.cpp:
(WebKit::VideoTrackPrivateRemote::VideoTrackPrivateRemote):
(WebKit::VideoTrackPrivateRemote::setSelected):
- WebProcess/GPU/media/VideoTrackPrivateRemote.h:
(WebKit::VideoTrackPrivateRemote::create):
LayoutTests:
- gpu-process/TestExpectations:
- 12:14 PM Changeset in webkit [272599] by
-
- 2 edits in trunk/Source/WebKit
Unreviewed, fix build with the latest SDK.
- UIProcess/ios/forms/WKFormColorControl.mm:
(-[WKColorPicker selectColor:]):
- 11:53 AM Changeset in webkit [272598] by
-
- 19 edits in branches/safari-611.1.14.0-branch/Source
Cherry-pick r272550. rdar://problem/74151949
Make the UserContentController for ServiceWorker pages be non-optional.
<rdar://problem/71434565> and https://bugs.webkit.org/show_bug.cgi?id=221503
Reviewed by Alex Christensen.
Source/WebCore:
- loader/EmptyClients.cpp: (WebCore::pageConfigurationWithEmptyClients):
- page/Page.cpp: (WebCore::Page::Page):
- page/PageConfiguration.cpp: (WebCore::PageConfiguration::PageConfiguration):
- page/PageConfiguration.h:
Source/WebKit:
Normal Pages always have a UserContentProvider, even if they just create an empty default one.
Same should be true for ServiceWorkers.
- Shared/ServiceWorkerInitializationData.cpp: (WebKit::ServiceWorkerInitializationData::decode):
- Shared/ServiceWorkerInitializationData.h:
- UIProcess/WebProcessPool.cpp: (WebKit::WebProcessPool::userContentControllerIdentifierForServiceWorkers): (WebKit::WebProcessPool::createWebPage):
- UIProcess/WebProcessPool.h:
- UIProcess/WebProcessProxy.cpp: (WebKit::WebProcessProxy::enableServiceWorkers):
- UIProcess/WebProcessProxy.h:
- WebProcess/Storage/WebSWContextManagerConnection.cpp: (WebKit::m_userContentController): (WebKit::m_userAgent): Deleted.
- WebProcess/Storage/WebSWContextManagerConnection.h:
- WebProcess/WebPage/WebPage.cpp: (WebKit::m_limitsNavigationsToAppBoundDomains):
Source/WebKitLegacy/mac:
- WebView/WebView.mm: (-[WebView _commonInitializationWithFrameName:groupName:]):
Source/WebKitLegacy/win:
- WebView.cpp: (WebView::initWithFrame):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@272550 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 11:25 AM Changeset in webkit [272597] by
-
- 24 edits2 adds2 deletes in trunk
[iOS][FCR] Use UIColorPickerViewController for color inputs
https://bugs.webkit.org/show_bug.cgi?id=221572
<rdar://problem/72183130>
Reviewed by Sam Weinig.
Source/WebCore:
- html/HTMLInputElement.h:
Export function so it can be called from WebKit layer.
Source/WebKit:
UIColorPickerViewController was added in iOS 14, while WebKit still
uses a custom color picker. To stay consistent with the rest of the
platform, this patch drops the custom color picker and adopts
UIColorPickerViewController for <input type=color> on iOS.
Test: fast/forms/ios/choose-color-from-color-picker.html
- Platform/spi/ios/UIKitSPI.h:
Added SPI declarations for _UISheetPresentationController and
UIColorPickerViewController.
- Shared/FocusedElementInformation.cpp:
(WebKit::FocusedElementInformation::encode const):
(WebKit::FocusedElementInformation::decode):
- Shared/FocusedElementInformation.h:
Added colorValue member to avoid parsing the input's value
in the UIProcess.
- SourcesCocoa.txt:
- UIProcess/API/ios/WKWebViewPrivateForTestingIOS.h:
- UIProcess/API/ios/WKWebViewTestingIOS.mm:
(-[WKWebView setSelectedColorForColorPicker:]):
- UIProcess/ios/WKContentViewInteraction.h:
- UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView _shouldShowAutomaticKeyboardUIIgnoringInputMode]):
(-[WKContentView _elementTypeRequiresAccessoryView:]):
The new color picker does not appear as a keyboard input view.
(-[WKContentView updateFocusedElementValueAsColor:]):
(-[WKContentView setSelectedColorForColorPicker:]):
- UIProcess/ios/forms/WKFormColorControl.h:
- UIProcess/ios/forms/WKFormColorControl.mm:
(-[WKColorPicker initWithView:]):
(-[WKColorPicker selectColor:]):
Note that the delegate method is not called when programmatically
setting the selected color.
(-[WKColorPicker focusedElementSuggestedColors]):
Suggested colors from a <datalist> element are displayed in the
favorites view.
(-[WKColorPicker updateColorPickerState]):
(-[WKColorPicker configurePresentation]):
On iPad, the color picker is displayed a popover. On iPhone, the picker
is displayed as a half-sheet, and can be dragged up into a fullscreen
view.
(-[WKColorPicker controlBeginEditing]):
(-[WKColorPicker controlEndEditing]):
(-[WKColorPicker presentationControllerDidDismiss:]):
(-[WKColorPicker colorPickerViewControllerDidSelectColor:]):
(-[WKColorPicker colorPickerViewControllerDidFinish:]):
(-[WKFormColorControl initWithView:]):
(-[WKFormColorControl selectColor:]):
- UIProcess/ios/forms/WKFormColorPicker.h: Removed.
- UIProcess/ios/forms/WKFormColorPicker.mm: Removed.
- UIProcess/ios/forms/WKFormSelectPicker.h:
Build fix.
- WebKit.xcodeproj/project.pbxproj:
- WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::getFocusedElementInformation):
Tools:
Added UIScriptController hooks to simulate selecting a color on the
new color picker.
- TestRunnerShared/UIScriptContext/Bindings/UIScriptController.idl:
- TestRunnerShared/UIScriptContext/UIScriptController.h:
(WTR::UIScriptController::setSelectedColorForColorPicker):
- WebKitTestRunner/ios/UIScriptControllerIOS.h:
- WebKitTestRunner/ios/UIScriptControllerIOS.mm:
(WTR::UIScriptControllerIOS::setSelectedColorForColorPicker):
LayoutTests:
Added a test which displays the new color picker and verifies that
selecting a color updates the corresponding input's value.
- fast/forms/color/color-input-activate-crash.html:
Replaced call to activateElementAndWaitForInputSession with
activateElement and ensurePresentationUpdate, since tapping on a
color input no longer presents a keyboard input view.
- fast/forms/ios/choose-color-from-color-picker-expected.txt: Added.
- fast/forms/ios/choose-color-from-color-picker.html: Added.
- resources/ui-helper.js:
(UIHelper.setSelectedColorForColorPicker):
- 10:50 AM Changeset in webkit [272596] by
-
- 19 edits in branches/safari-611.1.14.1-branch/Source
Cherry-pick r272550. rdar://problem/74146102
Make the UserContentController for ServiceWorker pages be non-optional.
<rdar://problem/71434565> and https://bugs.webkit.org/show_bug.cgi?id=221503
Reviewed by Alex Christensen.
Source/WebCore:
- loader/EmptyClients.cpp: (WebCore::pageConfigurationWithEmptyClients):
- page/Page.cpp: (WebCore::Page::Page):
- page/PageConfiguration.cpp: (WebCore::PageConfiguration::PageConfiguration):
- page/PageConfiguration.h:
Source/WebKit:
Normal Pages always have a UserContentProvider, even if they just create an empty default one.
Same should be true for ServiceWorkers.
- Shared/ServiceWorkerInitializationData.cpp: (WebKit::ServiceWorkerInitializationData::decode):
- Shared/ServiceWorkerInitializationData.h:
- UIProcess/WebProcessPool.cpp: (WebKit::WebProcessPool::userContentControllerIdentifierForServiceWorkers): (WebKit::WebProcessPool::createWebPage):
- UIProcess/WebProcessPool.h:
- UIProcess/WebProcessProxy.cpp: (WebKit::WebProcessProxy::enableServiceWorkers):
- UIProcess/WebProcessProxy.h:
- WebProcess/Storage/WebSWContextManagerConnection.cpp: (WebKit::m_userContentController): (WebKit::m_userAgent): Deleted.
- WebProcess/Storage/WebSWContextManagerConnection.h:
- WebProcess/WebPage/WebPage.cpp: (WebKit::m_limitsNavigationsToAppBoundDomains):
Source/WebKitLegacy/mac:
- WebView/WebView.mm: (-[WebView _commonInitializationWithFrameName:groupName:]):
Source/WebKitLegacy/win:
- WebView.cpp: (WebView::initWithFrame):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@272550 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 10:50 AM Changeset in webkit [272595] by
-
- 3 edits in branches/safari-611.1.14.1-branch/Source/WebCore
Cherry-pick r272439. rdar://problem/74146132
[Cocoa] CRASH in MediaPlayerPrivateMediaSourceAVFObjC::removeAudioRenderer()
https://bugs.webkit.org/show_bug.cgi?id=221490
<rdar://73966316>
Reviewed by Eric Carlson.
Add null-checks to every use of player() in SourceBufferPrivateAVFObjC.
- platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.h:
- platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm: (WebCore::SourceBufferPrivateAVFObjC::didParseInitializationData): (WebCore::SourceBufferPrivateAVFObjC::willProvideContentKeyRequestInitializationDataForTrackID): (WebCore::SourceBufferPrivateAVFObjC::didProvideContentKeyRequestInitializationDataForTrackID): (WebCore::SourceBufferPrivateAVFObjC::appendCompleted): (WebCore::SourceBufferPrivateAVFObjC::destroyParser): (WebCore::SourceBufferPrivateAVFObjC::destroyRenderers): (WebCore::SourceBufferPrivateAVFObjC::readyState const): (WebCore::SourceBufferPrivateAVFObjC::setReadyState): (WebCore::SourceBufferPrivateAVFObjC::trackDidChangeEnabled): (WebCore::SourceBufferPrivateAVFObjC::flushVideo): (WebCore::SourceBufferPrivateAVFObjC::enqueueSample): (WebCore::SourceBufferPrivateAVFObjC::bufferWasConsumed): (WebCore::SourceBufferPrivateAVFObjC::setDecompressionSession): (WebCore::SourceBufferPrivateAVFObjC::player const):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@272439 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 10:50 AM Changeset in webkit [272594] by
-
- 3 edits1 add in branches/safari-611.1.14.1-branch
Cherry-pick r271571. rdar://problem/74146017
[JSC] FTL OSR entry FlushFormat array is reversed
https://bugs.webkit.org/show_bug.cgi?id=220695
<rdar://problem/72930932>
Reviewed by Mark Lam.
JSTests:
- stress/ftl-osr-entry-order-reverse.js: Added. (shouldThrow): (foo):
Source/JavaScriptCore:
After r268783, FlushFormat array is erroneously sorted in reversed order.
This patch fixes that.
- ftl/FTLLowerDFGToB3.cpp: (JSC::FTL::DFG::LowerDFGToB3::lower):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@271571 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 10:44 AM Changeset in webkit [272593] by
-
- 3 edits1 add in branches/safari-611.1.14.0-branch
Cherry-pick r271571. rdar://problem/74145979
[JSC] FTL OSR entry FlushFormat array is reversed
https://bugs.webkit.org/show_bug.cgi?id=220695
<rdar://problem/72930932>
Reviewed by Mark Lam.
JSTests:
- stress/ftl-osr-entry-order-reverse.js: Added. (shouldThrow): (foo):
Source/JavaScriptCore:
After r268783, FlushFormat array is erroneously sorted in reversed order.
This patch fixes that.
- ftl/FTLLowerDFGToB3.cpp: (JSC::FTL::DFG::LowerDFGToB3::lower):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@271571 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 10:38 AM Changeset in webkit [272592] by
-
- 19 edits in trunk/Source/WebKit
Use CompletionHandler instead of DrawToPDFCallback
https://bugs.webkit.org/show_bug.cgi?id=220120
Reviewed by Chris Dumez.
Along the way I made all asynchronous message replies use 8 fewer bytes by using the destination ID for the listener ID
instead of encoding 0 as the destination ID and then encoding the listener ID. This was needed in order to make implementing
waitForAsyncCallbackAndDispatchImmediately possible, which looks at the destination IDs of incoming messages.
I also made it so that if we are just snapshotting the first page, we don't send a synchronous message because we already know the page count:
1!
- Platform/IPC/Connection.cpp:
(IPC::Connection::dispatchMessage):
- Platform/IPC/Connection.h:
(IPC::Connection::sendWithAsyncReply):
(IPC::Connection::waitForAndDispatchImmediately):
(IPC::Connection::waitForAsyncCallbackAndDispatchImmediately):
- Platform/IPC/HandleMessage.h:
(IPC::handleMessageAsync):
(IPC::handleMessageAsyncWantsConnection):
- Platform/IPC/JSIPCBinding.cpp:
(IPC::jsValueForDecodedArgumentValue):
- Platform/IPC/JSIPCBinding.h:
- Platform/IPC/MessageSender.h:
(IPC::MessageSender::sendWithAsyncReply):
- Scripts/webkit/messages.py:
- UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView createPDFWithConfiguration:completionHandler:]):
- UIProcess/AuxiliaryProcessProxy.h:
(WebKit::AuxiliaryProcessProxy::sendWithAsyncReply):
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::drawToPDF):
(WebKit::WebPageProxy::getLoadDecisionForIcon):
(WebKit::WebPageProxy::drawToPDFCallback): Deleted.
- UIProcess/WebPageProxy.h:
- UIProcess/WebPageProxy.messages.in:
- UIProcess/ios/WKContentView.mm:
(-[WKContentView _processDidExit]):
(-[WKContentView _wk_pageCountForPrintFormatter:]):
(-[WKContentView _waitForDrawToPDFCallback]):
(-[WKContentView _wk_printedDocument]):
- UIProcess/ios/WebPageProxyIOS.mm:
(WebKit::WebPageProxy::computePagesForPrintingAndDrawToPDF):
- WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::drawToPDF):
- WebProcess/WebPage/WebPage.h:
- WebProcess/WebPage/WebPage.messages.in:
- WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::computePagesForPrintingiOS):
(WebKit::WebPage::drawToPDFiOS):
(WebKit::WebPage::computePagesForPrintingAndDrawToPDF): Deleted.
- 10:35 AM Changeset in webkit [272591] by
-
- 8 edits in branches/safari-611.1.14.0-branch/Source
Versioning.
WebKit-7611.1.14.0.1
- 10:34 AM Changeset in webkit [272590] by
-
- 8 edits in branches/safari-611.1.14.1-branch/Source
Versioning.
WebKit-7611.1.14.1.1
- 10:33 AM Changeset in webkit [272589] by
-
- 2 edits in trunk/Source/WebCore
[Mac] Connect MediaSession with MediaRemote and NowPlaying
https://bugs.webkit.org/show_bug.cgi?id=221431
<rdar://problem/74000363>
Unreviewed, fix a layout test assert.
- Modules/mediasession/MediaSession.cpp:
(WebCore::platformCommandForMediaSessionAction): Map "skipad" to "nexttrack".
(WebCore::MediaSession::setActionHandler): Don't try to register media session actions
for which there is no platform command.
- 10:20 AM Changeset in webkit [272588] by
-
- 1 copy in branches/safari-611.1.14.1-branch
New branch.
- 10:19 AM Changeset in webkit [272587] by
-
- 1 copy in branches/safari-611.1.14.0-branch
New branch.
- 10:03 AM Changeset in webkit [272586] by
-
- 3 edits in trunk/Source/WebKit
[macOS] Deny mach-lookup to the fonts service
https://bugs.webkit.org/show_bug.cgi?id=221610
<rdar://problem/69168609>
Reviewed by Brent Fulgham.
By setting the Info.plist key CTIgnoreUserFonts to true, mach-lookup to the fonts service in the WebContent process can
be denied on macOS.
No new tests, covered by existing tests.
- WebProcess/EntryPoint/Cocoa/XPCService/WebContentService/Info-OSX.plist:
- WebProcess/com.apple.WebProcess.sb.in:
- 10:03 AM Changeset in webkit [272585] by
-
- 2 edits in trunk/Source/WebKit
[macOS] Deny mach-lookup to the service 'com.apple.trustd.agent'
https://bugs.webkit.org/show_bug.cgi?id=221611
<rdar://problem/68935818>
Reviewed by Brent Fulgham.
Deny mach-lookup to the service 'com.apple.trustd.agent' in the WebContent process on macOS.
- WebProcess/com.apple.WebProcess.sb.in:
- 9:57 AM Changeset in webkit [272584] by
-
- 6 edits2 adds in trunk
REGRESSION (r271660): Unable to interact with page after long-pressing image on images.google.com
https://bugs.webkit.org/show_bug.cgi?id=221584
<rdar://problem/74073581>
Reviewed by Andy Estes.
Source/WebKit:
After long pressing on an image with an active touchend event listener, it's possible to sometimes get stuck in
a state where further interaction with the page is impossible, due to all gesture recognizers (except for the
touchend deferral gestures) remaining in either Failed or Ended state.
When presenting the context menu with a long press, the touch event gesture transitions to Failed state due to
the active touch being cancelled. Normally, this invokes-_webTouchEventsRecognized:with all touch points
being released, which allows us to "lift" the deferred gesture gate by failing any deferring gesture recognizers
that are still in Possible state (i.e. deferring native gestures).
However, it's possible for touch deferring gestures (in particular, the touchend deferrer) introduced in r271660
to end (i.e. call-touchesEnded:withEvent:) before the touch event gesture gets a chance to call
-_webTouchEventsRecognized:. In this scenario, the touch end deferral gesture remains in Possible state, and
prevents the touch event gesture from subsequently firing its action (-_webTouchEventsRecognized:), presumably
because UIKit is waiting for all other gestures in the same subgraph as the touch event gesture recognizer to
Fail.
This effectively results in a gesture "deadlock", since the web touch event gesture recognizer won't call
-_webTouchEventsRecognized:until the touch end deferring gesture has failed, and the touch end deferring
gesture won't fail until-_webTouchEventsRecognized:is called. To fix this, we restore a bit of logic that
was removed with r271193, such that we allow our deferring gesture recognizers to transition to Failed state
underneath-touchesEnded:withEvent:, as long it's [1] not actively deferring any native gestures, and [2] the
web touch event gesture has already failed, so we aren't expecting a subsequent call to
-_webTouchEventsRecognized:until the deferring gesture has failed.
Note that this check for the touch event gesture recognizer's state (condition [2] above) is necessary to
prevent the touchend deferring gesture from failing prematurely (i.e. right before we're about to dispatch
preventabletouchendevents).
Test: fast/events/touch/ios/tap-after-long-press-on-image.html
- UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView _isTouchStartDeferringGesture:]):
(-[WKContentView _isTouchEndDeferringGesture:]):
(-[WKContentView deferringGestureRecognizer:didEndTouchesWithEvent:]):
Add a delegate hook when a deferring gesture's ends touches; use this hook in
WKContentViewto "lift" the
gesture gate if needed, in the case where the touch event gesture recognizer has already failed and we can't
expect-_webTouchEventsRecognized:to be called with all touch points released.
(-[WKContentView contextMenuInteraction:willEndForConfiguration:animator:]):
Add a missing call to
-[WKWebView _didDismissContextMenu]here to makeUIHelper.waitForContextMenuToHide()
actually work with image and link context menus in WebKitTestRunner.
- UIProcess/ios/WKDeferringGestureRecognizer.h:
- UIProcess/ios/WKDeferringGestureRecognizer.mm:
(-[WKDeferringGestureRecognizer touchesEnded:withEvent:]):
LayoutTests:
Add a new layout test that (sometimes) exercises the problem. Given the nature of the bug, it doesn't seem
possible to write a test that reproduces the bug 100% of the time. See WebKit ChangeLog for more details.
- fast/events/touch/ios/tap-after-long-press-on-image-expected.txt: Added.
- fast/events/touch/ios/tap-after-long-press-on-image.html: Added.
- resources/ui-helper.js:
(UIHelper.EventStreamBuilder.prototype.wait):
Add a helper to simply increment the time offset when building an event stream.
- 9:47 AM Changeset in webkit [272583] by
-
- 3 edits2 adds in trunk
MediaStream-backed video elements should not compute the mediaType based on track muted states
https://bugs.webkit.org/show_bug.cgi?id=221601
Reviewed by Eric Carlson.
Source/WebCore:
In case of entering background, two things happen:
- video elements get paused
- local video capture track gets muted
When entering foreground:
- video element should resume but did not as the local video track was muted and video element was considered as an audio element.
- local video capture track gets unmuted but this is too late.
To fix this, compute hasVideo/hasAudio based on available tracks, no matter their active state.
Test: fast/mediastream/MediaStream-video-element-enter-background.html
- platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.mm:
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::hasVideo const):
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::hasAudio const):
LayoutTests:
- fast/mediastream/MediaStream-video-element-enter-background-expected.txt: Added.
- fast/mediastream/MediaStream-video-element-enter-background.html: Added.
- 9:36 AM Changeset in webkit [272582] by
-
- 15 edits14 adds14 deletes in trunk/LayoutTests
[LayoutTests] Convert http/tests/inspector/ convert PHP to Python
https://bugs.webkit.org/show_bug.cgi?id=221140
<rdar://problem/73758592>
Patch by Chris Gambrell <Chris Gambrell> on 2021-02-09
Reviewed by Jonathan Bedard.
- http/tests/inspector/network/beacon-type.html:
- http/tests/inspector/network/fetch-response-body-304.html:
- http/tests/inspector/network/fetch-response-body.html:
- http/tests/inspector/network/intercept-request-properties-expected.txt:
- http/tests/inspector/network/intercept-request-properties.html:
- http/tests/inspector/network/ping-type.html:
- http/tests/inspector/network/resource-mime-type.html:
- http/tests/inspector/network/resource-request-headers.html:
- http/tests/inspector/network/resource-sizes-network.html:
- http/tests/inspector/network/resource-timing.html:
- http/tests/inspector/network/resources/404.php: Removed.
- http/tests/inspector/network/resources/404.py: Added.
- http/tests/inspector/network/resources/basic-auth.php: Removed.
- http/tests/inspector/network/resources/basic-auth.py: Added.
- http/tests/inspector/network/resources/beacon.php: Removed.
- http/tests/inspector/network/resources/beacon.py: Added.
- http/tests/inspector/network/resources/delay.php: Removed.
- http/tests/inspector/network/resources/delay.py: Added.
- http/tests/inspector/network/resources/echo.php: Removed.
- http/tests/inspector/network/resources/echo.py: Added.
- http/tests/inspector/network/resources/fetch-cachable.php: Removed.
- http/tests/inspector/network/resources/fetch-cachable.py: Added.
- http/tests/inspector/network/resources/gzipped-lorem-no-content-length.php: Removed.
- http/tests/inspector/network/resources/gzipped-lorem-no-content-length.py: Added.
- http/tests/inspector/network/resources/gzipped-lorem.php: Removed.
- http/tests/inspector/network/resources/gzipped-lorem.py: Added.
- http/tests/inspector/network/resources/intercept-echo.php: Removed.
- http/tests/inspector/network/resources/intercept-echo.py: Added.
- http/tests/inspector/network/resources/json.php: Removed.
- http/tests/inspector/network/resources/json.py: Added.
- http/tests/inspector/network/resources/ping.php: Removed.
- http/tests/inspector/network/resources/ping.py: Added.
- http/tests/inspector/network/resources/redirect.php: Removed.
- http/tests/inspector/network/resources/redirect.py: Added.
- http/tests/inspector/network/resources/x-frame-options.php: Removed.
- http/tests/inspector/network/resources/x-frame-options.py: Added.
- http/tests/inspector/network/x-frame-options-expected.txt:
- http/tests/inspector/network/x-frame-options.html:
- http/tests/inspector/network/xhr-response-body.html:
- http/tests/inspector/page/get-cookies.html:
- http/tests/inspector/page/resources/set-cookie.php: Removed.
- http/tests/inspector/page/resources/set-cookie.py: Added.
- 9:35 AM Changeset in webkit [272581] by
-
- 7 edits in trunk/Tools
[webkitscmpy] Correctly parse branch commits
https://bugs.webkit.org/show_bug.cgi?id=221609
<rdar://problem/74142906>
Rubber-stamped by Aakash Jain.
- Scripts/libraries/webkitscmpy/setup.py: Bump version.
- Scripts/libraries/webkitscmpy/webkitscmpy/init.py: Ditto.
- Scripts/libraries/webkitscmpy/webkitscmpy/local/git.py:
(Git.commit): Only respect the last revision in a commit message.
- Scripts/libraries/webkitscmpy/webkitscmpy/mocks/git-repo.json: Make one commit similar
to a cherry-pick.
- Scripts/libraries/webkitscmpy/webkitscmpy/remote/git_hub.py:
(GitHub.commit): Only respect the last revision in a commit message.
- Scripts/libraries/webkitscmpy/webkitscmpy/test/find_unittest.py:
(TestFind.test_hash): Change commit being tested since original commit would
resolve a revision.
- 8:39 AM BuildBot edited by
- (diff)
- 8:30 AM Changeset in webkit [272580] by
-
- 102 edits2 copies34 adds in trunk
[ESNext] Implement private methods
https://bugs.webkit.org/show_bug.cgi?id=194434
Reviewed by Filip Pizlo.
JSTests:
- stress/private-brand-installed-after-super-call-from-arrow-function.js: Added.
- stress/private-brand-installed-after-super-call-from-eval.js: Added.
- stress/private-method-brand-check.js: Added.
- stress/private-method-change-attribute-from-branded-structure.js: Added.
- stress/private-method-change-prototype-from-branded-structure.js: Added.
- stress/private-method-check-private-brand-ic.js: Added.
- stress/private-method-check-structure-miss.js: Added.
- stress/private-method-comparison.js: Added.
- stress/private-method-delete-property-from-branded-structure.js: Added.
- stress/private-method-extends-brand-check.js: Added.
- stress/private-method-get-and-call.js: Added.
- stress/private-method-invalid-multiple-brand-installation.js: Added.
- stress/private-method-invalidate-compiled-with-constant-symbol.js: Added.
- stress/private-method-nested-class.js: Added.
- stress/private-method-on-sealed-objects.js: Added.
- stress/private-method-on-uncacheable-dictionary.js: Added.
- stress/private-method-polymorphic-with-constant-symbol.js: Added.
- stress/private-method-set-brand-should-have-write-barrier.js: Added.
- stress/private-method-untyped-use.js: Added.
- stress/private-method-with-uncacheable-dictionary-transition.js: Added.
- stress/private-methods-inline-cache.js: Added.
- stress/private-methods-megamorphic-ic.js: Added.
- stress/private-methods-on-proxy.js: Added.
- stress/private-methods-poly-ic-multiple-classes.js: Added.
- stress/private-methods-poly-ic-single-class.js: Added.
- stress/private-names-available-on-direct-eval.js: Added.
- test262/config.yaml:
Source/JavaScriptCore:
This patch is adding support to private methods following the
specification on https://tc39.es/proposal-private-methods/.
This is introducing a new way to declare private methods on
class syntax. Private methods are only accessible within
classes they were declared, and only can be called from
objects that are instance of these classes.
To guarantee such rules, the proposal presents the concept of
Brand Check. During class evaluation, if a private method is present,
abrandis installed in this class. Every instance of such class
then gets this brand installed during[[Construct]]operation. It
means that an object can have multiple brands (e.g when there is also
private methods declared on super class). Before accessing a private
method, there is a check to validate if the target of the call has the
brand of callee method.
The brand check mechanism is implemented using a@privateBrand
stored on class scope. Here is a representation of how this mechanism
works:
`
class C {
#m() { return 3; }
method() { return this.#m(); }
}
let c = new C();
console.log(c.method()); prints 3
`
Generated bytecode for the following representation:
`
{ class lexical scope
const @privateBrand = @createPrivateSymbol();
const #m = function () { return 3; }
C.prototype.method = function() {
@check_private_brand(this, @privateBrand);
return #m.call(this);
}
C = function() {
@set_private_brand(this, @privateBrand);
}
}
let c = new C();
console.log(c.method()); prints 3
`
# Resolving correct brand to check
In the case of shadowing or nested scope, we need to emit brand
checks to the right private brand. See code below:
`
class C {
#m() { return 3; }
method() { return this.#m();}
A = class {
#m2() { return 3; }
foo(o) { return o.#m(); }
}
}
`
The call of "#m" in
foorefers to "C::#m". In such case, we need to
check C's private brand, instead of A's private brand.
To perform the proper check, we first resolve scope of "#m" and then
check the private brand of this scope (the scope where the private
method and brand are stored is the same).
So the bytecode to lookup the right brand is:
`
mov loc9, arg1
resolve_scope loc10, "#m"
get_from_scope loc11, loc10, "@privateBrand"
check_private_brand loc9, loc11
get_from_scope loc11, loc10, "#m"
setup call frame
call loc11, ...
...
`
# Brand check mechanism
We are introducing in this patch 2 new bytecodes to allow brand check
of objects:op_set_brandandop_check_brand.
op_set_brandsets a new brand in an object, so we can perform the brand
check later when accessing private methods. This operations throws when
trying to add the same brand twice in an Object.
op_check_brandchecks if the given object contains the brand we are
looking for. It traverses the brand chain to verify if the brand is
present, and throwsTypeErrorotherwise.
We are also introducing a subclass for Structure called BrandedStructure.
It is used to store brands and to allow brand check mechanism. BrandedStructure
stores a brand and a parent pointer to another BrandedStructure that allow
us traverse the brand chain. WithBrandedStructure, we can then
infer that a given object has the brand we are looking for just
checking its structureId. This is a very good optimization, since we can
reduce most of brand checks to structure checks.
We created a new kind of transition called
SetBrandthat happens when
op_set_brandis executed. This allow us to cache such kind of
trasitions on trasition table using the key `<brand->uid, 0,
TransitionKind::SetBrand>`. During this transition, we take previous
structure and apply one of the following rules:
- If it's a BrandedStructure, we then set it to
m_parentBrand, to allow proper brand chain check.
- If it's not a BrandedStructure, we set
m_parentBrandtonullptr, meaning that this is the first brand being added to the object with this structure.
For now, we are using the flag
isBrandedStructureto identify that a
given Structure is a BrandedStructure. This is done to avoid changes
on places where we are checking forvm.structureStructure().
However, if we ever need space on Structure, this flag is a good
candidate to be deleted and we can move to a solution that uses
vm.brandedStructureStructure();
# JIT Support
This patch also includes initial JIT support for
set_private_brand
andcheck_private_brand. On Baseline JIT, we are using
JITPravateBrandAccessGeneratorto support IC for both operands.
OnDFGByteCodeParserwe are trying to inline brand access whenever
possible, and fallbacking toSetPrivateBrandand
CheckPrivateBrandotherwise. Those nodes are not being optimized at
their full potential, but the code generated by them is also relying on
JITPrivateBrandAccessGeneratorto have IC support for both DFG and
FTL. During DFG parsing, we try to reduce those access toCheckIsConstant
andCheckStructure(withPutStructureforset_private_brandcases)
based on available profiled data. This is meant to make brand checks
almost free on DFG/FTL tiers when we have a single evaluation of a
class, since theCheckIsConstantcan be eliminated by the constant-folded
scope load, and theCheckStructureis very likely to be redundant
to any otherCheckStructurethat can be performed on receiver
when we have a finite structure set.
For instance, when we have a brand check on a path-of-no-return to
aGetByOffsetsequence on the same receiver, theCheckStructure
for the brand check will enable CSE of theCheckStructurethat
would happen for thatGetByOffset. Such design is possible because brand
checks supports polymorphic access very similr to what we have for
GetByOffsetsequences.
- CMakeLists.txt:
- JavaScriptCore.xcodeproj/project.pbxproj:
- Sources.txt:
- builtins/BuiltinExecutables.cpp:
(JSC::BuiltinExecutables::createDefaultConstructor):
(JSC::BuiltinExecutables::createExecutable):
- builtins/BuiltinExecutables.h:
We are adding a new parameter
PrivateBrandRequirementto propagate
when a default constructor needs to emit code to setup private brand
on instances.
- builtins/BuiltinNames.h:
Adding
@privateBrandthat we use to store private brand on
class's scope.
- bytecode/AccessCase.cpp:
(JSC::AccessCase::createCheckPrivateBrand):
(JSC::AccessCase::createSetPrivateBrand):
(JSC::AccessCase::requiresIdentifierNameMatch const):
(JSC::AccessCase::requiresInt32PropertyCheck const):
(JSC::AccessCase::needsScratchFPR const):
(JSC::AccessCase::forEachDependentCell const):
(JSC::AccessCase::doesCalls const):
(JSC::AccessCase::canReplace const):
(JSC::AccessCase::dump const):
(JSC::AccessCase::generateWithGuard):
(JSC::AccessCase::generateImpl):
- bytecode/AccessCase.h:
(JSC::AccessCase::structure const):
(JSC::AccessCase::newStructure const):
- bytecode/BytecodeList.rb:
- bytecode/BytecodeUseDef.cpp:
(JSC::computeUsesForBytecodeIndexImpl):
(JSC::computeDefsForBytecodeIndexImpl):
- bytecode/CheckPrivateBrandStatus.cpp: Added.
(JSC::CheckPrivateBrandStatus::appendVariant):
(JSC::CheckPrivateBrandStatus::computeForBaseline):
(JSC::CheckPrivateBrandStatus::CheckPrivateBrandStatus):
(JSC::CheckPrivateBrandStatus::computeForStubInfoWithoutExitSiteFeedback):
(JSC::CheckPrivateBrandStatus::computeFor):
(JSC::CheckPrivateBrandStatus::slowVersion const):
(JSC::CheckPrivateBrandStatus::merge):
(JSC::CheckPrivateBrandStatus::filter):
(JSC::CheckPrivateBrandStatus::singleIdentifier const):
(JSC::CheckPrivateBrandStatus::visitAggregate):
(JSC::CheckPrivateBrandStatus::markIfCheap):
(JSC::CheckPrivateBrandStatus::finalize):
(JSC::CheckPrivateBrandStatus::dump const):
- bytecode/CheckPrivateBrandStatus.h: Added.
- bytecode/CheckPrivateBrandVariant.cpp: Added.
(JSC::CheckPrivateBrandVariant::CheckPrivateBrandVariant):
(JSC::CheckPrivateBrandVariant::~CheckPrivateBrandVariant):
(JSC::CheckPrivateBrandVariant::attemptToMerge):
(JSC::CheckPrivateBrandVariant::markIfCheap):
(JSC::CheckPrivateBrandVariant::finalize):
(JSC::CheckPrivateBrandVariant::visitAggregate):
(JSC::CheckPrivateBrandVariant::dump const):
(JSC::CheckPrivateBrandVariant::dumpInContext const):
- bytecode/CheckPrivateBrandVariant.h: Added.
(JSC::CheckPrivateBrandVariant::structureSet const):
(JSC::CheckPrivateBrandVariant::structureSet):
(JSC::CheckPrivateBrandVariant::identifier const):
(JSC::CheckPrivateBrandVariant::overlaps):
- bytecode/CodeBlock.cpp:
(JSC::CodeBlock::finishCreation):
(JSC::CodeBlock::finalizeLLIntInlineCaches):
- bytecode/ExecutableInfo.h:
(JSC::ExecutableInfo::ExecutableInfo):
(JSC::ExecutableInfo::privateBrandRequirement const):
- bytecode/PolymorphicAccess.cpp:
(JSC::PolymorphicAccess::regenerate):
(WTF::printInternal):
- bytecode/RecordedStatuses.cpp:
(JSC::RecordedStatuses::operator=):
(JSC::RecordedStatuses::addCheckPrivateBrandStatus):
(JSC::RecordedStatuses::addSetPrivateBrandStatus):
(JSC::RecordedStatuses::visitAggregate):
(JSC::RecordedStatuses::markIfCheap):
- bytecode/RecordedStatuses.h:
(JSC::RecordedStatuses::forEachVector):
- bytecode/SetPrivateBrandStatus.cpp: Added.
(JSC::SetPrivateBrandStatus::appendVariant):
(JSC::SetPrivateBrandStatus::computeForBaseline):
(JSC::SetPrivateBrandStatus::SetPrivateBrandStatus):
(JSC::SetPrivateBrandStatus::computeForStubInfoWithoutExitSiteFeedback):
(JSC::SetPrivateBrandStatus::computeFor):
(JSC::SetPrivateBrandStatus::slowVersion const):
(JSC::SetPrivateBrandStatus::merge):
(JSC::SetPrivateBrandStatus::filter):
(JSC::SetPrivateBrandStatus::singleIdentifier const):
(JSC::SetPrivateBrandStatus::visitAggregate):
(JSC::SetPrivateBrandStatus::markIfCheap):
(JSC::SetPrivateBrandStatus::finalize):
(JSC::SetPrivateBrandStatus::dump const):
- bytecode/SetPrivateBrandStatus.h: Added.
- bytecode/SetPrivateBrandVariant.cpp: Added.
(JSC::SetPrivateBrandVariant::SetPrivateBrandVariant):
(JSC::SetPrivateBrandVariant::~SetPrivateBrandVariant):
(JSC::SetPrivateBrandVariant::attemptToMerge):
(JSC::SetPrivateBrandVariant::markIfCheap):
(JSC::SetPrivateBrandVariant::finalize):
(JSC::SetPrivateBrandVariant::visitAggregate):
(JSC::SetPrivateBrandVariant::dump const):
(JSC::SetPrivateBrandVariant::dumpInContext const):
- bytecode/SetPrivateBrandVariant.h: Added.
(JSC::SetPrivateBrandVariant::oldStructure const):
(JSC::SetPrivateBrandVariant::newStructure const):
(JSC::SetPrivateBrandVariant::identifier const):
(JSC::SetPrivateBrandVariant::overlaps):
- bytecode/StructureStubInfo.cpp:
(JSC::StructureStubInfo::reset):
- bytecode/StructureStubInfo.h:
- bytecode/UnlinkedCodeBlock.cpp:
(JSC::UnlinkedCodeBlock::UnlinkedCodeBlock):
- bytecode/UnlinkedCodeBlock.h:
(JSC::UnlinkedCodeBlock::privateBrandRequirement const):
- bytecode/UnlinkedCodeBlockGenerator.h:
(JSC::UnlinkedCodeBlockGenerator::privateBrandRequirement const):
- bytecode/UnlinkedFunctionExecutable.cpp:
(JSC::generateUnlinkedFunctionCodeBlock):
(JSC::UnlinkedFunctionExecutable::UnlinkedFunctionExecutable):
- bytecode/UnlinkedFunctionExecutable.h:
- bytecompiler/BytecodeGenerator.cpp:
(JSC::BytecodeGenerator::BytecodeGenerator):
We changed BytecodeGenerator for FunctionNode and EvalNode to
propagate parentScope PrivateNameEnvironment. These environments stores
private name entries that are visible into the scope of the
function/eval.
This is required to identify the kind of access a private name is
referring to, since it can be a private field or a private method.
(JSC::BytecodeGenerator::instantiateLexicalVariables):
(JSC::BytecodeGenerator::emitGetPrivateName):
(JSC::BytecodeGenerator::emitCreatePrivateBrand):
The process to create a private brand is as follows:
- Create a PrivateSymbol using
@createPrivateSymbol. - Store this symbol into a given scope (i.e class lexical scope)
on
@privateBrandvariable.
(JSC::BytecodeGenerator::emitInstallPrivateBrand):
(JSC::BytecodeGenerator::emitGetPrivateBrand):
We added
m_privateNamesStackto BytecodeGenerator to represent the
scope chain of available private names while generating bytecode.
(JSC::BytecodeGenerator::emitCheckPrivateBrand):
(JSC::BytecodeGenerator::isPrivateMethod):
(JSC::BytecodeGenerator::pushPrivateAccessNames):
(JSC::BytecodeGenerator::popPrivateAccessNames):
(JSC::BytecodeGenerator::getAvailablePrivateAccessNames):
(JSC::BytecodeGenerator::emitNewDefaultConstructor):
(JSC::BytecodeGenerator::emitNewClassFieldInitializerFunction):
(JSC::BytecodeGenerator::emitDirectGetByVal): Deleted.
- bytecompiler/BytecodeGenerator.h:
(JSC::BytecodeGenerator::privateBrandRequirement const):
(JSC::BytecodeGenerator::generate):
(JSC::BytecodeGenerator::makeFunction):
This change is required to properly propagate PrivateBrandRequirement
to arrow functions that can potentially callsuper().
- bytecompiler/NodesCodegen.cpp:
(JSC::PropertyListNode::emitDeclarePrivateFieldNames):
(JSC::PropertyListNode::emitBytecode):
(JSC::PropertyListNode::emitPutConstantProperty):
(JSC::BaseDotNode::emitGetPropertyValue):
Adding support to properly access private method. Since we store
private methods on class lexical scope, we need a different set of
instructions to access a private method.
(JSC::BaseDotNode::emitPutProperty):
In the case of we trying to write in a private method, we need to
throw a TypeError according to specification
(https://tc39.es/proposal-private-methods/#sec-privatefieldset).
(JSC::FunctionCallValueNode::emitBytecode):
(JSC::PostfixNode::emitDot):
(JSC::PrefixNode::emitDot):
(JSC::ClassExprNode::emitBytecode):
- debugger/DebuggerCallFrame.cpp:
(JSC::DebuggerCallFrame::evaluateWithScopeExtension):
- dfg/DFGAbstractInterpreterInlines.h:
(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):
(JSC::DFG::AbstractInterpreter<AbstractStateType>::filterICStatus):
- dfg/DFGArgumentsEliminationPhase.cpp:
- dfg/DFGByteCodeParser.cpp:
(JSC::DFG::ByteCodeParser::parseBlock):
- dfg/DFGCapabilities.cpp:
(JSC::DFG::capabilityLevel):
- dfg/DFGClobberize.h:
(JSC::DFG::clobberize):
- dfg/DFGClobbersExitState.cpp:
(JSC::DFG::clobbersExitState):
- dfg/DFGDoesGC.cpp:
(JSC::DFG::doesGC):
- dfg/DFGFixupPhase.cpp:
(JSC::DFG::FixupPhase::fixupNode):
- dfg/DFGGraph.h:
- dfg/DFGJITCompiler.cpp:
(JSC::DFG::JITCompiler::link):
- dfg/DFGJITCompiler.h:
(JSC::DFG::JITCompiler::addPrivateBrandAccess):
- dfg/DFGMayExit.cpp:
- dfg/DFGNode.h:
(JSC::DFG::Node::hasCheckPrivateBrandStatus):
(JSC::DFG::Node::checkPrivateBrandStatus):
(JSC::DFG::Node::hasSetPrivateBrandStatus):
(JSC::DFG::Node::setPrivateBrandStatus):
- dfg/DFGNodeType.h:
- dfg/DFGObjectAllocationSinkingPhase.cpp:
- dfg/DFGPredictionPropagationPhase.cpp:
- dfg/DFGSafeToExecute.h:
(JSC::DFG::safeToExecute):
- dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::compileCheckPrivateBrand):
(JSC::DFG::SpeculativeJIT::compileSetPrivateBrand):
- dfg/DFGSpeculativeJIT.h:
- dfg/DFGSpeculativeJIT32_64.cpp:
(JSC::DFG::SpeculativeJIT::compile):
- dfg/DFGSpeculativeJIT64.cpp:
(JSC::DFG::SpeculativeJIT::compile):
- dfg/DFGStoreBarrierInsertionPhase.cpp:
- dfg/DFGVarargsForwardingPhase.cpp:
- ftl/FTLCapabilities.cpp:
(JSC::FTL::canCompile):
- ftl/FTLLowerDFGToB3.cpp:
(JSC::FTL::DFG::LowerDFGToB3::compileNode):
(JSC::FTL::DFG::LowerDFGToB3::compilePrivateBrandAccess):
(JSC::FTL::DFG::LowerDFGToB3::compileCheckPrivateBrand):
(JSC::FTL::DFG::LowerDFGToB3::compileSetPrivateBrand):
- interpreter/Interpreter.cpp:
(JSC::eval):
- jit/JIT.cpp:
(JSC::JIT::privateCompileMainPass):
(JSC::JIT::privateCompileSlowCases):
(JSC::JIT::link):
- jit/JIT.h:
- jit/JITInlineCacheGenerator.cpp:
(JSC::JITPrivateBrandAccessGenerator::JITPrivateBrandAccessGenerator):
(JSC::JITPrivateBrandAccessGenerator::generateFastPath):
(JSC::JITPrivateBrandAccessGenerator::finalize):
- jit/JITInlineCacheGenerator.h:
(JSC::JITPrivateBrandAccessGenerator::JITPrivateBrandAccessGenerator):
(JSC::JITPrivateBrandAccessGenerator::slowPathJump const):
- jit/JITOperations.cpp:
(JSC::JSC_DEFINE_JIT_OPERATION):
(JSC::getPrivateName):
- jit/JITOperations.h:
- jit/JITPropertyAccess.cpp:
(JSC::JIT::emit_op_set_private_brand):
(JSC::JIT::emitSlow_op_set_private_brand):
(JSC::JIT::emit_op_check_private_brand):
(JSC::JIT::emitSlow_op_check_private_brand):
- jit/JITPropertyAccess32_64.cpp:
(JSC::JIT::emit_op_set_private_brand):
(JSC::JIT::emitSlow_op_set_private_brand):
(JSC::JIT::emit_op_check_private_brand):
(JSC::JIT::emitSlow_op_check_private_brand):
- jit/Repatch.cpp:
(JSC::tryCacheCheckPrivateBrand):
(JSC::repatchCheckPrivateBrand):
(JSC::tryCacheSetPrivateBrand):
(JSC::repatchSetPrivateBrand):
(JSC::resetCheckPrivateBrand):
(JSC::resetSetPrivateBrand):
- jit/Repatch.h:
- llint/LLIntSlowPaths.cpp:
(JSC::LLInt::LLINT_SLOW_PATH_DECL):
- llint/LLIntSlowPaths.h:
- llint/LowLevelInterpreter32_64.asm:
- llint/LowLevelInterpreter64.asm:
- parser/Nodes.cpp:
(JSC::FunctionMetadataNode::FunctionMetadataNode):
- parser/Nodes.h:
(JSC::BaseDotNode::isPrivateMember const):
(JSC::BaseDotNode::isPrivateField const): Deleted.
- parser/Parser.cpp:
(JSC::Parser<LexerType>::parseClass):
(JSC::Parser<LexerType>::parseMemberExpression):
- parser/Parser.h:
(JSC::Scope::declarePrivateMethod):
(JSC::Scope::declarePrivateField):
(JSC::Parser<LexerType>::parse):
(JSC::parse):
(JSC::Scope::declarePrivateName): Deleted.
- parser/ParserModes.h:
- parser/SyntaxChecker.h:
(JSC::SyntaxChecker::createDotAccess):
- parser/VariableEnvironment.cpp:
(JSC::VariableEnvironment::declarePrivateMethod):
- parser/VariableEnvironment.h:
(JSC::VariableEnvironmentEntry::isPrivateField const):
(JSC::VariableEnvironmentEntry::isPrivateMethod const):
(JSC::VariableEnvironmentEntry::setIsPrivateField):
(JSC::VariableEnvironmentEntry::setIsPrivateMethod):
(JSC::PrivateNameEntry::isMethod const):
(JSC::PrivateNameEntry::isPrivateMethodOrAcessor const):
(JSC::VariableEnvironment::addPrivateName):
(JSC::VariableEnvironment::declarePrivateField):
(JSC::VariableEnvironment::declarePrivateMethod):
(JSC::VariableEnvironment::privateNameEnvironment const):
(JSC::VariableEnvironment::hasPrivateMethodOrAccessor const):
(JSC::VariableEnvironment::addPrivateNamesFrom):
(JSC::VariableEnvironmentEntry::isPrivateName const): Deleted.
(JSC::VariableEnvironmentEntry::setIsPrivateName): Deleted.
(JSC::VariableEnvironment::declarePrivateName): Deleted.
- runtime/CachedTypes.cpp:
(JSC::CachedCodeBlockRareData::encode):
(JSC::CachedCodeBlockRareData::decode const):
(JSC::CachedFunctionExecutableRareData::encode):
(JSC::CachedFunctionExecutableRareData::decode const):
(JSC::CachedFunctionExecutable::privateBrandRequirement const):
(JSC::CachedCodeBlock::derivedContextType const):
(JSC::CachedFunctionExecutable::encode):
(JSC::UnlinkedFunctionExecutable::UnlinkedFunctionExecutable):
(JSC::CachedCodeBlock::needsClassFieldInitializer const): Deleted.
- runtime/CodeCache.cpp:
(JSC::generateUnlinkedCodeBlockImpl):
(JSC::generateUnlinkedCodeBlock):
(JSC::generateUnlinkedCodeBlockForDirectEval):
(JSC::CodeCache::getUnlinkedGlobalFunctionExecutable):
- runtime/CodeCache.h:
- runtime/DirectEvalExecutable.cpp:
(JSC::DirectEvalExecutable::create):
(JSC::DirectEvalExecutable::DirectEvalExecutable):
- runtime/DirectEvalExecutable.h:
- runtime/EvalExecutable.cpp:
(JSC::EvalExecutable::EvalExecutable):
- runtime/EvalExecutable.h:
(JSC::EvalExecutable::executableInfo const):
(JSC::EvalExecutable::privateBrandRequirement const):
- runtime/ExceptionHelpers.cpp:
(JSC::createInvalidPrivateNameError):
- runtime/IndirectEvalExecutable.cpp:
(JSC::IndirectEvalExecutable::IndirectEvalExecutable):
- runtime/JSObject.h:
- runtime/JSObjectInlines.h:
(JSC::JSObject::checkPrivateBrand):
(JSC::JSObject::setPrivateBrand):
- runtime/JSScope.cpp:
(JSC::JSScope::collectClosureVariablesUnderTDZ):
- runtime/JSScope.h:
- runtime/ModuleProgramExecutable.h:
- runtime/Options.cpp:
(JSC::Options::recomputeDependentOptions):
- runtime/OptionsList.h:
- runtime/ProgramExecutable.h:
- runtime/Structure.cpp:
(JSC::Structure::materializePropertyTable):
(JSC::BrandedStructure::BrandedStructure):
(JSC::BrandedStructure::create):
(JSC::BrandedStructure::checkBrand):
(JSC::Structure::setBrandTransitionFromExistingStructureImpl):
(JSC::Structure::setBrandTransitionFromExistingStructureConcurrently):
(JSC::Structure::setBrandTransition):
- runtime/Structure.h:
(JSC::Structure::finishCreation):
- runtime/StructureInlines.h:
(JSC::Structure::create):
(JSC::Structure::forEachPropertyConcurrently):
- runtime/StructureTransitionTable.h:
- runtime/SymbolTable.cpp:
(JSC::SymbolTable::cloneScopePart):
- runtime/SymbolTable.h:
- runtime/VM.cpp:
(JSC::VM::VM):
- runtime/VM.h:
- 7:03 AM Changeset in webkit [272579] by
-
- 2 edits in trunk/Source/WebCore
[LFC][IFC] canUseForText should also check if the space glyph comes from the primary font
https://bugs.webkit.org/show_bug.cgi?id=221592
Reviewed by Antti Koivisto.
Currently all the glyphs in the content have to come from the primary font, including the space.
(see fast/text/multiple-feature-properties.html)
- layout/integration/LayoutIntegrationCoverage.cpp:
(WebCore::LayoutIntegration::canUseForText):
- 6:56 AM Changeset in webkit [272578] by
-
- 3 edits in trunk/Source/WebCore
[LFC][IFC] Remove misleading TextUtil::fixedPitchWidth
https://bugs.webkit.org/show_bug.cgi?id=221581
Reviewed by Antti Koivisto.
Fonts lie about being monospaced. see webkit.org/b/162546
- layout/inlineformatting/text/TextUtil.cpp:
(WebCore::Layout::TextUtil::width):
(WebCore::Layout::TextUtil::fixedPitchWidth): Deleted.
- layout/inlineformatting/text/TextUtil.h:
- 6:53 AM Changeset in webkit [272577] by
-
- 2 edits in trunk/Tools
Allow icecream toolchain override in flatpakutils
https://bugs.webkit.org/show_bug.cgi?id=221605
Patch by Daniel Kolesa <Daniel Kolesa> on 2021-02-09
Reviewed by Philippe Normand.
This allows the user to specify a custom icecream toolchain.
Usually you will not want to do this, but it is useful e.g. when
you have a machine in your cluster that does not have a compiler
in the SDK. You can either force the whole version string by using
ICECC_VERSION_OVERRIDE, or append to the original string with
ICECC_VERSION_APPEND.
- flatpak/flatpakutils.py:
(WebkitFlatpak.run_in_sandbox):
- 6:08 AM Changeset in webkit [272576] by
-
- 2 edits in trunk/Tools
[GLIB] Geolocation API tests are flaky timeout instead of failure
Unreviewed test gardening.
- TestWebKitAPI/glib/TestExpectations.json:
- 6:03 AM Changeset in webkit [272575] by
-
- 2 edits in trunk/Source/WebKit
Unreviewed, tvOS build fix after r272573
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::requestUserMediaPermissionForSpeechRecognition): That ifdef was
updated by mistake in r272573.
- 5:12 AM Changeset in webkit [272574] by
-
- 16 edits4 adds in trunk
[GLib] Permission request API for MediaKeySystem access support
https://bugs.webkit.org/show_bug.cgi?id=221199
Reviewed by Carlos Garcia Campos.
Source/WebKit:
Expose a new Permission Request object to the public WPE and GTK APIs, allowing the
application to defer the decision of using a given EME MediaKeySystem to the user's
approval.
Covered by new API test.
- PlatformGTK.cmake:
- PlatformWPE.cmake:
- SourcesGTK.txt:
- SourcesWPE.txt:
- UIProcess/API/glib/WebKitMediaKeySystemPermissionRequest.cpp: Added.
(webkitMediaKeySystemPermissionRequestAllow):
(webkitMediaKeySystemPermissionRequestDeny):
(webkit_permission_request_interface_init):
(webkitMediaKeySystemPermissionRequestDispose):
(webkit_media_key_system_permission_request_class_init):
(webkitMediaKeySystemPermissionRequestCreate):
(webkit_media_key_system_permission_get_name):
- UIProcess/API/glib/WebKitMediaKeySystemPermissionRequestPrivate.h: Added.
- UIProcess/API/glib/WebKitUIClient.cpp:
- UIProcess/API/gtk/WebKitAutocleanups.h:
- UIProcess/API/gtk/WebKitMediaKeySystemPermissionRequest.h: Added.
- UIProcess/API/gtk/docs/webkit2gtk-4.0-sections.txt:
- UIProcess/API/gtk/docs/webkit2gtk-docs.sgml:
- UIProcess/API/gtk/webkit2.h:
- UIProcess/API/wpe/WebKitMediaKeySystemPermissionRequest.h: Added.
- UIProcess/API/wpe/docs/wpe-1.0-sections.txt:
- UIProcess/API/wpe/docs/wpe-docs.sgml:
Tools:
Added basic support for MediaKeySystem permission request to the GTK MiniBrowser, and a GLib
API unit-test as well.
- MiniBrowser/gtk/BrowserTab.c:
(permissionRequestDialogResponse):
(decidePermissionRequest):
(browser_tab_class_init):
- TestWebKitAPI/Tests/WebKitGLib/TestUIClient.cpp:
(testWebViewMediaKeySystemPermissionRequests):
(beforeAll):
- TestWebKitAPI/glib/WebKitGLib/WebViewTest.cpp:
(WebViewTest::initializeWebView):
- 4:46 AM Changeset in webkit [272573] by
-
- 38 edits19 adds in trunk
Permission request API for MediaKeySystem access support
https://bugs.webkit.org/show_bug.cgi?id=221187
Reviewed by Jer Noble.
Source/WebCore:
Support for user permission requesting when access to an EME MediaKeySystem is being
requested by the page. This is similar to the mediaDevices access guards.
Existing test media/encrypted-media/mock-MediaKeySystemAccess.html was updated to cover this
new code path and WPE/GTK API tests as well.
- CMakeLists.txt:
- Headers.cmake:
- Modules/encryptedmedia/MediaKeySystemClient.h: Added.
- Modules/encryptedmedia/MediaKeySystemController.cpp: Added.
(WebCore::MediaKeySystemController::supplementName):
(WebCore::MediaKeySystemController::MediaKeySystemController):
(WebCore::MediaKeySystemController::~MediaKeySystemController):
(WebCore::provideMediaKeySystemTo):
(WebCore::MediaKeySystemController::logRequestMediaKeySystemDenial):
- Modules/encryptedmedia/MediaKeySystemController.h: Added.
(WebCore::MediaKeySystemController::client const):
(WebCore::MediaKeySystemController::from):
(WebCore::MediaKeySystemController::requestMediaKeySystem):
(WebCore::MediaKeySystemController::cancelMediaKeySystemRequest):
- Modules/encryptedmedia/MediaKeySystemRequest.cpp: Added.
(WebCore::MediaKeySystemRequest::create):
(WebCore::MediaKeySystemRequest::MediaKeySystemRequest):
(WebCore::MediaKeySystemRequest::~MediaKeySystemRequest):
(WebCore::MediaKeySystemRequest::topLevelDocumentOrigin const):
(WebCore::MediaKeySystemRequest::start):
(WebCore::MediaKeySystemRequest::allow):
(WebCore::MediaKeySystemRequest::deny):
(WebCore::MediaKeySystemRequest::stop):
(WebCore::MediaKeySystemRequest::activeDOMObjectName const):
(WebCore::MediaKeySystemRequest::document const):
- Modules/encryptedmedia/MediaKeySystemRequest.h: Added.
(WebCore::MediaKeySystemRequest::setAllowCallback):
(WebCore::MediaKeySystemRequest::identifier const):
(WebCore::MediaKeySystemRequest::keySystem const):
- Modules/encryptedmedia/NavigatorEME.cpp:
(WebCore::NavigatorEME::requestMediaKeySystemAccess):
Source/WebKit:
Add new IPC and C API exposing MediaKeySystem access permissions to the UIProcess. At least
GTK/WPE would like to have API for asking permission to the user when EME's MediaKeyAccess
is being requested by a page. On Apple platforms the permission is granted by default until
a decision is made about supporting this in their APIUIClient.
- CMakeLists.txt:
- Headers.cmake:
- Platform/Logging.h:
- Shared/API/APIObject.h:
- Shared/API/c/WKBase.h:
- Sources.txt:
- UIProcess/API/APIUIClient.h:
(API::UIClient::decidePolicyForMediaKeySystemPermissionRequest):
- UIProcess/API/C/WKAPICast.h:
- UIProcess/API/C/WKMediaKeySystemPermissionCallback.cpp: Added.
(WKMediaKeySystemPermissionCallbackGetTypeID):
(WKMediaKeySystemPermissionCallbackComplete):
- UIProcess/API/C/WKMediaKeySystemPermissionCallback.h: Added.
- UIProcess/API/C/WKPage.cpp:
(WKPageSetPageUIClient):
- UIProcess/API/C/WKPageUIClient.h:
- UIProcess/MediaKeySystemPermissionRequest.h: Added.
(WebKit::MediaKeySystemPermissionRequest::create):
(WebKit::MediaKeySystemPermissionRequest::complete):
(WebKit::MediaKeySystemPermissionRequest::keySystem const):
(WebKit::MediaKeySystemPermissionRequest::MediaKeySystemPermissionRequest):
(WebKit::MediaKeySystemPermissionCallback::create):
(WebKit::MediaKeySystemPermissionCallback::complete):
(WebKit::MediaKeySystemPermissionCallback::MediaKeySystemPermissionCallback):
- UIProcess/MediaKeySystemPermissionRequestManagerProxy.cpp: Added.
(WebKit::MediaKeySystemPermissionRequestManagerProxy::MediaKeySystemPermissionRequestManagerProxy):
(WebKit::MediaKeySystemPermissionRequestManagerProxy::~MediaKeySystemPermissionRequestManagerProxy):
(WebKit::MediaKeySystemPermissionRequestManagerProxy::invalidatePendingRequests):
(WebKit::MediaKeySystemPermissionRequestManagerProxy::denyRequest):
(WebKit::MediaKeySystemPermissionRequestManagerProxy::grantRequest):
(WebKit::MediaKeySystemPermissionRequestManagerProxy::createRequestForFrame):
(WebKit::MediaKeySystemPermissionRequestManagerProxy::logChannel const):
(WebKit::MediaKeySystemPermissionRequestManagerProxy::logger const):
- UIProcess/MediaKeySystemPermissionRequestManagerProxy.h: Added.
(WebKit::MediaKeySystemPermissionRequestManagerProxy::page const):
(WebKit::MediaKeySystemPermissionRequestManagerProxy::denyRequest):
- UIProcess/MediaKeySystemPermissionRequestProxy.cpp: Added.
(WebKit::MediaKeySystemPermissionRequestProxy::MediaKeySystemPermissionRequestProxy):
(WebKit::MediaKeySystemPermissionRequestProxy::allow):
(WebKit::MediaKeySystemPermissionRequestProxy::deny):
(WebKit::MediaKeySystemPermissionRequestProxy::invalidate):
(WebKit::MediaKeySystemPermissionRequestProxy::doDefaultAction):
- UIProcess/MediaKeySystemPermissionRequestProxy.h: Added.
(WebKit::MediaKeySystemPermissionRequestProxy::create):
(WebKit::MediaKeySystemPermissionRequestProxy::isPending const):
(WebKit::MediaKeySystemPermissionRequestProxy::mediaKeySystemID const):
(WebKit::MediaKeySystemPermissionRequestProxy::mainFrameID const):
(WebKit::MediaKeySystemPermissionRequestProxy::frameID const):
(WebKit::MediaKeySystemPermissionRequestProxy::topLevelDocumentSecurityOrigin):
(WebKit::MediaKeySystemPermissionRequestProxy::topLevelDocumentSecurityOrigin const):
(WebKit::MediaKeySystemPermissionRequestProxy::keySystem const):
- UIProcess/SpeechRecognitionRemoteRealtimeMediaSource.h:
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::requestMediaKeySystemPermissionForFrame):
(WebKit::WebPageProxy::mediaKeySystemPermissionRequestManager):
(WebKit::WebPageProxy::requestMediaKeySystemPermissionByDefaultAction):
- UIProcess/WebPageProxy.h:
- UIProcess/WebPageProxy.messages.in:
- WebProcess/EncryptedMedia/MediaKeySystemPermissionRequestManager.cpp: Added.
(WebKit::MediaKeySystemPermissionRequestManager::MediaKeySystemPermissionRequestManager):
(WebKit::MediaKeySystemPermissionRequestManager::startMediaKeySystemRequest):
(WebKit::MediaKeySystemPermissionRequestManager::sendMediaKeySystemRequest):
(WebKit::MediaKeySystemPermissionRequestManager::cancelMediaKeySystemRequest):
(WebKit::MediaKeySystemPermissionRequestManager::mediaKeySystemWasGranted):
(WebKit::MediaKeySystemPermissionRequestManager::mediaKeySystemWasDenied):
- WebProcess/EncryptedMedia/MediaKeySystemPermissionRequestManager.h: Added.
- WebProcess/WebCoreSupport/WebMediaKeySystemClient.cpp: Added.
(WebKit::WebMediaKeySystemClient::WebMediaKeySystemClient):
(WebKit::WebMediaKeySystemClient::pageDestroyed):
(WebKit::WebMediaKeySystemClient::requestMediaKeySystem):
(WebKit::WebMediaKeySystemClient::cancelMediaKeySystemRequest):
- WebProcess/WebCoreSupport/WebMediaKeySystemClient.h: Added.
(WebKit::WebMediaKeySystemClient::~WebMediaKeySystemClient):
- WebProcess/WebPage/WebPage.cpp:
(WebKit::m_limitsNavigationsToAppBoundDomains):
(WebKit::WebPage::mediaKeySystemWasGranted):
(WebKit::WebPage::mediaKeySystemWasDenied):
- WebProcess/WebPage/WebPage.h:
(WebKit::WebPage::mediaKeySystemPermissionRequestManager):
- WebProcess/WebPage/WebPage.messages.in:
Tools:
Add support for setting the permission request response from the TestRunner, for usage within layout tests.
- WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl:
- WebKitTestRunner/InjectedBundle/TestRunner.cpp:
(WTR::TestRunner::setIsMediaKeySystemPermissionGranted):
- WebKitTestRunner/InjectedBundle/TestRunner.h:
- WebKitTestRunner/TestController.cpp:
(WTR::decidePolicyForMediaKeySystemPermissionRequest):
(WTR::TestController::completeMediaKeySystemPermissionCheck):
(WTR::TestController::setIsMediaKeySystemPermissionGranted):
(WTR::TestController::createWebViewWithOptions):
- WebKitTestRunner/TestController.h:
- WebKitTestRunner/TestInvocation.cpp:
(WTR::TestInvocation::didReceiveSynchronousMessageFromInjectedBundle):
LayoutTests:
Add basic coverage support for overriding the MediaKeySystem permission answer and thus have
the promise rejection tested in this case.
- media/encrypted-media/mock-MediaKeySystemAccess-expected.txt:
- media/encrypted-media/mock-MediaKeySystemAccess.html:
- 2:34 AM Changeset in webkit [272572] by
-
- 6 edits5 adds in trunk
Allow sending modifier keys in test_driver.send_keys()
https://bugs.webkit.org/show_bug.cgi?id=221466
Reviewed by Carlos Garcia Campos.
LayoutTests/imported/w3c:
Created new test that checks that modifier keys can be sent by test_driver.send_keys()
and properly handled on "keydown" event.
- web-platform-tests/resources/testdriver-vendor.js: Add modifier keys' codes.
- web-platform-tests/uievents/keyboard/modifier-keys-expected.txt: Added.
- web-platform-tests/uievents/keyboard/modifier-keys.html: Added.
Tools:
- WebKitTestRunner/gtk/EventSenderProxyGtk.cpp:
(WTR::getGDKKeySymForKeyRef): Add support for meta key.
LayoutTests:
Add specific -expected.txt file for Mac platform. Meta key is detected differently than in other platforms,
also event.ctrlKey and other are not being set from the test (they work fine when checking that manually).
- platform/ios/TestExpectations: Skip test as it's timing out in iOS.
- platform/mac/imported/w3c/web-platform-tests/uievents/keyboard/modifier-keys-expected.txt: Added.
- 2:30 AM Changeset in webkit [272571] by
-
- 3 edits in trunk/Source/WebCore
Rename XRWebGLLayer m_IscompositionDisabled to m_IscompositionEnabled
https://bugs.webkit.org/show_bug.cgi?id=221599
Patch by Imanol Fernandez <imanol> on 2021-02-09
Reviewed by Sergio Villar Senin.
The spec agreed to rename this to avoid double negations in code.
See https://github.com/immersive-web/webxr/pull/1172.
- Modules/webxr/WebXRWebGLLayer.cpp:
(WebCore::WebXRWebGLLayer::create):
(WebCore::WebXRWebGLLayer::WebXRWebGLLayer):
- Modules/webxr/WebXRWebGLLayer.h:
- 2:02 AM Changeset in webkit [272570] by
-
- 4 edits in trunk/Source/JavaScriptCore
[JSC] Make JSON.parse faster by using table for fast string parsing
https://bugs.webkit.org/show_bug.cgi?id=221593
Reviewed by Ryosuke Niwa and Geoffrey Garen.
We use Latin1 table for quickly checking whether a character is safe for the fast path string parsing in JSON.
This offers 1-3% improvement in Kraken json-parse-financial test.
- parser/Lexer.cpp:
(JSC::Lexer<T>::Lexer):
- runtime/LiteralParser.cpp:
(JSC::LiteralParser<CharType>::Lexer::lex):
(JSC::isSafeStringCharacter):
(JSC::LiteralParser<CharType>::Lexer::lexString):
- runtime/LiteralParser.h: