Timeline
Mar 1, 2021:
- 10:59 PM Changeset in webkit [273724] by
-
- 4 edits in trunk
[GTK] Web inspector related tests very slow or timeout in debug mode
https://bugs.webkit.org/show_bug.cgi?id=208000
Reviewed by Carlos Garcia Campos.
Source/WebKit:
setTimeout was very slow in the inspector page because it was
throttled by 1 second due to that the page is hidden. Mac port
disables HiddenPageDOMTimerThrottlingEnabled for the inspector
page under testing. Do the same for GTK port.
- UIProcess/Inspector/gtk/WebInspectorProxyGtk.cpp:
(WebKit::WebInspectorProxy::platformCreateFrontendPage):
setHiddenPageDOMTimerThrottlingEnabled(false) if under test.
LayoutTests:
- platform/gtk/TestExpectations: Unmarked tests for Bug 149916 and Bug 208000.
- 9:00 PM Changeset in webkit [273723] by
-
- 3 edits in trunk/Source/WebCore
[LFC][IFC] Move simplified baseline alignment to a dedicated function
https://bugs.webkit.org/show_bug.cgi?id=222564
Reviewed by Antti Koivisto.
This is in preparation for supporting non-atomic inline level boxes.
- layout/inlineformatting/InlineFormattingContextGeometry.cpp:
(WebCore::Layout::LineBoxBuilder::simplifiedAlignInlineBoxIfApplicable const):
(WebCore::Layout::LineBoxBuilder::constructInlineLevelBoxes):
- 8:21 PM Changeset in webkit [273722] by
-
- 2 edits in trunk/Source/WebCore
[LFC][IFC] Move simplified vertical alignment computation to struct SimplifiedVerticalAlignment
https://bugs.webkit.org/show_bug.cgi?id=222562
Reviewed by Antti Koivisto.
This is in preparation for supporting non-atomic inline level boxes (by just calling simplifiedVerticalAlignment.adjust(inlineLevelBox)).
- layout/inlineformatting/InlineFormattingContextGeometry.cpp:
(WebCore::Layout::SimplifiedVerticalAlignment::SimplifiedVerticalAlignment):
(WebCore::Layout::SimplifiedVerticalAlignment::rootInlineBoxLogicalTop const):
(WebCore::Layout::SimplifiedVerticalAlignment::lineBoxHeight const):
(WebCore::Layout::SimplifiedVerticalAlignment::adjust):
(WebCore::Layout::LineBoxBuilder::constructInlineLevelBoxes):
- 8:17 PM Changeset in webkit [273721] by
-
- 2 edits in trunk/Source/WebCore
Make DictionaryLookup::rangeAtHitTestResult more robust
https://bugs.webkit.org/show_bug.cgi?id=222301
<rdar://problem/74529831>
Patch by Alex Christensen <achristensen@webkit.org> on 2021-03-01
Reviewed by Brent Fulgham.
This may be related to r265084 but something is crashing and I'm not sure what.
Adding some Optional checks might fix something, but this is still puzzling to me.
- editing/cocoa/DictionaryLookup.mm:
(WebCore::DictionaryLookup::rangeAtHitTestResult):
- 8:08 PM Changeset in webkit [273720] by
-
- 4 edits in trunk/LayoutTests
[GLIB] Gardening three common timeouts
Unreviewed test gardening.
- platform/glib/TestExpectations:
- platform/gtk/TestExpectations:
- platform/wpe/TestExpectations:
- 7:37 PM Changeset in webkit [273719] by
-
- 2 edits in trunk/Source/WebCore
[LFC][IFC] Do not try to run simplified alignment when line-height is set
https://bugs.webkit.org/show_bug.cgi?id=222559
Reviewed by Antti Koivisto.
- layout/inlineformatting/InlineFormattingContextGeometry.cpp:
(WebCore::Layout::LineBoxBuilder::LineBoxBuilder):
(WebCore::Layout::LineBoxBuilder::constructInlineLevelBoxes):
- 6:14 PM Changeset in webkit [273718] by
-
- 6 edits in trunk/Source/JavaScriptCore
Reduce promise reaction memory usage when there are multiple reactions
https://bugs.webkit.org/show_bug.cgi?id=222533
Reviewed by Yusuke Suzuki.
Previously, we would store each reaction in a linked list. This
meant each reaction required 8 bytes to point to the next
reaction. Instead, this patch makes it so the first reaction is
store inline an object and any additional reactions are store into
index storage for that object. This doesn't save memory for the
first reaction since we now need to have a count of all the out of
line reactions but extra reactions use 8 bytes less each.
- builtins/BuiltinNames.h:
- builtins/PromiseOperations.js:
(globalPrivate.pushNewPromiseReaction):
(globalPrivate.triggerPromiseReactions):
(globalPrivate.newPromiseReaction): Deleted.
(globalPrivate.resolvePromise): Deleted.
(globalPrivate.rejectPromise): Deleted.
(globalPrivate.fulfillPromise): Deleted.
(globalPrivate.resolvePromiseWithFirstResolvingFunctionCallCheck): Deleted.
(globalPrivate.fulfillPromiseWithFirstResolvingFunctionCallCheck): Deleted.
(globalPrivate.rejectPromiseWithFirstResolvingFunctionCallCheck): Deleted.
(globalPrivate.createResolvingFunctions): Deleted.
(globalPrivate.promiseReactionJobWithoutPromise): Deleted.
(globalPrivate.resolveWithoutPromise): Deleted.
(globalPrivate.rejectWithoutPromise): Deleted.
(globalPrivate.fulfillWithoutPromise): Deleted.
(globalPrivate.createResolvingFunctionsWithoutPromise): Deleted.
(globalPrivate.promiseReactionJob): Deleted.
(globalPrivate.promiseResolveThenableJobFast): Deleted.
(globalPrivate.promiseResolveThenableJobWithoutPromiseFast): Deleted.
(globalPrivate.promiseResolveThenableJob): Deleted.
(globalPrivate.promiseResolveThenableJobWithDerivedPromise): Deleted.
(onFulfilled): Deleted.
(onRejected): Deleted.
(globalPrivate.performPromiseThen): Deleted.
- runtime/JSGlobalObject.cpp:
(JSC::JSC_DEFINE_HOST_FUNCTION):
- runtime/JSMicrotask.cpp:
(JSC::createJSMicrotask):
- runtime/JSMicrotask.h:
- 6:04 PM Changeset in webkit [273717] by
-
- 3 edits1 add in trunk
REGRESSION: Object.defineProperties triggering a setter
https://bugs.webkit.org/show_bug.cgi?id=222538
Reviewed by Keith Miller.
JSTests:
- stress/dfg-put-by-val-string-or-symbol-should-check-direct.js: Added.
(test1):
(test2):
Source/JavaScriptCore:
DFG's compilePutByValForCellWithString and compilePutByValForCellWithSymbol do not care about "Direct" flag.
This patch fixes that to call appropriate function if node is PutByValDirect.
FTL does not have this issue.
- dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::compilePutByValForCellWithString):
(JSC::DFG::SpeculativeJIT::compilePutByValForCellWithSymbol):
- 5:57 PM Changeset in webkit [273716] by
-
- 8 edits in trunk/Tools
[wbkitscmpy] Add commits with colliding timestamps
https://bugs.webkit.org/show_bug.cgi?id=222572
<rdar://problem/74887215>
Reviewed by Dewei Zhu.
- Scripts/libraries/webkitscmpy/setup.py: Bump version.
- Scripts/libraries/webkitscmpy/webkitscmpy/init.py: Ditto.
- Scripts/libraries/webkitscmpy/webkitscmpy/mocks/git-repo.json: Add commit with colliding timestamp.
- Scripts/libraries/webkitscmpy/webkitscmpy/test/canonicalize_unittest.py:
- Scripts/libraries/webkitscmpy/webkitscmpy/test/checkout_unittest.py:
- Scripts/libraries/webkitscmpy/webkitscmpy/test/find_unittest.py:
- Scripts/libraries/webkitscmpy/webkitscmpy/test/git_unittest.py:
- 5:52 PM Changeset in webkit [273715] by
-
- 6 edits2 adds in trunk
AX: VoiceOver announces grid as having "0 columns" and VoiceOver cannot enter the grid
https://bugs.webkit.org/show_bug.cgi?id=222440
<rdar://problem/74763792>
Reviewed by Zalan Bujtas.
Source/WebCore:
Support the ability of an ARIA table row to reference its cells through aria-owns.
Test: accessibility/aria-grid-with-aria-owns-rows.html
- accessibility/AccessibilityTableCell.cpp:
(WebCore::AccessibilityTableCell::ariaOwnedByParent const):
(WebCore::AccessibilityTableCell::parentObjectUnignored const):
(WebCore::AccessibilityTableCell::parentRow const):
- accessibility/AccessibilityTableCell.h:
- accessibility/AccessibilityTableRow.cpp:
(WebCore::AccessibilityTableRow::addChildren):
LayoutTests:
- accessibility/aria-grid-with-aria-owns-rows-expected.txt: Added.
- accessibility/aria-grid-with-aria-owns-rows.html: Added.
- 5:51 PM Changeset in webkit [273714] by
-
- 2 edits in trunk/LayoutTests
[GPUP] Some media related security tests time out when media in GPU Process is enabled
https://bugs.webkit.org/show_bug.cgi?id=221793
Unreviewed test gardening.
- platform/wk2/TestExpectations:
- 5:44 PM Changeset in webkit [273713] by
-
- 3 edits in trunk/Source/WebKit
Have WebProcessProxy::requestTermination() call processDidTerminateOrFailedToLaunch()
https://bugs.webkit.org/show_bug.cgi?id=222577
Reviewed by Geoffrey Garen.
Have WebProcessProxy::requestTermination() call processDidTerminateOrFailedToLaunch() instead of duplicating
the code. It was error-prone to have 2 separate code paths whether the process exited due to a crash or a
termination request. It led to Bug 222574 for example because we added some logic to remove the process from
the cache in processDidTerminateOrFailedToLaunch() but had failed to do so in requestTermination().
- UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::didClose):
(WebKit::WebProcessProxy::processDidTerminateOrFailedToLaunch):
(WebKit::WebProcessProxy::didFinishLaunching):
(WebKit::WebProcessProxy::requestTermination):
- UIProcess/WebProcessProxy.h:
- 5:40 PM Changeset in webkit [273712] by
-
- 2 edits in trunk/LayoutTests
[GPUP] Some tests in http/tests/media fail or time out when media in GPU Process is enabled
https://bugs.webkit.org/show_bug.cgi?id=221694
Unreviewed test gardening.
Remove the tests which are consistently passing on bots from the test expectations.
- platform/wk2/TestExpectations:
- 5:32 PM Changeset in webkit [273711] by
-
- 7 edits1 add in trunk
Support rotated image overlay text for non-rectilinear text quads
https://bugs.webkit.org/show_bug.cgi?id=222535
<rdar://problem/74886200>
Reviewed by Tim Horton.
Source/WebCore:
Add support for rendering image overlay elements at rotated angles. To achieve this, we add a new helper
function toGeometryUtilities.h,rotatedBoundingRect, that takes aFloatQuadand returns a struct that
describes a (potentially) rotated bounding rect that covers all the points in the quad.
Tests: FloatQuad.RotatedBoundingRectForPoint
FloatQuad.RotatedBoundingRectForLineSegment
FloatQuad.RotatedBoundingRectForTriangle
FloatQuad.RotatedBoundingRectForTrapezoid
FloatQuad.RotatedBoundingRectWithMinimumAngle
- html/HTMLElement.cpp:
(WebCore::HTMLElement::updateWithImageExtractionResult):
Add a slight (0.01 rad) tolerance here, such we won't attempt to apply a rotation transformation if the text
quad is aligned (or nearly aligned) with the unit vector (1, 0).
- platform/graphics/GeometryUtilities.cpp:
(WebCore::midPoint):
(WebCore::dotProduct):
(WebCore::angleBetweenVectors):
(WebCore::rotatedBoundingRect):
- platform/graphics/GeometryUtilities.h:
- platform/graphics/PathTraversalState.cpp:
(WebCore::midPoint): Deleted.
Tools:
Add a new API test file to exercise the new
rotatedBoundingRectfunction, with tests to cover a few degenerate
cases such as a single point, line segments, and triangles.
- TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
- TestWebKitAPI/Tests/WebCore/FloatQuadTests.cpp: Added.
(TestWebKitAPI::areApproximatelyEqual):
(TestWebKitAPI::expectRotatedRect):
(TestWebKitAPI::TEST):
- 5:22 PM Changeset in webkit [273710] by
-
- 1 copy in tags/Safari-611.1.21.3.1
Tag Safari-611.1.21.3.1.
- 5:16 PM Changeset in webkit [273709] by
-
- 1 copy in tags/Safari-611.1.21.2.1
Tag Safari-611.1.21.2.1.
- 5:13 PM Changeset in webkit [273708] by
-
- 1 copy in tags/Safari-611.1.21.1.2
Tag Safari-611.1.21.1.2.
- 5:13 PM Changeset in webkit [273707] by
-
- 2 edits in trunk/LayoutTests
[GPUP] Some tests in imported/w3c/web-platform-tests/html/semantics/embedded-content/media-elements fail when media in GPU Process is enabled
https://bugs.webkit.org/show_bug.cgi?id=221697
Unreviewed test gardening.
- platform/wk2/TestExpectations:
- 5:09 PM Changeset in webkit [273706] by
-
- 8 edits in branches/safari-611.1.21.1-branch/Source
Versioning.
WebKit-7611.1.21.1.2
- 5:04 PM Changeset in webkit [273705] by
-
- 2 edits in trunk/LayoutTests
[GPUP] Some media related content security policy tests fail when media in GPU Process is enabled
https://bugs.webkit.org/show_bug.cgi?id=221792
Unreviewed test gardening.
- platform/wk2/TestExpectations:
- 5:03 PM Changeset in webkit [273704] by
-
- 2 edits in trunk/LayoutTests
fast/canvas/webgl/texImage2D-video-flipY-false.html is timing out
https://bugs.webkit.org/show_bug.cgi?id=222500
Unreviewed test gardening.
- platform/mac-wk2/TestExpectations:
- 5:00 PM Changeset in webkit [273703] by
-
- 1 copy in tags/Safari-611.1.21.0.1
Tag Safari-611.1.21.0.1.
- 4:51 PM Changeset in webkit [273702] by
-
- 1 copy in tags/Safari-611.1.21.1.1
Tag Safari-611.1.21.1.1.
- 4:10 PM Changeset in webkit [273701] by
-
- 2 edits in trunk/LayoutTests
[GPUP] Some modern-media-controls tests are flaky when media in GPU Process is enabled
https://bugs.webkit.org/show_bug.cgi?id=221685
Unreviewed test gardening.
- platform/wk2/TestExpectations:
- 3:53 PM Changeset in webkit [273700] by
-
- 14 edits in trunk/Source
Unreviewed, reverting r273655.
Broke internal Mac
Reverted changeset:
"Set ownership of IOSurfaces from the GPUProcess instead of
the WebProcess"
https://bugs.webkit.org/show_bug.cgi?id=222391
https://commits.webkit.org/r273655
- 3:44 PM Changeset in webkit [273699] by
-
- 2 edits in trunk
[Win] Fix build failure
https://bugs.webkit.org/show_bug.cgi?id=222576
<rdar://problem/74590803>
Reviewed by Brent Fulgham.
It appears a recent change has unintentionally enabled WebInspectorUI on Apple Win. Address this by explicitly disabling it.
- Source/cmake/OptionsAppleWin.cmake:
- 3:28 PM Changeset in webkit [273698] by
-
- 3 edits3 adds3 deletes in trunk/LayoutTests
[LayoutTests] Convert http/tests/websocket convert PHP to Python
https://bugs.webkit.org/show_bug.cgi?id=221912
<rdar://problem/74358196>
Reviewed by Jonathan Bedard.
- http/tests/websocket/tests/hybi/contentextensions/block-cookies-worker.php: Removed.
- http/tests/websocket/tests/hybi/contentextensions/block-cookies-worker.py: Added.
- http/tests/websocket/tests/hybi/contentextensions/block-cookies.php: Removed.
- http/tests/websocket/tests/hybi/contentextensions/block-cookies.py: Added.
- http/tests/websocket/tests/hybi/contentextensions/resources/block-cookies-worker.js:
(clearCookies):
- http/tests/websocket/tests/hybi/error-event-ready-state-non-existent-url-with-server-responding-404.html:
- http/tests/websocket/tests/hybi/resources/status-404-without-body.php: Removed.
- http/tests/websocket/tests/hybi/resources/status-404-without-body.py: Added.
- 3:15 PM Changeset in webkit [273697] by
-
- 2 edits in trunk/Source/WebCore
Unreviewed, fix unused variable warning
https://bugs.webkit.org/show_bug.cgi?id=222405
<rdar://problem/74769938>
Patch by Michael Catanzaro <Michael Catanzaro> on 2021-03-01
- platform/NowPlayingManager.cpp:
(WebCore::NowPlayingManager::setNowPlayingInfo):
- 3:11 PM Changeset in webkit [273696] by
-
- 3 edits in trunk/LayoutTests
[GPUP] Clean up LayoutTests/gpu-process/TestExpectations related to media tests
https://bugs.webkit.org/show_bug.cgi?id=222570
Reviewed by Eric Carlson.
Clean up test expectations.
- Remove duplicate test expectations.
- Move some media tests from gpu-process/TestExpectations to platform/wk2/TestExpectations.
- Remove tests which are passing consistently from gpu-process/TestExpectations.
- gpu-process/TestExpectations:
- platform/wk2/TestExpectations:
- 3:07 PM Changeset in webkit [273695] by
-
- 6 edits in trunk
Crash under WebProcessPool::pageBeginUsingWebsiteDataStore()
https://bugs.webkit.org/show_bug.cgi?id=222574
<rdar://68340471>
Reviewed by Geoffrey Garen.
Source/WebKit:
The issue was that when WebProcessProxy::requestTermination() was called (e.g. process is killed by WebKit
for using too much memory), we would fail to remove the process from the WebProcessCache. Because the
terminated would stay in the cache (even though WebProcessProxy::shutDown() was called), we could potentially
try and use it later on for a navigation to the same domain. This would lead to crashes because
WebProcessProxy::shutDown() has already been called.
Note that we were previously correctly removing the process from the cache in case of a proper crash, inside
WebProcessProxy::processDidTerminateOrFailedToLaunch(). I have moved the logic to remove from the cache
from processDidTerminateOrFailedToLaunch() to shutDown() to avoid similar issues in the future.
- UIProcess/API/Cocoa/WKProcessPool.mm:
(-[WKProcessPool _requestWebProcessTermination:]):
- UIProcess/API/Cocoa/WKProcessPoolPrivate.h:
- UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::shutDown):
(WebKit::WebProcessProxy::processDidTerminateOrFailedToLaunch):
Tools:
Add API test coverage.
- TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:
- 3:06 PM Changeset in webkit [273694] by
-
- 2 edits in trunk/Source/WebKit
[WinCairo] Building with ENABLE_SERVICE_WORKER=OFF fails
https://bugs.webkit.org/show_bug.cgi?id=222566
Unreviewed build fix.
- UIProcess/WebProcessPool.cpp: Only compile a method when service
worker is enabled.
- 2:58 PM Changeset in webkit [273693] by
-
- 3 edits in trunk/Source/WebKit
Have WebProcessPool::processForRegistrableDomain() return a Ref<WebProcessProxy>
https://bugs.webkit.org/show_bug.cgi?id=222575
Reviewed by Geoffrey Garen.
Have WebProcessPool::processForRegistrableDomain() return a Ref<WebProcessProxy> instead of a WebProcessProxy&,
for extra safety. Returning a WebProcessProxy& is generally safe because the WebProcessPool is expected to hold
a reference to the WebProcessProxy it is returning (via WebProcessPool::m_processes). However, this is a bit
fragile and can lead to bad bugs as we've seen recently.
- UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::createNewWebProcess):
(WebKit::WebProcessPool::processForRegistrableDomain):
(WebKit::WebProcessPool::createWebPage):
- UIProcess/WebProcessPool.h:
- 2:29 PM Changeset in webkit [273692] by
-
- 2 edits in trunk/Source/WebCore
Protect AudioWorkletGlobalScope::registerProcessor() against re-entry
https://bugs.webkit.org/show_bug.cgi?id=222567
<rdar://74860464>
Reviewed by Eric Carlson.
AudioWorkletGlobalScope::registerProcessor() checks if 'name' is in m_processorConstructorMap
then does some checks that potentially run JS and thus call registerProcessor() again (potentially
with the same name). To address this, we now check the map again after potentially running the
JS code.
- Modules/webaudio/AudioWorkletGlobalScope.cpp:
(WebCore::AudioWorkletGlobalScope::registerProcessor):
- 2:02 PM Changeset in webkit [273691] by
-
- 2 edits4 moves in trunk/LayoutTests
[Big Sur] platform/mac-bigsur/media/media-source/media-source-webm-vorbis-partial.html is consistently failing
https://bugs.webkit.org/show_bug.cgi?id=222495
Unreviewed test gardening.
- media/media-source/content/test-48kHz-vorbis-manifest.json: Renamed from LayoutTests/platform/mac-bigsur/media/media-source/content/test-48kHz-vorbis-manifest.json.
- media/media-source/content/test-48kHz-vorbis.webm: Renamed from LayoutTests/platform/mac-bigsur/media/media-source/content/test-48kHz-vorbis.webm.
- media/media-source/media-source-webm-vorbis-partial-expected.txt: Renamed from LayoutTests/platform/mac-bigsur/media/media-source/media-source-webm-vorbis-partial-expected.txt.
- media/media-source/media-source-webm-vorbis-partial.html: Renamed from LayoutTests/platform/mac-bigsur/media/media-source/media-source-webm-vorbis-partial.html.
- platform/mac/TestExpectations:
- 1:32 PM Changeset in webkit [273690] by
-
- 10 edits4 adds in trunk
Scroll snapping doesn't kick in when dragging scrollbars
https://bugs.webkit.org/show_bug.cgi?id=146696
Reviewed by Simon Fraser.
Source/WebCore:
This change adds support for scroll snap when the scrollbar thumb is
released from a drag operation. This animation is currently done with
the non-native scroll animator for all platforms, since that is also
what is used for smooth scrolling.
This change adjusts the non-native scroll animator's smoothness factor,
because it is too slow for short scroll snaps. I have verified that the
new smoothness factor is also a good selection for smooth scrolling
operations (still an experimental feature). A further change should use
"native" animations when possible for both smooth scrolling and scroll
snap after thumb drags. This is tracked by the following bug:
https://bugs.webkit.org/show_bug.cgi?id=218857
Tests: css3/scroll-snap/scroll-snap-click-scrollbar-gutter.html
css3/scroll-snap/scroll-snap-drag-scrollbar-thumb.html
- platform/ScrollAnimationSmooth.cpp: Modify smoothFactorForProgrammaticScroll to
a value that is good for both scroll snapping and smooth scrolling.
- platform/ScrollAnimator.cpp: The tick method for the non-native scroll animation
should continually update the current active snap point.
(WebCore::ScrollAnimator::adjustScrollOffsetForSnappingIfNeeded): Split this into
two methods. One that handles a single axis and one that handles both.
- platform/ScrollAnimator.h: Update method declarations.
- platform/ScrollableArea.cpp:
(WebCore::ScrollableArea::doPostThumbDragSnapping): Added this method which does
axial snapping after a scrollbar thum drag.
- platform/ScrollableArea.h:
- platform/Scrollbar.cpp:
(WebCore::Scrollbar::mouseUp): Use the new doPostThumbDragSnapping method.
LayoutTests:
Add support for scroll snap after dragging scrollbar thumb
This change adds support for scroll snap when the scrollbar thumb is
released from a drag operation. This animation is currently done with
the non-native scroll animator for all platforms, since that is also
what is used for smooth scrolling.
This change adjusts the non-native scroll animator's smoothness factor,
because it is too slow for short scroll snaps. I have verified that the
new smoothness factor is also a good selection for smooth scrolling
operations (still an experimental feature). A further change should use
"native" animations when possible for both smooth scrolling and scroll
snap after thumb drags. This is tracked by the following bug:
https://bugs.webkit.org/show_bug.cgi?id=218857
- css3/scroll-snap/scroll-snap-click-scrollbar-gutter-expected.txt: Added.
- css3/scroll-snap/scroll-snap-click-scrollbar-gutter.html: Added.
- css3/scroll-snap/scroll-snap-drag-scrollbar-thumb-expected.txt: Added.
- css3/scroll-snap/scroll-snap-drag-scrollbar-thumb.html: Added.
- platform/ios-wk2/TestExpectations: Mark new test as failing on iOS
which has issues with scrollbars.
- platform/ios/TestExpectations: Skip the new test on iOS which does not
support scrolling by dragging the scrollbar.
- 1:29 PM Changeset in webkit [273689] by
-
- 8 edits in branches/safari-611.1.21.1-branch/Source
Cherry-pick r273564. rdar://problem/74886917
[Cocoa] Register VP9 decoders when PlatformMediaSessionManager is created
https://bugs.webkit.org/show_bug.cgi?id=222473
<rdar://problem/74790242>
Reviewed by Eric Carlson.
Source/WebCore:
Currently, VP9 decoders are registered when a Web page is created in the WebContent process. Instead, VP9 decoders can be registered
when PlatformMediaSessionManager is created, which should be a slight performance improvement, since calls into media frameworks will
then not be made unconditionally when creating a Web page, but delayed until required.
No new tests, covered by existing tests.
- platform/audio/PlatformMediaSessionManager.cpp: (WebCore::PlatformMediaSessionManager::setShouldEnableVP9Decoder): (WebCore::PlatformMediaSessionManager::shouldEnableVP9Decoder): (WebCore::PlatformMediaSessionManager::setShouldEnableVP8Decoder): (WebCore::PlatformMediaSessionManager::shouldEnableVP8Decoder): (WebCore::PlatformMediaSessionManager::setShouldEnableVP9SWDecoder): (WebCore::PlatformMediaSessionManager::shouldEnableVP9SWDecoder):
- platform/audio/PlatformMediaSessionManager.h:
- platform/audio/cocoa/MediaSessionManagerCocoa.mm: (WebCore::MediaSessionManagerCocoa::MediaSessionManagerCocoa):
Source/WebKit:
Currently, VP9 decoders are registered when a Web page is created in the WebContent process. Instead, VP9 decoders can be registered when
PlatformMediaSessionManager is created, which should be a slight performance improvement, since calls into media frameworks will then not
be made unconditionally when creating a Web page, but delayed until required.
- WebProcess/WebPage/WebPage.cpp: (WebKit::m_lastNavigationWasAppBound):
- WebProcess/WebProcess.cpp: (WebKit::WebProcess::enableVP9Decoder): Deleted. (WebKit::WebProcess::enableVP8SWDecoder): Deleted. (WebKit::WebProcess::enableVP9SWDecoder): Deleted.
- WebProcess/WebProcess.h:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@273564 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 1:27 PM Changeset in webkit [273688] by
-
- 19 edits3 adds in trunk/Source
Add alternate, non-named-getter based, implementation of CSSStyleDeclaration back into WebCore
https://bugs.webkit.org/show_bug.cgi?id=222517
Reviewed by Darin Adler.
Source/WebCore:
Re-lands change from r268564 but disabled behind a new ENABLE flag,
ENABLE(ATTRIBUTE_BASED_PROPERTIES_FOR_CSS_STYLE_DECLARATION).
Replace named getter/setter based implementation of access to CSSStyleDeclaration property values
with a generated partial interface that lists all the properties exactly.
To keep things consistent with existing behavior, in addition to the spec'd properties, we also
maintain additional properties for epub prefixed properties.
- CMakeLists.txt:
- DerivedSources-output.xcfilelist:
- DerivedSources.make:
Generate CSSStyleDeclaration+PropertyNames.idl and ensure it is compile together with the other
bindings.
- css/makeprop.pl:
Add generation of CSSStyleDeclaration+PropertyNames.idl from CSSProperties.json. Add checking
of the enable flag to ensure it is not compiled by default.
- bindings/scripts/CodeGeneratorJS.pm:
(ToMethodName):
Don't transform names that start with CSSOM to ensure property names are consistent.
(GenerateAttributeGetterBodyDefinition):
(GenerateAttributeSetterBodyDefinition):
- bindings/scripts/IDLAttributes.json:
Add initial support for the new CSSProperty extended attribute. Only the tests and
the disabled code in CSSStyleDeclaration+PropertyNames.idl currently use it.
- bindings/scripts/test/BindingTestGlobalConstructors.idl:
- bindings/scripts/test/JS/JSTestCSSProperty.cpp: Added.
- bindings/scripts/test/JS/JSTestCSSProperty.h: Added.
- bindings/scripts/test/SupplementalDependencies.dep:
- bindings/scripts/test/TestCSSProperty.idl: Added.
Add tests for the new CSSProperty extended attribute.
(WebCore::CSSComputedStyleDeclaration::setPropertyInternal):
- css/CSSComputedStyleDeclaration.h:
- css/PropertySetCSSStyleDeclaration.cpp:
(WebCore::PropertySetCSSStyleDeclaration::getPropertyValueInternal):
(WebCore::PropertySetCSSStyleDeclaration::setPropertyInternal):
- css/PropertySetCSSStyleDeclaration.h:
Remove unused bool return value from getPropertyValueInternal (it goes from
ExceptionOr<bool> to ExceptionOr<void>) to simplify some callers that no longer
need to check the return value.
- css/CSSStyleDeclaration.cpp:
- css/CSSStyleDeclaration.h:
Extract out setPropertyValueInternal so it can be used by the bindings generator
for CSSProperty attributes.
- css/CSSStyleDeclaration.idl:
Move named getter/setter declarations and DefaultDefineOwnProperty inside of
enable flags checks so that when it is disabled, we don't use them.
Source/WTF:
- wtf/PlatformEnable.h:
Add new off by default ENABLE flag ENABLE(ATTRIBUTE_BASED_PROPERTIES_FOR_CSS_STYLE_DECLARATION) which indicates
that we should use the new attribute based implementation of property getter/setters of CSSStyleDeclaration.
Once we remove the compile time and binary size regressions, we can enable this and remove the macro.
- 1:24 PM Changeset in webkit [273687] by
-
- 2 edits in trunk/LayoutTests
media/media-fullscreen-pause-inline.html is flaky failing
https://bugs.webkit.org/show_bug.cgi?id=222573
RUnreviewed test gardening.
- platform/mac/TestExpectations:
- 1:23 PM Changeset in webkit [273686] by
-
- 8 edits in branches/safari-611.1.21.0-branch/Source
Cherry-pick r273564. rdar://problem/74886738
[Cocoa] Register VP9 decoders when PlatformMediaSessionManager is created
https://bugs.webkit.org/show_bug.cgi?id=222473
<rdar://problem/74790242>
Reviewed by Eric Carlson.
Source/WebCore:
Currently, VP9 decoders are registered when a Web page is created in the WebContent process. Instead, VP9 decoders can be registered
when PlatformMediaSessionManager is created, which should be a slight performance improvement, since calls into media frameworks will
then not be made unconditionally when creating a Web page, but delayed until required.
No new tests, covered by existing tests.
- platform/audio/PlatformMediaSessionManager.cpp: (WebCore::PlatformMediaSessionManager::setShouldEnableVP9Decoder): (WebCore::PlatformMediaSessionManager::shouldEnableVP9Decoder): (WebCore::PlatformMediaSessionManager::setShouldEnableVP8Decoder): (WebCore::PlatformMediaSessionManager::shouldEnableVP8Decoder): (WebCore::PlatformMediaSessionManager::setShouldEnableVP9SWDecoder): (WebCore::PlatformMediaSessionManager::shouldEnableVP9SWDecoder):
- platform/audio/PlatformMediaSessionManager.h:
- platform/audio/cocoa/MediaSessionManagerCocoa.mm: (WebCore::MediaSessionManagerCocoa::MediaSessionManagerCocoa):
Source/WebKit:
Currently, VP9 decoders are registered when a Web page is created in the WebContent process. Instead, VP9 decoders can be registered when
PlatformMediaSessionManager is created, which should be a slight performance improvement, since calls into media frameworks will then not
be made unconditionally when creating a Web page, but delayed until required.
- WebProcess/WebPage/WebPage.cpp: (WebKit::m_lastNavigationWasAppBound):
- WebProcess/WebProcess.cpp: (WebKit::WebProcess::enableVP9Decoder): Deleted. (WebKit::WebProcess::enableVP8SWDecoder): Deleted. (WebKit::WebProcess::enableVP9SWDecoder): Deleted.
- WebProcess/WebProcess.h:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@273564 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 1:16 PM Changeset in webkit [273685] by
-
- 28 edits26 adds27 deletes in trunk/LayoutTests
[LayoutTests] Convert http/tests/loading convert PHP to Python
https://bugs.webkit.org/show_bug.cgi?id=222198
<rdar://problem/74536576>
Reviewed by Jonathan Bedard.
- http/tests/loading/307-after-303-after-post-expected.txt:
- http/tests/loading/307-after-303-after-post.html:
- http/tests/loading/authentication-after-redirect-stores-wrong-credentials/authentication-after-redirect-stores-wrong-credentials-expected.txt:
- http/tests/loading/authentication-after-redirect-stores-wrong-credentials/authentication-after-redirect-stores-wrong-credentials.html:
- http/tests/loading/authentication-after-redirect-stores-wrong-credentials/resources/wrong-credential-1-redirect-to-auth.php: Removed.
- http/tests/loading/authentication-after-redirect-stores-wrong-credentials/resources/wrong-credential-1-redirect-to-auth.py: Added.
- http/tests/loading/authentication-after-redirect-stores-wrong-credentials/resources/wrong-credential-2-auth-then-redirect-to-finish.php: Removed.
- http/tests/loading/authentication-after-redirect-stores-wrong-credentials/resources/wrong-credential-2-auth-then-redirect-to-finish.py: Added.
- http/tests/loading/authentication-after-redirect-stores-wrong-credentials/resources/wrong-credential-3-output-credentials-then-finish.php: Removed.
- http/tests/loading/authentication-after-redirect-stores-wrong-credentials/resources/wrong-credential-3-output-credentials-then-finish.py: Added.
- http/tests/loading/basic-auth-load-URL-with-consecutive-slashes-expected.txt:
- http/tests/loading/basic-auth-load-URL-with-consecutive-slashes.html:
- http/tests/loading/basic-auth-remove-credentials-expected.txt:
- http/tests/loading/basic-auth-remove-credentials.html:
- http/tests/loading/basic-auth-resend-wrong-credentials-expected.txt:
- http/tests/loading/basic-auth-resend-wrong-credentials.html:
- http/tests/loading/basic-credentials-sent-automatically-expected.txt:
- http/tests/loading/basic-credentials-sent-automatically.html:
- http/tests/loading/nested_bad_objects.php: Removed.
- http/tests/loading/nested_bad_objects.py: Added.
- http/tests/loading/oauth.html:
- http/tests/loading/post-in-iframe-with-back-navigation-expected.txt:
- http/tests/loading/post-in-iframe-with-back-navigation.html:
- http/tests/loading/preload-append-scan.php: Removed.
- http/tests/loading/preload-append-scan.py: Added.
- http/tests/loading/preload-slow-loading.php: Removed.
- http/tests/loading/preload-slow-loading.py: Added.
- http/tests/loading/redirect-with-no-location-crash.html:
- http/tests/loading/resourceLoadStatistics/resources/get-cookies.php: Removed.
- http/tests/loading/resourceLoadStatistics/resources/get-cookies.py: Added.
- http/tests/loading/resourceLoadStatistics/resources/set-cookie.php: Removed.
- http/tests/loading/resources/303-to-307-target.php: Removed.
- http/tests/loading/resources/303-to-307-target.py: Added.
- http/tests/loading/resources/307-post-output-target.php: Removed.
- http/tests/loading/resources/307-post-output-target.py: Added.
- http/tests/loading/resources/basic-auth-testing.php: Removed.
- http/tests/loading/resources/basic-auth-testing.py: Added.
- http/tests/loading/resources/cached-stylesheet-from-different-domain-frame.css.php: Removed.
- http/tests/loading/resources/cached-stylesheet-from-different-domain-frame.css.py: Added.
- http/tests/loading/resources/cached-stylesheet-from-different-domain-frame.html:
- http/tests/loading/resources/imported-stylesheet-varying-according-domain.css.php: Removed.
- http/tests/loading/resources/imported-stylesheet-varying-according-domain.css.py: Added.
- http/tests/loading/resources/oauth-subresource.php: Removed.
- http/tests/loading/resources/oauth-subresource.py: Added.
- http/tests/loading/resources/othersubresources/protected-resource.php: Removed.
- http/tests/loading/resources/othersubresources/protected-resource.py: Added.
- http/tests/loading/resources/page-with-slow-loading-subresource.html:
- http/tests/loading/resources/post-in-iframe-with-back-navigation-page-1.php: Removed.
- http/tests/loading/resources/post-in-iframe-with-back-navigation-page-1.py: Added.
- http/tests/loading/resources/post-in-iframe-with-back-navigation-page-2.php: Removed.
- http/tests/loading/resources/post-in-iframe-with-back-navigation-page-2.py: Added.
- http/tests/loading/resources/post-in-iframe-with-back-navigation-page-3.php: Removed.
- http/tests/loading/resources/post-in-iframe-with-back-navigation-page-3.py: Added.
- http/tests/loading/resources/post-to-303-target.php: Removed.
- http/tests/loading/resources/post-to-303-target.py: Added.
- http/tests/loading/resources/protected-resource.php: Removed.
- http/tests/loading/resources/protected-resource.py: Added.
- http/tests/loading/resources/redirect-with-no-location-crash.php: Removed.
- http/tests/loading/resources/redirect-with-no-location-crash.py: Added.
- http/tests/loading/resources/resource-that-goes-back-while-still-loading.php: Removed.
- http/tests/loading/resources/resource-that-goes-back-while-still-loading.py: Added.
- http/tests/loading/resources/server-redirect-result.html:
- http/tests/loading/resources/server-redirect.php: Removed.
- http/tests/loading/resources/server-redirect.py: Added.
- http/tests/loading/resources/slowimage.php: Removed.
- http/tests/loading/resources/slowimage.py: Added.
- http/tests/loading/resources/subresources/protected-resource.php: Removed.
- http/tests/loading/resources/subresources/protected-resource.py: Added.
- http/tests/loading/resources/test2/basic-auth-testing.php: Removed.
- http/tests/loading/resources/test2/basic-auth-testing.py: Added.
- http/tests/loading/resources/test2/protected-resource.php: Removed.
- http/tests/loading/resources/test2/protected-resource.py: Added.
- http/tests/loading/server-redirect-for-provisional-load-caching-expected.txt:
- http/tests/loading/server-redirect-for-provisional-load-caching.html:
- http/tests/loading/unfinished-main-resource-back-to-cached-page-callbacks.html:
- platform/ios-wk1/TestExpectations:
- platform/win/TestExpectations:
- platform/wk2/http/tests/loading/authentication-after-redirect-stores-wrong-credentials/authentication-after-redirect-stores-wrong-credentials-expected.txt:
- platform/wk2/http/tests/loading/basic-credentials-sent-automatically-expected.txt:
- platform/wk2/http/tests/loading/server-redirect-for-provisional-load-caching-expected.txt:
- 1:09 PM Changeset in webkit [273684] by
-
- 8 edits1 copy2 moves1 add in trunk
WebAccessibilityObjectWrapper method to retrieve related error message elements should return not-ignored accessibility elements.
https://bugs.webkit.org/show_bug.cgi?id=222375
Reviewed by Chris Fleizach.
Source/WebCore:
Tests: accessibility/ios-simulator/aria-errormessage.html
accessibility/mac/aria-errormessage.html
The iOS implementation of [WebAccessibilityObjectWrapper accessibilityErrorMessageElements]
was returning container elements that are not accessibility elements,
i.e., isAccessibilityElement return false. That caused that iOS clients could not get any info about the error messages.
With this patch, accessibilityErrorMessageElements drills down the
hierarchy of accessibility objects for the error message elements and
returns those descendants that are accessibility elements.
- accessibility/AccessibilityObjectInterface.h:
(WebCore::Accessibility::enumerateDescendants):
Hellper function to enumerate descendants of a given AX object.
- accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:
(-[WebAccessibilityObjectWrapper accessibilityErrorMessageElements]):
Returns elements for which isAccessibilityElement == YES.
LayoutTests:
Replaced accessibility/aria-errormessage.html with mac and ios-simulator variants.
- accessibility/ios-simulator/aria-errormessage-expected.txt: Added.
- accessibility/ios-simulator/aria-errormessage.html: Copied from LayoutTests/accessibility/aria-errormessage.html.
- accessibility/mac/aria-errormessage-expected.txt: Renamed from LayoutTests/accessibility/aria-errormessage-expected.txt.
- accessibility/mac/aria-errormessage.html: Renamed from LayoutTests/accessibility/aria-errormessage.html.
- platform/glib/TestExpectations:
- platform/ios/TestExpectations:
- platform/mac-wk1/TestExpectations:
- platform/win/TestExpectations:
- 12:56 PM Changeset in webkit [273683] by
-
- 18 edits3 adds in trunk
Add experimental support for CSS Color 5 color-contrast()
https://bugs.webkit.org/show_bug.cgi?id=222530
Reviewed by Simon Fraser.
Source/WebCore:
This feature is off by default and can be enabled via the CSSColorContrastEnabled
experimental preference flag.
This implementation has the same restriction on it that the recently landed
Relative Color Syntax and color-mix() do, in that it does support system colors
or currentColor as input, since those can't be resolved at parse time. Ultimately,
we will need to add a late binding version of this for those cases.
Test: fast/css/parsing-color-contrast.html
- Headers.cmake:
- WebCore.xcodeproj/project.pbxproj:
Add new ColorLuminance.h header where the generic relative luminance and contrast ratio
functions live.
- css/CSSValueKeywords.in:
Add new keywords, color-contrast and vs, that are needed for the color-contrast() function.
- css/parser/CSSParserContext.cpp:
- css/parser/CSSParserContext.h:
Add a setting for color-contrast.
- css/parser/CSSPropertyParserHelpers.cpp:
(WebCore::CSSPropertyParserHelpers::parseColorContrastFunctionParameters):
(WebCore::CSSPropertyParserHelpers::parseColorFunction):
Add parsing and computation of color-contrast().
- platform/graphics/ColorUtilities.cpp:
(WebCore::lightness): Deleted.
(WebCore::luminance): Deleted.
(WebCore::contrastRatio): Deleted.
Moved luminance related functions to ColorLuminance.h and inlined lightness
to its one caller, Color and noted it should be removed.
- platform/graphics/ColorUtilities.h:
(WebCore::invertedColorWithOverriddenAlpha):
(WebCore::invertedcolorWithOverriddenAlpha): Deleted.
Fix capitalization issue seen. invertedcolorWithOverriddenAlpha -> invertedColorWithOverriddenAlpha.
- platform/graphics/Color.cpp:
(WebCore::Color::lightness const):
Inline implementation and add comment explaining it should be removed.
(WebCore::Color::luminance const):
Re-write to use the new WebCore::relativeLuminance that works for any color type
without conversion to sRGB.
(WebCore::Color::contrastRatio):
Add helper to call generic WebCore::contrastRatio that works on any color types
to avoid callers needing to do the unfolding themselves.
(WebCore::Color::isBlackColor):
(WebCore::Color::isWhiteColor):
- platform/graphics/Color.h:
(WebCore::Color::isBlackColor): Deleted.
(WebCore::Color::isWhiteColor): Deleted.
Move these rare functions out of line to reduce the number of places in the header we are
calling callOnUnderlyingType(), which produces code linerally with the number of color spaces
supported. Calling it in the cpp files means we only expand it once for each function.
- platform/graphics/ColorLuminance.h: Added.
(WebCore::relativeLuminance):
This is a generic version of the old luminance function that works for any color type
by converting to XYZ and taking the Y component. The old function required always
converting to sRGB which could be lossy.
(WebCore::contrastRatio):
Split out computation of contrastRatio based on relative luminace floats into its own
function so that if we have the relative luminance computed already, we don't have to
recompute it. Add version contrastRatio that works for any color type utilizing the
generic relativeLuminance function above.
- rendering/RenderTheme.cpp:
(WebCore::RenderTheme::disabledTextColor const):
- rendering/TextPaintStyle.cpp:
(WebCore::textColorIsLegibleAgainstBackgroundColor):
Update to use new Color::contrastRatio helper that handles all color types.
Source/WTF:
- Scripts/Preferences/WebPreferencesExperimental.yaml:
Add new experimental preference for CSS Color 5 color-contrast()
which is off by default.
Tools:
- TestWebKitAPI/Tests/WebCore/ColorTests.cpp:
(TestWebKitAPI::TEST):
Update luminance values to account for more accurate conversion to
XYZ now that we are usuing the actual matrix values from SRGBADescriptor
and not a truncated copy.
LayoutTests:
- fast/css/parsing-color-contrast-expected.txt: Added.
- fast/css/parsing-color-contrast.html: Added.
Add parsing and computed style computation tests for color-contast().
- 12:53 PM Changeset in webkit [273682] by
-
- 27 edits2 moves2 deletes in branches/safari-611.1.21.2-branch
Revert "Cherry-pick r273590. rdar://problem/74881403"
This reverts commit 8714b941c814ac9e9771325be68853be779c4393.
- 12:51 PM Changeset in webkit [273681] by
-
- 2 edits in trunk/Source/WebCore
[LFC][IFC] Change LineBoxBuilder::m_inlineLevelBoxesNeedVerticalAlignment to m_useSimplifiedVerticalAlignment
https://bugs.webkit.org/show_bug.cgi?id=222556
Reviewed by Antti Koivisto.
m_useSimplifiedVerticalAlignment is more descriptive. It's also in preparation for expanding the simplified vertical alignment coverage.
- layout/inlineformatting/InlineFormattingContextGeometry.cpp:
(WebCore::Layout::LineBoxBuilder::LineBoxBuilder):
(WebCore::Layout::LineBoxBuilder::build):
(WebCore::Layout::LineBoxBuilder::constructInlineLevelBoxes):
- 12:37 PM Changeset in webkit [273680] by
-
- 2 edits in trunk/Source/WebCore
Remove added element from Style::Update root set
https://bugs.webkit.org/show_bug.cgi?id=222536
Reviewed by Zalan Bujtas.
With combined text and element updates an element might already exist in the root set when added.
Remove it from the root set to avoid updating it twice.
- style/StyleUpdate.cpp:
(WebCore::Style::Update::addElement):
(WebCore::Style::Update::addText):
- 12:26 PM Changeset in webkit [273679] by
-
- 3 edits2 adds in branches/safari-611.1.21.1-branch
Cherry-pick r273656. rdar://problem/74883377
REGRESSION(r272004): transform transition with delay doesn't behave correctly
https://bugs.webkit.org/show_bug.cgi?id=222545
<rdar://problem/74865413>
Reviewed by Dean Jackson.
Source/WebCore:
To support accelerated animations of individual transform properties, we introduced the notion of
non-interpolating animations to apply the underlying value for a given property before applying
the actual animations for this property with additivity set to true.
These non-interpolating animations were meant to last between the time at which animations were
committed and the effective start of the first animation for that property, accounting for any
delay.
However, we neglected to handle the case where that first animation had a fill mode that would
make it fill backwards, such as CSS Transitions. In that situation, the animation would have
its first keyframe applied on top of the underlying value, effectively applying the underlying
value twice with additivity.
We now only add these non-interpolating animations if the first animation has a delay and does
not fill backwards.
Test: webanimations/transform-transition-with-delay-on-forced-layer-with-transform.html
- platform/graphics/ca/GraphicsLayerCA.cpp: (WebCore::GraphicsLayerCA::updateAnimations):
LayoutTests:
Add a new test where an element with a non-identity transform starts a transform transition with a
long delay. Prior to this patch, this test failed because, while in the delay phase, the transition
would mean the underlying transform was applied twice: once by the non-interpolating animation
generated for the underlying "transform" value, and once by the first keyframe of the transition
since it fills backwards.
- webanimations/transform-transition-with-delay-on-forced-layer-with-transform-expected.html: Added.
- webanimations/transform-transition-with-delay-on-forced-layer-with-transform.html: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@273656 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 12:24 PM Changeset in webkit [273678] by
-
- 3 edits2 adds in branches/safari-611.1.21.3-branch
Cherry-pick r273656. rdar://problem/74883325
REGRESSION(r272004): transform transition with delay doesn't behave correctly
https://bugs.webkit.org/show_bug.cgi?id=222545
<rdar://problem/74865413>
Reviewed by Dean Jackson.
Source/WebCore:
To support accelerated animations of individual transform properties, we introduced the notion of
non-interpolating animations to apply the underlying value for a given property before applying
the actual animations for this property with additivity set to true.
These non-interpolating animations were meant to last between the time at which animations were
committed and the effective start of the first animation for that property, accounting for any
delay.
However, we neglected to handle the case where that first animation had a fill mode that would
make it fill backwards, such as CSS Transitions. In that situation, the animation would have
its first keyframe applied on top of the underlying value, effectively applying the underlying
value twice with additivity.
We now only add these non-interpolating animations if the first animation has a delay and does
not fill backwards.
Test: webanimations/transform-transition-with-delay-on-forced-layer-with-transform.html
- platform/graphics/ca/GraphicsLayerCA.cpp: (WebCore::GraphicsLayerCA::updateAnimations):
LayoutTests:
Add a new test where an element with a non-identity transform starts a transform transition with a
long delay. Prior to this patch, this test failed because, while in the delay phase, the transition
would mean the underlying transform was applied twice: once by the non-interpolating animation
generated for the underlying "transform" value, and once by the first keyframe of the transition
since it fills backwards.
- webanimations/transform-transition-with-delay-on-forced-layer-with-transform-expected.html: Added.
- webanimations/transform-transition-with-delay-on-forced-layer-with-transform.html: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@273656 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 12:22 PM Changeset in webkit [273677] by
-
- 3 edits2 adds in branches/safari-611.1.21.2-branch
Cherry-pick r273656. rdar://problem/74883395
REGRESSION(r272004): transform transition with delay doesn't behave correctly
https://bugs.webkit.org/show_bug.cgi?id=222545
<rdar://problem/74865413>
Reviewed by Dean Jackson.
Source/WebCore:
To support accelerated animations of individual transform properties, we introduced the notion of
non-interpolating animations to apply the underlying value for a given property before applying
the actual animations for this property with additivity set to true.
These non-interpolating animations were meant to last between the time at which animations were
committed and the effective start of the first animation for that property, accounting for any
delay.
However, we neglected to handle the case where that first animation had a fill mode that would
make it fill backwards, such as CSS Transitions. In that situation, the animation would have
its first keyframe applied on top of the underlying value, effectively applying the underlying
value twice with additivity.
We now only add these non-interpolating animations if the first animation has a delay and does
not fill backwards.
Test: webanimations/transform-transition-with-delay-on-forced-layer-with-transform.html
- platform/graphics/ca/GraphicsLayerCA.cpp: (WebCore::GraphicsLayerCA::updateAnimations):
LayoutTests:
Add a new test where an element with a non-identity transform starts a transform transition with a
long delay. Prior to this patch, this test failed because, while in the delay phase, the transition
would mean the underlying transform was applied twice: once by the non-interpolating animation
generated for the underlying "transform" value, and once by the first keyframe of the transition
since it fills backwards.
- webanimations/transform-transition-with-delay-on-forced-layer-with-transform-expected.html: Added.
- webanimations/transform-transition-with-delay-on-forced-layer-with-transform.html: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@273656 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 12:22 PM Changeset in webkit [273676] by
-
- 8 edits in branches/safari-611.1.21.3-branch/Source
Versioning.
WebKit-7611.1.21.3.1
- 12:19 PM Changeset in webkit [273675] by
-
- 2 edits in trunk/Source/WebKitLegacy/mac
Rename the delegate property of WebAVPlayerView to webDelegate to fix a build failure with new SDKs
https://bugs.webkit.org/show_bug.cgi?id=222560
Reviewed by Jer Noble.
We have to rename the
delegateproperty ofWebAVPlayerViewbecause AVKit adds
adelegateproperty toAVPlayerViewwhich will conflict with the one in WebKit.
- WebView/WebVideoFullscreenController.mm:
(WebAVPlayerView_webDelegate):
(WebAVPlayerView_setWebDelegate):
(WebAVPlayerView_isFullScreen):
(WebAVPlayerView_enterFullScreen):
(WebAVPlayerView_exitFullScreen):
(allocWebAVPlayerViewInstance):
(-[WebVideoFullscreenController dealloc]):
(-[WebVideoFullscreenController windowDidLoad]):
(WebAVPlayerView_delegate): Deleted.
(WebAVPlayerView_setDelegate): Deleted.
- 12:08 PM Changeset in webkit [273674] by
-
- 1 copy in branches/safari-611.1.21.3-branch
New branch.
- 12:02 PM Changeset in webkit [273673] by
-
- 27 edits2 copies2 moves in branches/safari-611.1.21.2-branch
Cherry-pick r273590. rdar://problem/74881403
Non-cookie website data not deleted after 7 days of browser use without user interaction
https://bugs.webkit.org/show_bug.cgi?id=222248
<rdar://problem/74612589>
Reviewed by Brent Fulgham and informally by Kate Cheney.
Source/WebKit:
Tests: 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
- NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp: (WebKit::ResourceLoadStatisticsDatabaseStore::updateOperatingDatesParameters):
Now sets two new member variables:
- Optional<OperatingDate> m_longWindowOperatingDate
- Optional<OperatingDate> m_shortWindowOperatingDate These are only set if the minimum number of operating days has passed. This function no longer sets m_leastRecentOperatingDate.
(WebKit::ResourceLoadStatisticsDatabaseStore::hasStatisticsExpired const):
Now checks against the two new member variables m_longWindowOperatingDate
and m_shortWindowOperatingDate. This fixes the bug.
(WebKit::ResourceLoadStatisticsDatabaseStore::insertExpiredStatisticForTesting):
Test infrastructure. Now takes the new parameter numberOfOperatingDaysPassed
with which layout tests can control the exact number of operating days
passed since user interaction.
- NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.h:
Added m_longWindowOperatingDate and m_shortWindowOperatingDate, and
removed m_leastRecentOperatingDate since it's no longer used.
- NetworkProcess/Classifier/ResourceLoadStatisticsMemoryStore.cpp: (WebKit::ResourceLoadStatisticsMemoryStore::insertExpiredStatisticForTesting):
Test infrastructure. The same changes as in the DB store.
- NetworkProcess/Classifier/ResourceLoadStatisticsMemoryStore.h:
- NetworkProcess/Classifier/ResourceLoadStatisticsStore.h:
- NetworkProcess/Classifier/WebResourceLoadStatisticsStore.cpp: (WebKit::WebResourceLoadStatisticsStore::insertExpiredStatisticForTesting):
Test infrastructure.
- NetworkProcess/Classifier/WebResourceLoadStatisticsStore.h:
- NetworkProcess/NetworkProcess.cpp: (WebKit::NetworkProcess::insertExpiredStatisticForTesting):
Test infrastructure.
- NetworkProcess/NetworkProcess.h:
- NetworkProcess/NetworkProcess.messages.in:
- UIProcess/API/C/WKWebsiteDataStoreRef.cpp: (WKWebsiteDataStoreSetStatisticsExpiredStatistic):
Test infrastructure.
- UIProcess/API/C/WKWebsiteDataStoreRef.h:
- UIProcess/Network/NetworkProcessProxy.cpp: (WebKit::NetworkProcessProxy::insertExpiredStatisticForTesting):
Test infrastructure.
- UIProcess/Network/NetworkProcessProxy.h:
- UIProcess/WebsiteData/WebsiteDataStore.cpp: (WebKit::WebsiteDataStore::insertExpiredStatisticForTesting):
Test infrastructure.
- UIProcess/WebsiteData/WebsiteDataStore.h:
Tools:
A new numberOfOperatingDaysPassed parameter was added to
testRunner.setStatisticsExpiredStatistic() to control the exact
number of operating days passed since user interaction.
- WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl:
- WebKitTestRunner/InjectedBundle/TestRunner.cpp: (WTR::TestRunner::setStatisticsExpiredStatistic):
- WebKitTestRunner/InjectedBundle/TestRunner.h:
- WebKitTestRunner/TestController.cpp: (WTR::TestController::setStatisticsExpiredStatistic):
- WebKitTestRunner/TestController.h:
- WebKitTestRunner/TestInvocation.cpp: (WTR::TestInvocation::didReceiveMessageFromInjectedBundle):
LayoutTests:
Existing test cases now make use of the new numberOfOperatingDaysPassed
parameter to testRunner.setStatisticsExpiredStatistic() to control the exact
number of operating days passed since user interaction.
A new test case makes sure website data is not deleted below the threshold.
- http/tests/resourceLoadStatistics/operating-dates-all-but-cookies-not-removed-with-user-interaction-6-days-ago-expected.txt: Added.
- http/tests/resourceLoadStatistics/operating-dates-all-but-cookies-not-removed-with-user-interaction-6-days-ago.html: Added.
Sets numberOfOperatingDaysPassed to 6.
- http/tests/resourceLoadStatistics/operating-dates-all-but-cookies-removed-with-user-interaction-7-days-ago-expected.txt: Renamed from LayoutTests/http/tests/resourceLoadStatistics/operating-dates-all-but-cookies-removed-statistics-with-no-user-interaction-expected.txt.
- http/tests/resourceLoadStatistics/operating-dates-all-but-cookies-removed-with-user-interaction-7-days-ago.html: Renamed from LayoutTests/http/tests/resourceLoadStatistics/operating-dates-all-but-cookies-removed-statistics-with-no-user-interaction.html.
Sets numberOfOperatingDaysPassed to 7.
- http/tests/resourceLoadStatistics/operating-dates-all-website-data-removed.html:
Sets numberOfOperatingDaysPassed to 30.
- platform/wk2/TestExpectations:
Updated existing expectation with new file name.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@273590 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 11:57 AM Changeset in webkit [273672] by
-
- 4 edits in trunk
[GPU Process] Some DisplayList items may not be replayed back before calling getImageData()
https://bugs.webkit.org/show_bug.cgi?id=222343
Reviewed by Tim Horton.
Source/WebKit:
Make sure all the pending DisplayList items are pushed to the GPUP and
submitted to RemoteImageBuffer before calling the asynchronous method
getImageData().
- WebProcess/GPU/graphics/RemoteImageBufferProxy.h:
LayoutTests:
- gpu-process/TestExpectations:
- 11:55 AM Changeset in webkit [273671] by
-
- 27 edits2 copies2 moves in branches/safari-611.1.21.0-branch
Cherry-pick r273590. rdar://problem/74881366
Non-cookie website data not deleted after 7 days of browser use without user interaction
https://bugs.webkit.org/show_bug.cgi?id=222248
<rdar://problem/74612589>
Reviewed by Brent Fulgham and informally by Kate Cheney.
Source/WebKit:
Tests: 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
- NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp: (WebKit::ResourceLoadStatisticsDatabaseStore::updateOperatingDatesParameters):
Now sets two new member variables:
- Optional<OperatingDate> m_longWindowOperatingDate
- Optional<OperatingDate> m_shortWindowOperatingDate These are only set if the minimum number of operating days has passed. This function no longer sets m_leastRecentOperatingDate.
(WebKit::ResourceLoadStatisticsDatabaseStore::hasStatisticsExpired const):
Now checks against the two new member variables m_longWindowOperatingDate
and m_shortWindowOperatingDate. This fixes the bug.
(WebKit::ResourceLoadStatisticsDatabaseStore::insertExpiredStatisticForTesting):
Test infrastructure. Now takes the new parameter numberOfOperatingDaysPassed
with which layout tests can control the exact number of operating days
passed since user interaction.
- NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.h:
Added m_longWindowOperatingDate and m_shortWindowOperatingDate, and
removed m_leastRecentOperatingDate since it's no longer used.
- NetworkProcess/Classifier/ResourceLoadStatisticsMemoryStore.cpp: (WebKit::ResourceLoadStatisticsMemoryStore::insertExpiredStatisticForTesting):
Test infrastructure. The same changes as in the DB store.
- NetworkProcess/Classifier/ResourceLoadStatisticsMemoryStore.h:
- NetworkProcess/Classifier/ResourceLoadStatisticsStore.h:
- NetworkProcess/Classifier/WebResourceLoadStatisticsStore.cpp: (WebKit::WebResourceLoadStatisticsStore::insertExpiredStatisticForTesting):
Test infrastructure.
- NetworkProcess/Classifier/WebResourceLoadStatisticsStore.h:
- NetworkProcess/NetworkProcess.cpp: (WebKit::NetworkProcess::insertExpiredStatisticForTesting):
Test infrastructure.
- NetworkProcess/NetworkProcess.h:
- NetworkProcess/NetworkProcess.messages.in:
- UIProcess/API/C/WKWebsiteDataStoreRef.cpp: (WKWebsiteDataStoreSetStatisticsExpiredStatistic):
Test infrastructure.
- UIProcess/API/C/WKWebsiteDataStoreRef.h:
- UIProcess/Network/NetworkProcessProxy.cpp: (WebKit::NetworkProcessProxy::insertExpiredStatisticForTesting):
Test infrastructure.
- UIProcess/Network/NetworkProcessProxy.h:
- UIProcess/WebsiteData/WebsiteDataStore.cpp: (WebKit::WebsiteDataStore::insertExpiredStatisticForTesting):
Test infrastructure.
- UIProcess/WebsiteData/WebsiteDataStore.h:
Tools:
A new numberOfOperatingDaysPassed parameter was added to
testRunner.setStatisticsExpiredStatistic() to control the exact
number of operating days passed since user interaction.
- WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl:
- WebKitTestRunner/InjectedBundle/TestRunner.cpp: (WTR::TestRunner::setStatisticsExpiredStatistic):
- WebKitTestRunner/InjectedBundle/TestRunner.h:
- WebKitTestRunner/TestController.cpp: (WTR::TestController::setStatisticsExpiredStatistic):
- WebKitTestRunner/TestController.h:
- WebKitTestRunner/TestInvocation.cpp: (WTR::TestInvocation::didReceiveMessageFromInjectedBundle):
LayoutTests:
Existing test cases now make use of the new numberOfOperatingDaysPassed
parameter to testRunner.setStatisticsExpiredStatistic() to control the exact
number of operating days passed since user interaction.
A new test case makes sure website data is not deleted below the threshold.
- http/tests/resourceLoadStatistics/operating-dates-all-but-cookies-not-removed-with-user-interaction-6-days-ago-expected.txt: Added.
- http/tests/resourceLoadStatistics/operating-dates-all-but-cookies-not-removed-with-user-interaction-6-days-ago.html: Added.
Sets numberOfOperatingDaysPassed to 6.
- http/tests/resourceLoadStatistics/operating-dates-all-but-cookies-removed-with-user-interaction-7-days-ago-expected.txt: Renamed from LayoutTests/http/tests/resourceLoadStatistics/operating-dates-all-but-cookies-removed-statistics-with-no-user-interaction-expected.txt.
- http/tests/resourceLoadStatistics/operating-dates-all-but-cookies-removed-with-user-interaction-7-days-ago.html: Renamed from LayoutTests/http/tests/resourceLoadStatistics/operating-dates-all-but-cookies-removed-statistics-with-no-user-interaction.html.
Sets numberOfOperatingDaysPassed to 7.
- http/tests/resourceLoadStatistics/operating-dates-all-website-data-removed.html:
Sets numberOfOperatingDaysPassed to 30.
- platform/wk2/TestExpectations:
Updated existing expectation with new file name.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@273590 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 11:50 AM Changeset in webkit [273670] by
-
- 3 edits in trunk/Source/WebKit
Use PriorityQueue in NetworkCache::Storage
https://bugs.webkit.org/show_bug.cgi?id=222555
Reviewed by Chris Dumez.
Replace Vector<Deque<>> with a more flexible, simpler to use data structure.
- NetworkProcess/cache/NetworkCacheStorage.cpp:
(WebKit::NetworkCache::Storage::ReadOperation::ReadOperation):
(WebKit::NetworkCache::Storage::isHigherPriority):
(WebKit::NetworkCache::Storage::cancelAllReadOperations):
(WebKit::NetworkCache::Storage::dispatchPendingReadOperations):
(WebKit::NetworkCache::Storage::retrieve):
- NetworkProcess/cache/NetworkCacheStorage.h:
- 11:49 AM Changeset in webkit [273669] by
-
- 2 edits in trunk/Source/WebKit
EventDispatcher::wheelEvent is accessing m_scrollingTrees without locking m_scrollingTreesMutex since r271235
https://bugs.webkit.org/show_bug.cgi?id=222529
Reviewed by Carlos Garcia Campos.
r271235 added a code to access m_scrollingTrees, but it didn't
lock m_scrollingTreesMutex. The code can be removed by moving it
into the above lambda expression.
EventDispatcher::wheelEvent was using a local lambda expression.
However the return value wasn't used. And, MSVC can't compile the
lambda expression because it has a bug that 'this' can't be used
in lambda expressions. Converted the lambda expression to a
do-while statement.
- WebProcess/WebPage/EventDispatcher.cpp:
(WebKit::EventDispatcher::wheelEvent):
- 11:47 AM Changeset in webkit [273668] by
-
- 27 edits2 copies2 moves in branches/safari-611.1.21.1-branch
Cherry-pick r273590. rdar://problem/74881385
Non-cookie website data not deleted after 7 days of browser use without user interaction
https://bugs.webkit.org/show_bug.cgi?id=222248
<rdar://problem/74612589>
Reviewed by Brent Fulgham and informally by Kate Cheney.
Source/WebKit:
Tests: 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
- NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp: (WebKit::ResourceLoadStatisticsDatabaseStore::updateOperatingDatesParameters):
Now sets two new member variables:
- Optional<OperatingDate> m_longWindowOperatingDate
- Optional<OperatingDate> m_shortWindowOperatingDate These are only set if the minimum number of operating days has passed. This function no longer sets m_leastRecentOperatingDate.
(WebKit::ResourceLoadStatisticsDatabaseStore::hasStatisticsExpired const):
Now checks against the two new member variables m_longWindowOperatingDate
and m_shortWindowOperatingDate. This fixes the bug.
(WebKit::ResourceLoadStatisticsDatabaseStore::insertExpiredStatisticForTesting):
Test infrastructure. Now takes the new parameter numberOfOperatingDaysPassed
with which layout tests can control the exact number of operating days
passed since user interaction.
- NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.h:
Added m_longWindowOperatingDate and m_shortWindowOperatingDate, and
removed m_leastRecentOperatingDate since it's no longer used.
- NetworkProcess/Classifier/ResourceLoadStatisticsMemoryStore.cpp: (WebKit::ResourceLoadStatisticsMemoryStore::insertExpiredStatisticForTesting):
Test infrastructure. The same changes as in the DB store.
- NetworkProcess/Classifier/ResourceLoadStatisticsMemoryStore.h:
- NetworkProcess/Classifier/ResourceLoadStatisticsStore.h:
- NetworkProcess/Classifier/WebResourceLoadStatisticsStore.cpp: (WebKit::WebResourceLoadStatisticsStore::insertExpiredStatisticForTesting):
Test infrastructure.
- NetworkProcess/Classifier/WebResourceLoadStatisticsStore.h:
- NetworkProcess/NetworkProcess.cpp: (WebKit::NetworkProcess::insertExpiredStatisticForTesting):
Test infrastructure.
- NetworkProcess/NetworkProcess.h:
- NetworkProcess/NetworkProcess.messages.in:
- UIProcess/API/C/WKWebsiteDataStoreRef.cpp: (WKWebsiteDataStoreSetStatisticsExpiredStatistic):
Test infrastructure.
- UIProcess/API/C/WKWebsiteDataStoreRef.h:
- UIProcess/Network/NetworkProcessProxy.cpp: (WebKit::NetworkProcessProxy::insertExpiredStatisticForTesting):
Test infrastructure.
- UIProcess/Network/NetworkProcessProxy.h:
- UIProcess/WebsiteData/WebsiteDataStore.cpp: (WebKit::WebsiteDataStore::insertExpiredStatisticForTesting):
Test infrastructure.
- UIProcess/WebsiteData/WebsiteDataStore.h:
Tools:
A new numberOfOperatingDaysPassed parameter was added to
testRunner.setStatisticsExpiredStatistic() to control the exact
number of operating days passed since user interaction.
- WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl:
- WebKitTestRunner/InjectedBundle/TestRunner.cpp: (WTR::TestRunner::setStatisticsExpiredStatistic):
- WebKitTestRunner/InjectedBundle/TestRunner.h:
- WebKitTestRunner/TestController.cpp: (WTR::TestController::setStatisticsExpiredStatistic):
- WebKitTestRunner/TestController.h:
- WebKitTestRunner/TestInvocation.cpp: (WTR::TestInvocation::didReceiveMessageFromInjectedBundle):
LayoutTests:
Existing test cases now make use of the new numberOfOperatingDaysPassed
parameter to testRunner.setStatisticsExpiredStatistic() to control the exact
number of operating days passed since user interaction.
A new test case makes sure website data is not deleted below the threshold.
- http/tests/resourceLoadStatistics/operating-dates-all-but-cookies-not-removed-with-user-interaction-6-days-ago-expected.txt: Added.
- http/tests/resourceLoadStatistics/operating-dates-all-but-cookies-not-removed-with-user-interaction-6-days-ago.html: Added.
Sets numberOfOperatingDaysPassed to 6.
- http/tests/resourceLoadStatistics/operating-dates-all-but-cookies-removed-with-user-interaction-7-days-ago-expected.txt: Renamed from LayoutTests/http/tests/resourceLoadStatistics/operating-dates-all-but-cookies-removed-statistics-with-no-user-interaction-expected.txt.
- http/tests/resourceLoadStatistics/operating-dates-all-but-cookies-removed-with-user-interaction-7-days-ago.html: Renamed from LayoutTests/http/tests/resourceLoadStatistics/operating-dates-all-but-cookies-removed-statistics-with-no-user-interaction.html.
Sets numberOfOperatingDaysPassed to 7.
- http/tests/resourceLoadStatistics/operating-dates-all-website-data-removed.html:
Sets numberOfOperatingDaysPassed to 30.
- platform/wk2/TestExpectations:
Updated existing expectation with new file name.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@273590 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 11:47 AM Changeset in webkit [273667] by
-
- 4 edits in branches/safari-611.1.21.1-branch
Cherry-pick r273583. rdar://problem/74881429
Add AXTextMarkerRangeForNSRange attribute so that Mac clients can access this functionality.
https://bugs.webkit.org/show_bug.cgi?id=222477
Source/WebCore:
<rdar://problem/74793445>
Reviewed by Chris Fleizach.
This is a follow up to: https://bugs.webkit.org/show_bug.cgi?id=222154.
As Chris Fleizach pointed out in the above review, it is necessary to
add a handler in accessibilityAttributeValue:forParameter: for a new AX
attribute in order for clients to access this functionality.
- accessibility/mac/WebAccessibilityObjectWrapperMac.mm: (-[WebAccessibilityObjectWrapper accessibilityAttributeValue:forParameter:]): (-[WebAccessibilityObjectWrapper textMarkerRangeForNSRange:]): Deleted.
Tools:
Reviewed by Chris Fleizach.
- WebKitTestRunner/InjectedBundle/mac/AccessibilityUIElementMac.mm: (WTR::AccessibilityUIElement::textMarkerRangeForRange):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@273583 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 11:47 AM Changeset in webkit [273666] by
-
- 15 edits2 adds in branches/safari-611.1.21.1-branch
Cherry-pick r273227. rdar://problem/74880937
Add [WebAccessibilityObjectWrapper textMarkerRangeForNSRange] to allow clients to efficiently get a TextMarkerRange from an NSRange.
https://bugs.webkit.org/show_bug.cgi?id=222154
Reviewed by Chris Fleizach and Darin Adler.
Source/WebCore:
Test: accessibility/mac/textmarker-range-for-range.html
Clients like VoiceOver often need the ability to convert a text range
into an accessibility TextMarkerRange.
This patch adds [WebAccessibilityObjectWrapper textMarkerRangeForNSRange]
to allow clients to efficiently perform this conversion.
This is the Mac implementation, iOS implementation is pending.
- accessibility/AccessibilityObject.h: (WebCore::AccessibilityObject::allowsTextRanges const):
- accessibility/AccessibilityObjectInterface.h:
- accessibility/isolatedtree/AXIsolatedObject.h:
- accessibility/isolatedtree/mac/AXIsolatedObjectMac.mm: (WebCore::AXIsolatedObject::textMarkerRangeForNSRange const):
- accessibility/mac/AccessibilityObjectMac.mm: (WebCore::AccessibilityObject::textMarkerRangeForNSRange const):
- accessibility/mac/WebAccessibilityObjectWrapperMac.mm: (-[WebAccessibilityObjectWrapper textMarkerRangeForNSRange:]): (-[WebAccessibilityObjectWrapper accessibilityAttributeValue:forParameter:]):
- editing/Editing.cpp: (WebCore::visiblePositionForIndexUsingCharacterIterator): Only advance the CharacterIterator if not atEnd yet.
Tools:
- WebKitTestRunner/InjectedBundle/AccessibilityUIElement.cpp: (WTR::AccessibilityUIElement::textMarkerRangeForRange):
- WebKitTestRunner/InjectedBundle/AccessibilityUIElement.h:
- WebKitTestRunner/InjectedBundle/Bindings/AccessibilityUIElement.idl:
- WebKitTestRunner/InjectedBundle/mac/AccessibilityUIElementMac.mm: (WTR::AccessibilityUIElement::textMarkerRangeForRange):
LayoutTests:
- accessibility/mac/textmarker-range-for-range-expected.txt: Added.
- accessibility/mac/textmarker-range-for-range.html: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@273227 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 11:40 AM Changeset in webkit [273665] by
-
- 8 edits in branches/safari-611.1.21.0-branch/Source
Versioning.
WebKit-7611.1.21.0.1
- 11:40 AM Changeset in webkit [273664] by
-
- 8 edits in branches/safari-611.1.21.2-branch/Source
Versioning.
WebKit-7611.1.21.2.1
- 11:40 AM Changeset in webkit [273663] by
-
- 8 edits in branches/safari-611.1.21.1-branch/Source
Versioning.
WebKit-7611.1.21.1.1
- 11:29 AM Changeset in webkit [273662] by
-
- 4 edits in trunk/Source/JavaScriptCore
[JSC] WebAssembly: make Wasm::Signature 32bit friendly
https://bugs.webkit.org/show_bug.cgi?id=222543
Patch by Xan Lopez <Xan Lopez> on 2021-03-01
Reviewed by Yusuke Suzuki.
The Wasm code uses the address of a Signature object as its
index. To make this work in 32bit just change Wasm::SignatureIndex
to be a uintptr_t instead of uint64_t. Also, remove some
unnecessary includes while we are at it.
- wasm/WasmModule.h:
- wasm/WasmSignature.h:
- wasm/js/JSWebAssemblyModule.h:
- 11:21 AM Changeset in webkit [273661] by
-
- 49 edits in trunk
[JSC] Throw TypeError when getFunctionRealm hits revoked Proxy
https://bugs.webkit.org/show_bug.cgi?id=222523
Reviewed by Alexey Shvayka.
JSTests:
- test262/expectations.yaml:
Source/JavaScriptCore:
This patch throws TypeError when getFunctionRealm encounters revoked Proxy. However,
this makes derived structure creation code difficult to be written inlinely.
The fast path of derived structure creation must be inlined since this is critical
path of every builtin constructors.
So, this patch introduces JSC_GET_DERIVED_STRUCTURE macro which streamlines the derived
structure creation code while keeping the fast path inlined. And it inserts appropriate
error checks after this new getFunctionRealm call.
Then, we appropriately use getFunctionRealm in op_create_this implementation.
- dfg/DFGOperations.cpp:
(JSC::DFG::JSC_DEFINE_JIT_OPERATION):
- runtime/AggregateErrorConstructor.cpp:
(JSC::JSC_DEFINE_HOST_FUNCTION):
- runtime/BooleanConstructor.cpp:
(JSC::JSC_DEFINE_HOST_FUNCTION):
- runtime/CommonSlowPaths.cpp:
(JSC::JSC_DEFINE_COMMON_SLOW_PATH):
- runtime/DateConstructor.cpp:
(JSC::constructDate):
- runtime/ErrorConstructor.cpp:
(JSC::JSC_DEFINE_HOST_FUNCTION):
- runtime/FinalizationRegistryConstructor.cpp:
(JSC::JSC_DEFINE_HOST_FUNCTION):
- runtime/FunctionConstructor.cpp:
(JSC::constructFunctionSkippingEvalEnabledCheck):
- runtime/InternalFunction.cpp:
(JSC::getFunctionRealm):
- runtime/InternalFunction.h:
- runtime/IntlCollatorConstructor.cpp:
(JSC::JSC_DEFINE_HOST_FUNCTION):
- runtime/IntlDateTimeFormatConstructor.cpp:
(JSC::JSC_DEFINE_HOST_FUNCTION):
- runtime/IntlDisplayNamesConstructor.cpp:
(JSC::JSC_DEFINE_HOST_FUNCTION):
- runtime/IntlListFormatConstructor.cpp:
(JSC::JSC_DEFINE_HOST_FUNCTION):
- runtime/IntlLocaleConstructor.cpp:
(JSC::JSC_DEFINE_HOST_FUNCTION):
- runtime/IntlNumberFormatConstructor.cpp:
(JSC::JSC_DEFINE_HOST_FUNCTION):
- runtime/IntlPluralRulesConstructor.cpp:
(JSC::JSC_DEFINE_HOST_FUNCTION):
- runtime/IntlRelativeTimeFormatConstructor.cpp:
(JSC::JSC_DEFINE_HOST_FUNCTION):
- runtime/IntlSegmenterConstructor.cpp:
(JSC::JSC_DEFINE_HOST_FUNCTION):
- runtime/JSArrayBufferConstructor.cpp:
(JSC::JSGenericArrayBufferConstructor<sharingMode>::constructImpl):
- runtime/JSGenericTypedArrayViewConstructorInlines.h:
(JSC::constructCustomArrayBufferIfNeeded):
(JSC::constructGenericTypedArrayViewImpl):
- runtime/JSGlobalObject.h:
(JSC::JSGlobalObject::errorStructureWithErrorType const):
(JSC::JSGlobalObject::arrayBufferStructureWithSharingMode const):
(JSC::JSGlobalObject::typedArrayStructureWithTypedArrayType const):
- runtime/JSGlobalObjectInlines.h:
(JSC::JSGlobalObject::arrayStructureForIndexingTypeDuringAllocation const):
- runtime/MapConstructor.cpp:
(JSC::JSC_DEFINE_HOST_FUNCTION):
- runtime/NativeErrorConstructor.cpp:
(JSC::NativeErrorConstructor<errorType>::constructImpl):
- runtime/NumberConstructor.cpp:
(JSC::JSC_DEFINE_HOST_FUNCTION):
- runtime/ObjectConstructor.cpp:
(JSC::constructObjectWithNewTarget):
- runtime/ProxyConstructor.cpp:
(JSC::ProxyConstructor::create):
(JSC::ProxyConstructor::finishCreation):
- runtime/ProxyConstructor.h:
- runtime/RegExpConstructor.cpp:
(JSC::getRegExpStructure):
- runtime/SetConstructor.cpp:
(JSC::JSC_DEFINE_HOST_FUNCTION):
- runtime/StringConstructor.cpp:
(JSC::JSC_DEFINE_HOST_FUNCTION):
- runtime/WeakMapConstructor.cpp:
(JSC::JSC_DEFINE_HOST_FUNCTION):
- runtime/WeakObjectRefConstructor.cpp:
(JSC::JSC_DEFINE_HOST_FUNCTION):
- runtime/WeakSetConstructor.cpp:
(JSC::JSC_DEFINE_HOST_FUNCTION):
- wasm/js/WebAssemblyCompileErrorConstructor.cpp:
(JSC::JSC_DEFINE_HOST_FUNCTION):
- wasm/js/WebAssemblyGlobalConstructor.cpp:
(JSC::JSC_DEFINE_HOST_FUNCTION):
- wasm/js/WebAssemblyInstanceConstructor.cpp:
(JSC::JSC_DEFINE_HOST_FUNCTION):
- wasm/js/WebAssemblyLinkErrorConstructor.cpp:
(JSC::JSC_DEFINE_HOST_FUNCTION):
- wasm/js/WebAssemblyMemoryConstructor.cpp:
(JSC::JSC_DEFINE_HOST_FUNCTION):
- wasm/js/WebAssemblyModuleConstructor.cpp:
(JSC::WebAssemblyModuleConstructor::createModule):
- wasm/js/WebAssemblyRuntimeErrorConstructor.cpp:
(JSC::JSC_DEFINE_HOST_FUNCTION):
- wasm/js/WebAssemblyTableConstructor.cpp:
(JSC::JSC_DEFINE_HOST_FUNCTION):
Source/WebCore:
- bindings/js/JSDOMWrapperCache.h:
(WebCore::setSubclassStructureIfNeeded):
- bindings/js/JSHTMLElementCustom.cpp:
(WebCore::constructJSHTMLElement):
- 11:18 AM Changeset in webkit [273660] by
-
- 1 copy in branches/safari-611.1.21.2-branch
New branch.
- 11:18 AM Changeset in webkit [273659] by
-
- 1 copy in branches/safari-611.1.21.1-branch
New branch.
- 11:17 AM Changeset in webkit [273658] by
-
- 1 copy in branches/safari-611.1.21.0-branch
New branch.
- 11:15 AM Changeset in webkit [273657] by
-
- 35 edits in trunk/Source
Remove ENABLE_WEBPROCESS_WINDOWSERVER_BLOCKING which is always true for macOS
https://bugs.webkit.org/show_bug.cgi?id=222459
Reviewed by Sam Weinig.
ENABLE_WEBPROCESS_WINDOWSERVER_BLOCKING is always defined for PLATFORM(MAC), so remove it,
replacing with PLATFORM(MAC) in a few places. In order to reduce the number PLATFORM(MAC), define
HAVE(CVDISPLAYLINK) and use it in WK2 code that relates to DisplayLinks.
Source/WebCore:
- platform/graphics/cocoa/IOSurface.mm:
(WebCore::IOSurface::ensurePlatformContext):
- platform/graphics/opengl/GraphicsContextGLOpenGLManager.cpp:
(WebCore::GraphicsContextGLOpenGLManager::addContext):
(WebCore::GraphicsContextGLOpenGLManager::removeContext):
- platform/mac/KeyEventMac.mm:
(WebCore::PlatformKeyboardEvent::currentStateOfModifierKeys):
- platform/mac/PlatformScreenMac.mm:
(WebCore::gpuIDForDisplay):
- platform/mac/ScrollAnimatorMac.mm:
(-[WebScrollbarPartAnimation initWithScrollbar:featureToAnimate:animateFrom:animateTo:duration:]):
(-[WebScrollbarPartAnimation startAnimation]):
(-[WebScrollbarPartAnimation setCurrentProgress:]):
(-[WebScrollbarPartAnimation stopAnimation]):
(-[WebScrollbarPartAnimation setCurrentProgress:setCurrentProgress:]): Deleted.
Source/WebKit:
- Platform/cocoa/LayerHostingContext.mm:
(WebKit::LayerHostingContext::createForExternalHostingProcess):
- Shared/mac/HangDetectionDisablerMac.mm:
(WebKit::setClientsMayIgnoreEvents):
- UIProcess/Cocoa/WebProcessPoolCocoa.mm:
(WebKit::WebProcessPool::registerNotificationObservers):
(WebKit::WebProcessPool::unregisterNotificationObservers):
- UIProcess/WebPageProxy.cpp:
(WebKit::ScrollingObserver::singleton):
(WebKit::WebPageProxy::sendWheelEvent):
(WebKit::WebPageProxy::updateCurrentModifierState):
- UIProcess/WebProcessPool.cpp:
(WebKit::displayReconfigurationCallBack):
(WebKit::WebProcessPool::sendDisplayConfigurationChangedMessageForTesting):
- UIProcess/WebProcessPool.h:
- UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::~WebProcessProxy):
(WebKit::WebProcessProxy::processWillShutDown):
- UIProcess/WebProcessProxy.h:
- UIProcess/WebProcessProxy.messages.in:
- UIProcess/mac/DisplayLink.cpp:
- UIProcess/mac/DisplayLink.h:
- UIProcess/mac/WebProcessProxyMac.mm:
(WebKit::WebProcessProxy::stopDisplayLink):
- WebProcess/InjectedBundle/mac/InjectedBundleMac.mm:
(WebKit::InjectedBundle::initialize):
- WebProcess/Plugins/PDF/PDFLayerControllerSPI.h:
- WebProcess/Plugins/PDF/PDFPlugin.mm:
(WebKit::PDFPlugin::PDFPlugin):
- WebProcess/WebPage/DrawingArea.cpp:
- WebProcess/WebPage/EventDispatcher.cpp:
- WebProcess/WebPage/EventDispatcher.h:
- WebProcess/WebPage/EventDispatcher.messages.in:
- WebProcess/WebPage/mac/DrawingAreaMac.cpp:
(WebKit::DrawingArea::createDisplayRefreshMonitor):
- WebProcess/WebProcess.cpp:
- WebProcess/WebProcess.h:
- WebProcess/WebProcess.messages.in:
- WebProcess/cocoa/WebProcessCocoa.mm:
(WebKit::WebProcess::platformInitializeWebProcess):
(WebKit::WebProcess::platformInitializeProcess):
Source/WTF:
- wtf/PlatformEnable.h:
- wtf/PlatformEnableCocoa.h:
- wtf/PlatformHave.h:
- 10:47 AM Changeset in webkit [273656] by
-
- 3 edits2 adds in trunk
REGRESSION(r272004): transform transition with delay doesn't behave correctly
https://bugs.webkit.org/show_bug.cgi?id=222545
<rdar://problem/74865413>
Reviewed by Dean Jackson.
Source/WebCore:
To support accelerated animations of individual transform properties, we introduced the notion of
non-interpolating animations to apply the underlying value for a given property before applying
the actual animations for this property with additivity set to true.
These non-interpolating animations were meant to last between the time at which animations were
committed and the effective start of the first animation for that property, accounting for any
delay.
However, we neglected to handle the case where that first animation had a fill mode that would
make it fill backwards, such as CSS Transitions. In that situation, the animation would have
its first keyframe applied on top of the underlying value, effectively applying the underlying
value twice with additivity.
We now only add these non-interpolating animations if the first animation has a delay and does
not fill backwards.
Test: webanimations/transform-transition-with-delay-on-forced-layer-with-transform.html
- platform/graphics/ca/GraphicsLayerCA.cpp:
(WebCore::GraphicsLayerCA::updateAnimations):
LayoutTests:
Add a new test where an element with a non-identity transform starts a transform transition with a
long delay. Prior to this patch, this test failed because, while in the delay phase, the transition
would mean the underlying transform was applied twice: once by the non-interpolating animation
generated for the underlying "transform" value, and once by the first keyframe of the transition
since it fills backwards.
- webanimations/transform-transition-with-delay-on-forced-layer-with-transform-expected.html: Added.
- webanimations/transform-transition-with-delay-on-forced-layer-with-transform.html: Added.
- 10:21 AM Changeset in webkit [273655] by
-
- 14 edits in trunk/Source
Set ownership of IOSurfaces from the GPUProcess instead of the WebProcess
https://bugs.webkit.org/show_bug.cgi?id=222391
Source/WebCore:
<rdar://problem/74748353>
Reviewed by Simon Fraser.
Replace use of IOSurfaceSetOwnership() SPI with IOSurfaceSetOwnershipIdentity().
Both do the same thing but IOSurfaceSetOwnershipIdentity() only requires an identity token
for the new owner (instead of a control port). As a result, IOSurfaceSetOwnershipIdentity()
requires a lot less priviledges and can now be used directly in the GPUProcess instead of
the WebProcess.
- platform/graphics/cocoa/IOSurface.h:
- platform/graphics/cocoa/IOSurface.mm:
(WebCore::IOSurface::setOwnershipIdentity):
Source/WebCore/PAL:
<rdar://74748353>
Reviewed by Simon Fraser.
Add declaration for new IOSurfaceSetOwnershipIdentity() SPI, for the open source
SDK.
- pal/spi/cocoa/IOSurfaceSPI.h:
Source/WebKit:
<rdar://problem/74748353>
Reviewed by Simon Fraser.
Replace use of IOSurfaceSetOwnership() SPI with IOSurfaceSetOwnershipIdentity().
Both do the same thing but IOSurfaceSetOwnershipIdentity() only requires an identity token
for the new owner (instead of a control port). As a result, IOSurfaceSetOwnershipIdentity()
requires a lot less priviledges and can now be used directly in the GPUProcess instead of
the WebProcess.
- GPUProcess/graphics/RemoteGraphicsContextGLCocoa.cpp:
(WebKit::RemoteGraphicsContextGLCocoa::prepareForDisplay):
- GPUProcess/graphics/RemoteImageBuffer.h:
(WebKit::RemoteImageBuffer::setProcessOwnership):
- GPUProcess/graphics/RemoteRenderingBackend.cpp:
(WebKit::RemoteRenderingBackend::createImageBuffer):
- WebProcess/GPU/graphics/RemoteGraphicsContextGLProxy.cpp:
(WebKit::RemoteGraphicsContextGLProxy::prepareForDisplay):
- WebProcess/GPU/graphics/cocoa/ImageBufferShareableMappedIOSurfaceBackend.cpp:
(WebKit::ImageBufferShareableMappedIOSurfaceBackend::create):
(WebKit::ImageBufferShareableMappedIOSurfaceBackend::setProcessOwnership):
- WebProcess/GPU/graphics/cocoa/ImageBufferShareableMappedIOSurfaceBackend.h:
Source/WTF:
<rdar://74748353>
Reviewed by Simon Fraser.
Add HAVE_IOSURFACE_SET_OWNERSHIP_IDENTITY feature flag to protect uses of the
new IOSurfaceSetOwnershipIdentity() SPI.
- wtf/PlatformHave.h:
- 9:36 AM Changeset in webkit [273654] by
-
- 4 edits in trunk
Restoring App Highlight crashes if no range is found.
https://bugs.webkit.org/show_bug.cgi?id=222524
Reviewed by Tim Horton.
Source/WebCore:
Test: TestWebKitAPI.AppHighlights.AppHighlightRestoreFailure
- Modules/highlight/AppHighlightStorage.cpp:
(WebCore::AppHighlightStorage::restoreAppHighlight):
Tools:
- TestWebKitAPI/Tests/WebKitCocoa/WKAppHighlights.mm:
(TestWebKitAPI::TEST):
- 9:29 AM Changeset in webkit [273653] by
-
- 2 edits in trunk/Tools
[Python-3] Change shebang in runUnittests.py
https://bugs.webkit.org/show_bug.cgi?id=222554
Reviewed by Jonathan Bedard.
- CISupport/runUnittests.py:
- 8:41 AM Changeset in webkit [273652] by
-
- 2 edits in trunk/Tools
[ews] Use logname instead of deprecated logfile in PrintConfiguration
https://bugs.webkit.org/show_bug.cgi?id=222378
Reviewed by Jonathan Bedard.
- CISupport/ews-build/steps.py:
(PrintConfiguration.run):
- 8:38 AM Changeset in webkit [273651] by
-
- 4 edits in trunk/Tools
Teach prepare-ChangeLog to recognize Swift structs/enums/protocols/extensions
https://bugs.webkit.org/show_bug.cgi?id=222551
It formerly only knew how to recognize classes.
Patch by Adam Roben <Adam Roben> on 2021-03-01
Reviewed by Jonathan Bedard.
- Scripts/prepare-ChangeLog:
(get_function_line_ranges_for_swift): Replaced "class" with "type" in
variable names to make them more general. Generalized the pattern used
to find class declarations to find struct/enum/protocol/extension
declarations as well.
- Scripts/webkitperl/prepare-ChangeLog_unittest/resources/swift_unittests-expected.txt:
Added new ranges to the results.
- Scripts/webkitperl/prepare-ChangeLog_unittest/resources/swift_unittests.swift:
(MyStruct.structFunction(argument:)):
(MyEnum.enumFunction(argument:)):
(MyProtocol.protocolFunction(argument:)):
(ExtendedType.extensionFunction(argument:)):
Added these new types/functions (and look, they got parsed!).
- 7:34 AM Changeset in webkit [273650] by
-
- 7 edits in trunk/Source/WebCore
CSSFontFace should not need its m_fontSelector data member
https://bugs.webkit.org/show_bug.cgi?id=208351
<rdar://problem/74346302>
Reviewed by Darin Adler.
Move the m_fontSelector member of CSSFontFace onto CSSFontFaceSource,
the only place where it's actually required.
No new tests because there is no behavior change.
- css/CSSFontFace.cpp:
(WebCore::CSSFontFace::appendSources):
(WebCore::CSSFontFace::create):
(WebCore::CSSFontFace::document):
(WebCore::CSSFontFace::opportunisticallyStartFontDataURLLoading):
(WebCore::CSSFontFace::pump):
(WebCore::CSSFontFace::font):
- css/CSSFontFace.h:
- css/CSSFontFaceSource.cpp:
(WebCore::CSSFontFaceSource::CSSFontFaceSource):
(WebCore::CSSFontFaceSource::opportunisticallyStartFontDataURLLoading):
(WebCore::CSSFontFaceSource::load):
- css/CSSFontFaceSource.h:
- css/CSSFontSelector.cpp:
(WebCore::CSSFontSelector::opportunisticallyStartFontDataURLLoading):
- css/FontFace.cpp:
(WebCore::populateFontFaceWithArrayBuffer):
- 7:00 AM Changeset in webkit [273649] by
-
- 4 edits in trunk/Source/JavaScriptCore
BytecodeGenerator::fuseCompareAndJump() fails for some language constructs
https://bugs.webkit.org/show_bug.cgi?id=221927
Reviewed by Yusuke Suzuki.
For BytecodeGenerator::fuseCompareAndJump() to merge two ops into one, condition's
dst
register should not be referenced from elsewhere. This change tracks down and eliminates
all such cases, which reduces bytecode size for a few language constructs:
-1 per every
caseof aswitch;
-2 per generator function, -2 per everyyield/yield*;
-2 perclass extends;
-2 perfinally, -1 per everybreak/continue/returninside;
-3 per Function.prototype.apply() with...spreadas a single argument.
Instead of mixing RefPtr with raw C++ pointers, single-line branches were preferred.
To keep them cleaner, this patch introduces emitLoad() override for JSGenerator::ResumeMode
enum, and tweaks existing override for CompletionType.
A few drive-by improvements:
- to enable future optimizations, replaces emitBinaryOp() with emitEqualityOp() for OpEq / OpStricteq (adds an assert), and vice-versa for other comparison ops;
- removes OperandTypes for comparison ops as it was ignored (let's re-introduce them consistently once supported);
- inlines too specific BytecodeGenerator::emitJumpIf();
- replaces
eqwithstricteqin ApplyFunctionCallDotNode.
No behavior change, no callee registers count grow.
- bytecompiler/BytecodeGenerator.cpp:
(JSC::BytecodeGenerator::emitYield):
(JSC::BytecodeGenerator::emitDelegateYield):
(JSC::BytecodeGenerator::emitFinallyCompletion):
(JSC::BytecodeGenerator::emitJumpIf): Deleted.
- bytecompiler/BytecodeGenerator.h:
(JSC::BytecodeGenerator::emitEqualityOp):
(JSC::BytecodeGenerator::emitLoad):
- bytecompiler/NodesCodegen.cpp:
(JSC::ApplyFunctionCallDotNode::emitBytecode):
(JSC::ForInNode::emitBytecode):
(JSC::CaseBlockNode::emitBytecodeForBlock):
(JSC::FunctionNode::emitBytecode):
(JSC::ClassExprNode::emitBytecode):
- 6:22 AM Changeset in webkit [273648] by
-
- 4 edits1 add1 delete in trunk/LayoutTests
[LayoutTests] Convert http/tests/fetch convert PHP to Python
https://bugs.webkit.org/show_bug.cgi?id=222367
<rdar://problem/74702641>
Reviewed by Jonathan Bedard.
- http/tests/fetch/caching-with-different-options.html:
- http/tests/fetch/redirectmode-and-preload-expected.txt:
- http/tests/fetch/redirectmode-and-preload.html:
- http/tests/fetch/resources/redirect-with-cache.php: Removed.
- http/tests/fetch/resources/redirect-with-cache.py: Added.
- 6:22 AM Changeset in webkit [273647] by
-
- 2 edits in trunk/Source/WebCore
Change order in RenderBlock::availableLogicalHeightForPercentageComputation
https://bugs.webkit.org/show_bug.cgi?id=222468
Patch by Rob Buis <rbuis@igalia.com> on 2021-03-01
Reviewed by Manuel Rego Casasnovas.
Change order in RenderBlock::availableLogicalHeightForPercentageComputation in
order to remove one check.
- rendering/RenderBlock.cpp:
(WebCore::RenderBlock::availableLogicalHeightForPercentageComputation const):
- 5:27 AM Changeset in webkit [273646] by
-
- 8 edits1 copy in trunk/Source/WebKit
Timeout calculations are error-prone for compound IPC operations
https://bugs.webkit.org/show_bug.cgi?id=222305
Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2021-03-01
Reviewed by Geoffrey Garen.
Add Timeout class to hold the timeout value in blocking functions
of IPC::.
This makes it possible to forward absolute points of time as the timeout
value, as well as preserving the ability to pass points of time relative
to the invocation.
Call the concept Timeout instead of TimeOut since word 'timeout' is an
English word and preferable when used as a noun according to ell stackoverflow.
No new tests, a refactor.
- Platform/IPC/Connection.cpp:
(IPC::Connection::sendMessage):
(IPC::Connection::waitForMessage):
(IPC::Connection::sendSyncMessage):
(IPC::Connection::waitForSyncReply):
- Platform/IPC/Connection.h:
(IPC::Connection::sendSync):
(IPC::Connection::waitForAndDispatchImmediately):
(IPC::Connection::waitForAsyncCallbackAndDispatchImmediately):
- Platform/IPC/IPCSemaphore.h:
- Platform/IPC/MessageSender.h:
(IPC::MessageSender::sendSync):
- Platform/IPC/StreamClientConnection.h:
(IPC::StreamClientConnection::send):
(IPC::StreamClientConnection::sendSync):
(IPC::StreamClientConnection::trySendDestinationIDIfNeeded):
(IPC::StreamClientConnection::tryAcquire):
Here are few examples of compound use-case.
- Platform/IPC/Timeout.h: Copied from Source/WebKit/Platform/IPC/IPCSemaphore.h.
(IPC::Timeout::Timeout):
(IPC::Timeout::infinity):
(IPC::Timeout::operator Seconds const):
(IPC::Timeout::hasPassed const):
- Platform/IPC/darwin/IPCSemaphoreDarwin.cpp:
(IPC::Semaphore::waitFor):
- UIProcess/AuxiliaryProcessProxy.h:
(WebKit::AuxiliaryProcessProxy::sendSync):
- 2:44 AM Changeset in webkit [273645] by
-
- 2 edits in trunk/LayoutTests
[GPUP] Fix WebRTC layout test failures with GPU Process enabled
https://bugs.webkit.org/show_bug.cgi?id=222505
<rdar://problem/74814573>
Unreviewed.
- gpu-process/TestExpectations:
Removed no longer valid expectations.
- 2:06 AM Changeset in webkit [273644] by
-
- 5 edits in trunk/Source/WebCore
[GStreamer][Playbin3] Stream collection handling fixes
https://bugs.webkit.org/show_bug.cgi?id=222322
Patch by Philippe Normand <pnormand@igalia.com> on 2021-03-01
Reviewed by Xabier Rodriguez-Calvar.
The track orphaning trying to avoid un-necessary track addition/removals was making the
whole thing inconsistent with the final stream collection. Also stream-collection messages
don't need to be handled from a synchronous GstBus handler, this should be needed for
need-context messages only, so the corresponding code has been refactored.
This patch also includes changes and cleanups for the mediastreamsrc element, needed after
the stream collection handling fixes. Most notably the element now keeps an internal list of
tracks, in addition to observing the MediaStreamPrivate for topology changes. Also it emits
a new stream collection whenever a new source pad has been added.
No new tests, but this patch fixes flakyness of http/tests/media/hls/hls-audio-tracks.html
when the pipeline is driven by playbin3.
- platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
(WebCore::MediaPlayerPrivateGStreamer::~MediaPlayerPrivateGStreamer):
(WebCore::MediaPlayerPrivateGStreamer::updateTracks):
(WebCore::MediaPlayerPrivateGStreamer::setPipeline):
(WebCore::MediaPlayerPrivateGStreamer::handleStreamCollectionMessage):
(WebCore::MediaPlayerPrivateGStreamer::handleNeedContextMessage):
(WebCore::MediaPlayerPrivateGStreamer::handleMessage):
(WebCore::MediaPlayerPrivateGStreamer::createGSTPlayBin):
- platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:
- platform/graphics/gstreamer/mse/AppendPipeline.cpp:
(WebCore::AppendPipeline::handleNeedContextSyncMessage):
- platform/mediastream/gstreamer/GStreamerMediaStreamSource.cpp:
(stopObservingTracks):
(webkitMediaStreamSrcDispose):
(webkitMediaStreamSrcAddPad):
(ProbeData::ProbeData):
(webkitMediaStreamSrcPadProbeCb):
(webkitMediaStreamSrcSetupSrc):
(webkitMediaStreamSrcPostStreamCollection):
(webkitMediaStreamSrcAddTrack):
(webkitMediaStreamSrcSetStream):
(webkitMediaStreamSrcTrackEnded):
- 1:42 AM Changeset in webkit [273643] by
-
- 2 edits in trunk/Source/WebKit
[GTK] Fails to build in i386: static assertion failed: divisor must be a power of two
https://bugs.webkit.org/show_bug.cgi?id=222480
Reviewed by Carlos Garcia Campos.
- Platform/IPC/StreamConnectionBuffer.h:
(IPC::StreamConnectionBuffer::headerSize):
Feb 28, 2021:
- 6:26 PM Changeset in webkit [273642] by
-
- 4 edits in trunk/Source/WebCore
Consider removing iOS only CSS property alias -webkit-hyphenate-locale introduced in r80288
https://bugs.webkit.org/show_bug.cgi?id=222507
Reviewed by Anders Carlsson.
It's been about 10 years, let's try removing the iOS only CSS property alias for
-webkit-locale, -webkit-hyphenate-locale, and see what happens.
- css/CSSStyleDeclaration.cpp:
- css/parser/CSSPropertyParser.cpp:
(WebCore::cssPropertyID):
(WebCore::cssPropertyNameIOSAliasing): Deleted.
- css/parser/CSSPropertyParser.h:
- 4:47 PM Changeset in webkit [273641] by
-
- 4 edits in trunk
[JSC] Add gc and clearKeptObjects to $262
https://bugs.webkit.org/show_bug.cgi?id=222527
Reviewed by Ross Kirsling.
JSTests:
- test262/config.yaml:
Source/JavaScriptCore:
Add $262.gc and $262.clearKeptObjects functions. They are required for test262 host-gc-required.
Since all the tests using "host-gc-required" are currently also marked with cleanupSome, we are currently not running them.
But if some more tests are landed in test262 with "host-gc-required", we will run them with these functions.
- jsc.cpp:
(JSC_DEFINE_HOST_FUNCTION):
- 4:13 PM Changeset in webkit [273640] by
-
- 11 edits in trunk/Source/WebCore
[LFC][IFC] Content left offset means just content left
https://bugs.webkit.org/show_bug.cgi?id=222522
Reviewed by Antti Koivisto.
- layout/inlineformatting/InlineFormattingContextGeometry.cpp:
(WebCore::Layout::LineBoxBuilder::build):
- layout/inlineformatting/InlineLineBox.cpp:
(WebCore::Layout::LineBox::LineBox):
(WebCore::Layout::m_contentLogicalWidth):
- layout/inlineformatting/InlineLineBox.h:
- layout/inlineformatting/InlineLineGeometry.h:
(WebCore::Layout::InlineLineGeometry::contentLogicalLeft const):
(WebCore::Layout::InlineLineGeometry::InlineLineGeometry):
(WebCore::Layout::InlineLineGeometry::contentLogicalLeftOffset const): Deleted.
- layout/integration/LayoutIntegrationInlineContentBuilder.cpp:
(WebCore::LayoutIntegration::InlineContentBuilder::createDisplayLines const):
- layout/integration/LayoutIntegrationLine.h:
(WebCore::LayoutIntegration::Line::Line):
(WebCore::LayoutIntegration::Line::contentLeft const):
(WebCore::LayoutIntegration::Line::contentLeftOffset const): Deleted.
- layout/integration/LayoutIntegrationLineIteratorModernPath.h:
(WebCore::LayoutIntegration::LineIteratorModernPath::contentLogicalLeft const):
- layout/integration/LayoutIntegrationLineLayout.cpp:
(WebCore::LayoutIntegration::LineLayout::paint):
- layout/integration/LayoutIntegrationPagination.cpp:
(WebCore::LayoutIntegration::makeAdjustedContent):
- layout/integration/LayoutIntegrationRunIteratorModernPath.h:
(WebCore::LayoutIntegration::RunIteratorModernPath::createTextRun const):
- 12:56 PM Changeset in webkit [273639] by
-
- 7 edits in trunk/Source
[iOS] Reduce use of retain/release in WAKWindow and remove unneeded methods from that class
https://bugs.webkit.org/show_bug.cgi?id=222330
Reviewed by Chris Dumez.
Source/WebCore:
- platform/ios/LegacyTileCache.h: Use pragma once, remove unneeded includes,
tweak coding style a bit to match WebKit standard. Removed hasPendingDraw.
added WEBCORE_EXPORT to setTileBordersVisible and setTilePaintCountersVisible
so they can be used in WebKitLegacy.
- platform/ios/LegacyTileCache.mm:
(WebCore::LegacyTileCache::hasPendingDraw const): Deleted.
- platform/ios/wak/WAKWindow.h: Use pragma once, remove unneeded includes,
tweak coding style a bit to match WebKit standard. Removed hasPendingDraw,
setTileControllerShouldUseLowScaleTiles, setTileBordersVisible,
setTilePaintCountsVisible, setAcceleratedDrawingEnabled, freezeVisibleRect,
and unfreezeVisibleRect.
- platform/ios/wak/WAKWindow.mm: Removed "using namespace WebCore".
Removed unused _WAKKeyWindow global. Converted currentEvent and
gOrientationProvider globals to NeverDestroyed<RetainPtr<>>.
(orientationProvider): Added
(currentEvent): Added.
(-[WAKWindow isKeyWindow]): Remove dead code; this method already always
returns YES.
(-[WAKWindow makeKeyWindow]): Remove dead code. This method wrote to a
global that was never read anywhere.
(-[WAKWindow sendEventSynchronously:]): Use the currentEvent function
and take advantage of the fact that it's a RetainPtr so we don't need a
a local variable named currentEventProtector.
(-[WAKWindow hasPendingDraw]): Deleted. No callers depend on this.
(-[WAKWindow willRotate]): Set _frozenVisibleRect here directly instead
of calling anoether method to do that.
(-[WAKWindow didRotate]): Ditto.
(-[WAKWindow freezeVisibleRect]): Deleted. The method above was the only
caller for this method.
(-[WAKWindow unfreezeVisibleRect]): Ditto.
(+[WAKWindow setOrientationProvider:]): Use the orientationProvider function.
Note, this now retains the passed-in object. This is safe; the only caller
passes in a class, so there's no risk of a retain cycle.
(+[WAKWindow hasLandscapeOrientation]): Use the orientationProvider function.
(-[WAKWindow setTileBordersVisible:]): Deleted. The only caller for this
was in WebKitLegacy, and refactored to use the tile cache directly.
(-[WAKWindow setTilePaintCountsVisible:]): Ditto.
(-[WAKWindow setAcceleratedDrawingEnabled:]): Ditto.
(-[WAKWindow setTileControllerShouldUseLowScaleTiles:]): Deleted. No
callers depend on this.
(+[WAKWindow currentEvent]): Use the currentEvent function.
Source/WebKitLegacy/mac:
- WebView/WebView.mm:
(-[WebView _preferencesChanged:]): Call LegacyTileCache functions directly rather
than indirecting through WAKWindow methods.
(-[WebView viewDidMoveToWindow]): Ditto. Also tweaked conditionals a little for clarity.
- 11:58 AM Changeset in webkit [273638] by
-
- 5 edits in trunk/Source/WebCore
[LFC][IFC] LineBox's horizontalAlignmentOffset is the root inline box's logical left
https://bugs.webkit.org/show_bug.cgi?id=222521
Reviewed by Sam Weinig.
That's where the line content starts.
- layout/inlineformatting/InlineFormattingContext.cpp:
(WebCore::Layout::InlineFormattingContext::computeGeometryForLineContent):
- layout/inlineformatting/InlineFormattingContextGeometry.cpp:
(WebCore::Layout::LineBoxBuilder::constructInlineLevelBoxes):
- layout/inlineformatting/InlineLineBox.cpp:
(WebCore::Layout::m_contentLogicalWidth):
(WebCore::Layout::LineBox::logicalRectForTextRun const):
(WebCore::Layout::m_horizontalAlignmentOffset): Deleted.
- layout/inlineformatting/InlineLineBox.h:
(WebCore::Layout::LineBox::setLogicalHeight):
(WebCore::Layout::LineBox::horizontalAlignmentOffset const): Deleted.
(WebCore::Layout::LineBox::setHorizontalAlignmentOffset): Deleted.
- 11:42 AM Changeset in webkit [273637] by
-
- 2 edits in trunk/Source/WebCore
Consider removing support for CSS value keywords with the -khtml- prefix
https://bugs.webkit.org/show_bug.cgi?id=222515
Reviewed by Darin Adler.
Try removing re-writing of the -khtml- prefix to -webkit- for CSS value keywords
and see what breaks.
- css/parser/CSSPropertyParser.cpp:
(WebCore::cssValueKeywordID):
- 8:22 AM Changeset in webkit [273636] by
-
- 4 edits in trunk/Source/WebCore
[LFC][IFC] Every line box must have a root inline box
https://bugs.webkit.org/show_bug.cgi?id=222520
Reviewed by Antti Koivisto.
Let's create the root inline box during LineBox construction as even
an empty LineBox has to have a root inline box.
- layout/inlineformatting/InlineLineBox.cpp:
(WebCore::Layout::m_rootInlineBox):
(WebCore::Layout::LineBox::logicalRectForTextRun const):
(WebCore::Layout::LineBox::logicalRectForInlineLevelBox const):
(WebCore::Layout::m_horizontalAlignmentOffset): Deleted.
- layout/inlineformatting/InlineLineBox.h:
(WebCore::Layout::LineBox::rootInlineBox const):
(WebCore::Layout::LineBox::rootInlineBox):
- 4:29 AM WebKitGTK/2.32.x edited by
- (diff)
- 3:59 AM Changeset in webkit [273635] by
-
- 10 edits in trunk
Blending of border-image-width should be discrete between "auto" values and other types
https://bugs.webkit.org/show_bug.cgi?id=222516
Reviewed by Dean Jackson.
LayoutTests/imported/w3c:
Pass an extra 22 WPT interpolation tests for border-image-width. We also get 3 new FAIL results
in css/css-transitions/properties-value-auto-001.html but that test seems incorrect in assuming
there can be a transition for "clip" between "auto" and a non-auto value, at least Chrome and
Firefox both fail the newly-failed tests.
Incidentally, we also get 50 new PASS results from css-grid tests.
- web-platform-tests/css/css-backgrounds/animations/border-image-width-interpolation-expected.txt:
- web-platform-tests/css/css-grid/abspos/orthogonal-positioned-grid-descendants-016-expected.txt:
- web-platform-tests/css/css-grid/abspos/positioned-grid-descendants-007-expected.txt:
- web-platform-tests/css/css-grid/abspos/positioned-grid-descendants-012-expected.txt:
- web-platform-tests/css/css-grid/abspos/positioned-grid-descendants-014-expected.txt:
- web-platform-tests/css/css-grid/abspos/positioned-grid-descendants-016-expected.txt:
- web-platform-tests/css/css-transitions/properties-value-auto-001-expected.txt:
Source/WebCore:
The LengthBoxPropertyWrapper::canInterpolate() method checks whether the provided lengths are 0 to see if
they can be blended since 0 lengths can be blended with anything. However, currently Length::isZero() returns
true for "auto" values, which is incorrect, so we change the behavior of isZero() to not work when the type
is LengthType::Auto.
Incidentally, this makes a few css-grid tests progress as well.
- platform/Length.h:
(WebCore::Length::isZero const):
- 2:15 AM Changeset in webkit [273634] by
-
- 4 edits in trunk
[JSC] Update test262 host environments
https://bugs.webkit.org/show_bug.cgi?id=222525
Reviewed by Ross Kirsling.
JSTests:
- test262/expectations.yaml:
Source/JavaScriptCore:
- $262.global should be
globalThisof the realm according to test/built-ins/Function/call-bind-this-realm-undef.js - $262.evalScript should uwrap JSProxy to get GlobalObject.
This fixes test262 test/built-ins/Function/call-bind-this-realm-undef.js, it was wrongly tested and failing.
- jsc.cpp:
(JSC_DEFINE_HOST_FUNCTION):