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

Timeline



May 25, 2019:

4:14 PM Changeset in webkit [245777] by Simon Fraser
  • 3 edits in trunk/Tools

MobileMiniBrowser: Add iPad support, and allow insecure loads
https://bugs.webkit.org/show_bug.cgi?id=198249

Reviewed by Tim Horton.

Add iPad support to MobileMiniBrowser, and allow insecure loads.

  • MobileMiniBrowser/MobileMiniBrowser.xcodeproj/project.pbxproj:
  • MobileMiniBrowser/MobileMiniBrowser/Info.plist:
1:14 PM Changeset in webkit [245776] by Alan Bujtas
  • 26 edits
    2 copies
    1 move
    2 adds
    2 deletes in trunk/Source/WebCore

[LFC][IFC] Introduce DisplayRun to display tree
https://bugs.webkit.org/show_bug.cgi?id=197198

Reviewed by Antti Koivisto.

Add a simple inline layout implementation. Now we've got DisplayBoxes for layout boxes and
DisplayRuns for inline runs.

  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • layout/FormattingContextGeometry.cpp:

(WebCore::Layout::contentHeightForFormattingContextRoot):

  • layout/Verification.cpp:

(WebCore::Layout::areEssentiallyEqual):
(WebCore::Layout::outputMismatchingSimpleLineInformationIfNeeded):
(WebCore::Layout::checkForMatchingNonTextRuns):
(WebCore::Layout::checkForMatchingTextRuns):
(WebCore::Layout::outputMismatchingComplexLineInformationIfNeeded):
(WebCore::Layout::outputMismatchingBlockBoxInformationIfNeeded):
(WebCore::Layout::resolveForRelativePositionIfNeeded): Deleted.

  • layout/blockformatting/BlockFormattingContextGeometry.cpp:

(WebCore::Layout::BlockFormattingContext::Geometry::inFlowNonReplacedHeightAndMargin):

  • layout/displaytree/DisplayBox.cpp:

(WebCore::Display::Box::marginBox const):
(WebCore::Display::Box::nonCollapsedMarginBox const):
(WebCore::Display::Box::borderBox const):
(WebCore::Display::Box::paddingBox const):
(WebCore::Display::Box::contentBox const):
(WebCore::Display::Box::Rect::Rect): Deleted.

  • layout/displaytree/DisplayBox.h:

(WebCore::Display::Box::rectWithMargin const):
(WebCore::Display::Box::horizontalMargin const):
(WebCore::Display::Box::Rect::intersects const): Deleted.
(WebCore::Display::Box::Rect::invalidateTop): Deleted.
(WebCore::Display::Box::Rect::invalidateLeft): Deleted.
(WebCore::Display::Box::Rect::invalidateWidth): Deleted.
(WebCore::Display::Box::Rect::invalidateHeight): Deleted.
(WebCore::Display::Box::Rect::hasValidPosition const): Deleted.
(WebCore::Display::Box::Rect::hasValidSize const): Deleted.
(WebCore::Display::Box::Rect::hasValidGeometry const): Deleted.
(WebCore::Display::Box::Rect::invalidatePosition): Deleted.
(WebCore::Display::Box::Rect::setHasValidPosition): Deleted.
(WebCore::Display::Box::Rect::setHasValidSize): Deleted.
(WebCore::Display::Box::Rect::top const): Deleted.
(WebCore::Display::Box::Rect::left const): Deleted.
(WebCore::Display::Box::Rect::bottom const): Deleted.
(WebCore::Display::Box::Rect::right const): Deleted.
(WebCore::Display::Box::Rect::topLeft const): Deleted.
(WebCore::Display::Box::Rect::bottomRight const): Deleted.
(WebCore::Display::Box::Rect::size const): Deleted.
(WebCore::Display::Box::Rect::width const): Deleted.
(WebCore::Display::Box::Rect::height const): Deleted.
(WebCore::Display::Box::Rect::setTopLeft): Deleted.
(WebCore::Display::Box::Rect::setTop): Deleted.
(WebCore::Display::Box::Rect::setLeft): Deleted.
(WebCore::Display::Box::Rect::setWidth): Deleted.
(WebCore::Display::Box::Rect::setHeight): Deleted.
(WebCore::Display::Box::Rect::setSize): Deleted.
(WebCore::Display::Box::Rect::shiftLeftTo): Deleted.
(WebCore::Display::Box::Rect::shiftRightTo): Deleted.
(WebCore::Display::Box::Rect::shiftTopTo): Deleted.
(WebCore::Display::Box::Rect::shiftBottomTo): Deleted.
(WebCore::Display::Box::Rect::moveHorizontally): Deleted.
(WebCore::Display::Box::Rect::moveVertically): Deleted.
(WebCore::Display::Box::Rect::expand): Deleted.
(WebCore::Display::Box::Rect::clone const): Deleted.
(WebCore::Display::Box::Rect::operator LayoutRect const): Deleted.

  • layout/displaytree/DisplayRect.h: Added.

(WebCore::Display::Rect::expandHorizontally):
(WebCore::Display::Rect::expandVertically):
(WebCore::Display::Rect::intersects const):
(WebCore::Display::Rect::invalidateTop):
(WebCore::Display::Rect::invalidateLeft):
(WebCore::Display::Rect::invalidateWidth):
(WebCore::Display::Rect::invalidateHeight):
(WebCore::Display::Rect::hasValidPosition const):
(WebCore::Display::Rect::hasValidSize const):
(WebCore::Display::Rect::hasValidGeometry const):
(WebCore::Display::Rect::Rect):
(WebCore::Display::Rect::invalidatePosition):
(WebCore::Display::Rect::setHasValidPosition):
(WebCore::Display::Rect::setHasValidSize):
(WebCore::Display::Rect::top const):
(WebCore::Display::Rect::left const):
(WebCore::Display::Rect::bottom const):
(WebCore::Display::Rect::right const):
(WebCore::Display::Rect::topLeft const):
(WebCore::Display::Rect::bottomRight const):
(WebCore::Display::Rect::size const):
(WebCore::Display::Rect::width const):
(WebCore::Display::Rect::height const):
(WebCore::Display::Rect::setTopLeft):
(WebCore::Display::Rect::setTop):
(WebCore::Display::Rect::setLeft):
(WebCore::Display::Rect::setWidth):
(WebCore::Display::Rect::setHeight):
(WebCore::Display::Rect::setSize):
(WebCore::Display::Rect::shiftLeftTo):
(WebCore::Display::Rect::shiftRightTo):
(WebCore::Display::Rect::shiftTopTo):
(WebCore::Display::Rect::shiftBottomTo):
(WebCore::Display::Rect::moveHorizontally):
(WebCore::Display::Rect::moveVertically):
(WebCore::Display::Rect::expand):
(WebCore::Display::Rect::clone const):
(WebCore::Display::Rect::operator LayoutRect const):

  • layout/displaytree/DisplayRun.h: Renamed from Source/WebCore/layout/inlineformatting/InlineRun.h.

(WebCore::Display::Run::TextContext::start const):
(WebCore::Display::Run::TextContext::end const):
(WebCore::Display::Run::TextContext::length const):
(WebCore::Display::Run::TextContext::expand):
(WebCore::Display::Run::logicalTopLeft const):
(WebCore::Display::Run::logicalLeft const):
(WebCore::Display::Run::logicalRight const):
(WebCore::Display::Run::logicalTop const):
(WebCore::Display::Run::logicalBottom const):
(WebCore::Display::Run::logicalWidth const):
(WebCore::Display::Run::logicalHeight const):
(WebCore::Display::Run::setLogicalWidth):
(WebCore::Display::Run::setLogicalTop):
(WebCore::Display::Run::setLogicalLeft):
(WebCore::Display::Run::setLogicalRight):
(WebCore::Display::Run::moveVertically):
(WebCore::Display::Run::moveHorizontally):
(WebCore::Display::Run::expandVertically):
(WebCore::Display::Run::expandHorizontally):
(WebCore::Display::Run::setTextContext):
(WebCore::Display::Run::textContext):
(WebCore::Display::Run::textContext const):
(WebCore::Display::Run::Run):
(WebCore::Display::Run::TextContext::TextContext):

  • layout/floats/FloatAvoider.cpp:

(WebCore::Layout::FloatAvoider::rectInContainingBlock const):

  • layout/floats/FloatAvoider.h:

(WebCore::Layout::FloatAvoider::rect const):

  • layout/floats/FloatBox.cpp:

(WebCore::Layout::FloatBox::rect const):

  • layout/floats/FloatBox.h:
  • layout/floats/FloatingContext.cpp:

(WebCore::Layout::FloatPair::intersects const):

  • layout/floats/FloatingState.h:

(WebCore::Layout::FloatingState::FloatItem::rectWithMargin const):

  • layout/inlineformatting/InlineFormattingContext.cpp:

(WebCore::Layout::InlineFormattingContext::layout const):
(WebCore::Layout::InlineFormattingContext::computeIntrinsicWidthConstraints const):
(WebCore::Layout::InlineFormattingContext::initializeMarginBorderAndPaddingForGenericInlineBox const):
(WebCore::Layout::InlineFormattingContext::computeMarginBorderAndPaddingForInlineContainer const):
(WebCore::Layout::InlineFormattingContext::computeIntrinsicWidthForFloatBox const):
(WebCore::Layout::InlineFormattingContext::computeIntrinsicWidthForInlineBlock const):
(WebCore::Layout::InlineFormattingContext::computeHorizontalMargin const):
(WebCore::Layout::InlineFormattingContext::layoutFormattingContextRoot const):
(WebCore::Layout::InlineFormattingContext::collectInlineContent const):
(WebCore::Layout::InlineFormattingContext::computeMargin const): Deleted.
(WebCore::Layout::addDetachingRules): Deleted.
(WebCore::Layout::createAndAppendInlineItem): Deleted.

  • layout/inlineformatting/InlineFormattingContext.h:

(WebCore::Layout::InlineFormattingContext::LineLayout::layoutState const):

  • layout/inlineformatting/InlineFormattingContextLineLayout.cpp:

(WebCore::Layout::halfLeadingMetrics):
(WebCore::Layout::Line::availableWidth const):
(WebCore::Layout::Line::contentLogicalRight const):
(WebCore::Layout::Line::contentLogicalWidth const):
(WebCore::Layout::Line::logicalTop const):
(WebCore::Layout::Line::logicalLeft const):
(WebCore::Layout::Line::logicalRight const):
(WebCore::Layout::Line::logicalBottom const):
(WebCore::Layout::Line::logicalWidth const):
(WebCore::Layout::Line::logicalHeight const):
(WebCore::Layout::Line::LineItem::LineItem):
(WebCore::Layout::Line::Line):
(WebCore::Layout::Line::reset):
(WebCore::Layout::Line::close):
(WebCore::Layout::Line::removeTrailingTrimmableContent):
(WebCore::Layout::Line::moveLogicalLeft):
(WebCore::Layout::Line::moveLogicalRight):
(WebCore::Layout::isTrimmableContent):
(WebCore::Layout::Line::trailingTrimmableWidth const):
(WebCore::Layout::Line::hasContent const):
(WebCore::Layout::Line::appendNonBreakableSpace):
(WebCore::Layout::Line::appendInlineContainerStart):
(WebCore::Layout::Line::appendInlineContainerEnd):
(WebCore::Layout::Line::appendTextContent):
(WebCore::Layout::Line::appendNonTextContent):
(WebCore::Layout::Line::appendHardLineBreak):
(WebCore::Layout::UncommittedContent::isEmpty const):
(WebCore::Layout::UncommittedContent::width const):
(WebCore::Layout::UncommittedContent::add):
(WebCore::Layout::UncommittedContent::reset):
(WebCore::Layout::InlineFormattingContext::LineLayout::LineLayout):
(WebCore::Layout::InlineFormattingContext::LineLayout::initializeLine const):
(WebCore::Layout::InlineFormattingContext::LineLayout::layout const):
(WebCore::Layout::InlineFormattingContext::LineLayout::closeLine const):
(WebCore::Layout::InlineFormattingContext::LineLayout::handleFloat const):
(WebCore::Layout::InlineFormattingContext::LineLayout::commitInlineItemToLine const):
(WebCore::Layout::horizontalAdjustmentForAlignment):
(WebCore::Layout::InlineFormattingContext::LineLayout::alignRuns const):
(WebCore::Layout::Line::isClosed const): Deleted.
(WebCore::Layout::Line::isFirstLine const): Deleted.
(WebCore::Layout::Line::runs): Deleted.
(WebCore::Layout::Line::contentLogicalLeft const): Deleted.
(WebCore::Layout::Line::lastRunType const): Deleted.
(WebCore::Layout::Line::init): Deleted.
(WebCore::Layout::Line::adjustLogicalLeft): Deleted.
(WebCore::Layout::Line::adjustLogicalRight): Deleted.
(WebCore::Layout::Line::appendContent): Deleted.
(WebCore::Layout::InlineFormattingContext::LineLayout::initializeNewLine const): Deleted.
(WebCore::Layout::InlineFormattingContext::LineLayout::splitInlineRunIfNeeded const): Deleted.
(WebCore::Layout::InlineFormattingContext::LineLayout::createFinalRuns const): Deleted.
(WebCore::Layout::InlineFormattingContext::LineLayout::postProcessInlineRuns const): Deleted.
(WebCore::Layout::InlineFormattingContext::LineLayout::appendContentToLine const): Deleted.
(WebCore::Layout::InlineFormattingContext::LineLayout::computeFloatPosition const): Deleted.
(WebCore::Layout::InlineFormattingContext::LineLayout::placeInFlowPositionedChildren const): Deleted.
(WebCore::Layout::adjustedLineLogicalLeft): Deleted.
(WebCore::Layout::InlineFormattingContext::LineLayout::justifyRuns): Deleted.
(WebCore::Layout::InlineFormattingContext::LineLayout::computeExpansionOpportunities const): Deleted.
(WebCore::Layout::InlineFormattingContext::LineLayout::runWidth const): Deleted.

  • layout/inlineformatting/InlineFormattingState.h:

(WebCore::Layout::InlineFormattingState::inlineItems):
(WebCore::Layout::InlineFormattingState::lineBoxes):
(WebCore::Layout::InlineFormattingState::addInlineItem):
(WebCore::Layout::InlineFormattingState::addInlineRun):
(WebCore::Layout::InlineFormattingState::addLineBox):
(WebCore::Layout::InlineFormattingState::inlineContent): Deleted.
(WebCore::Layout::InlineFormattingState::lastInlineItem const): Deleted.
(WebCore::Layout::InlineFormattingState::appendInlineRun): Deleted.

  • layout/inlineformatting/InlineItem.h:

(WebCore::Layout::InlineItem::type const):
(WebCore::Layout::InlineItem::isText const):
(WebCore::Layout::InlineItem::isBox const):
(WebCore::Layout::InlineItem::isHardLineBreak const):
(WebCore::Layout::InlineItem::isFloat const):
(WebCore::Layout::InlineItem::isLineBreak const):
(WebCore::Layout::InlineItem::isContainerStart const):
(WebCore::Layout::InlineItem::isContainerEnd const):
(WebCore::Layout::InlineItem::InlineItem):
(WebCore::Layout::InlineItem::setWidth):
(WebCore::Layout::InlineItem::width const):
(WebCore::Layout::InlineItem::addDetachingRule): Deleted.
(WebCore::Layout::InlineItem::detachingRules const): Deleted.
(WebCore::Layout::InlineItem::nonBreakableStart const): Deleted.
(WebCore::Layout::InlineItem::nonBreakableEnd const): Deleted.
(WebCore::Layout::InlineItem::addNonBreakableStart): Deleted.
(WebCore::Layout::InlineItem::addNonBreakableEnd): Deleted.
(WebCore::Layout::InlineItem::textContent const): Deleted.

  • layout/inlineformatting/InlineLineBox.h: Copied from Source/WebCore/layout/floats/FloatBox.h.

(WebCore::Layout::LineBox::logicalTopLeft const):
(WebCore::Layout::LineBox::logicalLeft const):
(WebCore::Layout::LineBox::logicalRight const):
(WebCore::Layout::LineBox::logicalTop const):
(WebCore::Layout::LineBox::logicalBottom const):
(WebCore::Layout::LineBox::logicalWidth const):
(WebCore::Layout::LineBox::logicalHeight const):
(WebCore::Layout::LineBox::LineBox):

  • layout/inlineformatting/InlineLineBreaker.cpp:

(WebCore::Layout::LineBreaker::LineBreaker):
(WebCore::Layout::LineBreaker::breakingContext):
(WebCore::Layout::LineBreaker::wordBreakingBehavior const):
(WebCore::Layout::LineBreaker::runWidth const):
(WebCore::Layout::LineBreaker::isAtBreakingOpportunity):
(WebCore::Layout::LineBreaker::textWidth const):
(WebCore::Layout::InlineLineBreaker::InlineLineBreaker): Deleted.
(WebCore::Layout::InlineLineBreaker::nextRun): Deleted.
(WebCore::Layout::InlineLineBreaker::isAtContentEnd const): Deleted.
(WebCore::Layout::InlineLineBreaker::lineBreakingBehavior): Deleted.
(WebCore::Layout::InlineLineBreaker::runWidth const): Deleted.
(WebCore::Layout::InlineLineBreaker::textWidth const): Deleted.
(WebCore::Layout::InlineLineBreaker::splitRun): Deleted.
(WebCore::Layout::InlineLineBreaker::adjustSplitPositionWithHyphenation const): Deleted.

  • layout/inlineformatting/InlineLineBreaker.h:
  • layout/inlineformatting/InlineRunProvider.cpp: Removed.
  • layout/inlineformatting/InlineRunProvider.h: Removed.
  • layout/inlineformatting/InlineTextItem.cpp: Added.

(WebCore::Layout::isWhitespaceCharacter):
(WebCore::Layout::isSoftLineBreak):
(WebCore::Layout::moveToNextNonWhitespacePosition):
(WebCore::Layout::moveToNextBreakablePosition):
(WebCore::Layout::InlineTextItem::createAndAppendTextItems):
(WebCore::Layout::InlineTextItem::InlineTextItem):

  • layout/inlineformatting/InlineTextItem.h: Copied from Source/WebCore/layout/inlineformatting/text/TextUtil.h.

(WebCore::Layout::InlineTextItem::start const):
(WebCore::Layout::InlineTextItem::end const):
(WebCore::Layout::InlineTextItem::length const):
(WebCore::Layout::InlineTextItem::isWhitespace const):
(WebCore::Layout::InlineTextItem::isCollapsed const):

  • layout/inlineformatting/text/TextUtil.cpp:

(WebCore::Layout::TextUtil::hyphenPositionBefore):
(WebCore::Layout::TextUtil::width):
(WebCore::Layout::TextUtil::fixedPitchWidth):

  • layout/inlineformatting/text/TextUtil.h:
  • layout/layouttree/LayoutBox.h:
  • layout/layouttree/LayoutReplaced.cpp:

(WebCore::Layout::Replaced::intrinsicRatio const):

  • layout/layouttree/LayoutTreeBuilder.cpp:

(WebCore::Layout::accumulatedOffsetForInFlowPositionedContinuation):
(WebCore::Layout::TreeBuilder::createSubTree):
(WebCore::Layout::outputInlineRuns):
(WebCore::Layout::outputLayoutBox):

11:59 AM Changeset in webkit [245775] by Wenson Hsieh
  • 7 edits in trunk

[iOS] Respect -[NSItemProvider preferredPresentationSize] when dropping images
https://bugs.webkit.org/show_bug.cgi?id=198242

Reviewed by Beth Dakin.

Source/WebCore:

Teach the web content reader to respect the -preferredPresentationSize when creating attachment-backed image
elements. See below for more details.

Test: WKAttachmentTestsIOS.InsertDroppedImageWithPreferredPresentationSize

  • editing/WebContentReader.h:
  • editing/cocoa/WebContentReaderCocoa.mm:

(WebCore::attachmentForFilePath):
(WebCore::attachmentForData):

When creating attachment-backed image elements, additionally set width and height attributes from the preferred
presentation size, if specified.

(WebCore::WebContentReader::readFilePath):

Add a version of readFilePath that takes a single file path, and an optional preferred presentation size.

(WebCore::WebContentReader::readFilePaths):

Reimplement readFilePaths in terms of readFilePath.

(WebCore::WebContentReader::readDataBuffer):

Add more plumbing for preferredPresentationSize.

  • platform/Pasteboard.h:

(WebCore::PasteboardWebContentReader::readFilePath):
(WebCore::PasteboardWebContentReader::readDataBuffer):

  • platform/ios/PasteboardIOS.mm:

(WebCore::Pasteboard::read):
(WebCore::Pasteboard::readRespectingUTIFidelities):

Forward PasteboardItemInfo's preferredPresentationSize to the web content reader.

Tools:

Add a new test that simulates dropping an image with a preferred presentation size into an editable element
with attachment elements enabled.

  • TestWebKitAPI/Tests/WebKitCocoa/WKAttachmentTests.mm:

(TestWebKitAPI::TEST):

11:50 AM Changeset in webkit [245774] by graouts@webkit.org
  • 2 edits in trunk/Source/WebCore

Opt naver.com into simulated mouse events quirk on iOS
https://bugs.webkit.org/show_bug.cgi?id=198248
<rdar://problem/50598281>

Reviewed by Brent Fulgham.

  • page/Quirks.cpp:

(WebCore::Quirks::shouldDispatchSimulatedMouseEvents const):

9:41 AM Changeset in webkit [245773] by youenn@apple.com
  • 4 edits in trunk

media/video-remote-control-playpause.html is timing out after r245712
https://bugs.webkit.org/show_bug.cgi?id=198238

Reviewed by Eric Carlson.

Source/WebCore:

Fix regression introduced in r245712.
Covered by test no longer timing out.

  • platform/audio/PlatformMediaSessionManager.cpp:

(WebCore::PlatformMediaSessionManager::sessionWillEndPlayback):

LayoutTests:

  • platform/mac/TestExpectations:

Removed old flaky expectation that is no longer valid according dashboard.

8:01 AM Changeset in webkit [245772] by Simon Fraser
  • 4 edits
    3 adds in trunk

[Async overflow scrolling] Absolute positioned element inside async overflow scroll didn't get composited sometimes
https://bugs.webkit.org/show_bug.cgi?id=198237

Reviewed by Antti Koivisto.

Source/WebCore:

The logic in requiresCompositingForIndirectReason() that decides if we need to do
compositing for a layer that needs to move independently of its enclosing scroller
was wrong.

Instead of asking question about the enclosing compositing layer, it needs to ask
whether it has different positioning behavior from the layer that it would
otherwise paint into, which is its paint-order parent.

"paintsIntoProvidedBacking" already does a containing-block check against the
scroller, so we know we don't have to do the check in that case.

Test: scrollingcoordinator/scrolling-tree/absolute-inside-stacking-in-scroller.html

  • rendering/RenderLayerCompositor.cpp:

(WebCore::RenderLayerCompositor::computeCompositingRequirements):
(WebCore::enclosingCompositedScrollingLayer):
(WebCore::isScrolledByOverflowScrollLayer):
(WebCore::isNonScrolledLayerInsideScrolledCompositedAncestor):
(WebCore::RenderLayerCompositor::requiresCompositingForIndirectReason const):

  • rendering/RenderLayerCompositor.h:

LayoutTests:

  • platform/ios-wk2/scrollingcoordinator/scrolling-tree/absolute-inside-stacking-in-scroller-expected.txt: Added.
  • scrollingcoordinator/scrolling-tree/absolute-inside-stacking-in-scroller-expected.txt: Added.
  • scrollingcoordinator/scrolling-tree/absolute-inside-stacking-in-scroller.html: Added.
8:01 AM Changeset in webkit [245771] by Simon Fraser
  • 3 edits
    2 adds in trunk

[macOS] Fix programmatic scroll in RTL overflow with async scrolling enabled
https://bugs.webkit.org/show_bug.cgi?id=198226

Reviewed by Antti Koivisto.

Source/WebCore:

On macOS we need to use a scroll offset to set the layer position, not
a scroll position.

Test: scrollingcoordinator/mac/rtl-programmatic-overflow-scroll.html

  • page/scrolling/mac/ScrollingTreeOverflowScrollingNodeMac.mm:

(WebCore::ScrollingTreeOverflowScrollingNodeMac::repositionScrollingLayers):

Source/WebCore/../../LayoutTests:

  • scrollingcoordinator/mac/rtl-programmatic-overflow-scroll-expected.html: Added.
  • scrollingcoordinator/mac/rtl-programmatic-overflow-scroll.html: Added.
7:33 AM Changeset in webkit [245770] by Michael Catanzaro
  • 2 edits in trunk/Source/WebCore/platform/gtk/po

[l10n] [pt_BR] Updated Brazilian Portuguese translation
https://bugs.webkit.org/show_bug.cgi?id=198245

Patch by Rafael Fontenelle <rafaelff@gnome.org> on 2019-05-25
Rubber-stamped by Michael Catanzaro.

  • pt_BR.po:
2:25 AM Changeset in webkit [245769] by Tadeu Zagallo
  • 3 edits
    1 add in trunk

JITOperations getByVal should mark negative array indices as out-of-bounds
https://bugs.webkit.org/show_bug.cgi?id=198229

Reviewed by Saam Barati.

JSTests:

  • microbenchmarks/get-by-val-negative-array-index.js: Added.

(foo):

Source/JavaScriptCore:

get_by_val with an array or string as base value and a negative index causes DFG to OSR exit,
but baseline doesn't mark it as out-of-bounds, since it only considers positive indices. This
leads to discarding DFG code, recompiling it and exiting at the same bytecode.

This is observed in the prepack-wtb subtest of JetStream2. In popContext#CdOhFJ, the last item
of the array popped and the new last value is accessed using array[array.length - 1], which
is -1 when the array is empty. It shows a ~0.5% progression in JetStream2, but it's within the
noise.

  • jit/JITOperations.cpp:

(JSC::getByVal):

May 24, 2019:

6:42 PM Changeset in webkit [245768] by jh718.park@samsung.com
  • 10 edits in trunk

Make computed width of non-replaced inline return computed style.
https://bugs.webkit.org/show_bug.cgi?id=197814

Reviewed by Antti Koivisto.

Currently, Computed width of non-replaced inline incorrectly returns "auto"
instead of the computed value.
This patch changes the behavior according to
https://drafts.csswg.org/cssom/#resolved-value as below.

'If the property applies to the element or pseudo-element
and the resolved value of the display property is not none or contents,
then the resolved value is the used value.
Otherwise the resolved value is the computed value.'

LayoutTests/imported/w3c:

  • web-platform-tests/html/semantics/embedded-content/the-object-element/object-attributes-expected.txt:

Source/WebCore:

  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::ComputedStyleExtractor::valueForPropertyinStyle):

LayoutTests:

  • fast/css/getComputedStyle/getComputedStyle-resolved-values-expected.txt:
  • fast/css/getComputedStyle/getComputedStyle-with-pseudo-element-expected.txt:
  • fast/css/getComputedStyle/getComputedStyle-with-pseudo-element.html:
  • legacy-animation-engine/fast/css/getComputedStyle/getComputedStyle-with-pseudo-element-expected.txt:
  • legacy-animation-engine/fast/css/getComputedStyle/getComputedStyle-with-pseudo-element.html:
6:39 PM Changeset in webkit [245767] by youenn@apple.com
  • 2 edits in trunk/Source/WebKit

REGRESSION (r245715?) [WK2] Layout Test http/wpt/cache-storage/cache-storage-networkprocess-crash.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=198222
<rdar://problem/51114899>

Reviewed by Alex Christensen.

In case a connection gets closed, handle all of its async reply completion handlers.
This ensures they handlers are called in case the connection does not get destroyed until a much later stage.

  • Platform/IPC/Connection.cpp:

(IPC::Connection::~Connection):
(IPC::Connection::connectionDidClose):
(IPC::addAsyncReplyHandler):
(IPC::clearAsyncReplyHandlers):
(IPC::CompletionHandler<void):

5:51 PM Changeset in webkit [245766] by Alan Coon
  • 7 edits in tags/Safari-608.1.25.1/Source

Versioning.

5:51 PM Changeset in webkit [245765] by Justin Michaud
  • 14 edits
    1 add in trunk

[WASM-References] Support Anyref in globals
https://bugs.webkit.org/show_bug.cgi?id=198102

Reviewed by Saam Barati.

JSTests:

Add test for anyrefs in globals, as well as adding a new RefNull initExpr for Builder.

  • wasm/Builder.js:

(export.default.Builder.prototype._registerSectionBuilders.const.section.in.WASM.description.section.switch.section.case.string_appeared_here.this.section):

  • wasm/Builder_WebAssemblyBinary.js:

(const.putInitExpr):

  • wasm/references/anyref_globals.js: Added.

(GetGlobal.0.End.End.WebAssembly):
(5.doGCSet):
(doGCTest):
(doGCSet.doGCTest.let.count.0.doBarrierSet):

Source/JavaScriptCore:

Support anyref for globals, imports and exports. This adds code in B3 and Air to emit a write barrier
on the JSWebAssemblyWrapper whenever an anyref global is set. This also fixes a small bug in emitCCall
for air where it adds code to the wrong block.

  • wasm/WasmAirIRGenerator.cpp:

(JSC::Wasm::AirIRGenerator::emitCCall):
(JSC::Wasm::AirIRGenerator::moveOpForValueType):
(JSC::Wasm::AirIRGenerator::setGlobal):
(JSC::Wasm::AirIRGenerator::emitWriteBarrierForJSWrapper):

  • wasm/WasmB3IRGenerator.cpp:

(JSC::Wasm::B3IRGenerator::setGlobal):
(JSC::Wasm::B3IRGenerator::emitWriteBarrierForJSWrapper):

  • wasm/WasmInstance.cpp:

(JSC::Wasm::Instance::Instance):
(JSC::Wasm::Instance::setGlobal):

  • wasm/WasmInstance.h:

(JSC::Wasm::Instance::loadI32Global const):
(JSC::Wasm::Instance::loadI64Global const):
(JSC::Wasm::Instance::setGlobal):
(JSC::Wasm::Instance::shouldMarkGlobal):
(JSC::Wasm::Instance::numGlobals const):

  • wasm/WasmSectionParser.cpp:

(JSC::Wasm::SectionParser::parseInitExpr):

  • wasm/js/JSWebAssemblyInstance.cpp:

(JSC::JSWebAssemblyInstance::visitChildren):

  • wasm/js/WebAssemblyModuleRecord.cpp:

(JSC::WebAssemblyModuleRecord::link):

5:40 PM Changeset in webkit [245764] by Alan Coon
  • 1 copy in tags/Safari-608.1.25.1

New tag.

5:40 PM Changeset in webkit [245763] by Alan Coon
  • 7 edits in trunk/Source

Versioning.

5:39 PM Changeset in webkit [245762] by Kocsen Chung
  • 7 edits in branches/safari-608.1.24.30-branch/Source

Versioning.

5:28 PM Changeset in webkit [245761] by Kocsen Chung
  • 7 edits in branches/safari-608.1.24.20-branch/Source

Versioning.

4:45 PM Changeset in webkit [245760] by Alan Coon
  • 1 copy in tags/Safari-608.1.24.30.2

Tag Safari-608.1.24.30.2.

4:38 PM Changeset in webkit [245759] by mmaxfield@apple.com
  • 6 edits
    2 adds in trunk

[WHLSL] Allow vertex attributes to have arbitrary names in the shader
https://bugs.webkit.org/show_bug.cgi?id=198235

Reviewed by Dean Jackson and Justin Fan.

Source/WebCore:

Metal doesn't allow arbitrary vertex attribute IDs. If you try to create a vertex attribute > 16,
the Metal validation layer will assert. So, we need to have a mapping from whatever the WebGPU
API says the vertex attribute IDs should be to the internally-used vertex attribute IDs.

Test: webgpu/whlsl-arbitrary-vertex-attribute-locations.html

  • Modules/webgpu/WHLSL/Metal/WHLSLEntryPointScaffolding.cpp:

(WebCore::WHLSL::Metal::VertexEntryPointScaffolding::VertexEntryPointScaffolding):

  • Modules/webgpu/WHLSL/WHLSLPipelineDescriptor.h:
  • Modules/webgpu/WHLSL/WHLSLSemanticMatcher.cpp:

(WebCore::WHLSL::matchVertexAttributes):

  • platform/graphics/gpu/cocoa/GPURenderPipelineMetal.mm:

(WebCore::convertRenderPipelineDescriptor):
(WebCore::trySetInputStateForPipelineDescriptor):

LayoutTests:

  • webgpu/whlsl-arbitrary-vertex-attribute-locations-expected.html: Added.
  • webgpu/whlsl-arbitrary-vertex-attribute-locations.html: Added.
4:17 PM Changeset in webkit [245758] by Alan Coon
  • 1 copy in tags/Safari-608.1.24.20.4

Tag Safari-608.1.24.20.4.

3:48 PM Changeset in webkit [245757] by pvollan@apple.com
  • 4 edits in trunk/Source/WebKit

Remove unused member in WebsiteDataRecord
https://bugs.webkit.org/show_bug.cgi?id=198231

Reviewed by Brent Fulgham.

The data member 'originsWithCredentials' in WebsiteDataRecord is no longer needed since origins
with credentials are now stored in the 'origins' member.

  • UIProcess/WebsiteData/WebsiteDataRecord.cpp:

(WebKit::WebsiteDataRecord::addOriginWithCredential): Deleted.

  • UIProcess/WebsiteData/WebsiteDataRecord.h:
  • UIProcess/WebsiteData/WebsiteDataStore.cpp:

(WebKit::WebsiteDataStore::fetchDataAndApply):

3:13 PM Changeset in webkit [245756] by david_quesada@apple.com
  • 2 edits in trunk/Source/WebKit

Crash under WebCore::TimerBase::~TimerBase after a download is canceled
https://bugs.webkit.org/show_bug.cgi?id=197927
rdar://problem/50822728

Reviewed by Ryosuke Niwa.

  • NetworkProcess/Downloads/cocoa/DownloadCocoa.mm:

(WebKit::Download::platformCancelNetworkLoad):

CFNetwork makes no guarantees about what thread is used to call the completion block
passed to -[NSURLSessionDownloadTask cancelByProducingResumeData], and in some cases,
it can be called on a background queue. This eventually causes the Download to be
deallocated on the background queue, which triggers a release assertion failure in
~TimerBase. When CFNetwork finishes canceling the download, we should move to the
main thread before calling didCancel().

2:47 PM Changeset in webkit [245755] by Alan Coon
  • 2 edits in branches/safari-608.1.24.20-branch/Source/WebCore

Cherry-pick r245753. rdar://problem/51068494

Refactor how showLetterpressedGlyphsWithAdvances gets the graphics context.
https://bugs.webkit.org/show_bug.cgi?id=198225

Reviewed by Dean Jackson.

  • platform/graphics/cocoa/FontCascadeCocoa.mm: (WebCore::showLetterpressedGlyphsWithAdvances): (WebCore::FontCascade::drawGlyphs):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@245753 268f45cc-cd09-0410-ab3c-d52691b4dbfc

2:47 PM Changeset in webkit [245754] by Alan Coon
  • 5 edits in branches/safari-608.1.24.20-branch/Source/WebCore

Cherry-pick r245752. rdar://problem/51068494

Plumb dark appearance down to GraphicsContext.
https://bugs.webkit.org/show_bug.cgi?id=198224
rdar://problem/51068494

Reviewed by Dean Jackson.

No test yet, as it is not testable until this gets used.

  • platform/graphics/GraphicsContext.cpp: (WebCore::GraphicsContextStateChange::changesFromState const): (WebCore::GraphicsContextStateChange::accumulate): (WebCore::GraphicsContextStateChange::apply const): (WebCore::GraphicsContextStateChange::dump const): (WebCore::GraphicsContext::setUseDarkAppearance):
  • platform/graphics/GraphicsContext.h: (WebCore::GraphicsContext::useDarkAppearance const):
  • rendering/TextPaintStyle.cpp: (WebCore::TextPaintStyle::operator== const): (WebCore::computeTextPaintStyle): (WebCore::updateGraphicsContext):
  • rendering/TextPaintStyle.h:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@245752 268f45cc-cd09-0410-ab3c-d52691b4dbfc

2:41 PM Changeset in webkit [245753] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebCore

Refactor how showLetterpressedGlyphsWithAdvances gets the graphics context.
https://bugs.webkit.org/show_bug.cgi?id=198225

Reviewed by Dean Jackson.

  • platform/graphics/cocoa/FontCascadeCocoa.mm:

(WebCore::showLetterpressedGlyphsWithAdvances):
(WebCore::FontCascade::drawGlyphs):

2:41 PM Changeset in webkit [245752] by timothy_horton@apple.com
  • 5 edits in trunk/Source/WebCore

Plumb dark appearance down to GraphicsContext.
https://bugs.webkit.org/show_bug.cgi?id=198224
rdar://problem/51068494

Reviewed by Dean Jackson.

No test yet, as it is not testable until this gets used.

  • platform/graphics/GraphicsContext.cpp:

(WebCore::GraphicsContextStateChange::changesFromState const):
(WebCore::GraphicsContextStateChange::accumulate):
(WebCore::GraphicsContextStateChange::apply const):
(WebCore::GraphicsContextStateChange::dump const):
(WebCore::GraphicsContext::setUseDarkAppearance):

  • platform/graphics/GraphicsContext.h:

(WebCore::GraphicsContext::useDarkAppearance const):

  • rendering/TextPaintStyle.cpp:

(WebCore::TextPaintStyle::operator== const):
(WebCore::computeTextPaintStyle):
(WebCore::updateGraphicsContext):

  • rendering/TextPaintStyle.h:
12:49 PM Changeset in webkit [245751] by Simon Fraser
  • 2 edits in trunk/LayoutTests

Rebase compositing/rtl/rtl-overflow-scrolling.html
https://bugs.webkit.org/show_bug.cgi?id=198220
<rdar://problem/51114177>

