Timeline
Sep 20, 2020:
- 4:07 PM Changeset in webkit [267333] by
-
- 6 edits in trunk
Performance.navigation and Performance.timing are incorrectly exposed to workers
https://bugs.webkit.org/show_bug.cgi?id=216732
Reviewed by Simon Fraser.
LayoutTests/imported/w3c:
- web-platform-tests/workers/worker-performance.worker-expected.txt:
Update results now that Performance.navigation and Performance.timing are no longer
exposed to workers.
Source/WebCore:
- page/Performance.idl:
Only expose Performance.navigation and Performance.timing to the Window.
LayoutTests:
Remove flaky annotation for imported/w3c/web-platform-tests/workers/worker-performance.worker.html. The
test was fixed in upstream WPT as dab9c45, and has since been updated in the WebKit tree as well.
It now also passes.
- 3:58 PM Changeset in webkit [267332] by
-
- 193 edits947 adds43 deletes in trunk/JSTests
Test262 update
https://bugs.webkit.org/show_bug.cgi?id=216753
Reviewed by Darin Adler.
- 3:26 PM Changeset in webkit [267331] by
-
- 7 edits3 adds in trunk/Source/WebCore
Using [Exposed=Window] with [Default] object toJSON() doesn't work
https://bugs.webkit.org/show_bug.cgi?id=216731
Reviewed by Simon Fraser.
Fixes filtering an attribute out of [Default] toJSON operation based
on which which global objects it is exposed to by ensuring we always
pass a global object pointer accessor function to
GenerateRuntimeEnableConditionalStringForExposed. For good measure,
we now always pass the global object object pointer to
GenerateRuntimeEnableConditionalString as well so that it is always
explicit.
This is needed to support filtering out Performance.navigation and
Performance.timing from the Performance interface's toJSON implementation
which will be addressed in a separate change.
- bindings/scripts/CodeGeneratorJS.pm:
(GenerateRuntimeEnableConditionalStringForExposed):
(GenerateRuntimeEnableConditionalString):
Remove implicit global object accessor string construction by always
requiring it to be passed.
- bindings/scripts/test/DOMWindowConstructors.idl:
- bindings/scripts/test/JS/JSDOMWindow.cpp:
- bindings/scripts/test/JS/JSTestDefaultToJSONFilteredByExposed.cpp: Added.
- bindings/scripts/test/JS/JSTestDefaultToJSONFilteredByExposed.h: Added.
- bindings/scripts/test/JS/JSWorkerGlobalScope.cpp:
- bindings/scripts/test/SupplementalDependencies.dep:
- bindings/scripts/test/TestDefaultToJSONFilteredByExposed.idl: Added.
- bindings/scripts/test/WorkerGlobalScopeConstructors.idl:
Add new test for updated behavior. I couldn't add it to the existing
TestDefaultToJSON.idl test as that test requires the interface only be exposed
to Window to support testing EnabledBySetting.
- 1:44 PM Changeset in webkit [267330] by
-
- 179 edits1 delete in trunk
[JSC] Drop Options::useBigInt
https://bugs.webkit.org/show_bug.cgi?id=216743
Reviewed by Darin Adler.
JSTests:
- bigIntTests.yaml: Removed.
- stress/big-int-add-wrapped-value.js:
- stress/big-int-addition-basic.js:
- stress/big-int-addition-jit.js:
- stress/big-int-addition-memory-stress.js:
- stress/big-int-addition-string-coercion.js:
- stress/big-int-addition-to-primitive-precedence.js:
- stress/big-int-addition-to-primitive.js:
- stress/big-int-addition-type-error.js:
- stress/big-int-arithmetic-return-big-int.js:
- stress/big-int-as-key.js:
- stress/big-int-as-property-name.js:
- stress/big-int-bit-not-general.js:
- stress/big-int-bitwise-and-general.js:
- stress/big-int-bitwise-and-jit.js:
- stress/big-int-bitwise-and-memory-stress.js:
- stress/big-int-bitwise-and-to-primitive-precedence.js:
- stress/big-int-bitwise-and-type-error.js:
- stress/big-int-bitwise-and-wrapped-value.js:
- stress/big-int-bitwise-not-jit.js:
- stress/big-int-bitwise-not-wrapped-value.js:
- stress/big-int-bitwise-or-general.js:
- stress/big-int-bitwise-or-jit-untyped.js:
- stress/big-int-bitwise-or-jit.js:
- stress/big-int-bitwise-or-memory-stress.js:
- stress/big-int-bitwise-or-to-primitive-precedence.js:
- stress/big-int-bitwise-or-type-error.js:
- stress/big-int-bitwise-or-wrapped-value.js:
- stress/big-int-bitwise-xor-general.js:
- stress/big-int-bitwise-xor-jit.js:
- stress/big-int-bitwise-xor-memory-stress.js:
- stress/big-int-bitwise-xor-to-primitive-precedence.js:
- stress/big-int-bitwise-xor-type-error.js:
- stress/big-int-bitwise-xor-untyped.js:
- stress/big-int-bitwise-xor-wrapped-value.js:
- stress/big-int-boolean-proven-type.js:
- stress/big-int-branch-usage.js:
- stress/big-int-constructor-gc.js:
- stress/big-int-constructor-oom.js:
- stress/big-int-constructor-properties.js:
- stress/big-int-constructor-prototype-prop-descriptor.js:
- stress/big-int-constructor-prototype.js:
- stress/big-int-constructor.js:
- stress/big-int-div-jit-osr.js:
- stress/big-int-div-jit-untyped.js:
- stress/big-int-div-jit.js:
- stress/big-int-div-memory-stress.js:
- stress/big-int-div-to-primitive.js:
- stress/big-int-div-type-error.js:
- stress/big-int-div-wrapped-value.js:
- stress/big-int-division.js:
- stress/big-int-equals-basic.js:
- stress/big-int-equals-to-primitive-precedence.js:
- stress/big-int-equals-wrapped-value.js:
- stress/big-int-exp-basic.js:
- stress/big-int-exp-jit-osr.js:
- stress/big-int-exp-jit-untyped.js:
- stress/big-int-exp-jit.js:
- stress/big-int-exp-negative-exponent.js:
- stress/big-int-exp-to-primitive.js:
- stress/big-int-exp-type-error.js:
- stress/big-int-exp-wrapped-value.js:
- stress/big-int-function-apply.js:
- stress/big-int-greater-than-general.js:
- stress/big-int-greater-than-jit.js:
- stress/big-int-greater-than-or-equal-jit.js:
- stress/big-int-greater-than-or-equal-order-of-evaluation.js:
- stress/big-int-greater-than-or-equal-wrapped-values.js:
- stress/big-int-greater-than-or-equal.js:
- stress/big-int-greater-than-order-of-evaluation.js:
- stress/big-int-greater-than-wrapped-values.js:
- stress/big-int-json-stringify-to-json.js:
- stress/big-int-json-stringify.js:
- stress/big-int-left-shift-general.js:
- stress/big-int-left-shift-range-error.js:
- stress/big-int-left-shift-type-error.js:
- stress/big-int-left-shift-untyped.js:
- stress/big-int-left-shift-wrapped-value.js:
- stress/big-int-length.js:
- stress/big-int-less-than-general.js:
- stress/big-int-less-than-jit.js:
- stress/big-int-less-than-or-equal-general.js:
- stress/big-int-less-than-or-equal-jit.js:
- stress/big-int-less-than-or-equal-order-of-evaluation.js:
- stress/big-int-less-than-or-equal-wrapped-values.js:
- stress/big-int-less-than-order-of-evaluation.js:
- stress/big-int-less-than-wrapped-values.js:
- stress/big-int-literal-inside-literal-object.js:
- stress/big-int-literal-line-terminator.js:
- stress/big-int-literals.js:
- stress/big-int-logical-and.js:
- stress/big-int-logical-not.js:
- stress/big-int-logical-or.js:
- stress/big-int-mod-jit.js:
- stress/big-int-mod-memory-stress.js:
- stress/big-int-mod-osr.js:
- stress/big-int-mod-to-primitive-precedence.js:
- stress/big-int-mod-to-primitive.js:
- stress/big-int-mod-type-error.js:
- stress/big-int-mod-wrapped-value.js:
- stress/big-int-mod.js:
- stress/big-int-mul-jit-osr.js:
- stress/big-int-mul-jit-untyped.js:
- stress/big-int-mul-jit.js:
- stress/big-int-mul-to-primitive-precedence.js:
- stress/big-int-mul-to-primitive.js:
- stress/big-int-mul-type-error.js:
- stress/big-int-mul-wrapped-value.js:
- stress/big-int-multiplication.js:
- stress/big-int-multiply-memory-stress.js:
- stress/big-int-negate-basic.js:
- stress/big-int-no-conversion-to-number.js:
- stress/big-int-operations-error.js:
- stress/big-int-out-of-memory-tests.js:
- stress/big-int-prop-descriptor.js:
- stress/big-int-proto-constructor.js:
- stress/big-int-proto-name.js:
- stress/big-int-prototype-properties.js:
- stress/big-int-prototype-proto.js:
- stress/big-int-prototype-symbol-to-string-tag.js:
- stress/big-int-prototype-to-string-apply.js:
- stress/big-int-prototype-to-string-cast-overflow.js:
- stress/big-int-prototype-to-string-exception.js:
- stress/big-int-prototype-to-string-wrong-values.js:
- stress/big-int-prototype-value-of.js:
- stress/big-int-right-shift-general.js:
- stress/big-int-right-shift-jit-osr.js:
- stress/big-int-right-shift-jit-untyped.js:
- stress/big-int-right-shift-jit.js:
- stress/big-int-right-shift-type-error.js:
- stress/big-int-right-shift-wrapped-value.js:
- stress/big-int-spec-to-primitive.js:
- stress/big-int-spec-to-this.js:
- stress/big-int-strict-equals-jit.js:
- stress/big-int-strict-spec-to-this.js:
- stress/big-int-sub-wrapped-value.js:
- stress/big-int-subtraction-basic.js:
- stress/big-int-subtraction-jit.js:
- stress/big-int-subtraction-type-error.js:
- stress/big-int-to-object.js:
- stress/big-int-to-string.js:
- stress/big-int-type-of-proven-type-non-constant-including-symbol.js:
- stress/big-int-type-of-proven-type-non-constant.js:
- stress/big-int-type-of-proven-type.js:
- stress/big-int-type-of.js:
- stress/big-int-unary-plus.js:
- stress/big-int-value-op-update-gc-rules.js:
- stress/big-int-white-space-trailing-leading.js:
- stress/bigint-toLocaleString.js:
- stress/bitwise-not-fixup-rules.js:
- stress/delete-property-inline-cache.js:
- stress/inc-osr-exit-from-big-int.js:
- stress/inc-osr-exit-to-big-int.js:
- stress/left-shift-to-primitive-precedence.js:
- stress/numeric-literal-separators.js:
- stress/object-create-non-object-properties-parameter.js:
- stress/proxy-call-apply-handler-to-this.js:
- stress/right-shift-to-primitive-precedence.js:
- stress/value-add-big-int-and-string.js:
- stress/value-add-big-int-prediction-propagation.js:
- stress/value-add-big-int-untyped.js:
- stress/value-bit-and-ai-rule.js:
- stress/value-bit-lshift-ai-rule.js:
- stress/value-bit-not-ai-rule.js:
- stress/value-bit-or-ai-rule.js:
- stress/value-bit-xor-ai-rule.js:
- stress/value-div-fixup-int32-big-int.js:
- stress/value-mul-fixup-int32-big-int.js:
- stress/value-sub-big-int-prediction-propagation.js:
- stress/value-sub-big-int-untyped.js:
- test262/config.yaml:
Source/JavaScriptCore:
Now BigInt is shipped. Let's just remove Options::useBigInt.
- bytecompiler/BytecodeGenerator.cpp:
(JSC::BytecodeGenerator::emitEqualityOpImpl):
- parser/Lexer.cpp:
(JSC::Lexer<T>::parseHex):
(JSC::Lexer<T>::parseBinary):
(JSC::Lexer<T>::parseOctal):
(JSC::Lexer<T>::parseDecimal):
- runtime/JSGlobalObject.h:
- runtime/OptionsList.h:
Tools:
- Scripts/run-jsc-benchmarks:
- Scripts/run-jsc-stress-tests:
- 12:37 PM Changeset in webkit [267329] by
-
- 8 edits in trunk
Selection API: Further improvements to VisibleSelection, FrameSelection, and DOMSelection to preserve anchor and focus
https://bugs.webkit.org/show_bug.cgi?id=216739
Reviewed by Ryosuke Niwa.
Source/WebCore:
If done correctly, these changes should have almost no effect unless live range selection
is enabled. This adds a feature where VisibleSelection tracks the original points,
before the VisiblePosition-style canonicalization. It also starts a transition from
the base/extent terminology to the slightly-easier-to-understand anchor/focus terminology
that is used in the selection specification. New functions name them anchor and focus,
even though we still have some old ones that call them base and extent. In addition,
made some other small related improvements to live range selection mode, without changing
behavior when not in that mode. Have been testing these locally by turning on that mode
and running various tests.
- editing/FrameSelection.cpp:
(WebCore::FrameSelection::isInDocumentTree const): Added. Used by DOMSelection to
correctly handle cases where the selection is in a shadow tree without requiring it
actually create the associated live range just to query.
(WebCore::FrameSelection::associatedLiveRange): Use the new VisibleSelection::range,
which gives us non-canonicalized points, rather than the deprecated
VisibleSelection::firstRange, which we will eventually be renaming or deleting.
(WebCore::FrameSelection::updateFromAssociatedLiveRange): Use
makeContainerOffsetPosition instead of implicitly using makeDeprecatedLegacyPosition.
Also removed the FIXME about normalization of endpoints, which is what this patch
mostly addresses; no need to track with a comment now.
(WebCore::FrameSelection::updateAssociatedLiveRange): Use VisibleSelection::range
for the same reason as above.
- editing/FrameSelection.h: Added isInDocumentTree.
- editing/VisibleSelection.cpp:
(WebCore::VisibleSelection::VisibleSelection): Updated the primary constructor to set
m_anchor/focus and let the validate function set m_base/extent/start/end/baseIsFirst.
Changed most other constructors to call that primary one.
(WebCore::VisibleSelection::anchor const): Added. This is a non-canonicalized position.
(WebCore::VisibleSelection::focus const): Ditto.
(WebCore::VisibleSelection::uncanonicalizedStart const): Added. This non-canonicalized
version of start is used by new DOMSelection code, but eventually should be used
elsewhere as well, and we may eventually eliminate the canonicalized version.
(WebCore::VisibleSelection::uncanonicalizedEnd const): Ditto.
(WebCore::VisibleSelection::range const): Added. This non-canonicalized version of
firstRange has many of the same considerations as the other four functions above.
(WebCore::VisibleSelection::setBase): Set m_anchor instead of m_base. Eventually we
will want to rename this function, too, but there is no need to do that now.
(WebCore::VisibleSelection::setExtent): Ditto.
(WebCore::VisibleSelection::setBaseAndExtentToDeepEquivalents): Rewrote to take
m_anchor and m_focus as inputs and now m_base and m_extent are pure outputs.
May want to rename this later, because "deep equivalents" is a funny way to say
that this function sets base and extent to canonicalized values.
(WebCore::VisibleSelection::adjustSelectionRespectingGranularity): Renamed from
setStartAndEndFromBaseAndExtentRespectingGranularity. This now takes m_start/end
as input as well as output, because the validate function needs to check
if the function changes m_start/end so it can update m_anchor/focus. Also did a tiny
bit of refactoring to use std::swap.
(WebCore::VisibleSelection::validate): Refined the code to handle canonicalization
differently from expanding due to granularity. Canonicalization is done preserving
the original m_anchor/focus as it mostly always has been. But expansion due to
granularity now changes m_anchor/focus/base/extent rather than just m_start/end.
This makes sense because granularity changes actually affect what is selected,
while canonicalization just changes how the selection is expressed and tracked.
(WebCore::VisibleSelection::setWithoutValidation): Set m_anchor/focus. In the future,
we can probably get rid of this eventually, because the "validation" talked about
here is the unwanted canonicalization. But that's a refinement for the future.
(WebCore::VisibleSelection::adjustSelectionToAvoidCrossingShadowBoundaries):
Update m_focus, not just m_extent, if we have to adjust. Also removed an unnnecessary
null check from the start of the function.
(WebCore::VisibleSelection::adjustSelectionToAvoidCrossingEditingBoundaries): Ditto.
Also removed the assertions because these situations can indeed arise and it's not
necessarily an indication of a bug in editing code.
- editing/VisibleSelection.h: Rearranged constructors to make it slightly more clear
which is the main one and that the others are simply convenience shorthands. Might
want to come back later and remove some unused ones. Added uncanonicalizedStart,
uncanonicalizedEnd, anchor, focus, and range. Renamed the private function called
setStartAndEndFromBaseAndExtentRespectingGranularity to the new name
adjustSelectionRespectingGranularity. Added m_anchor and m_focus and refined the
comments about the position data members. We should eventually be able to cut down
on the number of these again, but it's fine to have two more for now.
- page/DOMSelection.cpp:
(WebCore::DOMSelection::range const): Use range rather than firstRange when live
range selection is enabled, for proper round-tripping of selection endpoints,
unaffected by canonicalization. The other changes below are for the same reason.
(WebCore::DOMSelection::anchorPosition const): Use anchor.
(WebCore::DOMSelection::focusPosition const): Use focus.
(WebCore::DOMSelection::basePosition const): Use anchor.
(WebCore::DOMSelection::extentPosition const): Use focus.
(WebCore::DOMSelection::type const): Use isInDocumentTree and range rather than
isNone/isCaret/isRange when live range selection is enabled, because this needs
to report "Caret" when the range is not collapsed, even if the canonicalized
range is collapsed and "None" when the selection is in a shadow tree.
(WebCore::DOMSelection::rangeCount const): Use isInDocumentTree to check if
there is a selection rather than isNone to correctly handle the shadow tree case.
(WebCore::DOMSelection::collapseToEnd): Use uncanonicalizedEnd.
(WebCore::DOMSelection::collapseToStart): Use uncanonicalizedStart.
(WebCore::DOMSelection::containsNode const): Updated the comment for clarity.
LayoutTests:
- editing/execCommand/insert-list-nested-with-orphaned-expected.txt: This test
result reflected incorrrect behavior where the selection changed from a range
to a caret in a certain unusual case. The new behavior of leaving the text
selected is consistent with how the command works in normal cases, and was an
accidental progression from the improvements to the selection code. Was able
to reproduce this all in Safari and after experimenting with different
selections, it's clear this is an improvement.
- 12:21 PM Changeset in webkit [267328] by
-
- 7 edits4 copies1 add1 delete in trunk/Source/WebCore
[LFC Display] Move LFC Display infrastructure files into a new 'display' directory
https://bugs.webkit.org/show_bug.cgi?id=216747
Reviewed by Zalan Bujtas.
WebCore/Source/display will become the home for all the LFC painting code; move
DisplayView and DisplayLayerController into it.
Also fix some unified build include issues.
- CMakeLists.txt:
- Headers.cmake:
- Sources.txt:
- WebCore.xcodeproj/project.pbxproj:
- display/DisplayLayerController.cpp: Renamed from Source/WebCore/layout/display/DisplayLayerController.cpp.
- display/DisplayLayerController.h: Renamed from Source/WebCore/layout/display/DisplayLayerController.h.
- display/DisplayView.cpp: Renamed from Source/WebCore/layout/display/DisplayView.cpp.
- display/DisplayView.h: Renamed from Source/WebCore/layout/display/DisplayView.h.
- layout/flexformatting/FlexFormattingContext.cpp:
- layout/inlineformatting/InlineLineBox.cpp:
- 11:10 AM Changeset in webkit [267327] by
-
- 4 edits in trunk/Source/WebCore
Selection API: Fix selectAllChilden to return InvalidNodeTypeError when passed a DocumentType node
https://bugs.webkit.org/show_bug.cgi?id=216741
Reviewed by Ryosuke Niwa.
This is covered by tests, but the fix itself is only testable when live range
selection is enabled. So for now the other tests are simply checking that no
regression or behavior change was introduced by accident.
- page/DOMSelection.cpp:
(WebCore::DOMSelection::selectAllChildren): Return the value returned by
setBaseAndExtent so we don't discard any exception it might throw. In
practice, that's only this one.
- page/DOMSelection.h: Updated return type so we can throw an exception.
- page/DOMSelection.idl: Added MayThrowException.
- 10:51 AM Changeset in webkit [267326] by
-
- 2 edits in trunk/Source/WebKit
Sort the project file.
- WebKit.xcodeproj/project.pbxproj:
- 8:01 AM Changeset in webkit [267325] by
-
- 19 edits1 add in trunk
[LFC][IFC] InlineFormattingState should not store display lines and runs
https://bugs.webkit.org/show_bug.cgi?id=216742
Reviewed by Antti Koivisto.
Source/WebCore:
In this patch,
- Display related structures are completely moved out from Layout namespace
- InlineFormattingContext does not generate display structures.
- InlineFormattingState only stores layout data.
- Layout tree verification works on layout geometry.
- Layout structures do not embed Display types.
- LayoutIntegration creates and maintains the required Display structures for painting and hittesting.
- Display::Run does not use Layout types (InlineLayoutRect, InlineLayoutUnit).
FIXME: We need to start constructing display content for the Display::Painter.
- WebCore.xcodeproj/project.pbxproj:
- layout/Verification.cpp:
(WebCore::Layout::outputMismatchingSimpleLineInformationIfNeeded):
(WebCore::Layout::checkForMatchingNonTextRuns):
(WebCore::Layout::checkForMatchingTextRuns):
(WebCore::Layout::outputMismatchingComplexLineInformationIfNeeded):
(WebCore::Layout::LayoutContext::verifyAndOutputMismatchingLayoutTree):
- layout/displaytree/DisplayInlineContent.h:
(WebCore::Display::InlineContent::shrinkToFit):
- layout/displaytree/DisplayLine.h:
(WebCore::Display::Line::horizontalAlignmentOffset const):
(WebCore::Display::Line::Line):
- layout/displaytree/DisplayPainter.cpp:
(WebCore::Display::paintInlineContent):
- layout/displaytree/DisplayRun.h:
(WebCore::Display::Run::TextContent::start const):
(WebCore::Display::Run::TextContent::end const):
(WebCore::Display::Run::TextContent::length const):
(WebCore::Display::Run::TextContent::content const):
(WebCore::Display::Run::TextContent::needsHyphen const):
(WebCore::Display::Run::rect const):
(WebCore::Display::Run::inkOverflow const):
(WebCore::Display::Run::Run):
(WebCore::Display::Run::TextContent::TextContent):
(WebCore::Display::Run::TextContent::setNeedsHyphen): Deleted.
(WebCore::Display::Run::TextContent::expand): Deleted.
(WebCore::Display::Run::TextContent::shrink): Deleted.
(WebCore::Display::Run::topLeft const): Deleted.
(WebCore::Display::Run::left const): Deleted.
(WebCore::Display::Run::right const): Deleted.
(WebCore::Display::Run::top const): Deleted.
(WebCore::Display::Run::bottom const): Deleted.
(WebCore::Display::Run::width const): Deleted.
(WebCore::Display::Run::height const): Deleted.
(WebCore::Display::Run::moveVertically): Deleted.
- layout/flexformatting/FlexFormattingContext.cpp:
(WebCore::Layout::FlexFormattingContext::sizeAndPlaceFlexItems):
- layout/inlineformatting/InlineFormattingContext.cpp:
(WebCore::Layout::InlineFormattingContext::computeGeometryForLineContent):
- layout/inlineformatting/InlineFormattingState.h:
(WebCore::Layout::InlineFormattingState::lineRuns const):
(WebCore::Layout::InlineFormattingState::lineRuns):
(WebCore::Layout::InlineFormattingState::addLineRun):
(WebCore::Layout::InlineFormattingState::clearLineAndRuns):
(WebCore::Layout::InlineFormattingState::shrinkToFit):
(WebCore::Layout::InlineFormattingState::displayInlineContent const): Deleted.
(WebCore::Layout::InlineFormattingState::ensureDisplayInlineContent): Deleted.
(WebCore::Layout::InlineFormattingState::shrinkDisplayInlineContent): Deleted.
- layout/inlineformatting/InlineLine.h:
(WebCore::Layout::Line::Run::textContent const):
(WebCore::Layout::Line::Run::expansion const):
- layout/inlineformatting/InlineLineGeometry.h:
(WebCore::Layout::InlineLineGeometry::horizontalAlignmentOffset const):
(WebCore::Layout::InlineLineGeometry::InlineLineGeometry):
- layout/integration/LayoutIntegrationLineLayout.cpp:
(WebCore::LayoutIntegration::LineLayout::layout):
(WebCore::LayoutIntegration::LineLayout::constructDisplayContent):
(WebCore::LayoutIntegration::LineLayout::ensureDisplayInlineContent):
(WebCore::LayoutIntegration::LineLayout::paint):
(WebCore::LayoutIntegration::LineLayout::displayInlineContent const): Deleted.
- layout/integration/LayoutIntegrationLineLayout.h:
(WebCore::LayoutIntegration::LineLayout::displayInlineContent const):
- layout/layouttree/LayoutTreeBuilder.cpp:
(WebCore::Layout::outputInlineRuns):
- layout/tableformatting/TableFormattingContext.cpp:
(WebCore::Layout::TableFormattingContext::setUsedGeometryForCells):
- rendering/line/LineLayoutTraversalDisplayRunPath.h:
(WebCore::LineLayoutTraversal::DisplayRunPath::rect const):
LayoutTests:
This directory is about verifying layout correctness
by calling LayoutContext::verifyAndOutputMismatchingLayoutTree on every layout frame
and assert in case of mismatching trees.
The test coverage does not suffer by [ ImageOnlyFailure ] it.
(We need to start generating display boxes for the Display::Painter.)
- 2:14 AM Changeset in webkit [267324] by
-
- 2 edits in trunk/Source/JavaScriptCore
Unreviewed, use RELEASE_AND_RETURN to suppress exception verification failure
https://bugs.webkit.org/show_bug.cgi?id=216686
<rdar://problem/69157632>
- runtime/JSModuleNamespaceObject.cpp:
(JSC::JSModuleNamespaceObject::defineOwnProperty):
Sep 19, 2020:
- 9:32 PM Changeset in webkit [267323] by
-
- 2 edits in trunk/Tools
[GLIB] Merge API test expectations
Unreviewed test gardening.
Two TestUIClient sections were causing the first one to be ignored.
- TestWebKitAPI/glib/TestExpectations.json:
- 9:30 PM Changeset in webkit [267322] by
-
- 2 edits in trunk/LayoutTests
[GLIB] Unreviewed gardening.
- platform/glib/TestExpectations:
- 7:51 PM Changeset in webkit [267321] by
-
- 20 edits in trunk/LayoutTests
Selection API: Update some more tests so they don't accidentally rely on flaws in WebKit's old implementation
https://bugs.webkit.org/show_bug.cgi?id=216737
Reviewed by Sam Weinig.
Like the three tests I modified in r267220, these tests are accidentally
depending on the fact that our selection object implementation currently
allows invalid indexes. It's clear that these are mistakes in the tests,
not intentional, and fixing these does not change the test expectations,
only the tests themselves.
- accessibility/mac/select-text-should-match-whole-words.html: Set the selection
with separate calls to the collapse function. The old code tried to reuse the
same range to set the selection back to an old value, but that won't work if
the selection updates the range (as it is supposed to do).
- editing/execCommand/indent-selection.html: Pass a valid index, 1, instead of
an invalid one, 2.
- editing/pasteboard/paste-visible-script.html: Ditto.
- editing/pasteboard/replacement-fragment-remove-unrendered-node-crash.html:
Pass a valid index, 0, instead of an invalid one, 10500000000. Also fixed line
endings in this file, which were all Windows-style CR/LF pairs to be Unix-style
LF like most of our other files.
- editing/pasteboard/testcase-9507.html: Use childNodes.length to compute a
valid index instead of passing 5, which was an invalid one.
- editing/style/apply-style-crash2.html: Pass a valid index, 0, instead of
an invalid one, 4.
- editing/style/query-typing-style.html: Pass a valid index, 0, instead of
an invalid one, 1.
- editing/undo/undo-paste-when-caret-is-not-in-range.html: Pass valid index
1 instead of invalid ones, 3 and 4.
- fast/block/float/float-list-changed-before-layout-crash.html: Pass a valid
index, 0, instead of an invalid one, 1.
- fast/dynamic/checkbox-selection-crash.html: Use childNodes.length to compute
a valid index instead of passing 1000, which was an invalid one.
- fast/repaint/selection-gap-absolute-child.html: Pass a valid index, 0, instead
of an invalid one, 1.
- fast/repaint/selection-gap-fixed-child.html: Ditto.
- fast/repaint/selection-gap-flipped-absolute-child.html: Ditto.
- fast/repaint/selection-gap-flipped-fixed-child.html: Ditto.
- fast/repaint/selection-gap-transformed-absolute-child.html: Ditto.
- fast/repaint/selection-gap-transformed-fixed-child.html: Ditto.
- fast/replaced/selection-rect.html: Select the image with a range in its
parent node with valid indices instead of relying WebKit's quirky way of
expressing selections of replaced elements, which involves an invalid index
of 1 for an image element with no children. This test has nothing to do with
the particular selection range technique used, so it's fine to change it.
- http/tests/security/resources/foreign-domain-iframe-for-selection-test.html:
Use childNodes.length to compute a valid index instead of passing 10, which was
an invalid one.
- imported/blink/editing/apply-inline-style-to-element-with-no-renderer-crash.html:
Use a valid index, 0, instead of an invalid one, 4.
- 11:52 AM Changeset in webkit [267320] by
-
- 5 edits in trunk/Source/WebCore
Implementation for AXIsolatedObject::nextSibling and previousSibling.
https://bugs.webkit.org/show_bug.cgi?id=216710
Reviewed by Chris Fleizach.
Implementation for AXIsolatedObject::previousSibling and nextSibling which
are invoked by VoiceOver in Safari Reader mode.
- accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::previousSibling const):
- Fixed crash caused by dereferencing m_renderer->parent() which can be null.
- Added check for the AXObjectCache that can become null.
(WebCore::AccessibilityRenderObject::nextSibling const):
- Code style cleanup.
- accessibility/isolatedtree/AXIsolatedObject.cpp:
(WebCore::AXIsolatedObject::initializeAttributeData):
- Added caching of next/previousSiblling objects.
(WebCore::AXIsolatedObject::previousSibling const): Inlined in header..
(WebCore::AXIsolatedObject::nextSibling const): Inlined in header.
- accessibility/isolatedtree/AXIsolatedObject.h:
- accessibility/isolatedtree/AXIsolatedTree.h:
- 10:43 AM Changeset in webkit [267319] by
-
- 1 copy in tags/Safari-610.2.6.1.3
Tag Safari-610.2.6.1.3.
- 10:39 AM Changeset in webkit [267318] by
-
- 1 edit in branches/safari-610.2.6.1-branch/Source/WebKit/UIProcess/mac/DisplayLink.cpp
Cherry-pick r266958. rdar://problem/69202514
Unreviewed build fix for r266771. An include is missing which causes the build to fail flakily depending on the position of the cpp in the unified source file.
- UIProcess/mac/DisplayLink.cpp:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@266958 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 10:37 AM Changeset in webkit [267317] by
-
- 8 edits in branches/safari-610.2.6.1-branch/Source
Versioning.
WebKit-7610.2.6.1.3
- 10:07 AM Changeset in webkit [267316] by
-
- 10 edits in trunk
Performance and PerformanceNavigation interfaces are missing toJSON operations
https://bugs.webkit.org/show_bug.cgi?id=216728
Reviewed by Darin Adler.
LayoutTests/imported/w3c:
Update results now that we pass more subtests.
- web-platform-tests/hr-time/idlharness.any-expected.txt:
- web-platform-tests/hr-time/idlharness.any.worker-expected.txt:
- web-platform-tests/hr-time/performance-tojson-expected.txt:
Source/WebCore:
Add missing toJSON operations to Performance and PerformanceNavigation and update
comments in related IDLs.
Updates results for existing tests, more of which now pass.
- page/Performance.idl:
- page/PerformanceMark.idl:
- page/PerformanceMeasure.idl:
- page/PerformanceNavigation.idl:
- page/PerformanceTiming.idl:
- 9:46 AM Changeset in webkit [267315] by
-
- 5 edits in trunk/Source/WebCore
[LFC][IFC] InlineFormattingContext::computeGeometryForLineContent should not construct Display::Lines
https://bugs.webkit.org/show_bug.cgi?id=216723
Reviewed by Antti Koivisto.
Display::Lines construction should live in the display builder. However currently we don't yet have a real builder, so let's
just use the integration layer.
This is also in preparation for removing all the Display::InlineContent code from the Layout namespace.
- layout/displaytree/DisplayPainter.cpp:
(WebCore::Display::paintInlineContent):
- layout/inlineformatting/InlineFormattingContext.cpp:
(WebCore::Layout::InlineFormattingContext::computeGeometryForLineContent):
- layout/integration/LayoutIntegrationLineLayout.cpp:
(WebCore::LayoutIntegration::LineLayout::layout):
(WebCore::LayoutIntegration::LineLayout::constructDisplayContent):
- layout/integration/LayoutIntegrationLineLayout.h:
- 8:05 AM Changeset in webkit [267314] by
-
- 8 edits1 copy1 move12 adds2 deletes in trunk/LayoutTests
Resync web-platform-tests/hr-time from upstream
https://bugs.webkit.org/show_bug.cgi?id=216724
Reviewed by Darin Adler.
LayoutTests/imported/w3c:
Resync web-platform-tests/hr-time from upstream.
- web-platform-tests/hr-time/META.yml: Added.
- web-platform-tests/hr-time/OWNERS: Removed.
- web-platform-tests/hr-time/idlharness-expected.txt: Removed.
- web-platform-tests/hr-time/idlharness.any-expected.txt: Added.
- web-platform-tests/hr-time/idlharness.any.html: Added.
- web-platform-tests/hr-time/idlharness.any.js: Added.
- web-platform-tests/hr-time/idlharness.any.worker-expected.txt: Added.
- web-platform-tests/hr-time/idlharness.any.worker.html: Added.
- web-platform-tests/hr-time/idlharness.html: Removed.
- web-platform-tests/hr-time/monotonic-clock.any.js:
- web-platform-tests/hr-time/performance-tojson-expected.txt: Added.
- web-platform-tests/hr-time/performance-tojson.html: Added.
- web-platform-tests/hr-time/resources/unload-a.html: Added.
- web-platform-tests/hr-time/resources/unload-b.html: Added.
- web-platform-tests/hr-time/resources/unload-c.html: Added.
- web-platform-tests/hr-time/resources/unload.js: Added.
- web-platform-tests/hr-time/resources/w3c-import.log:
- web-platform-tests/hr-time/timeOrigin-expected.txt:
- web-platform-tests/hr-time/w3c-import.log:
- web-platform-tests/hr-time/window-worker-timeOrigin.window-expected.txt: Added.
- web-platform-tests/hr-time/window-worker-timeOrigin.window.html: Added.
LayoutTests:
- platform/ios/TestExpectations:
- platform/mac/TestExpectations:
Update paths in expectations.
- 7:48 AM Changeset in webkit [267313] by
-
- 8 edits2 adds in trunk
Selection API: Extend lifetime of selection live range to preserve expando properties
https://bugs.webkit.org/show_bug.cgi?id=216721
Reviewed by Ryosuke Niwa.
Source/WebCore:
Test: editing/selection/expando.html
- dom/Range.cpp:
(WebCore::Range::window): Added. Returns window if range is associated with selection.
- dom/Range.h: Added window.
- dom/Range.idl: Added GenerateIsReachable=ReachableFromDOMWindow.
- editing/FrameSelection.cpp:
(WebCore::FrameSelection::disassociateLiveRange): Removed a FIXME comment about the
need for this fix.
(WebCore::FrameSelection::updateAssociatedLiveRange): Added a comment explaining
why an associated live range might not be contained in the document.
LayoutTests:
- editing/selection/expando-expected.txt: Added.
- editing/selection/expando.html: Added.
- TestExpectations: Skip the new test since DumpRenderTree doesn't support enabling
internal properties.
- platform/wk2/TestExpectations: Unskip the new test since WebKitTestRunner does.
- 7:22 AM Changeset in webkit [267312] by
-
- 8 edits3 adds in trunk/Source/WebCore
Add support for Settings equivilent of RuntimeConditionallyReadWrite
https://bugs.webkit.org/show_bug.cgi?id=216697
Reviewed by Darin Adler.
Adds a new extended attribute, [SettingsConditionallyReadWrite] to allow users of
[RuntimeConditionallyReadWrite] to convert from RuntimeEnabledFeatures to Settings.
- bindings/scripts/CodeGeneratorJS.pm:
(NeedsRuntimeReadWriteCheck):
(GeneratePropertiesHashTable):
(GenerateRuntimeEnableConditionalString):
(GenerateImplementation):
- bindings/scripts/IDLAttributes.json:
Adds new extended attribute.
- bindings/scripts/test/DOMWindowConstructors.idl:
- bindings/scripts/test/JS/JSDOMWindow.cpp:
- bindings/scripts/test/JS/JSTestConditionallyReadWrite.cpp: Added.
- bindings/scripts/test/JS/JSTestConditionallyReadWrite.h: Added.
- bindings/scripts/test/JS/JSTestObj.cpp:
- bindings/scripts/test/SupplementalDependencies.dep:
- bindings/scripts/test/TestConditionallyReadWrite.idl: Added.
- bindings/scripts/test/TestObj.idl:
Move conditionally read-write tests to a new test, TestConditionallyReadWrite.idl and
update results.
- 7:20 AM Changeset in webkit [267311] by
-
- 7 edits in trunk/Source
Remove runtime setting for enabling/disabling the CrossOriginResourcePolicy API
https://bugs.webkit.org/show_bug.cgi?id=216561
Reviewed by Darin Adler.
Remove runtime setting for enabling/disabling CrossOriginResourcePolicy. It has been
enabled by default for a while and there are no known reasons one would need to
disable it.
Source/WebCore:
- page/RuntimeEnabledFeatures.h:
(WebCore::RuntimeEnabledFeatures::setCrossOriginResourcePolicyEnabled): Deleted.
(WebCore::RuntimeEnabledFeatures::crossOriginResourcePolicyEnabled const): Deleted.
Source/WebKit:
- Shared/WebPreferences.yaml:
- UIProcess/API/C/WKPreferences.cpp:
(WKPreferencesSetCrossOriginResourcePolicyEnabled):
(WKPreferencesGetCrossOriginResourcePolicyEnabled):
- UIProcess/API/C/WKPreferencesRef.h:
- WebProcess/Network/WebLoaderStrategy.cpp:
(WebKit::WebLoaderStrategy::scheduleLoadFromNetworkProcess):
- 5:54 AM Changeset in webkit [267310] by
-
- 7 edits in trunk/Source/WebCore
ASSERTION FAILED: &formattingContextRoot == m_rootContainer.get() in WebCore::Layout::LayoutState::establishedInlineFormattingState
https://bugs.webkit.org/show_bug.cgi?id=216668
Reviewed by Zalan Bujtas.
Display::View didn't unparent the GraphicsLayers when Document::documentWillBecomeInactive() was called,
so a layer pointing to an old LayoutState would try to paint.
Fix by plumbing setIsInWindow() through to Display::View and using it to detach the root layer.
- dom/Document.cpp:
(WebCore::Document::documentWillBecomeInactive): The ASSERT_IMPLIES() is there to ensure that this isn't
a behavior change; we used to go to RenderView directly, and now go via FrameView.
- layout/display/DisplayLayerController.cpp:
(WebCore::Display::LayerController::detachRootLayer):
(WebCore::Display::LayerController::setIsInWindow):
- layout/display/DisplayLayerController.h:
- layout/display/DisplayView.cpp:
(WebCore::Display::View::setIsInWindow):
- layout/display/DisplayView.h:
- page/FrameView.cpp:
(WebCore::FrameView::setIsInWindow):