Timeline
Mar 31, 2021:
- 11:38 PM Changeset in webkit [275347] by
-
- 3 edits in trunk/LayoutTests/imported/w3c
Unreviewed. Import WPT test modified in https://github.com/web-platform-tests/wpt/pull/28315
with updated expectation showing a slight progression in a failing test (we fail the second
assertion instead of the first one).
- web-platform-tests/css/css-fonts/animations/font-stretch-interpolation-expected.txt:
- web-platform-tests/css/css-fonts/animations/font-stretch-interpolation.html:
- 11:33 PM Changeset in webkit [275346] by
-
- 12 edits1 copy in trunk/Source/WebCore
Move AnimationTimeline methods related to Styleable to Styleable
https://bugs.webkit.org/show_bug.cgi?id=224012
Reviewed by Dean Jackson.
A number of public methods on AnimationTimeline make no use of any AnimationTimeline instance
variables and instead call into Styleable:
void elementWasRemoved(const Styleable&);
void willChangeRendererForStyleable(const Styleable&);
void cancelDeclarativeAnimationsForStyleable(const Styleable&);
void animationWasAddedToStyleable(WebAnimation&, const Styleable&);
void animationWasRemovedFromStyleable(WebAnimation&, const Styleable&);
void removeDeclarativeAnimationFromListsForOwningElement(WebAnimation&, const Styleable&);
void updateCSSAnimationsForStyleable(const Styleable&, const RenderStyle* currentStyle, const RenderStyle& afterChangeStyle, const RenderStyle* parentElementStyle);
void updateCSSTransitionsForStyleable(const Styleable&, const RenderStyle& currentStyle, const RenderStyle& newStyle);
These really belong on Styleable so we move them all over to that class with a new .cpp class
for these non-trivial methods.
- Sources.txt:
- WebCore.xcodeproj/project.pbxproj:
- animation/AnimationTimeline.cpp:
(WebCore::AnimationTimeline::removeAnimation):
(WebCore::AnimationTimeline::animationWasAddedToStyleable): Deleted.
(WebCore::removeCSSTransitionFromMap): Deleted.
(WebCore::AnimationTimeline::animationWasRemovedFromStyleable): Deleted.
(WebCore::AnimationTimeline::removeDeclarativeAnimationFromListsForOwningElement): Deleted.
(WebCore::AnimationTimeline::removeCSSAnimationCreatedByMarkup): Deleted.
(WebCore::AnimationTimeline::elementWasRemoved): Deleted.
(WebCore::AnimationTimeline::willChangeRendererForStyleable): Deleted.
(WebCore::AnimationTimeline::cancelDeclarativeAnimationsForStyleable): Deleted.
(WebCore::shouldConsiderAnimation): Deleted.
(WebCore::AnimationTimeline::updateCSSAnimationsForStyleable): Deleted.
(WebCore::keyframeEffectForElementAndProperty): Deleted.
(WebCore::propertyInStyleMatchesValueForTransitionInMap): Deleted.
(WebCore::transitionCombinedDuration): Deleted.
(WebCore::transitionMatchesProperty): Deleted.
(WebCore::compileTransitionPropertiesInStyle): Deleted.
(WebCore::AnimationTimeline::updateCSSTransitionsForStyleableAndProperty): Deleted.
(WebCore::AnimationTimeline::updateCSSTransitionsForStyleable): Deleted.
- animation/AnimationTimeline.h:
- animation/DeclarativeAnimation.cpp:
(WebCore::DeclarativeAnimation::disassociateFromOwningElement):
- animation/WebAnimation.cpp:
(WebCore::WebAnimation::setEffectInternal):
(WebCore::WebAnimation::setTimeline):
(WebCore::WebAnimation::effectTargetDidChange):
(WebCore::WebAnimation::persist):
- dom/Element.cpp:
(WebCore::Element::removedFromAncestor):
- dom/PseudoElement.cpp:
(WebCore::PseudoElement::clearHostElement):
- rendering/updating/RenderTreeUpdater.cpp:
(WebCore::RenderTreeUpdater::tearDownRenderers):
- style/StyleTreeResolver.cpp:
(WebCore::Style::TreeResolver::createAnimatedElementUpdate):
- style/Styleable.cpp: Copied from Source/WebCore/animation/AnimationTimeline.cpp.
(WebCore::Styleable::animationWasAdded const):
(WebCore::removeCSSTransitionFromMap):
(WebCore::Styleable::removeDeclarativeAnimationFromListsForOwningElement const):
(WebCore::Styleable::animationWasRemoved const):
(WebCore::removeCSSAnimationCreatedByMarkup):
(WebCore::Styleable::elementWasRemoved const):
(WebCore::Styleable::willChangeRenderer const):
(WebCore::Styleable::cancelDeclarativeAnimations const):
(WebCore::shouldConsiderAnimation):
(WebCore::Styleable::updateCSSAnimations const):
(WebCore::keyframeEffectForElementAndProperty):
(WebCore::propertyInStyleMatchesValueForTransitionInMap):
(WebCore::transitionCombinedDuration):
(WebCore::transitionMatchesProperty):
(WebCore::compileTransitionPropertiesInStyle):
(WebCore::updateCSSTransitionsForStyleableAndProperty):
(WebCore::Styleable::updateCSSTransitions const):
- style/Styleable.h:
- 9:03 PM Changeset in webkit [275345] by
-
- 18 edits in trunk/Source
Feed preferred frames per second back to the UI process for each DisplayRefreshMonitor
https://bugs.webkit.org/show_bug.cgi?id=224023
Reviewed by Sam Weinig.
Source/WebCore:
DisplayRefreshMonitors should be responsive to the frame rate demands of their clients,
so move from a model where DisplayRefreshMonitor has setPreferredFramesPerSecond()
to one where it computes maxClientPreferredFramesPerSecond().
DisplayRefreshMonitor needs to recompute maxClientPreferredFramesPerSecond when clients
are added, removed, or when the preferred frame rate of a client changes.
For now, just one of the DisplayRefreshMonitor implementations responds to adjustPreferredFramesPerSecond:
DisplayRefreshMonitorMac sends IPC to the UI process, which DisplayLink can use on a per-connection
basis to throttle the frequency of display updates sent to that process (which is important
for power).
- platform/graphics/DisplayRefreshMonitor.cpp:
(WebCore::DisplayRefreshMonitor::addClient):
(WebCore::DisplayRefreshMonitor::removeClient):
(WebCore::DisplayRefreshMonitor::maximumClientPreferredFramesPerSecond const):
(WebCore::DisplayRefreshMonitor::computeMaxPreferredFramesPerSecond):
(WebCore::DisplayRefreshMonitor::clientPreferredFramesPerSecondChanged):
- platform/graphics/DisplayRefreshMonitor.h:
(WebCore::DisplayRefreshMonitor::maxClientPreferredFramesPerSecond const):
(WebCore::DisplayRefreshMonitor::adjustPreferredFramesPerSecond):
(WebCore::DisplayRefreshMonitor::setPreferredFramesPerSecond): Deleted.
- platform/graphics/DisplayRefreshMonitorClient.cpp:
(WebCore::DisplayRefreshMonitorClient::setPreferredFramesPerSecond):
- platform/graphics/DisplayRefreshMonitorManager.cpp:
(WebCore::DisplayRefreshMonitorManager::clientPreferredFramesPerSecondChanged):
(WebCore::DisplayRefreshMonitorManager::setPreferredFramesPerSecond): Deleted.
- platform/graphics/DisplayRefreshMonitorManager.h:
Source/WebKit:
DisplayLink needs to track the preferredFramesPerSecond of each of its client
observers. notifyObserversDisplayWasRefreshed() can then avoid sending IPC to
a process a frequency which is higher than that process needs.
- UIProcess/Cocoa/WebProcessPoolCocoa.mm:
(WebKit::WebProcessPool::startDisplayLink):
(WebKit::WebProcessPool::setDisplayLinkPreferredFramesPerSecond):
- UIProcess/WebProcessPool.h:
- UIProcess/WebProcessProxy.h:
- UIProcess/WebProcessProxy.messages.in:
- UIProcess/mac/DisplayLink.cpp:
(WebKit::DisplayLink::addObserver):
(WebKit::DisplayLink::removeObserver):
(WebKit::DisplayLink::removeObservers):
(WebKit::DisplayLink::setPreferredFramesPerSecond):
(WebKit::DisplayLink::notifyObserversDisplayWasRefreshed):
- UIProcess/mac/DisplayLink.h:
- UIProcess/mac/WebProcessProxyMac.mm:
(WebKit::WebProcessProxy::startDisplayLink):
(WebKit::WebProcessProxy::setDisplayLinkPreferredFramesPerSecond):
- WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDisplayRefreshMonitor.h:
- WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDisplayRefreshMonitor.mm:
(WebKit::RemoteLayerTreeDisplayRefreshMonitor::adjustPreferredFramesPerSecond):
(WebKit::RemoteLayerTreeDisplayRefreshMonitor::setPreferredFramesPerSecond): Deleted.
- WebProcess/WebPage/mac/DisplayRefreshMonitorMac.cpp:
(WebKit::DisplayRefreshMonitorMac::startNotificationMechanism):
(WebKit::DisplayRefreshMonitorMac::adjustPreferredFramesPerSecond):
- WebProcess/WebPage/mac/DisplayRefreshMonitorMac.h:
- 8:18 PM Changeset in webkit [275344] by
-
- 2 edits in trunk/Tools
Add API test for Bug 224022
https://bugs.webkit.org/show_bug.cgi?id=224024
Reviewed by Alex Christensen.
The way to reproduce the bug was to make sure that the NetworkProcessProxy was not associated
with any datastore at the time of the crash, then construct a new view and do a load, which
would hang.
If the NetworkProcessProxy was associated with a datastore and the WKWebSiteDataStore's
m_networkProcess was not null, then WebsiteDataStore::networkProcessCrashed() would take
care of callingm_networkProcess->didTerminate(), which would destroy the NetworkProcessProxy
singleton.
- TestWebKitAPI/Tests/WebKitCocoa/NetworkProcess.mm:
(TEST):
- 7:55 PM Changeset in webkit [275343] by
-
- 2 edits in trunk/Source/JavaScriptCore
UBSan: JSC::Parser<LexerType>::parseProperty(): runtime error: load of value nnn, which is not a valid value for type 'bool'
<https://webkit.org/b/223896>
<rdar://problem/75970132>
Reviewed by Darin Adler.
Based on a suggestion by Darin Adler.
- parser/Parser.cpp:
(JSC::Parser<LexerType>::parseProperty):
- Change 'escaped' to 'wasUnescapedIdent' to avoid the undefined behavior since m_token.m_data.escaped is only set in the case when an identifer is parsed (in Lexer<>::parseIdentifer()), not a string (in Lexer<>::parseString()). This simplifies the logic later in the method.
- 7:32 PM Changeset in webkit [275342] by
-
- 1 copy in tags/Safari-612.1.7.13
Tag Safari-612.1.7.13.
- 7:31 PM Changeset in webkit [275341] by
-
- 2 edits in trunk/Source/WebKit
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:]):
- 7:30 PM Changeset in webkit [275340] by
-
- 8 edits in branches/safari-612.1.7-branch/Source
Versioning.
WebKit-7612.1.7.13
- 7:26 PM Changeset in webkit [275339] by
-
- 1 copy in tags/Safari-612.1.8.3
Tag Safari-612.1.8.3.
- 7:21 PM Changeset in webkit [275338] by
-
- 8 edits in branches/safari-612.1.8-branch/Source
Versioning.
WebKit-7612.1.8.3
- 7:02 PM Changeset in webkit [275337] by
-
- 2 edits in trunk/Source/WebInspectorUI
Web Inspector: Regression (r270134) Timeline recordings 2 and beyond do not show a timescale.
https://bugs.webkit.org/show_bug.cgi?id=222930
Reviewed by Devin Rousso.
When a new
TimelineOverviewis created, it callsTimelineOverview.prototype._viewModeDidChangeinside the
constructor, which in turn calledupdateLayout. This was problematic in that aTimelineRulerwould have
sizeDidChangeinvoked before it was attached to the DOM, which meant that there was no width to cache. Because
sizeDidChangeis only invoked during the first layout and on resize events, the cached width is not updated
when the ruler is attached to the view hierarchy, having already performed an early initial layout.
This patch now checks if the
TimelineOverviewhas performed its initial layout before updating the layout
inside_viewModeDidChange, which means that the initial layout on the childTimelineRulerwill be done while
attached, thus producing a valid width value to cache.
- UserInterface/Views/TimelineOverview.js:
(WI.TimelineRuler.prototype._viewModeDidChange):
- 6:53 PM Changeset in webkit [275336] by
-
- 2 edits in trunk/LayoutTests
[ Debug wk2 ] ASSERTION FAILED: willBeComposited == needsToBeComposited(layer, queryData)
https://bugs.webkit.org/show_bug.cgi?id=223750
Unreviewed test gardening.
- platform/mac-wk2/TestExpectations: Adding the Failure back to the test expectations that I removed during the prior update.
- 6:42 PM Changeset in webkit [275335] by
-
- 3 edits in trunk/LayoutTests
ASSERTION FAILED: CustomElementReactionDisallowedScope::isReactionAllowed() ./dom/CustomElementReactionQueue.cpp(175) : static void WebCore::CustomElementReactionQueue::enqueueDisconnectedCallbackIfNeeded(WebCore::Element &)
https://bugs.webkit.org/show_bug.cgi?id=224033
Uneviewed test gardening.
- platform/ios-simulator/TestExpectations: Updated test expectations while test is reviewed.
- platform/mac/TestExpectations:
- 6:39 PM Changeset in webkit [275334] by
-
- 9 edits in trunk
List of extents should be bounds-checked when iterating display list items
https://bugs.webkit.org/show_bug.cgi?id=224019
<rdar://problem/71851600>
Reviewed by Tim Horton.
Source/WebCore:
Add a bounds check before attempting to access the vector of display list drawing item extents. In the case
where we would've otherwise attempted to access an out-of-bounds item, we instead flag ourselves as invalid and
stop early withStopReplayReason::InvalidItemOrExtent.
- platform/graphics/displaylists/DisplayList.cpp:
(WebCore::DisplayList::DisplayList::setTracksDrawingItemExtents):
Drive-by fix: use
isEmpty()in the release assertion instead of duplicating code.
(WebCore::DisplayList::DisplayList::iterator::updateCurrentDrawingItemExtent):
(WebCore::DisplayList::DisplayList::iterator::updateCurrentItem):
- platform/graphics/displaylists/DisplayList.h:
- platform/graphics/displaylists/DisplayListReplayer.cpp:
(WebCore::DisplayList::Replayer::applyItem):
(WebCore::DisplayList::Replayer::replay):
- platform/graphics/displaylists/DisplayListReplayer.h:
Rename the
StopReplayReason::InvalidItemtoStopReplayReason::InvalidItemOrExtent, to reflect that we may
also stop replay when encountering invalid item extents.
Source/WebKit:
Rename
InvalidItemtoInvalidItemOrExtent.
- GPUProcess/graphics/RemoteRenderingBackend.cpp:
(WebKit::RemoteRenderingBackend::nextDestinationImageBufferAfterApplyingDisplayLists):
Tools:
Rename
InvalidItemtoInvalidItemOrExtent.
- TestWebKitAPI/Tests/WebCore/cg/DisplayListTestsCG.cpp:
(TestWebKitAPI::TEST):
- 6:38 PM Changeset in webkit [275333] by
-
- 3 edits2 adds in trunk
Missing scope release in JSDOMBuiltinConstructorBase
https://bugs.webkit.org/show_bug.cgi?id=216851
<rdar://problem/69144642>
Reviewed by Yusuke Suzuki.
Source/WebCore:
In JSDOMBuiltinConstructorBase::callFunctionWithCurrentArguments, we should release the
ThrowScope before calling into JavaScript since we don't intend to handle the exception.
Test: js/transform-stream.html
- bindings/js/JSDOMBuiltinConstructorBase.cpp:
(WebCore::JSDOMBuiltinConstructorBase::callFunctionWithCurrentArguments):
LayoutTests:
- js/dom/transform-stream-expected.txt: Added.
- js/dom/transform-stream.html: Added.
- 6:16 PM Changeset in webkit [275332] by
-
- 42 edits4 moves28 adds29 deletes in trunk/LayoutTests
[LayoutTests] Convert http/tests/appcache convert PHP to Python
https://bugs.webkit.org/show_bug.cgi?id=221286
<rdar://problem/73893844>
Reviewed by Jonathan Bedard.
- TestExpectations:
- http/tests/appcache/404-resource-with-slow-main-resource.php: Removed.
- http/tests/appcache/404-resource-with-slow-main-resource.py: Added.
- http/tests/appcache/abort-cache-onchecking-manifest-404.html:
- http/tests/appcache/abort-cache-onchecking.html:
- http/tests/appcache/access-via-redirect.php: Removed.
- http/tests/appcache/access-via-redirect.py: Added.
- http/tests/appcache/auth.html:
- http/tests/appcache/document-cookie-http-only.php: Removed.
- http/tests/appcache/document-cookie-http-only.py: Added.
- http/tests/appcache/document-cookie.php: Removed.
- http/tests/appcache/document-cookie.py: Added.
- http/tests/appcache/fail-on-update-2.html:
- http/tests/appcache/fail-on-update.html:
- http/tests/appcache/fallback.html:
- http/tests/appcache/identifier-test.html:
- http/tests/appcache/main-resource-redirect.html:
- http/tests/appcache/manifest-redirect-2.html:
- http/tests/appcache/manifest-redirect.html:
- http/tests/appcache/online-whitelist.html:
- http/tests/appcache/remove-cache.html:
- http/tests/appcache/resource-redirect-2-expected.txt:
- http/tests/appcache/resource-redirect-expected.txt:
- http/tests/appcache/resources/abort-cache-onchecking-resource-404.manifest:
- http/tests/appcache/resources/abort-cache-onchecking.manifest.php: Removed.
- http/tests/appcache/resources/abort-cache-onchecking.manifest.py: Added.
- http/tests/appcache/resources/abort-cache-ondownloading.manifest:
- http/tests/appcache/resources/abort-cache-ondownloading.text.php: Removed.
- http/tests/appcache/resources/abort-cache-ondownloading.text.py: Added.
- http/tests/appcache/resources/abort-cache-onprogress.manifest:
- http/tests/appcache/resources/access-via-redirect.html:
- http/tests/appcache/resources/appcache-cookies-test.html:
- http/tests/appcache/resources/auth/iframe.php: Removed.
- http/tests/appcache/resources/auth/iframe.py: Added.
- http/tests/appcache/resources/auth/manifest.php: Removed.
- http/tests/appcache/resources/auth/manifest.py: Added.
- http/tests/appcache/resources/auth/setup.php: Removed.
- http/tests/appcache/resources/auth/setup.py: Added.
- http/tests/appcache/resources/auth/subresource.php: Removed.
- http/tests/appcache/resources/auth/subresource.py: Added.
- http/tests/appcache/resources/cookie-protected-script.php: Removed.
- http/tests/appcache/resources/cookie-protected-script.py: Added.
- http/tests/appcache/resources/document-cookie.manifest:
- http/tests/appcache/resources/fail-on-update-2.html:
- http/tests/appcache/resources/fail-on-update-2.php: Removed.
- http/tests/appcache/resources/fail-on-update-2.py: Added.
- http/tests/appcache/resources/fail-on-update.php: Removed.
- http/tests/appcache/resources/fail-on-update.py: Added.
- http/tests/appcache/resources/fallback-redirect.php: Removed.
- http/tests/appcache/resources/fallback-redirect.py: Added.
- http/tests/appcache/resources/identifier-test-real.php: Removed.
- http/tests/appcache/resources/identifier-test-real.py: Added.
- http/tests/appcache/resources/identifier-test.php: Removed.
- http/tests/appcache/resources/identifier-test.py: Added.
- http/tests/appcache/resources/intercept/.htaccess:
- http/tests/appcache/resources/main-resource-redirect-frame.php: Removed.
- http/tests/appcache/resources/main-resource-redirect-frame.py: Added.
- http/tests/appcache/resources/manifest-if-cookie.php: Removed.
- http/tests/appcache/resources/manifest-if-cookie.py: Added.
- http/tests/appcache/resources/manifest-protected-script.php: Removed.
- http/tests/appcache/resources/manifest-redirect-2.php: Removed.
- http/tests/appcache/resources/manifest-redirect-2.py: Added.
- http/tests/appcache/resources/manifest-redirect.php: Removed.
- http/tests/appcache/resources/manifest-redirect.py: Added.
- http/tests/appcache/resources/navigating-away-while-cache-attempt-in-progress.manifest:
- http/tests/appcache/resources/not-exist.vob.php: Removed.
- http/tests/appcache/resources/not-exist.vob.py: Added.
- http/tests/appcache/resources/online-allowlist.manifest:
- http/tests/appcache/resources/online-allowlist.php: Removed.
- http/tests/appcache/resources/online-allowlist.py: Added.
- http/tests/appcache/resources/print-uri.php: Removed.
- http/tests/appcache/resources/print-uri.py: Added.
- http/tests/appcache/resources/remove-cache-frame-2.html:
- http/tests/appcache/resources/remove-cache-frame.html:
- http/tests/appcache/resources/remove-cache.php: Removed.
- http/tests/appcache/resources/remove-cache.py: Added.
- http/tests/appcache/resources/resource-redirect-2.manifest:
- http/tests/appcache/resources/resource-redirect-2.php: Removed.
- http/tests/appcache/resources/resource-redirect-2.py: Added.
- http/tests/appcache/resources/resource-redirect.manifest:
- http/tests/appcache/resources/resource-redirect.php: Removed.
- http/tests/appcache/resources/resource-redirect.py: Added.
- http/tests/appcache/resources/scope1/cookie-protected-manifest.php: Removed.
- http/tests/appcache/resources/scope1/cookie-protected-manifest.py: Added.
- http/tests/appcache/resources/scope2/cookie-protected-script.php: Removed.
- http/tests/appcache/resources/scope2/cookie-protected-script.py: Added.
- http/tests/appcache/resources/slow-resource.php: Removed.
- http/tests/appcache/resources/slow-resource.py: Added.
- http/tests/appcache/resources/uncacheable-resource.php: Removed.
- http/tests/appcache/resources/uncacheable-resource.py: Added.
- http/tests/appcache/resources/update-cache.php: Removed.
- http/tests/appcache/resources/update-cache.py: Added.
- http/tests/appcache/resources/x-frame-options-prevents-framing-test.html:
- http/tests/appcache/update-cache.html:
- http/tests/appcache/x-frame-options-prevents-framing-expected.txt:
- http/tests/appcache/x-frame-options-prevents-framing.php: Removed.
- http/tests/appcache/x-frame-options-prevents-framing.py: Added.
- http/tests/resources/portabilityLayer.py:
(get_count):
(get_state):
(set_state):
(step_state):
(setState): Deleted.
(getState): Deleted.
- http/tests/xmlhttprequest/resources/access-control-basic-preflight-cache-invalidation.py:
- http/tests/xmlhttprequest/resources/access-control-basic-preflight-cache-timeout.py:
- http/tests/xmlhttprequest/resources/access-control-basic-preflight-cache.py:
- http/tests/xmlhttprequest/resources/access-control-preflight-denied-xsrf.py:
- http/tests/xmlhttprequest/resources/no-custom-header.py:
- http/tests/xmlhttprequest/resources/redirect-cross-origin-tripmine.py:
- http/tests/xmlhttprequest/resources/remember-bad-password/count-failures.py:
- platform/ios-wk2/TestExpectations:
- 6:12 PM Changeset in webkit [275331] by
-
- 2 edits in trunk/LayoutTests
[ macOS wk2 ARM64 ] tiled-drawing/top-content-inset-fixed-attachment-cover-local.html is a flakey Image failure
https://bugs.webkit.org/show_bug.cgi?id=224032
Uneviewed test garending.
- platform/mac-wk2/TestExpectations: Updated test expectations to Pass ImageOnlyFailure while test is reviewed.
- 5:58 PM Changeset in webkit [275330] by
-
- 2 edits in trunk/LayoutTests
[ macOS wk2 ] media/pip-video-going-into-fullscreen.html is a flakey timeout
https://bugs.webkit.org/show_bug.cgi?id=223762
Patch by Peng Liu <Peng Liu> on 2021-03-31
Reviewed by Eric Carlson.
Fix a flaky test related to video fullscreen by:
1) Wait for a video presentation mode change to complete before moving to the next step in the test.
2) Request the video to exit fullscreen beforeendTest()(to avoid interference with other tests).
- media/pip-video-going-into-fullscreen-expected.txt:
- media/pip-video-going-into-fullscreen.html:
- platform/mac-wk2/TestExpectations:
- 5:50 PM Changeset in webkit [275329] by
-
- 12 edits in trunk/Websites/perf.webkit.org
Add commit revision label support
https://bugs.webkit.org/show_bug.cgi?id=222897
Reviewed by Ryosuke Niwa.
Add new column revision label.
Make all commit api also can work with revision label.
Change the commit label display with commit revision label.
- browser-tests/commit-log-viewer-tests.js: Fix a failed test case, while requesting the remote api,
we should wait for those promises resolved and then wait for commponent to render.
- init-database.sql: Add new column revision_identifier.
- migrate-database.sql: Add new column revision_identifier.
- public/include/commit-log-fetcher.php: Make api that works with revision should work with revision label.
- public/include/commit-updater.php: Ditto.
- public/include/report-processor.php: Make the processor can also insert revision label.
- public/v3/models/commit-log.js:
(CommitLog.prototype.updateSingleton):
(CommitLog.prototype.revisionIdentifier):
(CommitLog.prototype.label): Make the label include revision label and revision.
(CommitLog.prototype.diff): Make the diff label include revision label and revision.
- server-tests/api-commits-tests.js:
- server-tests/api-report-commits-tests.js:
- server-tests/api-report-tests.js:
(reportWithRevisionIdentifierCommit):
- unit-tests/commit-log-tests.js:
- 5:47 PM Changeset in webkit [275328] by
-
- 4 edits in trunk/LayoutTests
[ macOS wk2 ] media/pip-video-going-into-fullscreen.html is a flakey timeout
https://bugs.webkit.org/show_bug.cgi?id=223762
Reviewed by Eric Carlson.
Fix a flaky test related to video fullscreen by:
1) Wait for a video presentation mode change to complete before moving to the next step in the test.
2) Request the video to exit fullscreen beforeendTest()(to avoid interference with other tests).
- media/pip-video-going-into-fullscreen-expected.txt:
- media/pip-video-going-into-fullscreen.html:
- platform/mac-wk2/TestExpectations:
- 5:39 PM Changeset in webkit [275327] by
-
- 6 edits in trunk/Source
Use MACH_PORT_VALID() when wanting to check if a mach port is valid
https://bugs.webkit.org/show_bug.cgi?id=224004
Reviewed by Darin Adler.
Use MACH_PORT_VALID() when wanting to check if a mach port is valid, instead of checking for
MACH_PORT_NULL. MACH_PORT_VALID() is the correct way to check for validity since it also checks
for the MACH_PORT_DEAD value.
Source/WebCore:
- page/cocoa/ResourceUsageThreadCocoa.mm:
(WebCore::ResourceUsageThread::platformCollectCPUData):
- platform/graphics/mac/GraphicsChecksMac.cpp:
(WebCore::attachToAppleGraphicsControl):
(WebCore::hasMuxCapability):
Source/WebKitLegacy/mac:
- Plugins/Hosted/NetscapePluginHostManager.mm:
(WebKit::NetscapePluginHostManager::spawnPluginHost):
- Plugins/Hosted/NetscapePluginHostProxy.mm:
(WebKit::NetscapePluginHostProxy::processRequests):
- 5:33 PM Changeset in webkit [275326] by
-
- 3 edits2 adds in trunk
Avoid creating any complex text runs when font-size is zero.
https://bugs.webkit.org/show_bug.cgi?id=223983
Reviewed by Myles C. Maxfield.
Source/WebCore:
We have existing checks to handle
font-size: 0on the simple
text path, but not for complex text. Handle this by creating
no complex text runs for text with zero size.
Test: fast/text/font-size-zero-complex.html
- platform/graphics/ComplexTextController.cpp:
(WebCore::ComplexTextController::collectComplexTextRuns):
LayoutTests:
- fast/text/font-size-zero-complex-expected.html: Added.
- fast/text/font-size-zero-complex.html: Added.
- 5:30 PM Changeset in webkit [275325] by
-
- 1 copy in tags/Safari-611.1.21.161.3
Tag Safari-611.1.21.161.3.
- 5:29 PM Changeset in webkit [275324] by
-
- 3 edits2 adds in trunk
Placate exception check validation below convertVariadicArguments().
https://bugs.webkit.org/show_bug.cgi?id=224027
rdar://68912995
Reviewed by Saam Barati.
Source/WebCore:
Test: js/dom/missing-exception-check-in-convertVariadicArguments.html
- bindings/js/JSDOMConvertVariadic.h:
(WebCore::convertVariadicArguments):
LayoutTests:
- js/dom/missing-exception-check-in-convertVariadicArguments-expected.txt: Added.
- js/dom/missing-exception-check-in-convertVariadicArguments.html: Added.
- 5:18 PM Changeset in webkit [275323] by
-
- 2 edits in branches/safari-611.1.21.161-branch/Source/WebKit
Cherry-pick r275316. rdar://problem/76078629
REGRESSION: The NetworkProcess fails to relaunch after it crashes
https://bugs.webkit.org/show_bug.cgi?id=224022
<rdar://75148724>
Reviewed by Darin Adler.
NetworkProcessProxy::networkProcessCrashed() failed to clear defaultNetworkProcess() like we do on
network process termination (in NetworkProcessProxy::didTerminate()). As a result, upon a
network process crash, WebsiteDataStore::networkProcessCrashed() would get called and
properly clear WebsiteDataStore::m_networkProcess. However, when calling
WebsiteDataStore::networkProcess() later on, it would re-initialize m_networkProcess with
the same dead NetworkProcessProxy, since networkProcessForSession() relies on
NetworkProcessProxy::defaultNetworkProcess().
No new tests, will land an API test shortly as a follow-up.
- UIProcess/Network/NetworkProcessProxy.cpp: (WebKit::NetworkProcessProxy::networkProcessCrashed):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@275316 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 5:16 PM Changeset in webkit [275322] by
-
- 8 edits in branches/safari-611.1.21.161-branch/Source
Versioning.
WebKit-7611.1.21.161.3
- 5:12 PM Changeset in webkit [275321] by
-
- 2 edits in trunk/LayoutTests
REGRESSION (Metal ANGLE): [Catalina] 6 consistent WebGL failures / timeouts
https://bugs.webkit.org/show_bug.cgi?id=224016
Unreviewed test gardening.
- platform/mac/TestExpectations: Mark tests as failing / skipped.
- 4:38 PM Changeset in webkit [275320] by
-
- 3 edits2 adds in trunk
Null pointer access crash in WebCore::makeBoundaryPoint(..)
https://bugs.webkit.org/show_bug.cgi?id=223977
Patch by Venky Dass <yaranamavenkataramana@apple.com> on 2021-03-31
Reviewed by Darin Adler.
Source/WebCore:
In makeBoundaryPoint, position.containerNode() can be nullptr even if position.isNull() was false
Test: LayoutTests/editing/inserting/crash-make-boundary-point.html
- dom/Position.cpp:
(WebCore::makeBoundaryPoint):
LayoutTests:
Adding a refression test case.
- editing/inserting/crash-make-boundary-point-expected.txt: Added.
- editing/inserting/crash-make-boundary-point.html: Added.
- 4:35 PM Changeset in webkit [275319] by
-
- 1 copy in tags/Safari-611.1.21.0.13
Tag Safari-611.1.21.0.13.
- 4:34 PM Changeset in webkit [275318] by
-
- 2 edits in branches/safari-611.1.21.0-branch/Source/WebKit
Cherry-pick r275316. rdar://problem/76077169
REGRESSION: The NetworkProcess fails to relaunch after it crashes
https://bugs.webkit.org/show_bug.cgi?id=224022
<rdar://75148724>
Reviewed by Darin Adler.
NetworkProcessProxy::networkProcessCrashed() failed to clear defaultNetworkProcess() like we do on
network process termination (in NetworkProcessProxy::didTerminate()). As a result, upon a
network process crash, WebsiteDataStore::networkProcessCrashed() would get called and
properly clear WebsiteDataStore::m_networkProcess. However, when calling
WebsiteDataStore::networkProcess() later on, it would re-initialize m_networkProcess with
the same dead NetworkProcessProxy, since networkProcessForSession() relies on
NetworkProcessProxy::defaultNetworkProcess().
No new tests, will land an API test shortly as a follow-up.
- UIProcess/Network/NetworkProcessProxy.cpp: (WebKit::NetworkProcessProxy::networkProcessCrashed):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@275316 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 4:32 PM Changeset in webkit [275317] by
-
- 8 edits in branches/safari-611.1.21.0-branch/Source
Versioning.
WebKit-7611.1.21.0.13
- 4:19 PM Changeset in webkit [275316] by
-
- 2 edits in trunk/Source/WebKit
REGRESSION: The NetworkProcess fails to relaunch after it crashes
https://bugs.webkit.org/show_bug.cgi?id=224022
<rdar://75148724>
Reviewed by Darin Adler.
NetworkProcessProxy::networkProcessCrashed() failed to clear defaultNetworkProcess() like we do on
network process termination (in NetworkProcessProxy::didTerminate()). As a result, upon a
network process crash, WebsiteDataStore::networkProcessCrashed() would get called and
properly clear WebsiteDataStore::m_networkProcess. However, when calling
WebsiteDataStore::networkProcess() later on, it would re-initialize m_networkProcess with
the same dead NetworkProcessProxy, since networkProcessForSession() relies on
NetworkProcessProxy::defaultNetworkProcess().
No new tests, will land an API test shortly as a follow-up.
- UIProcess/Network/NetworkProcessProxy.cpp:
(WebKit::NetworkProcessProxy::networkProcessCrashed):
- 4:15 PM Changeset in webkit [275315] by
-
- 53 edits19 adds24 deletes in trunk/LayoutTests
[LayoutTests] Convert http/tests/contentextensions convert PHP to Python
https://bugs.webkit.org/show_bug.cgi?id=223891
<rdar://problem/75965634>
Reviewed by Jonathan Bedard.
- http/tests/contentextensions/block-cookies-basic.html:
- http/tests/contentextensions/block-cookies-basic.html.json:
- http/tests/contentextensions/block-cookies-in-image-load-in-onunload.html:
- http/tests/contentextensions/block-cookies-in-ping.html:
- http/tests/contentextensions/block-cookies-send.html:
- http/tests/contentextensions/resources/save_ping.py:
(not_being_called):
- http/tests/cookies/cookie-with-multiple-level-path.html:
- http/tests/cookies/document-cookie-after-showModalDialog.html:
- http/tests/cookies/document-cookie-during-iframe-parsing.html:
- http/tests/cookies/only-accept-first-party-cookies.html:
- http/tests/cookies/resources/cookie-utilities.js:
- http/tests/cookies/resources/cookie-utility.php: Removed.
- http/tests/cookies/resources/cookie-utility.py: Added.
(delete_cookie):
- http/tests/cookies/resources/cookie-with-multiple-level-path.php: Removed.
- http/tests/cookies/resources/cookie-with-multiple-level-path.py: Added.
- http/tests/cookies/resources/echo-cookies.php: Removed.
- http/tests/cookies/resources/echo-cookies.py: Added.
- http/tests/cookies/resources/echo-http-and-dom-cookies-and-notify-done.php: Removed.
- http/tests/cookies/resources/echo-http-and-dom-cookies-and-notify-done.py: Added.
- http/tests/cookies/resources/echo-json.php: Removed.
- http/tests/cookies/resources/echo-json.py: Added.
- http/tests/cookies/resources/post-cookies-onmessage.php: Removed.
- http/tests/cookies/resources/post-cookies-onmessage.py: Added.
- http/tests/cookies/resources/post-cookies-to-opener.php: Removed.
- http/tests/cookies/resources/post-cookies-to-opener.py: Added.
- http/tests/cookies/resources/resetCookies.js:
(resetCookies):
- http/tests/cookies/resources/set-cookie-and-redirect-back.php: Removed.
- http/tests/cookies/resources/set-cookie-and-redirect-back.py: Added.
- http/tests/cookies/resources/set-cookie-and-serve.php: Removed.
- http/tests/cookies/resources/set-cookie-and-serve.py: Added.
- http/tests/cookies/resources/set-cookie-on-redirect.php: Removed.
- http/tests/cookies/resources/set-cookie-on-redirect.py: Added.
- http/tests/cookies/resources/set-http-only-cookie.php: Removed.
- http/tests/cookies/resources/set-http-only-cookie.py: Added.
- http/tests/cookies/resources/setArraycookies-result.php: Removed.
- http/tests/cookies/resources/setArraycookies.php: Removed.
- http/tests/cookies/resources/setUtf8Cookies-result.php: Removed.
- http/tests/cookies/resources/setUtf8Cookies.php: Removed.
- http/tests/cookies/resources/third-party-cookie-relaxing-iframe.html:
- http/tests/cookies/same-site/fetch-after-navigating-iframe-in-cross-origin-page.html:
- http/tests/cookies/same-site/fetch-after-top-level-cross-origin-redirect.html:
- http/tests/cookies/same-site/fetch-after-top-level-navigation-from-cross-origin-page.html:
- http/tests/cookies/same-site/fetch-after-top-level-navigation-initiated-from-iframe-in-cross-origin-page.html:
- http/tests/cookies/same-site/fetch-after-top-level-same-origin-redirect.html:
- http/tests/cookies/same-site/fetch-in-same-origin-service-worker.html:
- http/tests/cookies/same-site/lax-samesite-cookie-after-cross-site-history-load.php: Removed.
- http/tests/cookies/same-site/lax-samesite-cookie-after-cross-site-history-load.py: Added.
- http/tests/cookies/same-site/popup-cross-site-post.html:
- http/tests/cookies/same-site/popup-cross-site.html:
- http/tests/cookies/same-site/popup-same-site-post.html:
- http/tests/cookies/same-site/popup-same-site-via-cross-site-redirect.html:
- http/tests/cookies/same-site/popup-same-site-via-same-site-redirect.html:
- http/tests/cookies/same-site/popup-same-site.html:
- http/tests/cookies/same-site/resources/click-hyperlink.php: Removed.
- http/tests/cookies/same-site/resources/click-hyperlink.py: Added.
- http/tests/cookies/same-site/resources/fetch-after-navigating-iframe-in-cross-origin-page.php: Removed.
- http/tests/cookies/same-site/resources/fetch-after-navigating-iframe-in-cross-origin-page.py: Added.
- http/tests/cookies/same-site/resources/fetch-after-top-level-cross-origin-redirect.php: Removed.
- http/tests/cookies/same-site/resources/fetch-after-top-level-cross-origin-redirect.py: Added.
- http/tests/cookies/same-site/resources/fetch-after-top-level-navigation-from-cross-origin-page.php: Removed.
- http/tests/cookies/same-site/resources/fetch-after-top-level-navigation-from-cross-origin-page.py: Added.
- http/tests/cookies/same-site/resources/fetch-after-top-level-navigation-initiated-from-iframe-in-cross-origin-page.php: Removed.
- http/tests/cookies/same-site/resources/fetch-after-top-level-navigation-initiated-from-iframe-in-cross-origin-page.py: Added.
- http/tests/cookies/same-site/resources/fetch-after-top-level-same-origin-redirect.php: Removed.
- http/tests/cookies/same-site/resources/fetch-after-top-level-same-origin-redirect.py: Added.
- http/tests/cookies/same-site/resources/fetch-in-same-origin-service-worker.php: Removed.
- http/tests/cookies/same-site/resources/fetch-in-same-origin-service-worker.py: Added.
- http/tests/cookies/same-site/resources/post-from-popup.html:
- http/tests/cookies/same-site/set-first-party-cross-site-cookies.php:
- http/tests/cookies/same-site/set-first-party-same-site-cookies.php:
- http/tests/cookies/set-cookie-on-redirect.html:
- http/tests/cookies/third-party-cookie-relaxing-expected.txt:
- http/tests/plugins/resources/third-party-cookie-accept-policy-iframe.html:
- http/tests/privateClickMeasurement/send-attribution-conversion-request.html:
- http/tests/resourceLoadStatistics/delete-script-accessible-cookies.html:
- http/tests/resourceLoadStatistics/exemptDomains/app-bound-domains-exempt-from-website-data-deletion-database.html:
- http/tests/resourceLoadStatistics/exemptDomains/app-bound-domains-exempt-from-website-data-deletion.html:
- http/tests/resourceLoadStatistics/operating-dates-all-but-cookies-not-removed-with-user-interaction-6-days-ago.html:
- http/tests/resourceLoadStatistics/operating-dates-all-but-cookies-removed-with-user-interaction-7-days-ago.html:
- http/tests/resourceLoadStatistics/operating-dates-all-website-data-removed.html:
- http/tests/resourceLoadStatistics/resources/set-all-kinds-of-cookies.py:
- http/tests/resourceLoadStatistics/resources/set-cookie-on-redirect.py:
- http/tests/resourceLoadStatistics/resources/set-cookie.py:
- http/tests/resourceLoadStatistics/standalone-web-application-exempt-from-website-data-deletion.html:
- http/tests/resourceLoadStatistics/website-data-removal-for-site-navigated-to-with-link-decoration.html:
- http/tests/resourceLoadStatistics/website-data-removal-for-site-with-user-interaction.html:
- http/tests/resourceLoadStatistics/website-data-removal-for-site-without-user-interaction.html:
- http/tests/resources/init.py: Removed.
- http/tests/resources/portabilityLayer.py:
(get_cookies):
(getState):
- http/tests/security/cookies/third-party-cookie-blocking-redirect.html:
- http/tests/websocket/tests/hybi/websocket-allowed-setting-cookie-as-third-party.html:
- http/tests/websocket/tests/hybi/websocket-blocked-from-setting-cookie-as-third-party.html:
- http/tests/websocket/tests/hybi/websocket-cookie-overwrite-behavior.html:
- http/tests/xmlhttprequest/access-control-preflight-credential-async-expected.txt:
- http/tests/xmlhttprequest/access-control-preflight-credential-sync-expected.txt:
- 4:11 PM Changeset in webkit [275314] by
-
- 36 edits2 copies1 move in trunk
[macOS] MediaSessionCoordinator should have join and leave methods
https://bugs.webkit.org/show_bug.cgi?id=223955
<rdar://problem/76021588>
Reviewed by Jer Noble.
Source/WebCore:
Add 'join' and 'leave' methods to MediaSessionCoordinator so a page has to opt-in
to participating in a coordinated session and can leave at any time. Don't have
the coordinator automatically call session methods when the private coordinator
finishes, just signal the promise and let the page handle it.
No new tests, updated media/media-session/mock-coordinator.html.
- CMakeLists.txt:
- DerivedSources-input.xcfilelist:
- DerivedSources-output.xcfilelist:
- DerivedSources.make:
- Modules/mediasession/MediaMetadata.idl: Fix Conditional.
- Modules/mediasession/MediaMetadataPlaylistMixin.idl: Ditto.
- Modules/mediasession/MediaPositionState.h: Add logging template.
(WTF::LogArgument<WebCore::MediaPositionState>::toString):
- Modules/mediasession/MediaSession.cpp:
(WebCore::MediaSession::MediaSession): Switch from beging a ContextDestructionObserver
to an ActiveDOMObject to the wrapper won't be collected while an event dispatch
is pending.
(WebCore::MediaSession::virtualHasPendingActivity const): Prevent collection while
event dispatch is pending.
(WebCore::MediaSession::setPositionState): Improve logging.
(WebCore::MediaPositionState::toJSONString const):
- Modules/mediasession/MediaSession.h:
- Modules/mediasession/MediaSession.idl:
- Modules/mediasession/MediaSessionCoordinator.cpp:
(WebCore::MediaSessionCoordinator::join): New.
(WebCore::MediaSessionCoordinator::leave): New.
(WebCore::MediaSessionCoordinator::seekTo): Reject unless state is 'joined'. Don't
call session method.
(WebCore::MediaSessionCoordinator::play): Ditto.
(WebCore::MediaSessionCoordinator::pause): Ditto.
(WebCore::MediaSessionCoordinator::setTrack): Ditto.
(WebCore::MediaSessionCoordinator::positionStateChanged):
(WebCore::MediaSessionCoordinator::playbackStateChanged):
(WebCore::MediaSessionCoordinator::readyStateChanged): Do nothing unless state is
'joined'. Improve logging.
(WebCore::MediaSessionCoordinator::seekSessionToTime): Ditto.
(WebCore::MediaSessionCoordinator::playSession): Ditto.
(WebCore::MediaSessionCoordinator::pauseSession): Ditto.
(WebCore::MediaSessionCoordinator::setSessionTrack): Ditto.
- Modules/mediasession/MediaSessionCoordinator.h:
(WebCore::MediaSessionCoordinator::identifier const):
(WebCore::MediaSessionCoordinator::state const):
- Modules/mediasession/MediaSessionCoordinator.idl:
- Modules/mediasession/MediaSessionCoordinatorMixin.idl: Fix Conditional.
- Modules/mediasession/MediaSessionCoordinatorPrivate.h: Declare new required methods.
- Modules/mediasession/MediaSessionCoordinatorState.h: Define states.
- Modules/mediasession/MediaSessionCoordinatorState.idl:
- Modules/mediasession/MediaSessionPlaylistMixin.idl: Fix Conditional.
- Sources.txt: Add JSMediaSessionCoordinatorState.cpp.
- WebCore.xcodeproj/project.pbxproj:
- testing/MockMediaSessionCoordinator.cpp:
(WebCore::MockMediaSessionCoordinator::join):
(WebCore::MockMediaSessionCoordinator::leave):
(WebCore::MockMediaSessionCoordinator::coordinatorStateChanged):
- testing/MockMediaSessionCoordinator.h:
Source/WebKit:
- UIProcess/Media/MediaSessionCoordinatorProxyPrivate.h: Renamed from Source/WebKit/UIProcess/Media/MediaSessionCoordinatorPrivateProxy.h.
- UIProcess/Media/RemoteMediaSessionCoordinatorProxy.cpp:
(WebKit::RemoteMediaSessionCoordinatorProxy::create):
(WebKit::RemoteMediaSessionCoordinatorProxy::RemoteMediaSessionCoordinatorProxy):
(WebKit::RemoteMediaSessionCoordinatorProxy::join):
(WebKit::RemoteMediaSessionCoordinatorProxy::leave):
(WebKit::RemoteMediaSessionCoordinatorProxy::coordinatorStateChanged):
- UIProcess/Media/RemoteMediaSessionCoordinatorProxy.h:
- UIProcess/Media/RemoteMediaSessionCoordinatorProxy.messages.in:
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::createMediaSessionCoordinator):
- UIProcess/WebPageProxy.h:
- WebKit.xcodeproj/project.pbxproj:
- WebProcess/MediaSession/RemoteMediaSessionCoordinator.cpp:
(WebKit::RemoteMediaSessionCoordinator::create):
(WebKit::RemoteMediaSessionCoordinator::RemoteMediaSessionCoordinator):
(WebKit::RemoteMediaSessionCoordinator::join):
(WebKit::RemoteMediaSessionCoordinator::leave):
(WebKit::RemoteMediaSessionCoordinator::coordinatorStateChanged):
- WebProcess/MediaSession/RemoteMediaSessionCoordinator.h:
- WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::createMediaSessionCoordinator):
- WebProcess/WebPage/WebPage.h:
- WebProcess/WebPage/WebPage.messages.in:
- UIProcess/Media/MediaSessionCoordinatorProxyPrivate.h: Renamed from Source/WebKit/UIProcess/Media/MediaSessionCoordinatorPrivateProxy.h.
- UIProcess/Media/RemoteMediaSessionCoordinatorProxy.cpp:
(WebKit::RemoteMediaSessionCoordinatorProxy::create):
(WebKit::RemoteMediaSessionCoordinatorProxy::RemoteMediaSessionCoordinatorProxy):
(WebKit::RemoteMediaSessionCoordinatorProxy::coordinatorStateChanged):
- UIProcess/Media/RemoteMediaSessionCoordinatorProxy.h:
- UIProcess/Media/RemoteMediaSessionCoordinatorProxy.messages.in:
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::createMediaSessionCoordinator):
- UIProcess/WebPageProxy.h:
- WebKit.xcodeproj/project.pbxproj:
- WebProcess/MediaSession/RemoteMediaSessionCoordinator.cpp:
(WebKit::RemoteMediaSessionCoordinator::create):
(WebKit::RemoteMediaSessionCoordinator::RemoteMediaSessionCoordinator):
(WebKit::RemoteMediaSessionCoordinator::coordinatorStateChanged):
- WebProcess/MediaSession/RemoteMediaSessionCoordinator.h:
- WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::createMediaSessionCoordinator):
- WebProcess/WebPage/WebPage.h:
- WebProcess/WebPage/WebPage.messages.in:
LayoutTests:
- media/media-session/mock-coordinator-expected.txt:
- media/media-session/mock-coordinator.html:
- 4:05 PM Changeset in webkit [275313] by
-
- 4 edits in trunk/Tools
Style checker should warn about use of future OS versions in WK_API_AVAILABLE
https://bugs.webkit.org/show_bug.cgi?id=223881
Reviewed by Jonathan Bedard.
Add some more brains to the WK_API_AVAILABLE style checker. It is now more
fussy and won't allow anything except a valid version string or a TBA macro.
There is also a mechanism to prevent adding version numbers that exceed the
publicly available SDK version for the relevant OS.
- Scripts/webkitpy/common/version_name_map.py:
(VersionNameMap.mapping_for_platform): Add 'macos' as an alias for 'mac'.
(VersionNameMap.max_public_version): Added.
- Scripts/webkitpy/style/checkers/cpp.py:
(check_arguments_for_wk_api_available):
(check_arguments_for_wk_api_available.max_version_for_platform):
(check_arguments_for_wk_api_available.check_version_string):
(check_style):
(check_min_versions_of_wk_api_available): Deleted.
- Scripts/webkitpy/style/checkers/cpp_unittest.py:
(WebKitStyleTest):
- 3:36 PM Changeset in webkit [275312] by
-
- 2 edits in trunk/Source/WebCore
Remove misleading FIXME comment in RenderBox::shouldComputeLogicalWidthFromAspectRatioAndInsets
https://bugs.webkit.org/show_bug.cgi?id=224020
Reviewed by Simon Fraser.
RenderStyle should not contain such logic (or any layout related logic for that matter).
- rendering/RenderBox.cpp:
(WebCore::RenderBox::shouldComputeLogicalWidthFromAspectRatioAndInsets const):
- 3:32 PM Changeset in webkit [275311] by
-
- 2 edits in trunk/LayoutTests/imported/w3c
REGRESSION (r275227): [ macOS iOS Release ] imported/w3c/web-platform-tests/css/css-transitions/properties-value-003.html is a constant failure
https://bugs.webkit.org/show_bug.cgi?id=224006
Uneviewed test gardening.
Rebaseline test that started to consantly fail.
- web-platform-tests/css/css-transitions/properties-value-003-expected.txt:
- 3:31 PM Changeset in webkit [275310] by
-
- 2 edits in trunk/Source/WebInspectorUI
Web Inspector: Autocomplete experimental CSS Color values (hwb, lch, lab, color-mix, color-contrast)
https://bugs.webkit.org/show_bug.cgi?id=224010
<rdar://problem/76065217>
Reviewed by BJ Burg.
- UserInterface/Models/CSSKeywordCompletions.js:
- 3:11 PM Changeset in webkit [275309] by
-
- 2 edits in trunk/LayoutTests
REGRESSION (r275227): [ macOS iOS Release ] imported/w3c/web-platform-tests/css/css-transitions/properties-value-003.html is a constant failure
https://bugs.webkit.org/show_bug.cgi?id=224006
Uneviewed test gardening.
- platform/mac/TestExpectations: Removed test expectations because EWS was not flagging this failure.
- 3:03 PM Changeset in webkit [275308] by
-
- 3 edits in trunk/Source/WebCore
Make FontCache self-contained (remove static global variables)
https://bugs.webkit.org/show_bug.cgi?id=223995
Reviewed by Darin Adler.
This refactors FontCache so that the iOS font lock, the
FontPlatformDataCache, the FontDataCache, the FontVerticalDataCache,
the FontSelector clients list and the generation counter all live on
FontCache instead of in static global variables.
No new tests, no change in behavior.
- platform/graphics/FontCache.cpp:
(WebCore::FontCache::FontCache):
(WebCore::FontPlatformDataCacheKey::isHashTableDeletedValue const):
(WebCore::FontCache::getCachedFontPlatformData):
(WebCore::FontCache::verticalData):
(WebCore::FontCache::fontForPlatformData):
(WebCore::FontCache::purgeInactiveFontDataIfNeeded):
(WebCore::FontCache::purgeInactiveFontData):
(WebCore::FontCache::fontCount):
(WebCore::FontCache::inactiveFontCount):
(WebCore::FontCache::addClient):
(WebCore::FontCache::removeClient):
(WebCore::FontCache::invalidate):
- platform/graphics/FontCache.h:
(WebCore::FontCache::generation const):
- 2:48 PM Changeset in webkit [275307] by
-
- 5 edits in trunk/Tools
EWS should stress test newly added tests
https://bugs.webkit.org/show_bug.cgi?id=223938
Reviewed by Jonathan Bedard.
- CISupport/ews-build/config.json:
- CISupport/ews-build/factories.py:
(Factory):
(StressTestFactory):
- CISupport/ews-build/factories_unittest.py: Added unit-tests.
- CISupport/ews-build/loadConfig.py:
- 2:45 PM Changeset in webkit [275306] by
-
- 2 edits in trunk/Source/WebKit
[iOS] Update a couple of icons in the file upload context menu
https://bugs.webkit.org/show_bug.cgi?id=224013
<rdar://problem/73234218>
Reviewed by Tim Horton.
Use updated symbols for the "Photo Library" and "Take Photo or Video" menu items.
- UIProcess/ios/forms/WKFileUploadPanel.mm:
(-[WKFileUploadPanel contextMenuInteraction:configurationForMenuAtLocation:]):
- 1:36 PM Changeset in webkit [275305] by
-
- 2 edits in trunk/Tools
REGRESSION (r275150): set-webkit-configuration is too aggressive at deleting config files when switch is not set
<https://webkit.org/b/224009>
Reviewed by Mark Lam.
- Scripts/set-webkit-configuration:
- Partially revert changes in r275150 when the config file wasn't always deleted for $architecture, $configuration, $forceOptimizationLevel and $ltoMode.
- 1:32 PM Changeset in webkit [275304] by
-
- 2 edits in trunk/Source/WTF
Ease experimentation by enabling <model> if SEPARATED_MODEL is being used
https://bugs.webkit.org/show_bug.cgi?id=224011
Reviewed by Tim Horton.
- Scripts/Preferences/WebPreferencesExperimental.yaml:
There is little point to experimenting with SEPARATED_MODEL if <model> is disabled.
- 1:15 PM Changeset in webkit [275303] by
-
- 9 edits2 moves1 add4 deletes in trunk/Source/WebCore
Merge DOMWindow+IndexedDatabase.idl and WorkerGlobalScope+IndexedDatabase.idl into a single WindowOrWorkerGlobalScope+IndexedDatabase.idl to match the IndexedDB spec
https://bugs.webkit.org/show_bug.cgi?id=223856
Reviewed by Sihui Liu.
Replaces DOMWindow+IndexedDatabase.idl and WorkerGlobalScope+IndexedDatabase.idl with
WindowOrWorkerGlobalScope+IndexedDatabase.idl which contains a partial mixin interface
like specified. Also moves implementations of supplements into the cpp file, as the only
use of them is by the two indexedDB static functions.
- CMakeLists.txt:
- DerivedSources-input.xcfilelist:
- DerivedSources-output.xcfilelist:
- DerivedSources.make:
- Modules/indexeddb/DOMWindow+IndexedDatabase.idl: Removed.
- Modules/indexeddb/DOMWindowIndexedDatabase.cpp: Removed.
- Modules/indexeddb/DOMWindowIndexedDatabase.h: Removed.
- Modules/indexeddb/WindowOrWorkerGlobalScope+IndexedDatabase.idl: Added.
- Modules/indexeddb/WindowOrWorkerGlobalScopeIndexedDatabase.cpp: Added.
(WebCore::DOMWindowIndexedDatabase::supplementName):
(WebCore::WorkerGlobalScopeIndexedDatabase::supplementName):
(WebCore::WindowOrWorkerGlobalScopeIndexedDatabase::indexedDB):
(WebCore::DOMWindowIndexedDatabase::DOMWindowIndexedDatabase):
(WebCore::DOMWindowIndexedDatabase::from):
(WebCore::DOMWindowIndexedDatabase::indexedDB):
(WebCore::WorkerGlobalScopeIndexedDatabase::WorkerGlobalScopeIndexedDatabase):
(WebCore::WorkerGlobalScopeIndexedDatabase::from):
(WebCore::WorkerGlobalScopeIndexedDatabase::indexedDB):
- Modules/indexeddb/WindowOrWorkerGlobalScopeIndexedDatabase.h: Added.
- Modules/indexeddb/WorkerGlobalScope+IndexedDatabase.idl: Removed.
- Modules/indexeddb/WorkerGlobalScopeIndexedDatabase.cpp: Removed.
- Modules/indexeddb/WorkerGlobalScopeIndexedDatabase.h: Removed.
- Sources.txt:
- WebCore.xcodeproj/project.pbxproj:
- bindings/js/JSDOMWindowCustom.cpp:
- inspector/agents/InspectorIndexedDBAgent.cpp:
- 1:13 PM Changeset in webkit [275302] by
-
- 15 edits in trunk/Source
Assertions in DisplayUpdate when dragging WebView windows between screens with different refresh rates
https://bugs.webkit.org/show_bug.cgi?id=223984
Reviewed by Sam Weinig.
Source/WebCore:
There are various reasons why rigorous assertions in DisplayUpdate::relevantForUpdateFrequency()
are ill advised.
When WebKitLegacy calls windowScreenDidChange() it does not pass in a nominal display
refresh rate, so we assume 60fps. If the screen actually has a non-60fps refresh rate, then
we can get mixed 60/50 state in various places; this change fixes one of them, but such bugs
have to not result in assertions or divide by zero crashes in
DisplayUpdate::relevantForUpdateFrequency().
The second reason is webkit.org/b/212120; we may start DisplayRefreshMonitors with DisplayID
0 before we know what screen we're on, again risking a situation where the actual screen has
a non-60fps refresh rate.
To fix the case where no nominal refresh rate is passed through
Chrome::windowScreenDidChange(), allow a DisplayRefreshMonitor to supply a rate; often, a
DisplayRefreshMonitor can compute one from its knowledge of the display. This requires
DisplayRefreshMonitorManager is able to create a DisplayRefreshMonitor with no client, so
support that with a little refactoring.
Have some DisplayRefreshMonitor implementations supply their nominal display refresh rate
when known.
- page/Chrome.cpp:
(WebCore::Chrome::windowScreenDidChange): No need to early return here; Page does the same check.
- page/Page.cpp:
(WebCore::Page::windowScreenDidChange): Push the call to adjustRenderingUpdateFrequency() into
renderingUpdateScheduler().windowScreenDidChange() as suggested in a previous review.
- page/RenderingUpdateScheduler.cpp:
(WebCore::RenderingUpdateScheduler::windowScreenDidChange):
- platform/graphics/DisplayRefreshMonitor.h:
(WebCore::DisplayRefreshMonitor::displayNominalFramesPerSecond):
- platform/graphics/DisplayRefreshMonitorManager.cpp:
(WebCore::DisplayRefreshMonitorManager::ensureMonitorForDisplayID):
(WebCore::DisplayRefreshMonitorManager::nominalFramesPerSecondForDisplay):
(WebCore::DisplayRefreshMonitorManager::monitorForClient):
- platform/graphics/DisplayRefreshMonitorManager.h:
- platform/graphics/DisplayUpdate.cpp:
(WebCore::DisplayUpdate::relevantForUpdateFrequency const):
- platform/graphics/ios/DisplayRefreshMonitorIOS.h:
- platform/graphics/ios/DisplayRefreshMonitorIOS.mm:
(WebCore::DisplayRefreshMonitorIOS::displayNominalFramesPerSecond):
- platform/graphics/mac/LegacyDisplayRefreshMonitorMac.cpp:
(WebCore::LegacyDisplayRefreshMonitorMac::ensureDisplayLink):
(WebCore::LegacyDisplayRefreshMonitorMac::startNotificationMechanism):
(WebCore::LegacyDisplayRefreshMonitorMac::displayNominalFramesPerSecond):
- platform/graphics/mac/LegacyDisplayRefreshMonitorMac.h:
Source/WebKit:
RemoteLayerTreeDisplayRefreshMonitor knows its m_preferredFramesPerSecond so can
return that.
- WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDisplayRefreshMonitor.h:
- WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDisplayRefreshMonitor.mm:
(WebKit::RemoteLayerTreeDisplayRefreshMonitor::displayNominalFramesPerSecond):
- 12:34 PM Changeset in webkit [275301] by
-
- 7 edits in trunk/Source
Add logging in IndexedDB to help debug flaky quota tests
https://bugs.webkit.org/show_bug.cgi?id=223578
<rdar://problem/75956789>
Reviewed by Alexey Proskuryakov.
Source/WebCore:
With r274323, we know that the tests fail because of IndexedDB. IndexedDB data should be cleared between tests,
so let's add more logging to see what databases are left.
- 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:
Source/WebKit:
- NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::storageQuotaManager):
- 12:25 PM Changeset in webkit [275300] by
-
- 5 edits2 adds in trunk
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.
- 11:45 AM Changeset in webkit [275299] by
-
- 3 edits1 add in trunk
Missing exception check in HashMapImpl::add().
https://bugs.webkit.org/show_bug.cgi?id=224007
rdar://76053163
Reviewed by Saam Barati.
JSTests:
- stress/missing-exception-check-in-HashMapImpl-add.js: Added.
Source/JavaScriptCore:
- runtime/HashMapImpl.h:
(JSC::HashMapImpl::add):
- 11:37 AM Changeset in webkit [275298] by
-
- 8 edits in trunk
Add deprecation macros.
Source/WebCore:
- platform/network/cf/CertificateInfoCFNet.cpp:
(WebCore::certificatesMatch):
(WebCore::CertificateInfo::certificateChainFromSecTrust):
(WebCore::CertificateInfo::containsNonRootSHA1SignedCertificate const):
Source/WebKit:
- Shared/mac/WebCoreArgumentCodersMac.mm:
(IPC::encodeNSError):
- UIProcess/Authentication/mac/WebCredentialMac.mm:
(WebKit::leafCertificate):
(WebKit::chain):
Tools:
- TestWebKitAPI/Tests/WebKitCocoa/Challenge.mm:
(verifyCertificateAndPublicKey):
- TestWebKitAPI/Tests/WebKitCocoa/ServiceWorkerBasic.mm:
- 11:33 AM Changeset in webkit [275297] by
-
- 7 edits1 add in trunk
WKContentView should support UIKit protocol methods for becoming focused
https://bugs.webkit.org/show_bug.cgi?id=224003
<rdar://problem/75313658>
Reviewed by Megan Gardner.
Source/WebKit:
Implement a few protocol methods on
UIFocusEnvironment. See below for more details.
Test: UIFocusTests.OverrideCanBecomeFocused
- UIProcess/API/ios/WKWebViewIOS.mm:
(-[WKWebView canBecomeFocused]):
- UIProcess/ios/WKContentView.h:
- UIProcess/ios/WKContentView.mm:
(-[WKContentView canBecomeFocused]):
(-[WKContentView canBecomeFocusedForWebView]):
Implement
-canBecomeFocused, and returnYESby default. If-canBecomeFocusedis overridden onWKWebView,
then defer to that overridden method instead.
(-[WKContentView didUpdateFocusInContext:withAnimationCoordinator:]):
Handle the focus environment change by advancing to the next or previous focusable element, depending on the
focus context's heading direction.
- UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView _becomeFirstResponderWithSelectionMovingForward:completionHandler:]):
Add a null check so that callers that don't need to know when the focus change is complete are able to pass in a
nilcompletion handler.
Tools:
Add a test to verify that the vaue of
-[WKContentView canBecomeFocused]can be overridden by subclassing
-[WKWebView canBecomeFocused].
- TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
- TestWebKitAPI/Tests/ios/UIFocusTests.mm: Added.
(-[UIFocusTestWKWebView canBecomeFocused]):
- 11:29 AM Changeset in webkit [275296] by
-
- 4 edits in trunk/Source
Remove CA_WHERE_ADDITIVE_TRANSFORMS_ARE_REVERSED
https://bugs.webkit.org/show_bug.cgi?id=224000
Reviewed by Simon Fraser.
Since trunk is no longer maintained on macOS versions earlier than 10.15,
we can remove this compile-time flag.
Source/WebCore:
- platform/graphics/ca/GraphicsLayerCA.cpp:
(WebCore::GraphicsLayerCA::updateAnimations):
Source/WTF:
- wtf/PlatformHave.h:
- 11:14 AM Changeset in webkit [275295] by
-
- 9 edits2 adds2 deletes in trunk/LayoutTests
[LayoutTests] Convert http/tests/download convert PHP to Python
https://bugs.webkit.org/show_bug.cgi?id=222618
<rdar://problem/74949253>
Reviewed by Jonathan Bedard.
- http/tests/download/default-encoding-expected.txt:
- http/tests/download/default-encoding.html:
- http/tests/download/inherited-encoding-expected.txt:
- http/tests/download/inherited-encoding-form-submission-result-expected.txt:
- http/tests/download/inherited-encoding-form-submission-result.html:
- http/tests/download/inherited-encoding.html:
- http/tests/download/literal-utf-8-expected.txt:
- http/tests/download/literal-utf-8.html:
- http/tests/download/resources/literal-koi8-r.php: Removed.
- http/tests/download/resources/literal-koi8-r.py: Added.
- http/tests/download/resources/literal-utf-8.php: Removed.
- http/tests/download/resources/literal-utf-8.py: Added.
- 11:13 AM Changeset in webkit [275294] by
-
- 4 edits in trunk/Source
Make use of NSURLSessionWebSocket.sendCloseCode if available
https://bugs.webkit.org/show_bug.cgi?id=223999
Reviewed by Alex Christensen.
Source/WebCore/PAL:
- pal/spi/cf/CFNetworkSPI.h:
Source/WebKit:
If available, we just call sendCloseCode, cancel will happen when NetworkSocketChannel is destroyed.
Covered by LayoutTests/http/tests/websocket/tests/hybi/client-close-2.html.
- NetworkProcess/cocoa/WebSocketTaskCocoa.mm:
(WebKit::WebSocketTask::close):
- 10:49 AM Changeset in webkit [275293] by
-
- 2 edits in trunk/Source/WebCore
Web Inspector: CSS Grid overlay track sizes are incorrect when inline styles are applied to the element
https://bugs.webkit.org/show_bug.cgi?id=223908
Reviewed by BJ Burg.
Add checking the inline style attributes on an element when collecting authored track sizes for grid overlays.
- inspector/InspectorOverlay.cpp:
(WebCore::authoredGridTrackSizes):
- 10:39 AM Changeset in webkit [275292] by
-
- 1 copy in tags/Safari-612.1.8.2
Tag Safari-612.1.8.2.
- 10:37 AM Changeset in webkit [275291] by
-
- 8 edits in branches/safari-612.1.8-branch/Source
Versioning.
WebKit-7612.1.8.2
- 10:25 AM Changeset in webkit [275290] by
-
- 2 edits in trunk/Tools
Add test for SOCKS5 proxy SPI
https://bugs.webkit.org/show_bug.cgi?id=223964
Patch by Alex Christensen <achristensen@webkit.org> on 2021-03-31
Reviewed by Sam Weinig.
- TestWebKitAPI/Tests/WebKitCocoa/Proxy.mm:
(TestWebKitAPI::TEST):
- 10:21 AM Changeset in webkit [275289] by
-
- 4 edits in trunk/Source/WebKit
Send WebSocket cocoa authentication challenge to AuthenticationManager
https://bugs.webkit.org/show_bug.cgi?id=223998
Reviewed by Alex Christensen.
In case of authentication challenge related to WebSocketTask, send it to the AuthenticationManager for evaluation.
Minor refactoring to reuse the same completion handler as for network data tasks.
Covered by LayoutTests/http/tests/websocket/tests/hybi/simple-wss.html with NSURLSessionWebSocket code path enabled.
- NetworkProcess/cocoa/NetworkSessionCocoa.mm:
(WebKit::NetworkSessionCocoa::allowsSpecificHTTPSCertificateForHost):
(WebKit::CompletionHandler<void):
(WebKit::NetworkSessionCocoa::continueDidReceiveChallenge):
(WebKit::NetworkSessionCocoa::createWebSocketTask):
- NetworkProcess/cocoa/WebSocketTaskCocoa.h:
(WebKit::WebSocketTask::pageID const):
(WebKit::WebSocketTask::partition const):
- NetworkProcess/cocoa/WebSocketTaskCocoa.mm:
- 10:15 AM Changeset in webkit [275288] by
-
- 12 edits in trunk/Source
ServiceWorkerContextData should not be saved both on ServiceWorkerThread & ServiceWorkerGlobalScope
https://bugs.webkit.org/show_bug.cgi?id=224001
Reviewed by Geoffrey Garen.
Source/WebCore:
ServiceWorkerContextData should not be saved both on ServiceWorkerThread & ServiceWorkerGlobalScope.
ServiceWorkerContextData contains script sources and may use a large amount of memory.
To address the issue, we now clear ServiceWorkerThread's context data once the ServiceWorkerGlobalScope
has been constructed.
- inspector/agents/worker/ServiceWorkerAgent.cpp:
(WebCore::ServiceWorkerAgent::getInitializationInfo):
- workers/service/ServiceWorkerGlobalScope.cpp:
(WebCore::ServiceWorkerGlobalScope::create):
(WebCore::ServiceWorkerGlobalScope::ServiceWorkerGlobalScope):
- workers/service/ServiceWorkerGlobalScope.h:
- workers/service/context/SWContextManager.cpp:
(WebCore::SWContextManager::registerServiceWorkerThreadForInstall):
- workers/service/context/ServiceWorkerThread.cpp:
(WebCore::ServiceWorkerThread::ServiceWorkerThread):
(WebCore::ServiceWorkerThread::createWorkerGlobalScope):
(WebCore::ServiceWorkerThread::heartBeatTimerFired):
(WebCore::ServiceWorkerThread::finishedFiringInstallEvent):
- workers/service/context/ServiceWorkerThread.h:
(WebCore::ServiceWorkerThread::identifier const):
(WebCore::ServiceWorkerThread::jobDataIdentifier const):
(WebCore::ServiceWorkerThread::contextData const): Deleted.
- workers/service/context/ServiceWorkerThreadProxy.cpp:
(WebCore::ServiceWorkerThreadProxy::ServiceWorkerThreadProxy):
- workers/service/context/ServiceWorkerThreadProxy.h:
Source/WebKit:
- WebProcess/Storage/WebSWContextManagerConnection.cpp:
(WebKit::WebSWContextManagerConnection::installServiceWorker):
- WebProcess/Storage/WebSWContextManagerConnection.h:
- 10:10 AM Changeset in webkit [275287] by
-
- 3 edits in trunk/Tools
Add build step to run layout tests for multiple iterations in guard malloc mode
https://bugs.webkit.org/show_bug.cgi?id=224002
Reviewed by Jonathan Bedard.
- CISupport/ews-build/steps.py:
(RunWebKitTests):
(RunWebKitTests.setLayoutTestCommand):
(RunWebKitTestsInStressGuardmallocMode):
- CISupport/ews-build/steps_unittest.py:
- 10:06 AM Changeset in webkit [275286] by
-
- 4 edits in branches/safari-612.1.9-branch/Source/WebKit/FeatureFlags
Unreviewed build fix after r275246.
Conflict markers in source.
- 9:15 AM Changeset in webkit [275285] by
-
- 3 edits in trunk/Source/JavaScriptCore
[JSC] Remove warnings about unnecessary operator= for ARMv7Assembler LinkRecord
https://bugs.webkit.org/show_bug.cgi?id=223916
Patch by Xan Lopez <Xan Lopez> on 2021-03-31
Reviewed by Darin Adler.
Many years ago we defined an assignment operator for LinkRecord in
order to speed up build times (see #90930). Recent GCC versions
tell us that if we do that we almost certainly want to define a
copy constructor too. The ARM64Assembler file already does it, so
do it too for ARMv7 to remove the warnings.
- assembler/ARM64Assembler.h:
- assembler/ARMv7Assembler.h:
(JSC::ARMv7Assembler::LinkRecord::LinkRecord):
(JSC::ARMv7Assembler::LinkRecord::operator=):
- 9:10 AM Changeset in webkit [275284] by
-
- 2 edits in branches/safari-612.1.9-branch/Source/WebKit
Cherry-pick r275248. rdar://problem/76054448
Allow WebAuthn process talk to the ASD
https://bugs.webkit.org/show_bug.cgi?id=223947
<rdar://75908828>
Reviewed by Brent Fulgham.
- Resources/SandboxProfiles/ios/com.apple.WebKit.WebAuthn.sb:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@275248 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 9:10 AM Changeset in webkit [275283] by
-
- 3 edits in trunk/Tools
Add build step to run layout tests for multiple iterations
https://bugs.webkit.org/show_bug.cgi?id=223950
Reviewed by Jonathan Bedard.
- CISupport/ews-build/steps.py:
(RunWebKitTestsInStressMode):
(RunWebKitTestsInStressMode.setLayoutTestCommand):
(RunWebKitTestsInStressMode.evaluateCommand):
- CISupport/ews-build/steps_unittest.py: Added unit-tests.
- 9:03 AM Changeset in webkit [275282] by
-
- 3 edits in trunk/Tools
Add a fast-cq mode for commit-queue which will skip build and test
https://bugs.webkit.org/show_bug.cgi?id=223954
Reviewed by Jonathan Bedard.
- CISupport/ews-build/steps.py: Enable fast-cq mode when patch name on bugzilla starts with [fast-cq].
(BugzillaMixin):
(BugzillaMixin._is_patch_obsolete):
(CompileWebKit.doStepIf): Skip building on commit-queue when fast_commit_queue property is set.
(RunWebKitTests.doStepIf): Skip testing on commit-queue when fast_commit_queue property is set.
- CISupport/ews-build/steps_unittest.py:
- 8:52 AM WebKitGTK/2.32.x edited by
- (diff)
- 8:40 AM Changeset in webkit [275281] by
-
- 8 edits in trunk
font-stretch should support 0% and disallow animating to a value below 0%
https://bugs.webkit.org/show_bug.cgi?id=223994
Reviewed by Antti Koivisto.
LayoutTests/imported/w3c:
Mark 23 tests as PASS results.
- web-platform-tests/css/css-fonts/animations/font-stretch-interpolation-expected.txt:
- web-platform-tests/css/css-fonts/variations/at-font-face-descriptors-expected.txt:
- web-platform-tests/css/css-fonts/variations/font-parse-numeric-stretch-style-weight-expected.txt:
- web-platform-tests/css/css-fonts/variations/font-stretch-expected.txt:
Source/WebCore:
Trying to fix css/css-fonts/animations/font-stretch-interpolation.html showed two issues:
- we disallowed 0% as a valid value when parsing font-stretch,
- we allowed negative values when blending.
This patch addresses both.
- animation/CSSPropertyAnimation.cpp:
(WebCore::blendFunc):
- css/parser/CSSPropertyParser.cpp:
(WebCore::fontStretchIsWithinRange):
- 8:38 AM Changeset in webkit [275280] by
-
- 8 edits in trunk/Source/WebCore
Remove the Silently argument to WebAnimation::cancel()
https://bugs.webkit.org/show_bug.cgi?id=223992
Reviewed by Frédéric Wang.
The recent commit r275228 removed the use of the Silently argument in
AnimationTimeline::cancelDeclarativeAnimationsForStyleable(), which
was the only function that would eventually call into WebAnimation::cancel()
with a value other than the default, Silently::No.
So we remove that argument to WebAnimation::cancel(), its call sites and
WebAnimation::resetPendingTasks() which was called from it.
And since the Silently enum is no longer used outside of WebAnimation.cpp,
we move it to be private.
- animation/AnimationTimeline.cpp:
(WebCore::AnimationTimeline::elementWasRemoved):
(WebCore::AnimationTimeline::cancelDeclarativeAnimationsForStyleable):
- animation/AnimationTimeline.h:
- animation/DeclarativeAnimation.cpp:
(WebCore::DeclarativeAnimation::cancel):
- animation/DeclarativeAnimation.h:
- animation/WebAnimation.cpp:
(WebCore::WebAnimation::cancel):
(WebCore::WebAnimation::resetPendingTasks):
- animation/WebAnimation.h:
- rendering/updating/RenderTreeUpdater.cpp:
(WebCore::RenderTreeUpdater::tearDownRenderers):
- 7:10 AM Changeset in webkit [275279] by
-
- 2 edits in trunk/Source/WebCore
Use :is() instead of :matches() on UA stylesheet
https://bugs.webkit.org/show_bug.cgi?id=223996
Reviewed by Antoine Quint.
Use the standard name.
- css/html.css:
(:is(article, aside, nav, section) h1):
(:is(article, aside, nav, section) :is(article, aside, nav, section) h1):
(:is(article, aside, nav, section) :is(article, aside, nav, section) :is(article, aside, nav, section) h1):
(:is(article, aside, nav, section) :is(article, aside, nav, section) :is(article, aside, nav, section) :is(article, aside, nav, section) h1):
(:is(article, aside, nav, section) :is(article, aside, nav, section) :is(article, aside, nav, section) :is(article, aside, nav, section) :is(article, aside, nav, section) h1):
(#endif):
(#if defined(WTF_PLATFORM_IOS_FAMILY) && WTF_PLATFORM_IOS_FAMILY):
(input:is([type="hidden"], [type="image"], [type="file"])):
(input:is([type="radio"], [type="checkbox"])):
(input:is([type="button"], [type="submit"], [type="reset"])):
(input:is([type="button"], [type="submit"], [type="reset"]), input[type="file"]::file-selector-button, button):
(input:is([type="button"], [type="submit"], [type="reset"]):active, input[type="file"]::file-selector-button:active, button:active):
(input:is([type="button"], [type="submit"], [type="reset"]):active, input[type="file"]:active::file-selector-button, button:active):
(input:is([type="button"], [type="submit"], [type="reset"]):active:disabled,):
(input:is([type="button"], [type="submit"], [type="reset"]):disabled,):
(input:is([type="checkbox"], [type="radio"]):checked):
(input:is([type="checkbox"], [type="radio"]):disabled):
(input:is([type="checkbox"], [type="radio"]):checked:disabled):
(:matches(article, aside, nav, section) h1): Deleted.
(:matches(article, aside, nav, section) :matches(article, aside, nav, section) h1): Deleted.
(:matches(article, aside, nav, section) :matches(article, aside, nav, section) :matches(article, aside, nav, section) h1): Deleted.
(:matches(article, aside, nav, section) :matches(article, aside, nav, section) :matches(article, aside, nav, section) :matches(article, aside, nav, section) h1): Deleted.
(:matches(article, aside, nav, section) :matches(article, aside, nav, section) :matches(article, aside, nav, section) :matches(article, aside, nav, section) :matches(article, aside, nav, section) h1): Deleted.
(input:matches([type="hidden"], [type="image"], [type="file"])): Deleted.
(input:matches([type="radio"], [type="checkbox"])): Deleted.
(input:matches([type="button"], [type="submit"], [type="reset"])): Deleted.
(input:matches([type="button"], [type="submit"], [type="reset"]), input[type="file"]::file-selector-button, button): Deleted.
(input:matches([type="button"], [type="submit"], [type="reset"]):active, input[type="file"]::file-selector-button:active, button:active): Deleted.
(input:matches([type="button"], [type="submit"], [type="reset"]):active, input[type="file"]:active::file-selector-button, button:active): Deleted.
(input:matches([type="button"], [type="submit"], [type="reset"]):active:disabled,): Deleted.
(input:matches([type="button"], [type="submit"], [type="reset"]):disabled,): Deleted.
(input:matches([type="checkbox"], [type="radio"]):checked): Deleted.
(input:matches([type="checkbox"], [type="radio"]):disabled): Deleted.
(input:matches([type="checkbox"], [type="radio"]):checked:disabled): Deleted.
- 6:40 AM Changeset in webkit [275278] by
-
- 4 edits in trunk/Source/WebCore
[RenderTreeBuilder] Do not merge anonymous table cells with mismatching children types
https://bugs.webkit.org/show_bug.cgi?id=223979
<rdar://76003320>
Reviewed by Antti Koivisto.
A table cell (as it establishes a block formatting context) should only contain either
inline or block level inflow boxes.
- rendering/RenderElement.h:
(WebCore::RenderElement::firstInFlowChild const):
(WebCore::RenderElement::lastInFlowChild const):
- rendering/RenderObject.h:
(WebCore::RenderObject::isInFlow const):
(WebCore::RenderObject::previousInFlowSibling const):
(WebCore::RenderObject::nextInFlowSibling const):
- rendering/updating/RenderTreeBuilderTable.cpp:
(WebCore::canCollapseNextSibling):
(WebCore::RenderTreeBuilder::Table::collapseAndDetachAnonymousNextSibling):
- 5:16 AM Changeset in webkit [275277] by
-
- 4 edits2 adds in trunk
Animated pseudo element style resolved against wrong parent style
https://bugs.webkit.org/show_bug.cgi?id=223990
rdar://74997361
Reviewed by Antoine Quint.
Source/WebCore:
In createAnimatedElementUpdate we get the parent and parent box styles from the parent stack.
This is wrong for pseudo elements. Their parent style should the host style which is not pushed to the stack.
This matters in style adjuster which may apply wrong adjustments as a result.
Test: fast/animation/pseudo-element-style-adjuster.html
- style/StyleTreeResolver.cpp:
(WebCore::Style::TreeResolver::resolveElement):
(WebCore::Style::TreeResolver::resolvePseudoStyle):
(WebCore::Style::TreeResolver::createAnimatedElementUpdate):
Make static and provide the parent and parent box styles as parameters.
- style/StyleTreeResolver.h:
LayoutTests:
- fast/animation/pseudo-element-style-adjuster-expected.html: Added.
- fast/animation/pseudo-element-style-adjuster.html: Added.
- 4:16 AM Changeset in webkit [275276] by
-
- 9 edits in trunk
Apply permission policy to geolocation
https://bugs.webkit.org/show_bug.cgi?id=223248
Reviewed by Eric Carlson.
Source/WebCore:
Only allow third-party iframes if allowed by permission policy,
following https://w3c.github.io/geolocation-api/#permissions-policy.
Covered by API tests.
- Modules/geolocation/Geolocation.cpp:
(WebCore::Geolocation::shouldBlockGeolocationRequests):
- html/FeaturePolicy.cpp:
(WebCore::policyTypeName):
(WebCore::FeaturePolicy::parse):
(WebCore::FeaturePolicy::allows const):
- html/FeaturePolicy.h:
Tools:
- TestWebKitAPI/Tests/WebKitCocoa/UIDelegate.mm:
(-[GeolocationDelegateNew setValidationHandler:]):
(-[GeolocationDelegateNew _webView:requestGeolocationPermissionForOrigin:initiatedByFrame:decisionHandler:]):
(-[GeolocationPermissionMessageHandler userContentController:didReceiveScriptMessage:]):
LayoutTests:
- http/tests/security/sandboxed-iframe-geolocation-getCurrentPosition-expected.txt:
- http/tests/security/sandboxed-iframe-geolocation-watchPosition-expected.txt:
- 4:11 AM Changeset in webkit [275275] by
-
- 12 edits2 adds in trunk/Source
[WebRTC][GStreamer] Build and use the openh264 based encoder if present on the system
https://bugs.webkit.org/show_bug.cgi?id=202538
Patch by Thibault Saunier <tsaunier@igalia.com> and Philippe Normand <pnormand@igalia.com> on 2021-03-31
Reviewed by Xabier Rodriguez-Calvar and Adrian Perez de Castro.
Source/ThirdParty/libwebrtc:
In WPE/GTK we would like to have the libwebrtc openh264 encoder enabled if libopenh264 is
present on the host (eg not vendored).
- CMakeLists.txt:
- 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:
Source/WebCore:
Enable the openh264 encoder if it is available, it would be preferred over existing
GStreamer H.264 encoders in such case.
- platform/mediastream/libwebrtc/GStreamerVideoEncoderFactory.cpp:
(WebCore::GStreamerVideoEncoder::AddCodecIfSupported):
(WebCore::GStreamerVideoEncoderFactory::CreateVideoEncoder):
- 1:41 AM Changeset in webkit [275274] by
-
- 4 edits in trunk/LayoutTests
REGRESSION(r274244): [GTK][WPE] Two http/tests/security/contentSecurityPolicy tests crash
https://bugs.webkit.org/show_bug.cgi?id=223978
Reviewed by Philippe Normand.
Apache not longer sends a Content-Length header with the cgi/python version of this tests,
but it used chunked transfer encoding.
It seems this confuses libsoup causing a critical event.
Add an empty \r\n at the end of the test to indicate that the server has finished sending
the data.
- http/tests/security/contentSecurityPolicy/1.1/scripthash-allowed-by-legacy-enforced-policy-and-blocked-by-report-policy.py:
- http/tests/security/contentSecurityPolicy/1.1/scripthash-blocked-by-legacy-enforced-policy-and-blocked-by-report-policy.py:
- 1:30 AM Changeset in webkit [275273] by
-
- 6 edits in trunk
Computed style for a border-radius corner should never be 0px when the provided width isn't 0px
https://bugs.webkit.org/show_bug.cgi?id=223927
Reviewed by Dean Jackson.
LayoutTests/imported/w3c:
Mark 5 tests as PASS results as a result of returning the correct computed style for
"border-top-left-radius: 40px 0px". This is importing a change made to WPT via
https://github.com/web-platform-tests/wpt/pull/28310.
- web-platform-tests/css/css-backgrounds/animations/border-radius-interpolation-expected.txt:
- web-platform-tests/css/css-backgrounds/parsing/border-radius-computed-expected.txt:
- web-platform-tests/css/css-backgrounds/parsing/border-radius-computed.html:
Source/WebCore:
If "border-top-left-radius: 40px 0px" is provided, the computed style would return "0px" since
BuilderConverter::convertRadius() would treat either of the dimensions for the radius being 0
as both being 0.
- style/StyleBuilderConverter.h:
(WebCore::Style::BuilderConverter::convertRadius):
- 12:44 AM Changeset in webkit [275272] by
-
- 8 edits in trunk
Fix interpolation of box-shadow and text-shadow CSS properties
https://bugs.webkit.org/show_bug.cgi?id=223924
Reviewed by Dean Jackson.
LayoutTests/imported/w3c:
Mark all interpolation tests for box-shadow and text-shadow as PASS results.
- web-platform-tests/css/css-backgrounds/animations/box-shadow-composition-expected.txt:
- web-platform-tests/css/css-backgrounds/animations/box-shadow-interpolation-expected.txt:
- web-platform-tests/css/css-transitions/animations/text-shadow-composition-expected.txt:
- web-platform-tests/css/css-transitions/animations/text-shadow-interpolation-expected.txt:
Source/WebCore:
There were three issues with interpolation of ShadowData-backed properties such
as box-shadow and text-shadow:
- the blur radius should not be allowed to be negative,
- blending LayoutUnit had accuracy issues,
- we would allow interpolation to happen when items in lists did not have matching shadow styles ("inset" vs. unspecified).
- animation/CSSPropertyAnimation.cpp:
(WebCore::blendFunc):
- platform/animation/AnimationUtilities.h:
(WebCore::blend):
- 12:21 AM Changeset in webkit [275271] by
-
- 22 edits5 adds in trunk
Optimize constructors of ES6 collections
https://bugs.webkit.org/show_bug.cgi?id=223953
Reviewed by Yusuke Suzuki.
JSTests:
- microbenchmarks/map-constructor.js:
- microbenchmarks/set-constructor.js: Added.
- microbenchmarks/weak-map-constructor.js: Added.
- microbenchmarks/weak-set-constructor.js: Added.
- stress/map-constructor-adder.js:
- stress/set-constructor-adder.js:
- stress/weak-map-constructor-adder-error-cross-realm.js: Added.
- stress/weak-map-constructor-adder.js:
- stress/weak-set-constructor-adder-error-cross-realm.js: Added.
- stress/weak-set-constructor-adder.js:
- stress/weak-set-constructor.js:
Source/JavaScriptCore:
This patch speeds up the constructors by avoiding call() for non-observable
"set" / "add" methods and using getIndex() for Map / WeakMap collections.
For Map / Set, this change leverages existing cloning helpers, which rely on
watchpoints, to avoid even a method lookup. However, slower path is used for
subclasses. Results in 1.9x speed-up for common case.
For WeakMap / WeakSet, adder function is checked by C++ pointer, which enables
fast path even for cross-realm subclasses. Results in 2.3x progression.
Both approaches require special handling of a cross-realm NewTarget to ensure
that raised exceptions (OOM / TypeError) belong to realm of the adder function,
and not to constructor's or NewTarget's.
Also, adds descriptve error messages for non-callable "set" / "add" properties.
- runtime/JSMap.cpp:
(JSC::JSMap::isSetFastAndNonObservable):
(JSC::JSMap::canCloneFastAndNonObservable): Deleted.
- runtime/JSMap.h:
- runtime/JSSet.cpp:
(JSC::JSSet::isAddFastAndNonObservable):
(JSC::JSSet::canCloneFastAndNonObservable): Deleted.
- runtime/JSSet.h:
- runtime/MapConstructor.cpp:
(JSC::JSC_DEFINE_HOST_FUNCTION):
- runtime/SetConstructor.cpp:
(JSC::JSC_DEFINE_HOST_FUNCTION):
- runtime/WeakMapConstructor.cpp:
(JSC::JSC_DEFINE_HOST_FUNCTION):
- runtime/WeakMapPrototype.cpp:
(JSC::WeakMapPrototype::finishCreation):
(JSC::JSC_DEFINE_HOST_FUNCTION):
- runtime/WeakMapPrototype.h:
- runtime/WeakSetConstructor.cpp:
(JSC::JSC_DEFINE_HOST_FUNCTION):
- runtime/WeakSetPrototype.cpp:
(JSC::WeakSetPrototype::finishCreation):
(JSC::JSC_DEFINE_HOST_FUNCTION):
- runtime/WeakSetPrototype.h:
LayoutTests:
- js/dom/basic-weakset-expected.txt:
Mar 30, 2021:
- 10:52 PM Changeset in webkit [275270] by
-
- 8 edits in trunk/Source/WebKit
[iOS] Fall back to context menu presentation after long pressing image overlay text
https://bugs.webkit.org/show_bug.cgi?id=223967
<rdar://problem/76028620>
Reviewed by Tim Horton.
Add support for this behavior; see <rdar://problem/76028620> for more details.
- Shared/ios/InteractionInformationAtPosition.h:
- Shared/ios/InteractionInformationAtPosition.mm:
(WebKit::InteractionInformationAtPosition::encode const):
(WebKit::InteractionInformationAtPosition::decode):
Add a couple of new flags (
isSelectedandisImageOverlayText) to indicate whether the interaction is over
selected text, and also whether the interaction is over text in an image overlay, respectively.
- Shared/ios/InteractionInformationRequest.cpp:
(WebKit::InteractionInformationRequest::encode const):
(WebKit::InteractionInformationRequest::decode):
(WebKit::InteractionInformationRequest::isValidForRequest const):
Add a new position information request option to ignore user agent shadow root content.
- Shared/ios/InteractionInformationRequest.h:
- UIProcess/ios/WKContentViewInteraction.h:
- UIProcess/ios/WKContentViewInteraction.mm:
Add a flag that's set when
_imageExtractionTimeoutGestureRecognizeris recognized, and is about to present a
context menu, and is unset upon starting the context menu presentation.
(-[WKContentView setUpInteraction]):
(-[WKContentView cleanUpInteraction]):
(-[WKContentView gestureRecognizer:shouldRequireFailureOfGestureRecognizer:]):
(-[WKContentView gestureRecognizer:shouldBeRequiredToFailByGestureRecognizer:]):
Make the timeout gesture (
_imageExtractionTimeoutGestureRecognizer) require the failure of the context menu
initiation gesture, such that this image extraction timeout gesture won't trigger if the context menu has
already been triggered.
(-[WKContentView _invalidateCurrentPositionInformation]):
(-[WKContentView _didCommitLoadForMainFrame]):
Pull logic for resetting cached position information into a helper, and call it inside
-_didCommitLoadForMainFrame.
(-[WKContentView _contextMenuInteraction:configurationForMenuAtLocation:completion:]):
Reset the new flag (
_contextMenuWasTriggeredByImageExtractionTimeout) if necessary, and use its existing value
to determine whether we should ignore UA shadow root content when performing a hit-test for the context menu
configuration.
- WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::imageRendererAndImage):
(WebKit::imagePositionInformation):
(WebKit::elementPositionInformation):
Additionally supply the image URL and image data if
includeImageDatais set, even if the hit-tested node is
just a text node underneath an image element's overlay.
(WebKit::selectionPositionInformation):
(WebKit::WebPage::positionInformation):
Add support for the new position information flags.
- 10:48 PM Changeset in webkit [275269] by
-
- 11 edits2 deletes in trunk
Computed style for background-position should not use "left" and "top" keywords
https://bugs.webkit.org/show_bug.cgi?id=223878
Reviewed by Simon Fraser.
LayoutTests/imported/w3c:
Add 106 new PASS results.
- web-platform-tests/css/css-backgrounds/animations/background-position-interpolation-expected.txt:
- web-platform-tests/css/css-backgrounds/animations/background-position-origin-interpolation-expected.txt:
- web-platform-tests/css/css-backgrounds/parsing/background-position-computed-expected.txt:
- web-platform-tests/css/css-pseudo/first-letter-allowed-properties.html: Update the test per WPT PR #28284.
Source/WebCore:
- css/CSSComputedStyleDeclaration.cpp:
(WebCore::ComputedStyleExtractor::valueForPropertyInStyle): Ensure querying the computed
style for background-position longhands passes in the RenderStyle for the calc() case.
(WebCore::createPositionListForLayer):
LayoutTests:
- fast/backgrounds/background-position-parsing-2-expected.txt: Removed.
- fast/backgrounds/background-position-parsing-2.html: We remove this test because it is incorrect
and superseded by WPT tests that we now pass, checking parsing of both valid and invalid values.
- fast/css/background-position-serialize-expected.txt:
- fast/css/background-position-serialize.html: Update this test to not expect "left" or "top".
- transitions/resources/transition-test-helpers.js: Update the helper to not rely on keywords
to obtain x and y values from the computed style.
- 10:34 PM Changeset in webkit [275268] by
-
- 2 edits in trunk/Source/WebKit
ASSERT(m_sendPort) in IPC::Connection::open() when running some iOS unit tests
https://bugs.webkit.org/show_bug.cgi?id=223982
<rdar://75974285>
Reviewed by Alexey Proskuryakov.
If the UIProcess exits or severs it connection to the WebProcess while the WebProcess is
launching, the WebProcess ends up getting an invalid mach port upon initialization. This
is expected and XPCServiceInitializerDelegate::getConnectionIdentifier() was dealing with
this. getConnectionIdentifier() was checking if the port was invalid by checking if it was
MACH_PORT_NULL and calling exit() in such case. However, something has changed (likely
at OS level) and we are now sometimes getting MACH_PORT_DEAD instead of MACH_PORT_NULL.
The proper way to check if a mach port is valid is to call MACH_PORT_VALID(), which checks
for both MACH_PORT_NULL and MACH_PORT_DEAD. I therefore updated getConnectionIdentifier()
to use MACH_PORT_VALID() instead of an explicit check for MACH_PORT_NULL. This gets rid
of debug assertions we were seeing in the output of some iOS unit tests.
- Shared/EntryPointUtilities/Cocoa/XPCService/XPCServiceEntryPoint.mm:
(WebKit::XPCServiceInitializerDelegate::getConnectionIdentifier):
- 9:25 PM Changeset in webkit [275267] by
-
- 40 edits1 copy1 add1 delete in trunk
Service Worker scripts use too much memory in the network process
https://bugs.webkit.org/show_bug.cgi?id=223808
<rdar://75637093>
Reviewed by Geoff Garen.
Source/WebCore:
Previously, the network process would store service worker scripts in a SQLite database.
When starting to use service workers, we would load all those scripts from the database
into memory. This would use a decent amount of memory in the network process.
To address the issue, the approach is this patch is to store the scripts as separate
files on the filesystem instead. This when, when loading them, we can simply mmap() them
and greatly reduce dirty memory usage.
Note that the service worker process (which may be the WebContent process) also keeps a
copy of the imported service worker scripts for the service workers it is running. More
work will be needed in a follow-up but we should be able to extend the approach so that
the service worker process would only have a mmap'd version of those scripts. This would
reduce dirty memory usage on the WebContent/ServiceWorker process side as well. I am
doing this separately though to reduce patch size and facilitate review.
No new tests, there should be no Web-facing behavior change, just a decreased
dirty memory usage in the network process when service workers are used.
I did manual memory testing with a very large service worker that had one ~100MB main
script, importing another ~100MB script.
Here are the memory results without my change:
- Networking (Dirty): 238MB (cold) / 331MB (warm)
- WebContent (Dirty): 441MB (cold) / 857MB (warm)
Here are the memory results with my change:
- Networking (Dirty): 22MB (cold) / 14MB (warm)
- WebContent (Dirty): 440MB (cold) / 438MB (warm)
This shows that ALL memory from the scripts in the network process is no longer marked
as dirty. We also see a significant progression in the WebProcess in the warm case, since
the scripts are coming from the network process as shared memory in this case. There is
no progression in the WebProcess in the cold case yet, since the script were just
downloaded and are coming from the WebProcess to the NetworkProcess. In a follow-up, the
network process could send shared memory back to the WebProcess, after saving the scripts
to disk, so that the WebProcess can replace the copies of its scripts and save more memory.
- Sources.txt:
- WebCore.xcodeproj/project.pbxproj:
Add new SWScriptStorage class to the project.
- inspector/agents/worker/ServiceWorkerAgent.cpp:
(WebCore::ServiceWorkerAgent::getInitializationInfo):
Convert the script type from SharedBuffer to String.
- platform/SharedBuffer.cpp:
(WebCore::SharedBuffer::operator== const):
Fix assertions that were hitting when comparing to empty SharedBuffers (offset would be 0
and size would be 0). This was caught by API tests since we have some service worker API
tests that use empty worker scripts.
- workers/WorkerScriptLoader.cpp:
(WebCore::WorkerScriptLoader::loadSynchronously):
Add some conversion from String to SharedBuffer to the script, and vice-versa, in the
service worker case.
- workers/service/ServiceWorkerContextData.cpp:
(WebCore::ServiceWorkerContextData::isolatedCopy const):
(WebCore::scriptBufferToString):
(WebCore::stringToScriptBuffer):
- workers/service/ServiceWorkerContextData.h:
(WebCore::ServiceWorkerContextData::ImportedScript::isolatedCopy const):
(WebCore::ServiceWorkerContextData::ImportedScript::decode):
(WebCore::ServiceWorkerContextData::decode):
- Store scripts as SharedBuffer instead of String, so that they can hold mmap'd data.
- Add scriptBufferToString() / stringToScriptBuffer() utility functions to convert script sources between String and SharedBuffer.
- workers/service/context/ServiceWorkerThread.cpp:
(WebCore::ServiceWorkerThread::ServiceWorkerThread):
Convert from script from SharedBuffer to String.
- workers/service/server/RegistrationDatabase.cpp:
(WebCore::recordsTableSchema):
Update database schema and bump version now that we no longer store the
service worker script inside the SQLite database. Instead, those scripts
are stored separately on the filesystem via SWScriptStorage.
(WebCore::ImportedScriptAttributes::encode const):
(WebCore::ImportedScriptAttributes::decode):
Introduce new ImportedScriptAttributes struct which contains all the data
members of ServiceWorkerContextData::ImportedScript, except for the actual
script source. We now save a HashMap of ImportedScriptAttributes in the
databasae instead of HashMap of ImportedScript since we no longer want to
store imported script sources in the database, but rather store them
separately on the file system.
(WebCore::stripScriptSources):
Utility function to convert a HashMap of ServiceWorkerContextData::ImportedScript
into a HashMap of ImportedScriptAttributes (identical but without the script
source), ready to save in the SQLite database.
(WebCore::populateScriptSourcesFromDisk):
Utility function to construct a HashMap of ServiceWorkerContextData::ImportedScript
from a HasMap of ImportedScriptAttributes, coming from the SQLiteDatabase. The
missing script sources are fetched from the disk via SWScriptStorage.
(WebCore::RegistrationDatabase::~RegistrationDatabase):
Make sure we destroy the SWScriptStorage on the background queue for thread-safety.
(WebCore::RegistrationDatabase::scriptStorageDirectory const):
Returns the path on the filesystem where service worker scripts are stored.
(WebCore::RegistrationDatabase::scriptStorage):
Constructs (if necessary) a SWScriptStorage and return it.
(WebCore::RegistrationDatabase::clearAll):
Make sure we clear all the service worker scripts on disk in addition to the database,
now that they are stored separately.
(WebCore::RegistrationDatabase::doPushChanges):
- Stop storing the script sources in the SQLite database, and instead store them as separate
files on the file system via SWScriptStorage.
- Improve logging
- When done storing the scripts to disk, send these new mmap'd versions back to the SWServerWorker on the main thread, so that it can replace it's heavy script sources with these ones. This helps reduce memory usage.
(WebCore::RegistrationDatabase::importRecords):
- Load the script sources from the disk via SWScriptStorage, now that they are no longer stored in the SQLite database.
- Improve logging.
- workers/service/server/RegistrationDatabase.h:
- workers/service/server/RegistrationStore.cpp:
(WebCore::RegistrationStore::didSaveWorkerScriptsToDisk):
- workers/service/server/RegistrationStore.h:
Pass scripts that were saved to disk from the store to the SWServerWorker so that it
can replace its scripts sources with those new mmap'd version, in order to save memory.
- workers/service/server/SWScriptStorage.cpp: Added.
(WebCore::hashURL):
(WebCore::SWScriptStorage::SWScriptStorage):
(WebCore::SWScriptStorage::registrationDirectory const):
(WebCore::SWScriptStorage::scriptPath const):
(WebCore::SWScriptStorage::store):
(WebCore::SWScriptStorage::retrieve):
(WebCore::SWScriptStorage::clear):
- workers/service/server/SWScriptStorage.h: Added.
Add SWScriptStorage to deal with the storage / retrieval of Service
Worker scripts to / from disk, as files on the file system. When
going a retrieval, we return a script as a SharedBuffer which usually contains
mmap'd() data (we don't use mmap() for files that are smaller than the PAGE_SIZE).
The scripts reside in a Scripts/ folder, beside the database. The scripts are separated
by origin (using SHA256 of the origin as folder name with salt), and then by registration (by
using SHA256 of the registration scope as subfolder name with salt). The file name for the script
is a SHA256 of the script URL with salt.
- workers/service/server/SWServer.cpp:
(WebCore::SWServer::didSaveWorkerScriptsToDisk):
Pass scripts that were saved to disk from the store to the SWServerWorker so that it
can replace its scripts sources with those new mmap'd version, in order to save memory.
(WebCore::SWServer::updateWorker):
Convert script from String to SharedBuffer.
- workers/service/server/SWServerJobQueue.cpp:
(WebCore::SWServerJobQueue::scriptFetchFinished):
Convert script from SharedBuffer to String.
- workers/service/server/SWServerToContextConnection.cpp:
(WebCore::SWServerToContextConnection::setScriptResource):
- workers/service/server/SWServerToContextConnection.h:
Take in a ServiceWorkerContextData::ImportedScript for convenience, instead of taking
all its data members as separate parameters.
- workers/service/server/SWServerWorker.cpp:
(WebCore::SWServerWorker::SWServerWorker):
- workers/service/server/SWServerWorker.h:
(WebCore::SWServerWorker::script const):
Use SharedBuffer type for script instead of String type, so that we can hold on the
mmap'd data and reduce memory usage.
Source/WebKit:
- NetworkProcess/ServiceWorker/WebSWServerToContextConnection.messages.in:
Pass a ServiceWorkerContextData::ImportedScript struct in the SetScriptResource IPC
for convenience. We used to pass the ImportedScript data members separately.
- NetworkProcess/cache/CacheStorageEngine.cpp:
(WebKit::CacheStorage::Engine::clearAllCachesFromDisk):
(WebKit::CacheStorage::Engine::clearCachesForOriginFromDirectories):
(WebKit::CacheStorage::Engine::deleteNonEmptyDirectoryOnBackgroundThread):
- NetworkProcess/cache/CacheStorageEngine.h:
- NetworkProcess/cache/NetworkCacheFileSystem.cpp:
- NetworkProcess/cache/NetworkCacheFileSystem.h:
- NetworkProcess/cache/NetworkCacheStorage.cpp:
(WebKit::NetworkCache::Storage::deleteOldVersions):
Drop deleteDirectoryRecursively() implementation and use the existing
FileSystem::deleteNonEmptyDirectory() in wtf instead.
- NetworkProcess/cache/NetworkCacheData.cpp:
(WebKit::NetworkCache::Data::mapToFile const):
Moved some of the mapToFile() logic to WTF, so that it can be reused.
- Shared/WebCoreArgumentCoders.cpp:
(IPC::encodeSharedBuffer):
(IPC::decodeSharedBuffer):
Update SharedBuffer's IPC argument coder to distinguish a null SharedBuffer
and an empty one. We now use SharedBuffer to store service worker script sources
and it is possible for the script sources to be empty (and they are in some of
our API tests).
- WebProcess/Storage/WebSWContextManagerConnection.cpp:
(WebKit::WebSWContextManagerConnection::setScriptResource):
Pass a ServiceWorkerContextData::ImportedScript struct in the SetScriptResource IPC
for convenience. We used to pass the ImportedScript data members separately.
Source/WTF:
- wtf/FileSystem.cpp:
(WTF::FileSystemImpl::deleteNonEmptyDirectory):
Add an implementation of FileSystem::deleteNonEmptyDirectory() on all supported platforms.
We previously only had implemetations for Cocoa and Windows.
(WTF::FileSystemImpl::mapToFile):
Moved most of the mapToFile() logic from NetworkCacheData::mapToFile() to FileSystem, so that
it can be reused by the new SWScriptStorage class. It creates the destination file, mmap's it,
writes the provided data to it and then returns the mmap'd file.
(WTF::FileSystemImpl::readOrMakeSalt):
Move readOrMakeSalt() from NetworkCacheData to FileSystem so that it can be reused by the new
SWScriptStorage.
- wtf/FileSystem.h:
Tools:
- TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
- TestWebKitAPI/Tests/WebKitCocoa/SimpleServiceWorkerRegistrations-4.sqlite3: Removed.
Drop outdated pre-baked service worker registration database as it is no longer
needed and it is a pain to keep up to date.
- TestWebKitAPI/Tests/WTF/FileSystem.cpp:
(TestWebKitAPI::TEST_F):
Add API test coverage for FileSystem::deleteNonEmptyDirectory(). It is not a new API but it
had no tests, it used more in this patch and we now have an implementation on all supported
platforms.
- TestWebKitAPI/Tests/WebKitCocoa/ServiceWorkerBasic.mm:
- TestWebKitAPI/Tests/WebKitCocoa/WebsiteDataStoreCustomPaths.mm:
- Tweak service worker tests so that they expect a version 6 database instead of version 5, since I updated the database scheme and bumped the version.
- Update test that was relying on a pre-baked service worker database file (with old schema) and have it dynamically generate the database instead by loading a page that registers a service worker.
- 9:22 PM Changeset in webkit [275266] by
-
- 1 copy in tags/Safari-611.1.21.0.12
Tag Safari-611.1.21.0.12.
- 9:20 PM Changeset in webkit [275265] by
-
- 6 edits in trunk/LayoutTests
[Catalina WK2] 5 media/modern-media-controls/tracks-support tests consistently timing out
https://bugs.webkit.org/show_bug.cgi?id=223673
<rdar://problem/75769577>
Unreviewed, check that the
subtitlesMenuexists before attempting to look at itschildren.
- media/modern-media-controls/tracks-support/auto-text-track.html:
- media/modern-media-controls/tracks-support/click-track-in-contextmenu.html:
- media/modern-media-controls/tracks-support/hidden-tracks.html:
- media/modern-media-controls/tracks-support/off-text-track.html:
- media/modern-media-controls/tracks-support/text-track-selected-via-media-api.html:
- 9:18 PM Changeset in webkit [275264] by
-
- 1 copy in tags/Safari-611.1.21.161.2
Tag Safari-611.1.21.161.2.
- 8:30 PM Changeset in webkit [275263] by
-
- 3 edits in trunk/LayoutTests
[GTK][WPE] Gardening of tests.
Unreviewed gardening
Update list of expected failures.
- platform/glib/TestExpectations:
- platform/gtk/TestExpectations:
- 8:01 PM Changeset in webkit [275262] by
-
- 4 edits in trunk/Source
REGRESSION(r274607): media controls script is visible in Web Inspector even without the engineering "Show WebKit-internal scripts" enabled
https://bugs.webkit.org/show_bug.cgi?id=223961
Reviewed by Yusuke Suzuki.
It turns out that Web Inspector will only ignore scripts that have a source URL directive
that matches__InjectedScript_*.js, not those that have a (source) URL matching that.
In addition to Web Inspector ignoring these scripts in the UI, it will also cause the
Debuggerto not pause in scripts with a matching source URL directive (unless the
local build engineering only "Pause in WebKit-internal scripts" is enabled).
Source/JavaScriptCore:
- Scripts/make-js-file-arrays.py:
(main):
Add a//# sourceURL=__InjectedScript_*.jsto the contents before it's encoded.
Source/WebCore:
- html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::ensureMediaControlsInjectedScript):
Change theScriptSourceCodehere to not have aURLand havemake-js-file-arrays.py
add a//# sourceURL=__InjectedScript_*.jsto the contents before it's encoded.
- 7:55 PM Changeset in webkit [275261] by
-
- 18 edits1 copy2 adds in trunk/Source
JSGlobalObject's m_customGetterFunctionMap and m_customSetterFunctionMap should be sets, not maps, and should use both the identifier and function pointer as the key
https://bugs.webkit.org/show_bug.cgi?id=223613
Reviewed by Saam Barati.
Source/JavaScriptCore:
- Adds a generic WeakGCSet class to go with the existing WeakGCMap.
- Renames WeakGCMapBase to WeakGCHashTable, moves it to its own file and now uses it as the base class of both WeakGCSet and WeakGCMap.
- Replaces JSGlobalObject's customGetterFunctionMap/customSetterFunctionMap with customGetterFunctionSet/customSetterFunctionSet, using the new WeakGCSet, and updates them to use both the function pointer and property name for the key, rather than just the function pointer which is what the previous code did. This allows multiple custom functions to use the same underlying function pointer as long as they have distinct property names, which is going to be used to optimize the bindings for CSSStyleDeclaration.
- CMakeLists.txt:
- JavaScriptCore.xcodeproj/project.pbxproj:
Add new files.
- heap/Heap.cpp:
(JSC::Heap::runEndPhase):
(JSC::Heap::pruneStaleEntriesFromWeakGCHashTables):
(JSC::Heap::registerWeakGCHashTable):
(JSC::Heap::unregisterWeakGCHashTable):
(JSC::Heap::pruneStaleEntriesFromWeakGCMaps): Deleted.
(JSC::Heap::registerWeakGCMap): Deleted.
(JSC::Heap::unregisterWeakGCMap): Deleted.
- heap/Heap.h:
Update for new name. WeakGCMapBase -> WeakGCHashTable.
- runtime/JSCInlines.h:
Add WeakGCSetInlines.h
- runtime/JSCustomGetterFunction.cpp:
(JSC::JSC_DEFINE_HOST_FUNCTION):
(JSC::JSCustomGetterFunction::JSCustomGetterFunction):
(JSC::JSCustomGetterFunction::create):
- runtime/JSCustomGetterFunction.h:
- runtime/JSCustomSetterFunction.cpp:
(JSC::JSC_DEFINE_HOST_FUNCTION):
(JSC::JSCustomSetterFunction::JSCustomSetterFunction):
(JSC::JSCustomSetterFunction::create):
- runtime/JSCustomSetterFunction.h:
Add helper type CustomFunctionPointer and helper function customFunctionPointer()
to allow some generic hashing code to run on either JSCustomGetterFunction
or JSCustomSetterFunction.
- runtime/JSGlobalObject.cpp:
(JSC::JSGlobalObject::JSGlobalObject):
- runtime/JSGlobalObject.h:
(JSC::JSGlobalObject::WeakCustomGetterOrSetterHash::hash):
(JSC::JSGlobalObject::WeakCustomGetterOrSetterHash::equal):
(JSC::JSGlobalObject::customGetterFunctionSet):
(JSC::JSGlobalObject::customSetterFunctionSet):
(JSC::JSGlobalObject::customGetterFunctionMap): Deleted.
(JSC::JSGlobalObject::customSetterFunctionMap): Deleted.
Replace m_customGetterFunctionMap/m_customSetterFunctionMap with
m_customGetterFunctionSet/m_customSetterFunctionSet. As the key is included
in the value, it saves space to use a set rather than a map. We now also
hash and compare both the function pointer and the property name to allow
sharing implementations.
- runtime/JSObject.cpp:
(JSC::WeakCustomGetterOrSetterHashTranslator::hash):
(JSC::WeakCustomGetterOrSetterHashTranslator::equal):
(JSC::createCustomGetterFunction):
(JSC::createCustomSetterFunction):
Update creation functions to use the new sets, making use of the
ensureValue function and a HashTranslator allowing the use of a
std::pair<PropertyName, FunctionPointer> as an alternative lookup
key. This allows us to avoid creating the JSCustomGetterFunction/JSCustomSetterFunction
pointer if one with the same property name and function pointer are
already in the set.
- runtime/WeakGCHashTable.h: Added.
(JSC::WeakGCHashTable::~WeakGCHashTable):
Moved from WeakGCMap and renamed as it is now the base of both
WeakGCMap and WeakGCSet.
- runtime/WeakGCMap.h:
Update to use new WeakGCHashTable base class.
- runtime/WeakGCMapInlines.h:
(JSC::KeyTraitsArg>::WeakGCMap):
(JSC::KeyTraitsArg>::~WeakGCMap):
Update for new Heap function names for WeakGCHashTable.
- runtime/WeakGCSet.h: Added.
- runtime/WeakGCSetInlines.h: Added.
(JSC::TraitsArg>::WeakGCSet):
(JSC::TraitsArg>::~WeakGCSet):
(JSC::TraitsArg>::find):
(JSC::TraitsArg>::find const):
(JSC::TraitsArg>::contains const):
(JSC::TraitsArg>::pruneStaleEntries):
Added a minimal WeakGCSet based on WeakGCMap.
Source/WTF:
Adds a heterogenous HashSet::ensure, which allows lazy construction of the value to
insert into the HashSet only if the heterogenous key (e.g. a key + HashTranslator
that are not the same as the HashSet's ValueType) does not match any item in the
set. For example given a set of ExpensiveToConstruct, but uniquely identifiable
by CheapToConstruct:
HashSet<ExpensiveToConstruct> hashSet;
...
struct Translator {
static unsigned hash(const CheapToConstruct& key)
{
return key.hash();
}
static bool equal(const ExpensiveToConstruct& a, const CheapToConstruct& b)
{
return a == b;
}
};
hashSet.ensure<Translator>(CheapToConstruct { ... }, [] {
return ExpensiveToConstruct { ... };
});
This will be used by the custom getter/setter sets to avoid constructing the GC objects
unless they are really needed.
Also took the opertunity to replace some typedefs with usings, and fixed some comments.
- wtf/HashSet.h:
(WTF::Traits>::ensure):
- 7:52 PM Changeset in webkit [275260] by
-
- 11 edits6 adds in trunk
PCM: Introduce PrivateClickMeasurementNetworkLoader
https://bugs.webkit.org/show_bug.cgi?id=222217
<rdar://74817863>
Reviewed by Youenn Fablet.
Source/WebKit:
This patch refactors PrivateClickMeasurementManager to use a newly introduced PrivateClickMeasurementNetworkLoader
instead of the PingLoad to handle network traffics such that PCMM can receive and process response bodies.
PrivateClickMeasurementNetworkLoader is a stripped down version of the ServiceWorkerSoftUpdateLoader, which is also
a derived class of NetworkLoadClient.
Covered by new test contents within existing test files.
- NetworkProcess/NetworkSession.cpp:
(WebKit::NetworkSession::NetworkSession):
- NetworkProcess/NetworkSession.h:
(WebKit::NetworkSession::addPrivateClickMeasurementNetworkLoader):
(WebKit::NetworkSession::removePrivateClickMeasurementNetworkLoader):
Modifies the PCMM to use PCMNL. And then introduces a hash table to manage the lifetime of each PCMNL.
- NetworkProcess/PrivateClickMeasurementManager.cpp:
(WebKit::PrivateClickMeasurementManager::PrivateClickMeasurementManager):
(WebKit::generateNetworkLoadParameters):
(WebKit::generateNetworkLoadParametersForHttpPost):
(WebKit::generateNetworkLoadParametersForHttpGet):
(WebKit::PrivateClickMeasurementManager::getTokenPublicKey):
(WebKit::PrivateClickMeasurementManager::getSignedUnlinkableToken):
(WebKit::PrivateClickMeasurementManager::fireConversionRequestImpl):
(WebKit::generateNetworkResourceLoadParameters): Deleted.
(WebKit::generateNetworkResourceLoadParametersForHttpPost): Deleted.
(WebKit::generateNetworkResourceLoadParametersForHttpGet): Deleted.
- NetworkProcess/PrivateClickMeasurementManager.h:
(WebKit::PrivateClickMeasurementManager::setNetworkLoadFunction):
(WebKit::PrivateClickMeasurementManager::setPingLoadFunction): Deleted.
Modifies the PCMM to use PCMNL. Specifically, changes the token_public_key and unlinkable_token to be extracted
from the JSON content of the response.
- NetworkProcess/PrivateClickMeasurementNetworkLoader.cpp: Added.
(WebKit::PrivateClickMeasurementNetworkLoader::start):
(WebKit::PrivateClickMeasurementNetworkLoader::PrivateClickMeasurementNetworkLoader):
(WebKit::PrivateClickMeasurementNetworkLoader::fail):
(WebKit::PrivateClickMeasurementNetworkLoader::willSendRedirectedRequest):
(WebKit::PrivateClickMeasurementNetworkLoader::didReceiveResponse):
(WebKit::PrivateClickMeasurementNetworkLoader::didReceiveBuffer):
(WebKit::PrivateClickMeasurementNetworkLoader::didFinishLoading):
(WebKit::PrivateClickMeasurementNetworkLoader::didFailLoading):
(WebKit::PrivateClickMeasurementNetworkLoader::didComplete):
- NetworkProcess/PrivateClickMeasurementNetworkLoader.h: Added.
Introduces the PCMNL.
- NetworkProcess/webrtc/RTCDataChannelRemoteManagerProxy.h:
Fixes an Unified Build issue.
- Sources.txt:
- WebKit.xcodeproj/project.pbxproj:
Some paperwork.
LayoutTests:
- http/tests/privateClickMeasurement/resources/fraudPreventionTestURL.py:
Changes the token_public_key and unlinkable_token to be returned via JSON contents.
- 7:34 PM Changeset in webkit [275259] by
-
- 2 edits in trunk/LayoutTests
[ macOS Debug ] imported/w3c/web-platform-tests/cors/redirect-preflight.htm is a flakey text failure
https://bugs.webkit.org/show_bug.cgi?id=223976
Unreviewed test gardening.
- platform/mac/TestExpectations: Updated test expectations to Pass Failure while test is reviewed.
- 7:26 PM Changeset in webkit [275258] by
-
- 2 edits in trunk/LayoutTests
[ Mac ] http/wpt/service-workers/service-worker-spinning-activate.https.html is flaky failing
Nhttps://bugs.webkit.org/show_bug.cgi?id=220754
Unreviewed test gardening.
- platform/mac/TestExpectations: Updating test expectations to Pass Failure while test is reviewed.
- 7:21 PM Changeset in webkit [275257] by
-
- 2 edits in trunk/LayoutTests
[mac-wk2] LayoutTest fast/mediastream/getUserMedia-webaudio.html is a flaky timeout
https://bugs.webkit.org/show_bug.cgi?id=170960
Unreviewed test gardening.
- platform/mac-wk2/TestExpectations: Updating test expectations to include Failure.
- 6:54 PM Changeset in webkit [275256] by
-
- 2 edits in trunk/LayoutTests
[ macOS ] inspector/protocol/condition.html is a flakey timeout
https://bugs.webkit.org/show_bug.cgi?id=223975
Unreviewed test gardening.
- platform/mac/TestExpectations: Updated test expectations to Pass Timeout while test is reviewed.
- 6:50 PM Changeset in webkit [275255] by
-
- 3 edits2 adds in branches/safari-611.1.21.0-branch
Cherry-pick r275214. rdar://problem/76032705
[LFC][Integration] Elements that overflow inline-blocks are not hit tested correctly
https://bugs.webkit.org/show_bug.cgi?id=223932
rdar://75888718
Reviewed by Zalan Bujtas.
Source/WebCore:
If an inline block has overflowing children (for example due to negative margin) we may fail to hit test them.
Test: fast/inline-block/hit-test-negative-margin-child.html
- layout/integration/LayoutIntegrationLineLayout.cpp: (WebCore::LayoutIntegration::LineLayout::hitTest):
Always descend into inline blocks even if their run didn't hit.
LayoutTests:
- fast/inline-block/hit-test-negative-margin-child-expected.txt: Added.
- fast/inline-block/hit-test-negative-margin-child.html: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@275214 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 6:50 PM Changeset in webkit [275254] by
-
- 8 edits in branches/safari-611.1.21.0-branch/Source
Versioning.
WebKit-7611.1.21.0.12
- 6:35 PM Changeset in webkit [275253] by
-
- 3 edits2 adds in trunk
Nullptr crash in Crash in WebCore::positionInParentBeforeNode(..) where a NULL check is missing.
https://bugs.webkit.org/show_bug.cgi?id=223639
Patch by Venky Dass <yaranamavenkataramana@apple.com> on 2021-03-30
Reviewed by Ryosuke Niwa.
Source/WebCore:
In positionInParentBeforeNode(..) there is a null check missing on a pointer - hence the crash.
Test: LayoutTests/editing/inserting/edit-style-and-insert-image.html
- editing/ReplaceSelectionCommand.cpp:
(WebCore::ReplaceSelectionCommand::doApply):
LayoutTests:
Adding a regression test case.
- editing/inserting/edit-style-and-insert-image-expected.txt: Added.
- editing/inserting/edit-style-and-insert-image.html: Added.
- 6:19 PM Changeset in webkit [275252] by
-
- 2 edits in trunk/LayoutTests
[ macOS Debug ] imported/w3c/web-platform-tests/xhr/xhr-timeout-longtask.any.worker.html is a flakey text failure
https://bugs.webkit.org/show_bug.cgi?id=223973
unreviewed test gardening.
- platform/mac/TestExpectations: Updated test expectations to Pass Failure while test is reviewed.
- 5:37 PM Changeset in webkit [275251] by
-
- 2 edits in trunk/LayoutTests
[BigSur WK1 Debug] imported/w3c/web-platform-tests/xhr/event-upload-progress.any.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=223944
Unreviewed test gardening.
- platform/mac-wk1/TestExpectations:
- 5:31 PM Changeset in webkit [275250] by
-
- 2 edits in trunk/LayoutTests
[ macOS wk2 ] imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audiocontext-interface/processing-after-resume.https.html is a flakey text failure
https://bugs.webkit.org/show_bug.cgi?id=223969
Unreviewed test gardening.
- platform/mac-wk2/TestExpectations: Updated test expectations to Pass Failure while test is reviewed.
- 4:57 PM Changeset in webkit [275249] by
-
- 2 edits in trunk/LayoutTests
[ macOS ] imported/w3c/web-platform-tests/webaudio/the-audio-api/the-analysernode-interface/realtimeanalyser-fft-scaling.html is a flakey text failure
https://bugs.webkit.org/show_bug.cgi?id=223966
Unreviewed test gardening.
- platform/mac/TestExpectations: Updated test expectations to Pass Failure while test can be reviewed.
- 4:25 PM Changeset in webkit [275248] by
-
- 2 edits in trunk/Source/WebKit
Allow WebAuthn process talk to the ASD
https://bugs.webkit.org/show_bug.cgi?id=223947
<rdar://75908828>
Reviewed by Brent Fulgham.
- Resources/SandboxProfiles/ios/com.apple.WebKit.WebAuthn.sb:
- 4:12 PM Changeset in webkit [275247] by
-
- 6 edits in trunk/Source
Add disableForwardingVPrintfStdErrToOSLog() and use it in the jsc shell.
https://bugs.webkit.org/show_bug.cgi?id=223963
Reviewed by Saam Barati.
Source/JavaScriptCore:
This prevents automatic forwarding of vprintf_stderr_common() to os_log_with_args(),
which results in duplicate output when using the jsc shell. As a result, ASSERT
fail messages and crash stack traces will be more readable.
- jsc.cpp:
(main):
Source/WTF:
- wtf/Assertions.cpp:
(WTF::disableForwardingVPrintfStdErrToOSLog):
- wtf/Assertions.h:
- wtf/WTFConfig.h:
- 4:05 PM Changeset in webkit [275246] by
-
- 4 edits in branches/safari-612.1.9-branch/Source/WebKit/FeatureFlags
Apply patch. rdar://problem/76023886
Apply patch. rdar://76023886
- 4:03 PM Changeset in webkit [275245] by
-
- 3 edits in trunk/LayoutTests
[ Mac wk2 and iOS wk2 ] webrtc/libwebrtc/descriptionGetters.html is flaky failing.
https://bugs.webkit.org/show_bug.cgi?id=214084
Unreviewed test gardening.
- platform/ios-wk2/TestExpectations: removed release tag, as it is occurring outside of release.
- platform/mac-wk2/TestExpectations: removed release tag, as it is occurring outside of release.
- 4:00 PM Changeset in webkit [275244] by
-
- 4 edits in trunk/Source/WebKit
REGRESSION (r275172): Many com.apple.WebKit.Networking.Development crashes appearing in "other crashes"
https://bugs.webkit.org/show_bug.cgi?id=223952
Patch by Alex Christensen <achristensen@webkit.org> on 2021-03-30
Reviewed by Geoffrey Garen.
Use OS_REASON_FLAG_NO_CRASH_REPORT to prevent crash reports. xpc_connection_kill didn't generate crash reports.
- Platform/IPC/cocoa/ConnectionCocoa.mm:
(IPC::ConnectionTerminationWatchdog::watchdogTimerFired):
(IPC::Connection::kill):
- Platform/spi/Cocoa/ReasonSPI.h:
- UIProcess/Launcher/mac/ProcessLauncherMac.mm:
(WebKit::ProcessLauncher::platformInvalidate):
- 3:46 PM Changeset in webkit [275243] by
-
- 6 edits2 adds in trunk/Source/JavaScriptCore
Add Options::exitOnResourceExhaustion() to enable exiting instead of crashing on resource exhaustion.
https://bugs.webkit.org/show_bug.cgi?id=223959
rdar://63934158
Reviewed by Tadeu Zagallo.
This is useful to unblock fuzzers from false positive crashes due to resource
exhaustion. Currently, this is only applied to StructureID exhaustion.
Since we're adding this facility, we might as well implement it in such a way that
it can be easily deployed for other types of resource exhaustion as well.
- CMakeLists.txt:
- JavaScriptCore.xcodeproj/project.pbxproj:
- Sources.txt:
- runtime/OptionsList.h:
- runtime/ResourceExhaustion.cpp: Added.
(JSC::handleResourceExhaustion):
- runtime/ResourceExhaustion.h: Added.
- runtime/StructureIDTable.cpp:
(JSC::StructureIDTable::resize):
- 3:25 PM Changeset in webkit [275242] by
-
- 3 edits in trunk/Source/WebKit
[macOS] Reduce logging for uninteresting sandbox violations
https://bugs.webkit.org/show_bug.cgi?id=223943
<rdar://problem/76014115>
Reviewed by Per Arne Vollan.
Testing has shown some IOKit properties needed by the macOS Network Process, and a handful of items needed when running in recovery mode. We should
allow these items to support proper function and to reduce telemetry for items that we don't need to learn more about.
- NetworkProcess/mac/com.apple.WebKit.NetworkProcess.sb.in:
- WebProcess/com.apple.WebProcess.sb.in:
- 3:01 PM Changeset in webkit [275241] by
-
- 5 edits in trunk/Source/WebCore
Occasional debug assert in GenericTaskQueue::~GenericTaskQueue
https://bugs.webkit.org/show_bug.cgi?id=223913
Reviewed by Eric Carlson.
Eagerly initialize WeakPtrImpl so that we don't hit debug assertions.
Also made Performance object use EventLoop.
No new tests since there is no test case that reliably reproduces this issue.
- dom/TaskSource.h:
(TaskSource): Added PerformanceTimeline.
- page/Performance.cpp:
(WebCore::Performance::Performance):
(WebCore::Performance::contextDestroyed):
(WebCore::Performance::queueEntry): Use EventLoopTaskGroup instead of GenericTaskQueue to deliver entries.
- page/Performance.h:
- platform/GenericTaskQueue.h:
(WebCore::GenericTaskQueue::GenericTaskQueue): Eagerly initialize WeakPtrImpl.
Also assert that we're creating this object in the main thread.
- 3:01 PM Changeset in webkit [275240] by
-
- 4 edits in trunk/Source/WebKit
Address post-commit comments on r275180
https://bugs.webkit.org/show_bug.cgi?id=223915
Reviewed by Kimmo Kinnunen.
- WebProcess/GPU/graphics/RemoteImageBufferProxy.h:
- WebProcess/GPU/graphics/RemoteRenderingBackendProxy.cpp:
(WebKit::RemoteRenderingBackendProxy::waitForDidCreateImageBufferBackend):
(WebKit::RemoteRenderingBackendProxy::waitForDidFlush):
(WebKit::RemoteRenderingBackendProxy::sharedMemoryForGetImageData):
(WebKit::RemoteRenderingBackendProxy::waitForGetImageDataToComplete):
(WebKit::RemoteRenderingBackendProxy::getDataURLForImageBuffer):
(WebKit::RemoteRenderingBackendProxy::getDataForImageBuffer):
(WebKit::RemoteRenderingBackendProxy::getBGRADataForImageBuffer):
(WebKit::RemoteRenderingBackendProxy::getShareableBitmap):
- WebProcess/GPU/graphics/RemoteRenderingBackendProxy.h:
- 2:51 PM Changeset in webkit [275239] by
-
- 5 edits in trunk/Source/WebKit
Remove obsolete WebGL2 feature flag
https://bugs.webkit.org/show_bug.cgi?id=223945
Reviewed by Darin Adler.
- FeatureFlags/WebKit-appletvos.plist: Feature flag is not referenced anywhere.
- FeatureFlags/WebKit-ios.plist:
- FeatureFlags/WebKit-macos.plist:
- FeatureFlags/WebKit-watchos.plist:
- 2:33 PM Changeset in webkit [275238] by
-
- 3 edits2 adds in branches/safari-611.1.21.161-branch
Cherry-pick r275214. rdar://problem/76022033
[LFC][Integration] Elements that overflow inline-blocks are not hit tested correctly
https://bugs.webkit.org/show_bug.cgi?id=223932
rdar://75888718
Reviewed by Zalan Bujtas.
Source/WebCore:
If an inline block has overflowing children (for example due to negative margin) we may fail to hit test them.
Test: fast/inline-block/hit-test-negative-margin-child.html
- layout/integration/LayoutIntegrationLineLayout.cpp: (WebCore::LayoutIntegration::LineLayout::hitTest):
Always descend into inline blocks even if their run didn't hit.
LayoutTests:
- fast/inline-block/hit-test-negative-margin-child-expected.txt: Added.
- fast/inline-block/hit-test-negative-margin-child.html: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@275214 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 2:31 PM Changeset in webkit [275237] by
-
- 8 edits in branches/safari-611.1.21.161-branch/Source
Versioning.
WebKit-7611.1.21.161.2
- 2:27 PM Changeset in webkit [275236] by
-
- 1 copy in tags/Safari-612.1.8.1
Tag Safari-612.1.8.1.
- 2:23 PM Changeset in webkit [275235] by
-
- 7 edits in trunk/Source
[GPUP] Add an IPC message to implement RemoteImageDecoderAVF::clearFrameBufferCache()
https://bugs.webkit.org/show_bug.cgi?id=223707
Reviewed by Youenn Fablet.
Source/WebCore:
No change in observable functionality.
- platform/graphics/avfoundation/objc/ImageDecoderAVFObjC.h:
Export method
clearFrameBufferCache()so that we can call it from WebKit.
Source/WebKit:
- GPUProcess/media/RemoteImageDecoderAVFProxy.cpp:
(WebKit::RemoteImageDecoderAVFProxy::deleteDecoder):
Replaceconst ImageDecoderIdentifier&withImageDecoderIdentifier.
(WebKit::RemoteImageDecoderAVFProxy::encodedDataStatusChanged): Ditto.
(WebKit::RemoteImageDecoderAVFProxy::setExpectedContentSize): Ditto.
(WebKit::RemoteImageDecoderAVFProxy::setData): Ditto.
(WebKit::RemoteImageDecoderAVFProxy::createFrameImageAtIndex): Ditto.
(WebKit::RemoteImageDecoderAVFProxy::clearFrameBufferCache):
- GPUProcess/media/RemoteImageDecoderAVFProxy.h:
- GPUProcess/media/RemoteImageDecoderAVFProxy.messages.in:
Add IPC message
clearFrameBufferCache(), and replaceuint32_twithsize_t
because IPC messages support it now.
- WebProcess/GPU/media/RemoteImageDecoderAVF.cpp:
(WebKit::RemoteImageDecoderAVF::setData):
(WebKit::RemoteImageDecoderAVF::clearFrameBufferCache):
Implement the same behavior asImageDecoderAVFObjC::clearFrameBufferCache().
This change will reduce the peak memory usage.
- 2:14 PM Changeset in webkit [275234] by
-
- 3 edits in trunk/LayoutTests
[ macOS iOS ] crypto/crypto-random-values-oom.html is a flakey timeout
https://bugs.webkit.org/show_bug.cgi?id=223949
Unreviewed test gardening.
- platform/ios-simulator-wk2/TestExpectations: Updated expectations to Pass Timeout while test is reviewed.
- platform/mac/TestExpectations: Updated expectations to Pass Timeout while test is reviewed.
- 1:59 PM Changeset in webkit [275233] by
-
- 2 edits in trunk/Source/JavaScriptCore
Ensure that GlobalPropertyInfo is allocated on the stack.
https://bugs.webkit.org/show_bug.cgi?id=223911
Unreviewed test gardening.
Rebaseline builtins generator tests after r275212.
- Scripts/tests/builtins/expected/WebCoreJSBuiltins.h-result:
- 1:57 PM Changeset in webkit [275232] by
-
- 2 edits in trunk/JSTests
Unreviewed test gardening.
- stress/early-return-from-builtin.js: Disable this test for memoryLimited configurations.
- 1:34 PM Changeset in webkit [275231] by
-
- 1 delete in tags/Safari-612.1.9
Delete tag.
- 1:25 PM Changeset in webkit [275230] by
-
- 2 edits in trunk/Source/WebCore
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.
- 1:21 PM Changeset in webkit [275229] by
-
- 2 edits in trunk/Source/JavaScriptCore
Add more information to GC verifier verbose dumps.
https://bugs.webkit.org/show_bug.cgi?id=223951
Reviewed by Yusuke Suzuki.
- heap/VerifierSlotVisitor.cpp:
(JSC::VerifierSlotVisitor::dumpMarkerData):
- 12:47 PM Changeset in webkit [275228] by
-
- 3 edits2 adds in trunk
Release assert in compareAnimationsByCompositeOrder
https://bugs.webkit.org/show_bug.cgi?id=223368
Patch by Frédéric Wang <fwang@igalia.com> on 2021-03-30
Reviewed by Antoine Quint.
Source/WebCore:
AnimationTimeline::cancelDeclarativeAnimationsForStyleable currently only calls cancel() on
the declarative animation, which means the owning element is still associated to the
animation and that one continues to be accessible via Element's getAnimations(). When members
like pause() are called on that animation, one can obtain inconsistent state for
KeyframeEffectStack, leading to a debug ASSERT(!cssAnimationList->isEmpty()); and a
RELEASE_ASSERT_NOT_REACHED() in compareCSSAnimations(). This patch forces the owning element
to be clear during cancelDeclarativeAnimationsForStyleable in order to address these issues.
More code refactoring and cleanup should be done in follow-up patches, though.
Test: animations/animation-remove-element-crash.html
- animation/AnimationTimeline.cpp:
(WebCore::AnimationTimeline::cancelDeclarativeAnimationsForStyleable): Use cancelFromStyle()
so that the owning element is also cleared.
LayoutTests:
Add regression test.
- animations/animation-remove-element-crash-expected.txt: Added.
- animations/animation-remove-element-crash.html: Added.
- 12:42 PM Changeset in webkit [275227] by
-
- 6 edits in trunk
CSS properties backed by StyleImage should not interpolate when one of the values is "none"
https://bugs.webkit.org/show_bug.cgi?id=223929
Reviewed by Dean Jackson.
LayoutTests/imported/w3c:
Mark 76 new PASS results.
- web-platform-tests/css/css-backgrounds/animations/background-image-interpolation-expected.txt:
- web-platform-tests/css/css-backgrounds/animations/border-image-source-interpolation-expected.txt:
- web-platform-tests/css/css-lists/animations/list-style-image-interpolation-expected.txt:
Source/WebCore:
- animation/CSSPropertyAnimation.cpp:
(WebCore::blendFunc):
- 12:17 PM Changeset in webkit [275226] by
-
- 2 edits in trunk/Tools
[resultsdbpy] Return new-style commits (Follow-up fix)
https://bugs.webkit.org/show_bug.cgi?id=223262
<rdar://problem/75483361>
Unreviewed follow-up fix.
- Scripts/libraries/resultsdbpy/resultsdbpy/controller/commit_controller.py:
(CommitController.register): Allow branch in commit uploads.
- 12:14 PM Changeset in webkit [275225] by
-
- 5 edits in trunk/Source/WebCore
Rename MediaElementSession::playbackPermitted() to MediaElementSession::playbackStateChangePermitted()
https://bugs.webkit.org/show_bug.cgi?id=220939
Reviewed by Youenn Fablet.
A follow-up patch of r271870 to rename function
playbackPermitted()and
the enum classMediaPlaybackOperation.
No new tests as there is no change in functionality.
- Modules/mediacontrols/MediaControlsHost.cpp:
(WebCore::MediaControlsHost::userGestureRequired const):
- html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::canTransitionFromAutoplayToPlay const):
(WebCore::HTMLMediaElement::setReadyState):
(WebCore::HTMLMediaElement::play):
(WebCore::HTMLMediaElement::pause):
(WebCore::HTMLMediaElement::pauseInternal):
(WebCore::HTMLMediaElement::setVolume):
(WebCore::HTMLMediaElement::mediaPlayerDidAddAudioTrack):
(WebCore::HTMLMediaElement::mediaPlayerCharacteristicChanged):
(WebCore::HTMLMediaElement::updateShouldPlay):
- html/MediaElementSession.cpp:
(WebCore::MediaElementSession::playbackStateChangePermitted const):
(WebCore::MediaElementSession::canShowControlsManager const):
(WebCore::MediaElementSession::updateMediaUsageIfChanged):
(WebCore::MediaElementSession::playbackPermitted const): Deleted.
- html/MediaElementSession.h:
- 12:08 PM EarlyWarningSystem edited by
- (diff)
- 12:06 PM EarlyWarningSystem edited by
- (diff)
- 12:06 PM Changeset in webkit [275224] by
-
- 5 edits in trunk
Account for "hanging" and "each-line" when blending text-interpolation
https://bugs.webkit.org/show_bug.cgi?id=223914
Reviewed by Dean Jackson.
LayoutTests/imported/w3c:
- web-platform-tests/css/css-text/animations/text-indent-composition-expected.txt:
- web-platform-tests/css/css-text/animations/text-indent-interpolation-expected.txt:
Source/WebCore:
- animation/CSSPropertyAnimation.cpp:
(WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap):
- 12:04 PM Changeset in webkit [275223] by
-
- 2 edits in trunk/Source/WebKit
Unreviewed build fix after r275210. Disambiguate the WeakPtrFactory in RemoteMediaSessionCoordinatorProxy with a using statement.
- UIProcess/Media/RemoteMediaSessionCoordinatorProxy.h:
- 12:04 PM Changeset in webkit [275222] by
-
- 2 edits in trunk/Source/ThirdParty/ANGLE
Enable sample_compare operations in Metal ANGLE
Sample_compare operations, and shadow sampling was accidently switched off when initially
setting up ANGLE_Metal. Enabling shadow sampling fixes most of the
webgl/2.0.0/deqp/functional/gles3/textureshadow/ test suite, which is currently failing.
https://bugs.webkit.org/show_bug.cgi?id=223833
Patch by Kyle Piddington <Kyle Piddington> on 2021-03-30
Reviewed by Jon Lee.
- src/libANGLE/renderer/metal/DisplayMtl.mm:
(rx::DisplayMtl::initializeFeatures):
- 12:02 PM Changeset in webkit [275221] by
-
- 6 edits in trunk
[CSS Backgrounds] WPT test css/css-backgrounds/animations/border-image-width-interpolation.html asserts
https://bugs.webkit.org/show_bug.cgi?id=206578
Reviewed by Dean Jackson.
LayoutTests/imported/w3c:
Update the test output, the remaining failures are due to issues with calc() serialization (see
https://bugs.webkit.org/show_bug.cgi?id=223875).
- web-platform-tests/css/css-backgrounds/animations/border-image-width-interpolation-expected.txt:
Source/WebCore:
Ensure we pass the RenderStyle through the methods eventually calling createValue() for calculated lengths.
- css/CSSComputedStyleDeclaration.cpp:
(WebCore::valueForNinePieceImageQuad):
(WebCore::valueForNinePieceImage):
(WebCore::valueForReflection):
(WebCore::ComputedStyleExtractor::valueForPropertyInStyle):
LayoutTests:
Unskip imported/w3c/web-platform-tests/css/css-backgrounds/animations/border-image-width-interpolation.html
as well as imported/w3c/web-platform-tests/css/css-backgrounds/animations/border-image-outset-composition.html
and imported/w3c/web-platform-tests/css/css-backgrounds/animations/border-image-width-composition.html.
- 11:57 AM Changeset in webkit [275220] by
-
- 2 edits in trunk/Tools
Reinstate my committer status.
Unreviewed.
- Scripts/webkitpy/common/config/contributors.json:
- 11:56 AM Changeset in webkit [275219] by
-
- 2 edits in trunk/Source/WebKit
Unreviewed, reverting r275197.
The change is spooky.
Reverted changeset:
"Safari crashed and lost all tabs, after unlocking sleeping
device"
https://bugs.webkit.org/show_bug.cgi?id=223832
https://commits.webkit.org/r275197
- 11:54 AM Changeset in webkit [275218] by
-
- 2 edits in trunk/Tools
[ews] Make RunWebKitTests class easy to extend
https://bugs.webkit.org/show_bug.cgi?id=223939
Reviewed by Jonathan Bedard.
- CISupport/ews-build/steps.py:
(RunWebKitTests):
(RunWebKitTests.setLayoutTestCommand): Separated out code to set the layout-test command.
(RunWebKitTests.start):
- 11:47 AM Changeset in webkit [275217] by
-
- 11 edits in trunk
Fix for accessibility/textarea-insertion-point-line-number.html.
https://bugs.webkit.org/show_bug.cgi?id=223936
<rdar://problem/76007361>
Reviewed by Chris Fleizach.
Source/WebCore:
Test: accessibility/textarea-insertion-point-line-number.html
Added AXCoreObject::insertionPointLineNumber to support this functionality.
This replaces the previous implementation in the wrapper's accessibilityAttributeValue.
There were several problems with the previous implementation that was
doing an unnecessary and buggy round trip from Ranges to indexes and
back to VisiblePositions.
- accessibility/AccessibilityObject.h:
- accessibility/AccessibilityObjectInterface.h:
- accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::insertionPointLineNumber const):
- accessibility/AccessibilityRenderObject.h:
- accessibility/isolatedtree/AXIsolatedObject.cpp:
(WebCore::AXIsolatedObject::insertionPointLineNumber const):
(WebCore::AXIsolatedObject::selectionStart const): Deleted.
(WebCore::AXIsolatedObject::selectionEnd const): Deleted.
- accessibility/isolatedtree/AXIsolatedObject.h:
- accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
(-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]):
LayoutTests:
Updated this test and corrected several issues where the expected
returned values were incorrect.
- accessibility/textarea-insertion-point-line-number-expected.txt:
- accessibility/textarea-insertion-point-line-number.html:
- 11:32 AM Changeset in webkit [275216] by
-
- 3 edits2 adds in trunk
[iOS] Two taps required to view <select> options on Square Checkout
https://bugs.webkit.org/show_bug.cgi?id=223933
<rdar://problem/74828029>
Reviewed by Wenson Hsieh.
Source/WebKit:
Some sites, such as Square Checkout, wrap all the <option>s in a
<select> element in a single <optgroup>. With the new context menu
appearance for <select> on iOS, this means that users have to tap twice
to view the options on some sites (once to bring up the menu and once
to expand the grouped menu).
To fix, promote the the contents of the grouped submenu to the root menu
if all the options are contained within a single submenu.
Test: fast/forms/ios/form-control-refresh/select/all-options-in-single-optgroup.html
- UIProcess/ios/forms/WKFormSelectPicker.mm:
(-[WKSelectPicker createMenu]):
LayoutTests:
Added a layout test to exercise the new codepath when a <select>
has a single <optgroup> containing all of the <option>s.
- fast/forms/ios/form-control-refresh/select/all-options-in-single-optgroup-expected.txt: Added.
- fast/forms/ios/form-control-refresh/select/all-options-in-single-optgroup.html: Added.
- 11:14 AM Changeset in webkit [275215] by
-
- 17 edits in trunk
Allow non-60fps display updates to be driven by DisplayRefreshMonitor
https://bugs.webkit.org/show_bug.cgi?id=223912
Reviewed by Sam Weinig.
Source/WebCore:
Previously, RenderingUpdateScheduler::scheduleAnimation() would return false for any
preferredFramesPerSecond which is not 60fps, causing RenderingUpdateScheduler to fall back
to its timer mechanism. This meant that throttled (e.g. by low power) pages and display
updates on non-60fps display would all use timers. This is undesirable because we want
alignment with display refresh, and to avoid timer drift between multiple throttled
documents.
The fix has two parts. First, we need to fix RenderingUpdateScheduler and
ScriptedAnimationController to compute their frame rates in terms of FramesPerSecond, rather
than Seconds, because using the latter requires conversion to Seconds and back via
m_page.preferredRenderingUpdateInterval() which was awkward. So have Page expose
preferredRenderingUpdateFramesPerSecond().
Also add preferredFramesPerSecond(), and have both it and preferredFrameInterval() take the
"near 60fps" flag as an argument, so doing the common math in AnimationFrameRate.
The second part of the fix is to move "preferredFramesPerSecond" from
RenderingUpdateScheduler to DisplayRefreshMonitorClient, since clients should be able to
request different frame rates. Then we pass the DisplayUpdate to
DisplayRefreshMonitorClient::fireDisplayRefreshIfNeeded(), and finally use it to do the math
of whether to skip an update for this client.
Tested by API tests in AnimationFrameRate.cpp, and by
fast/animation/request-animation-frame-throttling-lowPowerMode.html
- dom/ScriptedAnimationController.cpp:
(WebCore::ScriptedAnimationController::interval const): This function (used for testing)
is just a synonym for preferredScriptedAnimationInterval(), but left here because it's exported
and maybe the compiler can inline preferredScriptedAnimationInterval().
(WebCore::ScriptedAnimationController::preferredScriptedAnimationInterval const): Just call
preferredFrameInterval() with throttlingReasons(), which is the union of the reasons for
the page and for this ScriptedAnimationController.
(WebCore::ScriptedAnimationController::throttlingReasons const): No reason not to return m_throttlingReasons
if we don't have a page. Should never happen.
(WebCore::ScriptedAnimationController::shouldRescheduleRequestAnimationFrame const): Logging.
(WebCore::ScriptedAnimationController::serviceRequestAnimationFrameCallbacks): Logging.
- page/Page.cpp:
(WebCore::Page::windowScreenDidChange): The display nominal FPS may have changed so recompute the update frequency.
(WebCore::Page::preferredRenderingUpdateFramesPerSecond const): Return the preferred update in FramesPerSecond. Will return
null if throttling results in a < 1fps update.
(WebCore::Page::preferredRenderingUpdateInterval const): Push the "near 60fps" logic into the helper function.
(WebCore::Page::setIsVisuallyIdleInternal): Clearer to use OptionSet<>::set().
(WebCore::Page::handleLowModePowerChange): Ditto.
- page/Page.h:
(WebCore::Page::displayNominalFramesPerSecond const):
(WebCore::Page::throttlingReasons const):
- page/RenderingUpdateScheduler.cpp:
(WebCore::RenderingUpdateScheduler::scheduleAnimation): Remove code that fell back to a timer for any non-60fps rate.
(WebCore::RenderingUpdateScheduler::adjustRenderingUpdateFrequency): Compute if we have to use a timer.
(WebCore::RenderingUpdateScheduler::scheduleRenderingUpdate):
(WebCore::RenderingUpdateScheduler::setPreferredFramesPerSecond): Deleted.
- page/RenderingUpdateScheduler.h:
- platform/graphics/AnimationFrameRate.cpp: Simplify some code with halfSpeedThrottlingReasons.
(WebCore::preferredFramesPerSecond): Similar logic to preferredFrameInterval, but for FramesPerSecond values.
(WebCore::preferredFrameInterval):
- platform/graphics/AnimationFrameRate.h:
- platform/graphics/DisplayRefreshMonitor.cpp:
(WebCore::DisplayRefreshMonitor::displayDidRefresh):
- platform/graphics/DisplayRefreshMonitorClient.cpp:
(WebCore::DisplayRefreshMonitorClient::setPreferredFramesPerSecond):
(WebCore::DisplayRefreshMonitorClient::fireDisplayRefreshIfNeeded):
- platform/graphics/DisplayRefreshMonitorClient.h:
(WebCore::DisplayRefreshMonitorClient::preferredFramesPerSecond const):
- platform/graphics/DisplayUpdate.cpp:
(WebCore::DisplayUpdate::relevantForUpdateFrequency const): Compute whether this update is relevant
for a client who wants updates at 'preferredFramesPerSecond'.
- platform/graphics/DisplayUpdate.h:
Source/WebKit:
Improve the logging.
- UIProcess/mac/DisplayLink.cpp:
(WebKit::DisplayLink::DisplayLink):
(WebKit::DisplayLink::addObserver):
Tools:
New API tests for preferredFramesPerSecond() and
DisplayUpdate::relevantForUpdateFrequency(), and duplicate existing tests for the "use
display nominal FPS" vs "use near-60 FPS" settings.
- TestWebKitAPI/Tests/WebCore/AnimationFrameRate.cpp:
(TestWebKitAPI::TEST):
- 10:34 AM Changeset in webkit [275214] by
-
- 3 edits2 adds in trunk
[LFC][Integration] Elements that overflow inline-blocks are not hit tested correctly
https://bugs.webkit.org/show_bug.cgi?id=223932
rdar://75888718
Reviewed by Zalan Bujtas.
Source/WebCore:
If an inline block has overflowing children (for example due to negative margin) we may fail to hit test them.
Test: fast/inline-block/hit-test-negative-margin-child.html
- layout/integration/LayoutIntegrationLineLayout.cpp:
(WebCore::LayoutIntegration::LineLayout::hitTest):
Always descend into inline blocks even if their run didn't hit.
LayoutTests:
- fast/inline-block/hit-test-negative-margin-child-expected.txt: Added.
- fast/inline-block/hit-test-negative-margin-child.html: Added.
- 10:32 AM Changeset in webkit [275213] by
-
- 1 copy in tags/Safari-612.1.7.12
Tag Safari-612.1.7.12.
- 10:21 AM Changeset in webkit [275212] by
-
- 8 edits in trunk/Source
Ensure that GlobalPropertyInfo is allocated on the stack.
https://bugs.webkit.org/show_bug.cgi?id=223911
rdar://75865742
Reviewed by Yusuke Suzuki.
Source/JavaScriptCore:
We rely on GlobalPropertyInfo being allocated on the stack to allow its JSValue
value to be scanned by the GC. Unfortunately, an ASAN compilation would choose
to allocate the GlobalPropertyInfo on a side buffer instead of directly on the
stack. This prevents the GC from doing the needed scan.
We'll fix this by suppressing ASAN on the functions that allocated GlobalPropertyInfo
arrays. Also added an ASSERT in the GlobalPropertyInfo constructor to assert that
it is allocated on the stack.
- Scripts/wkbuiltins/builtins_generate_internals_wrapper_implementation.py:
(BuiltinsInternalsWrapperImplementationGenerator.generate_initialize_method):
- runtime/JSGlobalObject.cpp:
(JSC::JSGlobalObject::initStaticGlobals):
(JSC::JSGlobalObject::init):
(JSC::JSGlobalObject::exposeDollarVM):
- runtime/JSGlobalObject.h:
(JSC::JSGlobalObject::GlobalPropertyInfo::GlobalPropertyInfo):
Source/WebCore:
- bindings/js/JSDOMGlobalObject.cpp:
(WebCore::JSDOMGlobalObject::addBuiltinGlobals):
- bindings/js/JSDOMWindowBase.cpp:
(WebCore::JSDOMWindowBase::finishCreation):
(WebCore::JSDOMWindowBase::initStaticGlobals):
- bindings/js/JSDOMWindowBase.h:
- 10:13 AM Changeset in webkit [275211] by
-
- 3 edits in trunk/Tools
[ews] Add build step to find list of layout tests modified by a patch
https://bugs.webkit.org/show_bug.cgi?id=223890
Reviewed by Jonathan Bedard.
- CISupport/ews-build/steps.py:
(AnalyzePatch): Created common base class for CheckPatchRelevance and FindModifiedLayoutTests.
(AnalyzePatch._get_patch): Moved to base class.
(AnalyzePatch._addToLog): Ditto.
(AnalyzePatch.getResultSummary): Ditto.
(CheckPatchRelevance):
(FindModifiedLayoutTests): Build step to find list of layout tests modified by the patch being processed.
(FindModifiedLayoutTests.find_test_names_from_patch):
(FindModifiedLayoutTests.start):
- CISupport/ews-build/steps_unittest.py: Added unit-tests.
- 10:10 AM Changeset in webkit [275210] by
-
- 5 edits in trunk/Source/WebKit
MediaSessionCoordinatorPrivateProxy should have a Client
https://bugs.webkit.org/show_bug.cgi?id=223935
Reviewed by Eric Carlson.
Similar to the non-proxy MediaSessionCoordinatorPrivate, the Proxy
version should have a client, used for communicating state changes
downstream.
- UIProcess/Media/MediaSessionCoordinatorPrivateProxy.h:
(WebKit::MediaSessionCoordinatorPrivateProxy::setClient):
(WebKit::MediaSessionCoordinatorPrivateProxy::client const):
- UIProcess/Media/RemoteMediaSessionCoordinatorProxy.cpp:
(WebKit::RemoteMediaSessionCoordinatorProxy::seekSessionToTime):
(WebKit::RemoteMediaSessionCoordinatorProxy::playSession):
(WebKit::RemoteMediaSessionCoordinatorProxy::pauseSession):
(WebKit::RemoteMediaSessionCoordinatorProxy::setSessionTrack):
- UIProcess/Media/RemoteMediaSessionCoordinatorProxy.h:
- WebProcess/MediaSession/RemoteMediaSessionCoordinator.messages.in:
- 10:07 AM Changeset in webkit [275209] by
-
- 8 edits in branches/safari-612.1.8-branch/Source
Versioning.
WebKit-7612.1.8.1
- 9:40 AM Changeset in webkit [275208] by
-
- 8 edits in branches/safari-612.1.7-branch/Source
Versioning.
WebKit-7612.1.7.12
- 9:32 AM Changeset in webkit [275207] by
-
- 6 edits in trunk/Source/WebKit
[GPUP] Add "CodeComplete" attribute to some feature flags
https://bugs.webkit.org/show_bug.cgi?id=223907
Reviewed by Daniel Bates.
Add "CodeComplete" attribute for three feature flags:
- gpu_process_canvas_rendering
- gpu_process_media
- gpu_process_webrtc
Also replace tabs in the plist files with spaces.
- FeatureFlags/WebKit-appletvos.plist:
- FeatureFlags/WebKit-ios.plist:
- FeatureFlags/WebKit-macos.plist:
- FeatureFlags/WebKit-watchos.plist:
- Scripts/combine-feature-flags-plist.py:
(main): Fix an issue to merge "attributes".
- 9:31 AM Changeset in webkit [275206] by
-
- 13 edits in trunk/Source/WebCore
Generalize ColorComponents to support an arbritrary number of components (though really we will only ever want 3, 4, or 5)
https://bugs.webkit.org/show_bug.cgi?id=223901
Reviewed by Darin Adler.
Add a length to ColorComponents to allow an arbitrary number of components. This
will be used to support cases where we only want to carry the three color components
(not alpha) and will be useful if we ever need to add back CMYKA support.
A new dedecution guide added allows for cases that currently deduce to remain.
- css/parser/CSSPropertyParserHelpers.cpp:
(WebCore::CSSPropertyParserHelpers::makeColorTypeByNormalizingComponentsAfterMix):
(WebCore::CSSPropertyParserHelpers::makeColorTypeByNormalizingComponentsAfterMix<HWBA<float>>):
(WebCore::CSSPropertyParserHelpers::makeColorTypeByNormalizingComponentsAfterMix<HSLA<float>>):
(WebCore::CSSPropertyParserHelpers::fixupHueComponentsPriorToMix):
- platform/graphics/Color.cpp:
(WebCore::Color::colorSpaceAndComponents const):
- platform/graphics/Color.h:
(WebCore::Color::OutOfLineComponents::create):
(WebCore::Color::OutOfLineComponents::components const):
(WebCore::Color::OutOfLineComponents::OutOfLineComponents):
- platform/graphics/ColorComponents.h:
(WebCore::ColorComponents::ColorComponents):
(WebCore::mapColorComponents):
(WebCore::N>::map const):
(WebCore::=):
(WebCore::N>::operator const):
(WebCore::N>::abs const):
(WebCore::N>::get const):
(WebCore::N>::subset const):
(WebCore::perComponentMax):
(WebCore::perComponentMin):
(WebCore::operator==):
(WebCore::operator!=):
(WebCore::ColorComponents<T>::map const): Deleted.
(WebCore::ColorComponents<T>::operator const): Deleted.
(WebCore::ColorComponents<T>::abs const): Deleted.
(WebCore::ColorComponents<T>::get const): Deleted.
- platform/graphics/ColorMatrix.h:
(WebCore::RowCount>::transformedColorComponents const):
(WebCore::applyMatricesToColorComponents):
- platform/graphics/ColorSpace.h:
(WebCore::callWithColorType):
- platform/graphics/ColorTypes.h:
(WebCore::makeFromComponents):
(WebCore::clampedComponent):
(WebCore::clampedComponents):
(WebCore::clampedComponentsExceptAlpha):
(WebCore::makeFromComponentsClamping):
(WebCore::makeFromComponentsClampingExceptAlpha):
(WebCore::asColorComponents):
- platform/graphics/filters/FEColorMatrix.cpp:
- platform/graphics/filters/FEMorphology.cpp:
(WebCore::makeColorComponentsfromPixelValue):
(WebCore::makePixelValueFromColorComponents):
(WebCore::minOrMax):
(WebCore::columnExtremum):
(WebCore::kernelExtremum):
(WebCore::FEMorphology::platformApplyGeneric):
- platform/graphics/filters/FETurbulence.cpp:
(WebCore::FETurbulence::noise2D const):
(WebCore::toIntBasedColorComponents):
(WebCore::FETurbulence::calculateTurbulenceValueForPoint const):
- platform/graphics/filters/FETurbulence.h:
- platform/graphics/filters/FilterOperation.cpp:
(WebCore::hueRotate):
- 9:16 AM Changeset in webkit [275205] by
-
- 3 edits in trunk/Source/WebCore
[RenderTreeBuilder] Anonymous table cell collapsing should also cleanup the inline tree
https://bugs.webkit.org/show_bug.cgi?id=223910
Reviewed by Antti Koivisto.
Let's delete the inline tree when the anonymous table cell is collapsed.
It's completely redundant at this point as the content is moved over to a previous sibling.
- rendering/updating/RenderTreeBuilderTable.cpp:
(WebCore::RenderTreeBuilder::Table::collapseAndDetachAnonymousNextSibling):
(WebCore::RenderTreeBuilder::Table::collapseAndDestroyAnonymousSiblingCells):
(WebCore::RenderTreeBuilder::Table::collapseAndDestroyAnonymousSiblingRows):
(WebCore::RenderTreeBuilder::Table::collapseAndDestroyAnonymousSiblings): Deleted.
- rendering/updating/RenderTreeBuilderTable.h:
- 8:20 AM Changeset in webkit [275204] by
-
- 34 edits5 moves13 adds12 deletes in trunk/LayoutTests
[LayoutTests] Convert http/tests/contentextensions convert PHP to Python
https://bugs.webkit.org/show_bug.cgi?id=223835
<rdar://problem/75912102>
Reviewed by Jonathan Bedard.
- http/tests/contentextensions/block-cookies-in-csp-report-expected.txt:
- http/tests/contentextensions/block-cookies-in-csp-report.php: Removed.
- http/tests/contentextensions/block-cookies-in-csp-report.php.json: Removed.
- http/tests/contentextensions/block-cookies-in-csp-report.py: Added.
- http/tests/contentextensions/block-cookies-in-csp-report.py.json: Added.
- http/tests/contentextensions/block-cookies-in-image-load-in-onunload-expected.txt:
- http/tests/contentextensions/block-cookies-in-image-load-in-onunload.html:
- http/tests/contentextensions/block-cookies-in-image-load-in-onunload.html.json:
- http/tests/contentextensions/block-cookies-in-ping-expected.txt:
- http/tests/contentextensions/block-cookies-in-ping.html:
- http/tests/contentextensions/block-cookies-in-ping.html.json:
- http/tests/contentextensions/block-csp-report-expected.txt:
- http/tests/contentextensions/block-csp-report.php: Removed.
- http/tests/contentextensions/block-csp-report.php.json: Removed.
- http/tests/contentextensions/block-csp-report.py: Added.
- http/tests/contentextensions/block-csp-report.py.json: Added.
- http/tests/contentextensions/block-everything-unless-domain-redirect.php: Removed.
- http/tests/contentextensions/block-everything-unless-domain-redirect.php.json: Removed.
- http/tests/contentextensions/block-everything-unless-domain-redirect.py: Added.
- http/tests/contentextensions/block-everything-unless-domain-redirect.py.json: Added.
- http/tests/contentextensions/block-image-load-in-onunload-expected.txt:
- http/tests/contentextensions/block-image-load-in-onunload.html:
- http/tests/contentextensions/block-image-load-in-onunload.html.json:
- http/tests/contentextensions/block-ping-expected.txt:
- http/tests/contentextensions/block-ping-resource-type-ping-expected.txt:
- http/tests/contentextensions/block-ping-resource-type-ping.html:
- http/tests/contentextensions/block-ping-resource-type-ping.html.json:
- http/tests/contentextensions/block-ping-resource-type-raw-expected.txt:
- http/tests/contentextensions/block-ping-resource-type-raw.html:
- http/tests/contentextensions/block-ping-resource-type-raw.html.json:
- http/tests/contentextensions/block-ping.html:
- http/tests/contentextensions/block-ping.html.json:
- http/tests/contentextensions/fetch-redirect-blocked.html:
- http/tests/contentextensions/hide-on-csp-report-expected.txt:
- http/tests/contentextensions/hide-on-csp-report.php: Removed.
- http/tests/contentextensions/hide-on-csp-report.php.json: Removed.
- http/tests/contentextensions/hide-on-csp-report.py: Added.
- http/tests/contentextensions/hide-on-csp-report.py.json: Added.
- http/tests/contentextensions/hide-on-ping-expected.txt:
- http/tests/contentextensions/hide-on-ping-with-ping-that-redirects-expected.txt:
- http/tests/contentextensions/hide-on-ping-with-ping-that-redirects.html:
- http/tests/contentextensions/hide-on-ping-with-ping-that-redirects.html.json:
- http/tests/contentextensions/hide-on-ping.html:
- http/tests/contentextensions/hide-on-ping.html.json:
- http/tests/contentextensions/main-resource-redirect-blocked.php: Removed.
- http/tests/contentextensions/main-resource-redirect-blocked.php.json: Removed.
- http/tests/contentextensions/main-resource-redirect-blocked.py: Added.
- http/tests/contentextensions/main-resource-redirect-blocked.py.json: Added.
- http/tests/contentextensions/reload-without-contentextensions.html:
- http/tests/contentextensions/resources/delete-ping.php: Removed.
- http/tests/contentextensions/resources/delete-ping.py: Added.
- http/tests/contentextensions/resources/get-ping-data.php: Removed.
- http/tests/contentextensions/resources/get-ping-data.py: Added.
- http/tests/contentextensions/resources/ping-file-path.php: Removed.
- http/tests/contentextensions/resources/ping_file_path.py: Added.
- http/tests/contentextensions/resources/redirect.php: Removed.
- http/tests/contentextensions/resources/redirect.py: Added.
- http/tests/contentextensions/resources/save-ping-and-redirect-to-save-ping.php: Removed.
- http/tests/contentextensions/resources/save-ping-and-redirect-to-save-ping.py: Added.
- http/tests/contentextensions/resources/save-ping.php: Removed.
- http/tests/contentextensions/resources/save-ping.py: Added.
- http/tests/contentextensions/resources/save_ping.py: Added.
(not_being_called):
(save_ping):
- http/tests/contentextensions/resources/subresource-redirect.php: Removed.
- http/tests/contentextensions/resources/subresource-redirect.py: Added.
- http/tests/contentextensions/subresource-redirect-blocked.html:
- http/tests/privateClickMeasurement/resources/redirectToConversionOnIPAddress.py:
- http/tests/resourceLoadStatistics/ping-to-prevalent-resource-expected.txt:
- http/tests/resourceLoadStatistics/ping-to-prevalent-resource.html:
- 7:12 AM Changeset in webkit [275203] by
-
- 15 edits in trunk/Source
Now Playing content isn't updated when media session's Metadata is modified
https://bugs.webkit.org/show_bug.cgi?id=223795
Source/WebCore:
<rdar://problem/75883478>
Patch by Jean-Yves Avenard <Jean-Yves Avenard> on 2021-03-30
Reviewed by Eric Carlson.
Manually tested. Ensuring that immediately after modifying the MediaSession metadata, NowPlaying reflects the change.
- Modules/mediasession/MediaSession.h:
(WebCore::MediaSession::Observer::metadataChanged): Change method prototype to avoid unnecessary refcount.
(WebCore::MediaSession::Observer::positionStateChanged): Change method prototype to pass argument by reference rather than value (and easier forward declaration).
- Modules/mediasession/MediaSessionCoordinator.cpp:
(WebCore::MediaSessionCoordinator::positionStateChanged): Pass argument by reference rather than value.
- Modules/mediasession/MediaSessionCoordinator.h:
- Modules/mediasession/MediaSessionCoordinatorPrivate.h:
- html/MediaElementSession.cpp: Add MediaSessionObserver class, we use separate proxy to avoid multiple inheritance of CanMakeWeakPtr.
(WebCore::MediaSessionObserver::MediaSessionObserver):
(WebCore::MediaSessionObserver::~MediaSessionObserver):
(WebCore::MediaSessionObserver::actionHandlersChanged):
(WebCore::MediaElementSession::registerWithDocument): Add MediaElementSession as Media Session observer when it's added to the DOM.
(WebCore::MediaElementSession::unregisterWithDocument): Remove MediaElementSession as Media Session observer when it's removed from the DOM.
(WebCore::MediaElementSession::didReceiveRemoteControlCommand): Simplify with new mediaSession() helper.
(WebCore::MediaElementSession::nowPlayingInfo const): Simplify with new mediaSession() helper.
(WebCore::MediaElementSession::mediaSession const): Helper to retrieve associated mediaSession object.
(WebCore::MediaElementSession::ensureIsObservingMediaSession):
(WebCore::MediaElementSession::metadataChanged): Call clientCharacteristicsChanged which will trigger the PlatformMediaSessionManager to refresh the NowPlayingInfo content.
(WebCore::MediaElementSession::positionStateChanged): Method currently doing nothing. Preparing for future change.
(WebCore::MediaElementSession::playbackStateChanged): Method currently doing nothing. Preparing for future change.
(WebCore::MediaElementSession::actionHandlersChanged): Method currently doing nothing. Preparing for future change.
- html/MediaElementSession.h: Add methods.
- platform/cocoa/RemoteCommandListenerCocoa.h: Remove trailing whitespace.
- testing/MockMediaSessionCoordinator.cpp:
(WebCore::MockMediaSessionCoordinator::positionStateChanged): Update for new method prototyping.
- testing/MockMediaSessionCoordinator.h:
Source/WebKit:
Patch by Jean-Yves Avenard <Jean-Yves Avenard> on 2021-03-30
Reviewed by Eric Carlson.
- UIProcess/Media/MediaSessionCoordinatorPrivateProxy.h: Update for new method prototyping.
- UIProcess/Media/RemoteMediaSessionCoordinatorProxy.cpp:
(WebKit::RemoteMediaSessionCoordinatorProxy::positionStateChanged): Update for new method prototyping.
- WebProcess/MediaSession/RemoteMediaSessionCoordinator.cpp:
(WebKit::RemoteMediaSessionCoordinator::positionStateChanged): Update for new method prototyping.
- WebProcess/MediaSession/RemoteMediaSessionCoordinator.h:
- 3:02 AM Changeset in webkit [275202] by
-
- 4 edits in trunk
Account for "cover" and "contain" when interpolating background-size
https://bugs.webkit.org/show_bug.cgi?id=223879
Reviewed by Antti Koivisto.
LayoutTests/imported/w3c:
Add 40 PASS results for the background-size interpolation test.
- web-platform-tests/css/css-backgrounds/animations/background-size-interpolation-expected.txt:
Source/WebCore:
- animation/CSSPropertyAnimation.cpp:
- 1:51 AM Changeset in webkit [275201] by
-
- 1 edit19 adds in trunk/LayoutTests
Add webgl/pending/conformance/context/context-attributes-alpha-depth-stencil-antialias.html for test update
https://bugs.webkit.org/show_bug.cgi?id=223735
Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2021-03-30
Reviewed by Dean Jackson.
Add few tests in preparation to fix bugs related to the tested functionality and to add tests
testing the fixes.
- webgl/pending/README.md: Added.
- webgl/pending/conformance/context/context-attributes-alpha-depth-stencil-antialias-expected.txt: Added.
- webgl/pending/conformance/context/context-attributes-alpha-depth-stencil-antialias.html: Added.
- webgl/pending/resources/js-test-pre.js: Added.
- webgl/pending/resources/webgl_test_files/conformance/context/context-attributes-alpha-depth-stencil-antialias.html: Added.
- webgl/pending/resources/webgl_test_files/js/js-test-post.js: Added.
- webgl/pending/resources/webgl_test_files/js/js-test-pre.js: Added.
- webgl/pending/resources/webgl_test_files/js/webgl-test-utils.js: Added.
- webgl/pending/resources/webgl_test_files/resources/js-test-style.css: Added.
- webgl/pending/resources/webkit-webgl-test-harness.js: Added.
- 1:30 AM Changeset in webkit [275200] by
-
- 4 edits in trunk
[GTK][WPE] Timeouts on WPT css/css-images ref-tests after updating WPT import
https://bugs.webkit.org/show_bug.cgi?id=214472
Reviewed by Žan Doberšek.
Source/WebCore:
In some cases, degenerated and corner cases of grandient stops might
trigger really slow operations in Cairo due to extremely high bezier
parameters. For example, the normalization-conic-2.html triggered this
by making the conic code calculate the tangent of 90 degrees for an
interpolation stop.
This commit adds some special handling for these cases to make sure the
interpolation will be inside reasonable values.
Covered by existing tests.
- platform/graphics/cairo/GradientCairo.cpp:
(WebCore::createConic): Handle degenerated stops
LayoutTests:
- platform/glib/TestExpectations: Change expectations back to passes
- 12:40 AM Changeset in webkit [275199] by
-
- 17 edits in trunk
Enable "hanging" and "each-line" keywords for the text-indent CSS property
https://bugs.webkit.org/show_bug.cgi?id=223851
Reviewed by Antti Koivisto.
LayoutTests/imported/w3c:
Mark all tests in the parsing-related tests as PASS results for text-indent.
The animation tests will be dealt with in bug 223914.
- web-platform-tests/css/css-text/animations/text-indent-composition-expected.txt:
- web-platform-tests/css/css-text/animations/text-indent-interpolation-expected.txt:
- web-platform-tests/css/css-text/parsing/text-indent-computed-expected.txt:
- web-platform-tests/css/css-text/parsing/text-indent-valid-expected.txt:
Source/WebCore:
We've had support for "hanging" and "each-line" behind the ENABLE_CSS3_TEXT flag. Probably by mistake,
"hanging" itself was parsed and Web-exposed by default. Presumably that was the case because that CSS
keyword existed in the context of SVG.
But LineWidth.cpp already knew how to handle these keywords, so there seems to be no reason to keep
these behind a flag.
So we remove all the ENABLE_CSS3_TEXT guards related to they keywords and address some spec compliance
issue, namely:
- add the text-indent length or percentage, the "hanging" and "each-line" keywords in that order in consumeTextIndent(),
- use that same order for the computed style.
- css/CSSComputedStyleDeclaration.cpp:
(WebCore::ComputedStyleExtractor::valueForPropertyInStyle):
- css/CSSValueKeywords.in:
- css/parser/CSSPropertyParser.cpp:
(WebCore::consumeTextIndent):
- layout/inlineformatting/InlineLineBuilder.cpp:
(WebCore::Layout::LineBuilder::initialConstraintsForLine const):
- rendering/line/LineWidth.cpp:
(WebCore::requiresIndent):
- rendering/style/RenderStyle.cpp:
(WebCore::rareInheritedDataChangeRequiresLayout):
- rendering/style/RenderStyle.h:
- rendering/style/RenderStyleConstants.h:
- rendering/style/StyleRareInheritedData.cpp:
(WebCore::StyleRareInheritedData::StyleRareInheritedData):
(WebCore::StyleRareInheritedData::operator== const):
- rendering/style/StyleRareInheritedData.h:
- style/StyleBuilderCustom.h:
(WebCore::Style::BuilderCustom::applyInheritTextIndent):
(WebCore::Style::BuilderCustom::applyInitialTextIndent):
(WebCore::Style::BuilderCustom::applyValueTextIndent):
- 12:23 AM Changeset in webkit [275198] by
-
- 4 edits7 adds in trunk/LayoutTests
Update WebGL conformance test suite 2021-03-24
https://bugs.webkit.org/show_bug.cgi?id=223736
Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2021-03-30
Reviewed by Dean Jackson.
To commit 44ac38b3b23be26fa8812334ec3e9bf67ecb5a9f Fix whitespace by rerunning IDL extraction scripts. (#3265)
As per it looks like there's been a significant recent regression in the video-related conformance tests
in the test suite.
- webgl/2.0.y/conformance2/textures/misc/immutable-tex-render-feedback-expected.txt: Added.
- webgl/2.0.y/conformance2/textures/misc/immutable-tex-render-feedback.html: Added.
- webgl/resources/webgl_test_files/conformance/extensions/webgl-webcodecs-video-frame.html:
- webgl/resources/webgl_test_files/conformance/textures/misc/video-rotation.html:
- webgl/resources/webgl_test_files/conformance2/extensions/oes-draw-buffers-indexed.html:
- webgl/resources/webgl_test_files/conformance2/textures/misc/immutable-tex-render-feedback.html: Added.
- webgl/resources/webgl_test_files/js/webgl-test-utils.js:
(destroyContext):
- webgl/resources/webgl_test_files/resources/video-rotation-0.vp9.mp4: Added.
- webgl/resources/webgl_test_files/resources/video-rotation-180.vp9.mp4: Added.
- webgl/resources/webgl_test_files/resources/video-rotation-270.vp9.mp4: Added.
- webgl/resources/webgl_test_files/resources/video-rotation-90.vp9.mp4: Added.