Timeline
Oct 11, 2021:
- 11:32 PM Changeset in webkit [283970] by
-
- 20 edits in trunk/Source
Remove ImplicitAddress
https://bugs.webkit.org/show_bug.cgi?id=230820
<rdar://problem/83826318>
Reviewed by Yusuke Suzuki.
Source/JavaScriptCore:
Because we rely on implicit conversion from RegisterID to int values,
some compilers (aka MSVC) might convert a constant RegisterID that's passed in
to nullptr instead of calling the implicit constructor in ImplicitAddress.
For example, I got bit by this when I had code that did:
loadPtr(regT0, xyz)
This called the loadPtr(void*, RegisterID) function with nullptr passed as
the first argument instead of the loadPtr(ImplicitAddress, RegisterID)
function.
Let's avoid any such problems in the future by just not using ImplicitAddress.
- assembler/AbstractMacroAssembler.h:
(JSC::AbstractMacroAssembler::ImplicitAddress::ImplicitAddress): Deleted.
- assembler/MacroAssembler.h:
(JSC::MacroAssembler::pushToSave):
(JSC::MacroAssembler::popToRestore):
(JSC::MacroAssembler::loadPtr):
(JSC::MacroAssembler::storePtr):
- assembler/MacroAssemblerARM64.h:
(JSC::MacroAssemblerARM64::load64):
(JSC::MacroAssemblerARM64::load32):
(JSC::MacroAssemblerARM64::load16):
(JSC::MacroAssemblerARM64::load16Unaligned):
(JSC::MacroAssemblerARM64::load16SignedExtendTo32):
(JSC::MacroAssemblerARM64::load8):
(JSC::MacroAssemblerARM64::load8SignedExtendTo32):
(JSC::MacroAssemblerARM64::store64):
(JSC::MacroAssemblerARM64::store32):
(JSC::MacroAssemblerARM64::store16):
(JSC::MacroAssemblerARM64::store8):
(JSC::MacroAssemblerARM64::loadDouble):
(JSC::MacroAssemblerARM64::loadFloat):
(JSC::MacroAssemblerARM64::storeDouble):
(JSC::MacroAssemblerARM64::storeFloat):
(JSC::MacroAssemblerARM64::pushToSaveImmediateWithoutTouchingRegisters):
(JSC::MacroAssemblerARM64::popToRestore):
(JSC::MacroAssemblerARM64::pushToSave):
(JSC::MacroAssemblerARM64::storePtrWithPatch):
(JSC::MacroAssemblerARM64::loadAcq8SignedExtendTo32):
(JSC::MacroAssemblerARM64::loadAcq8):
(JSC::MacroAssemblerARM64::storeRel8):
(JSC::MacroAssemblerARM64::loadAcq16SignedExtendTo32):
(JSC::MacroAssemblerARM64::loadAcq16):
(JSC::MacroAssemblerARM64::storeRel16):
(JSC::MacroAssemblerARM64::loadAcq32):
(JSC::MacroAssemblerARM64::loadAcq64):
(JSC::MacroAssemblerARM64::storeRel32):
(JSC::MacroAssemblerARM64::storeRel64):
(JSC::MacroAssemblerARM64::loadLink8):
(JSC::MacroAssemblerARM64::loadLinkAcq8):
(JSC::MacroAssemblerARM64::storeCond8):
(JSC::MacroAssemblerARM64::storeCondRel8):
(JSC::MacroAssemblerARM64::loadLink16):
(JSC::MacroAssemblerARM64::loadLinkAcq16):
(JSC::MacroAssemblerARM64::storeCond16):
(JSC::MacroAssemblerARM64::storeCondRel16):
(JSC::MacroAssemblerARM64::loadLink32):
(JSC::MacroAssemblerARM64::loadLinkAcq32):
(JSC::MacroAssemblerARM64::storeCond32):
(JSC::MacroAssemblerARM64::storeCondRel32):
(JSC::MacroAssemblerARM64::loadLink64):
(JSC::MacroAssemblerARM64::loadLinkAcq64):
(JSC::MacroAssemblerARM64::storeCond64):
(JSC::MacroAssemblerARM64::storeCondRel64):
(JSC::MacroAssemblerARM64::extractSimpleAddress):
- assembler/MacroAssemblerARM64E.h:
(JSC::MacroAssemblerARM64E::atomicXchgAdd8):
(JSC::MacroAssemblerARM64E::atomicXchgAdd16):
(JSC::MacroAssemblerARM64E::atomicXchgAdd32):
(JSC::MacroAssemblerARM64E::atomicXchgAdd64):
(JSC::MacroAssemblerARM64E::atomicXchgXor8):
(JSC::MacroAssemblerARM64E::atomicXchgXor16):
(JSC::MacroAssemblerARM64E::atomicXchgXor32):
(JSC::MacroAssemblerARM64E::atomicXchgXor64):
(JSC::MacroAssemblerARM64E::atomicXchgOr8):
(JSC::MacroAssemblerARM64E::atomicXchgOr16):
(JSC::MacroAssemblerARM64E::atomicXchgOr32):
(JSC::MacroAssemblerARM64E::atomicXchgOr64):
(JSC::MacroAssemblerARM64E::atomicXchgClear8):
(JSC::MacroAssemblerARM64E::atomicXchgClear16):
(JSC::MacroAssemblerARM64E::atomicXchgClear32):
(JSC::MacroAssemblerARM64E::atomicXchgClear64):
(JSC::MacroAssemblerARM64E::atomicXchg8):
(JSC::MacroAssemblerARM64E::atomicXchg16):
(JSC::MacroAssemblerARM64E::atomicXchg32):
(JSC::MacroAssemblerARM64E::atomicXchg64):
(JSC::MacroAssemblerARM64E::atomicStrongCAS8):
(JSC::MacroAssemblerARM64E::atomicStrongCAS16):
(JSC::MacroAssemblerARM64E::atomicStrongCAS32):
(JSC::MacroAssemblerARM64E::atomicStrongCAS64):
- assembler/MacroAssemblerARMv7.h:
(JSC::MacroAssemblerARMv7::or8):
(JSC::MacroAssemblerARMv7::or16):
(JSC::MacroAssemblerARMv7::or32):
(JSC::MacroAssemblerARMv7::load32):
(JSC::MacroAssemblerARMv7::load8):
(JSC::MacroAssemblerARMv7::load8SignedExtendTo32):
(JSC::MacroAssemblerARMv7::load16):
(JSC::MacroAssemblerARMv7::load16SignedExtendTo32):
(JSC::MacroAssemblerARMv7::store32):
(JSC::MacroAssemblerARMv7::store16):
(JSC::MacroAssemblerARMv7::loadDouble):
(JSC::MacroAssemblerARMv7::loadFloat):
(JSC::MacroAssemblerARMv7::storeDouble):
(JSC::MacroAssemblerARMv7::storeFloat):
(JSC::MacroAssemblerARMv7::storePtrWithPatch):
- assembler/MacroAssemblerMIPS.h:
(JSC::MacroAssemblerMIPS::load8):
(JSC::MacroAssemblerMIPS::load8SignedExtendTo32):
(JSC::MacroAssemblerMIPS::load32):
(JSC::MacroAssemblerMIPS::load16):
(JSC::MacroAssemblerMIPS::store8):
(JSC::MacroAssemblerMIPS::store16):
(JSC::MacroAssemblerMIPS::store32):
(JSC::MacroAssemblerMIPS::storePtrWithPatch):
(JSC::MacroAssemblerMIPS::loadFloat):
(JSC::MacroAssemblerMIPS::loadDouble):
(JSC::MacroAssemblerMIPS::storeFloat):
(JSC::MacroAssemblerMIPS::storeDouble):
- assembler/MacroAssemblerX86Common.h:
(JSC::MacroAssemblerX86Common::load32):
(JSC::MacroAssemblerX86Common::load16Unaligned):
(JSC::MacroAssemblerX86Common::load8):
(JSC::MacroAssemblerX86Common::load8SignedExtendTo32):
(JSC::MacroAssemblerX86Common::load16):
(JSC::MacroAssemblerX86Common::store32):
(JSC::MacroAssemblerX86Common::store16):
(JSC::MacroAssemblerX86Common::loadDouble):
(JSC::MacroAssemblerX86Common::loadFloat):
(JSC::MacroAssemblerX86Common::storeDouble):
(JSC::MacroAssemblerX86Common::storeFloat):
- assembler/MacroAssemblerX86_64.h:
(JSC::MacroAssemblerX86_64::load8):
(JSC::MacroAssemblerX86_64::load32):
(JSC::MacroAssemblerX86_64::store32):
(JSC::MacroAssemblerX86_64::load64):
(JSC::MacroAssemblerX86_64::store64):
(JSC::MacroAssemblerX86_64::storePtrWithPatch):
- assembler/testmasm.cpp:
(JSC::testBranchTruncateDoubleToInt32):
(JSC::testLoadPrePostIndex32):
(JSC::testLoadPrePostIndex64):
- dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::compileStringSlice):
(JSC::DFG::SpeculativeJIT::compileGetByValOnString):
(JSC::DFG::SpeculativeJIT::compileClearCatchLocals):
- ftl/FTLLocation.cpp:
(JSC::FTL::Location::restoreInto const):
- ftl/FTLThunks.cpp:
(JSC::FTL::genericGenerationThunkGenerator):
- jit/AssemblyHelpers.cpp:
(JSC::AssemblyHelpers::debugCall):
(JSC::AssemblyHelpers::sanitizeStackInline):
- jit/JITPropertyAccess.cpp:
(JSC::JIT::emitGetVarFromIndirectPointer):
- jit/ThunkGenerators.cpp:
(JSC::arityFixupGenerator):
- wasm/WasmBinding.cpp:
(JSC::Wasm::wasmToWasm):
- yarr/YarrJIT.cpp:
Source/WebCore:
- cssjit/SelectorCompiler.cpp:
(WebCore::SelectorCompiler::SelectorCodeGenerator::generateSelectorChecker):
- 10:05 PM Changeset in webkit [283969] by
-
- 3 edits in trunk/LayoutTests
[GLIB] Update test expectations for failing CSS tests.
https://bugs.webkit.org/show_bug.cgi?id=231547
Unreviewed test gardening.
Patch by Arcady Goldmints-Orlov <Arcady Goldmints-Orlov> on 2021-10-11
- platform/glib/TestExpectations:
- platform/gtk/TestExpectations:
- 9:20 PM Changeset in webkit [283968] by
-
- 7 edits in trunk/Source/WebKit
[GPU Process] Unique RenderingResourceIdentifiers Part 5: Migrate RemoteResourceCache to QualifiedRenderingResourceIdentifier
https://bugs.webkit.org/show_bug.cgi?id=231407
<rdar://problem/84010479>
Reviewed by Said Abou-Hallawa.
This pushes QualifiedRenderingResourceIdentifier down into RemoteResourceCache, but doesn't go all the way.
This patch augments RemoteResourceCache's API to accept QualifiedRenderingResourceIdentifiers, and also
migrates RemoteResourceCache::m_resourceUseCounters to use QualifiedRenderingResourceIdentifiers.
RemoteResourceCache::m_imageBuffers, RemoteResourceCache::m_nativeImages, and RemoteResourceCache::m_fonts
are WebCore typedefs, and are passed to WebCore's display list replaying code, but that code should have no
notion of process identifiers. Therefore, in order to make those members hold data that WebCore doesn't
understand, I'm going to have to wrap an opaque class around them and pass that class around instead of
the raw HashMaps. I'll do that in another patch.
No new tests because there is no behavior change.
- GPUProcess/graphics/RemoteDisplayListRecorder.cpp:
(WebKit::RemoteDisplayListRecorder::setStateWithQualifiedIdentifiers):
(WebKit::RemoteDisplayListRecorder::clipToImageBufferWithQualifiedIdentifier):
(WebKit::RemoteDisplayListRecorder::drawGlyphsWithQualifiedIdentifier):
(WebKit::RemoteDisplayListRecorder::drawImageBufferWithQualifiedIdentifier):
(WebKit::RemoteDisplayListRecorder::drawNativeImageWithQualifiedIdentifier):
(WebKit::RemoteDisplayListRecorder::drawPatternWithQualifiedIdentifier):
- GPUProcess/graphics/RemoteGraphicsContextGL.cpp:
(WebKit::RemoteGraphicsContextGL::paintPixelBufferToImageBuffer):
- GPUProcess/graphics/RemoteRenderingBackend.cpp:
(WebKit::RemoteRenderingBackend::RemoteRenderingBackend):
(WebKit::RemoteRenderingBackend::createImageBufferWithQualifiedIdentifier):
(WebKit::RemoteRenderingBackend::ReplayerDelegate::ReplayerDelegate):
(WebKit::RemoteRenderingBackend::ReplayerDelegate::recordResourceUse):
(WebKit::RemoteRenderingBackend::submit):
(WebKit::RemoteRenderingBackend::nextDestinationImageBufferAfterApplyingDisplayLists):
(WebKit::RemoteRenderingBackend::wakeUpAndApplyDisplayListWithQualifiedIdentifier):
(WebKit::RemoteRenderingBackend::getDataURLForImageBufferWithQualifiedIdentifier):
(WebKit::RemoteRenderingBackend::getDataForImageBufferWithQualifiedIdentifier):
(WebKit::RemoteRenderingBackend::getShareableBitmapForImageBufferWithQualifiedIdentifier):
(WebKit::RemoteRenderingBackend::cacheNativeImageWithQualifiedIdentifier):
(WebKit::RemoteRenderingBackend::cacheFontWithQualifiedIdentifier):
(WebKit::RemoteRenderingBackend::releaseRemoteResourceWithQualifiedIdentifier):
(WebKit::RemoteRenderingBackend::finalizeRenderingUpdate):
- GPUProcess/graphics/RemoteRenderingBackend.h:
- GPUProcess/graphics/RemoteResourceCache.cpp:
(WebKit::RemoteResourceCache::RemoteResourceCache):
(WebKit::RemoteResourceCache::cacheImageBuffer):
(WebKit::RemoteResourceCache::cachedImageBuffer const):
(WebKit::RemoteResourceCache::cacheNativeImage):
(WebKit::RemoteResourceCache::cachedNativeImage const):
(WebKit::RemoteResourceCache::cacheFont):
(WebKit::RemoteResourceCache::cachedFont const):
(WebKit::RemoteResourceCache::ensureResourceUseCounter):
(WebKit::RemoteResourceCache::maybeRemoveResource):
(WebKit::RemoteResourceCache::recordResourceUse):
(WebKit::RemoteResourceCache::releaseRemoteResource):
- GPUProcess/graphics/RemoteResourceCache.h:
- 9:18 PM Changeset in webkit [283967] by
-
- 5 edits in trunk/Source
[GPU Process] Unique RenderingResourceIdentifiers Part 6: Uniquify more of RemoteDisplayListRecorder at entry points
https://bugs.webkit.org/show_bug.cgi?id=231552
<rdar://problem/84130587>
Source/WebCore:
Reviewed by Wenson Hsieh.
No new tests because there is no behavior change.
- platform/ProcessQualified.h:
(WebCore::ProcessQualified::operator bool const):
Source/WebKit:
This is an extension of https://bugs.webkit.org/show_bug.cgi?id=231548. It applies QualifiedRenderingResourceIdentifiers
at the rest of the entry points of RemoteDisplayListRecorder.
Reviewed by Wenson Hsieh.
- GPUProcess/graphics/RemoteDisplayListRecorder.cpp:
(WebKit::RemoteDisplayListRecorder::setState):
(WebKit::RemoteDisplayListRecorder::setStateWithQualifiedIdentifiers):
(WebKit::RemoteDisplayListRecorder::drawGlyphs):
(WebKit::RemoteDisplayListRecorder::drawGlyphsWithQualifiedIdentifier):
- GPUProcess/graphics/RemoteDisplayListRecorder.h:
- 8:55 PM Changeset in webkit [283966] by
-
- 17 edits in trunk/Source/WebKit
Make DrawingAreaType an enum class
https://bugs.webkit.org/show_bug.cgi?id=231543
Reviewed by Wenson Hsieh.
Make DrawingAreaType an enum class, and make the DrawingArea type member const.
- Shared/DrawingAreaInfo.h:
- UIProcess/Cocoa/WebViewImpl.mm:
(WebKit::WebViewImpl::isUsingUISideCompositing const):
- UIProcess/CoordinatedGraphics/DrawingAreaProxyCoordinatedGraphics.cpp:
(WebKit::DrawingAreaProxyCoordinatedGraphics::DrawingAreaProxyCoordinatedGraphics):
- UIProcess/RemoteLayerTree/RemoteLayerTreeDrawingAreaProxy.h:
- UIProcess/RemoteLayerTree/RemoteLayerTreeDrawingAreaProxy.mm:
(WebKit::RemoteLayerTreeDrawingAreaProxy::RemoteLayerTreeDrawingAreaProxy):
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::setDrawingArea):
(WebKit::WebPageProxy::commitProvisionalPage):
(WebKit::WebPageProxy::enterAcceleratedCompositingMode):
(WebKit::WebPageProxy::didFirstLayerFlush):
- UIProcess/mac/TiledCoreAnimationDrawingAreaProxy.h:
- UIProcess/mac/TiledCoreAnimationDrawingAreaProxy.mm:
(WebKit::TiledCoreAnimationDrawingAreaProxy::TiledCoreAnimationDrawingAreaProxy):
- WebProcess/WebCoreSupport/WebChromeClient.cpp:
(WebKit::WebChromeClient::createScrollingCoordinator const):
- WebProcess/WebPage/CoordinatedGraphics/DrawingAreaCoordinatedGraphics.cpp:
(WebKit::DrawingAreaCoordinatedGraphics::DrawingAreaCoordinatedGraphics):
- WebProcess/WebPage/DrawingArea.cpp:
(WebKit::DrawingArea::create):
(WebKit::DrawingArea::supportsGPUProcessRendering):
- WebProcess/WebPage/DrawingArea.h:
- WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.h:
- WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.mm:
(WebKit::RemoteLayerTreeDrawingArea::RemoteLayerTreeDrawingArea):
- WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.h:
- WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:
(WebKit::TiledCoreAnimationDrawingArea::TiledCoreAnimationDrawingArea):
- 8:05 PM Changeset in webkit [283965] by
-
- 3 edits in trunk/Source/WebKit
[GPU Process] Unique RenderingResourceIdentifiers Part 5: Uniquify RemoteDisplayListRecorder at entry points
https://bugs.webkit.org/show_bug.cgi?id=231548
<rdar://problem/84128595>
Reviewed by Wenson Hsieh.
This simply applies the same treatment in https://commits.webkit.org/242676@main to
RemoteDisplayListRecorder. This is being done in a follow-up patch because it
relies on https://bugs.webkit.org/show_bug.cgi?id=231484.
No new tests because there is no behavior change.
- GPUProcess/graphics/RemoteDisplayListRecorder.cpp:
(WebKit::RemoteDisplayListRecorder::RemoteDisplayListRecorder):
(WebKit::RemoteDisplayListRecorder::clipToImageBuffer):
(WebKit::RemoteDisplayListRecorder::clipToImageBufferWithQualifiedIdentifier):
(WebKit::RemoteDisplayListRecorder::drawImageBuffer):
(WebKit::RemoteDisplayListRecorder::drawImageBufferWithQualifiedIdentifier):
(WebKit::RemoteDisplayListRecorder::drawNativeImage):
(WebKit::RemoteDisplayListRecorder::drawNativeImageWithQualifiedIdentifier):
(WebKit::RemoteDisplayListRecorder::drawPattern):
(WebKit::RemoteDisplayListRecorder::drawPatternWithQualifiedIdentifier):
- GPUProcess/graphics/RemoteDisplayListRecorder.h:
(WebKit::RemoteDisplayListRecorder::create):
- 7:57 PM Changeset in webkit [283964] by
-
- 3 edits in trunk/Tools
Slightly better idiom for ARC debug autorelease workaround
https://bugs.webkit.org/show_bug.cgi?id=231435
Reviewed by David Kilzer.
- TestWebKitAPI/Tests/WTF/cocoa/TypeCastsCocoa.mm:
(TestWebKitAPI::TEST): Use one macro instead of two, with
traditional indentation instead of left flush style.
- TestWebKitAPI/Tests/WTF/ns/RetainPtr.mm:
(TestWebKitAPI::TEST): Ditto.
- 7:48 PM Changeset in webkit [283963] by
-
- 2 edits in trunk/Source/WebCore
Fix makeprop.pl to not treat "inherited: false" properties as inherited.
https://bugs.webkit.org/show_bug.cgi?id=231533
Patch by Kiet Ho <Kiet Ho> on 2021-10-11
Reviewed by Simon Fraser.
makeprop.pl treats a property as inherited if the "inherited" option in
CSSProperties.json is defined, regardless of whether the option value is
true or false. Fix makeprop.pl to actually consider the option value.
- css/makeprop.pl:
(addProperty):
- 7:42 PM Changeset in webkit [283962] by
-
- 5 edits in trunk/Source/WebCore
Implement alternate style for text fields
https://bugs.webkit.org/show_bug.cgi?id=231536
Reviewed by Wenson Hsieh.
- rendering/RenderTheme.h:
(WebCore::RenderTheme::paintTextFieldDecorations):
(WebCore::RenderTheme::paintTextAreaDecorations):
(WebCore::RenderTheme::paintSearchFieldDecorations):
Tighten up the types.
- rendering/RenderThemeIOS.h:
- rendering/RenderThemeIOS.mm:
(WebCore::RenderThemeIOS::adjustTextFieldStyle const):
Drop the border and clear the background, so that we can use our
custom inner shadow painting instead.
(WebCore::RenderThemeIOS::paintTextFieldInnerShadow):
(WebCore::RenderThemeIOS::paintTextFieldDecorations):
(WebCore::RenderThemeIOS::paintTextAreaDecorations):
(WebCore::RenderThemeIOS::paintSearchFieldDecorations):
Paint our custom inner shadow for text fields, when using the alternate appearance.
- rendering/style/RenderStyle.h:
(WebCore::RenderStyle::resetBorder):
(WebCore::RenderStyle::resetBorderExceptRadius):
Add a mechanism to reset all border properties except radius.
- 7:11 PM Changeset in webkit [283961] by
-
- 1 copy in tags/Safari-612.2.9.1.10
Tag Safari-612.2.9.1.10.
- 6:46 PM Changeset in webkit [283960] by
-
- 1 copy in tags/Safari-612.2.9.0.10
Tag Safari-612.2.9.0.10.
- 6:40 PM Changeset in webkit [283959] by
-
- 6 edits in trunk/Source/WebKit
Revert 242806@main because it broke the build
https://bugs.webkit.org/show_bug.cgi?id=231546
Unreviewed.
- GPUProcess/graphics/RemoteGraphicsContextGL.cpp:
(WebKit::RemoteGraphicsContextGL::paintPixelBufferToImageBuffer):
- GPUProcess/graphics/RemoteRenderingBackend.cpp:
(WebKit::RemoteRenderingBackend::RemoteRenderingBackend):
(WebKit::RemoteRenderingBackend::createImageBufferWithQualifiedIdentifier):
(WebKit::RemoteRenderingBackend::ReplayerDelegate::ReplayerDelegate):
(WebKit::RemoteRenderingBackend::ReplayerDelegate::recordResourceUse):
(WebKit::RemoteRenderingBackend::submit):
(WebKit::RemoteRenderingBackend::nextDestinationImageBufferAfterApplyingDisplayLists):
(WebKit::RemoteRenderingBackend::wakeUpAndApplyDisplayListWithQualifiedIdentifier):
(WebKit::RemoteRenderingBackend::getDataURLForImageBufferWithQualifiedIdentifier):
(WebKit::RemoteRenderingBackend::getDataForImageBufferWithQualifiedIdentifier):
(WebKit::RemoteRenderingBackend::getShareableBitmapForImageBufferWithQualifiedIdentifier):
(WebKit::RemoteRenderingBackend::cacheNativeImageWithQualifiedIdentifier):
(WebKit::RemoteRenderingBackend::cacheFontWithQualifiedIdentifier):
(WebKit::RemoteRenderingBackend::releaseRemoteResourceWithQualifiedIdentifier):
(WebKit::RemoteRenderingBackend::finalizeRenderingUpdate):
- GPUProcess/graphics/RemoteRenderingBackend.h:
- GPUProcess/graphics/RemoteResourceCache.cpp:
(WebKit::RemoteResourceCache::RemoteResourceCache):
(WebKit::RemoteResourceCache::cacheImageBuffer):
(WebKit::RemoteResourceCache::cachedImageBuffer const):
(WebKit::RemoteResourceCache::cacheNativeImage):
(WebKit::RemoteResourceCache::cachedNativeImage const):
(WebKit::RemoteResourceCache::cacheFont):
(WebKit::RemoteResourceCache::cachedFont const):
(WebKit::RemoteResourceCache::ensureResourceUseCounter):
(WebKit::RemoteResourceCache::maybeRemoveResource):
(WebKit::RemoteResourceCache::recordResourceUse):
(WebKit::RemoteResourceCache::releaseRemoteResource):
- GPUProcess/graphics/RemoteResourceCache.h:
- 5:57 PM Changeset in webkit [283958] by
-
- 1 copy in branches/safari-612.2.9.0.7-branch
New branch.
- 5:55 PM Changeset in webkit [283957] by
-
- 8 edits in trunk/Source
Clean up some code in DisplayList::Recorder in preparation for bug #230860
https://bugs.webkit.org/show_bug.cgi?id=231532
Reviewed by Myles C. Maxfield.
Source/WebCore:
See below for more details.
- platform/graphics/Path.h:
Add WEBCORE_EXPORT here. When building debug WebKit2,
logMessageImplcontains logic to dump IPC arguments
using WTF::TextStream; since a few of these new stream messages contain WebCore::Path objects, this will
generate calls toTextStream& operator<<(TextStream&, const Path&)in WebKit2, which requires this function to
be exported.
- platform/graphics/displaylists/DisplayListRecorder.h:
- platform/graphics/displaylists/DisplayListRecorderImpl.cpp:
(WebCore::DisplayList::RecorderImpl::recordGetPixelBuffer): Deleted.
(WebCore::DisplayList::RecorderImpl::recordPutPixelBuffer): Deleted.
Remove a couple of unnecessary virtual override hooks in the base DisplayList::Recorder class. The existing
virtualgetPixelBufferandputPixelBuffermethods are already suffificient.
- platform/graphics/displaylists/DisplayListRecorderImpl.h:
Source/WebKit:
- WebProcess/GPU/graphics/RemoteDisplayListRecorderProxy.cpp:
(WebKit::RemoteDisplayListRecorderProxy::recordGetPixelBuffer): Deleted.
(WebKit::RemoteDisplayListRecorderProxy::recordPutPixelBuffer): Deleted.
See WebCore ChangeLog for more details.
- WebProcess/GPU/graphics/RemoteDisplayListRecorderProxy.h:
- 5:53 PM Changeset in webkit [283956] by
-
- 1 copy in branches/safari-612.2.9.1.7-branch
New branch.
- 5:48 PM Changeset in webkit [283955] by
-
- 6 edits in trunk/Source/WebKit
[GPU Process] Unique RenderingResourceIdentifiers Part 5: Migrate RemoteResourceCache to QualifiedRenderingResourceIdentifier
https://bugs.webkit.org/show_bug.cgi?id=231407
<rdar://problem/84010479>
Reviewed by Said Abou-Hallawa.
This pushes QualifiedRenderingResourceIdentifier down into RemoteResourceCache, but doesn't go all the way.
This patch augments RemoteResourceCache's API to accept QualifiedRenderingResourceIdentifiers, and also
migrates RemoteResourceCache::m_resourceUseCounters to use QualifiedRenderingResourceIdentifiers.
RemoteResourceCache::m_imageBuffers, RemoteResourceCache::m_nativeImages, and RemoteResourceCache::m_fonts
are WebCore typedefs, and are passed to WebCore's display list replaying code, but that code should have no
notion of process identifiers. Therefore, in order to make those members hold data that WebCore doesn't
understand, I'm going to have to wrap an opaque class around them and pass that class around instead of
the raw HashMaps. I'll do that in another patch.
No new tests because there is no behavior change.
- GPUProcess/graphics/RemoteGraphicsContextGL.cpp:
(WebKit::RemoteGraphicsContextGL::paintPixelBufferToImageBuffer):
- GPUProcess/graphics/RemoteRenderingBackend.cpp:
(WebKit::RemoteRenderingBackend::RemoteRenderingBackend):
(WebKit::RemoteRenderingBackend::createImageBufferWithQualifiedIdentifier):
(WebKit::RemoteRenderingBackend::ReplayerDelegate::ReplayerDelegate):
(WebKit::RemoteRenderingBackend::ReplayerDelegate::recordResourceUse):
(WebKit::RemoteRenderingBackend::submit):
(WebKit::RemoteRenderingBackend::nextDestinationImageBufferAfterApplyingDisplayLists):
(WebKit::RemoteRenderingBackend::wakeUpAndApplyDisplayListWithQualifiedIdentifier):
(WebKit::RemoteRenderingBackend::getDataURLForImageBufferWithQualifiedIdentifier):
(WebKit::RemoteRenderingBackend::getDataForImageBufferWithQualifiedIdentifier):
(WebKit::RemoteRenderingBackend::getShareableBitmapForImageBufferWithQualifiedIdentifier):
(WebKit::RemoteRenderingBackend::cacheNativeImageWithQualifiedIdentifier):
(WebKit::RemoteRenderingBackend::cacheFontWithQualifiedIdentifier):
(WebKit::RemoteRenderingBackend::releaseRemoteResourceWithQualifiedIdentifier):
(WebKit::RemoteRenderingBackend::finalizeRenderingUpdate):
- GPUProcess/graphics/RemoteRenderingBackend.h:
- GPUProcess/graphics/RemoteResourceCache.cpp:
(WebKit::RemoteResourceCache::RemoteResourceCache):
(WebKit::RemoteResourceCache::cacheImageBuffer):
(WebKit::RemoteResourceCache::cachedImageBuffer const):
(WebKit::RemoteResourceCache::cacheNativeImage):
(WebKit::RemoteResourceCache::cachedNativeImage const):
(WebKit::RemoteResourceCache::cacheFont):
(WebKit::RemoteResourceCache::cachedFont const):
(WebKit::RemoteResourceCache::ensureResourceUseCounter):
(WebKit::RemoteResourceCache::maybeRemoveResource):
(WebKit::RemoteResourceCache::recordResourceUse):
(WebKit::RemoteResourceCache::releaseRemoteResource):
- GPUProcess/graphics/RemoteResourceCache.h:
- 5:33 PM Changeset in webkit [283954] by
-
- 6 edits in trunk/Source/JavaScriptCore
Share more code that uses ScratchRegisterAllocator in the ICs
https://bugs.webkit.org/show_bug.cgi?id=231125
<rdar://problem/84066374>
Reviewed by Sam Weinig.
We had the same code to allocate a scratch register allocator copy pasted
all over the IC code. This patch refactors that to use a shared helper.
Also, Delete was using a ScratchRegisterAllocator for no reason (it never
allocated a scratch register), so I deleted that code.
- bytecode/AccessCase.cpp:
(JSC::AccessCase::generateWithGuard):
(JSC::AccessCase::generateImpl):
- bytecode/GetterSetterAccessCase.cpp:
(JSC::GetterSetterAccessCase::emitDOMJITGetter):
- bytecode/PolymorphicAccess.cpp:
(JSC::AccessGenerationState::makeDefaultScratchAllocator):
(JSC::PolymorphicAccess::regenerate):
- bytecode/PolymorphicAccess.h:
- jit/IntrinsicEmitter.cpp:
(JSC::IntrinsicGetterAccessCase::emitIntrinsicGetter):
- 5:09 PM Changeset in webkit [283953] by
-
- 8 edits in branches/safari-612.2.9.1-branch/Source
Versioning.
WebKit-7612.2.9.1.10
- 5:05 PM Changeset in webkit [283952] by
-
- 3 edits3 adds in trunk
[COOP] Crash under ReportingEndpointsCache::addEndpointFromDictionary()
https://bugs.webkit.org/show_bug.cgi?id=231537
<rdar://83530643>
Reviewed by Geoffrey Garen.
Source/WebCore:
Make sure we don't crash under addEndpointFromDictionary() when the Report-To HTTP header
contains more than one endpoint URL for a given group.
The loop inside addEndpointFromDictionary() should bail as soon as we find a viable
endpoint URL (since we don't currently support having several URLs for a given group).
The crash was due to a use-after-move of the |group|.
Test: http/wpt/cross-origin-opener-policy/report-to-multiple-endpoints.html
- loader/ReportingEndpointsCache.cpp:
(WebCore::ReportingEndpointsCache::addEndpointFromDictionary):
LayoutTests:
Add layout test coverage.
- http/wpt/cross-origin-opener-policy/report-to-multiple-endpoints-expected.txt: Added.
- http/wpt/cross-origin-opener-policy/report-to-multiple-endpoints.html: Added.
- http/wpt/cross-origin-opener-policy/report-to-multiple-endpoints.html.headers: Added.
- 4:53 PM Changeset in webkit [283951] by
-
- 8 edits in branches/safari-612.2.9.0-branch/Source
Versioning.
WebKit-7612.2.9.0.10
- 4:45 PM Changeset in webkit [283950] by
-
- 2 edits in trunk/LayoutTests
[ iOS 15 ] imported/w3c/web-platform-tests/WebCryptoAPI/derive_bits_keys/pbkdf2.https.any.worker.html is flaky timing out.
https://bugs.webkit.org/show_bug.cgi?id=231544
Unreviewed test gardening.
- platform/ios-wk2/TestExpectations:
- 4:33 PM Changeset in webkit [283949] by
-
- 2 edits in branches/safari-612.2.9.1-branch/Source/WebKit
Cherry-pick r283846. rdar://problem/84117092
Fix crash in NetworkProcess preconnect due to dereferencing deallocated session
https://bugs.webkit.org/show_bug.cgi?id=231456
<rdar://problem/83752148>
Reviewed by Chris Dumez.
We capture a raw NetworkSession reference in the preconnect completion handler. This
reference could point to a deallocated object if the NetworkSession dies before the
preconnect finishes.
- NetworkProcess/NetworkProcess.cpp: (WebKit::NetworkProcess::preconnectTo):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@283846 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 4:32 PM Changeset in webkit [283948] by
-
- 3 edits in trunk/LayoutTests
[ iOS macOS Debug ] webgl/1.0.3/conformance/glsl/bugs/long-expressions-should-not-crash.html is a flaky timeout.
https://bugs.webkit.org/show_bug.cgi?id=231541
Unreviewed test gardening.
- platform/ios-wk2/TestExpectations:
- platform/mac-wk1/TestExpectations:
- 4:29 PM Changeset in webkit [283947] by
-
- 2 edits in branches/safari-612.2.9.0-branch/Source/WebKit
Cherry-pick r283846. rdar://problem/84117075
Fix crash in NetworkProcess preconnect due to dereferencing deallocated session
https://bugs.webkit.org/show_bug.cgi?id=231456
<rdar://problem/83752148>
Reviewed by Chris Dumez.
We capture a raw NetworkSession reference in the preconnect completion handler. This
reference could point to a deallocated object if the NetworkSession dies before the
preconnect finishes.
- NetworkProcess/NetworkProcess.cpp: (WebKit::NetworkProcess::preconnectTo):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@283846 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 4:27 PM Changeset in webkit [283946] by
-
- 9 edits in branches/safari-612-branch
Cherry-pick r283194. rdar://problem/83953433
PCM: different bundleID entries will override each other
https://bugs.webkit.org/show_bug.cgi?id=230839
Reviewed by Alex Christensen.
Source/WebKit:
We recently added a bundleID column to PCM tables. We want to make
sure entries with different bundleIDs do not override each other,
so we should make it a part of the unique constraint on both PCM
tables that contain it. This requires creating new tables and
migrating existing data to them. Luckily this code already exists
in the ITP database, and we can just move it to the shared
DatabaseUtilities class.
- NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp: (WebKit::ResourceLoadStatisticsDatabaseStore::expectedTableAndIndexQueries): (WebKit::stripIndexQueryToMatchStoredValue): Deleted. (WebKit::expectedTableAndIndexQueries): Deleted. (WebKit::ResourceLoadStatisticsDatabaseStore::currentTableAndIndexQueries): Deleted. (WebKit::insertDistinctValuesInTableStatement): Deleted. (WebKit::ResourceLoadStatisticsDatabaseStore::migrateDataToNewTablesIfNecessary): Deleted.
- NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.h:
- NetworkProcess/DatabaseUtilities.cpp: (WebKit::DatabaseUtilities::stripIndexQueryToMatchStoredValue): (WebKit::DatabaseUtilities::currentTableAndIndexQueries): (WebKit::insertDistinctValuesInTableStatement): (WebKit::DatabaseUtilities::migrateDataToNewTablesIfNecessary):
- NetworkProcess/DatabaseUtilities.h:
- NetworkProcess/PrivateClickMeasurement/PrivateClickMeasurementDatabase.cpp: (WebKit::PCM::Database::Database): (WebKit::PCM::Database::expectedTableAndIndexQueries): (WebKit::PCM::Database::createUniqueIndices): (WebKit::PCM::Database::needsUpdatedSchema):
- NetworkProcess/PrivateClickMeasurement/PrivateClickMeasurementDatabase.h:
Tools:
API test coverage for the case of existing PCM data with a bundleID
column but an expired unique index.
- TestWebKitAPI/Tests/WebKitCocoa/PrivateClickMeasurement.mm: (addUnattributedPCMv4): (addAttributedPCMv4): (dumpedPCM): (pollUntilPCMIsMigrated): (emptyPcmDBPath): (createAndPopulatePCMObservedDomainTable): (setUpFromResourceLoadStatisticsDatabase): (setUpFromPCMDatabase): (TEST): (setUp): Deleted.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@283194 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 4:27 PM Changeset in webkit [283945] by
-
- 33 edits15 copies2 adds in branches/safari-612-branch
Cherry-pick r282884. rdar://problem/83954926
PCM should include the bundle ID of the app from which it originated
https://bugs.webkit.org/show_bug.cgi?id=230576
<rdar://83065221>
Patch by Alex Christensen <achristensen@webkit.org> on 2021-09-22
Reviewed by Kate Cheney.
Source/WebCore:
This adds infrastructure to store the bundle ID of the application.
In another patch I'm going to use that to prevent PCMs from one app from overwriting PCMs from another app during attribution.
- html/HTMLAnchorElement.cpp: (WebCore::HTMLAnchorElement::parsePrivateClickMeasurement const):
- loader/PrivateClickMeasurement.cpp: (WebCore::PrivateClickMeasurement::isolatedCopy const):
- loader/PrivateClickMeasurement.h: (WebCore::PrivateClickMeasurement::PrivateClickMeasurement): (WebCore::PrivateClickMeasurement::attributionTriggerData const): (WebCore::PrivateClickMeasurement::sourceApplicationBundleID const): (WebCore::PrivateClickMeasurement::encode const): (WebCore::PrivateClickMeasurement::decode): (WebCore::PrivateClickMeasurement::attributionTriggerData): Deleted.
Source/WebKit:
- NetworkProcess/DatabaseUtilities.cpp: (WebKit::DatabaseUtilities::buildPrivateClickMeasurementFromDatabase const): (WebKit::DatabaseUtilities::buildPrivateClickMeasurementFromDatabase): Deleted.
- NetworkProcess/DatabaseUtilities.h:
- NetworkProcess/PrivateClickMeasurement/PrivateClickMeasurementDatabase.cpp: (WebKit::PCM::Database::Database): (WebKit::PCM::Database::insertPrivateClickMeasurement): (WebKit::PCM::Database::privateClickMeasurementToStringForTesting const): (WebKit::PCM::Database::attributionToStringForTesting const): (WebKit::PCM::Database::addBundleIDColumnIfNecessary): (WebKit::PCM::Database::columnsForTable): (WebKit::PCM::Database::addMissingColumnToTable):
- NetworkProcess/PrivateClickMeasurement/PrivateClickMeasurementDatabase.h:
- UIProcess/API/Cocoa/WKWebViewPrivate.h:
- UIProcess/API/Cocoa/WKWebViewPrivateForTesting.h:
- UIProcess/API/Cocoa/WKWebViewTesting.mm: (-[WKWebView _addEventAttributionWithSourceID:destinationURL:sourceDescription:purchaser:reportEndpoint:optionalNonce:applicationBundleID:]): (-[WKWebView _addEventAttributionWithSourceID:destinationURL:sourceDescription:purchaser:reportEndpoint:optionalNonce:]): Deleted.
- UIProcess/API/ios/WKWebViewIOS.mm: (-[WKWebView _setEphemeralUIEventAttribution:]): (-[WKWebView _setEphemeralUIEventAttribution:forApplicationWithBundleID:]):
Tools:
- TestWebKitAPI/Tests/WebCore/PrivateClickMeasurement.cpp: (TestWebKitAPI::TEST):
- TestWebKitAPI/Tests/WebKitCocoa/EventAttribution.mm: (TestWebKitAPI::TEST):
- TestWebKitAPI/Tests/WebKitCocoa/PrivateClickMeasurement.mm: (pollUntilPCMIsMigrated):
LayoutTests:
- http/tests/contentextensions/block-private-click-measurement-expected.txt:
- http/tests/privateClickMeasurement/attribution-conversion-through-cross-site-image-redirect-expected.txt:
- http/tests/privateClickMeasurement/attribution-conversion-through-fetch-keepalive-expected.txt:
- http/tests/privateClickMeasurement/attribution-conversion-through-image-redirect-ephemeral-expected.txt:
- http/tests/privateClickMeasurement/attribution-conversion-through-image-redirect-in-new-window-expected.txt:
- http/tests/privateClickMeasurement/attribution-conversion-through-image-redirect-with-priority-expected.txt:
- http/tests/privateClickMeasurement/attribution-conversion-through-image-redirect-without-priority-expected.txt:
- http/tests/privateClickMeasurement/conversion-disabled-in-ephemeral-session-expected.txt:
- http/tests/privateClickMeasurement/private-click-measurement-with-source-nonce-null-content-expected.txt:
- http/tests/privateClickMeasurement/private-click-measurement-with-source-nonce-wrong-content-type-expected.txt:
- http/tests/privateClickMeasurement/second-attribution-converted-with-higher-priority-expected.txt:
- http/tests/privateClickMeasurement/second-attribution-converted-with-lower-priority-expected.txt:
- http/tests/privateClickMeasurement/second-conversion-with-higher-priority-expected.txt:
- http/tests/privateClickMeasurement/second-conversion-with-lower-priority-expected.txt:
- http/tests/privateClickMeasurement/store-private-click-measurement-expected.txt:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@282884 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 4:12 PM Changeset in webkit [283944] by
-
- 1 copy in tags/Safari-612.2.9.3.4
Tag Safari-612.2.9.3.4.
- 3:46 PM Changeset in webkit [283943] by
-
- 2 edits in trunk/Source/WTF
Only mark needed JSONImpl::ObjectBase functions with WTF_EXPORT_PRIVATE
https://bugs.webkit.org/show_bug.cgi?id=231521
Patch by Alex Christensen <achristensen@webkit.org> on 2021-10-11
Reviewed by Chris Dumez.
I'm trying some wild experiments with the linker, and when I do the weak symbol checker fails because
it is trying to export some of the inline functions at the bottom of JSONValues.h.
Moving WTF_EXPORT_PRIVATE from exporting the whole class to only exporting the non-inline functions fixes it.
- wtf/JSONValues.h:
- 3:40 PM Changeset in webkit [283942] by
-
- 2 edits in branches/safari-612.2.9.3-branch/Source/WebKit
Cherry-pick r283846. rdar://problem/84117050
Fix crash in NetworkProcess preconnect due to dereferencing deallocated session
https://bugs.webkit.org/show_bug.cgi?id=231456
<rdar://problem/83752148>
Reviewed by Chris Dumez.
We capture a raw NetworkSession reference in the preconnect completion handler. This
reference could point to a deallocated object if the NetworkSession dies before the
preconnect finishes.
- NetworkProcess/NetworkProcess.cpp: (WebKit::NetworkProcess::preconnectTo):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@283846 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 3:37 PM Changeset in webkit [283941] by
-
- 18 edits5 adds in trunk/Source
Introduce RemoteDisplayListRecorderProxy and RemoteDisplayListRecorder
https://bugs.webkit.org/show_bug.cgi?id=231484
Reviewed by Simon Fraser.
Source/WebCore:
See WebKit ChangeLog for more details.
- platform/graphics/GraphicsContext.h:
- platform/graphics/ImageBuffer.h:
- platform/graphics/displaylists/DisplayListItems.h:
Add default constructors for a couple of display list items so that they can be encoded as IPC arguments using
SimpleArgumentCoder.
Source/WebKit:
Introduce two new classes that house most of the logic for propagating display list items from the web content
process to the GPU process. RemoteDisplayListRecorderProxy is a subclass of DisplayList::Recorder that records
each item by sending it to the GPU process through a stream connection, which will be added to
RemoteRenderingBackendProxy in a subsequent patch. The RemoteDisplayListRecorderProxy will be managed by
RemoteImageBufferProxy in the web process. RemoteDisplayListRecorder acts as the streaming IPC destination in
the GPU process, and handles the incoming display list items by applying them to the platform graphics context.
For most of these display list items, we can propagate them to the GPU process by sending each display list
item's constructor arguments as separate IPC arguments. In a future patch, we should add support for encoding
the following display list items in the same way:
- SetInlineFillColor
- SetInlineStrokeColor
- SetState
- SetLineDash
- DrawGlyphs
- DrawLinesForText
- FillRectWithGradient
For now, the above display list items are encoded and decoded as whole items. While there's no practical
disadvantage to implementing it this way, it would be nice to make it consistent.
- CMakeLists.txt:
- DerivedSources-input.xcfilelist:
- DerivedSources-output.xcfilelist:
- DerivedSources.make:
- GPUProcess/graphics/RemoteDisplayListRecorder.cpp: Added.
(WebKit::RemoteDisplayListRecorder::RemoteDisplayListRecorder):
(WebKit::RemoteDisplayListRecorder::resourceCache):
(WebKit::RemoteDisplayListRecorder::drawingContext):
(WebKit::RemoteDisplayListRecorder::startListeningForIPC):
(WebKit::RemoteDisplayListRecorder::stopListeningForIPC):
(WebKit::RemoteDisplayListRecorder::save):
(WebKit::RemoteDisplayListRecorder::restore):
(WebKit::RemoteDisplayListRecorder::translate):
(WebKit::RemoteDisplayListRecorder::rotate):
(WebKit::RemoteDisplayListRecorder::scale):
(WebKit::RemoteDisplayListRecorder::setCTM):
(WebKit::RemoteDisplayListRecorder::concatenateCTM):
(WebKit::RemoteDisplayListRecorder::setInlineFillColor):
(WebKit::RemoteDisplayListRecorder::setInlineStrokeColor):
(WebKit::RemoteDisplayListRecorder::setStrokeThickness):
(WebKit::RemoteDisplayListRecorder::setState):
(WebKit::RemoteDisplayListRecorder::setLineCap):
(WebKit::RemoteDisplayListRecorder::setLineDash):
(WebKit::RemoteDisplayListRecorder::setLineJoin):
(WebKit::RemoteDisplayListRecorder::setMiterLimit):
(WebKit::RemoteDisplayListRecorder::clearShadow):
(WebKit::RemoteDisplayListRecorder::clip):
(WebKit::RemoteDisplayListRecorder::clipOut):
(WebKit::RemoteDisplayListRecorder::clipToImageBuffer):
(WebKit::RemoteDisplayListRecorder::clipOutToPath):
(WebKit::RemoteDisplayListRecorder::clipPath):
(WebKit::RemoteDisplayListRecorder::beginClipToDrawingCommands):
(WebKit::RemoteDisplayListRecorder::endClipToDrawingCommands):
(WebKit::RemoteDisplayListRecorder::drawGlyphs):
(WebKit::RemoteDisplayListRecorder::drawImageBuffer):
(WebKit::RemoteDisplayListRecorder::drawNativeImage):
(WebKit::RemoteDisplayListRecorder::drawPattern):
(WebKit::RemoteDisplayListRecorder::beginTransparencyLayer):
(WebKit::RemoteDisplayListRecorder::endTransparencyLayer):
(WebKit::RemoteDisplayListRecorder::drawRect):
(WebKit::RemoteDisplayListRecorder::drawLine):
(WebKit::RemoteDisplayListRecorder::drawLinesForText):
(WebKit::RemoteDisplayListRecorder::drawDotsForDocumentMarker):
(WebKit::RemoteDisplayListRecorder::drawEllipse):
(WebKit::RemoteDisplayListRecorder::drawPath):
(WebKit::RemoteDisplayListRecorder::drawFocusRingPath):
(WebKit::RemoteDisplayListRecorder::drawFocusRingRects):
(WebKit::RemoteDisplayListRecorder::fillRect):
(WebKit::RemoteDisplayListRecorder::fillRectWithColor):
(WebKit::RemoteDisplayListRecorder::fillRectWithGradient):
(WebKit::RemoteDisplayListRecorder::fillCompositedRect):
(WebKit::RemoteDisplayListRecorder::fillRoundedRect):
(WebKit::RemoteDisplayListRecorder::fillRectWithRoundedHole):
(WebKit::RemoteDisplayListRecorder::fillLine):
(WebKit::RemoteDisplayListRecorder::fillArc):
(WebKit::RemoteDisplayListRecorder::fillQuadCurve):
(WebKit::RemoteDisplayListRecorder::fillBezierCurve):
(WebKit::RemoteDisplayListRecorder::fillPath):
(WebKit::RemoteDisplayListRecorder::fillEllipse):
(WebKit::RemoteDisplayListRecorder::getPixelBuffer):
(WebKit::RemoteDisplayListRecorder::putPixelBuffer):
(WebKit::RemoteDisplayListRecorder::paintFrameForMedia):
(WebKit::RemoteDisplayListRecorder::strokeRect):
(WebKit::RemoteDisplayListRecorder::strokeLine):
(WebKit::RemoteDisplayListRecorder::strokeArc):
(WebKit::RemoteDisplayListRecorder::strokeQuadCurve):
(WebKit::RemoteDisplayListRecorder::strokeBezierCurve):
(WebKit::RemoteDisplayListRecorder::strokePath):
(WebKit::RemoteDisplayListRecorder::strokeEllipse):
(WebKit::RemoteDisplayListRecorder::clearRect):
(WebKit::RemoteDisplayListRecorder::applyStrokePattern):
(WebKit::RemoteDisplayListRecorder::applyFillPattern):
(WebKit::RemoteDisplayListRecorder::applyDeviceScaleFactor):
(WebKit::RemoteDisplayListRecorder::flushContext):
- GPUProcess/graphics/RemoteDisplayListRecorder.h: Added.
(WebKit::RemoteDisplayListRecorder::create):
(WebKit::RemoteDisplayListRecorder::handleItem):
- GPUProcess/graphics/RemoteDisplayListRecorder.messages.in: Added.
- GPUProcess/graphics/RemoteRenderingBackend.cpp:
(WebKit::RemoteRenderingBackend::performWithMediaPlayerOnMainThread):
- GPUProcess/graphics/RemoteRenderingBackend.h:
Add helper methods to RemoteRenderingBackend that are called from RemoteDisplayListRecorder.
- Scripts/webkit/messages.py:
(headers_for_type):
- Shared/WebCoreArgumentCoders.cpp:
- Shared/WebCoreArgumentCoders.h:
Make it possible to encode and decode SetInlineFillColor and SetInlineStrokeColor using simple argument coder.
- Sources.txt:
- WebKit.xcodeproj/project.pbxproj:
- WebProcess/GPU/graphics/RemoteDisplayListRecorderProxy.cpp: Added.
(WebKit::RemoteDisplayListRecorderProxy::RemoteDisplayListRecorderProxy):
(WebKit::m_renderingBackend):
(WebKit::RemoteDisplayListRecorderProxy::getPixelBuffer):
(WebKit::RemoteDisplayListRecorderProxy::putPixelBuffer):
(WebKit::RemoteDisplayListRecorderProxy::canDrawImageBuffer const):
(WebKit::RemoteDisplayListRecorderProxy::renderingMode const):
(WebKit::RemoteDisplayListRecorderProxy::recordSave):
(WebKit::RemoteDisplayListRecorderProxy::recordRestore):
(WebKit::RemoteDisplayListRecorderProxy::recordTranslate):
(WebKit::RemoteDisplayListRecorderProxy::recordRotate):
(WebKit::RemoteDisplayListRecorderProxy::recordScale):
(WebKit::RemoteDisplayListRecorderProxy::recordSetCTM):
(WebKit::RemoteDisplayListRecorderProxy::recordConcatenateCTM):
(WebKit::RemoteDisplayListRecorderProxy::recordSetInlineFillColor):
(WebKit::RemoteDisplayListRecorderProxy::recordSetInlineStrokeColor):
(WebKit::RemoteDisplayListRecorderProxy::recordSetStrokeThickness):
(WebKit::RemoteDisplayListRecorderProxy::recordSetState):
(WebKit::RemoteDisplayListRecorderProxy::recordSetLineCap):
(WebKit::RemoteDisplayListRecorderProxy::recordSetLineDash):
(WebKit::RemoteDisplayListRecorderProxy::recordSetLineJoin):
(WebKit::RemoteDisplayListRecorderProxy::recordSetMiterLimit):
(WebKit::RemoteDisplayListRecorderProxy::recordClearShadow):
(WebKit::RemoteDisplayListRecorderProxy::recordClip):
(WebKit::RemoteDisplayListRecorderProxy::recordClipOut):
(WebKit::RemoteDisplayListRecorderProxy::recordClipToImageBuffer):
(WebKit::RemoteDisplayListRecorderProxy::recordClipOutToPath):
(WebKit::RemoteDisplayListRecorderProxy::recordClipPath):
(WebKit::RemoteDisplayListRecorderProxy::recordBeginClipToDrawingCommands):
(WebKit::RemoteDisplayListRecorderProxy::recordEndClipToDrawingCommands):
(WebKit::RemoteDisplayListRecorderProxy::recordDrawGlyphs):
(WebKit::RemoteDisplayListRecorderProxy::recordDrawImageBuffer):
(WebKit::RemoteDisplayListRecorderProxy::recordDrawNativeImage):
(WebKit::RemoteDisplayListRecorderProxy::recordDrawPattern):
(WebKit::RemoteDisplayListRecorderProxy::recordBeginTransparencyLayer):
(WebKit::RemoteDisplayListRecorderProxy::recordEndTransparencyLayer):
(WebKit::RemoteDisplayListRecorderProxy::recordDrawRect):
(WebKit::RemoteDisplayListRecorderProxy::recordDrawLine):
(WebKit::RemoteDisplayListRecorderProxy::recordDrawLinesForText):
(WebKit::RemoteDisplayListRecorderProxy::recordDrawDotsForDocumentMarker):
(WebKit::RemoteDisplayListRecorderProxy::recordDrawEllipse):
(WebKit::RemoteDisplayListRecorderProxy::recordDrawPath):
(WebKit::RemoteDisplayListRecorderProxy::recordDrawFocusRingPath):
(WebKit::RemoteDisplayListRecorderProxy::recordDrawFocusRingRects):
(WebKit::RemoteDisplayListRecorderProxy::recordFillRect):
(WebKit::RemoteDisplayListRecorderProxy::recordFillRectWithColor):
(WebKit::RemoteDisplayListRecorderProxy::recordFillRectWithGradient):
(WebKit::RemoteDisplayListRecorderProxy::recordFillCompositedRect):
(WebKit::RemoteDisplayListRecorderProxy::recordFillRoundedRect):
(WebKit::RemoteDisplayListRecorderProxy::recordFillRectWithRoundedHole):
(WebKit::RemoteDisplayListRecorderProxy::recordFillLine):
(WebKit::RemoteDisplayListRecorderProxy::recordFillArc):
(WebKit::RemoteDisplayListRecorderProxy::recordFillQuadCurve):
(WebKit::RemoteDisplayListRecorderProxy::recordFillBezierCurve):
(WebKit::RemoteDisplayListRecorderProxy::recordFillPath):
(WebKit::RemoteDisplayListRecorderProxy::recordFillEllipse):
(WebKit::RemoteDisplayListRecorderProxy::recordGetPixelBuffer):
(WebKit::RemoteDisplayListRecorderProxy::recordPutPixelBuffer):
(WebKit::RemoteDisplayListRecorderProxy::recordPaintFrameForMedia):
(WebKit::RemoteDisplayListRecorderProxy::recordStrokeRect):
(WebKit::RemoteDisplayListRecorderProxy::recordStrokeLine):
(WebKit::RemoteDisplayListRecorderProxy::recordStrokeArc):
(WebKit::RemoteDisplayListRecorderProxy::recordStrokeQuadCurve):
(WebKit::RemoteDisplayListRecorderProxy::recordStrokeBezierCurve):
(WebKit::RemoteDisplayListRecorderProxy::recordStrokePath):
(WebKit::RemoteDisplayListRecorderProxy::recordStrokeEllipse):
(WebKit::RemoteDisplayListRecorderProxy::recordClearRect):
(WebKit::RemoteDisplayListRecorderProxy::recordApplyStrokePattern):
(WebKit::RemoteDisplayListRecorderProxy::recordApplyFillPattern):
(WebKit::RemoteDisplayListRecorderProxy::recordApplyDeviceScaleFactor):
(WebKit::RemoteDisplayListRecorderProxy::recordResourceUse):
(WebKit::RemoteDisplayListRecorderProxy::flushContext):
(WebKit::RemoteDisplayListRecorderProxy::createNestedContext):
- WebProcess/GPU/graphics/RemoteDisplayListRecorderProxy.h: Added.
(WebKit::RemoteDisplayListRecorderProxy::~RemoteDisplayListRecorderProxy):
(WebKit::RemoteDisplayListRecorderProxy::resetNeedsFlush):
(WebKit::RemoteDisplayListRecorderProxy::needsFlush const):
(WebKit::RemoteDisplayListRecorderProxy::send):
(WebKit::RemoteDisplayListRecorderProxy::recordDrawPattern):
- WebProcess/GPU/graphics/RemoteRenderingBackendProxy.cpp:
(WebKit::RemoteRenderingBackendProxy::recordNativeImageUse):
(WebKit::RemoteRenderingBackendProxy::recordFontUse):
(WebKit::RemoteRenderingBackendProxy::recordImageBufferUse):
(WebKit::RemoteRenderingBackendProxy::isCached const):
Add helper methods to RemoteRenderingBackendProxy that are called from RemoteDisplayListRecorderProxy.
- WebProcess/GPU/graphics/RemoteRenderingBackendProxy.h:
(WebKit::RemoteRenderingBackendProxy::sendToStream):
- 3:30 PM Changeset in webkit [283940] by
-
- 6 edits in trunk/Source
Disable SystemPreview in WKContentProviderRegistry
https://bugs.webkit.org/show_bug.cgi?id=231538
rdar://84110761
Reviewed by Tim Horton.
Source/WebKit:
Disable the WebViewContentProvider for System Previews
if UIKIT_WEBKIT_INTERNALS is true.
- UIProcess/Cocoa/WKWebViewContentProviderRegistry.mm:
(-[WKWebViewContentProviderRegistry initWithConfiguration:]):
- UIProcess/ios/WKSystemPreviewView.h:
- UIProcess/ios/WKSystemPreviewView.mm:
Source/WTF:
Revert the change in r283811.
- wtf/PlatformUse.h:
- 3:19 PM Changeset in webkit [283939] by
-
- 2 edits in trunk/Tools
[build-imagediff] Build universal binaries by default
https://bugs.webkit.org/show_bug.cgi?id=231527
<rdar://problem/84113091>
Reviewed by Ryan Haddad.
- Scripts/build-imagediff:
- 2:45 PM Changeset in webkit [283938] by
-
- 6 edits1 add in trunk
Don't branch around register allocation in DFG enumerator get by val and pass in the right LValue type to strictInt52ToJSValue
https://bugs.webkit.org/show_bug.cgi?id=231465
<rdar://83876470>
Reviewed by Yusuke Suzuki.
JSTests:
- stress/dont-branch-around-regalloc-enumerator-get-by-val.js: Added.
(foo):
Source/JavaScriptCore:
- dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::setIntTypedArrayLoadResult):
(JSC::DFG::SpeculativeJIT::compileGetByValOnIntTypedArray):
- dfg/DFGSpeculativeJIT.h:
- dfg/DFGSpeculativeJIT64.cpp:
(JSC::DFG::SpeculativeJIT::compile):
- ftl/FTLLowerDFGToB3.cpp:
(JSC::FTL::DFG::LowerDFGToB3::compileCompareStrictEq):
- 2:21 PM Changeset in webkit [283937] by
-
- 2 edits in trunk
Add my github username to contributors.json
Unreviewed.
- metadata/contributors.json:
- 2:12 PM Changeset in webkit [283936] by
-
- 3 edits in trunk/Tools
[run-benchmark] Make Python 3 compatible
https://bugs.webkit.org/show_bug.cgi?id=231512
<rdar://problem/84098736>
Reviewed by Dewei Zhu.
- Scripts/webkitpy/benchmark_runner/browser_driver/linux_browser_driver.py:
(LinuxBrowserDriver.launch_url): Encode Popen call if Python 3.
- Scripts/webkitpy/benchmark_runner/browser_driver/osx_safari_driver.py:
(OSXSafariDriver.launch_url): Ditto.
- 1:59 PM Changeset in webkit [283935] by
-
- 39 edits1 delete in trunk
Implement new autofocus behavior
https://bugs.webkit.org/show_bug.cgi?id=203139
<rdar://problem/56397019>
Reviewed by Wenson Hsieh.
Make WebKit match the new autofocus spec:
- https://html.spec.whatwg.org/multipage/interaction.html#the-autofocus-attribute
- https://html.spec.whatwg.org/multipage/interaction.html#focusing-steps
The new autofocus behavior queues up all autofocusable elements (visible or not), then
fires autofocus asynchronously during the "update rendering" steps, unlike the old behavior
which runs focus synchronously whenever it finds a visible autofocusable element.
Original patch by Ryosuke Niwa.
LayoutTests/imported/w3c:
- web-platform-tests/html/interaction/focus/the-autofocus-attribute/document-with-fragment-empty-expected.txt:
- web-platform-tests/html/interaction/focus/the-autofocus-attribute/document-with-fragment-nonexistent-expected.txt:
- web-platform-tests/html/interaction/focus/the-autofocus-attribute/document-with-fragment-top-expected.txt:
- web-platform-tests/html/interaction/focus/the-autofocus-attribute/first-expected.txt:
- web-platform-tests/html/interaction/focus/the-autofocus-attribute/first-when-later-expected.txt:
- web-platform-tests/html/interaction/focus/the-autofocus-attribute/queue-non-focusable-expected.txt:
- web-platform-tests/html/interaction/focus/the-autofocus-attribute/update-the-rendering-expected.txt:
- web-platform-tests/selection/selection-select-all-move-input-crash-expected.txt: Expected change since input autofocus now places caret at start
Source/WebCore:
- dom/Document.cpp:
(WebCore::Document::appendAutofocusCandidate):
(WebCore::Document::flushAutofocusCandidates):
- dom/Document.h:
(WebCore::Document::isAutofocusProcessed const):
(WebCore::Document::setAutofocusProcessed):
- dom/Element.cpp:
(WebCore::Element::runFocusingStepsForAutofocus):
- dom/Element.h:
- html/HTMLFormControlElement.cpp:
(WebCore::shouldAutofocus):
(WebCore::HTMLFormControlElement::didAttachRenderers):
(WebCore::HTMLFormControlElement::insertedIntoAncestor):
(WebCore::HTMLFormControlElement::runFocusingStepsForAutofocus):
- html/HTMLFormControlElement.h:
(WebCore::HTMLFormControlElement::hasAutofocused const): Deleted.
(WebCore::HTMLFormControlElement::setAutofocused): Deleted.
- page/Page.cpp:
(WebCore::Page::updateRendering):
- page/Page.h:
LayoutTests:
- TestExpectations:
- fast/dom/Window/window-scroll-ignore-null-frame.html:
- fast/dom/adopt-node-crash-2-expected.txt:
- fast/dom/adopt-node-crash-2.html:
- fast/dom/window-inner-width-crash.html:
- fast/forms/autofocus-in-sandbox-with-allow-scripts-expected.txt:
- fast/forms/autofocus-in-sandbox-with-allow-scripts.html:
- fast/forms/autofocus-keygen.html:
- fast/forms/autofocus-opera-001.html:
- fast/forms/autofocus-opera-002.html:
- fast/forms/autofocus-opera-003.html:
- fast/forms/autofocus-opera-006.html:
- fast/forms/autofocus-opera-007.html:
- fast/forms/change-input-type-in-focus-handler.html:
- fast/frames/crash-when-iframe-is-remove-in-eventhandler.html:
- fast/history/page-cache-execute-script-during-restore.html:
- platform/ios-wk2/TestExpectations:
- platform/ios-wk2/imported/w3c/web-platform-tests/html/interaction/focus/the-autofocus-attribute/update-the-rendering-expected.txt:
- platform/ios/imported/w3c/web-platform-tests/selection/selection-select-all-move-input-crash-expected.txt:
- platform/mac-wk1/imported/w3c/web-platform-tests/html/interaction/focus/the-autofocus-attribute/update-the-rendering-expected.txt:
- platform/win/TestExpectations:
- 1:37 PM Changeset in webkit [283934] by
-
- 9 edits in trunk/Tools
Reduce use of TCPServer
https://bugs.webkit.org/show_bug.cgi?id=231518
Patch by Alex Christensen <achristensen@webkit.org> on 2021-10-11
Reviewed by Chris Dumez.
HTTPServer runs its logic on the main thread and doesn't hang in its destructor
when the number of connections and requests isn't exactly what was expected.
verifyCertificateAndPublicKey needed its expected bytes to be changed because it is
using the identity from TCPServer::testCertificate instead of TCPServer::startSecureConnection now.
I also moved the proxy basic authentication check from proxyAuthenticationServer to proxyDefinition.
- TestWebKitAPI/Tests/WebKitCocoa/Challenge.mm:
(TEST):
(verifyCertificateAndPublicKey):
(TestWebKitAPI::TEST):
- TestWebKitAPI/Tests/WebKitCocoa/Proxy.mm:
(TestWebKitAPI::proxyAuthenticationServer):
(TestWebKitAPI::webViewAndDelegate):
(TestWebKitAPI::TEST):
- TestWebKitAPI/Tests/WebKitCocoa/ServiceWorkerBasic.mm:
- TestWebKitAPI/Tests/WebKitCocoa/TLSDeprecation.mm:
(TestWebKitAPI::TEST):
- TestWebKitAPI/Tests/WebKitCocoa/TestSOAuthorization.mm:
(TestWebKitAPI::TEST):
- TestWebKitAPI/Tests/WebKitCocoa/_WKWebAuthenticationPanel.mm:
(TestWebKitAPI::TEST):
- TestWebKitAPI/cocoa/HTTPServer.h:
- TestWebKitAPI/cocoa/HTTPServer.mm:
(TestWebKitAPI::proxyDefinition):
(TestWebKitAPI::shouldDisableTLS):
(TestWebKitAPI::HTTPServer::listenerParameters):
(TestWebKitAPI::statusText):
(TestWebKitAPI::HTTPServer::request const):
- 1:27 PM Changeset in webkit [283933] by
-
- 2 edits in branches/safari-612-branch/LayoutTests/imported/w3c
Unreviewed, minor test rebaseline on the branch.
Due to lack of SharedArrayBuffer stubs.
- web-platform-tests/html/cross-origin-embedder-policy/reporting-to-endpoint.https-expected.txt:
- 1:16 PM Changeset in webkit [283932] by
-
- 2 edits in trunk
Add my github username and keep my expertise where it is because, while not up to date, it is fun
Unreviewed.
- metadata/contributors.json:
- 1:14 PM Changeset in webkit [283931] by
-
- 12 edits1 copy2 moves1 add2 deletes in branches/safari-612-branch
Cherry-pick r283509. <rdar://83953710>
- 1:10 PM Changeset in webkit [283930] by
-
- 7 edits in trunk/Source
Unified build fix
https://bugs.webkit.org/show_bug.cgi?id=231524
Patch by Alex Christensen <achristensen@webkit.org> on 2021-10-11
Reviewed by Chris Dumez.
Source/WebCore:
- platform/encryptedmedia/CDMProxy.cpp:
Source/WebKit:
This adds some missing includes and things to fix the build once I add some more files, making the unified build combine differently
- NetworkProcess/PrivateClickMeasurement/cocoa/PrivateClickMeasurementNetworkLoaderCocoa.mm:
(-[WKNetworkSessionDelegateAllowingOnlyNonRedirectedJSON URLSession:dataTask:didReceiveResponse:completionHandler:]):
- NetworkProcess/PrivateClickMeasurement/cocoa/PrivateClickMeasurementXPCUtilities.h:
- NetworkProcess/PrivateClickMeasurement/cocoa/PrivateClickMeasurementXPCUtilities.mm:
- Shared/EntryPointUtilities/Cocoa/Daemon/PCMDaemonEntryPoint.mm:
- 12:58 PM Changeset in webkit [283929] by
-
- 58 edits1 copy1 add in branches/safari-612-branch
Cherry-pick r283179. <rdar://83956559>
- 12:53 PM Changeset in webkit [283928] by
-
- 1 copy in tags/Safari-613.1.4.2
Tag Safari-613.1.4.2.
- 12:52 PM Changeset in webkit [283927] by
-
- 5 edits in branches/safari-613.1.4-branch/Source/WebKit
Cherry-pick r283925. rdar://problem/84111635
[macOS] Grant access in sandbox to 'system-privilege' for root
https://bugs.webkit.org/show_bug.cgi?id=231501
<rdar://83959448>
Reviewed by Brent Fulgham.
When running as root, WebKit processes need access to 'system-privilege'.
- GPUProcess/mac/com.apple.WebKit.GPUProcess.sb.in:
- NetworkProcess/mac/com.apple.WebKit.NetworkProcess.sb.in:
- WebAuthnProcess/mac/com.apple.WebKit.WebAuthnProcess.sb.in:
- WebProcess/com.apple.WebProcess.sb.in:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@283925 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 12:51 PM Changeset in webkit [283926] by
-
- 8 edits in branches/safari-613.1.4-branch/Source
Versioning.
WebKit-7613.1.4.2
- 12:41 PM Changeset in webkit [283925] by
-
- 5 edits in trunk/Source/WebKit
[macOS] Grant access in sandbox to 'system-privilege' for root
https://bugs.webkit.org/show_bug.cgi?id=231501
<rdar://83959448>
Reviewed by Brent Fulgham.
When running as root, WebKit processes need access to 'system-privilege'.
- GPUProcess/mac/com.apple.WebKit.GPUProcess.sb.in:
- NetworkProcess/mac/com.apple.WebKit.NetworkProcess.sb.in:
- WebAuthnProcess/mac/com.apple.WebKit.WebAuthnProcess.sb.in:
- WebProcess/com.apple.WebProcess.sb.in:
- 12:37 PM Changeset in webkit [283924] by
-
- 2 edits in trunk
Various updates to my contributors.json entry.
Unreviewed.
Patch by Theresa O'Connor <hober@apple.com> on 2021-10-11
- metadata/contributors.json:
- 12:34 PM Changeset in webkit [283923] by
-
- 2 edits in branches/safari-612-branch/Source/WebKit
Cherry-pick r282854. <rdar://83957011>
- 12:30 PM Changeset in webkit [283922] by
-
- 23 edits1 add1 delete in branches/safari-612-branch
Cherry-pick r282604. <rdar://83954050>
- 12:17 PM Changeset in webkit [283921] by
-
- 4 edits in trunk/Source/WebInspectorUI
Web Inspector: add TabBar context menu support for WI.WebInspectorExtensionTabContentView
https://bugs.webkit.org/show_bug.cgi?id=231181
<rdar://74698241>
Unreviewed. Land parts of the previous patch which seem to have been mis-merged and not landed.
- UserInterface/Base/Main.js:
(WI.isNewTabWithTypeAllowed):
- UserInterface/Controllers/WebInspectorExtensionController.js:
(WI.WebInspectorExtensionController.prototype.showExtensionTab):
- UserInterface/Views/TabBar.js:
(WI.TabBar.prototype._handleAddClosedTabsTabBarItemMouseDown):
(WI.TabBar.prototype._handleTabContainerContextMenu):
(WI.TabBar):
- 12:14 PM Changeset in webkit [283920] by
-
- 46 edits2 adds in branches/safari-612-branch
Cherry-pick r282305. <rdar://83955184>
- 12:03 PM Changeset in webkit [283919] by
-
- 2 edits in trunk
Add my github and update my expertise
Unreviewed.
- metadata/contributors.json:
- 12:02 PM Changeset in webkit [283918] by
-
- 3 edits in trunk/LayoutTests
[ iOS BigSur wk1 ] webgl/1.0.3/conformance/uniforms/uniform-default-values.html is flaky timing out.
https://bugs.webkit.org/show_bug.cgi?id=231514
Unreviewed test gardening.
- platform/ios-wk2/TestExpectations:
- platform/mac-wk1/TestExpectations:
- 11:52 AM Changeset in webkit [283917] by
-
- 11 edits3 adds in branches/safari-612-branch
Cherry-pick r281935. <rdar://83953588>
- 11:38 AM Changeset in webkit [283916] by
-
- 14 edits14 adds in trunk
Add push registration stubs
https://bugs.webkit.org/show_bug.cgi?id=231064
Reviewed by Youenn Fablet.
LayoutTests/imported/w3c:
Update test results after importing PushManager-related IDL.
- web-platform-tests/push-api/idlharness.https.any-expected.txt:
- web-platform-tests/push-api/idlharness.https.any.serviceworker-expected.txt:
- web-platform-tests/push-api/idlharness.https.any.worker-expected.txt:
Source/WebCore:
Import IDL related to PushManager and implement steps 1-7 of the subscribe method as
described in https://www.w3.org/TR/push-api/#pushmanager-interface. Further steps will be
implemented in future patches.
Tests: http/wpt/push-api/pushManager.any.html
http/wpt/push-api/pushManager.any.serviceworker.html
- CMakeLists.txt:
- DerivedSources-input.xcfilelist:
- DerivedSources-output.xcfilelist:
- DerivedSources.make:
- Modules/push-api/PushManager.cpp: Added.
(WebCore::PushManager::PushManager):
(WebCore::PushManager::supportedContentEncodings):
(WebCore::PushManager::ref const):
(WebCore::PushManager::deref const):
(WebCore::PushManager::subscribe):
(WebCore::PushManager::getSubscription):
(WebCore::PushManager::permissionState):
- Modules/push-api/PushManager.h: Added.
- Modules/push-api/PushManager.idl: Added.
- Modules/push-api/PushPermissionState.h: Added.
- Modules/push-api/PushPermissionState.idl: Added.
- Modules/push-api/ServiceWorkerRegistration+PushAPI.idl: Added.
- Modules/push-api/ServiceWorkerRegistrationPushAPI.cpp: Added.
(WebCore::ServiceWorkerRegistrationPushAPI::ServiceWorkerRegistrationPushAPI):
(WebCore::ServiceWorkerRegistrationPushAPI::pushManager):
(WebCore::ServiceWorkerRegistrationPushAPI::from):
(WebCore::ServiceWorkerRegistrationPushAPI::supplementName):
- Modules/push-api/ServiceWorkerRegistrationPushAPI.h: Added.
- Sources.txt:
- WebCore.xcodeproj/project.pbxproj:
- bindings/js/WebCoreBuiltinNames.h:
- workers/service/ServiceWorkerRegistration.h:
LayoutTests:
Add basic tests for PushManager.subscribe in both the window and service worker contexts.
- http/wpt/push-api/pushManager-worker.js: Added.
- http/wpt/push-api/pushManager.any-expected.txt: Added.
- http/wpt/push-api/pushManager.any.html: Added.
- http/wpt/push-api/pushManager.any.js: Added.
(isServiceWorker.promise_test.async test):
(else.promise_test.async test):
(promise_test.async test):
- http/wpt/push-api/pushManager.any.serviceworker-expected.txt: Added.
- http/wpt/push-api/pushManager.any.serviceworker.html: Added.
- 11:31 AM Changeset in webkit [283915] by
-
- 47 edits1 copy2 adds in branches/safari-612-branch
Cherry-pick r281832. <rdar://83953492>
- 11:28 AM Changeset in webkit [283914] by
-
- 2 edits in trunk/Source/JavaScriptCore
[JSC][ARMv7] Make LLInt CSR save/restore order match the JITs
https://bugs.webkit.org/show_bug.cgi?id=231517
Patch by Geza Lore <Geza Lore> on 2021-10-11
Reviewed by Saam Barati.
Since the new unlinked baseline JIT was introduced, the baseline JIT
uses the metadata table GPR the same way as the LLInt does, and relies
on it being in a saved CSR in emit_op_catch. This unearthed an issue
in the order in which LLInt on ARMv7 stores and restores CSRs when
trying to handle exceptions. This patch fixes the mismatch.
- llint/LowLevelInterpreter.asm:
- 11:16 AM Changeset in webkit [283913] by
-
- 7 edits in branches/safari-612-branch
Merge r281802. <rdar://83957220>
- 11:05 AM Changeset in webkit [283912] by
-
- 27 edits1 move in trunk/Source
DOMTimeStamp is now EpochTimeStamp
https://bugs.webkit.org/show_bug.cgi?id=231496
Reviewed by Sam Weinig.
Source/WebCore:
DOMTimeStamp was renamed EpochTimeStamp. There is no observable behavioral change - it's just a name change.
Relevant WebIDL discussions/issue:
Which lead to:
- Headers.cmake:
- Modules/geolocation/Geolocation.cpp:
(WebCore::createGeolocationPosition):
(WebCore::Geolocation::haveSuitableCachedPosition):
- Modules/geolocation/GeolocationPosition.h:
(WebCore::GeolocationPosition::create):
(WebCore::GeolocationPosition::timestamp const):
(WebCore::GeolocationPosition::GeolocationPosition):
- Modules/geolocation/GeolocationPosition.idl:
- Modules/notifications/Notification.idl:
- Modules/push-api/PushSubscription.cpp:
(WebCore::PushSubscription::PushSubscription):
(WebCore::PushSubscription::expirationTime const):
- Modules/push-api/PushSubscription.h:
- Modules/push-api/PushSubscription.idl:
- Modules/push-api/PushSubscriptionJSON.h:
- Modules/push-api/PushSubscriptionJSON.idl:
- Modules/push-api/PushSubscriptionOptions.h:
- WebCore.xcodeproj/project.pbxproj:
- bindings/scripts/IDLParser.pm:
(addBuiltinTypedefs):
- bindings/scripts/test/TestTypedefs.idl:
- dom/EpochTimeStamp.h: Renamed from Source/WebCore/dom/DOMTimeStamp.h.
(WebCore::convertSecondsToEpochTimeStamp):
(WebCore::convertEpochTimeStampToSeconds):
- testing/Internals.cpp:
(WebCore::Internals::createPushSubscription):
- testing/Internals.h:
- testing/Internals.idl:
Source/WebKitLegacy/mac:
- DOM/DOMEvent.h:
- DOM/DOMEvent.mm:
(-[DOMEvent timeStamp]):
- DOM/DOMObject.h:
Source/WebKitLegacy/win:
- DOMEventsClasses.cpp:
(DOMEvent::timeStamp):
- DOMEventsClasses.h:
(DOMUIEvent::timeStamp):
(DOMKeyboardEvent::timeStamp):
(DOMMouseEvent::timeStamp):
(DOMMutationEvent::timeStamp):
(DOMOverflowEvent::timeStamp):
(DOMWheelEvent::timeStamp):
- Interfaces/DOMEvents.idl:
- 10:52 AM Changeset in webkit [283911] by
-
- 31 edits in trunk/Source
Smooth-scroll animations should run in the UI process on iOS
https://bugs.webkit.org/show_bug.cgi?id=204936
Reviewed by Tim Horton.
Source/WebCore:
- page/scrolling/ScrollingTreeScrollingNode.cpp:
(WebCore::ScrollingTreeScrollingNode::handleScrollPositionRequest): On iOS scrollingTreeNodeRequestsScroll()
doesn't handle the animated scroll, so we need to call startAnimatedScrollToPosition() from here.
- rendering/RenderLayerScrollableArea.cpp:
(WebCore::RenderLayerScrollableArea::scrollToOffset): call stopAsyncAnimatedScroll()
for overflow scrolls as we do in FrameView.
Source/WebKit:
Implement animated scrolls in the UI process for UI-side compositing. The scrolling tree
decoded in the UI process has a RequestedScrollData with the 'animated' flag. This is
processed by handleScrollPositionRequest() as normal.
ScrollingTreeOverflowScrollingNodeIOS::startAnimatedScrollToPosition() responds by calling
through to the delegate, which simply calls -[setContentOffset:animated:YES] on the
UIScrollView.
Main frame scrolls are a little different because the programmatic scroll needs to be
handled after layer tree commits; leverage the existing
RemoteScrollingCoordinatorProxy::scrollingTreeNodeRequestsScroll() code, but clean it up to
share the RequestedScrollData type, and have commitScrollingTreeState() return
std::optional<RequestedScrollData> instead of storing a pointer to a struct on the stack as
it did before. The various requestScroll() functions take a ScrollIsAnimated flag which
turns into -[setContentOffset:animated:YES] in WKWebView.
- Shared/RemoteLayerTree/RemoteScrollingCoordinatorTransaction.cpp:
(WebKit::dump):
- UIProcess/API/gtk/PageClientImpl.cpp:
(WebKit::PageClientImpl::requestScroll):
- UIProcess/API/gtk/PageClientImpl.h:
- UIProcess/API/ios/WKWebViewIOS.h:
- UIProcess/API/ios/WKWebViewIOS.mm:
(-[WKWebView _scrollToContentScrollPosition:scrollOrigin:animated:]):
(-[WKWebView _scrollToContentScrollPosition:scrollOrigin:]): Deleted.
- UIProcess/API/wpe/PageClientImpl.cpp:
(WebKit::PageClientImpl::requestScroll):
- UIProcess/API/wpe/PageClientImpl.h:
- UIProcess/PageClient.h:
- UIProcess/RemoteLayerTree/RemoteLayerTreeDrawingAreaProxy.mm:
(WebKit::RemoteLayerTreeDrawingAreaProxy::commitLayerTree):
- UIProcess/RemoteLayerTree/RemoteScrollingCoordinatorProxy.cpp:
(WebKit::RemoteScrollingCoordinatorProxy::commitScrollingTreeState):
(WebKit::RemoteScrollingCoordinatorProxy::scrollingTreeNodeRequestsScroll):
- UIProcess/RemoteLayerTree/RemoteScrollingCoordinatorProxy.h:
- UIProcess/RemoteLayerTree/RemoteScrollingTree.cpp:
(WebKit::RemoteScrollingTree::scrollingTreeNodeRequestsScroll):
- UIProcess/RemoteLayerTree/ios/ScrollingTreeFrameScrollingNodeRemoteIOS.mm:
(WebKit::ScrollingTreeFrameScrollingNodeRemoteIOS::commitStateAfterChildren): The delegate's
commitStateAfterChildren() has to run first to update UIScrollView state before the programmatic scroll
is handled in the base class.
- UIProcess/RemoteLayerTree/ios/ScrollingTreeOverflowScrollingNodeIOS.h:
- UIProcess/RemoteLayerTree/ios/ScrollingTreeOverflowScrollingNodeIOS.mm:
(WebKit::ScrollingTreeOverflowScrollingNodeIOS::commitStateAfterChildren): The delegate's
commitStateAfterChildren() has to run first to update UIScrollView state before the programmatic scroll
is handled in the base class.
(WebKit::ScrollingTreeOverflowScrollingNodeIOS::startAnimatedScrollToPosition):
(WebKit::ScrollingTreeOverflowScrollingNodeIOS::stopAnimatedScroll):
- UIProcess/RemoteLayerTree/ios/ScrollingTreeScrollingNodeDelegateIOS.h:
(WebKit::ScrollingTreeScrollingNodeDelegateIOS::scrollLayer const): Deleted.
(WebKit::ScrollingTreeScrollingNodeDelegateIOS::activeTouchActions const): Deleted.
(WebKit::ScrollingTreeScrollingNodeDelegateIOS::clearActiveTouchActions): Deleted.
- UIProcess/RemoteLayerTree/ios/ScrollingTreeScrollingNodeDelegateIOS.mm:
(WebKit::ScrollingTreeScrollingNodeDelegateIOS::startAnimatedScrollToPosition):
(WebKit::ScrollingTreeScrollingNodeDelegateIOS::stopAnimatedScroll):
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::requestScroll):
- UIProcess/WebPageProxy.h:
- UIProcess/ios/PageClientImplIOS.h:
- UIProcess/ios/PageClientImplIOS.mm:
(WebKit::PageClientImpl::requestScroll):
- UIProcess/mac/PageClientImplMac.h:
- UIProcess/mac/PageClientImplMac.mm:
(WebKit::PageClientImpl::requestScroll):
- UIProcess/playstation/PageClientImpl.cpp:
(WebKit::PageClientImpl::requestScroll):
- UIProcess/playstation/PageClientImpl.h:
- UIProcess/win/PageClientImpl.cpp:
(WebKit::PageClientImpl::requestScroll):
- UIProcess/win/PageClientImpl.h:
- 10:49 AM Changeset in webkit [283910] by
-
- 30 edits2 copies1 move20 adds3 deletes in branches/safari-612-branch/LayoutTests
Cherry-pick r281775. <rdar://83954681>
- 10:46 AM Changeset in webkit [283909] by
-
- 2 edits in branches/safari-612-branch/Tools
Cherry-pick r281709. <rdar://83953401>
- 10:41 AM Changeset in webkit [283908] by
-
- 28 edits4 adds in branches/safari-612-branch
Cherry-pick r281706. <rdar://83955085>
- 10:34 AM Changeset in webkit [283907] by
-
- 3 edits in trunk/Tools
Bring up an iOS GPU Process tester
https://bugs.webkit.org/show_bug.cgi?id=231515
Reviewed by Jonathan Bedard.
- CISupport/build-webkit-org/config.json:
- CISupport/build-webkit-org/factories_unittest.py:
- 10:22 AM Changeset in webkit [283906] by
-
- 54 edits in trunk
Prepare to switch from WTF::Variant to std::variant
https://bugs.webkit.org/show_bug.cgi?id=231239
Patch by Alex Christensen <achristensen@webkit.org> on 2021-10-11
Reviewed by Chris Dumez.
Source/JavaScriptCore:
- dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::compileCallDOM):
- parser/Lexer.cpp:
(JSC::Lexer<T>::parseHex):
(JSC::Lexer<T>::parseBinary):
(JSC::Lexer<T>::parseOctal):
(JSC::Lexer<T>::parseDecimal):
- runtime/CachePayload.cpp:
(JSC::CachePayload::data const):
(JSC::CachePayload::size const):
- runtime/CacheUpdate.cpp:
(JSC::CacheUpdate::CacheUpdate):
Source/WebCore:
- Modules/cache/DOMCacheEngine.cpp:
(WebCore::DOMCacheEngine::isolatedResponseBody):
(WebCore::DOMCacheEngine::copyResponseBody):
- Modules/fetch/FetchBodyOwner.cpp:
(WebCore::FetchBodyOwner::loadingException const):
- Modules/indexeddb/IDBRequest.cpp:
(WebCore::IDBRequest::sourceObjectStoreIdentifier const):
- Modules/mediacontrols/MediaControlsHost.cpp:
(WebCore::MediaControlsHost::showMediaControlsContextMenu):
- Modules/mediastream/RTCPeerConnection.cpp:
(WebCore::RTCPeerConnection::addIceCandidate):
- Modules/mediastream/RTCRtpTransform.cpp:
(WebCore::RTCRtpTransform::isAttached const):
(WebCore::operator==):
- Modules/mediastream/libwebrtc/LibWebRTCRtpSenderBackend.cpp:
(WebCore::LibWebRTCRtpSenderBackend::videoSource):
(WebCore::LibWebRTCRtpSenderBackend::hasSource const):
(WebCore::operator==): Deleted.
- Modules/webxr/WebXRFrame.cpp:
(WebCore::WebXRFrame::getViewerPose):
- Modules/webxr/WebXRWebGLLayer.cpp:
(WebCore::WebXRWebGLLayer::canvas const):
- accessibility/isolatedtree/AXIsolatedObject.cpp:
(WebCore::AXIsolatedObject::intPointAttributeValue const):
(WebCore::AXIsolatedObject::objectAttributeValue const):
(WebCore::AXIsolatedObject::rectAttributeValue const):
(WebCore::AXIsolatedObject::vectorAttributeValue const):
(WebCore::AXIsolatedObject::optionSetAttributeValue const):
(WebCore::AXIsolatedObject::pairAttributeValue const):
(WebCore::AXIsolatedObject::uint64AttributeValue const):
(WebCore::AXIsolatedObject::urlAttributeValue const):
(WebCore::AXIsolatedObject::pathAttributeValue const):
(WebCore::AXIsolatedObject::colorAttributeValue const):
(WebCore::AXIsolatedObject::floatAttributeValue const):
(WebCore::AXIsolatedObject::doubleAttributeValue const):
(WebCore::AXIsolatedObject::unsignedAttributeValue const):
- bindings/IDLTypes.h:
- bindings/js/JSDOMConvertWebGL.cpp:
(WebCore::convertToJSValue):
- bindings/js/JSPaymentMethodChangeEventCustom.cpp:
(WebCore::JSPaymentMethodChangeEvent::methodDetails const):
- bindings/js/JSValueInWrappedObject.h:
(WebCore::JSValueInWrappedObject::operator JSC::JSValue const):
- css/parser/CSSPropertyParser.cpp:
(WebCore::consumeFontWeight):
- dom/MessageEvent.cpp:
(WebCore::MessageEvent::memoryCost const):
- editing/Editor.cpp:
(WebCore::Editor::advanceToNextMisspelling):
- editing/TextManipulationController.cpp:
(WebCore::TextManipulationController::ExclusionRule::match const):
- html/URLSearchParams.cpp:
(WebCore::URLSearchParams::create):
- inspector/InspectorCanvas.cpp:
(WebCore::InspectorCanvas::canvasContext const):
(WebCore::InspectorCanvas::canvasElement const):
(WebCore::InspectorCanvas::scriptExecutionContext const):
(WebCore::InspectorCanvas::buildObjectForCanvas):
(WebCore::InspectorCanvas::indexForData):
- inspector/InspectorShaderProgram.cpp:
(WebCore::InspectorShaderProgram::program const):
- platform/SharedBuffer.cpp:
(WebCore::SharedBuffer::DataSegment::data const):
(WebCore::SharedBuffer::DataSegment::size const):
- platform/cf/SharedBufferCF.cpp:
(WebCore::SharedBuffer::createCFData const):
(WebCore::SharedBuffer::hintMemoryNotNeededSoon const):
- platform/generic/KeyedDecoderGeneric.cpp:
(WebCore::KeyedDecoderGeneric::Dictionary::add):
(WebCore::KeyedDecoderGeneric::getPointerFromDictionaryStack):
- platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
(WebCore::MediaPlayerPrivateGStreamer::notifyPlayerOfTrack):
- platform/graphics/texmap/TextureMapperPlatformLayerBuffer.cpp:
(WebCore::TextureMapperPlatformLayerBuffer::clone):
- platform/mock/MockMediaDevice.h:
(WebCore::MockMediaDevice::encode const):
- platform/network/FormData.cpp:
(WebCore::FormData::imageOrMediaFilesCount const):
(WebCore::FormDataElement::lengthInBytes const):
(WebCore::FormDataElement::isolatedCopy const):
(WebCore::FormData::appendData):
(WebCore::FormData::flatten const):
(WebCore::FormData::prepareForUpload):
(WebCore::FormData::asBlobURL const):
- platform/network/cf/FormDataStreamCFNet.cpp:
(WebCore::advanceCurrentStream):
(WebCore::setHTTPBody):
- platform/network/curl/CurlContext.cpp:
(WebCore::CurlHandle::enableSSLForHost):
- platform/network/curl/CurlFormDataStream.cpp:
(WebCore::CurlFormDataStream::read):
- platform/network/curl/CurlSSLVerifier.cpp:
(WebCore::CurlSSLVerifier::CurlSSLVerifier):
- platform/network/soup/ResourceRequestSoup.cpp:
(WebCore::ResourceRequest::updateSoupMessageBody const):
- style/StyleResolveForFontRaw.cpp:
(WebCore::Style::resolveForFontRaw):
Source/WebKit:
- NetworkProcess/NetworkConnectionToWebProcess.cpp:
(WebKit::NetworkConnectionToWebProcess::resolveBlobReferences):
- NetworkProcess/NetworkResourceLoadParameters.cpp:
(WebKit::NetworkResourceLoadParameters::encode const):
- Platform/IPC/FormDataReference.h:
(IPC::FormDataReference::encode const):
- Shared/mac/MediaFormatReader/MediaSampleCursor.cpp:
(WebKit::MediaSampleCursor::locateIterator const):
- UIProcess/API/APIWebAuthenticationPanel.h:
- UIProcess/Automation/SimulatedInputDispatcher.h:
- UIProcess/Cocoa/WKSafeBrowsingWarning.h:
Source/WTF:
This is the pieces of bug 231086 that can be done without changing behavior.
- It makes WTF::get_if look more like std::get_if by taking a pointer to a variant instead of a reference.
- std::visit is pickier than WTF::visit. The former allows taking lambdas with different return types as long
as the return types can be converted to the overall desired return type. std::visit has a static_assert that the
return types of all the lambdas are all exactly the same type, so I explicitly declare the return type of many lambdas.
- It also resolves some types that will become ambiguous by using WTF::in_place,
which will become wrapped by std::in_place_type then removed.
- It adds a few explicit WTF:: and #include <wtf/Variant.h> that will be needed after removing Variant from Forward.h.
- It removes the fast malloc check in the one place a Variant is dynamically allocated in KeyedDecoderGeneric.cpp
(which is for non-cocoa platforms) because std::variant isn't fast allocated.
- wtf/LikelyDenseUnsignedIntegerSet.h:
(WTF::LikelyDenseUnsignedIntegerSet::iterator::operator* const):
- wtf/Variant.h:
(WTF::get_if):
Tools:
- TestWebKitAPI/Tests/WTF/Hasher.cpp:
(TestWebKitAPI::add):
- TestWebKitAPI/Tests/WTF/Variant.cpp:
(TestWebKitAPI::TEST):
- 10:19 AM Changeset in webkit [283905] by
-
- 38 edits2 adds in branches/safari-612-branch
Cherry-pick r281516. <rdar://83956860>
- 10:00 AM Changeset in webkit [283904] by
-
- 2 edits in trunk/Tools
[build.webkit.org] Build iOS 15 as universal binary (Follow-up fix)
https://bugs.webkit.org/show_bug.cgi?id=231389
<rdar://problem/83997697>
Reviewed by Ryan Haddad.
- CISupport/build-webkit-org/config.json: Use universal iOS 15 Simulator Release build.
- 9:58 AM Changeset in webkit [283903] by
-
- 28 edits1 copy in trunk/Source/JavaScriptCore
SourceID should have a type name and only be 32-bits
https://bugs.webkit.org/show_bug.cgi?id=231436
Reviewed by Filip Pizlo.
This patch gives SourceID a proper type name and shrinks it to
32-bits on 64-bit systems. Shrinking the size makes room on
SourceProvider for metadata in a future patch I'm working on.
It's also pretty unlikely that any system has more than ~4 billion
script tags, evals, wasm modules so shinking the size is unlikely
to cause any debugger/profiling issues.
- CMakeLists.txt:
- JavaScriptCore.xcodeproj/project.pbxproj:
- bytecode/TypeLocation.h:
- debugger/Debugger.cpp:
(JSC::Debugger::toggleBreakpoint):
(JSC::Debugger::pauseIfNeeded):
- debugger/DebuggerLocation.h:
(JSC::DebuggerLocation::DebuggerLocation):
- debugger/DebuggerPrimitives.h:
- inspector/JavaScriptCallFrame.h:
(Inspector::JavaScriptCallFrame::sourceID const):
- inspector/ScriptCallStackFactory.cpp:
(Inspector::CreateScriptCallStackFunctor::operator() const):
(Inspector::createScriptCallStackFromException):
- interpreter/StackVisitor.cpp:
(JSC::StackVisitor::Frame::sourceID):
- interpreter/StackVisitor.h:
- parser/Nodes.h:
(JSC::ScopeNode::sourceID const):
- parser/SourceCode.h:
(JSC::SourceCode::SourceCode):
(JSC::SourceCode::firstLine const):
(JSC::SourceCode::startColumn const):
(JSC::SourceCode::providerID const):
(JSC::SourceCode::provider const):
(JSC::SourceCode::operator== const):
(JSC::SourceCode::operator!= const):
(JSC::makeSource):
(JSC::SourceCode::subExpression const):
- parser/SourceProvider.cpp:
(JSC::SourceProvider::getID):
- parser/SourceProvider.h:
(JSC::SourceProvider::asID):
- runtime/ControlFlowProfiler.cpp:
(JSC::ControlFlowProfiler::getBasicBlockLocation):
(JSC::ControlFlowProfiler::getBasicBlocksForSourceID const):
(JSC::ControlFlowProfiler::hasBasicBlockAtTextOffsetBeenExecuted):
(JSC::ControlFlowProfiler::basicBlockExecutionCountAtTextOffset):
- runtime/ControlFlowProfiler.h:
- runtime/FunctionHasExecutedCache.cpp:
(JSC::FunctionHasExecutedCache::hasExecutedAtOffset):
(JSC::FunctionHasExecutedCache::insertUnexecutedRange):
(JSC::FunctionHasExecutedCache::removeUnexecutedRange):
(JSC::FunctionHasExecutedCache::getFunctionRanges):
- runtime/FunctionHasExecutedCache.h:
- runtime/SamplingProfiler.cpp:
(JSC::SamplingProfiler::StackFrame::sourceID):
- runtime/SamplingProfiler.h:
- runtime/ScriptExecutable.h:
(JSC::ScriptExecutable::sourceID const):
- runtime/StackFrame.cpp:
(JSC::StackFrame::sourceID const):
- runtime/StackFrame.h:
- runtime/TypeLocationCache.cpp:
(JSC::TypeLocationCache::getTypeLocation):
- runtime/TypeLocationCache.h:
- runtime/TypeProfiler.cpp:
(JSC::TypeProfiler::typeInformationForExpressionAtOffset):
(JSC::TypeProfiler::findLocation):
- runtime/TypeProfiler.h:
(JSC::QueryKey::QueryKey):
(JSC::QueryKey::isHashTableDeletedValue const):
- 9:54 AM Changeset in webkit [283902] by
-
- 2 edits in trunk/Source/WebCore
[LFC][Integration] Use inline box isFirstBox/isLastBox bits in iterator
https://bugs.webkit.org/show_bug.cgi?id=231513
Reviewed by Alan Bujtas.
- layout/integration/InlineIteratorBoxModernPath.h:
(WebCore::InlineIterator::BoxModernPath::traverseNextInlineBox):
(WebCore::InlineIterator::BoxModernPath::traversePreviousInlineBox):
Avoid always traversing to the end.
- 9:36 AM Changeset in webkit [283901] by
-
- 1 copy in tags/Safari-613.1.4.1
Tag Safari-613.1.4.1.
- 9:18 AM Changeset in webkit [283900] by
-
- 2 edits in trunk/Source/WebCore
Export some display list item methods for use in WebKit2
https://bugs.webkit.org/show_bug.cgi?id=231483
Reviewed by Anders Carlsson.
Add WEBCORE_EXPORT to various
applymethods on display list items, which will allow RemoteDisplayListRecorder
(in the GPU process, and implemented in WebKit2) to play back incoming display list items.
- platform/graphics/displaylists/DisplayListItems.h:
- 9:13 AM Changeset in webkit [283899] by
-
- 5 edits in trunk/Source/WebInspectorUI
Web Inspector: Move CSS longhand and shorthand mapping away from WI.CSSCompletions
https://bugs.webkit.org/show_bug.cgi?id=231432
<rdar://problem/84029471>
Reviewed by Devin Rousso.
WI.CSSCompletionshas scope creep. Beyond handling filtering for CSS completions,
it holds logic to deal with CSS property name longhand-to-shorthand mapping.
But it already relies heavily on metadata about properties set on
WI.CSSKeywordCompletions
populated as a result of the one-time initialization fromWI.CSSCompletions.initializeCSSCompletions(target)>
WI.CSSKeywordCompletions.addCustomCompletions(properties).
This change moves the longhand-to-shorthand mapping from
WI.CSSCompletionsto
WI.CSSKeywordCompletions.ShorthandNamesForLongHandPropertyand updates relevant consumers.
The aim is to gradually remove all specialized logic for property names from
WI.CSSCompletions.
- UserInterface/Models/CSSCompletions.js:
(WI.CSSCompletions):
(WI.CSSCompletions.prototype.isShorthandPropertyName): Deleted.
(WI.CSSCompletions.prototype.shorthandsForLonghand): Deleted.
- UserInterface/Models/CSSKeywordCompletions.js:
- UserInterface/Models/CSSProperty.js:
(WI.CSSProperty):
- UserInterface/Models/DOMNodeStyles.js:
(WI.DOMNodeStyles.prototype._associateRelatedProperties):
- 9:12 AM Changeset in webkit [283898] by
-
- 8 edits in branches/safari-613.1.4-branch/Source
Versioning.
WebKit-7613.1.4.1
- 9:04 AM Changeset in webkit [283897] by
-
- 5 edits1 add in trunk/Source/WebKit
Add AdAttributionDaemon sandbox on iOS
https://bugs.webkit.org/show_bug.cgi?id=231308
Patch by Alex Christensen <achristensen@webkit.org> on 2021-10-11
Reviewed by Brent Fulgham.
This makes it so that AdAttributionDaemon has enough permission to access the network and its storage file and not much else.
- Configurations/AdAttributionDaemon.xcconfig:
- Resources/SandboxProfiles/ios/com.apple.WebKit.AdAttributionDaemon.sb: Added.
- Scripts/process-entitlements.sh:
- Shared/EntryPointUtilities/Cocoa/Daemon/PCMDaemonEntryPoint.mm:
(WebKit::enterSandbox):
- WebKit.xcodeproj/project.pbxproj:
- 8:55 AM Changeset in webkit [283896] by
-
- 4 edits in trunk/Source/WebCore
LineLayoutPath::LineBoxesPath name is outdated
https://bugs.webkit.org/show_bug.cgi?id=231494
Reviewed by Antti Koivisto.
- layout/integration/LayoutIntegrationCoverage.cpp:
(WebCore::LayoutIntegration::printModernLineLayoutCoverage):
- rendering/RenderBlockFlow.cpp:
(WebCore::RenderBlockFlow::layoutInlineChildren):
(WebCore::RenderBlockFlow::invalidateLineLayoutPath):
- rendering/RenderBlockFlow.h:
- 8:43 AM Changeset in webkit [283895] by
-
- 5 edits1 add7 deletes in trunk
Remove inline box decoration painting quirk
https://bugs.webkit.org/show_bug.cgi?id=231510
Reviewed by Alan Bujtas.
Source/WebCore:
This quirk implemented in InlineBoxPainter::constrainToLineTopAndBottomIfNeeded constraints
painting of inline box decorations under certain narrow conditions in quirks mode.
It has been removed from Chrome so removing it is likely web compatible.
The quirk originated from https://trac.webkit.org/changeset/53200/webkit
- rendering/InlineBoxPainter.cpp:
(WebCore::InlineBoxPainter::paintMask):
(WebCore::InlineBoxPainter::paintDecorations):
(WebCore::InlineBoxPainter::paintFillLayer):
(WebCore::InlineBoxPainter::constrainToLineTopAndBottomIfNeeded const): Deleted.
- rendering/InlineBoxPainter.h:
LayoutTests:
- fast/backgrounds/quirks-mode-line-box-backgrounds-expected-mismatch.html: Added.
- fast/backgrounds/quirks-mode-line-box-backgrounds.html:
- platform/glib/fast/backgrounds/quirks-mode-line-box-backgrounds-expected.txt: Removed.
- platform/gtk/fast/backgrounds/quirks-mode-line-box-backgrounds-expected.png: Removed.
- platform/ios/fast/backgrounds/quirks-mode-line-box-backgrounds-expected.txt: Removed.
- platform/mac/fast/backgrounds/quirks-mode-line-box-backgrounds-expected.png: Removed.
- platform/mac/fast/backgrounds/quirks-mode-line-box-backgrounds-expected.txt: Removed.
- platform/win/fast/backgrounds/quirks-mode-line-box-backgrounds-expected.txt: Removed.
- platform/wincairo/fast/backgrounds/quirks-mode-line-box-backgrounds-expected.txt: Removed.
- 8:30 AM Changeset in webkit [283894] by
-
- 2 edits in trunk
Add my github username to contributors.json
Unreviewed.
- metadata/contributors.json:
- 8:12 AM Changeset in webkit [283893] by
-
- 15 edits in trunk/Source/WebCore
[LFC][Integration] paintFillLayerExtended should use inline iterator
https://bugs.webkit.org/show_bug.cgi?id=231502
Reviewed by Alan Bujtas.
Prepare for LFC inline box painting.
- layout/integration/InlineIteratorInlineBox.cpp:
(WebCore::InlineIterator::InlineBox::hasClosedLeftAndRightEdge const):
Add a shared helper.
The answer is computed here though this information is needed for layout too.
We should be able to consult layout to get it.
- layout/integration/InlineIteratorInlineBox.h:
- rendering/InlineBoxPainter.cpp:
(WebCore::clipRectForNinePieceImageStrip):
(WebCore::InlineBoxPainter::paintDecorations):
(WebCore::InlineBoxPainter::paintFillLayer):
(WebCore::InlineBoxPainter::paintBoxShadow):
- rendering/LegacyInlineBox.h:
- rendering/LegacyInlineFlowBox.cpp:
(WebCore::LegacyInlineFlowBox::boxShadowCanBeAppliedToBackground const): Deleted.
Move to the only call site as a lambda.
- rendering/LegacyInlineFlowBox.h:
- rendering/RenderBox.cpp:
(WebCore::RenderBox::paintBoxDecorations):
(WebCore::RenderBox::paintBackground):
(WebCore::RenderBox::paintFillLayer):
- rendering/RenderBoxModelObject.cpp:
(WebCore::RenderBoxModelObject::getBackgroundRoundedRect const):
(WebCore::RenderBoxModelObject::backgroundRoundedRectAdjustedForBleedAvoidance const):
(WebCore::RenderBoxModelObject::paintMaskForTextFillBox):
(WebCore::RenderBoxModelObject::paintFillLayerExtended):
(WebCore::RenderBoxModelObject::boxShadowShouldBeAppliedToBackground const):
- rendering/RenderBoxModelObject.h:
- rendering/RenderImage.cpp:
(WebCore::RenderImage::boxShadowShouldBeAppliedToBackground const):
- rendering/RenderImage.h:
- rendering/RenderTable.cpp:
(WebCore::RenderTable::paintBoxDecorations):
- rendering/RenderTableCell.cpp:
(WebCore::RenderTableCell::boxShadowShouldBeAppliedToBackground const):
- rendering/RenderTableCell.h:
- 6:50 AM Changeset in webkit [283892] by
-
- 7 edits7 copies8 adds in trunk/LayoutTests
Import new top layer WPTs
https://bugs.webkit.org/show_bug.cgi?id=229318
Reviewed by Youenn Fablet.
Sync html/semantics/interactive-elements/the-dialog-element/ WPTs from https://github.com/web-platform-tests/wpt/commit/023d5aa5d338569ae12988190705e1d570930d61
LayoutTests/imported/w3c:
- web-platform-tests/html/semantics/interactive-elements/the-dialog-element/resources/green-dialog-and-backdrop.html: Added.
- web-platform-tests/html/semantics/interactive-elements/the-dialog-element/resources/w3c-import.log:
- web-platform-tests/html/semantics/interactive-elements/the-dialog-element/top-layer-parent-clip-expected.html: Added.
- web-platform-tests/html/semantics/interactive-elements/the-dialog-element/top-layer-parent-clip.html: Copied from LayoutTests/imported/w3c/web-platform-tests/html/semantics/interactive-elements/the-dialog-element/resources/green-dialog-and-backdrop.html.
- web-platform-tests/html/semantics/interactive-elements/the-dialog-element/top-layer-parent-filter-expected.html: Added.
- web-platform-tests/html/semantics/interactive-elements/the-dialog-element/top-layer-parent-filter.html: Copied from LayoutTests/imported/w3c/web-platform-tests/html/semantics/interactive-elements/the-dialog-element/resources/green-dialog-and-backdrop.html.
- web-platform-tests/html/semantics/interactive-elements/the-dialog-element/top-layer-parent-mask-expected.html: Added.
- web-platform-tests/html/semantics/interactive-elements/the-dialog-element/top-layer-parent-mask.html: Copied from LayoutTests/imported/w3c/web-platform-tests/html/semantics/interactive-elements/the-dialog-element/resources/green-dialog-and-backdrop.html.
- web-platform-tests/html/semantics/interactive-elements/the-dialog-element/top-layer-parent-opacity-expected.html:
- web-platform-tests/html/semantics/interactive-elements/the-dialog-element/top-layer-parent-opacity.html:
- web-platform-tests/html/semantics/interactive-elements/the-dialog-element/top-layer-parent-overflow-clip-expected.html: Added.
- web-platform-tests/html/semantics/interactive-elements/the-dialog-element/top-layer-parent-overflow-clip.html: Copied from LayoutTests/imported/w3c/web-platform-tests/html/semantics/interactive-elements/the-dialog-element/resources/green-dialog-and-backdrop.html.
- web-platform-tests/html/semantics/interactive-elements/the-dialog-element/top-layer-parent-overflow-hidden-expected.html: Added.
- web-platform-tests/html/semantics/interactive-elements/the-dialog-element/top-layer-parent-overflow-hidden.html: Copied from LayoutTests/imported/w3c/web-platform-tests/html/semantics/interactive-elements/the-dialog-element/resources/green-dialog-and-backdrop.html.
- web-platform-tests/html/semantics/interactive-elements/the-dialog-element/top-layer-parent-overflow-scroll-expected.html: Added.
- web-platform-tests/html/semantics/interactive-elements/the-dialog-element/top-layer-parent-overflow-scroll.html: Copied from LayoutTests/imported/w3c/web-platform-tests/html/semantics/interactive-elements/the-dialog-element/resources/green-dialog-and-backdrop.html.
- web-platform-tests/html/semantics/interactive-elements/the-dialog-element/top-layer-parent-transform-expected.html: Added.
- web-platform-tests/html/semantics/interactive-elements/the-dialog-element/top-layer-parent-transform.html: Copied from LayoutTests/imported/w3c/web-platform-tests/html/semantics/interactive-elements/the-dialog-element/resources/green-dialog-and-backdrop.html.
- web-platform-tests/html/semantics/interactive-elements/the-dialog-element/w3c-import.log:
LayoutTests:
- 6:48 AM Changeset in webkit [283891] by
-
- 2 edits in trunk/Source/WebKit
[iOS] Sort syscall filters in the WebContent process' sandbox
https://bugs.webkit.org/show_bug.cgi?id=231509
<rdar://problem/84095366>
Unreviewed, this patch only sorts existing message filters.
Syscall filters should be sorted in the WebContent process' sandbox. This patch does not add or
remove items from the filters, so there should be no change in behavior.
- Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb.in:
- 4:50 AM Changeset in webkit [283890] by
-
- 3 edits in trunk/Source/WebKit
Block access in sandbox to capability which is allowed by default
https://bugs.webkit.org/show_bug.cgi?id=231079
<rdar://66586853>
Reviewed by Brent Fulgham.
Some capabilities are allowed by default, and needs to be explicitly denied in the sandbox.
- Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb.in:
- WebProcess/com.apple.WebProcess.sb.in:
- 4:05 AM Changeset in webkit [283889] by
-
- 2 edits in trunk
Add my GitHub username to contributors.json.
https://bugs.webkit.org/show_bug.cgi?id=231507
Unreviewed.
- metadata/contributors.json:
- 3:47 AM Changeset in webkit [283888] by
-
- 2 edits in trunk
Add my github username to contributors.json
Unreviewed.
- metadata/contributors.json:
- 2:10 AM Changeset in webkit [283887] by
-
- 6 edits in trunk/Source/JavaScriptCore
[JSC][32bit] Fix profiling in baseline
https://bugs.webkit.org/show_bug.cgi?id=231368
Patch by Geza Lore <Geza Lore> on 2021-10-11
Reviewed by Yusuke Suzuki.
Fixes profiling omissions introduced with the recent 32-bit baseline
build fixes, and also brings the rest of profile updates in-line with
the unlinked baseline on 64-bit platforms.
- jit/JIT.h:
- jit/JITCall32_64.cpp:
(JSC::JIT::emitPutCallResult):
(JSC::JIT::compileSetupFrame):
(JSC::JIT::compileOpCall):
(JSC::JIT::emit_op_iterator_open):
(JSC::JIT::emitSlow_op_iterator_open):
(JSC::JIT::emit_op_iterator_next):
(JSC::JIT::emitSlow_op_iterator_next):
- jit/JITInlines.h:
(JSC::JIT::emitValueProfilingSiteIfProfiledOpcode):
(JSC::JIT::emitValueProfilingSite):
(JSC::JIT::emitArrayProfilingSiteWithCell):
- jit/JITOpcodes32_64.cpp:
(JSC::JIT::emit_op_jneq_ptr):
(JSC::JIT::emit_op_to_number):
(JSC::JIT::emit_op_to_numeric):
(JSC::JIT::emit_op_to_object):
(JSC::JIT::emit_op_catch):
- jit/JITPropertyAccess32_64.cpp:
(JSC::JIT::emit_op_get_by_val):
(JSC::JIT::emitSlow_op_get_by_val):
(JSC::JIT::emit_op_get_private_name):
(JSC::JIT::emitSlow_op_get_private_name):
(JSC::JIT::emit_op_put_by_val):
(JSC::JIT::emit_op_try_get_by_id):
(JSC::JIT::emit_op_get_by_id_direct):
(JSC::JIT::emitSlow_op_get_by_id_direct):
(JSC::JIT::emit_op_get_by_id):
(JSC::JIT::emitSlow_op_get_by_id):
(JSC::JIT::emit_op_get_by_id_with_this):
(JSC::JIT::emitSlow_op_get_by_id_with_this):
(JSC::JIT::emit_op_in_by_val):
(JSC::JIT::emit_op_get_from_scope):
(JSC::JIT::emitSlow_op_get_from_scope):
(JSC::JIT::emit_op_get_from_arguments):
(JSC::JIT::emit_op_get_internal_field):
- 1:14 AM Changeset in webkit [283886] by
-
- 2 edits in trunk/Source/WebKit
[iOS] Add message filter in the WebContent process' sandbox
https://bugs.webkit.org/show_bug.cgi?id=231046
<rdar://problem/83743661>
Reviewed by Brent Fulgham.
Add IOKit message filter in the WebContent process' sandbox on iOS.
- Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb.in:
- 12:34 AM Changeset in webkit [283885] by
-
- 2 edits in trunk
Add GitHub username for Diego Pino Garcia
Unreviewed.
- metadata/contributors.json:
Oct 10, 2021:
- 11:59 PM Changeset in webkit [283884] by
-
- 2 edits in trunk
Add GitHub username for Pablo Saavedra
Unreviewed.
- metadata/contributors.json:
- 11:38 PM Changeset in webkit [283883] by
-
- 2 edits in trunk
Unreviewed. Add GitHub username for Xabier Rodriguez Calvar
- metadata/contributors.json:
- 9:31 PM Changeset in webkit [283882] by
-
- 2 edits in trunk
Add GitHub account to contributors.json
https://bugs.webkit.org/show_bug.cgi?id=231497
Unreviewed.
- metadata/contributors.json:
- 5:31 PM Changeset in webkit [283881] by
-
- 70 edits1 copy8 adds in trunk
Add support for iterating FileSystemDirectoryHandle
https://bugs.webkit.org/show_bug.cgi?id=231142
<rdar://problem/83848092>
Reviewed by Youenn Fablet and Yusuke Suzuki.
LayoutTests/imported/w3c:
Rebaselined existing tests as new interface is added and tests can proceed to next stage.
- web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-IndexedDB.https.any-expected.txt:
- web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-IndexedDB.https.any.worker-expected.txt:
- web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-isSameEntry.https.any-expected.txt:
- web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-isSameEntry.https.any.worker-expected.txt:
- web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-postMessage-BroadcastChannel.https.window-expected.txt:
- web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-postMessage-Error.https.window-expected.txt:
- web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-postMessage-MessagePort-frames.https.window-expected.txt:
- web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-postMessage-MessagePort-windows.https.window-expected.txt:
- web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-postMessage-MessagePort-workers.https.window-expected.txt:
- web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-postMessage-frames.https.window-expected.txt:
- web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-postMessage-windows.https.window-expected.txt:
- web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-postMessage-workers.https.window-expected.txt:
- web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-remove.https.any-expected.txt:
- web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-remove.https.any.worker-expected.txt:
- web-platform-tests/file-system-access/sandboxed_FileSystemDirectoryHandle-getDirectoryHandle.https.any-expected.txt:
- web-platform-tests/file-system-access/sandboxed_FileSystemDirectoryHandle-getDirectoryHandle.https.any.worker-expected.txt:
- web-platform-tests/file-system-access/sandboxed_FileSystemDirectoryHandle-getFileHandle.https.any-expected.txt:
- web-platform-tests/file-system-access/sandboxed_FileSystemDirectoryHandle-getFileHandle.https.any.worker-expected.txt:
- web-platform-tests/file-system-access/sandboxed_FileSystemDirectoryHandle-iteration.https.any-expected.txt:
- web-platform-tests/file-system-access/sandboxed_FileSystemDirectoryHandle-iteration.https.any.worker-expected.txt:
- web-platform-tests/file-system-access/sandboxed_FileSystemDirectoryHandle-removeEntry.https.any-expected.txt:
- web-platform-tests/file-system-access/sandboxed_FileSystemDirectoryHandle-removeEntry.https.any.worker-expected.txt:
- web-platform-tests/file-system-access/sandboxed_FileSystemDirectoryHandle-resolve.https.any-expected.txt:
- web-platform-tests/file-system-access/sandboxed_FileSystemDirectoryHandle-resolve.https.any.worker-expected.txt:
- web-platform-tests/file-system-access/sandboxed_FileSystemFileHandle-create-sync-access-handle-dedicated-worker.https.tentative.window-expected.txt:
- web-platform-tests/file-system-access/sandboxed_FileSystemFileHandle-getFile.https.any-expected.txt:
- web-platform-tests/file-system-access/sandboxed_FileSystemFileHandle-getFile.https.any.worker-expected.txt:
- web-platform-tests/file-system-access/sandboxed_FileSystemSyncAccessHandle-close.https.tentative.worker-expected.txt:
- web-platform-tests/file-system-access/sandboxed_FileSystemSyncAccessHandle-flush.https.tentative.worker-expected.txt:
- web-platform-tests/file-system-access/sandboxed_FileSystemSyncAccessHandle-getSize.https.tentative.worker-expected.txt:
- web-platform-tests/file-system-access/sandboxed_FileSystemSyncAccessHandle-read-write.https.tentative.worker-expected.txt:
- web-platform-tests/file-system-access/sandboxed_FileSystemSyncAccessHandle-truncate.https.tentative.worker-expected.txt:
- web-platform-tests/file-system-access/sandboxed_FileSystemWritableFileStream-piped.https.any-expected.txt:
- web-platform-tests/file-system-access/sandboxed_FileSystemWritableFileStream-piped.https.any.worker-expected.txt:
- web-platform-tests/file-system-access/sandboxed_FileSystemWritableFileStream-write.https.any-expected.txt:
- web-platform-tests/file-system-access/sandboxed_FileSystemWritableFileStream-write.https.any.worker-expected.txt:
- web-platform-tests/file-system-access/sandboxed_FileSystemWritableFileStream.https.any-expected.txt:
- web-platform-tests/file-system-access/sandboxed_FileSystemWritableFileStream.https.any.worker-expected.txt:
Source/JavaScriptCore:
- CMakeLists.txt:
- runtime/JSBoundFunction.h:
- runtime/JSGlobalObject.h:
- runtime/JSGlobalObjectInlines.h:
(JSC::JSGlobalObject::performPromiseThenFunction const):
- runtime/JSPromise.cpp:
(JSC::JSPromise::createNewPromiseCapability):
(JSC::JSPromise::convertCapabilityToDeferredData):
(JSC::JSPromise::createDeferredData):
(JSC::JSPromise::performPromiseThen):
- runtime/JSPromise.h:
Source/WebCore:
Introduce a new template class JSDOMAsyncIteratorBase to provide support for AsyncIterable in IDL.
Spec: https://webidl.spec.whatwg.org/#es-asynchronous-iterator-prototype-object.
Since bindings code generator does not support creating specialized class for interface yet (we will do it in
webkit.org/b/231243), manually create a new specialized class JSFileSystemDirectoryHandleIterator
and implement keys(), values(), and entries() of JSFileSystemDirectoryHandle as custom methods to return a
JSFileSystemDirectoryHandleIterator object.
Add support for async directory iteration.
Spec: https://wicg.github.io/file-system-access/#api-filesystemdirectoryhandle-asynciterable
Add a new class FileSystemDirectoryHandle::Iterator, which retrieves the keys (names of children handles) on
initialization. In next(), it takes out a key and request to get corresponding handle from backend. If the
request fails, for example because file is removed after iterator initialization, it repeats the steps above
until a valid handle is received or keys becomes empty.
Tests: storage/filesystemaccess/directory-handle-iteration-worker.html
storage/filesystemaccess/directory-handle-iteration.html
- Modules/filesystemaccess/FileSystemDirectoryHandle.cpp:
(WebCore::FileSystemDirectoryHandle::getHandleNames):
(WebCore::FileSystemDirectoryHandle::getHandle):
(WebCore::FileSystemDirectoryHandle::createIterator):
(WebCore::FileSystemDirectoryHandleIterator::create):
(WebCore::FileSystemDirectoryHandleIterator::next):
(WebCore::FileSystemDirectoryHandleIterator::advance):
- Modules/filesystemaccess/FileSystemDirectoryHandle.h:
- Modules/filesystemaccess/FileSystemDirectoryHandle.idl:
- Modules/filesystemaccess/FileSystemFileHandle.cpp:
(WebCore::FileSystemFileHandle::getFile):
- Modules/filesystemaccess/FileSystemStorageConnection.h:
- Modules/filesystemaccess/WorkerFileSystemStorageConnection.cpp:
(WebCore::WorkerFileSystemStorageConnection::getHandleNames):
(WebCore::WorkerFileSystemStorageConnection::didGetHandleNames):
(WebCore::WorkerFileSystemStorageConnection::getHandle):
(WebCore::WorkerFileSystemStorageConnection::didGetHandleWithType):
- Modules/filesystemaccess/WorkerFileSystemStorageConnection.h:
- Sources.txt:
- WebCore.xcodeproj/project.pbxproj:
- bindings/js/JSDOMAsyncIterator.h: Added.
(WebCore::JSDOMAsyncIteratorBase::createPrototype):
(WebCore::JSDOMAsyncIteratorBase::JSDOMAsyncIteratorBase):
(WebCore::jsPair):
(WebCore::iteratorCreate):
(WebCore::convertToJS):
(WebCore::JSIterator>::destroy):
(WebCore::JSIterator>::next):
(WebCore::JSIterator>::runNextSteps):
(WebCore::JSIterator>::getNextIterationResult):
(WebCore::JSIterator>::settle):
(WebCore::JSIterator>::fulfill):
(WebCore::JSIterator>::reject):
(WebCore::JSIterator>::finishCreation):
- bindings/js/JSFileSystemDirectoryHandleCustom.cpp: Added.
(WebCore::JSFileSystemDirectoryHandle::entries):
(WebCore::JSFileSystemDirectoryHandle::keys):
(WebCore::JSFileSystemDirectoryHandle::values):
- bindings/js/JSFileSystemDirectoryHandleIterator.cpp: Added.
(WebCore::JSFileSystemDirectoryHandleIterator::subspaceForImpl):
(WebCore::jsFileSystemDirectoryHandleIterator_onPromiseSettledBody):
(WebCore::JSC_DEFINE_HOST_FUNCTION):
(WebCore::JSFileSystemDirectoryHandleIterator::createOnSettledFunction):
(WebCore::jsFileSystemDirectoryHandleIterator_onPromiseFulfilledBody):
(WebCore::JSFileSystemDirectoryHandleIterator::createOnFulfilledFunction):
(WebCore::jsFileSystemDirectoryHandleIterator_onPromiseRejectedBody):
(WebCore::JSFileSystemDirectoryHandleIterator::createOnRejectedFunction):
- bindings/js/JSFileSystemDirectoryHandleIterator.h: Added.
- bindings/js/WebCoreBuiltinNames.h:
- bindings/js/WebCoreJSClientData.h:
(WebCore::JSVMClientData::fileSystemDirectoryHandleIteratorSpace):
(WebCore::JSVMClientData::setFileSystemDirectoryHandleIteratorSpace):
Source/WebKit:
- NetworkProcess/storage/FileSystemStorageHandle.cpp:
(WebKit::FileSystemStorageHandle::FileSystemStorageHandle):
(WebKit::FileSystemStorageHandle::getHandleNames):
(WebKit::FileSystemStorageHandle::getHandle):
- NetworkProcess/storage/FileSystemStorageHandle.h:
(WebKit::FileSystemStorageHandle::type const):
- NetworkProcess/storage/FileSystemStorageManager.cpp:
(WebKit::FileSystemStorageManager::createHandle):
(WebKit::FileSystemStorageManager::getType):
- NetworkProcess/storage/FileSystemStorageManager.h:
- NetworkProcess/storage/NetworkStorageManager.cpp:
(WebKit::NetworkStorageManager::getHandleNames):
(WebKit::NetworkStorageManager::getHandle):
- NetworkProcess/storage/NetworkStorageManager.h:
- NetworkProcess/storage/NetworkStorageManager.messages.in:
- WebProcess/WebCoreSupport/WebFileSystemStorageConnection.cpp:
(WebKit::WebFileSystemStorageConnection::getFileHandle):
(WebKit::WebFileSystemStorageConnection::getDirectoryHandle):
(WebKit::WebFileSystemStorageConnection::getHandleNames):
(WebKit::WebFileSystemStorageConnection::getHandle):
- WebProcess/WebCoreSupport/WebFileSystemStorageConnection.h:
LayoutTests:
- platform/wk2/TestExpectations: mark some tests as flaky failure on release builds. They were flaky at import,
but they didn't get to run due to missing directory iteration support.
- storage/filesystemaccess/directory-handle-iteration-expected.txt: Added.
- storage/filesystemaccess/directory-handle-iteration-worker-expected.txt: Added.
- storage/filesystemaccess/directory-handle-iteration-worker.html: Added.
- storage/filesystemaccess/directory-handle-iteration.html: Added.
- storage/filesystemaccess/resources/directory-handle-iteration.js: Added.
(testPrototype):
(async testNext):
(async test):
- 4:05 PM Changeset in webkit [283880] by
-
- 10 edits in trunk/Source/WebCore
[WebXR] Replace the session reference in WebXRSpace subclasses with weak pointers
https://bugs.webkit.org/show_bug.cgi?id=231482
Reviewed by Sam Weinig.
WebXRSpace had a pure virtual session() accessor that returned a
reference to a WebXRSession. This made subclasses hold strong
references to the WebXRSession, and is problematic for WebXRSpace
subclasses that are (indirectly) owned by the WebXRSession.
Change the accessor to return a pointer, and all the subclasses
to use weak pointers instead.
- Modules/webxr/WebXRBoundedReferenceSpace.h: Use a WeakPtr and change
the constructor parameter to take a reference instead of a Ref<>.
- Modules/webxr/WebXRBoundedReferenceSpace.cpp:
(WebCore::WebXRBoundedReferenceSpace::create):
(WebCore::WebXRBoundedReferenceSpace::WebXRBoundedReferenceSpace):
(WebCore::WebXRBoundedReferenceSpace::getOffsetReferenceSpace):
(WebCore::WebXRBoundedReferenceSpace::updateIfNeeded): Add early return.
- Modules/webxr/WebXRFrame.cpp:
(WebCore::WebXRFrame::populatePose): Compare pointers directly.
- Modules/webxr/WebXRInputSpace.h: Use WeakPtr.
- Modules/webxr/WebXRInputSpace.cpp:
(WebCore::WebXRInputSpace::WebXRInputSpace):
(WebCore::WebXRInputSpace::nativeOrigin const): Change this to return an
optional so we can detect errors and raise Exceptions.
- Modules/webxr/WebXRReferenceSpace.h: Use a WeakPtr and change
the constructor parameter to take a reference instead of a Ref<>.
- Modules/webxr/WebXRReferenceSpace.cpp:
(WebCore::WebXRReferenceSpace::create):
(WebCore::WebXRReferenceSpace::WebXRReferenceSpace):
(WebCore::WebXRReferenceSpace::nativeOrigin const): Return an optional.
(WebCore::WebXRReferenceSpace::getOffsetReferenceSpace):
(WebCore::WebXRReferenceSpace::floorOriginTransform const): Return an optional.
- Modules/webxr/WebXRSpace.cpp: Return a * instead of a &.
(WebCore::WebXRSpace::isPositionEmulated const):
(WebCore::WebXRViewerSpace::WebXRViewerSpace):
(WebCore::WebXRViewerSpace::nativeOrigin const):
- Modules/webxr/WebXRSpace.h:
- 3:24 PM Changeset in webkit [283879] by
-
- 5 edits in trunk
[IFC][Integration] Do not bail out on missing primary font
https://bugs.webkit.org/show_bug.cgi?id=231488
Reviewed by Antti Koivisto.
LayoutTests/imported/w3c:
- web-platform-tests/css/cssom-view/getBoundingClientRect-shy-expected.txt:
Source/WebCore:
IFC has non-primary font support now.
- layout/integration/LayoutIntegrationCoverage.cpp:
(WebCore::LayoutIntegration::printReason):
(WebCore::LayoutIntegration::canUseForFontAndText):
- layout/integration/LayoutIntegrationCoverage.h:
- 2:28 PM Changeset in webkit [283878] by
-
- 2 edits in trunk
[WPE] Reenable -fvisibility=hidden and -fvisibility-inlines-hidden
https://bugs.webkit.org/show_bug.cgi?id=222860
Patch by Michael Catanzaro <Michael Catanzaro> on 2021-10-10
Reviewed by Philippe Normand.
- Source/cmake/OptionsWPE.cmake:
- 1:42 PM Changeset in webkit [283877] by
-
- 2 edits in trunk
Unreviewed. Add GitHub username for Adrian Perez de Castro
While at it, run "validate-committer-lists --canonicalize".
- metadata/contributors.json:
- 10:36 AM Changeset in webkit [283876] by
-
- 12 edits2 moves1 add in trunk
[WPE] Expose WKTextCheckerSetContinuousSpellCheckingEnabled and use it from WKTR
https://bugs.webkit.org/show_bug.cgi?id=231446
Patch by Michael Catanzaro <Michael Catanzaro> on 2021-10-10
Reviewed by Philippe Normand.
Source/WebKit:
This is to avoid WKTR needing to poke WebKit internals to turn on spellchecking.
- PlatformGTK.cmake:
- PlatformWPE.cmake:
- SourcesGTK.txt:
- SourcesWPE.txt:
- UIProcess/API/C/glib/WKTextCheckerGLib.cpp: Renamed from Source/WebKit/UIProcess/API/C/gtk/WKTextCheckerGtk.cpp.
(WKTextCheckerSetClient):
(WKTextCheckerContinuousSpellCheckingEnabledStateChanged):
(WKTextCheckerGrammarCheckingEnabledStateChanged):
(WKTextCheckerCheckSpelling):
(WKTextCheckerChangeSpellingToWord):
(WKTextCheckerSetSpellCheckingLanguages):
(WKTextCheckerSetContinuousSpellCheckingEnabled):
- UIProcess/API/C/glib/WKTextCheckerGLib.h: Renamed from Source/WebKit/UIProcess/API/C/gtk/WKTextCheckerGtk.h.
- UIProcess/gtk/WebTextChecker.h:
- UIProcess/gtk/WebTextCheckerClient.h:
Tools:
- WebKitTestRunner/gtk/TestControllerGtk.cpp:
- WebKitTestRunner/gtk/UIScriptControllerGtk.cpp:
- WebKitTestRunner/gtk/main.cpp:
- WebKitTestRunner/wpe/UIScriptControllerWPE.cpp:
(WTR::UIScriptControllerWPE::setContinuousSpellCheckingEnabled):
- 9:05 AM Changeset in webkit [283875] by
-
- 7 edits in trunk
[LFC][IFC] Do no bail out on boundary neutral characters
https://bugs.webkit.org/show_bug.cgi?id=231485
Reviewed by Antti Koivisto.
Source/WebCore:
They don't affect directionality (no bidi impact), no need to take the legacy codepath.
- layout/integration/LayoutIntegrationCoverage.cpp:
(WebCore::LayoutIntegration::canUseForText):
LayoutTests:
- 1:49 AM Changeset in webkit [283874] by
-
- 16 edits1 add in trunk
[JSC] Refine RegExp#compile based on regexp-legacy-features proposal
https://bugs.webkit.org/show_bug.cgi?id=231486
Reviewed by Alexey Shvayka.
JSTests:
- stress/regexp-recompile.js: Added.
(shouldBe):
(recompile):
(target):
- test262/expectations.yaml:
Source/JavaScriptCore:
This patch refines RegExp#compile based regexp-legacy-features proposal[1].
We add legacyFeaturesDisabledFlag flag to RegExpObject so that we can
detect LegacyFeaturesEnabled.
We also add regExpRecompiledWatchpoint to JSGlobalObject. We have strength
reduction in DFG / FTL, but we should recompile DFG / FTL code when RegExp
is recompiled. Since it is rare, instead of having this watchpoint per
RegExpObject, we hold it in JSGlobalObject.
[1]: https://github.com/tc39/proposal-regexp-legacy-features
- dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::compileNewRegexp):
(JSC::DFG::SpeculativeJIT::compileSetRegExpObjectLastIndex):
- dfg/DFGStrengthReductionPhase.cpp:
(JSC::DFG::StrengthReductionPhase::handleNode):
- ftl/FTLAbstractHeapRepository.h:
- ftl/FTLLowerDFGToB3.cpp:
(JSC::FTL::DFG::LowerDFGToB3::compileCompareStrictEq):
- ftl/FTLOperations.cpp:
(JSC::FTL::JSC_DEFINE_JIT_OPERATION):
- jit/JITOperations.cpp:
(JSC::JSC_DEFINE_JIT_OPERATION):
- llint/LLIntSlowPaths.cpp:
(JSC::LLInt::LLINT_SLOW_PATH_DECL):
- runtime/JSGlobalObject.cpp:
(JSC::JSGlobalObject::JSGlobalObject):
- runtime/JSGlobalObject.h:
(JSC::JSGlobalObject::regExpRecompiledWatchpoint):
(JSC::JSGlobalObject::isRegExpRecompiled const):
- runtime/RegExpConstructor.cpp:
(JSC::areLegacyFeaturesEnabled):
(JSC::regExpCreate):
(JSC::constructRegExp):
- runtime/RegExpObject.cpp:
(JSC::RegExpObject::RegExpObject):
- runtime/RegExpObject.h:
- runtime/RegExpPrototype.cpp:
(JSC::JSC_DEFINE_HOST_FUNCTION):
- 12:01 AM Changeset in webkit [283873] by
-
- 3 edits in trunk/Source/WebCore
[Build-time perf] Speed up the WebCore null build
https://bugs.webkit.org/show_bug.cgi?id=231473
Reviewed by Myles C. Maxfield.
The DerivedSources-output.xcfilelist had a number of entries for files that no longer exist, or had been renamed.
The "Check For Inappropriate Objective-C Class Names" and "Check For Inappropriate Files In Framework" build phases
had no inputs or outputs listed, causing them to run every time. Define an output of an empty text file in the
TARGET_TEMP_DIR directory that will get touched after the check, allowing the build system to do dependency checking.
The "Make Frameworks Symbolic Link" build phase had no output defined, causing it to run every time.
- DerivedSources-output.xcfilelist:
- WebCore.xcodeproj/project.pbxproj: