Timeline
Jan 18, 2020:
- 10:02 PM Changeset in webkit [254802] by
-
- 3 edits in trunk/Source/WebCore
REGRESSION (r254790): Update DerivedSources-{input,output}.xcfilelist to fix build
Add support for scroll behavior parsing
<https://bugs.webkit.org/show_bug.cgi?id=205009>
- DerivedSources-input.xcfilelist:
- DerivedSources-output.xcfilelist:
- Update after commit r254790.
- 3:14 PM Changeset in webkit [254801] by
-
- 21 edits6 adds in trunk
[JSC] add DFG/FTL support for op_to_property_key
https://bugs.webkit.org/show_bug.cgi?id=206368
JSTests:
Reviewed by Saam Barati.
- stress/class-fields-to-property-key-const-string-ftl.js: Added.
- stress/class-fields-to-property-key-const-symbol-ftl.js: Added.
- stress/class-fields-to-property-key-slow-object-tostring-ftl.js: Added.
- stress/class-fields-to-property-key-slow-object-valueof-ftl.js: Added.
- stress/class-fields-to-property-key-string-object-ftl.js: Added.
- stress/class-fields-to-property-key-string-or-string-object-ftl.js: Added.
Source/JavaScriptCore:
Reviewed by Saam Barati.
Implement DFG/FTL support for the op_to_property_key opcode. This operates
similar to the LLInt and base JIT implementations, in which we avoid invoking
the full ToPropertyKey operation if the source operand is already a String or
Symbol at runtime.
If DFG/FTL are confident the value will be a String or Symbol at compile time,
the operation is omitted entirely in the final graph.
- dfg/DFGAbstractInterpreterInlines.h:
(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):
- dfg/DFGByteCodeParser.cpp:
(JSC::DFG::ByteCodeParser::parseBlock):
- dfg/DFGCapabilities.cpp:
(JSC::DFG::capabilityLevel):
- dfg/DFGClobberize.h:
(JSC::DFG::clobberize):
- dfg/DFGConstantFoldingPhase.cpp:
(JSC::DFG::ConstantFoldingPhase::foldConstants):
- dfg/DFGDoesGC.cpp:
(JSC::DFG::doesGC):
- dfg/DFGFixupPhase.cpp:
(JSC::DFG::FixupPhase::fixupNode):
- dfg/DFGNode.h:
(JSC::DFG::Node::convertToToString):
- dfg/DFGNodeType.h:
- dfg/DFGOperations.cpp:
- dfg/DFGOperations.h:
- dfg/DFGPredictionPropagationPhase.cpp:
- dfg/DFGSafeToExecute.h:
(JSC::DFG::safeToExecute):
- dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::compileToPrimitive):
(JSC::DFG::SpeculativeJIT::compileToPropertyKey):
- dfg/DFGSpeculativeJIT.h:
- dfg/DFGSpeculativeJIT32_64.cpp:
(JSC::DFG::SpeculativeJIT::compile):
- dfg/DFGSpeculativeJIT64.cpp:
(JSC::DFG::SpeculativeJIT::compile):
- ftl/FTLCapabilities.cpp:
(JSC::FTL::canCompile):
- ftl/FTLLowerDFGToB3.cpp:
(JSC::FTL::DFG::LowerDFGToB3::compileNode):
(JSC::FTL::DFG::LowerDFGToB3::compileToPropertyKey):
- 12:35 PM Changeset in webkit [254800] by
-
- 8 edits in trunk/Source/WebCore
Make pasteboard markup sanitization more robust
https://bugs.webkit.org/show_bug.cgi?id=206379
<rdar://problem/58660859>
Reviewed by Ryosuke Niwa.
Makes markup sanitization when copying and pasting more robust in some circumstances (see the bug for additional
details).
- editing/markup.cpp:
(WebCore::createPageForSanitizingWebContent):
Adopt the new setting when creating the temporary web page used to sanitize markup coming from the pasteboard.
- html/parser/HTMLParserOptions.cpp:
(WebCore::HTMLParserOptions::HTMLParserOptions):
- html/parser/HTMLParserOptions.h:
Rename
scriptEnabledtoscriptingFlag, since parsing script elements may now be allowed even when JavaScript
execution is disabled. The term "scripting flag" also closely matches the wording of the HTML parsing
specification.
- html/parser/HTMLTokenizer.cpp:
(WebCore::HTMLTokenizer::updateStateFor):
- html/parser/HTMLTreeBuilder.cpp:
(WebCore::HTMLTreeBuilder::processStartTagForInBody):
(WebCore::HTMLTreeBuilder::processStartTagForInHead):
- page/Settings.yaml:
Add a new setting to determine whether to consider the scripting flag on when parsing HTML. By default, we will
only turn the scripting flag on if script execution is enabled; however, this may be set such that we may
consider the scripting flag set, even though script execution is disabled.
- page/SettingsBase.h:
- 11:43 AM Changeset in webkit [254799] by
-
- 2 edits in trunk/LayoutTests
[WPE] Gardening, synchronize with GTK TestExpectations
https://bugs.webkit.org/show_bug.cgi?id=206473
Unreviewed gardening.
- platform/wpe/TestExpectations:
- 9:51 AM Changeset in webkit [254798] by
-
- 1 copy in tags/Safari-610.1.1.1
Tag Safari-610.1.1.1.
- 9:10 AM Changeset in webkit [254797] by
-
- 11 edits in trunk/Source/WebCore
[LFC] LayoutState constructor shouldn't take LayoutTreeContent
https://bugs.webkit.org/show_bug.cgi?id=206471
Reviewed by Zalan Bujtas.
It just needs the root container.
This is preparation for more performant layout box construction and ownership model in the integration code.
- layout/LayoutContext.h:
- layout/LayoutState.cpp:
(WebCore::Layout::LayoutState::LayoutState):
Take Document (to compute quirks mode) and the root box only.
(WebCore::Layout::LayoutState::displayBoxForRootLayoutBox):
(WebCore::Layout::LayoutState::setViewportSize):
(WebCore::Layout::LayoutState::viewportSize const):
(WebCore::Layout::LayoutState::setIsIntegratedRootBoxFirstChild):
(WebCore::Layout::LayoutState::isIntegratedRootBoxFirstChild const): Deleted.
Make this a bit set by the integration code.
- layout/LayoutState.h:
(WebCore::Layout::LayoutState::root const):
(WebCore::Layout::LayoutState::isIntegratedRootBoxFirstChild const):
(WebCore::Layout::LayoutState::rootRenderer const): Deleted.
- layout/Verification.cpp:
(WebCore::Layout::LayoutContext::verifyAndOutputMismatchingLayoutTree):
- layout/inlineformatting/InlineFormattingContext.cpp:
(WebCore::Layout::InlineFormattingContext::constraintsForLine):
- layout/integration/LayoutIntegrationLineLayout.cpp:
(WebCore::LayoutIntegration::LineLayout::layout):
Also allocate LayoutState directly from LineLayout using Optional.
- layout/integration/LayoutIntegrationLineLayout.h:
- layout/layouttree/LayoutTreeBuilder.cpp:
(WebCore::Layout::printLayoutTreeForLiveDocuments):
- page/FrameViewLayoutContext.cpp:
(WebCore::FrameViewLayoutContext::layoutUsingFormattingContext):
- rendering/updating/RenderTreeUpdater.cpp:
- 8:46 AM Changeset in webkit [254796] by
-
- 4 edits in trunk/Source/WebCore
[LFC][IFC] Rename trailing collapsible content to trailing trimmable
https://bugs.webkit.org/show_bug.cgi?id=206447
<rdar://problem/58697414>
Reviewed by Antti Koivisto.
Trimming is the spec term for removing trailing inline content (also this helps to not confuse
trailing trimming and whitespace collapsing.)
- layout/inlineformatting/InlineLineBuilder.cpp:
(WebCore::Layout::LineBuilder::LineBuilder):
(WebCore::Layout::LineBuilder::initialize):
(WebCore::Layout::LineBuilder::close):
(WebCore::Layout::LineBuilder::revert):
(WebCore::Layout::LineBuilder::removeTrailingTrimmableContent):
(WebCore::Layout::LineBuilder::visuallyCollapsePreWrapOverflowContent):
(WebCore::Layout::LineBuilder::collectHangingContent):
(WebCore::Layout::LineBuilder::appendInlineContainerEnd):
(WebCore::Layout::LineBuilder::appendTextContent):
(WebCore::Layout::LineBuilder::appendNonReplacedInlineBox):
(WebCore::Layout::LineBuilder::TrimmableTrailingContent::TrimmableTrailingContent):
(WebCore::Layout::LineBuilder::TrimmableTrailingContent::append):
(WebCore::Layout::LineBuilder::TrimmableTrailingContent::remove):
(WebCore::Layout::LineBuilder::TrimmableTrailingContent::removeTrailingRun):
(WebCore::Layout::LineBuilder::InlineItemRun::isTrimmableWhitespace const):
(WebCore::Layout::LineBuilder::removeTrailingCollapsibleContent): Deleted.
(WebCore::Layout::LineBuilder::CollapsibleContent::CollapsibleContent): Deleted.
(WebCore::Layout::LineBuilder::CollapsibleContent::append): Deleted.
(WebCore::Layout::LineBuilder::CollapsibleContent::collapse): Deleted.
(WebCore::Layout::LineBuilder::CollapsibleContent::collapseTrailingRun): Deleted.
(WebCore::Layout::LineBuilder::InlineItemRun::isCollapsibleWhitespace const): Deleted.
- layout/inlineformatting/InlineLineBuilder.h:
(WebCore::Layout::LineBuilder::trimmableTrailingWidth const):
(WebCore::Layout::LineBuilder::isTrailingRunFullyTrimmable const):
(WebCore::Layout::LineBuilder::TrimmableTrailingContent::isTrailingRunFullyTrimmable const):
(WebCore::Layout::LineBuilder::TrimmableTrailingContent::isTrailingRunPartiallyTrimmable const):
(WebCore::Layout::LineBuilder::TrimmableTrailingContent::reset):
(WebCore::Layout::LineBuilder::trailingCollapsibleWidth const): Deleted.
(WebCore::Layout::LineBuilder::isTrailingRunFullyCollapsible const): Deleted.
(WebCore::Layout::LineBuilder::CollapsibleContent::width const): Deleted.
(WebCore::Layout::LineBuilder::CollapsibleContent::firstRunIndex): Deleted.
(WebCore::Layout::LineBuilder::CollapsibleContent::isEmpty const): Deleted.
(WebCore::Layout::LineBuilder::CollapsibleContent::isTrailingRunFullyCollapsible const): Deleted.
(WebCore::Layout::LineBuilder::CollapsibleContent::isTrailingRunPartiallyCollapsible const): Deleted.
(WebCore::Layout::LineBuilder::CollapsibleContent::reset): Deleted.
- layout/inlineformatting/LineLayoutContext.cpp:
(WebCore::Layout::LineLayoutContext::tryAddingFloatItems):
(WebCore::Layout::LineLayoutContext::tryAddingInlineItems):
- 8:20 AM Changeset in webkit [254795] by
-
- 8 edits in branches/safari-610.1.1-branch/Source
Versioning.
- 6:01 AM Changeset in webkit [254794] by
-
- 3 edits in trunk/Source/WebCore
Unreviewed, rolling out r254780.
https://bugs.webkit.org/show_bug.cgi?id=206472
fast/css/content/content-none.html asserts in
LineBuilder::CollapsibleContent::collapse() (Requested by
zalan on #webkit).
Reverted changeset:
"[LFC][IFC] Do not construct a dedicated run for the trailing
(fully) collapsed whitespace."
https://bugs.webkit.org/show_bug.cgi?id=206428
https://trac.webkit.org/changeset/254780
Jan 17, 2020:
- 11:21 PM Changeset in webkit [254793] by
-
- 4 edits in trunk/LayoutTests
REGRESSION (r252205?): [ Mac wk2 ] tiled-drawing/scrolling/fast-scroll-select-latched-mainframe-with-handler.html became very flaky
https://bugs.webkit.org/show_bug.cgi?id=206296
Reviewed by Ryosuke Niwa.
Attempt to de-flake this test. It was using js-test-pre/post, but not jsTestIsAsync/finishJSTest(), and seemed to sometimes
dump testPassed() a second even after notifyDone() was called. The <pre> is made fixed size so that the length of the layer
tree dump doesn't change the layer sizes.
Also clean it up to remove unused CSS and script.
- platform/mac-wk2/TestExpectations:
- tiled-drawing/scrolling/fast-scroll-select-latched-mainframe-with-handler-expected.txt:
- tiled-drawing/scrolling/fast-scroll-select-latched-mainframe-with-handler.html:
- 11:09 PM Changeset in webkit [254792] by
-
- 2 edits in trunk/LayoutTests
[GTK] Gardening mouse cursor style change tests
https://bugs.webkit.org/show_bug.cgi?id=206455
Unreviewed gardening.
Patch by Lauro Moura <Lauro Moura> on 2020-01-17
- platform/gtk/TestExpectations:
- 10:56 PM Changeset in webkit [254791] by
-
- 2 edits in trunk/LayoutTests
[GTK] Garden webrtc b/f cache tests
https://bugs.webkit.org/show_bug.cgi?id=206465
Unreviewed gardening.
Patch by Lauro Moura <Lauro Moura> on 2020-01-17
- platform/gtk/TestExpectations:
- 9:49 PM Changeset in webkit [254790] by
-
- 46 edits5 adds in trunk
Add support for scroll behavior parsing
https://bugs.webkit.org/show_bug.cgi?id=205009
Reviewed by Frédéric Wang.
Based on the patch by Frédéric Wang.
LayoutTests/imported/w3c:
- web-platform-tests/css/cssom-view/inheritance-expected.txt:
- web-platform-tests/css/cssom-view/inheritance.html:
- web-platform-tests/css/cssom-view/parsing/scroll-behavior-computed-expected.txt:
- web-platform-tests/css/cssom-view/parsing/scroll-behavior-computed.html:
- web-platform-tests/css/cssom-view/parsing/scroll-behavior-valid-expected.txt:
- web-platform-tests/css/cssom-view/parsing/scroll-behavior-valid.html:
Source/WebCore:
Add support for parsing scroll-behavior css property and ScrollOptions.
Tests: LayoutTests/imported/w3c/web-platform-tests/css/cssom-view/inheritance.html
LayoutTests/web-platform-tests/css/cssom-view/parsing/scroll-behavior-computed.html
LayoutTests/web-platform-tests/css/cssom-view/parsing/scroll-behavior-valid.html
- CMakeLists.txt: Add IDL files for ScrollOptions and ScrollBehavior.
- DerivedSources.make:
- Headers.cmake: Add headers for ScrollBehavor and ScrollOptions.
- Sources.txt: Add ScrollBehavor and ScrollOptions implementation.
- WebCore.xcodeproj/project.pbxproj: Add files to the build system.
- css/CSSComputedStyleDeclaration.cpp: Handle scroll-behavior.
(WebCore::ComputedStyleExtractor::valueForPropertyInStyle):
- css/CSSProperties.json: Add scroll-behavior.
- css/CSSValueKeywords.in: Add keywords for scroll-behavior.
- css/parser/CSSParserContext.cpp: Add runtime config for scroll-behavior.
(WebCore::CSSParserContext::CSSParserContext):
(WebCore::operator==):
- css/parser/CSSParserContext.h: Ditto.
(WebCore::CSSParserContextHash::hash):
- css/parser/CSSParserFastPaths.cpp: Remove scroll-behavior templates. It is handled in the slow path since property can be disabled.
(WebCore::CSSParserFastPaths::isValidKeywordPropertyAndValue):
(WebCore::CSSParserFastPaths::isKeywordPropertyID):
- css/parser/CSSPropertyParser.cpp:
(WebCore::consumeScrollBehavior):
(WebCore::CSSPropertyParser::parseSingleValue): Parse scroll-behavior (only if enabled).
- page/ScrollBehavior.cpp: Added.
(WebCore::useSmoothScrolling): Helper funciton to determine the scroll behavior to apply to an element from the CSS and DOM behavior.
- page/ScrollBehavior.h: Added.
- page/ScrollBehavior.idl: Added.
- page/ScrollIntoViewOptions.h: Make this class inherits from ScrollOption. Also remove unnecessary forward declaration.
- page/ScrollIntoViewOptions.idl: Make this class inherits from ScrollOption.
- page/ScrollOptions.h: Added.
- page/ScrollOptions.idl: Added.
- page/ScrollToOptions.h: Make this struct inherits from ScrollOptions.
(WebCore::ScrollToOptions::ScrollToOptions):
(WebCore::normalizeNonFiniteCoordinatesOrFallBackTo): Copy the current ScrollToOptions so that the scroll behavior is preserved.
- page/ScrollToOptions.idl: Make this class inherit from ScrollOptions.
- page/Settings.yaml: New setting for CSSOM View smooth scrolling.
- rendering/style/RenderStyle.h: Handle 'smooth scrolling' boolean data.
(WebCore::RenderStyle::useSmoothScrolling const):
(WebCore::RenderStyle::setUseSmoothScrolling):
(WebCore::RenderStyle::initialUseSmoothScrolling):
- rendering/style/StyleRareNonInheritedData.cpp:
(WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
(WebCore::StyleRareNonInheritedData::operator== const):
- rendering/style/StyleRareNonInheritedData.h:
- style/StyleBuilderConverter.h:
(WebCore::Style::BuilderConverter::convertSmoothScrolling):
Source/WebKit:
Add CSSOM smooth scrolling as an experimental feature.
- Shared/WebPreferences.yaml:
Source/WebKitLegacy/mac:
Add run time flag for CSSOMViewSmoothScrolling.
- WebView/WebPreferenceKeysPrivate.h: Handle CSSOMViewSmoothScrolling by.
- WebView/WebPreferences.mm:
([WebPreferences initialize]): Disable CSSOMViewSmoothScrolling by default.
(-[WebPreferences CSSOMViewSmoothScrollingEnabled]): Getter.
(-[WebPreferences setCSSOMViewSmoothScrollingEnabled:]): Setter.
- WebView/WebPreferencesPrivate.h:
- WebView/WebView.mm:
(-[WebView _preferencesChanged:]):
Source/WebKitLegacy/win:
- Interfaces/IWebPreferencesPrivate.idl: Handle smooth scrolling option.
- WebPreferenceKeysPrivate.h: Ditto.
- WebPreferences.cpp: Ditto.
(WebPreferences::initializeDefaultSettings):
(WebPreferences::CSSOMViewSmoothScrollingEnabled):
(WebPreferences::setCSSOMViewSmoothScrollingEnabled):
- WebPreferences.h: Ditto.
- WebView.cpp: Ditto.
(WebView::notifyPreferencesChanged):
Tools:
- DumpRenderTree/TestOptions.cpp:
(TestOptions::TestOptions): Parse CSSOMViewSmoothScrollingEnabled.
- DumpRenderTree/TestOptions.h: Add CSSOMViewSmoothScrollingEnabled, disabled by default.
- DumpRenderTree/mac/DumpRenderTree.mm:
(enableExperimentalFeatures):
(setWebPreferencesForTestOptions): Set CSSOMViewSmoothScrollingEnabled from the test options.
- 9:42 PM Changeset in webkit [254789] by
-
- 2 edits in trunk/Source/WebCore
iOS: Prepare deploying Ref/RefPtr in touch event code
https://bugs.webkit.org/show_bug.cgi?id=206466
Reviewed by Wenson Hsieh.
Introduce a new variant of dispatchTouchEvent, which takes EventTargetTouchArrayMap that uses
Ref<EventTarget> as keys instead of raw pointers to EventTarget as is the case in EventTargetTouchMap.
- page/EventHandler.h:
(WebCore::EventHandler::EventTargetTouchArrayMap): Added.
(WebCore::EventHandler::dispatchTouchEvent): Added the declaration for new variant.
- 7:24 PM Changeset in webkit [254788] by
-
- 5 edits1 add in trunk
Air O0 should have better stack allocation
https://bugs.webkit.org/show_bug.cgi?id=206436
Reviewed by Tadeu Zagallo.
JSTests:
- wasm/stress/dont-stack-overflow-in-air.js: Added.
Source/JavaScriptCore:
This patch adds a simple stack slot allocator to Air O0 to make code
use smaller stack frames. The huge stack frames from the old stack
allocator were leading to stack overflows in some programs. Before,
each Tmp got its own stack slot. The new allocator works similar to O0's
register allocator. This stack allocator linearizes the program and uses live
range end as an opportunity to place the stack slot on a free list of
available stack slots. This patch also fixes an issue in our linearization code
where the head of a block and the tail of another block would share the
same linearization index. This didn't matter for register allocation, but
does matter for the stack allocator. So "live at head", and "live at tail"
now get their own linearization index.
- b3/air/AirAllocateRegistersAndStackAndGenerateCode.cpp:
(JSC::B3::Air::GenerateAndAllocateRegisters::buildLiveRanges):
(JSC::B3::Air::GenerateAndAllocateRegisters::prepareForGeneration):
(JSC::B3::Air::GenerateAndAllocateRegisters::generate):
- b3/air/AirAllocateRegistersAndStackAndGenerateCode.h:
- b3/air/AirLiveness.h:
- 6:49 PM Changeset in webkit [254787] by
-
- 3 edits in trunk/Source/JavaScriptCore
[JSC] Add missing header guards
<https://webkit.org/b/206448>
Reviewed by Mark Lam.
- heap/IsoHeapCellType.h:
- wasm/WasmFaultSignalHandler.h:
- Add #pragma once header guard.
- 6:22 PM Changeset in webkit [254786] by
-
- 5 edits in trunk
Tools:
fast/forms/ios/zoom-after-input-tap-wide-input.html is timing out
https://bugs.webkit.org/show_bug.cgi?id=206313
Reviewed by Wenson Hsieh.
The timeout was caused by the previous test, fast/forms/ios/validation-bubble-dismiss-on-tap.html,
which puts up a validation bubble whose implementation involves showing a modal UIViewController.
That view controller disappears with an animation, which happened after we're proceeded to the next
test, and the overlay view could intercept touches thus breaking any subsequent touch-based test.
Fix by having platformResetStateToConsistentValues() wait for the presentedViewController to
go to nil, which requires spinning the runloop.
platformResetStateToConsistentValues() will return false if we fail to remove the presented view controller,
which will trigger a timeout with a log.
- WebKitTestRunner/TestController.cpp:
(WTR::TestController::resetStateToConsistentValues):
(WTR::TestController::platformResetStateToConsistentValues):
- WebKitTestRunner/TestController.h:
- WebKitTestRunner/cocoa/TestControllerCocoa.mm:
(WTR::TestController::cocoaResetStateToConsistentValues):
- WebKitTestRunner/ios/TestControllerIOS.mm:
(WTR::TestController::platformResetStateToConsistentValues):
- WebKitTestRunner/mac/TestControllerMac.mm:
(WTR::TestController::platformResetStateToConsistentValues):
LayoutTests:
Some iOS tests using UIHelper.dragFromPointToPoint() are flakey
https://bugs.webkit.org/show_bug.cgi?id=206441
Reviewed by Wenson Hsieh.
Unskip tests.
- platform/ios-wk2/TestExpectations:
- platform/ios/TestExpectations:
- 6:13 PM Changeset in webkit [254785] by
-
- 16 edits in trunk
Use Visible Position to calculate Positions for highlights
https://bugs.webkit.org/show_bug.cgi?id=206314
Reviewed by Ryosuke Niwa.
Source/WebCore:
When after layout is complete create a VisibleSelection from and highlight StaticRanges which
don't have position data yet. This will make sure that the information is availble when
rendering, as Visible Positions and Visible Selections cannot be made while rendering.
Also, add the ability to make a VisibleSelection from a Static Range to simplify the code.
Updated Test:
- LayoutTests/http/wpt/css/css-highlight-api/highlight-text-across-elements.html:
- LayoutTests/http/wpt/css/css-highlight-api/highlight-text-cascade.html:
- LayoutTests/http/wpt/css/css-highlight-api/highlight-text-replace.html:
- LayoutTests/http/wpt/css/css-highlight-api/highlight-text.html:
- Modules/highlight/HighlightRangeGroup.cpp:
(WebCore::HighlightRangeGroup::HighlightRangeGroup):
(WebCore::HighlightRangeGroup::create):
(WebCore::HighlightRangeGroup::initializeSetLike):
(WebCore::HighlightRangeGroup::removeFromSetLike):
(WebCore::HighlightRangeGroup::clearFromSetLike):
(WebCore::HighlightRangeGroup::addToSetLike):
- Modules/highlight/HighlightRangeGroup.h:
(WebCore::HighlightRangeData::create):
(WebCore::HighlightRangeData::HighlightRangeData):
(WebCore::HighlightRangeGroup::rangesData const):
(WebCore::HighlightRangeGroup::ranges const): Deleted.
- Modules/highlight/HighlightRangeGroup.idl:
- editing/VisibleSelection.cpp:
(WebCore::VisibleSelection::create):
- editing/VisibleSelection.h:
- rendering/InlineTextBox.cpp:
(WebCore::InlineTextBox::collectMarkedTextsForHighlights const):
- rendering/SelectionRangeData.cpp:
(WebCore::SelectionRangeData::selectionStateForRenderer):
LayoutTests:
- highlight/resources/highlight-frame.html:
- http/wpt/css/css-highlight-api/highlight-text-across-elements.html:
- http/wpt/css/css-highlight-api/highlight-text-cascade.html:
- http/wpt/css/css-highlight-api/highlight-text-replace.html:
- http/wpt/css/css-highlight-api/highlight-text.html:
- 6:00 PM Changeset in webkit [254784] by
-
- 3 edits in trunk/Source/WebKit
Fix a build failure related to the feature flag (GPU_PROCESS)
https://bugs.webkit.org/show_bug.cgi?id=206453
Reviewed by Eric Carlson.
No new tests - no added or changed functionality.
- GPUProcess/media/RemoteMediaPlayerManagerProxy.messages.in:
- GPUProcess/media/RemoteMediaPlayerProxy.messages.in:
- 5:00 PM Changeset in webkit [254783] by
-
- 3 edits1 add in trunk
JSModuleLoader's printableModuleKey() should never throw.
https://bugs.webkit.org/show_bug.cgi?id=206461
<rdar://problem/58696678>
Reviewed by Michael Saboff.
JSTests:
- stress/printableModuleKey-should-never-throw.js: Added.
Source/JavaScriptCore:
Hence, it should be using a CatchScope instead of a ThrowScope.
- runtime/JSModuleLoader.cpp:
(JSC::printableModuleKey):
- 4:48 PM Changeset in webkit [254782] by
-
- 3 edits2 adds in trunk
AX: Unable to use AccessibilityObject::replaceTextInRange to insert text at first time when the text fields are empty
https://bugs.webkit.org/show_bug.cgi?id=206093
<rdar://problem/58491448>
Patch by Canhai Chen <canhai_chen@apple.com> on 2020-01-17
Reviewed by Chris Fleizach.
Source/WebCore:
When we are trying to insert text in an empty text field with (0, 0) range, the frame selection will create a
new VisibleSelection in FrameSelection::setSelectedRange, and the container node that this new VisibleSelection
returns is the parent node of the text field element, which could be a HTMLDivElement or HTMLBodyElement.
Because the container node is not editable, it failed to insert text in Editor::replaceSelectionWithText later.
Return nullptr if the range is (0, 0) and the text length is 0 in AccessibilityObject::rangeForPlainTextRange,
so that when the frame selection is trying to setSelectedRange before replacing text, instead of creating an
uneditable VisibleSelection, it will just return and later in Editor::replaceSelectionWithText, it will use
the default VisibleSelection, of which the container node is an editable TextControlInnerTextElement.
This change does not affect the existing behaviors of text replacement. Add a new test for text replacement
with empty range in editable div, text input, and textarea.
Test: accessibility/mac/replace-text-with-empty-range.html
- accessibility/AccessibilityObject.cpp:
(WebCore::AccessibilityObject::rangeForPlainTextRange const):
LayoutTests:
Test text replacement with empty range in editable div, text input, and textarea.
- accessibility/mac/replace-text-with-empty-range-expected.txt: Added.
- accessibility/mac/replace-text-with-empty-range.html: Added.
- 4:43 PM Changeset in webkit [254781] by
-
- 49 edits in trunk/Source/bmalloc
[bmalloc] Define alias for std::lock_guard and std::unique_lock for better readability
https://bugs.webkit.org/show_bug.cgi?id=206443
Reviewed by Yusuke Suzuki.
There are two types of lock holder in bmalloc: std::lock_guard and std::unique_lock. Their names are relatively long
and a bit harder to distinguish them each other. Define simple type name for them, LockHolder and UniqueLockHolder.
- bmalloc/AllIsoHeaps.cpp:
(bmalloc::AllIsoHeaps::AllIsoHeaps):
(bmalloc::AllIsoHeaps::add):
(bmalloc::AllIsoHeaps::head):
- bmalloc/AllIsoHeaps.h:
- bmalloc/Allocator.cpp:
(bmalloc::Allocator::reallocateImpl):
(bmalloc::Allocator::refillAllocatorSlowCase):
(bmalloc::Allocator::allocateLarge):
- bmalloc/CryptoRandom.cpp:
(bmalloc::ARC4RandomNumberGenerator::ARC4RandomNumberGenerator):
(bmalloc::ARC4RandomNumberGenerator::randomValues):
- bmalloc/Deallocator.cpp:
(bmalloc::Deallocator::scavenge):
(bmalloc::Deallocator::processObjectLog):
(bmalloc::Deallocator::deallocateSlowCase):
- bmalloc/Deallocator.h:
(bmalloc::Deallocator::lineCache):
- bmalloc/DebugHeap.cpp:
(bmalloc::DebugHeap::DebugHeap):
(bmalloc::DebugHeap::memalignLarge):
(bmalloc::DebugHeap::freeLarge):
- bmalloc/DebugHeap.h:
- bmalloc/DeferredTrigger.h:
- bmalloc/DeferredTriggerInlines.h:
(bmalloc::DeferredTrigger<trigger>::didBecome):
(bmalloc::DeferredTrigger<trigger>::handleDeferral):
- bmalloc/Environment.cpp:
(bmalloc::Environment::Environment):
- bmalloc/Environment.h:
- bmalloc/Gigacage.cpp:
(bmalloc::PrimitiveDisableCallbacks::PrimitiveDisableCallbacks):
(Gigacage::disablePrimitiveGigacage):
(Gigacage::addPrimitiveDisableCallback):
(Gigacage::removePrimitiveDisableCallback):
- bmalloc/Heap.cpp:
(bmalloc::Heap::Heap):
(bmalloc::Heap::freeableMemory):
(bmalloc::Heap::markAllLargeAsEligibile):
(bmalloc::Heap::decommitLargeRange):
(bmalloc::Heap::scavenge):
(bmalloc::Heap::scavengeToHighWatermark):
(bmalloc::Heap::deallocateLineCache):
(bmalloc::Heap::allocateSmallChunk):
(bmalloc::Heap::allocateSmallPage):
(bmalloc::Heap::deallocateSmallLine):
(bmalloc::Heap::allocateSmallBumpRangesByMetadata):
(bmalloc::Heap::allocateSmallBumpRangesByObject):
(bmalloc::Heap::splitAndAllocate):
(bmalloc::Heap::allocateLarge):
(bmalloc::Heap::isLarge):
(bmalloc::Heap::largeSize):
(bmalloc::Heap::shrinkLarge):
(bmalloc::Heap::deallocateLarge):
(bmalloc::Heap::externalCommit):
(bmalloc::Heap::externalDecommit):
- bmalloc/Heap.h:
(bmalloc::Heap::allocateSmallBumpRanges):
(bmalloc::Heap::derefSmallLine):
- bmalloc/HeapConstants.cpp:
(bmalloc::HeapConstants::HeapConstants):
- bmalloc/HeapConstants.h:
- bmalloc/IsoAllocatorInlines.h:
(bmalloc::IsoAllocator<Config>::allocateSlow):
(bmalloc::IsoAllocator<Config>::scavenge):
- bmalloc/IsoDeallocatorInlines.h:
(bmalloc::IsoDeallocator<Config>::deallocate):
(bmalloc::IsoDeallocator<Config>::scavenge):
- bmalloc/IsoDirectory.h:
- bmalloc/IsoDirectoryInlines.h:
(bmalloc::passedNumPages>::takeFirstEligible):
(bmalloc::passedNumPages>::didBecome):
(bmalloc::passedNumPages>::didDecommit):
(bmalloc::passedNumPages>::scavengePage):
(bmalloc::passedNumPages>::scavenge):
(bmalloc::passedNumPages>::scavengeToHighWatermark):
(bmalloc::passedNumPages>::forEachCommittedPage):
- bmalloc/IsoHeapImpl.h:
- bmalloc/IsoHeapImplInlines.h:
(bmalloc::IsoHeapImpl<Config>::takeFirstEligible):
(bmalloc::IsoHeapImpl<Config>::didBecomeEligibleOrDecommited):
(bmalloc::IsoHeapImpl<Config>::scavenge):
(bmalloc::IsoHeapImpl<Config>::scavengeToHighWatermark):
(bmalloc::IsoHeapImpl<Config>::numLiveObjects):
(bmalloc::IsoHeapImpl<Config>::numCommittedPages):
(bmalloc::IsoHeapImpl<Config>::forEachDirectory):
(bmalloc::IsoHeapImpl<Config>::forEachCommittedPage):
(bmalloc::IsoHeapImpl<Config>::forEachLiveObject):
(bmalloc::IsoHeapImpl<Config>::allocateFromShared):
- bmalloc/IsoPage.h:
- bmalloc/IsoPageInlines.h:
(bmalloc::IsoPage<Config>::free):
(bmalloc::IsoPage<Config>::startAllocating):
(bmalloc::IsoPage<Config>::stopAllocating):
(bmalloc::IsoPage<Config>::forEachLiveObject):
- bmalloc/IsoSharedHeap.h:
(bmalloc::IsoSharedHeap::IsoSharedHeap):
- bmalloc/IsoSharedHeapInlines.h:
(bmalloc::IsoSharedHeap::allocateNew):
(bmalloc::IsoSharedHeap::allocateSlow):
- bmalloc/IsoSharedPage.h:
- bmalloc/IsoSharedPageInlines.h:
(bmalloc::IsoSharedPage::free):
(bmalloc::IsoSharedPage::startAllocating):
(bmalloc::IsoSharedPage::stopAllocating):
- bmalloc/IsoTLSDeallocatorEntry.h:
- bmalloc/IsoTLSDeallocatorEntryInlines.h:
(bmalloc::IsoTLSDeallocatorEntry<Config>::IsoTLSDeallocatorEntry):
- bmalloc/IsoTLSInlines.h:
(bmalloc::IsoTLS::ensureHeap):
- bmalloc/IsoTLSLayout.cpp:
(bmalloc::IsoTLSLayout::IsoTLSLayout):
(bmalloc::IsoTLSLayout::add):
- bmalloc/IsoTLSLayout.h:
- bmalloc/Mutex.h:
(bmalloc::sleep):
(bmalloc::waitUntilFalse):
- bmalloc/ObjectType.cpp:
(bmalloc::objectType):
- bmalloc/PerProcess.cpp:
(bmalloc::getPerProcessData):
- bmalloc/PerProcess.h:
(bmalloc::PerProcess::getSlowCase):
- bmalloc/Scavenger.cpp:
(bmalloc::Scavenger::Scavenger):
(bmalloc::Scavenger::run):
(bmalloc::Scavenger::runSoon):
(bmalloc::Scavenger::scheduleIfUnderMemoryPressure):
(bmalloc::Scavenger::schedule):
(bmalloc::Scavenger::timeSinceLastFullScavenge):
(bmalloc::Scavenger::timeSinceLastPartialScavenge):
(bmalloc::Scavenger::scavenge):
(bmalloc::Scavenger::partialScavenge):
(bmalloc::Scavenger::freeableMemory):
(bmalloc::Scavenger::threadRunLoop):
- bmalloc/Scavenger.h:
- bmalloc/SmallLine.h:
(bmalloc::SmallLine::refCount):
(bmalloc::SmallLine::ref):
(bmalloc::SmallLine::deref):
- bmalloc/SmallPage.h:
(bmalloc::SmallPage::refCount):
(bmalloc::SmallPage::hasFreeLines const):
(bmalloc::SmallPage::setHasFreeLines):
(bmalloc::SmallPage::ref):
(bmalloc::SmallPage::deref):
- bmalloc/StaticPerProcess.h:
- bmalloc/VMHeap.cpp:
(bmalloc::VMHeap::VMHeap):
- bmalloc/VMHeap.h:
- bmalloc/Zone.cpp:
(bmalloc::Zone::Zone):
- bmalloc/Zone.h:
- bmalloc/bmalloc.cpp:
(bmalloc::api::tryLargeZeroedMemalignVirtual):
(bmalloc::api::freeLargeVirtual):
(bmalloc::api::setScavengerThreadQOSClass):
- 4:42 PM Changeset in webkit [254780] by
-
- 3 edits in trunk/Source/WebCore
[LFC][IFC] Do not construct a dedicated run for the trailing (fully) collapsed whitespace.
https://bugs.webkit.org/show_bug.cgi?id=206428
<rdar://problem/58687058>
Reviewed by Antti Koivisto.
This patch reduces the final run count on a line from 2 to 1 in the common cases where the line ends in a collapsed trailing whitespace.
~3% progression on PerformanceTests/Layout/line-layout-simple.html.
- layout/inlineformatting/InlineFormattingContextQuirks.cpp:
(WebCore::Layout::InlineFormattingContext::Quirks::lineDescentNeedsCollapsing const):
- layout/inlineformatting/InlineLineBuilder.cpp:
(WebCore::Layout::LineBuilder::ContinuousContent::isEligible const):
(WebCore::Layout::LineBuilder::ContinuousContent::expand):
(WebCore::Layout::LineBuilder::close):
(WebCore::Layout::LineBuilder::alignContentVertically):
(WebCore::Layout::LineBuilder::runContentHeight const):
(WebCore::Layout::LineBuilder::CollapsibleContent::collapse):
(WebCore::Layout::LineBuilder::ContinuousContent::append): Deleted.
- 4:41 PM Changeset in webkit [254779] by
-
- 5 edits3 deletes in trunk/Source/WebCore
Unreviewed, rolling out r254564.
This caused internal test crashes.
Reverted changeset:
"Introduce an abstract SampleBufferDisplayLayer"
https://bugs.webkit.org/show_bug.cgi?id=206066
https://trac.webkit.org/changeset/254564
- 4:40 PM Changeset in webkit [254778] by
-
- 26 edits13 deletes in trunk/Source
Unreviewed, rolling out r254688.
This caused internal test crashes.
Reverted changeset:
"Add support for MediaStream video track rendering in
GPUProcess"
https://bugs.webkit.org/show_bug.cgi?id=206286
https://trac.webkit.org/changeset/254688
- 4:32 PM Changeset in webkit [254777] by
-
- 3 edits in trunk/Tools
[EWS] Print disk space usage for windows bots
https://bugs.webkit.org/show_bug.cgi?id=206421
Reviewed by Jonathan Bedard.
- BuildSlaveSupport/ews-build/steps.py:
(PrintConfiguration): Windows bot use cygwin, so df command works.
- 4:30 PM Changeset in webkit [254776] by
-
- 3 edits4 deletes in branches/safari-608.5.7.3-branch
Revert "Cherry-pick r254349. rdar://problem/58529694"
This reverts commit r254451.
- 4:27 PM Changeset in webkit [254775] by
-
- 3 edits4 deletes in branches/safari-608-branch
Revert "Cherry-pick r254349. rdar://problem/58529693"
This reverts commit 254443.
- 4:26 PM Changeset in webkit [254774] by
-
- 2 edits in trunk/Tools
[ews] Perform validation of patch before running layout-tests on Windows
https://bugs.webkit.org/show_bug.cgi?id=206424
Reviewed by Jonathan Bedard.
- BuildSlaveSupport/ews-build/factories.py:
- 4:16 PM Changeset in webkit [254773] by
-
- 3 edits in trunk/Source/WebInspectorUI
Web Inspector: Unchecking Enable Preview Features on Engineering and Preview builds does not affect WI.arePreviewFeaturesEnabled()
https://bugs.webkit.org/show_bug.cgi?id=204026
Reviewed by Brian Burg.
Make
WI.arePreviewFeaturesEnabled()return false when Enable Preview Features is unchecked.
- UserInterface/Base/Setting.js:
(WI.canShowPreviewFeatures):
(WI.arePreviewFeaturesEnabled):
(WI.isTechnologyPreviewBuild): Deleted.
(WI.canShowPreviewFeatures): Added.
- UserInterface/Views/SettingsTabContentView.js:
- 3:57 PM Changeset in webkit [254772] by
-
- 2 edits in trunk/Source/WebCore
Don't call CFURLRequestSetShouldStartSynchronously from Catalyst WebKit
https://bugs.webkit.org/show_bug.cgi?id=206446
<rdar://problem/57382980>
Patch by Alex Christensen <achristensen@webkit.org> on 2020-01-17
Reviewed by Tim Horton.
We call it sometimes on iOS but Catalyst WebKit uses macOS CFNetwork, which doesn't like starting synchronously.
- platform/network/mac/ResourceHandleMac.mm:
(WebCore::ResourceHandle::createNSURLConnection):
- 3:37 PM Changeset in webkit [254771] by
-
- 5 edits in branches/safari-609-branch
Re-apply patch. rdar://problem/58353217
This reverts commit r254768.
- 3:36 PM Changeset in webkit [254770] by
-
- 1 edit in branches/safari-609-branch/Source/WebKit/GPUProcess/media/RemoteMediaPlayerManagerProxy.messages.in
Unreviewed build fix. rdar://problem/58353217
- 3:35 PM Changeset in webkit [254769] by
-
- 2 edits in trunk/Source/WebKit
[iOS] ASSERTION FAILED: ASSERT_NOT_REACHED() in selectionChangedWithTouch(WKContentView*, WebCore::IntPoint const&, unsigned int, unsigned int, WebKit::CallbackBase::Error)
https://bugs.webkit.org/show_bug.cgi?id=206427
Reviewed by Wenson Hsieh.
Remove ASSERT_NOT_REACHED() usage in callbacks selectionChangedWithTouch() and selectionChangedWithGesture().
These callbacks can handle being- and should expect to sometimes be- invoked with a non-None error value.
In particular, if the WebProcess crashes then these callbacks will be invoked with error CallbackBase::Error::ProcessExited.
- UIProcess/ios/WKContentViewInteraction.mm:
(selectionChangedWithGesture): Remove ASSERT_NOT_REACHED() when an error occurs. This
function is capable of handling this error.
(selectionChangedWithTouch): Ditto.
- 3:02 PM Changeset in webkit [254768] by
-
- 5 edits in branches/safari-609-branch
Revert "Apply patch. rdar://problem/58353217"
This reverts commit r254665.
- 2:31 PM Changeset in webkit [254767] by
-
- 5 edits in trunk/Source/WebCore
REGRESSION (r254483): media/track/track-cues-sorted-before-dispatch.html became very flaky
https://bugs.webkit.org/show_bug.cgi?id=206225
<rdar://problem/58634315>
Reviewed by Jer Noble.
The list of text track cues that are to fire events are sorted before events are
fired. Cue were being sorted by track, then by start time, and then by end time.
This meant that the sort order of two cues in the same track with identical start
and end times was not stable, causing this test to be flaky. The spec says to sort
by a cue's position in the track cue list when start and end times are identical,
so do that.
No new tests, this fixes a flaky test.
- html/track/TextTrackCue.cpp:
(WebCore::TextTrackCue::cueIndex const):
(WebCore::TextTrackCue::isOrderedBefore const):
- html/track/TextTrackCue.h:
- html/track/TextTrackCueList.cpp:
(WebCore::cueSortsBefore):
(WebCore::TextTrackCueList::cueIndex const):
(WebCore::TextTrackCueList::add):
(WebCore::TextTrackCueList::updateCueIndex):
(WebCore::compareCues): Deleted.
- html/track/TextTrackCueList.h:
- 2:07 PM Changeset in webkit [254766] by
-
- 8 edits2 moves in trunk/Source/WebCore
Rename AXIsolatedTreeNode.cpp/h to match AXIsolatedObject class name.
https://bugs.webkit.org/show_bug.cgi?id=206434
Reviewed by Chris Fleizach.
File renaming to match AXIsolatedObject class name.
- Headers.cmake:
- Sources.txt:
- WebCore.xcodeproj/project.pbxproj:
- accessibility/AXObjectCache.cpp:
- accessibility/isolatedtree/AXIsolatedObject.cpp: Renamed from Source/WebCore/accessibility/isolatedtree/AXIsolatedTreeNode.cpp.
- accessibility/isolatedtree/AXIsolatedObject.h: Renamed from Source/WebCore/accessibility/isolatedtree/AXIsolatedTreeNode.h.
- accessibility/isolatedtree/AXIsolatedTree.cpp:
- accessibility/isolatedtree/AXIsolatedTree.h:
- accessibility/mac/AXObjectCacheMac.mm:
- 1:57 PM Changeset in webkit [254765] by
-
- 2 edits in trunk/Tools
Fix assertion when test fast/events/ios/rotation/basic-rotation.html is followed by fast/events/ios/rotation/do-not-shrink-to-fit-content-after-rotation.html
https://bugs.webkit.org/show_bug.cgi?id=206383
<rdar://problem/58618513>
Reviewed by Tim Horton.
Rotation tests are asserting because _didEndRotation is being called multiple times.
The call is at the end of viewWillTransitionToSize, which is called with the same
size that the view already is. Therefore, if no size is changing, early out,
which keeps this double call from happening.
- WebKitTestRunner/ios/PlatformWebViewIOS.mm:
(-[PlatformWebViewController viewWillTransitionToSize:withTransitionCoordinator:]):
- 1:43 PM Changeset in webkit [254764] by
-
- 2 edits in trunk/Source/bmalloc
[bmalloc] Fix IsoHeapImpl's assertion introduced in r254708
https://bugs.webkit.org/show_bug.cgi?id=206440
<rdar://problem/58688794>
Reviewed by Mark Lam.
The assertion introduced in r254708 was wrong.
Fixing it to check the invariant we actually want to ensure.
This fixes TestWTF crash in Debug build.
- bmalloc/IsoHeapImplInlines.h:
(bmalloc::IsoHeapImpl<Config>::takeFirstEligible):
- 1:10 PM Changeset in webkit [254763] by
-
- 7 edits in branches/safari-609-branch/Source/WebKit
Cherry-pick r254433. rdar://problem/58686757
[macCatalyst] UI process crashes on launch after r254101
https://bugs.webkit.org/show_bug.cgi?id=206156
<rdar://problem/58514942>
Reviewed by Brent Fulgham.
Fixes the crash by not soft-linking BackBoardServices in an attempt to invoke BKSDisplayBrightnessGetCurrent on
macCatalyst. Prior to r254101, this was only defined on iOS and not watchOS or tvOS; after this change, it
should be defined only on iOS, watchOS and tvOS.
- UIProcess/Cocoa/WebProcessPoolCocoa.mm: (WebKit::WebProcessPool::registerNotificationObservers):
- UIProcess/WebProcessPool.cpp: (WebKit::WebProcessPool::initializeNewWebProcess):
- UIProcess/WebProcessPool.h:
- WebProcess/WebProcess.h:
- WebProcess/WebProcess.messages.in:
- WebProcess/cocoa/WebProcessCocoa.mm:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@254433 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 1:06 PM Changeset in webkit [254762] by
-
- 2 edits in trunk/Tools
Python 3: Add support to run-webkit-tests (Follow-up fix)
https://bugs.webkit.org/show_bug.cgi?id=205291
Unreviewed follow-up fix.
- Scripts/webkitpy/common/unicode_compatibility.py:
(decode_for): Handle case where provided value is None.
- 1:03 PM Changeset in webkit [254761] by
-
- 5 edits2 adds in trunk
[MSE] Decode glitches when watching videos on CNN.com
https://bugs.webkit.org/show_bug.cgi?id=206412
<rdar://problem/55685630>
Reviewed by Xabier Rodriguez-Calvar.
Source/WebCore:
Test: media/media-source/media-source-samples-out-of-order.html
The "Coded frame processing" algorithm has a known shortcoming <https://github.com/w3c/media-source/issues/187>
when dealing appends of with "SAP Type 2" content, or in general terms, appending data where the resulting samples
have presentation times that do not increase monotonically. When this occurs, the ordering of samples in presentation
time will be different from the ordering of samples in decode time. The decoder requires samples to be enqueued in
decode time order, but the MSE specification only checks for overlapping samples in presentation time order. During
appends of out-of-order samples, this can lead to new samples being inserted between a previously appended sample and
the sample on which that sample depends.
To resolve this, add a new step in the implementation of the "coded frame processing" algorithm in
SourceBuffer::sourceBufferPrivateDidReceiveSample(). When the incoming frame is a sync sample, search forward
in the TrackBuffer for all previous samples in between the new sync sample, and the next sync sample. All the
samples found in this step would fail to decode correctly if enqueued after the new (possibly different resolution)
sync sample, so they are removed in this step.
- Modules/mediasource/SampleMap.cpp:
(WebCore::DecodeOrderSampleMap::findSampleAfterDecodeKey):
- Modules/mediasource/SampleMap.h:
- Modules/mediasource/SourceBuffer.cpp:
(WebCore::SourceBuffer::sourceBufferPrivateDidReceiveSample):
LayoutTests:
- media/media-source/media-source-samples-out-of-order-expected.txt: Added.
- media/media-source/media-source-samples-out-of-order.html: Added.
- 12:38 PM Changeset in webkit [254760] by
-
- 12 edits in trunk/Source/JavaScriptCore
Separate storage of Structure::m_offset into transition and max offset
https://bugs.webkit.org/show_bug.cgi?id=206365
Reviewed by Saam Barati.
Right now, deleteProperty/removePropertyTransition causes a structure transition to uncacheable dictionary. Other transitions
assume that the transition offset (m_offset) is monotonically increasing. In order to support structure transitions for deletion that
do not involve turning into a dictionary (<https://bugs.webkit.org/show_bug.cgi?id=206430>), we first need to separate the transition
offset (the offset of the property that was added/deleted) from the maximum offset.
For example, suppose we have the following operations:
Structure 1 (pinned property table, transitionOffset = _, maxOffset = 2): x y z (delete y, assuming that deletion transitions have been added)
Structure 2 (transitionOffset = 1, maxOffset = 2): x _ z (add w)
Structure 3 (transitionOffset = 1, maxOffset = 2): x w z
Note that without splitting the two, Structures 2/3 would be impossible to represent.
This change:
We split the existing Structure::m_offset into two 16-bit fields, transitionOffset and maxOffset, and put them in 32-bit rare data fields if they overflow. We also rename _inPrevious fields to
transition_ and lastOffset to maxOffset to make the code more clear.
- runtime/ClonedArguments.cpp:
(JSC::ClonedArguments::createStructure):
- runtime/JSObject.cpp:
(JSC::JSObject::markAuxiliaryAndVisitOutOfLineProperties):
(JSC::JSObject::visitButterflyImpl):
- runtime/JSObject.h:
- runtime/JSObjectInlines.h:
(JSC::JSObject::prepareToPutDirectWithoutTransition):
- runtime/ObjectInitializationScope.cpp:
(JSC::ObjectInitializationScope::verifyPropertiesAreInitialized):
- runtime/PropertyOffset.h:
(JSC::numberOfOutOfLineSlotsForMaxOffset):
(JSC::numberOfSlotsForMaxOffset):
(JSC::numberOfOutOfLineSlotsForLastOffset): Deleted.
(JSC::numberOfSlotsForLastOffset): Deleted.
- runtime/Structure.cpp:
(JSC::StructureTransitionTable::contains const):
(JSC::StructureTransitionTable::get const):
(JSC::StructureTransitionTable::add):
(JSC::Structure::Structure):
(JSC::Structure::create):
(JSC::Structure::materializePropertyTable):
(JSC::Structure::addPropertyTransitionToExistingStructureImpl):
(JSC::Structure::addNewPropertyTransition):
(JSC::Structure::changePrototypeTransition):
(JSC::Structure::attributeChangeTransition):
(JSC::Structure::toDictionaryTransition):
(JSC::Structure::nonPropertyTransitionSlow):
(JSC::Structure::flattenDictionaryStructure):
(JSC::Structure::pin):
(JSC::Structure::pinForCaching):
(JSC::Structure::add):
- runtime/Structure.h:
- runtime/StructureInlines.h:
(JSC::Structure::forEachPropertyConcurrently):
(JSC::Structure::checkOffsetConsistency const):
(JSC::Structure::add):
- runtime/StructureRareData.cpp:
(JSC::StructureRareData::StructureRareData):
- runtime/StructureRareData.h:
- 12:37 PM Changeset in webkit [254759] by
-
- 3 edits in trunk/Source/WebKit
[iOS] Remove the IOHIDEventServiceFastPathUserClient IOKit class
https://bugs.webkit.org/show_bug.cgi?id=206387
<rdar://problem/58663849>
Reviewed by Per Arne Vollan.
After Bug 204770, we no longer interact with the device motion or geolocation systems inside
the WebContent process. Testing and telemetry shows that we no longer access the
IOHIDEventServiceFastPathUserClient, and so should remove access to it.
No new tests because there is no change in behavior.
- Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
- 12:26 PM Changeset in webkit [254758] by
-
- 2 edits1 add in trunk/LayoutTests
REGRESSION: [iOS 13] svg/custom/glyph-selection-arabic-forms.svg is failing
https://bugs.webkit.org/show_bug.cgi?id=201901
Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2020-01-17
Reviewed by Simon Fraser.
Create a new test expectation for iOS for this test.
- platform/ios/TestExpectations:
- platform/ios/svg/custom/glyph-selection-arabic-forms-expected.txt: Added.
- 12:21 PM Changeset in webkit [254757] by
-
- 4 edits in trunk
JSON.parse should lookup prototype chains during revival
https://bugs.webkit.org/show_bug.cgi?id=205769
Reviewed by Saam Barati.
JSTests:
- test262/expectations.yaml: Mark 4 test cases as passing.
Source/JavaScriptCore:
This patch makes JSON.parse use Get instead of GetOwnProperty during revival,
aligning JSC with the spec (step 1 of https://tc39.es/ecma262/#sec-internalizejsonproperty),
SpiderMonkey, and V8.
User-provided
revivercan delete properties that are not yet inspected by itself,
making usage GetOwnProperty non-compliant to the spec.
- runtime/JSONObject.cpp:
(JSC::Walker::walk):
- 12:06 PM Changeset in webkit [254756] by
-
- 5 edits in trunk
TestWebKitAPI.AsyncFunction.Promise times out on slower machines in debug builds.
<rdar://problem/58445164> and https://bugs.webkit.org/show_bug.cgi?id=206012
Reviewed by Keith Miller.
Source/WebKit:
For existing API test.
- UIProcess/API/Cocoa/WKProcessPool.mm:
(-[WKProcessPool _garbageCollectJavaScriptObjectsForTesting]):
- UIProcess/API/Cocoa/WKProcessPoolPrivate.h:
Tools:
Previously, to force GC, over 30,000 function calls would be made.
This was too slow on slower machines in debug builds. It eventually would've worked given enough time, but...
It turns just a few hundred function calls with an API call to force GC seems reliable and is much faster.
- TestWebKitAPI/Tests/WebKitCocoa/AsyncFunction.mm:
(TestWebKitAPI::TEST):
(TestWebKitAPI::tryGCPromise): Deleted.
- 10:59 AM Changeset in webkit [254755] by
-
- 2 edits in trunk/Source/WebKit
[iOS] Focusing editable element with WebPage::selectPositionAtPoint() does not bring up keyboard
https://bugs.webkit.org/show_bug.cgi?id=206385
<rdar://problem/57414380>
Reviewed by Wenson Hsieh.
Update the view's state to indicate that the user is performing an interaction for the scope of
WebPage::selectPositionAtPoint(). This permits WebKit to show the keyboard if selecting the
position causes a change in focus (say, the point is inside an unfocused text field).
We likely should do a similar change for all other WebKit IPIs that perform a WebCore::EUserTriggered::UserTriggered
tagged selection change though the callers should be audited to ensure they weren't accidentally
depending on the existing behavior that prevents such selections from bringing up the keyboard.
For now, I only fix WebPage::selectPositionAtPoint() as I've audited that all callers expect it
to bring up the keyboard, if needed.
- WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::selectPositionAtPoint):
- 10:52 AM Changeset in webkit [254754] by
-
- 5 edits in trunk/Source/WebCore
[LFC][IFC] Use Optional for partialLeading/TrailingTextItem
https://bugs.webkit.org/show_bug.cgi?id=206423
Reviewed by Zalan Bujtas.
Remove the remaining InlineItem heap allocation.
- layout/inlineformatting/InlineItem.h:
- layout/inlineformatting/InlineTextItem.cpp:
(WebCore::Layout::InlineTextItem::left const): Deleted.
(WebCore::Layout::InlineTextItem::right const): Deleted.
- layout/inlineformatting/InlineTextItem.h:
Constructor can now be private.
(WebCore::Layout::InlineTextItem::left const):
(WebCore::Layout::InlineTextItem::right const):
- layout/inlineformatting/LineLayoutContext.h:
- 10:45 AM Changeset in webkit [254753] by
-
- 6 edits in trunk/Source/WebCore
Drop dead code related to local storage prewarming
https://bugs.webkit.org/show_bug.cgi?id=206418
Reviewed by Sam Weinig.
Drop dead code related to local storage prewarming. Sihui neutered it in <https://trac.webkit.org/changeset/248734>
but did not remove the code.
- loader/DocumentLoader.cpp:
(WebCore::DocumentLoader::commitData):
- page/DOMWindow.cpp:
(WebCore::DOMWindow::prewarmLocalStorageIfNecessary): Deleted.
- page/DOMWindow.h:
- page/Frame.cpp:
(WebCore::Frame::didPrewarmLocalStorage): Deleted.
(WebCore::Frame::mayPrewarmLocalStorage const): Deleted.
- page/Frame.h:
- 10:22 AM Changeset in webkit [254752] by
-
- 3 edits in trunk/LayoutTests
[GTK][WPE] Mark several WPT fetch tests as failure
https://bugs.webkit.org/show_bug.cgi?id=206417
Unreviewed gardening.
- platform/gtk/TestExpectations:
- platform/wpe/TestExpectations:
- 10:09 AM Changeset in webkit [254751] by
-
- 4 edits in trunk/Source
Fix various non-unified build issues introduced since r254327
https://bugs.webkit.org/show_bug.cgi?id=206356
Reviewed by Chris Dumez.
Source/WebCore:
No new tests needed.
- html/LinkRelAttribute.h: Add missing inclusion of wtf/Markable.h
Source/WebKit:
- WebProcess/WebCoreSupport/gtk/WebContextMenuClientGtk.cpp:
(WebKit::WebContextMenuClient::insertEmoji): Add missing namespace to WebCore::Frame parameter.
- 8:24 AM Changeset in webkit [254750] by
-
- 8 edits in trunk/Source/WebCore
[LFC][IFC] Optimize LineBuilder::appendTextContent for the most common inline content
https://bugs.webkit.org/show_bug.cgi?id=206397
<rdar://problem/58671338>
Reviewed by Antti Koivisto.
~2% progression on PerformanceTests/Layout/line-layout-simple.html.
- layout/inlineformatting/InlineLineBuilder.cpp:
(WebCore::Layout::LineBuilder::LineBuilder):
(WebCore::Layout::shouldPreserveLeadingContent):
(WebCore::Layout::LineBuilder::appendTextContent):
(WebCore::Layout::LineBuilder::appendLineBreak):
(WebCore::Layout::LineBuilder::InlineItemRun::InlineItemRun):
- layout/inlineformatting/InlineLineBuilder.h:
(WebCore::Layout::LineBuilder::InlineItemRun::setIsCollapsed): Deleted.
- layout/inlineformatting/InlineTextItem.cpp:
(WebCore::Layout::InlineTextItem::InlineTextItem):
- layout/inlineformatting/InlineTextItem.h:
(WebCore::Layout::InlineTextItem::isCollapsible const):
- layout/inlineformatting/text/TextUtil.cpp:
(WebCore::Layout::TextUtil::shouldPreserveTrailingWhitespace): Deleted.
- layout/inlineformatting/text/TextUtil.h:
(WebCore::Layout::TextUtil::shouldPreserveTrailingWhitespace):
- 8:16 AM Changeset in webkit [254749] by
-
- 10 edits in trunk/Source/WebCore
[LFC][IFC] Allocate InlineItems in a vector
https://bugs.webkit.org/show_bug.cgi?id=206411
Reviewed by Zalan Bujtas.
Even the largest InlineItem (InlineTextItem) is small (fits to 24 bytes), and they are allocated
in large numbers (one per word and per whitespace typically). Reduce heap allocations by turning
InlineItem into a fixed size type.
The InlineItem vector is immutable during layout so pointer to items can still be safely used.
- layout/inlineformatting/InlineFormattingContext.cpp:
(WebCore::Layout::InlineFormattingContext::collectInlineContentIfNeeded):
- layout/inlineformatting/InlineFormattingState.h:
(WebCore::Layout::InlineFormattingState::addInlineItem):
- layout/inlineformatting/InlineItem.cpp:
(WebCore::Layout::InlineItem::InlineItem): Deleted.
- layout/inlineformatting/InlineItem.h:
(WebCore::Layout::InlineItem::layoutBox const):
(WebCore::Layout::InlineItem::style const):
(WebCore::Layout::InlineItem::InlineItem):
Gather members from the subclasses as protected fields.
- layout/inlineformatting/InlineSoftLineBreakItem.h:
Move the field to the base class.
(WebCore::Layout::InlineSoftLineBreakItem::position const):
(WebCore::Layout::InlineSoftLineBreakItem::createSoftLineBreakItem):
(WebCore::Layout::InlineSoftLineBreakItem::InlineSoftLineBreakItem):
(): Deleted.
- layout/inlineformatting/InlineTextItem.cpp:
(WebCore::Layout::InlineTextItem::createWhitespaceItem): Deleted.
(WebCore::Layout::InlineTextItem::createNonWhitespaceItem): Deleted.
(WebCore::Layout::InlineTextItem::createEmptyItem): Deleted.
(WebCore::Layout::InlineTextItem::InlineTextItem): Deleted.
- layout/inlineformatting/InlineTextItem.h:
Move the fields to the base class.
(WebCore::Layout::InlineTextItem::start const):
(WebCore::Layout::InlineTextItem::width const):
Place width optional into a separate bit and a value as this allows better packing of members.
(WebCore::Layout::InlineTextItem::createWhitespaceItem):
(WebCore::Layout::InlineTextItem::createNonWhitespaceItem):
(WebCore::Layout::InlineTextItem::createEmptyItem):
(WebCore::Layout::InlineTextItem::InlineTextItem):
Inline construction functions.
(): Deleted.
- layout/inlineformatting/LineLayoutContext.cpp:
(WebCore::Layout::nextWrapOpportunity):
(WebCore::Layout::LineCandidateContent::appendFloat):
Use a raw pointer instead of a WeakPtr. InlineItems are immuttable during layout.
(WebCore::Layout::LineLayoutContext::close):
(WebCore::Layout::LineLayoutContext::nextContentForLine):
- layout/inlineformatting/LineLayoutContext.h:
- 8:14 AM Changeset in webkit [254748] by
-
- 2 edits in trunk/Source/JavaScriptCore
Bytecode checkpoints break 32bit tests
https://bugs.webkit.org/show_bug.cgi?id=206404
Unreviewed.
- llint/LowLevelInterpreter32_64.asm:
Reverting change introduced by r254735 that makes 32-bit codes crash
when calling into LLInt slow path.
- 8:04 AM Changeset in webkit [254747] by
-
- 3 edits19 adds in trunk/LayoutTests
[GTK][WPE] Update baselines for several CSS tests
https://bugs.webkit.org/show_bug.cgi?id=206410
Unreviewed gardening.
- platform/gtk/TestExpectations:
- platform/gtk/imported/w3c/web-platform-tests/css/css-position/position-absolute-in-inline-002-expected.txt: Added.
- platform/gtk/imported/w3c/web-platform-tests/css/css-values/line-break-ch-unit-expected.txt: Added.
- platform/gtk/imported/w3c/web-platform-tests/css/css-values/minmax-angle-computed-expected.txt: Added.
- platform/gtk/imported/w3c/web-platform-tests/css/css-values/minmax-length-computed-expected.txt: Added.
- platform/gtk/imported/w3c/web-platform-tests/css/css-values/minmax-length-percent-computed-expected.txt: Added.
- platform/wpe/TestExpectations:
- platform/wpe/imported/w3c/web-platform-tests/css/css-position/position-absolute-in-inline-002-expected.txt: Added.
- platform/wpe/imported/w3c/web-platform-tests/css/css-sizing/button-min-width-expected.txt: Added.
- platform/wpe/imported/w3c/web-platform-tests/css/css-transitions/before-load-001-expected.txt: Added.
- platform/wpe/imported/w3c/web-platform-tests/css/css-transitions/properties-value-auto-001-expected.txt: Added.
- platform/wpe/imported/w3c/web-platform-tests/css/css-values/line-break-ch-unit-expected.txt: Added.
- platform/wpe/imported/w3c/web-platform-tests/css/css-values/minmax-angle-computed-expected.txt: Added.
- platform/wpe/imported/w3c/web-platform-tests/css/css-values/minmax-length-computed-expected.txt: Added.
- platform/wpe/imported/w3c/web-platform-tests/css/css-values/minmax-length-percent-computed-expected.txt: Added.
- 8:00 AM Changeset in webkit [254746] by
-
- 2 edits in trunk/Source/WebKit
[WinCairo][WK2] ASSERT(isUIThread()) is failing since r254723
https://bugs.webkit.org/show_bug.cgi?id=206394
Reviewed by Carlos Alberto Lopez Perez.
AtomString::init() should be called after
WTF::initializeThreading() is called on Windows because it has
ASSERT(isUIThread()) and Windows doesn't have a API to get main
thread handle like pthread_main_np.
- Shared/WebKit2Initialize.cpp:
(WebKit::InitializeWebKit2): Call AtomString::init() after JSC::initializeThreading().
- 7:56 AM Changeset in webkit [254745] by
-
- 2 edits in trunk/Source/WebKit
IPC hardening for WebPasteboardProxy::SetPasteboardBufferForType message
https://bugs.webkit.org/show_bug.cgi?id=206381
Reviewed by Anders Carlsson.
IPC hardening for WebPasteboardProxy::SetPasteboardBufferForType message. Make sure that the Strings passed over IPC are not
null and that the SharedBuffer returned by SharedBuffer::map() is not null.
- UIProcess/Cocoa/WebPasteboardProxyCocoa.mm:
(WebKit::WebPasteboardProxy::setPasteboardBufferForType):
- 7:17 AM Changeset in webkit [254744] by
-
- 7 edits5 adds in trunk/LayoutTests
[GTK] Update baselines for SVG tests
https://bugs.webkit.org/show_bug.cgi?id=206406
Unreviewed gardening.
- platform/gtk/imported/w3c/web-platform-tests/svg/geometry/parsing/height-computed-expected.txt: Added.
- platform/gtk/imported/w3c/web-platform-tests/svg/geometry/parsing/width-computed-expected.txt: Added.
- platform/gtk/imported/w3c/web-platform-tests/svg/path/distance/pathLength-positive-expected.txt:
- platform/gtk/imported/w3c/web-platform-tests/svg/path/distance/pathLength-positive-percentage-expected.txt:
- platform/gtk/imported/w3c/web-platform-tests/svg/path/distance/pathLength-zero-expected.txt:
- platform/gtk/imported/w3c/web-platform-tests/svg/path/distance/pathLength-zero-percentage-expected.txt:
- platform/gtk/imported/w3c/web-platform-tests/svg/shapes/reftests/pathlength-003-expected.txt:
- platform/gtk/imported/w3c/web-platform-tests/svg/shapes/scripted/disabled-shapes-not-hit-expected.txt: Added.
- platform/gtk/imported/w3c/web-platform-tests/svg/text/reftests/textpath-shape-001-expected.txt:
- 7:03 AM Changeset in webkit [254743] by
-
- 2 edits in trunk/Source/WebCore
[LFC][IFC] Optimize nextWrapOpportunity/isAtSoftWrapOpportunity for the most common inline content
https://bugs.webkit.org/show_bug.cgi?id=206395
<rdar://problem/58670070>
Reviewed by Antti Koivisto.
~2% progression on PerformanceTests/Layout/line-layout-simple.html.
- layout/inlineformatting/LineLayoutContext.cpp:
(WebCore::Layout::isAtSoftWrapOpportunity):
(WebCore::Layout::nextWrapOpportunity):
- 6:00 AM Changeset in webkit [254742] by
-
- 2 edits in trunk/Source/WebKit
[GTK][WPE] Composition underline color is not applied
https://bugs.webkit.org/show_bug.cgi?id=206353
Reviewed by Sergio Villar Senin.
CompositionUnderline::compositionUnderlineColor is not encoded/decoded in IPC messages, so the web process
always uses CompositionUnderlineColor::TextColor ignoring the given color.
- Shared/WebCoreArgumentCoders.cpp:
(IPC::ArgumentCoder<CompositionUnderline>::encode): Encode compositionUnderlineColor.
(IPC::ArgumentCoder<CompositionUnderline>::decode): Decode compositionUnderlineColor.
- 3:59 AM Changeset in webkit [254741] by
-
- 5 edits in trunk/Source/WebCore
[GTK] Turn off antialiasing when rendering with Ahem (v2)
https://bugs.webkit.org/show_bug.cgi?id=204671
Reviewed by Carlos Garcia Campos.
Fix leak caused by r254567 where a RefPtr its created from a FcPattern without adoptRef().
Meanwhile at it, also change defaultFontconfigOptions() to return a RefPtr,
because after r254567 we always modify the pattern.
Change also the FontPlatformData() constructor to take an rvalue reference,
and some of its callers to move the RefPtr, avoiding extra not needed
reference increments/decrements.
Covered by existing tests.
- platform/graphics/FontPlatformData.h:
- platform/graphics/freetype/FontCacheFreeType.cpp:
(WebCore::FontCache::systemFallbackForCharacters):
(WebCore::FontCache::createFontPlatformData):
- platform/graphics/freetype/FontCustomPlatformDataFreeType.cpp:
(WebCore::defaultFontconfigOptions):
(WebCore::FontCustomPlatformData::fontPlatformData):
- platform/graphics/freetype/FontPlatformDataFreeType.cpp:
(WebCore::FontPlatformData::FontPlatformData):
- 2:04 AM Changeset in webkit [254740] by
-
- 2 edits in trunk/LayoutTests
[GTK] Gardening websockets close-on-x tests
https://bugs.webkit.org/show_bug.cgi?id=206393
Unreviewed gardening.
Patch by Lauro Moura <Lauro Moura> on 2020-01-17
- platform/gtk/TestExpectations: