Timeline
Dec 26, 2019:
- 12:38 PM Changeset in webkit [253917] by
-
- 9 edits2 adds in trunk
Remove display:compact
https://bugs.webkit.org/show_bug.cgi?id=205597
Reviewed by Anders Carlsson.
Source/WebCore:
It is rendered as 'block' but the value is still parsed. Remove it completely, matching other engines.
Test: fast/css/display-compact-ignored.html
- css/CSSPrimitiveValueMappings.h:
(WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
- css/CSSValueKeywords.in:
- rendering/RenderElement.cpp:
(WebCore::RenderElement::createFor):
- rendering/RenderTheme.cpp:
(WebCore::RenderTheme::adjustStyle):
- rendering/style/RenderStyleConstants.cpp:
(WebCore::operator<<):
- rendering/style/RenderStyleConstants.h:
- style/StyleAdjuster.cpp:
(WebCore::Style::equivalentBlockDisplay):
LayoutTests:
- fast/css/display-compact-ignored-expected.txt: Added.
- fast/css/display-compact-ignored.html: Added.
- 11:01 AM Changeset in webkit [253916] by
-
- 21 edits in trunk/Source/WebCore
Minor code cleanup around WebCore::Path
https://bugs.webkit.org/show_bug.cgi?id=205574
Reviewed by Anders Carlsson.
Carry out some minor refactoring in WebCore::Path:
- Change PathElementType into an 8-bit-wide enum class, and move it under PathElement's namespace as simply Type.
- Change PathElement's
FloatPoint*that points to an array of 3 FloatPoints into aFloatPoint[3]. - Change Path::strokeContains() to take a
StrokeStyleApplier&instead of aStrokeStyleApplier*, since it assumes that the givenStrokeStyleApplieris nonnull anyways. - Change Path::RoundedRectStrategy into an 8-bit enum class.
- Other miscellaneous style fixes.
No change in behavior.
- accessibility/mac/WebAccessibilityObjectWrapperBase.mm:
(convertPathToScreenSpaceFunction):
- html/canvas/CanvasRenderingContext2DBase.cpp:
(WebCore::CanvasRenderingContext2DBase::isPointInStrokeInternal):
- inspector/InspectorOverlay.cpp:
(WebCore::drawShapeHighlight):
- platform/graphics/FontCascade.cpp:
(WebCore::findPathIntersections):
- platform/graphics/Path.cpp:
(WebCore::Path::addRoundedRect):
(WebCore::operator<<):
- platform/graphics/Path.h:
(WebCore::Path::encode const):
(WebCore::Path::decode):
- platform/graphics/PathTraversalState.cpp:
(WebCore::PathTraversalState::appendPathElement):
(WebCore::PathTraversalState::processPathElement):
- platform/graphics/PathTraversalState.h:
- platform/graphics/cairo/PathCairo.cpp:
(WebCore::Path::strokeContains const):
(WebCore::Path::apply const):
- platform/graphics/cg/PathCG.cpp:
(WebCore::Path::strokeContains const):
(WebCore::CGPathApplierToPathApplier):
- platform/graphics/win/PathDirect2D.cpp:
(WebCore::Path::strokeContains const):
- rendering/shapes/BoxShape.cpp:
(WebCore::BoxShape::buildDisplayPaths const):
- rendering/shapes/RectangleShape.cpp:
(WebCore::RectangleShape::buildDisplayPaths const):
- rendering/svg/RenderSVGShape.cpp:
(WebCore::RenderSVGShape::shapeDependentStrokeContains):
- rendering/svg/SVGMarkerData.h:
(WebCore::SVGMarkerData::updateMarkerDataForPathElement):
- rendering/svg/SVGPathData.cpp:
(WebCore::pathFromRectElement):
- rendering/svg/SVGSubpathData.h:
(WebCore::SVGSubpathData::updateFromPathElement):
- svg/SVGPathTraversalStateBuilder.cpp:
(WebCore::SVGPathTraversalStateBuilder::moveTo):
(WebCore::SVGPathTraversalStateBuilder::lineTo):
(WebCore::SVGPathTraversalStateBuilder::curveToCubic):
(WebCore::SVGPathTraversalStateBuilder::closePath):
- svg/SVGPathUtilities.cpp:
(WebCore::buildStringFromPath):
- testing/Internals.cpp:
(WebCore::Internals::pathStringWithShrinkWrappedRects):
- 8:01 AM Changeset in webkit [253915] by
-
- 3 edits in trunk/Source/WebCore
[LFC][IFC] When align the inline content we need to align the line as well
https://bugs.webkit.org/show_bug.cgi?id=205596
<rdar://problem/58197300>
Reviewed by Antti Koivisto.
Horizontal alignment means that we not only adjust the runs but also make sure the line box is aligned as well.
<div style="text-align: center; width: 100px;">centered text</div>
The line box will also be centered as opposed to start at 0px all the way to [centered text] run's right edge.
- layout/inlineformatting/InlineLineBuilder.cpp:
(WebCore::Layout::LineBuilder::close):
(WebCore::Layout::LineBuilder::alignHorizontally):
(WebCore::Layout::LineBuilder::alignContentHorizontally const): Deleted.
- layout/inlineformatting/InlineLineBuilder.h:
- 2:12 AM Changeset in webkit [253914] by
-
- 8 edits2 adds in trunk/Source/WebKit
[GTK][WPE] Remove duplicated code
https://bugs.webkit.org/show_bug.cgi?id=205560
Reviewed by Sergio Villar Senin.
Remove duplicated code related to IME between GTK and WPE that can be shared.
- SourcesGTK.txt:
- SourcesWPE.txt:
- WebProcess/WebCoreSupport/glib/WebEditorClientGLib.cpp: Added.
(WebKit::WebEditorClient::handleInputMethodKeydown):
(WebKit::WebEditorClient::didDispatchInputMethodKeydown):
- WebProcess/WebCoreSupport/gtk/WebEditorClientGtk.cpp:
- WebProcess/WebCoreSupport/wpe/WebEditorClientWPE.cpp:
- WebProcess/WebPage/glib/WebPageGLib.cpp:
(WebKit::WebPage::setInputMethodState):
- WebProcess/WebPage/gtk/WebPageGtk.cpp:
- WebProcess/WebPage/wpe/WebPageWPE.cpp:
- 2:11 AM Changeset in webkit [253913] by
-
- 3 edits in trunk/LayoutTests
REGRESSION: [ Mojave+ Debug ] fast/mediastream/captureStream/canvas2d-heavy-drawing.html is a flakey failure
https://bugs.webkit.org/show_bug.cgi?id=205365
<rdar://problem/58026430>
Reviewed by Eric Carlson.
- fast/mediastream/captureStream/canvas2d-heavy-drawing.html:
Unflake test by comparing the number of frames with the number of printLine calls.
They should never diverge too much one from the other.
- platform/mac-wk2/TestExpectations:
- 1:18 AM WebKitW3CTesting edited by
- (diff)
Dec 25, 2019:
- 6:06 PM Changeset in webkit [253912] by
-
- 5 edits2 adds in trunk
Run with offset from the content box's logical left paint its tab stop at wrong position.
https://bugs.webkit.org/show_bug.cgi?id=205595
<rdar://problem/58194698>
Reviewed by Antti Koivisto.
Source/WebCore:
Test: fast/text/tab-stops-with-offset-from-parent.html
Use the run's left offset from the line as the xPos for the TextRun. Most cases the line has only one run
with 0 offset. This patch fixes the case when the additional runs (with offset != 0) paint their tab positions at the wrong place.
- layout/integration/LayoutIntegrationLineLayout.cpp:
(WebCore::LayoutIntegration::LineLayout::paint):
- rendering/SimpleLineLayoutFunctions.cpp:
(WebCore::SimpleLineLayout::paintFlow):
LayoutTests:
- fast/text/tab-stops-with-offset-from-parent-expected.html: Added.
- fast/text/tab-stops-with-offset-from-parent.html: Added.
- 10:26 AM Changeset in webkit [253911] by
-
- 2 edits in trunk/Source/WebCore
[LFC][Painting] Fix LayoutTests/imported/w3c/web-platform-tests/css/css-text/white-space/tab-stop-threshold-001.html
https://bugs.webkit.org/show_bug.cgi?id=205594
<rdar://problem/58194138>
Reviewed by Antti Koivisto.
Construct the TextRun with relative coordinates to get tab stops right.
- layout/displaytree/DisplayPainter.cpp:
(WebCore::Display::paintInlineContent):
- 9:50 AM Changeset in webkit [253910] by
-
- 7 edits in trunk/Tools
WKTR/DRT always trigger the Discrete GPU on dual GPU systems
https://bugs.webkit.org/show_bug.cgi?id=205546
<rdar://problem/58139610>
Reviewed by Alexey Proskuryakov.
Add an option "--prefer-integrated-gpu" to run-webkit-test
that causes the LayoutTestHelper to NOT lock the
machine to a discrete GPU on a dual-GPU system.
The default is false.
- DumpRenderTree/mac/LayoutTestHelper.m:
(main):
- Scripts/webkitpy/layout_tests/controllers/manager.py:
(Manager._set_up_run):
- Scripts/webkitpy/layout_tests/run_webkit_tests.py:
(parse_args):
- Scripts/webkitpy/port/base.py:
(Port.start_helper):
- Scripts/webkitpy/port/mac.py:
(MacPort.start_helper):
- Scripts/webkitpy/port/mock_drt.py:
(MockDRTPort.start_helper):
- 7:52 AM Changeset in webkit [253909] by
-
- 5 edits in trunk/Source/WebCore
[LFC][IFC] Forward scan for soft wrap opportunities
https://bugs.webkit.org/show_bug.cgi?id=205584
<rdar://problem/58188386>
Reviewed by Antti Koivisto.
This patch implements forward scanning to find wrap opportunities in inline content.
e.g <span></span>example<span><span></span> content</span>
When we reach "ex-" content, in order to figure out if it is at a wrap opportunity, we scan the content
forward until after we reach another inline content, in this case " " right before the "content" and
check if we can break the content between these 2 inline items.
isAtSoftWrapOpportunity: takes 2 (adjacent by skipping non-content inline items) and return true if there's
a soft wrap opportunity in between them.
LineBreaker::nextWrapOpportunity: returns the next wrap opportunity (either a soft wrap opportunity or a line break or the end of the content)
- layout/inlineformatting/InlineLineBreaker.cpp:
(WebCore::Layout::endsWithSoftWrapOpportunity):
(WebCore::Layout::isAtSoftWrapOpportunity):
(WebCore::Layout::LineBreaker::nextWrapOpportunity):
(WebCore::Layout::LineBreaker::ContinousContent::ContinousContent):
(WebCore::Layout::LineBreaker::lastSoftWrapOpportunity): Deleted.
- layout/inlineformatting/InlineLineBreaker.h:
- layout/inlineformatting/LineLayoutContext.cpp:
(WebCore::Layout::LineCandidateContent::isLineBreak const):
(WebCore::Layout::LineCandidateContent::append):
(WebCore::Layout::LineCandidateContent::setIsLineBreak):
(WebCore::Layout::LineLayoutContext::layoutLine):
(WebCore::Layout::LineLayoutContext::nextContentForLine):
(WebCore::Layout::ContinousContent::hasIntrusiveFloats const): Deleted.
(WebCore::Layout::ContinousContent::runs const): Deleted.
(WebCore::Layout::ContinousContent::floats const): Deleted.
(WebCore::Layout::ContinousContent::endsWithLineBreak const): Deleted.
(WebCore::Layout::ContinousContent::setEndsWithLineBreak): Deleted.
(WebCore::Layout::ContinousContent::append): Deleted.
(WebCore::Layout::LineLayoutContext::nextContinousContentForLine): Deleted.
- layout/inlineformatting/LineLayoutContext.h:
- 5:09 AM Changeset in webkit [253908] by
-
- 2 edits in trunk/Tools
REGRESSION (r253282): Tests that use applyAutocorrection assert in UIScriptContext::requestUIScriptCompletion
https://bugs.webkit.org/show_bug.cgi?id=205588
<rdar://problem/58109942>
Reviewed by Tim Horton.
The change made in r253282 intended to defer completing the async task prepared in
UIScriptController::applyAutocorrection until after the current runloop; however, it ended up keeping the
synchronous call to asyncTaskComplete. Fix this by removing this code, so that we instead wait for the
dispatch_async block to invoke asyncTaskComplete.
- WebKitTestRunner/ios/UIScriptControllerIOS.mm:
(WTR::UIScriptControllerIOS::applyAutocorrection):
- 4:38 AM Changeset in webkit [253907] by
-
- 5 edits in trunk/Source/WebCore
[LFC][IFC] LineBreaker should tell whether the line should receive no more content
https://bugs.webkit.org/show_bug.cgi?id=205587
<rdar://problem/58188635>
Reviewed by Antti Koivisto.
LineBreaker returns IsEndOfLine::No when the current line should still be able to receive additional content.
This way we can start closing the line sooner (as opposed to start probing the subsequent content).
(Note that just because the current content overflows the line, it does not necessarily mean that the subsequent content
wraps to the next line.)
- layout/inlineformatting/InlineLineBreaker.cpp:
(WebCore::Layout::LineBreaker::breakingContextForInlineContent):
(WebCore::Layout::LineBreaker::ContinousContent::lastContentRunIndex const):
- layout/inlineformatting/InlineLineBreaker.h:
- layout/inlineformatting/LineLayoutContext.cpp:
(WebCore::Layout::LineLayoutContext::layoutLine):
(WebCore::Layout::LineLayoutContext::addFloatItems):
(WebCore::Layout::LineLayoutContext::placeInlineContentOnCurrentLine):
- layout/inlineformatting/LineLayoutContext.h:
- 4:22 AM Changeset in webkit [253906] by
-
- 5 edits in trunk/Source/WebCore
[LFC][IFC] Add support for zero-width-space character (U+200B)
https://bugs.webkit.org/show_bug.cgi?id=205586
<rdar://problem/58188505>
Reviewed by Antti Koivisto.
If a line has only U+200B characters, it is still considered empty from line breaking point of view.
(Note that U+200B is not considered a whitespace character so a run with U+200B does not collapse.)
- layout/inlineformatting/InlineLineBuilder.cpp:
(WebCore::Layout::LineBuilder::appendTextContent): empty runs don't collapse.
(WebCore::Layout::LineBuilder::isVisuallyNonEmpty const):
(WebCore::Layout::LineBuilder::InlineItemRun::hasEmptyTextContent const):
- layout/inlineformatting/InlineLineBuilder.h:
- layout/inlineformatting/InlineTextItem.cpp:
(WebCore::Layout::InlineTextItem::isEmptyContent const):
- layout/inlineformatting/InlineTextItem.h:
- 4:07 AM Changeset in webkit [253905] by
-
- 2 edits in trunk/Source/WebCore
[LFC][IFC] Fix LayoutTests/imported/w3c/web-platform-tests/css/css-text/letter-spacing/letter-spacing-control-chars-001.html
https://bugs.webkit.org/show_bug.cgi?id=205585
<rdar://problem/58188420>
Reviewed by Antti Koivisto.
TextUtil::fixedPitchWidth works on simple content only (letter-spacing forces slow font measuring path).
- layout/inlineformatting/text/TextUtil.cpp:
(WebCore::Layout::TextUtil::width):
- 1:07 AM Changeset in webkit [253904] by
-
- 9 edits in trunk/Source/JavaScriptCore
[JSC] Compact Bytecodes more by emitting 1-byte Opcode
https://bugs.webkit.org/show_bug.cgi?id=205553
Reviewed by Keith Miller.
When emitting 16bit / 32bit bytecodes, we also emit 16bit / 32bit Opcode.
So the layout is the following.
8bit 16bit 16bit 16bit
- [op_wide16][ Opcode ][ Operand0 ][ Operand1 ]
But this is unnecessary since Opcode must fit in 8bit. We should emit Opcode in 8bit in all cases.
8bit 8bit 16bit 16bit
- [op_wide16][Opcode][ Operand0 ][ Operand1 ]
- bytecode/Instruction.h:
(JSC::BaseInstruction::size const):
- bytecompiler/BytecodeGeneratorBaseInlines.h:
(JSC::BytecodeGeneratorBase<Traits>::alignWideOpcode16):
(JSC::BytecodeGeneratorBase<Traits>::alignWideOpcode32):
- generator/Argument.rb:
- generator/Opcode.rb:
- llint/LowLevelInterpreter.asm:
- llint/LowLevelInterpreter32_64.asm:
- llint/LowLevelInterpreter64.asm:
- llint/WebAssembly.asm: