Timeline
Jan 17, 2022:
- 11:57 PM Changeset in webkit [288111] by
-
- 7 edits in trunk
[:has() pseudo-class] Disallow nested :has()
https://bugs.webkit.org/show_bug.cgi?id=235231
Reviewed by Dean Jackson.
LayoutTests/imported/w3c:
- web-platform-tests/css/selectors/has-argument-with-explicit-scope.tentative-expected.txt:
- web-platform-tests/css/selectors/has-basic-expected.txt:
- web-platform-tests/css/selectors/parsing/parse-has-expected.txt:
Source/WebCore:
Nested case ':has(:has(foo))' adds no meaningful capability and would complicate invalidation.
See https://github.com/w3c/csswg-drafts/issues/6952 for more details.
- css/parser/CSSSelectorParser.cpp:
(WebCore::CSSSelectorParser::consumePseudo):
Also set m_resistDefaultNamespace like other logical combination pseudo-classes.
- css/parser/CSSSelectorParser.h:
- 11:54 PM Changeset in webkit [288110] by
-
- 2 edits in trunk/Source/WebCore
BaseAudioSharedUnit::devicesChanged is failing capture too much in GPUProcess
https://bugs.webkit.org/show_bug.cgi?id=235288
Reviewed by Eric Carlson.
Manually tested.
- platform/mediastream/mac/CoreAudioCaptureDeviceManager.h:
In GPUProcess, we do not need to filter tap enabled devices, since this may filter out valid devices, which may break capture.
Given we only need to filter tap enabled devices in the process that enumerates devices for selecting the one to use,
We can reverse the default value to not filter, and enable the filtering in UIProcess as done currently based on whether capturing in GPUProcess or not.
- 11:35 PM Changeset in webkit [288109] by
-
- 3 edits in trunk/Source/WebCore
AudioMediaStreamTrackRendererUnit::reset should hop to the main thread before calling its observers
https://bugs.webkit.org/show_bug.cgi?id=235290
Reviewed by Darin Adler.
In case of doing audio rendering in WebProcess, we need to hop to main thread since the callback might get called from a background thread.
- platform/mediastream/cocoa/AudioMediaStreamTrackRendererUnit.cpp:
- platform/mediastream/cocoa/AudioMediaStreamTrackRendererUnit.h:
- 9:21 PM Changeset in webkit [288108] by
-
- 2 edits in trunk
Fix typo in README
https://bugs.webkit.org/show_bug.cgi?id=235309
Patch by Brandon Stewart <Brandon> on 2022-01-17
Reviewed by Michael Saboff.
Fix typo in ReadMe. Updated 'embededded' to 'embedded'.
- ReadMe.md:
- 7:02 PM Changeset in webkit [288107] by
-
- 5 edits4 adds in trunk
REGRESSION(r281389): using font-variant-ligatures causes Unicode bidi isolation control characters to render
https://bugs.webkit.org/show_bug.cgi?id=235053
<rdar://problem/87425066>
Reviewed by Darin Adler.
LayoutTests/imported/w3c:
- web-platform-tests/css/css-text/white-space/default-ignorable-complex-expected.html: Added.
- web-platform-tests/css/css-text/white-space/default-ignorable-complex.html: Added.
- web-platform-tests/css/css-text/white-space/default-ignorable-expected.html: Added.
- web-platform-tests/css/css-text/white-space/default-ignorable.html: Added.
Source/WebCore:
The spec says (https://drafts.csswg.org/css-text-3/#white-space-processing)
unsupported Default_ignorable characters must be ignored for text rendering.
Previously, we were handling this by mapping the characters to the zero width space character. r281389 changed
that to be more faithful to the original string (and not do the mapping). One somewhat unexpected result of
this patch was that, now that we're not mapping these code points to the zero width space character, fewer fonts
on the system will support those code points. It became much more common for no font at all to support the code
point in question. r281389 handled the situation where the code points were supported by a font but shouldn't be
rendered, but didn't handle the case where the code points *weren't* supported by any fonts (in the complex text
codepath). This patch updates that path to handle it.
This patch also replaces our previous hardcoded list of Default_ignorable characters with the proper call to ICU
to check the Unicode property. It does this in both the fast text codepath and the simple text codepath, to make
sure they match.
Tests: imported/w3c/web-platform-tests/css/css-text/white-space/default-ignorable-complex.html
imported/w3c/web-platform-tests/css/css-text/white-space/default-ignorable.html
- platform/graphics/ComplexTextController.cpp:
(WebCore::ComplexTextController::ComplexTextRun::ComplexTextRun):
- platform/graphics/WidthIterator.cpp:
(WebCore::WidthIterator::applyCSSVisibilityRules):
- 5:39 PM Changeset in webkit [288106] by
-
- 4 edits in trunk/Source/ThirdParty/ANGLE
REGRESSION (r249823): gl::Context::onProgramLink() leaks gl::Framebuffer object due early return when an error occurs in ANGLE_TRY() macro
<https://webkit.org/b/235284>
<rdar://problem/87656747>
Reviewed by Darin Adler.
- src/libANGLE/Context.cpp:
(gl::Context::setDefaultFramebuffer):
- Use std::unique_ptr<> to store gl::Framebuffer so the object is released on early return.
- src/libANGLE/Surface.cpp:
(egl::Surface::createDefaultFramebuffer):
- Update to return std::unique_ptr<gl::Framebuffer>.
- src/libANGLE/Surface.h:
(egl::Surface::createDefaultFramebuffer):
- Update declaration to return std::unique_ptr<gl::Framebuffer>.
(egl::Surface::createDefaultFramebuffer): Delete.
- Remove the second, protected method that is currently unimplemented.
- 4:56 PM Changeset in webkit [288105] by
-
- 2 edits in trunk/Source/ThirdParty/ANGLE
REGRESSION (r286603): rx::ProgramMtl::getSpecializedShader() leaks MTLFunctionConstantValues object due early return when an error occurs in ANGLE_TRY() macro
<https://webkit.org/b/235281>
<rdar://problem/87656387>
Reviewed by Darin Adler.
- src/libANGLE/renderer/metal/ProgramMtl.mm:
(rx::ProgramMtl::getSpecializedShader):
- Use mtl::AutoObjCObj<> to release MTLFunctionConstantValues object on early return.
- 4:50 PM Changeset in webkit [288104] by
-
- 15 edits1 add in trunk
[GTK] Implement form validation with gtk3 widgets in the UI process
https://bugs.webkit.org/show_bug.cgi?id=234629
Reviewed by Carlos Garcia Campos.
Source/WebCore:
This change re-implements form validation with gtk3 widgets in the UI process.
The current form validation is implemented by using shadow DOM in the web process.
The overall design is similar to that of mac port but the gtk port adds
a callback of webkitWebViewBaseSetShouldNotifyFocusEvents to WebCore::ValidationBubble
to suppress a focus event triggered by the popover widget. Otherwise, the native
bubble does not display properly.
This change does not support gtk4 yet. A follow-up patch will add the gtk4 support.
No new tests because existing tests cover this change.
- SourcesGTK.txt:
- platform/ValidationBubble.h:
(WebCore::ValidationBubble::create):
- platform/gtk/ValidationBubbleGtk.cpp: Added.
(WebCore::ValidationBubble::ValidationBubble):
(WebCore::ValidationBubble::~ValidationBubble):
(WebCore::ValidationBubble::invalidate):
(WebCore::ValidationBubble::showRelativeTo):
Source/WebKit:
This change re-implements form validation with gtk3 widgets in the UI process.
The current form validation is implemented by using shadow DOM in the web process.
The overall design is similar to that of mac port but the gtk port adds
a callback of webkitWebViewBaseSetShouldNotifyFocusEvents to WebCore::ValidationBubble
to suppress a focus event triggered by the popover widget. Otherwise, the native
bubble does not display properly.
This change does not support gtk4 yet. A follow-up patch will add the gtk4 support.
To avoid complaints from the gtk4 EWS, we guard implementation of ValidationBubbleGtk
temporarily and install pageConfiguration.validationMessageClient for gtk3 only.
The gtk4 keeps using the shadow DOM bubble until having native bubble support.
- SourcesGTK.txt:
- UIProcess/API/gtk/PageClientImpl.cpp:
(WebKit::PageClientImpl::createValidationBubble):
- UIProcess/API/gtk/PageClientImpl.h:
- UIProcess/PageClient.h:
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::hideValidationMessage):
- UIProcess/WebPageProxy.h:
- UIProcess/WebPageProxy.messages.in:
- UIProcess/gtk/WebPageProxyGtk.cpp:
(WebKit::WebPageProxy::showValidationMessage):
- WebProcess/WebPage/WebPage.cpp:
(WebKit::m_appHighlightsVisible):
LayoutTests:
We skip fast/forms/validation-message-clone.html for now. Although this patch
implements a validation bubble with a native widget, related tests cannot be enabled
due to missing JS APIs for the UI script controller (e.g., contentsOfUserInterfaceItem).
- platform/gtk/TestExpectations: Skip fast/forms/validation-message-clone.html
- 1:32 PM Changeset in webkit [288103] by
-
- 3 edits2 adds in trunk
Fractional td width is not rendering correctly
https://bugs.webkit.org/show_bug.cgi?id=234745
<rdar://problem/87162997>
Reviewed by Darin Adler.
Source/WebCore:
This is based on the following Blink commit
https://chromium.googlesource.com/chromium/src/+/bfade5f8c943d322f5aca3ab0341824e4ae885a1
The code that ignores a width of zero was incorrectly parsing as an integer and ignoring fractional values.
Test: fast/table/table-cell-percent-width-between-0-and-1.html
- html/HTMLTableCellElement.cpp:
(WebCore::HTMLTableCellElement::collectPresentationalHintsForAttribute):
LayoutTests:
- fast/table/table-cell-percent-width-between-0-and-1-expected.html: Added.
- fast/table/table-cell-percent-width-between-0-and-1.html: Added.
- 12:17 PM Changeset in webkit [288102] by
-
- 8 edits in trunk
ImageAnalysisQueue should analyze image elements that are loaded after the call to enqueueAllImages()
https://bugs.webkit.org/show_bug.cgi?id=233266
rdar://85731875
Reviewed by Darin Adler.
Source/WebCore:
Make a few adjustments to ImageAnalysisQueue, such that it continues to analyze images in the document that have
finished loading after triggering the initial call toenqueueAllImages()in the document.
Test: ImageAnalysisTests.AnalyzeDynamicallyLoadedImages
ImageAnalysisTests.ResetImageAnalysisAfterNavigation
- page/ImageAnalysisQueue.cpp:
(WebCore::ImageAnalysisQueue::enqueueIfNeeded):
Pull logic for queueing an image element for analysis into a separate helper method; we only attempt to analyze
image elements that have successfully loaded and contain aCachedImagethat is larger than an arbitrarily
chosen size of 20px by 20px.
(WebCore::ImageAnalysisQueue::enqueueAllImages):
Refactor this to use the new
enqueueIfNeededmethod above.
(WebCore::ImageAnalysisQueue::resumeProcessing):
(WebCore::ImageAnalysisQueue::clear):
- page/ImageAnalysisQueue.h:
Add a weak hashset of elements that we've already added to the image analysis queue at some point. This prevents
us from continually performing image analysis on the same image if it's only being removed and reinserted in the
document.
- page/Page.cpp:
(WebCore::Page::didCommitLoad):
Additionally reset the image analysis queue when committing page load, so that the image analysis queue doesn't
persist and continue analyzing images even after reloading the page (or navigating away).
(WebCore::Page::didFinishLoadingImageForElement):
If it exists, tell the page's image analysis queue to add the newly loaded image.
(WebCore::Page::resetImageAnalysisQueue):
- page/Page.h:
Tools:
Add new API tests to check that image elements that are created and inserted after kicking off the image
analysis queue are successfully added to the queue, and result in platform image analysis requests, and to also
verify that the image analysis queue is reset after navigation.
- TestWebKitAPI/Tests/WebKitCocoa/ImageAnalysisTests.mm:
(TestWebKitAPI::processRequestWithResults):
(TestWebKitAPI::makeImageAnalysisRequestSwizzler):
(TestWebKitAPI::processRequestWithError):
(TestWebKitAPI::TEST):
(TestWebKitAPI::swizzledProcessRequestWithResults): Deleted.
(TestWebKitAPI::swizzledProcessRequestWithError): Deleted.
- TestWebKitAPI/Tests/WebKitCocoa/multiple-images.html:
- 12:10 PM Changeset in webkit [288101] by
-
- 2 edits in trunk/Source/WebCore
Crash may occur under ComputedStyleExtractor::propertyValue()
https://bugs.webkit.org/show_bug.cgi?id=235255
Reviewed by Antti Koivisto.
When calling getComputedStyle() after an element has had its style set to "display: none",
ComputedStyleExtractor::propertyValue() will first start with a non-null renderer but it will
become null after document.updateLayoutIgnorePendingStylesheets() is called.
To avoid this problem, we stop storing the renderer throughout the method, and instead call
styledRenderer() to obtain a valid renderer each time we need to access it.
- css/CSSComputedStyleDeclaration.cpp:
(WebCore::ComputedStyleExtractor::propertyValue):
- 11:50 AM Changeset in webkit [288100] by
-
- 6 edits in trunk
AX: Expose toggle buttons using role="button" as form controls.
https://bugs.webkit.org/show_bug.cgi?id=234119
Patch by Sepand Parhami <sparhami@apple.com> on 2022-01-17
Reviewed by Chris Fleizach.
Source/WebCore:
Add the ToggleButton role to the list of aria controls in isARIAControl so that it
is a control when checked by the accessibility object search.
Tests: LayoutTests/accessibility/mac/search-predicate-element-count.html
- accessibility/AccessibilityNodeObject.cpp:
(WebCore::AccessibilityNodeObject::isLabelable const):
Remove redundant check, isControl already covers it.
- accessibility/AccessibilityObject.cpp:
(WebCore::AccessibilityObject::isARIAControl):
LayoutTests:
Added a test case for button/role="button" with aria-presssed. Reordered a few things as
the previously named "inputs" section was not what was being checked in the test (it was
the number of buttons) and it had previously matched the number by coincidence.
- accessibility/mac/search-predicate-element-count-expected.txt:
- accessibility/mac/search-predicate-element-count.html:
- 11:44 AM Changeset in webkit [288099] by
-
- 4 edits2 adds in trunk
Layered @import rules in <style> should be preloaded
https://bugs.webkit.org/show_bug.cgi?id=234094
<rdar://problem/86586969>
Reviewed by Dean Jackson.
Source/WebCore:
Test: http/tests/loading/preload-css-import-layer.html
- html/parser/CSSPreloadScanner.cpp:
(WebCore::CSSPreloadScanner::tokenize):
(WebCore::hasValidImportConditions):
(WebCore::CSSPreloadScanner::emitRule):
- html/parser/CSSPreloadScanner.h:
Allow @import rule containing layer condition to be preloaded.
LayoutTests:
- http/tests/loading/preload-css-import-layer-expected.txt: Added.
- http/tests/loading/preload-css-import-layer.html: Added.
- 11:35 AM Changeset in webkit [288098] by
-
- 2 edits in trunk/Tools
Add an API test to ensure indexedDB.databases() does not create files on disk
https://bugs.webkit.org/show_bug.cgi?id=235289
Reviewed by Darin Adler.
Add test coverage.
- TestWebKitAPI/Tests/WebKitCocoa/IndexedDBPersistence.mm:
- 10:30 AM Changeset in webkit [288097] by
-
- 2 edits in trunk/Source/ThirdParty/ANGLE
Follow-up: REGRESSION (r286603): Leak of three NSMutableDictionary objects each time rx::DisplayMtl::getMetalDeviceMatchingAttribute() is called
<https://webkit.org/b/235278>
<rdar://problem/87653812>
Unreviewed follow-up fix from Bug 235281, Comment #5.
- src/libANGLE/renderer/metal/DisplayMtl.mm:
(rx::DisplayMtl::getMetalDeviceMatchingAttribute):
- Remove unneeded calls to .get().
- 9:27 AM Changeset in webkit [288096] by
-
- 3 edits in trunk/LayoutTests
[GLIB] Update test expectations after r288070 allowed LFC integration to work on GTK.
https://bugs.webkit.org/show_bug.cgi?id=235293
Unreviewed test gardening.
Patch by Arcady Goldmints-Orlov <Arcady Goldmints-Orlov> on 2022-01-17
- platform/glib/TestExpectations:
- platform/gtk/TestExpectations:
- 9:21 AM Changeset in webkit [288095] by
-
- 5 edits2 adds in trunk
[LFC][IFC] ASSERT in InlineContentBreaker::tryBreakingPreviousNonOverflowingRuns (!partialRun->length) when webinspector is open
https://bugs.webkit.org/show_bug.cgi?id=235286
Reviewed by Antti Koivisto.
Source/WebCore:
When the overflowing run is non-breakable (in this case an "inline box end" with padding), we try to find a breakable
previous run in the candidate list. If we find such text run, we try to break it by looking at the applicable CSS properties
(e.g. word-break, overflow-wrap). Now text runs with 1 (and 0) length and no adjacent text runs need special handling
as they can't be broken "within word" or at boundary (they treated as "unbreakable").
Test: fast/text/overflow-wrap-assert-with-zero-width-overflowing-content.html
- layout/formattingContexts/inline/InlineContentBreaker.cpp:
(WebCore::Layout::InlineContentBreaker::tryBreakingTextRun const):
(WebCore::Layout::InlineContentBreaker::tryBreakingPreviousNonOverflowingRuns const): The trailing run starts
at the beginning of the run and ends right before at the last character.
LayoutTests:
- fast/text/overflow-wrap-assert-with-zero-width-overflowing-content-expected.txt: Added.
- fast/text/overflow-wrap-assert-with-zero-width-overflowing-content.html: Added.
- platform/ios/fast/text/basic/015-expected.txt: Progressions.
- platform/mac/fast/text/basic/015-expected.txt:
- 6:31 AM Changeset in webkit [288094] by
-
- 2 edits in trunk/Source/bmalloc
[CMake] Fix bmalloc build
https://bugs.webkit.org/show_bug.cgi?id=235292
Unreviewed build fix.
Patch by Xan Lopez <Xan Lopez> on 2022-01-17
- CMakeLists.txt: fix location of headers and source files.
- 2:49 AM Changeset in webkit [288093] by
-
- 61 edits in trunk
Make ServiceWorkerClient.id a UUID instead of a string derived from a ScriptExecutionContextIdentifier
https://bugs.webkit.org/show_bug.cgi?id=235070
Reviewed by Chris Dumez.
LayoutTests/imported/w3c:
- web-platform-tests/service-workers/service-worker/fetch-event.https-expected.txt:
Source/WebCore:
Update ScriptExecutionContextIdentifier to be a process-scoped UUID.
This allows to identify the process running a process as well as exposing to JavaScript context identifiers as UUIDs.
This is matching what Chrome and Firefox are doing.
Make SWServer store the maping from context UUID strings to the internal ScriptExecutionContextIdentifiers.
This allows to find a ServiceWorkerClient directly from its JavaScript exposed identifier.
Rename reservedClientId in resultingClientId to match the spec.
Covered by existing tests.
- Modules/web-locks/WebLockRegistry.cpp:
- dom/ScriptExecutionContext.cpp:
- loader/DocumentLoader.cpp:
- page/mac/PageMac.mm:
- platform/ProcessQualified.h:
- platform/ScriptExecutionContextIdentifier.h:
- testing/Internals.cpp:
- testing/Internals.h:
- testing/Internals.idl:
- testing/ServiceWorkerInternals.cpp:
- testing/ServiceWorkerInternals.h:
- testing/ServiceWorkerInternals.idl:
- workers/service/FetchEvent.cpp:
- workers/service/FetchEvent.h:
- workers/service/FetchEvent.idl:
- workers/service/ServiceWorkerClient.cpp:
- workers/service/ServiceWorkerClient.idl:
- workers/service/ServiceWorkerClients.cpp:
- workers/service/context/SWContextManager.h:
- workers/service/context/ServiceWorkerFetch.cpp:
- workers/service/context/ServiceWorkerFetch.h:
- workers/service/context/ServiceWorkerThread.cpp:
- workers/service/context/ServiceWorkerThread.h:
- workers/service/context/ServiceWorkerThreadProxy.cpp:
- workers/service/context/ServiceWorkerThreadProxy.h:
- workers/service/server/SWServer.cpp:
- workers/service/server/SWServer.h:
- workers/service/server/SWServerToContextConnection.cpp:
- workers/service/server/SWServerToContextConnection.h:
- workers/service/server/SWServerWorker.cpp:
- workers/service/server/SWServerWorker.h:
Source/WebKit:
Change findByClientIdentifier into findByVisibleClientIdentifieran and make it asn async reply.
Update fetch event code path to send the visible IDs of the FetchEvent from network process to worker context process.
We store these IDs in NetworkResourceLoader so that we can change them in case of redirection for navigations.
- NetworkProcess/NetworkResourceLoader.h:
- NetworkProcess/ServiceWorker/ServiceWorkerFetchTask.cpp:
- NetworkProcess/ServiceWorker/WebSWServerConnection.cpp:
- NetworkProcess/ServiceWorker/WebSWServerToContextConnection.cpp:
- NetworkProcess/ServiceWorker/WebSWServerToContextConnection.h:
- NetworkProcess/ServiceWorker/WebSWServerToContextConnection.messages.in:
- WebProcess/InjectedBundle/API/c/WKBundle.cpp:
- WebProcess/InjectedBundle/InjectedBundle.cpp:
- WebProcess/InjectedBundle/InjectedBundle.h:
- WebProcess/Storage/WebSWContextManagerConnection.cpp:
- WebProcess/Storage/WebSWContextManagerConnection.h:
- WebProcess/Storage/WebSWContextManagerConnection.messages.in:
Source/WTF:
- wtf/UUID.cpp:
- wtf/UUID.h: Add routine to stringify a UUID. Add routine to parse a stringified UUID. We restrict UUID::create to values for which the version 4 UUID stringification is bijective.
Tools:
- TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
- TestWebKitAPI/Tests/WTF/UUID.cpp:
- TestWebKitAPI/Tests/WebKitCocoa/SystemPreview.mm:
LayoutTests:
Updated tests to not rely on visible ID to be the serialization of a ScriptExecutionContextIdentifier.
For that reason, add internals API to get the internal ID from a ServiceWorkerClient.
- http/tests/workers/service/client-added-to-clients-when-restored-from-page-cache.html:
- http/tests/workers/service/client-removed-from-clients-while-in-page-cache.html:
- http/tests/workers/service/resources/getClientIds-worker.js:
- http/tests/workers/service/serviceworkerclients-matchAll-worker.js:
- http/tests/workers/service/serviceworkerclients-matchAll.https.html:
- 1:50 AM Changeset in webkit [288092] by
-
- 9 edits in trunk
[GStreamer] tests media/track/audio-track-configuration.html and media/track/video-track-configuration.html fail
https://bugs.webkit.org/show_bug.cgi?id=234084
Patch by Philippe Normand <pnormand@igalia.com> on 2022-01-17
Reviewed by Xabier Rodriguez-Calvar.
Source/WebCore:
The known caps and tags of the track GstStream are now exposed through the corresponding
Platform{Audio,Video}TrackConfiguration. This is supported only when playbin3 is used at
runtime. Supporting playbin2 would be some work (pad probes upfront of decoders?) that could
be done as a follow-up. The codec string is generated with the new GStreamer API
gst_codec_utils_caps_get_mime_codec(), which will ship in 1.20.
- platform/graphics/gstreamer/AudioTrackPrivateGStreamer.cpp:
(WebCore::AudioTrackPrivateGStreamer::AudioTrackPrivateGStreamer):
- platform/graphics/gstreamer/VideoTrackPrivateGStreamer.cpp:
(WebCore::VideoTrackPrivateGStreamer::VideoTrackPrivateGStreamer):
LayoutTests:
- media/track/audio-track-configuration.html: Add a timeout to each promise, allowing for
nicer actual results when a sub-set of the promises time out. Without this a single promise
timeout would make the entire test time out and the actual results would not be reported
properly.
- media/track/video-track-configuration.html: Ditto.
- platform/glib/TestExpectations: Update {audio,video}-track expectations, tests still
expected to fail but some improvements will be available when we switch to playbin3.
- 1:29 AM Changeset in webkit [288091] by
-
- 2 edits in trunk/Source/WebCore
[Debug][GStreamer] Crash in fast/mediastream/get-display-media-settings.html
https://bugs.webkit.org/show_bug.cgi?id=235221
Patch by Philippe Normand <pnormand@igalia.com> on 2022-01-17
Reviewed by Xabier Rodriguez-Calvar.
Fix use-after-move issue in MockDisplayCaptureSourceGStreamer. The hashSalt string was moved
to the wrapped mock video source, and then again as a parent class constructor parameter.
- platform/mediastream/gstreamer/MockRealtimeVideoSourceGStreamer.cpp:
(WebCore::MockDisplayCaptureSourceGStreamer::create):
- 12:21 AM Changeset in webkit [288090] by
-
- 5 edits in trunk/Source/WebKit
Frequent GPU process jetsams due to RemoteRenderingBackendProxy not claiming ownership of SharedMemory buffers
https://bugs.webkit.org/show_bug.cgi?id=235226
Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2022-01-17
Reviewed by Simon Fraser.
Claim memory from SharedBitmaps and SharedMemory that RemoteRenderingBackendProxy
asks and receives from RemoteRenderingBackend. This is not very good,
as GPUP allocates most of the memory and thus might jetsam
before WP claims them. However, that is a bigger change to be done
after this one.
No new tests, hard to test currently.
- Shared/ShareableBitmap.cpp:
(WebKit::ShareableBitmap::Handle::takeOwnershipOfMemory const):
- Shared/ShareableBitmap.h:
- WebProcess/GPU/graphics/RemoteRenderingBackendProxy.cpp:
(WebKit::RemoteRenderingBackendProxy::getShareableBitmap):
(WebKit::RemoteRenderingBackendProxy::getFilteredImage):
- WebProcess/GPU/graphics/RemoteResourceCacheProxy.cpp:
(WebKit::RemoteResourceCacheProxy::recordNativeImageUse):
- 12:16 AM Changeset in webkit [288089] by
-
- 26 edits1 delete in trunk
[GTK][a11y] Stop using isolated tree for the ATSPI implementation
https://bugs.webkit.org/show_bug.cgi?id=235229
Reviewed by Adrian Perez de Castro.
.:
Do not enable isolated tree for ATSPI.
- Source/cmake/OptionsGTK.cmake:
Source/WebCore:
Isolated tree performance is not good enough with many websites, so for now we will stop using it.
- SourcesGTK.txt:
- accessibility/atspi/AXObjectCacheAtspi.cpp:
(WebCore::AXObjectCache::postPlatformNotification):
(WebCore::AXObjectCache::postTextStateChangePlatformNotification):
(WebCore::AXObjectCache::postTextReplacementPlatformNotificationForTextControl):
(WebCore::AXObjectCache::postTextReplacementPlatformNotification):
(WebCore::AXObjectCache::frameLoadingEventPlatformNotification):
(WebCore::AXObjectCache::isIsolatedTreeEnabled): Deleted.
(WebCore::AXObjectCache::initializeSecondaryAXThread): Deleted.
(WebCore::AXObjectCache::usedOnAXThread): Deleted.
- accessibility/atspi/AccessibilityAtspi.cpp:
(WebCore::AccessibilityAtspi::connect):
(WebCore::AccessibilityAtspi::didConnect):
(WebCore::AccessibilityAtspi::initializeRegistry):
(WebCore::AccessibilityAtspi::addEventListener):
(WebCore::AccessibilityAtspi::removeEventListener):
(WebCore::AccessibilityAtspi::addClient):
(WebCore::AccessibilityAtspi::removeClient):
(WebCore::AccessibilityAtspi::shouldEmitSignal):
(WebCore::AccessibilityAtspi::uniqueName const):
(WebCore::AccessibilityAtspi::nullReference const):
(WebCore::AccessibilityAtspi::applicationReference const):
(WebCore::AccessibilityAtspi::registerRoot):
(WebCore::AccessibilityAtspi::unregisterRoot):
(WebCore::AccessibilityAtspi::registerObject):
(WebCore::AccessibilityAtspi::unregisterObject):
(WebCore::AccessibilityAtspi::registerHyperlink):
(WebCore::AccessibilityAtspi::parentChanged):
(WebCore::AccessibilityAtspi::childrenChanged):
(WebCore::AccessibilityAtspi::stateChanged):
(WebCore::AccessibilityAtspi::textChanged):
(WebCore::AccessibilityAtspi::textAttributesChanged):
(WebCore::AccessibilityAtspi::textCaretMoved):
(WebCore::AccessibilityAtspi::textSelectionChanged):
(WebCore::AccessibilityAtspi::valueChanged):
(WebCore::AccessibilityAtspi::selectionChanged):
(WebCore::AccessibilityAtspi::loadEvent):
(WebCore::AccessibilityAtspi::ensureCache):
(WebCore::AccessibilityAtspi::addToCacheIfNeeded):
(WebCore::AccessibilityAtspi::scheduleCacheUpdate):
(WebCore::AccessibilityAtspi::addAccessible):
(WebCore::AccessibilityAtspi::removeAccessible):
(WebCore::AccessibilityAtspi::AccessibilityAtspi): Deleted.
(WebCore::AccessibilityAtspi::runLoop const): Deleted.
- accessibility/atspi/AccessibilityAtspi.h:
- accessibility/atspi/AccessibilityObjectActionAtspi.cpp:
(WebCore::AccessibilityObjectAtspi::actionName const):
(WebCore::AccessibilityObjectAtspi::localizedActionName const):
(WebCore::AccessibilityObjectAtspi::actionKeyBinding const):
(WebCore::AccessibilityObjectAtspi::doAction const):
- accessibility/atspi/AccessibilityObjectAtspi.cpp:
(WebCore::AccessibilityObjectAtspi::AccessibilityObjectAtspi):
(WebCore::AccessibilityObjectAtspi::cacheDestroyed):
(WebCore::AccessibilityObjectAtspi::elementDestroyed):
(WebCore::AccessibilityObjectAtspi::root):
(WebCore::AccessibilityObjectAtspi::registerObject):
(WebCore::AccessibilityObjectAtspi::didUnregisterObject):
(WebCore::AccessibilityObjectAtspi::path):
(WebCore::AccessibilityObjectAtspi::reference):
(WebCore::AccessibilityObjectAtspi::hyperlinkReference):
(WebCore::AccessibilityObjectAtspi::setParent):
(WebCore:: const):
(WebCore::AccessibilityObjectAtspi::childCount const):
(WebCore::AccessibilityObjectAtspi::childAt const):
(WebCore::AccessibilityObjectAtspi::children const):
(WebCore::AccessibilityObjectAtspi::indexInParent const):
(WebCore::AccessibilityObjectAtspi::name const):
(WebCore::AccessibilityObjectAtspi::description const):
(WebCore::AccessibilityObjectAtspi::locale const):
(WebCore::AccessibilityObjectAtspi::state const):
(WebCore::AccessibilityObjectAtspi::isDefunct const):
(WebCore::AccessibilityObjectAtspi::id const):
(WebCore::AccessibilityObjectAtspi::attributes const):
(WebCore::AccessibilityObjectAtspi::buildAttributes const):
(WebCore::AccessibilityObjectAtspi::relationMap const):
(WebCore::AccessibilityObjectAtspi::buildRelationSet const):
(WebCore::AccessibilityObjectAtspi::buildInterfaces const):
(WebCore::AccessibilityObjectAtspi::serialize const):
(WebCore::AccessibilityObjectAtspi::childAdded):
(WebCore::AccessibilityObjectAtspi::childRemoved):
(WebCore::AccessibilityObjectAtspi::stateChanged):
(WebCore::AccessibilityObjectAtspi::loadEvent):
(WebCore::AccessibilityObjectAtspi::effectiveRole const):
(WebCore::AccessibilityObjectAtspi::role const):
(WebCore::AccessibilityObjectAtspi::roleName const):
(WebCore::AccessibilityObjectAtspi::localizedRoleName const):
(WebCore::AccessibilityObjectAtspi::updateBackingStore):
(WebCore::AccessibilityObject::accessibilityPlatformIncludesObject const):
(WebCore::AccessibilityObjectAtspi::attach): Deleted.
(WebCore::AccessibilityObjectAtspi::detach): Deleted.
- accessibility/atspi/AccessibilityObjectAtspi.h:
- accessibility/atspi/AccessibilityObjectComponentAtspi.cpp:
(WebCore::AccessibilityObjectAtspi::hitTest const):
(WebCore::AccessibilityObjectAtspi::elementRect const):
(WebCore::AccessibilityObjectAtspi::focus const):
(WebCore::AccessibilityObjectAtspi::opacity const):
(WebCore::AccessibilityObjectAtspi::scrollToMakeVisible const):
(WebCore::AccessibilityObjectAtspi::scrollToPoint const):
- accessibility/atspi/AccessibilityObjectDocumentAtspi.cpp:
(WebCore::AccessibilityObjectAtspi::documentAttribute const):
(WebCore::AccessibilityObjectAtspi::documentAttributes const):
(WebCore::AccessibilityObjectAtspi::documentLocale const):
- accessibility/atspi/AccessibilityObjectHyperlinkAtspi.cpp:
(WebCore::AccessibilityObjectAtspi::url const):
(WebCore::AccessibilityObjectAtspi::offsetInParent const):
- accessibility/atspi/AccessibilityObjectHypertextAtspi.cpp:
(WebCore::AccessibilityObjectAtspi::hyperlinkCount const):
(WebCore::AccessibilityObjectAtspi::hyperlink const):
- accessibility/atspi/AccessibilityObjectImageAtspi.cpp:
(WebCore::AccessibilityObjectAtspi::imageDescription const):
- accessibility/atspi/AccessibilityObjectSelectionAtspi.cpp:
(WebCore::AccessibilityObjectAtspi::selectionCount const):
(WebCore::AccessibilityObjectAtspi::selectedChild const):
(WebCore::AccessibilityObjectAtspi::setChildSelected const):
(WebCore::AccessibilityObjectAtspi::deselectSelectedChild const):
(WebCore::AccessibilityObjectAtspi::isChildSelected const):
(WebCore::AccessibilityObjectAtspi::selectAll const):
(WebCore::AccessibilityObjectAtspi::clearSelection const):
(WebCore::AccessibilityObjectAtspi::selectionChanged):
- accessibility/atspi/AccessibilityObjectTableAtspi.cpp:
(WebCore::AccessibilityObjectAtspi::rowCount const):
(WebCore::AccessibilityObjectAtspi::columnCount const):
(WebCore::AccessibilityObjectAtspi::cell const):
(WebCore::AccessibilityObjectAtspi::tableCaption const):
(WebCore::AccessibilityObjectAtspi::cellIndex const):
(WebCore::AccessibilityObjectAtspi::rowAtIndex const):
(WebCore::AccessibilityObjectAtspi::columnAtIndex const):
(WebCore::AccessibilityObjectAtspi::rowHeader const):
(WebCore::AccessibilityObjectAtspi::columnHeader const):
(WebCore::AccessibilityObjectAtspi::rowDescription const):
(WebCore::AccessibilityObjectAtspi::columnDescription const):
(WebCore::AccessibilityObjectAtspi::rowExtent const):
(WebCore::AccessibilityObjectAtspi::columnExtent const):
(WebCore::AccessibilityObjectAtspi::cells const):
(WebCore::AccessibilityObjectAtspi::rows const):
(WebCore::AccessibilityObjectAtspi::rowHeaders const):
(WebCore::AccessibilityObjectAtspi::columnHeaders const):
- accessibility/atspi/AccessibilityObjectTableCellAtspi.cpp:
(WebCore::AccessibilityObjectAtspi::cellRowHeaders const):
(WebCore::AccessibilityObjectAtspi::cellColumnHeaders const):
(WebCore::AccessibilityObjectAtspi::rowSpan const):
(WebCore::AccessibilityObjectAtspi::columnSpan const):
(WebCore::AccessibilityObjectAtspi::cellPosition const):
- accessibility/atspi/AccessibilityObjectTextAtspi.cpp:
(WebCore::AccessibilityObjectAtspi::text const):
(WebCore::AccessibilityObject::getLengthForTextRange const):
(WebCore::AccessibilityObjectAtspi::textInserted):
(WebCore::AccessibilityObjectAtspi::textDeleted):
(WebCore::AccessibilityObjectAtspi::boundaryOffset const):
(WebCore::AccessibilityObjectAtspi::textAtOffset const):
(WebCore::AccessibilityObjectAtspi::characterAtOffset const):
(WebCore::AccessibilityObjectAtspi::boundsForRange const):
(WebCore::AccessibilityObjectAtspi::textExtents const):
(WebCore::AccessibilityObjectAtspi::offsetAtPoint const):
(WebCore::AccessibilityObjectAtspi::boundsForSelection const):
(WebCore::AccessibilityObjectAtspi::selectedRange const):
(WebCore::AccessibilityObjectAtspi::selectionBounds const):
(WebCore::AccessibilityObjectAtspi::setSelectedRange):
(WebCore::AccessibilityObjectAtspi::selectRange):
(WebCore::AccessibilityObjectAtspi::selectionChanged):
(WebCore::AccessibilityObjectAtspi::textAttributes const):
(WebCore::AccessibilityObjectAtspi::textAttributesWithUTF8Offset const):
(WebCore::AccessibilityObjectAtspi::textAttributesChanged):
(WebCore::AccessibilityObjectAtspi::scrollToMakeVisible const):
(WebCore::AccessibilityObjectAtspi::scrollToPoint const):
- accessibility/atspi/AccessibilityObjectValueAtspi.cpp:
(WebCore::AccessibilityObjectAtspi::currentValue const):
(WebCore::AccessibilityObjectAtspi::setCurrentValue):
(WebCore::AccessibilityObjectAtspi::minimumValue const):
(WebCore::AccessibilityObjectAtspi::maximumValue const):
(WebCore::AccessibilityObjectAtspi::minimumIncrement const):
(WebCore::AccessibilityObjectAtspi::valueChanged):
- accessibility/atspi/AccessibilityRootAtspi.cpp:
(WebCore::AccessibilityRootAtspi::AccessibilityRootAtspi):
(WebCore::AccessibilityRootAtspi::registerObject):
(WebCore::AccessibilityRootAtspi::unregisterObject):
(WebCore::AccessibilityRootAtspi::registerTree):
(WebCore::AccessibilityRootAtspi::didUnregisterTree):
(WebCore::AccessibilityRootAtspi::setPath):
(WebCore::AccessibilityRootAtspi::embedded):
(WebCore::AccessibilityRootAtspi::applicationReference const):
(WebCore::AccessibilityRootAtspi::reference const):
(WebCore::AccessibilityRootAtspi::parentReference const):
(WebCore::AccessibilityRootAtspi::child const):
(WebCore::AccessibilityRootAtspi::childAdded):
(WebCore::AccessibilityRootAtspi::serialize const):
(WebCore::AccessibilityRootAtspi::frameRect const):
- accessibility/atspi/AccessibilityRootAtspi.h:
- accessibility/isolatedtree/atspi/AXIsolatedObjectAtspi.cpp: Removed.
(WebCore::AXIsolatedObject::initializePlatformProperties): Deleted.
(WebCore::AXIsolatedObject::attachPlatformWrapper): Deleted.
(WebCore::AXIsolatedObject::detachPlatformWrapper): Deleted.
Tools:
Update WTR to not use the ax thread.
- WebKitTestRunner/InjectedBundle/AccessibilityController.h:
- WebKitTestRunner/InjectedBundle/atspi/AccessibilityControllerAtspi.cpp:
(WTR::findAccessibleObjectById):
(WTR::AccessibilityController::updateIsolatedTreeMode): Deleted.
(WTR::AccessibilityController::axRunLoop): Deleted.
(WTR::AccessibilityController::executeOnAXThreadAndWait): Deleted.
(WTR::AccessibilityController::executeOnAXThread): Deleted.
(WTR::AccessibilityController::executeOnMainThread): Deleted.
- WebKitTestRunner/InjectedBundle/atspi/AccessibilityUIElementAtspi.cpp:
(WTR::AccessibilityUIElement::childrenCount):
(WTR::AccessibilityUIElement::elementAtPoint):
(WTR::AccessibilityUIElement::childAtIndex):
(WTR::elementForRelationAtIndex):
(WTR::AccessibilityUIElement::selectedChildAtIndex const):
(WTR::AccessibilityUIElement::selectedChildrenCount const):
(WTR::AccessibilityUIElement::parentElement):
(WTR::AccessibilityUIElement::attributesOfChildren):
(WTR::AccessibilityUIElement::stringAttributeValue):
(WTR::AccessibilityUIElement::numberAttributeValue):
(WTR::AccessibilityUIElement::currentStateValue const):
(WTR::AccessibilityUIElement::rowHeaders const):
(WTR::AccessibilityUIElement::columnHeaders const):
(WTR::AccessibilityUIElement::boolAttributeValue):
(WTR::AccessibilityUIElement::isAttributeSettable):
(WTR::AccessibilityUIElement::isAttributeSupported):
(WTR::AccessibilityUIElement::role):
(WTR::AccessibilityUIElement::roleDescription):
(WTR::AccessibilityUIElement::computedRoleString):
(WTR::AccessibilityUIElement::title):
(WTR::AccessibilityUIElement::description):
(WTR::AccessibilityUIElement::orientation const):
(WTR::AccessibilityUIElement::helpText const):
(WTR::AccessibilityUIElement::x):
(WTR::AccessibilityUIElement::y):
(WTR::AccessibilityUIElement::width):
(WTR::AccessibilityUIElement::height):
(WTR::AccessibilityUIElement::clickPointX):
(WTR::AccessibilityUIElement::clickPointY):
(WTR::AccessibilityUIElement::intValue const):
(WTR::AccessibilityUIElement::minValue):
(WTR::AccessibilityUIElement::maxValue):
(WTR::AccessibilityUIElement::valueDescription):
(WTR::AccessibilityUIElement::isEnabled):
(WTR::AccessibilityUIElement::isRequired const):
(WTR::AccessibilityUIElement::isFocused const):
(WTR::AccessibilityUIElement::isSelected const):
(WTR::AccessibilityUIElement::isSelectedOptionActive const):
(WTR::AccessibilityUIElement::isExpanded const):
(WTR::AccessibilityUIElement::isChecked const):
(WTR::AccessibilityUIElement::isIndeterminate const):
(WTR::AccessibilityUIElement::hierarchicalLevel const):
(WTR::AccessibilityUIElement::ariaIsGrabbed const):
(WTR::AccessibilityUIElement::ariaDropEffects const):
(WTR::AccessibilityUIElement::rangeForLine):
(WTR::AccessibilityUIElement::boundsForRange):
(WTR::AccessibilityUIElement::attributedStringForRange):
(WTR::AccessibilityUIElement::rowCount):
(WTR::AccessibilityUIElement::columnCount):
(WTR::AccessibilityUIElement::rowIndexRange):
(WTR::AccessibilityUIElement::columnIndexRange):
(WTR::AccessibilityUIElement::cellForColumnAndRow):
(WTR::AccessibilityUIElement::selectedTextRange):
(WTR::AccessibilityUIElement::increment):
(WTR::AccessibilityUIElement::decrement):
(WTR::AccessibilityUIElement::press):
(WTR::AccessibilityUIElement::setSelectedChildAtIndex const):
(WTR::AccessibilityUIElement::removeSelectionAtIndex const):
(WTR::AccessibilityUIElement::clearSelectedChildren const):
(WTR::AccessibilityUIElement::documentEncoding):
(WTR::AccessibilityUIElement::documentURI):
(WTR::AccessibilityUIElement::isFocusable const):
(WTR::AccessibilityUIElement::isSelectable const):
(WTR::AccessibilityUIElement::isMultiSelectable const):
(WTR::AccessibilityUIElement::isVisible const):
(WTR::AccessibilityUIElement::isOffScreen const):
(WTR::AccessibilityUIElement::isCollapsed const):
(WTR::AccessibilityUIElement::isSingleLine const):
(WTR::AccessibilityUIElement::isMultiLine const):
(WTR::AccessibilityUIElement::hasPopup const):
(WTR::AccessibilityUIElement::scrollToMakeVisible):
(WTR::AccessibilityUIElement::scrollToGlobalPoint):
(WTR::AccessibilityUIElement::isIsolatedObject const): Deleted.
- 12:04 AM Changeset in webkit [288088] by
-
- 39 edits3 adds in trunk
Transmit network load metrics when service worker is using one of its network load to respond to FetchEvents
https://bugs.webkit.org/show_bug.cgi?id=235179
Reviewed by Darin Adler.
LayoutTests/imported/w3c:
- web-platform-tests/service-workers/service-worker/next-hop-protocol.https-expected.txt:
Test is progressing further but is failing as the test checks cached responses for which we do not store metrics.
Source/WebCore:
Allow FetchResponses to get their network metrics.
This requires all ThreadableLoaderClients to receive these metrics.
ServiceWorkerFetch is then able to get the metrics from its FetchResponse to send it to the service worker load client.
Test: http/wpt/service-workers/fetch-metrics-via-service-worker.https.html
- Modules/fetch/FetchBodyOwner.h:
- Modules/fetch/FetchLoader.cpp:
- Modules/fetch/FetchLoader.h:
- Modules/fetch/FetchLoaderClient.h:
- Modules/fetch/FetchResponse.cpp:
- Modules/fetch/FetchResponse.h:
- fileapi/FileReaderLoader.cpp:
- fileapi/FileReaderLoader.h:
- inspector/agents/InspectorNetworkAgent.cpp:
- loader/DocumentThreadableLoader.cpp:
- loader/DocumentThreadableLoader.h:
- loader/ThreadableLoaderClient.h:
- loader/ThreadableLoaderClientWrapper.h:
- loader/WorkerThreadableLoader.cpp:
- loader/WorkerThreadableLoader.h:
- page/EventSource.cpp:
- page/EventSource.h:
- testing/Internals.cpp:
- testing/Internals.h:
- testing/Internals.idl:
- workers/WorkerFontLoadRequest.cpp:
- workers/WorkerFontLoadRequest.h:
- workers/WorkerScriptLoader.cpp:
- workers/WorkerScriptLoader.h:
- workers/service/context/ServiceWorkerFetch.cpp:
- workers/service/context/ServiceWorkerFetch.h:
- xml/XMLHttpRequest.cpp:
- xml/XMLHttpRequest.h:
Source/WebKit:
Pipe network metrics down to WebProcess.
- NetworkProcess/ServiceWorker/ServiceWorkerFetchTask.cpp:
- NetworkProcess/ServiceWorker/ServiceWorkerFetchTask.h:
- NetworkProcess/ServiceWorker/ServiceWorkerFetchTask.messages.in:
- WebProcess/Storage/WebServiceWorkerFetchTaskClient.cpp:
- WebProcess/Storage/WebServiceWorkerFetchTaskClient.h:
LayoutTests:
- http/wpt/service-workers/fetch-metrics-via-service-worker.https-expected.txt: Added.
- http/wpt/service-workers/fetch-metrics-via-service-worker.https.html: Added.
- http/wpt/service-workers/fetch-metrics-worker.js: Added.
Jan 16, 2022:
- 10:44 PM Changeset in webkit [288087] by
-
- 32 edits in trunk
Enforce focus check for getUserMedia
https://bugs.webkit.org/show_bug.cgi?id=235026
Source/WebCore:
Reviewed by Eric Carlson.
Add infrastructure to register a callback so that a task is executed when the document is visible.
Use this to delay getUserMedia requests until document is visible.
The spec currently defines that we should wait for the current document to have focus but this is about to be changed and is not aligned with other browser implementations.
The patch also moves some getUserMedia checks earlier so as to respect order provided by the specs.
Add a check to validate getDisplayMedia is called on a visible document as the user gesture is now time based.
Covered by API test.
- Modules/mediastream/MediaDevices.cpp:
- Modules/mediastream/UserMediaRequest.cpp:
- Modules/mediastream/UserMediaRequest.h:
- dom/Document.cpp:
- dom/Document.h:
- editing/FrameSelection.cpp:
Source/WebKit:
Reviewed by Eric Carlson.
Add setters/getters for the getUserMedia focus settings.
- UIProcess/API/C/WKPreferences.cpp:
(WKPreferencesSetGetUserMediaRequiresFocus):
(WKPreferencesGetGetUserMediaRequiresFocus):
- UIProcess/API/C/WKPreferencesRefPrivate.h:
- UIProcess/API/Cocoa/WKPreferences.mm:
(-[WKPreferences _getUserMediaRequiresFocus]):
(-[WKPreferences _setGetUserMediaRequiresFocus:]):
- UIProcess/API/Cocoa/WKPreferencesPrivate.h:
- UIProcess/API/glib/WebKitSettings.cpp:
(webkitSettingsSetGetUserMediaRequiresFocus):
- UIProcess/API/glib/WebKitSettingsPrivate.h:
- UIProcess/API/gtk/WebKitWebViewBase.cpp:
(webkitWebViewBaseMap): Always add the WindowIsActive flag under xvfb.
(webkitWebViewBaseIsFocused): Always consider the view focused when WindowIsActive flag is present under xvfb.
Source/WTF:
Reviewed by Eric Carlson.
- Scripts/Preferences/WebPreferencesInternal.yaml:
Tools:
Reviewed by Eric Carlson.
Disable focus flag for testing to not require to focus the window.
- TestWebKitAPI/Tests/WebKit/GetUserMedia.mm:
(TestWebKitAPI::initializeMediaCaptureConfiguration):
(TestWebKitAPI::doCaptureMuteTest):
(TestWebKitAPI::TEST):
- TestWebKitAPI/Tests/WebKit/GetUserMediaNavigation.mm:
(TestWebKitAPI::initializeMediaCaptureConfiguration):
(TestWebKitAPI::TEST):
- TestWebKitAPI/Tests/WebKit/GetUserMediaReprompt.mm:
(TestWebKitAPI::initializeMediaCaptureConfiguration):
(TestWebKitAPI::TEST):
- TestWebKitAPI/Tests/WebKit/MediaStreamTrackDetached.mm:
(TestWebKitAPI::TEST):
- TestWebKitAPI/Tests/WebKit/UserMedia.cpp:
(TestWebKitAPI::TEST):
- TestWebKitAPI/Tests/WebKitCocoa/AudioBufferSize.mm:
(TestWebKitAPI::TEST):
- TestWebKitAPI/Tests/WebKitCocoa/GPUProcess.mm:
(TEST):
- TestWebKitAPI/Tests/WebKitCocoa/GetDisplayMedia.mm:
(TestWebKitAPI::GetDisplayMediaTest::SetUp):
- TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:
- TestWebKitAPI/Tests/WebKitCocoa/SpeechRecognition.mm:
(TestWebKitAPI::TEST):
- TestWebKitAPI/Tests/WebKitCocoa/UserMediaDisabled.mm:
(MediaCaptureDisabledTest::SetUp):
- TestWebKitAPI/Tests/WebKitCocoa/UserMediaSimulateFailedSandbox.mm:
(MediaCaptureSimulateFailedSandbox::SetUp):
- TestWebKitAPI/Tests/WebKitGLib/TestUIClient.cpp:
(testWebViewUserMediaEnumerateDevicesPermissionCheck):
(testWebViewUserMediaPermissionRequests):
(testWebViewAudioOnlyUserMediaPermissionRequests):
LayoutTests:
Reviewed by Eric Carlson.
- fast/mediastream/MediaDevices-getUserMedia-expected.txt:
- 10:41 PM Changeset in webkit [288086] by
-
- 5 edits in trunk
Queue a task to fire MediaStreamTrack ended event
https://bugs.webkit.org/show_bug.cgi?id=235227
Reviewed by Eric Carlson.
Source/WebCore:
Adding a specific readyState slot to match the spec and queue a task to stop the track instead of firing the event synchronously.
Covered by updated test.
- Modules/mediastream/MediaStreamTrack.cpp:
- Modules/mediastream/MediaStreamTrack.h:
LayoutTests:
- fast/mediastream/media-stream-track-source-failure.html:
- 9:18 PM Changeset in webkit [288085] by
-
- 25 edits in trunk/Source
Fix C++20 build warnings with GCC
https://bugs.webkit.org/show_bug.cgi?id=235023
Reviewed by Alex Christensen.
Mostly related to deprecating operations between enums of different
types and not capturing this by default in lambdas.
Source/JavaScriptCore:
- assembler/X86Assembler.h: Casting enums to same type.
(JSC::X86Assembler::cmovcc):
(JSC::X86Assembler::jccRel32):
(JSC::X86Assembler::setccOpcode):
- b3/B3CheckSpecial.cpp: Capture this in lambda.
(JSC::B3::CheckSpecial::generate):
- b3/B3Type.cpp: Replace is_pod_v is is_standard_layout_v and
is_trivial_v
- bytecode/AccessCase.cpp: Capture this in lambda.
(JSC::AccessCase::generateImpl):
- bytecode/CallLinkInfo.cpp: Ditto.
(JSC::OptimizingCallLinkInfo::emitDirectFastPath):
(JSC::OptimizingCallLinkInfo::emitDirectTailCallFastPath):
(JSC::OptimizingCallLinkInfo::initializeDirectCall):
- dfg/DFGSpeculativeJIT.cpp: Ditto.
- dfg/DFGSpeculativeJIT64.cpp: Ditto.
(JSC::DFG::SpeculativeJIT::compile):
- jit/ICStats.h: Cast enums to same type.
(JSC::ICEvent::hash const):
- jit/JITArithmetic.cpp: Capture this in lambda.
(JSC::JIT::emitMathICSlow):
- jit/JITSizeStatistics.cpp: Ditto.
(JSC::JITSizeStatistics::markEnd):
- runtime/VM.cpp: Ditto.
(JSC::VM::deleteAllLinkedCode):
(JSC::VM::deleteAllCode):
(JSC::VM::shrinkFootprintWhenIdle):
- wasm/WasmAirIRGenerator.cpp: Ditto.
(JSC::Wasm::AirIRGenerator::AirIRGenerator):
(JSC::Wasm::AirIRGenerator::addTableGet):
(JSC::Wasm::AirIRGenerator::addTableSet):
(JSC::Wasm::AirIRGenerator::addTableInit):
(JSC::Wasm::AirIRGenerator::addTableFill):
(JSC::Wasm::AirIRGenerator::addTableCopy):
(JSC::Wasm::AirIRGenerator::addMemoryFill):
(JSC::Wasm::AirIRGenerator::addMemoryCopy):
(JSC::Wasm::AirIRGenerator::addMemoryInit):
(JSC::Wasm::AirIRGenerator::emitCheckAndPreparePointer):
(JSC::Wasm::AirIRGenerator::emitAtomicLoadOp):
(JSC::Wasm::AirIRGenerator::emitAtomicStoreOp):
(JSC::Wasm::AirIRGenerator::emitAtomicBinaryRMWOp):
(JSC::Wasm::AirIRGenerator::emitAtomicCompareExchange):
(JSC::Wasm::AirIRGenerator::atomicWait):
(JSC::Wasm::AirIRGenerator::atomicNotify):
(JSC::Wasm::AirIRGenerator::emitEntryTierUpCheck):
(JSC::Wasm::AirIRGenerator::emitLoopTierUpCheck):
(JSC::Wasm::AirIRGenerator::addCallIndirect):
(JSC::Wasm::AirIRGenerator::addCallRef):
(JSC::Wasm::AirIRGenerator::emitChecksForModOrDiv):
(JSC::Wasm::AirIRGenerator::addOp<OpType::I32TruncSF64>):
(JSC::Wasm::AirIRGenerator::addOp<OpType::I32TruncSF32>):
(JSC::Wasm::AirIRGenerator::addOp<OpType::I32TruncUF64>):
(JSC::Wasm::AirIRGenerator::addOp<OpType::I32TruncUF32>):
(JSC::Wasm::AirIRGenerator::addOp<OpType::I64TruncSF64>):
(JSC::Wasm::AirIRGenerator::addOp<OpType::I64TruncUF64>):
(JSC::Wasm::AirIRGenerator::addOp<OpType::I64TruncSF32>):
(JSC::Wasm::AirIRGenerator::addOp<OpType::I64TruncUF32>):
- wasm/WasmB3IRGenerator.cpp: Ditto.
(JSC::Wasm::B3IRGenerator::B3IRGenerator):
(JSC::Wasm::B3IRGenerator::addTableGet):
(JSC::Wasm::B3IRGenerator::addTableSet):
(JSC::Wasm::B3IRGenerator::addTableInit):
(JSC::Wasm::B3IRGenerator::addTableFill):
(JSC::Wasm::B3IRGenerator::addTableCopy):
(JSC::Wasm::B3IRGenerator::emitIndirectCall):
(JSC::Wasm::B3IRGenerator::addMemoryFill):
(JSC::Wasm::B3IRGenerator::addMemoryInit):
(JSC::Wasm::B3IRGenerator::addMemoryCopy):
(JSC::Wasm::B3IRGenerator::fixupPointerPlusOffsetForAtomicOps):
(JSC::Wasm::B3IRGenerator::atomicWait):
(JSC::Wasm::B3IRGenerator::atomicNotify):
(JSC::Wasm::B3IRGenerator::emitEntryTierUpCheck):
(JSC::Wasm::B3IRGenerator::emitLoopTierUpCheck):
(JSC::Wasm::B3IRGenerator::addCall):
(JSC::Wasm::B3IRGenerator::addCallIndirect):
(JSC::Wasm::B3IRGenerator::addCallRef):
(JSC::Wasm::B3IRGenerator::emitChecksForModOrDiv):
(JSC::Wasm::B3IRGenerator::addOp<OpType::I32TruncSF64>):
(JSC::Wasm::B3IRGenerator::addOp<OpType::I32TruncSF32>):
(JSC::Wasm::B3IRGenerator::addOp<OpType::I32TruncUF64>):
(JSC::Wasm::B3IRGenerator::addOp<OpType::I32TruncUF32>):
(JSC::Wasm::B3IRGenerator::addOp<OpType::I64TruncSF64>):
(JSC::Wasm::B3IRGenerator::addOp<OpType::I64TruncUF64>):
(JSC::Wasm::B3IRGenerator::addOp<OpType::I64TruncSF32>):
(JSC::Wasm::B3IRGenerator::addOp<OpType::I64TruncUF32>):
- yarr/YarrJIT.cpp: Ditto.
Source/WebCore:
- dom/ViewportArguments.h: Replace enum with constexpr ints as they're
compared to doubles in various places through ViewportArguments.cpp.
- dom/WheelEvent.h: Replace single-valued enum with constexpr
variable.
- platform/animation/Animation.h: Ditto.
- platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp:
Ditto.
(WebCore::CoordinatedGraphicsLayer::shouldDirectlyCompositeImage const):
- rendering/style/RenderStyleConstants.h: Merge two enums that are
used only in the context of being combined to form a third enum.
Source/WebKit:
- WebProcess/Inspector/WebInspector.cpp: Capture this in lambdas.
(WebKit::WebInspector::showConsole):
(WebKit::WebInspector::showResources):
(WebKit::WebInspector::showMainResourceForFrame):
(WebKit::WebInspector::startPageProfiling):
(WebKit::WebInspector::stopPageProfiling):
(WebKit::WebInspector::startElementSelection):
(WebKit::WebInspector::stopElementSelection):
Source/WTF:
- wtf/AutomaticThread.cpp: Capture this in lambda.
(WTF::AutomaticThread::start):
- 7:56 PM Changeset in webkit [288084] by
-
- 1 copy in tags/Safari-612.4.9.0.3
Tag Safari-612.4.9.0.3.
- 7:54 PM Changeset in webkit [288083] by
-
- 1 copy in tags/Safari-612.4.9.1.5
Tag Safari-612.4.9.1.5.
- 7:49 PM Changeset in webkit [288082] by
-
- 4 edits4 adds in branches/safari-612.4.9.0-branch
Cherry-pick r288078. rdar://problem/85801310
database names leak cross-origin within the same browser session
https://bugs.webkit.org/show_bug.cgi?id=233548
Reviewed by Geoff Garen.
Source/WebCore:
Test: http/tests/security/getdatabases-crossorigin.html
- Modules/indexeddb/server/IDBServer.cpp: (WebCore::IDBServer::IDBServer::getAllDatabaseNamesAndVersions): When iterating the set of all open UniqueIDBDatabases, only add them to the results list if their origins match.
- page/ClientOrigin.h: (WebCore::ClientOrigin::operator!= const):
LayoutTests:
- http/tests/security/getdatabases-crossorigin-expected.txt: Added.
- http/tests/security/getdatabases-crossorigin.html: Added.
- http/tests/security/resources/getdatabases-otherframe.html: Added.
- http/tests/security/resources/getdatabases-otherwindow.html: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@288078 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 7:46 PM Changeset in webkit [288081] by
-
- 4 edits4 adds in branches/safari-612.4.9.1-branch
Cherry-pick r288078. rdar://problem/85801310
database names leak cross-origin within the same browser session
https://bugs.webkit.org/show_bug.cgi?id=233548
Reviewed by Geoff Garen.
Source/WebCore:
Test: http/tests/security/getdatabases-crossorigin.html
- Modules/indexeddb/server/IDBServer.cpp: (WebCore::IDBServer::IDBServer::getAllDatabaseNamesAndVersions): When iterating the set of all open UniqueIDBDatabases, only add them to the results list if their origins match.
- page/ClientOrigin.h: (WebCore::ClientOrigin::operator!= const):
LayoutTests:
- http/tests/security/getdatabases-crossorigin-expected.txt: Added.
- http/tests/security/getdatabases-crossorigin.html: Added.
- http/tests/security/resources/getdatabases-otherframe.html: Added.
- http/tests/security/resources/getdatabases-otherwindow.html: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@288078 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 7:41 PM Changeset in webkit [288080] by
-
- 8 edits in branches/safari-612.4.9.1-branch/Source
Versioning.
WebKit-7612.4.9.1.5
- 7:36 PM Changeset in webkit [288079] by
-
- 8 edits in branches/safari-612.4.9.0-branch/Source
Versioning.
WebKit-7612.4.9.0.3
- 7:35 PM Changeset in webkit [288078] by
-
- 4 edits4 adds in trunk
database names leak cross-origin within the same browser session
https://bugs.webkit.org/show_bug.cgi?id=233548
Reviewed by Geoff Garen.
Source/WebCore:
Test: http/tests/security/getdatabases-crossorigin.html
- Modules/indexeddb/server/IDBServer.cpp:
(WebCore::IDBServer::IDBServer::getAllDatabaseNamesAndVersions): When iterating the set of all open
UniqueIDBDatabases, only add them to the results list if their origins match.
- page/ClientOrigin.h:
(WebCore::ClientOrigin::operator!= const):
LayoutTests:
- http/tests/security/getdatabases-crossorigin-expected.txt: Added.
- http/tests/security/getdatabases-crossorigin.html: Added.
- http/tests/security/resources/getdatabases-otherframe.html: Added.
- http/tests/security/resources/getdatabases-otherwindow.html: Added.
- 5:04 PM Changeset in webkit [288077] by
-
- 2 edits in trunk/Source/WebCore
[Win] Use character names instead of codepoint values in overrideControlCharacters()
https://bugs.webkit.org/show_bug.cgi?id=235283
Reviewed by Cameron McCormack.
It's simply easier to read.
No new tests because there is no behavior change.
- platform/graphics/Font.cpp:
(WebCore::overrideControlCharacters):
- 2:10 PM Changeset in webkit [288076] by
-
- 9 edits in trunk/Source
Ensure in flight layer transactions don't accumulate further canvas drawing
https://bugs.webkit.org/show_bug.cgi?id=231163
<rdar://problem/83863292>
Reviewed by Simon Fraser.
Source/WebCore:
When UI side compositing is enabled (as it is on iOS), we build a
layer tree transaction in RemoteLayerTreeDrawingArea::updateRendering to
send off to the UI process. At a high level, updateRendering does this:
- Run any requestAnimationFrame callbacks
- Iterate over the composited layers to draw their contents into the layer backing stores
- Dispatch a task to a different thread to flush the contexts of the layer backing stores and then send the transaction to the UI process
Step 3 is done off a separate task as an optimization, to get the
drawing work queued up by step 2 happening in parallel to any work the
page may day once updateRendering is finished. This can be a problem
when:
- GPU process canvas rendering is enabled (but DOM rendering is disabled)
- we have accelerated ImageBuffers for both layer backing stores and canvas backing stores
- the page does canvas drawing between steps 2 and 3, which affects the contents of a canvas backing store IOSurface that was drawn into a layer backing store IOSurface while building the transaction
The way we draw the canvas contents into the layer is by creating a
CGImage from the canvas backing store ImageBuffer's IOSurface.
Normally, if we draw into an IOSurface that has been wrapped by a
CGImage, this will cause the CGImage to obtain a unique copy of the
IOSurface's pixels, rather than continue holding on to the IOSurface
itself.
When the drawing of this CGImage on to the layer backing store
IOSurface happens, the "draw image" command is queued up to be
processed later. It's only when the flush happens in step 3 above that
the drawing occurs. This means that the CGImage wrapping the IOSurface
exists until that flush.
But while the CGImage does exist, it's in the Web process, and the
canvas drawing on to the same IOSurface happens in the GPU process.
Since QuartzCore doesn't know of its existence, it doesn't cause the
copy-on-write to occur. The effect of this is that subsequent page
drawing on to the canvas can make its way into the layer transaction
unexpectedly.
This patch induces the copy-on-write in the Web process when needed,
by tracking whether a canvas has been drawn into a layer backing
store and the layer transaction flush hasn't happened yet. Just before
we do any more drawing on the canvas, if we are in this state, we
perform a no-op drawing command on the IOSurface, then flush, to make
the CGImage copy the IOSurface data out.
- html/HTMLCanvasElement.cpp:
(WebCore::imageDrawingRequiresGuardAgainstUseByPendingLayerTransaction):
We only need to induce the CGImage copy-on-write behavior if both the
layer and canvas backing stores are accelerated, the canvas
ImageBuffer is remote, and the layer ImageBuffer is not remote.
(WebCore::HTMLCanvasElement::paint):
(WebCore::HTMLCanvasElement::drawingContext const):
Use drawingContext as a convenient single place to check whether we
are performing the first drawing command before the layer tree
transaction flush has happened.
- html/HTMLCanvasElement.h:
- page/Page.h:
(WebCore::Page::setIsAwaitingLayerTreeTransactionFlush):
(WebCore::Page::isAwaitingLayerTreeTransactionFlush const):
- platform/graphics/ImageBufferBackend.h:
(WebCore::ImageBufferBackend::ensureNativeImagesHaveCopiedBackingStore):
- platform/graphics/cg/ImageBufferIOSurfaceBackend.cpp:
(WebCore::ImageBufferIOSurfaceBackend::ensureNativeImagesHaveCopiedBackingStore):
The flush is needed since the CGImage wrapping the IOSurface will only
copy the pixel data out once the no-op drawing command is processed.
- platform/graphics/cg/ImageBufferIOSurfaceBackend.h:
Source/WebKit:
- WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::willCommitLayerTree):
(WebKit::WebPage::didFlushLayerTreeAtTime):
Inform the WebCore::Page about the state of the layer tree transaction
building.
- WebProcess/WebPage/WebPage.h:
- 1:44 PM Changeset in webkit [288075] by
-
- 2 edits in trunk/Source/WTF
[WTF] Add TollFreeBridging.h to Xcode project
Unreviewed follow-up for r284038:
Switch WTF::bridge_cast to use type traits
<https://webkit.org/b/231467>
<rdar://problem/84050614>
- WTF.xcodeproj/project.pbxproj:
- Add TollFreeBridging.h to the project.
- 1:34 PM Changeset in webkit [288074] by
-
- 2 edits in trunk/Source/ThirdParty/ANGLE
REGRESSION (r286603): Leak of three NSMutableDictionary objects each time rx::DisplayMtl::getMetalDeviceMatchingAttribute() is called
<https://webkit.org/b/235278>
<rdar://problem/87653812>
Reviewed by Darin Adler.
- src/libANGLE/renderer/metal/DisplayMtl.mm:
(rx::DisplayMtl::getMetalDeviceMatchingAttribute):
- Make use of mtl::adoptObjCObj<> so these objects are relaseed when the method returns.
- 12:51 PM Changeset in webkit [288073] by
-
- 2 edits in trunk/LayoutTests
[WinCairo] Unreviewed test gardening
After r288052 added editing/execCommand/paste-as-quotation-disconnected-paragraph-ancestor-crash.html,
WinCairo WK1 tests subsequent to the test case had been failing.
It looked like DRT output the result of the privous test case.
- platform/wincairo-wk1/TestExpectations: Skip the test case as well as AppleWin does.
- 1:08 AM Changeset in webkit [288072] by
-
- 2 edits in trunk/Tools/buildstream
[Flatpak SDK] local build is broken
https://bugs.webkit.org/show_bug.cgi?id=235265
Reviewed by Philippe Normand.
The local build of Flatpak SDK is broken due to a missing reference to the freedesktop sdk.
This change updates the reference.
- elements/freedesktop-sdk.bst: