Timeline
Apr 9, 2021:
- 11:43 PM Changeset in webkit [275793] by
-
- 20 edits in trunk
calc() simplification for a multiplication should apply the multiplication to each value of an addition
https://bugs.webkit.org/show_bug.cgi?id=224376
Reviewed by Simon Fraser.
LayoutTests/imported/w3c:
Mark 99 WPT progressions.
- web-platform-tests/css/css-backgrounds/animations/background-position-origin-interpolation-expected.txt:
- web-platform-tests/css/css-shapes/animation/shape-outside-interpolation-expected.txt:
- web-platform-tests/css/css-shapes/shape-outside/values/shape-margin-003-expected.txt:
- web-platform-tests/css/css-shapes/shape-outside/values/shape-outside-circle-010-expected.txt:
- web-platform-tests/css/css-shapes/shape-outside/values/shape-outside-circle-011-expected.txt:
- web-platform-tests/css/css-shapes/shape-outside/values/shape-outside-ellipse-010-expected.txt:
- web-platform-tests/css/css-shapes/shape-outside/values/shape-outside-ellipse-011-expected.txt:
- web-platform-tests/css/css-shapes/shape-outside/values/shape-outside-inset-008-expected.txt:
- web-platform-tests/css/css-shapes/shape-outside/values/shape-outside-inset-009-expected.txt:
- web-platform-tests/css/css-shapes/shape-outside/values/shape-outside-polygon-006-expected.txt:
- web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-001-expected.txt:
Source/WebCore:
An expression such as calc(0.5 * (100% + 100px)) should be simplified to calc(50% + 50px). We produce
these types of expressions when blending between a percentage and a dimension, and they can also be
specified explicitly in style.
- css/CSSCalculationValue.cpp:
(WebCore::CSSCalcOperationNode::combineChildren):
LayoutTests:
Rebase some non-WPT tests to account for new results.
- css3/calc/simplification-expected.txt:
- transitions/background-position-transitions-expected.txt:
- transitions/background-position-transitions.html:
- 9:09 PM Changeset in webkit [275792] by
-
- 3 edits in trunk/Source/WebKit
[iOS WK2] CADisplayLink in the web process is used unintentionally
https://bugs.webkit.org/show_bug.cgi?id=224395
Reviewed by Tim Horton.
When RemoteLayerTreeDrawingArea called windowScreenDidChange() from its constructor,
m_page.drawingArea() was null which resulted in DisplayRefreshMonitor::create()
receiving a null DisplayRefreshMonitorFactory*, so it fell back to the legacy
DisplayRefreshMonitorIOS, instead of using RemoteLayerTreeDisplayRefreshMonitor.
Fix by sending windowScreenDidChange() from the UI process, with the synthetic
DisplayID generated from the webPageID(). This has the advantage that
WebPageProxy will also store the correct DisplayID, and is more similar to macOS.
- UIProcess/ios/WKContentView.mm:
(-[WKContentView _commonInitializationWithProcessPool:configuration:]):
- WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.mm:
(WebKit::RemoteLayerTreeDrawingArea::RemoteLayerTreeDrawingArea):
- 8:01 PM Changeset in webkit [275791] by
-
- 12 edits2 adds in trunk
REGRESSION (r271660): Tap highlight no longer shows when tapping clickable elements without touch event listeners
https://bugs.webkit.org/show_bug.cgi?id=224385
<rdar://problem/76462370>
Reviewed by Tim Horton.
Source/WebKit:
In r271660, I added a call to
-finishInteraction
when resetting the synthetic tap gesture to fix a bug where
it was possible for the tap highlight to remain indefinitely when tapping on a clickable element with a touchend
event listener. This was because the touch end deferring gesture defers-_singleTapDidReset:
until after
-_didGetTapHighlightForRequest:…nodeHasBuiltInClickHandling:
, where we receive the tap highlight information.
`
2021-04-09 13:05:27.141097-0700 -[WKContentView(WKInteraction) _singleTapIdentified:]
2021-04-09 13:05:27.148678-0700 -[WKContentView(WKInteraction) _didGetTapHighlightForRequest:…nodeHasBuiltInClickHandling:]
2021-04-09 13:05:27.162525-0700 -[WKContentView(WKInteraction) _singleTapRecognized:]
2021-04-09 13:05:27.162675-0700 ↳ -[WKContentView(WKInteraction) _showTapHighlight]
2021-04-09 13:05:27.163250-0700 -[WKContentView(WKInteraction) _singleTapDidReset:]
2021-04-09 13:05:51.849481-0700 ↳ -[WKContentView(WKInteraction) _finishInteraction]
`
However, in the case where there is no touchend event listener and when fast-click is active, we reset the tap
gesture before receiving the tap highlight information:
`
2021-04-09 13:05:51.836638-0700 -[WKContentView(WKInteraction) _singleTapIdentified:]
2021-04-09 13:05:51.846152-0700 -[WKContentView(WKInteraction) _singleTapRecognized:]
2021-04-09 13:05:51.847196-0700 -[WKContentView(WKInteraction) _singleTapDidReset:]
2021-04-09 13:05:51.848563-0700 -[WKContentView(WKInteraction) _didGetTapHighlightForRequest:…nodeHasBuiltInClickHandling:]
2021-04-09 13:05:51.848851-0700 ↳ -[WKContentView(WKInteraction) _showTapHighlight]
2021-04-09 13:05:51.849481-0700 ↳ -[WKContentView(WKInteraction) _finishInteraction]
`
Critically, this means that calling
-_finishInteraction
in-_singleTapDidReset:
prematurely flagged the
tap highlight request as complete (by setting_isTapHighlightIDValid
toNO
) in the case where we aren't
deferring gestures, which caused us to avoid showing the tap highlight at all when we eventually receive the tap
highlight information.
To fix this, only fade out the tap highlight view in
-_singleTapDidReset:
if the tap highlight request has
already finished (i.e._isTapHighlightIDValid
has been set toNO
). Additionally, split logic for fading out
the highlight view into a separate method, and add aBOOL
flag to make the fading idempotent.
Test: fast/events/touch/ios/tap-highlight-during-synthetic-click.html
- UIProcess/API/ios/WKWebViewPrivateForTestingIOS.h:
- UIProcess/API/ios/WKWebViewTestingIOS.mm:
(-[WKWebView _tapHighlightViewRect]):
- UIProcess/ios/WKContentViewInteraction.h:
- UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView tapHighlightViewRect]):
Also add a testing-only method to report the frame of the tap highlight view. Note that this only attempts to
return the currentframe
of the tap highlight view instead of converting the frame to the coordinate system of
the content view (as other similar testing hooks do), since the tap highlight view only exists in the view
hierarchy for a brief duration.
(-[WKContentView _finishInteraction]):
(-[WKContentView _fadeTapHighlightViewIfNeeded]):
(-[WKContentView _singleTapDidReset:]):
Tools:
Add plumbing to expose the frame of the tap highlight view via
UIScriptController
.
- TestRunnerShared/UIScriptContext/Bindings/UIScriptController.idl:
- TestRunnerShared/UIScriptContext/UIScriptController.h:
(WTR::UIScriptController::tapHighlightViewRect const):
- WebKitTestRunner/ios/UIScriptControllerIOS.h:
- WebKitTestRunner/ios/UIScriptControllerIOS.mm:
(WTR::UIScriptControllerIOS::tapHighlightViewRect const):
LayoutTests:
Add a new layout test that exercises 3 scenarios, using the new testing SPI:
- Tapping on a
button
that prevents the "touchend" event (and therefore prevents clicking) should cause
the tap highlight to not show up.
- Tapping on a
button
that has a "touchend" event listener and does not prevent default should cause the tap
highlight to show up.
- Tapping on a
button
with no event listeners should cause the tap highlight to show up.
- fast/events/touch/ios/tap-highlight-during-synthetic-click-expected.txt: Added.
- fast/events/touch/ios/tap-highlight-during-synthetic-click.html: Added.
- resources/ui-helper.js:
(window.UIHelper.tapHighlightViewRect):
- 7:51 PM WebKitGTK/2.32.x edited by
- (diff)
- 7:11 PM Changeset in webkit [275790] by
-
- 6 edits in trunk/Source/WebCore
scrollingTreeNodeDidScroll() should just trigger a rendering udpate
https://bugs.webkit.org/show_bug.cgi?id=224394
Reviewed by Tim Horton.
After handling wheel events on the scrolling thread,
ThreadedScrollingTree::scrollingTreeNodeDidScroll() appends to a queue of pending updates
and then triggers applyPendingScrollUpdates() on the main thread to process those updates.
However, every rendering update also processes pending scroll updates via
synchronizeStateFromScrollingTree(), so it's simpler if we just trigger a rendering update.
- page/scrolling/AsyncScrollingCoordinator.cpp:
(WebCore::AsyncScrollingCoordinator::scrollingThreadAddedPendingUpdate):
(WebCore::AsyncScrollingCoordinator::scheduleRenderingUpdate):
- page/scrolling/AsyncScrollingCoordinator.h:
- page/scrolling/ThreadedScrollingTree.cpp:
(WebCore::ThreadedScrollingTree::scrollingTreeNodeDidScroll):
- page/scrolling/mac/ScrollingCoordinatorMac.mm:
(WebCore::ScrollingCoordinatorMac::scheduleTreeStateCommit):
- page/scrolling/nicosia/ScrollingCoordinatorNicosia.cpp:
(WebCore::ScrollingCoordinatorNicosia::scheduleTreeStateCommit):
- 6:55 PM Changeset in webkit [275789] by
-
- 2 edits in trunk/Source/WebKit
[iOS] Correct process-info rules to restrict to self
https://bugs.webkit.org/show_bug.cgi?id=224383
<rdar://problem/66582454>
Reviewed by Eric Carlson.
The sandbox allows 'process-info' by default, so our allow rules have no real impact.
We need to deny access first, as we do on macOS, so that the allow rules have meaning.
I reviewed the macOS sandbox, and made sure the iOS sandbox allows the same items.
- Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
- 6:00 PM Changeset in webkit [275788] by
-
- 34 edits in trunk
Remove className() and toStringName() from the method table
https://bugs.webkit.org/show_bug.cgi?id=224247
Reviewed by Darin Adler.
Source/JavaScriptCore:
ES6 introduced Symbol.toStringTag to customize Object.prototype.toString return value.
It was adopted by WebIDL spec, Chrome's DevTools, Node.js etc. There is no reason to
keep 2 method table methods, each with only 1 call site, instead of using the symbol.
Also, it's a bit confusing that for some objects, method table's className() returns
different result than JSCell::className(VM&).
This change:
- Removes JSProxy's className() / toStringName() methods because its target() is a global object that never has these overrides and uses Symbol.toStringTag instead.
- Removes DebuggerScope's className() / toStringName() overrides because its objectAtScope()
has these methods extremely rarely (e.g.
with (new Date) {}
), and its not displayed by Web Inspector.
- Merges JSCallbackObject's className() / toStringName() methods into Symbol.toStringTag branch of getOwnPropertySlot(), with permissive property attributes. To avoid any possible breakage, we make sure that it will be shadowed by a structure property.
- Reworks JSObject::calculatedClassName() to rely on Symbol.toStringTag, matching Chrome's
DevTools behavior. On its own, it's a nice change for Web Inspector. We make sure to
lookup Symbol.toStringTag if
constructor.name
inference fails to avoid confusion when extending builtins.
- Removes now unused className() from the method table.
- Removes toStringName() override from JSFinalizationRegistry because its builtin tag [1] is already "Object".
- Introduces BooleanObjectType for Boolean wrapper object, and Boolean.prototype as it's also required to have a BooleanData internal slot [2].
- Reworks Object.prototype.toString to determine builtin tag [1] based on JSType rather than
performing method table call. It's guaranteed that a) the set of types we are checking
against won't be expanded, and b) objects with these types have correct
className
.
- Removes now unused toStringTag() from the method table.
This patch is performance-neutral and carefully preserves current behavior for API objects,
including isPokerBros() hack.
[1]: https://tc39.es/ecma262/#sec-object.prototype.tostring (steps 5-14)
[2]: https://tc39.es/ecma262/#sec-properties-of-the-boolean-prototype-object
- API/JSCallbackObject.h:
- API/JSCallbackObjectFunctions.h:
(JSC::JSCallbackObject<Parent>::getOwnPropertySlot):
(JSC::JSCallbackObject<Parent>::className): Deleted.
(JSC::JSCallbackObject<Parent>::toStringName): Deleted.
- API/tests/testapiScripts/testapi.js:
- debugger/DebuggerScope.cpp:
(JSC::DebuggerScope::className): Deleted.
(JSC::DebuggerScope::toStringName): Deleted.
- debugger/DebuggerScope.h:
- runtime/BooleanObject.cpp:
(JSC::BooleanObject::toStringName): Deleted.
- runtime/BooleanObject.h:
(JSC::BooleanObject::createStructure):
- runtime/BooleanPrototype.h:
- runtime/ClassInfo.h:
- runtime/DateInstance.cpp:
(JSC::DateInstance::toStringName): Deleted.
- runtime/DateInstance.h:
- runtime/ErrorInstance.cpp:
(JSC::ErrorInstance::toStringName): Deleted.
- runtime/ErrorInstance.h:
- runtime/JSCell.cpp:
(JSC::JSCell::className): Deleted.
(JSC::JSCell::toStringName): Deleted.
- runtime/JSCell.h:
- runtime/JSFinalizationRegistry.cpp:
(JSC::JSFinalizationRegistry::toStringName): Deleted.
- runtime/JSFinalizationRegistry.h:
- runtime/JSObject.cpp:
(JSC::JSObject::calculatedClassName):
(JSC::JSObject::className): Deleted.
(JSC::isPokerBros): Deleted.
(JSC::JSObject::toStringName): Deleted.
- runtime/JSObject.h:
- runtime/JSProxy.cpp:
(JSC::JSProxy::className): Deleted.
(JSC::JSProxy::toStringName): Deleted.
- runtime/JSProxy.h:
- runtime/JSType.cpp:
(WTF::printInternal):
- runtime/JSType.h:
- runtime/NumberObject.cpp:
(JSC::NumberObject::toStringName): Deleted.
- runtime/NumberObject.h:
(JSC::NumberObject::createStructure):
- runtime/ObjectPrototype.cpp:
(JSC::isPokerBros):
(JSC::inferBuiltinTag):
(JSC::objectPrototypeToString):
- Removes jsNontrivialString() because it's assertion may fail in case of iOS hack.
- Utilizes AtomStringImpl to avoid allocating StringImpl for a small fixed set of strings.
- runtime/RegExpObject.cpp:
(JSC::RegExpObject::toStringName): Deleted.
- runtime/RegExpObject.h:
- runtime/StringObject.cpp:
(JSC::StringObject::toStringName): Deleted.
- runtime/StringObject.h:
LayoutTests:
- inspector/model/remote-object-get-properties-expected.txt:
- inspector/model/remote-object-get-properties.html:
- 5:45 PM Changeset in webkit [275787] by
-
- 17 edits2 adds in trunk
Media Session action should default to the MediaElement's default when no MediaSession handler are set
https://bugs.webkit.org/show_bug.cgi?id=224278
<rdar://problem/76339841>
Reviewed by Youenn Fablet .
Source/WebCore:
When a media session doesn't explicitly define an action handler, we use the media element
default action of the same type.
Media Session doesn't track a particular media element, instead it loosely defines a guessed playback state
that tracks if some element in the current document is playing and not muted or otherwise paused.
(see https://w3c.github.io/mediasession/#playback-state-model)
We therefore need to determine what is currently the most suitable media element available in this document.
Unlike the Media Controller and the Now Playing policy that will only ever select a media
if it is currently playing and not muted, for the Media Session we may have to interact with paused media elements.
For this we add a new PlaybackControlsPurpose named MediaSession defining new search criterias.
A media element will be up for selection if it's playable (according to autoplay policy). From then,
the best element will be selected accoring to its visibility, its size, if it's beeing played previously and
the last time it was interacted with.
Test: media/media-session/default-actionHandlers.html
- Modules/mediasession/MediaSession.cpp:
(WebCore::platformCommandForMediaSessionAction): New convenience method to convert one datatype into another.
(WebCore::MediaSession::callActionHandler): Use user defined handler if present or run the related action on
the most suitable media element
(WebCore::MediaSession::activeMediaElement const): Determine the currently active media element in the current
Media Session's document.
- Modules/mediasession/MediaSession.h:
- html/HTMLMediaElement.cpp:
(WebCore::mediaElementSessionInfoForSession): Add new hasEverNotifiedAboutPlaying member.
(WebCore::preferMediaControlsForCandidateSessionOverOtherCandidateSession): Amend sorting algorithm to cater
for the MediaSession criterias described above.
(WebCore::mediaSessionMayBeConfusedWithMainContent): When using MediaSession purpose, there is no possible
ambiguity, amend as such.
(WebCore::HTMLMediaElement::bestMediaElementForRemoteControls): Renamed from bestMediaElementForShowingPlaybackControlsManager
method to better match how the method is actually used.
- html/HTMLMediaElement.h:
- html/MediaElementSession.cpp:
(WebCore::MediaElementSession::canShowControlsManager const): Amend for new Media Session criterias.
(WebCore::MediaElementSession::didReceiveRemoteControlCommand): Always let MediaSession manage the actions handling.
- html/MediaElementSession.h:
- page/Page.cpp:
(WebCore::Page::playbackControlsManagerUpdateTimerFired): amend following method rename.
- platform/audio/cocoa/MediaSessionManagerCocoa.mm:
(WebCore::MediaSessionManagerCocoa::nowPlayingEligibleSession): amend following method rename.
- testing/Internals.cpp:
(WebCore::Internals::bestMediaElementForRemoteControls): Renamed from bestMediaElementForShowingPlaybackControlsManager as above.
(WebCore::Internals::sendMediaSessionAction): amend following method rename.
- testing/Internals.h: Rename method
- testing/Internals.idl: Rename method
LayoutTests:
- media/audio-background-playback-playlist-expected.txt: Renamed method
- media/audio-background-playback-playlist.html: Renamed method
- media/media-session/default-actionHandlers-expected.txt: Added.
- media/media-session/default-actionHandlers.html: Added.
- platform/mac/media/video-best-element-for-playback-controls-purpose-expected.txt: Renamed method
- platform/mac/media/video-best-element-for-playback-controls-purpose.html: Renamed method
- 5:03 PM Changeset in webkit [275786] by
-
- 2 edits in trunk/Source/WebKit
Web process crashes if image extraction is requested for an element that is pending image extraction
https://bugs.webkit.org/show_bug.cgi?id=224397
<rdar://problem/76472254>
Reviewed by Tim Horton.
Add a missing null check, so that we don't append (and then end up attempting to call) a null completion handler
in the case where image extraction is re-requested for an element that already has a pending image extraction
request.
This is currently not possible to reliably test this; in a future patch, I will add testing infrastructure that
will allow us to simulate image extraction requests and responses at the client layer.
- WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::requestImageExtraction):
- 4:56 PM Changeset in webkit [275785] by
-
- 2 edits in trunk/LayoutTests
[ macOS ] webgl/1.0.3/conformance/glsl/constructors/glsl-construct-ivec2.html is a flakey timeout
https://bugs.webkit.org/show_bug.cgi?id=224396
Unreviewed test gardening.
- platform/mac/TestExpectations: Updating test expectations to Pass Timeout while test is reviewed.
- 4:54 PM Changeset in webkit [275784] by
-
- 2 edits in trunk/Source/WebKit
Unreviewed, fix for test crashes after r275779.
https://bugs.webkit.org/show_bug.cgi?id=224305
rdar://71962196
- NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::createWebIDBServer): hitting an assertion when deref the WeakPtr, so rolling back to
old impl.
- 4:33 PM Changeset in webkit [275783] by
-
- 2 edits in trunk/Source/WebKit
[Cocoa] Don't set LD_RUNPATH_SEARCH_PATHS in the WebKit project file.
https://bugs.webkit.org/show_bug.cgi?id=224392
Reviewed by Eric Carlson.
- WebKit.xcodeproj/project.pbxproj:
- 3:20 PM Changeset in webkit [275782] by
-
- 1 copy in tags/Safari-612.1.10.1
Tag Safari-612.1.10.1.
- 3:20 PM Changeset in webkit [275781] by
-
- 1 delete in tags/Safari-612.1.10.1
Delete tag.
- 3:09 PM Changeset in webkit [275780] by
-
- 2 edits in trunk/Source/WebCore
[Cairo][GPUP] GraphicsContextGLOpenGL::paintToCanvas can't paint into a remote canvas
https://bugs.webkit.org/show_bug.cgi?id=224271
Reviewed by Don Olmstead.
WebGL canvas tests were failing for WinCairo port since r274327
enabled GPU process for canvas rendering. In the current
implementation of WebKitTestRunner, 2D canvases are in GPU
process, while WebGL canvases are in WebContent process. Remote
canvases in GPU process failed to drawImage() with a WebGL canvas
what is in WebContent process.
GraphicsContextGLOpenGL::paintToCanvas of Cairo port was painting
directly into PlatformContextCairo. It also should use
GraphicsContext::drawNativeImage as well as CG port does.
- platform/graphics/cairo/GraphicsContextGLCairo.cpp:
(WebCore::GraphicsContextGLOpenGL::paintToCanvas):
- 3:04 PM Changeset in webkit [275779] by
-
- 8 edits in trunk/Source/WebKit
Create WebIDBServer only when it is needed
https://bugs.webkit.org/show_bug.cgi?id=224305
rdar://71962196
Reviewed by Alex Christensen.
Currently each WebIDBServer comes with a thread, so we don't want to keep WebIDBServer if it's not in use.
Now there are two cases where network process needs a WebIDBServer:
- handle requests from UI process to collect or remove data
- handle requests from Web process to perform IDB operations
We created a WebIDBServer when network process connects to a web process, and we should create it when
web process is about to perform IDB operations. Also, we should remove WebIDBServer if it's done handling
requests, i.e count of pending requests from UI process is 0 and WebIDBServer is not associated with any web
process connection.
- NetworkProcess/IndexedDB/WebIDBServer.cpp:
(WebKit::WebIDBServer::create):
(WebKit::WebIDBServer::WebIDBServer): Add SessionID to thread name so we know which session to blame in crash
traces.
(WebKit::m_closeCallback):
(WebKit::WebIDBServer::getOrigins):
(WebKit::WebIDBServer::closeAndDeleteDatabasesModifiedSince):
(WebKit::WebIDBServer::closeAndDeleteDatabasesForOrigins):
(WebKit::WebIDBServer::renameOrigin):
(WebKit::WebIDBServer::removeConnection):
(WebKit::WebIDBServer::tryClose):
- NetworkProcess/IndexedDB/WebIDBServer.h:
- NetworkProcess/NetworkConnectionToWebProcess.cpp:
(WebKit::NetworkConnectionToWebProcess::addIDBConnection):
- NetworkProcess/NetworkConnectionToWebProcess.h:
- NetworkProcess/NetworkConnectionToWebProcess.messages.in: Add a message for web process to ask network process
to create WebIDBServer if not exists, and associate the web process connection with WebIDBServer.
- NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::createNetworkConnectionToWebProcess):
(WebKit::NetworkProcess::destroySession):
(WebKit::NetworkProcess::createWebIDBServer):
(WebKit::NetworkProcess::connectionToWebProcessClosed):
(WebKit::NetworkProcess::removeWebIDBServerIfPossible): Deleted. Move the removal code to WebIDBServer.
- WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.cpp:
(WebKit::WebIDBConnectionToServer::WebIDBConnectionToServer):
- 2:56 PM Changeset in webkit [275778] by
-
- 2 edits in trunk/Tools
git-webkit find doesn't work well with unicode characters in author name (follow-up fix)
https://bugs.webkit.org/show_bug.cgi?id=223686
Reviewed by Jonathan Bedard.
- Scripts/libraries/webkitscmpy/webkitscmpy/program/find.py:
(Info.main): Updated the error message.
- 1:37 PM Changeset in webkit [275777] by
-
- 13 edits in branches/safari-612.1.10-branch/Source
Cherry-pick r275775. rdar://problem/76467684
WTF SoftLinking macros can cause collisions with their target functions
https://bugs.webkit.org/show_bug.cgi?id=224379
<rdar://76434202>
Reviewed by Eric Carlson.
Source/WebCore:
Don't include the SoftLinkLibxslt.h file in the .cpp file.
- xml/SoftLinkLibxslt.cpp:
- xml/SoftLinkLibxslt.h:
Source/WebCore/PAL:
- pal/cf/CoreMediaSoftLink.h:
- pal/cocoa/MediaToolboxSoftLink.h:
- pal/cocoa/OpenGLSoftLinkCocoa.h:
- pal/cocoa/PassKitSoftLink.h:
- pal/ios/UIKitSoftLink.h:
- pal/spi/cocoa/AccessibilitySupportSoftLink.cpp:
- pal/spi/cocoa/AccessibilitySupportSoftLink.h:
Source/WTF:
Do not declare an inline version of the target function, as this will collide if the target function
becomes inlined. Instead, callers should use the explicit softLink_Library_Function() syntax, or
the LibrarySoftLinking.h headers should use #defines to re-declare the function name.
- wtf/cocoa/SoftLinking.h:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@275775 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 1:37 PM Changeset in webkit [275776] by
-
- 4 edits in branches/safari-612.1.10-branch/Source
Cherry-pick r275736. rdar://problem/76467285
Fix incorrect compile-time macro for CFNETWORK_NSURLSESSION_ATTRIBUTED_BUNDLE_IDENTIFIER
https://bugs.webkit.org/show_bug.cgi?id=224347
<rdar://problem/76353792>
Reviewed by Brent Fulgham.
Source/WebCore/PAL:
- pal/spi/cf/CFNetworkSPI.h:
Source/WebKit:
- NetworkProcess/cocoa/NetworkSessionCocoa.mm: (WebKit::NetworkSessionCocoa::NetworkSessionCocoa): (WebKit::NetworkSessionCocoa::SessionSet::initializeEphemeralStatelessSessionIfNeeded):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@275736 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 1:31 PM Changeset in webkit [275775] by
-
- 13 edits in trunk/Source
WTF SoftLinking macros can cause collisions with their target functions
https://bugs.webkit.org/show_bug.cgi?id=224379
<rdar://76434202>
Reviewed by Eric Carlson.
Source/WebCore:
Don't include the SoftLinkLibxslt.h file in the .cpp file.
- xml/SoftLinkLibxslt.cpp:
- xml/SoftLinkLibxslt.h:
Source/WebCore/PAL:
- pal/cf/CoreMediaSoftLink.h:
- pal/cocoa/MediaToolboxSoftLink.h:
- pal/cocoa/OpenGLSoftLinkCocoa.h:
- pal/cocoa/PassKitSoftLink.h:
- pal/ios/UIKitSoftLink.h:
- pal/spi/cocoa/AccessibilitySupportSoftLink.cpp:
- pal/spi/cocoa/AccessibilitySupportSoftLink.h:
Source/WTF:
Do not declare an inline version of the target function, as this will collide if the target function
becomes inlined. Instead, callers should use the explicit softLink_Library_Function() syntax, or
the LibrarySoftLinking.h headers should use #defines to re-declare the function name.
- wtf/cocoa/SoftLinking.h:
- 12:57 PM Changeset in webkit [275774] by
-
- 6 edits1 delete in trunk/LayoutTests
Remove tests under css3/shapes which are superseded by tests at imported/w3c/web-platform-tests/css/css-shapes
https://bugs.webkit.org/show_bug.cgi?id=224378
Reviewed by Dean Jackson.
- TestExpectations:
- css3/shapes/shape-outside-invalid-001-expected.txt: Removed.
- css3/shapes/shape-outside-invalid-001.html: Removed.
- css3/shapes/shape-outside-invalid-circle-000-expected.txt: Removed.
- css3/shapes/shape-outside-invalid-circle-000.html: Removed.
- css3/shapes/shape-outside-invalid-circle-001-expected.txt: Removed.
- css3/shapes/shape-outside-invalid-circle-001.html: Removed.
- css3/shapes/shape-outside-invalid-circle-002-expected.txt: Removed.
- css3/shapes/shape-outside-invalid-circle-002.html: Removed.
- css3/shapes/shape-outside-invalid-circle-003-expected.txt: Removed.
- css3/shapes/shape-outside-invalid-circle-003.html: Removed.
- css3/shapes/shape-outside-invalid-ellipse-001-expected.txt: Removed.
- css3/shapes/shape-outside-invalid-ellipse-001.html: Removed.
- css3/shapes/shape-outside-invalid-ellipse-002-expected.txt: Removed.
- css3/shapes/shape-outside-invalid-ellipse-002.html: Removed.
- css3/shapes/shape-outside-invalid-ellipse-003-expected.txt: Removed.
- css3/shapes/shape-outside-invalid-ellipse-003.html: Removed.
- css3/shapes/shape-outside-invalid-ellipse-004-expected.txt: Removed.
- css3/shapes/shape-outside-invalid-ellipse-004.html: Removed.
- css3/shapes/shape-outside-invalid-ellipse-005-expected.txt: Removed.
- css3/shapes/shape-outside-invalid-ellipse-005.html: Removed.
- css3/shapes/shape-outside-invalid-ellipse-006-expected.txt: Removed.
- css3/shapes/shape-outside-invalid-ellipse-006.html: Removed.
- css3/shapes/shape-outside-invalid-inset-001-expected.txt: Removed.
- css3/shapes/shape-outside-invalid-inset-001.html: Removed.
- css3/shapes/shape-outside-invalid-inset-002-expected.txt: Removed.
- css3/shapes/shape-outside-invalid-inset-002.html: Removed.
- css3/shapes/shape-outside-invalid-inset-003-expected.txt: Removed.
- css3/shapes/shape-outside-invalid-inset-003.html: Removed.
- css3/shapes/shape-outside-invalid-inset-004-expected.txt: Removed.
- css3/shapes/shape-outside-invalid-inset-004.html: Removed.
- css3/shapes/shape-outside-path-no-crash-expected.txt: Removed.
- css3/shapes/shape-outside-path-no-crash.html: Removed.
- css3/shapes/shape-outside/shape-box/shape-outside-box-002-expected.html: Removed.
- css3/shapes/shape-outside/shape-box/shape-outside-box-002.html: Removed.
- css3/shapes/shape-outside/shape-box/shape-outside-box-003-expected.html: Removed.
- css3/shapes/shape-outside/shape-box/shape-outside-box-003.html: Removed.
- css3/shapes/shape-outside/shape-box/shape-outside-box-004-expected.html: Removed.
- css3/shapes/shape-outside/shape-box/shape-outside-box-004.html: Removed.
- css3/shapes/shape-outside/shape-box/shape-outside-box-006-expected.html: Removed.
- css3/shapes/shape-outside/shape-box/shape-outside-box-006.html: Removed.
- css3/shapes/shape-outside/shape-box/shape-outside-box-007-expected.html: Removed.
- css3/shapes/shape-outside/shape-box/shape-outside-box-007.html: Removed.
- css3/shapes/shape-outside/shape-box/shape-outside-box-008-expected.html: Removed.
- css3/shapes/shape-outside/shape-box/shape-outside-box-008.html: Removed.
- css3/shapes/shape-outside/shape-box/w3c-import.log: Removed.
- css3/shapes/shape-outside/shape-image/gradients/shape-outside-linear-gradient-001-expected.html: Removed.
- css3/shapes/shape-outside/shape-image/gradients/shape-outside-linear-gradient-001.html: Removed.
- css3/shapes/shape-outside/shape-image/gradients/shape-outside-linear-gradient-002-expected.html: Removed.
- css3/shapes/shape-outside/shape-image/gradients/shape-outside-linear-gradient-002.html: Removed.
- css3/shapes/shape-outside/shape-image/gradients/shape-outside-linear-gradient-003-expected.html: Removed.
- css3/shapes/shape-outside/shape-image/gradients/shape-outside-linear-gradient-003.html: Removed.
- css3/shapes/shape-outside/shape-image/gradients/shape-outside-linear-gradient-004-expected.html: Removed.
- css3/shapes/shape-outside/shape-image/gradients/shape-outside-linear-gradient-004.html: Removed.
- css3/shapes/shape-outside/shape-image/gradients/shape-outside-radial-gradient-001-expected.txt: Removed.
- css3/shapes/shape-outside/shape-image/gradients/shape-outside-radial-gradient-001.html: Removed.
- css3/shapes/shape-outside/shape-image/gradients/shape-outside-radial-gradient-002-expected.txt: Removed.
- css3/shapes/shape-outside/shape-image/gradients/shape-outside-radial-gradient-002.html: Removed.
- css3/shapes/shape-outside/shape-image/gradients/shape-outside-radial-gradient-003-expected.txt: Removed.
- css3/shapes/shape-outside/shape-image/gradients/shape-outside-radial-gradient-003.html: Removed.
- css3/shapes/shape-outside/shape-image/gradients/shape-outside-radial-gradient-004-expected.txt: Removed.
- css3/shapes/shape-outside/shape-image/gradients/shape-outside-radial-gradient-004.html: Removed.
- css3/shapes/shape-outside/shape-image/gradients/w3c-import.log: Removed.
- css3/shapes/shape-outside/shape-image/shape-image-000-expected.html: Removed.
- css3/shapes/shape-outside/shape-image/shape-image-000.html: Removed.
- css3/shapes/shape-outside/shape-image/shape-image-001-expected.html: Removed.
- css3/shapes/shape-outside/shape-image/shape-image-001.html: Removed.
- css3/shapes/shape-outside/shape-image/shape-image-002-expected.html: Removed.
- css3/shapes/shape-outside/shape-image/shape-image-002.html: Removed.
- css3/shapes/shape-outside/shape-image/shape-image-003-expected.html: Removed.
- css3/shapes/shape-outside/shape-image/shape-image-003.html: Removed.
- css3/shapes/shape-outside/shape-image/shape-image-004-expected.html: Removed.
- css3/shapes/shape-outside/shape-image/shape-image-004.html: Removed.
- css3/shapes/shape-outside/shape-image/shape-image-005-expected.html: Removed.
- css3/shapes/shape-outside/shape-image/shape-image-005.html: Removed.
- css3/shapes/shape-outside/shape-image/shape-image-006-expected.html: Removed.
- css3/shapes/shape-outside/shape-image/shape-image-006.html: Removed.
- css3/shapes/shape-outside/shape-image/shape-image-007-expected.html: Removed.
- css3/shapes/shape-outside/shape-image/shape-image-007.html: Removed.
- css3/shapes/shape-outside/shape-image/shape-image-008-expected.html: Removed.
- css3/shapes/shape-outside/shape-image/shape-image-008.html: Removed.
- css3/shapes/shape-outside/shape-image/shape-image-009-expected.html: Removed.
- css3/shapes/shape-outside/shape-image/shape-image-009.html: Removed.
- css3/shapes/shape-outside/shape-image/shape-image-010-expected.html: Removed.
- css3/shapes/shape-outside/shape-image/shape-image-010.html: Removed.
- css3/shapes/shape-outside/shape-image/shape-image-011-expected.html: Removed.
- css3/shapes/shape-outside/shape-image/shape-image-011.html: Removed.
- css3/shapes/shape-outside/shape-image/shape-image-012-expected.html: Removed.
- css3/shapes/shape-outside/shape-image/shape-image-012.html: Removed.
- css3/shapes/shape-outside/shape-image/shape-image-013-expected.html: Removed.
- css3/shapes/shape-outside/shape-image/shape-image-013.html: Removed.
- css3/shapes/shape-outside/shape-image/shape-image-014-expected.html: Removed.
- css3/shapes/shape-outside/shape-image/shape-image-014.html: Removed.
- css3/shapes/shape-outside/shape-image/shape-image-015-expected.html: Removed.
- css3/shapes/shape-outside/shape-image/shape-image-015.html: Removed.
- css3/shapes/shape-outside/shape-image/shape-image-016-expected.html: Removed.
- css3/shapes/shape-outside/shape-image/shape-image-016.html: Removed.
- css3/shapes/shape-outside/shape-image/shape-image-017-expected.html: Removed.
- css3/shapes/shape-outside/shape-image/shape-image-017.html: Removed.
- css3/shapes/shape-outside/shape-image/shape-image-018-expected.html: Removed.
- css3/shapes/shape-outside/shape-image/shape-image-018.html: Removed.
- css3/shapes/shape-outside/shape-image/shape-image-019-expected.html: Removed.
- css3/shapes/shape-outside/shape-image/shape-image-019.html: Removed.
- css3/shapes/shape-outside/shape-image/shape-image-020-expected.html: Removed.
- css3/shapes/shape-outside/shape-image/shape-image-020.html: Removed.
- css3/shapes/shape-outside/shape-image/shape-image-021-expected.html: Removed.
- css3/shapes/shape-outside/shape-image/shape-image-021.html: Removed.
- css3/shapes/shape-outside/shape-image/shape-image-022-expected.html: Removed.
- css3/shapes/shape-outside/shape-image/shape-image-022.html: Removed.
- css3/shapes/shape-outside/shape-image/shape-image-023-expected.html: Removed.
- css3/shapes/shape-outside/shape-image/shape-image-023.html: Removed.
- css3/shapes/shape-outside/shape-image/shape-image-024-expected.html: Removed.
- css3/shapes/shape-outside/shape-image/shape-image-024.html: Removed.
- css3/shapes/shape-outside/shape-image/shape-image-025-expected.html: Removed.
- css3/shapes/shape-outside/shape-image/shape-image-025.html: Removed.
- css3/shapes/shape-outside/shape-image/support/animated.gif: Removed.
- css3/shapes/shape-outside/shape-image/support/left-half-rectangle-20.png: Removed.
- css3/shapes/shape-outside/shape-image/support/left-half-rectangle-20.svg: Removed.
- css3/shapes/shape-outside/shape-image/support/left-half-rectangle-50.png: Removed.
- css3/shapes/shape-outside/shape-image/support/left-half-rectangle-50.svg: Removed.
- css3/shapes/shape-outside/shape-image/support/left-half-rectangle-70.png: Removed.
- css3/shapes/shape-outside/shape-image/support/left-half-rectangle-70.svg: Removed.
- css3/shapes/shape-outside/shape-image/support/left-half-rectangle.jpg: Removed.
- css3/shapes/shape-outside/shape-image/support/left-half-rectangle.png: Removed.
- css3/shapes/shape-outside/shape-image/support/left-half-rectangle.svg: Removed.
- css3/shapes/shape-outside/shape-image/support/right-half-rectangle-20.png: Removed.
- css3/shapes/shape-outside/shape-image/support/right-half-rectangle-50.png: Removed.
- css3/shapes/shape-outside/shape-image/support/right-half-rectangle-70.png: Removed.
- css3/shapes/shape-outside/shape-image/support/right-half-rectangle-70.svg: Removed.
- css3/shapes/shape-outside/shape-image/support/right-half-rectangle.gif: Removed.
- css3/shapes/shape-outside/shape-image/support/right-half-rectangle.jpg: Removed.
- css3/shapes/shape-outside/shape-image/support/right-half-rectangle.png: Removed.
- css3/shapes/shape-outside/shape-image/support/right-half-rectangle.svg: Removed.
- css3/shapes/shape-outside/shape-image/support/w3c-import.log: Removed.
- css3/shapes/shape-outside/shape-image/w3c-import.log: Removed.
- css3/shapes/shape-outside/supported-shapes/circle/shape-outside-circle-013-expected.html: Removed.
- css3/shapes/shape-outside/supported-shapes/circle/shape-outside-circle-013.html: Removed.
- css3/shapes/shape-outside/supported-shapes/circle/shape-outside-circle-014-expected.html: Removed.
- css3/shapes/shape-outside/supported-shapes/circle/shape-outside-circle-014.html: Removed.
- css3/shapes/shape-outside/supported-shapes/circle/shape-outside-circle-015-expected.html: Removed.
- css3/shapes/shape-outside/supported-shapes/circle/shape-outside-circle-015.html: Removed.
- css3/shapes/shape-outside/supported-shapes/circle/shape-outside-circle-016-expected.html: Removed.
- css3/shapes/shape-outside/supported-shapes/circle/shape-outside-circle-016.html: Removed.
- css3/shapes/shape-outside/supported-shapes/circle/shape-outside-circle-017-expected.html: Removed.
- css3/shapes/shape-outside/supported-shapes/circle/shape-outside-circle-017.html: Removed.
- css3/shapes/shape-outside/supported-shapes/circle/shape-outside-circle-018-expected.html: Removed.
- css3/shapes/shape-outside/supported-shapes/circle/shape-outside-circle-018.html: Removed.
- css3/shapes/shape-outside/supported-shapes/circle/shape-outside-circle-019-expected.html: Removed.
- css3/shapes/shape-outside/supported-shapes/circle/shape-outside-circle-019.html: Removed.
- css3/shapes/shape-outside/supported-shapes/circle/shape-outside-circle-020-expected.html: Removed.
- css3/shapes/shape-outside/supported-shapes/circle/shape-outside-circle-020.html: Removed.
- css3/shapes/shape-outside/supported-shapes/circle/shape-outside-circle-021-expected.html: Removed.
- css3/shapes/shape-outside/supported-shapes/circle/shape-outside-circle-021.html: Removed.
- css3/shapes/shape-outside/supported-shapes/circle/shape-outside-circle-022-expected.html: Removed.
- css3/shapes/shape-outside/supported-shapes/circle/shape-outside-circle-022.html: Removed.
- css3/shapes/shape-outside/supported-shapes/circle/shape-outside-circle-024-expected.html: Removed.
- css3/shapes/shape-outside/supported-shapes/circle/shape-outside-circle-024.html: Removed.
- css3/shapes/shape-outside/supported-shapes/circle/shape-outside-circle-025-expected.html: Removed.
- css3/shapes/shape-outside/supported-shapes/circle/shape-outside-circle-025.html: Removed.
- css3/shapes/shape-outside/supported-shapes/circle/shape-outside-circle-026-expected.html: Removed.
- css3/shapes/shape-outside/supported-shapes/circle/shape-outside-circle-026.html: Removed.
- css3/shapes/shape-outside/supported-shapes/circle/shape-outside-circle-027-expected.html: Removed.
- css3/shapes/shape-outside/supported-shapes/circle/shape-outside-circle-027.html: Removed.
- css3/shapes/shape-outside/supported-shapes/circle/shape-outside-circle-028-expected.html: Removed.
- css3/shapes/shape-outside/supported-shapes/circle/shape-outside-circle-028.html: Removed.
- css3/shapes/shape-outside/supported-shapes/circle/shape-outside-circle-029-expected.html: Removed.
- css3/shapes/shape-outside/supported-shapes/circle/shape-outside-circle-029.html: Removed.
- css3/shapes/shape-outside/supported-shapes/circle/shape-outside-circle-030-expected.html: Removed.
- css3/shapes/shape-outside/supported-shapes/circle/shape-outside-circle-030.html: Removed.
- css3/shapes/shape-outside/supported-shapes/circle/shape-outside-circle-031-expected.html: Removed.
- css3/shapes/shape-outside/supported-shapes/circle/shape-outside-circle-031.html: Removed.
- css3/shapes/shape-outside/supported-shapes/circle/w3c-import.log: Removed.
- css3/shapes/shape-outside/supported-shapes/ellipse/shape-outside-ellipse-013-expected.html: Removed.
- css3/shapes/shape-outside/supported-shapes/ellipse/shape-outside-ellipse-013.html: Removed.
- css3/shapes/shape-outside/supported-shapes/ellipse/shape-outside-ellipse-014-expected.html: Removed.
- css3/shapes/shape-outside/supported-shapes/ellipse/shape-outside-ellipse-014.html: Removed.
- css3/shapes/shape-outside/supported-shapes/ellipse/shape-outside-ellipse-016-expected.html: Removed.
- css3/shapes/shape-outside/supported-shapes/ellipse/shape-outside-ellipse-016.html: Removed.
- css3/shapes/shape-outside/supported-shapes/ellipse/shape-outside-ellipse-018-expected.html: Removed.
- css3/shapes/shape-outside/supported-shapes/ellipse/shape-outside-ellipse-018.html: Removed.
- css3/shapes/shape-outside/supported-shapes/ellipse/shape-outside-ellipse-019-expected.html: Removed.
- css3/shapes/shape-outside/supported-shapes/ellipse/shape-outside-ellipse-019.html: Removed.
- css3/shapes/shape-outside/supported-shapes/ellipse/shape-outside-ellipse-020-expected.html: Removed.
- css3/shapes/shape-outside/supported-shapes/ellipse/shape-outside-ellipse-020.html: Removed.
- css3/shapes/shape-outside/supported-shapes/ellipse/shape-outside-ellipse-021-expected.html: Removed.
- css3/shapes/shape-outside/supported-shapes/ellipse/shape-outside-ellipse-021.html: Removed.
- css3/shapes/shape-outside/supported-shapes/ellipse/shape-outside-ellipse-022-expected.html: Removed.
- css3/shapes/shape-outside/supported-shapes/ellipse/shape-outside-ellipse-022.html: Removed.
- css3/shapes/shape-outside/supported-shapes/ellipse/shape-outside-ellipse-023-expected.html: Removed.
- css3/shapes/shape-outside/supported-shapes/ellipse/shape-outside-ellipse-023.html: Removed.
- css3/shapes/shape-outside/supported-shapes/ellipse/shape-outside-ellipse-024-expected.html: Removed.
- css3/shapes/shape-outside/supported-shapes/ellipse/shape-outside-ellipse-024.html: Removed.
- css3/shapes/shape-outside/supported-shapes/ellipse/shape-outside-ellipse-025-expected.html: Removed.
- css3/shapes/shape-outside/supported-shapes/ellipse/shape-outside-ellipse-025.html: Removed.
- css3/shapes/shape-outside/supported-shapes/ellipse/shape-outside-ellipse-030-expected.html: Removed.
- css3/shapes/shape-outside/supported-shapes/ellipse/shape-outside-ellipse-030.html: Removed.
- css3/shapes/shape-outside/supported-shapes/ellipse/shape-outside-ellipse-031-expected.html: Removed.
- css3/shapes/shape-outside/supported-shapes/ellipse/shape-outside-ellipse-031.html: Removed.
- css3/shapes/shape-outside/supported-shapes/ellipse/w3c-import.log: Removed.
- css3/shapes/shape-outside/supported-shapes/inset/shape-outside-inset-010-expected.html: Removed.
- css3/shapes/shape-outside/supported-shapes/inset/shape-outside-inset-010.html: Removed.
- css3/shapes/shape-outside/supported-shapes/inset/shape-outside-inset-011-expected.html: Removed.
- css3/shapes/shape-outside/supported-shapes/inset/shape-outside-inset-011.html: Removed.
- css3/shapes/shape-outside/supported-shapes/inset/shape-outside-inset-012-expected.html: Removed.
- css3/shapes/shape-outside/supported-shapes/inset/shape-outside-inset-012.html: Removed.
- css3/shapes/shape-outside/supported-shapes/inset/shape-outside-inset-013-expected.html: Removed.
- css3/shapes/shape-outside/supported-shapes/inset/shape-outside-inset-013.html: Removed.
- css3/shapes/shape-outside/supported-shapes/inset/shape-outside-inset-014-expected.html: Removed.
- css3/shapes/shape-outside/supported-shapes/inset/shape-outside-inset-014.html: Removed.
- css3/shapes/shape-outside/supported-shapes/inset/shape-outside-inset-015-expected.html: Removed.
- css3/shapes/shape-outside/supported-shapes/inset/shape-outside-inset-015.html: Removed.
- css3/shapes/shape-outside/supported-shapes/inset/w3c-import.log: Removed.
- css3/shapes/shape-outside/supported-shapes/polygon/shape-outside-polygon-007-expected.html: Removed.
- css3/shapes/shape-outside/supported-shapes/polygon/shape-outside-polygon-007.html: Removed.
- css3/shapes/shape-outside/supported-shapes/polygon/shape-outside-polygon-008-expected.html: Removed.
- css3/shapes/shape-outside/supported-shapes/polygon/shape-outside-polygon-008.html: Removed.
- css3/shapes/shape-outside/supported-shapes/polygon/shape-outside-polygon-009-expected.html: Removed.
- css3/shapes/shape-outside/supported-shapes/polygon/shape-outside-polygon-009.html: Removed.
- css3/shapes/shape-outside/supported-shapes/polygon/shape-outside-polygon-010-expected.html: Removed.
- css3/shapes/shape-outside/supported-shapes/polygon/shape-outside-polygon-010.html: Removed.
- css3/shapes/shape-outside/supported-shapes/polygon/shape-outside-polygon-011-expected.html: Removed.
- css3/shapes/shape-outside/supported-shapes/polygon/shape-outside-polygon-011.html: Removed.
- css3/shapes/shape-outside/supported-shapes/polygon/shape-outside-polygon-012-expected.html: Removed.
- css3/shapes/shape-outside/supported-shapes/polygon/shape-outside-polygon-012.html: Removed.
- css3/shapes/shape-outside/supported-shapes/polygon/shape-outside-polygon-013-expected.html: Removed.
- css3/shapes/shape-outside/supported-shapes/polygon/shape-outside-polygon-013.html: Removed.
- css3/shapes/shape-outside/supported-shapes/polygon/shape-outside-polygon-014-expected.html: Removed.
- css3/shapes/shape-outside/supported-shapes/polygon/shape-outside-polygon-014.html: Removed.
- css3/shapes/shape-outside/supported-shapes/polygon/shape-outside-polygon-015-expected.html: Removed.
- css3/shapes/shape-outside/supported-shapes/polygon/shape-outside-polygon-015.html: Removed.
- css3/shapes/shape-outside/supported-shapes/polygon/shape-outside-polygon-016-expected.html: Removed.
- css3/shapes/shape-outside/supported-shapes/polygon/shape-outside-polygon-016.html: Removed.
- css3/shapes/shape-outside/supported-shapes/polygon/shape-outside-polygon-017-expected.html: Removed.
- css3/shapes/shape-outside/supported-shapes/polygon/shape-outside-polygon-017.html: Removed.
- css3/shapes/shape-outside/supported-shapes/polygon/w3c-import.log: Removed.
- css3/shapes/shape-outside/supported-shapes/support/rounded-rectangle.js: Removed.
- css3/shapes/shape-outside/supported-shapes/support/subpixel-utils.js: Removed.
- css3/shapes/shape-outside/supported-shapes/support/test-utils.js: Removed.
- css3/shapes/shape-outside/supported-shapes/support/w3c-import.log: Removed.
- css3/shapes/shape-outside/values/shape-image-threshold-000-expected.txt: Removed.
- css3/shapes/shape-outside/values/shape-image-threshold-000.html: Removed.
- css3/shapes/shape-outside/values/shape-image-threshold-001-expected.txt: Removed.
- css3/shapes/shape-outside/values/shape-image-threshold-001.html: Removed.
- css3/shapes/shape-outside/values/shape-image-threshold-002-expected.txt: Removed.
- css3/shapes/shape-outside/values/shape-image-threshold-002.html: Removed.
- css3/shapes/shape-outside/values/shape-image-threshold-003-expected.txt: Removed.
- css3/shapes/shape-outside/values/shape-image-threshold-003.html: Removed.
- css3/shapes/shape-outside/values/shape-margin-000-expected.txt: Removed.
- css3/shapes/shape-outside/values/shape-margin-000.html: Removed.
- css3/shapes/shape-outside/values/shape-margin-001-expected.txt: Removed.
- css3/shapes/shape-outside/values/shape-margin-001.html: Removed.
- css3/shapes/shape-outside/values/shape-margin-002-expected.txt: Removed.
- css3/shapes/shape-outside/values/shape-margin-002.html: Removed.
- css3/shapes/shape-outside/values/shape-margin-003-expected.txt: Removed.
- css3/shapes/shape-outside/values/shape-margin-003.html: Removed.
- css3/shapes/shape-outside/values/shape-margin-004-expected.txt: Removed.
- css3/shapes/shape-outside/values/shape-margin-004.html: Removed.
- css3/shapes/shape-outside/values/shape-margin-005-expected.txt: Removed.
- css3/shapes/shape-outside/values/shape-margin-005.html: Removed.
- css3/shapes/shape-outside/values/shape-outside-box-000-expected.txt: Removed.
- css3/shapes/shape-outside/values/shape-outside-box-000.html: Removed.
- css3/shapes/shape-outside/values/shape-outside-circle-000-expected.txt: Removed.
- css3/shapes/shape-outside/values/shape-outside-circle-000.html: Removed.
- css3/shapes/shape-outside/values/shape-outside-circle-001-expected.txt: Removed.
- css3/shapes/shape-outside/values/shape-outside-circle-001.html: Removed.
- css3/shapes/shape-outside/values/shape-outside-circle-002-expected.txt: Removed.
- css3/shapes/shape-outside/values/shape-outside-circle-002.html: Removed.
- css3/shapes/shape-outside/values/shape-outside-circle-003-expected.txt: Removed.
- css3/shapes/shape-outside/values/shape-outside-circle-003.html: Removed.
- css3/shapes/shape-outside/values/shape-outside-circle-004-expected.txt: Removed.
- css3/shapes/shape-outside/values/shape-outside-circle-004.html: Removed.
- css3/shapes/shape-outside/values/shape-outside-circle-005-expected.txt: Removed.
- css3/shapes/shape-outside/values/shape-outside-circle-005.html: Removed.
- css3/shapes/shape-outside/values/shape-outside-circle-006-expected.txt: Removed.
- css3/shapes/shape-outside/values/shape-outside-circle-006.html: Removed.
- css3/shapes/shape-outside/values/shape-outside-circle-007-expected.txt: Removed.
- css3/shapes/shape-outside/values/shape-outside-circle-007.html: Removed.
- css3/shapes/shape-outside/values/shape-outside-circle-008-expected.txt: Removed.
- css3/shapes/shape-outside/values/shape-outside-circle-008.html: Removed.
- css3/shapes/shape-outside/values/shape-outside-circle-009-expected.txt: Removed.
- css3/shapes/shape-outside/values/shape-outside-circle-009.html: Removed.
- css3/shapes/shape-outside/values/shape-outside-circle-010-expected.txt: Removed.
- css3/shapes/shape-outside/values/shape-outside-circle-010.html: Removed.
- css3/shapes/shape-outside/values/shape-outside-circle-011-expected.txt: Removed.
- css3/shapes/shape-outside/values/shape-outside-circle-011.html: Removed.
- css3/shapes/shape-outside/values/shape-outside-computed-shape-000-expected.txt: Removed.
- css3/shapes/shape-outside/values/shape-outside-computed-shape-000.html: Removed.
- css3/shapes/shape-outside/values/shape-outside-computed-shape-001-expected.txt: Removed.
- css3/shapes/shape-outside/values/shape-outside-computed-shape-001.html: Removed.
- css3/shapes/shape-outside/values/shape-outside-ellipse-000-expected.txt: Removed.
- css3/shapes/shape-outside/values/shape-outside-ellipse-000.html: Removed.
- css3/shapes/shape-outside/values/shape-outside-ellipse-002-expected.txt: Removed.
- css3/shapes/shape-outside/values/shape-outside-ellipse-002.html: Removed.
- css3/shapes/shape-outside/values/shape-outside-ellipse-003-expected.txt: Removed.
- css3/shapes/shape-outside/values/shape-outside-ellipse-003.html: Removed.
- css3/shapes/shape-outside/values/shape-outside-ellipse-004-expected.txt: Removed.
- css3/shapes/shape-outside/values/shape-outside-ellipse-004.html: Removed.
- css3/shapes/shape-outside/values/shape-outside-ellipse-006-expected.txt: Removed.
- css3/shapes/shape-outside/values/shape-outside-ellipse-006.html: Removed.
- css3/shapes/shape-outside/values/shape-outside-ellipse-007-expected.txt: Removed.
- css3/shapes/shape-outside/values/shape-outside-ellipse-007.html: Removed.
- css3/shapes/shape-outside/values/shape-outside-ellipse-008-expected.txt: Removed.
- css3/shapes/shape-outside/values/shape-outside-ellipse-008.html: Removed.
- css3/shapes/shape-outside/values/shape-outside-ellipse-009-expected.txt: Removed.
- css3/shapes/shape-outside/values/shape-outside-ellipse-009.html: Removed.
- css3/shapes/shape-outside/values/shape-outside-inset-000-expected.txt: Removed.
- css3/shapes/shape-outside/values/shape-outside-inset-000.html: Removed.
- css3/shapes/shape-outside/values/shape-outside-inset-001-expected.txt: Removed.
- css3/shapes/shape-outside/values/shape-outside-inset-001.html: Removed.
- css3/shapes/shape-outside/values/shape-outside-inset-002-expected.txt: Removed.
- css3/shapes/shape-outside/values/shape-outside-inset-002.html: Removed.
- css3/shapes/shape-outside/values/shape-outside-inset-003-expected.txt: Removed.
- css3/shapes/shape-outside/values/shape-outside-inset-003.html: Removed.
- css3/shapes/shape-outside/values/shape-outside-inset-004-expected.txt: Removed.
- css3/shapes/shape-outside/values/shape-outside-inset-004.html: Removed.
- css3/shapes/shape-outside/values/shape-outside-inset-005-expected.txt: Removed.
- css3/shapes/shape-outside/values/shape-outside-inset-005.html: Removed.
- css3/shapes/shape-outside/values/shape-outside-inset-006-expected.txt: Removed.
- css3/shapes/shape-outside/values/shape-outside-inset-006.html: Removed.
- css3/shapes/shape-outside/values/shape-outside-inset-007-expected.txt: Removed.
- css3/shapes/shape-outside/values/shape-outside-inset-007.html: Removed.
- css3/shapes/shape-outside/values/shape-outside-inset-008-expected.txt: Removed.
- css3/shapes/shape-outside/values/shape-outside-inset-008.html: Removed.
- css3/shapes/shape-outside/values/shape-outside-inset-009-expected.txt: Removed.
- css3/shapes/shape-outside/values/shape-outside-inset-009.html: Removed.
- css3/shapes/shape-outside/values/shape-outside-polygon-000-expected.txt: Removed.
- css3/shapes/shape-outside/values/shape-outside-polygon-000.html: Removed.
- css3/shapes/shape-outside/values/shape-outside-polygon-001-expected.txt: Removed.
- css3/shapes/shape-outside/values/shape-outside-polygon-001.html: Removed.
- css3/shapes/shape-outside/values/shape-outside-polygon-002-expected.txt: Removed.
- css3/shapes/shape-outside/values/shape-outside-polygon-002.html: Removed.
- css3/shapes/shape-outside/values/shape-outside-polygon-003-expected.txt: Removed.
- css3/shapes/shape-outside/values/shape-outside-polygon-003.html: Removed.
- css3/shapes/shape-outside/values/shape-outside-polygon-004-expected.txt: Removed.
- css3/shapes/shape-outside/values/shape-outside-polygon-004.html: Removed.
- css3/shapes/shape-outside/values/shape-outside-polygon-005-expected.txt: Removed.
- css3/shapes/shape-outside/values/shape-outside-polygon-005.html: Removed.
- css3/shapes/shape-outside/values/shape-outside-polygon-006-expected.txt: Removed.
- css3/shapes/shape-outside/values/shape-outside-polygon-006.html: Removed.
- css3/shapes/shape-outside/values/shape-outside-shape-arguments-000-expected.txt: Removed.
- css3/shapes/shape-outside/values/shape-outside-shape-arguments-000.html: Removed.
- css3/shapes/shape-outside/values/shape-outside-shape-arguments-001-expected.txt: Removed.
- css3/shapes/shape-outside/values/shape-outside-shape-arguments-001.html: Removed.
- css3/shapes/shape-outside/values/shape-outside-shape-box-pair-000-expected.txt: Removed.
- css3/shapes/shape-outside/values/shape-outside-shape-box-pair-000.html: Removed.
- css3/shapes/shape-outside/values/shape-outside-shape-inherit-000-expected.txt: Removed.
- css3/shapes/shape-outside/values/shape-outside-shape-inherit-000.html: Removed.
- css3/shapes/shape-outside/values/shape-outside-shape-initial-000-expected.txt: Removed.
- css3/shapes/shape-outside/values/shape-outside-shape-initial-000.html: Removed.
- css3/shapes/shape-outside/values/shape-outside-shape-none-000-expected.txt: Removed.
- css3/shapes/shape-outside/values/shape-outside-shape-none-000.html: Removed.
- css3/shapes/shape-outside/values/shape-outside-shape-notation-000-expected.txt: Removed.
- css3/shapes/shape-outside/values/shape-outside-shape-notation-000.html: Removed.
- css3/shapes/shape-outside/values/support/parsing-utils.js: Removed.
- css3/shapes/shape-outside/values/support/w3c-import.log: Removed.
- css3/shapes/shape-outside/values/w3c-import.log: Removed.
- css3/shapes/spec-examples/shape-outside-001-expected.html: Removed.
- css3/shapes/spec-examples/shape-outside-001.html: Removed.
- css3/shapes/spec-examples/shape-outside-002-expected.html: Removed.
- css3/shapes/spec-examples/shape-outside-002.html: Removed.
- css3/shapes/spec-examples/shape-outside-003-expected.html: Removed.
- css3/shapes/spec-examples/shape-outside-003.html: Removed.
- css3/shapes/spec-examples/shape-outside-004-expected.html: Removed.
- css3/shapes/spec-examples/shape-outside-004.html: Removed.
- css3/shapes/spec-examples/shape-outside-005-expected.html: Removed.
- css3/shapes/spec-examples/shape-outside-005.html: Removed.
- css3/shapes/spec-examples/shape-outside-006-expected.html: Removed.
- css3/shapes/spec-examples/shape-outside-006.html: Removed.
- css3/shapes/spec-examples/shape-outside-007-expected.html: Removed.
- css3/shapes/spec-examples/shape-outside-007.html: Removed.
- css3/shapes/spec-examples/shape-outside-008-expected.html: Removed.
- css3/shapes/spec-examples/shape-outside-008.html: Removed.
- css3/shapes/spec-examples/shape-outside-010-expected.txt: Removed.
- css3/shapes/spec-examples/shape-outside-010.html: Removed.
- css3/shapes/spec-examples/shape-outside-011-expected.txt: Removed.
- css3/shapes/spec-examples/shape-outside-011.html: Removed.
- css3/shapes/spec-examples/shape-outside-012-expected.txt: Removed.
- css3/shapes/spec-examples/shape-outside-012.html: Removed.
- css3/shapes/spec-examples/shape-outside-013-expected.txt: Removed.
- css3/shapes/spec-examples/shape-outside-013.html: Removed.
- css3/shapes/spec-examples/shape-outside-014-expected.txt: Removed.
- css3/shapes/spec-examples/shape-outside-014.html: Removed.
- css3/shapes/spec-examples/shape-outside-015-expected.txt: Removed.
- css3/shapes/spec-examples/shape-outside-015.html: Removed.
- css3/shapes/spec-examples/shape-outside-016-expected.txt: Removed.
- css3/shapes/spec-examples/shape-outside-016.html: Removed.
- css3/shapes/spec-examples/shape-outside-017-expected.txt: Removed.
- css3/shapes/spec-examples/shape-outside-017.html: Removed.
- css3/shapes/spec-examples/shape-outside-018-expected.txt: Removed.
- css3/shapes/spec-examples/shape-outside-018.html: Removed.
- css3/shapes/spec-examples/shape-outside-019-expected.txt: Removed.
- css3/shapes/spec-examples/shape-outside-019.html: Removed.
- css3/shapes/spec-examples/support/circle-no-shadow.png: Removed.
- css3/shapes/spec-examples/support/circle-shadow.png: Removed.
- css3/shapes/spec-examples/support/rounded-triangle.svg: Removed.
- css3/shapes/spec-examples/support/spec-example-utils.js: Removed.
- css3/shapes/spec-examples/support/w3c-import.log: Removed.
- css3/shapes/spec-examples/w3c-import.log: Removed.
- css3/shapes/w3c-import.log: Removed.
- platform/glib/TestExpectations:
- platform/ios/TestExpectations:
- platform/mac-wk2/TestExpectations:
- platform/wincairo/TestExpectations:
- 12:49 PM Changeset in webkit [275773] by
-
- 7 edits in trunk/Tools
Make TestInput take a Test object, not a path
https://bugs.webkit.org/show_bug.cgi?id=224329
Reviewed by Jonathan Bedard.
- Scripts/webkitpy/layout_tests/controllers/layout_test_runner.py:
(LayoutTestRunner.run_tests): Remove test_to_skip argument; skipped tests aren't for the runner.
- Scripts/webkitpy/layout_tests/controllers/layout_test_runner_unittest.py:
(LayoutTestRunnerTests._run_tests): TestInput expects a Test.
(LayoutTestRunnerTests.test_interrupt_if_at_failure_limits): TestInput expects a Test.
(SharderTests.get_test_input): TestInput expects a Test.
- Scripts/webkitpy/layout_tests/controllers/manager.py:
(Manager._collect_tests):
Move duplicated code from Manager.run and Manager.print_expectations here.
(Manager._tests_to_run):
Renamed from Manager._prepare_lists; now just gives tests to run.
(Manager._test_input_for_file): Now takes a Test, not a str; device_type changes behaviour and shouldn't have any default.
(Manager._test_is_slow): device_type changes behaviour and shouldn't have any default.
(Manager._test_should_dump_jsconsolelog_in_stderr): device_type changes behaviour and shouldn't have any default.
(Manager._get_test_inputs): device_type changes behaviour and shouldn't have any default.
(Manager._update_worker_count): device_type changes behaviour and shouldn't have any default.
(Manager._set_up_run): device_type changes behaviour and shouldn't have any default.
(Manager.run):
Largely just change for Manager._collect_tests, also renaming the sets to match their
clearer names in print_expectations.
Additionally, now generate skip results here, as they aren't to do with actually running
tests, they're about test selection.
(Manager._run_test_subset): Remove tests_to_skip argument, devie_type is required.
(Manager._run_tests): Remove tests_to_skip argument, devie_type is required.
(Manager._print_expectation_line_for_test): Now takes a Test, not a str; device_type changes behaviour and shouldn't have any default.
(Manager._print_expectations_for_subset): Change default of tests_to_skip to avoid set/dict oddness.
(Manager.print_expectations): Largely change for Manager._collect_tests.
- Scripts/webkitpy/layout_tests/models/test.py:
(Test): Use attrs to avoid having to define cmp, hash, repr, etc.
- Scripts/webkitpy/layout_tests/models/test_input.py:
(TestInput.init): Take a Test, not a str.
(TestInput.test_name): Maintain compatibility with code reading TestInput.test_name for now.
- Scripts/webkitpy/layout_tests/models/test_run_results.py:
(TestRunResults.merge): Fix merging of dicts-of-sets, rather than overwriting the sets.
(TestRunResults.merge.merge_dict_sets): Implement the merging.
- 12:05 PM Changeset in webkit [275772] by
-
- 6 edits in trunk
[css-grid] Set hasIntrinsicWidth & hasIntrinsicHeight properties for SVG element's intrinsic size
https://bugs.webkit.org/show_bug.cgi?id=223504
Patch by Ziran Sun <Ziran Sun> on 2021-04-09
Reviewed by Javier Fernandez.
Source/WebCore:
In RenderReplaced::computeReplacedLogicalWidth/RenderReplaced::computeReplacedLogicalHeight(),
hasIntrinsicWidth and hasIntrinsicHeight are decided by whether the value is bigger than 0.
This is not alway true. The SVG element sets its hasIntrinsicWidth/hasIntrinsicHeight property
in line with its lengthType(). This change adds checks for SVG element cases specifically.
- platform/graphics/FloatSize.h:
- rendering/RenderReplaced.cpp:
(WebCore::RenderReplaced::computeReplacedLogicalWidth const):
(WebCore::RenderReplaced::computeReplacedLogicalHeight const):
- rendering/svg/RenderSVGRoot.cpp:
(WebCore::RenderSVGRoot::computeIntrinsicRatioInformation const):
LayoutTests:
Enable 4 tests that pass now.
- 11:55 AM EarlyWarningSystem edited by
- (diff)
- 11:35 AM Changeset in webkit [275771] by
-
- 3 edits in trunk/LayoutTests
[ macOS wk2 ARM64 ] fast/images/async-image-background-change.html is a flakey timeout
https://bugs.webkit.org/show_bug.cgi?id=223469
Reviewed by Darin Adler.
If the event 'webkitImageFrameReady' fires before registering its listener,
the test will timeout.
Make sure the event listener is registered before changing the background
of the element.
- fast/images/async-image-background-change.html:
- platform/mac-wk2/TestExpectations:
- 11:33 AM Changeset in webkit [275770] by
-
- 1 copy in tags/Safari-611.2.2
Tag Safari-611.2.2.
- 11:32 AM Changeset in webkit [275769] by
-
- 7 edits in trunk/LayoutTests
REGRESSION (r273154): 3 layout tests in editing/selection/ios are consistently failing
https://bugs.webkit.org/show_bug.cgi?id=224375
<rdar://problem/76420167>
Reviewed by Tim Horton.
Rebaseline some layout tests after enabling form control refresh on iOS.
- editing/selection/ios/do-not-hide-selection-in-visible-field-expected.txt:
- editing/selection/ios/do-not-hide-selection-in-visible-field.html:
- editing/selection/ios/show-selection-in-transformed-container-2-expected.txt:
- editing/selection/ios/show-selection-in-transformed-container-2.html:
- editing/selection/ios/show-selection-in-transformed-container-expected.txt:
- editing/selection/ios/show-selection-in-transformed-container.html:
- 11:31 AM Changeset in webkit [275768] by
-
- 30 edits1 add in trunk/Source/WebKit
Need to propagate and use 'canShowWhileLocked' in the GPU Process
https://bugs.webkit.org/show_bug.cgi?id=224345
<rdar://76011262>
Reviewed by Tim Horton.
The GPUProcess was previously creating a single visibility propagation view even though
it was potentially serving several web views. Also, it would also pass
canShowWhileLocked=false
when constructing the visibility propagation view, ignoring
the value of WKWebViewConfiguration._canShowWhileLocked. This would lead to issues for
apps relying on WKWebView to show content on the lock screen.
To address the issue, we now have the RemoteRenderingBackend construct its own
visibility propagation view in the GPUProcess. The GPUProcess constructs a
RemoteRenderingBackend per WebPage being served so this is convenient. When sending the
IPC to the GPUProcess to construct the RemoteRenderingBackend, the WebProcess now sends
the page identifier as well as the value of the canShowWhileLocked flag so that we
can use the correct canShowWhileLocked flag when constructing the visibility propagation
view.
The logic in the UIProcess for dealing with GPUProcess visibility propagation views
is now almost identical to WebProcess visibility propagation views. They are stored on
the WebPageProxy and get swapped on process-swap (since a new WebPage gets created).
- GPUProcess/GPUConnectionToWebProcess.cpp:
(WebKit::GPUConnectionToWebProcess::createRenderingBackend):
- GPUProcess/GPUConnectionToWebProcess.h:
- GPUProcess/GPUConnectionToWebProcess.messages.in:
- GPUProcess/GPUProcess.cpp:
(WebKit::GPUProcess::initializeGPUProcess):
- GPUProcess/GPUProcess.h:
- GPUProcess/graphics/RemoteRenderingBackend.cpp:
(WebKit::RemoteRenderingBackend::create):
(WebKit::RemoteRenderingBackend::RemoteRenderingBackend):
- GPUProcess/graphics/RemoteRenderingBackend.h:
- GPUProcess/graphics/RemoteRenderingBackendCreationParameters.h: Added.
(WebKit::RemoteRenderingBackendCreationParameters::encode const):
(WebKit::RemoteRenderingBackendCreationParameters::decode):
- UIProcess/Cocoa/WebPageProxyCocoa.mm:
(WebKit::WebPageProxy::didCreateContextInWebProcessForVisibilityPropagation):
(WebKit::WebPageProxy::didCreateContextInGPUProcessForVisibilityPropagation):
- UIProcess/GPU/GPUProcessProxy.cpp:
(WebKit::GPUProcessProxy::getGPUProcessConnection):
(WebKit::GPUProcessProxy::didCreateContextForVisibilityPropagation):
- UIProcess/GPU/GPUProcessProxy.h:
- UIProcess/GPU/GPUProcessProxy.messages.in:
- UIProcess/PageClient.h:
(WebKit::PageClient::didCreateContextInWebProcessForVisibilityPropagation):
- UIProcess/ProvisionalPageProxy.cpp:
(WebKit::ProvisionalPageProxy::ProvisionalPageProxy):
(WebKit::ProvisionalPageProxy::didCreateContextInWebProcessForVisibilityPropagation):
(WebKit::ProvisionalPageProxy::didCreateContextInGPUProcessForVisibilityPropagation):
(WebKit::ProvisionalPageProxy::didReceiveMessage):
- UIProcess/ProvisionalPageProxy.h:
(WebKit::ProvisionalPageProxy::contextIDForVisibilityPropagationInWebProcess const):
(WebKit::ProvisionalPageProxy::contextIDForVisibilityPropagationInGPUProcess const):
- UIProcess/SuspendedPageProxy.cpp:
(WebKit::SuspendedPageProxy::SuspendedPageProxy):
- UIProcess/SuspendedPageProxy.h:
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::swapToProvisionalPage):
(WebKit::WebPageProxy::resetState):
(WebKit::WebPageProxy::gpuProcessCrashed):
- UIProcess/WebPageProxy.h:
- UIProcess/WebPageProxy.messages.in:
- UIProcess/WebProcessProxy.cpp:
- UIProcess/WebProcessProxy.h:
- UIProcess/ios/PageClientImplIOS.h:
- UIProcess/ios/PageClientImplIOS.mm:
(WebKit::PageClientImpl::didCreateContextInWebProcessForVisibilityPropagation):
- UIProcess/ios/WKContentView.h:
- UIProcess/ios/WKContentView.mm:
(-[WKContentView _commonInitializationWithProcessPool:configuration:]):
(-[WKContentView _setupVisibilityPropagationViewForWebProcess]):
(-[WKContentView _setupVisibilityPropagationViewForGPUProcess]):
(-[WKContentView _removeVisibilityPropagationViewForWebProcess]):
(-[WKContentView _processDidExit]):
(-[WKContentView _gpuProcessCrashed]):
(-[WKContentView _didRelaunchProcess]):
(-[WKContentView _webProcessDidCreateContextForVisibilityPropagation]):
- WebKit.xcodeproj/project.pbxproj:
- WebProcess/GPU/graphics/RemoteRenderingBackendProxy.cpp:
(WebKit::RemoteRenderingBackendProxy::create):
(WebKit::RemoteRenderingBackendProxy::RemoteRenderingBackendProxy):
(WebKit::RemoteRenderingBackendProxy::~RemoteRenderingBackendProxy):
(WebKit::RemoteRenderingBackendProxy::connectToGPUProcess):
(WebKit::RemoteRenderingBackendProxy::reestablishGPUProcessConnection):
(WebKit::RemoteRenderingBackendProxy::messageSenderDestinationID const):
(WebKit::RemoteRenderingBackendProxy::waitForDidCreateImageBufferBackend):
(WebKit::RemoteRenderingBackendProxy::waitForDidFlush):
(WebKit::RemoteRenderingBackendProxy::createImageBuffer):
(WebKit::RemoteRenderingBackendProxy::sharedMemoryForGetImageData):
(WebKit::RemoteRenderingBackendProxy::destroyGetImageDataSharedMemory):
(WebKit::RemoteRenderingBackendProxy::getDataURLForImageBuffer):
(WebKit::RemoteRenderingBackendProxy::getDataForImageBuffer):
(WebKit::RemoteRenderingBackendProxy::getBGRADataForImageBuffer):
(WebKit::RemoteRenderingBackendProxy::getShareableBitmap):
(WebKit::RemoteRenderingBackendProxy::cacheNativeImage):
(WebKit::RemoteRenderingBackendProxy::cacheFont):
(WebKit::RemoteRenderingBackendProxy::deleteAllFonts):
(WebKit::RemoteRenderingBackendProxy::releaseRemoteResource):
(WebKit::RemoteRenderingBackendProxy::sendWakeupMessage):
(WebKit::RemoteRenderingBackendProxy::didAppendData):
(WebKit::RemoteRenderingBackendProxy::createItemBuffer):
(WebKit::RemoteRenderingBackendProxy::renderingBackendIdentifier const):
- WebProcess/GPU/graphics/RemoteRenderingBackendProxy.h:
- WebProcess/WebPage/WebPage.cpp:
(WebKit::m_lastNavigationWasAppBound):
(WebKit::WebPage::updatePreferences):
(WebKit::WebPage::ensureRemoteRenderingBackendProxy):
- 10:19 AM Changeset in webkit [275767] 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
- 10:19 AM Changeset in webkit [275766] by
-
- 3 edits in branches/safari-611-branch/Source/WebKit
Cherry-pick r274377. rdar://problem/76412582
AX: PDF frame conversion routines need to be updated
https://bugs.webkit.org/show_bug.cgi?id=223138
Reviewed by Darin Adler.
PDF bounding boxes are wrong in WebKit because.
1) There's no way for PDF objects to get the primary screen height. So we need to be able to return the primary
screen height from an object in the PDF hierarchy.
2) The WKPDFPluginAccessibilityObject's position was not being converted correctly.
- WebProcess/Plugins/PDF/PDFPlugin.mm: (-[WKPDFPluginAccessibilityObject accessibilityAttributeValue:]): (-[WKPDFPluginAccessibilityObject ALLOW_DEPRECATED_IMPLEMENTATIONS_END]): (WebKit::PDFPlugin::boundsOnScreen const):
- WebProcess/WebPage/mac/WKAccessibilityWebPageObjectMac.mm: (-[WKAccessibilityWebPageObject accessibilityAttributeValue:]):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@274377 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 9:43 AM Changeset in webkit [275765] by
-
- 9 edits in trunk/Source
[Cocoa] Reduce usage of autorelease, fix mistakes noticed nearby code using autorelease
https://bugs.webkit.org/show_bug.cgi?id=224340
Reviewed by Anders Carlsson.
Source/WebCore:
- bridge/objc/objc_instance.h: Added a static member function isInStringValue to
help factor the _web_description method better.
- bridge/objc/objc_instance.mm:
(JSC::Bindings::ObjcInstance::stringValue const): Removed unneeded WTF prefixes.
(JSC::Bindings::ObjcInstance::isInStringValue): Added.
(-[NSObject _web_description]): Moved this out of the C++ namespace since it's an
Objective-C class implementation. Refactored for simplicity.
Source/WebKit:
- NetworkProcess/cocoa/NetworkDataTaskCocoa.h: Use RetainPtr<NSURLRequest> instead of
strong NSURLRequest*& for the in/out argument of the
applySniffingPoliciesAndBindRequestToInferfaceIfNeeded function.
- NetworkProcess/cocoa/NetworkDataTaskCocoa.mm:
(WebKit::NetworkDataTaskCocoa::applySniffingPoliciesAndBindRequestToInferfaceIfNeeded):
Updated to use RetainPtr instead of strong. Also fixed some incorrect uses of %llu
to log NSUInteger and uint64_t, switching to "%lu" (and casting to unsigned long to
retain 32-bit compatibility) and "%" PRIu64 respectively.
(WebKit::NetworkDataTaskCocoa::NetworkDataTaskCocoa): Ditto.
(WebKit::NetworkDataTaskCocoa::willPerformHTTPRedirection): Ditto.
- NetworkProcess/cocoa/NetworkSessionCocoa.mm:
(setIgnoreHSTS): Added. Helper function so the code that makes a mutableCopy is isolated
in a helper function for clarity. A good counterpart to the existing ignoreHSTS function.
(updateIgnoreStrictTransportSecuritySetting): Changed to use a RetainPtr<NSURLRequest>
in/out argument instead of an argument plus a return value, obviating the need to use
autorelease and making this easier to read. Used setIgnoreHSTS for brevity in implementation.
(-[WKNetworkSessionDelegate URLSession:task:willPerformHTTPRedirection:newRequest:completionHandler:]):
Update for change to updateIgnoreStrictTransportSecuritySetting.
(-[WKNetworkSessionDelegate URLSession:task:_schemeUpgraded:completionHandler:]): Ditto.
(WebKit::proxyDictionary): Return a RetainPtr instead of something autoreleased.
(WebKit::NetworkSessionCocoa::NetworkSessionCocoa): Call get() on the result of the
proxyDictionary function.
- UIProcess/API/Cocoa/WKBrowsingContextController.mm:
(makePolicyDecisionBlock): Return a BlockPtr instead of an autoreleased block.
Also use a lambda and retainWK for better clarity on capture semantics rather than
doing a WKRetain in the caller and a WKRelease in the block.
(setUpPagePolicyClient): Call get() on the result of the
makePolicyDecisionBlock function.
- WebProcess/WebPage/RemoteLayerTree/PlatformCAAnimationRemote.mm:
(WebKit::animationValueFromKeyframeValue): Return a RetainPtr instead of an
autoreleased object.
(WebKit::createAnimation): Call get() on the result of the
animationValueFromKeyframeValue function.
- 9:38 AM Changeset in webkit [275764] by
-
- 3 edits in trunk/Source/WebKit
[Cocoa] Silence a CFNetwork preference file access warning
https://bugs.webkit.org/show_bug.cgi?id=224344
<rdar://problem/75839558>
Reviewed by Eric Carlson.
Silence sandbox telemetry and reports when CFNetwork attempts to read an unimportant preference
when executing in the WebContent process. This has been confirmed to be a silent/safe failiure
case (just returns false) and is not needed in the WebContent process.
- Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
- WebProcess/com.apple.WebProcess.sb.in:
- 8:58 AM Changeset in webkit [275763] by
-
- 24 edits in trunk
calc() values resulting from blending mixed type lengths should be simplified
https://bugs.webkit.org/show_bug.cgi?id=224322
Reviewed by Sam Weinig.
LayoutTests/imported/w3c:
Mark 84 WPT progressions.
- 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-shapes/animation/shape-outside-composition-expected.txt:
- web-platform-tests/css/css-shapes/animation/shape-outside-interpolation-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:
While we simplify calc() values upon parsing such that operations are resolved and
values are sorted (percentages first then alphabetically by unit), we didn't do this
when creating calc() values during blending of lengths of mixed types.
- css/CSSCalculationValue.cpp:
(WebCore::CSSCalcValue::create const):
LayoutTests:
Modify a few tests to account for the correct serialization.
- fast/css/object-position/parsing-object-position-expected.txt:
- fast/css/object-position/parsing-object-position.html:
- fast/shapes/shape-outside-floats/shape-outside-animation-expected.txt:
- fast/shapes/shape-outside-floats/shape-outside-animation.html:
- transitions/background-position-transitions.html:
- transitions/background-position-transitions-expected.txt:
- transitions/resources/transition-test-helpers.js: set computedValue such that
failures print out the actual value instead of "undefined".
- 8:02 AM Changeset in webkit [275762] by
-
- 4 edits5 adds5 deletes in trunk/LayoutTests
[LayoutTests] Convert http/tests/cookies convert PHP to Python
https://bugs.webkit.org/show_bug.cgi?id=223891
<rdar://problem/75965634>
Reviewed by Jonathan Bedard.
- http/tests/cookies/multiple-redirect-and-set-cookie.php: Removed.
- http/tests/cookies/multiple-redirect-and-set-cookie.py: Added.
(redirect_url):
(redirect_to_step):
(step0):
(step2):
- http/tests/cookies/resources/cookie-utilities.php: Removed.
- http/tests/cookies/resources/cookie_utilities.py: Added.
(hostname_is_equal_to_string):
(reset_cookies_for_current_origin):
(reset_cookies):
(should_reset_cookies):
(wk_set_cookie):
- http/tests/cookies/same-site/set-first-party-cross-site-cookies.php: Removed.
- http/tests/cookies/same-site/set-first-party-cross-site-cookies.py: Added.
- http/tests/cookies/same-site/set-first-party-same-site-cookies.php: Removed.
- http/tests/cookies/same-site/set-first-party-same-site-cookies.py: Added.
- http/tests/cookies/same-site/user-load-cross-site-redirect.php: Removed.
- http/tests/cookies/same-site/user-load-cross-site-redirect.py: Added.
- platform/gtk/TestExpectations:
- platform/mac/TestExpectations:
- platform/wpe/TestExpectations:
- 6:48 AM Changeset in webkit [275761] by
-
- 2 edits in trunk/Source/WebCore
[RenderTreeBuilder] Cleanup the inline box wrappers when moving subtrees
https://bugs.webkit.org/show_bug.cgi?id=224342
<rdar://76349279>
Reviewed by Antti Koivisto.
When an inline box is moved over to a different BFC (<span>), any inline level descendant (<span><img></span>) should release its inline box wrapper. This inline box wrapper (e.g. InlineFlowBox)
will eventually be destroy during the subsequent line layout of the original BFC.
- rendering/updating/RenderTreeBuilder.cpp:
(WebCore::RenderTreeBuilder::move):
- 6:25 AM Changeset in webkit [275760] by
-
- 10 edits in trunk
[iOS][FCR] Use context menus for text input datalist dropdowns
https://bugs.webkit.org/show_bug.cgi?id=224287
<rdar://problem/76351317>
Reviewed by Wenson Hsieh.
Source/WebKit:
Use context menus rather than popovers to present suggested values for
text inputs with an associated datalist element.
- Platform/spi/ios/UIKitSPI.h:
- UIProcess/API/ios/WKWebViewPrivateForTestingIOS.h:
Expose _isShowingDatalistSuggestions for testing. Previously, the test
runner traversed the view hierarchy in order to determine whether the
suggestions were visible. However, that approach is not reliable since
we no longer own the presented view, and UIKit could change the
implementation details of context menus.
- UIProcess/API/ios/WKWebViewTestingIOS.mm:
(-[WKWebView _isShowingDataListSuggestions]):
- UIProcess/ios/WKContentViewInteraction.h:
- UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView doAfterEditorStateUpdateAfterFocusingElement:]):
Add a mechanism to perform actions after an editor state update when
focusing an element. If an update is not expected, run the block
immediately.
See below for details on why this is necessary.
(-[WKContentView _didUpdateEditorState]):
Run any pending blocks that were awaiting an editor state update.
(-[WKContentView isShowingDataListSuggestions]):
- UIProcess/ios/WebDataListSuggestionsDropdownIOS.h:
- UIProcess/ios/WebDataListSuggestionsDropdownIOS.mm:
(-[WKDataListSuggestionsDropdown invalidate]):
(-[WKDataListSuggestionsDropdown didSelectOptionAtIndex:]):
(-[WKDataListSuggestionsDropdown _showSuggestions]):
Present a context menu displaying the suggestions if one is not already
presented.
Note that focusing text fields can result in automatic zooming of the
webview. This zooming occurs after an editor state update for focused
elements. The presentation of the context menu is deferred to run
after an editor state update to ensure any zooming occurs before
showing the menu. Without this deferred presentation mechanism, the
context menu can be presented before the state update, partially
obscuring the webview and resulting in an incorrect zoom once the
update occurs.
If a menu is already presented, use
updateVisibleMenuWithBlock:
to
update the contents of the menu.
(-[WKDataListSuggestionsDropdown _updateTextSuggestions]):
(-[WKDataListSuggestionsDropdown _updateSuggestionsMenuElements]):
(-[WKDataListSuggestionsDropdown _removeContextMenuInteraction]):
(-[WKDataListSuggestionsDropdown _suggestionsMenuDidPresent]):
(-[WKDataListSuggestionsDropdown _suggestionsMenuDidDismiss]):
(-[WKDataListSuggestionsDropdown _preferredEdgeInsetsForSuggestionsMenu]):
By default, context menus can obscure the presenting element if there
are too many options. Inset the menu so that it does not overlap the
text field. Present the menu above the text field if there is less
space underneath the field.
(-[WKDataListSuggestionsDropdown contextMenuInteraction:previewForHighlightingMenuWithConfiguration:]):
(-[WKDataListSuggestionsDropdown _contextMenuInteraction:styleForMenuWithConfiguration:]):
(-[WKDataListSuggestionsDropdown contextMenuInteraction:configurationForMenuAtLocation:]):
(-[WKDataListSuggestionsDropdown contextMenuInteraction:willDisplayMenuForConfiguration:animator:]):
(-[WKDataListSuggestionsDropdown contextMenuInteraction:willEndForConfiguration:animator:]):
Tools:
- WebKitTestRunner/ios/UIScriptControllerIOS.mm:
(WTR::UIScriptControllerIOS::isShowingDataListSuggestions const):
Use the exposed information from the webview to determine whether the
datalist suggestions are visible, rather than traversing the view
hierarchy.
- 4:43 AM Changeset in webkit [275759] by
-
- 6 edits in trunk
[GTK][WPE] Bump libsoup3 version to 2.99.3
https://bugs.webkit.org/show_bug.cgi?id=224362
Patch by Carlos Garcia Campos <cgarcia@igalia.com> on 2021-04-09
Reviewed by Žan Doberšek.
.:
- Source/cmake/OptionsGTK.cmake:
- Source/cmake/OptionsWPE.cmake:
Source/WebCore:
- platform/network/soup/GUniquePtrSoup.h:
- platform/network/soup/ResourceResponseSoup.cpp:
(WebCore::ResourceResponse::platformSuggestedFilename const):
- 4:35 AM Changeset in webkit [275758] by
-
- 4 edits2 adds in trunk
[css-flexbox] max-height percentages are wrongly resolved for replaced grid items in nested percentage flexboxes
https://bugs.webkit.org/show_bug.cgi?id=223931
Patch by Ziran Sun <Ziran Sun> on 2021-04-09
Reviewed by Javier Fernandez.
LayoutTests/imported/w3c:
- web-platform-tests/css/css-flexbox/percentage-max-height-004-expected.html: Added.
- web-platform-tests/css/css-flexbox/percentage-max-height-004.html: Added.
Source/WebCore:
This change is to make sure that when overridingContainingBlockContentLogicalHeight of a replaced's containing block
element is indefinite, % max-height of the replaced element is resolved to none.
Test: imported/w3c/web-platform-tests/css/css-flexbox/percentage-max-height-004.html
- rendering/RenderBoxModelObject.cpp:
(WebCore::RenderBoxModelObject::hasAutoHeightOrContainingBlockWithAutoHeight const):
- 3:58 AM WebKitGTK/2.32.x edited by
- (diff)
- 3:56 AM Changeset in webkit [275757] by
-
- 2 edits in trunk/Source/WebCore
Unreviewed, GStreamer Thunder decryptor build fix after r275599
- platform/graphics/gstreamer/eme/WebKitThunderDecryptorGStreamer.cpp:
(decrypt):
- 3:25 AM Changeset in webkit [275756] by
-
- 3 edits in trunk/Source/WebCore
Teardown shadow root renderers on SlotAssignment::didChangeSlot
https://bugs.webkit.org/show_bug.cgi?id=221386
Patch by Carlos Garcia Campos <cgarcia@igalia.com> on 2021-04-09
Reviewed by Ryosuke Niwa.
This reverts r272900 to move the call to RenderTreeUpdater::tearDownRenderers() from hostChildElementDidChange()
to didChangeSlot(). This ensures the renderers are also cleared for other shadow root trees not using details
element.
- dom/SlotAssignment.cpp:
(WebCore::SlotAssignment::addSlotElementByName):
(WebCore::SlotAssignment::didChangeSlot):
- dom/SlotAssignment.h:
(WebCore::ShadowRoot::hostChildElementDidChange):
- 2:35 AM WebKitGTK/2.32.x edited by
- (diff)
- 2:34 AM WebKitGTK/2.32.x edited by
- (diff)
- 2:29 AM Changeset in webkit [275755] by
-
- 4 edits in trunk
[GStreamer] fast/canvas/canvas-createPattern-video-loading.html is failing since r218170
https://bugs.webkit.org/show_bug.cgi?id=173410
Patch by Philippe Normand <pnormand@igalia.com> on 2021-04-09
Reviewed by Xabier Rodriguez-Calvar.
Source/WebCore:
When a flush has been requested by the GL video sink, allocate a new copy of the sample
which has to be released. The copy is necessary so that the video dimensions can still be
fetched and also for canvas rendering. The release is necessary because the sample might
have been allocated by a hardware decoder and memory might have to be reclaimed by a
non-sysmem buffer pool.
- platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
(WebCore::MediaPlayerPrivateGStreamer::flushCurrentBuffer):
(WebCore::MediaPlayerPrivateGStreamer::paint):
LayoutTests:
- platform/gtk/TestExpectations: Unflag now-passing test.
- 2:17 AM Changeset in webkit [275754] by
-
- 6 edits in trunk
[css-grid] Fix min/max widths of grid affected by ancestor
https://bugs.webkit.org/show_bug.cgi?id=222100
Patch by Ziran Sun <Ziran Sun> on 2021-04-09
LayoutTests/imported/w3c:
Reviewed by Javier Fernandez.
- web-platform-tests/css/css-grid/grid-items/grid-items-percentage-paddings-002-expected.txt:
- web-platform-tests/css/css-grid/grid-items/grid-items-percentage-paddings-vertical-lr-002-expected.txt:
- web-platform-tests/css/css-grid/grid-items/grid-items-percentage-paddings-vertical-rl-002-expected.txt:
Source/WebCore:
Reviewed by Reviewed by Javier Fernandez.
It's a reland of r273435, which got reverted because it broke
imported/w3c/web-platform-tests/css/css-flexbox/percentage-max-height-003.html. This change
narrows down the fix specificallly to the case when logical-width is recomputed.
We need to recalculate min/max widths of child that depend on the ancestor.
Before update logical-width, for element that needs preferredWidth recalcution,
it is necessary to make sure that min/max widths are set dirty.
This change is an import of chromium CL at
https://chromium-review.googlesource.com/c/chromium/src/+/527640/
Only the parts that apply to this issue are imported.
Tests were already imported in WPT.
- rendering/RenderBlock.cpp:
(WebCore::shouldRecalculateMinMaxWidthsAffectedByAncestor):
(WebCore::RenderBlock::recomputeLogicalWidth):
- 2:17 AM Changeset in webkit [275753] by
-
- 2 edits in trunk/Tools/buildstream
[Flatpak SDK] Update to libsoup 2.99.3
https://bugs.webkit.org/show_bug.cgi?id=224361
Patch by Philippe Normand <pnormand@igalia.com> on 2021-04-09
Reviewed by Carlos Garcia Campos.
- elements/sdk/libsoup3.bst:
- 2:11 AM Changeset in webkit [275752] by
-
- 2 edits in trunk/LayoutTests
[ Mac WK2 ] compositing/animation/keyframe-order.html is a flakey image failure
https://bugs.webkit.org/show_bug.cgi?id=221359
Reviewed by Dean Jackson.
Attempt to make this test more stable by awaiting the resolution of the animation.ready
promise as well as UIHelper.renderingUpdate() to ensure the animation has been committed.
- compositing/animation/keyframe-order.html:
- 2:06 AM WebKitGTK/2.32.x edited by
- (diff)
- 1:54 AM Changeset in webkit [275751] by
-
- 5 edits4 adds in trunk
ServiceWorker should save module scripts
https://bugs.webkit.org/show_bug.cgi?id=224356
<rdar://problem/75634897>
Reviewed by Youenn Fablet.
Source/WebCore:
Test: http/wpt/service-workers/persistent-modules.html
In this patch, we call setScriptResource / scriptResource while loading service-worker module scripts in module loaders,
so that we can ensure that they are saved on the disk.
- bindings/js/ScriptModuleLoader.cpp:
(WebCore::ScriptModuleLoader::notifyFinished):
- bindings/js/WorkerModuleScriptLoader.cpp:
(WebCore::WorkerModuleScriptLoader::load):
(WebCore::WorkerModuleScriptLoader::notifyFinished):
(WebCore::WorkerModuleScriptLoader::notifyClientFinished):
- bindings/js/WorkerModuleScriptLoader.h:
LayoutTests:
- http/wpt/service-workers/persistent-modules-expected.txt: Added.
- http/wpt/service-workers/persistent-modules.html: Added.
- http/wpt/service-workers/resources/persistent-imported-module-script.py: Added.
(main):
- http/wpt/service-workers/resources/persistent-module-worker.js: Added.
Apr 8, 2021:
- 11:05 PM Changeset in webkit [275750] by
-
- 6 edits in trunk/Source
[Win] Wrong KeyboardEvent.key for numeric key pad with NumLock
https://bugs.webkit.org/show_bug.cgi?id=224352
Reviewed by Don Olmstead.
Source/WebCore:
8
key on a numeric key pad with NumLock dispatched a wrong
KeyboardEvent withArrowUp
as thekey
value. It should be8
.
WindowsKeyNames::domKeyFromLParam computed a virtual key by
MapVirtualKey and a scan code. But, it should use a real virtual
key conveyed by WPARAM of WM_KEYDOWN and WM_KEYUP events.
- platform/win/KeyEventWin.cpp:
(WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):
- platform/win/WindowsKeyNames.cpp:
(WebCore::WindowsKeyNames::domKeyFromParams):
(WebCore::WindowsKeyNames::domKeyFromLParam): Deleted.
- platform/win/WindowsKeyNames.h:
Source/WebKit:
- Shared/win/WebEventFactory.cpp:
(WebKit::WebEventFactory::createWebKeyboardEvent):
- 9:25 PM Changeset in webkit [275749] by
-
- 8 edits in trunk/Source
Add a completion handler argument to
ChromeClient::requestImageExtraction
https://bugs.webkit.org/show_bug.cgi?id=224348
Reviewed by Tim Horton.
Source/WebCore:
See WebKit/ChangeLog for more details. No change in behavior.
- html/HTMLElement.h:
Export an existing helper method.
- page/ChromeClient.h:
(WebCore::ChromeClient::requestImageExtraction):
Add a (null-by-default)
CompletionHandler
argument to this client method, for future use by accessibility.
Source/WebKit:
Add an optional completion handler argument to
ChromeClient::requestImageExtraction
. If specified, this
completion handler will be invoked with the image overlay host element (if present), once image extraction
finishes, or if the element is not suitable for image extraction.
- WebProcess/WebCoreSupport/WebChromeClient.cpp:
(WebKit::WebChromeClient::requestImageExtraction):
- WebProcess/WebCoreSupport/WebChromeClient.h:
- WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::didCommitLoad):
(WebKit::WebPage::requestImageExtraction):
Refactor this code, such that the data structure that (weakly) holds elements pending image extraction is
distinct from the set of elements that have completed image extraction. This allows us to queue completion
handlers to each element with a pending image extraction request, and invoke them once image extraction is
finished.
The existing weak set,
m_elementsWithExtractedImages
, is now repurposed to keep track of only elements that
have finished image extraction (and may or may not contain an image overlay). The new member variable,
m_elementsPendingImageExtraction
, maintains pairs of weak elements and completion handlers; upon finishing
image extraction, each completion handler corresponding to the element (if it still exists) will be invoked.
Since the element is weakly held, in the case where the element is destroyed before image extraction finishes,
we will clean up the (now-null) entries inm_elementsPendingImageExtraction
when the image extraction request
is finished.
- WebProcess/WebPage/WebPage.h:
- 9:06 PM Changeset in webkit [275748] by
-
- 10 edits in trunk
PCM: Write more blinded secret tests
https://bugs.webkit.org/show_bug.cgi?id=222018
<rdar://problem/74674160>
Reviewed by John Wilander.
Source/WebKit:
Covered by new tests.
- NetworkProcess/PrivateClickMeasurementManager.cpp:
(WebKit::PrivateClickMeasurementManager::fireConversionRequest):
The KeyID is no longer truncated.
- UIProcess/API/Cocoa/WKWebViewPrivateForTesting.h:
- UIProcess/API/Cocoa/WKWebViewTesting.mm:
(-[WKWebView _setPrivateClickMeasurementAttributionTokenPublicKeyURLForTesting:completionHandler:]):
(-[WKWebView _setPrivateClickMeasurementAttributionTokenSignatureURLForTesting:completionHandler:]):
- UIProcess/API/ios/WKWebViewPrivateForTestingIOS.h:
- UIProcess/API/ios/WKWebViewTestingIOS.mm:
(-[WKWebView _setUIEventAttributionForTesting:withNonce:]):
Adds SPI for testing.
Tools:
- TestWebKitAPI/Tests/WebKitCocoa/EventAttribution.mm:
(TestWebKitAPI::TEST):
Adds the new test.
LayoutTests:
- http/tests/privateClickMeasurement/store-private-click-measurement-with-source-nonce.html:
- 8:49 PM Changeset in webkit [275747] by
-
- 18 edits in trunk
Serialize URL instead of entire challenge for informing client that modern TLS was negotiated
https://bugs.webkit.org/show_bug.cgi?id=224346
Source/WebKit:
<rdar://76421667>
Reviewed by Geoff Garen.
This callback is only used in Safari, and they only use the host.
We are serializing the certificate chain, during which we evaluate the trustedness and correctness of the certificate chain.
This patch removes that unused operation.
- NetworkProcess/NetworkDataTask.h:
(WebKit::NetworkDataTaskClient::didNegotiateModernTLS):
- NetworkProcess/NetworkLoad.cpp:
(WebKit::NetworkLoad::didNegotiateModernTLS):
- NetworkProcess/NetworkLoad.h:
- NetworkProcess/cocoa/NetworkDataTaskCocoa.h:
- NetworkProcess/cocoa/NetworkDataTaskCocoa.mm:
(WebKit::NetworkDataTaskCocoa::didNegotiateModernTLS):
- NetworkProcess/cocoa/NetworkSessionCocoa.mm:
(-[WKNetworkSessionDelegate URLSession:task:didReceiveChallenge:completionHandler:]):
- UIProcess/API/APINavigationClient.h:
(API::NavigationClient::didNegotiateModernTLS):
- UIProcess/API/Cocoa/WKNavigationDelegatePrivate.h:
- UIProcess/Cocoa/NavigationState.h:
- UIProcess/Cocoa/NavigationState.mm:
(WebKit::NavigationState::setNavigationDelegate):
(WebKit::NavigationState::NavigationClient::didNegotiateModernTLS):
- UIProcess/Network/NetworkProcessProxy.cpp:
(WebKit::NetworkProcessProxy::didNegotiateModernTLS):
- UIProcess/Network/NetworkProcessProxy.h:
- UIProcess/Network/NetworkProcessProxy.messages.in:
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::didNegotiateModernTLS):
- UIProcess/WebPageProxy.h:
Tools:
Reviewed by Geoff Garen.
- TestWebKitAPI/Tests/WebKitCocoa/TLSDeprecation.mm:
(-[TLSNavigationDelegate waitForDidNegotiateModernTLS]):
(-[TLSNavigationDelegate _webView:didNegotiateModernTLSForURL:]):
(TestWebKitAPI::TEST):
(-[TLSNavigationDelegate _webView:didNegotiateModernTLS:]): Deleted.
- 7:23 PM Changeset in webkit [275746] by
-
- 2 edits in branches/safari-611-branch/Source/WebCore
Cherry-pick r274403. rdar://problem/76374004
Cancel image loader events after first dispatch
https://bugs.webkit.org/show_bug.cgi?id=218556
Patch by Rob Buis <rbuis@igalia.com> on 2021-03-14
Reviewed by Darin Adler.
Address post review comments.
- dom/EventSender.h: (WebCore::EventSender<T>::dispatchPendingEvents):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@274403 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 7:23 PM Changeset in webkit [275745] by
-
- 4 edits in branches/safari-611-branch/Source/WebCore
Cherry-pick r274357. rdar://problem/76374004
Cancel image loader events after first dispatch
https://bugs.webkit.org/show_bug.cgi?id=218556
Patch by Rob Buis <rbuis@igalia.com> on 2021-03-12
Reviewed by Ryosuke Niwa.
Cancel image loader events after first dispatch.
Also change EventSender to use WeakPtr.
- dom/EventSender.h: (WebCore::EventSender<T>::dispatchEventSoon): (WebCore::EventSender<T>::dispatchPendingEvents):
- loader/ImageLoader.cpp: (WebCore::ImageLoader::dispatchPendingErrorEvent):
- loader/ImageLoader.h:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@274357 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 7:23 PM Changeset in webkit [275744] by
-
- 5 edits in branches/safari-611-branch
Cherry-pick r274199. rdar://problem/76416079
Unreviewed, reverting r274054.
Broke http/tests/misc/empty-urls.html
Reverted changeset:
"Use counters for pending events"
https://bugs.webkit.org/show_bug.cgi?id=218556
https://commits.webkit.org/r274054
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@274199 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 7:23 PM Changeset in webkit [275743] by
-
- 2 edits in branches/safari-611-branch/Source/WTF
Cherry-pick r275003. rdar://problem/76411341
WTF::setPermissionsOfConfigPage() should allow its VM_FLAGS_PERMANENT workaround unconditionally.
https://bugs.webkit.org/show_bug.cgi?id=223725
rdar://75813316
Reviewed by Saam Barati.
If the OS does not support the flag, then we should not require it.
- wtf/WTFConfig.cpp: (WTF::setPermissionsOfConfigPage):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@275003 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 7:23 PM Changeset in webkit [275742] by
-
- 2 edits in branches/safari-611-branch/Source/WTF
Cherry-pick r274898. rdar://problem/76412278
Don't require VM_FLAGS_PERMANENT on the simulator builds
https://bugs.webkit.org/show_bug.cgi?id=223649
<rdar://problem/75747788>
Reviewed by Alexey Proskuryakov.
Since VM_FLAGS_PERMANENT must be supported by the kernel, let's make
it so that the vm_map that passes this flag in can fail when running
on the simulator. This is to support the use case of running a newer
simulator on an older OS. When the call to vm_map fails when running
on the simulator, we try again without the VM_FLAGS_PERMANENT flag.
- wtf/WTFConfig.cpp: (WTF::setPermissionsOfConfigPage):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@274898 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 7:23 PM Changeset in webkit [275741] by
-
- 2 edits in branches/safari-611-branch/Source/WebCore
Cherry-pick r274877. rdar://problem/76373841
Enable the quirk to disable firing "webkitendfullscreen" event when a video enters picture-in-picture from fullscreen on espn.com
https://bugs.webkit.org/show_bug.cgi?id=223610
Reviewed by Jer Noble.
A video element entering picture-in-picture from fullscreen will fire a "webkitendfullscreen"
event since r266728, but some sites (e.g., espn.com) do not handle the event properly.
Because they assume the video will resume to inline after exiting fullscreen.
This patch enables the quirk for espn.com to disable firing "webkitendfullscreen" event
in that scenario before they fix the issue in the event handler.
- page/Quirks.cpp: (WebCore::Quirks::shouldDisableEndFullscreenEventWhenEnteringPictureInPictureFromFullscreenQuirk const):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@274877 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 7:23 PM Changeset in webkit [275740] by
-
- 6 edits in branches/safari-611-branch/Source
Cherry-pick r274491. rdar://problem/76374243
Terminate network process when making new WebProcessPool in Lutron App
https://bugs.webkit.org/show_bug.cgi?id=223194
<rdar://74674915>
Reviewed by Geoff Garen.
Source/WebCore:
- platform/RuntimeApplicationChecks.h:
- platform/cocoa/RuntimeApplicationChecksCocoa.mm: (WebCore::IOSApplication::isLutron):
- platform/cocoa/VersionChecks.h:
Source/WebKit:
The Lutron App uses allocation of a new WKProcessPool as a way to stop using old session cookies.
Since r267763 we keep the session cookies for the lifetime of a WKWebsiteDataStore instead of making a new process for each WKProcessPool.
Add a quirk for this app until they update to use a new WKWebsiteDataStore or use WKHTTPCookieStore API to clear the cookies properly.
I manually verified this causes the logging out to succeed.
- UIProcess/WebProcessPool.cpp:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@274491 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 7:22 PM Changeset in webkit [275739] by
-
- 9 edits in branches/safari-611-branch/Source
Cherry-pick r274325. rdar://problem/76416354
Adopt VM_FLAGS_PERMANENT for the config vm mapping
https://bugs.webkit.org/show_bug.cgi?id=222086
<rdar://74402690>
Reviewed by Yusuke Suzuki and Mark Lam.
Source/JavaScriptCore:
- runtime/JSCConfig.h: (JSC::Config::configureForTesting):
Source/WebKit:
- Shared/EntryPointUtilities/Cocoa/XPCService/XPCServiceMain.mm: (WebKit::XPCServiceMain):
Source/WTF:
- wtf/PlatformHave.h:
- wtf/Threading.cpp: (WTF::initialize):
- wtf/WTFConfig.cpp: (WTF::setPermissionsOfConfigPage):
- wtf/WTFConfig.h: (WTF::setPermissionsOfConfigPage):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@274325 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 7:22 PM Changeset in webkit [275738] by
-
- 29 edits in branches/safari-611-branch
Cherry-pick r272707. rdar://problem/76375033
Use event loop to set title
https://bugs.webkit.org/show_bug.cgi?id=218496
Patch by Rob Buis <rbuis@igalia.com> on 2021-02-10
Reviewed by Darin Adler.
Source/WebCore:
Use event loop to set title to avoid calling WebFrameLoaderClient
within HTMLTitleElement::insertedIntoAncestor.
- dom/Document.cpp: (WebCore::Document::updateTitle):
- dom/Document.h: (WebCore::Document::titleWithDirection const):
- loader/DocumentLoader.cpp: (WebCore::DocumentLoader::setTitle):
- loader/EmptyClients.h:
- page/Chrome.cpp: (WebCore::Chrome::print):
- page/ChromeClient.h:
Source/WebKit:
Add title parameter to PrintFrame message.
- UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::printFrame):
- UIProcess/WebPageProxy.h:
- UIProcess/WebPageProxy.messages.in:
- WebProcess/WebCoreSupport/WebChromeClient.cpp: (WebKit::WebChromeClient::print):
- WebProcess/WebCoreSupport/WebChromeClient.h:
Source/WebKitLegacy/mac:
Adjust to API change.
- WebCoreSupport/WebChromeClient.h:
- WebCoreSupport/WebChromeClient.mm: (WebChromeClient::print):
Source/WebKitLegacy/win:
Adjust to API change.
- WebCoreSupport/WebChromeClient.cpp: (WebChromeClient::print):
- WebCoreSupport/WebChromeClient.h:
Tools:
Adapt unit tests to wait for title change tasks
to be processed.
- TestWebKitAPI/Tests/WebKit/PageLoadState.cpp: (TestWebKitAPI::didChangeTitle): (TestWebKitAPI::TEST):
- TestWebKitAPI/Tests/WebKitCocoa/UIDelegate.mm: (TEST):
- TestWebKitAPI/Tests/WebKitGLib/TestAuthentication.cpp: (testWebViewAuthenticationFailure): (testWebViewAuthenticationNoCredential): (testWebViewAuthenticationSuccess): (testWebViewAuthenticationEmptyRealm):
- TestWebKitAPI/Tests/WebKitGLib/TestBackForwardList.cpp: (testBackForwardListNavigation):
- TestWebKitAPI/Tests/WebKitGLib/TestLoaderClient.cpp: (testWebViewTitle):
- TestWebKitAPI/Tests/WebKitGLib/TestSSL.cpp: (testLoadFailedWithTLSErrors):
- TestWebKitAPI/Tests/WebKitGLib/TestWebKitSettings.cpp: (testWebKitSettingsJavaScriptMarkup):
- TestWebKitAPI/Tests/WebKitGLib/TestWebKitWebView.cpp: (testWebViewTitleChange):
LayoutTests:
Adapt tests to make sure pending title change tasks
are processed before the test is done.
- TestExpectations:
- fast/dom/title-text-property-2.html:
- fast/dom/title-text-property-assigning-empty-string.html:
- fast/dom/title-text-property.html:
- http/tests/globalhistory/history-delegate-basic-title-expected.txt:
- http/tests/globalhistory/history-delegate-basic-title.html:
- http/tests/loading/basic-auth-load-URL-with-consecutive-slashes-expected.txt:
- http/tests/loading/basic-auth-load-URL-with-consecutive-slashes.html:
- http/tests/loading/redirect-with-no-location-crash-expected.txt:
- http/tests/loading/redirect-with-no-location-crash.html:
- platform/mac-wk2/TestExpectations:
- platform/win/http/tests/loading/basic-auth-load-URL-with-consecutive-slashes-expected.txt: Copied from LayoutTests/http/tests/loading/basic-auth-load-URL-with-consecutive-slashes-expected.txt.
- platform/wk2/http/tests/loading/basic-auth-load-URL-with-consecutive-slashes-expected.txt:
- platform/wk2/http/tests/loading/redirect-with-no-location-crash-expected.txt:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@272707 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 6:49 PM Changeset in webkit [275737] by
-
- 6 edits in trunk
Safari unit tests sometimes fail an ASSERTion in IOSurface.mm's optionsFor32BitSurface()
https://bugs.webkit.org/show_bug.cgi?id=224351
<rdar://problem/76405354>
Reviewed by Wenson Hsieh.
Source/WebCore:
New API test: NavigationSwipeTests.DoNotAssertWhenSnapshottingZeroSizeView
- platform/graphics/cocoa/IOSurface.mm:
(WebCore::IOSurface::IOSurface):
Add assertions that IOSurface size is non-empty at the beginning of the constructor.
We already have downstream ones (e.g. the bytesPerRow and totalBytes
assertions inside optionsFor32BitSurface()), but they are after doing
some math and calling IOSurfaceAlignProperty, so it's tempting to blame
that instead of the input. This way, we fail right at the input, making
it more obvious what's up.
Source/WebKit:
- UIProcess/API/ios/WKWebViewIOS.mm:
(-[WKWebView _takeViewSnapshot]):
Don't take view snapshots for views that have a empty size.
This triggers both the assertions mentioned in the title, and the newly added ones.
Tools:
- TestWebKitAPI/Tests/ios/NavigationSwipeTests.mm:
(TEST):
Add a test that taking navigation snapshots for a 0x0 WKWebView doesn't assert.
- 5:54 PM Changeset in webkit [275736] by
-
- 4 edits in trunk/Source
Fix incorrect compile-time macro for CFNETWORK_NSURLSESSION_ATTRIBUTED_BUNDLE_IDENTIFIER
https://bugs.webkit.org/show_bug.cgi?id=224347
<rdar://problem/76353792>
Reviewed by Brent Fulgham.
Source/WebCore/PAL:
- pal/spi/cf/CFNetworkSPI.h:
Source/WebKit:
- NetworkProcess/cocoa/NetworkSessionCocoa.mm:
(WebKit::NetworkSessionCocoa::NetworkSessionCocoa):
(WebKit::NetworkSessionCocoa::SessionSet::initializeEphemeralStatelessSessionIfNeeded):
- 5:39 PM Changeset in webkit [275735] by
-
- 2 edits in trunk/Source/WebKit
[macOS] WebProcessProxy::sendAudioComponentRegistrations leaks CFDataRef
https://bugs.webkit.org/show_bug.cgi?id=224349
<rdar://problem/76176827>
Reviewed by Jer Noble.
Tested manually.
- UIProcess/Cocoa/WebProcessProxyCocoa.mm:
(WebKit::WebProcessProxy::sendAudioComponentRegistrations): The CFDictionary
returned by AudioComponentFetchServerRegistrations is newly allocated, so adopt
it into the RetainPtr so we don't increase the retain count.
- 4:58 PM Changeset in webkit [275734] by
-
- 2 edits in branches/safari-611-branch/Source/WebKit
Cherry-pick r275625. rdar://problem/76375389
[Cocoa] Incorrect selector used to set logging level
https://bugs.webkit.org/show_bug.cgi?id=224292
<rdar://problem/75379660>
Reviewed by John Wilander.
Use {public} declarations so we get logging in release builds. These strings
are not sensitive.
- NetworkProcess/cocoa/NetworkSessionCocoa.mm: (WebKit::configurationForSessionID):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@275625 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 4:58 PM Changeset in webkit [275733] by
-
- 2 edits in branches/safari-611-branch/Source/WebKit
Cherry-pick r275622. rdar://problem/76375389
[Cocoa] Incorrect selector used to set logging level
https://bugs.webkit.org/show_bug.cgi?id=224292
<rdar://problem/75379660>
Reviewed by John Wilander.
The wrong selector label was used to configure the low-level network logging level.
- NetworkProcess/cocoa/NetworkSessionCocoa.mm: (WebKit::configurationForSessionID):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@275622 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 4:58 PM Changeset in webkit [275732] by
-
- 3 edits2 adds in branches/safari-611-branch
Cherry-pick r275535. rdar://problem/76375208
WebCrypto in Safari will not AES-GCM encrypt 0 bytes
https://bugs.webkit.org/show_bug.cgi?id=224083
<rdar://75093377>
Reviewed by Youenn Fablet.
Source/WebCore:
CommonCrypto will bail out both the encryption and decryption process if the dataOut is a null pointer.
To workaround the issue, this patch forces the dataOut to be a non-null pointer.
Test: crypto/subtle/aes-gcm-generate-key-encrypt-decrypt-null-plain-text.html
- crypto/mac/CryptoAlgorithmAES_GCMMac.cpp: (WebCore::encryptAES_GCM): (WebCore::decyptAES_GCM):
LayoutTests:
- crypto/subtle/aes-gcm-generate-key-encrypt-decrypt-null-plain-text-expected.txt: Added.
- crypto/subtle/aes-gcm-generate-key-encrypt-decrypt-null-plain-text.html: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@275535 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 4:58 PM Changeset in webkit [275731] by
-
- 2 edits in branches/safari-611-branch/Source/WebCore
Cherry-pick r275475. rdar://problem/76416845
Make sure the Frame always gets destroyed on the main thread
https://bugs.webkit.org/show_bug.cgi?id=224213
<rdar://75131946>
Reviewed by Alex Christensen.
Make sure the Frame always gets destroyed on the main thread.
Since http://trac.webkit.org/changeset/181791, Frame is ThreadSafeRefCounted and captured
on other threads. We should make sure the Frame is always destroyed on the main thread
though, since it is a main thread object and we hold WeakPtrs to it in many places.
- page/AbstractFrame.h:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@275475 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 4:58 PM Changeset in webkit [275730] by
-
- 2 edits in branches/safari-611-branch/Source/WebKit
Cherry-pick r275474. rdar://problem/76416845
Protect frame in WebPage::runJavaScriptInFrameInScriptWorld()
https://bugs.webkit.org/show_bug.cgi?id=224210
Reviewed by Alex Christensen.
Between the time we were getting the raw pointer to the frame, and the time were were passing it to
WebPage::runJavaScript(), we were potentially calling WebFrameLoaderClient::dispatchGlobalObjectAvailable().
It is possible in theory for those synchronous injected bundle calls to mess with the frame tree and cause
our frame to go bad. As a result, it is best to protect the frame as soon as we get it.
- WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::runJavaScriptInFrameInScriptWorld):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@275474 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 4:58 PM Changeset in webkit [275729] by
-
- 2 edits in branches/safari-611-branch/Source/WebCore
Cherry-pick r275450. rdar://problem/76374359
PendingImageBitmap gets created on a stopped script execution context.
https://bugs.webkit.org/show_bug.cgi?id=223971
Reviewed by Youenn Fablet.
Don't create a PendingImageBitmap in PendingImageBitmap::fetch
if the associated script execution context had already been stoppped.
The new behavior matches of Chrome although it's technically incorrect.
Correcting it to match the spec & Firefox will refactor a larger fix around
how script execution context is used by the threaded loader.
- html/ImageBitmap.cpp: (WebCore::PendingImageBitmap::fetch):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@275450 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 4:58 PM Changeset in webkit [275728] by
-
- 2 edits in branches/safari-611-branch/Source/WebKit
Cherry-pick r275341. rdar://problem/76375265
Web Inspector: [Cocoa] WKInspectorResourceURLSchemeHandler can exceed the soft thread limit when opening multiple inspectors simultaneously.
https://bugs.webkit.org/show_bug.cgi?id=223958
Reviewed by BJ Burg.
In engineering builds, the Web Inspector is loaded as hundreds of separate resources instead of the handful of
minified sources used for released builds. When two Web Inspector windows are opened their loads can overlap
and it is possible for the sum total of file load operations to exceed the dispatch soft thread limit. To
resolve this, we set a sensible limit to the number of simultaneous inspector loading operations. A higher
number of allowed concurrent operations yielded no noticeable increase in load speeds.
- UIProcess/Inspector/mac/WKInspectorResourceURLSchemeHandler.mm: (-[WKInspectorResourceURLSchemeHandler webView:startURLSchemeTask:]):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@275341 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 4:58 PM Changeset in webkit [275727] by
-
- 5 edits2 adds in branches/safari-611-branch
Cherry-pick r275300. rdar://problem/76375624
In case WebRTC VTB decoder returns a null frame, mark the decoder as failing
https://bugs.webkit.org/show_bug.cgi?id=223993
<rdar://problem/76049206>
Reviewed by Eric Carlson.
Source/ThirdParty/libwebrtc:
In case VTB does not return any pixel buffer, consider decoding is failing.
Set the error so that we we will send the error on the next frame we try to decode.
- Source/webrtc/sdk/objc/components/video_codec/RTCVideoDecoderH264.mm: (decompressionOutputCallback):
- Source/webrtc/sdk/objc/components/video_codec/RTCVideoDecoderH265.mm: (h265DecompressionOutputCallback): (-[RTCVideoDecoderH265 setError:]):
- Source/webrtc/sdk/objc/components/video_codec/RTCVideoDecoderVTBVP9.mm: (vp9DecompressionOutputCallback):
LayoutTests:
- http/wpt/webrtc/webrtc-late-transform-expected.txt: Added.
- http/wpt/webrtc/webrtc-late-transform.html: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@275300 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 4:58 PM Changeset in webkit [275726] by
-
- 2 edits in branches/safari-611-branch/Source/WebCore
Cherry-pick r275230. rdar://problem/76412999
Nullptr crash in applyCommonButtonPaddingToStyle
https://bugs.webkit.org/show_bug.cgi?id=223917
rdar://57262957
Reviewed by Zalan Bujtas.
- rendering/RenderThemeIOS.mm: (WebCore::applyCommonButtonPaddingToStyle):
Null check frame.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@275230 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 4:58 PM Changeset in webkit [275725] by
-
- 2 edits in branches/safari-611-branch/Source/WebCore
Cherry-pick r275168. rdar://problem/76374982
Make a Ref to HTMLPlugInElement when resolving callback
https://bugs.webkit.org/show_bug.cgi?id=223846
Patch by Ian Gilbert <iang@apple.com> on 2021-03-29
Reviewed by Ryosuke Niwa.
Take a Ref to the HTMLPlugInElement to keep it alive while invoking HTMLPlugInElement::swapRendererTimerFired()
- html/HTMLPlugInElement.cpp: (WebCore::HTMLPlugInElement::swapRendererTimerFired):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@275168 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 4:58 PM Changeset in webkit [275724] by
-
- 5 edits4 adds in branches/safari-611-branch
Cherry-pick r275147. rdar://problem/76411207
Use-after-move in UserMediaPermissionRequestManagerProxy::checkUserMediaPermissionForSpeechRecognition
https://bugs.webkit.org/show_bug.cgi?id=223842
<rdar://problem/75791668>
Reviewed by Eric Carlson.
Source/WebKit:
Use request decision handler instead of already moved completion handler.
Tests: fast/speechrecognition/start-recognition-after-denied-gum.html
fast/speechrecognition/start-recognition-after-gum.html
- UIProcess/UserMediaPermissionRequestManagerProxy.cpp: (WebKit::UserMediaPermissionRequestManagerProxy::checkUserMediaPermissionForSpeechRecognition):
LayoutTests:
- fast/speechrecognition/start-recognition-after-denied-gum-expected.txt: Added.
- fast/speechrecognition/start-recognition-after-denied-gum.html: Added.
- fast/speechrecognition/start-recognition-after-gum-expected.txt: Added.
- fast/speechrecognition/start-recognition-after-gum.html: Added.
- platform/mac-wk1/TestExpectations:
- platform/win/TestExpectations:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@275147 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 4:58 PM Changeset in webkit [275723] by
-
- 2 edits in branches/safari-611-branch/Source/WebCore
Cherry-pick r275142. rdar://problem/76411405
UBSan: runtime error: load of value <unknown>, which is not a valid value for type 'const WebCore::RealtimeMediaSourceCapabilities::EchoCancellation'
<https://webkit.org/b/223821>
Reviewed by Chris Dumez.
Tests: fast/mediastream/MediaDevices-addEventListener.html
fast/mediastream/constraint-intrinsic-size.html
http/tests/media/media-stream/enumerate-devices-iframe-allow-attribute.html
http/tests/media/media-stream/get-display-media-iframe-allow-attribute.html
imported/w3c/web-platform-tests/mediacapture-record/MediaRecorder-bitrate.https.html
webrtc/addICECandidate-closed.html
webrtc/ice-candidate-sdpMLineIndex.html
webrtc/libwebrtc/descriptionGetters.html
webrtc/peerconnection-page-cache.html
- platform/mediastream/RealtimeMediaSourceCapabilities.h: (WebCore::CapabilityValueOrRange::union ValueUnion):
- Make asDouble the first union member so C++ member initializers set all memory. (WebCore::CapabilityValueOrRange::m_minOrValue): (WebCore::CapabilityValueOrRange::m_max): (WebCore::CapabilityValueOrRange::m_type): (WebCore::RealtimeMediaSourceCapabilities::m_echoCancellation):
- Provide member initializers. Setting a default value for m_echoCancellation fixes the bug. (WebCore::RealtimeMediaSourceCapabilities::encode const):
- Drive-by clean-up of encoder statement.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@275142 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 4:58 PM Changeset in webkit [275722] by
-
- 2 edits in branches/safari-611-branch/Source/WebKit
Cherry-pick r275011. rdar://problem/76375300
Crash in TextChecker::updateSpellingUIWithGrammarString()
https://bugs.webkit.org/show_bug.cgi?id=223716
Patch by Julian Gonzalez <julian_a_gonzalez@apple.com> on 2021-03-24
Reviewed by Ryosuke Niwa.
Prevent a crash by checking the GrammarDetail's range.
- UIProcess/mac/TextCheckerMac.mm: (WebKit::TextChecker::updateSpellingUIWithGrammarString):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@275011 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 4:58 PM Changeset in webkit [275721] by
-
- 2 edits in branches/safari-611-branch/Source/WebCore
Cherry-pick r274776. rdar://problem/76373875
Better validate JSArrays in AudioWorkletProcessor
https://bugs.webkit.org/show_bug.cgi?id=223548
Reviewed by Geoffrey Garen.
Better validate JSArrays in AudioWorkletProcessor. Replaces debug assertions with runtime
checks for robustness.
- Modules/webaudio/AudioWorkletProcessor.cpp: (WebCore::copyDataFromBusesToJSArray): (WebCore::copyDataFromParameterMapToJSObject): (WebCore::zeroJSArray): (WebCore::AudioWorkletProcessor::buildJSArguments):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@274776 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 4:58 PM Changeset in webkit [275720] by
-
- 2 edits in branches/safari-611-branch/Source/WebInspectorUI
Cherry-pick r274737. rdar://problem/76416315
Uncaught Exception: RangeError: Array size is not a small enough positive integer.
https://bugs.webkit.org/show_bug.cgi?id=223532
<rdar://problem/75635080>
Reviewed by Devin Rousso.
This patch fixes the broken CPU instrument when viewing a JSON timeline recordng.
This exception is thrown when viewing a timeline recording that has been
imported from JSON file. Aside from the exception, the code is functionally
broken in this situation since passing a negative number to Array() doesn't work.
I tested this change manually and selection ranges now behave as expected, and
have not regressed in other instruments / UI.
- UserInterface/Views/CPUTimelineView.js: Based on my investigation, the visibleEndTime is incorrectly computed when showing a JSON timeline recording because the currentTime property is always '0'. If this is the case, then let's assume that the entire range should be displayed.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@274737 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 4:57 PM Changeset in webkit [275719] by
-
- 2 edits in branches/safari-611-branch/Source/WebCore
Cherry-pick r274723. rdar://problem/76375575
Protect frame before calling didBeginDocument
https://bugs.webkit.org/show_bug.cgi?id=217185
Patch by Rob Buis <rbuis@igalia.com> on 2021-03-19
Reviewed by Alex Christensen.
Protect frame before calling didBeginDocument
since it could potentially delete the frame
through event handling.
- loader/DocumentWriter.cpp: (WebCore::DocumentWriter::begin):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@274723 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 4:57 PM Changeset in webkit [275718] by
-
- 4 edits1 add in branches/safari-611-branch
Cherry-pick r274699. rdar://problem/76373830
JS->Wasm IC must save the tag registers if it uses them
https://bugs.webkit.org/show_bug.cgi?id=223491
<rdar://66445108>
Reviewed by Yusuke Suzuki.
JSTests:
- wasm/stress/save-tag-callee-saves-in-js-entrypoint-ic.js: Added. (0x0b.WebAssembly.instantiate.wasm.then.e.const.mod.e.instance.exports.Test.prototype.get breakIt): (0x0b.WebAssembly.instantiate.wasm.then.e.const.mod.e.instance.exports.Test): (0x0b.WebAssembly.instantiate.wasm.then.e.const.obj.new.Test):
Source/JavaScriptCore:
It turns out, that when you use a callee save register, you should save it.
- wasm/js/WebAssemblyFunction.cpp: (JSC::WebAssemblyFunction::usesTagRegisters const): (JSC::WebAssemblyFunction::calleeSaves const): (JSC::WebAssemblyFunction::jsCallEntrypointSlow): (JSC::WebAssemblyFunction::useTagRegisters const): Deleted.
- wasm/js/WebAssemblyFunction.h:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@274699 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 4:57 PM Changeset in webkit [275717] by
-
- 7 edits1 copy1 add in branches/safari-611-branch/Source/WebKit
Cherry-pick r274697. rdar://problem/76375608
[Cocoa] Web Inspector: load inspector resources using a custom scheme handler
https://bugs.webkit.org/show_bug.cgi?id=179904
<rdar://problem/10887211>
Reviewed by Geoff Garen.
Load WebInspectorUI resources via the inspector-resource:// scheme.
Moving off of file:// URLs will allow for a tighter sandbox and
will fix the longstanding issue that Web Inspector's settings are
part of the file:// scheme and cleared when Safari clears website data.
This also has the effect of resetting Web Inspector settings since
they are no longer associated with file:///.
Loading via this scheme is exercised by existing inspector tests.
- SourcesCocoa.txt: Added new file.
- WebKit.xcodeproj/project.pbxproj:
- UIProcess/Inspector/mac/WKInspectorResourceURLSchemeHandler.h: Copied from Source/WebKit/WebProcess/Inspector/mac/WebInspectorUIMac.mm.
- UIProcess/Inspector/mac/WKInspectorResourceURLSchemeHandler.mm: Added. (-[WKInspectorResourceURLSchemeHandler webView:startURLSchemeTask:]): Use a global concurrent queue and NSOperation / NSOperationQueue to support reading files off the main queue.
(-[WKInspectorResourceURLSchemeHandler webView:stopURLSchemeTask:]):
Translate the request URL to a bundle resource URL, read the data, and send a response
with the file data. Return an error if the file could not be found or read.
- UIProcess/Inspector/mac/WKInspectorViewController.h:
- UIProcess/Inspector/mac/WKInspectorViewController.mm: (-[WKInspectorViewController webViewConfiguration]): (+[WKInspectorViewController URLForInspectorResource:]): (-[WKInspectorViewController webView:decidePolicyForNavigationAction:decisionHandler:]): Allow navigations to URIs with the inspector-resource:// scheme.
- UIProcess/Inspector/mac/WebInspectorProxyMac.mm: (WebKit::WebInspectorProxy::inspectorPageURL): (WebKit::WebInspectorProxy::inspectorTestPageURL): (WebKit::WebInspectorProxy::inspectorBaseURL): Updated.
- WebProcess/Inspector/mac/WebInspectorUIMac.mm: (WebKit::webInspectorUILocalizedStringsURL): Updated.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@274697 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 4:57 PM Changeset in webkit [275716] by
-
- 2 edits in branches/safari-611-branch/Source/WebCore
Cherry-pick r274675. rdar://problem/76374314
Protect frame before calling setPrinting
https://bugs.webkit.org/show_bug.cgi?id=222664
Patch by Rob Buis <rbuis@igalia.com> on 2021-03-18
Reviewed by Ryosuke Niwa.
Protect frame before calling setPrinting
since it could potentially delete the frame
through event handling.
- page/PrintContext.cpp: (WebCore::PrintContext::begin):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@274675 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 4:57 PM Changeset in webkit [275715] by
-
- 4 edits in branches/safari-611-branch/Source/WebCore
Cherry-pick r274626. rdar://problem/76374269
ASSERTION FAILED: node.isConnected() in matchSlottedPseudoElementRules
https://bugs.webkit.org/show_bug.cgi?id=221440
Patch by Frédéric Wang <fwang@igalia.com> on 2021-03-18
Reviewed by Ryosuke Niwa.
ReplaceSelectionCommand::doApply() removes a <br> from an element and immediately calls
highestNodeToRemoveInPruning() on that element. The former operation may destroy the
element's renderer and confuses the latter operation. This happens in particular for a
<summary> element which ends up being removed from the tree. This in turn causes unexpected
issues such as a debug assertion failure in matchSlottedPseudoElementRules. To address that
problem, ensure the document is laid out before calling highestNodeToRemoveInPruning().
This patch also increases and improves use of RefPtr<Node>.
- editing/CompositeEditCommand.cpp: (WebCore::CompositeEditCommand::removeNodeAndPruneAncestors): Use auto & makeRefPtr. (WebCore::CompositeEditCommand::prune): Store local highestNodeToRemove variable in a RefPtr. (WebCore::CompositeEditCommand::cleanupAfterDeletion): Store local node variable in a RefPtr. (WebCore::CompositeEditCommand::breakOutOfEmptyMailBlockquotedParagraph): Store local parentNode variable in a RefPtr.
- editing/Editing.cpp: (WebCore::highestNodeToRemoveInPruning): Store local currentNode variable in a a RefPtr.
- editing/ReplaceSelectionCommand.cpp: (WebCore::ReplaceSelectionCommand::doApply): Use auto & makeRefPtr. Store local odeToRemove variable in a RefPtr. Ensure the document is laid out before calling highestNodeToRemoveInPruning.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@274626 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 4:57 PM Changeset in webkit [275714] by
-
- 3 edits1 add in branches/safari-611-branch
Cherry-pick r274539. rdar://problem/76374197
Object allocation sinking phase should prioritize materializations with no dependencies before materializations with no reverse dependencies
https://bugs.webkit.org/show_bug.cgi?id=221069
<rdar://problem/73686589>
Reviewed by Yusuke Suzuki.
JSTests:
- stress/allocation-sinking-scope-materialization-order.js: Added. (var3.var2.x): (var3):
Source/JavaScriptCore:
Suppose we have two scope objects, A and B. Let's say A points to B, so B is
A's parent scope. A then depends on B. B has no dependencies here. When deciding
an order to materialize scope objects, we should always do it in reverse dependency
order. So above, we should materialize B, then A.
Inside object allocation sinking phase, when at an object materialization
site, we do track both dependencies and reverse dependencies. In the above
object graph, we'd attempt to materialize the objects in the right order,
always picking things with no dependencies first (and updating the list of
dependencies as we materialzed objects).
The code was using an std::list to track things to materialize, and it had
notions for materializing something first, and materializing something last.
However, there was a bug in how the code managed to insert things when
it first inserted last followed by inserting first. This patch simplifies
the code and makes it do the right thing.
- dfg/DFGObjectAllocationSinkingPhase.cpp:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@274539 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 4:57 PM Changeset in webkit [275713] by
-
- 2 edits in branches/safari-611-branch/Source/WebCore
Cherry-pick r274387. rdar://problem/76373770
Mark the line dirty when list marker goes from inline to block
https://bugs.webkit.org/show_bug.cgi?id=223132
Reviewed by Antti Koivisto.
This patch ensures that the line layout has a chance to clean up the inline boxes when the marker goes from inline to block.
Instead of deleting the inline box wrapper (InlineElement) here let's
- mark both the renderer and the line dirty and let the inline layout code run its normal cleanup process on dirty lines.
- detach the inline box wrapper from the now-block list marker.
- rendering/RenderListMarker.cpp: (WebCore::RenderListMarker::styleDidChange):
- rendering/RootInlineBox.cpp: (WebCore::RootInlineBox::verticalPositionForBox):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@274387 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 4:57 PM Changeset in webkit [275712] by
-
- 2 edits in branches/safari-611-branch/Source/WebKit
Cherry-pick r274378. rdar://problem/76412648
[Cocoa][WebM] Hang when reloading page before WebM content is loaded
https://bugs.webkit.org/show_bug.cgi?id=223139
<rdar://75351029>
Reviewed by Darin Adler.
No new tests; a truly deterministic test would require a .cgi script to block loading after
the WebM init segment, but a bug in the platform format reader causes URLs not ending in
.webm to fail to load the format reader plugin. Once this issue is fixed, we can write a
test to cover this behavior.
The WebM TrackEntry "enabled" bit is optional, and WebKit previously waited until any media data
was appended to say whether or not the track is enabled in the absense of an explicit signal.
Instead, assume any track that is not explicity disabled is enabled, for the purpose of the
format reader. This means that "enabled" queries will no longer block, which breaks the deadlock
when tearing down the AVAsset backing the WebM file.
- Shared/mac/MediaFormatReader/MediaTrackReader.cpp: (WebKit::MediaTrackReader::copyProperty):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@274378 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 4:57 PM Changeset in webkit [275711] by
-
- 2 edits in branches/safari-611-branch/Source/JavaScriptCore
Cherry-pick r274288. rdar://problem/76415622
Web Inspector: Occasional crash under RemoteConnectionToTargetCocoa::close()
https://bugs.webkit.org/show_bug.cgi?id=223038
<rdar://74920246>
Reviewed by Alex Christensen.
- inspector/remote/cocoa/RemoteConnectionToTargetCocoa.mm: (Inspector::RemoteConnectionToTarget::setup): (Inspector::RemoteConnectionToTarget::close): Don't use a capture default, and copy the targetIdentifier.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@274288 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 4:57 PM Changeset in webkit [275710] by
-
- 6 edits in branches/safari-611-branch
Cherry-pick r274154. rdar://problem/76375184
MediaRecorder.requestData() not returning all captured media after a pause
https://bugs.webkit.org/show_bug.cgi?id=222285
<rdar://problem/74884561>
Reviewed by Eric Carlson.
Source/WebCore:
Previously, when flushing, we are called on a background thread and we hop to the main thread to append data.
In some cases, we were resolving the completion handlers before appending all data.
To prevent this, we now append data from a background thread.
To do so, we lock when accessing m_data, either to append or take the data.
In addition, we cancel writing when clearing the writer.
This allows to clean the writer delegate without fearing that write operations are happening.
Covered by updated test.
- platform/mediarecorder/cocoa/MediaRecorderPrivateWriterCocoa.h:
- platform/mediarecorder/cocoa/MediaRecorderPrivateWriterCocoa.mm: (-[WebAVAssetWriterDelegate initWithWriter:]): (-[WebAVAssetWriterDelegate assetWriter:didProduceFragmentedHeaderData:]): (-[WebAVAssetWriterDelegate assetWriter:didProduceFragmentedMediaData:fragmentedMediaDataReport:]): (WebCore::MediaRecorderPrivateWriter::initialize): (WebCore::MediaRecorderPrivateWriter::clear): (WebCore::MediaRecorderPrivateWriter::stopRecording): (WebCore::MediaRecorderPrivateWriter::completeFetchData): (WebCore::MediaRecorderPrivateWriter::appendData): (WebCore::MediaRecorderPrivateWriter::takeData):
LayoutTests:
- http/wpt/mediarecorder/pause-recording-expected.txt:
- http/wpt/mediarecorder/pause-recording.html:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@274154 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 4:57 PM Changeset in webkit [275709] by
-
- 2 edits in branches/safari-611-branch/Source/WebCore
Cherry-pick r274146. rdar://problem/76374119
Suspend widget hierarchy updates while executing node insertion
https://bugs.webkit.org/show_bug.cgi?id=222719
Patch by Carlos Garcia Campos <cgarcia@igalia.com> on 2021-03-09
Reviewed by Ryosuke Niwa.
- dom/ContainerNode.cpp: (WebCore::executeNodeInsertionWithScriptAssertion):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@274146 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 4:57 PM Changeset in webkit [275708] by
-
- 5 edits in branches/safari-611-branch
Cherry-pick r274054. rdar://problem/76374004
Use counters for pending events
https://bugs.webkit.org/show_bug.cgi?id=218556
Patch by Rob Buis <rbuis@igalia.com> on 2021-03-07
Reviewed by Ryosuke Niwa.
Source/WebCore:
Use counters for pending events instead of flags since
it is allowed to schedule multiple events:
https://html.spec.whatwg.org/multipage/images.html#update-the-image-data
- loader/ImageLoader.cpp: (WebCore::ImageLoader::ImageLoader): (WebCore::ImageLoader::~ImageLoader): (WebCore::ImageLoader::clearImageWithoutConsideringPendingLoadEvent): (WebCore::ImageLoader::updateFromElement): (WebCore::ImageLoader::notifyFinished): (WebCore::ImageLoader::updatedHasPendingEvent): (WebCore::ImageLoader::dispatchPendingBeforeLoadEvent): (WebCore::ImageLoader::dispatchPendingLoadEvent): (WebCore::ImageLoader::dispatchPendingErrorEvent):
- loader/ImageLoader.h: (WebCore::ImageLoader::hasPendingBeforeLoadEvent const): (WebCore::ImageLoader::hasPendingActivity const):
LayoutTests:
The onerror can be called multiple times, after the first call
container will have no parent, so protect against that in
subsequent calls.
- fast/dom/modify-node-and-while-in-the-callback-too-crash.html:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@274054 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 4:57 PM Changeset in webkit [275707] by
-
- 2 edits in branches/safari-611-branch/Source/WebCore
Cherry-pick r274025. rdar://problem/76375235
CanvasRenderingContext2DBase::canDrawTextWithParams() needs to resolve styles before using the drawingContext
https://bugs.webkit.org/show_bug.cgi?id=221257
<rdar://problem/73878095>
Reviewed by Ryosuke Niwa.
Simply call fontProxy() (which internally resolves styles) before calling drawingContext().
Test: fast/text/canvas-synchronous-events.html
- html/canvas/CanvasRenderingContext2DBase.cpp: (WebCore::CanvasRenderingContext2DBase::canDrawTextWithParams):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@274025 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 4:57 PM Changeset in webkit [275706] by
-
- 4 edits1 add in branches/safari-611-branch
Cherry-pick r273972. rdar://problem/76375074
OpGetPrivateName needs to be listed in FOR_EACH_OPCODE_WITH_VALUE_PROFILE
https://bugs.webkit.org/show_bug.cgi?id=222775
<rdar://74982634>
Reviewed by Michael Saboff.
JSTests:
- stress/private-name-assignment-in-constructor.js: Added. (Foo):
Source/JavaScriptCore:
Right now valueProfileForBytecodeIndex incorrectly returns null for op_get_private_name.
- bytecode/CodeBlock.cpp: (JSC::CodeBlock::valueProfileForBytecodeIndex):
- bytecode/Opcode.h:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@273972 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 4:57 PM Changeset in webkit [275705] by
-
- 2 edits in branches/safari-611-branch/Source/WebCore
Cherry-pick r273938. rdar://problem/76411908
Deploy Ref<T> in SVGUseElement.cpp
https://bugs.webkit.org/show_bug.cgi?id=222637
Patch by Julian Gonzalez <julian_a_gonzalez@apple.com> on 2021-03-04
Reviewed by Ryosuke Niwa.
Remove usage of raw pointers in a few functions here
that showed issues in 222397.
Thanks to Darin Adler for the initial version of this patch
and Ryosuke Niwa for refinements.
- svg/SVGUseElement.cpp: (WebCore::disassociateAndRemoveClones): (WebCore::removeDisallowedElementsFromSubtree): (WebCore::removeSymbolElementsFromSubtree):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@273938 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 4:57 PM Changeset in webkit [275704] by
-
- 11 edits in branches/safari-611-branch/Source/WebCore
Cherry-pick r273935. rdar://problem/76373961
"precustomized" state of custom elements can become HTMLUnknownElement
https://bugs.webkit.org/show_bug.cgi?id=221652
Reviewed by Darin Adler.
The bug was caused by createJSHTMLWrapper in JSHTMLElementWrapperFactory.cpp relying on
!isCustomElementUpgradeCandidate() to create HTMLUnknownElement as JS wrapper of the element.
This is problematic after r266269 since that change re-purposes CustomElementState::Failed
on a custom element as "precustomized" state instead of introducing another enum value in
CustomElementState as RareDataBitFields has no more bits available.
This patch fixes the problem by introducing a new NodeFlag::IsUnknownElement and using that
to check whether JSHTMLUnknownElement should be created for a given element or not. Note that
HTMLElement had a virtual function, isHTMLUnknownElement, to check this condition but invoking
a virtual function proved to incur too much runtime cost.
- dom/Node.h: (WebCore::Node::isUnknownElement const): Added. (WebCore::Node::isHTMLUnknownElement const): Added. (WebCore::Node::isSVGUnknownElement const): Added. (WebCore::Node::isMathMLUnknownElement const): Added. (WebCore::Node::NodeFlag): Added NodeFlag::IsUnknownElement.
- dom/make_names.pl: (printWrapperFactoryCppFile): Treat the element as HTMLUnknownElement only if isUnknownElement returns true instead of isCustomElementUpgradeCandidate returning false.
- html/HTMLElement.h: (WebCore::HTMLElement::isHTMLUnknownElement const): Deleted.
- html/HTMLUnknownElement.h:
- mathml/MathMLElement.cpp: (WebCore::MathMLElement::MathMLElement): Added ConstructionType as an argument.
- mathml/MathMLElement.h:
- mathml/MathMLUnknownElement.h: (WebCore::MathMLUnknownElement::MathMLUnknownElement): Set NodeFlag::IsUnknownElement.
- svg/SVGElement.cpp: (WebCore::SVGElement::SVGElement): Added ConstructionType as an argument.
- svg/SVGElement.h:
- svg/SVGUnknownElement.h: (WebCore::SVGUnknownElement::SVGUnknownElement): Set NodeFlag::IsUnknownElement.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@273935 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 4:57 PM Changeset in webkit [275703] by
-
- 2 edits in branches/safari-611-branch/Source/WebCore
Cherry-pick r273866. rdar://problem/76416143
Nulllptr crash in DeleteSelectionCommand::handleGeneralDelete()
https://bugs.webkit.org/show_bug.cgi?id=222681
Reviewed by Wenson Hsieh.
Skip the loop when m_downstreamEnd.isNull() or im_downstreamEnd.isOrphan() is true
to avoid dereferencing a nullptr.
No new tests since we don't have any reproduction for this crash,
and it's not obvious how we're getting into that state.
- editing/DeleteSelectionCommand.cpp: (WebCore::DeleteSelectionCommand::handleGeneralDelete):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@273866 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 4:57 PM Changeset in webkit [275702] by
-
- 15 edits1 move7 adds in branches/safari-611-branch
Cherry-pick r273820. rdar://problem/76412727
Report the correct document uri in the case of a ContentSecurityPolicyClient
https://bugs.webkit.org/show_bug.cgi?id=222489
<rdar://problem/73774118>
Reviewed by Brent Fulgham.
Source/WebCore:
Tests: http/tests/security/contentSecurityPolicy/report-document-uri-after-blocked-redirect.html
http/tests/security/contentSecurityPolicy/report-document-uri-blob.html
Previously we were setting the document URI to be the blocked URI in
the case where we were using a ContentSecurityPolicyClient and didn't
have access to the document URL. This patch passes the document URL
to the network process when loading a resource so we can properly set
the document URI in this case.
- page/csp/ContentSecurityPolicy.cpp: (WebCore::shouldReportProtocolOnly): (WebCore::ContentSecurityPolicy::deprecatedURLForReporting const): (WebCore::ContentSecurityPolicy::reportViolation const): Follow spec guidelines https://www.w3.org/TR/CSP2/#violation-reports and set the document URI to be the URI's scheme if it is a globally unique identifier.
In the case where we are using a client and don't have the document
URL, we should at least strip the blocked URL before reporting to align
with the spec.
- page/csp/ContentSecurityPolicy.h: (WebCore::ContentSecurityPolicy::setDocumentURL):
Source/WebKit:
Pass the document URL from the Network Process when we schedule a load
in case we need to report a CSP violation in NetworkLoadChecker.
- NetworkProcess/NetworkLoadChecker.cpp: (WebKit::NetworkLoadChecker::NetworkLoadChecker): (WebKit::NetworkLoadChecker::contentSecurityPolicy): The regular toString() method sets file:// URLs to null. We should use toRawString() so we can report the scheme if the source origin is a local file, as per the W3C spec.
- NetworkProcess/NetworkLoadChecker.h:
- NetworkProcess/NetworkResourceLoadParameters.cpp: (WebKit::NetworkResourceLoadParameters::encode const): (WebKit::NetworkResourceLoadParameters::decode):
- NetworkProcess/NetworkResourceLoadParameters.h:
- NetworkProcess/NetworkResourceLoader.cpp:
- NetworkProcess/PingLoad.cpp: (WebKit::PingLoad::PingLoad):
- WebProcess/Network/WebLoaderStrategy.cpp: (WebKit::WebLoaderStrategy::scheduleLoadFromNetworkProcess):
Tools:
Rename OverrideContentSecurityPolicy.mm to ContentSecurityPolicy.mm
so we can use it for more general purpose CSP testing.
Add a test for document-uri reporting for file:, data: and about: protocols.
- TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
- TestWebKitAPI/Tests/WebKitCocoa/ContentSecurityPolicy.mm: Renamed from Tools/TestWebKitAPI/Tests/WebKitCocoa/OverrideContentSecurityPolicy.mm. (TEST):
- TestWebKitAPI/Tests/WebKitCocoa/csp-document-uri-report.html: Added.
LayoutTests:
Layout test coverage for redirects using a ContentSecurityPolicyClient
and blob files.
- http/tests/security/contentSecurityPolicy/report-document-uri-blob-expected.txt: Added.
- http/tests/security/contentSecurityPolicy/report-document-uri-blob.html: Added.
- http/tests/security/contentSecurityPolicy/report-document-uri-after-blocked-redirect-expected.txt: Added.
- http/tests/security/contentSecurityPolicy/report-document-uri-after-blocked-redirect.html: Added.
- platform/mac-wk1/http/tests/security/contentSecurityPolicy/report-document-uri-after-blocked-redirect-expected.txt: Added.
- platform/win/http/tests/security/contentSecurityPolicy/report-document-uri-after-blocked-redirect-expected.txt: Added.
- platform/win/TestExpectations: Blob URLs timeout on win.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@273820 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 4:56 PM Changeset in webkit [275701] by
-
- 2 edits in branches/safari-611-branch/Source/WebCore
Cherry-pick r273752. rdar://problem/76416035
Crash under KeyframeEffect::setTarget()
https://bugs.webkit.org/show_bug.cgi?id=222591
<rdar://problem/74281295>
Reviewed by David Kilzer.
The Styleable returned by targetStyleable() holds a reference to the Element that at
this point is m_target (assuming it's non-null). However, once we set the new value
for m_target, if the only reference to the original target was held by this KeyframeEffect,
then that element will be deallocated and by the time we call didChangeTargetStyleable()
it will be gone.
To address, we create a RefPtr<Element> in the scope of KeyframeEffect::setTarget()
protecting the Styleable's element while didChangeTargetStyleable() is called.
- animation/KeyframeEffect.cpp: (WebCore::KeyframeEffect::setTarget):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@273752 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 4:56 PM Changeset in webkit [275700] by
-
- 2 edits in branches/safari-611-branch/Source/ThirdParty/ANGLE
Cherry-pick r273582. rdar://problem/76373661
Textures Fail to Render in WebGL from HLS Stream on iPhone 12 [iOS 14.2]
https://bugs.webkit.org/show_bug.cgi?id=218637
<rdar://problem/71102126>
Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2021-02-26
Reviewed by Kenneth Russell.
Remove incorrect validation that IOSurface pixel format matches
the pixel format of the texture image being specified.
The "Element" in IOSurface is a block of pixels, while the validation assumed
it means one pixel. The validation failed for a compressed format.
Currently we map non-public YUV formats, to which there is no elequent way
of implementing the validation.
Most likely this started to reproduce if IOSurfaceGetBytesPerElementOfPlane
was changed to produce correct results for the above YUV format.
Later commits could add the validation back for formats that we know the
pixel format type.
- src/libANGLE/renderer/gl/eagl/IOSurfaceSurfaceEAGL.mm: (rx::IOSurfaceSurfaceEAGL::validateAttributes):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@273582 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 4:56 PM Changeset in webkit [275699] by
-
- 3 edits in branches/safari-611-branch/Source/WebCore
Cherry-pick r273505. rdar://problem/76374627
Streamline ImageData size calculations and handle out-of-memory
https://bugs.webkit.org/show_bug.cgi?id=222340
Reviewed by Geoff Garen.
- html/ImageData.cpp: (WebCore::ImageData::dataSize): Added (WebCore::ImageData::create): Use the dataSize function consistently to compute the size of the byteArray needed. In the JavaScript-exposed create function, use tryCreateUninitialized and throw an exception if it fails. Removed an unnecessary assertion that simply repeats something covered by an if statement just above it. (WebCore::ImageData::ImageSize): Removed the overload that only takes an IntSize and allocates a Uint8ClampedArray, moving that into the create function instead.
- html/ImageData.h: Added dataSize, removed a constructor overload.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@273505 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 4:56 PM Changeset in webkit [275698] by
-
- 2 edits in branches/safari-611-branch/Source/WebCore
Cherry-pick r273468. rdar://problem/76374398
Crash in CompositeEditCommand::breakOutOfEmptyMailBlockquotedParagraph()
https://bugs.webkit.org/show_bug.cgi?id=222339
Patch by Julian Gonzalez <julian_a_gonzalez@apple.com> on 2021-02-24
Reviewed by Ryosuke Niwa.
Make a copy of Ref<HTMLBRElement> when inserting before highest blockquote node.
- editing/CompositeEditCommand.cpp: (WebCore::CompositeEditCommand::breakOutOfEmptyMailBlockquotedParagraph):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@273468 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 4:56 PM Changeset in webkit [275697] by
-
- 2 edits in branches/safari-611-branch/Source/ThirdParty/libwebrtc
Cherry-pick r273405. rdar://problem/76412874
Fix null pointer deref in X509_issuer_and_serial_hash
https://bugs.webkit.org/show_bug.cgi?id=222353
<rdar://problem/74446806>
Reviewed by Eric Carlson.
Cherry-picking of https://github.com/openssl/openssl/commit/8130d654d1de922ea224fa18ee3bc7262edc39c0.
- Source/third_party/boringssl/src/crypto/x509/x509_cmp.c: (X509_issuer_and_serial_hash):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@273405 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 4:56 PM Changeset in webkit [275696] by
-
- 2 edits in branches/safari-611-branch/Source/WebKit
Cherry-pick r273367. rdar://problem/76375686
[iOS] Add null checks for Node before accessing treeScope() in rangeForPointInRootViewCoordinates
https://bugs.webkit.org/show_bug.cgi?id=222338
<rdar://problem/72292289>
Reviewed by Tim Horton.
Add a null check for the hit test result's
targetNode
insiderangeForPointInRootViewCoordinates()
to avoid
crashing in the case where the target node is null and eitherresult <= selectionStart
isfalse
or
selectionEnd <= result
isfalse
.
Additionally, avoid a potential null deref on
selectionStart.deepEquivalent().anchorNode()
and
selectionEnd.deepEquivalent().anchorNode()
by usingPosition::treeScope()
(which null checks the anchor
node) instead of directly asking the anchor node.
Note that the call sites of
rangeForPointInRootViewCoordinates()
already handle aWTF::nullopt
return value
gracefully, by skipping the selection update.
- WebProcess/WebPage/ios/WebPageIOS.mm: (WebKit::rangeForPointInRootViewCoordinates):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@273367 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 4:56 PM Changeset in webkit [275695] by
-
- 2 edits in branches/safari-611-branch/Source/WebCore
Cherry-pick r273300. rdar://problem/76375521
Handle Page::didFinishLoadingImageForElement asynchronously
https://bugs.webkit.org/show_bug.cgi?id=221390
Reviewed by Antti Koivisto.
Use EventLoop instead of RunLoop::main() to be thread safe in iOS WebKit1.
- page/Page.cpp: (WebCore::Page::didFinishLoadingImageForElement):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@273300 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 4:56 PM Changeset in webkit [275694] by
-
- 2 edits in branches/safari-611-branch/Source/WebCore
Cherry-pick r273231. rdar://problem/76375521
Handle Page::didFinishLoadingImageForElement asynchronously
https://bugs.webkit.org/show_bug.cgi?id=221390
Patch by Carlos Garcia Campos <cgarcia@igalia.com> on 2021-02-22
Reviewed by Alex Christensen.
When called synchronously from RenderImage::notifyFinished() it's not possible to update the layout because
scripts are not allowed at that point.
- page/Page.cpp: (WebCore::Page::didFinishLoadingImageForElement):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@273231 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 4:56 PM Changeset in webkit [275693] by
-
- 5 edits in branches/safari-611-branch
Cherry-pick r272910. rdar://problem/76416446
Set a default path for device ID hash salts
https://bugs.webkit.org/show_bug.cgi?id=221955
Reviewed by Eric Carlson.
Source/WebKit:
The default path was the empty string, which leads to not persist device IDs.
Update this to provide a valid default path like for other persisting data types.
Covered by API test.
- UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm: (WebKit::WebsiteDataStore::defaultDeviceIdHashSaltsStorageDirectory):
- UIProcess/WebsiteData/WebsiteDataStore.cpp:
Tools:
- TestWebKitAPI/Tests/WebKit/GetUserMediaNavigation.mm: (TestWebKitAPI::TEST):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@272910 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 4:56 PM Changeset in webkit [275692] by
-
- 4 edits in branches/safari-611-branch
Cherry-pick r272900. rdar://problem/76411260
Teardown shadow root renderers on hostChildElementDidChange
https://bugs.webkit.org/show_bug.cgi?id=221386
Patch by Carlos Garcia Campos <cgarcia@igalia.com> on 2021-02-16
Reviewed by Antti Koivisto.
Source/WebCore:
When details element has a display contents style, the default summary renderer is not cleared when a new
summary element is added. This causes that both summary elements are rendered at the same time, instead of the
active one. The crash happens when the details element is removed from the document, because the default summary
element still has a valid renderer on destroy.
- dom/SlotAssignment.h: (WebCore::ShadowRoot::hostChildElementDidChange):
LayoutTests:
- tables/table-col-indent-crash-expected.txt:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@272900 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 4:56 PM Changeset in webkit [275691] by
-
- 4 edits in branches/safari-611-branch/Source/WebCore
Cherry-pick r272843. rdar://problem/76374775
Don't update form control elements validity status if they are detached from the document.
https://bugs.webkit.org/show_bug.cgi?id=220390
Reviewed by Ryosuke Niwa.
When a radio button input element is removed from a form (either because it's moved or because the form
is deleted) then it's also removed from its current RadioButtonGroup. The latter removal might require the
update of the input validity status. In case of validity status changes, then we have to walk up
the ancestor chain in order to update the style for pseudo classes such as :valid :invalid. That node traversal
should not be done in case of being detached from the main document because our ancestors might have been
deleted before.
Apart from that we're replacing the HashSet of raw pointers to descendants in HTMLFieldSetElement by a WeakHashSet
which is safer.
- html/HTMLFieldSetElement.cpp: (WebCore::HTMLFieldSetElement::matchesValidPseudoClass const): (WebCore::HTMLFieldSetElement::matchesInvalidPseudoClass const): (WebCore::HTMLFieldSetElement::addInvalidDescendant): (WebCore::HTMLFieldSetElement::removeInvalidDescendant):
- html/HTMLFieldSetElement.h:
- html/HTMLFormControlElement.cpp: (WebCore::HTMLFormControlElement::updateValidity(): Early return in case of isConnected().
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@272843 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 4:56 PM Changeset in webkit [275690] by
-
- 4 edits in branches/safari-611-branch/LayoutTests
Cherry-pick r271549. rdar://problem/76375033
Release assert in Document::updateStyleIfNeeded() via PrintContext::end() inside HTMLTitleElement::insertedIntoAncestor and removedFromAncestor
https://bugs.webkit.org/show_bug.cgi?id=218496
Reviewed by Darin Adler.
Remove the title element to eliminiate the non-determinism.
- http/tests/loading/redirect-with-no-location-crash-expected.txt:
- http/tests/loading/redirect-with-no-location-crash.html:
- platform/wk2/http/tests/loading/redirect-with-no-location-crash-expected.txt:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@271549 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 4:56 PM Changeset in webkit [275689] by
-
- 19 edits1 copy in branches/safari-611-branch
Cherry-pick r271514. rdar://problem/76375033
Use event loop to set title
https://bugs.webkit.org/show_bug.cgi?id=218496
Patch by Rob Buis <rbuis@igalia.com> on 2021-01-15
Reviewed by Ryosuke Niwa.
Source/WebCore:
Use event loop to set title to avoid calling WebFrameLoaderClient
within HTMLTitleElement::insertedIntoAncestor.
- dom/Document.cpp: (WebCore::Document::updateTitle):
- dom/Document.h:
Tools:
Adapt unit tests to wait for title change tasks
to be processed.
- TestWebKitAPI/Tests/WebKit/PageLoadState.cpp: (TestWebKitAPI::didChangeTitle): (TestWebKitAPI::TEST):
- TestWebKitAPI/Tests/WebKitCocoa/UIDelegate.mm: (TEST):
LayoutTests:
Adapt tests to make sure pending title change tasks
are processed before the test is done.
- fast/dom/title-text-property-2.html:
- fast/dom/title-text-property-assigning-empty-string.html:
- fast/dom/title-text-property.html:
- http/tests/globalhistory/history-delegate-basic-title-expected.txt:
- http/tests/globalhistory/history-delegate-basic-title.html:
- http/tests/loading/basic-auth-load-URL-with-consecutive-slashes-expected.txt:
- http/tests/loading/basic-auth-load-URL-with-consecutive-slashes.html:
- http/tests/loading/redirect-with-no-location-crash-expected.txt:
- http/tests/loading/redirect-with-no-location-crash.html:
- platform/mac-wk2/TestExpectations:
- platform/win/http/tests/loading/basic-auth-load-URL-with-consecutive-slashes-expected.txt: Copied from LayoutTests/http/tests/loading/basic-auth-load-URL-with-consecutive-slashes-expected.txt.
- platform/wk2/http/tests/loading/basic-auth-load-URL-with-consecutive-slashes-expected.txt:
- platform/wk2/http/tests/loading/redirect-with-no-location-crash-expected.txt:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@271514 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 4:56 PM Changeset in webkit [275688] by
-
- 3 edits in branches/safari-611-branch/Source/WebCore
Cherry-pick r271404. rdar://problem/76413093
Safari Networking high % CPU when Caches/WebKit/ServiceWorkers folder not writable
https://bugs.webkit.org/show_bug.cgi?id=220220
<rdar://problem/72930195>
Reviewed by Chris Dumez.
In case writing changes in the service worker database fails, we retry once.
If it fails, we give up and will only retry writing when new changes happen.
Manually tested.
- workers/service/server/RegistrationDatabase.cpp: (WebCore::RegistrationDatabase::pushChanges): (WebCore::RegistrationDatabase::schedulePushChanges):
- workers/service/server/RegistrationDatabase.h:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@271404 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 4:14 PM Changeset in webkit [275687] by
-
- 10 edits in trunk
REGRESSION(r273541) WKWebView can't load NSURLRequest subclasses
https://bugs.webkit.org/show_bug.cgi?id=224338
Source/WebCore:
<rdar://76192721>
Patch by Alex Christensen <achristensen@webkit.org> on 2021-04-08
Reviewed by Brent Fulgham.
We used to use SPI to extract the CFURLRequestRef, but now we just call encodeWithCoder and initWithCoder.
That's great for many reasons, but to stay binary compatible we have to continue to support NSURLRequest subclasses.
They fail in two possible ways:
- In ObjC, you can do wild and crazy things such as overriding encodeWithCoder and not calling [super encodeWithCoder:coder];
- The process decoding the request (one of our auxiliary processes) almost certainly has not linked with the definition of the subclass. This makes us receive an NSException like this when calling decodeObjectOfClasses:forKey:
* -[NSKeyedUnarchiver decodeObjectForKey:]: cannot decode object of class (TestURLRequest) for key (root) because no class named "TestURLRequest" was found;
the class needs to be defined in source code or linked in from a library (ensure the class is part of the correct target).
If the class was renamed, use setClassName:forClass: to add a class translation mapping to NSKeyedUnarchiver
To solve this problem, when attempting to encode a request that is not an NSURLRequest or NSMutableURLRequest, use existing code in ResourceRequest to extract
the parts we use into an NSMutableURLRequest that we can successfully decode.
- platform/network/cf/ResourceRequest.h:
- platform/network/cocoa/ResourceRequestCocoa.mm:
(WebCore::ResourceRequest::replacePlatformRequest):
Source/WebKit:
Patch by Alex Christensen <achristensen@webkit.org> on 2021-04-08
Reviewed by Brent Fulgham.
- Shared/Cocoa/WebCoreArgumentCodersCocoa.mm:
(IPC::ArgumentCoder<WebCore::ResourceRequest>::encodePlatformData):
Tools:
Patch by Alex Christensen <achristensen@webkit.org> on 2021-04-08
Reviewed by Brent Fulgham.
- TestWebKitAPI/Tests/WebKitCocoa/ContentRuleListNotification.mm:
(respond):
- TestWebKitAPI/Tests/WebKitCocoa/LoadInvalidURLRequest.mm:
(-[TestURLRequest initWithURL:]):
(TestWebKitAPI::TEST):
- TestWebKitAPI/Tests/WebKitCocoa/TestURLSchemeHandler.h:
- 4:04 PM Changeset in webkit [275686] by
-
- 2 edits in trunk/Tools
REGRESSION (r275150): set-webkit-configuration is too aggressive at deleting config files when coverage/sanitizer switch is not set
<https://webkit.org/b/224343>
Reviewed by Mark Lam.
- Scripts/set-webkit-configuration:
(updateOrDeleteConfigurationFile):
- Change to take enabled and disabled arguments, and only reset (unlink) a config file if the --no-<option> is explicitly set.
- 3:54 PM Changeset in webkit [275685] by
-
- 3 edits in trunk/Source/ThirdParty/ANGLE
[Metal-ANGLE] Support GPU power preferences, select low-power GPU by default.
Respond to GPU power preference flags, expose extension, and avoid creating a high-powered GPU by default.
https://bugs.webkit.org/show_bug.cgi?id=224337
Patch by Kyle Piddington <Kyle Piddington> on 2021-04-08
Reviewed by Dean Jackson.
- src/libANGLE/renderer/metal/DisplayMtl.h:
- src/libANGLE/renderer/metal/DisplayMtl.mm:
(rx::DisplayMtl::initializeImpl):
(rx::DisplayMtl::getMetalDeviceMatchingAttribute):
(rx::DisplayMtl::generateExtensions const):
- 3:31 PM Changeset in webkit [275684] by
-
- 19 edits3 adds in branches/safari-612.1.10-branch
Cherry-pick r275682. rdar://problem/76424627
Add test infrastructure for app bound request context string
https://bugs.webkit.org/show_bug.cgi?id=224311
<rdar://problem/76229003>
Reviewed by Brent Fulgham.
Source/WebKit:
The app-bound request context string is the eTLD+1 for a load and is
needed by CFNetwork. We should add testing infrastructure to make sure
the context string is being properly set.
Test: http/tests/in-app-browser-privacy/context-string-for-subframe.html
- NetworkProcess/cocoa/NetworkDataTaskCocoa.mm: (contextString): (WebKit::NetworkDataTaskCocoa::NetworkDataTaskCocoa):
- Shared/NavigatingToAppBoundDomain.h: (WebKit::AppBoundNavigationTestingData::clearAppBoundNavigationDataTesting): (WebKit::AppBoundNavigationTestingData::updateAppBoundNavigationTestingData): (WebKit::AppBoundNavigationTestingData::encode const): (WebKit::AppBoundNavigationTestingData::decode): Store the context string in the testing struct.
- UIProcess/API/Cocoa/WKWebView.mm: (-[WKWebView _appBoundNavigationDataForDomain:completionHandler:]):
- UIProcess/API/Cocoa/WKWebViewPrivate.h: SPI to get the app-bound request test data for layout testing.
Tools:
Layout test infrastructure.
- WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl:
- WebKitTestRunner/InjectedBundle/InjectedBundle.cpp: (WTR::InjectedBundle::didReceiveMessageToPage):
- WebKitTestRunner/InjectedBundle/TestRunner.cpp: (WTR::TestRunner::appBoundRequestContextDataForDomain): (WTR::TestRunner::callDidReceiveAppBoundRequestContextDataForDomainCallback):
- WebKitTestRunner/InjectedBundle/TestRunner.h:
- WebKitTestRunner/TestController.cpp: (WTR::TestController::appBoundRequestContextDataForDomain):
- WebKitTestRunner/TestController.h:
- WebKitTestRunner/TestInvocation.cpp: (WTR::TestInvocation::didReceiveMessageFromInjectedBundle): (WTR::TestInvocation::didReceiveAppBoundRequestContextDataForDomain):
- WebKitTestRunner/TestInvocation.h:
- WebKitTestRunner/cocoa/TestControllerCocoa.mm: (WTR::TestController::appBoundRequestContextDataForDomain):
- WebKitTestRunner/cocoa/TestRunnerWKWebView.h:
- WebKitTestRunner/cocoa/TestRunnerWKWebView.mm: (-[TestRunnerWKWebView _appBoundNavigationDataForDomain:completionHandler:]):
LayoutTests:
Test coverage.
- http/tests/in-app-browser-privacy/context-string-for-subframe-expected.txt: Added.
- http/tests/in-app-browser-privacy/context-string-for-subframe.html: Added.
- http/tests/in-app-browser-privacy/resources/basic-iframe.html: Added.
- platform/ios-wk2/TestExpectations:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@275682 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 3:23 PM Changeset in webkit [275683] by
-
- 2 edits in trunk/Source/WebCore
[Metal ANGLE] check to see that a Metal device is available before selecting the backend.
https://bugs.webkit.org/show_bug.cgi?id=224341
Some platforms, including virtual machines, do not support Metal.
If we cannot create a default device, fall back on selecting the OpenGL backend.
Patch by Kyle Piddington <Kyle Piddington> on 2021-04-08
Reviewed by Dean Jackson.
- platform/graphics/cocoa/GraphicsContextGLOpenGLCocoa.mm:
(WebCore::platformSupportsMetal):
(WebCore::InitializeEGLDisplay):
Added Metal header include, and runtime check to ensure a metal device can be created before selecting the Metal backend.
- 3:14 PM Changeset in webkit [275682] by
-
- 19 edits3 adds in trunk
Add test infrastructure for app bound request context string
https://bugs.webkit.org/show_bug.cgi?id=224311
<rdar://problem/76229003>
Reviewed by Brent Fulgham.
Source/WebKit:
The app-bound request context string is the eTLD+1 for a load and is
needed by CFNetwork. We should add testing infrastructure to make sure
the context string is being properly set.
Test: http/tests/in-app-browser-privacy/context-string-for-subframe.html
- NetworkProcess/cocoa/NetworkDataTaskCocoa.mm:
(contextString):
(WebKit::NetworkDataTaskCocoa::NetworkDataTaskCocoa):
- Shared/NavigatingToAppBoundDomain.h:
(WebKit::AppBoundNavigationTestingData::clearAppBoundNavigationDataTesting):
(WebKit::AppBoundNavigationTestingData::updateAppBoundNavigationTestingData):
(WebKit::AppBoundNavigationTestingData::encode const):
(WebKit::AppBoundNavigationTestingData::decode):
Store the context string in the testing struct.
- UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _appBoundNavigationDataForDomain:completionHandler:]):
- UIProcess/API/Cocoa/WKWebViewPrivate.h:
SPI to get the app-bound request test data for layout testing.
Tools:
Layout test infrastructure.
- WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl:
- WebKitTestRunner/InjectedBundle/InjectedBundle.cpp:
(WTR::InjectedBundle::didReceiveMessageToPage):
- WebKitTestRunner/InjectedBundle/TestRunner.cpp:
(WTR::TestRunner::appBoundRequestContextDataForDomain):
(WTR::TestRunner::callDidReceiveAppBoundRequestContextDataForDomainCallback):
- WebKitTestRunner/InjectedBundle/TestRunner.h:
- WebKitTestRunner/TestController.cpp:
(WTR::TestController::appBoundRequestContextDataForDomain):
- WebKitTestRunner/TestController.h:
- WebKitTestRunner/TestInvocation.cpp:
(WTR::TestInvocation::didReceiveMessageFromInjectedBundle):
(WTR::TestInvocation::didReceiveAppBoundRequestContextDataForDomain):
- WebKitTestRunner/TestInvocation.h:
- WebKitTestRunner/cocoa/TestControllerCocoa.mm:
(WTR::TestController::appBoundRequestContextDataForDomain):
- WebKitTestRunner/cocoa/TestRunnerWKWebView.h:
- WebKitTestRunner/cocoa/TestRunnerWKWebView.mm:
(-[TestRunnerWKWebView _appBoundNavigationDataForDomain:completionHandler:]):
LayoutTests:
Test coverage.
- http/tests/in-app-browser-privacy/context-string-for-subframe-expected.txt: Added.
- http/tests/in-app-browser-privacy/context-string-for-subframe.html: Added.
- http/tests/in-app-browser-privacy/resources/basic-iframe.html: Added.
- platform/ios-wk2/TestExpectations:
- 2:52 PM Changeset in webkit [275681] by
-
- 2 edits in branches/safari-612.1.10-branch/Source/WebKit
Cherry-pick r275669. rdar://problem/76422912
[Cocoa] Temporarily retain some media services when GPU Process active
https://bugs.webkit.org/show_bug.cgi?id=224328
<rdar://problem/76370805>
Reviewed by Eric Carlson.
Testing of the GPU Process show that access to the CoreMedia routing service is still needed under
some use cases. To prevent user-facing impact, we will allow these connections while the underlying
issues are resolved.
- UIProcess/WebPageProxy.cpp: (WebKit::temporaryMachServices): Added. (WebKit::WebPageProxy::creationParameters): Extend access to the set of temporaryMachServices when the GPU Process is enabled.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@275669 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 2:45 PM Changeset in webkit [275680] by
-
- 4 edits in trunk/Source/WebKit
Cache NSInvocation objects on _WKRemoteObjectInterface
https://bugs.webkit.org/show_bug.cgi?id=224331
<rdar://75628393>
Reviewed by Geoffrey Garen.
Have _WKRemoteObjectInterface eagerly create the NSInvocation objects and store them
instead of re-constructing them every time they are needed.
- Shared/API/Cocoa/WKRemoteObjectCoder.mm:
(decodeInvocation):
- Shared/API/Cocoa/_WKRemoteObjectInterface.mm:
(methodArgumentTypeEncodingForSelector):
(initializeMethod):
(-[_WKRemoteObjectInterface debugDescription]):
(classesForSelectorArgument):
(-[_WKRemoteObjectInterface _invocationForSelector:]):
(-[_WKRemoteObjectInterface _invocationForReplyBlockOfSelector:]):
(-[_WKRemoteObjectInterface _allowedArgumentClassesForReplyBlockOfSelector:]):
- Shared/API/Cocoa/_WKRemoteObjectInterfaceInternal.h:
- 2:44 PM Changeset in webkit [275679] by
-
- 3 edits2 adds in trunk
Suspended OfflineAudioContext objects are leaking
https://bugs.webkit.org/show_bug.cgi?id=224333
Reviewed by Darin Adler.
Source/WebCore:
When offline rendering is suspended, we now release the ActiveDOMObject::PendingActivity we hold
to keep the OfflineAudioContext and its wrapper alive during rendering. The JS has to keep a
reference to the context's wrapper anyway if they ever want to resume rendering.
Test: webaudio/OfflineAudioContext/offlineaudiocontext-leak-while-suspended.html
- Modules/webaudio/OfflineAudioContext.cpp:
(WebCore::OfflineAudioContext::didSuspendRendering):
LayoutTests:
Add layout test coverage.
- webaudio/OfflineAudioContext/offlineaudiocontext-leak-while-suspended-expected.txt: Added.
- webaudio/OfflineAudioContext/offlineaudiocontext-leak-while-suspended.html: Added.
- 2:30 PM Changeset in webkit [275678] by
-
- 2 edits in trunk/Source/WebCore
Unreviewed, a comment fix
- crypto/mac/CryptoAlgorithmAES_GCMMac.cpp:
(WebCore::encryptAES_GCM):
(WebCore::decyptAES_GCM):
Removes unnecessary comments.
- 2:27 PM Changeset in webkit [275677] by
-
- 41 edits11 adds10 deletes in trunk/LayoutTests
[LayoutTests] Convert http/tests/navigation convert PHP to Python
https://bugs.webkit.org/show_bug.cgi?id=222418
<rdar://problem/74744523>
Reviewed by Jonathan Bedard.
- http/tests/blink/sendbeacon/beacon-cross-origin-redirect-blob-expected.txt:
- http/tests/blink/sendbeacon/beacon-cross-origin-redirect-blob.html:
- http/tests/blink/sendbeacon/beacon-cross-origin-redirect-expected.txt:
- http/tests/blink/sendbeacon/beacon-cross-origin-redirect.html:
- http/tests/navigation/image-load-in-pagehide-handler-expected.txt:
- http/tests/navigation/image-load-in-pagehide-handler.html:
- http/tests/navigation/image-load-in-unload-handler-expected.txt:
- http/tests/navigation/image-load-in-unload-handler.html:
- http/tests/navigation/no-referrer-reset-expected.txt:
- http/tests/navigation/no-referrer-reset.html:
- http/tests/navigation/no-referrer-same-window.html:
- http/tests/navigation/no-referrer-subframe.html:
- http/tests/navigation/no-referrer-target-blank.html:
- http/tests/navigation/ping-attribute/anchor-cookie-expected.txt:
- http/tests/navigation/ping-attribute/anchor-cookie.html:
- http/tests/navigation/ping-attribute/anchor-cross-origin-expected.txt:
- http/tests/navigation/ping-attribute/anchor-cross-origin-from-https-expected.txt:
- http/tests/navigation/ping-attribute/anchor-cross-origin-from-https.html:
- http/tests/navigation/ping-attribute/anchor-cross-origin.html:
- http/tests/navigation/ping-attribute/anchor-ping-and-follow-redirect-when-sending-ping-expected.txt:
- http/tests/navigation/ping-attribute/anchor-ping-and-follow-redirect-when-sending-ping.html:
- http/tests/navigation/ping-attribute/anchor-same-origin-expected.txt:
- http/tests/navigation/ping-attribute/anchor-same-origin.html:
- http/tests/navigation/ping-attribute/area-cookie-expected.txt:
- http/tests/navigation/ping-attribute/area-cookie.html:
- http/tests/navigation/ping-attribute/area-cross-origin-expected.txt:
- http/tests/navigation/ping-attribute/area-cross-origin-from-https-expected.txt:
- http/tests/navigation/ping-attribute/area-cross-origin-from-https.html:
- http/tests/navigation/ping-attribute/area-cross-origin.html:
- http/tests/navigation/ping-attribute/area-same-origin-expected.txt:
- http/tests/navigation/ping-attribute/area-same-origin.html:
- http/tests/navigation/ping-attribute/resources/utilities.js:
(clearLastPingResultAndRunTest):
- http/tests/navigation/post-301-response.html:
- http/tests/navigation/post-302-response.html:
- http/tests/navigation/post-303-response.html:
- http/tests/navigation/post-307-response.html:
- http/tests/navigation/post-308-response.html:
- http/tests/navigation/resources/check-ping.php: Removed.
- http/tests/navigation/resources/check-ping.py: Added.
- http/tests/navigation/resources/delete-ping.php: Removed.
- http/tests/navigation/resources/delete-ping.py: Added.
- http/tests/navigation/resources/image-load-in-pagehide-handler-2.html:
- http/tests/navigation/resources/image-load-in-unload-handler-2.html:
- http/tests/navigation/resources/no-referrer-helper.php: Removed.
- http/tests/navigation/resources/no-referrer-helper.py: Added.
- http/tests/navigation/resources/no-referrer-reset-helper.php: Removed.
- http/tests/navigation/resources/no-referrer-reset-helper.py: Added.
- http/tests/navigation/resources/no-referrer-same-window-helper.php: Removed.
- http/tests/navigation/resources/no-referrer-same-window-helper.py: Added.
- http/tests/navigation/resources/ping-file-path.php: Removed.
- http/tests/navigation/resources/ping_file_path.py: Added.
- http/tests/navigation/resources/redirected-post-request-contents.php: Removed.
- http/tests/navigation/resources/redirected-post-request-contents.py: Added.
(check_header):
- http/tests/navigation/resources/redirection-response.php: Removed.
- http/tests/navigation/resources/redirection-response.py: Added.
- http/tests/navigation/resources/save-Ping.php: Removed.
- http/tests/navigation/resources/save-ping-and-redirect-to-save-ping.php: Removed.
- http/tests/navigation/resources/save-ping-and-redirect-to-save-ping.py: Added.
- http/tests/navigation/resources/save-ping.py: Added.
- http/tests/navigation/resources/save_ping.py: Added.
(not_being_called):
(save_ping):
- http/tests/security/contentSecurityPolicy/1.1/form-action-src-redirect-blocked.html:
- 1:57 PM Changeset in webkit [275676] by
-
- 2 edits1 delete in trunk/LayoutTests
[LayoutTests] Convert http/tests/workers convert PHP to Python
https://bugs.webkit.org/show_bug.cgi?id=223522
<rdar://problem/75624689>
Reviewed by Jonathan Bedard.
- http/tests/workers/resources/worker-encoded.py:
- http/tests/workers/resources/xhr-response.php: Removed.
- 1:46 PM Changeset in webkit [275675] by
-
- 2 edits in trunk/Source/WebCore
Remove virtual from RenderBox::availableLogicalWidth
https://bugs.webkit.org/show_bug.cgi?id=224332
Patch by Rob Buis <rbuis@igalia.com> on 2021-04-08
Reviewed by Darin Adler.
Remove virtual from RenderBox::availableLogicalWidth since
it is not overridden.
- rendering/RenderBox.h:
(WebCore::RenderBox::availableLogicalWidth const):
- 1:45 PM Changeset in webkit [275674] by
-
- 2 edits in trunk/Source/WTF
[RunLoopGeneric] OneShotTimer should not remain "isActive" after fired
https://bugs.webkit.org/show_bug.cgi?id=189335
<rdar://problem/44226604>
Reviewed by Geoffrey Garen.
- wtf/generic/RunLoopGeneric.cpp:
Deactivate one-shot timer before invoking its callback.
- 1:04 PM Changeset in webkit [275673] by
-
- 2 edits in trunk/Source/WebKit
Specify Swift version in configuration
https://bugs.webkit.org/show_bug.cgi?id=224334
Reviewed by Darin Adler.
Specify Swift language version 5 to stop an Xcode warning.
- Configurations/Base.xcconfig:
- 1:02 PM Changeset in webkit [275672] by
-
- 6 edits in trunk/Tools
Add webkit-patch support for fast-cq mode
https://bugs.webkit.org/show_bug.cgi?id=224286
Reviewed by Jonathan Bedard.
- Scripts/webkitpy/tool/steps/options.py:
(Options): Added --fast-cq parameter.
- Scripts/webkitpy/tool/steps/postdiff.py:
(PostDiff.options):
(PostDiff.run): Set the patch name appropriately for fast-cq mode.
- Scripts/webkitpy/common/net/bugzilla/attachment.py:
- Scripts/webkitpy/tool/commands/upload_unittest.py: Added unit test.
- 1:02 PM Changeset in webkit [275671] by
-
- 2 edits in trunk/Tools
EWS should keep working when Bugzilla is down
https://bugs.webkit.org/show_bug.cgi?id=224336
Reviewed by Jonathan Bedard.
- CISupport/ews-build/steps.py:
(BugzillaMixin.get_patch_json):
(BugzillaMixin.get_bug_json):
- 12:43 PM WebKitGTK/2.32.x edited by
- (diff)
- 12:05 PM Changeset in webkit [275670] by
-
- 6 edits in trunk/Source
[WPE] Build fixes for musl C library on Linux
https://bugs.webkit.org/show_bug.cgi?id=210068
Patch by Khem Raj <raj.khem@gmail.com> on 2021-04-08
Reviewed by Carlos Alberto Lopez Perez.
Source/JavaScriptCore:
Use OS(LINUX) to include musl in platform test
for linux and consolidate all linux platfrom
under same test. Use smaller limits for JSC
stack size per thread and reserved zone size.
- runtime/MachineContext.h:
(JSC::MachineContext::stackPointerImpl):
(JSC::MachineContext::framePointerImpl):
(JSC::MachineContext::instructionPointerImpl):
(JSC::MachineContext::argumentPointer<1>):
(JSC::MachineContext::llintInstructionPointer):
- runtime/OptionsList.h:
Source/WTF:
Define 128KB DEFAULT_THREAD_STACK_SIZE_IN_KB for musl
Use OS(LINUX) check to include musl when building for
Linux based platforms.
- wtf/PlatformHave.h:
- wtf/Threading.cpp:
- 11:47 AM Changeset in webkit [275669] by
-
- 2 edits in trunk/Source/WebKit
[Cocoa] Temporarily retain some media services when GPU Process active
https://bugs.webkit.org/show_bug.cgi?id=224328
<rdar://problem/76370805>
Reviewed by Eric Carlson.
Testing of the GPU Process show that access to the CoreMedia routing service is still needed under
some use cases. To prevent user-facing impact, we will allow these connections while the underlying
issues are resolved.
- UIProcess/WebPageProxy.cpp:
(WebKit::temporaryMachServices): Added.
(WebKit::WebPageProxy::creationParameters): Extend access to the set of temporaryMachServices when
the GPU Process is enabled.
- 11:41 AM Changeset in webkit [275668] by
-
- 28 edits4 adds in trunk
OfflineAudioContext objects are leaking
https://bugs.webkit.org/show_bug.cgi?id=224279
Reviewed by Darin Adler.
Source/WebCore:
OfflineAudioContext objects were always leaking due to 2 reference cycles:
- BaseAudioContext -> m_listener (AudioListener) -> m_positionX (AudioParam) -> m_context (BaseAudioContext)
- BaseAudioContext -> m_destinationNode (AudioDestinationNode) -> m_context (BaseAudioContext)
For reference cycle 1, I made AudioSummingJunction (base class of AudioParam) hold a weak pointer to the
AudioContext instead of a Ref<>. I don't think there is a good reason for an AudioSummingJunction (AudioParam
or AudioNodeInput) to keep its AudioContext alive. AudioNodes already keep their AudioContext alive.
AudioNodeInputs and AudioParams are associated to AudioNodes.
For reference cycle 2, I made AudioDestinationNode not hold a strong pointer to its context but instead a
weak pointer. Since keeping an AudioDestinationNode alive should keep its AudioContext alive, I made it so
that ref'ing the AudioDestinationNode refs its BaseAudioContext. Also, BaseAudioContext::m_destinationNode
is now a UniqueRef<> instead of a RefPtr<> to avoid a cycle.
Tests: webaudio/OfflineAudioContext/offlineaudiocontext-leak-after-rendering.html
webaudio/OfflineAudioContext/offlineaudiocontext-leak.html
- Modules/webaudio/AudioContext.cpp:
(WebCore::AudioContext::baseLatency):
(WebCore::AudioContext::getOutputTimestamp):
(WebCore::AudioContext::close):
(WebCore::AudioContext::destination):
(WebCore::AudioContext::destination const):
(WebCore::AudioContext::suspendRendering):
(WebCore::AudioContext::resumeRendering):
(WebCore::AudioContext::startRendering):
(WebCore::AudioContext::lazyInitialize):
(WebCore::AudioContext::mediaState const):
(WebCore::AudioContext::mayResumePlayback):
(WebCore::AudioContext::suspendPlayback):
(WebCore::AudioContext::pageMutedStateDidChange):
- Modules/webaudio/AudioContext.h:
- Drop some null checks now that m_destinationNode can no longer be null.
- Capture an ActiveDOMObject::PendingActivity when doing async work that ends up resolving a Promise, so that we keep both the object and its wrapper alive for the duration of the async work.
- Modules/webaudio/AudioDestinationNode.cpp:
(WebCore::AudioDestinationNode::ref):
(WebCore::AudioDestinationNode::deref):
- Modules/webaudio/AudioDestinationNode.h:
Have AudioDestinationNode override AudioNode's ref() / deref() to forward the refcounting
to its BaseAudioContext, instead of using the AudioNode's internal refCount.
- Modules/webaudio/AudioListener.cpp:
(WebCore::AudioListener::updateValuesIfNeeded):
(WebCore::AudioListener::setPosition):
(WebCore::AudioListener::setOrientation):
Add some null-checks for AudioParam::context() now that AudioParam holds a WeakPtr to its
context.
- Modules/webaudio/AudioNode.cpp:
(WebCore::AudioNode::toWeakOrStrongContext):
(WebCore::AudioNode::AudioNode):
(WebCore::AudioNode::connect):
(WebCore::AudioNode::sampleRate const):
(WebCore::AudioNode::markNodeForDeletionIfNecessary):
(WebCore::AudioNode::contextForBindings):
(WebCore::AudioNode::context):
(WebCore::AudioNode::context const):
- Modules/webaudio/AudioNode.h:
- Hold the BaseAudioContext as a WeakPtr instead of a Ref<> if the AudioNode is an AudioDestinationNode. This avoids a reference cycle since the BaseAudioContext owns the AudioDestinationNode. Even though we are using a WeakPtr, it is safe to assume that the context is not null because ref'ing an AudioDestinationNode refs its BaseAudioContext.
- Make sure markNodeForDeletionIfNecessary() has no effect for AudioDestinationNode since BaseAudioContext now owns the AudioDestinationNode when we take care of destroying its destination node when destroyed.
- Modules/webaudio/AudioNodeInput.cpp:
(WebCore::AudioNodeInput::connect):
(WebCore::AudioNodeInput::disconnect):
(WebCore::AudioNodeInput::outputEnabledStateChanged):
(WebCore::AudioNodeInput::updateInternalBus):
(WebCore::AudioNodeInput::bus):
(WebCore::AudioNodeInput::internalSummingBus):
(WebCore::AudioNodeInput::sumAllConnections):
(WebCore::AudioNodeInput::pull):
Add assertions that the context is not null. There were already assertions that we are the graph
owner, which means we are holding the BaseAudioContext's lock, which means that the audio context
is alive.
- Modules/webaudio/AudioParam.cpp:
(WebCore::AudioParam::value):
(WebCore::AudioParam::setValueForBindings):
(WebCore::AudioParam::smooth):
(WebCore::AudioParam::hasSampleAccurateValues const):
(WebCore::AudioParam::calculateSampleAccurateValues):
(WebCore::AudioParam::calculateFinalValues):
(WebCore::AudioParam::calculateTimelineValues):
(WebCore::AudioParam::connect):
(WebCore::AudioParam::disconnect):
Add null-checks for the AudioContext now that the AudioParam is only holding a WeakPtr to its
BaseAudioContext (to avoid a reference cycle).
- Modules/webaudio/AudioSummingJunction.cpp:
(WebCore::AudioSummingJunction::AudioSummingJunction):
(WebCore::AudioSummingJunction::~AudioSummingJunction):
(WebCore::AudioSummingJunction::markRenderingStateAsDirty):
(WebCore::AudioSummingJunction::addOutput):
(WebCore::AudioSummingJunction::removeOutput):
(WebCore::AudioSummingJunction::updateRenderingState):
(WebCore::AudioSummingJunction::outputEnabledStateChanged):
- Modules/webaudio/AudioSummingJunction.h:
(WebCore::AudioSummingJunction::context):
(WebCore::AudioSummingJunction::context const):
- Hold a WeakPtr to the BaseAudioContext to avoid a reference cycle.
- Deal with the fact that the audio context may be null now that we're holding a WeakPtr to it (except when holding the graph lock)
- Modules/webaudio/BaseAudioContext.cpp:
(WebCore::BaseAudioContext::BaseAudioContext):
(WebCore::BaseAudioContext::~BaseAudioContext):
(WebCore::BaseAudioContext::numberOfInstances):
(WebCore::BaseAudioContext::lazyInitialize):
(WebCore::BaseAudioContext::clear):
(WebCore::BaseAudioContext::uninitialize):
(WebCore::BaseAudioContext::stop):
(WebCore::BaseAudioContext::sampleRate const):
(WebCore::BaseAudioContext::decodeAudioData):
(WebCore::BaseAudioContext::markForDeletion):
(WebCore::BaseAudioContext::deleteMarkedNodes):
(WebCore::BaseAudioContext::setPendingActivity):
(WebCore::BaseAudioContext::workletIsReady):
- Modules/webaudio/BaseAudioContext.h:
(WebCore::BaseAudioContext::destination):
(WebCore::BaseAudioContext::destination const):
(WebCore::BaseAudioContext::currentSampleFrame const):
(WebCore::BaseAudioContext::currentTime const):
- Switch m_destinationNode from RefPtr<> to UniqueRef<> since the AudioContext is now the owner of the destinationNode and since refing the destination node actually refs its BaseAudioContext.
- Drop some null checks now that m_destinationNode can no longer be null.
- Rename makePendingActivity() to setPendingActivity() to avoid a naming conflict with ActiveDOMObject::makePendingActivity().
- Modules/webaudio/DefaultAudioDestinationNode.h:
- Modules/webaudio/OfflineAudioDestinationNode.h:
- Drop create() factory functions and make the constructor public now that the BaseAudioContext owns its destination node via a UniqueRef<>.
- Make some member functions public as they are virtual and they now called on the subclass instead of the base class (and these functions are public in the base class).
- Modules/webaudio/OfflineAudioContext.cpp:
(WebCore::OfflineAudioContext::startOfflineRendering):
(WebCore::OfflineAudioContext::resumeOfflineRendering):
- Modules/webaudio/OfflineAudioContext.h:
- Drop some null checks now that m_destinationNode can no longer be null.
- Capture an ActiveDOMObject::PendingActivity when doing async work that ends up resolving a Promise, so that we keep both the object and its wrapper alive for the duration of the async work.
- Modules/webaudio/WebKitAudioContext.cpp:
(WebCore::WebKitAudioContext::close):
Drop null checks for the destination node now that it can never be null.
- dom/ShadowRoot.cpp:
- rendering/FloatingObjects.cpp:
- rendering/RootInlineBox.cpp:
Update classes used of size restrictions since the size of a WeakPtr is not longer the same as the size of a
pointer when debug assertions are enabled. As long as they are the same size in release builds, there is no
memory use concern.
- testing/Internals.cpp:
(WebCore::Internals::numberOfBaseAudioContexts const):
- testing/Internals.h:
- testing/Internals.idl:
Add testing function to check how many BaseAudioContexts are alive, so that we can write layout tests and check
for leaks.
Source/WTF:
Add flag that can be passed when constructing a WeakPtr to disable threading assertions.
This is useful for cases where we know it is safe due to locking but we'd like to use a
WeakPtr instead of a raw pointer because it is safer.
- wtf/WeakPtr.h:
(WTF::WeakPtr::get const):
(WTF::WeakPtr::operator-> const):
(WTF::WeakPtr::operator* const):
(WTF::WeakPtr::WeakPtr):
(WTF::WeakPtrFactory::createWeakPtr const):
(WTF::=):
(WTF::makeWeakPtr):
LayoutTests:
Add layout test coverage.
- webaudio/OfflineAudioContext/offlineaudiocontext-leak-after-rendering-expected.txt: Added.
- webaudio/OfflineAudioContext/offlineaudiocontext-leak-after-rendering.html: Added.
- webaudio/OfflineAudioContext/offlineaudiocontext-leak-expected.txt: Added.
- webaudio/OfflineAudioContext/offlineaudiocontext-leak.html: Added.
- 11:37 AM Changeset in webkit [275667] by
-
- 6 edits in trunk
Streams: new test failure for canceling the branches of an errored tee'd stream
https://bugs.webkit.org/show_bug.cgi?id=223558
<rdar://problem/75924807>
Reviewed by Alex Christensen.
LayoutTests/imported/w3c:
Rebased from WPT ToT.
- web-platform-tests/streams/readable-streams/tee.any-expected.txt:
- web-platform-tests/streams/readable-streams/tee.any.js:
(promise_test.async const):
(promise_test):
(promise_test.async t):
- web-platform-tests/streams/readable-streams/tee.any.worker-expected.txt:
Source/WebCore:
Align with latest version of the spec.
Covered by updated test.
- Modules/streams/ReadableStreamInternals.js:
(readableStreamTee):
(readableStreamTeePullFunction):
- 11:30 AM Changeset in webkit [275666] by
-
- 2 edits in trunk/Tools
prepare-ChangeLog fails to find deleted functions in files with spaces in their path in Git repositories
https://bugs.webkit.org/show_bug.cgi?id=224303
Patch by Adam Roben <Adam Roben> on 2021-04-08
Reviewed by Sam Weinig.
It would also print a bunch of errors like this on stderr:
fatal: ambiguous argument 'Foo/Bar.cpp': unknown revision or path not in the working tree.
Use '--' to separate paths from revisions, like this:
'git <command> [<revision>...] -- [<file>...]'
- Scripts/prepare-ChangeLog:
(originalFile): Quote the file path in the
git show
command we
construct.
- 11:25 AM Changeset in webkit [275665] by
-
- 2 edits in trunk/Tools
Repalce bot187 with bot178 for CLoop tester.
rdar://76009577
Unreviewed infrustructure fix.
- CISupport/build-webkit-org/config.json:
- 11:23 AM Changeset in webkit [275664] by
-
- 11 edits2 adds in trunk
VoiceOver does not echo text insertions and deletions when a contenteditable div has a non editable descendant element with a content editable child
https://bugs.webkit.org/show_bug.cgi?id=223818
Reviewed by Chris Fleizach.
Source/WebCore:
Test: accessibility/nested-textareas-value-changed-notifications.html
AXObjectCache::textChanged now only notifies the closest non-native text
control of value changes. This avoid the problem of multiple value
changed notifications in a row when there are nested text areas.
Removed AccessibilityRenderObject::textChanged and moved that
functionality to AXObjectCache::textChanged, where it belongs.
- accessibility/AXObjectCache.cpp:
(WebCore::AXObjectCache::textChanged):
- accessibility/AccessibilityObject.h:
- accessibility/AccessibilityObjectInterface.h:
- accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::textChanged): Deleted.
- accessibility/AccessibilityRenderObject.h:
- accessibility/isolatedtree/AXIsolatedObject.cpp:
(WebCore::AXIsolatedObject::textChanged): Deleted.
- accessibility/isolatedtree/AXIsolatedObject.h:
LayoutTests:
- accessibility/nested-textareas-value-changed-notifications-expected.txt: Added.
- accessibility/nested-textareas-value-changed-notifications.html: Added.
- 11:21 AM Changeset in webkit [275663] by
-
- 2 edits in trunk/Source/WebKit
Unreviewed, fix the internal build after r275640
https://bugs.webkit.org/show_bug.cgi?id=224239
- WebKit.xcodeproj/project.pbxproj:
This source file was added to the project as a compilation target, but it also appears in unified sources; this
causes theencode
anddecode
methods to be defined twice, leading to a linker error. Fix this by only
including it as a unified source.
- 11:17 AM Changeset in webkit [275662] by
-
- 2 edits in trunk/Source/WebCore
Broken transition when video player with MediaStream changes size
https://bugs.webkit.org/show_bug.cgi?id=224161
<rdar://problem/76366061>
Reviewed by Eric Carlson.
In case of animation that changes the root layer bounds, we need to synchronously update
the buffer layer as well.
Manually tested.
- platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.mm:
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::rootLayerBoundsDidChange):
- 11:15 AM Changeset in webkit [275661] by
-
- 2 edits in trunk/Source/WebKit
[Swift] Move the "Copy Additional Sources" Build Phase into the WebKitSwift target
https://bugs.webkit.org/show_bug.cgi?id=224330
Reviewed by Eric Carlson.
Avoid a dependency cycle (WebKit -> WebKitSwift -> WebKit) due to the Copy Additional Sources phase by moving
that phase to the WebKitSwift target itself.
- WebKit.xcodeproj/project.pbxproj:
- 10:03 AM Changeset in webkit [275660] by
-
- 2 edits in trunk/Source/WebCore
Compact GraphicsContextState
https://bugs.webkit.org/show_bug.cgi?id=224317
Reviewed by Jon Lee.
Shrink GraphicsContextState from 192 to 184 bytes. This saves space in all the
GraphicsContext state stacks, and on pages with filters and canvas there can be
many of these.
- platform/graphics/GraphicsContext.h:
- 9:54 AM CSSContainment edited by
- (diff)
- 9:14 AM Changeset in webkit [275659] by
-
- 30 edits in trunk
Remove logging for investigating http/tests/IndexedDB/storage-limit-1.html failure
https://bugs.webkit.org/show_bug.cgi?id=223086
<rdar://problem/75591816>
Reviewed by Chris Dumez.
Source/WebCore:
- Modules/indexeddb/server/IDBServer.cpp:
(WebCore::IDBServer::IDBServer::diskUsage):
- Modules/indexeddb/server/IDBServer.h:
- Modules/indexeddb/server/SQLiteIDBBackingStore.cpp:
(WebCore::IDBServer::SQLiteIDBBackingStore::databasesSizeForDirectory):
- Modules/indexeddb/server/SQLiteIDBBackingStore.h:
- storage/StorageQuotaManager.cpp:
(WebCore::StorageQuotaManager::requestSpaceOnBackgroundThread):
(WebCore::StorageQuotaManager::tryGrantRequest):
(WebCore::StorageQuotaManager::setLoggingEnabled): Deleted.
- storage/StorageQuotaManager.h:
Source/WebKit:
- NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::storageQuotaManager):
(WebKit::NetworkProcess::setQuotaLoggingEnabled): Deleted.
- NetworkProcess/NetworkProcess.h:
- NetworkProcess/NetworkProcess.messages.in:
- UIProcess/API/C/WKWebsiteDataStoreRef.cpp:
(WKWebsiteDataStoreSetQuotaLoggingEnabled): Deleted.
- UIProcess/API/C/WKWebsiteDataStoreRef.h:
- UIProcess/Network/NetworkProcessProxy.cpp:
(WebKit::NetworkProcessProxy::setQuotaLoggingEnabled): Deleted.
- UIProcess/Network/NetworkProcessProxy.h:
- UIProcess/WebsiteData/WebsiteDataStore.cpp:
(WebKit::WebsiteDataStore::setQuotaLoggingEnabled): Deleted.
- UIProcess/WebsiteData/WebsiteDataStore.h:
Source/WebKitLegacy:
- Storage/InProcessIDBServer.cpp:
(InProcessIDBServer::quotaManager):
Tools:
- WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl:
- WebKitTestRunner/InjectedBundle/TestRunner.cpp:
(WTR::TestRunner::setQuotaLoggingEnabled): Deleted.
- WebKitTestRunner/InjectedBundle/TestRunner.h:
- WebKitTestRunner/TestController.cpp:
(WTR::TestController::setQuotaLoggingEnabled): Deleted.
- WebKitTestRunner/TestController.h:
- WebKitTestRunner/TestInvocation.cpp:
(WTR::TestInvocation::didReceiveSynchronousMessageFromInjectedBundle):
LayoutTests:
- http/tests/IndexedDB/storage-limit-1.https.html:
- http/tests/IndexedDB/storage-limit-2.https.html:
- http/tests/IndexedDB/storage-limit.https.html:
- 9:14 AM Changeset in webkit [275658] by
-
- 4 edits in trunk
Copy-constructed Vectors should not have excess capacity
https://bugs.webkit.org/show_bug.cgi?id=224313
Reviewed by Darin Adler.
Source/WTF:
When copy-constructing a Vector<>, set the capacity to the size of the input.
This avoids wasted vector capacity at call sites that dynamically build vectors
and then copy them into read-only caches.
- wtf/Vector.h:
(WTF::Malloc>::Vector):
Tools:
New API tests for testing capacity on copy-construct, with tests for copy-constructing
with various configs of inline capacity.
- TestWebKitAPI/Tests/WTF/Vector.cpp:
(TestWebKitAPI::TEST):
- 8:34 AM WebKitGTK/2.32.x edited by
- (diff)
- 6:16 AM Changeset in webkit [275657] by
-
- 16 edits in trunk
Revert r273621 because iPhone PLT regression
https://bugs.webkit.org/show_bug.cgi?id=224323
Unreviewed.
Source/WebCore:
- dom/CharacterData.cpp:
(WebCore::CharacterData::parserAppendData):
(WebCore::CharacterData::setDataAndUpdate):
- dom/Document.cpp:
(WebCore::Document::removedLastRef):
(WebCore::Document::resolveStyle):
(WebCore::Document::updateTextRenderer):
(WebCore::Document::needsStyleRecalc const):
- dom/Document.h:
- dom/Text.cpp:
(WebCore::Text::splitText):
(WebCore::Text::updateRendererAfterContentChange):
- editing/CompositeEditCommand.cpp:
(WebCore::CompositeEditCommand::deleteInsignificantText):
- editing/markup.cpp:
(WebCore::replaceChildrenWithFragment):
- rendering/updating/RenderTreeUpdater.cpp:
- style/StyleTreeResolver.cpp:
(WebCore::Style::TreeResolver::TreeResolver):
(WebCore::Style::TreeResolver::resolve):
- style/StyleTreeResolver.h:
(WebCore::Style::TreeResolver::TreeResolver): Deleted.
- style/StyleUpdate.cpp:
(WebCore::Style::Update::addText):
(WebCore::Style::Update::addPossibleRoot):
- style/StyleUpdate.h:
(WebCore::Style::Update:: const):
(WebCore::Style::Update::roots const): Deleted.
LayoutTests:
- 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:
- 3:53 AM Changeset in webkit [275656] by
-
- 12 edits2 adds in trunk
Update SFrame implementation to latest version
https://bugs.webkit.org/show_bug.cgi?id=224276
Reviewed by Eric Carlson.
Source/WebCore:
Update implementation according to latest draft at https://github.com/eomara/sframe/blob/master/draft-omara-sframe.md.
In particular, we derive keys with new algorithm and the generation of the signature by including header and data length as well as nonce.
Test: webrtc/sframe-test-vectors.html
- Modules/mediastream/RTCRtpSFrameTransform.cpp:
(WebCore::RTCRtpSFrameTransform::setCounterForTesting):
- Modules/mediastream/RTCRtpSFrameTransform.h:
- Modules/mediastream/RTCRtpSFrameTransformer.cpp:
(WebCore::computeIV):
(WebCore::RTCRtpSFrameTransformer::updateEncryptionKey):
(WebCore::RTCRtpSFrameTransformer::decryptFrame):
(WebCore::RTCRtpSFrameTransformer::encryptFrame):
(WebCore::RTCRtpSFrameTransformer::computeEncryptedDataSignature):
- Modules/mediastream/RTCRtpSFrameTransformer.h:
- Modules/mediastream/RTCRtpSFrameTransformerCocoa.cpp:
(WebCore::RTCRtpSFrameTransformer::computeSaltKey):
(WebCore::createBaseSFrameKey):
(WebCore::RTCRtpSFrameTransformer::computeAuthenticationKey):
(WebCore::RTCRtpSFrameTransformer::computeEncryptionKey):
(WebCore::encodeBigEndian):
(WebCore::RTCRtpSFrameTransformer::computeEncryptedDataSignature):
- testing/Internals.cpp:
(WebCore::Internals::setSFrameCounter):
- testing/Internals.h:
- testing/Internals.idl:
Tools:
Update tests according new way of deriving keys and generating the signature.
- TestWebKitAPI/Tests/WebCore/RTCRtpSFrameTransformerTests.cpp:
(TestWebKitAPI::TEST):
LayoutTests:
- webrtc/sframe-test-vectors-expected.txt: Added.
- webrtc/sframe-test-vectors.html: Added.
- 1:58 AM Changeset in webkit [275655] by
-
- 10 edits in trunk/Source/WebKit
Difficult to understand which IPC message caused an ASSERT due to being not handled
https://bugs.webkit.org/show_bug.cgi?id=224269
Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2021-04-08
Reviewed by Chris Dumez.
Add the message name and destination ID to the assertion message about
unhandled IPC message.
- 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):
- 1:38 AM Changeset in webkit [275654] by
-
- 2 edits in trunk/Source/WebCore
Unreviewed. Fixed build warning.
- platform/graphics/gstreamer/eme/WebKitCommonEncryptionDecryptorGStreamer.h: Avoid C-linkage warning.
Apr 7, 2021:
- 10:48 PM Changeset in webkit [275653] by
-
- 5 edits1 add in trunk
[JSC] DUCET level-1 weighs are equal if characters are alphabets
https://bugs.webkit.org/show_bug.cgi?id=224047
Reviewed by Saam Barati and Mark Lam.
JSTests:
- stress/ducet-level-3-or-4-comparison.js: Added.
(shouldBe):
Source/JavaScriptCore:
ASCII comparison optimization was based on that DUCET level-1 weights are all different (except for 0000 case), but this was wrong.
If we have the same latin letters with different capitalization, then they have the same level-1 weight ('A' v.s. 'a').
In this patch,
- If we found that the result of level-1 weight comparison is equal, and characters are not equal, then we do level-3 weight comparison. We do not perform level-2 since they are all the same weight in ASCII (excluding control characters) region.
- We do not perform level-4 weight comparison since level-1 and level-3 comparison must distinguish the strings. Level-1 weights are equal only when characters are the same latin letters. And level-3 weight puts different weights for capital latin letters. Since we already know that these strings are different while they are equal in level-1 weight comparison, the only case is that they have same latin letters in the same position. In that case, level-3 weight must say different results for these characters so that we never meet "equal" status in level-3 weight comparison if characters are different.
- runtime/IntlObject.cpp:
- runtime/IntlObject.h:
- runtime/IntlObjectInlines.h:
(JSC::canUseASCIIUCADUCETComparison):
(JSC::compareASCIIWithUCADUCETLevel3):
(JSC::compareASCIIWithUCADUCET):
- 10:21 PM Changeset in webkit [275652] by
-
- 4 edits2 adds in trunk
Nullptr dereference in ReplaceSelectionCommand::removeRedundantStylesAndKeepStyleSpanInline
https://bugs.webkit.org/show_bug.cgi?id=224259
Patch by Julian Gonzalez <julian_a_gonzalez@apple.com> on 2021-04-07
Reviewed by Ryosuke Niwa.
Source/WebCore:
When pruning after removing the end <br> in ReplaceSelectionCommand::doApply(), make sure
that insertedNodes is updated properly (given that we may be removing an ancestor
of the start or end of insertedNodes).
Test: editing/inserting/insert-display-contents-crash.html
- editing/ReplaceSelectionCommand.cpp:
(WebCore::ReplaceSelectionCommand::InsertedNodes::willRemovePossibleAncestorNode):
(WebCore::ReplaceSelectionCommand::InsertedNodes::willRemoveNode):
(WebCore::ReplaceSelectionCommand::doApply):
- editing/ReplaceSelectionCommand.h:
LayoutTests:
Add a test to catch the editing crash fixed here; thanks to Tuomas Karkkainen
for its basic structure.
- editing/inserting/insert-display-contents-crash-expected.txt: Added.
- editing/inserting/insert-display-contents-crash.html: Added.
- 9:21 PM Changeset in webkit [275651] by
-
- 2 edits in trunk/Source/WebCore
Site could crash if MediaRemote framework isn't available.
https://bugs.webkit.org/show_bug.cgi?id=224308
<rdar://problem/76273591>
Reviewed by Eric Carlson.
Check that MediaRemote framework is available before calling any of its method.
We put the check in the two static methods calling MediaRemote in order to keep all code dealing with MediaRemote in the same place.
- platform/audio/cocoa/MediaSessionManagerCocoa.mm:
(WebCore::MediaSessionManagerCocoa::clearNowPlayingInfo): Add a test with isMediaRemoteFrameworkAvailable
(WebCore::MediaSessionManagerCocoa::setNowPlayingInfo): Add a test with isMediaRemoteFrameworkAvailable
- 7:19 PM Changeset in webkit [275650] by
-
- 53 edits in trunk/Source
Use Hasher more, remove IntegerHasher, fix hashing-related mistakes
https://bugs.webkit.org/show_bug.cgi?id=224138
Reviewed by Chris Dumez.
Source/JavaScriptCore:
- bytecode/BytecodeIndex.h:
(JSC::BytecodeIndex::hash const): Remove unneeded WTF prefix on call
to intHash.
- ftl/FTLAbstractHeap.h: Use HashTraits instead of WTF::GenericHashTraits.
- ftl/FTLLowerDFGToB3.cpp:
(JSC::FTL::DFG::LowerDFGToB3::validateAIState): Remove unneeded WTF
prefix on call to intHash.
- wasm/WasmLLIntGenerator.cpp: Use HashTraits instead of WTF::GenericHashTraits.
Source/WebCore:
- contentextensions/ContentExtensionRule.h:
(WebCore::ContentExtensions::TriggerHash::hash): Use computeHash to
hash all the fields instead of a custom-written algorithm. The custom
algorithm had some magic numbers, repeatedly hashed hashes, and combined
hashes using exclusive or. The new one is almost certainly better.
- contentextensions/Term.h:
(WebCore::ContentExtensions::Term::CharacterSet::hash const):
Use computeHash to hash the boolean and the characters rather than
using intHash and pairIntHash.
- css/parser/CSSParserContext.cpp:
(WebCore::add): Moved the hashing here from the header. Fixed the
mistake where this was using & instead of | and so none of the booleans
were having any effect on the hash value.
- css/parser/CSSParserContext.h: Use WTF_MAKE_STRUCT_FAST_ALLOCATED so
we don't have to say public: explicitly. Also moved all the function
members to the bottom of the struct. This is typically preferred style
for structures as opposed to classes. Since the data members are the
primary interface, they are first, and all function members are secondary
and so they come after.
(WebCore::CSSParserContextHash::hash): Use convertHash instead of
a custom written hash function. The custom written function was combining
hahes using exclusive or, not a best practice, and also had a mistake
where it used & instead of | and so the "bits" local variable was always 0.
- html/FormController.cpp: Use HashTraits instead of WTF::GenericHashTraits.
- platform/encryptedmedia/CDMProxy.h: Removed unneedes includes.
- platform/graphics/Font.cpp: Changed CharacterFallbackMapKey into a
simple struct with no additional function members or static data members.
Changed CharacterFallbackMapKeyHash to use computeHash to calculate the
hash, instead of IntegerHasher. Probably better to hash the pointer of
the AtomString rather than hashing the hash, but either way, we should
have the best implementation for AtomString hashing in the Hasher class.
Added CharacterFallbackMapKeyHashTraits instead of using
SimpleClassHashTraits. Use the value U_SENTINEL for the UChar32 character,
which is the same as the -1 used before, but slightly clearer why it's OK.
(WebCore::Font::systemFallbackFontForCharacter const): Use HashMap::ensure
instead of HashMap::add to make the logic simpler.
- platform/graphics/Font.h: Use bool instead of uint8_t as the base type
for the No/Yes enumeration IsForPlatformFont.
- platform/graphics/FontCache.cpp: Removed unneeded "using namespace WTF",
which is not our best practice, especially given unified builds.
Changed FontPlatformDataCacheKey into a simple struct, removing all the
hash-related member functions. Also used struct-style naming for the
members without an "m_" prefix. Used the type FontFamilyName for the
family name, which means we will use FontCascadeDescription's system
for hashing and comparing family names for equality without having to
remember do to so explicitly. Changed FontPlatformDataCacheKeyHash to
use computeHash. The old version had unnecessarily complex logic to
handle Optional and was unnecessarily hashing hashes.
(WebCore::FontCache::cachedFontPlatformData): Renamed to remove "get"
from the function's name. Also use shorter argument and local variable
names that are single words, and updated since FontPlatformDataCacheKey
is now a struct without a constructor.
(WebCore::FontCache::fontForFamily): Use shorter names.
(WebCore::operator==): To compare two FontCascadeCacheKey objects,
use a simpler constructions, depending on the fact that Vector already
has an == operator and we are using FontFamilyName for the elements
of the vector, which has a correct == operator.
(WebCore::FontCascadeCacheKeyHash::hash): Use computeHash since
the FontFamilyName hashing is now correct, and we can rely on the
way Hasher knows how to iterate a collection.
(WebCore::FontCache::retrieveOrAddCachedFonts): Update since
FontCascadeCacheEntry is now a simple struct. Also use constexpr a bit.
(WebCore::FontCache::invalidate): Use copyToVectorOf<> to simplify the
code that calls fontCacheInvalidated on all the font selectors.
- platform/graphics/FontCache.h: Use "using" instead of "typedef".
Remove FontDescriptionKey::computeHash.
(WebCore::add): An overload of add for Hasher to include a
FontDescriptionKey in a hash, which just lists all the data members.
The old version did a hash of hashes, but that's not needed any more.
Updated FontDescriptionKeyHash to use the Hasher version of ComputeHash.
Added FontFamilyName. Change FontCascadeCacheKey to use a vector of
FontFamilyName instead of AtomString. In FontCascadeCacheEntry, use
WTF_MAKE_STRUCT_FAST_ALLOCATED instead of WTF_MAKE_FAST_ALLOCATED
and also got rid of the unneeeded constructor.
(WebCore::FontCascadeCacheKeyHashTraits::constructDeletedValue):
Use the deleted value of FontDescriptionKey.
(WebCore::FontCascadeCacheKeyHashTraits::isDeletedValue): Ditto.
Renamed getCachedFontPlatformData to just cachedFontPlatformData.
- platform/graphics/FontGenericFamilies.h: Use HashTraits instead of
WTF::GenericHashTraits.
- platform/graphics/FontSelectionAlgorithm.h:
(WebCore::FontSelectionRange::uniqueValue const): Deleted.
(WebCore::add): Add both the minimum and maximum values to the hash
separately instead of combining them. For now, this makes the way
they are hashed a bit inefficient, but that can be re-tightened up by
improving the algorithm of Hasher if we like. Should be fine for our
needs either way.
- platform/graphics/FontTaggedSettings.cpp:
(WebCore::FontFeatureSettings::hash const): Deleted.
(WebCore::FontVariationSettings::hash const): Deleted.
- platform/graphics/FontTaggedSettings.h: Added overloads of the
add(Hasher&) function for std::array<char, 4> and FontTaggedSetting<T>.
Got rid of many uses of pass by reference instead of value for FontTag,
since it fits into a 32-bit register and bth more source code and less
efficient to pass by value.
- platform/graphics/Gradient.cpp: Removed "using WTF::pairIntHash" since
that's now done in the WTF header.
- platform/graphics/cg/GraphicsContextCG.cpp: Ditto. Also removed
"using WTF::GenericHashTraits", which was unhelpful. The GenericHashTraits
template is only really needed when specializing HashTraits, which
already has to be done within the WTF namespace. In all other cases, we
should just use HashTraits instead.
- platform/graphics/cg/SubimageCacheWithTimer.h: Use HashTraits
instead of WTF::GenericHashTraits.
- platform/graphics/cocoa/FontFamilySpecificationCoreText.cpp:
Move the data members to the top of the FontFamilySpecificationKey struct.
Removed unneeded computeHash function and WTF prefix from safeCFEqual.
(WebCore::FontFamilySpecificationKeyHash::hash): Call the Hasher version
of computeHash directly to hash the two items in this structure.
- platform/graphics/cocoa/SystemFontDatabaseCoreText.h:
(WebCore::SystemFontDatabaseCoreText::CascadeListParameters::hash const):
Use computeHash instead of IntegerHasher. Also renamed the hash function
struct from CascadeListParameters::CascadeListParametersHash to
CascadeListParameters::Hash.
- platform/graphics/mac/ComplexTextControllerCoreText.mm:
(WebCore::ComplexTextController::collectComplexTextRunsForCharacters):
Removed now-unneeded WTF prefixes from calls to safeCFEqual.
- rendering/TextAutoSizing.h: Use HashTraits instead of WTF::GenericHashTraits.
- rendering/style/RenderStyle.cpp:
(WebCore::computeFontHash): Use computeHash instead of IntegerHasher.
Still not great that we hash a hash here, but we can improve that later.
- workers/service/ServiceWorkerClientIdentifier.h:
(WebCore::ServiceWorkerClientIdentifier::decode): Removed unneeded
WTFMove on ObjectIdentifier, which are just integers, so move vs. copy
is not an important distinction.
(WebCore::ServiceWorkerClientIdentifier::hash const): Use computeHash
instead of combining intHash with StringHasher::hashMemory. This fixes
two mistakes: one is that there is no need to hash a hash. The second is
that intHash takes a 32-bit integer as its parameter, so high bits
of object identifiers were discarded unnecessarily.
- workers/service/ServiceWorkerContextData.h: Removed unneeded include.
- workers/service/ServiceWorkerGlobalScope.h: Added now-needed include
of URLHash.h, since we removed it from a widely-included header.
- workers/service/context/SWContextManager.h: Ditto.
- workers/service/server/ServiceWorkerThreadProxy.h: Ditto.
- workers/service/server/RegistrationStore.h: Ditto.
- workers/service/server/SWServer.h: Ditto.
- workers/service/server/SWServerToContextConnection.h: Ditto.
- workers/service/server/SWServerWorker.h: Ditto.
Source/WebKit:
- NetworkProcess/ServiceWorker/WebSWServerToContextConnection.h: Added now-needed include
of URLHash.h, since we removed it from a widely-included header.
- NetworkProcess/cache/NetworkCache.h:
(WebKit::NetworkCache::GlobalFrameID::hash const): Use computeHash
instead of combining intHash with StringHasher::hashMemory. This fixes
two mistakes: one is that there is no need to hash a hash. The second is
that intHash takes a 32-bit integer as its parameter, so high bits
of object identifiers were discarded unnecessarily.
- Scripts/webkit/messages.py: Added code so that if URL is in an argument, we include the
URLHash.h header. Would be better to just use URL.h and use URLHash.h only if it's a
HashMap<URL>, but currently the script does not distinguish those cases. This wasn't needed
before becuase a widely included header was always pulling in URLHash.h.
- Shared/API/Cocoa/WKBrowsingContextHandle.mm:
(-[WKBrowsingContextHandle hash]): Use computeHash instead of pairIntHash.
This fixes a mistake: pairIntHash takes two 32-bit integers, so high bits
of object identifiers were discarded unnecessarily.
- NetworkProcess/Storage/WebSWContextManagerConnection.h: Added now-needed include
of URLHash.h, since we removed it from a widely-included header.
Source/WebKitLegacy/mac:
- History/BinaryPropertyList.cpp: Use HashTraits instead of WTF::GenericHashTraits.
Source/WTF:
- wtf/HashFunctions.h: Export intHash and pairIntHash to the global namespace
so they can be called without an explicit WTF prefix. This follows the usual
WTF design pattern given that these functions are intended for use outside WTF.
- wtf/Hasher.h: Deleted IntegerHasher.
(WTF::add): Added overloads for String, AtomString, and URL.
- wtf/ObjectIdentifier.h:
(WTF::add): Added a Hasher overload for any ObjectIdentifier.
- wtf/RetainPtr.h: Export safeCFEqual and safeCFHash to the global namespace
so they can be called without an explicit WTF prefix. This follows the usual
WTF design pattern given that these functions are intended for use outside WTF.
- wtf/VectorHash.h: Removed the VectorHash template, instead just specializing
DefaultHash. Use computeHash to hash the contents of the vector instead of
hashing the hashes of the items in the vector. This is better in general and
better for the one case where we are currently using this, for a Vector<int>.
We want to hash all the integers rather than hashing hashes of all the integers.
In the future, this means the elements of the Vector need to be hashable using
the Hasher machinery. The old requirement was the the elements had a DefaultHash.
- 6:55 PM Changeset in webkit [275649] by
-
- 2 edits in trunk/Source/ThirdParty/ANGLE
Crash in conformance2/textures/misc/compressed-tex-image.html with ANGLE+METAL
Handle uploading a compressed texture with a non-aligned offset. Path requires that we still fill the entire level of a
compressed texture.
https://bugs.webkit.org/show_bug.cgi?id=223925
Patch by Kyle Piddington <Kyle Piddington> on 2021-04-07
Reviewed by Dean Jackson.
- src/libANGLE/renderer/metal/TextureMtl.mm:
(rx::TextureMtl::convertAndSetPerSliceSubImage):
- 5:30 PM Changeset in webkit [275648] by
-
- 27 edits in trunk/Source
Rename and make the TerminationException a singleton.
https://bugs.webkit.org/show_bug.cgi?id=224295
Reviewed by Keith Miller.
Source/JavaScriptCore:
We previously call it the TerminatedExecutionException, which is a mouthful but
adds no meaningful information. It's now renamed to TerminationException.
We can make it a singleton because the TerminationException is just a VM internal
mechanism for implementing the termination of the current execution stack. It
should never be exposed to user JS code, and therefore, there is no value in
making it a JS object. Making it a singleton simplifies the code.
A TerminationException is now implemented as an Exception cell which holds a
Symbol with the name "TerminationError". The TerminationException is only created
if needed e.g. if the JSC watchdog is created, or if the VM is for a Worker thread
which needs to be able to handle termination requests.
We'll also stop notifying the debugger when we throw the TerminationException.
This is because the TerminationException is not like ordinary exceptions that
should be reported to the debugger. The fact that the TerminationException uses
the exception handling mechanism is just a VM internal implementation detail.
It is not meaningful to report it to the debugger as an exception.
- API/JSContext.mm:
(-[JSContext evaluateJSScript:]):
- API/tests/ExecutionTimeLimitTest.cpp:
(testExecutionTimeLimit):
- bindings/ScriptFunctionCall.cpp:
(Deprecated::ScriptFunctionCall::call):
- heap/Heap.cpp:
(JSC::Heap::addCoreConstraints):
- inspector/InjectedScriptManager.cpp:
(Inspector::InjectedScriptManager::injectedScriptFor):
- inspector/JSGlobalObjectInspectorController.cpp:
(Inspector::JSGlobalObjectInspectorController::reportAPIException):
- interpreter/Interpreter.cpp:
(JSC::Interpreter::unwind):
(JSC::Interpreter::notifyDebuggerOfExceptionToBeThrown):
- jit/JITOperations.cpp:
(JSC::JSC_DEFINE_JIT_OPERATION):
- jsc.cpp:
(checkException):
- llint/LLIntSlowPaths.cpp:
(JSC::LLInt::LLINT_SLOW_PATH_DECL):
- runtime/ExceptionHelpers.cpp:
(JSC::TerminatedExecutionError::defaultValue): Deleted.
(JSC::createTerminatedExecutionException): Deleted.
(JSC::isTerminatedExecutionException): Deleted.
(JSC::throwTerminatedExecutionException): Deleted.
- runtime/ExceptionHelpers.h:
(): Deleted.
- runtime/JSObject.h:
(JSC::JSObject::get const):
- runtime/JSPromise.cpp:
(JSC::JSPromise::rejectWithCaughtException):
- runtime/VM.cpp:
(JSC::VM::VM):
(JSC::VM::ensureWatchdog):
(JSC::VM::ensureTerminationException):
(JSC::VM::throwTerminationException):
(JSC::VM::throwException):
- runtime/VM.h:
(JSC::VM::terminationException const):
(JSC::VM::isTerminationException const):
- runtime/VMTraps.cpp:
(JSC::VMTraps::handleTraps):
Source/WebCore:
In the WorkerOrWorkletScriptController constructor, we ensure the TerminationException
because workers need to support termination requests.
- bindings/js/JSDOMExceptionHandling.cpp:
(WebCore::reportException):
- bindings/js/JSDOMGlobalObject.cpp:
(WebCore::JSC_DEFINE_HOST_FUNCTION):
(WebCore::handleResponseOnStreamingAction):
- bindings/js/JSDOMPromise.cpp:
(WebCore::DOMPromise::whenPromiseIsSettled):
- bindings/js/JSDOMPromiseDeferred.cpp:
(WebCore::DeferredPromise::reject):
- bindings/js/JSEventListener.cpp:
(WebCore::JSEventListener::handleEvent):
- bindings/js/ReadableStream.cpp:
(WebCore::invokeReadableStreamFunction):
(WebCore::ReadableStream::lock):
(WebCore::checkReadableStream):
- bindings/js/ReadableStreamDefaultController.cpp:
(WebCore::invokeReadableStreamDefaultControllerFunction):
(WebCore::ReadableStreamDefaultController::error):
(WebCore::ReadableStreamDefaultController::enqueue):
- workers/WorkerOrWorkletScriptController.cpp:
(WebCore::WorkerOrWorkletScriptController::WorkerOrWorkletScriptController):
(WebCore::WorkerOrWorkletScriptController::evaluate):
(WebCore::WorkerOrWorkletScriptController::linkAndEvaluateModule):
(WebCore::WorkerOrWorkletScriptController::loadAndEvaluateModule):
- 5:24 PM Changeset in webkit [275647] by
-
- 8 edits in branches/safari-611-branch/Source
Versioning.
WebKit-7611.2.2
- 4:49 PM Changeset in webkit [275646] by
-
- 2 edits in trunk/Source/WTF
Suppress -Warray-bounds warning spam in Bitmap.h
https://bugs.webkit.org/show_bug.cgi?id=224207
Patch by Michael Catanzaro <Michael Catanzaro> on 2021-04-07
Reviewed by Don Olmstead.
Suppress this warning.
- wtf/Bitmap.h:
(WTF::WordType>::clear):
- 4:35 PM Changeset in webkit [275645] by
-
- 2 edits in trunk/Source/WebKit
Unreviewed build fix after r275614; make sure SWIFT_VERSION is defined inside the WebKitSwift build target.
- Configurations/WebKitSwift.xcconfig:
- 4:31 PM Changeset in webkit [275644] by
-
- 1 copy in tags/Safari-612.1.10.1
Tag Safari-612.1.10.1.
- 4:24 PM Changeset in webkit [275643] by
-
- 1 copy in tags/Safari-611.2.1
Tag Safari-611.2.1.
- 4:11 PM Changeset in webkit [275642] by
-
- 8 edits in branches/safari-612.1.10-branch/Source
Versioning.
WebKit-7612.1.10.1
- 4:06 PM Changeset in webkit [275641] by
-
- 7 edits in trunk/Source/WebCore
Remove RepaintLayoutRectsMap
https://bugs.webkit.org/show_bug.cgi?id=224217
Reviewed by Zalan Bujtas.
RepaintLayoutRectsMap was a side table used to map RenderLayerModelObjects to
repaint rects for their corresponding layers. However, this HashMap could
get large, and waste more space than if we just stored the repaint rects
on RenderLayer.
For example, on twitter.com we could have about 2000 RenderLayers; increasing
their size by 32 bytes (the size of the two LayoutRects) adds 62KB, but RepaintLayoutRectsMap
would contain about 1950 entries with a capacity of 8192, wasting around 200KB.
So moving repaint rects into RenderLayer is a memory saving. This patch does so
without using Optional<> since that introduces extra padding.
- rendering/ComplexLineLayout.cpp:
(WebCore::ComplexLineLayout::layoutRunsAndFloats):
- rendering/RenderLayer.cpp:
(WebCore::RenderLayer::RenderLayer):
(WebCore::RenderLayer::updateLayerPositions):
(WebCore::RenderLayer::repaintRectIncludingNonCompositingDescendants const):
(WebCore::RenderLayer::computeRepaintRects):
(WebCore::RenderLayer::setRepaintRects):
(WebCore::RenderLayer::clearRepaintRects):
(WebCore::RenderLayer::updateLayerPositionsAfterScroll):
(WebCore::RenderLayer::calculateClipRects const):
- rendering/RenderLayer.h:
(WebCore::RenderLayer::repaintRects const):
(WebCore::RenderLayer::hasComputedRepaintRects const): Deleted.
- rendering/RenderLayerModelObject.cpp:
(WebCore::RenderLayerModelObject::willBeDestroyed):
(WebCore::RenderLayerModelObject::destroyLayer):
(WebCore::RenderLayerModelObject::styleDidChange):
(WebCore::RenderLayerModelObject::layerRepaintRects const):
(WebCore::RepaintLayoutRects::RepaintLayoutRects): Deleted.
(WebCore::RenderLayerModelObject::hasRepaintLayoutRects const): Deleted.
(WebCore::RenderLayerModelObject::setRepaintLayoutRects): Deleted.
(WebCore::RenderLayerModelObject::clearRepaintLayoutRects): Deleted.
(WebCore::RenderLayerModelObject::repaintLayoutRects const): Deleted.
(WebCore::RenderLayerModelObject::computeRepaintLayoutRects): Deleted.
- rendering/RenderLayerModelObject.h:
(WebCore::RepaintLayoutRects::RepaintLayoutRects): Deleted.
- rendering/RenderLayerScrollableArea.cpp:
(WebCore::RenderLayerScrollableArea::scrollTo):
- 3:55 PM Changeset in webkit [275640] by
-
- 4 edits3 adds in trunk/Source/WebKit
[WebXR] Introduce XRDeviceIdentifier and XRDeviceInfo to be used to communicate device info
https://bugs.webkit.org/show_bug.cgi?id=224239
Patch by Ada Chan <ada.chan@apple.com> on 2021-04-07
Reviewed by Tim Horton.
These classes are codable so they can be used in messages across UI/web process boundary.
In a future patch, these classes will be used to create device objects returned from
WebChromeClient::enumerateImmersiveXRDevices().
- Shared/Cocoa/XRDeviceIdentifier.h: Added.
This codable type will be used to identify a device.
- Shared/Cocoa/XRDeviceInfo.h: Added.
- Shared/Cocoa/XRDeviceInfo.mm: Added.
(WebKit::XRDeviceInfo::encode const):
(WebKit::XRDeviceInfo::decode):
- Shared/WebCoreArgumentCoders.h:
Add EnumTraits for PlatformXR::ReferenceSpaceType so we can encode it.
- SourcesCocoa.txt:
- WebKit.xcodeproj/project.pbxproj:
- 3:46 PM Changeset in webkit [275639] by
-
- 8 edits in trunk/Source/WebCore
Wasted vector capacity in various DisplayList related code paths
https://bugs.webkit.org/show_bug.cgi?id=224304
Reviewed by Wenson Hsieh.
Add DisplayList::shrinkToFit() and have it shrink the vector of drawing extents (this
could be extended to shrink item buffers at some point). Call the shrink from
FontCascade which caches glyph buffers as an optimization.
Reduce the inline capacity of the Recorder's context stack; this sticks around
for GPU process canvases.
Reduce the inline capacity of the DrawGyph buffers from 128 to 16, as these items
persist for FontCascade cached lists (until a memory warning).
- platform/graphics/FontCascade.cpp:
(WebCore::FontCascade::displayListForTextRun const):
- platform/graphics/displaylists/DisplayList.cpp:
(WebCore::DisplayList::DisplayList::shrinkToFit):
- platform/graphics/displaylists/DisplayList.h:
- platform/graphics/displaylists/DisplayListItems.h:
(WebCore::DisplayList::DrawGlyphs::glyphs const):
- platform/graphics/displaylists/DisplayListRecorder.h:
- 3:36 PM Changeset in webkit [275638] by
-
- 2 edits in trunk/Source/WebCore
Wasted vector capacity under CSSFontFace::setUnicodeRange()
https://bugs.webkit.org/show_bug.cgi?id=224266
Reviewed by Devin Rousso.
We know how big the Vector<UnicodeRange> is up-front.
- css/CSSFontFace.cpp:
(WebCore::CSSFontFace::setUnicodeRange):
- 3:36 PM Changeset in webkit [275637] by
-
- 2 edits in trunk/Source/WebCore
Wasted vector capacity under RuleFeatureSet::collectFeatures()
https://bugs.webkit.org/show_bug.cgi?id=224248
Reviewed by Devin Rousso.
The RuleSets constructed ensureInvalidationRuleSets() were never shrunk,
causing up to 500KB of wasted vector capacity on youtube.com.
This change calls shrinkToFit() on the RuleSets, and on the InvalidationRuleSet
vector.
- style/StyleScopeRuleSets.cpp:
(WebCore::Style::ensureInvalidationRuleSets):
- 3:32 PM Changeset in webkit [275636] by
-
- 1 copy in tags/Safari-612.1.10
Tag Safari-612.1.10.
- 3:25 PM Changeset in webkit [275635] by
-
- 5 edits in trunk/Tools
[webkitscmpy] Handle multiple double-branch commits
https://bugs.webkit.org/show_bug.cgi?id=224251
<rdar://problem/76288547>
Reviewed by Dewei Zhu.
There are a few cases, namely on the safari-607-branch, where some commits where made both
on trunk and on a branch. In one notable case, two sequential commits were made this way.
- Scripts/libraries/webkitscmpy/setup.py: Bump version.
- Scripts/libraries/webkitscmpy/webkitscmpy/init.py: Ditto.
- Scripts/libraries/webkitscmpy/webkitscmpy/local/svn.py:
(Svn._cache_revisions): Handle multiple double-branch commits.
- Scripts/libraries/webkitscmpy/webkitscmpy/remote/svn.py:
(Svn._cache_revisions): Handle multiple double-branch commits.
- 3:18 PM Changeset in webkit [275634] by
-
- 4 edits in trunk
[GTK] webkit://gpu should print runtime libwpe and wpebackend-fdo versions
https://bugs.webkit.org/show_bug.cgi?id=224298
Patch by Michael Catanzaro <Michael Catanzaro> on 2021-04-07
Reviewed by Adrian Perez de Castro.
.:
- Source/cmake/OptionsGTK.cmake:
Source/WebKit:
- UIProcess/API/glib/WebKitProtocolHandler.cpp:
(WebKit::WebKitProtocolHandler::handleGPU):
- 3:17 PM Changeset in webkit [275633] by
-
- 3 edits in trunk/Source/WebCore
Reduce Vector<> wasted capacity in some RuleSet code
https://bugs.webkit.org/show_bug.cgi?id=224160
Reviewed by Antti Koivisto.
Dynamic media rule-related vectors were not getting shrunk because m_dynamicMediaQueryRules
was constructed after the shrinkToFit() calls, and itself was not shrunk.
Also re-order member variables to reduce padding.
Saves 60-120KB on a nytimes page.
- style/RuleSet.cpp:
(WebCore::Style::RuleSet::addRulesFromSheet):
(WebCore::Style::RuleSet::evaluateDynamicMediaQueryRules):
(WebCore::Style::shrinkDynamicRules):
(WebCore::Style::RuleSet::shrinkToFit):
- style/RuleSet.h:
(WebCore::Style::RuleSet::DynamicMediaQueryRules::shrinkToFit):
- 3:17 PM Changeset in webkit [275632] by
-
- 2 edits in trunk/Source/WebCore
Wasted vector capacity in RenderLayer lists
https://bugs.webkit.org/show_bug.cgi?id=224170
Reviewed by Sam Weinig.
Shrink RenderLayer normal flow and z-order lists.
This saves about 800KB on twitter.com.
- rendering/RenderLayer.cpp:
(WebCore::RenderLayer::updateNormalFlowList):
(WebCore::RenderLayer::rebuildZOrderLists):
- 3:11 PM Changeset in webkit [275631] by
-
- 2 edits in branches/safari-611-branch
Cherry-pick r275541. rdar://problem/76367015
Speculative build fix for Windows port.
https://bugs.webkit.org/show_bug.cgi?id=224243
rdar://75883248
Reviewed by Saam Barati.
Source/cmake/tools/scripts/auto-version.pl was limiting our
minor
andmicro
version to only 2 decimal digits only. In practice, we can use up to 3 digits.
- Source/cmake/tools/scripts/auto-version.pl: (packTwoValues):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@275541 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 2:46 PM Changeset in webkit [275630] by
-
- 1 copy in tags/Safari-611.1.21.161.4
Tag Safari-611.1.21.161.4.
- 2:45 PM Changeset in webkit [275629] by
-
- 2 edits in branches/safari-611.1.21.161-branch
Cherry-pick r275541. rdar://problem/76365929
Speculative build fix for Windows port.
https://bugs.webkit.org/show_bug.cgi?id=224243
rdar://75883248
Reviewed by Saam Barati.
Source/cmake/tools/scripts/auto-version.pl was limiting our
minor
andmicro
version to only 2 decimal digits only. In practice, we can use up to 3 digits.
- Source/cmake/tools/scripts/auto-version.pl: (packTwoValues):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@275541 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 2:41 PM Changeset in webkit [275628] by
-
- 8 edits in branches/safari-611.1.21.161-branch/Source
Versioning.
WebKit-7611.1.21.161.4
- 2:24 PM Changeset in webkit [275627] by
-
- 1 edit in trunk/Tools/Scripts/webkitpy/common/config/contributors.json
Adding Ada as a contributor.
- Scripts/webkitpy/common/config/contributors.json:
- 2:14 PM Changeset in webkit [275626] by
-
- 24 edits in trunk/Source
[JSC] Use FixedVector more in bytecode dir and JumpTable
https://bugs.webkit.org/show_bug.cgi?id=224275
Reviewed by Michael Saboff and Mark Lam.
Source/JavaScriptCore:
- Use FixedVector more in bytecode/ directory's long-living data structures.
- Use FixedVector in SimpleJumpTable. This involves LLInt changes because we need to access FixedVector data from LLInt.
- bytecode/CodeBlock.cpp:
(JSC::CodeBlock::finishCreation):
- bytecode/InlineCallFrame.cpp:
(JSC::InlineCallFrame::dumpInContext const):
- bytecode/InlineCallFrame.h:
- bytecode/JumpTable.h:
(JSC::SimpleJumpTable::clear):
- bytecode/ObjectPropertyConditionSet.cpp:
(JSC::ObjectPropertyConditionSet::mergedWith const):
(JSC::ObjectPropertyConditionSet::dumpInContext const):
(JSC::ObjectPropertyConditionSet::isValidAndWatchable const):
- bytecode/ObjectPropertyConditionSet.h:
(JSC::ObjectPropertyConditionSet::create):
(JSC::ObjectPropertyConditionSet::isValid const):
(JSC::ObjectPropertyConditionSet::size const):
(JSC::ObjectPropertyConditionSet::begin const):
(JSC::ObjectPropertyConditionSet::end const):
- dfg/DFGByteCodeParser.cpp:
(JSC::DFG::ByteCodeParser::findArgumentPositionForLocal):
(JSC::DFG::ByteCodeParser::flushImpl):
(JSC::DFG::ByteCodeParser::parseBlock):
(JSC::DFG::ByteCodeParser::InlineStackEntry::InlineStackEntry):
- dfg/DFGCommonData.cpp:
(JSC::DFG::CommonData::validateReferences):
- dfg/DFGGraph.cpp:
(JSC::DFG::Graph::isLiveInBytecode):
- dfg/DFGGraph.h:
- dfg/DFGPreciseLocalClobberize.h:
(JSC::DFG::PreciseLocalClobberizeAdaptor::readTop):
- dfg/DFGStackLayoutPhase.cpp:
(JSC::DFG::StackLayoutPhase::run):
- ftl/FTLCompile.cpp:
(JSC::FTL::compile):
- ftl/FTLLowerDFGToB3.cpp:
(JSC::FTL::DFG::LowerDFGToB3::compileGetMyArgumentByVal):
- jit/AssemblyHelpers.h:
(JSC::AssemblyHelpers::argumentsStart):
- jit/SetupVarargsFrame.cpp:
(JSC::emitSetupVarargsFrameFastCase):
- llint/LowLevelInterpreter.asm:
- llint/LowLevelInterpreter32_64.asm:
- llint/LowLevelInterpreter64.asm:
- runtime/ClonedArguments.cpp:
(JSC::ClonedArguments::createWithInlineFrame):
Source/WTF:
- wtf/FixedVector.h:
(WTF::FixedVector::offsetOfStorage):
- wtf/RefCountedArray.h:
(WTF::RefCountedArray::Header::size):
(WTF::RefCountedArray::Header::offsetOfLength):
- 2:02 PM Changeset in webkit [275625] by
-
- 2 edits in trunk/Source/WebKit
[Cocoa] Incorrect selector used to set logging level
https://bugs.webkit.org/show_bug.cgi?id=224292
<rdar://problem/75379660>
Reviewed by John Wilander.
Use {public} declarations so we get logging in release builds. These strings
are not sensitive.
- NetworkProcess/cocoa/NetworkSessionCocoa.mm:
(WebKit::configurationForSessionID):
- 2:00 PM Changeset in webkit [275624] by
-
- 3 edits in trunk/Tools
commit-queue should perform git reset --hard between retry attempts
https://bugs.webkit.org/show_bug.cgi?id=224300
Reviewed by Jonathan Bedard.
- CISupport/ews-build/steps.py:
(GitResetHard): Build step to perform git reset --hard.
(GitResetHard.start):
(PushCommitToWebKitRepo.evaluateCommand):
- CISupport/ews-build/steps_unittest.py: Added unit-test.
- 1:07 PM Changeset in webkit [275623] by
-
- 3 edits in trunk/Source/WebCore/PAL
Unreviewed build fix after r275614; add soft linked class.
- pal/cocoa/AVFoundationSoftLink.h:
- pal/cocoa/AVFoundationSoftLink.mm:
- 12:31 PM Changeset in webkit [275622] by
-
- 2 edits in trunk/Source/WebKit
[Cocoa] Incorrect selector used to set logging level
https://bugs.webkit.org/show_bug.cgi?id=224292
<rdar://problem/75379660>
Reviewed by John Wilander.
The wrong selector label was used to configure the low-level network logging level.
- NetworkProcess/cocoa/NetworkSessionCocoa.mm:
(WebKit::configurationForSessionID):
- 12:31 PM Changeset in webkit [275621] by
-
- 2 edits in trunk/LayoutTests
[ macOS ] media/modern-media-controls/seek-forward-support/seek-forward-support.html is a flakey timeout
https://bugs.webkit.org/show_bug.cgi?id=224297
Unreviewed test gardening.
- platform/mac/TestExpectations: Updating test expectations to Pass Timeout.
- 12:25 PM Changeset in webkit [275620] by
-
- 2 edits in trunk/Source/WebCore
[LFC][IFC] Remove InlineLines and InlineLineBoxes inline capacity of 10
https://bugs.webkit.org/show_bug.cgi?id=224296
Reviewed by Antti Koivisto.
A casual browsing session shows that the average line count is ~1.4. Having 10 as initial capacity seems a little excessive.
(and neither PerformanceTests/Layout/line-layout-inline-block.html nor PerformanceTests/Layout/line-layout-inline-level-boxes.html microbenchmarks show regression locally)
- layout/inlineformatting/InlineFormattingState.h:
- 12:16 PM Changeset in webkit [275619] by
-
- 5 edits in trunk/Source
Use os_transaction_create instead of deprecated xpc_transaction_begin/end
https://bugs.webkit.org/show_bug.cgi?id=224288
Patch by Alex Christensen <achristensen@webkit.org> on 2021-04-07
Reviewed by Tim Horton.
Source/WebKit:
xpc_transaction_begin/end are deprecated with os_transaction_t being the replacement.
The transaction object makes it easier to associate a transaction's begin and end with each other,
and it adds a name, which makes system level debugging of what transactions are happening in which
processes much nicer.
- Shared/EntryPointUtilities/Cocoa/XPCService/XPCServiceEntryPoint.h:
(WebKit::XPCServiceInitializer):
- Shared/EntryPointUtilities/Cocoa/XPCService/XPCServiceEntryPoint.mm:
(WebKit::osTransaction):
(WebKit::XPCServiceExit):
Source/WTF:
- wtf/spi/darwin/XPCSPI.h:
- 12:13 PM Changeset in webkit [275618] by
-
- 2 edits in trunk/LayoutTests
[ BigSur wk2 Debug x86_64 ] inspector/indexeddb/requestDatabaseNames.html is a flakey text failure
https://bugs.webkit.org/show_bug.cgi?id=224294
Unreviewed test gardening.
- platform/mac-wk2/TestExpectations: Updating test expectations to Pass Failure.
- 12:00 PM Changeset in webkit [275617] by
-
- 5 edits in trunk/Source/ThirdParty/ANGLE
[METAL ANGLE] Interface block declerations need to have children marked as struct accesses. Add implicit backing textures for multisample render targets
https://bugs.webkit.org/show_bug.cgi?id=224265
Patch by John Cunningham <johncunnigham@apple.com> on 2021-04-07
Reviewed by Dean Jackson.
- src/compiler/translator/TranslatorMetalDirect/ReduceInterfaceBlocks.cpp:
- src/libANGLE/renderer/metal/FrameBufferMtl.h:
- src/libANGLE/renderer/metal/FrameBufferMtl.mm:
(rx::FramebufferMtl::setLoadStoreActionOnRenderPassFirstStart):
(rx::FramebufferMtl::onStartedDrawingToFrameBuffer):
- src/libANGLE/renderer/metal/RenderBufferMtl.mm:
(rx::RenderbufferMtl::setStorageImpl):
- 11:23 AM Changeset in webkit [275616] by
-
- 3 edits1 add in trunk/Source/ThirdParty
[PlayStation] Do not include <any> in gtest because it requires RTTI
https://bugs.webkit.org/show_bug.cgi?id=224281
Reviewed by Ross Kirsling.
To determine platform capabilities gtest looks to see if a platform is using a minimum
C++ version and whether it has a required header. In the PlayStation's case it sees that
the <any> header is present with the requisite version of C++ so it defines support for it
and includes the header. However in the PlayStation's case to use <any> RTTI must be
enabled and if it isn't an error is generated.
This patch adds a way to short circuit GTEST_INTERNAL values for ports. An upstream fix is
in review at https://github.com/google/googletest/pull/3345 and if landed then the next
update to gtest can remove this patch.
- gtest/PlatformPlayStation.cmake:
- gtest/README.WebKit: Added.
- gtest/include/gtest/internal/gtest-port.h:
- 11:22 AM Changeset in webkit [275615] by
-
- 3 edits in trunk/Source/JavaScriptCore
Fix a typo in JITUncoughtExceptionAfterCall.
https://bugs.webkit.org/show_bug.cgi?id=224290
Reviewed by Keith Miller.
- assembler/AbortReason.h:
- jit/AssemblyHelpers.cpp:
(JSC::AssemblyHelpers::jitReleaseAssertNoException):
- 11:20 AM Changeset in webkit [275614] by
-
- 4 edits1 add in trunk/Source/WebKit
[Cocoa] Add WebKitAdditions sources to project
https://bugs.webkit.org/show_bug.cgi?id=223803
Reviewed by Eric Carlson.
Enabling swift compilation requires modularization of the WebKit project,
but some of the headers in the WebKitLegacy.h umbrella header conflict with
filenames in the WebKit project, and can't be included in Objective-C or
Swift sources. To work around this issue for now, add "#if defined(cplusplus)"
guards around those headers.
- Configurations/WebKit.xcconfig:
- UIProcess/API/Cocoa/WebKitLegacy.h:
- UIProcess/WebBackForwardList.h:
- UIProcess/WebPreferences.h:
- WebKit.xcodeproj/project.pbxproj:
- WebProcess/WebPage/WebFrame.h:
- 10:58 AM Changeset in webkit [275613] by
-
- 3 edits in trunk/Tools
[build.webkit.org] Commit queue should post the identifier
https://bugs.webkit.org/show_bug.cgi?id=223829
<rdar://problem/75908321>
Reviewed by Aakash Jain.
- CISupport/ews-build/steps.py:
(PushCommitToWebKitRepo.url_for_revision): Use COMMITS_INFO_URL.
(PushCommitToWebKitRepo.url_for_identifier): Convert identifier
to commits.webkit.org URL.
(PushCommitToWebKitRepo.identifier_for_revision): Convert a commit
revision to an identifier string.
(PushCommitToWebKitRepo.comment_text_for_bug): Consult commits.webkit.org
to convert revision to identifier.
- CISupport/ews-build/steps_unittest.py:
- 10:26 AM Changeset in webkit [275612] by
-
- 2 edits in trunk/Tools
git-webkit find doesn't work well with unicode characters in author name
https://bugs.webkit.org/show_bug.cgi?id=223686
Reviewed by Jonathan Bedard.
- Scripts/libraries/webkitscmpy/webkitscmpy/program/find.py:
(Info.main): Added a try except block while printing author, since the script should still print rest of the info.
- 10:08 AM Changeset in webkit [275611] by
-
- 3 edits in trunk/Source/WebCore
Drop unnecessary NDEBUG checks in ServiceWorkerContainer
https://bugs.webkit.org/show_bug.cgi?id=224285
Reviewed by Youenn Fablet.
- workers/service/ServiceWorkerContainer.cpp:
(WebCore::ServiceWorkerContainer::~ServiceWorkerContainer):
(WebCore::ServiceWorkerContainer::scheduleJob):
(WebCore::ServiceWorkerContainer::jobFailedWithException):
(WebCore::ServiceWorkerContainer::queueTaskToFireUpdateFoundEvent):
(WebCore::ServiceWorkerContainer::jobResolvedWithRegistration):
(WebCore::ServiceWorkerContainer::jobResolvedWithUnregistrationResult):
(WebCore::ServiceWorkerContainer::startScriptFetchForJob):
(WebCore::ServiceWorkerContainer::jobFinishedLoadingScript):
(WebCore::ServiceWorkerContainer::jobFailedLoadingScript):
(WebCore::ServiceWorkerContainer::destroyJob):
(WebCore::ServiceWorkerContainer::addRegistration):
(WebCore::ServiceWorkerContainer::removeRegistration):
(WebCore::ServiceWorkerContainer::queueTaskToDispatchControllerChangeEvent):
(WebCore::ServiceWorkerContainer::contextIdentifier):
- workers/service/ServiceWorkerContainer.h:
- 10:06 AM Changeset in webkit [275610] by
-
- 5 edits in trunk/Source/WebCore
Wasted vector capacity in StyleRuleKeyframes
https://bugs.webkit.org/show_bug.cgi?id=224264
Reviewed by Antti Koivisto.
Shrink StyleRuleKeyframes::m_keyframes. Saves 23KB on youtube.com.
- css/CSSKeyframesRule.cpp:
(WebCore::StyleRuleKeyframes::shrinkToFit):
- css/CSSKeyframesRule.h:
- css/parser/CSSParserImpl.cpp:
(WebCore::CSSParserImpl::consumeKeyframesRule):
- css/parser/CSSPropertyParser.cpp:
(WebCore::CSSPropertyParser::consumeAnimationShorthand):
- 9:56 AM Changeset in webkit [275609] by
-
- 2 edits in trunk/Source/WebCore
Wasted vector capacity in StyleSheetContents
https://bugs.webkit.org/show_bug.cgi?id=224250
Reviewed by Darin Adler.
Call shrinkToFit() on the StyleSheetContents created in CSSParserImpl::parseStyleSheet()
in order to shrink m_importRules and m_childRules, which can waste about 100KB on
youtube.com.
- css/parser/CSSParserImpl.cpp:
(WebCore::CSSParserImpl::parseStyleSheet):
- 9:26 AM Changeset in webkit [275608] by
-
- 4 edits in trunk
[CMake] Mark _LIBRARY not _LIBRARIES in find modules
https://bugs.webkit.org/show_bug.cgi?id=224283
Reviewed by Michael Catanzaro.
A few find modules are erroniously sending _LIBRARIES to mark_as_advanced rather than
_LIBRARY. The former is created from the _LIBRARY value so it isn't valid at that point.
- Source/cmake/FindCairo.cmake:
- Source/cmake/FindFontconfig.cmake:
- Source/cmake/FindSQLite3.cmake:
- 8:54 AM Changeset in webkit [275607] by
-
- 4 edits2 adds in trunk
REGRESSION (r270849): Button content fails to render on apple.com "Blood Oxygen"/"ECG"
https://bugs.webkit.org/show_bug.cgi?id=224261
Reviewed by Simon Fraser.
Source/WebCore:
- The changeRequiresRecompositeLayer check in RenderStyle::diff should come after
changeRequiresRepaintIfTextOrBorderOrOutline since RepaintIfTextOrBorderOrOutline is at
a higher priority in StyleDifference.
- Ensure that we trigger setNeedsCompositingConfigurationUpdate on diff >= StyleDifference::RecompositeLayer.
Test: fast/text/text-repaint-when-pointer-event-property-changes.html
- rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::layerStyleChanged):
- rendering/style/RenderStyle.cpp:
(WebCore::RenderStyle::diff const):
LayoutTests:
- fast/text/text-repaint-when-pointer-event-property-changes-expected.html: Added.
- fast/text/text-repaint-when-pointer-event-property-changes.html: Added.
- 7:47 AM Changeset in webkit [275606] by
-
- 5 edits2 adds in trunk
Ignore non-null lastQuote ASSERT when continuation is broken
https://bugs.webkit.org/show_bug.cgi?id=218576
Patch by Rob Buis <rbuis@igalia.com> on 2021-04-07
Reviewed by Zalan Bujtas.
Source/WebCore:
Ignore non-null lastQuote when continuation is broken.
- rendering/updating/RenderTreeBuilder.h:
(WebCore::RenderTreeBuilder::hasBrokenContinuation const):
(WebCore::RenderTreeBuilder::setHasBrokenContinuation):
- rendering/updating/RenderTreeBuilderInline.cpp:
(WebCore::RenderTreeBuilder::Inline::splitInlines):
- rendering/updating/RenderTreeUpdaterGeneratedContent.cpp:
(WebCore::RenderTreeUpdater::GeneratedContent::updateQuotesUpTo):
LayoutTests:
Add test for this.
- fast/dom/quotes-continuation-crash-expected.txt: Added.
- fast/dom/quotes-continuation-crash.html: Added.
- 6:13 AM Changeset in webkit [275605] by
-
- 2 edits in trunk/Source/WebKit
[WPE][GTK] Null pointer dereference when child process exits immediately
https://bugs.webkit.org/show_bug.cgi?id=224209
Patch by Michael Catanzaro <Michael Catanzaro> on 2021-04-07
Reviewed by Carlos Garcia Campos.
We discovered that when the child process exits immediately after it is spawned,
g_subprocess_get_identifier() will return nullptr. In this case, we should crash cleanly
with SIGABRT via g_error(), rather than crashing with a null pointer dereference inside
g_ascii_strtoll(). SIGABRT is much nicer than SIGSEGV and indicates that we really do want
to crash here, whereas SIGSEGV is just a bug.
Also, let's be careful with our terminology in the existing error message here. Although
GSubprocess currently always forks, I'm working to make it use posix_spawn() instead, so
let's not claim that fork() has failed when it soon might not be used at all.
- UIProcess/Launcher/glib/ProcessLauncherGLib.cpp:
(WebKit::ProcessLauncher::launchProcess):
- 5:30 AM Changeset in webkit [275604] by
-
- 4 edits in trunk/Tools
REGRESSION(r274366): webkitscmpy.test.svn_unittest.TestRemoteSvn.test_info fails in non-PDT timezones
https://bugs.webkit.org/show_bug.cgi?id=223606
Reviewed by Aakash Jain.
- Scripts/libraries/webkitscmpy/setup.py: Bump version.
- Scripts/libraries/webkitscmpy/webkitscmpy/init.py: Ditto.
- Scripts/libraries/webkitscmpy/webkitscmpy/test/svn_unittest.py:
(TestRemoteSvn.test_info): Use utc shifted into PDT for consistency across timezones.
- 5:27 AM Changeset in webkit [275603] by
-
- 4 edits in trunk/Source/WebCore
Use frameData instead of scheduleOnNextFrame calls in WebFakeXRDevice
https://bugs.webkit.org/show_bug.cgi?id=223580
Reviewed by Youenn Fablet.
This patch makes the WebFakeXRDevice code more robust by getting rid of the scheduleOnNextFrame calls.
Tested by WebXR WPT.
- testing/WebFakeXRDevice.cpp:
(WebCore::SimulatedXRDevice::setViews):
(WebCore::SimulatedXRDevice::setNativeBoundsGeometry):
(WebCore::SimulatedXRDevice::setViewerOrigin):
(WebCore::SimulatedXRDevice::frameTimerFired):
(WebCore::WebFakeXRDevice::setViews):
(WebCore::WebFakeXRDevice::setViewerOrigin):
(WebCore::WebFakeXRDevice::setFloorOrigin):
- testing/WebFakeXRDevice.h:
- testing/WebXRTest.cpp:
(WebCore::WebXRTest::simulateDeviceConnection):
- 5:09 AM Changeset in webkit [275602] by
-
- 8 edits in trunk
[CMake] Add WebKit::gtest target
https://bugs.webkit.org/show_bug.cgi?id=224203
Reviewed by Adrian Perez de Castro.
Source/ThirdParty:
Create a WebKit::gtest target that propagates the include directories and required
preprocessor directives to dependencies.
Use Modern CMake functions for describing the target.
- gtest/CMakeLists.txt:
- gtest/PlatformPlayStation.cmake:
Tools:
Use the WebKit::gtest target. Remove uses of ${THIRDPARTY_DIR}/gtest/include since the
target propagates those. Also remove the hack to get gtest definitions.
Don't include gtest with the TestJSC executable since it just uses GLib's testing
capabilities.
- TestWebKitAPI/CMakeLists.txt:
- TestWebKitAPI/PlatformGTK.cmake:
- TestWebKitAPI/PlatformWPE.cmake:
- TestWebKitAPI/config.h:
- 5:01 AM WebKitGTK/2.32.x edited by
- (diff)
- 4:38 AM Changeset in webkit [275601] by
-
- 2 edits in trunk
.gitignore contains 'build/' which causes all directories named 'build/' to be ignored
https://bugs.webkit.org/show_bug.cgi?id=224227
Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2021-04-07
Reviewed by Ryosuke Niwa.
Remove 'build/' from .gitignore, it was causing errors by hiding files.
WebGL conformance test suite files have directiories with 'build/' in its path.
Most likely '/build/' is not a common build directory, since the scripts
seem to default to '/WebKitBuild/'.
- .gitignore:
- 4:08 AM WebKitGTK/2.32.x edited by
- (diff)
- 3:27 AM WebKitGTK/2.32.x edited by
- (diff)
- 2:58 AM Changeset in webkit [275600] by
-
- 5 edits in trunk
[GStreamer] Videos start playing muted in epiphany with no unmute icon visible in tab, webkit_web_view_get_is_muted() returns incorrect results
https://bugs.webkit.org/show_bug.cgi?id=223195
Patch by Philippe Normand <pnormand@igalia.com> on 2021-04-07
Source/WebCore:
Reviewed by Eric Carlson.
For GStreamer ports the semantics of IsPlayingAudio slightly differ from Apple ports. The
webkit_web_view_is_playing_audio() API is expected to return true if a page is producing
audio even though it might be muted.
The second change affects the private player mute state when the page mute state has been
updated.
- html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::mediaState const):
(WebCore::HTMLMediaElement::pageMutedStateDidChange):
- platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp: Logging improvements.
(WebCore::MediaPlayerPrivateGStreamer::isMuted const):
(WebCore::MediaPlayerPrivateGStreamer::volume const):
(WebCore::MediaPlayerPrivateGStreamer::notifyPlayerOfVolumeChange):
(WebCore::MediaPlayerPrivateGStreamer::setMuted):
(WebCore::MediaPlayerPrivateGStreamer::notifyPlayerOfMute):
Tools:
Reviewed by Michael Catanzaro.
Adapt is-playing test, after muting the page, webkit_web_view_is_playing_audio() should
still return TRUE.
- TestWebKitAPI/Tests/WebKitGLib/TestWebKitWebView.cpp:
(IsPlayingAudioWebViewTest::periodicallyCheckIsPlayingForAWhile):
(testWebViewIsPlayingAudio):
- 2:53 AM Changeset in webkit [275599] by
-
- 11 edits in trunk/Source/WebCore
[EME][GStreamer] Abort decryptor operations immediately and without errors on flush
https://bugs.webkit.org/show_bug.cgi?id=223742
Reviewed by Xabier Rodriguez-Calvar.
A decryptor transformInPlace() operation can cause potentially long waits in
two situations:
- transformInPlace() is waiting to get the cdmProxy.
- The CDMProxy::decrypt() method is internally waiting for a specific key to become available.
If a seek operation is performed during those long waits, the main thread will
be blocked until the seek finishes the conditions those long waits are waiting
for will never be fulfilled (because the operations that complete them happen
in the main thread, which is blocked), the internal wait timeouts will trigger
and the decoder will trigger an unrecoverable error.
The solution for this is to break the waits by issuing the right notifications,
and to detect the flushes performed by the seek, distinguising this special
"abort" case from a regular error, so that the situation is no longer
unrecoverable.
This solution involves changes in several layers. A public
CDMProxy::abortWaitingForKey() method is exposed to allow the decryptor to
awake the inner waitFor() that checks for the key. The cdmProxy wait is also
awaken in case there's no cdmProxy available yet.
In order to distinguish if the awakenings are caused by real errors (no
cdmProxy, no key available) or by a flush operation (caused by the seek), the
decryptor first needs to keep track of the "flushing" state and allow other
objects to know about it. CDMProxy is one of those objects, but due to layer
limitations it can't directly ask about it to the decryptor (it can't "see"
it).
A new CDMProxyDecryptionClient interface is created, and the decryptor will
hold an implementation of it (as CDMProxyDecryptorClientImplementation).
CDMProxy can then know the client isAborting(), and the client will know the
decryptor and will ask about it.
As the pipeline, and thus the decryptor, can be destroyed at any moment,
the client holds a WeakPtr to the decryptor and will only ask if isAborting()
if the pointer is still alive.
- platform/encryptedmedia/CDMProxy.cpp:
(WebCore::CDMProxy::abortWaitingForKey const): Notify waiting threads.
(WebCore::CDMProxy::tryWaitForKeyHandle const): Take a client and ask it if it's aborting.
(WebCore::CDMProxy::getOrWaitForKeyHandle const): Pass the client along.
(WebCore::CDMProxy::getOrWaitForKeyValue const): Ditto.
- platform/encryptedmedia/CDMProxy.h: Declaration and usage of the CDMProxyDecryptionClient interface.
- platform/graphics/gstreamer/eme/CDMProxyClearKey.cpp:
(WebCore::CDMProxyClearKey::cencSetDecryptionKey): Pass the client along from the context.
- platform/graphics/gstreamer/eme/CDMProxyClearKey.h: Store client in the cencDecryptContext.
- platform/graphics/gstreamer/eme/CDMProxyThunder.cpp:
(WebCore::CDMProxyThunder::getDecryptionSession const): Pass the client along from the context.
(WebCore::CDMProxyThunder::decrypt): Abort operations aren't an error, so just trigger a warning if there's no session.
- platform/graphics/gstreamer/eme/CDMProxyThunder.h: Store client in DecryptionContext.
- platform/graphics/gstreamer/eme/WebKitClearKeyDecryptorGStreamer.cpp:
(decrypt): Ask for client to the superclass and store it in the context.
- platform/graphics/gstreamer/eme/WebKitCommonEncryptionDecryptorGStreamer.cpp:
(CDMProxyDecryptionClientImplementation::CDMProxyDecryptionClientImplementation): Implementation of the CDMProxyDecryptionClient interface.
(CDMProxyDecryptionClientImplementation::isAborting): Ask if the decryptor is flushing.
(constructed): Initialize the client.
(transformInPlace): Check the flush status after waiting for the CDMProxy and for the decryption performed by the subclasses. Release the lock when not needed.
(isCDMProxyAvailable): Renamed mutex to be more generic.
(attachCDMProxy): Ditto. Also renamed condition for the same reason.
(sinkEventHandler): Manage isFlushing status and awake waits for cdmProxy or for session depending on the lifecycle stage.
(webKitMediaCommonEncryptionDecryptIsFlushing): Expose isFlushing status.
(webKitMediaCommonEncryptionDecryptGetCDMProxyDecryptionClient): Return Weak reference to the client.
(changeState): Renamed condition.
(setContext): Renamed mutex.
- platform/graphics/gstreamer/eme/WebKitCommonEncryptionDecryptorGStreamer.h: New getters for isFlushing and the client.
- platform/graphics/gstreamer/eme/WebKitThunderDecryptorGStreamer.cpp:
(decrypt): Ask for client to the superclass and store it in the context.
- 2:45 AM WebKitGTK/2.32.x edited by
- (diff)
- 2:30 AM Changeset in webkit [275598] by
-
- 3 edits1 move5 adds3 deletes in trunk/JSTests
[JSC] Update test262
https://bugs.webkit.org/show_bug.cgi?id=224272
Reviewed by Ross Kirsling.
- test262/latest-changes-summary.txt:
- test262/test/intl402/DisplayNames/options-getoptionsobject.js: Added.
- test262/test/intl402/ListFormat/constructor/constructor/options-getoptionsobject.js: Renamed from JSTests/test262/test/intl402/ListFormat/constructor/constructor/options-toobject.js.
- test262/test/intl402/ListFormat/constructor/constructor/options-toobject-prototype.js: Removed.
- test262/test/intl402/Segmenter/constructor/constructor/options-getoptionsobject.js: Added.
- test262/test/intl402/Segmenter/constructor/constructor/options-toobject-prototype.js: Removed.
- test262/test/intl402/Segmenter/constructor/constructor/options-toobject.js: Removed.
- test262/test/language/expressions/in/rhs-yield-absent-non-strict.js: Added.
- test262/test/language/expressions/in/rhs-yield-absent-strict.js: Added.
- test262/test/language/expressions/in/rhs-yield-present.js: Added.
(isNameIn):
- test262/test262-Revision.txt:
- 2:28 AM Changeset in webkit [275597] by
-
- 16 edits4 adds in trunk
JSTests:
[JSC] WasmMemory caging should care about nullptr
https://bugs.webkit.org/show_bug.cgi?id=224268
<rdar://problem/74654838>
Reviewed by Mark Lam.
- wasm/stress/4g-memory-cage.js: Added.
(async test):
- wasm/stress/more-than-4g-offset-access-oom.js: Added.
(async test):
- wasm/stress/null-memory-cage-explicit.js: Added.
(async test):
- wasm/stress/null-memory-cage.js: Added.
(async test):
Source/JavaScriptCore:
[JSC] WasmMemory caging should care about nullptr
https://bugs.webkit.org/show_bug.cgi?id=224268
<rdar://problem/74654838>
Reviewed by Mark Lam.
- Fix Wasm::MemoryHandle::boundsCheckingSize. We should just return m_mappedCapacity here since UINT32_MAX is not 4GB. This checking size can include redzone for fast-memory, but this is OK: bounds-check pass in LLInt (in upper tiers, we do not use bounds-check for fast-memory), and access to redzone, then fault occurs and signal handler can make it error since signal handler is checking whether the access is within Memory::fastMappedBytes which includes redzone.
- Fix caging of wasm memory-base pointer in LLInt. We should use pointer sized length since it can be larger than 4GB. And we should handle nullptr case correctly: Wasm::MemoryHandle's memory can be nullptr when mapped size is zero. caging needs to handle this case as we do in CagedPtr::getMayBeNull.
- assembler/MacroAssemblerARM64E.h:
(JSC::MacroAssemblerARM64E::untagArrayPtrLength32):
- dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::cageTypedArrayStorage):
- llint/LowLevelInterpreter64.asm:
- llint/WebAssembly.asm:
- offlineasm/arm64e.rb:
- offlineasm/ast.rb:
- offlineasm/instructions.rb:
- runtime/CagedBarrierPtr.h:
(JSC::CagedBarrierPtr::CagedBarrierPtr):
(JSC::CagedBarrierPtr::set):
(JSC::CagedBarrierPtr::get const):
(JSC::CagedBarrierPtr::getMayBeNull const):
(JSC::CagedBarrierPtr::at const):
(JSC::CagedBarrierPtr::setWithoutBarrier):
- wasm/WasmInstance.h:
(JSC::Wasm::Instance::updateCachedMemory):
- wasm/WasmMemory.cpp:
(JSC::Wasm::MemoryHandle::MemoryHandle):
- wasm/WasmMemory.h:
Source/WTF:
[JSC] WasmMemory caging should care nullptr
https://bugs.webkit.org/show_bug.cgi?id=224268
<rdar://problem/74654838>
Reviewed by Mark Lam.
Accept size_t since Wasm::Memory's length can be larger than 4GB.
- wtf/CagedPtr.h:
(WTF::CagedPtr::CagedPtr):
(WTF::CagedPtr::get const):
(WTF::CagedPtr::getMayBeNull const):
(WTF::CagedPtr::at const):
(WTF::CagedPtr::recage):
- wtf/CagedUniquePtr.h:
(WTF::CagedUniquePtr::CagedUniquePtr):
(WTF::CagedUniquePtr::create):
(WTF::CagedUniquePtr::tryCreate):
- 2:10 AM Changeset in webkit [275596] by
-
- 3 edits in trunk/Source/WebCore
[GStreamer] Only seek to change the rate un updatePlaybackRate() when needed
https://bugs.webkit.org/show_bug.cgi?id=224235
Reviewed by Alicia Boya Garcia.
A seek is used by MediaPlayerPrivateGStreamer to update the playback
rate used in the pipeline. There's a special case when the rate is 0.0.
This actually means "paused" and, when set, the pipeline is changed to
PAUSED and no updatePlaybackRate() call is made because of an early
return (and therefore, no seek). When the rate is restored to a
non-zero value, the pipeline is set again to PLAYING, but a
call to updatePlaybackRate() is done, which implies an unconditional
seek.
It should be possible to do the seek in updatePlaybackRate() only if the
rate changed with respect to the original one, instead of always doing
it. This would avoid unneeded seeks, which are complex operations that
can trigger collateral issues such as the one addressed in
https://bugs.webkit.org/show_bug.cgi?id=223742.
- platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
(WebCore::MediaPlayerPrivateGStreamer::updatePlaybackRate): Only seek when the playback rate hasn't changed.
- platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h: Document m_lastPlaybackRate purpose.
- 2:03 AM Changeset in webkit [275595] by
-
- 2 edits in trunk/Tools
[Flatpak SDK] Enable LLVM extension
https://bugs.webkit.org/show_bug.cgi?id=223882
Patch by Philippe Normand <pnormand@igalia.com> on 2021-04-07
Reviewed by Adrian Perez de Castro.
The clang shipped by default in the FDO SDK is not usable for ASan, UBSan (and I guess TSan)
builds, but the Flatpak extension shipping LLVM11 allows this, even though UBSan builds
still fail (linking errors in JSC and WTF) and will require further investigation. Still,
having clang-11 in the SDK is an improvement.
This patch also adds support for cleaning up unused toolchain archives.
- flatpak/flatpakutils.py:
(run_sanitized):
(WebkitFlatpak.load_from_args):
(WebkitFlatpak.clean_args):
(WebkitFlatpak.run_in_sandbox):
(WebkitFlatpak.main):
(WebkitFlatpak.purge_unused_toolchains):
(WebkitFlatpak.pack_toolchain):
(WebkitFlatpak._get_packages):
- 2:03 AM Changeset in webkit [275594] by
-
- 2 edits in trunk/Source/WebCore
Make synthesizedBaselineFromContentBox return LayoutUnit
https://bugs.webkit.org/show_bug.cgi?id=224234
Patch by Rob Buis <rbuis@igalia.com> on 2021-04-07
Reviewed by Javier Fernandez.
Make synthesizedBaselineFromContentBox return LayoutUnit. This
makes it consistent with synthesizedBaselineFromBorderBox.
- rendering/RenderButton.cpp:
(WebCore::synthesizedBaselineFromContentBox):
(WebCore::RenderButton::baselinePosition const):
- 1:32 AM Changeset in webkit [275593] by
-
- 6 edits2 adds in trunk
[GTK][WPE] Wrong frame scrolled when view is horizontally scrolled with async scrolling enabled
https://bugs.webkit.org/show_bug.cgi?id=222900
Patch by Alejandro G. Castro <alex@igalia.com> on 2021-04-07
Reviewed by Žan Doberšek.
Source/WebCore:
We need to use the scrolling offset in the parent when collecting
the descendant layers at a point. We substract the boundsOrigin to
make sure we transform the point considering the scrolling offset.
Test: fast/scrolling/scrolling-inside-scrolled-overflowarea.html
- page/scrolling/nicosia/ScrollingTreeNicosia.cpp:
(WebCore::collectDescendantLayersAtPoint):
Tools:
We were not testing the async code path for WPE, it is important
we do it because it is the default option.
- WebKitTestRunner/wpe/TestControllerWPE.cpp:
(WTR::TestController::platformSpecificFeatureDefaultsForTest const):
Activating AsyncOverflowScrollingEnabled.
LayoutTests:
Add test for the use case.
- fast/scrolling/scrolling-inside-scrolled-overflowarea-expected.txt: Added.
- fast/scrolling/scrolling-inside-scrolled-overflowarea.html: Added.
- platform/ios/TestExpectations: The test uses mouseMoveTo and it is not supported in IOS.
- 1:30 AM Changeset in webkit [275592] by
-
- 2 edits in trunk/Source/WebKit
Unreviewed build fix after r275571 and r275537, which introduced conflicting changes.
- UIProcess/API/Cocoa/WKWebViewTesting.mm:
(-[WKWebView _createMediaSessionCoordinatorForTesting:completionHandler:]):
(-[WKMediaSessionCoordinatorHelper playSessionWithCompletion:]):
- 12:42 AM Changeset in webkit [275591] by
-
- 5 edits2 adds in trunk
REGRESSION(r274812): Release assert in Document::updateLayout() after calling focus({preventScroll: true}) on a textarea
https://bugs.webkit.org/show_bug.cgi?id=224262
Reviewed by Antti Koivisto.
Source/WebCore:
The regression was caused by Element::focus not updating the selection when preventScroll is set to true.
Fixed it by always updating the selection whenever Element::focus is called.
Test: fast/forms/textarea/textarea-focus-prevent-scroll-crash.html
- dom/Element.cpp:
(WebCore::Element::focus):
(WebCore::Element::findTargetAndUpdateFocusAppearance): Renamed from revealFocusedElement.
- dom/Element.h:
- page/EventHandler.cpp:
(WebCore::EventHandler::dispatchMouseEvent):
LayoutTests:
Added a regression test.
- fast/forms/textarea/textarea-focus-prevent-scroll-crash-expected.txt: Added.
- fast/forms/textarea/textarea-focus-prevent-scroll-crash.html: Added.
- 12:40 AM Changeset in webkit [275590] by
-
- 2 edits in trunk/Source/WebCore
[PlayStation] Provide a non-empty User Agent
https://bugs.webkit.org/show_bug.cgi?id=224216
Reviewed by Ross Kirsling.
Add non-empty implementation of User Agent code for port.
- platform/playstation/UserAgentPlayStation.cpp:
- 12:38 AM Changeset in webkit [275589] by
-
- 2 edits1 delete in trunk/Tools/buildstream
[Flatpak SDK] Bump GTK4 to 4.2
https://bugs.webkit.org/show_bug.cgi?id=224263
Reviewed by Carlos Garcia Campos.
- elements/sdk/gtk.bst: Bump and remove merged patch.
- patches/gtk-clipboard-Fix-a-crash-when-GdkContentProviderUnion-d.patch: Removed.
Apr 6, 2021:
- 11:48 PM Changeset in webkit [275588] by
-
- 19 edits in trunk/Source/JavaScriptCore
[JSC] Use FixedVector more in JSC
https://bugs.webkit.org/show_bug.cgi?id=224255
Reviewed by Mark Lam.
Use FixedVector more aggressively. This reduces sizeof(Holder) since sizeof(FixedVector) is 8
while sizeof(Vector) is 16. And since this allocates just-fit size, this does not waste memory.
- bytecode/BytecodeLivenessAnalysis.cpp:
(JSC::BytecodeLivenessAnalysis::computeFullLiveness):
- bytecode/BytecodeLivenessAnalysis.h:
- bytecode/FullBytecodeLiveness.h:
(JSC::FullBytecodeLiveness::FullBytecodeLiveness):
- bytecode/UnlinkedEvalCodeBlock.h:
- bytecompiler/BytecodeGenerator.cpp:
(JSC::BytecodeGenerator::BytecodeGenerator):
- dfg/DFGGraph.cpp:
(JSC::DFG::Graph::livenessFor):
- ftl/FTLForOSREntryJITCode.h:
- ftl/FTLLowerDFGToB3.cpp:
(JSC::FTL::DFG::LowerDFGToB3::lower):
- ftl/FTLOSRExit.cpp:
(JSC::FTL::OSRExitDescriptor::prepareOSRExitHandle):
- ftl/FTLOSRExit.h:
- ftl/FTLOSRExitCompiler.cpp:
(JSC::FTL::compileRecovery):
- heap/MarkedSpace.cpp:
(JSC::MarkedSpace::sweepPreciseAllocations):
- jit/RegisterAtOffsetList.cpp:
(JSC::RegisterAtOffsetList::RegisterAtOffsetList):
- jit/RegisterAtOffsetList.h:
(JSC::RegisterAtOffsetList::begin const):
(JSC::RegisterAtOffsetList::end const):
(JSC::RegisterAtOffsetList::clear): Deleted.
- runtime/JSGlobalObject.h:
- runtime/JSModuleNamespaceObject.cpp:
(JSC::JSModuleNamespaceObject::finishCreation):
- runtime/JSModuleNamespaceObject.h:
- yarr/YarrPattern.h:
(JSC::Yarr::YarrPattern::resetForReparsing):
- 10:56 PM Changeset in webkit [275587] by
-
- 7 edits in trunk
[GPU Process] Simplify DisplayList::Iterator part 5: Tweak the return type of DisplayList::Iterator::operator*()
https://bugs.webkit.org/show_bug.cgi?id=224148
Reviewed by Wenson Hsieh.
Source/WebCore:
This patch migrates from
struct Value {
Optional<ItemHandle> item;
Optional<FloatRect> extent;
size_t itemSizeInBuffer { 0 };
};
Value operator*() const;
to
struct Value {
ItemHandle item;
Optional<FloatRect> extent;
size_t itemSizeInBuffer { 0 };
};
Optional<Value> operator*() const
There are two reasons for this:
- Philosophically, if the item is nullopt, then all the stuff in the Value is also meaningless
- Part of the iterator's API contract is that if the item is nullopt, you're not allowed to keep
iterating - doing this will lead to an infinite loop. Promoting the optional makes it more
likely that this API contract is followed in the future.
No new tests because there is no behavior change.
- platform/graphics/displaylists/DisplayList.cpp:
(WebCore::DisplayList::DisplayList::asText const):
(WebCore::DisplayList::DisplayList::dump const):
- platform/graphics/displaylists/DisplayList.h:
(WebCore::DisplayList::DisplayList::iterator::operator* const):
- platform/graphics/displaylists/DisplayListReplayer.cpp:
(WebCore::DisplayList::Replayer::replay):
Tools:
- TestWebKitAPI/Tests/WebCore/DisplayListTests.cpp:
(TestWebKitAPI::TEST):
- 9:44 PM Changeset in webkit [275586] by
-
- 2 edits in branches/safari-612.1.10-branch/Source/WebKit
Cherry-pick r275539. rdar://problem/76289146
[macOS] Allow access to 'com.apple.system.logger' in the Base System
https://bugs.webkit.org/show_bug.cgi?id=224241
<rdar://problem/75960194>
Reviewed by Alex Christensen.
Deeper testing has revealed that some test configurations used internally require access to 'com.apple.system.logger' in the base
system to support certain diagnostic operations outside the normal user release logging paths.
This patch restores access to the 'com.apple.system.logger' endpoint when running in the Base System.
- WebProcess/com.apple.WebProcess.sb.in:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@275539 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 7:53 PM Changeset in webkit [275585] by
-
- 2 edits in trunk/Source/WebCore
[LFC][IFC] InlineFormattingState::shrinkToFit should shrink InlineItems too
https://bugs.webkit.org/show_bug.cgi?id=224258
Reviewed by Simon Fraser.
- layout/inlineformatting/InlineFormattingState.h:
(WebCore::Layout::InlineFormattingState::shrinkToFit):
- layout/integration/LayoutIntegrationCoverage.cpp:
- 6:32 PM Changeset in webkit [275584] by
-
- 2 edits in trunk/Source/WebCore
Fix logic error in MediaMetadataInit
https://bugs.webkit.org/show_bug.cgi?id=224252
<rdar://problem/76291386>
Reviewed by Eric Carlson.
Fix inverted logic error in decode that would have caused it to return early.
- Modules/mediasession/MediaMetadataInit.h:
(WebCore::MediaMetadataInit::decode):
- 6:28 PM Changeset in webkit [275583] by
-
- 10 edits in trunk
[ Catalina WK2 Release ] http/tests/IndexedDB/storage-limit-1.https.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=213292
<rdar://problem/64447734>
Reviewed by Geoffrey Garen.
Test http/tests/IndexedDB/collect-IDB-objects.https.html, which runs right before
http/tests/IndexedDB/storage-limit-1.https.html, will delete databases after test completetion. During deletion,
we create a new database if it does not exist, extract database version from it, and then delete database files.
This creation can happen during storage-limit-1.https.html run and interrupt testing for quota. To fix the
flakiness and make the deletion more efficient, let's not create a new database during deletion if database
does not exist.
Source/WebCore:
- Modules/indexeddb/server/IDBBackingStore.h:
- Modules/indexeddb/server/MemoryIDBBackingStore.cpp:
(WebCore::IDBServer::MemoryIDBBackingStore::databaseVersion):
- Modules/indexeddb/server/MemoryIDBBackingStore.h:
- Modules/indexeddb/server/SQLiteIDBBackingStore.cpp:
(WebCore::IDBServer::SQLiteIDBBackingStore::databaseVersion):
- Modules/indexeddb/server/SQLiteIDBBackingStore.h:
- Modules/indexeddb/server/UniqueIDBDatabase.cpp:
(WebCore::IDBServer::UniqueIDBDatabase::deleteBackingStore):
LayoutTests:
- platform/mac-wk2/TestExpectations:
- platform/mac/TestExpectations:
- 6:19 PM Changeset in webkit [275582] by
-
- 2 edits in trunk/LayoutTests
[ macOS wk2 ] webrtc/libwebrtc/release-while-creating-offer.html is a flakey text failure
https://bugs.webkit.org/show_bug.cgi?id=224256
Unreviewed test gardneing.
- platform/mac-wk2/TestExpectations: Updated test expectations to Pass Failure while test is reviewed.
- 6:01 PM Changeset in webkit [275581] by
-
- 2 edits in trunk/Tools
add jya as committer
- 5:56 PM Changeset in webkit [275580] by
-
- 3 edits in trunk/LayoutTests
[ macOS ] media/modern-media-controls/media-controller/media-controller-fullscreen-ltr.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=215397
Unreviewed test gardening.
- platform/mac/TestExpectations: Removed prior test expectations from mac-wk1, and added them just to mac since test is flakey across mac, and not just in wk1.
- 5:45 PM Changeset in webkit [275579] by
-
- 8 edits in branches/safari-611-branch/Source
Versioning.
WebKit-7611.2.1
- 5:45 PM Changeset in webkit [275578] by
-
- 10 edits in branches/safari-611-branch
Merge remote-tracking branch 'safari-611.1.21.3-branch' into safari-611-branch
- 5:45 PM Changeset in webkit [275577] by
-
- 14 edits in branches/safari-611-branch
Merge remote-tracking branch 'safari-611.1.21.2-branch' into safari-611-branch
- 5:44 PM Changeset in webkit [275576] by
-
- 51 edits4 adds in branches/safari-611-branch
Merge remote-tracking branch 'safari-611.1.21.161-branch' into safari-611-branch
- 5:44 PM Changeset in webkit [275575] by
-
- 148 edits2 copies2 moves10 adds2 deletes in branches/safari-611-branch
Merge remote-tracking branch 'safari-611.1.21.0-branch' into safari-611-branch
- 5:32 PM Changeset in webkit [275574] by
-
- 2 edits in trunk/Source/WebCore
REGRESSION (r275538): [ macOS ] TestWebKitAPI.WebKitLegacy.MediaPlaybackSleepAssertion and TestWebKitAPI.SleepDisabler.Pause consistently failing
https://bugs.webkit.org/show_bug.cgi?id=224249
<rdar://problem/76286539>
Reviewed by Jer Noble.
No new tests, this fixes two API tests.
- platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
(WebCore::MediaPlayerPrivateAVFoundationObjC::createAVPlayerItem): Use m_requestedRate
when choosing the pitch correction algorithm.
(WebCore::MediaPlayerPrivateAVFoundationObjC::setPlayerRate): Ditto.
(WebCore::MediaPlayerPrivateAVFoundationObjC::setPreservesPitch): Ditto.
(WebCore::MediaPlayerPrivateAVFoundationObjC::setPitchCorrectionAlgorithm): Ditto.
(WebCore::MediaPlayerPrivateAVFoundationObjC::playerItemStatusDidChange): Ditto.
- 5:02 PM Changeset in webkit [275573] by
-
- 3 edits in trunk/Source/WebCore
Unreviewed build fix after 275571: add declaration for new method (and make the constness match).
- Modules/mediasession/MediaSessionCoordinator.cpp:
(WebCore::MediaSessionCoordinator::currentPositionApproximatelyEqualTo const):
(WebCore::MediaSessionCoordinator::currentPositionApproximatelyEqualTo): Deleted.
- Modules/mediasession/MediaSessionCoordinator.h:
- 4:54 PM Changeset in webkit [275572] by
-
- 2 edits in trunk/Source/WebKit
Address some post-landing comments after r275491
https://bugs.webkit.org/show_bug.cgi?id=224126
Reviewed by Darin Adler.
Address some minor feedback; no change in behavior.
- UIProcess/mac/WebContextMenuProxyMac.mm:
(WebKit::createMenuActionItem):
Remove an unnecessary local variable.
(WebKit::WebContextMenuProxyMac::getContextMenuFromItems):
Use
WTF::URL
instead ofNSURL
, and remove a header import that is now unnecessary.
(WebKit::WebContextMenuProxyMac::getContextMenuItem):
Remove some more unnecessary local variables.
- 4:51 PM Changeset in webkit [275571] by
-
- 10 edits in trunk/Source
[MediaSession] Add optional mediaTime and hostTime arguments to the playSession() command.
https://bugs.webkit.org/show_bug.cgi?id=224173
Reviewed by Eric Carlson.
Source/WebCore:
When receiving a playSession() method that has an optional mediaTime argument, perform a
seekAction before the matching playAction if the current media time is not already approximately
equal to the mediaTime argument.
- Modules/mediasession/MediaSessionCoordinator.cpp:
(WebCore::MediaSessionCoordinator::playSession):
(WebCore::MediaSessionCoordinator::currentPositionApproximatelyEqualTo):
- Modules/mediasession/MediaSessionCoordinator.h:
- Modules/mediasession/MediaSessionCoordinatorPrivate.h:
Source/WebKit:
- UIProcess/Media/RemoteMediaSessionCoordinatorProxy.cpp:
(WebKit::RemoteMediaSessionCoordinatorProxy::playSession):
- UIProcess/Media/RemoteMediaSessionCoordinatorProxy.h:
- WebProcess/MediaSession/RemoteMediaSessionCoordinator.cpp:
(WebKit::RemoteMediaSessionCoordinator::playSession):
- WebProcess/MediaSession/RemoteMediaSessionCoordinator.h:
- WebProcess/MediaSession/RemoteMediaSessionCoordinator.messages.in:
- 4:36 PM Changeset in webkit [275570] by
-
- 3 edits in trunk/Source/WebCore
Replace the Optional metadata of ImageSource by a single OptionSet and the underlying metadata
https://bugs.webkit.org/show_bug.cgi?id=224202
Reviewed by Simon Fraser.
Encapsulating the metadata in a Optionals adds extra memory cost. Replace
these Optionals by the underlying metadata and an OptionSet to tell which
ones are cached.
- platform/graphics/ImageSource.cpp:
(WebCore::ImageSource::ImageSource):
(WebCore::ImageSource::frameAtIndexCacheIfNeeded):
Instead of assertion index < m_frames.size(), we can return defaultFrame().
This will used in many callers which checks the size before calling it.
(WebCore::ImageSource::clearMetadata):
(WebCore::ImageSource::metadataCacheIfNeeded):
(WebCore::ImageSource::firstFrameMetadataCacheIfNeeded):
These two template functions will be used to return and cache, if needed,
the image metadata. The first function uses the ImageDecoder while the
second one uses the first ImageFrame of the image.
(WebCore::ImageSource::encodedDataStatus):
(WebCore::ImageSource::frameCount):
(WebCore::ImageSource::repetitionCount):
(WebCore::ImageSource::uti):
(WebCore::ImageSource::filenameExtension):
(WebCore::ImageSource::accessibilityDescription):
(WebCore::ImageSource::hotSpot):
(WebCore::ImageSource::orientation):
(WebCore::ImageSource::densityCorrectedSize):
(WebCore::ImageSource::sourceSize):
(WebCore::ImageSource::singlePixelSolidColor):
(WebCore::ImageSource::maximumSubsamplingLevel):
(WebCore::ImageSource::frameDecodingStatusAtIndex):
(WebCore::ImageSource::frameHasAlphaAtIndex):
(WebCore::ImageSource::frameHasFullSizeNativeImageAtIndex):
(WebCore::ImageSource::frameHasDecodedNativeImageCompatibleWithOptionsAtIndex):
(WebCore::ImageSource::frameSubsamplingLevelAtIndex):
(WebCore::ImageSource::frameSizeAtIndex):
(WebCore::ImageSource::frameBytesAtIndex):
(WebCore::ImageSource::frameDurationAtIndex):
(WebCore::ImageSource::frameOrientationAtIndex):
(WebCore::ImageSource::frameImageAtIndex):
(WebCore::ImageSource::frameImageAtIndexCacheIfNeeded):
(WebCore::ImageSource::metadata): Deleted.
(WebCore::ImageSource::frameMetadataAtIndex): Deleted.
(WebCore::ImageSource::frameMetadataAtIndexCacheIfNeeded): Deleted.
- platform/graphics/ImageSource.h:
(WebCore::ImageSource::frameAtIndex):
- 4:28 PM Changeset in webkit [275569] by
-
- 6 edits2 adds in trunk
Symbol and BigInt wrapper objects should perform OrdinaryToPrimitive
https://bugs.webkit.org/show_bug.cgi?id=224208
Reviewed by Yusuke Suzuki.
JSTests:
- stress/bigint-object-ordinary-toprimitive.js: Added.
- stress/symbol-object-ordinary-toprimitive.js: Added.
Source/JavaScriptCore:
ES6 introduced Symbol.toPrimitive as the only way to override ToPrimitive;
if it's nullish, OrdinaryToPrimitive [1] is performed unconditionally.
This patch removes two redundant defaultValue() overrides, fixing JSC to call
(possibly userland) toString() / valueOf() methods of a) Symbol objects whose
Symbol.toPrimitive was removed, and b) BigInt wrapper objects.
Aligns JSC with V8 and SpiderMonkey. Coercion of primitives is unaffected.
Also, removes dummy BigIntObject::internalValue() override.
[1]: https://tc39.es/ecma262/#sec-toprimitive (step 2.d)
- runtime/BigIntObject.cpp:
(JSC::BigIntObject::defaultValue): Deleted.
- runtime/BigIntObject.h:
- runtime/SymbolObject.cpp:
(JSC::SymbolObject::defaultValue): Deleted.
- runtime/SymbolObject.h:
- 4:20 PM Changeset in webkit [275568] by
-
- 1 copy in tags/Safari-612.1.9.2
Tag Safari-612.1.9.2.
- 4:16 PM Changeset in webkit [275567] by
-
- 8 edits in branches/safari-612.1.9-branch/Source
Versioning.
WebKit-7612.1.9.2
- 4:03 PM Changeset in webkit [275566] by
-
- 1 copy in tags/Safari-612.1.9.1
Tag Safari-612.1.9.1.
- 3:53 PM Changeset in webkit [275565] by
-
- 6 edits1 add in trunk/Source/WebCore
[GPU Process] Simplify DisplayList::Iterator part 3: Reorder #include dependencies to allow for ItemBuffer{Writing,Reading}Client to know about DisplayList item types
https://bugs.webkit.org/show_bug.cgi?id=224145
Reviewed by Wenson Hsieh.
ItemBuffer{Writing,Reading}Client exists within DisplayListItemBuffer.h. The DisplayList item types exist within DisplayListItems.h.
Previously, the #include path was:
DisplayListItems.h -> DisplayList.h -> DisplayListItemBuffer.h
However, this means that DisplayListItemBuffer.h can't see what's inside DisplayListItems.h.
After this patch, the #include path is:
DisplayList.h -> DisplayListItemBuffer.h -> DisplayListItems.h
This is important because ItemBuffer{Writing,Reading}Client have encodeItem() and decodeItem() functions, which will need to know
about DisplayList item types if we want to migrate away from ItemHandle.
No new tests because there is no behavior change.
- Headers.cmake:
- WebCore.xcodeproj/project.pbxproj:
- platform/graphics/displaylists/DisplayListItemBuffer.cpp:
- platform/graphics/displaylists/DisplayListItemBuffer.h:
- platform/graphics/displaylists/DisplayListItemBufferIdentifier.h: Added.
- platform/graphics/displaylists/DisplayListItems.h:
- 3:38 PM Changeset in webkit [275564] by
-
- 8 edits in branches/safari-612.1.9-branch/Source
Versioning.
WebKit-7612.1.9.1
- 3:37 PM Changeset in webkit [275563] by
-
- 12 edits in trunk/Source
Add additional page load diagnostic logging
https://bugs.webkit.org/show_bug.cgi?id=224194
<rdar://problem/76227175>
Reviewed by Alex Christensen.
This patch adds new logging to help us diagnose and investigate page load failures.
Source/WebCore:
- loader/ResourceLoader.cpp:
(WebCore::ResourceLoader::init): Add logging for some unusual conditions:
(1) A loader cannot be created because the document loader is nullptr.
(2) A load is cancelled because it violates security policy.
(3) A load was cancelled during 'willSendRequest' processing.
(4) A load was cancelled because the request was null.
(WebCore::ResourceLoader::loadDataURL): Log when a data load was cancelled.
(WebCore::ResourceLoader::willSendRequestInternal): Log when a cross-origin redirect is triggered, and when a redirect is
to a dataURL and will be handled locally.
(WebCore::ResourceLoader::didFinishLoadingOnePart): Log when a load is cancelled after it finished.
- loader/SubresourceLoader.cpp:
(WebCore::SubresourceLoader::willSendRequestInternal): Log when an ongoing load has unexpectedly reached terminal state. Remove a
spammy log message that indicates when a redirect response is null (which just means its a normal load).
(WebCore::SubresourceLoader::didFinishLoading): Log when a finished load unexpectedly did not reach terminal state.
(WebCore::SubresourceLoader::notifyDone): Log when a load could not finish because the document loader was nullptr.
Source/WebKit:
- NetworkProcess/NetworkConnectionToWebProcess.cpp:
(WebKit::NetworkConnectionToWebProcess::didClose): Log when the connection from a WebProcess requesting a load
is closed.
(WebKit::NetworkConnectionToWebProcess::removeLoadIdentifier): Log when the WebProcess requests a load
identifier be removed (and cancelled).
- NetworkProcess/NetworkResourceLoader.cpp:
(WebKit::NetworkResourceLoader::restartNetworkLoad): Log when an in-process load is cancelled so that the load
can be restarted.
- UIProcess/Network/NetworkProcessProxy.cpp:
(WebKit::NetworkProcessProxy::didClose): Log when the network process crashes.
- UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::didClose): Add logging when the WebProcess crashes.
- WebProcess/Network/WebLoaderStrategy.cpp:
(WebKit::WebLoaderStrategy::scheduleLoad): Remove an erroneous log message that made it appear that no URL handler
had been called. The log message was generated when a normal network load handler was executed, leading to
confusing troubleshooting logs.
- WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::registerURLSchemeHandler): Log when a web page registers a custom URL handler, and for which scheme.
- WebProcess/WebPage/WebURLSchemeTaskProxy.cpp:
(WebKit::pageIDFromWebFrame): Added helper.
(WebKit::frameIDFromWebFrame): Ditto.
(WebKit::WebURLSchemeTaskProxy::startLoading): Add logging to track progress of custom URL handlers.
(WebKit::WebURLSchemeTaskProxy::stopLoading): Ditto.
(WebKit::WebURLSchemeTaskProxy::didPerformRedirection): Ditto.
(WebKit::WebURLSchemeTaskProxy::didReceiveResponse): Ditto.
(WebKit::WebURLSchemeTaskProxy::didReceiveData): Ditto.
(WebKit::WebURLSchemeTaskProxy::didComplete): Ditto.
- WebProcess/WebProcess.cpp:
(WebKit::WebProcess::networkProcessConnectionClosed): Add logging that the network process crashed.
- 3:29 PM Changeset in webkit [275562] by
-
- 8 edits in trunk/Source/WebKit
[iOS] contextmenu hints can be clipped by the WKWebView
https://bugs.webkit.org/show_bug.cgi?id=224204
<rdar://problem/75504620>
Reviewed by Wenson Hsieh.
- UIProcess/ios/WKContentViewInteraction.h:
- UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView cleanUpInteraction]):
(-[WKContentView cleanUpRelatedViews]): Added.
(-[WKContentView _didScroll]):
(-[WKContentView textEffectsWindow]):
(-[WKContentView _createPreviewContainerWithLayerName:]):
(-[WKContentView containerForDropPreviews]):
(-[WKContentView containerForDragPreviews]):
(-[WKContentView containerForContextMenuHintPreviews]):
(-[WKContentView _hideTargetedPreviewContainerViews]):
(-[WKContentView _updateTargetedPreviewViewsContainerViewFrameIfNeeded]): Added.
(-[WKContentView _removeTargetedPreviewViewsContainerViewIfPossible]): Added.
(-[WKContentView _updateTargetedPreviewScrollViewUsingContainerScrollingNodeID:]): Added.
(-[WKContentView cleanUpDragSourceSessionState]):
(-[WKContentView _createTargetedContextMenuHintPreviewForFocusedElement]):
(-[WKContentView _createTargetedContextMenuHintPreviewIfPossible]):
(-[WKContentView _removeContextMenuViewIfPossible]):
(-[WKContentView dropInteraction:concludeDrop:]):
(-[WKContentView overridePositionTrackingViewForTargetedPreviewIfNecessary:containerScrollingNodeID:]): Deleted.
Instead of attaching the contextmenu hint container (_contextMenuHintContainerView
) to
theWKWebView
(via the_interactionViewsContainerView
), attach it to a new container
(_targetedPreviewViewsContainerView
) under theUITextEffectsWindow
so that if the
contextmenu target is near the edge of theWKWebView
then the shadow of the contextmenu
hint will not be clipped by theWKWebView
. Whenever any view is scrolled, adjust the
frame
of the_targetedPreviewViewsContainerView
so that the contextmenu hint moves.
- UIProcess/ios/WKContentView.mm:
(-[WKContentView didMoveToWindow]):
Call-cleanUpRelatedViews
if no longer attached to awindow
so that the
_targetedPreviewViewsContainerView
is not left behind if theWKWebView
is moved.
- UIProcess/RemoteLayerTree/ios/RemoteScrollingCoordinatorProxyIOS.mm:
(WebKit::RemoteScrollingCoordinatorProxy::scrollViewForScrollingNodeID const):
- UIProcess/RemoteLayerTree/ios/ScrollingTreeFrameScrollingNodeRemoteIOS.h:
- UIProcess/RemoteLayerTree/ios/ScrollingTreeFrameScrollingNodeRemoteIOS.mm:
(WebKit::ScrollingTreeFrameScrollingNodeRemoteIOS::scrollView const): Added.
ScrollingTreeFrameScrollingNodeRemoteIOS
also has a correspondingUIScrollView
.
- Platform/spi/ios/UIKitSPI.h:
Remove no longer needed SPI now that WebKit manages the position of the contextmenu hint.
- 3:20 PM Changeset in webkit [275561] by
-
- 10 edits3 adds3 deletes in trunk/LayoutTests
[LayoutTests] Convert http/tests/misc convert PHP to Python
https://bugs.webkit.org/show_bug.cgi?id=221981
<rdar://problem/74399686>
Reviewed by Jonathan Bedard.
- http/tests/misc/prefetch-purpose-expected.txt:
- http/tests/misc/prefetch-purpose.html:
- http/tests/misc/resources/check-query-param.php: Removed.
- http/tests/misc/resources/check-query-param.py: Added.
- http/tests/misc/resources/prefetch-purpose.php: Removed.
- http/tests/misc/resources/prefetch-purpose.py: Added.
- http/tests/misc/resources/redirect-to-http-url.php: Removed.
- http/tests/misc/resources/redirect-to-http-url.py: Added.
- http/tests/misc/submit-get-in-utf16be.html:
- http/tests/misc/submit-get-in-utf16le.html:
- http/tests/misc/submit-post-in-utf16be.html:
- http/tests/misc/submit-post-in-utf16le.html:
- http/tests/misc/will-send-request-returns-null-on-redirect-expected.txt:
- http/tests/misc/will-send-request-returns-null-on-redirect.html:
- platform/wk2/http/tests/misc/will-send-request-returns-null-on-redirect-expected.txt:
- 3:13 PM Changeset in webkit [275560] by
-
- 4 edits in trunk/Source
Web Inspector: Grid overlay label style cleanup
https://bugs.webkit.org/show_bug.cgi?id=224240
Reviewed by BJ Burg.
Source/WebCore:
Clean up grid overlay label styling by:
- Make all labels use a translucent background. This patch chooses a middle ground between the existing
translucent labels that matched the color of the rulers, and the solid white background used by line
numbers/names for maximum legibility.
- Bumping the label padding by 1px to improve legibility.
- Bumping the label arrow size by 2px to make it easier to understand where a label is pointing, particularly
for labels where the edge position is not
Middle
.
- inspector/InspectorOverlay.cpp:
(WebCore::InspectorOverlay::drawGridOverlay):
(WebCore::InspectorOverlay::buildGridOverlay):
Source/WebKit:
Mirror changes to constants from
WebCore::InspectorOverlay
.
- UIProcess/Inspector/ios/WKInspectorHighlightView.mm:
(createLayoutLabelLayer):
(-[WKInspectorHighlightView _createGridOverlayLayer:scale:]):
- 3:12 PM WebKitGTK/2.32.x edited by
- (diff)
- 3:09 PM Changeset in webkit [275559] by
-
- 2 edits in trunk/Source/WebCore
Web Inspector: Grid overlay track size labels should show implicit
auto
value and no computed size
https://bugs.webkit.org/show_bug.cgi?id=224199
Reviewed by BJ Burg.
Previously, implicit
auto
track sizes were only shown if there were some number of explicit track sizes for
that track direction (rows/columns). To resolve this,authoredGridTrackSizes
now only returns explicit
authored track sizes, and buildGridOverlay then infersauto
for all remaining tracks. This will also help
resolve bug 224200 by providing a way to distinguish explicit and implicit tracks.
After discussion, this patch also removes the computed size of tracks from labels, as that information is
available in the box model diagram for children elements and having that information in these labels further
cramped often limited space for overlay labels.
- inspector/InspectorOverlay.cpp:
(WebCore::authoredGridTrackSizes):
(WebCore::InspectorOverlay::buildGridOverlay):
- 3:09 PM Changeset in webkit [275558] by
-
- 2 edits in trunk/Source/WebCore
Web Inspector: Grid overlay line numbers should not include implicit tracks in negative line number calculations.
https://bugs.webkit.org/show_bug.cgi?id=224200
Reviewed by BJ Burg.
Use the
authoredTrackColumnSizes
/authoredTrackRowSizes
to determine if the line is an explicit grid line or
implicit grid line (starting with the patch for bug 224199 those vectors will only contain the explicit lines).
Only explicit lines should have a negative number for addressing the line, and those numbers should start with
the last explicit line. Because each track is bounded by two lines, there will always be one more explicit line
than there is explicit track, including the case where there are no explicit tracks, which will still have a
single explicit line numbered-1
.
Additionally, line numbers are now separated by an em-space to improve legibility, where previously the bullet
looked like a multiplication symbol between two numbers.
- inspector/InspectorOverlay.cpp:
(WebCore::InspectorOverlay::buildGridOverlay):
- 2:45 PM Changeset in webkit [275557] by
-
- 30 edits in trunk/Source
Build fails when video is disabled
https://bugs.webkit.org/show_bug.cgi?id=224198
Patch by Mike Gorse <mgorse@suse.com> on 2021-04-06
Reviewed by Adrian Perez de Castro.
Add #if ENABLE(VIDEO) where needed.
Source/WebCore:
- editing/markup.cpp:
(WebCore::createPageForSanitizingWebContent):
- page/Page.cpp:
- page/Page.h:
- platform/graphics/GraphicsContext.cpp:
- platform/graphics/GraphicsContext.h:
- platform/graphics/GraphicsContextGL.h:
- platform/graphics/GraphicsContextImpl.h:
- platform/graphics/cairo/GraphicsContextImplCairo.cpp:
- platform/graphics/cairo/GraphicsContextImplCairo.h:
- platform/graphics/displaylists/DisplayList.cpp:
(WebCore::DisplayList::DisplayList::append):
- platform/graphics/displaylists/DisplayListItemBuffer.cpp:
(WebCore::DisplayList::ItemHandle::apply):
(WebCore::DisplayList::ItemHandle::destroy):
(WebCore::DisplayList::ItemHandle::safeCopy const):
- platform/graphics/displaylists/DisplayListItemType.cpp:
(WebCore::DisplayList::sizeOfItemInBytes):
(WebCore::DisplayList::isDrawingItem):
(WebCore::DisplayList::isInlineItem):
- platform/graphics/displaylists/DisplayListItemType.h:
- platform/graphics/displaylists/DisplayListItems.cpp:
(WebCore::DisplayList::operator<<):
- platform/graphics/displaylists/DisplayListItems.h:
- platform/graphics/displaylists/DisplayListRecorder.cpp:
- platform/graphics/displaylists/DisplayListRecorder.h:
- platform/graphics/nicosia/cairo/NicosiaCairoOperationRecorder.cpp:
- platform/graphics/nicosia/cairo/NicosiaCairoOperationRecorder.h:
- platform/graphics/opengl/GraphicsContextGLOpenGL.cpp:
- platform/graphics/opengl/GraphicsContextGLOpenGL.h:
- platform/graphics/win/GraphicsContextImplDirect2D.cpp:
- platform/graphics/win/GraphicsContextImplDirect2D.h:
- svg/graphics/SVGImage.cpp:
(WebCore::SVGImage::dataChanged):
Source/WebKit:
- GPUProcess/graphics/RemoteRenderingBackend.cpp:
(WebKit::RemoteRenderingBackend::decodeItem):
- UIProcess/gtk/ClipboardGtk3.cpp:
- WebProcess/GPU/graphics/RemoteImageBufferProxy.h:
- WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
(WebKit::WebFrameLoaderClient::committedLoad):
- 2:42 PM Changeset in webkit [275556] by
-
- 8 edits in branches/safari-612.1.10-branch/Source
Versioning.
WebKit-7612.1.10
- 2:31 PM BuildingCairoOnWindows edited by
- (diff)
- 2:28 PM Changeset in webkit [275555] by
-
- 2 edits in trunk/LayoutTests
[ macOS wk2] media/modern-media-controls/macos-fullscreen-media-controls/macos-fullscreen-media-controls-drag-is-prevented-over-button.html is a flakey timeout
https://bugs.webkit.org/show_bug.cgi?id=224135
Unreviewed test gardening.
- platform/mac-wk2/TestExpectations: updated test expectations to Pass Timeout while test is reviewed.
- 2:28 PM Changeset in webkit [275554] by
-
- 4 edits in trunk
Add U+0581 and U+0585 to list of Armenian characters that look like Latin characters
https://bugs.webkit.org/show_bug.cgi?id=224219
Source/WTF:
<rdar://75896365>
Patch by Alex Christensen <achristensen@webkit.org> on 2021-04-06
Reviewed by Brent Fulgham.
These code points are allowed in the context of other Armenian code points and punctuation, but not other script code points.
This was already implemented for the others, but I consolidated the list to one location to avoid having two locations for the list.
- wtf/URLHelpers.cpp:
(WTF::URLHelpers::isArmenianLookalikeCharacter):
(WTF::URLHelpers::isArmenianLookalikeSequence):
(WTF::URLHelpers::isLookalikeCharacter):
Tools:
Patch by Alex Christensen <achristensen@webkit.org> on 2021-04-06
Reviewed by Brent Fulgham.
- TestWebKitAPI/Tests/WTF/cocoa/URLExtras.mm:
(TestWebKitAPI::TEST):
- 2:27 PM Changeset in webkit [275553] by
-
- 14 edits1 move in trunk/Source/WebKit
Add IPC::Semaphore stub for Unix ports
https://bugs.webkit.org/show_bug.cgi?id=224223
Reviewed by Don Olmstead.
PlayStation, GTK and WPE ports don't use it yet. Just add stubs
instead of scattering #if everywhere using Semaphore.
- GPUProcess/graphics/RemoteRenderingBackend.cpp:
(WebKit::RemoteRenderingBackend::nextDestinationImageBufferAfterApplyingDisplayLists):
(WebKit::RemoteRenderingBackend::populateGetImageDataSharedMemory):
- Platform/IPC/StreamClientConnection.cpp:
(IPC::StreamClientConnection::setWakeUpSemaphore):
(IPC::StreamClientConnection::wakeUpServer):
- Platform/IPC/StreamClientConnection.h:
(IPC::StreamClientConnection::tryAcquire):
(IPC::StreamClientConnection::tryAcquireAll):
- Platform/IPC/StreamConnectionWorkQueue.cpp:
(IPC::StreamConnectionWorkQueue::StreamConnectionWorkQueue):
(IPC::StreamConnectionWorkQueue::removeStreamConnection):
(IPC::StreamConnectionWorkQueue::stop):
(IPC::StreamConnectionWorkQueue::wakeUp):
(IPC::StreamConnectionWorkQueue::wakeUpProcessingThread):
- Platform/IPC/StreamConnectionWorkQueue.h:
- Platform/IPC/StreamServerConnection.cpp:
(IPC::StreamServerConnectionBase::release):
(IPC::StreamServerConnectionBase::releaseAll):
- Platform/IPC/unix/IPCSemaphoreUnix.cpp: Added.
(IPC::Semaphore::Semaphore):
(IPC::Semaphore::signal):
(IPC::Semaphore::wait):
(IPC::Semaphore::waitFor):
(IPC::Semaphore::encode const):
(IPC::Semaphore::decode):
(IPC::Semaphore::destroy):
- PlatformPlayStation.cmake:
- Sources.txt:
- SourcesGTK.txt:
- SourcesWPE.txt:
- WebKit.xcodeproj/project.pbxproj:
- WebProcess/GPU/graphics/RemoteRenderingBackendProxy.cpp:
(WebKit::RemoteRenderingBackendProxy::waitForGetImageDataToComplete):
(WebKit::RemoteRenderingBackendProxy::didAppendData):
- WebProcess/GPU/media/RemoteAudioDestinationProxy.cpp:
(WebKit::RemoteAudioDestinationProxy::startRenderingThread):
(WebKit::RemoteAudioDestinationProxy::stopRenderingThread):
- 2:14 PM Changeset in webkit [275552] by
-
- 2 edits in trunk/LayoutTests
[BigSur Wk1] transforms/2d* and transforms/hittest-translated-content-off-to-infinity-and-back.html are flaky image failures
https://bugs.webkit.org/show_bug.cgi?id=223904
Unreviewed test gardening.
- platform/mac-wk1/TestExpectations:
- 2:08 PM Changeset in webkit [275551] by
-
- 13 edits2 deletes in trunk
REGRESSION(r275275): Broke some build configs lacking openh264
https://bugs.webkit.org/show_bug.cgi?id=224244
Unreviewed, manual revert of r275275 and r275409.
Patch by Philippe Normand <pnormand@igalia.com> on 2021-04-06
.:
- Source/CMakeLists.txt:
- Source/cmake/GStreamerChecks.cmake:
Source/ThirdParty/libwebrtc:
- CMakeLists.txt:
- LibWebRTCWebKitMacros.h.in: Removed.
- Source/webrtc/modules/video_coding/codecs/h264/h264.cc:
- Source/webrtc/modules/video_coding/codecs/h264/h264_encoder_impl.cc:
- Source/webrtc/modules/video_coding/codecs/h264/h264_encoder_impl.h:
- cmake/FindOpenh264.cmake: Removed.
Source/WebCore:
- platform/mediastream/libwebrtc/GStreamerVideoCommon.cpp:
(WebCore::gstreamerSupportedH264Codecs):
(WebCore::supportedH264Formats): Deleted.
- platform/mediastream/libwebrtc/GStreamerVideoCommon.h:
- platform/mediastream/libwebrtc/GStreamerVideoDecoderFactory.cpp:
- platform/mediastream/libwebrtc/GStreamerVideoEncoderFactory.cpp:
(WebCore::GStreamerVideoEncoderFactory::CreateVideoEncoder):
(WebCore::GStreamerVideoEncoderFactory::GetSupportedFormats const):
- 2:05 PM Changeset in webkit [275550] by
-
- 2 edits in trunk/LayoutTests
[ macOS ARM64 ] compositing/background-color/no-composited-background-color-when-perspective.html is a flakey Image failure (4 pixels)
https://bugs.webkit.org/show_bug.cgi?id=224212
Unreviewed test gardening.
- platform/mac/TestExpectations: Updated test expectations to Pass ImageOnlyFailure while test is reviewed.
- 1:57 PM Changeset in webkit [275549] by
-
- 3 edits in trunk/Source/WebKit
Delay the end of printing while PrintContext is in use.
https://bugs.webkit.org/show_bug.cgi?id=224229
Reviewed by Antti Koivisto.
Added a new RAII object, PrintContextAccessScope, to delay the call to endPrinting
and deployed in various IPC messages used during printing.
- WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::beginPrinting): Deployed PrintContextAccessScope.
(WebKit::WebPage::endPrinting): Exit early without ending printing if there is an active
PrintContextAccessScope in the stack.
(WebKit::WebPage::endPrintingImmediately): Extracted from endPrintingImmediately.
(WebKit::WebPage::computePagesForPrinting): Deployed PrintContextAccessScope.
(WebKit::WebPage::computePagesForPrintingImpl): Ditto.
(WebKit::WebPage::drawRectToImage): Ditto.
(WebKit::WebPage::drawPagesToPDF): Ditto.
- WebProcess/WebPage/WebPage.h:
(WebKit::WebPage::PrintContextAccessScope): Added.
(WebKit::WebPage::PrintContextAccessScope::PrintContextAccessScope): Added.
(WebKit::WebPage::PrintContextAccessScope::~PrintContextAccessScope): Added.
- 1:52 PM Changeset in webkit [275548] by
-
- 8 edits in trunk/LayoutTests
[ wk2 ] 4 storage/websql/test-authorizer.html and constantly timing out
https://bugs.webkit.org/show_bug.cgi?id=224245
<rdar://problem/76281408>
Unreviewed. Updated the test expectations to not unskip some tests in various ports that only run tests in WK2.
- platform/gtk/TestExpectations:
- platform/ios-simulator/TestExpectations:
- platform/ios/TestExpectations:
- platform/mac-wk1/TestExpectations:
- platform/mac/TestExpectations:
- platform/wincairo/TestExpectations:
- platform/wk2/TestExpectations:
- 1:43 PM Changeset in webkit [275547] by
-
- 14 edits in trunk/Source/WebCore
Shrink some IndexedDB-related classes
https://bugs.webkit.org/show_bug.cgi?id=224221
Reviewed by Geoffrey Garen.
Shrink some enum classes, and re-order data members to optimize packing in
IDBRequest and IDBKeyRangeData.
A couple of data members of IDBRequest were made private with protected setters.
This shrinks IDBRequest from 496 bytes to 448 bytes, and IDBKeyRangeData from 96
to 72 bytes on x86_64.
- Modules/indexeddb/IDBKeyData.h:
- Modules/indexeddb/IDBKeyRangeData.cpp:
(WebCore::IDBKeyRangeData::IDBKeyRangeData):
- Modules/indexeddb/IDBKeyRangeData.h:
(WebCore::IDBKeyRangeData::IDBKeyRangeData):
- Modules/indexeddb/IDBObjectStore.h:
- Modules/indexeddb/IDBOpenDBRequest.cpp:
(WebCore::IDBOpenDBRequest::IDBOpenDBRequest):
(WebCore::IDBOpenDBRequest::versionChangeTransactionDidFinish):
(WebCore::IDBOpenDBRequest::onSuccess):
(WebCore::IDBOpenDBRequest::onUpgradeNeeded):
(WebCore::IDBOpenDBRequest::onDeleteDatabaseSuccess):
- Modules/indexeddb/IDBRequest.cpp:
(WebCore::IDBRequest::IDBRequest):
- Modules/indexeddb/IDBRequest.h:
(WebCore::IDBRequest::setReadyState):
(WebCore::IDBRequest::setShouldExposeTransactionToDOM):
- Modules/indexeddb/IndexedDB.h:
- Modules/indexeddb/client/IDBConnectionToServerDelegate.h:
- Modules/indexeddb/server/MemoryIndex.h:
- Modules/indexeddb/server/MemoryObjectStore.h:
- Modules/indexeddb/shared/IDBCursorInfo.h:
- Modules/indexeddb/shared/IDBGetAllRecordsData.h:
- 1:39 PM Changeset in webkit [275546] by
-
- 15 edits2 adds in trunk
REGRESSION (r274610): Unable to drag images when image extraction is enabled
https://bugs.webkit.org/show_bug.cgi?id=224211
<rdar://problem/76229563>
Reviewed by Tim Horton.
Source/WebKit:
r274610 introduced a new deferring gesture recognizer intended to prevent several text interaction gestures from
recognizing during pending image extraction. However, this also causes dragging on iOS to fail, since the
gesture used to initiate dragging is excluded by the new deferring gesture recognizer. To fix this, allow the
new deferring gesture to recognize simultaneously alongside all gestures with the exception of only the gestures
it is intended to defer (i.e. text interaction gestures).
Test: fast/events/ios/dragstart-on-image-by-long-pressing.html
- UIProcess/API/ios/WKWebViewPrivateForTestingIOS.h:
- UIProcess/API/ios/WKWebViewTestingIOS.mm:
(-[WKWebView _isAnimatingDragCancel]):
- UIProcess/ios/WKContentViewInteraction.h:
- UIProcess/ios/WKContentViewInteraction.mm:
(-[UIGestureRecognizer _wk_isTapAndAHalf]):
Add a WebKit category method that returns whether or not a gesture recognizer is a tap-and-a-half gesture.
(-[WKContentView gestureRecognizer:shouldRecognizeSimultaneouslyWithGestureRecognizer:]):
Allow the image extraction deferring gesture to recognize alongside all other gestures, with the exception of
the text interaction gestures determined by-shouldDeferGestureDueToImageExtraction:
. This limits the impact
of this new deferring gesture, such that it only affects the text interaction gestures it is intended to defer.
(-[WKContentView shouldDeferGestureDueToImageExtraction:]):
Add a helper method to determine whether or not a gesture recognizer should be deferred, due to pending image
extraction. We pull this logic behind a helper method because it's now consulted from two call sites.
(-[WKContentView deferringGestureRecognizer:shouldDeferOtherGestureRecognizer:]):
(-[WKContentView dragInteraction:item:willAnimateCancelWithAnimator:]):
(-[WKContentView isAnimatingDragCancel]):
Add a testing hook to return whether or not the drag cancel animation is running. See Tools/ChangeLog and the
new layout test for more detail.
(tapAndAHalfRecognizerClass): Deleted.
Tools:
Add support for some new testing infrastructure; see below for more details.
- TestRunnerShared/UIScriptContext/Bindings/UIScriptController.idl:
- TestRunnerShared/UIScriptContext/UIScriptController.h:
(WTR::UIScriptController::isAnimatingDragCancel const):
Add a new testing hook to return whether or not the web view's drag interaction is currently animating a drag
cancel (i.e., the drag preview is animating back to its original frame).
- WebKitTestRunner/TestOptions.cpp:
(WTR::TestOptions::defaults):
(WTR::TestOptions::keyTypeMapping):
- WebKitTestRunner/TestOptions.h:
(WTR::TestOptions::dragInteractionPolicy const):
Add a test option that allows tests to override the drag interaction policy to "always-allow",
"always-disallow", and the default value. This option allows us to force drag and drop to be enabled when
testing on iPhone simulator.
- WebKitTestRunner/ios/TestControllerIOS.mm:
(WTR::dragInteractionPolicy):
(WTR::TestController::platformResetStateToConsistentValues):
- WebKitTestRunner/ios/UIScriptControllerIOS.h:
- WebKitTestRunner/ios/UIScriptControllerIOS.mm:
(WTR::UIScriptControllerIOS::isAnimatingDragCancel const):
LayoutTests:
Add a new layout test that initiates dragging on an image using a synthesized event stream, and verifies that
"dragstart" and "dragend" events are dispatched on the image.
- fast/events/ios/dragstart-on-image-by-long-pressing-expected.txt: Added.
- fast/events/ios/dragstart-on-image-by-long-pressing.html: Added.
- resources/ui-helper.js:
(window.UIHelper.isAnimatingDragCancel):
Add a
UIHelper
method that returns whether or not the dragging animation is being cancelled. The new test uses
this hook to wait for the drag cancel animation to end before proceeding to the next test.
- 1:26 PM Changeset in webkit [275545] by
-
- 2 edits in trunk/Source/WebInspectorUI
Web Inspector: remove duplicate Box Model section from Layout panel in Elements Tab
https://bugs.webkit.org/show_bug.cgi?id=224206
<rdar://problem/76235731>
Reviewed by Devin Rousso.
For now, remove it from Layout panel. It may go back there
when it is able to show used values. It currently only shows computed.
- UserInterface/Views/LayoutDetailsSidebarPanel.js:
(WI.LayoutDetailsSidebarPanel.prototype.initialLayout):
(WI.LayoutDetailsSidebarPanel.prototype.layout):
(WI.LayoutDetailsSidebarPanel.prototype.get minimumWidth): Deleted.
- 1:20 PM Changeset in webkit [275544] by
-
- 5 edits1 add in trunk
Array's toString() is incorrect if join() is non-callable
https://bugs.webkit.org/show_bug.cgi?id=224215
Reviewed by Yusuke Suzuki.
JSTests:
- stress/array-toString-non-callable-join.js: Added.
Source/JavaScriptCore:
This patch exposes objectPrototypeToString() to be used by Array.prototype.toString
if "join" lookup doesn't return a callable value [1].
Fixes Array's toString() to return the correct tag instead of internal
className
,
perform Symbol.toStringTag lookup, and throw for revoked Proxy objects.
Aligns JSC with V8 and SpiderMonkey.
Also, a few objectPrototypeToString() tweaks: a bit nicer
undefined
/null
checks and simpler toObject() exception handling.
[1]: https://tc39.es/ecma262/#sec-array.prototype.tostring (step 3)
- runtime/ArrayPrototype.cpp:
(JSC::JSC_DEFINE_HOST_FUNCTION):
- runtime/ObjectPrototype.cpp:
(JSC::objectPrototypeToString):
(JSC::JSC_DEFINE_HOST_FUNCTION):
- runtime/ObjectPrototype.h:
- 12:51 PM Changeset in webkit [275543] by
-
- 6 edits6 adds in trunk
Assert failure in isCloneInShadowTreeOfSVGUseElement
https://bugs.webkit.org/show_bug.cgi?id=224174
Reviewed by Darin Adler and Antti Koivisto.
Source/WebCore:
The bug was caused by two related but distinct issues:
- An element can have an instance that had been removed from a use element's shadow tree but not yet deleted. Because SVGElement clears its correspondingElement in its destructor, when addEventListener is called on such an element, it can try to add an event listener on this instance which is in the process of getting disposed.
- DOM mutation events can be fired on the corresponding element of an instance inside a use element’s shadow tree with EventQueueScope in the stack when the event is schedueld via Node::dispatchScopedEvent, e.g. because use element's shadow tree was updated during a style update at the beginning of document.execComand. Because SVGUseElement::cloneTarget constructs the shadow tree by cloning the original tree while it's disconnected from the document, Node::dispatchSubtreeModifiedEvent sees isInShadowTree() to be false and happily tries to dispach DOMSubtreeModified event using Node::dispatchScopedEvent. This works fine when the event is dispatched synchronously since these elements had never been exposed to any scripts yet and they are still disconnected so no scripts have had an opportunity to attach an event listener. But when EventQueueScope in the stack, Node::dispatchScopedEvent will queue up the event and fire it later when those instance elements had been inserted into use element's shadow tree.
This patch addresses (1) by severing correspondingElement relationship as soon as an instance
is removed from its use element's shadow tree, and (2) by not dispatching a scheduled mutation
event if the target is inside a shadow tree. Note that this patch also addresses (2) for
a regular shadow tree attached by author scripts.
Tests: fast/shadow-dom/mutation-event-in-shadow-tree.html
svg/dom/mutate-symbol-subtree-referenced-by-use-during-execCommand.html
svg/dom/update-svg-use-shadow-tree-with-execCommand.html
- dom/ScopedEventQueue.cpp:
(WebCore::ScopedEventQueue::dispatchEvent const):
- svg/SVGElement.cpp:
(WebCore::SVGElement::~SVGElement):
(WebCore::SVGElement::removedFromAncestor):
(WebCore::SVGElement::addEventListener):
(WebCore::SVGElement::removeEventListener):
LayoutTests:
Added tests for mutating nodes which is later inserted into a shadow tree during execCommand
as well as forcing a SVG use element to update its shadow tree by mutating the corresponding
element tree during execCommand.
- fast/shadow-dom/mutation-event-in-shadow-tree-expected.txt: Added.
- fast/shadow-dom/mutation-event-in-shadow-tree.html: Added.
- svg/dom/mutate-symbol-subtree-referenced-by-use-during-execCommand-expected.txt: Added.
- svg/dom/mutate-symbol-subtree-referenced-by-use-during-execCommand.html: Added.
- svg/dom/update-svg-use-shadow-tree-with-execCommand-expected.txt: Added.
- svg/dom/update-svg-use-shadow-tree-with-execCommand.html: Added.
- 12:47 PM Changeset in webkit [275542] by
-
- 33 edits2 adds in trunk
[WTF] Introduce FixedVector and use it for FixedOperands
https://bugs.webkit.org/show_bug.cgi?id=224171
Reviewed by Mark Lam.
Source/JavaScriptCore:
Define FixedOperands<T> which uses FixedVector for its storage. We use FixedOperands in FTL::OSRExitDescriptor.
We also replace RefCountedArray<T> with FixedVector<T> if they are not requiring RefCountedArray<T>'s ref-counting
semantics.
- bytecode/BytecodeGeneratorification.cpp:
(JSC::BytecodeGeneratorification::run):
- bytecode/CodeBlock.cpp:
(JSC::CodeBlock::finishCreation):
(JSC::CodeBlock::setConstantRegisters):
(JSC::CodeBlock::setNumParameters):
(JSC::CodeBlock::setRareCaseProfiles):
(JSC::CodeBlock::insertBasicBlockBoundariesForControlFlowProfiler):
- bytecode/CodeBlock.h:
- bytecode/Operands.h:
(JSC::Operands::Operands):
- bytecode/OperandsInlines.h:
(JSC::U>::dumpInContext const):
(JSC::U>::dump const):
(JSC::Operands<T>::dumpInContext const): Deleted.
(JSC::Operands<T>::dump const): Deleted.
- bytecode/PolyProtoAccessChain.h:
- bytecode/PolymorphicAccess.cpp:
(JSC::PolymorphicAccess::regenerate):
- bytecode/PolymorphicAccess.h:
- bytecode/UnlinkedCodeBlock.cpp:
(JSC::UnlinkedCodeBlock::dumpExpressionRangeInfo):
(JSC::UnlinkedCodeBlock::expressionRangeForBytecodeIndex const):
- bytecode/UnlinkedCodeBlock.h:
(JSC::UnlinkedCodeBlock::expressionInfo):
(JSC::UnlinkedCodeBlock::identifiers const):
(JSC::UnlinkedCodeBlock::constantRegisters):
(JSC::UnlinkedCodeBlock::constantsSourceCodeRepresentation):
(JSC::UnlinkedCodeBlock::constantIdentifierSets):
(JSC::UnlinkedCodeBlock::opProfileControlFlowBytecodeOffsets const):
- bytecode/UnlinkedFunctionExecutable.h:
- bytecompiler/BytecodeGenerator.cpp:
(JSC::prepareJumpTableForSwitch):
- dfg/DFGJITCode.h:
- dfg/DFGPlan.h:
(JSC::DFG::Plan::tierUpInLoopHierarchy):
- ftl/FTLOSRExit.h:
- jit/GCAwareJITStubRoutine.h:
- jit/JIT.cpp:
(JSC::JIT::privateCompileSlowCases):
- jit/PolymorphicCallStubRoutine.h:
- llint/LLIntOffsetsExtractor.cpp:
- llint/LowLevelInterpreter.asm:
- parser/Parser.cpp:
(JSC::Parser<LexerType>::parseInner):
(JSC::Parser<LexerType>::parseClassFieldInitializerSourceElements):
- parser/Parser.h:
(JSC::Parser<LexerType>::parse):
(JSC::parse):
- runtime/CachedTypes.cpp:
(JSC::CachedVector::encode):
(JSC::CachedVector::decode const):
- wasm/js/JSWebAssemblyInstance.h:
Source/WTF:
This FixedVector<T> is a wrapper around RefCountedArray<T>, but this offers Vector-like copy / move semantics,
so that we can use this FixedVector<T> as a drop-in-replacement for fixed-sized Vector fields. The purpose
of that is saving memory by removing unnecessary storage (FixedVector is fixed-sized allocated) and putting size
into the allocated memory.
- WTF.xcodeproj/project.pbxproj:
- wtf/CMakeLists.txt:
- wtf/FastBitVector.h:
(WTF::FastBitVector::FastBitVector):
- wtf/FixedVector.h: Added.
(WTF::FixedVector::FixedVector):
(WTF::FixedVector::operator=):
(WTF::FixedVector::size const):
(WTF::FixedVector::isEmpty const):
(WTF::FixedVector::byteSize const):
(WTF::FixedVector::data):
(WTF::FixedVector::begin):
(WTF::FixedVector::end):
(WTF::FixedVector::data const):
(WTF::FixedVector::begin const):
(WTF::FixedVector::end const):
(WTF::FixedVector::rbegin):
(WTF::FixedVector::rend):
(WTF::FixedVector::rbegin const):
(WTF::FixedVector::rend const):
(WTF::FixedVector::at):
(WTF::FixedVector::at const):
(WTF::FixedVector::operator[]):
(WTF::FixedVector::operator[] const):
(WTF::FixedVector::first):
(WTF::FixedVector::first const):
(WTF::FixedVector::last):
(WTF::FixedVector::last const):
(WTF::FixedVector::fill):
(WTF::FixedVector::operator== const):
(WTF::FixedVector::swap):
(WTF::swap):
- wtf/RefCountedArray.h:
(WTF::RefCountedArray::RefCountedArray):
(WTF::RefCountedArray::fill):
(WTF::RefCountedArray::swap):
Tools:
- TestWebKitAPI/CMakeLists.txt:
- TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
- TestWebKitAPI/Tests/WTF/FixedVector.cpp: Added.
(TestWebKitAPI::TEST):
(TestWebKitAPI::DestructorObserver::DestructorObserver):
(TestWebKitAPI::DestructorObserver::~DestructorObserver):
(TestWebKitAPI::DestructorObserver::operator=):
- 12:42 PM Changeset in webkit [275541] by
-
- 2 edits in trunk
Speculative build fix for Windows port.
https://bugs.webkit.org/show_bug.cgi?id=224243
rdar://75883248
Reviewed by Saam Barati.
Source/cmake/tools/scripts/auto-version.pl was limiting our
minor
andmicro
version to only 2 decimal digits only. In practice, we can use up to 3 digits.
- Source/cmake/tools/scripts/auto-version.pl:
(packTwoValues):
- 12:42 PM Changeset in webkit [275540] by
-
- 7 edits in trunk/Source/WebKit
Hold strong reference to xpc_connection_t in XPCServiceEventHandler
https://bugs.webkit.org/show_bug.cgi?id=224242
<rdar://74308418>
Patch by Alex Christensen <achristensen@webkit.org> on 2021-04-06
Reviewed by David Kilzer.
There is a reasonable chance that by the time we get to the block of xpc_connection_set_event_handler
and back through WorkQueue::main().dispatchSync the xpc_connection_t has been freed.
Also, the adoption in each entry points was incorrect, causing a late overrelease when tearing down the process.
It was incorrect because we did not just create the connection or get it from any NS_RETURNS_RETAINED-like function.
It was causing rare crashes once everything else had released their hold on the connection.
- GPUProcess/EntryPoint/Cocoa/XPCService/GPUServiceEntryPoint.mm:
(GPU_SERVICE_INITIALIZER):
- NetworkProcess/EntryPoint/Cocoa/XPCService/NetworkServiceEntryPoint.mm:
(NETWORK_SERVICE_INITIALIZER):
- PluginProcess/EntryPoint/Cocoa/XPCService/PluginServiceEntryPoint.mm:
(PLUGIN_SERVICE_INITIALIZER):
- Shared/EntryPointUtilities/Cocoa/XPCService/XPCServiceMain.mm:
(WebKit::XPCServiceEventHandler):
- WebAuthnProcess/EntryPoint/Cocoa/XPCService/WebAuthnServiceEntryPoint.mm:
(WEBAUTHN_SERVICE_INITIALIZER):
- WebProcess/EntryPoint/Cocoa/XPCService/WebContentServiceEntryPoint.mm:
(WEBCONTENT_SERVICE_INITIALIZER):
- 12:41 PM Changeset in webkit [275539] by
-
- 2 edits in trunk/Source/WebKit
[macOS] Allow access to 'com.apple.system.logger' in the Base System
https://bugs.webkit.org/show_bug.cgi?id=224241
<rdar://problem/75960194>
Reviewed by Alex Christensen.
Deeper testing has revealed that some test configurations used internally require access to 'com.apple.system.logger' in the base
system to support certain diagnostic operations outside the normal user release logging paths.
This patch restores access to the 'com.apple.system.logger' endpoint when running in the Base System.
- WebProcess/com.apple.WebProcess.sb.in:
- 12:38 PM Changeset in webkit [275538] by
-
- 2 edits in trunk/Source/WebCore
[Cocoa] audio played at 2x speed video is not pitch corrected
https://bugs.webkit.org/show_bug.cgi?id=224238
rdar://75868284
Reviewed by Jer Noble.
We need to use the _intended_ playback rate when deciding which pitch correction
algorithm to use. MediaPlayerPrivateAVFoundationObjC::m_cachedRate is used for this,
but r274592 stopped setting m_cachedRate in MediaPlayerPrivateAVFoundationObjC::setPlayerRate
because it is also set when AVPlayer KVOs that the rate changed.
Tested manually.
- platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
(WebCore::MediaPlayerPrivateAVFoundationObjC::setPlayerRate): Set m_cachedRate.
- 12:06 PM Changeset in webkit [275537] by
-
- 16 edits1 add in trunk
[macOS] Add MediaSessionCoordinator API test
https://bugs.webkit.org/show_bug.cgi?id=224140
<rdar://problem/76171173>
Reviewed by Jer Noble.
Source/WebKit:
- Sources.txt: Include RemoteMediaSessionCoordinatorProxy.cpp and RemoteMediaSessionCoordinator.cpp
so they don't have to be included in the Xcode project.
- UIProcess/API/Cocoa/WKWebViewPrivateForTesting.h: Declare enums, struct, and protocols
necessary to implement and use an object derived from MediaSessionCoordinatorProxyPrivate.
- UIProcess/API/Cocoa/WKWebViewTesting.mm:
(-[WKWebView _createMediaSessionCoordinatorForTesting:completionHandler:]): New private
method to create a MediaSessionCoordinatorProxyPrivate.
(-[WKMediaSessionCoordinatorHelper initWithCoordinator:]):
(-[WKMediaSessionCoordinatorHelper seekSessionToTime:withCompletion:]):
(-[WKMediaSessionCoordinatorHelper playSessionWithCompletion:]):
(-[WKMediaSessionCoordinatorHelper pauseSessionWithCompletion:]):
(-[WKMediaSessionCoordinatorHelper setSessionTrack:withCompletion:]):
- UIProcess/Cocoa/WebViewImpl.h:
(WebKit::WebViewImpl::mediaSessionCoordinatorForTesting): MediaSessionCoordinatorProxyPrivate
getter.
- UIProcess/Cocoa/WebViewImpl.mm:
(WebKit::WebViewImpl::setMediaSessionCoordinatorForTesting): Setter for
MediaSessionCoordinatorProxyPrivate drived object.
- UIProcess/Media/MediaSessionCoordinatorProxyPrivate.h: Add typedef for the completion
handler used by many coordinator proxy methods.
- UIProcess/Media/RemoteMediaSessionCoordinatorProxy.cpp:
(WebKit::RemoteMediaSessionCoordinatorProxy::RemoteMediaSessionCoordinatorProxy):
Set the private coordinator client so calls to the session can be forwarded.
(WebKit::RemoteMediaSessionCoordinatorProxy::join): Use MediaSessionCommandCompletionHandler.
(WebKit::RemoteMediaSessionCoordinatorProxy::coordinateSeekTo): Ditto.
(WebKit::RemoteMediaSessionCoordinatorProxy::coordinatePlay): Ditto.
(WebKit::RemoteMediaSessionCoordinatorProxy::coordinatePause): Ditto.
(WebKit::RemoteMediaSessionCoordinatorProxy::coordinateSetTrack): Ditto.
(WebKit::RemoteMediaSessionCoordinatorProxy::coordinatorStateChanged): Ditto.
- UIProcess/Media/RemoteMediaSessionCoordinatorProxy.h:
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::createMediaSessionCoordinator): Change completion handler
parameter to return a bool instead of a RemoteMediaSessionCoordinatorProxy as the
client interface provides all of the session access needed.
- UIProcess/WebPageProxy.h:
- WebKit.xcodeproj/project.pbxproj: Remove RemoteMediaSessionCoordinatorProxy.cpp
and RemoteMediaSessionCoordinator.cpp
- WebProcess/MediaSession/RemoteMediaSessionCoordinator.cpp:
(WebKit::RemoteMediaSessionCoordinator::join): Use ExceptionData's toException()
method instead of creating an Exception directly. Remove the destination ID parameter
to sendWithAsyncReply so messageSenderDestinationID() will be used.
(WebKit::RemoteMediaSessionCoordinator::leave): Ditto.
(WebKit::RemoteMediaSessionCoordinator::seekTo) Ditto.:
(WebKit::RemoteMediaSessionCoordinator::play): Ditto.
(WebKit::RemoteMediaSessionCoordinator::pause): Ditto.
(WebKit::RemoteMediaSessionCoordinator::setTrack): Ditto.
(WebKit::RemoteMediaSessionCoordinator::positionStateChanged): Ditto.
(WebKit::RemoteMediaSessionCoordinator::readyStateChanged): Ditto.
(WebKit::RemoteMediaSessionCoordinator::playbackStateChanged): Ditto.
(WebKit::RemoteMediaSessionCoordinator::coordinatorStateChanged): Ditto.
Tools:
- TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
- TestWebKitAPI/TestWebKitAPI.xcodeproj/xcshareddata/xcschemes/TestWebKitAPI.xcscheme:
- TestWebKitAPI/Tests/WebKit/MediaSessionCoordinatorTest.mm: Added.
(-[_WKMockMediaSessionCoordinator lastStateChange]):
(-[_WKMockMediaSessionCoordinator lastMethodCalled]):
(-[_WKMockMediaSessionCoordinator identifier]):
(-[_WKMockMediaSessionCoordinator joinWithCompletion:]):
(-[_WKMockMediaSessionCoordinator leave]):
(-[_WKMockMediaSessionCoordinator seekTo:withCompletion:]):
(-[_WKMockMediaSessionCoordinator playWithCompletion:]):
(-[_WKMockMediaSessionCoordinator pauseWithCompletion:]):
(-[_WKMockMediaSessionCoordinator setTrack:withCompletion:]):
(-[_WKMockMediaSessionCoordinator positionStateChanged:]):
(-[_WKMockMediaSessionCoordinator readyStateChanged:]):
(-[_WKMockMediaSessionCoordinator playbackStateChanged:]):
(-[_WKMockMediaSessionCoordinator coordinatorStateChanged:]):
(-[_WKMockMediaSessionCoordinator seekSessionToTime:]):
(-[_WKMockMediaSessionCoordinator playSession]):
(-[_WKMockMediaSessionCoordinator pauseSession]):
(-[_WKMockMediaSessionCoordinator setSessionTrack:]):
(TestWebKitAPI::MediaSessionCoordinatorTest::createCoordinator):
(TestWebKitAPI::MediaSessionCoordinatorTest::webView const):
(TestWebKitAPI::MediaSessionCoordinatorTest::coordinator const):
(TestWebKitAPI::MediaSessionCoordinatorTest::loadPageAndBecomeReady):
(TestWebKitAPI::MediaSessionCoordinatorTest::runScriptWithUserGesture):
(TestWebKitAPI::MediaSessionCoordinatorTest::play):
(TestWebKitAPI::MediaSessionCoordinatorTest::pause):
(TestWebKitAPI::MediaSessionCoordinatorTest::listenForEventMessages):
(TestWebKitAPI::MediaSessionCoordinatorTest::eventListenerWasCalled):
(TestWebKitAPI::MediaSessionCoordinatorTest::clearEventListenerState):
(TestWebKitAPI::MediaSessionCoordinatorTest::executeUntil):
(TestWebKitAPI::MediaSessionCoordinatorTest::waitForEventListenerToBeCalled):
(TestWebKitAPI::MediaSessionCoordinatorTest::listenForMessagesPosted):
(TestWebKitAPI::MediaSessionCoordinatorTest::clearMessagesPosted):
(TestWebKitAPI::MediaSessionCoordinatorTest::listenForSessionHandlerMessages):
(TestWebKitAPI::MediaSessionCoordinatorTest::sessionHandlerWasCalled):
(TestWebKitAPI::MediaSessionCoordinatorTest::waitForSessionHandlerToBeCalled):
(TestWebKitAPI::MediaSessionCoordinatorTest::listenForPromiseMessages):
(TestWebKitAPI::MediaSessionCoordinatorTest::clearPromiseMessages):
(TestWebKitAPI::MediaSessionCoordinatorTest::promiseWasResolved):
(TestWebKitAPI::MediaSessionCoordinatorTest::promiseWasRejected):
(TestWebKitAPI::MediaSessionCoordinatorTest::waitForPromise):
(TestWebKitAPI::TEST_F):
- TestWebKitAPI/Tests/WebKitCocoa/media-remote.html:
- 11:15 AM Changeset in webkit [275536] by
-
- 2 edits in trunk/Source/WebCore
UBSan: RenderView.cpp:831:9: runtime error: load of value nnn, which is not a valid value for type 'bool'
<https://webkit.org/b/224157>
Reviewed by Darin Adler.
Tests: editing/inserting/insert-list-user-select-none-crash.html
fast/dom/clientWidthAfterDocumentIsRemoved.html
fast/scrolling/iframe-scrollable-after-back.html
fast/text/crash-font-family-parsed.html
html5lib/generated/run-template-write.html
imported/blink/plugins/renderless-plugin-creation-doesnt-crash-without-frame.html
imported/w3c/web-platform-tests/css/cssom-view/scrolling-no-browsing-context.html
imported/w3c/web-platform-tests/dom/ranges/Range-mutations-appendChild.html
imported/w3c/web-platform-tests/html/browsers/the-window-object/named-access-on-the-window-object/navigated-named-objects.window.html
imported/w3c/web-platform-tests/html/semantics/forms/the-label-element/clicking-interactive-content.html
imported/w3c/web-platform-tests/html/syntax/parsing/html5lib_template.html
imported/w3c/web-platform-tests/html/syntax/parsing/template/creating-an-element-for-the-token/template-owner-document.html
imported/w3c/web-platform-tests/selection/addRange-12.html
imported/w3c/web-platform-tests/shadow-dom/untriaged/html-elements-in-shadow-trees/html-forms/test-001.html
media/track/track-remove-crash.html
svg/custom/animate-reference-crash.html
- rendering/RenderView.h:
(WebCore::RenderView::m_wasAccumulatingRepaintRegion):
- Add default initialization.
- 11:10 AM Changeset in webkit [275535] by
-
- 3 edits2 adds in trunk
WebCrypto in Safari will not AES-GCM encrypt 0 bytes
https://bugs.webkit.org/show_bug.cgi?id=224083
<rdar://75093377>
Reviewed by Youenn Fablet.
Source/WebCore:
CommonCrypto will bail out both the encryption and decryption process if the dataOut is a null pointer.
To workaround the issue, this patch forces the dataOut to be a non-null pointer.
Test: crypto/subtle/aes-gcm-generate-key-encrypt-decrypt-null-plain-text.html
- crypto/mac/CryptoAlgorithmAES_GCMMac.cpp:
(WebCore::encryptAES_GCM):
(WebCore::decyptAES_GCM):
LayoutTests:
- crypto/subtle/aes-gcm-generate-key-encrypt-decrypt-null-plain-text-expected.txt: Added.
- crypto/subtle/aes-gcm-generate-key-encrypt-decrypt-null-plain-text.html: Added.
- 11:02 AM Changeset in webkit [275534] by
-
- 3 edits in trunk/Tools
set-webkit-configuration should print current settings
<https://webkit.org/b/224190>
Reviewed by Mark Lam.
- Scripts/set-webkit-configuration:
- Reorder switches to put sanitizers together.
- Declare subroutines.
- Call printCurrentSettings() or printUsage() as needed.
(printCurrentSettings): Add.
(printUsage): Add.
- Scripts/webkitdirs.pm:
- Reorder switch variables to match other code.
(coverageIsEnabled): Add for set-webkit-configuration.
- 11:00 AM Changeset in webkit [275533] by
-
- 3 edits1 add1 delete in trunk/LayoutTests
[LayoutTests] Convert http/tests/loading convert PHP to Python
https://bugs.webkit.org/show_bug.cgi?id=222198
<rdar://problem/74536576>
Reviewed by Jonathan Bedard.
- http/tests/loading/redirect-methods-expected.txt:
- http/tests/loading/resources/redirect-methods-form.html:
- http/tests/loading/resources/redirect-methods-result.php: Removed.
- http/tests/loading/resources/redirect-methods-result.py: Added.
- 10:54 AM Changeset in webkit [275532] by
-
- 3 edits in trunk/Source/WebKit
[iOS] Prevent background blur when presenting date/time pickers
https://bugs.webkit.org/show_bug.cgi?id=224189
<rdar://problem/76220352>
Reviewed by Wenson Hsieh.
- Platform/spi/ios/UIKitSPI.h:
- UIProcess/ios/forms/WKDateTimeInputControl.mm:
(-[WKDateTimePicker _contextMenuInteraction:styleForMenuWithConfiguration:]):
Presenting a UIContextMenuInteraction results in the application of a
blur effect to the background view. However, the peripheral presented
when interacting with a UIDatePicker across the rest of the system
does not blur the background.
To align our behavior with the rest of the system, remove the blur
effect by specifying an empty UIVisualEffect for the
_UIContextMenuStyle's preferredBackgroundEffects. The empty effect
must be explicitly specified, since setting an empty array will result
in the default effect being applied.
- 10:28 AM Changeset in webkit [275531] by
-
- 2 edits in trunk/Source/WebKit
Revert part of crash fix to keep test infrastructure
https://bugs.webkit.org/show_bug.cgi?id=224196
These two tests change the bundle identifier to test what it's like to not be in a test:
http/tests/in-app-browser-privacy/app-bound-domain-gets-app-bound-session.html
http/tests/in-app-browser-privacy/non-app-bound-iframe-under-app-bound-domain-is-app-bound.html
This partial revert of r275486 allows the test to dynamically change whether it's in testing mode.
- Shared/Cocoa/DefaultWebBrowserChecks.mm:
(WebKit::doesParentProcessHaveITPEnabled):
(WebKit::isParentProcessAFullWebBrowser):
- 10:24 AM Changeset in webkit [275530] by
-
- 3 edits in trunk/Source/WebKit
[GPUP] Clean up two messages.in files
https://bugs.webkit.org/show_bug.cgi?id=224153
Reviewed by Eric Carlson.
No new tests, no functional change.
- GPUProcess/media/RemoteMediaPlayerProxy.messages.in:
- WebProcess/GPU/media/MediaPlayerPrivateRemote.messages.in:
- 10:18 AM Changeset in webkit [275529] by
-
- 2 edits in trunk/Source/WebCore
Web Inspector: Grid overlay areas appear offset from their actual areas when the grid container has a border set
https://bugs.webkit.org/show_bug.cgi?id=224201
Reviewed by BJ Burg.
As of r274096, it is no longer correct to subtract the first track's position for either axis from the edge
lines of areas. This change resolves that, bringing this math in line with how other grid lines are laid out.
- inspector/InspectorOverlay.cpp:
(WebCore::InspectorOverlay::buildGridOverlay):
- 10:10 AM Changeset in webkit [275528] by
-
- 2 edits in trunk/Source/WebCore
[GStreamer] At EOS, change position to match duration, not the other way around.
https://bugs.webkit.org/show_bug.cgi?id=224237
Reviewed by Philippe Normand.
The criteria used to check if playback has finished is currentTime >=
duration. Currently MediaPlayerPrivateGStreamer::didEnd() ensures this
in an awkward way: by changing the duration so that it matches
currentTime, rather than the other way around.
This meant a duration change at the end of playback most of the time,
with a slightly different duration each time, since currentTime is
cached periodically.
This patch reworks that function to work more naturally and less racy:
First, only if the stream doesn't have a set duration (e.g. live
stream), we set a duration to currentTime, as defined in the spec.
Second, at EOS we update currentTime to match duration, rather than
the other way around.
This patch doesn't introduce changes in test results.
- platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
(WebCore::MediaPlayerPrivateGStreamer::didEnd):
- 9:51 AM Changeset in webkit [275527] by
-
- 18 edits1 copy in trunk/Source
Non-unified build fixes, early April 2021
https://bugs.webkit.org/show_bug.cgi?id=224091
Patch by Tyler Wilcock <Tyler Wilcock> on 2021-04-06
Reviewed by Simon Fraser.
Source/WebCore:
The SelectionRestorationMode enum has been moved out of Document.h so
the entirety of Document.h doesn't need to be included just for that
enum.
- Headers.cmake:
Add SelectionRestorationMode.h.
- WebCore.xcodeproj/project.pbxproj:
Add SelectionRestorationMode.h.
- dom/Document.h:
Move SelectionRestorationMode enum to its own file.
- dom/Element.h:
Add forward declaration for enum class SelectionRestorationMode. Rearrange
existing enum class forward declarations alphabetically.
- dom/SelectionRestorationMode.h: Added.
- dom/FocusOptions.h:
- history/CachedPage.cpp:
- html/HTMLFormControlElement.cpp:
- html/HTMLInputElement.h:
- html/HTMLLabelElement.cpp:
- html/HTMLLegendElement.cpp:
- html/HTMLTextAreaElement.h:
- html/InputType.cpp:
- page/EventHandler.cpp:
- page/FocusController.cpp:
Add #include "SelectionRestorationMode.h".
- workers/service/context/ServiceWorkerThreadProxy.cpp:
Add #include "ServiceWorkerGlobalScope.h" to fix:
ServiceWorkerThreadProxy.cpp:287:53: error: invalid use of incomplete type
'WTF::match_constness_t<WebCore::ScriptExecutionContext, WebCore::ServiceWorkerGlobalScope>'
{aka 'class WebCore::ServiceWorkerGlobalScope'}
Source/WebKit:
The SelectionRestorationMode enum has been moved out of Document.h so
the entirety of Document.h doesn't need to be included just for that
enum.
- WebProcess/WebPage/WebPage.cpp:
Add #include "SelectionRestorationMode.h".
- 9:37 AM Changeset in webkit [275526] 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
Unreviewed test gardening.
- platform/mac-wk2/TestExpectations: Skip this test directory to
suppress this crash on EWS & trunk bots.
- 9:36 AM Changeset in webkit [275525] by
-
- 2 edits in trunk/Source/WebKit
Release WebRTC remote encoder/decoder callback lock right after having changed the encoder/decoder callback
https://bugs.webkit.org/show_bug.cgi?id=224228
<rdar://74560516>
Reviewed by Eric Carlson.
We were locking the callback lock, changing the callback and hopping to codec map thread to free the encoder/decoder.
Then we were unlocking the callback lock.
There was a chance that the encoder/decoder gets freed in the codec map thread before we unlock its callback lock.
Given that we nullify the callback in decoder/encoder Release before going to destructor, we can just remove the lock/nullify code.
Covered by existing test sets.
- WebProcess/GPU/webrtc/LibWebRTCCodecs.cpp:
(WebKit::LibWebRTCCodecs::releaseDecoder):
(WebKit::LibWebRTCCodecs::releaseEncoder):
- 9:17 AM Changeset in webkit [275524] by
-
- 2 edits in branches/safari-612.1.10-branch/Source/WebKit
Revert r2754691. rdar://problem/76244988
This reverts commit ac33c312b0f737f0fd04f484d5351fe7b62d6c9d.
- 9:09 AM Changeset in webkit [275523] by
-
- 263 edits in trunk
[iOS][FCR] Use opaque system colors for control backgrounds
https://bugs.webkit.org/show_bug.cgi?id=224131
<rdar://problem/75975709>
Reviewed by Tim Horton.
Source/WebCore:
r274600 introduced the use of system colors for control backgrounds.
However, the system fill colors are not opaque, leading to poor
visibility on certain page/element backgrounds.
To fix, use an opaque variant of the system fill colors, as if they
were drawn on top of a white background. Note that UIKit does not
expose these opaque variants, leaving us to make the adjustments
ourselves.
- css/CSSValueKeywords.in:
Replace the system fill color keywords with opaque variants. The old
colors are fine to remove, since they were only introduced in r274600,
and have no external clients.
- css/html.css:
Replace all system fill colors with their opaque variants.
- rendering/RenderThemeIOS.mm:
(WebCore::cssValueSystemColorInformationList):
Renamed CSSValueIDAndSelector to CSSValueSystemColorInformation to
account for the addition of new fields to support opaque fill colors.
Storing the blendOverWhite and opacity fields in the list allows us
to resolve the color once and store it in a cache, rather than
applying the adjustments each time.
(WebCore::systemColorFromCSSValueSystemColorInformation):
Use the blendOverWhite and opacity information from the
CSSValueSystemColorInformation to determine the final color.
(WebCore::systemColorFromCSSValueID):
Call into systemColorFromCSSValueSystemColorInformation to avoid
duplicating logic.
(WebCore::RenderThemeIOS::cssValueToSystemColorMap):
(WebCore::RenderThemeIOS::systemColor):
(WebCore::RenderThemeIOS::checkboxRadioBackgroundColor):
(WebCore::RenderThemeIOS::paintProgressBarWithFormControlRefresh):
(WebCore::RenderThemeIOS::paintMeter):
(WebCore::RenderThemeIOS::paintSliderTrackWithFormControlRefresh):
LayoutTests:
Rebaselined tests to account for changes in color.
- fast/forms/date/date-input-rendering-basic-expected.txt:
- fast/forms/date/date-pseudo-elements-expected.txt:
- fast/forms/time/time-input-rendering-basic-expected.txt:
- platform/ios-simulator/fast/forms/auto-fill-button/hide-auto-fill-strong-password-viewable-treatment-when-form-is-reset-expected.txt:
- platform/ios-simulator/fast/forms/auto-fill-button/input-credit-card-auto-fill-button-expected.txt:
- platform/ios-simulator/fast/forms/auto-fill-button/input-strong-password-viewable-expected.txt:
- platform/ios-simulator/fast/forms/datalist/datalist-searchinput-appearance-expected.txt:
- platform/ios-simulator/fast/forms/datalist/datalist-textinput-appearance-expected.txt:
- platform/ios-wk2/editing/input/caret-at-the-edge-of-input-expected.txt:
- platform/ios-wk2/editing/input/reveal-caret-of-multiline-input-expected.txt:
- platform/ios-wk2/editing/inserting/4960120-1-expected.txt:
- platform/ios-wk2/editing/inserting/before-after-input-element-expected.txt:
- platform/ios-wk2/editing/pasteboard/4641033-expected.txt:
- platform/ios-wk2/editing/pasteboard/4944770-1-expected.txt:
- platform/ios-wk2/editing/pasteboard/4944770-2-expected.txt:
- platform/ios-wk2/editing/pasteboard/input-field-1-expected.txt:
- platform/ios-wk2/editing/pasteboard/pasting-tabs-expected.txt:
- platform/ios-wk2/editing/selection/4895428-3-expected.txt:
- platform/ios-wk2/editing/selection/caret-before-select-expected.txt:
- platform/ios-wk2/editing/selection/drag-select-1-expected.txt:
- platform/ios-wk2/editing/selection/select-from-textfield-outwards-expected.txt:
- platform/ios-wk2/fast/block/float/overhanging-tall-block-expected.txt:
- platform/ios-wk2/fast/block/margin-collapse/103-expected.txt:
- platform/ios-wk2/fast/dynamic/008-expected.txt:
- platform/ios-wk2/fast/forms/basic-buttons-expected.txt:
- platform/ios-wk2/fast/forms/basic-textareas-quirks-expected.txt:
- platform/ios-wk2/fast/forms/input-appearance-preventDefault-expected.txt:
- platform/ios-wk2/fast/forms/input-text-click-outside-expected.txt:
- platform/ios-wk2/fast/forms/input-text-double-click-expected.txt:
- platform/ios-wk2/fast/forms/input-text-drag-down-expected.txt:
- platform/ios-wk2/fast/forms/input-text-option-delete-expected.txt:
- platform/ios-wk2/fast/forms/textAreaLineHeight-expected.txt:
- platform/ios-wk2/fast/forms/textarea-align-expected.txt:
- platform/ios-wk2/fast/forms/textarea-placeholder-visibility-1-expected.txt:
- platform/ios-wk2/fast/forms/textarea-placeholder-visibility-2-expected.txt:
- platform/ios-wk2/fast/forms/textarea-scroll-height-expected.txt:
- platform/ios-wk2/fast/forms/textarea-setinnerhtml-expected.txt:
- platform/ios-wk2/fast/hidpi/resize-corner-hidpi-expected.txt:
- platform/ios-wk2/fast/overflow/scroll-nested-positioned-layer-in-overflow-expected.txt:
- platform/ios-wk2/fast/overflow/scrollRevealButton-expected.txt:
- platform/ios-wk2/fast/parser/document-write-option-expected.txt:
- platform/ios-wk2/fast/parser/entity-comment-in-textarea-expected.txt:
- platform/ios-wk2/fast/parser/open-comment-in-textarea-expected.txt:
- platform/ios-wk2/fast/spatial-navigation/snav-multiple-select-focusring-expected.txt:
- platform/ios-wk2/fast/text/international/rtl-white-space-pre-wrap-expected.txt:
- platform/ios-wk2/fast/text/international/unicode-bidi-plaintext-in-textarea-expected.txt:
- platform/ios-wk2/fast/transforms/transformed-focused-text-input-expected.txt:
- platform/ios-wk2/imported/w3c/web-platform-tests/css/css-pseudo/file-chooser-button-display-toggle-crash.tentative-expected.txt:
- platform/ios/css3/flexbox/button-expected.txt:
- platform/ios/editing/pasteboard/4806874-expected.txt:
- platform/ios/editing/selection/3690703-2-expected.txt:
- platform/ios/editing/selection/3690703-expected.txt:
- platform/ios/editing/selection/3690719-expected.txt:
- platform/ios/editing/selection/4397952-expected.txt:
- platform/ios/editing/selection/4975120-expected.txt:
- platform/ios/editing/selection/5240265-expected.txt:
- platform/ios/editing/selection/replaced-boundaries-3-expected.txt:
- platform/ios/editing/selection/select-box-expected.txt:
- platform/ios/editing/selection/select-element-paragraph-boundary-expected.txt:
- platform/ios/editing/selection/selection-button-text-expected.txt:
- platform/ios/fast/block/float/032-expected.txt:
- platform/ios/fast/block/float/float-avoidance-expected.txt:
- platform/ios/fast/block/positioning/inline-block-relposition-expected.txt:
- platform/ios/fast/css/continuationCrash-expected.txt:
- platform/ios/fast/css/focus-ring-exists-for-search-field-expected.txt:
- platform/ios/fast/css/input-search-padding-expected.txt:
- platform/ios/fast/css/line-height-expected.txt:
- platform/ios/fast/css/rtl-ordering-expected.txt:
- platform/ios/fast/css/text-overflow-input-expected.txt:
- platform/ios/fast/css/text-transform-select-expected.txt:
- platform/ios/fast/dom/HTMLTableColElement/resize-table-using-col-width-expected.txt:
- platform/ios/fast/dom/HTMLTextAreaElement/reset-textarea-expected.txt:
- platform/ios/fast/dynamic/positioned-movement-with-positioned-children-expected.txt:
- platform/ios/fast/events/context-no-deselect-expected.txt:
- platform/ios/fast/forms/001-expected.txt:
- platform/ios/fast/forms/003-expected.txt:
- platform/ios/fast/forms/004-expected.txt:
- platform/ios/fast/forms/auto-fill-button/input-auto-fill-button-expected.txt:
- platform/ios/fast/forms/auto-fill-button/input-contacts-auto-fill-button-expected.txt:
- platform/ios/fast/forms/auto-fill-button/input-strong-password-auto-fill-button-expected.txt:
- platform/ios/fast/forms/basic-inputs-expected.txt:
- platform/ios/fast/forms/basic-selects-expected.txt:
- platform/ios/fast/forms/basic-textareas-expected.txt:
- platform/ios/fast/forms/blankbuttons-expected.txt:
- platform/ios/fast/forms/box-shadow-override-expected.txt:
- platform/ios/fast/forms/button-align-expected.txt:
- platform/ios/fast/forms/button-cannot-be-nested-expected.txt:
- platform/ios/fast/forms/button-generated-content-expected.txt:
- platform/ios/fast/forms/button-positioned-expected.txt:
- platform/ios/fast/forms/button-sizes-expected.txt:
- platform/ios/fast/forms/button-style-color-expected.txt:
- platform/ios/fast/forms/button-table-styles-expected.txt:
- platform/ios/fast/forms/button-text-transform-expected.txt:
- platform/ios/fast/forms/button-white-space-expected.txt:
- platform/ios/fast/forms/control-clip-expected.txt:
- platform/ios/fast/forms/control-clip-overflow-expected.txt:
- platform/ios/fast/forms/control-restrict-line-height-expected.txt:
- platform/ios/fast/forms/disabled-select-change-index-expected.txt:
- platform/ios/fast/forms/encoding-test-expected.txt:
- platform/ios/fast/forms/fieldset-align-expected.txt:
- platform/ios/fast/forms/file/file-input-direction-expected.txt:
- platform/ios/fast/forms/file/file-input-disabled-expected.txt:
- platform/ios/fast/forms/floating-textfield-relayout-expected.txt:
- platform/ios/fast/forms/form-element-geometry-expected.txt:
- platform/ios/fast/forms/hidden-listbox-expected.txt:
- platform/ios/fast/forms/input-align-expected.txt:
- platform/ios/fast/forms/input-appearance-bkcolor-expected.txt:
- platform/ios/fast/forms/input-appearance-default-bkcolor-expected.txt:
- platform/ios/fast/forms/input-appearance-disabled-expected.txt:
- platform/ios/fast/forms/input-appearance-focus-expected.txt:
- platform/ios/fast/forms/input-appearance-height-expected.txt:
- platform/ios/fast/forms/input-appearance-selection-expected.txt:
- platform/ios/fast/forms/input-appearance-visibility-expected.txt:
- platform/ios/fast/forms/input-appearance-width-expected.txt:
- platform/ios/fast/forms/input-button-sizes-expected.txt:
- platform/ios/fast/forms/input-disabled-color-expected.txt:
- platform/ios/fast/forms/input-double-click-selection-gap-bug-expected.txt:
- platform/ios/fast/forms/input-field-text-truncated-expected.txt:
- platform/ios/fast/forms/input-placeholder-visibility-1-expected.txt:
- platform/ios/fast/forms/input-placeholder-visibility-3-expected.txt:
- platform/ios/fast/forms/input-spaces-expected.txt:
- platform/ios/fast/forms/input-table-expected.txt:
- platform/ios/fast/forms/input-text-click-inside-expected.txt:
- platform/ios/fast/forms/input-text-scroll-left-on-blur-expected.txt:
- platform/ios/fast/forms/input-text-self-emptying-click-expected.txt:
- platform/ios/fast/forms/input-type-text-min-width-expected.txt:
- platform/ios/fast/forms/input-value-expected.txt:
- platform/ios/fast/forms/input-width-expected.txt:
- platform/ios/fast/forms/listbox-bidi-align-expected.txt:
- platform/ios/fast/forms/listbox-hit-test-zoomed-expected.txt:
- platform/ios/fast/forms/listbox-scrollbar-incremental-load-expected.txt:
- platform/ios/fast/forms/listbox-width-change-expected.txt:
- platform/ios/fast/forms/menulist-clip-expected.txt:
- platform/ios/fast/forms/menulist-deselect-update-expected.txt:
- platform/ios/fast/forms/menulist-narrow-width-expected.txt:
- platform/ios/fast/forms/menulist-no-overflow-expected.txt:
- platform/ios/fast/forms/menulist-option-wrap-expected.txt:
- platform/ios/fast/forms/menulist-separator-painting-expected.txt:
- platform/ios/fast/forms/menulist-style-color-expected.txt:
- platform/ios/fast/forms/menulist-width-change-expected.txt:
- platform/ios/fast/forms/minWidthPercent-expected.txt:
- platform/ios/fast/forms/number/number-appearance-rtl-expected.txt:
- platform/ios/fast/forms/number/number-appearance-spinbutton-disabled-readonly-expected.txt:
- platform/ios/fast/forms/number/number-appearance-spinbutton-layer-expected.txt:
- platform/ios/fast/forms/option-script-expected.txt:
- platform/ios/fast/forms/option-strip-whitespace-expected.txt:
- platform/ios/fast/forms/option-text-clip-expected.txt:
- platform/ios/fast/forms/placeholder-pseudo-style-expected.txt:
- platform/ios/fast/forms/plaintext-mode-2-expected.txt:
- platform/ios/fast/forms/search-cancel-button-style-sharing-expected.txt:
- platform/ios/fast/forms/search-display-none-cancel-button-expected.txt:
- platform/ios/fast/forms/search-input-rtl-expected.txt:
- platform/ios/fast/forms/select-align-expected.txt:
- platform/ios/fast/forms/select-baseline-expected.txt:
- platform/ios/fast/forms/select-block-background-expected.txt:
- platform/ios/fast/forms/select-change-listbox-size-expected.txt:
- platform/ios/fast/forms/select-change-listbox-to-popup-expected.txt:
- platform/ios/fast/forms/select-change-popup-to-listbox-expected.txt:
- platform/ios/fast/forms/select-dirty-parent-pref-widths-expected.txt:
- platform/ios/fast/forms/select-disabled-appearance-expected.txt:
- platform/ios/fast/forms/select-element-focus-ring-expected.txt:
- platform/ios/fast/forms/select-empty-option-height-expected.txt:
- platform/ios/fast/forms/select-initial-position-expected.txt:
- platform/ios/fast/forms/select-item-background-clip-expected.txt:
- platform/ios/fast/forms/select-list-box-with-height-expected.txt:
- platform/ios/fast/forms/select-non-native-rendering-direction-expected.txt:
- platform/ios/fast/forms/select-selected-expected.txt:
- platform/ios/fast/forms/select-style-expected.txt:
- platform/ios/fast/forms/select-visual-hebrew-expected.txt:
- platform/ios/fast/forms/select-writing-direction-natural-expected.txt:
- platform/ios/fast/forms/select/optgroup-rendering-expected.txt:
- platform/ios/fast/forms/selectlist-minsize-expected.txt:
- platform/ios/fast/forms/stuff-on-my-optgroup-expected.txt:
- platform/ios/fast/forms/tabbing-input-iframe-expected.txt:
- platform/ios/fast/forms/textarea-placeholder-pseudo-style-expected.txt:
- platform/ios/fast/forms/textarea-scrollbar-expected.txt:
- platform/ios/fast/forms/textarea-scrolled-type-expected.txt:
- platform/ios/fast/forms/textarea-width-expected.txt:
- platform/ios/fast/forms/textfield-focus-ring-expected.txt:
- platform/ios/fast/forms/textfield-overflow-expected.txt:
- platform/ios/fast/frames/take-focus-from-iframe-expected.txt:
- platform/ios/fast/html/details-no-summary4-expected.txt:
- platform/ios/fast/html/details-open-javascript-expected.txt:
- platform/ios/fast/html/details-open2-expected.txt:
- platform/ios/fast/html/details-open4-expected.txt:
- platform/ios/fast/html/details-replace-summary-child-expected.txt:
- platform/ios/fast/html/details-replace-text-expected.txt:
- platform/ios/fast/html/keygen-expected.txt:
- platform/ios/fast/invalid/014-expected.txt:
- platform/ios/fast/lists/dynamic-marker-crash-expected.txt:
- platform/ios/fast/overflow/overflow-x-y-expected.txt:
- platform/ios/fast/replaced/replaced-breaking-expected.txt:
- platform/ios/fast/replaced/replaced-breaking-mixture-expected.txt:
- platform/ios/fast/replaced/three-selects-break-expected.txt:
- platform/ios/fast/replaced/width100percent-button-expected.txt:
- platform/ios/fast/replaced/width100percent-menulist-expected.txt:
- platform/ios/fast/replaced/width100percent-searchfield-expected.txt:
- platform/ios/fast/replaced/width100percent-textarea-expected.txt:
- platform/ios/fast/replaced/width100percent-textfield-expected.txt:
- platform/ios/fast/selectors/064-expected.txt:
- platform/ios/fast/table/append-cells2-expected.txt:
- platform/ios/fast/table/colspanMinWidth-expected.txt:
- platform/ios/fast/table/remove-td-display-none-expected.txt:
- platform/ios/fast/table/spanOverlapRepaint-expected.txt:
- platform/ios/fast/table/text-field-baseline-expected.txt:
- platform/ios/fast/text/drawBidiText-expected.txt:
- platform/ios/fast/text/international/bidi-listbox-atsui-expected.txt:
- platform/ios/fast/text/international/bidi-listbox-expected.txt:
- platform/ios/fast/text/international/bidi-menulist-expected.txt:
- platform/ios/fast/text/international/hindi-spacing-expected.txt:
- platform/ios/fast/text/international/pop-up-button-text-alignment-and-direction-expected.txt:
- platform/ios/imported/w3c/web-platform-tests/selection/selection-select-all-move-input-crash-expected.txt:
- platform/ios/svg/custom/foreign-object-skew-expected.txt:
- platform/ios/svg/custom/inline-svg-in-xhtml-expected.txt:
- platform/ios/svg/hixie/mixed/003-expected.txt:
- platform/ios/tables/mozilla/bugs/45621-expected.txt:
- platform/ios/tables/mozilla/bugs/bug1188-expected.txt:
- platform/ios/tables/mozilla/bugs/bug12384-expected.txt:
- platform/ios/tables/mozilla/bugs/bug18359-expected.txt:
- platform/ios/tables/mozilla/bugs/bug194024-expected.txt:
- platform/ios/tables/mozilla/bugs/bug24200-expected.txt:
- platform/ios/tables/mozilla/bugs/bug2479-2-expected.txt:
- platform/ios/tables/mozilla/bugs/bug2479-3-expected.txt:
- platform/ios/tables/mozilla/bugs/bug2479-4-expected.txt:
- platform/ios/tables/mozilla/bugs/bug26178-expected.txt:
- platform/ios/tables/mozilla/bugs/bug28928-expected.txt:
- platform/ios/tables/mozilla/bugs/bug29326-expected.txt:
- platform/ios/tables/mozilla/bugs/bug30559-expected.txt:
- platform/ios/tables/mozilla/bugs/bug30692-expected.txt:
- platform/ios/tables/mozilla/bugs/bug33855-expected.txt:
- platform/ios/tables/mozilla/bugs/bug4382-expected.txt:
- platform/ios/tables/mozilla/bugs/bug44505-expected.txt:
- platform/ios/tables/mozilla/bugs/bug4527-expected.txt:
- platform/ios/tables/mozilla/bugs/bug46368-1-expected.txt:
- platform/ios/tables/mozilla/bugs/bug46368-2-expected.txt:
- platform/ios/tables/mozilla/bugs/bug51037-expected.txt:
- platform/ios/tables/mozilla/bugs/bug51727-expected.txt:
- platform/ios/tables/mozilla/bugs/bug52505-expected.txt:
- platform/ios/tables/mozilla/bugs/bug52506-expected.txt:
- platform/ios/tables/mozilla/bugs/bug55545-expected.txt:
- platform/ios/tables/mozilla/bugs/bug59354-expected.txt:
- platform/ios/tables/mozilla/bugs/bug60749-expected.txt:
- platform/ios/tables/mozilla/bugs/bug68912-expected.txt:
- platform/ios/tables/mozilla/bugs/bug7342-expected.txt:
- platform/ios/tables/mozilla/bugs/bug92647-2-expected.txt:
- platform/ios/tables/mozilla/bugs/bug96334-expected.txt:
- platform/ios/tables/mozilla/bugs/bug99948-expected.txt:
- platform/ios/tables/mozilla/collapsing_borders/bug41262-4-expected.txt:
- platform/ios/tables/mozilla/core/margins-expected.txt:
- platform/ios/tables/mozilla/dom/tableDom-expected.txt:
- platform/ios/tables/mozilla/other/move_row-expected.txt:
- platform/ios/tables/mozilla_expected_failures/bugs/bug2479-5-expected.txt:
- platform/ios/tables/mozilla_expected_failures/bugs/bug58402-2-expected.txt:
- platform/ios/tables/mozilla_expected_failures/bugs/bug92647-1-expected.txt:
- platform/ios/tables/mozilla_expected_failures/collapsing_borders/bug41262-5-expected.txt:
- platform/ios/tables/mozilla_expected_failures/collapsing_borders/bug41262-6-expected.txt:
- platform/ios/transforms/2d/zoom-menulist-expected.txt:
- platform/ios/transforms/3d/general/perspective-non-layer-expected.txt:
- 9:06 AM Changeset in webkit [275522] by
-
- 2 edits in trunk/Source/WebKit
Remove definition used for staging change with internal repo
https://bugs.webkit.org/show_bug.cgi?id=224196
- Shared/Cocoa/DefaultWebBrowserChecks.h:
This definition was used to help me land the patch without breaking the internal build.
Now that I've used it to adapt to the open source changes, I can remove it.
- 9:05 AM Changeset in webkit [275521] by
-
- 3 edits2 adds in trunk
Handle OOM in ScriptExecutionContext::reportUnhandledPromiseRejection
https://bugs.webkit.org/show_bug.cgi?id=223777
<rdar://66271491>
Reviewed by Yusuke Suzuki.
Source/WebCore:
It's possible to fail to allocate the error message in ScriptExecutionContext::reportUnhandledPromiseRejection,
in which case we should report an OOM exception instead of crashing.
Test: js/Promise-reject-large-string.html
- dom/ScriptExecutionContext.cpp:
(WebCore::ScriptExecutionContext::reportUnhandledPromiseRejection):
LayoutTests:
- js/dom/Promise-reject-large-string-expected.txt: Added.
- js/dom/Promise-reject-large-string.html: Added.
- 9:00 AM Changeset in webkit [275520] by
-
- 2 edits in trunk/Source/WebKit
[iOS] Update UIDatePickerStyle for <input type=time>
https://bugs.webkit.org/show_bug.cgi?id=224187
<rdar://problem/76219729>
Reviewed by Wenson Hsieh.
- UIProcess/ios/forms/WKDateTimeInputControl.mm:
(-[WKDateTimePicker datePickerStyle]):
Use UIDatePickerStyleWheels rather than UIDatePickerStyleInline, since
the inline style now requires an additional tap to present the editable
picker view.
- 8:56 AM Changeset in webkit [275519] by
-
- 4 edits in trunk/Source
Web Inspector: Grid overlay does not honor writing modes and RTL layout direction.
https://bugs.webkit.org/show_bug.cgi?id=224127
Reviewed by BJ Burg.
Source/WebCore:
Grid overlays did not previous honor writing modes and RTL layout direction correctly. The underlying math was
correct, but the 'origin' of the element's grid, and the direction in which rows and columns increased, was not
handled correctly. This patch resolves this by taking writing mode and direction into account when calculating
row/column line positions as well as correctly orienting layout label arrows based on the current writing
mode/direction.
Area names have been moved to the center of their respective areas, which both helps to make sure the label is
within the area for all writing modes/direction/transformation, as well as improved legibility on smaller grids
where area names were previously behind other labels.
- inspector/InspectorOverlay.cpp:
(WebCore::InspectorOverlay::backgroundPathForLayoutLabel):
(WebCore::InspectorOverlay::drawLayoutLabel):
(WebCore::InspectorOverlay::drawGridOverlay):
backgroundPathForLayoutLabel
,drawLayoutLabel
, anddrawGridOverlay
now interpret theNone
arrow direction
as using the label's location as its center, not top-left.
(WebCore::authoredGridTrackSizes):
- Drive-by removal of extra whitespace.
(WebCore::InspectorOverlay::buildGridOverlay):
- Use the element's computed style to determine writing mode and direction (which takes into account the
dir
attribute). - Adjust columnLineAt and rowLineAt calculations based on writing mode and direction.
- Adjust all arrow directions and positions based on writing mode and direction.
Source/WebKit:
- UIProcess/Inspector/ios/WKInspectorHighlightView.mm:
(createLayoutLabelLayer):
- WebCore::backgroundPathForLayoutLabel now treats the
None
arrow direction as being centered on the label's
location.
- 8:41 AM Changeset in webkit [275518] by
-
- 2 edits in trunk/Source/WebCore
[PlayStation] Fix build of DiagnosticLoggingDomain.h
https://bugs.webkit.org/show_bug.cgi?id=224205
Reviewed by Don Olmstead.
No new tests, build fix only.
- page/DiagnosticLoggingDomain.h: Include wtf/EnumTraits.h
- 7:58 AM Changeset in webkit [275517] by
-
- 5 edits in trunk
[WPE] Enable Cog's GTK4 backend
https://bugs.webkit.org/show_bug.cgi?id=224099
Patch by Philippe Normand <pnormand@igalia.com> on 2021-04-06
Reviewed by Adrian Perez de Castro.
Source/WebKit:
- wpe/wpe-webkit-uninstalled.pc.in: Fix paths to derived sources.
Tools:
The Cog GTK4 platform plugin is more suitable for developer builds on desktop, compared to
the fdo backend which provides no window decorations on most Wayland compositors.
- PlatformWPE.cmake:
- Scripts/webkitpy/port/wpe.py:
(WPEPort.run_minibrowser):
- 7:40 AM WebKitGTK/2.32.x edited by
- (diff)
- 7:37 AM Changeset in webkit [275516] by
-
- 6 edits in trunk
REGRESSION(r274358) [GStreamer] http/tests/images/mp4-partial-load.html is flaky crashing inside GStreamer
https://bugs.webkit.org/show_bug.cgi?id=223636
Patch by Philippe Normand <pnormand@igalia.com> on 2021-04-06
Reviewed by Carlos Alberto Lopez Perez.
Source/WebCore:
Ensure the GStreamer messages are always processed synchronously, even when the handler is
called from another thread. Without blocking in the latter case, the select-streams event
might be sent to decodebin too late. It has to be sent as a synchronous reaction to the
stream-collection message.
- platform/graphics/gstreamer/ImageDecoderGStreamer.cpp:
(WebCore::ImageDecoderGStreamer::InnerDecoder::handleMessage):
(WebCore::ImageDecoderGStreamer::InnerDecoder::preparePipeline):
- platform/graphics/gstreamer/ImageDecoderGStreamer.h:
LayoutTests:
- platform/glib/TestExpectations: Update tests expectations.
- platform/gtk/TestExpectations: Ditto.
- 7:03 AM WebKitGTK/2.32.x edited by
- (diff)
- 6:55 AM Changeset in webkit [275515] by
-
- 156 edits1 add1 delete in trunk
[LFC][Integration] Enable inline box support (RenderInline)
https://bugs.webkit.org/show_bug.cgi?id=220148
<rdar://problem/72768785>
Reviewed by Antti Koivisto.
LayoutTests/imported/w3c:
- web-platform-tests/css/css-flexbox/orthogonal-flex-item-crash-expected.txt:
- web-platform-tests/css/css-text/word-break/word-break-break-all-inline-007-expected.html:
- web-platform-tests/css/css-text/word-break/word-break-break-all-inline-007.html:
- web-platform-tests/html/dom/elements/the-innertext-idl-attribute/getter-expected.txt:
- web-platform-tests/innerText/getter-expected.txt:
Source/WebCore:
Use the modern line layout for content like <span>content inside an inline box</span>.
- layout/integration/LayoutIntegrationCoverage.cpp:
Tools:
- TestWebKitAPI/Tests/ios/AccessibilityTestsIOS.mm:
(TestWebKitAPI::TEST):
LayoutTests:
- correctness progressions
- output progressions
- 1px rounding diffs
- misc
- editing/execCommand/delete-hidden-crash.html:
- fast/css/empty-inline-003-quirksmode-expected.txt:
- fast/css3-text/css3-text-decoration/text-underline-position/underline-visual-overflow-with-subpixel-position-expected.txt:
- fast/css3-text/css3-text-decoration/text-underline-position/underline-visual-overflow-with-subpixel-position.html:
- fast/invalid/018-expected.txt:
- fast/text/line-break-between-text-nodes-latin1-expected.html:
- imported/blink/fast/css/first-letter-all-inherit-td-crash-expected.html: Removed.
- imported/blink/fast/css/first-letter-all-inherit-td-crash-expected.txt: Added.
- imported/blink/fast/css/first-letter-all-inherit-td-crash.html:
- platform/ios-wk2/css2.1/t100801-c544-valgn-03-d-agi-expected.txt:
- platform/ios-wk2/imported/w3c/web-platform-tests/css/css-flexbox/orthogonal-flex-item-crash-expected.txt:
- platform/ios/css1/box_properties/border-expected.txt:
- platform/ios/css1/box_properties/width-expected.txt:
- platform/ios/css1/text_properties/text_decoration-expected.txt:
- platform/ios/css1/text_properties/vertical_align-expected.txt:
- platform/ios/css1/text_properties/word_spacing-expected.txt:
- platform/ios/css2.1/t0803-c5505-mrgn-00-b-ag-expected.txt:
- platform/ios/css2.1/t100801-c544-valgn-03-d-agi-expected.txt:
- platform/ios/fast/block/basic/014-expected.txt:
- platform/ios/fast/block/margin-collapse/block-inside-inline/001-expected.txt:
- platform/ios/fast/block/margin-collapse/block-inside-inline/005-expected.txt:
- platform/ios/fast/block/positioning/057-expected.txt:
- platform/ios/fast/body-propagation/background-image/010-expected.txt:
- platform/ios/fast/body-propagation/background-image/010-xhtml-expected.txt:
- platform/ios/fast/css-generated-content/after-duplicated-after-split-expected.txt:
- platform/ios/fast/css/child-style-can-override-visited-style-expected.txt:
- platform/ios/fast/css/empty-inline-003-quirksmode-expected.txt:
- platform/ios/fast/css/inline-element-line-break-expected.txt:
- platform/ios/fast/css/word-space-extra-expected.txt:
- platform/ios/fast/dom/HTMLProgressElement/progress-element-expected.txt:
- platform/ios/fast/forms/select-change-listbox-size-expected.txt:
- platform/ios/fast/images/image-map-anchor-children-expected.txt:
- platform/ios/fast/inline-block/003-expected.txt:
- platform/ios/fast/inline/002-expected.txt:
- platform/ios/fast/inline/drawStyledEmptyInlines-expected.txt:
- platform/ios/fast/invalid/003-expected.txt:
- platform/ios/fast/lists/marker-before-empty-inline-expected.txt:
- platform/ios/fast/selectors/visited-descendant-expected.txt:
- platform/ios/fast/table/border-collapsing/004-expected.txt:
- platform/ios/fast/table/frame-and-rules-expected.txt:
- platform/ios/fast/table/table-display-types-strict-expected.txt:
- platform/ios/fast/text/basic/007-expected.txt:
- platform/ios/fast/text/basic/012-expected.txt:
- platform/ios/fast/text/whitespace/018-expected.txt:
- platform/ios/fast/text/whitespace/span-in-word-space-causes-overflow-expected.txt:
- platform/ios/fonts/sans-serif-expected.txt:
- platform/ios/fonts/serif-expected.txt:
- platform/ios/svg/custom/svg-fonts-in-html-expected.txt:
- platform/ios/svg/custom/svg-fonts-word-spacing-expected.txt:
- platform/ios/svg/hixie/processing-model/003-expected.txt:
- platform/ios/svg/hixie/processing-model/004-expected.txt:
- platform/ios/tables/mozilla/bugs/adforce_imgis_com-expected.txt:
- platform/ios/tables/mozilla/bugs/bug113235-1-expected.txt:
- platform/ios/tables/mozilla/bugs/bug113235-2-expected.txt:
- platform/ios/tables/mozilla/bugs/bug113235-3-expected.txt:
- platform/ios/tables/mozilla/bugs/bug113424-expected.txt:
- platform/ios/tables/mozilla/bugs/bug1188-expected.txt:
- platform/ios/tables/mozilla/bugs/bug126742-expected.txt:
- platform/ios/tables/mozilla/bugs/bug1318-expected.txt:
- platform/ios/tables/mozilla/bugs/bug14323-expected.txt:
- platform/ios/tables/mozilla/bugs/bug18359-expected.txt:
- platform/ios/tables/mozilla/bugs/bug22513-expected.txt:
- platform/ios/tables/mozilla/bugs/bug2267-expected.txt:
- platform/ios/tables/mozilla/bugs/bug38916-expected.txt:
- platform/ios/tables/mozilla/bugs/bug4527-expected.txt:
- platform/ios/tables/mozilla/bugs/bug4849-2-expected.txt:
- platform/ios/tables/mozilla/bugs/bug57300-expected.txt:
- platform/ios/tables/mozilla/bugs/bug59354-expected.txt:
- platform/ios/tables/mozilla/bugs/bug7342-expected.txt:
- platform/ios/tables/mozilla/core/bloomberg-expected.txt:
- platform/ios/tables/mozilla/other/wa_table_thtd_rowspan-expected.txt:
- platform/ios/tables/mozilla/other/wa_table_tr_align-expected.txt:
- platform/ios/tables/mozilla_expected_failures/bugs/bug89315-expected.txt:
- platform/mac-catalina/tables/mozilla/bugs/bug18359-expected.txt:
- platform/mac-catalina/tables/mozilla/bugs/bug7342-expected.txt:
- platform/mac-catalina/tables/mozilla/other/wa_table_thtd_rowspan-expected.txt:
- platform/mac-catalina/tables/mozilla/other/wa_table_tr_align-expected.txt:
- platform/mac-wk1/fast/inline-block/003-expected.txt:
- platform/mac/css1/box_properties/width-expected.txt:
- platform/mac/css1/text_properties/vertical_align-expected.txt:
- platform/mac/css1/text_properties/word_spacing-expected.txt:
- platform/mac/css2.1/t100801-c544-valgn-03-d-agi-expected.txt:
- platform/mac/editing/selection/previous-line-position-expected.txt:
- platform/mac/fast/block/basic/014-expected.txt:
- platform/mac/fast/block/margin-collapse/block-inside-inline/001-expected.txt:
- platform/mac/fast/block/margin-collapse/block-inside-inline/005-expected.txt:
- platform/mac/fast/block/positioning/057-expected.txt:
- platform/mac/fast/css-generated-content/after-duplicated-after-split-expected.txt:
- platform/mac/fast/css/child-style-can-override-visited-style-expected.txt:
- platform/mac/fast/css/inline-element-line-break-expected.txt:
- platform/mac/fast/css/resize-corner-tracking-transformed-expected.txt:
- platform/mac/fast/css/word-space-extra-expected.txt:
- platform/mac/fast/dom/HTMLProgressElement/progress-element-expected.txt:
- platform/mac/fast/encoding/utf-16-big-endian-expected.txt:
- platform/mac/fast/encoding/utf-16-little-endian-expected.txt:
- platform/mac/fast/images/image-map-anchor-children-expected.txt:
- platform/mac/fast/inline-block/003-expected.txt:
- platform/mac/fast/inline/002-expected.txt:
- platform/mac/fast/inline/drawStyledEmptyInlines-expected.txt:
- platform/mac/fast/invalid/003-expected.txt:
- platform/mac/fast/invalid/missing-end-tag-expected.txt:
- platform/mac/fast/lists/marker-before-empty-inline-expected.txt:
- platform/mac/fast/parser/nofoo-tags-inside-paragraph-expected.txt:
- platform/mac/fast/parser/xhtml-alternate-entities-expected.txt:
- platform/mac/fast/selectors/visited-descendant-expected.txt:
- platform/mac/fast/table/frame-and-rules-expected.txt:
- platform/mac/fast/table/table-display-types-strict-expected.txt:
- platform/mac/fast/text/basic/007-expected.txt:
- platform/mac/fast/text/basic/012-expected.txt:
- platform/mac/fast/text/basic/generic-family-reset-expected.txt:
- platform/mac/fast/text/text-letter-spacing-expected.txt:
- platform/mac/fast/text/textIteratorNilRenderer-expected.txt:
- platform/mac/fast/text/wbr-expected.txt:
- platform/mac/fast/text/whitespace/018-expected.txt:
- platform/mac/fast/text/whitespace/span-in-word-space-causes-overflow-expected.txt:
- platform/mac/fonts/sans-serif-expected.txt:
- platform/mac/fonts/serif-expected.txt:
- platform/mac/svg/custom/svg-fonts-in-html-expected.txt:
- platform/mac/svg/custom/svg-fonts-word-spacing-expected.txt:
- platform/mac/svg/hixie/processing-model/003-expected.txt:
- platform/mac/svg/hixie/processing-model/004-expected.txt:
- platform/mac/tables/mozilla/bugs/adforce_imgis_com-expected.txt:
- platform/mac/tables/mozilla/bugs/bug113235-1-expected.txt:
- platform/mac/tables/mozilla/bugs/bug113235-2-expected.txt:
- platform/mac/tables/mozilla/bugs/bug113235-3-expected.txt:
- platform/mac/tables/mozilla/bugs/bug113424-expected.txt:
- platform/mac/tables/mozilla/bugs/bug1188-expected.txt:
- platform/mac/tables/mozilla/bugs/bug126742-expected.txt:
- platform/mac/tables/mozilla/bugs/bug1318-expected.txt:
- platform/mac/tables/mozilla/bugs/bug14323-expected.txt:
- platform/mac/tables/mozilla/bugs/bug16252-expected.txt:
- platform/mac/tables/mozilla/bugs/bug18359-expected.txt:
- platform/mac/tables/mozilla/bugs/bug22513-expected.txt:
- platform/mac/tables/mozilla/bugs/bug2267-expected.txt:
- platform/mac/tables/mozilla/bugs/bug38916-expected.txt:
- platform/mac/tables/mozilla/bugs/bug4527-expected.txt:
- platform/mac/tables/mozilla/bugs/bug4849-2-expected.txt:
- platform/mac/tables/mozilla/bugs/bug57300-expected.txt:
- platform/mac/tables/mozilla/bugs/bug57828-2-expected.txt:
- platform/mac/tables/mozilla/bugs/bug59354-expected.txt:
- platform/mac/tables/mozilla/bugs/bug60804-expected.txt:
- platform/mac/tables/mozilla/bugs/bug60807-expected.txt:
- platform/mac/tables/mozilla/bugs/bug7342-expected.txt:
- platform/mac/tables/mozilla/core/bloomberg-expected.txt:
- platform/mac/tables/mozilla/other/wa_table_thtd_rowspan-expected.txt:
- platform/mac/tables/mozilla/other/wa_table_tr_align-expected.txt:
- platform/mac/tables/mozilla_expected_failures/bugs/bug89315-expected.txt:
- 6:53 AM Changeset in webkit [275514] by
-
- 7 edits in trunk
[GStreamer][WebRTC] Audio is not played from an audio element when the srcObject object has unstarted video tracks
https://bugs.webkit.org/show_bug.cgi?id=209163
Patch by Philippe Normand <pnormand@igalia.com> on 2021-04-06
Reviewed by Xabier Rodriguez-Calvar.
Source/WebCore:
Ensure no MediaStream (active) video tracks can be added in a pipeline representing an <audio> element.
- platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
(WebCore::MediaPlayerPrivateGStreamer::sourceSetup):
(WebCore::MediaPlayerPrivateGStreamer::hasFirstSampleReachedSink const):
(WebCore::MediaPlayerPrivateGStreamer::videoSinkCapsChanged):
(WebCore::MediaPlayerPrivateGStreamer::playbackPosition const):
(WebCore::MediaPlayerPrivateGStreamer::updateTracks):
- platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:
- platform/mediastream/gstreamer/GStreamerMediaStreamSource.cpp:
(webkitMediaStreamSrcPostStreamCollection):
(webkitMediaStreamSrcSetStream):
- platform/mediastream/gstreamer/GStreamerMediaStreamSource.h:
LayoutTests:
- platform/glib/TestExpectations: Unflag now-passing test.
- 6:38 AM Changeset in webkit [275513] by
-
- 5 edits2 deletes in trunk/Tools
[GStreamer] Test harness should use a mock audio output device
https://bugs.webkit.org/show_bug.cgi?id=223888
Patch by Philippe Normand <pnormand@igalia.com> on 2021-04-06
Reviewed by Adrian Perez de Castro.
Prioritize the new fakeaudiosink over other platform sinks when running the layout and API
tests. Mute and volume handling will still be tested (mocked, actually) but no actual
rendering will be performed.
The pulseaudio "sanitizer" can't work with a pipewire-pulse server because dynamic module
(un)loading is heavily restricted in this new wrapper. Moreover relying on the default sinks
when running on desktop machines easily triggers unintended beeps when running the tests.
- Scripts/webkitpy/port/gtk.py:
(GtkPort.init):
(GtkPort.setup_test_run):
(GtkPort.setup_environ_for_server):
(GtkPort.clean_up_test_run): Deleted.
- Scripts/webkitpy/port/gtk_unittest.py:
(GtkPortTest):
(GtkPortTest.make_port): Deleted.
- Scripts/webkitpy/port/pulseaudio_sanitizer.py: Removed.
- Scripts/webkitpy/port/pulseaudio_sanitizer_mock.py: Removed.
- Scripts/webkitpy/port/wpe.py:
(WPEPort.setup_environ_for_server):
- Scripts/webkitpy/port/wpe_unittest.py:
(WPEPortTest):
(WPEPortTest.make_port): Deleted.
- 6:34 AM WebKitGTK/2.32.x edited by
- (diff)
- 6:30 AM Changeset in webkit [275512] by
-
- 2 edits in trunk/Source/WebCore
[GTK][GStreamer] Web Audio - Media element source - Audio is cracking.
https://bugs.webkit.org/show_bug.cgi?id=196293
Patch by Philippe Normand <pnormand@igalia.com> on 2021-04-06
Reviewed by Xabier Rodriguez-Calvar.
The provider client might request samples faster than the current clock speed, so this sink
should process buffers as fast as possible. The cracks were consequence of the audio sink of
the AudioDestination starving off.
- platform/audio/gstreamer/AudioSourceProviderGStreamer.cpp:
(WebCore::AudioSourceProviderGStreamer::handleNewDeinterleavePad):
- 6:25 AM Changeset in webkit [275511] by
-
- 4 edits in trunk/Source/WebCore
[GStreamer] Heap allocation exceptions
https://bugs.webkit.org/show_bug.cgi?id=224188
Patch by Philippe Normand <pnormand@igalia.com> on 2021-04-06
Reviewed by Xabier Rodriguez-Calvar.
The current GStreamer audio-related backends can't yet avoid heap allocations in the audio
thread, so we need exceptions for those cases.
- platform/audio/gstreamer/AudioSourceProviderGStreamer.cpp:
(WebCore::AudioSourceProviderGStreamer::provideInput):
- platform/graphics/gstreamer/GstAllocatorFastMalloc.cpp:
(gstMemoryFastMallocNew):
- platform/mediastream/gstreamer/RealtimeOutgoingAudioSourceLibWebRTC.cpp:
(WebCore::RealtimeOutgoingAudioSourceLibWebRTC::audioSamplesAvailable):
- 6:24 AM Changeset in webkit [275510] by
-
- 2 edits in trunk/Source/WebCore
[GStreamer][MediaStream] AudioSource triggering critical warnings
https://bugs.webkit.org/show_bug.cgi?id=224180
Patch by Philippe Normand <pnormand@igalia.com> on 2021-04-06
Reviewed by Xabier Rodriguez-Calvar.
Keep track of audio channel offsets and store them as metadata in audio buffers. This is
used by downstream elements such as the audio convert elements.
- Modules/webaudio/MediaStreamAudioSourceGStreamer.cpp:
(WebCore::copyBusData):
(WebCore::MediaStreamAudioSource::consumeAudio):
- 6:18 AM Changeset in webkit [275509] by
-
- 2 edits in trunk/Source/WebCore
[LFC][Integration] Disable LFC if paginated context has inline boxes
https://bugs.webkit.org/show_bug.cgi?id=224222
Reviewed by Zalan Bujtas.
There are no known problems with this combination but it is untested.
- layout/integration/LayoutIntegrationCoverage.cpp:
(WebCore::LayoutIntegration::canUseForChild):
Pass in the RenderBlockFlow and move the existing test requiring it here too.
(WebCore::LayoutIntegration::canUseForLineLayoutWithReason):
- 6:18 AM Changeset in webkit [275508] by
-
- 4 edits2 adds in trunk
CloneDeserializer should use ArrayBuffer::tryCreate
https://bugs.webkit.org/show_bug.cgi?id=224218
Reviewed by Antti Koivisto.
Source/WebCore:
Right now CloneDeserializer assumes that every ArrayBuffer allocation during
deserialization will succeed. This is silly since it's an array-like object.
It should call tryCreate and fail the deserialization instead.
Test: fast/dom/Window/post-message-large-array-buffer-should-not-crash.html
- bindings/js/SerializedScriptValue.cpp:
(WebCore::CloneDeserializer::readArrayBuffer):
LayoutTests:
This test was generated by a fuzzer so it allocates a large Array backing store
by doing Object.defineProperty on a large offset. That said, I chose to leave it
because it's sometimes useful to do things in different ways for testing.
Also, skip the test on windows because we seem to throw a stack overflow error.
Not sure why this happens but it's not super important that this particular
test runs on all ports as we're mostly trying to just unblock the fuzzer.
- fast/dom/Window/post-message-large-array-buffer-should-not-crash-expected.txt: Added.
- fast/dom/Window/post-message-large-array-buffer-should-not-crash.html: Added.
- platform/win/TestExpectations:
- 5:58 AM Changeset in webkit [275507] by
-
- 2 edits in trunk/LayoutTests
[GStreamer][MediaStream] Unreviewed micro-gardening
https://bugs.webkit.org/show_bug.cgi?id=224233
- platform/glib/TestExpectations:
- 5:13 AM Changeset in webkit [275506] by
-
- 4 edits in trunk/Tools
[resultsdbpy] Remove obsolete BuildbotEightURLFactory
https://bugs.webkit.org/show_bug.cgi?id=223796
Reviewed by Jonathan Bedard.
- Scripts/libraries/resultsdbpy/resultsdbpy/example/environment.py:
- Scripts/libraries/resultsdbpy/resultsdbpy/model/ci_context.py:
(BuildbotEightURLFactory): Deleted.
(BuildbotEightURLFactory.init): Deleted.
(BuildbotEightURLFactory.url): Deleted.
- Scripts/libraries/resultsdbpy/resultsdbpy/model/ci_context_unittest.py:
(URLFactoryTest.test_old_builder_url): Deleted.
(URLFactoryTest.test_old_worker_url): Deleted.
- 4:46 AM Changeset in webkit [275505] by
-
- 1 edit in trunk/LayoutTests/ChangeLog
WebGL conformance tests are missing files due to too widely matching .gitignore
https://bugs.webkit.org/show_bug.cgi?id=223988
Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2021-04-06
Reviewed by Alexey Proskuryakov.
Add the missing tests that were hidden by the .gitignore.
- webgl/1.0.x/conformance/ogles/GL/build/*: Added.
- webgl/2.0.y/conformance/ogles/GL/build/*: Added.
- webgl/resources/webgl_test_files/conformance/ogles/GL/build/*: Added.
- 4:25 AM Changeset in webkit [275504] by
-
- 2 edits in trunk/Source/WebCore
[PlayStation] Change mediaControlsLocalizedStrings to use unicode escapes
https://bugs.webkit.org/show_bug.cgi?id=224195
Reviewed by Yusuke Suzuki.
- en.lproj/mediaControlsLocalizedStrings.js:
Switch from literal smart quotes to unicode escapes.
- 4:22 AM Changeset in webkit [275503] by
-
- 2 edits1 add in trunk/Tools/buildstream
[Flatpak SDK] Enable high bit depth in libvpx
https://bugs.webkit.org/show_bug.cgi?id=224049
Patch by Philippe Normand <pnormand@igalia.com> on 2021-04-06
Reviewed by Adrian Perez de Castro.
10 and 12-bit formats are needed for profile 2 and 3 VP9 decoding.
- elements/freedesktop-sdk.bst:
- patches/fdo-0001-libvpx-Enable-high-bit-depth-support.patch: Added.
- 3:49 AM Changeset in webkit [275502] by
-
- 5 edits in trunk/Source/WebCore
Migrate layout ascents and descents to LayoutUnits instead of ints
https://bugs.webkit.org/show_bug.cgi?id=133040
Patch by Rob Buis <rbuis@igalia.com> on 2021-04-06
Reviewed by Zalan Bujtas.
Migrate layout ascents and descents to LayoutUnits instead of ints.
The actual ascent/descent values are still integral.
- rendering/InlineFlowBox.cpp:
(WebCore::InlineFlowBox::adjustMaxAscentAndDescent):
(WebCore::InlineFlowBox::computeLogicalBoxHeights):
- rendering/InlineFlowBox.h:
- rendering/RootInlineBox.cpp:
(WebCore::RootInlineBox::alignBoxesInBlockDirection):
(WebCore::setAscentAndDescent):
(WebCore::RootInlineBox::ascentAndDescentForBox const):
- rendering/RootInlineBox.h:
- 3:01 AM Changeset in webkit [275501] by
-
- 3 edits2 adds in trunk
IPC::decodeObject null dereference in decodeArrayInternal()
https://bugs.webkit.org/show_bug.cgi?id=224214
Patch by Ian Gilbert <iang@apple.com> on 2021-04-06
Reviewed by Ryosuke Niwa.
Add null pointer check to decodeArrayInternal.
Source/WebKit:
Test: ipc/decode-object-array-crash.html
- Shared/Cocoa/ArgumentCodersCocoa.mm:
(IPC::decodeArrayInternal):
LayoutTests:
- ipc/decode-object-array-crash-expected.txt: Added.
- ipc/decode-object-array-crash.html: Added.
- 2:59 AM Changeset in webkit [275500] by
-
- 3 edits in trunk/Source/WebCore
BidiContext caching is not thread-safe
https://bugs.webkit.org/show_bug.cgi?id=224179
Reviewed by Darin Adler.
Make BidiContext ThreadSafeRefCounted and make shared context creation
thread-safe. This is needed by OffscreenCanvas to use text in Workers.
No new tests, covered by existing tests.
- platform/text/BidiContext.cpp:
(WebCore::BidiContext::create):
- platform/text/BidiContext.h:
- 2:51 AM Changeset in webkit [275499] by
-
- 26 edits in trunk
Disable WebSQL in WebKitTestRunner
https://bugs.webkit.org/show_bug.cgi?id=224144
Reviewed by Sihui Liu.
Tools:
Disabled WebSQL in WebKitTestRunner.
- WebKitTestRunner/TestController.cpp:
(WTR::TestController::resetPreferencesToConsistentValues):
LayoutTests:
Skipped various WebSQL tests on WebKit2 and removed references to openDatabase in some tests.
- fast/dom/Window/resources/WindowProperties.js: Removed openDatabase from the list of properties to test.
- fast/dom/Window/window-function-frame-getter-precedence-expected.txt:
- fast/dom/Window/window-function-name-getter-precedence-expected.txt:
- fast/frames/resources/sandboxed-iframe-storage-allowed.html: Ditto.
- fast/frames/resources/sandboxed-iframe-storage-disallowed.html: Ditto.
- fast/frames/sandboxed-iframe-storage-expected.txt:
- http/tests/security/cross-frame-access-call-expected.txt:
- http/tests/security/cross-frame-access-call.html: Ditto.
- inspector/runtime/CommandLineAPI-inspect-expected.txt:
- inspector/runtime/CommandLineAPI-inspect.html: Ditto.
- js/dom/callback-function-with-handle-event-expected.txt:
- js/dom/callback-function-with-handle-event.html: Use requestAnimationFrame instead of openDatabase.
- js/dom/exceptions-thrown-in-callbacks-expected.txt:
- js/dom/exceptions-thrown-in-callbacks.html: Ditto and use geolocation.getCurrentLocation.
- platform/glib/TestExpectations: Removed entries under storage/websql since they're all skipped now.
- platform/gtk/TestExpectations: Ditto.
- platform/ios-wk2/TestExpectations: Ditto.
- platform/mac-wk1/TestExpectations: Moved flaky timeout expectation on a test here from mac-wk2.
- platform/mac-wk2/TestExpectations: Removed an entry to skip storage/websql as it's now skipped for all WK2 ports.
- platform/mac/TestExpectations: Removed flaky timeout expectation since this will force the test to run
in WebKitTestRunner, which isn't what we want to do.
- platform/wincairo/TestExpectations: Removed entries under storage/websql since they're all skipped now.
- platform/wk2/TestExpectations: Skip all the tests for WebSQL.
- platform/wpe/TestExpectations: Removed entries under storage/websql since they're all skipped now.
- 2:22 AM Changeset in webkit [275498] by
-
- 4 edits3 adds in trunk
Nullptr crash in EventPath::eventTargetRespectingTargetRules
https://bugs.webkit.org/show_bug.cgi?id=222718
Patch by Frédéric Wang <fwang@igalia.com> on 2021-04-06
Reviewed by Ryosuke Niwa.
Source/WebCore:
During executions of "undo" and "redo" commands, beforeinput and input events are dispatched
on root editable elements. It is however possible that these elements had been disconnected,
causing nullptr crash. This patch exits the command execution early if that's the case.
Test: editing/undo/undo-with-disconnected-editable-element-crash.html
- editing/CompositeEditCommand.cpp:
(WebCore::EditCommandComposition::areRootEditabledElementsConnected): Add helper function
to check whether m_startingRootEditableElement and m_endingRootEditableElement are still
connected.
(WebCore::EditCommandComposition::unapply): Exit early if root editable elements are no
longer connected. Put this after the layout update.
(WebCore::EditCommandComposition::reapply): Ditto.
- editing/CompositeEditCommand.h: Declare new helper function.
LayoutTests:
Add regression test.
- editing/undo/undo-with-disconnected-editable-element-crash-expected.txt: Added.
- editing/undo/undo-with-disconnected-editable-element-crash.html: Added.
- editing/undo/undo-with-disconnected-editable-element-crash.js: Added.
(runTests.window.parent.onwebkitanimationiteration):
(runTests):
- 2:00 AM Changeset in webkit [275497] by
-
- 6 edits in trunk/LayoutTests/imported/w3c
Resync web-platform-tests/css/css-sizing/aspect-ratio from upstream
https://bugs.webkit.org/show_bug.cgi?id=222266
Patch by Rob Buis <rbuis@igalia.com> on 2021-04-06
Reviewed by Manuel Rego Casasnovas.
Resync web-platform-tests/css/css-sizing/aspect-ratio from upstream 8837d4e994.
- web-platform-tests/css/css-sizing/aspect-ratio/flex-aspect-ratio-025.html:
- web-platform-tests/css/css-sizing/aspect-ratio/flex-aspect-ratio-026.html:
- web-platform-tests/css/css-sizing/aspect-ratio/replaced-element-003.html:
- web-platform-tests/css/css-sizing/aspect-ratio/replaced-element-dynamic-aspect-ratio.html:
- web-platform-tests/css/css-sizing/aspect-ratio/w3c-import.log:
- 1:54 AM Changeset in webkit [275496] by
-
- 2 edits in trunk/Source/WTF
Enable NSURLSession WebSocket code path by default
https://bugs.webkit.org/show_bug.cgi?id=224102
Reviewed by Alex Christensen.
- Scripts/Preferences/WebPreferencesExperimental.yaml:
- 1:39 AM Changeset in webkit [275495] by
-
- 2 edits in trunk/Source/WebCore
[css-grid] Initialize auto-repeat data in RenderStyle in applyInitialGridTemplate{Columns|Rows}
https://bugs.webkit.org/show_bug.cgi?id=222852
Reviewed by Antti Koivisto.
We should initialize the auto repeat data (like auto repeat tracks or the insertion point) whenever
applyInitialGridTemplateXXX is called. That method is normally called using different RenderStyle's
but under some circumstances it might be the same. For those cases we wouldn't like to end up with
obsolete data from a previous style resolution.
The same applies also to the applyInheritGridTemplateXXX calls. We're also removing a duplicate call
to setGridAutoRepeat{Row|Column}sInsertionPoint() that is not needed at all.
In order to have a single place with all the style properties affecting columns and rows, all the set
calls were moved to a macro that is used by all the apply{Initial|Inherit}GridTemplate{Columns|Rows}
methods. This would allow us to prevent eventual out-of-sync issues like this one.
- style/StyleBuilderCustom.h:
(WebCore::Style::BuilderCustom::applyInitialGridTemplateColumns):
(WebCore::Style::BuilderCustom::applyInheritGridTemplateColumns):
(WebCore::Style::BuilderCustom::applyInitialGridTemplateRows):
(WebCore::Style::BuilderCustom::applyInheritGridTemplateRows):
- 1:37 AM Changeset in webkit [275494] by
-
- 6 edits in trunk/Source/WebCore
Move synthesizedBaselineFromBorderBox to RenderBox
https://bugs.webkit.org/show_bug.cgi?id=224186
Patch by Rob Buis <rbuis@igalia.com> on 2021-04-06
Reviewed by Javier Fernandez.
Move synthesizedBaselineFromBorderBox to RenderBox since there are
various call sites using it.
- rendering/RenderBlockFlow.cpp:
(WebCore::RenderBlockFlow::inlineBlockBaseline const):
- rendering/RenderBox.cpp:
(WebCore::synthesizedBaselineFromBorderBox):
- rendering/RenderBox.h:
- rendering/RenderFlexibleBox.cpp:
(WebCore::synthesizedBaselineFromBorderBox): Deleted.
- rendering/RenderGrid.cpp:
(WebCore::synthesizedBaselineFromBorderBox): Deleted.
- 12:28 AM Changeset in webkit [275493] by
-
- 3 edits in trunk/Source/WebInspectorUI
Web Inspector: Layout sidebar grid overlay color swatch tooltip shouldn't include "switch format" hint
https://bugs.webkit.org/show_bug.cgi?id=223418
<rdar://problem/75825793>
Reviewed by BJ Burg.
- UserInterface/Views/CSSGridSection.js:
(WI.CSSGridSection.prototype.layout):
- UserInterface/Views/InlineSwatch.js:
(WI.InlineSwatch):
(WI.InlineSwatch.prototype.set shiftClickColorEnabled):
(WI.InlineSwatch.prototype._updateSwatch):
(WI.InlineSwatch.prototype._allowChangingColorFormats):
Apr 5, 2021:
- 9:49 PM Changeset in webkit [275492] by
-
- 2 edits in trunk/Source/WebKit
Allow the WebAuthn UI to inform users about BiometryLockout
https://bugs.webkit.org/show_bug.cgi?id=224124
<rdar://74815938>
Reviewed by Brent Fulgham.
- UIProcess/WebAuthentication/Cocoa/LocalService.mm:
(WebKit::LocalService::isAvailable):
The LocalService is still available within the BiometryLockout period.
- 9:31 PM Changeset in webkit [275491] by
-
- 8 edits in trunk/Source/WebKit
[macOS] Image preview context menu action should be shown conditionally
https://bugs.webkit.org/show_bug.cgi?id=224126
<rdar://problem/76162272>
Reviewed by Devin Rousso.
Add a page client hook to return whether or not the "reveal image" context menu item should be enabled, given
the image URL and decoded image bitmap; we then use this method to conditionally insert a context menu item for
revealing the image in context menu data.
- UIProcess/Cocoa/WebViewImpl.h:
- UIProcess/PageClient.h:
(WebKit::PageClient::computeCanRevealImage):
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::computeCanRevealImage):
- UIProcess/WebPageProxy.h:
- UIProcess/mac/PageClientImplMac.h:
- UIProcess/mac/PageClientImplMac.mm:
(WebKit::PageClientImpl::computeCanRevealImage):
- UIProcess/mac/WebContextMenuProxyMac.mm:
(WebKit::createMenuActionItem):
Pull logic for mapping a
WebContextMenuItemData
of typeActionType
orCheckableActionType
to a platform
NSMenuItem
out into a separate helper function. Use this helper ingetContextMenuItem
, as well as the
completion handler for the call tocomputeCanRevealImage
. Note that this also requires moving the
menuItemIdentifier
function up abovegetContextMenuFromItems
.
(WebKit::WebContextMenuProxyMac::getContextMenuFromItems):
Special case the
ContextMenuItemTagRevealImage
item; instead of adding this item to the context menu right
away, we hide it by default, and only reinsert it if the page client indicates that we require the item (via
computeCanRevealImage
).
(WebKit::WebContextMenuProxyMac::getContextMenuItem):
- 9:25 PM Changeset in webkit [275490] by
-
- 50 edits in trunk/Source
[JSC] Shrink some of Vectors in JSC
https://bugs.webkit.org/show_bug.cgi?id=224162
Reviewed by Simon Fraser.
Source/JavaScriptCore:
- Add XXXStatus::shrinkToFit to shrink underlying dynamic Vectors.
- Replace tierUpInLoopHierarchy's Vector with RefCountedArray since it is constructed-once-lookup-only data.
- Use MemoryCompactLookupOnlyRobinHoodHashSet for StringTables since this is constructed-once-lookup-only data. We also add MemoryCompactLookupOnlyRobinHoodHashSet support for CachedTypes.
- Use resizeToFit for StringSwitchJumpTables and SwitchJumpTables.
- JITStubRoutineSet's Vector should be shrunk.
- BlockDirectoryBits's Vector's initial size should be small.
- Make PolyProtoAccessChain RefCounted, and use RefCountedArray for its Vector<StructureID>. And remove PolyProtoAccessChain::clone. Just having Ref is enough since this is immutable data.
- Use RefCountedArray for UnlinkedFunctionExecutable's m_classFieldLocations.
- Use RefCountedArray for JSWebAssemblyInstance.
- bytecode/AccessCase.cpp:
(JSC::AccessCase::AccessCase):
(JSC::AccessCase::create):
(JSC::AccessCase::createTransition):
- bytecode/AccessCase.h:
(JSC::AccessCase::AccessCase): Deleted.
- bytecode/CallLinkInfo.cpp:
(JSC::CallLinkInfo::setFrameShuffleData):
- bytecode/CheckPrivateBrandStatus.cpp:
(JSC::CheckPrivateBrandStatus::shrinkToFit):
(JSC::CheckPrivateBrandStatus::computeForStubInfoWithoutExitSiteFeedback):
(JSC::CheckPrivateBrandStatus::merge):
- bytecode/CheckPrivateBrandStatus.h:
- bytecode/CodeBlock.cpp:
(JSC::CodeBlock::finishCreation):
- bytecode/DeleteByStatus.cpp:
(JSC::DeleteByStatus::shrinkToFit):
(JSC::DeleteByStatus::computeForStubInfoWithoutExitSiteFeedback):
(JSC::DeleteByStatus::merge):
- bytecode/DeleteByStatus.h:
- bytecode/GetByStatus.cpp:
(JSC::GetByStatus::shrinkToFit):
(JSC::GetByStatus::computeForStubInfoWithoutExitSiteFeedback):
(JSC::GetByStatus::computeFor):
(JSC::GetByStatus::merge):
- bytecode/GetByStatus.h:
- bytecode/GetterSetterAccessCase.cpp:
(JSC::GetterSetterAccessCase::GetterSetterAccessCase):
(JSC::GetterSetterAccessCase::create):
- bytecode/GetterSetterAccessCase.h:
- bytecode/InByIdStatus.cpp:
(JSC::InByIdStatus::shrinkToFit):
(JSC::InByIdStatus::computeForStubInfoWithoutExitSiteFeedback):
(JSC::InByIdStatus::merge):
- bytecode/InByIdStatus.h:
- bytecode/InstanceOfStatus.cpp:
(JSC::InstanceOfStatus::shrinkToFit):
(JSC::InstanceOfStatus::computeForStubInfo):
- bytecode/InstanceOfStatus.h:
- bytecode/IntrinsicGetterAccessCase.cpp:
(JSC::IntrinsicGetterAccessCase::IntrinsicGetterAccessCase):
(JSC::IntrinsicGetterAccessCase::create):
- bytecode/IntrinsicGetterAccessCase.h:
- bytecode/JumpTable.h:
- bytecode/PolyProtoAccessChain.cpp:
(JSC::PolyProtoAccessChain::tryCreate):
(JSC::PolyProtoAccessChain::create): Deleted.
- bytecode/PolyProtoAccessChain.h:
(JSC::PolyProtoAccessChain::clone): Deleted.
(JSC::PolyProtoAccessChain::chain const): Deleted.
(JSC::PolyProtoAccessChain::operator!= const): Deleted.
(JSC::PolyProtoAccessChain::forEach const): Deleted.
(JSC::PolyProtoAccessChain::slotBaseStructure const): Deleted.
- bytecode/PolymorphicAccess.cpp:
(JSC::PolymorphicAccess::visitWeak const):
(JSC::PolymorphicAccess::regenerate):
- bytecode/PolymorphicAccess.h:
- bytecode/ProxyableAccessCase.cpp:
(JSC::ProxyableAccessCase::ProxyableAccessCase):
(JSC::ProxyableAccessCase::create):
- bytecode/ProxyableAccessCase.h:
- bytecode/PutByIdStatus.cpp:
(JSC::PutByIdStatus::shrinkToFit):
(JSC::PutByIdStatus::computeForStubInfo):
(JSC::PutByIdStatus::computeFor):
(JSC::PutByIdStatus::merge):
- bytecode/PutByIdStatus.h:
- bytecode/SetPrivateBrandStatus.cpp:
(JSC::SetPrivateBrandStatus::shrinkToFit):
(JSC::SetPrivateBrandStatus::computeForStubInfoWithoutExitSiteFeedback):
(JSC::SetPrivateBrandStatus::merge):
- bytecode/SetPrivateBrandStatus.h:
- bytecode/UnlinkedCodeBlock.h:
- bytecode/UnlinkedFunctionExecutable.cpp:
(JSC::generateUnlinkedFunctionCodeBlock):
- bytecode/UnlinkedFunctionExecutable.h:
- dfg/DFGJITCode.h:
- dfg/DFGPlan.h:
(JSC::DFG::Plan::tierUpInLoopHierarchy):
- dfg/DFGTierUpCheckInjectionPhase.cpp:
(JSC::DFG::TierUpCheckInjectionPhase::run):
- heap/BlockDirectoryBits.h:
- heap/JITStubRoutineSet.cpp:
(JSC::JITStubRoutineSet::deleteUnmarkedJettisonedStubRoutines):
- jit/CallFrameShuffleData.h:
(JSC::CallFrameShuffleData::shrinkToFit):
- jit/GCAwareJITStubRoutine.h:
- jit/PolymorphicCallStubRoutine.h:
- jit/Repatch.cpp:
(JSC::tryCacheGetBy):
(JSC::tryCachePutByID):
(JSC::tryCacheInByID):
- parser/Parser.cpp:
(JSC::Parser<LexerType>::parseInner):
(JSC::Parser<LexerType>::parseClassFieldInitializerSourceElements):
- parser/Parser.h:
(JSC::Parser<LexerType>::parse):
(JSC::parse):
- runtime/CachedTypes.cpp:
(JSC::CachedFunctionExecutableRareData::encode):
(JSC::CachedFunctionExecutableRareData::decode const):
- runtime/VM.cpp:
(JSC::VM::popAllCheckpointOSRSideStateUntil):
- wasm/js/JSWebAssemblyInstance.cpp:
(JSC::JSWebAssemblyInstance::visitChildrenImpl):
- wasm/js/JSWebAssemblyInstance.h:
Source/WTF:
Add rbegin and rend to make RefCountedArray usable for Vector clients who use these features.
- wtf/RefCountedArray.h:
(WTF::RefCountedArray::begin):
(WTF::RefCountedArray::end):
(WTF::RefCountedArray::begin const):
(WTF::RefCountedArray::end const):
(WTF::RefCountedArray::rbegin):
(WTF::RefCountedArray::rend):
(WTF::RefCountedArray::rbegin const):
(WTF::RefCountedArray::rend const):
- 9:20 PM Changeset in webkit [275489] by
-
- 7 edits in branches/safari-612.1.10-branch/Source/ThirdParty/ANGLE
Cherry-pick r275476. rdar://problem/76250256
[METAL ANGLE] Stencil only formats being used as the depth attachment.
https://bugs.webkit.org/show_bug.cgi?id=224183
Patch by John Cunningham <johncunnigham@apple.com> on 2021-04-05
Reviewed by Jon Lee.
- src/compiler/translator/TranslatorMetalDirect/ProgramPrelude.cpp:
- src/compiler/translator/TranslatorMetalDirect/RewriteOutArgs.cpp: (sh::Rewriter::argAlreadyProcessed):
- src/libANGLE/renderer/metal/ContextMtl.mm: (rx::ContextMtl::setupDraw):
- src/libANGLE/renderer/metal/mtl_command_buffer.h:
- src/libANGLE/renderer/metal/mtl_command_buffer.mm: (rx::mtl::RenderCommandEncoder::reset): (rx::mtl::RenderCommandEncoder::setRenderPipelineState): (rx::mtl::RenderCommandEncoder::draw): (rx::mtl::RenderCommandEncoder::drawInstanced): (rx::mtl::RenderCommandEncoder::drawIndexed): (rx::mtl::RenderCommandEncoder::drawIndexedInstanced): (rx::mtl::RenderCommandEncoder::drawIndexedInstancedBaseVertex):
- src/libANGLE/renderer/metal/mtl_utils.mm: (rx::mtl::InitializeDepthStencilTextureContentsGPU):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@275476 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 9:18 PM Changeset in webkit [275488] by
-
- 3 edits in trunk/Source/WebCore
Wasted vector capacity in CSSSegmentedFontFace
https://bugs.webkit.org/show_bug.cgi?id=224167
Reviewed by Myles C. Maxfield.
Shrink FontRanges.m_ranges. This saves about 12KB on youtube.com.
- css/CSSSegmentedFontFace.cpp:
(WebCore::CSSSegmentedFontFace::fontRanges):
- platform/graphics/FontRanges.h:
(WebCore::FontRanges::shrinkToFit):
- 9:03 PM Changeset in webkit [275487] by
-
- 9 edits in trunk
REGRESSION(r267763) NetworkProcess never terminates
https://bugs.webkit.org/show_bug.cgi?id=224191
<rdar://problem/76124590>
Patch by Alex Christensen <achristensen@webkit.org> on 2021-04-05
Reviewed by Chris Dumez.
Source/WebKit:
Before r267763, when a WebProcessPool was deallocated, the NetworkProcess it owned was terminated.
Since then, once you start using a NetworkProcess, it will be kept until your app closes or it crashes.
To reclaim these resources in a way similar to how we did before, we now terminate the network process in two situations:
- If all WebsiteDataStores associated with it are deallocated. This happens if you have never used the default WKWebsiteDataStore.
- If all WebProcessPools are deallocated. This can still happen if you do use the default WKWebsiteDataStore, which is never deallocated.
Covered by API tests.
- UIProcess/API/Cocoa/WKWebsiteDataStore.mm:
(+[WKWebsiteDataStore _defaultNetworkProcessExists]):
- UIProcess/API/Cocoa/WKWebsiteDataStorePrivate.h:
- UIProcess/Network/NetworkProcessProxy.cpp:
(WebKit::NetworkProcessProxy::defaultNetworkProcessExists):
(WebKit::NetworkProcessProxy::removeSession):
- UIProcess/Network/NetworkProcessProxy.h:
- UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::~WebProcessPool):
Tools:
- TestWebKitAPI/Tests/WebKitCocoa/NetworkProcess.mm:
(TEST):
- 9:02 PM Changeset in webkit [275486] by
-
- 6 edits in trunk/Source/WebKit
Reduce crash inside getAuditToken
https://bugs.webkit.org/show_bug.cgi?id=224196
<rdar://74536285>
Patch by Alex Christensen <achristensen@webkit.org> on 2021-04-05
Reviewed by David Kilzer.
Something is crashing inside the call to getAuditToken, and I believe it is happening during teardown of the network process.
After many days of head scratching and many previous attempts at fixing this problem, it persists.
Since direct strategies at fixing this problem have failed, I now try something different.
Instead of calling getAuditToken at the beginning of every resource load to ask if the parent process has an entitlement,
I now call it only once per process. That should make things faster and less crashy. Otherwise no change in behavior.
- NetworkProcess/cocoa/NetworkSessionCocoa.mm:
(WebKit::activateSessionCleanup):
(WebKit::NetworkSessionCocoa::sessionWrapperForTask):
- Shared/Cocoa/DefaultWebBrowserChecks.h:
- Shared/Cocoa/DefaultWebBrowserChecks.mm:
(WebKit::doesParentProcessHaveITPEnabled):
(WebKit::isParentProcessAFullWebBrowser):
- WebProcess/WebAuthentication/WebAuthenticatorCoordinator.cpp:
(WebKit::WebCore::isWebBrowser):
- WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::isParentProcessAWebBrowser const):
- 8:19 PM Changeset in webkit [275485] by
-
- 19 edits in trunk/Source
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):
- 8:19 PM Changeset in webkit [275484] by
-
- 29 edits2 moves1 add in trunk
Resurrect Mac CMake build
https://bugs.webkit.org/show_bug.cgi?id=224084
Patch by Alex Christensen <achristensen@webkit.org> on 2021-04-05
Reviewed by Tim Horton.
.:
- Source/cmake/OptionsMac.cmake:
Source/JavaScriptCore:
- PlatformMac.cmake:
Source/ThirdParty/ANGLE:
- PlatformMac.cmake: Added.
Source/ThirdParty/libwebrtc:
- CMakeLists.txt:
Source/WebCore:
- PlatformMac.cmake:
- SourcesCocoa.txt:
- WebCore.xcodeproj/project.pbxproj:
- platform/mac/WebGLBlocklist.mm:
- platform/text/cocoa/LocalizedDateCache.h: Renamed from Source/WebCore/platform/text/ios/LocalizedDateCache.h.
- platform/text/cocoa/LocalizedDateCache.mm: Renamed from Source/WebCore/platform/text/ios/LocalizedDateCache.mm.
(WebCore::localizedDateCache):
(WebCore::_localeChanged):
(WebCore::LocalizedDateCache::LocalizedDateCache):
(WebCore::LocalizedDateCache::~LocalizedDateCache):
(WebCore::LocalizedDateCache::localeChanged):
(WebCore::LocalizedDateCache::formatterForDateType):
(WebCore::LocalizedDateCache::maximumWidthForDateType):
(WebCore::LocalizedDateCache::createFormatterForType):
(WebCore::LocalizedDateCache::calculateMaximumWidth):
- testing/cocoa/WebViewVisualIdentificationOverlay.mm:
Source/WebCore/PAL:
- pal/PlatformMac.cmake:
Source/WebKit:
- NetworkProcess/PrivateClickMeasurementNetworkLoader.cpp:
(WebKit::PrivateClickMeasurementNetworkLoader::didReceiveBuffer):
- PlatformMac.cmake:
- Shared/Cocoa/SandboxExtensionCocoa.mm:
- SourcesCocoa.txt:
- UIProcess/Media/MediaSessionCoordinatorProxyPrivate.h:
Source/WebKitLegacy:
- PlatformMac.cmake:
Source/WTF:
- wtf/PlatformMac.cmake:
Tools:
- TestWebKitAPI/PlatformMac.cmake:
- WebKitTestRunner/PlatformMac.cmake:
- 8:08 PM Changeset in webkit [275483] by
-
- 3 edits in trunk/Source/WebCore
Wasted vector capacity in SVGPathByteStream
https://bugs.webkit.org/show_bug.cgi?id=224165
Reviewed by Said Abou-Hallawa.
On youtube.com, about 50KB of vector capacity is wasted in SVGPathByteStream,
so shrink them after parsing.
- svg/SVGPathByteStream.h:
(WebCore::SVGPathByteStream::shrinkToFit):
- svg/SVGPathParser.cpp:
(WebCore::SVGPathParser::parseToByteStream):
- 7:46 PM Changeset in webkit [275482] by
-
- 2 edits in trunk
Document how to use logging in WebKit
https://bugs.webkit.org/show_bug.cgi?id=224152
Patch by Tyler Wilcock <Tyler Wilcock> on 2021-04-05
Reviewed by Simon Fraser.
Add documentation about how to use logging in WebKit.
- Introduction.md:
- 7:46 PM Changeset in webkit [275481] by
-
- 2 edits in trunk/Source/WebCore
Wasted vector capacity in CSSVariableData
https://bugs.webkit.org/show_bug.cgi?id=224164
Reviewed by Anders Carlsson.
Shrink m_tokens. This saves 2.7MB on youtube.com.
- css/CSSVariableData.cpp:
(WebCore::CSSVariableData::CSSVariableData):
- 7:36 PM Changeset in webkit [275480] by
-
- 13 edits in trunk
REGRESSION: ASSERTION FAILED: settings().textAutosizingEnabled() && settings().textAutosizingUsesIdempotentMode() on various tests
https://bugs.webkit.org/show_bug.cgi?id=209450
<rdar://problem/60799255>
Reviewed by Tim Horton.
Source/WebCore:
When running layout tests without idempotent text autosizing after layout tests with idempotent text autosizing
enabled, it's possible to get into a state where the text size adjustment timer (which is used to schedule
idempotent text autosizing style adjustments) is scheduled, but idempotent text autosizing is disabled before
the timer fires. This causes the assertion inresetIdempotentTextAutosizingIfNeeded
to fail, leading to a
debug assertion.
To prevent this, we simply add a client method to call out to WebPage to stop its idempotent text autosizing
timer when the idempotent text autosizing WebCore setting changes to disabled.
This fixes assertions on these four tests, which are normally run after fast/text-autosizing:
- fast/text/control-characters/visible-control-characters-1.html
- fast/text/firstline/001.html
- fast/text-indicator/text-indicator-empty-link.html
- fast/text/basic/001.html
- page/ChromeClient.h:
(WebCore::ChromeClient::textAutosizingUsesIdempotentModeChanged):
Add the new chrome client hook (see WebKit2 change for more details).
- page/SettingsBase.cpp:
(WebCore::SettingsBase::textAutosizingUsesIdempotentModeChanged):
Replace the existing settings change handler (
setNeedsRecalcStyleInAllFrames
) with a custom change handler
(textAutosizingUsesIdempotentModeChanged
) that invokes the client hook above, in addition to flagging all
frames for a style recalc.
- page/SettingsBase.h:
Source/WebKit:
See WebCore for more details.
- WebProcess/WebCoreSupport/WebChromeClient.cpp:
(WebKit::WebChromeClient::textAutosizingUsesIdempotentModeChanged):
- WebProcess/WebCoreSupport/WebChromeClient.h:
- WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::textAutosizingUsesIdempotentModeChanged):
Stop the idempotent text autosizing recomputation timer (
m_textAutoSizingAdjustmentTimer
) when idempotent text
autosizing is disabled.
- WebProcess/WebPage/WebPage.h:
Source/WTF:
Replace the call to
setNeedsRecalcStyleInAllFrames
withtextAutosizingUsesIdempotentModeChanged
when
changing whether idempotent text autosizing is enabled.
- Scripts/Preferences/WebPreferencesInternal.yaml:
LayoutTests:
Remove crashing expectations for several tests that previously hit this assertion, due to running immediately
after some layout tests infast/text-autosizing
that enable idempotent text autosizing.
- platform/ios-wk2/TestExpectations:
- 7:34 PM Changeset in webkit [275479] by
-
- 2 edits in trunk/Source/WebCore
Shrink the Vector<> of keyframe values
https://bugs.webkit.org/show_bug.cgi?id=224154
Reviewed by Sam Weinig.
The Vector<double> returned by CSSParserImpl::consumeKeyframeKeyList()
wasted 152KB of vector capacity on nytimes.com pages, so shrink it.
- css/parser/CSSParserImpl.cpp:
(WebCore::CSSParserImpl::consumeKeyframeKeyList):
- 7:33 PM Changeset in webkit [275478] by
-
- 27 edits in trunk/Source/WebCore
No need to update the list marker number during internal move (e.g. result of anonymous collapsing)
https://bugs.webkit.org/show_bug.cgi?id=224142
<rdar://76101241>
Reviewed by Antti Koivisto.
Let's not update the marker numbers when the reason for re-parenting is "internal move"
which means the renderer's insertion point remains the same (e.g collapsing its anonymous parent).
- rendering/RenderElement.cpp:
(WebCore::RenderElement::insertedIntoTree):
(WebCore::RenderElement::willBeRemovedFromTree):
- rendering/RenderElement.h:
- rendering/RenderFragmentContainer.cpp:
(WebCore::RenderFragmentContainer::insertedIntoTree):
(WebCore::RenderFragmentContainer::willBeRemovedFromTree):
- rendering/RenderFragmentContainer.h:
- rendering/RenderListItem.cpp:
(WebCore::RenderListItem::insertedIntoTree):
(WebCore::RenderListItem::willBeRemovedFromTree):
- rendering/RenderListItem.h:
- rendering/RenderMultiColumnFlow.cpp:
(WebCore::RenderMultiColumnFlow::willBeRemovedFromTree):
- rendering/RenderMultiColumnFlow.h:
- rendering/RenderObject.cpp:
(WebCore::RenderObject::insertedIntoTree):
(WebCore::RenderObject::willBeRemovedFromTree):
- rendering/RenderObject.h:
- rendering/RenderQuote.cpp:
(WebCore::RenderQuote::insertedIntoTree):
(WebCore::RenderQuote::willBeRemovedFromTree):
- rendering/RenderQuote.h:
- rendering/RenderTableCaption.cpp:
(WebCore::RenderTableCaption::insertedIntoTree):
(WebCore::RenderTableCaption::willBeRemovedFromTree):
- rendering/RenderTableCaption.h:
- rendering/RenderTableCell.cpp:
(WebCore::RenderTableCell::willBeRemovedFromTree):
- rendering/RenderTableCell.h:
- rendering/RenderTableCol.cpp:
(WebCore::RenderTableCol::insertedIntoTree):
(WebCore::RenderTableCol::willBeRemovedFromTree):
- rendering/RenderTableCol.h:
- rendering/RenderTableRow.cpp:
(WebCore::RenderTableRow::willBeRemovedFromTree):
- rendering/RenderTableRow.h:
- rendering/RenderTableSection.cpp:
(WebCore::RenderTableSection::willBeRemovedFromTree):
- rendering/RenderTableSection.h:
- rendering/svg/RenderSVGRoot.cpp:
(WebCore::RenderSVGRoot::insertedIntoTree):
(WebCore::RenderSVGRoot::willBeRemovedFromTree):
- rendering/svg/RenderSVGRoot.h:
- rendering/updating/RenderTreeBuilder.cpp:
(WebCore::RenderTreeBuilder::attachToRenderElementInternal):
(WebCore::RenderTreeBuilder::move):
(WebCore::RenderTreeBuilder::detachFromRenderElement):
- rendering/updating/RenderTreeBuilder.h:
- 7:19 PM Changeset in webkit [275477] by
-
- 2 edits in trunk/Source/WebCore
WebSocketChannel buffers use memory after going idle (64K wasted on facebook.com
https://bugs.webkit.org/show_bug.cgi?id=224193
Patch by Alex Christensen <achristensen@webkit.org> on 2021-04-05
Reviewed by Simon Fraser.
- Modules/websockets/WebSocketChannel.cpp:
(WebCore::WebSocketChannel::processFrame):
- 7:16 PM Changeset in webkit [275476] by
-
- 7 edits in trunk/Source/ThirdParty/ANGLE
[METAL ANGLE] Stencil only formats being used as the depth attachment.
https://bugs.webkit.org/show_bug.cgi?id=224183
Patch by John Cunningham <johncunnigham@apple.com> on 2021-04-05
Reviewed by Jon Lee.
- src/compiler/translator/TranslatorMetalDirect/ProgramPrelude.cpp:
- src/compiler/translator/TranslatorMetalDirect/RewriteOutArgs.cpp:
(sh::Rewriter::argAlreadyProcessed):
- src/libANGLE/renderer/metal/ContextMtl.mm:
(rx::ContextMtl::setupDraw):
- src/libANGLE/renderer/metal/mtl_command_buffer.h:
- src/libANGLE/renderer/metal/mtl_command_buffer.mm:
(rx::mtl::RenderCommandEncoder::reset):
(rx::mtl::RenderCommandEncoder::setRenderPipelineState):
(rx::mtl::RenderCommandEncoder::draw):
(rx::mtl::RenderCommandEncoder::drawInstanced):
(rx::mtl::RenderCommandEncoder::drawIndexed):
(rx::mtl::RenderCommandEncoder::drawIndexedInstanced):
(rx::mtl::RenderCommandEncoder::drawIndexedInstancedBaseVertex):
- src/libANGLE/renderer/metal/mtl_utils.mm:
(rx::mtl::InitializeDepthStencilTextureContentsGPU):
- 7:16 PM Changeset in webkit [275475] by
-
- 2 edits in trunk/Source/WebCore
Make sure the Frame always gets destroyed on the main thread
https://bugs.webkit.org/show_bug.cgi?id=224213
<rdar://75131946>
Reviewed by Alex Christensen.
Make sure the Frame always gets destroyed on the main thread.
Since http://trac.webkit.org/changeset/181791, Frame is ThreadSafeRefCounted and captured
on other threads. We should make sure the Frame is always destroyed on the main thread
though, since it is a main thread object and we hold WeakPtrs to it in many places.
- page/AbstractFrame.h:
- 7:12 PM Changeset in webkit [275474] by
-
- 2 edits in trunk/Source/WebKit
Protect frame in WebPage::runJavaScriptInFrameInScriptWorld()
https://bugs.webkit.org/show_bug.cgi?id=224210
Reviewed by Alex Christensen.
Between the time we were getting the raw pointer to the frame, and the time were were passing it to
WebPage::runJavaScript(), we were potentially calling WebFrameLoaderClient::dispatchGlobalObjectAvailable().
It is possible in theory for those synchronous injected bundle calls to mess with the frame tree and cause
our frame to go bad. As a result, it is best to protect the frame as soon as we get it.
- WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::runJavaScriptInFrameInScriptWorld):
- 7:08 PM Changeset in webkit [275473] by
-
- 2 edits in trunk/Source/WebKit
Add a missing bounds check when mapping display list items from a shared display list handle
https://bugs.webkit.org/show_bug.cgi?id=224156
<rdar://problem/71805209>
Reviewed by Tim Horton.
Add a check to ensure that we don't end up with out-of-bounds memory access when attempting to map an
offset
andcapacity
in shared display list data into aWebCore::DisplayList
. It's possible for this to happen if
either the sum ofoffset
andcapacity
(i.e. the extent of the mapped segment) overflowssize_t
, or the
extent exceeds the total length of the buffer in shared memory.
- GPUProcess/graphics/DisplayListReaderHandle.cpp:
(WebKit::DisplayListReaderHandle::displayListForReading const):
Note that returning
nullptr
here subsequently causes us to terminate the web process due to the message check
fordisplayList
insidenextDestinationImageBufferAfterApplyingDisplayLists
.
- 6:52 PM Changeset in webkit [275472] by
-
- 3 edits1 add in trunk
DFG arity fixup nodes should exit to the caller's call opcode
https://bugs.webkit.org/show_bug.cgi?id=223278
Reviewed by Saam Barati.
JSTests:
- stress/dfg-arity-fixup-uses-callers-exit-origin.js: Added.
(main.v22):
(main.v30):
(main.try.v40):
(main.try.v47):
(main.try.v56):
(main.):
(main):
Source/JavaScriptCore:
Right now when we do arity fixup in the DFG we model it in the
same way that it executes, which means all the nodes are part of
the callee. Unfortunately, this causes PhantomInsertionPhase to
think those nodes could be replacing previously defined
VirtualRegisters as they are part of the callee's header (always
alive). When PhantomInsertionPhase then inserts a Phantom it will
put that node in the caller's frame as that's the first ExitOK
node. The caller however may have no knowledge of that
VirtualRegister though. For example:
--> foo: loc10 is a local in foo.
...
1: MovHint(loc10)
2: SetLocal(loc10)
<-- foo loc10 ten is now out of scope for the InlineCallFrame of the caller.
...
Phantom will be inserted here refering to loc10, which doesn't make sense.
--> bar loc10 is an argument to bar and needs arity fixup.
... All of these nodes are ExitInvalid
3: MovHint(loc10, ExitInvalid)
4: SetLocal(loc10, ExitInvalid)
...
- dfg/DFGByteCodeParser.cpp:
(JSC::DFG::ByteCodeParser::currentNodeOrigin):
(JSC::DFG::ByteCodeParser::inlineCall):
- 6:45 PM Changeset in webkit [275471] by
-
- 16 edits in trunk/Source/WebCore
Wasted vector capacity in FEColorMatrix and filters
https://bugs.webkit.org/show_bug.cgi?id=224169
Reviewed by Said Abou-Hallawa.
When building filter effects, avoid the inputEffects() having a larger
capacity than needed.
Shrink the Vector<float> which is input to FEColorMatrix.
This saves around 40KB on facebook.com feed pages.
- platform/graphics/filters/FEColorMatrix.cpp:
(WebCore::FEColorMatrix::FEColorMatrix):
(WebCore::FEColorMatrix::create):
- platform/graphics/filters/FEColorMatrix.h:
- rendering/CSSFilter.cpp:
(WebCore::CSSFilter::build):
(WebCore::endMatrixRow): Deleted.
(WebCore::lastMatrixRow): Deleted.
- rendering/svg/RenderSVGResourceFilter.cpp:
(WebCore::RenderSVGResourceFilter::buildPrimitives const):
- svg/SVGFEColorMatrixElement.cpp:
(WebCore::SVGFEColorMatrixElement::build const):
- svg/SVGFEComponentTransferElement.cpp:
(WebCore::SVGFEComponentTransferElement::build const):
- svg/SVGFEConvolveMatrixElement.cpp:
(WebCore::SVGFEConvolveMatrixElement::build const):
- svg/SVGFEDiffuseLightingElement.cpp:
(WebCore::SVGFEDiffuseLightingElement::build const):
- svg/SVGFEDropShadowElement.cpp:
(WebCore::SVGFEDropShadowElement::build const):
- svg/SVGFEGaussianBlurElement.cpp:
(WebCore::SVGFEGaussianBlurElement::build const):
- svg/SVGFEMergeElement.cpp:
(WebCore::SVGFEMergeElement::build const):
- svg/SVGFEMorphologyElement.cpp:
(WebCore::SVGFEMorphologyElement::build const):
- svg/SVGFEOffsetElement.cpp:
(WebCore::SVGFEOffsetElement::build const):
- svg/SVGFESpecularLightingElement.cpp:
(WebCore::SVGFESpecularLightingElement::build const):
- svg/SVGFETileElement.cpp:
(WebCore::SVGFETileElement::build const):
- 6:38 PM Changeset in webkit [275470] by
-
- 3 edits in trunk/LayoutTests
REGRESSION (r275332?): [ EWS macOS iOS wk2 ] http/tests/appcache/fail-on-update.html is a flakey timeout
https://bugs.webkit.org/show_bug.cgi?id=224120
<rdar://problem/76157112>
Reviewed by Jonathan Bedard.
- http/tests/appcache/fail-on-update-2.html:
- http/tests/appcache/fail-on-update.html:
- 6:36 PM Changeset in webkit [275469] by
-
- 2 edits in branches/safari-612.1.10-branch/Source/WebKit
Revert r275451. rdar://problem/76244988
This reverts commit d3893bd38276290b6e85a644f1496ca69c727e65.
- 6:13 PM Changeset in webkit [275468] by
-
- 2 edits in trunk/LayoutTests
[ macOS ] media/webaudio-background-playback.html is a flakey text failure
https://bugs.webkit.org/show_bug.cgi?id=221935
<rdar://problem/74370844>
Patch by Philippe Normand <pnormand@igalia.com> on 2021-04-05
Reviewed by Eric Carlson.
The test was flaky because it was checking if the destination had processed new buffers
immediately after an asynchronous state change. The proposed solution is to monitor the
statechange event and do the actual test after another additional 100 milli-seconds have
passed.
- media/webaudio-background-playback.html:
- 6:13 PM Changeset in webkit [275467] by
-
- 2 edits in branches/safari-612.1.10-branch/Source/WebKit
Cherry-pick r275451. rdar://problem/76244988
[GPUP][iPad] Audio only when airplaying a youtube video
https://bugs.webkit.org/show_bug.cgi?id=224132
Reviewed by Eric Carlson.
While
MediaPlayerPrivateAVFoundationObjC
only implementssetWirelessPlaybackTarget()
on macOS,MediaPlayerPrivateMediaSourceAVFObjC
implements it on both macOS and iOS.
Therefore,RemoteMediaPlayerProxy
has to forward the calls ofsetWirelessPlaybackTarget()
from WebContent processes to "MediaPlayerPrivate*" on both macOS and iOS.
Manually tested.
- GPUProcess/media/RemoteMediaPlayerProxy.cpp: (WebKit::RemoteMediaPlayerProxy::setWirelessPlaybackTarget):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@275451 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 6:06 PM Changeset in webkit [275466] by
-
- 4 edits in trunk
Enable QuotaExceededError on non GSTREAMER platforms
https://bugs.webkit.org/show_bug.cgi?id=224136
<rdar://71219720>
Reviewed by Jer Noble.
Source/WebCore:
This fixes a memory leak in Disney+ where we end up queuing up the entire
video because we never communicate to the page that they should stop queuing
more data.
- Modules/mediasource/SourceBuffer.cpp:
(WebCore::SourceBuffer::appendBufferInternal):
LayoutTests:
- platform/mac/media/media-source/media-source-append-before-last-range-no-quota-exceeded-expected.txt:
- 6:05 PM Changeset in webkit [275465] by
-
- 28 edits1 add in trunk/Source
Make sure service workers use a ScriptSourceCode backed by file-mapped memory when possible
https://bugs.webkit.org/show_bug.cgi?id=224088
Reviewed by Yusuke Suzuki.
Source/WebCore:
To run a worker, we were constructing a ScriptSourceCode from the source String and calling
JSC::evaluate. ScriptSourceCode would construct a JSC::StringSourceProvider, which would
keep the source String alive for the lifetime of the provider. This is problematic since
those worker scripts may be big and keeping heap-allocated version of them in memory is
expensive.
To address the issue, this patch introduces a new JSC::SourceProvider subclass named
ScriptBufferSourceProvider, which uses a ScriptBuffer internally. ScriptBuffer has the
benefit of being able to hold file-mapped data. We only convert the ScriptBuffer to
a String whenever necessary (When the script contains non-ascii characters and JSC
requests a StringView to the script). If we do end up converting the ScriptBuffer to
a String, this String will get cleared on memory pressure. This is similar to what
CachedScriptSourceProvider / CachedScript do on the main thread.
In the warm case, where the service worker script is coming from disk, we create
the ScriptBufferSourceProvider right away from a file-mapped ScriptBuffer, thus
greatly reducing dirty memory use. In the cold case, we initially construct the
ScriptBufferSourceProvider using a ScriptBuffer that is not file-mapped. However,
once the script is saved to disk (via SWScriptStorage), we replace the
ScriptBufferSourceProvider's ScriptBuffer with the new file-mapped version in
order to reduce dirty memory use in this case too.
- WebCore.xcodeproj/project.pbxproj:
Add ScriptBufferSourceProvider.h to the project.
- bindings/js/ScriptBufferSourceProvider.h: Added.
- Add new ScriptBufferSourceProvider, which is a JSC::SourceProvider subclass that
uses a ScriptBuffer as backing instead of a String. This allows us to use file-mapped
memory whenever possible, thus reducing dirty memory use. This provider provides
similar functionality to CachedScriptSourceProvider / CachedScript but works with
a ScriptBuffer and can be used off the main thread.
- We only transform the SharedBuffer into a String when strictly necessary, meaning that the ScriptBuffer contains non-ascii characters and JSC is asking for a StringView to the script.
- The class supports clearing the String copy of the script (done on memory pressure) and replacing the ScriptBuffer (with a new file-mapped version).
- bindings/js/ScriptSourceCode.h:
(WebCore::ScriptSourceCode::ScriptSourceCode):
(WebCore::ScriptSourceCode::m_code):
(WebCore::ScriptSourceCode::provider):
Add new constructors taking a ScriptBuffer instead of a String for the source code.
We then use the new ScriptBufferSourceProvider internally instead of the
StringSourceProvider.
- workers/DedicatedWorkerThread.cpp:
(WebCore::DedicatedWorkerThread::DedicatedWorkerThread):
- workers/DedicatedWorkerThread.h:
Use ScriptBuffer instead of String.
- workers/ScriptBuffer.cpp:
(WebCore::ScriptBuffer::empty):
(WebCore::ScriptBuffer::append):
(WebCore::operator!=):
- workers/ScriptBuffer.h:
(WebCore::ScriptBuffer::isEmpty const):
Add some functionality to SCriptBuffer to make it more convenient to use.
- workers/Worker.cpp:
(WebCore::Worker::notifyFinished):
Convert ScriptBuffer to a String since this is what WebInspector expects.
- workers/WorkerGlobalScope.cpp:
(WebCore::WorkerGlobalScope::importScripts):
- When importing a new script, we now construct a ScriptSourceCode from a
ScriptBuffer instead of a String.
- We also store a weak pointer to the ScriptBufferSourceProvider used by the ScriptSourceCode on the WorkerGlobalScope. This is so that we can ask those ScriptBufferSourceProvider objects to clear their cached String representation of the script source on memory pressure. It is also needed so we can replace the ScriptBufferSourceProvider's ScriptBuffer with a file-mapped version when one becomes available.
(WebCore::WorkerGlobalScope::releaseMemory):
In addition to deleting JS code and doing garbage collection, we now also ask the
ScriptBufferSourceProvider objects to clear their cached String representation of the script
source.
(WebCore::WorkerGlobalScope::deleteJSCodeAndGC):
Moved the logic to delete JS code and doing GC from releaseMemory() to a new function, now
that releaseMemory() needs to do more things.
(WebCore::WorkerGlobalScope::setMainScriptSourceProvider):
(WebCore::WorkerGlobalScope::addImportedScriptSourceProvider):
Functions used to store the CachedScriptSourceProvider objects for the scripts used by the
worker on the WorkerGlobalScope. We keep weak pointers to those.
(WebCore::WorkerGlobalScope::clearDecodedScriptData):
Function used to ask the ScriptBufferSourceProvider objects to clear their cached String
representation of the script source on memory pressure.
(WebCore::WorkerGlobalScope::updateSourceProviderBuffers):
Function used to ask the ScriptBufferSourceProvider objects to replace their ScriptBuffers
with file-backed versions.
- workers/WorkerGlobalScope.h:
- workers/WorkerGlobalScopeProxy.h:
- workers/WorkerMessagingProxy.cpp:
(WebCore::WorkerMessagingProxy::startWorkerGlobalScope):
- workers/WorkerMessagingProxy.h:
Use ScriptBuffer instead of String.
- workers/WorkerScriptLoader.cpp:
(WebCore::WorkerScriptLoader::WorkerScriptLoader):
(WebCore::WorkerScriptLoader::loadSynchronously):
(WebCore::WorkerScriptLoader::didReceiveData):
- workers/WorkerScriptLoader.h:
(WebCore::WorkerScriptLoader::script):
Use ScriptBuffer instead of String to hold the script source. We eventually need a ScriptBuffer
since this is what the Worker now needs to launch. Also, in the service worker case, we may
get a ScriptBuffer right away from the scriptResourceMap, without going to the network at all.
- workers/WorkerThread.cpp:
(WebCore::WorkerThreadStartupData::WorkerThreadStartupData):
(WebCore::WorkerThread::WorkerThread):
Use ScriptBuffer instead of String.
(WebCore::WorkerThread::evaluateScriptIfNecessary):
- When evaluating the main worker script, we now construct a ScriptSourceCode from a
ScriptBuffer instead of a String.
- We also store a weak pointer to the ScriptBufferSourceProvider used by the ScriptSourceCode on the WorkerGlobalScope. This is so that we can ask those ScriptBufferSourceProvider objects to clear their cached String representation of the script source on memory pressure. It is also needed so we can replace the ScriptBufferSourceProvider's ScriptBuffer with a file-mapped version when one becomes available.
- workers/WorkerThread.h:
- workers/service/ServiceWorkerContainer.cpp:
(WebCore::ServiceWorkerContainer::jobFinishedLoadingScript):
- workers/service/ServiceWorkerContainer.h:
- workers/service/ServiceWorkerFetchResult.h:
- workers/service/ServiceWorkerGlobalScope.cpp:
(WebCore::ServiceWorkerGlobalScope::didSaveScriptsToDisk):
- workers/service/ServiceWorkerJobClient.h:
- workers/service/context/ServiceWorkerThread.cpp:
(WebCore::ServiceWorkerThread::ServiceWorkerThread):
- workers/service/server/SWServer.cpp:
(WebCore::SWServer::updateWorker):
- workers/service/server/SWServer.h:
- workers/service/server/SWServerJobQueue.cpp:
(WebCore::SWServerJobQueue::scriptFetchFinished):
Use ScriptBuffer instead of String.
Source/WebKit:
- NetworkProcess/ServiceWorker/ServiceWorkerSoftUpdateLoader.cpp:
(WebKit::ServiceWorkerSoftUpdateLoader::didFinishLoading):
- 5:50 PM Changeset in webkit [275464] by
-
- 3 edits1 add in trunk/Tools/buildstream
[Flatpak SDK] Update dav1d and libavif
https://bugs.webkit.org/show_bug.cgi?id=224177
Patch by Philippe Normand <pnormand@igalia.com> on 2021-04-05
Reviewed by Adrian Perez de Castro.
- elements/freedesktop-sdk.bst: Update dav1d to version 0.8.2.
- elements/sdk/libavif.bst: Update to version 0.9.0.
- patches/fdo-0001-dav1d-Bump-to-version-0.8.2.patch: Added.
- 5:50 PM Changeset in webkit [275463] by
-
- 15 edits2 adds in trunk/Source
[Win][WK2] Implement IPC::Semaphore to run WebGL in GPU process
https://bugs.webkit.org/show_bug.cgi?id=224014
Reviewed by Don Olmstead.
Source/WebCore:
- platform/graphics/PlatformDisplay.cpp:
(WebCore::PlatformDisplay::sharedDisplay): GPU process calls this
function in IPC thread. Removed the assertion checking the main
thread.
- platform/graphics/opengl/GraphicsContextGLOpenGL.h:
- platform/graphics/texmap/GraphicsContextGLTextureMapper.cpp:
(WebCore::GraphicsContextGLOpenGL::createForGPUProcess): Added.
Source/WebKit:
- GPUProcess/graphics/RemoteGraphicsContextGL.cpp:
- GPUProcess/graphics/RemoteGraphicsContextGLWin.cpp: Added.
(WebKit::RemoteGraphicsContextGL::create):
(WebKit::RemoteGraphicsContextGLWin::RemoteGraphicsContextGLWin):
(WebKit::RemoteGraphicsContextGLWin::platformWorkQueueInitialize):
(WebKit::RemoteGraphicsContextGL::prepareForDisplay):
- Platform/IPC/IPCSemaphore.cpp:
- Platform/IPC/IPCSemaphore.h:
- Platform/IPC/StreamClientConnection.cpp:
(IPC::StreamClientConnection::setWakeUpSemaphore):
(IPC::StreamClientConnection::wakeUpServer):
- Platform/IPC/StreamClientConnection.h:
(IPC::StreamClientConnection::tryAcquire):
(IPC::StreamClientConnection::tryAcquireAll):
- Platform/IPC/StreamConnectionWorkQueue.cpp:
(IPC::StreamConnectionWorkQueue::StreamConnectionWorkQueue):
(IPC::StreamConnectionWorkQueue::removeStreamConnection):
(IPC::StreamConnectionWorkQueue::stop):
(IPC::StreamConnectionWorkQueue::wakeUp):
(IPC::StreamConnectionWorkQueue::wakeUpProcessingThread):
- Platform/IPC/StreamConnectionWorkQueue.h:
- Platform/IPC/StreamServerConnection.cpp:
(IPC::StreamServerConnectionBase::release):
(IPC::StreamServerConnectionBase::releaseAll):
- Platform/IPC/win/IPCSemaphoreWin.cpp: Added.
(IPC::Semaphore::Semaphore):
(IPC::Semaphore::~Semaphore):
(IPC::Semaphore::operator=):
(IPC::Semaphore::signal):
(IPC::Semaphore::wait):
(IPC::Semaphore::waitFor):
(IPC::Semaphore::encode const):
(IPC::Semaphore::decode):
(IPC::Semaphore::destroy):
- PlatformWin.cmake:
- WebProcess/WebCoreSupport/WebChromeClient.cpp:
(WebKit::WebChromeClient::createGraphicsContextGL const):
- 5:42 PM Changeset in webkit [275462] by
-
- 11 edits2 adds in trunk
Fix max-content on tables with percentage cell widths.
https://bugs.webkit.org/show_bug.cgi?id=221165
Reviewed by Zalan Bujtas.
Source/WebCore:
When
width: max-content
is specified on an element, any percentages
on content inside the element that are relative to the containing block
width should be treated as auto. Percentages on table cells and columns
in tables using auto table layout are not quite relative to the
containing block width, but do have a similar influence. So when
computing the intrinsic width of a table for the purpose of determining
the max-content value to use, ignore any percentages specified on table
cells and columns.
This change makes us match Firefox and Chrome on the test case.
Test: fast/table/percent-width-max-content.html
- rendering/AutoTableLayout.cpp:
(WebCore::AutoTableLayout::computeIntrinsicLogicalWidths):
- rendering/AutoTableLayout.h:
- rendering/FixedTableLayout.cpp:
(WebCore::FixedTableLayout::computeIntrinsicLogicalWidths):
- rendering/FixedTableLayout.h:
- rendering/RenderBox.cpp:
(WebCore::RenderBox::computeIntrinsicLogicalWidthUsing const): Call
into the new computeIntrinsicKeywordLogicalWidths function so that
tables can return different values for layout and intrinsic keyword
calculation.
- rendering/RenderBox.h:
(WebCore::RenderBox::computeIntrinsicKeywordLogicalWidths const):
Added to support computing intrinsic keyword lengths that differ from
those returned by computeIntrinsicLogicalWidths.
- rendering/RenderTable.cpp:
(WebCore::RenderTable::computeIntrinsicLogicalWidths const): Factored
this out to allow specifying an argument for whether the intrinsics
being computed are for layout or for instrinsic keyword calculation,
like max-content.
(WebCore::RenderTable::computeIntrinsicKeywordLogicalWidths const):
Added. This is the only override of the default implementation in
RenderBox.
- rendering/RenderTable.h:
- rendering/TableLayout.h:
LayoutTests:
Fix max-content on tables with percentage cell widths.
- fast/table/percent-width-max-content-expected.html: Added.
- fast/table/percent-width-max-content.html: Added.
- 5:39 PM Changeset in webkit [275461] by
-
- 2 edits1 add in trunk/Tools/buildstream
[Flatpak SDK] Backport GStreamer fakeaudiosink
https://bugs.webkit.org/show_bug.cgi?id=224053
Patch by Philippe Normand <pnormand@igalia.com> on 2021-04-05
Reviewed by Adrian Perez de Castro.
This audio sink will be used for the media layout and API tests.
- elements/sdk/gst-plugins-bad.bst:
- patches/gst-plugins-bad-0001-debugutils-Add-fakeaudiosink-element.patch: Added.
- 5:27 PM Changeset in webkit [275460] by
-
- 8 edits in trunk/Source
Versioning.
WebKit-7
- 5:22 PM Changeset in webkit [275459] by
-
- 22 edits1 copy1 add in trunk
[GPU Process] Simplify DisplayList::Iterator part 1: Require encoding/decoding delegates for non-inline display list items
https://bugs.webkit.org/show_bug.cgi?id=223849
Reviewed by Wenson Hsieh.
Source/WebCore:
Requiring delegates for non-inline display list items has these advantages:
- DisplayList::Iterator::updateCurrentItem() only has 2 codepaths instead of 3.
- ItemBuffer::m_itemsToDestroyInAllocatedBuffers can be deleted entirely.
- The conditional inside ItemBuffer::append() can be simplified from
!T::isInlineItem && m_writingClient to just !T::isInlineItem, which I think makes the
function significantly more readable.
There are a few places where we were using non-inline display list items without a delegate:
This patch adds two new "null" delegates, and hooks them up to a subclass of DisplayList,
called InMemoryDisplayList. Clients who want to use in-memory display lists (like the
DrawGlyphs cache) can just use this class, and retain their calling pattern they were using
before. Also, this patch adds InMemoryDisplayList without adding any virtual functions to
DisplayList.
No new tests because there is no behavior change.
- Headers.cmake:
- Sources.txt:
- WebCore.xcodeproj/project.pbxproj:
- html/HTMLCanvasElement.cpp:
- platform/graphics/FontCascade.cpp:
(WebCore::FontCascade::displayListForTextRun const):
- platform/graphics/FontCascade.h:
(WebCore::FontCascade::displayListForTextRun):
- platform/graphics/ca/GraphicsLayerCA.cpp:
(WebCore::GraphicsLayerCA::recursiveCommitChanges):
(WebCore::GraphicsLayerCA::platformCALayerPaintContents):
- platform/graphics/ca/GraphicsLayerCA.h:
- platform/graphics/displaylists/DisplayList.cpp:
(WebCore::DisplayList::DisplayList::iterator::updateCurrentItem):
- platform/graphics/displaylists/DisplayListDrawingContext.h:
(WebCore::DisplayList::DrawingContext::replayedDisplayList const):
- platform/graphics/displaylists/DisplayListImageBuffer.h:
(WebCore::DisplayList::ImageBuffer::ImageBuffer):
- platform/graphics/displaylists/DisplayListItemBuffer.cpp:
(WebCore::DisplayList::copyInto):
(WebCore::DisplayList::ItemBuffer::ItemBuffer):
(WebCore::DisplayList::ItemBuffer::operator=):
(WebCore::DisplayList::ItemBuffer::clear):
(WebCore::DisplayList::ItemBuffer::append):
(WebCore::DisplayList::m_allocatedBuffers): Deleted.
- platform/graphics/displaylists/DisplayListItemBuffer.h:
(WebCore::DisplayList::ItemHandle::get const):
(WebCore::DisplayList::ItemBufferWritingClient::~ItemBufferWritingClient):
(WebCore::DisplayList::ItemBufferWritingClient::createItemBuffer):
(WebCore::DisplayList::ItemBufferWritingClient::requiredSizeForItem const):
(WebCore::DisplayList::ItemBufferWritingClient::encodeItemOutOfLine const):
(WebCore::DisplayList::ItemBufferWritingClient::encodeItemInline const):
(WebCore::DisplayList::ItemBufferWritingClient::didAppendData):
(WebCore::DisplayList::ItemBuffer::append):
- platform/graphics/displaylists/DisplayListReplayer.cpp:
(WebCore::DisplayList::Replayer::replay):
- platform/graphics/displaylists/DisplayListReplayer.h:
- platform/graphics/displaylists/InMemoryDisplayList.cpp: Added.
(WebCore::DisplayList::InMemoryDisplayList::WritingClient::requiredSizeForItem const):
(WebCore::DisplayList::InMemoryDisplayList::WritingClient::encodeItemInline const):
(WebCore::DisplayList::InMemoryDisplayList::ReadingClient::decodeItem):
(WebCore::DisplayList::InMemoryDisplayList::InMemoryDisplayList):
(WebCore::DisplayList::InMemoryDisplayList::~InMemoryDisplayList):
- platform/graphics/displaylists/InMemoryDisplayList.h: Copied from Source/WebCore/platform/graphics/displaylists/DisplayListDrawingContext.h.
- rendering/GlyphDisplayListCache.h:
Source/WebKit:
- WebProcess/GPU/graphics/RemoteImageBufferProxy.h:
Tools:
- TestWebKitAPI/Tests/WebCore/DisplayListTests.cpp:
(TestWebKitAPI::TEST):
- TestWebKitAPI/Tests/WebCore/cg/DisplayListTestsCG.cpp:
- 5:11 PM Changeset in webkit [275458] by
-
- 9 edits in trunk/Source
[MediaSession] Small refactoring of MediaSession implementation classes
https://bugs.webkit.org/show_bug.cgi?id=224141
Reviewed by Eric Carlson.
A smorgasboard of small refactoring changes:
Source/WebCore:
- Don't call action handlers by default in response to coordinator requests.
- Since we don't call the action handlers, we don't need the internal methods.
- Simplify the call site by defining the action details inline.
- Modules/mediasession/MediaSessionCoordinator.cpp:
(WebCore::MediaSessionCoordinator::seekSessionToTime):
(WebCore::MediaSessionCoordinator::playSession):
(WebCore::MediaSessionCoordinator::pauseSession):
(WebCore::MediaSessionCoordinator::setSessionTrack):
(WebCore::MediaSessionCoordinator::internalSeekTo): Deleted.
(WebCore::MediaSessionCoordinator::internalPlay): Deleted.
(WebCore::MediaSessionCoordinator::internalPause): Deleted.
(WebCore::MediaSessionCoordinator::internalSetTrack): Deleted.
- Modules/mediasession/MediaSessionCoordinator.h:
- Modules/mediasession/MediaSessionCoordinatorPrivate.h:
Source/WebKit:
- MediaSessionCoordinatorProxyPrivate should use an Optional<ExceptionData> rather than an actual ExceptionData, to handle the case where no exception was encoutered.
- RemoteMediaSessionCoordinatorProxy::create() should just return a Ref, not a RefPtr.
- Logging inside a completion handler requires access to this.
- Add RemoteMediaSessionCoordinatorProxy.cpp to the build.
- UIProcess/Media/MediaSessionCoordinatorProxyPrivate.h:
- UIProcess/Media/RemoteMediaSessionCoordinatorProxy.cpp:
(WebKit::RemoteMediaSessionCoordinatorProxy::create):
(WebKit::RemoteMediaSessionCoordinatorProxy::RemoteMediaSessionCoordinatorProxy):
(WebKit::RemoteMediaSessionCoordinatorProxy::join):
(WebKit::RemoteMediaSessionCoordinatorProxy::coordinateSeekTo):
(WebKit::RemoteMediaSessionCoordinatorProxy::coordinatePlay):
(WebKit::RemoteMediaSessionCoordinatorProxy::coordinatePause):
(WebKit::RemoteMediaSessionCoordinatorProxy::coordinateSetTrack):
(WebKit::RemoteMediaSessionCoordinatorProxy::pauseSession):
(WebKit::RemoteMediaSessionCoordinatorProxy::setSessionTrack):
(WebKit::RemoteMediaSessionCoordinatorProxy::logChannel const):
(WebKit::RemoteMediaSessionCoordinatorProxy::::coordinateSetTrack): Deleted.
- UIProcess/Media/RemoteMediaSessionCoordinatorProxy.h:
(WebKit::RemoteMediaSessionCoordinatorProxy::logger const):
(WebKit::RemoteMediaSessionCoordinatorProxy::logIdentifier const):
(WebKit::RemoteMediaSessionCoordinatorProxy::logClassName const):
- 5:09 PM Changeset in webkit [275457] by
-
- 15 edits in trunk/Source
Define AtomString(ASCIILiteral) and use ASCIILiteral more to avoid memory allocation
https://bugs.webkit.org/show_bug.cgi?id=224125
Reviewed by Saam Barati.
Source/WebCore:
We apply "..."_s more. This avoids allocating of string storage when creating StringImpl.
- accessibility/AccessibilityObject.cpp:
(WebCore::initializeRoleMap):
- dom/ScriptElement.cpp:
(WebCore::isLegacySupportedJavaScriptLanguage):
- editing/EditorCommand.cpp:
(WebCore::createCommandMap):
- html/Autofill.cpp:
(WebCore::fieldNameMap):
- platform/LegacySchemeRegistry.cpp:
(WebCore::builtinLocalURLSchemes):
(WebCore::builtinSecureSchemes):
(WebCore::builtinSchemesWithUniqueOrigins):
(WebCore::builtinEmptyDocumentSchemes):
(WebCore::builtinCanDisplayOnlyIfCanRequestSchemes):
(WebCore::builtinCORSEnabledSchemes):
- platform/MIMETypeRegistry.cpp:
(WebCore::MIMETypeRegistry::systemPreviewMIMETypes):
- platform/graphics/FontCascade.cpp:
(WebCore::FontCascade::hasValidAverageCharWidth const):
- platform/graphics/HEVCUtilities.cpp:
(WebCore::codecStringForDoViCodecType):
(WebCore::profileIDForAlphabeticDoViProfile):
- platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp:
(WebCore::MediaPlayerPrivateAVFoundation::staticMIMETypeList):
- platform/graphics/avfoundation/objc/AVAssetMIMETypeCache.mm:
(WebCore::AVAssetMIMETypeCache::staticContainerTypeList):
- platform/graphics/cg/ImageSourceCGWin.cpp:
(WebCore::preferredExtensionForImageType):
- svg/SVGTests.cpp:
(WebCore::supportedSVGFeatures):
Source/WTF:
Add AtomString(ASCIILiteral). ASCIILiteral ensures that storage is constant non-heap string by its type.
So we can just use it as a literal (not allocating a string storage).
- wtf/text/AtomString.h:
- 5:04 PM Changeset in webkit [275456] by
-
- 3 edits in trunk/LayoutTests
REGRESSION (r275358): [ iOS wk2 ] media/modern-media-controls/ios-inline-media-controls/ios-inline-media-dropping-controls.html is a constant text failure
https://bugs.webkit.org/show_bug.cgi?id=224130
<rdar://problem/76164289>
Unreviewed test fix.
- media/modern-media-controls/ios-inline-media-controls/ios-inline-media-dropping-controls.html:
- media/modern-media-controls/ios-inline-media-controls/ios-inline-media-dropping-controls-expected.txt:
Set a
maximumRightContainerButtonCountOverride
so that the collapsing behavior of the
overflow button doesn't affect the test (and force a layout to ensure it's picked up).
- 5:00 PM Changeset in webkit [275455] by
-
- 2 edits in trunk/Source/WebKit
[Cocoa] Calling AudioComponentFetchServerRegistrations on main thread causes launch time regression
https://bugs.webkit.org/show_bug.cgi?id=224137
<rdar://76137483>
Reviewed by Eric Carlson.
Run the command to fetch AudioComponent registration data on a generic background queue.
- UIProcess/Cocoa/WebProcessProxyCocoa.mm:
(WebKit::WebProcessProxy::sendAudioComponentRegistrations):
- 4:56 PM Changeset in webkit [275454] by
-
- 9 edits in trunk
[WinCairo] Enable Service Worker tests
https://bugs.webkit.org/show_bug.cgi?id=223591
Reviewed by Fujii Hironori.
Source/WebKit:
WPT HTTP tests were failing because SSL Connect errors weren't triggering authentication challenges.
Also Add a suggestedFilename implementation.
- NetworkProcess/curl/NetworkDataTaskCurl.cpp:
- NetworkProcess/curl/NetworkDataTaskCurl.h:
Tools:
Ignore cert errors with downloads and fix an issue with windows paths.
- WebKitTestRunner/TestController.cpp:
- WebKitTestRunner/TestController.h:
LayoutTests:
- platform/wincairo-wk1/TestExpectations:
- platform/wincairo/TestExpectations:
- 4:55 PM Changeset in webkit [275453] by
-
- 2 edits in trunk/Tools
[GLIB] Garden API test failure and flakiness after r275267
Unreviewed test gardening.
- TestWebKitAPI/glib/TestExpectations.json:
- 4:45 PM Changeset in webkit [275452] by
-
- 1 copy in branches/safari-612.1.10-branch
New branch.
- 4:43 PM Changeset in webkit [275451] by
-
- 2 edits in trunk/Source/WebKit
[GPUP][iPad] Audio only when airplaying a youtube video
https://bugs.webkit.org/show_bug.cgi?id=224132
Reviewed by Eric Carlson.
While
MediaPlayerPrivateAVFoundationObjC
only implementssetWirelessPlaybackTarget()
on macOS,MediaPlayerPrivateMediaSourceAVFObjC
implements it on both macOS and iOS.
Therefore,RemoteMediaPlayerProxy
has to forward the calls ofsetWirelessPlaybackTarget()
from WebContent processes to "MediaPlayerPrivate*" on both macOS and iOS.
Manually tested.
- GPUProcess/media/RemoteMediaPlayerProxy.cpp:
(WebKit::RemoteMediaPlayerProxy::setWirelessPlaybackTarget):
- 9:48 AM WebKitGTK/2.32.x edited by
- (diff)
- 9:47 AM WebKitGTK/2.32.x edited by
- (diff)