Timeline
Mar 8, 2021:
- 11:57 PM Changeset in webkit [274139] by
-
- 5 edits in trunk/LayoutTests
Unreviewed. Update border-width interpolation test after WPT PR #27934.
LayoutTests/imported/w3c:
- web-platform-tests/css/css-backgrounds/animations/border-width-interpolation-expected.txt:
- web-platform-tests/css/css-backgrounds/animations/border-width-interpolation.html:
LayoutTests:
- platform/ios/imported/w3c/web-platform-tests/css/css-backgrounds/animations/border-width-interpolation-expected.txt:
- 11:19 PM Changeset in webkit [274138] by
-
- 3 edits in trunk/Source/WebKit
Allow access to more cmio services from Web/GPU processes
https://bugs.webkit.org/show_bug.cgi?id=222465
Reviewed by Per Arne Vollan.
These new services are used when getting camera access.
Manually tested.
- GPUProcess/mac/com.apple.WebKit.GPUProcess.sb.in:
- WebProcess/com.apple.WebProcess.sb.in:
- 9:57 PM Changeset in webkit [274137] by
-
- 4 edits2 adds in trunk
REGRESSION(r274025-r273811): Crash under RenderLayerBacking::updateGeometry()
https://bugs.webkit.org/show_bug.cgi?id=222021
rdar://74414963
Reviewed by Zalan Bujtas.
When a RenderLayer gains or loses its scrollable area, we have to set the dirty
bit on the RenderLayer to ensure that RenderLayerBacking::updateConfiguration() runs,
which updates compositing layers for scrolling.
Source/WebCore:
Also add to logging the scrollableArea if present.
Test: fast/layers/remove-scrollable-area-crash.html
- rendering/RenderLayer.cpp:
(WebCore::RenderLayer::calculateClipRects const):
(WebCore::outputPaintOrderTreeRecursive):
- rendering/RenderTreeAsText.cpp:
LayoutTests:
- fast/layers/remove-scrollable-area-crash.html: Added.
- 9:41 PM Changeset in webkit [274136] by
-
- 3 edits in trunk/Source/WebCore
<model>'s inner compositing layer is re-created every time it moves
https://bugs.webkit.org/show_bug.cgi?id=222950
Reviewed by Simon Fraser.
No new tests, just a performance optimization.
- Modules/model-element/HTMLModelElement.cpp:
(WebCore::HTMLModelElement::model const):
(WebCore::HTMLModelElement::notifyFinished):
- Modules/model-element/HTMLModelElement.h:
It turns out that we need Model's identity to be stable in order to make
the early return in setContentsToModel (called every time the layer's properties
change from RenderLayerBacking::updateConfiguration) work, otherwise
we re-create the inner layer over and over again.
- 9:40 PM Changeset in webkit [274135] by
-
- 5 edits in trunk/Tools
[PlayStation] Various small fixes for TestWTF/TestWebKit tests on PlayStation
https://bugs.webkit.org/show_bug.cgi?id=222931
Reviewed by Don Olmstead.
- TestWebKitAPI/PlatformPlayStation.cmake: Link to API for process termination
- TestWebKitAPI/Tests/WTF/DataMutex.cpp: Turn off test using ASSERT_DEATH
- TestWebKitAPI/Tests/WebKit/ReloadPageAfterCrash.cpp: Use PlayStation api to kill webprocess for this test
- TestWebKitAPI/playstation/PlatformWebViewPlayStation.cpp: Set size in resizeTo
- 9:24 PM Changeset in webkit [274134] by
-
- 3 edits in trunk/Websites/perf.webkit.org
[perf dashboard] Use async/await in tests for TimeSeriesChart and InteractiveTimeSeriesChart
https://bugs.webkit.org/show_bug.cgi?id=222876
Reviewed by Sam Weinig.
Use async/await instead of chaining promises manually in the browser tests for
TimeSeriesChart and InteractiveTimeSeriesChart for better readability.
- browser-tests/interactive-time-series-chart-tests.js:
- browser-tests/time-series-chart-tests.js:
- 8:17 PM Changeset in webkit [274133] by
-
- 1 copy in tags/Safari-611.1.21.1.7
Tag Safari-611.1.21.1.7.
- 8:14 PM Changeset in webkit [274132] by
-
- 8 edits in branches/safari-611.1.21.1-branch/Source
Versioning.
WebKit-7611.1.21.1.7
- 7:41 PM Changeset in webkit [274131] by
-
- 2 edits in trunk/Source/WebCore
Crash in in ReplaceSelectionCommand::mergeEndIfNeeded()
https://bugs.webkit.org/show_bug.cgi?id=222941
Patch by Julian Gonzalez <julian_a_gonzalez@apple.com> on 2021-03-08
Reviewed by Ryosuke Niwa.
Make a copy of Ref<HTMLBRElement> when inserting before start of paragraph.
- editing/ReplaceSelectionCommand.cpp:
(WebCore::ReplaceSelectionCommand::mergeEndIfNeeded):
- 7:40 PM Changeset in webkit [274130] by
-
- 4 edits in trunk/Source/WebKit
Simplify CallbackAggregator in WebsiteDataStore::fetchDataAndApply()
https://bugs.webkit.org/show_bug.cgi?id=222937
Reviewed by Darin Adler.
Simplify CallbackAggregator in WebsiteDataStore::fetchDataAndApply():
- Get rid of removePendingCallback() / addPendingCallback() / callIfNeeded() and instead rely on ref counting to determine when we need to call the apply function.
- Replaced removePendingCallback() with addWebsiteData() since it takes a WebsiteData as an object and make it so that it can be called on any thread for convenience.
- Shared/WebsiteData/WebsiteData.cpp:
(WebKit::WebsiteData::isolatedCopy const):
(WebKit::WebsiteData::Entry::isolatedCopy const):
- Shared/WebsiteData/WebsiteData.h:
- UIProcess/WebsiteData/WebsiteDataStore.cpp:
(WebKit::WebsiteDataStore::fetchDataAndApply):
- 7:07 PM Changeset in webkit [274129] by
-
- 2 edits in trunk/Source/WebKit
Regression(r273875): Potential over-release in WKRemoteObjectCoder's decodeObjCObject()
https://bugs.webkit.org/show_bug.cgi?id=222954
<rdar://75163359>
Reviewed by Darin Adler.
r273875 added an adoptNS() for the result of
[allocation initWithCoder:decoder]. This would be
fine in general, except that we call awakeAfterUsingCoder on the result right after. As per the
awakeAfterUsingCoder documentation [1], it may return the receiver or a new object. When it
returns a new object, it takes care of releasing the receiver. This is an issue for us here since
we were holding the receiver in a smart pointer.
[1] https://developer.apple.com/documentation/objectivec/nsobject/1417074-awakeafterusingcoder
- Shared/API/Cocoa/WKRemoteObjectCoder.mm:
(decodeObjCObject):
- 6:44 PM Changeset in webkit [274128] by
-
- 3 edits in trunk/Tools
TestWebKitAPI WebKit.HitTestResultNodeHandle does not complete with ENABLE_CONTEXT_MENUS=OFF
https://bugs.webkit.org/show_bug.cgi?id=222938
Reviewed by Ross Kirsling.
Make the test only build with context menus are supported.
- TestWebKitAPI/Tests/WebKit/HitTestResultNodeHandle.cpp:
- TestWebKitAPI/Tests/WebKit/HitTestResultNodeHandle_Bundle.cpp:
- 6:10 PM Changeset in webkit [274127] by
-
- 5 edits in trunk/Tools
[webkitscmpy] Isolate dateutil imports
https://bugs.webkit.org/show_bug.cgi?id=222946
<rdar://problem/75191226>
Reviewed by Dewei Zhu.
- Scripts/libraries/webkitscmpy/setup.py: Bump version.
- Scripts/libraries/webkitscmpy/webkitscmpy/init.py: Ditto.
- Scripts/libraries/webkitscmpy/webkitscmpy/mocks/remote/svn.py:
(Svn.request): Isolate dateutil imports.
- 5:49 PM Changeset in webkit [274126] by
-
- 2 edits in trunk/LayoutTests
REGRESSION (r274033): [ macOS/iOS ] model-element/model-element-ready-load-aborted.html is text failing
https://bugs.webkit.org/show_bug.cgi?id=222917
<rdar://problem/75173628>
Reviewed by Wenson Hsieh.
- model-element/model-element-ready-load-aborted.html:
Fix this test; it could flakily fail if the load completed before unparenting the element,
which became more common after r274033 added a test that ran first and cached the resource.
Set the source just before unparenting to resolve this race.
- 5:12 PM Changeset in webkit [274125] by
-
- 1 copy in tags/Safari-611.1.21.0.5
Tag Safari-611.1.21.0.5.
- 5:11 PM Changeset in webkit [274124] by
-
- 1 delete in tags/Safari-611.1.21.0.5
Delete tag.
- 5:06 PM Changeset in webkit [274123] by
-
- 1 copy in tags/Safari-611.1.21.1.6
Tag Safari-611.1.21.1.6.
- 4:55 PM Changeset in webkit [274122] by
-
- 6 edits in trunk
Enable accessibility/aria-invalid.html test on iOS.
https://bugs.webkit.org/show_bug.cgi?id=222942
<rdar://problem/75188832>
Reviewed by Chris Fleizach.
Tools:
Modified AccessibilityUIElement::stringAttributeValue to handle invalid
status, so that test JS can query for it.
- WebKitTestRunner/InjectedBundle/ios/AccessibilityUIElementIOS.mm:
(WTR::AccessibilityUIElement::stringAttributeValue):
LayoutTests:
Enabled this test on iOS.
Minor change in the order in which the invalid notification is logged.
- accessibility/aria-invalid-expected.txt:
- accessibility/aria-invalid.html:
- platform/ios/TestExpectations:
- 4:45 PM Changeset in webkit [274121] by
-
- 1 copy in tags/Safari-611.1.21.0.5
Create tag Safari-611.1.21.0.5.
- 4:33 PM Changeset in webkit [274120] by
-
- 11 edits in releases/WebKitGTK/webkit-2.32/Source
Unreviewed non-unified build fixes.
Source/JavaScriptCore:
- wasm/WasmGlobal.h: Add missing SlotVisitorMacros.h header.
- wasm/WasmTable.h: Ditto.
Source/WebCore:
- CMakeLists.txt: Build ScrollingMomentumCalculator.cpp in the test support library.
- dom/Event.cpp: Add missing TouchList.h header.
- dom/EventContext.cpp: Add missing EventNames.h header.
- page/scrolling/ScrollSnapOffsetsInfo.cpp: Add missing Logging.h header.
- platform/network/soup/SoupNetworkSession.cpp: Add missing SoupVersioning.h header.
- rendering/RenderLayerModelObject.cpp: Add missing RenderLayerScrollableArea.h header.
- rendering/RenderModel.cpp: Move inclusion of "config.h" before ENABLE() check.
- 4:33 PM Changeset in webkit [274119] by
-
- 3 edits in releases/WebKitGTK/webkit-2.32/Source
Merge r272721 - Non unified build fixes for mid February 2021
https://bugs.webkit.org/show_bug.cgi?id=221749
Reviewed by Youenn Fablet.
Source/WebCore:
- CMakeLists.txt:
- Modules/mediastream/SFrameUtils.cpp:
- Modules/mediastream/STUNMessageParsing.h:
- bindings/js/WebCoreBuiltinNames.h:
- dom/EventTargetFactory.in:
- inspector/InspectorFrontendAPIDispatcher.cpp:
(WebCore::InspectorFrontendAPIDispatcher::evaluateOrQueueExpression):
- workers/DedicatedWorkerGlobalScope.cpp:
- workers/Worker.cpp:
Source/WebKit:
- GPUProcess/graphics/RemoteRenderingBackend.cpp:
- GPUProcess/media/RemoteCDMInstanceProxy.cpp:
- 4:33 PM Changeset in webkit [274118] by
-
- 2 edits in releases/WebKitGTK/webkit-2.32/Tools
Merge r273551 - Unreviewed, WPE build fix after SDK r273544 deployment
- TestWebKitAPI/PlatformWPE.cmake: GLib include path was missing in the TestJavaScriptCore
build.
- 4:15 PM Changeset in webkit [274117] by
-
- 9 edits in trunk/Source/WebKit
[Cocoa][GPUP] Enable WebM/Vorbis/Opus in the GPU process
https://bugs.webkit.org/show_bug.cgi?id=222926
Reviewed by Eric Carlson.
The first time a GPUProcessProxy is created, and whenever a new WebPageProxy is created,
The GPUProcessProxy will query all existing WebPageGroups and their WebPreferences. If
any group enables "Media in the GPU Process", and also WebM, Vorbis, or Opus, those features
which are enabled will also be enabled inside the GPU process.
- GPUProcess/GPUProcess.cpp:
(WebKit::GPUProcess::setWebMParserEnabled):
(WebKit::GPUProcess::setWebMFormatReaderEnabled):
(WebKit::GPUProcess::setOpusDecoderEnabled):
(WebKit::GPUProcess::setVorbisDecoderEnabled):
- GPUProcess/GPUProcess.h:
- GPUProcess/GPUProcess.messages.in:
- UIProcess/GPU/GPUProcessProxy.cpp:
(WebKit::GPUProcessProxy::getOrCreate):
(WebKit::GPUProcessProxy::updatePreferences):
- UIProcess/GPU/GPUProcessProxy.h:
- UIProcess/WebPageGroup.cpp:
(WebKit::WebPageGroup::forEach):
- UIProcess/WebPageGroup.h:
- UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::createWebPage):
- 4:03 PM Changeset in webkit [274116] by
-
- 3 edits in trunk/LayoutTests/imported/w3c
Unreviewed, reverting r274071.
https://bugs.webkit.org/show_bug.cgi?id=222951
Broke a test
Reverted changeset:
- 4:00 PM Changeset in webkit [274115] by
-
- 3 edits in trunk/Source/WebCore
Fix unified build due to missing header include.
https://bugs.webkit.org/show_bug.cgi?id=222782
<rdar://problem/75081020>
Patch by Jean-Yves Avenard <Jean-Yves Avenard> on 2021-03-08
Reviewed by Wenson Hsieh.
No change in functionality.
- Modules/model-element/HTMLModelElement.cpp:
Add #include.
- 3:35 PM Changeset in webkit [274114] by
-
- 2 edits in trunk/Source/WebCore
Make Color threadsafe
https://bugs.webkit.org/show_bug.cgi?id=222886
Reviewed by Darin Adler.
Color is mostly threadsafe already and can really be used as an immutable
value type in most cases. Let's make that completely true by making the out
of line component case ThreadSafeRefCounted.
- platform/graphics/Color.h:
- 3:21 PM Changeset in webkit [274113] by
-
- 2 edits in trunk/Tools
JSC stress tests' $testSpecificRequiredOptions should be appended last.
https://bugs.webkit.org/show_bug.cgi?id=222936
Reviewed by Keith Miller.
This allows each test to get the last say on what options it needs.
- Scripts/run-jsc-stress-tests:
- 3:06 PM Changeset in webkit [274112] by
-
- 2 edits in trunk/Source/WebInspectorUI
Web Inspector: REGRESSION (r267038): Inspector fails to show any details about animations/transitions in the timeline
https://bugs.webkit.org/show_bug.cgi?id=222921
Reviewed by Devin Rousso.
Timeline views should always be updated with the time from the overview, but r267038 erroneously prevented the
end time from being updated while recording was stopping and prevented the current time from being updated while
recording was stopping or inactive, which meant after a recording finished (Stopping -> Inactive) the timeline
views would not be updated with the current time. Because_updateTimelineViewTimescan be called when a
different content view is selected, it was incorrect to gate setting these values based on the recording state.
The check for not being in the inactive state was particularly problematic as it is quite common that a
developer would open a specific timelime view for the first time after recording finishes, at which point all
values should be populated regardless of recording state. The source of the time values continues to be handled
in such a way as to prevent values from continuously jumping around as a recording is stopped but data continues
to arrive.
- UserInterface/Views/TimelineRecordingContentView.js:
(WI.TimelineRecordingContentView.prototype._updateTimes):
- Drive-by spelling correction.
(WI.TimelineRecordingContentView.prototype._updateTimelineViewTimes):
- Remove checks for the current recording state.
- 2:47 PM Changeset in webkit [274111] by
-
- 6 edits in trunk
Add preference reseting to WebKitLegacy Windows to simplify testing reset
https://bugs.webkit.org/show_bug.cgi?id=222865
Reviewed by Brent Fulgham.
Source/WebKitLegacy/win:
Add resetForTesting() function to allow easy reseting of all preferences
for testing, matching functionality added to Cocoa WebKitLegacy.
- Interfaces/IWebPreferencesPrivate.idl:
- WebPreferences.cpp:
(WebPreferences::resetForTesting):
- WebPreferences.h:
Tools:
- DumpRenderTree/win/DumpRenderTree.cpp:
(resetWebPreferencesToConsistentValues):
Call the new resetForTesting() method to ensure all values are reset back
to defaults for each test without have to explicitly list them.
- 2:41 PM Changeset in webkit [274110] by
-
- 2 edits in trunk/Source/WebInspectorUI
Web Inspector: REGRESSION(r269359): TypeError: undefined is not an object (evaluating 'listenersForEventType')
https://bugs.webkit.org/show_bug.cgi?id=222940
Reviewed by BJ Burg.
- UserInterface/Models/JavaScriptBreakpoint.js:
(WI.JavaScriptBreakpoint.prototype.get special):
The existing logic forget specialchecks ifthisis one of the specially saved objects
onWI.debuggerManager(e.g.assertionFailuresBreakpoint). When deleting a breakpoint,
WI.debuggerManagerhas already cleared out it's previously saved reference to that object,
so it won't match. Use the existing_isSpecial(which looks at the_sourceCodeLocation)
as a backup in casethisdoesn't directly match any of the saved objects.
- 2:39 PM Changeset in webkit [274109] by
-
- 2 edits in trunk/Source/WebKit
REGRESSION (r273541): Payloads requiring NSURL in serialization fail
https://bugs.webkit.org/show_bug.cgi?id=222856
<rdar://problem/75036452>
Reviewed by Darin Adler.
In Bug 222145 I converted serialization of CFURLRequest to NSURLRequest. As part of that change,
I used a new encoder (WKSecureCodingURLWrapper) to wrap the NSURL to ensure proper handling of
encoded URLs.
The WKSecureCodingURLWrapper should have been declared as a subclass of NSURL, so that NSSecureCoding
would respect it as a valid way of serializing an NSURL.
This patch corrects that oversight.
- Shared/Cocoa/ArgumentCodersCocoa.mm:
- 2:22 PM Changeset in webkit [274108] by
-
- 3 edits in trunk/Tools
[ews] Remove old Python 2 related code
https://bugs.webkit.org/show_bug.cgi?id=222933
Reviewed by Dewei Zhu.
- CISupport/ews-build/steps.py:
- CISupport/build-webkit-org/steps.py:
- 2:19 PM Changeset in webkit [274107] by
-
- 5 edits in branches/safari-611.1.21.1-branch
Cherry-pick r273997. rdar://problem/75180339
Regression(r268097): WKWebView.URL is nil in the processDidTerminate delegate
https://bugs.webkit.org/show_bug.cgi?id=222809
Reviewed by Michael Catanzaro.
Source/WebKit:
There was a PageLoadState::Transaction in resetStateAfterProcessTermination() that
was previously making sure we would not clear the WebView's URL before calling the
processDidTerminate client delegate. Now that we call the client delegate in a
separate function (WebPageProxy::dispatchProcessDidTerminate), we need to make move
the PageLoadState::Transaction to the caller in
WebProcessProxy::processDidTerminateOrFailedToLaunch(), so that its scope covers
both resetStateAfterProcessTermination() & dispatchProcessDidTerminate() calls.
- UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::resetStateAfterProcessTermination):
- UIProcess/WebProcessProxy.cpp: (WebKit::WebProcessProxy::processDidTerminateOrFailedToLaunch):
Tools:
Add API test coverage.
- TestWebKitAPI/Tests/WebKitCocoa/WebContentProcessDidTerminate.mm: (TEST):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@273997 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 2:10 PM Changeset in webkit [274106] by
-
- 3 edits in trunk/Source/WebKit
[Cocoa] Changes in WebInspectorUI's appearance don't propagate to .effectiveAppearance while docked
https://bugs.webkit.org/show_bug.cgi?id=222925
<rdar://71201454>
Reviewed by Devin Rousso.
Update the appearance property for the underlying webView in addition to
setting it for the inspector NSWindow (undocked only).
This fix is needed for both local and remote inspector code paths.
- UIProcess/Inspector/mac/RemoteWebInspectorProxyMac.mm:
(WebKit::RemoteWebInspectorProxy::platformSetForcedAppearance):
- UIProcess/Inspector/mac/WebInspectorProxyMac.mm:
(WebKit::WebInspectorProxy::applyForcedAppearance):
- 2:09 PM Changeset in webkit [274105] by
-
- 5 edits in branches/safari-611.1.21.0-branch
Cherry-pick r273997. rdar://problem/75180327
Regression(r268097): WKWebView.URL is nil in the processDidTerminate delegate
https://bugs.webkit.org/show_bug.cgi?id=222809
Reviewed by Michael Catanzaro.
Source/WebKit:
There was a PageLoadState::Transaction in resetStateAfterProcessTermination() that
was previously making sure we would not clear the WebView's URL before calling the
processDidTerminate client delegate. Now that we call the client delegate in a
separate function (WebPageProxy::dispatchProcessDidTerminate), we need to make move
the PageLoadState::Transaction to the caller in
WebProcessProxy::processDidTerminateOrFailedToLaunch(), so that its scope covers
both resetStateAfterProcessTermination() & dispatchProcessDidTerminate() calls.
- UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::resetStateAfterProcessTermination):
- UIProcess/WebProcessProxy.cpp: (WebKit::WebProcessProxy::processDidTerminateOrFailedToLaunch):
Tools:
Add API test coverage.
- TestWebKitAPI/Tests/WebKitCocoa/WebContentProcessDidTerminate.mm: (TEST):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@273997 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 2:09 PM Changeset in webkit [274104] by
-
- 2 edits in branches/safari-611.1.21.0-branch/Source/WebKit
Cherry-pick r274051. rdar://problem/75178467
[WebAuthn] Expand WebAuthn Process's sandbox profile on iOS
https://bugs.webkit.org/show_bug.cgi?id=222858
<rdar://problem/74772012>
Reviewed by Brent Fulgham.
Allows WebAuthn process to use AAA again.
- Resources/SandboxProfiles/ios/com.apple.WebKit.WebAuthn.sb:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@274051 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 2:09 PM Changeset in webkit [274103] by
-
- 2 edits in branches/safari-611.1.21.0-branch/Source/WebCore
Cherry-pick r273894. rdar://problem/75178487
AVAudioSessionCaptureDeviceManager::retrieveAudioSessionCaptureDevices is unnecessarily creating a NSArray twice
https://bugs.webkit.org/show_bug.cgi?id=222732
Reviewed by Eric Carlson.
Before the patch, [m_audioSession availableInputs] was called twice.
This creates two NSArray which is not create from a memory standpoint.
There is also the risk that the two NSArrays have two different size, in which case Vector::uncheckedAppend would fail.
Cannot be easily tested, no observable change expected.
- platform/mediastream/ios/AVAudioSessionCaptureDeviceManager.mm: (WebCore::AVAudioSessionCaptureDeviceManager::retrieveAudioSessionCaptureDevices const):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@273894 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 2:03 PM Changeset in webkit [274102] by
-
- 4 edits2 adds in trunk
Using an undeclared private field inside eval shouldn't crash
https://bugs.webkit.org/show_bug.cgi?id=222834
<rdar://75035388>
Reviewed by Yusuke Suzuki.
JSTests:
- stress/declared-private-field-in-eval.js: Added.
- stress/undeclared-private-field-in-eval.js: Added.
Source/JavaScriptCore:
The private methods patch regressed our behavior when using undeclared private
fields or methods from an inner eval inside a class. That patch made us crash.
This patch aligns us with the spec to throw a Syntax Error during eval parsing.
- parser/Parser.cpp:
(JSC::Parser<LexerType>::parseInner):
(JSC::Parser<LexerType>::parseMemberExpression):
- parser/Parser.h:
(JSC::Parser<LexerType>::parse):
- 1:47 PM Changeset in webkit [274101] by
-
- 28 edits1 delete in trunk
Fix inspector viewing of canvas save/restore stack, and tighten and simplify CanvasRenderingContext2DBase
https://bugs.webkit.org/show_bug.cgi?id=222532
Reviewed by Sam Weinig.
Source/WebCore:
The inspector code is the only client that looks into the graphics context and gets at
saved states in the save/restore state stack. It was doing so in an inconsistent way, and
in may cases ignoring the state in the stack and simply using the current state. This fixes
almost everything to actually use the state stack.
Separately did some related refactoring. This includes a bit more inlining and removing a
class that was being used in the interface to Path where we can more simply use a Function<>.
- WebCore.xcodeproj/project.pbxproj: Removed StrokeStyleApplier.h.
- html/canvas/CanvasRenderingContext2D.cpp:
(WebCore::CanvasRenderingContext2D::setFont): Use a global AtomString for the default font
family name so we don't potentially create a new one every time we call this function.
Call usesCSSCompatibilityParseMode so we don't have to get at private member
m_usesCSSCompatibilityParseMode.
(WebCore::CanvasRenderingContext2D::measureText): Call defaultFontFamily(), which returns
an AtomString so we don't have to look it up every time this function is called.
(WebCore::CanvasRenderingContext2D::drawTextInternal): Removed unnecessary allocation of a
TextMetrics object, which we don't use and then deallocate. Update since normalizedSpaces
now uses a return value instead of an in/out argument. Also use && instead of ?: and
update for name change of canDrawTextWithParams.
- html/canvas/CanvasRenderingContext2D.h: Removed unneeded header includes, unneeded
override of webkitBackingStorePixelRatio and made the override of is2d private, since
no one should need to call it on a CanvasRenderingContext2D.
- html/canvas/CanvasRenderingContext2DBase.cpp: Use constexpr for a file-local constant.
(WebCore::CanvasStrokeStyleApplier::CanvasStrokeStyleApplier): Deleted this entire class,
since we now use a function instead of an object.
(WebCore::toCanvasLineCap): Moved these functions to the top of the file since they are
now used in the State class.
(WebCore::fromCanvasLineCap): Ditto.
(WebCore::toCanvasLineJoin): Ditto.
(WebCore::fromCanvasLineJoin): Ditto.
(WebCore::toCanvasTextAlign): Ditto.
(WebCore::fromCanvasTextAlign): Ditto.
(WebCore::toCanvasTextBaseline): Ditto.
(WebCore::fromCanvasTextBaseline): Ditto.
(WebCore::CanvasRenderingContext2DBase::State::operator=): Deleted the copy constructor
and assignment operator since they are the default ones.
(WebCore::CanvasRenderingContext2DBase::State::fontString const): Added. Moved the code
here from the function named font, making it possible to use this in the inspector code.
(WebCore::CanvasRenderingContext2DBase::State::canvasLineCap const): Ditto.
(WebCore::CanvasRenderingContext2DBase::State::canvasLineJoin const): Ditto.
(WebCore::CanvasRenderingContext2DBase::State::canvasTextAlign const): Ditto.
(WebCore::CanvasRenderingContext2DBase::State::canvasTextBaseline const): Ditto.
(WebCore::CanvasRenderingContext2DBase::State::globalCompositeOperationString const): Ditto.
(WebCore::CanvasRenderingContext2DBase::State::shadowColorString const): Ditto.
(WebCore::CanvasRenderingContext2DBase::lineWidth const): Moved to the header.
(WebCore::CanvasRenderingContext2DBase::lineCap const): Ditto.
(WebCore::CanvasRenderingContext2DBase::lineJoin const): Ditto.
(WebCore::CanvasRenderingContext2DBase::miterLimit const): Ditto.
(WebCore::CanvasRenderingContext2DBase::shadowOffsetX const): Ditto.
(WebCore::CanvasRenderingContext2DBase::shadowOffsetY const): Ditto.
(WebCore::CanvasRenderingContext2DBase::shadowBlur const): Ditto.
(WebCore::CanvasRenderingContext2DBase::shadowColor const): Ditto.
(WebCore::CanvasRenderingContext2DBase::getLineDash const): Ditto.
(WebCore::CanvasRenderingContext2DBase::lineDashOffset const): Ditto.
(WebCore::CanvasRenderingContext2DBase::globalAlpha const): Ditto.
(WebCore::CanvasRenderingContext2DBase::globalCompositeOperation const): Ditto.
(WebCore::isFullCanvasCompositeMode): Made this file local, no longer a member function.
(WebCore::CanvasRenderingContext2DBase::isPointInPathInternal): Tweak style to match
the following function.
(WebCore::CanvasRenderingContext2DBase::isPointInStrokeInternal): Use a lambda for the
stroke style applier so we don't need a class.
(WebCore::CanvasRenderingContext2DBase::didDrawEntireCanvas): Updated since didDraw
now takes an OptionSet.
(WebCore::CanvasRenderingContext2DBase::didDraw): Updated to take an OptionSet.
(WebCore::CanvasRenderingContext2DBase::getImageData const): Use a single makeString
instead of a StringBuilder for an error message.
(WebCore::CanvasRenderingContext2DBase::putImageData): Updated since didDraw now
takes an OptionSet.
(WebCore::CanvasRenderingContext2DBase::imageSmoothingQuality const): Moved to the header.
(WebCore::CanvasRenderingContext2DBase::imageSmoothingEnabled const): Ditto.
(WebCore::CanvasRenderingContext2DBase::font const): Ditto. The bulk of the function is
now in CanvasRenderingContext2DBase::State::fontString.
(WebCore::CanvasRenderingContext2DBase::textAlign const): Deleted.
(WebCore::CanvasRenderingContext2DBase::textBaseline const): Deleted.
(WebCore::CanvasRenderingContext2DBase::canDrawText): Renamed from canDrawTextWithParams,
since the fact that a function has parameters doesn't need to be part of its name.
(WebCore::CanvasRenderingContext2DBase::normalizeSpaces): Use a return value instead of
an in/out argument for better clarity. This also matches the needs of all the call sites.
(WebCore::CanvasRenderingContext2DBase::drawText): Updated for changes to canDrawText
and normalizeSpaces.
(WebCore::CanvasRenderingContext2DBase::measureTextInternal): Ditto.
- html/canvas/CanvasRenderingContext2DBase.h: Removed unneeded forward declarations.
Made the constructor protected. Moved the code for many simple getters here so they
can be inlined. The main call site is the JavaScript bindings. Removed unused getLineCap
and getLineJoin functions. Made the webkitBackingStorePixelRatio function static and
constexpr. Removed unused usesDisplayListDrawing function. Marked the FontProxy
class final. Removed the explicit copy constructor and assignment operator from the State
struct: letting the compiler generate it is better for our purposes. Made the state
function protected. Made most formerly-protected members private instead, since there
is no need for derived classes to use them. Made the enumeration CanvasDidDrawOption
into an enum class named DidDrawOption and use it with OptionSet instead of passing it
as an unsigned. Marked hasInvertibleTransform final instead of override.
- html/canvas/OffscreenCanvasRenderingContext2D.cpp:
(WebCore::OffscreenCanvasRenderingContext2D::setFont): Call usesCSSCompatibilityParseMode
so we don't have to get at private member m_usesCSSCompatibilityParseMode.
- html/canvas/OffscreenCanvasRenderingContext2D.h: Made isOffscreen2d private.
- html/canvas/PaintRenderingContext2D.h: Made isPaint private.
- inspector/InspectorCanvas.cpp:
(WebCore::InspectorCanvas::buildInitialState): When iterating the state stack, do not
get anything directly from the context, since it will give the value for the current
state, not the stack element we are iterating. Added a FIXME for the one case where
this was not easy to fix, "setPath", and left it broken as before.
- platform/graphics/ImageBufferBackend.cpp:
(WebCore::ImageBufferBackend::getImageData const): Removed unneeded null check for
the data. ImageData::create will return nullptr, not an object with nullptr for data.
- platform/graphics/Path.h: Use Function<void(GraphicsContext&)> instead of
StrkeStyleApplier.
- platform/graphics/StrokeStyleApplier.h: Removed.
- platform/graphics/cairo/PathCairo.cpp:
(WebCore::Path::strokeBoundingRect const): Use Function<void(GraphicsContext&)>.
(WebCore::Path::strokeContains const): Ditto.
- platform/graphics/cg/PathCG.cpp:
(WebCore::Path::strokeContains const): Ditto.
(WebCore::Path::strokeBoundingRect const): Ditto.
- platform/graphics/win/PathDirect2D.cpp:
(WebCore::Path::strokeContains const): Ditto.
(WebCore::Path::strokeBoundingRect const): Ditto.
- rendering/svg/RenderSVGResourceGradient.cpp:
(WebCore::RenderSVGResourceGradient::applyResource): Pass a reference to
SVGRenderSupport::applyStrokeStyleToContext instead of a pointer.
- rendering/svg/RenderSVGResourcePattern.cpp:
(WebCore::RenderSVGResourcePattern::applyResource): Ditto.
- rendering/svg/RenderSVGResourceSolidColor.cpp:
(WebCore::RenderSVGResourceSolidColor::applyResource): Ditto.
- rendering/svg/RenderSVGShape.cpp:
(WebCore::RenderSVGShape::shapeDependentStrokeContains): Use a lambda instead of
a StrokeStyleApplier object when calling strokeContainer.
(WebCore::RenderSVGShape::calculateStrokeBoundingBox const): Use a lambda instead
of a StrokeStyleApplier object when calling strokeBoundingRect.
- rendering/svg/SVGRenderSupport.cpp:
(WebCore::SVGRenderSupport::applyStrokeStyleToContext): Take a reference rather
than a pointer.
- rendering/svg/SVGRenderSupport.h: Updated for the above.
LayoutTests:
- inspector/canvas/recording-2d-frameCount-expected.txt: Update since the state stack value of
the direction property is now correctly saved.
- inspector/canvas/recording-2d-full-expected.txt: Ditto.
- inspector/canvas/recording-2d-memoryLimit-expected.txt: Ditto.
- inspector/canvas/recording-2d-saves-expected.txt: Updated.
- inspector/canvas/recording-2d-saves.html: Added tests of setting all the properties
that the inspector canvas state machinery serializes, rather than just testing fillStyle.
- inspector/canvas/resources/recording-2d.js:
(performSavePreActions.saveAndSet): Ditto.
(performSavePreActions): Ditto.
- 1:23 PM Changeset in webkit [274100] by
-
- 2 edits in trunk/Source/WebCore
[macCatalyst] Assertion Failed:
this.visiblein_pinchGestureRecognizerStateDidChange
https://bugs.webkit.org/show_bug.cgi?id=222927
<rdar://problem/75178415>
Reviewed by Eric Carlson.
- Modules/modern-media-controls/controls/ios-inline-media-controls.js:
(IOSInlineMediaControls.prototype.gestureRecognizerStateDidChange):
(IOSInlineMediaControls.prototype._pinchGestureRecognizerStateDidChange): Drive-by: Rename for clarity.
- 1:12 PM Changeset in webkit [274099] by
-
- 5 edits6 adds in trunk
Fix replaced element definiteness as a grid-item
https://bugs.webkit.org/show_bug.cgi?id=221337
Patch by Ziran Sun <Ziran Sun> on 2021-03-08
Reviewed by Javier Fernandez.
LayoutTests/imported/w3c:
The test is imported from WPT.
- web-platform-tests/css/css-grid/grid-items/percentage-size-indefinite-replaced-expected.html: Added.
- web-platform-tests/css/css-grid/grid-items/percentage-size-indefinite-replaced.html: Added.
- web-platform-tests/css/css-grid/grid-item-percentage-quirk-001-expected.html: Added.
- web-platform-tests/css/css-grid/grid-item-percentage-quirk-001.html: Added.
- web-platform-tests/css/css-grid/grid-item-percentage-quirk-002-expected.html: Added.
- web-platform-tests/css/css-grid/grid-item-percentage-quirk-002.html: Added.
Source/WebCore:
When resolving indefinite percentage sizes against an intrinsic size for replaced grid item, if 'height'
has a computed value of 'auto', and the element has an intrinsic ratio then the used value of 'height'is:
(used width) / (intrinsic ratio) according to http://www.w3.org/TR/CSS21/visudet.html#inline-replaced-height
(10.6.2 Inline, replaced elements).
This changes makes RenderReplaced::hasReplacedLogicalHeight to return false when a replaced grid-item
has an indefinite containing-block override logical-height. This is to make sure
RenderReplaced::computeReplacedLogicalHeight() handles cases described correctly.
It is an import of chromium CL at https://chromium-review.googlesource.com/c/chromium/src/+/2562558
This change only picks parts that is applicable for WebKit from the chromium CL. It also fix test
css/css-grid/grid-item-percentage-quirk-001.html in WPT.
Test: imported/w3c/web-platform-tests/css/css-grid/grid-items/percentage-size-indefinite-replaced.html
Test: imported/w3c/web-platform-tests/css/css-grid/grid-item-percentage-quirk-001.html
Test: imported/w3c/web-platform-tests/css/css-grid/grid-item-percentage-quirk-002.html
- rendering/RenderBoxModelObject.cpp:
(WebCore::RenderBoxModelObject::hasAutoHeightOrContainingBlockWithAutoHeight const):
- 1:12 PM Changeset in webkit [274098] by
-
- 12 edits in trunk/Source/WebCore
Unreviewed, reverting r274069.
Caused an assertion failure with
TestWebKitAPI.DocumentOrder.Positions
Reverted changeset:
"Allow creation of a CSSFontSelector with a non-Document
ScriptExecutionContext"
https://bugs.webkit.org/show_bug.cgi?id=222735
https://commits.webkit.org/r274069
- 1:09 PM Changeset in webkit [274097] by
-
- 2 edits in trunk/Tools
Move WebGL test bot to Big Sur
https://bugs.webkit.org/show_bug.cgi?id=222501
Unreviewed infrastructure fix.
- CISupport/build-webkit-org/config.json: Add missing architecture.
- 12:55 PM Changeset in webkit [274096] by
-
- 5 edits2 adds in trunk/Source/WebCore
Web Inspector: Grid overlay does not adjust for element transforms (rotation, scale, etc.)
https://bugs.webkit.org/show_bug.cgi?id=222565
Reviewed by BJ Burg & Devin Rousso.
Added support throughout the grid drawing code to support grids that have been translated/rotated/scaled by
passing all coordinates through therenderGrid's transform before drawing.
Relative directions/lengths throughout (e.g.
left,width, andcolumn) are expressed as if there was no
transform applied to the grid in order to help with readability and reasoning with the code in the future.
- Sources.txt:
- WebCore.xcodeproj/project.pbxproj:
- inspector/InspectorOverlay.cpp:
- Added variant that doesn't resize bounds as a side effect.
(WebCore::quadToPath):
(WebCore::InspectorOverlay::drawLayoutHatching):
- Support drawing hatching in a
FloatQuadinstead of aFloatRect.
(WebCore::InspectorOverlay::drawGridOverlay):
- Use the
renderGridto transform known points into drawing coordinates. - inspector/InspectorOverlay.h:
- platform/graphics/FloatLine.cpp: Added.
(WebCore::FloatLine::pointAtAbsoluteDistance const):
- Finds the point that is the given absolute distance from the start point. The distance may be less than 0 or
greater than the length of the line.
(WebCore::FloatLine::pointAtRelativeDistance const):
- Finds the point that is the given relative distance from the start point, where 0 is the start point and 1.0
is the end point. The distance may be less than zero or greater than 1.
(WebCore::FloatLine::extendedToBounds const):
- Creates a new
FloatLinethat at least covers the provided bounds such that the new line's points will either
be outside or on the bounds.
(WebCore::FloatLine::intersectionWith const):
- Finds the
FloatPointat the intersection of thisFloatLineand anotherFloatLine. - platform/graphics/FloatLine.h: Added.
- Introduced FloatLine class to store two points that conceptually form a line.
(WebCore::FloatLine::FloatLine):
(WebCore::FloatLine::start const):
(WebCore::FloatLine::end const):
(WebCore::FloatLine::length const):
- 12:33 PM Changeset in webkit [274095] by
-
- 2 edits in trunk/Tools
[run-webkit-tests] Delete old results server code (Follow-up)
https://bugs.webkit.org/show_bug.cgi?id=222393
<rdar://problem/74722220>
Unreviewed follow-up fix.
- Scripts/webkitpy/layout_tests/run_webkit_tests.py:
(parse_args): Re-add allowed-host.
- 12:33 PM Changeset in webkit [274094] by
-
- 3 edits in trunk/Source/WebCore
Make sure AudioDestination::hardwareSampleRate() returns a valid sample rate
https://bugs.webkit.org/show_bug.cgi?id=222915
Reviewed by Eric Carlson.
Make sure AudioDestination::hardwareSampleRate() returns a valid sample rate. Returning a sample
rate of 0 would end up doing bad things because WebAudio code sometimes needs to divide values
by the sample rate.
- Modules/webaudio/DefaultAudioDestinationNode.cpp:
(WebCore::DefaultAudioDestinationNode::DefaultAudioDestinationNode):
Add assertion to make sure the hardware sample rate is valid.
- platform/audio/mac/AudioSessionMac.mm:
(WebCore::AudioSession::sampleRate const):
Log an error message and return 44100 as sample rate in case of error, instead of 0.
- 12:29 PM Changeset in webkit [274093] by
-
- 2 edits in trunk/Source/WebCore
Don't override previously found IDL files in the bindings generator
https://bugs.webkit.org/show_bug.cgi?id=222922
Reviewed by Sam Weinig.
If the same IDL file exists in
- $(BUILT_PRODUCTS_DIR)/usr/local/include/WebKitAdditions
- $(SDKROOT)/usr/local/include/WebKitAdditions
- $(WebCore)/*/*.idl
then
IDLFileForInterfaceshould return the first one found, not the last one found.
- bindings/scripts/CodeGenerator.pm:
(IDLFileForInterface):
- 12:18 PM Changeset in webkit [274092] by
-
- 2 edits in trunk/Source/WebCore
Localizable.string.txt fix
https://bugs.webkit.org/show_bug.cgi?id=222025
rdar://74262934
Reviewed by Tim Horton.
- DerivedSources.make:
- 12:16 PM Changeset in webkit [274091] by
-
- 7 edits2 adds in trunk
Trackpad scrolling in the web inspector timeline is broken
https://bugs.webkit.org/show_bug.cgi?id=222853
rdar://73509018
Reviewed by Sam Weinig.
Source/WebCore:
Commit r266333 or thereabouts broke trackpad scrolling in the inspector timeline.
This scrolling works via a wheel event handler on a non-scrollable element that
dispatches a copy of the wheel event to a proxy overflow:scroll in script. This
broke the default wheel event handling path.
Fix by having EventHandler::defaultWheelEventHandler() only respect latching and
m_currentWheelEventAllowsScrolling (which is set based on WheelEventProcessingSteps
from the scrolling thread) for user events, i.e. those with an underlying native event.
Also make Event loggable, and add some braces.
Test: fast/events/wheel/redispatched-wheel-event.html
- dom/Event.cpp:
(WebCore::Event::debugDescription const):
(WebCore::operator<<):
- dom/Event.h:
- dom/EventDispatcher.cpp:
(WebCore::EventDispatcher::dispatchEvent):
- dom/Node.cpp:
(WebCore::Node::defaultEventHandler): This clause needs braces.
- page/EventHandler.cpp:
(WebCore::EventHandler::defaultWheelEventHandler):
LayoutTests:
- fast/events/wheel/redispatched-wheel-event-expected.txt: Added.
- fast/events/wheel/redispatched-wheel-event.html: Added.
- 12:10 PM Changeset in webkit [274090] by
-
- 8 edits in branches/safari-611.1.21.1-branch/Source
Versioning.
WebKit-7611.1.21.1.6
- 12:09 PM Changeset in webkit [274089] by
-
- 7 edits in trunk/Source
[WinCairo] Builds with ENABLE_CONTEXT_MENUS=OFF fail
https://bugs.webkit.org/show_bug.cgi?id=222771
Reviewed by Don Olmstead.
Build fix for turning off context menus adding ifdefs as necessary.
Source/WebKit:
- UIProcess/win/PageClientImpl.h:
- UIProcess/win/WebView.cpp:
Source/WebKitLegacy/win:
- WebCoreSupport/WebContextMenuClient.cpp:
- WebCoreSupport/WebContextMenuClient.h:
- WebView.cpp:
- 11:55 AM Changeset in webkit [274088] by
-
- 2 edits in trunk/LayoutTests
[GTK] avif tests failing
https://bugs.webkit.org/show_bug.cgi?id=222882
Reviewed by Philippe Normand.
Skip avif related tests since the avif support is disabled as default.
We will enable them when activating the avif support as default.
- platform/gtk/TestExpectations:
- 11:51 AM Changeset in webkit [274087] by
-
- 29 edits1 move in trunk
PCM: Align fraud prevention token naming with issue 73 in the Privacy CG repo
https://bugs.webkit.org/show_bug.cgi?id=222838
<rdar://75115427>
Reviewed by Brent Fulgham.
This patch doesn't change functionality and only aligns naming to this W3C Privacy CG issue:
https://github.com/privacycg/private-click-measurement/issues/73
Source/WebCore:
Naming for PCM fraud prevention is updated like this:
/.well-known/private-click-measurement/sign-secret-token/ changed to
/.well-known/private-click-measurement/sign-unlinkable-token/
/.well-known/private-click-measurement/get-unlinkable-token-public-key/ changed to
/.well-known/private-click-measurement/get-token-public-key/
source_secret_token in requests for token signature changed to source_unlinkable_token
source_unlinkable_token in attribution reports changed to source_secret_token
Variable, member, and function names are being renamed similarly.
- loader/PrivateClickMeasurement.cpp:
(WebCore::PrivateClickMeasurement::attributionReportJSON const):
(WebCore::PrivateClickMeasurement::tokenSignatureJSON const):
(WebCore::PrivateClickMeasurement::setSourceSecretToken):
(WebCore::PrivateClickMeasurement::SourceSecretToken::isValid const):
(WebCore::PrivateClickMeasurement::setSourceUnlinkableToken): Deleted.
(WebCore::PrivateClickMeasurement::SourceUnlinkableToken::isValid const): Deleted.
- loader/PrivateClickMeasurement.h:
(WebCore::PrivateClickMeasurement::setSourceUnlinkableTokenValue):
(WebCore::PrivateClickMeasurement::sourceUnlinkableToken const):
(WebCore::PrivateClickMeasurement::setSourceSecretTokenValue): Deleted.
- loader/cocoa/PrivateClickMeasurementCocoa.mm:
(WebCore::PrivateClickMeasurement::calculateAndUpdateSourceUnlinkableToken):
(WebCore::PrivateClickMeasurement::calculateAndUpdateSourceSecretToken):
Source/WebKit:
Naming for PCM fraud prevention is updated like this:
/.well-known/private-click-measurement/sign-secret-token/ changed to
/.well-known/private-click-measurement/sign-unlinkable-token/
/.well-known/private-click-measurement/get-unlinkable-token-public-key/ changed to
/.well-known/private-click-measurement/get-token-public-key/
source_secret_token in requests for token signature changed to source_unlinkable_token
source_unlinkable_token in attribution reports changed to source_secret_token
Variable, member, and function names are being renamed similarly.
- NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp:
(WebKit::ResourceLoadStatisticsDatabaseStore::buildPrivateClickMeasurementFromDatabase):
- NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::setPCMFraudPreventionValuesForTesting):
(WebKit::NetworkProcess::setFraudPreventionValuesForTesting): Deleted.
Renamed setPCMFraudPreventionValuesForTesting() to make it more clear.
- NetworkProcess/NetworkProcess.h:
- NetworkProcess/NetworkProcess.messages.in:
- NetworkProcess/NetworkSession.cpp:
(WebKit::NetworkSession::setPCMFraudPreventionValuesForTesting):
(WebKit::NetworkSession::setFraudPreventionValuesForTesting): Deleted.
Renamed setPCMFraudPreventionValuesForTesting() to make it more clear.
- NetworkProcess/NetworkSession.h:
- NetworkProcess/PrivateClickMeasurementManager.cpp:
(WebKit::PrivateClickMeasurementManager::storeUnattributed):
(WebKit::PrivateClickMeasurementManager::getTokenPublicKey):
(WebKit::PrivateClickMeasurementManager::getSignedUnlinkableToken):
(WebKit::PrivateClickMeasurementManager::setPCMFraudPreventionValuesForTesting):
(WebKit::PrivateClickMeasurementManager::getSignedSecretToken): Deleted.
(WebKit::PrivateClickMeasurementManager::setFraudPreventionValuesForTesting): Deleted.
Renamed setPCMFraudPreventionValuesForTesting() to make it more clear.
- NetworkProcess/PrivateClickMeasurementManager.h:
- UIProcess/API/C/WKPage.cpp:
(WKPageSetPCMFraudPreventionValuesForTesting):
(WKPageSetFraudPreventionValuesForTesting): Deleted.
Renamed WKPageSetPCMFraudPreventionValuesForTesting() to make it more clear.
- UIProcess/API/C/WKPagePrivate.h:
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::setPCMFraudPreventionValuesForTesting):
(WebKit::WebPageProxy::setFraudPreventionValuesForTesting): Deleted.
Renamed setPCMFraudPreventionValuesForTesting() to make it more clear.
- UIProcess/WebPageProxy.h:
Tools:
Naming for PCM fraud prevention is updated like this:
/.well-known/private-click-measurement/sign-secret-token/ changed to
/.well-known/private-click-measurement/sign-unlinkable-token/
/.well-known/private-click-measurement/get-unlinkable-token-public-key/ changed to
/.well-known/private-click-measurement/get-token-public-key/
source_secret_token in requests for token signature changed to source_unlinkable_token
source_unlinkable_token in attribution reports changed to source_secret_token
Variable, member, and function names are being renamed similarly.
- TestWebKitAPI/Tests/WebCore/PrivateClickMeasurement.cpp:
(TestWebKitAPI::TEST):
- TestWebKitAPI/Tests/WebCore/cocoa/PrivateClickMeasurementCocoa.mm:
(TestWebKitAPI::TEST):
- WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl:
- WebKitTestRunner/InjectedBundle/TestRunner.cpp:
(WTR::TestRunner::setPrivateClickMeasurementFraudPreventionValuesForTesting):
(WTR::TestRunner::setFraudPreventionValuesForTesting): Deleted.
- WebKitTestRunner/InjectedBundle/TestRunner.h:
- WebKitTestRunner/TestController.cpp:
(WTR::TestController::setPCMFraudPreventionValuesForTesting):
(WTR::TestController::setFraudPreventionValuesForTesting): Deleted.
- WebKitTestRunner/TestController.h:
- WebKitTestRunner/TestInvocation.cpp:
(WTR::TestInvocation::didReceiveSynchronousMessageFromInjectedBundle):
LayoutTests:
- http/tests/privateClickMeasurement/resources/fraudPreventionTestURL.php: Renamed from LayoutTests/http/tests/privateClickMeasurement/resources/signToken.php.
The way this PHP file is used goes beyond signing tokens so it now has a generic name.
- http/tests/privateClickMeasurement/store-private-click-measurement-with-source-nonce-expected.txt:
Re-baselined to reflect the new naming.
- http/tests/privateClickMeasurement/store-private-click-measurement-with-source-nonce.html:
- 11:36 AM Changeset in webkit [274086] by
-
- 8 edits in branches/safari-611.1.21.0-branch/Source
Versioning.
WebKit-7611.1.21.0.5
- 11:12 AM Changeset in webkit [274085] by
-
- 2 edits in trunk/Source/WebKit
[iOS] <select multiple> group headers are illegible in dark mode
https://bugs.webkit.org/show_bug.cgi?id=222914
<rdar://problem/75020326>
Reviewed by Tim Horton.
- UIProcess/ios/forms/WKFormSelectPicker.mm:
(-[WKSelectPickerTableViewController tableView:heightForHeaderInSection:]):
Do not specify a textColor for the header label. This ensures the default
semantic label color is used, which automatically adapts when dark mode
is enabled.
- 11:12 AM Changeset in webkit [274084] by
-
- 26 edits1 delete in trunk/Tools
[resultsdbpy] Adopt webkitscmpy
https://bugs.webkit.org/show_bug.cgi?id=222754
<rdar://problem/75049209>
Reviewed by Dewei Zhu.
Adopting webkitscmpy's remote repositories requires using the unit testing paradigms from
those objects, which requires considerable adjustment of testing code.
- Scripts/libraries/resultsdbpy/resultsdbpy/init.py: Bump version, include webkitscmpy.
- Scripts/libraries/resultsdbpy/resultsdbpy/controller/archive_controller_unittest.py:
- Scripts/libraries/resultsdbpy/resultsdbpy/controller/ci_controller_unittest.py:
- Scripts/libraries/resultsdbpy/resultsdbpy/controller/commit_controller.py:
(CommitController.register): Use webkitscmpy's exceptions.
- Scripts/libraries/resultsdbpy/resultsdbpy/controller/commit_controller_unittest.py:
(CommitControllerTest.test_register_via_post): Deleted.
- Scripts/libraries/resultsdbpy/resultsdbpy/controller/failure_controller_unittest.py:
- Scripts/libraries/resultsdbpy/resultsdbpy/controller/suite_controller_unittest.py:
- Scripts/libraries/resultsdbpy/resultsdbpy/controller/test_controller_unittest.py:
- Scripts/libraries/resultsdbpy/resultsdbpy/controller/upload_controller_unittest.py:
- Scripts/libraries/resultsdbpy/resultsdbpy/model/archive_context_unittest.py:
- Scripts/libraries/resultsdbpy/resultsdbpy/model/ci_context_unittest.py:
- Scripts/libraries/resultsdbpy/resultsdbpy/model/commit_context.py:
(CommitContext.branch_keys_for_commits):
(CommitContext.find_commits_by_id): default_branch is now an instance variable.
(CommitContext.find_commits_by_uuid): Ditto.
(CommitContext.find_commits_by_timestamp): Ditto.
(CommitContext.find_commits_in_range): Ditto.
(CommitContext.sibling_commits): Ditto.
(CommitContext.register_commit_with_repo_and_id): webkitscmpy repositories compute branch.
- Scripts/libraries/resultsdbpy/resultsdbpy/model/commit_context_unittest.py:
- Scripts/libraries/resultsdbpy/resultsdbpy/model/failure_context_unittest.py:
- Scripts/libraries/resultsdbpy/resultsdbpy/model/mock_model_factory.py:
(MockModelFactory):
(MockModelFactory.safari): Use shared webkitscmpy mocks.
(MockModelFactory.webkit): Ditto.
(MockModelFactory.create): Timestamps in webkitscmpy are just integers.
(MockModelFactory.iterate_all_commits): webkitscmpy and resultsdbpy have slightly different
commit representations, so the mechanics of registering commits are different.
- Scripts/libraries/resultsdbpy/resultsdbpy/model/mock_repository.py: Removed.
- Scripts/libraries/resultsdbpy/resultsdbpy/model/model_unittest.py:
- Scripts/libraries/resultsdbpy/resultsdbpy/model/repository.py:
(Repository):
(Repository.init): default_branch is now an instance variable.
(Repository.commit_for_id): webkitscmpy does not require the branch, given a hash or revision.
(StashRepository): Retrieve commit from webkitscmpy's remote BitBucket object.
(WebKitRepository): Hard-code WebKit's Subversion URL. This is temporary, since WebKit will shortly
become a GitHub repository.
(SCMException): Deleted.
(HTTPRepository): Deleted.
(SVNRepository): Deleted.
(WebKitRepository.commit_for_id.diff_changelogs): Deleted.
- Scripts/libraries/resultsdbpy/resultsdbpy/model/repository_unittest.py:
- Scripts/libraries/resultsdbpy/resultsdbpy/model/suite_context_unittest.py:
- Scripts/libraries/resultsdbpy/resultsdbpy/model/test_context_unittest.py:
- Scripts/libraries/resultsdbpy/resultsdbpy/model/upload_context_unittest.py:
- Scripts/libraries/resultsdbpy/resultsdbpy/view/archive_view_unittest.py:
- Scripts/libraries/resultsdbpy/resultsdbpy/view/commit_view_unittest.py:
- Scripts/libraries/resultsdbpy/resultsdbpy/view/view_routes_unittest.py:
- Scripts/libraries/resultsdbpy/setup.py: Bump version.
- 11:07 AM Changeset in webkit [274083] by
-
- 2 edits in trunk/LayoutTests
REGRESSION (r269627?): ASSERTION FAILED: &layoutState().establishedFormattingState(layoutBox.formattingContextRoot()) == this in WebCore::Layout::FormattingState::boxGeometry
https://bugs.webkit.org/show_bug.cgi?id=219905
Unreviewed test gardening.
- platform/mac-wk2/TestExpectations: Skip the test.
- 11:07 AM Changeset in webkit [274082] by
-
- 2 edits in trunk/LayoutTests
REGRESSION (r272842): [iOS] security/contentSecurityPolicy/video-with-data-url-allowed-by-media-src-star.html is consistently failing
https://bugs.webkit.org/show_bug.cgi?id=222840
Unreviewed test gardening.
- platform/ios/TestExpectations: Mark test as failing.
- 11:04 AM Changeset in webkit [274081] by
-
- 2 edits in trunk/Source/WebKit
Simplify CallbackAggregator in WebsiteDataStore::removeData()
https://bugs.webkit.org/show_bug.cgi?id=222837
Reviewed by Geoffrey Garen.
Simplify CallbackAggregator in WebsiteDataStore::removeData(). We don't need an explicit
counter data member or explicit calls to addPendingCallback() / removePendingCallback().
We can simply rely on the ref count of the CallbackAggregator.
- UIProcess/WebsiteData/WebsiteDataStore.cpp:
(WebKit::WebsiteDataStore::removeData):
- 10:09 AM Changeset in webkit [274080] by
-
- 14 edits in trunk/Tools
[webkitscmpy] Add repository_id
https://bugs.webkit.org/show_bug.cgi?id=222827
<rdar://problem/75111000>
Reviewed by Dewei Zhu.
- Scripts/libraries/webkitscmpy/setup.py: Bump version.
- Scripts/libraries/webkitscmpy/webkitscmpy/init.py: Ditto.
- Scripts/libraries/webkitscmpy/webkitscmpy/commit.py:
(Commit.Encoder.default): Add repository_id.
(Commit.init): Ditto.
- Scripts/libraries/webkitscmpy/webkitscmpy/local/git.py:
(Git.init): Allow caller to specify repository id.
(Git.commit): Pass repository id to commit.
- Scripts/libraries/webkitscmpy/webkitscmpy/local/scm.py:
(Scm.init): Allow caller to specify repository id.
- Scripts/libraries/webkitscmpy/webkitscmpy/local/svn.py:
(Svn.init): Allow caller to specify repository id.
(Svn.commit): Pass repository id to commit.
- Scripts/libraries/webkitscmpy/webkitscmpy/remote/bitbucket.py:
(BitBucket.init): Allow caller to specify repository id, infer from url.
(BitBucket.commit): Pass repository id to commit.
- Scripts/libraries/webkitscmpy/webkitscmpy/remote/git_hub.py:
(GitHub.init): Allow caller to specify repository id, infer from url.
(GitHub.commit): Pass repository id to commit.
- Scripts/libraries/webkitscmpy/webkitscmpy/remote/scm.py:
(Scm.init): Allow caller to specify repository id.
- Scripts/libraries/webkitscmpy/webkitscmpy/remote/svn.py:
(Svn.init): Allow caller to specify repository id, infer from url.
(Svn.commit): Pass repository id to commit.
- Scripts/libraries/webkitscmpy/webkitscmpy/scm_base.py:
(ScmBase.init): Allow caller to specify repository id.
- Scripts/libraries/webkitscmpy/webkitscmpy/test/git_unittest.py:
(TestGitHub.test_id):
(TestBitBucket.test_id):
- Scripts/libraries/webkitscmpy/webkitscmpy/test/svn_unittest.py:
(TestRemoteSvn.test_id):
- 10:05 AM Changeset in webkit [274079] by
-
- 3 edits in trunk/Tools
webkitbot should stop saying "<revision> broke the build" when we revert commits
https://bugs.webkit.org/show_bug.cgi?id=222906
Patch by Michael Catanzaro <Michael Catanzaro> on 2021-03-08
Reviewed by Jonathan Bedard.
Instead of saying the patch "broke the build," let's say it "introduced a regression." This
is more generic, since we revert patches for lots of reasons that are not build failures.
Build failures count as regressions.
- Scripts/webkitpy/tool/commands/download.py:
(CreateRevert._prepare_state):
- Scripts/webkitpy/tool/commands/download_unittest.py:
- 10:02 AM Changeset in webkit [274078] by
-
- 2 edits in trunk/LayoutTests
[Web Animations] imported/w3c/web-platform-tests/css/css-transitions/before-load-001.html is a failure
https://bugs.webkit.org/show_bug.cgi?id=203416
Unreviewed.
This test now passes reliably on iOS according to
https://results.webkit.org/?suite=layout-tests&test=imported%2Fw3c%2Fweb-platform-tests%2Fcss%2Fcss-transitions%2Fbefore-load-001.html
- platform/ios/TestExpectations:
- 9:56 AM Changeset in webkit [274077] by
-
- 3 edits2 deletes in trunk/LayoutTests
Unreviewed. Remove a test supporting code that was removed from the WPT suite (see issue #27923).
LayoutTests/imported/w3c:
- web-platform-tests/css/css-transitions/properties-value-auto-001-expected.txt: Removed.
- web-platform-tests/css/css-transitions/properties-value-auto-001.html: Removed.
- web-platform-tests/css/css-transitions/support/properties.js:
(values.string_appeared_here):
(root.getAutoPropertyTests): Deleted.
LayoutTests:
- platform/glib/TestExpectations:
- platform/ios/TestExpectations:
- 9:51 AM Changeset in webkit [274076] by
-
- 9 edits in trunk
[GPUP] Some media tests related to canvas fail when media in GPU Process is enabled
https://bugs.webkit.org/show_bug.cgi?id=221820
Reviewed by Jer Noble.
Source/WebCore:
When "GPU Process: Media" is enabled and "GPU Process: Canvas Rendering" is disabled,
MediaPlayerPrivateAVFoundationObjC::nativeImageForCurrentTime()will be called
to get native images (video frames) from a video player. This function will copy
pixel buffers from CoreVideo, and we may need to rotate the pixel buffers before
converting them to native images. The process to copy pixel buffers from CoreVideo
and rotate them is implemented inMediaPlayerPrivateAVFoundationObjC::updateLastPixelBuffer().
It rotates pixel buffers with anImageRotationSessionVTobject (m_imageRotationSession).
With the current implementation of
ImageRotationSessionVT, we can rotate pixel buffers
with following two approaches:
- Construct an uninitialized instance, and call `ImageRotationSessionVT::rotate(
MediaSample&, const RotationProperties&, IsCGImageCompatible)
. Therotate` function
will initialize the object if needed.
- Construct an instance with given rotation properties, size, pixel buffer format,
and CGImage compatibility, then call
ImageRotationSessionVT::rotate(CVPixelBufferRef).
When we call therotatefunction, we need to make sure the pixel buffer's format
is consistent with theImageRotationSessionVTinstance. Otherwise, the rotation will
fail and the caller will get an empty pixel buffer (this bug).
In order to use the second approach in
MediaPlayerPrivateAVFoundationObjC, we need to
figure out the pixel buffer format to construct an ImageRotationSessionVT instance.
But that can only be done after we get a pixel buffer from CoreVideo.
This patch refactors
ImageRotationSessionVTto better support the aforementioned
second approach.MediaPlayerPrivateAVFoundationObjCconstructs anImageRotationSessionVT
instance without pixel buffer format, and theImageRotationSessionVTinstance
will figure out the pixel buffer format by itself and configures itsCVPixelBufferPool
properly when we callrotatefunction.
No new tests. Fix a test failure:
- media/video-orientation-canvas.html
- platform/graphics/avfoundation/objc/ImageDecoderAVFObjC.mm:
(WebCore::ImageDecoderAVFObjC::readTrackMetadata):
- platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
(WebCore::MediaPlayerPrivateAVFoundationObjC::updateRotationSession):
(WebCore::MediaPlayerPrivateAVFoundationObjC::nativeImageForCurrentTime):
We have to update the image synchronously to ensure that the caller gets the correct image.
- platform/graphics/cv/ImageRotationSessionVT.h:
Remove isMatching() because it is not defined/used.
- platform/graphics/cv/ImageRotationSessionVT.mm:
(WebCore::ImageRotationSessionVT::ImageRotationSessionVT):
(WebCore::ImageRotationSessionVT::initialize):
(WebCore::ImageRotationSessionVT::rotate):
- platform/mediastream/mac/RealtimeOutgoingVideoSourceCocoa.mm:
(WebCore::RealtimeOutgoingVideoSourceCocoa::rotatePixelBuffer):
LayoutTests:
- media/video-orientation-canvas.html:
- platform/wk2/TestExpectations:
- 9:27 AM Changeset in webkit [274075] by
-
- 2 edits in trunk/LayoutTests
REGRESSION: [iOS] http/tests/security/strip-referrer-to-origin-for-third-party-redirects-in-private-mode.html is failing
https://bugs.webkit.org/show_bug.cgi?id=222823
<rdar://problem/75133450>
Reviewed by Darin Adler.
- http/tests/security/strip-referrer-to-origin-for-third-party-redirects-in-private-mode.html:
- 8:57 AM Changeset in webkit [274074] by
-
- 14 edits in trunk/Source
Remove quirks for the no longer supported iAd Producer
https://bugs.webkit.org/show_bug.cgi?id=222894
Reviewed by Chris Dumez.
Source/WebCore:
Remove two quirks that were only for iAd Producer, which is no longer
supported on the latest macOS operating systems.
By removing one quirk, we can also remove some indirection in CSSStyleDeclaration.
- bindings/scripts/CodeGeneratorJS.pm:
(GenerateAttributeSetterBodyDefinition):
- bindings/scripts/test/JS/JSTestCSSProperty.cpp:
(WebCore::setJSTestCSSProperty_propertySetter):
- css/CSSStyleDeclaration.cpp:
(WebCore::CSSStyleDeclaration::setNamedItem):
(WebCore::CSSStyleDeclaration::setPropertyValueInternal): Deleted.
- css/CSSStyleDeclaration.h:
- loader/DocumentLoader.cpp:
(WebCore::DocumentLoader::isLoadingInAPISense const):
- page/DeprecatedGlobalSettings.cpp:
(WebCore::DeprecatedGlobalSettings::setShouldRespectPriorityInCSSAttributeSetters): Deleted.
(WebCore::DeprecatedGlobalSettings::shouldRespectPriorityInCSSAttributeSetters): Deleted.
- page/DeprecatedGlobalSettings.h:
Source/WebKitLegacy/mac:
Remove two quirks that were only for iAd Producer, which is no longer
supported on the latest macOS operating systems.
- WebView/WebPreferencesDefaultValues.h:
- WebView/WebPreferencesDefaultValues.mm:
(WebKit::defaultNeedsIsLoadingInAPISenseQuirk): Deleted.
- WebView/WebView.mm:
(-[WebView _commonInitializationWithFrameName:groupName:]):
(shouldRespectPriorityInCSSAttributeSetters): Deleted.
Source/WTF:
- Scripts/Preferences/WebPreferences.yaml:
Remove NeedsIsLoadingInAPISenseQuirk preference which only existed to enable
a quirk for iAd Producer.
- 8:27 AM WebKitGTK/Debugging edited by
- (diff)
- 8:05 AM WebKitGTK/2.32.x edited by
- (diff)
- 8:01 AM Changeset in webkit [274073] by
-
- 2 edits in trunk/Source/WebCore
Unreviewed, reverting r273197.
https://bugs.webkit.org/show_bug.cgi?id=222909
Revert of r273084 broke building on Linux platforms
Reverted changeset:
"Remove unused isGoogle function"
https://bugs.webkit.org/show_bug.cgi?id=222227
https://trac.webkit.org/changeset/273197
- 7:28 AM Changeset in webkit [274072] by
-
- 4 edits in trunk/LayoutTests
[Web Animations] Some tests under web-animations/timing-model/animations are ImageOnlyFailure
https://bugs.webkit.org/show_bug.cgi?id=207260
Reviewed by Sam Weinig.
These three tests have been passing reliably on most plaforms for a while now and should no longer
be marked as ImageOnlyFailure:
- imported/w3c/web-platform-tests/web-animations/timing-model/animations/reverse-running-animation.html
- imported/w3c/web-platform-tests/web-animations/timing-model/animations/update-playback-rate-fast.html
- imported/w3c/web-platform-tests/web-animations/timing-model/animations/update-playback-rate-slow.html
The first of those three tests is still an ImageOnlyFailure on GTK and WPE, so we add that expectation
to the platform-specific files.
- TestExpectations:
- platform/gtk/TestExpectations:
- platform/wpe/TestExpectations:
- 7:20 AM Changeset in webkit [274071] by
-
- 2 edits in trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-backgrounds/animations
Unreviewed. Update border-width interpolation test after WPT PR #27934.
- web-platform-tests/css/css-backgrounds/animations/border-width-interpolation-expected.txt:
- web-platform-tests/css/css-backgrounds/animations/border-width-interpolation.html:
- 6:45 AM WebKitGTK/2.32.x edited by
- (diff)
- 6:38 AM Changeset in webkit [274070] by
-
- 5 edits in trunk
Unreviewed, reverting r273084.
https://bugs.webkit.org/show_bug.cgi?id=222905
User agent quirks still needed after all
Reverted changeset:
"[GTK] Remove all Google user agent quirks except for Google
Docs"
https://bugs.webkit.org/show_bug.cgi?id=222039
https://trac.webkit.org/changeset/273084
- 5:53 AM Changeset in webkit [274069] by
-
- 12 edits in trunk/Source/WebCore
Allow creation of a CSSFontSelector with a non-Document ScriptExecutionContext
https://bugs.webkit.org/show_bug.cgi?id=222735
Reviewed by Darin Adler.
Replace Document member of CSSFontSelector with a ScriptExecutionContext.
This also changes make_names.pl string header generation to allow for easier enumeration of font family strings.
No new tests as new behaviour is currently unused. Existing behaviour covered by existing tests.
- bindings/scripts/StaticString.pm:
(GenerateStrings): Revert change from bug 222552
- css/CSSFontSelector.cpp:
(WebCore::CSSFontSelector::CSSFontSelector):
(WebCore::m_version):
(WebCore::CSSFontSelector::fontFaceSet):
(WebCore::CSSFontSelector::addFontFaceRule):
(WebCore::CSSFontSelector::fontStyleUpdateNeeded):
(WebCore::CSSFontSelector::resolveGenericFamily):
(WebCore::CSSFontSelector::fontRangesForFamily):
(WebCore::CSSFontSelector::stopLoadingAndClearFonts):
(WebCore::CSSFontSelector::beginLoadingFontSoon):
(WebCore::CSSFontSelector::loadPendingFonts):
(WebCore::CSSFontSelector::fontLoadingTimerFired):
(WebCore::CSSFontSelector::fallbackFontCount):
(WebCore::CSSFontSelector::fallbackFontAt):
- css/CSSFontSelector.h:
- css/FontFaceSet.cpp:
(WebCore::FontFaceSet::create):
(WebCore::FontFaceSet::FontFaceSet):
- css/FontFaceSet.h:
- css/FontFaceSet.idl:
- dom/Document.h:
- dom/ScriptExecutionContext.h:
- dom/make_names.pl:
(printNamesHeaderFile): Make global string data and names accessible via a Vector and add an enum of name indices.
- platform/graphics/FontGenericFamilies.cpp:
(WebCore:: const):
- platform/graphics/FontGenericFamilies.h:
- 4:37 AM Changeset in webkit [274068] by
-
- 6 edits in trunk
Support aspect-ratio in intrinsic sizing
https://bugs.webkit.org/show_bug.cgi?id=220861
Patch by Rob Buis <rbuis@igalia.com> on 2021-03-08
Reviewed by Antti Koivisto.
Source/WebCore:
Support aspect-ratio in intrinsic sizing calculations.
The values min-content/max-content/fit-content
get set a value through aspect-ratio [1].
However min-width:auto is special, it should take content
into account [2]. In order to support this, compute
logical (intrinsic) width using MinIntrinsic, since staying
with MinContent/MaxContent would cause an infinite loop.
Behavior matches Firefox and Chrome.
[1] https://www.w3.org/TR/css-sizing-4/#propdef-aspect-ratio
[2] https://www.w3.org/TR/css-sizing-4/#aspect-ratio-minimum
- rendering/RenderBlock.cpp:
(WebCore::RenderBlock::computePreferredLogicalWidths):
Compute child min/max pref widths from aspect-ratio if it applies.
- rendering/RenderBox.cpp:
(WebCore::RenderBox::constrainLogicalWidthInFragmentByMinMax const):
Add an allowIntrinsic parameter to prevent recursion.
(WebCore::RenderBox::computeIntrinsicLogicalWidthUsing const):
Compute intrinsic logical width from aspect ratio if possible.
(WebCore::RenderBox::computeLogicalWidthInFragmentUsing const):
(WebCore::RenderBox::shouldComputeLogicalHeightFromAspectRatio const):
min/max/fit-content in the block axis is treated as auto.
(WebCore::RenderBox::computeLogicalWidthFromAspectRatio const):
Prevent recursion by passing false for allowIntrinsic.
- rendering/RenderBox.h:
LayoutTests:
Enable tests that pass now.
- 3:55 AM Changeset in webkit [274067] by
-
- 2 edits in trunk/Source/WebCore
[Web Animations] Don't update animation playback rate if timeline is inactive
https://bugs.webkit.org/show_bug.cgi?id=222839
Patch by Ian Gilbert <iang@apple.com> on 2021-03-08
Reviewed by Antoine Quint.
An inactive timeline will return
WTF::nulloptfor an unresolved time value.
Added nullopt check to abort setting playback rate when we cannot calculate a new start time.
No new tests as reproducing requires navigating to a new document while updating the playback
rate and I was unable to make a reliable test case.
- animation/WebAnimation.cpp:
(WebCore::WebAnimation::updatePlaybackRate):
- 2:43 AM Changeset in webkit [274066] by
-
- 19 edits4 adds in trunk
WebGL asserts after GPU process times out
https://bugs.webkit.org/show_bug.cgi?id=222546
Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2021-03-08
Reviewed by Wenson Hsieh.
Source/WebCore:
Add a trigger internals.simulateEventForWebGLContext("timeout", context)
to trigger timeout for calls to a WebGL context.
Tests: fast/canvas/webgl/lose-context-on-timeout-async.html
fast/canvas/webgl/lose-context-on-timeout.html
- testing/Internals.cpp:
(WebCore::Internals::simulateEventForWebGLContext):
Source/WebKit:
IPC::StreamClientConnection::tryAcquire would assert on
ASSERT(untrustedLimit < (dataSize() - 1));
The untrustedLimit value would be then:
StreamConnectionBuffer::serverOffsetClientIsWaitingTag.
This would be equivalent of assertion added in this commit:
ASSERT(clientLimit != ClientLimit::clientIsWaitingTag);
This would happen in case of timeout, because upon entering
the wait sequence:
1) The client itself would first write the tag value to the
offset variable.
2) Wait and timeout the wait.
3) run the next iteration of the acquire loop.
The next iteration would load the tag value written before,
e.g. serverOffsetClientIsWaitingTag.
This would be then used in clampedLimit() call.
Fix this by taking it into account that the variable might be
ClientLimit::clientIsWaitingTag within the acquire loop.
Possibly fix future similar problems by not treating the value as
size_t, rather treat it as enum class ClientOffset : size_t. This
enables the compiler to enforce that when checking for the various tag
values, the holder must hold the enum class. When intending to interpret
the value as size_t, holder must explicitly convert.
Do the above change for the ServerOffset.
Tests: fast/canvas/webgl/lose-context-on-timeout-async.html
fast/canvas/webgl/lose-context-on-timeout.html
- GPUProcess/GPUConnectionToWebProcess.cpp:
(WebKit::GPUConnectionToWebProcess::releaseGraphicsContextGL):
Do not assert that the release message actually releases the context.
For testing, the induce the timeout by releasing the context prematurely
and treating the subsequent messages as if they were non-legit messages.
That should be just skipped.
(WebKit::GPUConnectionToWebProcess::releaseGraphicsContextGLForTesting):
Add a public function to invoke from "ForTesting" codepaths.
(WebKit::GPUConnectionToWebProcess::dispatchMessage):
(WebKit::GPUConnectionToWebProcess::dispatchSyncMessage):
Skip RemoteGraphicsContextGL messages that do not get routed to any
instance. These messages can be "non-legit", ones that are sent before
the "context was lost" message reached the sender, or ones that are
sent during simulated timeout.
These do not contain asserts as it is expected that these will occur in
above situations.
- GPUProcess/GPUConnectionToWebProcess.h:
- GPUProcess/graphics/RemoteGraphicsContextGL.cpp:
(WebKit::RemoteGraphicsContextGL::simulateEventForTesting):
- GPUProcess/graphics/RemoteGraphicsContextGL.h:
- GPUProcess/graphics/RemoteGraphicsContextGL.messages.in:
- GPUProcess/graphics/RemoteGraphicsContextGLFunctionsGenerated.h:
Add the simulateEventForTesting function to simulate the
timeout. Simulate via just removing the context, which causes
left-over messages to skipped.
Currently we do not simulate the timeout with an infinite loop
in GPU process threads as that is not supported.
Currently we do not simulate the timeout with a gpu process
crash since it is not supported to be tested (will cause a
reload).
- Platform/IPC/StreamClientConnection.cpp:
(IPC::StreamClientConnection::StreamClientConnection):
- Platform/IPC/StreamClientConnection.h:
(IPC::StreamClientConnection::sendSync):
(IPC::StreamClientConnection::release):
Change size_t usage to -> ClientOffset, ServerOffset
(IPC::StreamClientConnection::tryAcquire):
Fix the assertion of equivalent of ASSERT(clientLimit != ClientLimit::clientIsWaitingTag);
by reorganizing the acquire loop.
(IPC::StreamClientConnection::toLimit const):
Fix the off-by-one in assertion error
( < dataSize() - 1 vs <= dataSize() - 1)
Rename from clampedLimit() to toLimit(), as the
clamping is confusing as the client trusts the
server.
- Platform/IPC/StreamConnectionBuffer.cpp:
(IPC::StreamConnectionBuffer::StreamConnectionBuffer):
(IPC::StreamConnectionBuffer::operator=):
(IPC::StreamConnectionBuffer::encode const):
- Platform/IPC/StreamConnectionBuffer.h:
(IPC::StreamConnectionBuffer::clientOffset):
(IPC::StreamConnectionBuffer::serverOffset):
(IPC::StreamConnectionBuffer::clientWaitSemaphore):
(IPC::StreamConnectionBuffer::maximumSize):
- Platform/IPC/StreamServerConnection.cpp:
(IPC::StreamServerConnectionBase::tryAquire):
(IPC::StreamServerConnectionBase::release):
Change size_t usage to -> ClientOffset, ServerOffset
(IPC::StreamServerConnectionBase::clampedLimit const):
Fix the off-by-one in assertion error
( < dataSize() - 1 vs <= dataSize() - 1)
- Platform/IPC/StreamServerConnection.h:
(IPC::StreamServerConnectionBase::sharedServerLimit):
(IPC::StreamServerConnectionBase::sharedServerOffset):
- WebProcess/GPU/graphics/RemoteGraphicsContextGLProxy.cpp:
(WebKit::RemoteGraphicsContextGLProxy::synthesizeGLError):
(WebKit::RemoteGraphicsContextGLProxy::getError):
For the cases where the timeout would happen in these two functions,
call the markContextLost() instead of wasLost(). This is to clarify
all the context lost handling to use the same pattern.
(WebKit::RemoteGraphicsContextGLProxy::simulateEventForTesting):
- WebProcess/GPU/graphics/RemoteGraphicsContextGLProxy.h:
- WebProcess/GPU/graphics/RemoteGraphicsContextGLProxyFunctionsGenerated.cpp:
LayoutTests:
Add tests to test the case where a WebGL call times out.
Add two variants: one which most probably times out on
synchronous call, and one which most probably times out on
asynchronous call.
- fast/canvas/webgl/lose-context-on-status-failure.html:
The testing APIs were changed, so replace use of
Internals.setFailNextGPUStatusCheck()
with Internals.simulateEventForWebGLContext()
- fast/canvas/webgl/lose-context-on-timeout-async-expected.txt: Added.
- fast/canvas/webgl/lose-context-on-timeout-async.html: Added.
- fast/canvas/webgl/lose-context-on-timeout-expected.txt: Added.
- fast/canvas/webgl/lose-context-on-timeout.html: Added.
- fast/canvas/webgl/webglcontextchangedevent.html:
- 1:37 AM Changeset in webkit [274065] by
-
- 15 edits in trunk
WebGL context screen change events should work with GPU process
https://bugs.webkit.org/show_bug.cgi?id=219669
<rdar://problem/72373371>
Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2021-03-08
Reviewed by Per Arne Vollan.
Source/WebKit:
Pass display configuration change notification from UI
process to GPU process.
Fixes
fast/canvas/webgl/webglcontextchangedevent.html
fast/canvas/webgl/context-update-on-display-configuration.html
- GPUProcess/GPUConnectionToWebProcess.cpp:
(WebKit::GPUConnectionToWebProcess::displayConfigurationChanged):
- GPUProcess/GPUConnectionToWebProcess.h:
- GPUProcess/GPUProcess.cpp:
(WebKit::GPUProcess::displayConfigurationChanged):
- GPUProcess/GPUProcess.h:
- GPUProcess/GPUProcess.messages.in:
- GPUProcess/graphics/RemoteGraphicsContextGL.cpp:
(WebKit::RemoteGraphicsContextGL::displayWasReconfigured):
- GPUProcess/graphics/RemoteGraphicsContextGL.h:
- Platform/IPC/ScopedActiveMessageReceiveQueue.h:
(IPC::ScopedActiveMessageReceiveQueue::operator-> const):
- UIProcess/GPU/GPUProcessProxy.cpp:
(WebKit::GPUProcessProxy::displayConfigurationChanged):
- UIProcess/GPU/GPUProcessProxy.h:
- UIProcess/WebProcessPool.cpp:
(WebKit::displayReconfigurationCallBack):
(WebKit::WebProcessPool::sendDisplayConfigurationChangedMessageForTesting):
LayoutTests:
- fast/canvas/webgl/webglcontextchangedevent.html:
Make manually testable.
- gpu-process/TestExpectations:
Remove two tests that now pass.
- 12:59 AM Changeset in webkit [274064] by
-
- 3 edits2 adds in trunk
REGRESSION(r272900): Nullptr crash in ComposedTreeIterator::traverseNextInShadowTree() via ShadowRoot::hostChildElementDidChange
https://bugs.webkit.org/show_bug.cgi?id=222720
Patch by Carlos Garcia Campos <cgarcia@igalia.com> on 2021-03-08
Reviewed by Ryosuke Niwa.
Source/WebCore:
The list of assigned nodes contains weak pointers, we should check the node hasn't been destroyed.
Test: fast/html/details-set-inner-text-crash.html
- dom/ComposedTreeIterator.cpp:
(WebCore::ComposedTreeIterator::traverseNextInShadowTree):
LayoutTests:
- fast/html/details-set-inner-text-crash-expected.txt: Added.
- fast/html/details-set-inner-text-crash.html: Added.
- 12:52 AM Changeset in webkit [274063] by
-
- 2 edits in trunk/Source/WebCore/platform/gtk/po
[GTK] Update Simplified Chinese translation
https://bugs.webkit.org/show_bug.cgi?id=222845
Patch by Dingzhong Chen <wsxy162@gmail.com> on 2021-03-08
Reviewed by Carlos Garcia Campos.
- zh_CN.po:
- 12:28 AM Changeset in webkit [274062] by
-
- 19 edits2 adds4 deletes in trunk/LayoutTests
[GTK] Unreviewed test gardening. Update baselines.
- platform/glib/fast/css/getComputedStyle/computed-style-expected.txt: After r273882.
- platform/glib/fast/css/getComputedStyle/computed-style-without-renderer-expected.txt: After r273882.
- platform/glib/fast/table/table-display-types-strict-expected.txt: After r273386.
- platform/glib/http/tests/navigation/redirect-to-fragment2-expected.txt: Added. Passing since r273781.
- platform/glib/imported/w3c/web-platform-tests/mediacapture-streams/MediaStream-MediaElement-srcObject.https-expected.txt: After r273644.
- platform/glib/svg/css/getComputedStyle-basic-expected.txt: After r273882.
- platform/gtk/compositing/geometry/clipping-foreground-expected.png: After r271348.
- platform/gtk/compositing/geometry/clipping-foreground-expected.txt: After r271348.
- platform/gtk/css1/text_properties/vertical_align-expected.txt: After r273386.
- platform/gtk/fast/dom/HTMLMeterElement/meter-element-expected.txt: After r271110.
- platform/gtk/fast/dom/HTMLMeterElement/meter-styles-changing-pseudo-expected.txt: After r271110.
- platform/gtk/fast/dom/HTMLMeterElement/meter-styles-expected.png: After r271110.
- platform/gtk/fast/dom/HTMLMeterElement/meter-styles-expected.txt: After r271110.
- platform/gtk/fast/forms/input-disabled-color-expected.png: After r271021.
- platform/gtk/fast/forms/input-disabled-color-expected.txt: After r271021.
- platform/gtk/fast/forms/linebox-overflow-in-textarea-padding-expected.png: After r271348.
- platform/gtk/fast/forms/linebox-overflow-in-textarea-padding-expected.txt: After r271348.
- platform/gtk/fast/inline-block/inline-block-vertical-align-expected.txt: After r271110.
- platform/gtk/fast/scrolling/overflow-scrollable-after-back-expected.txt: Removed. Stale baseline.
- platform/gtk/http/tests/navigation/redirect-to-fragment2-expected.txt: Removed. Moved to GLib baseline.
- platform/gtk/imported/w3c/web-platform-tests/css/css-color/animation/opacity-interpolation-expected.txt: Removed. Stale baseline.
- platform/gtk/imported/w3c/web-platform-tests/css/cssom/cssstyledeclaration-csstext-expected.txt: After r273072.
- platform/wpe/http/tests/navigation/redirect-to-fragment2-expected.txt: Removed. Moved to GLib baseline.
Mar 7, 2021:
- 7:45 PM Changeset in webkit [274061] by
-
- 3 edits2 adds in trunk/LayoutTests
[GLIB] Gardening and updating baselines
Unreviewed test gardening.
- platform/glib/TestExpectations:
- platform/glib/imported/w3c/web-platform-tests/shadow-dom/nested-slot-remove-crash-expected.txt: Added.
- platform/wpe/TestExpectations:
- 6:02 PM Changeset in webkit [274060] by
-
- 2 edits in trunk/Source/WebCore
Unreviewed. Fix -Wunused-parameter warning after r274033
- rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::requiresCompositingForModel const):
- 5:48 PM Changeset in webkit [274059] by
-
- 2 edits in trunk/Source/WebCore
Unreviewed. Fix -Wreturn-type warning after r273891
- Modules/mediastream/MediaStreamTrack.cpp:
(WebCore::trackMatchesKind):
- 2:45 PM Changeset in webkit [274058] by
-
- 6 edits in trunk
[iOS] maild hits a simulated crash when ENABLE(APP_HIGHLIGHTS) is defined
https://bugs.webkit.org/show_bug.cgi?id=222893
<rdar://problem/74230060>
Reviewed by Tim Horton.
Source/WebKit:
Fix the simulated crash by not initializing the shared callout bar and installing menu items for new app
highlight actions in the case where the web view is unparented. Additionally, avoid this work in the case where
the selection is not a range.
Test: AppHighlights.AvoidForcingCalloutBarInitialization
- UIProcess/API/ios/WKWebViewIOS.mm:
(-[WKWebView didMoveToWindow]):
Call
-setUpAppHighlightMenusIfNeededto ensure that we still add app highlight menu items in the case where
we avoided it previously, due to the web view being unparented. Note that if we're being unparented (i.e.
self.windowhas just becomenil), we will return early from-setUpAppHighlightMenusIfNeeded.
- UIProcess/ios/WKContentViewInteraction.h:
- UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView _selectionChanged]):
(-[WKContentView setUpAppHighlightMenusIfNeeded]):
(-[WKContentView setUpAppHighlightMenus]): Deleted.
Rename
setUpAppHighlightMenustosetUpAppHighlightMenusIfNeeded, and declare it in the header so that we
can call into it from-didMoveToWindowabove.
Tools:
Add an API test to verify that we don't attempt to initialize the platform callout bar.
- TestWebKitAPI/Tests/WebKitCocoa/WKAppHighlights.mm:
- 12:32 PM Changeset in webkit [274057] by
-
- 6 edits in trunk
[GPU Process] Recording transparency layer should reset the alpha of lastDrawingState
https://bugs.webkit.org/show_bug.cgi?id=222855
Reviewed by Simon Fraser.
Source/WebCore:
After appending BeginTransparencyLayer item, the alpha of lastDrawingState
should be reset. So any subsequent setAlpha() should be accumulated even
if the new alpha equals to the last alpha which was set in lastDrawingState.
- platform/graphics/GraphicsContext.cpp:
(WebCore::GraphicsContext::beginTransparencyLayer):
(WebCore::GraphicsContext::endTransparencyLayer):
- platform/graphics/displaylists/DisplayListRecorder.cpp:
(WebCore::DisplayList::Recorder::beginTransparencyLayer):
(WebCore::DisplayList::Recorder::endTransparencyLayer):
- platform/graphics/displaylists/DisplayListRecorder.h:
(WebCore::DisplayList::Recorder::ContextState::cloneForTransparencyLayer const):
LayoutTests:
- gpu-process/TestExpectations:
- 12:26 PM Changeset in webkit [274056] by
-
- 2 edits in trunk/LayoutTests
[Mojave] webanimations/accelerated-transform-related-animation-property-order.html is failing
https://bugs.webkit.org/show_bug.cgi?id=220018
Reviewed by Sam Weinig.
Mojave is no longer supported on ToT and this test has been passing reliably on the bots.
- platform/mac-wk2/TestExpectations:
- 12:16 PM Changeset in webkit [274055] by
-
- 8 edits in trunk
Correctly handle "auto" values when blending z-index
https://bugs.webkit.org/show_bug.cgi?id=222870
Reviewed by Dean Jackson.
LayoutTests/imported/w3c:
Add an extra 72 PASS results. We now pass all the z-index interpolation tests.
Another test has new failures, but this is expected, this test behaves the same way
across Firefox and Chrome as well.
- web-platform-tests/css/css-transitions/animations/z-index-interpolation-expected.txt:
- web-platform-tests/css/css-transitions/properties-value-auto-001-expected.txt:
Source/WebCore:
Create a dedicated wrapper for z-index such that we can handle "auto" values
instead of just blending an int.
- animation/CSSPropertyAnimation.cpp:
(WebCore::ZIndexPropertyWrapper::ZIndexPropertyWrapper):
(WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap):
LayoutTests:
Fix the test animations/stacking-context-unchanged-while-running.html which made the
wrong assumption about blending of z-index with auto values. We now make this test
expect an "auto" value and update the helper to know how to deal with "auto" values
for "z-index".
- animations/resources/animation-test-helpers.js:
(getPropertyValue):
(comparePropertyValue):
- animations/stacking-context-unchanged-while-running.html:
- 11:50 AM Changeset in webkit [274054] by
-
- 5 edits in trunk
Use counters for pending events
https://bugs.webkit.org/show_bug.cgi?id=218556
Patch by Rob Buis <rbuis@igalia.com> on 2021-03-07
Reviewed by Ryosuke Niwa.
Source/WebCore:
Use counters for pending events instead of flags since
it is allowed to schedule multiple events:
https://html.spec.whatwg.org/multipage/images.html#update-the-image-data
- loader/ImageLoader.cpp:
(WebCore::ImageLoader::ImageLoader):
(WebCore::ImageLoader::~ImageLoader):
(WebCore::ImageLoader::clearImageWithoutConsideringPendingLoadEvent):
(WebCore::ImageLoader::updateFromElement):
(WebCore::ImageLoader::notifyFinished):
(WebCore::ImageLoader::updatedHasPendingEvent):
(WebCore::ImageLoader::dispatchPendingBeforeLoadEvent):
(WebCore::ImageLoader::dispatchPendingLoadEvent):
(WebCore::ImageLoader::dispatchPendingErrorEvent):
- loader/ImageLoader.h:
(WebCore::ImageLoader::hasPendingBeforeLoadEvent const):
(WebCore::ImageLoader::hasPendingActivity const):
LayoutTests:
The onerror can be called multiple times, after the first call
container will have no parent, so protect against that in
subsequent calls.
- fast/dom/modify-node-and-while-in-the-callback-too-crash.html:
- 10:16 AM Changeset in webkit [274053] by
-
- 6 edits in trunk/Source
Move new color(), lab() and lch() color functions behind runtime settings.
https://bugs.webkit.org/show_bug.cgi?id=222869
Reviewed by Simon Fraser.
Source/WebCore:
Add checking for new experimental feature flag for the new CSS Color 4 color types.
As the flag is on by default, there is no change in behavior. This is just to allow
ports to disable the feature if they need to.
- css/parser/CSSParserContext.cpp:
(WebCore::operator==):
- css/parser/CSSParserContext.h:
(WebCore::CSSParserContextHash::hash):
- css/parser/CSSPropertyParserHelpers.cpp:
(WebCore::CSSPropertyParserHelpers::parseHWBParameters):
(WebCore::CSSPropertyParserHelpers::parseLabParameters):
(WebCore::CSSPropertyParserHelpers::parseLCHParameters):
(WebCore::CSSPropertyParserHelpers::parseColorFunctionForRGBTypes):
(WebCore::CSSPropertyParserHelpers::parseColorFunctionForLabParameters):
(WebCore::CSSPropertyParserHelpers::parseColorFunctionForXYZParameters):
(WebCore::CSSPropertyParserHelpers::parseColorFunctionParameters):
(WebCore::CSSPropertyParserHelpers::parseColorFunction):
Source/WTF:
- Scripts/Preferences/WebPreferencesExperimental.yaml:
Add experimental feature flag for the new CSS Color 4 color types.
- 9:41 AM Changeset in webkit [274052] by
-
- 4 edits in trunk/Tools
Transition Cocoa DumpRenderTree to allow any preference keys, not just hard coded supported ones
https://bugs.webkit.org/show_bug.cgi?id=222868
Reviewed by Simon Fraser.
This allows any preference key in a WebPreference*.yaml to be used for Cocoa WebKitLegacy
tests in the comment header command, just like WebKitTestRunner.
- DumpRenderTree/TestOptions.cpp:
(WTR::TestOptions::defaults):
Update defaults to only the default values that don't match
defaults in WebPreference*.yaml files and experimental features
that are not supported in but still declare support in the file.
- DumpRenderTree/TestRunner.h:
Remove unimplemented function declaration.
- DumpRenderTree/mac/DumpRenderTree.mm:
(setWebPreferencesForTestOptions):
(setDefaultsToConsistentValuesForTesting):
(prepareConsistentTestingEnvironment):
(resetWebPreferencesToConsistentValues): Deleted.
(webPreferenceFeatureValue): Deleted.
Replace most explicit reseting with the combination of _resetForTesting, automatic
enabling experimental features, and use of _set<type>PreferenceForTestingWithValue
from TestOptions.