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

Timeline



Jan 17, 2021:

11:56 PM Changeset in webkit [271573] by ysuzuki@apple.com
  • 4 edits
    1 add in trunk

[JSC] DFG/FTL Atomics should not accept Float32/Float64 typed arrays
https://bugs.webkit.org/show_bug.cgi?id=220692
<rdar://problem/73238369>

Reviewed by Mark Lam.

JSTests:

  • stress/atomics-float-edge.js: Added.

(foo):

Source/JavaScriptCore:

We accidentally accept Float32/Float64 typed arrays. We should accept only integer TypedArrays (Int8, Uint8, ... etc.)
as specified in [1]. If the other types come, we just make it Array::Generic and call slow path which can handle them.

[1]: https://tc39.es/ecma262/#sec-validateintegertypedarray

  • dfg/DFGArrayMode.h:

(JSC::DFG::ArrayMode::isOneOfTypedArrayView const): Deleted.

  • dfg/DFGFixupPhase.cpp:

(JSC::DFG::FixupPhase::fixupNode):

11:41 PM Changeset in webkit [271572] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebCore

GraphicsContextGLOpenGL::reshapeFBOs() ANGLE variant calls into makeContextCurrent()
https://bugs.webkit.org/show_bug.cgi?id=220460

Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2021-01-17
Reviewed by Dean Jackson.

The call is problematic if it is taken, since in some cases makeContextCurrent() fails
due to reshapeFBOs being in middle of a reshape. The problematic case is taken if
the reshape call happens before first getExtensions().

Fix by
1) Resolving the needed depth-stencil buffer format during validateDepthStencil.
2) Always enable the packed depth-stencil extension if it is present. Otherwise

depth-stencil bindings will not work for the context that does not have
default stencil buffer, since the enable call was not taken before
WebGLRenderingContextBase uses the "isEnabled" to enable DEPTH_STENCIL
features.

Tested by WebGL 1/2 conformance tests, but only reveals the bug after
applying the patch in the depending bug.

  • platform/graphics/angle/GraphicsContextGLANGLE.cpp:

(WebCore::GraphicsContextGLOpenGL::validateAttributes):
(WebCore::GraphicsContextGLOpenGL::reshapeFBOs):
(WebCore::GraphicsContextGLOpenGL::validateDepthStencil):

  • platform/graphics/opengl/GraphicsContextGLOpenGL.h:
11:16 PM Changeset in webkit [271571] by ysuzuki@apple.com
  • 3 edits
    1 add in trunk

[JSC] FTL OSR entry FlushFormat array is reversed
https://bugs.webkit.org/show_bug.cgi?id=220695
<rdar://problem/72930932>

Reviewed by Mark Lam.

JSTests:

  • stress/ftl-osr-entry-order-reverse.js: Added.

(shouldThrow):
(foo):

Source/JavaScriptCore:

After r268783, FlushFormat array is erroneously sorted in reversed order.
This patch fixes that.

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::lower):

10:36 PM Changeset in webkit [271570] by ysuzuki@apple.com
  • 3 edits
    1 add in trunk

[JSC] GenericArguments<Type>::defineOwnProperty's assumption about error is not correct
https://bugs.webkit.org/show_bug.cgi?id=220693
<rdar://problem/72929171>

Reviewed by Mark Lam.

JSTests:

  • stress/freeze-invokes-out-of-memory.js: Added.

(shouldThrow):

Source/JavaScriptCore:

Any function taking JSGlobalObject* can cause out-of-memory error potentially. And we have a way to invoke it.
But GenericArguments<Type>::defineOwnProperty didn't assume OutOfMemory error. This patch fixes it.

  • runtime/GenericArgumentsInlines.h:

(JSC::GenericArguments<Type>::defineOwnProperty):

10:25 PM Changeset in webkit [271569] by Jonathan Bedard
  • 2 edits in trunk/Tools

[webkitscmpy] Add GitHub credentials (Follow-up fix)
https://bugs.webkit.org/show_bug.cgi?id=220562
<rdar://problem/73063457>

Unreviewed follow-up fix.

  • Scripts/webkitpy/init.py: Ensure that webkitscmpy's dependencies are auto installed.
10:03 PM Changeset in webkit [271568] by ysuzuki@apple.com
  • 3 edits
    2 adds in trunk

[JSC] Add some more exception checks in globalFuncCopyDataProperties
https://bugs.webkit.org/show_bug.cgi?id=220691

Reviewed by Mark Lam.

JSTests:

  • stress/spread-object-check.js: Added.
  • stress/spread-object-check2.js: Added.

Source/JavaScriptCore:

This patch add some missing exception checks in globalFuncCopyDataProperties to fix tests attached in this patch.

  • runtime/JSGlobalObjectFunctions.cpp:

(JSC::JSC_DEFINE_HOST_FUNCTION):

8:09 PM Changeset in webkit [271567] by Alan Bujtas
  • 3 edits in trunk/Source/WebCore

[LFC][IFC] Extend simplified vertical alignment for cases when the line has only "empty" runs
https://bugs.webkit.org/show_bug.cgi?id=220689

Reviewed by Antti Koivisto.

Quirks::inlineLevelBoxAffectsLineBox now does not need to check for empty inline boxes as
those cases would always end up in the simplified vertical alignment path.

  • layout/inlineformatting/InlineFormattingContextGeometry.cpp:

(WebCore::Layout::LineBoxBuilder::constructInlineLevelBoxes):

  • layout/inlineformatting/InlineFormattingContextQuirks.cpp:

(WebCore::Layout::InlineFormattingContext::Quirks::inlineLevelBoxAffectsLineBox const):

4:06 PM Changeset in webkit [271566] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[LFC][IFC] Add the root inline collapsing case to simplified vertical alignment
https://bugs.webkit.org/show_bug.cgi?id=220685

Reviewed by Antti Koivisto.

Let's produce a 0 height line box when there are no runs on the line as part of the simplified vertical alignment optimization.

  • layout/inlineformatting/InlineFormattingContextGeometry.cpp:

(WebCore::Layout::LineBoxBuilder::constructInlineLevelBoxes):

3:51 PM Changeset in webkit [271565] by ysuzuki@apple.com
  • 6 edits
    1 delete in trunk/Source/WebKit

JITOperation does not exist in WebKit
https://bugs.webkit.org/show_bug.cgi?id=220686

Reviewed by Mark Lam.

Now, we do not register host functions as JIT operations. As a result, WebKit.framework does not have any JITOperations.
We should remove population of JITOperations code in WebKit.framework.

  • Shared/API/c/WKString.cpp:

(WKStringCopyJSString):

  • Shared/Cocoa/WebKit2InitializeCocoa.mm:

(WebKit::runInitializationCode):

  • Shared/WebKit2Initialize.cpp:

(WebKit::InitializeWebKit2):

  • Shared/WebKitJITOperations.cpp: Removed.
  • Sources.txt:
  • WebKit.xcodeproj/project.pbxproj:
1:06 PM Changeset in webkit [271564] by Wenson Hsieh
  • 3 edits in trunk/Source/WebCore

Unreviewed, fix the internal iOS build after r271559

Fix the build with IOS_TOUCH_EVENTS enabled.

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::handleTouchEvent): Deleted.
(WebCore::RenderLayer::registerAsTouchEventListenerForScrolling): Deleted.
(WebCore::RenderLayer::unregisterAsTouchEventListenerForScrolling): Deleted.

Remove a few undeclared method definitions. These methods were relocated to RenderLayerScrollableArea.

  • rendering/RenderLayerScrollableArea.cpp:

Remove several methods that have duplicate implementations.

11:55 AM Changeset in webkit [271563] by Fujii Hironori
  • 13 edits in trunk/Source/WebKit

[non-Cocoa] Add a new AuxiliaryProcessMainBase class for auxiliary processes without singleton()
https://bugs.webkit.org/show_bug.cgi?id=220615

Reviewed by Don Olmstead.

non-Cocoa ports auxiliary processes are using AuxiliaryProcessMain
as the entry points. AuxiliaryProcessMain supports both kinds of
auxiliary processes with and without singleton() method by using
initializeAuxiliaryProcess template function. However, all
initializeAuxiliaryProcess look similar code. They can share more
code.

Added a AuxiliaryProcessMainBaseNoSingleton template class for
auxiliary processes without singleton().

Moved the code that was in AuxiliaryProcessMain to
AuxiliaryProcessMainBase::run() to remove
takeInitializationParameters().

  • GPUProcess/gstreamer/GPUProcessMainGStreamer.cpp:

(WebKit::GPUProcessMain):
(WebKit::initializeAuxiliaryProcess<GPUProcess>): Deleted.

  • GPUProcess/playstation/GPUProcessMainPlayStation.cpp:

(WebKit::GPUProcessMain):
(WebKit::initializeAuxiliaryProcess<GPUProcess>): Deleted.

  • GPUProcess/win/GPUProcessMainWin.cpp:

(WebKit::GPUProcessMain):
(WebKit::initializeAuxiliaryProcess<GPUProcess>): Deleted.

  • NetworkProcess/curl/NetworkProcessMainCurl.cpp:

(WebKit::NetworkProcessMain):
(WebKit::initializeAuxiliaryProcess<NetworkProcess>): Deleted.

  • NetworkProcess/soup/NetworkProcessMainSoup.cpp:

(WebKit::NetworkProcessMain):
(WebKit::initializeAuxiliaryProcess<NetworkProcess>): Deleted.

  • Shared/AuxiliaryProcessMain.h:

(WebKit::AuxiliaryProcessMainBase::platformInitialize):
(WebKit::AuxiliaryProcessMainBase::platformFinalize):
(WebKit::AuxiliaryProcessMainBase::initializeAuxiliaryProcess):
(WebKit::AuxiliaryProcessMainBase::run):
(WebKit::AuxiliaryProcessMainBaseNoSingleton::process):
(WebKit::AuxiliaryProcessMain):
(WebKit::AuxiliaryProcessMainBase::initializationParameters): Deleted.
(WebKit::AuxiliaryProcessMainBase::takeInitializationParameters): Deleted.
(WebKit::initializeAuxiliaryProcess): Deleted.

  • Shared/unix/AuxiliaryProcessMain.cpp:

(WebKit::AuxiliaryProcessMainCommon::parseCommandLine):
(WebKit::AuxiliaryProcessMainBase::parseCommandLine): Deleted.

  • Shared/win/AuxiliaryProcessMainWin.cpp:

(WebKit::AuxiliaryProcessMainCommon::parseCommandLine):
(WebKit::AuxiliaryProcessMainBase::parseCommandLine): Deleted.

  • WebProcess/gtk/WebProcessMainGtk.cpp:

(WebKit::WebProcessMain):

  • WebProcess/playstation/WebProcessMainPlayStation.cpp:

(WebKit::WebProcessMain):

  • WebProcess/win/WebProcessMainWin.cpp:

(WebKit::WebProcessMain):

  • WebProcess/wpe/WebProcessMainWPE.cpp:

(WebKit::WebProcessMain):

6:44 AM Changeset in webkit [271562] by Alan Bujtas
  • 7 edits in trunk/Source/WebCore

[LFC][IFC] No need to maintain the "is considered empty" bit anymore.
https://bugs.webkit.org/show_bug.cgi?id=220228

Reviewed by Antti Koivisto.

Now that isConsideredEmpty() bit is only used as input to line breaking, let's change it to a more
focused check and remove the concept of "is considered empty" completely.

  • layout/inlineformatting/InlineContentBreaker.cpp:

(WebCore::Layout::InlineContentBreaker::processInlineContent):
(WebCore::Layout::InlineContentBreaker::processOverflowingContent const):

  • layout/inlineformatting/InlineContentBreaker.h:
  • layout/inlineformatting/InlineLine.cpp:

(WebCore::Layout::Line::initialize):
(WebCore::Layout::Line::removeTrailingTrimmableContent):
(WebCore::Layout::Line::append):
(WebCore::Layout::Line::appendTextContent):

  • layout/inlineformatting/InlineLine.h:

(WebCore::Layout::Line::isConsideredEmpty const): Deleted.

  • layout/inlineformatting/InlineLineBuilder.cpp:

(WebCore::Layout::LineBuilder::close):
(WebCore::Layout::LineBuilder::handleInlineContent):

4:36 AM Changeset in webkit [271561] by youenn@apple.com
  • 2 edits in trunk/Source/WebKit

Add CoreMedia aavds entitlement to WebContent and GPU processes
https://bugs.webkit.org/show_bug.cgi?id=220238

Reviewed by Brent Fulgham.

Manually tested.

  • Scripts/process-entitlements.sh:
12:50 AM Changeset in webkit [271560] by ysuzuki@apple.com
  • 9 edits in trunk/Source

Add JSC API configuring GC signals in Linux
https://bugs.webkit.org/show_bug.cgi?id=220641

Reviewed by Mark Lam.

Source/JavaScriptCore:

Add JSConfigureSignalForGC function for Linux and FreeBSD (non Apple, non Windows platforms).

  • API/JSBase.cpp:

(JSConfigureSignalForGC):

  • API/JSBasePrivate.h:

Source/WTF:

In Linux and FreeBSD, we need to use signals to suspend and resume threads.
By default, we are using SIGUSR1, but it is possible that some embedders want to use
the other signals since they are using SIGUSR1 already. To work-around that, this
patch offers the way for embedders to configure signals.

  • wtf/Threading.h:
  • wtf/WTFConfig.h:
  • wtf/posix/ThreadingPOSIX.cpp:

(WTF::Thread::signalHandlerSuspendResume):
(WTF::Thread::initializePlatformThreading):
(WTF::Thread::initializeCurrentThreadEvenIfNonWTFCreated):
(WTF::Thread::initializeCurrentTLS):
(WTF::Thread::suspend):
(WTF::Thread::resume):

  • wtf/threads/Signals.cpp:

(WTF::addSignalHandler):

  • wtf/win/ThreadingWin.cpp:

(WTF::Thread::initializeCurrentTLS):

Jan 16, 2021:

4:26 PM Changeset in webkit [271559] by Nikolas Zimmermann
  • 21 edits in trunk/Source/WebCore

Separate scrolling code out of RenderLayer
https://bugs.webkit.org/show_bug.cgi?id=60305

Reviewed by Simon Fraser.

Move all scrolling/overflow handling out of RenderLayer, to
streamline its interface and make it re-usable for layer
types that do not need nor support scrolling/overflow.

Many variables tracking scrolling/overflow state were migrated to
RenderLayerScrollableArea, which is only created if the renderer
corresponding to the layer has a CSS 'resize' property != 'none',
has potentially scrollable overflow content or <marquee>.

For the common case (no scrollable overflow), the RenderLayer
overhead is reduced: less memory, less state tracking.

Covered by existing tests.

  • WebCore.xcodeproj/project.pbxproj: Make RenderLayerScrollableArea.h

include work in WebKit project.

  • accessibility/AccessibilityRenderObject.cpp: Adapt to the fact that

RenderLayer is no longer a ScrollableArea.
(WebCore::AccessibilityRenderObject::getScrollableAreaIfScrollable const):

  • html/TextFieldInputType.cpp: Adapt to the fact that RenderLayer is

no longer a ScrollableArea.
(WebCore::TextFieldInputType::elementDidBlur):

  • page/EventHandler.cpp: Ditto.

(WebCore::EventHandler::enclosingScrollableArea):
(WebCore::EventHandler::handleWheelEventInAppropriateEnclosingBox):

  • page/FrameView.cpp: Ditto.

(WebCore::FrameView::enclosingScrollableArea const):

  • page/ios/FrameIOS.mm: Ditto.

(WebCore::Frame::overflowScrollPositionChangedForNode):

  • page/mac/EventHandlerMac.mm:

(WebCore::scrollableAreaForBox):

  • rendering/RenderBox.cpp:

(WebCore::RenderBox::requiresLayerWithScrollableArea const): Decides
whether a RenderLayer needs a RenderLayerScrollableArea. The presence
of resize/marquee/overflow triggers creation of a
RenderLayerScrollableArea object.

  • rendering/RenderBox.h:
  • rendering/RenderLayer.cpp: Move all overflow/resize/marquee/scroll

handling to RenderLayerScrollableArea and adapt the affected code.
(WebCore::RenderLayer::RenderLayer):
(WebCore::RenderLayer::~RenderLayer):
(WebCore::RenderLayer::currentScrollType const):
(WebCore::RenderLayer::scrollAnimator const):
(WebCore::RenderLayer::scrollOffset const):
(WebCore::RenderLayer::scrollToOffset):
(WebCore::RenderLayer::scrollToXPosition):
(WebCore::RenderLayer::scrollToYPosition):
(WebCore::RenderLayer::setScrollPosition):
(WebCore::RenderLayer::scrollByRecursively):
(WebCore::RenderLayer::setRequiresScrollPositionReconciliation):
(WebCore::RenderLayer::setAdjustForIOSCaretWhenScrolling):
(WebCore::RenderLayer::setScrollShouldClearLatchedState):
(WebCore::RenderLayer::shouldPlaceBlockDirectionScrollbarOnLeft const):
(WebCore::RenderLayer::containsDirtyOverlayScrollbars const):
(WebCore::RenderLayer::hasScrollableOrRubberbandableAncestor):
(WebCore::RenderLayer::marquee const):
(WebCore::RenderLayer::updateLayerPositionsAfterDocumentScroll):
(WebCore::RenderLayer::hitTestOverflowControls):
(WebCore::RenderLayer::paintOverflowControls):
(WebCore::RenderLayer::paintResizer):
(WebCore::RenderLayer::paintScrollCorner):
(WebCore::RenderLayer::paintOverlayScrollbars):
(WebCore::RenderLayer::reachableTotalContentsSize const):
(WebCore::RenderLayer::horizontalScrollbarHiddenByStyle const):
(WebCore::RenderLayer::verticalScrollbarHiddenByStyle const):
(WebCore::RenderLayer::setPostLayoutScrollPosition):
(WebCore::RenderLayer::panScrollFromPoint):
(WebCore::RenderLayer::scrollPosition const):
(WebCore::RenderLayer::layerForHorizontalScrollbar const):
(WebCore::RenderLayer::layerForVerticalScrollbar const):
(WebCore::RenderLayer::horizontalScrollbar const):
(WebCore::RenderLayer::verticalScrollbar const):
(WebCore::RenderLayer::scrollingMayRevealBackground const):
(WebCore::RenderLayer::hasScrollableHorizontalOverflow const):
(WebCore::RenderLayer::hasScrollableVerticalOverflow const):
(WebCore::RenderLayer::verticalScrollbarWidth const):
(WebCore::RenderLayer::horizontalScrollbarHeight const):
(WebCore::RenderLayer::scroll):
(WebCore::RenderLayer::setConstrainsScrollingToContentEdge):
(WebCore::RenderLayer::updateLayerPositions):
(WebCore::RenderLayer::updateLayerPositionsAfterScroll):
(WebCore::RenderLayer::updateLayerPosition):
(WebCore::RenderLayer::enclosingFrameRenderLayer const):
(WebCore::RenderLayer::enclosingContainingBlockLayer const):
(WebCore::RenderLayer::enclosingScrollableLayer const):
(WebCore::frameElementAndViewPermitScroll):
(WebCore::RenderLayer::allowsCurrentScroll const):
(WebCore::RenderLayer::scrollRectToVisible):
(WebCore::RenderLayer::resize):
(WebCore::RenderLayer::visibleSize const):
(WebCore::RenderLayer::overflowControlsRects const):
(WebCore::RenderLayer::debugDescription const):
(WebCore::RenderLayer::offsetFromResizeCorner const):
(WebCore::RenderLayer::scrollWidth const):
(WebCore::RenderLayer::scrollHeight const):
(WebCore::RenderLayer::updateScrollInfoAfterLayout):
(WebCore::RenderLayer::canUseCompositedScrolling const):
(WebCore::RenderLayer::hasCompositedScrollableOverflow const):
(WebCore::RenderLayer::hasOverlayScrollbars const):
(WebCore::RenderLayer::usesCompositedScrolling const):
(WebCore::RenderLayer::isPointInResizeControl const):
(WebCore::RenderLayer::paintLayerContents):
(WebCore::RenderLayer::paintOverflowControlsForFragments):
(WebCore::RenderLayer::hitTest):
(WebCore::RenderLayer::hitTestLayer):
(WebCore::RenderLayer::calculateClipRects const):

  • rendering/RenderLayer.h: Ditto.

(WebCore::RenderLayer::hasScrollbars const):
(WebCore::RenderLayer::hasHorizontalScrollbar const):
(WebCore::RenderLayer::hasVerticalScrollbar const):
(WebCore::RenderLayer::scrollToXOffset):
(WebCore::RenderLayer::scrollToYOffset):

  • rendering/RenderLayerBacking.cpp: Adapt to the fact that

RenderLayer is no longer a ScrollableArea.
(WebCore::RenderLayerBacking::updateOverflowControlsLayers):

  • rendering/RenderLayerCompositor.cpp: Adapt to the fact that

RenderLayer is no longer a ScrollableArea.
(WebCore::RenderLayerCompositor::parentRelativeScrollableRect const):
(WebCore::RenderLayerCompositor::updateScrollingNodeForScrollingRole):
(WebCore::RenderLayerCompositor::scrollableAreaForScrollingNodeID const):

  • rendering/RenderLayerModelObject.cpp: Adapt to the fact that

RenderLayer is no longer a ScrollableArea.
(WebCore::RenderLayerModelObject::styleDidChange):

  • rendering/RenderLayerScrollableArea.cpp: Mostly moved from

RenderLayer.
(WebCore::RenderLayerScrollableArea::RenderLayerScrollableArea):
(WebCore::RenderLayerScrollableArea::~RenderLayerScrollableArea):
(WebCore::RenderLayerScrollableArea::storeScrollPosition):
(WebCore::RenderLayerScrollableArea::handleTouchEvent):
(WebCore::RenderLayerScrollableArea::registerAsTouchEventListenerForScrolling):
(WebCore::RenderLayerScrollableArea::unregisterAsTouchEventListenerForScrolling):
(WebCore::RenderLayerScrollableArea::scrollableAreaBoundingBox const):
(WebCore::RenderLayerScrollableArea::isUserScrollInProgress const):
(WebCore::RenderLayerScrollableArea::isRubberBandInProgress const):
(WebCore::RenderLayerScrollableArea::forceUpdateScrollbarsOnMainThreadForPerformanceTesting const):
(WebCore::RenderLayerScrollableArea::usesAsyncScrolling const):
(WebCore::RenderLayerScrollableArea::setPostLayoutScrollPosition):
(WebCore::RenderLayerScrollableArea::applyPostLayoutScrollPositionIfNeeded):
(WebCore::RenderLayerScrollableArea::scrollToXPosition):
(WebCore::RenderLayerScrollableArea::scrollToYPosition):
(WebCore::RenderLayerScrollableArea::setScrollPosition):
(WebCore::RenderLayerScrollableArea::clampScrollOffset const):
(WebCore::RenderLayerScrollableArea::requestScrollPositionUpdate):
(WebCore::RenderLayerScrollableArea::scrollToOffset):
(WebCore::RenderLayerScrollableArea::scrollTo):
(WebCore::RenderLayerScrollableArea::updateCompositingLayersAfterScroll):
(WebCore::RenderLayerScrollableArea::scrollWidth const):
(WebCore::RenderLayerScrollableArea::scrollHeight const):
(WebCore::RenderLayerScrollableArea::updateMarqueePosition):
(WebCore::RenderLayerScrollableArea::createOrDestroyMarquee):
(WebCore::RenderLayerScrollableArea::scrollsOverflow const):
(WebCore::RenderLayerScrollableArea::canUseCompositedScrolling const):
(WebCore::RenderLayerScrollableArea::setScrollOffset):
(WebCore::RenderLayerScrollableArea::scrollingNodeID const):
(WebCore::RenderLayerScrollableArea::handleWheelEventForScrolling):
(WebCore::RenderLayerScrollableArea::visibleContentRectInternal const):
(WebCore::RenderLayerScrollableArea::overhangAmount const):
(WebCore::RenderLayerScrollableArea::scrollCornerRect const):
(WebCore::RenderLayerScrollableArea::isScrollCornerVisible const):
(WebCore::RenderLayerScrollableArea::convertFromScrollbarToContainingView const):
(WebCore::RenderLayerScrollableArea::convertFromContainingViewToScrollbar const):
(WebCore::RenderLayerScrollableArea::visibleSize const):
(WebCore::RenderLayerScrollableArea::contentsSize const):
(WebCore::RenderLayerScrollableArea::reachableTotalContentsSize const):
(WebCore::RenderLayerScrollableArea::availableContentSizeChanged):
(WebCore::RenderLayerScrollableArea::shouldSuspendScrollAnimations const):
(WebCore::RenderLayerScrollableArea::didStartScroll):
(WebCore::RenderLayerScrollableArea::didEndScroll):
(WebCore::RenderLayerScrollableArea::didUpdateScroll):
(WebCore::RenderLayerScrollableArea::overflowControlsRects const):
(WebCore::RenderLayerScrollableArea::scrollbarOffset const):
(WebCore::RenderLayerScrollableArea::invalidateScrollbarRect):
(WebCore::RenderLayerScrollableArea::invalidateScrollCornerRect):
(WebCore::scrollbarHiddenByStyle):
(WebCore::RenderLayerScrollableArea::horizontalScrollbarHiddenByStyle const):
(WebCore::RenderLayerScrollableArea::verticalScrollbarHiddenByStyle const):
(WebCore::rendererForScrollbar):
(WebCore::RenderLayerScrollableArea::createScrollbar):
(WebCore::RenderLayerScrollableArea::destroyScrollbar):
(WebCore::RenderLayerScrollableArea::setHasHorizontalScrollbar):
(WebCore::RenderLayerScrollableArea::setHasVerticalScrollbar):
(WebCore::RenderLayerScrollableArea::enclosingScrollableArea const):
(WebCore::RenderLayerScrollableArea::isScrollableOrRubberbandable):
(WebCore::RenderLayerScrollableArea::hasScrollableOrRubberbandableAncestor):
(WebCore::RenderLayerScrollableArea::verticalScrollbarWidth const):
(WebCore::RenderLayerScrollableArea::horizontalScrollbarHeight const):
(WebCore::RenderLayerScrollableArea::hasOverflowControls const):
(WebCore::RenderLayerScrollableArea::positionOverflowControls):
(WebCore::RenderLayerScrollableArea::overflowTop const):
(WebCore::RenderLayerScrollableArea::overflowBottom const):
(WebCore::RenderLayerScrollableArea::overflowLeft const):
(WebCore::RenderLayerScrollableArea::overflowRight const):
(WebCore::RenderLayerScrollableArea::computeScrollDimensions):
(WebCore::RenderLayerScrollableArea::computeHasCompositedScrollableOverflow):
(WebCore::RenderLayerScrollableArea::hasScrollableHorizontalOverflow const):
(WebCore::RenderLayerScrollableArea::hasScrollableVerticalOverflow const):
(WebCore::RenderLayerScrollableArea::hasHorizontalOverflow const):
(WebCore::RenderLayerScrollableArea::hasVerticalOverflow const):
(WebCore::styleRequiresScrollbar):
(WebCore::styleDefinesAutomaticScrollbar):
(WebCore::RenderLayerScrollableArea::updateScrollbarsAfterLayout):
(WebCore::RenderLayerScrollableArea::updateScrollInfoAfterLayout):
(WebCore::RenderLayerScrollableArea::overflowControlsIntersectRect const):
(WebCore::RenderLayerScrollableArea::showsOverflowControls const):
(WebCore::RenderLayerScrollableArea::paintOverflowControls):
(WebCore::RenderLayerScrollableArea::paintScrollCorner):
(WebCore::RenderLayerScrollableArea::drawPlatformResizerImage):
(WebCore::RenderLayerScrollableArea::paintResizer):
(WebCore::RenderLayerScrollableArea::hitTestOverflowControls):
(WebCore::RenderLayerScrollableArea::scroll):
(WebCore::RenderLayerScrollableArea::isActive const):
(WebCore::RenderLayerScrollableArea::lastKnownMousePositionInView const):
(WebCore::RenderLayerScrollableArea::isHandlingWheelEvent const):
(WebCore::RenderLayerScrollableArea::useDarkAppearance const):
(WebCore::RenderLayerScrollableArea::updateSnapOffsets):
(WebCore::RenderLayerScrollableArea::isScrollSnapInProgress const):
(WebCore::RenderLayerScrollableArea::paintOverlayScrollbars):
(WebCore::RenderLayerScrollableArea::hitTestResizerInFragments const):
(WebCore::RenderLayerScrollableArea::layerForHorizontalScrollbar const):
(WebCore::RenderLayerScrollableArea::layerForVerticalScrollbar const):
(WebCore::RenderLayerScrollableArea::layerForScrollCorner const):
(WebCore::RenderLayerScrollableArea::scrollingMayRevealBackground const):
(WebCore::RenderLayerScrollableArea::updateScrollbarsAfterStyleChange):
(WebCore::RenderLayerScrollableArea::updateScrollableAreaSet):
(WebCore::RenderLayerScrollableArea::updateScrollCornerStyle):
(WebCore::RenderLayerScrollableArea::clearScrollCorner):
(WebCore::RenderLayerScrollableArea::updateResizerStyle):
(WebCore::RenderLayerScrollableArea::clearResizer):
(WebCore::RenderLayerScrollableArea::updateAllScrollbarRelatedStyle):
(WebCore::RenderLayerScrollableArea::usesCompositedScrolling const):
(WebCore::adjustedScrollDelta):
(WebCore::RenderLayerScrollableArea::panScrollFromPoint):
(WebCore::RenderLayerScrollableArea::updateScrollPosition):
(WebCore::RenderLayerScrollableArea::scrollByRecursively):
(WebCore::RenderLayerScrollableArea::updateLayerPositionsAfterDocumentScroll):
(WebCore::RenderLayerScrollableArea::updateLayerPositionsAfterOverflowScroll):
(WebCore::RenderLayerScrollableArea::usesMockScrollAnimator const):
(WebCore::RenderLayerScrollableArea::logMockScrollAnimatorMessage const):
(WebCore::RenderLayerScrollableArea::debugDescription const):

  • rendering/RenderLayerScrollableArea.h:
  • rendering/RenderListBox.cpp: Adapt to the fact that

RenderLayer is no longer a ScrollableArea.
(WebCore::RenderListBox::enclosingScrollableArea const):

  • rendering/RenderObject.cpp: Add 'S' state in debug output,

indicating whether the RenderLayer has a RenderLayerScrollableArea.
(WebCore::outputRenderTreeLegend):
(WebCore::RenderObject::outputRenderObject const):

  • rendering/RenderObject.h: Add friendship with

RenderLayerScrollableArea.

  • testing/Internals.cpp: Adapt to the fact that

RenderLayer is no longer a ScrollableArea.
(WebCore::Internals::scrollBySimulatingWheelEvent):
(WebCore:: const):

12:20 PM Changeset in webkit [271558] by bshafiei@apple.com
  • 8 edits in tags/Safari-611.1.10.0.1/Source

Versioning.

WebKit-7611.1.10.0.1

12:09 PM Changeset in webkit [271557] by bshafiei@apple.com
  • 1 copy in tags/Safari-611.1.10.0.1

New tag.

12:05 PM Changeset in webkit [271556] by bshafiei@apple.com
  • 8 edits in branches/safari-611-branch/Source

Versioning.

WebKit-7611.1.14

6:28 AM Changeset in webkit [271555] by Alan Bujtas
  • 7 edits in trunk/Source/WebCore

[LFC][IFC] Do not use LineBox::isConsideredEmpty when checking if inline box stretches the line box.
https://bugs.webkit.org/show_bug.cgi?id=220259

Reviewed by Antti Koivisto.

  1. Inline box always have a strut in standards mode and it stretches the line box even when the inline box itself has no content.

<!DOCTYPE html><div>this is a ~100px tall line<span style="font-size: 100px;"></span></div>

  1. except when the line is completely empty (the inline box still has a strut but it does not affect the line box).

<!DOCTYPE html><div><span style="font-size: 100px;"></span><span style="font-size: 200px;"></span></div>

  1. but not empty like this:

<!DOCTYPE html><div><span style="font-size: 100px;"></span><br></div>

  1. or this:

<!DOCTYPE html><div><span style="font-size: 100px;"></span><img src="foo" style="width: 0px; height: 0px;"></div>

While #2 produces a 0px tall line box, #1, #3 and #4 produce ~100px tall lines.
This change also enables us to remove LineBox:isConsideredEmpty().

  • layout/inlineformatting/InlineFormattingContext.h:
  • layout/inlineformatting/InlineFormattingContextGeometry.cpp:

(WebCore::Layout::LineBoxBuilder::build):
(WebCore::Layout::LineBoxBuilder::computeLineBoxHeightAndAlignInlineLevelBoxesVertically):

  • layout/inlineformatting/InlineFormattingContextQuirks.cpp:

(WebCore::Layout::InlineFormattingContext::Quirks::inlineLevelBoxAffectsLineBox const):

  • layout/inlineformatting/InlineLineBox.cpp:

(WebCore::Layout::LineBox::LineBox):
(WebCore::Layout::m_isConsideredEmpty): Deleted.

  • layout/inlineformatting/InlineLineBox.h:

(WebCore::Layout::LineBox::horizontalAlignmentOffset const):
(WebCore::Layout::LineBox::isConsideredEmpty const): Deleted.

  • layout/inlineformatting/InlineLineBuilder.cpp:

(WebCore::Layout::LineBuilder::layoutInlineContent):

  • layout/inlineformatting/InlineLineBuilder.h:
Note: See TracTimeline for information about the timeline view.