Timeline
Apr 29, 2022:
- 11:07 PM Changeset in webkit [293642] by
-
- 3 edits2 adds in trunk
REGRESSION(r290770): element.scrollIntoViewIfNeeded() scrolls to top even when element is already in viewport
https://bugs.webkit.org/show_bug.cgi?id=238985
Patch by Rob Buis <rbuis@igalia.com> on 2022-04-29
Reviewed by Simon Fraser.
LayoutTests/imported/w3c:
- web-platform-tests/css/cssom-view/scrollintoview-zero-height-item-expected.txt: Added.
- web-platform-tests/css/cssom-view/scrollintoview-zero-height-item.html: Added.
Source/WebCore:
This mostly reverts to the code as it was before r290770, but adds code to
treat non-intersections as hidden, including zero width/height rects.
Test: imported/w3c/web-platform-tests/css/cssom-view/scrollintoview-zero-height-item.html
- rendering/RenderLayer.cpp:
(WebCore::RenderLayer::getRectToExpose const):
- 8:37 PM Changeset in webkit [293641] by
-
- 2 edits in trunk/Source/WebCore
The isYahooMail quirk is specific to PLATFORM(IOS_FAMILY)
https://bugs.webkit.org/show_bug.cgi?id=239914
Reviewed by Simon Fraser.
The isYahooMail check is incorrectly guarded by ENABLE(PUBLIC_SUFFIX_LIST) when the only
using this function is guarded by ENABLE(IOS_TOUCH_EVENTS) and PLATFORM(IOS_FAMILY). Use
PLATFORM(IOS_FAMILY) since ENABLE(IOS_TOUCH_EVENTS) implies that anyways.
Fixes an unused function warning for other ports.
- page/Quirks.cpp:
- 6:37 PM Changeset in webkit [293640] by
-
- 2 edits in trunk/LayoutTests
[ Monterey WK2 ] media/media-source/media-source-webm-vorbis-partial.html is a constant failure
https://bugs.webkit.org/show_bug.cgi?id=239308
rdar://91719356
Patch by Jean-Yves Avenard <jean-yves.avenard@apple.com> on 2022-04-29
Reviewed by Jer Noble.
The test disabled the GPU process, and sandboxing rules prevent from
calling CoreMedia in the content process.
- media/media-source/media-source-webm-vorbis-partial.html:
# Please populate the above commit message. Lines starting
# with '#' will be ignored
# Reviewed by Jer Noble.
# On branch 239308
# Your branch is ahead of 'origin/main' by 1 commit.
# (use "git push" to publish your local commits)
#
# Changes to be committed:
# (use "git restore --staged <file>..." to unstage)
# modified: LayoutTests/ChangeLog
#
Canonical link: https://commits.webkit.org/250144@main
- 5:47 PM Changeset in webkit [293639] by
-
- 12 edits in trunk
Unreviewed, reverting r293621.
Reverting patch while we fix internal EWS issues, will reland
Source/JavaScriptCore:
after.
Reverted changeset:
https://commits.webkit.org/r293621
Source/WTF:
after
Reverted changeset:
https://commits.webkit.org/r293621
Tools:
after
Reverted changeset:
- 5:18 PM Changeset in webkit [293638] by
-
- 4 edits in trunk
[Mail compose] Images with data URLs should be pasted or dropped as attachments
https://bugs.webkit.org/show_bug.cgi?id=239911
rdar://91658665
Reviewed by Tim Horton.
Source/WebCore:
Effectively revert the changes in r226340, which prevented data-URL and http-family-URL images from being
converted into attachments when pasting or dropping into Mail compose. The original intent behind this change
may have been to save Mail storage space (in the server and in the on-disk cache) by excluding remote images,
but this was changed in r291261 due to being a regression in behavior compared to legacy WebKit compose
behavior, which creates attachments when pasting or dropping both data and remote images.
Furthermore, the space-saving rationale never really made sense for image data URLs, which are encoded in base
64, since this base 64 representation is always going to be larger than the raw binary representation that we
would otherwise use for a normal attachment.
Test: WKAttachmentTests.InsertDataURLImagesAsAttachments
- editing/cocoa/WebContentReaderCocoa.mm:
(WebCore::shouldReplaceSubresourceURLWithBlobDuringSanitization):
Remove the argument flag enum altogether, and rename this method to clarify that it is just about blob URL
replacement for sanitizing pasted/dropped fragments (rather than attachment replacement).
(WebCore::replaceRichContentWithAttachments):
(WebCore::sanitizeMarkupWithArchive):
(WebCore::WebContentReader::readHTML):
(WebCore::WebContentMarkupReader::readHTML):
(WebCore::shouldReplaceSubresourceURL): Deleted.
Tools:
Adjust expectations for an existing API test.
- TestWebKitAPI/Tests/WebKitCocoa/WKAttachmentTests.mm:
(TestWebKitAPI::TEST):
- 4:23 PM Changeset in webkit [293637] by
-
- 16 edits in trunk/Source
Reduce usage of std::unique_ptr<HashSet> / std::unique_ptr<HashMap>
https://bugs.webkit.org/show_bug.cgi?id=239903
Reviewed by Yusuke Suzuki.
Reduce usage of std::unique_ptr<HashSet> / std::unique_ptr<HashMap> as HashSet / HashMap
are already essentially pointers. This avoids some unnecessary dereferencing.
- Source/JavaScriptCore/heap/Heap.cpp:
(JSC::Heap::addCoreConstraints):
- Source/JavaScriptCore/heap/Heap.h:
- Source/JavaScriptCore/heap/HeapInlines.h:
- Source/WebKit/WebProcess/WebCoreSupport/WebPasteboardOverrides.cpp:
(WebKit::WebPasteboardOverrides::addOverride):
(WebKit::WebPasteboardOverrides::removeOverride):
(WebKit::WebPasteboardOverrides::overriddenTypes):
(WebKit::WebPasteboardOverrides::getDataForOverride const):
- Source/WebKit/WebProcess/WebCoreSupport/WebPasteboardOverrides.h:
- Source/WebCore/Modules/webdatabase/DatabaseTracker.cpp:
(WebCore::DatabaseTracker::recordCreatingDatabase):
(WebCore::DatabaseTracker::doneCreatingDatabase):
(WebCore::DatabaseTracker::creatingDatabase):
(WebCore::DatabaseTracker::recordDeletingDatabase):
(WebCore::DatabaseTracker::doneDeletingDatabase):
(WebCore::DatabaseTracker::isDeletingDatabase):
(WebCore::DatabaseTracker::canDeleteOrigin):
- Source/WebCore/Modules/webdatabase/DatabaseTracker.h:
- Source/WebCore/css/PropertySetCSSStyleDeclaration.cpp:
(WebCore::PropertySetCSSStyleDeclaration::wrapForDeprecatedCSSOM):
(WebCore::StyleRuleCSSStyleDeclaration::didMutate):
(WebCore::InlineCSSStyleDeclaration::didMutate):
- Source/WebCore/css/PropertySetCSSStyleDeclaration.h:
- Source/WebCore/dom/MutationObserver.cpp:
(WebCore::MutationObserver::deliver):
- Source/WebCore/dom/MutationObserverRegistration.cpp:
(WebCore::MutationObserverRegistration::observedSubtreeNodeWillDetach):
(WebCore::MutationObserverRegistration::takeTransientRegistrations):
(WebCore::MutationObserverRegistration::isReachableFromOpaqueRoots const):
- Source/WebCore/dom/MutationObserverRegistration.h:
(WebCore::MutationObserverRegistration::hasTransientRegistrations const):
- Source/WebCore/platform/graphics/GlyphMetricsMap.h:
(WebCore::GlyphMetricsMap<T>::locatePageSlowCase):
- Source/WebCore/rendering/RenderBlock.cpp:
(WebCore::insertIntoTrackedRendererMaps):
(WebCore::removeFromTrackedRendererMaps):
(WebCore::removeBlockFromPercentageDescendantAndContainerMaps):
- Source/WebCore/style/StyleScope.cpp:
(WebCore::Style::Scope::updateActiveStyleSheets):
(WebCore::Style::Scope::activeStyleSheetsContains const):
- Source/WebCore/style/StyleScope.h:
Canonical link: https://commits.webkit.org/250141@main
- 4:15 PM Changeset in webkit [293636] by
-
- 7 edits in trunk/Source/WebKit
[GPUProcess] Stop using a synchronous IPC for marking layers as volatile
https://bugs.webkit.org/show_bug.cgi?id=239901
<rdar://91663593>
Reviewed by Geoffrey Garen.
Stop using a synchronous IPC to the GPUProcess for marking layers as volatile. Instead,
use an asynchronous IPC for the request and another asynchronous one for the response.
Ideally, we'd be using a sendWithAsyncReply(), like the FIXME comment in the code
suggested. However, this is not supported yet by our new "streaming" IPC.
- Source/WebKit/GPUProcess/graphics/RemoteRenderingBackend.cpp:
(WebKit::RemoteRenderingBackend::markSurfacesVolatile):
- Source/WebKit/GPUProcess/graphics/RemoteRenderingBackend.h:
- Source/WebKit/GPUProcess/graphics/RemoteRenderingBackend.messages.in:
- Source/WebKit/WebProcess/GPU/graphics/RemoteRenderingBackendProxy.cpp:
(WebKit::RemoteRenderingBackendProxy::~RemoteRenderingBackendProxy):
(WebKit::RemoteRenderingBackendProxy::markSurfacesVolatile):
(WebKit::RemoteRenderingBackendProxy::didMarkLayersAsVolatile):
- Source/WebKit/WebProcess/GPU/graphics/RemoteRenderingBackendProxy.h:
- Source/WebKit/WebProcess/GPU/graphics/RemoteRenderingBackendProxy.messages.in:
- Source/WebKit/WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::tryMarkLayersVolatileCompletionHandler):
Canonical link: https://commits.webkit.org/250140@main
- 3:54 PM Changeset in webkit [293635] by
-
- 2 edits in trunk/Source/WebCore
increase transient activation duration to 5s
https://bugs.webkit.org/show_bug.cgi?id=239832
Reviewed by Geoffrey Garen.
This matches other user agents and gives a bit more time for asynchronous work to be done.
Spec: <https://html.spec.whatwg.org/multipage/interaction.html#transient-activation-duration>
- page/DOMWindow.cpp:
- 3:40 PM Changeset in webkit [293634] by
-
- 19 edits in branches/safari-613-branch/Source
Cherry-pick r287877. rdar://problem/92357915
Non-unified build fixes, early January 2022 edition
https://bugs.webkit.org/show_bug.cgi?id=235013
Unreviewed non-unified build fixes.
Source/JavaScriptCore:
- wasm/js/JSWebAssemblyModule.cpp: Add missing JSWebAssemblyLinkError.h header.
- wasm/js/JSWebAssemblyModule.h: Add missing forward declaration for the JSC::OptimizingCallLinkInfo type.
Source/WebCore:
No new tests needed.
- Modules/fetch/FetchBodyConsumer.cpp: Add missing FormData.h header.
- Modules/fetch/FormDataConsumer.h: Add missing ExceptionOr.h header, and forward declaration for the WebCore::ScriptExecutionContext type.
- animation/CSSAnimation.cpp: Add missing KeyframeEffect.h header.
- animation/KeyframeEffect.cpp: Add missing StyledElement.h header.
- html/HTMLFormElement.cpp: Add missing PseudoClassChangeInvalidation.h header.
- platform/network/SynchronousLoaderClient.cpp: Add missing SharedBuffer.h header.
- rendering/svg/RenderSVGBlock.cpp: Add missing SVGRenderSupport.h header.
- rendering/svg/RenderSVGForeignObject.cpp: Ditto.
- rendering/svg/RenderSVGInline.cpp: Ditto.
- rendering/svg/RenderSVGModelObject.cpp: Add missing SVGElementInlines.h header.
- rendering/svg/SVGInlineTextBox.cpp: Add missing FloatConversion.h header.
- svg/SVGViewElement.cpp: Add missing RenderElement.h header.
- workers/service/context/ServiceWorkerFetch.h: Add missing forward declaration for the WebCore::SharedBuffer type, remove unused one for WebCore::FragmentedSharedBuffer.
Source/WebKit:
- Platform/IPC/SharedBufferCopy.cpp: Add missing WebCoreArgumentCoders.h header, remove now unneeded ArgumentCoders.h header.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@287877 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 3:40 PM Changeset in webkit [293633] by
-
- 2 edits in trunk/Source/WebKit
Unreviewed, reverting r293481.
https://bugs.webkit.org/show_bug.cgi?id=239908
Introduced perf regression
Reverted changeset:
"Adjust what we consider to be private relayed"
https://bugs.webkit.org/show_bug.cgi?id=239784
https://commits.webkit.org/r293481
- 3:26 PM Changeset in webkit [293632] by
-
- 1 copy in tags/WebKit-7614.1.11.1
Tag WebKit-7614.1.11.1.
- 2:50 PM Changeset in webkit [293631] by
-
- 2 edits in trunk/Source/WebInspectorUI
Web Inspector: Regression(r267038) Import a timeline does not render the timeline, only lists the events
https://bugs.webkit.org/show_bug.cgi?id=239872
Reviewed by Devin Rousso.
Two issues existed after r267038 that prevented the timeline overview from rendering correctly for imported
recordings. The first is that the timeline view itself was not visible as the result of assuming that we would
already be in middle of layout when insideWI.TimelineRecordingContentView.prototype._updateTimes, which isn't
true for the updating of times when importing a recording. In that case, syncronously attempting to lay out the
view means that the layout, including initial layout, will be performed before the view is attached, which means
we are unable to get the clientWidth of the view's element during layout, which in turn prevents us from
painting the timeline ruler.
The second issue is that when importing a timeline, we should ignore the current capturing state when setting
the current, start, and end times, otherwise not all the values will be kept.
- UserInterface/Views/TimelineRecordingContentView.js:
(WI.TimelineRecordingContentView):
(WI.TimelineRecordingContentView.prototype._updateTimes):
- 2:38 PM Changeset in webkit [293630] by
-
- 2 edits in trunk/Tools/Scripts/libraries/webkitscmpy/webkitscmpy
Corrected spelling of edited in webkitscmpy.
- 1:05 PM Changeset in webkit [293629] by
-
- 16 edits in trunk/Source/JavaScriptCore
[JSC] Use FixedVector in JumpReplacements and VariableEventStream
https://bugs.webkit.org/show_bug.cgi?id=239892
Reviewed by Mark Lam.
- Introduce DFG::VariableEventStreamBuilder. And construct DFG::VariableEventStream from that
builder when finailizing code generation. We also make it FixedVector.
- Use FixedVector for JumpReplacements.
- Source/JavaScriptCore/dfg/DFGCommonData.cpp:
(JSC::DFG::CommonData::shrinkToFit):
- Source/JavaScriptCore/dfg/DFGCommonData.h:
- Source/JavaScriptCore/dfg/DFGGenerationInfo.h:
(JSC::DFG::GenerationInfo::noticeOSRBirth):
(JSC::DFG::GenerationInfo::use):
(JSC::DFG::GenerationInfo::spill):
(JSC::DFG::GenerationInfo::setSpilled):
(JSC::DFG::GenerationInfo::fillGPR):
(JSC::DFG::GenerationInfo::fillJSValue):
(JSC::DFG::GenerationInfo::fillCell):
(JSC::DFG::GenerationInfo::fillInt32):
(JSC::DFG::GenerationInfo::fillInt52):
(JSC::DFG::GenerationInfo::fillStrictInt52):
(JSC::DFG::GenerationInfo::fillBoolean):
(JSC::DFG::GenerationInfo::fillDouble):
(JSC::DFG::GenerationInfo::fillStorage):
(JSC::DFG::GenerationInfo::appendBirth):
(JSC::DFG::GenerationInfo::appendFill):
(JSC::DFG::GenerationInfo::appendSpill):
- Source/JavaScriptCore/dfg/DFGJITCode.cpp:
(JSC::DFG::JITCode::shrinkToFit):
(JSC::DFG::JITCode::reconstruct):
- Source/JavaScriptCore/dfg/DFGJITCompiler.cpp:
(JSC::DFG::JITCompiler::link):
(JSC::DFG::JITCompiler::compile):
(JSC::DFG::JITCompiler::compileFunction):
(JSC::DFG::JITCompiler::exceptionCheck):
- Source/JavaScriptCore/dfg/DFGSlowPathGenerator.h:
(JSC::DFG::SlowPathGenerator::SlowPathGenerator):
- Source/JavaScriptCore/dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::SpeculativeJIT):
(JSC::DFG::SpeculativeJIT::speculationCheck):
(JSC::DFG::SpeculativeJIT::emitInvalidationPoint):
(JSC::DFG::SpeculativeJIT::addSlowPathGeneratorLambda):
(JSC::DFG::SpeculativeJIT::fillStorage):
(JSC::DFG::SpeculativeJIT::compileDeleteById):
(JSC::DFG::SpeculativeJIT::compileDeleteByVal):
(JSC::DFG::SpeculativeJIT::compileInById):
(JSC::DFG::SpeculativeJIT::compileInByVal):
(JSC::DFG::SpeculativeJIT::compileHasPrivate):
(JSC::DFG::SpeculativeJIT::noticeOSRBirth):
(JSC::DFG::SpeculativeJIT::compileMovHint):
(JSC::DFG::SpeculativeJIT::compileCurrentBlock):
(JSC::DFG::SpeculativeJIT::compilePutByVal):
- Source/JavaScriptCore/dfg/DFGSpeculativeJIT.h:
(JSC::DFG::SpeculativeJIT::finalizeEventStream):
(JSC::DFG::SpeculativeJIT::use):
(JSC::DFG::SpeculativeJIT::spill):
(JSC::DFG::SpeculativeJIT::recordSetLocal):
- Source/JavaScriptCore/dfg/DFGSpeculativeJIT32_64.cpp:
(JSC::DFG::SpeculativeJIT::fillJSValue):
(JSC::DFG::SpeculativeJIT::cachedGetById):
(JSC::DFG::SpeculativeJIT::cachedGetByIdWithThis):
(JSC::DFG::SpeculativeJIT::emitCall):
(JSC::DFG::SpeculativeJIT::fillSpeculateInt32Internal):
(JSC::DFG::SpeculativeJIT::fillSpeculateDouble):
(JSC::DFG::SpeculativeJIT::fillSpeculateCell):
(JSC::DFG::SpeculativeJIT::fillSpeculateBoolean):
(JSC::DFG::SpeculativeJIT::compileGetByVal):
- Source/JavaScriptCore/dfg/DFGSpeculativeJIT64.cpp:
(JSC::DFG::SpeculativeJIT::fillJSValue):
(JSC::DFG::SpeculativeJIT::cachedGetById):
(JSC::DFG::SpeculativeJIT::cachedGetByIdWithThis):
(JSC::DFG::SpeculativeJIT::emitCall):
(JSC::DFG::SpeculativeJIT::fillSpeculateInt32Internal):
(JSC::DFG::SpeculativeJIT::fillSpeculateInt52):
(JSC::DFG::SpeculativeJIT::fillSpeculateDouble):
(JSC::DFG::SpeculativeJIT::fillSpeculateCell):
(JSC::DFG::SpeculativeJIT::fillSpeculateBoolean):
(JSC::DFG::SpeculativeJIT::fillSpeculateBigInt32):
(JSC::DFG::SpeculativeJIT::compileGetByVal):
(JSC::DFG::SpeculativeJIT::compile):
- Source/JavaScriptCore/dfg/DFGVariableEventStream.cpp:
(JSC::DFG::VariableEventStreamBuilder::logEvent):
(JSC::DFG::VariableEventStream::reconstruct const):
(JSC::DFG::VariableEventStream::logEvent): Deleted.
- Source/JavaScriptCore/dfg/DFGVariableEventStream.h:
(JSC::DFG::VariableEventStream::VariableEventStream):
(JSC::DFG::VariableEventStreamBuilder::appendAndLog):
(JSC::DFG::VariableEventStreamBuilder::size const):
(JSC::DFG::VariableEventStreamBuilder::finalize):
(JSC::DFG::VariableEventStream::appendAndLog): Deleted.
- Source/JavaScriptCore/ftl/FTLLink.cpp:
(JSC::FTL::link):
- Source/JavaScriptCore/ftl/FTLLowerDFGToB3.cpp:
(JSC::FTL::DFG::LowerDFGToB3::compileCompareStrictEq):
- Source/JavaScriptCore/ftl/FTLState.h:
Canonical link: https://commits.webkit.org/250135@main
- 12:41 PM Changeset in webkit [293628] by
-
- 2 edits in trunk/Source/WebKit
Unreviewed, reverting r293591.
https://bugs.webkit.org/show_bug.cgi?id=239907
Did not resolve perf issue
Reverted changeset:
"Set top origin of CORS preflight requests"
https://bugs.webkit.org/show_bug.cgi?id=239869
https://commits.webkit.org/r293591
- 12:41 PM Changeset in webkit [293627] by
-
- 9 edits in trunk/Source
Update toExistingAtomString() to return an AtomString
https://bugs.webkit.org/show_bug.cgi?id=239904
Reviewed by Darin Adler.
Update toExistingAtomString() to return an AtomString instead of a RefPtr<AtomStringImpl>
as it is a bit less awkward to use.
- Source/JavaScriptCore/dfg/DFGOperations.cpp:
(JSC::DFG::JSC_DEFINE_JIT_OPERATION):
- Source/JavaScriptCore/jit/JITOperations.cpp:
(JSC::getByVal):
(JSC::JSC_DEFINE_JIT_OPERATION):
- Source/JavaScriptCore/llint/LLIntSlowPaths.cpp:
(JSC::LLInt::getByVal):
- Source/JavaScriptCore/runtime/CommonSlowPaths.cpp:
(JSC::JSC_DEFINE_COMMON_SLOW_PATH):
- Source/JavaScriptCore/runtime/JSString.h:
(JSC::JSString::toExistingAtomString const):
- Source/WTF/wtf/text/StringView.h:
(WTF::StringView::toExistingAtomString const):
- Source/WebCore/bindings/js/JSDOMConvertStrings.h:
(WebCore::Converter<IDLRequiresExistingAtomStringAdaptor<T>>::convert):
- Source/WebCore/dom/TreeScope.cpp:
(WebCore::TreeScope::getElementById const):
- Source/WebCore/platform/network/ResourceHandle.cpp:
(WebCore::ResourceHandle::create):
(WebCore::ResourceHandle::loadResourceSynchronously):
Canonical link: https://commits.webkit.org/250133@main
- 12:25 PM Changeset in webkit [293626] by
-
- 2 edits in trunk/Tools
REGRESSION (249864@main): [ iOS ] TestWebKitAPI.ScrollViewScrollabilityTests.ScrollableWithOverflowHiddenAndShrunkUI is failing
https://bugs.webkit.org/show_bug.cgi?id=239867
Reviewed by Sam Weinig.
Use values that are representative of iPhone 8, which is the model used for running
API tests.
- TestWebKitAPI/Tests/ios/ScrollViewScrollabilityTests.mm:
(TestWebKitAPI::TEST):
- 11:55 AM Changeset in webkit [293625] by
-
- 20 edits2 adds in trunk
Format time zone name using ICU instead of platform calls
https://bugs.webkit.org/show_bug.cgi?id=239865
Reviewed by Yusuke Suzuki.
JSTests:
Added new tests that ensure Date's timezone is formatted using preferred
language.
- complex.yaml:
- complex/timezone-format-de.js: Added.
(shouldBe):
- complex/timezone-format-en.js: Added.
(shouldBe):
Source/JavaScriptCore:
formatDateTime now uses cached display name of the timezone.
- runtime/DateConstructor.cpp:
(JSC::JSC_DEFINE_HOST_FUNCTION):
- runtime/DateConversion.cpp:
(JSC::formatDateTime):
- runtime/DateConversion.h:
- runtime/DatePrototype.cpp:
(JSC::formateDateInstance):
- runtime/JSDateMath.cpp:
(JSC::toICUTimeZone): Encapsulate bitwise_cast into typesafe functions.
(JSC::toOpaqueICUTimeZone):
(JSC::OpaqueICUTimeZoneDeleter::operator()):
(JSC::DateCache::calculateLocalTimeOffset):
(JSC::DateCache::defaultTimeZone):
(JSC::DateCache::timeZoneDisplayName): Both standard and daylight names are computed
once on the first access as ICU methods internally acquire locks.
(JSC::DateCache::timeZoneCacheSlow):
(JSC::DateCache::resetIfNecessary):
- runtime/JSDateMath.h:
LayoutTests:
Rebased existing layout tests to reflect new format (which is the same as in other
browsers now).
- storage/indexeddb/modern/date-basic-expected.txt:
- storage/indexeddb/modern/date-basic-private-expected.txt:
- storage/indexeddb/modern/get-keyrange-expected.txt:
- storage/indexeddb/modern/get-keyrange-private-expected.txt:
- storage/indexeddb/modern/idbobjectstore-delete-1-expected.txt:
- storage/indexeddb/modern/idbobjectstore-delete-1-private-expected.txt:
- 11:13 AM Changeset in webkit [293624] by
-
- 2 edits in trunk/LayoutTests
REGRESSION(r291998): [GTK] test accessibility/gtk/menu-list-unfocused-notifications.html is flaky
https://bugs.webkit.org/show_bug.cgi?id=239888
Change the delay between changes to the combobox value to 1ms to ensure that an
accessibility event is consistently generated for both changes.
Patch by Arcady Goldmints-Orlov <Arcady Goldmints-Orlov> on 2022-04-29
Reviewed by Martin Robinson.
- accessibility/gtk/menu-list-unfocused-notifications.html:
- 11:11 AM Changeset in webkit [293623] by
-
- 2 edits in trunk/Source/JavaScriptCore
Unreviewed, remove unused variable
https://bugs.webkit.org/show_bug.cgi?id=239828
- dfg/DFGGraph.cpp:
(JSC::DFG::Graph::methodOfGettingAValueProfileFor):
- 11:08 AM Changeset in webkit [293622] by
-
- 5 edits in trunk/Source/WebCore
[css-cascade] Sort shorthand properties at the end of CSSPropertyID enum
https://bugs.webkit.org/show_bug.cgi?id=238888
Reviewed by Darin Adler.
Only longhands should matter during the CSS Cascade, so by sorting
shorthands at the end, and ignoring them, we can save some memory and
avoid some iterations.
No test since now there should be no observable change in behavior.
- css/StylePropertyShorthand.cpp:
(WebCore::isShorthandCSSProperty): Deleted.
- css/StylePropertyShorthand.h:
(WebCore::isShorthandCSSProperty):
Turn function into a simple constexpr comparison.
- css/makeprop.pl:
(addProperty):
(sortByDescendingPriorityAndName):
Sort shorthand properties at the end.
- style/PropertyCascade.h:
Update comment.
- 10:47 AM Changeset in webkit [293621] by
-
- 9 edits in trunk
Drop StringImpl::createFromLiteral()
https://bugs.webkit.org/show_bug.cgi?id=239792
Reviewed by Darin Adler.
Drop StringImpl::createFromLiteral().
Call sites that have an ASCIILiteral can now simply call StringImpl::create(ASCIILiteral).
Call sites that have raw characters can call the existing StringImpl::createWithoutCopying().
This simplifies our API a bit.
Also inline part of the createWithoutCopying() functions so that the 0-length check is
inline. This allows the compiler to optimize the check out when the length is known at
compile time (which is often the case with literals).
- Tools/TestWebKitAPI/Tests/WTF/StringImpl.cpp:
(TestWebKitAPI::TEST):
- Tools/TestWebKitAPI/Tests/WTF/StringView.cpp:
(TestWebKitAPI::TEST):
- Source/JavaScriptCore/API/JSScriptRef.cpp:
- Source/JavaScriptCore/Scripts/wkbuiltins/builtins_templates.py:
- Source/JavaScriptCore/builtins/BuiltinExecutables.cpp:
(JSC::BuiltinExecutables::BuiltinExecutables):
- Source/JavaScriptCore/runtime/IntlObject.cpp:
(JSC::availableUnits):
- Source/WTF/wtf/text/StringImpl.cpp:
(WTF::StringImpl::createWithoutCopyingNonEmpty):
(WTF::StringImpl::createFromLiteral): Deleted.
(WTF::StringImpl::createWithoutCopying): Deleted.
- Source/WTF/wtf/text/StringImpl.h:
(WTF::StringImpl::create):
(WTF::StringImpl::createWithoutCopying):
(WTF::StringImpl::createFromLiteral): Deleted.
- Source/WTF/wtf/text/WTFString.h:
(WTF::String::String):
Canonical link: https://commits.webkit.org/250127@main
- 10:40 AM Changeset in webkit [293620] by
-
- 2 edits in trunk/LayoutTests
REGRESSION(r290548) [GTK][WPE] test LayoutTests/fast/events/node-event-anchor-lock.html fails
https://bugs.webkit.org/show_bug.cgi?id=239890
Patch by Arcady Goldmints-Orlov <Arcady Goldmints-Orlov> on 2022-04-29
Reviewed by Martin Robinson.
- fast/events/node-event-anchor-lock.html: Disable scroll animation for this test.
- 9:36 AM Changeset in webkit [293619] by
-
- 2 edits in trunk/Source/WTF
REGRESSION(r293608): [GTK][WPE] Broke clang builds
https://bugs.webkit.org/show_bug.cgi?id=239899
Patch by Philippe Normand <pnormand@igalia.com> on 2022-04-29
Reviewed by Michael Catanzaro.
- wtf/StdLibExtras.h: Restrict std::remove_cvref hacks to GCC.
Canonical link: https://commits.webkit.org/250125@main
- 9:26 AM Changeset in webkit [293618] by
-
- 2 edits in trunk/Source/WebCore
[iOS] Video on twitch.tv shifts to top of screen when toggling playback in fullscreen
https://bugs.webkit.org/show_bug.cgi?id=239884
<rdar://92367060>
Reviewed by Eric Carlson.
Twitch will cause the HTMLMediaElement to recreate the MediaPlayer when resuming playback
after pausing. If this happens in fullscreen, VideoLayerManagerObjC::setVideoLayer() will
be called with the new video layer, however it will be laid out pinned to the top-left
corner of the screen (rather than centered), as setVideoLayer() will call -setFrame with
an explicit 0,0 position argument.
Rather than pin the layer to the top-left, use the full value of m_videoFullscreenFrame
when setting the video layer frame, both in setVideoLayer() as well as
setVideoFullscreenLayer().
Its currently impossible to write an test for this behavior, as TestWebKitAPI is not a UI
application, and therefore cannot enter fullscreen mode.
- platform/graphics/avfoundation/objc/VideoLayerManagerObjC.mm:
(WebCore::VideoLayerManagerObjC::setVideoLayer):
(WebCore::VideoLayerManagerObjC::setVideoFullscreenLayer):
- 8:59 AM Changeset in webkit [293617] by
-
- 2 edits in trunk
Unreviewed, add my GitHub account name to contributors.json
I also ran
validate-committer-lists --canonicalizeto fix up some minor style inconsistencies in this file
after some other recent additions.
- metadata/contributors.json:
- 8:45 AM Changeset in webkit [293616] by
-
- 2 edits in trunk
Unreviewed; add my github account to contributors.json.
- metadata/contributors.json:
- 8:35 AM Changeset in webkit [293615] by
-
- 6 edits in trunk/Tools
[git-webkit] Redact bug title in branch name on alternate remotes
https://bugs.webkit.org/show_bug.cgi?id=239826
<rdar://problem/92418512>
Rubber-stamped by Aakash Jain.
- Tools/Scripts/libraries/webkitscmpy/setup.py: Bump version.
- Tools/Scripts/libraries/webkitscmpy/webkitscmpy/init.py: Ditto.
- Tools/Scripts/libraries/webkitscmpy/webkitscmpy/program/branch.py:
(Branch.main): Allow caller to redact bug title in branch name.
- Tools/Scripts/libraries/webkitscmpy/webkitscmpy/program/pull_request.py:
(PullRequest.pull_request_branch_point): Redact bug title in branch name
for non-origin remotes.
- Tools/Scripts/libraries/webkitscmpy/webkitscmpy/test/branch_unittest.py:
(TestBranch.test_redacted):
Canonical link: https://commits.webkit.org/250121@main
- 8:24 AM Changeset in webkit [293614] by
-
- 2 edits in trunk/Tools
[ews-build.webkit.org] Link to PRs with undefined title
https://bugs.webkit.org/show_bug.cgi?id=239820
<rdar://problem/92416554>
Reviewed by Aakash Jain.
- CISupport/ews-build/steps.py:
(ConfigureBuild.add_pr_details):
Canonical link: https://commits.webkit.org/250120@main
- 8:11 AM Changeset in webkit [293613] by
-
- 2 edits in trunk/Source/WebCore
Add background-clip: text to CSSProperties.json
Unreviewed fix.
- css/CSSProperties.json:
- 7:31 AM Changeset in webkit [293612] by
-
- 2 edits in trunk/Source/WebKit
Fix ASAN build after "IPC testing API should have the ability to test IPC::Connection send and receive through IPC::Connection"
https://bugs.webkit.org/show_bug.cgi?id=239894
Unreviewed build fix.
Add a return for function which does ASSERT_NOT_REACHED().
Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2022-04-29
- WebProcess/WebPage/IPCTestingAPI.cpp:
(WebKit::IPCTestingAPI::JSIPCConnection::didReceiveSyncMessage):
- 4:20 AM WebKitGTK/Debugging edited by
- (diff)
- 3:42 AM Changeset in webkit [293611] by
-
- 2 edits in trunk/LayoutTests
[GTK][WPE] media/video-with-alpha.html is failing and skipped
https://bugs.webkit.org/show_bug.cgi?id=226484
Patch by Philippe Normand <pnormand@igalia.com> on 2022-04-29
Unreviewed, gardening.
- platform/glib/TestExpectations: The SDK ships GStreamer 1.20, mark
media/video-with-alpha.html as passing.
Canonical link: https://commits.webkit.org/250117@main
- 12:59 AM Changeset in webkit [293610] by
-
- 6 edits in trunk/Source/WebKit
[macOS] Unreviewed, non-unified build fixes
https://bugs.webkit.org/show_bug.cgi?id=239889
- UIProcess/API/Cocoa/_WKDataTask.h:
- UIProcess/API/Cocoa/_WKDataTask.mm:
- UIProcess/API/Cocoa/_WKInspectorConfigurationInternal.h:
- UIProcess/Cocoa/ModalContainerControlClassifier.h:
- UIProcess/Cocoa/ModalContainerControlClassifier.mm:
- 12:57 AM Changeset in webkit [293609] by
-
- 4 edits2 adds in trunk
HTMLMediaElement can get multiple interruptions for invisible autoplay
https://bugs.webkit.org/show_bug.cgi?id=239842
<rdar://91809550>
Reviewed by Eric Carlson.
Source/WebCore:
A media element may be interrupted for invisible autoplay.
In some cases, like by calling play on the media element, the media element will no longer be in interrupted state.
This will lead to multiple invisible autoplay interruptions to be added to the same media element.
There will be only one end of interruption for invisible autoplay, which will lead to the media element to not restart as expected.
To prevent this, we store a boolean in HTMLMediaElement that tells us whether the media element has an ongoing invisible autoplay interruption.
Based on that, we make sure to always balance invisible autoplay interruption begin and end.
Test: media/video-mediastream-restricted-invisible-autoplay-not-allowed.html
- html/HTMLMediaElement.cpp:
- html/HTMLMediaElement.h:
LayoutTests:
- fast/mediastream/video-mediastream-restricted-invisible-autoplay-not-allowed-expected.txt: Added.
- fast/mediastream/video-mediastream-restricted-invisible-autoplay-not-allowed.html: Added.
- 12:50 AM Changeset in webkit [293608] by
-
- 5 edits in trunk
[GCC] std::remove_cvref is undefined in GCC8.4
https://bugs.webkit.org/show_bug.cgi?id=239881
Reviewed by Žan Doberšek.
r293505 changed the guard that added std::remove_cvref if not defined
by GCC, checking cplusplus <= 201703L.
However in Ubuntu GCC8.4 this flag's value is 201709L. Thus, the
evaluation of this flag cannot reliably determine whether the compiler
has to define std::remove_cvref or not.
Instead of relying on a predefined compiler flag, what the patch does is
to attempt to compile a small snippet of code to check whether std::remove_cvref
is supported by the compiler. If successful, the flag 'HAVE_STD_REMOVE_CVREF' is defined.
.:
- Source/cmake/OptionsCommon.cmake: Set and expose HAVE_STD_REMOVE_CVREF if needed.
- Source/cmake/WebKitCompilerFlags.cmake: Check whether GCC supports std::remove_cvref.
Source/WTF:
- wtf/StdLibExtras.h: Define std::remove_cvref if not defined by GCC.
- 12:14 AM Changeset in webkit [293607] by
-
- 4 edits in trunk
Make sure to fail importScripts as per https://w3c.github.io/ServiceWorker/#importscripts step 4
https://bugs.webkit.org/show_bug.cgi?id=239847
Reviewed by Chris Dumez.
LayoutTests/imported/w3c:
- web-platform-tests/service-workers/service-worker/import-scripts-updated-flag.https-expected.txt:
Source/WebCore:
Once a service worker is installed, the service worker should not be able to call importScript on new URLs.
Covered by updated test.
- workers/WorkerScriptLoader.cpp:
Apr 28, 2022:
- 10:18 PM Changeset in webkit [293606] by
-
- 2 edits in trunk/Source/WebCore
afterprint event should be scheduled on event loop
https://bugs.webkit.org/show_bug.cgi?id=239883
Patch by Alex Christensen <achristensen@webkit.org> on 2022-04-28
Reviewed by Chris Dumez.
- page/Page.cpp:
(WebCore::dispatchPrintEvent):
(WebCore::Page::dispatchBeforePrintEvent):
(WebCore::Page::dispatchAfterPrintEvent):
- 9:12 PM Changeset in webkit [293605] by
-
- 19 edits in trunk/Source
[JSC] Make DFG::OSRExit data unlinked
https://bugs.webkit.org/show_bug.cgi?id=239828
Reviewed by Saam Barati.
This patch makes DFG::OSRExit unlinked. While generated OSR exit code is linked version,
we no longer put linked data to DFG::OSRExit so that unlinked DFG can use DFG::OSRExit.
Key changes are two things.
- Now, we always store compiled MacroAssemblerCodeRef in DFG::JITData regardless of whether we have linked / unlinked DFG. While linked DFG uses repatching to jump to this code, unlinked DFG looks into this vector in JITData and jump to that.
- MethodOfGettingAValueProfile was including CodeBlock*, ValueProfile* in CodeBlock* etc., so it was linked data structure which unlinked DFG cannot use. Instead, we encode how to retrieve these pointers when generating OSR exit code actually, and just storing CodeOrigin, type, and Operand to make MethodOfGettingAValueProfile unlinked data structure. While CodeOrigin can include InlineCallFrame, but our first version of unlinked DFG will not perform inlining thus we will not include it. It also makes sizeof(MethodOfGettingAValueProfile) smaller from 32 bytes to 16 bytes (50% reduction).
- Source/JavaScriptCore/assembler/MacroAssemblerCodeRef.h:
(JSC::MacroAssemblerCodeRef::offsetOfCodePtr):
- Source/JavaScriptCore/bytecode/CodeBlock.cpp:
(JSC::CodeBlock::updateOSRExitCounterAndCheckIfNeedToReoptimize): Deleted.
- Source/JavaScriptCore/bytecode/CodeBlock.h:
- Source/JavaScriptCore/bytecode/MethodOfGettingAValueProfile.cpp:
(JSC::MethodOfGettingAValueProfile::emitReportValue const):
(JSC::MethodOfGettingAValueProfile::fromLazyOperand): Deleted.
(JSC::MethodOfGettingAValueProfile::reportValue): Deleted.
- Source/JavaScriptCore/bytecode/MethodOfGettingAValueProfile.h:
(JSC::MethodOfGettingAValueProfile::unaryArithProfile):
(JSC::MethodOfGettingAValueProfile::binaryArithProfile):
(JSC::MethodOfGettingAValueProfile::argumentValueProfile):
(JSC::MethodOfGettingAValueProfile::bytecodeValueProfile):
(JSC::MethodOfGettingAValueProfile::lazyOperandValueProfile):
(JSC::MethodOfGettingAValueProfile::operator bool const):
(JSC::MethodOfGettingAValueProfile::MethodOfGettingAValueProfile): Deleted.
- Source/JavaScriptCore/dfg/DFGGraph.cpp:
(JSC::DFG::Graph::methodOfGettingAValueProfileFor):
- Source/JavaScriptCore/dfg/DFGJITCode.cpp:
(JSC::DFG::JITCode::JITCode):
(JSC::DFG::JITCode::findPC):
- Source/JavaScriptCore/dfg/DFGJITCode.h:
- Source/JavaScriptCore/dfg/DFGJITCompiler.cpp:
(JSC::DFG::JITCompiler::JITCompiler):
(JSC::DFG::JITCompiler::linkOSRExits):
(JSC::DFG::JITCompiler::link):
- Source/JavaScriptCore/dfg/DFGJITFinalizer.cpp:
(JSC::DFG::JITFinalizer::finalize):
- Source/JavaScriptCore/dfg/DFGOSRExit.cpp:
(JSC::DFG::JSC_DEFINE_JIT_OPERATION):
(JSC::DFG::OSRExit::compileExit):
(JSC::DFG::OSRExit::codeLocationForRepatch const): Deleted.
- Source/JavaScriptCore/dfg/DFGOSRExit.h:
(JSC::DFG::OSRExit::codeLocationForRepatch const):
(JSC::DFG::OSRExitState::OSRExitState): Deleted.
- Source/JavaScriptCore/dfg/DFGPlan.cpp:
(JSC::DFG::Plan::finalizeJITData):
- Source/JavaScriptCore/dfg/DFGPlan.h:
- Source/JavaScriptCore/ftl/FTLLowerDFGToB3.cpp:
(JSC::FTL::DFG::LowerDFGToB3::lower):
- Source/JavaScriptCore/ftl/FTLOSRExitCompiler.cpp:
(JSC::FTL::compileStub):
- Source/WTF/wtf/FixedVector.h:
Canonical link: https://commits.webkit.org/250111@main
- 7:24 PM Changeset in webkit [293604] by
-
- 12 edits in trunk/Source
Remove the AVFoundationNSURLSessionEnabled preference
https://bugs.webkit.org/show_bug.cgi?id=239632
Reviewed by Eric Carlson.
All supported operating systems have supported AVFoundationNSURLSession
for several years. Since we expect AVFoundation to always use WebKit
for network loading (and indeed, expect improper behavior if we do not)
we should remove this toggle to simplify the code and reduce the chance
for users to mistakenly activate it.
Source/WebCore:
- page/DeprecatedGlobalSettings.cpp:
(WebCore::DeprecatedGlobalSettings::setAVFoundationEnabled):
(WebCore::DeprecatedGlobalSettings::setAVFoundationNSURLSessionEnabled): Deleted.
- page/DeprecatedGlobalSettings.h:
(WebCore::DeprecatedGlobalSettings::isAVFoundationEnabled):
(WebCore::DeprecatedGlobalSettings::isAVFoundationNSURLSessionEnabled): Deleted.
- platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
(WebCore::MediaPlayerPrivateAVFoundationObjC::createAVAssetForURL):
(WebCore::MediaPlayerPrivateAVFoundationObjC::didPassCORSAccessCheck const):
(WebCore::MediaPlayerPrivateAVFoundationObjC::wouldTaintOrigin const):
Source/WebKit:
- UIProcess/API/C/WKPreferences.cpp:
(WKPreferencesSetAVFoundationNSURLSessionEnabled):
(WKPreferencesGetAVFoundationNSURLSessionEnabled):
- UIProcess/API/C/WKPreferencesRef.h:
Source/WebKitLegacy/mac:
- WebView/WebPreferenceKeysPrivate.h:
- WebView/WebPreferences.mm:
(-[WebPreferences setAVFoundationNSURLSessionEnabled:]):
(-[WebPreferences isAVFoundationNSURLSessionEnabled]):
Source/WTF:
- Scripts/Preferences/WebPreferences.yaml:
- 6:59 PM Changeset in webkit [293603] by
-
- 3 edits2 adds in trunk
CSP: Fix mixing strict-dynamic and unsafe-inline policies
https://bugs.webkit.org/show_bug.cgi?id=239862
Reviewed by Kate Cheney.
Source/WebCore:
Test: http/tests/security/contentSecurityPolicy/script-src-strict-dynamic-and-unsafe-inline-policies.html
- page/csp/ContentSecurityPolicyDirectiveList.cpp:
(WebCore::ContentSecurityPolicyDirectiveList::violatedDirectiveForNonParserInsertedScripts const):
LayoutTests:
If you had multiple policies, one including strict-dynamic and another with unsafe-inline, the unsafe-inline
policy was incorrectly handled.
- http/tests/security/contentSecurityPolicy/script-src-strict-dynamic-and-unsafe-inline-policies-expected.txt: Added.
- http/tests/security/contentSecurityPolicy/script-src-strict-dynamic-and-unsafe-inline-policies.html: Added.
- 6:46 PM Changeset in webkit [293602] by
-
- 6 edits in trunk
[css-cascade] Mark properties sharing a computed value as related
https://bugs.webkit.org/show_bug.cgi?id=239579
Reviewed by Tim Nguyen.
LayoutTests/imported/w3c:
Some failures are now passing.
- web-platform-tests/css/css-cascade/all-prop-revert-layer-expected.txt:
Source/WebCore:
Some longhand properties share a computed value with another property,
like a legacy -webkit- prefixed one.
In that case, when both properties are specified, the last one should
win. That is typically done by marking the properties as related, using
the "related-property" field. This defers the properties and makes
them cascade properly.
However, some properties weren't marked as related despite sharing a
computed value. So this patch marks these pairs:
- mask-clip and -webkit-mask-clip
- mask-composite and -webkit-mask-composite
- mask-mode and -webkit-mask-source-type
- text-combine-upright and -webkit-text-combine
Test: imported/w3c/web-platform-tests/css/css-cascade/all-prop-revert-layer.html
- css/CSSProperties.json:
LayoutTests:
Some failures are now passing.
- platform/mac-wk1/imported/w3c/web-platform-tests/css/css-cascade/all-prop-revert-layer-expected.txt:
- 6:28 PM Changeset in webkit [293601] by
-
- 16 edits in trunk
Support C files in Unified Builds
https://bugs.webkit.org/show_bug.cgi?id=239873
Reviewed by Mark Lam.
This patch adds support for C (not CPP) files in Unified Builds
so that we do not need to build Zydis in non-unified way.
Also, this patch fixes a bug that we always generate empty UnifiedSource-1.xxx.
It also fixes a bug that this script cannot handle 0 max bundle count.
- Tools/TestWebKitAPI/Scripts/generate-unified-sources.sh:
- Source/JavaScriptCore/CMakeLists.txt:
- Source/JavaScriptCore/JavaScriptCore.xcodeproj/project.pbxproj:
- Source/JavaScriptCore/Scripts/generate-unified-sources.sh:
- Source/JavaScriptCore/Sources.txt:
- Source/JavaScriptCore/UnifiedSources-output.xcfilelist:
- Source/WebKit/Scripts/generate-unified-sources.sh:
- Source/WebKitLegacy/scripts/generate-unified-sources.sh:
- Source/WTF/Scripts/generate-unified-source-bundles.rb:
- Source/WebCore/Scripts/generate-unified-sources.sh:
Canonical link: https://commits.webkit.org/250107@main
- 5:54 PM Changeset in webkit [293600] by
-
- 1 copy in tags/WebKit-7613.2.7.1.7
Tag WebKit-7613.2.7.1.7.
- 5:52 PM Changeset in webkit [293599] by
-
- 19 edits in branches/safari-613.2.7.1-branch/Source
Cherry-pick r287877. rdar://problem/92357915
Non-unified build fixes, early January 2022 edition
https://bugs.webkit.org/show_bug.cgi?id=235013
Unreviewed non-unified build fixes.
Source/JavaScriptCore:
- wasm/js/JSWebAssemblyModule.cpp: Add missing JSWebAssemblyLinkError.h header.
- wasm/js/JSWebAssemblyModule.h: Add missing forward declaration for the JSC::OptimizingCallLinkInfo type.
Source/WebCore:
No new tests needed.
- Modules/fetch/FetchBodyConsumer.cpp: Add missing FormData.h header.
- Modules/fetch/FormDataConsumer.h: Add missing ExceptionOr.h header, and forward declaration for the WebCore::ScriptExecutionContext type.
- animation/CSSAnimation.cpp: Add missing KeyframeEffect.h header.
- animation/KeyframeEffect.cpp: Add missing StyledElement.h header.
- html/HTMLFormElement.cpp: Add missing PseudoClassChangeInvalidation.h header.
- platform/network/SynchronousLoaderClient.cpp: Add missing SharedBuffer.h header.
- rendering/svg/RenderSVGBlock.cpp: Add missing SVGRenderSupport.h header.
- rendering/svg/RenderSVGForeignObject.cpp: Ditto.
- rendering/svg/RenderSVGInline.cpp: Ditto.
- rendering/svg/RenderSVGModelObject.cpp: Add missing SVGElementInlines.h header.
- rendering/svg/SVGInlineTextBox.cpp: Add missing FloatConversion.h header.
- svg/SVGViewElement.cpp: Add missing RenderElement.h header.
- workers/service/context/ServiceWorkerFetch.h: Add missing forward declaration for the WebCore::SharedBuffer type, remove unused one for WebCore::FragmentedSharedBuffer.
Source/WebKit:
- Platform/IPC/SharedBufferCopy.cpp: Add missing WebCoreArgumentCoders.h header, remove now unneeded ArgumentCoders.h header.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@287877 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 5:51 PM Changeset in webkit [293598] by
-
- 9 edits in branches/safari-613.2.7.1-branch/Source
Versioning.
WebKit-7613.2.7.1.7
- 5:29 PM Changeset in webkit [293597] by
-
- 2 edits in trunk/Source/WTF
REGRESSION (DOM GPUP): Rich HTML emails on watchOS no longer show up
https://bugs.webkit.org/show_bug.cgi?id=239870
rdar://91311606
Reviewed by Tim Horton.
Temporarily turn GPU process for DOM off by default on watchOS.
- Scripts/Preferences/WebPreferencesExperimental.yaml:
- 4:51 PM Changeset in webkit [293596] by
-
- 3 edits in trunk/Source/WebCore/rendering/style
Use a HashSet instead of a std::unique_ptr<HashSet> for StyleRareNonInheritedData.customPaintWatchedProperties
https://bugs.webkit.org/show_bug.cgi?id=239863
Reviewed by Yusuke Suzuki.
Use a HashSet instead of a std::unique_ptr<HashSet> for StyleRareNonInheritedData.customPaintWatchedProperties.
A HashSet is already essentially a pointer, no need for the extra dereferencing.
- Source/WebCore/rendering/style/RenderStyle.cpp:
(WebCore::RenderStyle::addCustomPaintWatchProperty):
(WebCore::changedCustomPaintWatchedProperty):
- Source/WebCore/rendering/style/StyleRareNonInheritedData.cpp:
(WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
(WebCore::StyleRareNonInheritedData::operator== const):
- Source/WebCore/rendering/style/StyleRareNonInheritedData.h:
Canonical link: https://commits.webkit.org/250105@main
- 4:31 PM Changeset in webkit [293595] by
-
- 19 edits1 add in trunk/Source
Dynamically switch message filter
https://bugs.webkit.org/show_bug.cgi?id=238577
<rdar://69263324>
Reviewed by Geoffrey Garen.
Source/WebKit:
Use a sandbox state variable to dynamically switch the bootstrap filter in the WebContent process' sandbox.
During launch of the WebContent process, we use a more permissive bootstrap filter to allow creating Mach
connections in this time frame. After the WebContent process has launched, we switch to a blocking filter,
which will essentially block access to launchd. The bootstrap filter is being switched back to the more
permissive version when we create new Mach sandbox extensions for the WebContent process. This is done on
a case by case basis, by adding a new parameter to control this behavior when creating Mach sandbox
extensions. While launching the WebContent process there is usually no need to specify that the permissive
bootstrap filter is needed, since we are already using the permissive filter during launch time. However,
for some Mach extensions that will only result in a new XPC connection in the WebContent process after launch,
we need to specify that the permissive filter is requried. Otherwise, creating the new XPC connection after
launch will fail. For Mach sandbox extensions created after launch of the WebContent process, we always need
to use the permissive bootstrap filter to be able to create the XPC connection. Enabling the permissive
bootstrap filter requires the audit token to be available, which means we need to pass the audit token when
creating the new Mach sandbox extensions. This patch also waits until after the Web page has been created to
set the sandbox variable which indicates that the WebContent process has launched. Without this last change,
the bootstrap filter would have needed switching when creating the Web page, since creating the WebPage will
consume and revoke some mach extensions.
- Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb.in:
- Scripts/process-entitlements.sh:
- Shared/Cocoa/SandboxExtensionCocoa.mm:
(WebKit::SandboxExtension::createHandleForMachLookup):
(WebKit::SandboxExtension::createHandlesForMachLookup):
- Shared/Sandbox/SandboxStateVariables.h: Added.
- Shared/SandboxExtension.h:
- UIProcess/Cocoa/WebPageProxyCocoa.mm:
(WebKit::WebPageProxy::addPlatformLoadParameters):
(WebKit::WebPageProxy::grantAccessToAssetServices):
(WebKit::WebPageProxy::switchFromStaticFontRegistryToUserFontRegistry):
(WebKit::WebPageProxy::fontdMachExtensionHandle):
- UIProcess/Cocoa/WebProcessPoolCocoa.mm:
(WebKit::WebProcessPool::registerNotificationObservers):
- UIProcess/Cocoa/WebProcessProxyCocoa.mm:
(WebKit::WebProcessProxy::unblockAccessibilityServerIfNeeded):
(WebKit::WebProcessProxy::messageSourceIsValidWebContentProcess):
(WebKit::WebProcessProxy::auditToken const):
- UIProcess/SpeechRecognitionRemoteRealtimeMediaSourceManager.cpp:
(WebKit::SpeechRecognitionRemoteRealtimeMediaSourceManager::addSource):
- UIProcess/UserMediaPermissionRequestManagerProxy.cpp:
(WebKit::UserMediaPermissionRequestManagerProxy::finishGrantingRequest):
- UIProcess/UserMediaProcessManager.cpp:
(WebKit::UserMediaProcessManager::willCreateMediaStream):
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::processNextQueuedMouseEvent):
(WebKit::WebPageProxy::didChooseFilesForOpenPanelWithDisplayStringAndIcon):
(WebKit::WebPageProxy::creationParameters):
- UIProcess/WebPageProxy.h:
- UIProcess/WebProcessProxy.h:
- WebKit.xcodeproj/project.pbxproj:
- WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::create):
- WebProcess/com.apple.WebProcess.sb.in:
Source/WTF:
Add SPI to set sandbox state variable.
- wtf/spi/darwin/SandboxSPI.h:
- 3:47 PM Changeset in webkit [293594] by
-
- 2 edits in trunk/LayoutTests
[ macOS wk1 ] imported/w3c/web-platform-tests/css/css-text/text-transform/text-transform-upperlower-003.html is a flaky image failure
https://bugs.webkit.org/show_bug.cgi?id=239871
Unreviewed test gardening.
- LayoutTests/platform/mac-wk1/TestExpectations:
Canonical link: https://commits.webkit.org/250103@main
- 3:43 PM Changeset in webkit [293593] by
-
- 2 edits in trunk/Tools
Fix SafeBrowsing API tests on platforms with safe browsing result details
https://bugs.webkit.org/show_bug.cgi?id=239861
<rdar://91767123>
Patch by Alex Christensen <achristensen@webkit.org> on 2022-04-28
Reviewed by Anders Carlsson.
- TestWebKitAPI/Tests/WebKitCocoa/SafeBrowsing.mm:
(-[TestServiceLookupResult malwareDetailsBaseURLString]):
(-[TestServiceLookupResult learnMoreURL]):
(-[TestServiceLookupResult reportAnErrorBaseURLString]):
(-[TestServiceLookupResult localizedProviderDisplayName]):
- 3:26 PM Changeset in webkit [293592] by
-
- 2 edits in trunk/LayoutTests
Remove expectations for tiled-drawing/scrolling/scroll-snap/scroll-snap-momentum-in-non-snapping-axis.html
https://bugs.webkit.org/show_bug.cgi?id=228930
Unreviewed test gardening.
- LayoutTests/platform/mac-wk2/TestExpectations:
Canonical link: https://commits.webkit.org/250101@main
- 3:21 PM Changeset in webkit [293591] by
-
- 2 edits in trunk/Source/WebKit
Set top origin of CORS preflight requests
https://bugs.webkit.org/show_bug.cgi?id=239869
<rdar://92458995>
Patch by Alex Christensen <achristensen@webkit.org> on 2022-04-28
Reviewed by Geoffrey Garen.
Since r293481 we establish two TCP connections to each domain that needs a CORS preflight request.
This is because we were calling _setPrivacyProxyFailClosedForUnreachableNonMainHosts for the CORS
preflight request but not the actual request after a successful CORS preflight check. They were
different because we weren't setting parameters.topOrigin for the CORS preflight request. Now we
are and the two requests can share a TCP connection once more.
- NetworkProcess/NetworkCORSPreflightChecker.cpp:
(WebKit::NetworkCORSPreflightChecker::startPreflight):
- 2:46 PM Changeset in webkit [293590] by
-
- 2 edits in trunk/Source/WebKit
Fix build error after r293509
https://bugs.webkit.org/show_bug.cgi?id=239866
<rdar://92471416>
Unreviewed build fix.
- Shared/mac/AuxiliaryProcessMac.mm:
(WebKit::AuxiliaryProcess::isSystemWebKit):
- 2:23 PM Changeset in webkit [293589] by
-
- 5 edits in trunk
[ macOS Debug wk2 ] Thirteen imported/w3c/web-platform-tests/html/semantics/embedded-content/media-elements/ are a flaky crash (ASSERTION FAILED: willBeComposited == needsToBeComposited(layer, queryData))
https://bugs.webkit.org/show_bug.cgi?id=239770
<rdar://92334616>
Reviewed by Jer Noble.
Source/WebKit:
With media in the GPU Process, the contract that changes in the answer to
HTMLMediaElement::supportsAcceleratedRendering() must be associated with a call to
contentChanged(VideoChanged) was broken: MediaPlayerPrivateRemote's
m_configuration.supportsAcceleratedRendering changed in response to IPC from the GPU process,
but nothing triggered contentChanged(VideoChanged).
Fix by calling renderingModeChanged().
- GPUProcess/media/cocoa/RemoteMediaPlayerProxyCocoa.mm:
- WebProcess/GPU/media/MediaPlayerPrivateRemote.cpp:
(WebKit::MediaPlayerPrivateRemote::acceleratedRenderingStateChanged):
LayoutTests:
Unskip the affected tests, reverting r293451.
- platform/mac-wk2/TestExpectations:
- 1:13 PM Changeset in webkit [293588] by
-
- 6 edits in trunk/Source
Leverage the known length of an ASCIILiteral when comparing it to a String / AtomString
https://bugs.webkit.org/show_bug.cgi?id=239798
Reviewed by Yusuke Suzuki and Darin Adler.
Leverage the known length of an ASCIILiteral when comparing it to a String / AtomString.
Make sure we call ASCIILiteral::length() inline to allow the compiler to optimize out
the strlen() call, then call the more efficientequal(StringImpl*, const LChar*, unsigned)
instead ofequal(StringImpl*, const LChar*).
- Source/JavaScriptCore/jsc.cpp:
(printInternal):
- Source/JavaScriptCore/runtime/JSCJSValueInlines.h:
(JSC::toPreferredPrimitiveType):
- Source/JavaScriptCore/runtime/PropertyName.h:
(JSC::isCanonicalNumericIndexString):
- Source/WTF/wtf/text/AtomString.h:
(WTF::operator==):
- Source/WTF/wtf/text/StringImpl.h:
(WTF::equal):
- Source/WTF/wtf/text/WTFString.h:
(WTF::operator==):
(WTF::operator!=):
Canonical link: https://commits.webkit.org/250097@main
- 1:04 PM Changeset in webkit [293587] by
-
- 17 edits1 move1 delete in trunk/LayoutTests
[GLIB] Update test expectations and baselines. Unreviewed test gardening.
https://bugs.webkit.org/show_bug.cgi?id=239827
Patch by Arcady Goldmints-Orlov <Arcady Goldmints-Orlov> on 2022-04-28
LayoutTests/imported/w3c:
- web-platform-tests/cookies/samesite/about-blank-toplevel.https-expected.txt: Update baseline to expect a pass.
LayoutTests:
- platform/glib/TestExpectations:
- platform/glib/fast/dom/HTMLMeterElement/meter-optimums-expected.txt:
- platform/glib/fast/lists/li-br-expected.txt:
- platform/gtk/TestExpectations:
- platform/gtk/compositing/repaint/composite-and-scale-change-expected.txt: Renamed from LayoutTests/platform/gtk/compositing/repaint/composite-and-scale-change-actual.txt.
- platform/gtk/css2.1/t0905-c5525-fltcont-00-d-g-expected.txt:
- platform/gtk/fast/borders/rtl-border-05-expected.txt:
- platform/gtk/fast/dom/HTMLMeterElement/meter-boundary-values-expected.txt:
- platform/gtk/fast/dynamic/insert-before-table-part-in-continuation-expected.txt:
- platform/gtk/fast/ruby/ruby-runs-spans-expected.txt:
- platform/gtk/fast/ruby/rubyDOM-insert-rt-expected.txt:
- platform/gtk/fast/ruby/rubyDOM-insert-text1-expected.txt:
- platform/gtk/inspector/css/shadow-scoped-style-expected.txt: Removed.
- platform/wpe/css2.1/t0905-c5525-fltcont-00-d-g-expected.txt:
- platform/wpe/fast/borders/rtl-border-05-expected.txt:
- platform/wpe/fast/dom/HTMLMeterElement/meter-boundary-values-expected.txt:
- 12:59 PM Changeset in webkit [293586] by
-
- 2 edits in branches/safari-614.1.11-branch/Source/WebGPU
Cherry-pick r293558. rdar://problem/91769511
WebGPU doesn't create a symlink to the system content path in installhdrs
https://bugs.webkit.org/show_bug.cgi?id=239819
Reviewed by Alexey Proskuryakov.
Enabled script phases for installhdrs and installapi.
- Configurations/WebGPU.xcconfig:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@293558 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 12:56 PM Changeset in webkit [293585] by
-
- 9 edits in branches/safari-614.1.11-branch/Source
Versioning.
WebKit-7614.1.11.1
- 12:48 PM Changeset in webkit [293584] by
-
- 1 copy in tags/WebKit-7614.1.10.8
Tag WebKit-7614.1.10.8.
- 12:47 PM Changeset in webkit [293583] by
-
- 2 edits in branches/safari-614.1.10-branch/Source/WebGPU
Cherry-pick r293558. rdar://problem/91769511
WebGPU doesn't create a symlink to the system content path in installhdrs
https://bugs.webkit.org/show_bug.cgi?id=239819
Reviewed by Alexey Proskuryakov.
Enabled script phases for installhdrs and installapi.
- Configurations/WebGPU.xcconfig:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@293558 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 12:45 PM Changeset in webkit [293582] by
-
- 9 edits in branches/safari-614.1.10-branch/Source
Versioning.
WebKit-7614.1.10.8
- 12:05 PM Changeset in webkit [293581] by
-
- 4 edits in trunk/LayoutTests
Update webrtc/connection-state.html to not expected the completed ice connection state
https://bugs.webkit.org/show_bug.cgi?id=239843
Reviewed by Eric Carlson.
Wait for video to be playable to check states.
Remove completed state from the expected ice connection state as this is racy and app specific for when completed will happen (it can take a long time or not).
This is aligned with WebKit and Chrome implementations.
- TestExpectations:
- webrtc/connection-state.html:
- webrtc/connection-state-expected.txt:
- 11:45 AM Changeset in webkit [293580] by
-
- 7 edits in trunk/Source/WebCore
[GStreamer] Pipewire display capture broken
https://bugs.webkit.org/show_bug.cgi?id=239435
Patch by Philippe Normand <pnormand@igalia.com> on 2022-04-28
Reviewed by Xabier Rodriguez-Calvar.
The pipewiresrc GStreamer element now needs both the
fdandpathproperties set in order
to open the right Pipewire stream, so we need to get the node ID from the portal Start
response and pass it to the GStreamer element.
- platform/mediastream/gstreamer/GStreamerCaptureDeviceManager.h:
- platform/mediastream/gstreamer/GStreamerDisplayCaptureDeviceManager.cpp:
(WebCore::GStreamerDisplayCaptureDeviceManager::createDisplayCaptureSource):
(WebCore::GStreamerDisplayCaptureDeviceManager::waitResponseSignal):
- platform/mediastream/gstreamer/GStreamerVideoCaptureSource.cpp:
(WebCore::GStreamerVideoCaptureSource::createPipewireSource):
(WebCore::GStreamerVideoCaptureSource::GStreamerVideoCaptureSource):
(WebCore::m_deviceType):
(WebCore::GStreamerVideoCaptureSource::~GStreamerVideoCaptureSource):
- platform/mediastream/gstreamer/GStreamerVideoCaptureSource.h:
- platform/mediastream/gstreamer/GStreamerVideoCapturer.cpp:
(WebCore::GStreamerVideoCapturer::createSource):
(WebCore::GStreamerVideoCapturer::setSize):
(WebCore::GStreamerVideoCapturer::setFrameRate):
- platform/mediastream/gstreamer/GStreamerVideoCapturer.h:
Canonical link: https://commits.webkit.org/250094@main
- 10:46 AM Changeset in webkit [293579] by
-
- 9 edits in trunk
[WTF] Use quadratic-probing instead of double-hashing
https://bugs.webkit.org/show_bug.cgi?id=239813
Reviewed by Geoffrey Garen.
If table size is always power-of-two, we can safely use quadratic-probing[1] even if the load exceeds 50%.
Quadratic-probing and double-hashing have different tradeoff between clustering possibility and CPU cache
friendliness. Double-hashing can avoid clustering more, but it is not CPU cache friendly. Quadratic-probing
can cause clustering more but better for CPU cache. And while linear-probing caused a lot of trouble and not
practical, quadratic-probing with 75% load factor is practical configuration which is used in production-ready
hashtables e.g. Google's sparsetable / densetable[2].
This patch replaces WTF::HashTable's probing algorithm from double-hashing to quadratic-probing to make it more
cache friendly while keeping reasonable clustering characteristics (compared to linear-probing etc.). Due to
this cache friendliness, we get large performance improvements.
- 0.52% improvement in Speedometer2 with 95% probability.
- 0.72% improvement in JetStream2 with 98% probability.
[1]: https://fgiesen.wordpress.com/2015/02/22/triangular-numbers-mod-2n/
[2]: http://goog-sparsehash.sourceforge.net/doc/implementation.html
Canonical link: https://commits.webkit.org/250093@main
- 10:40 AM Changeset in webkit [293578] by
-
- 2 edits in trunk/Source/WTF
[iOS] Enable IOKit blocking in GPUP by default
https://bugs.webkit.org/show_bug.cgi?id=239615
Reviewed by Darin Adler.
- Scripts/Preferences/WebPreferencesInternal.yaml:
- 10:23 AM Changeset in webkit [293577] by
-
- 2 edits in trunk/Tools
[run-javascriptcore-tests] Fix user-facing accounting
https://bugs.webkit.org/show_bug.cgi?id=239845
Reviewed by Adrian Perez de Castro.
Update numJSCStressFlakyButPassed for flaky tests that were declared a
pass. Otherwise we end up miscounting passes as failures in the summary
we print out to the user. E.g. in
https://build.webkit.org/#/builders/31/builds/3567/steps/8/logs/stdio
the test was flaky but passed, yet run-javascriptcore-tests outputs
1 test flaky and failed.
since it calculates $numJSCStressFlaky - $numJSCStressFlakyButPassed
and $numJSCStressFlakyButPassed is zero (since it wasn't getting
updated).
- Scripts/run-javascriptcore-tests:
(runJSCStressTests):
- 9:48 AM Changeset in webkit [293576] by
-
- 3 edits in trunk/LayoutTests
[ iOS ] tables/mozilla/bugs/bug26178.html is a constant failure
https://bugs.webkit.org/show_bug.cgi?id=239567
<rdar://problem/92055518>
Unreviewed test gardening.
This test produces different (1px) render tree dump results on iOS 15 and 15E sims.
Mark as failure on iOS as there appears be no way to have different expectations for those.
- platform/ios/TestExpectations:
- platform/ios/tables/mozilla/bugs/bug26178-expected.txt:
Also update to E results.
- 9:34 AM Changeset in webkit [293575] by
-
- 5 edits in trunk/Tools
[webkitbugspy] Limit number of failed bugzilla login attempts
https://bugs.webkit.org/show_bug.cgi?id=239850
<rdar://problem/92462214>
Reviewed by Michael Catanzaro.
- Tools/Scripts/libraries/webkitbugspy/setup.py: Bump version.
- Tools/Scripts/libraries/webkitbugspy/webkitbugspy/init.py: Ditto.
- Tools/Scripts/libraries/webkitbugspy/webkitbugspy/bugzilla.py:
(Tracker.init): Caller can define the number of failed login attempts.
(Tracker.user): Detect a failed login.
(Tracker._login_arguments): Only provide login arguments if login attempts
have not been exceeded.
(Tracker.populate): Detect a failed login.
(Tracker.set): Detect a failed login, handle case where login arguments are
not provided due to exceeded login attempts.
(Tracker.add_comment): Ditto.
(Tracker.projects): Detect a failed login.
- Tools/Scripts/libraries/webkitbugspy/webkitbugspy/tests/bugzilla_unittest.py:
Canonical link: https://commits.webkit.org/250089@main
- 9:27 AM Changeset in webkit [293574] by
-
- 3 edits in trunk/LayoutTests
Rebaseline editing/pasteboard/smart-paste-paragraph-002.html after r293521
https://bugs.webkit.org/show_bug.cgi?id=166782
Unreviewed test gardening.
- editing/pasteboard/smart-paste-paragraph-002-expected.txt:
- platform/ios/editing/pasteboard/smart-paste-paragraph-002-expected.txt:
- 9:20 AM Changeset in webkit [293573] by
-
- 1 edit in trunk/Tools/CISupport/ews-build/steps.py
Merge-queue error message about missing user permissions from contributors.json should indicate how to fix it
https://bugs.webkit.org/show_bug.cgi?id=239851
Reviewed by Jonathan Bedard.
- Tools/CISupport/ews-build/steps.py:
(ValidateCommitterAndReviewer.fail_build):
Canonical link: https://commits.webkit.org/250087@main
- 8:18 AM WebKitGTK/2.36.x edited by
- (diff)
- 8:12 AM Changeset in webkit [293572] by
-
- 4 edits in trunk/Source/WebCore
DisplayList::Recorder should lazily create the DrawGlyphsRecorder
https://bugs.webkit.org/show_bug.cgi?id=239829
Reviewed by Myles C. Maxfield.
Creating a DrawGlyphsRecorder does a bit of work that calls into Core Graphics. We don't need
to do this work for a layer that has no text, so delay this work until the first drawGlyphs() call.
This is a few % perf gain on the Images MotionMark subtest.
- platform/graphics/DrawGlyphsRecorder.h:
- platform/graphics/displaylists/DisplayListRecorder.cpp:
(WebCore::DisplayList::Recorder::Recorder):
(WebCore::DisplayList::Recorder::drawGlyphs):
- platform/graphics/displaylists/DisplayListRecorder.h:
- 3:06 AM Changeset in webkit [293571] by
-
- 2 edits in trunk/Source/JavaScriptCore
[RISCV64] Implement MacroAssemblerRISCV64 branchAtomicWeakCAS{8,16,32,64} methods
https://bugs.webkit.org/show_bug.cgi?id=239806
Reviewed by Yusuke Suzuki.
Provide MacroAssemblerRISCV64 method implementations for the different
branchAtomicWeakCAS variants. The 32-bit and 64-bit versions are
straightforward, leveraging the load-reserved and store-conditional
instructions of the corresponding sizes. For 8-bit and 16-bit versions,
a method template is provided, loading and storing 32-bit words and
performing additional operations to validate and change the desired
value.
- assembler/MacroAssemblerRISCV64.h:
(JSC::MacroAssemblerRISCV64::branchAtomicWeakCASImpl):
(JSC::MacroAssemblerRISCV64::branchAtomicWeakCAS8):
(JSC::MacroAssemblerRISCV64::branchAtomicWeakCAS16):
(JSC::MacroAssemblerRISCV64::branchAtomicWeakCAS32):
(JSC::MacroAssemblerRISCV64::branchAtomicWeakCAS64):
- 1:21 AM Changeset in webkit [293570] by
-
- 62 edits in trunk/Source
[GPU Process] Make WebImage be backed by ImageBuffer
https://bugs.webkit.org/show_bug.cgi?id=239527
rdar://91113628
Reviewed by Tim Horton.
Source/WebCore:
Before enabling GPU Process for DOM rendering there were two modes for
page snapshot: Local bitmap and ShareableBitmap. The ShareableBitmap is
shared between the WebProcess and the UIProcess. The image is drawn in
WebProcess and is consumed by the UIProcess.
After enabling GPU Process for DOM rendering, a new mode should be added:
Remote ShareableBitmap. In this mode, the graphics will be recorded in
WebProcess, the drawing will be committed in GPUProcess and the image will
be consumed by either the WebProcess or the UIProcess.
To add this new mode, the snapshot will be drawn to an ImageBuffer instead
of a ShareableBitmap. And WebImage will be backed by an ImageBuffer instead
of a ShareableBitmap.
- page/FrameSnapshotting.cpp:
(WebCore::snapshotFrameRectWithClip):
- page/FrameSnapshotting.h:
- platform/graphics/ConcreteImageBuffer.h:
(WebCore::ConcreteImageBuffer::create):
- platform/graphics/ImageBuffer.h:
(WebCore::ImageBuffer::createCairoSurface):
- platform/graphics/ImageBufferBackend.h:
(WebCore::ImageBufferBackend::createCairoSurface):
(WebCore::ImageBufferBackend::Parameters::encode const):
(WebCore::ImageBufferBackend::Parameters::decode):
- platform/graphics/RenderingMode.h:
- platform/graphics/cairo/ImageBufferCairoSurfaceBackend.cpp:
(WebCore::ImageBufferCairoSurfaceBackend::createCairoSurface):
- platform/graphics/cairo/ImageBufferCairoSurfaceBackend.h:
Source/WebKit:
-- Allow ImageBufferBackendHandleSharing and ImageBufferShareableBitmapBackend
to compile always.
-- Make WebImage hold an ImageBuffer instead of having it hold a ShareableBitamp.
-- Pass the ChromeClient to WebImage::create() so it can call its
createImageBuffer() which creates RemoteImageBuffer for GPUProcess
drawing.
-- Remove the ShareableBitamp local mode where is backed by a local memory
buffer. This mode was added to make WebImage can be non shareable even
it was backed by ShareableBitamp. So ShareableBitmap::createShareable()
should be renamed ShareableBitmap::create().
-- Replace WebImage::bitmap()::makeCGImageCopy() with
WebImage::copyNativeImage(WebCore::CopyBackingStore)
-- Replace WebImage::bitmap()::makeCGImageCopy() with
WebImage::copyNativeImage(WebCore::DontCopyBackingStore)
-- Replace WebImage::bitmap()::createGraphicsContext() with
WebImage::context()
-- Allow encoding and decoding ImageBufferShareableBitmapBackend by allowing
ImageBufferBackend::Parameters to be encoded and decoded.
-- Make ImageBuffer be able to createCairoSurface(). The pointer to this
surface will be leaked. And to maintain a correct life cycle for the
surface data which is owned by the backend, the ImageBuffer itself
will be ref() when the surface RefPtr is created and will be deref()
when the surface raw pointer is destroyed.
- GPUProcess/graphics/RemoteRenderingBackend.cpp:
(WebKit::RemoteRenderingBackend::getShareableBitmapForImageBufferWithQualifiedIdentifier):
(WebKit::RemoteRenderingBackend::getFilteredImageForImageBuffer):
- GPUProcess/graphics/wc/WCScene.cpp:
(WebKit::WCScene::update):
- GPUProcess/media/RemoteMediaPlayerManagerProxy.cpp:
(WebKit::RemoteMediaPlayerManagerProxy::bitmapImageForCurrentTime):
- Shared/API/c/WKImage.cpp:
(WKImageCreate):
- Shared/API/c/cairo/WKImageCairo.cpp:
(WKImageCreateCairoSurface):
(WKImageCreateFromCairoSurface):
- Shared/API/c/cg/WKImageCG.cpp:
(WKImageCreateCGImage):
(WKImageCreateFromCGImage):
- Shared/ContextMenuContextData.cpp:
(WebKit::ContextMenuContextData::setImage):
- Shared/RemoteLayerTree/CGDisplayListImageBufferBackend.cpp:
(WebKit::CGDisplayListImageBufferBackend::createBackendHandle const):
- Shared/RemoteLayerTree/CGDisplayListImageBufferBackend.h:
- Shared/ShareableBitmap.cpp:
(WebKit::ShareableBitmap::create):
(WebKit::ShareableBitmap::createHandle const):
(WebKit::ShareableBitmap::ShareableBitmap):
(WebKit::ShareableBitmap::data const):
(WebKit::ShareableBitmap::createShareable): Deleted.
(WebKit::ShareableBitmap::~ShareableBitmap): Deleted.
- Shared/ShareableBitmap.h:
(WebKit::ShareableBitmap::bytesPerRow const):
(WebKit::ShareableBitmap::isBackedBySharedMemory const): Deleted.
- Shared/UserData.cpp:
(WebKit::UserData::encode):
(WebKit::UserData::decode):
- Shared/WebCoreArgumentCoders.cpp:
(IPC::encodeImage):
- Shared/WebCoreArgumentCoders.h:
- Shared/WebImage.cpp:
(WebKit::WebImage::create):
(WebKit::WebImage::WebImage):
(WebKit::WebImage::size const):
(WebKit::WebImage::parameters const):
(WebKit::WebImage::context const):
(WebKit::WebImage::copyNativeImage const):
(WebKit::WebImage::bitmap const):
(WebKit::WebImage::createCairoSurface):
(WebKit::WebImage::createHandle const):
(WebKit::WebImage::~WebImage): Deleted.
- Shared/WebImage.h:
(WebKit::WebImage::bitmap): Deleted.
(WebKit::WebImage::bitmap const): Deleted.
- Shared/cairo/ShareableBitmapCairo.cpp:
(WebKit::ShareableBitmap::createPersistentCairoSurface):
- Shared/gtk/ArgumentCodersGtk.cpp:
(IPC::encodeImage):
- UIProcess/API/glib/WebKitWebView.cpp:
(webKitWebViewDidReceiveSnapshot):
- UIProcess/Cocoa/WebPageProxyCocoa.mm:
(WebKit::convertPlatformImageToBitmap):
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::didGetImageForFindMatch):
- UIProcess/WebPageProxy.h:
- UIProcess/WebPageProxy.messages.in:
- UIProcess/mac/WKTextFinderClient.mm:
(-[WKTextFinderClient didGetImageForMatchResult:]):
- WebProcess/Automation/WebAutomationSessionProxy.cpp:
(WebKit::WebAutomationSessionProxy::takeScreenshot):
- WebProcess/GPU/graphics/ImageBufferBackendHandle.h:
- WebProcess/GPU/graphics/ImageBufferBackendHandleSharing.h:
(WebKit::ImageBufferBackendHandleSharing::bitmap const):
- WebProcess/GPU/graphics/ImageBufferShareableBitmapBackend.cpp:
(WebKit::ImageBufferShareableBitmapBackend::create):
(WebKit::ImageBufferShareableBitmapBackend::ImageBufferShareableBitmapBackend):
(WebKit::ImageBufferShareableBitmapBackend::createBackendHandle const):
(WebKit::ImageBufferShareableBitmapBackend::createCairoSurface):
- WebProcess/GPU/graphics/ImageBufferShareableBitmapBackend.h:
- WebProcess/GPU/graphics/RemoteResourceCacheProxy.cpp:
(WebKit::createShareableBitmapFromNativeImage):
- WebProcess/GPU/graphics/cocoa/ImageBufferRemoteIOSurfaceBackend.cpp:
(WebKit::ImageBufferRemoteIOSurfaceBackend::createBackendHandle const):
- WebProcess/GPU/graphics/cocoa/ImageBufferRemoteIOSurfaceBackend.h:
- WebProcess/GPU/graphics/cocoa/ImageBufferShareableMappedIOSurfaceBackend.cpp:
(WebKit::ImageBufferShareableMappedIOSurfaceBackend::createBackendHandle const):
- WebProcess/GPU/graphics/cocoa/ImageBufferShareableMappedIOSurfaceBackend.h:
- WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInNodeHandle.mm:
(-[WKWebProcessPlugInNodeHandle renderedImageWithOptions:width:]):
- WebProcess/InjectedBundle/DOM/InjectedBundleNodeHandle.cpp:
(WebKit::imageForRect):
- WebProcess/InjectedBundle/DOM/InjectedBundleRangeHandle.cpp:
(WebKit::InjectedBundleRangeHandle::renderedImage):
- WebProcess/InjectedBundle/InjectedBundleHitTestResult.cpp:
(WebKit::InjectedBundleHitTestResult::image const):
- WebProcess/Plugins/PDF/PDFPlugin.mm:
(WebKit::PDFPlugin::snapshot):
- WebProcess/WebCoreSupport/ShareableBitmapUtilities.cpp:
(WebKit::createShareableBitmap):
- WebProcess/WebCoreSupport/WebChromeClient.cpp:
(WebKit::WebChromeClient::createImageBuffer const):
- WebProcess/WebCoreSupport/gtk/WebDragClientGtk.cpp:
(WebKit::convertCairoSurfaceToShareableBitmap):
- WebProcess/WebCoreSupport/mac/WebDragClientMac.mm:
(WebKit::convertDragImageToBitmap):
- WebProcess/WebCoreSupport/win/WebPopupMenuWin.cpp:
(WebKit::WebPopupMenu::setUpPlatformData):
- WebProcess/WebPage/CoordinatedGraphics/DrawingAreaCoordinatedGraphics.cpp:
(WebKit::DrawingAreaCoordinatedGraphics::display):
- WebProcess/WebPage/FindController.cpp:
(WebKit::FindController::getImageForFindMatch):
- WebProcess/WebPage/WebFrame.cpp:
(WebKit::WebFrame::createSelectionSnapshot const):
- WebProcess/WebPage/WebFrame.h:
- WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::takeSnapshot):
(WebKit::snapshotColorSpace):
(WebKit::WebPage::snapshotAtSize):
(WebKit::WebPage::snapshotNode):
(WebKit::WebPage::drawRectToImage):
(WebKit::snapshotOptionsToBitmapConfiguration): Deleted.
- WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::shareableBitmapSnapshotForNode):
- WebProcess/WebPage/mac/WebPageMac.mm:
(WebKit::WebPage::setTopOverhangImage):
(WebKit::WebPage::setBottomOverhangImage):
- WebProcess/WebProcess.cpp:
(WebKit::WebProcess::shouldUseRemoteRenderingFor):
- 12:59 AM Changeset in webkit [293569] by
-
- 2 edits in trunk/Source/WebCore
Use more smart pointers in Element.cpp
https://bugs.webkit.org/show_bug.cgi?id=239836
Patch by Alex Christensen <achristensen@webkit.org> on 2022-04-28
Reviewed by Chris Dumez.
- dom/Element.cpp:
(WebCore::Element::setScrollLeft):
(WebCore::Element::setScrollTop):
- 12:38 AM Changeset in webkit [293568] by
-
- 3 edits in trunk/Tools
test-webkitperl outputs errors about uninitialized $platform variable
https://bugs.webkit.org/show_bug.cgi?id=239762
Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2022-04-28
Reviewed by Alexey Proskuryakov.
Make filter-build-webkit a module that exports the tested functions.
Avoid running filter-webkit-build main code if the code is being imported
as a module.
- Scripts/filter-build-webkit:
(main):
(shouldIgnoreLine):
- Scripts/webkitperl/filter-build-webkit_unittest/shouldIgnoreLine_unittests.pl:
- 12:18 AM Changeset in webkit [293567] by
-
- 16 edits1 copy5 adds in trunk
IPC testing API should have the ability to test IPC::Connection send and receive through IPC::Connection
https://bugs.webkit.org/show_bug.cgi?id=239495
Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2022-04-28
Reviewed by Darin Adler.
Source/WebKit:
Add the testing interfaces to be able to send IPC::Connection instances
to other processes.
Add the testing interfaces to be able to send messages through arbitrary
IPC::Connection instances.
Test: ipc/create-connection-and-send-async.html
- CMakeLists.txt:
- DerivedSources-input.xcfilelist:
- DerivedSources-output.xcfilelist:
- DerivedSources.make:
- Platform/IPC/Connection.h:
(IPC::Connection::waitForMessageForTesting):
- Scripts/webkit/messages.py:
(types_that_cannot_be_forward_declared):
- Shared/IPCConnectionTester.cpp: Added.
(WebKit::asIdentifier):
(WebKit::IPCConnectionTester::create):
(WebKit::IPCConnectionTester::IPCConnectionTester):
(WebKit::IPCConnectionTester::initialize):
(WebKit::IPCConnectionTester::stopListeningForIPC):
(WebKit::IPCConnectionTester::sendAsyncMessages):
(WebKit::IPCConnectionTester::didClose):
(WebKit::IPCConnectionTester::didReceiveInvalidMessage):
(WebKit::IPCConnectionTester::asyncMessage):
(WebKit::IPCConnectionTester::syncMessage):
- Shared/IPCConnectionTester.h: Copied from Source/WebKit/Shared/IPCTester.h.
- Shared/IPCConnectionTester.messages.in: Copied from Source/WebKit/Shared/IPCTester.messages.in.
- Shared/IPCConnectionTesterIdentifier.h: Added.
- Shared/IPCTester.cpp:
(WebKit::IPCTester::createConnectionTester):
(WebKit::IPCTester::createConnectionTesterAndSendAsyncMessages):
(WebKit::IPCTester::releaseConnectionTester):
- Shared/IPCTester.h:
- Shared/IPCTester.messages.in:
- Sources.txt:
- WebKit.xcodeproj/project.pbxproj:
- WebProcess/WebPage/IPCTestingAPI.cpp:
(WebKit::IPCTestingAPI::JSIPCAttachment::create):
(WebKit::IPCTestingAPI::JSIPCAttachment::encode const):
(WebKit::IPCTestingAPI::JSIPCAttachment::JSIPCAttachment):
(WebKit::IPCTestingAPI::JSIPCConnection::create):
(WebKit::IPCTestingAPI::JSIPCConnection::JSIPCConnection):
(WebKit::IPCTestingAPI::createTypeError):
(WebKit::IPCTestingAPI::convertToUint64):
(WebKit::IPCTestingAPI::sendMessageWithJSArguments):
(WebKit::IPCTestingAPI::extractSyncIPCMessageInfo):
(WebKit::IPCTestingAPI::sendSyncMessageWithJSArguments):
(WebKit::IPCTestingAPI::waitForMessageWithJSArguments):
(WebKit::IPCTestingAPI::JSIPCSemaphore::createJSWrapper):
(WebKit::IPCTestingAPI::JSIPCSemaphore::wrapperClass):
(WebKit::IPCTestingAPI::JSIPCSemaphore::unwrap):
(WebKit::IPCTestingAPI::JSIPCSemaphore::toWrapped):
(WebKit::IPCTestingAPI::JSIPCSemaphore::initialize):
(WebKit::IPCTestingAPI::JSIPCSemaphore::finalize):
(WebKit::IPCTestingAPI::JSIPCSemaphore::staticFunctions):
(WebKit::IPCTestingAPI::JSIPCAttachment::createJSWrapper):
(WebKit::IPCTestingAPI::JSIPCAttachment::wrapperClass):
(WebKit::IPCTestingAPI::JSIPCAttachment::unwrap):
(WebKit::IPCTestingAPI::JSIPCAttachment::toWrapped):
(WebKit::IPCTestingAPI::JSIPCAttachment::initialize):
(WebKit::IPCTestingAPI::JSIPCAttachment::finalize):
(WebKit::IPCTestingAPI::JSIPCAttachment::staticFunctions):
(WebKit::IPCTestingAPI::JSIPCConnection::createJSWrapper):
(WebKit::IPCTestingAPI::JSIPCConnection::wrapperClass):
(WebKit::IPCTestingAPI::JSIPCConnection::unwrap):
(WebKit::IPCTestingAPI::JSIPCConnection::toWrapped):
(WebKit::IPCTestingAPI::JSIPCConnection::initialize):
(WebKit::IPCTestingAPI::JSIPCConnection::finalize):
(WebKit::IPCTestingAPI::JSIPCConnection::didReceiveMessage):
(WebKit::IPCTestingAPI::JSIPCConnection::didReceiveSyncMessage):
(WebKit::IPCTestingAPI::JSIPCConnection::didClose):
(WebKit::IPCTestingAPI::JSIPCConnection::didReceiveInvalidMessage):
(WebKit::IPCTestingAPI::JSIPCConnection::staticFunctions):
(WebKit::IPCTestingAPI::JSIPCConnection::open):
(WebKit::IPCTestingAPI::JSIPCConnection::invalidate):
(WebKit::IPCTestingAPI::JSIPCConnection::sendMessage):
(WebKit::IPCTestingAPI::JSIPCConnection::sendSyncMessage):
(WebKit::IPCTestingAPI::JSIPCConnection::waitForMessage):
(WebKit::IPCTestingAPI::JSIPCStreamClientConnection::prepareToSendOutOfStreamMessage):
(WebKit::IPCTestingAPI::JSIPC::staticFunctions):
(WebKit::IPCTestingAPI::encodeFrameInfoData):
(WebKit::IPCTestingAPI::encodeAttachment):
(WebKit::IPCTestingAPI::VectorEncodeHelper::encode const):
(WebKit::IPCTestingAPI::encodeArrayArgument):
(WebKit::IPCTestingAPI::encodeArgument):
(WebKit::IPCTestingAPI::JSIPC::sendMessage):
(WebKit::IPCTestingAPI::JSIPC::waitForMessage):
(WebKit::IPCTestingAPI::JSIPC::sendSyncMessage):
(WebKit::IPCTestingAPI::JSIPC::createConnectionPair):
Tools:
- TestWebKitAPI/Tests/WebKitCocoa/IPCTestingAPI.mm:
(TEST):
Change two tests to pass "IPC" object as the value of FrameInfoData. This way the argument encode functions
do not need to take the JSIPC argument.
LayoutTests:
- ipc/create-connection-and-send-async.html: Added.