⚠ Archived content — this site is no longer maintained.   Current WebKit documentation is at docs.webkit.org.

Timeline



Jan 10, 2021:

9:40 PM Changeset in webkit [271352] by ysuzuki@apple.com
  • 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 Alan Bujtas
  • 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:

  1. Introduce InlineLevelBox::setHasContent for inline boxes only (<span>has content</span>, <div>root inlinebox has content</div>)
  2. 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 Antti Koivisto
  • 7 edits
    2 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 Antti Koivisto
  • 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 Alan Bujtas
  • 20 edits
    2 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 Alan Bujtas
  • 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 Lauro Moura
  • 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:
Note: See TracTimeline for information about the timeline view.