Branch: refs/heads/webkitglib/2.40 Home: https://github.com/WebKit/WebKit Commit: dda2fc0dedd730ad63251ad3532762d3ea34bcd0 https://github.com/WebKit/WebKit/commit/dda2fc0dedd730ad63251ad3532762d3ea34bcd0 Author: JC Alvarado <jonca...@apple.com> Date: 2023-05-23 (Tue, 23 May 2023)
Changed paths: A LayoutTests/fast/editing/frame-selection-in-child-view-crash-expected.txt A LayoutTests/fast/editing/frame-selection-in-child-view-crash.html M Source/WebCore/platform/ScrollView.cpp M Tools/TestWebKitAPI/Tests/WebKitCocoa/CSSViewportUnits.mm Log Message: ----------- Cherry-pick 259548.465@safari-7615-branch (cf0b3436ba58). rdar://104064235 Increase max scrollbar update passes rdar://104064235 Reviewed by Simon Fraser. Scrollbars are not fully updated in a single layout which can lead to an additional layout in the scriptDisallowedScope in FrameView::scrollRectToVisibleInChildView. * LayoutTests/fast/editing/frame-selection-in-child-view-crash-expected.txt: Added. * LayoutTests/fast/editing/frame-selection-in-child-view-crash.html: Added. * Source/WebCore/platform/ScrollView.cpp: (WebCore::ScrollView::updateScrollbars): * Tools/TestWebKitAPI/Tests/WebKitCocoa/CSSViewportUnits.mm: (TEST): Add scrollbarSize to width in WritingMode tests because we should expect vertical overflow in these cases. This test would pass prior to this patch despite the displayed WebView having both a vertical and horizontal scroll bar. Canonical link: https://commits.webkit.org/259548.465@safari-7615-branch Commit: 4b00e71587b24b975c0ec03850b9957d38a4159a https://github.com/WebKit/WebKit/commit/4b00e71587b24b975c0ec03850b9957d38a4159a Author: Rob Buis <rb...@igalia.com> Date: 2023-05-23 (Tue, 23 May 2023) Changed paths: A LayoutTests/fast/multicol/crash-when-constructing-nested-columns2-expected.txt A LayoutTests/fast/multicol/crash-when-constructing-nested-columns2.html M Source/WebCore/rendering/updating/RenderTreeBuilderMultiColumn.cpp Log Message: ----------- Cherry-pick 260286.15@webkit-2023.2-embargoed (028f984310b6). https://bugs.webkit.org/show_bug.cgi?id=245374 Fix spanner reset logic https://bugs.webkit.org/show_bug.cgi?id=245374 Reviewed by Alan Baradlay. In restoreColumnSpannersForContainer we want to reset the spanners to their original position and remove the placeholders, however in some cases the attach step will call multiColumnDescendantInserted and re-insert placeholders. To fix this, prevent calling the spanner processing logic by multiColumnDescendantInserted by introducing a new flag gRestoringColumnSpannersForContainer. * LayoutTests/fast/multicol/crash-when-constructing-nested-columns2-expected.txt: Added. * LayoutTests/fast/multicol/crash-when-constructing-nested-columns2.html: Added. * Source/WebCore/rendering/updating/RenderTreeBuilderMultiColumn.cpp: (WebCore::RenderTreeBuilder::MultiColumn::restoreColumnSpannersForContainer): (WebCore::RenderTreeBuilder::MultiColumn::multiColumnDescendantInserted): (WebCore::RenderTreeBuilder::MultiColumn::processPossibleSpannerDescendant): Canonical link: https://commits.webkit.org/260286.15@webkit-2023.2-embargoed Commit: 09d9962232640246be89b9f4a6cfdc20769413e1 https://github.com/WebKit/WebKit/commit/09d9962232640246be89b9f4a6cfdc20769413e1 Author: Patrick Angle <pan...@apple.com> Date: 2023-05-23 (Tue, 23 May 2023) Changed paths: M LayoutTests/inspector/debugger/async-stack-trace-truncate-expected.txt M LayoutTests/inspector/debugger/async-stack-trace-truncate.html M Source/JavaScriptCore/inspector/AsyncStackTrace.cpp M Source/JavaScriptCore/inspector/ScriptCallStack.cpp M Source/JavaScriptCore/inspector/ScriptCallStack.h Log Message: ----------- Cherry-pick 259548.467@safari-7615-branch (69eae63cd374). https://bugs.webkit.org/show_bug.cgi?id=254244 Web Inspector: Deeply nested async stack traces are not fully truncated https://bugs.webkit.org/show_bug.cgi?id=254244 rdar://105900359 Reviewed by Yusuke Suzuki. As of 252630@main, ScriptCallStack holds a reference to its parent AsyncStackTrace to enable providing async stack traces in places where previously the async context was being lost. However when this was added, the truncation functionality used to ensure that AsyncStackTrace did not create an infinitely nested set of objects did not take the new reference into account. In practice, we should break that relationship any time we are removing the parent of the AsyncStackTrace. This allows us to correctly release ownership of AsyncStackTraces as we nest deeper, then preventing us from recursing during their deconstruction later. * LayoutTests/inspector/debugger/async-stack-trace-truncate-expected.txt: * LayoutTests/inspector/debugger/async-stack-trace-truncate.html: - Add test case that creates a nested set of AsyncStackTrace/ScriptCallStack that will exceed the size of the stack if not correctly truncated. * Source/JavaScriptCore/inspector/AsyncStackTrace.cpp: (Inspector::AsyncStackTrace::remove): Remove the ScriptCallStack's parent at the same time we remove the AsyncStackTrace's parent. * Source/JavaScriptCore/inspector/ScriptCallStack.cpp: (Inspector::ScriptCallStack::removeParentStackTrace): * Source/JavaScriptCore/inspector/ScriptCallStack.h: Canonical link: https://commits.webkit.org/259548.467@safari-7615-branch Commit: 68c5195200d91169b7b6f0e3c1fcdabe7927b040 https://github.com/WebKit/WebKit/commit/68c5195200d91169b7b6f0e3c1fcdabe7927b040 Author: Chirag M Shah <chirag_m_s...@apple.com> Date: 2023-05-23 (Tue, 23 May 2023) Changed paths: A LayoutTests/svg/animations/svg-element-attribute-changed-crash-expected.txt A LayoutTests/svg/animations/svg-element-attribute-changed-crash.html M Source/WebCore/svg/properties/SVGAnimatedProperty.cpp Log Message: ----------- Cherry-pick 259548.475@safari-7615-branch (aaa1c998206d). https://bugs.webkit.org/show_bug.cgi?id=254281 Fix heap use-after-free in Update::addSVGRendererUpdate https://bugs.webkit.org/show_bug.cgi?id=254281 rdar://107052707 Reviewed by Ryosuke Niwa. Update::addSVGRendererUpdate can end up removing the SVGElement from m_roots, which can result in SVGElement being deleted when an attribute change happens. This change prevents that by protecting the SVGElement using a RefPtr. * LayoutTests/svg/animations/svg-element-attribute-changed-crash-expected.txt: Added. * LayoutTests/svg/animations/svg-element-attribute-changed-crash.html: Added. * Source/WebCore/svg/properties/SVGAnimatedProperty.cpp: (WebCore::SVGAnimatedProperty::commitPropertyChange): Canonical link: https://commits.webkit.org/259548.475@safari-7615-branch Commit: b3a18564f431333959043b094fa9d283846321dc https://github.com/WebKit/WebKit/commit/b3a18564f431333959043b094fa9d283846321dc Author: Matthew Finkel <sys...@apple.com> Date: 2023-05-24 (Wed, 24 May 2023) Changed paths: M LayoutTests/http/tests/resources/redirect.py A LayoutTests/http/tests/websocket/tests/hybi/websocket-blocked-sending-cookie-as-third-party-after-redirect-expected.txt A LayoutTests/http/tests/websocket/tests/hybi/websocket-blocked-sending-cookie-as-third-party-after-redirect.html A LayoutTests/http/tests/websocket/tests/hybi/websocket-blocked-sending-cookie-as-third-party-after-ws-redirect-expected.txt A LayoutTests/http/tests/websocket/tests/hybi/websocket-blocked-sending-cookie-as-third-party-after-ws-redirect.html A LayoutTests/http/tests/websocket/tests/hybi/websocket-blocked-sending-cookie-as-third-party-expected.txt A LayoutTests/http/tests/websocket/tests/hybi/websocket-blocked-sending-cookie-as-third-party.html A LayoutTests/http/tests/websocket/tests/hybi/websocket-blocked-sending-cookie-as-third-party_wsh.py M LayoutTests/platform/mac-wk1/TestExpectations M Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.cpp M Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.h M Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.messages.in M Source/WebKit/NetworkProcess/NetworkSession.cpp M Source/WebKit/NetworkProcess/NetworkSession.h M Source/WebKit/NetworkProcess/NetworkSocketChannel.cpp M Source/WebKit/NetworkProcess/NetworkSocketChannel.h M Source/WebKit/NetworkProcess/cocoa/NetworkDataTaskCocoa.h M Source/WebKit/NetworkProcess/cocoa/NetworkDataTaskCocoa.mm M Source/WebKit/NetworkProcess/cocoa/NetworkSessionCocoa.h M Source/WebKit/NetworkProcess/cocoa/NetworkSessionCocoa.mm A Source/WebKit/NetworkProcess/cocoa/NetworkTaskCocoa.h A Source/WebKit/NetworkProcess/cocoa/NetworkTaskCocoa.mm M Source/WebKit/NetworkProcess/cocoa/WebSocketTaskCocoa.h M Source/WebKit/NetworkProcess/cocoa/WebSocketTaskCocoa.mm M Source/WebKit/NetworkProcess/curl/NetworkSessionCurl.cpp M Source/WebKit/NetworkProcess/curl/NetworkSessionCurl.h M Source/WebKit/NetworkProcess/soup/NetworkSessionSoup.cpp M Source/WebKit/NetworkProcess/soup/NetworkSessionSoup.h M Source/WebKit/SourcesCocoa.txt M Source/WebKit/WebKit.xcodeproj/project.pbxproj M Source/WebKit/WebProcess/Network/WebSocketChannel.cpp M Tools/TestWebKitAPI/Tests/WebKitCocoa/WKHTTPCookieStore.mm Log Message: ----------- Cherry-pick 259548.477@safari-7615-branch (a5d38dc00a5d). https://bugs.webkit.org/show_bug.cgi?id=251835 Apply cookie policy on WebSocket request https://bugs.webkit.org/show_bug.cgi?id=254220 rdar://106831525 Reviewed by Alex Christensen. WebKit's cookie policy was not correctly applied in the WebSocket handshake. In this patch we now use the same logic in WebSocket requests as we already used in HTTP requests. This policy is applied during HTTP redirects, as well. The shared logic is moved into a new common base class that is shared by WebSocketTasks and DataTasks. Covered by new Layout and API tests. * LayoutTests/http/tests/resources/redirect.py: (set_cookie): * LayoutTests/http/tests/websocket/tests/hybi/websocket-blocked-sending-cookie-as-third-party-after-redirect-expected.txt: Added. * LayoutTests/http/tests/websocket/tests/hybi/websocket-blocked-sending-cookie-as-third-party-after-redirect.html: Added. * LayoutTests/http/tests/websocket/tests/hybi/websocket-blocked-sending-cookie-as-third-party-after-ws-redirect-expected.txt: Added. * LayoutTests/http/tests/websocket/tests/hybi/websocket-blocked-sending-cookie-as-third-party-after-ws-redirect.html: Added. * LayoutTests/http/tests/websocket/tests/hybi/websocket-blocked-sending-cookie-as-third-party-expected.txt: Added. * LayoutTests/http/tests/websocket/tests/hybi/websocket-blocked-sending-cookie-as-third-party.html: Added. * LayoutTests/http/tests/websocket/tests/hybi/websocket-blocked-sending-cookie-as-third-party_wsh.py: Added. (HeaderCache): (web_socket_do_extra_handshake): (web_socket_transfer_data): * LayoutTests/platform/mac-wk1/TestExpectations: Add new tests. * Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.cpp: (WebKit::NetworkConnectionToWebProcess::createSocketChannel): * Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.h: * Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.messages.in: * Source/WebKit/NetworkProcess/NetworkSession.cpp: (WebKit::NetworkSession::createWebSocketTask): * Source/WebKit/NetworkProcess/NetworkSession.h: * Source/WebKit/NetworkProcess/NetworkSocketChannel.cpp: (WebKit::NetworkSocketChannel::create): (WebKit::NetworkSocketChannel::NetworkSocketChannel): (WebKit::NetworkSocketChannel::session const): (WebKit::NetworkSocketChannel::session): Deleted. * Source/WebKit/NetworkProcess/NetworkSocketChannel.h: Generally, plumb some required information down in to the Network Process for making policy decisions. * Source/WebKit/NetworkProcess/cocoa/NetworkDataTaskCocoa.h: * Source/WebKit/NetworkProcess/cocoa/NetworkDataTaskCocoa.mm: (WebKit::NetworkDataTaskCocoa::applySniffingPoliciesAndBindRequestToInferfaceIfNeeded): (WebKit::NetworkDataTaskCocoa::updateFirstPartyInfoForSession): (WebKit::NetworkDataTaskCocoa::NetworkDataTaskCocoa): (WebKit::NetworkDataTaskCocoa::willPerformHTTPRedirection): (WebKit::NetworkDataTaskCocoa::task const): (WebKit::lastRemoteIPAddress): Deleted. (WebKit::NetworkDataTaskCocoa::statelessCookieStorage): Deleted. (WebKit::lastCNAMEDomain): Deleted. (WebKit::NetworkDataTaskCocoa::shouldApplyCookiePolicyForThirdPartyCloaking const): Deleted. (): Deleted. (WebKit::shouldCapCookieExpiryForThirdPartyIPAddress): Deleted. (WebKit::NetworkDataTaskCocoa::applyCookiePolicyForThirdPartyCloaking): Deleted. (WebKit::NetworkDataTaskCocoa::blockCookies): Deleted. (WebKit::NetworkDataTaskCocoa::unblockCookies): Deleted. (WebKit::NetworkDataTaskCocoa::needsFirstPartyCookieBlockingLatchModeQuirk const): Deleted. (WebKit::updateTaskWithFirstPartyForSameSiteCookies): Deleted. (WebKit::computeIsAlwaysOnLoggingAllowed): Deleted. (WebKit::NetworkDataTaskCocoa::isAlwaysOnLoggingAllowed const): Deleted. These deleted functions are moved into the NetworkTaskCocoa class. * Source/WebKit/NetworkProcess/cocoa/NetworkSessionCocoa.h: * Source/WebKit/NetworkProcess/cocoa/NetworkSessionCocoa.mm: (-[WKNetworkSessionDelegate URLSession:task:willPerformHTTPRedirection:newRequest:completionHandler:]): (-[WKNetworkSessionDelegate existingWebSocketTask:]): (WebKit::NetworkSessionCocoa::continueDidReceiveChallenge): (WebKit::NetworkSessionCocoa::createWebSocketTask): * Source/WebKit/NetworkProcess/cocoa/NetworkTaskCocoa.h: Added. (WebKit::NetworkTaskCocoa::shouldRelaxThirdPartyCookieBlocking const): (WebKit::NetworkTaskCocoa::isAlwaysOnLoggingAllowed const): * Source/WebKit/NetworkProcess/cocoa/NetworkTaskCocoa.mm: Added. (computeIsAlwaysOnLoggingAllowed): (NetworkTaskCocoa::NetworkTaskCocoa): (shouldCapCookieExpiryForThirdPartyIPAddress): (NetworkTaskCocoa::shouldApplyCookiePolicyForThirdPartyCloaking const): (NetworkTaskCocoa::statelessCookieStorage): (NetworkTaskCocoa::lastRemoteIPAddress): (NetworkTaskCocoa::lastCNAMEDomain): (NetworkTaskCocoa::needsFirstPartyCookieBlockingLatchModeQuirk const): (NetworkTaskCocoa::applyCookiePolicyForThirdPartyCloaking): (NetworkTaskCocoa::blockCookies): (NetworkTaskCocoa::unblockCookies): (NetworkTaskCocoa::updateTaskWithFirstPartyForSameSiteCookies): (NetworkTaskCocoa::willPerformHTTPRedirection): New common base class for NetworkDataTaskCocoa and WebSocketTaskCocoa. * Source/WebKit/NetworkProcess/cocoa/WebSocketTaskCocoa.h: (WebKit::WebSocketTask::webProxyPageID const): (WebKit::WebSocketTask::pageID const): Deleted. * Source/WebKit/NetworkProcess/cocoa/WebSocketTaskCocoa.mm: (WebKit::WebSocketTask::WebSocketTask): (WebKit::WebSocketTask::task const): (WebKit::WebSocketTask::~WebSocketTask): Deleted. * Source/WebKit/NetworkProcess/curl/NetworkSessionCurl.cpp: (WebKit::NetworkSessionCurl::createWebSocketTask): * Source/WebKit/NetworkProcess/curl/NetworkSessionCurl.h: * Source/WebKit/NetworkProcess/soup/NetworkSessionSoup.cpp: (WebKit::NetworkSessionSoup::createWebSocketTask): * Source/WebKit/NetworkProcess/soup/NetworkSessionSoup.h: * Source/WebKit/SourcesCocoa.txt: * Source/WebKit/WebKit.xcodeproj/project.pbxproj: * Source/WebKit/WebProcess/Network/WebSocketChannel.cpp: (WebKit::WebSocketChannel::connect): * Tools/TestWebKitAPI/Tests/WebKitCocoa/WKHTTPCookieStore.mm: (TEST): Canonical link: https://commits.webkit.org/259548.477@safari-7615-branch Compare: https://github.com/WebKit/WebKit/compare/cbdc482f614b...b3a18564f431 _______________________________________________ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes