Timeline
Dec 9, 2021:
- 10:55 PM Changeset in webkit [286834] by
-
- 3 edits in trunk/Source/WebKit
Inspector "composite" events are all very short
https://bugs.webkit.org/show_bug.cgi?id=234114
<rdar://86299391>
Reviewed by Tim Horton.
The kCATransactionPhasePreCommit callbacks fire after painting, but we want the composite
time to include painting so use kCATransactionPhasePreLayout.
- WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.mm:
(WebKit::RemoteLayerTreeDrawingArea::addCommitHandlers):
- WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:
(WebKit::TiledCoreAnimationDrawingArea::addCommitHandlers):
- 10:24 PM Changeset in webkit [286833] by
-
- 2 edits in trunk/Source/WebKit
Fix the tvOS and watchOS builds after r286641
https://bugs.webkit.org/show_bug.cgi?id=234124
Unreviewed build fix.
- UIProcess/API/Cocoa/WKWebViewPrivate.h:
WKWebView does not conform to the protocol on watchOS/tvOS.
- 9:42 PM Changeset in webkit [286832] by
-
- 2 edits in trunk/Source/WebKit
Add ability to inject messages into webpushd
https://bugs.webkit.org/show_bug.cgi?id=233988
Unreviewed attempt to fix some builds.
- Configurations/webpushtool.xcconfig:
- 9:05 PM Changeset in webkit [286831] by
-
- 9 edits in trunk/Source
Add a new WKWebpagePreferences SPI for modal container observation policies
https://bugs.webkit.org/show_bug.cgi?id=234013
rdar://86219613
Reviewed by Brent Fulgham.
Source/WebCore:
Add a new website policy flag
ModalContainerObservationPolicy
. Refer to rdar://86219613 for more info.
- loader/DocumentLoader.h:
(WebCore::DocumentLoader::modalContainerObservationPolicy const):
(WebCore::DocumentLoader::setModalContainerObservationPolicy):
Source/WebKit:
Add a new website policy flag
ModalContainerObservationPolicy
, and expose it as SPI on WKWebpagePreferences.
Refer to rdar://86219613 for additional details.
- Shared/WebsitePoliciesData.cpp:
(WebKit::WebsitePoliciesData::encode const):
(WebKit::WebsitePoliciesData::decode):
(WebKit::WebsitePoliciesData::applyToDocumentLoader):
- Shared/WebsitePoliciesData.h:
- UIProcess/API/APIWebsitePolicies.cpp:
(API::WebsitePolicies::copy const):
(API::WebsitePolicies::data):
- UIProcess/API/APIWebsitePolicies.h:
- UIProcess/API/Cocoa/WKWebpagePreferences.mm:
(WebKit::modalContainerObservationPolicy):
(WebKit::coreModalContainerObservationPolicy):
(-[WKWebpagePreferences _setModalContainerObservationPolicy:]):
(-[WKWebpagePreferences _modalContainerObservationPolicy]):
- UIProcess/API/Cocoa/WKWebpagePreferencesPrivate.h:
- 8:48 PM Changeset in webkit [286830] by
-
- 2 edits in trunk/Source/WebKit
[Playstation] Fix build break after r286751 with INTELLIGENT_TRACKING_PREVENTION enabled
https://bugs.webkit.org/show_bug.cgi?id=234095
Patch by Jigen Zhou <jigen.zhou@sony.com> on 2021-12-09
Reviewed by Darin Adler.
Added a forward declaration of class ResourceError to NetworkSession.h to resolve
a compiling error. No new test is need since no behavior change is expected.
- NetworkProcess/NetworkSession.h:
- 8:46 PM Changeset in webkit [286829] by
-
- 12 edits1 delete in trunk/LayoutTests
[GLIB] Update test expectations and baselines. Unreviewed test gardening.
https://bugs.webkit.org/show_bug.cgi?id=234120
Patch by Arcady Goldmints-Orlov <Arcady Goldmints-Orlov> on 2021-12-09
- platform/glib/TestExpectations:
- platform/glib/fast/css/getComputedStyle/computed-style-expected.txt:
- platform/glib/fast/css/getComputedStyle/computed-style-without-renderer-expected.txt:
- platform/glib/imported/w3c/web-platform-tests/css/cssom-view/cssom-getBoundingClientRect-003-expected.txt:
- platform/gtk/imported/w3c/web-platform-tests/html/semantics/forms/constraints/form-validation-validity-rangeOverflow-expected.txt:
- platform/gtk/imported/w3c/web-platform-tests/html/semantics/forms/constraints/form-validation-validity-rangeUnderflow-expected.txt:
- platform/wpe/TestExpectations:
- platform/wpe/imported/w3c/web-platform-tests/css/cssom/getComputedStyle-detached-subtree-expected.txt:
- platform/wpe/imported/w3c/web-platform-tests/html/dom/reflection-embedded-expected.txt:
- platform/wpe/imported/w3c/web-platform-tests/html/dom/reflection-forms-expected.txt:
- platform/wpe/imported/w3c/web-platform-tests/html/dom/reflection-text-expected.txt:
- platform/wpe/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-stretchy-001-expected.txt: Removed.
- 8:31 PM Changeset in webkit [286828] by
-
- 2 edits in trunk/Source/WTF
Enable the CSS Contain property by default
https://bugs.webkit.org/show_bug.cgi?id=234020
<rdar://problem/86218835>
Reviewed by Brent Fulgham.
- Scripts/Preferences/WebPreferencesExperimental.yaml:
- 7:37 PM Changeset in webkit [286827] by
-
- 4 edits2 adds in trunk
Stack-overflow crash in WebCore::RenderBox::computeLogicalHeight()
https://bugs.webkit.org/show_bug.cgi?id=233460
Reviewed by Sergio Villar Senin and Darin Adler.
Source/WebCore:
Like flexibleBox item, deprecatedFlexibleBox item should call clearOverridingContentSize if
it is positioned. Otherwise, RenderReplaced::computeAspectRatioInformationForRenderBox might call
itself recursively.
Test: fast/css/deprecated-flex-box-with-min-content-crashes.html
- rendering/RenderBox.cpp:
(WebCore::RenderBox::styleDidChange):
- rendering/style/RenderStyle.h:
(WebCore::RenderStyle::isDisplayFlexibleOrGridBoxIncludingDeprecated const):
(WebCore::RenderStyle::isDisplayDeprecatedFlexibleBox):
LayoutTests:
- fast/css/deprecated-flex-box-with-min-content-crashes-expected.txt: Added.
- fast/css/deprecated-flex-box-with-min-content-crashes.html: Added.
- 7:16 PM Changeset in webkit [286826] by
-
- 2 edits in branches/safari-612-branch/LayoutTests
REGRESSION(r285452-r285595):[ Monterey Release ] 2 accessibility (layout-tests) are constant text failures
<rdar://problem/86302643>
Unreviewed test gardening.
- platform/mac-wk2/TestExpectations:
- 7:08 PM Changeset in webkit [286825] by
-
- 40 edits in trunk/Source
Add a
DOMPasteAccessCategory
to control which pasteboard the WebProcess is granted access to when pasting
https://bugs.webkit.org/show_bug.cgi?id=233939
Reviewed by Wenson Hsieh.
Implementing
-pasteFont:
<https://webkit.org/b/191379> requires that we read from the font
pasteboard instead of the general pasteboard. In order to allow web content to trigger this
(e.g.document.execCommand("PasteFont"))
) we must have a way for the WebProcess to signal
that it wishes to read from the font pasteboard instead of the general pasteboard. As such,
create and pass along aDOMPasteAccessCategory
torequestDOMPasteAccess
.
No change in behavior.
Source/WebCore:
- dom/DOMPasteAccess.h:
Create
DOMPasteAccessCategory
.
- page/EditorClient.h:
- page/Frame.h:
- page/Frame.cpp:
(WebCore::Frame::requestDOMPasteAccess):
- loader/EmptyClients.cpp:
(WebCore::EmptyEditorClient::requestDOMPasteAccess):
Pass along theDOMPasteAccessCategory
.
Source/WebKit:
- Scripts/webkit/messages.py:
(headers_for_type):
Indicate which header is associated withDOMPasteAccessCategory
.
- UIProcess/Cocoa/WebViewImpl.h:
- UIProcess/Cocoa/WebViewImpl.mm:
(-[WKDOMPasteMenuDelegate initWithWebViewImpl:pasteAccessCategory:]): Added.
(-[WKDOMPasteMenuDelegate menuDidClose:]):
(-[WKDOMPasteMenuDelegate _web_grantDOMPasteAccess]): Added.
(WebKit::WebViewImpl::handleProcessSwapOrExit):
(WebKit::pasteboardNameForAccessCategory): Added.
(WebKit::pasteboardForAccessCategory): Added.
(WebKit::WebViewImpl::requestDOMPasteAccess):
(WebKit::WebViewImpl::handleDOMPasteRequestForCategoryWithResult):
(WebKit::WebViewImpl::hideDOMPasteMenuWithResult): Added.
(-[WKDOMPasteMenuDelegate initWithWebViewImpl:]): Deleted.
(WebKit::WebViewImpl::handleDOMPasteRequestWithResult): Deleted.
- UIProcess/API/mac/WKView.mm:
(-[WKView _web_grantDOMPasteAccess]): Deleted.
- UIProcess/API/mac/WKWebViewMac.mm:
(-[WKWebView _web_grantDOMPasteAccess]): Deleted.
Pass theDOMPasteAccessCategory
to theWKDOMPasteMenuDelegate
and use it as thetarget
of theNSMenuItem
so that we can pass along theDOMPasteAccessCategory
in theaction
.
- UIProcess/ios/WKContentViewInteraction.h:
- UIProcess/ios/WKContentViewInteraction.mm:
(pasteboardNameForAccessCategory): Added.
(pasteboardForAccessCategory): Added.
(-[WKContentView _handleDOMPasteRequestWithResult:]):
(-[WKContentView _requestDOMPasteAccessForCategory:elementRect:originIdentifier:completionHandler:]): Added.
(-[WKContentView _requestDOMPasteAccessWithElementRect:originIdentifier:completionHandler:]): Deleted.
- UIProcess/PageClient.h:
- UIProcess/API/gtk/PageClientImpl.h:
- UIProcess/API/gtk/PageClientImpl.cpp:
(WebKit::PageClientImpl::requestDOMPasteAccess):
- UIProcess/API/wpe/PageClientImpl.h:
- UIProcess/API/wpe/PageClientImpl.cpp:
(WebKit::PageClientImpl::requestDOMPasteAccess):
- UIProcess/ios/PageClientImplIOS.h:
- UIProcess/ios/PageClientImplIOS.mm:
(WebKit::PageClientImpl::requestDOMPasteAccess):
- UIProcess/mac/PageClientImplMac.h:
- UIProcess/mac/PageClientImplMac.mm:
(WebKit::PageClientImpl::requestDOMPasteAccess):
- UIProcess/playstation/PageClientImpl.h:
- UIProcess/playstation/PageClientImpl.cpp:
(WebKit::PageClientImpl::requestDOMPasteAccess):
- UIProcess/win/PageClientImpl.h:
- UIProcess/win/PageClientImpl.cpp:
(WebKit::PageClientImpl::requestDOMPasteAccess):
- WebProcess/WebCoreSupport/WebEditorClient.h:
- WebProcess/WebCoreSupport/WebEditorClient.cpp:
(WebKit::WebEditorClient::requestDOMPasteAccess):
- WebProcess/WebPage/WebPage.h:
- WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::requestDOMPasteAccess):
Pass along theDOMPasteAccessCategory
.
- UIProcess/WebPageProxy.messages.in:
- UIProcess/WebPageProxy.h:
- UIProcess/WebPageProxy.cpp:
(WebKit::pasteAccessCategoryForCommand): Added.
(WebKit::WebPageProxy::executeEditCommand):
(WebKit::WebPageProxy::requestDOMPasteAccess):
(WebKit::WebPageProxy::willPerformPasteCommand):
(WebKit::isPasteCommandName): Deleted.
- UIProcess/ios/WebPageProxyIOS.mm:
(WebKit::WebPageProxy::willPerformPasteCommand):
- UIProcess/mac/WebPageProxyMac.mm:
(WebKit::WebPageProxy::willPerformPasteCommand)
Create a mapping between paste command name andDOMPasteAccessCategory
.
Source/WebKitLegacy/mac:
- WebCoreSupport/WebEditorClient.h:
(WebEditorClient::requestDOMPasteAccess):
Source/WebKitLegacy/win:
- WebCoreSupport/WebEditorClient.h:
(WebEditorClient::requestDOMPasteAccess):
- 6:38 PM Changeset in webkit [286824] by
-
- 16 edits in trunk/Source
[GPU Process] [Filters] Add the encoding and decoding for FEImage
https://bugs.webkit.org/show_bug.cgi?id=234099
Reviewed by Wenson Hsieh.
Source/WebCore:
FEImage needs to encode and decode the RenderingResourceIdentifier of the
Image or the ImageBuffer of its SourceImage.
A new type 'RenderingResourceIdentifier' is added to FEImage::SourceImage
variant. This going to be used while transferring the FEImage from
WebProcess to GPUProcess.
Record-using the Image or ImageBuffer of FEImage::SourceImage has to
happen in Recorder::drawFilteredImageBuffer() since this is the place we
can send messages to GPUProcess.
Resolving RenderingResourceIdentifier of FEImage::SourceImage back to an
Image or an ImageBuffer has to happen in RemoteDisplayListRecorder::
drawFilteredImageBuffer before handling the item DrawFilteredImageBuffer.
Because of the two restrictions above we have to provide the virtual
function Filter::effectsOfType() which is overridden by CSSFilter and
SVGFilter.
- Headers.cmake:
- WebCore.xcodeproj/project.pbxproj:
- platform/graphics/displaylists/DisplayListRecorder.cpp:
(WebCore::DisplayList::Recorder::drawFilteredImageBuffer):
- platform/graphics/filters/Filter.h:
- rendering/CSSFilter.cpp:
(WebCore::CSSFilter::effectsOfType const):
- rendering/CSSFilter.h:
- svg/SVGPreserveAspectRatioValue.cpp:
(WebCore::SVGPreserveAspectRatioValue::SVGPreserveAspectRatioValue):
- svg/SVGPreserveAspectRatioValue.h:
(WebCore::SVGPreserveAspectRatioValue::encode const):
(WebCore::SVGPreserveAspectRatioValue::decode):
- svg/graphics/filters/SVGFEImage.cpp:
(WebCore::FEImage::calculateImageRect const):
(WebCore::FEImageSoftwareApplier::apply const):
- svg/graphics/filters/SVGFEImage.h:
(WebCore::FEImage::encode const):
(WebCore::FEImage::decode):
- svg/graphics/filters/SVGFilter.cpp:
(WebCore::SVGFilter::effectsOfType const):
- svg/graphics/filters/SVGFilter.h:
Source/WebKit:
Add the support to encode and decode the FEImage through FilterReference.
The RenderingResourceIdentifier of the Image or the ImageBuffer will be
used while encoding and decoding the FEImage. Resolving the decoded
RenderingResourceIdentifier back to an Image or ImageBuffer will happen
in RemoteDisplayListRecorder::drawFilteredImageBuffer).
- GPUProcess/graphics/RemoteDisplayListRecorder.cpp:
(WebKit::RemoteDisplayListRecorder::drawFilteredImageBuffer):
- Platform/IPC/FilterReference.h:
(IPC::FilterReference::encodeFilterEffect):
(IPC::FilterReference::decodeFilterEffect):
- 6:16 PM Changeset in webkit [286823] by
-
- 10 edits in trunk
[iOS] Add SPI to enable find interactions on WKWebView
https://bugs.webkit.org/show_bug.cgi?id=234017
rdar://86140542
Reviewed by Wenson Hsieh.
Source/WebKit:
- Platform/spi/ios/UIKitSPI.h:
- UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _initializeWithConfiguration:]):
- UIProcess/API/Cocoa/WKWebViewInternal.h:
- UIProcess/API/Cocoa/WKWebViewPrivate.h:
- UIProcess/API/ios/WKWebViewIOS.mm:
(-[WKWebView _findInteractionEnabled]):
(-[WKWebView _setFindInteractionEnabled:]):
Make the contentView the searchableObject, rather than self (the WKWebView)
to avoid a retain cycle.
(-[WKWebView _findInteraction]):
(-[WKWebView offsetFromPosition:toPosition:inDocument:]):
(-[WKWebView decorateFoundTextRange:inDocument:usingStyle:]):
- UIProcess/ios/WKContentViewInteraction.h:
Make WKContentView conform to _UITextSearching so that it can be set as
the interaction's searchableObject.
- UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView decorateFoundTextRange:inDocument:usingStyle:]):
(-[WKContentView offsetFromPosition:toPosition:inDocument:]):
(-[WKContentView decorateFoundTextRange:usingStyle:]): Deleted.
Tools:
- TestWebKitAPI/Tests/WebKitCocoa/FindInPage.mm:
(TEST):
Test that the new SPI installs a _UIFindInteraction on the web view.
- 6:07 PM Changeset in webkit [286822] by
-
- 1 copy in tags/Safari-612.4.3
Tag Safari-612.4.3.
- 5:06 PM Changeset in webkit [286821] by
-
- 172 edits4 copies4 adds in trunk
Add basic support for launching a SharedWorker
https://bugs.webkit.org/show_bug.cgi?id=233895
Reviewed by Alex Christensen.
LayoutTests/imported/w3c:
Rebaseline WPT tests now that tests involving Shared Workers are actually running.
- web-platform-tests/content-security-policy/gen/top.http-rp/script-src-self/sharedworker-classic.http-expected.txt:
- web-platform-tests/content-security-policy/gen/top.http-rp/script-src-self/sharedworker-classic.https-expected.txt:
- web-platform-tests/content-security-policy/gen/top.http-rp/script-src-self/sharedworker-import-data.http-expected.txt:
- web-platform-tests/content-security-policy/gen/top.http-rp/script-src-self/sharedworker-import-data.https-expected.txt:
- web-platform-tests/content-security-policy/gen/top.http-rp/script-src-self/sharedworker-import.http-expected.txt:
- web-platform-tests/content-security-policy/gen/top.http-rp/script-src-self/sharedworker-import.https-expected.txt:
- web-platform-tests/content-security-policy/gen/top.http-rp/script-src-self/sharedworker-module.http-expected.txt:
- web-platform-tests/content-security-policy/gen/top.http-rp/script-src-self/sharedworker-module.https-expected.txt:
- web-platform-tests/content-security-policy/gen/top.http-rp/script-src-wildcard/sharedworker-classic.http-expected.txt:
- web-platform-tests/content-security-policy/gen/top.http-rp/script-src-wildcard/sharedworker-classic.https-expected.txt:
- web-platform-tests/content-security-policy/gen/top.http-rp/script-src-wildcard/sharedworker-import-data.http-expected.txt:
- web-platform-tests/content-security-policy/gen/top.http-rp/script-src-wildcard/sharedworker-import-data.https-expected.txt:
- web-platform-tests/content-security-policy/gen/top.http-rp/script-src-wildcard/sharedworker-import.http-expected.txt:
- web-platform-tests/content-security-policy/gen/top.http-rp/script-src-wildcard/sharedworker-import.https-expected.txt:
- web-platform-tests/content-security-policy/gen/top.http-rp/script-src-wildcard/sharedworker-module.http-expected.txt:
- web-platform-tests/content-security-policy/gen/top.http-rp/script-src-wildcard/sharedworker-module.https-expected.txt:
- web-platform-tests/content-security-policy/gen/top.http-rp/worker-src-none/sharedworker-classic.http-expected.txt:
- web-platform-tests/content-security-policy/gen/top.http-rp/worker-src-none/sharedworker-classic.https-expected.txt:
- web-platform-tests/content-security-policy/gen/top.http-rp/worker-src-none/sharedworker-import-data.http-expected.txt:
- web-platform-tests/content-security-policy/gen/top.http-rp/worker-src-none/sharedworker-import-data.https-expected.txt:
- web-platform-tests/content-security-policy/gen/top.http-rp/worker-src-none/sharedworker-import.http-expected.txt:
- web-platform-tests/content-security-policy/gen/top.http-rp/worker-src-none/sharedworker-import.https-expected.txt:
- web-platform-tests/content-security-policy/gen/top.http-rp/worker-src-none/sharedworker-module.http-expected.txt:
- web-platform-tests/content-security-policy/gen/top.http-rp/worker-src-none/sharedworker-module.https-expected.txt:
- web-platform-tests/content-security-policy/gen/top.http-rp/worker-src-self/sharedworker-classic.http-expected.txt:
- web-platform-tests/content-security-policy/gen/top.http-rp/worker-src-self/sharedworker-classic.https-expected.txt:
- web-platform-tests/content-security-policy/gen/top.http-rp/worker-src-self/sharedworker-import-data.http-expected.txt:
- web-platform-tests/content-security-policy/gen/top.http-rp/worker-src-self/sharedworker-import-data.https-expected.txt:
- web-platform-tests/content-security-policy/gen/top.http-rp/worker-src-self/sharedworker-import.http-expected.txt:
- web-platform-tests/content-security-policy/gen/top.http-rp/worker-src-self/sharedworker-import.https-expected.txt:
- web-platform-tests/content-security-policy/gen/top.http-rp/worker-src-self/sharedworker-module.http-expected.txt:
- web-platform-tests/content-security-policy/gen/top.http-rp/worker-src-self/sharedworker-module.https-expected.txt:
- web-platform-tests/content-security-policy/gen/top.http-rp/worker-src-wildcard/sharedworker-classic.http-expected.txt:
- web-platform-tests/content-security-policy/gen/top.http-rp/worker-src-wildcard/sharedworker-classic.https-expected.txt:
- web-platform-tests/content-security-policy/gen/top.http-rp/worker-src-wildcard/sharedworker-import-data.http-expected.txt:
- web-platform-tests/content-security-policy/gen/top.http-rp/worker-src-wildcard/sharedworker-import-data.https-expected.txt:
- web-platform-tests/content-security-policy/gen/top.http-rp/worker-src-wildcard/sharedworker-import.http-expected.txt:
- web-platform-tests/content-security-policy/gen/top.http-rp/worker-src-wildcard/sharedworker-import.https-expected.txt:
- web-platform-tests/content-security-policy/gen/top.http-rp/worker-src-wildcard/sharedworker-module.http-expected.txt:
- web-platform-tests/content-security-policy/gen/top.http-rp/worker-src-wildcard/sharedworker-module.https-expected.txt:
- web-platform-tests/content-security-policy/gen/top.meta/script-src-self/sharedworker-classic.http-expected.txt:
- web-platform-tests/content-security-policy/gen/top.meta/script-src-self/sharedworker-classic.https-expected.txt:
- web-platform-tests/content-security-policy/gen/top.meta/script-src-self/sharedworker-import-data.http-expected.txt:
- web-platform-tests/content-security-policy/gen/top.meta/script-src-self/sharedworker-import-data.https-expected.txt:
- web-platform-tests/content-security-policy/gen/top.meta/script-src-self/sharedworker-import.http-expected.txt:
- web-platform-tests/content-security-policy/gen/top.meta/script-src-self/sharedworker-import.https-expected.txt:
- web-platform-tests/content-security-policy/gen/top.meta/script-src-self/sharedworker-module.http-expected.txt:
- web-platform-tests/content-security-policy/gen/top.meta/script-src-self/sharedworker-module.https-expected.txt:
- web-platform-tests/content-security-policy/gen/top.meta/script-src-wildcard/sharedworker-classic.http-expected.txt:
- web-platform-tests/content-security-policy/gen/top.meta/script-src-wildcard/sharedworker-classic.https-expected.txt:
- web-platform-tests/content-security-policy/gen/top.meta/script-src-wildcard/sharedworker-import-data.http-expected.txt:
- web-platform-tests/content-security-policy/gen/top.meta/script-src-wildcard/sharedworker-import-data.https-expected.txt:
- web-platform-tests/content-security-policy/gen/top.meta/script-src-wildcard/sharedworker-import.http-expected.txt:
- web-platform-tests/content-security-policy/gen/top.meta/script-src-wildcard/sharedworker-import.https-expected.txt:
- web-platform-tests/content-security-policy/gen/top.meta/script-src-wildcard/sharedworker-module.http-expected.txt:
- web-platform-tests/content-security-policy/gen/top.meta/script-src-wildcard/sharedworker-module.https-expected.txt:
- web-platform-tests/content-security-policy/gen/top.meta/worker-src-none/sharedworker-classic.http-expected.txt:
- web-platform-tests/content-security-policy/gen/top.meta/worker-src-none/sharedworker-classic.https-expected.txt:
- web-platform-tests/content-security-policy/gen/top.meta/worker-src-none/sharedworker-import-data.http-expected.txt:
- web-platform-tests/content-security-policy/gen/top.meta/worker-src-none/sharedworker-import-data.https-expected.txt:
- web-platform-tests/content-security-policy/gen/top.meta/worker-src-none/sharedworker-import.http-expected.txt:
- web-platform-tests/content-security-policy/gen/top.meta/worker-src-none/sharedworker-import.https-expected.txt:
- web-platform-tests/content-security-policy/gen/top.meta/worker-src-none/sharedworker-module.http-expected.txt:
- web-platform-tests/content-security-policy/gen/top.meta/worker-src-none/sharedworker-module.https-expected.txt:
- web-platform-tests/content-security-policy/gen/top.meta/worker-src-self/sharedworker-classic.http-expected.txt:
- web-platform-tests/content-security-policy/gen/top.meta/worker-src-self/sharedworker-classic.https-expected.txt:
- web-platform-tests/content-security-policy/gen/top.meta/worker-src-self/sharedworker-import-data.http-expected.txt:
- web-platform-tests/content-security-policy/gen/top.meta/worker-src-self/sharedworker-import-data.https-expected.txt:
- web-platform-tests/content-security-policy/gen/top.meta/worker-src-self/sharedworker-import.http-expected.txt:
- web-platform-tests/content-security-policy/gen/top.meta/worker-src-self/sharedworker-import.https-expected.txt:
- web-platform-tests/content-security-policy/gen/top.meta/worker-src-self/sharedworker-module.http-expected.txt:
- web-platform-tests/content-security-policy/gen/top.meta/worker-src-self/sharedworker-module.https-expected.txt:
- web-platform-tests/content-security-policy/gen/top.meta/worker-src-wildcard/sharedworker-classic.http-expected.txt:
- web-platform-tests/content-security-policy/gen/top.meta/worker-src-wildcard/sharedworker-classic.https-expected.txt:
- web-platform-tests/content-security-policy/gen/top.meta/worker-src-wildcard/sharedworker-import-data.http-expected.txt:
- web-platform-tests/content-security-policy/gen/top.meta/worker-src-wildcard/sharedworker-import-data.https-expected.txt:
- web-platform-tests/content-security-policy/gen/top.meta/worker-src-wildcard/sharedworker-import.http-expected.txt:
- web-platform-tests/content-security-policy/gen/top.meta/worker-src-wildcard/sharedworker-import.https-expected.txt:
- web-platform-tests/content-security-policy/gen/top.meta/worker-src-wildcard/sharedworker-module.http-expected.txt:
- web-platform-tests/content-security-policy/gen/top.meta/worker-src-wildcard/sharedworker-module.https-expected.txt:
- web-platform-tests/content-security-policy/inside-worker/sharedworker-connect-src.sub-expected.txt:
- web-platform-tests/content-security-policy/inside-worker/sharedworker-report-only.sub-expected.txt:
- web-platform-tests/content-security-policy/inside-worker/sharedworker-script-src.sub-expected.txt:
- web-platform-tests/content-security-policy/sandbox/shared-worker-sandbox-expected.txt:
- web-platform-tests/content-security-policy/script-src/script-src-strict_dynamic_worker.https-expected.txt:
- web-platform-tests/content-security-policy/script-src/worker-data-set-timeout.sub-expected.txt:
- web-platform-tests/content-security-policy/script-src/worker-importscripts.sub-expected.txt:
- web-platform-tests/content-security-policy/script-src/worker-set-timeout.sub-expected.txt:
- web-platform-tests/fetch/api/cors/data-url-shared-worker-expected.txt:
- web-platform-tests/fetch/api/request/destination/fetch-destination-worker.https-expected.txt:
- web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-postMessage-MessagePort-workers.https.window-expected.txt:
- web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-postMessage-workers.https.window-expected.txt:
- web-platform-tests/html/browsers/offline/appcache/workers/appcache-worker.https-expected.txt:
- web-platform-tests/html/browsers/offline/no-appcache-in-shared-workers-historical.https-expected.txt:
- web-platform-tests/html/cross-origin-embedder-policy/anonymous-iframe/sharedworker-partitioning.tentative.https.window-expected.txt:
- web-platform-tests/html/cross-origin-embedder-policy/cache-storage-reporting-shared-worker.https-expected.txt:
- web-platform-tests/html/cross-origin-embedder-policy/cross-origin-isolated-permission.https-expected.txt:
- web-platform-tests/html/cross-origin-embedder-policy/reporting-subresource-corp.https-expected.txt:
- web-platform-tests/html/cross-origin-embedder-policy/reporting-to-endpoint.https-expected.txt:
- web-platform-tests/html/cross-origin-embedder-policy/shared-workers.https-expected.txt:
- web-platform-tests/html/cross-origin-embedder-policy/worker-inheritance.sub.https-expected.txt:
- web-platform-tests/html/semantics/scripting-1/the-script-element/evaluation-order-1-nothrow-sharedworker-expected.txt:
- web-platform-tests/html/semantics/scripting-1/the-script-element/evaluation-order-1-sharedworker-expected.txt:
- web-platform-tests/html/semantics/scripting-1/the-script-element/module/evaluation-order-1-nothrow-sharedworker-expected.txt:
- web-platform-tests/html/semantics/scripting-1/the-script-element/module/evaluation-order-1-sharedworker-expected.txt:
- web-platform-tests/html/semantics/scripting-1/the-script-element/module/evaluation-order-2-import-sharedworker-expected.txt:
- web-platform-tests/html/semantics/scripting-1/the-script-element/module/evaluation-order-3-dynamic-sharedworker-expected.txt:
- web-platform-tests/html/semantics/scripting-1/the-script-element/module/import-meta/import-meta-url-expected.txt:
- web-platform-tests/html/webappapis/scripting/processing-model-2/unhandled-promise-rejections/promise-rejection-events.sharedworker-expected.txt:
- web-platform-tests/html/webappapis/the-windoworworkerglobalscope-mixin/Worker_Self_Origin-expected.txt:
- web-platform-tests/service-workers/service-worker/clients-get-client-types.https-expected.txt:
- web-platform-tests/service-workers/service-worker/worker-interception-redirect.https-expected.txt:
- web-platform-tests/service-workers/service-worker/worker-interception.https-expected.txt:
- web-platform-tests/wasm/serialization/module/broadcastchannel-success-and-failure-expected.txt:
- web-platform-tests/wasm/serialization/module/window-sharedworker-failure-expected.txt:
- web-platform-tests/webmessaging/broadcastchannel/workers-expected.txt:
- web-platform-tests/workers/SharedWorkerPerformanceNow-expected.txt:
- web-platform-tests/workers/SharedWorker_dataUrl-expected.txt:
- web-platform-tests/workers/abrupt-completion-expected.txt:
- web-platform-tests/workers/baseurl/alpha/importScripts-in-sharedworker-expected.txt:
- web-platform-tests/workers/baseurl/alpha/xhr-in-sharedworker-expected.txt:
- web-platform-tests/workers/interfaces/SharedWorkerGlobalScope/name/getting-expected.txt:
- web-platform-tests/workers/interfaces/SharedWorkerGlobalScope/name/setting-expected.txt:
- web-platform-tests/workers/interfaces/SharedWorkerGlobalScope/onconnect-expected.txt:
- web-platform-tests/workers/interfaces/WorkerGlobalScope/location/redirect-sharedworker-expected.txt:
- web-platform-tests/workers/modules/shared-worker-import-blob-url.window-expected.txt:
- web-platform-tests/workers/modules/shared-worker-import-data-url-cross-origin-expected.txt:
- web-platform-tests/workers/modules/shared-worker-import-data-url.window-expected.txt:
- web-platform-tests/workers/modules/shared-worker-import-failure-expected.txt:
- web-platform-tests/workers/modules/shared-worker-import-meta-expected.txt:
- web-platform-tests/workers/modules/shared-worker-import.window-expected.txt:
- web-platform-tests/workers/modules/shared-worker-options-credentials-expected.txt:
- web-platform-tests/workers/modules/shared-worker-options-type-expected.txt:
- web-platform-tests/workers/modules/shared-worker-parse-error-failure-expected.txt:
- web-platform-tests/workers/semantics/encodings/002-expected.txt:
- web-platform-tests/workers/semantics/encodings/004-expected.txt:
- web-platform-tests/workers/semantics/multiple-workers/001-expected.txt:
- web-platform-tests/workers/semantics/multiple-workers/004-expected.txt:
- web-platform-tests/workers/semantics/multiple-workers/008-expected.txt:
- web-platform-tests/workers/semantics/reporting-errors/001-expected.txt:
- web-platform-tests/workers/semantics/reporting-errors/002-expected.txt:
- web-platform-tests/workers/semantics/reporting-errors/003-expected.txt:
- web-platform-tests/workers/semantics/reporting-errors/004-expected.txt:
- web-platform-tests/workers/semantics/run-a-worker/002-expected.txt:
- web-platform-tests/workers/semantics/run-a-worker/003-expected.txt:
- web-platform-tests/workers/semantics/structured-clone/shared-expected.txt:
- web-platform-tests/workers/semantics/xhr/003-expected.txt:
- web-platform-tests/workers/semantics/xhr/004-expected.txt:
- web-platform-tests/workers/semantics/xhr/006-expected.txt:
- web-platform-tests/workers/shared-worker-from-blob-url.window-expected.txt:
- web-platform-tests/workers/shared-worker-name-via-options-expected.txt:
- web-platform-tests/workers/shared-worker-parse-error-failure-expected.txt:
- web-platform-tests/xhr/open-url-redirected-sharedworker-origin-expected.txt:
Source/WebCore:
Add basic support for launching a SharedWorker. For now, it mostly behaves as lauching
a dedicated worker (except that the worker has a SharedWorkerGlobalScope). The shared
workers are currently not shared in any way, not even within the same process. This
will need to be implemented in a follow-up.
This patch is based on Alex Christensen's initial patch from Bug 230382.
No new tests, rebaselined existing tests.
- Sources.txt:
- WebCore.xcodeproj/project.pbxproj:
- page/SecurityOrigin.h:
(WebCore::SecurityOrigin::canAccessSharedWorkers const):
- workers/AbstractWorker.cpp:
(WebCore::AbstractWorker::workerFetchOptions):
- workers/AbstractWorker.h:
- workers/Worker.cpp:
(WebCore::Worker::create):
- workers/WorkerOrWorkletScriptController.cpp:
(WebCore::WorkerOrWorkletScriptController::initScript):
- workers/WorkerThread.cpp:
(WebCore::WorkerParameters::isolatedCopy const):
- workers/WorkerThreadType.h:
- workers/shared/SharedWorker.cpp:
(WebCore::SharedWorker::create):
(WebCore::SharedWorker::SharedWorker):
(WebCore::SharedWorker::~SharedWorker):
(WebCore::SharedWorker::scriptExecutionContext const):
(WebCore::SharedWorker::activeDOMObjectName const):
(WebCore::SharedWorker::stop):
(WebCore::SharedWorker::virtualHasPendingActivity const):
(WebCore::SharedWorker::terminate):
(WebCore::SharedWorker::port const): Deleted.
- workers/shared/SharedWorker.h:
- workers/shared/SharedWorker.idl:
- workers/shared/SharedWorkerGlobalScope.cpp:
(WebCore::SharedWorkerGlobalScope::SharedWorkerGlobalScope):
(WebCore::SharedWorkerGlobalScope::close):
(WebCore::SharedWorkerGlobalScope::name const): Deleted.
- workers/shared/SharedWorkerGlobalScope.h:
(isType):
- workers/shared/SharedWorkerManager.cpp: Added.
(WebCore::SharedWorkerManager::singleton):
(WebCore::SharedWorkerManager::connect):
(WebCore::SharedWorkerManager::scriptLoadFailed):
(WebCore::SharedWorkerManager::scriptLoadedSuccessfully):
- workers/shared/SharedWorkerManager.h: Copied from Source/WebCore/workers/shared/SharedWorker.h.
- workers/shared/SharedWorkerProxy.cpp: Added.
(WebCore::SharedWorkerProxy::SharedWorkerProxy):
(WebCore::SharedWorkerProxy::startWorkerGlobalScope):
(WebCore::SharedWorkerProxy::terminateWorkerGlobalScope):
(WebCore::SharedWorkerProxy::postMessageToWorkerGlobalScope):
(WebCore::SharedWorkerProxy::postTaskToWorkerGlobalScope):
(WebCore::SharedWorkerProxy::hasPendingActivity const):
(WebCore::SharedWorkerProxy::workerObjectDestroyed):
(WebCore::SharedWorkerProxy::notifyNetworkStateChange):
(WebCore::SharedWorkerProxy::suspendForBackForwardCache):
(WebCore::SharedWorkerProxy::resumeForBackForwardCache):
(WebCore::SharedWorkerProxy::postExceptionToWorkerObject):
(WebCore::SharedWorkerProxy::workerGlobalScopeDestroyed):
(WebCore::SharedWorkerProxy::postMessageToWorkerObject):
(WebCore::SharedWorkerProxy::confirmMessageFromWorkerObject):
(WebCore::SharedWorkerProxy::reportPendingActivity):
(WebCore::SharedWorkerProxy::createCacheStorageConnection):
(WebCore::SharedWorkerProxy::createRTCDataChannelRemoteHandlerConnection):
(WebCore::SharedWorkerProxy::postTaskToLoader):
(WebCore::SharedWorkerProxy::postTaskForModeToWorkerOrWorkletGlobalScope):
(WebCore::SharedWorkerProxy::postMessageToDebugger):
(WebCore::SharedWorkerProxy::setResourceCachingDisabledByWebInspector):
(WebCore::SharedWorkerProxy::workerGlobalScopeDestroyedInternal):
- workers/shared/SharedWorkerProxy.h: Added.
(WebCore::SharedWorkerProxy::create):
(WebCore::SharedWorkerProxy::thread):
- workers/shared/SharedWorkerScriptLoader.cpp: Added.
(WebCore::SharedWorkerScriptLoader::SharedWorkerScriptLoader):
(WebCore::SharedWorkerScriptLoader::didReceiveResponse):
(WebCore::SharedWorkerScriptLoader::notifyFinished):
- workers/shared/SharedWorkerScriptLoader.h: Copied from Source/WebCore/workers/shared/SharedWorker.h.
(WebCore::SharedWorkerScriptLoader::identifier const):
(WebCore::SharedWorkerScriptLoader::url const):
(WebCore::SharedWorkerScriptLoader::worker):
(WebCore::SharedWorkerScriptLoader::options):
- workers/shared/SharedWorkerThread.cpp: Copied from Source/WebCore/workers/shared/SharedWorkerGlobalScope.cpp.
(WebCore::SharedWorkerThread::SharedWorkerThread):
(WebCore::SharedWorkerThread::createWorkerGlobalScope):
- workers/shared/SharedWorkerThread.h: Copied from Source/WebCore/workers/shared/SharedWorker.h.
(WebCore::SharedWorkerThread::create):
- xml/XMLHttpRequest.idl:
LayoutTests:
Update test expectations now that tests involving Shared Workers are actually running.
- 5:02 PM Changeset in webkit [286820] by
-
- 2 edits in trunk/Source/WebCore
[LFC][IFC] Stop using the last-bidi value for opaque inline items
https://bugs.webkit.org/show_bug.cgi?id=234043
Reviewed by Antti Koivisto.
Now that we only need to guess the bidi level for empty inline boxes, let's stop applying the "keep tracking
the last bidi level from the end" logic. It may work for non-empty inline boxes (when the last bidi value
comes from an actual content run), but it is somewhat incorrect for empty inline boxes.
e.g. <span id=visually-second>‮END OF CONTENT</span><span id=visually-first></span>
The "visually-first" inline box's "guessed" bidi level comes from the root direction (since it's the very list run)
making it LTR while the RTL override character (‮) makes it RTL. It produces incorrect visual ordering for
these inline boxes.
- layout/formattingContexts/inline/InlineItemsBuilder.cpp:
(WebCore::Layout::InlineItemsBuilder::breakAndComputeBidiLevels):
- 4:58 PM Changeset in webkit [286819] by
-
- 1 copy in tags/Safari-612.4.2.1.2
Tag Safari-612.4.2.1.2.
- 4:47 PM Changeset in webkit [286818] by
-
- 2 edits in trunk/Source/WTF
Unreviewed, reverting r286804.
Breaks internal builds.
Reverted changeset:
"Reduce maximum mmap size for Structure regions to help
placate ios"
https://bugs.webkit.org/show_bug.cgi?id=234091
https://commits.webkit.org/r286804
- 4:30 PM Changeset in webkit [286817] by
-
- 3 edits in trunk/Tools
[webkitpy] Make check-webkit-style check WebDriverTests/TestExpectations.json
https://bugs.webkit.org/show_bug.cgi?id=213453
Reviewed by Adrian Perez de Castro.
While the WebDriver tests are imported and mostly ignored by
check-webkit-style, the script must check TestExpectations.json
to avoid commiting invalid json data and breaking the bots.
- Scripts/webkitpy/style/checker.py:
- Scripts/webkitpy/style/checker_unittest.py:
(CheckerDispatcherSkipTest._assert_should_skip_without_warning): Pass
a valid error handler so the JSONChecker can be instantiated.
(CheckerDispatcherSkipTest.test_should_skip_without_warningfalse):
- 4:25 PM Changeset in webkit [286816] by
-
- 75 edits in trunk
Prepare for transition to C++20
https://bugs.webkit.org/show_bug.cgi?id=234022
Reviewed by Yusuke Suzuki.
Source/bmalloc:
- bmalloc/List.h:
(bmalloc::List::iterator::operator!= const):
(bmalloc::List::iterator::operator!=): Deleted.
Source/JavaScriptCore:
- bytecode/SuperSampler.cpp:
- bytecode/SuperSampler.h:
- heap/GCSegmentedArray.h:
(JSC::GCSegmentedArrayIterator::operator== const):
(JSC::GCSegmentedArrayIterator::operator!= const):
(JSC::GCSegmentedArrayIterator::operator==): Deleted.
(JSC::GCSegmentedArrayIterator::operator!=): Deleted.
- jit/RegisterSet.h:
(JSC::RegisterSet::iterator::operator== const):
(JSC::RegisterSet::iterator::operator!= const):
(JSC::RegisterSet::iterator::operator==): Deleted.
(JSC::RegisterSet::iterator::operator!=): Deleted.
- parser/Parser.h:
(JSC::ScopeRef::operator== const):
(JSC::ScopeRef::operator!= const):
(JSC::ScopeRef::operator==): Deleted.
(JSC::ScopeRef::operator!=): Deleted.
- parser/ParserTokens.h:
- runtime/GenericOffset.h:
(JSC::GenericOffset::operator== const):
(JSC::GenericOffset::operator!= const):
(JSC::GenericOffset::operator< const):
(JSC::GenericOffset::operator> const):
(JSC::GenericOffset::operator<= const):
(JSC::GenericOffset::operator>= const):
- runtime/PropertyTable.h:
Source/ThirdParty/libwebrtc:
- Source/webrtc/common_audio/wav_header.cc:
- Source/webrtc/modules/audio_processing/include/aec_dump.cc:
- Source/webrtc/modules/audio_processing/include/aec_dump.h:
- Source/webrtc/modules/audio_processing/utility/delay_estimator_wrapper.cc:
- Source/webrtc/modules/audio_processing/vad/vad_audio_proc.h:
- Source/webrtc/modules/video_coding/media_opt_util.h:
- Source/webrtc/rtc_base/race_checker.h:
- Source/webrtc/rtc_base/units/unit_base.h:
(webrtc::rtc_units_impl::UnitBase::operator== const):
(webrtc::rtc_units_impl::UnitBase::operator!= const):
(webrtc::rtc_units_impl::UnitBase::operator<= const):
(webrtc::rtc_units_impl::UnitBase::operator>= const):
(webrtc::rtc_units_impl::UnitBase::operator> const):
(webrtc::rtc_units_impl::UnitBase::operator< const):
Source/WebCore:
- contentextensions/ContentExtensionActions.h:
(WebCore::ContentExtensions::ActionWithoutMetadata::operator== const):
(WebCore::ContentExtensions::ActionWithStringMetadata::operator== const):
- contentextensions/ImmutableNFANodeBuilder.h:
(WebCore::ContentExtensions::ImmutableNFANodeBuilder::FakeRangeIterator::operator== const):
(WebCore::ContentExtensions::ImmutableNFANodeBuilder::FakeRangeIterator::operator!= const):
(WebCore::ContentExtensions::ImmutableNFANodeBuilder::FakeRangeIterator::operator==): Deleted.
(WebCore::ContentExtensions::ImmutableNFANodeBuilder::FakeRangeIterator::operator!=): Deleted.
- loader/cache/CachedResourceHandle.h:
(WebCore::CachedResourceHandle::operator== const):
- page/mac/ImageOverlayControllerMac.mm:
(WebCore::ImageOverlayController::updateDataDetectorHighlights):
- page/mac/ServicesOverlayController.mm:
(WebCore::ServicesOverlayController::buildPhoneNumberHighlights):
(WebCore::ServicesOverlayController::buildSelectionHighlight):
- platform/audio/cocoa/AudioDestinationCocoa.cpp:
(WebCore::AudioDestinationCocoa::getAudioStreamBasicDescription):
- platform/audio/cocoa/AudioFileReaderCocoa.cpp:
(WebCore::AudioFileReader::clientDataFormat const):
- platform/audio/cocoa/CAAudioStreamDescription.cpp:
(WebCore::CAAudioStreamDescription::CAAudioStreamDescription):
- platform/audio/cocoa/CAAudioStreamDescription.h:
- platform/audio/ios/AudioOutputUnitAdaptorIOS.cpp:
(WebCore::AudioOutputUnitAdaptor::configure):
- platform/audio/mac/AudioOutputUnitAdaptorMac.cpp:
(WebCore::AudioOutputUnitAdaptor::configure):
- platform/graphics/DisplayRefreshMonitorManager.cpp:
(WebCore::DisplayRefreshMonitorManager::ensureMonitorForDisplayID):
- platform/graphics/DisplayRefreshMonitorManager.h:
- platform/graphics/FontSelectionAlgorithm.h:
- platform/graphics/GraphicsContext.cpp:
(WebCore::TextBoxIterator::operator== const):
(WebCore::TextBoxIterator::operator!= const):
(WebCore::TextBoxIterator::operator==): Deleted.
(WebCore::TextBoxIterator::operator!=): Deleted.
- platform/graphics/PixelBufferConversion.cpp:
(WebCore::makeVImageCGImageFormat):
- platform/graphics/cg/GraphicsContextGLCG.cpp:
(WebCore::GraphicsContextGLImageExtractor::extractImage):
- platform/graphics/cg/ImageBufferCGBackend.cpp:
(WebCore::createBitmapImageAfterScalingIfNeeded):
(WebCore::ImageBufferCGBackend::copyCGImageForEncoding const):
- platform/graphics/cg/ImageBufferCGBitmapBackend.cpp:
(WebCore::ImageBufferCGBitmapBackend::create):
(WebCore::ImageBufferCGBitmapBackend::copyNativeImage const):
- platform/graphics/cg/ImageBufferUtilitiesCG.cpp:
(WebCore::encode):
- platform/graphics/cg/NativeImageCG.cpp:
(WebCore::NativeImage::singlePixelSolidColor const):
- platform/graphics/cocoa/IOSurface.mm:
(WebCore::IOSurface::ensurePlatformContext):
- platform/graphics/cv/PixelBufferConformerCV.cpp:
(WebCore::PixelBufferConformerCV::createImageFromPixelBuffer):
- platform/graphics/displaylists/DisplayListIterator.h:
(WebCore::DisplayList::DisplayList::Iterator::operator== const):
(WebCore::DisplayList::DisplayList::Iterator::operator!= const):
(WebCore::DisplayList::DisplayList::Iterator::operator==): Deleted.
(WebCore::DisplayList::DisplayList::Iterator::operator!=): Deleted.
- platform/graphics/filters/FEComponentTransfer.h:
- platform/graphics/transforms/Matrix3DTransformOperation.h:
- platform/graphics/transforms/MatrixTransformOperation.h:
- platform/graphics/transforms/PerspectiveTransformOperation.h:
- platform/graphics/transforms/RotateTransformOperation.h:
- platform/graphics/transforms/ScaleTransformOperation.h:
- platform/graphics/transforms/SkewTransformOperation.h:
- platform/graphics/transforms/TranslateTransformOperation.h:
- platform/network/mac/ResourceErrorMac.mm:
(WebCore::ResourceError::mapPlatformError):
- rendering/GapRects.h:
(WebCore::GapRects::operator== const):
(WebCore::GapRects::operator!= const):
(WebCore::GapRects::operator==): Deleted.
(WebCore::GapRects::operator!=): Deleted.
- testing/InternalSettings.cpp:
(WebCore::InternalSettings::setShouldMockBoldSystemFontForAccessibility):
Source/WebKit:
- Shared/mac/MediaFormatReader/MediaFormatReader.cpp:
(WebKit::MediaFormatReader::didParseTracks):
- Shared/mac/MediaFormatReader/MediaSampleCursor.cpp:
(WebKit::MediaSampleCursor::getSampleMap const):
- UIProcess/API/Cocoa/WKPreferences.mm:
(-[WKPreferences _setRequiresPageVisibilityToPlayAudio:]):
- UIProcess/API/Cocoa/_WKWebsiteDataStoreConfiguration.mm:
(-[_WKWebsiteDataStoreConfiguration setRequiresSecureHTTPSProxyConnection:]):
- UIProcess/WebsiteData/WebsiteDataStoreConfiguration.h:
(WebKit::WebsiteDataStoreConfiguration::setRequiresSecureHTTPSProxyConnection):
Source/WTF:
In C++20, volitile is deprecated, operator== is stricter (related to the introduction of operator <=>),
and operations on enums of different types are stricter too. This does the changes we can do before
the transition, which will be done in bug 233963.
- wtf/DateMath.h:
(WTF::LocalTimeOffset::operator== const):
(WTF::LocalTimeOffset::operator!= const):
(WTF::LocalTimeOffset::operator==): Deleted.
(WTF::LocalTimeOffset::operator!=): Deleted.
- wtf/FastBitVector.h:
(WTF::FastBitVectorImpl::operator== const):
(WTF::FastBitVectorImpl::operator!= const):
- wtf/GenericTimeMixin.h:
(WTF::GenericTimeMixin::operator== const):
(WTF::GenericTimeMixin::operator!= const):
(WTF::GenericTimeMixin::operator< const):
(WTF::GenericTimeMixin::operator> const):
(WTF::GenericTimeMixin::operator<= const):
(WTF::GenericTimeMixin::operator>= const):
- wtf/IteratorAdaptors.h:
(WTF::FilterIterator::operator== const):
(WTF::FilterIterator::operator!= const):
(WTF::TransformIterator::operator== const):
(WTF::TransformIterator::operator!= const):
- wtf/Liveness.h:
(WTF::Liveness::LocalCalc::Iterable::iterator::operator== const):
(WTF::Liveness::LocalCalc::Iterable::iterator::operator!= const):
(WTF::Liveness::LocalCalc::Iterable::iterator::operator==): Deleted.
(WTF::Liveness::LocalCalc::Iterable::iterator::operator!=): Deleted.
Tools:
- DumpRenderTree/cg/PixelDumpSupportCG.cpp:
(createBitmapContext):
- TestWebKitAPI/Tests/WebKitCocoa/GPUProcess.mm:
(TEST):
- TestWebKitAPI/Tests/WebKitCocoa/WKWebViewSnapshot.mm:
(TEST):
- TestWebKitAPI/Tests/WebKitLegacy/ios/SnapshotViaRenderInContext.mm:
(TestWebKitAPI::TEST):
- TestWebKitAPI/cocoa/TestPDFDocument.mm:
(TestWebKitAPI::TestPDFPage::colorAtPoint const):
- WebKitTestRunner/cg/TestInvocationCG.cpp:
(WTR::createCGContextFromCGImage):
- 4:23 PM Changeset in webkit [286815] by
-
- 24 edits in trunk/Source
Use Span for IPC::ArrayReference and DataReference
https://bugs.webkit.org/show_bug.cgi?id=233931
Reviewed by Wenson Hsieh.
Source/WebKit:
No change in behavior, just simplifying some code.
- Platform/IPC/ArgumentCoders.h:
- Platform/IPC/ArrayReference.h:
(): Deleted.
(IPC::ArrayReference::ArrayReference): Deleted.
(IPC::ArrayReference::isEmpty const): Deleted.
(IPC::ArrayReference::size const): Deleted.
(IPC::ArrayReference::data const): Deleted.
(IPC::ArrayReference::vector const): Deleted.
- Platform/IPC/DataReference.h:
- Platform/IPC/SharedBufferDataReference.cpp:
(IPC::SharedBufferDataReference::encode const):
- Shared/API/APIData.cpp:
(API::Data::create):
- Shared/Cocoa/SandboxExtensionCocoa.mm:
(WebKit::SandboxExtension::Handle::decode):
- Shared/UserData.cpp:
(WebKit::UserData::decode):
- Shared/cf/ArgumentCodersCF.cpp:
(IPC::ArgumentCoder<RetainPtr<CFURLRef>>::decode):
- UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView createPDFWithConfiguration:completionHandler:]):
- UIProcess/Downloads/DownloadProxy.cpp:
(WebKit::createData):
- UIProcess/ProvisionalPageProxy.cpp:
(WebKit::ProvisionalPageProxy::registerWebProcessAccessibilityToken):
- UIProcess/UserContent/WebUserContentControllerProxy.cpp:
(WebKit::WebUserContentControllerProxy::didPostMessage):
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::loadData):
(WebKit::WebPageProxy::loadSimulatedRequest):
(WebKit::WebPageProxy::runJavaScriptInFrameInScriptWorld):
(WebKit::WebPageProxy::wrapCryptoKey):
(WebKit::WebPageProxy::unwrapCryptoKey):
- UIProcess/ios/WKContentView.mm:
(-[WKContentView _wk_pageCountForPrintFormatter:]):
- UIProcess/mac/WebPageProxyMac.mm:
(WebKit::WebPageProxy::savePDFToTemporaryFolderAndOpenWithNativeApplication):
- WebProcess/GPU/graphics/RemoteGraphicsContextGLProxyFunctionsGenerated.cpp:
(WebKit::RemoteGraphicsContextGLProxy::getShaderPrecisionFormat):
- WebProcess/Network/WebSocketChannel.cpp:
(WebKit::WebSocketChannel::didReceiveBinaryData):
- WebProcess/Network/webrtc/RTCDataChannelRemoteManager.cpp:
(WebKit::RTCDataChannelRemoteManager::receiveData):
- WebProcess/UserContent/WebUserContentController.cpp:
- WebProcess/WebPage/mac/WebPageMac.mm:
(WebKit::WebPage::replaceSelectionWithPasteboardData):
Source/WTF:
- wtf/Vector.h:
(WTF::Vector::Vector):
(WTF::Vector::span const):
- 4:21 PM Changeset in webkit [286814] by
-
- 2 edits in trunk/Source/WebCore
An
<input>
that's been autofilled with obscured content should still be editable
https://bugs.webkit.org/show_bug.cgi?id=234046
<rdar://problem/86226960>
Reviewed by Wenson Hsieh.
It should be possible to delete the value in the
<input>
even if it's been obscured.
- css/html.css:
(input:-webkit-autofill-and-obscured):
- 3:56 PM Changeset in webkit [286813] by
-
- 56 edits18 deletes in trunk
Unreviewed, reverting r286754.
Broke 2 tests on all mac an iOS
Reverted changeset:
"Add an experimental trackConfiguration accessor on AudioTrack
& VideoTrack."
https://bugs.webkit.org/show_bug.cgi?id=230841
https://commits.webkit.org/r286754
- 3:25 PM Changeset in webkit [286812] by
-
- 13 edits in trunk/Source
Markup Pane not displaying.
https://bugs.webkit.org/show_bug.cgi?id=234089
Reviewed by Tim Horton.
Source/WebCore:
Vend the image location so that the Markup Pane knows where to
present from.
- dom/mac/ImageControlsMac.cpp:
(WebCore::ImageControlsMac::handleEvent):
- page/ChromeClient.h:
(WebCore::ChromeClient::handleImageServiceClick):
Source/WebKit:
An optional method on NSSharingServiceDelegate was not implemented, meaning
that the markup pane did not know where to present, and would assert and fail to
show up. Make sure this is implemented for the image controls menu and also
give it the correct location to present form.
- Shared/ContextMenuContextData.cpp:
(WebKit::ContextMenuContextData::ContextMenuContextData):
(WebKit::ContextMenuContextData::encode const):
(WebKit::ContextMenuContextData::decode):
- Shared/ContextMenuContextData.h:
(WebKit::ContextMenuContextData::controlledImageFrame const):
- UIProcess/API/Cocoa/WKWebViewConfiguration.mm:
(-[WKWebViewConfiguration init]):
- UIProcess/mac/WKSharingServicePickerDelegate.h:
- UIProcess/mac/WKSharingServicePickerDelegate.mm:
(-[WKSharingServicePickerDelegate setSourceFrame:]):
(-[WKSharingServicePickerDelegate sharingService:sourceFrameOnScreenForShareItem:]):
- UIProcess/mac/WebContextMenuProxyMac.mm:
(WebKit::WebContextMenuProxyMac::setupServicesMenu):
- WebProcess/WebCoreSupport/WebChromeClient.cpp:
(WebKit::WebChromeClient::handleImageServiceClick):
- WebProcess/WebCoreSupport/WebChromeClient.h:
- WebProcess/WebPage/WebPage.h:
- WebProcess/WebPage/mac/WebPageMac.mm:
(WebKit::WebPage::handleImageServiceClick):
- 3:20 PM Changeset in webkit [286811] by
-
- 2 edits in trunk/Source/WebCore
AX: Improve ASSERT while processing tree appends in AXIsolatedTree::applyPendingChanges
https://bugs.webkit.org/show_bug.cgi?id=234085
Reviewed by Chris Fleizach.
When processing m_pendingAppends in AXIsolatedTree::applyPendingChanges,
we ASSERT to verify the refcount is what we expect:
ASSERT_UNUSED(addResult, addResult.iterator->value->refCount() == 2
(addResult.iterator->value.ptr() == m_rootNode.get() && m_rootNode->refCount() == 3)); But this doesn't include the actual refcount in the ASSERT message,
making it harder to debug.
This patch uses ASSERT_WITH_MESSAGE to display the actual refcount.
- accessibility/isolatedtree/AXIsolatedTree.cpp:
(WebCore::AXIsolatedTree::applyPendingChanges):
- 3:19 PM Changeset in webkit [286810] by
-
- 2 edits in branches/safari-612.4.2.1-branch/Source/WebKit
Cherry-pick r286805. rdar://problem/86291413
Momentum Generator: Scroll tail hiccup only when scrolling up on 60Hz displays
https://bugs.webkit.org/show_bug.cgi?id=234104
<rdar://problem/86291413>
Reviewed by Simon Fraser.
- WebProcess/WebPage/MomentumEventDispatcher.cpp: (WebKit::MomentumEventDispatcher::equalizeTailGaps): Sort in the correct direction based on the sign of the first delta...
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@286805 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 3:19 PM Changeset in webkit [286809] by
-
- 1 copy in tags/Safari-613.1.11
Tag Safari-613.1.11.
- 3:17 PM Changeset in webkit [286808] by
-
- 8 edits in branches/safari-612.4.2.1-branch/Source
Versioning.
WebKit-7612.4.2.1.2
- 3:11 PM Changeset in webkit [286807] by
-
- 2 edits in trunk/Source/WebCore
[LFC][IFC] Stop including inline box start/end inline items in the visual reordering unless they are completely empty
https://bugs.webkit.org/show_bug.cgi?id=234035
Reviewed by Antti Koivisto.
When the visual order == logical order, we use the inline box start/end markers to
construct/finalize the inline box type of display boxes.
e.g <span>content</span> when we see the "<span>" run, we construct the inline box type of display box
and later when we come across the "</span>" run, we finalize its geometry.
Now with visual reordering, those explicit markers may be out of order. In such cases (bidi in general) we
switch over to relying solely on the content type of runs to create/finalize the required inline box type of display boxes (see InlineDisplayContentBuilder::ensureDisplayBoxForContainer).
This implicit way of constructing the inline box type of display boxes allows us to include only the minimum set of inline
items for visual reordering:
<span><span><span>content</span></span></span>
should produce only one entry for visual reordering.
It is essential to minimize the "noise" to limit the potential confusion introduced by non-content bidi runs (with their guessed levels).
- layout/formattingContexts/inline/InlineItemsBuilder.cpp:
(WebCore::Layout::InlineItemsBuilder::breakAndComputeBidiLevels): Reserve the guess bidi level for empty inline boxes only.
- 3:10 PM Changeset in webkit [286806] by
-
- 2 edits in branches/safari-612-branch/Source/WebKit
Cherry-pick r286805. rdar://problem/86291413
Momentum Generator: Scroll tail hiccup only when scrolling up on 60Hz displays
https://bugs.webkit.org/show_bug.cgi?id=234104
<rdar://problem/86291413>
Reviewed by Simon Fraser.
- WebProcess/WebPage/MomentumEventDispatcher.cpp: (WebKit::MomentumEventDispatcher::equalizeTailGaps): Sort in the correct direction based on the sign of the first delta...
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@286805 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 3:01 PM Changeset in webkit [286805] by
-
- 2 edits in trunk/Source/WebKit
Momentum Generator: Scroll tail hiccup only when scrolling up on 60Hz displays
https://bugs.webkit.org/show_bug.cgi?id=234104
<rdar://problem/86291413>
Reviewed by Simon Fraser.
- WebProcess/WebPage/MomentumEventDispatcher.cpp:
(WebKit::MomentumEventDispatcher::equalizeTailGaps):
Sort in the correct direction based on the sign of the first delta...
- 2:56 PM Changeset in webkit [286804] by
-
- 2 edits in trunk/Source/WTF
Reduce maximum mmap size for Structure regions to help placate ios
https://bugs.webkit.org/show_bug.cgi?id=234091
Reviewed by Saam Barati.
Use mach_vm_map since that supports memory alignement so we don't have to map 2x desired address space then free then trim.
- wtf/PlatformHave.h:
- wtf/posix/OSAllocatorPOSIX.cpp:
(WTF::OSAllocator::reserveUncommittedAligned):
- 2:47 PM Changeset in webkit [286803] by
-
- 10 edits in trunk
Unprefix CSS value text-align: -webkit-match-parent
https://bugs.webkit.org/show_bug.cgi?id=229496
<rdar://problem/82628618>
Reviewed by Darin Adler.
LayoutTests/imported/w3c:
Rebaseline to show new passing tests.
- web-platform-tests/css/css-text/parsing/text-align-computed-expected.txt:
- web-platform-tests/css/css-text/parsing/text-align-valid-expected.txt:
Source/WebCore:
Tested by web-platform-tests: css/css-text/parsing/text-align-computed.html,
css/css-text/parsing/text-align-valid.html
SSIA.
- css/CSSProperties.json: Add the unprefixed version.
- css/CSSValueKeywords.in: Ditto.
- css/html.css:
(li): Use the unprefixed version.
- style/StyleBuilderConverter.h:
(WebCore::Style::BuilderConverter::convertTextAlign): Handle the new unprefixed version.
Source/WebInspectorUI:
- UserInterface/Models/CSSKeywordCompletions.js: Add 'match-parent'
- 1:49 PM Changeset in webkit [286802] by
-
- 4 edits in trunk/Source/JavaScriptCore
Procedure::setNeedsPCToOriginMap should call Code::forcePreservationOfB3Origins
https://bugs.webkit.org/show_bug.cgi?id=234093
Reviewed by Yusuke Suzuki.
We need to do this to ensure the sampling profiler works in FTL.
The reason this was sometimes working was Air::Code's constructor
was looking at Procedure's m_needsPCToOriginMap before it was initialized,
in its constructor. This is because Procedure was constructing Code
before all its fields were initialized. This patch fixes that bug to
construct Code after Procedure has all its fields initialized.
- b3/B3Procedure.cpp:
(JSC::B3::Procedure::Procedure):
(JSC::B3::Procedure::setNeedsPCToOriginMap):
- b3/B3Procedure.h:
(JSC::B3::Procedure::setNeedsPCToOriginMap): Deleted.
- 1:28 PM Changeset in webkit [286801] by
-
- 5 edits in trunk/Source/WebCore
[LFC][IFC] Try not to include non-content type of inline boxes in the visual reordering
https://bugs.webkit.org/show_bug.cgi?id=234033
Reviewed by Antti Koivisto.
In InlineItemsBuilder::setBidiLevelForOpaqueInlineItems we try to figure out the bidi
level for inline box markers (<span> and </span>) mostly to be able to position
empty inline boxes (specifically with decorations). In some cases though the guessed
bidi level breaks the continuation between the content before and after the marker (e.g. before</span>after)
In this patch we try to limit the number of items associated with this guessed bidi level.
- layout/formattingContexts/inline/InlineDisplayContentBuilder.cpp:
(WebCore::Layout::InlineDisplayContentBuilder::processBidiContent):
- layout/formattingContexts/inline/InlineItem.h:
- layout/formattingContexts/inline/InlineItemsBuilder.cpp:
(WebCore::Layout::InlineItemsBuilder::breakAndComputeBidiLevels):
- layout/formattingContexts/inline/InlineLineBuilder.cpp:
(WebCore::Layout::LineBuilder::layoutInlineContent): we may only submit a subset of runs to the reordering
algorithm. It also means we may end up with gaps between the visual index values and the real run item indexes.
The runIndexOffsetMap ensures that the indexes are always consistent with the content in the lineRuns vector.
- 1:18 PM WebKitGTK/2.34.x edited by
- (diff)
- 1:14 PM Changeset in webkit [286800] by
-
- 4 edits in trunk/Source/WebKit
[WPE] Crash under WebProcessProxy::setIsInProcessCache when closing web view in debug builds
https://bugs.webkit.org/show_bug.cgi?id=233933
Reviewed by Geoffrey Garen.
The crash would occur because the WebProcessPool destructor would call WebProcessCache::clear()
which would destroy WebProcessCache::CachedProcess objects, causing
WebProcessProxy::setIsInProcessCache(false) to get called. Previously, this call to
setIsInProcessCache() would convert the WeakPtr the WebProcessProxy held to its process pool
into a RefPtr, thus causing the WebProcessPool to get ref'd while in the middle of destruction.
To address the issue, the setIsInProcessCache() setter now takes a WillShutDown flag that gets
set in the CachedProcess destructor and which causes setIsInProcessCache() to return early
right after setting the m_isInProcessCache flag, without trying to send IPC to the WebProcess
or trying to ref the WebProcessPool.
- UIProcess/WebProcessCache.cpp:
(WebKit::WebProcessCache::CachedProcess::~CachedProcess):
- UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::setIsInProcessCache):
- UIProcess/WebProcessProxy.h:
- 12:55 PM Changeset in webkit [286799] by
-
- 25 edits in trunk
[Cocoa] Web Inspector: provide a way for _WKInspectorExtension clients to be to notified when an extension tab navigates
https://bugs.webkit.org/show_bug.cgi?id=233935
<rdar://86123899>
Reviewed by Patrick Angle.
Source/WebCore:
Add new InspectorFrontendHost hooks to notify the client about didNavigateExtensionTab().
- inspector/InspectorFrontendClient.h:
(WebCore::InspectorFrontendClient::didNavigateExtensionTab):
- inspector/InspectorFrontendHost.cpp:
(WebCore::InspectorFrontendHost::didNavigateExtensionTab):
- inspector/InspectorFrontendHost.h:
- inspector/InspectorFrontendHost.idl:
Source/WebInspectorUI:
In order instrument all loads inside the extension iframe, we cannot rely on the <iframe src> attribute
to query the currently loaded page, or to change the current page. Use a helper method to query and set
the iframe location indirectly usingdocument.location
.
- UserInterface/Protocol/InspectorFrontendAPI.js:
- UserInterface/Controllers/WebInspectorExtensionController.js:
(WI.WebInspectorExtensionController.prototype.createTabForExtension):
(WI.WebInspectorExtensionController.prototype.showExtensionTab):
Standardize on returning {"result": value} from these methods.
- UserInterface/Views/WebInspectorExtensionTabContentView.js:
(WI.WebInspectorExtensionTabContentView):
(WI.WebInspectorExtensionTabContentView.prototype.whenPageAvailable): Added.
(WI.WebInspectorExtensionTabContentView.prototype._extensionFrameDidLoad):
Trigger a load of the actual requested page by evaluatingdocument.location.href = <url>
in the context of the extension tab iframe. Notify clients when this non-initial load completes.
(WI.WebInspectorExtensionTabContentView.prototype.async _maybeDispatchDidNavigateExtensionTab):
Dispatch didNavigateExtensionTab with the new URL when the extension tab iframe completes a load.
Don't notify the client if the extension tab has not yet loaded.
Source/WebKit:
Add plumbing to notify clients when an extension tab loads. This is implemented similarly to
-inspectorExtension:didShowExtensionTab: and -inspectorExtension:didHideExtensionTab:.
- UIProcess/API/APIInspectorExtensionClient.h:
(API::InspectorExtensionClient::didNavigateExtensionTab):
- UIProcess/API/Cocoa/_WKInspectorExtensionDelegate.h:
- UIProcess/Inspector/Cocoa/InspectorExtensionDelegate.h:
- UIProcess/Inspector/Cocoa/InspectorExtensionDelegate.mm:
(WebKit::InspectorExtensionDelegate::InspectorExtensionDelegate):
(WebKit::InspectorExtensionDelegate::InspectorExtensionClient::didNavigateExtensionTab):
- UIProcess/Inspector/WebInspectorUIExtensionControllerProxy.messages.in:
- UIProcess/Inspector/WebInspectorUIExtensionControllerProxy.h:
- UIProcess/Inspector/WebInspectorUIExtensionControllerProxy.cpp:
(WebKit::WebInspectorUIExtensionControllerProxy::didNavigateExtensionTab):
- WebProcess/Inspector/RemoteWebInspectorUI.h:
- WebProcess/Inspector/RemoteWebInspectorUI.cpp:
(WebKit::RemoteWebInspectorUI::didNavigateExtensionTab):
- WebProcess/Inspector/WebInspectorUI.h:
- WebProcess/Inspector/WebInspectorUI.cpp:
(WebKit::WebInspectorUI::didHideExtensionTab):
(WebKit::WebInspectorUI::didNavigateExtensionTab):
- WebProcess/Inspector/WebInspectorUIExtensionController.h:
- WebProcess/Inspector/WebInspectorUIExtensionController.cpp:
(WebKit::WebInspectorUIExtensionController::createTabForExtension):
Standardize on returning {result: value} for showExtensionTab.
(WebKit::WebInspectorUIExtensionController::showExtensionTab):
Standardize on returning {result: value} for showExtensionTab.
Also, there's no need to inspect the result value if it's not an error.
(WebKit::WebInspectorUIExtensionController::didNavigateExtensionTab):
Add plumbing.
Tools:
Add API test coverage for -inspectorExtension:didNavigateTabWithIdentifier:newURL:
- TestWebKitAPI/Tests/WebKitCocoa/WKInspectorExtension.mm:
(TEST):
Drive-by, fix an outdated completion handler type signature.
- TestWebKitAPI/Tests/WebKitCocoa/WKInspectorExtensionDelegate.mm:
(-[InspectorExtensionDelegateForTesting inspectorExtension:didNavigateTabWithIdentifier:newURL:]):
(TEST):
Add a test case which exercises the new delegate method.
- 12:35 PM Changeset in webkit [286798] by
-
- 2 edits in trunk
Adds Lauro Moura's GitHub username to constributors.json
Unreviewed.
- metadata/contributors.json:
- 12:35 PM Changeset in webkit [286797] by
-
- 2 edits in trunk/Tools
[WebXR][WPE] Build fails without openxr installed
https://bugs.webkit.org/show_bug.cgi?id=220250
Reviewed by Adrian Perez de Castro.
Based on original patch by Yury Semikhatsky. Rebased and installed
only for WPE, as GTK's module set does not declare openxr.
- wpe/dependencies/apt: Install libxcb-glx0-dev
- 12:25 PM Changeset in webkit [286796] by
-
- 15 edits in trunk/Source/WebCore
[GPU Process] [Filters] Add the encoding and decoding for LightSource
https://bugs.webkit.org/show_bug.cgi?id=234086
Reviewed by Wenson Hsieh.
This will allow encoding and decoding FEDiffuseLighting and FESpecularLighting.
The create() and the constructor of the LightSource super classes have
to be non-inline to overcome a "missing vtable" linking issue.
New constructors are added to FEDiffuseLighting and FESpecularLighting
to allow creating these super classes from the combined data members of
FELighting.
m_bufferPosition of PointLightSource and SpotLightSource are used to cache
the absolute value of m_userSpacePosition relative to the result FilterImage.
So it does not need to be encoded/decoded since it is initialized by
FELightingSoftwareApplier.
- Headers.cmake:
- WebCore.xcodeproj/project.pbxproj:
- platform/graphics/filters/DistantLightSource.cpp:
(WebCore::DistantLightSource::create):
(WebCore::DistantLightSource::DistantLightSource):
- platform/graphics/filters/DistantLightSource.h:
(WebCore::DistantLightSource::encode const):
(WebCore::DistantLightSource::decode):
(WebCore::DistantLightSource::create): Deleted.
(WebCore::DistantLightSource::DistantLightSource): Deleted.
- platform/graphics/filters/FEDiffuseLighting.cpp:
(WebCore::FEDiffuseLighting::create):
- platform/graphics/filters/FEDiffuseLighting.h:
- platform/graphics/filters/FELighting.h:
(WebCore::FELighting::encode const):
(WebCore::FELighting::decode):
- platform/graphics/filters/FESpecularLighting.cpp:
(WebCore::FESpecularLighting::create):
- platform/graphics/filters/FESpecularLighting.h:
- platform/graphics/filters/LightSource.h:
- platform/graphics/filters/PointLightSource.cpp:
(WebCore::PointLightSource::create):
(WebCore::PointLightSource::PointLightSource):
- platform/graphics/filters/PointLightSource.h:
(WebCore::PointLightSource::encode const):
(WebCore::PointLightSource::decode):
(WebCore::PointLightSource::create): Deleted.
(WebCore::PointLightSource::PointLightSource): Deleted.
- platform/graphics/filters/SpotLightSource.cpp:
(WebCore::SpotLightSource::create):
(WebCore::SpotLightSource::SpotLightSource):
- platform/graphics/filters/SpotLightSource.h:
(WebCore::SpotLightSource::encode const):
(WebCore::SpotLightSource::decode):
(WebCore::SpotLightSource::create): Deleted.
(WebCore::SpotLightSource::SpotLightSource): Deleted.
- 12:22 PM Changeset in webkit [286795] by
-
- 94 edits15 copies12 adds in trunk
Unprefix -webkit-mask
https://bugs.webkit.org/show_bug.cgi?id=229082
Patch by Matt Woodrow <matt.woodrow@gmail.com> on 2021-12-09
Reviewed by Antti Koivisto.
LayoutTests/imported/w3c:
- web-platform-tests/css/css-masking/animations/mask-image-interpolation-expected.txt:
- web-platform-tests/css/css-masking/animations/mask-position-interpolation-expected.txt:
- web-platform-tests/css/css-masking/clip-path/animations/clip-path-animation-expected.html:
- web-platform-tests/css/css-masking/clip-path/animations/clip-path-animation-filter-expected.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-masking/clip-path/animations/clip-path-animation-expected.html.
- web-platform-tests/css/css-masking/clip-path/animations/clip-path-animation-filter.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-masking/clip-path/animations/clip-path-animation.html.
- web-platform-tests/css/css-masking/clip-path/animations/clip-path-animation-incompatible-shapes1-expected.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-masking/clip-path/animations/clip-path-animation-expected.html.
- web-platform-tests/css/css-masking/clip-path/animations/clip-path-animation-incompatible-shapes1.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-masking/clip-path/animations/clip-path-animation.html.
- web-platform-tests/css/css-masking/clip-path/animations/clip-path-animation-incompatible-shapes2-expected.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-masking/clip-path/animations/clip-path-animation-expected.html.
- web-platform-tests/css/css-masking/clip-path/animations/clip-path-animation-incompatible-shapes2.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-masking/clip-path/animations/clip-path-animation.html.
- web-platform-tests/css/css-masking/clip-path/animations/clip-path-animation-overflow-expected.html: Added.
- web-platform-tests/css/css-masking/clip-path/animations/clip-path-animation-overflow.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-masking/clip-path/animations/clip-path-animation.html.
- web-platform-tests/css/css-masking/clip-path/animations/clip-path-animation-three-keyframes1-expected.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-masking/clip-path/animations/clip-path-animation-expected.html.
- web-platform-tests/css/css-masking/clip-path/animations/clip-path-animation-three-keyframes1.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-masking/clip-path/animations/clip-path-animation.html.
- web-platform-tests/css/css-masking/clip-path/animations/clip-path-animation-three-keyframes2-expected.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-masking/clip-path/animations/clip-path-animation-expected.html.
- web-platform-tests/css/css-masking/clip-path/animations/clip-path-animation-three-keyframes2.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-masking/clip-path/animations/clip-path-animation.html.
- web-platform-tests/css/css-masking/clip-path/animations/clip-path-animation.html:
- web-platform-tests/css/css-masking/clip-path/animations/clip-path-transition-expected.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-masking/clip-path/animations/clip-path-animation-expected.html.
- web-platform-tests/css/css-masking/clip-path/animations/clip-path-transition.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-masking/clip-path/animations/clip-path-animation.html.
- web-platform-tests/css/css-masking/clip-path/animations/w3c-import.log:
- web-platform-tests/css/css-masking/clip-path/clip-path-columns-shape-002.html:
- web-platform-tests/css/css-masking/clip-path/clip-path-descendant-text-mutated-001.html:
- web-platform-tests/css/css-masking/clip-path/clip-path-element-userSpaceOnUse-001.html:
- web-platform-tests/css/css-masking/clip-path/clip-path-element-userSpaceOnUse-002.html:
- web-platform-tests/css/css-masking/clip-path/clip-path-element-userSpaceOnUse-003.html:
- web-platform-tests/css/css-masking/clip-path/clip-path-element-userSpaceOnUse-004.html:
- web-platform-tests/css/css-masking/clip-path/clip-path-fixed-scroll-expected.html: Added.
- web-platform-tests/css/css-masking/clip-path/clip-path-fixed-scroll.html: Added.
- web-platform-tests/css/css-masking/clip-path/clip-path-path-001-expected.html:
- web-platform-tests/css/css-masking/clip-path/clip-path-path-002-expected.html:
- web-platform-tests/css/css-masking/clip-path/clip-path-path-interpolation-001-expected.html:
- web-platform-tests/css/css-masking/clip-path/clip-path-path-interpolation-002-expected.html:
- web-platform-tests/css/css-masking/clip-path/clip-path-reference-restore.html:
- web-platform-tests/css/css-masking/clip-path/clip-path-svg-invalidate-expected.html:
- web-platform-tests/css/css-masking/clip-path/clip-path-svg-invalidate.html:
- web-platform-tests/css/css-masking/clip-path/clip-path-svg-text-backdrop-filter.html:
- web-platform-tests/css/css-masking/clip-path/clip-path-svg-text-font-loading.html:
- web-platform-tests/css/css-masking/clip-path/clip-path-transform-mutated-001.html:
- web-platform-tests/css/css-masking/clip-path/clip-path-transform-mutated-002.html:
- web-platform-tests/css/css-masking/clip-path/clip-path-url-reference-change-from-empty.html:
- web-platform-tests/css/css-masking/clip-path/clip-path-url-reference-change.html:
- web-platform-tests/css/css-masking/clip-path/reference-local-url-with-base-001.html:
- web-platform-tests/css/css-masking/clip-path/reference-mutated.html:
- web-platform-tests/css/css-masking/clip-path/reference-nonexisting-existing-local.html:
- web-platform-tests/css/css-masking/clip-path/w3c-import.log:
- web-platform-tests/css/css-masking/clip-rule/clip-rule-001.html:
- web-platform-tests/css/css-masking/clip-rule/clip-rule-002.html:
- web-platform-tests/css/css-masking/hit-test/clip-path-element-objectboundingbox-001.html:
- web-platform-tests/css/css-masking/hit-test/clip-path-element-objectboundingbox-002.html:
- web-platform-tests/css/css-masking/hit-test/clip-path-element-userspaceonuse-001.html:
- web-platform-tests/css/css-masking/idlharness.html:
- web-platform-tests/css/css-masking/inheritance.sub-expected.txt:
- web-platform-tests/css/css-masking/parsing/mask-position-valid-expected.txt:
- web-platform-tests/css/css-masking/parsing/mask-valid.sub-expected.txt:
Source/WebCore:
Tests: fast/masking/parsing-webkit-mask.html
imported/w3c/web-platform-tests/css/css-masking/clip-path/animations/clip-path-animation-filter.html
imported/w3c/web-platform-tests/css/css-masking/clip-path/animations/clip-path-animation-incompatible-shapes1.html
imported/w3c/web-platform-tests/css/css-masking/clip-path/animations/clip-path-animation-incompatible-shapes2.html
imported/w3c/web-platform-tests/css/css-masking/clip-path/animations/clip-path-animation-overflow.html
imported/w3c/web-platform-tests/css/css-masking/clip-path/animations/clip-path-animation-three-keyframes1.html
imported/w3c/web-platform-tests/css/css-masking/clip-path/animations/clip-path-animation-three-keyframes2.html
imported/w3c/web-platform-tests/css/css-masking/clip-path/animations/clip-path-transition.html
imported/w3c/web-platform-tests/css/css-masking/clip-path/clip-path-fixed-scroll.html
svg/masking/mask-external-reference-expected.svg
svg/masking/mask-external-reference.svg
- animation/CSSPropertyAnimation.cpp:
(WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap):
- css/CSSComputedStyleDeclaration.cpp:
(WebCore::createPositionListForLayer):
(WebCore::ComputedStyleExtractor::valueForPropertyInStyle):
- css/CSSImageValue.cpp:
(WebCore::ResolvedURL::isLocalURL const):
(WebCore::CSSImageValue::reresolvedURL const):
- css/CSSImageValue.h:
- css/CSSPrimitiveValue.h:
(WebCore::CSSPrimitiveValue::create):
- css/CSSPrimitiveValueMappings.h:
(WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
(WebCore::CSSPrimitiveValue::operator CompositeOperator const):
(WebCore::CSSPrimitiveValue::operator FillBox const):
- css/CSSProperties.json:
- css/CSSToStyleMap.cpp:
(WebCore::CSSToStyleMap::mapFillMaskMode):
- css/CSSValueKeywords.in:
- css/CSSValuePool.h:
(WebCore::CSSValuePool::createValue):
- css/SVGCSSComputedStyleDeclaration.cpp:
(WebCore::ComputedStyleExtractor::svgPropertyValue):
- css/StyleProperties.cpp:
(WebCore::StyleProperties::getPropertyValue const):
(WebCore::resolvedClipValue):
(WebCore::isSameAsInitialClipValue):
(WebCore::StyleProperties::getLayeredShorthandValue const):
(WebCore::StyleProperties::asText const):
- css/parser/CSSPropertyParser.cpp:
(WebCore::consumeMaskClip):
(WebCore::consumePrefixedBackgroundComposite):
(WebCore::consumeBackgroundComposite):
(WebCore::consumeBackgroundComponent):
(WebCore::CSSPropertyParser::parseSingleValue):
(WebCore::consumeBackgroundPosition):
(WebCore::CSSPropertyParser::consumeBackgroundShorthand):
(WebCore::CSSPropertyParser::parseShorthand):
- css/parser/CSSPropertyParserHelpers.cpp:
(WebCore::CSSPropertyParserHelpers::consumePositionCoordinates):
- display/css/DisplayBoxDecorationPainter.cpp:
(WebCore::Display::BoxDecorationPainter::paintFillLayer const):
- rendering/style/FillLayer.cpp:
(WebCore::clipMax):
(WebCore::FillLayer::computeClipMax const):
- rendering/style/FillLayer.h:
- rendering/style/RenderStyle.cpp:
(WebCore::rareNonInheritedDataChangeRequiresLayerRepaint):
- rendering/style/RenderStyle.h:
(WebCore::RenderStyle::hasPositionedMask const):
- rendering/style/RenderStyleConstants.cpp:
(WebCore::operator<<):
- rendering/style/RenderStyleConstants.h:
- rendering/style/SVGRenderStyle.cpp:
(WebCore::SVGRenderStyle::SVGRenderStyle):
(WebCore::SVGRenderStyle::operator== const):
(WebCore::SVGRenderStyle::copyNonInheritedFrom):
(WebCore::SVGRenderStyle::diff const):
- rendering/style/SVGRenderStyle.h:
(WebCore::SVGRenderStyle::initialLightingColor):
(WebCore::SVGRenderStyle::y const):
(WebCore::SVGRenderStyle::hasFill const):
(WebCore::SVGRenderStyle::initialMaskerResource): Deleted.
(WebCore::SVGRenderStyle::maskerResource const): Deleted.
(WebCore::SVGRenderStyle::hasMasker const): Deleted.
(WebCore::SVGRenderStyle::isolatesBlending const): Deleted.
(WebCore::SVGRenderStyle::setMaskerResource): Deleted.
- rendering/style/SVGRenderStyleDefs.cpp:
(WebCore::StyleResourceData::StyleResourceData): Deleted.
(WebCore::StyleResourceData::copy const): Deleted.
(WebCore::StyleResourceData::operator== const): Deleted.
- rendering/style/SVGRenderStyleDefs.h:
(WebCore::StyleResourceData::create): Deleted.
(WebCore::StyleResourceData::operator!= const): Deleted.
- rendering/style/StyleCachedImage.cpp:
(WebCore::StyleCachedImage::imageURL const):
(WebCore::StyleCachedImage::reresolvedURL const):
(WebCore::StyleCachedImage::imageURL): Deleted.
- rendering/style/StyleCachedImage.h:
- rendering/style/WillChangeData.cpp:
(WebCore::WillChangeData::propertyCreatesStackingContext):
- rendering/svg/SVGRenderSupport.cpp:
(WebCore::SVGRenderSupport::isolatesBlending):
(WebCore::SVGRenderSupport::updateMaskedAncestorShouldIsolateBlending):
- rendering/svg/SVGRenderTreeAsText.cpp:
(WebCore::writeResources):
- rendering/svg/SVGRenderingContext.cpp:
(WebCore::SVGRenderingContext::prepareToRenderSVGContent):
- rendering/svg/SVGResources.cpp:
(WebCore::SVGResources::buildCachedResources):
LayoutTests:
- fast/masking/parsing-mask-expected.txt:
- fast/masking/parsing-mask-mode.html:
- fast/masking/parsing-mask.html:
- fast/masking/parsing-webkit-mask-expected.txt: Copied from LayoutTests/fast/masking/parsing-mask-expected.txt.
- fast/masking/parsing-webkit-mask.html: Copied from LayoutTests/fast/masking/parsing-mask.html.
- platform/mac/imported/w3c/web-platform-tests/css/css-masking/animations/mask-image-interpolation-expected.png: Added.
- platform/mac/imported/w3c/web-platform-tests/css/css-masking/parsing/mask-valid.sub-expected.png: Added.
- svg/masking/mask-external-reference-expected.svg: Added.
- svg/masking/mask-external-reference.svg: Added.
- svg/masking/resources/mask-resource.svg: Added.
- 12:02 PM Changeset in webkit [286794] by
-
- 14 edits1 delete in trunk/LayoutTests
AX: Make 6 more layout tests async so they pass in isolated tree mode
https://bugs.webkit.org/show_bug.cgi?id=233966
Reviewed by Chris Fleizach.
- accessibility/element-haspopup-expected.txt:
- accessibility/element-haspopup.html:
Use accessibilityController.accessibleElementById to get a reference
to the link1 and link2 AX objects instead of document.getElementById()
and accessibilityController.focusedElement. The latter would work, but
would require the test to be made unnecessarily async.
- accessibility/mac/label-element-changing-children-string-value-expected.txt:
- accessibility/mac/label-element-changing-children-string-value.html:
- accessibility/mac/label-element-changing-textcontent-string-value-expected.txt:
- accessibility/mac/label-element-changing-textcontent-string-value.html:
- accessibility/mac/update-children-when-aria-role-changes-expected.txt:
- accessibility/mac/update-children-when-aria-role-changes.html:
- accessibility/tabindex-removed-expected.txt:
- accessibility/tabindex-removed.html:
Make these tests async. They dynamically change page content with JS,
so they must verify expectations asynchronously to pass in isolated
tree mode.
- accessibility/auto-fill-crash.html:
Make this test async.
- accessibility/auto-fill-crash-expected.txt:
- platform/glib/accessibility/auto-fill-crash-expected.txt:
Update expectations to reflect the test rewrite.
- platform/win/accessibility/auto-fill-crash-expected.txt:
Removed because the expectation is the same as the base
auto-fill-crash-expected.txt
- 11:53 AM Changeset in webkit [286793] by
-
- 4 edits in branches/safari-612-branch/Source/WebCore
Apply patch. rdar://problem/86235842
- 11:39 AM Changeset in webkit [286792] by
-
- 2 edits in trunk/Source/WebInspectorUI
Web Inspector: Enable fuzzy matching for CSS completions
https://bugs.webkit.org/show_bug.cgi?id=234092
Reviewed by Patrick Angle.
Flip the flag to enable fuzzy matching when autocompleting CSS properties and values.
- UserInterface/Base/Setting.js:
- 11:12 AM Changeset in webkit [286791] by
-
- 3 edits in trunk/Tools
Bring up another iOS GPU Processes tester
https://bugs.webkit.org/show_bug.cgi?id=234016
Rubber-stamped by Alexey Proskuryakov.
- CISupport/build-webkit-org/config.json: Repurpose the Catalina GPU bot for this queue.
- CISupport/build-webkit-org/factories_unittest.py:
(TestExpectedBuildSteps): Update unit tests.
- 11:07 AM Changeset in webkit [286790] by
-
- 16 edits in trunk/Source/JavaScriptCore
Add an option to dump the B3 IR for an allowlist of Wasm function indices
https://bugs.webkit.org/show_bug.cgi?id=234028
Reviewed by Tadeu Zagallo.
- b3/B3Common.cpp:
(JSC::B3::shouldDumpIR):
- b3/B3Common.h:
- b3/B3Generate.cpp:
(JSC::B3::generateToAir):
- b3/B3Procedure.cpp:
(JSC::B3::Procedure::dump const):
(JSC::B3::Procedure::setShouldDumpIR):
- b3/B3Procedure.h:
(JSC::B3::Procedure::shouldDumpIR const):
- b3/air/AirGenerate.cpp:
(JSC::B3::Air::prepareForGeneration):
- b3/testb3.h:
(shouldBeVerbose):
(lowerToAirForTesting):
- b3/testb3_6.cpp:
(testInterpreter):
(testMoveConstants):
- b3/testb3_7.cpp:
(testReduceStrengthReassociation):
- runtime/OptionsList.h:
- tools/FunctionAllowlist.cpp:
(JSC::FunctionAllowlist::shouldDumpWasmFunction const):
- tools/FunctionAllowlist.h:
- wasm/WasmB3IRGenerator.cpp:
(JSC::Wasm::shouldDumpIRFor):
(JSC::Wasm::parseAndCompile):
- wasm/WasmOMGForOSREntryPlan.cpp:
(JSC::Wasm::OMGForOSREntryPlan::work):
- wasm/WasmOMGPlan.cpp:
(JSC::Wasm::OMGPlan::work):
- 11:01 AM Changeset in webkit [286789] by
-
- 3 edits in trunk/Source/WebCore
[LFC][IFC] Add support for ink overflow on bidi inline boxes
https://bugs.webkit.org/show_bug.cgi?id=233968
Reviewed by Antti Koivisto.
- layout/formattingContexts/inline/InlineDisplayContentBuilder.cpp:
(WebCore::Layout::InlineDisplayContentBuilder::appendInlineDisplayBoxAtBidiBoundary):
(WebCore::Layout::InlineDisplayContentBuilder::ensureDisplayBoxForContainer):
(WebCore::Layout::InlineDisplayContentBuilder::adjustVisualGeometryForChildNode):
(WebCore::Layout::InlineDisplayContentBuilder::processBidiContent):
- layout/formattingContexts/inline/InlineDisplayContentBuilder.h:
- 10:58 AM Changeset in webkit [286788] by
-
- 28 edits3 copies in trunk
Add ability to inject messages into webpushd
https://bugs.webkit.org/show_bug.cgi?id=233988
Reviewed by Alex Christensen.
Source/WebKit:
Covered by API tests.
This patch:
- Adds WKWebsiteDataStore SPI to fetch pending push messages for the embedding application
- Gives webpushd code to inject a push message for a given bundle identifier
- Gives webpushtool the ability to send one of these fake messages
- Gives webpushtool the ability to reconnect to the next daemon instance after the current connection is dropped
- Tests the injection and fetching of push messages via TestWebKitAPI
- Configurations/webpushtool.xcconfig:
- WebKit.xcodeproj/project.pbxproj:
- Resources/webpushtool.entitlements:
- NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::getPendingPushMessages):
(WebKit::NetworkProcess::processPushMessage):
- NetworkProcess/NetworkProcess.h:
- NetworkProcess/NetworkProcess.messages.in:
- NetworkProcess/Notifications/NetworkNotificationManager.cpp:
(WebKit::NetworkNotificationManager::getPendingPushMessages):
(WebKit::ReplyCaller<Vector<WebPushMessage>::callReply):
- NetworkProcess/Notifications/NetworkNotificationManager.h:
- Shared/Cocoa/WebPushMessageCocoa.mm: Copied from Source/WebKit/webpushd/webpushtool/WebPushToolConnection.h.
(WebKit::WebPushMessage::fromDictionary):
(WebKit::WebPushMessage::toDictionary const):
- Shared/PushMessageForTesting.h: Copied from Source/WebKit/Shared/WebPushDaemonConstants.h.
(WebKit::WebPushD::PushMessageForTesting::encode const):
(WebKit::WebPushD::PushMessageForTesting::decode):
- Shared/WebPushDaemonConstants.h:
(WebKit::WebPushD::messageTypeSendsReply):
- Shared/WebPushMessage.h: Copied from Source/WebKit/webpushd/webpushtool/WebPushToolConnection.h.
(WebKit::WebPushMessage::encode const):
(WebKit::WebPushMessage::decode):
- UIProcess/API/Cocoa/WKWebsiteDataStore.mm:
(-[WKWebsiteDataStore _getPendingPushMessages:]):
(-[WKWebsiteDataStore _processPushMessage:completionHandler:]):
(-[WKWebsiteDataStore _processPushMessage:registration:completionHandler:]): Deleted.
- UIProcess/API/Cocoa/WKWebsiteDataStorePrivate.h:
- UIProcess/Network/NetworkProcessProxy.cpp:
(WebKit::NetworkProcessProxy::getPendingPushMessages):
(WebKit::NetworkProcessProxy::processPushMessage):
- UIProcess/Network/NetworkProcessProxy.h:
- webpushd/PushClientConnection.h:
- webpushd/PushClientConnection.mm:
(WebPushD::ClientConnection::hostAppHasPushEntitlement):
(WebPushD::ClientConnection::hostAppHasPushInjectEntitlement):
(WebPushD::ClientConnection::hostHasEntitlement):
(WebPushD::ClientConnection::broadcastDebugMessage):
- webpushd/WebPushDaemon.h:
- webpushd/WebPushDaemon.mm:
(WebPushD::MessageInfo::injectPushMessageForTesting::encodeReply):
(WebPushD::MessageInfo::getPendingPushMessages::encodeReply):
(WebPushD::Daemon::decodeAndHandleMessage):
(WebPushD::Daemon::injectPushMessageForTesting):
(WebPushD::Daemon::getPendingPushMessages):
- webpushd/webpushtool/WebPushToolConnection.h:
(WebPushTool::Connection::setPushMessage):
- webpushd/webpushtool/WebPushToolConnection.mm:
(WebPushTool::Connection::startAction):
(WebPushTool::Connection::sendPushMessage):
- webpushd/webpushtool/WebPushToolMain.mm:
(printUsageAndTerminate):
(pushMessageFromArguments):
(main):
Tools:
- TestWebKitAPI/Configurations/TestWebKitAPI-iOS.entitlements:
- TestWebKitAPI/Configurations/TestWebKitAPI-macOS-internal.entitlements:
- TestWebKitAPI/Configurations/TestWebKitAPI-macOS.entitlements:
- TestWebKitAPI/Tests/WebKitCocoa/PushAPI.mm:
(messageDictionary):
- TestWebKitAPI/Tests/WebKitCocoa/WebPushDaemon.mm:
(TestWebKitAPI::createMessageDictionary):
(TestWebKitAPI::sendMessageToDaemon):
(TestWebKitAPI::sendMessageToDaemonWaitingForReply):
(TestWebKitAPI::sendConfigurationWithAuditToken):
(TestWebKitAPI::createAndConfigureConnectionToService):
(TestWebKitAPI::encodeString):
(TestWebKitAPI::TEST):
(TestWebKitAPI::function):
- TestWebKitAPI/cocoa/TestWKWebView.h:
- 10:44 AM Changeset in webkit [286787] by
-
- 2 edits in trunk/LayoutTests
[ iOS EWS ] 2X media/track (layout-tests) are a constant image failure
https://bugs.webkit.org/show_bug.cgi?id=234090
Unreviewed test gardening.
- platform/ios-wk2/TestExpectations:
- 10:33 AM Changeset in webkit [286786] by
-
- 2 edits in trunk/Source/WebCore
[LFC][IFC] Add support for empty bidi inline boxes
https://bugs.webkit.org/show_bug.cgi?id=233896
Reviewed by Antti Koivisto.
Inline boxes with decoration only should also produce associated display boxes.
- layout/formattingContexts/inline/InlineDisplayContentBuilder.cpp:
(WebCore::Layout::createdDisplayBoxNodeForContainerBoxAndPushToAncestorStack):
(WebCore::Layout::InlineDisplayContentBuilder::ensureDisplayBoxForContainer):
(WebCore::Layout::InlineDisplayContentBuilder::processBidiContent):
- 9:53 AM Changeset in webkit [286785] by
-
- 44 edits in trunk
[WebAuthn] Remove user gesture requirement for using platform authenticator on the web
https://bugs.webkit.org/show_bug.cgi?id=230893
<rdar://problem/79781342>
Reviewed by Brent Fulgham.
Source/WebCore:
Remove web authentication user gesture bypass quirk as it's no longer used.
- page/Quirks.cpp:
(WebCore::Quirks::shouldBypassUserGestureRequirementForWebAuthn const): Deleted.
- page/Quirks.h:
Source/WebKit:
This patch loosens the user gesture requirement around using WebAuthn with respect to user gestures by
removing the Quirks.h allowlist of sites that get a freebie. Instead the new behavior is
all sites get one freebie, then on subsequent attempts they show a non-modal consent dialog.
- UIProcess/API/APIUIClient.h:
(API::UIClient::requestWebAuthenticationNoGesture):
- UIProcess/API/C/WKPage.cpp:
(WKPageSetPageUIClient):
- UIProcess/API/C/WKPageUIClient.h:
- UIProcess/API/Cocoa/WKUIDelegatePrivate.h:
- UIProcess/Cocoa/UIDelegate.h:
- UIProcess/Cocoa/UIDelegate.mm:
(WebKit::UIDelegate::setDelegate):
(WebKit::UIDelegate::UIClient::requestWebAuthenticationNoGesture):
- UIProcess/WebAuthentication/WebAuthenticatorCoordinatorProxy.cpp:
(WebKit::WebAuthenticatorCoordinatorProxy::handleRequest):
- WebProcess/WebAuthentication/WebAuthenticatorCoordinator.cpp:
(WebKit::WebAuthenticatorCoordinator::processingUserGesture):
Tools:
This patch removes the Quirks allowlist of the freebie web authentication use without a gesture and replaces it with one freebie, then a consent sheet.
- TestWebKitAPI/Tests/WebKitCocoa/_WKWebAuthenticationPanel.mm:
(-[TestWebAuthenticationPanelUIDelegate _webView:requestWebAuthenticationNoGestureForOrigin:completionHandler:]):
Test delegate
LayoutTests:
Modify layout tests to reflect new WebAuthn user gesture console message.
- http/wpt/credential-management/credentialscontainer-store-basics.https-expected.txt:
- http/wpt/webauthn/ctap-hid-failure.https-expected.txt:
- http/wpt/webauthn/ctap-hid-success.https-expected.txt:
- http/wpt/webauthn/ctap-nfc-failure.https-expected.txt:
- http/wpt/webauthn/idl.https-expected.txt:
- http/wpt/webauthn/public-key-credential-create-failure-hid-silent.https-expected.txt:
- http/wpt/webauthn/public-key-credential-create-failure-hid.https-expected.txt:
- http/wpt/webauthn/public-key-credential-create-failure-local-silent.https-expected.txt:
- http/wpt/webauthn/public-key-credential-create-failure-local.https-expected.txt:
- http/wpt/webauthn/public-key-credential-create-failure-nfc.https-expected.txt:
- http/wpt/webauthn/public-key-credential-create-failure-u2f-silent.https-expected.txt:
- http/wpt/webauthn/public-key-credential-create-failure-u2f.https-expected.txt:
- http/wpt/webauthn/public-key-credential-create-failure.https-expected.txt:
- http/wpt/webauthn/public-key-credential-create-success-hid.https-expected.txt:
- http/wpt/webauthn/public-key-credential-create-success-local.https-expected.txt:
- http/wpt/webauthn/public-key-credential-create-success-nfc.https-expected.txt:
- http/wpt/webauthn/public-key-credential-create-success-u2f.https-expected.txt:
- http/wpt/webauthn/public-key-credential-get-failure-hid-silent.https-expected.txt:
- http/wpt/webauthn/public-key-credential-get-failure-hid.https-expected.txt:
- http/wpt/webauthn/public-key-credential-get-failure-local-silent.https-expected.txt:
- http/wpt/webauthn/public-key-credential-get-failure-local.https-expected.txt:
- http/wpt/webauthn/public-key-credential-get-failure-nfc.https-expected.txt:
- http/wpt/webauthn/public-key-credential-get-failure-u2f-silent.https-expected.txt:
- http/wpt/webauthn/public-key-credential-get-failure-u2f.https-expected.txt:
- http/wpt/webauthn/public-key-credential-get-failure.https-expected.txt:
- http/wpt/webauthn/public-key-credential-get-success-hid.https-expected.txt:
- http/wpt/webauthn/public-key-credential-get-success-local.https-expected.txt:
- http/wpt/webauthn/public-key-credential-get-success-nfc.https-expected.txt:
- http/wpt/webauthn/public-key-credential-get-success-u2f.https-expected.txt:
- 9:26 AM Changeset in webkit [286784] by
-
- 4 edits in trunk/Source/WebCore
[LFC][IFC] Refactor bidi inline box boundary handling
https://bugs.webkit.org/show_bug.cgi?id=233880
Reviewed by Antti Koivisto.
This patch remove some code complexity by introducing more suitable data types to handle
content ranges for inline boxes.
- The final output of the InlineDisplayContentBuilder is a list of display boxes. It's a simple "one box right after the other" type of setup with continuous geometry (ie next box starts where the previous ends +-horizontal margins) unless the content is embedded in an inline box (e.g. <span>embedded content</span>) Inline box type of display boxes enclose all their descendant content. Normally when the logical order == visual order (unidirectional content), the descendant content ends right before the "inline box end" mark (</span>). It makes it easy to compute the right edge/enclosing width for the inline box type of display boxes.
- However the visual order of the bidi content makes the "let's use the inline box end mark" logic unusable as we may see the "inline box end" mark even before we come across any descendant content (there are other types of confusions with random ordering).
- Working with a list when the content comes in a nested flavor may introduce some complexity (e.g. need to keep content ranges around).
This patch introduces a very simple DisplayBoxNode type which keeps track of the display boxes in a tree fashion.
The display boxes are still stored in a list, while this newly introduced DisplayBoxNode tree helps traversing
the nested content.
It helps finding out the insertion point at unexpected bidi boundaries (e.g. when nested content from other inline boxes
show up in a logically unrelated inline box) and it is also very valuable when computing visual geometries for those enclosing display boxes.
- layout/formattingContexts/inline/InlineDisplayContentBuilder.cpp:
(WebCore::Layout::DisplayBoxNode::DisplayBoxNode):
(WebCore::Layout::DisplayBoxNode::appendChild):
(WebCore::Layout::AncestorStack::unwind):
(WebCore::Layout::AncestorStack::push):
(WebCore::Layout::InlineDisplayContentBuilder::ensureDisplayBoxForContainer):
(WebCore::Layout::InlineDisplayContentBuilder::adjustVisualGeometryForChildNode):
(WebCore::Layout::InlineDisplayContentBuilder::insertInlineBoxDisplayBoxForBidiBoundary): Deleted.
(WebCore::Layout::InlineDisplayContentBuilder::adjustInlineBoxDisplayBoxForBidiBoundary): Deleted.
(WebCore::Layout::InlineDisplayContentBuilder::processBidiContent): Deleted.
(WebCore::Layout::InlineDisplayContentBuilder::processOverflownRunsForEllipsis): Deleted.
(WebCore::Layout::InlineDisplayContentBuilder::collectInkOverflowForInlineBoxes): Deleted.
(WebCore::Layout::InlineDisplayContentBuilder::computeIsFirstIsLastBoxForInlineContent): Deleted.
- layout/formattingContexts/inline/InlineDisplayContentBuilder.h:
- layout/formattingContexts/inline/display/InlineDisplayBox.h:
(WebCore::InlineDisplay::Box::setLogicalLeft):
(WebCore::InlineDisplay::Box::setLogicalRight):
(WebCore::InlineDisplay::Box::setLogicalRect):
(WebCore::InlineDisplay::Box::setHasContent):
- 9:22 AM Changeset in webkit [286783] by
-
- 2 edits in trunk/Source/WTF
Enable :focus-visible pseudo-class by default
https://bugs.webkit.org/show_bug.cgi?id=234019
<rdar://problem/86218583>
Reviewed by Brent Fulgham.
This enables :focus-visible pseudo-class for authors.
It also changes :focus-visible behavior in the user agent stylesheet so that
- <div tabindex> (or any element with 'tabindex' attribute that is not focusable otherwise) will not show focus indicator when focused via click/tap/script.
- <details> element will not show focus indicator when focused via click/tap/script.
Both still show focus indicator when focused via keyboard (tab) navigation.
- Scripts/Preferences/WebPreferencesExperimental.yaml:
- 9:10 AM Changeset in webkit [286782] by
-
- 4 edits in trunk/Source/WebCore
[LFC][IFC] Make collectInkOverflowForInlineBoxes propagate ink overflow using the display box list
https://bugs.webkit.org/show_bug.cgi?id=233950
Reviewed by Antti Koivisto.
This is in preparation for supporting ink overflow across bidi boundaries.
The current HashMap<const Box*, size_t> approach does not work when a layout box could
produce multiple inline box type of display boxes on the same line (at bidi boundaries).
Instead let's propagate ink overflow by traversing the display box list starting
at the end and bubble up the inflated ink overflow rect to the parent inline boxes.
- layout/formattingContexts/inline/InlineDisplayContentBuilder.cpp:
(WebCore::Layout::InlineDisplayContentBuilder::build):
(WebCore::Layout::computeBoxShadowInkOverflow):
(WebCore::Layout::InlineDisplayContentBuilder::appendAtomicInlineLevelDisplayBox):
(WebCore::Layout::InlineDisplayContentBuilder::appendInlineBoxDisplayBox):
(WebCore::Layout::InlineDisplayContentBuilder::appendSpanningInlineBoxDisplayBox):
(WebCore::Layout::InlineDisplayContentBuilder::collectInkOverflowForInlineBoxes):
(WebCore::Layout::addBoxShadowInkOverflow): Deleted.
- layout/formattingContexts/inline/InlineDisplayContentBuilder.h:
- 8:39 AM Changeset in webkit [286781] by
-
- 2 edits in trunk/Source/WebKit
Unreviewed fix after r286778 to address WebContent crashes on launch
- WebProcess/com.apple.WebProcess.sb.in:
- 7:40 AM Changeset in webkit [286780] by
-
- 3 edits in trunk/Source/WebCore
AX: Use RefPtr<AXCoreObject> instead of raw AXCoreObject* pointers in Accessibility::findMatchingObjects and downstream functions
https://bugs.webkit.org/show_bug.cgi?id=233888
Reviewed by Chris Fleizach.
Move usages of raw AXCoreObject* pointers to RefPtr<AXCoreObject> in
Accessibility::findMatchingObjects and downstream functions.
This fixes isolated tree mode only crashes for tests:
- accessibility/mac/search-predicate-element-count.html
- accessibility/mac/search-predicate-visible-button.html
These crashed because:
- The secondary thread starts a search and stores raw pointers on its stack.
- The main thread performs some operation to queue isolated tree changes.
- The search continues on the secondary thread, eventually calling AXIsolatedObject::children. This in turns calls AXIsolatedTree::pendingChanges.
- The object(s) which we held pointers to are destroyed.
- accessibility/AccessibilityObject.cpp:
(WebCore::appendAccessibilityObject):
(WebCore::Accessibility::isRadioButtonInDifferentAdhocGroup):
(WebCore::Accessibility::isAccessibilityObjectSearchMatchAtIndex):
(WebCore::Accessibility::isAccessibilityObjectSearchMatch):
(WebCore::Accessibility::isAccessibilityTextSearchMatch):
(WebCore::Accessibility::objectMatchesSearchCriteriaWithResultLimit):
(WebCore::Accessibility::appendChildrenToArray):
(WebCore::Accessibility::findMatchingObjects):
Use RefPtr<AXCoreObject> instead of raw AXCoreObject* pointers.
- 7:33 AM Changeset in webkit [286779] by
-
- 2 edits in trunk/Source/ThirdParty/ANGLE
[ANGLE] Code generation happens on each build and produces SCM diffs
https://bugs.webkit.org/show_bug.cgi?id=234025
Reviewed by Kimmo Kinnunen.
Temporarily remove the build phase that generates the
mtl_default_shaders_src_autogen files because they are producing
diffs.
We either need to generate these manually, or fix the Xcode project
to generate them into Derived Sources so they don't appear in our
repository.
- ANGLE.xcodeproj/project.pbxproj:
- 7:07 AM Changeset in webkit [286778] by
-
- 2 edits in trunk/Source/WebKit
[macOS][WP] Block access to unused system calls
https://bugs.webkit.org/show_bug.cgi?id=234003
Reviewed by Brent Fulgham.
Based on telemetry, block access to unused system calls in the WebContent process on macOS.
- WebProcess/com.apple.WebProcess.sb.in:
- 6:46 AM Changeset in webkit [286777] by
-
- 28 edits3 deletes in trunk
Unreviewed, reverting r286764.
https://bugs.webkit.org/show_bug.cgi?id=234081
broke the build
Reverted changeset:
"Add ability to inject messages into webpushd"
https://bugs.webkit.org/show_bug.cgi?id=233988
https://commits.webkit.org/r286764
- 6:03 AM Changeset in webkit [286776] by
-
- 3 edits2 adds in trunk
[selectors] Match :focus-visible on <select> elements
https://bugs.webkit.org/show_bug.cgi?id=233924
Reviewed by Antti Koivisto.
Source/WebCore:
Test: fast/forms/select-listbox-focusring.html
- dom/Element.cpp:
(WebCore::shouldAlwaysHaveFocusVisibleWhenFocused):
LayoutTests:
- fast/forms/select-listbox-focusring-expected.html: Added.
- fast/forms/select-listbox-focusring.html: Added.
- 5:14 AM Changeset in webkit [286775] by
-
- 7 edits in trunk
[selectors] Use :focus-visible in the user agent style sheet
https://bugs.webkit.org/show_bug.cgi?id=221925
<rdar://problem/74613552>
Reviewed by Manuel Rego Casasnovas.
LayoutTests/imported/w3c:
- web-platform-tests/css/selectors/focus-visible-018-2-expected.txt:
- web-platform-tests/css/selectors/focus-visible-018-expected.txt:
Source/WebCore:
Replace :-internal-direct-focus with :focus-visible for the default focus outline styling in the user agent style sheet.
When enabled, this will change focus drawing behavior in two cases:
- <div tabindex> (or any element with 'tabindex' attribute that is not focusable otherwise) will not show focus indicator when focused via click/tap/script.
- <details> will not show focus indicator when focused via click/tap/script.
Both still show focus indicator when focused via keyboard (tab) navigation.
With the feature disabled UA sheet :focus-visible behaves like :-internal-direct-focus.
This patch does not enable the feature yet.
- css/SelectorCheckerTestFunctions.h:
(WebCore::matchesFocusVisiblePseudoClass):
Check the feature flag. If it is not enabled :focus-visible matches like :-internal-direct-focus.
- css/html.css:
(:focus-visible):
(:-internal-direct-focus): Deleted.
Replace :-internal-direct-focus.
- css/parser/CSSParserContext.cpp:
(WebCore::CSSParserContext::CSSParserContext):
Always allow :focus-visible when parsing UA sheet.
- 3:42 AM Changeset in webkit [286774] by
-
- 2 edits in trunk/Source/WebKit
Copy ServiceWorkerNavigationPreloader error when failing its ServiceWorkerFetchTask
https://bugs.webkit.org/show_bug.cgi?id=234002
Reviewed by Chris Dumez.
Covered by existing tests.
- NetworkProcess/ServiceWorker/ServiceWorkerFetchTask.cpp:
When failing a ServiceWorkerNavigationPreloader, we might delete it, so it is not safe to manage a reference to its error.
Instead copy the error.
- 3:23 AM Changeset in webkit [286773] by
-
- 8 edits in trunk/Source/bmalloc
[libpas] Fix up missing header includes and build guards in unit tests
https://bugs.webkit.org/show_bug.cgi?id=234007
Patch by Zan Dobersek <zdobersek@igalia.com> on 2021-12-09
Reviewed by Yusuke Suzuki.
Add missing header inclusions in different libpas unit test sources
to avoid build problems.
In IsoHeapChaosTests.cpp, Mach-specific thread-related header inclusion
and usage is put inside PAS_OS(DARWIN) build guards. On Linux, the
enumerator sub-tests that utilize this thread suspension and resuming
functionality are disabled.
- libpas/src/test/ExpendableMemoryTests.cpp:
- libpas/src/test/IsoHeapChaosTests.cpp:
(std::testAllocationChaos):
- libpas/src/test/IsoHeapPageSharingTests.cpp:
- libpas/src/test/IsoHeapPartialAndBaselineTests.cpp:
- libpas/src/test/RaceTests.cpp:
- libpas/src/test/TestHarness.cpp:
- libpas/src/test/ThingyAndUtilityHeapAllocationTests.cpp:
- 2:34 AM Changeset in webkit [286772] by
-
- 94 edits3 copies31 moves2 adds1 delete in trunk
Move TextCodec files from WebCore/platform/text to WebCore/PAL/text
https://bugs.webkit.org/show_bug.cgi?id=233683
Reviewed by Yusuke Suzuki.
Source/WebCore:
This is a purely mechanical move. The TextCodec files don't have any dependencies
except for ICU, so they're good candidates to move.
They do have a thread-local cache, so I split ThreadGlobalData into a PAL part and
a WebCore part.
No new tests because there is no behavior change.
- Headers.cmake:
- Modules/encryptedmedia/legacy/LegacyCDMSessionClearKey.cpp:
(WebCore::CDMSessionClearKey::generateKeyRequest):
- Modules/fetch/FetchBody.cpp:
(WebCore::FetchBody::consumeAsStream):
(WebCore::FetchBody::consumeText):
(WebCore::FetchBody::bodyAsFormData const):
(WebCore::FetchBody::take):
- Modules/fetch/FetchBodyConsumer.cpp:
(WebCore::FetchBodyConsumer::packageFormData):
- Sources.txt:
- SourcesCocoa.txt:
- WebCore.xcodeproj/project.pbxproj:
- accessibility/atk/WebKitAccessibleInterfaceText.cpp:
- bindings/js/ScriptController.cpp:
(WebCore::ScriptController::executeJavaScriptURL):
- css/parser/CSSParserContext.cpp:
(WebCore::CSSParserContext::completeURL const):
- css/parser/CSSParserContext.h:
- dom/Document.cpp:
(WebCore::Document::characterSetWithUTF8Fallback const):
(WebCore::Document::defaultCharsetForLegacyBindings const):
- dom/Document.h:
- dom/DocumentInlines.h:
(WebCore::Document::textEncoding const):
- dom/TextDecoder.cpp:
- dom/TextDecoder.h:
- fileapi/BlobBuilder.cpp:
(WebCore::BlobBuilder::append):
- fileapi/FileReaderLoader.cpp:
(WebCore::FileReaderLoader::convertToText):
(WebCore::FileReaderLoader::setEncoding):
- fileapi/FileReaderLoader.h:
- html/DOMFormData.cpp:
(WebCore::DOMFormData::DOMFormData):
(WebCore::DOMFormData::create):
- html/DOMFormData.h:
(WebCore::DOMFormData::encoding const):
- html/HTMLLinkElement.cpp:
(WebCore::HTMLLinkElement::process):
- html/ImageDocument.cpp:
(WebCore::ImageDocument::finishedParsing):
- html/MediaFragmentURIParser.cpp:
(WebCore::MediaFragmentURIParser::parseFragments):
- html/parser/HTMLMetaCharsetParser.cpp:
(WebCore::HTMLMetaCharsetParser::HTMLMetaCharsetParser):
(WebCore::HTMLMetaCharsetParser::encodingFromMetaAttributes):
- html/parser/HTMLMetaCharsetParser.h:
(WebCore::HTMLMetaCharsetParser::encoding):
- html/track/WebVTTParser.cpp:
(WebCore::WebVTTParser::WebVTTParser):
- inspector/agents/InspectorDOMAgent.cpp:
(WebCore::computeContentSecurityPolicySHA256Hash):
- inspector/agents/InspectorNetworkAgent.cpp:
- inspector/agents/InspectorPageAgent.cpp:
(WebCore::decodeBuffer):
- loader/FormSubmission.cpp:
(WebCore::appendMailtoPostFormDataToURL):
(WebCore::encodingFromAcceptCharset):
(WebCore::FormSubmission::create):
- loader/TextResourceDecoder.cpp:
(WebCore::findTextEncoding):
(WebCore::TextResourceDecoder::defaultEncoding):
(WebCore::TextResourceDecoder::TextResourceDecoder):
(WebCore::TextResourceDecoder::create):
(WebCore::TextResourceDecoder::setEncoding):
(WebCore::TextResourceDecoder::checkForBOM):
(WebCore::TextResourceDecoder::checkForHeadCharset):
(WebCore::TextResourceDecoder::decode):
(WebCore::TextResourceDecoder::flush):
(WebCore::TextResourceDecoder::encodingForURLParsing):
- loader/TextResourceDecoder.h:
(WebCore::TextResourceDecoder::create):
(WebCore::TextResourceDecoder::encoding const):
- loader/cache/CachedApplicationManifest.cpp:
(WebCore::CachedApplicationManifest::CachedApplicationManifest):
- loader/cache/CachedScript.cpp:
(WebCore::CachedScript::script):
- page/FrameView.cpp:
(WebCore::FrameView::scrollToFragment):
- page/Page.cpp:
(WebCore::Page::userStyleSheetLocationChanged):
- page/PageSerializer.cpp:
(WebCore::PageSerializer::serializeFrame):
(WebCore::PageSerializer::serializeCSSStyleSheet):
- page/SecurityOrigin.cpp:
(WebCore::SecurityOrigin::extractInnerURL):
(WebCore::SecurityOrigin::create):
- page/csp/ContentSecurityPolicy.cpp:
(WebCore::ContentSecurityPolicy::findHashOfContentInPolicies const):
- page/csp/ContentSecurityPolicy.h:
- page/csp/ContentSecurityPolicySource.cpp:
(WebCore::ContentSecurityPolicySource::pathMatches const):
- page/csp/ContentSecurityPolicySourceList.cpp:
(WebCore::ContentSecurityPolicySourceList::parsePath):
- platform/ThreadGlobalData.cpp:
(WebCore::ThreadGlobalData::ThreadGlobalData):
(WebCore::ThreadGlobalData::destroy):
(PAL::threadGlobalData):
- platform/ThreadGlobalData.h:
(WebCore::ThreadGlobalData::threadTimers):
(WebCore::ThreadGlobalData::ThreadGlobalData::cachedResourceRequestInitiators): Deleted.
(WebCore::ThreadGlobalData::ThreadGlobalData::eventNames): Deleted.
(WebCore::ThreadGlobalData::ThreadGlobalData::qualifiedNameCache): Deleted.
(WebCore::ThreadGlobalData::ThreadGlobalData::mimeTypeRegistryThreadGlobalData): Deleted.
(WebCore::ThreadGlobalData::ThreadGlobalData::threadTimers): Deleted.
(WebCore::ThreadGlobalData::ThreadGlobalData::cachedConverterICU): Deleted.
(WebCore::ThreadGlobalData::ThreadGlobalData::currentState const): Deleted.
(WebCore::ThreadGlobalData::ThreadGlobalData::setCurrentState): Deleted.
(WebCore::ThreadGlobalData::ThreadGlobalData::isInRemoveAllEventListeners const): Deleted.
(WebCore::ThreadGlobalData::ThreadGlobalData::setIsInRemoveAllEventListeners): Deleted.
(WebCore::ThreadGlobalData::ThreadGlobalData::fontCache): Deleted.
(WebCore::ThreadGlobalData::ThreadGlobalData::fontCacheIfNotDestroyed): Deleted.
- platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
(WebCore::MediaPlayerPrivateAVFoundationObjC::shouldWaitForLoadingOfResource):
- platform/gtk/PlatformKeyboardEventGtk.cpp:
- platform/network/DataURLDecoder.cpp:
(WebCore::DataURLDecoder::decodeBase64):
(WebCore::DataURLDecoder::decodeEscaped):
- platform/network/FormData.cpp:
(WebCore::normalizeStringData):
(WebCore::FormData::appendMultiPartFileValue):
(WebCore::FormData::appendMultiPartStringValue):
(WebCore::FormData::flattenToString const):
- platform/network/FormData.h:
- platform/network/FormDataBuilder.cpp:
(WebCore::FormDataBuilder::addFilenameToMultiPartHeader):
- platform/network/FormDataBuilder.h:
- platform/network/curl/ResourceHandleCurl.cpp:
(WebCore::ResourceHandle::handleDataURL):
- platform/network/soup/ResourceHandleSoup.cpp:
- platform/win/ClipboardUtilitiesWin.cpp:
(WebCore::getFullCFHTML):
(WebCore::getUtf8Data):
- platform/win/DragDataWin.cpp:
- platform/win/PasteboardWin.cpp:
(WebCore::Pasteboard::documentFragment):
(WebCore::createGlobalHDropContent):
- rendering/RenderText.cpp:
(WebCore::RenderText::computeUseBackslashAsYenSymbol const):
- xml/XMLHttpRequest.cpp:
(WebCore::XMLHttpRequest::send):
(WebCore::XMLHttpRequest::finalResponseCharset const):
(WebCore::XMLHttpRequest::createDecoder const):
- xml/XMLHttpRequest.h:
- xml/XSLTProcessor.cpp:
(WebCore::XSLTProcessor::createDocumentFromSource):
Source/WebCore/PAL:
This is a purely mechanical move. The TextCodec files don't have any dependencies
except for ICU, so they're good candidates to move.
- PAL.xcodeproj/project.pbxproj:
- pal/CMakeLists.txt:
- pal/PlatformMac.cmake:
- pal/ThreadGlobalData.cpp: Copied from Source/WebCore/PAL/pal/text/UnencodableHandling.h.
(PAL::ThreadGlobalData::ThreadGlobalData):
(PAL::ThreadGlobalData::destroy):
- pal/ThreadGlobalData.h: Copied from Source/WebCore/html/parser/HTMLMetaCharsetParser.h.
(PAL::ThreadGlobalData::ThreadGlobalData::cachedConverterICU):
- pal/text/DecodeEscapeSequences.h: Renamed from Source/WebCore/platform/text/DecodeEscapeSequences.h.
(PAL::Unicode16BitEscapeSequence::findEndOfRun):
(PAL::Unicode16BitEscapeSequence::decodeRun):
(PAL::URLEscapeSequence::findEndOfRun):
(PAL::URLEscapeSequence::decodeRun):
(PAL::decodeURLEscapeSequencesAsData):
- pal/text/EncodingTables.cpp: Renamed from Source/WebCore/platform/text/EncodingTables.cpp.
(PAL::big5):
(PAL::eucKR):
- pal/text/EncodingTables.h: Renamed from Source/WebCore/platform/text/EncodingTables.h.
(PAL::findInSortedPairs):
- pal/text/TextCodec.cpp: Renamed from Source/WebCore/platform/text/TextCodec.cpp.
- pal/text/TextCodec.h: Renamed from Source/WebCore/platform/text/TextCodec.h.
- pal/text/TextCodecASCIIFastPath.h: Renamed from Source/WebCore/platform/text/TextCodecASCIIFastPath.h.
- pal/text/TextCodecCJK.cpp: Renamed from Source/WebCore/platform/text/TextCodecCJK.cpp.
(PAL::gb18030Ranges):
- pal/text/TextCodecCJK.h: Renamed from Source/WebCore/platform/text/TextCodecCJK.h.
- pal/text/TextCodecICU.cpp: Renamed from Source/WebCore/platform/text/TextCodecICU.cpp.
(PAL::TextCodecICU::decode):
- pal/text/TextCodecICU.h: Renamed from Source/WebCore/platform/text/TextCodecICU.h.
- pal/text/TextCodecLatin1.cpp: Renamed from Source/WebCore/platform/text/TextCodecLatin1.cpp.
- pal/text/TextCodecLatin1.h: Renamed from Source/WebCore/platform/text/TextCodecLatin1.h.
- pal/text/TextCodecReplacement.cpp: Renamed from Source/WebCore/platform/text/TextCodecReplacement.cpp.
- pal/text/TextCodecReplacement.h: Renamed from Source/WebCore/platform/text/TextCodecReplacement.h.
- pal/text/TextCodecSingleByte.cpp: Renamed from Source/WebCore/platform/text/TextCodecSingleByte.cpp.
(PAL::TextCodecSingleByte::encode const):
(PAL::TextCodecSingleByte::decode):
- pal/text/TextCodecSingleByte.h: Renamed from Source/WebCore/platform/text/TextCodecSingleByte.h.
- pal/text/TextCodecUTF16.cpp: Renamed from Source/WebCore/platform/text/TextCodecUTF16.cpp.
- pal/text/TextCodecUTF16.h: Renamed from Source/WebCore/platform/text/TextCodecUTF16.h.
- pal/text/TextCodecUTF8.cpp: Renamed from Source/WebCore/platform/text/TextCodecUTF8.cpp.
(PAL::TextCodecUTF8::decode):
- pal/text/TextCodecUTF8.h: Renamed from Source/WebCore/platform/text/TextCodecUTF8.h.
- pal/text/TextCodecUserDefined.cpp: Renamed from Source/WebCore/platform/text/TextCodecUserDefined.cpp.
- pal/text/TextCodecUserDefined.h: Renamed from Source/WebCore/platform/text/TextCodecUserDefined.h.
- pal/text/TextEncoding.cpp: Renamed from Source/WebCore/platform/text/TextEncoding.cpp.
(PAL::TextEncoding::encode const):
- pal/text/TextEncoding.h: Renamed from Source/WebCore/platform/text/TextEncoding.h.
- pal/text/TextEncodingDetector.h: Renamed from Source/WebCore/platform/text/TextEncodingDetector.h.
- pal/text/TextEncodingDetectorICU.cpp: Renamed from Source/WebCore/platform/text/TextEncodingDetectorICU.cpp.
(PAL::detectTextEncoding):
- pal/text/TextEncodingRegistry.cpp: Renamed from Source/WebCore/platform/text/TextEncodingRegistry.cpp.
(PAL::isUndesiredAlias):
- pal/text/TextEncodingRegistry.h: Renamed from Source/WebCore/platform/text/TextEncodingRegistry.h.
- pal/text/UnencodableHandling.h:
- pal/text/ios/TextEncodingRegistryIOS.mm: Renamed from Source/WebCore/platform/text/ios/TextEncodingRegistryIOS.mm.
(PAL::webDefaultCFStringEncoding):
- pal/text/mac/TextEncodingRegistryMac.mm: Renamed from Source/WebCore/platform/text/mac/TextEncodingRegistryMac.mm.
- pal/text/win/TextCodecWin.cpp: Renamed from Source/WebCore/platform/text/win/TextCodecWin.cpp.
(PAL::getCodePageFlags):
- pal/text/win/TextCodecWin.h: Renamed from Source/WebCore/platform/text/win/TextCodecWin.h.
Source/WebKit:
Update to use the new PAL files.
- NetworkProcess/CustomProtocols/Cocoa/LegacyCustomProtocolManagerCocoa.mm:
- NetworkProcess/WebStorage/LocalStorageDatabaseTracker.cpp:
- NetworkProcess/WebStorage/StorageManager.cpp:
- NetworkProcess/WebStorage/StorageManagerSet.cpp:
(WebKit::StorageManagerSet::StorageManagerSet):
- NetworkProcess/curl/NetworkDataTaskCurl.cpp:
(WebKit::NetworkDataTaskCurl::suggestedFilename const):
- NetworkProcess/soup/NetworkDataTaskSoup.cpp:
(WebKit::NetworkDataTaskSoup::suggestedFilename const):
- Scripts/PreferencesTemplates/WebPreferencesStoreDefaultsMap.cpp.erb:
- UIProcess/API/glib/WebKitFileChooserRequest.cpp:
(webkit_file_chooser_request_select_files):
- UIProcess/API/glib/WebKitSettings.cpp:
- UIProcess/Inspector/WebInspectorUIProxy.cpp:
(WebKit::WebInspectorUIProxy::isMainOrTestInspectorPage):
- WebProcess/Plugins/PluginView.cpp:
(WebKit::PluginView::performJavaScriptURLRequest):
Source/WebKitLegacy:
Update to use the new PAL files.
- Storage/StorageTracker.cpp:
(WebKit::StorageTracker::internalInitialize):
Source/WebKitLegacy/mac:
Update to use the new PAL files.
- Misc/WebNSURLExtras.mm:
(-[NSString _webkit_stringByReplacingValidPercentEscapes]):
- WebView/WebFrame.mm:
(+[WebFrame stringWithData:textEncodingName:]):
- WebView/WebPreferences.mm:
(+[WebPreferences _systemCFStringEncoding]):
(+[WebPreferences _setInitialDefaultTextEncodingToSystemEncoding]):
- WebView/WebResource.mm:
(-[WebResource _stringValue]):
Source/WebKitLegacy/win:
Update to use the new PAL files.
- WebDownloadCurl.cpp:
(WebDownload::didReceiveResponse):
Source/WTF:
Update to use the new PAL files.
- Scripts/Preferences/WebPreferences.yaml:
Tools:
Update to use the new PAL files.
- Scripts/webkitpy/style/checkers/cpp.py:
(check_identifier_name_in_declaration):
- TestWebKitAPI/Tests/WebCore/TextCodec.cpp:
(TestWebKitAPI::testDecode):
- TestWebKitAPI/Tests/WebCore/URLParserTextEncoding.cpp:
(TestWebKitAPI::checkURL):
(TestWebKitAPI::TEST_F):
- 2:33 AM Changeset in webkit [286771] by
-
- 2 edits in trunk/Source/WebKit
Unreviewed. Fix GTK build.
WebKitBuild/Release/WTF/Headers/wtf/persistence/PersistentCoder.h:40:11: error: ‘const class WTF::String’ has no member named ‘encode’
40 | t.encode(encoder);
|
~
- NetworkProcess/storage/NetworkStorageManager.cpp: Include wtf/persistence/PersistentCoders.h
- 2:17 AM Changeset in webkit [286770] by
-
- 4 edits in trunk/Source
[WebGPU] [MacCatalyst] Fix WebGPU Mac Catalyst build in Apple's internal build system
https://bugs.webkit.org/show_bug.cgi?id=234072
Unreviewed.
Source/WebKit:
No new tests because there is no behavior change.
- Configurations/BaseTarget.xcconfig:
Source/WebKitLegacy/mac:
- Configurations/WebKitLegacy.xcconfig:
- 12:47 AM Changeset in webkit [286769] by
-
- 26 edits in trunk/Source/JavaScriptCore
[JSC] Introduce BaselineCallLinkInfo and OptimizingCallLinkInfo to shrink sizeof(BaselineCallLinkInfo)
https://bugs.webkit.org/show_bug.cgi?id=233985
Reviewed by Mark Lam.
This patch introduces BaselineCallLinkInfo and OptimizingCallLinkInfo to shrink sizeof(BaselineCallLinkInfo).
BaselineCallLinkInfo is included in metadata, and allocated for LLInt and Baseline. So shrinking it can make
metadata small for LLInt and Baseline, which exists for all live functions.
We also reorder OpIteratorOpen::Metadata and OpIteratorNext::Metadata to shrink sizes.
sizeof(BaselineCallLinkInfo) becomes 88, while the old sizeof(CallLinkInfo) was 120.
- bytecode/AccessCase.cpp:
(JSC::AccessCase::generateImpl):
- bytecode/BytecodeList.rb:
- bytecode/CallLinkInfo.cpp:
(JSC::CallLinkInfo::setMonomorphicCallee):
(JSC::CallLinkInfo::emitFastPathImpl):
(JSC::OptimizingCallLinkInfo::emitFastPath):
(JSC::OptimizingCallLinkInfo::emitTailCallFastPath):
(JSC::OptimizingCallLinkInfo::emitSlowPath):
(JSC::CallLinkInfo::emitDataICSlowPath):
(JSC::OptimizingCallLinkInfo::slowPathStart):
(JSC::OptimizingCallLinkInfo::fastPathStart):
(JSC::OptimizingCallLinkInfo::emitDirectFastPath):
(JSC::OptimizingCallLinkInfo::emitDirectTailCallFastPath):
(JSC::OptimizingCallLinkInfo::initializeDirectCall):
(JSC::OptimizingCallLinkInfo::setDirectCallTarget):
(JSC::BaselineCallLinkInfo::initialize):
(JSC::CallLinkInfo::slowPathStart): Deleted.
(JSC::CallLinkInfo::fastPathStart): Deleted.
(JSC::CallLinkInfo::emitFastPath): Deleted.
(JSC::CallLinkInfo::emitTailCallFastPath): Deleted.
(JSC::CallLinkInfo::emitSlowPath): Deleted.
(JSC::CallLinkInfo::initializeDataIC): Deleted.
(JSC::CallLinkInfo::emitDirectFastPath): Deleted.
(JSC::CallLinkInfo::emitDirectTailCallFastPath): Deleted.
(JSC::CallLinkInfo::initializeDirectCall): Deleted.
(JSC::CallLinkInfo::setDirectCallTarget): Deleted.
- bytecode/CallLinkInfo.h:
(JSC::CallLinkInfo::type const):
(JSC::CallLinkInfo::CallLinkInfo):
(JSC::CallLinkInfo::calleeGPR const):
(JSC::CallLinkInfo::callLinkInfoGPR const):
(JSC::CallLinkInfo::setCallLinkInfoGPR):
(JSC::CallLinkInfo::setUpCall): Deleted.
(JSC::CallLinkInfo::setCodeLocations): Deleted.
(JSC::CallLinkInfo::calleeGPR): Deleted.
- bytecode/CallLinkStatus.cpp:
(JSC::CallLinkStatus::computeFor):
- bytecode/CodeBlock.cpp:
(JSC::CodeBlock::finishCreation):
(JSC::CodeBlock::setupWithUnlinkedBaselineCode):
(JSC::CodeBlock::finalizeUnconditionally):
(JSC::CodeBlock::getICStatusMap):
(JSC::CodeBlock::jettison):
- bytecode/GetterSetterAccessCase.h:
- bytecode/PolymorphicAccess.h:
- bytecode/Repatch.cpp:
(JSC::revertCall):
(JSC::linkDirectCall):
- bytecode/Repatch.h:
- dfg/DFGCommonData.h:
(JSC::DFG::CommonData::addCallLinkInfo):
- dfg/DFGJITCompiler.cpp:
(JSC::DFG::JITCompiler::link):
- dfg/DFGJITCompiler.h:
(JSC::DFG::JITCompiler::addJSCall):
(JSC::DFG::JITCompiler::addJSDirectCall):
(JSC::DFG::JITCompiler::JSCallRecord::JSCallRecord):
(JSC::DFG::JITCompiler::JSDirectCallRecord::JSDirectCallRecord):
- dfg/DFGOperations.cpp:
(JSC::DFG::JSC_DEFINE_JIT_OPERATION):
- dfg/DFGOperations.h:
- dfg/DFGSpeculativeJIT32_64.cpp:
(JSC::DFG::SpeculativeJIT::emitCall):
- dfg/DFGSpeculativeJIT64.cpp:
(JSC::DFG::SpeculativeJIT::emitCall):
- ftl/FTLLowerDFGToB3.cpp:
(JSC::FTL::DFG::LowerDFGToB3::compileCompareStrictEq):
- jit/CallFrameShuffleData.cpp:
(JSC::CallFrameShuffleData::createForBaselineOrLLIntTailCall):
- jit/GCAwareJITStubRoutine.cpp:
(JSC::MarkingGCAwareJITStubRoutine::MarkingGCAwareJITStubRoutine):
(JSC::GCAwareJITStubRoutineWithExceptionHandler::GCAwareJITStubRoutineWithExceptionHandler):
(JSC::createICJITStubRoutine):
- jit/GCAwareJITStubRoutine.h:
- jit/JITCall.cpp:
(JSC::JIT::compileCallEvalSlowCase):
(JSC::JIT::compileTailCall):
(JSC::JIT::compileOpCall):
(): Deleted.
- wasm/js/JSWebAssemblyCodeBlock.h:
- wasm/js/WasmToJS.cpp:
(JSC::Wasm::wasmToJS):
- wasm/js/WasmToJS.h:
- 12:37 AM Changeset in webkit [286768] by
-
- 4 edits in trunk/Source
[WebGPU] Fix WebGPU build in Apple's internal build system
https://bugs.webkit.org/show_bug.cgi?id=234070
Unreviewed.
The PAL headers get put in a different place.
Source/WebKit:
No new tests because there is no behavior change.
- Configurations/BaseTarget.xcconfig:
Source/WebKitLegacy/mac:
- Configurations/WebKitLegacy.xcconfig:
- 12:26 AM Changeset in webkit [286767] by
-
- 21 edits in trunk
[GTK][a11y] Ensure atspi wrappers have root set at construction time
https://bugs.webkit.org/show_bug.cgi?id=233804
Reviewed by Joanmarie Diggs.
Source/WebCore:
Pass the AccessibilityRootAtspi as a parameter to AccessibilityObjectAtspi constructor and store it as a
reference. A pointer to the AccessibilityRootAtspi object is now set in Page so that it can be accessed from the
AXObjectCache. Also remove setRoot() and use m_root directly instead of root() accessor.
- accessibility/atspi/AXObjectCacheAtspi.cpp:
(WebCore::AXObjectCache::attachWrapper): Get the AccessibilityRootAtspi from the page and pass it to the wrapper
constructor. Also set the parent of the dom root element wrapper to the atspi root element.
- accessibility/atspi/AccessibilityAtspi.cpp:
(WebCore::AccessibilityAtspi::childrenChanged):
- accessibility/atspi/AccessibilityObjectAtspi.cpp:
(WebCore::AccessibilityObjectAtspi::create):
(WebCore::AccessibilityObjectAtspi::AccessibilityObjectAtspi):
(WebCore::AccessibilityObjectAtspi::cacheDestroyed):
(WebCore::AccessibilityObjectAtspi::elementDestroyed):
(WebCore::AccessibilityObjectAtspi::path):
(WebCore::AccessibilityObjectAtspi::reference):
(WebCore::AccessibilityObjectAtspi::hyperlinkReference):
(WebCore::AccessibilityObjectAtspi::parentReference const):
(WebCore::AccessibilityObjectAtspi::childAt const):
(WebCore::AccessibilityObjectAtspi::wrapperVector const):
(WebCore::AccessibilityObjectAtspi::buildRelationSet const):
(WebCore::AccessibilityObjectAtspi::serialize const):
(WebCore::AccessibilityObjectAtspi::childAdded):
(WebCore::AccessibilityObjectAtspi::childRemoved):
(WebCore::AccessibilityObjectAtspi::stateChanged):
(WebCore::AccessibilityObjectAtspi::setRoot): Deleted.
(WebCore::AccessibilityObjectAtspi::root const): Deleted.
- accessibility/atspi/AccessibilityObjectAtspi.h:
- accessibility/atspi/AccessibilityObjectComponentAtspi.cpp:
- accessibility/atspi/AccessibilityObjectHyperlinkAtspi.cpp:
- accessibility/atspi/AccessibilityObjectHypertextAtspi.cpp:
(WebCore::AccessibilityObjectAtspi::hyperlink const):
- accessibility/atspi/AccessibilityObjectSelectionAtspi.cpp:
(WebCore::AccessibilityObjectAtspi::selectedChild const):
(WebCore::AccessibilityObjectAtspi::selectionChanged):
- accessibility/atspi/AccessibilityObjectTableAtspi.cpp:
(WebCore::AccessibilityObjectAtspi::cell const):
(WebCore::AccessibilityObjectAtspi::tableCaption const):
(WebCore::AccessibilityObjectAtspi::rowHeader const):
(WebCore::AccessibilityObjectAtspi::columnHeader const):
- accessibility/atspi/AccessibilityObjectTableCellAtspi.cpp:
(WebCore::AccessibilityObjectAtspi::cellRowHeaders const):
(WebCore::AccessibilityObjectAtspi::cellColumnHeaders const):
- accessibility/atspi/AccessibilityObjectTextAtspi.cpp:
(WebCore::AccessibilityObjectAtspi::textInserted):
(WebCore::AccessibilityObjectAtspi::textDeleted):
(WebCore::AccessibilityObjectAtspi::selectionChanged):
(WebCore::AccessibilityObjectAtspi::textAttributesChanged):
- accessibility/atspi/AccessibilityObjectValueAtspi.cpp:
(WebCore::AccessibilityObjectAtspi::valueChanged):
- accessibility/atspi/AccessibilityRootAtspi.cpp:
(WebCore::AccessibilityRootAtspi::registerObject):
(WebCore::AccessibilityRootAtspi::unregisterObject):
(WebCore::AccessibilityRootAtspi::child const):
(WebCore::AccessibilityRootAtspi::focusedObject const): Deleted.
- accessibility/atspi/AccessibilityRootAtspi.h:
- page/Page.h:
(WebCore::Page::accessibilityRootObject const):
(WebCore::Page::setAccessibilityRootObject):
Source/WebKit:
- WebProcess/InjectedBundle/API/c/WKBundlePage.cpp:
(WKAccessibilityRootObject): Remove ATSPI specific code.
(WKAccessibilityFocusedObject): Ditto.
- WebProcess/WebPage/WebPage.h:
(WebKit::WebPage::accessibilityRootObject const): Deleted.
Tools:
- WebKitTestRunner/InjectedBundle/atspi/AccessibilityControllerAtspi.cpp:
(WTR::AccessibilityController::axRunLoop):
Dec 8, 2021:
- 11:09 PM Changeset in webkit [286766] by
-
- 2 edits in trunk/Source/WebCore
Fix build after r286759
https://bugs.webkit.org/show_bug.cgi?id=234067
Unreviewed.
No new tests because there is no behavior change.
- platform/audio/ios/AudioSessionIOS.mm:
(WebCore::AudioSessionIOS::setPresentingProcesses):
- 10:39 PM Changeset in webkit [286765] by
-
- 27 edits in trunk/Source/WebCore
[GPU Process] [Filters] Make Filter::apply() and FilterEffect:apply() take FilterImageVector for the inputs
https://bugs.webkit.org/show_bug.cgi?id=233973
rdar://86248999
Reviewed by Cameron McCormack.
This is a step towards removing the dependency on the input effects. This
step is required to make encoding/decoding the FilterEffect just be
sending or receiving its primitive data.
In this patch:
-- The sourceImage and sourceImageRect arguments to Filter::apply() are
used to create a FilterImage. This will be the input to the SourceGraphic.
-- The members m_sourceImage and m_sourceImageRect of Filter are removed.
-- CSSFilter::apply() loops through its functions and uses the result
of every function as the input to the next one. The initial input is
the sourceImage. And the result of the last function is the returned
FilterImage.
-- SVGFilter::apply() loops through its expression. It uses a stack of
FilterImageVector to keep track of the inputs while applying each
FilterEffect. Every FilterEffect is asked to takeInputs() from this
stack. The result of applying the FilterEffect is pushed on this stack.
The stack should have a single FilterImage when finishing the loop.
This item is the result of applying the Filter.
-- FilterEffect::transformInputsColorSpace() was added to transform the
input FilterImageVector to the operating color space of FilterEffect.
It is overridden by FEDisplacementMap which does not transform the
color space of the first input FilterImage.
-- FilterEffect::correctPremultipliedInputs() was added to correct the
premultiplied pixels of the inputs FilterImageVector. We do not need
to do this correction if the FilterEffect we apply is arithmetic
composite filter. Otherwise we need to correct the FilterImage of any
arithmetic composite filter in the FilterImageVector.
-- No need for totalNumberFilterEffects(). This count is the size of the
SVGFilter expression.
- platform/graphics/coreimage/SourceGraphicCoreImageApplier.mm:
(WebCore::SourceGraphicCoreImageApplier::apply const):
- platform/graphics/filters/FEBlend.h:
- platform/graphics/filters/FEComposite.h:
- platform/graphics/filters/FEDisplacementMap.cpp:
(WebCore::FEDisplacementMap::calculateImageRect const):
(WebCore::FEDisplacementMap::transformInputsColorSpace const):
(WebCore::FEDisplacementMap::transformResultColorSpace): Deleted.
- platform/graphics/filters/FEDisplacementMap.h:
- platform/graphics/filters/FEFlood.h:
- platform/graphics/filters/FEMerge.h:
- platform/graphics/filters/FETurbulence.h:
- platform/graphics/filters/Filter.cpp:
(WebCore::Filter::apply):
- platform/graphics/filters/Filter.h:
(WebCore::Filter::sourceImageRect const): Deleted.
(WebCore::Filter::setSourceImageRect): Deleted.
(WebCore::Filter::sourceImage const): Deleted.
(WebCore::Filter::setSourceImage): Deleted.
- platform/graphics/filters/FilterEffect.cpp:
(WebCore::FilterEffect::takeImageInputs const):
(WebCore::FilterEffect::calculateImageRect const):
(WebCore::FilterEffect::transformInputsColorSpace const):
(WebCore::FilterEffect::correctPremultipliedInputs const):
(WebCore::FilterEffect::apply):
(WebCore::FilterEffect::inputEffect const):
(WebCore::FilterEffect::inputFilterImages const): Deleted.
(WebCore::FilterEffect::correctPremultipliedResultIfNeeded): Deleted.
(WebCore::FilterEffect::transformResultColorSpace): Deleted.
- platform/graphics/filters/FilterEffect.h:
(WebCore::FilterEffect::filterImage const):
(WebCore::FilterEffect::numberOfEffectInputs const):
(WebCore::FilterEffect::numberOfImageInputs const):
(WebCore::FilterEffect::resultIsValidPremultiplied const):
(WebCore::FilterEffect::mayProduceInvalidPremultipliedPixels const): Deleted.
(WebCore::FilterEffect::correctFilterResultIfNeeded): Deleted.
(WebCore::FilterEffect::transformResultColorSpace): Deleted.
- platform/graphics/filters/FilterFunction.h:
(WebCore::FilterFunction::apply):
- platform/graphics/filters/FilterImage.cpp:
(WebCore::FilterImage::create):
(WebCore::FilterImage::FilterImage):
(WebCore::FilterImage::correctPremultipliedPixelBuffer):
- platform/graphics/filters/FilterImage.h:
- platform/graphics/filters/SourceAlpha.cpp:
(WebCore::SourceAlpha::calculateImageRect const): Deleted.
- platform/graphics/filters/SourceAlpha.h:
- platform/graphics/filters/SourceGraphic.cpp:
(WebCore::SourceGraphic::calculateImageRect const): Deleted.
- platform/graphics/filters/SourceGraphic.h:
- platform/graphics/filters/software/SourceGraphicSoftwareApplier.cpp:
(WebCore::SourceGraphicSoftwareApplier::apply const):
- rendering/CSSFilter.cpp:
(WebCore::CSSFilter::apply):
- rendering/CSSFilter.h:
- svg/graphics/filters/SVGFEImage.h:
- svg/graphics/filters/SVGFilter.cpp:
(WebCore::SVGFilter::apply):
- svg/graphics/filters/SVGFilter.h:
- svg/graphics/filters/SVGFilterBuilder.cpp:
(WebCore::SVGFilterBuilder::buildFilterEffects):
(WebCore::SVGFilterBuilder::buildExpression const):
(WebCore::collectEffects): Deleted.
(WebCore::totalNumberFilterEffects): Deleted.
- 10:37 PM Changeset in webkit [286764] by
-
- 28 edits3 copies in trunk
Add ability to inject messages into webpushd
https://bugs.webkit.org/show_bug.cgi?id=233988
Reviewed by Alex Christensen.
Source/WebKit:
Covered by API tests.
This patch:
- Adds WKWebsiteDataStore SPI to fetch pending push messages for the embedding application
- Gives webpushd code to inject a push message for a given bundle identifier
- Gives webpushtool the ability to send one of these fake messages
- Gives webpushtool the ability to reconnect to the next daemon instance after the current connection is dropped
- Tests the injection and fetching of push messages via TestWebKitAPI
- Configurations/webpushtool.xcconfig:
- WebKit.xcodeproj/project.pbxproj:
- Resources/webpushtool.entitlements:
- NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::getPendingPushMessages):
(WebKit::NetworkProcess::processPushMessage):
- NetworkProcess/NetworkProcess.h:
- NetworkProcess/NetworkProcess.messages.in:
- NetworkProcess/Notifications/NetworkNotificationManager.cpp:
(WebKit::NetworkNotificationManager::getPendingPushMessages):
(WebKit::ReplyCaller<Vector<WebPushMessage>::callReply):
- NetworkProcess/Notifications/NetworkNotificationManager.h:
- Shared/Cocoa/WebPushMessageCocoa.mm: Copied from Source/WebKit/webpushd/webpushtool/WebPushToolConnection.h.
(WebKit::WebPushMessage::fromDictionary):
(WebKit::WebPushMessage::toDictionary const):
- Shared/PushMessageForTesting.h: Copied from Source/WebKit/Shared/WebPushDaemonConstants.h.
(WebKit::WebPushD::PushMessageForTesting::encode const):
(WebKit::WebPushD::PushMessageForTesting::decode):
- Shared/WebPushDaemonConstants.h:
(WebKit::WebPushD::messageTypeSendsReply):
- Shared/WebPushMessage.h: Copied from Source/WebKit/webpushd/webpushtool/WebPushToolConnection.h.
(WebKit::WebPushMessage::encode const):
(WebKit::WebPushMessage::decode):
- UIProcess/API/Cocoa/WKWebsiteDataStore.mm:
(-[WKWebsiteDataStore _getPendingPushMessages:]):
(-[WKWebsiteDataStore _processPushMessage:completionHandler:]):
(-[WKWebsiteDataStore _processPushMessage:registration:completionHandler:]): Deleted.
- UIProcess/API/Cocoa/WKWebsiteDataStorePrivate.h:
- UIProcess/Network/NetworkProcessProxy.cpp:
(WebKit::NetworkProcessProxy::getPendingPushMessages):
(WebKit::NetworkProcessProxy::processPushMessage):
- UIProcess/Network/NetworkProcessProxy.h:
Tools:
- TestWebKitAPI/Configurations/TestWebKitAPI-iOS.entitlements:
- TestWebKitAPI/Configurations/TestWebKitAPI-macOS-internal.entitlements:
- TestWebKitAPI/Configurations/TestWebKitAPI-macOS.entitlements:
- TestWebKitAPI/Tests/WebKitCocoa/PushAPI.mm:
(messageDictionary):
- TestWebKitAPI/Tests/WebKitCocoa/WebPushDaemon.mm:
(TestWebKitAPI::createMessageDictionary):
(TestWebKitAPI::sendMessageToDaemon):
(TestWebKitAPI::sendMessageToDaemonWaitingForReply):
(TestWebKitAPI::sendConfigurationWithAuditToken):
(TestWebKitAPI::createAndConfigureConnectionToService):
(TestWebKitAPI::encodeString):
(TestWebKitAPI::TEST):
(TestWebKitAPI::function):
- TestWebKitAPI/cocoa/TestWKWebView.h:
- 10:34 PM Changeset in webkit [286763] by
-
- 7 edits in trunk
CSP: Skip whitespace at beginning of policy header
https://bugs.webkit.org/show_bug.cgi?id=233951
Reviewed by Kate Cheney.
LayoutTests/imported/w3c:
Update expectations as passing.
- web-platform-tests/content-security-policy/script-src/script-src-strict_dynamic_double_policy_honor_source_expressions.sub-expected.txt:
Source/WebCore:
This should have no practical effect but it fixes matching
the originalPolicy property in WPT results.
- page/csp/ContentSecurityPolicy.cpp:
(WebCore::ContentSecurityPolicy::didReceiveHeader):
LayoutTests:
No longer skip a test and update results to not have leading whitespace.
- TestExpectations:
- http/tests/security/contentSecurityPolicy/1.1/script-blocked-sends-multiple-reports-expected.txt:
- 9:27 PM Changeset in webkit [286762] by
-
- 17 edits in trunk/Source
Show correct content menu for images services chevron.
https://bugs.webkit.org/show_bug.cgi?id=233970
Reviewed by Tim Horton.
Add support for showing the correct context menu for image services.
Since this is internal only and can never be affected by web content, we bypass
the web content round trip and directly message the UIProcess about showing
a context menu for images. And because it would be bizarre if the web content
could prevent a menu from popping up on a button they have no control over.
Source/WebCore:
- dom/mac/ImageControlsMac.cpp:
(WebCore::ImageControlsMac::isImageControlsButtonElement):
(WebCore::ImageControlsMac::imageFromImageElementNode):
(WebCore::ImageControlsMac::handleEvent):
(WebCore::ImageControlsMac::imageControlHost): Deleted.
- dom/mac/ImageControlsMac.h:
- html/HTMLButtonElement.cpp:
(WebCore::HTMLButtonElement::defaultEventHandler):
- page/ChromeClient.h:
(WebCore::ChromeClient::handleImageServiceClick):
- page/ContextMenuController.cpp:
(WebCore::ContextMenuController::maybeCreateContextMenu):
(WebCore::imageFromImageElementNode): Deleted.
Source/WebKit:
- Shared/ContextMenuContextData.cpp:
(WebKit::ContextMenuContextData::ContextMenuContextData):
(WebKit::m_selectionIsEditable):
(WebKit::ContextMenuContextData::setImage):
(WebKit::ContextMenuContextData::controlledDataIsEditable const):
- Shared/ContextMenuContextData.h:
(WebKit::ContextMenuContextData::webHitTestResultData):
(WebKit::ContextMenuContextData::webHitTestResultData const):
- UIProcess/WebContextMenuProxy.cpp:
(WebKit::WebContextMenuProxy::show):
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::contextMenuItemSelected):
- UIProcess/mac/WebContextMenuProxyMac.mm:
(WebKit::WebContextMenuProxyMac::getShareMenuItem):
(WebKit::WebContextMenuProxyMac::getContextMenuFromItems):
(WebKit::WebContextMenuProxyMac::useContextMenuItems):
- UIProcess/mac/WebPageProxyMac.mm:
(WebKit::WebPageProxy::handleContextMenuQuickLookImage):
- WebProcess/WebCoreSupport/WebChromeClient.cpp:
(WebKit::WebChromeClient::handleImageServiceClick):
- WebProcess/WebCoreSupport/WebChromeClient.h:
- WebProcess/WebPage/WebPage.h:
- WebProcess/WebPage/mac/WebPageMac.mm:
(WebKit::WebPage::handleImageServiceClick):
- 8:21 PM Changeset in webkit [286761] by
-
- 1 edit1 add in trunk/PerformanceTests
Add layout performance test for simple bidi content with inline boxes
https://bugs.webkit.org/show_bug.cgi?id=234062
Unreviewed.
This is in preparation for enabling IFC bidi handling.
- Layout/line-layout-simple-bidi-with-inline-boxes.html: Added.
- 8:17 PM Changeset in webkit [286760] by
-
- 1 edit1 add in trunk/PerformanceTests
Add layout performance test for bidi content with direction override inside inline boxes
https://bugs.webkit.org/show_bug.cgi?id=234064
Unreviewed.
This is in preparation for enabling IFC bidi handling.
- Layout/line-layout-simple-bidi-with-direction-overrides-in-inline-boxes.html: Added.
- 8:05 PM Changeset in webkit [286759] by
-
- 2 edits in trunk/Source/WebCore
[MacCatalyst] Fix Mac Catalyst build
https://bugs.webkit.org/show_bug.cgi?id=234067
Unreviewed.
There's a compile error:
Source/WebCore/platform/audio/ios/AudioSessionIOS.mm:247:5: error: 'auto' deduced as 'id' in declaration of 'session' [-Werror,-Wauto-var-id]
auto *session = [PAL::getAVAudioSessionClass() sharedInstance];
No new tests because there is no behavior change.
- platform/audio/ios/AudioSessionIOS.mm:
(WebCore::setEligibleForSmartRouting):
(WebCore::AudioSessionIOS::setPresentingProcesses):
(WebCore::AudioSessionIOS::setCategory):
- 6:40 PM Changeset in webkit [286758] by
-
- 73 edits in trunk/LayoutTests
[WPE] Update test baselines after r284521. Unreviewed test gardening.
https://bugs.webkit.org/show_bug.cgi?id=234023
These are all changes in tag capitalization due to files being
detected as XHTML instead of HTML.
Patch by Arcady Goldmints-Orlov <Arcady Goldmints-Orlov> on 2021-12-08
- platform/wpe/fast/block/positioning/inline-block-relposition-expected.txt:
- platform/wpe/fast/body-propagation/background-color/001-expected.txt:
- platform/wpe/fast/body-propagation/background-color/005-expected.txt:
- platform/wpe/fast/body-propagation/background-image/001-expected.txt:
- platform/wpe/fast/body-propagation/background-image/005-expected.txt:
- platform/wpe/fast/body-propagation/background-image/009-expected.txt:
- platform/wpe/fast/body-propagation/background-image/010-expected.txt:
- platform/wpe/fast/body-propagation/overflow/005-expected.txt:
- platform/wpe/fast/text/tatechuyoko-expected.txt:
- platform/wpe/ietestcenter/css3/bordersbackgrounds/background-color-applied-to-rounded-inline-element-expected.txt:
- platform/wpe/ietestcenter/css3/bordersbackgrounds/background-color-border-box-expected.txt:
- platform/wpe/ietestcenter/css3/bordersbackgrounds/background-repeat-space-padding-box-expected.txt:
- platform/wpe/ietestcenter/css3/bordersbackgrounds/background-size-002-expected.txt:
- platform/wpe/ietestcenter/css3/bordersbackgrounds/background-size-applies-to-block-expected.txt:
- platform/wpe/ietestcenter/css3/bordersbackgrounds/background_color_padding_box-expected.txt:
- platform/wpe/ietestcenter/css3/bordersbackgrounds/background_position_three_four_values-expected.txt:
- platform/wpe/ietestcenter/css3/bordersbackgrounds/background_properties_greater_than_images-expected.txt:
- platform/wpe/ietestcenter/css3/bordersbackgrounds/background_repeat_space_border_box-expected.txt:
- platform/wpe/ietestcenter/css3/bordersbackgrounds/background_repeat_space_content_box-expected.txt:
- platform/wpe/ietestcenter/css3/bordersbackgrounds/border-radius-applies-to-001-expected.txt:
- platform/wpe/ietestcenter/css3/bordersbackgrounds/border-radius-applies-to-002-expected.txt:
- platform/wpe/ietestcenter/css3/bordersbackgrounds/border-radius-applies-to-003-expected.txt:
- platform/wpe/ietestcenter/css3/bordersbackgrounds/border-radius-applies-to-005-expected.txt:
- platform/wpe/ietestcenter/css3/bordersbackgrounds/border-radius-applies-to-006-expected.txt:
- platform/wpe/ietestcenter/css3/bordersbackgrounds/border-radius-applies-to-007-expected.txt:
- platform/wpe/ietestcenter/css3/bordersbackgrounds/border-radius-applies-to-008-expected.txt:
- platform/wpe/ietestcenter/css3/bordersbackgrounds/border-radius-applies-to-009-expected.txt:
- platform/wpe/ietestcenter/css3/bordersbackgrounds/border-radius-applies-to-010-expected.txt:
- platform/wpe/ietestcenter/css3/bordersbackgrounds/border-radius-applies-to-011-expected.txt:
- platform/wpe/ietestcenter/css3/bordersbackgrounds/border-radius-applies-to-012-expected.txt:
- platform/wpe/ietestcenter/css3/bordersbackgrounds/border-radius-applies-to-013-expected.txt:
- platform/wpe/ietestcenter/css3/bordersbackgrounds/border-radius-applies-to-014-expected.txt:
- platform/wpe/ietestcenter/css3/bordersbackgrounds/border-radius-applies-to-015-expected.txt:
- platform/wpe/ietestcenter/css3/bordersbackgrounds/border-radius-applies-to-016-expected.txt:
- platform/wpe/ietestcenter/css3/bordersbackgrounds/border-radius-applies-to-017-expected.txt:
- platform/wpe/ietestcenter/css3/bordersbackgrounds/border-radius-clip-001-expected.txt:
- platform/wpe/ietestcenter/css3/bordersbackgrounds/border-radius-clip-002-expected.txt:
- platform/wpe/ietestcenter/css3/bordersbackgrounds/border-radius-content-edge-001-expected.txt:
- platform/wpe/ietestcenter/css3/bordersbackgrounds/border-radius-initial-value-001-expected.txt:
- platform/wpe/ietestcenter/css3/bordersbackgrounds/border-radius-not-inherited-001-expected.txt:
- platform/wpe/ietestcenter/css3/bordersbackgrounds/border-radius-shorthand-001-expected.txt:
- platform/wpe/ietestcenter/css3/bordersbackgrounds/border-radius-style-001-expected.txt:
- platform/wpe/ietestcenter/css3/bordersbackgrounds/border-radius-style-002-expected.txt:
- platform/wpe/ietestcenter/css3/bordersbackgrounds/border-radius-style-003-expected.txt:
- platform/wpe/ietestcenter/css3/bordersbackgrounds/border-radius-style-004-expected.txt:
- platform/wpe/ietestcenter/css3/bordersbackgrounds/border-radius-style-005-expected.txt:
- platform/wpe/ietestcenter/css3/bordersbackgrounds/border-radius-sum-of-radii-001-expected.txt:
- platform/wpe/ietestcenter/css3/bordersbackgrounds/border-radius-sum-of-radii-002-expected.txt:
- platform/wpe/ietestcenter/css3/bordersbackgrounds/border-radius-with-three-values-001-expected.txt:
- platform/wpe/ietestcenter/css3/bordersbackgrounds/border-radius-with-two-values-001-expected.txt:
- platform/wpe/ietestcenter/css3/bordersbackgrounds/border-top-left-radius-values-001-expected.txt:
- platform/wpe/ietestcenter/css3/bordersbackgrounds/border-top-left-radius-values-002-expected.txt:
- platform/wpe/ietestcenter/css3/bordersbackgrounds/border-top-left-radius-values-003-expected.txt:
- platform/wpe/ietestcenter/css3/bordersbackgrounds/border-top-left-radius-values-004-expected.txt:
- platform/wpe/ietestcenter/css3/bordersbackgrounds/border-top-right-radius-values-004-expected.txt:
- platform/wpe/ietestcenter/css3/bordersbackgrounds/box-shadow-001-expected.txt:
- platform/wpe/ietestcenter/css3/bordersbackgrounds/box-shadow-002-expected.txt:
- platform/wpe/ietestcenter/css3/bordersbackgrounds/box-shadow-003-expected.txt:
- platform/wpe/ietestcenter/css3/bordersbackgrounds/box-shadow-004-expected.txt:
- platform/wpe/ietestcenter/css3/bordersbackgrounds/color-behind-images-expected.txt:
- platform/wpe/ietestcenter/css3/bordersbackgrounds/none-as-image-layer-expected.txt:
- platform/wpe/ietestcenter/css3/bordersbackgrounds/order-of-images-expected.txt:
- platform/wpe/ietestcenter/css3/text/textshadow-001-expected.txt:
- platform/wpe/ietestcenter/css3/text/textshadow-003-expected.txt:
- platform/wpe/ietestcenter/css3/text/textshadow-004-expected.txt:
- platform/wpe/ietestcenter/css3/text/textshadow-005-expected.txt:
- platform/wpe/ietestcenter/css3/text/textshadow-006-expected.txt:
- platform/wpe/ietestcenter/css3/text/textshadow-007-expected.txt:
- platform/wpe/ietestcenter/css3/text/textshadow-008-expected.txt:
- platform/wpe/ietestcenter/css3/text/textshadow-009-expected.txt:
- platform/wpe/ietestcenter/css3/text/textshadow-010-expected.txt:
- platform/wpe/svg/custom/svg-fonts-in-html-expected.txt:
- 6:35 PM Changeset in webkit [286757] by
-
- 4 edits in trunk
[MacCatalyst] Update header search paths for ANGLE Catalyst
https://bugs.webkit.org/show_bug.cgi?id=233996
For iOSMac builds, search for ANGLE public headers inside System/iOSSupport
Reviewed by Dean Jackson.
Source/WebKit:
- Configurations/BaseTarget.xcconfig:
Tools:
- TestWebKitAPI/Configurations/Base.xcconfig:
- 6:09 PM Changeset in webkit [286756] by
-
- 1 copy in tags/Safari-612.4.2.1.1
Tag Safari-612.4.2.1.1.
- 6:09 PM Changeset in webkit [286755] by
-
- 1 copy in tags/Safari-612.4.2.0.1
Tag Safari-612.4.2.0.1.
- 4:50 PM Changeset in webkit [286754] by
-
- 56 edits17 copies11 adds in trunk
Source/WebCore:
Add an experimental trackConfiguration accessor on AudioTrack & VideoTrack.
https://bugs.webkit.org/show_bug.cgi?id=230841
Reviewed by Eric Carlson.
Add an experimental property on AudioTrack VideoTrack which contains information about the
underlying media track's configuration. The AudioTrackConfiguration is based on
AudioConfiguration from MediaCapabilities. The VideoTrackConfiguration is based on a
combination of the VideoConfiguration from MediaCapabilities and the VideoColorSpace from
WebCodecs.
The AVFoundation implementation of AVTrackPrivateAVFObjCImpl will extract a NAL unit for the
video codec from the CMFormatDescription containing information about the underlying media,
and pass that NAL unit to utility methods in HEVCUtilities (which should probably be
renamed to CodecUntilities) to extract and create codec configuration strings. It will
extract colorspace information from CMFormatDescriptionExtensions found in the format
description. It will extract framerate, bitrate, width and height, sample rate and channel
count information from the underlying AVAssetTrack. There are shortcomings here, as HLS
streams and MSE streams do not generate framerate or bitrate information in the
AVAssetTrack.
Tests: media/track/audio-track-configuration.html
media/track/video-track-configuration.html
- CMakeLists.txt:
- DerivedSources-input.xcfilelist:
- DerivedSources-output.xcfilelist:
- DerivedSources.make:
- Modules/webcodecs/VideoColorPrimaries.h:
- Modules/webcodecs/VideoColorPrimaries.idl:
- Modules/webcodecs/VideoColorSpace.h:
(WebCore::VideoColorSpace::create):
(WebCore::VideoColorSpace::primaries const):
(WebCore::VideoColorSpace::setPrimaries):
(WebCore::VideoColorSpace::transfer const):
(WebCore::VideoColorSpace::setTransfer):
(WebCore::VideoColorSpace::matrix const):
(WebCore::VideoColorSpace::setMatrix):
(WebCore::VideoColorSpace::fullRange const):
(WebCore::VideoColorSpace::setfFullRange):
(WebCore::VideoColorSpace::VideoColorSpace):
- Modules/webcodecs/VideoColorSpace.idl:
- Modules/webcodecs/VideoColorSpaceInit.h:
- Modules/webcodecs/VideoColorSpaceInit.idl:
- Modules/webcodecs/VideoMatrixCoefficients.h:
- Modules/webcodecs/VideoMatrixCoefficients.idl:
- Modules/webcodecs/VideoTransferCharacteristics.h:
- Modules/webcodecs/VideoTransferCharacteristics.idl:
- Sources.txt:
- SourcesCocoa.txt:
- WebCore.xcodeproj/project.pbxproj:
- html/track/AudioTrack.cpp:
(WebCore::AudioTrack::AudioTrack):
(WebCore::AudioTrack::setPrivate):
(WebCore::AudioTrack::updateConfigurationFromPrivate):
- html/track/AudioTrack.h:
- html/track/AudioTrack.idl:
- html/track/AudioTrackConfiguration.h:
(WebCore::AudioTrackConfiguration::create):
(WebCore::AudioTrackConfiguration::codec const):
(WebCore::AudioTrackConfiguration::setCodec):
(WebCore::AudioTrackConfiguration::sampleRate const):
(WebCore::AudioTrackConfiguration::setSampleRate):
(WebCore::AudioTrackConfiguration::numberOfChannels const):
(WebCore::AudioTrackConfiguration::setNumberOfChannels):
(WebCore::AudioTrackConfiguration::bitrate const):
(WebCore::AudioTrackConfiguration::setBitrate):
(WebCore::AudioTrackConfiguration::AudioTrackConfiguration):
- html/track/AudioTrackConfiguration.idl:
- html/track/VideoTrack.cpp:
(WebCore::VideoTrack::VideoTrack):
(WebCore::VideoTrack::setPrivate):
(WebCore::VideoTrack::updateConfigurationFromPrivate):
- html/track/VideoTrack.h:
- html/track/VideoTrack.idl:
- html/track/VideoTrackConfiguration.h: Added.
(WebCore::VideoTrackConfiguration::create):
(WebCore::VideoTrackConfiguration::codec const):
(WebCore::VideoTrackConfiguration::setCodec):
(WebCore::VideoTrackConfiguration::width const):
(WebCore::VideoTrackConfiguration::setWidth):
(WebCore::VideoTrackConfiguration::height const):
(WebCore::VideoTrackConfiguration::setHeight):
(WebCore::VideoTrackConfiguration::colorSpace const):
(WebCore::VideoTrackConfiguration::setColorSpace):
(WebCore::VideoTrackConfiguration::framerate const):
(WebCore::VideoTrackConfiguration::setFramerate):
(WebCore::VideoTrackConfiguration::bitrate const):
(WebCore::VideoTrackConfiguration::setBitrate):
(WebCore::VideoTrackConfiguration::VideoTrackConfiguration):
- html/track/VideoTrackConfiguration.idl:
- platform/graphics/AudioTrackPrivate.h:
(WebCore::AudioTrackPrivate::codec const):
(WebCore::AudioTrackPrivate::setCodec):
(WebCore::AudioTrackPrivate::sampleRate const):
(WebCore::AudioTrackPrivate::setSampleRate):
(WebCore::AudioTrackPrivate::numberOfChannels const):
(WebCore::AudioTrackPrivate::setNumberOfChannels):
(WebCore::AudioTrackPrivate::bitrate const):
(WebCore::AudioTrackPrivate::setBitrate):
- platform/graphics/HEVCUtilities.cpp:
(WebCore::parseAVCCodecParameters):
(WebCore::createAVCCodecParametersString):
(WebCore::parseAVCDecoderConfigurationRecord):
(WebCore::parseHEVCCodecParameters):
(WebCore::createHEVCCodecParametersString):
(WebCore::parseHEVCDecoderConfigurationRecord):
(WebCore::parseDoViDecoderConfigurationRecord):
(WebCore::createDoViCodecParametersString):
- platform/graphics/HEVCUtilities.h:
- platform/graphics/PlatformVideoColorPrimaries.h:
- platform/graphics/PlatformVideoColorSpace.h:
(WebCore::PlatformVideoColorSpace::encode const):
(WebCore::PlatformVideoColorSpace::decode):
- platform/graphics/PlatformVideoMatrixCoefficients.h:
- platform/graphics/PlatformVideoTransferCharacteristics.h:
- platform/graphics/VideoTrackPrivate.h:
(WebCore::VideoTrackPrivate::codec const):
(WebCore::VideoTrackPrivate::setCodec):
(WebCore::VideoTrackPrivate::width const):
(WebCore::VideoTrackPrivate::setWidth):
(WebCore::VideoTrackPrivate::height const):
(WebCore::VideoTrackPrivate::setHeight):
(WebCore::VideoTrackPrivate::colorSpace const):
(WebCore::VideoTrackPrivate::setColorSpace):
(WebCore::VideoTrackPrivate::framerate const):
(WebCore::VideoTrackPrivate::setFramerate):
(WebCore::VideoTrackPrivate::bitrate const):
(WebCore::VideoTrackPrivate::setBitrate):
- platform/graphics/VideoTrackPrivateClient.h:
- platform/graphics/avfoundation/AVTrackPrivateAVFObjCImpl.h:
- platform/graphics/avfoundation/AVTrackPrivateAVFObjCImpl.mm:
(WebCore::assetTrackFor):
(WebCore::formatDescriptionFor):
(WebCore::AVTrackPrivateAVFObjCImpl::codec const):
(WebCore::AVTrackPrivateAVFObjCImpl::width const):
(WebCore::AVTrackPrivateAVFObjCImpl::height const):
(WebCore::AVTrackPrivateAVFObjCImpl::colorSpace const):
(WebCore::AVTrackPrivateAVFObjCImpl::framerate const):
(WebCore::AVTrackPrivateAVFObjCImpl::sampleRate const):
(WebCore::AVTrackPrivateAVFObjCImpl::numberOfChannels const):
(WebCore::AVTrackPrivateAVFObjCImpl::bitrate const):
- platform/graphics/avfoundation/AudioTrackPrivateAVF.h:
(WebCore::AudioTrackPrivateAVF::kind const): Deleted.
(WebCore::AudioTrackPrivateAVF::id const): Deleted.
(WebCore::AudioTrackPrivateAVF::label const): Deleted.
(WebCore::AudioTrackPrivateAVF::language const): Deleted.
(WebCore::AudioTrackPrivateAVF::trackIndex const): Deleted.
- platform/graphics/avfoundation/FormatDescriptionUtilities.cpp: Added.
(WebCore::presentationSizeFromFormatDescription):
(WebCore::colorSpaceFromFormatDescription):
(WebCore::codecFromFormatDescription):
- platform/graphics/avfoundation/FormatDescriptionUtilities.h:
- platform/graphics/avfoundation/MediaSelectionGroupAVFObjC.h:
- platform/graphics/avfoundation/MediaSelectionGroupAVFObjC.mm:
(WebCore::MediaSelectionOptionAVFObjC::assetTrack const):
- platform/graphics/avfoundation/VideoTrackPrivateAVF.h:
- platform/graphics/avfoundation/objc/AudioTrackPrivateAVFObjC.mm:
(WebCore::AudioTrackPrivateAVFObjC::resetPropertiesFromTrack):
- platform/graphics/avfoundation/objc/VideoTrackPrivateAVFObjC.cpp:
(WebCore::VideoTrackPrivateAVFObjC::resetPropertiesFromTrack):
- platform/graphics/avfoundation/objc/VideoTrackPrivateMediaSourceAVFObjC.mm:
(WebCore::VideoTrackPrivateMediaSourceAVFObjC::resetPropertiesFromTrack):
- platform/graphics/cocoa/VideoTrackPrivateWebM.cpp:
(WebCore::VideoTrackPrivateWebM::codec const):
(WebCore::VideoTrackPrivateWebM::width const):
(WebCore::VideoTrackPrivateWebM::height const):
(WebCore::VideoTrackPrivateWebM::framerate const):
- platform/graphics/cocoa/VideoTrackPrivateWebM.h:
Source/WebCore/PAL:
Add an experimental trackConfiguration accessor on AudioTrack & VideoTrack.
https://bugs.webkit.org/show_bug.cgi?id=230841
Reviewed by Eric Carlson.
- pal/cf/CoreMediaSoftLink.cpp:
- pal/cf/CoreMediaSoftLink.h:
- pal/spi/cocoa/AVFoundationSPI.h:
Source/WebKit:
Add an experimental trackConfiguration accessor on AudioTrack & VideoTrack.
https://bugs.webkit.org/show_bug.cgi?id=230841
Reviewed by Eric Carlson.
- GPUProcess/media/RemoteAudioTrackProxy.cpp:
(WebKit::RemoteAudioTrackProxy::configuration):
- GPUProcess/media/RemoteAudioTrackProxy.h:
- GPUProcess/media/RemoteVideoTrackProxy.cpp:
(WebKit::RemoteVideoTrackProxy::configuration):
(WebKit::RemoteVideoTrackProxy::updateConfiguration):
(WebKit::RemoteVideoTrackProxy::selectedChanged):
(WebKit::RemoteVideoTrackProxy::idChanged):
(WebKit::RemoteVideoTrackProxy::labelChanged):
(WebKit::RemoteVideoTrackProxy::languageChanged):
(WebKit::RemoteVideoTrackProxy::configurationChanged): Deleted.
- GPUProcess/media/RemoteVideoTrackProxy.h:
- GPUProcess/media/TrackPrivateRemoteConfiguration.h:
(WebKit::TrackPrivateRemoteConfiguration::encode const):
(WebKit::TrackPrivateRemoteConfiguration::decode):
- WebProcess/GPU/media/AudioTrackPrivateRemote.cpp:
(WebKit::AudioTrackPrivateRemote::updateConfiguration):
- WebProcess/GPU/media/AudioTrackPrivateRemote.h:
- WebProcess/GPU/media/VideoTrackPrivateRemote.cpp:
(WebKit::VideoTrackPrivateRemote::updateConfiguration):
- WebProcess/GPU/media/VideoTrackPrivateRemote.h:
Source/WTF:
Add an experimental VideoTrackConfiguration class and accessor on VideoTrack
https://bugs.webkit.org/show_bug.cgi?id=230841
Reviewed by Eric Carlson.
Drive-by change: add a Vector::reverseFindMatching convenience method.
- Scripts/Preferences/WebPreferencesExperimental.yaml:
- wtf/Vector.h:
(WTF::Malloc>::reverseFindMatching const):
LayoutTests:
Add an experimental trackConfiguration accessor on AudioTrack & VideoTrack.
https://bugs.webkit.org/show_bug.cgi?id=230841
Reviewed by Eric Carlson.
- fast/mediastream/MediaStream-video-element-expected.txt:
- media/content/test-hevc.mp4: Added.
- media/hevc-codec-parameters-expected.txt:
- media/hevc-codec-parameters.html:
- media/hevc-codec-string-expected.txt: Added.
- media/hevc-codec-string.html: Added.
- media/track/audio-track-configuration-expected.txt: Added.
- media/track/audio-track-configuration.html: Added.
- media/track/video-track-configuration-expected.txt: Added.
- media/track/video-track-configuration.html: Added.
- 4:36 PM Changeset in webkit [286753] by
-
- 11 edits in trunk/Source
[GPU Process] [Filters] Add the encoding and decoding for SVGFilter
https://bugs.webkit.org/show_bug.cgi?id=234024
Reviewed by Wenson Hsieh.
Source/WebCore:
Add new methods to help encoding and decoding SVGFilter members. Also
add a new constructor for SVGFilter which is going to be called from
FilterReference.
- Headers.cmake:
- WebCore.xcodeproj/project.pbxproj:
- platform/graphics/filters/FilterEffectGeometry.h:
(WebCore::FilterEffectGeometry::encode const):
(WebCore::FilterEffectGeometry::decode):
- platform/graphics/filters/SourceAlpha.cpp:
(WebCore::SourceAlpha::create):
(WebCore::SourceAlpha::SourceAlpha):
- platform/graphics/filters/SourceAlpha.h:
The plan is to remove the input effects from FilterEffect. Currently it
is still used but not through FilterEffect::apply(). So it is okay for
now for GPUProcess to create SourceAlpha without input since the input
will not used inside GPUProcess.
- svg/SVGUnitTypes.h:
- svg/graphics/filters/SVGFilter.cpp:
(WebCore::SVGFilter::create):
(WebCore::SVGFilter::SVGFilter):
- svg/graphics/filters/SVGFilter.h:
Source/WebKit:
When encoding the SVGFilter we need to encode the individual FilterEffects
in filter.expression(). And for every SVGFilterExpressionTerm we need to
encode the index of its Ref<FilterEffect> in the individual FilterEffects.
When decoding the SVGFilter we do the opposite. We get the Ref<FilterEffect>
which corresponds to index of ExpressionReferenceTerm. We send the decoded
expression to the constructor of SVGFilter.
- Platform/IPC/FilterReference.h:
(IPC::FilterReference::decodeFilterEffect):
(IPC::FilterReference::ExpressionReferenceTerm::encode const):
(IPC::FilterReference::ExpressionReferenceTerm::decode):
(IPC::FilterReference::encodeSVGFilter):
(IPC::FilterReference::decodeSVGFilter):
- 4:32 PM Changeset in webkit [286752] by
-
- 2 edits in trunk/Source/WebCore
[Win] Remove CF when using Windows clipboard
https://bugs.webkit.org/show_bug.cgi?id=194876
Reviewed by Brent Fulgham.
Remove any CF code from ClipboardUtilitiesWin and replace it with WTF code. The
urlFromPath function is deleted since it is no longer relevant.
- platform/win/ClipboardUtilitiesWin.cpp:
(WebCore::getURL):
(WebCore::urlFromPath): Deleted.
- 4:19 PM Changeset in webkit [286751] by
-
- 17 edits in trunk
Add SPI to load a resource in the context of a page
https://bugs.webkit.org/show_bug.cgi?id=233908
Reviewed by Tim Horton.
Source/WebKit:
This is similar to startDownloadUsingRequest but you don't have to get the data from the disk.
This is similar to NSURLSession's dataTaskWithRequest:completionHandler: but using the same session as the page.
This is needed because LinkPresentation is currently using _getMainResourceDataWithCompletionHandler after loading
in a WKWebView made with _relatedWebView to get the content of a resource, and that's awful and limited to certain mime types.
- NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::requestResource):
- NetworkProcess/NetworkProcess.h:
- NetworkProcess/NetworkProcess.messages.in:
- NetworkProcess/NetworkSession.h:
(WebKit::NetworkSession::requestResource):
- NetworkProcess/cocoa/NetworkSessionCocoa.h:
- NetworkProcess/cocoa/NetworkSessionCocoa.mm:
(WebKit::NetworkSessionCocoa::requestResource):
- UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _requestResource:completionHandler:]):
- UIProcess/API/Cocoa/WKWebViewPrivate.h:
- UIProcess/Network/NetworkProcessProxy.cpp:
(WebKit::NetworkProcessProxy::requestResource):
- UIProcess/Network/NetworkProcessProxy.h:
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::requestResource):
- UIProcess/WebPageProxy.h:
Tools:
- TestWebKitAPI/Tests/WebKitCocoa/NetworkProcess.mm:
(TEST):
- 4:16 PM Changeset in webkit [286750] by
-
- 1 edit in branches/safari-612.4.2.1-branch/Source/WebKit/UIProcess/WebPageProxy.h
Revert "Unreviewed build fix. rdar://problem/85928816"
This reverts r286737.
- 4:11 PM Changeset in webkit [286749] by
-
- 22 edits in trunk/LayoutTests
[WPE] Update test baselines after r283875, r284194, and r286107
https://bugs.webkit.org/show_bug.cgi?id=234038
Unreviewed test gardening.
Patch by Arcady Goldmints-Orlov <Arcady Goldmints-Orlov> on 2021-12-08
- platform/wpe/fast/dom/52776-expected.txt:
- platform/wpe/fast/text/basic/014-expected.txt:
- platform/wpe/fast/text/basic/015-expected.txt:
- platform/wpe/fast/text/international/bidi-LDB-2-CSS-expected.txt:
- platform/wpe/fast/text/international/bidi-LDB-2-HTML-expected.txt:
- platform/wpe/fast/text/international/bidi-LDB-2-formatting-characters-expected.txt:
- platform/wpe/fast/text/international/bidi-european-terminators-expected.txt:
- platform/wpe/fast/text/international/bidi-ignored-for-first-child-inline-expected.txt:
- platform/wpe/fast/text/international/bidi-innertext-expected.txt:
- platform/wpe/fast/text/international/bidi-listbox-expected.txt:
- platform/wpe/fast/text/international/bidi-menulist-expected.txt:
- platform/wpe/fast/text/international/bidi-neutral-run-expected.txt:
- platform/wpe/fast/text/international/bidi-override-expected.txt:
- platform/wpe/fast/text/whitespace/004-expected.txt:
- platform/wpe/fast/text/whitespace/005-expected.txt:
- platform/wpe/fast/text/whitespace/006-expected.txt:
- platform/wpe/fast/text/whitespace/007-expected.txt:
- platform/wpe/fast/text/whitespace/010-expected.txt:
- platform/wpe/fast/text/whitespace/011-expected.txt:
- platform/wpe/fast/text/whitespace/015-expected.txt:
- platform/wpe/fast/text/whitespace/016-expected.txt:
- 4:07 PM Changeset in webkit [286748] by
-
- 1 edit in branches/safari-612-branch/Source/WebKit/UIProcess/WebPageProxy.h
Revert "Unreviewed build fix. rdar://problem/85928816"
This reverts r286739.
- 4:05 PM Changeset in webkit [286747] by
-
- 2 edits in trunk/Source/WebKit
Web Inspector: evaluateScriptForExtension() incorrectly unwraps internal errors, causing an ASSERT
https://bugs.webkit.org/show_bug.cgi?id=233961
<rdar://86123763>
Reviewed by Patrick Angle.
Standardize the unwrapping code based on the evaluateScriptInExtensionTab version, which
correctly handles the case where an internal error is returned by the evaluation.
This happens, for example, when NotImplemented is returned for unsupported evaluation
options.
This particular issue was caused by a lack of support for the 'frameURL' option.
The fix for that is tracked by https://webkit.org/b/222568/.
- WebProcess/Inspector/WebInspectorUIExtensionController.cpp:
(WebKit::WebInspectorUIExtensionController::evaluateScriptForExtension):
- 3:49 PM Changeset in webkit [286746] by
-
- 6 edits in trunk
[WebAuthn] Consider support for the displayName for FIDO authenticator
https://bugs.webkit.org/show_bug.cgi?id=233389
rdar://84938707
Reviewed by Brent Fulgham.
Source/WebKit:
Start storing the displayName field with the platform authenticator
and add them to the getAllLocalAuthenticatorCredentials SPI.
The displayName is part of the WebAuthn level 2 spec:
https://www.w3.org/TR/webauthn-2/#dom-publickeycredentialuserentity-displayname
- UIProcess/API/Cocoa/_WKWebAuthenticationPanel.h:
- UIProcess/API/Cocoa/_WKWebAuthenticationPanel.mm:
(getAllLocalAuthenticatorCredentialsImpl):
- UIProcess/WebAuthentication/Cocoa/LocalAuthenticator.mm:
(WebKit::LocalAuthenticator::continueMakeCredentialAfterUserVerification):
Tools:
Add test for new field stored with platform authenticator: displayName
- TestWebKitAPI/Tests/WebKitCocoa/_WKWebAuthenticationPanel.mm:
(TestWebKitAPI::TEST):
- 3:27 PM Changeset in webkit [286745] by
-
- 1 copy in tags/Safari-612.3.6.1.8
Tag Safari-612.3.6.1.8.
- 3:15 PM Changeset in webkit [286744] by
-
- 8 edits in branches/safari-612.3.6.1-branch/Source
Versioning.
WebKit-7612.3.6.1.8.
- 2:59 PM Changeset in webkit [286743] by
-
- 11 edits9 adds in trunk
[VTT] Fix various issues with complicated rendering of VTT cues
https://bugs.webkit.org/show_bug.cgi?id=233901
Reviewed by Eric Carlson.
Source/WebCore:
Tests: media/track/track-webvtt-no-snap-to-lines-overlap.html
media/track/track-webvtt-snap-to-lines-inline-style.html
media/track/track-webvtt-snap-to-lines-left-right.html
When positioning VTT cues, the spec requires UAs to avoid collisions between cues
by detecting that two cues overlap each other. However, WebKit's implementation
looks for collisions between non-displaying portions of the cues; namely the
::-webkit-media-text-track-display element, which is used to position the displaying
portion of the cue. Instead, the UA should look for collisions between the
::-webkit-media-text-track-display-backdrop element, which holds the background
of the cue, if present.
Add a convenience function to retrieve the backdrop element, and another to retrieve
the cue itself.
Add cast macros for RenderVTTCue to allow downcast<>ing. Use this macro to retrieve
other cues's backdrop elements for collision avoidance.
VTTCueBox::applyCSSProperties() had a section for moving cues into place that is entirely
unneeded if VTTCue::getCSSPosition() returns the pre-calculated m_displayPosition.
RenderVTTCue::initializeLayoutParameters() is a careful implementation of the specification,
accurately layout out cues' initial position so that the text run is exactly at the
bottom of the content box. However, if the cue has a border, padding, or extra height,
this will result in the cue being pushed outside the content box. To account for this,
adjust the inital layout parameter by the difference between the cue text size and the
backdrop element size.
RenderVTTCue::layout() will create a LayoutStateMaintainer, which modifies the behavior of
layout machinery during the layout itself. However, certain child renderers get dramatically
incorrect results for absoluteBoundingRect() unless the maintainer explicitly sets disableState.
- html/track/VTTCue.cpp:
(WebCore::VTTCueBox::applyCSSProperties):
(WebCore::VTTCue::getCSSPosition const):
- html/track/VTTCue.h:
- rendering/RenderObject.h:
(WebCore::RenderObject::isRenderVTTCue const):
- rendering/RenderVTTCue.cpp:
(WebCore::RenderVTTCue::layout):
(WebCore::RenderVTTCue::initializeLayoutParameters):
(WebCore::RenderVTTCue::isOutside const):
(WebCore::RenderVTTCue::overlappingObject const):
(WebCore::RenderVTTCue::overlappingObjectForRect const):
(WebCore::RenderVTTCue::moveIfNecessaryToKeepWithinContainer):
(WebCore::RenderVTTCue::findNonOverlappingPosition const):
(WebCore::RenderVTTCue::repositionGenericCue):
(WebCore::RenderVTTCue::backdropBox const):
(WebCore::RenderVTTCue::cueBox const):
LayoutTests:
- media/track/captions-webvtt/no-snap-to-lines-overlap.vtt: Added.
- media/track/captions-webvtt/snap-to-lines-inline-style.vtt: Added.
- media/track/captions-webvtt/snap-to-lines-left-and-right.vtt: Added.
- media/track/track-webvtt-no-snap-to-lines-overlap-expected.html: Added.
- media/track/track-webvtt-no-snap-to-lines-overlap.html: Added.
- media/track/track-webvtt-snap-to-lines-inline-style-expected.html: Added.
- media/track/track-webvtt-snap-to-lines-inline-style.html: Added.
- media/track/track-webvtt-snap-to-lines-left-right-expected.html: Added.
- media/track/track-webvtt-snap-to-lines-left-right.html: Added.
- 2:57 PM Changeset in webkit [286742] by
-
- 2 edits in trunk/Source/WebCore
[MSE] Add a Modules/mediasource/README.md file
https://bugs.webkit.org/show_bug.cgi?id=234026
<rdar://problem/86227732>
Reviewed by Eric Carlson.
Follow-up to address review comments.
- Modules/mediasource/README.md:
- 2:10 PM Changeset in webkit [286741] by
-
- 2 edits in branches/safari-612.4.2.1-branch/Source/WebKit/UIProcess
Apply patch. rdar://problem/85928816
- 2:08 PM Changeset in webkit [286740] by
-
- 2 edits in branches/safari-612-branch/Source/WebKit/UIProcess
Apply patch. rdar://problem/85928816
- 2:08 PM Changeset in webkit [286739] by
-
- 1 edit in branches/safari-612-branch/Source/WebKit/UIProcess/WebPageProxy.h
Unreviewed build fix. rdar://problem/85928816
- 1:39 PM Changeset in webkit [286738] by
-
- 1 edit1 add in trunk/Source/WebCore
[MSE] Add a Modules/mediasource/README.md file
https://bugs.webkit.org/show_bug.cgi?id=234026
Reviewed by Eric Carlson.
- Modules/mediasource/README.md: Added.
- 1:29 PM Changeset in webkit [286737] by
-
- 1 edit in branches/safari-612.4.2.1-branch/Source/WebKit/UIProcess/WebPageProxy.h
Unreviewed build fix. rdar://problem/85928816
- 1:28 PM Changeset in webkit [286736] by
-
- 2 edits in trunk/Source/ThirdParty/ANGLE
Update ANGLE changes.diff with new roll.
https://bugs.webkit.org/show_bug.cgi?id=233952
Reviewed by Kenneth Russell.
- changes.diff:
- 1:26 PM Changeset in webkit [286735] by
-
- 2 edits in branches/safari-612.4.2.1-branch/Source/WebKit
Cherry-pick r286574. rdar://problem/86224832
Regression(r286505) imported/w3c/web-platform-tests/html/cross-origin-opener-policy/javascript-url.https.html is a flaky crash
https://bugs.webkit.org/show_bug.cgi?id=233874
Reviewed by Darin Adler.
r286505 fixed ProvisionalPageProxy so that ProvisionalPageProxy::m_provisionalLoadURL gets properly initialized when the
ProvisionalPageProxy gets constructed *after* the provisional load has already started (COOP proces-swap case). One side
effect of this though is that ProvisionalPageProxy::cancel() no longer returns early and will try to notify the client
that the provisional load failed, dereferencing m_mainFrame in doing so. In the event where the main frame has not yet
been created in the new provisional process, this would do a null-dereference of m_mainFrame.
To address the issue, we now early return in ProvisionalPageProxy::cancel() if m_isProcessSwappingOnNavigationResponse
is true (i.e. The ProvisionalPageProxy was created after the provisional load had started). In such situations, we
don't want to ProvisionalPageProxy to be the one notifying the client of the provisional load failure anyway. The reason
is that there is still a provisional load going on in the committed process/page.
No new tests, covered by existing test that is flakily crashing.
- UIProcess/ProvisionalPageProxy.cpp: (WebKit::ProvisionalPageProxy::cancel):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@286574 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 1:26 PM Changeset in webkit [286734] by
-
- 3 edits in branches/safari-612.4.2.1-branch/Source/WebKit
Cherry-pick r286671. rdar://problem/85928816
Momentum Event Dispatcher: Momentum tail should have montonically decreasing deltas and tail gaps
https://bugs.webkit.org/show_bug.cgi?id=233993
<rdar://problem/86118367>
Reviewed by Simon Fraser.
- WebProcess/WebPage/MomentumEventDispatcher.cpp: (WebKit::MomentumEventDispatcher::consumeDeltaForCurrentTime): (WebKit::MomentumEventDispatcher::buildOffsetTableWithInitialDelta): (WebKit::MomentumEventDispatcher::computeNextDelta): In order to avoid visual stutter due to integral rounding of the deltas we dispatch in the momentum phase, switch to a table of deltas instead of interpolating along the offset curve during the tail end of the animation (when the rounding makes up a large proportion of each delta).
(WebKit::MomentumEventDispatcher::equalizeTailGaps):
Sort the deltas up until the first zero to ensure a lack of unexpected
perceptual acceleration, and then inject skipped frames in order to
ensure that frames that have effective scroll movement (non-zero deltas)
are always spaced equally-or-further apart than earlier ones, but
never closer together (which, again, would be percieved as acceleration).
(WebKit::MomentumEventDispatcher::handleWheelEvent):
(WebKit::MomentumEventDispatcher::pushLogEntry):
(WebKit::MomentumEventDispatcher::flushLog):
Lastly, adjust some logging to make it easier to tell which row in
the output corresponds to an event delta or generated delta, so it's
easier to find skipped frames.
- WebProcess/WebPage/MomentumEventDispatcher.h:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@286671 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 1:26 PM Changeset in webkit [286733] by
-
- 2 edits in branches/safari-612.4.2.1-branch/Source/WebKit
Cherry-pick r286631. rdar://problem/85928816
[Scroll Momentum Generator] Pages lose ability to momentum scroll after dragging between displays
https://bugs.webkit.org/show_bug.cgi?id=233948
rdar://86110813
Reviewed by Tim Horton.
This is a conservative fix for the bug. When a view moves to a new screen, WebPageProxy
needs to unregister for full speed updates using the old displayID, and register
using the new one.
Longer term, it would be better if "full speed updates" was a per-observer concept,
but that would mean registering an observer while wheel events are being received,
which needs a bit more thought.
- UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::windowScreenDidChange):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@286631 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 1:26 PM Changeset in webkit [286732] by
-
- 2 edits in branches/safari-612.4.2.1-branch/Source/WebKit
Cherry-pick r286566. rdar://problem/85928816
Momentum Event Dispatcher: Momentum phase runs backwards with natural scrolling disabled
https://bugs.webkit.org/show_bug.cgi?id=233894
<rdar://problem/86111948>
Reviewed by Simon Fraser.
- WebProcess/WebPage/MomentumEventDispatcher.cpp: (WebKit::MomentumEventDispatcher::consumeDeltaForCurrentTime): Only flip the deltas if the trackpad is configured to use "natural" scrolling (in which "directionInvertedFromDevice" is true).
(WebKit::MomentumEventDispatcher::computeNextDelta):
Fix initial queue state logging to log both axes before setting the "did log" bit.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@286566 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 1:26 PM Changeset in webkit [286731] by
-
- 6 edits in branches/safari-612.4.2.1-branch
Cherry-pick r286537. rdar://problem/85928816
Add trace points for generated momentum events
https://bugs.webkit.org/show_bug.cgi?id=233857
Reviewed by Tim Horton.
Source/WebKit:
Add start/end points for synthetic momentum, and a trace point for each generated event.
- WebProcess/WebPage/MomentumEventDispatcher.cpp: (WebKit::MomentumEventDispatcher::dispatchSyntheticMomentumEvent): (WebKit::MomentumEventDispatcher::didStartMomentumPhase): (WebKit::MomentumEventDispatcher::didEndMomentumPhase):
Source/WTF:
- wtf/SystemTracing.h:
Tools:
Add start/end points for synthetic momentum, and a trace point for each generated event.
- Tracing/SystemTracePoints.plist:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@286537 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 1:26 PM Changeset in webkit [286730] by
-
- 1 edit in branches/safari-612.4.2.1-branch/Source/WebKit/Shared/mac/MediaFormatReader/MediaFormatReader.cpp
Unreviewed build fix. rdar://problem/85928816
- 1:26 PM Changeset in webkit [286729] by
-
- 1 edit in branches/safari-612.4.2.1-branch/Source/WebKit/Shared/WebPreferencesDefaultValues.cpp
Unreviewed build fix. rdar://problem/85928816
error: use of undeclared identifier 'isInWebProcess'; did you mean 'WebCore::isInWebProcess'?
- 1:26 PM Changeset in webkit [286728] by
-
- 1 edit in branches/safari-612.4.2.1-branch/Source/WebKit/Shared/mac/MediaFormatReader/MediaFormatReader.cpp
Unreviewed build fix. rdar://problem/85928816
error: member access into incomplete type 'Webcore::SharedBuffer'
- 1:26 PM Changeset in webkit [286727] by
-
- 4 edits in branches/safari-612.4.2.1-branch/Source/WebKit
Cherry-pick r286512. rdar://problem/85928816
Add more logging for MomentumEventDispatcher
https://bugs.webkit.org/show_bug.cgi?id=233811
Reviewed by Simon Fraser.
Add a temporary event log to MomentumEventDispatcher, to debug delta/offset/curve issues.
- WebProcess/WebPage/EventDispatcher.h: (WebKit::EventDispatcher::queue):
- WebProcess/WebPage/MomentumEventDispatcher.cpp: (WebKit::MomentumEventDispatcher::handleWheelEvent): Accumulate event deltas. Also accumulate event deltas for the fingers-down phase in the "generated" offset. Store the phase and momentum phase smooshed into a single field.
(WebKit::MomentumEventDispatcher::dispatchSyntheticMomentumEvent):
Accumulate generated deltas.
(WebKit::MomentumEventDispatcher::didEndMomentumPhase):
Attempt to dump the log 1 second after each momentum phase. We'll skip
it if another scroll has started since.
(WebKit::MomentumEventDispatcher::setScrollingAccelerationCurve):
(WebKit::MomentumEventDispatcher::startDisplayLink):
(WebKit::MomentumEventDispatcher::stopDisplayLink):
(WebKit::MomentumEventDispatcher::consumeDeltaForCurrentTime):
(WebKit::MomentumEventDispatcher::buildOffsetTableWithInitialDelta):
(WebKit::MomentumEventDispatcher::computeNextDelta):
Adopt more MOMENTUM_EVENT_DISPATCHER_TEMPORARY_LOGGING. Error logging
we leave outside of this, because that we'll keep around.
(WebKit::MomentumEventDispatcher::pushLogEntry):
(WebKit::MomentumEventDispatcher::flushLog):
Dump the event log in an easy-to-copy-into-a-CSV format.
- WebProcess/WebPage/MomentumEventDispatcher.h:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@286512 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 1:26 PM Changeset in webkit [286726] by
-
- 2 edits in branches/safari-612.4.2.1-branch/Source/WTF
Cherry-pick r286504. rdar://problem/85928816
Enable Momentum Event Generator by default
https://bugs.webkit.org/show_bug.cgi?id=233807
<rdar://problem/85262515>
Reviewed by Simon Fraser.
- Scripts/Preferences/WebPreferencesInternal.yaml: Turn it on for modern WebKit. Adjust the description slightly.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@286504 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 1:26 PM Changeset in webkit [286725] by
-
- 16 edits in branches/safari-612.4.2.1-branch/Source
Cherry-pick r285526. rdar://problem/85928816
Add runtime flag for momentum scrolling
https://bugs.webkit.org/show_bug.cgi?id=232898
<rdar://problem/85211338>
Reviewed by Simon Fraser.
- Scripts/Preferences/WebPreferencesInternal.yaml: Add the preference.
- page/scrolling/AsyncScrollingCoordinator.cpp: (WebCore::AsyncScrollingCoordinator::setFrameScrollingNodeState):
- page/scrolling/ScrollingStateFrameScrollingNode.cpp: (WebCore::ScrollingStateFrameScrollingNode::ScrollingStateFrameScrollingNode): (WebCore::ScrollingStateFrameScrollingNode::applicableProperties const): (WebCore::ScrollingStateFrameScrollingNode::setMomentumScrollingAnimatorEnabled):
- page/scrolling/ScrollingStateFrameScrollingNode.h:
- page/scrolling/ScrollingStateNode.h:
- page/scrolling/ScrollingTree.cpp: (WebCore::ScrollingTree::commitTreeState):
- page/scrolling/ScrollingTree.h: (WebCore::ScrollingTree::momentumScrollingAnimatorEnabled const): (WebCore::ScrollingTree::setMomentumScrollingAnimatorEnabled):
- page/scrolling/ScrollingTreeScrollingNode.cpp: (WebCore::ScrollingTreeScrollingNode::momentumScrollingAnimatorEnabled const):
- page/scrolling/ScrollingTreeScrollingNode.h:
- page/scrolling/mac/ScrollingTreeScrollingNodeDelegateMac.h:
- page/scrolling/mac/ScrollingTreeScrollingNodeDelegateMac.mm: (WebCore::ScrollingTreeScrollingNodeDelegateMac::momentumScrollingAnimatorEnabled const):
- platform/ScrollingEffectsController.h: (WebCore::ScrollingEffectsControllerClient::momentumScrollingAnimatorEnabled const):
- Shared/RemoteLayerTree/RemoteScrollingCoordinatorTransaction.cpp: (ArgumentCoder<ScrollingStateFrameScrollingNode>::encode): (ArgumentCoder<ScrollingStateFrameScrollingNode>::decode):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@285526 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 1:26 PM Changeset in webkit [286724] by
-
- 6 edits in branches/safari-612.4.2.1-branch/Source/WebKit
Cherry-pick r286483. rdar://problem/85928816
MomentumEventDispatcher curve sometimes doesn't match the system curve
https://bugs.webkit.org/show_bug.cgi?id=233801
<rdar://problem/85870287>
Reviewed by Simon Fraser.
Three small changes to get us closer to the system curve:
1) Fetch the momentum event dispatch interval from the system, and use
it to scale the momentum start event's delta (which we use as our
initial velocity) into the "ideal" curve's frame rate (which is always
60fps regardless).
2) Back-date the animation start time to the fingers-down phase end event,
so that the momentum start phase has a delta. This seems to match what
the system does.
3) Switch to MonotonicTime for the animation time, since it doesn't need
to be in the same timebase as events (which are oddly in WallTime), and
certainly should be monotonic.
- Shared/ScrollingAccelerationCurve.cpp: (WebKit::ScrollingAccelerationCurve::ScrollingAccelerationCurve): (WebKit::ScrollingAccelerationCurve::interpolate): (WebKit::ScrollingAccelerationCurve::encode const): (WebKit::ScrollingAccelerationCurve::decode): (WebKit::operator<<):
- Shared/ScrollingAccelerationCurve.h: (WebKit::ScrollingAccelerationCurve::frameRate): (WebKit::ScrollingAccelerationCurve::operator== const):
- Shared/mac/ScrollingAccelerationCurveMac.mm:
(WebKit::fromIOHIDCurve):
(WebKit::fromIOHIDCurveArrayWithAcceleration):
(WebKit::fromIOHIDDevice):
Fetch and propagate the dispatch frame rate. This isn't *really* a
ScrollingAccelerationCurve property, but neither is
resolution
; this is just currently the only place we look up HID properties and push them to the Web Content process; some re-architecture is warranted here in the future.
- WebProcess/WebPage/MomentumEventDispatcher.cpp: (WebKit::MomentumEventDispatcher::handleWheelEvent): Keep track of the last fingers-down phase ended event timestamp.
(WebKit::MomentumEventDispatcher::didStartMomentumPhase):
Backdate the start time so that the first event has the appropriate delta.
Divide out the dispatch frame rate so that the initial velocity is
as if the curve were running at 60fps (since we *will* run it at 60fps and interpolate).
(WebKit::MomentumEventDispatcher::didEndMomentumPhase):
(WebKit::MomentumEventDispatcher::consumeDeltaForTime):
(WebKit::MomentumEventDispatcher::displayWasRefreshed):
Factor the consume-a-delta-from-the-ideal-curve code out from displayWasRefreshed
so we can use it in the start phase too.
(WebKit::MomentumEventDispatcher::offsetAtTime):
(WebKit::MomentumEventDispatcher::computeNextDelta):
Rename idealCurveFrameRate->idealCurveFrameInterval for accuracy.
- WebProcess/WebPage/MomentumEventDispatcher.h:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@286483 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 1:25 PM Changeset in webkit [286723] by
-
- 6 edits in branches/safari-612.4.2.1-branch/Source
Cherry-pick r286481. rdar://problem/85928816
A Safari tab can rarely get stuck in a state where rendering updates stop happening
https://bugs.webkit.org/show_bug.cgi?id=233784
rdar://85445072
Reviewed by Chris Dumez.
Sometimes a Safari tab can get into a state where rendering updates cease to happen,
which manifests as partially broken scrolling, blank tiles revealed when scrolling,
and somewhat broken page updates. I was able to sometimes reproduce this by clicking
on links in eBay emails from Mail on a system with two displays.
From the one time I reproduce with logging, the output indicated that DisplayRefreshMonitor::displayLinkFired()
would early return because isPreviousFrameDone() was false. The only way for that to occur,
barring memory corruption, is if DisplayRefreshMonitorMac::dispatchDisplayDidRefresh() returned early,
which it does if the callback comes twice in a single event loop; this may explain the rarity.
So fix DisplayRefreshMonitorMac::dispatchDisplayDidRefresh() call setIsPreviousFrameDone(true)
so the next callback can make progress
Also add some locking annotations and fix one missing lock, and some release logging.
Source/WebCore:
- platform/graphics/DisplayRefreshMonitor.cpp: (WebCore::DisplayRefreshMonitor::stop): (WebCore::DisplayRefreshMonitor::firedAndReachedMaxUnscheduledFireCount): (WebCore::DisplayRefreshMonitor::displayLinkFired):
- platform/graphics/DisplayRefreshMonitor.h: (WebCore::DisplayRefreshMonitor::WTF_REQUIRES_LOCK): (WebCore::DisplayRefreshMonitor::WTF_GUARDED_BY_LOCK): (WebCore::DisplayRefreshMonitor::setMaxUnscheduledFireCount): Deleted. (WebCore::DisplayRefreshMonitor::isScheduled const): Deleted. (WebCore::DisplayRefreshMonitor::setIsScheduled): Deleted. (WebCore::DisplayRefreshMonitor::isPreviousFrameDone const): Deleted. (WebCore::DisplayRefreshMonitor::setIsPreviousFrameDone): Deleted.
Source/WebKit:
- WebProcess/WebPage/mac/DisplayRefreshMonitorMac.cpp: (WebKit::DisplayRefreshMonitorMac::dispatchDisplayDidRefresh):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@286481 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 1:25 PM Changeset in webkit [286722] by
-
- 3 edits in branches/safari-612.4.2.1-branch/Source/WebKit
Cherry-pick r286380. rdar://problem/85928816
Unreviewed build fixes after r286346.
- WebProcess/WebPage/MomentumEventDispatcher.cpp: (WebKit::MomentumEventDispatcher::startDisplayLink): (WebKit::MomentumEventDispatcher::displayWasRefreshed): (WebKit::MomentumEventDispatcher::didReceiveScrollEventWithInterval): (WebKit::MomentumEventDispatcher::buildOffsetTableWithInitialDelta): (WebKit::MomentumEventDispatcher::offsetAtTime): (WebKit::momentumDecayRate): (WebKit::MomentumEventDispatcher::computeNextDelta):
- WebProcess/WebPage/MomentumEventDispatcher.h:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@286380 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 1:25 PM Changeset in webkit [286721] by
-
- 1 edit in branches/safari-612.4.2.1-branch/Source/WebCore/page/scrolling/ThreadedScrollingTree.cpp
Unreviewed, speculative build fix for r286410. rdar://problem/85928816
Remove reference to serviceScrollAnimations.
- 1:25 PM Changeset in webkit [286720] by
-
- 3 edits in branches/safari-612.4.2.1-branch/Source/WebCore
Cherry-pick r286410. rdar://problem/85928816
Scrolling complex websites can stutter: scrolling thread commit can get blocked on scroll synchronization
https://bugs.webkit.org/show_bug.cgi?id=233738
rdar://85880147
Reviewed by Tim Horton.
The scroll synchronization added in r261985 can cause dropped frames while scrolling. This
occurs when ThreadedScrollingTree::waitForRenderingUpdateCompletionOrTimeout(), which is
called at the start of a rendering update on the main thread, starts at a time when it will
delay the handling of displayDidRefreshOnScrollingThread(). This can result in delaying the
CA commit for that frame on the scrolling thread.
The solution is to clamp the duration that waitForRenderingUpdateCompletionOrTimeout() waits
on the condition, so that it doesn't exceed the next expected display refresh time.
- page/scrolling/ThreadedScrollingTree.cpp: (WebCore::ThreadedScrollingTree::waitForRenderingUpdateCompletionOrTimeout): (WebCore::ThreadedScrollingTree::displayDidRefreshOnScrollingThread):
- page/scrolling/ThreadedScrollingTree.h:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@286410 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 1:25 PM Changeset in webkit [286719] by
-
- 3 edits in branches/safari-612.4.2.1-branch/Source/WebCore
Cherry-pick r286411. rdar://problem/85928816
Scrolling complex websites can stutter: scrolling thread frame can fail to process wheel events
https://bugs.webkit.org/show_bug.cgi?id=233739
rdar://85946176
Reviewed by Tim Horton.
While the scrolling thread is chilling in
ThreadedScrollingTree::waitForRenderingUpdateCompletionOrTimeout(), waiting up to half a
frame to allow the main thread to handle the commit (for scroll synchronization), wheel
events may have been dispatched to the scrolling thread.
If we blow the timeout and commit anyway, we need to make sure we've handled these wheel
events first, so that the current frame can commit some layer movement. We can achieve this
by dispatching the applyLayerPositions(), which will enqueue it behind any waiting wheel
event dispatch from EventDispatcher::internalWheelEvent().
- page/scrolling/ScrollingTree.cpp: (WebCore::ScrollingTree::applyLayerPositions):
- page/scrolling/ThreadedScrollingTree.cpp: (WebCore::ThreadedScrollingTree::waitForRenderingUpdateCompletionOrTimeout):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@286411 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 1:25 PM Changeset in webkit [286718] by
-
- 4 edits in branches/safari-612.4.2.1-branch/Source/WebCore
Cherry-pick r286352. rdar://problem/85928816
Custom application of r286352 to introduce frameDuration() for a future patch.
Pass the timestamp for scrolling thread animations through all the serviceScrollAnimation() calls
https://bugs.webkit.org/show_bug.cgi?id=233678
Reviewed by Tim Horton.
Source/WebCore:
All scroll animations serviced at the same time should use a common timestamp, and
avoid multiple calls to MonotonicTime::now() by passing the time down through from
ThreadedScrollingTree::displayDidRefreshOnScrollingThread().
Also minor refactoring in ThreadedScrollingTree to prepare for a future patch.
- page/scrolling/ScrollingTree.cpp: (WebCore::ScrollingTree::nominalFramesPerSecond):
- page/scrolling/ScrollingTreeScrollingNode.h:
- page/scrolling/ScrollingTreeScrollingNodeDelegate.h:
- page/scrolling/ThreadedScrollingTree.cpp: (WebCore::ThreadedScrollingTree::frameDuration): (WebCore::ThreadedScrollingTree::maxAllowableRenderingUpdateDurationForSynchronization): (WebCore::ThreadedScrollingTree::serviceScrollAnimations): (WebCore::ThreadedScrollingTree::displayDidRefreshOnScrollingThread):
- page/scrolling/ThreadedScrollingTree.h:
- page/scrolling/mac/ScrollingTreeFrameScrollingNodeMac.h:
- page/scrolling/mac/ScrollingTreeFrameScrollingNodeMac.mm: (WebCore::ScrollingTreeFrameScrollingNodeMac::serviceScrollAnimation):
- page/scrolling/mac/ScrollingTreeOverflowScrollingNodeMac.h:
- page/scrolling/mac/ScrollingTreeOverflowScrollingNodeMac.mm: (WebCore::ScrollingTreeOverflowScrollingNodeMac::serviceScrollAnimation):
- page/scrolling/mac/ScrollingTreeScrollingNodeDelegateMac.h:
- page/scrolling/mac/ScrollingTreeScrollingNodeDelegateMac.mm: (WebCore::ScrollingTreeScrollingNodeDelegateMac::serviceScrollAnimation):
- page/scrolling/nicosia/ScrollingTreeFrameScrollingNodeNicosia.cpp: (WebCore::ScrollingTreeFrameScrollingNodeNicosia::serviceScrollAnimation):
- page/scrolling/nicosia/ScrollingTreeFrameScrollingNodeNicosia.h:
- page/scrolling/nicosia/ScrollingTreeOverflowScrollingNodeNicosia.cpp: (WebCore::ScrollingTreeOverflowScrollingNodeNicosia::serviceScrollAnimation):
- page/scrolling/nicosia/ScrollingTreeOverflowScrollingNodeNicosia.h:
- page/scrolling/nicosia/ScrollingTreeScrollingNodeDelegateNicosia.cpp: (WebCore::ScrollingTreeScrollingNodeDelegateNicosia::serviceScrollAnimation):
- page/scrolling/nicosia/ScrollingTreeScrollingNodeDelegateNicosia.h:
Source/WebKit:
- UIProcess/RemoteLayerTree/ios/ScrollingTreeScrollingNodeDelegateIOS.h:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@286352 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 1:25 PM Changeset in webkit [286717] by
-
- 16 edits5 adds in branches/safari-612.4.2.1-branch/Source
Cherry-pick r286346. rdar://problem/85928816
Add a momentum event synthesizer
https://bugs.webkit.org/show_bug.cgi?id=233653
<rdar://problem/85571258>
Reviewed by Simon Fraser.
Source/WebCore/PAL:
- pal/spi/mac/IOKitSPIMac.h: Add some SPI.
Source/WebKit:
- Platform/Logging.h: Add ScrollAnimations log channel to WebKit (it already exists in WebCore).
- Shared/ScrollingAccelerationCurve.cpp: Added. (WebKit::ScrollingAccelerationCurve::ScrollingAccelerationCurve): (WebKit::ScrollingAccelerationCurve::interpolate): (WebKit::ScrollingAccelerationCurve::computeIntermediateValuesIfNeeded): (WebKit::ScrollingAccelerationCurve::evaluateQuartic): (WebKit::ScrollingAccelerationCurve::accelerationFactor): (WebKit::ScrollingAccelerationCurve::encode const): (WebKit::ScrollingAccelerationCurve::decode): (WebKit::operator<<): (WebKit::ScrollingAccelerationCurve::fromNativeWheelEvent):
- Shared/ScrollingAccelerationCurve.h: Added. (WebKit::ScrollingAccelerationCurve::operator== const): (WebKit::ScrollingAccelerationCurve::operator!= const): Add a class that represents a quartic scrolling acceleration curve with a trailing linear tangent region, and allows interpolation between curves and evaluation of the curve at a point.
- Shared/mac/ScrollingAccelerationCurveMac.mm: Added. (WebKit::fromFixedPoint): (WebKit::readFixedPointParameter): (WebKit::fromIOHIDCurve): (WebKit::fromIOHIDCurveArrayWithAcceleration): (WebKit::ScrollingAccelerationCurve::fromNativeWheelEvent): Given a NativeWebWheelEvent, extract its underlying platform event and fetch the ScrollingAccelerationCurve for the originating device.
- Sources.txt:
- SourcesCocoa.txt:
- UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::handleWheelEvent): Fetch the current ScrollingAccelerationCurve on each momentum begin event, if the feature is enabled.
(WebKit::WebPageProxy::sendWheelEvent):
Send the ScrollingAccelerationCurve to EventDispatcher just before
we send the momentum begin event along, if it has changed.
(WebKit::WebPageProxy::windowScreenDidChange):
Keep EventDispatcher apprised of changes to the current screen of the page.
(WebKit::WebPageProxy::resetState):
- UIProcess/WebPageProxy.h:
- WebKit.xcodeproj/project.pbxproj:
- WebProcess/WebPage/EventDispatcher.cpp: (WebKit::EventDispatcher::EventDispatcher): (WebKit::EventDispatcher::internalWheelEvent): Factor most of wheelEvent out into internalWheelEvent, so that MomentumEventDispatcher can call internalWheelEvent(), skipping the code in wheelEvent() that forwards the event... to MomentumEventDispatcher.
Also, keep track of where the event came from (UI process or MomentumEventDispatcher)
and avoid sending didReceiveEvent replies to the UI process for synthetic
events that it doesn't know about.
(WebKit::EventDispatcher::wheelEvent):
Forward wheel events to MomentumEventDispatcher.
(WebKit::EventDispatcher::setScrollingAccelerationCurve):
Forward scrolling curve changes to MomentumEventDispatcher.
(WebKit::EventDispatcher::displayWasRefreshed):
Forward display refresh callbacks to MomentumEventDispatcher.
(WebKit::EventDispatcher::windowScreenDidChange):
Forward page screen changes to MomentumEventDispatcher.
- WebProcess/WebPage/EventDispatcher.h:
- WebProcess/WebPage/EventDispatcher.messages.in:
- WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::wheelEvent): (WebKit::WebPage::dispatchWheelEventWithoutScrolling):
- WebProcess/WebPage/WebPage.h: Don't send didReceiveEvent for synthetic events from the main thread either.
- WebProcess/WebPage/MomentumEventDispatcher.cpp: Added. (WebKit::MomentumEventDispatcher::MomentumEventDispatcher): (WebKit::MomentumEventDispatcher::~MomentumEventDispatcher): (WebKit::MomentumEventDispatcher::eventShouldStartSyntheticMomentumPhase const): If we have everything we need (a scrolling curve - which also implies that the setting is enabled - and raw platform deltas), and the event is a momentum begin event, we can use it to start a synthetic momentum phase.
(WebKit::MomentumEventDispatcher::handleWheelEvent):
Start or stop the momentum phase as appropriate.
Record any incoming fingers-down phase events in a rolling event history structure.
Block platform-event-driven events from being further handled by WebKit
if we are inside a synthetic momentum phase, since we'll be replacing them.
(WebKit::appKitScrollMultiplierForEvent):
Determine the AppKit scroll muliplier ("accelerated" vs "unaccelerated"
deltas in NSEvent parlance) from the event via division.
(WebKit::MomentumEventDispatcher::dispatchSyntheticMomentumEvent):
Dispatch a synthetic event with the given momentum phase and delta.
We borrow some properties from the event that initiated the momentum
phase (e.g. the position), and some from whatever event we've most
recently seen (even if we told the rest of WebKit to ignore it), so
that we get the most up-to-date state for e.g. the keyboard modifiers.
(WebKit::MomentumEventDispatcher::didStartMomentumPhase):
Record relevant information about the start event, generate the
momentum curve, and start a full-rate display link. Also, send a momentum
begin event, since we blocked the real one.
(WebKit::MomentumEventDispatcher::didEndMomentumPhase):
Send a momentum ended event, shut down the display link, and reset all
per-gesture state.
(WebKit::MomentumEventDispatcher::setScrollingAccelerationCurve):
Store ScrollingAccelerationCurves on a per-page basis.
(WebKit::MomentumEventDispatcher::displayID const):
Look up the displayID for the current gesture's page.
(WebKit::MomentumEventDispatcher::startDisplayLink):
(WebKit::MomentumEventDispatcher::stopDisplayLink):
Start and stop a display link, which will - in a roundabout manner -
eventually call back into displayWasRefreshed.
(WebKit::MomentumEventDispatcher::windowScreenDidChange):
Store DisplayIDs on a per-page basis.
(WebKit::MomentumEventDispatcher::displayWasRefreshed):
When the display link calls us back, emit a single momentum changed
event of sufficient delta to move us to the desired offset along the curve.
(WebKit::MomentumEventDispatcher::didScrollWithInterval):
(WebKit::MomentumEventDispatcher::didScroll):
Record incoming scrolling events into a rolling history deque.
(WebKit::MomentumEventDispatcher::buildOffsetTableWithInitialDelta):
Compute the offsets for the entire "ideal curve" table (at 60Hz) by
running the animation and accumulating the deltas.
(WebKit::interpolate):
(WebKit::MomentumEventDispatcher::offsetAtTime):
Interpolate along the "ideal curve" to determine the intended offset
at a given time.
(WebKit::momentumDecayRate):
(WebKit::MomentumEventDispatcher::computeNextDelta):
Compute the next delta given a delta (and the event history) by applying
a bit of exponential decay and then passing it through the
ScrollingAccelerationCurve. We return both the unaccelerated
and accelerated deltas, because the input to the next iteration of
computeNextDelta is the unaccelerated delta, but the delta applied
to the actual scroll position is the accelerated delta.
- WebProcess/WebPage/MomentumEventDispatcher.h: Added.
Source/WTF:
- wtf/PlatformEnable.h: Add an ENABLE().
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@286346 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 1:25 PM Changeset in webkit [286716] by
-
- 16 edits in branches/safari-612.4.2.1-branch/Source
Cherry-pick r283353. rdar://problem/85928816
Simplify some scrolling-related code in WebKit with use of RectEdges<bool>
https://bugs.webkit.org/show_bug.cgi?id=231037
Reviewed by Tim Horton.
Source/WebCore:
Export edgePinnedState().
- platform/ScrollableArea.h:
Source/WebKit:
Use RectEdges<bool> in code that tracks rubber banding state, and edge pinned state.
- Shared/WebCoreArgumentCoders.cpp: (IPC::ArgumentCoder<RectEdges<bool>>::encode): (IPC::ArgumentCoder<RectEdges<bool>>::decode):
- Shared/WebCoreArgumentCoders.h:
- UIProcess/API/C/WKPage.cpp: (WKPageIsPinnedToLeftSide): (WKPageIsPinnedToRightSide): (WKPageIsPinnedToTopSide): (WKPageIsPinnedToBottomSide): (WKPageRubberBandsAtLeft): (WKPageRubberBandsAtRight): (WKPageRubberBandsAtTop): (WKPageRubberBandsAtBottom):
- UIProcess/Cocoa/WebViewImpl.mm: (WebKit::toWKRectEdge): (WebKit::toRectEdges): (WebKit::WebViewImpl::pinnedState): (WebKit::WebViewImpl::rubberBandingEnabled): (WebKit::WebViewImpl::setRubberBandingEnabled):
- UIProcess/ViewGestureController.cpp: (WebKit::ViewGestureController::PendingSwipeTracker::scrollEventCanBecomeSwipe):
- UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::sendWheelEvent): (WebKit::WebPageProxy::setRubberBandsAtLeft): (WebKit::WebPageProxy::setRubberBandsAtRight): (WebKit::WebPageProxy::setRubberBandsAtTop): (WebKit::WebPageProxy::setRubberBandsAtBottom): (WebKit::WebPageProxy::didCommitLoadForFrame): (WebKit::WebPageProxy::resetState): (WebKit::WebPageProxy::didChangeScrollOffsetPinningForMainFrame): (WebKit::WebPageProxy::rubberBandsAtLeft const): Deleted. (WebKit::WebPageProxy::rubberBandsAtRight const): Deleted. (WebKit::WebPageProxy::rubberBandsAtTop const): Deleted. (WebKit::WebPageProxy::rubberBandsAtBottom const): Deleted.
- UIProcess/WebPageProxy.h:
- UIProcess/WebPageProxy.messages.in:
- WebProcess/WebPage/EventDispatcher.cpp: (WebKit::EventDispatcher::wheelEvent):
- WebProcess/WebPage/EventDispatcher.h:
- WebProcess/WebPage/EventDispatcher.messages.in:
- WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::updateMainFrameScrollOffsetPinning):
- WebProcess/WebPage/WebPage.h:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@283353 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 1:25 PM Changeset in webkit [286715] by
-
- 2 edits in branches/safari-612.4.2.1-branch/Tools
Cherry-pick r286368. rdar://problem/85928816
REGRESSION (r286346): ResourceLoadDelegate.LoadInfo fails
https://bugs.webkit.org/show_bug.cgi?id=233689
Reviewed by Simon Fraser.
- TestWebKitAPI/Tests/WebKitCocoa/ResourceLoadDelegate.mm: This test asserts that archiving a _WKResourceLoadInfo via NSKeyedArchiver encodes to a particular size (607 bytes).
If you look at the resultant plist before r286346, the encoded frameID
and resourceLoadID have the same value, and because of NSKeyedArchiver
deduplication, share the same object.
If you look at the resultant plist *after* r286346, the encoded frameID
is one larger than the resourceLoadID, thus cannot be deduplicated, and
end up encoding as separate objects. This results in the encoded size
increasing to 612 bytes.
The reason that the encoded frameID is now one value larger is that
ObjectIdentifier uses a global identifier pool, and r286346 creates
one more ObjectIdentifier during EventHandler construction, destroying
our entirely coincidental ID overlap, and causing the aforementioned
encoded size change.
Remove this assertion from the test, since it is very aggressive and
seems unnecessary. We could instead just rebaseline the test, but it
seems insufficiently important to burden some future developer with
a repeat of this evening of exploration and discovery.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@286368 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 1:25 PM Changeset in webkit [286714] by
-
- 2 edits in branches/safari-612.4.2.1-branch/Source/WebKit
Cherry-pick r286277. rdar://problem/85928816
Fix the build
- Shared/ios/WebIOSEventFactory.mm: (WebIOSEventFactory::createWebWheelEvent):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@286277 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 1:25 PM Changeset in webkit [286713] by
-
- 10 edits in branches/safari-612.4.2.1-branch/Source
Cherry-pick r286270. rdar://problem/85928816
Plumb raw platform scrolling deltas along in wheel events
https://bugs.webkit.org/show_bug.cgi?id=233583
Reviewed by Simon Fraser.
Source/WebCore:
- platform/PlatformWheelEvent.cpp: (WebCore::PlatformWheelEvent::createFromGesture):
- platform/PlatformWheelEvent.h: (WebCore::PlatformWheelEvent::rawPlatformDelta const):
- PAL/pal/spi/mac/IOKitSPIMac.h:
Source/WebKit:
- Shared/WebEventConversion.cpp: (WebKit::WebKit2PlatformWheelEvent::WebKit2PlatformWheelEvent):
- Shared/WebWheelEvent.cpp: (WebKit::WebWheelEvent::WebWheelEvent): (WebKit::WebWheelEvent::encode const): (WebKit::WebWheelEvent::decode):
- Shared/WebWheelEvent.h: (WebKit::WebWheelEvent::rawPlatformDelta const):
- Shared/WebWheelEventCoalescer.cpp: (WebKit::WebWheelEventCoalescer::coalesce):
- Shared/mac/WebEventFactory.mm: (WebKit::WebEventFactory::createWebWheelEvent): Extract and plumb raw unaccelerated (in the HID sense) deltas in scroll events for use in a future patch.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@286270 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 1:25 PM Changeset in webkit [286712] by
-
- 16 edits in branches/safari-612.4.2.1-branch/Source
Cherry-pick r285790. rdar://problem/85928816
Attach IOHIDEvent timestamps to wheel events
https://bugs.webkit.org/show_bug.cgi?id=233051
Reviewed by Wenson Hsieh.
Source/WebCore:
On some macOS devices, there can be significant deltas between NSEvent timestamps,
and the timestamps on underlying IOHIDEvents (rdar://85309639). This makes momentum
velocity computation unpredictable; we can get better results by using IOHIDEvent
timestamps.
- platform/PlatformWheelEvent.cpp: (WebCore::PlatformWheelEvent::createFromGesture):
- platform/PlatformWheelEvent.h: (WebCore::PlatformWheelEvent::ioHIDEventTimestamp const):
- platform/mac/PlatformEventFactoryMac.h:
- platform/mac/PlatformEventFactoryMac.mm: (WebCore::eventTimeStampSince1970): (WebCore::PlatformMouseEventBuilder::PlatformMouseEventBuilder): (WebCore::PlatformWheelEventBuilder::PlatformWheelEventBuilder): (WebCore::PlatformKeyboardEventBuilder::PlatformKeyboardEventBuilder):
Source/WebCore/PAL:
Expose a few bits of SPI needed.
- pal/spi/cg/CoreGraphicsSPI.h:
- pal/spi/cocoa/IOKitSPI.h:
Source/WebKit:
On some macOS devices, there can be significant deltas between NSEvent timestamps,
and the timestamps on underlying IOHIDEvents (rdar://85309639). This makes momentum
velocity computation unpredictable; we can get better results by using IOHIDEvent
timestamps.
- Shared/WebEventConversion.cpp: (WebKit::WebKit2PlatformWheelEvent::WebKit2PlatformWheelEvent):
- Shared/WebWheelEvent.cpp: (WebKit::WebWheelEvent::WebWheelEvent): (WebKit::WebWheelEvent::encode const): (WebKit::WebWheelEvent::decode):
- Shared/WebWheelEvent.h: (WebKit::WebWheelEvent::ioHIDEventTimestamp const):
- Shared/WebWheelEventCoalescer.cpp: (WebKit::WebWheelEventCoalescer::coalesce):
- Shared/ios/WebIOSEventFactory.mm: (WebIOSEventFactory::createWebWheelEvent):
- Shared/mac/NativeWebGestureEventMac.mm:
- Shared/mac/WebEventFactory.mm: (WebKit::WebEventFactory::createWebMouseEvent): (WebKit::WebEventFactory::createWebWheelEvent): (WebKit::WebEventFactory::createWebKeyboardEvent):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@285790 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 1:25 PM Changeset in webkit [286711] by
-
- 8 edits1 copy in branches/safari-612.4.2.1-branch/Source/WebCore
Cherry-pick r285786. rdar://problem/85928816
Clean up IOKit SPI headers
https://bugs.webkit.org/show_bug.cgi?id=233093
Reviewed by Simon Fraser.
Source/WebCore:
- platform/gamepad/cocoa/GameControllerGamepadProvider.mm:
- platform/gamepad/mac/HIDGamepadProvider.h:
- platform/gamepad/mac/HIDGamepadProvider.mm:
Source/WebCore/PAL:
- PAL.xcodeproj/project.pbxproj:
- pal/spi/cg/CoreGraphicsSPI.h:
- pal/spi/cocoa/IOKitSPI.h:
- pal/spi/ios/IOKitSPIIOS.h: Added.
- pal/spi/mac/IOKitSPIMac.h: IOKit vends a much different set of public API on iOS vs. macOS, so we have separate SPI headers to reduce the confusion.
Unfortunately, the SPI header for iOS was not explicitly named as such,
and started being used in some macOS code. For a while, this didn't lead
to any trouble because the aforementioned macOS code didn't ALSO have
the public SDK headers included, but a future patch from Simon will
use IOKitSPI.h in a place where the macOS IOKit public headers are included,
and thus we must make the split more explicit.
Rename IOKitSPI.h to IOKitSPIIOS.h; make IOKitSPI choose the right one.
Add some SPI defintions to IOKitSPIMac.h that were missing (which the
dependent code was getting via the iOS header on macOS).
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@285786 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 1:19 PM Changeset in webkit [286710] by
-
- 3 edits in branches/safari-613.1.11-branch/Source/WebKit
Cherry-pick r286671. rdar://problem/86226565
Momentum Event Dispatcher: Momentum tail should have montonically decreasing deltas and tail gaps
https://bugs.webkit.org/show_bug.cgi?id=233993
<rdar://problem/86118367>
Reviewed by Simon Fraser.
- WebProcess/WebPage/MomentumEventDispatcher.cpp: (WebKit::MomentumEventDispatcher::consumeDeltaForCurrentTime): (WebKit::MomentumEventDispatcher::buildOffsetTableWithInitialDelta): (WebKit::MomentumEventDispatcher::computeNextDelta): In order to avoid visual stutter due to integral rounding of the deltas we dispatch in the momentum phase, switch to a table of deltas instead of interpolating along the offset curve during the tail end of the animation (when the rounding makes up a large proportion of each delta).
(WebKit::MomentumEventDispatcher::equalizeTailGaps):
Sort the deltas up until the first zero to ensure a lack of unexpected
perceptual acceleration, and then inject skipped frames in order to
ensure that frames that have effective scroll movement (non-zero deltas)
are always spaced equally-or-further apart than earlier ones, but
never closer together (which, again, would be percieved as acceleration).
(WebKit::MomentumEventDispatcher::handleWheelEvent):
(WebKit::MomentumEventDispatcher::pushLogEntry):
(WebKit::MomentumEventDispatcher::flushLog):
Lastly, adjust some logging to make it easier to tell which row in
the output corresponds to an event delta or generated delta, so it's
easier to find skipped frames.
- WebProcess/WebPage/MomentumEventDispatcher.h:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@286671 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 1:06 PM Changeset in webkit [286709] by
-
- 63 edits1 copy1 move1 delete in trunk
Unreviewed, reverting r286596.
broke 2 tests on iOS
Reverted changeset:
"Cocoa WebGL should support UI side compositing"
https://bugs.webkit.org/show_bug.cgi?id=231009
https://commits.webkit.org/r286596
- 12:46 PM Changeset in webkit [286708] by
-
- 4 edits in trunk/Source/WebCore
[Win] WebCore::cfHDropFormat implementation is not CF specific
https://bugs.webkit.org/show_bug.cgi?id=234021
Reviewed by Alex Christensen.
The implementation of cfHDropFormat was guarded by USE(CF) but there is nothing CF specific
about the implementation. Drop the guards around it and any of its callers.
Renaming CFData functions to HDropData to better represent the underlying Windows type for
the clipboard and make sure its not mistaken for CoreFoundation functionality.
- platform/win/ClipboardUtilitiesWin.cpp:
(WebCore::getWebLocData):
(WebCore::getHDropData):
(WebCore::setHDropData):
(WebCore::getClipboardMap):
(WebCore::getCFData): Deleted.
(WebCore::setCFData): Deleted.
- platform/win/DragDataWin.cpp:
(WebCore::DragData::containsFiles const):
(WebCore::DragData::numberOfFiles const):
(WebCore::DragData::asFilenames const):
- platform/win/PasteboardWin.cpp:
(WebCore::Pasteboard::read):
(WebCore::writeFileToDataObject):
- 12:44 PM Changeset in webkit [286707] by
-
- 2 edits in branches/safari-612-branch/Source/WebKit
Cherry-pick r286574. rdar://problem/86224832
Regression(r286505) imported/w3c/web-platform-tests/html/cross-origin-opener-policy/javascript-url.https.html is a flaky crash
https://bugs.webkit.org/show_bug.cgi?id=233874
Reviewed by Darin Adler.
r286505 fixed ProvisionalPageProxy so that ProvisionalPageProxy::m_provisionalLoadURL gets properly initialized when the
ProvisionalPageProxy gets constructed *after* the provisional load has already started (COOP proces-swap case). One side
effect of this though is that ProvisionalPageProxy::cancel() no longer returns early and will try to notify the client
that the provisional load failed, dereferencing m_mainFrame in doing so. In the event where the main frame has not yet
been created in the new provisional process, this would do a null-dereference of m_mainFrame.
To address the issue, we now early return in ProvisionalPageProxy::cancel() if m_isProcessSwappingOnNavigationResponse
is true (i.e. The ProvisionalPageProxy was created after the provisional load had started). In such situations, we
don't want to ProvisionalPageProxy to be the one notifying the client of the provisional load failure anyway. The reason
is that there is still a provisional load going on in the committed process/page.
No new tests, covered by existing test that is flakily crashing.
- UIProcess/ProvisionalPageProxy.cpp: (WebKit::ProvisionalPageProxy::cancel):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@286574 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 12:34 PM Changeset in webkit [286706] by
-
- 8 edits in branches/safari-612.4.2.3-branch/Source
Versioning.
WebKit-7612.4.2.3.1
- 12:34 PM Changeset in webkit [286705] by
-
- 40 edits in trunk/Source
Unreviewed, reverting r286632.
Broke 3 tests on iOS
Reverted changeset:
"Add a
DOMPasteAccessCategory
to control which pasteboard
the WebProcess is granted access to when pasting"
https://bugs.webkit.org/show_bug.cgi?id=233939
https://commits.webkit.org/r286632
- 12:31 PM Changeset in webkit [286704] by
-
- 8 edits in branches/safari-612.4.2.2-branch/Source
Versioning.
WebKit-7612.4.2.2.1
- 12:27 PM Changeset in webkit [286703] by
-
- 18 edits21 adds in trunk
Support WebAssembly.Memory imports in Wasm/ESM modules.
https://bugs.webkit.org/show_bug.cgi?id=184745
Patch by Asumu Takikawa <asumu@igalia.com> on 2021-12-08
Reviewed by Yusuke Suzuki.
JSTests:
- wasm/modules/wasm-imports-js-exports.js:
(then):
- wasm/modules/wasm-imports-js-exports/memory-fail-1.js: Added.
- wasm/modules/wasm-imports-js-exports/memory-fail-1.wasm: Added.
- wasm/modules/wasm-imports-js-exports/memory-fail-1.wat: Added.
- wasm/modules/wasm-imports-js-exports/memory-fail-2.js: Added.
- wasm/modules/wasm-imports-js-exports/memory-fail-2.wasm: Added.
- wasm/modules/wasm-imports-js-exports/memory-fail-2.wat: Added.
- wasm/modules/wasm-imports-js-exports/memory-fail-3.js: Added.
- wasm/modules/wasm-imports-js-exports/memory-fail-3.wasm: Added.
- wasm/modules/wasm-imports-js-exports/memory-fail-3.wat: Added.
- wasm/modules/wasm-imports-js-exports/memory-fail-4.js: Added.
- wasm/modules/wasm-imports-js-exports/memory-fail-4.wasm: Added.
- wasm/modules/wasm-imports-js-exports/memory-fail-4.wat: Added.
- wasm/modules/wasm-imports-js-exports/memory-fail-5.js: Added.
- wasm/modules/wasm-imports-js-exports/memory-fail-5.wasm: Added.
- wasm/modules/wasm-imports-js-exports/memory-fail-5.wat: Added.
- wasm/modules/wasm-imports-js-exports/memory.js: Added.
(export.setMemory):
- wasm/modules/wasm-imports-js-exports/memory.wasm: Added.
- wasm/modules/wasm-imports-js-exports/memory.wat: Added.
- wasm/modules/wasm-imports-js-exports/shared-memory.js: Added.
- wasm/modules/wasm-imports-js-exports/shared-memory.wasm: Added.
- wasm/modules/wasm-imports-js-exports/shared-memory.wat: Added.
- wasm/modules/wasm-imports-js-re-exports-wasm-exports.js:
- wasm/modules/wasm-imports-js-re-exports-wasm-exports/imports.wasm:
- wasm/modules/wasm-imports-js-re-exports-wasm-exports/imports.wat:
- wasm/modules/wasm-imports-js-re-exports-wasm-exports/re-export.js:
- wasm/modules/wasm-imports-js-re-exports-wasm-exports/sum.wasm:
- wasm/modules/wasm-imports-js-re-exports-wasm-exports/sum.wat:
Source/JavaScriptCore:
Changes how Wasm code is initialized for modules that are loaded
by the module loader and have memory imports. The initial code for
the LLInt tier is copied to all memory modes, so that the memory
import can be initialized after compilation. When LLInt is turned
off, the compilation of B3/Air code is delayed until the memory is
initialized.
- wasm/WasmCodeBlock.cpp:
(JSC::Wasm::CodeBlock::createFromExisting):
(JSC::Wasm::CodeBlock::CodeBlock):
- wasm/WasmCodeBlock.h:
- wasm/WasmInstance.h:
(JSC::Wasm::Instance::finalizeCreation):
(JSC::Wasm::Instance::module const):
(JSC::Wasm::Instance::codeBlock const):
(JSC::Wasm::Instance::memory const):
(JSC::Wasm::Instance::isImportFunction const):
(JSC::Wasm::Instance::module): Deleted.
(JSC::Wasm::Instance::codeBlock): Deleted.
(JSC::Wasm::Instance::memory): Deleted.
- wasm/WasmModule.cpp:
(JSC::Wasm::Module::copyInitialCodeBlockToAllMemoryModes):
- wasm/WasmModule.h:
- wasm/js/JSWebAssembly.cpp:
(JSC::instantiate):
- wasm/js/JSWebAssemblyInstance.cpp:
(JSC::JSWebAssemblyInstance::finalizeCreation):
(JSC::JSWebAssemblyInstance::tryCreate):
- wasm/js/JSWebAssemblyInstance.h:
- wasm/js/WebAssemblyModuleRecord.cpp:
(JSC::WebAssemblyModuleRecord::initializeImportsAndExports):
- 12:27 PM Changeset in webkit [286702] by
-
- 8 edits in branches/safari-612.4.2.1-branch/Source
Versioning.
WebKit-7612.4.2.1.1
- 12:24 PM Changeset in webkit [286701] by
-
- 3 edits in branches/safari-612-branch/Source/WebKit
Cherry-pick r286671. rdar://problem/85928816
Momentum Event Dispatcher: Momentum tail should have montonically decreasing deltas and tail gaps
https://bugs.webkit.org/show_bug.cgi?id=233993
<rdar://problem/86118367>
Reviewed by Simon Fraser.
- WebProcess/WebPage/MomentumEventDispatcher.cpp: (WebKit::MomentumEventDispatcher::consumeDeltaForCurrentTime): (WebKit::MomentumEventDispatcher::buildOffsetTableWithInitialDelta): (WebKit::MomentumEventDispatcher::computeNextDelta): In order to avoid visual stutter due to integral rounding of the deltas we dispatch in the momentum phase, switch to a table of deltas instead of interpolating along the offset curve during the tail end of the animation (when the rounding makes up a large proportion of each delta).
(WebKit::MomentumEventDispatcher::equalizeTailGaps):
Sort the deltas up until the first zero to ensure a lack of unexpected
perceptual acceleration, and then inject skipped frames in order to
ensure that frames that have effective scroll movement (non-zero deltas)
are always spaced equally-or-further apart than earlier ones, but
never closer together (which, again, would be percieved as acceleration).
(WebKit::MomentumEventDispatcher::handleWheelEvent):
(WebKit::MomentumEventDispatcher::pushLogEntry):
(WebKit::MomentumEventDispatcher::flushLog):
Lastly, adjust some logging to make it easier to tell which row in
the output corresponds to an event delta or generated delta, so it's
easier to find skipped frames.
- WebProcess/WebPage/MomentumEventDispatcher.h:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@286671 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 12:24 PM Changeset in webkit [286700] by
-
- 2 edits in branches/safari-612-branch/Source/WebKit
Cherry-pick r286631. rdar://problem/85928816
[Scroll Momentum Generator] Pages lose ability to momentum scroll after dragging between displays
https://bugs.webkit.org/show_bug.cgi?id=233948
rdar://86110813
Reviewed by Tim Horton.
This is a conservative fix for the bug. When a view moves to a new screen, WebPageProxy
needs to unregister for full speed updates using the old displayID, and register
using the new one.
Longer term, it would be better if "full speed updates" was a per-observer concept,
but that would mean registering an observer while wheel events are being received,
which needs a bit more thought.
- UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::windowScreenDidChange):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@286631 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 12:23 PM Changeset in webkit [286699] by
-
- 2 edits in branches/safari-612-branch/Source/WebKit
Cherry-pick r286566. rdar://problem/85928816
Momentum Event Dispatcher: Momentum phase runs backwards with natural scrolling disabled
https://bugs.webkit.org/show_bug.cgi?id=233894
<rdar://problem/86111948>
Reviewed by Simon Fraser.
- WebProcess/WebPage/MomentumEventDispatcher.cpp: (WebKit::MomentumEventDispatcher::consumeDeltaForCurrentTime): Only flip the deltas if the trackpad is configured to use "natural" scrolling (in which "directionInvertedFromDevice" is true).
(WebKit::MomentumEventDispatcher::computeNextDelta):
Fix initial queue state logging to log both axes before setting the "did log" bit.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@286566 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 12:23 PM Changeset in webkit [286698] by
-
- 6 edits in branches/safari-612-branch
Cherry-pick r286537. rdar://problem/85928816
Add trace points for generated momentum events
https://bugs.webkit.org/show_bug.cgi?id=233857
Reviewed by Tim Horton.
Source/WebKit:
Add start/end points for synthetic momentum, and a trace point for each generated event.
- WebProcess/WebPage/MomentumEventDispatcher.cpp: (WebKit::MomentumEventDispatcher::dispatchSyntheticMomentumEvent): (WebKit::MomentumEventDispatcher::didStartMomentumPhase): (WebKit::MomentumEventDispatcher::didEndMomentumPhase):
Source/WTF:
- wtf/SystemTracing.h:
Tools:
Add start/end points for synthetic momentum, and a trace point for each generated event.
- Tracing/SystemTracePoints.plist:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@286537 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 12:23 PM Changeset in webkit [286697] by
-
- 1 edit in branches/safari-612-branch/Source/WebKit/Shared/mac/MediaFormatReader/MediaFormatReader.cpp
Unreviewed build fix. rdar://problem/85928816
- 12:23 PM Changeset in webkit [286696] by
-
- 1 edit in branches/safari-612-branch/Source/WebKit/Shared/WebPreferencesDefaultValues.cpp
Unreviewed build fix. rdar://problem/85928816
error: use of undeclared identifier 'isInWebProcess'; did you mean 'WebCore::isInWebProcess'?
- 12:23 PM Changeset in webkit [286695] by
-
- 1 edit in branches/safari-612-branch/Source/WebKit/Shared/mac/MediaFormatReader/MediaFormatReader.cpp
Unreviewed build fix. rdar://problem/85928816
error: member access into incomplete type 'Webcore::SharedBuffer'
- 12:23 PM Changeset in webkit [286694] by
-
- 4 edits in branches/safari-612-branch/Source/WebKit
Cherry-pick r286512. rdar://problem/85928816
Add more logging for MomentumEventDispatcher
https://bugs.webkit.org/show_bug.cgi?id=233811
Reviewed by Simon Fraser.
Add a temporary event log to MomentumEventDispatcher, to debug delta/offset/curve issues.
- WebProcess/WebPage/EventDispatcher.h: (WebKit::EventDispatcher::queue):
- WebProcess/WebPage/MomentumEventDispatcher.cpp: (WebKit::MomentumEventDispatcher::handleWheelEvent): Accumulate event deltas. Also accumulate event deltas for the fingers-down phase in the "generated" offset. Store the phase and momentum phase smooshed into a single field.
(WebKit::MomentumEventDispatcher::dispatchSyntheticMomentumEvent):
Accumulate generated deltas.
(WebKit::MomentumEventDispatcher::didEndMomentumPhase):
Attempt to dump the log 1 second after each momentum phase. We'll skip
it if another scroll has started since.
(WebKit::MomentumEventDispatcher::setScrollingAccelerationCurve):
(WebKit::MomentumEventDispatcher::startDisplayLink):
(WebKit::MomentumEventDispatcher::stopDisplayLink):
(WebKit::MomentumEventDispatcher::consumeDeltaForCurrentTime):
(WebKit::MomentumEventDispatcher::buildOffsetTableWithInitialDelta):
(WebKit::MomentumEventDispatcher::computeNextDelta):
Adopt more MOMENTUM_EVENT_DISPATCHER_TEMPORARY_LOGGING. Error logging
we leave outside of this, because that we'll keep around.
(WebKit::MomentumEventDispatcher::pushLogEntry):
(WebKit::MomentumEventDispatcher::flushLog):
Dump the event log in an easy-to-copy-into-a-CSV format.
- WebProcess/WebPage/MomentumEventDispatcher.h:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@286512 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 12:23 PM Changeset in webkit [286693] by
-
- 2 edits in branches/safari-612-branch/Source/WTF
Cherry-pick r286504. rdar://problem/85928816
Enable Momentum Event Generator by default
https://bugs.webkit.org/show_bug.cgi?id=233807
<rdar://problem/85262515>
Reviewed by Simon Fraser.
- Scripts/Preferences/WebPreferencesInternal.yaml: Turn it on for modern WebKit. Adjust the description slightly.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@286504 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 12:23 PM Changeset in webkit [286692] by
-
- 16 edits in branches/safari-612-branch/Source
Cherry-pick r285526. rdar://problem/85928816
Add runtime flag for momentum scrolling
https://bugs.webkit.org/show_bug.cgi?id=232898
<rdar://problem/85211338>
Reviewed by Simon Fraser.
- Scripts/Preferences/WebPreferencesInternal.yaml: Add the preference.
- page/scrolling/AsyncScrollingCoordinator.cpp: (WebCore::AsyncScrollingCoordinator::setFrameScrollingNodeState):
- page/scrolling/ScrollingStateFrameScrollingNode.cpp: (WebCore::ScrollingStateFrameScrollingNode::ScrollingStateFrameScrollingNode): (WebCore::ScrollingStateFrameScrollingNode::applicableProperties const): (WebCore::ScrollingStateFrameScrollingNode::setMomentumScrollingAnimatorEnabled):
- page/scrolling/ScrollingStateFrameScrollingNode.h:
- page/scrolling/ScrollingStateNode.h:
- page/scrolling/ScrollingTree.cpp: (WebCore::ScrollingTree::commitTreeState):
- page/scrolling/ScrollingTree.h: (WebCore::ScrollingTree::momentumScrollingAnimatorEnabled const): (WebCore::ScrollingTree::setMomentumScrollingAnimatorEnabled):
- page/scrolling/ScrollingTreeScrollingNode.cpp: (WebCore::ScrollingTreeScrollingNode::momentumScrollingAnimatorEnabled const):
- page/scrolling/ScrollingTreeScrollingNode.h:
- page/scrolling/mac/ScrollingTreeScrollingNodeDelegateMac.h:
- page/scrolling/mac/ScrollingTreeScrollingNodeDelegateMac.mm: (WebCore::ScrollingTreeScrollingNodeDelegateMac::momentumScrollingAnimatorEnabled const):
- platform/ScrollingEffectsController.h: (WebCore::ScrollingEffectsControllerClient::momentumScrollingAnimatorEnabled const):
- Shared/RemoteLayerTree/RemoteScrollingCoordinatorTransaction.cpp: (ArgumentCoder<ScrollingStateFrameScrollingNode>::encode): (ArgumentCoder<ScrollingStateFrameScrollingNode>::decode):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@285526 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 12:23 PM Changeset in webkit [286691] by
-
- 6 edits in branches/safari-612-branch/Source/WebKit
Cherry-pick r286483. rdar://problem/85928816
MomentumEventDispatcher curve sometimes doesn't match the system curve
https://bugs.webkit.org/show_bug.cgi?id=233801
<rdar://problem/85870287>
Reviewed by Simon Fraser.
Three small changes to get us closer to the system curve:
1) Fetch the momentum event dispatch interval from the system, and use
it to scale the momentum start event's delta (which we use as our
initial velocity) into the "ideal" curve's frame rate (which is always
60fps regardless).
2) Back-date the animation start time to the fingers-down phase end event,
so that the momentum start phase has a delta. This seems to match what
the system does.
3) Switch to MonotonicTime for the animation time, since it doesn't need
to be in the same timebase as events (which are oddly in WallTime), and
certainly should be monotonic.
- Shared/ScrollingAccelerationCurve.cpp: (WebKit::ScrollingAccelerationCurve::ScrollingAccelerationCurve): (WebKit::ScrollingAccelerationCurve::interpolate): (WebKit::ScrollingAccelerationCurve::encode const): (WebKit::ScrollingAccelerationCurve::decode): (WebKit::operator<<):
- Shared/ScrollingAccelerationCurve.h: (WebKit::ScrollingAccelerationCurve::frameRate): (WebKit::ScrollingAccelerationCurve::operator== const):
- Shared/mac/ScrollingAccelerationCurveMac.mm:
(WebKit::fromIOHIDCurve):
(WebKit::fromIOHIDCurveArrayWithAcceleration):
(WebKit::fromIOHIDDevice):
Fetch and propagate the dispatch frame rate. This isn't *really* a
ScrollingAccelerationCurve property, but neither is
resolution
; this is just currently the only place we look up HID properties and push them to the Web Content process; some re-architecture is warranted here in the future.
- WebProcess/WebPage/MomentumEventDispatcher.cpp: (WebKit::MomentumEventDispatcher::handleWheelEvent): Keep track of the last fingers-down phase ended event timestamp.
(WebKit::MomentumEventDispatcher::didStartMomentumPhase):
Backdate the start time so that the first event has the appropriate delta.
Divide out the dispatch frame rate so that the initial velocity is
as if the curve were running at 60fps (since we *will* run it at 60fps and interpolate).
(WebKit::MomentumEventDispatcher::didEndMomentumPhase):
(WebKit::MomentumEventDispatcher::consumeDeltaForTime):
(WebKit::MomentumEventDispatcher::displayWasRefreshed):
Factor the consume-a-delta-from-the-ideal-curve code out from displayWasRefreshed
so we can use it in the start phase too.
(WebKit::MomentumEventDispatcher::offsetAtTime):
(WebKit::MomentumEventDispatcher::computeNextDelta):
Rename idealCurveFrameRate->idealCurveFrameInterval for accuracy.
- WebProcess/WebPage/MomentumEventDispatcher.h:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@286483 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 12:23 PM Changeset in webkit [286690] by
-
- 6 edits in branches/safari-612-branch/Source
Cherry-pick r286481. rdar://problem/85928816
A Safari tab can rarely get stuck in a state where rendering updates stop happening
https://bugs.webkit.org/show_bug.cgi?id=233784
rdar://85445072
Reviewed by Chris Dumez.
Sometimes a Safari tab can get into a state where rendering updates cease to happen,
which manifests as partially broken scrolling, blank tiles revealed when scrolling,
and somewhat broken page updates. I was able to sometimes reproduce this by clicking
on links in eBay emails from Mail on a system with two displays.
From the one time I reproduce with logging, the output indicated that DisplayRefreshMonitor::displayLinkFired()
would early return because isPreviousFrameDone() was false. The only way for that to occur,
barring memory corruption, is if DisplayRefreshMonitorMac::dispatchDisplayDidRefresh() returned early,
which it does if the callback comes twice in a single event loop; this may explain the rarity.
So fix DisplayRefreshMonitorMac::dispatchDisplayDidRefresh() call setIsPreviousFrameDone(true)
so the next callback can make progress
Also add some locking annotations and fix one missing lock, and some release logging.
Source/WebCore:
- platform/graphics/DisplayRefreshMonitor.cpp: (WebCore::DisplayRefreshMonitor::stop): (WebCore::DisplayRefreshMonitor::firedAndReachedMaxUnscheduledFireCount): (WebCore::DisplayRefreshMonitor::displayLinkFired):
- platform/graphics/DisplayRefreshMonitor.h: (WebCore::DisplayRefreshMonitor::WTF_REQUIRES_LOCK): (WebCore::DisplayRefreshMonitor::WTF_GUARDED_BY_LOCK): (WebCore::DisplayRefreshMonitor::setMaxUnscheduledFireCount): Deleted. (WebCore::DisplayRefreshMonitor::isScheduled const): Deleted. (WebCore::DisplayRefreshMonitor::setIsScheduled): Deleted. (WebCore::DisplayRefreshMonitor::isPreviousFrameDone const): Deleted. (WebCore::DisplayRefreshMonitor::setIsPreviousFrameDone): Deleted.
Source/WebKit:
- WebProcess/WebPage/mac/DisplayRefreshMonitorMac.cpp: (WebKit::DisplayRefreshMonitorMac::dispatchDisplayDidRefresh):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@286481 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 12:23 PM Changeset in webkit [286689] by
-
- 3 edits in branches/safari-612-branch/Source/WebKit
Cherry-pick r286380. rdar://problem/85928816
Unreviewed build fixes after r286346.
- WebProcess/WebPage/MomentumEventDispatcher.cpp: (WebKit::MomentumEventDispatcher::startDisplayLink): (WebKit::MomentumEventDispatcher::displayWasRefreshed): (WebKit::MomentumEventDispatcher::didReceiveScrollEventWithInterval): (WebKit::MomentumEventDispatcher::buildOffsetTableWithInitialDelta): (WebKit::MomentumEventDispatcher::offsetAtTime): (WebKit::momentumDecayRate): (WebKit::MomentumEventDispatcher::computeNextDelta):
- WebProcess/WebPage/MomentumEventDispatcher.h:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@286380 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 12:23 PM Changeset in webkit [286688] by
-
- 1 edit in branches/safari-612-branch/Source/WebCore/page/scrolling/ThreadedScrollingTree.cpp
Unreviewed, speculative build fix for r286410. rdar://problem/85928816
Remove reference to serviceScrollAnimations.
- 12:23 PM Changeset in webkit [286687] by
-
- 3 edits in branches/safari-612-branch/Source/WebCore
Cherry-pick r286410. rdar://problem/85928816
Scrolling complex websites can stutter: scrolling thread commit can get blocked on scroll synchronization
https://bugs.webkit.org/show_bug.cgi?id=233738
rdar://85880147
Reviewed by Tim Horton.
The scroll synchronization added in r261985 can cause dropped frames while scrolling. This
occurs when ThreadedScrollingTree::waitForRenderingUpdateCompletionOrTimeout(), which is
called at the start of a rendering update on the main thread, starts at a time when it will
delay the handling of displayDidRefreshOnScrollingThread(). This can result in delaying the
CA commit for that frame on the scrolling thread.
The solution is to clamp the duration that waitForRenderingUpdateCompletionOrTimeout() waits
on the condition, so that it doesn't exceed the next expected display refresh time.
- page/scrolling/ThreadedScrollingTree.cpp: (WebCore::ThreadedScrollingTree::waitForRenderingUpdateCompletionOrTimeout): (WebCore::ThreadedScrollingTree::displayDidRefreshOnScrollingThread):
- page/scrolling/ThreadedScrollingTree.h:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@286410 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 12:23 PM Changeset in webkit [286686] by
-
- 3 edits in branches/safari-612-branch/Source/WebCore
Cherry-pick r286411. rdar://problem/85928816
Scrolling complex websites can stutter: scrolling thread frame can fail to process wheel events
https://bugs.webkit.org/show_bug.cgi?id=233739
rdar://85946176
Reviewed by Tim Horton.
While the scrolling thread is chilling in
ThreadedScrollingTree::waitForRenderingUpdateCompletionOrTimeout(), waiting up to half a
frame to allow the main thread to handle the commit (for scroll synchronization), wheel
events may have been dispatched to the scrolling thread.
If we blow the timeout and commit anyway, we need to make sure we've handled these wheel
events first, so that the current frame can commit some layer movement. We can achieve this
by dispatching the applyLayerPositions(), which will enqueue it behind any waiting wheel
event dispatch from EventDispatcher::internalWheelEvent().
- page/scrolling/ScrollingTree.cpp: (WebCore::ScrollingTree::applyLayerPositions):
- page/scrolling/ThreadedScrollingTree.cpp: (WebCore::ThreadedScrollingTree::waitForRenderingUpdateCompletionOrTimeout):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@286411 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 12:23 PM Changeset in webkit [286685] by
-
- 8 edits in branches/safari-612.4.2.0-branch/Source
Versioning.
WebKit-7612.4.2.0.1
- 12:23 PM Changeset in webkit [286684] by
-
- 4 edits in branches/safari-612-branch/Source/WebCore
Cherry-pick r286352. rdar://problem/85928816
Custom application of r286352 to introduce frameDuration() for a future patch.
Pass the timestamp for scrolling thread animations through all the serviceScrollAnimation() calls
https://bugs.webkit.org/show_bug.cgi?id=233678
Reviewed by Tim Horton.
Source/WebCore:
All scroll animations serviced at the same time should use a common timestamp, and
avoid multiple calls to MonotonicTime::now() by passing the time down through from
ThreadedScrollingTree::displayDidRefreshOnScrollingThread().
Also minor refactoring in ThreadedScrollingTree to prepare for a future patch.
- page/scrolling/ScrollingTree.cpp: (WebCore::ScrollingTree::nominalFramesPerSecond):
- page/scrolling/ScrollingTreeScrollingNode.h:
- page/scrolling/ScrollingTreeScrollingNodeDelegate.h:
- page/scrolling/ThreadedScrollingTree.cpp: (WebCore::ThreadedScrollingTree::frameDuration): (WebCore::ThreadedScrollingTree::maxAllowableRenderingUpdateDurationForSynchronization): (WebCore::ThreadedScrollingTree::serviceScrollAnimations): (WebCore::ThreadedScrollingTree::displayDidRefreshOnScrollingThread):
- page/scrolling/ThreadedScrollingTree.h:
- page/scrolling/mac/ScrollingTreeFrameScrollingNodeMac.h:
- page/scrolling/mac/ScrollingTreeFrameScrollingNodeMac.mm: (WebCore::ScrollingTreeFrameScrollingNodeMac::serviceScrollAnimation):
- page/scrolling/mac/ScrollingTreeOverflowScrollingNodeMac.h:
- page/scrolling/mac/ScrollingTreeOverflowScrollingNodeMac.mm: (WebCore::ScrollingTreeOverflowScrollingNodeMac::serviceScrollAnimation):
- page/scrolling/mac/ScrollingTreeScrollingNodeDelegateMac.h:
- page/scrolling/mac/ScrollingTreeScrollingNodeDelegateMac.mm: (WebCore::ScrollingTreeScrollingNodeDelegateMac::serviceScrollAnimation):
- page/scrolling/nicosia/ScrollingTreeFrameScrollingNodeNicosia.cpp: (WebCore::ScrollingTreeFrameScrollingNodeNicosia::serviceScrollAnimation):
- page/scrolling/nicosia/ScrollingTreeFrameScrollingNodeNicosia.h:
- page/scrolling/nicosia/ScrollingTreeOverflowScrollingNodeNicosia.cpp: (WebCore::ScrollingTreeOverflowScrollingNodeNicosia::serviceScrollAnimation):
- page/scrolling/nicosia/ScrollingTreeOverflowScrollingNodeNicosia.h:
- page/scrolling/nicosia/ScrollingTreeScrollingNodeDelegateNicosia.cpp: (WebCore::ScrollingTreeScrollingNodeDelegateNicosia::serviceScrollAnimation):
- page/scrolling/nicosia/ScrollingTreeScrollingNodeDelegateNicosia.h:
Source/WebKit:
- UIProcess/RemoteLayerTree/ios/ScrollingTreeScrollingNodeDelegateIOS.h:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@286352 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 12:23 PM Changeset in webkit [286683] by
-
- 16 edits5 adds in branches/safari-612-branch/Source
Cherry-pick r286346. rdar://problem/85928816
Add a momentum event synthesizer
https://bugs.webkit.org/show_bug.cgi?id=233653
<rdar://problem/85571258>
Reviewed by Simon Fraser.
Source/WebCore/PAL:
- pal/spi/mac/IOKitSPIMac.h: Add some SPI.
Source/WebKit:
- Platform/Logging.h: Add ScrollAnimations log channel to WebKit (it already exists in WebCore).
- Shared/ScrollingAccelerationCurve.cpp: Added. (WebKit::ScrollingAccelerationCurve::ScrollingAccelerationCurve): (WebKit::ScrollingAccelerationCurve::interpolate): (WebKit::ScrollingAccelerationCurve::computeIntermediateValuesIfNeeded): (WebKit::ScrollingAccelerationCurve::evaluateQuartic): (WebKit::ScrollingAccelerationCurve::accelerationFactor): (WebKit::ScrollingAccelerationCurve::encode const): (WebKit::ScrollingAccelerationCurve::decode): (WebKit::operator<<): (WebKit::ScrollingAccelerationCurve::fromNativeWheelEvent):
- Shared/ScrollingAccelerationCurve.h: Added. (WebKit::ScrollingAccelerationCurve::operator== const): (WebKit::ScrollingAccelerationCurve::operator!= const): Add a class that represents a quartic scrolling acceleration curve with a trailing linear tangent region, and allows interpolation between curves and evaluation of the curve at a point.
- Shared/mac/ScrollingAccelerationCurveMac.mm: Added. (WebKit::fromFixedPoint): (WebKit::readFixedPointParameter): (WebKit::fromIOHIDCurve): (WebKit::fromIOHIDCurveArrayWithAcceleration): (WebKit::ScrollingAccelerationCurve::fromNativeWheelEvent): Given a NativeWebWheelEvent, extract its underlying platform event and fetch the ScrollingAccelerationCurve for the originating device.
- Sources.txt:
- SourcesCocoa.txt:
- UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::handleWheelEvent): Fetch the current ScrollingAccelerationCurve on each momentum begin event, if the feature is enabled.
(WebKit::WebPageProxy::sendWheelEvent):
Send the ScrollingAccelerationCurve to EventDispatcher just before
we send the momentum begin event along, if it has changed.
(WebKit::WebPageProxy::windowScreenDidChange):
Keep EventDispatcher apprised of changes to the current screen of the page.
(WebKit::WebPageProxy::resetState):
- UIProcess/WebPageProxy.h:
- WebKit.xcodeproj/project.pbxproj:
- WebProcess/WebPage/EventDispatcher.cpp: (WebKit::EventDispatcher::EventDispatcher): (WebKit::EventDispatcher::internalWheelEvent): Factor most of wheelEvent out into internalWheelEvent, so that MomentumEventDispatcher can call internalWheelEvent(), skipping the code in wheelEvent() that forwards the event... to MomentumEventDispatcher.
Also, keep track of where the event came from (UI process or MomentumEventDispatcher)
and avoid sending didReceiveEvent replies to the UI process for synthetic
events that it doesn't know about.
(WebKit::EventDispatcher::wheelEvent):
Forward wheel events to MomentumEventDispatcher.
(WebKit::EventDispatcher::setScrollingAccelerationCurve):
Forward scrolling curve changes to MomentumEventDispatcher.
(WebKit::EventDispatcher::displayWasRefreshed):
Forward display refresh callbacks to MomentumEventDispatcher.
(WebKit::EventDispatcher::windowScreenDidChange):
Forward page screen changes to MomentumEventDispatcher.
- WebProcess/WebPage/EventDispatcher.h:
- WebProcess/WebPage/EventDispatcher.messages.in:
- WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::wheelEvent): (WebKit::WebPage::dispatchWheelEventWithoutScrolling):
- WebProcess/WebPage/WebPage.h: Don't send didReceiveEvent for synthetic events from the main thread either.
- WebProcess/WebPage/MomentumEventDispatcher.cpp: Added. (WebKit::MomentumEventDispatcher::MomentumEventDispatcher): (WebKit::MomentumEventDispatcher::~MomentumEventDispatcher): (WebKit::MomentumEventDispatcher::eventShouldStartSyntheticMomentumPhase const): If we have everything we need (a scrolling curve - which also implies that the setting is enabled - and raw platform deltas), and the event is a momentum begin event, we can use it to start a synthetic momentum phase.
(WebKit::MomentumEventDispatcher::handleWheelEvent):
Start or stop the momentum phase as appropriate.
Record any incoming fingers-down phase events in a rolling event history structure.
Block platform-event-driven events from being further handled by WebKit
if we are inside a synthetic momentum phase, since we'll be replacing them.
(WebKit::appKitScrollMultiplierForEvent):
Determine the AppKit scroll muliplier ("accelerated" vs "unaccelerated"
deltas in NSEvent parlance) from the event via division.
(WebKit::MomentumEventDispatcher::dispatchSyntheticMomentumEvent):
Dispatch a synthetic event with the given momentum phase and delta.
We borrow some properties from the event that initiated the momentum
phase (e.g. the position), and some from whatever event we've most
recently seen (even if we told the rest of WebKit to ignore it), so
that we get the most up-to-date state for e.g. the keyboard modifiers.
(WebKit::MomentumEventDispatcher::didStartMomentumPhase):
Record relevant information about the start event, generate the
momentum curve, and start a full-rate display link. Also, send a momentum
begin event, since we blocked the real one.
(WebKit::MomentumEventDispatcher::didEndMomentumPhase):
Send a momentum ended event, shut down the display link, and reset all
per-gesture state.
(WebKit::MomentumEventDispatcher::setScrollingAccelerationCurve):
Store ScrollingAccelerationCurves on a per-page basis.
(WebKit::MomentumEventDispatcher::displayID const):
Look up the displayID for the current gesture's page.
(WebKit::MomentumEventDispatcher::startDisplayLink):
(WebKit::MomentumEventDispatcher::stopDisplayLink):
Start and stop a display link, which will - in a roundabout manner -
eventually call back into displayWasRefreshed.
(WebKit::MomentumEventDispatcher::windowScreenDidChange):
Store DisplayIDs on a per-page basis.
(WebKit::MomentumEventDispatcher::displayWasRefreshed):
When the display link calls us back, emit a single momentum changed
event of sufficient delta to move us to the desired offset along the curve.
(WebKit::MomentumEventDispatcher::didScrollWithInterval):
(WebKit::MomentumEventDispatcher::didScroll):
Record incoming scrolling events into a rolling history deque.
(WebKit::MomentumEventDispatcher::buildOffsetTableWithInitialDelta):
Compute the offsets for the entire "ideal curve" table (at 60Hz) by
running the animation and accumulating the deltas.
(WebKit::interpolate):
(WebKit::MomentumEventDispatcher::offsetAtTime):
Interpolate along the "ideal curve" to determine the intended offset
at a given time.
(WebKit::momentumDecayRate):
(WebKit::MomentumEventDispatcher::computeNextDelta):
Compute the next delta given a delta (and the event history) by applying
a bit of exponential decay and then passing it through the
ScrollingAccelerationCurve. We return both the unaccelerated
and accelerated deltas, because the input to the next iteration of
computeNextDelta is the unaccelerated delta, but the delta applied
to the actual scroll position is the accelerated delta.
- WebProcess/WebPage/MomentumEventDispatcher.h: Added.
Source/WTF:
- wtf/PlatformEnable.h: Add an ENABLE().
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@286346 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 12:23 PM Changeset in webkit [286682] by
-
- 16 edits in branches/safari-612-branch/Source
Cherry-pick r283353. rdar://problem/85928816
Simplify some scrolling-related code in WebKit with use of RectEdges<bool>
https://bugs.webkit.org/show_bug.cgi?id=231037
Reviewed by Tim Horton.
Source/WebCore:
Export edgePinnedState().
- platform/ScrollableArea.h:
Source/WebKit:
Use RectEdges<bool> in code that tracks rubber banding state, and edge pinned state.
- Shared/WebCoreArgumentCoders.cpp: (IPC::ArgumentCoder<RectEdges<bool>>::encode): (IPC::ArgumentCoder<RectEdges<bool>>::decode):
- Shared/WebCoreArgumentCoders.h:
- UIProcess/API/C/WKPage.cpp: (WKPageIsPinnedToLeftSide): (WKPageIsPinnedToRightSide): (WKPageIsPinnedToTopSide): (WKPageIsPinnedToBottomSide): (WKPageRubberBandsAtLeft): (WKPageRubberBandsAtRight): (WKPageRubberBandsAtTop): (WKPageRubberBandsAtBottom):
- UIProcess/Cocoa/WebViewImpl.mm: (WebKit::toWKRectEdge): (WebKit::toRectEdges): (WebKit::WebViewImpl::pinnedState): (WebKit::WebViewImpl::rubberBandingEnabled): (WebKit::WebViewImpl::setRubberBandingEnabled):
- UIProcess/ViewGestureController.cpp: (WebKit::ViewGestureController::PendingSwipeTracker::scrollEventCanBecomeSwipe):
- UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::sendWheelEvent): (WebKit::WebPageProxy::setRubberBandsAtLeft): (WebKit::WebPageProxy::setRubberBandsAtRight): (WebKit::WebPageProxy::setRubberBandsAtTop): (WebKit::WebPageProxy::setRubberBandsAtBottom): (WebKit::WebPageProxy::didCommitLoadForFrame): (WebKit::WebPageProxy::resetState): (WebKit::WebPageProxy::didChangeScrollOffsetPinningForMainFrame): (WebKit::WebPageProxy::rubberBandsAtLeft const): Deleted. (WebKit::WebPageProxy::rubberBandsAtRight const): Deleted. (WebKit::WebPageProxy::rubberBandsAtTop const): Deleted. (WebKit::WebPageProxy::rubberBandsAtBottom const): Deleted.
- UIProcess/WebPageProxy.h:
- UIProcess/WebPageProxy.messages.in:
- WebProcess/WebPage/EventDispatcher.cpp: (WebKit::EventDispatcher::wheelEvent):
- WebProcess/WebPage/EventDispatcher.h:
- WebProcess/WebPage/EventDispatcher.messages.in:
- WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::updateMainFrameScrollOffsetPinning):
- WebProcess/WebPage/WebPage.h:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@283353 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 12:22 PM Changeset in webkit [286681] by
-
- 2 edits in branches/safari-612-branch/Tools
Cherry-pick r286368. rdar://problem/85928816
REGRESSION (r286346): ResourceLoadDelegate.LoadInfo fails
https://bugs.webkit.org/show_bug.cgi?id=233689
Reviewed by Simon Fraser.
- TestWebKitAPI/Tests/WebKitCocoa/ResourceLoadDelegate.mm: This test asserts that archiving a _WKResourceLoadInfo via NSKeyedArchiver encodes to a particular size (607 bytes).
If you look at the resultant plist before r286346, the encoded frameID
and resourceLoadID have the same value, and because of NSKeyedArchiver
deduplication, share the same object.
If you look at the resultant plist *after* r286346, the encoded frameID
is one larger than the resourceLoadID, thus cannot be deduplicated, and
end up encoding as separate objects. This results in the encoded size
increasing to 612 bytes.
The reason that the encoded frameID is now one value larger is that
ObjectIdentifier uses a global identifier pool, and r286346 creates
one more ObjectIdentifier during EventHandler construction, destroying
our entirely coincidental ID overlap, and causing the aforementioned
encoded size change.
Remove this assertion from the test, since it is very aggressive and
seems unnecessary. We could instead just rebaseline the test, but it
seems insufficiently important to burden some future developer with
a repeat of this evening of exploration and discovery.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@286368 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 12:22 PM Changeset in webkit [286680] by
-
- 2 edits in branches/safari-612-branch/Source/WebKit
Cherry-pick r286277. rdar://problem/85928816
Fix the build
- Shared/ios/WebIOSEventFactory.mm: (WebIOSEventFactory::createWebWheelEvent):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@286277 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 12:22 PM Changeset in webkit [286679] by
-
- 10 edits in branches/safari-612-branch/Source
Cherry-pick r286270. rdar://problem/85928816
Plumb raw platform scrolling deltas along in wheel events
https://bugs.webkit.org/show_bug.cgi?id=233583
Reviewed by Simon Fraser.
Source/WebCore:
- platform/PlatformWheelEvent.cpp: (WebCore::PlatformWheelEvent::createFromGesture):
- platform/PlatformWheelEvent.h: (WebCore::PlatformWheelEvent::rawPlatformDelta const):
- PAL/pal/spi/mac/IOKitSPIMac.h:
Source/WebKit:
- Shared/WebEventConversion.cpp: (WebKit::WebKit2PlatformWheelEvent::WebKit2PlatformWheelEvent):
- Shared/WebWheelEvent.cpp: (WebKit::WebWheelEvent::WebWheelEvent): (WebKit::WebWheelEvent::encode const): (WebKit::WebWheelEvent::decode):
- Shared/WebWheelEvent.h: (WebKit::WebWheelEvent::rawPlatformDelta const):
- Shared/WebWheelEventCoalescer.cpp: (WebKit::WebWheelEventCoalescer::coalesce):
- Shared/mac/WebEventFactory.mm: (WebKit::WebEventFactory::createWebWheelEvent): Extract and plumb raw unaccelerated (in the HID sense) deltas in scroll events for use in a future patch.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@286270 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 12:22 PM Changeset in webkit [286678] by
-
- 16 edits in branches/safari-612-branch/Source
Cherry-pick r285790. rdar://problem/85928816
Attach IOHIDEvent timestamps to wheel events
https://bugs.webkit.org/show_bug.cgi?id=233051
Reviewed by Wenson Hsieh.
Source/WebCore:
On some macOS devices, there can be significant deltas between NSEvent timestamps,
and the timestamps on underlying IOHIDEvents (rdar://85309639). This makes momentum
velocity computation unpredictable; we can get better results by using IOHIDEvent
timestamps.
- platform/PlatformWheelEvent.cpp: (WebCore::PlatformWheelEvent::createFromGesture):
- platform/PlatformWheelEvent.h: (WebCore::PlatformWheelEvent::ioHIDEventTimestamp const):
- platform/mac/PlatformEventFactoryMac.h:
- platform/mac/PlatformEventFactoryMac.mm: (WebCore::eventTimeStampSince1970): (WebCore::PlatformMouseEventBuilder::PlatformMouseEventBuilder): (WebCore::PlatformWheelEventBuilder::PlatformWheelEventBuilder): (WebCore::PlatformKeyboardEventBuilder::PlatformKeyboardEventBuilder):
Source/WebCore/PAL:
Expose a few bits of SPI needed.
- pal/spi/cg/CoreGraphicsSPI.h:
- pal/spi/cocoa/IOKitSPI.h:
Source/WebKit:
On some macOS devices, there can be significant deltas between NSEvent timestamps,
and the timestamps on underlying IOHIDEvents (rdar://85309639). This makes momentum
velocity computation unpredictable; we can get better results by using IOHIDEvent
timestamps.
- Shared/WebEventConversion.cpp: (WebKit::WebKit2PlatformWheelEvent::WebKit2PlatformWheelEvent):
- Shared/WebWheelEvent.cpp: (WebKit::WebWheelEvent::WebWheelEvent): (WebKit::WebWheelEvent::encode const): (WebKit::WebWheelEvent::decode):
- Shared/WebWheelEvent.h: (WebKit::WebWheelEvent::ioHIDEventTimestamp const):
- Shared/WebWheelEventCoalescer.cpp: (WebKit::WebWheelEventCoalescer::coalesce):
- Shared/ios/WebIOSEventFactory.mm: (WebIOSEventFactory::createWebWheelEvent):
- Shared/mac/NativeWebGestureEventMac.mm:
- Shared/mac/WebEventFactory.mm: (WebKit::WebEventFactory::createWebMouseEvent): (WebKit::WebEventFactory::createWebWheelEvent): (WebKit::WebEventFactory::createWebKeyboardEvent):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@285790 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 12:22 PM Changeset in webkit [286677] by
-
- 8 edits1 copy in branches/safari-612-branch/Source/WebCore
Cherry-pick r285786. rdar://problem/85928816
Clean up IOKit SPI headers
https://bugs.webkit.org/show_bug.cgi?id=233093
Reviewed by Simon Fraser.
Source/WebCore:
- platform/gamepad/cocoa/GameControllerGamepadProvider.mm:
- platform/gamepad/mac/HIDGamepadProvider.h:
- platform/gamepad/mac/HIDGamepadProvider.mm:
Source/WebCore/PAL:
- PAL.xcodeproj/project.pbxproj:
- pal/spi/cg/CoreGraphicsSPI.h:
- pal/spi/cocoa/IOKitSPI.h:
- pal/spi/ios/IOKitSPIIOS.h: Added.
- pal/spi/mac/IOKitSPIMac.h: IOKit vends a much different set of public API on iOS vs. macOS, so we have separate SPI headers to reduce the confusion.
Unfortunately, the SPI header for iOS was not explicitly named as such,
and started being used in some macOS code. For a while, this didn't lead
to any trouble because the aforementioned macOS code didn't ALSO have
the public SDK headers included, but a future patch from Simon will
use IOKitSPI.h in a place where the macOS IOKit public headers are included,
and thus we must make the split more explicit.
Rename IOKitSPI.h to IOKitSPIIOS.h; make IOKitSPI choose the right one.
Add some SPI defintions to IOKitSPIMac.h that were missing (which the
dependent code was getting via the iOS header on macOS).
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@285786 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 12:20 PM Changeset in webkit [286676] by
-
- 7 edits in trunk/Source/WebCore
[GStreamer] Fill in client-name property on audio sinks
https://bugs.webkit.org/show_bug.cgi?id=233826
Patch by Philippe Normand <pnormand@igalia.com> on 2021-12-08
Reviewed by Xabier Rodriguez-Calvar.
The audio sink client-name property is now set on sinks that support this property, such as
pulsesink and pipewiresink. This is picked-up by GNOME settings and the corresponding audio
streams now appear as owned by the WebKit application (MiniBrowser, ephy, etc) instead of
"WebKitWebProcess".
When the audio mixer is enabled, no media.role property is set, because the mixer can accept
music and/or video roles simultaneously, so it doesn't make sense in this context.
- platform/audio/gstreamer/AudioDestinationGStreamer.cpp:
(WebCore::AudioDestinationGStreamer::AudioDestinationGStreamer): Drive-by refactoring, using
a lambda instead of a static callback function.
(WebCore::autoAudioSinkChildAddedCallback): Deleted.
- platform/graphics/gstreamer/GStreamerAudioMixer.cpp:
(WebCore::GStreamerAudioMixer::GStreamerAudioMixer):
- platform/graphics/gstreamer/GStreamerCommon.cpp:
(WebCore::createAutoAudioSink):
(WebCore::createPlatformAudioSink):
- platform/graphics/gstreamer/GStreamerCommon.h:
- platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
(WebCore::MediaPlayerPrivateGStreamer::~MediaPlayerPrivateGStreamer):
(WebCore::MediaPlayerPrivateGStreamer::createAudioSink):
(WebCore::MediaPlayerPrivateGStreamer::setAudioStreamPropertiesCallback): Deleted.
(WebCore::MediaPlayerPrivateGStreamer::setAudioStreamProperties): Deleted.
- platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:
- 12:17 PM Changeset in webkit [286675] by
-
- 2 edits in branches/safari-613.1.11-branch/Source/WebKit
Cherry-pick r286631. rdar://problem/86223494
[Scroll Momentum Generator] Pages lose ability to momentum scroll after dragging between displays
https://bugs.webkit.org/show_bug.cgi?id=233948
rdar://86110813
Reviewed by Tim Horton.
This is a conservative fix for the bug. When a view moves to a new screen, WebPageProxy
needs to unregister for full speed updates using the old displayID, and register
using the new one.
Longer term, it would be better if "full speed updates" was a per-observer concept,
but that would mean registering an observer while wheel events are being received,
which needs a bit more thought.
- UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::windowScreenDidChange):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@286631 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 12:17 PM Changeset in webkit [286674] by
-
- 2 edits in branches/safari-613.1.11-branch/Source/WebKit
Cherry-pick r286566. rdar://problem/86223477
Momentum Event Dispatcher: Momentum phase runs backwards with natural scrolling disabled
https://bugs.webkit.org/show_bug.cgi?id=233894
<rdar://problem/86111948>
Reviewed by Simon Fraser.
- WebProcess/WebPage/MomentumEventDispatcher.cpp: (WebKit::MomentumEventDispatcher::consumeDeltaForCurrentTime): Only flip the deltas if the trackpad is configured to use "natural" scrolling (in which "directionInvertedFromDevice" is true).
(WebKit::MomentumEventDispatcher::computeNextDelta):
Fix initial queue state logging to log both axes before setting the "did log" bit.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@286566 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 12:04 PM Changeset in webkit [286673] by
-
- 2 edits in trunk/Source/WebKit
[iOS][WP] Block unused sys calls
https://bugs.webkit.org/show_bug.cgi?id=233999
Reviewed by Brent Fulgham.
Block sys calls in the WebContent process on iOS that are unused according to telemetry.
- Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb.in:
- 12:02 PM Changeset in webkit [286672] by
-
- 7 edits in trunk
[css-contain] Prevent various kinds of propagation to RenderView
https://bugs.webkit.org/show_bug.cgi?id=233535
Patch by Rob Buis <rbuis@igalia.com> on 2021-12-08
Reviewed by Alan Bujtas.
Source/WebCore:
Prevent direction/background/writing-mode propagation to RenderView
in cases where contain is used. The reason is in the github issue
and latest draft specification has been updated [1, 2].
[1] https://github.com/w3c/csswg-drafts/issues/5913
[2] https://drafts.csswg.org/css-contain-2/
- rendering/RenderBox.cpp:
(WebCore::RenderBox::styleDidChange):
(WebCore::RenderBox::updateFromStyle):
- rendering/RenderObject.cpp:
(WebCore::shouldApplyAnyContainment):
- rendering/RenderObject.h:
- rendering/RenderView.cpp:
(WebCore::RenderView::rendererForRootBackground const):
LayoutTests:
- 11:58 AM Changeset in webkit [286671] by
-
- 3 edits in trunk/Source/WebKit
Momentum Event Dispatcher: Momentum tail should have montonically decreasing deltas and tail gaps
https://bugs.webkit.org/show_bug.cgi?id=233993
<rdar://problem/86118367>
Reviewed by Simon Fraser.
- WebProcess/WebPage/MomentumEventDispatcher.cpp:
(WebKit::MomentumEventDispatcher::consumeDeltaForCurrentTime):
(WebKit::MomentumEventDispatcher::buildOffsetTableWithInitialDelta):
(WebKit::MomentumEventDispatcher::computeNextDelta):
In order to avoid visual stutter due to integral rounding of the
deltas we dispatch in the momentum phase, switch to a table of
deltas instead of interpolating along the offset curve during the
tail end of the animation (when the rounding makes up a large
proportion of each delta).
(WebKit::MomentumEventDispatcher::equalizeTailGaps):
Sort the deltas up until the first zero to ensure a lack of unexpected
perceptual acceleration, and then inject skipped frames in order to
ensure that frames that have effective scroll movement (non-zero deltas)
are always spaced equally-or-further apart than earlier ones, but
never closer together (which, again, would be percieved as acceleration).
(WebKit::MomentumEventDispatcher::handleWheelEvent):
(WebKit::MomentumEventDispatcher::pushLogEntry):
(WebKit::MomentumEventDispatcher::flushLog):
Lastly, adjust some logging to make it easier to tell which row in
the output corresponds to an event delta or generated delta, so it's
easier to find skipped frames.
- WebProcess/WebPage/MomentumEventDispatcher.h:
- 11:55 AM WebKitGTK/2.34.x edited by
- (diff)
- 11:46 AM Changeset in webkit [286670] by
-
- 4 edits in trunk/Source/bmalloc
[libpas] Guard Darwin-specific malloc zone usage in mbmalloc sources
https://bugs.webkit.org/show_bug.cgi?id=234005
Patch by Zan Dobersek <zdobersek@igalia.com> on 2021-12-08
Reviewed by Yusuke Suzuki.
Use PAS_OS(DARWIN) build guards for the Darwin-specific malloc header
inclusions and malloc_zone_pressure_relief() calls.
- libpas/src/mbmalloc/mbmalloc_bmalloc.c:
(mbscavenge):
- libpas/src/mbmalloc/mbmalloc_hotbit.c:
(mbscavenge):
- libpas/src/mbmalloc/mbmalloc_iso_common_primitive.c:
(mbscavenge):
- 11:33 AM Changeset in webkit [286669] by
-
- 5 edits in trunk/Source/WebCore
[iOS] Always set audio session preferred input after changing the category
https://bugs.webkit.org/show_bug.cgi?id=232626
rdar://81618758
Reviewed by Youenn Fablet.
- platform/audio/PlatformMediaSessionManager.cpp:
(WebCore::PlatformMediaSessionManager::sessionCaptureConfigurationChanged): Schedule
a session update so the category and/or preferred input is setup.
- platform/audio/PlatformMediaSessionManager.h:
- platform/audio/ios/AudioSessionIOS.h:
- platform/audio/ios/AudioSessionIOS.mm:
(WebCore::AudioSessionIOS::setCategory): Don't set the audio session category unless
something has changed. Ask the AVAudioSessionCaptureDeviceManager to set the preferred
capture device if that has changed.
- platform/mediastream/ios/AVAudioSessionCaptureDeviceManager.h:
- platform/mediastream/ios/AVAudioSessionCaptureDeviceManager.mm:
(WebCore::AVAudioSessionCaptureDeviceManager::setPreferredAudioSessionDeviceUID):
Remember the device UID if the configuration is successful.
(WebCore::AVAudioSessionCaptureDeviceManager::configurePreferredAudioCaptureDevice):
Reset the preferred device if necessary.
(WebCore::AVAudioSessionCaptureDeviceManager::setPreferredAudioSessionDeviceUIDInternal):
Refactored from setPreferredAudioSessionDeviceUID.
- platform/mediastream/mac/CoreAudioCaptureSource.cpp:
(WebCore::CoreAudioSharedUnit::captureDeviceChanged):
- 11:16 AM Changeset in webkit [286668] by
-
- 7 edits in trunk
[CSS Cascade Layers] CSSImportRule.cssText doesn't include layer parameter
https://bugs.webkit.org/show_bug.cgi?id=234010
Reviewed by Simon Fraser.
LayoutTests/imported/w3c:
- web-platform-tests/css/css-cascade/parsing/layer-import-parsing-expected.txt:
Source/WebCore:
Fix serialization of import rules than include layer, like
@import url(foo.css) layer(A);
Also make the parsing of the layer() argument stricter.
- css/CSSImportRule.cpp:
(WebCore::CSSImportRule::cssText const):
Serialize the layer.
- css/CSSLayerBlockRule.cpp:
(WebCore::stringFromCascadeLayerName):
Serialize layer name segments as identifiers.
- css/parser/CSSParserImpl.cpp:
(WebCore::CSSParserImpl::consumeImportRule):
Fail parsing if there is anything left in the function argument after consuming the layer name.
If the parsing fails, revert and try the full string as media query.
- 11:11 AM Changeset in webkit [286667] by
-
- 38 edits in trunk/Source/JavaScriptCore
[JSC] Introduce WriteBarrierStructureID
https://bugs.webkit.org/show_bug.cgi?id=233918
Reviewed by Mark Lam.
This patch adds WriteBarrierStructureID class, which is similar to WriteBarrier<Structure>, but internally,
it holds StructureID, so sizeof(WriteBarrierStructureID) is 4. This class is useful to use StructureID for
memory saving while keeping WriteBarrier<Structure>'s useful features (automatically inserts write-barrier when
setting etc.). This also paves the way to introducing DOMStructures array with WriteBarrierStructureID instead
of costly HashMap<ClassInfo*, WriteBarrier<Structure>>.
- bytecode/AccessCase.cpp:
(JSC::AccessCase::AccessCase):
(JSC::AccessCase::forEachDependentCell const):
(JSC::AccessCase::dump const):
(JSC::AccessCase::propagateTransitions const):
(JSC::AccessCase::canBeShared):
- bytecode/AccessCase.h:
(JSC::AccessCase::structure const):
(JSC::AccessCase::newStructure const):
(JSC::AccessCase::hash const):
(JSC::AccessCase::AccessCase):
- bytecode/CheckPrivateBrandStatus.cpp:
(JSC::CheckPrivateBrandStatus::computeForStubInfoWithoutExitSiteFeedback):
- bytecode/DeleteByStatus.cpp:
(JSC::DeleteByStatus::computeForStubInfoWithoutExitSiteFeedback):
- bytecode/GetByStatus.cpp:
(JSC::GetByStatus::computeForStubInfoWithoutExitSiteFeedback):
- bytecode/InByStatus.cpp:
(JSC::InByStatus::computeForStubInfoWithoutExitSiteFeedback):
- bytecode/InlineAccess.cpp:
(JSC::InlineAccess::rewireStubAsJumpInAccess):
(JSC::InlineAccess::resetStubAsJumpInAccess):
- bytecode/InstanceOfStatus.cpp:
(JSC::InstanceOfStatus::computeForStubInfo):
- bytecode/InternalFunctionAllocationProfile.h:
(JSC::InternalFunctionAllocationProfile::offsetOfStructureID):
(JSC::InternalFunctionAllocationProfile::structure):
(JSC::InternalFunctionAllocationProfile::clear):
(JSC::InternalFunctionAllocationProfile::visitAggregate):
(JSC::InternalFunctionAllocationProfile::createAllocationStructureFromBase):
(JSC::InternalFunctionAllocationProfile::offsetOfStructure): Deleted.
- bytecode/PutByStatus.cpp:
(JSC::PutByStatus::computeForStubInfo):
- bytecode/SetPrivateBrandStatus.cpp:
(JSC::SetPrivateBrandStatus::computeForStubInfoWithoutExitSiteFeedback):
- bytecode/StructureStubInfo.cpp:
(JSC::StructureStubInfo::initGetByIdSelf):
(JSC::StructureStubInfo::initPutByIdReplace):
(JSC::StructureStubInfo::initInByIdSelf):
(JSC::StructureStubInfo::deref):
(JSC::StructureStubInfo::aboutToDie):
(JSC::StructureStubInfo::addAccessCase):
(JSC::StructureStubInfo::reset):
(JSC::StructureStubInfo::visitAggregateImpl):
(JSC::StructureStubInfo::visitWeakReferences):
(JSC::StructureStubInfo::propagateTransitions):
(JSC::StructureStubInfo::summary const):
(JSC::StructureStubInfo::containsPC const):
- bytecode/StructureStubInfo.h:
(JSC::StructureStubInfo::inlineAccessBaseStructure):
(JSC::StructureStubInfo::offsetOfByIdSelfOffset):
(JSC::StructureStubInfo::offsetOfInlineAccessBaseStructureID):
(JSC::StructureStubInfo::offsetOfInlineAccessBaseStructure): Deleted.
- dfg/DFGSpeculativeJIT.cpp:
- ftl/FTLAbstractHeapRepository.h:
- ftl/FTLLowerDFGToB3.cpp:
(JSC::FTL::DFG::LowerDFGToB3::compileCreatePromise):
(JSC::FTL::DFG::LowerDFGToB3::compileCreateInternalFieldObject):
(JSC::FTL::DFG::LowerDFGToB3::compileCompareStrictEq):
- heap/AbstractSlotVisitor.h:
- heap/AbstractSlotVisitorInlines.h:
(JSC::AbstractSlotVisitor::append):
(JSC::AbstractSlotVisitor::appendHidden):
- heap/SlotVisitor.h:
- heap/SlotVisitorInlines.h:
(JSC::SlotVisitor::append):
(JSC::SlotVisitor::appendHidden):
- jit/AssemblyHelpers.cpp:
(JSC::AssemblyHelpers::emitNonNullDecodeStructureID):
(JSC::AssemblyHelpers::emitLoadStructure):
- jit/AssemblyHelpers.h:
- jit/JITInlineCacheGenerator.cpp:
(JSC::generateGetByIdInlineAccess):
(JSC::JITPutByIdGenerator::generateBaselineDataICFastPath):
(JSC::JITInByIdGenerator::generateBaselineDataICFastPath):
- runtime/FunctionExecutable.cpp:
(JSC::FunctionExecutable::visitChildrenImpl):
- runtime/FunctionExecutable.h:
- runtime/FunctionRareData.cpp:
(JSC::FunctionRareData::visitChildrenImpl):
- runtime/FunctionRareData.h:
- runtime/JSGlobalObject.cpp:
(JSC::JSGlobalObject::visitChildrenImpl):
- runtime/JSGlobalObject.h:
- runtime/JSPropertyNameEnumerator.cpp:
(JSC::JSPropertyNameEnumerator::JSPropertyNameEnumerator):
(JSC::JSPropertyNameEnumerator::visitChildrenImpl):
- runtime/JSPropertyNameEnumerator.h:
- runtime/StructureRareData.cpp:
(JSC::StructureRareData::StructureRareData):
- runtime/StructureRareData.h:
- runtime/WriteBarrier.h:
(JSC::WriteBarrierStructureID::WriteBarrierStructureID):
(JSC::WriteBarrierStructureID::get const):
(JSC::WriteBarrierStructureID::operator* const):
(JSC::WriteBarrierStructureID::operator-> const):
(JSC::WriteBarrierStructureID::clear):
(JSC::WriteBarrierStructureID::operator bool const):
(JSC::WriteBarrierStructureID::operator! const):
(JSC::WriteBarrierStructureID::setWithoutWriteBarrier):
(JSC::WriteBarrierStructureID::unvalidatedGet const):
(JSC::WriteBarrierStructureID::value const):
- runtime/WriteBarrierInlines.h:
(JSC::WriteBarrierStructureID::set):
(JSC::WriteBarrierStructureID::setMayBeNull):
(JSC::WriteBarrierStructureID::setEarlyValue):
- tools/JSDollarVM.cpp:
(JSC::JSDollarVM::finishCreation):
(JSC::JSDollarVM::visitChildrenImpl):
- tools/JSDollarVM.h:
- 10:49 AM Changeset in webkit [286666] by
-
- 1 copy in branches/safari-612.4.2.3-branch
New branch.
- 10:49 AM Changeset in webkit [286665] by
-
- 1 copy in branches/safari-612.4.2.2-branch
New branch.
- 10:49 AM Changeset in webkit [286664] by
-
- 1 copy in branches/safari-612.4.2.1-branch
New branch.
- 10:49 AM Changeset in webkit [286663] by
-
- 1 copy in branches/safari-612.4.2.0-branch
New branch.
- 10:42 AM Changeset in webkit [286662] by
-
- 8 edits in branches/safari-612-branch/Source
Versioning.
WebKit-7612.4.3
- 10:04 AM Changeset in webkit [286661] by
-
- 12 edits1 copy in trunk
Make KVO work for WKWebpagePreferences._captivePortalModeEnabled
https://bugs.webkit.org/show_bug.cgi?id=233954
Reviewed by Alex Christensen.
Source/WebKit:
Make KVO work for WKWebpagePreferences._captivePortalModeEnabled so that the client can observe
when the system setting changes. Also add SPI to simulate a change of the system setting so that
I can write API tests.
- UIProcess/API/Cocoa/WKProcessPool.mm:
(+[WKProcessPool _setCaptivePortalModeEnabledGloballyForTesting:]):
(+[WKProcessPool _clearCaptivePortalModeEnabledGloballyForTesting]):
- UIProcess/API/Cocoa/WKProcessPoolPrivate.h:
- UIProcess/API/Cocoa/WKWebpagePreferences.mm:
(-[WKWebpagePreferences init]):
(-[WKWebpagePreferences _setCaptivePortalModeEnabled:]):
- UIProcess/API/Cocoa/WKWebpagePreferencesInternal.h:
- UIProcess/CaptivePortalModeObserver.h: Copied from Source/WebKit/UIProcess/API/Cocoa/WKWebpagePreferencesInternal.h.
(WebKit::CaptivePortalModeObserver::~CaptivePortalModeObserver):
- UIProcess/Cocoa/WebProcessPoolCocoa.mm:
(WebKit::captivePortalModeObservers):
(WebKit::isCaptivePortalModeEnabledGloballyForTesting):
(WebKit::isCaptivePortalModeEnabledBySystemIgnoringCaching):
(WebKit::WebProcessPool::captivePortalModeStateChanged):
(WebKit::addCaptivePortalModeObserver):
(WebKit::removeCaptivePortalModeObserver):
(WebKit::captivePortalModeEnabledBySystem):
(WebKit::setCaptivePortalModeEnabledGloballyForTesting):
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::receivedNavigationPolicyDecision):
- UIProcess/WebProcessPool.cpp:
(WebKit::addCaptivePortalModeObserver):
(WebKit::removeCaptivePortalModeObserver):
(WebKit::setCaptivePortalModeEnabledGloballyForTesting):
- UIProcess/WebProcessPool.h:
- WebKit.xcodeproj/project.pbxproj:
Tools:
Add API test coverage.
- TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:
(-[CaptivePortalModeKVO observeValueForKeyPath:ofObject:change:context:]):
- 9:50 AM Changeset in webkit [286660] by
-
- 6 edits in trunk
[iOS] Add support for _UITextSearchOptions when finding a string
https://bugs.webkit.org/show_bug.cgi?id=233957
rdar://86140673
Reviewed by Wenson Hsieh.
Source/WebKit:
Add support for case-insensitive, full-word, and prefix matching.
- Shared/WebFindOptions.h:
Introduce AtWordEnds at the WebKit layer to support full-word matching
when used with AtWordStarts.
- UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView performTextSearchWithQueryString:usingOptions:resultAggregator:]):
- WebProcess/WebPage/FindController.cpp:
(WebKit::core):
Tools:
- TestWebKitAPI/Tests/WebKitCocoa/FindInPage.mm:
(testPerformTextSearchWithQueryStringInWebView):
(TEST):
Add additional test cases for search options.
- 9:06 AM Changeset in webkit [286659] by
-
- 3 edits in trunk/Source/ThirdParty/ANGLE
Avoid noisy Wcomment warnings after ANGLE update in r286603
https://bugs.webkit.org/show_bug.cgi?id=233964
<rdar://problem/86186455>
Reviewed by Michael Catanzaro.
- CMakeLists.txt: Pass also -Wno-comment when building with GCC or Clang; arrange to
set compiler flags for any of the ANGLE library targets instead of only for libANGLE.
- src/compiler/translator/tree_util/IntermTraverse.h: Revert change from 233964 to
avoid having differences with the upstream version of the file.
- 9:04 AM Changeset in webkit [286658] by
-
- 2 edits in trunk/Source/WebKit
Add a missing CompletionHandlerCallChecker around a UI delegate method call after r286640
https://bugs.webkit.org/show_bug.cgi?id=233890
rdar://86117718
Reviewed by Dan Bernstein.
Create and pass a
CompletionHandlerCallChecker
through the new delegate call to
-_webView:requestCookieConsentWithMoreInfoHandler:decisionHandler:
added in r286640.
- UIProcess/Cocoa/UIDelegate.mm:
(WebKit::UIDelegate::UIClient::requestCookieConsent):
- 8:55 AM Changeset in webkit [286657] by
-
- 21 edits4 copies3 moves in trunk
[CSS Cascade Layers] Update CSSOM to the spec
https://bugs.webkit.org/show_bug.cgi?id=231340
<rdar://problem/83958697>
Reviewed by Simon Fraser.
LayoutTests/imported/w3c:
- web-platform-tests/css/css-cascade/idlharness-expected.txt:
- web-platform-tests/css/css-cascade/layer-rules-cssom-expected.txt:
Source/WebCore:
Add CSSLayerBlockRule and CSSLayerStatementRule interfaces.
Also add support for layerName property of CSSImportRule.
https://www.w3.org/TR/css-cascade-5/#layer-apis
- DerivedSources-input.xcfilelist:
- DerivedSources-output.xcfilelist:
- DerivedSources.make:
- Sources.txt:
- WebCore.xcodeproj/project.pbxproj:
- bindings/js/JSCSSRuleCustom.cpp:
(WebCore::toJSNewlyCreated):
- css/CSSImportRule+Layer.idl: Copied from Source/WebCore/css/CSSLayerRule.idl.
- css/CSSImportRule.cpp:
(WebCore::CSSImportRule::layerName const):
(WebCore::CSSImportRule::cascadeLayerName const): Deleted.
- css/CSSImportRule.h:
- css/CSSLayerBlockRule.cpp: Renamed from Source/WebCore/css/CSSLayerRule.cpp.
(WebCore::CSSLayerBlockRule::CSSLayerBlockRule):
(WebCore::CSSLayerBlockRule::create):
(WebCore::CSSLayerBlockRule::cssText const):
(WebCore::CSSLayerBlockRule::name const):
(WebCore::stringFromCascadeLayerName):
- css/CSSLayerBlockRule.h: Copied from Source/WebCore/css/CSSLayerRule.h.
- css/CSSLayerBlockRule.idl: Copied from Source/WebCore/css/CSSLayerRule.idl.
- css/CSSLayerStatementRule.cpp: Copied from Source/WebCore/css/CSSLayerRule.h.
(WebCore::CSSLayerStatementRule::CSSLayerStatementRule):
(WebCore::CSSLayerStatementRule::create):
(WebCore::CSSLayerStatementRule::cssText const):
(WebCore::CSSLayerStatementRule::nameList const):
(WebCore::CSSLayerStatementRule::reattach):
- css/CSSLayerStatementRule.h: Renamed from Source/WebCore/css/CSSLayerRule.h.
- css/CSSLayerStatementRule.idl: Renamed from Source/WebCore/css/CSSLayerRule.idl.
- css/CSSRule.h:
- css/StyleRule.cpp:
(WebCore::StyleRuleBase::destroy):
(WebCore::StyleRuleBase::copy const):
(WebCore::StyleRuleBase::createCSSOMWrapper const):
(WebCore::StyleRuleLayer::StyleRuleLayer):
- css/StyleRule.h:
(WebCore::StyleRuleBase::isGroupRule const):
(WebCore::StyleRuleBase::isLayerRule const):
- css/StyleRuleType.h:
- css/StyleSheetContents.cpp:
(WebCore::traverseRulesInVector):
(WebCore::StyleSheetContents::traverseSubresources const):
- css/parser/CSSParserImpl.cpp:
(WebCore::CSSParserImpl::consumeLayerRule):
- inspector/InspectorStyleSheet.cpp:
(flattenSourceData):
(WebCore::asCSSRuleList):
(WebCore::buildArrayForGroupings):
- style/InspectorCSSOMWrappers.cpp:
(WebCore::Style::InspectorCSSOMWrappers::collect):
- 8:27 AM Changeset in webkit [286656] by
-
- 7 edits8 adds in trunk
Same-site lax cookies not sent by fetch event handler after page reload
https://bugs.webkit.org/show_bug.cgi?id=226386
<rdar://problem/78878853>
Reviewed by Chris Dumez.
Source/WebCore:
When a service worker fetches a navigation request exposed from the fetch event, we need to keep isTopSite intact as
the service worker does not really have the information of which frame is actually loaded and whether it is a main frame or not.
Tests: http/wpt/service-workers/cross-site-navigation-same-cookie-lax.https.html
http/wpt/service-workers/same-cookie-lax.https.html
- loader/cache/CachedResource.cpp:
Source/WebKit:
StorageBlockingPolicy handling is not covered by generated code so explicit update StorageBlockingPolicy setting from preference store.
This impacts the computation of cookie/cache partitioning.
- WebProcess/Storage/WebSWContextManagerConnection.cpp:
LayoutTests:
- http/wpt/service-workers/cross-site-navigation-same-cookie-lax.https-expected.txt: Added.
- http/wpt/service-workers/cross-site-navigation-same-cookie-lax.https.html: Added.
- http/wpt/service-workers/resources/get-cookie.py: Added.
- http/wpt/service-workers/resources/get-document-cookie.py: Added.
- http/wpt/service-workers/resources/set-cookie-lax.py: Added.
- http/wpt/service-workers/same-cookie-lax-worker.js: Added.
- http/wpt/service-workers/same-cookie-lax.https-expected.txt: Added.
- http/wpt/service-workers/same-cookie-lax.https.html: Added.
- 7:59 AM Changeset in webkit [286655] by
-
- 6 edits4 adds in trunk
Safari Bug "no-cache" network error
https://bugs.webkit.org/show_bug.cgi?id=233916
Reviewed by Chris Dumez.
Source/WebCore:
Test: http/wpt/service-workers/cache-control-request.html
Remove Cache-Control header when going the service worker road if it is added by the network code path and not the application.
- loader/CrossOriginAccessControl.cpp:
(WebCore::httpHeadersToKeepFromCleaning):
(WebCore::cleanHTTPRequestHeadersForAccessControl):
- loader/CrossOriginAccessControl.h:
- platform/network/ResourceRequestBase.cpp:
(WebCore::ResourceRequestBase::removeHTTPHeaderField):
- platform/network/ResourceRequestBase.h:
LayoutTests:
- http/wpt/service-workers/cache-control-request-expected.txt: Added.
- http/wpt/service-workers/cache-control-request-worker.js: Added.
(async doTest):
- http/wpt/service-workers/cache-control-request.html: Added.
- http/wpt/service-workers/resources/cross-origin-allow.py: Added.
(main):
- 7:34 AM Changeset in webkit [286654] by
-
- 4 edits2 adds in trunk
[css-flexbox]
gap
does not work correctly whenflex-direction: column-reverse
is applied
https://bugs.webkit.org/show_bug.cgi?id=225278
Source/WebCore:
rdar://problem/77708991
Patch by Vitaly Dyachkov <obyknovenius@me.com> on 2021-12-08
Reviewed by Sergio Villar Senin.
Whenever flex-direction: column-reverse is specified flexbox does always compute the flex item sizes and positions
ignoring the -reverse direction until the very end. After completing the computations we just need to swap offsets
to get the reversed positions. The code was properly considering space between items added by content justification
but it was not adding gaps. Fixed it by adding the gap size to the flex items' offsets.
Test: imported/w3c/web-platform-tests/css/css-flexbox/column-reverse-gap.html
- rendering/RenderFlexibleBox.cpp:
(WebCore::RenderFlexibleBox::layoutAndPlaceChildren):
(WebCore::RenderFlexibleBox::layoutColumnReverse):
- rendering/RenderFlexibleBox.h:
LayoutTests:
Patch by Vitaly Dyachkov <obyknovenius@me.com> on 2021-12-08
Reviewed by Sergio Villar Senin.
- imported/w3c/web-platform-tests/css/css-flexbox/column-reverse-gap-expected.txt: Added.
- imported/w3c/web-platform-tests/css/css-flexbox/column-reverse-gap.html: Added.
- 7:31 AM Changeset in webkit [286653] by
-
- 2 edits in trunk/Source/WebCore
REGRESSION(r286603) [GTK][WPE] WebGL broken after the ANGLE update.
https://bugs.webkit.org/show_bug.cgi?id=233965
Reviewed by Adrian Perez de Castro.
Covered by existing tests.
- platform/graphics/opengl/ExtensionsGLOpenGLCommon.cpp:
(WebCore::ExtensionsGLOpenGLCommon::getTranslatedShaderSourceANGLE):
Remove usage of SH_UNFOLD_SHORT_CIRCUIT after last ANGLE update as
suggested by Kimmo.
- 5:51 AM Changeset in webkit [286652] by
-
- 5 edits2 adds in trunk
'border-radius shorthand is getting expanded in WebKit
https://bugs.webkit.org/show_bug.cgi?id=233960
Reviewed by Antti Koivisto.
LayoutTests/imported/w3c:
Add a new WPT to check the behavior of border-radius when serializing using cssText.
- web-platform-tests/css/css-backgrounds/border-radius-css-text-expected.txt: Added.
- web-platform-tests/css/css-backgrounds/border-radius-css-text.html: Added.
Source/WebCore:
Test: imported/w3c/web-platform-tests/css/css-backgrounds/border-radius-css-text.html
Use the border-radius shorthand property instead of individual longhands when serializing.
- css/StyleProperties.cpp:
(WebCore::StyleProperties::asText const):
LayoutTests:
Rebase an existing test now that we correctly use the shorthand in cssText for border-radius.
- fast/css/remove-shorthand-expected.txt:
- 5:42 AM Changeset in webkit [286651] by
-
- 1 edit1 delete in trunk/Source/bmalloc
[libpas] Remove the stale SkipListTests.cpp file
https://bugs.webkit.org/show_bug.cgi?id=234000
Unreviewed, removing the redundant test file that's not been built (and
cannot be built anymore) since the libpas update done in r285789.
Patch by Zan Dobersek <zdobersek@igalia.com> on 2021-12-08
- libpas/src/test/SkipListTests.cpp: Removed.
- 3:05 AM Changeset in webkit [286650] by
-
- 15 edits in trunk/Source
Let RemoteAudioMediaStreamTrackRendererInternalUnitManager::Unit switch to VPIO unit if VPIO is running
https://bugs.webkit.org/show_bug.cgi?id=233316
Reviewed by Eric Carlson.
Source/WebCore:
Add support for an external provider of speaker data to the audio capture unit.
We use this in WebKit to render the MediaStreamTracks of the process doing capture through VPIO when running.
In case the audio capture unit speaker format is not matching the producer format, we have to reconfigure and align with the producer format.
In case, audio is being rendered by the audio capture unit but capture is stopped, we continue running the audio capture unit.
This allows to mute/unmute microphone without any audio glitch.
We make sure to stop the audio capture unit when it is no longer used for rendering or capture.
In case the unit is suspended and we restart an audio source, we will unsuspend the unit, which will unmute sources.
We do not want to start audio sources within the start of an audio source.
For that reason, we unmute the sources asynchronously.
Manually tested.
- WebCore.xcodeproj/project.pbxproj:
- platform/mediastream/mac/BaseAudioSharedUnit.cpp:
- platform/mediastream/mac/BaseAudioSharedUnit.h:
- platform/mediastream/mac/CoreAudioCaptureSource.cpp:
- platform/mediastream/mac/CoreAudioCaptureSource.h:
Source/WebKit:
We track which process is the last to start audio capture.
In that case, we register its RemoteAudioMediaStreamTrackRendererInternalUnitManager::Unit to the capture unit.
This allows RemoteAudioMediaStreamTrackRendererInternalUnitManager::Unit to switch between RemoteIO if capture unit does not run
or the capture unit if running.
This allows to remove the x5 gain workaround.
- GPUProcess/GPUConnectionToWebProcess.cpp:
- GPUProcess/GPUConnectionToWebProcess.h:
- GPUProcess/GPUProcess.cpp:
- GPUProcess/GPUProcess.h:
- GPUProcess/webrtc/RemoteAudioMediaStreamTrackRendererInternalUnitManager.cpp:
- GPUProcess/webrtc/RemoteAudioMediaStreamTrackRendererInternalUnitManager.h:
- UIProcess/Cocoa/UserMediaCaptureManagerProxy.cpp:
- UIProcess/Cocoa/UserMediaCaptureManagerProxy.h:
- 2:08 AM Changeset in webkit [286649] by
-
- 5 edits in trunk/Source
[MacCatalyst] Various build fixes
https://bugs.webkit.org/show_bug.cgi?id=233995
Unreviewed.
Source/WebCore:
No new tests because there is no behavior change.
- Modules/speech/cocoa/SpeechRecognizerCocoa.mm:
(WebCore::SpeechRecognizer::dataCaptured):
- platform/mediarecorder/cocoa/AudioSampleBufferCompressor.mm:
(WebCore::AudioSampleBufferCompressor::processSampleBuffersUntilLowWaterTime):
Source/WebKit:
- UIProcess/WebPageProxy.cpp:
(WebKit::mediaRelatedMachServices):
- 1:54 AM Changeset in webkit [286648] by
-
- 6 edits in trunk/Source
[GStreamer] Enable mediaSourceInlinePainting
https://bugs.webkit.org/show_bug.cgi?id=233813
Patch by Philippe Normand <pnormand@igalia.com> on 2021-12-08
Reviewed by Xabier Rodriguez-Calvar.
Source/WebCore:
Covered by http/tests/media/media-source/mediasource-rvfc.html
- page/RuntimeEnabledFeatures.cpp:
(WebCore::RuntimeEnabledFeatures::setMediaSourceInlinePaintingEnabled):
- page/RuntimeEnabledFeatures.h:
- testing/InternalSettings.cpp:
(WebCore::InternalSettings::mediaSourceInlinePaintingEnabled const):
Source/WTF:
- Scripts/Preferences/WebPreferencesExperimental.yaml: GStreamer ports can already run tests
requiring this setting, without change in the platform layer, until we migrate to the
GPUProcess.
- 12:55 AM Changeset in webkit [286647] by
-
- 9 edits21 adds in trunk/LayoutTests
[CSS Cascade Layers] import some new WPTs
https://bugs.webkit.org/show_bug.cgi?id=233947
Reviewed by Kimmo Kinnunen.
LayoutTests/imported/w3c:
- web-platform-tests/css/css-cascade/idlharness-expected.txt: Added.
- web-platform-tests/css/css-cascade/idlharness.html: Added.
- web-platform-tests/css/css-cascade/layer-cssom-order-reverse-expected.txt: Added.
- web-platform-tests/css/css-cascade/layer-cssom-order-reverse.html: Added.
- web-platform-tests/css/css-cascade/layer-import-expected.txt:
- web-platform-tests/css/css-cascade/layer-import.html:
- web-platform-tests/css/css-cascade/layer-media-query-expected.txt:
- web-platform-tests/css/css-cascade/layer-media-query.html:
- web-platform-tests/css/css-cascade/layer-rules-cssom-expected.txt: Added.
- web-platform-tests/css/css-cascade/layer-rules-cssom.html: Added.
- web-platform-tests/css/css-cascade/layer-slotted-rule-expected.xht: Added.
- web-platform-tests/css/css-cascade/layer-slotted-rule.html: Added.
- web-platform-tests/css/css-cascade/layer-statement-before-import-expected.txt: Added.
- web-platform-tests/css/css-cascade/layer-statement-before-import.html: Added.
- web-platform-tests/css/css-cascade/parsing/layer-import-parsing-expected.txt: Added.
- web-platform-tests/css/css-cascade/parsing/layer-import-parsing.html: Added.
- web-platform-tests/css/css-cascade/parsing/w3c-import.log:
- web-platform-tests/css/css-cascade/revert-layer-009-expected.xht: Added.
- web-platform-tests/css/css-cascade/revert-layer-009.html: Added.
- web-platform-tests/css/css-cascade/revert-layer-010-expected.xht: Added.
- web-platform-tests/css/css-cascade/revert-layer-010.html: Added.
- web-platform-tests/css/css-cascade/revert-layer-011-expected.xht: Added.
- web-platform-tests/css/css-cascade/revert-layer-011.html: Added.
- web-platform-tests/css/css-cascade/revert-layer-012-expected.xht: Added.
- web-platform-tests/css/css-cascade/revert-layer-012.html: Added.
- web-platform-tests/css/css-cascade/w3c-import.log:
- web-platform-tests/interfaces/css-cascade-5.idl: Added.
LayoutTests:
- 12:28 AM Changeset in webkit [286646] by
-
- 2 edits in trunk/Source/WebCore
REGRESSION(r286556): DeviceOrientationUpdateProvider.h is only available in iOS
https://bugs.webkit.org/show_bug.cgi?id=233991
Unreviewed build fix.
- page/PageConfiguration.h:
Dec 7, 2021:
- 11:27 PM Changeset in webkit [286645] by
-
- 2 edits in trunk/Source/ThirdParty/ANGLE
[MacCatalyst] Fix build after r286603
https://bugs.webkit.org/show_bug.cgi?id=233977
Unreviewed.
Previously, TARGET_OS_IOS and TARGET_OS_MACCATALYST were never on at the same time.
Now, they're on at the same time, and ANGLE doesn't expect that. This patch turns
off TARGET_OS_IOS when TARGET_OS_MACCATALYST is on, just to get ANGLE to build.
The long-term fix is to either update all the sites to use correct macros, or to
use the ANGLE_PLATFORM_* defines instead.
- src/common/platform.h:
- 10:43 PM Changeset in webkit [286644] by
-
- 2 edits in trunk/Source/WebCore
Add logging to RealtimeOutgoingVideoSource creation
https://bugs.webkit.org/show_bug.cgi?id=233929
Reviewed by Eric Carlson.
This will allow to identify when trying to start sending video.
No change of behavior.
- platform/mediastream/RealtimeOutgoingVideoSource.cpp:
(WebCore::RealtimeOutgoingVideoSource::RealtimeOutgoingVideoSource):
(WebCore::RealtimeOutgoingVideoSource::setSource):
- 10:34 PM Changeset in webkit [286643] by
-
- 2 edits in trunk/Source/WebCore
[Model] Only expose APIs on the IDL interface when the feature is enabled
https://bugs.webkit.org/show_bug.cgi?id=233942
Reviewed by Dean Jackson.
- Modules/model-element/HTMLModelElement.idl:
- 10:28 PM Changeset in webkit [286642] by
-
- 5 edits in trunk/Source/WebCore
ActiveDOMObject::suspendIfNeeded() should not be called in the WebAnimation constructor
https://bugs.webkit.org/show_bug.cgi?id=233932
Reviewed by Chris Dumez.
It is not safe to call ActiveDOMObject::suspendIfNeeded() in a constructor. Since WebAnimation has several subclasses
(DeclarativeAnimation, and then CSSTransition and CSSAnimation deriving from DeclarativeAnimation) each with their own
create() methods, we add a new protected initialize() method which refactors code from the WebAnimation constructor
and is called from the two WebAnimation::create() methods.
DeclarativeAnimation already had an initialize method for common setup for the create() methods in CSSTransition and
CSS Animation, so we can simply call WebAnimation::initialize() from DeclarativeAnimation::initialize() and this guarantees
all create() methods for WebAnimation and all of its subclasses are correctly calling ActiveDOMObject::suspendIfNeeded().
- animation/DeclarativeAnimation.cpp:
(WebCore::DeclarativeAnimation::initialize):
- animation/DeclarativeAnimation.h:
- animation/WebAnimation.cpp:
(WebCore::WebAnimation::create):
(WebCore::WebAnimation::initialize):
(WebCore::WebAnimation::WebAnimation):
- animation/WebAnimation.h:
- 9:30 PM Changeset in webkit [286641] by
-
- 17 edits in trunk
[iOS] Add initial support for find-in-page SPI
https://bugs.webkit.org/show_bug.cgi?id=233915
rdar://86140501
Reviewed by Wenson Hsieh.
Source/WebKit:
Expose new find-in-page SPI for use by clients.
- Platform/spi/ios/UIKitSPI.h:
- UIProcess/API/Cocoa/WKWebViewPrivate.h:
- UIProcess/API/ios/WKWebViewIOS.mm:
(-[WKWebView selectedTextRange]):
(-[WKWebView offsetFromPosition:toPosition:inDocument:]):
(-[WKWebView performTextSearchWithQueryString:usingOptions:resultAggregator:]):
(-[WKWebView decorateFoundTextRange:inDocument:usingStyle:]):
(-[WKWebView clearAllDecoratedFoundText]):
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::findRectsForStringMatches):
(WebKit::WebPageProxy::hideFindIndicator):
- UIProcess/WebPageProxy.h:
- UIProcess/ios/WKContentViewInteraction.h:
- UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView offsetFromPosition:toPosition:]):
The implementation here is needed to determine the relative ordering of
two search results.
(-[WKContentView performTextSearchWithQueryString:usingOptions:resultAggregator:]):
Call into the WebProcess to perform the search, and asynchronously
mark the search as complete.
A search result is represented as a WKFoundTextRange, and contains
two pieces of information.
- A rect – so that clients can determine whether or not the result is visible.
- An index – to allow for highlighting of a result and to enable determining relative ordering between two results.
(-[WKContentView decorateFoundTextRange:usingStyle:]):
(-[WKContentView clearAllDecoratedFoundText]):
(+[WKFoundTextRange foundTextRangeWithRect:index:]):
(-[WKFoundTextRange start]):
(-[WKFoundTextRange end]):
(-[WKFoundTextRange isEmpty]):
(+[WKFoundTextPosition textPositionWithIndex:]):
- WebProcess/WebPage/FindController.cpp:
(WebKit::FindController::findString):
Prevent Editor from revealing the selection on all platforms, as the
existing call to didFindString is now responsible for revealing
selection on all platforms.
(WebKit::FindController::findRectsForStringMatches):
Gather rects for all search results and return them to the UIProcess.
(WebKit::FindController::indicateFindMatch):
This method was previously unused on iOS, and required some changes
to work correctly.
Wrap the call to select the current match with calls to
{will|did}FindString to account for iOS specific selection behavior.
See the existing comment in didFindString for more details.
No behavior change on other platforms, since willFindString is empty,
and didFindString now reveals the selection.
(WebKit::FindController::didFindString):
- WebProcess/WebPage/FindController.h:
- WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::findRectsForStringMatches):
(WebKit::WebPage::hideFindIndicator):
- WebProcess/WebPage/WebPage.h:
- WebProcess/WebPage/WebPage.messages.in:
Added two new WebPage messages.
- findRectsForStringMatches returns an vector of string match rects for use in the UIProcess.
- Expose hideFindIndicator via IPC so that the UIProcess can hide the indicator without dismissing the overlay entirely.
Source/WTF:
- wtf/PlatformHave.h:
Tools:
- TestWebKitAPI/Tests/WebKitCocoa/FindInPage.mm:
(-[TestSearchAggregator initWithCompletionHandler:]):
(-[TestSearchAggregator foundRange:forSearchString:inDocument:]):
(-[TestSearchAggregator finishedSearching]):
(TEST):
Added an API test to verify that search results are found correctly.
- 8:24 PM Changeset in webkit [286640] by
-
- 33 edits9 adds in trunk
Add support for
navigator.requestCookieConsent()
behind a disabled feature flag
https://bugs.webkit.org/show_bug.cgi?id=233890
rdar://86117718
Reviewed by Darin Adler.
Source/WebCore:
Add plumbing to support a new (internal-for-the-time-being) navigator API,
requestCookieConsent()
. This
returns a promise indicating whether or not the user (or the UA, on behalf of the user) consents to usage of
cookies that are not strictly necessary for page performance.
Paired with this web-facing API, we also introduce corresponding private WKUIDelegate methods that are invoked
as a result of callingnavigator.requestCookieConsent();
, which a WebKit embedder may implement in order to
present UI or otherwise respond appropriately to the request. See WebKit ChangeLog for more details.
Tests: CookieConsent.BasicDecisionHandler
CookieConsent.NotEnabled
CookieConsent.ThrowsExceptionWithoutDelegate
- CMakeLists.txt:
- DerivedSources-input.xcfilelist:
- DerivedSources-output.xcfilelist:
- DerivedSources.make:
- Headers.cmake:
- Modules/cookie-consent/CookieConsentDecisionResult.h: Added.
- Modules/cookie-consent/Navigator+CookieConsent.idl: Added.
- Modules/cookie-consent/NavigatorCookieConsent.cpp: Added.
Add a new partial interface on Navigator that implements the new API by calling into the chrome client hook (see
WebKit changes for more details). Note that in the case where the consent delegate method is not implemented by
the client, we will reject the promise with aNotSupportedError
.
(WebCore::NavigatorCookieConsent::requestCookieConsent):
(WebCore::NavigatorCookieConsent::from):
- Modules/cookie-consent/NavigatorCookieConsent.h: Added.
(WebCore::RequestCookieConsentOptions::RequestCookieConsentOptions):
- Modules/cookie-consent/RequestCookieConsentOptions.h: Added.
- Modules/cookie-consent/RequestCookieConsentOptions.idl: Added.
- Modules/filesystemaccess/WorkerFileSystemStorageConnection.cpp:
- Modules/filesystemaccess/WorkerFileSystemStorageConnection.h:
Add some missing includes to fix the unified source build on Windows.
- Sources.txt:
- WebCore.xcodeproj/project.pbxproj:
- loader/EmptyClients.cpp:
(WebCore::EmptyChromeClient::requestCookieConsent):
- loader/EmptyClients.h:
- page/ChromeClient.h:
Source/WebKit:
Add plumbing for an async
requestCookieConsent()
method on ChromeClient that plumbs through the WebKit2 client
layer, into a new private (for the time being) UI delegate method. If the new delegate method is not implemented
(or there is no UI delegate at all), we immediately invoke the decision handler with a result ofNotSupported
,
allowing us to reject the promise with aNotSupportedError
.
See WebCore ChangeLog for more details.
- UIProcess/API/APIUIClient.h:
(API::UIClient::requestCookieConsent):
- UIProcess/API/Cocoa/WKUIDelegatePrivate.h:
- UIProcess/Cocoa/UIDelegate.h:
- UIProcess/Cocoa/UIDelegate.mm:
(WebKit::UIDelegate::setDelegate):
(WebKit::UIDelegate::UIClient::requestCookieConsent):
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::requestCookieConsent):
- UIProcess/WebPageProxy.h:
- UIProcess/WebPageProxy.messages.in:
- WebProcess/WebCoreSupport/WebChromeClient.cpp:
(WebKit::WebChromeClient::requestCookieConsent):
- WebProcess/WebCoreSupport/WebChromeClient.h:
Source/WebKitLegacy/mac:
Add an implementation stub for the new chrome client hook,
requestCookieConsent()
.
- WebCoreSupport/WebChromeClient.h:
- WebCoreSupport/WebChromeClient.mm:
(WebChromeClient::requestCookieConsent):
Source/WebKitLegacy/win:
Add an implementation stub for the new chrome client hook,
requestCookieConsent()
.
- WebCoreSupport/WebChromeClient.cpp:
(WebChromeClient::requestCookieConsent):
- WebCoreSupport/WebChromeClient.h:
Source/WTF:
Add the new feature flag (off by default). Note that this is also only an internal feature flag for the time
being (rather than an experimental feature flag), such that it cannot (yet) be turned on by non-Apple internal
users.
- Scripts/Preferences/WebPreferencesInternal.yaml:
Tools:
Add several new API tests that enable the feature flag and exercise the API.
- TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
- TestWebKitAPI/Tests/WebKit/CookieConsent.mm: Added.
(-[CookieConsentDelegate _webView:requestCookieConsentWithMoreInfoHandler:decisionHandler:]):
(TestWebKitAPI::createWebViewForTestingCookieConsent):
(TestWebKitAPI::checkForString):
(TestWebKitAPI::TEST):
- TestWebKitAPI/Tests/WebKit/cookie-consent-basic.html: Added.
- 7:59 PM Changeset in webkit [286639] by
-
- 6 edits3 adds in trunk
TypedArray prototype set should go down the fast path when using non clamped integer types of the same byte size
https://bugs.webkit.org/show_bug.cgi?id=233905
Reviewed by Keith Miller.
JSTests:
- microbenchmarks/typed-array-prototype-set.js: Added.
- microbenchmarks/typed-array-prototype-set-order.js: Added.
- stress/typed-array-prototype-set.js: Added.
Source/JavaScriptCore:
We can use memmove in this scenario because the bitpattern of the
data between the signed and unsigned values will be the same.
This patch also fixes a bug where we were looking at the wrong
pointer when determining to do a forward or backwards loop in
our memmove. We were looking at the vector instead of vector+offset.
- runtime/JSGenericTypedArrayViewInlines.h:
(JSC::JSGenericTypedArrayView<Adaptor>::set):
LayoutTests:
- js/script-tests/typedarray-set-overlapping-elements-of-same-size.js:
- js/typedarray-set-overlapping-elements-of-same-size-expected.txt:
- 6:49 PM Changeset in webkit [286638] by
-
- 3 edits in trunk/Source/ThirdParty/ANGLE
Unreviewed, these files are modified after building ANGLE
https://bugs.webkit.org/show_bug.cgi?id=220896
<rdar://problem/73539682>
- src/libANGLE/renderer/metal/shaders/mtl_default_shaders_src_autogen.inc:
- src/libANGLE/renderer/metal/shaders/mtl_default_shaders_src_autogen.metal:
- 6:11 PM Changeset in webkit [286637] by
-
- 4 edits in trunk/Source/WebCore
Remove expandAroundIdeographs static variables
https://bugs.webkit.org/show_bug.cgi?id=233750
Reviewed by Myles Maxfield.
With OffscreenCanvas, we can call into
ComplexTextController::adjustGlyphsAndAdvances,
FontCascade::expansionOpportunityCountInternal, and
WidthIterator::calculateAdditionalWidth from worker threads.
These all have a static variable variable with an initializer
that calls FontCascade::canExpandAroundIdeographsInComplexText,
and such initializers are not safe under -fno-threadsafe-statics.
canExpandAroundIdeographsInComplexText is a simple enough function in
all ports (it just returns a constant bool) that it's not worth caching
the result in a static.
- platform/graphics/ComplexTextController.cpp:
(WebCore::ComplexTextController::adjustGlyphsAndAdvances):
- platform/graphics/FontCascade.cpp:
(WebCore::FontCascade::expansionOpportunityCountInternal):
- platform/graphics/WidthIterator.cpp:
(WebCore::WidthIterator::calculateAdditionalWidth const):
- 6:09 PM Changeset in webkit [286636] by
-
- 2 edits in trunk/Source/ThirdParty/ANGLE
Avoid noisy Wcomment warnings after ANGLE update in r286603
https://bugs.webkit.org/show_bug.cgi?id=233964
Unreviewed warning removal.
- src/compiler/translator/tree_util/IntermTraverse.h:
- 5:43 PM Changeset in webkit [286635] by
-
- 8 edits in trunk/Source/JavaScriptCore
[JSC] Add LLInt IC for try_get_by_id of own cacheable value
https://bugs.webkit.org/show_bug.cgi?id=233830
Reviewed by Yusuke Suzuki.
This patch adds an LLInt IC for the "own cacheable value" path of try_get_by_id;
this is the simplest case and basically the same as get_by_id_direct.
Performance is neutral with JIT enabled as well as on current uses of try_get_by_id in JSC
(e.g. hasObservableSideEffectsForRegexpSplit), but microbenchmarks of try_get_by_id itself see a 2x speedup:
Before After
try-get-by-id-polymorphic 123.8361+-0.4562 61.7586+-0.3770 definitely 2.0052x faster
try-get-by-id-basic 124.4437+-0.6091 61.0340+-0.1924 definitely 2.0389x faster
<geometric> 124.1207+-0.3130 61.3865+-0.2019 definitely 2.0220x faster
- bytecode/BytecodeList.rb:
- bytecode/CodeBlock.cpp:
- bytecode/GetByStatus.cpp:
- llint/LLIntSlowPaths.cpp:
- llint/LowLevelInterpreter.asm:
- llint/LowLevelInterpreter32_64.asm:
- llint/LowLevelInterpreter64.asm:
- 5:35 PM Changeset in webkit [286634] by
-
- 3 edits in trunk/Source/WebCore
Move shouldAutoActivateFontIfNeeded knownFamilies cache to FontCache
https://bugs.webkit.org/show_bug.cgi?id=233749
Reviewed by Myles Maxfield.
With OffscreenCanvas, we can call shouldAutoActivateFontIfNeeded on a
worker thread, and the knownFamilies HashSet is not thread safe. Also,
the AtomStrings it stores are thread-specific. Move it to FontCache, so
each thread has its own set.
- platform/graphics/FontCache.h:
- platform/graphics/cocoa/FontCacheCoreText.cpp:
(WebCore::FontCache::shouldAutoActivateFontIfNeeded):
(WebCore::shouldAutoActivateFontIfNeeded): Deleted.
- 5:32 PM Changeset in webkit [286633] by
-
- 2 edits in trunk/Tools
[webkitcorepy] Fail to install python module when a working directory is not on C drive on Windows
https://bugs.webkit.org/show_bug.cgi?id=233936
Reviewed by Jonathan Bedard.
On Windows, autoinstall.py installs python modules to C drive even if
your working directory is on other drive (e.g. D drive). To install
python modules correctly on Windows, a drive letter where your working
directory exists needs to be given to "--root" option of "setup.py"
in autoinstall.py.
- Scripts/libraries/webkitcorepy/webkitcorepy/autoinstall.py:
(Package.install): Added root_location to detect a right drive letter to isntall modules on Windows.
- 4:55 PM Changeset in webkit [286632] by
-
- 40 edits in trunk/Source
Add a
DOMPasteAccessCategory
to control which pasteboard the WebProcess is granted access to when pasting
https://bugs.webkit.org/show_bug.cgi?id=233939
Reviewed by Wenson Hsieh.
Implementing
-pasteFont:
<https://webkit.org/b/191379> requires that we read from the font
pasteboard instead of the general pasteboard. In order to allow web content to trigger this
(e.g.document.execCommand("PasteFont"))
) we must have a way for the WebProcess to signal
that it wishes to read from the font pasteboard instead of the general pasteboard. As such,
create and pass along aDOMPasteAccessCategory
torequestDOMPasteAccess
.
No change in behavior.
Source/WebCore:
- dom/DOMPasteAccess.h:
Create
DOMPasteAccessCategory
.
- page/EditorClient.h:
- page/Frame.h:
- page/Frame.cpp:
(WebCore::Frame::requestDOMPasteAccess):
- loader/EmptyClients.cpp:
(WebCore::EmptyEditorClient::requestDOMPasteAccess):
Pass along theDOMPasteAccessCategory
.
Source/WebKit:
- Scripts/webkit/messages.py:
(headers_for_type):
Indicate which header is associated withDOMPasteAccessCategory
.
- UIProcess/Cocoa/WebViewImpl.h:
- UIProcess/Cocoa/WebViewImpl.mm:
(-[WKDOMPasteMenuDelegate initWithWebViewImpl:pasteAccessCategory:]): Added.
(-[WKDOMPasteMenuDelegate menuDidClose:]):
(-[WKDOMPasteMenuDelegate _web_grantDOMPasteAccess]): Added.
(WebKit::WebViewImpl::handleProcessSwapOrExit):
(WebKit::pasteboardNameForAccessCategory): Added.
(WebKit::pasteboardForAccessCategory): Added.
(WebKit::WebViewImpl::requestDOMPasteAccess):
(WebKit::WebViewImpl::handleDOMPasteRequestForCategoryWithResult):
(WebKit::WebViewImpl::hideDOMPasteMenuWithResult): Added.
(-[WKDOMPasteMenuDelegate initWithWebViewImpl:]): Deleted.
(WebKit::WebViewImpl::handleDOMPasteRequestWithResult): Deleted.
- UIProcess/API/mac/WKView.mm:
(-[WKView _web_grantDOMPasteAccess]): Deleted.
- UIProcess/API/mac/WKWebViewMac.mm:
(-[WKWebView _web_grantDOMPasteAccess]): Deleted.
Pass theDOMPasteAccessCategory
to theWKDOMPasteMenuDelegate
and use it as thetarget
of theNSMenuItem
so that we can pass along theDOMPasteAccessCategory
in theaction
.
- UIProcess/ios/WKContentViewInteraction.h:
- UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView cleanUpInteraction]):
(-[WKContentView resignFirstResponderForWebView]):
(-[WKContentView _webTouchEventsRecognized:]):
(-[WKContentView _willHideMenu:]):
(-[WKContentView pasteForWebView:]):
(pasteboardNameForAccessCategory): Added.
(pasteboardForAccessCategory): Added.
(-[WKContentView _hidePasteMenuWithResult:]): Added.
(-[WKContentView _handleDOMPasteRequestForCategory:result:]): Added.
(-[WKContentView _willPerformAction:sender:]):
(-[WKContentView _didPerformAction:sender:]):
(-[WKContentView handleKeyWebEvent:withCompletionHandler:]):
(-[WKContentView _requestDOMPasteAccessForCategory:elementRect:originIdentifier:completionHandler:]): Added.
(-[WKContentView _handleDOMPasteRequestWithResult:]): Deleted.
(-[WKContentView _requestDOMPasteAccessWithElementRect:originIdentifier:completionHandler:]): Deleted.
- UIProcess/PageClient.h:
- UIProcess/API/gtk/PageClientImpl.h:
- UIProcess/API/gtk/PageClientImpl.cpp:
(WebKit::PageClientImpl::requestDOMPasteAccess):
- UIProcess/API/wpe/PageClientImpl.h:
- UIProcess/API/wpe/PageClientImpl.cpp:
(WebKit::PageClientImpl::requestDOMPasteAccess):
- UIProcess/ios/PageClientImplIOS.h:
- UIProcess/ios/PageClientImplIOS.mm:
(WebKit::PageClientImpl::requestDOMPasteAccess):
- UIProcess/mac/PageClientImplMac.h:
- UIProcess/mac/PageClientImplMac.mm:
(WebKit::PageClientImpl::requestDOMPasteAccess):
- UIProcess/playstation/PageClientImpl.h:
- UIProcess/playstation/PageClientImpl.cpp:
(WebKit::PageClientImpl::requestDOMPasteAccess):
- UIProcess/win/PageClientImpl.h:
- UIProcess/win/PageClientImpl.cpp:
(WebKit::PageClientImpl::requestDOMPasteAccess):
- WebProcess/WebCoreSupport/WebEditorClient.h:
- WebProcess/WebCoreSupport/WebEditorClient.cpp:
(WebKit::WebEditorClient::requestDOMPasteAccess):
- WebProcess/WebPage/WebPage.h:
- WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::requestDOMPasteAccess):
Pass along theDOMPasteAccessCategory
.
- UIProcess/WebPageProxy.messages.in:
- UIProcess/WebPageProxy.h:
- UIProcess/WebPageProxy.cpp:
(WebKit::pasteAccessCategoryForCommand): Added.
(WebKit::WebPageProxy::executeEditCommand):
(WebKit::WebPageProxy::requestDOMPasteAccess):
(WebKit::WebPageProxy::willPerformPasteCommand):
(WebKit::isPasteCommandName): Deleted.
- UIProcess/ios/WebPageProxyIOS.mm:
(WebKit::WebPageProxy::willPerformPasteCommand):
- UIProcess/mac/WebPageProxyMac.mm:
(WebKit::WebPageProxy::willPerformPasteCommand)
Create a mapping between paste command name andDOMPasteAccessCategory
.
Source/WebKitLegacy/mac:
- WebCoreSupport/WebEditorClient.h:
(WebEditorClient::requestDOMPasteAccess):
Source/WebKitLegacy/win:
- WebCoreSupport/WebEditorClient.h:
(WebEditorClient::requestDOMPasteAccess):
- 4:44 PM Changeset in webkit [286631] by
-
- 2 edits in trunk/Source/WebKit
[Scroll Momentum Generator] Pages lose ability to momentum scroll after dragging between displays
https://bugs.webkit.org/show_bug.cgi?id=233948
rdar://86110813
Reviewed by Tim Horton.
This is a conservative fix for the bug. When a view moves to a new screen, WebPageProxy
needs to unregister for full speed updates using the old displayID, and register
using the new one.
Longer term, it would be better if "full speed updates" was a per-observer concept,
but that would mean registering an observer while wheel events are being received,
which needs a bit more thought.
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::windowScreenDidChange):
- 4:40 PM Changeset in webkit [286630] by
-
- 7 edits1 copy1 add in trunk
Add helper methods to
WebCore::FontShadow
for serializing to CSS and converting toNSShadow
https://bugs.webkit.org/show_bug.cgi?id=233938
Source/WebCore:
Implementing
-pasteFont:
<https://webkit.org/b/191379> requires that we convert native
font attribute data into objects understandable by WebCore, one of which is aNSShadow
.
These helpers will make it easier to parse theNSShadow
and convert it to a CSS value that
we will use to override the selection's CSStext-shadow
.
No change in behavior.
Reviewed by Wenson Hsieh.
Tests: FontShadow.InvalidColor
FontShadow.NoOffsetOrBlurRadius
FontShadow.NoOffset
FontShadow.NegativeOffset
FontShadow.NoBlurRadius
FontShadow.NegativeBlurRadius
FontShadow.AllNegative
- editing/FontShadow.h:
- editing/FontShadow.cpp: Added.
(WebCore::serializationForCSS):
- editing/cocoa/FontShadowCocoa.mm:
(WebCore::fontShadowFromNSShadow): Added.
- Sources.txt:
- WebCore.xcodeproj/project.pbxproj:
Tools:
Reviewed by Wenson Hsieh.
- TestWebKitAPI/Tests/WebCore/FontShadowTests.cpp: Added.
(TestWebKitAPI::TEST.FontShadow.InvalidColor):
(TestWebKitAPI::TEST.FontShadow.NoOffsetOrBlurRadius):
(TestWebKitAPI::TEST.FontShadow.NoOffset):
(TestWebKitAPI::TEST.FontShadow.NegativeOffset):
(TestWebKitAPI::TEST.FontShadow.NoBlurRadius):
(TestWebKitAPI::TEST.FontShadow.NegativeBlurRadius):
(TestWebKitAPI::TEST.FontShadow.AllNegative):
- TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
- 4:24 PM Changeset in webkit [286629] by
-
- 2 edits in trunk/Tools
[commits.webkit.org] Fallback to remote repository (Part 2)
https://bugs.webkit.org/show_bug.cgi?id=233904
<rdar://problem/86131927>
Reviewed by Dewei Zhu.
- CISupport/ews-build/steps.py:
(PushCommitToWebKitRepo.evaluateCommand): Wait before querying commits.webkit.org
- 4:22 PM Changeset in webkit [286628] by
-
- 7 edits5 adds in trunk
Support Animated JPEG-XL images
https://bugs.webkit.org/show_bug.cgi?id=233545
<rdar://problem/86077143>
Reviewed by Don Olmstead.
Source/WebCore:
Implement relevant API, such as frameCount() and support a positive
frame index for frameBufferAtIndex().
Introduce a query to count frames because JPEG XL code stream itself doesn't have frame
count metadata and we need to scan the code stream to the last frame.
Also introduce the Size query instead of the onlySize parameter of the decode() function.
With the DecodeImage query, the decoder decodes a single frame. To
specify which frame to decode, we make use of the JxlDecoderRewind()
and JxlDecoderSkipFrames() functions of libjxl.
To omit rewind and skip as much as possible, we record the query to
m_lastQuery and use it in shouldRewind().
Test: fast/images/animated-jpegxl-loop-count.html
- platform/image-decoders/jpegxl/JPEGXLImageDecoder.cpp:
(WebCore::JPEGXLImageDecoder::~JPEGXLImageDecoder):
(WebCore::JPEGXLImageDecoder::frameCount const):
(WebCore::JPEGXLImageDecoder::repetitionCount const):
(WebCore::JPEGXLImageDecoder::frameBufferAtIndex):
(WebCore::JPEGXLImageDecoder::clearFrameBufferCache):
(WebCore::JPEGXLImageDecoder::setFailed):
(WebCore::JPEGXLImageDecoder::tryDecodeSize):
(WebCore::JPEGXLImageDecoder::hasAlpha const):
(WebCore::JPEGXLImageDecoder::hasAnimation const):
(WebCore::JPEGXLImageDecoder::ensureDecoderInitialized):
(WebCore::JPEGXLImageDecoder::shouldRewind const):
(WebCore::JPEGXLImageDecoder::rewind):
(WebCore::JPEGXLImageDecoder::updateFrameCount):
(WebCore::JPEGXLImageDecoder::decode):
(WebCore::JPEGXLImageDecoder::processInput):
(WebCore::JPEGXLImageDecoder::imageOut):
(WebCore::JPEGXLImageDecoder::clear): Deleted.
- platform/image-decoders/jpegxl/JPEGXLImageDecoder.h:
LayoutTests:
Add test for animated JPEG XL, based on animated-gif-loop-count.
- TestExpectations:
- fast/images/animated-jpegxl-loop-count-expected.html: Added.
- fast/images/animated-jpegxl-loop-count.html: Added.
- fast/images/resources/animated-red-green-blue-repeat-1.jxl: Added.
- fast/images/resources/animated-red-green-blue-repeat-2.jxl: Added.
- fast/images/resources/animated-red-green-blue-repeat-infinite.jxl: Added.
- platform/glib/TestExpectations:
- platform/wincairo/TestExpectations:
- 4:06 PM WebKitGTK/GCCRequirement edited by
- (diff)
- 4:01 PM WebKitGTK/GCCRequirement edited by
- (diff)
- 3:36 PM Changeset in webkit [286627] by
-
- 2 edits in trunk/LayoutTests
REGRESSION(iOS 14): svg/W3C-I18N/tspan-direction-rtl.svg is a constant failure
https://bugs.webkit.org/show_bug.cgi?id=217258
Unreviewed test gardening.
- platform/ios-wk2/TestExpectations:
- 3:33 PM Changeset in webkit [286626] by
-
- 2 edits in trunk/LayoutTests
REGRESSION(iOS 14): svg/W3C-I18N/tspan-direction-rtl.svg is a constant failure
https://bugs.webkit.org/show_bug.cgi?id=217258
Unreviewed test gardening. iOS 15 rebaseline.
- platform/ios/svg/W3C-I18N/tspan-direction-rtl-expected.txt:
- 3:33 PM Changeset in webkit [286625] by
-
- 40 edits in trunk/Source
Move FontCache singleton and instance on WorkerGlobalScope to ThreadGlobalData
https://bugs.webkit.org/show_bug.cgi?id=233747
Reviewed by Darin Adler.
Source/WebCore:
There are various places in font code where we need access to a
FontCache instance. Currently we:
- assume that we're on the main thread and call FontCache::singleton(), or
- get a FontCache off WorkerGlobalScope and pass it down (or store it) where it's needed, then pass it to fontCacheFallingBackToSingleton.
Having to thread through, or store, the FontCache pointer is
inconvenient, and there are some places where we don't have access to
a FontCache pointer, but we're on a worker, and we call
fontCacheFallingBackToSingleton and incorrectly get back the main
thread's instance.
I think it would be cleaner if we moved both the main thread FontCache
singleton, and the one stored on a WorkerGlobalScope, to
ThreadGlobalData, which is easily globally accessible. Performing a
TLS lookup is cheap these days.
- css/CSSFontFace.h:
- css/CSSFontFace.cpp:
(WebCore::CSSFontFace::font):
(WebCore::CSSFontFace::fontCacheFallingBackToSingleton):
Remove fontCacheFallingBackToSingleton and replace calls to it with
FontCache::forCurrentThread.
- css/CSSFontFaceSet.cpp:
(WebCore::CSSFontFaceSet::ensureLocalFontFacesForFamilyRegistered):
Replace getting the FontCache from the ScriptExecutionContext with a
call to FontCache::forCurrentThread.
- css/CSSFontFaceSource.cpp:
(WebCore::CSSFontFaceSource::load):
(WebCore::CSSFontFaceSource::font):
- editing/cocoa/FontAttributeChangesCocoa.mm:
(WebCore::FontChanges::platformFontFamilyNameForCSS const):
- inspector/agents/InspectorCSSAgent.cpp:
(WebCore::InspectorCSSAgent::getSupportedSystemFontFamilyNames):
- page/MemoryRelease.cpp:
(WebCore::releaseNoncriticalMemory):
- page/ProcessWarming.cpp:
(WebCore::ProcessWarming::prewarmGlobally):
(WebCore::ProcessWarming::collectPrewarmInformation):
(WebCore::ProcessWarming::prewarmWithInformation):
- page/SettingsBase.cpp:
(WebCore::invalidateAfterGenericFamilyChange):
Replace calls to FontCache::singleton with calls to
FontCache::forCurrentThread.
- css/CSSFontSelector.h:
- css/CSSFontSelector.cpp:
(WebCore::CSSFontSelector::CSSFontSelector):
(WebCore::CSSFontSelector::~CSSFontSelector):
(WebCore::CSSFontSelector::fontRangesForFamily):
(WebCore::CSSFontSelector::fallbackFontAt):
Remove CSSFontSelector::m_fontCache and use
FontCache::forCurrentThread instead. For the CSSFontSelector
destructor, we call forCurrentThreadIfNotDestroyed since it
can run after ThreadGlobalData::destroy has been called for
a worker, and we don't want to cause a fresh FontCache object to be
created at this point.
- dom/ScriptExecutionContext.h:
- dom/ScriptExecutionContext.cpp:
(WebCore::ScriptExecutionContext::fontCache):
Remove the FontCache member.
- platform/ThreadGlobalData.h:
(WebCore::ThreadGlobalData::ThreadGlobalData::cachedResourceRequestInitiators):
(WebCore::ThreadGlobalData::ThreadGlobalData::eventNames):
(WebCore::ThreadGlobalData::ThreadGlobalData::qualifiedNameCache):
(WebCore::ThreadGlobalData::ThreadGlobalData::mimeTypeRegistryThreadGlobalData):
(WebCore::ThreadGlobalData::ThreadGlobalData::fontCache):
(WebCore::ThreadGlobalData::ThreadGlobalData::fontCacheIfNotDestroyed):
- platform/ThreadGlobalData.cpp:
(WebCore::ThreadGlobalData::destroy):
(WebCore::ThreadGlobalData::initializeFontCache):
Add accessors for a lazily created FontCache. Also record whether
destroy has been called on the ThreadGlobalData so that
fontCacheIfNotDestroyed can check it, and the other lazy object
creation methods can assert destroy hasn't been called yet.
- platform/graphics/Font.h:
- platform/graphics/Font.cpp:
(WebCore::Font::create):
(WebCore::Font::Font):
(WebCore::Font::systemFallbackFontForCharacter const):
- platform/graphics/FontCache.cpp:
(WebCore::FontCache::fontForPlatformData):
- workers/WorkerFontLoadRequest.cpp:
(WebCore::WorkerFontLoadRequest::createFont):
Remove FontCache arguments and use FontCache::forCurrentThread in
their place.
- platform/graphics/FontCache.cpp:
(WebCore::FontCache::create): Removed.
(WebCore::FontCache::singleton):
(WebCore::FontCache::forCurrentThread):
Replace FontCache::singleton with FontCache::forCurrentThread, which
looks up the FontCache on ThreadGlobalData.
(WebCore::FontCache::invalidateAllFontCaches):
New function that will in the future invalidate the main thread and
all worker thread FontCaches.
- platform/graphics/FontCache.h:
Remove refcounting from FontCache since we no longer need to store a
strong reference to it on other objects.
(WebCore::FontCache::fontCacheFallingBackToSingleton): Deleted.
- platform/graphics/FontCascade.cpp:
(WebCore::FontCascade::isCurrent const):
(WebCore::FontCascade::update const):
Call FontCache::forCurrentThread instead of getting it from the
FontSelector.
- platform/graphics/FontCascadeFonts.cpp:
(WebCore::FontCascadeFonts::FontCascadeFonts):
(WebCore::realizeNextFallback):
(WebCore::FontCascadeFonts::realizeFallbackRangesAt):
(WebCore::FontCascadeFonts::glyphDataForSystemFallback):
- platform/graphics/cairo/FontCairoHarfbuzzNG.cpp:
(WebCore::FontCascade::fontForCombiningCharacterSequence const):
Use FontCache::forCurrentThread.
- platform/graphics/FontSelector.h:
Remove fontCache method.
- platform/graphics/cocoa/FontCacheCoreText.cpp:
(WebCore::fontCacheRegisteredFontsChangedNotificationCallback):
(WebCore::fontWithFamilySpecialCase):
(WebCore::FontCache::prewarmGlobally):
- platform/graphics/cocoa/FontFamilySpecificationCoreText.cpp:
(WebCore::FontFamilySpecificationCoreText::fontRanges const):
- platform/graphics/cocoa/SystemFontDatabaseCoreText.cpp:
(WebCore::SystemFontDatabaseCoreText::systemFontParameters):
- platform/graphics/mac/ComplexTextControllerCoreText.mm:
(WebCore::ComplexTextController::collectComplexTextRunsForCharacters):
- testing/InternalSettings.cpp:
(WebCore::InternalSettings::Backup::restoreTo):
(WebCore::InternalSettings::setShouldMockBoldSystemFontForAccessibility):
Use FontCache::forCurrentThread.
- platform/graphics/cocoa/FontCacheCoreText.cpp:
(WebCore::invalidateFontCache):
- testing/Internals.cpp:
(WebCore::Internals::invalidateFontCache):
Call the new FontCache::invalidateAllFontCaches.
- platform/graphics/win/FontCacheWin.cpp:
(WebCore::getCJKCodePageMasks):
(WebCore::FontCache::systemFallbackForCharacters):
Use the FontCache instance we have access to rather than call
FontCache::singleton.
- workers/WorkerGlobalScope.h:
- workers/WorkerGlobalScope.cpp:
(WebCore::WorkerGlobalScope::fontCache):
Remove the FontCache member and accessor.
Source/WebKit:
- WebProcess/WebProcess.cpp:
(WebKit::WebProcess::terminate):
Update existing main threa callers of FontCache::singleton() to use
FontCache::forCurrentThread().
Source/WebKitLegacy/mac:
- Misc/WebCoreStatistics.mm:
(+[WebCoreStatistics cachedFontDataCount]):
(+[WebCoreStatistics cachedFontDataInactiveCount]):
(+[WebCoreStatistics purgeInactiveFontData]):
Update existing main thread callers of FontCache::singleton() to use
FontCache::forCurrentThread().
Source/WebKitLegacy/win:
- WebCoreStatistics.cpp:
(WebCoreStatistics::cachedFontDataCount):
(WebCoreStatistics::cachedFontDataInactiveCount):
(WebCoreStatistics::purgeInactiveFontData):
Update existing main thread callers of FontCache::singleton() to use
FontCache::forCurrentThread().
- 2:51 PM Changeset in webkit [286624] by
-
- 5 edits2 adds1 delete in trunk/Source/WebKit
webpushd should run with regular user permissions
https://bugs.webkit.org/show_bug.cgi?id=233844
Reviewed by Brady Eidson.
Currently webpushd runs as root, which is unneessary. This patch makes it so that we run
with regular user permissions. This is done by specifying a UserName in the launchd plist on
iOS and by installing the plist to /System/Library/LaunchAgents on Mac. Since the plists now
differ based on platform, I changed the "Copy Daemon Plists" build phase in the WebKit
target to copy the appropriate plist to either /S/L/LaunchDaemons or /S/L/LaunchAgents.
Additionally, webpushd needs the
aps-connection-initiate
or
com.apple.private.aps-connection-initiate
to receive pushes from apsd on iOS and Mac
respectively, so I gave the daemon those entitlements.
Finally, webpushd now registers for the
com.apple.aps.webkit.webpushd.incoming-push
Mach
service so that it can be launched on demand in response to a push. Right now we just
bootstrap_check_in
to the service at launch time, but eventually we'll remove that and
use APSConnection to check in to the service instead. Since thebootstrap_check_in
call is temporary, I chose not to make a header file in wtf/spi and declared the prototype
in the implementation file instead.
- Configurations/webpushd.xcconfig:
- Scripts/process-entitlements.sh:
- WebKit.xcodeproj/project.pbxproj:
- webpushd/WebPushDaemonMain.mm:
(WebKit::WebPushDaemonMain):
- webpushd/com.apple.webkit.webpushd.ios.plist: Added.
- webpushd/com.apple.webkit.webpushd.mac.plist: Added.
- webpushd/com.apple.webkit.webpushd.plist: Removed.
- 2:31 PM Changeset in webkit [286623] by
-
- 6 edits in trunk/Tools
[commits.webkit.org] Fallback to remote repository (Part 1)
https://bugs.webkit.org/show_bug.cgi?id=233904
<rdar://problem/86131927>
Reviewed by Dewei Zhu.
- Tools/Scripts/libraries/reporelaypy/reporelaypy/init.py: Bump version.
- Tools/Scripts/libraries/reporelaypy/reporelaypy/checkout.py:
(Checkout.Encoder.default):
(Checkout.init): Allow user to specify a remote fallback repository.
- Tools/Scripts/libraries/reporelaypy/reporelaypy/checkoutroute.py:
(CheckoutRoute.commit): If no commit is found, query the fallback repository.
- Tools/Scripts/libraries/reporelaypy/run: Add --fallback option.
- Tools/Scripts/libraries/reporelaypy/setup.py: Bump version.
Canonical link: https://commits.webkit.org/244936@main
- 2:27 PM WebKitGTK/GCCRequirement edited by
- (diff)
- 2:26 PM WebKitGTK/GCCRequirement edited by
- (diff)
- 2:25 PM WebKitGTK/GCCRequirement edited by
- (diff)
- 2:22 PM WebKitGTK/GCCRequirement edited by
- (diff)
- 2:17 PM Changeset in webkit [286622] by
-
- 2 edits in branches/safari-613.1.11-branch/Source/WebKit
Cherry-pick r286563. rdar://problem/86175400
REGRESSION (r286527): Three API tests crashing under WebKit::ProcessLauncher::launchProcess()
https://bugs.webkit.org/show_bug.cgi?id=233882
<rdar://problem/86111726>
Reviewed by Brent Fulgham.
Correct the eventHandler to capture the process name, rather than using a raw pointer to the character string.
- UIProcess/Launcher/cocoa/ProcessLauncherCocoa.mm: (WebKit::ProcessLauncher::launchProcess):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@286563 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 2:06 PM Changeset in webkit [286621] by
-
- 2 edits in branches/safari-613.1.11-branch/Source/WebKit
Cherry-pick r286574. rdar://problem/86174696
Regression(r286505) imported/w3c/web-platform-tests/html/cross-origin-opener-policy/javascript-url.https.html is a flaky crash
https://bugs.webkit.org/show_bug.cgi?id=233874
Reviewed by Darin Adler.
r286505 fixed ProvisionalPageProxy so that ProvisionalPageProxy::m_provisionalLoadURL gets properly initialized when the
ProvisionalPageProxy gets constructed *after* the provisional load has already started (COOP proces-swap case). One side
effect of this though is that ProvisionalPageProxy::cancel() no longer returns early and will try to notify the client
that the provisional load failed, dereferencing m_mainFrame in doing so. In the event where the main frame has not yet
been created in the new provisional process, this would do a null-dereference of m_mainFrame.
To address the issue, we now early return in ProvisionalPageProxy::cancel() if m_isProcessSwappingOnNavigationResponse
is true (i.e. The ProvisionalPageProxy was created after the provisional load had started). In such situations, we
don't want to ProvisionalPageProxy to be the one notifying the client of the provisional load failure anyway. The reason
is that there is still a provisional load going on in the committed process/page.
No new tests, covered by existing test that is flakily crashing.
- UIProcess/ProvisionalPageProxy.cpp: (WebKit::ProvisionalPageProxy::cancel):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@286574 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 1:58 PM WebKitGTK/GCCRequirement edited by
- (diff)
- 1:58 PM WebKitGTK/GCCRequirement edited by
- (diff)
- 1:57 PM WebKitGTK/GCCRequirement edited by
- (diff)
- 1:49 PM WebKitGTK/GCCRequirement edited by
- (diff)
- 1:46 PM WebKitGTK/GCCRequirement edited by
- (diff)
- 1:38 PM Changeset in webkit [286620] by
-
- 1 copy in tags/Safari-613.1.9.2
Tag Safari-613.1.9.2.
- 1:32 PM Changeset in webkit [286619] by
-
- 9 edits in branches/safari-613.1.9-branch/Source
Versioning.
WebKit-7613.1.9.2
- 1:20 PM Changeset in webkit [286618] by
-
- 1 copy in tags/Safari-613.1.10.2
Tag Safari-613.1.10.2.
- 1:20 PM Changeset in webkit [286617] by
-
- 1 delete in tags/Safari-613.1.10.2
Remove tag.
- 1:19 PM Changeset in webkit [286616] by
-
- 6 edits2 copies in branches/safari-613.1.10-branch/Source/WebKit
Cherry-pick r286564. rdar://problem/86052131
Put webpushd code in WebKit.framework.
https://bugs.webkit.org/show_bug.cgi?id=233886
Reviewed by Alex Christensen.
This fixes some build/mastering/linking issues.
- Configurations/webpushd.xcconfig:
- Shared/API/Cocoa/WKMain.h:
- Shared/API/Cocoa/WKMain.mm: (WKWebPushDaemonMain):
- WebKit.xcodeproj/project.pbxproj:
- webpushd/WebPushDaemonMain.h: Copied from Source/WebKit/Shared/API/Cocoa/WKMain.mm.
- webpushd/WebPushDaemonMain.mm: (WebKit::WebPushDaemonMain): (main): Deleted.
- webpushd/webpushd.cpp: Copied from Source/WebKit/Shared/API/Cocoa/WKMain.mm. (main):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@286564 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 1:19 PM Changeset in webkit [286615] by
-
- 2 edits7 adds in branches/safari-613.1.10-branch/Source/WebKit
Cherry-pick r286533. rdar://problem/86052131
Add command line
webpushtool
for daemon development and debugging.
https://bugs.webkit.org/show_bug.cgi?id=233845
Reviewed by Tim Horton.
No behavior change.
This utility will eventually be quite fleshed out.
For now, it can act as a terminal that prints debug messages from webpushd.
- Configurations/webpushtool.xcconfig: Added.
- Resources/webpushtool.entitlements: Added.
- WebKit.xcodeproj/project.pbxproj:
- WebKit.xcodeproj/xcshareddata/xcschemes/webpushtool.xcscheme: Added.
- webpushd/webpushtool/WebPushToolConnection.h: Added.
- webpushd/webpushtool/WebPushToolConnection.mm: Added. (WebPushTool::Connection::create): (WebPushTool::maybeConnectToService): (WebPushTool::Connection::Connection): (WebPushTool::Connection::connectToService): (WebPushTool::Connection::startAction): (WebPushTool::Connection::startDebugStreamAction): (WebPushTool::Connection::sendAuditToken): (WebPushTool::Connection::connectionDropped): (WebPushTool::Connection::messageReceived):
- webpushd/webpushtool/WebPushToolMain.mm: Added. (printUsageAndTerminate): (main):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@286533 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 1:19 PM Changeset in webkit [286614] by
-
- 22 edits1 copy in branches/safari-613.1.10-branch
Cherry-pick r286355. rdar://problem/86052131
Add WKWebsiteDataStore configuration option to enable Mock app bundle testing.
https://bugs.webkit.org/show_bug.cgi?id=233679
Reviewed by Tim Horton.
Source/WebKit:
Covered by API tests.
We're about to land actual implementations of app permissions bundles.
But the mock bundles still have a place for testing.
We need a way to switch between Mock and Native.
This patch takes the opportunity to plumb out a WebPushDaemonConnectionConfiguration object
that can easily be augmented in future patches to add new options without messing with messaging directly.
- NetworkProcess/NetworkSession.h: (WebKit::NetworkSession::webpushdUsesMockBundlesForTesting const):
- NetworkProcess/NetworkSessionCreationParameters.cpp: (WebKit::NetworkSessionCreationParameters::encode const): (WebKit::NetworkSessionCreationParameters::decode):
- NetworkProcess/NetworkSessionCreationParameters.h:
- NetworkProcess/Notifications/NetworkNotificationManager.cpp: (WebKit::NetworkNotificationManager::maybeSendConnectionConfiguration const): (WebKit::NetworkNotificationManager::sendMessage const): (WebKit::NetworkNotificationManager::sendMessageWithReply const): (WebKit::NetworkNotificationManager::maybeSendHostAppAuditToken const): Deleted.
- NetworkProcess/Notifications/NetworkNotificationManager.h:
- NetworkProcess/cocoa/NetworkSessionCocoa.h:
- NetworkProcess/cocoa/NetworkSessionCocoa.mm: (WebKit::NetworkSessionCocoa::NetworkSessionCocoa):
- Shared/WebPushDaemonConnectionConfiguration.h: Copied from Source/WebKit/Shared/WebPushDaemonConstants.h. (WebKit::WebPushD::WebPushDaemonConnectionConfiguration::encode const): (WebKit::WebPushD::WebPushDaemonConnectionConfiguration::decode):
- Shared/WebPushDaemonConstants.h: (WebKit::WebPushD::messageTypeSendsReply):
- UIProcess/API/Cocoa/_WKWebsiteDataStoreConfiguration.h:
- UIProcess/API/Cocoa/_WKWebsiteDataStoreConfiguration.mm: (-[_WKWebsiteDataStoreConfiguration webpushdUsesMockBundlesForTesting]): (-[_WKWebsiteDataStoreConfiguration setWebpushdUsesMockBundlesForTesting:]):
- UIProcess/WebsiteData/WebsiteDataStore.cpp: (WebKit::WebsiteDataStore::parameters):
- UIProcess/WebsiteData/WebsiteDataStoreConfiguration.cpp: (WebKit::WebsiteDataStoreConfiguration::copy const): (WebKit::WebsiteDataStoreConfiguration::webPushDaemonConnectionConfiguration const):
- UIProcess/WebsiteData/WebsiteDataStoreConfiguration.h: (WebKit::WebsiteDataStoreConfiguration::webpushdUsesMockBundlesForTesting const): (WebKit::WebsiteDataStoreConfiguration::setWebpushdUsesMockBundlesForTesting):
- WebKit.xcodeproj/project.pbxproj:
- webpushd/AppBundleRequest.mm: (WebPushD::AppBundleRequest::AppBundleRequest): (WebPushD::AppBundleRequest::start):
- webpushd/PushClientConnection.h: (WebPushD::ClientConnection::hasHostAppAuditToken const): (WebPushD::ClientConnection::useMockBundlesForTesting const):
- webpushd/PushClientConnection.mm: (WebPushD::ClientConnection::updateConnectionConfiguration): (WebPushD::ClientConnection::setHostAppAuditTokenData):
- webpushd/WebPushDaemon.h:
- webpushd/WebPushDaemon.mm: (WebPushD::Daemon::decodeAndHandleMessage): (WebPushD::Daemon::getOriginsWithPushAndNotificationPermissions): (WebPushD::Daemon::setDebugModeIsEnabled): (WebPushD::Daemon::updateConnectionConfiguration): (WebPushD::Daemon::setHostAppAuditToken): Deleted.
Tools:
- TestWebKitAPI/Tests/WebKitCocoa/WebPushDaemon.mm:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@286355 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 1:19 PM Changeset in webkit [286613] by
-
- 9 edits4 copies4 adds in branches/safari-613.1.10-branch
Cherry-pick r286273. rdar://problem/86052131
Make webpushd "fake registration for testing" much more complicated by adding a "mock app bundle" install
https://bugs.webkit.org/show_bug.cgi?id=233454
Reviewed by Alex Christensen.
Covered by API tests.
Before this patch, webpushd remembered "registrations" using a simple in-memory HashMap.
In the near future, registrations will actually be represented with a placeholder app bundle on disk.
The process of installing placeholders (and checking for existing ones) is complicated and asynchronous.
This patch shifts the in-memory testing implementation from a simple HashMap to a "complicated and asynchronous"
registration mechanism that simulates how app-bundle installs will work.
Once the "real" mechanisms are in place there will be much more in-depth testing that we can do.
For now, this is a "no behavior change" patch.
- NetworkProcess/Notifications/Cocoa/WebPushDaemonConnectionCocoa.mm: (WebKit::WebPushD::Connection::connectionReceivedEvent const):
- UIProcess/API/Cocoa/WKUIDelegatePrivate.h:
- WebKit.xcodeproj/project.pbxproj:
"PushAppBundle" is an abstract base class for representing a placeholder application bundle for a registration.
Eventually there will be a native one for each platform that actually does system operations.
For now, the concrete implementation is the in-memory "Mock" app bundle.
- webpushd/PushAppBundle.h: Copied from Source/WebKit/webpushd/PushClientConnection.h.
- webpushd/PushAppBundle.mm: Copied from Source/WebKit/webpushd/PushClientConnection.h. (WebPushD::PushAppBundleClient::~PushAppBundleClient): (WebPushD::PushAppBundle::PushAppBundle): (WebPushD::PushAppBundle::~PushAppBundle): (WebPushD::PushAppBundle::detachFromClient):
An "AppBundleRequest" is a queable operation meant to do something with an "App bundle".
For now the operations are "create" and "delete"
- webpushd/AppBundleRequest.h: Added. (WebPushD::AppBundleRequestImpl::AppBundleRequestImpl): (WebPushD::AppBundleRequestImpl::~AppBundleRequestImpl): (WebPushD::AppBundleRequestImpl::callCompletionHandlerAndCleanup): (WebPushD::AppBundlePermissionsRequest::AppBundlePermissionsRequest): (WebPushD::AppBundleDeletionRequest::AppBundleDeletionRequest):
- webpushd/AppBundleRequest.mm: Added. (WebPushD::AppBundleRequest::AppBundleRequest): (WebPushD::AppBundleRequest::~AppBundleRequest): (WebPushD::AppBundleRequest::start): (WebPushD::AppBundleRequest::cancel): (WebPushD::AppBundleRequest::cleanupAfterCompletionHandler): (WebPushD::AppBundlePermissionsRequest::startInternal): (WebPushD::AppBundlePermissionsRequest::didCheckForExistingBundle): (WebPushD::AppBundlePermissionsRequest::didCreateAppBundle): (WebPushD::AppBundleDeletionRequest::startInternal): (WebPushD::AppBundleDeletionRequest::didDeleteExistingBundleWithError):
- webpushd/MockAppBundleForTesting.h: Copied from Source/WebKit/webpushd/PushClientConnection.h. (WebPushD::MockAppBundleForTesting::create):
- webpushd/MockAppBundleForTesting.mm: Added. (WebPushD::MockAppBundleForTesting::MockAppBundleForTesting): (WebPushD::MockAppBundleForTesting::~MockAppBundleForTesting): (WebPushD::MockAppBundleForTesting::checkForExistingBundle): (WebPushD::MockAppBundleForTesting::deleteExistingBundle): (WebPushD::MockAppBundleForTesting::createBundle): (WebPushD::MockAppBundleForTesting::stop):
- webpushd/MockAppBundleRegistry.h: Copied from Source/WebKit/webpushd/PushClientConnection.h.
- webpushd/MockAppBundleRegistry.mm: Added. (WebPushD::MockAppBundleRegistry::singleton): (WebPushD::MockAppBundleRegistry::getOriginsWithRegistrations): (WebPushD::MockAppBundleRegistry::doesBundleExist): (WebPushD::MockAppBundleRegistry::createBundle): (WebPushD::MockAppBundleRegistry::deleteBundle):
- webpushd/PushClientConnection.h:
- webpushd/PushClientConnection.mm: (WebPushD::ClientConnection::create): (WebPushD::ClientConnection::enqueueAppBundleRequest): (WebPushD::ClientConnection::maybeStartNextAppBundleRequest): (WebPushD::ClientConnection::didCompleteAppBundleRequest): (WebPushD::ClientConnection::connectionClosed):
- webpushd/WebPushDaemon.h:
- webpushd/WebPushDaemon.mm: (WebPushD::Daemon::connectionAdded): (WebPushD::Daemon::connectionRemoved): (WebPushD::Daemon::requestSystemNotificationPermission): (WebPushD::Daemon::getOriginsWithPushAndNotificationPermissions): (WebPushD::Daemon::deletePushAndNotificationRegistration):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@286273 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 1:17 PM Changeset in webkit [286612] by
-
- 1 copy in tags/Safari-613.1.10.2
Tag Safari-613.1.10.2.
- 12:51 PM Changeset in webkit [286611] by
-
- 19 edits3 adds in trunk
Web Inspector: Support fuzzy matching in CSS completions
https://bugs.webkit.org/show_bug.cgi?id=230351
<rdar://82976292>
Reviewed by Devin Rousso.
Source/WebInspectorUI:
Use fuzzy matching for identifying CSS completions in the Styles details sidebar.
There are three main parts to this patch:
- Introduce
WI.CSSQueryController
with logic to do fuzzy matching on provided values. - Change
WI.CompletionSuggestionsView
to support both plain strings andWI.QueryResult
s. - Change
WI.SpreadsheetTextField
so itsvalue
doesn't always return itselement.textContent
.
With fuzzy matching, completions are not guaranteed anymore to be prefixed with the query.
Therefore, it's no longer viable to rely onWI.SpreadsheetTextField.value
being a concatenation oftextContent
of nodes within.
To adress this, there's now
WI.SpreadsheetTextField._pendingValue
which includes the prospective
completion regardless of whether the query is a completion prefix or at match at any other position.
- Localizations/en.lproj/localizedStrings.js:
- UserInterface/Base/Setting.js:
Add a flag to enable the fuzzy matching feature.
- UserInterface/Controllers/CSSQueryController.js: Added.
(WI.CSSQueryController):
(WI.CSSQueryController.prototype.addValues):
(WI.CSSQueryController.prototype.reset):
(WI.CSSQueryController.prototype.executeQuery):
(WI.CSSQueryController.prototype._findSpecialCharacterIndices):
Add a speclialized class to hold the logic for fuzzy matching of CSS properties and values.
It clones logic fromWI.ResouceQueryController
with adjustments specific to CSS; more to follow as the feature gets refined.
- UserInterface/Main.html:
- UserInterface/Models/CSSCompletions.js:
(WI.CSSCompletions):
(WI.CSSCompletions.prototype.addValues):
(WI.CSSCompletions.prototype.executeQuery):
Support both the current prefix matching approach as well as fuzzy matching.
- UserInterface/Models/CSSKeywordCompletions.js:
(WI.CSSKeywordCompletions.forPartialPropertyName):
Opt into fuzzy matching when getting completions for property names and values.
- UserInterface/Models/QueryResult.js:
(WI.QueryResult.prototype.get matches):
- UserInterface/Test.html:
- UserInterface/Views/CompletionSuggestionsView.css:
(.completion-suggestions-container > .item > .highlighted):
Highlight specific characters that matched in result identified by fuzzy matching.
- UserInterface/Views/CompletionSuggestionsView.js:
(WI.CompletionSuggestionsView.prototype.selectNext):
(WI.CompletionSuggestionsView.prototype.selectPrevious):
(WI.CompletionSuggestionsView.prototype.update):
(WI.CompletionSuggestionsView.prototype.getCompletionText):
(WI.CompletionSuggestionsView.prototype._createHighlightedCompletionFragment):
ChangeWI.CompletionSuggestionsView
to hold a list of completions,
either strings orWI.QueryResult
, and return the appropriate completion text
instead of returning thetextContent
of the selected element.
WI.CompletionSuggestionsView
is used elsewhere in the Console and Sources panel
so avoid impacting those consumers until they opt in to fuzzy matching as well.
- UserInterface/Views/SettingsTabContentView.js:
- UserInterface/Views/SpreadsheetStyleProperty.js:
(WI.SpreadsheetStyleProperty.prototype._handleNameChange):
(WI.SpreadsheetStyleProperty.prototype._handleValueChange):
(WI.SpreadsheetStyleProperty.prototype._nameCompletionDataProvider):
(WI.SpreadsheetStyleProperty.prototype._valueCompletionDataProvider):
On change, get the value of theWI.SpreadsheetTextField
instead of
the corresponding element'stextContent
.
- UserInterface/Views/SpreadsheetTextField.js:
Introduced
SpreadsheetTextField._completionPrefix
to hold the query a user is typing.
Introduced
SpreadsheetTextField._completionText
to hold the completion text of the selected but
not yet applied completion. This replaces the previous behavior of concatenating the query andsuggestionHint
because with fuzzy matching the completion isn't guaranteed to be prefixed with the query.
Introduced
SpreadsheetTextField._pendingValue
to hold the result of applying the selected
completion. This replaces the previous behavior ofWI.SpreadsheetTextField._combineEditorElementChildren
.
(WI.SpreadsheetTextField):
(WI.SpreadsheetTextField.prototype.get value):
ChangeWI.SpreadsheetTextField
so its value is divorced from its element'stextContent
.
While editing,WI.SpreadsheetTextField.value
returns the pending value so that
a valid CSS string gets written to the stylesheet.
(WI.SpreadsheetTextField.prototype.set suggestionHint):
If the query is a prefix for the selected completion, keep the existing behavior of appending
the suggestion hint substring. Otherwise, hide the suggestion hint element because the
concatenation doesn't make sense.
(WI.SpreadsheetTextField.prototype.stopEditing):
(WI.SpreadsheetTextField.prototype.discardCompletion):
(WI.SpreadsheetTextField.prototype.completionSuggestionsSelectedCompletion):
(WI.SpreadsheetTextField.prototype.completionSuggestionsClickedCompletion):
(WI.SpreadsheetTextField.prototype._discardChange):
(WI.SpreadsheetTextField.prototype._handleBlur):
(WI.SpreadsheetTextField.prototype._handleKeyDown):
(WI.SpreadsheetTextField.prototype._handleKeyDownForSuggestionView):
(WI.SpreadsheetTextField.prototype._handleInput):
(WI.SpreadsheetTextField.prototype._updateCompletions):
(WI.SpreadsheetTextField.prototype._applyPendingValue):
After applying a completion, the value is replaced withWI.SpreadsheetTextField._pendingValue
.
At this point,WI.SpreadsheetTextField.value
and thetextContent
of the element converge.
(WI.SpreadsheetTextField.prototype._updatePendingValueWithCompletionText):
When presented with a completion, the query gets substituted with the full completion text in
WI.SpreadsheetTextField._pendingValue
regardless of whether the query is a prefix or not.
(WI.SpreadsheetTextField.prototype._applyCompletionHint): Deleted.
(WI.SpreadsheetTextField.prototype._combineEditorElementChildren): Deleted.
LayoutTests:
Add test for
WI.CSSQueryController
to check fuzzy matching logic for CSS completions.
Follows prior example fromLayoutTests/inspector/unit-tests/resource-query-controller.html
sinceWI.ResouceQueryController
served as the model class that was adapted for CSS.
- inspector/unit-tests/css-query-controller-expected.txt: Added.
- inspector/unit-tests/css-query-controller.html: Added.
- 12:51 PM Changeset in webkit [286610] by
-
- 2 edits in trunk/Websites/webkit.org
Puzzle feature detection followup
https://bugs.webkit.org/show_bug.cgi?id=233946
Unreviewed.
- blog-files/wide-gamut-canvas/puzzle.html:
- 12:42 PM Changeset in webkit [286609] by
-
- 4 edits in trunk
ASSERTION FAILED: m_messagesBeingDispatched.isEmpty() on http/tests/resourceLoadStatistics/website-data-removal-for-site-with-user-interaction.html
https://bugs.webkit.org/show_bug.cgi?id=228164
<rdar://problem/80914914>
Reviewed by Darin Adler.
Source/WebKit:
dispatchMessagesAndResetDidScheduleDispatchMessagesForConnection() has an assertion to make sure that m_messagesBeingDispatched
was empty when getting called. However, in the case where there is a nested run loop, the call to
m_messagesBeingDispatched.takeFirst().dispatch()
at the end of the function may cause the function to re-enter. When entering,
m_messagesBeingDispatched may not be empty so the assertion is wrong. Looking at the code, I think dropping the assertion is the
right thing to do as the implementation seems to be doing something sane upon re-entering. It will just append new messages to
m_messagesBeingDispatched and then try and dispatch them. Based on how it is implemented, message ordering would be preserved.
No new tests, unskipped existing test.
- Platform/IPC/Connection.cpp:
(IPC::Connection::SyncMessageState::dispatchMessagesAndResetDidScheduleDispatchMessagesForConnection):
LayoutTests:
Unskip test that should no longer be crashing.
- platform/ios-wk2/TestExpectations:
- 12:40 PM Changeset in webkit [286608] by
-
- 2 edits in trunk/Websites/webkit.org
Tweak puzzle to use feature detection
https://bugs.webkit.org/show_bug.cgi?id=233946
Unreviewed.
- blog-files/wide-gamut-canvas/puzzle.html:
- 12:33 PM Changeset in webkit [286607] by
-
- 9 edits in trunk/Source
Versioning.
WebKit-7613.1.12
- 12:29 PM Changeset in webkit [286606] by
-
- 6 edits2 copies in branches/safari-613.1.11-branch/Source/WebKit
Cherry-pick r286564. rdar://problem/86052131
Put webpushd code in WebKit.framework.
https://bugs.webkit.org/show_bug.cgi?id=233886
Reviewed by Alex Christensen.
This fixes some build/mastering/linking issues.
- Configurations/webpushd.xcconfig:
- Shared/API/Cocoa/WKMain.h:
- Shared/API/Cocoa/WKMain.mm: (WKWebPushDaemonMain):
- WebKit.xcodeproj/project.pbxproj:
- webpushd/WebPushDaemonMain.h: Copied from Source/WebKit/Shared/API/Cocoa/WKMain.mm.
- webpushd/WebPushDaemonMain.mm: (WebKit::WebPushDaemonMain): (main): Deleted.
- webpushd/webpushd.cpp: Copied from Source/WebKit/Shared/API/Cocoa/WKMain.mm. (main):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@286564 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 12:16 PM WebKitGTK/GCCRequirement edited by
- (diff)
- 12:11 PM Changeset in webkit [286605] by
-
- 3 edits in trunk/Tools
[reporelaypy] Autoinstall missing lupa fakeredis dependency
https://bugs.webkit.org/show_bug.cgi?id=233934
Reviewed by Jonathan Bedard.
Using the same version as resultsdbpy. Avoids ImportErrors running the
webkitpy suite when they're not installed.
- Scripts/libraries/reporelaypy/reporelaypy/init.py: Add lupa and
bump version.
- Scripts/libraries/reporelaypy/setup.py: Bump version.
- 12:11 PM Changeset in webkit [286604] by
-
- 3 edits in trunk/Source/WebKit
Make WebLockRegistryProxy::processDidExit() return early if process never registered any locks
https://bugs.webkit.org/show_bug.cgi?id=233832
Reviewed by Darin Adler.
Make WebLockRegistryProxy::processDidExit() return early if process never registered any locks.
This avoids calling LocalWebLockRegistry::clientsAreGoingAway() (which can be expensive) in the
case we know for sure no locks were registered by this process.
- UIProcess/WebLockRegistryProxy.cpp:
(WebKit::WebLockRegistryProxy::requestLock):
(WebKit::WebLockRegistryProxy::processDidExit):
- UIProcess/WebLockRegistryProxy.h:
- 11:51 AM Changeset in webkit [286603] by
-
- 1370 edits615 adds262 deletes in trunk
Roll ANGLE to include upstreamed Metal backend
https://bugs.webkit.org/show_bug.cgi?id=220896
<rdar://problem/73539682>
Patch by Kyle Piddington <Kyle Piddington> on 2021-12-07
Reviewed by Ken Russell and Dean Jackson.
Source/ThirdParty/ANGLE:
Update ANGLE to ce854632690e505551414f80d01d864df6118882
The changelog has been intentionally deleted to preserve
readability
The following additional changes were made in the mergeup.
Update ShaderMtl get debug info to return translated source.
Fix crashes in webgl/2.0.y/conformance/extensions/webgl-compressed-texture-s3tc-srgb.html
Fix angle-instanced-arrays-out-of-bounds.html
Skip additional validation when primitive count in drawArraysInstanced is zero
Fix Clear-Invalidate-Render bug for multisample attachments.
Clearing a multisample texture, and then invalidating the render pass would lead
to the next pass not loading the cleared texture.
Fix exports and includes for egl_autogen.h files.
Fix webgl/2.0.0/deqp/functional/gles3/fboinvalidate/default.html
Add synchronization when reading pixels back from shared framebuffers
Source/WebCore:
Update ANGLE to ce854632690e505551414f80d01d864df6118882
Update OpenGL callsites to use the new
method names. Ideally, we should replace this with
a more robust function loader. For now, we call directly
into ANGLE's methods.
Fix exports and includes for egl_autogen.h files.
- platform/graphics/angle/ANGLEHeaders.h:
- platform/graphics/angle/ANGLEUtilities.h:
(WebCore::ScopedRestoreTextureBinding::ScopedRestoreTextureBinding):
(WebCore::ScopedRestoreTextureBinding::~ScopedRestoreTextureBinding):
(WebCore::ScopedBufferBinding::ScopedBufferBinding):
(WebCore::ScopedBufferBinding::~ScopedBufferBinding):
(WebCore::ScopedRestoreReadFramebufferBinding::bindFramebuffer):
(WebCore::ScopedRestoreReadFramebufferBinding::~ScopedRestoreReadFramebufferBinding):
(WebCore::ScopedPixelStorageMode::ScopedPixelStorageMode):
(WebCore::ScopedPixelStorageMode::~ScopedPixelStorageMode):
(WebCore::ScopedPixelStorageMode::pixelStore):
(WebCore::ScopedTexture::ScopedTexture):
(WebCore::ScopedTexture::~ScopedTexture):
(WebCore::ScopedFramebuffer::ScopedFramebuffer):
(WebCore::ScopedFramebuffer::~ScopedFramebuffer):
(WebCore::ScopedGLFence::reset):
(WebCore::ScopedGLFence::fenceSync):
- platform/graphics/angle/ExtensionsGLANGLE.cpp:
(WebCore::ExtensionsGLANGLE::ensureEnabled):
(WebCore::ExtensionsGLANGLE::getTranslatedShaderSourceANGLE):
(WebCore::ExtensionsGLANGLE::initializeAvailableExtensions):
(WebCore::ExtensionsGLANGLE::drawBuffersEXT):
(WebCore::ExtensionsGLANGLE::getExtensions):
- platform/graphics/angle/GraphicsContextGLANGLE.cpp:
(WebCore::GraphicsContextGLANGLE::releaseThreadResources):
(WebCore::GraphicsContextGLANGLE::readPixelsForPaintResults):
(WebCore::GraphicsContextGLANGLE::reshapeFBOs):
(WebCore::GraphicsContextGLANGLE::attachDepthAndStencilBufferIfNeeded):
(WebCore::GraphicsContextGLANGLE::resolveMultisamplingIfNecessary):
(WebCore::GraphicsContextGLANGLE::renderbufferStorage):
(WebCore::GraphicsContextGLANGLE::getIntegerv):
(WebCore::GraphicsContextGLANGLE::getShaderPrecisionFormat):
(WebCore::GraphicsContextGLANGLE::texImage2D):
(WebCore::GraphicsContextGLANGLE::texSubImage2D):
(WebCore::GraphicsContextGLANGLE::compressedTexImage2D):
(WebCore::GraphicsContextGLANGLE::compressedTexSubImage2D):
(WebCore::GraphicsContextGLANGLE::depthRange):
(WebCore::GraphicsContextGLANGLE::clearDepth):
(WebCore::GraphicsContextGLANGLE::readnPixelsImpl):
(WebCore::GraphicsContextGLANGLE::prepareTextureImpl):
(WebCore::GraphicsContextGLANGLE::reshape):
(WebCore::GraphicsContextGLANGLE::activeTexture):
(WebCore::GraphicsContextGLANGLE::attachShader):
(WebCore::GraphicsContextGLANGLE::bindAttribLocation):
(WebCore::GraphicsContextGLANGLE::bindBuffer):
(WebCore::GraphicsContextGLANGLE::bindFramebuffer):
(WebCore::GraphicsContextGLANGLE::bindRenderbuffer):
(WebCore::GraphicsContextGLANGLE::bindTexture):
(WebCore::GraphicsContextGLANGLE::blendColor):
(WebCore::GraphicsContextGLANGLE::blendEquation):
(WebCore::GraphicsContextGLANGLE::blendEquationSeparate):
(WebCore::GraphicsContextGLANGLE::blendFunc):
(WebCore::GraphicsContextGLANGLE::blendFuncSeparate):
(WebCore::GraphicsContextGLANGLE::bufferData):
(WebCore::GraphicsContextGLANGLE::bufferSubData):
(WebCore::GraphicsContextGLANGLE::getBufferSubData):
(WebCore::GraphicsContextGLANGLE::copyBufferSubData):
(WebCore::GraphicsContextGLANGLE::getInternalformativ):
(WebCore::GraphicsContextGLANGLE::renderbufferStorageMultisample):
(WebCore::GraphicsContextGLANGLE::texStorage2D):
(WebCore::GraphicsContextGLANGLE::texStorage3D):
(WebCore::GraphicsContextGLANGLE::texImage3D):
(WebCore::GraphicsContextGLANGLE::texSubImage3D):
(WebCore::GraphicsContextGLANGLE::compressedTexImage3D):
(WebCore::GraphicsContextGLANGLE::compressedTexSubImage3D):
(WebCore::GraphicsContextGLANGLE::getActiveUniforms):
(WebCore::GraphicsContextGLANGLE::checkFramebufferStatus):
(WebCore::GraphicsContextGLANGLE::clearColor):
(WebCore::GraphicsContextGLANGLE::clear):
(WebCore::GraphicsContextGLANGLE::clearStencil):
(WebCore::GraphicsContextGLANGLE::colorMask):
(WebCore::GraphicsContextGLANGLE::compileShader):
(WebCore::GraphicsContextGLANGLE::compileShaderDirect):
(WebCore::GraphicsContextGLANGLE::texImage2DDirect):
(WebCore::GraphicsContextGLANGLE::copyTexImage2D):
(WebCore::GraphicsContextGLANGLE::copyTexSubImage2D):
(WebCore::GraphicsContextGLANGLE::cullFace):
(WebCore::GraphicsContextGLANGLE::depthFunc):
(WebCore::GraphicsContextGLANGLE::depthMask):
(WebCore::GraphicsContextGLANGLE::detachShader):
(WebCore::GraphicsContextGLANGLE::disable):
(WebCore::GraphicsContextGLANGLE::disableVertexAttribArray):
(WebCore::GraphicsContextGLANGLE::drawArrays):
(WebCore::GraphicsContextGLANGLE::drawElements):
(WebCore::GraphicsContextGLANGLE::enable):
(WebCore::GraphicsContextGLANGLE::enableVertexAttribArray):
(WebCore::GraphicsContextGLANGLE::finish):
(WebCore::GraphicsContextGLANGLE::flush):
(WebCore::GraphicsContextGLANGLE::framebufferRenderbuffer):
(WebCore::GraphicsContextGLANGLE::framebufferTexture2D):
(WebCore::GraphicsContextGLANGLE::frontFace):
(WebCore::GraphicsContextGLANGLE::generateMipmap):
(WebCore::GraphicsContextGLANGLE::getActiveAttribImpl):
(WebCore::GraphicsContextGLANGLE::getActiveUniformImpl):
(WebCore::GraphicsContextGLANGLE::getAttachedShaders):
(WebCore::GraphicsContextGLANGLE::getAttribLocation):
(WebCore::GraphicsContextGLANGLE::moveErrorsToSyntheticErrorList):
(WebCore::GraphicsContextGLANGLE::getError):
(WebCore::GraphicsContextGLANGLE::getString):
(WebCore::GraphicsContextGLANGLE::hint):
(WebCore::GraphicsContextGLANGLE::isBuffer):
(WebCore::GraphicsContextGLANGLE::isEnabled):
(WebCore::GraphicsContextGLANGLE::isFramebuffer):
(WebCore::GraphicsContextGLANGLE::isProgram):
(WebCore::GraphicsContextGLANGLE::isRenderbuffer):
(WebCore::GraphicsContextGLANGLE::isShader):
(WebCore::GraphicsContextGLANGLE::isTexture):
(WebCore::GraphicsContextGLANGLE::lineWidth):
(WebCore::GraphicsContextGLANGLE::linkProgram):
(WebCore::GraphicsContextGLANGLE::pixelStorei):
(WebCore::GraphicsContextGLANGLE::polygonOffset):
(WebCore::GraphicsContextGLANGLE::sampleCoverage):
(WebCore::GraphicsContextGLANGLE::scissor):
(WebCore::GraphicsContextGLANGLE::shaderSource):
(WebCore::GraphicsContextGLANGLE::stencilFunc):
(WebCore::GraphicsContextGLANGLE::stencilFuncSeparate):
(WebCore::GraphicsContextGLANGLE::stencilMask):
(WebCore::GraphicsContextGLANGLE::stencilMaskSeparate):
(WebCore::GraphicsContextGLANGLE::stencilOp):
(WebCore::GraphicsContextGLANGLE::stencilOpSeparate):
(WebCore::GraphicsContextGLANGLE::texParameterf):
(WebCore::GraphicsContextGLANGLE::texParameteri):
(WebCore::GraphicsContextGLANGLE::uniform1f):
(WebCore::GraphicsContextGLANGLE::uniform1fv):
(WebCore::GraphicsContextGLANGLE::uniform2f):
(WebCore::GraphicsContextGLANGLE::uniform2fv):
(WebCore::GraphicsContextGLANGLE::uniform3f):
(WebCore::GraphicsContextGLANGLE::uniform3fv):
(WebCore::GraphicsContextGLANGLE::uniform4f):
(WebCore::GraphicsContextGLANGLE::uniform4fv):
(WebCore::GraphicsContextGLANGLE::uniform1i):
(WebCore::GraphicsContextGLANGLE::uniform1iv):
(WebCore::GraphicsContextGLANGLE::uniform2i):
(WebCore::GraphicsContextGLANGLE::uniform2iv):
(WebCore::GraphicsContextGLANGLE::uniform3i):
(WebCore::GraphicsContextGLANGLE::uniform3iv):
(WebCore::GraphicsContextGLANGLE::uniform4i):
(WebCore::GraphicsContextGLANGLE::uniform4iv):
(WebCore::GraphicsContextGLANGLE::uniformMatrix2fv):
(WebCore::GraphicsContextGLANGLE::uniformMatrix3fv):
(WebCore::GraphicsContextGLANGLE::uniformMatrix4fv):
(WebCore::GraphicsContextGLANGLE::useProgram):
(WebCore::GraphicsContextGLANGLE::validateProgram):
(WebCore::GraphicsContextGLANGLE::vertexAttrib1f):
(WebCore::GraphicsContextGLANGLE::vertexAttrib1fv):
(WebCore::GraphicsContextGLANGLE::vertexAttrib2f):
(WebCore::GraphicsContextGLANGLE::vertexAttrib2fv):
(WebCore::GraphicsContextGLANGLE::vertexAttrib3f):
(WebCore::GraphicsContextGLANGLE::vertexAttrib3fv):
(WebCore::GraphicsContextGLANGLE::vertexAttrib4f):
(WebCore::GraphicsContextGLANGLE::vertexAttrib4fv):
(WebCore::GraphicsContextGLANGLE::vertexAttribPointer):
(WebCore::GraphicsContextGLANGLE::vertexAttribIPointer):
(WebCore::GraphicsContextGLANGLE::viewport):
(WebCore::GraphicsContextGLANGLE::createVertexArray):
(WebCore::GraphicsContextGLANGLE::deleteVertexArray):
(WebCore::GraphicsContextGLANGLE::isVertexArray):
(WebCore::GraphicsContextGLANGLE::bindVertexArray):
(WebCore::GraphicsContextGLANGLE::getBooleanv):
(WebCore::GraphicsContextGLANGLE::getBufferParameteri):
(WebCore::GraphicsContextGLANGLE::getFloatv):
(WebCore::GraphicsContextGLANGLE::getInteger64):
(WebCore::GraphicsContextGLANGLE::getInteger64i):
(WebCore::GraphicsContextGLANGLE::getFramebufferAttachmentParameteri):
(WebCore::GraphicsContextGLANGLE::getProgrami):
(WebCore::GraphicsContextGLANGLE::getProgramInfoLog):
(WebCore::GraphicsContextGLANGLE::getRenderbufferParameteri):
(WebCore::GraphicsContextGLANGLE::getShaderi):
(WebCore::GraphicsContextGLANGLE::getShaderInfoLog):
(WebCore::GraphicsContextGLANGLE::getTexParameterf):
(WebCore::GraphicsContextGLANGLE::getTexParameteri):
(WebCore::GraphicsContextGLANGLE::getUniformfv):
(WebCore::GraphicsContextGLANGLE::getUniformiv):
(WebCore::GraphicsContextGLANGLE::getUniformuiv):
(WebCore::GraphicsContextGLANGLE::getUniformLocation):
(WebCore::GraphicsContextGLANGLE::getVertexAttribOffset):
(WebCore::GraphicsContextGLANGLE::createBuffer):
(WebCore::GraphicsContextGLANGLE::createFramebuffer):
(WebCore::GraphicsContextGLANGLE::createProgram):
(WebCore::GraphicsContextGLANGLE::createRenderbuffer):
(WebCore::GraphicsContextGLANGLE::createShader):
(WebCore::GraphicsContextGLANGLE::createTexture):
(WebCore::GraphicsContextGLANGLE::deleteBuffer):
(WebCore::GraphicsContextGLANGLE::deleteFramebuffer):
(WebCore::GraphicsContextGLANGLE::deleteProgram):
(WebCore::GraphicsContextGLANGLE::deleteRenderbuffer):
(WebCore::GraphicsContextGLANGLE::deleteShader):
(WebCore::GraphicsContextGLANGLE::deleteTexture):
(WebCore::GraphicsContextGLANGLE::synthesizeGLError):
(WebCore::GraphicsContextGLANGLE::drawArraysInstanced):
(WebCore::GraphicsContextGLANGLE::drawElementsInstanced):
(WebCore::GraphicsContextGLANGLE::vertexAttribDivisor):
(WebCore::GraphicsContextGLANGLE::getUniformBlockIndex):
(WebCore::GraphicsContextGLANGLE::getActiveUniformBlockName):
(WebCore::GraphicsContextGLANGLE::uniformBlockBinding):
(WebCore::GraphicsContextGLANGLE::createQuery):
(WebCore::GraphicsContextGLANGLE::beginQuery):
(WebCore::GraphicsContextGLANGLE::endQuery):
(WebCore::GraphicsContextGLANGLE::getQueryObjectui):
(WebCore::GraphicsContextGLANGLE::createTransformFeedback):
(WebCore::GraphicsContextGLANGLE::deleteTransformFeedback):
(WebCore::GraphicsContextGLANGLE::isTransformFeedback):
(WebCore::GraphicsContextGLANGLE::bindTransformFeedback):
(WebCore::GraphicsContextGLANGLE::beginTransformFeedback):
(WebCore::GraphicsContextGLANGLE::endTransformFeedback):
(WebCore::GraphicsContextGLANGLE::transformFeedbackVaryings):
(WebCore::GraphicsContextGLANGLE::getTransformFeedbackVarying):
(WebCore::GraphicsContextGLANGLE::bindBufferBase):
(WebCore::GraphicsContextGLANGLE::blitFramebuffer):
(WebCore::GraphicsContextGLANGLE::framebufferTextureLayer):
(WebCore::GraphicsContextGLANGLE::invalidateFramebuffer):
(WebCore::GraphicsContextGLANGLE::invalidateSubFramebuffer):
(WebCore::GraphicsContextGLANGLE::readBuffer):
(WebCore::GraphicsContextGLANGLE::copyTexSubImage3D):
(WebCore::GraphicsContextGLANGLE::getFragDataLocation):
(WebCore::GraphicsContextGLANGLE::uniform1ui):
(WebCore::GraphicsContextGLANGLE::uniform2ui):
(WebCore::GraphicsContextGLANGLE::uniform3ui):
(WebCore::GraphicsContextGLANGLE::uniform4ui):
(WebCore::GraphicsContextGLANGLE::uniform1uiv):
(WebCore::GraphicsContextGLANGLE::uniform2uiv):
(WebCore::GraphicsContextGLANGLE::uniform3uiv):
(WebCore::GraphicsContextGLANGLE::uniform4uiv):
(WebCore::GraphicsContextGLANGLE::uniformMatrix2x3fv):
(WebCore::GraphicsContextGLANGLE::uniformMatrix3x2fv):
(WebCore::GraphicsContextGLANGLE::uniformMatrix2x4fv):
(WebCore::GraphicsContextGLANGLE::uniformMatrix4x2fv):
(WebCore::GraphicsContextGLANGLE::uniformMatrix3x4fv):
(WebCore::GraphicsContextGLANGLE::uniformMatrix4x3fv):
(WebCore::GraphicsContextGLANGLE::vertexAttribI4i):
(WebCore::GraphicsContextGLANGLE::vertexAttribI4iv):
(WebCore::GraphicsContextGLANGLE::vertexAttribI4ui):
(WebCore::GraphicsContextGLANGLE::vertexAttribI4uiv):
(WebCore::GraphicsContextGLANGLE::drawRangeElements):
(WebCore::GraphicsContextGLANGLE::drawBuffers):
(WebCore::GraphicsContextGLANGLE::clearBufferiv):
(WebCore::GraphicsContextGLANGLE::clearBufferuiv):
(WebCore::GraphicsContextGLANGLE::clearBufferfv):
(WebCore::GraphicsContextGLANGLE::clearBufferfi):
(WebCore::GraphicsContextGLANGLE::deleteQuery):
(WebCore::GraphicsContextGLANGLE::isQuery):
(WebCore::GraphicsContextGLANGLE::getQuery):
(WebCore::GraphicsContextGLANGLE::createSampler):
(WebCore::GraphicsContextGLANGLE::deleteSampler):
(WebCore::GraphicsContextGLANGLE::isSampler):
(WebCore::GraphicsContextGLANGLE::bindSampler):
(WebCore::GraphicsContextGLANGLE::samplerParameteri):
(WebCore::GraphicsContextGLANGLE::samplerParameterf):
(WebCore::GraphicsContextGLANGLE::getSamplerParameterf):
(WebCore::GraphicsContextGLANGLE::getSamplerParameteri):
(WebCore::GraphicsContextGLANGLE::fenceSync):
(WebCore::GraphicsContextGLANGLE::isSync):
(WebCore::GraphicsContextGLANGLE::deleteSync):
(WebCore::GraphicsContextGLANGLE::clientWaitSync):
(WebCore::GraphicsContextGLANGLE::waitSync):
(WebCore::GraphicsContextGLANGLE::getSynci):
(WebCore::GraphicsContextGLANGLE::pauseTransformFeedback):
(WebCore::GraphicsContextGLANGLE::resumeTransformFeedback):
(WebCore::GraphicsContextGLANGLE::bindBufferRange):
(WebCore::GraphicsContextGLANGLE::getUniformIndices):
(WebCore::GraphicsContextGLANGLE::getActiveUniformBlockiv):
(WebCore::GraphicsContextGLANGLE::multiDrawArraysANGLE):
(WebCore::GraphicsContextGLANGLE::multiDrawArraysInstancedANGLE):
(WebCore::GraphicsContextGLANGLE::multiDrawElementsANGLE):
(WebCore::GraphicsContextGLANGLE::multiDrawElementsInstancedANGLE):
(WebCore::GraphicsContextGLANGLE::waitAndUpdateOldestFrame):
- platform/graphics/angle/TemporaryANGLESetting.cpp:
(WebCore::TemporaryANGLESetting::TemporaryANGLESetting):
(WebCore::TemporaryANGLESetting::~TemporaryANGLESetting):
- platform/graphics/cocoa/GraphicsContextGLCocoa.mm:
(WebCore::GraphicsContextGLANGLE::GraphicsContextGLANGLE):
(WebCore::GraphicsContextGLANGLE::~GraphicsContextGLANGLE):
(WebCore::GraphicsContextGLANGLE::bindDisplayBufferBacking):
(WebCore::GraphicsContextGLCocoa::attachIOSurfaceToSharedTexture):
(WebCore::GraphicsContextGLANGLE::prepareForDisplay):
(WebCore::GraphicsContextGLANGLE::readCompositedResults):
- platform/graphics/cv/GraphicsContextGLCVCocoa.cpp:
(WebCore::GraphicsContextGLCVCocoa::~GraphicsContextGLCVCocoa):
(WebCore::GraphicsContextGLCVCocoa::GraphicsContextGLCVCocoa):
(WebCore::GraphicsContextGLCVCocoa::copyPixelBufferToTexture):
Tools:
Update script to take sources from main, instead of master.
- Scripts/update-angle:
LayoutTests:
Update ANGLE to ce854632690e505551414f80d01d864df6118882
Update s3tc tests to adapt to new ANGLE validation
Update shaders-with-name-conflicts to pass, as it tests a valid
program.
- webgl/1.0.3/resources/webgl_test_files/conformance/extensions/webgl-compressed-texture-s3tc.html:
- webgl/1.0.3/resources/webgl_test_files/conformance/glsl/misc/shaders-with-name-conflicts.html:
- webgl/2.0.0/resources/webgl_test_files/conformance/extensions/webgl-compressed-texture-s3tc-srgb.html:
- webgl/2.0.0/resources/webgl_test_files/conformance/extensions/webgl-compressed-texture-s3tc.html:
- webgl/2.0.0/resources/webgl_test_files/conformance/glsl/misc/shaders-with-name-conflicts.html:
- webgl/pending/resources/webgl_test_files/conformance/context/context-attributes-alpha-depth-stencil-antialias.html:
- webgl/resources/webgl_test_files/conformance/extensions/s3tc-and-rgtc.html:
- webgl/resources/webgl_test_files/conformance/extensions/webgl-compressed-texture-s3tc-srgb.html:
- 11:35 AM Changeset in webkit [286602] by
-
- 8 edits in trunk/Source/WebKit
Reload web views when toggling the captive portal mode at system level
https://bugs.webkit.org/show_bug.cgi?id=233900
Reviewed by Brent Fulgham.
Reload web views when toggling the captive portal mode at system level, so that the views end up
being backed by WebProcesses with the proper captive portal mode.
- UIProcess/Cocoa/WebProcessPoolCocoa.mm:
(WebKit::cachedCaptivePortalModeEnabledGlobally):
(WebKit::WebProcessPool::captivePortalModeStateChanged):
(WebKit::captivePortalModeEnabledBySystem):
(WebKit::WebProcessPool::notifyPreferencesChanged):
- UIProcess/WebProcessPool.h:
- 11:33 AM Changeset in webkit [286601] by
-
- 29 edits1 add in trunk
Fetch and remove file system data via WKWebsiteDataStore
https://bugs.webkit.org/show_bug.cgi?id=233567
<rdar://problem/86029185>
Reviewed by Youenn Fablet.
Source/WebCore:
- Modules/filesystemaccess/FileSystemStorageConnection.h:
Source/WebKit:
Introduce a new WebsiteDataType value FileSystem for FileSystemAccess data. Network process now can fetch and
delete this type of data when fetching and deleteing website data (if FileSystem type is included in target
types).
To track origins that have FileSystem data, this patch introduces a new file named origin in the origin's
directory. This file will be created when OriginStorageManager is created.
To delete existing FileSystem data, network process finds origins that are requested to be deleted and have data
on disk, closes active access handles, and deletes the files. The origin file mentioned above will be deleted if
there is no other file left in the same directory, and empty directories will be deleted.
New API tests: FileSystemAccess.FetchAndRemoveData
FileSystemAccess.RemoveDataByModificationTime
FileSystemAccess.FetchDataForThirdParty
- CMakeLists.txt:
- DerivedSources-input.xcfilelist:
- DerivedSources-output.xcfilelist:
- DerivedSources.make:
- NetworkProcess/Classifier/WebResourceLoadStatisticsStore.cpp:
(WebKit::WebResourceLoadStatisticsStore::monitoredDataTypes):
- NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::fetchWebsiteData):
(WebKit::NetworkProcess::deleteWebsiteData):
(WebKit::NetworkProcess::deleteWebsiteDataForOrigins):
(WebKit::NetworkProcess::deleteAndRestrictWebsiteDataForRegistrableDomains):
(WebKit::NetworkProcess::registrableDomainsWithWebsiteData):
- NetworkProcess/storage/FileSystemStorageHandle.h:
(WebKit::FileSystemStorageHandle::activeSyncAccessHandle const):
- NetworkProcess/storage/FileSystemStorageManager.cpp:
(WebKit::FileSystemStorageManager::~FileSystemStorageManager):
(WebKit::FileSystemStorageManager::close):
- NetworkProcess/storage/FileSystemStorageManager.h:
- NetworkProcess/storage/NetworkStorageManager.cpp:
(WebKit::readOriginFromFile):
(WebKit::writeOriginToFileIfNecessary):
(WebKit::deleteOriginFileIfNecessary):
(WebKit::originDirectoryPath):
(WebKit::originFilePath):
(WebKit::NetworkStorageManager::localOriginStorageManager):
(WebKit::NetworkStorageManager::removeOriginStorageManagerIfPossible):
(WebKit::NetworkStorageManager::persist):
(WebKit::NetworkStorageManager::clearStorageForTesting): Only reset persisted state here as our test bot can run
tests in parallel. If one worker finishes a test and asks to clear storage, while another worker is running a
filesystem test; the test may fail as data is gone. (The workers are using the same network process.)
(WebKit::toWebsiteDataType):
(WebKit::NetworkStorageManager::forEachOriginDirectory):
(WebKit::NetworkStorageManager::fetchDataFromDisk):
(WebKit::NetworkStorageManager::fetchData):
(WebKit::NetworkStorageManager::deleteDataOnDisk):
(WebKit::NetworkStorageManager::deleteData):
(WebKit::NetworkStorageManager::deleteDataModifiedSince):
(WebKit::NetworkStorageManager::deleteDataForRegistrableDomains):
(WebKit::originPath): Deleted.
- NetworkProcess/storage/NetworkStorageManager.h:
- NetworkProcess/storage/OriginStorageManager.cpp:
(WebKit::OriginStorageManager::StorageBucket::toStorageIdentifier):
(WebKit::OriginStorageManager::StorageBucket::typeStoragePath const):
(WebKit::OriginStorageManager::StorageBucket::fileSystemStorageManager):
(WebKit::OriginStorageManager::StorageBucket::isActive):
(WebKit::OriginStorageManager::StorageBucket::deleteData):
(WebKit::OriginStorageManager::StorageBucket::deleteFileSystemStorageData):
(WebKit::OriginStorageManager::OriginStorageManager):
(WebKit::OriginStorageManager::fileSystemStorageManager):
(WebKit::OriginStorageManager::isActive):
(WebKit::OriginStorageManager::deleteData):
(WebKit::OriginStorageManager::setPersisted):
(WebKit::OriginStorageManager::persist): Deleted.
- NetworkProcess/storage/OriginStorageManager.h:
- Shared/WebsiteData/WebsiteData.cpp:
(WebKit::WebsiteData::ownerProcess):
- Shared/WebsiteData/WebsiteDataType.h:
- UIProcess/API/Cocoa/WKWebsiteDataRecord.mm:
(dataTypesToString):
- UIProcess/API/Cocoa/WKWebsiteDataRecordInternal.h:
(WebKit::toWebsiteDataType):
(WebKit::toWKWebsiteDataTypes):
- UIProcess/API/Cocoa/WKWebsiteDataRecordPrivate.h:
- UIProcess/API/Cocoa/WKWebsiteDataStore.mm:
(+[WKWebsiteDataStore _allWebsiteDataTypesIncludingPrivate]):
- WebKit.xcodeproj/project.pbxproj:
- WebProcess/Network/NetworkProcessConnection.cpp:
(WebKit::NetworkProcessConnection::didReceiveMessage):
- WebProcess/WebCoreSupport/WebFileSystemStorageConnection.messages.in: Added.
Source/WTF:
- wtf/FileSystem.cpp:
(WTF::FileSystemImpl::readEntireFile): Read whole file content into a Vector.
(WTF::FileSystemImpl::deleteAllFilesModifiedSince): Recursively delete files and folders modified after
specified time in a directory.
- wtf/FileSystem.h:
Tools:
- TestWebKitAPI/Tests/WebKitCocoa/FileSystemAccess.mm:
- 10:25 AM Changeset in webkit [286600] by
-
- 3 edits in trunk/Tools
[reporelaypy] Add implementation of commits.webkit.org (Follow-up fix)
https://bugs.webkit.org/show_bug.cgi?id=233734
<rdar://problem/85945101>
Unreviewed follow-up fix.
- Scripts/libraries/reporelaypy/reporelaypy/init.py: Bump version, add sortedcontainers dependency.
- Scripts/libraries/reporelaypy/setup.py: Bump version.
- 10:20 AM Changeset in webkit [286599] by
-
- 3 edits2 adds in trunk
Assertion after removing stylesheet with loading @import rule
https://bugs.webkit.org/show_bug.cgi?id=233928
Reviewed by Alan Bujtas.
Source/WebCore:
Tests: fast/css/import-and-remove-assert.html
- dom/InlineStyleSheetOwner.cpp:
(WebCore::InlineStyleSheetOwner::removedFromDocument):
Ensure we notify Style::Scope
LayoutTests:
- fast/css/import-and-remove-assert-expected.txt: Added.
- fast/css/import-and-remove-assert.html: Added.
- 9:49 AM Changeset in webkit [286598] by
-
- 11 edits in trunk/Source/WebCore
Use more specific keys for pseudo-class invalidation
https://bugs.webkit.org/show_bug.cgi?id=233883
Reviewed by Simon Fraser.
Currently pseudo-class invalidation is keyed with pseudo-class type only. If we have rule like
.foo:hover { ... }
we end up considering this rule for every element whenever :hover state changes, whether the element has class 'foo' or not.
We can improve this by keying pseudo-class invalidation more narrowly with type/class, type/id or type/tag pairs.
- css/CSSSelector.cpp:
(WebCore::CSSSelector::CSSSelector):
(WebCore::CSSSelector::firstInCompound const):
Add a function to find the start of a compound selector.
- css/CSSSelector.h:
(WebCore::CSSSelector::tagHistory const):
(WebCore::CSSSelector::isFirstInTagHistory const):
(WebCore::CSSSelector::setNotFirstInTagHistory):
Add isFirstInTagHistory bit, similar to the isLastInTagHistory bit, to enable firstInCompound.
(WebCore::CSSSelector::CSSSelector):
- css/CSSSelectorList.cpp:
(WebCore::CSSSelectorList::CSSSelectorList):
Set the bit.
- style/PseudoClassChangeInvalidation.cpp:
(WebCore::Style::makePseudoClassInvalidationKeys):
Collect the id, tag and classes from the element and make keys out of them.
(WebCore::Style::PseudoClassChangeInvalidation::computeInvalidation):
(WebCore::Style::PseudoClassChangeInvalidation::collectRuleSets):
Use the keys to look up for matching invalidation rulesets.
- style/PseudoClassChangeInvalidation.h:
- style/RuleFeature.cpp:
(WebCore::Style::RuleFeatureSet::recursivelyCollectFeaturesFromSelector):
(WebCore::Style::makePseudoClassInvalidationKey):
Make a key out of a selector.
Search the compound for id, classes or tag.
(WebCore::Style::RuleFeatureSet::collectFeatures):
(WebCore::Style::RuleFeatureSet::add):
(WebCore::Style::RuleFeatureSet::clear):
- style/RuleFeature.h:
- style/StyleScopeRuleSets.cpp:
(WebCore::Style::ScopeRuleSets::pseudoClassInvalidationRuleSets const):
- style/StyleScopeRuleSets.h:
- 8:56 AM Changeset in webkit [286597] by
-
- 15 edits1 add in trunk/Source/JavaScriptCore
Unreviewed, reverting r286502 and r286580.
https://bugs.webkit.org/show_bug.cgi?id=233930
Speedometer2 0.7% regression
Reverted changesets:
"Remove StructureIDBlob"
https://bugs.webkit.org/show_bug.cgi?id=233723
https://commits.webkit.org/r286502
"TypeInfo should be materializable from Structures as a single
load."
https://bugs.webkit.org/show_bug.cgi?id=233875
https://commits.webkit.org/r286580
- 6:38 AM WebKitGTK/GCCRequirement edited by
- Update versions (diff)
- 4:22 AM Changeset in webkit [286596] by
-
- 64 edits1 copy1 move1 delete in trunk
Cocoa WebGL should support UI side compositing
https://bugs.webkit.org/show_bug.cgi?id=231009
<rdar://83437059>
Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2021-12-07
Reviewed by Simon Fraser.
Source/WebCore:
Implement Cocoa UI-side compositing for WebGL.
Make CanvasRenderingContext draw via GraphicsLayerContentsDisplayDelegate
instead of PlatformLayer. On Cocoa the GraphicsLayer contents can be
three different objects: CGImage, CALayer or content in "backing store"
of the underlying compositor layer.
For UI-side compositing for WebGL, we want it to be the latter.
As such, the object CanvasRenderingContext draws to cannot be a platform
layer (CALayer). So conceptually, WebGL does not draw into a platform
layer, it draws into backing store that can be put to (possibly many)
platform layers.
Add GraphicsLayerContentsDisplayDelegate interface, which can be
used to run client specific code during compositor layer contents update
phase (i.e. layer display phase).
WebGL will use new overloads of PlatformCALayer::setContents to set the
contents during delegated display. The contents is IOSurface for
in-process mode and MachSendRight of IOSurface in GPUP mode.
The IOSurface is set as the contents of the WebSimpleLayer instead
of the running the draw via display().
The MachSendRight is set as the contents of PlatformCALayerRemote
and be serialized to the UI process.
For non-Cocoa ports, add a simple GraphicsLayerContentsDisplayDelegate
that returns the platform layer to the GraphicsLayer inside the compositor.
No new tests, a refactor.
- Headers.cmake:
- PlatformMac.cmake:
- Sources.txt:
- SourcesCocoa.txt:
- WebCore.order:
- WebCore.xcodeproj/project.pbxproj:
- html/canvas/CanvasRenderingContext.cpp:
(WebCore::CanvasRenderingContext::layerContentsDisplayDelegate):
- html/canvas/CanvasRenderingContext.h:
(WebCore::CanvasRenderingContext::platformLayer const): Deleted.
- html/canvas/PlaceholderRenderingContext.cpp:
(WebCore::PlaceholderRenderingContext::layerContentsDisplayDelegate):
(WebCore::PlaceholderRenderingContext::platformLayer const): Deleted.
- html/canvas/PlaceholderRenderingContext.h:
- html/canvas/WebGLRenderingContextBase.cpp:
(WebCore::WebGLRenderingContextBase::layerContentsDisplayDelegate):
(WebCore::WebGLRenderingContextBase::platformLayer const): Deleted.
- html/canvas/WebGLRenderingContextBase.h:
- platform/graphics/GraphicsContextGL.h:
- platform/graphics/GraphicsLayer.cpp:
(WebCore::GraphicsLayer::setContentsDisplayDelegate):
- platform/graphics/GraphicsLayer.h:
- platform/graphics/GraphicsLayerContentsDisplayDelegate.cpp: Added.
(WebCore::GraphicsLayerContentsDisplayDelegate::prepareToDelegateDisplay):
(WebCore::GraphicsLayerContentsDisplayDelegate::orientation const):
- platform/graphics/GraphicsLayerContentsDisplayDelegate.h: Added.
- platform/graphics/ImageBufferPipe.h:
- platform/graphics/ca/GraphicsLayerCA.cpp:
(WebCore::GraphicsLayerCA::setContentsDisplayDelegate):
(WebCore::GraphicsLayerCA::layerDisplay):
(WebCore::GraphicsLayerCA::updateContentsPlatformLayer):
- platform/graphics/ca/GraphicsLayerCA.h:
- platform/graphics/ca/PlatformCALayer.h:
- platform/graphics/ca/PlatformCALayerClient.h:
(WebCore::PlatformCALayerClient::platformCALayerLayerDisplay):
- platform/graphics/ca/cocoa/PlatformCALayerCocoa.h:
- platform/graphics/ca/cocoa/PlatformCALayerCocoa.mm:
(WebCore::PlatformCALayerCocoa::layerTypeForPlatformLayer):
(WebCore::PlatformCALayerCocoa::PlatformCALayerCocoa):
(WebCore::PlatformCALayerCocoa::commonInit):
(WebCore::PlatformCALayerCocoa::setContents):
- platform/graphics/cocoa/GraphicsContextGLOpenGLCocoa.mm:
(WebCore::GraphicsContextGLOpenGL::displayBuffer):
(WebCore::GraphicsContextGLOpenGL::markDisplayBufferInUse):
(WebCore::GraphicsContextGLOpenGL::platformLayer const): Deleted.
- platform/graphics/cocoa/WebGLLayer.mm: Removed.
(-[WebGLLayer initWithDevicePixelRatio:contentsOpaque:]): Deleted.
(-[WebGLLayer setTransform:]): Deleted.
(-[WebGLLayer setAnchorPoint:]): Deleted.
(-[WebGLLayer display]): Deleted.
- platform/graphics/cocoa/WebProcessGraphicsContextGLOpenGLCocoa.mm:
- platform/graphics/cv/CVUtilities.mm:
- platform/graphics/mac/WebLayer.mm:
(-[WebSimpleLayer display]):
- platform/graphics/nicosia/NicosiaImageBufferPipe.cpp:
(Nicosia::WebCore::NicosiaImageBufferPipeSource::layerContentsDisplayDelegate):
(Nicosia::WebCore::NicosiaImageBufferPipe::layerContentsDisplayDelegate):
(Nicosia::NicosiaImageBufferPipeSource::NicosiaImageBufferPipeSource): Deleted.
(Nicosia::NicosiaImageBufferPipeSource::~NicosiaImageBufferPipeSource): Deleted.
(Nicosia::NicosiaImageBufferPipeSource::handle): Deleted.
(Nicosia::NicosiaImageBufferPipeSource::platformLayer const): Deleted.
(Nicosia::NicosiaImageBufferPipeSource::swapBuffersIfNeeded): Deleted.
(Nicosia::NicosiaImageBufferPipe::NicosiaImageBufferPipe): Deleted.
(Nicosia::NicosiaImageBufferPipe::source const): Deleted.
(Nicosia::NicosiaImageBufferPipe::platformLayer const): Deleted.
- platform/graphics/opengl/GraphicsContextGLOpenGL.h:
- platform/graphics/texmap/GraphicsContextGLTextureMapper.cpp:
(WebCore::GraphicsContextGLOpenGL::create):
- platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:
(WebCore::GraphicsLayerTextureMapper::setContentsDisplayDelegate):
- platform/graphics/texmap/GraphicsLayerTextureMapper.h:
- platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp:
(WebCore::CoordinatedGraphicsLayer::setContentsDisplayDelegate):
- platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.h:
- rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::updateConfiguration):
Source/WebKit:
Implement the capability to assign IOSurfaces
to PlatformCALayerRemote contents.
Make RemoteGraphicsContextGLProxyCocoa use the added
GraphicsLayerContentsDisplayDelegate.
- GPUProcess/graphics/GPUProcessGraphicsContextGL.h:
- GPUProcess/graphics/RemoteGraphicsContextGLCocoa.cpp:
(WebKit::RemoteGraphicsContextGLCocoa::prepareForDisplay):
- Shared/RemoteLayerTree/RemoteLayerBackingStore.h:
(WebKit::RemoteLayerBackingStore::hasFrontBuffer const):
- Shared/RemoteLayerTree/RemoteLayerBackingStore.mm:
(WebKit::RemoteLayerBackingStore::clearBackingStore):
(WebKit::RemoteLayerBackingStore::encode const):
(WebKit::RemoteLayerBackingStore::swapToValidFrontBuffer):
(WebKit::RemoteLayerBackingStore::setContents):
(WebKit::RemoteLayerBackingStore::display):
Change the contract of what RemoteLayerBackingStore serializes to
the transaction. Before, it serialized the front buffer.
After, it serializes the m_bufferHandle.
The buffer handle is produced by display() phase either by
delegated display setting the contents or drawing to
front buffer and then assigning the front buffer handle.
- Shared/RemoteLayerTree/RemoteLayerTreeTransaction.mm:
(WebKit::RemoteLayerTreeTransaction::description const):
- UIProcess/RemoteLayerTree/RemoteLayerTreeHost.mm:
(WebKit::RemoteLayerTreeHost::makeNode):
- UIProcess/RemoteLayerTree/ios/RemoteLayerTreeHostIOS.mm:
(WebKit::RemoteLayerTreeHost::makeNode):
- WebKit.xcodeproj/project.pbxproj:
- WebProcess/GPU/graphics/cocoa/RemoteGraphicsContextGLProxyCocoa.mm:
(WebKit::RemoteGraphicsContextGLProxy::create):
- WebProcess/GPU/graphics/wc/RemoteGraphicsContextGLProxyWC.cpp:
(WebKit::RemoteGraphicsContextGLProxy::create): Deleted.
- WebProcess/WebPage/RemoteLayerTree/PlatformCALayerRemote.cpp:
(WebKit::PlatformCALayerRemote::recursiveBuildTransaction):
(WebKit::PlatformCALayerRemote::setContents):
- WebProcess/WebPage/RemoteLayerTree/PlatformCALayerRemote.h:
- WebProcess/WebPage/RemoteLayerTree/PlatformCALayerRemoteCustom.h:
- WebProcess/WebPage/RemoteLayerTree/PlatformCALayerRemoteCustom.mm:
(WebKit::PlatformCALayerRemoteCustom::PlatformCALayerRemoteCustom):
(WebKit::PlatformCALayerRemoteCustom::clone const):
(WebKit::PlatformCALayerRemoteCustom::setNeedsDisplayInRect):
(WebKit::PlatformCALayerRemoteCustom::setNeedsDisplay):
- WebProcess/WebPage/wc/GraphicsLayerWC.cpp:
(WebKit::GraphicsLayerWC::setContentsDisplayDelegate):
Tools:
- TestWebKitAPI/Tests/WebCore/cocoa/TestGraphicsContextGLOpenGLCocoa.mm:
Add a dummy override of the new member function layerContentsDisplayDelegate.
- 3:36 AM Changeset in webkit [286595] by
-
- 1 edit1 add in trunk/PerformanceTests
[Performance test][css-contain] Add test large-grid.html
https://bugs.webkit.org/show_bug.cgi?id=233628
Reviewed by Rob Buis.
This test large-grid.html is imported from Chromium, and we change it a little bit.
This case tests the performance of getting gridContainer.offsetHeight which is the parent of
a large grid withcontain: strict
. The performance is improved when enable CSS contain,
because offsetHeight returns the value directly if the element doesn't need relayout, see
Document::updateLayoutIfDimensionsOutOfDate
.contain: strict
sets a relayout boundary to
the large grid, so when its subtree changes, the container of the large grid doesn't need
relayout.
- Layout/large-grid.html: Added.
- 2:46 AM Changeset in webkit [286594] by
-
- 2 edits in trunk/Source/WebGPU
[WebGPU] Fix MacCatalyst build
https://bugs.webkit.org/show_bug.cgi?id=233920
Unreviewed.
Taken from JavaScriptCore.xcodeproj.
- Configurations/WebGPU.xcconfig:
- 2:20 AM Changeset in webkit [286593] by
-
- 6 edits in trunk
[css-flexbox] Account for captions when flexing tables with specified sizes
https://bugs.webkit.org/show_bug.cgi?id=233814
Reviewed by Darin Adler.
Source/WebCore:
Flexing tables is complex because of the specifics of the table layout algorithms. There are
two interrelated issues that were causing some failures in flexbox WPT tests.
The first one is that tables interpret overriding sizes (flexed sizes) as the sizes of rows + captions.
However the specified height of a table only accounts for the heights of the rows, not the captions. That's
why when setting the flexed height of a table we must add up the specified height of the table and the height
of the captions. The table algorithm will properly substract the captions' size in order to compute the
available height for rows.
The second issue is that the table layout algorithm adds the size of the bottom border at the very end
of its execution after performing all the computations and it does it unconditionally. The thing is that
the flexbox code already takes into account the borders and paddings so we basically have to substract that
border when setting the height of the table, because the table layout will add it later.
- rendering/RenderFlexibleBox.cpp:
(WebCore::RenderFlexibleBox::computeMainAxisExtentForChild):
- rendering/RenderTable.cpp:
(WebCore::RenderTable::computeCaptionsLogicalHeight const): New method refactored from current code.
(WebCore::RenderTable::layout):
- rendering/RenderTable.h: Expose computeCaptionsLogicalHeight.
LayoutTests:
- TestExpectations: Unskipped two tests that are now passing
- 2:01 AM Changeset in webkit [286592] by
-
- 3 edits in trunk/Source/JavaScriptCore
[RISCV64] Add more MacroAssemblerRISCV64 helper infrastructure
https://bugs.webkit.org/show_bug.cgi?id=233805
Patch by Zan Dobersek <zdobersek@igalia.com> on 2021-12-07
Reviewed by Yusuke Suzuki.
Introduce RISCV64Assembler::ImmediateLoader, a helper class that
generates the operations necessary for loading any immediate value into
some register. This can be as simple as using ADDI to load 12-bit values
or a combination of LUI, ADDI and possibly additional combinations of
LSHIFT and ADDI instructions. There's also a placeholder mode which
generates no-ops for unused operation slots, in order to enable
future patching and repatching for other immediate values.
MacroAssemblerRISCV64::Imm is introduced as a private helper struct that
groups together validity and construction operations for the different
immediate types implemented in the RISCV64Instructions namespace.
In MacroAssemblerRISCV64, resolveAddress() overloads are provided to
help generate most optimal address loading sequencing. RISC-V addressing
mode utilizes a base register and a 12-bit signed offset. When needed,
additional computation is done on the address object's parameters and
stored in the destination register through which the load can then be
performed.
Helper TempRegister and LazyTempRegister structs are added to the
MacroAssemblerRISCV64 class, along with the respective temps() and
lazyTemp() methods. temps() returns the TempRegister object, with the
template parameters defining which of the two scratch register types
should be allowed for use through this object. Release-time assert
on the m_allowScratchRegister value is done at the point of calling
temps(). lazyTemp() only handles one scratch register, and the assert
is done only when the register is actually used, and not just reserved
for use. This enables simpler implementations that better handle both
modes of scratch register usage (allowed or disallowed).
To get things rolling, the first set of MacroAssemblerRISCV64 methods
is implemented. Addition, subtraction and multiplication definitions
are provided, with the templated no-op declarations removed.
- assembler/MacroAssemblerRISCV64.h:
(JSC::MacroAssemblerRISCV64::TempRegister::data):
(JSC::MacroAssemblerRISCV64::TempRegister::memory):
(JSC::MacroAssemblerRISCV64::LazyTempRegister::LazyTempRegister):
(JSC::MacroAssemblerRISCV64::LazyTempRegister::operator RegisterID):
(JSC::MacroAssemblerRISCV64::temps):
(JSC::MacroAssemblerRISCV64::lazyTemp):
(JSC::MacroAssemblerRISCV64::add32):
(JSC::MacroAssemblerRISCV64::add64):
(JSC::MacroAssemblerRISCV64::sub32):
(JSC::MacroAssemblerRISCV64::sub64):
(JSC::MacroAssemblerRISCV64::mul32):
(JSC::MacroAssemblerRISCV64::mul64):
(JSC::MacroAssemblerRISCV64::Imm::isValid):
(JSC::MacroAssemblerRISCV64::Imm::I):
(JSC::MacroAssemblerRISCV64::Imm::S):
(JSC::MacroAssemblerRISCV64::Imm::B):
(JSC::MacroAssemblerRISCV64::Imm::U):
(JSC::MacroAssemblerRISCV64::Imm::J):
(JSC::MacroAssemblerRISCV64::resolveAddress):
- assembler/RISCV64Assembler.h:
(JSC::RISCV64Assembler::ImmediateLoader::ImmediateLoader):
(JSC::RISCV64Assembler::ImmediateLoader::moveInto):
- 12:27 AM Changeset in webkit [286591] by
-
- 14 edits in trunk
perspective() <= 1px should be clamped to 1px
https://bugs.webkit.org/show_bug.cgi?id=232619
<rdar://problem/85197362>
Reviewed by Simon Fraser.
LayoutTests/imported/w3c:
- web-platform-tests/css/css-transforms/animation/transform-interpolation-verify-reftests-expected.txt: Update to show newly passing subtests.
Source/WebCore:
No new tests. This is covered by the newly passing WPT tests
in this change.
When the CSS 3D transform interoperability experimental feature is turned on,
round perspectives that are < 1 pixel to 1 pixel. This behavior is described
in the specification, but breaks backward compatibility. The reasoning provided
by the specification is:
As very small <length> values can produce bizarre rendering results and
stress the numerical accuracy of transform calculations, values less than
1px must be treated as 1px for rendering purposes.
- platform/graphics/transforms/PerspectiveTransformOperation.h: When getting
the floating point perspective value, round to 1px.
- rendering/RenderLayer.cpp:
(WebCore::RenderLayer::perspectiveTransform const): Use usedPerspective from
RenderSTyle.
- rendering/RenderObject.cpp:
(WebCore::RenderObject::getTransformFromContainer const): Ditto.
- rendering/style/RenderStyle.cpp:
(WebCore::RenderStyle::usedPerspective const): Added this method which rounds
to 1px.
- rendering/style/RenderStyle.h:
LayoutTests:
- TestExpectations: Mark tests as passing.
- transforms/3d/general/3dtransform-values.html:
- transforms/3d/general/prefixed-3dtransform-values.html:
- transforms/3d/general/3dtransform-values-expected.txt:
- transforms/3d/general/prefixed-3dtransform-values-expected.txt:
Dec 6, 2021:
- 11:30 PM Changeset in webkit [286590] by
-
- 7 edits in trunk/Source/WebKit
[iOS] Remove mach service extensions for the WebContent process
https://bugs.webkit.org/show_bug.cgi?id=232952
<rdar://problem/85259753>
Reviewed by Brent Fulgham.
Remove mach service extensions for the WebContent process, which we think are no longer needed, based on local testing.
- Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb.in:
- Shared/WebProcessCreationParameters.cpp:
(WebKit::WebProcessCreationParameters::encode const):
(WebKit::WebProcessCreationParameters::decode):
- Shared/WebProcessCreationParameters.h:
- UIProcess/Cocoa/WebProcessPoolCocoa.mm:
(WebKit::WebProcessPool::platformInitializeWebProcess):
(WebKit::nonBrowserServices): Deleted.
- UIProcess/WebPageProxy.cpp:
(WebKit::attachmentElementServices):
- WebProcess/cocoa/WebProcessCocoa.mm:
(WebKit::WebProcess::platformInitializeWebProcess):
- 11:19 PM Changeset in webkit [286589] by
-
- 56 edits in trunk
[GPU Process] [Filters] Make FilterEffect::externalRepresentation() and its overridable functions work iteratively
https://bugs.webkit.org/show_bug.cgi?id=233893
Reviewed by Cameron McCormack.
Source/WebCore:
This is a step towards removing the inputEffect() from FilterEffect.
-- The enum FliterEffect::RepresentationType is replaced by
FilterRepresentation.
-- CSSFilter calls its functions from left to right to dump their
externalRepresentation.
-- SVGFilter uses its expression to dump its graph of FilterEffects.
-- Since SourceAlpha is a built-in effect it does not need to dump
SourceGraphic as its input.
- platform/graphics/filters/FEBlend.cpp:
(WebCore::FEBlend::externalRepresentation const):
- platform/graphics/filters/FEBlend.h:
- platform/graphics/filters/FEColorMatrix.cpp:
(WebCore::FEColorMatrix::externalRepresentation const):
- platform/graphics/filters/FEColorMatrix.h:
- platform/graphics/filters/FEComponentTransfer.cpp:
(WebCore::FEComponentTransfer::externalRepresentation const):
- platform/graphics/filters/FEComponentTransfer.h:
- platform/graphics/filters/FEComposite.cpp:
(WebCore::FEComposite::externalRepresentation const):
- platform/graphics/filters/FEComposite.h:
- platform/graphics/filters/FEConvolveMatrix.cpp:
(WebCore::FEConvolveMatrix::externalRepresentation const):
- platform/graphics/filters/FEConvolveMatrix.h:
- platform/graphics/filters/FEDiffuseLighting.cpp:
(WebCore::FEDiffuseLighting::externalRepresentation const):
- platform/graphics/filters/FEDiffuseLighting.h:
- platform/graphics/filters/FEDisplacementMap.cpp:
(WebCore::FEDisplacementMap::externalRepresentation const):
- platform/graphics/filters/FEDisplacementMap.h:
- platform/graphics/filters/FEDropShadow.cpp:
(WebCore::FEDropShadow::externalRepresentation const):
- platform/graphics/filters/FEDropShadow.h:
- platform/graphics/filters/FEFlood.cpp:
(WebCore::FEFlood::externalRepresentation const):
- platform/graphics/filters/FEFlood.h:
- platform/graphics/filters/FEGaussianBlur.cpp:
(WebCore::FEGaussianBlur::externalRepresentation const):
- platform/graphics/filters/FEGaussianBlur.h:
- platform/graphics/filters/FEMerge.cpp:
(WebCore::FEMerge::externalRepresentation const):
- platform/graphics/filters/FEMerge.h:
- platform/graphics/filters/FEMorphology.cpp:
(WebCore::FEMorphology::externalRepresentation const):
- platform/graphics/filters/FEMorphology.h:
- platform/graphics/filters/FEOffset.cpp:
(WebCore::FEOffset::externalRepresentation const):
- platform/graphics/filters/FEOffset.h:
- platform/graphics/filters/FESpecularLighting.cpp:
(WebCore::FESpecularLighting::externalRepresentation const):
- platform/graphics/filters/FESpecularLighting.h:
- platform/graphics/filters/FETile.cpp:
(WebCore::FETile::externalRepresentation const):
- platform/graphics/filters/FETile.h:
- platform/graphics/filters/FETurbulence.cpp:
(WebCore::FETurbulence::externalRepresentation const):
- platform/graphics/filters/FETurbulence.h:
- platform/graphics/filters/Filter.h:
- platform/graphics/filters/FilterEffect.cpp:
(WebCore::FilterEffect::externalRepresentation const):
(WebCore::operator<<):
- platform/graphics/filters/FilterEffect.h:
- platform/graphics/filters/FilterFunction.h:
- platform/graphics/filters/SourceAlpha.cpp:
(WebCore::SourceAlpha::externalRepresentation const):
- platform/graphics/filters/SourceAlpha.h:
- platform/graphics/filters/SourceGraphic.cpp:
(WebCore::SourceGraphic::externalRepresentation const):
- platform/graphics/filters/SourceGraphic.h:
- rendering/CSSFilter.cpp:
(WebCore::CSSFilter::externalRepresentation const):
- rendering/CSSFilter.h:
- rendering/svg/SVGRenderTreeAsText.cpp:
(WebCore::writeSVGResourceContainer):
- svg/graphics/filters/SVGFEImage.cpp:
(WebCore::FEImage::externalRepresentation const):
- svg/graphics/filters/SVGFEImage.h:
- svg/graphics/filters/SVGFilter.cpp:
(WebCore::SVGFilter::externalRepresentation const):
- svg/graphics/filters/SVGFilter.h:
- svg/graphics/filters/SVGFilterBuilder.cpp:
(WebCore::effectGeometryFlagsForElement):
(WebCore::SVGFilterBuilder::buildFilterEffects):
(WebCore::SVGFilterBuilder::buildEffectExpression const):
(WebCore::SVGFilterBuilder::buildExpression const):
(WebCore::boundarySetFlagsForElement): Deleted.
- svg/graphics/filters/SVGFilterBuilder.h:
- svg/graphics/filters/SVGFilterExpression.h:
LayoutTests:
Add missing closing quotations in the expected results of some of the
filter layout tests.
- svg/filters/feDropShadow-expected.txt:
- svg/filters/feDropShadow-subregion-expected.txt:
- svg/filters/feDropShadow-zero-deviation-expected.txt:
- svg/repaint/filter-child-repaint-expected.txt:
- 10:20 PM Changeset in webkit [286588] by
-
- 7 edits in trunk/Source
[Cocoa] Web Inspector: Unify Grid overlay drawing code
https://bugs.webkit.org/show_bug.cgi?id=233773
Reviewed by Devin Rousso.
Source/WebCore:
Expose InspectorOverlay::drawGridOverlay as a static method so that it can be used for iOS overlay drawing and
clean up other related drawing methods to be private static instead of instance methods or public static methods.
- inspector/InspectorOverlay.cpp:
(WebCore::drawLayoutHatching):
(WebCore::fontForLayoutLabel):
(WebCore::backgroundPathForLayoutLabel):
(WebCore::expectedSizeForLayoutLabel):
(WebCore::drawLayoutLabel):
(WebCore::InspectorOverlay::drawLayoutHatching): Deleted.
(WebCore::InspectorOverlay::fontForLayoutLabel): Deleted.
(WebCore::InspectorOverlay::backgroundPathForLayoutLabel): Deleted.
(WebCore::InspectorOverlay::drawLayoutLabel): Deleted.
- inspector/InspectorOverlay.h:
Source/WebKit:
Remove the (almost) 1-to-1 duplicated logic currently being used to turn Grid Overlays into a layer hierarchy
and instead use a graphics context to draw the overlays straight into the view to take advantage of the existing
drawing code we use for macOS in WebCore::InspectorOverlay. To accommodate this, we now correctly set the
content scale factor of the view itself (so that our drawing does not appear blurry) and set the frame of the
view equal to the current visible portion of the parent scroll view, which helps us to avoid having an
incredibly large graphics context to draw into (which we would if the view's frame was just set to match the
frame of the webpage's view). This frame will not always be the same size, such as when zooming in where less of
the frame is visible. Combined with the current content scale, this actually means that on zoom the effective
number of pixels that need to be drawn is consistent.
- UIProcess/Inspector/ios/WKInspectorHighlightView.h:
- UIProcess/Inspector/ios/WKInspectorHighlightView.mm:
(-[WKInspectorHighlightView initWithFrame:]):
- Explicitly set this view to be non-opaque so that page content can be seen below this view. This wasn't
previously necessary because the bounds of this view were a zero-rect, which meant the background was never
painted.
(-[WKInspectorHighlightView _removeAllLayers]):
(-[WKInspectorHighlightView _createLayers:]):
- Because the view's frame origin is now offset, we need to create the node highlight layers offset by the
negation of the frame's origin so that they still line up correctly with page content.
(-[WKInspectorHighlightView drawRect:]):
(-[WKInspectorHighlightView update:scale:frame:]):
(-[WKInspectorHighlightView _createGridOverlayLayers:scale:]): Deleted.
(createLayoutHatchingLayer): Deleted.
(createLayoutLabelLayer): Deleted.
(-[WKInspectorHighlightView _createGridOverlayLayer:scale:]): Deleted.
(-[WKInspectorHighlightView update:scale:]): Deleted.
- UIProcess/ios/WKContentView.mm:
(-[WKContentView _showInspectorHighlight:]):
- 9:52 PM Changeset in webkit [286587] by
-
- 8 edits in trunk/Source/bmalloc
[libpas] Clean up what the machine code looks like under LTO
https://bugs.webkit.org/show_bug.cgi?id=233909
Reviewed by Yusuke Suzuki.
During the very painful perf burndown of libpas that got it to be a progression (rather than a
regression) versus bmalloc, I found that certain key fast paths - like fastMalloc and fastFree - perform
better when they do not have a stack frame. For this to happen, they must only make tail calls.
Sadly, LTO was inlining a slow path into fastFree (i.e. pas_deallocate), and this slow path had an
assertion, and the call to pas_assertion_failed was not a tail call.
This fixes the problem comprehensively:
- We now compile pas_assertion_failed as a breakpoint, just like WebKit would do. This is better for code size and maybe it could sometimes be better for performance.
- The slow path that was getting inlined is now marked PAS_NEVER_INLINE.
- Inspecting the machine code, I found a couple other slow paths that were being inlined in a bunch of places, and also marked them NEVER_INLINE.
If my past experiences are right, this could be a tiny speed-up on malloc-heavy workloads.
- libpas/src/libpas/pas_lock.c:
(pas_lock_lock_slow):
- libpas/src/libpas/pas_lock.h:
- libpas/src/libpas/pas_monotonic_time.c:
(get_timebase_info_slow):
(get_timebase_info):
- libpas/src/libpas/pas_thread_local_cache.c:
(pas_thread_local_cache_append_deallocation_slow):
- libpas/src/libpas/pas_thread_local_cache.h:
- libpas/src/libpas/pas_utils.c:
- libpas/src/libpas/pas_utils.h:
(pas_assertion_failed):
(pas_assertion_failed_noreturn_silencer):
- 8:12 PM Changeset in webkit [286586] by
-
- 3 edits in trunk/LayoutTests
[GLIB] Small gardening
Unreviewed test gardening.
- platform/glib/TestExpectations:
- platform/wpe/TestExpectations:
- 7:40 PM Changeset in webkit [286585] by
-
- 3 edits in trunk/Source/WebKit
REGRESSION(r286535) [GTK] Fix clean builds after DerivedSources/WebKit2 move
https://bugs.webkit.org/show_bug.cgi?id=233881
Reviewed by Don Olmstead.
Build fix. Covered by existing tests
The previous approach of this patch created the links to the header
derived sources into the target webkit2/ folder, which in turn was a
link to <repo>/Source/WebKit/UIProcess/API/gtk. So it ended up
actually creating the links inside the Source directory.
This commit instead links a different webkit2/ folder from the
generated webkit folder for the WebKitGTK/WPE derived sources headers.
- PlatformGTK.cmake:
- PlatformWPE.cmake:
- 5:57 PM Changeset in webkit [286584] by
-
- 2 edits in trunk/LayoutTests
[GTK][WPE] Mathml asserts with invisible operators
https://bugs.webkit.org/show_bug.cgi?id=215217
Unreviewed test gardening.
Remove test failures from expectations as the assert was removed.
Patch by Arcady Goldmints-Orlov <Arcady Goldmints-Orlov> on 2021-12-06
- platform/glib/TestExpectations:
- 5:52 PM Changeset in webkit [286583] by
-
- 5 edits in trunk/LayoutTests
[GLIB] Update test expectations and baselines. Unreviewed test gardening.
https://bugs.webkit.org/show_bug.cgi?id=233898
Patch by Arcady Goldmints-Orlov <Arcady Goldmints-Orlov> on 2021-12-06
- platform/glib/TestExpectations:
- platform/gtk/TestExpectations:
- platform/gtk/imported/w3c/web-platform-tests/html/semantics/forms/constraints/form-validation-validity-valid-expected.txt:
- platform/gtk/imported/w3c/web-platform-tests/html/semantics/forms/constraints/form-validation-validity-valueMissing-expected.txt:
- 5:19 PM Changeset in webkit [286582] by
-
- 2 edits in trunk/Tools
Add WebCore::RegistrableDomain tests for duplicate sub domains
https://bugs.webkit.org/show_bug.cgi?id=233902
<rdar://problem/86130326>
Unreviewed expansion of the RegistrableDomain.MatchesURLs API test.
https://bugs.webkit.org/show_bug.cgi?id=233330 claims that duplicate sub domains
such as news.news.example.com causes WebKit's RegistrableDomain matching to fail
and treat same-site content as cross-site. This patch add tests of such duplicate
sub domains.
- TestWebKitAPI/Tests/WebCore/RegistrableDomain.cpp:
(TestWebKitAPI::TEST):
- 5:15 PM Changeset in webkit [286581] by
-
- 12 edits in trunk
<input type="time">'s range should be reversible
https://bugs.webkit.org/show_bug.cgi?id=233835
Reviewed by Darin Adler.
Source/WebCore:
<input type="time">'s range should be reversible when checking for overflow / underflow:
No new tests, rebaselined existing tests.
- html/InputType.cpp:
(WebCore::InputType::rangeUnderflow const):
(WebCore::InputType::rangeOverflow const):
- html/StepRange.cpp:
(WebCore::StepRange::StepRange):
- html/StepRange.h:
(WebCore::StepRange::isReversible const):
- html/TimeInputType.cpp:
(WebCore::TimeInputType::createStepRange const):
LayoutTests:
Rebaseline WPT tests that are now passing.
- platform/mac-wk2/imported/w3c/web-platform-tests/html/semantics/forms/constraints/form-validation-validity-rangeOverflow-expected.txt:
- platform/mac-wk2/imported/w3c/web-platform-tests/html/semantics/forms/constraints/form-validation-validity-rangeUnderflow-expected.txt:
- 5:13 PM Changeset in webkit [286580] by
-
- 6 edits in trunk/Source/JavaScriptCore
TypeInfo should be materializable from Structures as a single load.
https://bugs.webkit.org/show_bug.cgi?id=233875
Reviewed by Mark Lam.
This is mostly just the members of Structure and JSCell so that
JSType and InlineTypeFlags are at the end of the JSCell header.
- assembler/testmasm.cpp:
(JSC::testBranchIfType):
(JSC::testBranchIfNotType):
- ftl/FTLAbstractHeapRepository.cpp:
(JSC::FTL::AbstractHeapRepository::AbstractHeapRepository):
- runtime/JSCell.h:
- runtime/JSCellInlines.h:
(JSC::JSCell::JSCell):
- runtime/Structure.h:
(JSC::Structure::typeInfo const):
- 4:38 PM Changeset in webkit [286579] by
-
- 10 edits in trunk
webpushd/webpushtool debugging additions
https://bugs.webkit.org/show_bug.cgi?id=233864
Reviewed by Alex Christensen.
Source/WebKit:
Covered by API tests.
This patch:
- Teaches webpushtool the ability to wait for a reconnect after losing its connection
- Starts actually broadcasting meaningful debug messages from webpushd
- webpushd/AppBundleRequest.mm:
(WebPushD::AppBundleRequest::start):
(WebPushD::AppBundlePermissionsRequest::didCheckForExistingBundle):
(WebPushD::AppBundlePermissionsRequest::didCreateAppBundle):
(WebPushD::AppBundleDeletionRequest::didDeleteExistingBundleWithError):
- webpushd/PushClientConnection.h:
- webpushd/PushClientConnection.mm:
(WebPushD::ClientConnection::setDebugModeIsEnabled):
(WebPushD::ClientConnection::broadcastDebugMessage):
(WebPushD::ClientConnection::connectionClosed):
- webpushd/WebPushDaemon.mm:
(WebPushD::Daemon::connectionAdded):
- webpushd/webpushtool/WebPushToolConnection.h:
- webpushd/webpushtool/WebPushToolConnection.mm:
(WebPushTool::Connection::create):
(WebPushTool::Connection::Connection):
(WebPushTool::Connection::connectToService):
(WebPushTool::Connection::connectionDropped):
- webpushd/webpushtool/WebPushToolMain.mm:
(printUsageAndTerminate):
(main):
Tools:
- TestWebKitAPI/Tests/WebKitCocoa/WebPushDaemon.mm:
(TestWebKitAPI::TEST): Adapt to debug message changes.
- 4:36 PM Changeset in webkit [286578] by
-
- 14 edits1 add in trunk/Source/WebCore
[GPU Process] Make FilterEffect calculate the primitive subregion only when needed
https://bugs.webkit.org/show_bug.cgi?id=232705
rdar://85290142
Reviewed by Cameron McCormack.
In this patch:
- resultColorSpace() will return colorSpace() from a FilterImageVector instead of returning the resultColorSpace() of the FilterEffect.
- Filter::clampFilterRegionIfNeeded() will clamp the filterRegion() instead of clamping the maxEffectRect of the lastEffect() since all the primitiveSubregions and the imageRects have to clipped to the filterRegion().
- determineFilterPrimitiveSubregion() is replaced by calculatePrimitiveSubregion() which will calculate the primitiveSubregion from a FilterImageVector and an optional FilterEffectGeometry.
- Many of FilterEffects are made protected instead of having them public.
- SVGFilterExpression will be defined as a Vector of SVGFilterExpressionTerm which is a struct of FilterEffect and optional FilterEffectGeometry.
- SVGFilter will replace the members whose types are FilterEffectVector and FilterEffectGeometryMap with a single member of type SVGFilterExpression.
- Headers.cmake:
- WebCore.xcodeproj/project.pbxproj:
- platform/graphics/filters/FEDisplacementMap.cpp:
(WebCore::FEDisplacementMap::resultColorSpace const):
- platform/graphics/filters/FEDisplacementMap.h:
- platform/graphics/filters/Filter.cpp:
(WebCore::Filter::clampFilterRegionIfNeeded):
- platform/graphics/filters/Filter.h:
(WebCore::Filter::effectGeometry const): Deleted.
- platform/graphics/filters/FilterEffect.cpp:
(WebCore::FilterEffect::calculatePrimitiveSubregion const):
(WebCore::FilterEffect::apply):
(WebCore::FilterEffect::externalRepresentation const):
(WebCore::FilterEffect::determineFilterPrimitiveSubregion): Deleted.
- platform/graphics/filters/FilterEffect.h:
(WebCore::FilterEffect::resultColorSpace const):
(WebCore::FilterEffect::filterPrimitiveSubregion const): Deleted.
(WebCore::FilterEffect::setFilterPrimitiveSubregion): Deleted.
- platform/graphics/filters/FilterFunction.h:
(WebCore::FilterFunction::apply):
- svg/graphics/filters/SVGFilter.cpp:
(WebCore::SVGFilter::create):
(WebCore::SVGFilter::supportsCoreImageRendering const):
(WebCore::SVGFilter::lastEffect const):
(WebCore::SVGFilter::apply):
(WebCore::SVGFilter::clearResult):
(WebCore::SVGFilter::effectGeometry const): Deleted.
- svg/graphics/filters/SVGFilter.h:
- svg/graphics/filters/SVGFilterBuilder.cpp:
(WebCore::SVGFilterBuilder::effectGeometry const):
(WebCore::SVGFilterBuilder::buildEffectExpression const):
(WebCore::SVGFilterBuilder::buildExpression const):
(WebCore::buildEffectExpression): Deleted.
- svg/graphics/filters/SVGFilterBuilder.h:
(WebCore::SVGFilterBuilder::takeEffectGeometryMap): Deleted.
- svg/graphics/filters/SVGFilterExpression.h: Added.
- 4:36 PM Changeset in webkit [286577] by
-
- 2 edits in trunk/LayoutTests
[ iOS ] imported/w3c/web-platform-tests/content-security-policy/worker-src/service-* tests are consistently failing
https://bugs.webkit.org/show_bug.cgi?id=229875
Unreviewed test gardening.
- platform/ios-wk2/TestExpectations: Add DumpJSConsoleLogInStdErr to address consistent failures.
- 4:18 PM Changeset in webkit [286576] by
-
- 8 edits6 copies9 adds in trunk/Tools
[reporelaypy] Add implementation of commits.webkit.org
https://bugs.webkit.org/show_bug.cgi?id=233734
<rdar://problem/85945101>
Reviewed by Dewei Zhu.
As commits.webkit.org becomes more important to WebKit development, we need to apply
our normal robust testing and review to the code backing it.
- Tools/Scripts/libraries/reporelaypy/reporelaypy/init.py: Add entrypoint to library.
- Tools/Scripts/libraries/reporelaypy/reporelaypy/checkout.py: Added.
(Checkout): Abstraction managing local repository checkout.
- Tools/Scripts/libraries/reporelaypy/reporelaypy/checkoutroute.py: Added.
(Redirector): Generates redirects for certain SCM services.
(CheckoutRoute): http routes returning information based on a checkout.
- Tools/Scripts/libraries/reporelaypy/reporelaypy/database.py: Added.
(Database): A connection to a true Redis or TinyRedis database.
- Tools/Scripts/libraries/reporelaypy/reporelaypy/tests/checkout_unittest.py:
(CheckoutUnittest):
- Tools/Scripts/libraries/reporelaypy/reporelaypy/tests/checkoutroute_unittest.py: Added.
(RedirectorUnittest):
(CheckoutRouteUnittest):
- Tools/Scripts/libraries/reporelaypy/reporelaypy/tests/database_unittest.py: Added.
(DatabaseUnittest):
- Tools/Scripts/libraries/reporelaypy/reporelaypy/webserver.py: Copied from Tools/Scripts/libraries/webkitflaskpy/setup.py.
(health):
- Tools/Scripts/libraries/reporelaypy/run: Added.
- Tools/Scripts/libraries/reporelaypy/setup.py: Added.
- Tools/Scripts/libraries/resultsdbpy/resultsdbpy/init.py: Bump version.
- Tools/Scripts/libraries/resultsdbpy/resultsdbpy/flask_support/flask_testcase.py:
(FlaskTestCase.run_with_mock_webserver.decorator.real_method):
(FlaskRequestsResponse): Moved to webkitflaskpy.
- Tools/Scripts/libraries/webkitflaskpy/setup.py: Bump version, update library description.
- Tools/Scripts/libraries/webkitflaskpy/webkitflaskpy/init.py: Bump version.
- Tools/Scripts/libraries/webkitflaskpy/webkitflaskpy/mock_app.py: Added.
(mock_app): Setup a flask app for testing.
- Tools/Scripts/libraries/webkitflaskpy/webkitflaskpy/response.py: Added.
(Response): Move FlaskRequestsResponse to more generic location.
- Tools/Scripts/webkitpy/init.py: Include reporelaypy for testing.
- Tools/Scripts/webkitpy/test/main.py:
(main): Include reporelaypy for testing.
(Tester._run_tests): Ditto.
Canonical link: https://commits.webkit.org/244901@main
- 4:06 PM Changeset in webkit [286575] by
-
- 4 edits in branches/safari-612-branch
Unreviewed, fix the debug build.
- 3:37 PM Changeset in webkit [286574] by
-
- 2 edits in trunk/Source/WebKit
Regression(r286505) imported/w3c/web-platform-tests/html/cross-origin-opener-policy/javascript-url.https.html is a flaky crash
https://bugs.webkit.org/show_bug.cgi?id=233874
Reviewed by Darin Adler.
r286505 fixed ProvisionalPageProxy so that ProvisionalPageProxy::m_provisionalLoadURL gets properly initialized when the
ProvisionalPageProxy gets constructed *after* the provisional load has already started (COOP proces-swap case). One side
effect of this though is that ProvisionalPageProxy::cancel() no longer returns early and will try to notify the client
that the provisional load failed, dereferencing m_mainFrame in doing so. In the event where the main frame has not yet
been created in the new provisional process, this would do a null-dereference of m_mainFrame.
To address the issue, we now early return in ProvisionalPageProxy::cancel() if m_isProcessSwappingOnNavigationResponse
is true (i.e. The ProvisionalPageProxy was created after the provisional load had started). In such situations, we
don't want to ProvisionalPageProxy to be the one notifying the client of the provisional load failure anyway. The reason
is that there is still a provisional load going on in the committed process/page.
No new tests, covered by existing test that is flakily crashing.
- UIProcess/ProvisionalPageProxy.cpp:
(WebKit::ProvisionalPageProxy::cancel):
- 2:53 PM Changeset in webkit [286573] by
-
- 8 edits in trunk/Source/bmalloc
[libpas] Set pthread_setspecific with marker in TLS destructor to detect TLS is destroyed
https://bugs.webkit.org/show_bug.cgi?id=233851
Reviewed by Mark Lam.
TLS has lifetime problem that,
- TLS is destroyed
- The other TLS is destroyed, and the destructor is called
- The destructor touches (1)'s TLS, then revive TLS of (1) (e.g. libpas's thread local cache).
To handle these cases, pthread library (libc) repeatedly calls destructor PAS_THREAD_LOCAL_CACHE_DESTROYED times
so that we clean up revived TLS again.
By using this mechanism, we can emulate pthread_self_is_exiting_np so that we can avoid reviving TLS.
- When destroying TLS, we set a marker (PAS_THREAD_LOCAL_CACHE_DESTROYED in this case) in TLS.
- During the other destructor calls, we can detect that TLS is destroyed by checking pthread_getspecific(...) == PAS_THREAD_LOCAL_CACHE_DESTROYED.
- We repeatedly calls the destructor of TLS, but every time, we set PAS_THREAD_LOCAL_CACHE_DESTROYED. So after PAS_THREAD_LOCAL_CACHE_DESTROYED times, it is left, and we achieve the goal (1) offering the way to detect the destroyed TLS and (2) avoiding reviving of TLS.
This patch implements it when pthread_self_is_exiting_np does not exist.
- libpas/src/libpas/pas_segregated_page_inlines.h:
(pas_segregated_page_switch_lock_with_mode):
- libpas/src/libpas/pas_thread_local_cache.c:
(destructor):
(pas_thread_local_cache_create):
(pas_thread_local_cache_destroy):
(pas_thread_local_cache_get_local_allocator_slow):
(pas_thread_local_cache_for_all):
- libpas/src/libpas/pas_thread_local_cache.h:
(pas_thread_local_cache_try_get_impl):
(pas_thread_local_cache_try_get):
(pas_thread_local_cache_can_set):
(pas_thread_local_cache_set_impl):
(pas_thread_local_cache_set):
(pas_thread_local_cache_is_guaranteed_to_destruct): Deleted.
- libpas/src/libpas/pas_try_reallocate.h:
(pas_try_reallocate):
- libpas/src/libpas/pas_utils.h:
- libpas/src/test/IsoHeapPageSharingTests.cpp:
(std::addAllTests):
- libpas/src/test/IsoHeapPartialAndBaselineTests.cpp:
(addIsoHeapPartialAndBaselineTests):
- 2:50 PM Changeset in webkit [286572] by
-
- 25 edits in trunk/Source/JavaScriptCore
Remove unneeded virtual allocator methods from Subspace.
https://bugs.webkit.org/show_bug.cgi?id=233891
rdar://86117970
Reviewed by Yusuke Suzuki.
Since the virtual allocate() and allocateFor() methods are now deleted, we can
also rename the inline allocateNonVirtual() and allocatorForNonVirtual() methods
to simply allocate() and allocateFor(). Similarly, rename
allocatorForNonVirtualConcurrently() to allocatorForConcurrently().
There are 2 places that still invokes the non-inline version of
CompleteSubspace::allocatorFor(). For this reason, we introduce a
CompleteSubsace::allocatorForNonInline() to keep the linkage the same. There's a
chance that the compiler/linker may already inline the method in 1 or both of
these places, but we'll offer allocatorForNonInline() to keep the code expressing
the same thing and let the compiler/linker decide whether to inline it or not just
as before.
This is purely a re-factoring patch. There are no behavior changes, except for
the removal of those 2 entries from the vtbls.
- bytecode/AccessCase.cpp:
(JSC::AccessCase::generateImpl):
- bytecode/ObjectAllocationProfileInlines.h:
(JSC::ObjectAllocationProfileBase<Derived>::initializeProfile):
- dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::emitAllocateRawObject):
- ftl/FTLLowerDFGToB3.cpp:
(JSC::FTL::DFG::LowerDFGToB3::compileMakeRope):
(JSC::FTL::DFG::LowerDFGToB3::compileCompareStrictEq):
- heap/CompleteSubspace.cpp:
(JSC::CompleteSubspace::allocatorForNonInline):
(JSC::CompleteSubspace::tryAllocateSlow):
(JSC::CompleteSubspace::allocatorFor): Deleted.
(JSC::CompleteSubspace::allocate): Deleted.
- heap/CompleteSubspace.h:
(JSC::CompleteSubspace::allocatorFor):
(JSC::CompleteSubspace::allocatorForNonVirtual): Deleted.
- heap/CompleteSubspaceInlines.h:
(JSC::CompleteSubspace::allocate):
(JSC::CompleteSubspace::allocateNonVirtual): Deleted.
- heap/IsoSubspace.cpp:
(JSC::IsoSubspace::allocatorFor): Deleted.
(JSC::IsoSubspace::allocate): Deleted.
- heap/IsoSubspace.h:
(JSC::IsoSubspace::allocatorFor):
(JSC::IsoSubspace::allocatorForNonVirtual): Deleted.
- heap/IsoSubspaceInlines.h:
(JSC::IsoSubspace::allocate):
(JSC::IsoSubspace::allocateNonVirtual): Deleted.
- heap/Subspace.h:
- jit/AssemblyHelpers.h:
(JSC::AssemblyHelpers::emitAllocateJSObjectWithKnownSize):
- runtime/ButterflyInlines.h:
(JSC::Butterfly::tryCreateUninitialized):
(JSC::Butterfly::createUninitialized):
(JSC::Butterfly::tryCreate):
(JSC::Butterfly::growArrayRight):
(JSC::Butterfly::reallocArrayRightIfPossible):
- runtime/DirectArguments.cpp:
(JSC::DirectArguments::overrideThings):
- runtime/GenericArgumentsInlines.h:
(JSC::GenericArguments<Type>::initModifiedArgumentsDescriptor):
- runtime/HashMapImpl.h:
(JSC::HashMapBuffer::create):
- runtime/JSArray.cpp:
(JSC::JSArray::tryCreateUninitializedRestricted):
- runtime/JSArray.h:
(JSC::JSArray::tryCreate):
- runtime/JSArrayBufferView.cpp:
(JSC::JSArrayBufferView::ConstructionContext::ConstructionContext):
- runtime/JSBigInt.cpp:
(JSC::JSBigInt::createWithLength):
- runtime/JSCellInlines.h:
(JSC::allocatorForConcurrently):
(JSC::tryAllocateCellHelper):
(JSC::allocatorForNonVirtualConcurrently): Deleted.
- runtime/JSPropertyNameEnumerator.cpp:
(JSC::JSPropertyNameEnumerator::create):
- runtime/ScopedArguments.cpp:
(JSC::ScopedArguments::createUninitialized):
- runtime/StructureChain.cpp:
(JSC::StructureChain::create):
- 2:24 PM Changeset in webkit [286571] by
-
- 1 copy in releases/WPE WebKit/webkit-2.34.2
WPE WebKit 2.34.2
- 2:23 PM Changeset in webkit [286570] by
-
- 4 edits in releases/WebKitGTK/webkit-2.34
Unreviewed. Update OptionsWPE.cmake and NEWS for the 2.34.2 release
.:
- Source/cmake/OptionsWPE.cmake: Bump version numbers.
Source/WebKit:
- wpe/NEWS: Add release notes for 2.34.2.
- 2:17 PM Changeset in webkit [286569] by
-
- 29 edits1 delete in trunk
REGRESSION (r286507): [macOS] Many file system access layout tests became flaky failures
https://bugs.webkit.org/show_bug.cgi?id=233892
Unreviewed, revert r286507.
Source/WebCore:
- Modules/filesystemaccess/FileSystemStorageConnection.h:
Source/WebKit:
- CMakeLists.txt:
- DerivedSources-input.xcfilelist:
- DerivedSources-output.xcfilelist:
- DerivedSources.make:
- NetworkProcess/Classifier/WebResourceLoadStatisticsStore.cpp:
(WebKit::WebResourceLoadStatisticsStore::monitoredDataTypes):
- NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::fetchWebsiteData):
(WebKit::NetworkProcess::deleteWebsiteData):
(WebKit::NetworkProcess::deleteWebsiteDataForOrigins):
(WebKit::NetworkProcess::deleteAndRestrictWebsiteDataForRegistrableDomains):
(WebKit::NetworkProcess::registrableDomainsWithWebsiteData):
- NetworkProcess/storage/FileSystemStorageHandle.h:
(WebKit::FileSystemStorageHandle::activeSyncAccessHandle const): Deleted.
- NetworkProcess/storage/FileSystemStorageManager.cpp:
(WebKit::FileSystemStorageManager::~FileSystemStorageManager):
(WebKit::FileSystemStorageManager::close): Deleted.
- NetworkProcess/storage/FileSystemStorageManager.h:
- NetworkProcess/storage/NetworkStorageManager.cpp:
(WebKit::originPath):
(WebKit::NetworkStorageManager::localOriginStorageManager):
(WebKit::readOriginFromFile): Deleted.
(WebKit::writeOriginToFileIfNecessary): Deleted.
(WebKit::deleteOriginFileIfNecessary): Deleted.
(WebKit::originDirectoryPath): Deleted.
(WebKit::originFilePath): Deleted.
(WebKit::NetworkStorageManager::removeOriginStorageManagerIfPossible): Deleted.
(WebKit::toWebsiteDataType): Deleted.
(WebKit::NetworkStorageManager::forEachOriginDirectory): Deleted.
(WebKit::NetworkStorageManager::fetchDataFromDisk): Deleted.
(WebKit::NetworkStorageManager::fetchData): Deleted.
(WebKit::NetworkStorageManager::deleteDataOnDisk): Deleted.
(WebKit::NetworkStorageManager::deleteData): Deleted.
(WebKit::NetworkStorageManager::deleteDataModifiedSince): Deleted.
(WebKit::NetworkStorageManager::deleteDataForRegistrableDomains): Deleted.
- NetworkProcess/storage/NetworkStorageManager.h:
- NetworkProcess/storage/OriginStorageManager.cpp:
(WebKit::OriginStorageManager::StorageBucket::typeStoragePath const):
(WebKit::OriginStorageManager::StorageBucket::fileSystemStorageManager):
(WebKit::OriginStorageManager::OriginStorageManager):
(WebKit::OriginStorageManager::StorageBucket::toStorageIdentifier): Deleted.
(WebKit::OriginStorageManager::StorageBucket::isActive): Deleted.
(WebKit::OriginStorageManager::StorageBucket::deleteData): Deleted.
(WebKit::OriginStorageManager::StorageBucket::deleteFileSystemStorageData): Deleted.
(WebKit::OriginStorageManager::isActive): Deleted.
(WebKit::OriginStorageManager::deleteData): Deleted.
- NetworkProcess/storage/OriginStorageManager.h:
- Shared/WebsiteData/WebsiteData.cpp:
(WebKit::WebsiteData::ownerProcess):
- Shared/WebsiteData/WebsiteDataType.h:
- UIProcess/API/Cocoa/WKWebsiteDataRecord.mm:
(dataTypesToString):
- UIProcess/API/Cocoa/WKWebsiteDataRecordInternal.h:
(WebKit::toWebsiteDataType):
(WebKit::toWKWebsiteDataTypes):
- UIProcess/API/Cocoa/WKWebsiteDataRecordPrivate.h:
- UIProcess/API/Cocoa/WKWebsiteDataStore.mm:
(+[WKWebsiteDataStore _allWebsiteDataTypesIncludingPrivate]):
- WebKit.xcodeproj/project.pbxproj:
- WebProcess/Network/NetworkProcessConnection.cpp:
(WebKit::NetworkProcessConnection::didReceiveMessage):
- WebProcess/WebCoreSupport/WebFileSystemStorageConnection.messages.in: Removed.
Source/WTF:
- wtf/FileSystem.cpp:
(WTF::FileSystemImpl::readEntireFile): Deleted.
(WTF::FileSystemImpl::deleteAllFilesModifiedSince): Deleted.
- wtf/FileSystem.h:
Tools:
- TestWebKitAPI/Tests/WebKitCocoa/FileSystemAccess.mm:
- 1:58 PM Changeset in webkit [286568] by
-
- 10 edits1 add in trunk
[CSS Color 5] Update color-mix() to support srgb-linear and alpha premultiplication
https://bugs.webkit.org/show_bug.cgi?id=233862
Reviewed by Cameron McCormack.
Source/WebCore:
- Updates color-mix() to support srgb-linear interpolation.
- Updates color-mix() to interpolate using alpha premultiplied colors.
- Moves interpolation normalization to ColorInterpolation.h so that it can be shared in the future. Adds AlphaPremulitplied parameter to ColorInterpolationMethod to allow specifying the behavior desired. Also adds encoding/decoding of ColorInterpolationMethod which will be needed shortly.
- Headers.cmake:
- WebCore.xcodeproj/project.pbxproj:
Add new files.
- css/CSSValueKeywords.in:
Add reference (commented out, since it is also defined above) for srgb-linear in the color-mix section.
- css/parser/CSSPropertyParserHelpers.cpp:
(WebCore::CSSPropertyParserHelpers::consumeColorInterpolationMethod):
Add support for parsing srgb-linear as a color-interpolation-method color space.
(WebCore::CSSPropertyParserHelpers::makeCanonicalColor):
(WebCore::CSSPropertyParserHelpers::makeCanonicalColor<HWBA<float>>):
(WebCore::CSSPropertyParserHelpers::makeCanonicalColor<HSLA<float>>):
With much of makeColorTypeByNormalizingComponentsAfterMix moving to ColorNormalization,
the CSS specific parts are still needed here, which just convert HWBA and HSLA colors
to SRGBA<uint8_t> to match parsing.
(WebCore::CSSPropertyParserHelpers::mixColorComponentsUsingColorInterpolationMethod):
Utilize new interpolateColorComponents<> function to do the interpolation.
(WebCore::CSSPropertyParserHelpers::normalizeHue): Deleted.
(WebCore::CSSPropertyParserHelpers::normalizeWhitenessBlackness): Deleted.
(WebCore::CSSPropertyParserHelpers::makeColorTypeByNormalizingComponentsAfterMix): Deleted.
(WebCore::CSSPropertyParserHelpers::makeColorTypeByNormalizingComponentsAfterMix<HWBA<float>>): Deleted.
(WebCore::CSSPropertyParserHelpers::makeColorTypeByNormalizingComponentsAfterMix<HSLA<float>>): Deleted.
(WebCore::CSSPropertyParserHelpers::makeColorTypeByNormalizingComponentsAfterMix<LCHA<float>>): Deleted.
(WebCore::CSSPropertyParserHelpers::makeColorTypeByNormalizingComponentsAfterMix<OKLCHA<float>>): Deleted.
Moved to ColorNormalization.h
- platform/graphics/ColorInterpolation.h:
(WebCore::preInterpolationNormalizationForComponent):
(WebCore::preInterpolationNormalization):
(WebCore::postInterpolationNormalizationForComponent):
(WebCore::postInterpolationNormalization):
(WebCore::interpolateColorComponents):
Move complete interpolation here from CSSPropertyParserHelpers and add support for optionally
interpolating using alpha premultiplied colors.
(WebCore::ColorInterpolationMethod::encode const):
(WebCore::ColorInterpolationMethod::decode):
Add encode/decode for ColorInterpolationMethod so it can be used over IPC. Not currently needed
but will be needed soon for use with Gradient.
- platform/graphics/ColorModels.h:
Add coordinateSystem constexpr property to each model. Used mostly to identify which color models have
special behavior due to a hue component.
- platform/graphics/ColorNormalization.h: Added.
(WebCore::normalizeWhitenessBlackness):
(WebCore::normalizeHue):
(WebCore::makeColorTypeByNormalizingComponents):
(WebCore::makeColorTypeByNormalizingComponents<HWBA<float>>):
(WebCore::makeColorTypeByNormalizingComponents<HSLA<float>>):
(WebCore::makeColorTypeByNormalizingComponents<LCHA<float>>):
(WebCore::makeColorTypeByNormalizingComponents<OKLCHA<float>>):
Split out of CSSPropertyParserHelpers so it can be used by the interpolation code.
LayoutTests:
Update test and results to also test the srgb-linear color space and also to
specifically test colors with and without alpha, updating the results for the
new premuliplied results.
- fast/css/parsing-color-mix-expected.txt:
- fast/css/parsing-color-mix.html:
- 1:36 PM Changeset in webkit [286567] by
-
- 2 edits in trunk/Source/WebKit
Reverting local test code that should not have been landed.
Not reviewed.
- UIProcess/Cocoa/ModelElementControllerCocoa.mm:
- 1:31 PM Changeset in webkit [286566] by
-
- 2 edits in trunk/Source/WebKit
Momentum Event Dispatcher: Momentum phase runs backwards with natural scrolling disabled
https://bugs.webkit.org/show_bug.cgi?id=233894
<rdar://problem/86111948>
Reviewed by Simon Fraser.
- WebProcess/WebPage/MomentumEventDispatcher.cpp:
(WebKit::MomentumEventDispatcher::consumeDeltaForCurrentTime):
Only flip the deltas if the trackpad is configured to use "natural"
scrolling (in which "directionInvertedFromDevice" is true).
(WebKit::MomentumEventDispatcher::computeNextDelta):
Fix initial queue state logging to log both axes before setting the "did log" bit.
- 1:15 PM Changeset in webkit [286565] by
-
- 4 edits in trunk/Source
Add a call to os_signpost to tag a momentum scroll animation
https://bugs.webkit.org/show_bug.cgi?id=233885
Reviewed by Tim Horton.
Source/WebCore:
Use the momentum "Began" and "Ended" events to mark the start/end of a momentum scroll
as an animation via os_signost.
Put the code in ScrollingEffectsController rather than MomentumEventDispatcher so that
non-generated momentum gets marked too.
- platform/mac/ScrollingEffectsController.mm:
(WebCore::ScrollingEffectsController::handleWheelEvent):
Source/WTF:
- wtf/SystemTracing.h:
- 1:06 PM Changeset in webkit [286564] by
-
- 6 edits2 copies in trunk/Source/WebKit
Put webpushd code in WebKit.framework.
https://bugs.webkit.org/show_bug.cgi?id=233886
Reviewed by Alex Christensen.
This fixes some build/mastering/linking issues.
- Configurations/webpushd.xcconfig:
- Shared/API/Cocoa/WKMain.h:
- Shared/API/Cocoa/WKMain.mm:
(WKWebPushDaemonMain):
- WebKit.xcodeproj/project.pbxproj:
- webpushd/WebPushDaemonMain.h: Copied from Source/WebKit/Shared/API/Cocoa/WKMain.mm.
- webpushd/WebPushDaemonMain.mm:
(WebKit::WebPushDaemonMain):
(main): Deleted.
- webpushd/webpushd.cpp: Copied from Source/WebKit/Shared/API/Cocoa/WKMain.mm.
(main):
- 1:03 PM Changeset in webkit [286563] by
-
- 2 edits in trunk/Source/WebKit
REGRESSION (r286527): Three API tests crashing under WebKit::ProcessLauncher::launchProcess()
https://bugs.webkit.org/show_bug.cgi?id=233882
<rdar://problem/86111726>
Reviewed by Brent Fulgham.
Correct the eventHandler to capture the process name, rather than using a raw pointer to the character string.
- UIProcess/Launcher/cocoa/ProcessLauncherCocoa.mm:
(WebKit::ProcessLauncher::launchProcess):
- 1:01 PM Changeset in webkit [286562] by
-
- 2 edits in trunk/PerformanceTests
[RAMification] Add support for dumping smaps rollups on Linux
https://bugs.webkit.org/show_bug.cgi?id=233867
Patch by Zan Dobersek <zdobersek@igalia.com> on 2021-12-06
Reviewed by Yusuke Suzuki.
Add the option to dump smaps rollup after the end of each RAMification
test case. This mirrors the vmmap functionality and is implemented
alongside that option.
Once the jsc binary is left idle after the test case run, the
smaps_rollup output for the given jsc process is collected from the
proc filesystem. This material is then printed out after the test
is done, following the memory footprint dump.
For now this prefers the smaps_rollup instead of the complete smaps.
In this form, it already gives a good insight into the balance between
the proportional and residential set size amounts. Complete smaps could
be beneficial later, especially if we can implement differentiation
between allocations of different types and/or purposes.
- JetStream2/RAMification.py:
(parseArgs):
(BaseRunner.init):
(BaseRunner.getResults):
(LocalRunner.runOneTest):
(main):
(main.runTestList):
- 12:52 PM Changeset in webkit [286561] by
-
- 1 copy in branches/safari-613.1.11-branch
New branch.
- 12:04 PM Changeset in webkit [286560] by
-
- 22 edits in trunk/Source
Change IDL
Date
to be backed byWallTime
to avoid confusion when converting to native dates
https://bugs.webkit.org/show_bug.cgi?id=233781
Reviewed by Darin Adler.
JS
Date
is milliseconds-based, but some native dates (e.g.NSDate
) are seconds-based.
WallTime
will help avoid confusion since not a generic type (e.g.double
) and instead
has explicitly defined conversion methods to seconds, milliseconds, etc..
Source/WebCore:
- bindings/IDLTypes.h:
(WebCore::IDLDate::nullValue):
(WebCore::IDLDate::isNullValue):
(WebCore::IDLDate::extractValueFromNullable):
- bindings/js/JSDOMConvertDate.h:
(WebCore::Converter<IDLDate>::convert):
(WebCore::JSConverter<IDLDate>::convert):
- bindings/js/JSDOMConvertDate.cpp:
(WebCore::jsDate):
(WebCore::valueToDate):
- Modules/applepay/ApplePayLineItem.h:
(WebCore::ApplePayLineItem::decode):
- Modules/applepay/cocoa/PaymentSummaryItemsCocoa.mm:
(WebCore::toDate):
- bindings/js/IDBBindingUtilities.cpp:
(WebCore::get):
(WebCore::toJS):
(WebCore::createIDBKeyFromValue):
- html/BaseDateAndTimeInputType.h:
- html/DateTimeLocalInputType.cpp:
(WebCore::DateTimeLocalInputType::valueAsDate const):
(WebCore::DateTimeLocalInputType::setValueAsDate const):
- html/BaseDateAndTimeInputType.cpp:
(WebCore::BaseDateAndTimeInputType::valueAsDate const):
(WebCore::BaseDateAndTimeInputType::setValueAsDate const):
- html/DateTimeLocalInputType.h:
- html/HTMLInputElement.h:
- html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::valueAsDate const):
(WebCore::HTMLInputElement::setValueAsDate):
- html/InputType.h:
- html/InputType.cpp:
(WebCore::InputType::valueAsDate const):
(WebCore::InputType::setValueAsDate const):
- html/MonthInputType.h:
- html/MonthInputType.cpp:
(WebCore::MonthInputType::valueAsDate const):
- html/HTMLMediaElement.h:
- html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::getStartDate const):
This also fixes an apparently longstanding bug in thatMediaTime::toDouble
is apparently a
seconds-based value, so this is the one case that doesn't needSeconds::fromMilliseconds
.
Source/WebKitLegacy/mac:
- DOM/DOMInternal.h:
(kit):
(core):
- DOM/DOMHTMLMediaElement.mm:
(-[DOMHTMLMediaElement getStartDate]):
- 12:02 PM Changeset in webkit [286559] by
-
- 9 edits in branches/safari-613.1.10-branch/Source
Versioning.
WebKit-7613.1.10.2
- 11:45 AM Changeset in webkit [286558] by
-
- 17 edits3 adds in trunk
Web Inspector: Support Cascade Layers in the Styles sidebar
https://bugs.webkit.org/show_bug.cgi?id=233208
Reviewed by Devin Rousso.
Source/JavaScriptCore:
Add new values to
CSS.Grouping
'stype
enum for cascade layers and make thetext
optional since an
anonymous layer will not have a name or other text.
- inspector/protocol/CSS.json:
Source/WebCore:
Test: inspector/css/getMatchedStylesForNodeLayerGrouping.html
Add support for parsing and grouping CSS
@layer
rules inInspectorStyleSheet
to the existing paths for
handling other groupings so that the frontend is made aware of rules wrapped inside a layer or multiple layers.
- Headers.cmake:
- WebCore.xcodeproj/project.pbxproj:
- CompiledSelector.h needs to be exported as a private header to include in WebKitLegacy's build, since it is
imported by StyleRule.h, which is now imported by CSSImportRule.h, which is imported in WebKitLegacy.
- css/CSSImportRule.cpp:
(WebCore::CSSImportRule::cascadeLayerName const):
- css/CSSImportRule.h:
- css/CSSLayerRule.cpp:
(WebCore::CSSLayerRule::cssText const):
(WebCore::CSSLayerRule::layerName const):
(WebCore::CSSLayerRule::stringFromCascadeLayerName):
- css/CSSLayerRule.h:
- inspector/InspectorStyleSheet.cpp:
(flattenSourceData):
(WebCore::asCSSRuleList):
(WebCore::buildArrayForGroupings):
- style/InspectorCSSOMWrappers.cpp:
(WebCore::Style::InspectorCSSOMWrappers::collect):
Source/WebInspectorUI:
- UserInterface/Models/CSSGrouping.js:
(WI.CSSGrouping):
(WI.CSSGrouping.prototype.get isLayer):
(WI.CSSGrouping.prototype.get prefix):
- Update
CSSGrouping
to support@layer
rules, and maketext
optional for a grouping, since anonymous layers
will not have a name.
- UserInterface/Models/CSSStyleDeclaration.js:
(WI.CSSStyleDeclaration.prototype.generateFormattedText):
- Ensure that spacing remains correct and "null" isn't shown for groupings without text.
- UserInterface/Views/SpreadsheetCSSStyleDeclarationSection.js:
(WI.SpreadsheetCSSStyleDeclarationSection.prototype.initialLayout):
- When merging layer groups, ensure that a "." is used as a separator, and that each group has a name (to
prevent having a hanging period or the "null" text appearing).
LayoutTests:
Add new test cases for
CSS.getMatchesStyleForNode
to make sure that layer groupings are correctly determined,
and that rules nested in@layer
rules and@import layer()
s are correctly represented and sorted by the order
they are applied to an element.
- inspector/css/getMatchedStylesForNode-expected.txt:
- Re-baseline to account for change in order of CSSGrouping properties in the protocol due to
text
now being
optional.
- inspector/css/getMatchedStylesForNodeLayerGrouping-expected.txt: Added.
- inspector/css/getMatchedStylesForNodeLayerGrouping.html: Added.
- inspector/css/resources/external-layers.css: Added.
- 11:45 AM Changeset in webkit [286557] by
-
- 3 edits in trunk/Source/WebKit
[iOS][WP] Block access to unused IOKit class
https://bugs.webkit.org/show_bug.cgi?id=233866
<rdar://problem/86086475>
Reviewed by Brent Fulgham.
Block access to IOKit class IOMobileFramebufferUserClient in the WebContent process' sandbox on iOS,
which is unused according to telemetry.
- Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb.in:
- UIProcess/WebPageProxy.cpp:
(WebKit::gpuIOKitClasses):
- 11:45 AM Changeset in webkit [286556] by
-
- 4 edits in trunk/Source/WebCore
Unreviewed, add some missing #includes in WebCore
Add several missing
#include
-s, which currently aren't causing any issues due to unified sources (but will
once I introduce several new source files inWebCore/Modules
in a future patch).
- Modules/web-locks/WebLockRegistry.cpp:
- page/Page.cpp:
- page/PageConfiguration.h:
- 11:30 AM Changeset in webkit [286555] by
-
- 17 edits6 copies6 adds in trunk
[Web Animations] Add a way to run scripted animations
https://bugs.webkit.org/show_bug.cgi?id=233869
rdar://85983542
Reviewed by Dean Jackson.
Source/WebCore:
Tests: webanimations/custom-effect/custom-effect.html
webanimations/custom-effect/document-timeline-animate.html
This patch adds two new Web-exposed features to allow authors to write callback-based animations
leveraging the full power of the Web Animations model.
First, we add a new AnimationEffect subclass which wraps a callback to be executed on every tick
of the associated animation's timeline: CustomEffect. It can be constructed by providing a JS function
as its first parameter, and either a number or a dictionary to provide timing properties for the effect.
This is similar to how KeyframeEffect will accept a keyframes object and then timing data. The callback
is provided the effect progress as its sole parameter. Web authors can use this new interface as follows:
const animation = new Animation;
animation.effect = new CustomEffect(progress => { … }, 1000);
animation.play();
Second, to make starting callback-based animations more straightforward and in a very similar fashion
to how keyframe animations can be initiated on an element using Element.animate(), we introduce a new
animate() method on DocumentTimeline, allowing the previous exmaple to be written as:
const animation = document.timeline.animate(progress => { … }, 1000);
This simple approach allows Web authors to move past the simple use of requestAnimationFrame() and harness
the Web Animations timing model which will let them pause and resume animations, seek them, control their
playback rate, apply easing, respond to the "finished" promise, etc.
The code itself is very simple, CustomEffect is simply an AnimationEffect subclass that indicates that it's
always interested in scheduling updates while active using the ticksContinouslyWhileActive() method. This
means that all the scheduling logic contained in WebAnimation and AnimationEffect applies, allowing callbacks
to not be fired when the animation is paused or when the page is suspended, or fired sparingly when a steps()
timing function is specified.
- CMakeLists.txt:
- DerivedSources-input.xcfilelist:
- DerivedSources-output.xcfilelist:
- DerivedSources.make:
- Headers.cmake:
- Sources.txt:
- WebCore.xcodeproj/project.pbxproj:
- animation/AnimationEffect.h:
(WebCore::AnimationEffect::isCustomEffect const):
- animation/CustomAnimationOptions.h: Added.
- animation/CustomAnimationOptions.idl: Added.
- animation/CustomEffect.cpp: Added.
(WebCore::CustomEffect::create):
(WebCore::CustomEffect::CustomEffect):
(WebCore::CustomEffect::animationDidTick):
- animation/CustomEffect.h: Added.
(WebCore::CustomEffect::~CustomEffect):
- animation/CustomEffect.idl: Added.
- animation/CustomEffectCallback.h: Added.
- animation/CustomEffectCallback.idl: Added.
- animation/DocumentTimeline.cpp:
(WebCore::DocumentTimeline::animate):
- animation/DocumentTimeline.h:
- animation/DocumentTimeline.idl:
- bindings/js/WebCoreBuiltinNames.h:
Source/WTF:
Add a new experimental feature for the CustomEffect interface.
- Scripts/Preferences/WebPreferencesExperimental.yaml:
LayoutTests:
Add tests for the new CustomEffect interface and the document.timeline.animate() method.
These are written using WPT libraries such that they may be upstreamed to the WPT repository
in the future if and when the CustomEffect interface is standardized.
- platform/win/TestExpectations:
- webanimations/custom-effect/custom-effect-expected.txt: Added.
- webanimations/custom-effect/custom-effect.html: Added.
- webanimations/custom-effect/document-timeline-animate-expected.txt: Added.
- webanimations/custom-effect/document-timeline-animate.html: Added.
- 11:22 AM Changeset in webkit [286554] by
-
- 6 edits in trunk
Update GPU Process feature flags
https://bugs.webkit.org/show_bug.cgi?id=232547
rdar://83905400
Reviewed by Wenson Hsieh.
Source/WTF:
Move features enabled by default to internal. DOM and WebGL are experimental.
- Scripts/Preferences/WebPreferencesExperimental.yaml:
- Scripts/Preferences/WebPreferencesInternal.yaml:
Tools:
- Scripts/webkitpy/layout_tests/run_webkit_tests.py:
(parse_args): Update features that are set when using
run-webkit-tests --use-gpu-process
.
- WebKitTestRunner/TestOptions.cpp:
(WTR::TestOptions::defaults): Turn off DOM Rendering on layout test bots for the time being.
- 11:13 AM Changeset in webkit [286553] by
-
- 3 edits2 adds in trunk
Null check in shouldUseBreakElement
https://bugs.webkit.org/show_bug.cgi?id=229275
Patch by Rob Buis <rbuis@igalia.com> on 2021-12-06
Reviewed by Ryosuke Niwa.
Source/WebCore:
Need to null check node in shouldUseBreakElement.
Also bail out early in InsertLineBreakCommand::doApply
in case position is not editable.
Test: editing/execCommand/insert-line-break-crash.html
- editing/InsertLineBreakCommand.cpp:
(WebCore::InsertLineBreakCommand::shouldUseBreakElement):
(WebCore::InsertLineBreakCommand::doApply):
LayoutTests:
- editing/execCommand/insert-line-break-crash-expected.txt: Added.
- editing/execCommand/insert-line-break-crash.html: Added.
- 11:00 AM Changeset in webkit [286552] by
-
- 6 edits in trunk
[iOS] Allow WKWebView clients to override undoManager
https://bugs.webkit.org/show_bug.cgi?id=233297
<rdar://problem/85526549>
Patch by Matt Gilligan <matthew_gilligan@apple.com> on 2021-12-06
Reviewed by Wenson Hsieh.
Source/WebKit:
Move WKContentView's undoManager up the responder chain to WKWebView so web view
subclasses can customize the undo manager used when WKContentView is first responder.
Test: KeyboardInputTests.OverrideUndoManager
- UIProcess/API/ios/WKWebViewIOS.mm:
(-[WKWebView undoManager]):
Return the undo manager provided by _contentView when it is current.
- UIProcess/ios/WKContentView.h:
- UIProcess/ios/WKContentView.mm:
(-[WKContentView undoManagerForWebView]):
Provide the view's undo manager via this property so that -undoManager will look up the
responder chain to WKWebView.
(-[WKContentView undoManager]): Deleted.
Tools:
- TestWebKitAPI/Tests/ios/KeyboardInputTestsIOS.mm:
(-[CustomUndoManagerWebView undoManager]):
(TestWebKitAPI::TEST):
- 10:49 AM Changeset in webkit [286551] by
-
- 1 copy in tags/Safari-613.1.10.1
Tag Safari-613.1.10.1.
- 10:46 AM Changeset in webkit [286550] by
-
- 28 edits2 adds in trunk
Restore navigator.hardwareConcurrency
https://bugs.webkit.org/show_bug.cgi?id=233381
<rdar://85023911>
Reviewed by Saam Barati.
LayoutTests/imported/w3c:
- web-platform-tests/html/dom/idlharness.https-expected.txt:
- web-platform-tests/html/dom/idlharness.worker-expected.txt:
- web-platform-tests/workers/WorkerNavigator-hardware-concurrency.any.worker-expected.txt:
Source/WebCore:
Navigator.hardwareConcurrency was removed in r219379, but it is now used
by emscripten to implement std::thread::hardware_concurrency()
Test: fast/dom/navigator-hardwareConcurrency.html
- page/Navigator.idl:
- page/NavigatorBase.cpp:
(WebCore::NavigatorBase::hardwareConcurrency):
- page/NavigatorBase.h:
- page/WorkerNavigator.idl:
LayoutTests:
- fast/dom/Window/resources/window-property-collector.js:
(emitExpectedResult):
- fast/dom/navigator-detached-no-crash-expected.txt:
- fast/dom/navigator-hardwareConcurrency-expected.txt: Added.
- fast/dom/navigator-hardwareConcurrency.html: Added.
- fast/workers/resources/worker-navigator.js:
- fast/workers/worker-navigator-expected.txt:
- platform/glib/imported/w3c/web-platform-tests/html/dom/idlharness.worker-expected.txt:
- platform/gtk/fast/dom/navigator-detached-no-crash-expected.txt:
- platform/gtk/imported/w3c/web-platform-tests/html/dom/idlharness.https-expected.txt:
- platform/ios-wk2/imported/w3c/web-platform-tests/html/dom/idlharness.https-expected.txt:
- platform/ipad/imported/w3c/web-platform-tests/html/dom/idlharness.https-expected.txt:
- platform/mac-wk1/fast/dom/navigator-detached-no-crash-expected.txt:
- platform/mac-wk1/imported/w3c/web-platform-tests/html/dom/idlharness.https-expected.txt:
- platform/mac-wk2/fast/dom/navigator-detached-no-crash-expected.txt:
- platform/mac-wk2/imported/w3c/web-platform-tests/html/dom/idlharness.https-expected.txt:
- platform/mac/fast/dom/navigator-detached-no-crash-expected.txt:
- platform/win/fast/dom/navigator-detached-no-crash-expected.txt:
- platform/wincairo/fast/dom/navigator-detached-no-crash-expected.txt:
- platform/wpe/fast/dom/navigator-detached-no-crash-expected.txt:
- platform/wpe/imported/w3c/web-platform-tests/html/dom/idlharness.https-expected.txt:
- 10:40 AM Changeset in webkit [286549] by
-
- 2 edits in trunk/Source/WebKit
REGRESSION(r286535) [GTK] Fix clean builds after DerivedSources/WebKit2 move
https://bugs.webkit.org/show_bug.cgi?id=233881
Reviewed by Žan Doberšek.
Build fix. Covered by exiting tests.
- PlatformGTK.cmake: Add symbolic links for the public generated like
we do for the regular headers. It happened to work before because they
were created already in a webkit2 folder.
- 10:35 AM Changeset in webkit [286548] by
-
- 9 edits in branches/safari-613.1.10-branch/Source
Versioning.
WebKit-7613.1.10.1
- 10:27 AM Changeset in webkit [286547] by
-
- 2 edits in trunk/Tools
[iOS] AppHighlights.AppHighlightCreateAndRestoreAndScroll is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=233828
Reviewed by Tim Horton.
This test began to sometimes fail on iOS 15 API test runners in EWS after enabling
APP_HIGHLIGHTS
in non-
internal builds. Make this test more robust by waiting for scrolling to the restored highlight.
- TestWebKitAPI/Tests/WebKitCocoa/WKAppHighlights.mm:
(TestWebKitAPI::TEST):
- 10:20 AM Changeset in webkit [286546] by
-
- 14 edits in trunk
[GPU Process] (REGRESSION r285597): Set the filterRegion of the CSSFilter after it is created
https://bugs.webkit.org/show_bug.cgi?id=233849
Reviewed by Cameron McCormack.
Source/WebCore:
In this patch:
- sourceImageRect is no longer passed as an argument to SVGFilter. It should be passed only when SVGFilter::apply() is called.
- CSSFilter::create() will create and build the FilterFunctions from the FilterOperations. So we have to pass the targetBoundingBox since the FilterEffects will need it when calculating the outsets.
- The steps in RenderLayerFilters::beginFilterEffect() are: a) Recreate the CSSFilter if the targetBoundingBox changes. b) Calculate the filterRegion = targetBoundingBox + outsets c) Clamp the filterRegion if needed. This will change the filterScale. d) Set sourceImageRect = filterRegion. e) Recreate the sourceImage if needed. f) setup the context for drawing the target renderer.
- Managing the targetBoundingBox and the filterRegion is moved from CSSFilter to RenderLayerFilters.
- css/CSSFilterImageValue.cpp:
(WebCore::CSSFilterImageValue::image):
- platform/graphics/filters/Filter.cpp:
(WebCore::Filter::Filter):
- platform/graphics/filters/Filter.h:
(WebCore::Filter::Filter):
- rendering/CSSFilter.cpp:
(WebCore::CSSFilter::create):
(WebCore::CSSFilter::CSSFilter):
(WebCore::createSVGFilter):
(WebCore::CSSFilter::buildFilterFunctions):
(WebCore::CSSFilter::apply):
(WebCore::CSSFilter::setFilterRegion):
(WebCore::m_hasFilterThatShouldBeRestrictedBySecurityOrigin): Deleted.
(WebCore::CSSFilter::updateBackingStoreRect): Deleted.
(WebCore::CSSFilter::computeSourceImageRectForDirtyRect): Deleted.
(WebCore::CSSFilter::setSourceImageRect): Deleted.
- rendering/CSSFilter.h:
- rendering/RenderLayerFilters.cpp:
(WebCore::RenderLayerFilters::buildFilter):
(WebCore::RenderLayerFilters::allocateBackingStoreIfNeeded):
(WebCore::RenderLayerFilters::beginFilterEffect):
(WebCore::RenderLayerFilters::applyFilterEffect):
(WebCore::RenderLayerFilters::allocateBackingStore): Deleted.
- rendering/RenderLayerFilters.h:
- rendering/svg/RenderSVGResourceFilter.cpp:
(WebCore::RenderSVGResourceFilter::applyResource):
- rendering/svg/SVGRenderTreeAsText.cpp:
(WebCore::writeSVGResourceContainer):
- svg/graphics/filters/SVGFilter.cpp:
(WebCore::SVGFilter::create):
(WebCore::SVGFilter::SVGFilter):
- svg/graphics/filters/SVGFilter.h:
LayoutTests:
Unskip layout tests which were skipped in r285597.
- 9:46 AM Changeset in webkit [286545] by
-
- 12 edits in trunk
WKWebpagePreferences._activeContentRuleListActionPatterns should be an NSDictionary of identifier to allowed patterns
https://bugs.webkit.org/show_bug.cgi?id=233842
Patch by Alex Christensen <achristensen@webkit.org> on 2021-12-06
Reviewed by Timothy Hatcher.
Source/WebCore:
There's no need for nil to match everything because a pattern can be written to quickly match everything.
There is a need for different extensions (with different identifiers) to have different active action permissions, though.
- contentextensions/ContentExtensionsBackend.cpp:
(WebCore::ContentExtensions::ContentExtensionsBackend::processContentRuleListsForLoad):
- loader/DocumentLoader.cpp:
(WebCore::DocumentLoader::DocumentLoader):
(WebCore::DocumentLoader::setActiveContentRuleListActionPatterns):
(WebCore::DocumentLoader::allowsActiveContentRuleListActionsForURL const):
- loader/DocumentLoader.h:
Source/WebKit:
- Shared/WebsitePoliciesData.cpp:
(WebKit::WebsitePoliciesData::decode):
- Shared/WebsitePoliciesData.h:
- UIProcess/API/APIWebsitePolicies.h:
- UIProcess/API/Cocoa/WKWebpagePreferences.mm:
(-[WKWebpagePreferences _setActiveContentRuleListActionPatterns:]):
(-[WKWebpagePreferences _activeContentRuleListActionPatterns]):
- UIProcess/API/Cocoa/WKWebpagePreferencesPrivate.h:
Tools:
- TestWebKitAPI/Tests/WebKitCocoa/WKContentExtensionStore.mm:
(navigationDelegateAllowingActiveActionsOnTestHost):
(TEST_F):
- 9:20 AM Changeset in webkit [286544] by
-
- 6 edits in trunk/Source/WebCore
Clean up virtual methods on AnimationEffect
https://bugs.webkit.org/show_bug.cgi?id=233868
Reviewed by Simon Fraser.
To this day, the only concrete subclass of AnimationEffect has been KeyframeEffect. Soon, we'll introduce
another concrete subclass for callback-based animations leveraging the Web Animations mode: CustomEffect.
To prepare for this new class, we clean up the virtual methods on AnimationEffect such that they make a
bit more sense:
- much of the implementation of timeToNextTick() is brought from KeyframeEffect to AnimationEffect to
account for the cases which are purely based on timing properties shared by any potential AnimationEffect
subclass,
- we add a new ticksContinouslyWhileActive() method which allows subclasses to indicate whether they require
continuous scheduling while active, which is true for KeyframeEffect unless it has no keyframes, no CSS
properties set on its keyframes or is running fully accelerated,
- much of the implementation of setAnimation() is brought from KeyframeEffect to AnimationEffect since
updating the relevance of the animation based on a change of effect should apply to any AnimationEffect,
- the apply() and invalidate() methods are moved from AnimationEffect to KeyframeEffect alone since they
really are specific to KeyframeEffect's interaction with style resolution,
- all the other virtual methods on AnimationEffect have stub implementations such that new subclasses
only need to override them as required: animationDidTick(), animationDidPlay(),
animationDidChangeTimingProperties(), animationWasCanceled(), animationSuspensionStateDidChange(bool)
and animationTimelineDidChange(AnimationTimeline*).
- animation/AnimationEffect.cpp:
(WebCore::AnimationEffect::setAnimation):
(WebCore::AnimationEffect::timeToNextTick const):
- animation/AnimationEffect.h:
(WebCore::AnimationEffect::animationDidTick):
(WebCore::AnimationEffect::animationDidPlay):
(WebCore::AnimationEffect::animationDidChangeTimingProperties):
(WebCore::AnimationEffect::animationWasCanceled):
(WebCore::AnimationEffect::animationSuspensionStateDidChange):
(WebCore::AnimationEffect::animationTimelineDidChange):
(WebCore::AnimationEffect::ticksContinouslyWhileActive const):
(WebCore::AnimationEffect::setAnimation): Deleted.
(WebCore::AnimationEffect::timeToNextTick const): Deleted.
- animation/KeyframeEffect.cpp:
(WebCore::KeyframeEffect::setAnimation):
(WebCore::KeyframeEffect::ticksContinouslyWhileActive const):
(WebCore::KeyframeEffect::timeToNextTick const):
- animation/KeyframeEffect.h:
- animation/WebAnimation.cpp:
(WebCore::WebAnimation::invalidateEffect):
(WebCore::WebAnimation::resolve):
(WebCore::WebAnimation::timeToNextTick const):
- 6:35 AM Changeset in webkit [286543] by
-
- 5 edits in trunk/Source
[LBSE] Toggling the Settings -> Enabled LBSE flag has no immediate effect
https://bugs.webkit.org/show_bug.cgi?id=233871
Reviewed by Rob Buis.
Toggling "Enable layer-based SVG engine" in e.g. MiniBrowser or from JS has no immediate effect.
A relayout is not enough: a full style / render tree rebuild is needed.
Source/WebCore:
Covered by existing tests.
- page/SettingsBase.cpp:
(WebCore::SettingsBase::layerBasedSVGEngineEnabledChanged): Rebuild style / renderers upon changes.
- page/SettingsBase.h:
Source/WTF:
- Scripts/Preferences/WebPreferencesInternal.yaml: When "LayerBasedSVGEngineEnabled" changes call
WebCore::SettingsBase::layerBasedSVGEngineEnabledChanged() to assure the switch from legacy to
LBSE engine and vice-versa is live and doesn't need reloads to take effect.
- 6:28 AM Changeset in webkit [286542] by
-
- 17 edits in trunk/Source/WebCore
[LBSE] Add RenderObject::isSVGRootOrLegacySVGRoot() helper
https://bugs.webkit.org/show_bug.cgi?id=233870
Reviewed by Rob Buis.
Preparations to begin a new RenderSVGRoot implementation for the
layer-based SVG engine (LBSE).
Add a helper function to identify either legacy SVG or LBSE root
render objects (LegacyRenderSVGRoot and the upcoming RenderSVGRoot).
Covered by existing tests, no change in behavior.
- accessibility/AXObjectCache.cpp:
(WebCore::createFromRenderer):
- accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::boundingBoxRect const):
(WebCore::AccessibilityRenderObject::determineAccessibilityRole):
- dom/Element.cpp:
(WebCore::Element::boundingAbsoluteRectWithoutLayout):
- inspector/InspectorOverlay.cpp:
(WebCore::buildRendererHighlight):
- layout/integration/LayoutIntegrationCoverage.cpp:
(WebCore::LayoutIntegration::canUseForChild):
- rendering/RenderGeometryMap.cpp:
(WebCore::canMapBetweenRenderersViaLayers):
- rendering/RenderLayer.cpp:
(WebCore::RenderLayer::beginTransparencyLayers):
(WebCore::RenderLayer::calculateClipRects const):
- rendering/RenderLayer.h:
(WebCore::RenderLayer::canUseOffsetFromAncestor const):
- rendering/RenderObject.cpp:
(WebCore::objectIsRelayoutBoundary):
- rendering/RenderObject.h:
(WebCore::RenderObject::isLegacySVGRoot const):
(WebCore::RenderObject::isSVGRootOrLegacySVGRoot const):
- rendering/RenderReplaced.cpp:
(WebCore::hasIntrinsicSize):
- rendering/RenderView.cpp:
(WebCore::RenderView::layout):
- rendering/svg/LegacyRenderSVGRoot.h:
- rendering/svg/SVGRenderSupport.cpp:
(WebCore::layoutSizeOfNearestViewportChanged):
- rendering/svg/SVGRenderingContext.cpp:
(WebCore::SVGRenderingContext::prepareToRenderSVGContent):
(WebCore::SVGRenderingContext::calculateTransformationToOutermostCoordinateSystem):
- rendering/updating/RenderTreeBuilder.cpp:
(WebCore::RenderTreeBuilder::reportVisuallyNonEmptyContent):
- 12:13 AM Changeset in webkit [286541] by
-
- 6 edits in trunk/Source/WebCore
[LFC][Integration] Use end bits in text box iterator
https://bugs.webkit.org/show_bug.cgi?id=233858
Reviewed by Alan Bujtas.
Make text box traversal work correctly in bidi context where encountering a different
layout box does not necessarily mean there are no further text boxes for the layout box.
- layout/formattingContexts/inline/InlineDisplayContentBuilder.cpp:
(WebCore::Layout::InlineDisplayContentBuilder::processBidiContent):
(WebCore::Layout::InlineDisplayContentBuilder::computeIsFirstIsLastBoxForInlineContent):
Set the bits for all box types.
- layout/formattingContexts/inline/display/InlineDisplayBox.h:
(WebCore::InlineDisplay::Box::Box):
(WebCore::InlineDisplay::Box::isTextOrSoftLineBreak const):
(WebCore::InlineDisplay::Box::isFirstForLayoutBox const):
(WebCore::InlineDisplay::Box::isLastForLayoutBox const):
(WebCore::InlineDisplay::Box::setIsFirstForLayoutBox):
(WebCore::InlineDisplay::Box::setIsLastForLayoutBox):
(WebCore::InlineDisplay::Box::isFirstBox const): Deleted.
(WebCore::InlineDisplay::Box::isLastBox const): Deleted.
(WebCore::InlineDisplay::Box::setIsLastBox): Deleted.
(WebCore::InlineDisplay::Box::setIsFirstBox): Deleted.
Renamed for clarity and correctness.
- layout/integration/InlineIteratorBoxModernPath.h:
(WebCore::InlineIterator::BoxModernPath::isText const):
(WebCore::InlineIterator::BoxModernPath::traverseNextTextBox):
Use the isLastForLayoutBox bit to end the traversal.
(WebCore::InlineIterator::BoxModernPath::traverseNextInlineBox):
(WebCore::InlineIterator::BoxModernPath::traversePreviousInlineBox):
(WebCore::InlineIterator::BoxModernPath::traverseNextWithSameLayoutBox):
(WebCore::InlineIterator::BoxModernPath::traversePreviousWithSameLayoutBox):
Factor into helpers.
- layout/integration/InlineIteratorTextBox.h:
- 12:13 AM Changeset in webkit [286540] by
-
- 2 edits in trunk/Source/WTF
Enable NavigationPreloadManager by default
https://bugs.webkit.org/show_bug.cgi?id=233755
Reviewed by Chris Dumez.
- Scripts/Preferences/WebPreferencesExperimental.yaml:
- 12:05 AM Changeset in webkit [286539] by
-
- 3 edits in trunk/Source/ThirdParty/libwebrtc
Close WebRTC allocation sequence shared socket in case of sequence network failure
https://bugs.webkit.org/show_bug.cgi?id=233808
Reviewed by Geoffrey Garen.
- Source/webrtc/p2p/client/basic_port_allocator.cc:
- Source/webrtc/p2p/client/basic_port_allocator.h:
Dec 5, 2021:
- 9:49 PM Changeset in webkit [286538] by
-
- 59 edits1 add in trunk
[GPU Process] Add the encoding/decoding for Filter and FilterEffect
https://bugs.webkit.org/show_bug.cgi?id=232844
Reviewed by Wenson Hsieh.
Source/WebCore:
This patch adds the encoding and decoding for the FilterEffect and the
Filter objects. Because these objects have super-classes, we are going
to do the encoding and decoding through a new IPC class called
FilterReference.
The encoding and decoding of these classes will be needed in two cases:
1) DisplayList::Recorder::drawFilteredImageBuffer()
2) RemoteImageBufferProxy::filteredImage()
A few things have not be done this patch yet:
1) LightSource has not been encoded/decoded
2) FELighting classes have not been encoded/decoded
3) FEImage has not been encoded/decoded
4) SVGFilter has not been encoded/decoded
This patch does not change any behavior even if the GPU Process for DOM
rendering is enabled. The sourceImage for the filter and the filter image
need to be of type of RemoteImageBufferProxy to this code to be called.
- Headers.cmake:
- WebCore.xcodeproj/project.pbxproj:
- platform/graphics/ConcreteImageBuffer.h:
- platform/graphics/GraphicsContext.cpp:
(WebCore::GraphicsContext::drawFilteredImageBuffer):
- platform/graphics/GraphicsContext.h:
- platform/graphics/displaylists/DisplayList.cpp:
(WebCore::DisplayList::DisplayList::append):
- platform/graphics/displaylists/DisplayListItemBuffer.cpp:
(WebCore::DisplayList::ItemHandle::apply):
(WebCore::DisplayList::ItemHandle::destroy):
(WebCore::DisplayList::ItemHandle::safeCopy const):
- platform/graphics/displaylists/DisplayListItemType.cpp:
(WebCore::DisplayList::sizeOfItemInBytes):
(WebCore::DisplayList::isDrawingItem):
(WebCore::DisplayList::isInlineItem):
- platform/graphics/displaylists/DisplayListItemType.h:
- platform/graphics/displaylists/DisplayListItems.cpp:
(WebCore::DisplayList::DrawFilteredImageBuffer::DrawFilteredImageBuffer):
(WebCore::DisplayList::DrawFilteredImageBuffer::apply const):
(WebCore::DisplayList::DrawFilteredImageBuffer::apply):
(WebCore::DisplayList::operator<<):
- platform/graphics/displaylists/DisplayListItems.h:
(WebCore::DisplayList::DrawFilteredImageBuffer::sourceImageIdentifier const):
(WebCore::DisplayList::DrawFilteredImageBuffer::sourceImageRect const):
(WebCore::DisplayList::DrawFilteredImageBuffer::globalBounds const):
(WebCore::DisplayList::DrawFilteredImageBuffer::localBounds const):
- platform/graphics/displaylists/DisplayListRecorder.cpp:
(WebCore::DisplayList::Recorder::drawFilteredImageBuffer):
- platform/graphics/displaylists/DisplayListRecorder.h:
- platform/graphics/displaylists/DisplayListRecorderImpl.cpp:
(WebCore::DisplayList::RecorderImpl::recordDrawFilteredImageBuffer):
- platform/graphics/displaylists/DisplayListRecorderImpl.h:
- platform/graphics/filters/FEBlend.h:
(WebCore::FEBlend::encode const):
(WebCore::FEBlend::decode):
- platform/graphics/filters/FEColorMatrix.h:
(WebCore::FEColorMatrix::encode const):
(WebCore::FEColorMatrix::decode):
- platform/graphics/filters/FEComponentTransfer.h:
(WebCore::ComponentTransferFunction::encode const):
(WebCore::ComponentTransferFunction::decode):
(WebCore::FEComponentTransfer::encode const):
(WebCore::FEComponentTransfer::decode):
- platform/graphics/filters/FEComposite.h:
(WebCore::FEComposite::encode const):
(WebCore::FEComposite::decode):
- platform/graphics/filters/FEConvolveMatrix.h:
(WebCore::FEConvolveMatrix::encode const):
(WebCore::FEConvolveMatrix::decode):
- platform/graphics/filters/FEDiffuseLighting.h:
(WebCore::FEDiffuseLighting::decode):
- platform/graphics/filters/FEDisplacementMap.h:
(WebCore::FEDisplacementMap::encode const):
(WebCore::FEDisplacementMap::decode):
- platform/graphics/filters/FEDropShadow.h:
(WebCore::FEDropShadow::encode const):
(WebCore::FEDropShadow::decode):
- platform/graphics/filters/FEFlood.h:
(WebCore::FEFlood::encode const):
(WebCore::FEFlood::decode):
- platform/graphics/filters/FEGaussianBlur.h:
(WebCore::FEGaussianBlur::encode const):
(WebCore::FEGaussianBlur::decode):
- platform/graphics/filters/FELighting.h:
(WebCore::FELighting::encode const):
(WebCore::FELighting::decode):
- platform/graphics/filters/FEMerge.cpp:
(WebCore::FEMerge::create):
(WebCore::FEMerge::FEMerge):
- platform/graphics/filters/FEMerge.h:
(WebCore::FEMerge::encode const):
(WebCore::FEMerge::decode):
- platform/graphics/filters/FEMorphology.h:
(WebCore::FEMorphology::encode const):
(WebCore::FEMorphology::decode):
- platform/graphics/filters/FEOffset.h:
(WebCore::FEOffset::encode const):
(WebCore::FEOffset::decode):
- platform/graphics/filters/FESpecularLighting.h:
(WebCore::FESpecularLighting::decode):
- platform/graphics/filters/FETile.h:
- platform/graphics/filters/FETurbulence.h:
(WebCore::FETurbulence::encode const):
(WebCore::FETurbulence::decode):
- platform/graphics/filters/Filter.cpp:
(WebCore::Filter::apply):
- platform/graphics/filters/Filter.h:
(WebCore::Filter::setClipOperation):
- platform/graphics/filters/SourceGraphic.h:
- rendering/CSSFilter.cpp:
(WebCore::CSSFilter::create):
(WebCore::CSSFilter::CSSFilter):
- rendering/CSSFilter.h:
- rendering/RenderLayerFilters.cpp:
(WebCore::RenderLayerFilters::applyFilterEffect):
- rendering/svg/RenderSVGResourceFilter.cpp:
(WebCore::RenderSVGResourceFilter::postApplyResource):
- svg/SVGFEMergeElement.cpp:
(WebCore::SVGFEMergeElement::build const):
Source/WebKit:
- GPUProcess/graphics/RemoteDisplayListRecorder.cpp:
(WebKit::RemoteDisplayListRecorder::drawFilteredImageBuffer):
- GPUProcess/graphics/RemoteDisplayListRecorder.h:
- GPUProcess/graphics/RemoteDisplayListRecorder.messages.in:
- GPUProcess/graphics/RemoteRenderingBackend.cpp:
(WebKit::RemoteRenderingBackend::getFilteredImageForImageBuffer):
- GPUProcess/graphics/RemoteRenderingBackend.h:
- GPUProcess/graphics/RemoteRenderingBackend.messages.in:
- Platform/IPC/FilterReference.h: Added.
(IPC::FilterReference::FilterReference):
(IPC::FilterReference::takeFilter):
(IPC::FilterReference::encodeFilterEffect):
(IPC::FilterReference::decodeFilterEffect):
(IPC::FilterReference::encodeSVGFilter):
(IPC::FilterReference::decodeSVGFilter):
(IPC::FilterReference::encodeCSSFilter):
(IPC::FilterReference::decodeCSSFilter):
(IPC::FilterReference::encodeFilter):
(IPC::FilterReference::decodeFilter):
(IPC::FilterReference::encode const):
(IPC::FilterReference::decode):
- Scripts/webkit/messages.py:
(types_that_cannot_be_forward_declared):
- WebKit.xcodeproj/project.pbxproj:
- WebProcess/GPU/graphics/RemoteDisplayListRecorderProxy.cpp:
(WebKit::RemoteDisplayListRecorderProxy::recordDrawFilteredImageBuffer):
- WebProcess/GPU/graphics/RemoteDisplayListRecorderProxy.h:
- WebProcess/GPU/graphics/RemoteImageBufferProxy.h:
- WebProcess/GPU/graphics/RemoteRenderingBackendProxy.cpp:
(WebKit::RemoteRenderingBackendProxy::getFilteredImage):
- WebProcess/GPU/graphics/RemoteRenderingBackendProxy.h:
Tools:
- TestWebKitAPI/Tests/WebCore/DisplayListTests.cpp:
- TestWebKitAPI/Tests/WebCore/cg/DisplayListTestsCG.cpp:
- 8:40 PM Changeset in webkit [286537] by
-
- 6 edits in trunk
Add trace points for generated momentum events
https://bugs.webkit.org/show_bug.cgi?id=233857
Reviewed by Tim Horton.
Source/WebKit:
Add start/end points for synthetic momentum, and a trace point for each generated event.
- WebProcess/WebPage/MomentumEventDispatcher.cpp:
(WebKit::MomentumEventDispatcher::dispatchSyntheticMomentumEvent):
(WebKit::MomentumEventDispatcher::didStartMomentumPhase):
(WebKit::MomentumEventDispatcher::didEndMomentumPhase):
Source/WTF:
- wtf/SystemTracing.h:
Tools:
Add start/end points for synthetic momentum, and a trace point for each generated event.
- Tracing/SystemTracePoints.plist: