Timeline
Jan 10, 2021:
- 9:40 PM Changeset in webkit [271352] by
-
- 5 edits in trunk/Source/JavaScriptCore
[JSC] JITCage's Gate mechanism is used in ARM64E even if JITCage is disable
https://bugs.webkit.org/show_bug.cgi?id=220500
Reviewed by Mark Lam.
We should ensure that Gate mechanism just works even if ENABLE(JIT_CAGE) is OFF in ARM64E since
in LLInt we are always using Gate even if ENABLE(JIT_CAGE) is OFF. It makes LLInt code
significantly simpler: we do not want to have multiple implementations for ARM64E for ENABLE(JIT_CAGE) ON/OFF
in LLInt if it is not necessary in terms of performance. And it didn't cause performance regression.
So for simplicity, we are always using Gate in LLInt.
However, when disabling ENABLE(JIT_CAGE), we accidentally disabled Gate mechanism too in LLInt.
It makes ARM64E broken if ENABLE(JIT_CAGE) is OFF. This patch makes Gate work even if ENABLE(JIT_CAGE) is OFF,
and this is the expected design.
- llint/LLIntData.cpp:
(JSC::LLInt::initialize):
- llint/LLIntEntrypoint.cpp:
(JSC::LLInt::setFunctionEntrypoint):
(JSC::LLInt::setEvalEntrypoint):
(JSC::LLInt::setProgramEntrypoint):
(JSC::LLInt::setModuleProgramEntrypoint):
- llint/LLIntThunks.cpp:
- llint/LLIntThunks.h:
- 11:13 AM Changeset in webkit [271351] by
-
- 6 edits in trunk/Source/WebCore
[LFC][IFC] Make "inline level box affects line box geometry" logic more explicit
https://bugs.webkit.org/show_bug.cgi?id=220232
Reviewed by Antti Koivisto.
Since InlineLevelBox::isEmpty makes little sense in case of non-inline-boxes (e.g. <br>), let's make
the following set of changes:
- Introduce InlineLevelBox::setHasContent for inline boxes only (<span>has content</span>, <div>root inlinebox has content</div>)
- Both atomic and line box logic is moved to InlineFormattingContext::Quirks::inlineLevelBoxAffectsLineBox
This is also in preparation for getting rid of the is-considered-empty concept for line/line box.
- layout/inlineformatting/InlineFormattingContext.h:
- layout/inlineformatting/InlineFormattingContextGeometry.cpp:
(WebCore::Layout::LineBoxBuilder::constructInlineLevelBoxes):
(WebCore::Layout::LineBoxBuilder::computeLineBoxHeightAndAlignInlineLevelBoxesVertically):
- layout/inlineformatting/InlineFormattingContextQuirks.cpp:
(WebCore::Layout::InlineFormattingContext::Quirks::inlineLevelBoxAffectsLineBox const):
(WebCore::Layout::InlineFormattingContext::Quirks::shouldInlineLevelBoxStretchLineBox const): Deleted.
- layout/inlineformatting/InlineLineBox.cpp:
(WebCore::Layout::LineBox::InlineLevelBox::setHasContent):
- layout/inlineformatting/InlineLineBox.h:
(WebCore::Layout::LineBox::InlineLevelBox::hasContent const):
(WebCore::Layout::LineBox::InlineLevelBox::isEmpty const): Deleted.
(WebCore::Layout::LineBox::InlineLevelBox::setIsNonEmpty): Deleted.
- 10:09 AM Changeset in webkit [271350] by
-
- 7 edits2 adds in trunk
[LFC][Integration] Factor marked text style collection code out of InlineTextBox
https://bugs.webkit.org/show_bug.cgi?id=220249
Reviewed by Zalan Bujtas.
Source/WebCore:
This makes it possible to use the code from LFC painting.
- Sources.txt:
- WebCore.xcodeproj/project.pbxproj:
- rendering/InlineTextBox.cpp:
(WebCore::InlineTextBox::paint):
(WebCore::InlineTextBox::MarkedTextStyle::areBackgroundMarkedTextStylesEqual): Deleted.
(WebCore::InlineTextBox::MarkedTextStyle::areForegroundMarkedTextStylesEqual): Deleted.
(WebCore::InlineTextBox::MarkedTextStyle::areDecorationMarkedTextStylesEqual): Deleted.
(WebCore::InlineTextBox::StyledMarkedText::StyledMarkedText): Deleted.
(WebCore::InlineTextBox::computeStyleForUnmarkedMarkedText const): Deleted.
(WebCore::InlineTextBox::resolveStyleForMarkedText): Deleted.
(WebCore::InlineTextBox::subdivideAndResolveStyle): Deleted.
(WebCore::InlineTextBox::coalesceAdjacentMarkedTexts): Deleted.
- rendering/InlineTextBox.h:
- rendering/MarkedTextStyle.cpp: Added.
(WebCore::resolveStyleForMarkedText):
(WebCore::computeStyleForUnmarkedMarkedText):
(WebCore::subdivideAndResolveStyle):
(WebCore::coalesceAdjacentMarkedTexts):
- rendering/MarkedTextStyle.h: Added.
(WebCore::MarkedTextStyle::areBackgroundMarkedTextStylesEqual):
(WebCore::MarkedTextStyle::areForegroundMarkedTextStylesEqual):
(WebCore::MarkedTextStyle::areDecorationMarkedTextStylesEqual):
(WebCore::StyledMarkedText::StyledMarkedText):
LayoutTests:
Mark http/wpt/css/css-highlight-api/highlight-text-cascade.html failing.
This test requires CSS4 highlight pseudo element inheritance (https://bugs.webkit.org/show_bug.cgi?id=220325)
which we (or anyone else) don't support.
It was passing by accident because the code was getting '::highlight' pseudo element style from a wrong element
(containing block instead of inline element) in certain cases. Renderer was found via InlineBox parent() which doesn't
match render tree parent in case inline culling optimization is active. The correct way is to use render tree parent.
- 4:04 AM Changeset in webkit [271349] by
-
- 14 edits in trunk/Source/WebCore
Remove InlineBox::hasSelectedChildren bit
https://bugs.webkit.org/show_bug.cgi?id=220240
Reviewed by Sam Weinig.
It is only needed for selection gap painting and easily computed.
- rendering/ComplexLineLayout.cpp:
(WebCore::ComplexLineLayout::constructLine):
- rendering/InlineBox.h:
(WebCore::InlineBox::setCanHaveLeftExpansion):
(WebCore::InlineBox::InlineBoxBitfields::InlineBoxBitfields):
(WebCore::InlineBox::hasEllipsisBox const):
(WebCore::InlineBox::canHaveLeftExpansion const):
(WebCore::InlineBox::hasSelectedChildren const): Deleted.
(WebCore::InlineBox::setHasSelectedChildren): Deleted.
- rendering/RenderBlockFlow.cpp:
(WebCore::RenderBlockFlow::inlineSelectionGaps):
- rendering/RenderLineBreak.cpp:
(WebCore::RenderLineBreak::setSelectionState): Deleted.
- rendering/RenderLineBreak.h:
- rendering/RenderListMarker.cpp:
(WebCore::RenderListMarker::setSelectionState): Deleted.
- rendering/RenderListMarker.h:
- rendering/RenderReplaced.cpp:
(WebCore::RenderReplaced::setSelectionState): Deleted.
- rendering/RenderReplaced.h:
- rendering/RenderText.cpp:
(WebCore::RenderText::setSelectionState):
- rendering/RenderTextLineBoxes.cpp:
(WebCore::RenderTextLineBoxes::setSelectionState): Deleted.
- rendering/RenderTextLineBoxes.h:
- rendering/RootInlineBox.h:
Jan 9, 2021:
- 5:14 AM Changeset in webkit [271348] by
-
- 20 edits2 adds in trunk
play.google.com: App preview images are clipped
https://bugs.webkit.org/show_bug.cgi?id=220470
<rdar://problem/60258531>
Reviewed by Simon Fraser.
Source/WebCore:
"The baseline of an 'inline-block' is the baseline of its last line box in the normal flow, unless it has either no in-flow line boxes
or if its 'overflow' property has a computed value other than 'visible', in which case the baseline is the bottom margin edge."
https://www.w3.org/TR/CSS22/visudet.html#leading
Test: fast/inline/inline-block-baseline-with-overflow-not-visible.html
- rendering/RenderBlockFlow.cpp:
(WebCore::RenderBlockFlow::inlineBlockBaseline const):
LayoutTests:
Progressions (matching FF and Chrome).
- fast/inline/inline-block-baseline-with-overflow-not-visible-expected.html: Added.
- fast/inline/inline-block-baseline-with-overflow-not-visible.html: Added.
- 4:31 AM Changeset in webkit [271347] by
-
- 4 edits in trunk/Source/WebCore
[LFC][IFC] Use the bottom margin edge as the baseline for inline-block when overflow is not visible
https://bugs.webkit.org/show_bug.cgi?id=220481
Reviewed by Antti Koivisto.
"The baseline of an 'inline-block' is the baseline of its last line box in the normal flow, unless it has either no in-flow line boxes
or if its 'overflow' property has a computed value other than 'visible', in which case the baseline is the bottom margin edge."
https://www.w3.org/TR/CSS22/visudet.html#leading
- layout/inlineformatting/InlineFormattingContextGeometry.cpp:
(WebCore::Layout::LineBoxBuilder::constructInlineLevelBoxes):
- 4:01 AM Changeset in webkit [271346] by
-
- 2 edits in trunk/Tools
[GStreamer] Build failure with gst-build: Missing gst/audio/audio.h
https://bugs.webkit.org/show_bug.cgi?id=220494
Reviewed by Philippe Normand.
Make the tests include the audio headers for gst/audio/audio. It is
included in TestUIClient through WebPreferences -> IPC::Decoder ->
SharedBuffer -> GStreamerCommon.
- TestWebKitAPI/glib/CMakeLists.txt: