Timeline



Dec 26, 2020:

12:40 PM Changeset in webkit [271092] by Alexey Shvayka
  • 15 edits
    4 adds in trunk

[WebIDL] Remove [CustomToStringName] and Location-specific extended attributes
https://bugs.webkit.org/show_bug.cgi?id=219276

Reviewed by Sam Weinig.

LayoutTests/imported/w3c:

  • web-platform-tests/html/browsers/history/the-location-interface/location-non-configurable-toString-valueOf-expected.txt: Added.
  • web-platform-tests/html/browsers/history/the-location-interface/location-non-configurable-toString-valueOf.html: Added.
  • web-platform-tests/html/browsers/history/the-location-interface/location-prototype-no-toString-valueOf-expected.txt: Added.
  • web-platform-tests/html/browsers/history/the-location-interface/location-prototype-no-toString-valueOf.html: Added.

Source/WebCore:

This patch:

a) Removes [CustomToStringName] and 3 related overrides, whose purpose was to ensure

that Object.prototype.toString() returns "[object Object]" for cross-realm Location /
WindowProxy objects, which is already accomplished via own unforgeable @@toStringTag
property [1], making this change unobservable.

b) Inlines putCommon() to avoid weird true => false returns and save an extra identifier

creation / check in putByIndex(). This is also unobservable.

c) Removes "toString" and "valueOf" special-casing from JSLocation::defineOwnProperty(),

which failed silently instead of throwing a TypeError. Since these are own unforgeable
properties of Location [2], ordinary DefineOwnProperty? prevents their redefinition.

d) Removes [CustomDefineOwnPropertyOnPrototype], [CustomPutOnPrototype], and corresponding

overrides, whose purpose was to prevent definition of "toString" and "valueOf" properties
on Location.prototype. Since these are own unforgeable properties of Location instances [2],
the limitation doesn't make sense. Location.prototype is an ordinary object per spec.

Both c) and d) align WebKit with the spec, Blink, and Gecko.

[1]: https://html.spec.whatwg.org/multipage/browsers.html#crossoriginpropertyfallback-(-p-)
[2]: https://html.spec.whatwg.org/multipage/history.html#the-location-interface (step 3)

Tests: imported/w3c/web-platform-tests/html/browsers/history/the-location-interface/location-non-configurable-toString-valueOf.html

imported/w3c/web-platform-tests/html/browsers/history/the-location-interface/location-prototype-no-toString-valueOf.html

  • bindings/js/JSDOMWindowCustom.cpp:

(WebCore::JSDOMWindow::toStringName): Deleted.

  • bindings/js/JSLocationCustom.cpp:

(WebCore::JSLocation::put):
(WebCore::JSLocation::putByIndex):
(WebCore::JSLocation::defineOwnProperty):
(WebCore::putCommon): Deleted.
(WebCore::JSLocation::toStringName): Deleted.
(WebCore::JSLocationPrototype::put): Deleted.
(WebCore::JSLocationPrototype::defineOwnProperty): Deleted.

  • bindings/js/JSRemoteDOMWindowCustom.cpp:

(WebCore::JSRemoteDOMWindow::toStringName): Deleted.

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateHeader):
(GeneratePrototypeDeclaration):
(HeaderNeedsPrototypeDeclaration):

  • bindings/scripts/IDLAttributes.json:
  • page/DOMWindow.idl:
  • page/Location.idl:
  • page/RemoteDOMWindow.idl:

LayoutTests:

  • fast/dom/Window/Location/location-override-toString-using-defineGetter-expected.txt:
  • fast/dom/Window/Location/location-override-toString-using-defineGetter.html:
  • fast/dom/Window/Location/location-override-valueOf-using-defineGetter-expected.txt:
  • fast/dom/Window/Location/location-override-valueOf-using-defineGetter.html:
11:42 AM Changeset in webkit [271091] by Alan Bujtas
  • 4 edits in trunk/Source/WebCore

[LFC] Rect::expandToContain should call LayoutRect::uniteEvenIfEmpty
https://bugs.webkit.org/show_bug.cgi?id=220153

Reviewed by Antti Koivisto.

Multiline inline boxes should expand even when they start at the end of the line and are empty.
e.g.

<pre>this is the first line<span>
and this is the second</span></pre>

The <span>'s height = first line height (even though the <span> is empty on this line) + second line height.

  • layout/layouttree/LayoutGeometryRect.h:

(WebCore::Layout::Rect::expandToContain):

  • platform/graphics/LayoutRect.cpp:

(WebCore::LayoutRect::unite):
(WebCore::LayoutRect::uniteEvenIfEmpty): copy from FloatRect.

  • platform/graphics/LayoutRect.h:

(WebCore::LayoutRect::setLocationAndSizeFromEdges): copy from FloatRect.

10:28 AM Changeset in webkit [271090] by Simon Fraser
  • 6 edits
    4 adds in trunk

Fix scrolling issues when scrolling on only one axis is enabled
https://bugs.webkit.org/show_bug.cgi?id=220134

Reviewed by Sam Weinig.

Source/WebCore:

If an overflow:scroll has overflow on an axis, but overflow:hidden on that
axis, then there are various issues with finding the correct scroller and
latching.

This affects nested scrollers where inner and outer and scrollable on different
axes, and the inner scroller has overflow, but overflow:hidden on the cross axis.

The fix involves adding checks for scrolling being allowed in code that fetches
pinned state, and code that looks for scrollable areas for a given event delta.

Tests: fast/scrolling/mac/overflow-hidden-on-one-axis-async-overflow.html

fast/scrolling/mac/overflow-hidden-on-one-axis.html

  • page/mac/EventHandlerMac.mm:

(WebCore::findEnclosingScrollableContainer):

  • page/scrolling/ScrollingTreeScrollingNode.cpp:

(WebCore::ScrollingTreeScrollingNode::edgePinnedState const):

  • page/scrolling/mac/ScrollingTreeScrollingNodeDelegateMac.mm:

(WebCore::ScrollingTreeScrollingNodeDelegateMac::isPinnedForScrollDeltaOnAxis const):

  • platform/ScrollableArea.cpp:

(WebCore::ScrollableArea::isPinnedForScrollDeltaOnAxis const):
(WebCore::ScrollableArea::isPinnedForScrollDelta const): Check for non-zero deltas.
isPinnedForScrollDeltaOnAxis() returns false if a delta is zero, so we don't want to say
we're not pinned if a delta is zero. The logic of this code really needs to be inverted
to talk about scrollability, not pinning.
(WebCore::ScrollableArea::edgePinnedState const):

LayoutTests:

  • fast/scrolling/mac/overflow-hidden-on-one-axis-async-overflow-expected.txt: Added.
  • fast/scrolling/mac/overflow-hidden-on-one-axis-async-overflow.html: Added.
  • fast/scrolling/mac/overflow-hidden-on-one-axis-expected.txt: Added.
  • fast/scrolling/mac/overflow-hidden-on-one-axis.html: Added.
9:42 AM Changeset in webkit [271089] by weinig@apple.com
  • 17 edits
    3 adds in trunk/Source/WebCore

Simplify adding new color spaces to WebCore
https://bugs.webkit.org/show_bug.cgi?id=220146

Reviewed by Dean Jackson.

Reduce the number of places one needs to touch when adding new color types to:

  • ColorTypes.h
  • ColorConversion.h/cpp
  • ColorSpace.h/cpp (only needed if support in Color is required).
  • ColorSerialization.h (only needed if support in Color is required).
  • ColorSpaceCG.h/cpp (only needed if support in Color is required).
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:

Add ColorSpace.cpp, ColorSpaceCG.h and ColorSpaceCG.cpp.

  • platform/graphics/Color.cpp:
  • platform/graphics/Color.h:

(WebCore::Color::Color):
(WebCore::Color::setColor):
Replace specific overloads of the contructor and setColor with template functions
that do the same things. These are safe to make as if a non-supported color type
(one that doesn't have a colorSpace member) is passed it will fail to compile due
to use beneath ExtendedColor::create().

Also moves WTF::TextStream operator<< overload for ColorSpace out and into
ColorSpace.cpp where it makes more sense.

  • platform/graphics/ColorConversion.cpp:
  • platform/graphics/ColorConversion.h:

Re-order and explicitly comment conversion functions to be more clear.

As the comment indicates, all color types must implement at least the following
conversions:

XYZA<float> toXYZA(const ColorType<float>&);
ColorType<float> toColorType(const XYZA<float>&);

This allows generic fallback code, inline at the bottom of the header, to
support conversion to and from any set of colors. Additional conversion functions
are useful for the cases where the optimal or base conversion is not through XYZ
such as from SRGBA to LinearSRGBA.

To allow this to work a few additional conversion functions were added which just
combine existing conversions together and one was added for SRGBA to CMYKA which
was missing, though currently unused.

  • platform/graphics/ColorSpace.cpp: Added.

(WebCore::operator<<):

  • platform/graphics/ColorSpace.h:

Moved from Color.h

  • platform/graphics/ColorTypes.h:

(WebCore::callWithColorType):
This is a generalization of ExtendedColor::callOnUnderlyingType() that also
has the benefit of now being in the same file as the color type definitions,
reducing the number of files people need to touch.

  • platform/graphics/ColorUtilities.h:

(WebCore::colorByModifingEachNonAlphaComponent):
Update to not assume that colors use the names red/green/blue for non-alpha
components. This makes it work generically for all four component color types.

  • platform/graphics/ExtendedColor.h:

(WebCore::ExtendedColor::callOnUnderlyingType const):
Use generalized form, callWithColorType to avoid requiring modiftying this
when new color types are added.

  • platform/graphics/cg/ColorCG.cpp:

(WebCore::leakCGColor):
When going to generalize this (we could have simply called
return CGColorCreate(cachedCGColorSpace(colorSpace), cgFloatComponents))
I noticed this was not doing the right thing for CG ports that don't support
all the color spaces WebCore requires (such as Windows). For instance,
displayP3ColorSpaceRef() just returns sRGBColorSpaceRef() on windows, meaning
we would be taking some DisplayP3 components and having CG interpret them as
sRGB. To avoid this, we now check if the color space returned is the fallback
color space, sRGB, and do our own conversion to sRGB using ColorConversion
before creating the color.

This also resolves a long standing bug / FIXME around LinearRGB where we were
using sRGBColorSpaceRef() for them. In practice, we don't actually ever create
LinearRGB CGColorRefs right now, but if we ever do in the future, makes sense
to use the right color space.

  • platform/graphics/cg/ColorSpaceCG.cpp: Added.

(WebCore::sRGBColorSpaceRef):
(WebCore::linearRGBColorSpaceRef):
(WebCore::displayP3ColorSpaceRef):
(WebCore::extendedSRGBColorSpaceRef):

  • platform/graphics/cg/ColorSpaceCG.h: Added.

(WebCore::cachedCGColorSpace):

  • platform/graphics/cg/GraphicsContextCG.cpp:

(WebCore::sRGBColorSpaceRef): Deleted.
(WebCore::linearRGBColorSpaceRef): Deleted.
(WebCore::extendedSRGBColorSpaceRef): Deleted.
(WebCore::displayP3ColorSpaceRef): Deleted.

  • platform/graphics/cg/GraphicsContextCG.h:

(WebCore::cachedCGColorSpace): Deleted.
Moved color space specific CG code to its own files to make it more clear
where to find them.

7:22 AM Changeset in webkit [271088] by Alan Bujtas
  • 4 edits in trunk/Source/WebCore

[LFC][Integration] Set pre-computed inline box geometries (margin, border and padding)
https://bugs.webkit.org/show_bug.cgi?id=220149

Reviewed by Antti Koivisto.

  • layout/integration/LayoutIntegrationLineLayout.cpp:

(WebCore::LayoutIntegration::LineLayout::updateInlineBoxDimensions):

  • layout/integration/LayoutIntegrationLineLayout.h:
  • rendering/RenderBlockFlow.cpp:

(WebCore::RenderBlockFlow::layoutModernLines):

2:20 AM Changeset in webkit [271087] by Alan Bujtas
  • 4 edits in trunk/Source/WebCore

[LFC][IFC] Remove redundant LineBox::inlineLevelBoxList()
https://bugs.webkit.org/show_bug.cgi?id=220147

Reviewed by Antti Koivisto.

  • layout/inlineformatting/InlineFormattingContext.cpp:

(WebCore::Layout::InlineFormattingContext::computeGeometryForLineContent):

  • layout/inlineformatting/InlineLineBox.h:

(WebCore::Layout::LineBox::inlineLevelBoxList const): Deleted.

  • layout/integration/LayoutIntegrationInlineContentBuilder.cpp:

(WebCore::LayoutIntegration::InlineContentBuilder::computeLineLevelVisualAdjustmentsForRuns const):

Dec 25, 2020:

9:39 PM Changeset in webkit [271086] by aestes@apple.com
  • 2 edits in trunk/Source/WebCore

REGRESSION (r270662): SourceBufferParserWebM leaks CMSampleBufferRefs
https://bugs.webkit.org/show_bug.cgi?id=220144

Reviewed by Anders Carlsson.

  • platform/graphics/cocoa/SourceBufferParserWebM.cpp:

(WebCore::SourceBufferParserWebM::VideoTrackData::createSampleBuffer):
(WebCore::SourceBufferParserWebM::AudioTrackData::createSampleBuffer): Move the RetainPtr
holding an adopted CMSampleBufferRef rather than leaking it when calling provideMediaData.

1:46 PM Changeset in webkit [271085] by Alan Bujtas
  • 8 edits in trunk/Source/WebCore

[LFC][Integration] Use the pre-computed geometries for the inline level boxes
https://bugs.webkit.org/show_bug.cgi?id=220135
<rdar://problem/72642850>

Reviewed by Antti Koivisto.

Let's skip the tree traversal and recomputing the box geometries in InlineFormattingContext::layoutInFlowContent.

  • layout/FormattingContextGeometry.cpp:

(WebCore::Layout::FormattingContext::Geometry::inlineReplacedContentHeightAndMargin const):
(WebCore::Layout::FormattingContext::Geometry::inlineReplacedContentWidthAndMargin):

  • layout/inlineformatting/InlineFormattingContext.h:
  • layout/integration/LayoutIntegrationLineLayout.cpp:

(WebCore::LayoutIntegration::LineLayout::updateLayoutBoxDimensions):
(WebCore::LayoutIntegration::LineLayout::updateLineBreakBoxDimensions):
(WebCore::LayoutIntegration::LineLayout::layout):

  • layout/integration/LayoutIntegrationLineLayout.h:
  • layout/layouttree/LayoutReplacedBox.h:

(WebCore::Layout::ReplacedBox::contentSizeForIntegration const): Deleted.
(WebCore::Layout::ReplacedBox::setContentSizeForIntegration): Deleted.

  • rendering/RenderBlockFlow.cpp:

(WebCore::RenderBlockFlow::layoutModernLines):

9:53 AM Changeset in webkit [271084] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[LFC][IFC] Fast vertical alignment should work with line-height
https://bugs.webkit.org/show_bug.cgi?id=220131

Reviewed by Antti Koivisto.

Adjust the line box height and the root inline box's logical top position as the layout bounds of the inline-block content stretches the line.

  • layout/inlineformatting/InlineFormattingContextGeometry.cpp:

(WebCore::Layout::LineBoxBuilder::LineBoxBuilder):
(WebCore::Layout::LineBoxBuilder::constructInlineLevelBoxes):

2:35 AM Changeset in webkit [271083] by ysuzuki@apple.com
  • 74 edits
    1 copy
    5 adds
    1 delete in trunk/Source/ThirdParty

Update capstone
https://bugs.webkit.org/show_bug.cgi?id=219941

Reviewed by Michael Catanzaro.

  • capstone/CMakeLists.txt:
  • capstone/Source/.gitignore:
  • capstone/Source/.travis.yml:
  • capstone/Source/CMakeLists.txt:
  • capstone/Source/COMPILE.TXT:
  • capstone/Source/COMPILE_CMAKE.TXT:
  • capstone/Source/COMPILE_MSVC.TXT:
  • capstone/Source/CREDITS.TXT:
  • capstone/Source/ChangeLog-capstone:
  • capstone/Source/HACK.TXT:
  • capstone/Source/LEB128.h:

(decodeULEB128):

  • capstone/Source/MCDisassembler.h:
  • capstone/Source/MCFixedLenDisassembler.h:
  • capstone/Source/MCInst.c:

(MCInst_Init):
(MCInst_clear):
(MCInst_insert0):
(MCInst_setOpcode):
(MCInst_setOpcodePub):
(MCInst_getOpcode):
(MCInst_getOpcodePub):
(MCInst_getOperand):
(MCInst_getNumOperands):
(MCInst_addOperand2):
(MCOperand_isValid):
(MCOperand_isReg):
(MCOperand_isImm):
(MCOperand_isFPImm):
(MCOperand_getReg):
(MCOperand_setReg):
(MCOperand_getImm):
(MCOperand_setImm):
(MCOperand_getFPImm):
(MCOperand_setFPImm):
(MCOperand_CreateReg1):
(MCOperand_CreateReg0):
(MCOperand_CreateImm1):
(MCOperand_CreateImm0):
(MCOperand_Init): Deleted.

  • capstone/Source/MCInst.h:
  • capstone/Source/MCInstrDesc.c:

(MCOperandInfo_isPredicate):
(MCOperandInfo_isOptionalDef):

  • capstone/Source/MCInstrDesc.h:
  • capstone/Source/MCRegisterInfo.c:

(MCRegisterInfo_InitMCRegisterInfo):
(DiffListIterator_init):
(DiffListIterator_getVal):
(DiffListIterator_next):
(DiffListIterator_isValid):
(MCRegisterInfo_getMatchingSuperReg):
(MCRegisterInfo_getSubReg):
(MCRegisterInfo_getRegClass):
(MCRegisterClass_contains):

  • capstone/Source/MCRegisterInfo.h:
  • capstone/Source/Makefile:
  • capstone/Source/MathExtras.h:

(Hi_32):
(Lo_32):
(isUIntN):
(isMask_32):
(isMask_64):
(isShiftedMask_32):
(isShiftedMask_64):
(isPowerOf2_32):
(CountLeadingZeros_32):
(CountLeadingOnes_32):
(CountLeadingZeros_64):
(CountLeadingOnes_64):
(CountTrailingZeros_32):
(CountTrailingOnes_32):
(CountTrailingZeros_64):
(CountTrailingOnes_64):
(CountPopulation_32):
(CountPopulation_64):
(Log2_32):
(Log2_64):
(Log2_32_Ceil):
(Log2_64_Ceil):
(GreatestCommonDivisor64):
(BitsToDouble):
(BitsToFloat):
(DoubleToBits):
(FloatToBits):
(MinAlign):
(NextPowerOf2):
(RoundUpToAlignment):
(OffsetToAlignment):
(abs64):
(SignExtend32):
(SignExtend64):
(countLeadingZeros):

  • capstone/Source/README.md:
  • capstone/Source/SPONSORS.TXT: Added.
  • capstone/Source/SStream.c:

(SStream_Init):
(SStream_concat0):
(SStream_concat):
(printInt64Bang):
(printUInt64Bang):
(printInt64):
(printInt32BangDec):
(printInt32Bang):
(printInt32):
(printUInt32Bang):
(printUInt32):

  • capstone/Source/SStream.h:
  • capstone/Source/arch/ARM/ARMAddressingModes.h:

(ARM_AM_getAddrOpcStr):
(ARM_AM_getShiftOpcStr):
(ARM_AM_getShiftOpcEncoding):
(ARM_AM_getAMSubModeStr):
(rotr32):
(rotl32):
(getSORegOpc):
(getSORegOffset):
(ARM_AM_getSORegShOp):
(getSOImmValImm):
(getSOImmValRot):
(getSOImmValRotate):
(getSOImmVal):
(isSOImmTwoPartVal):
(getSOImmTwoPartFirst):
(getSOImmTwoPartSecond):
(getThumbImmValShift):
(isThumbImmShiftedVal):
(getThumbImm16ValShift):
(isThumbImm16ShiftedVal):
(getThumbImmNonShiftedVal):
(getT2SOImmValSplatVal):
(getT2SOImmValRotateVal):
(getT2SOImmVal):
(getT2SOImmValRotate):
(isT2SOImmTwoPartVal):
(getT2SOImmTwoPartFirst):
(getT2SOImmTwoPartSecond):
(ARM_AM_getAM2Opc):
(getAM2Offset):
(getAM2Op):
(getAM2ShiftOpc):
(getAM2IdxMode):
(getAM3Opc):
(getAM3Offset):
(getAM3Op):
(getAM3IdxMode):
(getAM4SubMode):
(getAM4ModeImm):
(ARM_AM_getAM5Opc):
(ARM_AM_getAM5Offset):
(ARM_AM_getAM5Op):
(createNEONModImm):
(getNEONModImmOpCmode):
(getNEONModImmVal):
(ARM_AM_decodeNEONModImm):
(getFPImmFloat):

  • capstone/Source/arch/ARM/ARMBaseInfo.h:

(ARMCC_getOppositeCondition):
(ARMCC_ARMCondCodeToString):
(ARM_PROC_IFlagsToString):
(ARM_PROC_IModToString):
(ARM_MB_MemBOptToString):
(ARM_ISB_InstSyncBOptToString):
(isARMLowRegister):
(ARMII_AddrModeToString):

  • capstone/Source/arch/ARM/ARMDisassembler.c:

(ITStatus_push_back):
(ITStatus_instrInITBlock):
(ITStatus_instrLastInITBlock):
(ITStatus_getITCC):
(ITStatus_advanceITState):
(ITStatus_setITState):
(Check):
(ARM_getFeatureBits):
(DecodePredicateOperand):
(ARM_init):
(checkDecodedInstruction):
(_ARM_getInstruction):
(AddThumb1SBit):
(AddThumbPredicate):
(UpdateThumbVFPPredicate):
(_Thumb_getInstruction):
(Thumb_getInstruction):
(ARM_getInstruction):
(DecodeGPRnopcRegisterClass):
(DecodeGPRwithAPSRRegisterClass):
(DecodetGPRRegisterClass):
(DecodetcGPRRegisterClass):
(DecoderGPRRegisterClass):
(DecodeDPRRegisterClass):
(DecodeDPR_8RegisterClass):
(DecodeDPR_VFP2RegisterClass):
(DecodeDPairRegisterClass):
(DecodeCCOutOperand):
(DecodeSORegImmOperand):
(DecodeSORegRegOperand):
(DecodeRegListOperand):
(DecodeSPRRegListOperand):
(DecodeDPRRegListOperand):
(DecodeBitfieldMaskOperand):
(DecodeCopMemInstruction):
(DecodeAddrMode2IdxInstruction):
(DecodeSORegMemOperand):
(DecodeAddrMode3Instruction):
(DecodeRFEInstruction):
(DecodeQADDInstruction):
(DecodeMemMultipleWritebackInstruction):
(DecodeCPSInstruction):
(DecodeT2CPSInstruction):
(DecodeT2MOVTWInstruction):
(DecodeArmMOVTWInstruction):
(DecodeSMLAInstruction):
(DecodeAddrModeImm12Operand):
(DecodeAddrMode5Operand):
(DecodeAddrMode7Operand):
(DecodeT2BInstruction):
(DecodeBranchImmInstruction):
(DecodeAddrMode6Operand):
(DecodeVLDInstruction):
(DecodeVLDST1Instruction):
(DecodeVLDST2Instruction):
(DecodeVLDST3Instruction):
(DecodeVLDST4Instruction):
(DecodeVSTInstruction):
(DecodeVLD1DupInstruction):
(DecodeVLD2DupInstruction):
(DecodeVLD3DupInstruction):
(DecodeVLD4DupInstruction):
(DecodeNEONModImmInstruction):
(DecodeVSHLMaxInstruction):
(DecodeShiftRight8Imm):
(DecodeShiftRight16Imm):
(DecodeShiftRight32Imm):
(DecodeShiftRight64Imm):
(DecodeTBLInstruction):
(DecodeThumbAddSpecialReg):
(DecodeThumbBROperand):
(DecodeT2BROperand):
(DecodeThumbCmpBROperand):
(DecodeThumbAddrModeRR):
(DecodeThumbAddrModeIS):
(DecodeThumbAddrModePC):
(DecodeThumbAddrModeSP):
(DecodeT2AddrModeSOReg):
(DecodeT2LoadShift):
(DecodeT2LoadImm8):
(DecodeT2LoadImm12):
(DecodeT2LoadT):
(DecodeT2LoadLabel):
(DecodeT2Imm8S4):
(DecodeT2AddrModeImm8s4):
(DecodeT2AddrModeImm0_1020s4):
(DecodeT2Imm8):
(DecodeT2AddrModeImm8):
(DecodeT2LdStPre):
(DecodeT2AddrModeImm12):
(DecodeThumbAddSPImm):
(DecodeThumbAddSPReg):
(DecodeThumbCPS):
(DecodePostIdxReg):
(DecodeThumbBLXOffset):
(DecodeCoprocessor):
(DecodeThumbTableBranch):
(DecodeThumb2BCCInstruction):
(DecodeT2SOImm):
(DecodeThumbBCCTargetOperand):
(DecodeThumbBLTargetOperand):
(DecodeMemBarrierOption):
(DecodeInstSyncBarrierOption):
(DecodeMSRMask):
(DecodeBankedReg):
(DecodeDoubleRegLoad):
(DecodeDoubleRegStore):
(DecodeLDRPreImm):
(DecodeLDRPreReg):
(DecodeSTRPreImm):
(DecodeSTRPreReg):
(DecodeVLD1LN):
(DecodeVST1LN):
(DecodeVLD2LN):
(DecodeVST2LN):
(DecodeVLD3LN):
(DecodeVST3LN):
(DecodeVLD4LN):
(DecodeVST4LN):
(DecodeVMOVSRR):
(DecodeVMOVRRS):
(DecodeIT):
(DecodeT2LDRDPreInstruction):
(DecodeT2STRDPreInstruction):
(DecodeT2Adr):
(DecodeT2ShifterImmOperand):
(DecodeSwap):
(DecodeVCVTD):
(DecodeVCVTQ):
(DecodeLDR):
(DecodeMRRC2):

  • capstone/Source/arch/ARM/ARMGenAsmWriter.inc:
  • capstone/Source/arch/ARM/ARMGenDisassemblerTables.inc:
  • capstone/Source/arch/ARM/ARMGenInstrInfo.inc:
  • capstone/Source/arch/ARM/ARMGenRegisterInfo.inc:
  • capstone/Source/arch/ARM/ARMInstPrinter.c:

(get_op_access):
(set_mem_access):
(op_addImm):
(ARM_getRegName):
(translateShiftImm):
(printRegImmShift):
(printRegName):
(ARM_printInst):
(printOperand):
(printThumbLdrLabelOperand):
(printSORegRegOperand):
(printSORegImmOperand):
(printAM2PreOrOffsetIndexOp):
(printAddrModeTBB):
(printAddrModeTBH):
(printAddrMode2Operand):
(printAddrMode2OffsetOperand):
(printAM3PreOrOffsetIndexOp):
(printAddrMode3Operand):
(printAddrMode3OffsetOperand):
(printPostIdxImm8Operand):
(printPostIdxRegOperand):
(printPostIdxImm8s4Operand):
(printAddrMode5Operand):
(printAddrMode6Operand):
(printAddrMode7Operand):
(printAddrMode6OffsetOperand):
(printBitfieldInvMaskImmOperand):
(printMemBOption):
(printInstSyncBOption):
(printShiftImmOperand):
(printPKHLSLShiftImm):
(printPKHASRShiftImm):
(printRegisterList):
(printGPRPairOperand):
(printSetendOperand):
(printCPSIMod):
(printCPSIFlag):
(printMSRMaskOperand):
(printBankedRegOperand):
(printPredicateOperand):
(printMandatoryPredicateOperand):
(printSBitModifierOperand):
(printNoHashImmediate):
(printPImmediate):
(printCImmediate):
(printCoprocOptionImm):
(printAdrLabelOperand):
(printThumbS4ImmOperand):
(printThumbSRImm):
(printThumbITMask):
(printThumbAddrModeRROperand):
(printThumbAddrModeImm5SOperand):
(printThumbAddrModeImm5S1Operand):
(printThumbAddrModeImm5S2Operand):
(printThumbAddrModeImm5S4Operand):
(printThumbAddrModeSPOperand):
(printT2SOOperand):
(printAddrModeImm12Operand):
(printT2AddrModeImm8Operand):
(printT2AddrModeImm8s4Operand):
(printT2AddrModeImm0_1020s4Operand):
(printT2AddrModeImm8OffsetOperand):
(printT2AddrModeImm8s4OffsetOperand):
(printT2AddrModeSoRegOperand):
(printFPImmOperand):
(printNEONModImmOperand):
(printImmPlusOneOperand):
(printRotImmOperand):
(printModImmOperand):
(printFBits16):
(printFBits32):
(printVectorIndex):
(printVectorListOne):
(printVectorListTwo):
(printVectorListTwoSpaced):
(printVectorListThree):
(printVectorListFour):
(printVectorListOneAllLanes):
(printVectorListTwoAllLanes):
(printVectorListThreeAllLanes):
(printVectorListFourAllLanes):
(printVectorListTwoSpacedAllLanes):
(printVectorListThreeSpacedAllLanes):
(printVectorListFourSpacedAllLanes):
(printVectorListThreeSpaced):
(printVectorListFourSpaced):
(ARM_addVectorDataType):
(ARM_addVectorDataSize):
(ARM_addReg):
(ARM_addUserMode):
(ARM_addSysReg):

  • capstone/Source/arch/ARM/ARMMapping.c:

(ARM_reg_name2):
(ARM_insn_name):
(ARM_rel_branch):
(ARM_blx_to_arm_mode):
(ARM_reg_access):

  • capstone/Source/arch/ARM/ARMMapping.h:
  • capstone/Source/arch/ARM/ARMMappingInsn.inc:
  • capstone/Source/arch/ARM/ARMMappingInsnOp.inc:
  • capstone/Source/arch/ARM/ARMModule.c:

(ARM_global_init):
(ARM_option):
(init): Deleted.
(option): Deleted.
(ARM_enable): Deleted.

  • capstone/Source/arch/ARM/ARMModule.h: Added.
  • capstone/Source/arch/Mips/MipsDisassembler.c:

(getFeatureBits):
(Mips_init):
(readInstruction16):
(readInstruction32):
(MipsDisassembler_getInstruction):
(Mips_getInstruction):
(getReg):
(DecodeINSVE_DF_4):
(DecodeAddiGroupBranch_4):
(DecodeDaddiGroupBranch_4):
(DecodeBlezlGroupBranch_4):
(DecodeBgtzlGroupBranch_4):
(DecodeBgtzGroupBranch_4):
(DecodeBlezGroupBranch_4):
(DecodeCPU16RegsRegisterClass):
(DecodeGPR64RegisterClass):
(DecodeGPRMM16RegisterClass):
(DecodeGPRMM16ZeroRegisterClass):
(DecodeGPRMM16MovePRegisterClass):
(DecodeGPR32RegisterClass):
(DecodePtrRegisterClass):
(DecodeDSPRRegisterClass):
(DecodeFGR64RegisterClass):
(DecodeFGR32RegisterClass):
(DecodeCCRRegisterClass):
(DecodeFCCRegisterClass):
(DecodeCCRegisterClass):
(DecodeFGRCCRegisterClass):
(DecodeMem):
(DecodeCacheOp):
(DecodeCacheOpMM):
(DecodeCacheOpR6):
(DecodeSyncI):
(DecodeMSA128Mem):
(DecodeMemMMImm4):
(DecodeMemMMSPImm5Lsl2):
(DecodeMemMMGPImm7Lsl2):
(DecodeMemMMReglistImm4Lsl2):
(DecodeMemMMImm12):
(DecodeMemMMImm16):
(DecodeFMem):
(DecodeFMem2):
(DecodeFMem3):
(DecodeFMemCop2R6):
(DecodeSpecial3LlSc):
(DecodeHWRegsRegisterClass):
(DecodeAFGR64RegisterClass):
(DecodeACC64DSPRegisterClass):
(DecodeHI32DSPRegisterClass):
(DecodeLO32DSPRegisterClass):
(DecodeMSA128BRegisterClass):
(DecodeMSA128HRegisterClass):
(DecodeMSA128WRegisterClass):
(DecodeMSA128DRegisterClass):
(DecodeMSACtrlRegisterClass):
(DecodeCOP2RegisterClass):
(DecodeBranchTarget):
(DecodeJumpTarget):
(DecodeBranchTarget21):
(DecodeBranchTarget26):
(DecodeBranchTarget7MM):
(DecodeBranchTarget10MM):
(DecodeBranchTargetMM):
(DecodeJumpTargetMM):
(DecodeAddiur2Simm7):
(DecodeUImm6Lsl2):
(DecodeLiSimm7):
(DecodeSimm4):
(DecodeSimm16):
(DecodeLSAImm):
(DecodeInsSize):
(DecodeExtSize):
(DecodeSimm19Lsl2):
(DecodeSimm18Lsl3):
(DecodeSimm9SP):
(DecodeANDI16Imm):
(DecodeUImm5lsl2):
(DecodeRegListOperand):
(DecodeRegListOperand16):
(DecodeMovePRegPair):
(DecodeSimm23Lsl2):

  • capstone/Source/arch/Mips/MipsDisassembler.h:
  • capstone/Source/arch/Mips/MipsGenAsmWriter.inc:
  • capstone/Source/arch/Mips/MipsGenDisassemblerTables.inc:
  • capstone/Source/arch/Mips/MipsGenInstrInfo.inc:
  • capstone/Source/arch/Mips/MipsGenRegisterInfo.inc:
  • capstone/Source/arch/Mips/MipsInstPrinter.c:

(set_mem_access):
(isReg):
(MipsFCCToString):
(printRegName):
(Mips_printInst):
(printOperand):
(printUnsignedImm):
(printUnsignedImm8):
(printMemOperand):
(printMemOperandEA):
(printFCCOperand):
(printRegisterPair):
(printAlias1):
(printAlias2):
(printAlias):
(printRegisterList):

  • capstone/Source/arch/Mips/MipsMapping.c:

(Mips_get_insn_id):
(Mips_group_name):
(Mips_map_insn):
(Mips_map_register):

  • capstone/Source/arch/Mips/MipsMappingInsn.inc:
  • capstone/Source/arch/Mips/MipsModule.c:

(updated_mode):
(Mips_global_init):
(Mips_option):
(init): Deleted.
(option): Deleted.
(Mips_enable): Deleted.

  • capstone/Source/arch/Mips/MipsModule.h: Added.
  • capstone/Source/capstone.pc.in:
  • capstone/Source/cmake.sh: Added.
  • capstone/Source/config.mk:
  • capstone/Source/cs.c:

(cs_version):
(cs_support):
(cs_errno):
(cs_strerror):
(cs_open):
(cs_close):
(fill_insn):
(skipdata_size):
(cs_option):
(skipdata_opstr):
(cs_disasm):
(cs_disasm_ex):
(cs_free):
(cs_malloc):
(cs_disasm_iter):
(cs_reg_name):
(cs_insn_name):
(cs_group_name):
(cs_insn_group):
(cs_reg_read):
(cs_reg_write):
(cs_op_count):
(cs_op_index):
(cs_regs_access):
(cs_kern_os_calloc): Deleted.

  • capstone/Source/cs_priv.h:
  • capstone/Source/functions.mk:
  • capstone/Source/include/capstone/arm.h:
  • capstone/Source/include/capstone/arm64.h:
  • capstone/Source/include/capstone/capstone.h:
  • capstone/Source/include/capstone/evm.h:
  • capstone/Source/include/capstone/m680x.h:
  • capstone/Source/include/capstone/m68k.h:
  • capstone/Source/include/capstone/mips.h:
  • capstone/Source/include/capstone/mos65xx.h: Added.
  • capstone/Source/include/capstone/platform.h:
  • capstone/Source/include/capstone/ppc.h:
  • capstone/Source/include/capstone/sparc.h:
  • capstone/Source/include/capstone/systemz.h:
  • capstone/Source/include/capstone/tms320c64x.h:
  • capstone/Source/include/capstone/x86.h:
  • capstone/Source/include/capstone/xcore.h:
  • capstone/Source/include/platform.h: Copied from Source/ThirdParty/capstone/Source/include/capstone/platform.h.
  • capstone/Source/include/windowsce/stdint.h:
  • capstone/Source/make.sh:
  • capstone/Source/nmake-x86.bat: Removed.
  • capstone/Source/nmake.bat:
  • capstone/Source/pkgconfig.mk:
  • capstone/Source/utils.c:

(make_id2insn):
(insn_find):
(name2id):
(id2name):
(count_positive):
(count_positive8):
(cs_strdup):
(cs_snprintf):
(arr_exist8):
(arr_exist):

  • capstone/Source/utils.h:
  • capstone/capstone-Revision.txt:
2:28 AM Changeset in webkit [271082] by mark.lam@apple.com
  • 3 edits
    1 add in trunk

VMInspector::dumpRegisters() should not dump beyond the start of the next frame.
https://bugs.webkit.org/show_bug.cgi?id=220136
rdar://64404201

Reviewed by Yusuke Suzuki.

JSTests:

  • stress/dumpRegisters-should-stop-before-next-frame.js: Added.

Source/JavaScriptCore:

VMInspector::dumpRegisters() was dumping stack slots up for up to
codeBlock->numCalleeLocals() slots for any given CallFrame. This is incorrect.
codeBlock->numCalleeLocals() indicates the maximum number of stack slots that the
codeBlock may use. However, the executing codeBlock may not necessary use up that
number of slots before calling another function.

In the attached test case, the global program has 98 callee locals. However, it
was only using a very small number of stack slots to call $vm.dumpRegisters().
On an ASAN build, iterating thru 98 stack slots of the global program (to dump
their contents) ended up reading beyond the top of the stack, and this made ASAN
very unhappy. The fix is simply to ensure that VMInspector::dumpRegisters() never
dumps past the start of the next CallFrame.

  • tools/VMInspector.cpp:

(JSC::VMInspector::dumpRegisters):

Dec 23, 2020:

5:01 PM Changeset in webkit [271081] by Simon Fraser
  • 11 edits in trunk/Source/WebCore

Clean up some code related to scroll pinning
https://bugs.webkit.org/show_bug.cgi?id=220128

Reviewed by Sam Weinig.

ScrollAnimatorMac and ScrollingTreeScrollingNodeDelegateMac share a lot of similar code
related to being "pinned" to an edge for scrolling (i.e. already scrolled to an edge).

There are too many functions implementing similar functionality in slightly different
ways. Reduce this count by one by rewriting isAlreadyPinnedInDirectionOfGesture()
and calling it from isPinnedForScrollDelta().

Rename bool pinnedInDirection() to isPinnedForScrollDelta().

Make use of wheelEvent.isGestureStart().

  • page/scrolling/mac/ScrollingTreeScrollingNodeDelegateMac.h:
  • page/scrolling/mac/ScrollingTreeScrollingNodeDelegateMac.mm:

(WebCore::ScrollingTreeScrollingNodeDelegateMac::isPinnedForScrollDeltaOnAxis const):
(WebCore::ScrollingTreeScrollingNodeDelegateMac::allowsHorizontalStretching const):
(WebCore::ScrollingTreeScrollingNodeDelegateMac::allowsVerticalStretching const):
(WebCore::ScrollingTreeScrollingNodeDelegateMac::isPinnedForScrollDelta const):
(WebCore::ScrollingTreeScrollingNodeDelegateMac::isAlreadyPinnedInDirectionOfGesture const): Deleted.
(WebCore::ScrollingTreeScrollingNodeDelegateMac::pinnedInDirection const): Deleted.

  • platform/ScrollableArea.cpp:

(WebCore::ScrollableArea::isPinnedForScrollDeltaOnAxis const):
(WebCore::ScrollableArea::isPinnedForScrollDelta const):
(WebCore::ScrollableArea::isPinnedInBothDirections const): Deleted.
(WebCore::ScrollableArea::isPinnedHorizontallyInDirection const): Deleted.
(WebCore::ScrollableArea::isPinnedVerticallyInDirection const): Deleted.

  • platform/ScrollableArea.h:

(WebCore::ScrollableArea::isHorizontalScrollerPinnedToMinimumPosition const): Deleted.
(WebCore::ScrollableArea::isHorizontalScrollerPinnedToMaximumPosition const): Deleted.
(WebCore::ScrollableArea::isVerticalScrollerPinnedToMinimumPosition const): Deleted.
(WebCore::ScrollableArea::isVerticalScrollerPinnedToMaximumPosition const): Deleted.

  • platform/cocoa/ScrollController.h:
  • platform/cocoa/ScrollController.mm:

(WebCore::ScrollController::handleWheelEvent):

  • platform/ios/ScrollAnimatorIOS.mm:

(WebCore::ScrollAnimatorIOS::determineScrollableAreaForTouchSequence):

  • platform/mac/ScrollAnimatorMac.h:
  • platform/mac/ScrollAnimatorMac.mm:

(WebCore::ScrollAnimatorMac::isPinnedForScrollDelta const):
(WebCore::ScrollAnimatorMac::allowsVerticalStretching const):
(WebCore::ScrollAnimatorMac::allowsHorizontalStretching const):
(WebCore::ScrollAnimatorMac::pinnedInDirection const): Deleted.
(WebCore::newGestureIsStarting): Deleted.
(WebCore::ScrollAnimatorMac::isAlreadyPinnedInDirectionOfGesture const): Deleted.

  • platform/mock/ScrollAnimatorMock.h:
5:00 PM Changeset in webkit [271080] by commit-queue@webkit.org
  • 2 edits in trunk/Source/ThirdParty/ANGLE

[ANGLE] Metal backend renders tdl.js samples as red
https://bugs.webkit.org/show_bug.cgi?id=220129

Patch by Kyle Piddington <Kyle Piddington> on 2020-12-23
Reviewed by Kenneth Russell.

  • src/libANGLE/renderer/metal/FrameBufferMtl.mm:

(rx::FramebufferMtl::blitWithDraw):

1:57 PM Changeset in webkit [271079] by Said Abou-Hallawa
  • 8 edits in trunk/Source

[GPU Process]: Don't call flushDrawingContext() in the middle of recording drawing commands
https://bugs.webkit.org/show_bug.cgi?id=220126

Reviewed by Simon Fraser.

Source/WebCore:

Avoid calling flushDrawingContext() except when the drawing is finished
and the backend of the ImageBuffer is about to be used.

Rename flushDrawingContextAndCommit() to flushDrawingContextAsync(). The
difference between flushDrawingContext() and flushDrawingContextAsync()
is the former waits for the flush reply message.

  • html/canvas/CanvasRenderingContext2DBase.cpp:

(WebCore::CanvasRenderingContext2DBase::prepareForDisplay):

  • platform/graphics/ImageBuffer.h:

(WebCore::ImageBuffer::flushDrawingContextAsync):
(WebCore::ImageBuffer::flushDrawingContextAndCommit): Deleted.

  • platform/graphics/displaylists/DisplayListRecorder.cpp:

(WebCore::DisplayList::Recorder::drawImageBuffer):
(WebCore::DisplayList::Recorder::didAppendItemOfType): Deleted.

  • platform/graphics/displaylists/DisplayListRecorder.h:

(WebCore::DisplayList::Recorder::Delegate::willAppendItemOfType):
(WebCore::DisplayList::Recorder::append):
(WebCore::DisplayList::Recorder::Delegate::didAppendItemOfType): Deleted.

Source/WebKit:

There is no need to replay back the DrawImageBuffer immediately after it
was recorded. The worry was the source ImageBuffer may change before
replaying back the DrawImageBuffer into the destination ImageBuffer. But
this should not happen with the shared memory buffer because the order
of drawing among multiple ImageBuffer is preserved.

  • Shared/RemoteLayerTree/RemoteLayerBackingStore.mm:

(WebKit::RemoteLayerBackingStore::display):

  • WebProcess/GPU/graphics/RemoteImageBufferProxy.h:
1:27 PM Changeset in webkit [271078] by Peng Liu
  • 14 edits in trunk/Source

[Media in GPU Process][MSE] Clean up SourceBufferPrivateRemote and implement functions with new IPC messages
https://bugs.webkit.org/show_bug.cgi?id=220122

Reviewed by Eric Carlson.

Source/WebCore:

Currently, SourceBuffer needs to get the highestPresentationTimestamp from SourceBufferPrivate, which
is hard to implement synchronously when SourceBufferPrivate runs in a different process (e.g., GPU process).
This patch makes SourceBufferPrivate push highestPresentationTimestamp to SourceBuffer when its value
is changed.

This patch also changes some functions of SourceBufferPrivate to virtual so that we can override them
in SourceBufferPrivateRemote.

  • Modules/mediasource/SourceBuffer.cpp:

(WebCore::SourceBuffer::highestPresentationTimestamp const):
(WebCore::SourceBuffer::sourceBufferPrivateHighestPresentationTimestampChanged):

  • Modules/mediasource/SourceBuffer.h:
  • platform/graphics/SourceBufferPrivate.cpp:

(WebCore::SourceBufferPrivate::updateHighestPresentationTimestamp):
(WebCore::SourceBufferPrivate::removeCodedFrames):
(WebCore::SourceBufferPrivate::didReceiveSample):
(WebCore::SourceBufferPrivate::highestPresentationTimestamp const): Deleted.

  • platform/graphics/SourceBufferPrivate.h:

(WebCore::SourceBufferPrivate::setMode):
(WebCore::SourceBufferPrivate::setGroupStartTimestamp):
(WebCore::SourceBufferPrivate::setGroupStartTimestampToEndTimestamp):
(WebCore::SourceBufferPrivate::setShouldGenerateTimestamps):
(WebCore::SourceBufferPrivate::startChangingType):
(WebCore::SourceBufferPrivate::bufferFull const):
(WebCore::SourceBufferPrivate::hasVideo const):
(WebCore::SourceBufferPrivate::timestampOffset const):

  • platform/graphics/SourceBufferPrivateClient.h:

Source/WebKit:

Add IPC messages and handlers in RemoteSourceBufferProxy to implement the added functions of SourceBufferPrivateRemote.
Also add an IPC message to forward the HighestPresentationTimestampChanged callback from RemoteSourceBufferProxy
to SourceBufferPrivateRemote.

  • GPUProcess/media/RemoteSourceBufferProxy.cpp:

(WebKit::RemoteSourceBufferProxy::sourceBufferPrivateHighestPresentationTimestampChanged):
(WebKit::RemoteSourceBufferProxy::setMediaSourceEnded):
(WebKit::RemoteSourceBufferProxy::setMode):
(WebKit::RemoteSourceBufferProxy::startChangingType):
(WebKit::RemoteSourceBufferProxy::removeCodedFrames):
(WebKit::RemoteSourceBufferProxy::setAllTrackBuffersNeedRandomAccess):
(WebKit::RemoteSourceBufferProxy::setGroupStartTimestamp):
(WebKit::RemoteSourceBufferProxy::setGroupStartTimestampToEndTimestamp):
(WebKit::RemoteSourceBufferProxy::setShouldGenerateTimestamps):

  • GPUProcess/media/RemoteSourceBufferProxy.h:
  • GPUProcess/media/RemoteSourceBufferProxy.messages.in:
  • Scripts/webkit/messages.py:
  • WebProcess/GPU/media/SourceBufferPrivateRemote.cpp:

(WebKit::SourceBufferPrivateRemote::setMediaSourceEnded):
(WebKit::SourceBufferPrivateRemote::setMode):
(WebKit::SourceBufferPrivateRemote::removeCodedFrames):
(WebKit::SourceBufferPrivateRemote::setAllTrackBuffersNeedRandomAccess):
(WebKit::SourceBufferPrivateRemote::setGroupStartTimestamp):
(WebKit::SourceBufferPrivateRemote::setGroupStartTimestampToEndTimestamp):
(WebKit::SourceBufferPrivateRemote::setShouldGenerateTimestamps):
(WebKit::SourceBufferPrivateRemote::startChangingType):
(WebKit::SourceBufferPrivateRemote::sourceBufferPrivateHighestPresentationTimestampChanged):

  • WebProcess/GPU/media/SourceBufferPrivateRemote.h:
  • WebProcess/GPU/media/SourceBufferPrivateRemote.messages.in:
1:20 PM Changeset in webkit [271077] by Ryan Haddad
  • 3 edits in trunk/LayoutTests

REGRESSION: [ Mac ] media/video-buffering-allowed.html is flaky timeout
https://bugs.webkit.org/show_bug.cgi?id=217621

Unreviewed test gardening.

  • platform/mac/TestExpectations:
  • platform/mac/TestExpectationsRosetta:

Move the flaky expectation from Rosetta -> mac since this isn't
Rosetta specific.

12:55 PM Changeset in webkit [271076] by Peng Liu
  • 5 edits in trunk

[Media in GPU Process][MSE] Media element does not fire "resize" event
https://bugs.webkit.org/show_bug.cgi?id=220119

Reviewed by Eric Carlson.

Source/WebKit:

Implement RemoteMediaPlayerProxy::mediaPlayerSizeChanged() to forward the video
resize callback from MSE media player to web process.

No new tests, covered by existing failing layout test.

  • GPUProcess/media/RemoteMediaPlayerProxy.cpp:

(WebKit::RemoteMediaPlayerProxy::mediaPlayerSizeChanged):

  • GPUProcess/media/RemoteMediaPlayerProxy.h:

LayoutTests:

  • gpu-process/TestExpectations:
12:06 PM Changeset in webkit [271075] by Fujii Hironori
  • 6 edits in trunk

[WinCairo] Enable WebGL 2
https://bugs.webkit.org/show_bug.cgi?id=192314

Reviewed by Kenneth Russell.

.:

  • Source/cmake/OptionsWin.cmake: Turned ENABLE_WEBGL2 on.

Source/WebCore:

  • platform/graphics/texmap/ANGLEContext.cpp:

(WebCore::ANGLEContext::createContext): Added context attributes
for WebGL by copying the code of GraphicsContextGLOpenGLCocoa.mm.

LayoutTests:

  • platform/wincairo/TestExpectations:
11:18 AM Changeset in webkit [271074] by Kate Cheney
  • 6 edits in trunk/Source/WebCore

Can't login to Skype from Microsoft Outlook account in Safari
https://bugs.webkit.org/show_bug.cgi?id=220106
<rdar://problem/72453487>

Reviewed by Alex Christensen.

This is a temporary quirk to assist a high-traffic website while they
complete the large task of migrating away from logins using
third party cookies. This quirk will be removed when the site is
updated.

No new tests, site-specific quirk.

Create a quirk that will call the Storage Access API on behalf of
Microsoft for skype.com under live.com. This patch also refactors
existing quirks to avoid lots of duplicate code.

  • dom/DocumentStorageAccess.cpp:

(WebCore::DocumentStorageAccess::requestStorageAccessQuirk):

  • page/Quirks.cpp:

Condense the code which calls the Storage Access API and handles the
click into one function Quirks::requestStorageAccessAndHandleClick.
Call this function if the domain/element pair matches the check in
Quirks::isStorageAccessQuirkDomainElementPair.

(WebCore::isStorageAccessQuirkDomainElementPair):
(WebCore::Quirks::requestStorageAccessAndHandleClick const):
(WebCore::Quirks::mapToTopDomain):
Moved from NetworkStorageSession and adjusted to check the host to
distinguish login.live.com from outlook.live.com which should be
treated differently.

(WebCore::Quirks::triggerOptionalStorageAccessQuirk const):
The BBC case can't be included in the same check as other domains with
quirks because we need to create a pop-up and inject JavaScript based
on the user's response. So we still need to check for the BBC domain
separately.

(WebCore::isMicrosoftLoginElement): Deleted.
(WebCore::isMicrosoftDomain): Deleted.
(WebCore::isPlaystationLoginElement): Deleted.

  • page/Quirks.h:
  • platform/network/NetworkStorageSession.cpp:

(WebCore::NetworkStorageSession::storageAccessQuirks):
(WebCore::NetworkStorageSession::mapToTopDomain): Moved.

  • platform/network/NetworkStorageSession.h:
11:13 AM Changeset in webkit [271073] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WTF

[GTK][CMake] Forward missing header on Darwin
https://bugs.webkit.org/show_bug.cgi?id=220114

Patch by Monson Shao <holymonson@gmail.com> on 2020-12-23
Reviewed by Alex Christensen.

Building jsc with GTK port on Darwin needs spi/darwin/ProcessMemoryFootprint.h

  • wtf/PlatformGTK.cmake:
10:51 AM Changeset in webkit [271072] by Simon Fraser
  • 4 edits
    3 adds in trunk

REGRESSION: Scroll snapping triggers body scroll
https://bugs.webkit.org/show_bug.cgi?id=220056
Source/WebCore:

<rdar://problem/72595482>

Reviewed by Wenson Hsieh.

ScrollController::handleWheelEvent() needs to return true to indicate that it
handled the event when it has been processed for scroll snap. If we don't do this,
the latching code thinks that no node handled the event so the latch times out.

Test: fast/scrolling/latching/scroll-snap-latching.html

  • platform/cocoa/ScrollController.h:
  • platform/cocoa/ScrollController.mm:

(WebCore::ScrollController::handleWheelEvent):

LayoutTests:

Reviewed by Wenson Hsieh.

  • fast/scrolling/latching/scroll-snap-latching-expected.txt: Added.
  • fast/scrolling/latching/scroll-snap-latching.html: Added.
  • platform/mac-wk1/fast/scrolling/latching/scroll-snap-latching-expected.txt: Added.
10:51 AM Changeset in webkit [271071] by dino@apple.com
  • 2 edits in trunk/Tools

Simulated Python crash during test runs
https://bugs.webkit.org/show_bug.cgi?id=220108
<rdar://problem/72605338>

Reviewed by Geoffrey Garen.

The ResourceLoadStatistics code can unlink a database during the test
run, which causes a simulated python crash. We already worked around this
by setting the SQLITE_EXEMPT_PATH_FROM_VNODE_GUARDS environment variable
on a temporary directory, but it needs to include /private/var/folders as well.
However, I didn't have any luck setting multiple directories, so I
used '/' instead.

  • Scripts/webkitpy/port/driver.py:

(Driver._setup_environ_for_driver):

9:00 AM Changeset in webkit [271070] by Simon Fraser
  • 132 edits in trunk

Standardize on "allows scrolling" terminology instead of asking about scrollbars
https://bugs.webkit.org/show_bug.cgi?id=220111

Reviewed by Wenson Hsieh.

Source/WebCore:

Code variously used "canScrollHorizontally" and "hasEnabledHorizontalScrollbar".
Standardize on "allowsHorizontalScrolling". This returns true both when there
is overflow to scroll, and when style allows it (i.e. not overflow-x: hidden).

This changes the name and dumping for ScrollableAreaParams so lots of test results
change.

  • page/scrolling/AsyncScrollingCoordinator.cpp:

(WebCore::AsyncScrollingCoordinator::setScrollingNodeScrollableAreaGeometry):

  • page/scrolling/ScrollingCoordinator.cpp:

(WebCore::operator<<):

  • page/scrolling/ScrollingCoordinatorTypes.h:

(WebCore::ScrollableAreaParameters::operator== const):

  • page/scrolling/ScrollingTreeScrollingNode.cpp:

(WebCore::ScrollingTreeScrollingNode::eventCanScrollContents const):

  • page/scrolling/ScrollingTreeScrollingNode.h:
  • page/scrolling/ScrollingTreeScrollingNodeDelegate.h:

(WebCore::ScrollingTreeScrollingNodeDelegate::allowsHorizontalScrolling const):
(WebCore::ScrollingTreeScrollingNodeDelegate::allowsVerticalScrolling const):
(WebCore::ScrollingTreeScrollingNodeDelegate::hasEnabledHorizontalScrollbar const): Deleted.
(WebCore::ScrollingTreeScrollingNodeDelegate::hasEnabledVerticalScrollbar const): Deleted.

  • page/scrolling/mac/ScrollingTreeScrollingNodeDelegateMac.h:
  • page/scrolling/mac/ScrollingTreeScrollingNodeDelegateMac.mm:

(WebCore::ScrollingTreeScrollingNodeDelegateMac::allowsHorizontalStretching const):
(WebCore::ScrollingTreeScrollingNodeDelegateMac::allowsVerticalStretching const):
(WebCore::ScrollingTreeScrollingNodeDelegateMac::allowsHorizontalScrolling const):
(WebCore::ScrollingTreeScrollingNodeDelegateMac::allowsVerticalScrolling const):
(WebCore::ScrollingTreeScrollingNodeDelegateMac::canScrollHorizontally const): Deleted.
(WebCore::ScrollingTreeScrollingNodeDelegateMac::canScrollVertically const): Deleted.

  • platform/ScrollableArea.cpp:

(WebCore::ScrollableArea::allowsHorizontalScrolling const):
(WebCore::ScrollableArea::allowsVerticalScrolling const):

  • platform/ScrollableArea.h:
  • platform/cocoa/ScrollController.h:
  • platform/cocoa/ScrollController.mm:

(WebCore::ScrollController::snapRubberBandTimerFired):

  • platform/mac/ScrollAnimatorMac.h:
  • platform/mac/ScrollAnimatorMac.mm:

(WebCore::ScrollAnimatorMac::allowsHorizontalScrolling const):
(WebCore::ScrollAnimatorMac::allowsVerticalScrolling const):
(WebCore::ScrollAnimatorMac::canScrollHorizontally const): Deleted.
(WebCore::ScrollAnimatorMac::canScrollVertically const): Deleted.

  • platform/mock/ScrollAnimatorMock.h:

Source/WebKit:

  • Shared/WebCoreArgumentCoders.cpp:

(IPC::ArgumentCoder<ScrollableAreaParameters>::encode):
(IPC::ArgumentCoder<ScrollableAreaParameters>::decode):

LayoutTests:

  • fast/scrolling/ios/change-scrollability-on-content-resize-expected.txt:
  • fast/scrolling/ios/change-scrollability-on-content-resize-nested-expected.txt:
  • fast/scrolling/ios/scrollbar-hiding-expected.txt:
  • fast/visual-viewport/tiled-drawing/zoomed-fixed-scrolled-down-expected.txt:
  • fast/visual-viewport/tiled-drawing/zoomed-fixed-scrolled-down-then-up-expected.txt:
  • fast/visual-viewport/tiled-drawing/zoomed-fixed-scrolling-layers-state-expected.txt:
  • platform/ios-wk2/scrollingcoordinator/scrolling-tree/absolute-in-nested-sc-scrollers-expected.txt:
  • platform/ios-wk2/scrollingcoordinator/scrolling-tree/absolute-inside-stacking-in-scroller-expected.txt:
  • platform/ios-wk2/scrollingcoordinator/scrolling-tree/clipped-layer-in-overflow-expected.txt:
  • platform/ios-wk2/scrollingcoordinator/scrolling-tree/clipped-layer-in-overflow-nested-expected.txt:
  • platform/ios-wk2/scrollingcoordinator/scrolling-tree/composited-in-absolute-in-overflow-expected.txt:
  • platform/ios-wk2/scrollingcoordinator/scrolling-tree/composited-in-absolute-in-stacking-context-overflow-expected.txt:
  • platform/ios-wk2/scrollingcoordinator/scrolling-tree/coordinated-frame-expected.txt:
  • platform/ios-wk2/scrollingcoordinator/scrolling-tree/coordinated-frame-gain-scrolling-ancestor-expected.txt:
  • platform/ios-wk2/scrollingcoordinator/scrolling-tree/coordinated-frame-in-fixed-expected.txt:
  • platform/ios-wk2/scrollingcoordinator/scrolling-tree/coordinated-frame-lose-scrolling-ancestor-expected.txt:
  • platform/ios-wk2/scrollingcoordinator/scrolling-tree/gain-scrolling-node-parent-expected.txt:
  • platform/ios-wk2/scrollingcoordinator/scrolling-tree/lose-scrolling-node-parent-expected.txt:
  • platform/ios-wk2/scrollingcoordinator/scrolling-tree/nested-absolute-in-absolute-overflow-expected.txt:
  • platform/ios-wk2/scrollingcoordinator/scrolling-tree/nested-absolute-in-overflow-expected.txt:
  • platform/ios-wk2/scrollingcoordinator/scrolling-tree/nested-absolute-in-relative-in-overflow-expected.txt:
  • platform/ios-wk2/scrollingcoordinator/scrolling-tree/nested-absolute-in-sc-overflow-expected.txt:
  • platform/ios-wk2/scrollingcoordinator/scrolling-tree/nested-overflow-scroll-expected.txt:
  • platform/ios-wk2/scrollingcoordinator/scrolling-tree/overflow-in-fixed-expected.txt:
  • platform/ios-wk2/scrollingcoordinator/scrolling-tree/positioned-nodes-complex-expected.txt:
  • platform/ios-wk2/scrollingcoordinator/scrolling-tree/positioned-nodes-expected.txt:
  • platform/ios-wk2/scrollingcoordinator/scrolling-tree/remove-scrolling-role-expected.txt:
  • platform/ios-wk2/scrollingcoordinator/scrolling-tree/reparent-across-compositing-layers-expected.txt:
  • platform/ios-wk2/scrollingcoordinator/scrolling-tree/reparent-with-layer-removal-expected.txt:
  • platform/ios-wk2/scrollingcoordinator/scrolling-tree/sticky-in-overflow-expected.txt:
  • platform/ipad/fast/scrolling/ios/change-scrollability-on-content-resize-nested-expected.txt:
  • platform/ipad/scrollingcoordinator/ios/fixed-in-overflow-scroll-scrolling-tree-expected.txt:
  • platform/wpe/scrollingcoordinator/scrolling-tree/absolute-in-nested-sc-scrollers-expected.txt:
  • platform/wpe/scrollingcoordinator/scrolling-tree/absolute-inside-stacking-in-scroller-expected.txt:
  • platform/wpe/scrollingcoordinator/scrolling-tree/clipped-layer-in-overflow-expected.txt:
  • platform/wpe/scrollingcoordinator/scrolling-tree/clipped-layer-in-overflow-nested-expected.txt:
  • platform/wpe/scrollingcoordinator/scrolling-tree/composited-in-absolute-in-overflow-expected.txt:
  • platform/wpe/scrollingcoordinator/scrolling-tree/composited-in-absolute-in-stacking-context-overflow-expected.txt:
  • platform/wpe/scrollingcoordinator/scrolling-tree/coordinated-frame-expected.txt:
  • platform/wpe/scrollingcoordinator/scrolling-tree/coordinated-frame-gain-scrolling-ancestor-expected.txt:
  • platform/wpe/scrollingcoordinator/scrolling-tree/coordinated-frame-in-fixed-expected.txt:
  • platform/wpe/scrollingcoordinator/scrolling-tree/coordinated-frame-lose-scrolling-ancestor-expected.txt:
  • platform/wpe/scrollingcoordinator/scrolling-tree/fixed-inside-frame-expected.txt:
  • platform/wpe/scrollingcoordinator/scrolling-tree/gain-scrolling-node-parent-expected.txt:
  • platform/wpe/scrollingcoordinator/scrolling-tree/lose-scrolling-node-parent-expected.txt:
  • platform/wpe/scrollingcoordinator/scrolling-tree/nested-absolute-in-absolute-overflow-expected.txt:
  • platform/wpe/scrollingcoordinator/scrolling-tree/nested-absolute-in-overflow-expected.txt:
  • platform/wpe/scrollingcoordinator/scrolling-tree/nested-absolute-in-relative-in-overflow-expected.txt:
  • platform/wpe/scrollingcoordinator/scrolling-tree/nested-absolute-in-sc-overflow-expected.txt:
  • platform/wpe/scrollingcoordinator/scrolling-tree/nested-overflow-scroll-expected.txt:
  • platform/wpe/scrollingcoordinator/scrolling-tree/overflow-in-fixed-expected.txt:
  • platform/wpe/scrollingcoordinator/scrolling-tree/positioned-nodes-complex-expected.txt:
  • platform/wpe/scrollingcoordinator/scrolling-tree/positioned-nodes-expected.txt:
  • platform/wpe/scrollingcoordinator/scrolling-tree/remove-coordinated-frame-expected.txt:
  • platform/wpe/scrollingcoordinator/scrolling-tree/remove-scrolling-role-expected.txt:
  • platform/wpe/scrollingcoordinator/scrolling-tree/reparent-across-compositing-layers-expected.txt:
  • platform/wpe/scrollingcoordinator/scrolling-tree/reparent-with-layer-removal-expected.txt:
  • platform/wpe/scrollingcoordinator/scrolling-tree/scrolling-tree-includes-frame-expected.txt:
  • platform/wpe/scrollingcoordinator/scrolling-tree/sticky-in-overflow-expected.txt:
  • platform/wpe/scrollingcoordinator/scrolling-tree/toggle-coordinated-frame-scrolling-expected.txt:
  • scrollingcoordinator/ios/fixed-in-overflow-scroll-scrolling-tree-expected.txt:
  • scrollingcoordinator/mac/fixed-backgrounds/fixed-background-in-nested-non-cb-overflow-expected.txt:
  • scrollingcoordinator/mac/fixed-backgrounds/fixed-background-in-nested-overflow-expected.txt:
  • scrollingcoordinator/mac/fixed-backgrounds/fixed-background-in-nested-overflow2-expected.txt:
  • scrollingcoordinator/mac/fixed-backgrounds/fixed-background-in-overflow-dynamic-expected.txt:
  • scrollingcoordinator/mac/fixed-backgrounds/fixed-background-in-overflow-expected.txt:
  • scrollingcoordinator/mac/fixed-backgrounds/fixed-background-on-overflow-expected.txt:
  • scrollingcoordinator/scrolling-tree/absolute-in-nested-sc-scrollers-expected.txt:
  • scrollingcoordinator/scrolling-tree/absolute-inside-stacking-in-scroller-expected.txt:
  • scrollingcoordinator/scrolling-tree/clipped-layer-in-overflow-expected.txt:
  • scrollingcoordinator/scrolling-tree/clipped-layer-in-overflow-nested-expected.txt:
  • scrollingcoordinator/scrolling-tree/composited-in-absolute-in-overflow-expected.txt:
  • scrollingcoordinator/scrolling-tree/composited-in-absolute-in-stacking-context-overflow-expected.txt:
  • scrollingcoordinator/scrolling-tree/coordinated-frame-expected.txt:
  • scrollingcoordinator/scrolling-tree/coordinated-frame-gain-scrolling-ancestor-expected.txt:
  • scrollingcoordinator/scrolling-tree/coordinated-frame-in-fixed-expected.txt:
  • scrollingcoordinator/scrolling-tree/coordinated-frame-lose-scrolling-ancestor-expected.txt:
  • scrollingcoordinator/scrolling-tree/fixed-inside-frame-expected.txt:
  • scrollingcoordinator/scrolling-tree/gain-scrolling-node-parent-expected.txt:
  • scrollingcoordinator/scrolling-tree/lose-scrolling-node-parent-expected.txt:
  • scrollingcoordinator/scrolling-tree/nested-absolute-in-absolute-overflow-expected.txt:
  • scrollingcoordinator/scrolling-tree/nested-absolute-in-overflow-expected.txt:
  • scrollingcoordinator/scrolling-tree/nested-absolute-in-relative-in-overflow-expected.txt:
  • scrollingcoordinator/scrolling-tree/nested-absolute-in-sc-overflow-expected.txt:
  • scrollingcoordinator/scrolling-tree/nested-overflow-scroll-expected.txt:
  • scrollingcoordinator/scrolling-tree/overflow-in-fixed-expected.txt:
  • scrollingcoordinator/scrolling-tree/positioned-nodes-complex-expected.txt:
  • scrollingcoordinator/scrolling-tree/positioned-nodes-expected.txt:
  • scrollingcoordinator/scrolling-tree/remove-coordinated-frame-expected.txt:
  • scrollingcoordinator/scrolling-tree/remove-scrolling-role-expected.txt:
  • scrollingcoordinator/scrolling-tree/reparent-across-compositing-layers-expected.txt:
  • scrollingcoordinator/scrolling-tree/reparent-with-layer-removal-expected.txt:
  • scrollingcoordinator/scrolling-tree/scrolling-tree-includes-frame-expected.txt:
  • scrollingcoordinator/scrolling-tree/sticky-in-overflow-expected.txt:
  • scrollingcoordinator/scrolling-tree/toggle-coordinated-frame-scrolling-expected.txt:
  • tiled-drawing/scrolling/clamp-out-of-bounds-scrolls-expected.txt:
  • tiled-drawing/scrolling/fixed/absolute-inside-fixed-expected.txt:
  • tiled-drawing/scrolling/fixed/absolute-inside-out-of-view-fixed-expected.txt:
  • tiled-drawing/scrolling/fixed/fixed-in-overflow-expected.txt:
  • tiled-drawing/scrolling/fixed/fixed-position-out-of-view-expected.txt:
  • tiled-drawing/scrolling/fixed/fixed-position-out-of-view-negative-zindex-expected.txt:
  • tiled-drawing/scrolling/fixed/four-bars-expected.txt:
  • tiled-drawing/scrolling/fixed/four-bars-with-header-and-footer-expected.txt:
  • tiled-drawing/scrolling/fixed/four-bars-zoomed-expected.txt:
  • tiled-drawing/scrolling/fixed/negative-scroll-offset-expected.txt:
  • tiled-drawing/scrolling/fixed/negative-scroll-offset-in-view-expected.txt:
  • tiled-drawing/scrolling/fixed/nested-fixed-expected.txt:
  • tiled-drawing/scrolling/fixed/percentage-inside-fixed-expected.txt:
  • tiled-drawing/scrolling/frames/scroll-region-after-frame-layout-expected.txt:
  • tiled-drawing/scrolling/scrolling-tree-after-scroll-expected.txt:
  • tiled-drawing/scrolling/sticky/negative-scroll-offset-expected.txt:
  • tiled-drawing/scrolling/sticky/sticky-horizontal-expected.txt:
  • tiled-drawing/scrolling/sticky/sticky-vertical-expected.txt:
8:52 AM Changeset in webkit [271069] by commit-queue@webkit.org
  • 2 edits in trunk

[CMake] Fix seperated include dir of harfbuzz and harfbuzz-icu
https://bugs.webkit.org/show_bug.cgi?id=220082

Patch by Monson Shao <holymonson@gmail.com> on 2020-12-23
Reviewed by Alex Christensen.

In some distros (NixOS) harfbuzz and harfbuzz-icu may have different include dir.

  • Source/cmake/FindHarfBuzz.cmake:

Dec 22, 2020:

4:12 PM Changeset in webkit [271068] by dino@apple.com
  • 4 edits in trunk/LayoutTests

Update WebGL methods test to ignore makeXRCompatible
https://bugs.webkit.org/show_bug.cgi?id=220107
<rdar://problem/72603916>

Reviewed by Sam Weinig.

Sync upstream changes from
https://github.com/KhronosGroup/WebGL/pull/3198/
so that our versions of these tests can pass with
WebXR enabled.

  • webgl/1.0.3/resources/webgl_test_files/conformance/context/methods.html:
  • webgl/2.0.0/resources/webgl_test_files/conformance/context/methods.html:
  • webgl/2.0.0/resources/webgl_test_files/conformance2/context/methods-2.html:
3:56 PM Changeset in webkit [271067] by ap@apple.com
  • 3 edits
    2 moves in trunk/LayoutTests

Remove non-inclusive language from tests in http/tests/xmlhttprequest
https://bugs.webkit.org/show_bug.cgi?id=220096

Patch by Beth Dakin <Beth Dakin> on 2020-12-22
Reviewed by Alexey Proskuryakov.

  • http/tests/xmlhttprequest/access-control-basic-allow-list-request-headers.html:
  • http/tests/xmlhttprequest/access-control-basic-allow-list-response-headers.html:
  • http/tests/xmlhttprequest/resources/access-control-basic-allowlist-request-headers.cgi: Copied from http/tests/xmlhttprequest/resources/access-control-basic-whitelist-request-headers.cgi.
  • http/tests/xmlhttprequest/resources/access-control-basic-allowlist-response-headers.cgi: Copied from http/tests/xmlhttprequest/resources/access-control-basic-whitelist-response-headers.cgi.
  • http/tests/xmlhttprequest/resources/access-control-basic-whitelist-request-headers.cgi: Removed.
  • http/tests/xmlhttprequest/resources/access-control-basic-whitelist-response-headers.cgi: Removed.
3:45 PM Changeset in webkit [271066] by commit-queue@webkit.org
  • 2 edits in trunk/Source/ThirdParty/ANGLE

warning: enumerated and non-enumerated type in conditional expression in Compiler.cpp
https://bugs.webkit.org/show_bug.cgi?id=220062

Patch by Michael Catanzaro <Michael Catanzaro> on 2020-12-22
Reviewed by Dean Jackson.

Building ANGLE with -Wextra is too aggressive. -Wextra is great for code that we control,
where the burden of squashing warnings is relatively low. But with ANGLE, we have to either
land fixes upstream, or carry them downstream forever. It doesn't make sense to bother with
this for minor build warning fixes when upstream is clearly not using the same warning flags
and/or same compiler that we do.

Since we add -Wextra in our global flags, we have to manually override it here. We can now
also stop explicitly disabling other warnings that are implied by -Wextra.

Finally, note that changes.diff is not modified because this is, confusingly, a downstream
WebKit build file.

  • CMakeLists.txt:
2:37 PM Changeset in webkit [271065] by dino@apple.com
  • 14 edits in trunk/Source

Use an enum class to identify WebGL versions
https://bugs.webkit.org/show_bug.cgi?id=220099
<rdar://problem/72596828>

Reviewed by Ken Russell.

Source/WebCore:

Rather than doing string comparisons multiple times, against
values that have been deprecated, use an enum class to
identify the version of WebGL that we are creating.

  • html/HTMLCanvasElement.cpp:

(WebCore::HTMLCanvasElement::getContext):
(WebCore::HTMLCanvasElement::toWebGLVersion):
(WebCore::HTMLCanvasElement::createContextWebGL):
(WebCore::HTMLCanvasElement::getContextWebGL):

  • html/HTMLCanvasElement.h:
  • html/canvas/WebGLRenderingContextBase.cpp:

(WebCore::WebGLRenderingContextBase::create):

  • html/canvas/WebGLRenderingContextBase.h:
  • platform/graphics/GraphicsContextGLAttributes.h: New enum class.
  • platform/graphics/RemoteGraphicsContextGLProxyBase.cpp:

(WebCore::RemoteGraphicsContextGLProxyBase::isGLES2Compliant const):

  • platform/graphics/cocoa/GraphicsContextGLOpenGLCocoa.mm:

(WebCore::InitializeEGLDisplay): Add a logging statement as a drive-by.
(WebCore::GraphicsContextGLOpenGL::GraphicsContextGLOpenGL):

Source/WebKit:

Encode the WebGL version.

  • Shared/WebCoreArgumentCoders.cpp:

(IPC::ArgumentCoder<WebCore::GraphicsContextGLAttributes>::encode):
(IPC::ArgumentCoder<WebCore::GraphicsContextGLAttributes>::decode):

  • Shared/WebCoreArgumentCoders.h:
2:19 PM Changeset in webkit [271064] by Alan Bujtas
  • 4 edits in trunk/Source/WebCore

[LFC][IFC] Use reserveInitialCapacity when applicable
https://bugs.webkit.org/show_bug.cgi?id=220100
<rdar://problem/72598083>

Reviewed by Simon Fraser.

  • layout/inlineformatting/InlineFormattingContext.cpp:

(WebCore::Layout::InlineFormattingContext::lineLayout): inlineItems size is a better approximation.
(WebCore::Layout::InlineFormattingContext::computeGeometryForLineContent):

  • layout/inlineformatting/InlineLineBox.cpp:

(WebCore::Layout::m_isConsideredEmpty):

  • layout/integration/LayoutIntegrationInlineContentBuilder.cpp:

(WebCore::LayoutIntegration::InlineContentBuilder::createDisplayLineRuns const):
(WebCore::LayoutIntegration::InlineContentBuilder::createDisplayLines const):

1:18 PM Changeset in webkit [271063] by Beth Dakin
  • 7 edits
    1 copy
    2 moves in trunk/LayoutTests

Remove non-inclusive language from tests in http/tests/contentextensions/
https://bugs.webkit.org/show_bug.cgi?id=220094

Reviewed by Alex Christensen.

  • http/tests/contentextensions/allowlist-expected.txt: Copied from http/tests/contentextensions/whitelist-expected.txt.
  • http/tests/contentextensions/allowlist.html: Copied from http/tests/contentextensions/whitelist.html.
  • http/tests/contentextensions/allowlist.html.json: Copied from http/tests/contentextensions/whitelist.html.json.
  • http/tests/contentextensions/basic-filter.html:
  • http/tests/contentextensions/basic-filter.html.json:
  • http/tests/contentextensions/crash-xhr.html.json:
  • http/tests/contentextensions/filters-with-quantifiers-combined-expected.txt:
  • http/tests/contentextensions/filters-with-quantifiers-combined.html:
  • http/tests/contentextensions/filters-with-quantifiers-combined.html.json:
  • http/tests/contentextensions/whitelist-expected.txt: Removed.
  • http/tests/contentextensions/whitelist.html: Removed.
  • http/tests/contentextensions/whitelist.html.json: Removed.
12:40 PM Changeset in webkit [271062] by commit-queue@webkit.org
  • 4 edits in trunk/Source/ThirdParty/ANGLE

[WebGL2] deqp/functional/gles3/texturespecification RGB4444 and RGB565 failures on Mac AMD
https://bugs.webkit.org/show_bug.cgi?id=220093

Patch by Kenneth Russell <kbr@chromium.org> on 2020-12-22
Reviewed by Alex Christensen.

Promote the RGBA4444 and RGB565 texture formats to RGB[A]8 in
order to work around OpenGL driver bugs on macOS with AMD GPUs.

  • include/platform/FeaturesGL.h:
  • src/libANGLE/renderer/gl/formatutilsgl.cpp:

(rx::nativegl::GetNativeInternalFormat):

  • src/libANGLE/renderer/gl/renderergl_utils.cpp:

(rx::nativegl_gl::InitializeFeatures):

12:30 PM Changeset in webkit [271061] by commit-queue@webkit.org
  • 5 edits in trunk

Support aspect-ratio on positioned elements
https://bugs.webkit.org/show_bug.cgi?id=219741

Patch by Rob Buis <rbuis@igalia.com> on 2020-12-22
Reviewed by Simon Fraser.

Source/WebCore:

Support aspect-ratio on positioned elements taking into account
insets in the case where no width/height is specified.

  • rendering/RenderBox.cpp:

(WebCore::RenderBox::computePositionedLogicalWidthUsing const):
(WebCore::RenderBox::computePositionedLogicalHeightUsing const):
(WebCore::RenderBox::shouldComputeLogicalHeightFromAspectRatio const): We should not compute
the logical height if there is an implied height due to top/bottom.
(WebCore::RenderBox::shouldComputeLogicalWidthFromAspectRatio const):
(WebCore::RenderBox::shouldComputeLogicalWidthFromAspectRatioAndInsets const): Helper method
to determine whether logical width can be computed from inset information in the case where
no width/height are specified.
(WebCore::RenderBox::computeLogicalWidthFromAspectRatio const): compute logical width
from the computed logical height constriaining it by min max.

  • rendering/RenderBox.h:

LayoutTests:

Enable some tests that pass now.

12:00 PM Changeset in webkit [271060] by youenn@apple.com
  • 7 edits
    2 adds in trunk

MediaStreamTrack.muted value should not change before the corresponding event is fired
https://bugs.webkit.org/show_bug.cgi?id=220084

Reviewed by Eric Carlson.

Source/WebCore:

Before the patch, the muted value was changed and a task was queued to dispatch the corresponding event.
During a period of time, the muted value was changed while the event was not fired.
To fix this, dispatch a task that will change the value and dispatch the event.
MediaStreamTrack is now storing the muted value instead of relying on its m_private muted value.
The muted value is only used for JS as the rest of the code base expects to get the actual muted value.

Test: fast/mediastream/media-stream-track-muted-event.html

  • Modules/mediastream/MediaStreamTrack.cpp:

(WebCore::MediaStreamTrack::MediaStreamTrack):
(WebCore::MediaStreamTrack::mutedForBindings const):
(WebCore::MediaStreamTrack::trackMutedChanged):

  • Modules/mediastream/MediaStreamTrack.h:
  • Modules/mediastream/MediaStreamTrack.idl:

LayoutTests:

  • fast/mediastream/media-stream-track-muted-event-expected.txt: Added.
  • fast/mediastream/media-stream-track-muted-event.html: Added.
  • platform/ios/mediastream/audio-muted-in-background-tab.html: Updated to cope with async muted change.
  • platform/ios/mediastream/video-muted-in-background-tab.html: Dittod
11:45 AM Changeset in webkit [271059] by Kate Cheney
  • 11 edits in trunk/Source

Cannot see 'Add to my stations' button in BBC World service Radio
https://bugs.webkit.org/show_bug.cgi?id=219949
<rdar://problem/60319532>

Reviewed by Alex Christensen.

This is a temporary quirk to assist a high-traffic website while they
complete the large task of migrating away from site compatibility using
third party cookies. This quirk will be removed when the site is
updated.

Source/WebCore:

No new tests, site-specific quirk.

Create a quirk that will call the Storage Access API on behalf of
BBC for radioplayer.co.uk under bbc.co.uk. When the user clicks to open
the radio player pop-up, storage access is requested. If the user grants
permission, then we open the pop-up to static.radioplayer.co.uk to get
first party status, then immediately redirect to the radio player page.

This changes the language of the site-specific quirk code in
NetworkStorageSession now that we are creating quirks for instances
other than login cases.

  • loader/DocumentLoader.cpp:

(WebCore::DocumentLoader::responseReceived):

  • page/DOMWindow.cpp:

(WebCore::DOMWindow::open):
Even if WebKit cancels the pop-up click in Element::dispatchMouseEvent,
the popup still appears. So we should check here if the pop-up is trying
to load before storage access has been granted. If so, we should cancel it
and wait for the quirk to re-open the pop-up after prompting the user.
Also adds a null frame check.

  • page/Quirks.cpp:

(WebCore::isBBCDomain):
(WebCore::isBBCPopOutPlayerElement):
(WebCore::Quirks::BBCRadioPlayerURLString):
(WebCore::Quirks::staticRadioPlayerURLString):
(WebCore::Quirks::triggerOptionalStorageAccessQuirk const):

  • page/Quirks.h:

This is where we check if the pop-up button has been clicked and
prompt for storage access if needed. If the user grants storage
access, we should open a popup to static.radioplayer.co.uk so it
gets marked as first party, then inject script to redirect to the
correct BBC radio player page.

  • platform/network/NetworkStorageSession.cpp:

(WebCore::NetworkStorageSession::storageAccessQuirks):
(WebCore::NetworkStorageSession::loginDomainMatchesRequestingDomain):
(WebCore::NetworkStorageSession::canRequestStorageAccessForLoginOrCompatibilityPurposesWithoutPriorUserInteraction):
(WebCore::NetworkStorageSession::subDomainInNeedOfStorageAccessForFirstParty):
(WebCore::NetworkStorageSession::canRequestStorageAccessForLoginPurposesWithoutPriorUserInteraction): Deleted.
(WebCore::NetworkStorageSession::loginDomainForFirstParty): Deleted.

  • platform/network/NetworkStorageSession.h:

Change wording now that quirks are not only being used for login
flows.

Source/WebKit:

Create a quirk that will call the Storage Access API on behalf of
BBC for radioplayer.co.uk under bbc.co.uk. When the user clicks to open
the radio player pop-up, storage access is requested. If the user grants
permission, then we open the pop-up to static.radioplayer.co.uk to get
first party status, then immediately redirect to the radio player page.

  • NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp:

(WebKit::ResourceLoadStatisticsDatabaseStore::grantStorageAccess):
(WebKit::ResourceLoadStatisticsDatabaseStore::grantStorageAccessInternal):
(WebKit::ResourceLoadStatisticsDatabaseStore::cookieAccess):

  • NetworkProcess/Classifier/WebResourceLoadStatisticsStore.cpp:

(WebKit::WebResourceLoadStatisticsStore::requestStorageAccessEphemeral):
Change wording now that quirks are not only being used for login
flows.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::createNewPage):
Mark the quirk-initiated pop-up as user-initiated so it doesn't get
blocked.

11:02 AM Changeset in webkit [271058] by Alan Bujtas
  • 4 edits in trunk/Source/WebCore

[LFC][IFC] Add fast path for the most common "inline level box is the child of the root inline box" case
https://bugs.webkit.org/show_bug.cgi?id=220089
<rdar://problem/72590141>

Reviewed by Simon Fraser.

  • layout/inlineformatting/InlineFormattingState.h:

(WebCore::Layout::InlineFormattingState::addLineRun):

  • layout/inlineformatting/InlineLineBox.cpp:

(WebCore::Layout::LineBox::logicalMarginRectForInlineLevelBox const):

  • layout/inlineformatting/InlineLineBox.h:

(WebCore::Layout::LineBox::inlineLevelBoxList const):
(WebCore::Layout::LineBox::containsInlineLevelBox const): Deleted.

10:40 AM Changeset in webkit [271057] by Ryan Haddad
  • 14 edits in trunk

Unreviewed, fix the build with recent SDKs.

Source/WebCore:

  • platform/cocoa/DragImageCocoa.mm:

(WebCore::createDragImageIconForCachedImageFilename):

  • platform/graphics/mac/IconMac.mm:

(WebCore::Icon::createIconForFileExtension):
(WebCore::Icon::createIconForUTI):

  • platform/mac/LocalDefaultSystemAppearance.mm:

(WebCore::LocalDefaultSystemAppearance::LocalDefaultSystemAppearance):
(WebCore::LocalDefaultSystemAppearance::~LocalDefaultSystemAppearance):

  • platform/mac/ScrollAnimatorMac.mm:

(-[WebScrollerImpDelegate effectiveAppearanceForScrollerImp:]):
(WebCore::ScrollAnimatorMac::contentAreaWillPaint const):

  • platform/mac/ScrollbarThemeMac.mm:

(WebCore::ScrollbarThemeMac::paintScrollCorner):

  • platform/mac/ThemeMac.mm:

(WebCore::paintStepper):
(WebCore::ThemeMac::ensuredView):
(WebCore::ThemeMac::supportsLargeFormControls):

  • rendering/RenderThemeMac.mm:

(WebCore::RenderThemeMac::paintProgressBar):
(WebCore::createAttachmentPlaceholderImage):

Source/WebKit:

  • UIProcess/PDF/WKPDFHUDView.mm:

(-[WKPDFHUDView _getImageForControlName:]):

  • UIProcess/RemoteLayerTree/mac/ScrollerMac.mm:

(-[WKScrollerImpDelegate effectiveAppearanceForScrollerImp:]):

Tools:

  • MiniBrowser/mac/ExtensionManagerWindowController.m:

(-[ExtensionManagerWindowController add:]):

  • MiniBrowser/mac/WK2BrowserWindowController.m:

(-[WK2BrowserWindowController webView:runOpenPanelWithParameters:initiatedByFrame:completionHandler:webView:runOpenPanelWithParameters:initiatedByFrame:completionHandler:]):
(-[WK2BrowserWindowController saveAsPDF:]):
(-[WK2BrowserWindowController saveAsWebArchive:]):

10:28 AM Changeset in webkit [271056] by commit-queue@webkit.org
  • 5 edits in trunk

REGRESSION(r270612) [GStreamer][MSE] Some play/seek related failures
https://bugs.webkit.org/show_bug.cgi?id=219822

Patch by Philippe Normand <pnormand@igalia.com> on 2020-12-22
Reviewed by Xabier Rodriguez-Calvar.

Source/WebCore:

Call appendComplete which internally synchronizes the TrackBuffer buffered ranges and calls
m_client->sourceBufferPrivateAppendComplete().

  • platform/graphics/gstreamer/mse/SourceBufferPrivateGStreamer.cpp:

(WebCore::SourceBufferPrivateGStreamer::didReceiveAllPendingSamples):
(WebCore::SourceBufferPrivateGStreamer::appendParsingFailed):

LayoutTests:

Unflag tests now-passing and flag tests that were mis-gardened before this regression happened.

  • platform/glib/TestExpectations:
  • platform/gtk/TestExpectations:
10:11 AM Changeset in webkit [271055] by Antti Koivisto
  • 10 edits in trunk/Source/WebCore

[LFC][Integration] Invalidate line layout path for children of inlines
https://bugs.webkit.org/show_bug.cgi?id=219639

Reviewed by Zalan Bujtas.

We currently assume you can just invalidate the direct parent.

  • layout/integration/LayoutIntegrationLineLayout.cpp:

(WebCore::LayoutIntegration::LineLayout::blockContainer):
(WebCore::LayoutIntegration::LineLayout::containing):

  • layout/integration/LayoutIntegrationLineLayout.h:
  • rendering/RenderObject.cpp:

(WebCore::RenderObject::insertedIntoTree):
(WebCore::RenderObject::willBeRemovedFromTree):

Invalidate here.

  • rendering/RenderText.cpp:

(WebCore::RenderText::setText):

  • rendering/updating/RenderTreeBuilder.cpp:

(WebCore::RenderTreeBuilder::attachToRenderElementInternal):

  • rendering/updating/RenderTreeBuilderBlock.cpp:

(WebCore::RenderTreeBuilder::Block::attachIgnoringContinuation):
(WebCore::RenderTreeBuilder::Block::detach):

8:48 AM Changeset in webkit [271054] by Simon Fraser
  • 3 edits
    2 adds in trunk

Sibling element wheel event regions can be wrong
https://bugs.webkit.org/show_bug.cgi?id=220071
Source/WebCore:

<rdar://problem/72435466>

Reviewed by Daniel Bates.

RenderStyle contains eventListenerRegionTypes() data which derive from registered
wheel event handlers, so style sharing needs to avoid sharing style between elements
with different handlers. For now, just disable style sharing for any elements
which event handlers.

Test: fast/scrolling/mac/wheel-event-listener-region-siblings.html

  • style/StyleSharingResolver.cpp:

(WebCore::Style::SharingResolver::canShareStyleWithElement const):

LayoutTests:

Reviewed by Daniel Bates.

  • fast/scrolling/mac/wheel-event-listener-region-siblings-expected.txt: Added.
  • fast/scrolling/mac/wheel-event-listener-region-siblings.html: Added.
8:09 AM Changeset in webkit [271053] by Simon Fraser
  • 3 edits
    2 adds in trunk

Layout overflow is computed incorrectly inside flexbox (breaks sticky positioning)
https://bugs.webkit.org/show_bug.cgi?id=220075
Source/WebCore:

<rdar://problem/70956639>

Reviewed by Zalan Bujtas.

RenderBlock::endAndCommitUpdateScrollInfoAfterLayoutTransaction(), which is only called by grid
and flexbox layout, would unconditionally clear layout overflow on boxes with overflow clipping,
which resulted in incorrect sticky positioning because RenderBoxModelObject::computeStickyPositionConstraints()
consults layout overflow.

It was only through happenstance that overflow:scroll worked correctly, relying on the fact
that updateScrollInfoAfterLayout() would trigger caching of scroll dimensions on RenderLayer.

This clearing was added in r151360 but seems incorrect; layout overflow should be preserved
after layout.

Test: fast/flexbox/preserve-layout-overflow.html

  • rendering/RenderBlock.cpp:

(WebCore::RenderBlock::endAndCommitUpdateScrollInfoAfterLayoutTransaction):

LayoutTests:

Reviewed by Zalan Bujtas.

  • fast/flexbox/preserve-layout-overflow-expected.txt: Added.
  • fast/flexbox/preserve-layout-overflow.html: Added.
6:33 AM Changeset in webkit [271052] by Alan Bujtas
  • 7 edits in trunk/Source/WebCore

[LFC][Integration] Compute enclosing top and bottom while constructing the inline runs
https://bugs.webkit.org/show_bug.cgi?id=220064
<rdar://problem/72556810>

Reviewed by Antti Koivisto.

Let's pre-compute the enclosing top and bottom coordinates while constructing the line runs.
(This saves a loop on the inline level boxes while constructing the lines at InlineContentBuilder::createDisplayLines)

  • layout/inlineformatting/InlineFormattingContext.cpp:

(WebCore::Layout::InlineFormattingContext::computeGeometryForLineContent):

  • layout/inlineformatting/InlineLineGeometry.h:

(WebCore::Layout::InlineLineGeometry::enclosingTopAndBottom const):
(WebCore::Layout::InlineLineGeometry::InlineLineGeometry):

  • layout/integration/LayoutIntegrationInlineContentBuilder.cpp:

(WebCore::LayoutIntegration::InlineContentBuilder::createDisplayLineRuns const):
(WebCore::LayoutIntegration::InlineContentBuilder::createDisplayLines const):

  • layout/integration/LayoutIntegrationLine.h:

(WebCore::LayoutIntegration::Line::Line):
(WebCore::LayoutIntegration::Line::enclosingContentTop const):
(WebCore::LayoutIntegration::Line::enclosingContentBottom const):

  • layout/integration/LayoutIntegrationPagination.cpp:

(WebCore::LayoutIntegration::makeAdjustedContent):

4:42 AM Changeset in webkit [271051] by commit-queue@webkit.org
  • 11 edits in trunk/LayoutTests/imported/w3c

Add test for logical properties in webkit non-standard '-webkit-writing-mode: horizontal-bt' mode
https://bugs.webkit.org/show_bug.cgi?id=220015

Patch by Ziran Sun <Ziran Sun> on 2020-12-22
Reviewed by Manuel Rego Casasnovas.

  • web-platform-tests/css/css-logical/logical-box-border-color-expected.txt:
  • web-platform-tests/css/css-logical/logical-box-border-radius-expected.txt:
  • web-platform-tests/css/css-logical/logical-box-border-shorthands-expected.txt:
  • web-platform-tests/css/css-logical/logical-box-border-style-expected.txt:
  • web-platform-tests/css/css-logical/logical-box-border-width-expected.txt:
  • web-platform-tests/css/css-logical/logical-box-inset-expected.txt:
  • web-platform-tests/css/css-logical/logical-box-margin-expected.txt:
  • web-platform-tests/css/css-logical/logical-box-padding-expected.txt:
  • web-platform-tests/css/css-logical/logical-box-size-expected.txt:
  • web-platform-tests/css/css-logical/resources/test-shared.js:

(CSS.supports):

4:22 AM Changeset in webkit [271050] by Lauro Moura
  • 4 edits in trunk/Tools

[Flapak SDK] Allow setting custom SDK repository locations and other small fixes
https://bugs.webkit.org/show_bug.cgi?id=219884

Reviewed by Philippe Normand.

Tools:

  • Update envvar to match the WEBKIT_FLATPAK prefix
  • Give precedence to the verbose flag instead of envvar
  • Enable logging earlier to be used in the parse step
  • Error out if the user provides an user repo that is not accessible.
  • flatpak/flatpakutils.py:

(WebkitFlatpak.load_from_args):
(WebkitFlatpak.clean_args):

Tools/buildstream:

  • Allow inheriting the RSYNC info from envvar for local testing.
  • Add a 'dry-push-repo' command to be able to perform push-repo dry-runs.
  • Makefile:
2:11 AM Changeset in webkit [271049] by youenn@apple.com
  • 10 edits in trunk/Source

[iOS] Do extensive search for microphone devices when trying to capture
https://bugs.webkit.org/show_bug.cgi?id=220010
<rdar://problem/72036034>

Reviewed by Eric Carlson.

Source/WebCore:

It is not possible to discover some audio input devices without an active audio
session, so WebKit allocates an auxiliary audio session when it needs to build
a list of audio capture devices. The full list of devices is only needed when
evaluating getUserMedia audio constraints, or for enumerateDevices *after* capture
is active (we return a truncated list before capture is active), so don't activate
the session until we need to validate audio constraints or after the user gives
permission to capture.

Manually tested on device with built-in, BT, and USB audio inputs.

  • platform/mediastream/RealtimeMediaSourceFactory.h:

(WebCore::AudioCaptureFactory::addExtensiveObserver):
(WebCore::AudioCaptureFactory::removeExtensiveObserver):

  • platform/mediastream/ios/AVAudioSessionCaptureDeviceManager.h:
  • platform/mediastream/ios/AVAudioSessionCaptureDeviceManager.mm:

(WebCore::AVAudioSessionCaptureDeviceManager::refreshAudioCaptureDevices):
(WebCore::AVAudioSessionCaptureDeviceManager::enableAllDevicesQuery):
(WebCore::AVAudioSessionCaptureDeviceManager::disableAllDevicesQuery):

  • platform/mediastream/ios/CoreAudioCaptureSourceIOS.h:
  • platform/mediastream/ios/CoreAudioCaptureSourceIOS.mm:

(WebCore::CoreAudioCaptureSourceFactoryIOS::addExtensiveObserver):
(WebCore::CoreAudioCaptureSourceFactoryIOS::removeExtensiveObserver):
(WebCore::CoreAudioCaptureSourceFactoryIOS::createAudioCaptureSource):
In UIProcess, UserMediaPermissionRequestManagerProxy makes sure to enable the extensive audio device query.
In WebProcess, we also need this when starting the audio capture.
We enable it when there is no observer to handle the WebProcess side.

  • platform/mediastream/mac/CoreAudioCaptureSource.h:

(WebCore::CoreAudioCaptureSourceFactory::createAudioCaptureSource):

Source/WebKit:

Enable exhaustive audio device query in case getUserMedia is called for audio capture.
In case the manager is destroyed or reset after some time without capturing, make sure to disable
exhaustive audio device query if no other page need it.

  • UIProcess/UserMediaPermissionRequestManagerProxy.cpp:

(WebKit::UserMediaPermissionRequestManagerProxy::invalidatePendingRequests):
(WebKit::UserMediaPermissionRequestManagerProxy::denyRequest):
(WebKit::UserMediaPermissionRequestManagerProxy::resetAccess):
(WebKit::UserMediaPermissionRequestManagerProxy::startProcessingUserMediaPermissionRequest):

  • UIProcess/UserMediaPermissionRequestManagerProxy.h:
Note: See TracTimeline for information about the timeline view.