Timeline
May 1, 2021:
- 10:22 PM Changeset in webkit [276882] by
-
- 6 edits in trunk
Share style resolvers between author shadow trees with identical style
https://bugs.webkit.org/show_bug.cgi?id=225187
<rdar://problem/77317178>
Reviewed by Sam Weinig.
Source/WebCore:
Style resolvers own style resolution and invalidation rule sets, matched declarations cache, and other things.
With complex stylesheets that can be lot of data. We currently create a style resolver for each author
shadow tree. With web components it is common for a page to have large number of instances of the same
component, and so shadow trees with identical style.
We already deduplicate shadow tree stylesheets (including inline stylesheets based on string equality).
With this patch we'll use these stylesheets as keys for sharing the full style resolvers as well.
- style/StyleScope.cpp:
(WebCore::Style::Scope::createOrFindSharedShadowTreeResolver):
Expand the existing support for sharing between user agent shadow trees and author shadow trees with
empty style. Look up shareable resolvers from a map.
(WebCore::Style::Scope::unshareShadowTreeResolverBeforeMutation):
(WebCore::Style::Scope::makeResolverSharingKey):
Make a key from the active stylesheets and a bit indicating the shadow tree type.
(WebCore::Style::Scope::releaseMemory):
(WebCore::Style::Scope::didChangeStyleSheetEnvironment):
- style/StyleScope.h:
LayoutTests:
- fast/shadow-dom/style-resolver-sharing-expected.txt:
- fast/shadow-dom/style-resolver-sharing.html:
- 8:39 PM Changeset in webkit [276881] by
-
- 4 edits1 add in trunk/Source/WebCore
Move PixelFormat into its own file
https://bugs.webkit.org/show_bug.cgi?id=225272
Reviewed by Darin Adler.
PixelFormat is going to be useful for non-ImageBuffer specific reasons
soon, so let's move it to its own header.
- Headers.cmake:
- WebCore.xcodeproj/project.pbxproj:
- platform/graphics/ImageBufferBackend.h:
- platform/graphics/PixelFormat.h: Added.
- 8:09 PM Changeset in webkit [276880] by
-
- 58 edits in trunk/Source
Use SortedArrayMap in a few more places
https://bugs.webkit.org/show_bug.cgi?id=225251
Reviewed by Sam Weinig.
Source/WebCore:
- Modules/encryptedmedia/CDM.h: Removed unneeded includes.
- Modules/indexeddb/server/IDBServer.h: Ditto.
- contentextensions/ContentExtensionActions.h: Ditto.
- css/CSSVariableData.h: Ditto.
- dom/FullscreenManager.h: Ditto.
- dom/ScriptElement.cpp:
(WebCore::isLegacySupportedJavaScriptLanguage): Use SortedArraySet.
(WebCore::ScriptElement::executeClassicScript): Fixed typo.
(WebCore::ScriptElement::executeModuleScript): Ditto.
- inspector/InspectorAuditResourcesObject.cpp: Removed unneeded includes.
- inspector/agents/InspectorNetworkAgent.cpp: Ditto.
- loader/appcache/ApplicationCacheGroup.cpp: Ditto.
- page/UserContentProvider.h: Ditto.
- page/ios/DOMTimerHoldingTank.cpp: Ditto.
- page/scrolling/ScrollingCoordinator.h: Ditto.
- page/scrolling/ScrollingTreeNode.h: Added forward declaration
that used to be inherited from another file where it's not needed.
- platform/gamepad/cocoa/GameControllerGamepadProvider.mm:
(WebCore::GameControllerGamepadProvider::willHandleVendorAndProduct):
Use a switch statement.
- platform/gamepad/mac/HIDGamepadElement.h: Removed unneeded includes.
- platform/graphics/FontPlatformData.cpp: Ditto.
- platform/graphics/HEVCUtilities.cpp: Ditto.
- platform/graphics/IntRectHash.h: Ditto.
- platform/graphics/MIMETypeCache.cpp:
(WebCore::MIMETypeCache::isStaticContainerType): Renamed; this replaces
the old staticContainerTypeList function and just returns false.
- platform/graphics/MIMETypeCache.h: Replaced the staticContainerTypeList
fucntion with an isStaticContainerType function. Also made it, and one
other function, private.
- platform/graphics/avfoundation/objc/AVAssetMIMETypeCache.h: Updated
for the change to MIMETypeCache.
- platform/graphics/avfoundation/objc/AVAssetMIMETypeCache.mm:
(WebCore::AVAssetMIMETypeCache::isStaticContainerType): Use SortedArraySet.
- platform/graphics/avfoundation/objc/CDMInstanceFairPlayStreamingAVFObjC.h:
Removed unneeded includes.
- platform/graphics/coreimage/FilterEffectRendererCoreImage.h: Ditto.
- platform/mediastream/RealtimeMediaSourceSupportedConstraints.cpp: Ditto.
- platform/mediastream/ios/AVAudioSessionCaptureDeviceManager.h: Ditto.
- platform/mediastream/mac/CoreAudioCaptureDeviceManager.h: Ditto.
- platform/mediastream/mac/CoreAudioCaptureSource.h: Ditto.
- platform/network/cf/FormDataStreamCFNet.cpp: Ditto.
- platform/network/mac/UTIUtilities.mm:
(WebCore::UTIFromUnknownMIMEType): Use SortedArrayMap. Also fixed a regression
from r271533 where we accidentally deleted the MIME type model/vnd.reality.
- rendering/ComplexLineLayout.cpp:
(WebCore::setLogicalWidthForTextRun): Use a range-based for loop.
- rendering/updating/RenderTreeUpdater.h: Removed unneeded includes.
- storage/StorageNamespaceProvider.h: Ditto.
- storage/StorageQuotaManager.h: Ditto.
- style/StyleUpdate.h: Ditto.
- svg/SVGFitToViewBox.h: Ditto.
- svg/SVGTests.cpp:
(WebCore::SVGTests::isValid const): Use SortedArraySet.
(WebCore::SVGTests::hasFeatureForLegacyBindings): Ditto.
Source/WebKit:
- NetworkProcess/NetworkLoad.cpp: Removed unneeded includes.
- NetworkProcess/NetworkResourceLoadMap.h: Ditto.
- Shared/SharedStringHashStore.h: Ditto.
- UIProcess/API/APIPageConfiguration.h: Ditto.
- UIProcess/API/Cocoa/WKWebsiteDataRecord.mm: Ditto.
- UIProcess/API/Cocoa/_WKInspector.mm: Ditto.
- UIProcess/Automation/SimulatedInputDispatcher.h: Ditto.
- UIProcess/Inspector/WebInspectorUIProxy.cpp: Ditto.
- UIProcess/Plugins/mac/PluginInfoStoreMac.mm: Ditto.
- UIProcess/WebPageGroup.h: Ditto.
- UIProcess/WebPasteboardProxy.h: Ditto.
- UIProcess/WebPreferences.h: Ditto.
- WebProcess/Geolocation/WebGeolocationManager.h: Ditto.
- WebProcess/WebPage/WebBackForwardListProxy.h: Ditto.
Source/WTF:
- wtf/SortedArrayMap.h: Added support for types that don't have a parse member function.
- wtf/cocoa/MainThreadCocoa.mm: Removed unneeded includes.
- wtf/text/AtomStringImpl.cpp: Ditto.
- wtf/text/AtomStringTable.cpp: Ditto.
- 7:36 PM Changeset in webkit [276879] by
-
- 14 edits1 delete in trunk
Start leveraging std::filesystem in WTF::FileSystem
https://bugs.webkit.org/show_bug.cgi?id=225255
Reviewed by Sam Weinig.
Source/JavaScriptCore:
Unexport some symbols to fix build.
- Configurations/JavaScriptCore.xcconfig:
Source/WTF:
Start leveraging std::filesystem in WTF::FileSystem to reduce the amount of
platform-specific code.
- WTF.xcodeproj/project.pbxproj:
- wtf/FileSystem.cpp:
(WTF::FileSystemImpl::fileExists):
(WTF::FileSystemImpl::deleteFile):
(WTF::FileSystemImpl::deleteEmptyDirectory):
(WTF::FileSystemImpl::moveFile):
(WTF::FileSystemImpl::getFileSize):
(WTF::FileSystemImpl::fileIsDirectory):
(WTF::FileSystemImpl::makeAllDirectories):
(WTF::FileSystemImpl::getVolumeFreeSpace):
(WTF::FileSystemImpl::createSymbolicLink):
(WTF::FileSystemImpl::hardLink):
(WTF::FileSystemImpl::hardLinkOrCopyFile):
(WTF::FileSystemImpl::deleteNonEmptyDirectory):
- wtf/FileSystem.h:
- wtf/cocoa/FileSystemCocoa.mm:
(WTF::FileSystemImpl::createTemporaryDirectory):
- wtf/glib/FileSystemGlib.cpp:
- wtf/posix/FileSystemPOSIX.cpp:
- wtf/win/FileSystemWin.cpp:
- wtf/PlatformJSCOnly.cmake:
GNU implementation prior to 9.1 requires linking with -lstdc++fs and LLVM implementation
prior to LLVM 9.0 requires linking with -lc++fs.
- wtf/StdFilesystem.cpp: Removed.
- wtf/StdFilesystem.h:
Drop our own copy of std::filesystem as all the operating system we support now have
support for this.
Tools:
Add API test coverage for the FileSystem API that was modified.
- TestWebKitAPI/Tests/WTF/FileSystem.cpp:
(TestWebKitAPI::FileSystemTest::tempFilePath const):
(TestWebKitAPI::FileSystemTest::tempFileSymlinkPath const):
(TestWebKitAPI::FileSystemTest::tempEmptyFolderPath const):
(TestWebKitAPI::FileSystemTest::tempEmptyFolderSymlinkPath const):
(TestWebKitAPI::FileSystemTest::tempEmptyFilePath const):
(TestWebKitAPI::FileSystemTest::spaceContainingFilePath const):
(TestWebKitAPI::FileSystemTest::bangContainingFilePath const):
(TestWebKitAPI::FileSystemTest::quoteContainingFilePath const):
(TestWebKitAPI::TEST_F):
- 6:32 PM Changeset in webkit [276878] by
-
- 2 edits in trunk/Tools
start-local-buildbot-server should fail gracefully for Python 2
https://bugs.webkit.org/show_bug.cgi?id=225268
Reviewed by Alexey Proskuryakov.
- CISupport/start-local-buildbot-server:
- 1:40 PM Changeset in webkit [276877] by
-
- 27 edits in trunk
Update operations in CanvasImageData.idl to use long rather than float as per spec
https://bugs.webkit.org/show_bug.cgi?id=225263
Reviewed by Simon Fraser.
LayoutTests/imported/w3c:
- canvas/2d.imageData.create2.tiny-expected.txt:
- canvas/2d.imageData.get.tiny-expected.txt:
Update results, which now don't pass, to match the spec behavior.
- web-platform-tests/html/canvas/element/pixel-manipulation/2d.imageData.create2.double-expected.txt:
- web-platform-tests/html/canvas/element/pixel-manipulation/2d.imageData.create2.zero-expected.txt:
- web-platform-tests/html/canvas/element/pixel-manipulation/2d.imageData.get.double-expected.txt:
- web-platform-tests/html/canvas/element/pixel-manipulation/2d.imageData.get.large.crash-expected.txt:
- web-platform-tests/html/canvas/element/pixel-manipulation/2d.imageData.get.rounding-expected.txt:
- web-platform-tests/html/canvas/element/pixel-manipulation/2d.imageData.get.zero-expected.txt:
Update results, which now pass!
Source/WebCore:
Use
[EnforceRange] longto match the current HTML spec.
- html/canvas/CanvasImageData.idl:
- html/canvas/CanvasRenderingContext2DBase.cpp:
(WebCore::CanvasRenderingContext2DBase::createImageData const):
(WebCore::CanvasRenderingContext2DBase::getImageData const):
(WebCore::CanvasRenderingContext2DBase::putImageData):
- html/canvas/CanvasRenderingContext2DBase.h:
LayoutTests:
- canvas/philip/tests/2d.imageData.create2.tiny-expected.txt:
- canvas/philip/tests/2d.imageData.get.tiny-expected.txt:
Update results, which now don't pass, to match the spec behavior.
- fast/canvas/canvas-2d-imageData-create-nonfinite-expected.txt:
- fast/canvas/canvas-crash.html:
- fast/canvas/canvas-getImageData-invalid-expected.txt:
- fast/canvas/canvas-getImageData-invalid-result-buffer-crash.html:
- fast/canvas/canvas-getImageData-invalid.html:
- fast/canvas/canvas-getImageData-large-crash-expected.txt:
- fast/canvas/canvas-getImageData-rounding-expected.txt:
- fast/canvas/canvas-getImageData-rounding.html:
- fast/canvas/canvas-putImageData-expected.txt:
- fast/canvas/canvas-putImageData.js:
- fast/canvas/resources/canvas-2d-imageData-create-nonfinite.js:
Update tests and results to match spec behavior.
- 12:55 PM Changeset in webkit [276876] by
-
- 5 edits49 copies4 moves7 adds4 deletes in trunk/Source/WebCore
[LFC] Move formatting contexts to layout/formattingContexts directory
https://bugs.webkit.org/show_bug.cgi?id=225270
Reviewed by Antti Koivisto.
- CMakeLists.txt:
- Sources.txt:
- WebCore.xcodeproj/project.pbxproj:
- 11:06 AM Changeset in webkit [276875] by
-
- 17 edits in trunk/Source
Make destination color space enumeration match supported destination color spaces for the port
https://bugs.webkit.org/show_bug.cgi?id=225237
Reviewed by Simon Fraser.
Add ENABLE_DESTINATION_COLOR_SPACE_LINEAR_SRGB and enabled it for all ports
except the Apple Windows port, which is the only one doesn't have any support
for it.
Source/WebCore:
Removes existing behavior of returning SRGB when LinearSRGB was requested in
the Apple Windows port. Now, the callers are responisble for dealing with a
ports lack of support of LinearSRGB, making it very clear at those call sites
that something is different and wrong.
- platform/graphics/Color.cpp:
- platform/graphics/Color.h:
- platform/graphics/ColorConversion.cpp:
- platform/graphics/ColorConversion.h:
Add new functions to perform color conversion to and from an color space
denoted by the ColorSpace or DestinationColorSpace enum. Previously, we
only had convient ways to convert if the color was strongly typed (and this
is implemented using that mechanism). This is useful when converting for
final ouput, such in as the caller in FELighting::drawLighting.
- platform/graphics/cg/ColorSpaceCG.h:
- platform/graphics/ColorSpace.cpp:
- platform/graphics/ColorSpace.h:
- platform/graphics/filters/FELighting.cpp:
- platform/graphics/filters/FilterEffect.h:
- rendering/CSSFilter.cpp:
- rendering/svg/RenderSVGResourceFilter.cpp:
- rendering/svg/RenderSVGResourceMasker.cpp:
Wrap uses of DestinationColorSpace::LinearSRGB in ENABLE(DESTINATION_COLOR_SPACE_LINEAR_SRGB).
Source/WTF:
- wtf/PlatformEnable.h:
- wtf/PlatformEnableCocoa.h:
- wtf/PlatformEnableWinApple.h:
- 10:15 AM Changeset in webkit [276874] by
-
- 6 edits in trunk/Source/WebCore
Generated JS bindings for JSValue -> IDL dictionary don't take into account runtime settings
https://bugs.webkit.org/show_bug.cgi?id=225271
Reviewed by Alexey Shvayka.
While we did account for Settings/RuntimeEnabledFeatures/etc when converting from a
dictionary to a JSValue, we forgot to add code to skip trying to read the properties
in on ingestion.
- bindings/scripts/CodeGeneratorJS.pm:
(GenerateDictionaryImplementationContent):
Match convertDictionaryToJS and add guard + indent if the property has a runtime flag.
- bindings/scripts/test/JS/JSTestDerivedDictionary.cpp:
(WebCore::convertDictionary<TestDerivedDictionary>):
- bindings/scripts/test/JS/JSTestDerivedDictionary2.cpp:
(WebCore::convertDictionary<TestDerivedDictionary2::Dictionary>):
- bindings/scripts/test/JS/JSTestInheritedDictionary.cpp:
(WebCore::convertDictionary<TestInheritedDictionary>):
- bindings/scripts/test/JS/JSTestStandaloneDictionary.cpp:
(WebCore::convertDictionary<DictionaryImplName>):
Update test results.
- 6:27 AM Changeset in webkit [276873] by
-
- 2 edits in trunk/Tools
Disable search engine crawling on build.webkit.org webpages
https://bugs.webkit.org/show_bug.cgi?id=225252
Reviewed by Jonathan Bedard.
Referencec: https://developers.google.com/search/docs/advanced/robots/create-robots-txt
- CISupport/build-webkit-org/public_html/robots.txt:
- 5:54 AM Changeset in webkit [276872] by
-
- 3 edits2 adds in trunk
[RenderTreeBuilder] Reset the "children inline" state when merging anonymous table boxes
https://bugs.webkit.org/show_bug.cgi?id=225266
<rdar://77327951>
Reviewed by Simon Fraser.
Source/WebCore:
This patch fixes the case when we end up moving block level boxes to an anonymous table box (cell, row) which previously
had inline level boxes only (it happens when the destination ("to") table box has no in-flow children).
Test: fast/table/merge-anonymous-table-cells-with-block-children.html
- rendering/updating/RenderTreeBuilderTable.cpp:
(WebCore::RenderTreeBuilder::Table::collapseAndDetachAnonymousNextSibling):
LayoutTests:
- fast/table/merge-anonymous-table-cells-with-block-children-expected.txt: Added.
- fast/table/merge-anonymous-table-cells-with-block-children.html: Added.
Apr 30, 2021:
- 8:26 PM Changeset in webkit [276871] by
-
- 16 edits2 adds in trunk
App highlight UI should be disabled when selecting text in image overlays
https://bugs.webkit.org/show_bug.cgi?id=225260
rdar://77359313
Reviewed by Tim Horton.
Source/WebCore:
When both app highlights and image extraction are enabled, parts of the app highlights feature don't play well
with highlights created for text selections inside an image overlay. For the time being, address this by
disabling app highlights in image overlays.
These changes are exercised by a new API test on iOS, and a new layout test for macOS.
Tests: WebKit.AppHighlightsInImageOverlays
fast/images/image-extraction/mac/image-overlay-text-disables-app-highlight-menu-items.html
- page/ContextMenuController.cpp:
(WebCore::ContextMenuController::populate):
Don't add app highlight menu items in the case where we've selected text in an image overlay.
- testing/Internals.cpp:
(WebCore::Internals::appHighlightContextMenuItemTitles const):
Add an internal testing hook to expose the localized names of the app highlight menu items to layout tests.
- testing/Internals.h:
- testing/Internals.idl:
Source/WebKit:
Add a bit to
EditorStateto indicate when a ranged selection is inside an image overlay.
- Shared/EditorState.cpp:
(WebKit::EditorState::encode const):
(WebKit::EditorState::decode):
- Shared/EditorState.h:
- UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView shouldAllowAppHighlightCreation]):
(-[WKContentView canPerformAction:withSender:]):
(-[WKContentView targetForAction:withSender:]):
Make
-targetForAction:withSender:returnselfonly if we have a ranged selection that is not inside an image
overlay. Interestingly, UIKit doesn't seem to consult-canPerformAction:withSender:for actions that are added
through-[UIMenuController setMenuItems:], so we add the check here instead of inside-canPerformAction:
above.
- WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::editorState const):
Set the new bit here. Note that this (importantly) doesn't trigger layout, because
VisibleSelection::range
just returns a (potentially uncanonicalized)SimpleRange. For the purposes of checking whether the selection
is inside an image overlay, this is sufficient.
Tools:
- TestWebKitAPI/Tests/WebKitCocoa/WKContentViewEditingActions.mm:
Add a new API test to verify the behavior of
-targetForAction:withSender:inWKContentView.
- WebKitTestRunner/TestOptions.cpp:
(WTR::TestOptions::defaults):
(WTR::TestOptions::keyTypeMapping):
- WebKitTestRunner/TestOptions.h:
(WTR::TestOptions::appHighlightsEnabled const):
- WebKitTestRunner/cocoa/TestControllerCocoa.mm:
(WTR::TestController::platformCreateWebView):
Add support for a new
TestOptionthat enables app highlights. See the new layout test for more information.
LayoutTests:
Add a new layout test to verify that the app higlight context menu items don't show up on macOS when right
clicking.
- fast/images/image-extraction/mac/image-overlay-text-disables-app-highlight-menu-items-expected.txt: Added.
- fast/images/image-extraction/mac/image-overlay-text-disables-app-highlight-menu-items.html: Added.
- 7:11 PM Changeset in webkit [276870] by
-
- 3 edits in trunk/Source/WebCore
[Cocoa] Calling into -[AVPlayerItem currentTime] is very expensive
https://bugs.webkit.org/show_bug.cgi?id=225254
Reviewed by Eric Carlson.
Calling into -currentTime is an expensive operation that synchronously calls a shared
background thread, and so can block for potentially long periods of time. Instead,
AVPlayerItem offers an API which will push currentTime changes on a specified dispatch
queue. We can use that API to occasionally update a cached view of the item's currentTime
and combine that cached value with other cached states to accurately calculate an
approximation of the currentTime during playback.
- platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
- platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
(WebCore::MediaPlayerPrivateAVFoundationObjC::cancelLoad):
(WebCore::MediaPlayerPrivateAVFoundationObjC::createAVPlayer):
(WebCore::MediaPlayerPrivateAVFoundationObjC::currentMediaTime const):
(WebCore::MediaPlayerPrivateAVFoundationObjC::currentMediaTimeDidChange):
(WebCore::MediaPlayerPrivateAVFoundationObjC::setRateDouble):
(WebCore::MediaPlayerPrivateAVFoundationObjC::setPlayerRate):
(WebCore::MediaPlayerPrivateAVFoundationObjC::timeControlStatusDidChange):
- 6:22 PM Changeset in webkit [276869] by
-
- 4 edits in trunk
[Metal ANGLE]: fix webgl/2.0.0/deqp/functional/gles3/negativebufferapi
Source/ThirdParty/ANGLE:
https://bugs.webkit.org/show_bug.cgi?id=225222
<rdar://77349908>
Arbitrary alignments are not allowed in Metal. Update UBO alignment to
a platform-dependant offset to match specifications.
Reviewed by Dean Jackson.
- src/libANGLE/renderer/metal/DisplayMtl.mm:
(rx::DisplayMtl::ensureCapsInitialized const):
LayoutTests:
<rdar://77349908>
Uniform buffers are implemented as 'constant' buffers in Metal.
update alignment requirements, as we can't do arbitrary alignments. This
also fixes negativebufferAPI, as the invalid alignment test was failing.
https://bugs.webkit.org/show_bug.cgi?id=225222
Reviewed by Dean Jackson.
- webgl/2.0.0/deqp/functional/gles3/negativebufferapi-expected.txt:
- 6:20 PM Changeset in webkit [276868] by
-
- 3 edits1 add1 delete in trunk/Tools
[tools] Make run-buildbot-test compatible with buildbot 2.10.5
https://bugs.webkit.org/show_bug.cgi?id=222540
Reviewed by Aakash Jain.
This renames the previous tool run-buildbot-test to start-buildbot-server-virtualenv
and it makes several changes to it:
- Use python3 and refactor the code.
- Make it also work with the EWS config (previously it only worked for the build.webkit.org config).
- Use newer buildbot configs.
- Instead of hardcoding values try to automatically detect the values from the config dir.
- Instead of starting Nth workers by default start only one round-robin worker (local-worker).
It also modifies the configuration of the EWS server to add a force scheduler in order
to allow to manually trigger builds (only in test mode).
- CISupport/build-webkit-org/run-buildbot-test.py: Removed.
- CISupport/ews-build/loadConfig.py:
(loadBuilderConfig):
- CISupport/ews-build/steps.py:
(ApplyPatch.start):
- CISupport/start-local-buildbot-server: Added.
(check_tcp_port_open):
(create_tempdir):
(print_if_error_stdout_stderr):
(cmd_exists):
(BuildbotTestRunner):
(BuildbotTestRunner.init):
(BuildbotTestRunner._get_config_tcp_ports):
(BuildbotTestRunner.start):
(BuildbotTestRunner._wait_for_server_ready):
(BuildbotTestRunner._create_mock_worker_passwords_dict):
(BuildbotTestRunner._setup_server_workdir):
(BuildbotTestRunner._setup_virtualenv):
(BuildbotTestRunner._upgrade_db_needed):
(BuildbotTestRunner._start_server):
(BuildbotTestRunner._get_list_workers):
(BuildbotTestRunner._start_worker):
(BuildbotTestRunner._clean):
- 6:19 PM Changeset in webkit [276867] by
-
- 2 edits in trunk/Source/WebCore
Defend further against a PlatformCALayer's owner becoming null in PlatformCALayerCocoa::drawLayerContents.
https://bugs.webkit.org/show_bug.cgi?id=225250
<rdar://37608882>
Reviewed by Simon Fraser.
At the end of PlatformCALayer::drawLayerContents, we null check
layerContents for the platformCALayerShowRepaintCounter call but not
the platformCALayerIncrementRepaintCount call.
- platform/graphics/ca/cocoa/PlatformCALayerCocoa.mm:
(WebCore::PlatformCALayer::drawLayerContents):
- 5:43 PM Changeset in webkit [276866] by
-
- 2 edits in trunk/Source/WebCore
Avoid a crash in PlatformCALayer::drawLayerContents when called with a display list recording GraphicsContext.
https://bugs.webkit.org/show_bug.cgi?id=225224
<rdar://76359027>
Reviewed by Simon Fraser.
setIsCALayerContext and setIsAcceleratedContext both assume (and assert)
that the GraphicsContext has a platform context directly in m_data,
but m_data is null when the GraphicsContext a display list recording
context (which is the case when GPUP DOM rendering is enabled). These
calls are unnecessary when not working with a CG-backed GraphicsContext,
so just skip them in this case.
- platform/graphics/ca/cocoa/PlatformCALayerCocoa.mm:
(WebCore::PlatformCALayer::drawLayerContents):
- 5:05 PM Changeset in webkit [276865] by
-
- 1 copy in tags/Safari-611.2.7.1.2
Tag Safari-611.2.7.1.2.
- 4:57 PM Changeset in webkit [276864] by
-
- 1 copy in tags/Safari-611.1.21.161.7
Tag Safari-611.1.21.161.7.
- 4:36 PM Changeset in webkit [276863] by
-
- 7 edits in trunk/Source/WebKit
[GPUP] Poll videoPlaybackQualityMetrics at the frequency is it accessed by script
https://bugs.webkit.org/show_bug.cgi?id=225245
rdar://77159589
Reviewed by Jer Noble.
Updating videoPlaybackQualityMetrics is computationally expensive, so instead of
getting it every time cached properties are updated (every 100 ms) keep track of
how often the page fetches the property and update it at that frequency.
- GPUProcess/media/RemoteMediaPlayerProxy.cpp:
(WebKit::RemoteMediaPlayerProxy::play):
(WebKit::RemoteMediaPlayerProxy::pause):
(WebKit::RemoteMediaPlayerProxy::mediaPlayerReadyStateChanged):
(WebKit::RemoteMediaPlayerProxy::mediaPlayerRateChanged):
(WebKit::RemoteMediaPlayerProxy::mediaPlayerPlaybackStateChanged):
(WebKit::RemoteMediaPlayerProxy::mediaPlayerCharacteristicChanged):
(WebKit::RemoteMediaPlayerProxy::updateCachedState):
(WebKit::RemoteMediaPlayerProxy::setVideoPlaybackMetricsUpdateInterval):
(WebKit::RemoteMediaPlayerProxy::maybeUpdateCachedVideoMetrics):
(WebKit::RemoteMediaPlayerProxy::updateCachedVideoMetrics):
(WebKit::RemoteMediaPlayerProxy::logChannel const):
(WebKit::RemoteMediaPlayerProxy::setShouldUpdatePlaybackMetrics): Deleted.
- GPUProcess/media/RemoteMediaPlayerProxy.h:
- GPUProcess/media/RemoteMediaPlayerProxy.messages.in:
- Scripts/webkit/messages.py:
(headers_for_type):
- WebProcess/GPU/media/MediaPlayerPrivateRemote.cpp:
(WebKit::MediaPlayerPrivateRemote::pause):
(WebKit::MediaPlayerPrivateRemote::updateCachedState):
(WebKit::MediaPlayerPrivateRemote::updateVideoPlaybackMetricsUpdateInterval):
(WebKit::MediaPlayerPrivateRemote::videoPlaybackQualityMetrics):
- WebProcess/GPU/media/MediaPlayerPrivateRemote.h:
- 4:33 PM Changeset in webkit [276862] by
-
- 4 edits in trunk
[Cocoa] Always extend access to local process HTTP/3 cache directory
https://bugs.webkit.org/show_bug.cgi?id=225171
<rdar://problem/76287224>
Reviewed by Alex Christensen.
Source/WebKit:
Always pass the cache directory for HTTP/3 use, regardless of the current setting of
the flag. We still pass the flag so that users can turn the feature on and off, so there
is no change in expected behavior. However, certain OS settings can override the user
setting in the browser, so it's helpful to have the path permission for cases where a user
toggles state outside of the browser.
- UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm:
(WebKit::WebsiteDataStore::platformSetNetworkParameters):
Tools:
Since we always create the directory (even if HTTP/3 is turned off) we should expect that it is
created after loading a page.
- TestWebKitAPI/Tests/WebKitCocoa/WebsiteDataStoreCustomPaths.mm:
(TEST):
- 4:04 PM Changeset in webkit [276861] by
-
- 27 edits1 add in branches/safari-612.1.12-branch
Cherry-pick r276744. rdar://problem/77402549
experiment with averaging sampling colors across the top of the page as the scroll area background
https://bugs.webkit.org/show_bug.cgi?id=224987
<rdar://problem/76251889>
Reviewed by Darin Adler.
Source/WebCore:
Tests: SampledPageTopColor.ZeroMaxDifference
SampledPageTopColor.NegativeMaxDifference
SampledPageTopColor.SolidColor
SampledPageTopColor.DifferentColorsWithoutOutlierBelowMaxDifference
SampledPageTopColor.DifferentColorsWithLeftOutlierAboveMaxDifference
SampledPageTopColor.DifferentColorsWithMiddleOutlierAboveMaxDifference
SampledPageTopColor.DifferentColorsWithRightOutlierAboveMaxDifference
SampledPageTopColor.DifferentColorsIndividuallyAboveMaxDifference
SampledPageTopColor.DifferentColorsCumulativelyAboveMaxDifference
SampledPageTopColor.DisplayP3
SampledPageTopColor.ExperimentalUseSampledPageTopColorForScrollAreaBackgroundColor
- dom/Document.h: (WebCore::Document::sampledPageTopColor const): Added.
- dom/Document.cpp:
(WebCore::Document::enqueuePaintTimingEntryIfNeeded):
(WebCore::colorDifference): Added.
(WebCore::averageColor): Added.
(WebCore::Document::determineSampledPageTopColor): Added.
Wait until the first contentful paint before sampling. Don't sample if that location would
fall into a 3rd-party
<iframe>. Currently use 5 snapshots across the top of the page, allowing for one of either the first or last snapshot to be an outlier, which is not included in the average of the other snapshots that's used as the final color value. If the Lab color difference between any two snapshots (unless it's the first or last snapshot as described above) or across all the (non-outlier) snapshots is too large, bail. Only enabled if theSampledPageTopColorMaxDifferencesetting is greater than 0.
- page/Page.h:
- page/Page.cpp: (WebCore::Page::sampledPageTopColor const): Added.
- page/ChromeClient.h:
(WebCore::ChromeClient::didSamplePageTopColor const): Added.
Pass along the
sampledPageTopColorto the UIProcess after it's determined or if the above logic bails (so that theWKWebViewcan adjust_sampledPageTopColortonil).
- rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::rootBackgroundColorOrTransparencyChanged):
Use the
sampledPageTopColorif theUseSampledPageTopColorForScrollAreaBackgroundColorinternal preference is enabled instead of the CSSbackground-colorof the<html>/<body>.
Source/WebKit:
- WebProcess/WebCoreSupport/WebChromeClient.h:
- WebProcess/WebCoreSupport/WebChromeClient.cpp: (WebKit::WebChromeClient::didSamplePageTopColor const): Added.
- WebProcess/WebPage/WebPage.h:
- WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::didSamplePageTopColor): Added.
Pass along the
sampledPageTopColorto the UIProcess.
- UIProcess/WebPageProxy.messages.in:
- UIProcess/WebPageProxy.h: (WebKit::WebPageProxy::sampledPageTopColor): Added.
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::scrollAreaBackgroundColor const):
(WebKit::WebPageProxy::didSamplePageTopColor): Added.
Use the
sampledPageTopColorif theUseSampledPageTopColorForScrollAreaBackgroundColorinternal preference is enabled instead of the CSSbackground-colorof the<html>/<body>.
- UIProcess/PageClient.h: (WebKit::PageClient::sampledPageTopColorWillChange): Added. (WebKit::PageClient::sampledPageTopColorDidChange): Added.
- UIProcess/Cocoa/PageClientImplCocoa.h:
- UIProcess/Cocoa/PageClientImplCocoa.mm:
(WebKit::PageClientImplCocoa::sampledPageTopColorWillChange): Added.
(WebKit::PageClientImplCocoa::sampledPageTopColorDidChange): Added.
Add ObjC KVO support for
-[WKWebView _sampledPageTopColor].
- UIProcess/API/Cocoa/WKWebViewPrivate.h:
- UIProcess/API/Cocoa/WKWebView.mm: (-[WKWebView _setupPageConfiguration:]): (-[WKWebView _sampledPageTopColor]): Added.
- UIProcess/API/Cocoa/WKWebViewConfigurationPrivate.h:
- UIProcess/API/Cocoa/WKWebViewConfiguration.mm:
(-[WKWebViewConfiguration init]):
(-[WKWebViewConfiguration copyWithZone:]):
(-[WKWebViewConfiguration _setSampledPageTopColorMaxDifference:]): Added.
(-[WKWebViewConfiguration _sampledPageTopColorMaxDifference]): Added.
Provide SPI to configure the
SampledPageTopColorMaxDifferencepreference when creating theWKWebView. Expose the result as_sampledPageTopColorSPI.
Source/WTF:
- Scripts/Preferences/WebPreferences.yaml:
Add a
SampledPageTopColorMaxDifferencesetting that controls both whether or not to sample colors from the top of the page (only if value > 0) and the max Lab color difference allowed across all samples.
- Scripts/Preferences/WebPreferencesInternal.yaml:
Add a
UseSampledPageTopColorForScrollAreaBackgroundColorinternal setting that controls whether the sampled page top color can be used as the overscroll area background color.
Tools:
- TestWebKitAPI/Tests/WebKitCocoa/SampledPageTopColor.mm: Added. (-[TestKVOWrapper initWithObservable:keyPath:callback:]): (-[TestKVOWrapper dealloc]): (-[TestKVOWrapper observeValueForKeyPath:ofObject:change:context:]): (createWebViewWithSampledPageTopColorMaxDifference): (waitForSampledPageTopColorToChangeForHTML): (createHTMLGradientWithColorStops): (TEST.SampledPageTopColor.ZeroMaxDifference): (TEST.SampledPageTopColor.NegativeMaxDifference): (TEST.SampledPageTopColor.SolidColor): (TEST.SampledPageTopColor.DifferentColorsWithoutOutlierBelowMaxDifference): (TEST.SampledPageTopColor.DifferentColorsWithLeftOutlierAboveMaxDifference): (TEST.SampledPageTopColor.DifferentColorsWithMiddleOutlierAboveMaxDifference): (TEST.SampledPageTopColor.DifferentColorsWithRightOutlierAboveMaxDifference): (TEST.SampledPageTopColor.DifferentColorsIndividuallyAboveMaxDifference): (TEST.SampledPageTopColor.DifferentColorsCumulativelyAboveMaxDifference): (TEST.SampledPageTopColor.DisplayP3): (TEST.SampledPageTopColor.ExperimentalUseSampledPageTopColorForScrollAreaBackgroundColor):
- TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@276744 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 4:01 PM Changeset in webkit [276860] by
-
- 8 edits in branches/safari-612.1.12-branch/Source
Versioning.
WebKit-7612.1.12.2
- 3:49 PM Changeset in webkit [276859] by
-
- 2 edits in trunk/Tools
Add kpiddington to commiters list
https://bugs.webkit.org/show_bug.cgi?id=225253
Reviewed by Dean Jackson.
- Scripts/webkitpy/common/config/contributors.json:
- 3:48 PM Changeset in webkit [276858] by
-
- 3 edits in trunk/Source/JavaScriptCore
Make small JIT pool tests pass on AS
https://bugs.webkit.org/show_bug.cgi?id=225256
Reviewed by Mark Lam.
If we ask for a JIT pool that is smaller than the smallest possible "region" (thing with jump
island) that we can create -- i.e. smaller than a jump region, then assume that the user is
asking us to create a pool that has that much usable space plus a jump region.
I think that this makes the option easier to use when you're testing ridiculously small JIT
pools, which we happen to do in our test suite.
Also remove some dead options I didn't mean to commit.
- jit/ExecutableAllocator.cpp:
(JSC::initializeJITPageReservation):
- runtime/OptionsList.h:
- 3:25 PM Changeset in webkit [276857] by
-
- 1 copy in tags/Safari-612.1.12.1
Tag Safari-612.1.12.1.
- 3:24 PM Changeset in webkit [276856] by
-
- 5 edits in trunk/Tools
[webkitcmpy] Better document inner-workings of identifier generation
https://bugs.webkit.org/show_bug.cgi?id=225241
Reviewed by Dewei Zhu.
- Scripts/libraries/webkitscmpy/webkitscmpy/local/git.py:
(Git.commit):
(Git.find):
- Scripts/libraries/webkitscmpy/webkitscmpy/local/svn.py:
(Svn.commit):
- Scripts/libraries/webkitscmpy/webkitscmpy/remote/bitbucket.py:
(BitBucket.commit):
- Scripts/libraries/webkitscmpy/webkitscmpy/remote/git_hub.py:
(GitHub.commit):
- 2:50 PM Changeset in webkit [276855] by
-
- 3 edits in trunk/Source/JavaScriptCore
Make the JIT pool smaller on AS
https://bugs.webkit.org/show_bug.cgi?id=225249
Reviewed by Saam Barati.
This adds three related features:
- Makes it easy to dump where the JIT pool was allocated.
- Makes it possible to override the JIT pool size with Options even with jump islands.
- Changes the default JIT pool size on AS to 512MB.
Estimated 2% speed-up on JetStream2, 1.5% speed-up on Speedometer2.
- jit/ExecutableAllocator.cpp:
(JSC::initializeJITPageReservation):
- runtime/OptionsList.h:
- 2:49 PM Changeset in webkit [276854] by
-
- 2 edits in trunk/Source/WebKit
ASSERTION FAILED: Unhandled message RemoteRemoteCommandListenerProxy_UpdateSupportedCommands
https://bugs.webkit.org/show_bug.cgi?id=225234
Reviewed by Darin Adler.
We need to keep dispatching (and ignoring) messages for
RemoteRemoteCommandListenerProxy
after the object is destroyed. That could happen because other web processes may still have
activeRemoteRemoteCommandListenerafterGPUConnectionToWebProcess::m_remoteRemoteCommandListener
is destroyed.
No new tests. Fix an assertion failure in tests.
- GPUProcess/GPUConnectionToWebProcess.cpp:
(WebKit::GPUConnectionToWebProcess::dispatchMessage):
- 2:30 PM Changeset in webkit [276853] by
-
- 31 edits2 adds in trunk
[iOS] Add a heuristic to determine whether a synthetic click triggered any meaningful changes
https://bugs.webkit.org/show_bug.cgi?id=225240
rdar://77221196
Reviewed by Tim Horton.
Source/WebCore:
Add plumbing for a
ChromeClienthook that's called when a mousedown or mouseup event is either prevented by
the page, or handled with a default event handler on the element (e.g. when clicking a link).
Test: fast/events/ios/did-not-handle-meaningful-click.html
- page/ChromeClient.h:
(WebCore::ChromeClient::didHandleOrPreventMouseDownOrMouseUpEvent):
- page/EventHandler.cpp:
(WebCore::EventHandler::handleMousePressEvent):
(WebCore::EventHandler::handleMouseDoubleClickEvent):
(WebCore::EventHandler::handleMouseReleaseEvent):
Source/WebKit:
Add a simple heuristic to inform WKWebView iOS clients when a tap either failed to result in a synthetic click,
or resulted in a synthetic click that (probably) didn't have any "meaningful side effects". While this notion of
"meaningfulness" isn't well defined, the idea behind the heuristic is that it should distinguish between taps on
clickable elements like buttons or links that trigger some noticable change on the page, vs. taps on both
clickable or non-clickable elements that do not trigger any changes on the page.
For instance on a news-article-like page, this delegate method should be invoked when tapping on paragraph text
in the article, even if there is a click handler over the entire article or even body element. However, tapping
a link or a button on the same page should not cause this delegate method to be invoked. Additionally, if the
page explicitly prevents default behavior during a synthetic mouse event, this method should also *not* be
invoked.
This behavior is roughly similar to the existing delegate method
-_webView:didNotHandleTapAsClickAtPoint:,
except that this variant allows for more wiggle room around what constitutes a "meaningful" interaction with the
page.
- UIProcess/API/APIUIClient.h:
(API::UIClient::didNotHandleTapAsMeaningfulClickAtPoint):
- UIProcess/API/Cocoa/WKUIDelegatePrivate.h:
- UIProcess/API/ios/WKWebViewPrivateForTestingIOS.h:
- UIProcess/API/ios/WKWebViewTestingIOS.mm:
(-[WKWebView _didNotHandleTapAsMeaningfulClickAtPoint:]):
See Tools/ChangeLog for more details about this testing hook.
- UIProcess/Cocoa/UIDelegate.h:
- UIProcess/Cocoa/UIDelegate.mm:
(WebKit::UIDelegate::setDelegate):
(WebKit::UIDelegate::UIClient::didNotHandleTapAsMeaningfulClickAtPoint):
- UIProcess/PageClient.h:
- UIProcess/WebPageProxy.h:
- UIProcess/WebPageProxy.messages.in:
- UIProcess/ios/PageClientImplIOS.h:
- UIProcess/ios/PageClientImplIOS.mm:
(WebKit::PageClientImpl::didNotHandleTapAsMeaningfulClickAtPoint):
- UIProcess/ios/WebPageProxyIOS.mm:
(WebKit::WebPageProxy::didNotHandleTapAsMeaningfulClickAtPoint):
- WebProcess/WebCoreSupport/WebChromeClient.cpp:
(WebKit::WebChromeClient::didHandleOrPreventMouseDownOrMouseUpEvent):
- WebProcess/WebCoreSupport/WebChromeClient.h:
- WebProcess/WebPage/WebPage.h:
(WebKit::WebPage::didHandleOrPreventMouseDownOrMouseUpEvent):
- WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::isProbablyMeaningfulClick):
Implement the core of the heuristic here. For now, it just examines the size of the click target. This isn't
going to satisfy the case where a page installs a click event handler on the body element (or a similar
element that encapsulates most of the page) and then performs hit-testing in their script, but it's somewhere to
start.
(WebKit::WebPage::completeSyntheticClick):
(WebKit::WebPage::attemptSyntheticClick):
(WebKit::WebPage::didHandleOrPreventMouseDownOrMouseUpEvent):
(WebKit::WebPage::handleTwoFingerTapAtPoint):
(WebKit::WebPage::commitPotentialTapFailed):
Tools:
Add test runner plumbing to test the new heuristic. Note that we can't just utilize the
WKUIDelegatePrivate
method directly, since we end up overriding the web view'sUIClientviaWKPageSetPageUIClient, so the call
tom_uiClient->didNotHandleTapAsMeaningfulClickAtPoint(point);ends up being a no-op.
- WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl:
- WebKitTestRunner/InjectedBundle/InjectedBundle.cpp:
(WTR::InjectedBundle::didReceiveMessageToPage):
- WebKitTestRunner/InjectedBundle/TestRunner.cpp:
(WTR::TestRunner::installDidNotHandleTapAsMeaningfulClickCallback):
(WTR::TestRunner::callDidNotHandleTapAsMeaningfulClickCallback):
- WebKitTestRunner/InjectedBundle/TestRunner.h:
- WebKitTestRunner/TestController.cpp:
(WTR::TestController::didNotHandleTapAsMeaningfulClick):
- WebKitTestRunner/TestController.h:
- WebKitTestRunner/TestInvocation.cpp:
(WTR::TestInvocation::didNotHandleTapAsMeaningfulClick):
- WebKitTestRunner/TestInvocation.h:
- WebKitTestRunner/cocoa/TestRunnerWKWebView.mm:
(-[TestRunnerWKWebView _didNotHandleTapAsMeaningfulClickAtPoint:]):
LayoutTests:
- fast/events/ios/did-not-handle-meaningful-click-expected.txt: Added.
- fast/events/ios/did-not-handle-meaningful-click.html: Added.
- 2:04 PM Changeset in webkit [276852] by
-
- 3 edits in trunk/Source/WebKit
prefers-reduced-motion is not reactive on iOS
https://bugs.webkit.org/show_bug.cgi?id=222381
<rdar://75933915>
Reviewed by Brent Fulgham.
With CFPrefs direct mode, there is a race between the notification that an accessibility preference has been changed
by the user, and the the in-memory Accessibility preference cache in the WebContent process. We resolve this by using
new SPI to clear the cached Accessibility settings when we are notified of an accessibility change so they always
reflect the user's most recent setting.
- Platform/spi/Cocoa/AccessibilitySupportSPI.h:
- WebProcess/cocoa/WebProcessCocoa.mm:
(WebKit::setPreferenceValue):
- 1:17 PM Changeset in webkit [276851] by
-
- 2 edits in trunk/Source/WebKit
_WKWebAuthenticationPanelDelegate registration and assertion SPI doesn't work without an LAContext
https://bugs.webkit.org/show_bug.cgi?id=225218
<rdar://76969220>
Reviewed by Brent Fulgham.
Covered by manual tests.
- UIProcess/WebAuthentication/Cocoa/LocalConnection.mm:
(WebKit::LocalConnection::verifyUser):
Adds a case for nil LAContext.
- 12:51 PM Changeset in webkit [276850] by
-
- 2 edits in trunk/Source/WebKit
Unreviewed, reverting r276838.
Caused
TestWebKitAPI.WebKit.AlternativeServicesDefaultDirectoryCreation
to fail
Reverted changeset:
"[Cocoa] Always extend access to local process HTTP/3 cache
directory"
https://bugs.webkit.org/show_bug.cgi?id=225171
https://commits.webkit.org/r276838
- 12:16 PM Changeset in webkit [276849] by
-
- 4 edits in trunk/Tools
Unreviewed, reverting r276846.
https://bugs.webkit.org/show_bug.cgi?id=225242
Breaks test execution in GTK and WPE ports
Reverted changeset:
"[webkitpy] Support pickling platforminfo"
https://bugs.webkit.org/show_bug.cgi?id=225230
https://trac.webkit.org/changeset/276846
- 11:58 AM Changeset in webkit [276848] by
-
- 11 edits in trunk
[GTK][WPE] Properly recover from unresponsive web processes
https://bugs.webkit.org/show_bug.cgi?id=224533
Reviewed by Carlos Garcia Campos.
Source/WebKit:
Add a new method to the GLib API to terminate the web process associated to a
WebKitWebView.
- UIProcess/API/glib/WebKitNavigationClient.cpp:
- UIProcess/API/glib/WebKitWebView.cpp:
(webkit_web_view_terminate_web_process):
- UIProcess/API/gtk/WebKitWebView.h:
- UIProcess/API/gtk/docs/webkit2gtk-4.0-sections.txt:
- UIProcess/API/wpe/WebKitWebView.h:
- UIProcess/API/wpe/docs/wpe-1.0-sections.txt:
Tools:
Add unit tests for the new webkit_web_view_terminate_web_process GLib API method. Also move
the methods used to wait for responsiveness changes to WebViewTest, as they are used by more
than a single test.
- TestWebKitAPI/Tests/WebKitGLib/TestWebKitWebView.cpp:
(testWebViewIsWebProcessResponsive):
(testWebViewTerminateWebProcess):
(testWebViewTerminateUnresponsiveWebProcess):
(beforeAll):
- TestWebKitAPI/glib/WebKitGLib/WebViewTest.cpp:
(isWebProcessResponsiveChanged):
(WebViewTest::waitUntilIsWebProcessResponsiveChanged):
- TestWebKitAPI/glib/WebKitGLib/WebViewTest.h:
- 11:39 AM Changeset in webkit [276847] by
-
- 3 edits in trunk/Source/WebKit
Enforce IOKit filtering
https://bugs.webkit.org/show_bug.cgi?id=223937
<rdar://problem/76271551>
Reviewed by Brent Fulgham.
Enforce IOKit method filtering based on telemetry. This patch also adds IOKit method telemetry for some Apple Silicion
IOKit classes, which were overlooked in the first telemetry phase.
- Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
- WebProcess/com.apple.WebProcess.sb.in:
- 11:22 AM Changeset in webkit [276846] by
-
- 4 edits in trunk/Tools
[webkitpy] Support pickling platforminfo
https://bugs.webkit.org/show_bug.cgi?id=225230
<rdar://problem/77384913>
Reviewed by Stephanie Lewis.
- Scripts/webkitpy/common/system/platforminfo.py:
(PlatformInfo.init): Define default arguments.
(PlatformInfo.display_name): Use default platform module if platform_module undefined.
(PlatformInfo._win_version_str): Ditto.
- Scripts/webkitpy/common/system/platforminfo_unittest.py:
(TestPlatformInfo.test_real_code):
- Scripts/webkitpy/common/system/systemhost.py:
(SystemHost.init): Use default platforminfo sys and platform modules.
- 11:18 AM Changeset in webkit [276845] by
-
- 2 edits in trunk/Source/WebCore
REGRESSION (iOS 14.5): PWA's / Home Screen Apps with Service Workers intermittenly fail to open offline
https://bugs.webkit.org/show_bug.cgi?id=225083
<rdar://problem/77232062>
Reviewed by Alex Christensen.
Manually tested.
- workers/service/server/SWServerWorker.h:
Initialize m_shouldSkipHandleFetch to false by default.
Otherwise, m_shouldSkipHandleFetch might be used uninitialized during a small amount of time.
- 11:09 AM Changeset in webkit [276844] by
-
- 2 edits in trunk/Source/WebCore
Simplify shouldInvalidateNodeListCachesForAttr() template function
https://bugs.webkit.org/show_bug.cgi?id=225236
Reviewed by Geoffrey Garen.
Simplify shouldInvalidateNodeListCachesForAttr() template function by using if constexpr.
- dom/Node.cpp:
(WebCore::shouldInvalidateNodeListCachesForAttr):
(WebCore::shouldInvalidateNodeListCachesForAttr<numNodeListInvalidationTypes>): Deleted.
- 10:29 AM Changeset in webkit [276843] by
-
- 2 edits in trunk/Tools
report-non-inclusive-language should skip buildstream directory
https://bugs.webkit.org/show_bug.cgi?id=225212
Reviewed by Alexey Proskuryakov.
- Scripts/report-non-inclusive-language:
- 10:06 AM Changeset in webkit [276842] by
-
- 3 edits in trunk/Source/WebCore
Move ShouldAllowCrossOriginScrolling to RenderLayer
https://bugs.webkit.org/show_bug.cgi?id=225231
Patch by Rob Buis <rbuis@igalia.com> on 2021-04-30
Reviewed by Simon Fraser.
Move ShouldAllowCrossOriginScrolling to RenderLayer.
- rendering/RenderLayer.h:
- rendering/RenderObject.h:
- 9:26 AM Changeset in webkit [276841] by
-
- 5 edits in trunk/Tools
[webkitscpy] Support arguments to TaskPool setup and teardown
https://bugs.webkit.org/show_bug.cgi?id=225220
<rdar://problem/77352340>
Reviewed by Dewei Zhu.
- Scripts/libraries/webkitcorepy/setup.py: Bump version.
- Scripts/libraries/webkitcorepy/webkitcorepy/init.py: Ditto.
- Scripts/libraries/webkitcorepy/webkitcorepy/task_pool.py:
(Process.main): Accept setup and teardown arguments to child processes.
(TaskPool.init): Pass setup and teardown arguments to child processes.
- Scripts/libraries/webkitcorepy/webkitcorepy/tests/task_pool_unittest.py:
(setup): Acception optional argument.
(teardown): Ditto.
(TaskPoolUnittest.test_setup_arguments):
(TaskPoolUnittest.test_teardown_arguments):
- 9:02 AM Changeset in webkit [276840] by
-
- 2 edits in trunk/Source/WTF
Optimize SortedArrayMap by using linear search for small arrays
https://bugs.webkit.org/show_bug.cgi?id=225223
Reviewed by Yusuke Suzuki.
- wtf/SortedArrayMap.h: Added a base class SortedArrayBase that contains a constant
for the cutoff between linear and binary search. Based on a quick empirical test,
it seems faster to do linear search for arrays that have less then 20 elements.
While doing this also switched from tryBinarySearch to std::find/find_if/lower_bound
because the standard library function templates should be excellent for this purpose,
and there's no reason to use our own. Also filled out the operations for the
ComparableASCIILiteral family so that the "<" operator works in either direction,
since that's needed for compatibility with standard library algorithms.
- 8:19 AM Changeset in webkit [276839] by
-
- 2 edits in trunk/Source/WebCore
REGRESSION (r276633): ASSERTION FAILED: !forbidMallocUseScopeCount disableMallocRestrictionScopeCount under WebCore::AudioSampleDataSource::create() https://bugs.webkit.org/show_bug.cgi?id=225196
<rdar://problem/77329071>
Reviewed by Eric Carlson.
Covered by API test no longer crashing.
- Modules/speech/SpeechRecognitionCaptureSourceImpl.cpp:
(WebCore::SpeechRecognitionCaptureSourceImpl::audioSamplesAvailable):
Disabling check here until we figure out a better way of doing things.
- 8:15 AM Changeset in webkit [276838] by
-
- 2 edits in trunk/Source/WebKit
[Cocoa] Always extend access to local process HTTP/3 cache directory
https://bugs.webkit.org/show_bug.cgi?id=225171
<rdar://problem/76287224>
Reviewed by Alex Christensen.
Always pass the cache directory for HTTP/3 use, regardless of the current setting of
the flag. We still pass the flag so that users can turn the feature on and off, so there
is no change in expected behavior. However, certain OS settings can override the user
setting in the browser, so it's helpful to have the path permission for cases where a user
toggles state outside of the browser.
- UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm:
(WebKit::WebsiteDataStore::platformSetNetworkParameters):
- 7:24 AM Changeset in webkit [276837] by
-
- 3 edits2 adds in trunk
[css-logical] Fix logical shorthands with var()
https://bugs.webkit.org/show_bug.cgi?id=224594
Reviewed by Manuel Rego Casasnovas.
LayoutTests/imported/w3c:
Add a new test.
Some cases still fail because of bug 225206 and bug 225209.
- web-platform-tests/css/css-logical/logicalprops-with-variables-expected.txt: Added.
- web-platform-tests/css/css-logical/logicalprops-with-variables.html: Added.
Source/WebCore:
Logical shorthands with var() were not working because when resolving
the pending-substitution value of the equivalent physical longhand,
parseValueWithVariableReferences would parse the logical shorthand into
the logical longhands, which would be different properties than the
physical longhand being resolved.
So this patch compares with the equivalent physical property instead.
Test: imported/w3c/web-platform-tests/css/css-logical/logicalprops-with-variables.html
- css/parser/CSSParser.cpp:
(WebCore::CSSParser::parseValueWithVariableReferences):
- 5:19 AM Changeset in webkit [276836] by
-
- 12 edits2 adds in trunk
Share style resolvers between author shadow trees without style sheets
https://bugs.webkit.org/show_bug.cgi?id=225102
Reviewed by Sam Weinig.
Source/WebCore:
Prepare for sharing style resolvers (and all the related data) between shadow trees beyond
the currently supported user agent shadow trees. This patch refactors the sharing code
and adds support for sharing resolvers for author shadow trees without style sheets.
Test: fast/shadow-dom/style-resolver-sharing.html
- dom/Document.cpp:
(WebCore::Document::userAgentShadowTreeStyleResolver): Deleted.
(WebCore::Document::didClearStyleResolver): Deleted.
Move the shared UA resolver to Style::Scope.
- dom/Document.h:
- style/StyleResolver.h:
(WebCore::Style::Resolver::wasShared const):
(WebCore::Style::Resolver::setWasShared):
Add a bit indicating if a resolver has been shared between shadow trees.
- style/StyleScope.cpp:
(WebCore::Style::Scope::resolver):
(WebCore::Style::Scope::createDocumentResolver):
(WebCore::Style::Scope::createOrFindSharedShadowTreeResolver):
Factor into a function.
Share user agent shadow tree resolver (as before) and also resolver for empty author shadow trees.
(WebCore::Style::Scope::unshareShadowTreeResolverBeforeMutation):
If we mutate an existing resolver we need to make it unavailable for sharing.
(WebCore::Style::Scope::clearResolver):
(WebCore::Style::Scope::releaseMemory):
(WebCore::Style::Scope::analyzeStyleSheetChange):
If we are about to mutate already shared resolver we need to create a new one.
(WebCore::Style::Scope::updateActiveStyleSheets):
If style sheets change and the resolver is shared always look it up again (since it can't be mutated).
(WebCore::Style::Scope::updateResolver):
(WebCore::Style::Scope::scheduleUpdate):
(WebCore::Style::Scope::insertedInDocument):
(WebCore::Style::Scope::didChangeStyleSheetEnvironment):
(WebCore::Style::Scope::documentScope):
(WebCore::Style::Scope::isForUserAgentShadowTree const):
(WebCore::Style::Scope::shouldUseSharedUserAgentShadowTreeStyleResolver const): Deleted.
(WebCore::Style::Scope::resolverIfExists): Deleted.
- style/StyleScope.h:
(WebCore::Style::Scope::resolverIfExists):
- style/StyleScopeRuleSets.h:
(WebCore::Style::ScopeRuleSets::setIsForShadowScope): Deleted.
(WebCore::Internals::dumpStyleResolvers):
- testing/Internals.h:
- testing/Internals.idl:
Testing support.
LayoutTests:
- fast/shadow-dom/style-resolver-sharing-expected.txt: Added.
- fast/shadow-dom/style-resolver-sharing.html: Added.
- 4:46 AM Changeset in webkit [276835] by
-
- 5 edits2 adds in trunk
Nullopt in RenderFlexibleBox::layoutFlexItems in RenderFlexibleBox::layoutBlock via RenderMultiColumnFlow::layout
https://bugs.webkit.org/show_bug.cgi?id=223369
Reviewed by Alan Bujtas.
LayoutTests/imported/w3c:
Imported a test from WPT covering this issue.
- web-platform-tests/css/css-flexbox/percentage-padding-002-expected.html: Added.
- web-platform-tests/css/css-flexbox/percentage-padding-002.html: Added.
- web-platform-tests/css/css-flexbox/w3c-import.log:
Source/WebCore:
When computing the main axis extent of a flex item being the main axis also the child's inline axis and the
inline size of the child is auto, we can directly use the min/maxPreferredLogicalWidths instead of having
to call computeLogicalWidthInFragmentUsing(). However we cannot use it straigth away without checking
needsPreferredWidthsRecalculation() first, otherwise the cached preferred width might be no longer valid.
The cached preferred width includes both border and padding. If any of those are percentages, and thus
depend on the size of the containing block, we could end up using obsolete values.
This was making us hit an assertion because the content size suggestion was negative. That's because in order
to compute the content size we were substracting the current borderAndPadding() to the value returned by
minPreferredLogicalWidth(). But the current borderAndPadding() might be larger than the one used to compute the
preferred width before (they must be the same to properly extract the content size) so the content size ended
up being negative.
- rendering/RenderFlexibleBox.cpp:
(WebCore::RenderFlexibleBox::computeMainAxisExtentForChild):
(WebCore::RenderFlexibleBox::adjustChildSizeForMinAndMax): Constness adjustments.
(WebCore::RenderFlexibleBox::resolveFlexibleLengths): Ditto.
- rendering/RenderFlexibleBox.h:
- 12:18 AM Changeset in webkit [276834] by
-
- 3 edits in trunk/Source/WebCore
MediaPlayerPrivateMediaStreamAVFObjC::ensureLayers lambda should check its player is alive
https://bugs.webkit.org/show_bug.cgi?id=225186
<rdar://77267681>
Reviewed by Eric Carlson.
Make sure to check weakThis.
Move the meat of the lambda in a method as a small improvement refactoring.
- platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.h:
- platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.mm:
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::ensureLayers):
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::layersAreInitialized):