Timeline
Oct 28, 2020:
- 11:31 PM Changeset in webkit [269140] by
-
- 4 edits in branches/safari-610-branch
Cherry-pick r269094. rdar://problem/70795299
Use _CFURLConnectionSetFrameworkStubs for SecItemShim instead of DYLD_INTERPOSE on Apple Silicon Macs
https://bugs.webkit.org/show_bug.cgi?id=218269
<rdar://problem/70491533>
Reviewed by Darin Adler.
Source/WebKit:
r171066 introduced the use of _CFURLConnectionSetFrameworkStubs on iOS for CFNetwork to be able
to get and set credentials as the UI process. This is also needed on Apple Silicon Macs.
We should eventually replace it with an even cleaner per-NSURLSession solution, but this is a step
in the right direction, and I verified manually that it fixes the radar.
Covered by an API test that used to fail on Apple Silicon Macs.
- Shared/mac/SecItemShim.cpp: (WebKit::initializeSecItemShim):
Tools:
- TestWebKitAPI/Tests/WebKitCocoa/Challenge.mm: (TEST):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@269094 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 11:31 PM Changeset in webkit [269139] by
-
- 14 edits4 adds in branches/safari-610-branch
Cherry-pick r268952. rdar://problem/70795327
[BigSur] Appending a new WebM init segment between Cluster elements throws an error
https://bugs.webkit.org/show_bug.cgi?id=218149
<rdar://problem/70416537>
Reviewed by Eric Carlson.
Source/ThirdParty/libwebrtc:
Add an "OnElementEnd()" callback to libwebm.
- Source/third_party/libwebm/webm_parser/include/webm/callback.h:
- Source/third_party/libwebm/webm_parser/src/callback.cc:
- Source/third_party/libwebm/webm_parser/src/master_parser.cc:
- Source/third_party/libwebm/webm_parser/src/webm_parser.cc:
Source/WebCore:
Test: media/media-source/media-source-webm-init-inside-segment.html
The WebM Byte Stream Format specification states that an "initialization segment" consists
of both a leading Ebml element and Segment element, and a "media segment" consists of a
single Cluster element. However, while both Ebml and Segment elements are top-level, Cluster
elements are contained within a Segment. This means if a client pushes a new "initialization
segment" after parsing some-but-not-all Clusters within a Segment, the new Ebml and Segment
elements will be parsed as children of the preceeding Segment, and the subsquent Segment
will overflow its "parent's" size.
In order to support appending a new "initialization segment" while still in the middle of
parsing the previous Segment element, first improve our state tracking in order to determine
what the current parent element is. Then, when we detect that an Ebml element is parsed
while still inside a Segment, abort with a simulated error, which when caught, will indicate
that the parser needs to be reset, and the reader "rewound" to the Ebml's position.
To allow the reader to rewind, we must not throw away appended data as we iterate over them.
Instead, we will only discard read samples once each parsing pass is fully complete. This
allows us to "rewind" across appended segment boundaries, if necessary.
Because all WTF::Deque iterators are invalidated whenever any element is removed, and
because we do not need random-access to the elements in the deque, replace the Deque with a
StdList to store the incoming data.
- platform/graphics/avfoundation/objc/SourceBufferParserAVFObjC.h:
- platform/graphics/avfoundation/objc/SourceBufferParserAVFObjC.mm: (WebCore::SourceBufferParserAVFObjC::setLogger):
- platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm: (WebCore::SourceBufferPrivateAVFObjC::SourceBufferPrivateAVFObjC):
- platform/graphics/cocoa/SourceBufferParser.h:
- platform/graphics/cocoa/SourceBufferParserWebM.cpp: (WTF::LogArgument<webm::Id>::toString): (WTF::LogArgument<WebCore::SourceBufferParserWebM::State>::toString): (WebCore::logChannel): (WebCore::logClassName): (WebCore::SourceBufferParserWebM::appendData): (WebCore::SourceBufferParserWebM::resetParserState): (WebCore::SourceBufferParserWebM::invalidate): (WebCore::SourceBufferParserWebM::setLogger): (WebCore::SourceBufferParserWebM::OnElementBegin): (WebCore::SourceBufferParserWebM::OnElementEnd): (WebCore::SourceBufferParserWebM::OnEbml): (WebCore::SourceBufferParserWebM::OnSegmentBegin): (WebCore::SourceBufferParserWebM::OnInfo): (WebCore::SourceBufferParserWebM::OnTrackEntry):
- platform/graphics/cocoa/SourceBufferParserWebM.h:
LayoutTests:
- media/media-source/content/test-vp9-long-manifest.json: Added.
- media/media-source/content/test-vp9-long.webm: Added.
- media/media-source/media-source-webm-init-inside-segment-expected.txt: Added.
- media/media-source/media-source-webm-init-inside-segment.html: Added.
- platform/mac/TestExpectations:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@268952 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 11:13 PM Changeset in webkit [269138] by
-
- 4 edits in branches/safari-610-branch
Cherry-pick r268791. rdar://problem/70795323
[iOS] Disable audio capture in the background for non Safari applications
https://bugs.webkit.org/show_bug.cgi?id=217948
<rdar://problem/70241557>
Reviewed by Eric Carlson.
Source/WebCore:
We do not have good OS support when capturing audio in a WebProcess for a backgrounded application.
Until we have proper support, it seems best to mute audio capture when being backgrounded.
Manually tested.
- platform/mediastream/mac/RealtimeMediaSourceCenterMac.mm: (WebCore::RealtimeMediaSourceCenter::shouldInterruptAudioOnPageVisibilityChange):
LayoutTests:
- platform/ios/mediastream/video-muted-in-background-tab.html: By default, audio capture will be muted in WTR if page goes to background. Update the test to explicitly request for audio capture to continue while in background.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@268791 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 10:26 PM Changeset in webkit [269137] by
-
- 3 edits2 adds in trunk
Null dereference in CompositeEditCommand::cloneParagraphUnderNewElement() due to not checking for top of DOM tree
https://bugs.webkit.org/show_bug.cgi?id=218132
Patch by Julian Gonzalez <julian_a_gonzalez@apple.com> on 2020-10-28
Reviewed by Ryosuke Niwa.
Source/WebCore:
When iterating through parent nodes, cloneParagraphUnderNewElement()
has to be careful to check for the top of the DOM tree (where
parentNode() returns nullptr) and stop iterating.
- editing/CompositeEditCommand.cpp:
(WebCore::CompositeEditCommand::cloneParagraphUnderNewElement):
LayoutTests:
Add a test to verify that we don't iterate outside the DOM tree while cloning a paragraph.
Thanks to Ryosuke Niwa for helping minimize the test and make it more stable.
- editing/deleting/move-paragraph-crash-expected.txt: Added.
- editing/deleting/move-paragraph-crash.html: Added.
- 8:53 PM Changeset in webkit [269136] by
-
- 4 edits2 adds in trunk
REGRESSION(r267329): Crash in VisibleSelection::toNormalizedRange()
https://bugs.webkit.org/show_bug.cgi?id=218276
Reviewed by Wenson Hsieh.
Source/WebCore:
The crash was a symptom of the issue that m_extent or m_base could be null but not the other
when canonicalizing a non-null Position with VisiblePosition will make it null.
Fixed the bug by making sure base and extent's nullness match.
Test: editing/selection/delete-selection-with-disconnected-extent.html
- editing/VisibleSelection.cpp:
(WebCore::VisibleSelection::setBaseAndExtentToDeepEquivalents):
LayoutTests:
Added a regression test and rebaselined the test now that we got the pre-r267329 behavior back.
- editing/execCommand/insert-list-nested-with-orphaned-expected.txt: Reverted the rebaseline in r267329.
- editing/selection/delete-selection-with-disconnected-extent-expected.txt: Added.
- editing/selection/delete-selection-with-disconnected-extent.html: Added.
- 7:58 PM Changeset in webkit [269135] by
-
- 11 edits1 copy1 move1 delete in trunk/LayoutTests
[GTK][WPE] Rebaseline of tests and gardening of failures.
Rebaselines some tests and mark some tests as failing after recent changes.
Unreviewed gardening.
- platform/glib/TestExpectations:
- platform/gtk/TestExpectations:
- platform/gtk/editing/input/reveal-caret-of-multiline-contenteditable-expected.txt:
- platform/gtk/editing/input/reveal-caret-of-multiline-input-expected.txt:
- platform/gtk/editing/selection/vertical-rl-ltr-extend-line-backward-wrap-expected.txt:
- platform/gtk/fast/css/word-space-extra-expected.txt: Copied from LayoutTests/platform/glib/fast/css/word-space-extra-expected.txt.
- platform/gtk/fast/dom/HTMLTextAreaElement/reset-textarea-expected.txt:
- platform/gtk/fast/html/tab-order-expected.txt: Removed.
- platform/gtk/fast/text/basic/generic-family-reset-expected.txt:
- platform/gtk/http/tests/navigation/javascriptlink-frames-expected.txt:
- platform/wpe/fast/css/word-space-extra-expected.txt: Renamed from LayoutTests/platform/glib/fast/css/word-space-extra-expected.txt.
- platform/wpe/fast/dom/HTMLTextAreaElement/reset-textarea-expected.txt:
- platform/wpe/fast/text/basic/generic-family-reset-expected.txt:
- 7:40 PM Changeset in webkit [269134] by
-
- 3 edits in trunk/Source/WebCore
Web Audio broken on iOS 14 after switching app
https://bugs.webkit.org/show_bug.cgi?id=217606
<rdar://problem/70231769>
Reviewed by Eric Carlson.
When we call AudioOutputUnitStart(), AVFoundation checks if we are allowed to play by
making sure that our application is foreground. In order to do that, AVFoundation
needs the PID of our hosting application. We provide this PID whenever the following
function is called:
MediaSessionManageriOS::providePresentingApplicationPIDIfNecessary()
The issue was that we were not calling providePresentingApplicationPIDIfNecessary()
before starting WebAudio playback. As a result, AVFoundation was relying on the
visibility of the WebContent process itself. This was causing a race because
RunningBoard gets notified that the WebContent process is visible a little later
than for the UIProcess. When the UIProcess would become foreground, we would send
the SetApplicationState IPC to the WebProcess, which would update the page's
visibility and cause us to stop the media session interruption. This would cause
us to call AudioOutputUnitStart(), which would fail because AVFoundation would
ask RunningBoard if the WebContent process is foreground. At this point,
RunningBoard would not necessarily know yet that the WebContent process is
visible. However, RunningBoard reliably knows the UIProcess is visible at this
point.
We now call this function inside MediaSessionManageriOS::sessionWillBeginPlayback()
since this gets called by WebAudio code before starting the playback.
- platform/audio/cocoa/AudioOutputUnitAdaptor.cpp:
(WebCore::AudioOutputUnitAdaptor::start):
Add some error logging when the call to AudioOutputUnitStart() fails to facilitate
debugging such issues in the future.
- platform/audio/ios/MediaSessionManagerIOS.mm:
(WebCore::MediaSessionManageriOS::sessionWillBeginPlayback):
- 5:51 PM Changeset in webkit [269133] by
-
- 5 edits2 moves6 adds2 deletes in trunk/LayoutTests
Resync web-platform-tests/webaudio tests from upstream
https://bugs.webkit.org/show_bug.cgi?id=218313
Reviewed by Alex Christensen.
Resync web-platform-tests/webaudio tests from upstream 5fe9553936ab4d7ba2b4.
- web-platform-tests/webaudio/the-audio-api/the-audiocontext-interface/audiocontext-detached-execution-context-expected.txt: Added.
- web-platform-tests/webaudio/the-audio-api/the-audiocontext-interface/audiocontext-detached-execution-context.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audiocontext-interface/audiocontext-detached-execution-context.tentative.html.
- web-platform-tests/webaudio/the-audio-api/the-audiocontext-interface/audiocontext-detached-execution-context.tentative-expected.txt: Removed.
- web-platform-tests/webaudio/the-audio-api/the-audiocontext-interface/promise-methods-after-discard-expected.txt: Added.
- web-platform-tests/webaudio/the-audio-api/the-audiocontext-interface/promise-methods-after-discard.html: Added.
- web-platform-tests/webaudio/the-audio-api/the-audiocontext-interface/w3c-import.log:
- web-platform-tests/webaudio/the-audio-api/the-mediaelementaudiosourcenode-interface/mediaElementAudioSourceToScriptProcessorTest.html:
- web-platform-tests/webaudio/the-audio-api/the-offlineaudiocontext-interface/offlineaudiocontext-detached-execution-context-expected.txt: Added.
- web-platform-tests/webaudio/the-audio-api/the-offlineaudiocontext-interface/offlineaudiocontext-detached-execution-context.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-offlineaudiocontext-interface/offlineaudiocontext-detached-execution-context.tentative.html.
- web-platform-tests/webaudio/the-audio-api/the-offlineaudiocontext-interface/offlineaudiocontext-detached-execution-context.tentative-expected.txt: Removed.
- web-platform-tests/webaudio/the-audio-api/the-offlineaudiocontext-interface/startrendering-after-discard-expected.txt: Added.
- web-platform-tests/webaudio/the-audio-api/the-offlineaudiocontext-interface/startrendering-after-discard.html: Added.
- web-platform-tests/webaudio/the-audio-api/the-offlineaudiocontext-interface/w3c-import.log:
- 5:10 PM Changeset in webkit [269132] by
-
- 2 edits in trunk/Tools
[build.webkit.org] loadConfig unittest fail depending on locally installed version of buildbot
https://bugs.webkit.org/show_bug.cgi?id=218234
Reviewed by Jonathan Bedard.
- CISupport/build-webkit-org/loadConfig_unittest.py:
- 5:10 PM Changeset in webkit [269131] by
-
- 1 copy in tags/Safari-610.2.11.51.7
Tag Safari-610.2.11.51.7.
- 5:02 PM Changeset in webkit [269130] by
-
- 2 edits in trunk/Tools
[build.webkit.org] Use -q and -o while unzipping layout-test-results.zip
https://bugs.webkit.org/show_bug.cgi?id=218230
Reviewed by Jonathan Bedard.
- CISupport/build-webkit-org/steps.py:
(ExtractTestResults.start):
- 5:00 PM Changeset in webkit [269129] by
-
- 6 edits3 adds in trunk
PCM: Accept ad click data when the link opens a new window
https://bugs.webkit.org/show_bug.cgi?id=214176
<rdar://problem/65358005>
Reviewed by Brent Fulgham.
A link with the attribute target="_blank" takes another code path for
navigation which involves the creation of a new window and webpage. That
code path needs to transfer ad click attribution data to the new webpage
Source/WebKit:
where it can be picked up in WebPageProxy::didCommitLoadForFrame().
The ad click attribution data sits in the NavigationAction which is not
available in the completion handler WebPageProxy::createNewPage().
The client, which differs between TestRunner and e.g. Safari, consumes
the NavigationAction. I don't want to risk a regression in e.g. Safari
while still passing the test because TestRunner hasn't regressed.
Test: http/tests/adClickAttribution/attribution-conversion-through-image-redirect-in-new-window.html
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::didCommitLoadForFrame):
Now also checks for pending ad click attribution data in its new
member variable m_newPageNavigationAdClickAttribution.
(WebKit::WebPageProxy::createNewPage):
Now forwards optional ad click attribution data to the completion
handler where it can be stored on the newly created webpage in the
new member variable m_newPageNavigationAdClickAttribution.
- UIProcess/WebPageProxy.h:
Added m_newPageNavigationAdClickAttribution.
- WebProcess/WebCoreSupport/WebChromeClient.cpp:
(WebKit::WebChromeClient::createWindow):
Added missing navigationAction.adClickAttribution() copy.
- WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
(WebKit::WebFrameLoaderClient::dispatchDecidePolicyForNewWindowAction):
Added missing navigationAction.adClickAttribution() copy.
LayoutTests:
where it can be picked up.
- http/tests/adClickAttribution/attribution-conversion-through-image-redirect-in-new-window-expected.txt: Added.
- http/tests/adClickAttribution/attribution-conversion-through-image-redirect-in-new-window.html: Added.
- http/tests/adClickAttribution/resources/convertAndPostMessageBack.html: Added.
- 4:51 PM Changeset in webkit [269128] by
-
- 7 edits in trunk/Source
[WinCairo][PlayStation] Add handling for accept failure case
https://bugs.webkit.org/show_bug.cgi?id=217353
Reviewed by Alex Christensen.
Source/JavaScriptCore:
It is rare to happen, but listening socket can be invalid state (i.e. cable disconnection, interface error),
and accept() will be called because of the poll's false report. In that situation, it is required to rebuild
the listening socket from the scratch. The failure of accept is the good place to capture this situation.
This patch moves listening duty into Listener internal calss and it is possible to make the invalid state
while maintained by SocketEndpoint. Also in case of failure continues, the retry will be gradually increasing
the intervals.
- inspector/remote/socket/RemoteInspectorServer.h:
- inspector/remote/socket/RemoteInspectorSocketEndpoint.cpp:
(Inspector::RemoteInspectorSocketEndpoint::listenInet):
(Inspector::RemoteInspectorSocketEndpoint::pollingTimeout):
(Inspector::RemoteInspectorSocketEndpoint::workerThread):
(Inspector::RemoteInspectorSocketEndpoint::createClient):
(Inspector::RemoteInspectorSocketEndpoint::disconnect):
(Inspector::RemoteInspectorSocketEndpoint::acceptInetSocketIfEnabled):
- inspector/remote/socket/RemoteInspectorSocketEndpoint.h:
Source/WebDriver:
Following the interface change.
- HTTPServer.h:
- socket/HTTPServerSocket.cpp:
(WebDriver::HTTPServer::didStatusChanged):
- 2:34 PM Changeset in webkit [269127] by
-
- 2 edits in trunk/Source/WebInspectorUI
Web Inspector: Network: background color of rows from previous session is wrong
https://bugs.webkit.org/show_bug.cgi?id=218058
<rdar://problem/70550459>
Patch by Federico Bucchi <Federico Bucchi> on 2020-10-28
Reviewed by Devin Rousso.
- UserInterface/Views/NetworkTableContentView.css:
(.network-table > .table li:not(.filler, .selected) .cell:not(.name, .current-session),):
(.network-table > .table li:not(.filler, .selected) .cell:not(.current-session)): Deleted.
- 2:30 PM Changeset in webkit [269126] by
-
- 2 edits in trunk/LayoutTests
Rebase for fast/forms/input-appearance-spinbutton.html on Catalina after changes in r269036
https://bugs.webkit.org/show_bug.cgi?id=218151
Unreviewed test gardening.
- platform/mac-catalina/fast/forms/input-appearance-spinbutton-expected.txt:
- 2:27 PM Changeset in webkit [269125] by
-
- 2 edits in trunk/LayoutTests
Unreviewed, reverting r269122.
Checked in Change markers
Reverted changeset:
"Rebase for fast/forms/input-appearance-spinbutton.html on
Catalina after changes in r269036"
https://bugs.webkit.org/show_bug.cgi?id=218151
https://trac.webkit.org/changeset/269122
- 2:16 PM Changeset in webkit [269124] by
-
- 5 edits in trunk/Source/WebCore
Remove diagnostic logging for plug-ins
https://bugs.webkit.org/show_bug.cgi?id=218304
Reviewed by Tim Horton.
There's no longer a need to pipe diagnostic logging up to clients.
- history/BackForwardCache.cpp:
(WebCore::canCacheFrame):
- loader/SubframeLoader.cpp:
(WebCore::logPluginRequest):
Remove a now-unused parameter.
(WebCore::FrameLoader::SubframeLoader::requestObject):
(WebCore::FrameLoader::SubframeLoader::createJavaAppletWidget):
- page/DiagnosticLoggingKeys.cpp:
(WebCore::DiagnosticLoggingKeys::pluginLoadedKey): Deleted.
(WebCore::DiagnosticLoggingKeys::pluginLoadingFailedKey): Deleted.
(WebCore::DiagnosticLoggingKeys::pageContainsPluginKey): Deleted.
(WebCore::DiagnosticLoggingKeys::pageContainsAtLeastOnePluginKey): Deleted.
(WebCore::DiagnosticLoggingKeys::hasPluginsKey): Deleted.
- page/DiagnosticLoggingKeys.h:
- 2:09 PM Changeset in webkit [269123] by
-
- 2 edits in trunk/Source/WebKit
[GPU Process] Eagerly flush the PutImageData item to the GPU Process
https://bugs.webkit.org/show_bug.cgi?id=218116
Reviewed by Simon Fraser.
Flush the DrawingContext of the RemoteImageBufferProxy once the PutImageData
item is recorded. So no expensive operation is going to block the painting.
- WebProcess/GPU/graphics/RemoteImageBufferProxy.h:
- 2:04 PM Changeset in webkit [269122] by
-
- 2 edits in trunk/LayoutTests
Rebase for fast/forms/input-appearance-spinbutton.html on Catalina after changes in r269036
https://bugs.webkit.org/show_bug.cgi?id=218151
Unreviewed test gardening.
- platform/mac-catalina/fast/forms/input-appearance-spinbutton-expected.txt:
- 1:42 PM Changeset in webkit [269121] by
-
- 6 edits2 adds in trunk
[MSE] Handle trackId changing across Initialization Segments
https://bugs.webkit.org/show_bug.cgi?id=218294
<rdar://problem/70771306>
Reviewed by Eric Carlson.
Source/WebCore:
Test: media/media-source/media-source-trackid-change.html
When appending an initialization segment after the receivedFirstInitializationSegment flag is
true, and when the number of video or audio tracks is 1, the trackId is allowed to change across
initialiaztion segments. When this occurs, move the TrackBuffer inside the trackBufferMap to
refer to the new trackId, so that when MediaSamples are parsed, they're put into the correct
TrackBuffer.
- Modules/mediasource/SourceBuffer.cpp:
(WebCore::SourceBuffer::sourceBufferPrivateDidReceiveInitializationSegment):
- html/track/AudioTrack.cpp:
(WebCore::AudioTrack::setPrivate):
- html/track/InbandTextTrack.cpp:
(WebCore::InbandTextTrack::setPrivate):
- html/track/VideoTrack.cpp:
(WebCore::VideoTrack::setPrivate):
LayoutTests:
- media/media-source/media-source-trackid-change-expected.txt: Added.
- media/media-source/media-source-trackid-change.html: Added.
- 1:39 PM Changeset in webkit [269120] by
-
- 13 edits1 move in trunk/Tools
Rename build.webkit.org-config directory to build-webkit-org
https://bugs.webkit.org/show_bug.cgi?id=218302
Reviewed by Jonathan Bedard.
- CISupport/build-webkit-org: Copied from Tools/CISupport/build.webkit.org-config.
- CISupport/build-webkit-org/htdigestparser_unittest.py:
- CISupport/build-webkit-org/public_html/TestFailures/scripts/builders_unittests.js:
- CISupport/build-webkit-org/steps.py:
- CISupport/build-webkit-org/steps_unittest.py:
- CISupport/build-webkit-org/wkbuild.py:
- CISupport/build-webkit-org/wkbuild_unittest.py:
- CISupport/build.webkit.org-config: Removed.
- CISupport/ews-build/steps.py:
- CISupport/ews-build/steps_unittest.py:
- Scripts/run-dashboard-tests:
- Scripts/webkitpy/layout_tests/views/buildbot_results.py:
- Scripts/webkitpy/style/checker_unittest.py:
- Scripts/webkitpy/tool/servers/gardeningserver.py:
- 1:28 PM Changeset in webkit [269119] by
-
- 1 edit in branches/safari-610-branch/Tools/TestWebKitAPI/Tests/WebKitCocoa/MediaMutedState.mm
Unreviewed debug build fix, rdar://problem/70733353
Tools/TestWebKitAPI/Tests/WebKitCocoa/MediaMutedState.mm:32:9: fatal error: WebKit/WKMediaPlaybackState.h file not found.
- 1:26 PM Changeset in webkit [269118] by
-
- 11 edits in trunk/Source
macCatalyst WebGL on Apple Silicon devices is using a software renderer
https://bugs.webkit.org/show_bug.cgi?id=218303
<rdar://problem/70587571>
Reviewed by Geoffrey Garen.
Source/ThirdParty/ANGLE:
- src/gpu_info_util/SystemInfo.h:
- src/gpu_info_util/SystemInfo_apple.mm:
(angle::GetSystemInfo):
We can just use the macOS version of GetSystemInfo in macCatalyst.
- src/gpu_info_util/SystemInfo_macos.mm:
(angle::GetSystemInfo_mac):
- src/libANGLE/Display.cpp:
- src/libANGLE/formatutils.cpp:
(gl::BuildInternalFormatInfoMap):
- src/libANGLE/renderer/gl/renderergl_utils.cpp:
(rx::nativegl_gl::GenerateCaps):
It turns out we must use EAGL in macCatalyst on Apple Silicon in all cases,
not just in-process in iOS apps (the problem is not just about coexistence
of the two GLs, but actually about our ability to load the accelerated
renderer /at all/ in macCatalyst processes).
I left the runtime switching in place, because there is a future in which
we /can/ use CGL in non-iOS-app processes, but that future is not now.
Source/WebCore:
- platform/graphics/cocoa/GraphicsContextGLOpenGLCocoa.mm:
(WebCore::needsEAGLOnMac):
(WebCore::GraphicsContextGLOpenGL::GraphicsContextGLOpenGL):
(WebCore::GraphicsContextGLOpenGL::IOSurfaceTextureTarget):
(WebCore::GraphicsContextGLOpenGL::IOSurfaceTextureTargetQuery):
(WebCore::GraphicsContextGLOpenGL::EGLIOSurfaceTextureTarget):
(WebCore::isiOSAppOnMac): Deleted.
See ANGLE ChangeLog.
Source/WebKit:
- UIProcess/mac/HighPerformanceGPUManager.mm:
(WebKit::HighPerformanceGPUManager::addProcessRequiringHighPerformance):
(WebKit::HighPerformanceGPUManager::removeProcessRequiringHighPerformance):
(WebKit::HighPerformanceGPUManager::updateState):
(WebKit::isiOSAppOnMac): Deleted.
HighPerformanceGPUManager is PLATFORM(MAC)-only, which is not true
for MACCATALYST, so delete this dead code.
- 1:06 PM Changeset in webkit [269117] by
-
- 10 edits in trunk/Tools
[webkitscmpy] Support finding commit by tag
https://bugs.webkit.org/show_bug.cgi?id=218212
<rdar://problem/70700121>
Reviewed by Dewei Zhu.
- Scripts/libraries/webkitscmpy/webkitscmpy/init.py: Bump version.
- Scripts/libraries/webkitscmpy/webkitscmpy/local/git.py:
(Git.commit): Find a commit referred to by a provided tag.
- Scripts/libraries/webkitscmpy/webkitscmpy/local/scm.py:
(Scm.find): Find a commit by tag, if applicable.
(Scm.commit):
- Scripts/libraries/webkitscmpy/webkitscmpy/local/svn.py:
(Svn.info): Pull information by tag, support non-standard branches.
(Svn._cache_revisions): Support non-standard branches.
(Svn._branch_for): Return the non-standard branch name for tags.
(Svn.commit): Find a commit referred to by a provided tag.
- Scripts/libraries/webkitscmpy/webkitscmpy/mocks/local/git.py:
(Git): Support tags.
- Scripts/libraries/webkitscmpy/webkitscmpy/mocks/local/svn.py:
(Svn.init): Support tags.
(Svn.tags): Tags are simply specialized branches, return the names of those tags
based on the commit mapping.
- Scripts/libraries/webkitscmpy/webkitscmpy/test/find_unittest.py:
- Scripts/libraries/webkitscmpy/webkitscmpy/test/git_unittest.py:
(TestGit):
(TestGit.test_tag):
- Scripts/libraries/webkitscmpy/webkitscmpy/test/svn_unittest.py:
(TestSvn):
(TestSvn.test_tag):
- 1:01 PM Changeset in webkit [269116] by
-
- 3 edits in trunk/Source/WebCore
TextureMapperLayer::paintWithIntermediateSurface: Reduce BitmapTextures by unifying replicaSurface and mainSurface
https://bugs.webkit.org/show_bug.cgi?id=217943
Reviewed by Don Olmstead.
TextureMapperLayer::paintWithIntermediateSurface was using two
BitmapTextures for the main layer and replica layer. But, a single
BitmapTexture suffices. Create a BitmapTexture and render both
layers onto it.
No new tests, no behavior changes.
- platform/graphics/texmap/TextureMapperLayer.cpp:
(WebCore::TextureMapperLayer::paintIntoSurface):
(WebCore::TextureMapperLayer::paintWithIntermediateSurface):
- platform/graphics/texmap/TextureMapperLayer.h:
- 12:25 PM Changeset in webkit [269115] by
-
- 24 edits1 add in trunk
Better cache our serialization of the outer TDZ environment when creating FunctionExecutables during bytecode generation
https://bugs.webkit.org/show_bug.cgi?id=199866
<rdar://problem/53333108>
Reviewed by Tadeu Zagallo.
JSTests:
- microbenchmarks/let-const-tdz-environment-parsing-and-hash-consing-speed.js: Added.
Source/JavaScriptCore:
This patch removes performance pathologies regarding programs with
many variables under TDZ (let/const). We had an algorithm for caching
the results of gathering all variables under TDZ, but that algorithm
wasn't nearly aggressive enough in its caching. This lead us to worst
case quadratic runtime, which could happens in practice for large functions.
There are a few fixes here:
- Instead of flattening the entire TDZ stack, and caching that result,
we now cache each stack entry individually. So as you push/pop to the
TDZ environment stack, we no longer invalidate everything. Instead, we
will just need to cache the newly pushed entry. We also no longer invalidate
the cache for lifting a TDZ check. The compromise here is we may emit
more runtime TDZ checks for closure variables. This is better than N2
bytecode compile time perf, since a well predicted branch for a TDZ
check is essentially free.
- We no longer transform the CompactTDZEnvironment (formerly CompactVariableEnvironment)
from a Vector into a HashSet each time we generate code for an inner function. Instead,
CompactTDZEnvironment can be in two modes: compact and inflated. It starts life off in
compact mode (a vector), and will turn into an inflated mode if it's ever needed. Once
inflated, it'll stay this way until it's destructed. This improves our algorithm from being
O(EnvSize * NumFunctions) to O(EnvSize) at the cost of using more space in a HashTable versus a
Vector. In the future, we could consider just binary searching through this Vector, and never using
a hash table.
- bytecode/UnlinkedFunctionExecutable.cpp:
(JSC::generateUnlinkedFunctionCodeBlock):
(JSC::UnlinkedFunctionExecutable::UnlinkedFunctionExecutable):
- bytecode/UnlinkedFunctionExecutable.h:
- bytecompiler/BytecodeGenerator.cpp:
(JSC::BytecodeGenerator::BytecodeGenerator):
(JSC::BytecodeGenerator::popLexicalScopeInternal):
(JSC::BytecodeGenerator::needsTDZCheck):
(JSC::BytecodeGenerator::liftTDZCheckIfPossible):
(JSC::BytecodeGenerator::pushTDZVariables):
(JSC::BytecodeGenerator::getVariablesUnderTDZ):
(JSC::BytecodeGenerator::preserveTDZStack):
(JSC::BytecodeGenerator::restoreTDZStack):
(JSC::BytecodeGenerator::emitNewInstanceFieldInitializerFunction):
- bytecompiler/BytecodeGenerator.h:
(JSC::BytecodeGenerator::generate):
(JSC::BytecodeGenerator::makeFunction):
- debugger/DebuggerCallFrame.cpp:
(JSC::DebuggerCallFrame::evaluateWithScopeExtension):
- interpreter/Interpreter.cpp:
(JSC::eval):
- parser/Parser.h:
(JSC::Parser<LexerType>::parse):
(JSC::parse):
- parser/VariableEnvironment.cpp:
(JSC::CompactTDZEnvironment::sortCompact):
(JSC::CompactTDZEnvironment::CompactTDZEnvironment):
(JSC::CompactTDZEnvironment::operator== const):
(JSC::CompactTDZEnvironment::toTDZEnvironmentSlow const):
(JSC::CompactTDZEnvironmentMap::get):
(JSC::CompactTDZEnvironmentMap::Handle::~Handle):
(JSC::CompactTDZEnvironmentMap::Handle::Handle):
(JSC::CompactVariableEnvironment::CompactVariableEnvironment): Deleted.
(JSC::CompactVariableEnvironment::operator== const): Deleted.
(JSC::CompactVariableEnvironment::toVariableEnvironment const): Deleted.
(JSC::CompactVariableMap::get): Deleted.
(JSC::CompactVariableMap::Handle::~Handle): Deleted.
(JSC::CompactVariableMap::Handle::Handle): Deleted.
- parser/VariableEnvironment.h:
(JSC::CompactTDZEnvironment::toTDZEnvironment const):
(JSC::CompactTDZEnvironmentKey::CompactTDZEnvironmentKey):
(JSC::CompactTDZEnvironmentKey::hash):
(JSC::CompactTDZEnvironmentKey::equal):
(JSC::CompactTDZEnvironmentKey::makeDeletedValue):
(JSC::CompactTDZEnvironmentKey::isHashTableDeletedValue const):
(JSC::CompactTDZEnvironmentKey::environment):
(WTF::HashTraits<JSC::CompactTDZEnvironmentKey>::emptyValue):
(WTF::HashTraits<JSC::CompactTDZEnvironmentKey>::isEmptyValue):
(WTF::HashTraits<JSC::CompactTDZEnvironmentKey>::constructDeletedValue):
(WTF::HashTraits<JSC::CompactTDZEnvironmentKey>::isDeletedValue):
(JSC::CompactTDZEnvironmentMap::Handle::environment const):
(JSC::CompactVariableEnvironment::hash const): Deleted.
(JSC::CompactVariableMapKey::CompactVariableMapKey): Deleted.
(JSC::CompactVariableMapKey::hash): Deleted.
(JSC::CompactVariableMapKey::equal): Deleted.
(JSC::CompactVariableMapKey::makeDeletedValue): Deleted.
(JSC::CompactVariableMapKey::isHashTableDeletedValue const): Deleted.
(JSC::CompactVariableMapKey::isHashTableEmptyValue const): Deleted.
(JSC::CompactVariableMapKey::environment): Deleted.
(WTF::HashTraits<JSC::CompactVariableMapKey>::emptyValue): Deleted.
(WTF::HashTraits<JSC::CompactVariableMapKey>::isEmptyValue): Deleted.
(WTF::HashTraits<JSC::CompactVariableMapKey>::constructDeletedValue): Deleted.
(WTF::HashTraits<JSC::CompactVariableMapKey>::isDeletedValue): Deleted.
(JSC::CompactVariableMap::Handle::Handle): Deleted.
(JSC::CompactVariableMap::Handle::operator=): Deleted.
(JSC::CompactVariableMap::Handle::operator bool const): Deleted.
(JSC::CompactVariableMap::Handle::environment const): Deleted.
(JSC::CompactVariableMap::Handle::swap): Deleted.
- runtime/CachedTypes.cpp:
(JSC::Decoder::handleForTDZEnvironment const):
(JSC::Decoder::setHandleForTDZEnvironment):
(JSC::CachedCompactTDZEnvironment::encode):
(JSC::CachedCompactTDZEnvironment::decode const):
(JSC::CachedCompactTDZEnvironmentMapHandle::encode):
(JSC::CachedCompactTDZEnvironmentMapHandle::decode const):
(JSC::CachedFunctionExecutableRareData::decode const):
(JSC::Decoder::handleForEnvironment const): Deleted.
(JSC::Decoder::setHandleForEnvironment): Deleted.
(JSC::CachedCompactVariableEnvironment::encode): Deleted.
(JSC::CachedCompactVariableEnvironment::decode const): Deleted.
(JSC::CachedCompactVariableMapHandle::encode): Deleted.
(JSC::CachedCompactVariableMapHandle::decode const): Deleted.
- runtime/CachedTypes.h:
- runtime/CodeCache.cpp:
(JSC::generateUnlinkedCodeBlockImpl):
(JSC::generateUnlinkedCodeBlock):
(JSC::generateUnlinkedCodeBlockForDirectEval):
(JSC::recursivelyGenerateUnlinkedCodeBlockForProgram):
(JSC::recursivelyGenerateUnlinkedCodeBlockForModuleProgram):
(JSC::CodeCache::getUnlinkedGlobalCodeBlock):
- runtime/CodeCache.h:
- runtime/Completion.cpp:
(JSC::generateProgramBytecode):
(JSC::generateModuleBytecode):
- runtime/DirectEvalExecutable.cpp:
(JSC::DirectEvalExecutable::create):
- runtime/DirectEvalExecutable.h:
- runtime/JSScope.cpp:
(JSC::JSScope::collectClosureVariablesUnderTDZ):
- runtime/JSScope.h:
- runtime/VM.cpp:
(JSC::VM::VM):
- runtime/VM.h:
Source/WTF:
- wtf/RefPtr.h:
(WTF::swap): Deleted.
This function is no longer necessary, and causes ADL (https://en.cppreference.com/w/cpp/language/adl)
compile errors when not using DumbPtrTraits and calling sort on a vector of that type.
- 12:08 PM Changeset in webkit [269114] by
-
- 18 edits2 copies2 moves4 adds in trunk/Tools
[webkitflaskpy] Create shared library for WebKit's flask tooling
https://bugs.webkit.org/show_bug.cgi?id=218257
<rdar://problem/70736269>
Rubber-stamped by Aakash Jain.
- Scripts/libraries/resultsdbpy/resultsdbpy/init.py:
(_maybe_add_webkit_python_library_paths): Add webkitcorepy and webkitflaskpy.
(_maybe_add_webkitcorepy_path): Renamed _maybe_add_webkit_python_library_paths.
- Scripts/libraries/resultsdbpy/resultsdbpy/flask_support/util.py: Moved to webkitflaskpy/util.py.
- Scripts/libraries/resultsdbpy/resultsdbpy/flask_support/util_unittest.py: Moved to webkitflaskpy/util_unittest.py.
- Scripts/libraries/webkitflaskpy: Added.
- Scripts/libraries/webkitflaskpy/MANIFEST.in: Added.
- Scripts/libraries/webkitflaskpy/README.md: Added.
- Scripts/libraries/webkitflaskpy/setup.py: Added.
- Scripts/libraries/webkitflaskpy/webkitflaskpy: Added.
- Scripts/libraries/webkitflaskpy/webkitflaskpy/init.py: Added.
- Scripts/libraries/webkitflaskpy/webkitflaskpy/util.py: Moved from resultsdpy/flask_support/util.py.
- Scripts/libraries/webkitflaskpy/webkitflaskpy/util_unittest.py: Moved from resultsdpy/flask_support/util_unittest.py.
- Scripts/webkitpy/test/main.py:
(main): Add
- 11:59 AM Changeset in webkit [269113] by
-
- 4 edits in branches/safari-610.2.11.51-branch
Cherry-pick r269094. rdar://problem/70769706
Use _CFURLConnectionSetFrameworkStubs for SecItemShim instead of DYLD_INTERPOSE on Apple Silicon Macs
https://bugs.webkit.org/show_bug.cgi?id=218269
<rdar://problem/70491533>
Reviewed by Darin Adler.
Source/WebKit:
r171066 introduced the use of _CFURLConnectionSetFrameworkStubs on iOS for CFNetwork to be able
to get and set credentials as the UI process. This is also needed on Apple Silicon Macs.
We should eventually replace it with an even cleaner per-NSURLSession solution, but this is a step
in the right direction, and I verified manually that it fixes the radar.
Covered by an API test that used to fail on Apple Silicon Macs.
- Shared/mac/SecItemShim.cpp: (WebKit::initializeSecItemShim):
Tools:
- TestWebKitAPI/Tests/WebKitCocoa/Challenge.mm: (TEST):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@269094 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 11:46 AM Changeset in webkit [269112] by
-
- 8 edits in branches/safari-610.2.11.51-branch/Source
Versioning.
WebKit-7610.2.11.51.7
- 11:33 AM Changeset in webkit [269111] by
-
- 75 edits in trunk
Reduce Preference Override Methods: TabsToLinks/SpatialNavigation
https://bugs.webkit.org/show_bug.cgi?id=218288
Reviewed by Tim Horton.
Source/WebKit:
Removes WKPreferencesGet/SetTabToLinksEnabled preference as it duplicates functionality of
WKPreferencesGet/SetTabsToLinks. The former was added for https://bugs.webkit.org/show_bug.cgi?id=95329
but was redundant even at the time. We can now use test header commands for all of its
use cases.
Also removes testing only bundle SPI for enabling spatial navigation which also can be
set via test headers instead.
- UIProcess/API/C/WKPreferences.cpp:
(WKPreferencesSetTabToLinksEnabled): Deleted.
(WKPreferencesGetTabToLinksEnabled): Deleted.
- UIProcess/API/C/WKPreferencesRefPrivate.h:
- WebProcess/InjectedBundle/API/c/WKBundle.cpp:
(WKBundleSetSpatialNavigationEnabled): Deleted.
- WebProcess/InjectedBundle/API/c/WKBundlePrivate.h:
- WebProcess/InjectedBundle/InjectedBundle.cpp:
(WebKit::InjectedBundle::overrideBoolPreferenceForTestRunner):
(WebKit::InjectedBundle::setSpatialNavigationEnabled): Deleted.
- WebProcess/InjectedBundle/InjectedBundle.h:
- WebProcess/WebPage/WebPage.h:
(WebKit::WebPage::setTabToLinksEnabled): Deleted.
(WebKit::WebPage::tabToLinksEnabled const): Deleted.
Source/WTF:
- Scripts/Preferences/WebPreferences.yaml:
Unify TabToLinksEnabled and TabsToLinks. TabToLinksEnabled was added for https://bugs.webkit.org/show_bug.cgi?id=95329
and has never actually been needed.
Tools:
Replace uses of testRunner.overridePreference("WebKitTabToLinksPreferenceKey", ...) and
testRunner.setSpatialNavigationEnabled(...) with test header commands, helping to reduce
the number of different ways we have to override preferences in LayoutTests.
- DumpRenderTree/TestOptions.cpp:
(WTR::TestOptions::defaults):
- DumpRenderTree/TestRunner.cpp:
(TestRunner::staticFunctions):
(setSpatialNavigationEnabledCallback): Deleted.
- DumpRenderTree/TestRunner.h:
- DumpRenderTree/mac/DumpRenderTree.mm:
(resetWebPreferencesToConsistentValues):
- DumpRenderTree/mac/TestRunnerMac.mm:
(TestRunner::setSpatialNavigationEnabled): Deleted.
- DumpRenderTree/win/DumpRenderTree.cpp:
(resetWebPreferencesToConsistentValues):
(setWebPreferencesForTestOptions):
- WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl:
- WebKitTestRunner/InjectedBundle/InjectedBundle.cpp:
(WTR::InjectedBundle::beginTesting):
- WebKitTestRunner/InjectedBundle/TestRunner.cpp:
(WTR::TestRunner::setSpatialNavigationEnabled): Deleted.
- WebKitTestRunner/InjectedBundle/TestRunner.h:
- WebKitTestRunner/TestController.cpp:
(WTR::TestController::resetPreferencesToConsistentValues):
LayoutTests:
Replace uses of testRunner.overridePreference("WebKitTabToLinksPreferenceKey", ...) and
testRunner.setSpatialNavigationEnabled(...) with test header commands, helping to reduce
the number of different ways we have to override preferences in LayoutTests.
- accessibility/mac/caret-browsing-tab-selection.html:
- accessibility/mac/focus-setting-selection-syncronizing-not-clearing.html:
- accessibility/mac/selection-element-tabbing-to-link.html:
- accessibility/mac/selection-notification-focus-change.html:
- accessibility/mac/tab-focus-post-notification.html:
- fast/events/tab-focus-anchor.html:
- fast/events/tab-focus-link-in-canvas.html:
- fast/spatial-navigation/snav-1st-stop.html:
- fast/spatial-navigation/snav-clipped-overflowed-content.html:
- fast/spatial-navigation/snav-container-only-white-space.html:
- fast/spatial-navigation/snav-container-white-space.html:
- fast/spatial-navigation/snav-display-contents-crash.html:
- fast/spatial-navigation/snav-div-overflow-scrol-hidden.html:
- fast/spatial-navigation/snav-div-scrollable-but-without-focusable-content.html:
- fast/spatial-navigation/snav-fully-aligned-horizontally.html:
- fast/spatial-navigation/snav-fully-aligned-vertically.html:
- fast/spatial-navigation/snav-hidden-focusable-element.html:
- fast/spatial-navigation/snav-hidden-iframe-zero-size.html:
- fast/spatial-navigation/snav-hidden-iframe.html:
- fast/spatial-navigation/snav-iframe-flattening-simple.html:
- fast/spatial-navigation/snav-iframe-nested.html:
- fast/spatial-navigation/snav-iframe-no-focusable-content.html:
- fast/spatial-navigation/snav-iframe-no-scrollable-content.html:
- fast/spatial-navigation/snav-iframe-recursive-offset-parent.html:
- fast/spatial-navigation/snav-iframe-with-offscreen-focusable-element.html:
- fast/spatial-navigation/snav-imagemap-area-not-focusable.html:
- fast/spatial-navigation/snav-imagemap-area-without-image.html:
- fast/spatial-navigation/snav-imagemap-overlapped-areas.html:
- fast/spatial-navigation/snav-imagemap-simple.html:
- fast/spatial-navigation/snav-input.html:
- fast/spatial-navigation/snav-media-elements.html:
- fast/spatial-navigation/snav-multiple-select-focusring.html:
- fast/spatial-navigation/snav-multiple-select-optgroup.html:
- fast/spatial-navigation/snav-multiple-select.html:
- fast/spatial-navigation/snav-offscreen-content.html:
- fast/spatial-navigation/snav-only-clipped-overflow-content.html:
- fast/spatial-navigation/snav-radio-group.html:
- fast/spatial-navigation/snav-radio.html:
- fast/spatial-navigation/snav-search-optimization.html:
- fast/spatial-navigation/snav-simple-content-overflow.html:
- fast/spatial-navigation/snav-single-select-list.html:
- fast/spatial-navigation/snav-single-select.html:
- fast/spatial-navigation/snav-table-traversal.html:
- fast/spatial-navigation/snav-textarea.html:
- fast/spatial-navigation/snav-tiny-table-traversal.html:
- fast/spatial-navigation/snav-two-elements-one-line.html:
- fast/spatial-navigation/snav-unit-overflow-and-scroll-in-direction.html:
- fast/spatial-navigation/snav-z-index.html:
- fast/spatial-navigation/snav-zero-margin-content.html:
- media/media-controls-accessibility.html:
- media/tab-focus-inside-media-elements.html:
- 11:17 AM Changeset in webkit [269110] by
-
- 2 edits in trunk/Source/WebCore
[LFC][IFC] horizontalAlignmentOffset should check for empty run list
https://bugs.webkit.org/show_bug.cgi?id=218285
<rdar://problem/70730722>
Reviewed by Antti Koivisto.
LineBoxBuilder functions check for empty run list except this static helper.
- layout/inlineformatting/InlineFormattingContextGeometry.cpp:
(WebCore::Layout::horizontalAlignmentOffset):
- 10:41 AM Changeset in webkit [269109] by
-
- 3 edits in trunk/Source/WebKit
[Cocoa] Remove soft linking of Contacts.framework
https://bugs.webkit.org/show_bug.cgi?id=218289
Reviewed by Geoff Garen.
Since Contacts.framework does not depend on WebKit and soft linking is
discouraged, WebKit should link Contacts.framework normally.
Soft linking requires running the linker at runtime, leading to an
unwanted performance cost. By normally linking (on iOS) and weak linking
(on macOS), the linkage is declared at build time, which enables running
the linker at build/update/install time and avoiding the runtime cost.
- Configurations/WebKit.xcconfig:
On macOS, weak link the framework since Contacts.framework is not
available on the Base System.
- Platform/cocoa/PaymentAuthorizationPresenter.mm:
(WebKit::toNSError):
- 10:40 AM Changeset in webkit [269108] by
-
- 12 edits in trunk
AudioBuffer channels should be neuterable / detachable
https://bugs.webkit.org/show_bug.cgi?id=218286
Reviewed by Eric Carlson.
LayoutTests/imported/w3c:
Rebaseline WPT test that is now passing. This test is also passing in Firefox. It is crashing in Blink.
- web-platform-tests/webaudio/the-audio-api/the-convolvernode-interface/transferred-buffer-output-expected.txt:
Source/WebCore:
AudioBuffer channels should be neuterable / detachable:
When the one of the channels' buffers gets detached/neutered, the array returned by
getChannelData(0) is neutered and thus has zero length. Internally though, if
channelData() gets called and ANY of the channels' buffers are detached, we return
a new empty array, as per the specification. This makes sure we end up with silence
on all channels when any of the channels gets detached, which is consistent with the
specification and Firefox (Blink seems to crash).
To make the AudioBuffer API less error-prone when used natively, I updated length()
and duration() to return 0 whenever any of the channels is detached. This is safer
since channelData() returns 0-length arrays in this case. The Web API keeps returning
the original values though so they rely on new originalLength() / originalDuration()
getters.
No new tests, rebaselined / updated existing tests.
- Modules/webaudio/AudioBuffer.cpp:
(WebCore::AudioBuffer::create):
(WebCore::AudioBuffer::AudioBuffer):
(WebCore::AudioBuffer::invalidate):
(WebCore::AudioBuffer::channelData):
(WebCore::AudioBuffer::zero):
(WebCore::AudioBuffer::hasDetachedChannelBuffer const):
- Modules/webaudio/AudioBuffer.h:
(WebCore::AudioBuffer::originalLength const):
(WebCore::AudioBuffer::originalDuration const):
(WebCore::AudioBuffer::length const):
(WebCore::AudioBuffer::duration const):
- Modules/webaudio/AudioBuffer.idl:
- Modules/webaudio/ConvolverNode.cpp:
(WebCore::ConvolverNode::setBuffer):
- Modules/webaudio/ScriptProcessorNode.cpp:
(WebCore::ScriptProcessorNode::initialize):
LayoutTests:
- webaudio/audiobuffer-neuter-expected.txt:
- webaudio/audiobuffer-neuter.html:
Extend layout test coverage. I have verified that this new version of the test is fully passing in
Gecko. In Blink, the initial checks all pass but it then crashes during rendering.
- webaudio/resources/audio-testing.js:
(createConstantBuffer):
Improve createConstantBuffer() so that it can construct buffers with multiple channels.
- 10:32 AM Changeset in webkit [269107] by
-
- 3 edits1 add in trunk
DFGIntegerRangeOptimization is wrong for Upsilon (as 'shadow' nodes are not in SSA form)
https://bugs.webkit.org/show_bug.cgi?id=218073
Reviewed by Saam Barati.
JSTests:
The only testcase I managed to get for this bug loops forever when not crashing.
So I use a 1s timeout through --watchdog=1000.
- stress/bounds-checking-in-cold-loop.js: Added.
(true.vm.ftlTrue):
Source/JavaScriptCore:
In DFGIntegerRangeOptimization, when visiting an Upsilon node, we call setEquivalence, that calls setRelationship.
But despite its name, this function does not overwrite a pre-existing relationship, it simply replaces it by an over-approximation of the intersection of the old and new relationship (see the filter method).
Since the old relationship is always (by definition) an over-approximation of this intersection, it will often do nothing at all if it cannot find a closer approximation.
This is a problem specifically for Upsilon nodes, because several of them can store to the same "shadow node" corresponding to a given Phi, so they are the only case where there can already be a completely different relationship for the same nodes (coming from a different Upsilon).
The fix is very simple thanks to a suggestion by Phil: we just remove all relationships referring to the shadow node just before executing an Upsilon.
This is correct since the upsilon effectively kills that shadow node, before making it live again with a different value, and we already aggressively prune the relationshipMaps by liveness.
- dfg/DFGIntegerRangeOptimizationPhase.cpp:
- 9:17 AM Changeset in webkit [269106] by
-
- 2 edits in trunk/Tools
[ews] Ensure that uat instance doesn't send emails
https://bugs.webkit.org/show_bug.cgi?id=218227
Reviewed by Jonathan Bedard.
- CISupport/ews-build/send_email.py:
- 8:57 AM Changeset in webkit [269105] by
-
- 13 edits1 add in trunk
[Testing] Remove requirement of adding new SPI for each preference that needs testing
https://bugs.webkit.org/show_bug.cgi?id=218267
Reviewed by Simon Fraser.
Source/WebKitLegacy/mac:
Expose a set of setters to for DumpRenderTree to use when setting preferences
by string.
- WebView/WebPreferences.mm:
(-[WebPreferences _setBoolPreferenceForTestingWithValue:forKey:]):
(-[WebPreferences _setUInt32PreferenceForTestingWithValue:forKey:]):
(-[WebPreferences _setDoublePreferenceForTestingWithValue:forKey:]):
(-[WebPreferences _setStringPreferenceForTestingWithValue:forKey:]):
- WebView/WebPreferencesPrivate.h:
Tools:
Removes the requirement for WebKitLegacy (macOS), which has already been lifted for
modern WebKit, that testing new preferences requires new WebPreferences SPI. Instead,
new testing specific SPI ([WebPreferences _set*PreferenceForTestingWithValue:forKey:])
are used to allow string based setting.
To make this work with the shared WebPreferences*.yaml names, a helper is generated to
map from the shared name to the WebKitLegacy specific name.
This still doesn't quite take us all the way to supporting any WebPreferences*.yaml name
in test headers, as is supported in WebKitTestRunner, as we still need a viable mechanism
to fully reset WebPreferences between tests. Right now, each preference must be set on
each test run, requiring the complete set of preferences to be known up front.
- DumpRenderTree/CMakeLists.txt:
- DumpRenderTree/DerivedSources-input.xcfilelist:
- DumpRenderTree/DerivedSources-output.xcfilelist:
- DumpRenderTree/DerivedSources.make:
- DumpRenderTree/DumpRenderTree.xcodeproj/project.pbxproj:
- DumpRenderTree/Scripts/PreferencesTemplates/TestOptionsGeneratedWebKitLegacyKeyMapping.cpp.erb: Added.
- DumpRenderTree/TestOptions.cpp:
(WTR::TestOptions::supportedBoolWebPreferenceFeatures):
- DumpRenderTree/TestOptions.h:
- DumpRenderTree/mac/DumpRenderTree.mm:
(setWebPreferencesForTestOptions):
- DumpRenderTree/mac/TestRunnerMac.mm:
(TestRunner::overridePreference):
- 8:28 AM Changeset in webkit [269104] by
-
- 4 edits9 adds6 deletes in trunk
[GStreamer] Multi-channel (>2) support for the AudioFileReader
https://bugs.webkit.org/show_bug.cgi?id=215255
Reviewed by Xabier Rodriguez-Calvar.
Source/WebCore:
The audio file reader used to handle up to stereo audio layouts. It can now handle up to 5.1
surround layouts. This patch also modernizes the coding style of this module in various
parts.
- platform/audio/gstreamer/AudioFileReaderGStreamer.cpp:
(WebCore::initializeDebugCategory):
(WebCore::AudioFileReader::handleSample):
(WebCore::AudioFileReader::handleMessage):
(WebCore::AudioFileReader::handleNewDeinterleavePad):
(WebCore::AudioFileReader::plugDeinterleave):
(WebCore::AudioFileReader::decodeAudioForBusCreation):
(WebCore::AudioFileReader::createBus):
(WebCore::createBusFromAudioFile):
(WebCore::createBusFromInMemoryAudioFile):
LayoutTests:
- platform/glib/TestExpectations: audiobuffersource-multi-channels.html is now passing.
- platform/glib/webaudio/codec-tests/aac/vbr-128kbps-44khz-expected.wav: Added.
- platform/glib/webaudio/codec-tests/vorbis/vbr-128kbps-44khz-expected.wav: Added.
- platform/glib/webaudio/codec-tests/vorbis/vbr-70kbps-44khz-expected.wav: Added.
- platform/glib/webaudio/codec-tests/vorbis/vbr-96kbps-44khz-expected.wav: Added.
- platform/glib/webaudio/codec-tests/wav/24bit-22khz-resample-expected.wav: Added.
- platform/gtk/webaudio/codec-tests/aac/vbr-128kbps-44khz-expected.wav: Removed.
- platform/gtk/webaudio/codec-tests/mp3/128kbps-44khz-expected.wav: Removed.
- platform/gtk/webaudio/codec-tests/vorbis/vbr-128kbps-44khz-expected.wav: Removed.
- platform/gtk/webaudio/codec-tests/vorbis/vbr-70kbps-44khz-expected.wav: Removed.
- platform/gtk/webaudio/codec-tests/vorbis/vbr-96kbps-44khz-expected.wav: Removed.
- platform/gtk/webaudio/codec-tests/wav/24bit-44khz-expected.wav: Removed.
- 8:24 AM Changeset in webkit [269103] by
-
- 6 edits in trunk/Source/WebCore
[GStreamer][EME][Thunder] Do not sanitize CENC init data
https://bugs.webkit.org/show_bug.cgi?id=218182
Reviewed by Philippe Normand.
In certain cases, like smoothstreaming with PlayReady, the init
datas we are getting are correct but are not in PSSH box format
they would be "sanitized away". In this patch you can enable
sanitization customization depending on the CDM you're using.
- Modules/encryptedmedia/CDM.cpp:
(WebCore::CDM::sanitizeInitData):
- platform/encryptedmedia/CDMPrivate.cpp:
(WebCore::CDMPrivate::sanitizeInitData const):
- platform/encryptedmedia/CDMPrivate.h:
- platform/graphics/gstreamer/eme/CDMThunder.cpp:
(WebCore::CDMPrivateThunder::sanitizeInitData const):
- platform/graphics/gstreamer/eme/CDMThunder.h:
- 6:14 AM Changeset in webkit [269102] by
-
- 2 edits in trunk/Source/WebCore
[LFC][IFC] Add support for case when nested vertical alignment affects the root inlinebox vertical position
https://bugs.webkit.org/show_bug.cgi?id=218271
Reviewed by Antti Koivisto.
Let's start tracking the nested vertical alignment offsets from the root's baseline.
It enables us to find out how much offset the root inlinebox's baseline is required inside the line box.
e.g.
<div style="font-size: 50px;">
root inlinebox text content
<span style="font-size: 10px; vertical-align: text-bottom">and some nested text with an image
<img src="broken.jpg" style="vertical-align: baseline; height: 100px; width: 100px;">
</span>
</div>
In this case, the nested inline box (<span>) has 'text-bottom' vertical alignment which may stretch the line box and
may push the root inlinebox downwards so as the nested <img> (aligned with the <span>'s baseline).
We simply compute the absolute offset value for each inline level boxes as we walk the "tree" and hold on to the maximum value.
- layout/inlineformatting/InlineFormattingContextGeometry.cpp:
(WebCore::Layout::LineBoxBuilder::alignInlineLevelBoxesVerticallyAndComputeLineBoxHeight):
- 6:13 AM Changeset in webkit [269101] by
-
- 4 edits in trunk/Source/WebCore
[GStreamer] Mock video source doesn't set framerate on its caps
https://bugs.webkit.org/show_bug.cgi?id=218248
Patch by Philippe Normand <pnormand@igalia.com> on 2020-10-28
Reviewed by Xabier Rodriguez-Calvar.
Set framerate on the sample caps and reduce code duplication.
- platform/graphics/gstreamer/MediaSampleGStreamer.cpp:
(WebCore::MediaSampleGStreamer::createImageSample):
- platform/graphics/gstreamer/MediaSampleGStreamer.h:
- platform/mediastream/gstreamer/MockRealtimeVideoSourceGStreamer.cpp:
(WebCore::MockRealtimeVideoSourceGStreamer::updateSampleBuffer):
- 6:13 AM Changeset in webkit [269100] by
-
- 4 edits2 adds3 deletes in trunk/Tools
[Flatpak SDK] Update Mesa and GTK4 dependencies
https://bugs.webkit.org/show_bug.cgi?id=218281
Patch by Philippe Normand <pnormand@igalia.com> on 2020-10-28
Reviewed by Carlos Alberto Lopez Perez.
- buildstream/elements/flatpak/sdk.bst: Switch to app-debug-link as in the upstream FDO SDK.
- buildstream/elements/freedesktop-sdk.bst: Bump junction ref.
- buildstream/elements/sdk/mesa.bst: Update to 20.1.10 and add patch not present in stable release yet.
- buildstream/patches/fdo-0001-pango-Bump-to-1.47.patch: Added.
- buildstream/patches/mesa/0001-mesa-rename-_mesa_free_errors_data.patch: Removed.
- buildstream/patches/mesa/0002-mesa-add-bool-param-to-_mesa_free_context_data.patch: Removed.
- buildstream/patches/mesa/0003-mesa-st-release-debug_output-after-destroying-the-co.patch: Removed.
- buildstream/patches/mesa/0004-mesa-clear-texture-s-views-when-texture-is-remove.patch: Added.
- 5:47 AM Changeset in webkit [269099] by
-
- 2 edits in trunk/Source/WebCore
[GStreamer] Using audio files for the <img> tag triggers warnings
https://bugs.webkit.org/show_bug.cgi?id=218245
Reviewed by Xabier Rodriguez-Calvar.
Plug non-video pads to a fake sink in order to maintain a valid pipeline. Later we should
switch to decodebin3 and rely on the stream selection facilities.
- platform/graphics/gstreamer/ImageDecoderGStreamer.cpp:
(WebCore::ImageDecoderGStreamer::InnerDecoder::connectDecoderPad):
(WebCore::ImageDecoderGStreamer::InnerDecoder::preparePipeline):
- 4:41 AM Changeset in webkit [269098] by
-
- 2 edits in trunk/LayoutTests
Unreviewed, reverting r269043.
Original patch was revert, should revert expectations as well
Reverted changeset:
"Unreviewed, GStreamer gardening"
https://trac.webkit.org/changeset/269043
- 4:40 AM Changeset in webkit [269097] by
-
- 2 edits in trunk/Source/WebCore
Unreviewed, reverting r269033.
269043
Reverted changeset:
"[EME][GStreamer] Decode base64 init data if needed"
https://bugs.webkit.org/show_bug.cgi?id=218175
https://trac.webkit.org/changeset/269033
- 2:31 AM Changeset in webkit [269096] by
-
- 6 edits in trunk
[GTK4] Build broken with GTK 3.99.3
https://bugs.webkit.org/show_bug.cgi?id=218270
Reviewed by Carlos Garcia Campos.
Source/WebKit:
No new tests needed.
- UIProcess/API/gtk/WebKitWebViewBase.cpp:
(toplevelWindowStateChanged): Replace GDK_SURFACE_STATE_MINIMIZED with GDK_TOPLEVEL_STATE_MINIMIZED.
- UIProcess/API/gtk/WebKitWebViewGtk.cpp:
(surfaceStateChangedCallback): Ditto, and GDK_SURFACE_STATE_MAXIMIZED with GDK_TOPLEVEL_STATE_MAXIMIZED.
- UIProcess/Gamepad/gtk/UIGamepadProviderGtk.cpp:
(WebKit::getWebPageProxy): Write an implementation which works for GTK4.
(WebKit::UIGamepadProvider::platformWebPageProxyForGamepadInput): Accomodate for windows
being a bit less special in GTK4 and use gtk_widget_has_focus() directly.
Tools:
- buildstream/elements/sdk/gtk.bst: Bump GTK4 version to 3.99.4
Oct 27, 2020:
- 9:35 PM Changeset in webkit [269095] by
-
- 7 edits in trunk/LayoutTests
Remove unneeded whitespace between content and <br>
https://bugs.webkit.org/show_bug.cgi?id=218151
<rdar://problem/70662471>
Reviewed by Antti Koivisto.
Missed these files in r268958.
- accessibility/mac/text-marker-sentence-nav.html:
- fast/dom/HTMLTextAreaElement/reset-textarea.html:
- fast/text/basic/generic-family-reset.html:
- platform/mac/fast/dom/HTMLTextAreaElement/reset-textarea-expected.txt:
- platform/mac/fast/text/basic/generic-family-reset-expected.txt:
- 8:03 PM Changeset in webkit [269094] by
-
- 4 edits in trunk
Use _CFURLConnectionSetFrameworkStubs for SecItemShim instead of DYLD_INTERPOSE on Apple Silicon Macs
https://bugs.webkit.org/show_bug.cgi?id=218269
<rdar://problem/70491533>
Reviewed by Darin Adler.
Source/WebKit:
r171066 introduced the use of _CFURLConnectionSetFrameworkStubs on iOS for CFNetwork to be able
to get and set credentials as the UI process. This is also needed on Apple Silicon Macs.
We should eventually replace it with an even cleaner per-NSURLSession solution, but this is a step
in the right direction, and I verified manually that it fixes the radar.
Covered by an API test that used to fail on Apple Silicon Macs.
- Shared/mac/SecItemShim.cpp:
(WebKit::initializeSecItemShim):
Tools:
- TestWebKitAPI/Tests/WebKitCocoa/Challenge.mm:
(TEST):
- 7:25 PM Changeset in webkit [269093] by
-
- 2 edits in trunk/Source/WebKitLegacy
Unexpected txt file: .../WebKitLegacy.framework/.../Sources.txt
https://bugs.webkit.org/show_bug.cgi?id=218268
<rdar://problem/70742539>
Reviewed by Tim Horton.
Sources.txt and SourcesCocoa.txt were added to the WebKitLegacy
project in https://trac.webkit.org/changeset/247401 as targets of the
WebKitLegacy target. This caused them to be treated as resources and
so were copied to the framework's Resources directory on a build.
These files don't need to be included in the build, and so are removed
from that target.
- WebKitLegacy.xcodeproj/project.pbxproj:
- 7:09 PM Changeset in webkit [269092] by
-
- 11 edits in trunk
[Concurrent display lists] Add alternate versions of existing display list items that only contain inline data
https://bugs.webkit.org/show_bug.cgi?id=218259
Reviewed by Tim Horton.
Source/WebCore:
In preparation for supporting concurrent generation and consumption of display list items in the GPU process,
add new variants of some existing display list items that contain only "inline data" (i.e. no pointers).
No change in behavior; see below for more details.
- platform/graphics/Path.cpp:
(WebCore::Path::isEmpty const):
(WebCore::Path::addQuadCurveTo):
(WebCore::Path::addBezierCurveTo):
(WebCore::Path::Path):
- platform/graphics/Path.h:
Add a helper method to convert
InlinePathDatatoPath.
(WebCore::Path::inlineData const):
(WebCore::Path::encode const):
(WebCore::Path::hasInlineData const):
Rename
hasAnyInlineDatato justhasInlineData, and make it public.
(WebCore::Path::releasePlatformPathIfPossible const): Deleted.
Additionally, remove
releasePlatformPathIfPossible()altogether. This method was used to ensure that
StrokePathandFillPathwouldn't keep theirPath's platformCGPathRefs around after applying the item in
the GPU process, which leads to accumulating a pool of unusedCGPathRefs after playing back a display list
that contains manyPathobjects. However, sinceStrokeInlinePathandFillInlinePathnow exist, thePath
object we create when applying those items is always going to be temporary, which allows us to avoid this
problem.
(WebCore::Path::hasAnyInlineData const): Deleted.
- platform/graphics/cg/PathCG.cpp:
(WebCore::Path::platformPath const):
(WebCore::Path::isNull const):
- platform/graphics/displaylists/DisplayList.h:
- platform/graphics/displaylists/DisplayListItems.cpp:
(WebCore::DisplayList::Item::sizeInBytes):
(WebCore::DisplayList::SetInlineFillGradient::SetInlineFillGradient):
(WebCore::DisplayList::SetInlineFillGradient::gradient const):
(WebCore::DisplayList::SetInlineFillGradient::create):
(WebCore::DisplayList::SetInlineFillGradient::apply const):
(WebCore::DisplayList::SetInlineFillGradient::isInline):
Introduce a new SetInlineFillGradient item to represent setting the fill gradient to a gradient with at most 4
color stops, with only inline colors. This inline data is pulled out of theGradientupon construction, and
later used to reconstruct aGradientduring playback.
(WebCore::DisplayList::operator<<):
(WebCore::DisplayList::SetInlineFillColor::create):
(WebCore::DisplayList::SetInlineFillColor::apply const):
Change
SetFillColortoSetInlineFillColor, and make it pass around anSRGB<uint8_t>instead of aColor,
since the latter could contain a pointer to an extended color.
(WebCore::DisplayList::SetInlineStrokeColor::create):
(WebCore::DisplayList::SetInlineStrokeColor::apply const):
Similar to the above, but when setting the stroke color to an inline (non-extended) color.
(WebCore::DisplayList::SetStrokeThickness::create):
(WebCore::DisplayList::SetStrokeThickness::apply const):
(WebCore::DisplayList::FillInlinePath::FillInlinePath):
(WebCore::DisplayList::FillInlinePath::apply const):
(WebCore::DisplayList::FillPath::apply const):
(WebCore::DisplayList::StrokePath::apply const):
(WebCore::DisplayList::StrokeInlinePath::localBounds const):
(WebCore::DisplayList::StrokeInlinePath::apply const):
(WebCore::DisplayList::StrokeInlinePath::StrokeInlinePath):
Add
StrokeInlinePathandFillInlinePath, which containInlinePathDatainstead ofPathobjects and only
constructpath()objects when needed (i.e. when applying to aGraphicsContext).
(WebCore::DisplayList::SetFillColor::create): Deleted.
(WebCore::DisplayList::SetFillColor::apply const): Deleted.
(WebCore::DisplayList::SetStrokeState::create): Deleted.
(WebCore::DisplayList::SetStrokeState::apply const): Deleted.
- platform/graphics/displaylists/DisplayListItems.h:
(WebCore::DisplayList::SetInlineFillGradient::create):
(WebCore::DisplayList::SetInlineFillGradient::encode const):
(WebCore::DisplayList::SetInlineFillGradient::decode):
(WebCore::DisplayList::SetInlineFillColor::color const):
(WebCore::DisplayList::SetInlineFillColor::SetInlineFillColor):
(WebCore::DisplayList::SetInlineFillColor::encode const):
(WebCore::DisplayList::SetInlineFillColor::decode):
(WebCore::DisplayList::SetInlineStrokeColor::color const):
(WebCore::DisplayList::SetInlineStrokeColor::SetInlineStrokeColor):
(WebCore::DisplayList::SetInlineStrokeColor::encode const):
(WebCore::DisplayList::SetInlineStrokeColor::decode):
(WebCore::DisplayList::SetStrokeThickness::thickness const):
(WebCore::DisplayList::SetStrokeThickness::SetStrokeThickness):
(WebCore::DisplayList::SetStrokeThickness::encode const):
(WebCore::DisplayList::SetStrokeThickness::decode):
Pull stroke thickness out into its own display list item.
(WebCore::DisplayList::FillInlinePath::create):
(WebCore::DisplayList::FillInlinePath::path const):
(WebCore::DisplayList::FillInlinePath::encode const):
(WebCore::DisplayList::FillInlinePath::decode):
(WebCore::DisplayList::StrokeInlinePath::create):
(WebCore::DisplayList::StrokeInlinePath::path const):
(WebCore::DisplayList::StrokeInlinePath::encode const):
(WebCore::DisplayList::StrokeInlinePath::decode):
(WebCore::DisplayList::Item::encode const):
(WebCore::DisplayList::Item::decode):
(WebCore::DisplayList::SetFillColor::color const): Deleted.
(WebCore::DisplayList::SetFillColor::SetFillColor): Deleted.
(WebCore::DisplayList::SetFillColor::encode const): Deleted.
(WebCore::DisplayList::SetFillColor::decode): Deleted.
(WebCore::DisplayList::SetStrokeState::color const): Deleted.
(WebCore::DisplayList::SetStrokeState::hasColor const): Deleted.
(WebCore::DisplayList::SetStrokeState::thickness const): Deleted.
(WebCore::DisplayList::SetStrokeState::hasThickness const): Deleted.
(WebCore::DisplayList::SetStrokeState::SetStrokeState): Deleted.
(WebCore::DisplayList::SetStrokeState::encode const): Deleted.
(WebCore::DisplayList::SetStrokeState::decode): Deleted.
Split
SetStrokeStateout into separate items tracking thickness and stroke color.
- platform/graphics/displaylists/DisplayListRecorder.cpp:
(WebCore::DisplayList::containsOnlyInlineStateChanges):
Refactor this code so that it emits multiple display list items if multiple inline states change. Previously,
this was only done for simultaneous stroke color and stroke thickness changes (via theSetStrokeStateitem);
this was done to avoid creating more display list items than needed. However, once all inline display list items
are constructed directly in shared memory, there will be (almost) zero overhead for splitting this into
separate items.
(WebCore::DisplayList::Recorder::appendStateChangeItem):
(WebCore::DisplayList::Recorder::willAppendItem):
(WebCore::DisplayList::Recorder::fillPath):
(WebCore::DisplayList::Recorder::strokePath):
(WebCore::DisplayList::containsOnlyStrokeColorOrThicknessChange): Deleted.
(WebCore::DisplayList::containsOnlyFillColorChange): Deleted.
(WebCore::DisplayList::createStateChangeItem): Deleted.
Additionally refactor this method so that it is now a private method that appends to
m_displayList, instead of
returning a display list item to be appended. This will become important in a future patch, which will replace
the existingappendmethod with a templated version that takes the display list item type as a template
argument.
- platform/graphics/displaylists/DisplayListRecorder.h:
LayoutTests:
Rebaseline an existing test.
- displaylists/canvas-display-list-expected.txt:
- 6:49 PM Changeset in webkit [269091] by
-
- 5 edits in branches/safari-610-branch/Source
Apply patch. rdar://problem/70733375
- 6:42 PM Changeset in webkit [269090] by
-
- 2 edits in branches/safari-610-branch/Source/WTF
Cherry-pick r269019. rdar://problem/70733412
Add extra validation to MetaAllocator::findAndRemoveFreeSpace
https://bugs.webkit.org/show_bug.cgi?id=217792
<rdar://problem/69433015>
Reviewed Saam Barati.
- wtf/MetaAllocator.cpp: (WTF::MetaAllocator::findAndRemoveFreeSpace):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@269019 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 6:42 PM Changeset in webkit [269089] by
-
- 2 edits in branches/safari-610-branch/Source/WTF
Cherry-pick r269017. rdar://problem/70733371
Assert that WTF::HashTable does not visit the same bucket twice
https://bugs.webkit.org/show_bug.cgi?id=217691
<rdar://problem/69887843>
Reviewed by Saam Barati.
- wtf/HashTable.h: (WTF::KeyTraits>::inlineLookup): (WTF::KeyTraits>::lookupForWriting): (WTF::KeyTraits>::fullLookupForWriting): (WTF::KeyTraits>::addUniqueForInitialization): (WTF::KeyTraits>::add):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@269017 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 6:42 PM Changeset in webkit [269088] by
-
- 2 edits in branches/safari-610-branch/Source/JavaScriptCore
Cherry-pick r269016. rdar://problem/70733329
Validate addresses returned by LinkBuffer::locationOf
https://bugs.webkit.org/show_bug.cgi?id=217786
<rdar://problem/69887913>
Reviewed by Saam Barati.
- assembler/LinkBuffer.h: (JSC::LinkBuffer::locationOf): (JSC::LinkBuffer::locationOfNearCall): (JSC::LinkBuffer::getLinkerAddress):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@269016 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 6:42 PM Changeset in webkit [269087] by
-
- 7 edits1 add in branches/safari-610-branch
Cherry-pick r268878. rdar://problem/70733353
UIClient isn't notified when page muted state changes
https://bugs.webkit.org/show_bug.cgi?id=218085
<rdar://problem/70462420>
Reviewed by Youenn Fablet.
Source/WebKit:
API test: WKWebView.MediaMuted
- UIProcess/API/C/WKPage.cpp: (WKPageGetMediaState): reportedMediaCaptureState -> reportedMediaState.
- UIProcess/API/Cocoa/WKWebView.mm: (-[WKWebView _mediaCaptureState]): Ditto.
- UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::updateReportedMediaCaptureState): Only record current capture state in m_reportedMediaCaptureState. m_delayStopCapturingReporting isn't necessary, remove it.
- UIProcess/WebPageProxy.h: (WebKit::WebPageProxy::reportedMediaState const): Renamed from reportedMediaCaptureState to reflect what it returns. (WebKit::WebPageProxy::mediaStateFlags const): Deleted. (WebKit::WebPageProxy::reportedMediaCaptureState const): Deleted.
Tools:
- TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
- TestWebKitAPI/TestWebKitAPI.xcodeproj/xcshareddata/xcschemes/TestWebKitAPI.xcscheme:
- TestWebKitAPI/Tests/WebKitCocoa/MediaMutedState.mm: Added. (-[AudioStateObserver initWithWebView:]): (-[AudioStateObserver observeValueForKeyPath:ofObject:change:context:]): (-[AudioStateTestView setMuted:]): (TestWebKitAPI::TEST):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@268878 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 6:42 PM Changeset in webkit [269086] by
-
- 2 edits in branches/safari-610-branch/Source/WebKit
Cherry-pick r268537. rdar://problem/70733338
Crash in -[WKDateTimePicker setDateTimePickerToInitialValue]
https://bugs.webkit.org/show_bug.cgi?id=217763
<rdar://problem/68635008>
Reviewed by Wenson Hsieh.
Crash occurs due to the use of an autoreleased NSString in
setDateTimePickerToInitialValue. To fix, make the variable
a RetainPtr.
- UIProcess/ios/forms/WKDateTimeInputControl.mm: (-[WKDateTimePicker setDateTimePickerToInitialValue]):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@268537 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 6:42 PM Changeset in webkit [269085] by
-
- 2 edits in branches/safari-610-branch/Source/WTF
Cherry-pick r268135. rdar://problem/70733407
Add maximum depth check to RedBlackTree
https://bugs.webkit.org/show_bug.cgi?id=217249
<rdar://problem/69432957>
Reviewed by Saam Barati.
We limit all tree traversals to 128 levels deep. That's a very conservative upper bound that
would work for a tree that used all of the available address space.
- wtf/RedBlackTree.h:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@268135 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 6:36 PM Changeset in webkit [269084] by
-
- 21 edits in trunk/Source
Make RenderingMode a bool enum and remove ShouldAccelerate
https://bugs.webkit.org/show_bug.cgi?id=218264
Reviewed by Tim Horton.
Source/WebCore:
Convert RenderingMode back to be a bool enum. ShouldAccelerate will be
removed so no conversion from RenderingMode to ShouldAccelerate and vice
versa is needed anymore. Only one instance of ImageBuffer::create() will
be handling creating the remote and display list ImageBuffers.
-- Remove unused createImageBuffer() method in HostWindow and ChromeClient.
-- Remove unused argument 'ShouldUseDisplayList' from createImageBuffer()
of HostWindow, ChromeClient and WebChromeClient.
- html/HTMLCanvasElement.cpp:
(WebCore::HTMLCanvasElement::createImageBuffer const):
- html/HTMLVideoElement.cpp:
(WebCore::HTMLVideoElement::createBufferForPainting const):
- html/HTMLVideoElement.h:
- html/ImageBitmap.cpp:
(WebCore::ImageBitmap::createPromise):
- html/canvas/CanvasRenderingContext2DBase.cpp:
(WebCore::CanvasRenderingContext2DBase::createPattern):
- page/Chrome.cpp:
(WebCore::Chrome::createImageBuffer const):
- page/Chrome.h:
- page/ChromeClient.h:
(WebCore::ChromeClient::createImageBuffer const):
- platform/HostWindow.h:
- platform/graphics/ImageBuffer.cpp:
(WebCore::ImageBuffer::create):
- platform/graphics/ImageBuffer.h:
- platform/graphics/RenderingMode.h:
Source/WebKit:
When creating a remote ImageBuffer in WebKit, all we need to know is whether
the backend is accelerated or not. RemoteImageBufferProxy has to be backed
by a DisplayList. RemoteImageBuffer has to own the real backend. Two enum
values for RenderingMode is sufficient for creating the remote ImageBuffer.
- GPUProcess/graphics/RemoteRenderingBackend.cpp:
(WebKit::RemoteRenderingBackend::createImageBuffer):
- GPUProcess/graphics/RemoteRenderingBackend.h:
- Shared/WebCoreArgumentCoders.h:
- WebProcess/GPU/graphics/RemoteRenderingBackendProxy.cpp:
(WebKit::RemoteRenderingBackendProxy::createImageBuffer):
- WebProcess/GPU/graphics/RemoteRenderingBackendProxy.h:
- WebProcess/WebCoreSupport/WebChromeClient.cpp:
(WebKit::WebChromeClient::createImageBuffer const):
- WebProcess/WebCoreSupport/WebChromeClient.h:
- 6:00 PM Changeset in webkit [269083] by
-
- 14 edits2 adds in trunk/Websites/perf.webkit.org
Refactor 'platforms' table to contain group information.
https://bugs.webkit.org/show_bug.cgi?id=193132
Reviewed by Ryosuke Niwa.
Group 'platforms' so that bisecting can use commit sets from other platforms which are in the same platform group.
This will help to enhance the bisecting capability to higher granularity.
Added admin page to manage platform groups.
Updated platform admin page to allow update platform group.
SQL query to update existing database:
BEGIN;
CREATE TABLE platform_groups (
platformgroup_id serial PRIMARY KEY,
platformgroup_name varchar(64) NOT NULL,
CONSTRAINT platform_group_name_must_be_unique UNIQUE (platformgroup_name));
ALTER TABLE platforms ADD COLUMN platform_group integer REFERENCES platform_groups DEFAULT NULL;
END;
- init-database.sql: Added 'platform_group' column to 'platforms' table.
Added 'platform_groups' table.
- migrate-database.sql: Updated migration script accordingly.
- public/admin/platform-groups.php: Added a page to manage platform groups.
- public/admin/platforms.php: Added support to update platform group in admin page.
- public/include/admin-header.php: Added link to page that maneges platform groups.
- public/include/manifest-generator.php: Added 'platformGroup' in manifest.
- public/v3/index.html: Included 'platform-groups.js'.
- public/v3/models/analysis-task.js:
(AnalysisTask.prototype.async.commitSetsFromTestGroupsAndMeasurementSet):
Included measurement commit sets from other platforms in the same platform group.
(AnalysisTask.prototype._commitSetForOtherPlatformsInSameGroup):
Helper function to find measurment commit set for other platforms in same platform group.
- public/v3/models/manifest.js: Added step to build 'PlatformGroup' instances.
- public/v3/models/platform-group.js: Added 'PlatformGroup' to represent entries in 'platform_groups' table.
(PlatformGroup):
(PlatformGroup.prototype.addPlatform):
(PlatformGroup.prototype.platforms):
- public/v3/models/platform.js: Added itself to 'PlatformGroup' in constructor if it belongs
to a group.
(Platform.prototype.group): Return the platform group of current platform.
- public/v3/models/time-series.js: Added helper function to show view between a given time range.
(TimeSeries.prototype.viewBetweenTime):
- server-tests/api-manifest-tests.js: Updated unit test to also test platform group initialization.
- tools/js/database.js: Added prefix for 'platform_groups'.
- tools/js/v3-models.js: Added import for platform group.
- 5:10 PM Changeset in webkit [269082] by
-
- 6 edits in trunk/Source
Adopt the UIPointerInteraction API
https://bugs.webkit.org/show_bug.cgi?id=218266
<rdar://problem/70732850>
Reviewed by Wenson Hsieh.
Source/WebKit:
No new tests, just moving from deprecated SPI to API.
- Platform/spi/ios/UIKitSPI.h:
- UIProcess/ios/WKContentViewInteraction.h:
- UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView setUpInteraction]):
(-[WKContentView cleanUpInteraction]):
(-[WKContentView setUpPointerInteraction]):
(-[WKContentView _pointerInteraction:regionForRequest:defaultRegion:completion:]):
(-[WKContentView pointerRegionForPositionInformation:point:]):
(-[WKContentView pointerInteraction:styleForRegion:]):
(-[WKContentView setUpCursorInteraction]): Deleted.
(-[WKContentView _cursorInteraction:regionForLocation:defaultRegion:completion:]): Deleted.
(-[WKContentView cursorRegionForPositionInformation:point:]): Deleted.
(-[WKContentView cursorInteraction:styleForRegion:modifiers:]): Deleted.
Source/WTF:
- wtf/PlatformHave.h:
- 5:06 PM Changeset in webkit [269081] by
-
- 8 edits1 add in trunk
AudioBuffer.getChannelData(x) should keep returning the same JS wrapper for a given channel
https://bugs.webkit.org/show_bug.cgi?id=218265
Reviewed by Geoff Garen.
LayoutTests/imported/w3c:
Rebaseline WPT test that is now fully passing. I have verified that this test passes in Chrome and Firefox
as well.
- web-platform-tests/webaudio/the-audio-api/the-audiobuffer-interface/audiobuffer-getChannelData-expected.txt:
Source/WebCore:
AudioBuffer.getChannelData(x) should keep returning the same JS wrapper for a given channel.
This is the behavior of Chrome & Firefox and is covered by Web-Platform-Tests.
No new tests, rebaselined existing test.
- Modules/webaudio/AudioBuffer.cpp:
(WebCore::AudioBuffer::AudioBuffer):
(WebCore::AudioBuffer::releaseMemory):
(WebCore::AudioBuffer::getChannelData):
(WebCore::AudioBuffer::visitChannelWrappers):
- Modules/webaudio/AudioBuffer.h:
- Modules/webaudio/AudioBuffer.idl:
- Sources.txt:
- WebCore.xcodeproj/project.pbxproj:
- 4:50 PM Changeset in webkit [269080] by
-
- 2 edits in trunk/Tools
DumpRenderTree spams stderr with CFNetwork warnings about null diskcache path
https://bugs.webkit.org/show_bug.cgi?id=218241
Reviewed by Darin Adler.
Remove attempt at using a memory only shared URL cache, as subsequent calls
to [WebPreferences setCacheModel:] cause a disk cache to be used anyway. All
this really seems to do is cause CFNetwork to log to stderr. It's unlikely
this optimization is worthwhile anyway these days, as avoiding touching the
filesystem is less necessary.
- DumpRenderTree/mac/DumpRenderTree.mm:
(prepareConsistentTestingEnvironment):
- 4:23 PM Changeset in webkit [269079] by
-
- 26 edits in trunk/LayoutTests
[GTK][WPE] Rebaseline tests after r269044 and r269036
https://bugs.webkit.org/show_bug.cgi?id=218151
Unreviewed gardening.
- platform/gtk/fast/dom/HTMLTextAreaElement/reset-textarea-expected.txt:
- platform/gtk/fast/forms/option-index-expected.txt:
- platform/gtk/fast/text/basic/generic-family-reset-expected.txt:
- platform/gtk/fast/xsl/xslt-enc-cyr-expected.txt:
- platform/gtk/fast/xsl/xslt-enc-expected.txt:
- platform/gtk/fast/xsl/xslt-enc16-expected.txt:
- platform/gtk/fast/xsl/xslt-enc16to16-expected.txt:
- platform/gtk/http/tests/navigation/postredirect-basic-expected.txt:
- platform/gtk/http/tests/navigation/postredirect-goback1-expected.txt:
- platform/gtk/inspector/timeline/line-column-expected.txt:
- platform/gtk/svg/wicd/test-rightsizing-b-expected.txt:
- platform/wpe/fast/css/text-overflow-ellipsis-bidi-expected.txt:
- platform/wpe/fast/css/text-overflow-ellipsis-strict-expected.txt:
- platform/wpe/fast/dom/HTMLTextAreaElement/reset-textarea-expected.txt:
- platform/wpe/fast/text/basic/generic-family-reset-expected.txt:
- platform/wpe/fast/xsl/xslt-enc-cyr-expected.txt:
- platform/wpe/fast/xsl/xslt-enc-expected.txt:
- platform/wpe/fast/xsl/xslt-enc16-expected.txt:
- platform/wpe/fast/xsl/xslt-enc16to16-expected.txt:
- platform/wpe/http/tests/navigation/javascriptlink-frames-expected.txt:
- platform/wpe/http/tests/navigation/postredirect-basic-expected.txt:
- platform/wpe/http/tests/navigation/postredirect-goback1-expected.txt:
- platform/wpe/svg/text/text-overflow-ellipsis-svgfont-expected.txt:
- platform/wpe/svg/text/text-overflow-ellipsis-svgfont-kerning-ligatures-expected.txt:
- platform/wpe/svg/wicd/test-rightsizing-b-expected.txt:
- 3:22 PM Changeset in webkit [269078] by
-
- 3 edits in trunk/Source/WebCore
Remove leftover DiagnosticLoggingKey after r268458
https://bugs.webkit.org/show_bug.cgi?id=218263
<rdar://problem/70738034>
Reviewed by Darin Adler.
Remove the leftover DiagnosticKey for ResourceLoadStatistics telemetry now that the
actual data is no longer generated.
- page/DiagnosticLoggingKeys.cpp:
(WebCore::DiagnosticLoggingKeys::resourceLoadStatisticsTelemetryKey): Deleted.
- page/DiagnosticLoggingKeys.h:
- 3:21 PM Changeset in webkit [269077] by
-
- 5 edits2 adds in trunk
[Mac] Audio and Video element creation up to 300x slower than other browsers
https://bugs.webkit.org/show_bug.cgi?id=218206
<rdar://problem/62451019>
Reviewed by Eric Carlson.
PerformanceTests:
- Media/AudioElementCreation.html: Added.
- Media/VideoElementCreation.html: Added.
Source/WebCore:
Tests: PerformanceTests/Media/AudioElementCreation.html
PerformanceTests/Media/VideoElementCreation.html
Currently, a large percent of the element creation code occurrs as a result of adding its
session to PlatformMediaSessionManager, which forces iterating over all extant sessions and
then to set various properties of the audio hardware in response. This patch addresses the
bulk of those expensive calls, but more performance optimizations are available to further
reduce media element creation costs.
When an <audio> element is created, we set the preferred audio output buffer size to a large
value for performance reasons. However, there's no need to repeatedly call into CoreAudio if
the buffer size is already set to that same high value. Store the result of setting the
preferred buffer size, and also add a property change listener to detect other callers
modifying that same value, so that all set operations with identical sizes become no-ops,
and all queries just return cached values.
When any media element is created, the entire list of extant sessions is iterated and
properties on each are queried. Rather than do these inside the same run-loop, use a
TaskQueue to enqueue a task to query the list of created elements during the next run-loop.
Between these two optimization, the runtime cost of creating 1000 audio elements is reduced
(on this engineer's machine) from 2s to 40ms.
- platform/audio/PlatformMediaSessionManager.cpp:
(WebCore::PlatformMediaSessionManager::beginInterruption):
(WebCore::PlatformMediaSessionManager::addSession):
(WebCore::PlatformMediaSessionManager::removeSession):
(WebCore::PlatformMediaSessionManager::sessionStateChanged):
(WebCore::PlatformMediaSessionManager::forEachDocumentSession):
(WebCore::PlatformMediaSessionManager::forEachSession):
(WebCore::PlatformMediaSessionManager::anyOfSessions const):
- platform/audio/PlatformMediaSessionManager.h:
- platform/audio/mac/AudioSessionMac.mm:
(WebCore::AudioSessionPrivate::addSampleRateObserverIfNeeded):
(WebCore::AudioSessionPrivate::handleSampleRateChange):
(WebCore::AudioSessionPrivate::addBufferSizeObserverIfNeeded):
(WebCore::AudioSessionPrivate::handleBufferSizeChange):
(WebCore::AudioSession::sampleRate const):
(WebCore::AudioSession::bufferSize const):
(WebCore::AudioSession::preferredBufferSize const):
(WebCore::AudioSession::setPreferredBufferSize):
- 2:54 PM Changeset in webkit [269076] by
-
- 2 edits in trunk
Fix "usage" message when invoking
ar -V
https://bugs.webkit.org/show_bug.cgi?id=218255
<rdar://problem/70735674>
Reviewed by Fujii Hironori.
The Mac/BSD version of
ardoes not support the -V flag. This flag is
used unconditionally in OptionsCommon.cmake when trying to determine
if the installedarsupports the thinning of archives, leading to a
"usage" message being emitted on macOS.
Avoid this message by capturing the error-output. Examine the output
to see if it's a "usage" message. If so, then treat thearas one
that does not support thinning. Any other error-output is printed as a
warning. If there is no error-output, continue processing as normal.
- Source/cmake/OptionsCommon.cmake:
- 2:49 PM Changeset in webkit [269075] by
-
- 4 edits in trunk/Source/WebInspectorUI
Web Inspector: truncate data URLs in the Resources sidebar and Headers panel
https://bugs.webkit.org/show_bug.cgi?id=218262
Reviewed by Darin Adler.
- UserInterface/Base/Main.js:
(WI.createResourceLink):
- UserInterface/Views/ResourceDetailsSidebarPanel.js:
(WI.ResourceDetailsSidebarPanel.prototype._refreshURL):
- UserInterface/Views/ResourceHeadersContentView.js:
(WI.ResourceHeadersContentView.prototype._refreshSummarySection):
- 2:48 PM Changeset in webkit [269074] by
-
- 2 edits in trunk/Source/WebInspectorUI
Web Inspector: Search: don't steal focus from the search field when shown
https://bugs.webkit.org/show_bug.cgi?id=218260
Reviewed by Brian Burg.
- UserInterface/Views/SearchSidebarPanel.js:
(WI.SearchSidebarPanel.prototype.focusSearchField):
(WI.SearchSidebarPanel.prototype.performSearch.createTreeElementForMatchObject):
- 2:46 PM Changeset in webkit [269073] by
-
- 21 edits in trunk
[GPUProcess] Use async IPC for RemoteAudioDestinationManager's StartAudioDestination / StopAudioDestination
https://bugs.webkit.org/show_bug.cgi?id=218251
Reviewed by Geoffrey Garen.
Source/WebCore:
DefaultAudioDestinationNode::resume() / suspend() were already asynchronous operations. However, they expected
AudioDestination::start() / stop() to finish synchronously and would simply call their completion handler
asynchronously. Instead, we now make AudioDestination::start() / stop() asynchronous as well. This allows us
to use asynchronous IPC for RemoteAudioDestinationManager's StartAudioDestination / StopAudioDestination.
As a result of this change, I had to make AudioDestinationNode::startRendering() asynchronous as well since
it uses AudioDestination::start() internally.
As an improvement, the completion handler to AudioDestinationNode's startRendering() / resume() / suspend()
is now provided with an exception in cases where they fail. This allows the call sites to properly deal
with such errors instead of assuming things were successsful.
No new tests, no Web-facing beahvior change.
- Modules/webaudio/AudioContext.cpp:
(WebCore::AudioContext::suspendRendering):
(WebCore::AudioContext::resumeRendering):
(WebCore::AudioContext::startRendering):
(WebCore::AudioContext::mayResumePlayback):
(WebCore::AudioContext::suspendPlayback):
- Modules/webaudio/AudioDestinationNode.h:
(WebCore::AudioDestinationNode::resume):
(WebCore::AudioDestinationNode::suspend):
(WebCore::AudioDestinationNode::close):
- Modules/webaudio/DefaultAudioDestinationNode.cpp:
(WebCore::DefaultAudioDestinationNode::startRendering):
(WebCore::DefaultAudioDestinationNode::resume):
(WebCore::DefaultAudioDestinationNode::suspend):
(WebCore::DefaultAudioDestinationNode::close):
- Modules/webaudio/DefaultAudioDestinationNode.h:
- Modules/webaudio/OfflineAudioContext.cpp:
(WebCore::OfflineAudioContext::startOfflineRendering):
(WebCore::OfflineAudioContext::resumeOfflineRendering):
- Modules/webaudio/OfflineAudioDestinationNode.cpp:
(WebCore::OfflineAudioDestinationNode::startRendering):
- Modules/webaudio/OfflineAudioDestinationNode.h:
- platform/audio/AudioDestination.h:
(WebCore::AudioDestination::start):
(WebCore::AudioDestination::stop):
- platform/audio/cocoa/AudioDestinationCocoa.cpp:
(WebCore::AudioDestinationCocoa::start):
(WebCore::AudioDestinationCocoa::stop):
- platform/audio/cocoa/AudioDestinationCocoa.h:
- platform/audio/gstreamer/AudioDestinationGStreamer.cpp:
(WebCore::AudioDestinationGStreamer::start):
(WebCore::AudioDestinationGStreamer::stop):
- platform/audio/gstreamer/AudioDestinationGStreamer.h:
- platform/mock/MockAudioDestinationCocoa.cpp:
(WebCore::MockAudioDestinationCocoa::start):
(WebCore::MockAudioDestinationCocoa::stop):
- platform/mock/MockAudioDestinationCocoa.h:
Source/WebKit:
Use async IPC for RemoteAudioDestinationManager's StartAudioDestination / StopAudioDestination.
- GPUProcess/media/RemoteAudioDestinationManager.messages.in:
- WebProcess/GPU/media/RemoteAudioDestinationProxy.cpp:
(WebKit::RemoteAudioDestinationProxy::start):
(WebKit::RemoteAudioDestinationProxy::stop):
- WebProcess/GPU/media/RemoteAudioDestinationProxy.h:
LayoutTests:
- webaudio/audiocontext-state.html:
Update existing test which incorrectly expected the AudioContext's state to become "running" synchronously
after connecting a source node. The state switches to "running" asynchronously now. It is up to the user
agent if and when the audio context starts autoplaying so this should be an acceptable behavior change.
- 2:40 PM Changeset in webkit [269072] by
-
- 8 edits in trunk
[TextureMapper][GTK] Test compositing/clipping/border-radius-stacking-context-clip.html is failing
https://bugs.webkit.org/show_bug.cgi?id=214868
Reviewed by Carlos Garcia Campos.
Source/WebCore:
If a replica layer has m_state.pos, m_layerTransforms.combined
should be translated by them.
- platform/graphics/texmap/TextureMapperLayer.cpp:
(WebCore::TextureMapperLayer::computeTransformsRecursive):
- platform/graphics/texmap/TextureMapperLayer.h:
LayoutTests:
- platform/gtk/TestExpectations: Unmarked compositing/clipping/border-radius-stacking-context-clip.html.
- platform/gtk/compositing/reflections/nested-reflection-transformed-expected.png: Updated.
- platform/gtk/compositing/reflections/nested-reflection-transformed2-expected.png: Updated.
- platform/gtk/compositing/reflections/reflection-positioning2-expected.png: Updated.
- 2:38 PM Changeset in webkit [269071] by
-
- 2 edits in trunk/Source/WebInspectorUI
Web Inspector: REGRESSION(r266669): Uncaught Exception: TypeError: node.nodeType is not a function. (In 'node.nodeType()', 'node.nodeType' is undefined)
https://bugs.webkit.org/show_bug.cgi?id=218254
Reviewed by Joseph Pecoraro.
r266669 changed
WI.DOMBreakpointto useWI.DOMNodeinstead ofDOM.NodeId, meaning that
WI.DOMTreeContentView.prototype._updateBreakpointStatusnow expects aWI.DOMNode.
- UserInterface/Views/DOMTreeContentView.js:
(WI.DOMTreeContentView.prototype._domTreeElementAdded):
- 2:04 PM Changeset in webkit [269070] by
-
- 10 edits2 moves2 adds in trunk
Overflow scrollIntoView wrong with borders
https://bugs.webkit.org/show_bug.cgi?id=152660
Patch by Martin Robinson <mrobinson@igalia.com> on 2020-10-27
Reviewed by Simon Fraser.
Source/WebCore:
Tests: fast/overflow/scrollIntoView-nested-in-area-with-border.html
- rendering/RenderLayer.cpp:
(WebCore::RenderLayer::scrollRectToVisible): Offset the exposure rect by the border
so that it is relative to the content rectangle.
LayoutTests:
Added a new test for this fix and renamed a similar test to follow a
standard naming convention. This will make the two tests easier to find.
- fast/overflow/scrollIntoView-nested-in-area-with-border-expected.html: Added.
- fast/overflow/scrollIntoView-nested-in-area-with-border.html: Added.
- fast/overflow/scrollIntoView-overflow-hidden-expected.html: Renamed from LayoutTests/fast/overflow/overflow-hidden-scroll-into-view-expected.html.
- fast/overflow/scrollIntoView-overflow-hidden.html: Renamed from LayoutTests/fast/overflow/overflow-hidden-scroll-into-view.html.
- fast/spatial-navigation/snav-div-overflow-scrol-hidden-expected.txt: Updated expectation.
- platform/ios/TestExpectations: Updated test name in expectations.
- platform/mac-wk2/editing/input/caret-at-the-edge-of-contenteditable-expected.txt: Updated expectation.
- platform/mac-wk2/editing/input/reveal-caret-of-multiline-contenteditable-expected.txt: Ditto.
- platform/mac/editing/input/caret-at-the-edge-of-contenteditable-expected.txt: Ditto.
- platform/mac/editing/input/reveal-caret-of-multiline-contenteditable-expected.txt: Ditto.
- platform/mac/editing/input/reveal-caret-of-multiline-input-expected.txt: Ditto.
- 1:59 PM Changeset in webkit [269069] by
-
- 2 edits in trunk/Source/WebCore
Unreviewed. Followup for r269058: Update bindings reference files
- bindings/scripts/test/JS/JSTestDOMJIT.cpp:
- 1:54 PM Changeset in webkit [269068] by
-
- 25 edits4 copies1 add in trunk
[Cocoa] Introduce _WKInspectorConfiguration for customizing local and remote Web Inspectors
https://bugs.webkit.org/show_bug.cgi?id=217896
<rdar://problem/70355910>
Reviewed by Devin Rousso.
Source/WebKit:
Introduce _WKInspectorConfiguration for customizing the behavior of Web Inspector instances.
The initial customization is to allow for custom WKURLSchemeHandlers to be used by Web Inspector's
WebView to load resources from client-controlled locations. This can be used to implement loading
of extension resources using a custom scheme such as web-extension://.
Scheme handlers need to be registered at WebView creation time via WKWebViewConfiguration. In
order to configure a inspector page summoned from within WebKit (i.e., Inspect Element context menu item),
we need to add a method to the UI delegate to get a configuration when the page is being created.
This configuration object is used in two different SPI (local and remote cases):
- As part of WKUIDelegatePrivate, to retrieve a _WKInspectorConfiguration given a _WKInspector.
- As an argument to the _WKRemoteWebInspectorViewController initializer. It's used later as needed.
New API test: WKInspectorDelegate.InspectorConfiguration.
- SourcesCocoa.txt:
- WebKit.xcodeproj/project.pbxproj:
Add new files.
- UIProcess/API/APIInspectorConfiguration.h: Added.
- UIProcess/API/APIInspectorConfiguration.cpp: Added.
- UIProcess/API/Cocoa/_WKInspectorConfiguration.h: Added.
- UIProcess/API/Cocoa/_WKInspectorConfigurationInternal.h: Added.
- UIProcess/API/Cocoa/_WKInspectorConfiguration.mm: Added.
(-[_WKInspectorConfiguration init]):
(-[_WKInspectorConfiguration dealloc]):
(-[_WKInspectorConfiguration _apiObject]):
(-[_WKInspectorConfiguration setURLSchemeHandler:forURLScheme:]):
(-[_WKInspectorConfiguration applyToWebViewConfiguration:]):
(-[_WKInspectorConfiguration copyWithZone:]):
Create _WKInspectorConfiguration and add a method to register WKURLSchemeHandlers.
- Shared/API/APIObject.h:
- Shared/Cocoa/APIObject.mm:
(API::Object::newObject):
Add new API object types. Add missing InspectorExtension.
- UIProcess/API/Cocoa/WKUIDelegatePrivate.h:
- UIProcess/API/APIUIClient.h:
(API::UIClient::configurationForLocalInspector):
- UIProcess/Cocoa/UIDelegate.h:
- UIProcess/Cocoa/UIDelegate.mm:
(WebKit::UIDelegate::setDelegate):
(WebKit::UIDelegate::UIClient::configurationForLocalInspector):
Add new client/delegate method to fetch an inspector configuration as needed.
- UIProcess/API/Cocoa/_WKRemoteWebInspectorViewController.h:
- UIProcess/API/Cocoa/_WKRemoteWebInspectorViewControllerPrivate.h:
- UIProcess/API/Cocoa/_WKRemoteWebInspectorViewController.mm:
(-[_WKRemoteWebInspectorViewController initWithConfiguration:]): Renamed from -init.
(-[_WKRemoteWebInspectorViewController init]): Deleted.
(-[_WKRemoteWebInspectorViewController loadForDebuggableType:backendCommandsURL:]):
(-[_WKRemoteWebInspectorViewController configurationForDebuggable:]):
(-[_WKRemoteWebInspectorViewController _setDiagnosticLoggingDelegate:]):
Store a _WKInspectorConfiguration and provide it when asked by RemoteWebInspectorProxy.
- UIProcess/Inspector/RemoteWebInspectorProxy.h:
- UIProcess/Inspector/RemoteWebInspectorProxy.cpp:
(WebKit::RemoteWebInspectorProxy::load):
Store m_debuggableInfo before creating the page and window. It's used from inside
platformCreateFrontendPageAndWindow to pass as an argument to the delegate method.
- UIProcess/Inspector/mac/RemoteWebInspectorProxyMac.mm:
(WebKit::RemoteWebInspectorProxy::platformCreateFrontendPageAndWindow):
- UIProcess/Inspector/mac/WebInspectorProxyMac.mm:
(WebKit::WebInspectorProxy::platformCreateFrontendPage):
Obtain a configuration and use it to initialize the WKInspectorViewController.
- UIProcess/Inspector/mac/WKInspectorViewController.h:
- UIProcess/Inspector/mac/WKInspectorViewController.mm:
(-[WKInspectorViewController initWithConfiguration:inspectedPage:]):
(-[WKInspectorViewController webView]):
(-[WKInspectorViewController webViewConfiguration]): Renamed from -configuration.
(-[WKInspectorViewController initWithInspectedPage:]): Deleted.
(-[WKInspectorViewController configuration]): Deleted.
Apply the URL scheme handlers registered in the _WKInspectorConfiguration to the
WKWebViewConfiguration.
- UIProcess/Inspector/glib/RemoteInspectorClient.cpp:
- UIProcess/Inspector/socket/RemoteInspectorClient.cpp:
Stub out RemoteWebInspectorProxyClient::configurationForRemoteInspector().
- UIProcess/API/Cocoa/_WKUserStyleSheet.h:
- UIProcess/API/Cocoa/_WKUserStyleSheet.mm:
Fix build problems caused by repartitioning of unified sources.
Tools:
Add an API test for _WKInspectorConfiguration. Disabled for now, will
be turned back on when more web extensions API has landed.
- TestWebKitAPI/Tests/WebKitCocoa/WKInspectorDelegate.mm:
(-[SimpleURLSchemeHandler webView:startURLSchemeTask:]):
(-[SimpleURLSchemeHandler webView:stopURLSchemeTask:]):
(-[UIDelegate _webView:configurationForLocalInspector:]):
(-[UIDelegate _webView:didAttachLocalInspector:]):
(TEST):
- 1:22 PM Changeset in webkit [269067] by
-
- 2 edits in trunk/LayoutTests
REGRESSION (r265515): fast/events/touch/ios/touch-events-with-modifiers.html is a frequent failure
https://bugs.webkit.org/show_bug.cgi?id=218249
<rdar://problem/67079948>
Reviewed by Wenson Hsieh.
- fast/events/touch/ios/resources/finish-test-after-scrolling-with-touch-event-handlers.html:
Don't notifyDone until both the scroll event happen and the event stream is done being dispatched.
Otherwise, we can move on and then send part of our event stream to the next page.
- 12:53 PM Changeset in webkit [269066] by
-
- 4 edits in trunk/Source/WebKitLegacy/win
[WinCairo][WK1] Implement WebView::layerTreeAsString
https://bugs.webkit.org/show_bug.cgi?id=218217
Reviewed by Don Olmstead.
The menu item "Show Layer Tree" didn't work in WinCairo WebKit1
MiniBrowser.
- WebCoreSupport/AcceleratedCompositingContext.cpp:
(AcceleratedCompositingContext::layerTreeAsString const): Added.
- WebCoreSupport/AcceleratedCompositingContext.h:
- WebView.cpp:
(WebView::layerTreeAsString): Added code for USE(TEXTURE_MAPPER_GL).
- 12:53 PM Changeset in webkit [269065] by
-
- 20 edits in trunk/Source
[GPU Process]: Implement DisplayList::DrawImageBuffer item
https://bugs.webkit.org/show_bug.cgi?id=217566
Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2020-10-27
Reviewed by Simon Fraser.
Source/WebCore:
Add the DrawImageBuffer DisplayList item. It will be used only for GPU
rendering. The renderingResourceIdentifier of the source ImageBuffer
will be recorded. For details on how drawing an ImageBuffer to another
ImageBuffer works see the WebKit ChangeLog.
- platform/graphics/GraphicsContext.cpp:
(WebCore::GraphicsContext::drawImageBuffer):
(WebCore::GraphicsContext::drawConsumingImageBuffer):
- platform/graphics/GraphicsContextImpl.h:
- platform/graphics/cairo/GraphicsContextImplCairo.cpp:
(WebCore::GraphicsContextImplCairo::drawImageBuffer):
- platform/graphics/cairo/GraphicsContextImplCairo.h:
- platform/graphics/displaylists/DisplayList.h:
- platform/graphics/displaylists/DisplayListItems.cpp:
(WebCore::DisplayList::Item::sizeInBytes):
(WebCore::DisplayList::DrawImageBuffer::DrawImageBuffer):
(WebCore::DisplayList::DrawImageBuffer::apply const):
(WebCore::DisplayList::operator<<):
- platform/graphics/displaylists/DisplayListItems.h:
(WebCore::DisplayList::DrawImageBuffer::create):
(WebCore::DisplayList::DrawImageBuffer::renderingResourceIdentifier const):
(WebCore::DisplayList::DrawImageBuffer::source const):
(WebCore::DisplayList::DrawImageBuffer::destinationRect const):
(WebCore::DisplayList::DrawImageBuffer::options const):
(WebCore::DisplayList::DrawImageBuffer::encode const):
(WebCore::DisplayList::DrawImageBuffer::decode):
(WebCore::DisplayList::Item::encode const):
(WebCore::DisplayList::Item::decode):
- platform/graphics/displaylists/DisplayListRecorder.cpp:
(WebCore::DisplayList::Recorder::drawImageBuffer):
- platform/graphics/displaylists/DisplayListRecorder.h:
(WebCore::DisplayList::Recorder::Delegate::lockRemoteImageBuffer):
- platform/graphics/nicosia/cairo/NicosiaCairoOperationRecorder.cpp:
(Nicosia::CairoOperationRecorder::drawImageBuffer):
- platform/graphics/nicosia/cairo/NicosiaCairoOperationRecorder.h:
Source/WebKit:
The sequence in the Web Process is the following:
-- GraphicsContext::drawImageBuffer() uses DisplayList::Recorder to check
whether it is appropriate to create a DrawImageBuffer item or not.
-- DisplayList::Recorder::drawImageBuffer() uses the delegate to see if
the ImageBuffer is remote or not and whether it can be locked till
replaying back the DisplayList in the GPU side.
-- RemoteImageBufferProxy inherits DisplayList::Recorder::Delegate. So
its lockRemoteImageBuffer() is called.
-- If the ImageBuffer can be locked, a DrawImageBufferItem is created with
the ImageBuffer::renderingResourceIdentifier().
The sequence in the GPU Process is the following:
-- When replaying back the DisplayList, DisplayList::Replayer will call
its delegate to check if it wants to apply the DrawImageBuffer.
-- Because RemoteImageBuffer inherits DisplayList::Replayer::Delegate,
RemoteImageBuffer::apply() will be called.
-- RemoteImageBuffer will call RemoteRenderingBackend::applyResourceItem()
which will check whether the item's renderingResourceIdentifier is one
of the ImageBuffers in its RemoteResourceCache or not.
-- If there is a cached ImageBuffer, RemoteRenderingBackend::applyResourceItem()
will draw it in the GraphicsContext.
- GPUProcess/graphics/RemoteImageBuffer.h:
(WebKit::RemoteImageBuffer::apply): Deleted.
- GPUProcess/graphics/RemoteRenderingBackend.cpp:
(WebKit::RemoteRenderingBackend::applyResourceItem):
(WebKit::RemoteRenderingBackend::applyMediaItem):
- GPUProcess/graphics/RemoteRenderingBackend.h:
- GPUProcess/graphics/RemoteResourceCache.cpp:
(WebKit::RemoteResourceCache::cachedImageBuffer):
- WebProcess/GPU/graphics/RemoteImageBufferProxy.h:
- WebProcess/GPU/graphics/RemoteResourceCacheProxy.cpp:
(WebKit::RemoteResourceCacheProxy::releaseImageBuffer):
(WebKit::RemoteResourceCacheProxy::lockRemoteImageBufferForRemoteClient):
(WebKit::RemoteResourceCacheProxy::lockRemoteResourceForRemoteClient):
(WebKit::RemoteResourceCacheProxy::releaseRemoteResource):
(WebKit::RemoteResourceCacheProxy::unlockRemoteResourcesForRemoteClient):
- WebProcess/GPU/graphics/RemoteResourceCacheProxy.h:
- 12:40 PM Changeset in webkit [269064] by
-
- 3 edits in trunk/Source/WebCore
showRenderTree should output line vertical geometry.
https://bugs.webkit.org/show_bug.cgi?id=218252
Reviewed by Antti Koivisto.
In addition to the root inlinebox geometry, we should also print the line vertical geometry as they
could be very different in certain cases.
<div style="line-height: 100px;">
text
<img src="broken" style="width: 50px; height: 50px;">
</div>
would produce something these:
Line: (top: 5 bottom: 59) with leading (top: 0 bottom: 100)
RootInlineBox at (0,41) size 51.76x18 (0x137faef70) renderer->(0x137faec00)
- rendering/RootInlineBox.cpp:
(WebCore::RootInlineBox::outputLineBox const):
- rendering/RootInlineBox.h:
- 12:33 PM Changeset in webkit [269063] by
-
- 2 edits in trunk/Tools
Update generate_xcfilelists to accommodate paths with symlinks
https://bugs.webkit.org/show_bug.cgi?id=218223
<rdar://problem/70709808>
Reviewed by Timothy Hatcher.
There are cases where file system paths are compared against each
other, and where the comparisons are failing because one or the other
(or both) make use of symlinks, causing paths that refer to the same
location to fail to compare correctly. Address this by resolving path
components that are symlinks.
- Scripts/webkitpy/generate_xcfilelists_lib/generators.py:
(BaseGenerator):
(BaseGenerator._unexpand):
(BaseGenerator._unexpand._expand_if_abs):
(BaseGenerator._unexpand._variations):
(BaseGenerator._unexpand._variations._gen):
(BaseGenerator._unexpand._try_unexpand):
(BaseGenerator._unexpand._do_unexpand):
- 12:17 PM WebKitGTK/2.30.x edited by
- (diff)
- 12:17 PM Changeset in webkit [269062] by
-
- 3 edits2 adds in releases/WebKitGTK/webkit-2.30
Merge r269055 - [GStreamer] Bad handling of audio files in the ImageDecoder
https://bugs.webkit.org/show_bug.cgi?id=218239
Patch by Philippe Normand <pnormand@igalia.com> on 2020-10-27
Reviewed by Adrian Perez de Castro.
Source/WebCore:
The final main thread notification needs to be blocking otherwise the decoder might get
disposed of too early.
Test: fast/images/animated-image-mp3-crash.html
- platform/graphics/gstreamer/ImageDecoderGStreamer.cpp:
(WebCore::ImageDecoderGStreamer::pushEncodedData):
LayoutTests:
- fast/images/animated-image-mp3-crash-expected.txt: Added.
- fast/images/animated-image-mp3-crash.html: Added.
- 12:07 PM Changeset in webkit [269061] by
-
- 8 edits in branches/safari-610-branch/Source
Versioning.
WebKit-7610.3.6
- 12:00 PM Changeset in webkit [269060] by
-
- 1 copy in tags/Safari-610.3.5
Tag Safari-610.3.5.
- 11:51 AM Changeset in webkit [269059] by
-
- 6 edits3 adds in trunk
Accessory bar next/previous buttons do not work on inputs in shadow roots
https://bugs.webkit.org/show_bug.cgi?id=203292
Patch by Tetsuharu Ohzeki <Tetsuharu Ohzeki> on 2020-10-27
Reviewed by Ryosuke Niwa.
Source/WebCore:
Tests: fast/shadow-dom/ios/accessory-bar-work-on-input-with-tabindex-in-shadow-tree.html
- page/FocusController.cpp:
(WebCore::FocusController::nextFocusableElement):
(WebCore::FocusController::previousFocusableElement):
LayoutTests:
Introduced testcases only need to run with iOS family.
- fast/shadow-dom/ios/accessory-bar-work-on-input-with-tabindex-in-shadow-tree-expected.txt: Added.
- fast/shadow-dom/ios/accessory-bar-work-on-input-with-tabindex-in-shadow-tree.html: Added.
- TestExpectations:
- platform/ios/TestExpectations: Avoid to run introduced tests because we don't have to run them and tests are crashed on these platforms.
- resources/ui-helper.js:
(window.UIHelper.moveToNextByKeyboardAccessoryBar):
(window.UIHelper.moveToPrevByKeyboardAccessoryBar):
(window.UIHelper):
- 11:46 AM Changeset in webkit [269058] by
-
- 2 edits in trunk/Source/WebCore
Follow-up for: REGRESSION(r267727): Warning spam from JSC_DECLARE_CUSTOM_GETTER
https://bugs.webkit.org/show_bug.cgi?id=217585
<rdar://problem/70376946>
Unreviewed follow-up to r268587. I missed one spot that needs to use
JSC_DECLARE_JIT_OPERATION_WITHOUT_WTF_INTERNAL. This is causing warnings in various
generated bindings files.
Patch by Michael Catanzaro <Michael Catanzaro> on 2020-10-27
- bindings/scripts/CodeGeneratorJS.pm:
(GenerateImplementation):
- 11:38 AM WebKitGTK/2.30.x edited by
- (diff)
- 11:25 AM Changeset in webkit [269057] by
-
- 2 edits in trunk/Tools
[GTK] Don't disable MSE build support on Debian and Ubuntu LTS bots
https://bugs.webkit.org/show_bug.cgi?id=218247
Reviewed by Philippe Normand.
The version of gstreamer on this bots (Ubuntu-18.04 and Debian 10)
is now newer enough (1.14) to enable MSE support.
- CISupport/build.webkit.org-config/config.json:
- 10:59 AM Changeset in webkit [269056] by
-
- 2 edits in trunk/Source/WebCore
[LFC][IFC] Add support for vertical-align: -webkit-baseline-middle
https://bugs.webkit.org/show_bug.cgi?id=218243
Reviewed by Antti Koivisto.
"-webkit-baseline-middle: The center of the element is aligned with the baseline of the text."
https://developer.apple.com/library/archive/documentation/AppleApplications/Reference/SafariCSSRef/Articles/StandardCSSProperties.html
This patch makes LayoutTests/dom/html/level2/html/ cases not assert.
- layout/inlineformatting/InlineFormattingContextGeometry.cpp:
(WebCore::Layout::LineBoxBuilder::alignInlineLevelBoxesVerticallyAndComputeLineBoxHeight):
- 10:58 AM Changeset in webkit [269055] by
-
- 3 edits2 adds in trunk
[GStreamer] Bad handling of audio files in the ImageDecoder
https://bugs.webkit.org/show_bug.cgi?id=218239
Patch by Philippe Normand <pnormand@igalia.com> on 2020-10-27
Reviewed by Adrian Perez de Castro.
Source/WebCore:
The final main thread notification needs to be blocking otherwise the decoder might get
disposed of too early.
Test: fast/images/animated-image-mp3-crash.html
- platform/graphics/gstreamer/ImageDecoderGStreamer.cpp:
(WebCore::ImageDecoderGStreamer::pushEncodedData):
LayoutTests:
- fast/images/animated-image-mp3-crash-expected.txt: Added.
- fast/images/animated-image-mp3-crash.html: Added.
- 10:54 AM Changeset in webkit [269054] by
-
- 2 edits in trunk/Source/JavaScriptCore
-Wparentheses warning in OptionsList.h
https://bugs.webkit.org/show_bug.cgi?id=218242
Unreviewed, fix warning by adding extra parentheses.
Patch by Michael Catanzaro <Michael Catanzaro> on 2020-10-27
- runtime/OptionsList.h:
- 10:43 AM Changeset in webkit [269053] by
-
- 2 edits in trunk/Source/WebCore
Fix build for non-unified builds after r269041.
https://bugs.webkit.org/show_bug.cgi?id=218233
Unreviewed build fix.
Add missing include that can cause a build breakage for non-unified
builds or for unified builds depending on how the included files
are listed-
- rendering/RenderBlockFlow.cpp:
- 10:38 AM Changeset in webkit [269052] by
-
- 16 edits1 copy1 add in trunk/Tools
Rename BuildSlaveSupport to CISupport
https://bugs.webkit.org/show_bug.cgi?id=218026
Reviewed by Jonathan Bedard.
- CISupport: Copied from Tools/BuildSlaveSupport.
- CISupport/build.webkit.org-config/public_html/TestFailures/scripts/builders_unittests.js:
- CISupport/build.webkit.org-config/steps.py:
- CISupport/build.webkit.org-config/wkbuild.py:
- CISupport/build.webkit.org-config/wkbuild_unittest.py:
- CISupport/ews-app/ews/views/statusbubble.py:
- CISupport/ews-build/steps.py:
- CISupport/ews-build/steps_unittest.py:
- BuildSlaveSupport: Replaced.
- EWSTools/Start-Queue.ps1:
- Scripts/bisect-builds:
- Scripts/run-dashboard-tests:
- Scripts/webkitpy/common/config/watchlist:
- Scripts/webkitpy/layout_tests/views/buildbot_results.py:
- Scripts/webkitpy/style/checker_unittest.py:
- Scripts/webkitpy/tool/servers/gardeningserver.py:
- .gitattributes:
- 10:35 AM Changeset in webkit [269051] by
-
- 5 edits in trunk
[ iOS wk2 ] webgl/1.0.3/conformance/textures/copy-tex-image-2d-formats.html is failing.
https://bugs.webkit.org/show_bug.cgi?id=209139
Patch by Kenneth Russell <kbr@chromium.org> on 2020-10-27
Reviewed by Dean Jackson.
Source/WebCore:
On ANGLE backend, use wipeAlphaChannelFromPixels on iOS family,
similarly to macOS, when reading back from alpha:false WebGL
contexts. On both backends, apply this only for UNSIGNED_BYTE
readbacks.
Covered by existing WebGL conformance tests.
- platform/graphics/angle/ExtensionsGLANGLE.cpp:
(WebCore::ExtensionsGLANGLE::readnPixelsRobustANGLE):
- platform/graphics/angle/GraphicsContextGLANGLE.cpp:
(WebCore::GraphicsContextGLOpenGL::readPixels):
LayoutTests:
Remove iOS suppression for
webgl/1.0.3/conformance/textures/copy-tex-image-2d-formats.html.
- platform/ios-wk2/TestExpectations:
- 10:32 AM Changeset in webkit [269050] by
-
- 4 edits2 adds in trunk
compositing/iframes/layout-on-compositing-change.html can assert under ContentfulPaintChecker
https://bugs.webkit.org/show_bug.cgi?id=218204
<rdar://problem/70694218>
Reviewed by Simon Fraser.
LayoutTests/imported/w3c:
- web-platform-tests/paint-timing/resources/subframe-painting.html:
- web-platform-tests/paint-timing/fcp-only/fcp-ignore-from-subframe.html:
- web-platform-tests/paint-timing/fcp-only/fcp-ignore-from-subframe-expected.txt:
Added a new test to assert that painting inside iframes is not automatically considered by the parent.
Upstreamed: https://github.com/web-platform-tests/wpt/pull/26303
Source/WebCore:
Paints from child iframes should not be considered when checking for first-contentful-paint.
The previous w3c test allegedly checking for it was actualy testing something else.
Tests: LayoutTests/imported/w3c/web-platform-tests/paint-timing/fcp-only/fcp-ignore-from-subframe.html.
- rendering/RenderWidget.cpp:
(WebCore::RenderWidget::paint):
Avoid iframe painting if we're in contentfulness detection fake-paint.
- 10:30 AM Changeset in webkit [269049] by
-
- 2 edits in trunk/Source/WebKit
Use NSURLSessionAuthChallengeRejectProtectionSpace if WKNavigationDelegate didReceiveAuthenticationChallenge is not implemented
https://bugs.webkit.org/show_bug.cgi?id=218008
Patch by Alex Christensen <achristensen@webkit.org> on 2020-10-27
Reviewed by Darin Adler.
This is documented in WKNavigationDelegate.h, and the behavior is basically identical.
The difference is if there is a challenge with multiple protection spaces and a delegate that implements didReceiveAuthenticationChallenge
is attached between the delegate callbacks, it will receive the second callback. This is unlikely and next to impossible to test, but
out of principle we should behave like we have documented that we do.
- UIProcess/Cocoa/NavigationState.mm:
(WebKit::NavigationState::NavigationClient::didReceiveAuthenticationChallenge):
- 10:25 AM Changeset in webkit [269048] by
-
- 5 edits in trunk
Rename WKPreferencesSet*ValueForKey SPI to WKPreferencesSet*ValueForKeyForTesting
https://bugs.webkit.org/show_bug.cgi?id=218240
Reviewed by Darin Adler.
Source/WebKit:
Addresses feedback from initial naming to make it clear what they are used
for and for consistency with WebKitLegacy.
- UIProcess/API/C/WKPreferences.cpp:
(WKPreferencesSetBoolValueForKeyForTesting):
(WKPreferencesSetDoubleValueForKeyForTesting):
(WKPreferencesSetUInt32ValueForKeyForTesting):
(WKPreferencesSetStringValueForKeyForTesting):
(WKPreferencesSetBoolValueForKey): Deleted.
(WKPreferencesSetDoubleValueForKey): Deleted.
(WKPreferencesSetUInt32ValueForKey): Deleted.
(WKPreferencesSetStringValueForKey): Deleted.
- UIProcess/API/C/WKPreferencesRefPrivate.h:
Tools:
- WebKitTestRunner/TestController.cpp:
(WTR::TestController::resetPreferencesToConsistentValues):
Update for renamed function names.
- 10:09 AM Changeset in webkit [269047] by
-
- 3 edits4 adds in trunk
Calling AudioContext.suspend() / resume() while already suspended / running should resolve the promise right away
https://bugs.webkit.org/show_bug.cgi?id=218236
Reviewed by Sam Weinig.
Source/WebCore:
Calling AudioContext.suspend() / resume() while already suspended / running should resolve the promise right
away. This is the behavior in the specification [1][2] and matches Blink / Gecko.
[1] https://www.w3.org/TR/webaudio/#dom-audiocontext-suspend
[2] https://www.w3.org/TR/webaudio/#dom-audiocontext-resume
Tests: webaudio/resume-context-while-running.html
webaudio/suspend-context-while-suspended.html
- Modules/webaudio/AudioContext.cpp:
(WebCore::AudioContext::suspendRendering):
(WebCore::AudioContext::resumeRendering):
LayoutTests:
Add layout test coverage.
- webaudio/resume-context-while-running-expected.txt: Added.
- webaudio/resume-context-while-running.html: Added.
- webaudio/suspend-context-while-suspended-expected.txt: Added.
- webaudio/suspend-context-while-suspended.html: Added.
- 10:08 AM Changeset in webkit [269046] by
-
- 4 edits in trunk
[GLIB] imported/w3c/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.width.transformed.html is a flaky crash
https://bugs.webkit.org/show_bug.cgi?id=217986
Reviewed by Simon Fraser.
Fix race condition caused by use of OffscreenCanvas::scriptExecutionContext() on main thread.
Instead of passing a reference to the OffscreenCanvas object when dealing with the placeholder
canvas on the main thread, encapsulate the necessary data in a separate, ThreadSafeRefCounted
object and pass that instead, negating the need to call back to the Worker thread to release
the reference.
Covered by existing tests.
- html/OffscreenCanvas.cpp:
(WebCore::OffscreenCanvas::create):
(WebCore::OffscreenCanvas::OffscreenCanvas):
(WebCore::OffscreenCanvas::detach):
(WebCore::OffscreenCanvas::setPlaceholderCanvas):
(WebCore::OffscreenCanvas::pushBufferToPlaceholder):
(WebCore::OffscreenCanvas::commitToPlaceholderCanvas):
- html/OffscreenCanvas.h:
- 9:58 AM Changeset in webkit [269045] by
-
- 6 edits in trunk
Web Inspector: add ENABLE(INSPECTOR_EXTENSIONS) to feature defines
https://bugs.webkit.org/show_bug.cgi?id=218237
<rdar://problem/69968787>
Reviewed by Antti Koivisto.
.:
- Source/cmake/OptionsMac.cmake:
- Source/cmake/WebKitFeatures.cmake:
Add ENABLE(INSPECTOR_EXTENSIONS), which is only on for the Cocoa macOS port.
Source/WTF:
- wtf/PlatformEnable.h:
- wtf/PlatformEnableCocoa.h:
Add ENABLE(INSPECTOR_EXTENSIONS), which is only on for the Cocoa macOS port.
- 9:51 AM Changeset in webkit [269044] by
-
- 2 edits in trunk/LayoutTests
Web Inspector: console command line API should be exposed to breakpoint conditions/actions
https://bugs.webkit.org/show_bug.cgi?id=218141
Unreviewed test gardening.
- inspector/timeline/line-column-expected.txt: Rebaseline the test after r269023.
- 9:15 AM Changeset in webkit [269043] by
-
- 2 edits in trunk/LayoutTests
Unreviewed, GStreamer gardening
- platform/glib/TestExpectations: Marked
media/encrypted-media/clearKey/clearKey-webm-video-playback-mse.html
as [ Timeout ].
- 8:57 AM Changeset in webkit [269042] by
-
- 3 edits in trunk/Tools
[GTK] Move step for generating the JSC bundle back to the release build bot
https://bugs.webkit.org/show_bug.cgi?id=218207
Reviewed by Adrian Perez de Castro.
On r266208 I moved the step to generate the JSC bundle from the default
GTK release build bot to the new bots for Ubuntu-20.04 packaging.
But it seems the ICU version of Ubuntu-20.04 (66) is not new enough for
testing some Intl features like Intl.ListFormat as JS Intl feature behaviors
are derived from ICU versions.
Move back this step to the GTK release build bot that runs with flatpak,
so it bundles the version of ICU from the FreeDesktop SDK (67 currently)
- BuildSlaveSupport/build.webkit.org-config/config.json:
- BuildSlaveSupport/build.webkit.org-config/steps_unittest.py:
- 8:57 AM Changeset in webkit [269041] by
-
- 13 edits in trunk/Source/WebCore
[LFC][Integration] Use iterator for next/previousLinePosition
https://bugs.webkit.org/show_bug.cgi?id=218233
Reviewed by Zalan Bujtas.
Add the required capabilities to the line iterator and also use them in a few other places.
- editing/VisibleUnits.cpp:
(WebCore::absoluteLineDirectionPointToLocalPointInBlock):
(WebCore::previousLinePosition):
(WebCore::nextLinePosition):
- layout/integration/LayoutIntegrationInlineContent.cpp:
(WebCore::LayoutIntegration::InlineContent::containingBlock const):
- layout/integration/LayoutIntegrationInlineContent.h:
- layout/integration/LayoutIntegrationLineIterator.cpp:
(WebCore::LayoutIntegration::firstLineFor):
(WebCore::LayoutIntegration::lastLineFor):
(WebCore::LayoutIntegration::LineIterator::closestRunForPoint):
(WebCore::LayoutIntegration::LineIterator::closestRunForLogicalLeftPosition):
(WebCore::LayoutIntegration::PathLine::blockDirectionPointInLine const):
- layout/integration/LayoutIntegrationLineIterator.h:
(WebCore::LayoutIntegration::LineIterator::LineIterator):
(WebCore::LayoutIntegration::PathLine::y const):
(WebCore::LayoutIntegration::PathLine::logicalHeight const):
(WebCore::LayoutIntegration::PathLine::isHorizontal const):
(WebCore::LayoutIntegration::PathLine::containingBlock const):
- layout/integration/LayoutIntegrationLineIteratorLegacyPath.h:
(WebCore::LayoutIntegration::LineIteratorLegacyPath::y const):
(WebCore::LayoutIntegration::LineIteratorLegacyPath::logicalHeight const):
(WebCore::LayoutIntegration::LineIteratorLegacyPath::isHorizontal const):
(WebCore::LayoutIntegration::LineIteratorLegacyPath::containingBlock const):
- layout/integration/LayoutIntegrationLineIteratorModernPath.h:
(WebCore::LayoutIntegration::LineIteratorModernPath::y const):
(WebCore::LayoutIntegration::LineIteratorModernPath::logicalHeight const):
(WebCore::LayoutIntegration::LineIteratorModernPath::isHorizontal const):
(WebCore::LayoutIntegration::LineIteratorModernPath::containingBlock const):
- layout/integration/LayoutIntegrationLineLayout.cpp:
(WebCore::LayoutIntegration::LineLayout::firstLine const):
(WebCore::LayoutIntegration::LineLayout::lastLine const):
- layout/integration/LayoutIntegrationLineLayout.h:
(WebCore::LayoutIntegration::LineLayout::flow const):
(WebCore::LayoutIntegration::LineLayout::flow):
- rendering/RenderBlockFlow.cpp:
(WebCore::RenderBlockFlow::findClosestTextAtAbsolutePoint):
(WebCore::RenderBlockFlow::positionForPointWithInlineChildren):
- rendering/RootInlineBox.cpp:
(WebCore::isEditableLeaf): Deleted.
(WebCore::RootInlineBox::closestLeafChildForPoint): Deleted.
(WebCore::RootInlineBox::closestLeafChildForLogicalLeftPosition): Deleted.
This functionality moves to the line iterator.
- rendering/RootInlineBox.h:
- 8:34 AM Changeset in webkit [269040] by
-
- 2 edits in trunk/Source/WebCore
[WPE] REGRESSION(r268992) Redefinition of min() inside TextureMapperShaderProgram for GLES > 3.0
https://bugs.webkit.org/show_bug.cgi?id=218231
Reviewed by Sergio Villar Senin.
Remove the definition of the min() function and replace its usage with an if. This works for
every GLSL version.
- platform/graphics/texmap/TextureMapperShaderProgram.cpp:
(WebCore::TextureMapperShaderProgram::create):
(WebCore::STRINGIFY): Deleted.
- 8:26 AM Changeset in webkit [269039] by
-
- 3 edits2 adds in trunk
AudioContext.suspend() should not reject promise when audio session is interrupted
https://bugs.webkit.org/show_bug.cgi?id=218235
Reviewed by Darin Adler.
Source/WebCore:
AudioContext.suspend() should not reject promise when audio session is interrupted. Being
"interrupted" is an internal WebKit concept and rejecting the promise here is confusing
to Web developers.
We now no longer throw when AudioContext.suspend() is called while interrupted. Instead,
we set the 'wasSuspendedByJavascript' flag and register a state change listener to resolve
the promise when the state changes to "suspended".
When the interruption ends, AudioContext::mayResumePlayback() gets called with
shouldResume=false, causing us to update the state from "interrupted" to "suspended",
which resolves the suspend promise.
Test: webaudio/suspend-context-while-interrupted.html
- Modules/webaudio/AudioContext.cpp:
(WebCore::AudioContext::suspendRendering):
LayoutTests:
Add layout test coverage.
- webaudio/suspend-context-while-interrupted-expected.txt: Added.
- webaudio/suspend-context-while-interrupted.html: Added.
- 6:56 AM Changeset in webkit [269038] by
-
- 2 edits in trunk/Source/WebCore
Assert in BoxTree::layoutBoxForRenderer() under RenderLayer::updateScrollCornerStyle()
https://bugs.webkit.org/show_bug.cgi?id=218205
<rdar://problem/70694256>
Reviewed by Zalan Bujtas.
- layout/integration/LayoutIntegrationLineLayout.cpp:
(WebCore::LayoutIntegration::LineLayout::containing):
Similar to RenderReplica, RenderScrollbarPart is a fake renderer that is not in the tree even
though it has the parent pointer set.
- 6:28 AM Changeset in webkit [269037] by
-
- 2 edits in trunk/Source/WebCore
RenderStyle::resetPadding sets incorrect computed value (auto)
https://bugs.webkit.org/show_bug.cgi?id=218211
Reviewed by Antti Koivisto.
- rendering/style/RenderStyle.h:
(WebCore::RenderStyle::resetPadding):
- 6:27 AM Changeset in webkit [269036] by
-
- 32 edits in trunk/LayoutTests
Remove unneeded whitespace between content and <br>
https://bugs.webkit.org/show_bug.cgi?id=218151
<rdar://problem/70662471>
Reviewed by Antti Koivisto.
Missed these files in r268958.
- fast/dom/HTMLTextAreaElement/reset-textarea.html:
- fast/forms/input-appearance-spinbutton.html:
- fast/forms/option-index.html:
- fast/text/basic/generic-family-reset.html:
- fast/xsl/resources/xslt-enc-cyr.xsl:
- fast/xsl/resources/xslt-enc.xsl:
- fast/xsl/resources/xslt-enc16.xsl:
- http/tests/navigation/resources/postresult.pl:
- http/tests/navigation/resources/success200.html:
- platform/mac-catalina/fast/forms/input-appearance-spinbutton-expected.txt:
- platform/mac/fast/dom/HTMLTextAreaElement/reset-textarea-expected.txt:
- platform/mac/fast/forms/option-index-expected.txt:
- platform/mac/fast/text/basic/generic-family-reset-expected.txt:
- platform/mac/fast/xsl/xslt-enc-cyr-expected.txt:
- platform/mac/fast/xsl/xslt-enc-expected.txt:
- platform/mac/fast/xsl/xslt-enc16-expected.txt:
- platform/mac/fast/xsl/xslt-enc16to16-expected.txt:
- platform/mac/http/tests/navigation/javascriptlink-frames-expected.txt:
- platform/mac/http/tests/navigation/postredirect-basic-expected.txt:
- platform/mac/http/tests/navigation/postredirect-goback1-expected.txt:
- platform/mac/svg/wicd/test-rightsizing-b-expected.txt:
- svg/wicd/test-rightsizing-b.xhtml:
- 6:26 AM Changeset in webkit [269035] by
-
- 6 edits in trunk
WebDriver: sequence of char key press is not supported
https://bugs.webkit.org/show_bug.cgi?id=217951
Reviewed by Brian Burg.
Source/WebKit:
We are assuming there can be only one char key pressed at a time. Use a HashSet to store the currently pressed
char keys and the handle them the same way we do with virtual keys.
Fixes: imported/w3c/webdriver/tests/perform_actions/key_events.py::test_sequence_of_keydown_printable_keys_sends_events
- UIProcess/Automation/SimulatedInputDispatcher.cpp:
(WebKit::SimulatedInputDispatcher::transitionInputSourceToState):
- UIProcess/Automation/SimulatedInputDispatcher.h:
- UIProcess/Automation/WebAutomationSession.cpp:
(WebKit::WebAutomationSession::performInteractionSequence):
WebDriverTests:
Remove expectations for test that is now passing.
- TestExpectations.json:
- 6:01 AM Changeset in webkit [269034] by
-
- 2 edits in trunk/Source/WebCore
[GStreamer] Device monitor issue in AudioDestination
https://bugs.webkit.org/show_bug.cgi?id=217959
Patch by Philippe Normand <pnormand@igalia.com> on 2020-10-27
Reviewed by Xabier Rodriguez-Calvar.
Remove workaround for false-positive GstDeviceMonitor critical warnings. The GStreamer patch
fixing this issue was backported to the Flatpak SDK in bug #218021.
- platform/audio/gstreamer/AudioDestinationGStreamer.cpp:
(WebCore::maximumNumberOfOutputChannels):
- 6:00 AM Changeset in webkit [269033] by
-
- 2 edits in trunk/Source/WebCore
[EME][GStreamer] Decode base64 init data if needed
https://bugs.webkit.org/show_bug.cgi?id=218175
Reviewed by Philippe Normand.
There are certain strings with certain key systems that deliver
initialization data encoded as base64 so we need to decode it
first.
- platform/graphics/gstreamer/eme/GStreamerEMEUtilities.h:
(WebCore::InitData::InitData):
(WebCore::InitData::decodeBase64IfNeeded):
- 5:30 AM Changeset in webkit [269032] by
-
- 5 edits in trunk/Source/WebCore
[WebXR] Move OpenXR calls off the main thread
https://bugs.webkit.org/show_bug.cgi?id=217752
Reviewed by Youenn Fablet.
The OpenXR API is synchronous. Many of the calls involve dealing with external hardware devices
meaning that they have to potential to block the main thread. They should be moved to a different
thread in order to avoid that.
The PlatformXR::Instance creates a WorkQueue which is going to be used by the OpenXR devices to
issue OpenXR calls and also serialize them to ensure that they are executed sequentially. The
OpenXRDevice's are created in the main thread anyway because we need to get weak pointers from
them in the main thread.
- Modules/webxr/WebXRSystem.cpp:
(WebCore::WebXRSystem::ensureImmersiveXRDeviceIsSelected): Use a scoped exit to call callback. Also
the Vector of immersive devices is now a pointer which might be null, meaning no available devices.
- platform/xr/PlatformXR.h: Added a "using" for the Vector of devices.
- platform/xr/openxr/PlatformXROpenXR.cpp:
(PlatformXR::Instance::Impl::queue const): New getter returning the WorkQueue.
(PlatformXR::Instance::Impl::enumerateApiLayerProperties const): Added an ASSERT.
(PlatformXR::Instance::Impl::checkInstanceExtensionProperties const): Ditto.
(PlatformXR::Instance::Impl::Impl): Create the OpenXR WorkQueue and dispatch a task to perform the
OpenXR system initialization in the queue.
(PlatformXR::Instance::Impl::~Impl): Delete the instance in the WorkQueue
(PlatformXR::Instance::enumerateImmersiveXRDevices): Moved the code to a task in the WorkQueue.
(PlatformXR::OpenXRDevice::OpenXRDevice): Ditto. Also added a completion handler to notify the caller
about the end of the device initialization process.
(PlatformXR::OpenXRDevice::collectSupportedSessionModes): Added an ASSERT.
(PlatformXR::OpenXRDevice::collectConfigurationViews): Ditto.
- platform/xr/openxr/PlatformXROpenXR.h: Added WorkQueue attribute and parameter to device constructor.
- 4:40 AM Changeset in webkit [269031] by
-
- 3 edits in trunk/Source/WebCore
[EME][GStreamer] Fix logging in utilities
https://bugs.webkit.org/show_bug.cgi?id=218174
Reviewed by Philippe Normand.
There is some logging in GStreamerEMEUtilities.h that was not
using debugging categories properly. It does now.
- platform/graphics/gstreamer/eme/GStreamerEMEUtilities.h:
(WebCore::InitData::InitData):
- platform/graphics/gstreamer/eme/WebKitCommonEncryptionDecryptorGStreamer.cpp:
- 4:24 AM Changeset in webkit [269030] by
-
- 2 edits in trunk/Source/WebCore
[EME][GStreamer][Thunder] Make response parsing message more robust
https://bugs.webkit.org/show_bug.cgi?id=218172
Reviewed by Philippe Normand.
ParsedResponseMessage checks now for empty buffers and we assert
on that in the code. We also add some other checks that could
trigger crashes if failed.
No new tests needed, just a rework.
- platform/graphics/gstreamer/eme/CDMThunder.cpp:
(WebCore::ParsedResponseMessage::ParsedResponseMessage):
(WebCore::ParsedResponseMessage::isValid const):
(WebCore::ParsedResponseMessage::operator bool const):
(WebCore::ParsedResponseMessage::operator! const):
(WebCore::CDMInstanceSessionThunder::challengeGeneratedCallback):
(WebCore::CDMInstanceSessionThunder::updateLicense):
(WebCore::CDMInstanceSessionThunder::loadSession):
(WebCore::CDMInstanceSessionThunder::removeSessionData):
- 3:33 AM Changeset in webkit [269029] by
-
- 2 edits in trunk/LayoutTests
Unreviewed, GTK GStreamer gardening
- platform/gtk/TestExpectations: Remove flaky expectations for a few tests consistently passing.
- 3:12 AM Changeset in webkit [269028] by
-
- 2 edits in trunk/PerformanceTests
Make WebAssembly tests on JetStream 2 be feature detactable
https://bugs.webkit.org/show_bug.cgi?id=218198
Reviewed by Saam Barati.
This patch is disabling JetStream 2's WASM tests when it's not
possible to find WebAssembly constructor on global object. This allows
us to run JetStream 2 on devices without WASM support, like 32-bits
ports of WebKit.
- JetStream2/JetStreamDriver.js:
- 2:03 AM Changeset in webkit [269027] by
-
- 24 edits in trunk/Source
Make WebCore::FocusDirection to enum class
https://bugs.webkit.org/show_bug.cgi?id=218162
Patch by Tetsuharu Ohzeki <Tetsuharu Ohzeki> on 2020-10-27
Reviewed by Darin Adler.
Source/WebCore:
- dom/Document.cpp:
(WebCore::Document::adjustFocusedNodeOnNodeRemoval):
(WebCore::Document::focusNavigationStartingNode const):
- dom/Document.h:
- dom/Element.h:
- html/BaseDateAndTimeInputType.cpp:
(WebCore::BaseDateAndTimeInputType::handleFocusEvent):
- page/EventHandler.cpp:
(WebCore::focusDirectionForKey):
(WebCore::handleKeyboardSelectionMovement):
(WebCore::EventHandler::accessibilityPreventsEventPropagation):
(WebCore::EventHandler::defaultKeyboardEventHandler):
(WebCore::EventHandler::defaultTabEventHandler):
- page/FocusController.cpp:
(WebCore::dispatchEventsOnWindowAndFocusedElement):
(WebCore::FocusController::advanceFocus):
(WebCore::FocusController::findFocusableElementAcrossFocusScope):
(WebCore::FocusController::findFocusableElementWithinScope):
(WebCore::FocusController::findFocusableElementOrScopeOwner):
(WebCore::FocusController::findElementWithExactTabIndex):
(WebCore::FocusController::nextFocusableElementOrScopeOwner):
(WebCore::FocusController::previousFocusableElementOrScopeOwner):
- page/FocusController.h:
- page/FocusDirection.h:
- page/SpatialNavigation.cpp:
(WebCore::isHorizontalMove):
(WebCore::areRectsFullyAligned):
(WebCore::areRectsMoreThanFullScreenApart):
(WebCore::isRectInDirection):
(WebCore::hasOffscreenRect):
(WebCore::scrollInDirection):
(WebCore::canScrollInDirection):
(WebCore::entryAndExitPointsForDirection):
(WebCore::isValidCandidate):
(WebCore::distanceDataForNode):
(WebCore::canBeScrolledIntoView):
(WebCore::virtualRectForDirection):
- page/SpatialNavigation.h:
Source/WebKit:
- UIProcess/Cocoa/WebViewImpl.mm:
(WebKit::WebViewImpl::takeFocus):
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::takeFocus):
- UIProcess/WebPageProxy.h:
- UIProcess/WebPageProxy.messages.in:
- WebProcess/WebCoreSupport/WebChromeClient.cpp:
(WebKit::WebChromeClient::takeFocus):
- WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::handleKeyEventByRelinquishingFocusToChrome):
(WebKit::WebPage::setInitialFocus):
Source/WebKitLegacy/mac:
- WebCoreSupport/WebChromeClient.mm:
(WebChromeClient::takeFocus):
- WebView/WebHTMLView.mm:
(-[WebHTMLView becomeFirstResponder]):
Source/WebKitLegacy/win:
- WebCoreSupport/WebChromeClient.cpp:
(WebChromeClient::canTakeFocus):
(WebChromeClient::takeFocus):
- WebView.cpp:
(WebView::setInitialFocus):
- 1:21 AM Changeset in webkit [269026] by
-
- 4 edits in trunk/Websites/perf.webkit.org
Fix and update performance dashboard tests
https://bugs.webkit.org/show_bug.cgi?id=218222
Reviewed by Ryosuke Niwa.
- public/api/upload-root.php: Add a null check against empty array
when accessing invalid key which will show warning since php 7.4.
Per https://wiki.php.net/rfc/notice-for-non-valid-array-container.
- server-tests/tools-sync-buildbot-integration-tests.js:
Fixed a unit test that assumes build request IDs under one test group is
one after another. This assumption is wrong when 'StartServers' under
'mpm_prefork_module' is set more than one in apache config.
Fixed antoher incorrect unit test.
- unit-tests/analysis-results-notifier-tests.js:
Fixed unit tests which incorrectly used 'assert.throws' per
https://nodejs.org/docs/latest-v7.x/api/assert.html#assert_assert_throws_block_error_message.
- 1:01 AM Changeset in webkit [269025] by
-
- 8 edits2 adds1 delete in trunk
REGRESSION (r268386): Flashes of inverted color when zooming the map on windy.com
https://bugs.webkit.org/show_bug.cgi?id=218177
<rdar://problem/70676037>
Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2020-10-27
Reviewed by Dean Jackson.
Source/WebCore:
Refactoring r268386 changed the behavior so that a new WebGL drawing
buffer would be created when CA would be using the oldest IOSurface
display buffer of the WebGL layer. Before r268386 the WebGL would just
draw on top of the IOSurface even if CA was using it.
This change made the existing bug of using uninitialized IOSurfaces
visible, since IOSurfaces seem to be initialized with red. The existing
bug was probably in r262366.
The fix in this commit fixes the case where WebGL context is drawn to
but the CA does not display the contents. Draw would cause preparation
of the drawing buffer for display, along with the contract that drawing
buffer might be uninitialized. However, the clear of the drawing buffer
was marked needed only during display.
Case that failed at the time of writing was the case where after draw,
the element would be removed by setting display:none. This would return
red contents, e.g. uninitialized IOSurface contents. Before r268386 this
would first return red until 3 buffers had passed and then it would
start recycling old display buffer contents.
The naming is not fixed in this commit due to just fixing the
regression. Other ports contain code that makes renaming or
restructuring the callbacks more confusing for the other ports.
Test: fast/canvas/webgl/webgl-clear-composited-notshowing.html
- WebCore.xcodeproj/project.pbxproj:
- platform/graphics/cocoa/GraphicsContextGLOpenGLCocoa.mm:
(WebCore::GraphicsContextGLOpenGL::GraphicsContextGLOpenGL):
(WebCore::GraphicsContextGLOpenGL::prepareForDisplay):
- platform/graphics/cocoa/WebGLLayer.h:
- platform/graphics/cocoa/WebGLLayer.mm:
(-[WebGLLayer initWithDevicePixelRatio:contentsOpaque:]):
(-[WebGLLayer display]):
(-[WebGLLayer detachClient]):
- platform/graphics/cocoa/WebGLLayerClient.h: Removed.
- platform/graphics/opengl/GraphicsContextGLOpenGL.h:
LayoutTests:
Test case for WebGL which is drawn to a canvas that is not visible. This should still
adhere to preserveDrawingBuffer == false contract of clearing the drawing buffer
correctly.
Case that failed at the time of writing was the case where after draw, the element
would be removed by setting display:none.
- fast/canvas/webgl/webgl-clear-composited-notshowing-expected.txt: Added.
- fast/canvas/webgl/webgl-clear-composited-notshowing.html: Added.
- 12:28 AM Changeset in webkit [269024] by
-
- 25 edits in trunk/LayoutTests
[WinCairo] Unreviewed test gardening
- platform/wincairo/fast/box-shadow/inset-box-shadow-radius-expected.txt:
- platform/wincairo/fast/box-shadow/inset-box-shadows-expected.txt:
- platform/wincairo/fast/clip/overflow-border-radius-combinations-expected.txt:
- platform/wincairo/fast/clip/overflow-border-radius-composited-expected.txt:
- platform/wincairo/fast/clip/overflow-border-radius-transformed-expected.txt:
- platform/wincairo/fast/css/first-line-text-decoration-expected.txt:
- platform/wincairo/fast/css/first-line-text-decoration-inherited-from-parent-expected.txt:
- platform/wincairo/fast/css/focus-ring-detached-expected.txt:
- platform/wincairo/fast/css/layerZOrderCrash-expected.txt:
- platform/wincairo/fast/css/text-overflow-ellipsis-bidi-expected.txt:
- platform/wincairo/fast/css/text-overflow-ellipsis-expected.txt:
- platform/wincairo/fast/css/text-overflow-ellipsis-strict-expected.txt:
- platform/wincairo/fast/dom/HTMLTextAreaElement/reset-textarea-expected.txt:
- platform/wincairo/fast/dom/focus-contenteditable-expected.txt:
- platform/wincairo/fast/inline-block/006-expected.txt:
- platform/wincairo/fast/inline-block/contenteditable-baseline-expected.txt:
- platform/wincairo/fast/text/basic/012-expected.txt:
- platform/wincairo/fast/text/capitalize-boundaries-expected.txt:
- platform/wincairo/fast/text/indic-expected.txt:
- platform/wincairo/fast/text/international/rtl-white-space-pre-wrap-expected.txt:
- platform/wincairo/fonts/monospace-expected.txt:
- platform/wincairo/fonts/sans-serif-expected.txt:
- platform/wincairo/fonts/serif-expected.txt:
- platform/wincairo/http/tests/local/file-url-sent-as-referer-expected.txt: