Timeline
Jun 3, 2021:
- 11:35 PM Changeset in webkit [278449] by
-
- 4 edits in trunk/Source/WebKit
Make WebIDBServer use WorkQueue instead of Thread
https://bugs.webkit.org/show_bug.cgi?id=226589
Reviewed by Chris Dumez.
This matches other storage manager classes and makes management of thread lifetime much easier. We used to
destroy WebIDBServer aggressively (when there is no connection or task left) to ensure thread of WebIDBServer
does not stay around idly, and that led us to create new WebIDBServer for new task right after destroying
WebIDBServer and before databases are properly closed in some cases, which can caused issues like database is
locked during new task. With WorkQueue, we don't need to manage the threads, and we can close WebIDBServer
when session is destroyed.
- NetworkProcess/IndexedDB/WebIDBServer.cpp:
(WebKit::WebIDBServer::create):
(WebKit::WebIDBServer::WebIDBServer):
(WebKit::WebIDBServer::~WebIDBServer):
(WebKit::WebIDBServer::getOrigins):
(WebKit::WebIDBServer::closeAndDeleteDatabasesModifiedSince):
(WebKit::WebIDBServer::closeAndDeleteDatabasesForOrigins):
(WebKit::WebIDBServer::renameOrigin):
(WebKit::WebIDBServer::addConnection):
(WebKit::WebIDBServer::removeConnection):
(WebKit::WebIDBServer::postTask):
(WebKit::WebIDBServer::postTaskReply):
(WebKit::WebIDBServer::close):
(WebKit::m_closeCallback): Deleted.
(WebKit::WebIDBServer::dispatchToThread): Deleted.
(WebKit::WebIDBServer::tryClose): Deleted.
- NetworkProcess/IndexedDB/WebIDBServer.h:
- NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::didClose):
(WebKit::NetworkProcess::destroySession):
(WebKit::NetworkProcess::createWebIDBServer):
- 9:16 PM Changeset in webkit [278448] by
-
- 5 edits in trunk/Source/WebCore
fast/dom/Window/property-access-on-cached-window-after-frame-removed.html (layout-test) may crash
https://bugs.webkit.org/show_bug.cgi?id=226612
rdar://78846264
Reviewed by Eric Carlson.
It is possible under some circumstances for a MediaSession to be constructed
when no page or frame exists (such as when we move in/out bfcache).
The MediaSession constructor incorrectly only created the MediaSessionCoordinatorPrivate
if a Page and Frame existed.
To avoid any ambiguities on when MediaSession::m_coordinator could be set, we
make this member a const Ref<>.
Test is covered by fast/dom/Window/property-access-on-cached-window-after-frame-removed.html
- Modules/mediasession/MediaSession.cpp:
(WebCore::MediaSession::MediaSession): Create MediaSessionCoordinatorPrivate in initializer list.
(WebCore::MediaSession::suspend): Remove unnecessary null check
(WebCore::MediaSession::stop): Remove unnecessary null check
- Modules/mediasession/MediaSession.h: Make m_coordinator a const Ref<>
(WebCore::MediaSession::coordinator const):
- Modules/mediasession/MediaSessionCoordinator.cpp:
(WebCore::MediaSessionCoordinator::create): Remove MediaSessionCoordinatorPrivate argument to constructor.
(WebCore::MediaSessionCoordinator::MediaSessionCoordinator):
- Modules/mediasession/MediaSessionCoordinator.h:
- 8:45 PM Changeset in webkit [278447] by
-
- 14 edits in trunk/Source/bmalloc
2021-06-03 Michael Saboff <msaboff@apple.com>
Unreviewed, rolling out r278278.
https://bugs.webkit.org/show_bug.cgi?id=226237
Made some JSC mini mode and other tests flakey.
Reverted changeset:
[bmalloc] Make adaptive scavenging more precise
https://bugs.webkit.org/show_bug.cgi?id=226237
- bmalloc/BPlatform.h:
- bmalloc/Heap.cpp: (bmalloc::Heap::decommitLargeRange): (bmalloc::Heap::scavenge): (bmalloc::Heap::scavengeToHighWatermark): (bmalloc::Heap::allocateSmallChunk): (bmalloc::Heap::deallocateSmallChunk): (bmalloc::Heap::allocateSmallPage): (bmalloc::Heap::splitAndAllocate): (bmalloc::Heap::allocateLarge): (bmalloc::Heap::tryAllocateLargeChunk): (bmalloc::Heap::shrinkLarge): (bmalloc::Heap::deallocateLarge):
- bmalloc/Heap.h:
- bmalloc/IsoDirectory.h:
- bmalloc/IsoDirectoryInlines.h: (bmalloc::passedNumPages>::takeFirstEligible): (bmalloc::passedNumPages>::scavenge): (bmalloc::passedNumPages>::scavengeToHighWatermark):
- bmalloc/IsoHeapImpl.h:
- bmalloc/IsoHeapImplInlines.h: (bmalloc::IsoHeapImpl<Config>::scavengeToHighWatermark):
- bmalloc/IsoSharedHeapInlines.h: (bmalloc::IsoSharedHeap::allocateSlow):
- bmalloc/LargeMap.cpp: (bmalloc::LargeMap::add):
- bmalloc/LargeRange.h: (bmalloc::LargeRange::LargeRange): (bmalloc::LargeRange::setTotalPhysicalSize): (bmalloc::merge): (bmalloc::LargeRange::split const): (bmalloc::LargeRange::physicalEnd const): Deleted. (bmalloc::LargeRange::setPhysicalEnd): Deleted. (bmalloc::LargeRange::clearPhysicalEnd): Deleted.
- bmalloc/Scavenger.cpp: (bmalloc::Scavenger::Scavenger): (bmalloc::Scavenger::didStartGrowing): (bmalloc::Scavenger::scheduleIfUnderMemoryPressure): (bmalloc::Scavenger::schedule): (bmalloc::Scavenger::timeSinceLastPartialScavenge): (bmalloc::Scavenger::scavenge): (bmalloc::Scavenger::partialScavenge): (bmalloc::Scavenger::threadRunLoop):
- bmalloc/Scavenger.h:
- bmalloc/SmallPage.h:
- 8:42 PM Changeset in webkit [278446] by
-
- 2 edits in trunk/Tools
[MotionMark] Controller.filterOutOutliers() sorts the frameLengths array incorrectly
https://bugs.webkit.org/show_bug.cgi?id=226605
<rdar://77350238>
Reviewed by Simon Fraser.
Update MotionMark 1.1 to use the version r278436.
- Scripts/webkitpy/benchmark_runner/data/plans/motionmark1.1.plan:
- 8:10 PM Changeset in webkit [278445] by
-
- 54 edits2 moves3 adds in trunk
[JSC] Implement JIT ICs for InByVal
https://bugs.webkit.org/show_bug.cgi?id=226563
Reviewed by Saam Barati.
JSTests:
- microbenchmarks/in-by-val-int32.js: Added.
- microbenchmarks/in-by-val-string-index.js: Added.
- microbenchmarks/in-by-val-symbol.js: Added.
Source/JavaScriptCore:
Until now, InByVal has had few optimizations implemented:
DFG would attempt to convert string index lookups to InById and int32 lookups to HasIndexedProperty,
but there has been no inline caching nor any special handling for symbol lookups.
This has become a more urgent problem now, as
#x in obj(i.e. HasPrivateName / HasPrivateBrand)
will need to mimic InByVal's inline caching strategy in order to be deemed performant enough to ship.
This patch thus implements inline caching for InByVal at all JIT tiers.
The result is a night-and-day difference for symbols, a nice boost for string indices, and no change for int32s:
in-by-val-symbol 203.5572+-2.7647 19.1035+-0.7498 definitely 10.6555x faster
in-by-val-string-index 87.0368+-44.7766 45.9971+-32.0007 might be 1.8922x faster
in-by-val-int32 110.9904+-1.7109 ? 111.3431+-1.7558 ?
- JavaScriptCore.xcodeproj/project.pbxproj:
- Sources.txt:
- bytecode/CheckPrivateBrandStatus.cpp:
(JSC::CheckPrivateBrandStatus::singleIdentifier const):
- bytecode/DeleteByStatus.cpp:
(JSC::DeleteByStatus::singleIdentifier const):
- bytecode/GetByStatus.cpp:
(JSC::GetByStatus::singleIdentifier const):
- bytecode/ICStatusMap.h:
- bytecode/ICStatusUtils.h:
(JSC::singleIdentifierForICStatus):
- bytecode/InByIdVariant.cpp:
(JSC::InByIdVariant::InByIdVariant):
(JSC::InByIdVariant::attemptToMerge):
(JSC::InByIdVariant::dumpInContext const):
- bytecode/InByIdVariant.h:
(JSC::InByIdVariant::identifier const):
(JSC::InByIdVariant::overlaps):
- bytecode/InByStatus.cpp: Renamed from Source/JavaScriptCore/bytecode/InByIdStatus.cpp.
(JSC::InByStatus::appendVariant):
(JSC::InByStatus::shrinkToFit):
(JSC::InByStatus::computeFor):
(JSC::InByStatus::computeForStubInfo):
(JSC::InByStatus::computeForStubInfoWithoutExitSiteFeedback):
(JSC::InByStatus::merge):
(JSC::InByStatus::filter):
(JSC::InByStatus::markIfCheap):
(JSC::InByStatus::finalize):
(JSC::InByStatus::singleIdentifier const):
(JSC::InByStatus::dump const):
- bytecode/InByStatus.h: Renamed from Source/JavaScriptCore/bytecode/InByIdStatus.h.
- bytecode/RecordedStatuses.cpp:
(JSC::RecordedStatuses::addInByStatus): Renamed from addInByIdStatus.
- bytecode/RecordedStatuses.h:
- bytecode/SetPrivateBrandStatus.cpp:
(JSC::SetPrivateBrandStatus::singleIdentifier const):
- bytecode/StructureStubInfo.cpp:
(JSC::StructureStubInfo::reset):
- bytecode/StructureStubInfo.h:
- dfg/DFGAbstractInterpreterInlines.h:
(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):
(JSC::DFG::AbstractInterpreter<AbstractStateType>::filterICStatus):
- dfg/DFGArgumentsEliminationPhase.cpp:
- dfg/DFGByteCodeParser.cpp:
(JSC::DFG::ByteCodeParser::handleInById):
(JSC::DFG::ByteCodeParser::parseBlock):
- dfg/DFGClobberize.h:
(JSC::DFG::clobberize):
- dfg/DFGClobbersExitState.cpp:
(JSC::DFG::clobbersExitState):
- dfg/DFGDoesGC.cpp:
(JSC::DFG::doesGC):
- dfg/DFGFixupPhase.cpp:
(JSC::DFG::FixupPhase::fixupNode):
- dfg/DFGGraph.cpp:
(JSC::DFG::Graph::dump):
- dfg/DFGJITCompiler.cpp:
(JSC::DFG::JITCompiler::link):
- dfg/DFGJITCompiler.h:
(JSC::DFG::JITCompiler::addInByVal):
- dfg/DFGMayExit.cpp:
- dfg/DFGNode.h:
(JSC::DFG::Node::hasInByStatus): Renamed from hasInByIdStatus.
(JSC::DFG::Node::inByStatus): Renamed from inByIdStatus.
- dfg/DFGNodeType.h:
- dfg/DFGObjectAllocationSinkingPhase.cpp:
- dfg/DFGPredictionPropagationPhase.cpp:
- dfg/DFGSafeToExecute.h:
(JSC::DFG::safeToExecute):
- dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::compileInByVal):
- dfg/DFGSpeculativeJIT32_64.cpp:
(JSC::DFG::SpeculativeJIT::compile):
- dfg/DFGSpeculativeJIT64.cpp:
(JSC::DFG::SpeculativeJIT::compile):
- dfg/DFGVarargsForwardingPhase.cpp:
- ftl/FTLCapabilities.cpp:
(JSC::FTL::canCompile):
- ftl/FTLLowerDFGToB3.cpp:
(JSC::FTL::DFG::LowerDFGToB3::compileNode):
(JSC::FTL::DFG::LowerDFGToB3::compileInBy):
(JSC::FTL::DFG::LowerDFGToB3::compileInById):
(JSC::FTL::DFG::LowerDFGToB3::compileInByVal):
- jit/ICStats.h:
- jit/JIT.cpp:
(JSC::JIT::privateCompileMainPass):
(JSC::JIT::privateCompileSlowCases):
(JSC::JIT::link):
- jit/JIT.h:
- jit/JITInlineCacheGenerator.cpp:
(JSC::JITInByValGenerator::JITInByValGenerator):
(JSC::JITInByValGenerator::generateFastPath):
(JSC::JITInByValGenerator::finalize):
(JSC::JITInByIdGenerator::JITInByIdGenerator):
- jit/JITInlineCacheGenerator.h:
(JSC::JITDelByIdGenerator::slowPathJump const):
(JSC::JITInByValGenerator::JITInByValGenerator):
(JSC::JITInByValGenerator::slowPathJump const):
- jit/JITOperations.cpp:
(JSC::JSC_DEFINE_JIT_OPERATION):
- jit/JITOperations.h:
- jit/JITPropertyAccess.cpp:
(JSC::JIT::emit_op_in_by_val):
(JSC::JIT::emitSlow_op_in_by_val):
- jit/JITPropertyAccess32_64.cpp:
(JSC::JIT::emit_op_in_by_val):
(JSC::JIT::emitSlow_op_in_by_val):
- jit/Repatch.cpp:
(JSC::tryCacheInBy): Renamed from tryCacheInByID.
(JSC::repatchInBy): Renamed from repatchInByID.
(JSC::resetInBy): Renamed from resetInByID.
- jit/Repatch.h:
- llint/LLIntSlowPaths.cpp:
(JSC::LLInt::LLINT_SLOW_PATH_DECL):
- llint/LLIntSlowPaths.h:
- llint/LowLevelInterpreter.asm:
- runtime/CommonSlowPaths.cpp:
- runtime/CommonSlowPaths.h:
- 7:20 PM Changeset in webkit [278444] by
-
- 4 edits in trunk/Tools
Weak external symbols found when building with Release+Coverage configuration
<https://webkit.org/b/226562>
<rdar://problem/78765608>
Reviewed by Jonathan Bedard.
- Scripts/check-for-weak-vtables-and-externals:
- Ignore weak symbols from llvm when building with coverage enabled. This fixes the build.
- Scripts/webkitdirs.pm:
(XcodeOptions):
- Switch to using XcodeCoverageSupportOptions() so
makeandbuild-webkitboth use the same configuration.
(XcodeCoverageSupportOptions):
- Remove old Xcode variables from 2008 in favor of
passing
-xcconfig Tools/coverage/coverage.xcconfig. - coverage/coverage.xcconfig:
(OTHER_CPLUSPLUSFLAGS):
- Remove OTHER_CPLUSPLUSFLAGS since this just caused duplicate command-line switches to be used when compiling C++ sources.
- 7:03 PM Changeset in webkit [278443] by
-
- 4 edits2 adds in trunk
Crack in hero text on https://www.apple.com/mac-mini/
https://bugs.webkit.org/show_bug.cgi?id=226610
<rdar://71246655>
Reviewed by Simon Fraser.
Source/WebCore:
FillBox::Text's mask rect needs pixel snapping so that we can position/size it properly on non-1x screens.
Test: fast/clip/hidpi-background-clip-with-text-fill-color.html
- rendering/RenderBoxModelObject.cpp:
(WebCore::RenderBoxModelObject::paintMaskForTextFillBox):
(WebCore::RenderBoxModelObject::paintFillLayerExtended):
- rendering/RenderBoxModelObject.h:
LayoutTests:
- fast/clip/hidpi-background-clip-with-text-fill-color-expected.html: Added.
- fast/clip/hidpi-background-clip-with-text-fill-color.html: Added.
- 6:53 PM Changeset in webkit [278442] by
-
- 4 edits in trunk/Source/WebKit
stopMakingViewBlankDueToLackOfRenderingUpdate logging shows even if we never made the view blank
https://bugs.webkit.org/show_bug.cgi?id=226616
Reviewed by Tim Horton.
stopMakingViewBlankDueToLackOfRenderingUpdate logging was showing even if we never made the view blank.
This was confusing so this fix makes the logging conditional.
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::didUpdateRenderingAfterCommittingLoad):
(WebKit::WebPageProxy::stopMakingViewBlankDueToLackOfRenderingUpdate):
(WebKit::WebPageProxy::makeViewBlankIfUnpaintedSinceLastLoadCommit):
- UIProcess/WebPageProxy.h:
- 6:49 PM Changeset in webkit [278441] by
-
- 2 edits in trunk/Source/WebKit
Fix thread safety issues in [WKShareSheet presentWithParameters]
https://bugs.webkit.org/show_bug.cgi?id=226611
<rdar://77736001>
Reviewed by Ryosuke Niwa.
The code in [WKShareSheet presentWithParameters] was passing WebCore::RawFile objects to another thread.
This wasn't safe since WebCore::RawFile contains a WTF::String and a SharedBuffer, both of which are not
thread safe. Fix this by creating an isolated copy of the fileName String and converting the SharedBuffer
to a NSData before passing them to the background thread.
Also rewrite the code from ObjC to C++ because I felt it was clearer and less error-prone.
- UIProcess/Cocoa/WKShareSheet.mm:
(appendFilesAsShareableURLs):
(-[WKShareSheet presentWithParameters:inRect:completionHandler:]):
- 6:30 PM Changeset in webkit [278440] by
-
- 8 edits in branches/safari-612.1.15.1-branch/Source
Versioning.
WebKit-7612.1.15.1.15
- 5:43 PM Changeset in webkit [278439] by
-
- 4 edits in trunk/Source/WebCore
REGRESSION(r278336): fast/dom/Window/property-access-on-cached-window-after-frame-removed.html (layout-test) is a constant crash
https://bugs.webkit.org/show_bug.cgi?id=226570
rdar://78784709
Reviewed by Eric Carlson.
Now that the coordinator attribute is no longer optional following bug 226328, it can
be iterated while in closed state. Check that the MediaSessionCoordinatorPrivate is set.
Fix crash in existing test.
Fly-by fixes: trailing whitespaces and make header declaration conditional.
- Modules/mediasession/MediaSession.h:
- Modules/mediasession/MediaSessionCoordinator.h:
(WebCore::MediaSessionCoordinator::identifier const): Add nullptr check, return empty String if so.
- Modules/mediasession/MediaSessionCoordinator.idl: Remove trailing whitespace
- 5:41 PM Changeset in webkit [278438] by
-
- 3 edits1 add in trunk
Fix an ASSERT in objectPrototypeHasOwnProperty() to account for TerminationException.
https://bugs.webkit.org/show_bug.cgi?id=226609
rdar://78465046
Reviewed by Robin Morisset.
JSTests:
- stress/termination-exception-in-objectPrototypeHasOwnProperty.js: Added.
Source/JavaScriptCore:
- runtime/ObjectPrototype.cpp:
(JSC::objectPrototypeHasOwnProperty):
- 5:35 PM Changeset in webkit [278437] by
-
- 4 edits in trunk/Source/WebCore
[Payment Request] allow additional line items and/or an override total to be specified in
ApplePayModifier
https://bugs.webkit.org/show_bug.cgi?id=226597
<rdar://problem/78835065>
Reviewed by Wenson Hsieh.
Instead of merging properties of the first applicable
PaymentDetailsModifier(or more
specifically the relatedApplePayModifierwith only thetotalline item, addtotal
andadditionalLineItemsproperties toApplePayModifierthat areApplePayLineItem.
- Modules/applepay/paymentrequest/ApplePayModifier.idl:
- Modules/applepay/paymentrequest/ApplePayModifier.h:
Drive-by: Rename
additionalShippingOptionstoadditionalShippingMethodsto emphasize
that the values are
ApplePayShippingMethodinstead ofPaymentShippingOption.
- Modules/applepay/paymentrequest/ApplePayPaymentHandler.cpp:
(WebCore::ApplePayPaymentHandler::computeShippingMethods const):
(WebCore::ApplePayPaymentHandler::computeTotalAndLineItems const):
- 5:31 PM Changeset in webkit [278436] by
-
- 2 edits in trunk/PerformanceTests
[MotionMark] Controller.filterOutOutliers() sorts the frameLengths array incorrectly
https://bugs.webkit.org/show_bug.cgi?id=226605
Reviewed by Myles C. Maxfield.
Controller.filterOutOutliers must pass a compare function to Array.sort()
because it filters an array of numbers.
- MotionMark/tests/resources/main.js:
(filterOutOutliers):
- 5:20 PM Changeset in webkit [278435] by
-
- 1 copy in tags/Safari-611.3.6.1.5
Tag Safari-611.3.6.1.5.
- 5:19 PM Changeset in webkit [278434] by
-
- 3 edits1 add in trunk
[JSC] Make $vm's accessor test functions robust against primitive |this|
https://bugs.webkit.org/show_bug.cgi?id=226591
Reviewed by Saam Barati.
JSTests:
- stress/test-static-accessor-on-primitive.js: Added.
(shouldThrow):
Source/JavaScriptCore:
These functions are testing-purpose, and they are not robust against passing primitive as |this|.
This patch makes them robust so that we throw an error instead of crash.
- tools/JSDollarVM.cpp:
- 5:14 PM Changeset in webkit [278433] by
-
- 2 edits in branches/safari-611.3.6.1-branch/Source/WTF
Cherry-pick r278431. rdar://problem/78843971
Unreviewed build fix after r277881.
Fix warning about unused function.
- wtf/cocoa/FileSystemCocoa.mm:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@278431 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 5:06 PM Changeset in webkit [278432] by
-
- 8 edits in branches/safari-611.3.6.1-branch/Source
Versioning.
WebKit-7611.3.6.1.5
- 4:45 PM Changeset in webkit [278431] by
-
- 2 edits in trunk/Source/WTF
Unreviewed build fix after r277881.
Fix warning about unused function.
- wtf/cocoa/FileSystemCocoa.mm:
- 4:44 PM Changeset in webkit [278430] by
-
- 3 edits in trunk/Source/WebKit
Add a way to specify origin and destination of app highlight
https://bugs.webkit.org/show_bug.cgi?id=226607
Patch by Matt Mokary <mmokary@apple.com> on 2021-06-03
Reviewed by Megan Gardner.
Expose a method for adding app highlights which allows the caller to specify origin and destination of the new
highlight. Update the existing method, which specifies originatedInApp: true, newGroup: false, to use this new
method.
- UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _addAppHighlight]):
(-[WKWebView _addAppHighlightInNewGroup:originatedInApp:]):
- UIProcess/API/Cocoa/WKWebViewPrivate.h:
- 4:39 PM Changeset in webkit [278429] by
-
- 5 edits in trunk
[WPE] position:sticky content is not correctly offset on async scrolled overflow layers with an RTL vertical scrollbar
https://bugs.webkit.org/show_bug.cgi?id=226327
Reviewed by Darin Adler.
Source/WebCore:
Make sure to respect the origin of sticky positioning nodes'
constraining rect.
No new tests, covered by existing tests.
- page/scrolling/cocoa/ScrollingTreeStickyNode.mm:
(WebCore::ScrollingTreeStickyNode::computeLayerPosition const):
- page/scrolling/nicosia/ScrollingTreeStickyNode.cpp:
(WebCore::ScrollingTreeStickyNode::computeLayerPosition const):
LayoutTests:
Some sticky-positioning RTL related tests now pass.
- platform/wpe/TestExpectations:
- 4:37 PM Changeset in webkit [278428] by
-
- 4 edits2 adds in trunk
REGRESSION (Safari 14): Menu items jump around on codelearn.cat
https://bugs.webkit.org/show_bug.cgi?id=226608
<rdar://78636003>
Reviewed by Alan Bujtas.
Source/WebCore:
This site changes overflow style dynamically on a stacking-context layer which
has an existing child compositing layer, and the layer has an offset from its
renderer due to the box-shadow.
When this happens, we need to ensure the child layers get a geometry update,
because the newly created clipping layer changes the offset for the child layers.
Test: compositing/overflow/overflow-change-reposition-descendants.html
- rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::updateAfterLayout):
- rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::layerStyleChanged):
LayoutTests:
- compositing/overflow/overflow-change-reposition-descendants-expected.html: Added.
- compositing/overflow/overflow-change-reposition-descendants.html: Added.
- 4:21 PM Changeset in webkit [278427] by
-
- 2 edits in trunk/LayoutTests
[MacOS] animations/leak-document-with-css-animation.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=226598
Unreviewed test gardening.
- platform/mac/TestExpectations:
- 3:58 PM Changeset in webkit [278426] by
-
- 21 edits in trunk/Source/WebCore
Drop generic GenericTaskQueue<T> and DeferrableTask<T> now that they are unused
https://bugs.webkit.org/show_bug.cgi?id=226601
Reviewed by Ryosuke Niwa.
Drop generic GenericTaskQueue<T> and DeferrableTask<T> now that they are unused. Rename
GenericTaskQueue<Timer> to MainThreadTaskQueue and DeferrableTask<Timer> to
MainThreadDeferrableTask as they still have some usage.
I used the "MainThread" naming for consistency with the legacy MainThreadEventQueue and
because the implementation relies on a static Timer.
- Modules/encryptedmedia/MediaKeySystemAccess.h:
- Modules/mediacapabilities/MediaCapabilities.h:
- dom/Document.h:
- dom/ScriptExecutionContext.h:
(WebCore::ScriptExecutionContext::enqueueTaskForDispatcher): Deleted.
- html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::HTMLMediaElement):
(WebCore::HTMLMediaElement::setVolume):
(WebCore::HTMLMediaElement::cancelPendingTasks):
(WebCore::HTMLMediaElement::closeTaskQueues):
(WebCore::HTMLMediaElement::enqueueTaskForDispatcher): Deleted.
- html/HTMLMediaElement.h:
- platform/DeferrableTask.h:
(WebCore::MainThreadDeferrableTask::MainThreadDeferrableTask):
(WebCore::DeferrableTask::DeferrableTask): Deleted.
(WebCore::DeferrableTask::scheduleTask): Deleted.
- platform/GenericTaskQueue.cpp:
(WebCore::MainThreadTaskDispatcher::MainThreadTaskDispatcher):
(WebCore::MainThreadTaskDispatcher::postTask):
(WebCore::MainThreadTaskDispatcher::sharedTimer):
(WebCore::MainThreadTaskDispatcher::sharedTimerFired):
(WebCore::MainThreadTaskDispatcher::pendingDispatchers):
(WebCore::MainThreadTaskDispatcher::dispatchOneTask):
(WebCore::TaskDispatcher<Timer>::TaskDispatcher): Deleted.
(WebCore::TaskDispatcher<Timer>::postTask): Deleted.
(WebCore::TaskDispatcher<Timer>::sharedTimer): Deleted.
(WebCore::TaskDispatcher<Timer>::sharedTimerFired): Deleted.
(WebCore::TaskDispatcher<Timer>::pendingDispatchers): Deleted.
(WebCore::TaskDispatcher<Timer>::dispatchOneTask): Deleted.
- platform/GenericTaskQueue.h:
(WebCore::MainThreadTaskQueue::MainThreadTaskQueue):
(WebCore::MainThreadTaskQueue::~MainThreadTaskQueue):
(WebCore::TaskDispatcher::TaskDispatcher): Deleted.
(WebCore::TaskDispatcher::postTask): Deleted.
(WebCore::GenericTaskQueueBase::hasPendingTasks const): Deleted.
(WebCore::GenericTaskQueueBase::isClosed const): Deleted.
(WebCore::GenericTaskQueueBase::close): Deleted.
(WebCore::GenericTaskQueueBase::cancelAllTasks): Deleted.
(WebCore::GenericTaskQueueBase::incrementPendingTasks): Deleted.
(WebCore::GenericTaskQueueBase::decrementPendingTasks): Deleted.
(WebCore::GenericTaskQueue::GenericTaskQueue): Deleted.
(WebCore::GenericTaskQueue::~GenericTaskQueue): Deleted.
(WebCore::GenericTaskQueue::enqueueTask): Deleted.
- platform/RemoteCommandListener.h:
- platform/audio/PlatformMediaSessionManager.h:
- platform/audio/cocoa/MediaSessionManagerCocoa.h:
(WebCore::MediaSessionManagerCocoa::taskQueue):
- platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
- platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.h:
- platform/graphics/cocoa/TextTrackRepresentationCocoa.h:
- platform/graphics/gpu/GPUBuffer.h:
- platform/graphics/gpu/GPUQueue.h:
- platform/mediastream/ios/AVAudioSessionCaptureDeviceManager.h:
- platform/mediastream/mac/CoreAudioCaptureDeviceManager.h:
- platform/mock/MediaPlaybackTargetPickerMock.h:
- 3:44 PM Changeset in webkit [278425] by
-
- 7 edits in trunk
Unreviewed, reverting r278356.
https://bugs.webkit.org/show_bug.cgi?id=226606
"Breaks jsc tests".
Reverted changeset:
"Convert small JIT pool tests into executable fuzzing"
https://bugs.webkit.org/show_bug.cgi?id=226279
https://trac.webkit.org/changeset/278356
- 3:27 PM Changeset in webkit [278424] by
-
- 3 edits in trunk/Source/JavaScriptCore
DFG should eliminate obvious store barriers
https://bugs.webkit.org/show_bug.cgi?id=226604
Reviewed by Mark Lam.
This has a couple changes:
- PutByOffset doesn't GC! So let's not say that it does.
- The store barrier clustering phase is no longer called the store barrier fencing phase in dumps.
Small Speedometer2 speed-up. Definite speed-up for Elm.
- dfg/DFGDoesGC.cpp:
(JSC::DFG::doesGC):
- dfg/DFGStoreBarrierClusteringPhase.cpp:
- 3:27 PM Changeset in webkit [278423] by
-
- 7 edits in trunk
Add MediaSessionCoordinator test to ensure that disconnection on the private side is properly handled.
https://bugs.webkit.org/show_bug.cgi?id=226568
rdar://problem/78801408
Reviewed by Eric Carlson.
Source/WebCore:
Make MediaSessionCoordinatorClient::coordinatorStateChanged pure virtual.
- Modules/mediasession/MediaSessionCoordinatorPrivate.h: Add coordinatorStateChanged method,
will forward state to RemoteMediaSessionCoordinatorProxy::coordinatorStateChanged.
Source/WebKit:
- UIProcess/API/Cocoa/WKWebViewPrivateForTesting.h:
- UIProcess/API/Cocoa/WKWebViewTesting.mm:
(-[WKWebView _createMediaSessionCoordinatorForTesting:completionHandler:]): Carry on required
change as coordinatorStateChanged is now pure virtual.
(-[WKMediaSessionCoordinatorHelper coordinatorStateChanged:]):
Tools:
- TestWebKitAPI/Tests/WebKit/MediaSessionCoordinatorTest.mm:
(-[_WKMockMediaSessionCoordinator sessionStateChanged:]): Add method to signal
change in coordinator state.
(TestWebKitAPI::TEST_F): Add test.
- 2:47 PM Changeset in webkit [278422] by
-
- 4 edits in trunk/Source/WebKit
[Hardening] Stop storing raw pointers inside WebIDBServer::m_connections
https://bugs.webkit.org/show_bug.cgi?id=226595
Reviewed by Ryosuke Niwa.
Stop storing raw pointers inside WebIDBServer::m_connections and use a WeakHashSet instead.
- NetworkProcess/IndexedDB/WebIDBServer.cpp:
(WebKit::WebIDBServer::addConnection):
(WebKit::WebIDBServer::removeConnection):
(WebKit::WebIDBServer::close):
(WebKit::WebIDBServer::tryClose):
- NetworkProcess/IndexedDB/WebIDBServer.h:
- Platform/IPC/Connection.h:
- 2:39 PM Changeset in webkit [278421] by
-
- 2 edits in trunk/Source/WebKit
Move protector earlier in NetworkProcessProxy::networkProcessDidTerminate()
https://bugs.webkit.org/show_bug.cgi?id=226594
Reviewed by Geoffrey Garen.
Move protector earlier in NetworkProcessProxy::networkProcessDidTerminate() as it seems unsafe
to do some of the earlier operations before protected |this|.
- UIProcess/Network/NetworkProcessProxy.cpp:
(WebKit::NetworkProcessProxy::networkProcessDidTerminate):
- 2:34 PM Changeset in webkit [278420] by
-
- 3 edits in trunk/Source/WebKit
Stop storing Ref<IPC::Connection> in RTCDataChannelRemoteManagerProxy::m_webProcessConnections
https://bugs.webkit.org/show_bug.cgi?id=226596
Reviewed by Eric Carlson.
Stop storing Ref<IPC::Connection> in RTCDataChannelRemoteManagerProxy::m_webProcessConnections.
Keeping the IPC::Connection alive always carries the chance of leaking if we fail to properly
clear the HashMap. We can simply store an IPC::Connection::UniqueID and use that ID to send the
IPC on the background thread.
- NetworkProcess/webrtc/RTCDataChannelRemoteManagerProxy.cpp:
(WebKit::RTCDataChannelRemoteManagerProxy::registerConnectionToWebProcess):
(WebKit::RTCDataChannelRemoteManagerProxy::sendData):
(WebKit::RTCDataChannelRemoteManagerProxy::close):
(WebKit::RTCDataChannelRemoteManagerProxy::changeReadyState):
(WebKit::RTCDataChannelRemoteManagerProxy::receiveData):
(WebKit::RTCDataChannelRemoteManagerProxy::detectError):
(WebKit::RTCDataChannelRemoteManagerProxy::bufferedAmountIsDecreasing):
- NetworkProcess/webrtc/RTCDataChannelRemoteManagerProxy.h:
- 2:26 PM Changeset in webkit [278419] by
-
- 10 edits28 adds in trunk
Prevent background-attachment:fixed from causing slow scrolling when in a position:fixed layer
https://bugs.webkit.org/show_bug.cgi?id=226399
Reviewed by Simon Fraser.
Source/WebCore:
Tests: scrollingcoordinator/mac/fixed-backgrounds/fixed-background-slow-scrolling-1.html
scrollingcoordinator/mac/fixed-backgrounds/fixed-background-slow-scrolling-2-async.html
scrollingcoordinator/mac/fixed-backgrounds/fixed-background-slow-scrolling-2-sync.html
scrollingcoordinator/mac/fixed-backgrounds/fixed-background-slow-scrolling-3-async.html
scrollingcoordinator/mac/fixed-backgrounds/fixed-background-slow-scrolling-3-sync.html
scrollingcoordinator/mac/fixed-backgrounds/fixed-background-slow-scrolling-4.html
scrollingcoordinator/mac/fixed-backgrounds/fixed-background-slow-scrolling-5-async.html
scrollingcoordinator/mac/fixed-backgrounds/fixed-background-slow-scrolling-5-sync.html
scrollingcoordinator/mac/fixed-backgrounds/fixed-background-slow-scrolling-6.html
scrollingcoordinator/mac/fixed-backgrounds/fixed-background-slow-scrolling-7.html
scrollingcoordinator/mac/fixed-backgrounds/fixed-background-slow-scrolling-8-async.html
scrollingcoordinator/mac/fixed-backgrounds/fixed-background-slow-scrolling-8-sync.html
scrollingcoordinator/mac/fixed-backgrounds/fixed-background-slow-scrolling-9-async.html
scrollingcoordinator/mac/fixed-backgrounds/fixed-background-slow-scrolling-9-sync.html
We move responsbility for managing the HasSlowRepaintObjects
synchronous scrolling reason on the root scrolling node from
ScrollingCoordinator to RenderLayerCompositor, which is where it's
handled for all other scrolling nodes.
If a slow repaint object (i.e. a background-attachment:fixed element) is
present in a non-root async scrolling layer, then it continues to add
HasSlowRepaintObjects to the scrolling node's synchronous scrolling
reasons. But we now no longer add HasSlowRepaintObjects to the root
scrolling node's synchronous scrolling reasons if its containing async
scrolling layer "behaves as fixed", i.e. won't move while scrolling the
viewport.
- page/FrameView.cpp:
(WebCore::FrameView::addSlowRepaintObject): No longer need to inform
the ScrollingCoordinator since the RenderLayerCompositor now handles
HasSlowRepaintObjects synchronous scroling reason updates for the root.
(WebCore::FrameView::removeSlowRepaintObject): Ditto.
- page/scrolling/AsyncScrollingCoordinator.cpp:
(WebCore::AsyncScrollingCoordinator::synchronousScrollingReasons const):
- page/scrolling/AsyncScrollingCoordinator.h:
- page/scrolling/ScrollingCoordinator.cpp:
(WebCore::ScrollingCoordinator::updateSynchronousScrollingReasons):
Preserve the current value of HasSlowRepaintObjects when updating
synchronous scrolling reasons.
(WebCore::ScrollingCoordinator::shouldUpdateScrollLayerPositionSynchronously const):
(WebCore::ScrollingCoordinator::synchronousScrollingReasonsAsText const):
- page/scrolling/ScrollingCoordinator.h:
(WebCore::ScrollingCoordinator::synchronousScrollingReasons const):
(WebCore::ScrollingCoordinator::hasSynchronousScrollingReasons const):
- page/scrolling/ThreadedScrollingTree.cpp:
(WebCore::ThreadedScrollingTree::propagateSynchronousScrollingReasons):
- rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::updateSynchronousScrollingNodes):
Take responsibility for managing HasSlowRepaintObjects on the root
scroll tree node. Only add HasSlowRepaintObjects on the root if not
in a fixed position layer.
LayoutTests:
- scrollingcoordinator/mac/fixed-backgrounds/fixed-background-in-overflow-in-iframe-expected.txt:
- scrollingcoordinator/mac/fixed-backgrounds/fixed-background-slow-scrolling-1-expected.txt: Added.
- scrollingcoordinator/mac/fixed-backgrounds/fixed-background-slow-scrolling-1.html: Added.
- scrollingcoordinator/mac/fixed-backgrounds/fixed-background-slow-scrolling-2-async-expected.txt: Added.
- scrollingcoordinator/mac/fixed-backgrounds/fixed-background-slow-scrolling-2-async.html: Added.
- scrollingcoordinator/mac/fixed-backgrounds/fixed-background-slow-scrolling-2-sync-expected.txt: Added.
- scrollingcoordinator/mac/fixed-backgrounds/fixed-background-slow-scrolling-2-sync.html: Added.
- scrollingcoordinator/mac/fixed-backgrounds/fixed-background-slow-scrolling-3-async-expected.txt: Added.
- scrollingcoordinator/mac/fixed-backgrounds/fixed-background-slow-scrolling-3-async.html: Added.
- scrollingcoordinator/mac/fixed-backgrounds/fixed-background-slow-scrolling-3-sync-expected.txt: Added.
- scrollingcoordinator/mac/fixed-backgrounds/fixed-background-slow-scrolling-3-sync.html: Added.
- scrollingcoordinator/mac/fixed-backgrounds/fixed-background-slow-scrolling-4-expected.txt: Added.
- scrollingcoordinator/mac/fixed-backgrounds/fixed-background-slow-scrolling-4.html: Added.
- scrollingcoordinator/mac/fixed-backgrounds/fixed-background-slow-scrolling-5-async-expected.txt: Added.
- scrollingcoordinator/mac/fixed-backgrounds/fixed-background-slow-scrolling-5-async.html: Added.
- scrollingcoordinator/mac/fixed-backgrounds/fixed-background-slow-scrolling-5-sync-expected.txt: Added.
- scrollingcoordinator/mac/fixed-backgrounds/fixed-background-slow-scrolling-5-sync.html: Added.
- scrollingcoordinator/mac/fixed-backgrounds/fixed-background-slow-scrolling-6-expected.txt: Added.
- scrollingcoordinator/mac/fixed-backgrounds/fixed-background-slow-scrolling-6.html: Added.
- scrollingcoordinator/mac/fixed-backgrounds/fixed-background-slow-scrolling-7-expected.txt: Added.
- scrollingcoordinator/mac/fixed-backgrounds/fixed-background-slow-scrolling-7.html: Added.
- scrollingcoordinator/mac/fixed-backgrounds/fixed-background-slow-scrolling-8-async-expected.txt: Added.
- scrollingcoordinator/mac/fixed-backgrounds/fixed-background-slow-scrolling-8-async.html: Added.
- scrollingcoordinator/mac/fixed-backgrounds/fixed-background-slow-scrolling-8-sync-expected.txt: Added.
- scrollingcoordinator/mac/fixed-backgrounds/fixed-background-slow-scrolling-8-sync.html: Added.
- scrollingcoordinator/mac/fixed-backgrounds/fixed-background-slow-scrolling-9-async-expected.txt: Added.
- scrollingcoordinator/mac/fixed-backgrounds/fixed-background-slow-scrolling-9-async.html: Added.
- scrollingcoordinator/mac/fixed-backgrounds/fixed-background-slow-scrolling-9-sync-expected.txt: Added.
- scrollingcoordinator/mac/fixed-backgrounds/fixed-background-slow-scrolling-9-sync.html: Added.
- 2:00 PM Changeset in webkit [278418] by
-
- 1 copy in tags/Safari-612.1.16.2
Tag Safari-612.1.16.2.
- 1:53 PM Changeset in webkit [278417] by
-
- 3 edits in trunk/PerformanceTests
[MotionMark] Update version number of local development version of the benchmark to match the currently-being-released version
https://bugs.webkit.org/show_bug.cgi?id=226592
Reviewed by Darin Adler.
We are currently in the process of releasing MotionMark 1.2. http://browserbench.org/MotionMark1.2/
- MotionMark/about.html:
- MotionMark/resources/strings.js:
- 12:59 PM Changeset in webkit [278416] by
-
- 10 edits in trunk/Source
[Win] Remove unused GraphicsContext::shouldIncludeChildWindows()
https://bugs.webkit.org/show_bug.cgi?id=226567
Reviewed by Don Olmstead.
Source/WebCore:
It was added by r40366 (Bug 23623) for Plugins. However, the
plugin support was removed by r278265 (Bug 226410).
- platform/graphics/GraphicsContext.h:
(WebCore::GraphicsContext::shouldIncludeChildWindows const): Deleted.
- platform/graphics/cairo/GraphicsContextPlatformPrivateCairo.h:
- platform/graphics/cg/GraphicsContextPlatformPrivateCG.h:
(WebCore::GraphicsContextPlatformPrivate::GraphicsContextPlatformPrivate):
- platform/graphics/win/GraphicsContextPlatformPrivateDirect2D.h:
- platform/graphics/win/GraphicsContextWin.cpp:
(WebCore::GraphicsContext::setShouldIncludeChildWindows): Deleted.
(WebCore::GraphicsContext::shouldIncludeChildWindows const): Deleted.
Source/WebKitLegacy/win:
- WebFrame.cpp:
(WebFrame::paintDocumentRectToContext):
(WebFrame::paintScrollViewRectToContextAtPoint):
(WebFrame::spoolPages):
- WebView.cpp:
(WebView::updateBackingStore):
(WebView::paint):
(WebView::paintIntoBackingStore):
- WebView.h: Removed WindowsToPaint.
- 12:40 PM Changeset in webkit [278415] by
-
- 2 edits in trunk/Source/WebCore
Do not recalibrate camera if the settings are the same
https://bugs.webkit.org/show_bug.cgi?id=226585
Reviewed by Eric Carlson.
Make sure to not update the preset if the constraints are equal to the current settings.
Manually tested.
- platform/mediastream/RealtimeVideoCaptureSource.cpp:
(WebCore::RealtimeVideoCaptureSource::clientUpdatedSizeAndFrameRate):
- 12:40 PM Changeset in webkit [278414] by
-
- 7 edits in trunk/Source/WebKit
[macOS] Image extraction preview panel should automatically close when the web view is unparented
https://bugs.webkit.org/show_bug.cgi?id=226588
rdar://77062762
Reviewed by Tim Horton.
Refactor some logic for presenting the preview panel. See below for more details.
- UIProcess/Cocoa/WebViewImpl.mm:
(WebKit::WebViewImpl::handleProcessSwapOrExit):
(WebKit::WebViewImpl::viewDidMoveToWindow):
When the web view is removed from the view hierarchy (i.e. when the view is moved to a
nilwindow), call into
closeSharedPreviewPanelIfNecessaryto dismiss the shared preview panel if we're currently controlling its
presentation for the purposes of image extraction.
(WebKit::WebViewImpl::beginPreviewPanelControl):
(WebKit::WebViewImpl::endPreviewPanelControl):
Add more plumbing into WebPageProxy to begin and end preview panel control; this allows us to avoid having to
expose a separate method to reset WebPageProxy'sm_imageExtractionPreviewControllerand call it from
WebViewImpl.
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::didCommitLoadForFrame):
Additionally call into
closeSharedPreviewPanelIfNecessarywhen committing main frame navigation. We also
refactor a bit of logic here so that we fold several pieces of similar "reset" logic into a single if statement.
- UIProcess/WebPageProxy.h:
- UIProcess/mac/WKImageExtractionPreviewController.h:
- UIProcess/mac/WKImageExtractionPreviewController.mm:
(-[WKImageExtractionPreviewController beginControl:]):
(-[WKImageExtractionPreviewController endControl:]):
(-[WKImageExtractionPreviewController closePanelIfNecessary]):
(-[WKImageExtractionPreviewController isControlling:]):
Move logic for assigning, removing, and checking the QLPreviewPanel's
-delegateand-dataSourceinto helper
methods on WKImageExtractionPreviewController. Doing this allows us to consolidate more of the QuickLookUI-
specific logic inside WKImageExtractionPreviewController and WebPageProxy, but also (and more importantly)
prevents us from having to#import <pal/spi/mac/QuickLookMacSPI.h>insideWebPageProxyMac.mm, which results
in nullability errors when calling into-[NSApplication stopSpeaking:].
- UIProcess/mac/WebPageProxyMac.mm:
(WebKit::WebPageProxy::beginPreviewPanelControl):
(WebKit::WebPageProxy::endPreviewPanelControl):
(WebKit::WebPageProxy::closeSharedPreviewPanelIfNecessary):
- 12:32 PM Changeset in webkit [278413] by
-
- 3 edits in trunk/Source/JavaScriptCore
Web Inspector: [Cocoa]
RemoteInspectorwon't connect to a new relay if it hasn't yet failed to communicate with a previously connected relay
https://bugs.webkit.org/show_bug.cgi?id=226539
Reviewed by Devin Rousso.
RemoteInspectorcommunicates with a relay daemon running on the same device in order to send updates like new
or removed inspectable targets and receive changes to settings like automatic debugging. The relay daemon then
communicates with a client that connects for debugging. Only one relay daemon should ever be running at a time,
and its lifecycle is managed separately from JavaScriptCore.
RemoteInspector holds a RefPtr to its connection to this relay, and only clears this pointer upon a failure to
communicate over the XPC connection or a known disconnection. However, it is possible, and in some cases likely
(for example the relay restarting from a brief client disconnection and reconnection), that we can be informed
of a newly launched relay being available while still thinking we are connected to the old relay, as we have not
yet sent a message and triggered a failure in the interim period of time.
To correct this we now send a simple message any time
setupXPCConnectionIfNeededis called if we have an
existing RefPtr to a relay connection in order to verify the connection is still functional. We now also retry
to connect to a relay upon failure in order to create a new connection to the current relay.
In order to prevent entering a retry loop where every subsequent retry's failure results in another retry
forever, a flag to retry connecting is set when a call to setupXPCConnectionIfNeeded is made while we already
have a RefPtr to a relay connection. On failure if we are in this special state we will retry once to connect
but subsequent failures will not automatically reattempt a connection.
- inspector/remote/RemoteInspector.h:
- inspector/remote/cocoa/RemoteInspectorCocoa.mm:
(Inspector::RemoteInspector::stopInternal):
- Clear the retry connection flag when stopping in an orderly fashion.
(Inspector::RemoteInspector::setupXPCConnectionIfNeeded):
- Set the retry connection flag and send a simple message if we already have a relay connection in order to make
sure the connection is either still valid or is torn down properly on failure.
(Inspector::RemoteInspector::xpcConnectionFailed):
- If the retry flag is set, schedule a retry and clear the retry flag.
- 11:04 AM Changeset in webkit [278412] by
-
- 2 edits in trunk/Source/WebKit
AX: macOS WebContent can't read prefs from com.apple.Accessibility
https://bugs.webkit.org/show_bug.cgi?id=226528
Reviewed by Per Arne Vollan.
Some accessibility preferences on macOS use libAccessibility.
WebContent should process these on iOS & macOS.
- WebProcess/cocoa/WebProcessCocoa.mm:
(WebKit::setPreferenceValue):
- 10:53 AM Changeset in webkit [278411] by
-
- 4 edits6 adds in trunk
Incorrect text selection when crossing flex item boundary
https://bugs.webkit.org/show_bug.cgi?id=226518
<rdar://59487603>
Reviewed by Simon Fraser.
Source/WebCore:
Let's use the more sophisticated "which child is closer to the hit point" logic in RenderBox for the flex (and grid) content.
The rest of the RenderBlock::positionForPoint is meant to deal with BFC content where block level boxes are positioned in block direction, after each other.
Test: editing/selection/selecting-content-by-overshooting-the-container.html
- rendering/RenderBlock.cpp:
(WebCore::RenderBlock::positionForPoint):
LayoutTests:
- editing/selection/selecting-content-by-overshooting-the-container-expected.txt: Added.
- editing/selection/selecting-content-by-overshooting-the-container.html: Added.
- 10:25 AM Changeset in webkit [278410] by
-
- 12 edits in trunk
Cherry-pick webrtc fix to correctly handle audio track state in case of renegotiation
https://bugs.webkit.org/show_bug.cgi?id=226577
Reviewed by Eric Carlson.
LayoutTests/imported/w3c:
- web-platform-tests/webrtc/receiver-track-live.https-expected.txt:
Source/ThirdParty/libwebrtc:
Cherry-pick https://webrtc.googlesource.com/src/+/c335b0e63bff56ca0fbfa617dee6a644c85df164%5E%21/.
We need to do small changes to peer_connection.cc given the upstream fix is based on a newer version
which has some code moved from peer_connection.cc to rtp_transmission_manager.cc.
- Source/webrtc/pc/audio_rtp_receiver.cc:
- Source/webrtc/pc/audio_rtp_receiver.h:
- Source/webrtc/pc/peer_connection.cc:
- Source/webrtc/pc/peer_connection_rtp_unittest.cc:
- Source/webrtc/pc/remote_audio_source.cc:
- Source/webrtc/pc/remote_audio_source.h:
- Source/webrtc/pc/rtp_sender_receiver_unittest.cc:
LayoutTests:
Update test now that we have the correct behavior.
- webrtc/receiver-track-should-stay-live-even-if-receiver-is-inactive.html:
- 10:04 AM Changeset in webkit [278409] by
-
- 2 edits in trunk/Source/WebKit
StorageArea should be able to send its IPC directly from the background thread
https://bugs.webkit.org/show_bug.cgi?id=226583
Reviewed by Alex Christensen.
Update StorageArea so that it does its IPC sending straight from the storage thread, instead of
hopping to the main thread to do so.
- NetworkProcess/WebStorage/StorageArea.cpp:
(WebKit::StorageArea::clear):
(WebKit::StorageArea::dispatchEvents const):
- 8:25 AM Changeset in webkit [278408] by
-
- 2 edits1 add in trunk/Tools/buildstream
REGRESSION(r275755): [GStreamer] Crashes on surfaceless i965 platforms
https://bugs.webkit.org/show_bug.cgi?id=226581
Reviewed by Philippe Normand.
Vendor potential fix for https://gitlab.freedesktop.org/mesa/mesa/-/issues/778.
- elements/sdk/mesa.bst:
- patches/mesa/0002-i965-Prevent-invalid-framebuffer-usage.patch: Added.
- 8:23 AM Changeset in webkit [278407] by
-
- 9 edits2 deletes in trunk/Source/WebCore
Remove TrailingFloatsRootInlineBox
https://bugs.webkit.org/show_bug.cgi?id=226579
Reviewed by Sam Weinig.
Replace it with a bit in LegacyRootInlineBox.
- Sources.txt:
- WebCore.xcodeproj/project.pbxproj:
- editing/VisibleUnits.cpp:
(WebCore::previousLinePosition):
(WebCore::nextLinePosition):
- rendering/LegacyInlineBox.cpp:
(WebCore::LegacyInlineBox::logicalHeight const):
- rendering/LegacyInlineFlowBox.h:
(WebCore::LegacyInlineFlowBox::LegacyInlineFlowBox):
- rendering/LegacyLineLayout.cpp:
(WebCore::LegacyLineLayout::linkToEndLineIfNeeded):
- rendering/LegacyRootInlineBox.h:
(WebCore::LegacyRootInlineBox::isForTrailingFloats const):
(WebCore::LegacyRootInlineBox::setIsForTrailingFloats):
(WebCore::LegacyRootInlineBox::isTrailingFloatsRootInlineBox const): Deleted.
- rendering/RenderLineBoxList.cpp:
(WebCore::RenderLineBoxList::dirtyLinesFromChangedChild):
- rendering/TrailingFloatsRootInlineBox.cpp: Removed.
- rendering/TrailingFloatsRootInlineBox.h: Removed.
- 7:27 AM Changeset in webkit [278406] by
-
- 4 edits in trunk/Source/WebCore
[GStreamer] Remove dependency on glvideoflip and videoflip
https://bugs.webkit.org/show_bug.cgi?id=225456
Reviewed by Philippe Normand.
Stop using videoflip and glvideoflip to rotate the video frames inside GStreamer. These perform a copy
of the frame to perform the rotation that we can avoid if we rotate the frames ourselves when painting them.
Covered by existent tests.
- platform/graphics/gstreamer/GLVideoSinkGStreamer.cpp:
(webKitGLVideoSinkConstructed):
(webKitGLVideoSinkGetProperty):
(webkit_gl_video_sink_class_init):
- platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
(WebCore::MediaPlayerPrivateGStreamer::createGSTPlayBin):
(WebCore::MediaPlayerPrivateGStreamer::updateVideoSizeAndOrientationFromCaps):
(WebCore::MediaPlayerPrivateGStreamer::paint):
(WebCore::MediaPlayerPrivateGStreamer::createVideoSinkGL):
- platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:
- 6:39 AM Changeset in webkit [278405] by
-
- 40 edits2 moves in trunk/Source/WebCore
Rename InlineFlowBox to LegacyInlineFlowBox
https://bugs.webkit.org/show_bug.cgi?id=226569
Reviewed by Alan Bujtas.
More legacy line layout naming.
- Headers.cmake:
- Sources.txt:
- WebCore.xcodeproj/project.pbxproj:
- layout/Verification.cpp:
(WebCore::Layout::collectFlowBoxSubtree):
(WebCore::Layout::collectInlineBoxes):
- layout/formattingContexts/inline/InlineFormattingQuirks.cpp:
(WebCore::Layout::InlineFormattingQuirks::inlineLevelBoxAffectsLineBox const):
- layout/integration/LayoutIntegrationInlineContentBuilder.cpp:
(WebCore::LayoutIntegration::InlineContentBuilder::computeLineLevelVisualAdjustmentsForRuns const):
(WebCore::LayoutIntegration::InlineContentBuilder::createDisplayLines const):
- rendering/EllipsisBox.cpp:
(WebCore::EllipsisBox::EllipsisBox):
- rendering/EllipsisBox.h:
- rendering/InlineElementBox.cpp:
- rendering/InlineElementBox.h:
(WebCore::InlineElementBox::InlineElementBox):
- rendering/LegacyInlineBox.cpp:
(WebCore::LegacyInlineBox::dirtyLineBoxes):
(WebCore::LegacyInlineBox::nextLeafOnLine const):
(WebCore::LegacyInlineBox::previousLeafOnLine const):
- rendering/LegacyInlineBox.h:
(WebCore::LegacyInlineBox::parent const):
(WebCore::LegacyInlineBox::setParent):
(WebCore::LegacyInlineBox::LegacyInlineBox):
- rendering/LegacyInlineFlowBox.cpp: Renamed from Source/WebCore/rendering/InlineFlowBox.cpp.
(WebCore::LegacyInlineFlowBox::~LegacyInlineFlowBox):
(WebCore::LegacyInlineFlowBox::setHasBadChildList):
(WebCore::LegacyInlineFlowBox::getFlowSpacingLogicalWidth):
(WebCore::setHasTextDescendantsOnAncestors):
(WebCore::LegacyInlineFlowBox::addToLine):
(WebCore::LegacyInlineFlowBox::removeChild):
(WebCore::LegacyInlineFlowBox::deleteLine):
(WebCore::LegacyInlineFlowBox::removeLineBoxFromRenderObject):
(WebCore::LegacyInlineFlowBox::extractLine):
(WebCore::LegacyInlineFlowBox::extractLineBoxFromRenderObject):
(WebCore::LegacyInlineFlowBox::attachLine):
(WebCore::LegacyInlineFlowBox::attachLineBoxToRenderObject):
(WebCore::LegacyInlineFlowBox::adjustPosition):
(WebCore::isLastChildForRenderer):
(WebCore::isAncestorAndWithinBlock):
(WebCore::LegacyInlineFlowBox::determineSpacingForFlowBoxes):
(WebCore::LegacyInlineFlowBox::placeBoxesInInlineDirection):
(WebCore::LegacyInlineFlowBox::placeBoxRangeInInlineDirection):
(WebCore::LegacyInlineFlowBox::requiresIdeographicBaseline const):
(WebCore::verticalAlignApplies):
(WebCore::LegacyInlineFlowBox::adjustMaxAscentAndDescent):
(WebCore::LegacyInlineFlowBox::computeLogicalBoxHeights):
(WebCore::LegacyInlineFlowBox::placeBoxesInBlockDirection):
(WebCore::LegacyInlineFlowBox::maxLogicalBottomForTextDecorationLine const):
(WebCore::LegacyInlineFlowBox::minLogicalTopForTextDecorationLine const):
(WebCore::LegacyInlineFlowBox::flipLinesInBlockDirection):
(WebCore::LegacyInlineFlowBox::addBoxShadowVisualOverflow):
(WebCore::LegacyInlineFlowBox::addBorderOutsetVisualOverflow):
(WebCore::LegacyInlineFlowBox::addTextBoxVisualOverflow):
(WebCore::LegacyInlineFlowBox::addOutlineVisualOverflow):
(WebCore::LegacyInlineFlowBox::addReplacedChildOverflow):
(WebCore::LegacyInlineFlowBox::computeOverflow):
(WebCore::LegacyInlineFlowBox::setLayoutOverflow):
(WebCore::LegacyInlineFlowBox::setVisualOverflow):
(WebCore::LegacyInlineFlowBox::setOverflowFromLogicalRects):
(WebCore::LegacyInlineFlowBox::nodeAtPoint):
(WebCore::LegacyInlineFlowBox::paint):
(WebCore::LegacyInlineFlowBox::paintFillLayers):
(WebCore::LegacyInlineFlowBox::boxShadowCanBeAppliedToBackground const):
(WebCore::LegacyInlineFlowBox::paintFillLayer):
(WebCore::LegacyInlineFlowBox::paintBoxShadow):
(WebCore::LegacyInlineFlowBox::constrainToLineTopAndBottomIfNeeded const):
(WebCore::clipRectForNinePieceImageStrip):
(WebCore::LegacyInlineFlowBox::paintBoxDecorations):
(WebCore::LegacyInlineFlowBox::paintMask):
(WebCore::LegacyInlineFlowBox::firstLeafDescendant const):
(WebCore::LegacyInlineFlowBox::lastLeafDescendant const):
(WebCore::LegacyInlineFlowBox::selectionState):
(WebCore::LegacyInlineFlowBox::canAccommodateEllipsis const):
(WebCore::LegacyInlineFlowBox::placeEllipsisBox):
(WebCore::LegacyInlineFlowBox::clearTruncation):
(WebCore::LegacyInlineFlowBox::computeOverAnnotationAdjustment const):
(WebCore::LegacyInlineFlowBox::computeUnderAnnotationAdjustment const):
(WebCore::LegacyInlineFlowBox::collectLeafBoxesInLogicalOrder const):
(WebCore::LegacyInlineFlowBox::computeReplacedAndTextLineTopAndBottom const):
(WebCore::LegacyInlineFlowBox::boxName const):
(WebCore::LegacyInlineFlowBox::outputLineTreeAndMark const):
(WebCore::LegacyInlineFlowBox::checkConsistency const):
- rendering/LegacyInlineFlowBox.h: Renamed from Source/WebCore/rendering/InlineFlowBox.h.
(WebCore::LegacyInlineFlowBox::LegacyInlineFlowBox):
(WebCore::LegacyInlineFlowBox::renderer const):
(WebCore::LegacyInlineFlowBox::lineStyle const):
(WebCore::LegacyInlineFlowBox::prevLineBox const):
(WebCore::LegacyInlineFlowBox::nextLineBox const):
(WebCore::LegacyInlineFlowBox::setNextLineBox):
(WebCore::LegacyInlineFlowBox::setPreviousLineBox):
(WebCore::LegacyInlineFlowBox::firstChild const):
(WebCore::LegacyInlineFlowBox::lastChild const):
(WebCore::LegacyInlineFlowBox::marginBorderPaddingLogicalLeft const):
(WebCore::LegacyInlineFlowBox::marginBorderPaddingLogicalRight const):
(WebCore::LegacyInlineFlowBox::marginLogicalLeft const):
(WebCore::LegacyInlineFlowBox::marginLogicalRight const):
(WebCore::LegacyInlineFlowBox::borderLogicalLeft const):
(WebCore::LegacyInlineFlowBox::borderLogicalRight const):
(WebCore::LegacyInlineFlowBox::paddingLogicalLeft const):
(WebCore::LegacyInlineFlowBox::paddingLogicalRight const):
(WebCore::LegacyInlineFlowBox::includeLogicalLeftEdge const):
(WebCore::LegacyInlineFlowBox::includeLogicalRightEdge const):
(WebCore::LegacyInlineFlowBox::setEdges):
(WebCore::LegacyInlineFlowBox::beginPlacingBoxRangesInInlineDirection):
(WebCore::LegacyInlineFlowBox::endPlacingBoxRangesInInlineDirection):
(WebCore::LegacyInlineFlowBox::hasTextChildren const):
(WebCore::LegacyInlineFlowBox::hasTextDescendants const):
(WebCore::LegacyInlineFlowBox::hasHardLinebreak const):
(WebCore::LegacyInlineFlowBox::setHasTextChildren):
(WebCore::LegacyInlineFlowBox::setHasTextDescendants):
(WebCore::LegacyInlineFlowBox::layoutOverflowRect const):
(WebCore::LegacyInlineFlowBox::logicalTopLayoutOverflow const):
(WebCore::LegacyInlineFlowBox::logicalBottomLayoutOverflow const):
(WebCore::LegacyInlineFlowBox::logicalLayoutOverflowRect const):
(WebCore::LegacyInlineFlowBox::visualOverflowRect const):
(WebCore::LegacyInlineFlowBox::logicalLeftVisualOverflow const):
(WebCore::LegacyInlineFlowBox::logicalRightVisualOverflow const):
(WebCore::LegacyInlineFlowBox::logicalTopVisualOverflow const):
(WebCore::LegacyInlineFlowBox::logicalBottomVisualOverflow const):
(WebCore::LegacyInlineFlowBox::logicalVisualOverflowRect const):
(WebCore::LegacyInlineFlowBox::frameRectIncludingLineHeight const):
(WebCore::LegacyInlineFlowBox::logicalFrameRectIncludingLineHeight const):
(WebCore::LegacyInlineFlowBox::descendantsHaveSameLineHeightAndBaseline const):
(WebCore::LegacyInlineFlowBox::clearDescendantsHaveSameLineHeightAndBaseline):
(WebCore::LegacyInlineFlowBox::checkConsistency const):
(WebCore::LegacyInlineFlowBox::setHasBadChildList):
- rendering/LegacyLineLayout.cpp:
(WebCore::parentIsConstructedOrHaveNext):
(WebCore::LegacyLineLayout::createLineBoxes):
(WebCore::LegacyLineLayout::constructLine):
(WebCore::LegacyLineLayout::computeInlineDirectionPositionsForSegment):
- rendering/LegacyLineLayout.h:
- rendering/LegacyRootInlineBox.cpp:
(WebCore::LegacyRootInlineBox::LegacyRootInlineBox):
(WebCore::LegacyRootInlineBox::clearTruncation):
(WebCore::LegacyRootInlineBox::lineCanAccommodateEllipsis):
(WebCore::LegacyRootInlineBox::placeEllipsisBox):
(WebCore::LegacyRootInlineBox::paint):
(WebCore::LegacyRootInlineBox::nodeAtPoint):
(WebCore::LegacyRootInlineBox::adjustPosition):
(WebCore::LegacyRootInlineBox::includeFontForBox const):
(WebCore::LegacyRootInlineBox::includeGlyphsForBox const):
(WebCore::LegacyRootInlineBox::includeInitialLetterForBox const):
- rendering/LegacyRootInlineBox.h:
(WebCore::LegacyRootInlineBox::logicalTopVisualOverflow const):
(WebCore::LegacyRootInlineBox::logicalBottomVisualOverflow const):
(WebCore::LegacyRootInlineBox::logicalTopLayoutOverflow const):
(WebCore::LegacyRootInlineBox::logicalBottomLayoutOverflow const):
- rendering/RenderBlockFlow.cpp:
(WebCore::RenderBlockFlow::inlineBlockBaseline const):
- rendering/RenderBox.cpp:
(WebCore::RenderBox::containingBlockLogicalWidthForPositioned const):
(WebCore::RenderBox::containingBlockLogicalHeightForPositioned const):
(WebCore::RenderBox::computePositionedLogicalWidthUsing const):
(WebCore::RenderBox::computePositionedLogicalWidthReplaced const):
- rendering/RenderBoxModelObject.cpp:
(WebCore::RenderBoxModelObject::getBackgroundRoundedRect const):
(WebCore::RenderBoxModelObject::backgroundRoundedRectAdjustedForBleedAvoidance const):
(WebCore::RenderBoxModelObject::paintMaskForTextFillBox):
(WebCore::RenderBoxModelObject::paintFillLayerExtended):
(WebCore::RenderBoxModelObject::boxShadowShouldBeAppliedToBackground const):
- rendering/RenderBoxModelObject.h:
- rendering/RenderImage.cpp:
(WebCore::RenderImage::boxShadowShouldBeAppliedToBackground const):
- rendering/RenderImage.h:
- rendering/RenderInline.cpp:
(WebCore::RenderInline::generateLineBoxRects const):
(WebCore::RenderInline::generateCulledLineBoxRects const):
(WebCore::RenderInline::linesBoundingBox const):
(WebCore::RenderInline::linesVisualOverflowBoundingBox const):
(WebCore::RenderInline::linesVisualOverflowBoundingBoxInFragment const):
(WebCore::RenderInline::dirtyLineBoxes):
(WebCore::RenderInline::createInlineFlowBox):
(WebCore::RenderInline::createAndAppendInlineFlowBox):
(WebCore::RenderInline::paintOutline):
- rendering/RenderInline.h:
(WebCore::RenderInline::firstLineBox const):
(WebCore::RenderInline::lastLineBox const):
- rendering/RenderLineBoxList.cpp:
(WebCore::RenderLineBoxList::appendLineBox):
(WebCore::RenderLineBoxList::deleteLineBoxTree):
(WebCore::RenderLineBoxList::extractLineBox):
(WebCore::RenderLineBoxList::attachLineBox):
(WebCore::RenderLineBoxList::removeLineBox):
(WebCore::RenderLineBoxList::deleteLineBoxes):
(WebCore::RenderLineBoxList::dirtyLineBoxes):
(WebCore::RenderLineBoxList::lineIntersectsDirtyRect const):
(WebCore::RenderLineBoxList::paint const):
(WebCore::RenderLineBoxList::hitTest const):
(WebCore::RenderLineBoxList::checkConsistency const):
- rendering/RenderLineBoxList.h:
(WebCore::RenderLineBoxList::firstLineBox const):
(WebCore::RenderLineBoxList::lastLineBox const):
- rendering/RenderOverflow.h:
- rendering/RenderTableCell.cpp:
(WebCore::RenderTableCell::boxShadowShouldBeAppliedToBackground const):
- rendering/RenderTableCell.h:
- rendering/RenderVTTCue.cpp:
(WebCore::RenderVTTCue::initializeLayoutParameters):
(WebCore::RenderVTTCue::shouldSwitchDirection const):
(WebCore::RenderVTTCue::repositionCueSnapToLinesSet):
(WebCore::RenderVTTCue::repositionGenericCue):
- rendering/RenderVTTCue.h:
- rendering/svg/RenderSVGInline.cpp:
(WebCore::RenderSVGInline::createInlineFlowBox):
(WebCore::RenderSVGInline::absoluteQuads const):
- rendering/svg/RenderSVGInline.h:
- rendering/svg/SVGInlineFlowBox.h:
- rendering/svg/SVGInlineTextBox.cpp:
(WebCore::findRendererDefininingTextDecoration):
- rendering/svg/SVGRootInlineBox.cpp:
(WebCore::SVGRootInlineBox::layoutCharactersInTextBoxes):
(WebCore::SVGRootInlineBox::layoutChildBoxes):
- rendering/svg/SVGRootInlineBox.h:
- rendering/svg/SVGTextQuery.cpp:
(WebCore::flowBoxForRenderer):
(WebCore::SVGTextQuery::collectTextBoxesInFlowBox):
- rendering/svg/SVGTextQuery.h:
- 6:10 AM Changeset in webkit [278404] by
-
- 6 edits1 add in trunk/Source/WTF
REGRESSION(r277744): Broke build on s390x mainframes
https://bugs.webkit.org/show_bug.cgi?id=226497
Patch by Michael Catanzaro <Michael Catanzaro> on 2021-06-03
Reviewed by Darin Adler.
The problem is we have a template defined in a C++ source file, used by multiple source
files. This is not valid C++, so let's split the templates defined in StringBuilder.cpp out
into a new StringBuilderInternals.h that we can #include in both StringBuilder.cpp and
StringBuilderJSON.cpp.
Ideally we would move the template defined in StringBuilderJSON.cpp as well, and then
eliminate StringBuilderJSON.cpp since there would only be one function left. But that file
has an MPL license. It's easier to leave it be to keep the license situation simpler.
- WTF.xcodeproj/project.pbxproj:
- wtf/CMakeLists.txt:
- wtf/text/StringBuilder.cpp:
(WTF::StringBuilder::expandedCapacity):
(WTF::expandedCapacity): Deleted.
(WTF::StringBuilder::allocateBuffer): Deleted.
(WTF::StringBuilder::extendBufferForAppending): Deleted.
(WTF::StringBuilder::extendBufferForAppendingSlowCase): Deleted.
- wtf/text/StringBuilder.h:
- wtf/text/StringBuilderInternals.h: Added.
(WTF::StringBuilder::allocateBuffer):
(WTF::StringBuilder::reallocateBuffer):
(WTF::StringBuilder::extendBufferForAppending):
(WTF::StringBuilder::extendBufferForAppendingSlowCase):
- wtf/text/StringBuilderJSON.cpp:
- 6:02 AM Changeset in webkit [278403] by
-
- 8 edits2 adds in trunk
[LFC][TFC] Use the fixed table height value to resolve percent column height values
https://bugs.webkit.org/show_bug.cgi?id=226566
Reviewed by Antti Koivisto.
Source/WebCore:
Test: fast/layoutformattingcontext/table-with-percent-columns-simple.html
- layout/formattingContexts/table/TableFormattingContext.cpp:
(WebCore::Layout::TableFormattingContext::layoutInFlowContent):
(WebCore::Layout::TableFormattingContext::setUsedGeometryForCells):
(WebCore::Layout::TableFormattingContext::computeAndDistributeExtraSpace):
- layout/formattingContexts/table/TableFormattingContext.h:
- layout/formattingContexts/table/TableFormattingGeometry.cpp:
(WebCore::Layout::TableFormattingGeometry::verticalSpaceForCellContent const):
- layout/formattingContexts/table/TableFormattingGeometry.h:
LayoutTests:
- fast/layoutformattingcontext/table-with-percent-columns-and-spacing-expected.html:
- fast/layoutformattingcontext/table-with-percent-columns-and-spacing.html:
- fast/layoutformattingcontext/table-with-percent-columns-simple-expected.html: Added.
- fast/layoutformattingcontext/table-with-percent-columns-simple.html: Added.
- 5:49 AM Changeset in webkit [278402] by
-
- 4 edits in trunk
[GLIB] imported/w3c/web-platform-tests/resource-timing/resource_connection_reuse_mixed_content.html is failing since r277493
https://bugs.webkit.org/show_bug.cgi?id=225904
Reviewed by Michael Catanzaro.
Source/WebKit:
Set secureConnectionStart to WebCore::reusedTLSConnectionSentinel in case of reused TLS connection.
- NetworkProcess/soup/NetworkDataTaskSoup.cpp:
(WebKit::NetworkDataTaskSoup::didStartRequest):
LayoutTests:
- platform/glib/TestExpectations:
- 1:00 AM Changeset in webkit [278401] by
-
- 2 edits in trunk/Source/WebCore/platform/gtk/po
Update Danish translation for WebkitGTK
https://bugs.webkit.org/show_bug.cgi?id=226565
Rubber-stamped by Carlos Garcia Campos.
- da.po:
- 12:59 AM Changeset in webkit [278400] by
-
- 2 edits in trunk/Source/WebCore/platform/gtk/po
Updated Swedish translation
https://bugs.webkit.org/show_bug.cgi?id=226558
Rubber-stamped by Carlos Garcia Campos.
- sv.po:
- 12:57 AM Changeset in webkit [278399] by
-
- 2 edits in trunk/Source/WebCore/platform/gtk/po
[GTK] [l10n] Updated Ukrainian translation of WebKitGTK+
https://bugs.webkit.org/show_bug.cgi?id=226419
Rubber-stamped by Carlos Garcia Campos.
- uk.po:
- 12:09 AM Changeset in webkit [278398] by
-
- 3 edits2 adds in trunk
Crash in HTMLConverter::_addLinkForElement()
https://bugs.webkit.org/show_bug.cgi?id=226398
Patch by Julian Gonzalez <julian_a_gonzalez@apple.com> on 2021-06-03
Reviewed by Ryosuke Niwa.
Source/WebCore:
While traversing a node, exit an element with a startIndex
that is always inside the bounds of the attribute string.
Test: editing/pasteboard/select-all-link-cut.html
- editing/cocoa/HTMLConverter.mm:
(HTMLConverter::_traverseNode):
LayoutTests:
Add a test for this crasher.
- editing/pasteboard/select-all-link-cut-expected.txt: Added.
- editing/pasteboard/select-all-link-cut.html: Added.
Jun 2, 2021:
- 11:50 PM Changeset in webkit [278397] by
-
- 2 edits in trunk/Source/WebCore
Make EndTransparancyLayer a potential no-op
https://bugs.webkit.org/show_bug.cgi?id=226523
Patch by Rob Buis <rbuis@igalia.com> on 2021-06-02
Reviewed by Simon Fraser.
Make EndTransparancyLayer a no-op if there is no
current transparency layer in place.
- platform/graphics/displaylists/DisplayListItems.cpp:
(WebCore::DisplayList::EndTransparencyLayer::apply const):
- 11:26 PM Changeset in webkit [278396] by
-
- 12 edits in trunk
Split FillInlinePath/StrokeInlinePath
https://bugs.webkit.org/show_bug.cgi?id=225687
Patch by Rob Buis <rbuis@igalia.com> on 2021-06-02
Reviewed by Wenson Hsieh.
Source/WebCore:
Use specialized display list item types instead of
a Variant for FillInlinePath/StrokeInlinePath.
- platform/graphics/displaylists/DisplayList.cpp:
(WebCore::DisplayList::DisplayList::append):
- platform/graphics/displaylists/DisplayListItemBuffer.cpp:
(WebCore::DisplayList::ItemHandle::apply):
(WebCore::DisplayList::ItemHandle::destroy):
(WebCore::DisplayList::ItemHandle::safeCopy const):
- platform/graphics/displaylists/DisplayListItemType.cpp:
(WebCore::DisplayList::sizeOfItemInBytes):
(WebCore::DisplayList::isDrawingItem):
(WebCore::DisplayList::isInlineItem):
- platform/graphics/displaylists/DisplayListItemType.h:
- platform/graphics/displaylists/DisplayListItems.cpp:
(WebCore::DisplayList::FillLine::apply const):
(WebCore::DisplayList::operator<<):
(WebCore::DisplayList::FillArc::apply const):
(WebCore::DisplayList::FillQuadCurve::apply const):
(WebCore::DisplayList::FillBezierCurve::apply const):
(WebCore::DisplayList::StrokeArc::localBounds const):
(WebCore::DisplayList::StrokeArc::apply const):
(WebCore::DisplayList::StrokeQuadCurve::localBounds const):
(WebCore::DisplayList::StrokeQuadCurve::apply const):
(WebCore::DisplayList::StrokeBezierCurve::localBounds const):
(WebCore::DisplayList::StrokeBezierCurve::apply const):
(WebCore::DisplayList::FillInlinePath::apply const): Deleted.
(WebCore::DisplayList::StrokeInlinePath::localBounds const): Deleted.
(WebCore::DisplayList::StrokeInlinePath::apply const): Deleted.
- platform/graphics/displaylists/DisplayListItems.h:
(WebCore::DisplayList::FillLine::FillLine):
(WebCore::DisplayList::FillLine::path const):
(WebCore::DisplayList::FillLine::globalBounds const):
(WebCore::DisplayList::FillLine::localBounds const):
(WebCore::DisplayList::FillArc::FillArc):
(WebCore::DisplayList::FillArc::path const):
(WebCore::DisplayList::FillArc::globalBounds const):
(WebCore::DisplayList::FillArc::localBounds const):
(WebCore::DisplayList::FillQuadCurve::FillQuadCurve):
(WebCore::DisplayList::FillQuadCurve::path const):
(WebCore::DisplayList::FillQuadCurve::globalBounds const):
(WebCore::DisplayList::FillQuadCurve::localBounds const):
(WebCore::DisplayList::FillBezierCurve::FillBezierCurve):
(WebCore::DisplayList::FillBezierCurve::path const):
(WebCore::DisplayList::StrokeLine::StrokeLine):
(WebCore::DisplayList::StrokeArc::StrokeArc):
(WebCore::DisplayList::StrokeArc::path const):
(WebCore::DisplayList::StrokeArc::globalBounds const):
(WebCore::DisplayList::StrokeQuadCurve::StrokeQuadCurve):
(WebCore::DisplayList::StrokeQuadCurve::path const):
(WebCore::DisplayList::StrokeQuadCurve::globalBounds const):
(WebCore::DisplayList::StrokeBezierCurve::StrokeBezierCurve):
(WebCore::DisplayList::StrokeBezierCurve::path const):
(WebCore::DisplayList::InlinePathDataStorage::InlinePathDataStorage): Deleted.
(WebCore::DisplayList::InlinePathDataStorage::isValid const): Deleted.
(WebCore::DisplayList::InlinePathDataStorage::path const): Deleted.
(WebCore::DisplayList::FillInlinePath::FillInlinePath): Deleted.
(WebCore::DisplayList::FillInlinePath::globalBounds const): Deleted.
(WebCore::DisplayList::FillInlinePath::localBounds const): Deleted.
(WebCore::DisplayList::StrokeInlinePath::StrokeInlinePath): Deleted.
(WebCore::DisplayList::StrokeInlinePath::globalBounds const): Deleted.
- platform/graphics/displaylists/DisplayListRecorder.cpp:
(WebCore::DisplayList::Recorder::fillPath):
(WebCore::DisplayList::Recorder::strokePath):
Source/WebKit:
Adjust to new display list item types.
- GPUProcess/graphics/RemoteRenderingBackend.cpp:
(WebKit::RemoteRenderingBackend::decodeItem):
Tools:
Adjust to API new display list items.
- TestWebKitAPI/Tests/WebCore/DisplayListTests.cpp:
(TestWebKitAPI::TEST):
- 10:09 PM Changeset in webkit [278395] by
-
- 5 edits in trunk/Source/WebKit
Stop using a RefPtr<IPC::Connection> as HashMap key in DisplayLink
https://bugs.webkit.org/show_bug.cgi?id=226561
Reviewed by Simon Fraser.
Stop using a RefPtr<IPC::Connection> as HashMap key in DisplayLink. Using a RefPtr as key is suboptimal
and could leak to memory leaks. The reason this needed a RefPtr<IPC::Connection> was because we needed
to send IPC from a background thread. To support this, I have added a static IPC::Connection::send()
function that takes an IPC::Connection::UniqueID and that is thread safe. The function looks up the
IPC::Connection from its UniqueID and sends the IPC while still holding the lock.
As a result, DisplayLink can use IPC::Connection::UniqueID as key instead.
Note that I am planning to use the new static IPC::Connection::send() in other cases where we could
send IPC directly from a background thread instead of having to hop to the main thread to look up
the IPC::Connection from its UniqueID. StorageArea::dispatchEvents() is an example of where this will
be useful.
- Platform/IPC/Connection.cpp:
(IPC::Connection::Connection):
(IPC::Connection::~Connection):
- Platform/IPC/Connection.h:
(IPC::Connection::send):
- UIProcess/mac/DisplayLink.cpp:
(WebKit::DisplayLink::addObserver):
(WebKit::DisplayLink::removeObserver):
(WebKit::DisplayLink::removeObservers):
(WebKit::DisplayLink::removeInfoForConnectionIfPossible):
(WebKit::DisplayLink::incrementFullSpeedRequestClientCount):
(WebKit::DisplayLink::decrementFullSpeedRequestClientCount):
(WebKit::DisplayLink::setPreferredFramesPerSecond):
(WebKit::DisplayLink::notifyObserversDisplayWasRefreshed):
- UIProcess/mac/DisplayLink.h:
- 9:59 PM Changeset in webkit [278394] by
-
- 11 edits1 add in trunk/Source/WebKit
[iOS] Show data detector context menu on long press inside image overlays
https://bugs.webkit.org/show_bug.cgi?id=226559
<rdar://problem/78789078>
Reviewed by Tim Horton.
Add additional support for data detectors that appear inside image overlays on iOS.
- Shared/ImageExtractionUpdateResult.h: Added.
Turn the
boolpropagated back to the UI process when callingupdateWithImageExtractionResultinto a separate
three-state enum instead; see changes below for more details.
- Shared/ios/InteractionInformationAtPosition.h:
- Shared/ios/InteractionInformationAtPosition.mm:
(WebKit::InteractionInformationAtPosition::encode const):
(WebKit::InteractionInformationAtPosition::decode):
Make some minor adjustments to
InteractionInformationAtPosition:
- Add
dataDetectorBounds, which determines the bounds in root view coordinates of the data detector result
corresponding to the hit-tested element.
- Encode and decode
dataDetectorResults, even ifisDataDetectorLinkisfalse. Unless the data detector
is inside an image overlay, this (effectively) has no impact, since
dataDetectorResultswas previously
only set ifisDataDetectorLinkwas true.
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::updateWithImageExtractionResult):
- UIProcess/WebPageProxy.h:
- UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView dataDetectionContextForPositionInformation:]):
Let
dataDetectorResultstake precedence over regularboundswhen returning the context for the data
detector menu configuration.
(-[WKContentView positionInformationHasImageOverlayDataDetector]):
Add a helper method that returns
YESin the case where the currently cached position information object
contains a text data detection result inside an image overlay.
(-[WKContentView _createTargetedContextMenuHintPreviewIfPossible]):
Use
dataDetectorBoundsinstead ofboundswhen creating a fallback targeted preview for a data detection
result in an image overlay.
(-[WKContentView continueContextMenuInteraction:]):
(-[WKContentView continueContextMenuInteractionWithDataDetectors:]):
Adjust these codepaths so that we'll continue through to the data detector case instead of bailing early in the
case where bothisImageOverlayTextis set, anddataDetectionResultsexist.
- WebKit.xcodeproj/project.pbxproj:
- WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::findDataDetectionResultElementInImageOverlay):
Add a static helper to locate a data detector element underneath the given point, inside the given element's
image overlay in the user agent shadow root. Note that we check each of the element's bounds instead of using
a hit-test because we normally just hit-test to the text containers instead of the data detector containers.
(WebKit::WebPage::updateWithImageExtractionResult):
- WebProcess/WebPage/WebPage.h:
- WebProcess/WebPage/WebPage.messages.in:
- WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::dataDetectorLinkPositionInformation):
(WebKit::dataDetectorImageOverlayPositionInformation):
Add a static helper function to populate the given
InteractionInformationAtPosition, if it's over a data
detection result inside an image overlay.
(WebKit::elementPositionInformation): Call the above helper function.
- 9:57 PM Changeset in webkit [278393] by
-
- 12 edits2 deletes in trunk/Source/WebCore
Introduce a shared IDB serialization thread
https://bugs.webkit.org/show_bug.cgi?id=226228
<rdar://problem/78725516>
Reviewed by Chris Dumez.
Currently each WebIDBServer has its own thread, and does serialization/deserialization on that thread. To
prepare for making WebIDBServer use WorkQueue, like the other storage manager classes, let's create a shared
thread for handling all serialization/deserialization operations, which cannot be done on WorkQueue as VM needs
to access thread-specific data. Now IDB tasks will call callOnIDBSerializationThreadAndWait to perform
serialization/deserialization operations synchronously.
- Modules/indexeddb/server/IDBBackingStore.h:
- Modules/indexeddb/server/IDBSerializationContext.cpp: Removed. Moved to IDBBindingUtilities.cpp as
IDBSerializationContext is only used by IDBSerialization thread now.
- Modules/indexeddb/server/IDBSerializationContext.h: Removed.
- Modules/indexeddb/server/MemoryIDBBackingStore.cpp:
(WebCore::IDBServer::MemoryIDBBackingStore::MemoryIDBBackingStore):
(WebCore::IDBServer::MemoryIDBBackingStore::serializationContext): Deleted.
- Modules/indexeddb/server/MemoryIDBBackingStore.h:
- Modules/indexeddb/server/MemoryObjectStore.cpp:
(WebCore::IDBServer::MemoryObjectStore::MemoryObjectStore):
(WebCore::IDBServer::MemoryObjectStore::addRecord):
(WebCore::IDBServer::MemoryObjectStore::populateIndexWithExistingRecords):
- Modules/indexeddb/server/MemoryObjectStore.h:
- Modules/indexeddb/server/SQLiteIDBBackingStore.cpp:
(WebCore::IDBServer::SQLiteIDBBackingStore::SQLiteIDBBackingStore):
(WebCore::IDBServer::SQLiteIDBBackingStore::updateOneIndexForAddRecord):
(WebCore::IDBServer::SQLiteIDBBackingStore::serializationContext): Deleted.
- Modules/indexeddb/server/SQLiteIDBBackingStore.h:
- Modules/indexeddb/server/UniqueIDBDatabase.cpp:
(WebCore::IDBServer::UniqueIDBDatabase::putOrAdd):
- Sources.txt:
- bindings/js/IDBBindingUtilities.cpp:
(WebCore::IDBSerializationContext::IDBSerializationContext):
(WebCore::IDBSerializationContext::~IDBSerializationContext):
(WebCore::IDBSerializationContext::globalObject):
(WebCore::IDBSerializationContext::initializeVM):
(WebCore::callOnIDBSerializationThreadAndWait): Create a IDBSerialization thread if not exists, and dispatch a
synchronous task to it.
- bindings/js/IDBBindingUtilities.h:
- 6:54 PM Changeset in webkit [278392] by
-
- 19 edits in trunk/Source/WebCore
Port media code to the HTML event loop
https://bugs.webkit.org/show_bug.cgi?id=226543
Reviewed by Ryosuke Niwa.
Port media code to the HTML event loop so that event processing order is consistent
with non-media related events. To avoid having a very large patch, I made the following
changes:
- Update MainThreadGenericEventQueue to be based on the HTML event loop instead of a global Timer.
- Introduce a EventLoopDeferrableTask which has the same API as DeferrableTask<Timer> but uses the HTML event loop instead of a global Timer. Port media code to use EventLoopDeferrableTask instead of DeferrableTask.
- Introduce an EventLoopTaskQueue which has the same API as GenericTaskQueue<Timer> but uses the HTML event loop instead of a global Timer. Port media code to use EventLoopTaskQueue instead of GenericTaskQueue<Timer>.
This effectively ports our entire media code to the HTML event loop. It allows new
media code to use the HTML event loop *directly* without fear of ordering issues. It also
allows us to refactor existing media code to use the HTML event loop *directly* when possible,
in an incremental fashion, without causing ordering issues.
- Headers.cmake:
- Modules/remoteplayback/RemotePlayback.cpp:
(WebCore::RemotePlayback::RemotePlayback):
- Modules/remoteplayback/RemotePlayback.h:
- animation/DocumentTimelinesController.cpp:
(WebCore::DocumentTimelinesController::DocumentTimelinesController):
- animation/DocumentTimelinesController.h:
- dom/FullscreenManager.cpp:
- dom/FullscreenManager.h:
- dom/GenericEventQueue.cpp:
(WebCore::MainThreadGenericEventQueue::MainThreadGenericEventQueue):
(WebCore::MainThreadGenericEventQueue::enqueueEvent):
(WebCore::MainThreadGenericEventQueue::close):
(WebCore::MainThreadGenericEventQueue::cancelAllEvents):
(WebCore::MainThreadGenericEventQueue::hasPendingEventsOfType const):
- dom/GenericEventQueue.h:
- html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::HTMLMediaElement):
- html/HTMLMediaElement.h:
- html/shadow/MediaControlTextTrackContainerElement.cpp:
(WebCore::MediaControlTextTrackContainerElement::MediaControlTextTrackContainerElement):
- html/shadow/MediaControlTextTrackContainerElement.h:
- platform/DeferrableTask.h:
(WebCore::DeferrableTaskBase::close):
(WebCore::DeferrableTaskBase::cancelTask):
(WebCore::DeferrableTaskBase::hasPendingTask const):
(WebCore::DeferrableTaskBase::isClosed const):
(WebCore::DeferrableTaskBase::setHasPendingTask):
- platform/GenericTaskQueue.h:
(WebCore::GenericTaskQueueBase::hasPendingTasks const):
(WebCore::GenericTaskQueueBase::isClosed const):
(WebCore::GenericTaskQueueBase::close):
(WebCore::GenericTaskQueueBase::cancelAllTasks):
(WebCore::GenericTaskQueueBase::incrementPendingTasks):
(WebCore::GenericTaskQueueBase::decremementPendingTasks):
- 6:25 PM Changeset in webkit [278391] by
-
- 59 edits10 adds3 deletes in trunk
Fix WPT test resource-timing/cross-origin-redirects.html
https://bugs.webkit.org/show_bug.cgi?id=190523
<rdar://45227788>
Reviewed by Brady Eidson.
LayoutTests/imported/w3c:
- web-platform-tests/navigation-timing/nav2_test_redirect_server-expected.txt:
- web-platform-tests/navigation-timing/nav2_test_redirect_server.html:
Sometimes, with our use of Performance::reduceTimeResolution, the event times are equal to each other.
Allow this.
- web-platform-tests/resource-timing/cross-origin-redirects-expected.txt: Added.
- web-platform-tests/resource-timing/cross-origin-redirects.html: Added.
- web-platform-tests/resource-timing/resources/entry-invariants.js: Added.
(const.assert_all_equal_):
(const.assert_ordered_):
(const.assert_zeroed_):
(const.assert_not_negative_):
(const.assert_positive_):
(const.attribute_test_internal):
(async const):
(const.attribute_test_with_validator):
- web-platform-tests/resource-timing/resources/resource-loaders.js: Added.
(const.load.font.path.return.document.fonts.ready.then):
(const.load.stylesheet.async path):
(const.load.iframe.async path):
(const.load.script.async path):
(const.load.xhr_sync.async path):
Source/WebCore:
Test: imported/w3c/web-platform-tests/resource-timing/cross-origin-redirects.html
This test took more to fix than I thought it would. We used to collect our timing data
from various sources into various structures, mostly based on Google's work from 2010 with
a few things tacked on to it. The timing specifications have changed considerably in the
last 11 years, and so should the shape of the structures we put the data into.
We used to have a LoadTiming structure in various places that claimed to contain the redirect times,
but markRedirectStart and markRedirectEnd were never called. Instead we tried to collect this data
from the SubResourceLoader and DocumentLoader reporting redirects in the web process. This wasn't great.
Redirect timing is best collected in the network process by the framework doing the redirecting,
and now we have the NSURLSessionTaskMetrics API to get the data we need.
I've made NetworkLoadMetrics the structure that contains all the network load metrics from the network process.
DocumentEventTiming is owned in the web process by the Document, and it contains the load event timing data.
ResourceLoadTiming is owned by the ResourceLoader, and it contains the fetch start and end times including the
parts of the fetch algorithm that happen in the web process.
DocumentLoadTiming inherits from it and is owned by the DocumentLoader, which reflects the fact that
PerformanceNavigationTiming inherits from PerformanceResourceTiming in the specs.
With these structures in place, we now have the infrastructure to collect timing data and expose it correctly.
Another thing that has changed is that these structures consistently store the timing data in the MonotonicTime type,
which is the number of seconds since the machine restarted. NetworkLoadMetrics used to confusingly store fetch
start time and then other network times as deltas from it, and we would pretend that fetch start time was the same
as the fetch start time in the web process and calculate everything from the deltas. This is an unfortunate
consequence of my younger self not realizing that the double values from NSURLConnection._timingData are values to
be put into [NSDate initWithTimeIntervalSinceReferenceDate] then pulled out with timeIntervalSince1970 to get
WallTime. I was confused because they weren't WallTime or MonotonicTime, so I only dealt with them as deltas
from each other. Consistently using MonotonicTime makes all this code much more straightforward.
I also use std::numeric_limits<uint64_t>::max() instead of std::numeric_limits<uint32_t>::max() as a sentinel value
for requestHeaderBytesSent and responseHeaderBytesReceived to make everything more sane. I'm not too worried about
the metrics of downloads of exactly 4GB, but they should also be fixed.
A consequence of collecting the redirect times in the network process is that we have to move the
SecurityOrigin::canRequest checks to see if the redirects are same-origin to ResourceHandle and NetworkDataTask.
- Headers.cmake:
- Sources.txt:
- WebCore.xcodeproj/project.pbxproj:
- dom/Document.cpp:
(WebCore::Document::setReadyState):
(WebCore::Document::finishedParsing):
(WebCore::Document::monotonicTimestamp const):
- dom/Document.h:
(WebCore::Document::eventTiming const):
(WebCore::Document::timing const): Deleted.
- dom/DocumentEventTiming.h: Copied from Source/WebCore/dom/DocumentTiming.h.
- inspector/agents/InspectorNetworkAgent.cpp:
(WebCore::InspectorNetworkAgent::buildObjectForTiming):
(WebCore::InspectorNetworkAgent::buildObjectForMetrics):
(WebCore::InspectorNetworkAgent::buildObjectForResourceResponse):
(WebCore::InspectorNetworkAgent::didFinishLoading):
- inspector/agents/InspectorNetworkAgent.h:
- loader/DocumentLoadTiming.h: Renamed from Source/WebCore/loader/LoadTiming.h.
(WebCore::DocumentLoadTiming::timeOrigin const):
(WebCore::DocumentLoadTiming::markUnloadEventStart):
(WebCore::DocumentLoadTiming::markUnloadEventEnd):
(WebCore::DocumentLoadTiming::markLoadEventStart):
(WebCore::DocumentLoadTiming::markLoadEventEnd):
(WebCore::DocumentLoadTiming::setHasSameOriginAsPreviousDocument):
(WebCore::DocumentLoadTiming::unloadEventStart const):
(WebCore::DocumentLoadTiming::unloadEventEnd const):
(WebCore::DocumentLoadTiming::loadEventStart const):
(WebCore::DocumentLoadTiming::loadEventEnd const):
(WebCore::DocumentLoadTiming::hasSameOriginAsPreviousDocument const):
- loader/DocumentLoader.cpp:
(WebCore::DocumentLoader::finishedLoading):
(WebCore::DocumentLoader::willSendRequest):
(WebCore::DocumentLoader::dataReceived):
(WebCore::DocumentLoader::startLoadingMainResource):
- loader/DocumentLoader.h:
(WebCore::DocumentLoader::timing const):
(WebCore::DocumentLoader::timing):
(WebCore::DocumentLoader::resetTiming):
- loader/DocumentThreadableLoader.cpp:
(WebCore::DocumentThreadableLoader::loadRequest):
- loader/FrameLoader.cpp:
(WebCore::FrameLoader::dispatchUnloadEvents):
- loader/LoadTiming.cpp: Removed.
- loader/ResourceLoadTiming.h: Renamed from Source/WebCore/dom/DocumentTiming.h.
(WebCore::ResourceLoadTiming::markStartTime):
(WebCore::ResourceLoadTiming::markEndTime):
(WebCore::ResourceLoadTiming::startTime const):
(WebCore::ResourceLoadTiming::endTime const):
(WebCore::ResourceLoadTiming::isolatedCopy const):
- loader/ResourceLoader.cpp:
(WebCore::ResourceLoader::init):
- loader/ResourceLoader.h:
(WebCore::ResourceLoader::loadTiming):
- loader/ResourceTiming.cpp:
(WebCore::ResourceTiming::fromMemoryCache):
(WebCore::ResourceTiming::fromLoad):
(WebCore::ResourceTiming::fromSynchronousLoad):
(WebCore::ResourceTiming::ResourceTiming):
(WebCore::ResourceTiming::isolatedCopy const):
(WebCore::ResourceTiming::fromCache): Deleted.
- loader/ResourceTiming.h:
(WebCore::ResourceTiming::resourceLoadTiming const):
(WebCore::ResourceTiming::ResourceTiming):
(WebCore::ResourceTiming::loadTiming const): Deleted.
- loader/ResourceTimingInformation.cpp:
- loader/SubresourceLoader.cpp:
(WebCore::SubresourceLoader::willSendRequestInternal):
(WebCore::SubresourceLoader::didFinishLoading):
- loader/cache/CachedResource.h:
- loader/cache/CachedResourceLoader.cpp:
(WebCore::CachedResourceLoader::requestResource):
- page/DOMWindow.cpp:
(WebCore::DOMWindow::performance const):
- page/Performance.cpp:
(WebCore::Performance::addNavigationTiming):
- page/Performance.h:
- page/PerformanceNavigation.cpp:
(WebCore::PerformanceNavigation::redirectCount const):
- page/PerformanceNavigationTiming.cpp:
(WebCore::PerformanceNavigationTiming::PerformanceNavigationTiming):
(WebCore::PerformanceNavigationTiming::millisecondsSinceOrigin const):
(WebCore::PerformanceNavigationTiming::sameOriginCheckFails const):
(WebCore::PerformanceNavigationTiming::unloadEventStart const):
(WebCore::PerformanceNavigationTiming::unloadEventEnd const):
(WebCore::PerformanceNavigationTiming::domInteractive const):
(WebCore::PerformanceNavigationTiming::domContentLoadedEventStart const):
(WebCore::PerformanceNavigationTiming::domContentLoadedEventEnd const):
(WebCore::PerformanceNavigationTiming::domComplete const):
(WebCore::PerformanceNavigationTiming::loadEventStart const):
(WebCore::PerformanceNavigationTiming::loadEventEnd const):
(WebCore::PerformanceNavigationTiming::redirectCount const):
- page/PerformanceNavigationTiming.h:
- page/PerformanceResourceTiming.cpp:
(WebCore::networkLoadTimeToDOMHighResTimeStamp):
(WebCore::fetchStart):
(WebCore::entryStartTime):
(WebCore::entryEndTime):
(WebCore::PerformanceResourceTiming::redirectStart const):
(WebCore::PerformanceResourceTiming::redirectEnd const):
(WebCore::PerformanceResourceTiming::fetchStart const):
(WebCore::PerformanceResourceTiming::domainLookupStart const):
(WebCore::PerformanceResourceTiming::domainLookupEnd const):
(WebCore::PerformanceResourceTiming::connectStart const):
(WebCore::PerformanceResourceTiming::connectEnd const):
(WebCore::PerformanceResourceTiming::secureConnectionStart const):
(WebCore::PerformanceResourceTiming::requestStart const):
(WebCore::PerformanceResourceTiming::responseStart const):
(WebCore::PerformanceResourceTiming::responseEnd const):
(WebCore::monotonicTimeToDOMHighResTimeStamp): Deleted.
(WebCore::PerformanceResourceTiming::networkLoadTimeToDOMHighResTimeStamp const): Deleted.
- page/PerformanceResourceTiming.h:
- page/PerformanceTiming.cpp:
(WebCore::PerformanceTiming::navigationStart const):
(WebCore::PerformanceTiming::unloadEventStart const):
(WebCore::PerformanceTiming::unloadEventEnd const):
(WebCore::PerformanceTiming::redirectStart const):
(WebCore::PerformanceTiming::redirectEnd const):
(WebCore::PerformanceTiming::fetchStart const):
(WebCore::PerformanceTiming::domainLookupStart const):
(WebCore::PerformanceTiming::domainLookupEnd const):
(WebCore::PerformanceTiming::connectStart const):
(WebCore::PerformanceTiming::connectEnd const):
(WebCore::PerformanceTiming::secureConnectionStart const):
(WebCore::PerformanceTiming::requestStart const):
(WebCore::PerformanceTiming::responseStart const):
(WebCore::PerformanceTiming::responseEnd const):
(WebCore::PerformanceTiming::domLoading const):
(WebCore::PerformanceTiming::domInteractive const):
(WebCore::PerformanceTiming::domContentLoadedEventStart const):
(WebCore::PerformanceTiming::domContentLoadedEventEnd const):
(WebCore::PerformanceTiming::domComplete const):
(WebCore::PerformanceTiming::loadEventStart const):
(WebCore::PerformanceTiming::loadEventEnd const):
(WebCore::PerformanceTiming::documentLoader const):
(WebCore::PerformanceTiming::documentEventTiming const):
(WebCore::PerformanceTiming::documentLoadTiming const):
(WebCore::PerformanceTiming::networkLoadMetrics const):
(WebCore::PerformanceTiming::monotonicTimeToIntegerMilliseconds const):
(WebCore::PerformanceTiming::documentTiming const): Deleted.
(WebCore::PerformanceTiming::loadTiming const): Deleted.
(WebCore::PerformanceTiming::resourceLoadTimeRelativeToFetchStart const): Deleted.
- page/PerformanceTiming.h:
- platform/network/NetworkLoadMetrics.h:
(WebCore::NetworkLoadMetrics::isolatedCopy const):
(WebCore::NetworkLoadMetrics::operator== const):
(WebCore::NetworkLoadMetrics::encode const):
(WebCore::NetworkLoadMetrics::decode):
- platform/network/ResourceHandle.cpp:
(WebCore::ResourceHandle::hasCrossOriginRedirect const):
(WebCore::ResourceHandle::setHasCrossOriginRedirect):
(WebCore::ResourceHandle::incrementRedirectCount):
(WebCore::ResourceHandle::redirectCount const):
(WebCore::ResourceHandle::startTimeBeforeRedirects const):
(WebCore::ResourceHandle::networkLoadMetrics):
(WebCore::ResourceHandle::setNetworkLoadMetrics):
- platform/network/ResourceHandle.h:
- platform/network/ResourceHandleInternal.h:
- platform/network/cocoa/NetworkLoadMetrics.mm:
(WebCore::dateToMonotonicTime):
(WebCore::packageTimingData):
(WebCore::copyTimingData):
- platform/network/cocoa/WebCoreNSURLSession.mm:
(networkLoadMetricsDate):
(-[WebCoreNSURLSessionTaskTransactionMetrics fetchStartDate]):
(-[WebCoreNSURLSessionTaskTransactionMetrics domainLookupStartDate]):
(-[WebCoreNSURLSessionTaskTransactionMetrics domainLookupEndDate]):
(-[WebCoreNSURLSessionTaskTransactionMetrics connectStartDate]):
(-[WebCoreNSURLSessionTaskTransactionMetrics secureConnectionStartDate]):
(-[WebCoreNSURLSessionTaskTransactionMetrics connectEndDate]):
(-[WebCoreNSURLSessionTaskTransactionMetrics requestStartDate]):
(-[WebCoreNSURLSessionTaskTransactionMetrics responseStartDate]):
(-[WebCoreNSURLSessionTaskTransactionMetrics responseEndDate]):
- platform/network/curl/CurlContext.cpp:
(WebCore::CurlHandle::getNetworkLoadMetrics):
- platform/network/curl/CurlContext.h:
- platform/network/curl/CurlRequest.cpp:
(WebCore::CurlRequest::didCompleteTransfer):
(WebCore::CurlRequest::networkLoadMetrics):
- platform/network/mac/ResourceHandleMac.mm:
(WebCore::ResourceHandle::start):
- platform/network/mac/WebCoreResourceHandleAsOperationQueueDelegate.h:
- platform/network/mac/WebCoreResourceHandleAsOperationQueueDelegate.mm:
(-[WebCoreResourceHandleAsOperationQueueDelegate connection:willSendRequest:redirectResponse:]):
(-[WebCoreResourceHandleAsOperationQueueDelegate connection:didReceiveResponse:]):
(-[WebCoreResourceHandleAsOperationQueueDelegate connectionDidFinishLoading:]):
Source/WebKit:
- NetworkProcess/cocoa/NetworkDataTaskCocoa.mm:
(WebKit::NetworkDataTaskCocoa::willPerformHTTPRedirection):
- NetworkProcess/cocoa/NetworkSessionCocoa.mm:
(-[WKNetworkSessionDelegate URLSession:task:didFinishCollectingMetrics:]):
(-[WKNetworkSessionDelegate URLSession:dataTask:didReceiveResponse:completionHandler:]):
- NetworkProcess/soup/NetworkDataTaskSoup.cpp:
(WebKit::NetworkDataTaskSoup::NetworkDataTaskSoup):
(WebKit::NetworkDataTaskSoup::clearRequest):
(WebKit::NetworkDataTaskSoup::resume):
(WebKit::NetworkDataTaskSoup::didSendRequest):
(WebKit::NetworkDataTaskSoup::dispatchDidCompleteWithError):
(WebKit::NetworkDataTaskSoup::continueHTTPRedirection):
(WebKit::NetworkDataTaskSoup::networkEvent):
(WebKit::NetworkDataTaskSoup::didStartRequest):
(WebKit::NetworkDataTaskSoup::didRestart):
LayoutTests:
- http/tests/misc/webtiming-slow-load-expected.txt:
- http/tests/misc/webtiming-slow-load.py:
Our new metrics gathering now matches Firefox instead of Chrome in PerformanceResourceTiming::responseEnd in this edge case of a deprecated API.
Update expectations accordingly.
- platform/mac-wk1/TestExpectations:
Bringing this test to passing in WK2 makes it flaky in WK1 because we don't get good redirect timing data from CFNetwork through NSURLConnection.
- platform/win/http/tests/misc/webtiming-one-redirect-expected.txt: Added.
- platform/win/http/tests/misc/webtiming-slow-load-expected.txt: Copied from LayoutTests/http/tests/misc/webtiming-slow-load-expected.txt.
- platform/win/http/tests/misc/webtiming-two-redirects-expected.txt: Added.
The network layer is now responsible for counting redirects and providing redirect timings.
Our friend CFURLConnection doesn't have that ability, so it doesn't pass these tests any more.
It never supported any timing APIs and other tests are skipped.
- 6:07 PM Changeset in webkit [278390] by
-
- 2 edits in trunk/Source/JavaScriptCore
B3MoveConstants should filter directly on Values, and only create ValueKeys when useful
https://bugs.webkit.org/show_bug.cgi?id=226420
Reviewed by Phil Pizlo.
I did a few runs of JetStream2 to measure results, the time spent in B3MoveConstants goes from 160-180ms to 100-110ms.
The total time spent in B3+Air is in the 6 to 8s range, so this is approximately a 1% speedup.
- b3/B3MoveConstants.cpp:
- 5:33 PM Changeset in webkit [278389] by
-
- 2 edits in trunk/Source/WebCore
Remove redundant isChildHitTestCandidate in RenderBlock::positionForPoint
https://bugs.webkit.org/show_bug.cgi?id=226554
<rdar://problem/78782485>
Reviewed by Simon Fraser.
- rendering/RenderBlock.cpp:
(WebCore::RenderBlock::positionForPoint):
- 5:09 PM Changeset in webkit [278388] by
-
- 2 edits in trunk/LayoutTests
[MacOS] media/video-played-collapse.html is flaky timeout and failure
https://bugs.webkit.org/show_bug.cgi?id=226520
Unreviewed test gardening.
- platform/mac/TestExpectations:
- 4:52 PM Changeset in webkit [278387] by
-
- 2 edits in trunk/LayoutTests
[BigSur E Wk1 Release] media/media-event-listeners.html is a flaky timeout
https://bugs.webkit.org/show_bug.cgi?id=226517
Unreviewed test gardening.
- platform/mac-wk1/TestExpectations:
- 4:51 PM Changeset in webkit [278386] by
-
- 4 edits in branches/safari-612.1.16-branch/Source/WebKit
Cherry-pick r278370. rdar://problem/78787261
[iOS] Fix IOKit sandbox violations
https://bugs.webkit.org/show_bug.cgi?id=226546
<rdar://78523469>
Reviewed by Tim Horton.
Fix IOKit sandbox violations in the WebContent process on iOS.
- Configurations/SandboxProfiles.xcconfig:
- Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb.in:
- WebKit.xcodeproj/project.pbxproj:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@278370 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 4:51 PM Changeset in webkit [278385] by
-
- 6 edits1 move in branches/safari-612.1.16-branch/Source/WebKit
Cherry-pick r278308. rdar://problem/78789128
[iOS] Preprocess the WebContent sandbox
https://bugs.webkit.org/show_bug.cgi?id=226301
<rdar://problem/78575178>
Reviewed by Geoffrey Garen.
Run the WebContent sandbox through the preprocessor on iOS.
- DerivedSources-input.xcfilelist:
- DerivedSources-output.xcfilelist:
- DerivedSources.make:
- Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb: Removed.
- Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb.in: Copied from Source/WebKit/Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb.
- WebKit.xcodeproj/project.pbxproj:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@278308 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 4:49 PM Changeset in webkit [278384] by
-
- 2 edits in trunk/Source/WTF
Drop WTF::Vector overloads taking index as Checked<size_t>
https://bugs.webkit.org/show_bug.cgi?id=226553
Reviewed by Geoffrey Garen.
Drop WTF::Vector overloads taking index as Checked<size_t>. They are no longer needed now that
Checked<size_t> can implicitly get converted to size_t (r278338).
- wtf/Vector.h:
(WTF::Vector::at const):
(WTF::Vector::operator[] const):
- 4:33 PM Changeset in webkit [278383] by
-
- 3 edits in trunk/Source/WebKit
[Cocoa] Clean up notification_center message filters
https://bugs.webkit.org/show_bug.cgi?id=226555
<rdar://problem/77164076>
Reviewed by Per Arne Vollan.
We initially had two groups of mach-message-send filter rules for 'com.apple.system.notification_center' so we could
collect telemetry on a group of messages. Now that we have removed all the messages we do not need, there is no reason
to maintain two separate sets.
This patch just combines the two sets into a single list so we can easily conditionalize it for different OS releases
if needed.
- Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb.in:
- WebProcess/com.apple.WebProcess.sb.in:
- 4:30 PM Changeset in webkit [278382] by
-
- 2 edits in trunk/LayoutTests
[iOS] Unreviewed test gardening.
- platform/ios/TestExpectations:
- 4:28 PM Changeset in webkit [278381] by
-
- 17 edits2 deletes in trunk/Source/JavaScriptCore
Merge B3::StackSlot and Air::StackSlot
https://bugs.webkit.org/show_bug.cgi?id=226362
Reviewed by Filip Pizlo.
This is a very simple and safe (although small) memory saving, since every B3StackSlot eventually becomes an AirStackSlot with an exact copy of all the same information.
Simply dropping the B3StackSlot past that point is tricky, because one of them might be retained by FTLState (and modified by Air).
It is much simpler to just use Air::StackSlot throughout. It saves us:
- 16 bytes per B3StackSlot (for the structure itself)
- another 8 bytes per B3StackSlot (for the pointer in the SparseCollection)
- 8 bytes per AirStackSlot (for the pointer to the B3::StackSlot)
I also took the opportunity to save an extra 8 bytes per AirStackSlot, by shrinking the bytesize field to a uint16_t (with a RELEASE_ASSERT that we never overflow it) and moving the StackSlotKind in the hole this creates.
Total savings: 16 bytes per spill slot and 40 bytes per locked (by B3) slot.
- JavaScriptCore.xcodeproj/project.pbxproj:
- Sources.txt:
- b3/B3LowerToAir.cpp:
- b3/B3Procedure.cpp:
(JSC::B3::Procedure::addStackSlot):
(JSC::B3::Procedure::dump const):
- b3/B3Procedure.h:
- b3/B3ProcedureInlines.h:
(JSC::B3::Procedure::stackSlots):
(JSC::B3::Procedure::stackSlots const):
- b3/B3SlotBaseValue.cpp:
- b3/B3SlotBaseValue.h:
- b3/B3StackSlot.cpp: Removed.
- b3/B3StackSlot.h: Removed.
- b3/B3Value.cpp:
- b3/air/AirCode.cpp:
(JSC::B3::Air::Code::addStackSlot):
- b3/air/AirCode.h:
- b3/air/AirStackSlot.cpp:
(JSC::B3::Air::StackSlot::setOffsetFromFP):
(JSC::B3::Air::StackSlot::deepDump const):
(JSC::B3::Air::StackSlot::StackSlot):
- b3/air/AirStackSlot.h:
(JSC::B3::Air::StackSlot::ensureSize):
- b3/testb3.h:
- ftl/FTLCompile.cpp:
- ftl/FTLState.h:
- 4:10 PM Changeset in webkit [278380] by
-
- 5 edits in trunk/Tools
[webkitcorepy] TaskPool shouldn't fork when 1 process is needed
https://bugs.webkit.org/show_bug.cgi?id=226506
<rdar://problem/78724554>
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:
(TaskPool.init): Allow user to force fork, even with a single process.
(TaskPool.enter): If only a single worker is needed and the caller is not forcing
a fork, run the setup function in the parent process.
(TaskPool.do): If no queue has been constructed, we're running in the parent process.
(TaskPool.wait): Nothing to wait for if we're running in the parent process.
(TaskPool.exit): If no queue has been constructed, we're running in the parent process,
so run the teardown in this process and reset the process name.
- Scripts/libraries/webkitcorepy/webkitcorepy/tests/task_pool_unittest.py:
(TaskPoolUnittest.test_single): Force fork.
(TaskPoolUnittest.test_single_no_fork):
(TaskPoolUnittest.test_exception): Force fork.
(TaskPoolUnittest.test_exception_no_fork):
(TaskPoolUnittest.test_invalid_shutdown): Force fork.
- 3:31 PM Changeset in webkit [278379] by
-
- 3 edits2 adds in trunk
Incorrect selection when tall float is present
https://bugs.webkit.org/show_bug.cgi?id=226552
<rdar://problem/78781056>
Reviewed by Simon Fraser.
Source/WebCore:
While floats may end up at the bottom of their containers, they do not necessarily stretch the container by their full height.
e.g. <div><div style="float: left; height: 10px; width: 10px;"></div>some<br>text<br>here</div>
The [some text here] content wraps around the float and stretches the containing block <div>.
Test: editing/selection/select-out-of-floated-non-editable-13.html
- rendering/RenderBlock.cpp:
(WebCore::RenderBlock::positionForPoint):
LayoutTests:
- editing/selection/select-out-of-floated-non-editable-07.html:
- editing/selection/select-out-of-floated-non-editable-13-expected.txt: Added.
- editing/selection/select-out-of-floated-non-editable-13.html: Added.
- 3:29 PM Changeset in webkit [278378] by
-
- 5 edits in trunk/Tools
[resultsdbpy] "legend" is misspelled as "lengend"
https://bugs.webkit.org/show_bug.cgi?id=226436
Patch by W.D. Xiong <w_xiong@apple.com> on 2021-06-02
Reviewed by Darin Adler.
Corrected said misspelling in resultsdbpy
- Scripts/libraries/resultsdbpy/resultsdbpy/view/static/js/timeline.js:
- Scripts/libraries/resultsdbpy/resultsdbpy/view/static/library/css/docs.yaml:
- Scripts/libraries/resultsdbpy/resultsdbpy/view/static/library/css/index.html:
- Scripts/libraries/resultsdbpy/resultsdbpy/view/static/library/css/webkit.css:
(.legend, .timeline>.content .legend):
(.legend.horizontal, .timeline>.header .legend):
(.legend>.item):
(.legend>.item .dot):
(.legend>.item .dot img, .legend>.item .dot .text):
(.legend>.item .dot>img, .legend>.item .dot>.text):
(.timeline.legend>.item .dot::before):
(.timeline.legend>.item .dot::after):
(.legend>.item .label):
(.lengend, .timeline>.content .lengend): Deleted.
(.lengend.horizontal, .timeline>.header .lengend): Deleted.
(.lengend>.item): Deleted.
(.lengend>.item .dot): Deleted.
(.lengend>.item .dot img, .lengend>.item .dot .text): Deleted.
(.lengend>.item .dot>img, .lengend>.item .dot>.text): Deleted.
(.timeline.lengend>.item .dot::before): Deleted.
(.timeline.lengend>.item .dot::after): Deleted.
(.lengend>.item .label): Deleted.
- 3:00 PM Changeset in webkit [278377] by
-
- 3 edits4 adds in trunk
Hit-testing does not account for clip-path set on parent of <iframe>
https://bugs.webkit.org/show_bug.cgi?id=226499
<rdar://problem/77317612>
Reviewed by Simon Fraser.
Source/WebCore:
Before considering hit-testing children layers, we should ensure that the current RenderLayer doesn't have styles
set on its renderer that would clip the layer in such a way that the hit test location wouldn't yield a positive
result.
Tests: css3/masking/clip-path-hit-test-on-absolute-position-iframe-parent.html
css3/masking/clip-path-hit-test-on-iframe-parent.html
- rendering/RenderLayer.cpp:
(WebCore::RenderLayer::hitTestLayer):
LayoutTests:
Add new tests checking that we don't hit-tests elements when the location is
part of an <iframe> clipped by the clip-path property set on a parent element.
We test the case where the <iframe> hasposition: absoluteas well as the
defaultposition.or https://bugs.webkit.org/show_bug.cgi?id=226499
- css3/masking/clip-path-hit-test-on-absolute-position-iframe-parent-expected.txt: Added.
- css3/masking/clip-path-hit-test-on-absolute-position-iframe-parent.html: Added.
- css3/masking/clip-path-hit-test-on-iframe-parent-expected.txt: Added.
- css3/masking/clip-path-hit-test-on-iframe-parent.html: Added.
- 2:51 PM Changeset in webkit [278376] by
-
- 4 edits2 adds in trunk
REGRESSION (r275227): Check boxes on V-Safe site flicker when selected
https://bugs.webkit.org/show_bug.cgi?id=226549
<rdar://problem/77722651>
Reviewed by Simon Fraser.
Source/WebCore:
When checking equality for StyleCachedImage, check whether the backing CSSImageValue is equal even if the pointer is different.
Test: webanimations/background-image-css-variable-no-transition.html
- rendering/style/StyleCachedImage.cpp:
(WebCore::StyleCachedImage::operator== const):
LayoutTests:
Check that a background-image set to a CSS variable doesn't yield a transition when another style property changes.
- webanimations/background-image-css-variable-no-transition-expected.txt: Added.
- webanimations/background-image-css-variable-no-transition.html: Added.
- webanimations/empty-keyframes-crash.html: motify this existing test which relie on the buggy behavior to trigger
a transition.
- 2:47 PM Changeset in webkit [278375] by
-
- 2 edits in trunk/Source/JavaScriptCore
Fix build error with ENABLE_DFG_JIT=OFF
https://bugs.webkit.org/show_bug.cgi?id=226550
Reviewed by Mark Lam.
- jit/JITPlan.cpp:
(JSC::JITPlan::compileInThread):
- 2:35 PM Changeset in webkit [278374] by
-
- 14 edits in trunk/Source
REGRESSION(r276993): 5 TestWebKitAPI.AudioRoutingArbitration (api-tests) are constant failures
https://bugs.webkit.org/show_bug.cgi?id=226104
<rdar://77998049>
Reviewed by Eric Carlson.
Source/WebCore:
Add a mechanism for a client to wait until an AudioSession is created or changed before taking
an action.
- platform/audio/AudioSession.cpp:
(WebCore::audioSessionChangedObservers):
(WebCore::AudioSession::sharedSession):
(WebCore::AudioSession::setSharedSession):
(WebCore::AudioSession::addAudioSessionChangedObserver):
- platform/audio/AudioSession.h:
Source/WebKit:
In r276993, AudioSessionRoutingArbitration was moved from being initiated in the WebContent process
and dispatched to the UIProcess, to being dispatched to the GPU process. However two problems occurred:
1) The UIProcess no longer knows about routing arbitration, which is reasonable for the feature, but
breaks an API test that queries arbitration status in the UIProcess.
2) A sandbox violation causes routing arbitration to fail in the GPU process regardless.
We could open up the sandbox to allow routing arbitration to succeed (and come up with a way to push
state changes up to the UIProcess for testing purposes), but it's not technically necessary for
arbitration to occur there. Instead, just revert to the status-quo-ante behavior of having arbitration
take place in the UIProcess, and just add a new set of messages from the GPUConnoctionToWebProcess to
the GPUProcessConnection to facilitate arbitration.
Drive-by fix: AudioSessionRoutingArbitrator is a supplement to WebProcess, and as such it's created
at WebProcess creation time. However, it also causes an AudioSession to be created by attempting to
add itself as a client. This is bad on iOS, where it could cause hangs due to AVAudioSession calls.
So, add a mechanism to be notified when an AudioSession eventually does get created, and add the
arbitrator as a client then.
- GPUProcess/GPUConnectionToWebProcess.cpp:
(WebKit::GPUConnectionToWebProcess::GPUConnectionToWebProcess):
- GPUProcess/mac/LocalAudioSessionRoutingArbitrator.cpp:
(WebKit::LocalAudioSessionRoutingArbitrator::create):
(WebKit::LocalAudioSessionRoutingArbitrator::LocalAudioSessionRoutingArbitrator):
(WebKit::LocalAudioSessionRoutingArbitrator::processDidTerminate):
(WebKit::LocalAudioSessionRoutingArbitrator::beginRoutingArbitrationWithCategory):
(WebKit::LocalAudioSessionRoutingArbitrator::leaveRoutingAbritration):
- GPUProcess/mac/LocalAudioSessionRoutingArbitrator.h:
- GPUProcess/media/RemoteAudioSessionProxyManager.h:
(WebKit::RemoteAudioSessionProxyManager::session):
- UIProcess/GPU/GPUProcessProxy.h:
- WebProcess/GPU/GPUProcessConnection.cpp:
(WebKit::GPUProcessConnection::beginRoutingArbitrationWithCategory):
(WebKit::GPUProcessConnection::endRoutingArbitration):
- WebProcess/GPU/GPUProcessConnection.h:
- WebProcess/GPU/GPUProcessConnection.messages.in:
- WebProcess/cocoa/AudioSessionRoutingArbitrator.cpp:
(WebKit::AudioSessionRoutingArbitrator::AudioSessionRoutingArbitrator):
- WebProcess/cocoa/AudioSessionRoutingArbitrator.h:
- 2:33 PM Changeset in webkit [278373] by
-
- 2 edits in trunk/Source/WebKit
REGRESSION(r277217?): ASSERTION FAILED: Unhandled message RemoteLegacyCDMSession_SendError to 10 assertionFailureDueToUnreachableCode
https://bugs.webkit.org/show_bug.cgi?id=226545
<rdar://78001450>
Reviewed by Eric Carlson.
Add message handlers for RemoteLegacyCDMProxy and RemoteLegacyCDMSessionProxy.
- GPUProcess/GPUConnectionToWebProcess.cpp:
(WebKit::GPUConnectionToWebProcess::dispatchMessage):
(WebKit::GPUConnectionToWebProcess::dispatchSyncMessage):
- 2:09 PM Changeset in webkit [278372] by
-
- 11 edits in trunk/Source/WebCore
Drop legacy ActiveDOMObject::setPendingActivity() / unsetPendingActivity()
https://bugs.webkit.org/show_bug.cgi?id=226544
Reviewed by Darin Adler.
Drop legacy ActiveDOMObject::setPendingActivity() / unsetPendingActivity(). They are too leak-prone. The modern
way to do this is to either override ActiveDOMObject::virtualHasPendingActivity() or use
ActiveDOMObject::makePendingActivity().
- Modules/applepay/ApplePaySession.cpp:
(WebCore::ApplePaySession::begin):
(WebCore::ApplePaySession::abort):
(WebCore::ApplePaySession::completePayment):
(WebCore::ApplePaySession::didCancelPaymentSession):
(WebCore::ApplePaySession::stop):
(WebCore::ApplePaySession::suspend):
(WebCore::ApplePaySession::virtualHasPendingActivity const):
(WebCore::ApplePaySession::didReachFinalState): Deleted.
- Modules/applepay/ApplePaySession.h:
- Modules/mediasource/MediaSource.cpp:
(WebCore::MediaSource::addedToRegistry):
(WebCore::MediaSource::removedFromRegistry):
(WebCore::MediaSource::virtualHasPendingActivity const):
- Modules/mediasource/MediaSource.h:
- Modules/mediastream/RTCDataChannel.cpp:
(WebCore::RTCDataChannel::create):
(WebCore::RTCDataChannel::close):
(WebCore::RTCDataChannel::virtualHasPendingActivity const):
- Modules/mediastream/RTCDataChannel.h:
- dom/ActiveDOMObject.h:
- page/EventSource.cpp:
(WebCore::EventSource::create):
(WebCore::EventSource::networkRequestEnded):
(WebCore::EventSource::close):
(WebCore::EventSource::abortConnectionAttempt):
(WebCore::EventSource::virtualHasPendingActivity const):
- page/EventSource.h:
- workers/Worker.cpp:
(WebCore::Worker::create):
(WebCore::Worker::virtualHasPendingActivity const):
(WebCore::Worker::notifyFinished):
- 1:45 PM Changeset in webkit [278371] by
-
- 12 edits in trunk/Source/JavaScriptCore
We should drop B3 values while running Air
https://bugs.webkit.org/show_bug.cgi?id=226187
Reviewed by Saam Barati.
We must keep the following values:
- WasmBoundsCheck, to know whether it is Pinned or Maximum, and if it is pinned find its argument.
- CCall/Patch/Check/CheckAdd/CheckSub/CheckMul and all of their children, because all of these are lowered to Air::Patchpoint, which needs to know the type of its arguments, and does so by looking at the children of its origin.
I intend to fix these in later patches if possible.
Finally we must preserve all B3 values in the following cases:
- if we dump the disassembly or the Air graph: because otherwise we cannot print the origins
- if we are using the sampling profiler, because it relies on PCToCodeOriginMap which we cannot accurately fill without these origins.
We must also keep m_tuples alive, as it is used by Patchpoints in Air to understand the types of their arguments.
We also don't touch StackSlots (in this patch), because one of them is captured by FTL::State.
Also now PCToOriginMap has a Vector with no inline capacity, since it is either quite large (if needed) or empty (otherwise).
The performance impact of this is a progression on various RAMification subtests on Mac, but is more mitigated on iPhone7, with various regressions.
I suspect these to be noise, and will monitor the performance bots post-landing to make sure of it.
- b3/B3LowerToAir.cpp:
(JSC::B3::lowerToAir):
- b3/B3Procedure.cpp:
(JSC::B3::Procedure::freeUnneededB3ValuesAfterLowering):
- b3/B3Procedure.h:
(JSC::B3::Procedure::releasePCToOriginMap):
(JSC::B3::Procedure::setNeedsPCToOriginMap):
(JSC::B3::Procedure::needsPCToOriginMap):
- b3/B3SparseCollection.h:
(JSC::B3::SparseCollection::clearAll):
(JSC::B3::SparseCollection::filterAndTransfer):
- b3/air/AirCode.cpp:
(JSC::B3::Air::Code::Code):
- b3/air/AirCode.h:
(JSC::B3::Air::Code::shouldPreserveB3Origins const):
- b3/air/AirGenerate.cpp:
(JSC::B3::Air::generateWithAlreadyAllocatedRegisters):
- ftl/FTLCompile.cpp:
(JSC::FTL::compile):
- ftl/FTLState.cpp:
(JSC::FTL::State::State):
- 1:34 PM Changeset in webkit [278370] by
-
- 4 edits in trunk/Source/WebKit
[iOS] Fix IOKit sandbox violations
https://bugs.webkit.org/show_bug.cgi?id=226546
<rdar://78523469>
Reviewed by Tim Horton.
Fix IOKit sandbox violations in the WebContent process on iOS.
- Configurations/SandboxProfiles.xcconfig:
- Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb.in:
- WebKit.xcodeproj/project.pbxproj:
- 12:02 PM Changeset in webkit [278369] by
-
- 13 edits in trunk
Drop Checked::safeGet()
https://bugs.webkit.org/show_bug.cgi?id=226537
Reviewed by Geoffrey Garen.
Drop Checked::safeGet() and replace with uses of Checked::operator T() or Checked::value().
safeGet() is a bit akward, having both a return value and an out-parameter.
Source/JavaScriptCore:
- dfg/DFGAbstractInterpreterInlines.h:
(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):
- runtime/JSArray.cpp:
(JSC::JSArray::appendMemcpy):
(JSC::JSArray::unshiftCountWithAnyIndexingType):
- runtime/JSStringJoiner.cpp:
(JSC::JSStringJoiner::joinedLength const):
- wasm/WasmFormat.cpp:
(JSC::Wasm::Segment::create):
- wasm/WasmOperations.cpp:
(JSC::Wasm::JSC_DEFINE_JIT_OPERATION):
- wasm/WasmTable.cpp:
(JSC::Wasm::Table::grow):
Source/WebKit:
- UIProcess/mac/TextCheckerMac.mm:
(WebKit::TextChecker::updateSpellingUIWithGrammarString):
Source/WTF:
- wtf/CheckedArithmetic.h:
(WTF::Checked::value const):
(WTF::operator+):
(WTF::operator-):
(WTF::operator*):
(WTF::operator/):
Tools:
- TestWebKitAPI/Tests/WTF/CheckedArithmeticOperations.cpp:
(TestWebKitAPI::CheckedArithmeticTester::run):
- 11:42 AM Changeset in webkit [278368] by
-
- 8 edits in branches/safari-612.1.16-branch/Source
Versioning.
WebKit-7612.1.16.2
- 11:26 AM Changeset in webkit [278367] by
-
- 1 copy in tags/Safari-612.1.16.1
Tag Safari-612.1.16.1.
- 11:14 AM Changeset in webkit [278366] by
-
- 2 edits in trunk/Source/JavaScriptCore
Add globalObject API set property test
https://bugs.webkit.org/show_bug.cgi?id=226542
<rdar://78287979>
Reviewed by Alexey Shvayka.
- API/tests/testapi.cpp:
(TestAPI::testJSObjectSetOnGlobalObjectSubclassDefinition):
(testCAPIViaCpp):
- 10:40 AM Changeset in webkit [278365] by
-
- 8 edits in branches/safari-612.1.16-branch/Source
Versioning.
WebKit-7612.1.16.1
- 10:38 AM Changeset in webkit [278364] by
-
- 5 edits in trunk
Add support for "relative color syntax" for color()
https://bugs.webkit.org/show_bug.cgi?id=226513
Reviewed by Darin Adler.
Source/WebCore:
CSS Color 5 has recently been update to support relative color syntax for
the color() function in addition to the existing rgb(), hsl(), hwb(), lab()
and lch().
Took the opertunity to refactor other relative color syntax parsing to share
more code between relative and non-relative parsers using a shared function
with lambdas to differentiate the component consumers. This was done for all
the color types except rgb() and hsl(), which have notable differences in
parsing between the relative and non-relative version.
- css/parser/CSSPropertyParserHelpers.cpp:
(WebCore::CSSPropertyParserHelpers::parseNonRelativeRGBParameters):
(WebCore::CSSPropertyParserHelpers::parseRGBParameters):
(WebCore::CSSPropertyParserHelpers::colorByNormalizingHSLComponents):
(WebCore::CSSPropertyParserHelpers::parseRelativeHSLParameters):
(WebCore::CSSPropertyParserHelpers::parseNonRelativeHSLParameters):
(WebCore::CSSPropertyParserHelpers::parseHSLParameters):
(WebCore::CSSPropertyParserHelpers::parseHWBParameters):
(WebCore::CSSPropertyParserHelpers::parseRelativeHWBParameters):
(WebCore::CSSPropertyParserHelpers::parseNonRelativeHWBParameters):
(WebCore::CSSPropertyParserHelpers::parseLabParameters):
(WebCore::CSSPropertyParserHelpers::parseRelativeLabParameters):
(WebCore::CSSPropertyParserHelpers::parseNonRelativeLabParameters):
(WebCore::CSSPropertyParserHelpers::parseLCHParameters):
(WebCore::CSSPropertyParserHelpers::parseRelativeLCHParameters):
(WebCore::CSSPropertyParserHelpers::parseNonRelativeLCHParameters):
(WebCore::CSSPropertyParserHelpers::parseColorFunctionForRGBTypes):
(WebCore::CSSPropertyParserHelpers::parseRelativeColorFunctionForRGBTypes):
(WebCore::CSSPropertyParserHelpers::parseColorFunctionForXYZParameters):
(WebCore::CSSPropertyParserHelpers::parseRelativeColorFunctionForXYZParameters):
(WebCore::CSSPropertyParserHelpers::parseRelativeColorFunctionParameters):
(WebCore::CSSPropertyParserHelpers::parseNonRelativeColorFunctionParameters):
(WebCore::CSSPropertyParserHelpers::parseColorFunctionParameters):
LayoutTests:
Updated test and results now that we support relative color syntax
for color(srgb ...), color(a98-rgb ...), color(rec2020 ...),
color(prophoto-rgb ...) and color(xyz ...).
- fast/css/parsing-relative-color-syntax-expected.txt:
- fast/css/parsing-relative-color-syntax.html:
- 10:07 AM Changeset in webkit [278363] by
-
- 2 edits in trunk/Tools
MediaSessionCoordinator API test is failing,
https://bugs.webkit.org/show_bug.cgi?id=226460
rdar://78680005
Reviewed by Eric Carlson.
When leaving a MediaSessionCoordinator from the JS side; there's no callback
occurring from the MediaSessionCoordinatorPrivate to the MediaSessionCoordinator
(which is what this test was about). A state change callback should only occur
when it's the MediaSessionCoordinatorPrivate that leaves.
- TestWebKitAPI/Tests/WebKit/MediaSessionCoordinatorTest.mm:
(TestWebKitAPI::TEST_F):
- 10:01 AM Changeset in webkit [278362] by
-
- 4 edits2 adds in trunk
Add 'mix' override with bool-vectors to MSL translator
https://bugs.webkit.org/show_bug.cgi?id=226366
Source/ThirdParty/ANGLE:
Reviewed by Dean Jackson.
Add in 'mix' overrides, and logic for selecting mix with bool when necessary.
- src/compiler/translator/TranslatorMetalDirect/EmitMetal.cpp:
(GetOperatorString):
(GenMetalTraverser::visitAggregate):
- src/compiler/translator/TranslatorMetalDirect/ProgramPrelude.cpp:
LayoutTests:
Add a short test to ensure bool-vectors can be used in mix.
Reviewed by Dean Jackson.
- fast/canvas/webgl/shader-mix-with-bool-expected.txt: Added.
- 9:59 AM Changeset in webkit [278361] by
-
- 1 copy in tags/Safari-612.1.16
Tag Safari-612.1.16.
- 9:53 AM Changeset in webkit [278360] by
-
- 2 edits in branches/safari-612.1.16-branch/Source/WebKit
Cherry-pick r278317. rdar://problem/78768874
Resume WebIDBServer when it is about to be closed
https://bugs.webkit.org/show_bug.cgi?id=226502
rdar://78691498
Reviewed by Chris Dumez.
We started to acquire m_serverLock in WebIDBServer::close() in r278179 to stop database activities on the main
thread. However, m_serverLock may already be held for suspension, and WebIDBServer::close() may be called
before resume(). We need to resume WebIDBServer so m_serverLock can be acquired for stopping database activities.
This also makes sure background thread is resumed before WebIDBServer is removed from NetworkProcess.
- NetworkProcess/IndexedDB/WebIDBServer.cpp: (WebKit::WebIDBServer::~WebIDBServer): (WebKit::WebIDBServer::close):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@278317 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 9:44 AM Changeset in webkit [278359] by
-
- 8 edits2 adds in trunk
HTMLMediaElement::virtualHasPendingActivity may keep objects alive unnecessarily
https://bugs.webkit.org/show_bug.cgi?id=226529
<rdar://78726921>
Reviewed by Eric Carlson.
Source/WebCore:
In case a media element srcObject is set, its media player is no longer null, even if its srcObject is set back to null later on.
Its ended state is set to false so the media element is kept alive if an event listener is set on the element.
To prevent this, add a check to:
- keep the media element alive if its resource selection queue is not empty
- allow GC of a media element if its media player has no engine
A follow-up patch should allow GC a media element with an ended MediaStream.
Test: fast/mediastream/mediaElement-gc.html
- html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::virtualHasPendingActivity const):
- html/HTMLMediaElement.h:
- testing/Internals.cpp:
(WebCore::Internals::mediaElementCount const):
- testing/Internals.h:
- testing/Internals.idl:
LayoutTests:
- fast/mediastream/mediaElement-gc-expected.txt: Added.
- fast/mediastream/mediaElement-gc.html: Added.
- 9:42 AM Changeset in webkit [278358] by
-
- 38 edits in trunk
[Cocoa] _WKAuthenticatorAssertionResponse should specify the attachment type used
https://bugs.webkit.org/show_bug.cgi?id=225519
<rdar://problem/76554090>
Source/WebCore:
Patch by Garrett Davidson <garrett_davidson@apple.com> on 2021-06-02
Reviewed by Brent Fulgham.
Allow WebAuthn authenticators to pass back their attachment type and continue
plumbing through up to the authenticator coordinator.
Covered by manual tests.
- Modules/webauthn/AuthenticatorAssertionResponse.cpp:
(WebCore::AuthenticatorAssertionResponse::create):
(WebCore::AuthenticatorAssertionResponse::AuthenticatorAssertionResponse):
- Modules/webauthn/AuthenticatorAssertionResponse.h:
- Modules/webauthn/AuthenticatorAttestationResponse.cpp:
(WebCore::AuthenticatorAttestationResponse::create):
(WebCore::AuthenticatorAttestationResponse::AuthenticatorAttestationResponse):
- Modules/webauthn/AuthenticatorAttestationResponse.h:
- Modules/webauthn/AuthenticatorCoordinator.cpp:
(WebCore::AuthenticatorCoordinator::create const):
(WebCore::AuthenticatorCoordinator::discoverFromExternalSource const):
- Modules/webauthn/AuthenticatorCoordinatorClient.h:
- Modules/webauthn/AuthenticatorResponse.cpp:
(WebCore::AuthenticatorResponse::tryCreate):
(WebCore::AuthenticatorResponse::attachment const):
(WebCore::AuthenticatorResponse::AuthenticatorResponse):
- Modules/webauthn/AuthenticatorResponse.h:
- Modules/webauthn/fido/DeviceResponseConverter.cpp:
(fido::readCTAPMakeCredentialResponse):
(fido::readCTAPGetAssertionResponse):
- Modules/webauthn/fido/DeviceResponseConverter.h:
- Modules/webauthn/fido/U2fResponseConverter.cpp:
(fido::readU2fRegisterResponse):
(fido::readU2fSignResponse):
- Modules/webauthn/fido/U2fResponseConverter.h:
Source/WebKit:
Patch by Garrett Davidson <garrett_davidson@apple.com> on 2021-06-02
Reviewed by Brent Fulgham.
Have WebAuthn authenticators start passing back their attachment type, and plumb
it up through to the calling process.
- UIProcess/API/Cocoa/_WKAuthenticatorAssertionResponse.mm:
(-[_WKAuthenticatorAssertionResponse initWithClientDataJSON:rawId:extensions:authenticatorData:signature:userHandle:attachment:]):
(-[_WKAuthenticatorAssertionResponse initWithClientDataJSON:rawId:extensions:authenticatorData:signature:userHandle:]): Deleted.
- UIProcess/API/Cocoa/_WKAuthenticatorAssertionResponseInternal.h:
- UIProcess/API/Cocoa/_WKAuthenticatorAttestationResponse.mm:
(-[_WKAuthenticatorAttestationResponse initWithClientDataJSON:rawId:extensions:attestationObject:attachment:]):
(-[_WKAuthenticatorAttestationResponse initWithClientDataJSON:rawId:extensions:attestationObject:]): Deleted.
- UIProcess/API/Cocoa/_WKAuthenticatorAttestationResponseInternal.h:
- UIProcess/API/Cocoa/_WKAuthenticatorResponse.h:
- UIProcess/API/Cocoa/_WKAuthenticatorResponse.mm:
(-[_WKAuthenticatorResponse initWithClientDataJSON:rawId:extensions:attachment:]):
(-[_WKAuthenticatorResponse initWithClientDataJSON:rawId:extensions:]): Deleted.
- UIProcess/API/Cocoa/_WKAuthenticatorResponseInternal.h:
- UIProcess/API/Cocoa/_WKWebAuthenticationPanel.mm:
(authenticatorAttachmentToWKAuthenticatorAttachment):
(wkAuthenticatorAttestationResponse):
(-[_WKWebAuthenticationPanel makeCredentialWithChallenge:origin:options:completionHandler:]):
(wkAuthenticatorAssertionResponse):
(-[_WKWebAuthenticationPanel getAssertionWithChallenge:origin:options:completionHandler:]):
- UIProcess/WebAuthentication/Cocoa/LocalAuthenticator.mm:
(WebKit::LocalAuthenticatorInternal::getExistingCredentials):
(WebKit::LocalAuthenticator::continueMakeCredentialAfterUserVerification):
(WebKit::LocalAuthenticator::continueMakeCredentialAfterAttested):
- UIProcess/WebAuthentication/WebAuthenticatorCoordinatorProxy.cpp:
(WebKit::WebAuthenticatorCoordinatorProxy::handleRequest):
- UIProcess/WebAuthentication/WebAuthenticatorCoordinatorProxy.h:
- UIProcess/WebAuthentication/WebAuthenticatorCoordinatorProxy.messages.in:
- UIProcess/WebAuthentication/fido/CtapAuthenticator.cpp:
(WebKit::CtapAuthenticator::continueMakeCredentialAfterResponseReceived):
(WebKit::CtapAuthenticator::continueGetAssertionAfterResponseReceived):
(WebKit::CtapAuthenticator::continueGetNextAssertionAfterResponseReceived):
- UIProcess/WebAuthentication/fido/U2fAuthenticator.cpp:
(WebKit::U2fAuthenticator::continueRegisterCommandAfterResponseReceived):
(WebKit::U2fAuthenticator::continueSignCommandAfterResponseReceived):
- WebAuthnProcess/WebAuthnConnectionToWebProcess.cpp:
(WebKit::WebAuthnConnectionToWebProcess::handleRequest):
- WebAuthnProcess/WebAuthnConnectionToWebProcess.h:
- WebAuthnProcess/WebAuthnConnectionToWebProcess.messages.in:
Tools:
Patch by Garrett Davidson <davidson.garrettm@gmail.com> on 2021-06-02
Reviewed by Brent Fulgham.
Update the CTAP tests to specify the new attachment parameter. All of these tests
assume a cross platform authenticator.
- TestWebKitAPI/Tests/WebCore/CtapResponseTest.cpp:
(TestWebKitAPI::TEST):
- 9:34 AM WebKitFlatpakSDK/DebugWithRR edited by
- (diff)
- 9:29 AM Changeset in webkit [278357] by
-
- 2 edits in trunk/Source/WebCore
Reduce logging in MediaElementSession::playbackStateChangePermitted
https://bugs.webkit.org/show_bug.cgi?id=226531
Reviewed by Eric Carlson.
Downgrade logging to INFO level for the regular code path.
Keep logging more rare case as before.
- html/MediaElementSession.cpp:
(WebCore::MediaElementSession::playbackStateChangePermitted const):
- 9:26 AM Changeset in webkit [278356] by
-
- 7 edits in trunk
Convert small JIT pool tests into executable fuzzing
https://bugs.webkit.org/show_bug.cgi?id=226279
Source/JavaScriptCore:
Right now, we try to test our engine on a small JIT pool. This isn't a known configuration for any
actual ports and causes issues if we run out of JIT memory when we need to compile an OSR exit.
Instead of testing such a small pool we should just fuzz each executable allocation that says it
can fail.
The current fuzzing doesn't do a good job tracking the number of DFG/FTL compiles when allocations
fail, so when enabled those tests will just exit early. Also, right now we use a random seed picked
by the engine for these tests, which makes it hard to reproduce crashes on the bots. If we see
flakiness on the bots we can have the harness pass in a number so it gets logged in the repro command.
Reviewed by Michael Saboff.
- bytecode/CodeBlock.cpp:
(JSC::CodeBlock::numberOfDFGCompiles):
- jit/ExecutableAllocationFuzz.cpp:
(JSC::doExecutableAllocationFuzzing):
- jsc.cpp:
(runJSC):
Tools:
Reviewed by Michael Saboff.
Right now, we try to test our engine on a small JIT pool. This isn't a known configuration for any
actual ports and causes issues if we run out of JIT memory when we need to compile an OSR exit.
Instead of testing such a small pool we should just fuzz each executable allocation that says it
can fail.
The current fuzzing doesn't do a good job tracking the number of DFG/FTL compiles when allocations
fail, so when enabled those tests will just exit early. Also, right now we use a random seed picked
by the engine for these tests, which makes it hard to reproduce crashes on the bots. If we see
flakiness on the bots we can have the harness pass in a number so it gets logged in the repro command.
- Scripts/jsc-stress-test-helpers/js-executable-allocation-fuzz:
- Scripts/run-jsc-stress-tests:
- 9:21 AM Changeset in webkit [278355] by
-
- 5 edits in trunk/Source
Style::Scope should use CheckedPtr
https://bugs.webkit.org/show_bug.cgi?id=226530
Reviewed by Sam Weinig.
Source/WebCore:
Instead of WeakPtr.
- style/StyleScope.cpp:
(WebCore::Style::Scope::collectResolverScopes):
- style/StyleScope.h:
Source/WTF:
- wtf/CMakeLists.txt:
- 9:20 AM Changeset in webkit [278354] by
-
- 44 edits2 moves in trunk/Source/WebCore
Rename RootInlineBox to LegacyRootInlineBox
https://bugs.webkit.org/show_bug.cgi?id=226533
Reviewed by Sam Weinig.
More legacy line layout path renaming.
- Headers.cmake:
- Sources.txt:
- WebCore.xcodeproj/project.pbxproj:
- dom/ContainerNode.cpp:
- html/HTMLTextFormControlElement.cpp:
(WebCore::getNextSoftBreak):
(WebCore::HTMLTextFormControlElement::valueWithHardLineBreaks const):
- layout/integration/LayoutIntegrationLineIterator.h:
(WebCore::LayoutIntegration::LineIterator::LineIterator):
(WebCore::LayoutIntegration::PathLine::legacyRootInlineBox const):
- layout/integration/LayoutIntegrationLineIteratorLegacyPath.h:
(WebCore::LayoutIntegration::LineIteratorLegacyPath::LineIteratorLegacyPath):
(WebCore::LayoutIntegration::LineIteratorLegacyPath::selectionTopForHitTesting const):
(WebCore::LayoutIntegration::LineIteratorLegacyPath::legacyRootInlineBox const):
- layout/integration/LayoutIntegrationLineIteratorModernPath.h:
(WebCore::LayoutIntegration::LineIteratorModernPath::legacyRootInlineBox const):
- layout/integration/LayoutIntegrationRunIteratorLegacyPath.h:
(WebCore::LayoutIntegration::RunIteratorLegacyPath::RunIteratorLegacyPath):
(WebCore::LayoutIntegration::RunIteratorLegacyPath::rootInlineBox const):
- rendering/EllipsisBox.cpp:
(WebCore::EllipsisBox::markupBox const):
(WebCore::EllipsisBox::selectionRect):
(WebCore::EllipsisBox::paintSelection):
- rendering/FloatingObjects.cpp:
- rendering/FloatingObjects.h:
(WebCore::FloatingObject::originatingLine const):
(WebCore::FloatingObject::setOriginatingLine):
- rendering/HitTestResult.cpp:
(WebCore::HitTestResult::innerTextIfTruncated const):
- rendering/InlineFlowBox.cpp:
(WebCore::InlineFlowBox::computeLogicalBoxHeights):
(WebCore::InlineFlowBox::nodeAtPoint):
(WebCore::InlineFlowBox::constrainToLineTopAndBottomIfNeeded const):
- rendering/InlineFlowBox.h:
- rendering/InlineTextBox.cpp:
(WebCore::InlineTextBox::paintMarkedTextBackground):
- rendering/LegacyInlineBox.cpp:
(WebCore::LegacyInlineBox::root const):
(WebCore::LegacyInlineBox::root):
- rendering/LegacyInlineBox.h:
- rendering/LegacyLineLayout.cpp:
(WebCore::LegacyLineLayout::createRootInlineBox):
(WebCore::LegacyLineLayout::createAndAppendRootInlineBox):
(WebCore::LegacyLineLayout::constructLine):
(WebCore::setLogicalWidthForTextRun):
(WebCore::LegacyLineLayout::updateRubyForJustifiedText):
(WebCore::LegacyLineLayout::updateLogicalWidthForAlignment):
(WebCore::LegacyLineLayout::computeInlineDirectionPositionsForLine):
(WebCore::LegacyLineLayout::computeInlineDirectionPositionsForSegment):
(WebCore::LegacyLineLayout::removeInlineBox const):
(WebCore::LegacyLineLayout::computeBlockDirectionPositionsForLine):
(WebCore::LegacyLineLayout::createLineBoxesFromBidiRuns):
(WebCore::deleteLineRange):
(WebCore::LegacyLineLayout::layoutRunsAndFloats):
(WebCore::LegacyLineLayout::layoutRunsAndFloatsInRange):
(WebCore::LegacyLineLayout::reattachCleanLineFloats):
(WebCore::LegacyLineLayout::checkFloatInCleanLine):
(WebCore::LegacyLineLayout::determineStartPosition):
(WebCore::LegacyLineLayout::determineEndPosition):
(WebCore::LegacyLineLayout::checkPaginationAndFloatsAtEndLine):
(WebCore::LegacyLineLayout::lineWidthForPaginatedLineChanged const):
(WebCore::LegacyLineLayout::matchedEndLine):
(WebCore::LegacyLineLayout::addOverflowFromInlineChildren):
(WebCore::LegacyLineLayout::lineCountUntil const):
(WebCore::LegacyLineLayout::deleteEllipsisLineBoxes):
(WebCore::LegacyLineLayout::checkLinesForTextOverflow):
(WebCore::LegacyLineLayout::updateFragmentForLine const):
- rendering/LegacyLineLayout.h:
(WebCore::LegacyLineLayout::firstRootBox const):
(WebCore::LegacyLineLayout::lastRootBox const):
- rendering/LegacyRootInlineBox.cpp: Renamed from Source/WebCore/rendering/RootInlineBox.cpp.
(WebCore::containingFragmentMap):
(WebCore::LegacyRootInlineBox::LegacyRootInlineBox):
(WebCore::LegacyRootInlineBox::~LegacyRootInlineBox):
(WebCore::LegacyRootInlineBox::detachEllipsisBox):
(WebCore::LegacyRootInlineBox::clearTruncation):
(WebCore::LegacyRootInlineBox::isHyphenated const):
(WebCore::LegacyRootInlineBox::baselinePosition const):
(WebCore::LegacyRootInlineBox::lineHeight const):
(WebCore::LegacyRootInlineBox::lineCanAccommodateEllipsis):
(WebCore::LegacyRootInlineBox::placeEllipsis):
(WebCore::LegacyRootInlineBox::placeEllipsisBox):
(WebCore::LegacyRootInlineBox::paintEllipsisBox const):
(WebCore::LegacyRootInlineBox::paint):
(WebCore::LegacyRootInlineBox::nodeAtPoint):
(WebCore::LegacyRootInlineBox::adjustPosition):
(WebCore::LegacyRootInlineBox::childRemoved):
(WebCore::LegacyRootInlineBox::containingFragment const):
(WebCore::LegacyRootInlineBox::clearContainingFragment):
(WebCore::LegacyRootInlineBox::setContainingFragment):
(WebCore::LegacyRootInlineBox::alignBoxesInBlockDirection):
(WebCore::LegacyRootInlineBox::beforeAnnotationsAdjustment const):
(WebCore::LegacyRootInlineBox::lineSnapAdjustment const):
(WebCore::LegacyRootInlineBox::lineSelectionGap):
(WebCore::LegacyRootInlineBox::selectionState):
(WebCore::LegacyRootInlineBox::firstSelectedBox):
(WebCore::LegacyRootInlineBox::lastSelectedBox):
(WebCore::LegacyRootInlineBox::selectionTop const):
(WebCore::blockBeforeWithinSelectionRoot):
(WebCore::LegacyRootInlineBox::selectionTopAdjustedForPrecedingBlock const):
(WebCore::LegacyRootInlineBox::selectionBottom const):
(WebCore::LegacyRootInlineBox::blockFlow const):
(WebCore::LegacyRootInlineBox::lineBreakBidiStatus const):
(WebCore::LegacyRootInlineBox::setLineBreakInfo):
(WebCore::LegacyRootInlineBox::ellipsisBox const):
(WebCore::LegacyRootInlineBox::removeLineBoxFromRenderObject):
(WebCore::LegacyRootInlineBox::extractLineBoxFromRenderObject):
(WebCore::LegacyRootInlineBox::attachLineBoxToRenderObject):
(WebCore::LegacyRootInlineBox::paddedLayoutOverflowRect const):
(WebCore::setAscentAndDescent):
(WebCore::LegacyRootInlineBox::ascentAndDescentForBox const):
(WebCore::LegacyRootInlineBox::verticalPositionForBox):
(WebCore::LegacyRootInlineBox::includeLeadingForBox const):
(WebCore::LegacyRootInlineBox::includeFontForBox const):
(WebCore::LegacyRootInlineBox::includeGlyphsForBox const):
(WebCore::LegacyRootInlineBox::includeInitialLetterForBox const):
(WebCore::LegacyRootInlineBox::includeMarginForBox const):
(WebCore::LegacyRootInlineBox::fitsToGlyphs const):
(WebCore::LegacyRootInlineBox::includesRootLineBoxFontOrLeading const):
(WebCore::LegacyRootInlineBox::outputLineBox const):
(WebCore::LegacyRootInlineBox::boxName const):
- rendering/LegacyRootInlineBox.h: Renamed from Source/WebCore/rendering/RootInlineBox.h.
(WebCore::LegacyRootInlineBox::lineTop const):
(WebCore::LegacyRootInlineBox::lineBottom const):
(WebCore::LegacyRootInlineBox::lineBoxTop const):
(WebCore::LegacyRootInlineBox::lineBoxBottom const):
(WebCore::LegacyRootInlineBox::lineBoxHeight const):
(WebCore::LegacyRootInlineBox::paginationStrut const):
(WebCore::LegacyRootInlineBox::setPaginationStrut):
(WebCore::LegacyRootInlineBox::isFirstAfterPageBreak const):
(WebCore::LegacyRootInlineBox::setIsFirstAfterPageBreak):
(WebCore::LegacyRootInlineBox::paginatedLineWidth const):
(WebCore::LegacyRootInlineBox::setPaginatedLineWidth):
(WebCore::LegacyRootInlineBox::selectionHeight const):
(WebCore::LegacyRootInlineBox::selectionHeightAdjustedForPrecedingBlock const):
(WebCore::LegacyRootInlineBox::setLineTopBottomPositions):
(WebCore::LegacyRootInlineBox::lineBreakObj const):
(WebCore::LegacyRootInlineBox::lineBreakPos const):
(WebCore::LegacyRootInlineBox::setLineBreakPos):
(WebCore::LegacyRootInlineBox::appendFloat):
(WebCore::LegacyRootInlineBox::removeFloat):
(WebCore::LegacyRootInlineBox::floatsPtr):
(WebCore::LegacyRootInlineBox::baselineType const):
(WebCore::LegacyRootInlineBox::hasAnnotationsBefore const):
(WebCore::LegacyRootInlineBox::hasAnnotationsAfter const):
(WebCore::LegacyRootInlineBox::logicalTopVisualOverflow const):
(WebCore::LegacyRootInlineBox::logicalBottomVisualOverflow const):
(WebCore::LegacyRootInlineBox::logicalTopLayoutOverflow const):
(WebCore::LegacyRootInlineBox::logicalBottomLayoutOverflow const):
(WebCore::LegacyRootInlineBox::isTrailingFloatsRootInlineBox const):
(WebCore::LegacyRootInlineBox::nextRootBox const):
(WebCore::LegacyRootInlineBox::prevRootBox const):
- rendering/RenderBlock.cpp:
(WebCore::RenderBlock::simplifiedNormalFlowLayout):
- rendering/RenderBlockFlow.cpp:
(WebCore::calculateMinimumPageHeight):
(WebCore::needsAppleMailPaginationQuirk):
(WebCore::RenderBlockFlow::adjustLinePositionForPagination):
(WebCore::RenderBlockFlow::layoutLineGridBox):
(WebCore::RenderBlockFlow::markLinesDirtyInBlockRange):
(WebCore::RenderBlockFlow::inlineSelectionGaps):
(WebCore::shouldIncludeLinesForParentLineCount):
(WebCore::RenderBlockFlow::lineCount const):
(WebCore::RenderBlockFlow::clearTruncation):
(WebCore::RenderBlockFlow::addFocusRingRectsForInlineChildren):
(WebCore::RenderBlockFlow::outputLineTreeAndMark const):
(WebCore::shouldCheckLines): Deleted.
- rendering/RenderBlockFlow.h:
(WebCore::RenderBlockFlow::lineGridBox const):
(WebCore::RenderBlockFlow::setLineGridBox):
(WebCore::RenderBlockFlow::firstRootBox const):
(WebCore::RenderBlockFlow::lastRootBox const):
- rendering/RenderBox.cpp:
(WebCore::RenderBox::positionLineBox):
- rendering/RenderBoxModelObject.cpp:
(WebCore::RenderBoxModelObject::paintMaskForTextFillBox):
- rendering/RenderDeprecatedFlexibleBox.cpp:
(WebCore::lineAtIndex):
(WebCore::getHeightForLineCount):
(WebCore::RenderDeprecatedFlexibleBox::applyLineClamp):
(WebCore::shouldCheckLines): Deleted.
- rendering/RenderFragmentedFlow.cpp:
(WebCore::RenderFragmentedFlow::checkLinesConsistency const):
- rendering/RenderFragmentedFlow.h:
- rendering/RenderInline.cpp:
(WebCore::RenderInline::generateCulledLineBoxRects const):
(WebCore::RenderInline::linesVisualOverflowBoundingBox const):
(WebCore::RenderInline::linesVisualOverflowBoundingBoxInFragment const):
(WebCore::RenderInline::paintOutline):
- rendering/RenderLineBoxList.cpp:
(WebCore::RenderLineBoxList::anyLineIntersectsRect const):
(WebCore::RenderLineBoxList::lineIntersectsDirtyRect const):
(WebCore::RenderLineBoxList::paint const):
(WebCore::RenderLineBoxList::hitTest const):
(WebCore::RenderLineBoxList::dirtyLinesFromChangedChild):
- rendering/RenderLineBreak.cpp:
- rendering/RenderListMarker.cpp:
(WebCore::RenderListMarker::localSelectionRect):
(WebCore::RenderListMarker::addOverflowFromListMarker):
(WebCore::RenderListMarker::selectionRectForRepaint):
- rendering/RenderReplaced.cpp:
(WebCore::RenderReplaced::shouldPaint):
(WebCore::RenderReplaced::localSelectionRect const):
- rendering/RenderRubyRun.cpp:
(WebCore::RenderRubyRun::layoutBlock):
(WebCore::RenderRubyRun::getOverhang const):
- rendering/RenderTextLineBoxes.cpp:
(WebCore::RenderTextLineBoxes::dirtyRange):
- rendering/TrailingFloatsRootInlineBox.h:
- rendering/line/LineLayoutState.h:
(WebCore::LineLayoutState::endLine const):
(WebCore::LineLayoutState::setEndLine):
(WebCore::LineLayoutState::updateRepaintRangeFromBox):
- rendering/mathml/RenderMathMLBlock.cpp:
(WebCore::RenderMathMLBlock::baselinePosition const):
- rendering/svg/RenderSVGText.cpp:
(WebCore::RenderSVGText::positionForPoint):
- rendering/svg/SVGRootInlineBox.cpp:
(WebCore::SVGRootInlineBox::SVGRootInlineBox):
- rendering/svg/SVGRootInlineBox.h:
- style/InlineTextBoxStyle.cpp:
(WebCore::computeUnderlineOffset):
- 9:10 AM Changeset in webkit [278353] by
-
- 1 edit2 deletes in trunk/Tools
[GitHub] Delete unused scripts
https://bugs.webkit.org/show_bug.cgi?id=226519
Reviewed by Aakash Jain.
- Scripts/configure-github-as-upstream: Removed.
- Scripts/sync-master-with-upstream: Removed.
- 8:56 AM Changeset in webkit [278352] by
-
- 334 edits7 copies2 moves32 adds11 deletes in trunk/Source/ThirdParty/libwebrtc
Update boringssl to M92
https://bugs.webkit.org/show_bug.cgi?id=226486
Reviewed by Alex Christensen.
- CMakeLists.txt:
- Source/third_party/boringssl/BUILD.generated.gni: Resynced.
- libwebrtc.xcodeproj/project.pbxproj:
- 8:42 AM Changeset in webkit [278351] by
-
- 38 edits in trunk/Source
Use Checked aliases instead of Checked<T, RecordOverflow>
https://bugs.webkit.org/show_bug.cgi?id=226535
Reviewed by Keith Miller.
Source/JavaScriptCore:
- dfg/DFGAbstractInterpreterInlines.h:
(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):
- ftl/FTLOperations.cpp:
(JSC::FTL::JSC_DEFINE_JIT_OPERATION):
- runtime/JSArray.cpp:
(JSC::JSArray::appendMemcpy):
(JSC::JSArray::unshiftCountWithAnyIndexingType):
- runtime/JSStringJoiner.cpp:
(JSC::JSStringJoiner::joinedLength const):
- runtime/JSStringJoiner.h:
- runtime/StringPrototype.cpp:
(JSC::jsSpliceSubstringsWithSeparators):
- wasm/WasmFormat.cpp:
(JSC::Wasm::Segment::create):
- wasm/WasmOperations.cpp:
(JSC::Wasm::JSC_DEFINE_JIT_OPERATION):
- wasm/WasmTable.cpp:
(JSC::Wasm::Table::grow):
- yarr/YarrInterpreter.cpp:
(JSC::Yarr::ByteCompiler::emitDisjunction):
- yarr/YarrParser.h:
(JSC::Yarr::Parser::consumeNumber):
- yarr/YarrPattern.cpp:
Source/WebCore:
- html/ImageData.cpp:
(WebCore::computeDataSize):
- html/canvas/WebGLRenderingContextBase.cpp:
(WebCore::WebGLRenderingContextBase::validateTexFuncData):
(WebCore::WebGLRenderingContextBase::validateCompressedTexFuncData):
- platform/graphics/GraphicsContextGL.cpp:
(WebCore::GraphicsContextGL::computeImageSizeInBytes):
- platform/graphics/IntRect.cpp:
(WebCore::IntRect::isValid const):
- platform/graphics/PixelBuffer.cpp:
(WebCore::PixelBuffer::computeBufferSize):
- platform/graphics/PixelBuffer.h:
- platform/graphics/avfoundation/ISOFairPlayStreamingPsshBox.cpp:
(WebCore::ISOFairPlayStreamingKeyRequestInfoBox::parse):
- platform/graphics/ca/GraphicsLayerCA.cpp:
(WebCore::GraphicsLayerCA::updateBackdropFilters):
- platform/graphics/cg/ImageBufferCGBitmapBackend.cpp:
(WebCore::ImageBufferCGBitmapBackend::calculateSafeBackendSize):
- platform/graphics/win/Direct2DUtilities.cpp:
(WebCore::Direct2D::createDirect2DImageSurfaceWithData):
- platform/graphics/win/ImageBufferDirect2DBackend.cpp:
(WebCore::ImageBufferDirect2DBackend::copyNativeImage const):
(WebCore::ImageBufferDirect2DBackend::compatibleBitmap):
Source/WebKit:
- Shared/ShareableBitmap.cpp:
(WebKit::ShareableBitmap::numBytesForSize):
- Shared/ShareableBitmap.h:
- Shared/cairo/ShareableBitmapCairo.cpp:
(WebKit::ShareableBitmap::calculateBytesPerRow):
(WebKit::ShareableBitmap::calculateBytesPerPixel):
- Shared/cg/ShareableBitmapCG.cpp:
(WebKit::ShareableBitmap::calculateBytesPerRow):
(WebKit::ShareableBitmap::calculateBytesPerPixel):
- Shared/win/ShareableBitmapDirect2D.cpp:
(WebKit::ShareableBitmap::calculateBytesPerRow):
(WebKit::ShareableBitmap::calculateBytesPerPixel):
- UIProcess/mac/TextCheckerMac.mm:
(WebKit::TextChecker::updateSpellingUIWithGrammarString):
- WebProcess/GPU/graphics/ImageBufferShareableBitmapBackend.cpp:
(WebKit::ImageBufferShareableBitmapBackend::calculateSafeBackendSize):
Source/WTF:
- wtf/URLHelpers.cpp:
(WTF::URLHelpers::userVisibleURL):
- wtf/URLParser.cpp:
(WTF::URLParser::parseIPv4Piece):
- wtf/cocoa/NSURLExtras.mm:
(WTF::dataWithUserTypedString):
- wtf/glib/SocketConnection.cpp:
(WTF::SocketConnection::sendMessage):
- 5:37 AM Changeset in webkit [278350] by
-
- 15 edits1 delete in trunk
[css-scroll-snap] Scroll snap is broken with non-horizontal writing modes
https://bugs.webkit.org/show_bug.cgi?id=226010
Patch by Martin Robinson <mrobinson@igalia.com> on 2021-06-02
Reviewed by Frédéric Wang.
LayoutTests/imported/w3c:
- web-platform-tests/css/css-scroll-snap/scroll-snap-type-on-root-element-expected.txt: Update expectations to mark tests as passing.
- web-platform-tests/css/css-scroll-snap/snap-inline-block-expected.txt: Ditto.
Source/WebCore:
Fix issues related to vertical writing modes and scroll snap.
This change fixes three existing WPT tests.
imported/w3c/web-platform-tests/css/css-scroll-snap/scroll-snap-type-on-root-element.html
imported/w3c/web-platform-tests/css/css-scroll-snap/snap-after-initial-layout/writing-mode-vertical-lr.html
imported/w3c/web-platform-tests/css/css-scroll-snap/snap-inline-block.html
- css/CSSComputedStyleDeclaration.cpp:
(WebCore::valueForScrollSnapAlignment): Update to reflect new member names of ScrollSnapAlign.
- page/FrameView.cpp:
(WebCore::FrameView::updateSnapOffsets): Pass in the text direction and writing mode of the
container, allowing the values specified on the body to override those specified on the root
element.
- page/scrolling/ScrollSnapOffsetsInfo.cpp:
(WebCore::updateSnapOffsetsForScrollableArea): Properly handle the writing mode and the
text direction of the container.
- page/scrolling/ScrollSnapOffsetsInfo.h: Update function signature.
- rendering/RenderLayerModelObject.cpp:
(WebCore::scrollSnapContainerRequiresUpdateForStyleUpdate): Pass in the writing mode and
text direction of the scrolling container.
- rendering/RenderLayerScrollableArea.cpp:
(WebCore::RenderLayerScrollableArea::updateSnapOffsets): Update to reflect new member names
of ScrollSnapAlign.
- rendering/style/RenderStyle.cpp:
(WebCore::RenderStyle::hasSnapPosition const): Ditto.
- rendering/style/StyleScrollSnapPoints.h: Change the name of the members of ScrollSnapAlign
to match what is described in the specification. The values provided are for block and
inline directions, but depending on the scroll container.
(WebCore::operator==): Ditto.
- style/StyleBuilderConverter.h:
(WebCore::Style::BuilderConverter::convertScrollSnapAlign): Ditto.
LayoutTests:
- TestExpectations: Mark one test as passing.
- platform/ios-wk2/imported/w3c/web-platform-tests/css/css-scroll-snap/scroll-snap-type-on-root-element-expected.txt: Removed.
- platform/ios/imported/w3c/web-platform-tests/css/css-scroll-snap/snap-inline-block-expected.txt:
- 5:17 AM Changeset in webkit [278349] by
-
- 2 edits1 add in trunk/Source/ThirdParty/libwebrtc
Update pffft to M92
https://bugs.webkit.org/show_bug.cgi?id=226491
Reviewed by Alex Christensen.
- Source/third_party/pffft/BUILD.gn:
- Source/third_party/pffft/DIR_METADATA: Added.
- 5:17 AM Changeset in webkit [278348] by
-
- 48 edits5 moves19 adds1 delete in trunk/Source/ThirdParty/libwebrtc
Update opus to M92
https://bugs.webkit.org/show_bug.cgi?id=226490
Reviewed by Alex Christensen.
- Source/third_party: Resynced.
- 5:08 AM Changeset in webkit [278347] by
-
- 2 edits1 add in trunk/Source/ThirdParty/libwebrtc
Update to rnnoise to M92
https://bugs.webkit.org/show_bug.cgi?id=226492
Reviewed by Alex Christensen.
- Source/third_party/rnnoise/DIR_METADATA: Added.
- Source/third_party/rnnoise/OWNERS:
- 2:41 AM Changeset in webkit [278346] by
-
- 7 edits in trunk
REGRESSION(r276882): Style not invalidated correctly for media queries in shadow trees that share style
https://bugs.webkit.org/show_bug.cgi?id=226369
<rdar://problem/78684562>
Reviewed by Sam Weinig.
Source/WebCore:
Style resolvers are stateful in respect to media queries. We would only invalidate in the first shadow tree
because that evaluation flipped the state and the second evaluation would see nothing changing in media query
state.
- style/StyleScope.cpp:
(WebCore::Style::Scope::collectResolverScopes):
Add a helper to collect all scopes associated with a resolver.
(WebCore::Style::Scope::evaluateMediaQueries):
Only evaluate each resolver once, then invalidate all associated scopes if needed.
- style/StyleScope.h:
LayoutTests:
Expand the existing test to have multiple shadow trees sharing style.
- fast/shadow-dom/media-query-in-shadow-style-expected.html:
- fast/shadow-dom/media-query-in-shadow-style.html:
- fast/shadow-dom/resources/media-query-in-shadow-style-frame.html:
- 2:07 AM Changeset in webkit [278345] by
-
- 2 edits in trunk/LayoutTests
Fix race condition in binary_wsh.py
https://bugs.webkit.org/show_bug.cgi?id=226464
<rdar://77356905>
Reviewed by Alex Christensen.
The web socket server was implemented to send 4 messages as soon as connection is opened and close the connection.
The client expects to correctly send a message before the connection is closed.
This is not guaranteed by the web socket server, in case the server is very fast closing the connection and the client very slow at sending its message.
Given the focus of the test is to validate binary data, change the web socket server to remove the potential race.
- http/tests/websocket/tests/hybi/inspector/binary_wsh.py:
(web_socket_transfer_data):
- 1:43 AM Changeset in webkit [278344] by
-
- 4 edits2 adds in trunk
Add CheckedPtr
https://bugs.webkit.org/show_bug.cgi?id=226158
Reviewed by Antti Koivisto.
Source/WTF:
This patch introduces a new type of smart pointer, CheckedPtr, which behaves like RefPtr and
let each object keep track of pointers pointing to the object. Unlike CheckedPtr, the purpose of
this internal counter is to release assert that there is no outstanding pointer at the time
of destruction instead of keeping the object alive when there is one.
- WTF.xcodeproj/project.pbxproj:
- wtf/CheckedPtr.h: Added.
(WTF::CheckedPtr): Added.
(WTF::CheckedPtr::CheckedPtr): Added.
(WTF::CheckedPtr::~CheckedPtr): Added.
(WTF::CheckedPtr::isHashTableDeletedValue const): Added.
(WTF::CheckedPtr::operator UnspecifiedBoolType const): Added.
(WTF::CheckedPtr::operator! const): Added.
(WTF::CheckedPtr::get const): Added.
(WTF::CheckedPtr::get): Added.
(WTF::CheckedPtr::operator* const): Added.
(WTF::CheckedPtr::operator*): Added.
(WTF::CheckedPtr::operator-> const): Added.
(WTF::CheckedPtr::operator->): Added.
(WTF::CheckedPtr::operator== const): Added.
(WTF::CheckedPtr::operator=): Added.
(WTF::CheckedPtr::unspecifiedBoolTypeInstance const): Added.
(WTF::CheckedPtr::refIfNotNull): Added.
(WTF::CheckedPtr::derefIfNotNull): Added.
(WTF::makeCheckedPtr): Added.
(WTF::is): Added.
(WTF::CanMakeCheckedPtr): Added.
(WTF::CanMakeCheckedPtr::~CanMakeCheckedPtr): Added. Release assert that m_ptrCount is 0.
(WTF::CanMakeCheckedPtr::ptrCount const): Added.
(WTF::CanMakeCheckedPtr::incrementPtrCount): Added.
(WTF::CanMakeCheckedPtr::decrementPtrCount): Added. Note that we don't do anything when m_ptrCount
becomes 0 unlike RefPtr.
(WTF::HashTraits<CheckedPtr<P>>): Added.
(WTF::HashTraits<CheckedPtr<P>>::emptyValue): Added.
(WTF::HashTraits<CheckedPtr<P>>::peek): Added.
(WTF::HashTraits<CheckedPtr<P>>::customDeleteBucket): Added.
Tools:
Added basic tests.
- TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
- TestWebKitAPI/Tests/WTF/CheckedPtr.cpp: Added.
(TestWebKitAPI::CheckedObject): Added.
(TestWebKitAPI::DerivedCheckedObject): Added.
(WTF_CheckedPtr.Basic):
(WTF_CheckedPtr.DerivedClass):
(WTF_CheckedPtr.HashSet):
- 1:28 AM Changeset in webkit [278343] by
-
- 5 edits4 adds in trunk
Hit-testing does not account for clip-path on <iframe>
https://bugs.webkit.org/show_bug.cgi?id=226380
<rdar://problem/78621486>
Reviewed by Antti Koivisto.
Source/WebCore:
The logic to account for the clip-path property during hit-testing was only found in RenderBlock::nodeAtPoint()
although other types of RenderBox objects may need this, such as RenderIFrame. So we move some of the logic
from RenderBlock::nodeAtPoint() to dedicated methods on RenderBox such that RenderBox::nodeAtPoint() may call them
but also allow for RenderBlock::nodeAtPoint() to call them.
Test: css3/masking/clip-path-hit-test-iframe.html
css3/masking/clip-path-hit-test-img.html
- rendering/RenderBlock.cpp:
(WebCore::RenderBlock::nodeAtPoint):
- rendering/RenderBox.cpp:
(WebCore::RenderBox::hitTestVisualOverflow const):
(WebCore::RenderBox::hitTestClipPath const):
(WebCore::RenderBox::hitTestBorderRadius const):
(WebCore::RenderBox::nodeAtPoint):
- rendering/RenderBox.h:
LayoutTests:
Add a new test which checks that we hit-test correctly in part of an
<iframe> or <img> clipped by the clip-path property.
- css3/masking/clip-path-hit-test-iframe-expected.txt: Added.
- css3/masking/clip-path-hit-test-iframe.html: Added.
- css3/masking/clip-path-hit-test-img-expected.txt: Added.
- css3/masking/clip-path-hit-test-img.html: Added.
- 1:11 AM Changeset in webkit [278342] by
-
- 890 edits2 copies1 move55 adds7 deletes in trunk/Source/ThirdParty/libwebrtc
Update abseil-cpp to M92
https://bugs.webkit.org/show_bug.cgi?id=226485
Reviewed by Alex Christensen.
- Source/third_party/abseil-cpp: Resynced.
- 1:01 AM Changeset in webkit [278341] by
-
- 5 edits in trunk/Source/WebCore
Improve AudioMediaStreamTrackRendererUnit logging to know which source is being played
https://bugs.webkit.org/show_bug.cgi?id=226466
Reviewed by Eric Carlson.
Log AudioSampleDataSource identifier when using it with the render unit.
Set AudioSampleDataSource identifier to its MediaStreamTrack/RealtimeMediaSource identifier.
This allows identifying which tracks are being played.
No change of behavior.
- platform/mediastream/AudioTrackPrivateMediaStream.cpp:
(WebCore::AudioTrackPrivateMediaStream::createRenderer):
(WebCore::AudioTrackPrivateMediaStream::setLogger): Deleted.
- platform/mediastream/AudioTrackPrivateMediaStream.h:
- platform/mediastream/cocoa/AudioMediaStreamTrackRendererCocoa.cpp:
(WebCore::AudioMediaStreamTrackRendererCocoa::pushSamples):
- platform/mediastream/cocoa/AudioMediaStreamTrackRendererUnit.cpp:
(WebCore::AudioMediaStreamTrackRendererUnit::addSource):
(WebCore::AudioMediaStreamTrackRendererUnit::removeSource):