Timeline
Apr 5, 2021:
- 9:49 PM Changeset in webkit [275492] by
-
- 2 edits in trunk/Source/WebKit
Allow the WebAuthn UI to inform users about BiometryLockout
https://bugs.webkit.org/show_bug.cgi?id=224124
<rdar://74815938>
Reviewed by Brent Fulgham.
- UIProcess/WebAuthentication/Cocoa/LocalService.mm:
(WebKit::LocalService::isAvailable):
The LocalService is still available within the BiometryLockout period.
- 9:31 PM Changeset in webkit [275491] by
-
- 8 edits in trunk/Source/WebKit
[macOS] Image preview context menu action should be shown conditionally
https://bugs.webkit.org/show_bug.cgi?id=224126
<rdar://problem/76162272>
Reviewed by Devin Rousso.
Add a page client hook to return whether or not the "reveal image" context menu item should be enabled, given
the image URL and decoded image bitmap; we then use this method to conditionally insert a context menu item for
revealing the image in context menu data.
- UIProcess/Cocoa/WebViewImpl.h:
- UIProcess/PageClient.h:
(WebKit::PageClient::computeCanRevealImage):
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::computeCanRevealImage):
- UIProcess/WebPageProxy.h:
- UIProcess/mac/PageClientImplMac.h:
- UIProcess/mac/PageClientImplMac.mm:
(WebKit::PageClientImpl::computeCanRevealImage):
- UIProcess/mac/WebContextMenuProxyMac.mm:
(WebKit::createMenuActionItem):
Pull logic for mapping a
WebContextMenuItemData
of typeActionType
orCheckableActionType
to a platform
NSMenuItem
out into a separate helper function. Use this helper ingetContextMenuItem
, as well as the
completion handler for the call tocomputeCanRevealImage
. Note that this also requires moving the
menuItemIdentifier
function up abovegetContextMenuFromItems
.
(WebKit::WebContextMenuProxyMac::getContextMenuFromItems):
Special case the
ContextMenuItemTagRevealImage
item; instead of adding this item to the context menu right
away, we hide it by default, and only reinsert it if the page client indicates that we require the item (via
computeCanRevealImage
).
(WebKit::WebContextMenuProxyMac::getContextMenuItem):
- 9:25 PM Changeset in webkit [275490] by
-
- 50 edits in trunk/Source
[JSC] Shrink some of Vectors in JSC
https://bugs.webkit.org/show_bug.cgi?id=224162
Reviewed by Simon Fraser.
Source/JavaScriptCore:
- Add XXXStatus::shrinkToFit to shrink underlying dynamic Vectors.
- Replace tierUpInLoopHierarchy's Vector with RefCountedArray since it is constructed-once-lookup-only data.
- Use MemoryCompactLookupOnlyRobinHoodHashSet for StringTables since this is constructed-once-lookup-only data. We also add MemoryCompactLookupOnlyRobinHoodHashSet support for CachedTypes.
- Use resizeToFit for StringSwitchJumpTables and SwitchJumpTables.
- JITStubRoutineSet's Vector should be shrunk.
- BlockDirectoryBits's Vector's initial size should be small.
- Make PolyProtoAccessChain RefCounted, and use RefCountedArray for its Vector<StructureID>. And remove PolyProtoAccessChain::clone. Just having Ref is enough since this is immutable data.
- Use RefCountedArray for UnlinkedFunctionExecutable's m_classFieldLocations.
- Use RefCountedArray for JSWebAssemblyInstance.
- bytecode/AccessCase.cpp:
(JSC::AccessCase::AccessCase):
(JSC::AccessCase::create):
(JSC::AccessCase::createTransition):
- bytecode/AccessCase.h:
(JSC::AccessCase::AccessCase): Deleted.
- bytecode/CallLinkInfo.cpp:
(JSC::CallLinkInfo::setFrameShuffleData):
- bytecode/CheckPrivateBrandStatus.cpp:
(JSC::CheckPrivateBrandStatus::shrinkToFit):
(JSC::CheckPrivateBrandStatus::computeForStubInfoWithoutExitSiteFeedback):
(JSC::CheckPrivateBrandStatus::merge):
- bytecode/CheckPrivateBrandStatus.h:
- bytecode/CodeBlock.cpp:
(JSC::CodeBlock::finishCreation):
- bytecode/DeleteByStatus.cpp:
(JSC::DeleteByStatus::shrinkToFit):
(JSC::DeleteByStatus::computeForStubInfoWithoutExitSiteFeedback):
(JSC::DeleteByStatus::merge):
- bytecode/DeleteByStatus.h:
- bytecode/GetByStatus.cpp:
(JSC::GetByStatus::shrinkToFit):
(JSC::GetByStatus::computeForStubInfoWithoutExitSiteFeedback):
(JSC::GetByStatus::computeFor):
(JSC::GetByStatus::merge):
- bytecode/GetByStatus.h:
- bytecode/GetterSetterAccessCase.cpp:
(JSC::GetterSetterAccessCase::GetterSetterAccessCase):
(JSC::GetterSetterAccessCase::create):
- bytecode/GetterSetterAccessCase.h:
- bytecode/InByIdStatus.cpp:
(JSC::InByIdStatus::shrinkToFit):
(JSC::InByIdStatus::computeForStubInfoWithoutExitSiteFeedback):
(JSC::InByIdStatus::merge):
- bytecode/InByIdStatus.h:
- bytecode/InstanceOfStatus.cpp:
(JSC::InstanceOfStatus::shrinkToFit):
(JSC::InstanceOfStatus::computeForStubInfo):
- bytecode/InstanceOfStatus.h:
- bytecode/IntrinsicGetterAccessCase.cpp:
(JSC::IntrinsicGetterAccessCase::IntrinsicGetterAccessCase):
(JSC::IntrinsicGetterAccessCase::create):
- bytecode/IntrinsicGetterAccessCase.h:
- bytecode/JumpTable.h:
- bytecode/PolyProtoAccessChain.cpp:
(JSC::PolyProtoAccessChain::tryCreate):
(JSC::PolyProtoAccessChain::create): Deleted.
- bytecode/PolyProtoAccessChain.h:
(JSC::PolyProtoAccessChain::clone): Deleted.
(JSC::PolyProtoAccessChain::chain const): Deleted.
(JSC::PolyProtoAccessChain::operator!= const): Deleted.
(JSC::PolyProtoAccessChain::forEach const): Deleted.
(JSC::PolyProtoAccessChain::slotBaseStructure const): Deleted.
- bytecode/PolymorphicAccess.cpp:
(JSC::PolymorphicAccess::visitWeak const):
(JSC::PolymorphicAccess::regenerate):
- bytecode/PolymorphicAccess.h:
- bytecode/ProxyableAccessCase.cpp:
(JSC::ProxyableAccessCase::ProxyableAccessCase):
(JSC::ProxyableAccessCase::create):
- bytecode/ProxyableAccessCase.h:
- bytecode/PutByIdStatus.cpp:
(JSC::PutByIdStatus::shrinkToFit):
(JSC::PutByIdStatus::computeForStubInfo):
(JSC::PutByIdStatus::computeFor):
(JSC::PutByIdStatus::merge):
- bytecode/PutByIdStatus.h:
- bytecode/SetPrivateBrandStatus.cpp:
(JSC::SetPrivateBrandStatus::shrinkToFit):
(JSC::SetPrivateBrandStatus::computeForStubInfoWithoutExitSiteFeedback):
(JSC::SetPrivateBrandStatus::merge):
- bytecode/SetPrivateBrandStatus.h:
- bytecode/UnlinkedCodeBlock.h:
- bytecode/UnlinkedFunctionExecutable.cpp:
(JSC::generateUnlinkedFunctionCodeBlock):
- bytecode/UnlinkedFunctionExecutable.h:
- dfg/DFGJITCode.h:
- dfg/DFGPlan.h:
(JSC::DFG::Plan::tierUpInLoopHierarchy):
- dfg/DFGTierUpCheckInjectionPhase.cpp:
(JSC::DFG::TierUpCheckInjectionPhase::run):
- heap/BlockDirectoryBits.h:
- heap/JITStubRoutineSet.cpp:
(JSC::JITStubRoutineSet::deleteUnmarkedJettisonedStubRoutines):
- jit/CallFrameShuffleData.h:
(JSC::CallFrameShuffleData::shrinkToFit):
- jit/GCAwareJITStubRoutine.h:
- jit/PolymorphicCallStubRoutine.h:
- jit/Repatch.cpp:
(JSC::tryCacheGetBy):
(JSC::tryCachePutByID):
(JSC::tryCacheInByID):
- parser/Parser.cpp:
(JSC::Parser<LexerType>::parseInner):
(JSC::Parser<LexerType>::parseClassFieldInitializerSourceElements):
- parser/Parser.h:
(JSC::Parser<LexerType>::parse):
(JSC::parse):
- runtime/CachedTypes.cpp:
(JSC::CachedFunctionExecutableRareData::encode):
(JSC::CachedFunctionExecutableRareData::decode const):
- runtime/VM.cpp:
(JSC::VM::popAllCheckpointOSRSideStateUntil):
- wasm/js/JSWebAssemblyInstance.cpp:
(JSC::JSWebAssemblyInstance::visitChildrenImpl):
- wasm/js/JSWebAssemblyInstance.h:
Source/WTF:
Add rbegin and rend to make RefCountedArray usable for Vector clients who use these features.
- wtf/RefCountedArray.h:
(WTF::RefCountedArray::begin):
(WTF::RefCountedArray::end):
(WTF::RefCountedArray::begin const):
(WTF::RefCountedArray::end const):
(WTF::RefCountedArray::rbegin):
(WTF::RefCountedArray::rend):
(WTF::RefCountedArray::rbegin const):
(WTF::RefCountedArray::rend const):
- 9:20 PM Changeset in webkit [275489] by
-
- 7 edits in branches/safari-612.1.10-branch/Source/ThirdParty/ANGLE
Cherry-pick r275476. rdar://problem/76250256
[METAL ANGLE] Stencil only formats being used as the depth attachment.
https://bugs.webkit.org/show_bug.cgi?id=224183
Patch by John Cunningham <johncunnigham@apple.com> on 2021-04-05
Reviewed by Jon Lee.
- src/compiler/translator/TranslatorMetalDirect/ProgramPrelude.cpp:
- src/compiler/translator/TranslatorMetalDirect/RewriteOutArgs.cpp: (sh::Rewriter::argAlreadyProcessed):
- src/libANGLE/renderer/metal/ContextMtl.mm: (rx::ContextMtl::setupDraw):
- src/libANGLE/renderer/metal/mtl_command_buffer.h:
- src/libANGLE/renderer/metal/mtl_command_buffer.mm: (rx::mtl::RenderCommandEncoder::reset): (rx::mtl::RenderCommandEncoder::setRenderPipelineState): (rx::mtl::RenderCommandEncoder::draw): (rx::mtl::RenderCommandEncoder::drawInstanced): (rx::mtl::RenderCommandEncoder::drawIndexed): (rx::mtl::RenderCommandEncoder::drawIndexedInstanced): (rx::mtl::RenderCommandEncoder::drawIndexedInstancedBaseVertex):
- src/libANGLE/renderer/metal/mtl_utils.mm: (rx::mtl::InitializeDepthStencilTextureContentsGPU):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@275476 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 9:18 PM Changeset in webkit [275488] by
-
- 3 edits in trunk/Source/WebCore
Wasted vector capacity in CSSSegmentedFontFace
https://bugs.webkit.org/show_bug.cgi?id=224167
Reviewed by Myles C. Maxfield.
Shrink FontRanges.m_ranges. This saves about 12KB on youtube.com.
- css/CSSSegmentedFontFace.cpp:
(WebCore::CSSSegmentedFontFace::fontRanges):
- platform/graphics/FontRanges.h:
(WebCore::FontRanges::shrinkToFit):
- 9:03 PM Changeset in webkit [275487] by
-
- 9 edits in trunk
REGRESSION(r267763) NetworkProcess never terminates
https://bugs.webkit.org/show_bug.cgi?id=224191
<rdar://problem/76124590>
Patch by Alex Christensen <achristensen@webkit.org> on 2021-04-05
Reviewed by Chris Dumez.
Source/WebKit:
Before r267763, when a WebProcessPool was deallocated, the NetworkProcess it owned was terminated.
Since then, once you start using a NetworkProcess, it will be kept until your app closes or it crashes.
To reclaim these resources in a way similar to how we did before, we now terminate the network process in two situations:
- If all WebsiteDataStores associated with it are deallocated. This happens if you have never used the default WKWebsiteDataStore.
- If all WebProcessPools are deallocated. This can still happen if you do use the default WKWebsiteDataStore, which is never deallocated.
Covered by API tests.
- UIProcess/API/Cocoa/WKWebsiteDataStore.mm:
(+[WKWebsiteDataStore _defaultNetworkProcessExists]):
- UIProcess/API/Cocoa/WKWebsiteDataStorePrivate.h:
- UIProcess/Network/NetworkProcessProxy.cpp:
(WebKit::NetworkProcessProxy::defaultNetworkProcessExists):
(WebKit::NetworkProcessProxy::removeSession):
- UIProcess/Network/NetworkProcessProxy.h:
- UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::~WebProcessPool):
Tools:
- TestWebKitAPI/Tests/WebKitCocoa/NetworkProcess.mm:
(TEST):
- 9:02 PM Changeset in webkit [275486] by
-
- 6 edits in trunk/Source/WebKit
Reduce crash inside getAuditToken
https://bugs.webkit.org/show_bug.cgi?id=224196
<rdar://74536285>
Patch by Alex Christensen <achristensen@webkit.org> on 2021-04-05
Reviewed by David Kilzer.
Something is crashing inside the call to getAuditToken, and I believe it is happening during teardown of the network process.
After many days of head scratching and many previous attempts at fixing this problem, it persists.
Since direct strategies at fixing this problem have failed, I now try something different.
Instead of calling getAuditToken at the beginning of every resource load to ask if the parent process has an entitlement,
I now call it only once per process. That should make things faster and less crashy. Otherwise no change in behavior.
- NetworkProcess/cocoa/NetworkSessionCocoa.mm:
(WebKit::activateSessionCleanup):
(WebKit::NetworkSessionCocoa::sessionWrapperForTask):
- Shared/Cocoa/DefaultWebBrowserChecks.h:
- Shared/Cocoa/DefaultWebBrowserChecks.mm:
(WebKit::doesParentProcessHaveITPEnabled):
(WebKit::isParentProcessAFullWebBrowser):
- WebProcess/WebAuthentication/WebAuthenticatorCoordinator.cpp:
(WebKit::WebCore::isWebBrowser):
- WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::isParentProcessAWebBrowser const):
- 8:19 PM Changeset in webkit [275485] by
-
- 19 edits in trunk/Source
Make sure we no longer show the previous page when running a JS prompt
https://bugs.webkit.org/show_bug.cgi?id=215782
<rdar://problem/67698601>
Reviewed by Darin Adler.
Source/WebCore:
Add linked-on-after check for the behavior change to minimize the risk of
breakage.
- platform/cocoa/VersionChecks.h:
Source/WebKit:
Make sure we no longer show the previous page when running a JS prompt.
If we have not yet done a layer tree commit since the last load commit, then
we are likely still showing the previous page. If we are asked to run a JS
prompt / alert / confirm at this point, it would be confusing to still show
the previous page. In order to address the issue, we now make the view blank
in such scenario (ideally, we'd have painted the new page but this is
currently not a trivial thing to do).
To make the view blank, the approach chosen is the set the opacity of our
root layer to 0 when the JS prompt is requested (before the first paint) and
set the opacity back to 1 after the first paint.
To minimize the risks of breakage, the behavior change is behind a
linked-on-after check. Also, we only trigger this behavior if the WKWebView
client actually implements the corresponding JS prompt delegate.
- UIProcess/Cocoa/UIDelegate.mm:
(WebKit::UIDelegate::UIClient::runJavaScriptAlert):
(WebKit::UIDelegate::UIClient::runJavaScriptConfirm):
(WebKit::UIDelegate::UIClient::runJavaScriptPrompt):
- UIProcess/PageClient.h:
(WebKit::PageClient::makeViewBlank):
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::stopMakingViewBlankDueToLackOfRenderingUpdate):
(WebKit::WebPageProxy::makeViewBlankIfUnpaintedSinceLastLoadCommit):
(WebKit::WebPageProxy::didCommitLoadForFrame):
(WebKit::WebPageProxy::runJavaScriptAlert):
- UIProcess/WebPageProxy.h:
- UIProcess/WebPageProxy.messages.in:
- UIProcess/ios/PageClientImplIOS.h:
- UIProcess/ios/PageClientImplIOS.mm:
(WebKit::PageClientImpl::makeViewBlank):
- UIProcess/ios/WebPageProxyIOS.mm:
(WebKit::WebPageProxy::didCommitLayerTree):
- UIProcess/mac/PageClientImplMac.h:
- UIProcess/mac/PageClientImplMac.mm:
(WebKit::PageClientImpl::makeViewBlank):
- UIProcess/mac/WebPageProxyMac.mm:
(WebKit::WebPageProxy::didUpdateRenderingAfterCommittingLoad):
- WebProcess/WebCoreSupport/WebChromeClient.cpp:
(WebKit::WebChromeClient::runJavaScriptAlert):
(WebKit::WebChromeClient::runJavaScriptConfirm):
(WebKit::WebChromeClient::runJavaScriptPrompt):
Add flag to make sure pending async messages are processed *before* the JS prompt sync IPCs.
Without this, it was possible for the UIProcess to receive the JS prompt IPC *before* the
DidCommitLoadForFrame IPC, which would confuse our logic, since we would think this is a JS
prompt for the previous page.
- WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::didCommitLoad):
- WebProcess/WebPage/WebPage.h:
(WebKit::WebPage::sendSyncWithDelayedReply):
- WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:
(WebKit::TiledCoreAnimationDrawingArea::updateRendering):
- WebProcess/WebPage/mac/WebPageMac.mm:
(WebKit::WebPage::didUpdateRendering):
- 8:19 PM Changeset in webkit [275484] by
-
- 29 edits2 moves1 add in trunk
Resurrect Mac CMake build
https://bugs.webkit.org/show_bug.cgi?id=224084
Patch by Alex Christensen <achristensen@webkit.org> on 2021-04-05
Reviewed by Tim Horton.
.:
- Source/cmake/OptionsMac.cmake:
Source/JavaScriptCore:
- PlatformMac.cmake:
Source/ThirdParty/ANGLE:
- PlatformMac.cmake: Added.
Source/ThirdParty/libwebrtc:
- CMakeLists.txt:
Source/WebCore:
- PlatformMac.cmake:
- SourcesCocoa.txt:
- WebCore.xcodeproj/project.pbxproj:
- platform/mac/WebGLBlocklist.mm:
- platform/text/cocoa/LocalizedDateCache.h: Renamed from Source/WebCore/platform/text/ios/LocalizedDateCache.h.
- platform/text/cocoa/LocalizedDateCache.mm: Renamed from Source/WebCore/platform/text/ios/LocalizedDateCache.mm.
(WebCore::localizedDateCache):
(WebCore::_localeChanged):
(WebCore::LocalizedDateCache::LocalizedDateCache):
(WebCore::LocalizedDateCache::~LocalizedDateCache):
(WebCore::LocalizedDateCache::localeChanged):
(WebCore::LocalizedDateCache::formatterForDateType):
(WebCore::LocalizedDateCache::maximumWidthForDateType):
(WebCore::LocalizedDateCache::createFormatterForType):
(WebCore::LocalizedDateCache::calculateMaximumWidth):
- testing/cocoa/WebViewVisualIdentificationOverlay.mm:
Source/WebCore/PAL:
- pal/PlatformMac.cmake:
Source/WebKit:
- NetworkProcess/PrivateClickMeasurementNetworkLoader.cpp:
(WebKit::PrivateClickMeasurementNetworkLoader::didReceiveBuffer):
- PlatformMac.cmake:
- Shared/Cocoa/SandboxExtensionCocoa.mm:
- SourcesCocoa.txt:
- UIProcess/Media/MediaSessionCoordinatorProxyPrivate.h:
Source/WebKitLegacy:
- PlatformMac.cmake:
Source/WTF:
- wtf/PlatformMac.cmake:
Tools:
- TestWebKitAPI/PlatformMac.cmake:
- WebKitTestRunner/PlatformMac.cmake:
- 8:08 PM Changeset in webkit [275483] by
-
- 3 edits in trunk/Source/WebCore
Wasted vector capacity in SVGPathByteStream
https://bugs.webkit.org/show_bug.cgi?id=224165
Reviewed by Said Abou-Hallawa.
On youtube.com, about 50KB of vector capacity is wasted in SVGPathByteStream,
so shrink them after parsing.
- svg/SVGPathByteStream.h:
(WebCore::SVGPathByteStream::shrinkToFit):
- svg/SVGPathParser.cpp:
(WebCore::SVGPathParser::parseToByteStream):
- 7:46 PM Changeset in webkit [275482] by
-
- 2 edits in trunk
Document how to use logging in WebKit
https://bugs.webkit.org/show_bug.cgi?id=224152
Patch by Tyler Wilcock <Tyler Wilcock> on 2021-04-05
Reviewed by Simon Fraser.
Add documentation about how to use logging in WebKit.
- Introduction.md:
- 7:46 PM Changeset in webkit [275481] by
-
- 2 edits in trunk/Source/WebCore
Wasted vector capacity in CSSVariableData
https://bugs.webkit.org/show_bug.cgi?id=224164
Reviewed by Anders Carlsson.
Shrink m_tokens. This saves 2.7MB on youtube.com.
- css/CSSVariableData.cpp:
(WebCore::CSSVariableData::CSSVariableData):
- 7:36 PM Changeset in webkit [275480] by
-
- 13 edits in trunk
REGRESSION: ASSERTION FAILED: settings().textAutosizingEnabled() && settings().textAutosizingUsesIdempotentMode() on various tests
https://bugs.webkit.org/show_bug.cgi?id=209450
<rdar://problem/60799255>
Reviewed by Tim Horton.
Source/WebCore:
When running layout tests without idempotent text autosizing after layout tests with idempotent text autosizing
enabled, it's possible to get into a state where the text size adjustment timer (which is used to schedule
idempotent text autosizing style adjustments) is scheduled, but idempotent text autosizing is disabled before
the timer fires. This causes the assertion inresetIdempotentTextAutosizingIfNeeded
to fail, leading to a
debug assertion.
To prevent this, we simply add a client method to call out to WebPage to stop its idempotent text autosizing
timer when the idempotent text autosizing WebCore setting changes to disabled.
This fixes assertions on these four tests, which are normally run after fast/text-autosizing:
- fast/text/control-characters/visible-control-characters-1.html
- fast/text/firstline/001.html
- fast/text-indicator/text-indicator-empty-link.html
- fast/text/basic/001.html
- page/ChromeClient.h:
(WebCore::ChromeClient::textAutosizingUsesIdempotentModeChanged):
Add the new chrome client hook (see WebKit2 change for more details).
- page/SettingsBase.cpp:
(WebCore::SettingsBase::textAutosizingUsesIdempotentModeChanged):
Replace the existing settings change handler (
setNeedsRecalcStyleInAllFrames
) with a custom change handler
(textAutosizingUsesIdempotentModeChanged
) that invokes the client hook above, in addition to flagging all
frames for a style recalc.
- page/SettingsBase.h:
Source/WebKit:
See WebCore for more details.
- WebProcess/WebCoreSupport/WebChromeClient.cpp:
(WebKit::WebChromeClient::textAutosizingUsesIdempotentModeChanged):
- WebProcess/WebCoreSupport/WebChromeClient.h:
- WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::textAutosizingUsesIdempotentModeChanged):
Stop the idempotent text autosizing recomputation timer (
m_textAutoSizingAdjustmentTimer
) when idempotent text
autosizing is disabled.
- WebProcess/WebPage/WebPage.h:
Source/WTF:
Replace the call to
setNeedsRecalcStyleInAllFrames
withtextAutosizingUsesIdempotentModeChanged
when
changing whether idempotent text autosizing is enabled.
- Scripts/Preferences/WebPreferencesInternal.yaml:
LayoutTests:
Remove crashing expectations for several tests that previously hit this assertion, due to running immediately
after some layout tests infast/text-autosizing
that enable idempotent text autosizing.
- platform/ios-wk2/TestExpectations:
- 7:34 PM Changeset in webkit [275479] by
-
- 2 edits in trunk/Source/WebCore
Shrink the Vector<> of keyframe values
https://bugs.webkit.org/show_bug.cgi?id=224154
Reviewed by Sam Weinig.
The Vector<double> returned by CSSParserImpl::consumeKeyframeKeyList()
wasted 152KB of vector capacity on nytimes.com pages, so shrink it.
- css/parser/CSSParserImpl.cpp:
(WebCore::CSSParserImpl::consumeKeyframeKeyList):
- 7:33 PM Changeset in webkit [275478] by
-
- 27 edits in trunk/Source/WebCore
No need to update the list marker number during internal move (e.g. result of anonymous collapsing)
https://bugs.webkit.org/show_bug.cgi?id=224142
<rdar://76101241>
Reviewed by Antti Koivisto.
Let's not update the marker numbers when the reason for re-parenting is "internal move"
which means the renderer's insertion point remains the same (e.g collapsing its anonymous parent).
- rendering/RenderElement.cpp:
(WebCore::RenderElement::insertedIntoTree):
(WebCore::RenderElement::willBeRemovedFromTree):
- rendering/RenderElement.h:
- rendering/RenderFragmentContainer.cpp:
(WebCore::RenderFragmentContainer::insertedIntoTree):
(WebCore::RenderFragmentContainer::willBeRemovedFromTree):
- rendering/RenderFragmentContainer.h:
- rendering/RenderListItem.cpp:
(WebCore::RenderListItem::insertedIntoTree):
(WebCore::RenderListItem::willBeRemovedFromTree):
- rendering/RenderListItem.h:
- rendering/RenderMultiColumnFlow.cpp:
(WebCore::RenderMultiColumnFlow::willBeRemovedFromTree):
- rendering/RenderMultiColumnFlow.h:
- rendering/RenderObject.cpp:
(WebCore::RenderObject::insertedIntoTree):
(WebCore::RenderObject::willBeRemovedFromTree):
- rendering/RenderObject.h:
- rendering/RenderQuote.cpp:
(WebCore::RenderQuote::insertedIntoTree):
(WebCore::RenderQuote::willBeRemovedFromTree):
- rendering/RenderQuote.h:
- rendering/RenderTableCaption.cpp:
(WebCore::RenderTableCaption::insertedIntoTree):
(WebCore::RenderTableCaption::willBeRemovedFromTree):
- rendering/RenderTableCaption.h:
- rendering/RenderTableCell.cpp:
(WebCore::RenderTableCell::willBeRemovedFromTree):
- rendering/RenderTableCell.h:
- rendering/RenderTableCol.cpp:
(WebCore::RenderTableCol::insertedIntoTree):
(WebCore::RenderTableCol::willBeRemovedFromTree):
- rendering/RenderTableCol.h:
- rendering/RenderTableRow.cpp:
(WebCore::RenderTableRow::willBeRemovedFromTree):
- rendering/RenderTableRow.h:
- rendering/RenderTableSection.cpp:
(WebCore::RenderTableSection::willBeRemovedFromTree):
- rendering/RenderTableSection.h:
- rendering/svg/RenderSVGRoot.cpp:
(WebCore::RenderSVGRoot::insertedIntoTree):
(WebCore::RenderSVGRoot::willBeRemovedFromTree):
- rendering/svg/RenderSVGRoot.h:
- rendering/updating/RenderTreeBuilder.cpp:
(WebCore::RenderTreeBuilder::attachToRenderElementInternal):
(WebCore::RenderTreeBuilder::move):
(WebCore::RenderTreeBuilder::detachFromRenderElement):
- rendering/updating/RenderTreeBuilder.h:
- 7:19 PM Changeset in webkit [275477] by
-
- 2 edits in trunk/Source/WebCore
WebSocketChannel buffers use memory after going idle (64K wasted on facebook.com
https://bugs.webkit.org/show_bug.cgi?id=224193
Patch by Alex Christensen <achristensen@webkit.org> on 2021-04-05
Reviewed by Simon Fraser.
- Modules/websockets/WebSocketChannel.cpp:
(WebCore::WebSocketChannel::processFrame):
- 7:16 PM Changeset in webkit [275476] by
-
- 7 edits in trunk/Source/ThirdParty/ANGLE
[METAL ANGLE] Stencil only formats being used as the depth attachment.
https://bugs.webkit.org/show_bug.cgi?id=224183
Patch by John Cunningham <johncunnigham@apple.com> on 2021-04-05
Reviewed by Jon Lee.
- src/compiler/translator/TranslatorMetalDirect/ProgramPrelude.cpp:
- src/compiler/translator/TranslatorMetalDirect/RewriteOutArgs.cpp:
(sh::Rewriter::argAlreadyProcessed):
- src/libANGLE/renderer/metal/ContextMtl.mm:
(rx::ContextMtl::setupDraw):
- src/libANGLE/renderer/metal/mtl_command_buffer.h:
- src/libANGLE/renderer/metal/mtl_command_buffer.mm:
(rx::mtl::RenderCommandEncoder::reset):
(rx::mtl::RenderCommandEncoder::setRenderPipelineState):
(rx::mtl::RenderCommandEncoder::draw):
(rx::mtl::RenderCommandEncoder::drawInstanced):
(rx::mtl::RenderCommandEncoder::drawIndexed):
(rx::mtl::RenderCommandEncoder::drawIndexedInstanced):
(rx::mtl::RenderCommandEncoder::drawIndexedInstancedBaseVertex):
- src/libANGLE/renderer/metal/mtl_utils.mm:
(rx::mtl::InitializeDepthStencilTextureContentsGPU):
- 7:16 PM Changeset in webkit [275475] by
-
- 2 edits in trunk/Source/WebCore
Make sure the Frame always gets destroyed on the main thread
https://bugs.webkit.org/show_bug.cgi?id=224213
<rdar://75131946>
Reviewed by Alex Christensen.
Make sure the Frame always gets destroyed on the main thread.
Since http://trac.webkit.org/changeset/181791, Frame is ThreadSafeRefCounted and captured
on other threads. We should make sure the Frame is always destroyed on the main thread
though, since it is a main thread object and we hold WeakPtrs to it in many places.
- page/AbstractFrame.h:
- 7:12 PM Changeset in webkit [275474] by
-
- 2 edits in trunk/Source/WebKit
Protect frame in WebPage::runJavaScriptInFrameInScriptWorld()
https://bugs.webkit.org/show_bug.cgi?id=224210
Reviewed by Alex Christensen.
Between the time we were getting the raw pointer to the frame, and the time were were passing it to
WebPage::runJavaScript(), we were potentially calling WebFrameLoaderClient::dispatchGlobalObjectAvailable().
It is possible in theory for those synchronous injected bundle calls to mess with the frame tree and cause
our frame to go bad. As a result, it is best to protect the frame as soon as we get it.
- WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::runJavaScriptInFrameInScriptWorld):
- 7:08 PM Changeset in webkit [275473] by
-
- 2 edits in trunk/Source/WebKit
Add a missing bounds check when mapping display list items from a shared display list handle
https://bugs.webkit.org/show_bug.cgi?id=224156
<rdar://problem/71805209>
Reviewed by Tim Horton.
Add a check to ensure that we don't end up with out-of-bounds memory access when attempting to map an
offset
andcapacity
in shared display list data into aWebCore::DisplayList
. It's possible for this to happen if
either the sum ofoffset
andcapacity
(i.e. the extent of the mapped segment) overflowssize_t
, or the
extent exceeds the total length of the buffer in shared memory.
- GPUProcess/graphics/DisplayListReaderHandle.cpp:
(WebKit::DisplayListReaderHandle::displayListForReading const):
Note that returning
nullptr
here subsequently causes us to terminate the web process due to the message check
fordisplayList
insidenextDestinationImageBufferAfterApplyingDisplayLists
.
- 6:52 PM Changeset in webkit [275472] by
-
- 3 edits1 add in trunk
DFG arity fixup nodes should exit to the caller's call opcode
https://bugs.webkit.org/show_bug.cgi?id=223278
Reviewed by Saam Barati.
JSTests:
- stress/dfg-arity-fixup-uses-callers-exit-origin.js: Added.
(main.v22):
(main.v30):
(main.try.v40):
(main.try.v47):
(main.try.v56):
(main.):
(main):
Source/JavaScriptCore:
Right now when we do arity fixup in the DFG we model it in the
same way that it executes, which means all the nodes are part of
the callee. Unfortunately, this causes PhantomInsertionPhase to
think those nodes could be replacing previously defined
VirtualRegisters as they are part of the callee's header (always
alive). When PhantomInsertionPhase then inserts a Phantom it will
put that node in the caller's frame as that's the first ExitOK
node. The caller however may have no knowledge of that
VirtualRegister though. For example:
--> foo: loc10 is a local in foo.
...
1: MovHint(loc10)
2: SetLocal(loc10)
<-- foo loc10 ten is now out of scope for the InlineCallFrame of the caller.
...
Phantom will be inserted here refering to loc10, which doesn't make sense.
--> bar loc10 is an argument to bar and needs arity fixup.
... All of these nodes are ExitInvalid
3: MovHint(loc10, ExitInvalid)
4: SetLocal(loc10, ExitInvalid)
...
- dfg/DFGByteCodeParser.cpp:
(JSC::DFG::ByteCodeParser::currentNodeOrigin):
(JSC::DFG::ByteCodeParser::inlineCall):
- 6:45 PM Changeset in webkit [275471] by
-
- 16 edits in trunk/Source/WebCore
Wasted vector capacity in FEColorMatrix and filters
https://bugs.webkit.org/show_bug.cgi?id=224169
Reviewed by Said Abou-Hallawa.
When building filter effects, avoid the inputEffects() having a larger
capacity than needed.
Shrink the Vector<float> which is input to FEColorMatrix.
This saves around 40KB on facebook.com feed pages.
- platform/graphics/filters/FEColorMatrix.cpp:
(WebCore::FEColorMatrix::FEColorMatrix):
(WebCore::FEColorMatrix::create):
- platform/graphics/filters/FEColorMatrix.h:
- rendering/CSSFilter.cpp:
(WebCore::CSSFilter::build):
(WebCore::endMatrixRow): Deleted.
(WebCore::lastMatrixRow): Deleted.
- rendering/svg/RenderSVGResourceFilter.cpp:
(WebCore::RenderSVGResourceFilter::buildPrimitives const):
- svg/SVGFEColorMatrixElement.cpp:
(WebCore::SVGFEColorMatrixElement::build const):
- svg/SVGFEComponentTransferElement.cpp:
(WebCore::SVGFEComponentTransferElement::build const):
- svg/SVGFEConvolveMatrixElement.cpp:
(WebCore::SVGFEConvolveMatrixElement::build const):
- svg/SVGFEDiffuseLightingElement.cpp:
(WebCore::SVGFEDiffuseLightingElement::build const):
- svg/SVGFEDropShadowElement.cpp:
(WebCore::SVGFEDropShadowElement::build const):
- svg/SVGFEGaussianBlurElement.cpp:
(WebCore::SVGFEGaussianBlurElement::build const):
- svg/SVGFEMergeElement.cpp:
(WebCore::SVGFEMergeElement::build const):
- svg/SVGFEMorphologyElement.cpp:
(WebCore::SVGFEMorphologyElement::build const):
- svg/SVGFEOffsetElement.cpp:
(WebCore::SVGFEOffsetElement::build const):
- svg/SVGFESpecularLightingElement.cpp:
(WebCore::SVGFESpecularLightingElement::build const):
- svg/SVGFETileElement.cpp:
(WebCore::SVGFETileElement::build const):
- 6:38 PM Changeset in webkit [275470] by
-
- 3 edits in trunk/LayoutTests
REGRESSION (r275332?): [ EWS macOS iOS wk2 ] http/tests/appcache/fail-on-update.html is a flakey timeout
https://bugs.webkit.org/show_bug.cgi?id=224120
<rdar://problem/76157112>
Reviewed by Jonathan Bedard.
- http/tests/appcache/fail-on-update-2.html:
- http/tests/appcache/fail-on-update.html:
- 6:36 PM Changeset in webkit [275469] by
-
- 2 edits in branches/safari-612.1.10-branch/Source/WebKit
Revert r275451. rdar://problem/76244988
This reverts commit d3893bd38276290b6e85a644f1496ca69c727e65.
- 6:13 PM Changeset in webkit [275468] by
-
- 2 edits in trunk/LayoutTests
[ macOS ] media/webaudio-background-playback.html is a flakey text failure
https://bugs.webkit.org/show_bug.cgi?id=221935
<rdar://problem/74370844>
Patch by Philippe Normand <pnormand@igalia.com> on 2021-04-05
Reviewed by Eric Carlson.
The test was flaky because it was checking if the destination had processed new buffers
immediately after an asynchronous state change. The proposed solution is to monitor the
statechange event and do the actual test after another additional 100 milli-seconds have
passed.
- media/webaudio-background-playback.html:
- 6:13 PM Changeset in webkit [275467] by
-
- 2 edits in branches/safari-612.1.10-branch/Source/WebKit
Cherry-pick r275451. rdar://problem/76244988
[GPUP][iPad] Audio only when airplaying a youtube video
https://bugs.webkit.org/show_bug.cgi?id=224132
Reviewed by Eric Carlson.
While
MediaPlayerPrivateAVFoundationObjC
only implementssetWirelessPlaybackTarget()
on macOS,MediaPlayerPrivateMediaSourceAVFObjC
implements it on both macOS and iOS.
Therefore,RemoteMediaPlayerProxy
has to forward the calls ofsetWirelessPlaybackTarget()
from WebContent processes to "MediaPlayerPrivate*" on both macOS and iOS.
Manually tested.
- GPUProcess/media/RemoteMediaPlayerProxy.cpp: (WebKit::RemoteMediaPlayerProxy::setWirelessPlaybackTarget):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@275451 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 6:06 PM Changeset in webkit [275466] by
-
- 4 edits in trunk
Enable QuotaExceededError on non GSTREAMER platforms
https://bugs.webkit.org/show_bug.cgi?id=224136
<rdar://71219720>
Reviewed by Jer Noble.
Source/WebCore:
This fixes a memory leak in Disney+ where we end up queuing up the entire
video because we never communicate to the page that they should stop queuing
more data.
- Modules/mediasource/SourceBuffer.cpp:
(WebCore::SourceBuffer::appendBufferInternal):
LayoutTests:
- platform/mac/media/media-source/media-source-append-before-last-range-no-quota-exceeded-expected.txt:
- 6:05 PM Changeset in webkit [275465] by
-
- 28 edits1 add in trunk/Source
Make sure service workers use a ScriptSourceCode backed by file-mapped memory when possible
https://bugs.webkit.org/show_bug.cgi?id=224088
Reviewed by Yusuke Suzuki.
Source/WebCore:
To run a worker, we were constructing a ScriptSourceCode from the source String and calling
JSC::evaluate. ScriptSourceCode would construct a JSC::StringSourceProvider, which would
keep the source String alive for the lifetime of the provider. This is problematic since
those worker scripts may be big and keeping heap-allocated version of them in memory is
expensive.
To address the issue, this patch introduces a new JSC::SourceProvider subclass named
ScriptBufferSourceProvider, which uses a ScriptBuffer internally. ScriptBuffer has the
benefit of being able to hold file-mapped data. We only convert the ScriptBuffer to
a String whenever necessary (When the script contains non-ascii characters and JSC
requests a StringView to the script). If we do end up converting the ScriptBuffer to
a String, this String will get cleared on memory pressure. This is similar to what
CachedScriptSourceProvider / CachedScript do on the main thread.
In the warm case, where the service worker script is coming from disk, we create
the ScriptBufferSourceProvider right away from a file-mapped ScriptBuffer, thus
greatly reducing dirty memory use. In the cold case, we initially construct the
ScriptBufferSourceProvider using a ScriptBuffer that is not file-mapped. However,
once the script is saved to disk (via SWScriptStorage), we replace the
ScriptBufferSourceProvider's ScriptBuffer with the new file-mapped version in
order to reduce dirty memory use in this case too.
- WebCore.xcodeproj/project.pbxproj:
Add ScriptBufferSourceProvider.h to the project.
- bindings/js/ScriptBufferSourceProvider.h: Added.
- Add new ScriptBufferSourceProvider, which is a JSC::SourceProvider subclass that
uses a ScriptBuffer as backing instead of a String. This allows us to use file-mapped
memory whenever possible, thus reducing dirty memory use. This provider provides
similar functionality to CachedScriptSourceProvider / CachedScript but works with
a ScriptBuffer and can be used off the main thread.
- We only transform the SharedBuffer into a String when strictly necessary, meaning that the ScriptBuffer contains non-ascii characters and JSC is asking for a StringView to the script.
- The class supports clearing the String copy of the script (done on memory pressure) and replacing the ScriptBuffer (with a new file-mapped version).
- bindings/js/ScriptSourceCode.h:
(WebCore::ScriptSourceCode::ScriptSourceCode):
(WebCore::ScriptSourceCode::m_code):
(WebCore::ScriptSourceCode::provider):
Add new constructors taking a ScriptBuffer instead of a String for the source code.
We then use the new ScriptBufferSourceProvider internally instead of the
StringSourceProvider.
- workers/DedicatedWorkerThread.cpp:
(WebCore::DedicatedWorkerThread::DedicatedWorkerThread):
- workers/DedicatedWorkerThread.h:
Use ScriptBuffer instead of String.
- workers/ScriptBuffer.cpp:
(WebCore::ScriptBuffer::empty):
(WebCore::ScriptBuffer::append):
(WebCore::operator!=):
- workers/ScriptBuffer.h:
(WebCore::ScriptBuffer::isEmpty const):
Add some functionality to SCriptBuffer to make it more convenient to use.
- workers/Worker.cpp:
(WebCore::Worker::notifyFinished):
Convert ScriptBuffer to a String since this is what WebInspector expects.
- workers/WorkerGlobalScope.cpp:
(WebCore::WorkerGlobalScope::importScripts):
- When importing a new script, we now construct a ScriptSourceCode from a
ScriptBuffer instead of a String.
- We also store a weak pointer to the ScriptBufferSourceProvider used by the ScriptSourceCode on the WorkerGlobalScope. This is so that we can ask those ScriptBufferSourceProvider objects to clear their cached String representation of the script source on memory pressure. It is also needed so we can replace the ScriptBufferSourceProvider's ScriptBuffer with a file-mapped version when one becomes available.
(WebCore::WorkerGlobalScope::releaseMemory):
In addition to deleting JS code and doing garbage collection, we now also ask the
ScriptBufferSourceProvider objects to clear their cached String representation of the script
source.
(WebCore::WorkerGlobalScope::deleteJSCodeAndGC):
Moved the logic to delete JS code and doing GC from releaseMemory() to a new function, now
that releaseMemory() needs to do more things.
(WebCore::WorkerGlobalScope::setMainScriptSourceProvider):
(WebCore::WorkerGlobalScope::addImportedScriptSourceProvider):
Functions used to store the CachedScriptSourceProvider objects for the scripts used by the
worker on the WorkerGlobalScope. We keep weak pointers to those.
(WebCore::WorkerGlobalScope::clearDecodedScriptData):
Function used to ask the ScriptBufferSourceProvider objects to clear their cached String
representation of the script source on memory pressure.
(WebCore::WorkerGlobalScope::updateSourceProviderBuffers):
Function used to ask the ScriptBufferSourceProvider objects to replace their ScriptBuffers
with file-backed versions.
- workers/WorkerGlobalScope.h:
- workers/WorkerGlobalScopeProxy.h:
- workers/WorkerMessagingProxy.cpp:
(WebCore::WorkerMessagingProxy::startWorkerGlobalScope):
- workers/WorkerMessagingProxy.h:
Use ScriptBuffer instead of String.
- workers/WorkerScriptLoader.cpp:
(WebCore::WorkerScriptLoader::WorkerScriptLoader):
(WebCore::WorkerScriptLoader::loadSynchronously):
(WebCore::WorkerScriptLoader::didReceiveData):
- workers/WorkerScriptLoader.h:
(WebCore::WorkerScriptLoader::script):
Use ScriptBuffer instead of String to hold the script source. We eventually need a ScriptBuffer
since this is what the Worker now needs to launch. Also, in the service worker case, we may
get a ScriptBuffer right away from the scriptResourceMap, without going to the network at all.
- workers/WorkerThread.cpp:
(WebCore::WorkerThreadStartupData::WorkerThreadStartupData):
(WebCore::WorkerThread::WorkerThread):
Use ScriptBuffer instead of String.
(WebCore::WorkerThread::evaluateScriptIfNecessary):
- When evaluating the main worker script, we now construct a ScriptSourceCode from a
ScriptBuffer instead of a String.
- We also store a weak pointer to the ScriptBufferSourceProvider used by the ScriptSourceCode on the WorkerGlobalScope. This is so that we can ask those ScriptBufferSourceProvider objects to clear their cached String representation of the script source on memory pressure. It is also needed so we can replace the ScriptBufferSourceProvider's ScriptBuffer with a file-mapped version when one becomes available.
- workers/WorkerThread.h:
- workers/service/ServiceWorkerContainer.cpp:
(WebCore::ServiceWorkerContainer::jobFinishedLoadingScript):
- workers/service/ServiceWorkerContainer.h:
- workers/service/ServiceWorkerFetchResult.h:
- workers/service/ServiceWorkerGlobalScope.cpp:
(WebCore::ServiceWorkerGlobalScope::didSaveScriptsToDisk):
- workers/service/ServiceWorkerJobClient.h:
- workers/service/context/ServiceWorkerThread.cpp:
(WebCore::ServiceWorkerThread::ServiceWorkerThread):
- workers/service/server/SWServer.cpp:
(WebCore::SWServer::updateWorker):
- workers/service/server/SWServer.h:
- workers/service/server/SWServerJobQueue.cpp:
(WebCore::SWServerJobQueue::scriptFetchFinished):
Use ScriptBuffer instead of String.
Source/WebKit:
- NetworkProcess/ServiceWorker/ServiceWorkerSoftUpdateLoader.cpp:
(WebKit::ServiceWorkerSoftUpdateLoader::didFinishLoading):
- 5:50 PM Changeset in webkit [275464] by
-
- 3 edits1 add in trunk/Tools/buildstream
[Flatpak SDK] Update dav1d and libavif
https://bugs.webkit.org/show_bug.cgi?id=224177
Patch by Philippe Normand <pnormand@igalia.com> on 2021-04-05
Reviewed by Adrian Perez de Castro.
- elements/freedesktop-sdk.bst: Update dav1d to version 0.8.2.
- elements/sdk/libavif.bst: Update to version 0.9.0.
- patches/fdo-0001-dav1d-Bump-to-version-0.8.2.patch: Added.
- 5:50 PM Changeset in webkit [275463] by
-
- 15 edits2 adds in trunk/Source
[Win][WK2] Implement IPC::Semaphore to run WebGL in GPU process
https://bugs.webkit.org/show_bug.cgi?id=224014
Reviewed by Don Olmstead.
Source/WebCore:
- platform/graphics/PlatformDisplay.cpp:
(WebCore::PlatformDisplay::sharedDisplay): GPU process calls this
function in IPC thread. Removed the assertion checking the main
thread.
- platform/graphics/opengl/GraphicsContextGLOpenGL.h:
- platform/graphics/texmap/GraphicsContextGLTextureMapper.cpp:
(WebCore::GraphicsContextGLOpenGL::createForGPUProcess): Added.
Source/WebKit:
- GPUProcess/graphics/RemoteGraphicsContextGL.cpp:
- GPUProcess/graphics/RemoteGraphicsContextGLWin.cpp: Added.
(WebKit::RemoteGraphicsContextGL::create):
(WebKit::RemoteGraphicsContextGLWin::RemoteGraphicsContextGLWin):
(WebKit::RemoteGraphicsContextGLWin::platformWorkQueueInitialize):
(WebKit::RemoteGraphicsContextGL::prepareForDisplay):
- Platform/IPC/IPCSemaphore.cpp:
- Platform/IPC/IPCSemaphore.h:
- Platform/IPC/StreamClientConnection.cpp:
(IPC::StreamClientConnection::setWakeUpSemaphore):
(IPC::StreamClientConnection::wakeUpServer):
- Platform/IPC/StreamClientConnection.h:
(IPC::StreamClientConnection::tryAcquire):
(IPC::StreamClientConnection::tryAcquireAll):
- Platform/IPC/StreamConnectionWorkQueue.cpp:
(IPC::StreamConnectionWorkQueue::StreamConnectionWorkQueue):
(IPC::StreamConnectionWorkQueue::removeStreamConnection):
(IPC::StreamConnectionWorkQueue::stop):
(IPC::StreamConnectionWorkQueue::wakeUp):
(IPC::StreamConnectionWorkQueue::wakeUpProcessingThread):
- Platform/IPC/StreamConnectionWorkQueue.h:
- Platform/IPC/StreamServerConnection.cpp:
(IPC::StreamServerConnectionBase::release):
(IPC::StreamServerConnectionBase::releaseAll):
- Platform/IPC/win/IPCSemaphoreWin.cpp: Added.
(IPC::Semaphore::Semaphore):
(IPC::Semaphore::~Semaphore):
(IPC::Semaphore::operator=):
(IPC::Semaphore::signal):
(IPC::Semaphore::wait):
(IPC::Semaphore::waitFor):
(IPC::Semaphore::encode const):
(IPC::Semaphore::decode):
(IPC::Semaphore::destroy):
- PlatformWin.cmake:
- WebProcess/WebCoreSupport/WebChromeClient.cpp:
(WebKit::WebChromeClient::createGraphicsContextGL const):
- 5:42 PM Changeset in webkit [275462] by
-
- 11 edits2 adds in trunk
Fix max-content on tables with percentage cell widths.
https://bugs.webkit.org/show_bug.cgi?id=221165
Reviewed by Zalan Bujtas.
Source/WebCore:
When
width: max-content
is specified on an element, any percentages
on content inside the element that are relative to the containing block
width should be treated as auto. Percentages on table cells and columns
in tables using auto table layout are not quite relative to the
containing block width, but do have a similar influence. So when
computing the intrinsic width of a table for the purpose of determining
the max-content value to use, ignore any percentages specified on table
cells and columns.
This change makes us match Firefox and Chrome on the test case.
Test: fast/table/percent-width-max-content.html
- rendering/AutoTableLayout.cpp:
(WebCore::AutoTableLayout::computeIntrinsicLogicalWidths):
- rendering/AutoTableLayout.h:
- rendering/FixedTableLayout.cpp:
(WebCore::FixedTableLayout::computeIntrinsicLogicalWidths):
- rendering/FixedTableLayout.h:
- rendering/RenderBox.cpp:
(WebCore::RenderBox::computeIntrinsicLogicalWidthUsing const): Call
into the new computeIntrinsicKeywordLogicalWidths function so that
tables can return different values for layout and intrinsic keyword
calculation.
- rendering/RenderBox.h:
(WebCore::RenderBox::computeIntrinsicKeywordLogicalWidths const):
Added to support computing intrinsic keyword lengths that differ from
those returned by computeIntrinsicLogicalWidths.
- rendering/RenderTable.cpp:
(WebCore::RenderTable::computeIntrinsicLogicalWidths const): Factored
this out to allow specifying an argument for whether the intrinsics
being computed are for layout or for instrinsic keyword calculation,
like max-content.
(WebCore::RenderTable::computeIntrinsicKeywordLogicalWidths const):
Added. This is the only override of the default implementation in
RenderBox.
- rendering/RenderTable.h:
- rendering/TableLayout.h:
LayoutTests:
Fix max-content on tables with percentage cell widths.
- fast/table/percent-width-max-content-expected.html: Added.
- fast/table/percent-width-max-content.html: Added.
- 5:39 PM Changeset in webkit [275461] by
-
- 2 edits1 add in trunk/Tools/buildstream
[Flatpak SDK] Backport GStreamer fakeaudiosink
https://bugs.webkit.org/show_bug.cgi?id=224053
Patch by Philippe Normand <pnormand@igalia.com> on 2021-04-05
Reviewed by Adrian Perez de Castro.
This audio sink will be used for the media layout and API tests.
- elements/sdk/gst-plugins-bad.bst:
- patches/gst-plugins-bad-0001-debugutils-Add-fakeaudiosink-element.patch: Added.
- 5:27 PM Changeset in webkit [275460] by
-
- 8 edits in trunk/Source
Versioning.
WebKit-7
- 5:22 PM Changeset in webkit [275459] by
-
- 22 edits1 copy1 add in trunk
[GPU Process] Simplify DisplayList::Iterator part 1: Require encoding/decoding delegates for non-inline display list items
https://bugs.webkit.org/show_bug.cgi?id=223849
Reviewed by Wenson Hsieh.
Source/WebCore:
Requiring delegates for non-inline display list items has these advantages:
- DisplayList::Iterator::updateCurrentItem() only has 2 codepaths instead of 3.
- ItemBuffer::m_itemsToDestroyInAllocatedBuffers can be deleted entirely.
- The conditional inside ItemBuffer::append() can be simplified from
!T::isInlineItem && m_writingClient to just !T::isInlineItem, which I think makes the
function significantly more readable.
There are a few places where we were using non-inline display list items without a delegate:
This patch adds two new "null" delegates, and hooks them up to a subclass of DisplayList,
called InMemoryDisplayList. Clients who want to use in-memory display lists (like the
DrawGlyphs cache) can just use this class, and retain their calling pattern they were using
before. Also, this patch adds InMemoryDisplayList without adding any virtual functions to
DisplayList.
No new tests because there is no behavior change.
- Headers.cmake:
- Sources.txt:
- WebCore.xcodeproj/project.pbxproj:
- html/HTMLCanvasElement.cpp:
- platform/graphics/FontCascade.cpp:
(WebCore::FontCascade::displayListForTextRun const):
- platform/graphics/FontCascade.h:
(WebCore::FontCascade::displayListForTextRun):
- platform/graphics/ca/GraphicsLayerCA.cpp:
(WebCore::GraphicsLayerCA::recursiveCommitChanges):
(WebCore::GraphicsLayerCA::platformCALayerPaintContents):
- platform/graphics/ca/GraphicsLayerCA.h:
- platform/graphics/displaylists/DisplayList.cpp:
(WebCore::DisplayList::DisplayList::iterator::updateCurrentItem):
- platform/graphics/displaylists/DisplayListDrawingContext.h:
(WebCore::DisplayList::DrawingContext::replayedDisplayList const):
- platform/graphics/displaylists/DisplayListImageBuffer.h:
(WebCore::DisplayList::ImageBuffer::ImageBuffer):
- platform/graphics/displaylists/DisplayListItemBuffer.cpp:
(WebCore::DisplayList::copyInto):
(WebCore::DisplayList::ItemBuffer::ItemBuffer):
(WebCore::DisplayList::ItemBuffer::operator=):
(WebCore::DisplayList::ItemBuffer::clear):
(WebCore::DisplayList::ItemBuffer::append):
(WebCore::DisplayList::m_allocatedBuffers): Deleted.
- platform/graphics/displaylists/DisplayListItemBuffer.h:
(WebCore::DisplayList::ItemHandle::get const):
(WebCore::DisplayList::ItemBufferWritingClient::~ItemBufferWritingClient):
(WebCore::DisplayList::ItemBufferWritingClient::createItemBuffer):
(WebCore::DisplayList::ItemBufferWritingClient::requiredSizeForItem const):
(WebCore::DisplayList::ItemBufferWritingClient::encodeItemOutOfLine const):
(WebCore::DisplayList::ItemBufferWritingClient::encodeItemInline const):
(WebCore::DisplayList::ItemBufferWritingClient::didAppendData):
(WebCore::DisplayList::ItemBuffer::append):
- platform/graphics/displaylists/DisplayListReplayer.cpp:
(WebCore::DisplayList::Replayer::replay):
- platform/graphics/displaylists/DisplayListReplayer.h:
- platform/graphics/displaylists/InMemoryDisplayList.cpp: Added.
(WebCore::DisplayList::InMemoryDisplayList::WritingClient::requiredSizeForItem const):
(WebCore::DisplayList::InMemoryDisplayList::WritingClient::encodeItemInline const):
(WebCore::DisplayList::InMemoryDisplayList::ReadingClient::decodeItem):
(WebCore::DisplayList::InMemoryDisplayList::InMemoryDisplayList):
(WebCore::DisplayList::InMemoryDisplayList::~InMemoryDisplayList):
- platform/graphics/displaylists/InMemoryDisplayList.h: Copied from Source/WebCore/platform/graphics/displaylists/DisplayListDrawingContext.h.
- rendering/GlyphDisplayListCache.h:
Source/WebKit:
- WebProcess/GPU/graphics/RemoteImageBufferProxy.h:
Tools:
- TestWebKitAPI/Tests/WebCore/DisplayListTests.cpp:
(TestWebKitAPI::TEST):
- TestWebKitAPI/Tests/WebCore/cg/DisplayListTestsCG.cpp:
- 5:11 PM Changeset in webkit [275458] by
-
- 9 edits in trunk/Source
[MediaSession] Small refactoring of MediaSession implementation classes
https://bugs.webkit.org/show_bug.cgi?id=224141
Reviewed by Eric Carlson.
A smorgasboard of small refactoring changes:
Source/WebCore:
- Don't call action handlers by default in response to coordinator requests.
- Since we don't call the action handlers, we don't need the internal methods.
- Simplify the call site by defining the action details inline.
- Modules/mediasession/MediaSessionCoordinator.cpp:
(WebCore::MediaSessionCoordinator::seekSessionToTime):
(WebCore::MediaSessionCoordinator::playSession):
(WebCore::MediaSessionCoordinator::pauseSession):
(WebCore::MediaSessionCoordinator::setSessionTrack):
(WebCore::MediaSessionCoordinator::internalSeekTo): Deleted.
(WebCore::MediaSessionCoordinator::internalPlay): Deleted.
(WebCore::MediaSessionCoordinator::internalPause): Deleted.
(WebCore::MediaSessionCoordinator::internalSetTrack): Deleted.
- Modules/mediasession/MediaSessionCoordinator.h:
- Modules/mediasession/MediaSessionCoordinatorPrivate.h:
Source/WebKit:
- MediaSessionCoordinatorProxyPrivate should use an Optional<ExceptionData> rather than an actual ExceptionData, to handle the case where no exception was encoutered.
- RemoteMediaSessionCoordinatorProxy::create() should just return a Ref, not a RefPtr.
- Logging inside a completion handler requires access to this.
- Add RemoteMediaSessionCoordinatorProxy.cpp to the build.
- UIProcess/Media/MediaSessionCoordinatorProxyPrivate.h:
- UIProcess/Media/RemoteMediaSessionCoordinatorProxy.cpp:
(WebKit::RemoteMediaSessionCoordinatorProxy::create):
(WebKit::RemoteMediaSessionCoordinatorProxy::RemoteMediaSessionCoordinatorProxy):
(WebKit::RemoteMediaSessionCoordinatorProxy::join):
(WebKit::RemoteMediaSessionCoordinatorProxy::coordinateSeekTo):
(WebKit::RemoteMediaSessionCoordinatorProxy::coordinatePlay):
(WebKit::RemoteMediaSessionCoordinatorProxy::coordinatePause):
(WebKit::RemoteMediaSessionCoordinatorProxy::coordinateSetTrack):
(WebKit::RemoteMediaSessionCoordinatorProxy::pauseSession):
(WebKit::RemoteMediaSessionCoordinatorProxy::setSessionTrack):
(WebKit::RemoteMediaSessionCoordinatorProxy::logChannel const):
(WebKit::RemoteMediaSessionCoordinatorProxy::::coordinateSetTrack): Deleted.
- UIProcess/Media/RemoteMediaSessionCoordinatorProxy.h:
(WebKit::RemoteMediaSessionCoordinatorProxy::logger const):
(WebKit::RemoteMediaSessionCoordinatorProxy::logIdentifier const):
(WebKit::RemoteMediaSessionCoordinatorProxy::logClassName const):
- 5:09 PM Changeset in webkit [275457] by
-
- 15 edits in trunk/Source
Define AtomString(ASCIILiteral) and use ASCIILiteral more to avoid memory allocation
https://bugs.webkit.org/show_bug.cgi?id=224125
Reviewed by Saam Barati.
Source/WebCore:
We apply "..."_s more. This avoids allocating of string storage when creating StringImpl.
- accessibility/AccessibilityObject.cpp:
(WebCore::initializeRoleMap):
- dom/ScriptElement.cpp:
(WebCore::isLegacySupportedJavaScriptLanguage):
- editing/EditorCommand.cpp:
(WebCore::createCommandMap):
- html/Autofill.cpp:
(WebCore::fieldNameMap):
- platform/LegacySchemeRegistry.cpp:
(WebCore::builtinLocalURLSchemes):
(WebCore::builtinSecureSchemes):
(WebCore::builtinSchemesWithUniqueOrigins):
(WebCore::builtinEmptyDocumentSchemes):
(WebCore::builtinCanDisplayOnlyIfCanRequestSchemes):
(WebCore::builtinCORSEnabledSchemes):
- platform/MIMETypeRegistry.cpp:
(WebCore::MIMETypeRegistry::systemPreviewMIMETypes):
- platform/graphics/FontCascade.cpp:
(WebCore::FontCascade::hasValidAverageCharWidth const):
- platform/graphics/HEVCUtilities.cpp:
(WebCore::codecStringForDoViCodecType):
(WebCore::profileIDForAlphabeticDoViProfile):
- platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp:
(WebCore::MediaPlayerPrivateAVFoundation::staticMIMETypeList):
- platform/graphics/avfoundation/objc/AVAssetMIMETypeCache.mm:
(WebCore::AVAssetMIMETypeCache::staticContainerTypeList):
- platform/graphics/cg/ImageSourceCGWin.cpp:
(WebCore::preferredExtensionForImageType):
- svg/SVGTests.cpp:
(WebCore::supportedSVGFeatures):
Source/WTF:
Add AtomString(ASCIILiteral). ASCIILiteral ensures that storage is constant non-heap string by its type.
So we can just use it as a literal (not allocating a string storage).
- wtf/text/AtomString.h:
- 5:04 PM Changeset in webkit [275456] by
-
- 3 edits in trunk/LayoutTests
REGRESSION (r275358): [ iOS wk2 ] media/modern-media-controls/ios-inline-media-controls/ios-inline-media-dropping-controls.html is a constant text failure
https://bugs.webkit.org/show_bug.cgi?id=224130
<rdar://problem/76164289>
Unreviewed test fix.
- media/modern-media-controls/ios-inline-media-controls/ios-inline-media-dropping-controls.html:
- media/modern-media-controls/ios-inline-media-controls/ios-inline-media-dropping-controls-expected.txt:
Set a
maximumRightContainerButtonCountOverride
so that the collapsing behavior of the
overflow button doesn't affect the test (and force a layout to ensure it's picked up).
- 5:00 PM Changeset in webkit [275455] by
-
- 2 edits in trunk/Source/WebKit
[Cocoa] Calling AudioComponentFetchServerRegistrations on main thread causes launch time regression
https://bugs.webkit.org/show_bug.cgi?id=224137
<rdar://76137483>
Reviewed by Eric Carlson.
Run the command to fetch AudioComponent registration data on a generic background queue.
- UIProcess/Cocoa/WebProcessProxyCocoa.mm:
(WebKit::WebProcessProxy::sendAudioComponentRegistrations):
- 4:56 PM Changeset in webkit [275454] by
-
- 9 edits in trunk
[WinCairo] Enable Service Worker tests
https://bugs.webkit.org/show_bug.cgi?id=223591
Reviewed by Fujii Hironori.
Source/WebKit:
WPT HTTP tests were failing because SSL Connect errors weren't triggering authentication challenges.
Also Add a suggestedFilename implementation.
- NetworkProcess/curl/NetworkDataTaskCurl.cpp:
- NetworkProcess/curl/NetworkDataTaskCurl.h:
Tools:
Ignore cert errors with downloads and fix an issue with windows paths.
- WebKitTestRunner/TestController.cpp:
- WebKitTestRunner/TestController.h:
LayoutTests:
- platform/wincairo-wk1/TestExpectations:
- platform/wincairo/TestExpectations:
- 4:55 PM Changeset in webkit [275453] by
-
- 2 edits in trunk/Tools
[GLIB] Garden API test failure and flakiness after r275267
Unreviewed test gardening.
- TestWebKitAPI/glib/TestExpectations.json:
- 4:45 PM Changeset in webkit [275452] by
-
- 1 copy in branches/safari-612.1.10-branch
New branch.
- 4:43 PM Changeset in webkit [275451] by
-
- 2 edits in trunk/Source/WebKit
[GPUP][iPad] Audio only when airplaying a youtube video
https://bugs.webkit.org/show_bug.cgi?id=224132
Reviewed by Eric Carlson.
While
MediaPlayerPrivateAVFoundationObjC
only implementssetWirelessPlaybackTarget()
on macOS,MediaPlayerPrivateMediaSourceAVFObjC
implements it on both macOS and iOS.
Therefore,RemoteMediaPlayerProxy
has to forward the calls ofsetWirelessPlaybackTarget()
from WebContent processes to "MediaPlayerPrivate*" on both macOS and iOS.
Manually tested.
- GPUProcess/media/RemoteMediaPlayerProxy.cpp:
(WebKit::RemoteMediaPlayerProxy::setWirelessPlaybackTarget):
- 9:48 AM WebKitGTK/2.32.x edited by
- (diff)
- 9:47 AM WebKitGTK/2.32.x edited by
- (diff)
Apr 2, 2021:
- 4:27 PM Changeset in webkit [275450] by
-
- 2 edits in trunk/Source/WebCore
PendingImageBitmap gets created on a stopped script execution context.
https://bugs.webkit.org/show_bug.cgi?id=223971
Reviewed by Youenn Fablet.
Don't create a PendingImageBitmap in PendingImageBitmap::fetch
if the associated script execution context had already been stoppped.
The new behavior matches of Chrome although it's technically incorrect.
Correcting it to match the spec & Firefox will refactor a larger fix around
how script execution context is used by the threaded loader.
- html/ImageBitmap.cpp:
(WebCore::PendingImageBitmap::fetch):
- 3:57 PM Changeset in webkit [275449] by
-
- 2 edits in trunk/Source/WTF
Enable PreferPageRenderingUpdatesNear60FPSEnabled by default
https://bugs.webkit.org/show_bug.cgi?id=224133
Reviewed by Tim Horton.
Turn the PreferPageRenderingUpdatesNear60FPSEnabled internal setting on by default. This
means that requestAnimationFrame on 144Hz displays will fire at 72Hz. 60Hz displays are
unaffected.
Firing at "close to 60fps" was determined to be necessary for web compatibility and power.
- Scripts/Preferences/WebPreferencesInternal.yaml:
- 3:44 PM Changeset in webkit [275448] by
-
- 2 edits in trunk/Source/WebKit
[GPUP] Power regression: audio hardware is configured for 128 frame preferred buffer size during VideoAudio playback
https://bugs.webkit.org/show_bug.cgi?id=224122
Reviewed by Eric Carlson.
The RemoteAudioHardwareListenerProxy tracks when audio hardware changes, and updates the WebContent process with
the supported properies of the new default audio device, including supported buffer sizes. However, it only does
so when the current audio devices changes, and not initially. Instead, ensure the WebContent process is immediately
update with the correct values for supported buffer sizes. This allows VideoAudio playback to enter a lower-power
playback mode by specifying a large preferred buffer size (4096).
- GPUProcess/media/RemoteAudioHardwareListenerProxy.cpp:
(WebKit::RemoteAudioHardwareListenerProxy::RemoteAudioHardwareListenerProxy):
- 3:39 PM Changeset in webkit [275447] by
-
- 17 edits in trunk
Add WKURLSchemeTask redirect API.
https://bugs.webkit.org/show_bug.cgi?id=224119
Reviewed by Alex Christensen.
Source/WebKit:
Covered by new API tests.
Instead of the existing "did do a redirect" SPI without completion handler, this one has
a completion handler with a new request for the task, proposed by WebKit.
- UIProcess/API/Cocoa/WKURLSchemeTask.h:
- UIProcess/API/Cocoa/WKURLSchemeTask.mm:
(raiseExceptionIfNecessary):
(-[WKURLSchemeTaskImpl willPerformRedirection:newRequest:completionHandler:]):
- UIProcess/API/Cocoa/WKWebViewConfiguration.mm:
(-[WKWebViewConfiguration setURLSchemeHandler:forURLScheme:]):
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::setURLSchemeHandlerForScheme):
- UIProcess/WebURLSchemeTask.cpp:
(WebKit::WebURLSchemeTask::willPerformRedirection):
(WebKit::WebURLSchemeTask::didPerformRedirection):
(WebKit::WebURLSchemeTask::didReceiveResponse):
(WebKit::WebURLSchemeTask::didReceiveData):
(WebKit::WebURLSchemeTask::didComplete):
- UIProcess/WebURLSchemeTask.h:
(WebKit::WebURLSchemeTask::waitingForRedirectCompletionHandlerCallback const):
- WebKit.xcodeproj/project.pbxproj:
- WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::urlSchemeTaskWillPerformRedirection):
(WebKit::WebPage::urlSchemeTaskDidPerformRedirection):
- WebProcess/WebPage/WebPage.h:
- WebProcess/WebPage/WebPage.messages.in:
- WebProcess/WebPage/WebURLSchemeHandlerProxy.cpp:
(WebKit::WebURLSchemeHandlerProxy::taskDidPerformRedirection):
- WebProcess/WebPage/WebURLSchemeHandlerProxy.h:
- WebProcess/WebPage/WebURLSchemeTaskProxy.cpp:
(WebKit::WebURLSchemeTaskProxy::didPerformRedirection):
- WebProcess/WebPage/WebURLSchemeTaskProxy.h:
Tools:
- TestWebKitAPI/Tests/WebKitCocoa/WKURLSchemeHandler-1.mm:
(-[TaskSchemeHandler webView:startURLSchemeTask:]):
(TEST):
(-[HTTPRedirectTest webView:startURLSchemeTask:]):
(-[HTTPRedirectTest webView:stopURLSchemeTask:]):
- 3:33 PM Changeset in webkit [275446] by
-
- 2 edits in trunk/LayoutTests
[ MacOS ] media/modern-media-controls/macos-inline-media-controls/macos-inline-media-dropping-controls.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=224123
Unreviewed test gardening.
- platform/mac/TestExpectations:
- 3:24 PM Changeset in webkit [275445] by
-
- 12 edits in trunk
Remove [Replaceable] extended attribute from
document.all
https://bugs.webkit.org/show_bug.cgi?id=223883
Reviewed by Darin Adler.
LayoutTests/imported/w3c:
- web-platform-tests/html/dom/idlharness.https-expected.txt:
Source/WebCore:
[Replaceable] semantics was introduced around 2003 to work around a web-compat issue.
Since then,document.all
was revised multiple times and standardized as IsHTMLDDA?
object without a setter, which was proven to be compatible with the web.
This patch aligns WebKit with the spec [1], Blink, and Gecko.
iOS apps are unlikely to accidentally depend on subtleties in
document.all
behavior since
they were authored long after it became obsolete.
Old versions of libraries, originally designed for the web, are also unlikely to rely on
previous behavior, becausedocument.all
was never replaceable in some popular browsers.
[1] https://html.spec.whatwg.org/multipage/obsolete.html#Document-partial
Tests: fast/dom/undetectable-document-all.html
imported/w3c/web-platform-tests/html/dom/idlharness.https.html
- dom/Document+HTMLObsolete.idl:
LayoutTests:
- fast/dom/undetectable-document-all-expected.txt:
- fast/dom/undetectable-document-all.html:
- platform/gtk/imported/w3c/web-platform-tests/html/dom/idlharness.https-expected.txt:
- platform/ios-wk2/imported/w3c/web-platform-tests/html/dom/idlharness.https-expected.txt:
- platform/mac-wk1/imported/w3c/web-platform-tests/html/dom/idlharness.https-expected.txt:
- platform/mac-wk2/imported/w3c/web-platform-tests/html/dom/idlharness.https-expected.txt:
- platform/wpe/imported/w3c/web-platform-tests/html/dom/idlharness.https-expected.txt:
- 3:20 PM Changeset in webkit [275444] by
-
- 3 edits in trunk/Tools
[check-webkit-style] Check python files in LayoutTests
https://bugs.webkit.org/show_bug.cgi?id=224079
<rdar://problem/76122813>
Reviewed by Dewei Zhu.
- Scripts/webkitpy/style/checker.py:
(CheckerDispatcher.should_skip_without_warning): Never skip style checks on .py files.
- Scripts/webkitpy/style/checker_unittest.py:
(CheckerDispatcherSkipTest.test_should_skip_without_warningfalse):
- 2:53 PM Changeset in webkit [275443] by
-
- 35 edits2 adds in trunk/Source
Introduce ScriptBuffer class to wrap SharedBuffer containing a script
https://bugs.webkit.org/show_bug.cgi?id=224092
Reviewed by Yusuke Suzuki and Geoff Garen.
Introduce ScriptBuffer class to wrap SharedBuffer containing a script. We started using SharedBuffer to represent
worker scripts instead of String, so that they can hold file mapped data and be shared across processes.
This patch introduces a new ScriptBuffer to wrap those SharedBuffers. The type makes it clearer what type of
data we're dealing with. The helper functions used to convert between String and SharedBuffer can now simply
be member functions on ScriptBuffer. This also simplifies IPC code.
Source/WebCore:
- Sources.txt:
- WebCore.xcodeproj/project.pbxproj:
Add new ScriptBuffer class to project files.
- inspector/agents/worker/ServiceWorkerAgent.cpp:
(WebCore::ServiceWorkerAgent::getInitializationInfo):
Use ScriptBuffer::toString() instead of scriptBufferToString().
- workers/ScriptBuffer.cpp: Added.
(WebCore::ScriptBuffer::ScriptBuffer):
(WebCore::ScriptBuffer::toString const):
(WebCore::ScriptBuffer::containsSingleFileMappedSegment const):
(WebCore::operator==):
- workers/ScriptBuffer.h: Added.
(WebCore::ScriptBuffer::ScriptBuffer):
(WebCore::ScriptBuffer::buffer const):
(WebCore::ScriptBuffer::isolatedCopy const):
(WebCore::ScriptBuffer::operator bool const):
New ScriptBuffer class that wraps a SharedBuffer representation of a script.
This class helps make it clear what data we're dealing with. It also facilitates
conversion to and from a String when needed. The class also has its own IPC
coder at WebKit layer to encode the script as a ShareableResource when file
mapped.
- workers/WorkerScriptLoader.cpp:
(WebCore::WorkerScriptLoader::loadSynchronously):
Use ScriptBuffer::toString() instead of scriptBufferToString().
And use StringBuffer constructor that takes a String instead of stringToScriptBuffer().
- workers/service/SWClientConnection.h:
- workers/service/ServiceWorkerContextData.cpp:
(WebCore::ServiceWorkerContextData::isolatedCopy const):
- workers/service/ServiceWorkerContextData.h:
(WebCore::ServiceWorkerContextData::ImportedScript::encode const):
(WebCore::ServiceWorkerContextData::ImportedScript::decode):
(WebCore::ServiceWorkerContextData::ImportedScript::isolatedCopy const):
(WebCore::ServiceWorkerContextData::encode const):
(WebCore::ServiceWorkerContextData::decode):
- Use ScriptBuffer instead of RefPtr<SharedBuffer> for scripts.
- Drop scriptBufferToString() & stringToScriptBuffer() as they are no longer needed.
- Move IPC coders for ServiceWorkerContextData back from WebCoreArgumentCoders back to the WebCore class, now that the coders no longer need to deal with ShareableResource directly. We now encode / decode ScriptBuffer objects and its coder takes care of using a ShareableResource whenever possible.
- workers/service/ServiceWorkerGlobalScope.cpp:
(WebCore::ServiceWorkerGlobalScope::didSaveScriptsToDisk):
- workers/service/ServiceWorkerGlobalScope.h:
- workers/service/context/SWContextManager.cpp:
(WebCore::SWContextManager::didSaveScriptsToDisk):
- workers/service/context/SWContextManager.h:
- workers/service/context/ServiceWorkerThread.cpp:
(WebCore::ServiceWorkerThread::ServiceWorkerThread):
- workers/service/context/ServiceWorkerThreadProxy.cpp:
(WebCore::ServiceWorkerThreadProxy::didSaveScriptsToDisk):
- workers/service/context/ServiceWorkerThreadProxy.h:
- workers/service/server/RegistrationDatabase.cpp:
(WebCore::RegistrationDatabase::doPushChanges):
(WebCore::RegistrationDatabase::importRecords):
- workers/service/server/RegistrationStore.cpp:
(WebCore::RegistrationStore::didSaveWorkerScriptsToDisk):
- workers/service/server/RegistrationStore.h:
- workers/service/server/SWScriptStorage.cpp:
(WebCore::SWScriptStorage::store):
(WebCore::SWScriptStorage::retrieve):
- workers/service/server/SWScriptStorage.h:
- workers/service/server/SWServer.cpp:
(WebCore::SWServer::didSaveWorkerScriptsToDisk):
(WebCore::SWServer::updateWorker):
- workers/service/server/SWServer.h:
- workers/service/server/SWServerJobQueue.cpp:
(WebCore::SWServerJobQueue::scriptFetchFinished):
- workers/service/server/SWServerToContextConnection.h:
- workers/service/server/SWServerWorker.cpp:
(WebCore::SWServerWorker::SWServerWorker):
(WebCore::SWServerWorker::didSaveScriptsToDisk):
- workers/service/server/SWServerWorker.h:
(WebCore::SWServerWorker::script const):
Use ScriptBuffer instead of SharedBuffer.
Source/WebKit:
- NetworkProcess/ServiceWorker/WebSWServerToContextConnection.cpp:
(WebKit::WebSWServerToContextConnection::didSaveScriptsToDisk):
- NetworkProcess/ServiceWorker/WebSWServerToContextConnection.h:
Use ScriptBuffer instead SharedBuffer.
- Shared/WebCoreArgumentCoders.cpp:
(IPC::tryConvertToShareableResourceHandle):
(IPC::decodeScriptBufferAsShareableResourceHandle):
(IPC::ArgumentCoder<WebCore::ScriptBuffer>::encode):
(IPC::ArgumentCoder<WebCore::ScriptBuffer>::decode):
- Shared/WebCoreArgumentCoders.h:
- Add IPC encoder / decoder for ScriptBuffer which tries to encode / decode as a ShareableResource whenever possible (single segment that is file mapped). This logic used to be in the ServiceWorkerContextData coders. Now that the logic is in the ScriptBuffer coder, the ServiceWorkerContextData encoding / decoding becomes much simpler.
- Moved ServiceWorkerContextData coders from WebCoreArgumentCoders back to its class in WebCore, now that they no longer need to deal with ShareableResource directly.
- WebProcess/Storage/WebSWContextManagerConnection.cpp:
(WebKit::WebSWContextManagerConnection::didSaveScriptsToDisk):
- WebProcess/Storage/WebSWContextManagerConnection.h:
- WebProcess/Storage/WebSWContextManagerConnection.messages.in:
Send scripts over IPC as ScriptBuffer instead of using ShareableResource directly. The new IPC encoder /
decoder for ScriptBuffer takes care of using ShareableResource for us.
- 2:39 PM Changeset in webkit [275442] by
-
- 20 edits2 deletes in trunk/Source
Unreviewed, reverting r275434.
Need to figure out a better strategy to chose the color
Reverted changeset:
"Make sure we are no longer show the previous page when
running a JS prompt"
https://bugs.webkit.org/show_bug.cgi?id=215782
https://commits.webkit.org/r275434
- 2:32 PM Changeset in webkit [275441] by
-
- 2 edits in trunk/LayoutTests
[MacOS Debug] imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element/css-module/css-module-worker-test.html is a flakey crash and failure
https://bugs.webkit.org/show_bug.cgi?id=222750
Unreviewed test gardening.
- platform/mac/TestExpectations:
- 2:29 PM Changeset in webkit [275440] by
-
- 14 edits in trunk/Source
Allow wheel events to trigger high frequency DisplayLinks
https://bugs.webkit.org/show_bug.cgi?id=224095
Reviewed by Sam Weinig.
Source/WebCore:
Adjust some logging so it's clear which process code is running in.
- platform/graphics/DisplayRefreshMonitor.cpp:
(WebCore::DisplayRefreshMonitor::displayLinkFired):
- platform/graphics/DisplayRefreshMonitorManager.cpp:
(WebCore::DisplayRefreshMonitorManager::ensureMonitorForDisplayID):
Source/WebKit:
When scrolling via wheel events, we may want to drive scrolling tree updates
(which are driven by EventDispatcher::displayWasRefreshed()) at a higher rate
than the main thread does rendering updates.
To support this, give DisplayLink a count of "full speed" clients, and when this count is
greater than zero, have DisplayLink::notifyObserversDisplayWasRefreshed() send
EventDispatcher IPC at full framerate, while passing a flag based on the usual
relevantForUpdateFrequency() about whether to update the main thread for a given update.
Allow DisplayLink connection info objects with non-zero fullSpeedUpdatesClientCount
to stick around, because that fullSpeedUpdatesClientCount needs to be stored for
connections that may not yet have observers.
Since DisplayLink might have info for connections with no observers, adjust the logic in
DisplayLink::notifyObserversDisplayWasRefreshed() to do the CVDisplayLinkStop
after traversing the observers.
The "full speed" client count is maintained by a HysteresisActivity on WebPageProxy,
whose impulse is wheel events. This replaces a singleton HysteresisActivity which
was used to determine whether IPC goes to EventDispatcher or the main thread of
the web process.
WebPageProxy needs to track the PlatformDisplayID for the screen that its view is on,
so it knows which DisplayLink to message.
- UIProcess/Cocoa/WebProcessPoolCocoa.mm:
(WebKit::WebProcessPool::setDisplayLinkForDisplayWantsFullSpeedUpdates):
- UIProcess/WebPageProxy.cpp:
(WebKit::m_wheelEventActivityHysteresis):
(WebKit::WebPageProxy::wheelEventHysteresisUpdated):
(WebKit::WebPageProxy::sendWheelEvent):
(WebKit::WebPageProxy::windowScreenDidChange):
(WebKit::ScrollingObserver::willSendWheelEvent): Deleted.
(WebKit::ScrollingObserver::ScrollingObserver): Deleted.
(WebKit::ScrollingObserver::singleton): Deleted.
- UIProcess/WebPageProxy.h:
- UIProcess/WebProcessPool.h:
- UIProcess/mac/DisplayLink.cpp:
(WebKit::DisplayLink::DisplayLink):
(WebKit::DisplayLink::~DisplayLink):
(WebKit::DisplayLink::addObserver):
(WebKit::DisplayLink::removeObserver):
(WebKit::DisplayLink::removeInfoForConnectionIfPossible):
(WebKit::DisplayLink::incrementFullSpeedRequestClientCount):
(WebKit::DisplayLink::decrementFullSpeedRequestClientCount):
(WebKit::DisplayLink::setPreferredFramesPerSecond):
(WebKit::DisplayLink::notifyObserversDisplayWasRefreshed):
- UIProcess/mac/DisplayLink.h:
- WebProcess/WebPage/EventDispatcher.cpp:
(WebKit::EventDispatcher::displayWasRefreshed):
- WebProcess/WebPage/EventDispatcher.h:
- WebProcess/WebPage/EventDispatcher.messages.in:
- WebProcess/WebPage/mac/DisplayRefreshMonitorMac.cpp:
(WebKit::DisplayRefreshMonitorMac::startNotificationMechanism):
(WebKit::DisplayRefreshMonitorMac::adjustPreferredFramesPerSecond):
- 2:20 PM Changeset in webkit [275439] by
-
- 17 edits in trunk
Reduce bytecode instruction count emitted for
class extends
https://bugs.webkit.org/show_bug.cgi?id=223884
Reviewed by Yusuke Suzuki.
JSTests:
- ChakraCore/test/Error/validate_line_column.baseline-jsc:
Source/JavaScriptCore:
This patch adds a variant of globalFuncSetPrototypeDirect() that throws on
invalid Prototype? values (instead of ignoring them) and utilizes it in
ClassExprNode::emitBytecode(), removing equivalent checks.
Throwing for invalid
superclass.prototype
value after setting the Prototype?
ofconstructor
is unobservable because it's a newly created extensible object
andsuperclass
is a proven object.
The fact that Prototype? set can throw only in case of
superclass.prototype
allows keeping descriptive error message via custom appender. To find "extends"
in a source code, ClassExprNode is made an instance of ThrowableExpressionData.
This change reduces the number of emitted bytecodes by 4, and fixes IsConstructor's
error [1] to point to correct source code location.
[1]: https://tc39.es/ecma262/#sec-runtime-semantics-classdefinitionevaluation (step 5.f)
- builtins/BuiltinNames.h:
- bytecode/LinkTimeConstant.h:
- bytecompiler/BytecodeGenerator.cpp:
(JSC::BytecodeGenerator::emitDirectSetPrototypeOf):
- bytecompiler/BytecodeGenerator.h:
- bytecompiler/NodesCodegen.cpp:
(JSC::PropertyListNode::emitPutConstantProperty):
(JSC::ClassExprNode::emitBytecode):
- parser/ASTBuilder.h:
(JSC::ASTBuilder::createClassExpr):
- parser/Nodes.h:
- parser/Parser.cpp:
(JSC::Parser<LexerType>::parseClass):
- parser/SyntaxChecker.h:
(JSC::SyntaxChecker::createClassExpr):
- runtime/ExceptionHelpers.cpp:
(JSC::invalidPrototypeSourceAppender):
(JSC::createInvalidPrototypeError):
- runtime/ExceptionHelpers.h:
- runtime/JSGlobalObject.cpp:
(JSC::JSGlobalObject::init):
- runtime/JSGlobalObjectFunctions.cpp:
(JSC::JSC_DEFINE_HOST_FUNCTION):
- runtime/JSGlobalObjectFunctions.h:
- 2:10 PM Changeset in webkit [275438] by
-
- 21 edits5 adds in trunk
JSTests:
Add tests for the new type method on certain JS-API wasm objects.
https://bugs.webkit.org/show_bug.cgi?id=222412
Patch by Jessica Tallon <jtallon@igalia.com> on 2021-04-02
Reviewed by Yusuke Suzuki.
- wasm/js-api/global.js: Added.
(assert.throws):
- wasm/js-api/table.js:
(assert.truthy):
- wasm/js-api/test_memory.js:
LayoutTests/imported/w3c:
Update wasm JS-API tests for the type method to latest upstream.
https://bugs.webkit.org/show_bug.cgi?id=222412
Patch by Jessica Tallon <jtallon@igalia.com> on 2021-04-02
Reviewed by Yusuke Suzuki.
The upstream tests has recently added a test for the table type method and
updated the other type tests to methods to keep up with a recent spec change.
This adds those updated tests as well as now expectations they pass.
- web-platform-tests/wasm/jsapi/global/type.tentative.any-expected.txt:
- web-platform-tests/wasm/jsapi/global/type.tentative.any.js:
(assert_type):
(string_appeared_here.test):
- web-platform-tests/wasm/jsapi/global/type.tentative.any.worker-expected.txt:
- web-platform-tests/wasm/jsapi/memory/type.tentative.any-expected.txt:
- web-platform-tests/wasm/jsapi/memory/type.tentative.any.js:
(assert_type):
- web-platform-tests/wasm/jsapi/memory/type.tentative.any.worker-expected.txt:
Source/JavaScriptCore:
Add type method to WebAssembly.Memory, WebAssembly.Table & WebAssembly.Global objects
https://bugs.webkit.org/show_bug.cgi?id=222412
Patch by Jessica Tallon <jtallon@igalia.com> on 2021-04-02
Reviewed by Yusuke Suzuki.
This adds a type method to several WASM objects as part of the work to add WASM
type reflections to the JS-API. The methods return a JSON object which describes
the type of the object and can be passed to the constructor to create a new wasm
object of that type.
- wasm/js/JSWebAssemblyGlobal.cpp:
(JSC::JSWebAssemblyGlobal::type):
- wasm/js/JSWebAssemblyGlobal.h:
- wasm/js/JSWebAssemblyMemory.cpp:
(JSC::JSWebAssemblyMemory::type):
- wasm/js/JSWebAssemblyMemory.h:
- wasm/js/JSWebAssemblyTable.cpp:
(JSC::JSWebAssemblyTable::type):
- wasm/js/JSWebAssemblyTable.h:
- wasm/js/WebAssemblyGlobalPrototype.cpp:
(JSC::JSC_DEFINE_HOST_FUNCTION):
- wasm/js/WebAssemblyGlobalPrototype.h:
- wasm/js/WebAssemblyMemoryPrototype.cpp:
(JSC::JSC_DEFINE_HOST_FUNCTION):
- wasm/js/WebAssemblyTablePrototype.cpp:
(JSC::JSC_DEFINE_HOST_FUNCTION):
- 2:07 PM Changeset in webkit [275437] by
-
- 1 copy in tags/Safari-612.1.9
Tag Safari-612.1.9.
- 2:04 PM Changeset in webkit [275436] by
-
- 2 edits in trunk/Source/WebCore
UBSan: AlternativeTextController::dismiss()/dismissSoon(): runtime error: load of value nnn, which is not a valid value for type 'bool'
<https://webkit.org/b/223903>
Reviewed by Wenson Hsieh.
Covered by 449 layout tests using WebKit compiled with UBSan.
- editing/AlternativeTextController.h:
- Initialize m_isActive and m_isDismissedByEditing.
- 1:23 PM Changeset in webkit [275435] by
-
- 2 edits in trunk/LayoutTests
[ EWS iOS wk2 ] css2.1/20110323/replaced-intrinsic-ratio-001.htm is a flakey text failure
https://bugs.webkit.org/show_bug.cgi?id=224121
Uneviewed test gardening.
- platform/ios-simulator-wk2/TestExpectations: Updated test expectations to Pass Failure because it was slowing down EWS. Keeping expectation while test is reviewed.
- 12:37 PM Changeset in webkit [275434] by
-
- 20 edits2 adds in trunk/Source
Make sure we are no longer show the previous page when running a JS prompt
https://bugs.webkit.org/show_bug.cgi?id=215782
<rdar://problem/67698601>
Reviewed by Simon Fraser.
Source/WebCore:
Add linked-on-after check for the behavior change to minimize the risk of
breakage.
- platform/cocoa/VersionChecks.h:
Source/WebKit:
Make sure we are no longer show the previous page when running a JS prompt.
If we have not yet done a layer tree commit since the last load commit, then
we are likely still showing the previous page. If we are asked to run a JS
prompt / alert / confirm at this point, it would be confusing to still show
the previous page. In order to address the issue, we now make the view blank
in such scenario (ideally, we'd have painted the new page but this is
currently not a trivial thing to do).
To make the view blank, the approach chosen was to add a blank overlay view
on top of the content. This overlay view gets taken down as soon as we
paint the view again.
- SourcesCocoa.txt:
- UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _hasBlankOverlay]):
(-[WKWebView _setHasBlankOverlay:]):
- UIProcess/API/Cocoa/WKWebViewInternal.h:
- UIProcess/API/Cocoa/WKWebViewPrivate.h:
- UIProcess/Cocoa/PageClientImplCocoa.h:
- UIProcess/Cocoa/PageClientImplCocoa.mm:
(WebKit::PageClientImplCocoa::setHasBlankOverlay):
- UIProcess/Cocoa/WKBlankOverlayView.h: Added.
- UIProcess/Cocoa/WKBlankOverlayView.mm: Added.
(-[WKBlankOverlayView initWithFrame:]):
- UIProcess/PageClient.h:
(WebKit::PageClient::setHasBlankOverlay):
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::stopMakingViewBlankDueToLackOfRenderingUpdate):
- UIProcess/WebPageProxy.h:
- UIProcess/WebPageProxy.messages.in:
- UIProcess/ios/WebPageProxyIOS.mm:
(WebKit::WebPageProxy::didCommitLayerTree):
- UIProcess/mac/WebPageProxyMac.mm:
(WebKit::WebPageProxy::didUpdateRenderingAfterCommittingLoad):
- WebKit.xcodeproj/project.pbxproj:
- WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::didCommitLoad):
- WebProcess/WebPage/WebPage.h:
- WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:
(WebKit::TiledCoreAnimationDrawingArea::updateRendering):
- WebProcess/WebPage/mac/WebPageMac.mm:
(WebKit::WebPage::didUpdateRendering):
- 12:33 PM Changeset in webkit [275433] by
-
- 3 edits in trunk/Source/WebKit
Add IOKit method filter telemetry
https://bugs.webkit.org/show_bug.cgi?id=223652
<rdar://problem/75751391>
Reviewed by Brent Fulgham.
Add IOKit method filter telemetry in the WebContent sandbox on macOS and iOS.
- Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
- WebProcess/com.apple.WebProcess.sb.in:
- 12:32 PM Changeset in webkit [275432] by
-
- 1 edit in branches/safari-612.1.9-branch/Source/WTF/Scripts/Preferences/WebPreferencesExperimental.yaml
Apply patch. rdar://problem/76159515
- 12:32 PM Changeset in webkit [275431] by
-
- 6 edits in trunk/Source/WebCore
[iPadOS] unable to reorder tabs on
*.mybinder.org
https://bugs.webkit.org/show_bug.cgi?id=224034
<rdar://problem/51770057>
Reviewed by Brent Fulgham.
- page/Quirks.h:
- page/Quirks.cpp:
(WebCore::Quirks::shouldDispatchSimulatedMouseEvents const):
(WebCore::Quirks::shouldDispatchedSimulatedMouseEventsAssumeDefaultPrevented const):
(WebCore::Quirks::simulatedMouseEventTypeForTarget const):
ModifyQuirks::shouldDispatchSimulatedMouseEvents
to accept anEventTarget
so that we
can limit dispatching touch events as mouse events on*.mybinder.org
to only the tab bar.
- dom/EventNames.h:
(WebCore::EventNames::isTouchRelatedEventType const):
- dom/Node.cpp:
(WebCore::Node::moveNodeToNewDocument):
(WebCore::tryAddEventListener):
(WebCore::tryRemoveEventListener):
(WebCore::Node::defaultEventHandler):
- page/DOMWindow.cpp:
(WebCore::DOMWindow::addEventListener):
(WebCore::DOMWindow::removeEventListener):
Pass in theEventTarget
when callingQuirks::shouldDispatchSimulatedMouseEvents
.
- 12:30 PM Changeset in webkit [275430] by
-
- 3 edits2 adds in trunk
[AspectRatio] Out-of-flow box with intrinsic width (e.g. <img>) may trigger infinite recursion
https://bugs.webkit.org/show_bug.cgi?id=224113
Reviewed by Rob Buis.
Source/WebCore:
This covers the case when the out-of-flow box has intrinsic width (replaced box) and
the max-width is also set to "intrinsic" meaning content size dependent. In such cases
the aspect ratio computation ends up recursing around RenderBox::computeReplacedLogicalWidthRespectingMinMaxWidth.
This path checks if the out-of-flow box's horizontal size is also constrained by the intrinsic width.
Test: fast/replaced/infinite-recursion-with-intrinsic-width.html
- rendering/RenderBox.cpp:
(WebCore::shouldComputeLogicalWidthFromAspectRatioAndInsets):
LayoutTests:
- fast/replaced/infinite-recursion-with-intrinsic-width-expected.txt: Added.
- fast/replaced/infinite-recursion-with-intrinsic-width.html: Added.
- 11:52 AM Changeset in webkit [275429] by
-
- 2 edits in trunk/Source/WebKit
Capture rotation is wrong after Safari is backgrounded then foregrounded
https://bugs.webkit.org/show_bug.cgi?id=224103
Reviewed by Eric Carlson.
WebPage computes rotation either based on rotation notification or viewport notification.
Apply the same technique in UIProcess to let GPUProcess get the right information.
Manually tested.
- UIProcess/ios/WebPageProxyIOS.mm:
(WebKit::WebPageProxy::dynamicViewportSizeUpdate):
- 11:40 AM Changeset in webkit [275428] by
-
- 4 edits in trunk/Source/WebCore
Delete JS code and trigger garbage collection in worker threads on memory pressure
https://bugs.webkit.org/show_bug.cgi?id=224110
Reviewed by Geoffrey Garen.
Delete JS code and trigger garbage collection in worker threads on memory pressure,
to release as much memory as possible. We were previously only doing this in the
common (main thread) VM.
For the garbage collection logic, I tried to match what the GCController is doing
for the commonVM but apply it to worker VMs.
- page/MemoryRelease.cpp:
(WebCore::releaseCriticalMemory):
- workers/WorkerGlobalScope.cpp:
(WebCore::allWorkerGlobalScopeIdentifiers):
(WebCore::WorkerGlobalScope::WorkerGlobalScope):
(WebCore::WorkerGlobalScope::~WorkerGlobalScope):
(WebCore::WorkerGlobalScope::releaseMemory):
(WebCore::WorkerGlobalScope::releaseMemoryInWorkers):
- workers/WorkerGlobalScope.h:
- 11:35 AM Changeset in webkit [275427] by
-
- 68 edits5 adds5 deletes in trunk/LayoutTests
[LayoutTests] Convert http/tests/referrer-policy convert PHP to Python
https://bugs.webkit.org/show_bug.cgi?id=223234
<rdar://problem/75460136>
Reviewed by Jonathan Bedard.
- http/tests/cache/resources/svg-defs-vary.py:
- http/tests/css/resources/webfont-request.py:
(get_request_count):
(set_request_count):
(getRequestCount): Deleted.
(setRequestCount): Deleted.
- http/tests/eventsource/resources/status-codes.py:
- http/tests/misc/resources/dns-prefetch-control.py:
- http/tests/misc/resources/protected/protected-image.py:
- http/tests/navigation/ping-attribute/resources/utilities.js:
(clearLastPingResultAndRunTest):
- http/tests/navigation/resources/post-goback-same-url.py:
- http/tests/navigation/resources/randomredirects/randomredirect.py:
- http/tests/referrer-policy-anchor/no-referrer-when-downgrade/cross-origin-http-http.html:
- http/tests/referrer-policy-anchor/no-referrer-when-downgrade/cross-origin-http.https.html:
- http/tests/referrer-policy-anchor/no-referrer-when-downgrade/same-origin.html:
- http/tests/referrer-policy-anchor/no-referrer/cross-origin-http-http.html:
- http/tests/referrer-policy-anchor/no-referrer/cross-origin-http.https.html:
- http/tests/referrer-policy-anchor/no-referrer/same-origin.html:
- http/tests/referrer-policy-anchor/origin-when-cross-origin/cross-origin-http-http.html:
- http/tests/referrer-policy-anchor/origin-when-cross-origin/cross-origin-http.https.html:
- http/tests/referrer-policy-anchor/origin-when-cross-origin/same-origin.html:
- http/tests/referrer-policy-anchor/origin/cross-origin-http-http.html:
- http/tests/referrer-policy-anchor/origin/cross-origin-http.https.html:
- http/tests/referrer-policy-anchor/origin/same-origin.html:
- http/tests/referrer-policy-anchor/same-origin/cross-origin-http-http.html:
- http/tests/referrer-policy-anchor/same-origin/cross-origin-http.https.html:
- http/tests/referrer-policy-anchor/same-origin/same-origin.html:
- http/tests/referrer-policy-anchor/strict-origin-when-cross-origin/cross-origin-http-http.html:
- http/tests/referrer-policy-anchor/strict-origin-when-cross-origin/cross-origin-http.https.html:
- http/tests/referrer-policy-anchor/strict-origin-when-cross-origin/same-origin.html:
- http/tests/referrer-policy-anchor/strict-origin/cross-origin-http-http.html:
- http/tests/referrer-policy-anchor/strict-origin/cross-origin-http.https.html:
- http/tests/referrer-policy-anchor/strict-origin/same-origin.html:
- http/tests/referrer-policy-anchor/unsafe-url/cross-origin-http-http.html:
- http/tests/referrer-policy-anchor/unsafe-url/cross-origin-http.https.html:
- http/tests/referrer-policy-anchor/unsafe-url/same-origin.html:
- http/tests/referrer-policy-img/no-referrer-when-downgrade/cross-origin-http-http.html:
- http/tests/referrer-policy-img/no-referrer-when-downgrade/cross-origin-http.https-expected.txt:
- http/tests/referrer-policy-img/no-referrer-when-downgrade/cross-origin-http.https.html:
- http/tests/referrer-policy-img/no-referrer-when-downgrade/same-origin.html:
- http/tests/referrer-policy-img/no-referrer/cross-origin-http-http.html:
- http/tests/referrer-policy-img/no-referrer/cross-origin-http.https-expected.txt:
- http/tests/referrer-policy-img/no-referrer/cross-origin-http.https.html:
- http/tests/referrer-policy-img/no-referrer/same-origin.html:
- http/tests/referrer-policy-img/origin-when-cross-origin/cross-origin-http-http.html:
- http/tests/referrer-policy-img/origin-when-cross-origin/cross-origin-http.https-expected.txt:
- http/tests/referrer-policy-img/origin-when-cross-origin/cross-origin-http.https.html:
- http/tests/referrer-policy-img/origin-when-cross-origin/same-origin.html:
- http/tests/referrer-policy-img/origin/cross-origin-http-http.html:
- http/tests/referrer-policy-img/origin/cross-origin-http.https-expected.txt:
- http/tests/referrer-policy-img/origin/cross-origin-http.https.html:
- http/tests/referrer-policy-img/origin/same-origin.html:
- http/tests/referrer-policy-img/same-origin/cross-origin-http-http.html:
- http/tests/referrer-policy-img/same-origin/cross-origin-http.https-expected.txt:
- http/tests/referrer-policy-img/same-origin/cross-origin-http.https.html:
- http/tests/referrer-policy-img/same-origin/same-origin.html:
- http/tests/referrer-policy-img/strict-origin-when-cross-origin/cross-origin-http-http.html:
- http/tests/referrer-policy-img/strict-origin-when-cross-origin/cross-origin-http.https-expected.txt:
- http/tests/referrer-policy-img/strict-origin-when-cross-origin/cross-origin-http.https.html:
- http/tests/referrer-policy-img/strict-origin-when-cross-origin/same-origin.html:
- http/tests/referrer-policy-img/strict-origin/cross-origin-http-http.html:
- http/tests/referrer-policy-img/strict-origin/cross-origin-http.https-expected.txt:
- http/tests/referrer-policy-img/strict-origin/cross-origin-http.https.html:
- http/tests/referrer-policy-img/strict-origin/same-origin.html:
- http/tests/referrer-policy-img/unsafe-url/cross-origin-http-http.html:
- http/tests/referrer-policy-img/unsafe-url/cross-origin-http.https-expected.txt:
- http/tests/referrer-policy-img/unsafe-url/cross-origin-http.https.html:
- http/tests/referrer-policy-img/unsafe-url/same-origin.html:
- http/tests/referrer-policy/resources/check-referrer.php: Removed.
- http/tests/referrer-policy/resources/check-referrer.py: Added.
- http/tests/referrer-policy/resources/image.php: Removed.
- http/tests/referrer-policy/resources/image.py: Added.
- http/tests/referrer-policy/resources/script.php: Removed.
- http/tests/referrer-policy/resources/script.py: Added.
- http/tests/security/xssAuditor/resources/tag-with-pause.py:
- http/tests/websocket/tests/hybi/contentextensions/block-cookies-worker.php.json: Removed.
- http/tests/websocket/tests/hybi/contentextensions/block-cookies-worker.py.json: Added.
- http/tests/websocket/tests/hybi/contentextensions/block-cookies.php.json: Removed.
- http/tests/websocket/tests/hybi/contentextensions/block-cookies.py.json: Added.
- imported/blink/http/tests/misc/input-image-fallback-content-crash.html:
- resources/js-test.js:
(downgradeReferrerCallback):
- 11:17 AM Changeset in webkit [275426] by
-
- 10 edits in trunk
Do not paint native decorations for search fields without '-webkit-appearance: searchfield'
https://bugs.webkit.org/show_bug.cgi?id=223946
<rdar://problem/75621365>
Reviewed by Antti Koivisto.
Source/WebCore:
On iOS, sites that use <input type="search"> have been observed to draw
their own icons next to the field. Since we draw our own icon for
search fields, this results in an unwanted icon on some sites, such as
on chanel.com. However, in this case, the site specifies
"-webkit-appearance: textfield" on the search input, indicating a desire
to remove the native search field appearance. To remove the unwanted
icon, we should not paint decorations for search fields without
"-webkit-appearance: searchfield".
To achieve this behavior, adjust the -webkit-appearance value on the
pseudo element containing the icon when the search field has a different
-webkit-appearance value, so that the native painting is elided. The
decision to not simply set "display: none" on the element was made so
that sites can still customize the decoration should they choose to do
so. Note that on macOS, Web Inspector paints their own search icon
using the pseudo element.
No new tests. A layout test is not possible since SearchFieldResultsButtonElement
is inaccessible through DOM APIs. A reference mismatch test is not
possible since changing the -webkit-appearance property on a search field
already results in visual changes. Existing tests were rebaselined to
account for the fact that the decoration is removed when changing
-webkit-appearance, so we do have test coverage.
- html/HTMLElement.h:
(WebCore::HTMLElement::isSearchFieldResultsButtonElement const):
- html/shadow/TextControlInnerElements.cpp:
(WebCore::SearchFieldResultsButtonElement::SearchFieldResultsButtonElement):
(WebCore::SearchFieldResultsButtonElement::resolveCustomStyle):
If the searchfield's appearance is not "searchfield", adjust the
appearance of the results button to NoControlPart. For compatibility
reasons, the adjustment is skipped if the author has specified the
results attribute on the searchfield. This is determined by checking
the maxResults of the input element.
If the adjustment needs to be performed, we elide standard style
adjustments from the theme by setting canAdjustStyleForAppearance to
false. Without this, the call to resolveStyle will apply native styles
to the element, since it does not know we are about to reset appearance.
- html/shadow/TextControlInnerElements.h:
(isType):
- rendering/RenderTheme.cpp:
(WebCore::RenderTheme::adjustStyle):
(WebCore::RenderTheme::adjustSearchFieldDecorationStyle const):
Skip style adjustment and reset the appearance when necessary.
- rendering/RenderTheme.h:
- style/StyleTreeResolver.cpp:
(WebCore::Style::TreeResolver::resolveElement):
Resolve all descendants if the appearance property of a search input is
changed. Without this change, the style of the results button is not
resolved when making a dynamic style change to the appearance of the
search input.
LayoutTests:
Rebaselined tests to account for the removal of the native decoration
when a different -webkit-appearance is specified on a search field.
- platform/ios/fast/css/input-search-padding-expected.txt:
- platform/mac/fast/css/text-input-with-webkit-border-radius-expected.txt:
- 10:41 AM Changeset in webkit [275425] by
-
- 10 edits2 adds in trunk
AX: textRectsFromMarkers always fails
https://bugs.webkit.org/show_bug.cgi?id=223556
<rdar://74256003>
Reviewed by Zalan Bujtas.
Source/WebCore:
The textRectsFromMarkers:text: method is always failing to return a valid answer because when we try to extend
the search range of text to search, we're creating a range that can't be iterated with a CharacterIterator.
Test: accessibility/ios-simulator/text-rects-for-range-matches.html
- accessibility/AXObjectCache.cpp:
(WebCore::AXObjectCache::rangeMatchesTextNearRange):
Tools:
- WebKitTestRunner/InjectedBundle/AccessibilityUIElement.h:
- WebKitTestRunner/InjectedBundle/Bindings/AccessibilityUIElement.idl:
- WebKitTestRunner/InjectedBundle/atk/AccessibilityUIElementAtk.cpp:
(WTR::AccessibilityUIElement::rectsForTextMarkerRange):
- WebKitTestRunner/InjectedBundle/ios/AccessibilityUIElementIOS.mm:
(WTR::AccessibilityUIElement::rectsForTextMarkerRange):
- WebKitTestRunner/InjectedBundle/mac/AccessibilityUIElementMac.mm:
(WTR::AccessibilityUIElement::rectsForTextMarkerRange):
- WebKitTestRunner/InjectedBundle/win/AccessibilityUIElementWin.cpp:
(WTR::AccessibilityUIElement::rectsForTextMarkerRange):
LayoutTests:
- accessibility/ios-simulator/text-rects-for-range-matches-expected.txt: Added.
- accessibility/ios-simulator/text-rects-for-range-matches.html: Added.
- 10:01 AM Changeset in webkit [275424] by
-
- 6 edits1 add1 delete in trunk/LayoutTests
[LayoutTests] Convert http/tests/multipart convert PHP to Python
https://bugs.webkit.org/show_bug.cgi?id=223475
<rdar://problem/75587716>
Reviewed by Alex Christensen.
- http/tests/multipart/invalid-image-data-standalone.html:
- http/tests/multipart/invalid-image-data.html:
- http/tests/multipart/multipart-async-image.html:
- http/tests/multipart/multipart-image.html:
- http/tests/multipart/resources/multipart.php: Removed.
- http/tests/multipart/resources/multipart.py: Added.
(send_part):
- http/tests/multipart/stop-crash.html:
- 9:48 AM Changeset in webkit [275423] by
-
- 3 edits in trunk/LayoutTests
[GTK][WPE] Gardening of flaky tests
Unreviewed gardening.
Update list of flaky tests.
- platform/glib/TestExpectations:
- platform/gtk/TestExpectations:
- 9:23 AM Changeset in webkit [275422] by
-
- 39 edits in trunk/Source/WebCore
Non-unified build fixes, early April 2021
https://bugs.webkit.org/show_bug.cgi?id=224091
Patch by Tyler Wilcock <Tyler Wilcock> on 2021-04-02
Reviewed by Alex Christensen.
Non-unified build fixes, April 2021.
- bindings/scripts/CodeGeneratorJS.pm:
(AddToIncludesForIDLType):
For IDLs that have a property with a type ofundefined
, also add #include "JSDOMConvertBase.h" to
the generated binding source file. This fixes a build error in
DerivedSources/JSWebGLLoseContext.cpp that looked like:
WebCore/DerivedSources/JSWebGLLoseContext.cpp:147:78: error: expected primary-expression before ‘>’ token
RELEASE_AND_RETURN(throwScope, JSValue::encode(toJS<IDLUndefined>(*lexicalGlobalObject, throwScope, [&]() -> decltype(auto) { return impl.loseContext(); })));
Thanks to Darin Adler for figuring this out.
To see the full error, go here: https://bugs.webkit.org/show_bug.cgi?id=223150#c14
- dom/EventContext.h:
- dom/FocusOptions.h:
- loader/ResourceLoadInfo.cpp:
- page/scrolling/ScrollSnapOffsetsInfo.cpp:
- platform/network/soup/SoupNetworkSession.cpp:
- rendering/RenderLayerModelObject.cpp:
- style/Styleable.cpp:
- workers/service/server/SWScriptStorage.cpp:
- workers/service/server/SWScriptStorage.h:
- Modules/mediastream/RTCDataChannelRemoteSource.h:
Fix 'invalid use of incomplete type <TYPE>' or '<TYPE> does not name a type' errors.
- bindings/scripts/test/JS/JSTestCEReactions.cpp:
- bindings/scripts/test/JS/JSTestCallTracer.cpp:
- bindings/scripts/test/JS/JSTestCallbackFunctionWithThisObject.cpp:
- bindings/scripts/test/JS/JSTestCallbackFunctionWithTypedefs.cpp:
- bindings/scripts/test/JS/JSTestCallbackInterface.cpp:
- bindings/scripts/test/JS/JSTestConditionalIncludes.cpp:
- bindings/scripts/test/JS/JSTestDomainSecurity.cpp:
- bindings/scripts/test/JS/JSTestEnabledBySetting.cpp:
- bindings/scripts/test/JS/JSTestGlobalObject.cpp:
- bindings/scripts/test/JS/JSTestIndexedSetterWithIdentifier.cpp:
- bindings/scripts/test/JS/JSTestInterface.cpp:
- bindings/scripts/test/JS/JSTestLegacyNoInterfaceObject.cpp:
- bindings/scripts/test/JS/JSTestMapLikeWithOverriddenOperations.cpp:
- bindings/scripts/test/JS/JSTestNamedAndIndexedSetterWithIdentifier.cpp:
- bindings/scripts/test/JS/JSTestNamedDeleterWithIdentifier.cpp:
- bindings/scripts/test/JS/JSTestNamedSetterWithIdentifier.cpp:
- bindings/scripts/test/JS/JSTestNamedSetterWithIndexedGetter.cpp:
- bindings/scripts/test/JS/JSTestNamedSetterWithIndexedGetterAndSetter.cpp:
- bindings/scripts/test/JS/JSTestNamedSetterWithLegacyUnforgeableProperties.cpp:
- bindings/scripts/test/JS/JSTestNamedSetterWithLegacyUnforgeablePropertiesAndLegacyOverrideBuiltIns.cpp:
- bindings/scripts/test/JS/JSTestNode.cpp:
- bindings/scripts/test/JS/JSTestObj.cpp:
- bindings/scripts/test/JS/JSTestOperationConditional.cpp:
- bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
- bindings/scripts/test/JS/JSTestSetLikeWithOverriddenOperations.cpp:
- bindings/scripts/test/JS/JSTestTypedefs.cpp:
- bindings/scripts/test/JS/JSTestVoidCallbackFunction.cpp:
Update bindings via
run-bindings-tests --reset-results
to add new "JSDOMConvertBase.h" include.
- 7:56 AM Changeset in webkit [275421] by
-
- 3 edits in trunk/Source/WebKit
Do not send samples to GPUProcess if mediastream video is not playing
https://bugs.webkit.org/show_bug.cgi?id=224100
<rdar://74809558>
Reviewed by Eric Carlson.
In case video is paused, there is no need to send samples to GPUProcess.
Instead, we can just exit early.
This fixes the issue of freezing camera in case a hidden video element tries to play the camera feed.
Manually tested.
- WebProcess/GPU/webrtc/SampleBufferDisplayLayer.cpp:
(WebKit::SampleBufferDisplayLayer::play):
(WebKit::SampleBufferDisplayLayer::pause):
(WebKit::SampleBufferDisplayLayer::enqueueSample):
- WebProcess/GPU/webrtc/SampleBufferDisplayLayer.h:
- 7:06 AM Changeset in webkit [275420] by
-
- 30 edits in trunk
Implement text rendering on OffscreenCanvas in a Worker
https://bugs.webkit.org/show_bug.cgi?id=202793
Reviewed by Darin Adler.
LayoutTests/imported/w3c:
Adjust test expectations.
- web-platform-tests/html/canvas/offscreen/text/2d.text.font.parse.basic.worker-expected.txt:
- web-platform-tests/html/canvas/offscreen/text/2d.text.font.parse.complex.worker-expected.txt:
- web-platform-tests/html/canvas/offscreen/text/2d.text.font.parse.invalid.worker-expected.txt:
- web-platform-tests/html/canvas/offscreen/text/2d.text.font.parse.tiny.worker-expected.txt:
Source/WebCore:
Add a CSSFontSelector and FontCache to WorkerGlobalScope and via
interface changes to ScriptExecutionContext and FontSelector, use them
as appropriate after enabling text functions on Worker threads with
OffscreenCanvas.
No new tests, rebaselined existing tests.
- css/CSSFontSelector.cpp:
(WebCore::CSSFontSelector::CSSFontSelector):
(WebCore::m_version):
(WebCore::CSSFontSelector::~CSSFontSelector):
(WebCore::CSSFontSelector::fontRangesForFamily):
(WebCore::CSSFontSelector::fallbackFontAt):
- css/CSSFontSelector.h:
- css/parser/CSSPropertyParserHelpers.cpp:
(WebCore::CSSPropertyParserHelpers::genericFontFamily):
(WebCore::CSSPropertyParserHelpers::genericFontFamilyIndex):
- css/parser/CSSPropertyParserHelpers.h:
- dom/Document.h:
- dom/ScriptExecutionContext.cpp:
(WebCore::ScriptExecutionContext::fontCache):
- dom/ScriptExecutionContext.h:
(WebCore::ScriptExecutionContext::cssFontSelector):
- dom/make_names.pl:
- html/canvas/CanvasRenderingContext2DBase.cpp:
(WebCore::CanvasRenderingContext2DBase::canDrawText):
- html/canvas/OffscreenCanvasRenderingContext2D.cpp:
(WebCore::OffscreenCanvasRenderingContext2D::setFont):
- platform/graphics/FontCache.cpp:
(WebCore::FontDataCacheKeyHash::hash):
(WebCore::FontDataCacheKeyHash::equal):
(WebCore::FontDataCacheKeyTraits::emptyValue):
(WebCore::FontDataCacheKeyTraits::constructDeletedValue):
(WebCore::FontDataCacheKeyTraits::isDeletedValue):
(WebCore::FontCache::create):
(WebCore::FontCache::singleton):
(WebCore::FontCache::FontCache):
(WebCore::FontCache::getCachedFontPlatformData):
(WebCore::FontCache::fontForPlatformData):
(WebCore::FontCache::purgeInactiveFontDataIfNeeded):
(WebCore::FontCache::purgeInactiveFontData):
(WebCore::FontCache::verticalData):
(WebCore::FontCache::fontCount):
(WebCore::FontCache::inactiveFontCount):
(WebCore::FontCache::invalidate):
- platform/graphics/FontCache.h:
(WebCore::FontCache::fontCacheFallbackToSingleton):
- platform/graphics/FontCascade.cpp:
(WebCore::FontCascade::isCurrent const):
(WebCore::FontCascade::update const):
- platform/graphics/FontCascadeFonts.cpp:
(WebCore::FontCascadeFonts::FontCascadeFonts):
(WebCore::realizeNextFallback):
(WebCore::FontCascadeFonts::realizeFallbackRangesAt):
- platform/graphics/FontSelector.h:
- platform/graphics/cairo/FontCairoHarfbuzzNG.cpp:
(WebCore::FontCascade::fontForCombiningCharacterSequence const):
- platform/graphics/freetype/FontCacheFreeType.cpp:
(WebCore::getFamilyNameStringFromFamily):
- style/StyleBuilderCustom.h:
(WebCore::Style::BuilderCustom::applyValueFontFamily):
- style/StyleResolveForFontRaw.cpp:
(WebCore::Style::useFixedDefaultSize):
(WebCore::Style::resolveForFontRaw):
- style/StyleResolveForFontRaw.h:
- workers/WorkerGlobalScope.cpp:
(WebCore::WorkerGlobalScope::~WorkerGlobalScope):
(WebCore::WorkerGlobalScope::cssFontSelector):
(WebCore::WorkerGlobalScope::fontCache):
- workers/WorkerGlobalScope.h:
LayoutTests:
Adjust expectations for manual OffscreenCanvas worker text test.
- platform/glib/TestExpectations:
- 7:01 AM Changeset in webkit [275419] by
-
- 3 edits in trunk/Source/WebKit
PCM: PrivateClickMeasurementManager::getTokenPublicKey() should not use PrivateClickMeasurement::PcmDataCarried::PersonallyIdentifiable when validating the token before the attribution report is sent
https://bugs.webkit.org/show_bug.cgi?id=223956
<rdar://problem/76086936>
Reviewed by Youenn Fablet.
No new tests. This just changes the NetworkLoadParameters field pcmDataCarried
for the initial public key load and for PCM Debug Mode. This network load setting
is not observable in tests.
- NetworkProcess/PrivateClickMeasurementManager.cpp:
(WebKit::PrivateClickMeasurementManager::storeUnattributed):
Now sends PrivateClickMeasurement::PcmDataCarried::PersonallyIdentifiable
to PrivateClickMeasurementManager::getTokenPublicKey() since it's required.
(WebKit::generateNetworkLoadParameters):
Now takes the parameter isDebugModeEnabled and if it's true, forces
PrivateClickMeasurement::PcmDataCarried::PersonallyIdentifiable since
Debug Mode disables privacy measures making PCM network requests likely
to be personally identifiable.
(WebKit::generateNetworkLoadParametersForHttpPost):
Now forwards isDebugModeEnabled to generateNetworkLoadParameters().
(WebKit::generateNetworkLoadParametersForHttpGet):
Now forwards isDebugModeEnabled to generateNetworkLoadParameters().
(WebKit::PrivateClickMeasurementManager::getTokenPublicKey):
Now takes a PrivateClickMeasurement::PcmDataCarried parameter to be able
to request the public key in either network load mode.
Now also forwards isDebugModeEnabled to generateNetworkLoadParameters().
(WebKit::PrivateClickMeasurementManager::fireConversionRequest):
Now sends PrivateClickMeasurement::PcmDataCarried::NonPersonallyIdentifiable
to PrivateClickMeasurementManager::getTokenPublicKey() since it's required.
(WebKit::PrivateClickMeasurementManager::fireConversionRequestImpl):
Now forwards isDebugModeEnabled to generateNetworkLoadParameters().
- NetworkProcess/PrivateClickMeasurementManager.h:
- 6:26 AM Changeset in webkit [275418] by
-
- 2 edits in trunk/Source/WebKit
Use webrtc GPU Process feature flag for audio capture on MacOS
https://bugs.webkit.org/show_bug.cgi?id=223682
Reviewed by Eric Carlson.
Manually tested.
- Shared/WebPreferencesDefaultValues.cpp:
(WebKit::defaultCaptureAudioInGPUProcessEnabled):
- 6:19 AM Changeset in webkit [275417] by
-
- 12 edits2 adds in trunk
No audio output when unplugged wired headset during a call
https://bugs.webkit.org/show_bug.cgi?id=216389
<rdar://problem/68692800>
Reviewed by Eric Carlson.
Source/WebCore:
Implement shouldOverridePauseDuringRouteChange for media elements.
If it is a media stream backed video element, do not pause on active audio route change.
Implement internal API to write a layout test.
Refactoring to share more code between WebCore and WebKit and implement the internal API.
Improve isolation of MediaSessionHelper by moving all its members from protected to private.
Test: fast/mediastream/MediaStream-video-element-change-audio-route.html
- html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::shouldOverridePauseDuringRouteChange const):
- html/HTMLMediaElement.h:
- platform/audio/ios/MediaSessionHelperIOS.h:
(WebCore::MediaSessionHelper::MediaSessionHelper):
- platform/audio/ios/MediaSessionHelperIOS.mm:
(MediaSessionHelper::activeAudioRouteDidChange):
(MediaSessionHelper::applicationWillEnterForeground):
(MediaSessionHelper::applicationDidEnterBackground):
(MediaSessionHelper::applicationWillBecomeInactive):
(MediaSessionHelper::applicationDidBecomeActive):
(MediaSessionHelper::mediaServerConnectionDied):
(MediaSessionHelper::externalOutputDeviceAvailableDidChange):
(MediaSessionHelper::isPlayingToAutomotiveHeadUnitDidChange):
(MediaSessionHelper::activeVideoRouteDidChange):
(MediaSessionHelper::startMonitoringWirelessRoutes):
(MediaSessionHelper::stopMonitoringWirelessRoutes):
(MediaSessionHelperiOS::MediaSessionHelperiOS):
(MediaSessionHelperiOS::startMonitoringWirelessRoutesInternal):
(MediaSessionHelperiOS::stopMonitoringWirelessRoutesInternal):
(MediaSessionHelperiOS::mediaServerConnectionDied):
(MediaSessionHelperiOS::setIsPlayingToAutomotiveHeadUnit):
(MediaSessionHelperiOS::activeAudioRouteDidChange):
(MediaSessionHelperiOS::activeVideoRouteDidChange):
(MediaSessionHelperiOS::externalOutputDeviceAvailableDidChange):
(MediaSessionHelperiOS::startMonitoringWirelessRoutes): Deleted.
(MediaSessionHelperiOS::stopMonitoringWirelessRoutes): Deleted.
(MediaSessionHelperiOS::applicationDidBecomeActive): Deleted.
(MediaSessionHelperiOS::applicationDidEnterBackground): Deleted.
(MediaSessionHelperiOS::applicationWillBecomeInactive): Deleted.
(MediaSessionHelperiOS::applicationWillEnterForeground): Deleted.
- testing/Internals.cpp:
(WebCore::Internals::activeAudioRouteDidChange):
- testing/Internals.h:
- testing/Internals.idl:
Source/WebKit:
Make use of WebCore methods instead of reimplementing them here.
- WebProcess/GPU/media/ios/RemoteMediaSessionHelper.cpp:
(WebKit::RemoteMediaSessionHelper::startMonitoringWirelessRoutesInternal):
(WebKit::RemoteMediaSessionHelper::stopMonitoringWirelessRoutesInternal):
(WebKit::RemoteMediaSessionHelper::activeVideoRouteDidChange):
(WebKit::RemoteMediaSessionHelper::startMonitoringWirelessRoutes): Deleted.
(WebKit::RemoteMediaSessionHelper::stopMonitoringWirelessRoutes): Deleted.
(WebKit::RemoteMediaSessionHelper::applicationWillEnterForeground): Deleted.
(WebKit::RemoteMediaSessionHelper::applicationDidEnterBackground): Deleted.
(WebKit::RemoteMediaSessionHelper::applicationWillBecomeInactive): Deleted.
(WebKit::RemoteMediaSessionHelper::applicationDidBecomeActive): Deleted.
(WebKit::RemoteMediaSessionHelper::externalOutputDeviceAvailableDidChange): Deleted.
(WebKit::RemoteMediaSessionHelper::isPlayingToAutomotiveHeadUnitDidChange): Deleted.
(WebKit::RemoteMediaSessionHelper::activeAudioRouteDidChange): Deleted.
- WebProcess/GPU/media/ios/RemoteMediaSessionHelper.h:
LayoutTests:
- fast/mediastream/MediaStream-video-element-change-audio-route-expected.txt: Added.
- fast/mediastream/MediaStream-video-element-change-audio-route.html: Added.
- 3:59 AM Changeset in webkit [275416] by
-
- 7 edits in trunk/LayoutTests
[css-flexbox] align-content issues
https://bugs.webkit.org/show_bug.cgi?id=221468
Reviewed by Ryosuke Niwa.
LayoutTests/imported/w3c:
- web-platform-tests/css/css-flexbox/align-content_center-expected.html: Fixed stylesheet link.
- web-platform-tests/css/css-flexbox/align-content_flex-end-expected.html: Ditto.
- web-platform-tests/css/css-flexbox/align-content_space-around-expected.html: Ditto.
- web-platform-tests/css/css-flexbox/align-content_stretch-expected.html: Ditto.
LayoutTests:
Fix the relative path to a stylesheet in 4 expected results. The tests were working as expected
but the expected results were wrong without those CSS rules.
- TestExpectations: Unskip 4 tests that should be passing now.
- 3:44 AM Changeset in webkit [275415] by
-
- 6 edits in trunk
[MacOS] Enable NSURLSession WebSocket code path in WebKitTestRunner
https://bugs.webkit.org/show_bug.cgi?id=220973
<rdar://problem/73655870>
Reviewed by Darin Adler.
Source/WebKit:
Disable a debug assert until it gets fixed below WebKit.
- NetworkProcess/cocoa/NetworkSessionCocoa.mm:
(-[WKNetworkSessionDelegate URLSession:webSocketTask:didOpenWithProtocol:]):
Source/WTF:
- wtf/PlatformHave.h:
Bump NSURLSessionWebSocket path to above BigSur and iOS14.
Tools:
- WebKitTestRunner/TestController.cpp:
(WTR::TestController::resetPreferencesToConsistentValues):
- 2:14 AM Changeset in webkit [275414] by
-
- 3 edits in trunk/Source/WebCore
Start observing outgoing audio/video sources asynchronously
https://bugs.webkit.org/show_bug.cgi?id=224040
Reviewed by Eric Carlson.
We delay sending media a little bit to guarantee that senders can be
assigned a transform synchronously at creation time.
This guarantees all sent media will go through the transform.
Difficult to test in practice as this would be very racy.
- Modules/mediastream/libwebrtc/LibWebRTCRtpSenderBackend.cpp:
(WebCore::operator==):
(WebCore::LibWebRTCRtpSenderBackend::startSource):
- Modules/mediastream/libwebrtc/LibWebRTCRtpSenderBackend.h:
- 2:08 AM WebKitGTK/2.32.x edited by
- (diff)
- 2:07 AM Changeset in webkit [275413] by
-
- 57 edits in trunk/Source/WebCore
Subpixel layout: Switch inlines' baseline positioning from int to LayoutUnit.
https://bugs.webkit.org/show_bug.cgi?id=133932
Patch by Rob Buis <rbuis@igalia.com> on 2021-04-02
Reviewed by Zalan Bujtas.
This change converts the int returns type to LayoutUnit.
To match the old behavior, the implicit toInt() calls
have been replaced by explicit toInt() calls.
- rendering/GridBaselineAlignment.cpp:
(WebCore::GridBaselineAlignment::ascentForChild const):
- rendering/InlineBox.cpp:
(WebCore::InlineBox::baselinePosition const):
- rendering/InlineBox.h:
- rendering/InlineTextBox.cpp:
(WebCore::InlineTextBox::baselinePosition const):
- rendering/InlineTextBox.h:
- rendering/RenderAttachment.cpp:
(WebCore::RenderAttachment::baselinePosition const):
- rendering/RenderAttachment.h:
- rendering/RenderBlock.cpp:
(WebCore::RenderBlock::baselinePosition const):
(WebCore::RenderBlock::firstLineBaseline const):
(WebCore::RenderBlock::inlineBlockBaseline const):
- rendering/RenderBlock.h:
- rendering/RenderBlockFlow.cpp:
(WebCore::RenderBlockFlow::firstLineBaseline const):
(WebCore::RenderBlockFlow::inlineBlockBaseline const):
- rendering/RenderBlockFlow.h:
- rendering/RenderBox.cpp:
(WebCore::RenderBox::baselinePosition const):
- rendering/RenderBox.h:
(WebCore::RenderBox::firstLineBaseline const):
(WebCore::RenderBox::inlineBlockBaseline const):
- rendering/RenderBoxModelObject.h:
- rendering/RenderButton.cpp:
(WebCore::RenderButton::baselinePosition const):
- rendering/RenderButton.h:
- rendering/RenderFlexibleBox.cpp:
(WebCore::synthesizedBaselineFromBorderBox):
(WebCore::RenderFlexibleBox::baselinePosition const):
(WebCore::RenderFlexibleBox::firstLineBaseline const):
(WebCore::RenderFlexibleBox::inlineBlockBaseline const):
- rendering/RenderFlexibleBox.h:
- rendering/RenderGrid.cpp:
(WebCore::synthesizedBaselineFromBorderBox):
(WebCore::RenderGrid::baselinePosition const):
(WebCore::RenderGrid::firstLineBaseline const):
(WebCore::RenderGrid::inlineBlockBaseline const):
- rendering/RenderGrid.h:
- rendering/RenderInline.cpp:
(WebCore::RenderInline::baselinePosition const):
- rendering/RenderInline.h:
- rendering/RenderLineBreak.cpp:
(WebCore::RenderLineBreak::baselinePosition const):
- rendering/RenderLineBreak.h:
- rendering/RenderListBox.cpp:
(WebCore::RenderListBox::baselinePosition const):
- rendering/RenderListBox.h:
- rendering/RenderListMarker.cpp:
(WebCore::RenderListMarker::baselinePosition const):
- rendering/RenderListMarker.h:
- rendering/RenderMenuList.h:
- rendering/RenderSlider.cpp:
(WebCore::RenderSlider::baselinePosition const):
- rendering/RenderSlider.h:
- rendering/RenderTable.cpp:
(WebCore::RenderTable::baselinePosition const):
(WebCore::RenderTable::inlineBlockBaseline const):
(WebCore::RenderTable::firstLineBaseline const):
- rendering/RenderTable.h:
- rendering/RenderTableSection.cpp:
(WebCore::RenderTableSection::firstLineBaseline const):
- rendering/RenderTableSection.h:
- rendering/RenderTextControl.h:
- rendering/RenderTextControlMultiLine.cpp:
(WebCore::RenderTextControlMultiLine::baselinePosition const):
- rendering/RenderTextControlMultiLine.h:
- rendering/RootInlineBox.cpp:
(WebCore::RootInlineBox::baselinePosition const):
- rendering/RootInlineBox.h:
- rendering/mathml/RenderMathMLBlock.cpp:
(WebCore::RenderMathMLBlock::baselinePosition const):
(WebCore::RenderMathMLTable::firstLineBaseline const):
- rendering/mathml/RenderMathMLBlock.h:
(WebCore::RenderMathMLBlock::ascentForChild):
- rendering/mathml/RenderMathMLFraction.cpp:
(WebCore::RenderMathMLFraction::firstLineBaseline const):
- rendering/mathml/RenderMathMLFraction.h:
- rendering/mathml/RenderMathMLOperator.cpp:
(WebCore::RenderMathMLOperator::firstLineBaseline const):
- rendering/mathml/RenderMathMLOperator.h:
- rendering/mathml/RenderMathMLPadded.cpp:
(WebCore::RenderMathMLPadded::firstLineBaseline const):
- rendering/mathml/RenderMathMLPadded.h:
- rendering/mathml/RenderMathMLRow.cpp:
(WebCore::RenderMathMLRow::firstLineBaseline const):
- rendering/mathml/RenderMathMLRow.h:
- rendering/mathml/RenderMathMLScripts.cpp:
(WebCore::RenderMathMLScripts::firstLineBaseline const):
- rendering/mathml/RenderMathMLScripts.h:
- rendering/mathml/RenderMathMLSpace.cpp:
(WebCore::RenderMathMLSpace::firstLineBaseline const):
- rendering/mathml/RenderMathMLSpace.h:
- rendering/mathml/RenderMathMLToken.cpp:
(WebCore::RenderMathMLToken::firstLineBaseline const):
- rendering/mathml/RenderMathMLToken.h:
- 2:06 AM WebKitGTK/2.32.x edited by
- (diff)
- 1:55 AM Changeset in webkit [275412] by
-
- 6 edits in trunk
REGRESSION(r268176): [GStreamer] media/video-orientation-canvas.html fails
https://bugs.webkit.org/show_bug.cgi?id=223850
Reviewed by Carlos Alberto Lopez Perez.
Source/WebCore:
The GL pipeline used by the player is now able to handle image rotation tags itself. Manual
handling of the image rotation tags is now performed only when the pipeline is not able to
do it by itself.
- platform/graphics/gstreamer/GLVideoSinkGStreamer.cpp:
(webKitGLVideoSinkConstructed):
- platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
(WebCore::MediaPlayerPrivateGStreamer::createGSTPlayBin):
(WebCore::getVideoOrientation):
(WebCore::MediaPlayerPrivateGStreamer::updateVideoSizeAndOrientationFromCaps):
- platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:
LayoutTests:
- platform/gtk/TestExpectations: Unflag now-passing test.
- 1:50 AM Changeset in webkit [275411] by
-
- 2 edits in trunk/Source/WTF
Unreviewed, fix passing hash value
https://bugs.webkit.org/show_bug.cgi?id=223895
- wtf/RobinHoodHashTable.h:
(WTF::SizePolicy>::addPassingHashCode):
- 1:33 AM Changeset in webkit [275410] by
-
- 86 edits2 copies3 adds in trunk
[WTF] Introduce RobinHoodHashTable
https://bugs.webkit.org/show_bug.cgi?id=223895
Reviewed by Fil Pizlo.
Source/JavaScriptCore:
- builtins/BuiltinNames.cpp:
(JSC::lookUpPrivateNameImpl):
(JSC::lookUpWellKnownSymbolImpl):
- builtins/BuiltinNames.h:
- bytecode/BytecodeIntrinsicRegistry.h:
- runtime/Identifier.h:
- runtime/IntlCollator.cpp:
(JSC::IntlCollator::initializeCollator):
(JSC::IntlCollator::checkICULocaleInvariants):
- runtime/IntlCollator.h:
- runtime/IntlDateTimeFormat.cpp:
(JSC::IntlDateTimeFormat::initializeDateTimeFormat):
- runtime/IntlDateTimeFormatConstructor.cpp:
(JSC::JSC_DEFINE_HOST_FUNCTION):
- runtime/IntlDisplayNames.cpp:
(JSC::IntlDisplayNames::initializeDisplayNames):
- runtime/IntlDisplayNamesConstructor.cpp:
(JSC::JSC_DEFINE_HOST_FUNCTION):
- runtime/IntlListFormat.cpp:
(JSC::IntlListFormat::initializeListFormat):
- runtime/IntlListFormatConstructor.cpp:
(JSC::JSC_DEFINE_HOST_FUNCTION):
- runtime/IntlNumberFormat.cpp:
(JSC::IntlNumberFormat::initializeNumberFormat):
- runtime/IntlNumberFormatConstructor.cpp:
(JSC::JSC_DEFINE_HOST_FUNCTION):
- runtime/IntlObject.cpp:
(JSC::addScriptlessLocaleIfNeeded):
(JSC::intlAvailableLocales):
(JSC::intlCollatorAvailableLocales):
(JSC::intlSegmenterAvailableLocales):
(JSC::bestAvailableLocale):
(JSC::lookupMatcher):
(JSC::bestFitMatcher):
(JSC::resolveLocale):
(JSC::lookupSupportedLocales):
(JSC::bestFitSupportedLocales):
(JSC::supportedLocales):
- runtime/IntlObject.h:
(JSC::intlDateTimeFormatAvailableLocales):
(JSC::intlDisplayNamesAvailableLocales):
(JSC::intlNumberFormatAvailableLocales):
(JSC::intlPluralRulesAvailableLocales):
(JSC::intlRelativeTimeFormatAvailableLocales):
(JSC::intlListFormatAvailableLocales):
- runtime/IntlPluralRules.cpp:
(JSC::IntlPluralRules::initializePluralRules):
- runtime/IntlPluralRulesConstructor.cpp:
(JSC::JSC_DEFINE_HOST_FUNCTION):
- runtime/IntlRelativeTimeFormat.cpp:
(JSC::IntlRelativeTimeFormat::initializeRelativeTimeFormat):
- runtime/IntlRelativeTimeFormatConstructor.cpp:
(JSC::JSC_DEFINE_HOST_FUNCTION):
- runtime/IntlSegmenter.cpp:
(JSC::IntlSegmenter::initializeSegmenter):
- runtime/IntlSegmenterConstructor.cpp:
(JSC::JSC_DEFINE_HOST_FUNCTION):
- runtime/RegExpCache.h:
- runtime/RegExpKey.h:
Source/WebCore:
- Modules/mediacapabilities/MediaCapabilities.cpp:
(WebCore::bucketMIMETypes):
- accessibility/AccessibilityObject.cpp:
(WebCore::AccessibilityObject::popupValue const):
- dom/Element.cpp:
(WebCore::canAttachAuthorShadowRoot):
- dom/QualifiedName.h:
- dom/make_names.pl:
(printNamesHeaderFile):
(printFactoryCppFile):
(printWrapperFactoryCppFile):
- editing/FormatBlockCommand.cpp:
(WebCore::isElementForFormatBlock):
- editing/RemoveFormatCommand.cpp:
(WebCore::isElementForRemoveFormatCommand):
- editing/ReplaceSelectionCommand.cpp:
(WebCore::isProhibitedParagraphChild):
- html/Autofill.cpp:
(WebCore::fieldNameMap):
- html/HTMLDocument.cpp:
(WebCore::HTMLDocument::isCaseSensitiveAttribute):
- html/HTMLObjectElement.cpp:
(WebCore::preventsParentObjectFromExposure):
- html/parser/HTMLTreeBuilder.cpp:
(WebCore::createCaseMap):
(WebCore::adjustSVGTagNameCase):
(WebCore::adjustAttributes):
(WebCore::createForeignAttributesMap):
(WebCore::adjustForeignAttributes):
(WebCore::addNamesWithPrefix): Deleted.
- page/DebugPageOverlays.cpp:
(WebCore::touchEventRegionColors):
(WebCore::NonFastScrollableRegionOverlay::drawRect):
- page/PerformanceUserTiming.cpp:
(WebCore::restrictedMarkNamesToNavigationTimingFunctionMap):
- platform/cocoa/MIMETypeRegistryCocoa.mm:
(WebCore::extensionsForMIMETypeMap):
- platform/graphics/FontCascade.cpp:
(WebCore::useBackslashAsYenSignForFamily):
(WebCore::FontCascade::hasValidAverageCharWidth const):
- platform/graphics/avfoundation/CDMFairPlayStreaming.cpp:
(WebCore::validInitDataTypes):
- platform/graphics/cg/UTIRegistry.cpp:
(WebCore::defaultSupportedImageTypes):
- platform/graphics/cg/UTIRegistry.h:
- platform/graphics/cocoa/HEVCUtilitiesCocoa.mm:
(WebCore::codecTypeForDoViCodecString):
- platform/graphics/cocoa/SourceBufferParserWebM.cpp:
(WebCore::SourceBufferParserWebM::supportedVideoCodecs):
(WebCore::SourceBufferParserWebM::supportedAudioCodecs):
- platform/graphics/cocoa/SourceBufferParserWebM.h:
- rendering/svg/SVGResources.cpp:
(WebCore::clipperFilterMaskerTags):
(WebCore::markerTags):
(WebCore::fillAndStrokeTags):
(WebCore::chainableResourceTags):
- style/StyleAdjuster.cpp:
(WebCore::Style::hasEffectiveDisplayNoneForDisplayContents):
- svg/SVGAnimationElement.cpp:
(WebCore::SVGAnimationElement::isSupportedAttribute):
- svg/SVGElement.cpp:
(WebCore::createAttributeNameToCSSPropertyIDMap):
(WebCore::SVGElement::animatableAttributeForName):
(WebCore::SVGElement::cssPropertyIdForSVGAttributeName):
- svg/SVGTests.cpp:
(WebCore::SVGTests::addSupportedAttributes):
- svg/SVGTests.h:
- svg/SVGUseElement.cpp:
(WebCore::createAllowedElementSet):
(WebCore::isDisallowedElement):
- svg/animation/SVGSMILElement.cpp:
(WebCore::SVGSMILElement::isSupportedAttribute):
- xml/XPathFunctions.cpp:
(WebCore::XPath::createFunctionMap):
- xml/XPathParser.cpp:
(WebCore::XPath::createAxisNamesMap):
Source/WebKit:
- NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp:
(WebKit::ObservedDomainsTableSchemaV1Alternate):
(WebKit::expectedUnattributedColumns):
(WebKit::expectedAttributedColumns):
(WebKit::createTableQueries):
- Platform/IPC/ArgumentCoders.h:
- Shared/Cocoa/DefaultWebBrowserChecks.mm:
(WebKit::getAppBoundDomainsTesting):
- Shared/WebPreferencesStore.cpp:
(WebKit::WebPreferencesStore::decode):
- Shared/WebPreferencesStore.h:
- UIProcess/Cocoa/WebProcessProxyCocoa.mm:
(WebKit::WebProcessProxy::platformPathsWithAssumedReadAccess):
- UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::platformPathsWithAssumedReadAccess):
- UIProcess/WebProcessProxy.h:
Source/WTF:
This patch implements RobinHoodHashTable[1]. We don't use it as a default hashtable since it has different performance v.s. memory-saving characteristics,
and this patch's goal is not tackling on making this default. Rather, the goal of this patch is introducing it to non-performance sensitive area quickly
so that we can save memory. RobinHoodHashTable more frequently computes hash value compared to HashTable, so this is not drop-in replacement for the existing
one. But still, this is useful since we know that "while there are many small HashTables and they holds much memory, there are super large HashTables and
they holds almost same amount of memory while they are a few.". This patch's goal is applying this RobinHoodHashTable to these "large, but a few" singleton tables.
RobinHoodHashTable maintains distance-from-initial-bucket (DIB) small by adjusting existing entries when inserting. When inserting, if we found that the
existing entry has less DIB than the current inserting entry's DIB, then we swap entries, and insert the existing entry to the other place. This is giving
some good DIB from rich entry to poor entry (that's why it is called RobinHood Hashing), and making average DIB lower. And this algorithm adds good invariant
that, when looking up an entry, and we found that existing entry has smaller DIB, then we can stop searching in the middle of the chain since we know that
we should swap entries when this happened when inserting. These two tricks maintain HashTable performance even under significantly high load factor: 90% load-factor
just works. 95% load-factor regress adding performance, but still it does not become catastrophic compared to normal open-addressing HashTable.
We introduce RobinHoodHashTable, and adding several kinds of tables based on load-factors.
- MemoryCompactLookupOnlyRobinHoodHashSet / HashMap
This has 95% load-factor. This is suitable for sets and maps which is mostly-constant: constructing once, and looking up repeatedly. In WebKit, there are so
many this kind of tables e.g. singleton HashMap for various kinds of things. We can use this super high load-factor table so that we can save memory even while
we are maintains fast HashTable lookup.
- MemoryCompactRobinHoodHashSet / HashMap
This has 90% load-factor. It just works, and we can try using it if sets and maps are significantly performance intensive.
- FastRobinHoodHashSet / HashMap
This has 75% load-factor. This is still good compared to HashSet and HashMap since they are using 50% load-factor for large sized tables. This has very slightly performance regressed
compared to 50% load-factor large HashSet and HashMap, but if that is not performance intensive (e.g. AtomStringTable is one of the most performance intensive table), this is good.
In this patch, we replace many singleton HashSet / HashMap with RobinHoodHashTable.
[1]: https://www.sebastiansylvan.com/post/robin-hood-hashing-should-be-your-default-hash-table-implementation/
- WTF.xcodeproj/project.pbxproj:
- wtf/CMakeLists.txt:
- wtf/Forward.h:
- wtf/HashMap.h:
(WTF::Y>::swap):
(WTF::Y>::size const):
(WTF::Y>::capacity const):
(WTF::Y>::isEmpty const):
(WTF::Y>::begin):
(WTF::Y>::end):
(WTF::Y>::begin const):
(WTF::Y>::end const):
(WTF::Y>::find):
(WTF::Y>::find const):
(WTF::Y>::contains const):
(WTF::Y>::get const):
(WTF::Y>::inlineGet const):
(WTF::TableTraitsArg>::inlineSet):
(WTF::TableTraitsArg>::inlineAdd):
(WTF::TableTraitsArg>::inlineEnsure):
(WTF::TableTraitsArg>::set):
(WTF::TableTraitsArg>::add):
(WTF::TableTraitsArg>::fastAdd):
(WTF::TableTraitsArg>::ensure):
(WTF::Y>::remove):
(WTF::Y>::removeIf):
(WTF::Y>::clear):
(WTF::Y>::take):
(WTF::Y>::checkConsistency const):
(WTF::Y>::isValidKey):
(WTF::operator==):
(WTF::operator!=):
(WTF::X>::swap): Deleted.
(WTF::X>::size const): Deleted.
(WTF::X>::capacity const): Deleted.
(WTF::X>::isEmpty const): Deleted.
(WTF::X>::begin): Deleted.
(WTF::X>::end): Deleted.
(WTF::X>::begin const): Deleted.
(WTF::X>::end const): Deleted.
(WTF::X>::find): Deleted.
(WTF::X>::find const): Deleted.
(WTF::X>::contains const): Deleted.
(WTF::X>::get const): Deleted.
(WTF::X>::inlineGet const): Deleted.
(WTF::MappedTraitsArg>::inlineSet): Deleted.
(WTF::MappedTraitsArg>::inlineAdd): Deleted.
(WTF::MappedTraitsArg>::inlineEnsure): Deleted.
(WTF::MappedTraitsArg>::set): Deleted.
(WTF::MappedTraitsArg>::add): Deleted.
(WTF::MappedTraitsArg>::fastAdd): Deleted.
(WTF::MappedTraitsArg>::ensure): Deleted.
(WTF::MappedTraits>::get const): Deleted.
(WTF::MappedTraits>::inlineGet const): Deleted.
(WTF::X>::remove): Deleted.
(WTF::X>::removeIf): Deleted.
(WTF::X>::clear): Deleted.
(WTF::MappedTraits>::take): Deleted.
(WTF::X>::take): Deleted.
(WTF::X>::checkConsistency const): Deleted.
(WTF::X>::isValidKey): Deleted.
- wtf/HashSet.h:
(WTF::W>::swap):
(WTF::W>::size const):
(WTF::W>::capacity const):
(WTF::W>::isEmpty const):
(WTF::W>::begin const):
(WTF::W>::end const):
(WTF::W>::find const):
(WTF::W>::contains const):
(WTF::TableTraits>::find const):
(WTF::TableTraits>::contains const):
(WTF::TableTraits>::ensure):
(WTF::W>::add):
(WTF::W>::addVoid):
(WTF::TableTraits>::add):
(WTF::W>::remove):
(WTF::W>::removeIf):
(WTF::W>::clear):
(WTF::W>::take):
(WTF::W>::takeAny):
(WTF::TableTraits>::remove):
(WTF::TableTraits>::take):
(WTF::W>::isValidValue):
(WTF::= const):
(WTF::W>::checkConsistency const):
(WTF::V>::swap): Deleted.
(WTF::V>::size const): Deleted.
(WTF::V>::capacity const): Deleted.
(WTF::V>::isEmpty const): Deleted.
(WTF::V>::begin const): Deleted.
(WTF::V>::end const): Deleted.
(WTF::V>::find const): Deleted.
(WTF::V>::contains const): Deleted.
(WTF::Traits>::find const): Deleted.
(WTF::Traits>::contains const): Deleted.
(WTF::Traits>::ensure): Deleted.
(WTF::V>::add): Deleted.
(WTF::V>::addVoid): Deleted.
(WTF::Traits>::add): Deleted.
(WTF::V>::remove): Deleted.
(WTF::V>::removeIf): Deleted.
(WTF::V>::clear): Deleted.
(WTF::V>::take): Deleted.
(WTF::V>::takeAny): Deleted.
(WTF::Traits>::remove): Deleted.
(WTF::Traits>::take): Deleted.
(WTF::V>::isValidValue): Deleted.
(WTF::V>::checkConsistency const): Deleted.
- wtf/HashTable.h:
(WTF::addIterator):
(WTF::removeIterator):
(WTF::invalidateIterators):
(WTF::HashTable::~HashTable):
(WTF::HashTable::random):
(WTF::KeyTraits>::inlineLookup):
(WTF::KeyTraits>::lookupForWriting):
(WTF::KeyTraits>::fullLookupForWriting):
(WTF::KeyTraits>::addUniqueForInitialization):
(WTF::KeyTraits>::add):
(WTF::KeyTraits>::addPassingHashCode):
(WTF::KeyTraits>::removeAndInvalidateWithoutEntryConsistencyCheck):
(WTF::KeyTraits>::removeAndInvalidate):
(WTF::KeyTraits>::clear):
(WTF::KeyTraits>::swap):
(WTF::KeyTraits>::HashTable):
(WTF::HashTable::invalidateIterators): Deleted.
(WTF::KeyTraits>::invalidateIterators): Deleted.
- wtf/RobinHoodHashMap.h: Added.
- wtf/RobinHoodHashSet.h: Added.
- wtf/RobinHoodHashTable.h: Added.
(WTF::RobinHoodHashTable::~RobinHoodHashTable):
(WTF::RobinHoodHashTable::begin):
(WTF::RobinHoodHashTable::end):
(WTF::RobinHoodHashTable::begin const):
(WTF::RobinHoodHashTable::end const):
(WTF::RobinHoodHashTable::random):
(WTF::RobinHoodHashTable::random const):
(WTF::RobinHoodHashTable::size const):
(WTF::RobinHoodHashTable::capacity const):
(WTF::RobinHoodHashTable::isEmpty const):
(WTF::RobinHoodHashTable::reserveInitialCapacity):
(WTF::RobinHoodHashTable::add):
(WTF::RobinHoodHashTable::find):
(WTF::RobinHoodHashTable::find const):
(WTF::RobinHoodHashTable::contains const):
(WTF::RobinHoodHashTable::isEmptyBucket):
(WTF::RobinHoodHashTable::isEmptyOrDeletedBucket):
(WTF::RobinHoodHashTable::lookup):
(WTF::RobinHoodHashTable::checkTableConsistency):
(WTF::RobinHoodHashTable::internalCheckTableConsistency const):
(WTF::RobinHoodHashTable::internalCheckTableConsistencyExceptSize const):
(WTF::RobinHoodHashTable::internalCheckTableConsistencyExceptSize):
(WTF::RobinHoodHashTable::internalCheckTableConsistency):
(WTF::RobinHoodHashTable::shouldExpand):
(WTF::RobinHoodHashTable::computeTableHash):
(WTF::RobinHoodHashTable::shouldExpand const):
(WTF::RobinHoodHashTable::shouldShrink const):
(WTF::RobinHoodHashTable::shrink):
(WTF::RobinHoodHashTable::deleteBucket):
(WTF::RobinHoodHashTable::desiredIndex):
(WTF::RobinHoodHashTable::probeDistance):
(WTF::RobinHoodHashTable::makeIterator):
(WTF::RobinHoodHashTable::makeConstIterator const):
(WTF::RobinHoodHashTable::makeKnownGoodIterator):
(WTF::RobinHoodHashTable::makeKnownGoodConstIterator const):
(WTF::RobinHoodHashTable::checkTableConsistencyExceptSize):
(WTF::RobinHoodHashTable::tableSize const):
(WTF::RobinHoodHashTable::tableSizeMask const):
(WTF::RobinHoodHashTable::keyCount const):
(WTF::RobinHoodHashTable::tableHash const):
(WTF::SizePolicy>::checkKey):
(WTF::SizePolicy>::lookup):
(WTF::SizePolicy>::inlineLookup):
(WTF::SizePolicy>::initializeBucket):
(WTF::SizePolicy>::add):
(WTF::SizePolicy>::maintainProbeDistanceForAdd):
(WTF::SizePolicy>::addPassingHashCode):
(WTF::SizePolicy>::reinsert):
(WTF::SizePolicy>::find):
(WTF::SizePolicy>::find const):
(WTF::SizePolicy>::contains const):
(WTF::SizePolicy>::removeAndInvalidateWithoutEntryConsistencyCheck):
(WTF::SizePolicy>::removeAndInvalidate):
(WTF::SizePolicy>::remove):
(WTF::SizePolicy>::removeWithoutEntryConsistencyCheck):
(WTF::SizePolicy>::allocateTable):
(WTF::SizePolicy>::deallocateTable):
(WTF::SizePolicy>::expand):
(WTF::SizePolicy>::computeBestTableSize):
(WTF::SizePolicy>::shrinkToBestSize):
(WTF::SizePolicy>::rehash):
(WTF::SizePolicy>::clear):
(WTF::SizePolicy>::RobinHoodHashTable):
(WTF::SizePolicy>::swap):
(WTF::=):
(WTF::SizePolicy>::checkTableConsistency const):
(WTF::SizePolicy>::checkTableConsistencyExceptSize const):
- wtf/text/AtomStringHash.h:
- wtf/text/AtomStringImpl.cpp:
- wtf/text/AtomStringTable.cpp:
(WTF::AtomStringTable::~AtomStringTable):
- wtf/text/AtomStringTable.h:
(WTF::AtomStringTable::table):
- wtf/text/StringHash.h:
Tools:
- TestWebKitAPI/CMakeLists.txt:
- TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
- TestWebKitAPI/Tests/WTF/DeletedAddressOfOperator.h:
- TestWebKitAPI/Tests/WTF/HashMap.cpp:
(TestWebKitAPI::testMovingUsingEnsure):
(TestWebKitAPI::testMovingUsingAdd):
- TestWebKitAPI/Tests/WTF/HashSet.cpp:
(TestWebKitAPI::generateTestCapacityUpToSize<0>):
(TestWebKitAPI::generateTestCapacityUpToSize):
- TestWebKitAPI/Tests/WTF/MoveOnly.h:
- TestWebKitAPI/Tests/WTF/RobinHoodHashMap.cpp: Copied from Tools/TestWebKitAPI/Tests/WTF/HashMap.cpp.
(TestWebKitAPI::TEST):
(TestWebKitAPI::bucketForKey):
(TestWebKitAPI::ZeroHash::hash):
(TestWebKitAPI::ObjectWithRefLogger::ObjectWithRefLogger):
(TestWebKitAPI::testMovingUsingEnsure):
(TestWebKitAPI::testMovingUsingAdd):
(TestWebKitAPI::DerefObserver::ref):
(TestWebKitAPI::DerefObserver::deref):
(TestWebKitAPI::TestObjectWithCustomDestructor::TestObjectWithCustomDestructor):
(TestWebKitAPI::TestObjectWithCustomDestructor::~TestObjectWithCustomDestructor):
- TestWebKitAPI/Tests/WTF/RobinHoodHashSet.cpp: Copied from Tools/TestWebKitAPI/Tests/WTF/HashSet.cpp.
(TestWebKitAPI::capacityForSize):
(TestWebKitAPI::testInitialCapacity):
(TestWebKitAPI::generateTestCapacityUpToSize<0>):
(TestWebKitAPI::generateTestCapacityUpToSize):
(TestWebKitAPI::TEST):
(TestWebKitAPI::DerefObserver::ref):
(TestWebKitAPI::DerefObserver::deref):
- 1:19 AM Changeset in webkit [275409] by
-
- 2 edits in trunk/Source/ThirdParty/libwebrtc
[CMake][GStremer] Fails to build if OpenH264 is not present
https://bugs.webkit.org/show_bug.cgi?id=224089
Reviewed by Philippe Normand.
- CMakeLists.txt: Only try to link with OpenH264 when it is found.
- 1:11 AM Changeset in webkit [275408] by
-
- 3 edits3 adds in trunk
Bail out early if encoded frame is written twice
https://bugs.webkit.org/show_bug.cgi?id=224041
Reviewed by Eric Carlson.
Source/WebCore:
Test: http/wpt/webrtc/write-twice-transform.html
- Modules/mediastream/libwebrtc/LibWebRTCRtpTransformBackend.cpp:
(WebCore::LibWebRTCRtpTransformBackend::processTransformedFrame):
In case the frame is written twice, the second write is considered as a no-op.
LayoutTests:
- http/wpt/webrtc/write-twice-transform-expected.txt: Added.
- http/wpt/webrtc/write-twice-transform.html: Added.
- http/wpt/webrtc/write-twice-transform.js: Added.
(onrtctransform.process):
(onrtctransform):
- 1:07 AM Changeset in webkit [275407] by
-
- 5 edits in trunk/Source/WebKit
Pass the main frame URL to requestGeolocationAuthorizationForURL delegate SPI
https://bugs.webkit.org/show_bug.cgi?id=224045
Reviewed by Alex Christensen.
Simplify code path using requestGeolocationAuthorizationForURL SPI.
We store the URL in the GeolocationRequestData since it might change over time given the requests may be processed asynchronously.
Once geolocation access check is done, we then process each request one at a time using a Deque.
We pass the main frame URL instead of the URL of the frame that called the API, following getUserMedia and device motion orientation.
Manually tested in the simulator.
- UIProcess/API/Cocoa/WKUIDelegatePrivate.h:
Remove shouldRequestGeolocationAuthorizationForURL SPI that is not used.
- UIProcess/ios/PageClientImplIOS.mm:
(WebKit::PageClientImpl::decidePolicyForGeolocationPermissionRequest):
Remove unneeded origin creation.
- UIProcess/ios/WKGeolocationProviderIOS.mm:
(-[WKGeolocationProviderIOS decidePolicyForGeolocationRequestFromOrigin:completionHandler:view:]):
(-[WKGeolocationProviderIOS geolocationAuthorizationGranted]):
(-[WKGeolocationProviderIOS geolocationAuthorizationDenied]):
- UIProcess/ios/WKGeolocationProviderIOSObjCSecurityOrigin.mm:
(WebKit::decidePolicyForGeolocationRequestFromOrigin):
Apr 1, 2021:
- 11:12 PM Changeset in webkit [275406] by
-
- 3 edits in trunk/Source/WebKit
Unreviewed, reverting r275387.
https://bugs.webkit.org/show_bug.cgi?id=224094
IOKit method list not complete
Reverted changeset:
"Add IOKit method filter telemetry"
https://bugs.webkit.org/show_bug.cgi?id=223652
https://trac.webkit.org/changeset/275387
- 10:10 PM Changeset in webkit [275405] by
-
- 2 edits in trunk/Source/WebCore
Remove redundant #if in RuntimeApplicationChecks.h.
https://bugs.webkit.org/show_bug.cgi?id=224037
Reviewed by Alexey Proskuryakov.
- platform/RuntimeApplicationChecks.h:
- 10:00 PM Changeset in webkit [275404] by
-
- 2 edits in trunk/Source/WebKit
Add a macro to help staging logDiagnosticMessageWithDomain in Safari
https://bugs.webkit.org/show_bug.cgi?id=224081
Reviewed by Wenson Hsieh.
Checking this macro will allow the webkit clients to implement this API
and build with or without r275103.
- UIProcess/API/Cocoa/_WKDiagnosticLoggingDelegate.h:
- 9:42 PM Changeset in webkit [275403] by
-
- 14 edits4 copies2 adds in trunk/Source
RemoteRenderingBackend should clean up CG resources after last Canvas is destroyed in Gpu process
https://bugs.webkit.org/show_bug.cgi?id=223885
<rdar://problem/75637356>
Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2021-04-01
Reviewed by Simon Fraser.
Source/WebCore/PAL:
Add SPI interface _MTLDevice for its _purgeDevice method.
- pal/spi/cocoa/MetalSPI.h:
Source/WebKit:
Release CoreGraphics resources (Metal device command buffers,
and other per-device resources) 1s after last
- RemoteRenderingBackend drawable resource
- RemoteGraphicsContextGL instance
- RemoteMediaPlayerProxy instance
has been destroyed.
Adds ScopedRenderingResourcesRequest and
ScopedWebGLRenderingResourcesRequest to hold the intent to
use the global rendering resources. The names are called 'Request'
because the implementation is not guaranteed to do anything specific.
E.g. ResourcesRequest == "I'd like the resources to be available"
ResourcesLock, ResourcesHolder, ... = "The resources are guaranteed
to be held."
The naming tries to be consistent with the similar class
ScopedHighPerformanceGPURequest.
For sequence like:
1) Visit a page with simple Context2D usage
2) Close the page (but leave the browser running)
This saves 2mb of IOAccelMemory at step 2 on a tested device.
- Configurations/WebKit.xcconfig:
Link WebKit to Metal in order to use the RemoteRenderingRequest
(_MTLCopyAllDevices symbol).
- GPUProcess/GPUConnectionToWebProcess.cpp:
(WebKit::GPUConnectionToWebProcess::didClose):
Clear the map containing RemoteGraphicsContextGL objects
when connection to WebContent process is closed.
This stops the RemoteGraphicsContextGL listening for IPC
and destroys them in scenarios where the connection is
closed but the GPUConnectionToWebProcess is staying alive
for some reason. In this patch, this would happen for example
during reload of the page.
- GPUProcess/graphics/RemoteGraphicsContextGL.cpp:
(WebKit::remoteGraphicsContextGLStreamWorkQueue):
(WebKit::RemoteGraphicsContextGL::RemoteGraphicsContextGL):
(WebKit::RemoteGraphicsContextGL::initialize):
(WebKit::RemoteGraphicsContextGL::stopListeningForIPC):
- GPUProcess/graphics/RemoteGraphicsContextGL.h:
Hold the ScopedWebGLRenderingResourcesRequest for
the duration of the RemoteGraphicsContextGL context lifetime.
- GPUProcess/graphics/RemoteRenderingBackend.cpp:
(WebKit::RemoteRenderingBackend::~RemoteRenderingBackend):
(WebKit::RemoteRenderingBackend::createImageBuffer):
(WebKit::RemoteRenderingBackend::releaseRemoteResource):
(WebKit::RemoteRenderingBackend::updateRenderingResourceRequest):
- GPUProcess/graphics/RemoteRenderingBackend.h:
Hold the ScopedRenderingResourcesRequest for the duration that
there are ImageBuffers or NativeImages in the RemoteResourceCache.
A RemoteRenderingBackend might exist without any drawable due to
a) Context2D being created and then destroyed
b) WebGL taking a reference to the RemoteRenderingBackend in order
to submit work in case the caller would request Image -> texture
upload.
In case of WebGL context being created and then destroyed, there is
a RRB instance alive but not doing any rendering. In these cases,
we want the rendering resources to be released and not held by
the empty RRB.
- GPUProcess/graphics/ScopedRenderingResourcesRequest.cpp: Copied from Source/WebCore/PAL/pal/spi/cocoa/MetalSPI.h.
(WebKit::ScopedRenderingResourcesRequest::scheduleFreeRenderingResources):
(WebKit::ScopedRenderingResourcesRequest::freeRenderingResources):
- GPUProcess/graphics/ScopedRenderingResourcesRequest.h: Added.
(WebKit::ScopedRenderingResourcesRequest::ScopedRenderingResourcesRequest):
(WebKit::ScopedRenderingResourcesRequest::~ScopedRenderingResourcesRequest):
(WebKit::ScopedRenderingResourcesRequest::operator=):
(WebKit::ScopedRenderingResourcesRequest::isRequested const):
(WebKit::ScopedRenderingResourcesRequest::acquire):
(WebKit::ScopedRenderingResourcesRequest::reset):
- GPUProcess/graphics/ScopedRenderingResourcesRequestCocoa.mm: Copied from Source/WebCore/PAL/pal/spi/cocoa/MetalSPI.h.
(WebKit::ScopedRenderingResourcesRequest::scheduleFreeRenderingResources):
(WebKit::ScopedRenderingResourcesRequest::freeRenderingResources):
Add a scoped holder for the rendering resources. Currently it purges
all Metal device memory.
- GPUProcess/graphics/ScopedWebGLRenderingResourcesRequest.cpp: Copied from Source/WebCore/PAL/pal/spi/cocoa/MetalSPI.h.
(WebKit::ScopedWebGLRenderingResourcesRequest::scheduleFreeWebGLRenderingResources):
(WebKit::ScopedWebGLRenderingResourcesRequest::freeWebGLRenderingResources):
- GPUProcess/graphics/ScopedWebGLRenderingResourcesRequest.h: Added.
(WebKit::ScopedWebGLRenderingResourcesRequest::ScopedWebGLRenderingResourcesRequest):
(WebKit::ScopedWebGLRenderingResourcesRequest::~ScopedWebGLRenderingResourcesRequest):
(WebKit::ScopedWebGLRenderingResourcesRequest::operator=):
(WebKit::ScopedWebGLRenderingResourcesRequest::isRequested const):
(WebKit::ScopedWebGLRenderingResourcesRequest::acquire):
(WebKit::ScopedWebGLRenderingResourcesRequest::reset):
- GPUProcess/graphics/ScopedWebGLRenderingResourcesRequestCocoa.cpp: Copied from Source/WebCore/PAL/pal/spi/cocoa/MetalSPI.h.
(WebKit::ScopedWebGLRenderingResourcesRequest::scheduleFreeWebGLRenderingResources):
(WebKit::ScopedWebGLRenderingResourcesRequest::freeWebGLRenderingResources):
Add a scoped holder for the WebGL global resources. Currently it frees
the ANGLE related global data. It also purges all Metal device memory
via RenderingResourcesRequest.
- GPUProcess/media/RemoteMediaPlayerProxy.cpp:
(WebKit::RemoteMediaPlayerProxy::RemoteMediaPlayerProxy):
(WebKit::RemoteMediaPlayerProxy::invalidate):
- GPUProcess/media/RemoteMediaPlayerProxy.h:
Hold RenderingResourcesRequest for the duration of a media player
existing in the GPU process. It's not known if media playback needs
Metal. At least some videos do not need it. However, this is erring
on the side of caution in order to avoid potential video frame skips
the video playback using Metal but then the devices being purged by
a Context2D or WebGL -related destruction.
- Sources.txt:
- SourcesCocoa.txt:
- WebKit.xcodeproj/project.pbxproj:
- 9:02 PM Changeset in webkit [275402] by
-
- 3 edits in trunk/Source/WebCore
Expand on shouldComputeLogicalWidthFromAspectRatioAndInsets return logic
https://bugs.webkit.org/show_bug.cgi?id=224057
Reviewed by Rob Buis.
In this patch we also start checking against logicalWidth/height instead of just width/height.
- rendering/RenderBox.cpp:
(WebCore::shouldComputeLogicalWidthFromAspectRatioAndInsets):
(WebCore::RenderBox::shouldComputeLogicalHeightFromAspectRatio const):
(WebCore::RenderBox::shouldComputeLogicalWidthFromAspectRatio const):
(WebCore::RenderBox::shouldComputeLogicalWidthFromAspectRatioAndInsets const): Deleted.
- rendering/RenderBox.h:
- 8:19 PM Changeset in webkit [275401] by
-
- 8 edits in trunk/Source
Clear network website data when a user clears history/website data
https://bugs.webkit.org/show_bug.cgi?id=224030
<rdar://problem/75288338>
Reviewed by David Kilzer.
Source/WebKit:
Clear network-related website data for domains when clearing history/
website data.
No new tests. Unable to test due to recent changes in a dependent
framework's infrastructure for setting network website data for
testing. Will post a followup test once that is resolved.
- NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::deleteWebsiteData):
- NetworkProcess/NetworkSession.h:
(WebKit::NetworkSession::removeNetworkWebsiteData):
- NetworkProcess/cocoa/NetworkSessionCocoa.h:
- NetworkProcess/cocoa/NetworkSessionCocoa.mm:
(NetworkSessionCocoa::removeNetworkWebsiteData):
- Scripts/process-entitlements.sh:
Source/WTF:
- wtf/cocoa/SoftLinking.h:
Add a new soft link macro to link umbrella private frameworks. We need
this to support internal additions we need to clear network domain data.
- 6:37 PM Changeset in webkit [275400] by
-
- 10 edits in branches/safari-612.1.9-branch/Source/JavaScriptCore
Cherry-pick r275392. rdar://problem/76132877
REGRESSION(r274724): JITCage trampoline needs to be adjusted
https://bugs.webkit.org/show_bug.cgi?id=224065
Reviewed by Saam Barati.
r274724 introduced a new parameter to custom setters, but it didn't change the parameter recognization of JITCage trampolines for custom accessors.
As a result, we are jumping with the wrong pointer, and crash when custom setter is called with JITCage.
This patch fixes the above bug.
- Now, custom getter and custom setter have different number of parameters. We should have two different trampolines to invoke it. We remove vmEntryCustomAccessor, and add vmEntryCustomGetter/vmEntryCustomSetter.
- vmEntryCustomSetter should use a4 parameter as a executable address for trampoline.
- bytecode/AccessCase.cpp: (JSC::AccessCase::generateImpl):
- dfg/DFGSpeculativeJIT.cpp: (JSC::DFG::SpeculativeJIT::compileCallDOMGetter):
- ftl/FTLLowerDFGToB3.cpp: (JSC::FTL::DFG::LowerDFGToB3::compileCallDOMGetter):
- llint/LLIntThunks.cpp:
- llint/LLIntThunks.h:
- llint/LowLevelInterpreter.asm:
- offlineasm/arm64.rb:
- offlineasm/registers.rb:
- runtime/PropertySlot.h:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@275392 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 6:07 PM Changeset in webkit [275399] by
-
- 5 edits2 adds3 deletes in trunk/LayoutTests
[LayoutTests] Convert http/tests/cache convert PHP to Python
https://bugs.webkit.org/show_bug.cgi?id=222935
<rdar://problem/75183314>
Reviewed by Jonathan Bedard.
- http/tests/cache/cache-redirections.html:
- http/tests/cache/resources/cache-control-redirect.php: Removed.
- http/tests/cache/resources/cache-control-redirect.py: Added.
- http/tests/cache/resources/permanent-redirect.php: Removed.
- http/tests/cache/resources/x-frame-options.php: Removed.
- http/tests/cache/resources/x-frame-options.py: Added.
- http/tests/cache/x-frame-options-304.html:
- http/tests/navigation/window-open-redirect-and-remove-opener.html:
- http/tests/xmlhttprequest/cacheable-cross-origin-redirect-crash.html:
- 6:03 PM Changeset in webkit [275398] by
-
- 11 edits2 moves1 add1 delete in trunk/LayoutTests
[LayoutTests] Convert http/tests/history convert PHP to Python
https://bugs.webkit.org/show_bug.cgi?id=222614
<rdar://problem/74946423>
Reviewed by Jonathan Bedard.
- http/tests/history/back-to-post.php: Removed.
- http/tests/history/back-to-post.py: Added.
- http/tests/history/back-with-fragment-change-expected.txt:
- http/tests/history/back-with-fragment-change.php: Removed.
- http/tests/history/back-with-fragment-change.py: Added.
- http/tests/history/resources/back-during-onload-hung-page.php: Removed.
- http/tests/history/resources/back-during-onload-hung-page.py: Added.
- http/tests/history/resources/back-during-onload-middle.html:
- http/tests/navigation/resources/back-twice-page-2.html:
- platform/glib/TestExpectations:
- platform/ios-wk1/TestExpectations:
- platform/ios-wk2/TestExpectations:
- platform/ios/TestExpectations:
- platform/mac-wk1/TestExpectations:
- platform/mac-wk2/TestExpectations:
- platform/win/TestExpectations:
- 5:52 PM Changeset in webkit [275397] by
-
- 2 edits in trunk/Source/WebKit
[watchOS] Contact AutoFill suggestions no longer show up in non-username or password fields
https://bugs.webkit.org/show_bug.cgi?id=224087
<rdar://problem/76080205>
Reviewed by Tim Horton.
For the time being, limit use of
PUICQuickboardController
to text content types that would allow for login
credential AutoFill in Quickboard. We can remove this logic whenPUICQuickboardController
can be updated with
and present arbitrary text suggestion values.
- UIProcess/ios/WKContentViewInteraction.mm:
(canUseQuickboardControllerFor):
(-[WKContentView presentViewControllerForCurrentFocusedElement]):
- 5:40 PM Changeset in webkit [275396] by
-
- 2 edits in trunk/LayoutTests
inspector/animation/lifecycle-css-transition.html is a flakey timeout on EWS
https://bugs.webkit.org/show_bug.cgi?id=222195
Unreviewed test gardening.
- platform/mac/TestExpectations: Removing test expectations to see if it is still an issue on EWS.
- 5:38 PM Changeset in webkit [275395] by
-
- 4 edits in trunk
REGRESSION(r272469) QuickLook previews broken in some places on macOS
https://bugs.webkit.org/show_bug.cgi?id=224086
Patch by Alex Christensen <achristensen@webkit.org> on 2021-04-01
Reviewed by Tim Horton.
Source/WebCore:
The linked-on-or-after check saves us from most compatibility problems, but QuickLook on macOS was broken.
It uses schemes x-apple-ql-id and x-apple-ql-magic, which we allow to continue to have non-null origins.
Covered by API tests.
- page/SecurityOrigin.cpp:
(WebCore::shouldTreatAsUniqueOrigin):
Tools:
- TestWebKitAPI/Tests/WebCore/SecurityOrigin.cpp:
(TestWebKitAPI::TEST_F):
- 5:19 PM Changeset in webkit [275394] by
-
- 2 edits in trunk/Source/WebCore
Add more deprecation macros.
I missed one in r275298
- platform/network/cocoa/CertificateInfoCocoa.mm:
(WebCore::CertificateInfo::dump const):
- 4:32 PM Changeset in webkit [275393] by
-
- 10 edits2 deletes in trunk
v2: REGRESSION(r266890): [Cocoa] Fix API::InspectorClient leak
https://bugs.webkit.org/show_bug.cgi?id=223899
<rdar://problem/75249282>
Reviewed by Devin Rousso.
Refactor to *not* use the helper ObjC class InspectorDelegate.
Instead, store the _WKInspectorDelegate in _WKInspector directly
using a WeakObjCPtr ivar. Move the C++ bridge class to be defined
inside _WKInspector.mm since it's only used there. Adapt it to
work better with a nil delegate.
- UIProcess/API/APIInspectorClient.h:
(API::InspectorClient::openURLExternally):
- UIProcess/API/Cocoa/_WKInspectorInternal.h:
- UIProcess/API/Cocoa/_WKInspector.mm:
(-[_WKInspector delegate]):
(-[_WKInspector setDelegate:]):
(-[_WKInspector dealloc]):
- SourcesCocoa.txt:
- WebKit.xcodeproj/project.pbxproj:
- UIProcess/Inspector/Cocoa/InspectorDelegate.h: Removed.
- UIProcess/Inspector/Cocoa/InspectorDelegate.mm: Removed.
- UIProcess/Inspector/mac/WKInspectorViewController.mm:
(-[WKInspectorViewController initWithConfiguration:inspectedPage:]):
Drive-by, fix the leak of _WKInspectorConfiguration.
- 4:06 PM Changeset in webkit [275392] by
-
- 10 edits in trunk/Source/JavaScriptCore
REGRESSION(r274724): JITCage trampoline needs to be adjusted
https://bugs.webkit.org/show_bug.cgi?id=224065
Reviewed by Saam Barati.
r274724 introduced a new parameter to custom setters, but it didn't change the parameter recognization of JITCage trampolines for custom accessors.
As a result, we are jumping with the wrong pointer, and crash when custom setter is called with JITCage.
This patch fixes the above bug.
- Now, custom getter and custom setter have different number of parameters. We should have two different trampolines to invoke it. We remove vmEntryCustomAccessor, and add vmEntryCustomGetter/vmEntryCustomSetter.
- vmEntryCustomSetter should use a4 parameter as a executable address for trampoline.
- bytecode/AccessCase.cpp:
(JSC::AccessCase::generateImpl):
- dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::compileCallDOMGetter):
- ftl/FTLLowerDFGToB3.cpp:
(JSC::FTL::DFG::LowerDFGToB3::compileCallDOMGetter):
- llint/LLIntThunks.cpp:
- llint/LLIntThunks.h:
- llint/LowLevelInterpreter.asm:
- offlineasm/arm64.rb:
- offlineasm/registers.rb:
- runtime/PropertySlot.h:
- 3:50 PM Changeset in webkit [275391] by
-
- 5 edits in trunk/LayoutTests
REGRESSION (r275358): [ macOS ] 2X media/modern-media-controls layout-tests are text failing
https://bugs.webkit.org/show_bug.cgi?id=224061
<rdar://problem/76115550>
Unreviewed test fix.
- media/modern-media-controls/macos-fullscreen-media-controls/macos-fullscreen-media-controls-buttons-styles.html:
- media/modern-media-controls/macos-fullscreen-media-controls/macos-fullscreen-media-controls-buttons-styles-expected.txt:
- media/modern-media-controls/macos-inline-media-controls/macos-inline-media-dropping-controls.html:
- media/modern-media-controls/macos-inline-media-controls/macos-inline-media-dropping-controls-expected.txt:
Set a
maximumRightContainerButtonCountOverride
so that the collapsing behavior of the
overflow button doesn't affect the test (and force a layout to ensure it's picked up).
- 3:30 PM Changeset in webkit [275390] by
-
- 2 edits in trunk/LayoutTests
[BigSur Wk1 Release] webanimations/accelerated* tests are flaky image failing
https://bugs.webkit.org/show_bug.cgi?id=224066
Unreviewed test gardening.
- platform/mac-wk1/TestExpectations:
- 3:27 PM Changeset in webkit [275389] by
-
- 7 edits in trunk/Source/WebKit
Share same code between network process termination and crash handling
https://bugs.webkit.org/show_bug.cgi?id=224056
Reviewed by Darin Adler.
Share same code between network process termination and crash handling. This would avoid
bugs such as Bug 224022.
- UIProcess/Network/NetworkProcessProxy.cpp:
(WebKit::NetworkProcessProxy::terminate):
(WebKit::NetworkProcessProxy::networkProcessDidTerminate):
(WebKit::NetworkProcessProxy::didClose):
(WebKit::NetworkProcessProxy::didFinishLaunching):
(WebKit::NetworkProcessProxy::didTerminate): Deleted.
(WebKit::NetworkProcessProxy::networkProcessCrashed): Deleted.
- UIProcess/Network/NetworkProcessProxy.h:
- UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::networkProcessDidTerminate):
(WebKit::WebProcessPool::networkProcessCrashed): Deleted.
- UIProcess/WebProcessPool.h:
- UIProcess/WebsiteData/WebsiteDataStore.cpp:
(WebKit::WebsiteDataStore::networkProcessDidTerminate):
(WebKit::WebsiteDataStore::terminateNetworkProcess):
(WebKit::WebsiteDataStore::networkProcessCrashed): Deleted.
- UIProcess/WebsiteData/WebsiteDataStore.h:
- 3:26 PM Changeset in webkit [275388] by
-
- 8 edits2 deletes in trunk
Unreviewed, reverting r274381.
https://bugs.webkit.org/show_bug.cgi?id=224080
Caused stuttery select scrolling
Reverted changeset:
"Add basic (non-momentum) wheel event handling for scroll
snap"
https://bugs.webkit.org/show_bug.cgi?id=222594
https://trac.webkit.org/changeset/274381
- 3:19 PM Changeset in webkit [275387] by
-
- 3 edits in trunk/Source/WebKit
Add IOKit method filter telemetry
https://bugs.webkit.org/show_bug.cgi?id=223652
<rdar://problem/75751391>
Reviewed by Brent Fulgham.
Add IOKit method filter telemetry in the WebContent sandbox on macOS and iOS.
- Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
- WebProcess/com.apple.WebProcess.sb.in:
- 3:19 PM Changeset in webkit [275386] by
-
- 3 edits in branches/safari-612.1.9-branch/Source/JavaScriptCore
Cherry-pick r275374. rdar://problem/76124167
Remove use of ENABLE from API header
https://bugs.webkit.org/show_bug.cgi?id=224060
<rdar://76111678>
Reviewed by Mark Lam.
The use of the ENABLE macro in these API headers has caused build failures. Instead of
conditionally exposing these API methods we make them into no-ops if DFG is disabled.
- API/JSVirtualMachine.mm: (+[JSVirtualMachine setNumberOfDFGCompilerThreads:]): (+[JSVirtualMachine setNumberOfFTLCompilerThreads:]):
- API/JSVirtualMachinePrivate.h:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@275374 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 2:51 PM Changeset in webkit [275385] by
-
- 2 edits in trunk/Source/JavaScriptCore
[JSC] Use ucal_getTimeZoneOffsetFromLocal if ICU 69 is present
https://bugs.webkit.org/show_bug.cgi?id=224075
Reviewed by Yusuke Suzuki.
Apple ICU 68 cherry picked ucal_getTimeZoneOffsetFromLocal (see r223783),
but now that ICU 69 is in RC, we can go ahead and update the #if for non-Apple platforms.
- runtime/JSDateMath.cpp:
- 2:25 PM Changeset in webkit [275384] by
-
- 1 copy in tags/Safari-612.1.8.4
Tag Safari-612.1.8.4.
- 2:23 PM Changeset in webkit [275383] by
-
- 3 edits in branches/safari-612.1.8-branch/Source/JavaScriptCore
Cherry-pick r275374. rdar://problem/76111678
Remove use of ENABLE from API header
https://bugs.webkit.org/show_bug.cgi?id=224060
<rdar://76111678>
Reviewed by Mark Lam.
The use of the ENABLE macro in these API headers has caused build failures. Instead of
conditionally exposing these API methods we make them into no-ops if DFG is disabled.
- API/JSVirtualMachine.mm: (+[JSVirtualMachine setNumberOfDFGCompilerThreads:]): (+[JSVirtualMachine setNumberOfFTLCompilerThreads:]):
- API/JSVirtualMachinePrivate.h:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@275374 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 2:21 PM Changeset in webkit [275382] by
-
- 8 edits in branches/safari-612.1.8-branch/Source
Versioning.
WebKit-7612.1.8.4
- 2:21 PM Changeset in webkit [275381] by
-
- 2 edits in trunk/Source/WebKit
Add #import for when unified sources doesn't import it first.
- Shared/ios/WebIconUtilities.h:
- 2:12 PM Changeset in webkit [275380] by
-
- 9 edits2 adds2 deletes in trunk/LayoutTests
LayoutTests] Convert http/tests/download convert PHP to Python
https://bugs.webkit.org/show_bug.cgi?id=222618
<rdar://problem/74949253>
Reviewed by Jonathan Bedard.
- http/tests/download/default-encoding-expected.txt:
- http/tests/download/default-encoding.html:
- http/tests/download/inherited-encoding-expected.txt:
- http/tests/download/inherited-encoding-form-submission-result-expected.txt:
- http/tests/download/inherited-encoding-form-submission-result.html:
- http/tests/download/inherited-encoding.html:
- http/tests/download/literal-utf-8-expected.txt:
- http/tests/download/literal-utf-8.html:
- http/tests/download/resources/literal-koi8-r.php: Removed.
- http/tests/download/resources/literal-koi8-r.py: Added.
- http/tests/download/resources/literal-utf-8.php: Removed.
- http/tests/download/resources/literal-utf-8.py: Added.
- 1:59 PM Changeset in webkit [275379] by
-
- 2 edits in trunk/Source/WTF
REGRESSION(r275267): [GTK][WPE] 12 new crashes on service-workers layout tests
https://bugs.webkit.org/show_bug.cgi?id=224059
Reviewed by Carlos Alberto Lopez Perez.
Have the glib implementation of FileSystem::writeToFile() return early when the size to
write is 0, instead of calling g_output_stream_write_all(). It appears that passing a
NULL buffer to g_output_stream_write_all() crashes, even if size is 0.
- wtf/glib/FileSystemGlib.cpp:
(WTF::FileSystemImpl::writeToFile):
- 1:56 PM Changeset in webkit [275378] by
-
- 2 edits in trunk/Tools
Enable ews status bubble for stress tests ews
https://bugs.webkit.org/show_bug.cgi?id=224069
Reviewed by Jonathan Bedard.
- CISupport/ews-app/ews/views/statusbubble.py:
(StatusBubble):
- 1:52 PM Changeset in webkit [275377] by
-
- 3 edits2 adds in trunk
aspect-ratio not recomputed on hover
https://bugs.webkit.org/show_bug.cgi?id=224028
Patch by Rob Buis <rbuis@igalia.com> on 2021-04-01
Reviewed by Zalan Bujtas.
LayoutTests/imported/w3c:
Add test for this.
- web-platform-tests/css/css-sizing/aspect-ratio/replaced-element-dynamic-aspect-ratio-expected.xht: Added.
- web-platform-tests/css/css-sizing/aspect-ratio/replaced-element-dynamic-aspect-ratio.html: Added.
Source/WebCore:
Detect change in aspect-ratio on hover.
Test: imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio/replaced-element-dynamic-aspect-ratio.html
- rendering/style/RenderStyle.cpp:
(WebCore::rareNonInheritedDataChangeRequiresLayout):
- 1:43 PM Changeset in webkit [275376] by
-
- 3 edits in trunk/LayoutTests
[GTK][WPE] Gardening of layout tests.
Unreviewed gardening.
Report and mark new failures.
- platform/glib/TestExpectations:
- platform/gtk/TestExpectations:
- 1:05 PM Changeset in webkit [275375] by
-
- 22 edits in trunk/Source
Have the ServiceWorker process hold on to a file mapped version of the service worker scripts to save dirty memory
https://bugs.webkit.org/show_bug.cgi?id=224015
<rdar://75637679>
Reviewed by Geoffrey Garen.
Source/WebCore:
Since r275267, the Network process holds on the file mapped (mmap'd) versions of the service worker
scripts instead of heap allocated versions, in order to decrease its dirty memory use. However, the
ServiceWorker process (which is often a regular WebProcess) was still using heap allocated service
worker scripts. This patch is a follow-up to make sure the NetworkProcess sends its file mapped
scripts to the ServiceWorker processes as ShareableResource handles in order to decrease the dirty
memory usage of the ServiceWorker processes as well.
No new tests, no Web-facing behavior change, just a decrease in dirty memory use in the ServiceWorker
processes (which may be WebProcesses). I have done local testing with a very large service worker
that uses a ~100MB main script, which imports another ~100MB sub-script. With my change, dirty
memory usage goes from ~440MB to ~230MB in both the cold and warm cases ("Cold" meaning that the
service worker was just registed and downloaded from the network and "Warm" meaning that the
service worker had been previously registed and was loaded straight from the SWScriptStorage).
- platform/SharedBuffer.cpp:
(WebCore::SharedBuffer::hasOneSegment const):
Add a utility function to SharedBuffer to check if it contains a single data segment.
(WebCore::SharedBuffer::DataSegment::containsMappedFileData const):
Add a utility function to check if a SharedBuffer DataSegment contains a MappedFileData object.
- platform/SharedBuffer.h:
- workers/service/ServiceWorkerContextData.h:
(WebCore::ServiceWorkerContextData::ImportedScript::isolatedCopy const):
Move IPC encoders / decoders for ServiceWorkerContextData and ServiceWorkerContextData::ImportedScript
to the WebKit layer, in WebCoreArgumentCoders. This allows us to encode / decode the scripts as
WebKit::ShareableHandle whenever possible. This way, when the NetworkProcess sends a
ServiceWorkerContextData to the ServiceWorker process to launch a service worker, both the
ServiceWorker process and the Network process share the same mmap'd versions of the scripts and we
save on dirty memory use. This helps reduce dirty memory use in the ServiceWorker process in the
warm case, where the scripts are loaded straight from the disk (via SWScriptStorage).
- workers/service/ServiceWorkerGlobalScope.cpp:
(WebCore::ServiceWorkerGlobalScope::didSaveScriptsToDisk):
- workers/service/ServiceWorkerGlobalScope.h:
- workers/service/context/SWContextManager.cpp:
(WebCore::SWContextManager::didSaveScriptsToDisk):
- workers/service/context/SWContextManager.h:
- workers/service/context/ServiceWorkerThreadProxy.cpp:
(WebCore::ServiceWorkerThreadProxy::didSaveScriptsToDisk):
- workers/service/context/ServiceWorkerThreadProxy.h:
- workers/service/server/SWServerToContextConnection.h:
- workers/service/server/SWServerWorker.cpp:
(WebCore::SWServerWorker::didSaveScriptsToDisk):
In the cold case, once the NetworkProcess is done saving the scripts to disk, it now sends the
file mapped version of the scripts to the ServiceWorker process, so that it can also replace
its heap-allocated copies and save on dirty memory use.
Source/WebKit:
- NetworkProcess/ServiceWorker/WebSWServerToContextConnection.cpp:
(WebKit::WebSWServerToContextConnection::didSaveScriptsToDisk):
- NetworkProcess/ServiceWorker/WebSWServerToContextConnection.h:
- WebProcess/Storage/WebSWContextManagerConnection.cpp:
(WebKit::WebSWContextManagerConnection::didSaveScriptsToDisk):
- WebProcess/Storage/WebSWContextManagerConnection.h:
- WebProcess/Storage/WebSWContextManagerConnection.messages.in:
When the NetworkProcess is done saving the service worker scripts to disk and it gets
a file mapped version, it now sends them to the ServiceWorker process as ShareableResource
handles via IPC. This allows the ServiceWorker process to replace its heap-allocated
versions of the script and save on dirty memory use (in the cold case).
- Shared/ShareableResource.h:
Fix bug where 2 of ShareableResource data members were not properly initialized by the default
constructor.
- Shared/WebCoreArgumentCoders.cpp:
(IPC::encodeServiceWorkerContextDataScript):
(IPC::decodeServiceWorkerContextDataScript):
(IPC::ArgumentCoder<ServiceWorkerContextData::ImportedScript>::encode):
(IPC::ArgumentCoder<ServiceWorkerContextData::ImportedScript>::decode):
(IPC::ArgumentCoder<ServiceWorkerContextData>::encode):
(IPC::ArgumentCoder<ServiceWorkerContextData>::decode):
(IPC::tryConvertToShareableResourceHandle):
- Shared/WebCoreArgumentCoders.h:
Moved IPC encoders / decoders for ServiceWorkerContextData and ServiceWorkerContextData::ImportedScript
to the WebKit layer, in WebCoreArgumentCoders. This allows us to encode / decode the scripts as
WebKit::ShareableHandle whenever possible. This way, when the NetworkProcess sends a
ServiceWorkerContextData to the ServiceWorker process to launch a service worker, both the
ServiceWorker process and the Network process share the same mmap'd versions of the scripts and we
save on dirty memory use. This helps reduce dirty memory use in the ServiceWorker process in the
warm case, where the scripts are loaded straight from the disk (via SWScriptStorage).
- 1:02 PM Changeset in webkit [275374] by
-
- 3 edits in trunk/Source/JavaScriptCore
Remove use of ENABLE from API header
https://bugs.webkit.org/show_bug.cgi?id=224060
<rdar://76111678>
Reviewed by Mark Lam.
The use of the ENABLE macro in these API headers has caused build failures. Instead of
conditionally exposing these API methods we make them into no-ops if DFG is disabled.
- API/JSVirtualMachine.mm:
(+[JSVirtualMachine setNumberOfDFGCompilerThreads:]):
(+[JSVirtualMachine setNumberOfFTLCompilerThreads:]):
- API/JSVirtualMachinePrivate.h:
- 1:01 PM Changeset in webkit [275373] by
-
- 6 edits in trunk/Source/WebCore
[WebGL] Use GraphicsContextGLOpenGLManager for ports using TextureMapper
https://bugs.webkit.org/show_bug.cgi?id=224035
Reviewed by Don Olmstead.
Use GraphicsContextGLOpenGLManager for GTK, WPE and WinCairo ports
to reduce duplicated code.
GraphicsContextGLOpenGLBase.cpp isn't used by Cocoa ports.
No behavior change.
- PlatformMac.cmake:
- Sources.txt:
- SourcesCocoa.txt:
- platform/graphics/opengl/GraphicsContextGLOpenGLManager.h:
- platform/graphics/texmap/GraphicsContextGLTextureMapper.cpp:
(WebCore::GraphicsContextGLOpenGL::create):
(WebCore::GraphicsContextGLOpenGL::~GraphicsContextGLOpenGL):
(WebCore::activeContexts): Deleted.
- 11:53 AM Changeset in webkit [275372] by
-
- 5 edits in branches/safari-612.1.9-branch/Source
Cherry-pick r275370. rdar://problem/76113438
Allow ASCWebKitSPISupport to be used on macOS
https://bugs.webkit.org/show_bug.cgi?id=224036
<rdar://76028645>
Reviewed by Brent Fulgham.
Source/WebKit:
- UIProcess/WebAuthentication/Cocoa/AuthenticationServicesCoreSoftLink.h:
- UIProcess/WebAuthentication/Cocoa/AuthenticationServicesCoreSoftLink.mm:
Source/WTF:
- wtf/PlatformHave.h:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@275370 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 11:50 AM Changeset in webkit [275371] by
-
- 6 edits1 add in trunk
[Cocoa] REGRESSION(r272999): User-installed fonts no longer work in Mail
https://bugs.webkit.org/show_bug.cgi?id=223985
<rdar://problem/75975210>
Reviewed by Per Arne Vollan.
Source/WebKit:
The sandbox extension which allows user-installed fonts to work was part of the WebPage,
but XType may already have been initialized to use the static registry by the time the WebPage
has been created. Therefore, simply _having_ a sandbox extension isn't sufficient; instead,
WebPage's constructor needs to call CTFontManagerEnableAllUserFonts() to switch to using fontd
in addition to using the sandbox extension.
Test: WebKit.UserInstalledFontsWork
- WebProcess/WebPage/WebPage.cpp:
(WebKit::m_lastNavigationWasAppBound):
(WebKit::WebPage::~WebPage):
- WebProcess/WebPage/WebPage.h:
Tools:
- TestWebKitAPI/Tests/WebKit/FontRegistrySandboxCheck.mm:
(TEST):
- 11:09 AM Changeset in webkit [275370] by
-
- 5 edits in trunk/Source
Allow ASCWebKitSPISupport to be used on macOS
https://bugs.webkit.org/show_bug.cgi?id=224036
<rdar://76028645>
Reviewed by Brent Fulgham.
Source/WebKit:
- UIProcess/WebAuthentication/Cocoa/AuthenticationServicesCoreSoftLink.h:
- UIProcess/WebAuthentication/Cocoa/AuthenticationServicesCoreSoftLink.mm:
Source/WTF:
- wtf/PlatformHave.h:
- 10:44 AM Changeset in webkit [275369] by
-
- 1 copy in tags/Safari-612.1.7.14
Tag Safari-612.1.7.14.
- 10:40 AM Changeset in webkit [275368] by
-
- 8 edits in branches/safari-612.1.7-branch/Source
Versioning.
WebKit-7612.1.7.14
- 10:38 AM Changeset in webkit [275367] by
-
- 4 edits in trunk/Source/WebKit
[GPU process] Enable CFPrefs direct mode
https://bugs.webkit.org/show_bug.cgi?id=223817
<rdar://74748933>
Reviewed by Brent Fulgham.
Enable CFPrefs direct mode in the GPU process.
- GPUProcess/mac/com.apple.WebKit.GPUProcess.sb.in:
- Resources/SandboxProfiles/ios/com.apple.WebKit.GPU.sb:
- Shared/EntryPointUtilities/Cocoa/XPCService/XPCServiceMain.mm:
(WebKit::shouldEnableCFPrefsDirectMode):
(WebKit::XPCServiceMain):
- 10:25 AM Changeset in webkit [275366] by
-
- 6 edits in trunk/LayoutTests
Flaky LayoutTests in http/tests/appcache
https://bugs.webkit.org/show_bug.cgi?id=224054
<rdar://problem/76108352>
Reviewed by Jonathan Bedard.
- http/tests/appcache/fail-on-update-2.html:
- http/tests/appcache/fail-on-update.html:
- http/tests/appcache/resources/abort-cache-onchecking.manifest.py:
- http/tests/appcache/resources/abort-cache-ondownloading.text.py:
- http/tests/appcache/resources/not-exist.vob.py:
- 10:17 AM Changeset in webkit [275365] by
-
- 7 edits in trunk/Source/WebKit
Use sendWithAsyncReply for NetworkProcess messages with async replies
https://bugs.webkit.org/show_bug.cgi?id=224025
Patch by Alex Christensen <achristensen@webkit.org> on 2021-04-01
Reviewed by Youenn Fablet.
This will prevent us from having to manually store and handle the callback IDs and other things.
- NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::fetchWebsiteData):
(WebKit::NetworkProcess::deleteWebsiteData):
(WebKit::NetworkProcess::deleteWebsiteDataForOrigins):
- NetworkProcess/NetworkProcess.h:
- NetworkProcess/NetworkProcess.messages.in:
- UIProcess/Network/NetworkProcessProxy.cpp:
(WebKit::NetworkProcessProxy::~NetworkProcessProxy):
(WebKit::NetworkProcessProxy::fetchWebsiteData):
(WebKit::NetworkProcessProxy::deleteWebsiteData):
(WebKit::NetworkProcessProxy::deleteWebsiteDataForOrigins):
(WebKit::NetworkProcessProxy::networkProcessCrashed):
(WebKit::NetworkProcessProxy::clearCallbackStates): Deleted.
(WebKit::NetworkProcessProxy::didFetchWebsiteData): Deleted.
(WebKit::NetworkProcessProxy::didDeleteWebsiteData): Deleted.
(WebKit::NetworkProcessProxy::didDeleteWebsiteDataForOrigins): Deleted.
- UIProcess/Network/NetworkProcessProxy.h:
- UIProcess/Network/NetworkProcessProxy.messages.in:
- 9:10 AM Changeset in webkit [275364] by
-
- 8 edits in trunk/Source/WebCore
Make FontCache constructable and safe to use off the main thread
https://bugs.webkit.org/show_bug.cgi?id=223997
Reviewed by Darin Adler.
So that we can have a separate FontCache for use with OffscreenCanvas
on Worker threads, make FontCache constructable/destructable and
ref-counted.
This also changes some functions so that they no longer rely on static
AtomString variables, as these paths would not be safe to use off the
main thread, and changes main-thread checks to creation-thread checks.
No new tests, no change in behavior.
- platform/graphics/FontCache.cpp:
(WebCore::FontCache::alternateFamilyName):
(WebCore::FontCache::getCachedFontPlatformData):
(WebCore::FontCache::fontForFamily):
(WebCore::FontCache::similarFont):
- platform/graphics/FontCache.h:
(WebCore::FontCache::fontForFamily):
(WebCore::FontCache::getCachedFontPlatformData):
- platform/graphics/FontCascadeFonts.cpp:
(WebCore::FontCascadeFonts::FontCascadeFonts):
(WebCore::FontCascadeFonts::glyphDataForCharacter):
- platform/graphics/FontCascadeFonts.h:
(WebCore::FontCascadeFonts::primaryFont):
- platform/graphics/cocoa/FontCacheCoreText.cpp:
(WebCore::FontCache::similarFont):
(WebCore::FontCache::platformAlternateFamilyName):
- platform/graphics/freetype/FontCacheFreeType.cpp:
(WebCore::FontCache::lastResortFallbackFont):
(WebCore::getFamilyNameStringFromFamily):
(WebCore::FontCache::platformAlternateFamilyName):
- platform/graphics/win/FontCacheWin.cpp:
(WebCore::FontCache::fontFromDescriptionAndLogFont):
(WebCore::FontCache::lastResortFallbackFont):
(WebCore::FontCache::platformAlternateFamilyName):
- 9:07 AM Changeset in webkit [275363] by
-
- 10 edits2 adds in trunk
Optimize createListFromArrayLike() and Proxy's OwnPropertyKeys? method
https://bugs.webkit.org/show_bug.cgi?id=223928
Reviewed by Yusuke Suzuki.
JSTests:
- microbenchmarks/json-stringify-array-replacer.js:
Reduce running time from over 350ms to ~60ms.
- microbenchmarks/reflect-own-keys-proxy-2.js: Added.
- microbenchmarks/reflect-own-keys-proxy.js: Added.
Source/JavaScriptCore:
createListFromArrayLike() changes:
- Use toLength() / getIndex() methods that have fast paths.
- Remove RuntimeTypeMask and error messages from its signature: type checks are better performed in advance / inside a functor to keep the helper more versatile.
- Invert functor's return value to align with Structure::forEachProperty() and friends.
- Rename it to forEachInArrayLike() as no list is actually returned.
ProxyObject::performGetOwnPropertyNames() changes:
- Remove RuntimeTypeMask filtering as it's already performed by PropertyNameArray::add().
- Store target's keys in a HashSet for faster insertion / search.
- Don't populate
targetConfigurableKeys
for extensible target as it won't be used [1]. - Leverage return value of HashSet::remove() instead of using a helper.
This patch advances Proxy's OwnPropertyKeys? microbenchmarks by 20-30%,
mainly due to createListFromArrayLike() changes. No behavior changes.
Also, utilizes forEachInArrayLike() for allow list of JSON.stringify().
[1]: https://tc39.es/ecma262/#sec-proxy-object-internal-methods-and-internal-slots-ownpropertykeys (step 20)
- runtime/JSONObject.cpp:
(JSC::Stringifier::Stringifier):
- runtime/JSObject.h:
(JSC::JSObject::getIndex const):
- runtime/JSObjectInlines.h:
(JSC::forEachInArrayLike):
(JSC::createListFromArrayLike): Deleted.
- runtime/ProxyObject.cpp:
(JSC::ProxyObject::performGetOwnPropertyNames):
- runtime/ReflectObject.cpp:
(JSC::JSC_DEFINE_HOST_FUNCTION):
- 8:48 AM Changeset in webkit [275362] by
-
- 3 edits in trunk/Source/WebKit
Unreviewed, reverting r275350.
https://bugs.webkit.org/show_bug.cgi?id=224048
Introduced perf regression
Reverted changeset:
"Add IOKit method filter telemetry"
https://bugs.webkit.org/show_bug.cgi?id=223652
https://trac.webkit.org/changeset/275350
- 8:35 AM Changeset in webkit [275361] by
-
- 3 edits2 adds in trunk
Fix some missing exception checks in HTMLMediaElement methods.
https://bugs.webkit.org/show_bug.cgi?id=224038
rdar://69573092
Reviewed by Eric Carlson.
Source/WebCore:
Test: media/missing-exception-checks-in-HTMLMediaElement-methods.html
- html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::setupAndCallJS):
(WebCore::HTMLMediaElement::updateCaptionContainer):
(WebCore::HTMLMediaElement::ensureMediaControlsInjectedScript):
(WebCore::HTMLMediaElement::setControllerJSProperty):
(WebCore::HTMLMediaElement::didAddUserAgentShadowRoot):
(WebCore::HTMLMediaElement::updateMediaControlsAfterPresentationModeChange):
(WebCore::HTMLMediaElement::getCurrentMediaControlsStatus):
LayoutTests:
- media/missing-exception-checks-in-HTMLMediaElement-methods-expected.txt: Added.
- media/missing-exception-checks-in-HTMLMediaElement-methods.html: Added.
- 8:19 AM Changeset in webkit [275360] by
-
- 6 edits in trunk/Source/WebCore
Previous artwork isn't cleared when NowPlaying info doesn't contain an artwork
https://bugs.webkit.org/show_bug.cgi?id=224031
<rdar://76044544>
Patch by Jean-Yves Avenard <Jean-Yves Avenard> on 2021-04-01
Reviewed by Youenn Fablet.
Source/WebCore:
Manually tested, no framework available to test such change.
- platform/audio/cocoa/MediaSessionManagerCocoa.mm:
(WebCore::MediaSessionManagerCocoa::setNowPlayingInfo): use MRMediaRemoteSetNowPlayingInfoWithMergePolicy instead.
- platform/mac/MediaRemoteSoftLink.h: Soft link MRMediaRemoteSetNowPlayingInfoWithMergePolicy
- platform/mac/MediaRemoteSoftLink.mm:
Source/WebCore/PAL:
- pal/spi/mac/MediaRemoteSPI.h: Add MRMediaRemoteMergePolicy enum definitions.
- 8:17 AM Changeset in webkit [275359] by
-
- 14 edits1 add in trunk/Source/WebCore
Now Playing artwork doesn't update when changed.
https://bugs.webkit.org/show_bug.cgi?id=223731
<rdar://problem/75823923>
Source/WebCore:
Now Playing and Media Remote requires a unique identifier for the currently playing item.
If the same identifier is provided for every call to MRMediaRemoteSetNowPlayingInfo,
then some updates may be skipped.
In earlier changes, the MediaSessionElement identifier was combined with the Media Element
identifier which broke Now Playing as the MediaSession identifier never changes for the
lifetime of the web content process.
So we create a new method HTMLMediaElement::mediaUniqueIdentifier with a new MediaUniqueIdentifier
that willthat will be updated whenever the source of a media element changes and stop
using the MediaSession identifier when dealing with Now Playing.
Patch by Jean-Yves Avenard <Jean-Yves Avenard> on 2021-04-01
Reviewed by Eric Carlson.
Manually tested, no framework available to test such change.
- WebCore.xcodeproj/project.pbxproj: Add MediaUniqueIdentifier.h
- html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::prepareForLoad): Use setCurrentSrc instead of directly modifying m_currentSrc.
(WebCore::HTMLMediaElement::selectMediaResource): Use setCurrentSrc instead of directly modifying m_currentSrc.
(WebCore::HTMLMediaElement::loadResource): Use setCurrentSrc instead of directly modifying m_currentSrc.
(WebCore::HTMLMediaElement::setCurrentSrc): Add convenience method, generate new MediaUniqueIdentifier each time m_currentSrc is modified.
(WebCore::HTMLMediaElement::mediaUniqueIdentifier const): Return unique media identifier.
(WebCore::HTMLMediaElement::mediaSessionUniqueIdentifier const): Deleted.
- html/HTMLMediaElement.h:
- html/MediaElementSession.cpp:
(WebCore::MediaElementSession::nowPlayingInfo const):
- platform/audio/NowPlayingInfo.h: Use MediaUniqueIdentifier for uniqueIdentifier member.
(WebCore::NowPlayingInfo::decode):
- platform/audio/PlatformMediaSessionManager.h: Use MediaUniqueIdentifier instead.
(WebCore::PlatformMediaSessionManager::lastUpdatedNowPlayingInfoUniqueIdentifier const):
set kMRMediaRemoteNowPlayingInfoArtworkIdentifier in CFDictionary to the source of the artwork.
Workaround a bug in Media Controller component.
- platform/audio/cocoa/MediaSessionManagerCocoa.h:
- platform/audio/cocoa/MediaSessionManagerCocoa.mm:
(WebCore::MediaSessionManagerCocoa::setNowPlayingInfo):
- platform/mac/MediaRemoteSoftLink.h: Soft-link kMRMediaRemoteNowPlayingInfoArtworkIdentifier symbol.
- platform/mac/MediaRemoteSoftLink.mm:
- testing/Internals.h: Add missing header.
Source/WebCore/PAL:
Patch by Jean-Yves Avenard <Jean-Yves Avenard> on 2021-04-01
Reviewed by Eric Carlson.
- pal/spi/mac/MediaRemoteSPI.h:
- 8:05 AM Changeset in webkit [275358] by
-
- 29 edits2 deletes in trunk
Limit the number of buttons shown in media controls
https://bugs.webkit.org/show_bug.cgi?id=223909
Reviewed by Eric Carlson.
Source/WebCore:
When in fullscreen, it's possible to have five different buttons to the right of "Play":
- AirPlay
- Enter Picture in Picture
- Audio/Languages
- Exit Full Screen
- More...
This turns the UI into something of an "icon soup" and should really be avoided, especially
now thatOverflowButton
allows for a single button to have multiple actions (via a native
contextmenu). This matches AVKit behavior.
Tests: media/modern-media-controls/ios-inline-media-controls/ios-inline-media-dropping-controls.html:
media/modern-media-controls/macos-fullscreen-media-controls/macos-fullscreen-media-controls-buttons-containers-styles.html:
media/modern-media-controls/macos-fullscreen-media-controls/macos-fullscreen-media-controls-buttons-styles.html:
media/modern-media-controls/macos-fullscreen-media-controls/macos-fullscreen-media-controls-constructor.html:
media/modern-media-controls/macos-inline-media-controls/macos-inline-media-dropping-controls.html:
- Modules/modern-media-controls/controls/inline-media-controls.js:
(InlineMediaControls.prototype.layout):
(InlineMediaControls.prototype._droppableButtons):
(InlineMediaControls.prototype._collapsableButtons): Added.
- Modules/modern-media-controls/controls/macos-fullscreen-media-controls.js:
(MacOSFullscreenMediaControls):
(MacOSFullscreenMediaControls.prototype.layout):
(MacOSFullscreenMediaControls.prototype._collapsableButtons): Added.
Limit the number ofvisible
buttons inrightContainer.children
by iteratively marking
dropped = true
on buttons that are also in_collapsableButtons
until either there are
no iterations left (i < 0
) or the number of visible buttons is below the maximum (2 for
inline and 3 for fullscreen).
- Modules/modern-media-controls/controls/pip-button.js:
(PiPButton.prototype.get contextMenuOptions): Added.
- Modules/mediacontrols/MediaControlsHost.cpp:
(WebCore::MediaControlsHost::showMediaControlsContextMenu):
Add support forincludePictureInPicture
to the native contextmenu.
- en.lproj/Localizable.strings:
- testing/Internals.idl:
- testing/Internals.h:
- testing/Internals.cpp:
(WebCore::Internals::setMediaControlsMaximumRightContainerButtonCountOverride): Added.
- html/HTMLMediaElement.h:
- html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::setMediaControlsMaximumRightContainerButtonCountOverride): Added.
- Modules/modern-media-controls/media/media-controller.js:
(MediaController.prototype.set maximumRightContainerButtonCountOverride): Added.
Add a way to override the default maximum right container button count for testing. This is
useful for testing the functionality of a specific button when not in the collapsed state,
allowing for tests to not have to worry about other state that may affect collapsing (e.g.
the AirPlay button is shown when there are AirPlay targets).
LayoutTests:
- media/modern-media-controls/ios-inline-media-controls/ios-inline-media-dropping-controls.html:
- media/modern-media-controls/ios-inline-media-controls/ios-inline-media-dropping-controls-expected.txt:
- media/modern-media-controls/macos-fullscreen-media-controls/macos-fullscreen-media-controls-buttons-containers-styles.html:
- media/modern-media-controls/macos-fullscreen-media-controls/macos-fullscreen-media-controls-buttons-containers-styles-expected.txt:
- media/modern-media-controls/macos-fullscreen-media-controls/macos-fullscreen-media-controls-buttons-styles.html:
- media/modern-media-controls/macos-fullscreen-media-controls/macos-fullscreen-media-controls-buttons-styles-expected.txt:
- media/modern-media-controls/macos-inline-media-controls/macos-inline-media-dropping-controls.html:
- media/modern-media-controls/macos-inline-media-controls/macos-inline-media-dropping-controls-expected.txt:
- media/modern-media-controls/macos-fullscreen-media-controls/macos-fullscreen-media-controls-constructor.html:
- media/modern-media-controls/macos-fullscreen-media-controls/macos-fullscreen-media-controls-constructor-expected.txt:
- media/modern-media-controls/macos-fullscreen-media-controls/macos-fullscreen-media-controls-right-container-margin.html: Removed.
- media/modern-media-controls/macos-fullscreen-media-controls/macos-fullscreen-media-controls-right-container-margin-expected.txt: Removed.
macOS fullscreen controls don't adjust the
buttonMargin
anymore as buttons are moved into
the overflow menu instead.
- media/modern-media-controls/tracks-support/auto-text-track.html:
- media/modern-media-controls/tracks-support/click-track-in-contextmenu.html:
- media/modern-media-controls/tracks-support/hidden-tracks.html:
- media/modern-media-controls/tracks-support/off-text-track.html:
- media/modern-media-controls/tracks-support/show-contextmenu-then-double-click-on-tracks-button.html:
- media/modern-media-controls/tracks-support/text-track-selected-via-media-api.html:
Override the default maximum right container button count so that the tracks button is shown.
- 7:47 AM Changeset in webkit [275357] by
-
- 2 edits in trunk/Source/WebCore
Cleanup shouldComputeLogicalWidthFromAspectRatio and shouldComputeLogicalWidthFromAspectRatioAndInsets
https://bugs.webkit.org/show_bug.cgi?id=224044
Reviewed by Antti Koivisto.
Let's use "return foo()" (or "return !foo()") instead of
if (!foo())
return true;
return false;
- rendering/RenderBox.cpp:
(WebCore::RenderBox::shouldComputeLogicalWidthFromAspectRatio const):
(WebCore::RenderBox::shouldComputeLogicalWidthFromAspectRatioAndInsets const):
- 7:02 AM Changeset in webkit [275356] by
-
- 9 edits2 adds2 deletes in trunk/LayoutTests
Unreviewed, reverting r275295.
https://bugs.webkit.org/show_bug.cgi?id=224046
Broken 3 layout tests on wk1
Reverted changeset:
"[LayoutTests] Convert http/tests/download convert PHP to
Python"
https://bugs.webkit.org/show_bug.cgi?id=222618
https://trac.webkit.org/changeset/275295
Patch by Commit Queue <commit-queue@webkit.org> on 2021-04-01
- 6:37 AM Changeset in webkit [275355] by
-
- 19 edits2 adds in trunk
[iOS] '-webkit-appearance: none' is not respected for searchfield decorations
https://bugs.webkit.org/show_bug.cgi?id=224018
Reviewed by Antti Koivisto.
Source/WebCore:
Specifying '-webkit-appearance: none' on a searchfield decoration
pseudo-element fails to hide the native icon. This issue arises from
the fact that we add the icon in the UA stylesheet, rather than painting
it in the theme.
To fix, remove the styles from the UA stylesheet, and paint the icon in
RenderThemeIOS. If a different '-webkit-appearance' is specified the
theme will not adjust styles or paint the icon.
Test: fast/forms/ios/form-control-refresh/search/search-decoration-appearance.html
- css/html.css:
Remove the UA styles for searchfield decorations so that they are not
applied when specifying a different -webkit-appearance.
- rendering/RenderThemeIOS.h:
- rendering/RenderThemeIOS.mm:
(WebCore::RenderThemeIOS::adjustSearchFieldDecorationPartStyle const):
Adjust the style to match the native appearance.
(WebCore::RenderThemeIOS::paintSearchFieldDecorationPart):
Paint the native icon.
(WebCore::RenderThemeIOS::adjustSearchFieldResultsDecorationPartStyle const):
(WebCore::RenderThemeIOS::paintSearchFieldResultsDecorationPart):
(WebCore::RenderThemeIOS::adjustSearchFieldResultsButtonStyle const):
(WebCore::RenderThemeIOS::paintSearchFieldResultsButton):
LayoutTests:
Rebaselined tests to account for the change to the way we paint
searchfield decorations on iOS. Added a new test to verify that
'-webkit-appearance: none' is respected.
- fast/forms/ios/form-control-refresh/search/search-decoration-appearance-expected-mismatch.html: Added.
- fast/forms/ios/form-control-refresh/search/search-decoration-appearance.html: Added.
- platform/ios-simulator/fast/forms/datalist/datalist-searchinput-appearance-expected.txt:
- platform/ios/fast/css/focus-ring-exists-for-search-field-expected.txt:
- platform/ios/fast/css/input-search-padding-expected.txt:
- platform/ios/fast/css/text-input-with-webkit-border-radius-expected.txt:
- platform/ios/fast/css/text-overflow-input-expected.txt:
- platform/ios/fast/forms/box-shadow-override-expected.txt:
- platform/ios/fast/forms/control-restrict-line-height-expected.txt:
- platform/ios/fast/forms/input-appearance-height-expected.txt:
- platform/ios/fast/forms/placeholder-pseudo-style-expected.txt:
- platform/ios/fast/forms/search-cancel-button-style-sharing-expected.txt:
- platform/ios/fast/forms/search-display-none-cancel-button-expected.txt:
- platform/ios/fast/forms/search-input-rtl-expected.txt:
- platform/ios/fast/forms/search-styled-expected.txt:
- platform/ios/fast/replaced/width100percent-searchfield-expected.txt:
- 4:45 AM Changeset in webkit [275354] by
-
- 16 edits in trunk/Source
Expose an alias for ScrollSnapOffsetInfo<T> to make it easier to use
https://bugs.webkit.org/show_bug.cgi?id=223986
Patch by Martin Robinson <mrobinson@igalia.com> on 2021-04-01
Reviewed by Sergio Villar Senin.
Source/WebCore:
No new tests. This should not change behavior.
- page/scrolling/AsyncScrollingCoordinator.cpp:
(WebCore::setStateScrollingNodeSnapOffsetsAsFloat): Use new aliases.
- page/scrolling/ScrollSnapOffsetsInfo.cpp:
(WebCore::FloatScrollSnapOffsetsInfo::convertUnits const): Ditto.
(WebCore::LayoutScrollSnapOffsetsInfo::convertUnits const): Ditto.
(WebCore::LayoutScrollSnapOffsetsInfo::closestSnapOffset const): Ditto.
(WebCore::FloatScrollSnapOffsetsInfo::closestSnapOffset const): Ditto.
(WebCore::ScrollSnapOffsetsInfo<float>::convertUnits const): Deleted.
(WebCore::ScrollSnapOffsetsInfo<LayoutUnit>::convertUnits const): Deleted.
(WebCore::ScrollSnapOffsetsInfo<LayoutUnit>::closestSnapOffset const): Deleted.
(WebCore::ScrollSnapOffsetsInfo<float>::closestSnapOffset const): Deleted.
- page/scrolling/ScrollSnapOffsetsInfo.h: Ditto.
- page/scrolling/ScrollingStateScrollingNode.cpp:
(WebCore::ScrollingStateScrollingNode::setSnapOffsetsInfo): Ditto.
- page/scrolling/ScrollingStateScrollingNode.h:
(WebCore::ScrollingStateScrollingNode::snapOffsetsInfo const): Ditto.
- page/scrolling/ScrollingTreeScrollingNode.cpp:
(WebCore::ScrollingTreeScrollingNode::snapOffsetsInfo const): Ditto.
- page/scrolling/ScrollingTreeScrollingNode.h: Ditto.
- platform/ScrollController.cpp:
(WebCore::ScrollController::updateScrollSnapPoints): Ditto.
- platform/ScrollController.h: Ditto.
- platform/ScrollSnapAnimatorState.h:
(WebCore::ScrollSnapAnimatorState::snapOffsetInfo const): Ditto.
(WebCore::ScrollSnapAnimatorState::setSnapOffsetInfo): Ditto.
- platform/ScrollableArea.cpp:
(WebCore::ScrollableArea::ensureSnapOffsetsInfo): Ditto.
(WebCore::ScrollableArea::snapOffsetInfo const): Ditto.
(WebCore::ScrollableArea::setScrollSnapOffsetInfo): Ditto.
- platform/ScrollableArea.h: Ditto.
- platform/mac/ScrollAnimatorMac.mm:
(WebCore::gestureShouldBeginSnap): Ditto.
Source/WebKit:
- Shared/RemoteLayerTree/RemoteScrollingCoordinatorTransaction.cpp:
(ArgumentCoder<ScrollingStateScrollingNode>::decode): Use new aliases.
(ArgumentCoder<FloatScrollSnapOffsetsInfo>::encode): Ditto.
(ArgumentCoder<FloatScrollSnapOffsetsInfo>::decode): Ditto.
(ArgumentCoder<ScrollSnapOffsetsInfo<float>>::encode): Deleted.
(ArgumentCoder<ScrollSnapOffsetsInfo<float>>::decode): Deleted.
- 4:36 AM Changeset in webkit [275353] by
-
- 8 edits in trunk/Tools
[webkitscmpy] Improve git-svn-id regex
https://bugs.webkit.org/show_bug.cgi?id=224008
<rdar://problem/76062561>
Rubber-stamped by Aakash Jain.
- Scripts/libraries/webkitcorepy/setup.py: Bump version.
- Scripts/libraries/webkitcorepy/webkitcorepy/init.py: Ditto.
- Scripts/libraries/webkitscmpy/webkitscmpy/local/git.py:
(Git.commit): Strip leading spaces before parsing the commit message.
- Scripts/libraries/webkitscmpy/webkitscmpy/mocks/local/git.py: Ensure that git-svn-id lines
are printed to stdout with leading spaces.
- Scripts/libraries/webkitscmpy/webkitscmpy/scm_base.py:
(ScmBase): Only match git-svn-id lines if they are at the beginning of a line.
- Scripts/libraries/webkitscmpy/webkitscmpy/test/canonicalize_unittest.py:
- Scripts/libraries/webkitscmpy/webkitscmpy/test/find_unittest.py:
- 4:06 AM Changeset in webkit [275352] by
-
- 4 edits in trunk/Tools
[webkitscmpy] Support case where contributor did not define email
https://bugs.webkit.org/show_bug.cgi?id=224005
<rdar://problem/76058258>
Rubber-stamped by Aakash Jain.
- Scripts/libraries/webkitcorepy/setup.py: Bump version.
- Scripts/libraries/webkitcorepy/webkitcorepy/init.py: Ditto.
- Scripts/libraries/webkitscmpy/webkitscmpy/contributor.py:
(Contributor):
(Contributor.Mapping.create): An email of 'None' should not be indexed.
(Contributor.from_scm_log): Handle case where contributor is defined, but email isn't.
- 3:26 AM Changeset in webkit [275351] by
-
- 10 edits6 adds in trunk
Use Element for checking Settings in CSSComputedStyleDeclaration
https://bugs.webkit.org/show_bug.cgi?id=223598
Patch by Rob Buis <rbuis@igalia.com> on 2021-04-01
Reviewed by Darin Adler.
Source/WebCore:
Use Element for checking Settings in CSSComputedStyleDeclaration.
Right now renderer is used but this will not work for non-rendered elements.
Tests: fast/css/rotate-invalidate-if-disabled.html
fast/css/scale-invalidate-if-disabled.html
fast/css/translate-invalidate-if-disabled.html
- css/CSSComputedStyleDeclaration.cpp:
(WebCore::ComputedStyleExtractor::valueForPropertyInStyle):
LayoutTests:
Adapt tests to verify that non-rendered elements do not expose
contain/aspect-ratio when these features are disabled.
Add tests for rotate, scale and translate as well.
- fast/css/aspect-ratio-invalidate-if-disabled-expected.txt:
- fast/css/aspect-ratio-invalidate-if-disabled.html:
- fast/css/contain-invalidate-if-disabled-expected.txt:
- fast/css/contain-invalidate-if-disabled.html:
- fast/css/overscroll-behavior-invalidate-if-disabled-expected.txt:
- fast/css/overscroll-behavior-invalidate-if-disabled.html:
- fast/css/rotate-invalidate-if-disabled-expected.txt: Added.
- fast/css/rotate-invalidate-if-disabled.html: Added.
- fast/css/scale-invalidate-if-disabled-expected.txt: Added.
- fast/css/scale-invalidate-if-disabled.html: Added.
- fast/css/translate-invalidate-if-disabled-expected.txt: Added.
- fast/css/translate-invalidate-if-disabled.html: Added.
- platform/win/TestExpectations:
- 3:07 AM Changeset in webkit [275350] by
-
- 3 edits in trunk/Source/WebKit
Add IOKit method filter telemetry
https://bugs.webkit.org/show_bug.cgi?id=223652
<rdar://problem/75751391>
Reviewed by Brent Fulgham.
Add IOKit method filter telemetry in the WebContent sandbox on macOS and iOS.
- Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
- WebProcess/com.apple.WebProcess.sb.in:
- 2:04 AM Changeset in webkit [275349] by
-
- 4 edits in trunk/Source/WebKit
[GPU Process] Process the pending messages of GPUProcessProxy before its destructor is called
https://bugs.webkit.org/show_bug.cgi?id=224017
Reviewed by Simon Fraser.
Ensure all the pending messages of the singleton GPUProcessProxy are
processed every time a WebProcessPool is about to be deleted. When calling
the completion handlers of these messages, the GPUProcessProxy and the
WebProcessPool have to be valid
- UIProcess/AuxiliaryProcessProxy.cpp:
(WebKit::AuxiliaryProcessProxy::~AuxiliaryProcessProxy):
(WebKit::AuxiliaryProcessProxy::replyToPendingMessages):
- UIProcess/AuxiliaryProcessProxy.h:
- UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::~WebProcessPool):
- 1:05 AM Changeset in webkit [275348] by
-
- 8 edits in trunk/Source/WebCore
Add some logging to RTCRtpSender and RTCRtpReceiver
https://bugs.webkit.org/show_bug.cgi?id=223991
Reviewed by Eric Carlson.
Add some logging around transforms.
No change of behavior.
- Modules/mediastream/PeerConnectionBackend.cpp:
(WebCore::PeerConnectionBackend::setRemoteDescriptionSucceeded):
- Modules/mediastream/RTCRtpReceiver.cpp:
(WebCore::RTCRtpReceiver::RTCRtpReceiver):
(WebCore::RTCRtpReceiver::setTransform):
(WebCore::RTCRtpReceiver::logChannel const):
- Modules/mediastream/RTCRtpReceiver.h:
- Modules/mediastream/RTCRtpReceiver.idl:
- Modules/mediastream/RTCRtpSender.cpp:
(WebCore::RTCRtpSender::RTCRtpSender):
(WebCore::RTCRtpSender::setTransform):
(WebCore::RTCRtpSender::logChannel const):
- Modules/mediastream/RTCRtpSender.h:
- Modules/mediastream/RTCRtpSender.idl: