Timeline



Nov 30, 2019:

10:10 PM Changeset in webkit [252965] by timothy_horton@apple.com
  • 53 edits in trunk/Source

Make CompositeOperator and BlendMode encodable
https://bugs.webkit.org/show_bug.cgi?id=204722

Reviewed by Eric Carlson.

Source/WebCore:

Make CompositeOperator an enum class, and fix the fallout.
Add EnumTraits for CompositeOperator and BlendMode, so that they can be encoded.

  • css/CSSPrimitiveValueMappings.h:

(WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
(WebCore::CSSPrimitiveValue::operator CompositeOperator const):

  • dom/Document.cpp:

(WebCore::Document::compositeOperatorForBackgroundColor const):

  • html/HTMLImageElement.cpp:

(WebCore::HTMLImageElement::HTMLImageElement):
(WebCore::HTMLImageElement::parseAttribute):

  • html/canvas/CanvasRenderingContext2D.cpp:

(WebCore::CanvasRenderingContext2D::drawTextInternal):

  • html/canvas/CanvasRenderingContext2DBase.cpp:

(WebCore::CanvasRenderingContext2DBase::State::State):
(WebCore::CanvasRenderingContext2DBase::setGlobalCompositeOperation):
(WebCore::CanvasRenderingContext2DBase::isFullCanvasCompositeMode):
(WebCore::CanvasRenderingContext2DBase::fillInternal):
(WebCore::CanvasRenderingContext2DBase::strokeInternal):
(WebCore::CanvasRenderingContext2DBase::clearRect):
(WebCore::CanvasRenderingContext2DBase::fillRect):
(WebCore::CanvasRenderingContext2DBase::strokeRect):
(WebCore::CanvasRenderingContext2DBase::drawImage):
(WebCore::CanvasRenderingContext2DBase::drawImageFromRect):
(WebCore::CanvasRenderingContext2DBase::fullCanvasCompositedDrawImage):

  • inspector/InspectorOverlay.cpp:

(WebCore::drawOutlinedQuadWithClip):

  • platform/graphics/CrossfadeGeneratedImage.cpp:

(WebCore::CrossfadeGeneratedImage::drawCrossfade):

  • platform/graphics/GraphicsContext.h:
  • platform/graphics/GraphicsLayer.cpp:

(WebCore::GraphicsLayer::dumpProperties const):

  • platform/graphics/GraphicsTypes.cpp:

(WebCore::parseCompositeAndBlendOperator):
(WebCore::compositeOperatorName):

  • platform/graphics/GraphicsTypes.h:
  • platform/graphics/Image.cpp:

(WebCore::Image::fillWithSolidColor):

  • platform/graphics/ImagePaintingOptions.h:
  • platform/graphics/ShadowBlur.cpp:

(WebCore::ShadowBlur::blurAndColorShadowBuffer):

  • platform/graphics/cairo/CairoOperations.cpp:

(WebCore::Cairo::drawNativeImage):

  • platform/graphics/cairo/CairoOperations.h:
  • platform/graphics/cairo/CairoUtilities.cpp:

(WebCore::toCairoCompositeOperator):

  • platform/graphics/cg/GraphicsContext3DCG.cpp:

(WebCore::GraphicsContext3D::paintToCanvas):

  • platform/graphics/cg/GraphicsContextCG.cpp:

(WebCore::selectCGBlendMode):

  • platform/graphics/filters/FEBlend.cpp:

(WebCore::FEBlend::platformApplySoftware):
(WebCore::FEBlend::externalRepresentation const):

  • platform/graphics/filters/FEComposite.cpp:

(WebCore::FEComposite::platformApplySoftware):

  • platform/graphics/filters/FEDropShadow.cpp:

(WebCore::FEDropShadow::platformApplySoftware):

  • platform/graphics/filters/SourceAlpha.cpp:

(WebCore::SourceAlpha::platformApplySoftware):

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:

(WebCore::MediaPlayerPrivateGStreamer::paint):

  • platform/graphics/nicosia/NicosiaPaintingEngineBasic.cpp:

(Nicosia::PaintingEngineBasic::paint):

  • platform/graphics/nicosia/NicosiaPaintingEngineThreaded.cpp:

(Nicosia::paintLayer):

  • platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp:

(WebCore::CoordinatedGraphicsLayer::flushCompositingStateForThisLayerOnly):

  • platform/graphics/win/Direct2DOperations.cpp:

(WebCore::Direct2D::State::setCompositeOperation):

  • platform/graphics/win/Direct2DOperations.h:
  • platform/graphics/win/ImageCGWin.cpp:

(WebCore::BitmapImage::getHBITMAPOfSize):

  • platform/graphics/win/ImageCairoWin.cpp:

(WebCore::BitmapImage::getHBITMAPOfSize):

  • rendering/InlineFlowBox.cpp:

(WebCore::InlineFlowBox::paintMask):

  • rendering/InlineFlowBox.h:
  • rendering/RenderBox.cpp:

(WebCore::RenderBox::paintMaskImages):

  • rendering/RenderBox.h:
  • rendering/RenderBoxModelObject.cpp:

(WebCore::RenderBoxModelObject::paintFillLayerExtended):

  • rendering/RenderBoxModelObject.h:
  • rendering/RenderEmbeddedObject.cpp:

(WebCore::RenderEmbeddedObject::paintReplaced):

  • rendering/RenderImage.cpp:

(WebCore::RenderImage::paintIntoRect):

  • rendering/RenderLayerBacking.cpp:

(WebCore::supportsDirectlyCompositedBoxDecorations):

  • rendering/RenderTreeAsText.cpp:
  • rendering/RenderView.cpp:

(WebCore::RenderView::paintBoxDecorations):

  • rendering/style/FillLayer.cpp:

(WebCore::FillLayer::FillLayer):
(WebCore::FillLayer::hasOpaqueImage const):

  • rendering/style/FillLayer.h:

(WebCore::FillLayer::initialFillComposite):

  • svg/graphics/SVGImage.cpp:

(WebCore::SVGImage::nativeImage):
(WebCore::SVGImage::draw):

Source/WebKit:

  • UIProcess/cairo/BackingStoreCairo.cpp:

(WebKit::BackingStore::incorporateUpdate):

  • WebProcess/Plugins/PluginProxy.cpp:

(WebKit::PluginProxy::paint):
(WebKit::PluginProxy::update):

  • WebProcess/WebPage/FindController.cpp:

(WebKit::FindController::drawRect):

Source/WebKitLegacy/win:

  • FullscreenVideoController.cpp:

(FullscreenVideoController::draw):

  • WebView.cpp:

(WebView::paintWithDirect2D):
(WebView::paintIntoBackingStore):

8:20 PM Changeset in webkit [252964] by Ross Kirsling
  • 4 edits in trunk

test262-runner should dump YAML with correct encoding
https://bugs.webkit.org/show_bug.cgi?id=204493

Reviewed by Saam Barati.

JSTests:

  • test262/expectations.yaml:

Fix double-encoding of test failure output.

Tools:

Even though we spit out correctly-encoded output to the terminal, Perl's YAML module insists upon *re*-encoding
to UTF-8 when dumping to file. This works out in the end because an analogous double-decode occurs when loading
from file. Still, it's really annoying that expectations.yaml has garbled (i.e. double-encoded) text.

We shouldn't modify libraries directly, but we can copy-paste DumpFile/LoadFile into Runner.pm and tweak!

  • Scripts/test262/Runner.pm:

(DumpFile):
(LoadFile):
Add custom versions of DumpFile/LoadFile which do not execute binmode $OUT, ':utf8';.

5:09 PM Changeset in webkit [252963] by Alan Bujtas
  • 2 edits in trunk/Tools

[LFC] Expand tests coverage (2648 new tests -> 3980).

  • LayoutReloaded/misc/LFC-passing-tests.txt:
5:06 PM Changeset in webkit [252962] by timothy_horton@apple.com
  • 15 edits in trunk/Source

Reimplement some PlatformCALayer methods using GraphicsContext instead of CGContextRef
https://bugs.webkit.org/show_bug.cgi?id=204698

Reviewed by Sam Weinig.

Source/WebCore:

In order to make PlatformCALayer-level DisplayList recording possible,
reimplement a few methods in terms of WebCore::GraphicsContext instead
of CGContextRef directly. Namely, collectRectsToPaint, drawLayerContents,
and drawRepaintIndicator.

In the drawLayerContents case, there are operations (like setting the
AppKit global graphics context) that cannot be done without a platform
context. In those cases, we skip that operation if we don't have a
platform context.

Anything depending on this downstream will break and need to be
implemented a different way in the DisplayList case.

  • platform/graphics/GraphicsContext.h:
  • platform/graphics/ca/PlatformCALayer.cpp:

(WebCore::PlatformCALayer::drawRepaintIndicator):

  • platform/graphics/ca/PlatformCALayer.h:
  • platform/graphics/ca/TileGrid.cpp:

(WebCore::TileGrid::platformCALayerPaintContents):

  • platform/graphics/ca/cocoa/PlatformCALayerCocoa.h:
  • platform/graphics/ca/cocoa/PlatformCALayerCocoa.mm:

(WebCore::PlatformCALayer::collectRectsToPaint):
(WebCore::PlatformCALayer::drawLayerContents):
(WebCore::PlatformCALayerCocoa::enumerateRectsBeingDrawn):

  • platform/graphics/ca/win/PlatformCALayerWin.cpp:

(PlatformCALayer::collectRectsToPaint):

  • platform/graphics/mac/WebLayer.mm:

(-[WebLayer drawInContext:]):

Source/WebKit:

  • Shared/RemoteLayerTree/RemoteLayerBackingStore.h:
  • Shared/RemoteLayerTree/RemoteLayerBackingStore.mm:

(WebKit::RemoteLayerBackingStore::drawInContext):
(WebKit::RemoteLayerBackingStore::enumerateRectsBeingDrawn):

  • WebProcess/WebPage/RemoteLayerTree/PlatformCALayerRemote.cpp:

(WebKit::PlatformCALayerRemote::enumerateRectsBeingDrawn):

  • WebProcess/WebPage/RemoteLayerTree/PlatformCALayerRemote.h:
11:08 AM Changeset in webkit [252961] by youenn@apple.com
  • 5 edits in trunk/Source/WebCore

Simplify CoreAudioCaptureSource suspension logic
https://bugs.webkit.org/show_bug.cgi?id=201720

Reviewed by Eric Carlson.

Instead of going through the source to suspend/resume the audio unit,
we directly go to the shared unit, which nows notifies the clients that they are muted or unmuted.

To simplify things, we no longer schedule tasks to resume/suspend/reconfigure.
All of these orders are started from the main thread synchronously.

No observable change of behavior.

  • platform/mediastream/mac/BaseAudioSharedUnit.cpp:

(WebCore::BaseAudioSharedUnit::startProducingData):
(WebCore::BaseAudioSharedUnit::reconfigure):
(WebCore::BaseAudioSharedUnit::resume):
(WebCore::BaseAudioSharedUnit::suspend):

  • platform/mediastream/mac/BaseAudioSharedUnit.h:
  • platform/mediastream/mac/CoreAudioCaptureSource.cpp:

(WebCore::CoreAudioCaptureSourceFactory::beginInterruption):
(WebCore::CoreAudioCaptureSourceFactory::endInterruption):
(WebCore::CoreAudioCaptureSourceFactory::scheduleReconfiguration):
(WebCore::CoreAudioCaptureSource::initializeToStartProducingData):
(WebCore::CoreAudioCaptureSource::startProducingData):
(WebCore::CoreAudioCaptureSource::stopProducingData):
(WebCore::CoreAudioCaptureSource::settingsDidChange):
(WebCore::CoreAudioCaptureSource::scheduleReconfiguration): Deleted.
(WebCore::CoreAudioCaptureSource::beginInterruption): Deleted.
(WebCore::CoreAudioCaptureSource::endInterruption): Deleted.

  • platform/mediastream/mac/CoreAudioCaptureSource.h:
11:07 AM Changeset in webkit [252960] by youenn@apple.com
  • 3 edits
    2 adds in trunk

Update RealtimeOutgoingAudioSourceCocoa::m_writeCount when sampleRate changes
https://bugs.webkit.org/show_bug.cgi?id=204606

Reviewed by Eric Carlson.

Source/WebCore:

Update m_writeCount to make sure our high/low buffer computation is done right.

Test: webrtc/audio-samplerate-change.html

  • platform/mediastream/mac/RealtimeOutgoingAudioSourceCocoa.cpp:

(WebCore::RealtimeOutgoingAudioSourceCocoa::audioSamplesAvailable):

LayoutTests:

  • webrtc/audio-samplerate-change-expected.txt: Added.
  • webrtc/audio-samplerate-change.html: Added.
8:30 AM Changeset in webkit [252959] by Antti Koivisto
  • 6 edits
    2 adds in trunk/Source/WebCore

Move path implementation functions in LineLayoutTraversal to *Path classes
https://bugs.webkit.org/show_bug.cgi?id=204714

Reviewed by Sam Weinig.

Simplify LineLayoutTraversal and make it easier to extend.

  • Turn SimplePath and ComplexPath structs into classes
  • Move them to separate files
  • Make path implementation functions class members, called via generic lambdas
  • Instead of inheriting Box/TextBox to iterators, make it a member variable.
  • Move the path variant to Box, avoiding use of templates.
  • WebCore.xcodeproj/project.pbxproj:
  • rendering/RenderTreeAsText.cpp:

(WebCore::writeTextBox):

  • rendering/line/LineLayoutTraversal.cpp:

(WebCore::LineLayoutTraversal::TextBoxIterator::TextBoxIterator):
(WebCore::LineLayoutTraversal::TextBoxIterator::traverseNextInVisualOrder):
(WebCore::LineLayoutTraversal::TextBoxIterator::traverseNextInTextOrder):
(WebCore::LineLayoutTraversal::TextBoxIterator::operator== const):
(WebCore::LineLayoutTraversal::TextBoxIterator::atEnd const):
(WebCore::LineLayoutTraversal::ElementBoxIterator::ElementBoxIterator):
(WebCore::LineLayoutTraversal::ElementBoxIterator::atEnd const):
(WebCore::LineLayoutTraversal::TextBoxIterator::ComplexPath::nextInlineTextBoxInTextOrder const): Deleted.

  • rendering/line/LineLayoutTraversal.h:

(WebCore::LineLayoutTraversal::TextBoxIterator::TextBoxIterator):
(WebCore::LineLayoutTraversal::TextBoxIterator::operator* const):
(WebCore::LineLayoutTraversal::TextBoxIterator::operator-> const):
(WebCore::LineLayoutTraversal::ElementBoxIterator::ElementBoxIterator):
(WebCore::LineLayoutTraversal::ElementBoxIterator::operator* const):
(WebCore::LineLayoutTraversal::ElementBoxIterator::operator-> const):
(WebCore::LineLayoutTraversal::Box::Box):
(WebCore::LineLayoutTraversal::Box::rect const):
(WebCore::LineLayoutTraversal::Box::logicalRect const):
(WebCore::LineLayoutTraversal::Box::isLeftToRightDirection const):
(WebCore::LineLayoutTraversal::Box::dirOverride const):
(WebCore::LineLayoutTraversal::Box::isLineBreak const):
(WebCore::LineLayoutTraversal::TextBox::hasHyphen const):
(WebCore::LineLayoutTraversal::TextBox::TextBox):
(WebCore::LineLayoutTraversal::TextBox::text const):
(WebCore::LineLayoutTraversal::TextBox::localStartOffset const):
(WebCore::LineLayoutTraversal::TextBox::localEndOffset const):
(WebCore::LineLayoutTraversal::TextBox::length const):
(WebCore::LineLayoutTraversal::TextBox::isLastOnLine const):
(WebCore::LineLayoutTraversal::TextBox::isLast const):
(): Deleted.
(WebCore::LineLayoutTraversal::Box<Iterator>::rect const): Deleted.
(WebCore::LineLayoutTraversal::Box<Iterator>::logicalRect const): Deleted.
(WebCore::LineLayoutTraversal::Box<Iterator>::isLeftToRightDirection const): Deleted.
(WebCore::LineLayoutTraversal::Box<Iterator>::dirOverride const): Deleted.
(WebCore::LineLayoutTraversal::Box<Iterator>::isLineBreak const): Deleted.
(WebCore::LineLayoutTraversal::Box<Iterator>::iterator const): Deleted.
(WebCore::LineLayoutTraversal::TextBox<Iterator>::hasHyphen const): Deleted.
(WebCore::LineLayoutTraversal::TextBox<Iterator>::text const): Deleted.
(WebCore::LineLayoutTraversal::TextBox<Iterator>::localStartOffset const): Deleted.
(WebCore::LineLayoutTraversal::TextBox<Iterator>::localEndOffset const): Deleted.
(WebCore::LineLayoutTraversal::TextBox<Iterator>::length const): Deleted.
(WebCore::LineLayoutTraversal::TextBox<Iterator>::isLastOnLine const): Deleted.
(WebCore::LineLayoutTraversal::TextBox<Iterator>::isLast const): Deleted.

  • rendering/line/LineLayoutTraversalComplexPath.h: Added.

(WebCore::LineLayoutTraversal::ComplexPath::ComplexPath):
(WebCore::LineLayoutTraversal::ComplexPath::rect const):
(WebCore::LineLayoutTraversal::ComplexPath::logicalRect const):
(WebCore::LineLayoutTraversal::ComplexPath::isLeftToRightDirection const):
(WebCore::LineLayoutTraversal::ComplexPath::dirOverride const):
(WebCore::LineLayoutTraversal::ComplexPath::isLineBreak const):
(WebCore::LineLayoutTraversal::ComplexPath::hasHyphen const):
(WebCore::LineLayoutTraversal::ComplexPath::text const):
(WebCore::LineLayoutTraversal::ComplexPath::localStartOffset const):
(WebCore::LineLayoutTraversal::ComplexPath::localEndOffset const):
(WebCore::LineLayoutTraversal::ComplexPath::length const):
(WebCore::LineLayoutTraversal::ComplexPath::isLastOnLine const):
(WebCore::LineLayoutTraversal::ComplexPath::isLast const):
(WebCore::LineLayoutTraversal::ComplexPath::traverseNextTextBoxInVisualOrder):
(WebCore::LineLayoutTraversal::ComplexPath::traverseNextTextBoxInTextOrder):
(WebCore::LineLayoutTraversal::ComplexPath::operator== const):
(WebCore::LineLayoutTraversal::ComplexPath::atEnd const):
(WebCore::LineLayoutTraversal::ComplexPath::inlineTextBox const):
(WebCore::LineLayoutTraversal::ComplexPath::nextInlineTextBoxInTextOrder const):

  • rendering/line/LineLayoutTraversalSimplePath.h: Added.

(WebCore::LineLayoutTraversal::SimplePath::SimplePath):
(WebCore::LineLayoutTraversal::SimplePath::rect const):
(WebCore::LineLayoutTraversal::SimplePath::logicalRect const):
(WebCore::LineLayoutTraversal::SimplePath::isLeftToRightDirection const):
(WebCore::LineLayoutTraversal::SimplePath::dirOverride const):
(WebCore::LineLayoutTraversal::SimplePath::isLineBreak const):
(WebCore::LineLayoutTraversal::SimplePath::hasHyphen const):
(WebCore::LineLayoutTraversal::SimplePath::text const):
(WebCore::LineLayoutTraversal::SimplePath::localStartOffset const):
(WebCore::LineLayoutTraversal::SimplePath::localEndOffset const):
(WebCore::LineLayoutTraversal::SimplePath::length const):
(WebCore::LineLayoutTraversal::SimplePath::isLastOnLine const):
(WebCore::LineLayoutTraversal::SimplePath::isLast const):
(WebCore::LineLayoutTraversal::SimplePath::traverseNextTextBoxInVisualOrder):
(WebCore::LineLayoutTraversal::SimplePath::traverseNextTextBoxInTextOrder):
(WebCore::LineLayoutTraversal::SimplePath::operator== const):
(WebCore::LineLayoutTraversal::SimplePath::atEnd const):

7:16 AM Changeset in webkit [252958] by Alan Bujtas
  • 8 edits in trunk

[LFC][IFC] Add support for hyphenate-limit-lines
https://bugs.webkit.org/show_bug.cgi?id=204712
<rdar://problem/57536727>

Reviewed by Antti Koivisto.

Source/WebCore:

Now IFC (hyphenation)feature matches SLL.

  • layout/inlineformatting/InlineFormattingContext.cpp:

(WebCore::Layout::InlineFormattingContext::lineLayout):
(WebCore::Layout::InlineFormattingContext::computedIntrinsicWidthForConstraint const):

  • layout/inlineformatting/InlineLineBreaker.cpp:

(WebCore::Layout::LineBreaker::wordBreakingBehavior const):
(WebCore::Layout::LineBreaker::tryBreakingTextRun const):

  • layout/inlineformatting/InlineLineBreaker.h:

(WebCore::Layout::LineBreaker::setHyphenationDisabled):

  • layout/inlineformatting/LineLayoutContext.cpp:

(WebCore::Layout::LineLayoutContext::LineLayoutContext):
(WebCore::Layout::LineLayoutContext::layoutLine):
(WebCore::Layout::LineLayoutContext::close):
(WebCore::Layout::LineLayoutContext::processUncommittedContent):

  • layout/inlineformatting/LineLayoutContext.h:

Tools:

  • LayoutReloaded/misc/LFC-passing-tests.txt:
5:15 AM Changeset in webkit [252957] by graouts@webkit.org
  • 6 edits
    4 adds in trunk

[Web Animations] Forward-filling animations should not schedule updates while filling
https://bugs.webkit.org/show_bug.cgi?id=204697
<rdar://problem/57534005>

Reviewed by Dean Jackson.

Source/WebCore:

Tests: webanimations/no-scheduling-while-filling-accelerated.html

webanimations/no-scheduling-while-filling-non-accelerated.html

For two different reasons, we would continuously schedule updates for animations in their "after" phase, ie. when they would have "fill: forwards"
and be finished.

In the case of non-accelerated animations, that was because we would also schedule an immedate update in DocumentTimeline::scheduleNextTick() provided
we had relevant animations that weren't accelerated. But since animations in their "after" phase are still considered relevant, which means that they
would override the base style with an animated value, this caused the unnecessary scheduled updates.

To address this, we run WebAnimation::timeToNextTick() in DocumentTimeline::scheduleNextTick() for all relevant animations and we teach that function
to schedule an immediate update only during the "active" phase, and to schedule a timed update only in the "before" phase computing the delay until
the animation enters the "active" phase.

While performing this work, we found a couple of other issues that weren't apparent until we had this more efficient scheduling in place.

First, we would not allow any additional calls to DocumentTimeline::scheduleAnimationResolution() to actually schedule an update while we were in the
process of updating animations. While this wasn't a problem before because the mere presence of relevant animations would cause an upadte, we now had
to allow any animation changing timing properties as promises would resolve and events would be dispatched during the animation update to cause further
animation updates to be scheduled. So we moved the "m_animationResolutionScheduled" flag reset earlier in DocumentTimeline::updateAnimationsAndSendEvents()
before we actually run the animation update procedure.

Following that change, we also had to make sure that timing changes made through the evaluation of the pending play and pause tasks would _not_ cause
animations to be scheduled, which meant that an animation that became non-pending (ie. its first tick occured) would always schedule one immediate
animation update. So now we have an extra "silent" flag to WebAnimation::timingDidChange() which is only set to true when called from either
WebAnimation::runPendingPlayTask() or WebAnimation::runPendingPauseTask().

Finally, one existing test showed that calling KeyframeEffect::setKeyframes() while running animations didn't cause an animation update to be scheduled
since a call to WebAnimation::effectTimingDidChange() was lacking. This is now addressed.

As for accelerated animations, the extraneous animation scheduling occured because we would get in a state where we would record an "accelerated action"
to stop the accelerated animation but the accelerated animation had already completed and the renderer for the target element was no longer composited.
This meant that KeyframeEffect::applyPendingAcceleratedActions() would not perform any work and the pending accelerated action would remain in the
DocumentTimeline queue and cause an update to be scheduled to try again, endlessly.

To address that, we first check in KeyframeEffect::addPendingAcceleratedAction() if the recorded action differs from the last recorded action, avoiding
unnecessary work, and in KeyframeEffect::applyPendingAcceleratedActions(), if our last recorded action was "Stop" and the renderer was not composited,
we discard all pending accelerated actions.

  • animation/DocumentTimeline.cpp:

(WebCore::DocumentTimeline::updateAnimationsAndSendEvents):
(WebCore::DocumentTimeline::scheduleNextTick):

  • animation/KeyframeEffect.cpp:

(WebCore::KeyframeEffect::setKeyframes):
(WebCore::KeyframeEffect::addPendingAcceleratedAction):
(WebCore::KeyframeEffect::applyPendingAcceleratedActions):

  • animation/WebAnimation.cpp:

(WebCore::WebAnimation::timingDidChange):
(WebCore::WebAnimation::runPendingPlayTask):
(WebCore::WebAnimation::runPendingPauseTask):
(WebCore::WebAnimation::timeToNextTick const):

  • animation/WebAnimation.h:

LayoutTests:

Adding tests checking that we don't schedule animation updates while filling for accelerated and non-accelerated animations alike.

  • webanimations/no-scheduling-while-filling-accelerated-expected.txt: Added.
  • webanimations/no-scheduling-while-filling-accelerated.html: Added.
  • webanimations/no-scheduling-while-filling-non-accelerated-expected.txt: Added.
  • webanimations/no-scheduling-while-filling-non-accelerated.html: Added.
4:32 AM Changeset in webkit [252956] by youenn@apple.com
  • 3 edits in trunk/Source/WebCore

MockAudioSharedUnit should reset its last render time on start/stop/reconfigure
https://bugs.webkit.org/show_bug.cgi?id=204600
<rdar://problem/57438874>

Reviewed by Eric Carlson.

MockAudioSharedUnit was not resetting its last render time on stop/start/reconfigure.
If stopping for a long time and then restarting, the unit would flood the audio pipe with lots of data
and confuse the pipe.
Remove some member variables inherited from MockRealtimeAudioSource which are no longer needed.

Covered by imported/w3c/web-platform-tests/webrtc/RTCRtpReceiver-getSynchronizationSources.https.html being no longer flaky.

  • platform/mediastream/mac/MockAudioSharedUnit.h:
  • platform/mediastream/mac/MockAudioSharedUnit.mm:

(WebCore::MockAudioSharedUnit::reconfigureAudioUnit):
(WebCore::MockAudioSharedUnit::startInternal):

2:40 AM Changeset in webkit [252955] by Philippe Normand
  • 2 edits in trunk/Source/WebCore

Unreviewed, follow-up to r252938, now fixing the MSE/EME build

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:

supportsKeySystem needs to be public because it's referenced from
the MSE MediaPlayerPrivate sub-class.

2:33 AM Changeset in webkit [252954] by Philippe Normand
  • 2 edits in trunk/Source/WebCore

Unreviewed, GTK LTS build fix after r252950.

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:

supportsKeySystem can't be ifdeffed.

12:15 AM Changeset in webkit [252953] by aakash_jain@apple.com
  • 3 edits in trunk/Tools

[EWS] Do not retry layout-tests build if the flaky test failures are also present in clean tree run
https://bugs.webkit.org/show_bug.cgi?id=204704

Reviewed by Alexey Proskuryakov.

  • BuildSlaveSupport/ews-build/steps.py:

(AnalyzeLayoutTestsResults.start):

  • BuildSlaveSupport/ews-build/steps_unittest.py:

(TestAnalyzeLayoutTestsResults.test_flaky_and_inconsistent_failures_with_clean_tree_failures): Changed expected outcome to SUCCESS.
(TestAnalyzeLayoutTestsResults.test_flaky_and_consistent_failures_with_clean_tree_failures): Ditto.

Nov 29, 2019:

4:03 PM Changeset in webkit [252952] by Alan Bujtas
  • 4 edits in trunk

[LFC][IFC] Add support for hyphenate-limit-before and hyphenate-limit-after
https://bugs.webkit.org/show_bug.cgi?id=204710
<rdar://problem/57535210>

Reviewed by Antti Koivisto.

Source/WebCore:

  • layout/inlineformatting/InlineLineBreaker.cpp:

(WebCore::Layout::LineBreaker::tryBreakingTextRun const):

Tools:

  • LayoutReloaded/misc/LFC-passing-tests.txt:
2:17 PM Changeset in webkit [252951] by commit-queue@webkit.org
  • 6 edits
    4 deletes in trunk

Unreviewed, rolling out r252944.
https://bugs.webkit.org/show_bug.cgi?id=204709

Broke Windows Build (Requested by aakashja_ on #webkit).

Reverted changeset:

"[Web Animations] Forward-filling animations should not
schedule updates while filling"
https://bugs.webkit.org/show_bug.cgi?id=204697
https://trac.webkit.org/changeset/252944

12:27 PM Changeset in webkit [252950] by cturner@igalia.com
  • 6 edits in trunk/Source/WebCore

[GStreamer] MediaPlayerPrivateGStreamer style cleanups
https://bugs.webkit.org/show_bug.cgi?id=204617

Reviewed by Xabier Rodriguez-Calvar.

Follow-up commit to bug 204352 addressing style issues in the
existing player code. The main issues addressed are naming
violations, adding final to types not overridden and organizing
better the scope of names in the classes.

Covered by existing tests.

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:

(WebCore::initializeDebugCategory):
(WebCore::MediaPlayerPrivateGStreamer::loadFull):
(WebCore::MediaPlayerPrivateGStreamer::prepareToPlay):
(WebCore::MediaPlayerPrivateGStreamer::play):
(WebCore::MediaPlayerPrivateGStreamer::pause):
(WebCore::MediaPlayerPrivateGStreamer::paused const):
(WebCore::MediaPlayerPrivateGStreamer::doSeek):
(WebCore::MediaPlayerPrivateGStreamer::seek):
(WebCore::MediaPlayerPrivateGStreamer::updatePlaybackRate):
(WebCore::MediaPlayerPrivateGStreamer::currentMediaTime const):
(WebCore::MediaPlayerPrivateGStreamer::setRate):
(WebCore::MediaPlayerPrivateGStreamer::setPreservesPitch):
(WebCore::MediaPlayerPrivateGStreamer::setPreload):
(WebCore::MediaPlayerPrivateGStreamer::buffered const):
(WebCore::MediaPlayerPrivateGStreamer::maxMediaTimeSeekable const):
(WebCore::MediaPlayerPrivateGStreamer::maxTimeLoaded const):
(WebCore::MediaPlayerPrivateGStreamer::didLoadingProgress const):
(WebCore::MediaPlayerPrivateGStreamer::totalBytes const):
(WebCore::MediaPlayerPrivateGStreamer::changePipelineState):
(WebCore::MediaPlayerPrivateGStreamer::notifyPlayerOfVideo):
(WebCore::MediaPlayerPrivateGStreamer::notifyPlayerOfAudio):
(WebCore::MediaPlayerPrivateGStreamer::notifyPlayerOfText):
(WebCore::MediaPlayerPrivateGStreamer::platformDuration const):
(WebCore::MediaPlayerPrivateGStreamer::isMuted const):
(WebCore::MediaPlayerPrivateGStreamer::commitLoad):
(WebCore::MediaPlayerPrivateGStreamer::fillTimerFired):
(WebCore::MediaPlayerPrivateGStreamer::loadingFailed):
(WebCore::MediaPlayerPrivateGStreamer::playbackPosition const):
(WebCore::MediaPlayerPrivateGStreamer::enableTrack):
(WebCore::MediaPlayerPrivateGStreamer::updateTracks):
(WebCore::MediaPlayerPrivateGStreamer::handleSyncMessage):
(WebCore::MediaPlayerPrivateGStreamer::naturalSize const):
(WebCore::MediaPlayerPrivateGStreamer::setMuted):
(WebCore::MediaPlayerPrivateGStreamer::handleMessage):
(WebCore::MediaPlayerPrivateGStreamer::updateBufferingStatus):
(WebCore::MediaPlayerPrivateGStreamer::processMpegTsSection):
(WebCore::MediaPlayerPrivateGStreamer::processTableOfContentsEntry):
(WebCore::MediaPlayerPrivateGStreamer::asyncStateChangeDone):
(WebCore::MediaPlayerPrivateGStreamer::updateStates):
(WebCore::MediaPlayerPrivateGStreamer::loadNextLocation):
(WebCore::MediaPlayerPrivateGStreamer::didEnd):
(WebCore::MediaPlayerPrivateGStreamer::updateDownloadBufferingFlag):
(WebCore::MediaPlayerPrivateGStreamer::createGSTPlayBin):
(WebCore::MediaPlayerPrivateGStreamer::canSaveMediaData const):
(WebCore::MediaPlayerPrivateGStreamer::acceleratedRenderingStateChanged):
(WebCore::MediaPlayerPrivateGStreamer::pushTextureToCompositor):
(WebCore::MediaPlayerPrivateGStreamer::triggerRepaint):
(WebCore::MediaPlayerPrivateGStreamer::cancelRepaint):
(WebCore::MediaPlayerPrivateGStreamer::paint):
(WebCore::MediaPlayerPrivateGStreamer::copyVideoTextureToPlatformTexture):
(WebCore::MediaPlayerPrivateGStreamer::nativeImageForCurrentTime):
(WebCore::MediaPlayerPrivateGStreamer::movieLoadType const):
(WebCore::MediaPlayerPrivateGStreamer::createVideoSink):
(WebCore::MediaPlayerPrivateGStreamer::decodedFrameCount const):
(WebCore::MediaPlayerPrivateGStreamer::droppedFrameCount const):
(WebCore::MediaPlayerPrivateGStreamer::attemptToDecryptWithLocalInstance):
(WebCore::MediaPlayerPrivateGStreamer::setWaitingForKey):
(WebCore::MediaPlayerPrivateGStreamer::initializeDebugCategory): Deleted.
(WebCore::MediaPlayerPrivateGStreamer::sizeChanged): Deleted.
(WebCore::MediaPlayerPrivateGStreamer::muted const): Deleted.

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:

(WebCore::MediaPlayerPrivateGStreamer::pipeline const):
(WebCore::MediaPlayerPrivateGStreamer::mediaPlayer const): Deleted.
(WebCore::MediaPlayerPrivateGStreamer::isLiveStream const): Deleted.

  • platform/graphics/gstreamer/mse/MediaPlayerPrivateGStreamerMSE.cpp:

(WebCore::MediaPlayerPrivateGStreamerMSE::pause):
(WebCore::MediaPlayerPrivateGStreamerMSE::durationMediaTime const):
(WebCore::MediaPlayerPrivateGStreamerMSE::seek):
(WebCore::MediaPlayerPrivateGStreamerMSE::doSeek):
(WebCore::MediaPlayerPrivateGStreamerMSE::maybeFinishSeek):
(WebCore::MediaPlayerPrivateGStreamerMSE::seeking const):
(WebCore::MediaPlayerPrivateGStreamerMSE::waitForSeekCompleted):
(WebCore::MediaPlayerPrivateGStreamerMSE::updateStates):
(WebCore::MediaPlayerPrivateGStreamerMSE::asyncStateChangeDone):
(WebCore::MediaPlayerPrivateGStreamerMSE::maxMediaTimeSeekable const):

  • platform/graphics/gstreamer/mse/MediaPlayerPrivateGStreamerMSE.h:
  • platform/graphics/gstreamer/mse/MediaSourceClientGStreamerMSE.cpp:

(WebCore::MediaSourceClientGStreamerMSE::flush):

11:03 AM Changeset in webkit [252949] by commit-queue@webkit.org
  • 2 edits in trunk/Source/JavaScriptCore

Use default implementation for JSVALUE64 with GCC on unknown platform.
https://bugs.webkit.org/show_bug.cgi?id=204701

Building on ppc64le and s390x failed with
#error "Unknown architecture."
Use the default implementation as fallback in these cases.

Patch by Eike Rathke <erack@redhat.com> on 2019-11-29
Reviewed by Saam Barati.

  • heap/GCMemoryOperations.h:

(JSC::gcSafeMemcpy):
(JSC::gcSafeMemmove):
(JSC::gcSafeZeroMemory):

10:54 AM Changeset in webkit [252948] by Antti Koivisto
  • 8 edits in trunk/Tools

Add mechanism for enabling internal and experimental features from run-webkit-test command line
https://bugs.webkit.org/show_bug.cgi?id=204702

Reviewed by Antoine Quint.

Add --internal-feature and --experimental-feature flags to TestRunner and run-webkit-tests.
This is useful for running existing tests with different feature enabled without modifying
anything else. For example:

run-webkit-tests --internal-feature LayoutFormattingContextRenderTreeIntegrationEnabled

  • Scripts/webkitpy/layout_tests/run_webkit_tests.py:

(parse_args):

  • Scripts/webkitpy/port/base.py:

(Port.internal_feature):
(Port):
(Port.experimental_feature):

  • Scripts/webkitpy/port/driver.py:

(Driver.cmd_line):

  • WebKitTestRunner/Options.cpp:

(WTR::handleOptionExperimentalFeature):
(WTR::handleOptionInternalFeature):
(WTR::OptionsHandler::OptionsHandler):

  • WebKitTestRunner/Options.h:
  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::initialize):
(WTR::TestController::testOptionsForTest const):

  • WebKitTestRunner/TestController.h:
10:34 AM Changeset in webkit [252947] by Alan Bujtas
  • 3 edits in trunk/Source/WebCore

[LFC][IFC] Add support for simple hyphenation
https://bugs.webkit.org/show_bug.cgi?id=204706
<rdar://problem/57533803>

Reviewed by Antti Koivisto.

This is just -webkit-hyphens: auto, no limit-before/after/lines support yet.

  • layout/Verification.cpp:

(WebCore::Layout::LayoutContext::verifyAndOutputMismatchingLayoutTree):

  • layout/inlineformatting/InlineLineBreaker.cpp:

(WebCore::Layout::LineBreaker::tryBreakingTextRun const):

  • layout/inlineformatting/text/TextUtil.cpp:

(WebCore::Layout::TextUtil::split):

10:20 AM Changeset in webkit [252946] by aakash_jain@apple.com
  • 2 edits in trunk/Tools

Add a unit-test to new EWS for scenario when there is flakiness with patch and also on clean tree
https://bugs.webkit.org/show_bug.cgi?id=204707
<rdar://problem/57533998>

Unreviewed unit-test.

  • BuildSlaveSupport/ews-build/steps_unittest.py:

(TestAnalyzeLayoutTestsResults.test_mildly_flaky_patch_with_some_tree_redness_and_flakiness):

10:15 AM Changeset in webkit [252945] by graouts@webkit.org
  • 4 edits in trunk/Source

[Web Animations] Enable WebAnimationsCSSIntegrationEnabled by default
https://bugs.webkit.org/show_bug.cgi?id=204650
<rdar://problem/45562752>

Reviewed by Dean Jackson.

Source/WebCore:

  • page/RuntimeEnabledFeatures.h:

Source/WebKit:

  • Shared/WebPreferences.yaml:
10:11 AM Changeset in webkit [252944] by graouts@webkit.org
  • 6 edits
    4 adds in trunk

[Web Animations] Forward-filling animations should not schedule updates while filling
https://bugs.webkit.org/show_bug.cgi?id=204697

Reviewed by Dean Jackson.

Source/WebCore:

Tests: webanimations/no-scheduling-while-filling-accelerated.html

webanimations/no-scheduling-while-filling-non-accelerated.html

For two different reasons, we would continuously schedule updates for animations in their "after" phase, ie. when they would have "fill: forwards"
and be finished.

In the case of non-accelerated animations, that was because we would also schedule an immedate update in DocumentTimeline::scheduleNextTick() provided
we had relevant animations that weren't accelerated. But since animations in their "after" phase are still considered relevant, which means that they
would override the base style with an animated value, this caused the unnecessary scheduled updates.

To address this, we run WebAnimation::timeToNextTick() in DocumentTimeline::scheduleNextTick() for all relevant animations and we teach that function
to schedule an immediate update only during the "active" phase, and to schedule a timed update only in the "before" phase computing the delay until
the animation enters the "active" phase.

While performing this work, we found a couple of other issues that weren't apparent until we had this more efficient scheduling in place.

First, we would not allow any additional calls to DocumentTimeline::scheduleAnimationResolution() to actually schedule an update while we were in the
process of updating animations. While this wasn't a problem before because the mere presence of relevant animations would cause an upadte, we now had
to allow any animation changing timing properties as promises would resolve and events would be dispatched during the animation update to cause further
animation updates to be scheduled. So we moved the "m_animationResolutionScheduled" flag reset earlier in DocumentTimeline::updateAnimationsAndSendEvents()
before we actually run the animation update procedure.

Following that change, we also had to make sure that timing changes made through the evaluation of the pending play and pause tasks would _not_ cause
animations to be scheduled, which meant that an animation that became non-pending (ie. its first tick occured) would always schedule one immediate
animation update. So now we have an extra "silent" flag to WebAnimation::timingDidChange() which is only set to true when called from either
WebAnimation::runPendingPlayTask() or WebAnimation::runPendingPauseTask().

Finally, one existing test showed that calling KeyframeEffect::setKeyframes() while running animations didn't cause an animation update to be scheduled
since a call to WebAnimation::effectTimingDidChange() was lacking. This is now addressed.

As for accelerated animations, the extraneous animation scheduling occured because we would get in a state where we would record an "accelerated action"
to stop the accelerated animation but the accelerated animation had already completed and the renderer for the target element was no longer composited.
This meant that KeyframeEffect::applyPendingAcceleratedActions() would not perform any work and the pending accelerated action would remain in the
DocumentTimeline queue and cause an update to be scheduled to try again, endlessly.

To address that, we first check in KeyframeEffect::addPendingAcceleratedAction() if the recorded action differs from the last recorded action, avoiding
unnecessary work, and in KeyframeEffect::applyPendingAcceleratedActions(), if our last recorded action was "Stop" and the renderer was not composited,
we discard all pending accelerated actions.

  • animation/DocumentTimeline.cpp:

(WebCore::DocumentTimeline::updateAnimationsAndSendEvents):
(WebCore::DocumentTimeline::scheduleNextTick):

  • animation/KeyframeEffect.cpp:

(WebCore::KeyframeEffect::setKeyframes):
(WebCore::KeyframeEffect::addPendingAcceleratedAction):
(WebCore::KeyframeEffect::applyPendingAcceleratedActions):

  • animation/WebAnimation.cpp:

(WebCore::WebAnimation::timingDidChange):
(WebCore::WebAnimation::runPendingPlayTask):
(WebCore::WebAnimation::runPendingPauseTask):
(WebCore::WebAnimation::timeToNextTick const):

  • animation/WebAnimation.h:

LayoutTests:

Adding tests checking that we don't schedule animation updates while filling for accelerated and non-accelerated animations alike.

  • webanimations/no-scheduling-while-filling-accelerated-expected.txt: Added.
  • webanimations/no-scheduling-while-filling-accelerated.html: Added.
  • webanimations/no-scheduling-while-filling-non-accelerated-expected.txt: Added.
  • webanimations/no-scheduling-while-filling-non-accelerated.html: Added.
10:09 AM Changeset in webkit [252943] by aakash_jain@apple.com
  • 2 edits in trunk/Tools

Add a unit-test to old EWS for scenario when there is flakiness with patch and also on clean tree
https://bugs.webkit.org/show_bug.cgi?id=204707

Unreviewed unit-test.

  • Scripts/webkitpy/tool/bot/commitqueuetask_unittest.py:
8:30 AM Changeset in webkit [252942] by Antti Koivisto
  • 12 edits in trunk/Source/WebCore

[LFC][IFC] Vector allocate LineBoxes and Display::Runs
https://bugs.webkit.org/show_bug.cgi?id=204699

Reviewed by Zalan Bujtas.

Also rename inlineRuns -> displayRuns to match the type.

  • layout/FormattingContextGeometry.cpp:

(WebCore::Layout::FormattingContext::Geometry::contentHeightForFormattingContextRoot const):

  • layout/RenderBlockFlowLineLayout.cpp:

(WebCore::Layout::RenderBlockFlowLineLayout::layout):

  • layout/Verification.cpp:

(WebCore::Layout::outputMismatchingSimpleLineInformationIfNeeded):
(WebCore::Layout::outputMismatchingComplexLineInformationIfNeeded):

  • layout/blockformatting/BlockFormattingContextGeometry.cpp:

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

  • layout/blockformatting/BlockMarginCollapse.cpp:

(WebCore::Layout::BlockFormattingContext::MarginCollapse::marginsCollapseThrough const):

  • layout/displaytree/DisplayPainter.cpp:

(WebCore::Display::paintInlineContent):

  • layout/inlineformatting/InlineFormattingContext.cpp:

(WebCore::Layout::InlineFormattingContext::setDisplayBoxesForLine):
(WebCore::Layout::InlineFormattingContext::invalidateFormattingState):

  • layout/inlineformatting/InlineFormattingContextQuirks.cpp:

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

  • layout/inlineformatting/InlineFormattingState.h:

(WebCore::Layout::InlineFormattingState::displayRuns const):
(WebCore::Layout::InlineFormattingState::displayRuns):
(WebCore::Layout::InlineFormattingState::addLineBox):
(WebCore::Layout::InlineFormattingState::lineBoxForRun const):
(WebCore::Layout::InlineFormattingState::addDisplayRun):
(WebCore::Layout::InlineFormattingState::resetDisplayRuns):
(WebCore::Layout::InlineFormattingState::inlineRuns const): Deleted.
(WebCore::Layout::InlineFormattingState::inlineRuns): Deleted.
(WebCore::Layout::InlineFormattingState::addInlineRun): Deleted.
(WebCore::Layout::InlineFormattingState::resetInlineRuns): Deleted.

  • layout/inlineformatting/InlineLineBuilder.cpp:

(WebCore::Layout::LineBuilder::alignContentVertically):
(WebCore::Layout::LineBuilder::adjustBaselineAndLineHeight):

  • layout/layouttree/LayoutTreeBuilder.cpp:

(WebCore::Layout::outputInlineRuns):

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

[LFC][IFC] Trim trailing uncommitted content when needed
https://bugs.webkit.org/show_bug.cgi?id=204655
<rdar://problem/57511053>

Reviewed by Antti Koivisto.

When we try to fit the trailing inline runs on the line, we have to make sure trimmable trailing whitespace content is taken into account.

<div style="float: left">text<span style="padding-right: 20px"> </span></div>
<- As we compute the content width of floating box using shrink to fit, we trim the trailing whitespace at the end and
the final width will include the following runs [text: 41px][container start: 0px][container end: 20px] -> 61px (it would be 65px with the whitespace content)
As we place the inline content and we reach the final trailing content [ ][container end], the line has only 20px space left, while the content is 24px long.
At this point we need to retry the available space check by taking both the line and the pending content's trimmable width into account.

  • layout/inlineformatting/InlineLineBreaker.cpp:

(WebCore::Layout::LineBreaker::breakingContextForInlineContent):
(WebCore::Layout::LineBreaker::Content::isAtContentBoundary):
(WebCore::Layout::LineBreaker::Content::append):
(WebCore::Layout::LineBreaker::Content::hasNonWhitespaceOrInlineBox const):
(WebCore::Layout::LineBreaker::Content::hasTextContentOnly const):
(WebCore::Layout::LineBreaker::Content::trailingTrimmableWidth const):

  • layout/inlineformatting/InlineLineBreaker.h:
  • layout/inlineformatting/InlineLineBuilder.cpp:

(WebCore::Layout::shouldPreserveTrailingContent):

  • layout/inlineformatting/LineLayoutContext.cpp:

(WebCore::Layout::LineLayoutContext::processUncommittedContent):

  • layout/inlineformatting/text/TextUtil.cpp:

(WebCore::Layout::TextUtil::shouldPreserveTrailingWhitespace):

  • layout/inlineformatting/text/TextUtil.h:
6:20 AM Changeset in webkit [252940] by Alan Bujtas
  • 5 edits in trunk/Source/WebCore

[LFC][IFC] Move and rename LineLayoutContext::UncommittedContent
https://bugs.webkit.org/show_bug.cgi?id=204693
<rdar://problem/57523727>

Reviewed by Antti Koivisto.

LineBreaker::Content represents the amount of content we commit to line breaking at a time.
Normally it holds only one InlineItem e.g [text][ ][content] <- we submit 3 entries to line breaking, but
with (mostly)inline containers, it can hold a long list of InlineItems e.g
<span>1</span>2<span>3</span>4<span>5</span>6
[container start][1][container end][2][container start][3][container end][4][container start][5][container end][6]
<- this is one entry to submit.
This patch is also in preparation for fixing trailing trimmable content handling.

  • layout/inlineformatting/InlineLineBreaker.cpp:

(WebCore::Layout::LineBreaker::breakingContextForInlineContent):
(WebCore::Layout::LineBreaker::wordBreakingBehavior const):
(WebCore::Layout::LineBreaker::tryBreakingTextRun const):
(WebCore::Layout::LineBreaker::Content::isAtContentBoundary):
(WebCore::Layout::LineBreaker::Content::append):
(WebCore::Layout::LineBreaker::Content::reset):
(WebCore::Layout::LineBreaker::Content::trim):

  • layout/inlineformatting/InlineLineBreaker.h:

(WebCore::Layout::LineBreaker::Content::runs):
(WebCore::Layout::LineBreaker::Content::runs const):
(WebCore::Layout::LineBreaker::Content::isEmpty const):
(WebCore::Layout::LineBreaker::Content::size const):
(WebCore::Layout::LineBreaker::Content::width const):

  • layout/inlineformatting/LineLayoutContext.cpp:

(WebCore::Layout::LineLayoutContext::placeInlineItem):
(WebCore::Layout::LineLayoutContext::processUncommittedContent):
(WebCore::Layout::LineLayoutContext::UncommittedContent::add): Deleted.
(WebCore::Layout::LineLayoutContext::UncommittedContent::reset): Deleted.
(WebCore::Layout::LineLayoutContext::shouldProcessUncommittedContent const): Deleted.
(WebCore::Layout::LineLayoutContext::UncommittedContent::trim): Deleted.

  • layout/inlineformatting/LineLayoutContext.h:

(WebCore::Layout::LineLayoutContext::UncommittedContent::runs): Deleted.
(WebCore::Layout::LineLayoutContext::UncommittedContent::runs const): Deleted.
(WebCore::Layout::LineLayoutContext::UncommittedContent::isEmpty const): Deleted.
(WebCore::Layout::LineLayoutContext::UncommittedContent::size const): Deleted.
(WebCore::Layout::LineLayoutContext::UncommittedContent::width const): Deleted.

5:17 AM Changeset in webkit [252939] by commit-queue@webkit.org
  • 3 edits in trunk/Tools

Move jsc-i386 from old to new EWS
https://bugs.webkit.org/show_bug.cgi?id=204667

Patch by Paulo Matos <Paulo Matos> on 2019-11-29
Reviewed by Aakash Jain.

  • BuildSlaveSupport/ews-app/ews/views/statusbubble.py:

(StatusBubble):

  • QueueStatusServer/config/queues.py:
3:11 AM Changeset in webkit [252938] by Philippe Normand
  • 6 edits in trunk/Source/WebCore

Unreviewed, rolling out r252937.

broke GTK/WPE builds and most likely media track notification
support

Reverted changeset:

"[GStreamer] MediaPlayerPrivateGStreamer style cleanups"
https://bugs.webkit.org/show_bug.cgi?id=204617
https://trac.webkit.org/changeset/252937

2:24 AM Changeset in webkit [252937] by cturner@igalia.com
  • 6 edits in trunk/Source/WebCore

[GStreamer] MediaPlayerPrivateGStreamer style cleanups
https://bugs.webkit.org/show_bug.cgi?id=204617

Reviewed by Xabier Rodriguez-Calvar.

Follow-up commit to bug 204352 addressing style issues in the
existing player code. The main issues addressed are naming
violations, adding final to types not overridden and organizing
better the scope of names in the classes.

Covered by existing tests.

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:

(WebCore::initializeDebugCategory):
(WebCore::MediaPlayerPrivateGStreamer::loadFull):
(WebCore::MediaPlayerPrivateGStreamer::prepareToPlay):
(WebCore::MediaPlayerPrivateGStreamer::play):
(WebCore::MediaPlayerPrivateGStreamer::pause):
(WebCore::MediaPlayerPrivateGStreamer::paused const):
(WebCore::MediaPlayerPrivateGStreamer::doSeek):
(WebCore::MediaPlayerPrivateGStreamer::seek):
(WebCore::MediaPlayerPrivateGStreamer::updatePlaybackRate):
(WebCore::MediaPlayerPrivateGStreamer::currentMediaTime const):
(WebCore::MediaPlayerPrivateGStreamer::setRate):
(WebCore::MediaPlayerPrivateGStreamer::setPreservesPitch):
(WebCore::MediaPlayerPrivateGStreamer::setPreload):
(WebCore::MediaPlayerPrivateGStreamer::buffered const):
(WebCore::MediaPlayerPrivateGStreamer::maxMediaTimeSeekable const):
(WebCore::MediaPlayerPrivateGStreamer::maxTimeLoaded const):
(WebCore::MediaPlayerPrivateGStreamer::didLoadingProgress const):
(WebCore::MediaPlayerPrivateGStreamer::totalBytes const):
(WebCore::MediaPlayerPrivateGStreamer::changePipelineState):
(WebCore::MediaPlayerPrivateGStreamer::notifyPlayerOfVideo):
(WebCore::MediaPlayerPrivateGStreamer::notifyPlayerOfAudio):
(WebCore::MediaPlayerPrivateGStreamer::notifyPlayerOfText):
(WebCore::MediaPlayerPrivateGStreamer::platformDuration const):
(WebCore::MediaPlayerPrivateGStreamer::isMuted const):
(WebCore::MediaPlayerPrivateGStreamer::commitLoad):
(WebCore::MediaPlayerPrivateGStreamer::fillTimerFired):
(WebCore::MediaPlayerPrivateGStreamer::loadingFailed):
(WebCore::MediaPlayerPrivateGStreamer::playbackPosition const):
(WebCore::MediaPlayerPrivateGStreamer::enableTrack):
(WebCore::MediaPlayerPrivateGStreamer::updateTracks):
(WebCore::MediaPlayerPrivateGStreamer::handleSyncMessage):
(WebCore::MediaPlayerPrivateGStreamer::naturalSize const):
(WebCore::MediaPlayerPrivateGStreamer::setMuted):
(WebCore::MediaPlayerPrivateGStreamer::handleMessage):
(WebCore::MediaPlayerPrivateGStreamer::updateBufferingStatus):
(WebCore::MediaPlayerPrivateGStreamer::processMpegTsSection):
(WebCore::MediaPlayerPrivateGStreamer::processTableOfContentsEntry):
(WebCore::MediaPlayerPrivateGStreamer::asyncStateChangeDone):
(WebCore::MediaPlayerPrivateGStreamer::updateStates):
(WebCore::MediaPlayerPrivateGStreamer::loadNextLocation):
(WebCore::MediaPlayerPrivateGStreamer::didEnd):
(WebCore::MediaPlayerPrivateGStreamer::updateDownloadBufferingFlag):
(WebCore::MediaPlayerPrivateGStreamer::createGSTPlayBin):
(WebCore::MediaPlayerPrivateGStreamer::canSaveMediaData const):
(WebCore::MediaPlayerPrivateGStreamer::acceleratedRenderingStateChanged):
(WebCore::MediaPlayerPrivateGStreamer::pushTextureToCompositor):
(WebCore::MediaPlayerPrivateGStreamer::triggerRepaint):
(WebCore::MediaPlayerPrivateGStreamer::cancelRepaint):
(WebCore::MediaPlayerPrivateGStreamer::paint):
(WebCore::MediaPlayerPrivateGStreamer::copyVideoTextureToPlatformTexture):
(WebCore::MediaPlayerPrivateGStreamer::nativeImageForCurrentTime):
(WebCore::MediaPlayerPrivateGStreamer::movieLoadType const):
(WebCore::MediaPlayerPrivateGStreamer::createVideoSink):
(WebCore::MediaPlayerPrivateGStreamer::decodedFrameCount const):
(WebCore::MediaPlayerPrivateGStreamer::droppedFrameCount const):
(WebCore::MediaPlayerPrivateGStreamer::attemptToDecryptWithLocalInstance):
(WebCore::MediaPlayerPrivateGStreamer::setWaitingForKey):
(WebCore::MediaPlayerPrivateGStreamer::initializeDebugCategory): Deleted.
(WebCore::MediaPlayerPrivateGStreamer::sizeChanged): Deleted.
(WebCore::MediaPlayerPrivateGStreamer::muted const): Deleted.

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:

(WebCore::MediaPlayerPrivateGStreamer::pipeline const):
(WebCore::MediaPlayerPrivateGStreamer::mediaPlayer const): Deleted.
(WebCore::MediaPlayerPrivateGStreamer::isLiveStream const): Deleted.

  • platform/graphics/gstreamer/mse/MediaPlayerPrivateGStreamerMSE.cpp:

(WebCore::MediaPlayerPrivateGStreamerMSE::pause):
(WebCore::MediaPlayerPrivateGStreamerMSE::durationMediaTime const):
(WebCore::MediaPlayerPrivateGStreamerMSE::seek):
(WebCore::MediaPlayerPrivateGStreamerMSE::doSeek):
(WebCore::MediaPlayerPrivateGStreamerMSE::maybeFinishSeek):
(WebCore::MediaPlayerPrivateGStreamerMSE::seeking const):
(WebCore::MediaPlayerPrivateGStreamerMSE::waitForSeekCompleted):
(WebCore::MediaPlayerPrivateGStreamerMSE::updateStates):
(WebCore::MediaPlayerPrivateGStreamerMSE::asyncStateChangeDone):
(WebCore::MediaPlayerPrivateGStreamerMSE::maxMediaTimeSeekable const):

  • platform/graphics/gstreamer/mse/MediaPlayerPrivateGStreamerMSE.h:
  • platform/graphics/gstreamer/mse/MediaSourceClientGStreamerMSE.cpp:

(WebCore::MediaSourceClientGStreamerMSE::flush):

Nov 28, 2019:

10:53 PM Changeset in webkit [252936] by Fujii Hironori
  • 27 edits in trunk

Remove ENABLE_KEYBOARD_CODE_ATTRIBUTE and ENABLE_KEYBOARD_KEY_ATTRIBUTE macros
https://bugs.webkit.org/show_bug.cgi?id=204666

.:

Reviewed by Ross Kirsling and Don Olmstead.

  • Source/cmake/OptionsFTW.cmake:
  • Source/cmake/OptionsMac.cmake:
  • Source/cmake/WebKitFeatures.cmake:

Source/JavaScriptCore:

Reviewed by Ross Kirsling and Don Olmstead.

  • Configurations/FeatureDefines.xcconfig:

Source/WebCore:

Reviewed by Ross Kirsling and Don Olmstead.

No behavior change.

  • Configurations/FeatureDefines.xcconfig:
  • dom/KeyboardEvent.cpp:

(WebCore::KeyboardEvent::KeyboardEvent):
(WebCore::KeyboardEvent::initKeyboardEvent):

  • dom/KeyboardEvent.h:
  • dom/KeyboardEvent.idl:
  • platform/PlatformKeyboardEvent.h:

(WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):
(WebCore::PlatformKeyboardEvent::keyIdentifier const):
(WebCore::PlatformKeyboardEvent::key const):
(WebCore::PlatformKeyboardEvent::code const):

Source/WebCore/PAL:

Reviewed by Ross Kirsling and Don Olmstead.

  • Configurations/FeatureDefines.xcconfig:

Source/WebKit:

No behavior change.

  • Configurations/FeatureDefines.xcconfig:
  • Shared/WebEvent.h:

(WebKit::WebKeyboardEvent::unmodifiedText const):
(WebKit::WebKeyboardEvent::key const):
(WebKit::WebKeyboardEvent::code const):

  • Shared/WebEventConversion.cpp:

(WebKit::WebKit2PlatformKeyboardEvent::WebKit2PlatformKeyboardEvent):

  • Shared/WebKeyboardEvent.cpp:

(WebKit::WebKeyboardEvent::WebKeyboardEvent):
(WebKit::WebKeyboardEvent::encode const):
(WebKit::WebKeyboardEvent::decode):

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::generateSyntheticEditingCommand):

Source/WebKitLegacy/mac:

Reviewed by Ross Kirsling and Don Olmstead.

  • Configurations/FeatureDefines.xcconfig:

Source/WTF:

Reviewed by Ross Kirsling and Don Olmstead.

  • wtf/FeatureDefines.h:

Tools:

Reviewed by Ross Kirsling and Don Olmstead.

  • Scripts/webkitperl/FeatureList.pm:
  • TestWebKitAPI/Configurations/FeatureDefines.xcconfig:
10:27 PM Changeset in webkit [252935] by Simon Fraser
  • 13 edits
    2 adds in trunk

Element jumps to wrong position after perspective change on ancestor
https://bugs.webkit.org/show_bug.cgi?id=202505
<rdar://problem/55930710>

Reviewed by Antti Koivisto.
Source/WebCore:

This modifies the fix in r252879 to be better-performing and to avoid a new call site for updateLayerPositions*.

Style can change in a way that creates or destroys RenderLayers, but does not result in a layout; this can happen
with changes of properties like opacity or perspective. When this happens, something needs to trigger a call to
RenderLayer::updateLayerPositions() on the root of the changed subtree. This is best done after the style update,
to avoid multiple updateLayerPositions traversals.

Implement this by storing on RenderView the rootmost changed layer, and having FrameView::styleDidChange()
call updateLayerPositionsAfterStyleChange() if we're after a style change with no pending layout.

Test: compositing/geometry/layer-position-after-removing-perspective.html

  • page/FrameView.cpp:

(WebCore::FrameView::styleDidChange):

  • page/FrameView.h:
  • platform/ScrollView.h:
  • rendering/RenderElement.cpp:

(WebCore::RenderElement::didAttachChild):

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::insertOnlyThisLayer):
(WebCore::RenderLayer::removeOnlyThisLayer):
(WebCore::findCommonAncestor):
(WebCore::RenderLayer::commonAncestorWithLayer const):

  • rendering/RenderLayer.h:
  • rendering/RenderLayerModelObject.cpp:

(WebCore::RenderLayerModelObject::createLayer):
(WebCore::RenderLayerModelObject::styleDidChange):

  • rendering/RenderView.cpp:

(WebCore::RenderView::layerChildrenChangedDuringStyleChange):
(WebCore::RenderView::takeStyleChangeLayerTreeMutationRoot):

  • rendering/RenderView.h:

LayoutTests:

  • compositing/geometry/layer-position-after-removing-perspective-expected.html: Added.
  • compositing/geometry/layer-position-after-removing-perspective.html: Added.
  • css3/blending/repaint/blend-mode-isolate-stacking-context-expected.txt: Rebaselined.
1:30 PM Changeset in webkit [252934] by Jonathan Bedard
  • 2 edits in trunk/LayoutTests

[WebGL] Garden dedicated queue (Part 10)
https://bugs.webkit.org/show_bug.cgi?id=204547

Unreviewed test gardening.

  • webgl/TestExpectations:
12:12 PM Changeset in webkit [252933] by aakash_jain@apple.com
  • 2 edits in trunk/Tools

Rename 'submit to new EWS' to 'Submit for EWS analysis'
https://bugs.webkit.org/show_bug.cgi?id=204692

Unreviewed minor fix.

  • BuildSlaveSupport/ews-app/ews/templates/statusbubble.html:
12:06 PM Changeset in webkit [252932] by Antti Koivisto
  • 4 edits in trunk/Source/WebCore

[LFC][IFC] Remove m_inlineRunToLineMap
https://bugs.webkit.org/show_bug.cgi?id=204688

Reviewed by Zalan Bujtas.

Add line index to Display::Run and use it to locate the line it is on.

This is 4-5% progression in PerformanceTests/Layout/line-layout-simple.html

  • layout/displaytree/DisplayRun.h:

(WebCore::Display::Run::lineIndex const):
(WebCore::Display::Run::Run):

  • layout/inlineformatting/InlineFormattingContext.cpp:

(WebCore::Layout::InlineFormattingContext::setDisplayBoxesForLine):

  • layout/inlineformatting/InlineFormattingState.h:

(WebCore::Layout::InlineFormattingState::lineBoxForRun const):
(WebCore::Layout::InlineFormattingState::addInlineRun):
(WebCore::Layout::InlineFormattingState::resetInlineRuns):

11:45 AM Changeset in webkit [252931] by aakash_jain@apple.com
  • 2 edits in trunk/Tools

Old EWS is showing 'Submit to old EWS' button on every patch
https://bugs.webkit.org/show_bug.cgi?id=204691

Unreviewed minor fix.

  • QueueStatusServer/handlers/statusbubble.py:

(StatusBubble.get): Disabled Submit to old EWS button since almost all the queues
have been removed from old EWS.

8:54 AM Changeset in webkit [252930] by Diego Pino Garcia
  • 2 edits in trunk/Tools

test262-runner ends with SIGPIPE signal
https://bugs.webkit.org/show_bug.cgi?id=194816

Reviewed by Carlos Alberto Lopez Perez.

  • Scripts/test262/Runner.pm:

(main):

8:26 AM Changeset in webkit [252929] by Jonathan Bedard
  • 2 edits in trunk/LayoutTests

[WebGL] Garden dedicated queue (Part 9)
https://bugs.webkit.org/show_bug.cgi?id=204547

Unreviewed test gardening.

  • webgl/TestExpectations:
8:06 AM Changeset in webkit [252928] by Antti Koivisto
  • 3 edits in trunk/Source/WebCore

[LFC][IFC] Vector allocate InlineItemRuns
https://bugs.webkit.org/show_bug.cgi?id=204680

Reviewed by Zalan Bujtas.

Reduce heap allocations during inline layout.

This is ~15% speedup in PerformanceTests/Layout/line-layout-simple.html with LFC-in-render-tree enabled.
With other improvements it makes LFC path faster than simple line layout in this test.

  • layout/inlineformatting/InlineLineBuilder.cpp:

(WebCore::Layout::LineBuilder::ContinousContent::ContinousContent):
(WebCore::Layout::LineBuilder::ContinousContent::append):
(WebCore::Layout::LineBuilder::ContinousContent::close):

Move to LineBuilder namespace.

(WebCore::Layout::LineBuilder::close):
(WebCore::Layout::LineBuilder::removeTrailingTrimmableContent):
(WebCore::Layout::LineBuilder::appendNonBreakableSpace):
(WebCore::Layout::LineBuilder::appendTextContent):
(WebCore::Layout::LineBuilder::appendNonReplacedInlineBox):
(WebCore::Layout::LineBuilder::appendLineBreak):
(WebCore::Layout::LineBuilder::TrimmableContent::append):
(WebCore::Layout::LineBuilder::formattingContext const):
(WebCore::Layout::LineBuilder::InlineItemRun::InlineItemRun):
(WebCore::Layout::LineBuilder::InlineItemRun::setCollapsesToZeroAdvanceWidth):
(WebCore::Layout::InlineItemRun::layoutBox const): Deleted.
(WebCore::Layout::InlineItemRun::logicalRect const): Deleted.
(WebCore::Layout::InlineItemRun::textContext const): Deleted.
(WebCore::Layout::InlineItemRun::isText const): Deleted.
(WebCore::Layout::InlineItemRun::isBox const): Deleted.
(WebCore::Layout::InlineItemRun::isContainerStart const): Deleted.
(WebCore::Layout::InlineItemRun::isContainerEnd const): Deleted.
(WebCore::Layout::InlineItemRun::isForcedLineBreak const): Deleted.
(WebCore::Layout::InlineItemRun::type const): Deleted.
(WebCore::Layout::InlineItemRun::setIsCollapsed): Deleted.
(WebCore::Layout::InlineItemRun::isCollapsed const): Deleted.
(WebCore::Layout::InlineItemRun::isCollapsedToZeroAdvanceWidth const): Deleted.
(WebCore::Layout::InlineItemRun::isCollapsible const): Deleted.
(WebCore::Layout::InlineItemRun::isWhitespace const): Deleted.
(WebCore::Layout::InlineItemRun::hasExpansionOpportunity const): Deleted.
(WebCore::Layout::InlineItemRun::InlineItemRun): Deleted.
(WebCore::Layout::InlineItemRun::setCollapsesToZeroAdvanceWidth): Deleted.

Move InlineItemRun to header in LineBuilder namespace so we can use directly in m_inlineItemRuns vector.

(WebCore::Layout::ContinousContent::canBeExpanded): Deleted.
(WebCore::Layout::ContinousContent::canBeMerged const): Deleted.
(WebCore::Layout::ContinousContent::ContinousContent): Deleted.
(WebCore::Layout::ContinousContent::append): Deleted.
(WebCore::Layout::ContinousContent::close): Deleted.

  • layout/inlineformatting/InlineLineBuilder.h:

(WebCore::Layout::LineBuilder::InlineItemRun::layoutBox const):
(WebCore::Layout::LineBuilder::InlineItemRun::logicalRect const):
(WebCore::Layout::LineBuilder::InlineItemRun::textContext const):
(WebCore::Layout::LineBuilder::InlineItemRun::isText const):
(WebCore::Layout::LineBuilder::InlineItemRun::isBox const):
(WebCore::Layout::LineBuilder::InlineItemRun::isContainerStart const):
(WebCore::Layout::LineBuilder::InlineItemRun::isContainerEnd const):
(WebCore::Layout::LineBuilder::InlineItemRun::isForcedLineBreak const):
(WebCore::Layout::LineBuilder::InlineItemRun::type const):
(WebCore::Layout::LineBuilder::InlineItemRun::setIsCollapsed):
(WebCore::Layout::LineBuilder::InlineItemRun::isCollapsed const):
(WebCore::Layout::LineBuilder::InlineItemRun::isCollapsedToZeroAdvanceWidth const):
(WebCore::Layout::LineBuilder::InlineItemRun::isCollapsible const):
(WebCore::Layout::LineBuilder::InlineItemRun::isWhitespace const):
(WebCore::Layout::LineBuilder::InlineItemRun::hasExpansionOpportunity const):
(WebCore::Layout::LineBuilder::TrimmableContent::runIndexes):

Make TrimmableContent collect indexes to InlineItemRun vector instead of pointer.
We only ever append to the vector so the indexes stay valid for TrimmableContent lifetime.

(WebCore::Layout::LineBuilder::TrimmableContent::isEmpty const):
(WebCore::Layout::LineBuilder::TrimmableContent::clear):
(WebCore::Layout::LineBuilder::TrimmableContent::runs): Deleted.

8:03 AM Changeset in webkit [252927] by Antti Koivisto
  • 2 edits in trunk/Source/WebCore

Cache integer font metrics for performance
https://bugs.webkit.org/show_bug.cgi?id=204668

Reviewed by Zalan Bujtas.

Line layout uses integer metrics and queries them a lot. Avoid repeated rounding.

This is >10% speedup in PerformanceTests/Layout/line-layout-simple.html with LFC.

  • platform/graphics/FontMetrics.h:

(WebCore::FontMetrics::floatAscent const):
(WebCore::FontMetrics::setAscent):
(WebCore::FontMetrics::floatDescent const):
(WebCore::FontMetrics::setDescent):
(WebCore::FontMetrics::floatLineGap const):
(WebCore::FontMetrics::setLineGap):
(WebCore::FontMetrics::floatLineSpacing const):
(WebCore::FontMetrics::setLineSpacing):
(WebCore::FontMetrics::hasCapHeight const):
(WebCore::FontMetrics::floatCapHeight const):
(WebCore::FontMetrics::setCapHeight):
(WebCore::FontMetrics::ascent const):
(WebCore::FontMetrics::descent const):
(WebCore::FontMetrics::lineGap const):
(WebCore::FontMetrics::lineSpacing const):
(WebCore::FontMetrics::capHeight const):
(WebCore::FontMetrics::reset):

8:03 AM Changeset in webkit [252926] by aakash_jain@apple.com
  • 2 edits in trunk/Tools

Removed ENABLED_QUEUES logic from ews-app
https://bugs.webkit.org/show_bug.cgi?id=204683

Unreviewed minor fix.

  • BuildSlaveSupport/ews-app/ews/views/statusbubble.py:

(StatusBubble): Removed ENABLED_QUEUES.
(StatusBubble._build_bubbles_for_patch):
(StatusBubble._should_show_bubble_for_queue): Deleted.

7:43 AM Changeset in webkit [252925] by aakash_jain@apple.com
  • 5 edits in trunk/Tools

[ews] Enable Windows queue on new EWS
https://bugs.webkit.org/show_bug.cgi?id=204243

Reviewed by Jonathan Bedard.

  • BuildSlaveSupport/ews-app/ews/views/statusbubble.py: Enabled windows queue bubble on new EWS.
  • BuildSlaveSupport/ews-build/config.json: Enabled the scheduler for windows queue. Removed the disabled Try_Userpass scheduler.
  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/BubbleQueueServer.js:

(BubbleQueueServer): Removed windows ews queue from bot-watcher's dashboard.

  • QueueStatusServer/config/queues.py: Removed windows queue from old EWS.
6:49 AM Changeset in webkit [252924] by Alan Bujtas
  • 4 edits in trunk/Source/WebCore

[LFC][IFC] Adjust the line's is-visually-empty status after trimming the trailing whitespace content
https://bugs.webkit.org/show_bug.cgi?id=204660
<rdar://problem/57513035>

Reviewed by Antti Koivisto.

We need to check if the line is still visually empty after trimming the trailing content.

  • layout/inlineformatting/InlineLineBox.h:

(WebCore::Layout::LineBox::setIsConsideredEmpty):

  • layout/inlineformatting/InlineLineBuilder.cpp:

(WebCore::Layout::LineBuilder::removeTrailingTrimmableContent):
(WebCore::Layout::LineBuilder::appendTextContent):

  • layout/inlineformatting/InlineLineBuilder.h:
6:44 AM Changeset in webkit [252923] by Alan Bujtas
  • 3 edits in trunk/Source/WebCore

[LFC][IFC] Re-introduce LineBuilder::isVisuallyNonEmpty function
https://bugs.webkit.org/show_bug.cgi?id=204658
<rdar://problem/57512248>

Reviewed by Antti Koivisto.

LineBuilder::isVisuallyNonEmpty() used to loop through the runs an check if the runs are visually empty or not.
This time it takes the run as the parameter and decides whether this particular run is visually empty or not.
This patch is in preparation for fixing the line's visually-empty state after trimming the trailing runs.

  • layout/inlineformatting/InlineLineBuilder.cpp:

(WebCore::Layout::LineBuilder::append):
(WebCore::Layout::LineBuilder::appendNonBreakableSpace):
(WebCore::Layout::LineBuilder::appendTextContent):
(WebCore::Layout::LineBuilder::appendNonReplacedInlineBox):
(WebCore::Layout::LineBuilder::appendReplacedInlineBox):
(WebCore::Layout::LineBuilder::appendLineBreak):
(WebCore::Layout::LineBuilder::isVisuallyNonEmpty const):

  • layout/inlineformatting/InlineLineBuilder.h:
6:34 AM Changeset in webkit [252922] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[LFC][IFC] adjustBaselineAndLineHeight should be called before resetting the line in quirk mode
https://bugs.webkit.org/show_bug.cgi?id=204662
<rdar://problem/57513178>

Reviewed by Antti Koivisto.

  • layout/inlineformatting/InlineLineBuilder.cpp:

(WebCore::Layout::LineBuilder::close):
(WebCore::Layout::LineBuilder::alignContentVertically):

6:24 AM Changeset in webkit [252921] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[LFC][IFC] Fix LineLayoutContext::shouldProcessUncommittedContent logic
https://bugs.webkit.org/show_bug.cgi?id=204656
<rdar://problem/57511221>

Reviewed by Antti Koivisto.

Move the [text][text] and [ ][text] checks further down because we adjust the "lastUncomittedContent" by skipping [container start][container end] items.
(This was recently regressed at r252859)

  • layout/inlineformatting/LineLayoutContext.cpp:

(WebCore::Layout::LineLayoutContext::shouldProcessUncommittedContent const):

6:22 AM Changeset in webkit [252920] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[LFC] canUseSimplifiedTextMeasuring should check for FontCascade::Complex
https://bugs.webkit.org/show_bug.cgi?id=204663
<rdar://problem/57513642>

Reviewed by Antti Koivisto.

  • layout/layouttree/LayoutTreeBuilder.cpp:

(WebCore::Layout::canUseSimplifiedTextMeasuring):

4:57 AM Changeset in webkit [252919] by magomez@igalia.com
  • 3 edits
    17 adds in trunk/LayoutTests

Unreviewed GTK and WPE gardening after r252916.

  • platform/gtk/TestExpectations:
  • platform/gtk/css3/blending/svg-blend-hard-light-expected.txt: Added.
  • platform/gtk/imported/w3c/web-platform-tests/svg/import/paths-data-18-f-manual-expected.txt: Added.
  • platform/gtk/imported/w3c/web-platform-tests/svg/import/paths-data-20-f-manual-expected.txt: Added.
  • platform/gtk/imported/w3c/web-platform-tests/svg/import/shapes-polygon-03-t-manual-expected.txt: Added.
  • platform/gtk/imported/w3c/web-platform-tests/svg/import/struct-dom-07-f-manual-expected.txt: Added.
  • platform/gtk/imported/w3c/web-platform-tests/svg/import/struct-svg-02-f-manual-expected.txt: Added.
  • platform/gtk/imported/w3c/web-platform-tests/svg/import/svgdom-over-01-f-manual-expected.txt: Added.
  • platform/gtk/imported/w3c/web-platform-tests/svg/path/bearing/absolute-expected.txt: Added.
  • platform/gtk/imported/w3c/web-platform-tests/svg/path/bearing/relative-expected.txt: Added.
  • platform/gtk/imported/w3c/web-platform-tests/svg/path/bearing/zero-expected.txt: Added.
  • platform/gtk/imported/w3c/web-platform-tests/svg/path/closepath/segment-completing-expected.txt: Added.
  • platform/gtk/imported/w3c/web-platform-tests/svg/path/error-handling/render-until-error-expected.txt: Added.
  • platform/gtk/imported/w3c/web-platform-tests/svg/shapes/reftests/disabled-shapes-01-expected.txt: Added.
  • platform/gtk/imported/w3c/web-platform-tests/svg/text/visualtests/text-inline-size-001-visual-expected.txt: Added.
  • platform/wpe/TestExpectations:
4:52 AM Changeset in webkit [252918] by Philippe Normand
  • 3 edits in trunk/Source/WebCore

[GStreamer] Convert GLVideoSink and WebKitWebSrc to WEBKIT_DEFINE_TYPE
https://bugs.webkit.org/show_bug.cgi?id=204674

Reviewed by Carlos Garcia Campos.

This is mostly a refactoring, simplifying the code-base a bit.

  • platform/graphics/gstreamer/GLVideoSinkGStreamer.cpp:

(webKitGLVideoSinkConstructed):
(webKitGLVideoSinkFinalize):
(webkit_gl_video_sink_class_init):

  • platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:

(webkit_web_src_class_init):
(webKitWebSrcConstructed):

2:08 AM Changeset in webkit [252917] by Philippe Normand
  • 10 edits
    2 adds in trunk

[GStreamer] Move GL video sink to its own GstBin sub-class
https://bugs.webkit.org/show_bug.cgi?id=204624

Reviewed by Xabier Rodriguez-Calvar.

Source/WebCore:

This reduces the MediaPlayerPrivate code-base and adds a good
separation of responsibility regarding GL video rendering. The
TextureCopier remains in the player because it's too specific.

  • platform/GStreamer.cmake:
  • platform/graphics/gstreamer/GLVideoSinkGStreamer.cpp: Added.

(webkit_gl_video_sink_init):
(webKitGLVideoSinkFinalize):
(ensureGstGLContext):
(requestGLContext):
(webKitGLVideoSinkChangeState):
(webkit_gl_video_sink_class_init):
(webKitGLVideoSinkSetMediaPlayerPrivate):
(webKitGLVideoSinkProbePlatform):

  • platform/graphics/gstreamer/GLVideoSinkGStreamer.h: Added.
  • platform/graphics/gstreamer/GStreamerCommon.cpp:

(WebCore::initializeGStreamerAndRegisterWebKitElements):

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:

(WebCore::MediaPlayerPrivateGStreamer::load):
(WebCore::MediaPlayerPrivateGStreamer::changePipelineState):
(WebCore::MediaPlayerPrivateGStreamer::handleSyncMessage):
(WebCore::MediaPlayerPrivateGStreamer::createVideoSinkGL):

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:

Tools:

  • Scripts/webkitpy/style/checker.py: White-list the new GLVideoSinkGStreamer GObject implementation.

Nov 27, 2019:

9:22 PM Changeset in webkit [252916] by Alan Bujtas
  • 2 edits in trunk/Tools

[LFC] Unreviewed test gardening.

  • LayoutReloaded/misc/LFC-passing-tests.txt: These tests were passing accidentally.
6:34 PM Changeset in webkit [252915] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[LFC][IFC] Generate fewer InlineItems when new lines are not preserved
https://bugs.webkit.org/show_bug.cgi?id=204653
<rdar://problem/57510133>

Reviewed by Antti Koivisto.

This patch reduces the number of InlineItems by merging (non-preserved)new lines with neighboring whitespace characters.
[text\n\n text] -> [text][ ][text]

  • layout/inlineformatting/InlineTextItem.cpp:

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

3:26 PM Changeset in webkit [252914] by Jonathan Bedard
  • 2 edits in trunk/LayoutTests

[WebGL] Garden dedicated queue (Part 8)
https://bugs.webkit.org/show_bug.cgi?id=204547

Unreviewed test gardening.

  • webgl/TestExpectations:
3:07 PM Changeset in webkit [252913] by Manuel Rego Casasnovas
  • 3 edits in trunk/Source/WebCore

Using char* instead of String for StyleProperties::getShorthandValue()
https://bugs.webkit.org/show_bug.cgi?id=204644

Reviewed by Darin Adler.

This is follow-up patch for r252901. We don't need to create a String object
just for the separator and can use char* instead.
This was suggested by Darin Adler in webkit.org/b/204508.

  • css/StyleProperties.cpp:

(WebCore::StyleProperties::getShorthandValue const):

  • css/StyleProperties.h:
1:41 PM Changeset in webkit [252912] by Alan Bujtas
  • 5 edits in trunk/Source/WebCore

[LFC] Run layout on the root when InvalidationState is empty.
https://bugs.webkit.org/show_bug.cgi?id=204651
<rdar://problem/57509616>

Reviewed by Antti Koivisto.

InvalidationState captures style/tree mutation related changes. An empty InvalidationState indicates that the horizontal constraint changed
and we need to initiate a layout on the ICB (and the layout logic will propagate the damage down on the tree).

  • layout/LayoutContext.cpp:

(WebCore::Layout::LayoutContext::layout):

  • layout/RenderBlockFlowLineLayout.cpp:

(WebCore::Layout::RenderBlockFlowLineLayout::layout):

  • layout/layouttree/LayoutTreeBuilder.cpp:

(WebCore::Layout::printLayoutTreeForLiveDocuments):

  • page/FrameViewLayoutContext.cpp:

(WebCore::FrameViewLayoutContext::layoutUsingFormattingContext):

11:38 AM Changeset in webkit [252911] by graouts@webkit.org
  • 15 edits
    1 delete in trunk

REGRESSION(r252455): imported/w3c/web-platform-tests/dom/events/Event-dispatch-on-disabled-elements.html fails on iOS and WK1
https://bugs.webkit.org/show_bug.cgi?id=204272
<rdar://problem/57253742>

Reviewed by Dean Jackson.

Source/WebCore:

Events for declarative animations are dispatched using a MainThreadGenericEventQueue which dispatches enqueued events asynchronously. When a declarative
animation would be canceled, AnimationTimeline::cancelDeclarativeAnimation() would be called and would enqueue a "transitioncancel" or "animationcancel"
event (depending on the animation type) by virtue of calling DeclarativeAnimation::cancelFromStyle(), and would also call AnimationTimeline::removeAnimation()
right after. However, calling AnimationTimeline::removeAnimation() could have the side effect of removing the last reference to the DeclarativeAnimation
object, which would destroy its attached MainThreadGenericEventQueue before it had the time to dispatch the queued "transitioncancel" or "animationcancel"
event.

The call to AnimationTimeline::removeAnimation() in AnimationTimeline::cancelDeclarativeAnimation() is actually unnecessary. Simply canceling the animation
via DeclarativeAnimation::cancelFromStyle() will end up calling AnimationTimeline::removeAnimation() the next time animations are updated, which will leave
time for the cancel events to be dispatched. So all we need to do is remove AnimationTimeline::cancelDeclarativeAnimation() and replace its call sites with
simple calls to DeclarativeAnimation::cancelFromStyle().

Making this change broke a test however: imported/w3c/web-platform-tests/css/css-animations/Document-getAnimations.tentative.html. We actually passed that
test by chance without implementing the feature required to make it work. We now implement the correct way to track a global position for an animation by
only setting one for declarative animations once they are disassociated with their owning element and have a non-idle play state.

And a few other tests broke: animations/animation-shorthand-name-order.html, imported/w3c/web-platform-tests/css/css-animations/animationevent-types.html
and webanimations/css-animations.html. The reason for those tests being broken was that not calling AnimationTimeline::removeAnimation() instantly as CSS
Animations were canceled also meant that the KeyframeEffectStack for the targeted element wasn't updated. To solve this, we added the animationTimingDidChange()
method on KeyframeEffect which is called whenever timing on the owning Animation changes, so for instance when cancel() is called as we cancel a CSS
Animation. That way we ensure we add and remove KeyframeEffect instances from the KeyframeEffectStack as the animation becomes relevant, which is now
an added condition checked by KeyframeEffectStack::addEffect().

Finally, this revealed an issue in KeyframeEffectStack::ensureEffectsAreSorted() where we would consider CSSTransition and CSSAnimation objects to be
representative of a CSS Transition or CSS Animation even after the relationship with their owning element had been severed. We now correctly check that
relationship is intact and otherwise consider those animations just like any other animation.

  • animation/AnimationTimeline.cpp:

(WebCore::AnimationTimeline::animationTimingDidChange):
(WebCore::AnimationTimeline::updateGlobalPosition):
(WebCore::AnimationTimeline::removeDeclarativeAnimationFromListsForOwningElement):
(WebCore::AnimationTimeline::updateCSSAnimationsForElement):
(WebCore::AnimationTimeline::updateCSSTransitionsForElementAndProperty):
(WebCore::AnimationTimeline::updateCSSTransitionsForElement):
(WebCore::AnimationTimeline::cancelDeclarativeAnimation): Deleted.

  • animation/AnimationTimeline.h:
  • animation/CSSAnimation.cpp:

(WebCore::CSSAnimation::syncPropertiesWithBackingAnimation):

  • animation/CSSTransition.cpp:

(WebCore::CSSTransition::setTimingProperties):

  • animation/DeclarativeAnimation.cpp:

(WebCore::DeclarativeAnimation::canHaveGlobalPosition):

  • animation/DeclarativeAnimation.h:
  • animation/DocumentTimeline.cpp:

(WebCore::DocumentTimeline::getAnimations const):

  • animation/KeyframeEffect.cpp:

(WebCore::KeyframeEffect::animationTimelineDidChange):
(WebCore::KeyframeEffect::animationTimingDidChange):
(WebCore::KeyframeEffect::updateEffectStackMembership):
(WebCore::KeyframeEffect::setAnimation):
(WebCore::KeyframeEffect::setTarget):

  • animation/KeyframeEffect.h:
  • animation/KeyframeEffectStack.cpp:

(WebCore::KeyframeEffectStack::addEffect):
(WebCore::KeyframeEffectStack::ensureEffectsAreSorted):

  • animation/KeyframeEffectStack.h:
  • animation/WebAnimation.cpp:

(WebCore::WebAnimation::timingDidChange):

  • animation/WebAnimation.h:

(WebCore::WebAnimation::canHaveGlobalPosition):

LayoutTests:

Removing this specific expectation for WK1 since it now behaves just like the other configurations.

  • platform/mac-wk1/imported/w3c/web-platform-tests/dom/events/Event-dispatch-on-disabled-elements-expected.txt: Removed.
11:20 AM Changeset in webkit [252910] by Jonathan Bedard
  • 2 edits in trunk/LayoutTests

[WebGL] Garden dedicated queue (Part 7)
https://bugs.webkit.org/show_bug.cgi?id=204547

Unreviewed test gardening.

  • webgl/TestExpectations:
10:59 AM Changeset in webkit [252909] by commit-queue@webkit.org
  • 4 edits in trunk/Source/WebCore

Enable GPU switching with ANGLE
https://bugs.webkit.org/show_bug.cgi?id=203916

This enables the same GPU switching code that we use with OpenGL on ANGLE
contexts. ANGLE contexts can now be switched to the high power GPU.

Patch by James Darpinian <James Darpinian> on 2019-11-27
Reviewed by Dean Jackson.

  • platform/graphics/GraphicsContext3D.h:
  • platform/graphics/GraphicsContext3DManager.cpp:

(WebCore::GraphicsContext3DManager::updateAllContexts):

  • platform/graphics/cocoa/GraphicsContext3DCocoa.mm:

(WebCore::setGPUByRegistryID):
(WebCore::GraphicsContext3D::GraphicsContext3D):
(WebCore::GraphicsContext3D::updateCGLContext):
(WebCore::GraphicsContext3D::screenDidChange):

9:53 AM Changeset in webkit [252908] by Philippe Normand
  • 2 edits in trunk/Source/WebKit

[GTK][WebInspector] Use CString to store exported data
https://bugs.webkit.org/show_bug.cgi?id=204623

Reviewed by Carlos Garcia Campos.

  • UIProcess/gtk/WebInspectorProxyGtk.cpp:

(WebKit::WebInspectorProxy::platformSave): Use a CString for copy-on-write assignment.

9:11 AM Changeset in webkit [252907] by Antti Koivisto
  • 2 edits in trunk/Source/WebCore

[LFC][Render tree] PerformanceTests/Layout/line-layout-simple.html does not update properly with LFC enabled
https://bugs.webkit.org/show_bug.cgi?id=204646

Reviewed by Zalan Bujtas.

  • rendering/RenderBlockFlow.cpp:

(WebCore::RenderBlockFlow::invalidateLineLayoutPath):

Destroy LFC layout here, for now.

9:01 AM Changeset in webkit [252906] by Antti Koivisto
  • 3 edits in trunk/Source/WebCore

[LFC][Render tree] RenderBlockFlow::ensureLineBoxes should work with lfc layout
https://bugs.webkit.org/show_bug.cgi?id=204633

Reviewed by Zalan Bujtas.

We need to be able to switch to linebox layout when needed.

  • rendering/RenderBlockFlow.cpp:

(WebCore::RenderBlockFlow::deleteLines):
(WebCore::RenderBlockFlow::invalidateLineLayoutPath):
(WebCore::RenderBlockFlow::ensureLineBoxes):

  • rendering/RenderBlockFlow.h:

(WebCore::RenderBlockFlow::hasLineLayout const):

Also switch to using WTF::Monostate as empty state.

8:54 AM Changeset in webkit [252905] by Antti Koivisto
  • 9 edits in trunk/Source/WebCore

[LFC] Make strings safe
https://bugs.webkit.org/show_bug.cgi?id=204645

Reviewed by Zalan Bujtas.

  • layout/displaytree/DisplayPainter.cpp:

(WebCore::Display::paintInlineContent):

  • layout/displaytree/DisplayRun.h:

(WebCore::Display::Run::TextContext::TextContext):
(WebCore::Display::Run::TextContext::content const):

  • Use String instead of StringView so the underlying StringImpl gets reffed.
  • Make it point the full content string instead of the current range so we don't create unncessary short strings.
  • Construct StringView on fly based on start/end.

(WebCore::Display::Run::setTextContext):
(WebCore::Display::Run::textContext const):
(WebCore::Display::Run::TextContext::expand):
(WebCore::Display::Run::textContext): Deleted.

  • layout/inlineformatting/InlineLineBuilder.cpp:

(WebCore::Layout::InlineItemRun::textContext const):
(WebCore::Layout::ContinousContent::close):
(WebCore::Layout::LineBuilder::appendTextContent):

  • layout/inlineformatting/InlineLineBuilder.h:

(WebCore::Layout::LineBuilder::Run::textContext const):

  • layout/layouttree/LayoutBox.cpp:

(WebCore::Layout::Box::Box):

  • layout/layouttree/LayoutBox.h:

(WebCore::Layout::Box::textContext const):

Use Optional<TextContext> since it is small

  • layout/layouttree/LayoutContainer.cpp:

(WebCore::Layout::Container::Container):

  • layout/layouttree/TextContext.h:

Use String instead of StringView so the underlying StringImpl gets reffed.

6:18 AM WPE/Releasing edited by alex
(diff)
6:03 AM Changeset in webkit [252904] by alex
  • 1 copy in releases/WPE WebKit/webkit-2.27.3

WPE Webkit 2.27.3

4:50 AM Changeset in webkit [252903] by Nikolas Zimmermann
  • 2 edits in trunk/LayoutTests

Update test expectations for GTK port

Unreviewed test gardening.

  • platform/gtk/TestExpectations:
4:48 AM Changeset in webkit [252902] by alex
  • 4 edits in trunk

Unreviewed. Update OptionsWPE.cmake and NEWS for the 2.27.3 release

.:

  • Source/cmake/OptionsWPE.cmake: Bump version numbers.

Source/WebKit:

  • wpe/NEWS: Add release notes for 2.27.3.
4:44 AM Changeset in webkit [252901] by Manuel Rego Casasnovas
  • 8 edits in trunk

[css-grid] Serialization of grid-area, grid-row and grid-column should include "/" separator
https://bugs.webkit.org/show_bug.cgi?id=204508

Reviewed by Javier Fernandez.

LayoutTests/imported/w3c:

After this patch several test cases are passing.
There are still failures as the serialization is still not the right one in all the cases,
but this makes WebKit behave like Chromium for these shorthands.

  • web-platform-tests/css/css-grid/grid-layout-properties-expected.txt:
  • web-platform-tests/css/css-grid/parsing/grid-area-valid-expected.txt:
  • web-platform-tests/css/css-grid/parsing/grid-shorthand-valid-expected.txt:
  • web-platform-tests/css/css-grid/parsing/grid-template-shorthand-valid-expected.txt:

Source/WebCore:

Just use "/" separator instead of a white space when serializing the grid shorthands.
There are still failures because serialization of grid shorthands still needs some extra work
(see webkit.org/b/204611), however this change puts WebKit in the same status than Chromium
regarding this topic.

Several WPT test cases are passing thanks to this change.

  • css/StyleProperties.cpp:

(WebCore::StyleProperties::getPropertyValue const):
(WebCore::StyleProperties::getGridShorthandValue const):
(WebCore::StyleProperties::getShorthandValue const):

  • css/StyleProperties.h:
4:24 AM Changeset in webkit [252900] by Nikolas Zimmermann
  • 3 edits in trunk/LayoutTests

Update test expectations for GTK/WPE ports

Unreviewed test gardening.

Get rid of outdated expectations referring to not-existing tests, remove duplicates, etc.
Mark Gtk tests as passing that are reported by the bots to pas.

  • platform/gtk/TestExpectations:
  • platform/wpe/TestExpectations:
4:05 AM Changeset in webkit [252899] by Nikolas Zimmermann
  • 2 edits in trunk/LayoutTests

Update test expectations for WPE port

Unreviewed test gardening.

Get rid of outdated expectations referring to not-existing tests, remove duplicates, etc.

  • platform/wpe/TestExpectations:
2:19 AM Changeset in webkit [252898] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebKit

[GTK] WebDriver: moving toplevel windows is not supported under wayland
https://bugs.webkit.org/show_bug.cgi?id=204614

Reviewed by Alejandro G. Castro.

So we can stop trying and simply ignore the requests to move the window.

  • UIProcess/API/glib/WebKitUIClient.cpp:

(UIClient::windowConfigureEventCallback): Ensure we only move or resize when actually required and reduce the
time we wait for configure events to 200ms (1 second was too long).

12:55 AM Changeset in webkit [252897] by youenn@apple.com
  • 3 edits in trunk/Source/WebCore

Protect ServiceWorkerThreadProxy while being stopped
https://bugs.webkit.org/show_bug.cgi?id=204610
<rdar://problem/57476332>

Reviewed by Chris Dumez.

Reuse stop implementation in terminateWorker for stopAllServiceWorkers.
Move the worker map value from RefPtr to Ref.
Covered by existing tests no longer crashing.

  • workers/service/context/SWContextManager.cpp:

(WebCore::SWContextManager::terminateWorker):
(WebCore::SWContextManager::stopWorker):
(WebCore::SWContextManager::forEachServiceWorkerThread):
(WebCore::SWContextManager::stopAllServiceWorkers):

  • workers/service/context/SWContextManager.h:

Nov 26, 2019:

8:57 PM Changeset in webkit [252896] by Jonathan Bedard
  • 2 edits in trunk/LayoutTests

[WebGL] Garden dedicated queue (Part 6)
https://bugs.webkit.org/show_bug.cgi?id=204547

Unreviewed test gardening.

Remove duplicates, unicode character.

  • webgl/TestExpectations:
6:32 PM Changeset in webkit [252895] by Fujii Hironori
  • 2 edits in trunk/Tools

[AppleWin] run-webkit-tests is failing to find bin32/DumpRenderTree since r252834
https://bugs.webkit.org/show_bug.cgi?id=204571

Reviewed by Ross Kirsling.

  • BuildSlaveSupport/build.webkit.org-config/steps.py:

(RunWebKitTests.start): Replaced 'bin32' with 'bin64'.

5:53 PM Changeset in webkit [252894] by Chris Dumez
  • 13 edits in trunk

Drop ActiveDOMObject::shouldPreventEnteringBackForwardCache_DEPRECATED()
https://bugs.webkit.org/show_bug.cgi?id=204626

Reviewed by Ryosuke Niwa.

Source/WebCore:

Drop ActiveDOMObject::shouldPreventEnteringBackForwardCache_DEPRECATED() now that it is no longer
used.

  • dom/ActiveDOMObject.h:
  • dom/Document.h:

(WebCore::Document::shouldPreventEnteringBackForwardCacheForTesting const):
(WebCore::Document::preventEnteringBackForwardCacheForTesting):

  • dom/ScriptExecutionContext.cpp:

(WebCore::ScriptExecutionContext::forEachActiveDOMObject const):
(WebCore::ScriptExecutionContext::canSuspendActiveDOMObjectsForDocumentSuspension): Deleted.

  • dom/ScriptExecutionContext.h:
  • history/BackForwardCache.cpp:

(WebCore::canCacheFrame):

  • testing/Internals.cpp:

(WebCore::Internals::Internals):
(WebCore::Internals::preventDocumentFromEnteringBackForwardCache):
(WebCore::Internals::preventDocumentForEnteringBackForwardCache): Deleted.

  • testing/Internals.h:
  • testing/Internals.idl:

Source/WebKitLegacy/mac:

  • WebView/WebFrame.mm:

(-[WebFrame _cacheabilityDictionary]):

LayoutTests:

  • http/tests/security/navigate-when-restoring-cached-page.html:
12:15 PM Changeset in webkit [252893] by Antti Koivisto
  • 14 edits
    1 copy
    1 add in trunk/Source

[LFC][Render tree] Add LFC line layout path to RenderBlockFlow
https://bugs.webkit.org/show_bug.cgi?id=204613

Reviewed by Zalan Bujtas.

Source/WebCore:

Add a basic LFC line layout implementation for RenderBlockFlow.
It can layout lines and do simple painting but doesn't do anything else (like hit testing) yet.

Add a new layoutFormattingContextRenderTreeIntegrationEnabled feature flag, default to false.

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

(WebCore::Layout::RenderBlockFlowLineLayout::RenderBlockFlowLineLayout):
(WebCore::Layout::RenderBlockFlowLineLayout::canUseFor):
(WebCore::Layout::RenderBlockFlowLineLayout::layout):
(WebCore::Layout::RenderBlockFlowLineLayout::height const):
(WebCore::Layout::RenderBlockFlowLineLayout::paint):

  • layout/RenderBlockFlowLineLayout.h: Copied from Source/WebCore/layout/displaytree/DisplayPainter.h.
  • layout/displaytree/DisplayPainter.cpp:

(WebCore::Display::Painter::paintInlineFlow):

  • layout/displaytree/DisplayPainter.h:
  • layout/invalidation/InvalidationState.cpp:

(WebCore::Layout::InvalidationState::markNeedsUpdate):

  • layout/layouttree/LayoutTreeBuilder.cpp:

(WebCore::Layout::TreeBuilder::buildLayoutTree):

  • layout/layouttree/LayoutTreeBuilder.h:
  • page/RuntimeEnabledFeatures.h:

(WebCore::RuntimeEnabledFeatures::setLayoutFormattingContextRenderTreeIntegrationEnabled):
(WebCore::RuntimeEnabledFeatures::layoutFormattingContextRenderTreeIntegrationEnabled const):

  • rendering/RenderBlockFlow.cpp:

(WebCore::RenderBlockFlow::layoutInlineChildren):
(WebCore::RenderBlockFlow::addOverflowFromInlineChildren):
(WebCore::RenderBlockFlow::paintInlineChildren):
(WebCore::RenderBlockFlow::invalidateLineLayoutPath):
(WebCore::RenderBlockFlow::layoutSimpleLines):
(WebCore::RenderBlockFlow::layoutLFCLines):
(WebCore::RenderBlockFlow::deleteLineBoxesBeforeSimpleLineLayout):

  • rendering/RenderBlockFlow.h:

(WebCore::RenderBlockFlow::hasLFCLineLayout const):
(WebCore::RenderBlockFlow::lfcLineLayout const):
(WebCore::RenderBlockFlow::lfcLineLayout):

Source/WebKit:

  • Shared/WebPreferences.yaml:
  • WebProcess/InjectedBundle/InjectedBundle.cpp:

(WebKit::InjectedBundle::overrideBoolPreferenceForTestRunner):

11:44 AM Changeset in webkit [252892] by Jonathan Bedard
  • 2 edits in trunk/LayoutTests

[WebGL] Garden dedicated queue (Part 5)
https://bugs.webkit.org/show_bug.cgi?id=204547

Unreviewed test gardening.

  • webgl/TestExpectations:
10:28 AM Changeset in webkit [252891] by Antti Koivisto
  • 9 edits in trunk/Source/WebCore

Destroy linebox tree from ComplexLineLayout destructor
https://bugs.webkit.org/show_bug.cgi?id=204620

Reviewed by Zalan Bujtas.

Make linebox tree destuction simpler and more robust.

  • rendering/ComplexLineLayout.cpp:

(WebCore::ComplexLineLayout::~ComplexLineLayout):

Destroy linebox tree.

  • rendering/RenderBlockFlow.cpp:

(WebCore::RenderBlockFlow::deleteLines):

Always destroy the line layout.

(WebCore::RenderBlockFlow::layoutSimpleLines):
(WebCore::RenderBlockFlow::deleteLineBoxesBeforeSimpleLineLayout): Deleted.

No need for special path, ComplexLineLayout destruction takes care of this now.

  • rendering/RenderBlockFlow.h:
  • rendering/RenderLineBreak.cpp:

(WebCore::RenderLineBreak::deleteLineBoxesBeforeSimpleLineLayout): Deleted.

No need for special path, InlineBox destruction clears the pointers in associated RenderLineBreaks and RenderTexts.

  • rendering/RenderLineBreak.h:
  • rendering/RenderText.cpp:

(WebCore::RenderText::deleteLineBoxesBeforeSimpleLineLayout): Deleted.

  • rendering/RenderText.h:
  • rendering/RootInlineBox.cpp:

(WebCore::RootInlineBox::removeLineBoxFromRenderObject):

10:16 AM Changeset in webkit [252890] by youenn@apple.com
  • 6 edits in trunk

Update capturing document media state when entering b/f cache
https://bugs.webkit.org/show_bug.cgi?id=204589

Reviewed by Chris Dumez.

Source/WebCore:

Remove enqueuing the task in configureTrackRendering.
This allows stopTrack to trigger the track rendering configuration and document media state computation.
Covered by updated test.

  • Modules/mediastream/MediaStreamTrack.cpp:

(WebCore::MediaStreamTrack::MediaStreamTrack):
(WebCore::MediaStreamTrack::configureTrackRendering):
(WebCore::MediaStreamTrack::suspend):
(WebCore::MediaStreamTrack::stop): Deleted.

  • Modules/mediastream/MediaStreamTrack.h:

LayoutTests:

  • http/tests/navigation/page-cache-mediastream-expected.txt:
  • http/tests/navigation/page-cache-mediastream.html:
9:57 AM Changeset in webkit [252889] by youenn@apple.com
  • 7 edits
    5 adds in trunk

Allow b/f cache in case of connected peer connections
https://bugs.webkit.org/show_bug.cgi?id=204583

Reviewed by Chris Dumez.

Source/WebCore:

Tests: webrtc/peerconnection-page-cache-long.html

webrtc/peerconnection-page-cache.html

Remove guards against b/f cache.
When entering b/f cache, the packets are blocked which will trigger timeouts
and a connection failure of the peer connection after a few seconds.

  • Modules/mediastream/RTCDTMFSender.cpp:
  • Modules/mediastream/RTCDTMFSender.h:
  • Modules/mediastream/RTCDataChannel.h:
  • Modules/mediastream/RTCPeerConnection.cpp:
  • Modules/mediastream/RTCPeerConnection.h:

LayoutTests:

  • fast/history/resources/page-cache-helper-10000ms.html: Added.
  • webrtc/peerconnection-page-cache-expected.txt: Added.
  • webrtc/peerconnection-page-cache-long-expected.txt: Added.
  • webrtc/peerconnection-page-cache-long.html: Added.
  • webrtc/peerconnection-page-cache.html: Added.
8:44 AM Changeset in webkit [252888] by Antti Koivisto
  • 3 edits in trunk/Source/WebCore

[LFC] Don't leak Boxes
https://bugs.webkit.org/show_bug.cgi?id=204616

Reviewed by Zalan Bujtas.

Store Boxes to LayoutTreeContent instead of leaking them.

This is probably not the final memory management model.

  • layout/layouttree/LayoutTreeBuilder.cpp:

(WebCore::Layout::TreeBuilder::buildTableStructure):
(WebCore::Layout::TreeBuilder::buildSubTree):

  • layout/layouttree/LayoutTreeBuilder.h:

(WebCore::Layout::LayoutTreeContent::addBox):

4:42 AM Changeset in webkit [252887] by Carlos Garcia Campos
  • 1 copy in releases/WebKitGTK/webkit-2.27.3

WebKitGTK 2.27.3

4:41 AM Changeset in webkit [252886] by Carlos Garcia Campos
  • 4 edits in trunk

Unreviewed. Update OptionsGTK.cmake and NEWS for 2.27.3 release

.:

  • Source/cmake/OptionsGTK.cmake: Bump version numbers.

Source/WebKit:

  • gtk/NEWS: Add release notes for 2.27.3.
4:21 AM Changeset in webkit [252885] by commit-queue@webkit.org
  • 3 edits in trunk/Source/JavaScriptCore

Attempting to enable more than one FuzzerAgent should result in an error
https://bugs.webkit.org/show_bug.cgi?id=204607

Patch by Tuomas Karkkainen <tuomas.webkit@apple.com> on 2019-11-26
Reviewed by Antti Koivisto.

  • runtime/VM.cpp:
  • runtime/VM.h:
4:17 AM Changeset in webkit [252884] by alex
  • 3 edits in trunk/LayoutTests

[GTK][WPE] New tests crashing after added in the r251377
https://bugs.webkit.org/show_bug.cgi?id=204112

Unreviewed test gardening, add new tests crashing because we do
not have an implementation of WTR::UIScriptController::copyText,
the test was added in r252450.

  • platform/gtk/TestExpectations:
  • platform/wpe/TestExpectations:
4:09 AM Changeset in webkit [252883] by Manuel Rego Casasnovas
  • 9 edits in trunk

LayoutTests/imported/w3c:
[css-grid] Avoid serializing [] in grid-template* specified values
https://bugs.webkit.org/show_bug.cgi?id=204501

Reviewed by Javier Fernandez.

Update tests results, several tests are now passing.
Other are still failing due to different bugs like webkit.org/b/204508.

  • web-platform-tests/css/css-grid/parsing/grid-shorthand-expected.txt:
  • web-platform-tests/css/css-grid/parsing/grid-shorthand-valid-expected.txt:
  • web-platform-tests/css/css-grid/parsing/grid-template-columns-valid-expected.txt:
  • web-platform-tests/css/css-grid/parsing/grid-template-rows-valid-expected.txt:
  • web-platform-tests/css/css-grid/parsing/grid-template-shorthand-expected.txt:
  • web-platform-tests/css/css-grid/parsing/grid-template-shorthand-valid-expected.txt:

Source/WebCore:
[css-grid] Avoid serializing [] in grid-template-* specified values
https://bugs.webkit.org/show_bug.cgi?id=204501

Reviewed by Javier Fernandez.

Based on Blink r699101 by <ericwilligers@chromium.org>.

This patch discards empty list of line names when parsing grid-template-* properties.
That way we avoid these empty lists "[]" during serialization.

This was discussed at: https://github.com/w3c/csswg-drafts/issues/4173.

Several WPT tests are passing thanks to this change.

  • css/parser/CSSPropertyParser.cpp:

(WebCore::consumeGridLineNames):
(WebCore::consumeGridTrackList):

3:02 AM Changeset in webkit [252882] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebCore

[GStreamer] Cache the CString returned by String::utf8()
https://bugs.webkit.org/show_bug.cgi?id=203553

Reviewed by Philippe Normand.

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:

(WebCore::MediaPlayerPrivateGStreamer::handleMessage):

2:37 AM Changeset in webkit [252881] by rniwa@webkit.org
  • 2 edits in trunk/Source/WebCore

Document::needsStyleRecalc() shouldn't return true for fragment scrolling (m_gotoAnchorNeededAfterStylesheetsLoad)
https://bugs.webkit.org/show_bug.cgi?id=204593

Reviewed by Antti Koivisto.

After r252761, we no longer triggers a fragment scrolling as a part of style resolution.
Consequently, there is no need for Document::needsStyleRecalc() to return true
even when m_gotoAnchorNeededAfterStylesheetsLoad is set and there are no more pending stylesheets.

No new tests since there shouldn't really be any observable behavior difference.

  • dom/Document.cpp:

(WebCore::Document::needsStyleRecalc const):

2:28 AM Changeset in webkit [252880] by Carlos Garcia Campos
  • 3 edits in trunk/Source/WebKit

REGRESSION(2.27.2): [GTK] Incognito mode is broken under flatpak
https://bugs.webkit.org/show_bug.cgi?id=203460

Reviewed by Youenn Fablet.

The problem is that in ephemeral sessions the base disk cache directory is null, and Storage::open() ends up
building a cache path with only the version part (/Version n). For some reason g_mkdir_with_parents() doesn't
return -1 in flatpak when it fails to create the directory due to write permission, like in this case. But the
network process ends up crashing later trying to open a directory that doesn't exist.

  • NetworkProcess/NetworkSession.cpp:

(WebKit::NetworkSession::NetworkSession): Do not create the cache if networkCacheDirectory is null.

  • NetworkProcess/cache/NetworkCacheStorage.cpp:

(WebKit::NetworkCache::Storage::open): Add an ASSERT to ensure we don't receive a null baseCachePath.

2:11 AM Changeset in webkit [252879] by graouts@webkit.org
  • 3 edits
    2 adds in trunk

[Web Animations] Layout of children of element with forwards-filling opacity animation may be incorrect after removal
https://bugs.webkit.org/show_bug.cgi?id=204602
<rdar://problem/45311541>

Reviewed by Antti Koivisto.

Source/WebCore:

Test: webanimations/child-layer-position-after-removal-of-animation-triggering-stacking-context-with-fill-forwards.html

In the case where we animate a property that affects whether an element establishes a stacking context, for instance opacity, the animation code,
specifically KeyframeEffect::apply(), forces a stacking context by setting setUsedZIndex(0) on the animated RenderStyle in case the element otherwise
has an "auto" z-index. This is required by the Web Animations specification (https://w3c.github.io/web-animations/#side-effects-section).

This means that a fill-forwards animation will still force the element to establish a stacking context after the animation is no longer "active". When
we remove such an animation, it may go from having a z-index to not having one, unless it had an explicit z-index provided through style. When this change
happens, RenderStyle::diff() will merely return "RepaintLayer" and thus will not foce a layout. However, updating the positions of child layers may be
necessary as the animation being removed may mean that there may not be a RenderLayer associated with that element's renderer anymore, and if that RenderLayer
had a position, then the position of child layers will no longer be correct.

Now, in the case where we destroy a layer in RenderLayerModelObject::styleDidChange(), we check whether the layer had a position before it is removed, and
update the position of child layers if it did.

  • rendering/RenderLayerModelObject.cpp:

(WebCore::RenderLayerModelObject::styleDidChange):

LayoutTests:

Add a new ref test that checks that removing a forwards-filling animation that triggers a stacking context (for instance, animating opacity)
after it has completed from an element affecting layout yields the correct layout.

  • webanimations/child-layer-position-after-removal-of-animation-triggering-stacking-context-with-fill-forwards-expected.html: Added.
  • webanimations/child-layer-position-after-removal-of-animation-triggering-stacking-context-with-fill-forwards.html: Added.
12:30 AM Changeset in webkit [252878] by youenn@apple.com
  • 3 edits in trunk/Source/WebCore

Queuing a task in EventLoop is not working with UserMediaRequest allow completion handler
Queuing a task in EventLoop is not working with completion handlers
https://bugs.webkit.org/show_bug.cgi?id=204565
<rdar://problem/57466280>

Reviewed by Ryosuke Niwa.

Do not capture the completion handler in lambda passed to the event queue.
Instead, keep it in UserMediqRequest and call it either when running the task or when destroying UserMediaRequest.
Covered by existing tests failing the debug assertion.

  • Modules/mediastream/UserMediaRequest.cpp:

(WebCore::UserMediaRequest::~UserMediaRequest):
(WebCore::UserMediaRequest::allow):

  • Modules/mediastream/UserMediaRequest.h:
12:24 AM Changeset in webkit [252877] by Carlos Garcia Campos
  • 3 edits in trunk/Source/JavaScriptCore

[GLIB] The API lock should be held before calling JSC::createTypeError
https://bugs.webkit.org/show_bug.cgi?id=204573

Reviewed by Mark Lam.

We are missing it in several places. This is causing a crash in test /jsc/object after r252298.

  • API/glib/JSCContext.cpp:

(jscContextGArrayToJSArray):
(jscContextJSArrayToGArray):
(jscContextGValueToJSValue):
(jscContextJSValueToGValue):

  • API/glib/JSCValue.cpp:

(jsc_value_new_array):
(jscValueCallFunction):

Note: See TracTimeline for information about the timeline view.