Unreviewed test gardening.

New result is a progression (scrollX, which is an offset, should not be negative).

  • platform/ios-wk2/compositing/rtl/rtl-overflow-scrolling-expected.txt:
12:01 PM Changeset in webkit [245750] by Devin Rousso
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Overlay: don't show setting for showing rulers/guides during element selection if it's not supported
https://bugs.webkit.org/show_bug.cgi?id=198221

Reviewed by Joseph Pecoraro.

  • UserInterface/Views/SettingsTabContentView.js:

(WI.SettingsTabContentView.prototype._createGeneralSettingsView):

11:55 AM Changeset in webkit [245749] by youenn@apple.com
  • 3 edits in trunk/Source/WebKit

Update messages_unittest.py after r245715
https://bugs.webkit.org/show_bug.cgi?id=198214

Reviewed by Alexey Proskuryakov.

Update expected results for messages.py output.i
Small refactoring to messages.py: instead of calling the completionHandler in case of decoding error with AsyncReply errors,
call cancelReply directly as it does the same thing.

  • Scripts/webkit/MessageReceiverSuperclass-expected.cpp:

(Messages::WebPage::TestAsyncMessage::callReply):
(Messages::WebPage::TestAsyncMessage::cancelReply):
(Messages::WebPage::TestAsyncMessageWithMultipleArguments::callReply):
(Messages::WebPage::TestAsyncMessageWithMultipleArguments::cancelReply):

  • Scripts/webkit/messages.py:
11:26 AM Changeset in webkit [245748] by youenn@apple.com
  • 2 edits in trunk/Source/WebCore

Make sure completion handler is always called in SWServer::startSuspension
https://bugs.webkit.org/show_bug.cgi?id=198215

Reviewed by Alex Christensen.

  • workers/service/server/SWServer.cpp:

(WebCore::SWServer::startSuspension):
Make sure completion handler is called in case of no registration store.

10:47 AM Changeset in webkit [245747] by Shawn Roberts
  • 3 edits in trunk/LayoutTests

scrollingcoordinator/scrolling-tree/fixed-inside-frame.html is no longer flaky
https://bugs.webkit.org/show_bug.cgi?id=194253

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
  • platform/mac-wk2/TestExpectations: Removing failed expectations
9:33 AM Changeset in webkit [245746] by rniwa@webkit.org
  • 4 edits
    2 adds in trunk

Asssertion failure in dispatchSubtreeModifiedEvent due to TextFieldInputType updating UA shadow tree inside Element::removedFromAncestor
https://bugs.webkit.org/show_bug.cgi?id=198216

Reviewed by Brent Fulgham.

Source/WebCore:

The bug was caused by ListAttributeTargetObserver::idTargetChanged() updating the shadow tree of an input element
within Element::removedFromAncestor via TextFieldInputType::createDataListDropdownIndicator(). Fixed it by
supressing the assertions with ScriptDisallowedScope::EventAllowedScope since it's always safe to update
UA shadow trees of input elements as it's not exposed to author scripts.

Avoiding the creation of dropdown indicator in this particular scenario is a lot more involved and it's not
particularly correct because there could be another datalist element which matches the ID specified in list
content attribute after the removal of the old datalist element.

Test: fast/forms/datalist/datalist-removal-assertion.html

  • html/TextFieldInputType.cpp:

(WebCore::TextFieldInputType::createDataListDropdownIndicator):
(WebCore::TextFieldInputType::createContainer):

  • html/shadow/DataListButtonElement.cpp:

(WebCore::DataListButtonElement::DataListButtonElement):

LayoutTests:

Added a regression test.

  • fast/forms/datalist/datalist-removal-assertion-expected.txt: Added.
  • fast/forms/datalist/datalist-removal-assertion.html: Added.
1:19 AM Changeset in webkit [245745] by sbarati@apple.com
  • 6 edits in trunk/Source/WebCore

[WHLSL] ReadModifyWriteExpression always has a result and new value expression
https://bugs.webkit.org/show_bug.cgi?id=198079

Reviewed by Myles Maxfield.

Let's not pretend it might not.

  • Modules/webgpu/WHLSL/AST/WHLSLReadModifyWriteExpression.h:

(WebCore::WHLSL::AST::ReadModifyWriteExpression::newValueExpression):
(WebCore::WHLSL::AST::ReadModifyWriteExpression::resultExpression):
(WebCore::WHLSL::AST::ReadModifyWriteExpression::takeNewValueExpression):
(WebCore::WHLSL::AST::ReadModifyWriteExpression::takeResultExpression):

  • Modules/webgpu/WHLSL/WHLSLASTDumper.cpp:

(WebCore::WHLSL::ASTDumper::visit):

  • Modules/webgpu/WHLSL/WHLSLChecker.cpp:

(WebCore::WHLSL::Checker::visit):

  • Modules/webgpu/WHLSL/WHLSLPropertyResolver.cpp:

(WebCore::WHLSL::PropertyResolver::visit):

  • Modules/webgpu/WHLSL/WHLSLVisitor.cpp:

(WebCore::WHLSL::Visitor::visit):

12:54 AM Changeset in webkit [245744] by ysuzuki@apple.com
  • 2 edits in trunk/Tools

Make display-profiler-output work with newer HighLine
https://bugs.webkit.org/show_bug.cgi?id=198205

Reviewed by Saam Barati.

Newer HighLine does not have SystemExtensions. Access @terminal member in default instance of HighLine.

  • Scripts/display-profiler-output:
Note: See TracTimeline for information about the timeline view.