Timeline
Aug 31, 2019:
- 5:47 PM Changeset in webkit [249364] by
-
- 25 edits18 adds7 deletes in trunk
Source/WebCore:
EXIF orientation should be respected when rendering images
https://bugs.webkit.org/show_bug.cgi?id=201123
Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2019-08-31
Reviewed by Simon Fraser.
-- Image::size() will return the rendered size based on the image
orientation. If image orientation is FromImage, ImageSource will query
the actual image orientation from the ImageDecoder. The low level APIs
might transpose the size just before calling the system API to draw
the image.
-- RenderElement::imageOrientation() will return ImageOrientation::FromImage
for all images and for all ports till the CSS image-orientation specs
is finalized.
-- The default of ImagePaintingOptions argument of GraphicsContext::drawImage()
will be changed to { ImageOrientation::FromImage }.
-- Image element: RenderImage::paintIntoRect() will pass imageOrientation()
which returns ImageOrientation::FromImage to GraphicsContext::drawImage().
-- CSS background image: RenderBoxModelObject::paintFillLayerExtended will
pass ImageOrientation::FromImage by default to GraphicsContext::drawTiledImage().
-- Images on canvas: CanvasRenderingContext2DBase::drawImage() will pass
ImageOrientation::FromImage by default to GraphicsContext::drawImage().
-- SVG images: RenderSVGImage::paintForeground() calls GraphicsContext::drawImage()
with the default ImagePaintingOptions which is now { ImageOrientation::FromImage }.
-- SVG feImage filters: FEImage::platformApplySoftware() calls
GraphicsContext::drawImage() with the default ImagePaintingOptions
which is now { ImageOrientation::FromImage }.
-- ImageDocument: RenderElement::imageOrientation() returns FromImage
always and for all ports.
Tests: fast/images/exif-orientation-background.html
fast/images/exif-orientation-canvas.html
fast/images/exif-orientation-content.html
fast/images/exif-orientation-element-object-fit.html
fast/images/exif-orientation-element.html
fast/images/exif-orientation-image-object.html
fast/images/exif-orientation-svg-feimage.html
fast/images/exif-orientation-svg-image.html
- html/canvas/CanvasRenderingContext2DBase.cpp:
(WebCore::CanvasRenderingContext2DBase::drawImage):
- loader/cache/CachedImage.cpp:
(WebCore::CachedImage::imageSizeForRenderer const):
- platform/graphics/BitmapImage.h:
- platform/graphics/CrossfadeGeneratedImage.h:
- platform/graphics/GeneratedImage.h:
- platform/graphics/GraphicsContext.h:
(WebCore::GraphicsContext::drawImage):
- platform/graphics/Image.h:
- platform/graphics/ImageFrame.h:
(WebCore::ImageFrame::sizeRespectingOrientation const): Deleted.
- platform/graphics/ImageSource.cpp:
(WebCore::ImageSource::ImageSource):
(WebCore::ImageSource::orientation):
(WebCore::ImageSource::size):
(WebCore::ImageSource::sizeRespectingOrientation): Deleted.
- platform/graphics/ImageSource.h:
- platform/graphics/cg/PDFDocumentImage.cpp:
(WebCore::PDFDocumentImage::size const):
- platform/graphics/cg/PDFDocumentImage.h:
- platform/mac/DragImageMac.mm:
(WebCore::createDragImageFromImage):
- rendering/RenderBoxModelObject.cpp:
(WebCore::RenderBoxModelObject::paintFillLayerExtended):
- rendering/RenderElement.cpp:
(WebCore::RenderElement::imageOrientation const):
- rendering/RenderImage.cpp:
(WebCore::RenderImage::paintIntoRect):
- svg/graphics/SVGImage.h:
- svg/graphics/SVGImageForContainer.cpp:
(WebCore::SVGImageForContainer::size const):
- svg/graphics/SVGImageForContainer.h:
LayoutTests:
EXIF orientation should be respected when rendering images
https://bugs.webkit.org/show_bug.cgi?id=201123
Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2019-08-31
Reviewed by Simon Fraser.
Existing tests are made ref-tests. New tests were added to cover more
cases for drawing images.
- fast/images/exif-orientation-background-expected.html: Added.
- fast/images/exif-orientation-background.html: Added.
- fast/images/exif-orientation-canvas-expected.html: Added.
- fast/images/exif-orientation-canvas.html: Added.
- fast/images/exif-orientation-composited-expected.html: Added.
- fast/images/exif-orientation-composited-expected.txt: Removed.
- fast/images/exif-orientation-composited.html:
- fast/images/exif-orientation-content-expected.html: Added.
- fast/images/exif-orientation-content.html: Added.
- fast/images/exif-orientation-css-expected.txt: Removed.
- fast/images/exif-orientation-css.html: Removed.
- fast/images/exif-orientation-element-expected.html: Added.
- fast/images/exif-orientation-element-object-fit-expected.html: Added.
- fast/images/exif-orientation-element-object-fit.html: Added.
- fast/images/exif-orientation-element.html: Added.
- fast/images/exif-orientation-expected.txt: Removed.
- fast/images/exif-orientation-image-document-expected.html: Added.
- fast/images/exif-orientation-image-document-expected.txt: Removed.
- fast/images/exif-orientation-image-document.html:
- fast/images/exif-orientation-image-object-expected.html: Added.
- fast/images/exif-orientation-image-object.html: Added.
- fast/images/exif-orientation-svg-feimage-expected.html: Added.
- fast/images/exif-orientation-svg-feimage.html: Added.
- fast/images/exif-orientation-svg-image-expected.html: Added.
- fast/images/exif-orientation-svg-image.html: Added.
- fast/images/exif-orientation.html: Removed.
- platform/gtk/TestExpectations:
- platform/mac/fast/images/exif-orientation-composited-expected.png: Removed.
- platform/win/TestExpectations:
- 4:02 PM Changeset in webkit [249363] by
-
- 1 edit2 adds in trunk/LayoutTests
[iOS] Add a test to ensure that a tap in editable content shows the callout bar if the selection did not change
https://bugs.webkit.org/show_bug.cgi?id=200082
Reviewed by Dean Jackson.
Adds a layout test to cover the UIKit change in <rdar://problem/53106460>.
- editing/selection/ios/show-callout-bar-after-tap-expected.txt: Added.
- editing/selection/ios/show-callout-bar-after-tap.html: Added.
- 4:31 AM Changeset in webkit [249362] by
-
- 2 edits in trunk/Source/JavaScriptCore
[JSC] LLInt op should not emit the same code three times
https://bugs.webkit.org/show_bug.cgi?id=201370
Reviewed by Mark Lam.
LLInt op macro (not llintOp macro) is used to generate some stub code like llint_program_prologue.
But now it generates the same code three times for narrow, wide16, and wide32. We should emit code only once.
- llint/LowLevelInterpreter.asm:
- 3:16 AM Changeset in webkit [249361] by
-
- 7 edits in trunk
XMLHttpRequest: responseXML returns null if the Content-Type is valid (end in +xml) in some cases
https://bugs.webkit.org/show_bug.cgi?id=46146
Patch by Rob Buis <rbuis@igalia.com> on 2019-08-31
Reviewed by Youenn Fablet.
LayoutTests/imported/w3c:
Updated expected result.
- web-platform-tests/xhr/responsexml-media-type-expected.txt:
Source/WebCore:
Make response MIME type fallback to text/xml in case mimeType could
not be extracted [1] and use the stricter ParsedContentType for that.
Behavior matches Firefox.
Test: web-platform-tests/xhr/responsexml-media-type.htm
[1] https://xhr.spec.whatwg.org/#response-mime-type
- xml/XMLHttpRequest.cpp:
(WebCore::XMLHttpRequest::responseMIMEType const):
LayoutTests:
Adjust test to match the specification: make response MIME type fallback to
text/xml in case mimeType could not be extracted.
Behavior matches Firefox.
- http/tests/xmlhttprequest/supported-xml-content-types-expected.txt:
- http/tests/xmlhttprequest/supported-xml-content-types.html:
- 2:05 AM Changeset in webkit [249360] by
-
- 10 edits10 adds in trunk
Fix interpretation of fraction shifts
https://bugs.webkit.org/show_bug.cgi?id=201242
Patch by Frederic Wang <fwang@igalia.com> on 2019-08-31
Reviewed by Rob Buis.
LayoutTests/imported/w3c:
Update tests and support files for fractions/stacks parameters.
- web-platform-tests/mathml/presentation-markup/fractions/frac-parameters-2-expected.txt:
Update expectation now that AxisHeight is no longer involved in stacks.
- web-platform-tests/fonts/math/fraction-denominatordisplaystyleshiftdown6000-axisheight1000-rulethickness1000.woff: Added.
- web-platform-tests/fonts/math/fraction-denominatorshiftdown3000-axisheight1000-rulethickness1000.woff: Added.
- web-platform-tests/fonts/math/fraction-numeratordisplaystyleshiftup2000-axisheight1000-rulethickness1000.woff: Added.
- web-platform-tests/fonts/math/fraction-numeratorshiftup11000-axisheight1000-rulethickness1000.woff: Added.
- web-platform-tests/fonts/math/stack-bottomdisplaystyleshiftdown5000-axisheight1000.woff: Added.
- web-platform-tests/fonts/math/stack-bottomshiftdown6000-axisheight1000.woff: Added.
- web-platform-tests/fonts/math/stack-topdisplaystyleshiftup3000-axisheight1000.woff: Added.
- web-platform-tests/fonts/math/stack-topshiftup9000-axisheight1000.woff: Added.
- web-platform-tests/mathml/presentation-markup/fractions/frac-parameters-1.html:
- web-platform-tests/mathml/presentation-markup/fractions/frac-parameters-2.html:
- web-platform-tests/mathml/support/feature-detection.js: Added.
(MathMLFeatureDetection.has_mspace):
(MathMLFeatureDetection.has_operator_spacing):
(MathMLFeatureDetection.has_mfrac):
(MathMLFeatureDetection.has_msqrt):
(MathMLFeatureDetection.has_menclose):
(MathMLFeatureDetection.has_dir):
(MathMLFeatureDetection.ensure_for_match_reftest):
Source/WebCore:
In fractions, numerator/denominator shifts are currently interpreted relative to the math
axis while they should be relative to the baseline [1]. This patch refactors the
RenderMathMLFraction to do that and aligns more on MathML Core [2] [3]. This fixes serious
rendering bugs in fractions.
[1] https://github.com/mathml-refresh/mathml/issues/123
[2] https://mathml-refresh.github.io/mathml-core/#fraction-with-nonzero-line-thickness
[3] https://mathml-refresh.github.io/mathml-core/#fraction-with-zero-line-thickness
No new tests, existing tests updated.
- rendering/mathml/RenderMathMLFraction.h: ascentOverHorizontalAxis() is replaced with
fractionAscent() which gives the actual baseline position rather than the math axis position.
fractionParameters() and stackParameters() are modified so that they only return the shifts,
now stored in a shared FractionParameters struct.
- rendering/mathml/RenderMathMLFraction.cpp:
(WebCore::RenderMathMLFraction::fractionParameters const): Store existing parameters in local
variables and perform adjustments to the shift values so that the minimal gap constraints
are satisfied. Return them as a FractionParameters.
(WebCore::RenderMathMLFraction::stackParameters const): Ditto.
(WebCore::RenderMathMLFraction::fractionAscent const): This calculates the ascent above
the baseline as described in [2] [3] and replaces ascentOverHorizontalAxis. To minimize
changeset, this continues to ignore contribution of denominator size and not to distinguish
ink or non-ink metrics.
(WebCore::RenderMathMLFraction::layoutBlock): The position of the denominator is now just
calculated as a shift from the baseline. The height is given by the bottom of the
denominator. The old "ascent + mathAxisHeight() + denominatorDescent" does not make any
sense.
(WebCore::RenderMathMLFraction::paint): Use fractionAscent() instead of
ascentOverHorizontalAxis().
(WebCore::RenderMathMLFraction::firstLineBaseline const): Ditto.
LayoutTests:
- TestExpectations: Skip mathml/presentation/stretchy-depth-height-symmetric.html since it
cannot work in a reliable way and should be rewritten. Equivalent checks seem essentially
covered by WPT test mathml/presentation-markup/operators/mo-axis-height-1.html.
See bug 201356.
- platform/win/mathml/presentation/roots-expected.txt: Update windows expectation.
- 12:52 AM Changeset in webkit [249359] by
-
- 8 edits in trunk/Source
DocumentStorageAccess::hasStorageAccess() / requestStorageAccess() don't need to know about pageID / frameID
https://bugs.webkit.org/show_bug.cgi?id=201364
Reviewed by John Wilander.
Source/WebCore:
DocumentStorageAccess::hasStorageAccess() / requestStorageAccess() don't need to know about pageID / frameID. pageID is
redundant since it is being ignored by the callee. For the frame, simply pass the frame object in.
- dom/DocumentStorageAccess.cpp:
(WebCore::DocumentStorageAccess::hasStorageAccess):
(WebCore::DocumentStorageAccess::requestStorageAccess):
- page/ChromeClient.h:
(WebCore::ChromeClient::hasStorageAccess):
(WebCore::ChromeClient::requestStorageAccess):
Source/WebKit:
- WebProcess/WebCoreSupport/WebChromeClient.cpp:
(WebKit::WebChromeClient::hasStorageAccess):
(WebKit::WebChromeClient::requestStorageAccess):
- WebProcess/WebCoreSupport/WebChromeClient.h:
- WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::hasStorageAccess):
(WebKit::WebPage::requestStorageAccess):
- WebProcess/WebPage/WebPage.h:
Aug 30, 2019:
- 9:11 PM Changeset in webkit [249358] by
-
- 6 edits in trunk/Tools
[results.webkit.org Timeline] Add notify rerender API for timeline
https://bugs.webkit.org/show_bug.cgi?id=201363
Reviewed by Jonathan Bedard.
- resultsdbpy/resultsdbpy/view/static/js/timeline.js: Export notifyRerender API to timeline class
- resultsdbpy/resultsdbpy/view/static/library/js/components/TimelineComponents.js:
(XScrollableCanvasProvider): Add an event stream to receive notification that it will need to render
(prototype.ExpandableSeriesComponent): Notify the rerender when expanded, because this may change the layout.
(prototype.Timeline.CanvasContainer):
- 9:03 PM Changeset in webkit [249357] by
-
- 8 edits in trunk/Source/WebCore
[LFC] Transition from Geometry(formattingContext()) to formattingContext().quirks()
https://bugs.webkit.org/show_bug.cgi?id=201372
<rdar://problem/54905514>
Reviewed by Antti Koivisto.
- layout/FormattingContextGeometry.cpp:
(WebCore::Layout::FormattingContext::Geometry::computedHeightValue const):
- layout/FormattingContextQuirks.cpp:
(WebCore::Layout::FormattingContext::Quirks::heightValueOfNearestContainingBlockWithFixedHeight):
- layout/blockformatting/BlockFormattingContextGeometry.cpp:
(WebCore::Layout::BlockFormattingContext::Geometry::inFlowHeightAndMargin):
- layout/blockformatting/BlockFormattingContextQuirks.cpp:
(WebCore::Layout::BlockFormattingContext::Quirks::stretchedInFlowHeight):
- layout/blockformatting/BlockMarginCollapse.cpp:
(WebCore::Layout::BlockFormattingContext::MarginCollapse::positiveNegativeValues):
(WebCore::Layout::BlockFormattingContext::MarginCollapse::positiveNegativeMarginBefore):
(WebCore::Layout::BlockFormattingContext::MarginCollapse::estimatedMarginBefore):
- layout/inlineformatting/InlineFormattingContextLineLayout.cpp:
(WebCore::Layout::InlineFormattingContext::InlineLayout::layout const):
(WebCore::Layout::InlineFormattingContext::InlineLayout::computedIntrinsicWidth const):
(WebCore::Layout::InlineFormattingContext::InlineLayout::createDisplayRuns const):
- layout/inlineformatting/InlineLine.cpp:
(WebCore::Layout::Line::close):
- 7:37 PM Changeset in webkit [249356] by
-
- 15 edits in trunk/Source/WebCore
[LFC] Proxy LayoutState::displayBoxForLayoutBox() calls through FormattingContext
https://bugs.webkit.org/show_bug.cgi?id=201365
<rdar://problem/54900815>
Reviewed by Antti Koivisto.
This patch is in preparation for enforcing displayBoxForLayoutBox() calls to stay within the current formatting context.
(There are a few odd cases left (floats and coordinate mapping) and they are going to be addressed in a separate patch.)
- layout/FormattingContext.cpp:
(WebCore::Layout::FormattingContext::computeOutOfFlowHorizontalGeometry):
(WebCore::Layout::FormattingContext::computeOutOfFlowVerticalGeometry):
(WebCore::Layout::FormattingContext::computeBorderAndPadding):
(WebCore::Layout::FormattingContext::validateGeometryConstraintsAfterLayout const):
- layout/FormattingContext.h:
(WebCore::Layout::FormattingContext::displayBoxForLayoutBox const):
(WebCore::Layout::FormattingContext::hasDisplayBox const):
- layout/FormattingContextGeometry.cpp:
(WebCore::Layout::FormattingContext::Geometry::computedHeightValue const):
(WebCore::Layout::FormattingContext::Geometry::contentHeightForFormattingContextRoot const):
(WebCore::Layout::FormattingContext::Geometry::staticVerticalPositionForOutOfFlowPositioned const):
(WebCore::Layout::FormattingContext::Geometry::staticHorizontalPositionForOutOfFlowPositioned const):
(WebCore::Layout::FormattingContext::Geometry::outOfFlowNonReplacedVerticalGeometry const):
(WebCore::Layout::FormattingContext::Geometry::outOfFlowNonReplacedHorizontalGeometry):
(WebCore::Layout::FormattingContext::Geometry::outOfFlowReplacedVerticalGeometry const):
(WebCore::Layout::FormattingContext::Geometry::outOfFlowReplacedHorizontalGeometry const):
(WebCore::Layout::FormattingContext::Geometry::inlineReplacedHeightAndMargin const):
(WebCore::Layout::FormattingContext::Geometry::inFlowPositionedPositionOffset const):
- layout/FormattingContextQuirks.cpp:
(WebCore::Layout::FormattingContext::Quirks::heightValueOfNearestContainingBlockWithFixedHeight):
- layout/blockformatting/BlockFormattingContext.cpp:
(WebCore::Layout::BlockFormattingContext::usedAvailableWidthForFloatAvoider const):
(WebCore::Layout::BlockFormattingContext::placeInFlowPositionedChildren):
(WebCore::Layout::BlockFormattingContext::computeStaticVerticalPosition):
(WebCore::Layout::BlockFormattingContext::computeStaticHorizontalPosition):
(WebCore::Layout::BlockFormattingContext::computeEstimatedVerticalPosition):
(WebCore::Layout::BlockFormattingContext::computeEstimatedVerticalPositionForFloatClear):
(WebCore::Layout::BlockFormattingContext::computeFloatingPosition):
(WebCore::Layout::BlockFormattingContext::computePositionToAvoidFloats):
(WebCore::Layout::BlockFormattingContext::computeWidthAndMargin):
(WebCore::Layout::BlockFormattingContext::computeHeightAndMargin):
(WebCore::Layout::BlockFormattingContext::verticalPositionWithMargin const):
- layout/blockformatting/BlockFormattingContextGeometry.cpp:
(WebCore::Layout::BlockFormattingContext::Geometry::inFlowNonReplacedHeightAndMargin):
(WebCore::Layout::BlockFormattingContext::Geometry::inFlowNonReplacedWidthAndMargin const):
(WebCore::Layout::BlockFormattingContext::Geometry::staticVerticalPosition const):
(WebCore::Layout::BlockFormattingContext::Geometry::staticHorizontalPosition const):
(WebCore::Layout::BlockFormattingContext::Geometry::inFlowHeightAndMargin):
- layout/blockformatting/BlockFormattingContextQuirks.cpp:
(WebCore::Layout::BlockFormattingContext::Quirks::stretchedInFlowHeight):
- layout/blockformatting/BlockMarginCollapse.cpp:
(WebCore::Layout::hasClearance):
(WebCore::Layout::BlockFormattingContext::MarginCollapse::marginBeforeCollapsesWithParentMarginBefore const):
(WebCore::Layout::BlockFormattingContext::MarginCollapse::marginBeforeCollapsesWithPreviousSiblingMarginAfter const):
(WebCore::Layout::BlockFormattingContext::MarginCollapse::marginBeforeCollapsesWithFirstInFlowChildMarginBefore const):
(WebCore::Layout::BlockFormattingContext::MarginCollapse::marginAfterCollapsesWithSiblingMarginBeforeWithClearance const):
(WebCore::Layout::BlockFormattingContext::MarginCollapse::marginAfterCollapsesWithLastInFlowChildMarginAfter const):
(WebCore::Layout::BlockFormattingContext::MarginCollapse::updateMarginAfterForPreviousSibling const):
(WebCore::Layout::BlockFormattingContext::MarginCollapse::positiveNegativeValues):
(WebCore::Layout::BlockFormattingContext::MarginCollapse::estimatedMarginBefore):
(WebCore::Layout::BlockFormattingContext::MarginCollapse::updatePositiveNegativeMarginValues):
- layout/inlineformatting/InlineFormattingContext.cpp:
(WebCore::Layout::InlineFormattingContext::layout):
(WebCore::Layout::InlineFormattingContext::computedIntrinsicWidthConstraints):
(WebCore::Layout::InlineFormattingContext::initializeMarginBorderAndPaddingForGenericInlineBox):
(WebCore::Layout::InlineFormattingContext::computeMarginBorderAndPaddingForInlineContainer):
(WebCore::Layout::InlineFormattingContext::computeIntrinsicWidthForFormattingRoot):
(WebCore::Layout::InlineFormattingContext::computeHorizontalMargin):
(WebCore::Layout::InlineFormattingContext::computeWidthAndMargin):
(WebCore::Layout::InlineFormattingContext::computeHeightAndMargin):
(WebCore::Layout::InlineFormattingContext::layoutFormattingContextRoot):
- layout/inlineformatting/InlineFormattingContextGeometry.cpp:
(WebCore::Layout::InlineFormattingContext::Geometry::inlineBlockHeightAndMargin const):
- layout/inlineformatting/InlineFormattingContextLineLayout.cpp:
(WebCore::Layout::inlineItemWidth):
(WebCore::Layout::LineLayout::formattingContext const):
(WebCore::Layout::LineLayout::LineLayout):
(WebCore::Layout::LineLayout::placeInlineItem):
(WebCore::Layout::InlineFormattingContext::InlineLayout::layout const):
(WebCore::Layout::InlineFormattingContext::InlineLayout::computedIntrinsicWidth const):
(WebCore::Layout::InlineFormattingContext::InlineLayout::createDisplayRuns const):
(WebCore::Layout::LineLayout::layoutState const): Deleted.
- layout/inlineformatting/InlineFormattingContextQuirks.cpp:
(WebCore::Layout::InlineFormattingContext::Quirks::lineDescentNeedsCollapsing const):
- layout/inlineformatting/InlineLine.cpp:
(WebCore::Layout::isInlineContainerConsideredEmpty):
(WebCore::Layout::Line::isVisuallyEmpty const):
(WebCore::Layout::Line::close):
(WebCore::Layout::Line::appendNonReplacedInlineBox):
(WebCore::Layout::Line::inlineItemContentHeight const):
- layout/tableformatting/TableFormattingContext.cpp:
(WebCore::Layout::TableFormattingContext::layout):
(WebCore::Layout::TableFormattingContext::computedTableWidth):
- 7:01 PM Changeset in webkit [249355] by
-
- 2 edits in trunk/Tools
[ews-build] 're-run-layout-tests' step on macOS-High-Sierra-Debug-WK1-Tests-EWS runs WK2 tests
https://bugs.webkit.org/show_bug.cgi?id=201350
Reviewed by Jonathan Bedard.
- BuildSlaveSupport/ews-build/steps.py:
(RunWebKit1Tests.start): Set build property to use dump-render-tree.
(RunWebKitTests.start): Use dump-render-tree whenever the corresponding build property is set.
- 5:45 PM Changeset in webkit [249354] by
-
- 16 edits in trunk/Source
WebPage::fromCorePage() to take and return a C++ reference
https://bugs.webkit.org/show_bug.cgi?id=201367
Reviewed by Antti Koivisto.
Source/WebCore:
- page/Chrome.cpp:
(WebCore::Chrome::createWindow const):
Source/WebKit:
- WebProcess/InjectedBundle/InjectedBundle.cpp:
(WebKit::InjectedBundle::overrideBoolPreferenceForTestRunner):
- WebProcess/WebPage/VisitedLinkTableController.cpp:
(WebKit::VisitedLinkTableController::addVisitedLink):
- WebProcess/WebPage/WebFrame.cpp:
(WebKit::WebFrame::page const):
- WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::fromCorePage):
- WebProcess/WebPage/WebPage.h:
- WebProcess/WebPage/WebPageOverlay.cpp:
(WebKit::WebPageOverlay::willMoveToPage):
(WebKit::WebPageOverlay::didMoveToPage):
- WebProcess/WebStorage/StorageNamespaceImpl.cpp:
(WebKit::StorageNamespaceImpl::copy):
- WebProcess/WebStorage/StorageNamespaceImpl.h:
- WebProcess/WebStorage/WebStorageNamespaceProvider.cpp:
(WebKit::WebStorageNamespaceProvider::createSessionStorageNamespace):
- 5:34 PM Changeset in webkit [249353] by
-
- 15 edits in trunk
Add support for postMessage buffering between the service worker and window
https://bugs.webkit.org/show_bug.cgi?id=201169
Reviewed by Youenn Fablet.
LayoutTests/imported/w3c:
Rebaseline WPT test that is now passing.
- web-platform-tests/service-workers/service-worker/postmessage-to-client-message-queue.https-expected.txt:
Source/WebCore:
As per the Service Worker specification, a service worker client's message
queue is initially disabled and only gets enabled after:
- The DOMContentLoaded event has been fired
or
- The client sets the navigator.serviceWorker.onmessage event handler
or
- navigator.serviceWorker.startMessages() is called
While the message queue is disabled, messages posted by the service worker
to the client simply get queued and only get processed once the queue gets
enabled.
No new tests, rebaselined existing test.
- dom/Document.cpp:
(WebCore::Document::finishedParsing):
Call startMessages() on the ServiceWorkerContainer once the DOMContentLoaded event has
been fired.
- dom/ScriptExecutionContext.cpp:
(WebCore::ScriptExecutionContext::ensureServiceWorkerContainer):
- dom/ScriptExecutionContext.h:
- workers/service/SWClientConnection.cpp:
(WebCore::SWClientConnection::postMessageToServiceWorkerClient):
Fix a bug where a service worker would not be able to post a message to a client until
that client has accessed navigator.serviceWorker (since the ServiceWorkerContainer is
lazy initialized). To address the issue, we now initialize the ServiceWorkerContainer
when a message is received from the service worker. Previously, messages were just
getting dropped.
- workers/service/ServiceWorkerContainer.cpp:
(WebCore::ServiceWorkerContainer::ServiceWorkerContainer):
When the ServiceWorkerContainer is constructed, suspend its message queue if its context
document is still parsing.
(WebCore::ServiceWorkerContainer::startMessages):
Resume the message queue when startMessages() is called.
(WebCore::ServiceWorkerContainer::postMessage):
Enqueue the event instead of firing it right away.
(WebCore::ServiceWorkerContainer::addEventListener):
if navigator.serviceWorker.onmessage event handler gets set by the JavaScript, call
startMessages().
- workers/service/ServiceWorkerContainer.h:
LayoutTests:
Unskip test that is no longer timing out.
- resources/testharnessreport.js:
(self.testRunner.add_completion_callback):
Use testRunner.forceImmediateCompletion() instead of notifyDone() for WPT tests.
testRunner.notifyDone() does not work in case of load error or when the load
does not finish. The WPT test was timing out because the load does not finish for
testing purposes.
- 5:29 PM Changeset in webkit [249352] by
-
- 2 edits in trunk/Source/WebCore
Minor optimization in determineNonLayerDescendantsPaintedContent()
https://bugs.webkit.org/show_bug.cgi?id=201352
Reviewed by Antti Koivisto.
It's cheaper to call renderText.hasRenderedText() than renderText.linesBoundingBox(), because
the latter has to traverse all the InlineTextBoxes. This code path is fairly hot when
scrolling twitter feeds, since it's called from RenderLayer::updateLayerPositionsAfterScroll()
which calls RenderLayer::isVisuallyNonEmpty().
- rendering/RenderLayer.cpp:
(WebCore::RenderLayer::calculateClipRects const):
- 5:13 PM Changeset in webkit [249351] by
-
- 52 edits1 copy3 moves9 adds17 deletes in trunk
[WHLSL] Remove getters/setters/anders
https://bugs.webkit.org/show_bug.cgi?id=201008
Reviewed by Robin Morisset.
Source/WebCore:
This patch changes WHLSL in a significant way. This patch removes getters/setters/anders
from the language. In our experience writing WHLSL shaders, these parts of the language
went unused, and they added a lot of complexity to the implementation of the compiler.
This patch now treats field accesses and array indexes as intrinsics inside the compiler.
This patch removes all notions of named operators, anders, and indexed operators
from the compiler and the standard library. The checker now intrinsically knows the
return type for property accesses and indexed expressions based on what the
base type is.
To make this work in practice was difficult, since getters/setters/anders
solved a lot of the difficult problems we had in generating metal code. For
example, all swizzle operators were getters and setters, so assigning to a
swizzle fell out naturally from implementing setters. However, during metal
codegen, all we see is a dot expression with "xy" as a property. Our previous
architecture of emitting Metal code using pointers which represent lvalues
doesn't work because you can't take the address of a swizzle. For example,
"auto* x = &vector.yz" is invalid metal code.
So, this patch changes the entire metal code generator to emit WHLSL expressions
as Metal expressions. To do this, I had to change a lot about how the compiler
was implemented:
- I changed the indexed accesses of matrices to return columns instead of
rows. This allowed WHLSL code like
mat[0].xy = 42to be compiled into
the equivalent metal code ofmat[0].xy = 42.
- I changed the native function inliner to emit expressions instead of
statements.
- We also simplify the language by removing null and requiring all
reference type variables to have an initializer. This means that
null is no longer a valid value, which allows us to omit null checks
inside the metal code generator. To make this work with array
accesses, we now clamp accesses instead of returning null for OOB
accesses.
I've also filed one required bug as a followup. I didn't include it in this
patch to make it easier to review along. Currently, there are two places in
metal codegen where we evaluate effects twice. That will be fixed in:
https://bugs.webkit.org/show_bug.cgi?id=201251
Tests: webgpu/whlsl/address-of-swizzle.html
webgpu/whlsl/array-oob-alias.html
webgpu/whlsl/matrix-index-assign.html
webgpu/whlsl/matrix-index-order.html
webgpu/whlsl/oob-access-2.html
webgpu/whlsl/operator-syntax.html
- Modules/webgpu/WHLSL/AST/WHLSLAST.h:
- Modules/webgpu/WHLSL/AST/WHLSLConstantExpression.h:
- Modules/webgpu/WHLSL/AST/WHLSLDotExpression.h:
- Modules/webgpu/WHLSL/AST/WHLSLExpression.cpp:
(WebCore::WHLSL::AST::Expression::destroy):
(WebCore::WHLSL::AST::Expression::destruct):
(WebCore::WHLSL::AST::PropertyAccessExpression::getterFunctionName const): Deleted.
(WebCore::WHLSL::AST::PropertyAccessExpression::setterFunctionName const): Deleted.
(WebCore::WHLSL::AST::PropertyAccessExpression::anderFunctionName const): Deleted.
- Modules/webgpu/WHLSL/AST/WHLSLExpression.h:
(WebCore::WHLSL::AST::Expression::copyTypeTo const):
(WebCore::WHLSL::AST::Expression::isMakePointerExpression const):
(WebCore::WHLSL::AST::Expression::isNullLiteral const): Deleted.
- Modules/webgpu/WHLSL/AST/WHLSLIndexExpression.h:
- Modules/webgpu/WHLSL/AST/WHLSLNativeTypeDeclaration.h:
- Modules/webgpu/WHLSL/AST/WHLSLNullLiteral.h: Removed.
- Modules/webgpu/WHLSL/AST/WHLSLNullLiteralType.cpp: Removed.
- Modules/webgpu/WHLSL/AST/WHLSLNullLiteralType.h: Removed.
- Modules/webgpu/WHLSL/AST/WHLSLPropertyAccessExpression.h:
(WebCore::WHLSL::AST::PropertyAccessExpression::getterFunction): Deleted.
(WebCore::WHLSL::AST::PropertyAccessExpression::anderFunction): Deleted.
(WebCore::WHLSL::AST::PropertyAccessExpression::threadAnderFunction): Deleted.
(WebCore::WHLSL::AST::PropertyAccessExpression::setterFunction): Deleted.
(WebCore::WHLSL::AST::PropertyAccessExpression::setGetterFunction): Deleted.
(WebCore::WHLSL::AST::PropertyAccessExpression::setAnderFunction): Deleted.
(WebCore::WHLSL::AST::PropertyAccessExpression::setThreadAnderFunction): Deleted.
(WebCore::WHLSL::AST::PropertyAccessExpression::setSetterFunction): Deleted.
(): Deleted.
- Modules/webgpu/WHLSL/AST/WHLSLType.cpp:
(WebCore::WHLSL::AST::Type::destroy):
(WebCore::WHLSL::AST::Type::destruct):
(WebCore::WHLSL::AST::ResolvableType::canResolve const):
(WebCore::WHLSL::AST::ResolvableType::conversionCost const):
- Modules/webgpu/WHLSL/AST/WHLSLType.h:
(WebCore::WHLSL::AST::Type::isIntegerLiteralType const):
(WebCore::WHLSL::AST::Type::isNullLiteralType const): Deleted.
- Modules/webgpu/WHLSL/Metal/WHLSLFunctionWriter.cpp:
(WebCore::WHLSL::Metal::FunctionDefinitionWriter::HoistedVariableCollector::HoistedVariableCollector):
(WebCore::WHLSL::Metal::FunctionDefinitionWriter::visit):
(WebCore::WHLSL::Metal::FunctionDefinitionWriter::emitLoop):
(WebCore::WHLSL::Metal::FunctionDefinitionWriter::emitConstantExpressionString):
(WebCore::WHLSL::Metal::FunctionDefinitionWriter::appendRightValueWithNullability): Deleted.
(WebCore::WHLSL::Metal::FunctionDefinitionWriter::appendRightValue): Deleted.
(WebCore::WHLSL::Metal::FunctionDefinitionWriter::appendLeftValue): Deleted.
(WebCore::WHLSL::Metal::FunctionDefinitionWriter::takeLastValue): Deleted.
(WebCore::WHLSL::Metal::FunctionDefinitionWriter::takeLastValueAndNullability): Deleted.
(WebCore::WHLSL::Metal::FunctionDefinitionWriter::takeLastLeftValue): Deleted.
- Modules/webgpu/WHLSL/Metal/WHLSLMetalCodeGenerator.cpp:
(WebCore::WHLSL::Metal::metalCodePrologue):
(WebCore::WHLSL::Metal::generateMetalCode):
(WebCore::WHLSL::Metal::metalCodeProlog): Deleted.
- Modules/webgpu/WHLSL/Metal/WHLSLNativeFunctionWriter.cpp:
(WebCore::WHLSL::Metal::inlineNativeFunction):
(WebCore::WHLSL::Metal::vectorInnerType): Deleted.
- Modules/webgpu/WHLSL/Metal/WHLSLNativeFunctionWriter.h:
- Modules/webgpu/WHLSL/Metal/WHLSLNativeTypeWriter.cpp:
(WebCore::WHLSL::Metal::writeNativeType):
- Modules/webgpu/WHLSL/WHLSLASTDumper.cpp:
(WebCore::WHLSL::ASTDumper::visit):
- Modules/webgpu/WHLSL/WHLSLASTDumper.h:
- Modules/webgpu/WHLSL/WHLSLCheckDuplicateFunctions.cpp:
(WebCore::WHLSL::checkDuplicateFunctions):
- Modules/webgpu/WHLSL/WHLSLChecker.cpp:
(WebCore::WHLSL::resolveByInstantiation):
(WebCore::WHLSL::checkOperatorOverload):
(WebCore::WHLSL::Checker::wrappedUintType):
(WebCore::WHLSL::Checker::normalizedTypeForFunctionKey):
(WebCore::WHLSL::Checker::visit):
(WebCore::WHLSL::matchAndCommit):
(WebCore::WHLSL::Checker::resolveFunction):
(WebCore::WHLSL::Checker::assignConcreteType):
(WebCore::WHLSL::resolveWithOperatorLength): Deleted.
(WebCore::WHLSL::Checker::genericPointerType): Deleted.
(WebCore::WHLSL::Checker::finishVisiting): Deleted.
- Modules/webgpu/WHLSL/WHLSLHighZombieFinder.cpp:
(WebCore::WHLSL::findHighZombies):
(): Deleted.
- Modules/webgpu/WHLSL/WHLSLInferTypes.cpp:
(WebCore::WHLSL::matchAndCommit):
(WebCore::WHLSL::commit):
- Modules/webgpu/WHLSL/WHLSLIntrinsics.h:
(WebCore::WHLSL::Intrinsics::boolVectorTypeForSize const):
(WebCore::WHLSL::Intrinsics::uintVectorTypeForSize const):
(WebCore::WHLSL::Intrinsics::intVectorTypeForSize const):
(WebCore::WHLSL::Intrinsics::floatVectorTypeForSize const):
- Modules/webgpu/WHLSL/WHLSLLexer.cpp:
(WebCore::WHLSL::Lexer::consumeTokenFromStream):
- Modules/webgpu/WHLSL/WHLSLLiteralTypeChecker.cpp:
- Modules/webgpu/WHLSL/WHLSLParser.cpp:
(WebCore::WHLSL::Parser::parseConstantExpression):
(WebCore::WHLSL::Parser::parseEnumerationMember):
(WebCore::WHLSL::Parser::parseTerm):
- Modules/webgpu/WHLSL/WHLSLPrepare.cpp:
(WebCore::WHLSL::prepareShared):
- Modules/webgpu/WHLSL/WHLSLProgram.cpp: Added.
(WebCore::WHLSL::Program::isValidVectorProperty):
- Modules/webgpu/WHLSL/WHLSLProgram.h:
- Modules/webgpu/WHLSL/WHLSLPropertyResolver.cpp:
(WebCore::WHLSL::resolveProperties):
(WebCore::WHLSL::PropertyResolver::visit): Deleted.
(WebCore::WHLSL::wrapAnderCallArgument): Deleted.
(WebCore::WHLSL::anderCallArgument): Deleted.
(WebCore::WHLSL::setterCall): Deleted.
(WebCore::WHLSL::getterCall): Deleted.
(WebCore::WHLSL::modify): Deleted.
(WebCore::WHLSL::PropertyResolver::simplifyRightValue): Deleted.
(WebCore::WHLSL::LeftValueSimplifier::finishVisiting): Deleted.
(WebCore::WHLSL::LeftValueSimplifier::visit): Deleted.
(WebCore::WHLSL::PropertyResolver::simplifyLeftValue): Deleted.
- Modules/webgpu/WHLSL/WHLSLPruneUnreachableStandardLibraryFunctions.cpp:
- Modules/webgpu/WHLSL/WHLSLStandardLibrary.txt:
- Modules/webgpu/WHLSL/WHLSLStandardLibraryUtilities.cpp:
- Modules/webgpu/WHLSL/WHLSLSynthesizeArrayOperatorLength.cpp: Removed.
- Modules/webgpu/WHLSL/WHLSLSynthesizeArrayOperatorLength.h: Removed.
- Modules/webgpu/WHLSL/WHLSLSynthesizeEnumerationFunctions.cpp:
(WebCore::WHLSL::synthesizeEnumerationFunctions):
- Modules/webgpu/WHLSL/WHLSLVisitor.cpp:
(WebCore::WHLSL::Visitor::visit):
- Modules/webgpu/WHLSL/WHLSLVisitor.h:
- Sources.txt:
- WebCore.xcodeproj/project.pbxproj:
LayoutTests:
- webgpu/whlsl/address-of-swizzle-expected.txt: Added.
- webgpu/whlsl/address-of-swizzle.html: Added.
- webgpu/whlsl/array-oob-alias-expected.txt: Copied from LayoutTests/webgpu/whlsl/structure-field-access-on-null-expected.txt.
- webgpu/whlsl/array-oob-alias.html: Copied from LayoutTests/webgpu/whlsl/structure-field-access-on-null.html.
- webgpu/whlsl/bad-ander-expected.txt: Removed.
- webgpu/whlsl/bad-ander.html: Removed.
- webgpu/whlsl/duplicate-types-should-not-produce-duplicate-ctors.html:
- webgpu/whlsl/increment-setter.html:
- webgpu/whlsl/index-ander-expected.txt: Removed.
- webgpu/whlsl/index-ander.html: Removed.
- webgpu/whlsl/index-setter-getter-expected.txt: Removed.
- webgpu/whlsl/index-setter-getter.html: Removed.
- webgpu/whlsl/make-array-reference.html:
- webgpu/whlsl/matrix-index-assign-expected.txt: Added.
- webgpu/whlsl/matrix-index-assign.html: Added.
- webgpu/whlsl/matrix-index-order-expected.txt: Added.
- webgpu/whlsl/matrix-index-order.html: Added.
- webgpu/whlsl/matrix-memory-layout.html:
- webgpu/whlsl/matrix.html:
- webgpu/whlsl/null-arg-expected.txt:
- webgpu/whlsl/null-arg.html:
- webgpu/whlsl/null-dereference-expected.txt: Removed.
- webgpu/whlsl/null-dereference.html: Removed.
- webgpu/whlsl/oob-access-2-expected.txt: Added.
- webgpu/whlsl/oob-access-2.html: Added.
- webgpu/whlsl/oob-access.html:
- webgpu/whlsl/operator-syntax-expected.txt: Added.
- webgpu/whlsl/operator-syntax.html: Added.
- webgpu/whlsl/operator-vector-assign.html:
- webgpu/whlsl/operator-vector-load.html:
- webgpu/whlsl/override-subscript-expected.txt: Removed.
- webgpu/whlsl/override-subscript.html: Removed.
- webgpu/whlsl/propertyresolver/ander-abstract-lvalue-expected.html: Removed.
- webgpu/whlsl/propertyresolver/ander-abstract-lvalue.html: Removed.
- webgpu/whlsl/propertyresolver/ander-expected.html: Removed.
- webgpu/whlsl/propertyresolver/ander-lvalue-3-levels-expected.html: Removed.
- webgpu/whlsl/propertyresolver/ander-lvalue-3-levels.html: Removed.
- webgpu/whlsl/propertyresolver/ander-lvalue-expected.html: Removed.
- webgpu/whlsl/propertyresolver/ander-lvalue.html: Removed.
- webgpu/whlsl/propertyresolver/ander.html: Removed.
- webgpu/whlsl/propertyresolver/getter-expected.html: Removed.
- webgpu/whlsl/propertyresolver/getter.html: Removed.
- webgpu/whlsl/propertyresolver/indexer-ander-abstract-lvalue-expected.html: Removed.
- webgpu/whlsl/propertyresolver/indexer-ander-abstract-lvalue.html: Removed.
- webgpu/whlsl/propertyresolver/indexer-ander-expected.html: Removed.
- webgpu/whlsl/propertyresolver/indexer-ander-lvalue-3-levels-expected.html: Removed.
- webgpu/whlsl/propertyresolver/indexer-ander-lvalue-3-levels.html: Removed.
- webgpu/whlsl/propertyresolver/indexer-ander-lvalue-expected.html: Removed.
- webgpu/whlsl/propertyresolver/indexer-ander-lvalue.html: Removed.
- webgpu/whlsl/propertyresolver/indexer-ander.html: Removed.
- webgpu/whlsl/propertyresolver/indexer-getter-expected.html: Removed.
- webgpu/whlsl/propertyresolver/indexer-getter.html: Removed.
- webgpu/whlsl/propertyresolver/indexer-setter-abstract-lvalue-3-levels-expected.html: Removed.
- webgpu/whlsl/propertyresolver/indexer-setter-abstract-lvalue-3-levels.html: Removed.
- webgpu/whlsl/propertyresolver/indexer-setter-abstract-lvalue-expected.html: Removed.
- webgpu/whlsl/propertyresolver/indexer-setter-abstract-lvalue.html: Removed.
- webgpu/whlsl/propertyresolver/indexer-setter-expected.html: Removed.
- webgpu/whlsl/propertyresolver/indexer-setter-lvalue-expected.html: Removed.
- webgpu/whlsl/propertyresolver/indexer-setter-lvalue.html: Removed.
- webgpu/whlsl/propertyresolver/indexer-setter.html: Removed.
- webgpu/whlsl/propertyresolver/setter-abstract-lvalue-3-levels-expected.html: Removed.
- webgpu/whlsl/propertyresolver/setter-abstract-lvalue-3-levels.html: Removed.
- webgpu/whlsl/propertyresolver/setter-abstract-lvalue-expected.html: Removed.
- webgpu/whlsl/propertyresolver/setter-abstract-lvalue.html: Removed.
- webgpu/whlsl/propertyresolver/setter-lvalue-expected.html: Removed.
- webgpu/whlsl/propertyresolver/setter-lvalue.html: Removed.
- webgpu/whlsl/setter-spec-tests.html:
- webgpu/whlsl/simple-getter-setter-expected.txt:
- webgpu/whlsl/simple-getter-setter.html:
- webgpu/whlsl/structure-field-access-on-null-expected.txt: Removed.
- webgpu/whlsl/structure-field-access-on-null.html: Removed.
- webgpu/whlsl/test-harness-test.html:
- 3:59 PM Changeset in webkit [249350] by
-
- 10 edits in trunk/Source/WebKit
[PSON] We no longer need to throw away suspended pages in a process before using it for a navigation
https://bugs.webkit.org/show_bug.cgi?id=201344
Reviewed by Antti Koivisto.
We no longer need to throw away suspended pages in a process before using it for a navigation, now that
Bug 201225 has been fixed. WebPage objects (suspended or live) in the process now have distinct
identifiers and can coexist.
- Shared/API/Cocoa/RemoteObjectRegistry.h:
- Shared/API/Cocoa/RemoteObjectRegistry.mm:
(WebKit::RemoteObjectRegistry::RemoteObjectRegistry):
- UIProcess/Cocoa/UIRemoteObjectRegistry.cpp:
(WebKit::UIRemoteObjectRegistry::UIRemoteObjectRegistry):
- WebProcess/WebPage/Cocoa/WebRemoteObjectRegistry.cpp:
(WebKit::WebRemoteObjectRegistry::WebRemoteObjectRegistry):
(WebKit::WebRemoteObjectRegistry::close):
- 3:45 PM Changeset in webkit [249349] by
-
- 13 edits in trunk/Source/WebCore
[LFC] Pass FormattingContext to Geometry/Quirks/BlockMarginCollapsing classes
https://bugs.webkit.org/show_bug.cgi?id=201355
<rdar://problem/54895959>
Reviewed by Antti Koivisto.
This is in preparation for enforcing LFC to not call outside of the formatting context.
LayoutState::displayBoxForLayoutBox calls will be forced to go through the FormattingContext class to
check LFC escaping.
- layout/FormattingContext.h:
(WebCore::Layout::FormattingContext::isBlockFormattingContext const):
(WebCore::Layout::FormattingContext::isInlineFormattingContext const):
(WebCore::Layout::FormattingContext::isTableFormattingContext const):
(WebCore::Layout::FormattingContext::Geometry::layoutState const):
(WebCore::Layout::FormattingContext::Geometry::layoutState):
(WebCore::Layout::FormattingContext::Geometry::formattingContext const):
(WebCore::Layout::FormattingContext::geometry const):
(WebCore::Layout::FormattingContext::Quirks::layoutState const):
(WebCore::Layout::FormattingContext::Quirks::layoutState):
(WebCore::Layout::FormattingContext::Quirks::formattingContext const):
(WebCore::Layout::FormattingContext::quirks const):
(WebCore::Layout::FormattingContext::Geometry::Geometry):
(WebCore::Layout::FormattingContext::Quirks::Quirks):
- layout/FormattingContextGeometry.cpp:
(WebCore::Layout::FormattingContext::Geometry::computedHeightValue const):
- layout/FormattingContextQuirks.cpp:
(WebCore::Layout::FormattingContext::Quirks::heightValueOfNearestContainingBlockWithFixedHeight):
- layout/blockformatting/BlockFormattingContext.h:
(WebCore::Layout::BlockFormattingContext::Geometry::formattingContext const):
(WebCore::Layout::BlockFormattingContext::geometry const):
(WebCore::Layout::BlockFormattingContext::MarginCollapse::layoutState):
(WebCore::Layout::BlockFormattingContext::MarginCollapse::layoutState const):
(WebCore::Layout::BlockFormattingContext::MarginCollapse::formattingContext const):
(WebCore::Layout::BlockFormattingContext::marginCollapse const):
(WebCore::Layout::BlockFormattingContext::Quirks::formattingContext const):
(WebCore::Layout::BlockFormattingContext::quirks const):
(WebCore::Layout::BlockFormattingContext::Geometry::Geometry):
(WebCore::Layout::BlockFormattingContext::Quirks::Quirks):
(WebCore::Layout::BlockFormattingContext::MarginCollapse::MarginCollapse):
- layout/blockformatting/BlockFormattingContextGeometry.cpp:
(WebCore::Layout::BlockFormattingContext::Geometry::inFlowNonReplacedHeightAndMargin):
(WebCore::Layout::BlockFormattingContext::Geometry::inFlowHeightAndMargin):
- layout/blockformatting/BlockFormattingContextQuirks.cpp:
(WebCore::Layout::BlockFormattingContext::Quirks::stretchedInFlowHeight):
- layout/blockformatting/BlockMarginCollapse.cpp:
(WebCore::Layout::BlockFormattingContext::MarginCollapse::positiveNegativeValues):
(WebCore::Layout::BlockFormattingContext::MarginCollapse::positiveNegativeMarginBefore):
(WebCore::Layout::BlockFormattingContext::MarginCollapse::estimatedMarginBefore):
- layout/inlineformatting/InlineFormattingContext.h:
(WebCore::Layout::InlineFormattingContext::InlineLayout::layoutState const):
(WebCore::Layout::InlineFormattingContext::InlineLayout::formattingContext const):
(WebCore::Layout::InlineFormattingContext::InlineLayout::formattingRoot const):
(WebCore::Layout::InlineFormattingContext::Quirks::formattingContext const):
(WebCore::Layout::InlineFormattingContext::quirks const):
(WebCore::Layout::InlineFormattingContext::Geometry::formattingContext const):
(WebCore::Layout::InlineFormattingContext::geometry const):
(WebCore::Layout::InlineFormattingContext::Geometry::Geometry):
(WebCore::Layout::InlineFormattingContext::Quirks::Quirks):
- layout/inlineformatting/InlineFormattingContextLineLayout.cpp:
(WebCore::Layout::LineLayout::LineLayout):
(WebCore::Layout::InlineFormattingContext::InlineLayout::InlineLayout):
(WebCore::Layout::InlineFormattingContext::InlineLayout::layout const):
(WebCore::Layout::InlineFormattingContext::InlineLayout::computedIntrinsicWidth const):
(WebCore::Layout::InlineFormattingContext::InlineLayout::createDisplayRuns const):
- layout/inlineformatting/InlineLine.cpp:
(WebCore::Layout::Line::Line):
(WebCore::Layout::Line::isVisuallyEmpty const):
(WebCore::Layout::Line::close):
(WebCore::Layout::Line::appendNonReplacedInlineBox):
(WebCore::Layout::Line::adjustBaselineAndLineHeight):
(WebCore::Layout::Line::inlineItemContentHeight const):
(WebCore::Layout::Line::layoutState const):
(WebCore::Layout::Line::formattingContext const):
- layout/inlineformatting/InlineLine.h:
- layout/tableformatting/TableFormattingContext.h:
(WebCore::Layout::TableFormattingContext::Geometry::formattingContext const):
(WebCore::Layout::TableFormattingContext::geometry const):
(WebCore::Layout::TableFormattingContext::Geometry::Geometry):
- page/FrameViewLayoutContext.cpp:
(WebCore::layoutUsingFormattingContext):
- 3:03 PM Changeset in webkit [249348] by
-
- 3 edits2 adds in trunk/Tools
results.webkit.org: Add endpoints to upload and download archives
https://bugs.webkit.org/show_bug.cgi?id=201100
Reviewed by Aakash Jain.
Add the endpoint to upload and download a zip archive associated with a test run.
- resultsdbpy/resultsdbpy/controller/api_routes.py:
(APIRoutes.init): Add archive endpoint.
- resultsdbpy/resultsdbpy/controller/archive_controller.py: Added.
(ArchiveController):
(ArchiveController.init):
(ArchiveController.endpoint):
(ArchiveController.download):
(ArchiveController.upload):
- resultsdbpy/resultsdbpy/controller/archive_controller_unittest.py: Added.
(ArchiveControllerUnittest):
- resultsdbpy/resultsdbpy/model/configuration_context.py:
(ClusteredByConfiguration.register_configuration): Make error message more clear.
- 3:02 PM Changeset in webkit [249347] by
-
- 2 edits in trunk/Source/JavaScriptCore
Remove some obsolete statements that have no effect.
https://bugs.webkit.org/show_bug.cgi?id=201357
Reviewed by Saam Barati.
This patch removes 3 statements that look like this:
result->butterfly(); Ensure that the butterfly is in to-space.
The statement just reads a field and does nothing with it. This is a no-op
logic-wise, and the comment that accompanies it is obsolete.
- dfg/DFGOperations.cpp:
- 2:45 PM Changeset in webkit [249346] by
-
- 3 edits in trunk/Source/WebKit
Assertion hit when saving to PDF from printing dialog
https://bugs.webkit.org/show_bug.cgi?id=201351
Reviewed by Tim Horton.
[WKPrintingView knowsPageRange:] may get called from a background thread and ends up calling
WeakPtr::get() which asserts because it is generally unsafe to get the raw pointer from a
WeakPtr to an object owned by another thread. However, the methods here merely want to null
check it so add a thread-safe method (pageIsClosed()) to WebFrameProxy for it.
- UIProcess/WebFrameProxy.h:
(WebKit::WebFrameProxy::pageIsClosed const):
- UIProcess/mac/WKPrintingView.mm:
(-[WKPrintingView knowsPageRange:]):
- 2:18 PM Changeset in webkit [249345] by
-
- 2 edits in trunk/Source/JavaScriptCore
Fix a bug in SlotVisitor::reportZappedCellAndCrash() and also capture more information.
https://bugs.webkit.org/show_bug.cgi?id=201345
Reviewed by Yusuke Suzuki.
This patch fixes a bug where SlotVisitor::reportZappedCellAndCrash() was using
the wrong pointer for capture the cell headerWord and zapReason. As a result,
we get junk for those 2 values.
Previously, we were only capturing the upper 32-bits of the cell header slot,
and the lower 32-bit of the next slot in the zapped cell. We now capture the
full 64-bits of both slots. If the second slot did not contain a zapReason as we
expect, the upper 32-bits might give us a clue as to what type of value the slot
contains.
This patch also adds capturing of the found MarkedBlock address for the zapped
cell, as well as some state bit values.
- heap/SlotVisitor.cpp:
(JSC::SlotVisitor::reportZappedCellAndCrash):
- 1:33 PM Changeset in webkit [249344] by
-
- 13 edits in trunk
Unreviewed, rolling out r249338.
Caused 500+ layout test failures on WK1
Reverted changeset:
"Add support for postMessage buffering between the service
worker and window"
https://bugs.webkit.org/show_bug.cgi?id=201169
https://trac.webkit.org/changeset/249338
- 1:27 PM Changeset in webkit [249343] by
-
- 6 edits in trunk/Source
Remove HAVE_CFNETWORK_WITH_AUTO_ADDED_HTTP_HEADER_SUPPRESSION_SUPPORT conditional
https://bugs.webkit.org/show_bug.cgi?id=201280
Reviewed by Youenn Fablet.
Source/WebCore/PAL:
- pal/spi/cf/CFNetworkSPI.h:
Source/WebKit:
- NetworkProcess/cocoa/NetworkSessionCocoa.mm:
(WebKit::NetworkSessionCocoa::NetworkSessionCocoa):
Source/WTF:
- wtf/Platform.h:
- 1:26 PM Changeset in webkit [249342] by
-
- 6 edits in trunk/Source
Remove HAVE_CFNETWORK_WITH_IGNORE_HSTS conditional
https://bugs.webkit.org/show_bug.cgi?id=201279
Reviewed by Darin Adler.
Source/WebCore:
- platform/network/mac/WebCoreURLResponse.mm:
(WebCore::synthesizeRedirectResponseIfNecessary):
(WebCore::schemeWasUpgradedDueToDynamicHSTS): Deleted.
Source/WebKit:
- NetworkProcess/cocoa/NetworkSessionCocoa.mm:
(ignoreHSTS):
(updateIgnoreStrictTransportSecuritySettingIfNecessary):
(-[WKNetworkSessionDelegate URLSession:task:willPerformHTTPRedirection:newRequest:completionHandler:]):
(-[WKNetworkSessionDelegate URLSession:task:_schemeUpgraded:completionHandler:]):
Source/WTF:
- wtf/Platform.h:
- 1:23 PM Changeset in webkit [249341] by
-
- 3 edits in trunk/Source/WebKit
Allow process cache to cache processes when using a non-default persistent WebsiteDataStore
https://bugs.webkit.org/show_bug.cgi?id=201329
Reviewed by Chris Dumez.
Treat all persistent sessions the same when deciding whether to clear all cached web processes using a particular website data store.
This removes a huge performance regression on warm plt when switching to using a non-default persistent session.
I also removed a call to removeSession which is redundant with the one in the WebsiteDataStore destructor, which is where it should be.
- UIProcess/WebProcessCache.cpp:
(WebKit::WebProcessCache::canCacheProcess const):
- UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::pageBeginUsingWebsiteDataStore):
(WebKit::WebProcessPool::pageEndUsingWebsiteDataStore):
- 1:18 PM Changeset in webkit [249340] by
-
- 2 edits in trunk/Source/WTF
Fix non-iOS iOS-family and catalyst builds after r249019
https://bugs.webkit.org/show_bug.cgi?id=200945
- wtf/Platform.h:
State that they have tls_protocol_version_t
- 12:28 PM Changeset in webkit [249339] by
-
- 8 edits2 adds in trunk
Caret does not appear in text field inside a transformed, overflow: hidden container
https://bugs.webkit.org/show_bug.cgi?id=201317
<rdar://problem/54859264>
Reviewed by Simon Fraser.
Source/WebCore:
This patch refactors the heuristic for determining whether to suppress selection gestures and UI in a way that
fixes the corner case encountered in this bug. To understand why this test case fails with our existing
heuristic, consider the below test case.
Let's say we have an input field inside an "overflow: hidden;" container, which is positioned in such a way that
it is completely clipped by its enclosing container which is also "overflow: hidden". Our existing logic would
appropriately identify this as a hidden editable element.
However, let's now apply a transform to the input field's closest "overflow: hidden" ancestor, such that the
field is now visible. Since RenderLayer::offsetFromAncestor doesn't take transforms into account when we try to
find the offset of the "overflow: hidden" layer relative to the root view, we end up passing an offsetFromRoot
of (0, 100vw) to RenderLayer::calculateClipRects, which computes a background clip rect of (0, 0, 100vw, 100vh).
This means that at the end of RenderLayer::calculateClipRects, we end up intersecting the background clip rect
(0, 0, 100vw, 100vh) against (100vw, 0, 100vw, 100vh), which results in the empty rect, and subsequently makes
us believe we're editing a hidden editable element.
Instead of tacking on more logic to isTransparentOrFullyClippedRespectingParentFrames, we can fix this by using
RenderObject::computeVisibleRectInContainer instead, performing a similar walk up the render tree to compute the
visible rect of each focused element or subframe relative to its root. This is capable of taking transforms into
account. See comments below for more details.
Test: editing/selection/ios/show-selection-in-transformed-container-2.html
- rendering/RenderLayer.cpp:
(WebCore::RenderLayer::isTransparentRespectingParentFrames const):
Split out isTransparentOrFullyClippedRespectingParentFrames into two methods: RenderLayer's
isTransparentRespectingParentFrames, and RenderObject's hasNonEmptyVisibleRectRespectingParentFrames. The
transparency check starts at the enclosing layer and walks up the layer tree, while the non-empty visible rect
check looks for renderers that are completely empty relative to their root views.
- rendering/RenderLayer.h:
- rendering/RenderObject.cpp:
(WebCore::RenderObject::hasNonEmptyVisibleRectRespectingParentFrames const):
Rewrite logic for detecting completely clipped editable areas (that formerly lived in
isTransparentOrFullyClippedRespectingParentFrames) to use computeVisibleRectInContainer instead.
- rendering/RenderObject.h:
Source/WebKit:
Adjust isTransparentOrFullyClipped to use the new methods in RenderLayer and RenderObject. See WebCore ChangeLog
for more details.
- WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::isTransparentOrFullyClipped const):
LayoutTests:
Add a new layout test that covers this scenario. See WebCore ChangeLog for additional detail.
- editing/selection/ios/show-selection-in-transformed-container-2-expected.txt: Added.
- editing/selection/ios/show-selection-in-transformed-container-2.html: Added.
- 12:03 PM Changeset in webkit [249338] by
-
- 13 edits in trunk
Add support for postMessage buffering between the service worker and window
https://bugs.webkit.org/show_bug.cgi?id=201169
Reviewed by Youenn Fablet.
LayoutTests/imported/w3c:
Rebaseline WPT test that is now passing.
- web-platform-tests/service-workers/service-worker/postmessage-to-client-message-queue.https-expected.txt:
Source/WebCore:
As per the Service Worker specification, a service worker client's message
queue is initially disabled and only gets enabled after:
- The DOMContentLoaded event has been fired
or
- The client sets the navigator.serviceWorker.onmessage event handler
or
- navigator.serviceWorker.startMessages() is called
While the message queue is disabled, messages posted by the service worker
to the client simply get queued and only get processed once the queue gets
enabled.
No new tests, rebaselined existing test.
- dom/Document.cpp:
(WebCore::Document::finishedParsing):
Call startMessages() on the ServiceWorkerContainer once the DOMContentLoaded event has
been fired.
- dom/ScriptExecutionContext.cpp:
(WebCore::ScriptExecutionContext::ensureServiceWorkerContainer):
- dom/ScriptExecutionContext.h:
- workers/service/SWClientConnection.cpp:
(WebCore::SWClientConnection::postMessageToServiceWorkerClient):
Fix a bug where a service worker would not be able to post a message to a client until
that client has accessed navigator.serviceWorker (since the ServiceWorkerContainer is
lazy initialized). To address the issue, we now initialize the ServiceWorkerContainer
when a message is received from the service worker. Previously, messages were just
getting dropped.
- workers/service/ServiceWorkerContainer.cpp:
(WebCore::ServiceWorkerContainer::ServiceWorkerContainer):
When the ServiceWorkerContainer is constructed, suspend its message queue if its context
document is still parsing.
(WebCore::ServiceWorkerContainer::startMessages):
Resume the message queue when startMessages() is called.
(WebCore::ServiceWorkerContainer::postMessage):
Enqueue the event instead of firing it right away.
(WebCore::ServiceWorkerContainer::addEventListener):
if navigator.serviceWorker.onmessage event handler gets set by the JavaScript, call
startMessages().
- workers/service/ServiceWorkerContainer.h:
LayoutTests:
Unskip test that is no longer timing out.
- resources/testharnessreport.js:
(self.testRunner.add_completion_callback):
Use testRunner.forceImmediateCompletion() instead of notifyDone() for WPT tests.
testRunner.notifyDone() does not work in case of load error or when the load
does not finish. The WPT test was timing out because the load does not finish for
testing purposes.
- 11:53 AM Changeset in webkit [249337] by
-
- 5 edits1 add in trunk
[JSC] Generate new.target register only when it is used
https://bugs.webkit.org/show_bug.cgi?id=201335
Reviewed by Mark Lam.
JSTests:
- stress/ensure-new-register-allocated.js: Added.
(shouldBe):
(basic):
(arrow):
(Base):
(Derived):
(evaluate):
Source/JavaScriptCore:
Since bytecode generator knows whether new.target register can be used, we should emit and use new.target register
only when it is actually required.
- bytecompiler/BytecodeGenerator.cpp:
(JSC::BytecodeGenerator::BytecodeGenerator):
- bytecompiler/BytecodeGenerator.h:
(JSC::BytecodeGenerator::newTarget):
- parser/Nodes.h:
(JSC::ScopeNode::needsNewTargetRegisterForThisScope const):
- 11:23 AM Changeset in webkit [249336] by
-
- 8 edits in trunk
Add system tracing points for compositing updates, and touch-event dispatching
https://bugs.webkit.org/show_bug.cgi?id=201327
Reviewed by Alex Christensen.
Source/WebCore:
TraceScope in RenderLayerCompositor::updateCompositingLayers().
- rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::updateCompositingLayers):
Source/WebKit:
TraceScope in EventDispatcher::dispatchTouchEvents().
- WebProcess/WebPage/EventDispatcher.cpp:
(WebKit::EventDispatcher::dispatchTouchEvents):
Source/WTF:
- wtf/SystemTracing.h:
Tools:
- Tracing/SystemTracePoints.plist:
- 11:20 AM Changeset in webkit [249335] by
-
- 33 edits in trunk/Source
[FTW] Use DirectX SharedResource as basis for SharedBitmap
https://bugs.webkit.org/show_bug.cgi?id=201157
Reviewed by Alex Christensen.
Source/WebCore:
Currently an ID2D1Bitmap is used as the backing store for the SharedBitmap that is the
base type for sharing data between the WebContent Process and the UIProcess. However, this
involves moving GPU memory to local memory, copying that memory into the SharedMemory member
of the SharedBitmap, then building a new GPU bitmap on the UIProcess side from that SharedMemory.
Profiling indicates that this is the single largest place FTW WebKit spends its time.
Instead, we should use Direct2D's ability to render to an IDXGISurface, which can be shared
between multiple processes. This should avoid the GPU->CPU copy, the Direct2D-allocated
CPU->Shared Memory copy, and the shared memory to GPU copy.
- platform/graphics/win/BackingStoreBackendDirect2D.h:
(WebCore::BackingStoreBackendDirect2D::renderTarget const): Change type.
(WebCore::BackingStoreBackendDirect2D::dxSurface const): Added.
(WebCore::BackingStoreBackendDirect2D::BackingStoreBackendDirect2D): Require a DXD11 device.
- platform/graphics/win/BackingStoreBackendDirect2DImpl.cpp:
(WebCore::BackingStoreBackendDirect2DImpl::BackingStoreBackendDirect2DImpl): Use Direct2D's
IDXGISurface to make a render target we can use to support our fast cross-process sharing.
(WebCore::BackingStoreBackendDirect2DImpl::scroll):
- platform/graphics/win/BackingStoreBackendDirect2DImpl.h:
- platform/graphics/win/Direct2DOperations.cpp:
(WebCore::Direct2D::fillRect): Remove unneeded PlatformContextStateSaver.
(WebCore::Direct2D::fillRoundedRect): Ditto.
(WebCore::Direct2D::fillRectWithGradient): Ditto.
(WebCore::Direct2D::fillPath): Ditto.
(WebCore::Direct2D::strokePath): Ditto.
- platform/graphics/win/Direct2DUtilities.cpp:
(WebCore::Direct2D::pixelFormat): Switch to constants for bitmap format.
(WebCore::Direct2D::createDXGISurfaceOfSize): Added.
(WebCore::Direct2D::createSurfaceRenderTarget): Added.
(WebCore::Direct2D::writeDiagnosticPNGToPath):
(WebCore::Direct2D::dxgiImmediateContext): Added.
(WebCore::Direct2D::defaultDirectXDevice): Added.
(WebCore::Direct2D::createDeviceAndContext): Added.
(WebCore::Direct2D::toDXGIDevice): Added.
(WebCore::Direct2D::factoryForDXGIDevice): Added.
- platform/graphics/win/Direct2DUtilities.h:
Source/WebKit:
Currently an ID2D1Bitmap is used as the backing store for the SharedBitmap that is the
base type for sharing data between the WebContent Process and the UIProcess. However, this
involves moving GPU memory to local memory, copying that memory into the SharedMemory member
of the SharedBitmap, then building a new GPU bitmap on the UIProcess side from that SharedMemory.
Profiling indicates that this is the single largest place FTW WebKit spends its time.
Instead, we should use Direct2D's ability to render to an IDXGISurface, which can be shared
between multiple processes. This should avoid the GPU->CPU copy, the Direct2D-allocated
CPU->Shared Memory copy, and the shared memory to GPU copy.
Reviewed by Alex Christensen.
- Platform/SharedMemory.h:
- Platform/win/SharedMemoryWin.cpp:
(WebKit::SharedMemory::Handle::encodeHandle): Added.
(WebKit::SharedMemory::Handle::encode const): Use new helper function.
(WebKit::SharedMemory::Handle::decodeHandle): Added.
(WebKit::SharedMemory::Handle::decode): Use new helper function.
- PlatformFTW.cmake: Add D3X11 libraries.
- Shared/ShareableBitmap.cpp:
(WebKit::ShareableBitmap::Configuration::encode const): Encode shared resource handle for DX texture.
(WebKit::ShareableBitmap::Configuration::decode): Ditto (but decode).
(WebKit::ShareableBitmap::ShareableBitmap): Create SharedResource (if needed).
(WebKit::ShareableBitmap::~ShareableBitmap): Add cleanup code for SharedResoure.
(WebKit::ShareableBitmap::numBytesForSize): Only allocate a small memory store when using GPU textures.
- Shared/ShareableBitmap.h:
(WebKit::ShareableBitmap::dxSurface):
- Shared/win/ShareableBitmapDirect2D.cpp:
(WebKit::ShareableBitmap::createSharedResource): Added.
(WebKit::ShareableBitmap::disposeSharedResource): Added.
(WebKit::ShareableBitmap::leakSharedResource): Added.
(WebKit::ShareableBitmap::createGraphicsContext): Update for new data types.
(WebKit::ShareableBitmap::paint): Ditto.
(WebKit::ShareableBitmap::createDirect2DSurface): Update for new data types.
(WebKit::ShareableBitmap::createImage): Ditto.
(WebKit::createSurfaceFromData): Deleted.
(WebKit::ShareableBitmap::sync): Deleted.
- UIProcess/BackingStore.cpp:
- UIProcess/BackingStore.h:
- UIProcess/CoordinatedGraphics/DrawingAreaProxyCoordinatedGraphics.cpp:
- UIProcess/WebPageProxy.cpp:
- UIProcess/WebPageProxy.h:
- UIProcess/win/BackingStoreDirect2D.cpp:
(WebKit::BackingStore::createBackend):
(WebKit::BackingStore::paint):
(WebKit::BackingStore::incorporateUpdate):
- UIProcess/win/PageClientImpl.cpp:
- UIProcess/win/WebPageProxyWin.cpp:
(WebKit::WebPageProxy::device const):
(WebKit::WebPageProxy::setDevice):
- UIProcess/win/WebView.cpp:
(WebKit::WebView::WebView): Initialize DirectX stuff.
(WebKit::WebView::paint): Use new DiretX drawing logic.
(WebKit::WebView::onSizeEvent): Update SwapChain's buffer sizes when resizing.
(WebKit::WebView::setupSwapChain): Added.
(WebKit::WebView::configureBackingStore): Added.
- UIProcess/win/WebView.h:
(WebKit::WebView::d3dDevice):
- WebProcess/WebPage/CoordinatedGraphics/DrawingAreaCoordinatedGraphics.cpp:
(WebKit::DrawingAreaCoordinatedGraphics::display):
Source/WebKitLegacy:
- PlatformFTW.cmake: Link to DirectX to avoid build failure.
- 11:02 AM Changeset in webkit [249334] by
-
- 2 edits in trunk/LayoutTests/imported/w3c
Bind WPT server hostname
https://bugs.webkit.org/show_bug.cgi?id=201334
Reviewed by Alex Christensen.
Make WPT server bind to localhost/127.0.0.1 only.
- resources/config.json:
- 10:19 AM Changeset in webkit [249333] by
-
- 10 edits in trunk/Source/WebCore
IndexedDB: update size of database when database operation is completed
https://bugs.webkit.org/show_bug.cgi?id=201057
Reviewed by Youenn Fablet.
Currently when a database operation was completed, we re-computed the disk usage of the origin. This computation
listed all databases in the origin directory and read the size of each database file, which was very inefficient
because the completed operation should only affect one database.
This patch makes UniqueIDBDatabase keep track of database size and reports size change to QuotaUser.
Tested PerformanceTests/IndexedDB/basic/objectstore-add.html on release build minibrowser. This change makes
the test over 50% faster.
- Modules/indexeddb/server/IDBBackingStore.h:
- Modules/indexeddb/server/IDBServer.cpp:
(WebCore::IDBServer::IDBServer::QuotaUser::increaseSpaceUsed):
(WebCore::IDBServer::IDBServer::QuotaUser::decreaseSpaceUsed):
(WebCore::IDBServer::IDBServer::computeSpaceUsedForOrigin):
(WebCore::IDBServer::IDBServer::increaseSpaceUsed):
(WebCore::IDBServer::IDBServer::decreaseSpaceUsed):
(WebCore::IDBServer::IDBServer::setSpaceUsed): Deleted.
- Modules/indexeddb/server/IDBServer.h:
- Modules/indexeddb/server/MemoryIDBBackingStore.cpp:
(WebCore::IDBServer::MemoryIDBBackingStore::databaseSize const):
(WebCore::IDBServer::MemoryIDBBackingStore::close):
(WebCore::IDBServer::MemoryIDBBackingStore::databasesSizeForOrigin const): Deleted.
- Modules/indexeddb/server/MemoryIDBBackingStore.h:
- Modules/indexeddb/server/SQLiteIDBBackingStore.cpp:
(WebCore::IDBServer::SQLiteIDBBackingStore::databasesSizeForDirectory):
(WebCore::IDBServer::SQLiteIDBBackingStore::databaseSize const):
(WebCore::IDBServer::SQLiteIDBBackingStore::close):
(WebCore::IDBServer::SQLiteIDBBackingStore::databasesSizeForFolder): Deleted.
(WebCore::IDBServer::SQLiteIDBBackingStore::databasesSizeForOrigin const): Deleted.
- Modules/indexeddb/server/SQLiteIDBBackingStore.h:
- Modules/indexeddb/server/UniqueIDBDatabase.cpp:
(WebCore::IDBServer::UniqueIDBDatabase::deleteBackingStore):
(WebCore::IDBServer::UniqueIDBDatabase::shutdownForClose):
(WebCore::IDBServer::UniqueIDBDatabase::didShutdownForClose):
(WebCore::IDBServer::UniqueIDBDatabase::didDeleteBackingStore):
(WebCore::IDBServer::UniqueIDBDatabase::openBackingStore):
(WebCore::IDBServer::UniqueIDBDatabase::didOpenBackingStore):
(WebCore::IDBServer::UniqueIDBDatabase::postDatabaseTaskReply):
(WebCore::IDBServer::UniqueIDBDatabase::updateSpaceUsedIfNeeded):
- Modules/indexeddb/server/UniqueIDBDatabase.h:
- 10:17 AM Changeset in webkit [249332] by
-
- 3 edits2 adds in trunk
[MSE][GStreamer] Replaying the video should update currentTime
https://bugs.webkit.org/show_bug.cgi?id=201307
Reviewed by Xabier Rodriguez-Calvar.
LayoutTests/imported/w3c:
- web-platform-tests/media-source/mediasource-replay-expected.txt: Added.
- web-platform-tests/media-source/mediasource-replay.html: Added.
Source/WebCore:
While writing a test to confirm that https://bugs.webkit.org/show_bug.cgi?id=190050
has indeed been fixed I noticed a non-conformity: when the video has
ended, right after calling .play() for a second playback currentTime
did not return zero, but the video duration.
This turned to be due to the m_isEndReached flag not being reseted on
seeks (replaying a video incurs in a seek done from multi-platform
code).
Test: imported/w3c/web-platform-tests/media-source/mediasource-replay.html
- platform/graphics/gstreamer/mse/MediaPlayerPrivateGStreamerMSE.cpp:
(WebCore::MediaPlayerPrivateGStreamerMSE::seek):
- 10:02 AM Changeset in webkit [249331] by
-
- 20 edits in trunk/Source/WebCore
[LFC] Make Geometry/Quirk/MarginCollapse subclasses stateful.
https://bugs.webkit.org/show_bug.cgi?id=201343
<rdar://problem/54883787>
Reviewed by Antti Koivisto.
This is in preparation for enforcing LFC to not call outside of the formatting context.
- layout/FormattingContext.cpp:
(WebCore::Layout::FormattingContext::computeOutOfFlowHorizontalGeometry):
(WebCore::Layout::FormattingContext::computeOutOfFlowVerticalGeometry):
(WebCore::Layout::FormattingContext::computeBorderAndPadding):
(WebCore::Layout::FormattingContext::layoutOutOfFlowContent):
(WebCore::Layout::FormattingContext::computeOutOfFlowHorizontalGeometry const): Deleted.
(WebCore::Layout::FormattingContext::computeOutOfFlowVerticalGeometry const): Deleted.
(WebCore::Layout::FormattingContext::computeBorderAndPadding const): Deleted.
(WebCore::Layout::FormattingContext::layoutOutOfFlowContent const): Deleted.
- layout/FormattingContext.h:
(WebCore::Layout::FormattingContext::Geometry::layoutState const):
(WebCore::Layout::FormattingContext::Geometry::layoutState):
(WebCore::Layout::FormattingContext::geometry const):
(WebCore::Layout::FormattingContext::Quirks::layoutState const):
(WebCore::Layout::FormattingContext::Quirks::layoutState):
(WebCore::Layout::FormattingContext::quirks const):
(WebCore::Layout::FormattingContext::Geometry::Geometry):
(WebCore::Layout::FormattingContext::Quirks::Quirks):
- layout/FormattingContextGeometry.cpp:
(WebCore::Layout::FormattingContext::Geometry::computedHeightValue const):
(WebCore::Layout::FormattingContext::Geometry::contentHeightForFormattingContextRoot const):
(WebCore::Layout::FormattingContext::Geometry::computedValueIfNotAuto const):
(WebCore::Layout::FormattingContext::Geometry::fixedValue const):
(WebCore::Layout::FormattingContext::Geometry::computedMaxHeight const):
(WebCore::Layout::FormattingContext::Geometry::computedMinHeight const):
(WebCore::Layout::FormattingContext::Geometry::staticVerticalPositionForOutOfFlowPositioned const):
(WebCore::Layout::FormattingContext::Geometry::staticHorizontalPositionForOutOfFlowPositioned const):
(WebCore::Layout::FormattingContext::Geometry::shrinkToFitWidth):
(WebCore::Layout::FormattingContext::Geometry::outOfFlowNonReplacedVerticalGeometry const):
(WebCore::Layout::FormattingContext::Geometry::outOfFlowNonReplacedHorizontalGeometry):
(WebCore::Layout::FormattingContext::Geometry::outOfFlowReplacedVerticalGeometry const):
(WebCore::Layout::FormattingContext::Geometry::outOfFlowReplacedHorizontalGeometry const):
(WebCore::Layout::FormattingContext::Geometry::complicatedCases const):
(WebCore::Layout::FormattingContext::Geometry::floatingNonReplacedWidthAndMargin):
(WebCore::Layout::FormattingContext::Geometry::floatingReplacedHeightAndMargin const):
(WebCore::Layout::FormattingContext::Geometry::floatingReplacedWidthAndMargin const):
(WebCore::Layout::FormattingContext::Geometry::outOfFlowVerticalGeometry const):
(WebCore::Layout::FormattingContext::Geometry::outOfFlowHorizontalGeometry):
(WebCore::Layout::FormattingContext::Geometry::floatingHeightAndMargin const):
(WebCore::Layout::FormattingContext::Geometry::floatingWidthAndMargin):
(WebCore::Layout::FormattingContext::Geometry::inlineReplacedHeightAndMargin const):
(WebCore::Layout::FormattingContext::Geometry::inlineReplacedWidthAndMargin const):
(WebCore::Layout::FormattingContext::Geometry::inFlowPositionedPositionOffset const):
(WebCore::Layout::FormattingContext::Geometry::computedBorder const):
(WebCore::Layout::FormattingContext::Geometry::computedPadding const):
(WebCore::Layout::FormattingContext::Geometry::computedHorizontalMargin const):
(WebCore::Layout::FormattingContext::Geometry::computedVerticalMargin const):
(WebCore::Layout::FormattingContext::Geometry::constrainByMinMaxWidth const):
(WebCore::Layout::FormattingContext::Geometry::computedHeightValue): Deleted.
(WebCore::Layout::FormattingContext::Geometry::contentHeightForFormattingContextRoot): Deleted.
(WebCore::Layout::FormattingContext::Geometry::computedValueIfNotAuto): Deleted.
(WebCore::Layout::FormattingContext::Geometry::fixedValue): Deleted.
(WebCore::Layout::FormattingContext::Geometry::computedMaxHeight): Deleted.
(WebCore::Layout::FormattingContext::Geometry::computedMinHeight): Deleted.
(WebCore::Layout::staticVerticalPositionForOutOfFlowPositioned): Deleted.
(WebCore::Layout::staticHorizontalPositionForOutOfFlowPositioned): Deleted.
(WebCore::Layout::FormattingContext::Geometry::outOfFlowNonReplacedVerticalGeometry): Deleted.
(WebCore::Layout::FormattingContext::Geometry::outOfFlowReplacedVerticalGeometry): Deleted.
(WebCore::Layout::FormattingContext::Geometry::outOfFlowReplacedHorizontalGeometry): Deleted.
(WebCore::Layout::FormattingContext::Geometry::complicatedCases): Deleted.
(WebCore::Layout::FormattingContext::Geometry::floatingReplacedHeightAndMargin): Deleted.
(WebCore::Layout::FormattingContext::Geometry::floatingReplacedWidthAndMargin): Deleted.
(WebCore::Layout::FormattingContext::Geometry::outOfFlowVerticalGeometry): Deleted.
(WebCore::Layout::FormattingContext::Geometry::floatingHeightAndMargin): Deleted.
(WebCore::Layout::FormattingContext::Geometry::inlineReplacedHeightAndMargin): Deleted.
(WebCore::Layout::FormattingContext::Geometry::inlineReplacedWidthAndMargin): Deleted.
(WebCore::Layout::FormattingContext::Geometry::inFlowPositionedPositionOffset): Deleted.
(WebCore::Layout::FormattingContext::Geometry::computedBorder): Deleted.
(WebCore::Layout::FormattingContext::Geometry::computedPadding): Deleted.
(WebCore::Layout::FormattingContext::Geometry::computedHorizontalMargin): Deleted.
(WebCore::Layout::FormattingContext::Geometry::computedVerticalMargin): Deleted.
(WebCore::Layout::FormattingContext::Geometry::constrainByMinMaxWidth): Deleted.
- layout/FormattingContextQuirks.cpp:
(WebCore::Layout::FormattingContext::Quirks::heightValueOfNearestContainingBlockWithFixedHeight):
- layout/blockformatting/BlockFormattingContext.cpp:
(WebCore::Layout::BlockFormattingContext::layout):
(WebCore::Layout::BlockFormattingContext::layoutFormattingContextRoot):
(WebCore::Layout::BlockFormattingContext::placeInFlowPositionedChildren):
(WebCore::Layout::BlockFormattingContext::computeStaticVerticalPosition):
(WebCore::Layout::BlockFormattingContext::computeStaticHorizontalPosition):
(WebCore::Layout::BlockFormattingContext::computeStaticPosition):
(WebCore::Layout::BlockFormattingContext::computeEstimatedVerticalPosition):
(WebCore::Layout::BlockFormattingContext::computeEstimatedVerticalPositionForAncestors):
(WebCore::Layout::BlockFormattingContext::computeEstimatedVerticalPositionForFormattingRoot):
(WebCore::Layout::BlockFormattingContext::computeEstimatedVerticalPositionForFloatClear):
(WebCore::Layout::BlockFormattingContext::computeFloatingPosition):
(WebCore::Layout::BlockFormattingContext::computePositionToAvoidFloats):
(WebCore::Layout::BlockFormattingContext::computeWidthAndMargin):
(WebCore::Layout::BlockFormattingContext::computeHeightAndMargin):
(WebCore::Layout::BlockFormattingContext::computedIntrinsicWidthConstraints):
(WebCore::Layout::BlockFormattingContext::verticalPositionWithMargin const):
(WebCore::Layout::BlockFormattingContext::setEstimatedMarginBefore):
(WebCore::Layout::BlockFormattingContext::layout const): Deleted.
(WebCore::Layout::BlockFormattingContext::layoutFormattingContextRoot const): Deleted.
(WebCore::Layout::BlockFormattingContext::placeInFlowPositionedChildren const): Deleted.
(WebCore::Layout::BlockFormattingContext::computeStaticVerticalPosition const): Deleted.
(WebCore::Layout::BlockFormattingContext::computeStaticHorizontalPosition const): Deleted.
(WebCore::Layout::BlockFormattingContext::computeStaticPosition const): Deleted.
(WebCore::Layout::BlockFormattingContext::computeEstimatedVerticalPosition const): Deleted.
(WebCore::Layout::BlockFormattingContext::computeEstimatedVerticalPositionForAncestors const): Deleted.
(WebCore::Layout::BlockFormattingContext::computeEstimatedVerticalPositionForFormattingRoot const): Deleted.
(WebCore::Layout::BlockFormattingContext::computeEstimatedVerticalPositionForFloatClear const): Deleted.
(WebCore::Layout::BlockFormattingContext::computeFloatingPosition const): Deleted.
(WebCore::Layout::BlockFormattingContext::computePositionToAvoidFloats const): Deleted.
(WebCore::Layout::BlockFormattingContext::computeWidthAndMargin const): Deleted.
(WebCore::Layout::BlockFormattingContext::computeHeightAndMargin const): Deleted.
(WebCore::Layout::BlockFormattingContext::computedIntrinsicWidthConstraints const): Deleted.
(WebCore::Layout::BlockFormattingContext::setEstimatedMarginBefore const): Deleted.
- layout/blockformatting/BlockFormattingContext.h:
(WebCore::Layout::BlockFormattingContext::computeWidthAndMargin):
(WebCore::Layout::BlockFormattingContext::geometry const):
(WebCore::Layout::BlockFormattingContext::MarginCollapse::layoutState):
(WebCore::Layout::BlockFormattingContext::MarginCollapse::layoutState const):
(WebCore::Layout::BlockFormattingContext::marginCollapse const):
(WebCore::Layout::BlockFormattingContext::quirks const):
(WebCore::Layout::BlockFormattingContext::removeEstimatedMarginBefore):
(WebCore::Layout::BlockFormattingContext::Geometry::Geometry):
(WebCore::Layout::BlockFormattingContext::Quirks::Quirks):
(WebCore::Layout::BlockFormattingContext::MarginCollapse::MarginCollapse):
(WebCore::Layout::BlockFormattingContext::removeEstimatedMarginBefore const): Deleted.
- layout/blockformatting/BlockFormattingContextGeometry.cpp:
(WebCore::Layout::BlockFormattingContext::Geometry::inFlowNonReplacedHeightAndMargin):
(WebCore::Layout::BlockFormattingContext::Geometry::inFlowNonReplacedWidthAndMargin const):
(WebCore::Layout::BlockFormattingContext::Geometry::inFlowReplacedWidthAndMargin const):
(WebCore::Layout::BlockFormattingContext::Geometry::staticVerticalPosition const):
(WebCore::Layout::BlockFormattingContext::Geometry::staticHorizontalPosition const):
(WebCore::Layout::BlockFormattingContext::Geometry::staticPosition const):
(WebCore::Layout::BlockFormattingContext::Geometry::inFlowHeightAndMargin):
(WebCore::Layout::BlockFormattingContext::Geometry::inFlowWidthAndMargin):
(WebCore::Layout::BlockFormattingContext::Geometry::intrinsicWidthConstraints):
(WebCore::Layout::BlockFormattingContext::Geometry::inFlowNonReplacedWidthAndMargin): Deleted.
(WebCore::Layout::BlockFormattingContext::Geometry::inFlowReplacedWidthAndMargin): Deleted.
(WebCore::Layout::BlockFormattingContext::Geometry::staticVerticalPosition): Deleted.
(WebCore::Layout::BlockFormattingContext::Geometry::staticHorizontalPosition): Deleted.
(WebCore::Layout::BlockFormattingContext::Geometry::staticPosition): Deleted.
- layout/blockformatting/BlockFormattingContextQuirks.cpp:
(WebCore::Layout::BlockFormattingContext::Quirks::needsStretching const):
(WebCore::Layout::BlockFormattingContext::Quirks::stretchedInFlowHeight):
(WebCore::Layout::BlockFormattingContext::Quirks::shouldIgnoreCollapsedQuirkMargin const):
(WebCore::Layout::BlockFormattingContext::Quirks::needsStretching): Deleted.
(WebCore::Layout::BlockFormattingContext::Quirks::shouldIgnoreCollapsedQuirkMargin): Deleted.
- layout/blockformatting/BlockMarginCollapse.cpp:
(WebCore::Layout::BlockFormattingContext::MarginCollapse::marginBeforeCollapsesWithParentMarginAfter const):
(WebCore::Layout::BlockFormattingContext::MarginCollapse::marginBeforeCollapsesWithParentMarginBefore const):
(WebCore::Layout::BlockFormattingContext::MarginCollapse::marginBeforeCollapsesWithPreviousSiblingMarginAfter const):
(WebCore::Layout::BlockFormattingContext::MarginCollapse::marginBeforeCollapsesWithFirstInFlowChildMarginBefore const):
(WebCore::Layout::BlockFormattingContext::MarginCollapse::marginAfterCollapsesWithSiblingMarginBeforeWithClearance const):
(WebCore::Layout::BlockFormattingContext::MarginCollapse::marginAfterCollapsesWithParentMarginBefore const):
(WebCore::Layout::BlockFormattingContext::MarginCollapse::marginAfterCollapsesWithParentMarginAfter const):
(WebCore::Layout::BlockFormattingContext::MarginCollapse::marginAfterCollapsesWithLastInFlowChildMarginAfter const):
(WebCore::Layout::BlockFormattingContext::MarginCollapse::marginAfterCollapsesWithNextSiblingMarginBefore const):
(WebCore::Layout::BlockFormattingContext::MarginCollapse::marginsCollapseThrough const):
(WebCore::Layout::BlockFormattingContext::MarginCollapse::updateMarginAfterForPreviousSibling const):
(WebCore::Layout::BlockFormattingContext::MarginCollapse::positiveNegativeValues):
(WebCore::Layout::BlockFormattingContext::MarginCollapse::positiveNegativeMarginBefore):
(WebCore::Layout::BlockFormattingContext::MarginCollapse::positiveNegativeMarginAfter):
(WebCore::Layout::BlockFormattingContext::MarginCollapse::estimatedMarginBefore):
(WebCore::Layout::BlockFormattingContext::MarginCollapse::marginBeforeIgnoringCollapsingThrough):
(WebCore::Layout::BlockFormattingContext::MarginCollapse::updatePositiveNegativeMarginValues):
(WebCore::Layout::BlockFormattingContext::MarginCollapse::collapsedVerticalValues):
(WebCore::Layout::BlockFormattingContext::MarginCollapse::marginBeforeCollapsesWithParentMarginAfter): Deleted.
(WebCore::Layout::BlockFormattingContext::MarginCollapse::marginBeforeCollapsesWithParentMarginBefore): Deleted.
(WebCore::Layout::BlockFormattingContext::MarginCollapse::marginBeforeCollapsesWithPreviousSiblingMarginAfter): Deleted.
(WebCore::Layout::BlockFormattingContext::MarginCollapse::marginBeforeCollapsesWithFirstInFlowChildMarginBefore): Deleted.
(WebCore::Layout::BlockFormattingContext::MarginCollapse::marginAfterCollapsesWithSiblingMarginBeforeWithClearance): Deleted.
(WebCore::Layout::BlockFormattingContext::MarginCollapse::marginAfterCollapsesWithParentMarginBefore): Deleted.
(WebCore::Layout::BlockFormattingContext::MarginCollapse::marginAfterCollapsesWithParentMarginAfter): Deleted.
(WebCore::Layout::BlockFormattingContext::MarginCollapse::marginAfterCollapsesWithLastInFlowChildMarginAfter): Deleted.
(WebCore::Layout::BlockFormattingContext::MarginCollapse::marginAfterCollapsesWithNextSiblingMarginBefore): Deleted.
(WebCore::Layout::BlockFormattingContext::MarginCollapse::marginsCollapseThrough): Deleted.
(WebCore::Layout::BlockFormattingContext::MarginCollapse::updateMarginAfterForPreviousSibling): Deleted.
- layout/inlineformatting/InlineFormattingContext.cpp:
(WebCore::Layout::InlineFormattingContext::layout):
(WebCore::Layout::InlineFormattingContext::computedIntrinsicWidthConstraints):
(WebCore::Layout::InlineFormattingContext::initializeMarginBorderAndPaddingForGenericInlineBox):
(WebCore::Layout::InlineFormattingContext::computeMarginBorderAndPaddingForInlineContainer):
(WebCore::Layout::InlineFormattingContext::computeIntrinsicWidthForFormattingRoot):
(WebCore::Layout::InlineFormattingContext::computeHorizontalMargin):
(WebCore::Layout::InlineFormattingContext::computeWidthAndMargin):
(WebCore::Layout::InlineFormattingContext::computeHeightAndMargin):
(WebCore::Layout::InlineFormattingContext::layoutFormattingContextRoot):
(WebCore::Layout::InlineFormattingContext::computeWidthAndHeightForReplacedInlineBox):
(WebCore::Layout::InlineFormattingContext::layout const): Deleted.
(WebCore::Layout::InlineFormattingContext::computedIntrinsicWidthConstraints const): Deleted.
(WebCore::Layout::InlineFormattingContext::initializeMarginBorderAndPaddingForGenericInlineBox const): Deleted.
(WebCore::Layout::InlineFormattingContext::computeMarginBorderAndPaddingForInlineContainer const): Deleted.
(WebCore::Layout::InlineFormattingContext::computeIntrinsicWidthForFormattingRoot const): Deleted.
(WebCore::Layout::InlineFormattingContext::computeHorizontalMargin const): Deleted.
(WebCore::Layout::InlineFormattingContext::computeWidthAndMargin const): Deleted.
(WebCore::Layout::InlineFormattingContext::computeHeightAndMargin const): Deleted.
(WebCore::Layout::InlineFormattingContext::layoutFormattingContextRoot const): Deleted.
(WebCore::Layout::InlineFormattingContext::computeWidthAndHeightForReplacedInlineBox const): Deleted.
- layout/inlineformatting/InlineFormattingContext.h:
(WebCore::Layout::InlineFormattingContext::quirks const):
(WebCore::Layout::InlineFormattingContext::geometry const):
(WebCore::Layout::InlineFormattingContext::Geometry::Geometry):
(WebCore::Layout::InlineFormattingContext::Quirks::Quirks):
- layout/inlineformatting/InlineFormattingContextGeometry.cpp:
(WebCore::Layout::InlineFormattingContext::Geometry::inlineBlockWidthAndMargin):
(WebCore::Layout::InlineFormattingContext::Geometry::inlineBlockHeightAndMargin const):
(WebCore::Layout::InlineFormattingContext::Geometry::inlineBlockHeightAndMargin): Deleted.
- layout/inlineformatting/InlineFormattingContextLineLayout.cpp:
(WebCore::Layout::LineLayout::LineLayout):
(WebCore::Layout::InlineFormattingContext::InlineLayout::layout const):
(WebCore::Layout::InlineFormattingContext::InlineLayout::computedIntrinsicWidth const):
(WebCore::Layout::InlineFormattingContext::InlineLayout::createDisplayRuns const):
- layout/inlineformatting/InlineFormattingContextQuirks.cpp:
(WebCore::Layout::InlineFormattingContext::Quirks::lineDescentNeedsCollapsing const):
(WebCore::Layout::InlineFormattingContext::Quirks::lineHeightConstraints const):
(WebCore::Layout::InlineFormattingContext::Quirks::lineDescentNeedsCollapsing): Deleted.
(WebCore::Layout::InlineFormattingContext::Quirks::lineHeightConstraints): Deleted.
- layout/inlineformatting/InlineLine.cpp:
(WebCore::Layout::Line::Line):
(WebCore::Layout::Line::close):
- layout/inlineformatting/InlineLine.h:
- layout/tableformatting/TableFormattingContext.cpp:
(WebCore::Layout::TableFormattingContext::layout):
(WebCore::Layout::TableFormattingContext::computedIntrinsicWidthConstraints):
(WebCore::Layout::TableFormattingContext::ensureTableGrid):
(WebCore::Layout::TableFormattingContext::computePreferredWidthForColumns):
(WebCore::Layout::TableFormattingContext::computedTableWidth):
(WebCore::Layout::TableFormattingContext::distributeAvailableWidth):
(WebCore::Layout::TableFormattingContext::layout const): Deleted.
(WebCore::Layout::TableFormattingContext::computedIntrinsicWidthConstraints const): Deleted.
(WebCore::Layout::TableFormattingContext::ensureTableGrid const): Deleted.
(WebCore::Layout::TableFormattingContext::computePreferredWidthForColumns const): Deleted.
(WebCore::Layout::TableFormattingContext::computedTableWidth const): Deleted.
(WebCore::Layout::TableFormattingContext::distributeAvailableWidth const): Deleted.
- layout/tableformatting/TableFormattingContext.h:
(WebCore::Layout::TableFormattingContext::geometry const):
(WebCore::Layout::TableFormattingContext::Geometry::Geometry):
- layout/tableformatting/TableFormattingContextGeometry.cpp:
(WebCore::Layout::TableFormattingContext::Geometry::tableCellHeightAndMargin const):
(WebCore::Layout::TableFormattingContext::Geometry::tableCellHeightAndMargin): Deleted.
- 10:01 AM Changeset in webkit [249330] by
-
- 2 edits in trunk/LayoutTests
Unreviewed, fix test failure after r249305
- inspector/dom-debugger/dom-breakpoints-expected.txt:
- 9:34 AM Changeset in webkit [249329] by
-
- 53 edits in trunk/Source/WebKit
[PSON] Bump the WebPage's identifier every time we process-swap
https://bugs.webkit.org/show_bug.cgi?id=201225
Reviewed by Alex Christensen.
Every time we create a new WebPage object in a provisional process, we now assign it a new
identifier, instead of using the identifier of the WebPage in the committed process. This
will address issues with IPC when navigating back and forth between processes since we will
no longer be confused as to which WebPage the IPC is coming from. Also, this will allow
suspended WebPages to keep living in the process, even if we use the process for a new load
(will be done in a follow-up patch) since we will no longer have an identifier conflict.
- Scripts/webkit/messages.py:
- Shared/API/APIPageHandle.cpp:
(API::PageHandle::create):
(API::PageHandle::createAutoconverting):
(API::PageHandle::PageHandle):
(API::PageHandle::encode const):
(API::PageHandle::decode):
- Shared/API/APIPageHandle.h:
(API::PageHandle::pageProxyID const):
(API::PageHandle::webPageID const):
- Shared/API/Cocoa/WKBrowsingContextHandle.mm:
(-[WKBrowsingContextHandle _initWithPageProxy:]):
(-[WKBrowsingContextHandle _initWithPage:]):
(-[WKBrowsingContextHandle _initWithPageProxyID:andWebPageID:]):
(-[WKBrowsingContextHandle hash]):
(-[WKBrowsingContextHandle isEqual:]):
(-[WKBrowsingContextHandle encodeWithCoder:]):
(-[WKBrowsingContextHandle initWithCoder:]):
- Shared/API/Cocoa/WKBrowsingContextHandleInternal.h:
- Shared/WebPageCreationParameters.cpp:
(WebKit::WebPageCreationParameters::encode const):
(WebKit::WebPageCreationParameters::decode):
- Shared/WebPageCreationParameters.h:
- Shared/mac/ObjCObjectGraph.mm:
(WebKit::ObjCObjectGraph::encode):
(WebKit::ObjCObjectGraph::decode):
- UIProcess/API/Cocoa/WKBrowsingContextController.mm:
(-[WKBrowsingContextController handle]):
- UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView dealloc]):
(-[WKWebView _remoteObjectRegistry]):
(-[WKWebView _handle]):
- UIProcess/API/glib/WebKitURISchemeRequest.cpp:
(webkitURISchemeRequestCreate):
- UIProcess/Cocoa/WebProcessProxyCocoa.mm:
(WebKit::WebProcessProxy::transformHandlesToObjects):
- UIProcess/Cocoa/WebViewImpl.mm:
(WebKit::WebViewImpl::~WebViewImpl):
(WebKit::WebViewImpl::remoteObjectRegistry):
- UIProcess/Network/NetworkProcessProxy.cpp:
(WebKit::NetworkProcessProxy::didReceiveAuthenticationChallenge):
(WebKit::NetworkProcessProxy::logDiagnosticMessage):
(WebKit::NetworkProcessProxy::logDiagnosticMessageWithResult):
(WebKit::NetworkProcessProxy::logDiagnosticMessageWithValue):
(WebKit::NetworkProcessProxy::requestStorageAccessConfirm):
(WebKit::NetworkProcessProxy::didCommitCrossSiteLoadWithDataTransferFromPrevalentResource):
(WebKit::NetworkProcessProxy::testProcessIncomingSyncMessagesWhenWaitingForSyncReply):
- UIProcess/ProvisionalPageProxy.cpp:
(WebKit::ProvisionalPageProxy::ProvisionalPageProxy):
(WebKit::ProvisionalPageProxy::loadData):
(WebKit::ProvisionalPageProxy::loadRequest):
(WebKit::ProvisionalPageProxy::decidePolicyForNavigationActionAsync):
(WebKit::ProvisionalPageProxy::decidePolicyForResponse):
(WebKit::ProvisionalPageProxy::startURLSchemeTask):
(WebKit::ProvisionalPageProxy::decidePolicyForNavigationActionSync):
- UIProcess/ProvisionalPageProxy.h:
(WebKit::ProvisionalPageProxy::webPageID const):
- UIProcess/SuspendedPageProxy.h:
- UIProcess/UserContent/WebUserContentControllerProxy.cpp:
(WebKit::WebUserContentControllerProxy::didPostMessage):
- UIProcess/UserContent/WebUserContentControllerProxy.h:
- UIProcess/UserContent/WebUserContentControllerProxy.messages.in:
- UIProcess/VisitedLinkStore.cpp:
(WebKit::VisitedLinkStore::addVisitedLinkHashFromPage):
- UIProcess/VisitedLinkStore.h:
- UIProcess/VisitedLinkStore.messages.in:
- UIProcess/WebInspectorProxy.cpp:
(WebKit::WebInspectorProxy::createFrontendPage):
(WebKit::WebInspectorProxy::openLocalInspectorFrontend):
(WebKit::WebInspectorProxy::closeFrontendPageAndWindow):
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::swapToWebProcess):
(WebKit::WebPageProxy::loadRequest):
(WebKit::WebPageProxy::loadRequestWithNavigationShared):
(WebKit::WebPageProxy::loadData):
(WebKit::WebPageProxy::loadDataWithNavigationShared):
(WebKit::WebPageProxy::commitProvisionalPage):
(WebKit::WebPageProxy::continueNavigationInNewProcess):
(WebKit::WebPageProxy::decidePolicyForNavigationActionAsync):
(WebKit::WebPageProxy::decidePolicyForNavigationActionAsyncShared):
(WebKit::WebPageProxy::decidePolicyForNavigationAction):
(WebKit::WebPageProxy::decidePolicyForNavigationActionSync):
(WebKit::WebPageProxy::decidePolicyForNavigationActionSyncShared):
(WebKit::WebPageProxy::decidePolicyForResponse):
(WebKit::WebPageProxy::decidePolicyForResponseShared):
(WebKit::WebPageProxy::createNewPage):
(WebKit::WebPageProxy::creationParameters):
(WebKit::WebPageProxy::startURLSchemeTask):
(WebKit::WebPageProxy::startURLSchemeTaskShared):
(WebKit::WebPageProxy::loadSynchronousURLSchemeTask):
- UIProcess/WebPageProxy.h:
- UIProcess/WebPageProxy.messages.in:
- UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::webPageFromCorePageIdentifier):
(WebKit::WebProcessProxy::didReceiveMessage):
(WebKit::WebProcessProxy::transformHandlesToObjects):
(WebKit::WebProcessProxy::transformObjectsToHandles):
- UIProcess/WebProcessProxy.h:
- UIProcess/WebURLSchemeHandler.cpp:
(WebKit::WebURLSchemeHandler::startTask):
(WebKit::WebURLSchemeHandler::taskCompleted):
- UIProcess/WebURLSchemeHandler.h:
- UIProcess/WebURLSchemeTask.cpp:
(WebKit::WebURLSchemeTask::create):
(WebKit::WebURLSchemeTask::WebURLSchemeTask):
(WebKit::WebURLSchemeTask::didPerformRedirection):
(WebKit::WebURLSchemeTask::didReceiveResponse):
(WebKit::WebURLSchemeTask::didReceiveData):
(WebKit::WebURLSchemeTask::didComplete):
(WebKit::WebURLSchemeTask::pageDestroyed):
- UIProcess/WebURLSchemeTask.h:
(WebKit::WebURLSchemeTask::pageProxyID const):
(WebKit::WebURLSchemeTask::webPageID const):
- WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextController.mm:
(-[WKWebProcessPlugInBrowserContextController handle]):
(+[WKWebProcessPlugInBrowserContextController lookUpBrowsingContextFromHandle:]):
- WebProcess/UserContent/WebUserContentController.cpp:
- WebProcess/WebCoreSupport/WebChromeClient.cpp:
(WebKit::WebChromeClient::createWindow):
- WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
(WebKit::WebFrameLoaderClient::dispatchDecidePolicyForNavigationAction):
- WebProcess/WebPage/Cocoa/WebRemoteObjectRegistry.cpp:
(WebKit::WebRemoteObjectRegistry::WebRemoteObjectRegistry):
(WebKit::WebRemoteObjectRegistry::close):
- WebProcess/WebPage/VisitedLinkTableController.cpp:
(WebKit::VisitedLinkTableController::addVisitedLink):
- WebProcess/WebPage/WebInspectorUI.cpp:
(WebKit::WebInspectorUI::establishConnection):
- WebProcess/WebPage/WebInspectorUI.h:
- WebProcess/WebPage/WebInspectorUI.messages.in:
- WebProcess/WebPage/WebPage.cpp:
- WebProcess/WebPage/WebPage.h:
(WebKit::WebPage::sessionStorageNamespaceIdentifier const):
(WebKit::WebPage::webPageProxyIdentifier const):
- WebProcess/WebProcess.cpp:
(WebKit::WebProcess::didReceiveMessage):
(WebKit::WebProcess::transformHandlesToObjects):
(WebKit::WebProcess::transformObjectsToHandles):
- WebProcess/WebStorage/StorageNamespaceImpl.cpp:
(WebKit::StorageNamespaceImpl::createSessionStorageNamespace):
(WebKit::StorageNamespaceImpl::createLocalStorageNamespace):
(WebKit::StorageNamespaceImpl::createTransientLocalStorageNamespace):
(WebKit::StorageNamespaceImpl::StorageNamespaceImpl):
(WebKit::StorageNamespaceImpl::copy):
(WebKit::StorageNamespaceImpl::sessionStoragePageID const):
- WebProcess/WebStorage/StorageNamespaceImpl.h:
- WebProcess/WebStorage/WebStorageNamespaceProvider.cpp:
(WebKit::WebStorageNamespaceProvider::createSessionStorageNamespace):
- WebProcess/cocoa/WebProcessCocoa.mm:
(WebKit::WebProcess::transformHandlesToObjects):
- 8:44 AM Changeset in webkit [249328] by
-
- 2 edits in trunk/Tools
Simplify PLATFORM expression
https://bugs.webkit.org/show_bug.cgi?id=201286
<rdar://problem/54822347>
Reviewed by Alexey Proskuryakov.
The preprocessor expression conditionalizing the inclusion of the body
of ExitFullscreenOnEnterPiP.mm evolved into:
#if PLATFORM(MAC) (PLATFORM(IOS_FAMILY) && !PLATFORM(IOS_FAMILY_SIMULATOR)) Simplify this to just:
#if !PLATFORM(IOS_FAMILY_SIMULATOR)
- TestWebKitAPI/Tests/WebKitCocoa/ExitFullscreenOnEnterPiP.mm:
- 8:37 AM Changeset in webkit [249327] by
-
- 40 edits2 deletes in trunk
Remove AppKitCompatibilityDeclarations.h
https://bugs.webkit.org/show_bug.cgi?id=201283
<rdar://problem/54822042>
Reviewed by Alexey Proskuryakov.
The two copies of these files -- on in WTF, one in MiniBrowser -- are
empty and can be removed.
Source/WebCore:
No new tests -- no new or changed functionality.
- WebCorePrefix.h:
Source/WebKit:
- WebKit2Prefix.h:
Source/WebKitLegacy/mac:
- Misc/WebNSEventExtras.m:
- Misc/WebNSViewExtras.m:
- WebKitPrefix.h:
Source/WTF:
- WTF.xcodeproj/project.pbxproj:
- wtf/PlatformMac.cmake:
- wtf/mac/AppKitCompatibilityDeclarations.h: Removed.
Tools:
- DumpRenderTree/mac/EventSendingController.mm:
- DumpRenderTree/mac/TextInputControllerMac.m:
- MiniBrowser/AppKitCompatibilityDeclarations.h: Removed.
- MiniBrowser/MiniBrowser.xcodeproj/project.pbxproj:
- MiniBrowser/mac/SettingsController.m:
- MiniBrowser/mac/WK1BrowserWindowController.m:
- MiniBrowser/mac/WK2BrowserWindowController.m:
- TestWebKitAPI/Tests/WebKit/mac/ContextMenuImgWithVideo.mm:
- TestWebKitAPI/Tests/WebKitCocoa/CommandBackForward.mm:
- TestWebKitAPI/Tests/WebKitCocoa/DecidePolicyForNavigationAction.mm:
- TestWebKitAPI/Tests/WebKitCocoa/FullscreenDelegate.mm:
- TestWebKitAPI/Tests/WebKitCocoa/FullscreenLayoutConstraints.mm:
- TestWebKitAPI/Tests/WebKitCocoa/FullscreenTopContentInset.mm:
- TestWebKitAPI/Tests/WebKitCocoa/PictureInPictureDelegate.mm:
- TestWebKitAPI/Tests/WebKitCocoa/ShouldOpenExternalURLsInNewWindowActions.mm:
- TestWebKitAPI/Tests/WebKitCocoa/UIDelegate.mm:
- TestWebKitAPI/Tests/WebKitCocoa/UserInitiatedActionInNavigationAction.mm:
- TestWebKitAPI/Tests/mac/AcceptsFirstMouse.mm:
- TestWebKitAPI/Tests/mac/ContextMenuCanCopyURL.mm:
- TestWebKitAPI/Tests/mac/ContextMenuDefaultItemsHaveTags.mm:
- TestWebKitAPI/Tests/mac/FullscreenZoomInitialFrame.mm:
- TestWebKitAPI/Tests/mac/MediaPlaybackSleepAssertion.mm:
- TestWebKitAPI/Tests/mac/MenuTypesForMouseEvents.mm:
- TestWebKitAPI/cocoa/TestWKWebView.mm:
- TestWebKitAPI/mac/PlatformUtilitiesMac.mm:
- TestWebKitAPI/mac/PlatformWebViewMac.mm:
- WebKitTestRunner/mac/EventSenderProxy.mm:
- WebKitTestRunner/mac/PlatformWebViewMac.mm:
- WebKitTestRunner/mac/TestControllerMac.mm:
- 8:29 AM Changeset in webkit [249326] by
-
- 2 edits in trunk/Source/WebKitLegacy/mac
Remove extra braces
https://bugs.webkit.org/show_bug.cgi?id=201285
Reviewed by Alexey Proskuryakov.
Some code evolved such that there was only a single statement under an
'if' statement. The braces surrounding the single-line block can now
be removed.
- WebView/WebView.mm:
(-[WebView updateMediaTouchBar]):
- 8:14 AM Changeset in webkit [249325] by
-
- 6 edits in trunk
[MSE][GStreamer] Gracefully fail on invalid non-first initialization segment
https://bugs.webkit.org/show_bug.cgi?id=201322
Reviewed by Xabier Rodriguez-Calvar.
Source/WebCore:
In normal operation of AppendPipeline, except during tear down,
qtdemux never removes a pad. Even if a new initialization segment is
appended, the pad is reused.
There is an exception though: when the new initialization segment has
an incompatible set of tracks. This is invalid under the MSE spec and
should produce an error, but in this case this was making an assertion
fail -- in particular by sending an EOS to the to-be-removed pad, which
AppendPipeline doesn't expect.
This patch changes the assertion with graceful error handling for that
error.
Fixes media/media-source/media-source-seek-detach-crash.html
- platform/graphics/gstreamer/mse/AppendPipeline.cpp:
(WebCore::AppendPipeline::AppendPipeline):
(WebCore::AppendPipeline::handleErrorConditionFromStreamingThread):
(WebCore::AppendPipeline::handleErrorSyncMessage):
- platform/graphics/gstreamer/mse/AppendPipeline.h:
LayoutTests:
- platform/gtk/TestExpectations:
- platform/wpe/TestExpectations:
- 6:18 AM Changeset in webkit [249324] by
-
- 8 edits in trunk
[WPE][GTK] New API to remove a filter from an user content manager given its identifier
https://bugs.webkit.org/show_bug.cgi?id=200479
Reviewed by Carlos Garcia Campos.
Source/WebKit:
- UIProcess/API/glib/WebKitUserContentManager.cpp:
(webkit_user_content_manager_remove_filter_by_id): Add new public API function.
- UIProcess/API/gtk/WebKitUserContentManager.h: Add declaration for
webkit_user_content_manager_remove_filter_by_id().
- UIProcess/API/gtk/docs/webkit2gtk-4.0-sections.txt: List new function.
- UIProcess/API/wpe/WebKitUserContentManager.h: Add declaration for
webkit_user_content_manager_remove_filter_by_id().
- UIProcess/API/wpe/docs/wpe-1.0-sections.txt: List new function.
Tools:
- TestWebKitAPI/Tests/WebKitGLib/TestWebKitUserContentManager.cpp:
(testUserContentManagerContentFilter): Test also the new
webkit_user_content_manager_remove_filter_by_id() public API function.
- 5:52 AM Changeset in webkit [249323] by
-
- 2 edits in trunk/Source/WebKit
[GTK] Build failure in Debian Stable and Ubuntu LTS bots
https://bugs.webkit.org/show_bug.cgi?id=201337
Reviewed by Carlos Garcia Campos.
- UIProcess/gtk/WaylandCompositor.cpp:
(WebKit::WaylandCompositor::bindSurfaceToWebPage):
- 5:30 AM Changeset in webkit [249322] by
-
- 4 edits in releases/WebKitGTK/webkit-2.26/Source/WebCore
Unreviewed build fix for ENABLE_UNIFIED_BUILDS=OFF.
No new tests needed.
- dom/StaticRange.h: Add missing inclusions of ExceptioOr.h and wtf/RefPtr.h.
- inspector/agents/WebConsoleAgent.cpp: Add missing inclusion of InspectorWebAgentBase.h.
- inspector/agents/WebConsoleAgent.h: Add forward declaration of the WebAgentContext struct.
- 4:02 AM Changeset in webkit [249321] by
-
- 4 edits in trunk/Source/WebCore
[GStreamer] Do not ref the player count from background threads.
https://bugs.webkit.org/show_bug.cgi?id=201222
Reviewed by Xabier Rodriguez-Calvar.
Test: imported/w3c/web-platform-tests/encrypted-media/clearkey-mp4-playback-retrieve-persistent-license.https.html
In the sync-message handler, a ref() was being taken waiting for a
CDM instance to be attached. This hits asserts since you are not
allowed to ref() an object created on the main thread
(BasePlayer) on a background thread.
The protection condition was overly scoped, tidied up the locking
and made it more granular. To avoid needing to hold a ref() in the
background thread, use instead a semaphore to signal when a CDM
instance is attached, or the player has been destroyed.
Also remove an erroneous safe-guard, the operator= in
isCDMInstanceAvailable will ref() the CDMInstance for us. This use
of holding a reference to CDMInstance in the decryptors is not
thread-safe, and now we have a problem since there's no clean way
to communicate with CDMInstance from background threads without
being thread unsafe. For ClearKey and Widevine, a thread safe
ProxyCDM needs to be designed and passed to background
threads (upcoming patch).
- platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:
(WebCore::MediaPlayerPrivateGStreamerBase::~MediaPlayerPrivateGStreamerBase):
(WebCore::MediaPlayerPrivateGStreamerBase::handleSyncMessage):
(WebCore::MediaPlayerPrivateGStreamerBase::cdmInstanceAttached):
(WebCore::MediaPlayerPrivateGStreamerBase::cdmInstanceDetached):
(WebCore::MediaPlayerPrivateGStreamerBase::handleProtectionEvent):
- platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.h:
- platform/graphics/gstreamer/eme/WebKitCommonEncryptionDecryptorGStreamer.cpp:
(isCDMInstanceAvailable):
- 3:28 AM Changeset in webkit [249320] by
-
- 2 edits1 move1 add1 delete in trunk/LayoutTests
Import css/css-text/tab-size/tab-size.html wpt test
https://bugs.webkit.org/show_bug.cgi?id=201328
Unreviewed. No behavioral changes.
The css/css-text/tab-size/tab-size.html wpt test was ported from
the original test LayoutTests/css3/tab-size.html.
So we import that wpt test and remove the original test from LayoutTests.
LayoutTests/imported/w3c:
- web-platform-tests/css/css-text/tab-size/tab-size-expected.txt: Renamed from LayoutTests/css3/tab-size-expected.txt.
- web-platform-tests/css/css-text/tab-size/tab-size.html: Added.
LayoutTests:
- css3/tab-size.html: Removed.
- 3:00 AM Changeset in webkit [249319] by
-
- 5 edits1 add in trunk
[JSC] DFG ByteCodeParser should not copy JIT-related part of SimpleJumpTable
https://bugs.webkit.org/show_bug.cgi?id=201331
Reviewed by Mark Lam.
JSTests:
- stress/simple-jump-table-copy.js: Added.
(let.code):
(g2):
Source/JavaScriptCore:
SimpleJumpTable's non-JIT part is not changed after CodeBlock is finalized well. On the other hand, JIT related part is allocated on-demand.
For example, ctiOffsets can be grown by Baseline JIT compiler. There is race condition as follows.
- DFG ByteCodeParser is inlining and copying SimpleJumpTable
- Baseline JIT compiler is expanding JIT-related part of SimpleJumpTable
Then, (1) reads the broken Vector, and crashes. Since JIT-related part is unnecessary in (1), we should not clone that.
This patch adds CodeBlock::addSwitchJumpTableFromProfiledCodeBlock, which only copies non JIT-related part of the given SimpleJumpTable offered
by profiled CodeBlock.
- bytecode/CodeBlock.h:
(JSC::CodeBlock::addSwitchJumpTableFromProfiledCodeBlock):
- bytecode/JumpTable.h:
(JSC::SimpleJumpTable::cloneNonJITPart const):
(JSC::SimpleJumpTable::clear):
- dfg/DFGByteCodeParser.cpp:
(JSC::DFG::ByteCodeParser::InlineStackEntry::InlineStackEntry):
- 1:29 AM Changeset in webkit [249318] by
-
- 5 edits in trunk
[WPE][Qt] loadingChanged signal parameter is unusable
https://bugs.webkit.org/show_bug.cgi?id=201301
Reviewed by Carlos Garcia Campos.
Source/WebKit:
- UIProcess/API/wpe/qt/WPEQtView.h: Explicitely name signal
parameter. It is a runtime requirement for QML.
Tools:
- MiniBrowser/wpe/qt/main.qml: Add a basic loadingChange signal handler.
- Scripts/webkitpy/style/checker.py: White-list WPEQtView.h for
readablity/parameter_name code styl checker rule.
- 1:13 AM Changeset in webkit [249317] by
-
- 3 edits1 add in trunk
[JSC] DFG inlining CheckBadCell slow path does not assume result VirtualRegister can be invalid
https://bugs.webkit.org/show_bug.cgi?id=201332
Reviewed by Mark Lam.
JSTests:
This test is very flaky, it is hard to reproduce.
- stress/setter-inlining-resulting-bad-cell-result-virtual-register-should-be-invalid.js: Added.
(code):
Source/JavaScriptCore:
When inlining setter calls in DFG, result VirtualRegister becomes invalid one. While other call-related DFG code correctly assumes
thatresultmay be invalid, only CheckBadCell slow path missed this case. Since this is OSR exit path and VirtualRegister result
does not exist, set BottomValue only when "result" is valid as the other DFG code is doing.
- dfg/DFGByteCodeParser.cpp:
(JSC::DFG::ByteCodeParser::handleInlining):
- 12:50 AM Changeset in webkit [249316] by
-
- 6 edits in trunk
[wk2] LayoutTest imported/w3c/web-platform-tests/IndexedDB/fire-error-event-exception.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=169621
Reviewed by Alex Christensen.
Source/WebCore:
Event handlers of IDB objects were called in unexpected order because of race, which made the console messages
in the tests come out of order.
Usually, an operation/request result is handled as follows:
- IDBServer sends IDBResultData to IDBClient.
- IDBClient receives IDBResultData and finishes a IDBTransaction operation with that result.
- IDBTransaction schedules operation completed timer.
- (Some time later) Timer fires, and IDBTransaction completes a request with the result and dispatches event.
- (Some time later) IDBTransaction is notified that event is dispatched. If there are other results received,
IDBTransaction schedules operation completed timer.
In previous implementation, if the IDBClient received a second IDBResultData for the same IDBTransaction between
step 3 and step 4, it would not schedule timer because timer was still active; if it received the result between
step 4 and step 5, it would schedule timer again.
Consider a flow like this:
result1 of transaction1 received, timer of transaction1 scheduled
result2 of transaction2 received, timer of transaction2 scheduled
result3 of transaction1 is received, timer of transaction1 active so no scheduling
timer of transaction1 fired, event1 to be dispatched to request1
timer of transaction2 fired, event2 to be dispatched to request2
result4 of transaction2 received, timer of transaction2 scheduled
event1 dispatched, timer of transaction1 scheduled (for handling result3)
event2 dispatched, timer of transaction2 active so no scheduling
timer of transaction2 fired, event3 to dispatch to request4
timer of transaction1 fired, event4 to dispatch to request3
request4 would get event before request3, though result3 was received before result4. We should stop scheduling
event if an IDBTransaction is in between step 4 and 5, which means its m_currentlyCompletingRequest is not null.
- Modules/indexeddb/IDBTransaction.cpp:
(WebCore::IDBTransaction::operationCompletedOnServer):
LayoutTests:
Update test expectations to PASS.
- platform/gtk/TestExpectations:
- platform/ios-wk2/TestExpectations:
- platform/mac-wk2/TestExpectations: