Timeline
Apr 20, 2021:
- 11:58 PM Changeset in webkit [276346] by
-
- 3 edits in trunk/JSTests
Unskip couple of tests for armv7l and mips
https://bugs.webkit.org/show_bug.cgi?id=224607
Unreviewed gardening.
- stress/check-stack-overflow-before-value-profiling-arguments.js:
(fullGC):
- stress/intl-suppored-locales-of.js:
- 10:47 PM Changeset in webkit [276345] by
-
- 3 edits in trunk/Source/WebKit
Connection::m_mainThread is unused
https://bugs.webkit.org/show_bug.cgi?id=224806
Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2021-04-20
Reviewed by Darin Adler.
Remove unused Connection::m_mainThread.
- Platform/IPC/Connection.cpp:
(IPC::Connection::Connection):
- Platform/IPC/Connection.h:
- 9:58 PM Changeset in webkit [276344] by
-
- 3 edits2 adds in trunk
Crash in CompositeEditCommand::insertNodeAt
https://bugs.webkit.org/show_bug.cgi?id=224504
Patch by Ian Gilbert <iang@apple.com> on 2021-04-20
Reviewed by Ryosuke Niwa.
Source/WebCore:
CompositeEditCommand::cleanupAfterDeletion will remove text nodes that only
have a newline. Added check inside FormatBlockCommand::formatRange to avoid
a null pointer dereference on a removed node.
Test: editing/execCommand/format-block-remove-text-node-crash.html
- editing/FormatBlockCommand.cpp:
(WebCore::FormatBlockCommand::formatRange):
LayoutTests:
Adding a regression test case.
- editing/execCommand/format-block-remove-text-node-crash-expected.txt: Added.
- editing/execCommand/format-block-remove-text-node-crash.html: Added.
- 7:38 PM Changeset in webkit [276343] by
-
- 3 edits in trunk/Source/JavaScriptCore
Static asserts in WasmAirIRGenerator.cpp and WasmB3IRGenerator.cpp trigger -Wnonnull warnings with GCC 11
https://bugs.webkit.org/show_bug.cgi?id=224826
Patch by Michael Catanzaro <Michael Catanzaro> on 2021-04-20
Reviewed by Yusuke Suzuki.
Rewrite these static asserts to avoid warnings when built with GCC 11. Credit to Jonathan
Wakely for providing this mind-bending solution.
- wasm/WasmAirIRGenerator.cpp:
(JSC::Wasm::AirIRGenerator::restoreWebAssemblyGlobalState):
(JSC::Wasm::AirIRGenerator::addCurrentMemory):
- wasm/WasmB3IRGenerator.cpp:
(JSC::Wasm::B3IRGenerator::addCurrentMemory):
- 6:42 PM Changeset in webkit [276342] by
-
- 2 edits in trunk/Source/WebCore
[clang] Remove implicit cast related warnings.
https://bugs.webkit.org/show_bug.cgi?id=224797
Reviewed by Darin Adler.
Added explicit cast to suppress warning.
Behavior is not changed from implicit cast.
No new tests because there's no behavior change.
- rendering/RenderBlockFlow.cpp:
(WebCore::RenderBlockFlow::adjustLinePositionForPagination):
- 6:20 PM Changeset in webkit [276341] by
-
- 3 edits2 adds in trunk
Crash due to VectorBuffer pre-allocation failure
https://bugs.webkit.org/show_bug.cgi?id=224840
Patch by Ian Gilbert <iang@apple.com> on 2021-04-20
Reviewed by Sam Weinig.
Source/WebKit:
Vector decoder could attempt to allocate a large buffer and on failure would crash.
Changed decode to avoid allocating a Vector based on the decoded size.
Test: ipc/large-vector-allocate-failure-crash.html
- Shared/Cocoa/WebCoreArgumentCodersCocoa.mm:
(IPC::ArgumentCoder<Vector<RefPtr<ApplePayError>>>::decode):
LayoutTests:
Added a regression test.
- ipc/large-vector-allocate-failure-crash-expected.txt: Added.
- ipc/large-vector-allocate-failure-crash.html: Added.
- 6:05 PM Changeset in webkit [276340] by
-
- 6 edits in trunk/Source
[Cocoa] Prevent GPU and WebContent processes from attempting to connect to the AppSSO service
https://bugs.webkit.org/show_bug.cgi?id=224834
<rdar://problem/72157514>
Reviewed by Jiewen Tan.
Source/WebCore:
Call version of '_protocolClassForRequest' that tells CFNetwork to ignore AppSSO flows
when building for a platform that supports it.
- platform/mac/WebCoreNSURLExtras.mm:
(WebCore::URLByCanonicalizingURL):
Source/WebCore/PAL:
- pal/spi/cf/CFNetworkSPI.h: Add declaration for 'skipAppSSO' version of NSURLProtocol method.
Source/WTF:
- wtf/PlatformHave.h:
- 5:58 PM Changeset in webkit [276339] by
-
- 3 edits in trunk/Source/WebKit
If an idle GPUProcess doesn't exit under memory pressure because it just launched, check again later
https://bugs.webkit.org/show_bug.cgi?id=224829
Reviewed by Darin Adler.
In r276305, I made it so that the GPUProcess does not exit under memory pressure when idle
if it launched less than 5 seconds ago. This gives the WebProcess time to schedule work with
the GPUProcess after launching it and makes sure we don't repeatedly / frequently exit &
relaunch the GPUProcess.
In this patch, I am tweaking the policy so that if we could have exited but didn't because
the GPUProcess was too young (less than 5 seconds old), then I schedule a timer for this
5 second deadline to check again if the GPUProcess could exit (meaning that it is unused).
When the timer fires, the process doesn't have to be under memory pressure still in order
to exit, it just needs to be idle. I figured the fact that we were under memory pressure
less than 5 seconds ago should be enough incentive to exit if idle.
- GPUProcess/GPUProcess.cpp:
(WebKit::GPUProcess::GPUProcess):
(WebKit::GPUProcess::canExitUnderMemoryPressure const):
- GPUProcess/GPUProcess.h:
- 5:48 PM Changeset in webkit [276338] by
-
- 2 edits in trunk/Source/WTF
[Cocoa] Enable MediaSession and MediaSessionCoordinator experimental features
https://bugs.webkit.org/show_bug.cgi?id=224822
<rdar://problem/76908014>
Reviewed by Jer Noble.
- Scripts/Preferences/WebPreferencesExperimental.yaml: Change the defaults for
MediaSessionCoordinatorEnabled and MediaSessionEnabled to true.
- 5:46 PM Changeset in webkit [276337] by
-
- 2 edits in trunk/LayoutTests
[ BigSur wk2 Debug arm64 ] http/wpt/preload/change-link-rel-attribute.html is a flakey crash
https://bugs.webkit.org/show_bug.cgi?id=224845
Unreviewed test gardening.
- platform/mac-wk2/TestExpectations: Updted test expectations to Pass Crash while test is reviewed.
- 5:41 PM Changeset in webkit [276336] by
-
- 4 edits in trunk/LayoutTests
[BigSur Wk1] media/video-ended-event-negative-playback.html is flaky text failure
https://bugs.webkit.org/show_bug.cgi?id=221106
<rdar://problem/73724911>
Reviewed by Jer Noble.
Seeking to 0.5 and playing backwards to the beginning of the file may take longer
than 2500ms, so increase the timeout to 5000ms and don't start the failure timer
until playback begins.
- media/video-ended-event-negative-playback-expected.txt:
- media/video-ended-event-negative-playback.html:
- platform/mac-wk1/TestExpectations:
- 5:37 PM BuildingCairoOnWindows edited by
- (diff)
- 5:22 PM Changeset in webkit [276335] by
-
- 2 edits in branches/safari-612.1.11-branch/Source/ThirdParty/ANGLE
Cherry-pick r276286. rdar://problem/76641662
Build ANGLE dylib into WK_OVERRIDE_FRAMEWORKS_DIR in builds that use it
https://bugs.webkit.org/show_bug.cgi?id=224785
<rdar://76641662>
Patch by Alex Christensen <achristensen@webkit.org> on 2021-04-19
Reviewed by Alexey Proskuryakov.
- Configurations/ANGLE-dynamic.xcconfig:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@276286 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 5:20 PM Changeset in webkit [276334] by
-
- 8 edits in branches/safari-612.1.11-branch/Source
Versioning.
WebKit-7612.1.11.2
- 5:14 PM Changeset in webkit [276333] by
-
- 21 edits1 move in trunk
Parse
theme_color
in web application manifests and pass it along to-[WKWebView themeColor]
https://bugs.webkit.org/show_bug.cgi?id=224796
Reviewed by Darin Adler.
Source/WebCore:
- Modules/applicationmanifest/ApplicationManifest.h:
(WebCore::ApplicationManifest::encode const):
(WebCore::ApplicationManifest::decode):
- Modules/applicationmanifest/ApplicationManifestParser.h:
- Modules/applicationmanifest/ApplicationManifestParser.cpp:
(WebCore::ApplicationManifestParser::parse):
(WebCore::ApplicationManifestParser::ApplicationManifestParser):
(WebCore::ApplicationManifestParser::parseManifest):
(WebCore::ApplicationManifestParser::logDeveloperWarning):
(WebCore::ApplicationManifestParser::parseColor): Added.
- loader/cache/CachedApplicationManifest.h:
- loader/cache/CachedApplicationManifest.cpp:
(WebCore::CachedApplicationManifest::process):
Pass an actualDocument
instead of aScriptExecutionContext
so that we can notify it
when finished parsing the JSON (Document::processApplicationManifest
).
- dom/Document.h:
(WebCore::Document::themeColor const):
- dom/Document.cpp:
(WebCore::Document::processMetaElementThemeColor): Added.
(WebCore::Document::themeColorChanged): Added.
(WebCore::Document::processApplicationManifest): Added.
(WebCore::Document::processThemeColor): Deleted.
Use the theme color from<meta name="theme-color">
if valid, falling back to the theme
color from"theme_color"
in the web application manifest (if specified). Only notify the
UIProcess of changes to<meta name="theme-color">
or the"theme_color"
in the web
application manifest if the new value is the value that would be used.
- html/HTMLMetaElement.cpp:
(WebCore::HTMLMetaElement::attributeChanged):
(WebCore::HTMLMetaElement::removedFromAncestor):
(WebCore::HTMLMetaElement::process):
- rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::rootBackgroundColorOrTransparencyChanged):
Drive-by: RenameDocument::processThemeColor
toDocument::processMetaElementThemeColor
so that it's more specific to<meta name="theme-color">
.
- page/ChromeClient.h:
(WebCore::ChromeClient::themeColorChanged const):
(WebCore::ChromeClient::pageExtendedBackgroundColorDidChange const):
Drive-by: Remove theColor
parameter since it's not actually used in the WebProcess.
Source/WebKit:
- UIProcess/API/Cocoa/_WKApplicationManifest.h:
- UIProcess/API/Cocoa/_WKApplicationManifest.mm:
(-[_WKApplicationManifest initWithCoder:]):
(-[_WKApplicationManifest encodeWithCoder:]):
(-[_WKApplicationManifest themeColor]): Added.
- WebProcess/WebCoreSupport/WebChromeClient.h:
- WebProcess/WebCoreSupport/WebChromeClient.cpp:
(WebKit::WebChromeClient::themeColorChanged const):
(WebKit::WebChromeClient::pageExtendedBackgroundColorDidChange const):
Drive-by: Remove theColor
parameter since it's not actually used in the WebProcess.
Tools:
- TestWebKitAPI/Tests/WebCore/ApplicationManifestParser.cpp:
(ApplicationManifestParserTest::testThemeColor): Added.
(TEST_F.ApplicationManifestParserTest.ThemeColor): Added.
- TestWebKitAPI/Tests/WebKitCocoa/ApplicationManifest.mm:
(TEST.ApplicationManifestBasic):
(TEST.ApplicationManifestCoding):
- TestWebKitAPI/Tests/WebKitCocoa/WKWebViewThemeColor.mm: Renamed from Tools/TestWebKitAPI/Tests/WebKitCocoa/HTMLMetaThemeColor.mm.
(TEST.WKWebViewThemeColor.ApplicationManifest):
(TEST.WKWebViewThemeColor.MetaElementOverridesApplicationManifest):
Rename this file now that it also deals with web application manifest (in addition to<meta name="theme-color">
).
- TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
- 5:08 PM Changeset in webkit [276332] by
-
- 9 edits in trunk/Source
Lots of spurious -Wnonnull warnings with GCC 11
https://bugs.webkit.org/show_bug.cgi?id=224452
Patch by Michael Catanzaro <Michael Catanzaro> on 2021-04-20
Reviewed by Darin Adler.
Source/WebCore:
- css/CSSValue.h:
(WebCore::CSSValue::deref):
- css/StyleRule.h:
(WebCore::StyleRuleBase::deref const):
- dom/Node.h:
(WebCore::Node::deref const):
Source/WebKit:
- WebProcess/Plugins/PluginView.cpp:
Source/WTF:
- wtf/RefPtr.h:
(WTF::DefaultRefDerefTraits::derefIfNotNull):
- 5:03 PM Changeset in webkit [276331] by
-
- 35 edits2 moves in trunk/Source
Rename WebCore::SelectionRect to WebCore::SelectionGeometry
https://bugs.webkit.org/show_bug.cgi?id=224820
Reviewed by Megan Gardner.
Source/WebCore:
To prepare for rendering non-rectilinear selection quads on iOS using UIKit, rename
WebCore::SelectionRect
to
WebCore::SelectionGeometry
. In a subsequent patch, this class will be backed by aFloatQuad
instead of an
IntRect
, and will additionally contain a flag indicating whether it should render using the bounding rect of
the quad (and should additionally be coalesced with surrounding selection rects), or if it should render the
selection quad without coalescing.
No change in behavior.
- SourcesCocoa.txt:
- WebCore.xcodeproj/project.pbxproj:
- accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:
(-[WebAccessibilityObjectWrapper textRectsFromMarkers:withText:]):
- page/DragController.cpp:
- page/TextIndicator.cpp:
(WebCore::initializeIndicator):
- platform/ios/SelectionGeometry.cpp: Renamed from Source/WebCore/platform/ios/SelectionRect.cpp.
(WebCore::SelectionGeometry::SelectionGeometry):
(WebCore::SelectionGeometry::setLogicalLeft):
(WebCore::SelectionGeometry::setLogicalWidth):
(WebCore::SelectionGeometry::setLogicalTop):
(WebCore::SelectionGeometry::setLogicalHeight):
(WebCore::operator<<):
- platform/ios/SelectionGeometry.h: Renamed from Source/WebCore/platform/ios/SelectionRect.h.
(WebCore::SelectionGeometry::rect const):
(WebCore::SelectionGeometry::logicalLeft const):
(WebCore::SelectionGeometry::logicalWidth const):
(WebCore::SelectionGeometry::logicalTop const):
(WebCore::SelectionGeometry::logicalHeight const):
(WebCore::SelectionGeometry::direction const):
(WebCore::SelectionGeometry::minX const):
(WebCore::SelectionGeometry::maxX const):
(WebCore::SelectionGeometry::maxY const):
(WebCore::SelectionGeometry::lineNumber const):
(WebCore::SelectionGeometry::isLineBreak const):
(WebCore::SelectionGeometry::isFirstOnLine const):
(WebCore::SelectionGeometry::isLastOnLine const):
(WebCore::SelectionGeometry::containsStart const):
(WebCore::SelectionGeometry::containsEnd const):
(WebCore::SelectionGeometry::isHorizontal const):
(WebCore::SelectionGeometry::isInFixedPosition const):
(WebCore::SelectionGeometry::isRubyText const):
(WebCore::SelectionGeometry::pageNumber const):
(WebCore::SelectionGeometry::setRect):
(WebCore::SelectionGeometry::setDirection):
(WebCore::SelectionGeometry::setMinX):
(WebCore::SelectionGeometry::setMaxX):
(WebCore::SelectionGeometry::setMaxY):
(WebCore::SelectionGeometry::setLineNumber):
(WebCore::SelectionGeometry::setIsLineBreak):
(WebCore::SelectionGeometry::setIsFirstOnLine):
(WebCore::SelectionGeometry::setIsLastOnLine):
(WebCore::SelectionGeometry::setContainsStart):
(WebCore::SelectionGeometry::setContainsEnd):
(WebCore::SelectionGeometry::setIsHorizontal):
- rendering/RenderImage.cpp:
(WebCore::RenderImage::collectSelectionGeometries):
(WebCore::RenderImage::collectSelectionRects): Deleted.
- rendering/RenderImage.h:
- rendering/RenderLineBreak.cpp:
(WebCore::RenderLineBreak::collectSelectionGeometries):
(WebCore::RenderLineBreak::collectSelectionRects): Deleted.
- rendering/RenderLineBreak.h:
- rendering/RenderObject.cpp:
(WebCore::RenderObject::collectSelectionGeometries):
(WebCore::adjustLineHeightOfSelectionGeometries):
(WebCore::coalesceSelectionGeometries):
(WebCore::RenderObject::collectSelectionGeometriesWithoutUnionInteriorLines):
(WebCore::RenderObject::collectSelectionGeometriesInternal):
(WebCore::RenderObject::collectSelectionRects): Deleted.
(WebCore::adjustLineHeightOfSelectionRects): Deleted.
(WebCore::coalesceSelectionRects): Deleted.
(WebCore::RenderObject::collectSelectionRectsWithoutUnionInteriorLines): Deleted.
(WebCore::RenderObject::collectSelectionRectsInternal): Deleted.
- rendering/RenderObject.h:
- rendering/RenderSelectionInfo.cpp:
(WebCore::RenderSelectionInfo::RenderSelectionInfo):
- rendering/RenderText.cpp:
(WebCore::RenderText::collectSelectionGeometries):
(WebCore::RenderText::collectSelectionGeometriesForLineBoxes):
(WebCore::RenderText::selectionRectForRepaint):
(WebCore::RenderText::collectSelectionRects): Deleted.
(WebCore::RenderText::collectSelectionRectsForLineBoxes): Deleted.
- rendering/RenderText.h:
Source/WebKit:
See WebCore/ChangeLog for more details.
- Scripts/webkit/messages.py:
(headers_for_type):
- Shared/EditorState.cpp:
(WebKit::EditorState::PostLayoutData::encode const):
(WebKit::EditorState::PostLayoutData::decode):
(WebKit::operator<<):
- Shared/EditorState.h:
- Shared/WebCoreArgumentCoders.cpp:
(IPC::ArgumentCoder<SelectionGeometry>::encode):
(IPC::ArgumentCoder<SelectionGeometry>::decode):
(IPC::ArgumentCoder<SelectionRect>::encode): Deleted.
(IPC::ArgumentCoder<SelectionRect>::decode): Deleted.
- Shared/WebCoreArgumentCoders.h:
- Shared/ios/InteractionInformationAtPosition.h:
- Shared/ios/InteractionInformationRequest.h:
- UIProcess/API/ios/WKWebViewIOS.mm:
(-[WKWebView _accessibilityRetrieveRectsAtSelectionOffset:withText:completionHandler:]):
- UIProcess/WebPageProxy.h:
- UIProcess/ios/WKContentViewInteraction.h:
- UIProcess/ios/WKContentViewInteraction.mm:
(WebKit::WKSelectionDrawingInfo::WKSelectionDrawingInfo):
(WebKit::operator==):
(WebKit::operator<<):
(-[WKContentView _pointIsInsideSelectionRect:outBoundingRect:]):
(-[WKContentView _shouldToggleSelectionCommandsAfterTapAt:]):
(-[WKContentView webSelectionRectsForSelectionGeometries:]):
(-[WKContentView webSelectionRects]):
(-[WKContentView _lookupForWebView:]):
(-[WKContentView _shareForWebView:]):
(-[WKContentView _translateForWebView:]):
(-[WKContentView _addShortcutForWebView:]):
(-[WKContentView _showDictionary:]):
(-[WKContentView _accessibilityRetrieveRectsEnclosingSelectionOffset:withGranularity:]):
(-[WKContentView _accessibilityRetrieveRectsAtSelectionOffset:withText:completionHandler:]):
(-[WKContentView selectedTextRange]):
(-[WKContentView webSelectionRectsForSelectionRects:]): Deleted.
- UIProcess/ios/WKTextSelectionRect.h:
- UIProcess/ios/WKTextSelectionRect.mm:
(-[WKTextSelectionRect initWithCGRect:]):
(-[WKTextSelectionRect initWithSelectionGeometry:]):
(-[WKTextSelectionRect rect]):
(-[WKTextSelectionRect writingDirection]):
(-[WKTextSelectionRect containsStart]):
(-[WKTextSelectionRect containsEnd]):
(-[WKTextSelectionRect isVertical]):
(-[WKTextSelectionRect initWithSelectionRect:]): Deleted.
- UIProcess/ios/WebPageProxyIOS.mm:
(WebKit::WebPageProxy::requestRectsForGranularityWithSelectionOffset):
(WebKit::WebPageProxy::requestRectsAtSelectionOffsetWithText):
(WebKit::WebPageProxy::selectionBoundingRectInRootViewCoordinates const):
- WebProcess/WebPage/WebPage.h:
- WebProcess/WebPage/WebPage.messages.in:
- WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::convertContentToRootView):
(WebKit::WebPage::getPlatformEditorState const):
(WebKit::WebPage::getRectsForGranularityWithSelectionOffset):
(WebKit::WebPage::getRectsAtSelectionOffsetWithText):
(WebKit::WebPage::requestAutocorrectionData):
(WebKit::convertContentToRootViewSelectionRects): Deleted.
Source/WebKitLegacy/ios:
- WebCoreSupport/WebFrameIOS.mm:
(-[WebFrame selectionRectsForCoreRange:]):
- 4:58 PM Changeset in webkit [276330] by
-
- 2 edits in trunk/LayoutTests
[ BigSur Debug ] http/tests/security/webaudio-render-remote-audio-blocked-no-crossorigin.html is a flakey timeout
https://bugs.webkit.org/show_bug.cgi?id=224842
Unreviewed test gardening.
- platform/mac/TestExpectations: Updated test expectations to Pass Timeout while test is reviewed.
- 4:57 PM Changeset in webkit [276329] by
-
- 2 edits in trunk/Source/JavaScriptCore
-Warray-bounds warning in AirAllocateRegistersByGraphColoring.cpp with GCC 11
https://bugs.webkit.org/show_bug.cgi?id=224782
Patch by Michael Catanzaro <Michael Catanzaro> on 2021-04-20
Reviewed by Darin Adler.
These warnings don't make any sense to me. Suppress them.
- b3/air/AirAllocateRegistersByGraphColoring.cpp:
- 4:44 PM Changeset in webkit [276328] by
-
- 5 edits1 add in trunk/Tools
MacCatalyst tests crash on NSInternalInconsistencyException, reason: NSApplication has not been created yet
https://bugs.webkit.org/show_bug.cgi?id=224606
Reviewed by Wenson Hsieh.
- TestWebKitAPI/Configurations/TestWebKitAPI.xcconfig:
Link UIKitMacHelper in macCatalyst builds.
- TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
- TestWebKitAPI/ios/UIKitMacHelperSPI.h: Added.
- TestWebKitAPI/ios/mainIOS.mm:
(main):
Call UINSApplicationInstantiate to keep the tests limping along until we create an actual UIApp.
- TestWebKitAPI/Configurations/TestWTF.xcconfig:
Also, fix the TestWTF configuration to not link Cocoa in macCatalyst builds.
- 4:21 PM Changeset in webkit [276327] by
-
- 19 edits1 copy1 add in trunk
Separated models don't get opacity set on them at all
https://bugs.webkit.org/show_bug.cgi?id=224763
Reviewed by Tim Horton.
Source/WebCore:
Test: model-element/model-element-graphics-layers-opacity.html
This certainly won't be the way things land once separated/optimized
layer semantics are better understood, but for now, it is useful to
explicitly propogate the opacity of the owing layer to the content
layer if the content layer is a model layer. In the future, we may want
to do this for any separated child (and conversely, only to the content
layer if it is separated), but this will allow us to play a bit futher
in our experimentation.
Also adds support for dumping the opacity of a content layer to make
this testable.
- platform/graphics/GraphicsLayerClient.h:
- platform/graphics/ca/GraphicsLayerCA.cpp:
(WebCore::GraphicsLayerCA::setContentsToModel):
(WebCore::GraphicsLayerCA::purposeNameForInnerLayer const):
(WebCore::GraphicsLayerCA::dumpInnerLayer const):
- testing/Internals.cpp:
(WebCore::toPlatformLayerTreeFlags):
- testing/Internals.h:
- testing/Internals.idl:
LayoutTests:
Add new test which use the macOS/iOS only platformLayerTreeAsText
internals function to show that opacity is getting set on the content
layer.
- model-element/model-element-graphics-layers-opacity-expected.txt: Added.
- model-element/model-element-graphics-layers-opacity.html: Added.
- platform/gtk/TestExpectations:
- platform/wpe/TestExpectations:
- platform/win/TestExpectations:
- compositing/video/video-object-position-expected.txt:
- compositing/visible-rect/mask-layer-coverage-expected.txt:
- fullscreen/full-screen-layer-dump-expected.txt:
- platform/ios/compositing/video/video-object-position-expected.txt:
- platform/ios/compositing/visible-rect/mask-layer-coverage-expected.txt:
- platform/mac/compositing/images/direct-image-object-fit-expected.txt:
- platform/mac/compositing/reflections/direct-image-object-fit-reflected-expected.txt:
- platform/mac/compositing/video/video-object-fit-expected.txt:
Update results for update content layer type dumping.
- 4:11 PM Changeset in webkit [276326] by
-
- 12 edits4 adds in trunk
Preconnect tasks and preflight checks do not correctly mark app-bound context string
https://bugs.webkit.org/show_bug.cgi?id=224779
<rdar://problem/76738879>
Reviewed by Brent Fulgham.
Source/WebCore:
Tests: http/tests/in-app-browser-privacy/context-string-preconnect.html
http/tests/in-app-browser-privacy/context-string-preflight.html
- loader/CrossOriginAccessControl.cpp:
(WebCore::createAccessControlPreflightRequest):
CORS preflight case.
Source/WebKit:
We are using request.firstPartyForCookies() to set the app-bound request
context as of https://bugs.webkit.org/show_bug.cgi?id=224311. Some
cases like preconnect tasks and CORS preflight requests don't set this
value because it is not needed for cookie purposes. Since we are now
using it for app-bound requests, and the context is needed for all
network connections, even those that don't send bytes, we should set
the firstPartyForCookies for these cases.
- NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::preconnectTo):
This is the code path for preconnecting to the main resource load, so
we can use the given URL as the first party.
- WebProcess/Network/WebLoaderStrategy.cpp:
(WebKit::WebLoaderStrategy::preconnectTo):
This is the code path for sub resources. We should use the document
firstPartyForCookies value.
Tools:
We should clear data between tests to avoid flakiness or failures.
- WebKitTestRunner/TestController.cpp:
(WTR::TestController::resetStateToConsistentValues):
(WTR::TestController::clearAppBoundNavigationData):
- WebKitTestRunner/TestController.h:
- WebKitTestRunner/cocoa/TestControllerCocoa.mm:
(WTR::TestController::clearAppBoundNavigationData):
LayoutTests:
Layout test coverage.
- http/tests/in-app-browser-privacy/context-string-for-subframe.html:
Drive by fix to create the subframe with JS so we can add a dummy
parameter to avoid caching and causing flakiness. Found this while
testing for flakiness in new tests.
- http/tests/in-app-browser-privacy/context-string-preconnect-expected.txt: Added.
- http/tests/in-app-browser-privacy/context-string-preconnect.html: Added.
- http/tests/in-app-browser-privacy/context-string-preflight-expected.txt: Added.
- http/tests/in-app-browser-privacy/context-string-preflight.html: Added.
Test an unsuccessful preflight request so a real request doesn't
override the stored context data for testing purposes.
- 3:45 PM Changeset in webkit [276325] by
-
- 9 edits in trunk/Source
[iOS][FCR] Update date/time picker appearance
https://bugs.webkit.org/show_bug.cgi?id=224794
<rdar://problem/76785859>
Reviewed by Wenson Hsieh.
Source/WebCore:
- en.lproj/Localizable.strings:
Remove now unused string.
- platform/LocalizedStrings.cpp:
- platform/LocalizedStrings.h:
- platform/cocoa/LocalizedStringsCocoa.mm:
(WebCore::formControlDoneButtonTitle):
Moved definition out of PLATFORM(WATCHOS) in LocalizedStrings.cpp and
into LocalizedStringsCocoa, so that the "Done" string can be used by
PLATFORM(IOS_FAMILY).
Source/WebKit:
Date/time pickers should have a system material background and should
avoid obscuring the associated element when possible.
- Platform/spi/ios/UIKitSPI.h:
Add new SPI declarations to support date/time picker modifications.
- UIProcess/ios/WKContentViewInteraction.mm:
(createTargetedPreview):
(createFallbackTargetedPreview):
(-[WKContentView _createTargetedContextMenuHintPreviewForFocusedElement]):
Set the UITargetedPreview background color to clearColor when
presenting a date/time picker, so that the presented picker has a
visible material effect. Without this change, the picker would have a
solid white or black background.
- UIProcess/ios/forms/WKDateTimeInputControl.mm:
(-[WKDateTimePickerViewController initWithDelegate:]):
(-[WKDateTimePickerViewController viewDidLoad]):
Add a system material background to the date picker using
UIVisualEffectView.
(-[WKDateTimePickerViewController datePickerChanged:]):
(-[WKDateTimePickerViewController resetButtonPressed:]):
(-[WKDateTimePickerViewController doneButtonPressed:]):
(-[WKDateTimePickerViewController datePickerInsets]):
(-[WKDateTimePickerViewController preferredDatePickerSize]):
(-[WKDateTimePickerViewController preferredContentSize]):
(-[WKDateTimePickerViewController date]):
(-[WKDateTimePickerViewController setDate:]):
(-[WKDateTimePickerViewController setDatePickerMode:]):
(-[WKDateTimePickerViewController timeZone]):
(-[WKDateTimePickerViewController setTimeZone:]):
(-[WKDateTimePickerViewController calendar]):
(-[WKDateTimePicker initWithView:datePickerMode:]):
(-[WKDateTimePicker _preferredEdgeInsetsForDateTimePicker]):
Attempt to present the date picker in a way that does not obscure the
element.
(-[WKDateTimePicker _contextMenuInteraction:styleForMenuWithConfiguration:]):
(-[WKDateTimePicker contextMenuInteraction:configurationForMenuAtLocation:]):
(-[WKDateTimePicker dateTimePickerViewControllerDidChangeDate:]):
(-[WKDateTimePicker dateTimePickerViewControllerDidPressResetButton:]):
(-[WKDateTimePicker dateTimePickerViewControllerDidPressDoneButton:]):
(-[WKDateTimePicker shouldForceGregorianCalendar]):
(-[WKDateTimePicker dealloc]):
(-[WKDateTimePicker _timeZoneOffsetFromGMT:]):
(-[WKDateTimePicker _sanitizeInputValueForFormatter:]):
(-[WKDateTimePicker dateFormatterForPicker]):
(-[WKDateTimePicker _dateChangedSetAsNumber]):
(-[WKDateTimePicker _dateChangedSetAsString]):
(-[WKDateTimePicker setDateTimePickerToInitialValue]):
(-[WKDateTimePicker controlView]):
Updated this method to return nil, matching other form controls that
do not present a keyboard input view (example: <select>).
(-[WKDateTimePicker controlBeginEditing]):
(-[WKDateTimePicker controlEndEditing]):
(-[WKDateTimePicker calendarType]):
(-[WKDateTimePicker hour]):
(-[WKDateTimePicker minute]):
(-[WKDateTimePicker setHour:minute:]):
- 3:42 PM Changeset in webkit [276324] by
-
- 13 edits in trunk/Source
FullGCActivityCallback should use the percentage of pages uncompressed in RAM to determine deferral.
https://bugs.webkit.org/show_bug.cgi?id=224817
Reviewed by Filip Pizlo.
Source/JavaScriptCore:
Right now we try to determine if too many pages are paged out by
dereferencing them and bailing out of the GC if we go over a
deadline. While this works if the only goal is to avoid causing
extensive thrashing on spinny disks (HDD), it doesn't prevent
thrashing when access to disk is fast (e.g. SSD). This is because
on fast disks the proportional time to load the memory from disk
is much lower. Additionally, on SSDs in particular we don't want
to load the pages into RAM then bail as that will force a
different page onto disk, increasing wear.
This patch switches to asking the OS if each MarkedBlock is paged
out. Then if we are over a threshold we wait until we would have
GC'd anyway. This patch uses the (maxVMGrowthFactor - 1) as the
percentage of "slow" pages (paged out or compressed) needed to
defer the GC. The idea behind that threshold is that if we add
that many pages then the same number of pages would be forced
out of RAM for us to do a GC anyway (in the limit).
- heap/BlockDirectory.cpp:
(JSC::BlockDirectory::updatePercentageOfPagedOutPages):
(JSC::BlockDirectory::isPagedOut): Deleted.
- heap/BlockDirectory.h:
- heap/FullGCActivityCallback.cpp:
(JSC::FullGCActivityCallback::doCollection):
- heap/Heap.cpp:
(JSC::Heap::isPagedOut):
- heap/Heap.h:
- heap/MarkedSpace.cpp:
(JSC::MarkedSpace::isPagedOut):
- heap/MarkedSpace.h:
- runtime/OptionsList.h:
Source/WebKit:
Add mincore to the acceptable syscall list.
- WebProcess/com.apple.WebProcess.sb.in:
Source/WTF:
Add a noexcept flavor of FunctionTraits. On Linux mincore (and probably other syscalls) are marked noexcept so the existing overloads don't work.
- wtf/FunctionTraits.h:
- 3:37 PM Changeset in webkit [276323] by
-
- 2 edits in trunk/Tools
[PlayStation] Remove warnings for unused parameter.
https://bugs.webkit.org/show_bug.cgi?id=224830
Reviewed by Darin Adler.
- MiniBrowser/playstation/main.cpp:
(main):
- 3:33 PM Changeset in webkit [276322] by
-
- 1 edit2 adds in trunk/LayoutTests
Add test for line breaking around inline-blocks.
https://bugs.webkit.org/show_bug.cgi?id=224832
Reviewed by Alan Bujtas.
- fast/css/inline-block-line-break-expected.html: Added.
- fast/css/inline-block-line-break.html: Added.
- 3:25 PM Changeset in webkit [276321] by
-
- 1 copy in tags/Safari-612.1.11.1
Tag Safari-612.1.11.1.
- 3:13 PM Changeset in webkit [276320] by
-
- 2 edits in trunk/Source/WebKit
Platform Key registration does not prompt for user password when in biometric lockout
https://bugs.webkit.org/show_bug.cgi?id=224828
<rdar://76907840>
Reviewed by Brent Fulgham.
Covered by manul tests.
- UIProcess/WebAuthentication/Cocoa/LocalConnection.mm:
(WebKit::LocalConnection::verifyUser):
- 3:06 PM Changeset in webkit [276319] by
-
- 5 edits in trunk
gtest.a exports symbols, causing link-time warning: direct access in function ... means the weak symbol cannot be overridden at runtime. This was likely caused by different translation units being compiled with different visibility settings.
https://bugs.webkit.org/show_bug.cgi?id=224812
Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2021-04-20
Reviewed by Alexey Proskuryakov.
Compile and use gtest as a static library that does not export any symbols.
Fixes link-time warnings about mismatch of symbol visibility. The error occurs when
gtest.a is compiled exporting symbols with default visibility, but the clients use the library
and hide the symbols via ld flags.
Source/ThirdParty:
- gtest/xcode/Config/StaticLibraryTarget.xcconfig:
Compile the static gtest with GTEST_API_=
Tools:
- TestWebKitAPI/Configurations/TestWTF.xcconfig:
- TestWebKitAPI/Configurations/TestWebKitAPI.xcconfig:
Compile the gtest clients with GTEST_API_=
- 2:45 PM Changeset in webkit [276318] by
-
- 2 edits in trunk/Source/ThirdParty/ANGLE
MacCatalyst ANGLE is linked with @loader_path/../../../libANGLE-shared.dylib
https://bugs.webkit.org/show_bug.cgi?id=224602
Patch by Alex Christensen <achristensen@webkit.org> on 2021-04-20
Reviewed by Alexey Proskuryakov.
- Configurations/ANGLE-dynamic.xcconfig:
- 1:21 PM Changeset in webkit [276317] by
-
- 4 edits in trunk
editing/execCommand/insert-image-in-composed-list.html is crashing
https://bugs.webkit.org/show_bug.cgi?id=224801
Reviewed by Don Olmstead.
Source/WebCore:
This crash were happened for Release builds of GTK port compiled
by GCC and WinCairo port compiled by Clang 12.
As per the comment of Position::containerNode(), it returns null
in some cases.
- editing/DeleteSelectionCommand.cpp:
(WebCore::DeleteSelectionCommand::removeRedundantBlocks): Added
null checking for the return value of Position::containerNode().
LayoutTests:
- platform/gtk/TestExpectations: Unmarked it.
- 1:19 PM WebKitGTK/2.32.x edited by
- (diff)
- 1:16 PM Changeset in webkit [276316] by
-
- 12 edits in trunk
[CMake] Don't use FORWARDING_HEADERS_DIR for JSC GLib headers
https://bugs.webkit.org/show_bug.cgi?id=224821
Reviewed by Michael Catanzaro.
.:
Create CMake variables JavaScriptCoreGLib_FRAMEWORK_HEADERS_DIR and
JavaScriptCoreGLib_DERIVED_SOURCES_DIR to represent where the JavaScriptCore GLib headers
and derived sources will reside. The names and locations set then follow along with the
conventions used for the other frameworks.
- Source/cmake/OptionsGTK.cmake:
- Source/cmake/OptionsWPE.cmake:
Source/JavaScriptCore:
Use JavaScriptCoreGLib_FRAMEWORK_HEADERS_DIR and JavaScriptCoreGLib_DERIVED_SOURCES_DIR
for GLib JSC headers instead of FORWARDING_HEADERS_DIR and DERIVED_SOURCES_DIR.
- GLib.cmake:
- PlatformGTK.cmake:
Source/WebKit:
Use JavaScriptCoreGLib_FRAMEWORK_HEADERS_DIR and JavaScriptCoreGLib_DERIVED_SOURCES_DIR
for GLib JSC headers instead of FORWARDING_HEADERS_DIR and DERIVED_SOURCES_DIR.
- PlatformGTK.cmake:
Tools:
Use JavaScriptCoreGLib_FRAMEWORK_HEADERS_DIR and JavaScriptCoreGLib_DERIVED_SOURCES_DIR
for GLib JSC headers instead of FORWARDING_HEADERS_DIR and DERIVED_SOURCES_DIR.
- MiniBrowser/wpe/CMakeLists.txt:
- TestWebKitAPI/glib/CMakeLists.txt:
- TestWebKitAPI/glib/PlatformWPE.cmake:
- 1:02 PM WebKitGTK/2.32.x edited by
- (diff)
- 12:29 PM Changeset in webkit [276315] by
-
- 5 edits in trunk/Tools
Switch commit-queue back to git.webkit.org
https://bugs.webkit.org/show_bug.cgi?id=224762
Reviewed by Jonathan Bedard.
- CISupport/ews-build/factories.py:
(CommitQueueFactory.init): Use git.webkit.org for Commit-Queue.
- CISupport/ews-build/factories_unittest.py:
(TestCommitQueueFactory.test_commit_queue_factory): Updated unit-tests.
- CISupport/ews-build/steps.py:
(CheckOutSource.init):
(PushCommitToWebKitRepo.evaluateCommand):
- 11:38 AM Changeset in webkit [276314] by
-
- 2 edits in trunk/Source/WebKit
[macOS] Add additional logging to help identify SSO dialog dismissals
https://bugs.webkit.org/show_bug.cgi?id=224703
<rdar://problem/76783787>
Reviewed by Maciej Stachowiak.
Add logging around the SSO sheet life cycle to help identify edge cases..."
- UIProcess/Cocoa/SOAuthorization/SOAuthorizationSession.mm:
(WebKit::SOAuthorizationSession::presentViewController):
(WebKit::SOAuthorizationSession::dismissViewController):
- 11:27 AM Changeset in webkit [276313] by
-
- 5 edits2 copies1 add in branches/safari-612.1.11-branch/Source/WebCore
Cherry-pick r275907. rdar://problem/76907146
[WebIDL] includes for
Conditional
dictionary members should also be guarded
https://bugs.webkit.org/show_bug.cgi?id=224501
<rdar://problem/76598492>
Reviewed by Tim Horton.
WebKitAdditions sometimes needs to conditionally include IDL files and in those cases the
generatedJS*.h
might not get created even though the wrapped C++ type does exist. In
these cases, we should also guard the#include JS*.h
(in addition to the already guarded
usage of the wrapped C++ type inconvertDictionary
).
- bindings/scripts/CodeGeneratorJS.pm: (GenerateDictionaryImplementationContent):
- bindings/scripts/test/TestDictionary.idl: Added.
- bindings/scripts/test/JS/JSTestDictionary.h: Added.
- bindings/scripts/test/JS/JSTestDictionary.cpp: Added.
- bindings/scripts/test/TestDictionaryWithOnlyConditionalMembers.idl:
- bindings/scripts/test/JS/JSTestDictionaryWithOnlyConditionalMembers.cpp:
- bindings/scripts/test/SupplementalDependencies.dep:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@275907 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 11:02 AM Changeset in webkit [276312] by
-
- 3 edits in trunk/Source/WebKit
[Mac Catalyst] Adopt UIView API to avoid showing focus rings around WKContentView
https://bugs.webkit.org/show_bug.cgi?id=224819
Reviewed by Tim Horton.
Replace our usage of the deprecated
-[UIView _setFocusRingType:]
method with API onUIView
that achieves
the same effect.
- Platform/spi/ios/UIKitSPI.h:
- UIProcess/ios/WKContentView.mm:
(-[WKContentView _commonInitializationWithProcessPool:configuration:]):
- 10:19 AM Changeset in webkit [276311] by
-
- 5 edits in trunk
Fix use-after-move introduced in r275407
https://bugs.webkit.org/show_bug.cgi?id=224045
Patch by Alex Christensen <achristensen@webkit.org> on 2021-04-20
Reviewed by Darin Adler.
Source/WebKit:
- UIProcess/ios/WKGeolocationProviderIOS.mm:
(-[WKGeolocationProviderIOS geolocationAuthorizationGranted]):
Tools:
- TestWebKitAPI/Tests/WebKitCocoa/Geolocation.mm:
(-[FakeWebGeolocationPolicyDecider receivedRequest]):
(-[FakeWebGeolocationPolicyDecider decidePolicyForGeolocationRequestFromOrigin:requestingURL:window:listener:]):
(fakeWebGeolocationPolicyDecider):
(TestWebKitAPI::TEST):
- TestWebKitAPI/ios/UIKitSPI.h:
- 10:17 AM Changeset in webkit [276310] by
-
- 11 edits in trunk/Source/WebInspectorUI
Web Inspector: Tree Outlines:
ondetach
can be called withoutonattach
ever being called
https://bugs.webkit.org/show_bug.cgi?id=224652
<rdar://problem/76746385>
Reviewed by Devin Rousso.
Ensure
TreeElement.ondetach()
cannot be called if the conditions
for previously callingTreeElement.onattach()
have not been met.
- UserInterface/Views/TreeElement.js:
(WI.TreeElement.prototype._detach):
- 10:13 AM Changeset in webkit [276309] by
-
- 2 edits in trunk/Source/WebKit
[WPE] QML WPEView dynamic loading fails
https://bugs.webkit.org/show_bug.cgi?id=224814
Patch by Marco Felsch <m.felsch@pengutronix.de> on 2021-04-20
Reviewed by Philippe Normand.
The scene graph can be initialized when we receive window handle change
notification and so we will not receive a scenegraph initialization
notification. In such case we need to initzialize it ourself.
No new tests. Testing can be done if the WPEView is moved to a
QML component which gets loaded later on demand.
- UIProcess/API/wpe/qt/WPEQtView.cpp:
(WPEQtView::configureWindow):
- 9:50 AM Changeset in webkit [276308] by
-
- 7 edits in trunk
[WPE][Qt] Fix build failure after r270690
https://bugs.webkit.org/show_bug.cgi?id=223070
Patch by Marco Felsch <m.felsch@pengutronix.de> on 2021-04-20
Reviewed by Philippe Normand.
Source/WebKit:
WPE fails to build with
-DENABLE_WPE_QT_API=ON
after adapting the
visibility for linked frameworks done by r270690.
The reason for that is that the visibility is now more strict and we
have to add the WTF dependecy or drop the WTF fast-allocate mechanism.
Adding the WTF dependency is a bit odd since this would staticly link
the WTF lib into a small wrapper lib. Also this lib has nothing to do
with Webkit at all. It is just a QT adaption library.
No new tests, it can be build again.
- UIProcess/API/wpe/qt/WPEQtView.cpp:
(WPEQtView::notifyLoadChangedCallback):
(WPEQtView::notifyLoadFailedCallback):
(WPEQtView::runJavaScript):
- UIProcess/API/wpe/qt/WPEQtViewBackend.cpp:
(WPEQtViewBackend::create):
- UIProcess/API/wpe/qt/WPEQtViewBackend.h:
- UIProcess/API/wpe/qt/WPEQtViewLoadRequest.h:
Drop WTF usage and use system allocator since the lib has nothing to do
with Webkit at all.
Tools:
- Scripts/webkitpy/style/checker.py:
Add exception for WPE QT wrapper library to use system alloc instead
of WTF.
- 9:16 AM Changeset in webkit [276307] by
-
- 5 edits in trunk
REGRESSION (r275523): [iOS] Opaque system fill colors are incorrect in dark mode
https://bugs.webkit.org/show_bug.cgi?id=224800
<rdar://problem/76878335>
Reviewed by Darin Adler.
Source/WebCore:
r275523 updated form control backgrounds to use opaque variants of
system colors. This change was implemented by blending the system
colors over a white background. However, in dark mode, the colors
should be blended over a black background, to retain a dark appearance.
Updated an existing test to validate the colors in light and dark mode.
- rendering/RenderThemeIOS.mm:
(WebCore::systemColorFromCSSValueSystemColorInformation):
Added a useDarkAppearance parameter, so that the system color can be
blended over black when necessary.
(WebCore::systemColorFromCSSValueID):
(WebCore::RenderThemeIOS::cssValueToSystemColorMap const):
LayoutTests:
- fast/css/ios/system-color-for-css-value-expected.txt:
- fast/css/ios/system-color-for-css-value.html:
- 8:47 AM Changeset in webkit [276306] by
-
- 14 edits in trunk/Source
Remove UNUSED warnings based on the configuration.
https://bugs.webkit.org/show_bug.cgi?id=224787
Reviewed by Darin Adler.
Added UNUSED_VARIABLE or its variant to suppress warnings based on the configuration.
Source/WebCore:
No new tests because it just for suppression of the warnings.
- loader/SubresourceLoader.cpp:
(WebCore::SubresourceLoader::willSendRequestInternal):
- page/PageConsoleClient.cpp:
(WebCore::snapshotCanvas):
- page/PerformanceLogging.cpp:
(WebCore::PerformanceLogging::didReachPointOfInterest):
- platform/graphics/freetype/FontCacheFreeType.cpp:
(WebCore::FontCache::systemFallbackForCharacters):
- platform/image-decoders/jpeg/JPEGImageDecoder.cpp:
Source/WebKit:
- NetworkProcess/Classifier/ResourceLoadStatisticsStore.cpp:
(WebKit::ResourceLoadStatisticsStore::debugLogDomainsInBatches):
- NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::prepareToSuspend):
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::requestStorageSpace):
- WebProcess/Network/WebLoaderStrategy.cpp:
(WebKit::WebLoaderStrategy::scheduleLoadFromNetworkProcess):
- WebProcess/Storage/WebSWContextManagerConnection.cpp:
(WebKit::WebSWContextManagerConnection::installServiceWorker):
- WebProcess/WebPage/WebURLSchemeTaskProxy.cpp:
(WebKit::pageIDFromWebFrame):
(WebKit::frameIDFromWebFrame):
- WebProcess/WebProcess.cpp:
(WebKit::WebProcess::prepareToSuspend):
- 8:45 AM Changeset in webkit [276305] by
-
- 5 edits in trunk/Source
Make sure we don't exit the GPUProcess too frequently while under memory pressure
https://bugs.webkit.org/show_bug.cgi?id=224798
Reviewed by Darin Adler.
Source/WebKit:
We've recently started to exit the GPUProcess if idle and under memory pressure, in order
to save memory. This is great but we wouldn't want to repeatedly exit and relaunch the
GPUProcess while under memory pressure either. To address this, I am adding a condition to
GPUProcess::canExitUnderMemoryPressure() to make sure we don't exit the GPUProcess if it's
been running for less than 5 seconds.
To avoid generating flakiness in our benchmarks and API tests, I am disabling this condition
if the memory pressure is simulated (vianotifyutil -p org.WebKit.lowMemory
).
- GPUProcess/GPUProcess.cpp:
(WebKit::GPUProcess::canExitUnderMemoryPressure const):
- GPUProcess/GPUProcess.h:
Source/WTF:
Add member function to the MemoryPressureHandler to indicate if we're currently simulating memory
pressure or not.
- wtf/MemoryPressureHandler.h:
(WTF::MemoryPressureHandler::isSimulatingMemoryPressure const):
- 7:51 AM Changeset in webkit [276304] by
-
- 5 edits in trunk/Source/WebKit
Unreviewed, reverting r276271.
It did not fix the Canvas-Arcs subtest on the bots
Reverted changeset:
"MotionMark's Canvas-Arcs subtest is broken if the GPUProcess
is not yet running"
https://bugs.webkit.org/show_bug.cgi?id=224778
https://commits.webkit.org/r276271
- 7:48 AM Changeset in webkit [276303] by
-
- 25 edits1 add in trunk/Source
Refactor sorted array mapping machinery in LocaleToScriptMapping.cpp for reuse elsewhere
https://bugs.webkit.org/show_bug.cgi?id=224733
Reviewed by Yusuke Suzuki.
Source/WebCore:
- Modules/indexeddb/client/IDBConnectionToServer.h: Removed unneeded includes.
- Modules/mediastream/RTCRtpSFrameTransformer.h: Ditto.
- Modules/mediastream/libwebrtc/LibWebRTCPeerConnectionBackend.h: Ditto.
- Modules/webauthn/AuthenticatorCoordinatorClient.h: Ditto.
- Modules/websockets/WebSocketChannel.cpp: Ditto.
- Modules/websockets/WebSocketDeflater.cpp: Ditto.
- bindings/IDLTypes.h: Ditto.
- bridge/jsc/BridgeJSC.h: Ditto.
- contentextensions/DFANode.h: Ditto.
- contentextensions/NFAToDFA.cpp: Ditto.
- contentextensions/Term.h: Ditto.
- css/typedom/StylePropertyMap.h: Ditto.
- css/typedom/StylePropertyMapReadOnly.cpp: Ditto.
- cssjit/SelectorCompiler.cpp: Ditto.
- platform/text/LocaleToScriptMapping.cpp:
(WebCore::scriptNameToCode): Refactor to use SortedArrayMap. Also changed to take StringView.
(WebCore::localeToScriptCodeForFontSelection): Ditto. Cut down on memory allocation by using
StringView instead of String while looping through substrings.
- platform/text/LocaleToScriptMapping.h: Changed scriptNameToCode to take StringView.
Source/WebKit:
- NetworkProcess/PrivateClickMeasurementManager.h: Removed unused include of HashMap.h.
- NetworkProcess/cache/NetworkCacheSubresourcesEntry.h: Ditto.
- WebProcess/WebPage/mac/WebPageMac.mm:
(WebKit::createSelectorExceptionMap): Deleted.
(WebKit::commandNameForSelectorName): Use SortedArrayMap instead of HashMap.
Source/WTF:
- WTF.xcodeproj/project.pbxproj: Added SortedArrayMap.h.
- wtf/CMakeLists.txt: Ditto.
- wtf/SortedArrayMap.h: Added. Builds on the idiom in LocalToScriptMapping, and to be
generic uses std::pair instead of custom structures. Includes the ComparableASCIILiteral
structure for maps that are keyed by case-sensitive ASCII strings.
- wtf/StdLibExtras.h:
(WTF::binarySearchImpl): Use auto in one place to make this a bit more generic.
- 7:07 AM Changeset in webkit [276302] by
-
- 3 edits in trunk/Source/WebCore
[LFC] Implement Box::isSizeContainmentBox()
https://bugs.webkit.org/show_bug.cgi?id=224799
Reviewed by Antti Koivisto.
This is part of https://www.w3.org/TR/css-contain-2/#containment-size
- layout/layouttree/LayoutBox.cpp:
(WebCore::Layout::Box::isSizeContainmentBox const):
- layout/layouttree/LayoutBox.h:
- 4:38 AM Changeset in webkit [276301] by
-
- 3 edits in trunk/Source/WebCore
AudioSourceProviderAVFObjC uses atomic variables but also locks with mutex
https://bugs.webkit.org/show_bug.cgi?id=224543
Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2021-04-20
Reviewed by Darin Adler.
Remove the use of std::atomic, the variables are already protected by the
mutex.
- platform/graphics/avfoundation/AudioSourceProviderAVFObjC.h:
- platform/graphics/avfoundation/AudioSourceProviderAVFObjC.mm:
(WebCore::AudioSourceProviderAVFObjC::provideInput):
(WebCore::AudioSourceProviderAVFObjC::process):
- 4:29 AM Changeset in webkit [276300] by
-
- 6 edits in trunk/Source/WebKit
WebGL GPU Process implementation should use thread safety annotations
https://bugs.webkit.org/show_bug.cgi?id=224752
Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2021-04-20
Reviewed by Kenneth Russell.
Make WebGL GPU process implementation use thread safety analysis.
Mark up the guarded variables in IPC Stream implementation using
clang thread safety analysis annotations.
- GPUProcess/graphics/RemoteGraphicsContextGL.cpp:
(WebKit::RemoteGraphicsContextGL::paintImageDataToImageBuffer):
- Platform/IPC/StreamConnectionWorkQueue.cpp:
(IPC::StreamConnectionWorkQueue::dispatch):
(IPC::StreamConnectionWorkQueue::addStreamConnection):
(IPC::StreamConnectionWorkQueue::removeStreamConnection):
(IPC::StreamConnectionWorkQueue::processStreams):
- Platform/IPC/StreamConnectionWorkQueue.h:
- Platform/IPC/StreamServerConnection.cpp:
(IPC::StreamServerConnectionBase::enqueueMessage):
- Platform/IPC/StreamServerConnection.h:
(IPC::StreamServerConnection<Receiver>::startReceivingMessages):
(IPC::StreamServerConnection<Receiver>::stopReceivingMessages):
(IPC::StreamServerConnection<Receiver>::dispatchStreamMessages):
(IPC::StreamServerConnection<Receiver>::dispatchOutOfStreamMessage):
- 3:54 AM Changeset in webkit [276299] by
-
- 5 edits in trunk/Source/WebCore
Re-land: Eliminate ScrollAnimatorGeneric::m_smoothAnimation
https://bugs.webkit.org/show_bug.cgi?id=222588
Reviewed by Žan Doberšek.
No new tests. This change should not change behavior.
Eliminate the extra ScrollAnimationSmooth in ScrollAnimatorGeneric. The base
class already knows how to do scroll animations for programmatic scrolls,
so we can reuse that animation for doing ScrollAnimator::scroll(...). This
makes the code easier to understand and should simplify managing interactions
between the different animations in the future.
Changes since first version: Now only update the current position of the animation
if it is not active. This is the behavior that was used in ScrollAnimatorGeneric
and is the correct behavior when using ScrollAnimationSmooth.
- platform/ScrollAnimator.cpp:
(WebCore::ScrollAnimator::ScrollAnimator): Renamed m_animationProgrammaticScroll
to m_scrollAnimation. The more generic name reflects the fact that it is also
used for doing scrolling from UI interaction now.
(WebCore::ScrollAnimator::scroll): Use the ScrollAnimationSmooth member to do
animated scrolls when necessary.
(WebCore::ScrollAnimator::scrollToPositionWithoutAnimation): Make sure the animation
is up to date with the current position when scrolling without it. This is
how ScrollAnimatorGeneric treated its ScrollAnimationSmooth.
(WebCore::ScrollAnimator::scrollToPositionWithAnimation): Rename member.
(WebCore::ScrollAnimator::cancelAnimations): Ditto.
(WebCore::ScrollAnimator::willEndLiveResize): Ditto.
(WebCore::ScrollAnimator::didAddVerticalScrollbar): Ditto.
(WebCore::ScrollAnimator::didAddHorizontalScrollbar): Ditto.
- platform/ScrollAnimator.h: Ditto.
- platform/generic/ScrollAnimatorGeneric.cpp:
(WebCore::ScrollAnimatorGeneric::ScrollAnimatorGeneric): Eliminate ScrollAnimationSmooth.
(WebCore::ScrollAnimatorGeneric::scrollToPositionWithoutAnimation): Ditto.
(WebCore::ScrollAnimatorGeneric::didAddVerticalScrollbar): Ditto.
(WebCore::ScrollAnimatorGeneric::didAddHorizontalScrollbar): Ditto.
(WebCore::ScrollAnimatorGeneric::ensureSmoothScrollingAnimation): Deleted.
(WebCore::ScrollAnimatorGeneric::scroll): Deleted.
(WebCore::ScrollAnimatorGeneric::willEndLiveResize): Deleted.
- platform/generic/ScrollAnimatorGeneric.h:
- 3:53 AM WebKitGTK/2.32.x edited by
- (diff)
- 3:25 AM Changeset in webkit [276298] by
-
- 2 edits in trunk/JSTests
[JSC] Limit memory allocation size of JSTests/stress/early-return-from-builtin.js
https://bugs.webkit.org/show_bug.cgi?id=224803
<rdar://problem/75597901>
Reviewed by Ryosuke Niwa.
Add limit to JSTests/stress/early-return-from-builtin.js to avoid infinite allocation.
- stress/early-return-from-builtin.js:
(let.iter.Symbol.iterator):
- 3:24 AM Changeset in webkit [276297] by
-
- 2 edits3 adds in trunk/LayoutTests
[WPE] Update expectations for 2 :focus-visible tests
https://bugs.webkit.org/show_bug.cgi?id=224808
Unreviewed test gardening.
The failures on these tests are related to the lack of support for <input type="color"> in WPE.
- platform/wpe/TestExpectations:
- platform/wpe/imported/w3c/web-platform-tests/css/selectors/focus-visible-003-expected.txt: Added.
- platform/wpe/imported/w3c/web-platform-tests/css/selectors/focus-visible-004-expected.txt: Added.
- 3:19 AM Changeset in webkit [276296] by
-
- 10 edits7 adds in trunk/LayoutTests
Update html/rendering/replaced-elements/attributes-for-embedded-content-and-images/ tests from WPT
https://bugs.webkit.org/show_bug.cgi?id=224748
Reviewed by Rob Buis.
LayoutTests/imported/w3c:
Update the tests for "mapping attribute width and height as the implicit aspect ratio" which are based on the latest agreement
from WPT commit 19445e7b39.
- web-platform-tests/html/rendering/replaced-elements/attributes-for-embedded-content-and-images/canvas-aspect-ratio-expected.txt:
- web-platform-tests/html/rendering/replaced-elements/attributes-for-embedded-content-and-images/canvas-aspect-ratio.html:
- web-platform-tests/html/rendering/replaced-elements/attributes-for-embedded-content-and-images/img-aspect-ratio-expected.txt:
- web-platform-tests/html/rendering/replaced-elements/attributes-for-embedded-content-and-images/img-aspect-ratio.html:
- web-platform-tests/html/rendering/replaced-elements/attributes-for-embedded-content-and-images/number-placeholder-right-aligned-expected.html: Added.
- web-platform-tests/html/rendering/replaced-elements/attributes-for-embedded-content-and-images/number-placeholder-right-aligned.html: Added.
- web-platform-tests/html/rendering/replaced-elements/attributes-for-embedded-content-and-images/picture-aspect-ratio-expected.txt: Added.
- web-platform-tests/html/rendering/replaced-elements/attributes-for-embedded-content-and-images/picture-aspect-ratio.html: Added.
- web-platform-tests/html/rendering/replaced-elements/attributes-for-embedded-content-and-images/resources/aspect-ratio.js: Added.
(test_computed_style_aspect_ratio):
- web-platform-tests/html/rendering/replaced-elements/attributes-for-embedded-content-and-images/resources/w3c-import.log: Added.
- web-platform-tests/html/rendering/replaced-elements/attributes-for-embedded-content-and-images/video-aspect-ratio-expected.txt:
- web-platform-tests/html/rendering/replaced-elements/attributes-for-embedded-content-and-images/video-aspect-ratio.html:
- web-platform-tests/html/rendering/replaced-elements/attributes-for-embedded-content-and-images/w3c-import.log:
LayoutTests:
picture-aspect-ratio.html is flaky.
- 2:50 AM Changeset in webkit [276295] by
-
- 2 edits in trunk/Source/WebCore
Don't use the full CSS parser for CSSFontFaceSet
https://bugs.webkit.org/show_bug.cgi?id=224749
Reviewed by Darin Adler.
Replace use of the full CSS parser in CSSFontFaceSet with
CSSPropertyParserWorkerSafe::parseFont to parse font shorthands. This
makes CSSFontFaceSet safe to use in a Worker (required for
OffscreenCanvas) and ought also to be faster, at the cost of a slight
increase in lines of code.
No new tests, covered by existing tests.
- css/CSSFontFaceSet.cpp:
(WebCore::computeFontSelectionRequest):
(WebCore::CSSFontFaceSet::matchingFacesExcludingPreinstalledFonts):
- 2:22 AM Changeset in webkit [276294] by
-
- 2 edits in trunk
[WPE] Switch to libsoup3 by default
https://bugs.webkit.org/show_bug.cgi?id=224802
Reviewed by Žan Doberšek.
- Source/cmake/OptionsWPE.cmake:
- 2:14 AM Changeset in webkit [276293] by
-
- 11 edits in trunk
Implement CSS display property 2-value syntax
https://bugs.webkit.org/show_bug.cgi?id=224574
Patch by Tim Nguyen <ntim@apple.com> on 2021-04-20
Reviewed by Darin Adler.
Except for list-item which doesn't have layout support for different variants.
Also fix a WPT to expect the most backwards-compatible form fordisplay: flow
computed value.
Test: web-platform-tests/css/css-display/parsing/display-valid.html
LayoutTests/imported/w3c:
- web-platform-tests/css/css-display/parsing/display-valid-expected.txt:
- web-platform-tests/html/rendering/widgets/button-layout/computed-style-expected.txt:
- web-platform-tests/html/rendering/widgets/button-layout/computed-style.html:
- web-platform-tests/html/rendering/widgets/button-layout/display-other-expected.txt:
Source/WebCore:
- css/CSSValueKeywords.in:
- css/parser/CSSParserFastPaths.cpp:
(WebCore::CSSParserFastPaths::isValidKeywordPropertyAndValue):
(WebCore::CSSParserFastPaths::isKeywordPropertyID):
- css/parser/CSSPropertyParser.cpp:
(WebCore::consumeDisplay):
(WebCore::CSSPropertyParser::parseSingleValue):
LayoutTests:
- platform/mac-wk1/imported/w3c/web-platform-tests/html/rendering/widgets/button-layout/computed-style-expected.txt:
- 1:46 AM Changeset in webkit [276292] by
-
- 2 edits in trunk/Source/JavaScriptCore
LinkBuffer fails to build when MALLOC_HEAP_BREAKDOWN is enabled
https://bugs.webkit.org/show_bug.cgi?id=224722
Reviewed by Yusuke Suzuki.
When ENABLE_MALLOC_HEAP_BREAKDOWN is set, LinkBuffer causes a build failure at link time
since it never defines its debugHeap. Fix that.
- assembler/LinkBuffer.cpp:
- 12:44 AM Changeset in webkit [276291] by
-
- 3 edits2 deletes in trunk/LayoutTests
[WPE] Unreviewed test gardening. Update baselines and test expectations of recent failures.
- platform/wpe/TestExpectations:
- platform/wpe/fast/canvas/webgl/index-validation-with-subsequent-draws-expected.txt: Removed.
- platform/wpe/fast/encoding/utf-16-little-endian-expected.txt:
- platform/wpe/imported/w3c/web-platform-tests/resource-timing/resource_timing.worker-expected.txt: Removed.
- 12:26 AM Changeset in webkit [276290] by
-
- 5 edits in trunk/Source/JavaScriptCore
[JSC] Use FixedVector for LLIntPrototypeLoadAdaptiveStructureWatchpoint vector
https://bugs.webkit.org/show_bug.cgi?id=224729
Reviewed by Darin Adler.
Replace Vector<LLIntPrototypeLoadAdaptiveStructureWatchpoint> with FixedVector.
- bytecode/CodeBlock.h:
- bytecode/LLIntPrototypeLoadAdaptiveStructureWatchpoint.cpp:
(JSC::LLIntPrototypeLoadAdaptiveStructureWatchpoint::LLIntPrototypeLoadAdaptiveStructureWatchpoint):
(JSC::LLIntPrototypeLoadAdaptiveStructureWatchpoint::initialize):
- bytecode/LLIntPrototypeLoadAdaptiveStructureWatchpoint.h:
- llint/LLIntSlowPaths.cpp:
(JSC::LLInt::setupGetByIdPrototypeCache):
- 12:14 AM Changeset in webkit [276289] by
-
- 3 edits2 adds in trunk/LayoutTests
[GTK][WPE] Unreviewed test gardening. Emit new port baselines after r276193.
- platform/gtk/TestExpectations:
- platform/gtk/security/block-test-expected.txt: Added.
- platform/wpe/security/block-test-expected.txt:
- 12:12 AM Changeset in webkit [276288] by
-
- 4 edits in trunk/Source/WebKit
REGRESSION(r224516): Remote WebGL Context is not create due to RemoteRenderingBackend not being created
https://bugs.webkit.org/show_bug.cgi?id=224751
Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2021-04-20
Reviewed by Chris Dumez.
Fix WebGL GPU process after r275922.
RemoteRenderingBackend must be created so that RemoteGraphicsContextGL
can take a reference of it.
Fixes layout test failures when run with --gpu-process.
- WebProcess/GPU/graphics/RemoteRenderingBackendProxy.cpp:
(WebKit::RemoteRenderingBackendProxy::ensureBackendCreated):
- WebProcess/GPU/graphics/RemoteRenderingBackendProxy.h:
- WebProcess/WebCoreSupport/WebChromeClient.cpp:
(WebKit::WebChromeClient::createGraphicsContextGL const):
Apr 19, 2021:
- 11:33 PM Changeset in webkit [276287] by
-
- 16 edits in trunk
Render tree updates for Text node content mutations should happen during rendering update
https://bugs.webkit.org/show_bug.cgi?id=222406
<rdar://problem/74822830>
Reviewed by Simon Fraser.
Source/WebCore:
Calls to Text.insertData and similar should not mutate render tree synchronously.
Instead render tree should be updated during the next rendering update along with
any style changes.
These updates already go via RenderTreeUpdater. We just need to save the information
about which nodes need updating so the next rendering update can pick them up.
This seems to help with some performance benchmarks.
- dom/CharacterData.cpp:
(WebCore::CharacterData::parserAppendData):
(WebCore::CharacterData::setDataAndUpdate):
Move in-tree check to the updateRendererAfterContentChange and make it use isConnected().
- dom/Document.cpp:
(WebCore::Document::removedLastRef):
(WebCore::Document::resolveStyle):
Include the text update when updating the render tree.
(WebCore::Document::updateTextRenderer):
Create a text update that will get flushed during the next rendering update.
(WebCore::Document::needsStyleRecalc const):
We need to recalc if there are pending text updates.
- dom/Document.h:
- dom/Text.cpp:
(WebCore::Text::splitText):
Use updateRendererAfterContentChange instead of poking render tree directly.
(WebCore::Text::updateRendererAfterContentChange):
- rendering/updating/RenderTreeUpdater.cpp:
- style/StyleTreeResolver.cpp:
(WebCore::Style::TreeResolver::TreeResolver):
(WebCore::Style::TreeResolver::resolve):
- style/StyleTreeResolver.h:
(WebCore::Style::TreeResolver::TreeResolver):
- style/StyleUpdate.cpp:
(WebCore::Style::Update::addText):
Merge text updates.
(WebCore::Style::Update::addPossibleRoot):
- style/StyleUpdate.h:
(WebCore::Style::Update::roots const):
(WebCore::Style::Update:: const): Deleted.
Refcount the nodes since this now has longer lifetime.
- editing/CompositeEditCommand.cpp:
(WebCore::CompositeEditCommand::deleteInsignificantText):
Ensure we leave deleteInsignificantText with updated render tree. Clients expect that.
Do layout (instead of just style update) for consistency, deleteInsignificantText does one anyway in beginning.
- editing/markup.cpp:
(WebCore::replaceChildrenWithFragment):
Pending text update may ref the node so this refcount assert is not correct.
- style/StyleUpdate.cpp:
(WebCore::Style::Update::addText):
LayoutTests:
These are progressions.
- fast/text/splitText-dirty-lines-expected.txt:
- fast/text/text-combine-surroundContents-crash-expected.txt:
- imported/blink/fast/css/first-letter-range-insert-expected.txt:
Here we were actually drawing text that didn't exist in DOM anymore.
- 10:19 PM Changeset in webkit [276286] by
-
- 2 edits in trunk/Source/ThirdParty/ANGLE
Build ANGLE dylib into WK_OVERRIDE_FRAMEWORKS_DIR in builds that use it
https://bugs.webkit.org/show_bug.cgi?id=224785
<rdar://76641662>
Patch by Alex Christensen <achristensen@webkit.org> on 2021-04-19
Reviewed by Alexey Proskuryakov.
- Configurations/ANGLE-dynamic.xcconfig:
- 10:15 PM Changeset in webkit [276285] by
-
- 8 edits in trunk/JSTests
[JSC] Rebaseline test results for new ICU
https://bugs.webkit.org/show_bug.cgi?id=224792
Reviewed by Mark Lam.
This patch updates some intl- tests' expectation since it is changed because of ICU CLDR data change.
- stress/intl-datetimeformat-formatrange-relevant-extensions-ja.js:
(shouldBeOneOfThem):
(vm.icuVersion):
- stress/intl-datetimeformat-formatrange-relevant-extensions.js:
(shouldBeOneOfThem):
- stress/intl-datetimeformat-formatrange-should-not-handle-gregorian-change-date.js:
(shouldBe):
(vm.icuHeaderVersion):
- stress/intl-datetimeformat-formatrangetoparts-relevant-extensions-ja.js:
(normalize):
(shouldBe):
(compareParts):
(shouldBeOneOfParts):
(shouldBeParts):
(Intl.DateTimeFormat.prototype.formatRangeToParts.shouldBeOneOfParts.fmt5.formatRangeToParts):
(Intl.DateTimeFormat.prototype.formatRangeToParts.vm.icuVersion):
(Intl.DateTimeFormat.prototype.formatRangeToParts.shouldBeOneOfParts.fmt7.formatRangeToParts):
(Intl.DateTimeFormat.prototype.formatRangeToParts.shouldBeOneOfParts.fmt9.formatRangeToParts):
(Intl.DateTimeFormat.prototype.formatRangeToParts.shouldBeOneOfParts.fmt11.formatRangeToParts):
(Intl.DateTimeFormat.prototype.formatRangeToParts.shouldBeOneOfParts.fmt13.formatRangeToParts):
(Intl.DateTimeFormat.prototype.formatRangeToParts.shouldBeParts.fmt13.formatRangeToParts):
(Intl.DateTimeFormat.prototype.formatRangeToParts.shouldBeOneOfParts.fmt14.formatRangeToParts):
(Intl.DateTimeFormat.prototype.formatRangeToParts.shouldBeOneOfParts.fmt15.formatRangeToParts):
(Intl.DateTimeFormat.prototype.formatRangeToParts.shouldBeOneOfParts.fmt16.formatRangeToParts):
(Intl.DateTimeFormat.prototype.formatRangeToParts.compareParts.fmt1.formatRangeToParts): Deleted.
(Intl.DateTimeFormat.prototype.formatRangeToParts.compareParts.fmt2.formatRangeToParts): Deleted.
(Intl.DateTimeFormat.prototype.formatRangeToParts.compareParts.fmt3.formatRangeToParts): Deleted.
(Intl.DateTimeFormat.prototype.formatRangeToParts.compareParts.fmt4.formatRangeToParts): Deleted.
(Intl.DateTimeFormat.prototype.formatRangeToParts.compareParts.fmt5.formatRangeToParts): Deleted.
(Intl.DateTimeFormat.prototype.formatRangeToParts.compareParts.fmt6.formatRangeToParts): Deleted.
(Intl.DateTimeFormat.prototype.formatRangeToParts.compareParts.fmt7.formatRangeToParts): Deleted.
(Intl.DateTimeFormat.prototype.formatRangeToParts.compareParts.fmt8.formatRangeToParts): Deleted.
(Intl.DateTimeFormat.prototype.formatRangeToParts.compareParts.fmt9.formatRangeToParts): Deleted.
(Intl.DateTimeFormat.prototype.formatRangeToParts.compareParts.fmt10.formatRangeToParts): Deleted.
(Intl.DateTimeFormat.prototype.formatRangeToParts.compareParts.fmt11.formatRangeToParts): Deleted.
(Intl.DateTimeFormat.prototype.formatRangeToParts.compareParts.fmt12.formatRangeToParts): Deleted.
(Intl.DateTimeFormat.prototype.formatRangeToParts.compareParts.fmt13.formatRangeToParts): Deleted.
(Intl.DateTimeFormat.prototype.formatRangeToParts.compareParts.fmt14.formatRangeToParts): Deleted.
(Intl.DateTimeFormat.prototype.formatRangeToParts.compareParts.fmt15.formatRangeToParts): Deleted.
(Intl.DateTimeFormat.prototype.formatRangeToParts.compareParts.fmt16.formatRangeToParts): Deleted.
- stress/intl-datetimeformat-formatrangetoparts-relevant-extensions.js:
(normalize):
(shouldBe):
(compareParts):
(shouldBeOneOfParts):
(shouldBeParts):
- stress/intl-datetimeformat-formatrangetoparts-should-not-handle-gregorian-change-date.js:
(shouldBe):
- stress/intl-datetimeformat.js:
(shouldBeOneOfThem):
- 9:49 PM Changeset in webkit [276284] by
-
- 5 edits in trunk
REGRESSION (r276189): GPUProcess.WebProcessTerminationAfterTooManyGPUProcessCrashes is crashing
https://bugs.webkit.org/show_bug.cgi?id=224790
<rdar://problem/76869318>
Reviewed by Darin Adler.
Source/WebKit:
GPUProcess.WebProcessTerminationAfterTooManyGPUProcessCrashes is intentionally repeatedly
killing the GPUProcess. As a result, the GPUProcess may get killed very shortly after
a relaunch and the RemoteAudioDestinationManager::StartAudioDestination synchronous IPC
may fail if it is ongoing at the time of the crash. This would cause m_destinationID to
not get initialized and then get sent as IPC parameter, thus crashing.
pre-r276189, we were not crashing because m_destinationID was not reset on crash and we
would thus send IPC for a destination that does not exist but at least the destinationID
would not be 0. This patch makes sure we don't try and send IPC at all when m_destinationID
is 0.
- WebProcess/GPU/media/RemoteAudioDestinationProxy.cpp:
(WebKit::RemoteAudioDestinationProxy::connection):
(WebKit::RemoteAudioDestinationProxy::startRendering):
(WebKit::RemoteAudioDestinationProxy::stopRendering):
(WebKit::RemoteAudioDestinationProxy::storageChanged):
- WebProcess/GPU/media/RemoteAudioDestinationProxy.h:
Tools:
Re-enable API test now that it is no longer crashing.
- TestWebKitAPI/Tests/WebKitCocoa/GPUProcess.mm:
(TEST):
- 9:45 PM Changeset in webkit [276283] by
-
- 3 edits in trunk/Source/WebCore
cachedCGColor() and nsColor() are not thread-safe
https://bugs.webkit.org/show_bug.cgi?id=223033
Reviewed by Chris Dumez.
These functions will break if they are used by a worker thread.
- platform/graphics/cg/ColorCG.cpp:
(WebCore::cachedCGColor):
- platform/graphics/mac/ColorMac.mm:
(WebCore::nsColor):
- 8:26 PM Changeset in webkit [276282] by
-
- 2 edits in trunk/LayoutTests
[GLIB] Unreviewed test gardening. Gardened flaky failures after r224791.
- platform/glib/TestExpectations:
- 7:26 PM Changeset in webkit [276281] by
-
- 2 edits in trunk/Source/WebKit
[iOS] Media playback continues after backgrounding hosting application
https://bugs.webkit.org/show_bug.cgi?id=224776
<rdar://75707807>
Reviewed by Eric Carlson.
Tested by existing API test: WKWebViewPausePlayingAudioTests.OutOfWindow
When the MediaSessionHelperIOS was moved into the GPU process, no object remains listening for the
UIApplication{Will,Did}Enter{Foreground,Background}Notification rebroadcasted by WebPageIOS.
Rather than just rebroadcast the UIKit notification to all listeners within the WebContent process,
which may or may not be listening, just tell the current PlatformMediaSessionManager directly.
- WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::applicationWillResignActive):
(WebKit::WebPage::applicationDidEnterBackground):
(WebKit::WebPage::applicationWillEnterForeground):
(WebKit::WebPage::applicationDidBecomeActive):
- 6:02 PM Changeset in webkit [276280] by
-
- 2 edits in trunk/Tools
Unreviewed, temporarily disable GPUProcess.DISABLED_WebProcessTerminationAfterTooManyGPUProcessCrashes
https://bugs.webkit.org/show_bug.cgi?id=224790
It is crashing. I will renable it with the fix at Bug 224790.
- TestWebKitAPI/Tests/WebKitCocoa/GPUProcess.mm:
(TEST):
- 5:54 PM Changeset in webkit [276279] by
-
- 5 edits in trunk/LayoutTests
[GLIB] Unreviewed test gardening. Update baselines and test expectations after r224791.
- platform/glib/TestExpectations:
- platform/glib/http/tests/xmlhttprequest/simple-cross-origin-denied-events-post-expected.txt:
- platform/glib/imported/w3c/web-platform-tests/xhr/send-entity-body-none-expected.txt:
- platform/glib/security/block-test-no-port-expected.txt:
- 5:18 PM Changeset in webkit [276278] by
-
- 3 edits in trunk/Source/WebInspectorUI
REGRESSION (r268691 && r270134): Web Inspector: Clicking on go-to arrow in Computed panel no longer works
https://bugs.webkit.org/show_bug.cgi?id=224774
Reviewed by Devin Rousso.
The Styles panel will not always be part of the same sidebar as the Computed panel as of r268691, so we should
look for the Styles panel in WI.detailsSidebar, which will report all of the panels it manages across multiple
sidebars. Additionally, as of r270134, there is no longer a private_visible
property for
WI.StyleDetailsPanel
, so it can not be used byWI.SpreadsheetRulesStyleDetailsPanel
. Instead, visibility
should be determined by checking if the panel is attached and not pending layout.
- UserInterface/Views/ComputedStyleDetailsSidebarPanel.js:
(WI.ComputedStyleDetailsSidebarPanel.prototype.computedStyleDetailsPanelShowProperty):
- UserInterface/Views/SpreadsheetRulesStyleDetailsPanel.js:
(WI.SpreadsheetRulesStyleDetailsPanel.prototype.scrollToSectionAndHighlightProperty):
- 4:37 PM Changeset in webkit [276277] by
-
- 2 edits in trunk/Tools
[ews] Enabled detailed error log when unit-tests fails
https://bugs.webkit.org/show_bug.cgi?id=224789
Unreviewed minor unit-test fix.
- CISupport/ews-build/factories_unittest.py:
(TestCase): Set maxDiff to None.
- 4:03 PM Changeset in webkit [276276] by
-
- 3 edits1 add in trunk/Tools
Can't use Web Inspector on web views made by TestWebKitAPI
https://bugs.webkit.org/show_bug.cgi?id=147073
<rdar://problem/76708379>
Reviewed by Devin Rousso.
It is necessary to spin a nested run loop at the point in the test where you would
like to remote inspect a WebView. Messages from the remote connection are dispatched
through UIProcess, so if lldb has paused UIProcess, WebInspectorUI will not be able to
get any data from the inspected WebView.
- TestWebKitAPI/DebugUtilities.h: Added.
Add macros to wait for a remote inspector to attach or detach, then drop into
the debugger when it has done so.
- TestWebKitAPI/PlatformUtilities.h: Add missing
#pragma once
. - TestWebKitAPI/WTFStringUtilities.h: Force the build to fail noisily if we have
attempted to redefine WTF_STRINGTYPEADAPTER_COPIED_WTF_STRING. Force the correct
ordering between "WTFStringUtilities.h" and <wtf/text/StringConcatenate.h>.
- 3:20 PM Changeset in webkit [276275] by
-
- 6 edits in trunk
Rename FloatQuad::isEmpty() to boundingBoxIsEmpty() and reimplement isEmpty()
https://bugs.webkit.org/show_bug.cgi?id=224769
Reviewed by Tim Horton.
Source/WebCore:
The existing
isEmpty()
method onFloatQuad
only checks that the bounding box of the quad is empty (as
indicated by the comment above the method declaration). This meansisEmpty()
returnsfalse
in cases where
the quad consists of one or more non-rectilinear line segments, even though the quad contains no area.
To address this, we rename the existing
isEmpty()
helper toboundingBoxIsEmpty()
and reintroduce an
isEmpty()
method that accounts for quads which are equivalent to non-rectilinear line segments.
No change in behavior.
- inspector/InspectorOverlay.cpp:
(WebCore::drawFragmentHighlight):
- platform/graphics/FloatQuad.cpp:
- platform/graphics/FloatQuad.h:
(WebCore::FloatQuad::isEmpty const): Deleted.
(WebCore::FloatQuad::boundingBoxIsEmpty const):
Tools:
Add an API test to exercise the new
FloatQuad::isEmpty()
method.
- TestWebKitAPI/Tests/WebCore/FloatQuadTests.cpp:
(TestWebKitAPI::checkIsEmpty):
(TestWebKitAPI::TEST):
- 2:18 PM Changeset in webkit [276274] by
-
- 2 edits in trunk/Source/WebCore
Web Inspector: Grid overlay column line label placement copy/paste error
https://bugs.webkit.org/show_bug.cgi?id=224777
Reviewed by Devin Rousso.
In grid overlays, a typo meant for all column line labels after the initial line, only the start of the line was
used for placement, where it is more accurate to use the start and end points to match the behavior of the first
line. This had no visual impact because subsequent lines do not currently have their labels adjusted further into
the grid, only flipped into the grid but still referencing the same point. This patch corrects the value of
gapLabelLine
to always be a line on which the label can be placed, instead of a single point.
- inspector/InspectorOverlay.cpp:
(WebCore::InspectorOverlay::buildGridOverlay):
- 2:10 PM Changeset in webkit [276273] by
-
- 3 edits in trunk/LayoutTests
[mac-wk2] LayoutTest fast/mediastream/getUserMedia-webaudio.html is a flaky timeout
https://bugs.webkit.org/show_bug.cgi?id=170960
Reviewed by Eric Carlson.
Update test to check for noise for more iterations.
Remove timeout expectation since it is no longer timing out in bots.
- fast/mediastream/getUserMedia-webaudio.html:
- platform/mac-wk2/TestExpectations:
- 1:45 PM Changeset in webkit [276272] by
-
- 8 edits2 adds in trunk
Web Inspector: Graphics: add support for
steps()
/spring()
CSS timing functions
https://bugs.webkit.org/show_bug.cgi?id=224654
Reviewed by BJ Burg.
Source/WebInspectorUI:
- UserInterface/Models/Geometry.js:
(WI.StepsFunction): Added.
(WI.StepsFunction.fromString): Added.
(WI.StepsFunction.prototype.get type): Added.
(WI.StepsFunction.prototype.get count): Added.
(WI.StepsFunction.prototype.copy): Added.
(WI.StepsFunction.prototype.toString): Added.
Create a model object forsteps()
CSS timing function.
- UserInterface/Models/Animation.js:
(WI.Animation.prototype._updateEffect):
Also supporteffect.timingFunction
/keyframe.easing
being asteps()
/spring()
CSS timing function.
- UserInterface/Views/AnimationContentView.js:
(WI.AnimationContentView.prototype._refreshPreview):
Create a UI forsteps()
/spring()
CSS timing functions.
LayoutTests:
- inspector/animation/lifecycle-web-animation.html:
- inspector/animation/lifecycle-web-animation-expected.txt:
- inspector/animation/resources/lifecycle-utilities.js:
- inspector/unit-tests/geometry.html: Added.
- inspector/unit-tests/geometry-expected.txt: Added.
- 1:35 PM Changeset in webkit [276271] by
-
- 5 edits in trunk/Source/WebKit
MotionMark's Canvas-Arcs subtest is broken if the GPUProcess is not yet running
https://bugs.webkit.org/show_bug.cgi?id=224778
Reviewed by Simon Fraser.
I recently made changes so that the GPUProcess is only launched when it is needed. This means
that until MotionMark's Canvas-Arcs subtest, the GPUProcess is usually not yet running. As a
result, RemoteRenderingBackendProxy::createImageBuffer() ends up launching the GPUProcess
and sending the GPUConnectionToWebProcess::CreateRenderingBackend and
RemoteRenderingBackend::CreateImageBuffer IPC right away. We seem to have a synchronization
issue because when this happens, the rendering for the Canvas-Arcs subtest is visibly broken
and its score is very low (< 6, instead of > 600).
Making the GPUConnectionToWebProcess::CreateRenderingBackend synchronous again (I made it
async recently) seems to address the synchronization issue and restores correct behavior on
MotionMark. I am therefore making this IPC synchronous again in this patch to get benchmark
coverage again while I investigate the root cause offline.
- GPUProcess/GPUConnectionToWebProcess.cpp:
(WebKit::GPUConnectionToWebProcess::createRenderingBackend):
- GPUProcess/GPUConnectionToWebProcess.h:
- GPUProcess/GPUConnectionToWebProcess.messages.in:
- WebProcess/GPU/graphics/RemoteRenderingBackendProxy.cpp:
(WebKit::RemoteRenderingBackendProxy::ensureGPUProcessConnection):
- 1:16 PM Changeset in webkit [276270] by
-
- 2 edits in trunk/Tools
Fix the macCatalyst TestWebKitAPI build
https://bugs.webkit.org/show_bug.cgi?id=224780
- TestWebKitAPI/Configurations/TestWebKitAPI.xcconfig:
Unreviewed build fix; link PDFKit since we now enable it.
- 1:09 PM Changeset in webkit [276269] by
-
- 3 edits2 adds in trunk
[LFC][IFC] LineCandidate.inlineContent should be ignored when reverting
https://bugs.webkit.org/show_bug.cgi?id=224771
<rdar://76760857>
Reviewed by Antti Koivisto.
Source/WebCore:
LineCandidate.inlineContent is a set of candidate runs for the line and when the line breaker says "please revert" (move back to an earlier position on the line)
these runs should all be ignored as they did not make it to the line.
(inlineContentIsFullyCommitted flag got confused when the number of candidate runs matched the number of runs we managed to put on the line as part of the revert. It did not take the "revert" bit into account.)
Test: fast/inline/crash-when-revert-has-trailing-line-break.html
- layout/inlineformatting/InlineLineBuilder.cpp:
(WebCore::Layout::LineBuilder::placeInlineContent):
LayoutTests:
- fast/inline/crash-when-revert-has-trailing-line-break-expected.txt: Added.
- fast/inline/crash-when-revert-has-trailing-line-break.html: Added.
- 12:42 PM Changeset in webkit [276268] by
-
- 2 edits in trunk/LayoutTests
[ wk2 ] http/tests/security/contentSecurityPolicy/report-only-connect-src-xmlhttprequest-redirect-to-blocked.py is a constant text failure
https://bugs.webkit.org/show_bug.cgi?id=224626
Unreviewed test gardening
- platform/wk2/TestExpectations: Updating expectations as a fix is being worked on.
- 11:55 AM Changeset in webkit [276267] by
-
- 4 edits in trunk
SVG Images launch the GPUProcess unnecessarily
https://bugs.webkit.org/show_bug.cgi?id=224770
Reviewed by Eric Carlson.
Source/WebCore:
Make sure MediaPlayer::supportsType() returns early for MIME types that can definitely
not be media, to avoid launch the GPUProcess unnecessarily.
- platform/graphics/MediaPlayer.cpp:
(WebCore::MediaPlayer::supportsType):
Tools:
Add API test coverage.
- TestWebKitAPI/Tests/WebKitCocoa/GPUProcess.mm:
(TEST):
- 11:52 AM Changeset in webkit [276266] by
-
- 13 edits in trunk/Source/bmalloc
[bmalloc] Enable Adaptive Scavenger for Mac
https://bugs.webkit.org/show_bug.cgi?id=224706
Reviewed by Filip Pizlo.
Enabled the adaptive scavenger code paths for macOS.
The original reason that the partial scavenging paths were kept for macOS was due
to regression on power tests. To alleviate the power regression, this patch splits
out the adaptive scavenger parameters with macOS specific values.
The parameters are:
The multiplier used to compute the next scavenging wait time based on the
time needed for the prior scavenging.
Minimum wait time between scavenging.
Maximum wait time between scavenging.
The values in the current code are:
Wait time Multiplier: 150
Minimum wait time: 100ms
Maximum wait time: 10,000ms (10 seconds)
The proposed values for macOS, determined using empirical testing.
Wait time Multiplier: 300
Minimum wait time: 750ms
Maximum wait time: 20,000ms (20 seconds)
When tested on various mac variants, this change:
- Provides a 3-5% reduction in memory use on RAMification.
- It is neutral on JetStream2.
- It is neutral to a slight regression on Speedometer2, but there is some variability in those results.
Since macOS was the only platform still using the partial scavenging code path,
the partial scavenging code paths were deleted.
- bmalloc/BPlatform.h:
- bmalloc/Heap.cpp:
(bmalloc::Heap::scavenge):
(bmalloc::Heap::allocateSmallChunk):
(bmalloc::Heap::allocateSmallPage):
(bmalloc::Heap::allocateLarge):
(bmalloc::Heap::scavengeToHighWatermark): Deleted.
- bmalloc/Heap.h:
- bmalloc/IsoDirectory.h:
- bmalloc/IsoDirectoryInlines.h:
(bmalloc::passedNumPages>::takeFirstEligible):
(bmalloc::passedNumPages>::scavenge):
(bmalloc::passedNumPages>::scavengeToHighWatermark): Deleted.
- bmalloc/IsoHeapImpl.h:
- bmalloc/IsoHeapImplInlines.h:
(bmalloc::IsoHeapImpl<Config>::scavengeToHighWatermark): Deleted.
- bmalloc/LargeMap.cpp:
(bmalloc::LargeMap::add):
- bmalloc/LargeRange.h:
(bmalloc::LargeRange::LargeRange):
(bmalloc::LargeRange::setUsedSinceLastScavenge):
(bmalloc::merge):
(): Deleted.
- bmalloc/Scavenger.cpp:
(bmalloc::Scavenger::Scavenger):
(bmalloc::Scavenger::scavenge):
(bmalloc::Scavenger::threadRunLoop):
(bmalloc::Scavenger::timeSinceLastPartialScavenge): Deleted.
(bmalloc::Scavenger::partialScavenge): Deleted.
- bmalloc/Scavenger.h:
- bmalloc/SmallPage.h:
(bmalloc::SmallPage::setUsedSinceLastScavenge):
- 11:21 AM Changeset in webkit [276265] by
-
- 3 edits in trunk/Source/WebInspectorUI
Web Inspector: REGRESSION(?): Network: Request (Object Tree) is sometimes empty
https://bugs.webkit.org/show_bug.cgi?id=224768
<rdar://problem/76783636>
Reviewed by BJ Burg.
- UserInterface/Views/LocalJSONContentView.js:
(WI.LocalJSONContentView.prototype.renderRemoteObject):
If theWI.RemoteObject
is simple enough to be rendered inline,WI.ObjectTreeView
won't
show aWI.TreeOutline
by default. We have to tell it to use aWI.TreeOutline
by passing
forceExpanding = true
into the constructor.
- UserInterface/Views/ObjectTreeView.js:
(WI.ObjectTreeView.prototype.showOnlyJSON):
Add someconsole.assert
to help prevent this from happening again.
- 10:59 AM Changeset in webkit [276264] by
-
- 27 edits1 delete in trunk
[selectors] Script focus and :focus-visible
https://bugs.webkit.org/show_bug.cgi?id=224598
Reviewed by Darin Adler.
LayoutTests/imported/w3c:
Update expectations as the tests pass now.
- web-platform-tests/css/selectors/focus-visible-008-expected.txt:
- web-platform-tests/css/selectors/focus-visible-009-expected.txt:
- web-platform-tests/css/selectors/focus-visible-010-expected.txt:
- web-platform-tests/css/selectors/focus-visible-014-expected.txt:
- web-platform-tests/css/selectors/focus-visible-script-focus-001-expected.txt:
- web-platform-tests/css/selectors/focus-visible-script-focus-002.tentative-expected.txt:
- web-platform-tests/css/selectors/focus-visible-script-focus-003.tentative-expected.txt:
- web-platform-tests/css/selectors/focus-visible-script-focus-004-expected.txt:
- web-platform-tests/css/selectors/focus-visible-script-focus-005-expected.txt:
- web-platform-tests/css/selectors/focus-visible-script-focus-006.tentative-expected.txt:
- web-platform-tests/css/selectors/focus-visible-script-focus-007.tentative-expected.txt:
- web-platform-tests/css/selectors/focus-visible-script-focus-012-expected.txt:
- web-platform-tests/css/selectors/focus-visible-script-focus-013-expected.txt:
- web-platform-tests/css/selectors/focus-visible-script-focus-014-expected.txt:
- web-platform-tests/css/selectors/focus-visible-script-focus-015-expected.txt:
- web-platform-tests/css/selectors/focus-visible-script-focus-016.tentative-expected.txt:
- web-platform-tests/css/selectors/focus-visible-script-focus-017.tentative-expected.txt:
Source/WebCore:
Implement :focus-visible behavior when a script moves focus.
An element will match :focus-visible when a script move focus if the last focused element was not focused via mouse click.
This patch makes WebKit behaves like Chromium and Firefox and pass all the related tests.
There's an ongoing discussion about 6 tests that are marked as ".tentative" in the following issue:
https://github.com/web-platform-tests/wpt/issues/28505
Test: web-platform-tests/css/selectors/focus-visible-script-focus-*
- dom/Document.cpp:
(WebCore::Document::adjustFocusedNodeOnNodeRemoval): Just update FocusOptions initializer.
(WebCore::Document::setFocusedElement): Store if the last element has been focused by mouse click or not.
- dom/Document.h: New member m_latestFocusTrigger.
(WebCore::Document::wasLastFocusByClick const): Method to check status of m_latestFocusTrigger.
- dom/Element.cpp:
(WebCore::Element::focus): When there's a script focus, this checks if the last element was focused
by mouse click in order to make it match :focus-visible.
- dom/FocusOptions.h: Add FocusTrigger enum to know if an element has been focused via mouse click or not.
This refers to the "focus trigger" concept on the HTML spec (see https://html.spec.whatwg.org/multipage/interaction.html).
- page/EventHandler.cpp:
(WebCore::EventHandler::dispatchMouseEvent): Pass FocusTrigger:Click in setFocusedElement() call.
LayoutTests:
Update expectations for tests, most of them are passing on Mac. On iOS a bunch timeout so they're skipped, as other :focus-visible tests.
- platform/ios/TestExpectations:
- platform/mac/imported/w3c/web-platform-tests/css/selectors/focus-visible-009-expected.txt: Removed as test passes now.
- platform/mac/TestExpectations:
- 10:53 AM Changeset in webkit [276263] by
-
- 3 edits in trunk/Source/WebKit
Fix races in LibWebRTCCodecs introduced in r276214
https://bugs.webkit.org/show_bug.cgi?id=224758
Reviewed by Youenn Fablet.
After r276214, LibWebRTCCodecs's createDecoder() / createEncoder() may hop to the main
thread to initialize the connection to the GPUProcess. If releaseDecoder() / releaseEncoder()
were to get called very shortly after, they may win the race and have no decoder / encoder
to release, since they are dispatched directly to the background thread. To address the issue,
we now call ensureGPUProcessConnectionAndDispatchToThread() in releaseDecoder(), releaseEncoder()
and initializeEncoder().
- WebProcess/GPU/webrtc/LibWebRTCCodecs.cpp:
(WebKit::LibWebRTCCodecs::releaseDecoder):
(WebKit::LibWebRTCCodecs::releaseEncoder):
(WebKit::LibWebRTCCodecs::initializeEncoder):
- 10:51 AM Changeset in webkit [276262] by
-
- 10 edits in trunk
Nullptr crash in CSSCalcValue::category() via HTMLConverterCaches::floatPropertyValueForNode
https://bugs.webkit.org/show_bug.cgi?id=221392
Reviewed by Simon Fraser.
LayoutTests/imported/w3c:
- web-platform-tests/css/css-values/minmax-length-percent-serialize-expected.txt:
Updated to reflect 8 tests passing that were failing before.
Source/WebCore:
- css/CSSCalculationValue.cpp:
(WebCore::CSSCalcOperationNode::createCalcExpression const): Pass in a destination category
when creating a CalcExpressionOperation.
(WebCore::createCSS): Pass the destination category from the CalcExpressionOperation when
creating a CSSCalcOperationNode.
- css/CSSCalculationValue.h: Moved the CalculationCategory enumeration from here to
CalculationValue.h.
- platform/CalculationValue.cpp:
(WebCore::operator==): Include destination category when comparing.
- platform/CalculationValue.h: Moved CalculationCategory here. Added a destination
category constructor argument, data members, and getter function to the
CalcExpressionOperation class.
LayoutTests:
- fast/css/calc-parsing-expected.txt: Updated for change below.
- fast/css/calc-parsing.html: Added more test cases so this covers the affected cases of computed
style for calc expressions that mix percentages and numbers. Alternatively, we could remove this
entire test case because the web platform tests also cover this pretty well.
- 10:20 AM WebKitGTK/2.32.x edited by
- (diff)
- 10:17 AM Changeset in webkit [276261] by
-
- 12 edits2 adds2 deletes in trunk/LayoutTests
[LayoutTests] Convert http/tests/blink convert PHP to Python
https://bugs.webkit.org/show_bug.cgi?id=224702
<rdar://problem/76783504>
Reviewed by Darin Adler.
- http/tests/blink/sendbeacon/beacon-cookie-expected.txt:
- http/tests/blink/sendbeacon/beacon-cookie.html:
- http/tests/blink/sendbeacon/beacon-cross-origin-expected.txt:
- http/tests/blink/sendbeacon/beacon-cross-origin.html:
- http/tests/blink/sendbeacon/beacon-cross-origin.https-expected.txt:
- http/tests/blink/sendbeacon/beacon-cross-origin.https.html:
- http/tests/blink/sendbeacon/beacon-same-origin-expected.txt:
- http/tests/blink/sendbeacon/beacon-same-origin.html:
- http/tests/blink/sendbeacon/resources/check-beacon.php: Removed.
- http/tests/blink/sendbeacon/resources/check-beacon.py: Added.
(extensive_strip):
- http/tests/blink/sendbeacon/resources/save-beacon.php: Removed.
- http/tests/blink/sendbeacon/resources/save-beacon.py: Added.
(prettify):
(decode_multipart):
- http/tests/resources/portabilityLayer.py:
(get_post_data):
(get_request):
- platform/ios/http/tests/blink/sendbeacon/beacon-same-origin-expected.txt:
- platform/mac/http/tests/blink/sendbeacon/beacon-same-origin-expected.txt:
- 10:08 AM Changeset in webkit [276260] by
-
- 2 edits in trunk/Source/WebCore
CSSValuePool should be non-copyable
https://bugs.webkit.org/show_bug.cgi?id=224764
Reviewed by Alan Bujtas.
- css/CSSValuePool.h:
- 9:59 AM Changeset in webkit [276259] by
-
- 2 edits in trunk/Source/JavaScriptCore
Build fix for Debug -O3 after r276162.
https://bugs.webkit.org/show_bug.cgi?id=224681
rdar://76698113
Not reviewed.
- runtime/JSObject.cpp:
- 9:53 AM Changeset in webkit [276258] by
-
- 2 edits in trunk/LayoutTests
Unreviewed, GLIB gardening
- platform/glib/TestExpectations: Flag a few more media tests to skip or as flaky crash.
- 9:46 AM Changeset in webkit [276257] by
-
- 2 edits in trunk/Source/WebKit
Add more GPUProcess release logging to facilitate debugging
https://bugs.webkit.org/show_bug.cgi?id=224761
Reviewed by Darin Adler.
- GPUProcess/GPUProcess.cpp:
(WebKit::GPUProcess::GPUProcess):
(WebKit::GPUProcess::createGPUConnectionToWebProcess):
(WebKit::GPUProcess::removeGPUConnectionToWebProcess):
(WebKit::GPUProcess::initializeGPUProcess):
- 9:45 AM Changeset in webkit [276256] by
-
- 2 edits in trunk/LayoutTests
Unreviewed, GLIB gardening
- platform/glib/TestExpectations: Flag imported/w3c/web-platform-tests/media-source/mediasource-changetype-play-implicit.html as flaky crash.
- 8:41 AM Changeset in webkit [276255] by
-
- 2 edits in trunk/Source/WebCore
[LFC] The layout containment box establishes an absolute positioning containing block and a fixed positioning containing block
https://bugs.webkit.org/show_bug.cgi?id=224754
Reviewed by Antti Koivisto.
https://www.w3.org/TR/css-contain-2/#containment-layout.
"The layout containment box establishes an absolute positioning containing block and a fixed positioning containing block."
- layout/layouttree/LayoutBox.h:
(WebCore::Layout::Box::isContainingBlockForFixedPosition const):
(WebCore::Layout::Box::isContainingBlockForOutOfFlowPosition const):
- 8:21 AM Changeset in webkit [276254] by
-
- 2 edits in trunk/Source/WebCore
[LFC] Layout containment box establishes an independent formatting context
https://bugs.webkit.org/show_bug.cgi?id=224753
Reviewed by Antti Koivisto.
https://www.w3.org/TR/css-contain-2/#containment-layout.
"The layout containment box establishes an independent formatting context."
- layout/layouttree/LayoutBox.cpp:
(WebCore::Layout::Box::establishesIndependentFormattingContext const):
- 8:18 AM Changeset in webkit [276253] by
-
- 4 edits in trunk/Source/WebCore
Silence various -Wreturn-type warnings
https://bugs.webkit.org/show_bug.cgi?id=224756
Patch by Michael Catanzaro <Michael Catanzaro> on 2021-04-19
Reviewed by Don Olmstead.
- css/parser/CSSPropertyParserHelpers.cpp:
(WebCore::CSSPropertyParserHelpers::mixColorComponents):
- inspector/InspectorOverlay.cpp:
(WebCore::expectedSizeForLayoutLabel):
- rendering/style/RenderStyle.cpp:
(WebCore::RenderStyle::usedClear):
(WebCore::RenderStyle::usedFloat):
- 7:16 AM Changeset in webkit [276252] by
-
- 2 edits in trunk/Source/WebCore
Unreviewed, fix the build after r276181
<rdar://problem/76832595>
Add a couple of missing forward declarations for
IntRect
andIntPoint
.
- page/ContextMenuClient.h:
- 6:54 AM Changeset in webkit [276251] by
-
- 3 edits in trunk/Source/WebCore
Add assertions to check for no memory allocation in AudioMediaStreamTrackRendererUnit rendering thread
https://bugs.webkit.org/show_bug.cgi?id=224674
Reviewed by Eric Carlson.
Add ForbidMallocUseForCurrentThreadScope in audio rendering code path to prevent memory allocation.
Rename inputProc to renderingCallback.
Remove use of AudioMediaStreamTrackRendererUnit::singleton and instead use the pointer given to renderingCallback.
This is safe as AudioMediaStreamTrackRendererUnit destructor stops the audio unit.
- platform/mediastream/mac/AudioMediaStreamTrackRendererUnit.cpp:
(WebCore::AudioMediaStreamTrackRendererUnit::createAudioUnitIfNeeded):
(WebCore::AudioMediaStreamTrackRendererUnit::render):
(WebCore::AudioMediaStreamTrackRendererUnit::renderingCallback):
(WebCore::AudioMediaStreamTrackRendererUnit::inputProc): Deleted.
- platform/mediastream/mac/AudioMediaStreamTrackRendererUnit.h:
- 6:43 AM Changeset in webkit [276250] by
-
- 2 edits in trunk/Tools
Unreviewed, WPE Minibrowser build warning fix.
- MiniBrowser/wpe/main.cpp: No need to use typedef for this struct declaration.
- 6:28 AM Changeset in webkit [276249] by
-
- 3 edits in trunk/Source/WebCore
[LFC] Implement Box::isLayoutContainmentBox
https://bugs.webkit.org/show_bug.cgi?id=224740
Reviewed by Antti Koivisto.
This is part of https://www.w3.org/TR/css-contain-2/#containment-layout
- layout/layouttree/LayoutBox.cpp:
(WebCore::Layout::Box::isLayoutContainmentBox const):
(WebCore::Layout::Box::isInternalTableBox const):
- layout/layouttree/LayoutBox.h:
(WebCore::Layout::Box::isInternalRubyBox const):
- 6:22 AM Changeset in webkit [276248] by
-
- 4 edits39 moves15 adds in trunk/LayoutTests
Unreviewed, WPE gardening
Share more media tests baselines between the GTK and WPE ports.
- platform/glib/TestExpectations:
- platform/glib/imported/w3c/web-platform-tests/media-source/mediasource-changetype-play-implicit-expected.txt: Renamed from LayoutTests/platform/gtk/imported/w3c/web-platform-tests/media-source/mediasource-changetype-play-implicit-expected.txt.
- platform/glib/imported/w3c/web-platform-tests/media-source/mediasource-changetype-play-negative-expected.txt: Renamed from LayoutTests/platform/gtk/imported/w3c/web-platform-tests/media-source/mediasource-changetype-play-negative-expected.txt.
- platform/glib/imported/w3c/web-platform-tests/media-source/mediasource-changetype-play-without-codecs-parameter-expected.txt: Renamed from LayoutTests/platform/gtk/imported/w3c/web-platform-tests/media-source/mediasource-changetype-play-without-codecs-parameter-expected.txt.
- platform/glib/imported/w3c/web-platform-tests/media-source/mediasource-duration-boundaryconditions-expected.txt: Renamed from LayoutTests/platform/gtk/imported/w3c/web-platform-tests/media-source/mediasource-duration-boundaryconditions-expected.txt.
- platform/glib/imported/w3c/web-platform-tests/media-source/mediasource-getvideoplaybackquality-expected.txt: Renamed from LayoutTests/platform/gtk/imported/w3c/web-platform-tests/media-source/mediasource-getvideoplaybackquality-expected.txt.
- platform/glib/imported/w3c/web-platform-tests/media-source/mediasource-is-type-supported-expected.txt: Renamed from LayoutTests/platform/gtk/imported/w3c/web-platform-tests/media-source/mediasource-is-type-supported-expected.txt.
- platform/glib/imported/w3c/web-platform-tests/media-source/mediasource-remove-expected.txt: Renamed from LayoutTests/platform/gtk/imported/w3c/web-platform-tests/media-source/mediasource-remove-expected.txt.
- platform/glib/imported/w3c/web-platform-tests/media-source/mediasource-removesourcebuffer-expected.txt: Renamed from LayoutTests/platform/gtk/imported/w3c/web-platform-tests/media-source/mediasource-removesourcebuffer-expected.txt.
- platform/glib/imported/w3c/web-platform-tests/media-source/mediasource-sourcebuffer-mode-expected.txt: Renamed from LayoutTests/platform/gtk/imported/w3c/web-platform-tests/media-source/mediasource-sourcebuffer-mode-expected.txt.
- platform/glib/media/W3C/video/canPlayType/canPlayType_codecs_order_1-expected.txt: Renamed from LayoutTests/platform/gtk/media/W3C/video/canPlayType/canPlayType_codecs_order_1-expected.txt.
- platform/glib/media/W3C/video/canPlayType/canPlayType_supported_but_no_codecs_parameter_1-expected.txt: Renamed from LayoutTests/platform/gtk/media/W3C/video/canPlayType/canPlayType_supported_but_no_codecs_parameter_1-expected.txt.
- platform/glib/media/W3C/video/canPlayType/canPlayType_two_implies_one_1-expected.txt: Renamed from LayoutTests/platform/gtk/media/W3C/video/canPlayType/canPlayType_two_implies_one_1-expected.txt.
- platform/glib/media/W3C/video/canPlayType/canPlayType_two_implies_one_2-expected.txt: Renamed from LayoutTests/platform/gtk/media/W3C/video/canPlayType/canPlayType_two_implies_one_2-expected.txt.
- platform/glib/media/audio-controls-rendering-expected.png: Renamed from LayoutTests/platform/gtk/media/audio-controls-rendering-expected.png.
- platform/glib/media/audio-repaint-expected.png: Renamed from LayoutTests/platform/gtk/media/audio-repaint-expected.png.
- platform/glib/media/context-menu-actions-expected.txt: Renamed from LayoutTests/platform/gtk/media/context-menu-actions-expected.txt.
- platform/glib/media/controls-after-reload-expected.png: Renamed from LayoutTests/platform/gtk/media/controls-after-reload-expected.png.
- platform/glib/media/controls-layout-direction-expected.png: Renamed from LayoutTests/platform/gtk/media/controls-layout-direction-expected.png.
- platform/glib/media/controls-strict-expected.png: Renamed from LayoutTests/platform/gtk/media/controls-strict-expected.png.
- platform/glib/media/controls-styling-expected.png: Renamed from LayoutTests/platform/gtk/media/controls-styling-expected.png.
- platform/glib/media/controls-styling-strict-expected.png: Renamed from LayoutTests/platform/gtk/media/controls-styling-strict-expected.png.
- platform/glib/media/controls-without-preload-expected.png: Renamed from LayoutTests/platform/gtk/media/controls-without-preload-expected.png.
- platform/glib/media/media-can-play-ogg-expected.txt: Renamed from LayoutTests/platform/gtk/media/media-can-play-ogg-expected.txt.
- platform/glib/media/media-controls-clone-expected.png: Renamed from LayoutTests/platform/gtk/media/media-controls-clone-expected.png.
- platform/glib/media/media-document-audio-repaint-expected.png: Renamed from LayoutTests/platform/gtk/media/media-document-audio-repaint-expected.png.
- platform/glib/media/media-fullscreen-inline-expected.txt: Renamed from LayoutTests/platform/gtk/media/media-fullscreen-inline-expected.txt.
- platform/glib/media/media-fullscreen-not-in-document-expected.txt: Renamed from LayoutTests/platform/gtk/media/media-fullscreen-not-in-document-expected.txt.
- platform/glib/media/media-source/media-source-resize-expected.txt: Renamed from LayoutTests/platform/gtk/media/media-source/media-source-resize-expected.txt.
- platform/glib/media/video-canvas-alpha-expected.png: Renamed from LayoutTests/platform/gtk/media/video-canvas-alpha-expected.png.
- platform/glib/media/video-controls-rendering-expected.png: Renamed from LayoutTests/platform/gtk/media/video-controls-rendering-expected.png.
- platform/glib/media/video-display-toggle-expected.png: Renamed from LayoutTests/platform/gtk/media/video-display-toggle-expected.png.
- platform/glib/media/video-empty-source-expected.png: Renamed from LayoutTests/platform/gtk/media/video-empty-source-expected.png.
- platform/glib/media/video-no-audio-expected.png: Renamed from LayoutTests/platform/gtk/media/video-no-audio-expected.png.
- platform/glib/media/video-playing-and-pause-expected.png: Renamed from LayoutTests/platform/gtk/media/video-playing-and-pause-expected.png.
- platform/glib/media/video-playing-and-pause-expected.txt: Renamed from LayoutTests/platform/gtk/media/video-playing-and-pause-expected.txt.
- platform/glib/media/video-volume-slider-expected.png: Renamed from LayoutTests/platform/gtk/media/video-volume-slider-expected.png.
- platform/glib/media/video-zoom-controls-expected.png: Renamed from LayoutTests/platform/gtk/media/video-zoom-controls-expected.png.
- platform/glib/media/video-zoom-expected.png: Renamed from LayoutTests/platform/gtk/media/video-zoom-expected.png.
- platform/glib/media/video-zoom-expected.txt: Renamed from LayoutTests/platform/gtk/media/video-zoom-expected.txt.
- platform/gtk/TestExpectations:
- platform/wpe/TestExpectations:
- platform/wpe/media/video-aspect-ratio-expected.txt: Added.
- platform/wpe/media/video-canvas-createPattern-expected.png: Added.
- platform/wpe/media/video-colorspace-yuv420-expected.png: Added.
- platform/wpe/media/video-colorspace-yuv420-expected.txt: Added.
- platform/wpe/media/video-colorspace-yuv422-expected.png: Added.
- platform/wpe/media/video-colorspace-yuv422-expected.txt: Added.
- platform/wpe/media/video-frame-accurate-seek-expected.png: Added.
- platform/wpe/media/video-frame-accurate-seek-expected.txt: Added.
- platform/wpe/media/video-layer-crash-expected.txt: Added.
- platform/wpe/media/video-transformed-expected.txt: Added.
- 6:12 AM Changeset in webkit [276247] by
-
- 24 edits3 adds in trunk
Enable -Wthread-safety, add attributes to custom lock classes, and provide macros to declare guards
https://bugs.webkit.org/show_bug.cgi?id=221614
<rdar://problem/74396781>
Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2021-04-19
Reviewed by David Kilzer.
PerformanceTests:
Add -Wthread-safety to compile flags.
- DecoderTest/Configurations/Base.xcconfig:
Source/bmalloc:
Add -Wthread-safety to compile flags.
- Configurations/Base.xcconfig:
Source/JavaScriptCore:
Add -Wthread-safety to compile flags.
- Configurations/Base.xcconfig:
Source/WebCore:
Add -Wthread-safety to compile flags.
- Configurations/Base.xcconfig:
Source/WebCore/PAL:
Add -Wthread-safety to compile flags.
- Configurations/Base.xcconfig:
Source/WebInspectorUI:
Add -Wthread-safety to compile flags.
- Configurations/Base.xcconfig:
Source/WebKit:
Add -Wthread-safety to compile flags.
- Configurations/Base.xcconfig:
Source/WebKitLegacy/mac:
Add -Wthread-safety to compile flags.
- Configurations/Base.xcconfig:
Source/WTF:
Implement rudimentary support for clang thread safety analysis.
The added macros can be used to declare which member variables or
global variables are locked by which mutexes. The compiler will
check statically that the mutexes are held correctly. The checking
is intra procedural, not global.
- Configurations/Base.xcconfig:
Add -Wthread-safety to compile flags.
- wtf/CheckedLock.h: Added.
Add CheckedLock, a Lock variant that is amenable to static
analysis.
Add a Locker specialization for CheckedLock that is amenable to
static analysis.
Locker<CheckedLock> is a std::scoped_lock. The scoped_lock cannot be aliased,
since it appears that (Apple's) libcxx is not compiled with thread safety
analysis support enabled by default.
New types are needed due Locker move constructor and conditional locking.
The Locker has default usage pattern of:
auto locker = holdLock(m_lock);
This forces dynamism that removes the possibility of simple statical
analysis that thread safety analysis capabilities "mutex" and "scoped_lock"
currently implement. Most likely large fraction of call sites is due to historical
lack of CTAD and as such can be converted to less general form.
Once the pattern is not used by default, CheckedLock can be deleted
and the move dynamism bits of Locker can be moved to some more specific type
("UncheckedLocker").
- wtf/ThreadSafetyAnalysis.h: Added.
Add macro wrappers around clang "mutex" and "scoped_lock" capability attributes.
Tools:
- TestWebKitAPI/Configurations/Base.xcconfig:
Add -Wthread-safety to compile flags.
- TestWebKitAPI/CMakeLists.txt:
- TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
- TestWebKitAPI/Tests/WTF/CheckedLock.cpp: Added.
(TestWebKitAPI::TEST):
Implement a test for testing that CheckedLock compiles.
- 4:55 AM Changeset in webkit [276246] by
-
- 2 edits in trunk
[GTK] Switch to libsoup3 by default
https://bugs.webkit.org/show_bug.cgi?id=224741
Reviewed by Sergio Villar Senin.
- Source/cmake/OptionsGTK.cmake:
- 3:28 AM Changeset in webkit [276245] by
-
- 2 edits in trunk/Source/WebCore
Make RealtimeIncomingAudioSourceCocoa preallocate audio buffer
https://bugs.webkit.org/show_bug.cgi?id=224672
Reviewed by Eric Carlson.
Instead of allocating the buffer on valid data, we wait for data to be of the correct sample rate.
We preallocate the buffer accordingly in constructor to avoid allocation in the webrtc audio thread.
Default is 1 channel since mono is what webrtc encoders mostly do these days.
Covered by existing tests.
- platform/mediastream/mac/RealtimeIncomingAudioSourceCocoa.cpp:
(WebCore::RealtimeIncomingAudioSourceCocoa::RealtimeIncomingAudioSourceCocoa):
(WebCore::RealtimeIncomingAudioSourceCocoa::OnData):
- 2:56 AM Changeset in webkit [276244] by
-
- 4 edits in trunk/Source/WebCore
Move from RecursiveLock to Lock in RealtimeMediaSource
https://bugs.webkit.org/show_bug.cgi?id=224671
Reviewed by Eric Carlson.
RecursiveLock is more expensive as it allocates memory and not useful here.
Covered by existing tests.
- platform/mediastream/RealtimeMediaSource.h:
- platform/mediastream/RealtimeOutgoingAudioSource.h:
- platform/mediastream/RealtimeOutgoingVideoSource.h:
- 2:53 AM Changeset in webkit [276243] by
-
- 9 edits in trunk/Source/WebCore
Reduce crackling at start of playing a live audio track
https://bugs.webkit.org/show_bug.cgi?id=218898
<rdar://problem/71625010>
Reviewed by Eric Carlson.
We often hear crackles at the beginning of playing a MediaStreamTrack.
This is due to starting at a point where there is not enough data, so we start rendering and quickly run short of data.
Our heuristic to start was not good since we were not accounting to LibWebRTC audio module which sends audio samples by batch of 5 samples.
So we would have needed to at least have 6 samples to be sure to not run out of data.
What this patch does:
- Add an extra parameter to AudioSampleDataSource so that we do not start until we have at least been pushed a given number of sample count.
- Change LibWebRTAudioModule to send audio samples by batch of 3 (hence 30 ms) instead of 5
- Set this new parameter to 2 for local tracks and 4 for remote tracks
- Add a new boolean to AudioSampleDataSource to know whether we start the track for the first time or not. If we start it, use the new parameter to buffer enough data. Otherwise, use current heuristic.
We also reduce the AudioSampleDataSource buffer to 0.5 seconds instead of 2 seconds, since 2 seconds is too much for real time audio.
Manually tested.
- platform/audio/cocoa/AudioSampleDataSource.h:
- platform/audio/cocoa/AudioSampleDataSource.mm:
(WebCore::AudioSampleDataSource::create):
(WebCore::AudioSampleDataSource::AudioSampleDataSource):
(WebCore::AudioSampleDataSource::pullSamplesInternal):
- platform/mediastream/libwebrtc/LibWebRTCAudioModule.cpp:
(WebCore::LibWebRTCAudioModule::pollFromSource):
- platform/mediastream/libwebrtc/LibWebRTCAudioModule.h:
- platform/mediastream/mac/AudioMediaStreamTrackRendererCocoa.cpp:
(WebCore::pollSamplesCount):
(WebCore::AudioMediaStreamTrackRendererCocoa::pushSamples):
- platform/mediastream/mac/MediaStreamTrackAudioSourceProviderCocoa.cpp:
(WebCore::MediaStreamTrackAudioSourceProviderCocoa::MediaStreamTrackAudioSourceProviderCocoa):
- platform/mediastream/mac/WebAudioSourceProviderCocoa.h:
- platform/mediastream/mac/WebAudioSourceProviderCocoa.mm:
(WebCore::WebAudioSourceProviderCocoa::prepare):
- 2:49 AM Changeset in webkit [276242] by
-
- 5 edits13 moves17 adds2 deletes in trunk/LayoutTests
Migrate some WebRTC encoded transform tests to WPT
https://bugs.webkit.org/show_bug.cgi?id=224604
Reviewed by Eric Carlson.
LayoutTests/imported/w3c:
- web-platform-tests/webrtc-encoded-transform/routines.js: Added.
(async createConnections):
(waitFor):
- web-platform-tests/webrtc-encoded-transform/script-audio-transform-worker.js: Added.
(MockRTCRtpTransformer):
(MockRTCRtpTransformer.prototype.start):
(MockRTCRtpTransformer.prototype.process):
(onrtctransform):
- web-platform-tests/webrtc-encoded-transform/script-audio-transform.https-expected.txt: Added.
- web-platform-tests/webrtc-encoded-transform/script-audio-transform.https.html: Renamed from LayoutTests/http/wpt/webrtc/audio-script-transform.html.
- web-platform-tests/webrtc-encoded-transform/script-change-transform-worker.js: Renamed from LayoutTests/http/wpt/webrtc/change-encoded-transform.js.
- web-platform-tests/webrtc-encoded-transform/script-change-transform.https-expected.txt: Added.
- web-platform-tests/webrtc-encoded-transform/script-change-transform.https.html: Renamed from LayoutTests/http/wpt/webrtc/change-encoded-transform.html.
- web-platform-tests/webrtc-encoded-transform/script-late-transform.https-expected.txt: Added.
- web-platform-tests/webrtc-encoded-transform/script-late-transform.https.html: Renamed from LayoutTests/http/wpt/webrtc/webrtc-late-transform.html.
- web-platform-tests/webrtc-encoded-transform/script-metadata-transform-worker.js: Renamed from LayoutTests/http/wpt/webrtc/metadata-transform-worker.js.
- web-platform-tests/webrtc-encoded-transform/script-metadata-transform.https-expected.txt: Added.
- web-platform-tests/webrtc-encoded-transform/script-metadata-transform.https.html: Renamed from LayoutTests/http/wpt/webrtc/metadata-transform.html.
- web-platform-tests/webrtc-encoded-transform/script-transform-worker.js: Renamed from LayoutTests/http/wpt/webrtc/script-transform.js.
- web-platform-tests/webrtc-encoded-transform/script-transform.https-expected.txt: Added.
- web-platform-tests/webrtc-encoded-transform/script-transform.https.html: Renamed from LayoutTests/http/wpt/webrtc/webrtc-transform.html.
- web-platform-tests/webrtc-encoded-transform/script-write-twice-transform-worker.js: Renamed from LayoutTests/http/wpt/webrtc/write-twice-transform.js.
- web-platform-tests/webrtc-encoded-transform/script-write-twice-transform.https-expected.txt: Added.
- web-platform-tests/webrtc-encoded-transform/script-write-twice-transform.https.html: Renamed from LayoutTests/http/wpt/webrtc/write-twice-transform.html.
- web-platform-tests/webrtc-encoded-transform/sframe-keys.https-expected.txt: Added.
- web-platform-tests/webrtc-encoded-transform/sframe-keys.https.html: Added.
- web-platform-tests/webrtc-encoded-transform/sframe-transform-buffer-source-expected.txt: Added.
- web-platform-tests/webrtc-encoded-transform/sframe-transform-buffer-source.html: Added.
- web-platform-tests/webrtc-encoded-transform/sframe-transform-expected.txt: Added.
- web-platform-tests/webrtc-encoded-transform/sframe-transform-in-worker.https-expected.txt: Added.
- web-platform-tests/webrtc-encoded-transform/sframe-transform-in-worker.https.html: Renamed from LayoutTests/http/wpt/webrtc/sframe-transform-in-worker.html.
- web-platform-tests/webrtc-encoded-transform/sframe-transform-readable-expected.txt: Added.
- web-platform-tests/webrtc-encoded-transform/sframe-transform-readable.html: Added.
- web-platform-tests/webrtc-encoded-transform/sframe-transform-worker.js: Renamed from LayoutTests/http/wpt/webrtc/sframe-transform.js.
- web-platform-tests/webrtc-encoded-transform/sframe-transform.html: Renamed from LayoutTests/http/wpt/webrtc/sframe-transform.html.
LayoutTests:
- http/wpt/webrtc/sframe-transform-readable-crash.html: Removed.
- platform/glib/TestExpectations:
- platform/ios-wk1/TestExpectations:
- platform/mac-wk1/TestExpectations:
- webrtc/script-transform.js: Removed.
- 2:03 AM Changeset in webkit [276241] by
-
- 3 edits in trunk/Source/WebCore
Enable GL_ANGLE_instanced_arrays WebGL extension in WPE
https://bugs.webkit.org/show_bug.cgi?id=224438
Reviewed by Darin Adler.
Tested by WebGL WPT.
- html/canvas/ANGLEInstancedArrays.cpp:
(WebCore::ANGLEInstancedArrays::supported):
- platform/graphics/opengl/ExtensionsGLOpenGLES.cpp:
(WebCore::ExtensionsGLOpenGLES::supportsExtension):
- 1:58 AM CSSContainment edited by
- (diff)
- 1:39 AM Changeset in webkit [276240] by
-
- 4 edits in trunk
[css-flexbox] Table layout disregards overriding height
https://bugs.webkit.org/show_bug.cgi?id=224665
Patch by Felipe Erias <Felipe Erias> on 2021-04-19
Reviewed by Sergio Villar Senin.
Source/WebCore:
Update table layout to take into account the overriding height set by the element's parent.
This was causing several WPT tests to fail.
- rendering/RenderTable.cpp:
(WebCore::RenderTable::layout):
During layout, set the computed height so that it is at least as large as the overriding height
provided by the element's parent (if any) minus the height that will be taken up by captions.
This additional height will be distributed among the table's sections so its total height matches
the overriding value.
LayoutTests:
- TestExpectations: Removed four WPT tests that now pass.
- 1:23 AM Changeset in webkit [276239] by
-
- 4 edits in trunk/Source/WebCore
[css-scroll-snap] Properly support fractional scroll steps in WebCore::ScrollAnimator::scroll
https://bugs.webkit.org/show_bug.cgi?id=224176
Reviewed by Simon Fraser.
Stop using the ScrollableArea's position to calculate scroll snap positions in ScrollAnimator::snap.
The position stored in ScrollAnimator is a floating point position, while the one stored in ScrollableArea
is an integer position. This currently isn't an issue, because all callers of ScrollAnimator::scroll
use integer scroll offsets, but this will allow this function to be used in the future for precise
scrolling delta.
No new tests. This doesn't change any behavior, since all callers currently use
integer scroll offsets, but a future change will make use of this fix.
- platform/ScrollAnimator.cpp:
(WebCore::ScrollAnimator::scroll): Get the current scroll position from the ScrollAnimator,
which stores it in floating point. Also, only call into the scroll snap code if we actually
have scroll offsets.
(WebCore::ScrollAnimator::offsetFromPosition): Added this helper.
(WebCore::ScrollAnimator::positionFromOffset): Ditto.
(WebCore::ScrollAnimator::deltaFromStep): Return a delta instead of a position so this helper
can be used with offsets or positions.
(WebCore::ScrollAnimator::positionFromStep): Deleted.
- platform/ScrollAnimator.h:
- platform/mac/ScrollAnimatorMac.mm:
(WebCore::ScrollAnimatorMac::scroll): Use the new helper.j
- 1:16 AM Changeset in webkit [276238] by
-
- 11 edits in trunk
[WPE][GTK] Enable AVIF decoder as experimental feature and unskip tests
https://bugs.webkit.org/show_bug.cgi?id=224663
Reviewed by Xabier Rodriguez-Calvar.
.:
Make the USE_AVIF option public and enable it as experimental feature.
- Source/cmake/OptionsGTK.cmake:
- Source/cmake/OptionsWPE.cmake:
Source/WebCore:
Refactor the AVIF build options out of the GTK port so they can be reused by other CMake ports.
- PlatformGTK.cmake:
- platform/ImageDecoders.cmake:
- platform/image-decoders/avif/AVIFImageDecoder.cpp:
- platform/image-decoders/avif/AVIFImageReader.cpp:
- platform/image-decoders/avif/AVIFUniquePtr.h:
LayoutTests:
- platform/gtk/TestExpectations: Unskip avif tests.
- 12:46 AM BuildingCairoOnWindows edited by
- (diff)
Apr 18, 2021:
- 11:57 PM Changeset in webkit [276237] by
-
- 5 edits1 delete in trunk/LayoutTests
[selectors] Update :focus-visible tests from WPT
https://bugs.webkit.org/show_bug.cgi?id=224601
<rdar://problem/76827947>
Reviewed by Darin Adler.
LayoutTests/imported/w3c:
Fix expectations that were broken due to a mistake in the previous commit.
The tests had some extra changes due to webkit.org/224658, the tests were modified but not the expectations.
- web-platform-tests/css/selectors/focus-visible-002-expected.txt:
- web-platform-tests/css/selectors/focus-visible-003-expected.txt:
- web-platform-tests/css/selectors/focus-visible-004-expected.txt:
LayoutTests:
Remove glib expectations as they match the main ones.
- platform/glib/imported/w3c/web-platform-tests/css/selectors/focus-visible-002-expected.txt: Removed.
- platform/glib/imported/w3c/web-platform-tests/css/selectors/focus-visible-003-expected.txt: Removed.
- platform/glib/imported/w3c/web-platform-tests/css/selectors/focus-visible-004-expected.txt: Removed.
- 11:32 PM Changeset in webkit [276236] by
-
- 4 edits2 adds in trunk
Selected image overlay text should never be visible
https://bugs.webkit.org/show_bug.cgi?id=224734
<rdar://problem/76806399>
Reviewed by Darin Adler.
Source/WebCore:
Make a slight adjustment to the UA stylesheet to ensure that image overlay text is never visible. See below for
more details.
Test: fast/images/image-extraction/image-overlay-with-selection-styles.html
- html/shadow/imageOverlay.css:
(div.image-overlay-text::selection):
Enforce selected text styles for image overlay text.
- rendering/RenderElement.cpp:
(WebCore::RenderElement::selectionPseudoStyle const):
Make an additional adjustment when computing selection pseudo styles for UA shadow root content. Currently, for
elements inside a UA shadow root, we always immediately ascend to the shadow host; this means that::selection
pseudo selectors currently don't work in UA stylesheets, since they're skipped when resolving styles, upon
painting selected text.
To fix this, we can let the element's own pseudo styles take precedence over the shadow host's renderer in the
case where we have a selection pseudo style. While we're here, also replace a few raw pointers withRefPtr
.
LayoutTests:
Add a new layout test.
- fast/images/image-extraction/image-overlay-with-selection-styles-expected.html: Added.
- fast/images/image-extraction/image-overlay-with-selection-styles.html: Added.
- 11:13 PM Changeset in webkit [276235] by
-
- 17 edits in trunk
Support contain: layout
https://bugs.webkit.org/show_bug.cgi?id=223569
Patch by Rob Buis <rbuis@igalia.com> on 2021-04-18
Reviewed by Darin Adler.
Source/WebCore:
This patch implements layout containment as specified[1].
It adds shouldApplyLayoutContainment to check whether the
element applies for layout containment. Is so, then:
- an independent formatting context is established.
- any overflow is treated as ink overflow.
- an absolute positioning and fixed positioning
containing block is established.
- a stacking context is created.
- for baseline handling, the box is treated as having no
baseline. For grid/flexible box containers/items, this needs
a baseline synthesized from the border edges [2], for buttons it
requires a baseline synthesized from the margin edges [2, 3].
[1] https://drafts.csswg.org/css-contain-2/#layout-containment
[2] https://drafts.csswg.org/css-align-3/#synthesize-baseline
[3] https://www.w3.org/TR/CSS2/visudet.html#propdef-vertical-align
- rendering/RenderBlock.cpp:
(WebCore::RenderBlock::firstLineBaseline const):
(WebCore::RenderBlock::inlineBlockBaseline const):
- rendering/RenderBlockFlow.cpp:
(WebCore::RenderBlockFlow::firstLineBaseline const):
(WebCore::RenderBlockFlow::inlineBlockBaseline const):
- rendering/RenderBox.cpp:
(WebCore::RenderBox::createsNewFormattingContext const):
(WebCore::RenderBox::layoutOverflowRectForPropagation const):
- rendering/RenderBox.h:
- rendering/RenderButton.cpp:
(WebCore::RenderButton::baselinePosition const):
- rendering/RenderElement.h:
(WebCore::RenderElement::canContainFixedPositionObjects const):
(WebCore::RenderElement::canContainAbsolutelyPositionedObjects const):
- rendering/RenderFlexibleBox.cpp:
(WebCore::RenderFlexibleBox::firstLineBaseline const):
- rendering/RenderGrid.cpp:
(WebCore::RenderGrid::firstLineBaseline const):
- rendering/RenderListBox.cpp:
(WebCore::RenderListBox::baselinePosition const):
- rendering/RenderObject.cpp:
(WebCore::objectIsRelayoutBoundary):
(WebCore::shouldApplyLayoutContainment):
- rendering/RenderObject.h:
(WebCore::RenderObject::isAtomicInlineLevelBox const):
- rendering/RenderTable.cpp:
(WebCore::RenderTable::firstLineBaseline const):
- rendering/style/RenderStyle.h:
(WebCore::RenderStyle::containsLayout const):
- style/StyleAdjuster.cpp:
(WebCore::Style::Adjuster::adjust const):
LayoutTests:
Unskip tests that pass now.
- 7:43 PM Changeset in webkit [276234] by
-
- 2 edits in trunk/LayoutTests
[GLIB] Unreviewed test gardening. Marked css-transforms/animation/rotate-composition.html as failure after r276231.
- platform/glib/TestExpectations:
- 6:56 PM Changeset in webkit [276233] by
-
- 2 edits3 adds in trunk/LayoutTests
[WinCairo] Unreviewed test gardening
- platform/wincairo-wk1/http/tests/xmlhttprequest/redirect-cross-origin-post-expected.txt: Added.
- platform/wincairo-wk1/http/tests/xmlhttprequest/simple-cross-origin-denied-events-post-expected.txt: Added.
- platform/wincairo/TestExpectations:
- 2:14 PM Changeset in webkit [276232] by
-
- 5 edits in trunk/Source/WebCore
GraphicsLayer::distributeOpacity, GraphicsLayer::setOpacityInternal and GraphicsLayer::accumulatedOpacity are never used
https://bugs.webkit.org/show_bug.cgi?id=224732
Reviewed by Darin Adler.
Remove dead code.
- platform/graphics/GraphicsLayer.cpp:
(WebCore::GraphicsLayer::accumulatedOpacity const): Deleted.
(WebCore::GraphicsLayer::distributeOpacity): Deleted.
- platform/graphics/GraphicsLayer.h:
(WebCore::GraphicsLayer::setOpacityInternal): Deleted.
- platform/graphics/ca/GraphicsLayerCA.cpp:
- platform/graphics/ca/GraphicsLayerCA.h:
- 11:12 AM Changeset in webkit [276231] by
-
- 9 edits in trunk
Fix interpolation of the rotate CSS property
https://bugs.webkit.org/show_bug.cgi?id=224730
Reviewed by Dean Jackson.
LayoutTests/imported/w3c:
Mark 123 WPT progressions.
- web-platform-tests/css/css-transforms/animation/rotate-composition-expected.txt:
- web-platform-tests/css/css-transforms/animation/rotate-interpolation-expected.txt:
- web-platform-tests/css/css-transforms/animation/transform-interpolation-001-expected.txt:
- web-platform-tests/web-animations/animation-model/animation-types/accumulation-per-property-002-expected.txt:
- web-platform-tests/web-animations/animation-model/animation-types/addition-per-property-002-expected.txt:
- web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-002-expected.txt:
Source/WebCore:
Implement the CSS Transforms spec about animating the rotateZ() function
for the simplified case where only the angle is interpolated.
- platform/graphics/transforms/RotateTransformOperation.cpp:
(WebCore::RotateTransformOperation::blend):
- 9:42 AM Changeset in webkit [276230] by
-
- 12 edits in trunk
Blob URLs should use for their owner origin for CSP checks
https://bugs.webkit.org/show_bug.cgi?id=224535
<rdar://76458106>
Reviewed by Alex Christensen.
Source/WebCore:
Before the patch, we were checking blob origin directly with ancestors.
As per https://w3c.github.io/webappsec-csp/#match-url-to-source-expression step 4.1,
we need to get the URL origin, which by spec is the origin of the blob creator.
We only do this for navigation loads as script loads should be kept the current way, as a cross-site scripting protection,
and to remain compatible with other browsers.
Make some refactoring to add helper routines to get origin and secure context state of blob URLs in BlobURL.
Make use of it in MixedContentChecker as a refactoring.
Make use of the helper routine in ContentSecurityPolicySource::matches to fix the bug.
Test: http/tests/security/frame-src-and-blob-download.https.html
- fileapi/BlobURL.cpp:
(WebCore::blobOwner):
(WebCore::BlobURL::getOriginURL):
(WebCore::BlobURL::isSecureBlobURL):
- fileapi/BlobURL.h:
- fileapi/ThreadableBlobRegistry.cpp:
(WebCore::isBlobURLContainsNullOrigin):
- loader/MixedContentChecker.cpp:
(WebCore::MixedContentChecker::isMixedContent):
- page/SecurityOrigin.cpp:
(WebCore::SecurityOrigin::isSecure):
- page/csp/ContentSecurityPolicy.cpp:
(WebCore::ContentSecurityPolicy::urlMatchesSelf const):
- page/csp/ContentSecurityPolicy.h:
- page/csp/ContentSecurityPolicySourceList.cpp:
(WebCore::ContentSecurityPolicySourceList::matches const):
LayoutTests:
- http/tests/security/frame-src-and-blob-download.https-expected.txt: Added.
- http/tests/security/frame-src-and-blob-download.https.html:
- http/tests/security/resources/frame-src-and-blob-download-frame.html: Added.
- platform/mac-wk1/TestExpectations:
- platform/win/TestExpectations:
- 6:40 AM Changeset in webkit [276229] by
-
- 2 edits in trunk/Tools
Update name in contributors.json
https://bugs.webkit.org/show_bug.cgi?id=224731
Unreviewed.
- Scripts/webkitpy/common/config/contributors.json:
- 5:45 AM Changeset in webkit [276228] by
-
- 4 edits in trunk
The implicit aspect-ratio from width and height attributes with float value is not accurate enough
https://bugs.webkit.org/show_bug.cgi?id=224664
Reviewed by Darin Adler.
LayoutTests/imported/w3c:
The aspect ratio test case with width "0.8" and height "0.2" in img-aspect-ratio.html has passed. This patch doesn't change the behavior of
the original aspect ratio test case(assert_ratio(images[5], 133/106)
) which is related to bug 206161.
- web-platform-tests/html/rendering/replaced-elements/attributes-for-embedded-content-and-images/img-aspect-ratio-expected.txt:
Source/WebCore:
The width and height attributes should impact the aspect ratio only not the intrinsic size which should be from the content.
Since computeAspectRatioInformationForRenderBox doesn't change the intrinsic size now, so we can remove it from computePreferredLogicalWidths.
- rendering/RenderReplaced.cpp:
(WebCore::RenderReplaced::computeIntrinsicRatioInformation const): Width and height attributes change intrinsicRatio only, not intrinsicSize.
(WebCore::RenderReplaced::computePreferredLogicalWidths): computeAspectRatioInformationForRenderBox doesn't change intrinsicSize now, so we can remove this.
- 1:35 AM Changeset in webkit [276227] by
-
- 2 edits in trunk/Source/JavaScriptCore
Unreviewed, build fix
https://bugs.webkit.org/show_bug.cgi?id=224715
- dfg/DFGDesiredWatchpoints.h:
- 1:06 AM Changeset in webkit [276226] by
-
- 18 edits in trunk/Source/JavaScriptCore
[JSC] Do not use Bag<> for DFG / FTL watchpoints
https://bugs.webkit.org/show_bug.cgi?id=224715
Reviewed by Darin Adler.
While Bag<> is useful since its allocated memory will not be moved,
this is really memory-inefficient data structure. Each entry gets a
tail pointer (so adding 8 bytes) and we allocate each entry separately.
In DFG and FTL, we are using Bag<> for watchpoints. But this is not necessary actually: thanks to
concurrent compilers, our watchpoint registration is batched at the end of compilation. This means
that we have a way to know how many watchpoints we should register at that point.
In this patch, we introduce WatchpointCollector. In DesiredGlobalProperties, we run reallyAdd twice
with WatchpointCollector. First time, we just count # of watchpoints. Then we allocate FixedVector<XXXWatchpoint>
and install them. Since we do not (cannot) grow this fixed vector, watchpoint's address will not be changed as required.
We also move DesiredGlobalProperties under DesiredWatchpoints since this basically registers watchpoints.
- bytecode/AdaptiveInferredPropertyValueWatchpointBase.cpp:
(JSC::AdaptiveInferredPropertyValueWatchpointBase::AdaptiveInferredPropertyValueWatchpointBase):
(JSC::AdaptiveInferredPropertyValueWatchpointBase::initialize):
- bytecode/AdaptiveInferredPropertyValueWatchpointBase.h:
- bytecode/CodeBlockJettisoningWatchpoint.h:
- dfg/DFGAdaptiveInferredPropertyValueWatchpoint.cpp:
(JSC::DFG::AdaptiveInferredPropertyValueWatchpoint::AdaptiveInferredPropertyValueWatchpoint):
(JSC::DFG::AdaptiveInferredPropertyValueWatchpoint::initialize):
- dfg/DFGAdaptiveInferredPropertyValueWatchpoint.h:
- dfg/DFGAdaptiveStructureWatchpoint.cpp:
(JSC::DFG::AdaptiveStructureWatchpoint::AdaptiveStructureWatchpoint):
(JSC::DFG::AdaptiveStructureWatchpoint::initialize):
- dfg/DFGAdaptiveStructureWatchpoint.h:
- dfg/DFGCommonData.cpp:
(JSC::DFG::CommonData::validateReferences):
(JSC::DFG::CommonData::clearWatchpoints):
- dfg/DFGCommonData.h:
- dfg/DFGDesiredGlobalProperties.cpp:
(JSC::DFG::DesiredGlobalProperties::reallyAdd):
- dfg/DFGDesiredGlobalProperties.h:
- dfg/DFGDesiredWatchpoints.cpp:
(JSC::DFG::ArrayBufferViewWatchpointAdaptor::add):
(JSC::DFG::SymbolTableAdaptor::add):
(JSC::DFG::FunctionExecutableAdaptor::add):
(JSC::DFG::AdaptiveStructureWatchpointAdaptor::add):
(JSC::DFG::DesiredWatchpoints::addLazily):
(JSC::DFG::DesiredWatchpoints::reallyAdd):
(JSC::DFG::DesiredWatchpoints::areStillValidOnMainThread):
(JSC::DFG::WatchpointCollector::finalize):
- dfg/DFGDesiredWatchpoints.h:
(JSC::DFG::SetPointerAdaptor::add):
(JSC::DFG::GenericDesiredWatchpoints::reallyAdd):
- dfg/DFGGraph.cpp:
(JSC::DFG::Graph::watchGlobalProperty):
- dfg/DFGGraph.h:
- dfg/DFGPlan.cpp:
(JSC::DFG::Plan::reallyAdd):
(JSC::DFG::Plan::isStillValidOnMainThread):
(JSC::DFG::Plan::cancel):
- dfg/DFGPlan.h:
(JSC::DFG::Plan::transitions):
(JSC::DFG::Plan::globalProperties): Deleted.
- 12:43 AM Changeset in webkit [276225] by
-
- 2 edits in trunk/Source/WebCore
Use binary-search in LocaleToScriptMapping
https://bugs.webkit.org/show_bug.cgi?id=224727
Reviewed by Darin Adler.
This patch removes HashMaps in LocaleToScriptMapping, and binary-search onto the constant data arrays.
These maps are not frequently used. Keys of the maps can be encoded into uint32_t or uint64_t so that
comparison becomes super cheap and we can initialize this array at compile-time.
We introduce ScriptName(uint32_t) and LocaleName(uint64_t) instead of String. And ues it and generate
sorted constant data array for mappings. We use binary-search to look entry up. Since # of entries are
not huge (~200), comparisons are extremely cheap (uint32_t / uint64_t comparison), and this is not a
hot code, we can just use binary-search here and eliminate HashMaps' memory allocation.
- platform/text/LocaleToScriptMapping.cpp:
(WebCore::PackedASCIILowerCodes::PackedASCIILowerCodes):
(WebCore::PackedASCIILowerCodes::parse):
(WebCore::PackedASCIILowerCodes::operator==):
(WebCore::PackedASCIILowerCodes::operator!=):
(WebCore::PackedASCIILowerCodes::operator<):
(WebCore::PackedASCIILowerCodes::operator<=):
(WebCore::PackedASCIILowerCodes::operator>):
(WebCore::PackedASCIILowerCodes::operator>=):
(WebCore::PackedASCIILowerCodes::value const):
(WebCore::scriptNameToCode):
(WebCore::localeToScriptCodeForFontSelection):
- 12:14 AM Changeset in webkit [276224] by
-
- 18 edits in trunk/Source/JavaScriptCore
[JSC] Make more DFG/FTL data FixedVector/Vector
https://bugs.webkit.org/show_bug.cgi?id=224713
Reviewed by Darin Adler.
- DFG::JITCode::m_osrEntry / DFG::JITCode::m_osrExit / DFG::JITCode::m_speculationRecovery are changed to FixedVector. They are added at compiling time, and after that, these vectors are not modified. So when finalizing, we can easily make it FixedVector. We also change OSREntry::{m_reshufflings,m_expectedValues} to FixedVector and FixedOperands.
- FTL::JITCode::m_osrExit is changed from SegmentedVector to Vector. We are still using Vector since it also involves osrExitDescriptor. But later, we should merge m_osrExit to osrExitDescriptor. Vector is still better than SegmentedVector since it wastes several entries per segment. SegmentedVector was used to use a direct pointer of OSRExit (this is not possible in Vector since this pointer can be invalidated after growing), but usage of that is fairly limited so that we can just replace them with m_index + osrExit vector.
- bytecode/CodeBlock.cpp:
(JSC::CodeBlock::tallyFrequentExitSites):
- bytecode/Operands.h:
(JSC::Operands::Operands):
- dfg/DFGJITCode.cpp:
(JSC::DFG::JITCode::shrinkToFit):
(JSC::DFG::JITCode::liveRegistersToPreserveAtExceptionHandlingCallSite):
(JSC::DFG::JITCode::validateReferences):
(JSC::DFG::JITCode::findPC):
(JSC::DFG::JITCode::finalizeOSREntrypoints):
- dfg/DFGJITCode.h:
- dfg/DFGJITCompiler.cpp:
(JSC::DFG::JITCompiler::linkOSRExits):
(JSC::DFG::JITCompiler::link):
(JSC::DFG::JITCompiler::noticeOSREntry):
(JSC::DFG::JITCompiler::appendExceptionHandlingOSRExit):
- dfg/DFGJITCompiler.h:
(JSC::DFG::JITCompiler::appendOSRExit):
(JSC::DFG::JITCompiler::appendSpeculationRecovery):
- dfg/DFGOSREntry.h:
- dfg/DFGOSRExit.cpp:
(JSC::DFG::JSC_DEFINE_JIT_OPERATION):
- dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::speculationCheck):
(JSC::DFG::SpeculativeJIT::emitInvalidationPoint):
(JSC::DFG::SpeculativeJIT::linkOSREntries):
- ftl/FTLJITCode.cpp:
(JSC::FTL::JITCode::shrinkToFit):
(JSC::FTL::JITCode::validateReferences):
(JSC::FTL::JITCode::liveRegistersToPreserveAtExceptionHandlingCallSite):
(JSC::FTL::JITCode::findPC):
- ftl/FTLJITCode.h:
- ftl/FTLOSRExit.cpp:
(JSC::FTL::OSRExitDescriptor::prepareOSRExitHandle):
(JSC::FTL::OSRExit::OSRExit):
- ftl/FTLOSRExit.h:
- ftl/FTLOSRExitCompiler.cpp:
(JSC::FTL::JSC_DEFINE_JIT_OPERATION):
- ftl/FTLOSRExitHandle.cpp:
(JSC::FTL::OSRExitHandle::emitExitThunk):
- ftl/FTLOSRExitHandle.h:
(JSC::FTL::OSRExitHandle::OSRExitHandle):
- ftl/FTLPatchpointExceptionHandle.cpp:
(JSC::FTL::PatchpointExceptionHandle::scheduleExitCreationForUnwind):
- 12:10 AM Changeset in webkit [276223] by
-
- 3 edits in trunk/Source/WebKit
Update LibWebRTCCodecsProxy to use a Lock
https://bugs.webkit.org/show_bug.cgi?id=224728
Reviewed by Darin Adler.
Update LibWebRTCCodecsProxy to use a Lock, instead of a std::atomic<bool> that
has to be kept up to date. I think this simplifies the code a bit. Adding / Removing
encoder / decoder is not very hot code as far as I know and there will very rarely
be contention since allowsExitUnderMemoryPressure() is only called on memory pressure.
m_encoder / m_decoder are still always modified from the background thread. However, we
now check from the main thread if they are empty by locking.
- GPUProcess/webrtc/LibWebRTCCodecsProxy.h:
- GPUProcess/webrtc/LibWebRTCCodecsProxy.mm:
(WebKit::LibWebRTCCodecsProxy::close):
(WebKit::LibWebRTCCodecsProxy::createH264Decoder):
(WebKit::LibWebRTCCodecsProxy::createH265Decoder):
(WebKit::LibWebRTCCodecsProxy::createVP9Decoder):
(WebKit::LibWebRTCCodecsProxy::releaseDecoder):
(WebKit::LibWebRTCCodecsProxy::decodeFrame):
(WebKit::LibWebRTCCodecsProxy::setFrameSize):
(WebKit::LibWebRTCCodecsProxy::createEncoder):
(WebKit::LibWebRTCCodecsProxy::releaseEncoder):
(WebKit::LibWebRTCCodecsProxy::initializeEncoder):
(WebKit::LibWebRTCCodecsProxy::encodeFrame):
(WebKit::LibWebRTCCodecsProxy::setEncodeRates):
(WebKit::LibWebRTCCodecsProxy::allowsExitUnderMemoryPressure const):
(WebKit::LibWebRTCCodecsProxy::updateHasEncodersOrDecoders): Deleted.
Apr 17, 2021:
- 10:23 PM Changeset in webkit [276222] by
-
- 6 edits in trunk
GPUConnectionToWebProcess::allowsExitUnderMemoryPressure() should check if libWebRTCCodecsProxy is used
https://bugs.webkit.org/show_bug.cgi?id=224709
Reviewed by Darin Adler.
Source/WebKit:
If the libWebRTCCodecsProxy has either encoders or decoders then the GPUProcess should not
exit under memory pressure, since it is not idle.
- GPUProcess/GPUConnectionToWebProcess.cpp:
(WebKit::GPUConnectionToWebProcess::allowsExitUnderMemoryPressure const):
- GPUProcess/webrtc/LibWebRTCCodecsProxy.h:
- GPUProcess/webrtc/LibWebRTCCodecsProxy.mm:
(WebKit::LibWebRTCCodecsProxy::createH264Decoder):
(WebKit::LibWebRTCCodecsProxy::createH265Decoder):
(WebKit::LibWebRTCCodecsProxy::createVP9Decoder):
(WebKit::LibWebRTCCodecsProxy::releaseDecoder):
(WebKit::LibWebRTCCodecsProxy::createEncoder):
(WebKit::LibWebRTCCodecsProxy::releaseEncoder):
(WebKit::LibWebRTCCodecsProxy::updateHasEncodersOrDecoders):
(WebKit::LibWebRTCCodecsProxy::allowsExitUnderMemoryPressure const):
Use a std::atomic<bool> to determine if the LibWebRTCCodecsProxy has encoders/decoders since
allowsExitUnderMemoryPressure() gets called on the main thread but m_encoders / m_decoders
get updated on a background thread.
Tools:
Add API test coverage.
- TestWebKitAPI/Tests/WebKitCocoa/GPUProcess.mm:
(runMemoryPressureExitTest):
(waitUntilCaptureState):
(TEST):
- 9:47 PM Changeset in webkit [276221] by
-
- 10 edits in trunk/Source/WebKit
Unhandled IPC messages should use correct format with the decoder.destinationID() ASSERT message
https://bugs.webkit.org/show_bug.cgi?id=224335
Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2021-04-17
Reviewed by Antti Koivisto.
Use PRIu64 instead of llu in the ASSERT messages for printing unhandled message destination.
uint64_t is printf'ed with PRIu64.
- Scripts/webkit/messages.py:
(generate_message_handler):
- Scripts/webkit/tests/TestWithIfMessageMessageReceiver.cpp:
(WebKit::TestWithIfMessage::didReceiveMessage):
- Scripts/webkit/tests/TestWithImageDataMessageReceiver.cpp:
(WebKit::TestWithImageData::didReceiveMessage):
(WebKit::TestWithImageData::didReceiveSyncMessage):
- Scripts/webkit/tests/TestWithLegacyReceiverMessageReceiver.cpp:
(WebKit::TestWithLegacyReceiver::didReceiveTestWithLegacyReceiverMessage):
(WebKit::TestWithLegacyReceiver::didReceiveSyncTestWithLegacyReceiverMessage):
- Scripts/webkit/tests/TestWithSemaphoreMessageReceiver.cpp:
(WebKit::TestWithSemaphore::didReceiveMessage):
(WebKit::TestWithSemaphore::didReceiveSyncMessage):
- Scripts/webkit/tests/TestWithStreamBufferMessageReceiver.cpp:
(WebKit::TestWithStreamBuffer::didReceiveMessage):
- Scripts/webkit/tests/TestWithStreamMessageReceiver.cpp:
(WebKit::TestWithStream::didReceiveStreamMessage):
- Scripts/webkit/tests/TestWithSuperclassMessageReceiver.cpp:
(WebKit::TestWithSuperclass::didReceiveSyncMessage):
- Scripts/webkit/tests/TestWithoutAttributesMessageReceiver.cpp:
(WebKit::TestWithoutAttributes::didReceiveMessage):
(WebKit::TestWithoutAttributes::didReceiveSyncMessage):
- 9:24 PM Changeset in webkit [276220] by
-
- 13 edits in trunk/Source
[macOS] Add some support for webpage translation in WebKitLegacy
https://bugs.webkit.org/show_bug.cgi?id=224683
<rdar://problem/75641882>
Reviewed by Darin Adler.
Source/WebCore:
Remove compile-time guards around
ContextMenuItemTagAddHighlightToCurrentGroup
and
ContextMenuItemTagAddHighlightToNewGroup
, so that we can keep these internal WebCore context menu tags in sync
with the SPI-exposed enum values inWebUIDelegatePrivate.h
. See WebKitLegacy ChangeLog for more details.
- page/ContextMenuController.cpp:
(WebCore::ContextMenuController::contextMenuItemSelected):
(WebCore::ContextMenuController::checkOrEnableIfNeeded const):
- platform/ContextMenuItem.cpp:
(WebCore::isValidContextMenuAction):
- platform/ContextMenuItem.h:
Source/WebKit:
Remove some more compile-time guards, now that the WebCore enum is not conditional on
ENABLE(APP_HIGHLIGHT)
.
See WebCore/ChangeLog for more information.
- Shared/API/c/WKSharedAPICast.h:
(WebKit::toAPI):
(WebKit::toImpl):
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::contextMenuItemSelected):
- UIProcess/mac/WebContextMenuProxyMac.mm:
(WebKit::menuItemIdentifier):
Source/WebKitLegacy/mac:
Add support for the webpage translation context menu item in WebKitLegacy. See below for more details.
- WebView/WebHTMLView.mm:
(toAction):
(toTag):
Introduce the
WebMenuItemTagTranslate
enum value, and use it as the tag value when creating anNSMenuItem
for the Translate action.
(createMenuItem):
- WebView/WebUIDelegatePrivate.h:
Unfortunately, in order to support a particular internal client of WebKitLegacy, we need to expose
WebMenuItemTagTranslate
as an enum value in this existing enumeration of context menu item tags. This is
because the client's implementation of-webView:contextMenuItemsForElement:defaultMenuItems:
rejects context
menu items by default, unless the item tag is within the set of item tags that they support.
This client will need to add the enum value of
WebMenuItemTagTranslate
into their allow-list.
- WebView/WebView.mm:
(+[WebView _canHandleContextMenuTranslation]):
Softlink against and check with
TranslationUIServices
to see if we should be showing the Translate menu item.
(-[WebView _handleContextMenuTranslation:selectionBounds:menuLocation:]):
Handle the menu action by creating and presenting a new
LTUITranslationViewController
using the given
information.
- WebView/WebViewInternal.h:
- 8:49 PM Changeset in webkit [276219] by
-
- 9 edits in trunk
Remove PromisedAttachmentInfo::blobURL and adjacent code
https://bugs.webkit.org/show_bug.cgi?id=224720
Reviewed by Ryosuke Niwa.
Source/WebCore:
Remove this member of
PromisedAttachmentInfo
. See WebKit ChangeLog for more details.
- editing/Editor.cpp:
(WebCore::Editor::promisedAttachmentInfo):
- platform/PromisedAttachmentInfo.h:
(WebCore::PromisedAttachmentInfo::operator bool const):
Source/WebKit:
The
blobURL
member ofPromisedAttachmentInfo
was originally introduced to facilitate drag and drop support
for attachment elements in WebKit2, by writing blob URL data to temporary file paths on behalf of
NSFilePromiseProvider
when starting a drag on attachment elements backed by blobs. However, this was
superceded by use ofNSFileWrapper
and the_WKAttachment
SPI instead, such that we only support dragging
attachment elements if they correspond to APIAttachment
objects in the UI process. This means we can remove
thisblobURL
, along with the file name and content type members of the struct (which were only added to
support the ability to drag blob-backed attachments).
Code that utilized this member was originally introduced in <https://trac.webkit.org/r235202>, and was
subsequently removed in <https://trac.webkit.org/r240687>.
- Shared/WebCoreArgumentCoders.cpp:
(IPC::ArgumentCoder<PromisedAttachmentInfo>::encode):
(IPC::ArgumentCoder<PromisedAttachmentInfo>::decode):
- UIProcess/Cocoa/WebViewImpl.mm:
(-[WKPromisedAttachmentContext initWithIdentifier:fileName:]):
(WebKit::WebViewImpl::writeToURLForFilePromiseProvider):
(WebKit::WebViewImpl::startDrag):
(-[WKPromisedAttachmentContext initWithIdentifier:blobURL:fileName:]): Deleted.
(-[WKPromisedAttachmentContext blobURL]): Deleted.
- UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView _prepareToDragPromisedAttachment:]):
Tools:
Rebaseline a couple of iOS WKAttachment tests that are failing on recent versions of the iOS SDK. The content
type of text files that are inserted as attachments is now a MIME type rather than a UTI, which is still valid
since it is valid for the content type of an attachment to be either a MIME type or UTI.
- TestWebKitAPI/Tests/WebKitCocoa/WKAttachmentTests.mm:
(TestWebKitAPI::TEST):
- 8:40 PM Changeset in webkit [276218] by
-
- 5 edits in trunk/Source/WebKit
Use WebProcess::existingGPUProcessConnection() whenever possible
https://bugs.webkit.org/show_bug.cgi?id=224725
Reviewed by Darin Adler.
Use WebProcess::existingGPUProcessConnection() whenever possible, instead of WebProcess::ensureGPUProcessConnection().
This avoids relaunching the GPUProcess if it has already exited.
- WebProcess/GPU/media/RemoteAudioHardwareListener.cpp:
(WebKit::RemoteAudioHardwareListener::~RemoteAudioHardwareListener):
- WebProcess/GPU/webrtc/AudioMediaStreamTrackRenderer.cpp:
(WebKit::AudioMediaStreamTrackRenderer::~AudioMediaStreamTrackRenderer):
- WebProcess/cocoa/RemoteRealtimeAudioSource.cpp:
(WebKit::RemoteRealtimeAudioSource::~RemoteRealtimeAudioSource):
- WebProcess/cocoa/RemoteRealtimeVideoSource.cpp:
(WebKit::RemoteRealtimeVideoSource::~RemoteRealtimeVideoSource):
- 6:19 PM Changeset in webkit [276217] by
-
- 3 edits in trunk/Source/JavaScriptCore
Unreviewed, suppress warnings
https://bugs.webkit.org/show_bug.cgi?id=224616
- runtime/HashMapImpl.h:
- runtime/HashMapImplInlines.h:
(JSC::areKeysEqual):
(JSC::wangsInt64Hash):
- 6:03 PM Changeset in webkit [276216] by
-
- 30 edits8 adds in trunk
Add support for inline-{start/end} values to float & clear properties
https://bugs.webkit.org/show_bug.cgi?id=218087
Patch by Tim Nguyen <ntim@apple.com> on 2021-04-17
Reviewed by Antti Koivisto & Zalan Bujtas.
Imported reftests from: https://github.com/web-platform-tests/wpt/commit/47e7176242e2ca4ca68d6cfe032619ccf44d55a6
Enabled: imported/w3c/web-platform-tests/css/css-logical/logical-values-float-clear.html
LayoutTests/imported/w3c:
- web-platform-tests/css/css-box/parsing/clear-computed-expected.txt:
- web-platform-tests/css/css-box/parsing/clear-valid-expected.txt:
- web-platform-tests/css/css-box/parsing/float-computed-expected.txt:
- web-platform-tests/css/css-box/parsing/float-valid-expected.txt:
- web-platform-tests/css/css-logical/logical-values-float-clear-1-expected.html: Added.
- web-platform-tests/css/css-logical/logical-values-float-clear-1.html: Added.
- web-platform-tests/css/css-logical/logical-values-float-clear-2-expected.html: Added.
- web-platform-tests/css/css-logical/logical-values-float-clear-2.html: Added.
- web-platform-tests/css/css-logical/logical-values-float-clear-3-expected.html: Added.
- web-platform-tests/css/css-logical/logical-values-float-clear-3.html: Added.
- web-platform-tests/css/css-logical/logical-values-float-clear-4-expected.html: Added.
- web-platform-tests/css/css-logical/logical-values-float-clear-4.html: Added.
- web-platform-tests/css/css-logical/logical-values-float-clear-expected.txt:
- web-platform-tests/css/css-logical/w3c-import.log:
Source/WebCore:
Tests: imported/w3c/web-platform-tests/css/css-logical/logical-values-float-clear-1.html
imported/w3c/web-platform-tests/css/css-logical/logical-values-float-clear-2.html
imported/w3c/web-platform-tests/css/css-logical/logical-values-float-clear-3.html
imported/w3c/web-platform-tests/css/css-logical/logical-values-float-clear-4.html
- css/CSSPrimitiveValueMappings.h:
(WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
(WebCore::CSSPrimitiveValue::operator Clear const):
(WebCore::CSSPrimitiveValue::operator Float const):
- css/CSSValueKeywords.in:
- css/parser/CSSParserFastPaths.cpp:
(WebCore::CSSParserFastPaths::isValidKeywordPropertyAndValue):
- display/css/DisplayStyle.cpp:
(WebCore::Display::Style::Style):
- layout/integration/LayoutIntegrationBoxTree.cpp:
(WebCore::LayoutIntegration::BoxTree::buildTree):
- layout/layouttree/LayoutBox.cpp:
(WebCore::Layout::Box::isFloatingPositioned const):
- layout/layouttree/LayoutTreeBuilder.cpp:
(WebCore::Layout::TreeBuilder::createLayoutBox):
(WebCore::Layout::TreeBuilder::buildTableStructure):
- rendering/ComplexLineLayout.cpp:
(WebCore::ComplexLineLayout::layoutRunsAndFloats):
(WebCore::ComplexLineLayout::layoutRunsAndFloatsInRange):
- rendering/FloatingObjects.cpp:
(WebCore::FloatingObject::FloatingObject):
- rendering/RenderBlock.cpp:
(WebCore::RenderBlock::computeBlockPreferredLogicalWidths const):
- rendering/RenderBlockFlow.cpp:
(WebCore::RenderBlockFlow::marginOffsetForSelfCollapsingBlock):
(WebCore::RenderBlockFlow::marginBeforeEstimateForChild const):
(WebCore::RenderBlockFlow::computeLogicalLocationForFloat):
(WebCore::RenderBlockFlow::positionNewFloats):
(WebCore::RenderBlockFlow::clearFloats):
(WebCore::RenderBlockFlow::getClearDelta):
(WebCore::RenderBlockFlow::computeInlinePreferredLogicalWidths const):
- rendering/RenderBlockFlow.h:
- rendering/line/BreakingContext.h:
(WebCore::BreakingContext::handleBR):
- rendering/line/LineBreaker.cpp:
(WebCore::LineBreaker::reset):
- rendering/line/LineBreaker.h:
(WebCore::LineBreaker::usedClear):
- rendering/style/RenderStyle.cpp:
(WebCore::RenderStyle::usedClear):
(WebCore::RenderStyle::usedFloat):
- rendering/style/RenderStyle.h:
(WebCore::RenderStyle::isFloating const):
(WebCore::RenderStyle::initialFloating):
- rendering/style/RenderStyleConstants.cpp:
(WebCore::operator<<):
- rendering/style/RenderStyleConstants.h:
- style/StyleAdjuster.cpp:
(WebCore::Style::Adjuster::adjust const):
LayoutTests:
- 5:27 PM Changeset in webkit [276215] by
-
- 2 edits2 adds in trunk/LayoutTests
[GLIB] Unreviewed test gardening. Emit new baseline after r276193.
- platform/glib/TestExpectations:
- platform/glib/http/tests/xmlhttprequest/simple-cross-origin-denied-events-post-expected.txt: Added.
- 5:10 PM Changeset in webkit [276214] by
-
- 5 edits in trunk/Source
LibWebRTCCodecs eagerly launches the GPUProcess and always relaunches it on exit
https://bugs.webkit.org/show_bug.cgi?id=224704
Reviewed by Darin Adler.
LibWebRTCCodecs eagerly launches the GPUProcess and always relaunches it on exit. The GPUProcess
should only be (re-)launched when needed. In the case of the LibWebRTCCodecs, it seems it only
needs a GPUProcess connection if it has m_decoders / m_encoders are non-empty.
- WebProcess/GPU/webrtc/LibWebRTCCodecs.cpp:
(WebKit::LibWebRTCCodecs::ensureGPUProcessConnectionOnMainThread):
Renamed startListeningForIPC() to ensureGPUProcessConnectionOnMainThread(). Only do the
connection initialization if m_connection is not null.
(WebKit::LibWebRTCCodecs::ensureGPUProcessConnectionAndDispatchToThread):
Version of dispatchToThread() which makes sure that the GPUProcessConnection is initialized
before dispatching. It is used when constructing a decoder / encoder. It sets the
m_needsGPUProcessConnection flag to true to indicate someone needed the connection
(and that we should re-initiate it in case it is severed). If the connection is already
initialized, then it does a simple dispatchToThread(). If the connection is not initialized
yet, then we have to hop to the main thread (if not already on it) to initialize the
GPUProcessConnection.
(WebKit::LibWebRTCCodecs::gpuProcessConnectionMayNoLongerBeNeeded):
Function that gets called on the background thread every time a encoder / decoder is
removed. Its purpose is to set m_needsGPUProcessConnection back to false once we no
longer have any encoder / decoder, so that gpuProcessConnectionDidClose() does not
attempt to relaunch the GPUProcess if it goes away.
LibWebRTCCodecs::setCallbacks():
Check if VP9Support is enabled via PlatformMediaSessionManager instead of from the
GPUProcessConnection. This avoids eagerly launching the GPUProcess. The
GPUProcessConnection constructor gets its VPx support information from
PlatformMediaSessionManager anyway. The WebPage constructor is where the VPx support
information comes from and it updates the VPx flags on the PlatformMediaSessionManager.
The WebPage constructor only updates the VPx flags on the GPUProcessConnection if this
connection already exists to avoid eagerly launching the GPUProcess.
(WebKit::LibWebRTCCodecs::createDecoder):
- Call ensureGPUProcessConnectionAndDispatchToThread() instead of dispatchToThread() to make sure we have a GPUProcessConnection before creating the decoder.
- Add a missing locker for m_connectionLock on the background thread since it is using m_connection (pre-existing bug).
(WebKit::LibWebRTCCodecs::releaseDecoder):
Call gpuProcessConnectionMayNoLongerBeNeeded() to reset the m_needsGPUProcessConnection
flag to false if necessary.
(WebKit::LibWebRTCCodecs::createEncoder):
- Call ensureGPUProcessConnectionAndDispatchToThread() instead of dispatchToThread() to make sure we have a GPUProcessConnection before creating the encoder.
(WebKit::LibWebRTCCodecs::releaseEncoder):
Call gpuProcessConnectionMayNoLongerBeNeeded() to reset the m_needsGPUProcessConnection
flag to false if necessary.
(WebKit::LibWebRTCCodecs::gpuProcessConnectionDidClose):
- Clear m_connection when the GPUProcess connection is severed (note that this does not necessarily indicate a crash since the GPUProcess exits when idle and under memory pressure).
- Only re-initiate the GPUProcess connection if m_needsGPUProcessConnection is true, meaning that we have encoders/decoders. I use this flag instead of checking m_encoders & m_decoders since those containers are modified on the background thread and this function is called on the main thread.
- WebProcess/GPU/webrtc/LibWebRTCCodecs.h:
(WebKit::LibWebRTCCodecs::create):
- Stop calling startListeningForIPC() on construction as we don't want to launch the GPUProcess
until an encoder / decoder is created.
- Fix a pre-existing issue where the class subclasses ThreadSafeRefCounted (via ThreadMessageReceiverRefCounted) and yet was using std::unique_ptr<> instead of RefPtr<>.
- WebProcess/WebProcess.h:
- 4:55 PM Changeset in webkit [276213] by
-
- 2 edits in trunk/LayoutTests
Unreviewed, reverting r276178.
https://bugs.webkit.org/show_bug.cgi?id=224724
tests still broken
Reverted changeset:
"[ macOS Wk2 ] media/media-fragments/TC0051.html is flakey
crashing"
https://bugs.webkit.org/show_bug.cgi?id=222277
https://trac.webkit.org/changeset/276178
- 4:22 PM Changeset in webkit [276212] by
-
- 4 edits in trunk/Source/WebKit
RemoteImageDecoderAVFManager should never re-launch the GPUProcess on destruction
https://bugs.webkit.org/show_bug.cgi?id=224723
Reviewed by Darin Adler.
RemoteImageDecoderAVFManager was calling ensureGPUProcessConnection() it is destructor,
just to remove itself as an IPC message receiver. This means it could unnecessarily
relaunch the GPUProcess. This patch addresses that.
This patch also makes it so that RemoteImageDecoderAVFManager registers itself as a
client of the GPUProcessConnection, so that it gets notified when the connection gets
severed. Right now, I only do very basic crash handling but this paves the way to do
better in the future. I did fix a bug where the RemoteImageDecoderAVFManager would
not re-register itself as a message receiver after a GPUProcess re-launch.
- WebProcess/GPU/media/RemoteImageDecoderAVF.cpp:
(WebKit::RemoteImageDecoderAVF::RemoteImageDecoderAVF):
- WebProcess/GPU/media/RemoteImageDecoderAVFManager.cpp:
(WebKit::RemoteImageDecoderAVFManager::createImageDecoder):
(WebKit::RemoteImageDecoderAVFManager::deleteRemoteImageDecoder):
(WebKit::RemoteImageDecoderAVFManager::~RemoteImageDecoderAVFManager):
(WebKit::RemoteImageDecoderAVFManager::gpuProcessConnectionDidClose):
(WebKit::RemoteImageDecoderAVFManager::ensureGPUProcessConnection):
(WebKit::RemoteImageDecoderAVFManager::gpuProcessConnection const): Deleted.
- WebProcess/GPU/media/RemoteImageDecoderAVFManager.h:
- 3:55 PM Changeset in webkit [276211] by
-
- 6 edits in trunk/Source/WebCore
[Curl] Remove warnings on curl layer.
https://bugs.webkit.org/show_bug.cgi?id=224721
Reviewed by Darin Adler.
Remove unused parameters to prevent warnings. For CurlRequest, it passes
member variable to private method which is meaningless so that it was
removed.
Covered by existing test files.
- platform/network/curl/CookieJarDB.cpp:
(WebCore::CookieJarDB::createPrepareStatement):
- platform/network/curl/CurlFormDataStream.cpp:
(WebCore::CurlFormDataStream::read):
- platform/network/curl/CurlRequest.cpp:
(WebCore::CurlRequest::setupTransfer):
(WebCore::CurlRequest::setupPUT):
(WebCore::CurlRequest::setupPOST):
- platform/network/curl/CurlRequest.h:
- platform/network/curl/NetworkStorageSessionCurl.cpp:
(WebCore::NetworkStorageSession::setCookiesFromDOM const):
- 3:40 PM Changeset in webkit [276210] by
-
- 2 edits in trunk/Source/WebCore
Create local copy of CSSParserContext in CSSPropertyParserWorkerSafe
https://bugs.webkit.org/show_bug.cgi?id=224675
Reviewed by Darin Adler.
Make sure to hold a copy of the CSSParserContext in
CSSPropertyParserWorkerSafe functions as CSSParserImpl only takes a
reference.
- css/parser/CSSParserWorkerSafe.cpp:
- 3:38 PM Changeset in webkit [276209] by
-
- 10 edits in trunk
Consider making CSSStyleSheet::rules() just an alias of CSSStyleSheet::cssRules().
https://bugs.webkit.org/show_bug.cgi?id=197725
Patch by Tyler Wilcock <Tyler Wilcock> on 2021-04-17
Reviewed by Darin Adler.
LayoutTests/imported/w3c:
To match other browsers and the below WPT, CSSStyleSheet.rules now aliases
CSSStyleSheet.cssRulesForBindings, meaning we pass two more tests.
- web-platform-tests/css/cssom/CSSStyleSheet-expected.txt:
Source/WebCore:
To match other browsers (Blink and Gecko) and pass a WPT, CSSStyleSheet.rules now aliases
CSSStyleSheet.cssRulesForBindings. CSSStyleSheet.rulesForBindings is deleted.
Tested by
imported/w3c/web-platform-tests/css/cssom/CSSStyleSheet.html.
- css/CSSStyleSheet.cpp:
(WebCore::CSSStyleSheet::rulesForBindings): Deleted.
(WebCore::CSSStyleSheet::rules): Deleted.
- css/CSSStyleSheet.h:
Change
rules()
to be an inlined alias forcssRulesForBindings()
.
- css/CSSStyleSheet.idl:
Remove [ImplementedAs=rulesForBindings], as this function has been
deleted.
Source/WebKit:
CSSStyleSheet.rules has been changed to alias CSSStyleSheet.cssRulesForBindings. Now,
to access just the CSSRuleList, CSSStyleSheet.cssRules must be called.
- WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMCSSStyleSheet.cpp:
(webkit_dom_css_style_sheet_get_rules):
Use CSSStyleSheet.cssRules instead of CSSStyleSheet.rules (deleted
with this patch) to get access to the CSSRuleList of this
stylesheet.
Source/WebKitLegacy/mac:
CSSStyleSheet.rules has been changed to alias CSSStyleSheet.cssRulesForBindings. Now,
to access just the CSSRuleList, CSSStyleSheet.cssRules must be called.
- DOM/DOMCSSStyleSheet.mm:
(-[DOMCSSStyleSheet rules]):
Update this function to call IMPL->cssRules instead of IMPL->rules.
- 3:21 PM Changeset in webkit [276208] by
-
- 4 edits2 adds in trunk
Media queries with max-width greater than 999999999px evaluate to false
https://bugs.webkit.org/show_bug.cgi?id=224097
Patch by Tyler Wilcock <Tyler Wilcock> on 2021-04-17
Reviewed by Darin Adler.
We now evaluate <length> values in media queries with double
Source/WebCore:
precision instead of int precision to match other browsers and pass a WPT.
See similar method in Chromium:
https://github.com/chromium/chromium/blob/09a0b960b27f6e08fbe67ad97e6c4fb55ada383f/third_party/blink/renderer/core/css/media_query_evaluator.cc#L436
Test: fast/media/media-query-lengths-evaluate-with-double-precision.html
and WPT imported/w3c/web-platform-tests/css/mediaqueries/min-width-001.xht
- css/MediaQueryEvaluator.cpp:
(WebCore::computeLength):
Return Optional<double> rather than int& out-value.
(WebCore::deviceHeightEvaluate):
(WebCore::deviceWidthEvaluate):
(WebCore::heightEvaluate):
(WebCore::widthEvaluate):
Evaluatelength
values as doubles instead of ints.
LayoutTests:
precision instead of int precision to match other browsers and pass another WPT.
Remove ImageOnlyFailure for imported/w3c/web-platform-tests/css/mediaqueries/min-width-001.xht
because it passes now.
- fast/media/media-query-lengths-evaluate-with-double-precision-expected.html:
Added.
- fast/media/media-query-lengths-evaluate-with-double-precision.html:
Added to test properties that WPT min-width-001.xht doesn't
(min-height, device-min-height, device-min-width).
- 2:13 PM Changeset in webkit [276207] by
-
- 2 edits in trunk/Source/WebCore
[Cleanup] Remove redundant BreakingContext::m_currentStyle
https://bugs.webkit.org/show_bug.cgi?id=224717
Reviewed by Antti Koivisto.
- rendering/line/BreakingContext.h:
(WebCore::BreakingContext::BreakingContext):
(WebCore::BreakingContext::initializeForCurrentObject):
(WebCore::BreakingContext::handleBR):
(WebCore::BreakingContext::handleText):
(WebCore::BreakingContext::commitAndUpdateLineBreakIfNeeded):
- 1:59 PM Changeset in webkit [276206] by
-
- 2 edits in trunk/Source/WebCore
Perform port blocking earlier in the load
https://bugs.webkit.org/show_bug.cgi?id=224525
<rdar://problem/75440591>
Unreviewed follow-up (suggested by David Kilzer)
- loader/DocumentLoader.cpp:
(WebCore::DocumentLoader::willSendRequest): Restore an m_frame nullptr check.,
- 1:16 PM Changeset in webkit [276205] by
-
- 3 edits in trunk/Source/WebCore
[clang 11] Remove warning when converting WebCore::maxValueForCssLength from int to float
https://bugs.webkit.org/show_bug.cgi?id=224714
Reviewed by Chris Dumez.
On clang 11, the conversion from const int WebCore::maxValueForCssLength (= 33554429) to
float generates conversion warning:
warning: implicit conversion from 'const int' to 'float' changes value from 33554429 to 33554428
Changing the target type from float to double works for this. Length constructor accept double
so that there's no drawback with this change.
No test because it's compiler behavior.
- style/StyleBuilderConverter.h:
(WebCore::Style::BuilderConverter::convertWordSpacing):
- 1:07 PM Changeset in webkit [276204] by
-
- 169 edits in trunk/Source
Move RuntimeEnabledFeatures to Settings (Part 1)
https://bugs.webkit.org/show_bug.cgi?id=224440
Reviewed by Alex Christensen.
Move a few RuntimeEnabledFeatures to Settings to consolidate settings
in one object and removes the need for additional boilerplate. This
is now possible as Settings are now accessible in workers.
Moves PeerConnectionEnabled, WebGLUsingMetal, WebGL2Enabled, WebGPUEnabled
and MaskWebGLStringsEnabled.
Source/WebCore:
- Modules/mediastream/RTCAnswerOptions.idl:
- Modules/mediastream/RTCCertificate.idl:
- Modules/mediastream/RTCConfiguration.idl:
- Modules/mediastream/RTCDTMFSender.idl:
- Modules/mediastream/RTCDTMFToneChangeEvent.idl:
- Modules/mediastream/RTCDataChannel.idl:
- Modules/mediastream/RTCDataChannelEvent.idl:
- Modules/mediastream/RTCIceCandidate.idl:
- Modules/mediastream/RTCIceCandidateInit.idl:
- Modules/mediastream/RTCIceConnectionState.idl:
- Modules/mediastream/RTCIceGatheringState.idl:
- Modules/mediastream/RTCIceServer.idl:
- Modules/mediastream/RTCIceTransport.idl:
- Modules/mediastream/RTCIceTransportState.idl:
- Modules/mediastream/RTCOfferAnswerOptions.idl:
- Modules/mediastream/RTCOfferOptions.idl:
- Modules/mediastream/RTCPeerConnection.idl:
- Modules/mediastream/RTCPeerConnectionIceErrorEvent.idl:
- Modules/mediastream/RTCPeerConnectionIceEvent.idl:
- Modules/mediastream/RTCPeerConnectionState.idl:
- Modules/mediastream/RTCPriorityType.idl:
- Modules/mediastream/RTCRtcpParameters.idl:
- Modules/mediastream/RTCRtpCapabilities.idl:
- Modules/mediastream/RTCRtpCodecCapability.idl:
- Modules/mediastream/RTCRtpCodecParameters.idl:
- Modules/mediastream/RTCRtpCodingParameters.idl:
- Modules/mediastream/RTCRtpContributingSource.idl:
- Modules/mediastream/RTCRtpDecodingParameters.idl:
- Modules/mediastream/RTCRtpEncodingParameters.idl:
- Modules/mediastream/RTCRtpFecParameters.idl:
- Modules/mediastream/RTCRtpHeaderExtensionParameters.idl:
- Modules/mediastream/RTCRtpParameters.idl:
- Modules/mediastream/RTCRtpReceiver.idl:
- Modules/mediastream/RTCRtpRtxParameters.idl:
- Modules/mediastream/RTCRtpSendParameters.idl:
- Modules/mediastream/RTCRtpSender.idl:
- Modules/mediastream/RTCRtpSynchronizationSource.idl:
- Modules/mediastream/RTCRtpTransceiver.idl:
- Modules/mediastream/RTCRtpTransceiverDirection.idl:
- Modules/mediastream/RTCSdpType.idl:
- Modules/mediastream/RTCSessionDescription.idl:
- Modules/mediastream/RTCSignalingState.idl:
- Modules/mediastream/RTCStatsReport.idl:
- Modules/mediastream/RTCTrackEvent.idl:
- Modules/webgpu/GPUBindGroupLayoutBinding.idl:
- Modules/webgpu/GPUBindGroupLayoutDescriptor.idl:
- Modules/webgpu/GPUBlendDescriptor.idl:
- Modules/webgpu/GPUBufferDescriptor.idl:
- Modules/webgpu/GPUBufferUsage.idl:
- Modules/webgpu/GPUCanvasContext.idl:
- Modules/webgpu/GPUColor.idl:
- Modules/webgpu/GPUColorStateDescriptor.idl:
- Modules/webgpu/GPUColorWrite.idl:
- Modules/webgpu/GPUCompareFunction.idl:
- Modules/webgpu/GPUDepthStencilStateDescriptor.idl:
- Modules/webgpu/GPUErrorFilter.idl:
- Modules/webgpu/GPUExtent3D.idl:
- Modules/webgpu/GPULoadOp.idl:
- Modules/webgpu/GPUOrigin3D.idl:
- Modules/webgpu/GPUOutOfMemoryError.idl:
- Modules/webgpu/GPURequestAdapterOptions.idl:
- Modules/webgpu/GPUSamplerDescriptor.idl:
- Modules/webgpu/GPUShaderStage.idl:
- Modules/webgpu/GPUStoreOp.idl:
- Modules/webgpu/GPUTextureDescriptor.idl:
- Modules/webgpu/GPUTextureFormat.idl:
- Modules/webgpu/GPUTextureUsage.idl:
- Modules/webgpu/GPUUncapturedErrorEvent.idl:
- Modules/webgpu/GPUValidationError.idl:
- Modules/webgpu/GPUVertexAttributeDescriptor.idl:
- Modules/webgpu/GPUVertexBufferDescriptor.idl:
- Modules/webgpu/GPUVertexInputDescriptor.idl:
- Modules/webgpu/Navigator+GPU.idl:
- Modules/webgpu/NavigatorGPU.cpp:
- Modules/webgpu/WebGPU.idl:
- Modules/webgpu/WebGPUAdapter.idl:
- Modules/webgpu/WebGPUBindGroup.idl:
- Modules/webgpu/WebGPUBindGroupBinding.idl:
- Modules/webgpu/WebGPUBindGroupDescriptor.idl:
- Modules/webgpu/WebGPUBindGroupLayout.idl:
- Modules/webgpu/WebGPUBuffer.idl:
- Modules/webgpu/WebGPUBufferBinding.idl:
- Modules/webgpu/WebGPUCommandBuffer.idl:
- Modules/webgpu/WebGPUCommandEncoder.idl:
- Modules/webgpu/WebGPUComputePassEncoder.idl:
- Modules/webgpu/WebGPUComputePipeline.idl:
- Modules/webgpu/WebGPUComputePipelineDescriptor.idl:
- Modules/webgpu/WebGPUDevice.idl:
- Modules/webgpu/WebGPUDeviceErrorScopes.idl:
- Modules/webgpu/WebGPUDeviceEventHandler.idl:
- Modules/webgpu/WebGPUPipelineDescriptorBase.idl:
- Modules/webgpu/WebGPUPipelineLayout.idl:
- Modules/webgpu/WebGPUPipelineLayoutDescriptor.idl:
- Modules/webgpu/WebGPUProgrammablePassEncoder.idl:
- Modules/webgpu/WebGPUProgrammableStageDescriptor.idl:
- Modules/webgpu/WebGPUQueue.idl:
- Modules/webgpu/WebGPURenderPassDescriptor.idl:
- Modules/webgpu/WebGPURenderPassEncoder.idl:
- Modules/webgpu/WebGPURenderPipeline.idl:
- Modules/webgpu/WebGPURenderPipelineDescriptor.idl:
- Modules/webgpu/WebGPUSampler.idl:
- Modules/webgpu/WebGPUShaderModule.idl:
- Modules/webgpu/WebGPUShaderModuleDescriptor.idl:
- Modules/webgpu/WebGPUSwapChain.idl:
- Modules/webgpu/WebGPUTexture.idl:
- Modules/webgpu/WebGPUTextureView.idl:
- Modules/webgpu/WorkerNavigator+GPU.idl:
- Modules/webgpu/WorkerNavigatorGPU.cpp:
- Modules/webxr/Navigator+WebXR.idl:
- Modules/webxr/WebXRBoundedReferenceSpace.idl:
- Modules/webxr/WebXRFrame.idl:
- Modules/webxr/WebXRInputSource.idl:
- Modules/webxr/WebXRInputSourceArray.idl:
- Modules/webxr/WebXRLayer.idl:
- Modules/webxr/WebXRPose.idl:
- Modules/webxr/WebXRReferenceSpace.idl:
- Modules/webxr/WebXRRenderState.idl:
- Modules/webxr/WebXRRigidTransform.idl:
- Modules/webxr/WebXRSession.idl:
- Modules/webxr/WebXRSpace.idl:
- Modules/webxr/WebXRSystem.cpp:
- Modules/webxr/WebXRSystem.idl:
- Modules/webxr/WebXRView.idl:
- Modules/webxr/WebXRViewerPose.idl:
- Modules/webxr/WebXRViewport.idl:
- Modules/webxr/WebXRWebGLLayer.idl:
- Modules/webxr/XREnvironmentBlendMode.idl:
- Modules/webxr/XREye.idl:
- Modules/webxr/XRHandedness.idl:
- Modules/webxr/XRInputSourceEvent.idl:
- Modules/webxr/XRInputSourcesChangeEvent.idl:
- Modules/webxr/XRInteractionMode.idl:
- Modules/webxr/XRReferenceSpaceEvent.idl:
- Modules/webxr/XRReferenceSpaceType.idl:
- Modules/webxr/XRRenderStateInit.idl:
- Modules/webxr/XRSessionEvent.idl:
- Modules/webxr/XRSessionInit.idl:
- Modules/webxr/XRSessionMode.idl:
- Modules/webxr/XRTargetRayMode.idl:
- Modules/webxr/XRVisibilityState.idl:
- Modules/webxr/XRWebGLLayerInit.idl:
- html/HTMLCanvasElement.cpp:
- html/canvas/WebGL2RenderingContext.cpp:
- html/canvas/WebGL2RenderingContext.idl:
- html/canvas/WebGLRenderingContextBase.cpp:
- html/canvas/WebGLTransformFeedback.idl:
- html/canvas/WebGLVertexArrayObject.idl:
- page/RuntimeEnabledFeatures.h:
(WebCore::RuntimeEnabledFeatures::peerConnectionEnabled const): Deleted.
(WebCore::RuntimeEnabledFeatures::setPeerConnectionEnabled): Deleted.
(WebCore::RuntimeEnabledFeatures::setWebGLUsingMetal): Deleted.
(WebCore::RuntimeEnabledFeatures::webGLUsingMetal const): Deleted.
(WebCore::RuntimeEnabledFeatures::setWebGL2Enabled): Deleted.
(WebCore::RuntimeEnabledFeatures::webGL2Enabled const): Deleted.
(WebCore::RuntimeEnabledFeatures::setWebGPUEnabled): Deleted.
(WebCore::RuntimeEnabledFeatures::webGPUEnabled const): Deleted.
(WebCore::RuntimeEnabledFeatures::setMaskWebGLStringsEnabled): Deleted.
(WebCore::RuntimeEnabledFeatures::maskWebGLStringsEnabled const): Deleted.
- testing/FakeXRBoundsPoint.idl:
- testing/FakeXRButtonStateInit.idl:
- testing/FakeXRInputSourceInit.idl:
- testing/FakeXRRigidTransformInit.idl:
- testing/FakeXRViewInit.idl:
- testing/InternalSettings.cpp:
(WebCore::InternalSettings::Backup::Backup):
(WebCore::InternalSettings::Backup::restoreTo):
(WebCore::InternalSettings::setWebGL2Enabled): Deleted.
(WebCore::InternalSettings::setWebGPUEnabled): Deleted.
- testing/InternalSettings.h:
- testing/InternalSettings.idl:
- testing/Internals.cpp:
- testing/WebFakeXRDevice.idl:
- testing/WebFakeXRInputController.idl:
- testing/WebXRTest.idl:
- testing/XRSimulateUserActivationFunction.idl:
Source/WebKit:
- WebProcess/Inspector/RemoteWebInspectorUI.cpp:
(WebKit::RemoteWebInspectorUI::RemoteWebInspectorUI):
- WebProcess/Inspector/WebInspectorUI.cpp:
(WebKit::WebInspectorUI::enableFrontendFeatures):
(WebKit::WebInspectorUI::WebInspectorUI):
- WebProcess/Inspector/WebInspectorUI.h:
Source/WTF:
- Scripts/Preferences/WebPreferences.yaml:
- Scripts/Preferences/WebPreferencesExperimental.yaml:
- 12:02 PM Changeset in webkit [276203] by
-
- 5 edits in trunk
Don't omit conic gradient starting angle when serializing when starting angle is under 0
https://bugs.webkit.org/show_bug.cgi?id=224719
Patch by Tim Nguyen <ntim@apple.com> on 2021-04-17
Reviewed by Ryosuke Niwa.
Updated pre-existing test to cover this case.
Test: LayoutTests/imported/w3c/web-platform-tests/css/css-backgrounds/parsing/background-image-computed.sub.html
LayoutTests/imported/w3c:
- web-platform-tests/css/css-backgrounds/parsing/background-image-computed.sub-expected.txt:
- web-platform-tests/css/css-backgrounds/parsing/background-image-computed.sub.html:
Source/WebCore:
- css/CSSGradientValue.cpp:
(WebCore::CSSConicGradientValue::customCSSText const):
- 11:22 AM Changeset in webkit [276202] by
-
- 4 edits in trunk/Source/WebCore
[Cleanup] Modernize TrailingObjects
https://bugs.webkit.org/show_bug.cgi?id=224712
Reviewed by Antti Koivisto.
Remove redundant c'tor and start using enum class.
- rendering/line/BreakingContext.h:
(WebCore::BreakingContext::handleText):
(WebCore::checkWhitespaceCollapsingTransitions):
(WebCore::BreakingContext::handleEndOfLine):
- rendering/line/TrailingObjects.cpp:
(WebCore::TrailingObjects::updateWhitespaceCollapsingTransitionsForTrailingBoxes):
- rendering/line/TrailingObjects.h:
(WebCore::TrailingObjects::setTrailingWhitespace):
(WebCore::TrailingObjects::clear):
(WebCore::TrailingObjects::TrailingObjects): Deleted.
- 8:38 AM Changeset in webkit [276201] by
-
- 3 edits in trunk/Source/WebCore
[Cleanup] BreakingContext::handleText should consistently use the cached renderer
https://bugs.webkit.org/show_bug.cgi?id=224711
Reviewed by Antti Koivisto.
Since this function is not supposed to increment the renderer, let's replace m_current.renderer() with "renderer".
- rendering/line/BreakingContext.h:
(WebCore::BreakingContext::handleText):
- rendering/line/TrailingObjects.h:
(WebCore::TrailingObjects::setTrailingWhitespace):
- 6:48 AM Changeset in webkit [276200] by
-
- 2 edits in trunk/Source/WebCore
[Cleanup] inlineLogicalWidth should take const RenderObject&
https://bugs.webkit.org/show_bug.cgi?id=224700
Reviewed by Antti Koivisto.
- inlineLogicalWidth takes const RenderObject& now.
- Both previousInFlowSibling and shouldAddBorderPaddingMargin moved to inlineLogicalWidth
- rendering/line/BreakingContext.h:
(WebCore::inlineLogicalWidth):
(WebCore::BreakingContext::handleOutOfFlowPositioned):
(WebCore::BreakingContext::handleEmptyInline):
(WebCore::BreakingContext::handleReplaced):
(WebCore::BreakingContext::handleText):
(WebCore::shouldAddBorderPaddingMargin): Deleted.
(WebCore::previousInFlowSibling): Deleted.
- 5:20 AM Changeset in webkit [276199] by
-
- 3 edits in trunk/Tools
Do not configure Janitor to delete old logs in local testing mode
https://bugs.webkit.org/show_bug.cgi?id=224552
Reviewed by Jonathan Bedard.
- CISupport/build-webkit-org/master_buildbot2.cfg:
- CISupport/ews-build/master.cfg:
- 5:08 AM Changeset in webkit [276198] by
-
- 2 edits in trunk/Source/WebCore
Unreviewed, GTK LTS build fix after r276197
- platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
(WebCore::MediaPlayerPrivateGStreamer::configureMediaStreamAudioTracks):
- 4:23 AM Changeset in webkit [276197] by
-
- 9 edits in trunk
[GStreamer][MediaStream] fast/mediastream/play-newly-added-audio-track.html is failing since added in r260380
https://bugs.webkit.org/show_bug.cgi?id=210840
Reviewed by Xabier Rodriguez-Calvar.
Source/WebCore:
The test was failing mainly because our mediastreamsrc GStreamer element wasn't creating the
corresponding AudioTrackPrivateMediaStream object. The media player should propagate its
volume/mute/is-playing states to the source element. And also until now our mediastreamsrc
element was handling at most one audio track and at most one audio track, but it turns out
multiple audio tracks can be added actually. So I refactored the element internals
accordingly. The InternalSource is now directly observing the corresponding
RealtimeMediaSource, which simplified some code. Observing is also now suspended/resumed
depending on the element state.
We don't implement a GStreamer AudioMediaStreamTrackRenderer class yet, because actual
rendering is still performed from the WebProcess, so early returns were added in
AudioTrackPrivateMediaStream to handle this case.
- platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
(WebCore::MediaPlayerPrivateGStreamer::updateTracks):
(WebCore::MediaPlayerPrivateGStreamer::configureMediaStreamAudioTracks):
(WebCore::MediaPlayerPrivateGStreamer::setVolume):
(WebCore::MediaPlayerPrivateGStreamer::setMuted):
(WebCore::MediaPlayerPrivateGStreamer::updateStates):
(WebCore::MediaPlayerPrivateGStreamer::didEnd):
- platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:
- platform/mediastream/AudioTrackPrivateMediaStream.cpp:
(WebCore::AudioTrackPrivateMediaStream::createRenderer):
(WebCore::AudioTrackPrivateMediaStream::setLogger):
(WebCore::AudioTrackPrivateMediaStream::clear):
(WebCore::AudioTrackPrivateMediaStream::setVolume):
(WebCore::AudioTrackPrivateMediaStream::setAudioOutputDevice):
(WebCore::AudioTrackPrivateMediaStream::volume const):
(WebCore::AudioTrackPrivateMediaStream::audioSamplesAvailable):
(WebCore::AudioTrackPrivateMediaStream::startRenderer):
(WebCore::AudioTrackPrivateMediaStream::stopRenderer):
(WebCore::AudioTrackPrivateMediaStream::createNewRenderer):
- platform/mediastream/gstreamer/GStreamerMediaStreamSource.cpp:
(mediaStreamTrackPrivateGetTags):
(WebKitMediaStreamObserver::didRemoveTrack):
(webkitMediaStreamSrcConstructed):
(webkitMediaStreamSrcDispose):
(webkitMediaStreamSrcChangeState):
(webkitMediaStreamSrcPostStreamCollection):
(webkitMediaStreamSrcAddPad):
(ProbeData::ProbeData):
(webkitMediaStreamSrcPadProbeCb):
(webkitMediaStreamSrcAddTrack):
(webkitMediaStreamSrcSetStream):
(webkitMediaStreamSrcTrackEnded):
(InternalSource::trackEnded):
(webkitMediaStreamSrcConfigureAudioTracks):
- platform/mediastream/gstreamer/GStreamerMediaStreamSource.h:
LayoutTests:
Remove flakyness from test and unflag it on GTK.
- fast/mediastream/play-newly-added-audio-track.html: addTrack might have asynchronous
effects, so it's better to rely on the trackadded event when testing its result.
- platform/gtk/TestExpectations:
- 2:03 AM Changeset in webkit [276196] by
-
- 2 edits1 add in trunk/Tools/buildstream
REGRESSION(r275755): [GStreamer] Crashes on surfaceless i915 platforms
https://bugs.webkit.org/show_bug.cgi?id=224416
Patch by Philippe Normand <pnormand@igalia.com> on 2021-04-17
Reviewed by Adrian Perez de Castro.
Vendor potential fix for https://gitlab.freedesktop.org/mesa/mesa/-/issues/778.
- elements/sdk/mesa.bst:
- patches/mesa/0001-i915-Prevent-invalid-framebuffer-usage.patch: Added.
Apr 16, 2021:
- 10:03 PM Changeset in webkit [276195] by
-
- 3 edits in trunk/Tools
REGRESSION(r276164) [GTK] WKPreferencesDefaults API test is failing
https://bugs.webkit.org/show_bug.cgi?id=224710
Reviewed by Alex Christensen.
As of r276164, Mac/iOS disabled application cache by default but other
ports are still enabling it.
- TestWebKitAPI/Tests/WebKit/WKPreferences.cpp:
(TestWebKitAPI::TEST): Add missing WPE guard and test against expected
port value instead of enforcing a single value for every port.
- TestWebKitAPI/glib/TestExpectations.json: Remove WPE expected
failure.
- 9:45 PM Changeset in webkit [276194] by
-
- 1 edit2 copies2 adds1 delete in trunk/LayoutTests
[GLIB] Unreviewed test gardening. Update focus-visible tests baselines after r276127.
- platform/glib/imported/w3c/web-platform-tests/css/selectors/focus-visible-002-expected.txt: Added.
- platform/glib/imported/w3c/web-platform-tests/css/selectors/focus-visible-003-expected.txt: Renamed from LayoutTests/platform/wpe/imported/w3c/web-platform-tests/css/selectors/focus-visible-003-expected.txt.
- platform/glib/imported/w3c/web-platform-tests/css/selectors/focus-visible-004-expected.txt: Renamed from LayoutTests/platform/wpe/imported/w3c/web-platform-tests/css/selectors/focus-visible-004-expected.txt.
- 8:22 PM Changeset in webkit [276193] by
-
- 29 edits4 copies2 adds in trunk
Perform port blocking earlier in the load
https://bugs.webkit.org/show_bug.cgi?id=224525
<rdar://problem/75440591>
Reviewed by Darin Adler.
Source/WebCore:
WebKit blocks loads to URLs with any of the prohibited ports defined in
the engine. This blocking happens late in the load process, allowing
connections to be made (and observed). Instead, we should stop the load
early, at the same time we perform other checks.
Test: http/tests/security/form-blocked-port.html
- html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::isSafeToLoadURL): Add a check for prohibited ports,
and block (with relevant logging) if a load to a denied port is attempted.
- loader/DocumentLoader.cpp:
(WebCore::DocumentLoader::willSendRequest): Ditto.
- loader/FrameLoader.cpp:
(WebCore::FrameLoader::loadFrameRequest): Ditto.
(WebCore::FrameLoader::reportBlockedLoadFailed): Ditto.
- loader/FrameLoader.h:
- loader/PingLoader.cpp:
(WebCore::PingLoader::loadImage): Ditto.
- loader/ResourceLoader.cpp:
(WebCore::ResourceLoader::init): Ditto.
- loader/SubframeLoader.cpp:
(WebCore::FrameLoader::SubframeLoader::pluginIsLoadable): Ditto.
(WebCore::FrameLoader::SubframeLoader::loadSubframe): Ditto.
- loader/cache/CachedResourceLoader.cpp:
(WebCore::CachedResourceLoader::canRequest): Ditto.
(WebCore::CachedResourceLoader::canRequestAfterRedirection const): Ditto.
Tools:
Update URLScheme test to use a non-prohibited port for the test. Tests of
failed fetches are already handled in WPT and other tests, so using a valid
port here should continue to be a valid test.
- TestWebKitAPI/Tests/WebKitCocoa/WKURLSchemeHandler-1.mm:
(-[FrameSchemeHandler webView:startURLSchemeTask:]): Use allowed port or the test
instead of 123.
LayoutTests:
WebKit blocks loads to URLs with any of the prohibited ports defined in
the engine. This blocking happens late in the load process, allowing
connections to be made (and observed). Instead, we should stop the load
early, at the same time we perform other checks.
Note: The fact that we now block loads earlier means that we do not fire
'willSendRequestForFrame' for blocked ports, so WebKitTestRunner no longer
outputs a message to stdout. Those errors are reported in the JS console,
but since some test paths are specified to always output JS console messages
to stderrr (for example the WPT tests), we have to revise out test expectations
for a few cases.
- fast/loader/cancel-load-during-port-block-timer.html: Revised expectation to reflect new console error message.
- http/tests/cache/cancel-during-failure-crash-expected.txt: Ditto.
- http/tests/preload/download_resources_from_invalid_headers-expected.txt: Update to reflect a preflight is not executed for a blocked port.
- http/tests/preload/resources/nph-invalid_resources_from_header.pl: Update to reflect that we do not preload from restricted ports.
- http/tests/security/blocked-on-redirect-expected.txt: Revised expectation to match revised error message.
- http/tests/security/form-blocked-port.html: Added.
- http/tests/security/form-blocked-port-expected.txt: Added.
- http/tests/xmlhttprequest/cross-origin-redirect-responseURL-expected.txt: Revised expectation for revised error message.
- http/tests/xmlhttprequest/redirect-cross-origin-2-expected.txt: Ditto.
- http/tests/xmlhttprequest/redirect-cross-origin-expected.txt: Ditto.
- http/tests/xmlhttprequest/simple-cross-origin-denied-events.html: Instead of using a port WebKit blocks (7), use one that is not blocked but is unlikely to be active (as originally intended). This retains the expected test behavior since we now block loads to restricted ports earlier in the load process.
- http/tests/xmlhttprequest/simple-cross-origin-denied-events-post.html: Ditto.
- http/tests/xmlhttprequest/simple-cross-origin-denied-events-post-expected.txt: Update test output to reflect that we are attempting to load from port 8 instead of port 7.
- http/wpt/beacon/beacon-async-error-logging-expected.txt: Ditto.
- http/wpt/beacon/beacon-async-error-logging.html: Update to reflect a preflight is not executed for a blocked port.
- imported/w3c/web-platform-tests/fetch/api/request/request-bad-port.any-expected.txt: Since we block before executing the load, TestRunner no longer outputs an error message to stdout. Instead, they appear in stderr (since all 'wpt' tests are marked to dump console.log output to stderr).
- imported/w3c/web-platform-tests/fetch/api/request/request-bad-port.any.worker-expected.txt: Ditto.
- platform/mac-wk1/http/tests/xmlhttprequest/redirect-cross-origin-post-expected.txt: Revise to reflect change in console logging (the functional test results are identical).
- platform/mac-wk1/http/tests/xmlhttprequest/simple-cross-origin-denied-events-post-expected.txt: Ditto.
- platform/win/http/tests/xmlhttprequest/redirect-cross-origin-post-expected.txt: Ditto.
- platform/win/http/tests/xmlhttprequest/simple-cross-origin-denied-events-post-expected.txt: Ditto.
- platform/wk2/http/tests/security/blocked-on-redirect-expected.txt: Ditto.
- 8:12 PM Changeset in webkit [276192] by
-
- 2 edits in trunk/Source/WebCore
Use WebKit macro to detect 64bit in RenderLayerBacking.h
https://bugs.webkit.org/show_bug.cgi?id=224707
Reviewed by Yusuke Suzuki.
There's no definition of WORDSIZE in some environment. Also there's WebKit macro for that.
warning: 'WORDSIZE' is not defined, evaluates to 0 [-Wundef]
#if WORDSIZE == 64 && PLATFORM(COCOA)
No test because it's compiler behavior.
- rendering/RenderLayerBacking.h:
- 7:32 PM Changeset in webkit [276191] by
-
- 14 edits in trunk/Source
Deploy Ref/RefPtr in Editor
https://bugs.webkit.org/show_bug.cgi?id=224708
Reviewed by Wenson Hsieh.
Source/WebCore:
Deployed smart pointers in WebCore::Editor.
Also deployed ScriptDisallowedScope around the code which accesses the render tree.
- dom/Position.cpp:
(WebCore::Position::containerOrParentElement const): Added.
- dom/Position.h:
- editing/Editor.cpp:
(WebCore::Editor::selectionForCommand):
(WebCore::Editor::pasteAsPlainText):
(WebCore::Editor::pasteAsFragment):
(WebCore::Editor::shouldInsertFragment):
(WebCore::Editor::replaceSelectionWithFragment):
(WebCore::Editor::respondToChangedContents):
(WebCore::Editor::hasBidiSelection const):
(WebCore::Editor::selectionUnorderedListState const):
(WebCore::Editor::selectionOrderedListState const):
(WebCore::Editor::findEventTargetFrom const):
(WebCore::Editor::findEventTargetFromSelection const):
(WebCore::notifyTextFromControls):
(WebCore::Editor::willApplyEditing const):
(WebCore::Editor::appliedEditing):
(WebCore::Editor::insertTextWithoutSendingTextEvent):
(WebCore::Editor::performCutOrCopy):
(WebCore::Editor::simplifyMarkup): Replaced the manual tree traversal by treeOrder(~).
(WebCore::Editor::copyImage):
(WebCore::Editor::setBaseWritingDirection):
(WebCore::Editor::baseWritingDirectionForSelectionStart const):
(WebCore::Editor::setComposition):
(WebCore::Editor::advanceToNextMisspelling):
(WebCore::Editor::markMisspellingsAfterTypingToWord): Use containerOrParentElement.
(WebCore::Editor::isSpellCheckingEnabledFor const):
(WebCore::Editor::markAllMisspellingsAndBadGrammarInRanges):
(WebCore::Editor::markAndReplaceFor):
(WebCore::scanForTelephoneNumbers):
(WebCore::Editor::scanSelectionForTelephoneNumbers): Restrucuted the code with makeScopeExit
to exit early instead of nesting if's.
(WebCore::findFirstMarkable):
(WebCore::Editor::selectionStartHasMarkerFor const):
(WebCore::Editor::resolveTextCheckingTypeMask):
(WebCore::Editor::stringForCandidateRequest const):
(WebCore::Editor::fontAttributesAtSelectionStart):
(WebCore::Editor::promisedAttachmentInfo):
(WebCore::Editor::styleForSelectionStart):
(WebCore::Editor::fontForSelection):
- editing/Editor.h:
- page/DragController.cpp:
(WebCore::DragController::dispatchTextInputEventFor):
Source/WebKit:
- WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::editorState const):
- WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::requestAutocorrectionData):
- WebProcess/WebPage/mac/WebPageMac.mm:
(WebKit::WebPage::fontAtSelection):
Source/WebKitLegacy/mac:
- WebView/WebFrame.mm:
(-[WebFrame fontForSelection:]):
- WebView/WebHTMLView.mm:
(-[WebHTMLView _updateFontPanel]):
- WebView/WebView.mm:
(-[WebView updateTextTouchBar]):
- 7:06 PM Changeset in webkit [276190] by
-
- 3 edits in trunk/Source/ThirdParty/ANGLE
Metal-ANGLE: Shared memory texture tests failing in iOS Simulator
https://bugs.webkit.org/show_bug.cgi?id=222685
Patch by Kyle Piddington <Kyle Piddington> on 2021-04-16
Reviewed by Dean Jackson.
Simulator-only path drives filling textures via Blit encoders instead of mapped memory.
This workaround fixes dropped texture writes when using replaceRegion
- src/libANGLE/renderer/metal/TextureMtl.mm:
- src/libANGLE/renderer/metal/mtl_utils.mm:
(rx::mtl::InitializeTextureContents):
- 6:30 PM Changeset in webkit [276189] by
-
- 7 edits in trunk
RemoteAudioDestinationProxy should not launch / relaunch the GPUProcess unless it is actually rendering
https://bugs.webkit.org/show_bug.cgi?id=224691
Reviewed by Geoffrey Garen.
Source/WebKit:
RemoteAudioDestinationProxy was initiating a connection to the GPUProcess in its constructor and
re-initiating the connection right away upon GPUProcess crash. This goes against our recent efforts
to run the GPUProcess only when it is actually needed. The RemoteAudioDestinationProxy really only
needs the GPUProcess when it is actually rendering / playing.
- GPUProcess/media/RemoteAudioDestinationManager.cpp:
(WebKit::RemoteAudioDestinationManager::allowsExitUnderMemoryPressure const):
Allow the GPUProcess to exit when under memory pressure even if it has AudioDestinations, as long
as they are not playing.
- WebProcess/GPU/media/RemoteAudioDestinationProxy.cpp:
(WebKit::RemoteAudioDestinationProxy::RemoteAudioDestinationProxy):
(WebKit::RemoteAudioDestinationProxy::ensureGPUProcessConnection):
(WebKit::RemoteAudioDestinationProxy::~RemoteAudioDestinationProxy):
(WebKit::RemoteAudioDestinationProxy::startRendering):
(WebKit::RemoteAudioDestinationProxy::stopRendering):
(WebKit::RemoteAudioDestinationProxy::storageChanged):
(WebKit::RemoteAudioDestinationProxy::gpuProcessConnectionDidClose):
- WebProcess/GPU/media/RemoteAudioDestinationProxy.h:
Tools:
Add API test coverage.
- TestWebKitAPI/Tests/WebKitCocoa/GPUProcess.mm:
(TEST):
- TestWebKitAPI/Tests/WebKitCocoa/audio-context-playing.html:
- 6:24 PM Changeset in webkit [276188] by
-
- 4 edits2 adds in trunk
[GPUProcess] Crash under RemoteAudioDestination::render()
https://bugs.webkit.org/show_bug.cgi?id=224688
<rdar://76643365>
Reviewed by Eric Carlson.
Source/WebKit:
When the connection between the GPUProcess and the WebProcess was severed,
GPUConnectionToWebProcess::didClose() would get called and end up destroying
the RemoteAudioDestination object on the main thread. The issue is that the
RemoteAudioDestination may be playing at the time and we would end up
destroying the RemoteAudioDestination object without stopping rendering
first. As a result, we would crash on the background thread in the
RemoteAudioDestination::render() function, trying to use the m_ringBuffer
data member that got destroyed on the main thread.
To address this, I updated the RemoteAudioDestination destructor so that it
stops rendering if necessary. AudioOutputUnitStop() is synchronous so this
ensures render() is done running on the background thread (and won't be
called again) before proceeding with the destruction of the data members.
Test: webaudio/AudioContext/audiocontext-destruction-crash.html
- GPUProcess/media/RemoteAudioDestinationManager.cpp:
Updated the class to stop subclassing ThreadSafeRefCounted. This class does
not need RefCounting at all. I updated the call site to use UniqueRef<>.
(WebKit::RemoteAudioDestination::create): Deleted.
Drop this factory function and made the constructor public now that we no longer
subclass ThreadSafeRefCounted and use makeUniqueRef<>() at the call site.
(WebKit::RemoteAudioDestination::scheduleGracefulShutdownIfNeeded): Deleted.
Stop this function now that the destructor takes care of shutting down gracefully.
(WebKit::RemoteAudioDestination::RemoteAudioDestination):
Made the constructor public.
(WebKit::RemoteAudioDestination::render):
- Stop checking m_protectThisDuringGracefulShutdown on the background thread. This data member is not needed since stop() is synchronous. It was also not thread-safe since m_protectThisDuringGracefulShutdown was set on the main thread and we are on the audio thread here.
- Similarly, drop the check for m_isPlaying. m_isPlaying is not atomic so the check was not thread safe. Even if m_isPlaying was atomic, m_isPlaying get set to true *after* calling m_audioOutputUnitAdaptor.start() so render() may early return even though we were playing. Also, this check is not needed since we set m_isPlaying to false after calling m_audioOutputUnitAdaptor.stop() and the stop() call is synchronous and should not return until the audio thread stopped rendering.
- GPUProcess/media/RemoteAudioDestinationManager.h:
LayoutTests:
Add layout test that can flakily reproduce the issue.
- webaudio/AudioContext/audiocontext-destruction-crash-expected.txt: Added.
- webaudio/AudioContext/audiocontext-destruction-crash.html: Added.
- 6:08 PM Changeset in webkit [276187] by
-
- 7 edits in trunk
font-size with viewport units in calc() doesn't change when viewport resizes
https://bugs.webkit.org/show_bug.cgi?id=224614
Reviewed by Zalan Bujtas.
Source/WebCore:
- css/CSSToLengthConversionData.cpp:
(WebCore::CSSToLengthConversionData::zoom const): Updated since m_zoom is now optional.
We use effectiveZoom when m_zoom is not specified, which is the same semantic that was
implemented before with a separate boolean.
(WebCore::CSSToLengthConversionData::viewportWidthFactor const): When calling the
setHasViewportUnits function as a side effect, use m_viewportDependencyDetectionStyle,
rather than always using m_style. This lets us handle the font-size case correctly.
Also removed the explicit computingFontSize check for the same reason.
(WebCore::CSSToLengthConversionData::viewportHeightFactor const): Ditto.
(WebCore::CSSToLengthConversionData::viewportMinFactor const): Ditto.
(WebCore::CSSToLengthConversionData::viewportMaxFactor const): Ditto.
- css/CSSToLengthConversionData.h: Added a new member, m_viewportDependencyDetectionStyle,
which defaults to the same value as m_style. Also changed m_zoom to use Optional instead
of a separate boolean and an ignored "must be 1.0" value. Initialized data members in
the modern way, allowing us to use the default constructor.
- style/StyleBuilderCustom.h:
(WebCore::Style::BuilderCustom::applyValueFontSize): Pass in the builder's style as the
viewportDependencyDetectionStyle. This does the same thing that the existing code to
call setHasViewportUnits did directly, but does it even for more complex cases involving
calc(). Also made the isLength and isCalculatedPercentageWithLength cases more similar
to each other and left a FIXME behind about taking that a bit further, but doing that
probably requires creating some more test cases.
LayoutTests:
- css3/viewport-percentage-lengths/viewport-percentage-lengths-resize-expected.txt:
- css3/viewport-percentage-lengths/viewport-percentage-lengths-resize.html:
Added tests that involve calc, and broke rules up into multiple elements so that side
effects from one style won't give us false negatives. This now has a subtest that was
failing without the fix in this patch.
- 5:57 PM Changeset in webkit [276186] by
-
- 3 edits2 adds in trunk
Nullptr deref in CompositeEditCommand::isRemovableBlock in DeleteSelectionCommand::removeRedundantBlocks
https://bugs.webkit.org/show_bug.cgi?id=224518
Patch by Ian Gilbert <iang@apple.com> on 2021-04-16
Reviewed by Ryosuke Niwa.
Source/WebCore:
Add null check in case node is removed while iterating over tree.
Test: editing/execCommand/remove-node-during-command-crash.html
- editing/DeleteSelectionCommand.cpp:
(WebCore::DeleteSelectionCommand::removeRedundantBlocks):
LayoutTests:
Add a regression test.
- editing/execCommand/remove-node-during-command-crash-expected.txt: Added.
- editing/execCommand/remove-node-during-command-crash.html: Added.
- 5:38 PM Changeset in webkit [276185] by
-
- 2 edits in trunk/Source/WebKit
The RemoteRemoteCommandListener destructor should never (re-)launch the GPUProcess
https://bugs.webkit.org/show_bug.cgi?id=224701
Reviewed by Eric Carlson.
The RemoteRemoteCommandListener destructor should never (re-)launch the GPUProcess,
just to unregister itself. If the GPUProcess is not running, then the
RemoteRemoteCommandListener is not registered.
- WebProcess/GPU/media/RemoteRemoteCommandListener.cpp:
(WebKit::RemoteRemoteCommandListener::~RemoteRemoteCommandListener):
(WebKit::RemoteRemoteCommandListener::gpuProcessConnectionDidClose):
- 5:14 PM Changeset in webkit [276184] by
-
- 13 edits in trunk
Pass credential name to the WebAuthn UI during registration
https://bugs.webkit.org/show_bug.cgi?id=224697
<rdar://75803352>
Reviewed by Brent Fulgham.
Source/WebKit:
Covered by new test contents within existing test files.
- Platform/spi/Cocoa/AuthenticationServicesCoreSPI.h:
Paperwork for the new SPI.
- UIProcess/API/APIWebAuthenticationPanel.cpp:
(API::WebAuthenticationPanel::create):
(API::WebAuthenticationPanel::WebAuthenticationPanel):
- UIProcess/API/APIWebAuthenticationPanel.h:
- UIProcess/API/Cocoa/_WKWebAuthenticationPanel.h:
- UIProcess/API/Cocoa/_WKWebAuthenticationPanel.mm:
(-[_WKWebAuthenticationPanel userName]):
Adds a new userName property.
- UIProcess/WebAuthentication/AuthenticatorManager.cpp:
(WebKit::WebCore::getUserName):
(WebKit::AuthenticatorManager::runPanel):
(WebKit::AuthenticatorManager::runPresenter):
Passes the userName to the UI.
- UIProcess/WebAuthentication/Cocoa/AuthenticationServicesCoreSoftLink.h:
- UIProcess/WebAuthentication/Cocoa/AuthenticationServicesCoreSoftLink.mm:
Paperwork for the new SPI.
- UIProcess/WebAuthentication/Cocoa/AuthenticatorPresenterCoordinator.h:
- UIProcess/WebAuthentication/Cocoa/AuthenticatorPresenterCoordinator.mm:
(WebKit::AuthenticatorPresenterCoordinator::AuthenticatorPresenterCoordinator):
Passes the userName to the new SPI.
Tools:
- TestWebKitAPI/Tests/WebKitCocoa/_WKWebAuthenticationPanel.mm:
(TestWebKitAPI::TEST):
- 4:55 PM Changeset in webkit [276183] by
-
- 8 edits in branches/safari-611-branch/Source/WebKit
Re-land Cherry-pick r275846. rdar://problem/76727548
- 4:55 PM Changeset in webkit [276182] by
-
- 37 edits2 copies8 adds in trunk
Place vertical scrollbars at (inline/block)-end edge in all writing modes.
https://bugs.webkit.org/show_bug.cgi?id=224224
Reviewed by Simon Fraser.
LayoutTests/imported/w3c:
- web-platform-tests/css/css-scroll-snap/snap-inline-block-expected.txt:
- web-platform-tests/css/cssom-view/scrollLeftTop-expected.txt:
Source/WebCore:
Tests: fast/scrolling/v-rl-scrollbars-initial-position-dynamic.html
fast/scrolling/v-rl-scrollbars-initial-position.html
fast/scrolling/vertical-scrollbar-position.html
We currently only consider moving a vertical scrollbar to the left for
writing-mode: horizontal-{tb,bt}; direction: rtl
containers. But
ideally we should always place the vertical scrollbar at the end edge
of the container (whether that's the inline-end edge, when using a
horizontal writing mode, or the block-end edge, when using a vertical
writing mode).
Some functions calling the existing shouldPlaceBlockDirectionScrollbarOnLeft
instead really care about whether the vertical scrollbar is on the
left, not whether the block direction scrollbar is on the left (since
for vertical writing modes, the block direction scrollbar is the
horizontal one on the bottom). So we rename this to
shouldPlaceVerticalScrollbarOnLeft, make it return true for
writing-mode: vertical-rl
, and adjust callers that really do care
only about block direction scrollbars to additionally check their
writing mode.
- page/EventHandler.cpp:
(WebCore::EventHandler::selectCursor):
- page/FrameView.cpp:
(WebCore::FrameView::shouldPlaceVerticalScrollbarOnLeft const):
- page/FrameView.h:
- platform/ScrollView.cpp:
(WebCore::ScrollView::documentScrollPositionRelativeToViewOrigin const):
(WebCore::ScrollView::updateScrollbars):
(WebCore::ScrollView::scrollCornerRect const):
(WebCore::ScrollView::locationOfContents const):
- platform/ScrollableArea.h:
- platform/adwaita/ScrollbarThemeAdwaita.cpp:
(WebCore::ScrollbarThemeAdwaita::paint):
- platform/gtk/ScrollbarThemeGtk.cpp:
(WebCore::widgetTypeForScrollbar):
(WebCore::ScrollbarThemeGtk::paint):
- platform/mac/ScrollbarThemeMac.mm:
(WebCore::ScrollbarThemeMac::didCreateScrollerImp):
- platform/win/PopupMenuWin.h:
- rendering/RenderBlock.cpp:
(WebCore::RenderBlock::logicalLeftOffsetForContent const):
(WebCore::RenderBlock::logicalRightOffsetForContent const):
- rendering/RenderBlockFlow.cpp:
(WebCore::RenderBlockFlow::determineLogicalLeftPositionForChild):
- rendering/RenderBox.cpp:
(WebCore::RenderBox::paddingBoxRect const):
(WebCore::RenderBox::contentBoxLocation const):
(WebCore::RenderBox::overflowClipRect const):
(WebCore::RenderBox::computePositionedLogicalWidth const):
(WebCore::RenderBox::flippedClientBoxRect const):
- rendering/RenderBoxModelObject.cpp:
(WebCore::RenderBoxModelObject::constrainingRectForStickyPosition const):
- rendering/RenderLayer.cpp:
(WebCore::RenderLayer::scrollRectToVisible):
(WebCore::RenderLayer::resize):
(WebCore::RenderLayer::overflowControlsRects const):
(WebCore::RenderLayer::offsetFromResizeCorner const):
- rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::positionForClipLayer const):
- rendering/RenderLayerModelObject.cpp:
(WebCore::RenderLayerModelObject::shouldPlaceVerticalScrollbarOnLeft const):
- rendering/RenderLayerModelObject.h:
- rendering/RenderLayerScrollableArea.cpp:
(WebCore::RenderLayerScrollableArea::shouldPlaceVerticalScrollbarOnLeft const):
(WebCore::RenderLayerScrollableArea::overflowControlsRects const):
(WebCore::RenderLayerScrollableArea::computeScrollOrigin):
(WebCore::RenderLayerScrollableArea::updateScrollbarsAfterLayout):
(WebCore::RenderLayerScrollableArea::drawPlatformResizerImage):
(WebCore::RenderLayerScrollableArea::hitTestResizerInFragments const):
(WebCore::RenderLayerScrollableArea::updateScrollbarsAfterStyleChange):
- rendering/RenderLayerScrollableArea.h:
- rendering/RenderListBox.cpp:
(WebCore::RenderListBox::itemBoundingBoxRect):
(WebCore::RenderListBox::paintScrollbar):
(WebCore::RenderListBox::isPointInOverflowControl):
(WebCore::RenderListBox::listIndexAtOffset):
(WebCore::RenderListBox::invalidateScrollbarRect):
(WebCore::RenderListBox::convertFromScrollbarToContainingView const):
(WebCore::RenderListBox::convertFromContainingViewToScrollbar const):
- rendering/RenderListBox.h:
- rendering/RenderView.cpp:
(WebCore::RenderView::repaintViewRectangle const):
- rendering/style/RenderStyle.cpp:
(WebCore::RenderStyle::shouldPlaceVerticalScrollbarOnLeft const):
- rendering/style/RenderStyle.h:
Source/WebKit:
- UIProcess/win/WebPopupMenuProxyWin.h:
- WebProcess/Plugins/PDF/PDFPlugin.h:
LayoutTests:
iOS test failure expectations and skips are because we don't support
non-overlay scrollbars on the left on that platform.
- TestExpectations:
- css3/flexbox/child-overflow-expected.html:
- fast/repaint/vertical-overflow-parent-expected.txt:
- fast/repaint/vertical-overflow-same-expected.txt:
- fast/scrolling/v-rl-scrollbars-initial-position-dynamic-expected.html: Added.
- fast/scrolling/v-rl-scrollbars-initial-position-dynamic.html: Added.
- fast/scrolling/v-rl-scrollbars-initial-position-expected.html: Added.
- fast/scrolling/v-rl-scrollbars-initial-position.html: Added.
- fast/scrolling/vertical-scrollbar-position-expected.txt: Added.
- fast/scrolling/vertical-scrollbar-position.html: Added.
- platform/ios/TestExpectations:
- platform/ios/imported/w3c/web-platform-tests/css/css-scroll-snap/snap-inline-block-expected.txt: Added.
- platform/ios/imported/w3c/web-platform-tests/css/cssom-view/scrollLeftTop-expected.txt: Copied from LayoutTests/imported/w3c/web-platform-tests/css/cssom-view/scrollLeftTop-expected.txt.
- 4:53 PM Changeset in webkit [276181] by
-
- 21 edits in trunk/Source
[macOS] Refactor some webpage translation code
https://bugs.webkit.org/show_bug.cgi?id=224680
Work towards <rdar://75641882>
Reviewed by Tim Horton.
Source/WebCore:
In preparation for fixing https://webkit.org/b/224683, refactor some codepaths for handling webpage translation
via the context menu on macOS, in WebKit2.
Currently, the context menu action for
ContextMenuItemTagTranslate
is fully handled in the client layer in
WebKit2, using state inm_activeContextMenuContextData
. However, to make this action work in WebKitLegacy as
well, we need the ability to call back into theContextMenuController
to handle the action, since context menu
actions in WebKitLegacy only target the sharedWebMenuTarget
instance, which only knows about the context menu
controller rather than theWebHTMLView
that vended the menu item.
Instead of adding logic in
WebMenuTarget
to dig theWebHTMLView
corresponding to the focused frame out of
the context menu controller, it makes more sense to plumb this call through the (already-established)
ContextMenuClient
. While this has the disadvantage of requiring an extra IPC hop on the WebKit2 case, it also
has the advantage that we can lazily compute the selection bounds and menu location in root view coordinates
only if the user has selected this menu action, which makes context menu data (slightly) cheaper to compute.
No change in behavior.
- loader/EmptyClients.cpp:
- page/ContextMenuClient.h:
- page/ContextMenuContext.h:
(WebCore::ContextMenuContext::setSelectionBounds): Deleted.
(WebCore::ContextMenuContext::selectionBounds const): Deleted.
Remove code for computing and setting selection bounds. This was only added in support of webpage translation;
instead of computing this up front, we can instead send this information only when the action is invoked.
- page/ContextMenuController.cpp:
(WebCore::ContextMenuController::contextMenuItemSelected):
Move logic for computing the selection bounds and menu location in root view coordinates out of
populate
and
intocontextMenuItemSelected
, only in the case where the action isContextMenuItemTagTranslate
.
(WebCore::ContextMenuController::populate):
Source/WebKit:
See WebCore ChangeLog for more details.
- Shared/ContextMenuContextData.cpp:
(WebKit::ContextMenuContextData::ContextMenuContextData):
(WebKit::ContextMenuContextData::encode const):
(WebKit::ContextMenuContextData::decode):
- Shared/ContextMenuContextData.h:
Remove
selectionBounds
. We don't need this anymore, because we'll instead compute the selection bounds only
when the Translate menu item is selected, instead of relying onm_activeContextMenuContextData
being up to
date.
(WebKit::ContextMenuContextData::selectedText const):
(WebKit::ContextMenuContextData::selectionBounds const): Deleted.
- UIProcess/Cocoa/WebPageProxyCocoa.mm:
(WebKit::WebPageProxy::handleContextMenuTranslation):
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::contextMenuItemSelected):
- UIProcess/WebPageProxy.h:
- UIProcess/WebPageProxy.messages.in:
- WebProcess/WebCoreSupport/WebContextMenuClient.h:
- WebProcess/WebCoreSupport/mac/WebContextMenuClientMac.mm:
(WebKit::WebContextMenuClient::handleTranslation):
- WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::handleContextMenuTranslation):
- WebProcess/WebPage/WebPage.h:
Source/WebKitLegacy/mac:
See WebCore ChangeLog for more details.
- WebCoreSupport/WebContextMenuClient.h:
- WebCoreSupport/WebContextMenuClient.mm:
(WebContextMenuClient::handleTranslation):
- WebView/WebView.mm:
(-[WebView _handleContextMenuTranslation:selectionBounds:menuLocation:]):
Add an empty stub with a
FIXME
for the time being.
- WebView/WebViewInternal.h:
- 4:52 PM Changeset in webkit [276180] by
-
- 17 edits in trunk
Allow using the platform authenticator on non-Touch ID Macs according to Internal requirements
https://bugs.webkit.org/show_bug.cgi?id=224639
<rdar://74698346>
Reviewed by Daniel Bates.
Source/WebCore:
Covered by new tests within existing test files.
- testing/MockWebAuthenticationConfiguration.h:
- testing/MockWebAuthenticationConfiguration.idl:
Mock testing support.
Source/WebKit:
- UIProcess/WebAuthentication/Cocoa/LocalAuthenticator.mm:
(WebKit::LocalAuthenticator::continueMakeCredentialAfterDecidePolicy):
(WebKit::LocalAuthenticator::continueMakeCredentialAfterUserVerification):
(WebKit::LocalAuthenticator::continueGetAssertionAfterResponseSelected):
(WebKit::LocalAuthenticator::continueGetAssertionAfterUserVerification):
Don't set the UserVerification bit if UserVerification is not done.
- UIProcess/WebAuthentication/Cocoa/LocalConnection.h:
- UIProcess/WebAuthentication/Cocoa/LocalConnection.mm:
(WebKit::LocalConnection::verifyUser):
Only check UserPresence on non-Touch ID Macs.
- UIProcess/WebAuthentication/Cocoa/LocalService.mm:
(WebKit::LocalService::isAvailable):
Make the platform authenticator available according to Internal requirements.
- UIProcess/WebAuthentication/Mock/MockLocalConnection.h:
- UIProcess/WebAuthentication/Mock/MockLocalConnection.mm:
(WebKit::MockLocalConnection::verifyUser):
Mock testing support.
- UIProcess/WebAuthentication/WebAuthenticationRequestData.cpp:
(WebKit::getUserVerificationRequirement):
- UIProcess/WebAuthentication/WebAuthenticationRequestData.h:
Add a helper for extracting the UserVerification input.
LayoutTests:
- http/wpt/webauthn/public-key-credential-create-success-local.https-expected.txt:
- http/wpt/webauthn/public-key-credential-create-success-local.https.html:
- http/wpt/webauthn/public-key-credential-get-success-local.https-expected.txt:
- http/wpt/webauthn/public-key-credential-get-success-local.https.html:
- 4:32 PM Changeset in webkit [276179] by
-
- 8 edits in branches/safari-611-branch/Source/WebKit
Revert "Cherry-pick r275846. rdar://problem/76727548"
This reverts commit r276116.
- 4:15 PM Changeset in webkit [276178] by
-
- 2 edits in trunk/LayoutTests
[ macOS Wk2 ] media/media-fragments/TC0051.html is flakey crashing
https://bugs.webkit.org/show_bug.cgi?id=222277
Uneviewed test gardening.
- platform/mac-wk2/TestExpectations: Removing skip expectation to verify fix.
- 3:54 PM Changeset in webkit [276177] by
-
- 42 edits2 adds1 delete in trunk/Source
[GPUP] WebContent process should not create AVOutputContext instances when media in GPU Process is enabled
https://bugs.webkit.org/show_bug.cgi?id=224469
Reviewed by Eric Carlson.
Source/WebCore:
This patch modifies
MediaPlaybackTargetContext
to provide interfaces to serialize/deserialize
AVOutputContext
and modifiesMediaPlaybackTargetCocoa
to useMediaPlaybackTargetContext
to
manage itsAVOutputContext
instead of keeping a pointer to theAVOutputContext
object.
With these changes, a WebContent process can forward a serializedAVOutputContext
object
to other processes (e.g., the GPU process) without deserializing it. Therefore, the WebContent
process does not need access to the CoreMedia routing service. So we can remove the fix (r275669)
for bug 224328.
Covered by existing tests.
- Modules/airplay/WebMediaSessionManager.cpp:
(WebCore::WebMediaSessionManager::setMockMediaPlaybackTargetPickerState):
- Modules/airplay/WebMediaSessionManager.h:
- Headers.cmake:
- SourcesCocoa.txt:
- WebCore.xcodeproj/project.pbxproj:
Modify the project file because
MediaPlaybackTargetContext
is used in Cocoa ports only.
- page/ChromeClient.h:
(WebCore::ChromeClient::setMockMediaPlaybackTargetPickerState):
- page/Page.cpp:
(WebCore::Page::setMockMediaPlaybackTargetPickerState):
- page/Page.h:
- platform/graphics/MediaPlaybackTarget.h:
(WebCore::MediaPlaybackTarget::hasActiveRoute const):
(WebCore::MediaPlaybackTarget::deviceName const):
(WebCore::MediaPlaybackTarget::supportsRemoteVideoPlayback):
(): Deleted.
- platform/graphics/MediaPlaybackTargetContext.h: Removed.
- platform/graphics/avfoundation/MediaPlaybackTargetCocoa.h:
(WebCore::MediaPlaybackTargetCocoa::outputContext const): Deleted.
- platform/graphics/avfoundation/MediaPlaybackTargetCocoa.mm:
(WebCore::MediaPlaybackTargetCocoa::create):
(WebCore::MediaPlaybackTargetCocoa::MediaPlaybackTargetCocoa):
(WebCore::MediaPlaybackTargetCocoa::~MediaPlaybackTargetCocoa):
(WebCore::toMediaPlaybackTargetCocoa):
(WebCore::MediaPlaybackTargetCocoa::supportsRemoteVideoPlayback const): Deleted.
(WebCore::MediaPlaybackTargetCocoa::targetContext const): Deleted.
(WebCore::MediaPlaybackTargetCocoa::hasActiveRoute const): Deleted.
(WebCore::MediaPlaybackTargetCocoa::deviceName const): Deleted.
Don't directly useAVOutputContext
in this class.
- platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
(WebCore::MediaPlayerPrivateAVFoundationObjC::isCurrentPlaybackTargetWireless const):
(WebCore::MediaPlayerPrivateAVFoundationObjC::setWirelessPlaybackTarget):
(WebCore::MediaPlayerPrivateAVFoundationObjC::setShouldPlayToPlaybackTarget):
- platform/graphics/cocoa/MediaPlaybackTargetContext.h: Added.
(WebCore::MediaPlaybackTargetContext::MediaPlaybackTargetContext):
(WebCore::MediaPlaybackTargetContext::type const):
(WebCore::MediaPlaybackTargetContext::mockState const):
(WebCore::MediaPlaybackTargetContext::outputContext const):
(WebCore::MediaPlaybackTargetContext::serializedOutputContext const):
(WebCore::MediaPlaybackTargetContext::encodingRequiresPlatformData const):
- platform/graphics/cocoa/MediaPlaybackTargetContext.mm: Added.
(WebCore::MediaPlaybackTargetContext::MediaPlaybackTargetContext):
(WebCore::MediaPlaybackTargetContext::deviceName const):
(WebCore::MediaPlaybackTargetContext::hasActiveRoute const):
(WebCore::MediaPlaybackTargetContext::supportsRemoteVideoPlayback const):
(WebCore::MediaPlaybackTargetContext::serializeOutputContext):
(WebCore::MediaPlaybackTargetContext::deserializeOutputContext):
- platform/mock/MediaPlaybackTargetMock.cpp:
(WebCore::MediaPlaybackTargetMock::create):
(WebCore::MediaPlaybackTargetMock::MediaPlaybackTargetMock):
(WebCore::toMediaPlaybackTargetMock):
(WebCore::MediaPlaybackTargetMock::targetContext const): Deleted.
- platform/mock/MediaPlaybackTargetMock.h:
(WebCore::MediaPlaybackTargetMock::state const):
- platform/mock/MediaPlaybackTargetPickerMock.cpp:
(WebCore::MediaPlaybackTargetPickerMock::externalOutputDeviceAvailable):
(WebCore::MediaPlaybackTargetPickerMock::startingMonitoringPlaybackTargets):
(WebCore::MediaPlaybackTargetPickerMock::invalidatePlaybackTargets):
(WebCore::MediaPlaybackTargetPickerMock::setState):
- platform/mock/MediaPlaybackTargetPickerMock.h:
- testing/Internals.cpp:
(WebCore::Internals::resetToConsistentState):
(WebCore::Internals::setMockMediaPlaybackTargetPickerState):
Source/WebKit:
- Scripts/webkit/messages.py: Fix clean build failures on the WinCairo port.
- GPUProcess/media/RemoteMediaPlayerProxy.cpp:
(WebKit::RemoteMediaPlayerProxy::setWirelessPlaybackTarget):
- GPUProcess/media/RemoteMediaPlayerProxy.h:
- GPUProcess/media/ios/RemoteMediaSessionHelperProxy.cpp:
(WebKit::RemoteMediaSessionHelperProxy::activeVideoRouteDidChange):
- Shared/Cocoa/WebCoreArgumentCodersCocoa.mm:
(IPC::ArgumentCoder<WebCore::MediaPlaybackTargetContext>::encodePlatformData):
(IPC::ArgumentCoder<WebCore::MediaPlaybackTargetContext>::decodePlatformData):
- Shared/WebCoreArgumentCoders.cpp:
(IPC::ArgumentCoder<MediaPlaybackTargetContext>::encode):
(IPC::ArgumentCoder<MediaPlaybackTargetContext>::decode):
- Shared/WebCoreArgumentCoders.h:
- Shared/mac/WebCoreArgumentCodersMac.mm:
(IPC::ArgumentCoder<WebCore::MediaPlaybackTargetContext>::encodePlatformData): Deleted.
(IPC::ArgumentCoder<WebCore::MediaPlaybackTargetContext>::decodePlatformData): Deleted.
- UIProcess/WebPageProxy.cpp:
(WebKit::mediaRelatedIOKitClasses):
(WebKit::WebPageProxy::creationParameters):
(WebKit::WebPageProxy::setMockMediaPlaybackTargetPickerState):
(WebKit::WebPageProxy::setPlaybackTarget):
(WebKit::temporaryMachServices): Deleted.
- UIProcess/WebPageProxy.h:
- UIProcess/WebPageProxy.messages.in:
- WebProcess/GPU/media/ios/RemoteMediaSessionHelper.cpp:
(WebKit::RemoteMediaSessionHelper::activeVideoRouteDidChange):
- WebProcess/WebCoreSupport/WebChromeClient.cpp:
(WebKit::WebChromeClient::setMockMediaPlaybackTargetPickerState):
- WebProcess/WebCoreSupport/WebChromeClient.h:
- WebProcess/WebPage/WebPage.h:
- WebProcess/WebPage/mac/WebPageMac.mm:
(WebKit::WebPage::playbackTargetSelected const):
Source/WebKitLegacy/mac:
- WebCoreSupport/WebChromeClient.h:
- WebCoreSupport/WebChromeClient.mm:
(WebChromeClient::setMockMediaPlaybackTargetPickerState):
- WebView/WebMediaPlaybackTargetPicker.h:
- WebView/WebMediaPlaybackTargetPicker.mm:
(WebMediaPlaybackTargetPicker::setMockMediaPlaybackTargetPickerState):
- WebView/WebView.mm:
(-[WebView _setMockMediaPlaybackTargetPickerName:state:]):
- WebView/WebViewInternal.h:
- 3:50 PM Changeset in webkit [276176] by
-
- 4 edits in trunk
Disable app-bound request API tests on specific OS versions
https://bugs.webkit.org/show_bug.cgi?id=223692
<rdar://problem/75787288>
Reviewed by Brent Fulgham.
Source/WTF:
- wtf/PlatformEnableCocoa.h:
Tools:
These test rely on internal additions only available on certain OS
versions. We should disable them on other versions.
- TestWebKitAPI/Tests/WebKitCocoa/InAppBrowserPrivacy.mm:
- 3:28 PM Changeset in webkit [276175] by
-
- 5 edits in branches/safari-611-branch/Source/JavaScriptCore
Cherry-pick r276155. rdar://problem/76781047
Before deleting a MarkedBlock we do not need to clear its m_directory pointer.
https://bugs.webkit.org/show_bug.cgi?id=224677
Reviewed by Yusuke Suzuki.
Right now when we are about to free a MarkedBlock we clear the
m_directory pointer in the MarkedBlock's Handle. This has the
downside, however, of potentially paging in the footer from disk /
the compressor, which some data we have seen shows is happening.
This patch prevents this uncessary store to hopefully reduce the
number of pageins/decompressions caused by Safari web content.
- heap/BlockDirectory.cpp: (JSC::BlockDirectory::removeBlock): (JSC::BlockDirectory::removeBlockForDeletion):
- heap/BlockDirectory.h:
- heap/MarkedBlock.cpp: (JSC::MarkedBlock::Handle::~Handle):
- heap/MarkedSpace.cpp: (JSC::MarkedSpace::freeBlock):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@276155 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 3:16 PM Changeset in webkit [276174] by
-
- 2 edits in trunk/LayoutTests
N[ BigSur Release wk2 ARM64 ] inspector/console/console-oom.html is a flakey crash
https://bugs.webkit.org/show_bug.cgi?id=224698
Unreviewed test gardening.
- platform/mac-wk2/TestExpectations: Updating expectations to Pass Crash for BigSur Release arm64 only.
- 2:56 PM Changeset in webkit [276173] by
-
- 2 edits in releases/WebKitGTK/webkit-2.32/Source/WebCore
Unreviewed non-unified build fix.
- loader/DocumentThreadableLoader.cpp: Add missing FrameLoader.h header.
- 2:55 PM Changeset in webkit [276172] by
-
- 2 edits in trunk/LayoutTests
[ BigSur wk2 ARM64 ] http/wpt/webrtc/change-encoded-transform.html is a flakey crash
https://bugs.webkit.org/show_bug.cgi?id=224696
Unreviewed test gardneing.
- platform/mac-wk2/TestExpectations: Updating test expectations to Pass Crash while test is reviewed.
- 2:34 PM Changeset in webkit [276171] by
-
- 1 edit in branches/safari-611-branch/Source/WebKit/WebProcess/WebCoreSupport/WebChromeClient.cpp
Unreviewed build fix, rdar://problem/76412930
WebKit2/WebProcess/WebCoreSupport/WebChromeClient.cpp:283:327: error: no member named 'Timeout' in namespace 'IPC'
- 2:22 PM Changeset in webkit [276170] by
-
- 3 edits in trunk/Source/WebInspectorUI
Web Inspector: REGRESSION(?): Graphics: dropping a recording leaves behind a drop zone view
https://bugs.webkit.org/show_bug.cgi?id=224648
Reviewed by BJ Burg.
- UserInterface/Views/GraphicsTabContentView.js:
(WI.GraphicsTabContentView.prototype.initialLayout):
It appears that it's possible for re-entrancy issues in theWI.View
system since the
_didInitialLayout
flag isn't set until _after_initialLayout
returns, meaning that if
the logic insideinitialLayout
triggers a synchronouslayout
then that secondlayout
won't know that it's already in the middle of aninitialLayout
. In this case, showing the
WI.GraphicsOverviewContentView
causes the navigation sidebar to be shown, which forces a
synchronouslayout
from handlingWI.Sidebar.Event.WidthDidChange
. For now, there's no
"rush" to show theWI.GraphicsOverviewContentView
so we delay it by one event loop turn.
- UserInterface/Views/CanvasContentView.js:
(WI.CanvasContentView.prototype.initialLayout):
(WI.CanvasContentView.prototype.dropZoneShouldAppearForDragEvent): Deleted.
(WI.CanvasContentView.prototype.dropZoneHandleDrop): Deleted.
There's no reason to have anotherWI.DropZoneView
here since there's already one that
covers the entire tab.
- 2:13 PM Changeset in webkit [276169] by
-
- 2 edits in trunk/Source/WebCore
Remove redundant renderObject in BreakingContext::handleText
https://bugs.webkit.org/show_bug.cgi?id=224682
Reviewed by Darin Adler.
- rendering/line/BreakingContext.h:
(WebCore::BreakingContext::handleText):
- 2:12 PM Changeset in webkit [276168] by
-
- 2 edits in trunk/LayoutTests
[ macOS wk2 ]compositing/video/video-border-radius-clipping.html is a flakey image failure
https://bugs.webkit.org/show_bug.cgi?id=224690
Unreviewed test gardneing.
- platform/mac-wk2/TestExpectations: Updating test expectations to include Debug.
- 2:07 PM Changeset in webkit [276167] by
-
- 4 edits in trunk/Source/WebCore
[PlayStation][OpenSSL] Remove warnings.
https://bugs.webkit.org/show_bug.cgi?id=224630
Reviewed by Don Olmstead.
There're two kinds of warnings in curl and openssl layer in our platform.
a) Unused param
b) 'WORDSIZE' is not defined.
warning: 'WORDSIZE' is not defined, evaluates to 0 [-Wundef]
#if WORDSIZE >= 64
No new tests because it's only for compilation issue.
- crypto/algorithms/CryptoAlgorithmAES_GCM.cpp:
(WebCore::CryptoAlgorithmAES_GCM::encrypt):
(WebCore::CryptoAlgorithmAES_GCM::decrypt):
- crypto/openssl/CryptoKeyECOpenSSL.cpp:
(WebCore::CryptoKeyEC::platformGeneratePair):
(WebCore::CryptoKeyEC::platformImportRaw):
(WebCore::CryptoKeyEC::platformImportJWKPublic):
(WebCore::CryptoKeyEC::platformImportJWKPrivate):
(WebCore::CryptoKeyEC::platformImportSpki):
(WebCore::CryptoKeyEC::platformImportPkcs8):
- crypto/openssl/CryptoKeyRSAOpenSSL.cpp:
(WebCore::CryptoKeyRSA::create):
(WebCore::CryptoKeyRSA::generatePair):
(WebCore::CryptoKeyRSA::importSpki):
(WebCore::CryptoKeyRSA::importPkcs8):
- 1:55 PM Changeset in webkit [276166] by
-
- 4 edits in trunk/LayoutTests
[BigSur wk1] svg/canvas/canvas-global-alpha-svg.html is flakey failing
https://bugs.webkit.org/show_bug.cgi?id=221559
<rdar://problem/74104075>
Reviewed by Daniel Bates.
By default, aliasing is applied when drawing the SVGImage to the canvas
through CanvasRenderingContext2D::drawImage() and when drawing the canvas
itself to DOM container through ImageBuffer::draw(). Because the test
includes only rectangles, we need to make sure the edges of the SVG image
and the canvas in this test get pixelated. This will match the expected
page which uses DOM objects to mimic the SVG and canvas drawing
Make sure the test is ended only after the SVG image is fully loaded.
- platform/ios/TestExpectations:
- platform/mac-wk1/TestExpectations:
- svg/canvas/canvas-global-alpha-svg.html:
- 1:54 PM Changeset in webkit [276165] by
-
- 2 edits in trunk/LayoutTests
N[ wk2 ] media/presentationmodechanged-fired-once.html is a flakey timeout
https://bugs.webkit.org/show_bug.cgi?id=224633
Unreviewed test gardneing.
- platform/ios-simulator-wk2/TestExpectations: Forgot to update expectations for iOS as well.
- 1:41 PM Changeset in webkit [276164] by
-
- 11 edits in trunk
Disable ApplicationCache with linkedOnOrAfter check
https://bugs.webkit.org/show_bug.cgi?id=224629
Patch by Alex Christensen <achristensen@webkit.org> on 2021-04-16
Reviewed by Brady Eidson.
Source/WebCore:
ApplicationCache has been deprecated for two years in WebKit with a message to developers since r227225.
Firefox removed support in https://bugzilla.mozilla.org/show_bug.cgi?id=1619673 which shipped with Firefox 84 on Dec 15, 2020.
Chrome removed support in https://bugs.chromium.org/p/chromium/issues/detail?id=582750 by default in Chrome 85 on August 25, 2020
but they have a reverse origin trial program running right now so that some origins have it working, but they are planning to remove
even that support October 2021.
We have kept it working for a reason related to rdar://38505756, specifically the 4th and 5th comment in that bug.
That reason is now passed.
This patch removes support for new apps but keeps it working for 3rd party apps linked with existing SDKs. Once those apps update
to a new SDK, they will be unable to use ApplicationCache. They will need to migrate to use fetch service workers instead.
- platform/cocoa/VersionChecks.h:
Source/WebKit:
- Shared/WebPreferencesDefaultValues.cpp:
(WebKit::defaultOfflineWebApplicationCacheEnabled):
- Shared/WebPreferencesDefaultValues.h:
Source/WTF:
- Scripts/Preferences/WebPreferences.yaml:
Tools:
- TestWebKitAPI/Tests/WebKit/WKPreferences.cpp:
(TestWebKitAPI::TEST):
- TestWebKitAPI/Tests/WebKitCocoa/WebsiteDataStoreCustomPaths.mm:
(TEST):
- WebKitTestRunner/TestOptions.cpp:
(WTR::TestOptions::defaults):
- 1:35 PM Changeset in webkit [276163] by
-
- 2 edits in trunk/LayoutTests
[ wk2 ] media/presentationmodechanged-fired-once.html is a flakey timeout
https://bugs.webkit.org/show_bug.cgi?id=224633
Unreviewed test gardening.
- platform/mac-wk2/TestExpectations: Updating test expectations to Pass Timeout while test is reviewed.
- 1:27 PM WebKitGTK/Debugging edited by
- Also consistently use GST_DEBUG_NO_COLOR=1 (diff)
- 1:26 PM WebKitGTK/Debugging edited by
- Recommend WEBKIT_FORCE_SANDBOX=0 (diff)
- 12:59 PM Changeset in webkit [276162] by
-
- 3 edits in trunk/Source/JavaScriptCore
More changes to support the TerminationException.
https://bugs.webkit.org/show_bug.cgi?id=224681
rdar://76698113
Reviewed by Keith Miller.
- interpreter/Interpreter.cpp:
(JSC::Interpreter::executeProgram):
- ProgramExecutable::initializeGlobalProperties() can throw the TerminationException. Add handling for that.
- runtime/JSObject.cpp:
(JSC::JSObject::defineOwnIndexedProperty):
- JSObject::defineOwnIndexedProperty() has a blob of assertion code that it verifying that getOwnPropertyDescriptor() should succeed without throwing any exceptions if the fast path is allowed. However, this is assertion is only true if there isn't a termination being requested. So, use the DeferTermination scope to allow this assertion to be tested without the complication of a TerminationException.
- 12:42 PM Changeset in webkit [276161] by
-
- 8 edits in branches/safari-612.1.11-branch/Source
Versioning.
WebKit-7612.1.11.1
- 12:39 PM Changeset in webkit [276160] by
-
- 5 edits in trunk/Source/WebKit
Add WKUIDelegate SPI for starting XR session
https://bugs.webkit.org/show_bug.cgi?id=224634
Patch by Ada Chan <ada.chan@apple.com> on 2021-04-16
Reviewed by Tim Horton.
- UIProcess/API/APIUIClient.h:
(API::UIClient::startXRSession):
- UIProcess/API/Cocoa/WKUIDelegatePrivate.h:
- UIProcess/Cocoa/UIDelegate.h:
- UIProcess/Cocoa/UIDelegate.mm:
(WebKit::UIDelegate::setDelegate):
(WebKit::UIDelegate::UIClient::startXRSession):
- 12:28 PM Changeset in webkit [276159] by
-
- 5 edits in trunk/Source/WebCore
Unreviewed, reverting r273733.
https://bugs.webkit.org/show_bug.cgi?id=224686
Broke mouse wheel scrolling speed
Reverted changeset:
"Eliminate ScrollAnimatorGeneric::m_smoothAnimation"
https://bugs.webkit.org/show_bug.cgi?id=222588
https://trac.webkit.org/changeset/273733
- 12:26 PM Changeset in webkit [276158] by
-
- 19 edits in branches/safari-611-branch/Source
Cherry-pick r275485. rdar://problem/76412930
Make sure we no longer show the previous page when running a JS prompt
https://bugs.webkit.org/show_bug.cgi?id=215782
<rdar://problem/67698601>
Reviewed by Darin Adler.
Source/WebCore:
Add linked-on-after check for the behavior change to minimize the risk of
breakage.
- platform/cocoa/VersionChecks.h:
Source/WebKit:
Make sure we no longer show the previous page when running a JS prompt.
If we have not yet done a layer tree commit since the last load commit, then
we are likely still showing the previous page. If we are asked to run a JS
prompt / alert / confirm at this point, it would be confusing to still show
the previous page. In order to address the issue, we now make the view blank
in such scenario (ideally, we'd have painted the new page but this is
currently not a trivial thing to do).
To make the view blank, the approach chosen is the set the opacity of our
root layer to 0 when the JS prompt is requested (before the first paint) and
set the opacity back to 1 after the first paint.
To minimize the risks of breakage, the behavior change is behind a
linked-on-after check. Also, we only trigger this behavior if the WKWebView
client actually implements the corresponding JS prompt delegate.
- UIProcess/Cocoa/UIDelegate.mm: (WebKit::UIDelegate::UIClient::runJavaScriptAlert): (WebKit::UIDelegate::UIClient::runJavaScriptConfirm): (WebKit::UIDelegate::UIClient::runJavaScriptPrompt):
- UIProcess/PageClient.h: (WebKit::PageClient::makeViewBlank):
- UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::stopMakingViewBlankDueToLackOfRenderingUpdate): (WebKit::WebPageProxy::makeViewBlankIfUnpaintedSinceLastLoadCommit): (WebKit::WebPageProxy::didCommitLoadForFrame): (WebKit::WebPageProxy::runJavaScriptAlert):
- UIProcess/WebPageProxy.h:
- UIProcess/WebPageProxy.messages.in:
- UIProcess/ios/PageClientImplIOS.h:
- UIProcess/ios/PageClientImplIOS.mm: (WebKit::PageClientImpl::makeViewBlank):
- UIProcess/ios/WebPageProxyIOS.mm: (WebKit::WebPageProxy::didCommitLayerTree):
- UIProcess/mac/PageClientImplMac.h:
- UIProcess/mac/PageClientImplMac.mm: (WebKit::PageClientImpl::makeViewBlank):
- UIProcess/mac/WebPageProxyMac.mm: (WebKit::WebPageProxy::didUpdateRenderingAfterCommittingLoad):
- WebProcess/WebCoreSupport/WebChromeClient.cpp: (WebKit::WebChromeClient::runJavaScriptAlert): (WebKit::WebChromeClient::runJavaScriptConfirm): (WebKit::WebChromeClient::runJavaScriptPrompt): Add flag to make sure pending async messages are processed *before* the JS prompt sync IPCs. Without this, it was possible for the UIProcess to receive the JS prompt IPC *before* the DidCommitLoadForFrame IPC, which would confuse our logic, since we would think this is a JS prompt for the previous page.
- WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::didCommitLoad):
- WebProcess/WebPage/WebPage.h: (WebKit::WebPage::sendSyncWithDelayedReply):
- WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm: (WebKit::TiledCoreAnimationDrawingArea::updateRendering):
- WebProcess/WebPage/mac/WebPageMac.mm: (WebKit::WebPage::didUpdateRendering):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@275485 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 12:26 PM Changeset in webkit [276157] by
-
- 11 edits in branches/safari-611-branch
Cherry-pick r274565. rdar://problem/76412930
Maybe-regression(STP121): window.open flakily returning null
https://bugs.webkit.org/show_bug.cgi?id=222590
<rdar://problem/75211786>
Reviewed by Geoffrey Garen.
Source/WebKit:
This was an IPC ordering bug. WebPageProxy::DidCommitLoadForFrame is async and WebPageProxy::CreateNewPage is
sync. As a result, it was possible for the WebPageProxy::CreateNewPage to get processed *BEFORE* the
WebPageProxy::DidCommitLoadForFrame IPC. This was causing trouble because Safari rejects the popup opening if
the main frame is doing a provisional load.
To address the issue, introduce a new IPC::SendSyncOption::MaintainOrderingWithAsyncMessages flag and
use it on WebPageProxy::CreateNewPage sync IPC so that it gets processed in order with surrounding async
messages.
- Platform/IPC/Connection.cpp: (IPC::Connection::SyncMessageState::processIncomingMessage): (IPC::Connection::sendSyncMessage):
- Platform/IPC/Connection.h:
- Platform/IPC/Decoder.cpp: (IPC::Decoder::shouldMaintainOrderingWithAsyncMessages const):
- Platform/IPC/Decoder.h:
- Platform/IPC/Encoder.cpp: (IPC::Encoder::setShouldMaintainOrderingWithAsyncMessages):
- Platform/IPC/Encoder.h:
- Platform/IPC/MessageFlags.h:
- WebProcess/WebCoreSupport/WebChromeClient.cpp: (WebKit::WebChromeClient::createWindow):
Tools:
Add API test coverage.
- TestWebKitAPI/Tests/WebKit/ModalAlertsSPI.cpp: (TestWebKitAPI::TEST): (TestWebKitAPI::checkFrameLoadStateAndCreateNewPage):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@274565 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 12:26 PM Changeset in webkit [276156] by
-
- 5 edits in branches/safari-611-branch/Source/WebCore
Cherry-pick r274819. rdar://problem/76373741
AVAudioSessionCaptureDeviceManager should use crossThreadCopy
https://bugs.webkit.org/show_bug.cgi?id=223565
<rdar://75480589>
Reviewed by Youenn Fablet.
Tested manually, this can only be tested on device.
- platform/mediastream/CaptureDevice.h: Change access restriction for member
variables from
private:
toprotected:
so derived classes can access them directly.
- platform/mediastream/ios/AVAudioSessionCaptureDevice.h:
- platform/mediastream/ios/AVAudioSessionCaptureDevice.mm: (WebCore::AVAudioSessionCaptureDevice::AVAudioSessionCaptureDevice): New constructor. (WebCore::AVAudioSessionCaptureDevice::isolatedCopy const): New.
- platform/mediastream/ios/AVAudioSessionCaptureDeviceManager.mm:
(WebCore::AVAudioSessionCaptureDeviceManager::refreshAudioCaptureDevices): Use
WTFMove(deviceList).isolatedCopy()
when moving from AVAudioSession queue to main thread. (WebCore::AVAudioSessionCaptureDeviceManager::getCaptureDevices): Ditto.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@274819 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 12:24 PM Changeset in webkit [276155] by
-
- 5 edits in trunk/Source/JavaScriptCore
Before deleting a MarkedBlock we do not need to clear its m_directory pointer.
https://bugs.webkit.org/show_bug.cgi?id=224677
Reviewed by Yusuke Suzuki.
Right now when we are about to free a MarkedBlock we clear the
m_directory pointer in the MarkedBlock's Handle. This has the
downside, however, of potentially paging in the footer from disk /
the compressor, which some data we have seen shows is happening.
This patch prevents this uncessary store to hopefully reduce the
number of pageins/decompressions caused by Safari web content.
- heap/BlockDirectory.cpp:
(JSC::BlockDirectory::removeBlock):
(JSC::BlockDirectory::removeBlockForDeletion):
- heap/BlockDirectory.h:
- heap/MarkedBlock.cpp:
(JSC::MarkedBlock::Handle::~Handle):
- heap/MarkedSpace.cpp:
(JSC::MarkedSpace::freeBlock):
- 12:22 PM Changeset in webkit [276154] by
-
- 5 edits in trunk/Source
Reduce maximum HashTable entry size to 128 bytes
https://bugs.webkit.org/show_bug.cgi?id=224381
Patch by Alex Christensen <achristensen@webkit.org> on 2021-04-16
Reviewed by Yusuke Suzuki.
Source/WebCore:
- inspector/agents/InspectorAnimationAgent.cpp:
(WebCore::InspectorAnimationAgent::willApplyKeyframeEffect):
(WebCore::InspectorAnimationAgent::stopTrackingDeclarativeAnimation):
- inspector/agents/InspectorAnimationAgent.h:
Source/WTF:
- wtf/HashTable.h:
(WTF::KeyTraits>::inlineLookup):
- 12:20 PM Changeset in webkit [276153] by
-
- 2 edits in trunk/Source/WebKit
Unreviewed, reverting r275839.
The new release assertion is hitting to easily in client apps
Reverted changeset:
"Make sure AuxiliaryProcessProxy::sendMessage() is called on
the main thread"
https://bugs.webkit.org/show_bug.cgi?id=224448
https://commits.webkit.org/r275839
- 12:19 PM Changeset in webkit [276152] by
-
- 45 edits1 copy5 adds in trunk
[css-counter-styles] Parse and add feature flag for @counter-style
https://bugs.webkit.org/show_bug.cgi?id=223150
Patch by Tyler Wilcock <Tyler Wilcock> on 2021-04-16
Reviewed by Darin Adler.
LayoutTests/imported/w3c:
@counter-style and its descriptors are now exposed behind a feature
flag, so pass some tests and fail others for a different reason
because this patch doesn't actually implement descriptor parsing and
setting yet.
- web-platform-tests/css/css-counter-styles/counter-style-additive-symbols-syntax-expected.txt:
- web-platform-tests/css/css-counter-styles/counter-style-fallback-expected.txt:
- web-platform-tests/css/css-counter-styles/counter-style-name-syntax-expected.txt:
- web-platform-tests/css/css-counter-styles/counter-style-negative-syntax-expected.txt:
- web-platform-tests/css/css-counter-styles/counter-style-pad-syntax-expected.txt:
- web-platform-tests/css/css-counter-styles/counter-style-prefix-suffix-syntax-expected.txt:
- web-platform-tests/css/css-counter-styles/counter-style-range-syntax-expected.txt:
- web-platform-tests/css/css-counter-styles/counter-style-speak-as-syntax-expected.txt:
- web-platform-tests/css/css-counter-styles/counter-style-symbols-syntax-expected.txt:
- web-platform-tests/css/css-counter-styles/counter-style-system-syntax-expected.txt:
- web-platform-tests/css/css-counter-styles/idlharness-expected.txt:
- web-platform-tests/css/cssom/CSSCounterStyleRule-expected.txt:
Source/WebCore:
Parse @counter-style (without implementing descriptor parsing) behind
a new feature flag, CSSCounterStyleAtRulesEnabled. A separate feature
flag for @counter-style <image> symbol values has also been added, as
image symbols have extra complexities that we won't want to hold the
entire feature back on.
https://www.w3.org/TR/css-counter-styles-3
The CSSCounterStyleRule IDL interface is also added and implemented,
and similarly feature flagged.
https://www.w3.org/TR/css-counter-styles-3/#apis
Test: webexposed/counter-style-is-not-exposed.html and existing WPTs.
- CMakeLists.txt:
Add CSSCounterStyleRule.idl.
- DerivedSources-input.xcfilelist:
Add CSSCounterStyleRule.idl.
- DerivedSources-output.xcfilelist:
Add JSCSSCounterStyleRule.h and JSCSSCounterStyleRule.cpp.
- DerivedSources.make:
Add CSSCounterStyleRule.idl.
- Sources.txt:
Add CSSCounterStyleRule.cpp and JSCSSCounterStyleRule.cpp.
- WebCore.xcodeproj/project.pbxproj:
Add CounterStyle.h, CounterStyle.cpp, and CounterStyle.idl.
- bindings/js/JSCSSRuleCustom.cpp:
(WebCore::toJSNewlyCreated):
Support CSSCounterStyleRule.
- bindings/js/WebCoreBuiltinNames.h:
Add macro(CSSCounterStyleRule) to generate counter-style built-in
names.
- css/CSSCounterStyleRule.cpp: Added.
(WebCore::StyleRuleCounterStyle::StyleRuleCounterStyle):
(WebCore::StyleRuleCounterStyle::create):
(WebCore::StyleRuleCounterStyle::mutableProperties):
(WebCore::CSSCounterStyleRule::CSSCounterStyleRule):
(WebCore::CSSCounterStyleRule::reattach):
(WebCore::CSSCounterStyleRule::cssText const):
- css/CSSCounterStyleRule.h: Added.
(isType): Add specialized rule.isCounterStyleRule() implementation.
- css/CSSCounterStyleRule.idl: Added.
- css/CSSRule.cpp: Add new StyleRuleType::CounterStyle COMPILE_ASSERT.
- css/CSSRule.h:
Add COUNTER_STYLE_RULE constant. Also add comment
// WebIDL enum
to
disable enum_casing lint, since these values are named to match IDL
attributes.
- css/CSSRule.idl: Add COUNTER_STYLE_RULE constant behind flag.
- css/StyleRule.cpp:
(WebCore::StyleRuleBase::destroy):
(WebCore::StyleRuleBase::copy const):
(WebCore::StyleRuleBase::createCSSOMWrapper const):
Handle newly added StyleRuleType::CounterStyle.
- css/StyleRule.h:
(WebCore::StyleRuleBase::isCounterStyleRule const): Added.
- css/StyleRuleType.h: Add StyleRuleType::CounterStyle
- css/StyleSheetContents.cpp:
(WebCore::traverseRulesInVector):
(WebCore::StyleSheetContents::traverseSubresources const):
If @counter-style image symbols flag is enabled, do traverse
subresources.
- css/parser/CSSAtRuleID.cpp:
If the @counter-style feature flag is enabled, return newly added
CSSAtRuleCounterStyle ID.
(WebCore::cssAtRuleID):
- css/parser/CSSAtRuleID.h:
Add CSSAtRuleCounterStyle ID.
- css/parser/CSSParserContext.cpp:
(WebCore::operator==):
- css/parser/CSSParserContext.h:
(WebCore::CSSParserContextHash::hash):
Add cssCounterStyleAtRulesEnabled and
cssCounterStyleAtRuleImageSymbolsEnabled flags.
- css/parser/CSSParserFastPaths.cpp:
(WebCore::CSSParserFastPaths::isValidKeywordPropertyAndValue):
Refactor to use new CSSPropertyParserHelpers::isPredefinedCounterStyle
method.
- css/parser/CSSParserImpl.cpp:
(WebCore::computeNewAllowedRules):
(WebCore::CSSParserImpl::consumeAtRule):
(WebCore::CSSParserImpl::consumeCounterStyleRule): Added.
(WebCore::CSSParserImpl::consumeDeclarationList):
(WebCore::CSSParserImpl::consumeDeclaration):
- css/parser/CSSParserImpl.h:
Handle new @counter-style rule.
- css/parser/CSSPropertyParser.cpp:
(WebCore::CSSPropertyParser::parseValue): Handle
StyleRuleType::CounterStyle.
(WebCore::consumeCounterContent):
Refactor to use new CSSPropertyParserHelpers::isPredefinedCounterStyle
method.
(WebCore::CSSPropertyParser::parseCounterStyleDescriptor):
Add placeholder for future @counter-style descriptor parsing work.
- css/parser/CSSPropertyParser.h:
Add parseCounterStyleDescriptor method
- css/parser/CSSPropertyParserHelpers.h:
- css/parser/CSSPropertyParserHelpers.cpp:
(WebCore::CSSPropertyParserHelpers::consumeCustomIdent):
Add new flag that allows consumed custom ident values to be lowercased
on-parse. This is necessary for some <counter-style-name> values.
(WebCore::CSSPropertyParserHelpers::isPredefinedCounterStyle): Added.
(WebCore::CSSPropertyParserHelpers::consumeCounterStyleName):
(WebCore::CSSPropertyParserHelpers::consumeCounterStyleNameInPrelude):
Parse @counter-style names, both in-prelude names and non-prelude
names (e.g. as part of theextends
descriptor).
Source/WTF:
- Scripts/Preferences/WebPreferencesExperimental.yaml: Add CSSCounterStyleAtRulesEnabled and CSSCounterStyleAtRuleImageSymbolsEnabled flags.
Tools:
- DumpRenderTree/TestOptions.cpp:
(WTR::TestOptions::defaults):
Addfalse
defaults for CSSCounterStyleAtRulesEnabled and
CSSCounterStyleAtRuleImageSymbolsEnabled flags.
LayoutTests:
Add tests ensuring @counter-style is not exposed when feature flag is
disabled.
- webexposed/counter-style-is-not-exposed-expected.txt: Added.
- webexposed/counter-style-is-not-exposed.html: Added.
- 12:04 PM Changeset in webkit [276151] by
-
- 19 edits in branches/safari-611-branch/Source
Revert "Cherry-pick r275485. rdar://problem/76412930"
This reverts commit r276076.
- 12:04 PM Changeset in webkit [276150] by
-
- 5 edits in branches/safari-611-branch/Source/WebCore
Revert "Cherry-pick r274819. rdar://problem/76373741"
This reverts commit r276044.
- 11:47 AM Changeset in webkit [276149] by
-
- 2 edits in trunk/JSTests
[JSC] Unskip stress/intl-parse-unicode-subtags.js on arm
https://bugs.webkit.org/show_bug.cgi?id=224679
Unreviewed test gardening.
- stress/intl-parse-unicode-subtags.js: Unskipped, as it passes fine
now.
- 11:41 AM Changeset in webkit [276148] by
-
- 42 edits in trunk
Exit the GPUProcess when under memory pressure if it is not being used
https://bugs.webkit.org/show_bug.cgi?id=224556
Reviewed by Darin Adler.
Source/WebKit:
Exit the GPUProcess when under memory pressure if it is not being used. This will
help us save memory, especially until we are able to enable "DOM Rendering in
GPUProcess".
Note that when the GPUProcess is ready to exit, it sends an IPC to the UIProcess
in order to get terminated, instead of terminating itself. The reason I do this is
so that the UIProcess can distinguish a GPUProcess crash from a normal idle exit.
A/B testing shows:
- 5-8% PLUM3 progression on iPhone
- 2.5-4% PLUM3 progression on iPad
- No PLT5 regression on either iPhone or iPad.
- GPUProcess/GPUConnectionToWebProcess.cpp:
(WebKit::GPUConnectionToWebProcess::GPUConnectionToWebProcess):
(WebKit::GPUConnectionToWebProcess::allowsExitUnderMemoryPressure const):
(WebKit::GPUConnectionToWebProcess::releaseRenderingBackend):
(WebKit::GPUConnectionToWebProcess::releaseGraphicsContextGL):
- GPUProcess/GPUConnectionToWebProcess.h:
(WebKit::GPUConnectionToWebProcess::remoteMediaPlayerManagerProxy):
- GPUProcess/GPUProcess.cpp:
(WebKit::GPUProcess::removeGPUConnectionToWebProcess):
(WebKit::GPUProcess::canExitUnderMemoryPressure const):
(WebKit::GPUProcess::tryExitIfUnusedAndUnderMemoryPressure):
(WebKit::GPUProcess::tryExitIfUnused):
(WebKit::GPUProcess::lowMemoryHandler):
- GPUProcess/GPUProcess.h:
- GPUProcess/graphics/RemoteRenderingBackend.cpp:
(WebKit::RemoteRenderingBackend::allowsExitUnderMemoryPressure const):
- GPUProcess/graphics/RemoteRenderingBackend.h:
- GPUProcess/media/RemoteAudioDestinationManager.cpp:
(WebKit::RemoteAudioDestinationManager::deleteAudioDestination):
(WebKit::RemoteAudioDestinationManager::allowsExitUnderMemoryPressure const):
- GPUProcess/media/RemoteAudioDestinationManager.h:
- GPUProcess/media/RemoteCDMFactoryProxy.cpp:
(WebKit::RemoteCDMFactoryProxy::removeInstance):
(WebKit::RemoteCDMFactoryProxy::allowsExitUnderMemoryPressure const):
- GPUProcess/media/RemoteCDMFactoryProxy.h:
- GPUProcess/media/RemoteImageDecoderAVFProxy.cpp:
(WebKit::RemoteImageDecoderAVFProxy::deleteDecoder):
(WebKit::RemoteImageDecoderAVFProxy::allowsExitUnderMemoryPressure const):
- GPUProcess/media/RemoteImageDecoderAVFProxy.h:
- GPUProcess/media/RemoteLegacyCDMFactoryProxy.cpp:
(WebKit::RemoteLegacyCDMFactoryProxy::removeSession):
(WebKit::RemoteLegacyCDMFactoryProxy::allowsExitUnderMemoryPressure const):
- GPUProcess/media/RemoteLegacyCDMFactoryProxy.h:
- GPUProcess/media/RemoteMediaPlayerManagerProxy.cpp:
(WebKit::RemoteMediaPlayerManagerProxy::deleteMediaPlayer):
(WebKit::RemoteMediaPlayerManagerProxy::allowsExitUnderMemoryPressure const):
- GPUProcess/media/RemoteMediaPlayerManagerProxy.h:
- GPUProcess/webrtc/RemoteAudioMediaStreamTrackRendererManager.cpp:
(WebKit::RemoteAudioMediaStreamTrackRendererManager::allowsExitUnderMemoryPressure const):
- GPUProcess/webrtc/RemoteAudioMediaStreamTrackRendererManager.h:
- GPUProcess/webrtc/RemoteMediaRecorderManager.cpp:
(WebKit::RemoteMediaRecorderManager::releaseRecorder):
(WebKit::RemoteMediaRecorderManager::allowsExitUnderMemoryPressure const):
- GPUProcess/webrtc/RemoteMediaRecorderManager.h:
- GPUProcess/webrtc/RemoteSampleBufferDisplayLayerManager.cpp:
(WebKit::RemoteSampleBufferDisplayLayerManager::allowsExitUnderMemoryPressure const):
- GPUProcess/webrtc/RemoteSampleBufferDisplayLayerManager.h:
- Shared/ProcessTerminationReason.h:
- UIProcess/Cocoa/UserMediaCaptureManagerProxy.cpp:
(WebKit::UserMediaCaptureManagerProxy::hasSourceProxies const):
- UIProcess/Cocoa/UserMediaCaptureManagerProxy.h:
- UIProcess/GPU/GPUProcessProxy.cpp:
(WebKit::GPUProcessProxy::gpuProcessExited):
(WebKit::GPUProcessProxy::processIsReadyToExit):
(WebKit::GPUProcessProxy::didClose):
(WebKit::GPUProcessProxy::didFinishLaunching):
- UIProcess/GPU/GPUProcessProxy.h:
- UIProcess/GPU/GPUProcessProxy.messages.in:
- UIProcess/PageClient.h:
(WebKit::PageClient::gpuProcessDidExit):
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::gpuProcessExited):
- UIProcess/WebPageProxy.h:
- UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::gpuProcessExited):
- UIProcess/WebProcessPool.h:
- UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::gpuProcessExited):
- UIProcess/WebProcessProxy.h:
- UIProcess/ios/PageClientImplIOS.h:
- UIProcess/ios/PageClientImplIOS.mm:
(WebKit::PageClientImpl::gpuProcessDidExit):
- UIProcess/ios/WKContentView.h:
- UIProcess/ios/WKContentView.mm:
(-[WKContentView _gpuProcessDidExit]):
Tools:
Add API test coverage.
- TestWebKitAPI/Tests/WebKitCocoa/GPUProcess.mm:
(runMemoryPressureExitTest):
(TEST):
- 11:17 AM Changeset in webkit [276147] by
-
- 4 edits in trunk/Source/WebCore
Unreviewed GTK / WinCairo build fix after Antoine's r276141.
Just add the BlendingContext constructor this time because there are too many build failures.
- animation/CSSPropertyAnimation.cpp:
(WebCore::CSSPropertyBlendingContext::CSSPropertyBlendingContext):
(WebCore::CSSPropertyBlendingContext::client): Deleted.
- platform/animation/AnimationUtilities.h:
(WebCore::BlendingContext::BlendingContext):
- platform/graphics/nicosia/NicosiaAnimation.cpp:
(Nicosia::blendFunc):
(Nicosia::applyTransformAnimation):
- 11:07 AM Changeset in webkit [276146] by
-
- 12 edits in trunk/Source/WebInspectorUI
Web Inspector: Uncaught Exception: null is not an object (evaluating 'this._listeners.get')
https://bugs.webkit.org/show_bug.cgi?id=224651
Reviewed by BJ Burg.
- UserInterface/Base/Object.js:
(WI.Object.removeEventListener):
Add early-return checks just in case_listeners
orlistenersForEventType
is falsy. While
ideally it would be the case that these would never be falsy, the logic of Web Inspector is
complex and far reaching, so better safe than sorry.
- UserInterface/Views/TreeElement.js:
(WI.TreeElement.prototype._detach):
- UserInterface/Views/AuditTreeElement.js:
(WI.AuditTreeElement.prototype.ondetach):
- UserInterface/Views/BootstrapScriptTreeElement.js:
(WI.BootstrapScriptTreeElement.prototype.ondetach):
- UserInterface/Views/BreakpointTreeElement.js:
(WI.BreakpointTreeElement.prototype.ondetach):
- UserInterface/Views/DOMTreeElement.js:
(WI.DOMTreeElement.prototype.ondetach):
- UserInterface/Views/FrameTreeElement.js:
(WI.FrameTreeElement.prototype.ondetach):
- UserInterface/Views/JavaScriptBreakpointTreeElement.js:
(WI.JavaScriptBreakpointTreeElement.prototype.ondetach):
- UserInterface/Views/LocalResourceOverrideTreeElement.js:
(WI.LocalResourceOverrideTreeElement.prototype.ondetach):
- UserInterface/Views/ShaderProgramTreeElement.js:
(WI.ShaderProgramTreeElement.prototype.ondetach):
- UserInterface/Views/WebSocketResourceTreeElement.js:
(WI.WebSocketResourceTreeElement.prototype.ondetach):
Add FIXME comments warning of this issue so that future changes can take it into account.
<https://webkit.org/b/224652> (Web Inspector: Tree Outlines:ondetach
can be called withoutonattach
ever being called)
- 11:02 AM Changeset in webkit [276145] by
-
- 7 edits in trunk/Source/WebKit
Early IPC messages to a WorkQueueMessageReceiver may get processed out of order
https://bugs.webkit.org/show_bug.cgi?id=224623
Reviewed by Geoffrey Garen.
Bug 224566 exposed an issue where early IPC being sent to WorkQueueMessageReceiver might get received
out of order. The reason behind it is that the WorkQueueMessageReceiver registers itself on the main
thread while we receive the IPC on the IPC thread. When we receive the IPC on the IPC thread, we check
if there is a WorkQueueMessageReceiver for it and if there is, we dispatch the message straight to its
WorkQueue. However, if the WorkQueueMessageReceiver has not registered itself yet on the main thread,
we hop to the main thread first, before dispatching the IPC back to the receiver's WorkQueue. The
extra hop to the main thread means that 2 IPC messages to the WorkQueueMessageReceiver sent one after
the other may get dispatched on the WorkQueue in an inconsistent order, if the WorkQueueMessageReceiver
registers itself as a receiver in between the 2 IPC messages.
We actually were trying to deal with this issue in Connection::addWorkQueueMessageReceiver(). When
the WorkQueueMessageReceiver would register itself on the main thread, we would grab the incomingMessages
lock and check m_incomingMessages for messages that should be dispatched to the WorkQueue. Those are
async messages that should have been dispatched straight to the WorkQueue on the IPC thread but didn't
because the WorkQueueMessageReceiver has not registered itself yet.
However, this logic in Connection::addWorkQueueMessageReceiver() was insufficient because it only checked
m_incomingMessages. m_incomingMessages only contains async messages. Sync messages (and special async
messages with the IPC::SendOption::DispatchMessageEvenWhenWaitingForSyncReply flag) are stored in
Connection::SyncMessageState::m_messagesToDispatchWhileWaitingForSyncReply. This is what was causing
Bug 224566 since RemoteRenderingBackendProxy's CreateImageBuffer IPC was async with the
DispatchMessageEvenWhenWaitingForSyncReply flag and its GetDataURLForImageBuffer was synchronous. The
ordering of these 2 IPC messages could get reversed and it would cause correctness issues and flaky
crashes.
To address the issue, I updated Connection::addWorkQueueMessageReceiver() to ask the
Connection::SyncMessageState to enqueue its matching messages to the WorkQueue. There was one issue
though because Connection::SyncMessageState::dispatchMessagesAndResetDidScheduleDispatchMessagesForConnection()
was taking messages out of m_messagesToDispatchWhileWaitingForSyncReply and storing them in a local
container and then iterating over this container to dispatch the messages. The dispatching of one
of these messages could cause a WorkQueueMessageReceiver to register itself (call addWorkQueueMessageReceiver()).
When this would happen, addWorkQueueMessageReceiver() would try and enqueue matching messages in
m_messagesToDispatchWhileWaitingForSyncReply and would miss the messages in the local container
that dispatchMessagesAndResetDidScheduleDispatchMessagesForConnection() is currently iterating on.
To address this issue, I introduced a new m_messagesBeingDispatched data member and used that to
store the messages being dispatched instead of the local container. As a result,
addWorkQueueMessageReceiver() can now enqueue the messages in m_messagesBeingDispatched first and
then enqueue the ones in m_messagesToDispatchWhileWaitingForSyncReply.
- GPUProcess/GPUConnectionToWebProcess.cpp:
(WebKit::GPUConnectionToWebProcess::createRenderingBackend):
- GPUProcess/GPUConnectionToWebProcess.h:
- GPUProcess/GPUConnectionToWebProcess.messages.in:
- WebProcess/GPU/graphics/RemoteRenderingBackendProxy.cpp:
(WebKit::RemoteRenderingBackendProxy::ensureGPUProcessConnection):
Revert r276007 that was committed as a temporary workaround for this bug.
- Platform/IPC/Connection.cpp:
(IPC::Connection::SyncMessageState::enqueueMatchingMessages):
Add utility function to SyncMessageState to enqueue its matching messages in m_messagesBeingDispatched
and m_messagesToDispatchWhileWaitingForSyncReply to the provided MessageReceiveQueue. This is called
by Connection::addMessageReceiveQueue(). The logic is similar to the one in the
enqueueMatchingMessagesToMessageReceiveQueue() function but works on a Deque<ConnectionAndIncomingMessage>
instead of a Deque<std::unique_ptr<Decoder>>.
(IPC::Connection::SyncMessageState::dispatchMessages):
(IPC::Connection::SyncMessageState::dispatchMessagesAndResetDidScheduleDispatchMessagesForConnection):
Use m_messagesBeingDispatched instead of a local container to store the messages we are about to
dispatch. This allows enqueueMatchingMessages() to check those messages to see if they should be
dispatched to a MessageReceiveQueue. We also need to make sure we don't iterate over
m_messagesBeingDispatched to call dispatch() on the messages. This is important because any message
dispatch may cause a WorkQueueMessageReceiver to register itself, which would call
enqueueMatchingMessages() and potentially extract matching messages from m_messagesBeingDispatched.
For this reason, we take messages from m_messagesBeingDispatched one by one, until the container
becomes empty.
(IPC::Connection::addMessageReceiveQueue):
(IPC::Connection::addWorkQueueMessageReceiver):
(IPC::Connection::addThreadMessageReceiver):
- This used to only check m_incomingMessages for matching messages that should be enqueued on the MessageReceiveQueue in order to preserve IPC ordering. This was insufficient because it would fail to consider sync IPC messages (or async IPC messages with the IPC::SendOption::DispatchMessageEvenWhenWaitingForSyncReply flag). Since those are stored in separate containers in Connection::SyncMessageState, we now also call Connection::SyncMessageState::enqueueMatchingMessages() to enqueue those messages and preserve their ordering too. This fixes IPC ordering bug identified via Bug 224566.
- Avoid some code duplication by moving more logic to a shared enqueueMatchingMessagesToMessageReceiveQueue() function. The function is no longer templated because I don't think it is worth increasing binary size just to avoid the virtual enqueueMessage() function call on the MessageReceiverQueue. We do not register message receivers very often and then only have a few early messages at most to enqueue.
- 10:53 AM Changeset in webkit [276144] by
-
- 2 edits in trunk/Source/WebInspectorUI
Web Inspector: Sources: don't show the create local override contextmenu if the navigation item is disabled
https://bugs.webkit.org/show_bug.cgi?id=224647
Reviewed by BJ Burg.
- UserInterface/Views/ResourceContentView.js:
(WI.ResourceContentView.prototype._populateCreateLocalResourceOverrideContextMenu):
- 10:51 AM Changeset in webkit [276143] by
-
- 2 edits in trunk/Source/WebCore
Unreviewed attempt to fix GTK's build after Antoine's r276141.
- platform/graphics/nicosia/NicosiaAnimation.cpp:
(Nicosia::blendFunc):
(Nicosia::applyTransformAnimation):
- 10:23 AM Changeset in webkit [276142] by
-
- 2 edits in trunk/Source/WebCore
Unreviewed build fix after Antoine's r276141.
- animation/CSSPropertyAnimation.cpp:
(WebCore::CSSPropertyBlendingContext::CSSPropertyBlendingContext):
- 9:55 AM Changeset in webkit [276141] by
-
- 40 edits in trunk/Source/WebCore
Refactor parameters to blending functions
https://bugs.webkit.org/show_bug.cgi?id=224433
Reviewed by Dean Jackson.
Reduce the number of parameters passed to the blending functions such that we package
the client and progress together and track whether the animation is discrete instead
of computing it several times. This information is now passed as a BlendingContext
parameter, and a CSSPropertyBlendingContext private to CSSPropertyAnimation.
When we support composite operations, we'll just need to add a new member to that
struct instead of modifying all the method signatures.
Since we are modifying the method signatures, we also change the RenderStyle pointers
to references since we would never pass in a null value.
- animation/CSSPropertyAnimation.cpp:
(WebCore::CSSPropertyBlendingContext::CSSPropertyBlendingContext):
(WebCore::blendFunc):
(WebCore::blendFilterOperations):
(WebCore::blendFilter):
(WebCore::crossfadeBlend):
(WebCore::AnimationPropertyWrapperBase::canInterpolate const):
(WebCore::PropertyWrapperGetter::value const):
(WebCore::canInterpolateCaretColor):
(WebCore::CSSPropertyAnimation::blendProperties):
(WebCore::CSSPropertyAnimation::propertiesEqual):
(WebCore::CSSPropertyAnimation::canPropertyBeInterpolated):
- animation/CSSPropertyAnimation.h:
- animation/KeyframeEffect.cpp:
(WebCore::KeyframeEffect::setAnimatedPropertiesInStyle):
- css/CSSCrossfadeValue.cpp:
(WebCore::blendFunc):
(WebCore::CSSCrossfadeValue::blend const):
- css/CSSCrossfadeValue.h:
- css/CSSGradientValue.cpp:
(WebCore::RadialGradientAdapter::normalizeStopsAndEndpointsOutsideRange):
(WebCore::ConicGradientAdapter::normalizeStopsAndEndpointsOutsideRange):
(WebCore::CSSGradientValue::computeStops):
- platform/Length.cpp:
(WebCore::blendMixedTypes):
(WebCore::blend):
- platform/Length.h:
- platform/LengthPoint.h:
(WebCore::blend):
- platform/LengthSize.h:
(WebCore::blend):
- platform/animation/AnimationUtilities.h:
(WebCore::blend):
- platform/graphics/ColorBlending.cpp:
(WebCore::blend):
(WebCore::blendWithoutPremultiply):
- platform/graphics/ColorBlending.h:
- platform/graphics/ca/cocoa/PlatformCAFiltersCocoa.mm:
(WebCore::PlatformCAFilters::colorMatrixValueForFilter):
- platform/graphics/filters/FilterOperation.cpp:
(WebCore::BasicColorMatrixFilterOperation::blend):
(WebCore::BasicComponentTransferFilterOperation::blend):
(WebCore::InvertLightnessFilterOperation::blend):
(WebCore::BlurFilterOperation::blend):
(WebCore::DropShadowFilterOperation::blend):
- platform/graphics/filters/FilterOperation.h:
(WebCore::FilterOperation::blend):
- platform/graphics/transforms/IdentityTransformOperation.h:
- platform/graphics/transforms/Matrix3DTransformOperation.cpp:
(WebCore::createOperation):
(WebCore::Matrix3DTransformOperation::blend):
- platform/graphics/transforms/Matrix3DTransformOperation.h:
- platform/graphics/transforms/MatrixTransformOperation.cpp:
(WebCore::MatrixTransformOperation::blend):
- platform/graphics/transforms/MatrixTransformOperation.h:
- platform/graphics/transforms/PerspectiveTransformOperation.cpp:
(WebCore::PerspectiveTransformOperation::blend):
- platform/graphics/transforms/PerspectiveTransformOperation.h:
- platform/graphics/transforms/RotateTransformOperation.cpp:
(WebCore::RotateTransformOperation::blend):
- platform/graphics/transforms/RotateTransformOperation.h:
- platform/graphics/transforms/ScaleTransformOperation.cpp:
(WebCore::ScaleTransformOperation::blend):
- platform/graphics/transforms/ScaleTransformOperation.h:
- platform/graphics/transforms/SkewTransformOperation.cpp:
(WebCore::SkewTransformOperation::blend):
- platform/graphics/transforms/SkewTransformOperation.h:
- platform/graphics/transforms/TransformOperation.h:
- platform/graphics/transforms/TransformOperations.cpp:
(WebCore::TransformOperations::blendByMatchingOperations const):
(WebCore::TransformOperations::blendByUsingMatrixInterpolation const):
(WebCore::TransformOperations::blend const):
- platform/graphics/transforms/TransformOperations.h:
- platform/graphics/transforms/TranslateTransformOperation.cpp:
(WebCore::TranslateTransformOperation::blend):
- platform/graphics/transforms/TranslateTransformOperation.h:
- rendering/style/BasicShapes.cpp:
(WebCore::BasicShapeCircle::blend const):
(WebCore::BasicShapeEllipse::blend const):
(WebCore::BasicShapePolygon::blend const):
(WebCore::BasicShapePath::blend const):
(WebCore::BasicShapeInset::blend const):
- rendering/style/BasicShapes.h:
(WebCore::BasicShapeCenterCoordinate::blend const):
(WebCore::BasicShapeRadius::blend const):
- style/Styleable.cpp:
(WebCore::propertyInStyleMatchesValueForTransitionInMap):
(WebCore::updateCSSTransitionsForStyleableAndProperty):
- svg/SVGLengthValue.cpp:
(WebCore::SVGLengthValue::blend):
- svg/SVGPathBlender.cpp:
(WebCore::blendFloatPoint):
(WebCore::SVGPathBlender::blendAnimatedDimensonalFloat):
(WebCore::SVGPathBlender::blendArcToSegment):
- 9:50 AM Changeset in webkit [276140] by
-
- 3 edits in branches/safari-611-branch/Source/WebCore
Apply patch. rdar://problem/76375504
- 9:15 AM Changeset in webkit [276139] by
-
- 3 edits in trunk/Tools
[ews] Improve step description when layout-tests step is skipped
https://bugs.webkit.org/show_bug.cgi?id=224666
Reviewed by Jonathan Bedard.
- CISupport/ews-build/steps.py:
(RunWebKitTests.getResultSummary):
- CISupport/ews-build/steps_unittest.py: Updated unit-tests.
- 8:46 AM Changeset in webkit [276138] by
-
- 25 edits in trunk
Blend using calc() when necessary
https://bugs.webkit.org/show_bug.cgi?id=224670
Reviewed by Antti Koivisto.
LayoutTests/imported/w3c:
Mark 141 WPT progressions.
- web-platform-tests/css/css-backgrounds/animations/background-position-interpolation-expected.txt:
- web-platform-tests/css/css-backgrounds/animations/background-position-origin-interpolation-expected.txt:
- web-platform-tests/css/css-backgrounds/animations/border-image-width-interpolation-expected.txt:
- web-platform-tests/css/css-backgrounds/animations/border-radius-interpolation-expected.txt:
- web-platform-tests/css/css-flexbox/animation/flex-basis-composition-expected.txt:
- web-platform-tests/css/css-position/animations/bottom-composition-expected.txt:
- web-platform-tests/css/css-position/animations/left-composition-expected.txt:
- web-platform-tests/css/css-position/animations/right-composition-expected.txt:
- web-platform-tests/css/css-position/animations/top-composition-expected.txt:
- web-platform-tests/css/css-shapes/animation/shape-margin-composition-expected.txt:
- web-platform-tests/css/css-sizing/animation/height-composition-expected.txt:
- web-platform-tests/css/css-sizing/animation/max-height-composition-expected.txt:
- web-platform-tests/css/css-sizing/animation/max-width-composition-expected.txt:
- web-platform-tests/css/css-sizing/animation/min-height-composition-expected.txt:
- web-platform-tests/css/css-sizing/animation/min-width-composition-expected.txt:
- web-platform-tests/css/css-transitions/animations/vertical-align-composition-expected.txt:
- web-platform-tests/css/css-transitions/animations/vertical-align-interpolation-expected.txt:
- web-platform-tests/css/css-values/animations/calc-interpolation-expected.txt:
- web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-001-expected.txt:
Source/WebCore:
We need to blend between lengths when their types are not the same. However, we would take
some shortcuts in the following cases and blend using just one value:
- either the from or to value was a 0 value,
- progress was 0 or 1.
Now we use the mixed types code path if the types are different or either the from or to
value is a calculated value. The single exception where we don't actually end up generating
a CalculationValue is when we know that one of the two values is 0 and not a percentage, in
which case we run a simple blend.
Due to this approach, we stopped returning the value as-is in some cases where progress was
0 or 1. To avoid regressions in this area, we made the LengthBoxPropertyWrapper clone the from
or to value in the discrete case, as some other areas of the code do not know how to deal with
calculated Length values, for instance valueForImageSliceSide(const Length&).
- animation/CSSPropertyAnimation.cpp:
- platform/Length.cpp:
(WebCore::blendMixedTypes):
(WebCore::blend):
- platform/LengthBox.h:
(WebCore::LengthBox::LengthBox):
- platform/RectEdges.h:
(WebCore::RectEdges::RectEdges):
- 8:33 AM Changeset in webkit [276137] by
-
- 2 edits in trunk/Source/WebCore
[RenderTreeBuilder] Do not try to collapse anonymous blocks when cleaning up the first-letter subtree
https://bugs.webkit.org/show_bug.cgi?id=224667
<rdar://76616098>
Reviewed by Antti Koivisto.
We construct a dedicated renderer for the first letter content and in some cases wrap it into an anonymous block.
This subtree needs to be destroyed when the associated RenderText is getting deleted. During this cleanup process
we may find the wrapper anonymous block redundant and initiate a sibling block collapsing. However this collapsing
may interfere with the initial delete (the associated RenderText) and lead to unexpected result.
Let's reserve the anonymous collapsing for the initial remove.
- rendering/updating/RenderTreeBuilderFirstLetter.cpp:
(WebCore::RenderTreeBuilder::FirstLetter::cleanupOnDestroy):
- 7:41 AM Changeset in webkit [276136] by
-
- 2 edits in trunk/Source/WebKit
[SOUP] Show resource priority and remote IP in the inspector
https://bugs.webkit.org/show_bug.cgi?id=224660
Reviewed by Adrian Perez de Castro.
- NetworkProcess/soup/NetworkDataTaskSoup.cpp:
(WebKit::toNetworkLoadPriority):
(WebKit::NetworkDataTaskSoup::didGetHeaders):
(WebKit::NetworkDataTaskSoup::networkEvent):
- 6:35 AM Changeset in webkit [276135] by
-
- 3 edits2 adds in trunk
[IFC] Incorrect box height when scrollbar takes padding box space
https://bugs.webkit.org/show_bug.cgi?id=224546
<rdar://problem/76666402>
Reviewed by Antti Koivisto.
Source/WebCore:
This patch fixes the case when a non-overlay scrollbar can't be accomodated in the padding/content box area (e.g <div style="height: 10px; overflow: scroll">...)
In the legacy render tree the non-overlay scrollbar size is already taken into account when calling RenderBox::contentWidth/Height (paddingBoxHeight/Width), so
we just have to check how much space they actully take (currently maximum of 15px).
Test: fast/inline-block/non-overlay-scrollbar-incorrect-padding.html
- layout/integration/LayoutIntegrationLineLayout.cpp:
(WebCore::LayoutIntegration::LineLayout::updateLayoutBoxDimensions):
LayoutTests:
- fast/inline-block/non-overlay-scrollbar-incorrect-padding-expected.txt: Added.
- fast/inline-block/non-overlay-scrollbar-incorrect-padding.html: Added.
- 6:08 AM Changeset in webkit [276134] by
-
- 3 edits in trunk/LayoutTests
[GLIB] Unreviewed test gardenind. Gardened several flaky failures.
- platform/glib/TestExpectations:
- platform/gtk/TestExpectations:
- 4:09 AM Changeset in webkit [276133] by
-
- 3 edits in trunk/Source/WebCore
Deploy Ref/RefPtr in ApplyStyleCommand
https://bugs.webkit.org/show_bug.cgi?id=224662
Reviewed by Antti Koivisto.
Deployed smart pointers in ApplyStyleCommand. Also deployed ScriptDisallowedScope around the code
which accesses the render tree in ApplyStyleCommand::applyInlineStyleToPushDown.
- editing/ApplyStyleCommand.cpp:
(WebCore::ApplyStyleCommand::applyRelativeFontStyleChange):
(WebCore::dummySpanAncestorForNode):
(WebCore::ApplyStyleCommand::cleanupUnstyledAppleStyleSpans):
(WebCore::ApplyStyleCommand::splitAncestorsWithUnicodeBidi):
(WebCore::ApplyStyleCommand::removeEmbeddingUpToEnclosingBlock):
(WebCore::highestEmbeddingAncestor):
(WebCore::ApplyStyleCommand::applyInlineStyle):
(WebCore::ApplyStyleCommand::fixRangeAndApplyInlineStyle):
(WebCore::containsNonEditableRegion):
(WebCore::ApplyStyleCommand::applyInlineStyleToNodeRange):
(WebCore::ApplyStyleCommand::shouldApplyInlineStyleToRun):
(WebCore::ApplyStyleCommand::highestAncestorWithConflictingInlineStyle):
(WebCore::ApplyStyleCommand::applyInlineStyleToPushDown):
(WebCore::ApplyStyleCommand::pushDownInlineStyleAroundNode):
(WebCore::ApplyStyleCommand::removeInlineStyle):
(WebCore::ApplyStyleCommand::mergeStartWithPreviousIfIdentical):
(WebCore::ApplyStyleCommand::mergeEndWithNextIfIdentical):
(WebCore::ApplyStyleCommand::surroundNodeRangeWithElement):
(WebCore::ApplyStyleCommand::applyInlineStyleChange):
(WebCore::ApplyStyleCommand::joinChildTextNodes):
- editing/ApplyStyleCommand.h:
- 3:32 AM Changeset in webkit [276132] by
-
- 4 edits2 deletes in branches/safari-611-branch
Revert "Cherry-pick r275277. rdar://problem/76375504"
This reverts commit r276126.
- 3:21 AM Changeset in webkit [276131] by
-
- 6 edits in trunk/Source/WebCore
Deploy Ref/RefPtr/WeakPtr in EditCommand and CompositeEditCommand
https://bugs.webkit.org/show_bug.cgi?id=224659
Reviewed by Antti Koivisto.
Deployed Ref/RefPtr/WeakPtr across CompositeEditCommand and EditCommand.
Also wrapped sections of code that access render tree with ScriptDisallowedScope.
- editing/CompositeEditCommand.cpp:
(WebCore::postTextStateChangeNotification):
(WebCore::CompositeEditCommand::ensureComposition):
(WebCore::CompositeEditCommand::isRemovableBlock): Let a raw pointer to the parent node here
since the only thing we do is to call hasOneChild on it.
(WebCore::CompositeEditCommand::insertNodeBefore):
(WebCore::CompositeEditCommand::insertNodeAfter):
(WebCore::CompositeEditCommand::insertNodeAt):
(WebCore::CompositeEditCommand::removeChildrenInRange):
(WebCore::CompositeEditCommand::replaceElementWithSpanPreservingChildrenAndAttributes):
(WebCore::CompositeEditCommand::positionOutsideTabSpan):
(WebCore::CompositeEditCommand::textNodeForRebalance const): Renamed from canRebalance and
now returns the text node after downcasting so that rebalanceWhitespaceAt doesn't need to have
a lone downcast without a type check.
(WebCore::CompositeEditCommand::rebalanceWhitespaceAt):
(WebCore::CompositeEditCommand::rebalanceWhitespaceOnTextSubstring):
(WebCore::CompositeEditCommand::prepareWhitespaceAtPositionForSplit):
(WebCore::CompositeEditCommand::deleteInsignificantText):
(WebCore::CompositeEditCommand::addBlockPlaceholderIfNeeded):
(WebCore::CompositeEditCommand::cloneParagraphUnderNewElement):
(WebCore::CompositeEditCommand::moveParagraphs):
- editing/CompositeEditCommand.h:
(WebCore::CompositeEditCommand): Now inherits from CanMakeWeakPtr.
(WebCore::toCompositeEditCommand): Deleted.
- editing/EditCommand.cpp:
(WebCore::EditCommand::EditCommand): Initialize m_startingSelection and m_endingSelection directly
since setStartingSelection and setEndingSelection now stores "this" pointer in RefPtr.
There is no behavior difference since m_parent and CompositeEditCommand::m_composition if applicable
are both nullptr at this point.
(WebCore::compositionIfPossible):
(WebCore::EditCommand::isEditingTextAreaOrTextInput const): Use enclosingTextFormControl instead
of duplicating the code here.
(WebCore::EditCommand::setStartingSelection):
(WebCore::EditCommand::setEndingSelection):
(WebCore::EditCommand::setParent):
(WebCore::EditCommand::postTextStateChangeNotification):
- editing/EditCommand.h:
(WebCore::EditCommand::parent const):
- editing/InsertTextCommand.cpp:
(WebCore::InsertTextCommand::doApply):
- 3:13 AM Changeset in webkit [276130] by
-
- 2 edits in trunk/JSTests
[JSC][ARMv7] Unskip stress/put-direct-index-broken-2.js
https://bugs.webkit.org/show_bug.cgi?id=224661
Unreviewed test gardening.
Patch by Xan Lopez <Xan Lopez> on 2021-04-16
- stress/put-direct-index-broken-2.js: unskip on ARMv7, could not
reproduce locally the crash we saw earlier.
- 2:43 AM Changeset in webkit [276129] by
-
- 2 edits in trunk
[CMake] UBSan build fixes
https://bugs.webkit.org/show_bug.cgi?id=224536
Patch by Philippe Normand <pnormand@igalia.com> on 2021-04-16
Reviewed by Adrian Perez de Castro.
Synchronize UBSan compiler flags with the ones defined in ubsan.xcconfig.
- Source/cmake/WebKitCompilerFlags.cmake:
- 2:04 AM Changeset in webkit [276128] by
-
- 3 edits in trunk/Tools
Avoid converting HTML chars in _W3CTestConverter
https://bugs.webkit.org/show_bug.cgi?id=224658
Reviewed by Adrian Perez de Castro.
There has been a change in Python HTMLParser in version 3.5 that makes convert_charrefs to be True by default:
https://docs.python.org/3/library/html.parser.html
This is causing that we're modifying the tests that have HTML characters, which is something
we shouldn't change and was not happening in previous Python 3 versions, or Python 2.
- Scripts/webkitpy/w3c/test_converter.py:
(_W3CTestConverter.init): Set convert_charrefs to False.
- Scripts/webkitpy/w3c/test_converter_unittest.py: Update test to include HTML chars and check that they're not modified.
- 1:53 AM Changeset in webkit [276127] by
-
- 27 edits12 copies26 adds in trunk/LayoutTests
[selectors] Update :focus-visible tests from WPT
https://bugs.webkit.org/show_bug.cgi?id=224601
Reviewed by Darin Adler.
LayoutTests/imported/w3c:
- web-platform-tests/css/selectors/focus-visible-001.html:
- web-platform-tests/css/selectors/focus-visible-002-expected.txt:
- web-platform-tests/css/selectors/focus-visible-002.html:
- web-platform-tests/css/selectors/focus-visible-003-expected.txt:
- web-platform-tests/css/selectors/focus-visible-003.html:
- web-platform-tests/css/selectors/focus-visible-004-expected.txt:
- web-platform-tests/css/selectors/focus-visible-004.html:
- web-platform-tests/css/selectors/focus-visible-005.html:
- web-platform-tests/css/selectors/focus-visible-006-expected.txt:
- web-platform-tests/css/selectors/focus-visible-006.html:
- web-platform-tests/css/selectors/focus-visible-008.html:
- web-platform-tests/css/selectors/focus-visible-009.html:
- web-platform-tests/css/selectors/focus-visible-010.html:
- web-platform-tests/css/selectors/focus-visible-011.html:
- web-platform-tests/css/selectors/focus-visible-012.html:
- web-platform-tests/css/selectors/focus-visible-013.html:
- web-platform-tests/css/selectors/focus-visible-014.html:
- web-platform-tests/css/selectors/focus-visible-015.html:
- web-platform-tests/css/selectors/focus-visible-016.html:
- web-platform-tests/css/selectors/focus-visible-017.html:
- web-platform-tests/css/selectors/focus-visible-018.html:
- web-platform-tests/css/selectors/focus-visible-019.html:
- web-platform-tests/css/selectors/focus-visible-script-focus-001-expected.txt: Added.
- web-platform-tests/css/selectors/focus-visible-script-focus-001.html: Added.
- web-platform-tests/css/selectors/focus-visible-script-focus-002.tentative-expected.txt: Added.
- web-platform-tests/css/selectors/focus-visible-script-focus-002.tentative.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/selectors/focus-visible-019.html.
- web-platform-tests/css/selectors/focus-visible-script-focus-003.tentative-expected.txt: Added.
- web-platform-tests/css/selectors/focus-visible-script-focus-003.tentative.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/selectors/focus-visible-019.html.
- web-platform-tests/css/selectors/focus-visible-script-focus-004-expected.txt: Added.
- web-platform-tests/css/selectors/focus-visible-script-focus-004.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/selectors/focus-visible-019.html.
- web-platform-tests/css/selectors/focus-visible-script-focus-005-expected.txt: Added.
- web-platform-tests/css/selectors/focus-visible-script-focus-005.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/selectors/focus-visible-019.html.
- web-platform-tests/css/selectors/focus-visible-script-focus-006.tentative-expected.txt: Added.
- web-platform-tests/css/selectors/focus-visible-script-focus-006.tentative.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/selectors/focus-visible-019.html.
- web-platform-tests/css/selectors/focus-visible-script-focus-007.tentative-expected.txt: Added.
- web-platform-tests/css/selectors/focus-visible-script-focus-007.tentative.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/selectors/focus-visible-019.html.
- web-platform-tests/css/selectors/focus-visible-script-focus-008-expected.txt: Added.
- web-platform-tests/css/selectors/focus-visible-script-focus-008.html: Added.
- web-platform-tests/css/selectors/focus-visible-script-focus-009-expected.txt: Added.
- web-platform-tests/css/selectors/focus-visible-script-focus-009.html: Added.
- web-platform-tests/css/selectors/focus-visible-script-focus-010-expected.txt: Added.
- web-platform-tests/css/selectors/focus-visible-script-focus-010.html: Added.
- web-platform-tests/css/selectors/focus-visible-script-focus-011-expected.txt: Added.
- web-platform-tests/css/selectors/focus-visible-script-focus-011.html: Added.
- web-platform-tests/css/selectors/focus-visible-script-focus-012-expected.txt: Added.
- web-platform-tests/css/selectors/focus-visible-script-focus-012.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/selectors/focus-visible-019.html.
- web-platform-tests/css/selectors/focus-visible-script-focus-013-expected.txt: Added.
- web-platform-tests/css/selectors/focus-visible-script-focus-013.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/selectors/focus-visible-019.html.
- web-platform-tests/css/selectors/focus-visible-script-focus-014-expected.txt: Added.
- web-platform-tests/css/selectors/focus-visible-script-focus-014.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/selectors/focus-visible-019.html.
- web-platform-tests/css/selectors/focus-visible-script-focus-015-expected.txt: Added.
- web-platform-tests/css/selectors/focus-visible-script-focus-015.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/selectors/focus-visible-019.html.
- web-platform-tests/css/selectors/focus-visible-script-focus-016.tentative-expected.txt: Added.
- web-platform-tests/css/selectors/focus-visible-script-focus-016.tentative.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/selectors/focus-visible-019.html.
- web-platform-tests/css/selectors/focus-visible-script-focus-017.tentative-expected.txt: Added.
- web-platform-tests/css/selectors/focus-visible-script-focus-017.tentative.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/selectors/focus-visible-019.html.
- web-platform-tests/css/selectors/focus-visible-script-focus-018-expected.txt: Added.
- web-platform-tests/css/selectors/focus-visible-script-focus-018.html: Added.
- web-platform-tests/css/selectors/focus-visible-script-focus-019-expected.txt: Added.
- web-platform-tests/css/selectors/focus-visible-script-focus-019.html: Added.
- web-platform-tests/css/selectors/w3c-import.log:
LayoutTests:
Mark failures. They'll be gone once bug #224598 is fixed.
- platform/ios/TestExpectations:
- platform/mac/TestExpectations:
- 1:53 AM Changeset in webkit [276126] by
-
- 4 edits2 adds in branches/safari-611-branch
Cherry-pick r275277. rdar://problem/76375504
Animated pseudo element style resolved against wrong parent style
https://bugs.webkit.org/show_bug.cgi?id=223990
rdar://74997361
Reviewed by Antoine Quint.
Source/WebCore:
In createAnimatedElementUpdate we get the parent and parent box styles from the parent stack.
This is wrong for pseudo elements. Their parent style should the host style which is not pushed to the stack.
This matters in style adjuster which may apply wrong adjustments as a result.
Test: fast/animation/pseudo-element-style-adjuster.html
- style/StyleTreeResolver.cpp: (WebCore::Style::TreeResolver::resolveElement): (WebCore::Style::TreeResolver::resolvePseudoStyle): (WebCore::Style::TreeResolver::createAnimatedElementUpdate):
Make static and provide the parent and parent box styles as parameters.
- style/StyleTreeResolver.h:
LayoutTests:
- fast/animation/pseudo-element-style-adjuster-expected.html: Added.
- fast/animation/pseudo-element-style-adjuster.html: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@275277 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 1:47 AM Changeset in webkit [276125] by
-
- 9 edits in trunk
Promote WKWebView device orientation permission delegate to API
https://bugs.webkit.org/show_bug.cgi?id=223919
Reviewed by Alex Christensen.
Source/WebKit:
Move corresponding SPI to API.
Introduce WK_API_UNAVAILABLE to make that API not available in certain OSes.
Covered by existing tests.
- Scripts/postprocess-header-rule:
- Shared/API/Cocoa/WKFoundation.h:
- UIProcess/API/Cocoa/WKUIDelegate.h:
- UIProcess/API/Cocoa/WKUIDelegatePrivate.h:
- UIProcess/Cocoa/UIDelegate.mm:
(WebKit::UIDelegate::setDelegate):
(WebKit::UIDelegate::UIClient::shouldAllowDeviceOrientationAndMotionAccess):
Tools:
- TestWebKitAPI/Tests/WebKitCocoa/DeviceOrientation.mm:
(-[DeviceOrientationPermissionUIDelegate webView:requestDeviceOrientationAndMotionPermissionForOrigin:initiatedByFrame:decisionHandler:]):
(-[DeviceOrientationPermissionValidationDelegate webView:requestDeviceOrientationAndMotionPermissionForOrigin:initiatedByFrame:decisionHandler:]):
- TestWebKitAPI/Tests/WebKitCocoa/WebsitePolicies.mm:
(-[WebsitePoliciesDeviceOrientationUIDelegate webView:requestDeviceOrientationAndMotionPermissionForOrigin:initiatedByFrame:decisionHandler:]):
- 1:39 AM Changeset in webkit [276124] by
-
- 2 edits in trunk/Source/WebCore
Remove a no longer necessary callOnMainThread in Worker::createRTCRtpScriptTransformer
https://bugs.webkit.org/show_bug.cgi?id=224539
Reviewed by Darin Adler.
- workers/Worker.cpp:
(WebCore::Worker::createRTCRtpScriptTransformer):
ThreadSafeRefCounted already handles it with the DestructionThread::Main option.
- 1:31 AM Changeset in webkit [276123] by
-
- 4 edits2 deletes in branches/safari-611-branch
Revert "Cherry-pick r275277. rdar://problem/76375504"
This reverts commit r276080.
- 12:48 AM Changeset in webkit [276122] by
-
- 2 edits in trunk/LayoutTests
[GLIB] Unreviewed test gardening. Reintroduce test failure imported/w3c/web-platform-tests/service-workers/service-worker/next-hop-protocol.https.html.
- platform/glib/TestExpectations:
- 12:36 AM BuildingCairoOnWindows edited by
- (diff)
- 12:30 AM Changeset in webkit [276121] by
-
- 2 edits in trunk/Source/JavaScriptCore
Build fix for Debug -O3 after r276069.
https://bugs.webkit.org/show_bug.cgi?id=224619
Not reviewed.
- runtime/HashMapImplInlines.h:
- 12:18 AM BuildingCairoOnWindows edited by
- (diff)