Timeline



Aug 30, 2019:

9:11 PM Changeset in webkit [249358] by zhifei_fang@apple.com
  • 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 Alan Bujtas
  • 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 Alan Bujtas
  • 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 aakash_jain@apple.com
  • 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 Chris Dumez
  • 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 Chris Dumez
  • 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 Simon Fraser
  • 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 sbarati@apple.com
  • 52 edits
    1 copy
    3 moves
    9 adds
    17 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 = 42 to be compiled into
the equivalent metal code of mat[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 Chris Dumez
  • 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 Alan Bujtas
  • 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 Jonathan Bedard
  • 3 edits
    2 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 mark.lam@apple.com
  • 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 Chris Dumez
  • 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 mark.lam@apple.com
  • 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 Ryan Haddad
  • 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 achristensen@apple.com
  • 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 achristensen@apple.com
  • 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 achristensen@apple.com
  • 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 achristensen@apple.com
  • 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 wenson_hsieh@apple.com
  • 8 edits
    2 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 Chris Dumez
  • 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 ysuzuki@apple.com
  • 5 edits
    1 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 Simon Fraser
  • 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 Brent Fulgham
  • 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 youenn@apple.com
  • 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 sihui_liu@apple.com
  • 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 aboya@igalia.com
  • 3 edits
    2 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 Alan Bujtas
  • 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 Devin Rousso
  • 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 Chris Dumez
  • 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 Keith Rollin
  • 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 Keith Rollin
  • 40 edits
    2 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 Keith Rollin
  • 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 aboya@igalia.com
  • 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 Adrian Perez de Castro
  • 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 Pablo Saavedra
  • 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 Adrian Perez de Castro
  • 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 cturner@igalia.com
  • 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 jh718.park@samsung.com
  • 2 edits
    1 move
    1 add
    1 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 ysuzuki@apple.com
  • 5 edits
    1 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.

  1. DFG ByteCodeParser is inlining and copying SimpleJumpTable
  2. 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 Philippe Normand
  • 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 ysuzuki@apple.com
  • 3 edits
    1 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
that result may 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 sihui_liu@apple.com
  • 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:

  1. IDBServer sends IDBResultData to IDBClient.
  2. IDBClient receives IDBResultData and finishes a IDBTransaction operation with that result.
  3. IDBTransaction schedules operation completed timer.
  4. (Some time later) Timer fires, and IDBTransaction completes a request with the result and dispatches event.
  5. (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:

Aug 29, 2019:

11:56 PM Changeset in webkit [249315] by Devin Rousso
  • 18 edits in trunk

Web Inspector: Debugger: async event listener stack traces should be available in Workers
https://bugs.webkit.org/show_bug.cgi?id=200903

Reviewed by Joseph Pecoraro.

Source/JavaScriptCore:

  • inspector/agents/InspectorDebuggerAgent.h:

(Inspector::InspectorDebuggerAgent::enabled): Added.

  • inspector/agents/InspectorDebuggerAgent.cpp:

(Inspector::InspectorDebuggerAgent::willDestroyFrontendAndBackend):
(Inspector::InspectorDebuggerAgent::enable):
(Inspector::InspectorDebuggerAgent::disable):
Allow subclasses to extend what it means for the InspectorDebuggerAgent to be enabled.

Source/WebCore:

Tests: inspector/worker/dom-debugger-event-interval-breakpoints.html

inspector/worker/dom-debugger-event-listener-breakpoints.html
inspector/worker/dom-debugger-event-timeout-breakpoints.html
inspector/worker/dom-debugger-url-breakpoints.html

  • inspector/agents/WebDebuggerAgent.h:
  • inspector/agents/WebDebuggerAgent.cpp:

(WebCore::WebDebuggerAgent::enabled const): Added.
(WebCore::WebDebuggerAgent::enable):
(WebCore::WebDebuggerAgent::disable):
(WebCore::WebDebuggerAgent::didAddEventListener): Added.
(WebCore::WebDebuggerAgent::willRemoveEventListener): Added.
(WebCore::WebDebuggerAgent::willHandleEvent): Added.
(WebCore::WebDebuggerAgent::didPostMessage): Added.
(WebCore::WebDebuggerAgent::didFailPostMessage): Added.
(WebCore::WebDebuggerAgent::willDispatchPostMessage): Added.
(WebCore::WebDebuggerAgent::didDispatchPostMessage): Added.
(WebCore::WebDebuggerAgent::didClearAsyncStackTraceData): Added.

  • inspector/agents/page/PageDebuggerAgent.h:
  • inspector/agents/page/PageDebuggerAgent.cpp:

(WebCore::PageDebuggerAgent::enabled const): Added.
(WebCore::PageDebuggerAgent::enable):
(WebCore::PageDebuggerAgent::disable):
(WebCore::PageDebuggerAgent::didClearAsyncStackTraceData): Deleted.
(WebCore::PageDebuggerAgent::didAddEventListener): Deleted.
(WebCore::PageDebuggerAgent::willRemoveEventListener): Deleted.
(WebCore::PageDebuggerAgent::willHandleEvent): Deleted.
(WebCore::PageDebuggerAgent::didPostMessage): Deleted.
(WebCore::PageDebuggerAgent::didFailPostMessage): Deleted.
(WebCore::PageDebuggerAgent::willDispatchPostMessage): Deleted.
(WebCore::PageDebuggerAgent::didDispatchPostMessage): Deleted.
Move various InspectorInstrumentation calls from PageDebuggerAgent to WebDebuggerAgent
so that WorkerDebuggerAgent also inherits them.

  • inspector/InstrumentingAgents.h:

(WebCore::InstrumentingAgents::webDebuggerAgent const): Added.
(WebCore::InstrumentingAgents::setWebDebuggerAgent): Added.
(WebCore::InstrumentingAgents::inspectorDebuggerAgent const): Deleted.
(WebCore::InstrumentingAgents::setInspectorDebuggerAgent): Deleted.

  • inspector/InstrumentingAgents.cpp:

(WebCore::InstrumentingAgents::reset):

  • inspector/agents/InspectorTimelineAgent.cpp:

(WebCore::InspectorTimelineAgent::mainFrameStartedLoading):
(WebCore::InspectorTimelineAgent::startProgrammaticCapture):
(WebCore::InspectorTimelineAgent::stopProgrammaticCapture):

  • inspector/InspectorInstrumentation.cpp:

(WebCore::InspectorInstrumentation::didClearWindowObjectInWorldImpl):
(WebCore::InspectorInstrumentation::isDebuggerPausedImpl):
(WebCore::InspectorInstrumentation::didInstallTimerImpl):
(WebCore::InspectorInstrumentation::didRemoveTimerImpl):
(WebCore::InspectorInstrumentation::didAddEventListenerImpl):
(WebCore::InspectorInstrumentation::willRemoveEventListenerImpl):
(WebCore::InspectorInstrumentation::didPostMessageImpl):
(WebCore::InspectorInstrumentation::didFailPostMessageImpl):
(WebCore::InspectorInstrumentation::willDispatchPostMessageImpl):
(WebCore::InspectorInstrumentation::didDispatchPostMessageImpl):
(WebCore::InspectorInstrumentation::willHandleEventImpl):
(WebCore::InspectorInstrumentation::didHandleEventImpl):
(WebCore::InspectorInstrumentation::willFireTimerImpl):
(WebCore::InspectorInstrumentation::didFireTimerImpl):
(WebCore::InspectorInstrumentation::scriptExecutionBlockedByCSPImpl):
(WebCore::InspectorInstrumentation::didCommitLoadImpl):
(WebCore::InspectorInstrumentation::frameStartedLoadingImpl):
(WebCore::InspectorInstrumentation::frameStoppedLoadingImpl):
(WebCore::InspectorInstrumentation::addMessageToConsoleImpl):
(WebCore::InspectorInstrumentation::didRequestAnimationFrameImpl):
(WebCore::InspectorInstrumentation::didCancelAnimationFrameImpl):
(WebCore::InspectorInstrumentation::willFireAnimationFrameImpl):
(WebCore::InspectorInstrumentation::didFireAnimationFrameImpl):
Replace inspectorDebuggerAgent with webDebuggerAgent so the right instrumentation hooks
are available.

LayoutTests:

  • inspector/worker/dom-debugger-event-interval-breakpoints-expected.txt:
  • inspector/worker/dom-debugger-event-listener-breakpoints-expected.txt:
  • inspector/worker/dom-debugger-event-timeout-breakpoints-expected.txt:
  • inspector/worker/dom-debugger-url-breakpoints-expected.txt:
  • inspector/worker/resources/worker-dom-debugger.js:
10:00 PM Changeset in webkit [249314] by Keith Rollin
  • 11 edits in trunk/Source

Remove HAVE_PASSKIT_GRANULAR_ERRORS conditional
https://bugs.webkit.org/show_bug.cgi?id=201278
<rdar://problem/54821052>

Reviewed by Alex Christensen.

HAVE_PASSKIT_GRANULAR_ERRORS is always True, so remove the conditional
tests, keeping the True branches and removing the False branches.

Source/WebCore/PAL:

  • pal/cocoa/PassKitSoftLink.h:
  • pal/cocoa/PassKitSoftLink.mm:

Source/WebKit:

  • Platform/cocoa/PaymentAuthorizationPresenter.mm:

(WebKit::PaymentAuthorizationPresenter::completePaymentSession):
(WebKit::PaymentAuthorizationPresenter::completeShippingContactSelection):

  • Platform/cocoa/PaymentAuthorizationViewController.mm:

(-[WKPaymentAuthorizationViewControllerDelegate paymentAuthorizationViewController:didAuthorizePayment:completion:]): Deleted.
(-[WKPaymentAuthorizationViewControllerDelegate paymentAuthorizationViewController:didSelectShippingMethod:completion:]): Deleted.
(-[WKPaymentAuthorizationViewControllerDelegate paymentAuthorizationViewController:didSelectShippingContact:completion:]): Deleted.
(-[WKPaymentAuthorizationViewControllerDelegate paymentAuthorizationViewController:didSelectPaymentMethod:completion:]): Deleted.

  • Platform/cocoa/WKPaymentAuthorizationDelegate.h:
  • Platform/cocoa/WKPaymentAuthorizationDelegate.mm:

(-[WKPaymentAuthorizationDelegate completePaymentMethodSelection:]):
(-[WKPaymentAuthorizationDelegate completePaymentSession:errors:didReachFinalState:]):
(-[WKPaymentAuthorizationDelegate completeShippingContactSelection:summaryItems:shippingMethods:errors:]):
(-[WKPaymentAuthorizationDelegate completeShippingMethodSelection:]):

  • Shared/ApplePay/cocoa/WebPaymentCoordinatorProxyCocoa.mm:

(WebKit::WebPaymentCoordinatorProxy::platformCanMakePaymentsWithActiveCard):
(WebKit::toPKContactFields):
(WebKit::toNSSet):
(WebKit::WebPaymentCoordinatorProxy::platformPaymentRequest):
(WebKit::toPKAddressField): Deleted.

Source/WTF:

  • wtf/FeatureDefines.h:
9:35 PM Changeset in webkit [249313] by Chris Dumez
  • 23 edits in trunk/Source

Add "IsolatedCopy" in the name of String getters that call isolatedCopy() on the string
https://bugs.webkit.org/show_bug.cgi?id=201318

Reviewed by Alex Christensen.

Add "IsolatedCopy" in the name of String getters that call isolatedCopy() on the string, for clarity.

Source/WebCore:

  • Modules/indexeddb/server/IDBServer.cpp:

(WebCore::IDBServer::IDBServer::createBackingStore):
(WebCore::IDBServer::IDBServer::performGetAllDatabaseNames):
(WebCore::IDBServer::IDBServer::removeDatabasesModifiedSinceForVersion):
(WebCore::IDBServer::IDBServer::performCloseAndDeleteDatabasesModifiedSince):
(WebCore::IDBServer::IDBServer::removeDatabasesWithOriginsForVersion):
(WebCore::IDBServer::IDBServer::performCloseAndDeleteDatabasesForOrigins):
(WebCore::IDBServer::IDBServer::computeSpaceUsedForOrigin):
(WebCore::IDBServer::IDBServer::upgradeFilesIfNecessary):

  • Modules/indexeddb/server/IDBServer.h:

(WebCore::IDBServer::IDBServer::databaseDirectoryPathIsolatedCopy const):

  • Modules/indexeddb/server/SQLiteIDBBackingStore.cpp:

(WebCore::IDBServer::SQLiteIDBBackingStore::fullDatabaseDirectoryWithUpgrade):
(WebCore::IDBServer::SQLiteIDBBackingStore::databasesSizeForOrigin const):
(WebCore::IDBServer::SQLiteIDBBackingStore::deleteBackingStore):

  • Modules/indexeddb/server/SQLiteIDBBackingStore.h:

(WebCore::IDBServer::SQLiteIDBBackingStore::databaseRootDirectoryIsolatedCopy const):

  • Modules/webdatabase/Database.cpp:

(WebCore::Database::markAsDeletedAndClose):
(WebCore::Database::stringIdentifierIsolatedCopy const):
(WebCore::Database::displayNameIsolatedCopy const):
(WebCore::Database::expectedVersionIsolatedCopy const):
(WebCore::Database::fileNameIsolatedCopy const):
(WebCore::Database::details const):
(WebCore::Database::didCommitWriteTransaction):
(WebCore::Database::didExceedQuota):

  • Modules/webdatabase/Database.h:
  • Modules/webdatabase/DatabaseTracker.cpp:

(WebCore::DatabaseTracker::maximumSize):
(WebCore::DatabaseTracker::doneCreatingDatabase):
(WebCore::DatabaseTracker::addOpenDatabase):
(WebCore::DatabaseTracker::removeOpenDatabase):

  • Modules/webdatabase/SQLError.h:

(WebCore::SQLError::messageIsolatedCopy const):

  • Modules/webdatabase/SQLError.idl:
  • Modules/webdatabase/SQLTransaction.cpp:

(WebCore::SQLTransaction::openTransactionAndPreflight):

  • workers/service/server/RegistrationDatabase.cpp:

(WebCore::RegistrationDatabase::openSQLiteDatabase):
(WebCore::RegistrationDatabase::clearAll):

  • workers/service/server/RegistrationDatabase.h:

(WebCore::RegistrationDatabase::databaseDirectoryIsolatedCopy const):

Source/WebKit:

  • NetworkProcess/Classifier/ResourceLoadStatisticsPersistentStorage.cpp:

(WebKit::ResourceLoadStatisticsPersistentStorage::storageDirectoryPathIsolatedCopy const):
(WebKit::ResourceLoadStatisticsPersistentStorage::resourceLogFilePath const):
(WebKit::ResourceLoadStatisticsPersistentStorage::monitorDirectoryForNewStatistics):

  • NetworkProcess/Classifier/ResourceLoadStatisticsPersistentStorage.h:
  • NetworkProcess/cache/NetworkCacheBlobStorage.cpp:

(WebKit::NetworkCache::BlobStorage::blobDirectoryPathIsolatedCopy const):
(WebKit::NetworkCache::BlobStorage::synchronize):
(WebKit::NetworkCache::BlobStorage::blobPathForHash const):

  • NetworkProcess/cache/NetworkCacheBlobStorage.h:
  • NetworkProcess/cache/NetworkCacheStorage.cpp:

(WebKit::NetworkCache::Storage::basePathIsolatedCopy const):
(WebKit::NetworkCache::Storage::versionPath const):
(WebKit::NetworkCache::Storage::recordsPathIsolatedCopy const):
(WebKit::NetworkCache::Storage::synchronize):
(WebKit::NetworkCache::Storage::recordDirectoryPathForKey const):
(WebKit::NetworkCache::Storage::traverse):
(WebKit::NetworkCache::Storage::clear):
(WebKit::NetworkCache::Storage::shrink):
(WebKit::NetworkCache::Storage::deleteOldVersions):

  • NetworkProcess/cache/NetworkCacheStorage.h:
9:18 PM Changeset in webkit [249312] by Keith Rollin
  • 60 edits in trunk

Update .xcconfig symbols to reflect the current set of past and future product versions.
https://bugs.webkit.org/show_bug.cgi?id=200720
<rdar://problem/54305032>

Reviewed by Alex Christensen.

Remove version symbols related to old OS's we no longer support,
ensure that version symbols are defined for OS's we do support.

PerformanceTests:

  • MediaTime/Configurations/Base.xcconfig:
  • MediaTime/Configurations/DebugRelease.xcconfig:

Source/bmalloc:

  • Configurations/Base.xcconfig:
  • Configurations/DebugRelease.xcconfig:

Source/JavaScriptCore:

  • Configurations/Base.xcconfig:
  • Configurations/DebugRelease.xcconfig:
  • Configurations/Version.xcconfig:

Source/ThirdParty:

  • gtest/xcode/Config/DebugProject.xcconfig:
  • gtest/xcode/Config/ReleaseProject.xcconfig:

Source/ThirdParty/ANGLE:

  • Configurations/Base.xcconfig:
  • Configurations/DebugRelease.xcconfig:

Source/ThirdParty/libwebrtc:

  • Configurations/Base.xcconfig:
  • Configurations/DebugRelease.xcconfig:
  • Configurations/Version.xcconfig:

Source/WebCore:

No new tests -- no new or changed functionality.

  • Configurations/Base.xcconfig:
  • Configurations/DebugRelease.xcconfig:
  • Configurations/Version.xcconfig:

Source/WebCore/PAL:

  • Configurations/Base.xcconfig:
  • Configurations/DebugRelease.xcconfig:
  • Configurations/Version.xcconfig:

Source/WebInspectorUI:

  • Configurations/Base.xcconfig:
  • Configurations/DebugRelease.xcconfig:
  • Configurations/Version.xcconfig:

Source/WebKit:

  • Configurations/Base.xcconfig:
  • Configurations/DebugRelease.xcconfig:
  • Configurations/Version.xcconfig:

Source/WebKitLegacy/mac:

  • Configurations/Base.xcconfig:
  • Configurations/DebugRelease.xcconfig:
  • Configurations/Version.xcconfig:

Source/WTF:

  • Configurations/Base.xcconfig:
  • Configurations/DebugRelease.xcconfig:

Tools:

  • ContentExtensionTester/Configurations/Base.xcconfig:
  • ContentExtensionTester/Configurations/DebugRelease.xcconfig:
  • DumpRenderTree/mac/Configurations/Base.xcconfig:
  • DumpRenderTree/mac/Configurations/DebugRelease.xcconfig:
  • ImageDiff/cg/Configurations/Base.xcconfig:
  • ImageDiff/cg/Configurations/DebugRelease.xcconfig:
  • MiniBrowser/Configurations/Base.xcconfig:
  • MiniBrowser/Configurations/DebugRelease.xcconfig:
  • TestWebKitAPI/Configurations/Base.xcconfig:
  • TestWebKitAPI/Configurations/DebugRelease.xcconfig:
  • WebEditingTester/Configurations/Base.xcconfig:
  • WebEditingTester/Configurations/DebugRelease.xcconfig:
  • WebKitTestRunner/Configurations/Base.xcconfig:
  • WebKitTestRunner/Configurations/DebugRelease.xcconfig:
  • lldb/lldbWebKitTester/Configurations/Base.xcconfig:
  • lldb/lldbWebKitTester/Configurations/DebugRelease.xcconfig:
9:16 PM Changeset in webkit [249311] by Keith Rollin
  • 2 edits
    1 delete in trunk/Tools

Remove empty FontCache.cpp file in TestWebKitAPI
https://bugs.webkit.org/show_bug.cgi?id=201277
<rdar://problem/54820726>

Reviewed by Alex Christensen.

Bug 200694 emptied out the contents of FontCache.cpp. This patch
removes the file from the project.

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebCore/FontCache.cpp: Removed.
8:28 PM Changeset in webkit [249310] by ysuzuki@apple.com
  • 3 edits
    1 add in trunk

[JSC] Repatch should construct CallCases and CasesValue at the same time
https://bugs.webkit.org/show_bug.cgi?id=201325

Reviewed by Saam Barati.

JSTests:

  • stress/repatch-switch.js: Added.

(main.f2.f0):
(main.f2.f3):
(main.f2.f1):
(main.f2):
(main):

Source/JavaScriptCore:

In linkPolymorphicCall, we should create callCases and casesValue at the same time to assert callCases.size() == casesValue.size().
If the call variant is isClosureCall and InternalFunction, we skip adding it to casesValue. So we should not add this variant to callCases too.

  • jit/Repatch.cpp:

(JSC::linkPolymorphicCall):

7:35 PM Changeset in webkit [249309] by Simon Fraser
  • 4 edits in trunk/Source/WebCore

Avoid running the outline painting phase if no renderers have outlines
https://bugs.webkit.org/show_bug.cgi?id=201284

Reviewed by Said Abou-Hallawa.

The outline painting phase (paintOutlineForFragments()) can take up to 20% of the painting time
even when there are no outlines. Keep track of which renderers have outlines, and only run the phase
when printing (for hasOutlineAnnotation()) or if there are any renderers with outlines.

  • rendering/RenderElement.cpp:

(WebCore::RenderElement::styleWillChange):
(WebCore::RenderElement::styleDidChange):
(WebCore::RenderElement::willBeDestroyed):

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::paintLayerContents):

  • rendering/RenderView.h:
6:57 PM Changeset in webkit [249308] by Keith Rollin
  • 2 edits in trunk/Source/WebKit

Invalid XPCServices symlinks are being created
https://bugs.webkit.org/show_bug.cgi?id=201320
<rdar://problem/54719612>

Reviewed by Dan Bernstein.

When performing incremental builds, errant XPCServices symlinks can be
created. For example, in the following, the second symlink is the
correct one. The first symlink gets created when the build process
tries to create the symlink and it already exists. When it already
exists, the command to create the symlink actually follows the
existing symlink and creates the (second) symlink at the location
where the first symlink points.

WebKit.framework/Versions/A/XPCServices/XPCServices@ -> Versions/Current/XPCServices
WebKit.framework/XPCServices@ -> Versions/Current/XPCServices

Address this by specifying -h to the ln command, which will cause it
to not follow symlinks if they already exist at the target.

Also, fix a benign issue where the Xcode build variable WRAPPER_NAME
was being referenced in a context where it wasn't defined.

  • WebKit.xcodeproj/project.pbxproj:
6:40 PM Changeset in webkit [249307] by timothy@apple.com
  • 5 edits in trunk

Copying and pasting two paragraphs with a newline between them results in stray paragraph with newline inside.
https://bugs.webkit.org/show_bug.cgi?id=201306

Reviewed by Wenson Hsieh.

Source/WebCore:

Test: editing/pasteboard/paste-without-nesting.html

  • editing/ReplaceSelectionCommand.cpp:

(WebCore::ReplaceSelectionCommand::moveNodeOutOfAncestor): Consider the ancestor node safe to remove
if there is no rendered text inside, not just if there are any child nodes.

LayoutTests:

  • editing/pasteboard/paste-without-nesting-expected.txt: Updated results.
  • editing/pasteboard/paste-without-nesting.html: Added new test case.
6:30 PM Changeset in webkit [249306] by ysuzuki@apple.com
  • 3 edits
    1 add in trunk

[JSC] ObjectAllocationSinkingPhase wrongly deals with always-taken branches during interpretation
https://bugs.webkit.org/show_bug.cgi?id=198650

Reviewed by Saam Barati.

JSTests:

  • stress/object-allocation-sinking-interpretation-can-interpret-edges-that-can-be-proven-unreachable-in-ai.js:

(main.v0):
(main):

Source/JavaScriptCore:

Object Allocation Sinking phase has a lightweight abstract interpreter which interprets DFG nodes related to allocations and properties.
This interpreter is lightweight since it does not track abstract values and conditions as deeply as AI does. It can happen that this
interpreter interpret the control-flow edge that AI proved that is never taken.
AI already knows some control-flow edges are never taken, and based on this information, AI can remove CheckStructure nodes. But
ObjectAllocationSinking phase can trace this never-taken edges and propagate structure information that contradicts to the analysis
done in ObjectAllocationSinking.

Let's see the example.

BB#0

35: NewObject([%AM:Object])
...
47: Branch(ConstantTrue, T:#1, F:#2)

BB#1 This basic block is never taken due to @47's jump.

...
71: PutByOffset(@35, @66, id2{a}, 0, W:NamedProperties(2))
72: PutStructure(@35, %AM:Object -> %Dx:Object, ID:60066)
...
XX: Jump(#2)

BB#2

...
92: CheckStructure(@35, [%Dx:Object])
93: PutByOffset(@35, @35, id2{a}, 0, W:NamedProperties(2))
...

AI removes @92 because AI knows BB#0 only takes BB#1 branch. @35's Structure is always %Dx so @92 is redundant.
AI proved that @71 and @72 are always executed while BB#0 -> BB#2 edge is never taken so that @35 object's structure is proven at @92.
After AI removes @92, ObjectAllocationSinking starts looking into this graph.

BB#0

35: NewObject([%AM:Object])
...
47: Branch(ConstantTrue, T:#1, F:#2)

BB#1 This basic block is never taken due to @47's jump.

...
71: PutByOffset(@35, @66, id2{a}, 0, W:NamedProperties(2))
72: PutStructure(@35, %AM:Object -> %Dx:Object, ID:60066)
...
XX: Jump(#2)

BB#2

...
93: PutByOffset(@35, @35, id2{a}, 0, W:NamedProperties(2))
...
YY: Jump(#3)

BB#3

...
ZZ: <HERE> want to materialize @35's sunk object.

Since AI does not change the @47 Branch to Jump (it is OK anyway), BB#0 -> BB#2 edge remains and ObjectAllocationSinking phase propagates information in
BB#0's %AM structure information to BB#2. ObjectAllocationSinking phase converts @35 to PhantomNewObject, removes PutByOffset and PutStructure, and
insert MaterializeNewObject in @ZZ. At this point, ObjectAllocationSinking lightweight interpreter gets two structures while AI gets one: @35's original
one (%AM) and @72's replaced one (%Dx). Since AI already proved @ZZ only gets %Dx, AI removed @92 CheckStructure. But this is not known to ObjectAllocationSinking
phase's interpretation. So when creating recovery data, MultiPutByOffset includes two structures, %AM and %Dx. This is OK since MultiPutByOffset takes
conservative set of structures and performs switching. But the problem here is that %AM's id2{a} offset is -1 since %AM does not have such a property.
So when creating MultiPutByOffset in ObjectAllocationSinking, we accidentally create MultiPutByOffset with -1 offset data, and lowering phase hits the debug
assertion.

187: MultiPutByOffset(@138, @138, id2{a}, <Replace: [%AM:Object], offset = -1, >, <Replace: [%Dx:Object], offset = 0, >)

This bug is harmless since %AM structure comparison never meets at runtime. But we are not considering the case including -1 offset property in MultiPutByOffset data.
In this patch, we just filter out apparently wrong structures when creating MultiPutByOffset in ObjectAllocationSinking. This is OK since it never comes at runtime.

  • dfg/DFGObjectAllocationSinkingPhase.cpp:
6:08 PM Changeset in webkit [249305] by Devin Rousso
  • 16 edits
    18 adds in trunk

Web Inspector: DOMDebugger: support event breakpoints in Worker contexts
https://bugs.webkit.org/show_bug.cgi?id=200651

Reviewed by Joseph Pecoraro.

Source/JavaScriptCore:

  • inspector/protocol/DOMDebugger.json:

Make the domain available in "worker" contexts as well.

Source/WebCore:

Tests: inspector/worker/dom-debugger-dom-breakpoints.html

inspector/worker/dom-debugger-event-animation-frame-breakpoints.html
inspector/worker/dom-debugger-event-interval-breakpoints.html
inspector/worker/dom-debugger-event-listener-breakpoints.html
inspector/worker/dom-debugger-event-timeout-breakpoints.html
inspector/worker/dom-debugger-url-breakpoints.html

  • inspector/agents/InspectorDOMDebuggerAgent.h:
  • inspector/agents/InspectorDOMDebuggerAgent.cpp:

(WebCore::InspectorDOMDebuggerAgent::InspectorDOMDebuggerAgent):
(WebCore::InspectorDOMDebuggerAgent::enabled const):
(WebCore::InspectorDOMDebuggerAgent::enable):
(WebCore::InspectorDOMDebuggerAgent::disable):
(WebCore::InspectorDOMDebuggerAgent::debuggerWasEnabled):
(WebCore::InspectorDOMDebuggerAgent::debuggerWasDisabled):
(WebCore::InspectorDOMDebuggerAgent::setEventBreakpoint):
(WebCore::InspectorDOMDebuggerAgent::removeEventBreakpoint):
(WebCore::InspectorDOMDebuggerAgent::~InspectorDOMDebuggerAgent): Deleted.
(WebCore::InspectorDOMDebuggerAgent::frameDocumentUpdated): Deleted.
(WebCore::InspectorDOMDebuggerAgent::willInvalidateStyleAttr): Deleted.
(WebCore::InspectorDOMDebuggerAgent::didInsertDOMNode): Deleted.
(WebCore::InspectorDOMDebuggerAgent::didRemoveDOMNode): Deleted.
(WebCore::domTypeForName): Deleted.
(WebCore::domTypeName): Deleted.
(WebCore::InspectorDOMDebuggerAgent::setDOMBreakpoint): Deleted.
(WebCore::InspectorDOMDebuggerAgent::removeDOMBreakpoint): Deleted.
(WebCore::InspectorDOMDebuggerAgent::willInsertDOMNode): Deleted.
(WebCore::InspectorDOMDebuggerAgent::willRemoveDOMNode): Deleted.
(WebCore::InspectorDOMDebuggerAgent::willModifyDOMAttr): Deleted.
(WebCore::InspectorDOMDebuggerAgent::descriptionForDOMEvent): Deleted.
(WebCore::InspectorDOMDebuggerAgent::hasBreakpoint): Deleted.
(WebCore::InspectorDOMDebuggerAgent::updateSubtreeBreakpoints): Deleted.
(WebCore::InspectorDOMDebuggerAgent::willFireAnimationFrame): Deleted.

  • inspector/agents/page/PageDOMDebuggerAgent.h: Added.
  • inspector/agents/page/PageDOMDebuggerAgent.cpp: Added.

(WebCore::domTypeForName):
(WebCore::domTypeName):
(WebCore::PageDOMDebuggerAgent::PageDOMDebuggerAgent):
(WebCore::PageDOMDebuggerAgent::enabled const):
(WebCore::PageDOMDebuggerAgent::enable):
(WebCore::PageDOMDebuggerAgent::disable):
(WebCore::PageDOMDebuggerAgent::setDOMBreakpoint):
(WebCore::PageDOMDebuggerAgent::removeDOMBreakpoint):
(WebCore::PageDOMDebuggerAgent::frameDocumentUpdated):
(WebCore::PageDOMDebuggerAgent::willInsertDOMNode):
(WebCore::PageDOMDebuggerAgent::didInsertDOMNode):
(WebCore::PageDOMDebuggerAgent::willRemoveDOMNode):
(WebCore::PageDOMDebuggerAgent::didRemoveDOMNode):
(WebCore::PageDOMDebuggerAgent::willModifyDOMAttr):
(WebCore::PageDOMDebuggerAgent::willFireAnimationFrame):
(WebCore::PageDOMDebuggerAgent::willInvalidateStyleAttr):
(WebCore::PageDOMDebuggerAgent::setAnimationFrameBreakpoint):
(WebCore::PageDOMDebuggerAgent::descriptionForDOMEvent):
(WebCore::PageDOMDebuggerAgent::updateSubtreeBreakpoints):
(WebCore::PageDOMDebuggerAgent::hasBreakpoint):

  • inspector/agents/worker/WorkerDOMDebuggerAgent.h: Added.
  • inspector/agents/worker/WorkerDOMDebuggerAgent.cpp: Added.

(WebCore::WorkerDOMDebuggerAgent::WorkerDOMDebuggerAgent):
(WebCore::WorkerDOMDebuggerAgent::setDOMBreakpoint):
(WebCore::WorkerDOMDebuggerAgent::removeDOMBreakpoint):
(WebCore::WorkerDOMDebuggerAgent::setAnimationFrameBreakpoint):
Split the InspectorDOMDebuggerAgent into two subclasses depending on the inspected target
type, as certain DOMDebugger commands don't make sense for a Worker context:

  • DOM breakpoints, as there is no DOM in a Worker context
  • animation frame event breakpoints, as there is no requestAnimationFrame function
  • inspector/InspectorController.cpp:

(WebCore::InspectorController::createLazyAgents):

  • inspector/WorkerInspectorController.cpp:

(WebCore::WorkerInspectorController::createLazyAgents):

  • inspector/InstrumentingAgents.h:

(WebCore::InstrumentingAgents::pageDOMDebuggerAgent const): Added.
(WebCore::InstrumentingAgents::setPageDOMDebuggerAgent): Added.

  • inspector/InstrumentingAgents.cpp:

(WebCore::InstrumentingAgents::reset):

  • inspector/InspectorInstrumentation.cpp:

(WebCore::InspectorInstrumentation::willInsertDOMNodeImpl):
(WebCore::InspectorInstrumentation::didInsertDOMNodeImpl):
(WebCore::InspectorInstrumentation::willRemoveDOMNodeImpl):
(WebCore::InspectorInstrumentation::didRemoveDOMNodeImpl):
(WebCore::InspectorInstrumentation::willModifyDOMAttrImpl):
(WebCore::InspectorInstrumentation::willInvalidateStyleAttrImpl):
(WebCore::InspectorInstrumentation::frameDocumentUpdatedImpl):
(WebCore::InspectorInstrumentation::willFireAnimationFrameImpl):

  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:

Source/WebInspectorUI:

  • UserInterface/Controllers/DOMDebuggerManager.js:

(WI.DOMDebuggerManager.prototype._updateDOMBreakpoint):
(WI.DOMDebuggerManager.prototype._updateEventBreakpoint):
Add assertions when adding/removing DOM breakpoints or animation frame event breakpoints if
the target is a WI.WorkerTarget, as neither are supported by Workers.

LayoutTests:

  • inspector/worker/dom-debugger-dom-breakpoints.html: Added.
  • inspector/worker/dom-debugger-dom-breakpoints-expected.txt: Added.
  • inspector/worker/dom-debugger-event-animation-frame-breakpoints.html: Added.
  • inspector/worker/dom-debugger-event-animation-frame-breakpoints-expected.txt: Added.
  • inspector/worker/dom-debugger-event-interval-breakpoints.html: Added.
  • inspector/worker/dom-debugger-event-interval-breakpoints-expected.txt: Added.
  • inspector/worker/dom-debugger-event-listener-breakpoints.html: Added.
  • inspector/worker/dom-debugger-event-listener-breakpoints-expected.txt: Added.
  • inspector/worker/dom-debugger-event-timeout-breakpoints.html: Added.
  • inspector/worker/dom-debugger-event-timeout-breakpoints-expected.txt: Added.
  • inspector/worker/dom-debugger-url-breakpoints.html: Added.
  • inspector/worker/dom-debugger-url-breakpoints-expected.txt: Added.
  • inspector/debugger/resources/log-active-stack-trace.js: Added.

(TestPage.registerInitializer.window.logStackTrace): Added.
(TestPage.registerInitializer.window.logActiveStackTrace):

  • inspector/worker/resources/dom-debugger-utilities.js: Added.

(TestPage.registerInitializer.InspectorTest.Worker.DOMDebugger.createWorkerTarget):

  • inspector/worker/resources/worker-dom-debugger.js: Added.
5:39 PM Changeset in webkit [249304] by Keith Rollin
  • 5 edits in trunk/Source

Remove 32-bit macOS support
https://bugs.webkit.org/show_bug.cgi?id=201282
<rdar://problem/54821667>

Reviewed by Anders Carlsson.

WebKit doesn’t support 32-bit Mac any more, so remove checks and code
for that platform.

Source/JavaScriptCore:

  • API/JSBase.h:
  • runtime/VM.h:

Source/WTF:

  • wtf/Platform.h:
5:17 PM Changeset in webkit [249303] by commit-queue@webkit.org
  • 5 edits in trunk/Source/WebKit

Speculative loads should use the NetworkSession owning their Cache
https://bugs.webkit.org/show_bug.cgi?id=201314

Patch by Alex Christensen <achristensen@webkit.org> on 2019-08-29
Reviewed by Chris Dumez.

This provides a performance improvement when using non-default persistent WKWebsiteDataStores.

  • NetworkProcess/NetworkSession.cpp:

(WebKit::NetworkSession::NetworkSession):

  • NetworkProcess/cache/NetworkCache.cpp:

(WebKit::NetworkCache::Cache::open):
(WebKit::NetworkCache::Cache::Cache):

  • NetworkProcess/cache/NetworkCache.h:

(WebKit::NetworkCache::Cache::sessionID const):

  • NetworkProcess/cache/NetworkCacheSpeculativeLoad.cpp:

(WebKit::NetworkCache::SpeculativeLoad::SpeculativeLoad):

5:02 PM Changeset in webkit [249302] by Keith Rollin
  • 6 edits in trunk/Source/WebCore

Remove CCBigNum fallback code
https://bugs.webkit.org/show_bug.cgi?id=201250
<rdar://problem/54814330>

Reviewed by Jiewen Tan.

Bug 184637 added support for CCRSAGetCRTComponents, falling back to
the older CCBigNum code if CCRSAGetCRTComponents was not available. We
now only support OS's that have CCRSAGetCRTComponents so remove the
fallback code.

Source/WebCore:

No new tests -- no new or changed functionality.

  • crypto/CommonCryptoUtilities.cpp:

(WebCore::CCBigNum::CCBigNum): Deleted.
(WebCore::CCBigNum::~CCBigNum): Deleted.
(WebCore::CCBigNum::operator=): Deleted.
(WebCore::CCBigNum::data const): Deleted.
(WebCore::CCBigNum::operator- const): Deleted.
(WebCore::CCBigNum::operator% const): Deleted.
(WebCore::CCBigNum::inverse const): Deleted.

  • crypto/CommonCryptoUtilities.h:
  • crypto/mac/CryptoKeyRSAMac.cpp:

(WebCore::getPrivateKeyComponents):

Source/WebCore/PAL:

  • pal/spi/cocoa/CommonCryptoSPI.h:
4:56 PM Changeset in webkit [249301] by Devin Rousso
  • 31 edits in trunk

Web Inspector: replace uses of Array.prototype.concat with Array.prototype.push
https://bugs.webkit.org/show_bug.cgi?id=201082

Reviewed by Joseph Pecoraro.

Source/WebInspectorUI:

x = x.concat(y) is very slow, as x has to be fully copied in order to add y to it.
Introduce Array.prototype.pushIterable, which iterates the given iterable and adds each
item to the this array.

  • UserInterface/Controllers/DOMDebuggerManager.js:

(WI.DOMDebuggerManager.prototype.get domBreakpoints):
(WI.DOMDebuggerManager.prototype.domBreakpointsInSubtree):

  • UserInterface/Controllers/JavaScriptRuntimeCompletionProvider.js:

(WI.JavaScriptRuntimeCompletionProvider.completionControllerCompletionsNeeded.receivedPropertyNames):

  • UserInterface/Models/CSSCompletions.js:

(WI.CSSCompletions):

  • UserInterface/Models/CSSKeywordCompletions.js:

(WI.CSSKeywordCompletions.forProperty):
(WI.CSSKeywordCompletions.forProperty.addKeywordsForName):
(WI.CSSKeywordCompletions.forFunction):

  • UserInterface/Models/Canvas.js:

(WI.Canvas.prototype.recordingProgress):

  • UserInterface/Models/DOMNodeStyles.js:

(WI.DOMNodeStyles.prototype._updateStyleCascade):
(WI.DOMNodeStyles.prototype._collectStylesInCascadeOrder):

  • UserInterface/Models/TimelineRecording.js:

(WI.TimelineRecording.prototype.get sourceCodeTimelines):
(WI.TimelineRecording.prototype.initializeCallingContextTrees):

  • UserInterface/Protocol/RemoteObject.js:

(WI.RemoteObject.prototype._getPropertyDescriptorsResolver):

  • UserInterface/Views/ConsoleMessageView.js:

(WI.ConsoleMessageView.prototype._appendMessageTextAndArguments):

  • UserInterface/Views/ContentBrowser.js:

(WI.ContentBrowser.prototype.get currentRepresentedObjects):

  • UserInterface/Views/DOMTreeElement.js:

(WI.DOMTreeElement.prototype._visibleChildren):

  • UserInterface/Views/DataGridNode.js:

(WI.DataGridNode.prototype.get filterableData):

  • UserInterface/Views/HeapAllocationsTimelineView.js:

(WI.HeapAllocationsTimelineView.prototype.get selectionPathComponents):

  • UserInterface/Views/IndexedDatabaseObjectStoreContentView.js:

(WI.IndexedDatabaseObjectStoreContentView.prototype._fetchMoreData.processEntries):

  • UserInterface/Views/NavigationItem.js:

(WI.NavigationItem.prototype.get _classNames):

  • UserInterface/Views/ObjectTreeView.js:

(WI.ObjectTreeView.prototype._updateProperties):

  • UserInterface/Views/OpenResourceDialog.js:

(WI.OpenResourceDialog.prototype._addResourcesForFrame):

  • UserInterface/Views/OverviewTimelineView.js:

(WI.OverviewTimelineView.prototype._loadExistingRecords):

  • UserInterface/Views/ResourceCollectionContentView.js:

(WI.ResourceCollectionContentView.prototype.get navigationItems):

  • UserInterface/Views/ResourceHeadersContentView.js:

(WI.ResourceHeadersContentView.prototype._perfomSearchOnKeyValuePairs):

  • UserInterface/Views/ResourceSecurityContentView.js:

(WI.ResourceSecurityContentView.prototype._perfomSearchOnKeyValuePairs):

  • UserInterface/Views/ScriptClusterTimelineView.js:

(WI.ScriptClusterTimelineView.prototype.get selectionPathComponents):

  • UserInterface/Views/ScrubberNavigationItem.js:

(WI.ScrubberNavigationItem.prototype.get additionalClassNames):

  • UserInterface/Views/SpreadsheetStyleProperty.js:

(WI.SpreadsheetStyleProperty.prototype._addGradientTokens):
(WI.SpreadsheetStyleProperty.prototype._addColorTokens.pushPossibleColorToken):
(WI.SpreadsheetStyleProperty.prototype._addTimingFunctionTokens):
(WI.SpreadsheetStyleProperty.prototype._addVariableTokens):

  • UserInterface/Views/TreeOutline.js:

(WI.TreeOutline.prototype.selfOrDescendant):

  • UserInterface/Views/View.js:

(WI.View._visitViewTreeForLayout):

LayoutTests:

  • inspector/unit-tests/array-utilities.html:
  • inspector/unit-tests/array-utilities-expected.txt:

Add tests for added utility Array.prototype.pushIterable.

4:24 PM Changeset in webkit [249300] by Alan Coon
  • 1 copy in tags/Safari-608.2.11.0.1

Tag Safari-608.2.11.0.1.

4:23 PM Changeset in webkit [249299] by Alan Coon
  • 1 copy in tags/Safari-608.2.11.1.1

Tag Safari-608.2.11.1.1.

3:35 PM Changeset in webkit [249298] by aakash_jain@apple.com
  • 2 edits in trunk/Websites/bugs.webkit.org

[EWS] Increase status-bubble iframe width on bugzilla comment review page
https://bugs.webkit.org/show_bug.cgi?id=201304

Reviewed by Jonathan Bedard.

  • template/en/default/attachment/reviewform.html.tmpl: Increased the width from 400 to 700 pixels.
3:32 PM Changeset in webkit [249297] by Alan Bujtas
  • 5 edits in trunk/Source/WebCore

[LFC][TFC] Initialize <tr> display boxes.
https://bugs.webkit.org/show_bug.cgi?id=201232
<rdar://problem/54806789>

Reviewed by Antti Koivisto.

Set them as blank for now.

  • layout/tableformatting/TableFormattingContext.cpp:

(WebCore::Layout::TableFormattingContext::initializeDisplayBoxToBlank const):
(WebCore::Layout::TableFormattingContext::layout const):

  • layout/tableformatting/TableFormattingContext.h:
  • layout/tableformatting/TableGrid.cpp:

(WebCore::Layout::TableGrid::Row::Row):
(WebCore::Layout::TableGrid::appendCell):

  • layout/tableformatting/TableGrid.h:

(WebCore::Layout::TableGrid::Row::box const):

3:17 PM Changeset in webkit [249296] by wenson_hsieh@apple.com
  • 3 edits
    2 adds in trunk

[iOS 13] Caret does not appear in text field if the body element is translated completely out of the viewport
https://bugs.webkit.org/show_bug.cgi?id=201287
<rdar://problem/54780864>

Reviewed by Tim Horton.

Source/WebKit:

During EditorState computation, we use the hidden editable element heuristic to determine whether we should
begin suppressing selection gestures and UI. Currently, we use the editable root of the selection range to
determine where in the layer tree we should start our ascent, in search of a completely transparent or
completely clipped container.

However, in the case where the selection is inside a focused text field, this causes us to walk up the layer
tree starting at the RenderLayer corresponding to the text field's inner contenteditable div, which is different
than the text field's enclosing RenderLayer in the case where the containing block is transformed, such that no
part of it is within the visible viewport. This scenario is exercised by the below test case, in which the caret
after transforming the body horizontally by -100vw is hidden due to a false positive in the hidden editable area
heuristic.

Fix this by starting the layer tree ascent from the enclosing layer of the text form control if applicable,
instead of the inner editable area under the shadow root of the form control.

Test: editing/selection/ios/show-selection-in-transformed-container.html

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::platformEditorState const):

LayoutTests:

Add a new layout test that covers this scenario. See WebKit ChangeLog for additional detail.

  • editing/selection/ios/show-selection-in-transformed-container-expected.txt: Added.
  • editing/selection/ios/show-selection-in-transformed-container.html: Added.
3:01 PM Changeset in webkit [249295] by youenn@apple.com
  • 7 edits
    3 adds in trunk

document.fonts.ready is resolved too quickly
https://bugs.webkit.org/show_bug.cgi?id=174030
<rdar://problem/33083550>

Reviewed by Frédéric Wang.

LayoutTests/imported/w3c:

Test from https://github.com/web-platform-tests/wpt/pull/18489.

  • web-platform-tests/fonts/ahem.css: Added.

(@font-face):

  • web-platform-tests/infrastructure/assumptions/document-fonts-ready-expected.txt: Added.
  • web-platform-tests/infrastructure/assumptions/document-fonts-ready.html: Added.

Source/WebCore:

As described in https://drafts.csswg.org/css-font-loading/#font-face-set-ready, the ready promise
is only fulfilled after layout operations complete and no additional font loads are necessary.

This patch implements this by notifying the FontFaceSet created for the document when the document
is finished loading. At that time, the promise will be resolved as soon as fonts are finished loading if any.

Test: imported/w3c/web-platform-tests/infrastructure/assumptions/document-fonts-ready.html

  • css/CSSFontSelector.cpp:

(WebCore::CSSFontSelector::optionalFontFaceSet):

  • css/CSSFontSelector.h:
  • css/FontFaceSet.cpp:

(WebCore::FontFaceSet::FontFaceSet):
(WebCore::FontFaceSet::startedLoading):
(WebCore::FontFaceSet::didFirstLayout):
(WebCore::FontFaceSet::completedLoading):

  • css/FontFaceSet.h:
  • dom/Document.cpp:

(WebCore::Document::implicitClose):

2:55 PM Changeset in webkit [249294] by aakash_jain@apple.com
  • 2 edits in trunk/Tools

[ews-app] Status bubble should only display important messages in pop-over
https://bugs.webkit.org/show_bug.cgi?id=201308

Reviewed by Jonathan Bedard.

  • BuildSlaveSupport/ews-app/ews/views/statusbubble.py: Added various build-steps which are of low interest

to end-users in STEPS_TO_HIDE. If any of these steps fail, it will not be hidden.

2:51 PM Changeset in webkit [249293] by rniwa@webkit.org
  • 2 edits in trunk/LayoutTests

Flaky Test: svg/custom/tabindex-order.html
https://bugs.webkit.org/show_bug.cgi?id=201294

Reviewed by Chris Dumez.

Make the backward sequential navigation case more robust against platform differences.

  • svg/custom/tabindex-order.html:
2:26 PM Changeset in webkit [249292] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[LFC][BFC] BlockFormattingContext::usedAvailableWidthForFloatAvoider should only be called on float avoiders.
https://bugs.webkit.org/show_bug.cgi?id=201238
<rdar://problem/54807663>

Reviewed by Antti Koivisto.

Make the horizontal available space logic for float avoiders more explicit/readable.

  • layout/blockformatting/BlockFormattingContext.cpp:

(WebCore::Layout::BlockFormattingContext::usedAvailableWidthForFloatAvoider const):
(WebCore::Layout::BlockFormattingContext::layoutFormattingContextRoot const):

1:50 PM Changeset in webkit [249291] by Devin Rousso
  • 8 edits in trunk/Source/WebInspectorUI

Web Inspector: REGRESSION (r248873): Debugger: pressing delete on a breakpoint will also delete any resource/element parent immediately before it in the list
https://bugs.webkit.org/show_bug.cgi?id=200939

Reviewed by Joseph Pecoraro.

  • UserInterface/Views/DebuggerSidebarPanel.js:

(WI.DebuggerSidebarPanel.prototype._breakpointTreeOutlineDeleteTreeElement):
(WI.DebuggerSidebarPanel.prototype._handleBreakpointElementAddedOrRemoved):
(WI.DebuggerSidebarPanel.prototype._breakpointTreeOutlineDeleteTreeElement.checkIfSelectionAdjustmentNeeded): Deleted.

  • UserInterface/Views/SourcesNavigationSidebarPanel.js:

(WI.SourcesNavigationSidebarPanel):
(WI.SourcesNavigationSidebarPanel.prototype._handleBreakpointElementAddedOrRemoved):
(WI.SourcesNavigationSidebarPanel.this._breakpointsTreeOutline.ondelete.checkIfSelectionAdjustmentNeeded): Deleted.
When the WI.TreeOutline's own ondelete is called, that means we must be handling a
delete that was _not_ handled by a WI.TreeElement. This means that the selectedTreeElement
has to be a resource/script, the window object, or one of the non-deletable breakpoints.

In the case of a non-deletable breakpoint, since they're never removed from their parent
WI.TreeOutline, we just shift the selection to the next selectable WI.TreeElement.

Otherwise, wait for the WI.TreeOutline.Event.ElementRemoved event to be fired, and adjust
the selection then based on whether the new selectedTreeElement is one of the "top" items,
namely the "All Exceptions", "Uncaught Exceptions", and "Assertion Failures" breakpoints.

  • UserInterface/Views/BreakpointTreeElement.js:

(WI.BreakpointTreeElement.prototype.ondelete):

  • UserInterface/Views/DOMBreakpointTreeElement.js:

(WI.DOMBreakpointTreeElement.prototype.ondelete):

  • UserInterface/Views/DOMNodeTreeElement.js:

(WI.DOMNodeTreeElement.prototype.ondelete):

  • UserInterface/Views/EventBreakpointTreeElement.js:

(WI.EventBreakpointTreeElement.prototype.ondelete):

  • UserInterface/Views/URLBreakpointTreeElement.js:

(WI.URLBreakpointTreeElement.prototype.ondelete):
Add return true; to let the parent WI.TreeOutline know that the delete event was handled.
This prevents the parent WI.TreeOutline's own ondelete from being called, which would
cause a double-delete as there would be a different selectedTreeElement.

1:48 PM Changeset in webkit [249290] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[LFC] Inline content logging should have some extra space for better readability
https://bugs.webkit.org/show_bug.cgi?id=201236
<rdar://problem/54807336>

Reviewed by Antti Koivisto.

  • layout/layouttree/LayoutTreeBuilder.cpp:

(WebCore::Layout::outputInlineRuns):

1:07 PM Changeset in webkit [249289] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[LFC][TFC] Use the "complicated-cases" category for computing the TFC root's height
https://bugs.webkit.org/show_bug.cgi?id=201230
<rdar://problem/54806131>

Reviewed by Antti Koivisto.

This might change in the future but for now let's use the "complicated cases" when we need to compute the TFC's height and vertical margin.
This is very BFC specific since (block)TFC is always parented in a BFC.

  • layout/blockformatting/BlockFormattingContextGeometry.cpp:

(WebCore::Layout::BlockFormattingContext::Geometry::inFlowHeightAndMargin):

1:03 PM Changeset in webkit [249288] by Alan Bujtas
  • 4 edits in trunk/Source/WebCore

[LFC][TFC] The table wrapper box is a block level box
https://bugs.webkit.org/show_bug.cgi?id=201229
<rdar://problem/54805515>

Reviewed by Antti Koivisto.

This is the anonymous box that we inject as the parent of the table caption/actual table box.

  • layout/FormattingContextGeometry.cpp:

(WebCore::Layout::FormattingContext::Geometry::complicatedCases):

  • layout/blockformatting/BlockFormattingContext.cpp:

(WebCore::Layout::BlockFormattingContext::computeEstimatedVerticalPositionForAncestors const):

  • layout/layouttree/LayoutBox.cpp:

(WebCore::Layout::Box::establishesBlockFormattingContext const):
(WebCore::Layout::Box::isFloatAvoider const):
(WebCore::Layout::Box::isBlockLevelBox const):

12:24 PM Changeset in webkit [249287] by youenn@apple.com
  • 26 edits
    3 adds in trunk

Skip fetch event dispatching if no fetch event handler is added at script evaluation time
https://bugs.webkit.org/show_bug.cgi?id=201174

Reviewed by Chris Dumez.

Source/WebCore:

At end of worker script evaluation, store whether a fetch event handler is registered.
Send it back to the SWServer that will store it in the corresponding SWServerWorker.

Add support for soft update directly from the registration.
This will trigger a soft-update from the worker context itself.
In theory, this should be started by the job queue but we do not have a way yet to implement this as per spec.

Test: http/wpt/service-workers/skipFetchEvent.https.html

  • workers/DedicatedWorkerThread.h:

(WebCore::DedicatedWorkerThread::start):

  • workers/WorkerMessagingProxy.cpp:

(WebCore::WorkerMessagingProxy::startWorkerGlobalScope):

  • workers/WorkerThread.cpp:

(WebCore::WorkerThread::workerThread):

  • workers/WorkerThread.h:

(WebCore::WorkerThread::finishedEvaluatingScript):

  • workers/service/context/SWContextManager.cpp:

(WebCore::SWContextManager::registerServiceWorkerThreadForInstall):
(WebCore::SWContextManager::startedServiceWorker):
(WebCore::SWContextManager::softUpdate):

  • workers/service/context/SWContextManager.h:
  • workers/service/context/ServiceWorkerThread.cpp:

(WebCore::ServiceWorkerThread::postFetchTask):
(WebCore::ServiceWorkerThread::softUpdate):
(WebCore::ServiceWorkerThread::finishedEvaluatingScript):
(WebCore::ServiceWorkerThread::start):

  • workers/service/context/ServiceWorkerThread.h:

(WebCore::ServiceWorkerThread::doesHandleFetch const):

  • workers/service/server/SWServer.h:
  • workers/service/server/SWServerRegistration.cpp:

(WebCore::SWServerRegistration::shouldSoftUpdate const):
(WebCore::SWServerRegistration::softUpdate):

  • workers/service/server/SWServerRegistration.h:

(WebCore::SWServerRegistration::isStale const):

  • workers/service/server/SWServerToContextConnection.cpp:

(WebCore::SWServerToContextConnection::generateConnectionIdentifier):
(WebCore::SWServerToContextConnection::SWServerToContextConnection):
(WebCore::SWServerToContextConnection::scriptContextStarted):

  • workers/service/server/SWServerToContextConnection.h:
  • workers/service/server/SWServerWorker.cpp:

(WebCore::SWServerWorker::scriptContextStarted):
(WebCore::SWServerWorker::setState):

  • workers/service/server/SWServerWorker.h:

(WebCore::SWServerWorker::shouldSkipFetchEvent const):

Source/WebKit:

Store whether a fetch event handler is set at script evaluation time.
If not, we skip the fetch event entirely so that the network load can start sooner.
If fetch event is skipped, we trigger soft update, as defined in
https://w3c.github.io/ServiceWorker/#handle-fetch step 16.

  • NetworkProcess/ServiceWorker/WebSWServerConnection.cpp:

(WebKit::WebSWServerConnection::startFetch):

  • NetworkProcess/ServiceWorker/WebSWServerToContextConnection.cpp:

(WebKit::WebSWServerToContextConnection::softUpdate):

  • NetworkProcess/ServiceWorker/WebSWServerToContextConnection.h:
  • NetworkProcess/ServiceWorker/WebSWServerToContextConnection.messages.in:
  • WebProcess/Storage/WebSWContextManagerConnection.cpp:

(WebKit::WebSWContextManagerConnection::serviceWorkerStarted):
(WebKit::WebSWContextManagerConnection::serviceWorkerFailedToStart):
(WebKit::WebSWContextManagerConnection::softUpdate):

  • WebProcess/Storage/WebSWContextManagerConnection.h:
  • WebProcess/Storage/WebSWContextManagerConnection.messages.in:

LayoutTests:

  • http/wpt/service-workers/skipFetchEvent-worker.js: Added.

(async.doTest):

  • http/wpt/service-workers/skipFetchEvent.https-expected.txt: Added.
  • http/wpt/service-workers/skipFetchEvent.https.html: Added.
12:22 PM Changeset in webkit [249286] by Keith Rollin
  • 16 edits in trunk

Remove support for macOS < 10.13 (part 3)
https://bugs.webkit.org/show_bug.cgi?id=201224
<rdar://problem/54795934>

Reviewed by Darin Adler.

Remove symbols in WebKitTargetConditionals.xcconfig related to macOS
10.13, including WK_MACOS_1013 and WK_MACOS_BEFORE_1013, and suffixes
like _MACOS_SINCE_1013.

Source/JavaScriptCore:

  • Configurations/WebKitTargetConditionals.xcconfig:

Source/ThirdParty/libwebrtc:

  • Configurations/WebKitTargetConditionals.xcconfig:

Source/WebCore:

No new tests -- no new or changed functionality.

  • Configurations/WebKitTargetConditionals.xcconfig:

Source/WebCore/PAL:

  • Configurations/WebKitTargetConditionals.xcconfig:

Source/WebInspectorUI:

Also added some macOS target numbers.

  • Configurations/WebKitTargetConditionals.xcconfig:

Source/WebKit:

  • Configurations/WebKitTargetConditionals.xcconfig:

Source/WebKitLegacy/mac:

  • Configurations/WebKitTargetConditionals.xcconfig:

Tools:

Also added some macOS target numbers.

  • TestWebKitAPI/Configurations/WebKitTargetConditionals.xcconfig:
11:40 AM Changeset in webkit [249285] by Jonathan Bedard
  • 2 edits in trunk/Tools

results.webkit.org: Remove border from tooltip
https://bugs.webkit.org/show_bug.cgi?id=201239

Reviewed by Alex Christensen.

  • resultsdbpy/resultsdbpy/view/static/css/tooltip.css:

(.tooltip-content): Remove border.

11:01 AM Changeset in webkit [249284] by Kocsen Chung
  • 4 edits in branches/safari-608.2.11.1-branch

Cherry-pick r249224. rdar://problem/54819205

Null check webFrame when creating a print preview to prevent a crash.
https://bugs.webkit.org/show_bug.cgi?id=201237
<rdar://problem/51618863>

Reviewed by Tim Horton.

Source/WebKit:

Move and expend a null check to keep from crashing when making a print preview.

  • UIProcess/mac/WKPrintingView.mm: (-[WKPrintingView _drawPreview:]): (-[WKPrintingView drawRect:]):

Tools:

Test to verify that if we don't have the WebPageProxy, we will not crash when making a print preview.

  • TestWebKitAPI/Tests/WebKitCocoa/UIDelegate.mm: (TEST):

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

11:01 AM Changeset in webkit [249283] by Kocsen Chung
  • 3 edits
    3 adds in branches/safari-608.2.11.1-branch

Cherry-pick r249156. rdar://problem/54775048

Crash under WebCore::jsNotificationConstructorPermission
https://bugs.webkit.org/show_bug.cgi?id=201186
<rdar://problem/53962833>

Reviewed by Youenn Fablet.

Source/WebCore:

Update the Notification API implementation to null-check the page before using. The page becomes null
when using the API in a frame that gets detached from its parent while in the middle of running
script.

Test: http/tests/notifications/request-in-detached-frame.html

  • Modules/notifications/Notification.cpp: (WebCore::Notification::permission): (WebCore::Notification::requestPermission):

LayoutTests:

Add layout test coverage.

  • http/tests/notifications/request-in-detached-frame-expected.txt: Added.
  • http/tests/notifications/request-in-detached-frame.html: Added.
  • http/tests/notifications/resources/request-in-detached-frame-subframe.html: Added.

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

11:01 AM Changeset in webkit [249282] by Kocsen Chung
  • 3 edits in branches/safari-608.2.11.1-branch/Source/WebCore

Cherry-pick r249154. rdar://problem/54775050

Disabled devices should not be taken into account when searching for a capture device
https://bugs.webkit.org/show_bug.cgi?id=201183
<rdar://problem/54353440>

Reviewed by Jer Noble.

Manually tested.

  • platform/mediastream/mac/CoreAudioCaptureDeviceManager.cpp: (WebCore::CoreAudioCaptureDeviceManager::coreAudioDeviceWithUID): We currently keep a list of devices, some of which might be disabled. We should not take into account disabled devices, only enabled devices when doing this search.
  • platform/mediastream/mac/CoreAudioCaptureSource.cpp: (WebCore::CoreAudioSharedUnit::setupAudioUnit): Improve logging.

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

10:21 AM Changeset in webkit [249281] by dino@apple.com
  • 2 edits in trunk/Source/WebKitLegacy/mac

GenerateTAPI WebKitLegacy.tbd fails on internal iOS Simulator builds
https://bugs.webkit.org/show_bug.cgi?id=201200

Reverting r249211 after Dan Bernstein pointed out it will cause
an error with the public iOS 13 SDK.

  • Misc/WebDownload.h:
10:11 AM Changeset in webkit [249280] by Chris Dumez
  • 2 edits in trunk/Source/WTF

CompletionHandler default constructor does not initialize m_wasConstructedOnMainThread
https://bugs.webkit.org/show_bug.cgi?id=201249

Reviewed by Joseph Pecoraro and Alex Christensen.

  • wtf/CompletionHandler.h:

(WTF::CompletionHandler<Out):

10:04 AM Changeset in webkit [249279] by mark.lam@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Remove a bad assertion in ByteCodeParser::inlineCall().
https://bugs.webkit.org/show_bug.cgi?id=201292
<rdar://problem/54121659>

Reviewed by Michael Saboff.

In the DFG bytecode parser, we've already computed the inlining cost of a candidate
inlining target, and determine that it is worth inlining before invoking
ByteCodeParser::inlineCall(). However, in ByteCodeParser::inlineCall(), it
recomputes the inlining cost again only for the purpose of asserting that it isn't
too high.

Not consider a badly written test that does the following:

function bar() {

...
foo(); Call in a hot loop here.
...

}

bar(); <===== foo is inlineable into bar here.
noInline(foo);
<===== Change mind, and make foo not inlineable.
bar();

With this bad test, the following racy scenario can occur:

  1. the first invocation of bar() gets hot, and a concurrent compile is kicked off.
  2. the compiler thread computes foo()'s inliningCost() and determines that it is worthy to be inlined, and will imminently call inlineCall().
  3. the mutator calls the noInline() test utility on foo(), thereby making it NOT inlineable.
  4. the compiler thread calls inlineCall(). In inlineCall(), it re-computes the inliningCost for foo() and now finds that it is not inlineable. An assertion failure follows.

Technically, the test is in error because noInline() shouldn't be used that way.
However, fuzzers that are not clued into noInline()'s proper usage may generate
code like this.

On the other hand, ByteCodeParser::inlineCall() should not be recomputing that the
inlining cost and asserting on it. The only reason inlineCall() is invoked is
because it was already previously determined that a target function is inlineable
based on its inlining cost. Today, in practice, I don't think we have any real
world condition where the mutator can affect the inlining cost of a target
function midway through execution. So, this assertion isn't a problem if no one
writes a test that abuses noInline(). However, should things change such that the
mutator is able to affect the inlining cost of a target function, then it is
incorrect for the compiler to assume that the inlining cost is immutable. Once
the compiler decides to inline a function, it should just follow through.

This patch removes this assertion in ByteCodeParser::inlineCall(). It is an
annoyance at best (for fuzzers), and at worst, incorrect if the mutator gains the
ability to affect the inlining cost of a target function.

  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::inlineCall):

10:01 AM Changeset in webkit [249278] by aboya@igalia.com
  • 6 edits
    17 adds in trunk/LayoutTests

[GTK] Unreviewed test gardening
https://bugs.webkit.org/show_bug.cgi?id=201276

  • fast/borders/empty-outline-border-assert-expected.txt:
  • platform/gtk/TestExpectations:
  • platform/gtk/fast/dom/Window/window-lookup-precedence-expected.txt: Added.
  • platform/gtk/fast/forms/label/labelable-elements-expected.txt: Added.
  • platform/gtk/http/tests/media/hls/video-controls-live-stream-expected.txt:
  • platform/gtk/http/tests/security/mixedContent/websocket/insecure-websocket-in-iframe-expected.txt: Added.
  • platform/gtk/http/tests/security/mixedContent/websocket/insecure-websocket-in-main-frame-expected.txt: Added.
  • platform/gtk/imported/w3c/web-platform-tests/custom-elements/builtin-coverage-expected.txt: Added.
  • platform/gtk/imported/w3c/web-platform-tests/dom/nodes/Node-cloneNode-expected.txt: Added.
  • platform/gtk/imported/w3c/web-platform-tests/html/semantics/interactive-elements/the-dialog-element/dialog-showModal-expected.txt:
  • platform/gtk/imported/w3c/web-platform-tests/html/semantics/interfaces-expected.txt: Added.
  • platform/gtk/imported/w3c/web-platform-tests/websockets/closing-handshake/003-expected.txt:
  • platform/gtk/imported/w3c/web-platform-tests/websockets/cookies/004-expected.txt:
  • platform/gtk/imported/w3c/web-platform-tests/websockets/unload-a-document/002-expected.txt: Added.
  • platform/gtk/imported/w3c/web-platform-tests/websockets/unload-a-document/004-expected.txt: Added.
  • platform/ios-wk2/fast/borders/empty-outline-border-assert-expected.txt: Removed.
  • platform/mac-wk2/fast/borders/empty-outline-border-assert-expected.txt: Removed.
9:19 AM Changeset in webkit [249277] by youenn@apple.com
  • 21 edits in trunk

Use WebPageProxy callbacks in case of authentication challenge received from Service Worker
https://bugs.webkit.org/show_bug.cgi?id=201177

Reviewed by Alex Christensen.

Source/WebKit:

Send topOrigin for every possible load to NetworkProcess.
Send topOrigin as part of authentication challenge to UIProcess.

If there is no corresponding page for the pageID, try getting a page
related to the service worker using the topOrigin and send the challenge to it.

  • NetworkProcess/NetworkCORSPreflightChecker.cpp:

(WebKit::NetworkCORSPreflightChecker::didReceiveChallenge):

  • NetworkProcess/NetworkCORSPreflightChecker.h:
  • NetworkProcess/NetworkLoad.cpp:

(WebKit::NetworkLoad::didReceiveChallenge):

  • NetworkProcess/NetworkLoadChecker.cpp:

(WebKit::NetworkLoadChecker::NetworkLoadChecker):
(WebKit::NetworkLoadChecker::checkCORSRequestWithPreflight):

  • NetworkProcess/NetworkLoadChecker.h:
  • NetworkProcess/NetworkLoadParameters.h:
  • NetworkProcess/NetworkResourceLoadParameters.cpp:

(WebKit::NetworkResourceLoadParameters::encode const):
(WebKit::NetworkResourceLoadParameters::decode):

  • NetworkProcess/NetworkResourceLoadParameters.h:
  • NetworkProcess/NetworkResourceLoader.cpp:

(WebKit::m_shouldCaptureExtraNetworkLoadMetrics):

  • NetworkProcess/PingLoad.cpp:

(WebKit::PingLoad::PingLoad):
(WebKit::PingLoad::didReceiveChallenge):

  • Shared/Authentication/AuthenticationManager.cpp:

(WebKit::AuthenticationManager::didReceiveAuthenticationChallenge):

  • Shared/Authentication/AuthenticationManager.h:
  • UIProcess/Network/NetworkProcessProxy.cpp:

(WebKit::NetworkProcessProxy::processAuthenticationChallenge):
(WebKit::NetworkProcessProxy::didReceiveAuthenticationChallenge):

  • UIProcess/Network/NetworkProcessProxy.h:
  • UIProcess/Network/NetworkProcessProxy.messages.in:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::didReceiveAuthenticationChallengeProxy):

  • UIProcess/WebPageProxy.h:
  • WebProcess/Network/WebLoaderStrategy.cpp:

(WebKit::WebLoaderStrategy::scheduleLoadFromNetworkProcess):
(WebKit::WebLoaderStrategy::loadResourceSynchronously):
(WebKit::WebLoaderStrategy::startPingLoad):

LayoutTests:

  • http/wpt/service-workers/server-trust-evaluation.https.html:
9:14 AM Changeset in webkit [249276] by cturner@igalia.com
  • 2 edits in trunk/Source/WebCore

[GStreamer] Do not use makeWeakPtr from streaming thread.
https://bugs.webkit.org/show_bug.cgi?id=201220

Reviewed by Xabier Rodriguez-Calvar.

Test: imported/w3c/web-platform-tests/encrypted-media/clearkey-mp4-playback-retrieve-persistent-license.https.html

Recently some asserts were added that you can't create WeakPtr's
from streaming threads when the factory is created on the
main-thread. The fix is to eagerly create the WeakPtr at player
initialization time, rather than lazily when the streaming thread
first asks for it.

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.h:
8:28 AM Changeset in webkit [249275] by Chris Dumez
  • 63 edits
    1 add in trunk/Source/WebKit

Dissociate the WebPageProxy's identifier from the WebPage's
https://bugs.webkit.org/show_bug.cgi?id=201233

Reviewed by Alex Christensen.

Dissociate the WebPageProxy's identifier from the WebPage's. This will allow bumping the
WebPage's identifier everytime we create a WebPage in a new process in case of process
swap on navigation (Bug 201225).

  • Shared/WebBackForwardListItem.cpp:

(WebKit::WebBackForwardListItem::create):
(WebKit::WebBackForwardListItem::WebBackForwardListItem):

  • Shared/WebBackForwardListItem.h:

(WebKit::WebBackForwardListItem::pageID const):

  • UIProcess/API/C/WKPage.cpp:

(WKPageSetPageLoaderClient):

  • UIProcess/API/Cocoa/WKBrowsingContextController.mm:

(-[WKBrowsingContextController handle]):

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView dealloc]):
(-[WKWebView _didCommitLayerTree:]):
(-[WKWebView _dispatchSetViewLayoutSize:]):
(-[WKWebView _cancelAnimatedResize]):
(-[WKWebView _remoteObjectRegistry]):
(-[WKWebView _handle]):
(-[WKWebView _focusTextInputContext:completionHandler:]):
(-[WKWebView _endAnimatedResize]):
(-[WKWebView _resizeWhileHidingContentWithUpdates:]):
(-[WKWebView _overrideLayoutParametersWithMinimumLayoutSize:maximumUnobscuredSizeOverride:]):

  • UIProcess/API/Cocoa/WKWebsiteDataStore.mm:

(-[WKWebsiteDataStore _getAllStorageAccessEntriesFor:completionHandler:]):

  • UIProcess/API/glib/WebKitWebContext.cpp:

(webkitWebContextGetWebViewForPage):

  • UIProcess/API/glib/WebKitWebView.cpp:

(webkit_web_view_get_page_id):

  • UIProcess/Automation/WebAutomationSession.cpp:

(WebKit::WebAutomationSession::handleForWebPageProxy):
(WebKit::WebAutomationSession::switchToBrowsingContext):
(WebKit::WebAutomationSession::waitForNavigationToCompleteOnPage):
(WebKit::WebAutomationSession::respondToPendingPageNavigationCallbacksWithTimeout):
(WebKit::WebAutomationSession::navigationOccurredForFrame):
(WebKit::WebAutomationSession::documentLoadedForFrame):
(WebKit::WebAutomationSession::inspectorFrontendLoaded):
(WebKit::WebAutomationSession::mouseEventsFlushedForPage):
(WebKit::WebAutomationSession::keyboardEventsFlushedForPage):
(WebKit::WebAutomationSession::willClosePage):
(WebKit::WebAutomationSession::evaluateJavaScriptFunction):
(WebKit::WebAutomationSession::resolveChildFrameHandle):
(WebKit::WebAutomationSession::resolveParentFrameHandle):
(WebKit::WebAutomationSession::computeElementLayout):
(WebKit::WebAutomationSession::selectOptionElement):
(WebKit::WebAutomationSession::getAllCookies):
(WebKit::WebAutomationSession::deleteSingleCookie):
(WebKit::WebAutomationSession::inputDispatcherForPage):
(WebKit::WebAutomationSession::viewportInViewCenterPointOfElement):
(WebKit::WebAutomationSession::simulateMouseInteraction):
(WebKit::WebAutomationSession::simulateKeyboardInteraction):
(WebKit::WebAutomationSession::performMouseInteraction):
(WebKit::WebAutomationSession::performKeyboardInteractions):
(WebKit::WebAutomationSession::takeScreenshot):

  • UIProcess/Automation/WebAutomationSession.h:
  • UIProcess/Automation/mac/WebAutomationSessionMac.mm:

(WebKit::WebAutomationSession::inspectBrowsingContext):

  • UIProcess/Cocoa/PlaybackSessionManagerProxy.mm:

(WebKit::PlaybackSessionManagerProxy::PlaybackSessionManagerProxy):
(WebKit::PlaybackSessionManagerProxy::invalidate):

  • UIProcess/Cocoa/TextCheckingController.mm:

(WebKit::TextCheckingController::replaceRelativeToSelection):
(WebKit::TextCheckingController::removeAnnotationRelativeToSelection):

  • UIProcess/Cocoa/VideoFullscreenManagerProxy.mm:

(WebKit::VideoFullscreenManagerProxy::VideoFullscreenManagerProxy):
(WebKit::VideoFullscreenManagerProxy::invalidate):

  • UIProcess/Cocoa/WebPageProxyCocoa.mm:

(WebKit::WebPageProxy::performDictionaryLookupAtLocation):
(WebKit::WebPageProxy::performDictionaryLookupOfCurrentSelection):
(WebKit::WebPageProxy::paymentCoordinatorAddMessageReceiver):
(WebKit::WebPageProxy::paymentCoordinatorRemoveMessageReceiver):
(WebKit::WebPageProxy::speakingErrorOccurred):
(WebKit::WebPageProxy::boundaryEventOccurred):
(WebKit::WebPageProxy::voicesDidChange):

  • UIProcess/Cocoa/WebViewImpl.mm:

(WebKit::WebViewImpl::~WebViewImpl):
(WebKit::WebViewImpl::windowDidOrderOffScreen):
(WebKit::WebViewImpl::windowDidOrderOnScreen):
(WebKit::WebViewImpl::windowDidChangeOcclusionState):
(WebKit::WebViewImpl::viewDidHide):
(WebKit::WebViewImpl::viewDidUnhide):
(WebKit::WebViewImpl::activeSpaceDidChange):
(WebKit::WebViewImpl::remoteObjectRegistry):

  • UIProcess/GeolocationPermissionRequestManagerProxy.cpp:

(WebKit::GeolocationPermissionRequestManagerProxy::didReceiveGeolocationPermissionDecision):

  • UIProcess/InspectorTargetProxy.cpp:

(WebKit::InspectorTargetProxy::connect):
(WebKit::InspectorTargetProxy::disconnect):
(WebKit::InspectorTargetProxy::sendMessageToTargetBackend):

  • UIProcess/Notifications/NotificationPermissionRequestManagerProxy.cpp:

(WebKit::NotificationPermissionRequestManagerProxy::createRequest):

  • UIProcess/Notifications/WebNotificationManagerProxy.cpp:

(WebKit::WebNotificationManagerProxy::show):
(WebKit::WebNotificationManagerProxy::cancel):
(WebKit::WebNotificationManagerProxy::didDestroyNotification):
(WebKit::pageIDsMatch):
(WebKit::pageAndNotificationIDsMatch):
(WebKit::WebNotificationManagerProxy::clearNotifications):
(WebKit::WebNotificationManagerProxy::providerDidShowNotification):
(WebKit::WebNotificationManagerProxy::providerDidClickNotification):

  • UIProcess/Notifications/WebNotificationManagerProxy.h:
  • UIProcess/ProvisionalPageProxy.cpp:

(WebKit::ProvisionalPageProxy::ProvisionalPageProxy):
(WebKit::ProvisionalPageProxy::~ProvisionalPageProxy):
(WebKit::ProvisionalPageProxy::processDidTerminate):
(WebKit::ProvisionalPageProxy::cancel):
(WebKit::ProvisionalPageProxy::initializeWebPage):
(WebKit::ProvisionalPageProxy::loadData):
(WebKit::ProvisionalPageProxy::loadRequest):
(WebKit::ProvisionalPageProxy::goToBackForwardItem):
(WebKit::ProvisionalPageProxy::didCreateMainFrame):
(WebKit::ProvisionalPageProxy::didStartProvisionalLoadForFrame):
(WebKit::ProvisionalPageProxy::didFailProvisionalLoadForFrame):
(WebKit::ProvisionalPageProxy::didCommitLoadForFrame):

  • UIProcess/ProvisionalPageProxy.h:
  • UIProcess/RemoteWebInspectorProxy.cpp:

(WebKit::RemoteWebInspectorProxy::load):
(WebKit::RemoteWebInspectorProxy::sendMessageToFrontend):
(WebKit::RemoteWebInspectorProxy::createFrontendPageAndWindow):
(WebKit::RemoteWebInspectorProxy::closeFrontendPageAndWindow):

  • UIProcess/SuspendedPageProxy.cpp:

(WebKit::SuspendedPageProxy::SuspendedPageProxy):
(WebKit::SuspendedPageProxy::~SuspendedPageProxy):
(WebKit::SuspendedPageProxy::unsuspend):
(WebKit::SuspendedPageProxy::close):
(WebKit::SuspendedPageProxy::didProcessRequestToSuspend):
(WebKit::SuspendedPageProxy::loggingString const):

  • UIProcess/SuspendedPageProxy.h:
  • UIProcess/UserMediaPermissionRequestManagerProxy.cpp:

(WebKit::UserMediaPermissionRequestManagerProxy::captureDevicesChanged):
(WebKit::UserMediaPermissionRequestManagerProxy::denyRequest):
(WebKit::UserMediaPermissionRequestManagerProxy::finishGrantingRequest):

  • UIProcess/ViewGestureController.cpp:

(WebKit::ViewGestureController::ViewGestureController):
(WebKit::ViewGestureController::~ViewGestureController):
(WebKit::ViewGestureController::disconnectFromProcess):
(WebKit::ViewGestureController::connectToProcess):
(WebKit::ViewGestureController::controllerForGesture):
(WebKit::ViewGestureController::forceRepaintIfNeeded):
(WebKit::ViewGestureController::requestRenderTreeSizeNotificationIfNeeded):

  • UIProcess/ViewGestureController.h:
  • UIProcess/VisitedLinkStore.cpp:

(WebKit::VisitedLinkStore::addVisitedLinkHashFromPage):

  • UIProcess/WebAuthentication/WebAuthenticatorCoordinatorProxy.cpp:

(WebKit::WebAuthenticatorCoordinatorProxy::WebAuthenticatorCoordinatorProxy):
(WebKit::WebAuthenticatorCoordinatorProxy::~WebAuthenticatorCoordinatorProxy):

  • UIProcess/WebBackForwardList.cpp:

(WebKit::WebBackForwardList::itemForID):
(WebKit::WebBackForwardList::restoreFromState):

  • UIProcess/WebEditCommandProxy.cpp:

(WebKit::WebEditCommandProxy::unapply):
(WebKit::WebEditCommandProxy::reapply):

  • UIProcess/WebFrameProxy.cpp:

(WebKit::WebFrameProxy::loadURL):
(WebKit::WebFrameProxy::loadData):
(WebKit::WebFrameProxy::stopLoading const):
(WebKit::WebFrameProxy::collapseSelection):

  • UIProcess/WebFullScreenManagerProxy.cpp:

(WebKit::WebFullScreenManagerProxy::WebFullScreenManagerProxy):
(WebKit::WebFullScreenManagerProxy::~WebFullScreenManagerProxy):
(WebKit::WebFullScreenManagerProxy::willEnterFullScreen):
(WebKit::WebFullScreenManagerProxy::didEnterFullScreen):
(WebKit::WebFullScreenManagerProxy::willExitFullScreen):
(WebKit::WebFullScreenManagerProxy::didExitFullScreen):
(WebKit::WebFullScreenManagerProxy::setAnimatingFullScreen):
(WebKit::WebFullScreenManagerProxy::requestExitFullScreen):
(WebKit::WebFullScreenManagerProxy::saveScrollPosition):
(WebKit::WebFullScreenManagerProxy::restoreScrollPosition):
(WebKit::WebFullScreenManagerProxy::setFullscreenInsets):
(WebKit::WebFullScreenManagerProxy::setFullscreenAutoHideDuration):
(WebKit::WebFullScreenManagerProxy::setFullscreenControlsHidden):

  • UIProcess/WebInspectorProxy.cpp:

(WebKit::WebInspectorProxy::WebInspectorProxy):
(WebKit::WebInspectorProxy::invalidate):
(WebKit::WebInspectorProxy::sendMessageToFrontend):
(WebKit::WebInspectorProxy::connect):
(WebKit::WebInspectorProxy::close):
(WebKit::WebInspectorProxy::reset):
(WebKit::WebInspectorProxy::updateForNewPageProcess):
(WebKit::WebInspectorProxy::setFrontendConnection):
(WebKit::WebInspectorProxy::showConsole):
(WebKit::WebInspectorProxy::showResources):
(WebKit::WebInspectorProxy::showMainResourceForFrame):
(WebKit::WebInspectorProxy::attach):
(WebKit::WebInspectorProxy::detach):
(WebKit::WebInspectorProxy::togglePageProfiling):
(WebKit::WebInspectorProxy::toggleElementSelection):
(WebKit::WebInspectorProxy::createFrontendPage):
(WebKit::WebInspectorProxy::openLocalInspectorFrontend):
(WebKit::WebInspectorProxy::open):
(WebKit::WebInspectorProxy::closeFrontendPageAndWindow):
(WebKit::WebInspectorProxy::attachAvailabilityChanged):

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::WebPageProxy):
(WebKit::m_resetRecentCrashCountTimer):
(WebKit::WebPageProxy::~WebPageProxy):
(WebKit::WebPageProxy::setUIClient):
(WebKit::WebPageProxy::setIconLoadingClient):
(WebKit::WebPageProxy::launchProcess):
(WebKit::WebPageProxy::suspendCurrentPageIfPossible):
(WebKit::WebPageProxy::swapToWebProcess):
(WebKit::WebPageProxy::launchProcessForReload):
(WebKit::WebPageProxy::launchProcessWithItem):
(WebKit::WebPageProxy::initializeWebPage):
(WebKit::WebPageProxy::close):
(WebKit::WebPageProxy::tryClose):
(WebKit::WebPageProxy::loadRequest):
(WebKit::WebPageProxy::loadRequestWithNavigationShared):
(WebKit::WebPageProxy::loadFile):
(WebKit::WebPageProxy::loadData):
(WebKit::WebPageProxy::loadDataWithNavigationShared):
(WebKit::WebPageProxy::loadAlternateHTML):
(WebKit::WebPageProxy::loadWebArchiveData):
(WebKit::WebPageProxy::navigateToPDFLinkWithSimulatedClick):
(WebKit::WebPageProxy::stopLoading):
(WebKit::WebPageProxy::reload):
(WebKit::WebPageProxy::goToBackForwardItem):
(WebKit::WebPageProxy::tryRestoreScrollPosition):
(WebKit::WebPageProxy::setControlledByAutomation):
(WebKit::WebPageProxy::setIndicating):
(WebKit::WebPageProxy::createInspectorTargets):
(WebKit::WebPageProxy::setBackgroundColor):
(WebKit::WebPageProxy::setTopContentInset):
(WebKit::WebPageProxy::setUnderlayColor):
(WebKit::WebPageProxy::viewWillStartLiveResize):
(WebKit::WebPageProxy::viewWillEndLiveResize):
(WebKit::WebPageProxy::activityStateDidChange):
(WebKit::WebPageProxy::viewDidEnterWindow):
(WebKit::WebPageProxy::dispatchActivityStateChange):
(WebKit::WebPageProxy::layerHostingModeDidChange):
(WebKit::WebPageProxy::setInitialFocus):
(WebKit::WebPageProxy::clearSelection):
(WebKit::WebPageProxy::restoreSelectionInFocusedEditableElement):
(WebKit::WebPageProxy::validateCommand):
(WebKit::WebPageProxy::increaseListLevel):
(WebKit::WebPageProxy::decreaseListLevel):
(WebKit::WebPageProxy::changeListType):
(WebKit::WebPageProxy::setBaseWritingDirection):
(WebKit::WebPageProxy::setNeedsFontAttributes):
(WebKit::WebPageProxy::scheduleFullEditorStateUpdate):
(WebKit::WebPageProxy::selectAll):
(WebKit::WebPageProxy::executeEditCommand):
(WebKit::WebPageProxy::requestFontAttributesAtSelectionStart):
(WebKit::WebPageProxy::setEditable):
(WebKit::WebPageProxy::performDragControllerAction):
(WebKit::WebPageProxy::dragEnded):
(WebKit::WebPageProxy::didStartDrag):
(WebKit::WebPageProxy::dragCancelled):
(WebKit::WebPageProxy::processNextQueuedMouseEvent):
(WebKit::WebPageProxy::sendWheelEvent):
(WebKit::WebPageProxy::handleKeyboardEvent):
(WebKit::WebPageProxy::handleGestureEvent):
(WebKit::WebPageProxy::handleTouchEventSynchronously):
(WebKit::WebPageProxy::resetPotentialTapSecurityOrigin):
(WebKit::WebPageProxy::handleTouchEventAsynchronously):
(WebKit::WebPageProxy::handleTouchEvent):
(WebKit::WebPageProxy::cancelPointer):
(WebKit::WebPageProxy::touchWithIdentifierWasRemoved):
(WebKit::WebPageProxy::scrollBy):
(WebKit::WebPageProxy::centerSelectionInVisibleArea):
(WebKit::WebPageProxy::commitProvisionalPage):
(WebKit::WebPageProxy::continueNavigationInNewProcess):
(WebKit::WebPageProxy::setUserAgent):
(WebKit::WebPageProxy::resumeActiveDOMObjectsAndAnimations):
(WebKit::WebPageProxy::suspendActiveDOMObjectsAndAnimations):
(WebKit::WebPageProxy::setCustomTextEncodingName):
(WebKit::WebPageProxy::restoreFromSessionState):
(WebKit::WebPageProxy::setTextZoomFactor):
(WebKit::WebPageProxy::setPageZoomFactor):
(WebKit::WebPageProxy::setPageAndTextZoomFactors):
(WebKit::WebPageProxy::scalePage):
(WebKit::WebPageProxy::scalePageInViewCoordinates):
(WebKit::WebPageProxy::scaleView):
(WebKit::WebPageProxy::windowScreenDidChange):
(WebKit::WebPageProxy::accessibilitySettingsDidChange):
(WebKit::WebPageProxy::setUseFixedLayout):
(WebKit::WebPageProxy::setFixedLayoutSize):
(WebKit::WebPageProxy::setAlwaysShowsHorizontalScroller):
(WebKit::WebPageProxy::setAlwaysShowsVerticalScroller):
(WebKit::WebPageProxy::listenForLayoutMilestones):
(WebKit::WebPageProxy::setSuppressScrollbarAnimations):
(WebKit::WebPageProxy::setEnableVerticalRubberBanding):
(WebKit::WebPageProxy::setEnableHorizontalRubberBanding):
(WebKit::WebPageProxy::setBackgroundExtendsBeyondPage):
(WebKit::WebPageProxy::setPaginationMode):
(WebKit::WebPageProxy::setPaginationBehavesLikeColumns):
(WebKit::WebPageProxy::setPageLength):
(WebKit::WebPageProxy::setGapBetweenPages):
(WebKit::WebPageProxy::setPaginationLineGridEnabled):
(WebKit::WebPageProxy::findStringMatches):
(WebKit::WebPageProxy::findString):
(WebKit::WebPageProxy::getImageForFindMatch):
(WebKit::WebPageProxy::selectFindMatch):
(WebKit::WebPageProxy::indicateFindMatch):
(WebKit::WebPageProxy::hideFindUI):
(WebKit::WebPageProxy::countStringMatches):
(WebKit::WebPageProxy::replaceMatches):
(WebKit::WebPageProxy::runJavaScriptInMainFrameScriptWorld):
(WebKit::WebPageProxy::runJavaScriptInFrame):
(WebKit::WebPageProxy::getRenderTreeExternalRepresentation):
(WebKit::WebPageProxy::getSourceForFrame):
(WebKit::WebPageProxy::getContentsAsString):
(WebKit::WebPageProxy::getContentsAsAttributedString):
(WebKit::WebPageProxy::getBytecodeProfile):
(WebKit::WebPageProxy::getSamplingProfilerOutput):
(WebKit::WebPageProxy::getContentsAsMHTMLData):
(WebKit::WebPageProxy::getSelectionOrContentsAsString):
(WebKit::WebPageProxy::getSelectionAsWebArchiveData):
(WebKit::WebPageProxy::getMainResourceDataOfFrame):
(WebKit::WebPageProxy::getResourceDataFromFrame):
(WebKit::WebPageProxy::getWebArchiveOfFrame):
(WebKit::WebPageProxy::forceRepaint):
(WebKit::WebPageProxy::preferencesDidChange):
(WebKit::WebPageProxy::didStartProvisionalLoadForFrameShared):
(WebKit::WebPageProxy::didReceiveServerRedirectForProvisionalLoadForFrameShared):
(WebKit::WebPageProxy::willPerformClientRedirectForFrame):
(WebKit::WebPageProxy::didCancelClientRedirectForFrame):
(WebKit::WebPageProxy::didFailProvisionalLoadForFrameShared):
(WebKit::WebPageProxy::didCommitLoadForFrame):
(WebKit::WebPageProxy::didFinishDocumentLoadForFrame):
(WebKit::WebPageProxy::didFinishLoadForFrame):
(WebKit::WebPageProxy::didFailLoadForFrame):
(WebKit::WebPageProxy::didSameDocumentNavigationForFrame):
(WebKit::WebPageProxy::decidePolicyForNavigationActionAsyncShared):
(WebKit::WebPageProxy::decidePolicyForNewWindowAction):
(WebKit::WebPageProxy::decidePolicyForResponseShared):
(WebKit::WebPageProxy::willSubmitForm):
(WebKit::WebPageProxy::didNavigateWithNavigationDataShared):
(WebKit::WebPageProxy::didPerformClientRedirectShared):
(WebKit::WebPageProxy::didPerformServerRedirectShared):
(WebKit::trySOAuthorization):
(WebKit::WebPageProxy::createNewPage):
(WebKit::WebPageProxy::showShareSheet):
(WebKit::WebPageProxy::setMediaVolume):
(WebKit::WebPageProxy::setMuted):
(WebKit::WebPageProxy::stopMediaCapture):
(WebKit::WebPageProxy::stopAllMediaPlayback):
(WebKit::WebPageProxy::suspendAllMediaPlayback):
(WebKit::WebPageProxy::resumeAllMediaPlayback):
(WebKit::WebPageProxy::handleMediaEvent):
(WebKit::WebPageProxy::setVolumeOfMediaElement):
(WebKit::WebPageProxy::setMayStartMediaWhenInWindow):
(WebKit::WebPageProxy::didChooseColor):
(WebKit::WebPageProxy::didEndColorPicker):
(WebKit::WebPageProxy::didCloseSuggestions):
(WebKit::WebPageProxy::didSelectOption):
(WebKit::WebPageProxy::setAllowsMediaDocumentInlinePlayback):
(WebKit::WebPageProxy::backForwardAddItem):
(WebKit::WebPageProxy::messageSenderDestinationID const):
(WebKit::WebPageProxy::valueChangedForPopupMenu):
(WebKit::WebPageProxy::setTextFromItemForPopupMenu):
(WebKit::WebPageProxy::postMessageToInjectedBundle):
(WebKit::WebPageProxy::failedToShowPopupMenu):
(WebKit::WebPageProxy::showContextMenu):
(WebKit::WebPageProxy::contextMenuItemSelected):
(WebKit::WebPageProxy::handleContextMenuKeyEvent):
(WebKit::WebPageProxy::didChooseFilesForOpenPanelWithDisplayStringAndIcon):
(WebKit::WebPageProxy::didChooseFilesForOpenPanel):
(WebKit::WebPageProxy::didCancelForOpenPanel):
(WebKit::WebPageProxy::advanceToNextMisspelling):
(WebKit::WebPageProxy::changeSpellingToWord):
(WebKit::WebPageProxy::removeEditCommand):
(WebKit::WebPageProxy::didFinishCheckingText):
(WebKit::WebPageProxy::didCancelCheckingText):
(WebKit::WebPageProxy::didReceiveEvent):
(WebKit::WebPageProxy::processDidBecomeUnresponsive):
(WebKit::WebPageProxy::processDidBecomeResponsive):
(WebKit::WebPageProxy::dispatchProcessDidTerminate):
(WebKit::WebPageProxy::gamepadActivity):
(WebKit::WebPageProxy::updateWebsitePolicies):
(WebKit::WebPageProxy::backForwardRemovedItem):
(WebKit::WebPageProxy::setCanRunModal):
(WebKit::WebPageProxy::beginPrinting):
(WebKit::WebPageProxy::endPrinting):
(WebKit::WebPageProxy::computePagesForPrinting):
(WebKit::WebPageProxy::drawRectToImage):
(WebKit::WebPageProxy::drawPagesToPDF):
(WebKit::WebPageProxy::drawPagesForPrinting):
(WebKit::WebPageProxy::setMinimumSizeForAutoLayout):
(WebKit::WebPageProxy::setAutoSizingShouldExpandToViewHeight):
(WebKit::WebPageProxy::setViewportSizeForCSSViewportUnits):
(WebKit::WebPageProxy::handleAlternativeTextUIResult):
(WebKit::WebPageProxy::setComposition):
(WebKit::WebPageProxy::confirmComposition):
(WebKit::WebPageProxy::cancelComposition):
(WebKit::WebPageProxy::setScrollPinningBehavior):
(WebKit::WebPageProxy::setOverlayScrollbarStyle):
(WebKit::WebPageProxy::addMIMETypeWithCustomContentProvider):
(WebKit::WebPageProxy::changeFontAttributes):
(WebKit::WebPageProxy::changeFont):
(WebKit::WebPageProxy::setTextAsync):
(WebKit::WebPageProxy::insertTextAsync):
(WebKit::WebPageProxy::hasMarkedText):
(WebKit::WebPageProxy::getMarkedRangeAsync):
(WebKit::WebPageProxy::getSelectedRangeAsync):
(WebKit::WebPageProxy::characterIndexForPointAsync):
(WebKit::WebPageProxy::firstRectForCharacterRangeAsync):
(WebKit::WebPageProxy::setCompositionAsync):
(WebKit::WebPageProxy::confirmCompositionAsync):
(WebKit::WebPageProxy::takeSnapshot):
(WebKit::WebPageProxy::requestActiveNowPlayingSessionInfo):
(WebKit::WebPageProxy::performImmediateActionHitTestAtLocation):
(WebKit::WebPageProxy::immediateActionDidUpdate):
(WebKit::WebPageProxy::immediateActionDidCancel):
(WebKit::WebPageProxy::immediateActionDidComplete):
(WebKit::WebPageProxy::handleAcceptedCandidate):
(WebKit::WebPageProxy::setUseSystemAppearance):
(WebKit::WebPageProxy::setHeaderBannerHeightForTesting):
(WebKit::WebPageProxy::setFooterBannerHeightForTesting):
(WebKit::WebPageProxy::setShouldDispatchFakeMouseMoveEvents):
(WebKit::WebPageProxy::setPlaybackTarget):
(WebKit::WebPageProxy::externalOutputDeviceAvailableDidChange):
(WebKit::WebPageProxy::setShouldPlayToPlaybackTarget):
(WebKit::WebPageProxy::clearWheelEventTestTrigger):
(WebKit::WebPageProxy::setShouldScaleViewToFitDocument):
(WebKit::WebPageProxy::getLoadDecisionForIcon):
(WebKit::WebPageProxy::setResourceCachingDisabled):
(WebKit::WebPageProxy::setUserInterfaceLayoutDirection):
(WebKit::WebPageProxy::didAllowPointerLock):
(WebKit::WebPageProxy::didDenyPointerLock):
(WebKit::WebPageProxy::requestPointerUnlock):
(WebKit::WebPageProxy::setURLSchemeHandlerForScheme):
(WebKit::WebPageProxy::didCommitCrossSiteLoadWithDataTransferFromPrevalentResource):
(WebKit::WebPageProxy::effectiveAppearanceDidChange):
(WebKit::WebPageProxy::insertAttachment):
(WebKit::WebPageProxy::updateAttachmentAttributes):
(WebKit::WebPageProxy::getApplicationManifest):
(WebKit::WebPageProxy::setDefersLoadingForTesting):
(WebKit::WebPageProxy::updateCurrentModifierState):
(WebKit::WebPageProxy::simulateDeviceOrientationChange):
(WebKit::WebPageProxy::detectDataInAllFrames):
(WebKit::WebPageProxy::removeDataDetectedLinks):
(WebKit::WebPageProxy::textInputContextsInRect):
(WebKit::WebPageProxy::focusTextInputContext):

  • UIProcess/WebPageProxy.h:

(WebKit::WebPageProxy::identifier const):
(WebKit::WebPageProxy::webPageID const):

  • UIProcess/WebPageProxyIdentifier.h: Added.
  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::pageBeginUsingWebsiteDataStore):
(WebKit::WebProcessPool::pageEndUsingWebsiteDataStore):

  • UIProcess/WebProcessPool.h:
  • UIProcess/WebProcessProxy.cpp:

(WebKit::WebProcessProxy::webPage):
(WebKit::WebProcessProxy::addExistingWebPage):
(WebKit::WebProcessProxy::removeWebPage):
(WebKit::WebProcessProxy::addVisitedLinkStoreUser):
(WebKit::WebProcessProxy::removeVisitedLinkStoreUser):
(WebKit::WebProcessProxy::hasProvisionalPageWithID const):
(WebKit::WebProcessProxy::isAllowedToUpdateBackForwardItem const):
(WebKit::WebProcessProxy::transformObjectsToHandles):

  • UIProcess/WebProcessProxy.h:
  • UIProcess/WebURLSchemeHandler.cpp:

(WebKit::WebURLSchemeHandler::startTask):
(WebKit::WebURLSchemeHandler::stopAllTasksForPage):
(WebKit::WebURLSchemeHandler::stopTask):
(WebKit::WebURLSchemeHandler::removeTaskFromPageMap):

  • UIProcess/WebURLSchemeHandler.h:
  • UIProcess/WebURLSchemeTask.cpp:

(WebKit::WebURLSchemeTask::WebURLSchemeTask):
(WebKit::WebURLSchemeTask::didPerformRedirection):
(WebKit::WebURLSchemeTask::didReceiveResponse):
(WebKit::WebURLSchemeTask::didReceiveData):
(WebKit::WebURLSchemeTask::didComplete):

  • UIProcess/WebURLSchemeTask.h:

(WebKit::WebURLSchemeTask::pageID const):

  • UIProcess/WebsiteData/WebsiteDataStore.cpp:

(WebKit::WebsiteDataStore::getAllStorageAccessEntries):

  • UIProcess/WebsiteData/WebsiteDataStore.h:
  • UIProcess/gtk/WebPageProxyGtk.cpp:

(WebKit::WebPageProxy::getCenterForZoomGesture):

  • UIProcess/ios/EditableImageController.mm:

(WebKit::EditableImageController::EditableImageController):
(WebKit::EditableImageController::~EditableImageController):

  • UIProcess/ios/SmartMagnificationController.mm:

(WebKit::SmartMagnificationController::SmartMagnificationController):
(WebKit::SmartMagnificationController::~SmartMagnificationController):
(WebKit::SmartMagnificationController::handleSmartMagnificationGesture):

  • UIProcess/ios/ViewGestureControllerIOS.mm:

(WebKit::ViewGestureController::beginSwipeGesture):
(WebKit::ViewGestureController::endSwipeGesture):

  • UIProcess/ios/WKContentView.mm:

(-[WKContentView _wk_printedDocument]):

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView ensurePositionInformationIsUpToDate:]):
(-[WKContentView requestAutocorrectionContextWithCompletionHandler:]):

  • UIProcess/ios/WebPageProxyIOS.mm:

(WebKit::WebPageProxy::requestFocusedElementInformation):
(WebKit::WebPageProxy::updateVisibleContentRects):
(WebKit::WebPageProxy::resendLastVisibleContentRects):
(WebKit::WebPageProxy::dynamicViewportSizeUpdate):
(WebKit::WebPageProxy::setViewportConfigurationViewLayoutSize):
(WebKit::WebPageProxy::setForceAlwaysUserScalable):
(WebKit::WebPageProxy::setMaximumUnobscuredSize):
(WebKit::WebPageProxy::setDeviceOrientation):
(WebKit::WebPageProxy::setOverrideViewportArguments):
(WebKit::WebPageProxy::selectWithGesture):
(WebKit::WebPageProxy::updateSelectionWithTouches):
(WebKit::WebPageProxy::replaceDictatedText):
(WebKit::WebPageProxy::replaceSelectedText):
(WebKit::WebPageProxy::requestAutocorrectionData):
(WebKit::WebPageProxy::applyAutocorrection):
(WebKit::WebPageProxy::selectTextWithGranularityAtPoint):
(WebKit::WebPageProxy::selectPositionAtBoundaryWithDirection):
(WebKit::WebPageProxy::moveSelectionAtBoundaryWithDirection):
(WebKit::WebPageProxy::selectPositionAtPoint):
(WebKit::WebPageProxy::beginSelectionInDirection):
(WebKit::WebPageProxy::updateSelectionWithExtentPoint):
(WebKit::WebPageProxy::updateSelectionWithExtentPointAndBoundary):
(WebKit::WebPageProxy::requestDictationContext):
(WebKit::WebPageProxy::requestAutocorrectionContext):
(WebKit::WebPageProxy::getSelectionContext):
(WebKit::WebPageProxy::handleTwoFingerTapAtPoint):
(WebKit::WebPageProxy::handleStylusSingleTapAtPoint):
(WebKit::WebPageProxy::selectWithTwoTouches):
(WebKit::WebPageProxy::requestPositionInformation):
(WebKit::WebPageProxy::startInteractionWithElementAtPosition):
(WebKit::WebPageProxy::stopInteraction):
(WebKit::WebPageProxy::performActionOnElement):
(WebKit::WebPageProxy::applicationDidEnterBackground):
(WebKit::WebPageProxy::applicationDidFinishSnapshottingAfterEnteringBackground):
(WebKit::WebPageProxy::applicationWillEnterForeground):
(WebKit::WebPageProxy::applicationWillResignActive):
(WebKit::WebPageProxy::applicationDidBecomeActive):
(WebKit::WebPageProxy::extendSelection):
(WebKit::WebPageProxy::selectWordBackward):
(WebKit::WebPageProxy::requestRectsForGranularityWithSelectionOffset):
(WebKit::WebPageProxy::requestRectsAtSelectionOffsetWithText):
(WebKit::WebPageProxy::storeSelectionForAccessibility):
(WebKit::WebPageProxy::startAutoscrollAtPosition):
(WebKit::WebPageProxy::cancelAutoscroll):
(WebKit::WebPageProxy::moveSelectionByOffset):
(WebKit::WebPageProxy::registerUIProcessAccessibilityTokens):
(WebKit::WebPageProxy::willStartUserTriggeredZooming):
(WebKit::WebPageProxy::potentialTapAtPosition):
(WebKit::WebPageProxy::commitPotentialTap):
(WebKit::WebPageProxy::cancelPotentialTap):
(WebKit::WebPageProxy::tapHighlightAtPosition):
(WebKit::WebPageProxy::handleTap):
(WebKit::WebPageProxy::didRecognizeLongPress):
(WebKit::WebPageProxy::handleDoubleTapForDoubleClickAtPoint):
(WebKit::WebPageProxy::inspectorNodeSearchMovedToPosition):
(WebKit::WebPageProxy::inspectorNodeSearchEndedAtPosition):
(WebKit::WebPageProxy::blurFocusedElement):
(WebKit::WebPageProxy::setIsShowingInputViewForFocusedElement):
(WebKit::WebPageProxy::autofillLoginCredentials):
(WebKit::WebPageProxy::focusNextFocusedElement):
(WebKit::WebPageProxy::setFocusedElementValue):
(WebKit::WebPageProxy::setFocusedElementValueAsNumber):
(WebKit::WebPageProxy::setFocusedElementSelectedIndex):
(WebKit::WebPageProxy::computePagesForPrintingAndDrawToPDF):
(WebKit::WebPageProxy::contentSizeCategoryDidChange):
(WebKit::WebPageProxy::generateSyntheticEditingCommand):
(WebKit::WebPageProxy::hardwareKeyboardAvailabilityChanged):
(WebKit::WebPageProxy::requestEvasionRectsAboveSelection):
(WebKit::WebPageProxy::updateSelectionWithDelta):
(WebKit::WebPageProxy::requestDocumentEditingContext):
(WebKit::WebPageProxy::requestDragStart):
(WebKit::WebPageProxy::requestAdditionalItemsForDragSession):
(WebKit::WebPageProxy::didConcludeDrop):
(WebKit::WebPageProxy::didRequestPasswordForQuickLookDocumentInMainFrameShared):

  • UIProcess/mac/RemoteWebInspectorProxyMac.mm:

(WebKit::RemoteWebInspectorProxy::platformSave):
(WebKit::RemoteWebInspectorProxy::platformAppend):

  • UIProcess/mac/TiledCoreAnimationDrawingAreaProxy.mm:

(WebKit::TiledCoreAnimationDrawingAreaProxy::waitForDidUpdateActivityState):

  • UIProcess/mac/ViewGestureControllerMac.mm:

(WebKit::ViewGestureController::handleMagnificationGestureEvent):
(WebKit::ViewGestureController::handleSmartMagnificationGesture):

  • UIProcess/mac/WKImmediateActionController.mm:

(-[WKImmediateActionController immediateActionRecognizerWillBeginAnimation:]):

  • UIProcess/mac/WebInspectorProxyMac.mm:

(WebKit::WebInspectorProxy::platformSave):
(WebKit::WebInspectorProxy::platformAppend):

  • UIProcess/mac/WebPageProxyMac.mm:

(WebKit::WebPageProxy::windowAndViewFramesChanged):
(WebKit::WebPageProxy::setMainFrameIsScrollable):
(WebKit::WebPageProxy::insertDictatedTextAsync):
(WebKit::WebPageProxy::attributedSubstringForCharacterRangeAsync):
(WebKit::WebPageProxy::fontAtSelection):
(WebKit::WebPageProxy::stringSelectionForPasteboard):
(WebKit::WebPageProxy::dataSelectionForPasteboard):
(WebKit::WebPageProxy::readSelectionFromPasteboard):
(WebKit::WebPageProxy::replaceSelectionWithPasteboardData):
(WebKit::WebPageProxy::sendComplexTextInputToPlugin):
(WebKit::WebPageProxy::uppercaseWord):
(WebKit::WebPageProxy::lowercaseWord):
(WebKit::WebPageProxy::capitalizeWord):
(WebKit::WebPageProxy::setSmartInsertDeleteEnabled):
(WebKit::WebPageProxy::registerUIProcessAccessibilityTokens):
(WebKit::WebPageProxy::shouldDelayWindowOrderingForEvent):
(WebKit::WebPageProxy::acceptsFirstMouse):

  • WebKit.xcodeproj/project.pbxproj:
8:27 AM Changeset in webkit [249274] by Chris Dumez
  • 3 edits in trunk/Source/WebKit

Use inline data member initialization in ProcessLauncher
https://bugs.webkit.org/show_bug.cgi?id=201247

Reviewed by Ryosuke Niwa.

  • UIProcess/Launcher/ProcessLauncher.cpp:

(WebKit::ProcessLauncher::ProcessLauncher):

  • UIProcess/Launcher/ProcessLauncher.h:
8:25 AM Changeset in webkit [249273] by Chris Dumez
  • 2 edits in trunk/Source/WTF

Crash when mach_port_deallocate() returns KERN_INVALID_NAME
https://bugs.webkit.org/show_bug.cgi?id=201248
<rdar://problem/54813890>

Reviewed by Alex Christensen.

  • wtf/cocoa/MachSendRight.cpp:

(WTF::deallocateSendRightSafely):

7:54 AM Changeset in webkit [249272] by commit-queue@webkit.org
  • 8 edits in trunk

Address some MathML FIXMEs
https://bugs.webkit.org/show_bug.cgi?id=201293

Patch by Rob Buis <rbuis@igalia.com> on 2019-08-29
Reviewed by Frédéric Wang.

Source/WebCore:

Add element tag checks for data, time and dialog.

  • mathml/MathMLOperatorDictionary.h:
  • mathml/MathMLPresentationElement.cpp:

(WebCore::MathMLPresentationElement::isPhrasingContent):
(WebCore::MathMLPresentationElement::isFlowContent):

LayoutTests:

Also test newly exposed data and time elements.

  • mathml/presentation/foreign-element-in-token-expected.txt:
  • mathml/presentation/foreign-element-in-token.html:
  • platform/ios-wk2/mathml/presentation/foreign-element-in-token-expected.txt:
  • platform/mac-wk2/mathml/presentation/foreign-element-in-token-expected.txt:
6:11 AM Changeset in webkit [249271] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.26/Source/WebCore

Merge r249252 - WebSockets: first-party for cookies not set in handshake request when using platform APIs
https://bugs.webkit.org/show_bug.cgi?id=200165

Reviewed by Youenn Fablet.

  • Modules/websockets/ThreadableWebSocketChannel.cpp:

(WebCore::ThreadableWebSocketChannel::webSocketConnectRequest):

6:11 AM Changeset in webkit [249270] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.26/Source/WebInspectorUI

Merge r249248 - Web Inspector: Import file pickers sometimes do not import
https://bugs.webkit.org/show_bug.cgi?id=201290
<rdar://problem/54826117>

Reviewed by Devin Rousso.

  • UserInterface/Base/FileUtilities.js:

(WI.FileUtilities.importText):
(WI.FileUtilities.importJSON):
Keep the input element alive so it doesn't get garbage collected,
which makes the file chooser do nothing.

(WI.FileUtilities.save):
(WI.FileUtilities.async.readText):
Place read operations after event handlers are setup in case the
read operations can happen synchronously and events may not fire.

6:11 AM Changeset in webkit [249269] by Carlos Garcia Campos
  • 5 edits
    1 add in releases/WebKitGTK/webkit-2.26

Merge r249247 - DFG/FTL: We should prefetch structures and do a loadLoadFence before doing PrototypeChainIsSane checks.
https://bugs.webkit.org/show_bug.cgi?id=201281
<rdar://problem/54028228>

Reviewed by Yusuke Suzuki and Saam Barati.

JSTests:

  • stress/structure-storedPrototype-should-only-assert-on-the-mutator-thread.js: Added.

Source/JavaScriptCore:

This (see title above) is already the preferred idiom used in most places in our
compiler, except for 2: DFG's SpeculativeJIT::compileGetByValOnString() and FTL's
compileStringCharAt(). Consider the following:

bool prototypeChainIsSane = false;
if (globalObject->stringPrototypeChainIsSane()) {

...
m_graph.registerAndWatchStructureTransition(globalObject->stringPrototype()->structure(vm()));
m_graph.registerAndWatchStructureTransition(globalObject->objectPrototype()->structure(vm()));

prototypeChainIsSane = globalObject->stringPrototypeChainIsSane();

}

What's essential for correctness here is that the stringPrototype and objectPrototype
structures be loaded before the loads in the second stringPrototypeChainIsSane()
check. Without a loadLoadFence before the second stringPrototypeChainIsSane()
check, we can't guarantee that. Elsewhere in the compiler, the preferred idiom
for doing this right is to pre-load the structures first, do a loadLoadFence, and
then do the IsSane check just once after e.g.

Structure* arrayPrototypeStructure = globalObject->arrayPrototype()->structure(m_vm);
Structure* objectPrototypeStructure = globalObject->objectPrototype()->structure(m_vm);

if (arrayPrototypeStructure->transitionWatchpointSetIsStillValid() has loadLoadFences.

&& objectPrototypeStructure->transitionWatchpointSetIsStillValid() has loadLoadFences.
&& globalObject->arrayPrototypeChainIsSane()) {

m_graph.registerAndWatchStructureTransition(arrayPrototypeStructure);
m_graph.registerAndWatchStructureTransition(objectPrototypeStructure);
...

}

This patch changes DFG's SpeculativeJIT::compileGetByValOnString() and FTL's
compileStringCharAt() to follow the same idiom.

We also fix a bad assertion in Structure::storedPrototype() and
Structure::storedPrototypeObject(). The assertion is only correct when those
methods are called from the mutator thread. The assertion has been updated to
only check its test condition if the current thread is the mutator thread.

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileGetByValOnString):

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileStringCharAt):

  • runtime/StructureInlines.h:

(JSC::Structure::storedPrototype const):
(JSC::Structure::storedPrototypeObject const):

6:11 AM Changeset in webkit [249268] by Carlos Garcia Campos
  • 3 edits in releases/WebKitGTK/webkit-2.26/Source/WebInspectorUI

Merge r249246 - Web Inspector: REGRESSION(r249078): JavaScript autocomplete doesn't work when evaluating properties of values
https://bugs.webkit.org/show_bug.cgi?id=201226

Reviewed by Joseph Pecoraro.

r249078 modified WI.JavaScriptRuntimeCompletionProvider to use arrays of property names
instead of objects for completion, but a few code paths were missed.

  • UserInterface/Controllers/JavaScriptRuntimeCompletionProvider.js:

(WI.JavaScriptRuntimeCompletionProvider.prototype.completionControllerCompletionsNeeded.evaluated):
(WI.JavaScriptRuntimeCompletionProvider.prototype.completionControllerCompletionsNeeded.receivedPropertyNamesFromEvaluate):
(WI.JavaScriptRuntimeCompletionProvider.prototype.completionControllerCompletionsNeeded.receivedObjectPropertyNames): Added.
(WI.JavaScriptRuntimeCompletionProvider.prototype.completionControllerCompletionsNeeded.receivedArrayPropertyNames):

  • UserInterface/Models/CallFrame.js:

(WI.CallFrame.prototype.collectScopeChainVariableNames):
(WI.CallFrame.prototype.collectScopeChainVariableNames.propertiesCollected):

6:11 AM Changeset in webkit [249267] by Carlos Garcia Campos
  • 3 edits in releases/WebKitGTK/webkit-2.26/Source/WebCore

Merge r249236 - Make FillLayer::hasImage() inline
https://bugs.webkit.org/show_bug.cgi?id=201265

Reviewed by Zalan Bujtas.

FillLayer::hasImage() shows up on profiles because it's called from hot functions like
isTransparent() and hasMask(), so make a basic inline version that doens't have
to walk the list.

  • rendering/style/FillLayer.cpp:

(WebCore::FillLayer::hasImageInAnyLayer const):
(WebCore::FillLayer::hasImage const): Deleted.

  • rendering/style/FillLayer.h:

(WebCore::FillLayer::hasImage const):

6:11 AM Changeset in webkit [249266] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.26/Source/WebCore

Merge r249232 - PaintFrequencyTracker triggers too many calls to MonotonicTime::now() on layer painting
https://bugs.webkit.org/show_bug.cgi?id=201261

Reviewed by Zalan Bujtas.

MonotonicTime::now() shows up as expensive when painting layer-heavy content, because PaintFrequencyTracker
makes two calls per layer paint.

Halve the number of calls by storing m_lastPaintTime at the start of the paint; doing so doesn't substantially
change the behavior of the tracker.

  • rendering/PaintFrequencyTracker.h:

(WebCore::PaintFrequencyTracker::begin):
(WebCore::PaintFrequencyTracker::end):

6:11 AM Changeset in webkit [249265] by Carlos Garcia Campos
  • 3 edits
    1 add in releases/WebKitGTK/webkit-2.26

Merge r249225 - Placate exception check validation in DFG's operationHasGenericProperty().
https://bugs.webkit.org/show_bug.cgi?id=201245
<rdar://problem/54777512>

Reviewed by Robin Morisset.

JSTests:

  • stress/missing-exception-check-in-operationHasGenericProperty.js: Added.

Source/JavaScriptCore:

  • dfg/DFGOperations.cpp:
6:11 AM Changeset in webkit [249264] by Carlos Garcia Campos
  • 5 edits in releases/WebKitGTK/webkit-2.26/Source

Merge r249223 - Unreviewed. Restabilize non-unified build.

Source/JavaScriptCore:

  • runtime/PropertySlot.h:

Source/WebCore:

  • inspector/agents/WebConsoleAgent.h:
  • loader/ResourceLoadObserver.h:
6:10 AM Changeset in webkit [249263] by Carlos Garcia Campos
  • 5 edits in releases/WebKitGTK/webkit-2.26/Source/WebCore

Merge r249222 - Devirtualize RenderBox::visualOverflowRect()
https://bugs.webkit.org/show_bug.cgi?id=201231

Reviewed by Zalan Bujtas.

The only override of RenderBox::visualOverflowRect() was in RenderView, for "paintsEntireContents" views, and as
far as I can tell this is not necessary. visualOverflowRect() is hot when called from RenderLayer::localBoundingBox() --
this shows in profiles when scrolling large patch reviews, so making it non-virtual is a performance enhancement.

RenderLayer::localBoundingBox() can also just call visualOverflowRect(), since that returns borderBoxRect()
when there is no overflow.

  • rendering/RenderBox.h:

(WebCore::RenderBox::visualOverflowRect const):

  • rendering/RenderLayer.cpp:

(WebCore::performOverlapTests): Minor optimization to avoid a call to boundingBox().
(WebCore::RenderLayer::calculateClipRects const):

  • rendering/RenderView.cpp:

(WebCore::RenderView::visualOverflowRect const): Deleted.

  • rendering/RenderView.h:
6:10 AM Changeset in webkit [249262] by Carlos Garcia Campos
  • 4 edits in releases/WebKitGTK/webkit-2.26/Source/JavaScriptCore

Merge r249221 - Wasm's AirIRGenerator::addLocal() and B3IRGenerator::addLocal() are doing unnecessary overflow checks.
https://bugs.webkit.org/show_bug.cgi?id=201006
<rdar://problem/52053991>

Reviewed by Yusuke Suzuki.

We already ensured that it is not possible to overflow in Wasm::FunctionParser's
parse(). It is unnecessary and misleading to do those overflow checks in
AirIRGenerator and B3IRGenerator. The only check that is necessary is that
m_locals.tryReserveCapacity() is successful, otherwise, we have an out of memory
situation.

This patch changes these unnecessary checks to assertions instead.

  • wasm/WasmAirIRGenerator.cpp:

(JSC::Wasm::AirIRGenerator::addLocal):

  • wasm/WasmB3IRGenerator.cpp:

(JSC::Wasm::B3IRGenerator::addLocal):

  • wasm/WasmValidate.cpp:

(JSC::Wasm::Validate::addLocal):

6:10 AM Changeset in webkit [249261] by Carlos Garcia Campos
  • 63 edits
    1 add in releases/WebKitGTK/webkit-2.26/Source

Merge r249217 - All image drawing functions should take an argument of type ImagePaintingOptions
https://bugs.webkit.org/show_bug.cgi?id=201059

Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2019-08-28
Reviewed by Simon Fraser.

Source/WebCore:

In this patch:
-- All the image drawing function will take an argument of type

ImagePaintingOptions instead of passing individual options.

-- ImagePaintingOptions is made like a set of options. It can be

initialized with any number of options and the order does not matter

-- Image::originalSize() is deleted because it returns size() and none

of the Image concrete classes overrides this implementation.

  • Headers.cmake:
  • WebCore.xcodeproj/project.pbxproj:
  • html/ImageBitmap.cpp:

(WebCore::ImageBitmap::createPromise):
(WebCore::ImageBitmap::createFromBuffer):

  • html/canvas/CanvasRenderingContext2DBase.cpp:

(WebCore::CanvasRenderingContext2DBase::drawImage):
(WebCore::drawImageToContext):
(WebCore::CanvasRenderingContext2DBase::fullCanvasCompositedDrawImage):

  • platform/graphics/BitmapImage.cpp:

(WebCore::BitmapImage::draw):
(WebCore::BitmapImage::drawPattern):

  • platform/graphics/BitmapImage.h:
  • platform/graphics/CrossfadeGeneratedImage.cpp:

(WebCore::drawCrossfadeSubimage):
(WebCore::CrossfadeGeneratedImage::draw):
(WebCore::CrossfadeGeneratedImage::drawPattern):

  • platform/graphics/CrossfadeGeneratedImage.h:
  • platform/graphics/CustomPaintImage.cpp:

(WebCore::CustomPaintImage::draw):
(WebCore::CustomPaintImage::drawPattern):

  • platform/graphics/CustomPaintImage.h:
  • platform/graphics/GeneratedImage.h:

(WebCore::GeneratedImage::draw):
(WebCore::GeneratedImage::drawPattern):

  • platform/graphics/GradientImage.cpp:

(WebCore::GradientImage::draw):
(WebCore::GradientImage::drawPattern):

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

(WebCore::GraphicsContext::drawImage):
(WebCore::GraphicsContext::drawTiledImage):
(WebCore::GraphicsContext::drawImageBuffer):
(WebCore::GraphicsContext::drawConsumingImageBuffer):

  • platform/graphics/GraphicsContext.h:

(WebCore::GraphicsContext::drawNativeImage):
(WebCore::GraphicsContext::drawImage):
(WebCore::GraphicsContext::drawTiledImage):
(WebCore::GraphicsContext::drawImageBuffer):
(WebCore::GraphicsContext::drawPattern):
(WebCore::GraphicsContext::drawConsumingImageBuffer):
(WebCore::ImagePaintingOptions::ImagePaintingOptions): Deleted.
(WebCore::ImagePaintingOptions::usesDefaultInterpolation const): Deleted.

  • platform/graphics/GraphicsContextImpl.cpp:

(WebCore::GraphicsContextImpl::drawImageImpl):
(WebCore::GraphicsContextImpl::drawTiledImageImpl):

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

(WebCore::Image::drawPattern):
(WebCore::Image::drawTiled):
(WebCore::Image::computeIntrinsicDimensions):

  • platform/graphics/Image.h:

(WebCore::Image::drawPattern):
(WebCore::Image::draw):
(WebCore::Image::drawTiled):
(WebCore::Image::originalSize const): Deleted.

  • platform/graphics/ImageBuffer.h:

(WebCore::ImageBuffer::draw):
(WebCore::ImageBuffer::drawPattern):
(WebCore::ImageBuffer::drawConsuming):

  • platform/graphics/ImagePaintingOptions.h: Added.

(WebCore::ImagePaintingOptions::ImagePaintingOptions):
(WebCore::ImagePaintingOptions::compositeOperator const):
(WebCore::ImagePaintingOptions::blendMode const):
(WebCore::ImagePaintingOptions::decodingMode const):
(WebCore::ImagePaintingOptions::orientation const):
(WebCore::ImagePaintingOptions::interpolationQuality const):
(WebCore::ImagePaintingOptions::setOption):

  • platform/graphics/NamedImageGeneratedImage.cpp:

(WebCore::NamedImageGeneratedImage::draw):
(WebCore::NamedImageGeneratedImage::drawPattern):

  • platform/graphics/NamedImageGeneratedImage.h:
  • platform/graphics/NativeImage.h:
  • platform/graphics/cairo/CairoOperations.cpp:

(WebCore::Cairo::drawShadowLayerBuffer):
(WebCore::Cairo::drawShadowImage):
(WebCore::Cairo::drawNativeImage):
(WebCore::Cairo::drawPattern):

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

(WebCore::GraphicsContext::drawNativeImage):
(WebCore::GraphicsContext::drawPattern):

  • platform/graphics/cairo/GraphicsContextImplCairo.cpp:

(WebCore::GraphicsContextImplCairo::drawNativeImage):
(WebCore::GraphicsContextImplCairo::drawPattern):

  • platform/graphics/cairo/GraphicsContextImplCairo.h:
  • platform/graphics/cairo/ImageBufferCairo.cpp:

(WebCore::ImageBuffer::drawConsuming):
(WebCore::ImageBuffer::draw):
(WebCore::ImageBuffer::drawPattern):

  • platform/graphics/cairo/NativeImageCairo.cpp:

(WebCore::drawNativeImage):

  • platform/graphics/cg/GraphicsContext3DCG.cpp:

(WebCore::GraphicsContext3D::paintToCanvas):

  • platform/graphics/cg/GraphicsContextCG.cpp:

(WebCore::GraphicsContext::drawNativeImage):
(WebCore::GraphicsContext::drawPattern):

  • platform/graphics/cg/ImageBufferCG.cpp:

(WebCore::ImageBuffer::drawConsuming):
(WebCore::ImageBuffer::draw):
(WebCore::ImageBuffer::drawPattern):

  • platform/graphics/cg/NativeImageCG.cpp:

(WebCore::drawNativeImage):

  • platform/graphics/cg/PDFDocumentImage.cpp:

(WebCore::PDFDocumentImage::draw):

  • platform/graphics/cg/PDFDocumentImage.h:
  • platform/graphics/displaylists/DisplayListItems.cpp:

(WebCore::DisplayList::DrawNativeImage::DrawNativeImage):
(WebCore::DisplayList::DrawNativeImage::apply const):
(WebCore::DisplayList::DrawPattern::DrawPattern):
(WebCore::DisplayList::DrawPattern::apply const):

  • platform/graphics/displaylists/DisplayListItems.h:

(WebCore::DisplayList::DrawNativeImage::create):
(WebCore::DisplayList::DrawPattern::create):
(WebCore::DisplayList::DrawPattern::DrawPattern):

  • platform/graphics/displaylists/DisplayListRecorder.cpp:

(WebCore::DisplayList::Recorder::drawNativeImage):
(WebCore::DisplayList::Recorder::drawPattern):

  • platform/graphics/displaylists/DisplayListRecorder.h:
  • platform/graphics/filters/FEBlend.cpp:

(WebCore::FEBlend::platformApplySoftware):

  • platform/graphics/filters/FEComposite.cpp:

(WebCore::FEComposite::platformApplySoftware):

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:

(WebCore::MediaPlayerPrivateGStreamerBase::paint):

  • platform/graphics/nicosia/cairo/NicosiaCairoOperationRecorder.cpp:

(Nicosia::CairoOperationRecorder::drawNativeImage):
(Nicosia::CairoOperationRecorder::drawPattern):

  • platform/graphics/nicosia/cairo/NicosiaCairoOperationRecorder.h:
  • platform/graphics/win/Direct2DOperations.cpp:

(WebCore::Direct2D::drawNativeImage):
(WebCore::Direct2D::drawPattern):

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

(WebCore::BitmapImage::getHBITMAPOfSize):
(WebCore::BitmapImage::drawFrameMatchingSourceSize):

  • platform/graphics/win/ImageCairoWin.cpp:

(WebCore::BitmapImage::getHBITMAPOfSize):
(WebCore::BitmapImage::drawFrameMatchingSourceSize):

  • platform/graphics/win/NativeImageDirect2D.cpp:

(WebCore::drawNativeImage):

  • platform/ios/DragImageIOS.mm:

(WebCore::createDragImageFromImage):

  • rendering/RenderBoxModelObject.cpp:

(WebCore::RenderBoxModelObject::paintFillLayerExtended):

  • rendering/RenderEmbeddedObject.cpp:

(WebCore::RenderEmbeddedObject::paintSnapshotImage):

  • rendering/RenderImage.cpp:

(WebCore::RenderImage::paintReplaced):
(WebCore::RenderImage::paintIntoRect):

  • rendering/RenderSnapshottedPlugIn.cpp:

(WebCore::RenderSnapshottedPlugIn::paintSnapshot):

  • rendering/RenderThemeMac.mm:

(WebCore::RenderThemeMac::paintSnapshottedPluginOverlay):

  • svg/graphics/SVGImage.cpp:

(WebCore::SVGImage::drawForContainer):
(WebCore::SVGImage::nativeImageForCurrentFrame):
(WebCore::SVGImage::nativeImage):
(WebCore::SVGImage::drawPatternForContainer):
(WebCore::SVGImage::draw):

  • svg/graphics/SVGImage.h:
  • svg/graphics/SVGImageForContainer.cpp:

(WebCore::SVGImageForContainer::draw):
(WebCore::SVGImageForContainer::drawPattern):

  • svg/graphics/SVGImageForContainer.h:

Source/WebKit:

GraphicsContext::drawImage() now takes an ImagePaintingOptions.

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::imagePositionInformation):

6:10 AM Changeset in webkit [249260] by Carlos Garcia Campos
  • 3 edits
    2 adds in releases/WebKitGTK/webkit-2.26

Merge r249216 - XLinkNames namespace is required before the 'href' attribute of SVG animate elements
https://bugs.webkit.org/show_bug.cgi?id=201227

Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2019-08-28
Reviewed by Ryosuke Niwa.

Source/WebCore:

To get the animation target element, get the value of the "href" attribute
or the "xlink:href" attribute.

Tests: svg/custom/href-svg-namespace-animate-target.svg

  • svg/animation/SVGSMILElement.cpp:

(WebCore::SVGSMILElement::buildPendingResource):

LayoutTests:

  • svg/custom/href-svg-namespace-animate-target-expected.svg: Added.
  • svg/custom/href-svg-namespace-animate-target.svg: Added.
6:10 AM Changeset in webkit [249259] by Carlos Garcia Campos
  • 12 edits in releases/WebKitGTK/webkit-2.26

Merge r249207 - geolocation.watchPosition() / getCurrentPosition() should return PERMISSION_DENIED when context is not secure
https://bugs.webkit.org/show_bug.cgi?id=201221

Reviewed by Ryosuke Niwa.

Source/WebCore:

geolocation.watchPosition() / getCurrentPosition() should return PERMISSION_DENIED when context is not secure,
not POSITION_UNAVAILABLE. Both Gecko and Blink agree on PERMISSION_DENIED.

No new tests, updated existing tests.

  • Modules/geolocation/Geolocation.cpp:

(WebCore::Geolocation::startRequest):

LayoutTests:

Update layout tests to reflect behavior change.

  • fast/dom/Geolocation/dataURL-getCurrentPosition-expected.txt:
  • fast/dom/Geolocation/dataURL-getCurrentPosition.html:
  • fast/dom/Geolocation/dataURL-watchPosition-expected.txt:
  • fast/dom/Geolocation/dataURL-watchPosition.html:
  • http/tests/security/resources/checkThatPositionErrorCallbackIsCalledWithPositionUnavailableForGeolocationMethod.js:

(didReceiveError):
(checkThatPositionErrorCallbackIsCalledWithPositionUnavailableForGeolocationMethod):

  • http/tests/security/sandboxed-iframe-geolocation-getCurrentPosition-expected.txt:
  • http/tests/security/sandboxed-iframe-geolocation-getCurrentPosition.html:
  • http/tests/security/sandboxed-iframe-geolocation-watchPosition-expected.txt:
  • http/tests/security/sandboxed-iframe-geolocation-watchPosition.html:
6:10 AM Changeset in webkit [249258] by Carlos Garcia Campos
  • 6 edits in releases/WebKitGTK/webkit-2.26/Source/WebKit

Merge r249206 - Have WebPageProxy generate the page identifier by itself
https://bugs.webkit.org/show_bug.cgi?id=201223

Reviewed by Ryosuke Niwa.

Have WebPageProxy generate the page identifier by itself instead of
having the WebProcessProxy do it.

  • UIProcess/ServiceWorkerProcessProxy.cpp:

(WebKit::m_serviceWorkerPageID):

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::create):
(WebKit::WebPageProxy::WebPageProxy):

  • UIProcess/WebPageProxy.h:
  • UIProcess/WebProcessProxy.cpp:

(WebKit::WebProcessProxy::createWebPage):
(WebKit::WebProcessProxy::generatePageID): Deleted.

  • UIProcess/WebProcessProxy.h:
6:10 AM Changeset in webkit [249257] by Carlos Garcia Campos
  • 29 edits
    7 adds
    3 deletes in releases/WebKitGTK/webkit-2.26

Merge r249205 - [MSE][GStreamer] WebKitMediaSrc rework
https://bugs.webkit.org/show_bug.cgi?id=199719

Reviewed by Xabier Rodriguez-Calvar.

LayoutTests/imported/w3c:

  • web-platform-tests/html/semantics/embedded-content/the-video-element/timeout_on_seek.py: Added.

(parse_range):
(main):

  • web-platform-tests/html/semantics/embedded-content/the-video-element/video_timeupdate_on_seek.html: Added.
  • web-platform-tests/html/semantics/embedded-content/the-video-element/video_timeupdate_on_seek-expected.txt: Added.
  • web-platform-tests/media-source/mediasource-buffered-seek-expected.txt: Added.
  • web-platform-tests/media-source/mediasource-buffered-seek.html: Added.

Source/WebCore:

This patch reworks the WebKitMediaSrc element and many of the player
private methods that interacted with it.

In comparison with the old WebKitMediaSrc, in the new one seeks have
been massively simplified.

The new WebKitMediaSrc no longer relies on a bin or appsrc, having
greater control over its operation. This made it comparatively much
easier to implement features such as seek before playback or
single-stream flushing.

stream-collection events are emitted from the WebKitMediaSrc to reuse
the track handling in MediaPlayerPrivateGStreamer for playbin3, which
is now used for MSE pipelines.

Additional tests have been added to check some assumptions, and some
bugs that have surfaced with the changes have been fixed but no new
features (like multi-track support) are implemented in this patch.

One instance of these bugs is resized events, which were previously
being emitted when frames with different resolutions where appended.
This is a wrong behavior that has not been preserved in the rework, as
resize events should be emitted when the frames are shown, not
just appended.

There are subtler bugfixes, such as ignoring PTS-less frames in
AppendPipeline::appsinkNewSample(). These frames are problematic for
MSE, yet they were somehow passing through the pipelines. Since
WebKitMediaSrc is stricter with assertions, these have to be filtered.

This test gets rid of !m_mseSeekCompleted assertion failures in tests
and potentially other hard to debug bugs in the previous seek
algorithm.

This patch makes the following existing tests pass:

imported/w3c/web-platform-tests/media-source/mediasource-config-change-webm-a-bitrate.html
imported/w3c/web-platform-tests/media-source/mediasource-config-change-webm-v-framesize.html

New test: imported/w3c/web-platform-tests/media-source/mediasource-buffered-seek.html
New test: LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-video-element/video_timeupdate_on_seek.html (non-MSE related)

  • Headers.cmake:
  • platform/GStreamer.cmake:
  • platform/graphics/gstreamer/GRefPtrGStreamer.cpp:

(WTF::adoptGRef):
(WTF::refGPtr<GstMiniObject>):
(WTF::derefGPtr<GstMiniObject>):

  • platform/graphics/gstreamer/GRefPtrGStreamer.h:
  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:

(WebCore::MediaPlayerPrivateGStreamer::playbackPosition const):
(WebCore::MediaPlayerPrivateGStreamer::paused const):
(WebCore::MediaPlayerPrivateGStreamer::updateTracks):
(WebCore::MediaPlayerPrivateGStreamer::enableTrack):
(WebCore::MediaPlayerPrivateGStreamer::notifyPlayerOfVideo):
(WebCore::MediaPlayerPrivateGStreamer::sourceSetup):
(WebCore::MediaPlayerPrivateGStreamer::handleSyncMessage):
(WebCore::MediaPlayerPrivateGStreamer::createGSTPlayBin):

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:

(WebCore::MediaPlayerPrivateGStreamer::invalidateCachedPosition):

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:

(WebCore::MediaPlayerPrivateGStreamerBase::naturalSize const):
(WebCore::MediaPlayerPrivateGStreamerBase::naturalSizeFromCaps const):
(WebCore::MediaPlayerPrivateGStreamerBase::samplesHaveDifferentNaturalSize const):
(WebCore::MediaPlayerPrivateGStreamerBase::triggerRepaint):

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.h:
  • platform/graphics/gstreamer/MediaSampleGStreamer.cpp:

(WebCore::MediaSampleGStreamer::MediaSampleGStreamer):

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

(WebCore::AppendPipeline::appsinkNewSample):
(WebCore::AppendPipeline::connectDemuxerSrcPadToAppsink):

  • platform/graphics/gstreamer/mse/AppendPipeline.h:

(WebCore::AppendPipeline::appsinkCaps):
(WebCore::AppendPipeline::streamType):
(WebCore::AppendPipeline::demuxerSrcPadCaps):

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

(WebCore::MediaPlayerPrivateGStreamerMSE::~MediaPlayerPrivateGStreamerMSE):
(WebCore::MediaPlayerPrivateGStreamerMSE::load):
(WebCore::MediaPlayerPrivateGStreamerMSE::play):
(WebCore::MediaPlayerPrivateGStreamerMSE::pause):
(WebCore::MediaPlayerPrivateGStreamerMSE::seek):
(WebCore::MediaPlayerPrivateGStreamerMSE::seekCompleted):
(WebCore::MediaPlayerPrivateGStreamerMSE::setReadyState):
(WebCore::MediaPlayerPrivateGStreamerMSE::sourceSetup):
(WebCore::MediaPlayerPrivateGStreamerMSE::updateStates):
(WebCore::MediaPlayerPrivateGStreamerMSE::didEnd):
(WebCore::MediaPlayerPrivateGStreamerMSE::unblockDurationChanges):
(WebCore::MediaPlayerPrivateGStreamerMSE::durationChanged):
(WebCore::MediaPlayerPrivateGStreamerMSE::trackDetected):

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

(WebCore::MediaSourceClientGStreamerMSE::addSourceBuffer):
(WebCore::MediaSourceClientGStreamerMSE::removedFromMediaSource):
(WebCore::MediaSourceClientGStreamerMSE::flush):
(WebCore::MediaSourceClientGStreamerMSE::enqueueSample):
(WebCore::MediaSourceClientGStreamerMSE::isReadyForMoreSamples):
(WebCore::MediaSourceClientGStreamerMSE::notifyClientWhenReadyForMoreSamples):
(WebCore::MediaSourceClientGStreamerMSE::allSamplesInTrackEnqueued):

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

(WebCore::MediaSourceGStreamer::markEndOfStream):
(WebCore::MediaSourceGStreamer::unmarkEndOfStream):
(WebCore::MediaSourceGStreamer::waitForSeekCompleted):

  • platform/graphics/gstreamer/mse/MediaSourceGStreamer.h:
  • platform/graphics/gstreamer/mse/PlaybackPipeline.cpp: Removed.
  • platform/graphics/gstreamer/mse/PlaybackPipeline.h: Removed.
  • platform/graphics/gstreamer/mse/SourceBufferPrivateGStreamer.cpp:

(WebCore::SourceBufferPrivateGStreamer::enqueueSample):
(WebCore::SourceBufferPrivateGStreamer::isReadyForMoreSamples):
(WebCore::SourceBufferPrivateGStreamer::notifyClientWhenReadyForMoreSamples):

  • platform/graphics/gstreamer/mse/SourceBufferPrivateGStreamer.h:
  • platform/graphics/gstreamer/mse/WebKitMediaSourceGStreamer.cpp:

(WebKitMediaSrcPrivate::streamByName):
(Stream::Stream):
(Stream::StreamingMembers::StreamingMembers):
(Stream::StreamingMembers::durationEnqueued const):
(findPipeline):
(webkit_media_src_class_init):
(webkit_media_src_init):
(webKitMediaSrcFinalize):
(debugProbe):
(collectionPlusStream):
(collectionMinusStream):
(gstStreamType):
(webKitMediaSrcAddStream):
(webKitMediaSrcRemoveStream):
(webKitMediaSrcActivateMode):
(webKitMediaSrcPadLinked):
(webKitMediaSrcStreamNotifyLowWaterLevel):
(webKitMediaSrcLoop):
(webKitMediaSrcEnqueueObject):
(webKitMediaSrcEnqueueSample):
(webKitMediaSrcEnqueueEvent):
(webKitMediaSrcEndOfStream):
(webKitMediaSrcIsReadyForMoreSamples):
(webKitMediaSrcNotifyWhenReadyForMoreSamples):
(webKitMediaSrcChangeState):
(webKitMediaSrcStreamFlushStart):
(webKitMediaSrcStreamFlushStop):
(webKitMediaSrcFlush):
(webKitMediaSrcSeek):
(countStreamsOfType):
(webKitMediaSrcGetProperty):
(webKitMediaSrcUriGetType):
(webKitMediaSrcGetProtocols):
(webKitMediaSrcGetUri):
(webKitMediaSrcSetUri):
(webKitMediaSrcUriHandlerInit):

  • platform/graphics/gstreamer/mse/WebKitMediaSourceGStreamer.h:
  • platform/graphics/gstreamer/mse/WebKitMediaSourceGStreamerPrivate.h: Removed.

Tools:

Added WebKitMediaSourceGStreamer.cpp to the GStreamer-style coding
whitelist.

  • Scripts/webkitpy/style/checker.py:

LayoutTests:

Updated expectations.

  • platform/gtk/TestExpectations:
  • platform/mac/TestExpectations:
  • platform/ios-simulator/TestExpectations:
  • platform/mac/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-video-element/video_timeupdate_on_seek-expected.txt: Added.
6:09 AM Changeset in webkit [249256] by Carlos Garcia Campos
  • 3 edits in releases/WebKitGTK/webkit-2.26/Source/WebCore

Merge r249203 - Have RenderSVGBlock compute visual overflow just like everyone else
https://bugs.webkit.org/show_bug.cgi?id=201211

Reviewed by Zalan Bujtas.

RenderSVGBlock overrode visualOverflowRect() just to account for text shadow. This prevents callers
optimizing calls to visualOverflowRect(), so instead have RenderSVGBlock implement computeOverflow()
and call addVisualOverflow().

  • rendering/svg/RenderSVGBlock.cpp:

(WebCore::RenderSVGBlock::computeOverflow):
(WebCore::RenderSVGBlock::visualOverflowRect const): Deleted.

  • rendering/svg/RenderSVGBlock.h:
6:09 AM Changeset in webkit [249255] by Carlos Garcia Campos
  • 6 edits in releases/WebKitGTK/webkit-2.26/Source/WebCore

Merge r249198 - REGRESSION (r248807): Objects stored in ElementRareData are leaked
https://bugs.webkit.org/show_bug.cgi?id=200954

Reviewed by Antti Koivisto.

Use a custom deleter in std::unique_ptr to call the correct destructor instead of making
NodeRareData's destructor virtual. Added NodeRareData::isElementRareData to differentiate
ElementRareData and NodeRareData by borrowing 1 bit from the frame count.

No new tests since there should be no behavioral change.

  • dom/ElementRareData.h:

(WebCore::ElementRareData::ElementRareData):

  • dom/Node.cpp:

(WebCore::Node::materializeRareData): Call the constructors of unique_ptr directly since
make_unique does not take a custom deleter. We can't add the support to makeUnique either
without making it three arguments since we need to cast ElementRareData to NodeRareData
in addition to specifying a custom deleter (normal casting wouldn't work due to
the presence of a custom deleter).
(WebCore::Node::NodeRareDataDeleter::operator() const): Added.

  • dom/Node.h:

(WebCore::Node::NodeRareDataDeleter): Added.

  • dom/NodeRareData.cpp:
  • dom/NodeRareData.h:

(WebCore::NodeRareData::NodeRareData): Makes newly added Type.
(WebCore::NodeRareData::isElementRareData): Added.
(WebCore::NodeRareData::~NodeRareData): Deleted.

4:21 AM Changeset in webkit [249254] by zandobersek@gmail.com
  • 3 edits in trunk/Source/WebCore

[Nicosia] Nicosia::Animation is missing the copy assignment operator
https://bugs.webkit.org/show_bug.cgi?id=201298

Reviewed by Carlos Garcia Campos.

Along with the copy constructor, the Nicosia::Animation class also
requires the copy assignment operator that's invoked whenever
the containing Nicosia::Animations object is copied across different
state objects.

Much like the constructor, the copy assignment should clone the
TimingFunction object to make it safely reusable in other contexts.
This fixes the assertion failures in debug configurations over the
improper cross-thread RefCounted usage.

  • platform/graphics/nicosia/NicosiaAnimation.cpp:

(Nicosia::Animation::operator=):

  • platform/graphics/nicosia/NicosiaAnimation.h:

Explicitly default the move constructor and assignment operator,
providing the whole quartet.

4:10 AM Changeset in webkit [249253] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

https://bugs.webkit.org/show_bug.cgi?id=200917
Do not call addHTTPOriginIfNeeded for window.open

window.open() always uses GET requests and addHTTPOriginIfNeeded
has no effect for GET, so do not call it.

Patch by Rob Buis <rbuis@igalia.com> on 2019-08-29
Reviewed by Frédéric Wang.

  • page/DOMWindow.cpp:

(WebCore::DOMWindow::createWindow):

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

WebSockets: first-party for cookies not set in handshake request when using platform APIs
https://bugs.webkit.org/show_bug.cgi?id=200165

Reviewed by Youenn Fablet.

  • Modules/websockets/ThreadableWebSocketChannel.cpp:

(WebCore::ThreadableWebSocketChannel::webSocketConnectRequest):

3:38 AM Changeset in webkit [249251] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.26/Source/WebCore

Merge r249197 - [SOUP] Shut compilation warning

Unreviewed. RELEASE_LOG_ERROR() needs a channel.

  • platform/network/soup/SoupNetworkSession.cpp:

(WebCore::SoupNetworkSession::setupHSTSEnforcer):

3:37 AM Changeset in webkit [249250] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.26/Source/WebCore

Merge r249196 - [SOUP] Fix the debug build after r249192

Unreviewed build fix.

  • platform/network/soup/SoupNetworkSession.cpp:

(WebCore::SoupNetworkSession::setupHSTSEnforcer):

1:30 AM Changeset in webkit [249249] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Implement HTMLOrForeignElement
https://bugs.webkit.org/show_bug.cgi?id=201219

Patch by Rob Buis <rbuis@igalia.com> on 2019-08-29
Reviewed by Frédéric Wang.

Add FIXME for updating the spec link.

  • html/HTMLOrForeignElement.idl:
1:24 AM Changeset in webkit [249248] by Joseph Pecoraro
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Import file pickers sometimes do not import
https://bugs.webkit.org/show_bug.cgi?id=201290
<rdar://problem/54826117>

Reviewed by Devin Rousso.

  • UserInterface/Base/FileUtilities.js:

(WI.FileUtilities.importText):
(WI.FileUtilities.importJSON):
Keep the input element alive so it doesn't get garbage collected,
which makes the file chooser do nothing.

(WI.FileUtilities.save):
(WI.FileUtilities.async.readText):
Place read operations after event handlers are setup in case the
read operations can happen synchronously and events may not fire.

Aug 28, 2019:

11:49 PM Changeset in webkit [249247] by mark.lam@apple.com
  • 5 edits
    1 add in trunk

DFG/FTL: We should prefetch structures and do a loadLoadFence before doing PrototypeChainIsSane checks.
https://bugs.webkit.org/show_bug.cgi?id=201281
<rdar://problem/54028228>

Reviewed by Yusuke Suzuki and Saam Barati.

JSTests:

  • stress/structure-storedPrototype-should-only-assert-on-the-mutator-thread.js: Added.

Source/JavaScriptCore:

This (see title above) is already the preferred idiom used in most places in our
compiler, except for 2: DFG's SpeculativeJIT::compileGetByValOnString() and FTL's
compileStringCharAt(). Consider the following:

bool prototypeChainIsSane = false;
if (globalObject->stringPrototypeChainIsSane()) {

...
m_graph.registerAndWatchStructureTransition(globalObject->stringPrototype()->structure(vm()));
m_graph.registerAndWatchStructureTransition(globalObject->objectPrototype()->structure(vm()));

prototypeChainIsSane = globalObject->stringPrototypeChainIsSane();

}

What's essential for correctness here is that the stringPrototype and objectPrototype
structures be loaded before the loads in the second stringPrototypeChainIsSane()
check. Without a loadLoadFence before the second stringPrototypeChainIsSane()
check, we can't guarantee that. Elsewhere in the compiler, the preferred idiom
for doing this right is to pre-load the structures first, do a loadLoadFence, and
then do the IsSane check just once after e.g.

Structure* arrayPrototypeStructure = globalObject->arrayPrototype()->structure(m_vm);
Structure* objectPrototypeStructure = globalObject->objectPrototype()->structure(m_vm);

if (arrayPrototypeStructure->transitionWatchpointSetIsStillValid() has loadLoadFences.

&& objectPrototypeStructure->transitionWatchpointSetIsStillValid() has loadLoadFences.
&& globalObject->arrayPrototypeChainIsSane()) {

m_graph.registerAndWatchStructureTransition(arrayPrototypeStructure);
m_graph.registerAndWatchStructureTransition(objectPrototypeStructure);
...

}

This patch changes DFG's SpeculativeJIT::compileGetByValOnString() and FTL's
compileStringCharAt() to follow the same idiom.

We also fix a bad assertion in Structure::storedPrototype() and
Structure::storedPrototypeObject(). The assertion is only correct when those
methods are called from the mutator thread. The assertion has been updated to
only check its test condition if the current thread is the mutator thread.

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileGetByValOnString):

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileStringCharAt):

  • runtime/StructureInlines.h:

(JSC::Structure::storedPrototype const):
(JSC::Structure::storedPrototypeObject const):

11:46 PM Changeset in webkit [249246] by Devin Rousso
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: REGRESSION(r249078): JavaScript autocomplete doesn't work when evaluating properties of values
https://bugs.webkit.org/show_bug.cgi?id=201226

Reviewed by Joseph Pecoraro.

r249078 modified WI.JavaScriptRuntimeCompletionProvider to use arrays of property names
instead of objects for completion, but a few code paths were missed.

  • UserInterface/Controllers/JavaScriptRuntimeCompletionProvider.js:

(WI.JavaScriptRuntimeCompletionProvider.prototype.completionControllerCompletionsNeeded.evaluated):
(WI.JavaScriptRuntimeCompletionProvider.prototype.completionControllerCompletionsNeeded.receivedPropertyNamesFromEvaluate):
(WI.JavaScriptRuntimeCompletionProvider.prototype.completionControllerCompletionsNeeded.receivedObjectPropertyNames): Added.
(WI.JavaScriptRuntimeCompletionProvider.prototype.completionControllerCompletionsNeeded.receivedArrayPropertyNames):

  • UserInterface/Models/CallFrame.js:

(WI.CallFrame.prototype.collectScopeChainVariableNames):
(WI.CallFrame.prototype.collectScopeChainVariableNames.propertiesCollected):

11:26 PM Changeset in webkit [249245] by Fujii Hironori
  • 2 edits in trunk/Tools

[Win] MiniBrowser crashes in WKURLCopyString if WKPageCopyActiveURL returns null
https://bugs.webkit.org/show_bug.cgi?id=201215

Reviewed by Don Olmstead.

MiniBrowser crashed if it was going to go to a unreachable page
because WKPageCopyActiveURL returned a nullptr.

  • MiniBrowser/win/WebKitBrowserWindow.cpp:

(createString): Added null checking of the argument.

11:13 PM Changeset in webkit [249244] by zandobersek@gmail.com
  • 2 edits in trunk/Source/WebCore

[Nicosia] Implement layer representation retain, release mechanics
https://bugs.webkit.org/show_bug.cgi?id=201133

Reviewed by Carlos Garcia Campos.

  • page/scrolling/nicosia/ScrollingStateNodeNicosia.cpp:

(WebCore::LayerRepresentation::retainPlatformLayer):
Type-cast the layer object to the reference-counted
Nicosia::PlatformLayer type and reference that object.
(WebCore::LayerRepresentation::releasePlatformLayer):
Ditto, but dereference the object.

11:13 PM Changeset in webkit [249243] by zandobersek@gmail.com
  • 2 edits in trunk/Source/WebCore

[Nicosia] Add Nicosia::PlatformLayer::accessStaging() helper
https://bugs.webkit.org/show_bug.cgi?id=201132

Reviewed by Carlos Garcia Campos.

  • platform/graphics/nicosia/NicosiaPlatformLayer.h:

(Nicosia::CompositionLayer::accessStaging):
Add an accessor into the staging state of the Nicosia::PlatformLayer
object. This will be needed for the application of scrolling changes
in the asynchronous scrolling system.

11:12 PM Changeset in webkit [249242] by zandobersek@gmail.com
  • 3 edits in trunk/Source/WebCore

[CoordGraphics] Expose Nicosia layer as the underlying CoordinatedGraphicsLayer platform layer
https://bugs.webkit.org/show_bug.cgi?id=201131

Reviewed by Carlos Garcia Campos.

Add the CoordinatedGraphicsLayer::platformLayer() override, returning
the Nicosia::CompositionLayer object as the underlying platform layer.
This will come in handy for asynchronous scrolling.

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

(WebCore::CoordinatedGraphicsLayer::platformLayer const):

  • platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.h:
11:11 PM Changeset in webkit [249241] by zandobersek@gmail.com
  • 2 edits in trunk/Source/WebCore

[Nicosia] Polish ScrollingCoordinator implementation
https://bugs.webkit.org/show_bug.cgi?id=201130

Reviewed by Carlos Garcia Campos.

These changes primarily mirror the Mac implementation of this class.

  • page/scrolling/nicosia/ScrollingCoordinatorNicosia.cpp:

(WebCore::ScrollingCoordinatorNicosia::pageDestroyed):
Upon releasing the ThreadedScrollingTree, it should also be invalidated
on the scrolling thread.
(WebCore::ScrollingCoordinatorNicosia::commitTreeState):
Invoke willCommitTree() at the beginning of this method. Additionally
the pending-commit-count is incremented for the ThreadedScrollingTree
object.

10:57 PM Changeset in webkit [249240] by Kocsen Chung
  • 4 edits in branches/safari-608-branch

Cherry-pick r249224. rdar://problem/54819205

Null check webFrame when creating a print preview to prevent a crash.
https://bugs.webkit.org/show_bug.cgi?id=201237
<rdar://problem/51618863>

Reviewed by Tim Horton.

Source/WebKit:

Move and expend a null check to keep from crashing when making a print preview.

  • UIProcess/mac/WKPrintingView.mm: (-[WKPrintingView _drawPreview:]): (-[WKPrintingView drawRect:]):

Tools:

Test to verify that if we don't have the WebPageProxy, we will not crash when making a print preview.

  • TestWebKitAPI/Tests/WebKitCocoa/UIDelegate.mm: (TEST):

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

10:57 PM Changeset in webkit [249239] by Kocsen Chung
  • 3 edits
    3 adds in branches/safari-608-branch

Cherry-pick r249156. rdar://problem/54775048

Crash under WebCore::jsNotificationConstructorPermission
https://bugs.webkit.org/show_bug.cgi?id=201186
<rdar://problem/53962833>

Reviewed by Youenn Fablet.

Source/WebCore:

Update the Notification API implementation to null-check the page before using. The page becomes null
when using the API in a frame that gets detached from its parent while in the middle of running
script.

Test: http/tests/notifications/request-in-detached-frame.html

  • Modules/notifications/Notification.cpp: (WebCore::Notification::permission): (WebCore::Notification::requestPermission):

LayoutTests:

Add layout test coverage.

  • http/tests/notifications/request-in-detached-frame-expected.txt: Added.
  • http/tests/notifications/request-in-detached-frame.html: Added.
  • http/tests/notifications/resources/request-in-detached-frame-subframe.html: Added.

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

10:57 PM Changeset in webkit [249238] by Kocsen Chung
  • 3 edits in branches/safari-608-branch/Source/WebCore

Cherry-pick r249154. rdar://problem/54775050

Disabled devices should not be taken into account when searching for a capture device
https://bugs.webkit.org/show_bug.cgi?id=201183
<rdar://problem/54353440>

Reviewed by Jer Noble.

Manually tested.

  • platform/mediastream/mac/CoreAudioCaptureDeviceManager.cpp: (WebCore::CoreAudioCaptureDeviceManager::coreAudioDeviceWithUID): We currently keep a list of devices, some of which might be disabled. We should not take into account disabled devices, only enabled devices when doing this search.
  • platform/mediastream/mac/CoreAudioCaptureSource.cpp: (WebCore::CoreAudioSharedUnit::setupAudioUnit): Improve logging.

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

8:14 PM Changeset in webkit [249237] by rniwa@webkit.org
  • 19 edits in trunk

Make tabIndex IDL attribute reflect its content attribute
https://bugs.webkit.org/show_bug.cgi?id=199606
<rdar://problem/52811448>

Reviewed by Chris Dumez.

LayoutTests/imported/w3c:

  • web-platform-tests/html/dom/reflection-misc-expected.txt: Rebaselined now that test cases for summary are passing.

Source/WebCore:

This patch makes tabIndex IDL attribute no longer return 0 when the element is focusable
to match the latest HTML5 specification. Instead, the IDL attribute simply reflect the tabindex
content attribute with some elements having 0 as the default tab index (see r248784):
https://html.spec.whatwg.org/multipage/interaction.html#the-tabindex-attribute

The practical implication is that tabIndex IDL attribute on a root editable element (a.k.a.
editing host in HTML5 spec term), body element in design mode, and media elements with
media controls would start returning -1 instead of 0.

Mechanically, this is accomplished by removing the special case in Element::tabIndexForBindings
when supportsFocus returned true. The effect, if any, this patch has on each element which
overrides Element::supportsFocus is summarized as follows (indentation simplies inheritance):

HTMLAnchorElement -> No effect since defaultTabIndex returns 0.

HTMLAreaElement -> Ditto.

HTMLBodyElement -> Changes to return -1 in design mode.
HTMLElement -> Changes to return -1 on a root editable element.
HTMLFormControlElement

HTMLButtonElement -> No effect since defaultTabIndex returns 0.
HTMLFieldSetElement -> No effect since this is an override to use HTMLElement's supportsFocus.
HTMLFormControlElementWithState

HTMLKeygenElement -> No effect since defaultTabIndex returns 0.
HTMLSelectElement -> Ditto.
HTMLTextFormControlElement -> Ditto.

HTMLInputElement -> Ditto.
HTMLTextAreaElement -> Ditto.

HTMLOutputElement -> No effect since this is an override to use HTMLElement's supportsFocus.

HTMLFrameElementBase - No change. Added defaultTabIndex on HTMLIFrameElement and HTMLFrameElement

to returns 0.

HTMLImageElement - No impact since it only affects when an image is set to be editable via SPI.
HTMLMediaElement - Changes to return -1 when media controls is present.
HTMLPlugInElement - applet and embed elements change to return -1 when the plugin is available.
HTMLSummaryElement - No change. Added defaultTabIndex to return 0 when it's active to match

supportsFocus as well as the HTML5 specification.

MathMLElement - No effect since tabIndex IDL attribute does not exist in MathML.
SVGAElement - No effect since defaultTabIndex returns 0.
SVGClipPathElement - No effect since it always returns false.
SVGDefsElement - No effect since it always returns false.

Tests: fast/dom/tabindex-defaults.html

plugins/focus.html

  • dom/Element.cpp:

(WebCore::Element::tabIndexForBindings const): Made the change.

  • html/HTMLFrameElement.cpp:

(WebCore::HTMLFrameElement::defaultTabIndex const): Added to preserve the existing behavior.

  • html/HTMLFrameElement.h:
  • html/HTMLIFrameElement.cpp:

(WebCore::HTMLIFrameElement::defaultTabIndex const): Ditto.

  • html/HTMLIFrameElement.h:
  • html/HTMLObjectElement.cpp:

(WebCore::HTMLObjectElement::defaultTabIndex const): Added. Always return 0 to match the spec.

  • html/HTMLObjectElement.h:
  • html/HTMLSummaryElement.cpp:

(WebCore::HTMLSummaryElement::defaultTabIndex const): Added. Return 0 when the this summary
is the active summary element of the details element.

  • html/HTMLSummaryElement.h:

LayoutTests:

Added test cases and assertions.

  • fast/dom/tabindex-defaults-expected.txt:
  • fast/dom/tabindex-defaults.html: Added test cases for iframe, frame, object, video, summary, and SVG elements.

Also blur the active element to avoid any race conditions.

  • plugins/focus-expected.txt:
  • plugins/focus.html:
  • svg/custom/tabindex-order-expected.txt:
  • svg/custom/tabindex-order.html: Made the sequential navigation code not rely on tabIndex IDL attribute.
8:01 PM Changeset in webkit [249236] by Simon Fraser
  • 3 edits in trunk/Source/WebCore

Make FillLayer::hasImage() inline
https://bugs.webkit.org/show_bug.cgi?id=201265

Reviewed by Zalan Bujtas.

FillLayer::hasImage() shows up on profiles because it's called from hot functions like
isTransparent() and hasMask(), so make a basic inline version that doens't have
to walk the list.

  • rendering/style/FillLayer.cpp:

(WebCore::FillLayer::hasImageInAnyLayer const):
(WebCore::FillLayer::hasImage const): Deleted.

  • rendering/style/FillLayer.h:

(WebCore::FillLayer::hasImage const):

7:57 PM Changeset in webkit [249235] by Alan Coon
  • 7 edits in branches/safari-608.2.11.0-branch/Source

Versioning.

7:57 PM Changeset in webkit [249234] by Alan Coon
  • 7 edits in branches/safari-608.2.11.1-branch/Source

Versioning.

7:40 PM Changeset in webkit [249233] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebCore

REGRESSION: String check: “realtime” Suggesting “real time”
https://bugs.webkit.org/show_bug.cgi?id=201107
<rdar://problem/46372620>

Patch by Peng Liu <Peng Liu> on 2019-08-28
Reviewed by Jer Noble.

Update Localizable.strings.

No new test.

  • en.lproj/Localizable.strings:
  • platform/LocalizedStrings.cpp:

(WebCore::localizedMediaControlElementString):

7:24 PM Changeset in webkit [249232] by Simon Fraser
  • 2 edits in trunk/Source/WebCore

PaintFrequencyTracker triggers too many calls to MonotonicTime::now() on layer painting
https://bugs.webkit.org/show_bug.cgi?id=201261

Reviewed by Zalan Bujtas.

MonotonicTime::now() shows up as expensive when painting layer-heavy content, because PaintFrequencyTracker
makes two calls per layer paint.

Halve the number of calls by storing m_lastPaintTime at the start of the paint; doing so doesn't substantially
change the behavior of the tracker.

  • rendering/PaintFrequencyTracker.h:

(WebCore::PaintFrequencyTracker::begin):
(WebCore::PaintFrequencyTracker::end):

7:10 PM Changeset in webkit [249231] by Kocsen Chung
  • 1 copy in branches/safari-608.2.11.1-branch

New branch.

7:07 PM Changeset in webkit [249230] by timothy_horton@apple.com
  • 4 edits
    2 adds in trunk

Reloading a web view with a fixed-width viewport and variable content width restores the previous page scale, shouldn't
https://bugs.webkit.org/show_bug.cgi?id=201256
<rdar://problem/54809509>

Reviewed by Simon Fraser.

Source/WebKit:

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::restorePageState):
When restoring page state from a history item, if the saved scale was equal to the
initial scale at the time it was saved, ignore the saved scale and use the current
initial scale instead.

Normally this doesn't matter because a given page's initial scale doesn't usually change
between loads, but it totally can! See the test for one example of a way an API client
might cause this; you could also imagine something similar happening if the actual
page content changed.

Tools:

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKit/long-email-viewport.html: Added.
  • TestWebKitAPI/Tests/WebKitCocoa/ReloadWithDifferingInitialScale.mm: Added.

(TestWebKitAPI::TEST):
Add a test. I left many comments because I had a great deal of trouble
writing this test and wanted to document my findings.

7:06 PM Changeset in webkit [249229] by Kocsen Chung
  • 1 copy in branches/safari-608.2.11.0-branch

New branch.

6:37 PM Changeset in webkit [249228] by Alan Coon
  • 1 copy in tags/Safari-609.1.3

Tag Safari-609.1.3.

5:44 PM Changeset in webkit [249227] by Jonathan Bedard
  • 2 edits in trunk/Tools

results.webkit.org: Do not display branch selector if only one branches available
https://bugs.webkit.org/show_bug.cgi?id=201244

Rubber-stamped by Aakash Jain.

  • resultsdbpy/resultsdbpy/view/static/js/drawer.js: Hide the branch selector's

container if there aren't multiple branches to choose from.

5:01 PM Changeset in webkit [249226] by wenson_hsieh@apple.com
  • 2 edits in trunk/Tools

WKAttachmentTests.DropFolderAsAttachmentAndMoveByDragging fails in some iOS simulator configurations
https://bugs.webkit.org/show_bug.cgi?id=201241
<rdar://problem/54317588>

Reviewed by Tim Horton.

For reasons that are still unknown, it's possible for iOS 13 simulators to get into a state where the IPC
communication delay between the web and UI processes can become extraordinarily long. Under these circumstances,
the drag and drop harness fails to simulate a drop, since it ends up firing all scheduled calls to
-dropInteraction:sessionDidUpdate: before the first response from the web process arrives in the UI process, so
it believes that the web view has rejected the drop from being handled.

Instead, make the drag and drop simulator robust by ensuring a presentation update between drop session updates,
to make sure that the web process has had time to send a response after each update.

  • TestWebKitAPI/ios/DragAndDropSimulatorIOS.mm:

(-[DragAndDropSimulator _advanceProgress]):

4:11 PM Changeset in webkit [249225] by mark.lam@apple.com
  • 3 edits
    1 add in trunk

Placate exception check validation in DFG's operationHasGenericProperty().
https://bugs.webkit.org/show_bug.cgi?id=201245
<rdar://problem/54777512>

Reviewed by Robin Morisset.

JSTests:

  • stress/missing-exception-check-in-operationHasGenericProperty.js: Added.

Source/JavaScriptCore:

  • dfg/DFGOperations.cpp:
4:07 PM Changeset in webkit [249224] by Megan Gardner
  • 4 edits in trunk

Null check webFrame when creating a print preview to prevent a crash.
https://bugs.webkit.org/show_bug.cgi?id=201237
<rdar://problem/51618863>

Reviewed by Tim Horton.

Source/WebKit:

Move and expend a null check to keep from crashing when making a print preview.

  • UIProcess/mac/WKPrintingView.mm:

(-[WKPrintingView _drawPreview:]):
(-[WKPrintingView drawRect:]):

Tools:

Test to verify that if we don't have the WebPageProxy, we will not crash when making a print preview.

  • TestWebKitAPI/Tests/WebKitCocoa/UIDelegate.mm:

(TEST):

3:52 PM Changeset in webkit [249223] by Ross Kirsling
  • 5 edits in trunk/Source

Unreviewed. Restabilize non-unified build.

Source/JavaScriptCore:

  • runtime/PropertySlot.h:

Source/WebCore:

  • inspector/agents/WebConsoleAgent.h:
  • loader/ResourceLoadObserver.h:
3:32 PM Changeset in webkit [249222] by Simon Fraser
  • 5 edits in trunk/Source/WebCore

Devirtualize RenderBox::visualOverflowRect()
https://bugs.webkit.org/show_bug.cgi?id=201231

Reviewed by Zalan Bujtas.

The only override of RenderBox::visualOverflowRect() was in RenderView, for "paintsEntireContents" views, and as
far as I can tell this is not necessary. visualOverflowRect() is hot when called from RenderLayer::localBoundingBox() --
this shows in profiles when scrolling large patch reviews, so making it non-virtual is a performance enhancement.

RenderLayer::localBoundingBox() can also just call visualOverflowRect(), since that returns borderBoxRect()
when there is no overflow.

  • rendering/RenderBox.h:

(WebCore::RenderBox::visualOverflowRect const):

  • rendering/RenderLayer.cpp:

(WebCore::performOverlapTests): Minor optimization to avoid a call to boundingBox().
(WebCore::RenderLayer::calculateClipRects const):

  • rendering/RenderView.cpp:

(WebCore::RenderView::visualOverflowRect const): Deleted.

  • rendering/RenderView.h:
2:24 PM Changeset in webkit [249221] by mark.lam@apple.com
  • 4 edits in trunk/Source/JavaScriptCore

Wasm's AirIRGenerator::addLocal() and B3IRGenerator::addLocal() are doing unnecessary overflow checks.
https://bugs.webkit.org/show_bug.cgi?id=201006
<rdar://problem/52053991>

Reviewed by Yusuke Suzuki.

We already ensured that it is not possible to overflow in Wasm::FunctionParser's
parse(). It is unnecessary and misleading to do those overflow checks in
AirIRGenerator and B3IRGenerator. The only check that is necessary is that
m_locals.tryReserveCapacity() is successful, otherwise, we have an out of memory
situation.

This patch changes these unnecessary checks to assertions instead.

  • wasm/WasmAirIRGenerator.cpp:

(JSC::Wasm::AirIRGenerator::addLocal):

  • wasm/WasmB3IRGenerator.cpp:

(JSC::Wasm::B3IRGenerator::addLocal):

  • wasm/WasmValidate.cpp:

(JSC::Wasm::Validate::addLocal):

2:23 PM Changeset in webkit [249220] by Devin Rousso
  • 2 edits in trunk/LayoutTests

Unreviewed, fix test failure after r249173

  • inspector/timeline/line-column-expected.txt:
1:46 PM Changeset in webkit [249219] by Alan Coon
  • 1 copy in tags/Safari-608.2.11

Tag Safari-608.2.11.

1:34 PM Changeset in webkit [249218] by commit-queue@webkit.org
  • 11 edits in trunk/Source/WebCore

Create ANGLE EGL Context with all extensions disabled by default
https://bugs.webkit.org/show_bug.cgi?id=200900

Patch by Austin Eng <enga@chromium.org> on 2019-08-28
Reviewed by Alex Christensen.

In WebGL, extensions must be explicitly requested before they are enabled.
Fixes the following WebGL conformance tests with the ANGLE backend
LayoutTests/webgl/*/conformance/extensions/ext-blend-minmax.html
LayoutTests/webgl/*/conformance/extensions/ext-frag-depth.html
LayoutTests/webgl/*/conformance/extensions/ext-shader-texture-lod.html
LayoutTests/webgl/*/conformance/extensions/ext-sRGB.html
LayoutTests/webgl/*/conformance/extensions/oes-standard-derivatives.html
LayoutTests/webgl/*/conformance/extensions/oes-texture-float.html
LayoutTests/webgl/*/conformance/extensions/webgl-compressed-texture-s3tc.html
LayoutTests/webgl/*/conformance/glsl/misc/shader-with-dfdx.frag.html
LayoutTests/webgl/*/conformance/glsl/variables/glsl-built-ins.html
LayoutTests/webgl/*/conformance/textures/misc/texture-npot-video.html
LayoutTests/webgl/*/conformance/textures/misc/texture-npot.html

  • html/canvas/ANGLEInstancedArrays.cpp:

(WebCore::ANGLEInstancedArrays::ANGLEInstancedArrays):
(WebCore::ANGLEInstancedArrays::supported):

  • html/canvas/WebGLCompressedTextureASTC.cpp:

(WebCore::WebGLCompressedTextureASTC::WebGLCompressedTextureASTC):

  • html/canvas/WebGLCompressedTextureATC.cpp:

(WebCore::WebGLCompressedTextureATC::WebGLCompressedTextureATC):

  • html/canvas/WebGLCompressedTexturePVRTC.cpp:

(WebCore::WebGLCompressedTexturePVRTC::WebGLCompressedTexturePVRTC):

  • html/canvas/WebGLCompressedTextureS3TC.cpp:

(WebCore::WebGLCompressedTextureS3TC::WebGLCompressedTextureS3TC):
(WebCore::WebGLCompressedTextureS3TC::supported):

  • html/canvas/WebGLDebugShaders.cpp:

(WebCore::WebGLDebugShaders::WebGLDebugShaders):

  • html/canvas/WebGLDepthTexture.cpp:

(WebCore::WebGLDepthTexture::WebGLDepthTexture):

  • html/canvas/WebGLDrawBuffers.cpp:

(WebCore::WebGLDrawBuffers::WebGLDrawBuffers):
(WebCore::WebGLDrawBuffers::supported):

  • platform/graphics/angle/GraphicsContext3DANGLE.cpp:

(WebCore::GraphicsContext3D::reshapeFBOs):
(WebCore::GraphicsContext3D::validateDepthStencil):

  • platform/graphics/cocoa/GraphicsContext3DCocoa.mm:

(WebCore::GraphicsContext3D::GraphicsContext3D):

1:23 PM Changeset in webkit [249217] by commit-queue@webkit.org
  • 63 edits
    1 add in trunk/Source

All image drawing functions should take an argument of type ImagePaintingOptions
https://bugs.webkit.org/show_bug.cgi?id=201059

Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2019-08-28
Reviewed by Simon Fraser.

Source/WebCore:

In this patch:
-- All the image drawing function will take an argument of type

ImagePaintingOptions instead of passing individual options.

-- ImagePaintingOptions is made like a set of options. It can be

initialized with any number of options and the order does not matter

-- Image::originalSize() is deleted because it returns size() and none

of the Image concrete classes overrides this implementation.

  • Headers.cmake:
  • WebCore.xcodeproj/project.pbxproj:
  • html/ImageBitmap.cpp:

(WebCore::ImageBitmap::createPromise):
(WebCore::ImageBitmap::createFromBuffer):

  • html/canvas/CanvasRenderingContext2DBase.cpp:

(WebCore::CanvasRenderingContext2DBase::drawImage):
(WebCore::drawImageToContext):
(WebCore::CanvasRenderingContext2DBase::fullCanvasCompositedDrawImage):

  • platform/graphics/BitmapImage.cpp:

(WebCore::BitmapImage::draw):
(WebCore::BitmapImage::drawPattern):

  • platform/graphics/BitmapImage.h:
  • platform/graphics/CrossfadeGeneratedImage.cpp:

(WebCore::drawCrossfadeSubimage):
(WebCore::CrossfadeGeneratedImage::draw):
(WebCore::CrossfadeGeneratedImage::drawPattern):

  • platform/graphics/CrossfadeGeneratedImage.h:
  • platform/graphics/CustomPaintImage.cpp:

(WebCore::CustomPaintImage::draw):
(WebCore::CustomPaintImage::drawPattern):

  • platform/graphics/CustomPaintImage.h:
  • platform/graphics/GeneratedImage.h:

(WebCore::GeneratedImage::draw):
(WebCore::GeneratedImage::drawPattern):

  • platform/graphics/GradientImage.cpp:

(WebCore::GradientImage::draw):
(WebCore::GradientImage::drawPattern):

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

(WebCore::GraphicsContext::drawImage):
(WebCore::GraphicsContext::drawTiledImage):
(WebCore::GraphicsContext::drawImageBuffer):
(WebCore::GraphicsContext::drawConsumingImageBuffer):

  • platform/graphics/GraphicsContext.h:

(WebCore::GraphicsContext::drawNativeImage):
(WebCore::GraphicsContext::drawImage):
(WebCore::GraphicsContext::drawTiledImage):
(WebCore::GraphicsContext::drawImageBuffer):
(WebCore::GraphicsContext::drawPattern):
(WebCore::GraphicsContext::drawConsumingImageBuffer):
(WebCore::ImagePaintingOptions::ImagePaintingOptions): Deleted.
(WebCore::ImagePaintingOptions::usesDefaultInterpolation const): Deleted.

  • platform/graphics/GraphicsContextImpl.cpp:

(WebCore::GraphicsContextImpl::drawImageImpl):
(WebCore::GraphicsContextImpl::drawTiledImageImpl):

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

(WebCore::Image::drawPattern):
(WebCore::Image::drawTiled):
(WebCore::Image::computeIntrinsicDimensions):

  • platform/graphics/Image.h:

(WebCore::Image::drawPattern):
(WebCore::Image::draw):
(WebCore::Image::drawTiled):
(WebCore::Image::originalSize const): Deleted.

  • platform/graphics/ImageBuffer.h:

(WebCore::ImageBuffer::draw):
(WebCore::ImageBuffer::drawPattern):
(WebCore::ImageBuffer::drawConsuming):

  • platform/graphics/ImagePaintingOptions.h: Added.

(WebCore::ImagePaintingOptions::ImagePaintingOptions):
(WebCore::ImagePaintingOptions::compositeOperator const):
(WebCore::ImagePaintingOptions::blendMode const):
(WebCore::ImagePaintingOptions::decodingMode const):
(WebCore::ImagePaintingOptions::orientation const):
(WebCore::ImagePaintingOptions::interpolationQuality const):
(WebCore::ImagePaintingOptions::setOption):

  • platform/graphics/NamedImageGeneratedImage.cpp:

(WebCore::NamedImageGeneratedImage::draw):
(WebCore::NamedImageGeneratedImage::drawPattern):

  • platform/graphics/NamedImageGeneratedImage.h:
  • platform/graphics/NativeImage.h:
  • platform/graphics/cairo/CairoOperations.cpp:

(WebCore::Cairo::drawShadowLayerBuffer):
(WebCore::Cairo::drawShadowImage):
(WebCore::Cairo::drawNativeImage):
(WebCore::Cairo::drawPattern):

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

(WebCore::GraphicsContext::drawNativeImage):
(WebCore::GraphicsContext::drawPattern):

  • platform/graphics/cairo/GraphicsContextImplCairo.cpp:

(WebCore::GraphicsContextImplCairo::drawNativeImage):
(WebCore::GraphicsContextImplCairo::drawPattern):

  • platform/graphics/cairo/GraphicsContextImplCairo.h:
  • platform/graphics/cairo/ImageBufferCairo.cpp:

(WebCore::ImageBuffer::drawConsuming):
(WebCore::ImageBuffer::draw):
(WebCore::ImageBuffer::drawPattern):

  • platform/graphics/cairo/NativeImageCairo.cpp:

(WebCore::drawNativeImage):

  • platform/graphics/cg/GraphicsContext3DCG.cpp:

(WebCore::GraphicsContext3D::paintToCanvas):

  • platform/graphics/cg/GraphicsContextCG.cpp:

(WebCore::GraphicsContext::drawNativeImage):
(WebCore::GraphicsContext::drawPattern):

  • platform/graphics/cg/ImageBufferCG.cpp:

(WebCore::ImageBuffer::drawConsuming):
(WebCore::ImageBuffer::draw):
(WebCore::ImageBuffer::drawPattern):

  • platform/graphics/cg/NativeImageCG.cpp:

(WebCore::drawNativeImage):

  • platform/graphics/cg/PDFDocumentImage.cpp:

(WebCore::PDFDocumentImage::draw):

  • platform/graphics/cg/PDFDocumentImage.h:
  • platform/graphics/displaylists/DisplayListItems.cpp:

(WebCore::DisplayList::DrawNativeImage::DrawNativeImage):
(WebCore::DisplayList::DrawNativeImage::apply const):
(WebCore::DisplayList::DrawPattern::DrawPattern):
(WebCore::DisplayList::DrawPattern::apply const):

  • platform/graphics/displaylists/DisplayListItems.h:

(WebCore::DisplayList::DrawNativeImage::create):
(WebCore::DisplayList::DrawPattern::create):
(WebCore::DisplayList::DrawPattern::DrawPattern):

  • platform/graphics/displaylists/DisplayListRecorder.cpp:

(WebCore::DisplayList::Recorder::drawNativeImage):
(WebCore::DisplayList::Recorder::drawPattern):

  • platform/graphics/displaylists/DisplayListRecorder.h:
  • platform/graphics/filters/FEBlend.cpp:

(WebCore::FEBlend::platformApplySoftware):

  • platform/graphics/filters/FEComposite.cpp:

(WebCore::FEComposite::platformApplySoftware):

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:

(WebCore::MediaPlayerPrivateGStreamerBase::paint):

  • platform/graphics/nicosia/cairo/NicosiaCairoOperationRecorder.cpp:

(Nicosia::CairoOperationRecorder::drawNativeImage):
(Nicosia::CairoOperationRecorder::drawPattern):

  • platform/graphics/nicosia/cairo/NicosiaCairoOperationRecorder.h:
  • platform/graphics/win/Direct2DOperations.cpp:

(WebCore::Direct2D::drawNativeImage):
(WebCore::Direct2D::drawPattern):

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

(WebCore::BitmapImage::getHBITMAPOfSize):
(WebCore::BitmapImage::drawFrameMatchingSourceSize):

  • platform/graphics/win/ImageCairoWin.cpp:

(WebCore::BitmapImage::getHBITMAPOfSize):
(WebCore::BitmapImage::drawFrameMatchingSourceSize):

  • platform/graphics/win/NativeImageDirect2D.cpp:

(WebCore::drawNativeImage):

  • platform/ios/DragImageIOS.mm:

(WebCore::createDragImageFromImage):

  • rendering/RenderBoxModelObject.cpp:

(WebCore::RenderBoxModelObject::paintFillLayerExtended):

  • rendering/RenderEmbeddedObject.cpp:

(WebCore::RenderEmbeddedObject::paintSnapshotImage):

  • rendering/RenderImage.cpp:

(WebCore::RenderImage::paintReplaced):
(WebCore::RenderImage::paintIntoRect):

  • rendering/RenderSnapshottedPlugIn.cpp:

(WebCore::RenderSnapshottedPlugIn::paintSnapshot):

  • rendering/RenderThemeMac.mm:

(WebCore::RenderThemeMac::paintSnapshottedPluginOverlay):

  • svg/graphics/SVGImage.cpp:

(WebCore::SVGImage::drawForContainer):
(WebCore::SVGImage::nativeImageForCurrentFrame):
(WebCore::SVGImage::nativeImage):
(WebCore::SVGImage::drawPatternForContainer):
(WebCore::SVGImage::draw):

  • svg/graphics/SVGImage.h:
  • svg/graphics/SVGImageForContainer.cpp:

(WebCore::SVGImageForContainer::draw):
(WebCore::SVGImageForContainer::drawPattern):

  • svg/graphics/SVGImageForContainer.h:

Source/WebKit:

GraphicsContext::drawImage() now takes an ImagePaintingOptions.

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::imagePositionInformation):

12:57 PM Changeset in webkit [249216] by commit-queue@webkit.org
  • 3 edits
    2 adds in trunk

XLinkNames namespace is required before the 'href' attribute of SVG animate elements
https://bugs.webkit.org/show_bug.cgi?id=201227

Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2019-08-28
Reviewed by Ryosuke Niwa.

Source/WebCore:

To get the animation target element, get the value of the "href" attribute
or the "xlink:href" attribute.

Tests: svg/custom/href-svg-namespace-animate-target.svg

  • svg/animation/SVGSMILElement.cpp:

(WebCore::SVGSMILElement::buildPendingResource):

LayoutTests:

  • svg/custom/href-svg-namespace-animate-target-expected.svg: Added.
  • svg/custom/href-svg-namespace-animate-target.svg: Added.
12:51 PM Changeset in webkit [249215] by Truitt Savell
  • 4 edits in trunk/Source/WebCore

Unreviewed, rolling out r249209.

Broke 19 webgpu/ tests

Reverted changeset:

"[WHLSL] Inline typedef'd types during Metal code generation
to simplify generated code while also making it easier to
read"
https://bugs.webkit.org/show_bug.cgi?id=201185
https://trac.webkit.org/changeset/249209

12:46 PM Changeset in webkit [249214] by mmaxfield@apple.com
  • 3 edits
    2 adds in trunk

[WHLSL] Matrices need to have correct alignment
https://bugs.webkit.org/show_bug.cgi?id=201212

Reviewed by Robin Morisset.

Source/WebCore:

Matrices have particular alignment requirements and size requirements.

Type | Alignment | Size


float2x2 | 8 | 16
float2x3 | 16 | 32
float2x4 | 16 | 32
float3x2 | 8 | 24
float3x3 | 16 | 48
float3x4 | 16 | 48
float4x2 | 8 | 32
float4x3 | 16 | 64
float4x4 | 16 | 64

These are important because they may be a member of a struct, and we don't want to misplace
every successive item in the struct.

Test: webgpu/whlsl/matrix-alignment.html

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

(WebCore::WHLSL::Metal::writeNativeType):

LayoutTests:

Test the alignment and size of float matrices.

Intentionally don't test bool matrices, because they can't be placed in buffers,
meaning their size and alignment is unobservable.

  • webgpu/whlsl/matrix-alignment-expected.txt: Added.
  • webgpu/whlsl/matrix-alignment.html: Added.
12:36 PM Changeset in webkit [249213] by Jonathan Bedard
  • 10 edits
    1 delete in trunk/Tools

results.webkit.org: Move drawer to the right, open by default
https://bugs.webkit.org/show_bug.cgi?id=200977

Rubber-stamped by Aakash Jain.

The drawer was both unpopular and not discoverable. After feedback from bot watchers,
moving the drawer to the right side of the screen, opening it by default and have it displace
instead of hide the main content.

  • resultsdbpy/resultsdbpy/view/commit_view_unittest.py:

(CommitViewUnittest.test_drawer): Support new drawer style.
(CommitViewUnittest.test_range_slider): Ditto.
(CommitViewUnittest.test_one_line_switch): Ditto.
(CommitViewUnittest.test_branch_selection): Ditto.

  • resultsdbpy/resultsdbpy/view/static/css/drawer.css: Removed.
  • resultsdbpy/resultsdbpy/view/static/js/drawer.js:

(setEnableRecursive): Disable all elements underneath this one
(Drawer): Make drawer a sidebar.

  • resultsdbpy/resultsdbpy/view/static/library/css/webkit.css:

(.header>.title, .topbar>.title): Overflow of titles should be hidden.
(:root): Move boldInverseColor into webkit.css.
(@media (prefers-color-scheme: dark)):
(.sidebar): Sidebars on mobile should behave like drawers.
(.sidebar.hidden): Add concept of hidden sidebar.
(.mobile-sidebar-control): Add a control to collapse sidebar that only exists on mobile.
(.mobile-sidebar-control.display):
(.main.under-topbar-with-actions):
(@media screen and (min-width: 600px) and (orientation: landscape)):
(.sidebar.left.hidden):
(.sidebar.right.hidden):
(.main.right.hidden):
(.main.left.hidden):
(@media screen and (min-width: 768px) and (orientation: landscape)):
(.sidebar.right):
(a.disabled): Add ability to disable a link.
(.desktop-control): Add a control which only exists on desktop.

  • resultsdbpy/resultsdbpy/view/templates/base.html: Add hamburger drawer-button for mobile.
  • resultsdbpy/resultsdbpy/view/templates/commits.html: Use main since Drawer is now a sidebar.
  • resultsdbpy/resultsdbpy/view/templates/documentation.html: Ditto.
  • resultsdbpy/resultsdbpy/view/templates/search.html: Ditto.
  • resultsdbpy/resultsdbpy/view/templates/suite_results.html: Ditto.
  • resultsdbpy/resultsdbpy/view/view_routes_unittest.py:

(WebSiteTestCase.toggle_drawer): Support new drawer style.
(WebSiteTestCase.find_input_with_name): Ditto.

12:34 PM Changeset in webkit [249212] by commit-queue@webkit.org
  • 14 edits
    1 add in trunk

Implement HTMLOrForeignElement
https://bugs.webkit.org/show_bug.cgi?id=201219

Patch by Rob Buis <rbuis@igalia.com> on 2019-08-28
Reviewed by Ryosuke Niwa.

Source/WebCore:

Add the HTMLOrForeignElement [1] interface to share properties
and methods between HTML, SVG and MathML.

[1] https://github.com/mathml-refresh/mathml/issues/83

  • CMakeLists.txt:
  • DerivedSources-input.xcfilelist:
  • DerivedSources-output.xcfilelist:
  • DerivedSources.make:
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • dom/StaticRange.h:
  • html/HTMLElement.idl:
  • html/HTMLOrForeignElement.idl: Added.
  • svg/SVGElement.idl:

LayoutTests:

Adjust test expectations to new HTMLOrForeignElement interface.

  • js/dom/dom-static-property-for-in-iteration-expected.txt:
  • platform/mac-wk2/js/dom/dom-static-property-for-in-iteration-expected.txt:
  • platform/mac/inspector/model/remote-object-dom-expected.txt:
12:19 PM Changeset in webkit [249211] by dino@apple.com
  • 2 edits in trunk/Source/WebKitLegacy/mac

GenerateTAPI WebKitLegacy.tbd fails on internal iOS Simulator builds
https://bugs.webkit.org/show_bug.cgi?id=201200

Reviewed by Simon Fraser.

We want to include Foundation/NSURLDownload.h if we're on
a newer iOS.

  • Misc/WebDownload.h:
11:37 AM Changeset in webkit [249210] by Alan Coon
  • 7 edits in branches/safari-608-branch/Source

Versioning.

11:11 AM Changeset in webkit [249209] by weinig@apple.com
  • 4 edits in trunk/Source/WebCore

[WHLSL] Inline typedef'd types during Metal code generation to simplify generated code while also making it easier to read
https://bugs.webkit.org/show_bug.cgi?id=201185

Reviewed by Saam Barati.

The current Metal code generation generates many unnecessary typedefs during TypeNamer::emitMetalTypeDefinitions
such as 'typedef float2 type19;' that can be removed by just using resolved type whereever the typedef would have
been used. The only types that actually need to be predefined are the types that declare a new struct or enum, which
means we can stop emitting for AST::TypeReference, AST::Pointer, AST::Array, and AST::TypeDefinition. Instead, the
relevent mangledNameForType constructs the computed name on the fly.

This is a 25% speedup in the metal code generation phase.

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

(WebCore::WHLSL::Metal::FunctionDefinitionWriter::visit):
Switch to using auto rather than Mangled*Name when it is obvious and the actual return type
may need to become more complicated (e.g. MangledOrNativeTypeName).

  • Modules/webgpu/WHLSL/Metal/WHLSLTypeNamer.h:
  • Modules/webgpu/WHLSL/Metal/WHLSLTypeNamer.cpp:

(WebCore::WHLSL::Metal::TypeNamer::visit):
There is no need to generate typenames for AST::TypeDefinitions if they are never used.

(WebCore::WHLSL::Metal::TypeNamer::generateUniquedTypeName):
The only UnnamedType that needs a generated typename now is AST::ArrayReferenceType, which emits a struct interface.

(WebCore::WHLSL::Metal::TypeNamer::emitUnnamedTypeDefinition):
Stop generating type definitions for AST::TypeReference, AST::Pointer, AST::Array.

(WebCore::WHLSL::Metal::TypeNamer::emitNamedTypeDefinition):
Stop generating type definitions for AST::TypeDefinition.

(WebCore::WHLSL::Metal::TypeNamer::emitMetalTypeDefinitions):
Update for rename from m_unnamedTypeMapping to m_arrayReferenceTypeMapping.

(WebCore::WHLSL::Metal::TypeNamer::mangledNameForType):
Look into the types and generate a concrete type name when necessary. Lazily cache the constructed
names for AST::ArrayType and AST::Pointer.

10:40 AM Changeset in webkit [249208] by Keith Rollin
  • 13 edits in trunk

Remove support for macOS < 10.13 (part 2)
https://bugs.webkit.org/show_bug.cgi?id=201197
<rdar://problem/54759985>

Source/JavaScriptCore:

Update conditionals that reference WK_MACOS_1013 and suffixes like
_MACOS_SINCE_1013, assuming that we're always building on 10.13 or
later and that these conditionals are always True or False.

See Bug 200694 for earlier changes in this area.

Reviewed by Darin Adler.

  • Configurations/FeatureDefines.xcconfig:

Source/WebCore:

Reviewed by Darin Adler.

Update conditionals that reference WK_MACOS_1013 and suffixes like
_MACOS_SINCE_1013, assuming that we're always building on 10.13 or
later and that these conditionals are always True or False.

See Bug 200694 for earlier changes in this area.

No new tests -- no new or changed functionality.

  • Configurations/FeatureDefines.xcconfig:

Source/WebCore/PAL:

Reviewed by Darin Adler.

Update conditionals that reference WK_MACOS_1013 and suffixes like
_MACOS_SINCE_1013, assuming that we're always building on 10.13 or
later and that these conditionals are always True or False.

See Bug 200694 for earlier changes in this area.

  • Configurations/FeatureDefines.xcconfig:

Source/WebKit:

Reviewed by Darin Adler.

Update conditionals that reference WK_MACOS_1013 and suffixes like
_MACOS_SINCE_1013, assuming that we're always building on 10.13 or
later and that these conditionals are always True or False.

See Bug 200694 for earlier changes in this area.

  • Configurations/FeatureDefines.xcconfig:
  • Configurations/WebKit.xcconfig:

Source/WebKitLegacy/mac:

Reviewed by Darin Adler.

Update conditionals that reference WK_MACOS_1013 and suffixes like
_MACOS_SINCE_1013, assuming that we're always building on 10.13 or
later and that these conditionals are always True or False.

See Bug 200694 for earlier changes in this area.

  • Configurations/FeatureDefines.xcconfig:

Tools:

Reviewed by Darin Adler.

Update conditionals that reference WK_MACOS_1013 and suffixes like
_MACOS_SINCE_1013, assuming that we're always building on 10.13 or
later and that these conditionals are always True or False.

See Bug 200694 for earlier changes in this area.

  • TestWebKitAPI/Configurations/FeatureDefines.xcconfig:
10:20 AM Changeset in webkit [249207] by Chris Dumez
  • 12 edits in trunk

geolocation.watchPosition() / getCurrentPosition() should return PERMISSION_DENIED when context is not secure
https://bugs.webkit.org/show_bug.cgi?id=201221

Reviewed by Ryosuke Niwa.

Source/WebCore:

geolocation.watchPosition() / getCurrentPosition() should return PERMISSION_DENIED when context is not secure,
not POSITION_UNAVAILABLE. Both Gecko and Blink agree on PERMISSION_DENIED.

No new tests, updated existing tests.

  • Modules/geolocation/Geolocation.cpp:

(WebCore::Geolocation::startRequest):

LayoutTests:

Update layout tests to reflect behavior change.

  • fast/dom/Geolocation/dataURL-getCurrentPosition-expected.txt:
  • fast/dom/Geolocation/dataURL-getCurrentPosition.html:
  • fast/dom/Geolocation/dataURL-watchPosition-expected.txt:
  • fast/dom/Geolocation/dataURL-watchPosition.html:
  • http/tests/security/resources/checkThatPositionErrorCallbackIsCalledWithPositionUnavailableForGeolocationMethod.js:

(didReceiveError):
(checkThatPositionErrorCallbackIsCalledWithPositionUnavailableForGeolocationMethod):

  • http/tests/security/sandboxed-iframe-geolocation-getCurrentPosition-expected.txt:
  • http/tests/security/sandboxed-iframe-geolocation-getCurrentPosition.html:
  • http/tests/security/sandboxed-iframe-geolocation-watchPosition-expected.txt:
  • http/tests/security/sandboxed-iframe-geolocation-watchPosition.html:
10:14 AM Changeset in webkit [249206] by Chris Dumez
  • 6 edits in trunk/Source/WebKit

Have WebPageProxy generate the page identifier by itself
https://bugs.webkit.org/show_bug.cgi?id=201223

Reviewed by Ryosuke Niwa.

Have WebPageProxy generate the page identifier by itself instead of
having the WebProcessProxy do it.

  • UIProcess/ServiceWorkerProcessProxy.cpp:

(WebKit::m_serviceWorkerPageID):

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::create):
(WebKit::WebPageProxy::WebPageProxy):

  • UIProcess/WebPageProxy.h:
  • UIProcess/WebProcessProxy.cpp:

(WebKit::WebProcessProxy::createWebPage):
(WebKit::WebProcessProxy::generatePageID): Deleted.

  • UIProcess/WebProcessProxy.h:
10:04 AM Changeset in webkit [249205] by aboya@igalia.com
  • 29 edits
    7 adds
    3 deletes in trunk

[MSE][GStreamer] WebKitMediaSrc rework
https://bugs.webkit.org/show_bug.cgi?id=199719

Reviewed by Xabier Rodriguez-Calvar.

LayoutTests/imported/w3c:

  • web-platform-tests/html/semantics/embedded-content/the-video-element/timeout_on_seek.py: Added.

(parse_range):
(main):

  • web-platform-tests/html/semantics/embedded-content/the-video-element/video_timeupdate_on_seek.html: Added.
  • web-platform-tests/html/semantics/embedded-content/the-video-element/video_timeupdate_on_seek-expected.txt: Added.
  • web-platform-tests/media-source/mediasource-buffered-seek-expected.txt: Added.
  • web-platform-tests/media-source/mediasource-buffered-seek.html: Added.

Source/WebCore:

This patch reworks the WebKitMediaSrc element and many of the player
private methods that interacted with it.

In comparison with the old WebKitMediaSrc, in the new one seeks have
been massively simplified.

The new WebKitMediaSrc no longer relies on a bin or appsrc, having
greater control over its operation. This made it comparatively much
easier to implement features such as seek before playback or
single-stream flushing.

stream-collection events are emitted from the WebKitMediaSrc to reuse
the track handling in MediaPlayerPrivateGStreamer for playbin3, which
is now used for MSE pipelines.

Additional tests have been added to check some assumptions, and some
bugs that have surfaced with the changes have been fixed but no new
features (like multi-track support) are implemented in this patch.

One instance of these bugs is resized events, which were previously
being emitted when frames with different resolutions where appended.
This is a wrong behavior that has not been preserved in the rework, as
resize events should be emitted when the frames are shown, not
just appended.

There are subtler bugfixes, such as ignoring PTS-less frames in
AppendPipeline::appsinkNewSample(). These frames are problematic for
MSE, yet they were somehow passing through the pipelines. Since
WebKitMediaSrc is stricter with assertions, these have to be filtered.

This test gets rid of !m_mseSeekCompleted assertion failures in tests
and potentially other hard to debug bugs in the previous seek
algorithm.

This patch makes the following existing tests pass:

imported/w3c/web-platform-tests/media-source/mediasource-config-change-webm-a-bitrate.html
imported/w3c/web-platform-tests/media-source/mediasource-config-change-webm-v-framesize.html

New test: imported/w3c/web-platform-tests/media-source/mediasource-buffered-seek.html
New test: LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-video-element/video_timeupdate_on_seek.html (non-MSE related)

  • Headers.cmake:
  • platform/GStreamer.cmake:
  • platform/graphics/gstreamer/GRefPtrGStreamer.cpp:

(WTF::adoptGRef):
(WTF::refGPtr<GstMiniObject>):
(WTF::derefGPtr<GstMiniObject>):

  • platform/graphics/gstreamer/GRefPtrGStreamer.h:
  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:

(WebCore::MediaPlayerPrivateGStreamer::playbackPosition const):
(WebCore::MediaPlayerPrivateGStreamer::paused const):
(WebCore::MediaPlayerPrivateGStreamer::updateTracks):
(WebCore::MediaPlayerPrivateGStreamer::enableTrack):
(WebCore::MediaPlayerPrivateGStreamer::notifyPlayerOfVideo):
(WebCore::MediaPlayerPrivateGStreamer::sourceSetup):
(WebCore::MediaPlayerPrivateGStreamer::handleSyncMessage):
(WebCore::MediaPlayerPrivateGStreamer::createGSTPlayBin):

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:

(WebCore::MediaPlayerPrivateGStreamer::invalidateCachedPosition):

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:

(WebCore::MediaPlayerPrivateGStreamerBase::naturalSize const):
(WebCore::MediaPlayerPrivateGStreamerBase::naturalSizeFromCaps const):
(WebCore::MediaPlayerPrivateGStreamerBase::samplesHaveDifferentNaturalSize const):
(WebCore::MediaPlayerPrivateGStreamerBase::triggerRepaint):

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.h:
  • platform/graphics/gstreamer/MediaSampleGStreamer.cpp:

(WebCore::MediaSampleGStreamer::MediaSampleGStreamer):

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

(WebCore::AppendPipeline::appsinkNewSample):
(WebCore::AppendPipeline::connectDemuxerSrcPadToAppsink):

  • platform/graphics/gstreamer/mse/AppendPipeline.h:

(WebCore::AppendPipeline::appsinkCaps):
(WebCore::AppendPipeline::streamType):
(WebCore::AppendPipeline::demuxerSrcPadCaps):

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

(WebCore::MediaPlayerPrivateGStreamerMSE::~MediaPlayerPrivateGStreamerMSE):
(WebCore::MediaPlayerPrivateGStreamerMSE::load):
(WebCore::MediaPlayerPrivateGStreamerMSE::play):
(WebCore::MediaPlayerPrivateGStreamerMSE::pause):
(WebCore::MediaPlayerPrivateGStreamerMSE::seek):
(WebCore::MediaPlayerPrivateGStreamerMSE::seekCompleted):
(WebCore::MediaPlayerPrivateGStreamerMSE::setReadyState):
(WebCore::MediaPlayerPrivateGStreamerMSE::sourceSetup):
(WebCore::MediaPlayerPrivateGStreamerMSE::updateStates):
(WebCore::MediaPlayerPrivateGStreamerMSE::didEnd):
(WebCore::MediaPlayerPrivateGStreamerMSE::unblockDurationChanges):
(WebCore::MediaPlayerPrivateGStreamerMSE::durationChanged):
(WebCore::MediaPlayerPrivateGStreamerMSE::trackDetected):

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

(WebCore::MediaSourceClientGStreamerMSE::addSourceBuffer):
(WebCore::MediaSourceClientGStreamerMSE::removedFromMediaSource):
(WebCore::MediaSourceClientGStreamerMSE::flush):
(WebCore::MediaSourceClientGStreamerMSE::enqueueSample):
(WebCore::MediaSourceClientGStreamerMSE::isReadyForMoreSamples):
(WebCore::MediaSourceClientGStreamerMSE::notifyClientWhenReadyForMoreSamples):
(WebCore::MediaSourceClientGStreamerMSE::allSamplesInTrackEnqueued):

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

(WebCore::MediaSourceGStreamer::markEndOfStream):
(WebCore::MediaSourceGStreamer::unmarkEndOfStream):
(WebCore::MediaSourceGStreamer::waitForSeekCompleted):

  • platform/graphics/gstreamer/mse/MediaSourceGStreamer.h:
  • platform/graphics/gstreamer/mse/PlaybackPipeline.cpp: Removed.
  • platform/graphics/gstreamer/mse/PlaybackPipeline.h: Removed.
  • platform/graphics/gstreamer/mse/SourceBufferPrivateGStreamer.cpp:

(WebCore::SourceBufferPrivateGStreamer::enqueueSample):
(WebCore::SourceBufferPrivateGStreamer::isReadyForMoreSamples):
(WebCore::SourceBufferPrivateGStreamer::notifyClientWhenReadyForMoreSamples):

  • platform/graphics/gstreamer/mse/SourceBufferPrivateGStreamer.h:
  • platform/graphics/gstreamer/mse/WebKitMediaSourceGStreamer.cpp:

(WebKitMediaSrcPrivate::streamByName):
(Stream::Stream):
(Stream::StreamingMembers::StreamingMembers):
(Stream::StreamingMembers::durationEnqueued const):
(findPipeline):
(webkit_media_src_class_init):
(webkit_media_src_init):
(webKitMediaSrcFinalize):
(debugProbe):
(collectionPlusStream):
(collectionMinusStream):
(gstStreamType):
(webKitMediaSrcAddStream):
(webKitMediaSrcRemoveStream):
(webKitMediaSrcActivateMode):
(webKitMediaSrcPadLinked):
(webKitMediaSrcStreamNotifyLowWaterLevel):
(webKitMediaSrcLoop):
(webKitMediaSrcEnqueueObject):
(webKitMediaSrcEnqueueSample):
(webKitMediaSrcEnqueueEvent):
(webKitMediaSrcEndOfStream):
(webKitMediaSrcIsReadyForMoreSamples):
(webKitMediaSrcNotifyWhenReadyForMoreSamples):
(webKitMediaSrcChangeState):
(webKitMediaSrcStreamFlushStart):
(webKitMediaSrcStreamFlushStop):
(webKitMediaSrcFlush):
(webKitMediaSrcSeek):
(countStreamsOfType):
(webKitMediaSrcGetProperty):
(webKitMediaSrcUriGetType):
(webKitMediaSrcGetProtocols):
(webKitMediaSrcGetUri):
(webKitMediaSrcSetUri):
(webKitMediaSrcUriHandlerInit):

  • platform/graphics/gstreamer/mse/WebKitMediaSourceGStreamer.h:
  • platform/graphics/gstreamer/mse/WebKitMediaSourceGStreamerPrivate.h: Removed.

Tools:

Added WebKitMediaSourceGStreamer.cpp to the GStreamer-style coding
whitelist.

  • Scripts/webkitpy/style/checker.py:

LayoutTests:

Updated expectations.

  • platform/gtk/TestExpectations:
  • platform/mac/TestExpectations:
  • platform/ios-simulator/TestExpectations:
  • platform/mac/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-video-element/video_timeupdate_on_seek-expected.txt: Added.
9:58 AM Changeset in webkit [249204] by ap@apple.com
  • 2 edits in trunk/Tools

Updating inactive contributors in contributors.json.

  • Scripts/webkitpy/common/config/contributors.json:
9:57 AM Changeset in webkit [249203] by Simon Fraser
  • 3 edits in trunk/Source/WebCore

Have RenderSVGBlock compute visual overflow just like everyone else
https://bugs.webkit.org/show_bug.cgi?id=201211

Reviewed by Zalan Bujtas.

RenderSVGBlock overrode visualOverflowRect() just to account for text shadow. This prevents callers
optimizing calls to visualOverflowRect(), so instead have RenderSVGBlock implement computeOverflow()
and call addVisualOverflow().

  • rendering/svg/RenderSVGBlock.cpp:

(WebCore::RenderSVGBlock::computeOverflow):
(WebCore::RenderSVGBlock::visualOverflowRect const): Deleted.

  • rendering/svg/RenderSVGBlock.h:
9:42 AM Changeset in webkit [249202] by Jonathan Bedard
  • 3 edits in trunk/Tools

results.webkit.org: Auto-expand single configurations
https://bugs.webkit.org/show_bug.cgi?id=201218

Rubber-stamped by Aakash Jain.

  • resultsdbpy/resultsdbpy/view/static/js/timeline.js:

(TimelineFromEndpoint.toString): Automatically expand timeline when only one
configuration has been specified.

  • resultsdbpy/resultsdbpy/view/static/library/js/components/TimelineComponents.js:

(prototype.ExpandableSeriesComponent): Add options so that the caller can set whether a timeline
is expanded or collapsed by default.

9:28 AM Changeset in webkit [249201] by jer.noble@apple.com
  • 2 edits in trunk/LayoutTests

Flaky Test: fullscreen/full-screen-request-removed-with-raf.html
https://bugs.webkit.org/show_bug.cgi?id=201188

Reviewed by Alexey Proskuryakov.

  • fullscreen/full-screen-request-removed-with-raf.html:
8:45 AM Changeset in webkit [249200] by Jonathan Bedard
  • 4 edits in trunk/Tools

results.webkit.org: Sanitize all commit arguments on upload
https://bugs.webkit.org/show_bug.cgi?id=201189
<rdar://problem/54564837>

Reviewed by Aakash Jain.

  • resultsdbpy/resultsdbpy/controller/commit.py:

(Commit.init): Only allow commits to be constructed with valid values.

  • resultsdbpy/resultsdbpy/controller/commit_controller.py:

(CommitController.register): Strip potential API key.

  • resultsdbpy/resultsdbpy/controller/commit_unittest.py:

(CommitUnittest.test_invalid): Test that commits which contain html inside the
repository_id, branch or commit id are rejected.

8:36 AM Changeset in webkit [249199] by mark.lam@apple.com
  • 8 edits in trunk/Source/JavaScriptCore

Gardening: Rebase test results after r249175.
https://bugs.webkit.org/show_bug.cgi?id=201172

Not reviewed.

  • Scripts/tests/builtins/expected/WebCore-AnotherGuardedInternalBuiltin-Separate.js-result:
  • Scripts/tests/builtins/expected/WebCore-ArbitraryConditionalGuard-Separate.js-result:
  • Scripts/tests/builtins/expected/WebCore-GuardedBuiltin-Separate.js-result:
  • Scripts/tests/builtins/expected/WebCore-GuardedInternalBuiltin-Separate.js-result:
  • Scripts/tests/builtins/expected/WebCore-UnguardedBuiltin-Separate.js-result:
  • Scripts/tests/builtins/expected/WebCore-xmlCasingTest-Separate.js-result:
  • Scripts/tests/builtins/expected/WebCoreJSBuiltins.h-result:
8:15 AM Changeset in webkit [249198] by rniwa@webkit.org
  • 6 edits in trunk/Source/WebCore

REGRESSION (r248807): Objects stored in ElementRareData are leaked
https://bugs.webkit.org/show_bug.cgi?id=200954

Reviewed by Antti Koivisto.

Use a custom deleter in std::unique_ptr to call the correct destructor instead of making
NodeRareData's destructor virtual. Added NodeRareData::isElementRareData to differentiate
ElementRareData and NodeRareData by borrowing 1 bit from the frame count.

No new tests since there should be no behavioral change.

  • dom/ElementRareData.h:

(WebCore::ElementRareData::ElementRareData):

  • dom/Node.cpp:

(WebCore::Node::materializeRareData): Call the constructors of unique_ptr directly since
make_unique does not take a custom deleter. We can't add the support to makeUnique either
without making it three arguments since we need to cast ElementRareData to NodeRareData
in addition to specifying a custom deleter (normal casting wouldn't work due to
the presence of a custom deleter).
(WebCore::Node::NodeRareDataDeleter::operator() const): Added.

  • dom/Node.h:

(WebCore::Node::NodeRareDataDeleter): Added.

  • dom/NodeRareData.cpp:
  • dom/NodeRareData.h:

(WebCore::NodeRareData::NodeRareData): Makes newly added Type.
(WebCore::NodeRareData::isElementRareData): Added.
(WebCore::NodeRareData::~NodeRareData): Deleted.

4:52 AM Changeset in webkit [249197] by Claudio Saavedra
  • 2 edits in trunk/Source/WebCore

[SOUP] Shut compilation warning

Unreviewed. RELEASE_LOG_ERROR() needs a channel.

  • platform/network/soup/SoupNetworkSession.cpp:

(WebCore::SoupNetworkSession::setupHSTSEnforcer):

4:43 AM Changeset in webkit [249196] by Claudio Saavedra
  • 2 edits in trunk/Source/WebCore

[SOUP] Fix the debug build after r249192

Unreviewed build fix.

  • platform/network/soup/SoupNetworkSession.cpp:

(WebCore::SoupNetworkSession::setupHSTSEnforcer):

4:33 AM WebKitGTK/2.26.x created by Carlos Garcia Campos
3:53 AM Changeset in webkit [249195] by Carlos Garcia Campos
  • 1 copy in releases/WebKitGTK/webkit-2.26

Branch WebKitGTK for 2.26

3:22 AM Changeset in webkit [249194] by Carlos Garcia Campos
  • 26 edits
    2 adds in trunk

Unable to enter text in https://eat.fi
https://bugs.webkit.org/show_bug.cgi?id=193046

Reviewed by Ryosuke Niwa.

Source/WebCore:

This is because the button element inside the label is receiving the click event, which causes the form to be
submitted. According to the spec we should do nothing in this case, because button element is considered to be
interactive content.

"The activation behavior of a label element for events targeted at interactive content descendants of a label
element, and any descendants of those interactive content descendants, must be to do nothing."
https://html.spec.whatwg.org/#the-label-element

This patch adds HTMLElement::isInteractiveContent() according to the HTML spec:

"Interactive content is content that is specifically intended for user interaction.
a (if the href attribute is present), audio (if the controls attribute is present), button, details, embed,
iframe, img (if the usemap attribute is present), input (if the type attribute is not in the Hidden state),
label, object (if the usemap attribute is present), select, textarea, video (if the controls attribute is
present)"
https://html.spec.whatwg.org/#interactive-content-2

That's used in HTMLLabelElement::defaultEventHandler() using the helper method
isEventTargetedAtInteractiveDescendants() to decide whether to simulate a click event or do nothing.

  • html/HTMLAnchorElement.cpp:

(WebCore::HTMLAnchorElement::isInteractiveContent const):

  • html/HTMLAnchorElement.h:
  • html/HTMLButtonElement.h:
  • html/HTMLDetailsElement.h:
  • html/HTMLElement.h:

(WebCore::HTMLElement::isInteractiveContent const):

  • html/HTMLEmbedElement.h:
  • html/HTMLIFrameElement.h:
  • html/HTMLImageElement.cpp:

(WebCore::HTMLImageElement::isInteractiveContent const):

  • html/HTMLImageElement.h:
  • html/HTMLInputElement.cpp:

(WebCore::HTMLInputElement::isInteractiveContent const):

  • html/HTMLInputElement.h:
  • html/HTMLLabelElement.cpp:

(WebCore::HTMLLabelElement::isEventTargetedAtInteractiveDescendants const):
(WebCore::HTMLLabelElement::defaultEventHandler):

  • html/HTMLLabelElement.h:
  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::isInteractiveContent const):

  • html/HTMLMediaElement.h:
  • html/HTMLObjectElement.cpp:

(WebCore::HTMLObjectElement::isInteractiveContent const):

  • html/HTMLObjectElement.h:
  • html/HTMLSelectElement.h:
  • html/HTMLTextAreaElement.h:
  • html/HiddenInputType.h:
  • html/InputType.cpp:

(WebCore::InputType::isInteractiveContent const):

  • html/InputType.h:

LayoutTests:

Add new test imported for blink.

  • imported/blink/fast/forms/label/label-contains-other-interactive-content-expected.txt: Added.
  • imported/blink/fast/forms/label/label-contains-other-interactive-content.html: Added.
  • platform/ios-wk2/TestExpectations: Skip the new test because it requires eventSender.mouseDown/Up/MoveTo()
3:21 AM Changeset in webkit [249193] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebKit

REGRESSION(r243434): Wrong URL passed to WebKitWebView::load-failed when cancelling previous load
https://bugs.webkit.org/show_bug.cgi?id=201176

Reviewed by Žan Doberšek.

Use the current provisional/committed url when faking an error event, instead of the current active URI that can
be the pending api request of a new load.

  • UIProcess/API/glib/WebKitWebView.cpp:

(webkitWebViewWillStartLoad):

3:15 AM Changeset in webkit [249192] by Claudio Saavedra
  • 29 edits in trunk

[GTK][WPE] Implement HSTS for the soup network backend
https://bugs.webkit.org/show_bug.cgi?id=192074

Reviewed by Carlos Garcia Campos.

libsoup 2.67.1 introduced HSTS support via a SoupSessionFeature.
Add support to the soup network backend by adding the feature to
SoupNetworkSession and handling HSTS protocol upgrades, by
propagating the scheme change further to clients. This patch adds
the HSTS feature unconditionally, but it still possible to add
a boolean property to the web context class if desired.

Additionally, add API to the WebKitWebsiteDataManager to specify
the directory where the HSTS database is saved. If the directory
is not set or if the data manager is ephemeral, use a
non-persistent, memory only HSTS enforcer.

Implement as well the methods needed to clean-up and delete HSTS
Source/WebCore:

policies from the storage and expose the feature in GTK+ MiniBrowser's
about:data.

  • platform/network/soup/GUniquePtrSoup.h:
  • platform/network/soup/SoupNetworkSession.cpp:

(WebCore::hstsStorageDirectory):
(WebCore::SoupNetworkSession::SoupNetworkSession):
(WebCore::SoupNetworkSession::setHSTSPersistentStorage):
(WebCore::SoupNetworkSession::setupHSTSEnforcer):
(WebCore::SoupNetworkSession::getHostNamesWithHSTSCache):
(WebCore::SoupNetworkSession::deleteHSTSCacheForHostNames):
(WebCore::SoupNetworkSession::clearHSTSCache):

  • platform/network/soup/SoupNetworkSession.h:

Source/WebKit:

policies from the storage and expose the feature in GTK+
MiniBrowser's about:data.

  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::fetchWebsiteData):
(WebKit::NetworkProcess::deleteWebsiteData):
(WebKit::NetworkProcess::deleteWebsiteDataForOrigins):
(WebKit::NetworkProcess::deleteWebsiteDataForRegistrableDomains):
(WebKit::NetworkProcess::registrableDomainsWithWebsiteData):

  • NetworkProcess/NetworkProcess.h:

(WebKit::NetworkProcess::suppressesConnectionTerminationOnSystemChange const):

  • NetworkProcess/soup/NetworkDataTaskSoup.cpp:

(WebKit::NetworkDataTaskSoup::createRequest):
(WebKit::NetworkDataTaskSoup::clearRequest):
(WebKit::NetworkDataTaskSoup::shouldAllowHSTSPolicySetting const):
(WebKit::NetworkDataTaskSoup::shouldAllowHSTSProtocolUpgrade const):
(WebKit::NetworkDataTaskSoup::protocolUpgradedViaHSTS):
(WebKit::NetworkDataTaskSoup::hstsEnforced):

  • NetworkProcess/soup/NetworkDataTaskSoup.h:
  • NetworkProcess/soup/NetworkProcessSoup.cpp:

(WebKit::NetworkProcess::getHostNamesWithHSTSCache):
(WebKit::NetworkProcess::deleteHSTSCacheForHostNames):
(WebKit::NetworkProcess::clearHSTSCache):
(WebKit::NetworkProcess::platformInitializeNetworkProcess):

  • UIProcess/API/APIWebsiteDataStore.h:
  • UIProcess/API/glib/APIWebsiteDataStoreGLib.cpp:

(API::WebsiteDataStore::defaultHSTSDirectory):

  • UIProcess/API/glib/WebKitWebContext.cpp:

(webkitWebContextConstructed):

  • UIProcess/API/glib/WebKitWebsiteData.cpp:

(recordContainsSupportedDataTypes):
(toWebKitWebsiteDataTypes):

  • UIProcess/API/glib/WebKitWebsiteDataManager.cpp:

(webkitWebsiteDataManagerGetProperty):
(webkitWebsiteDataManagerSetProperty):
(webkitWebsiteDataManagerConstructed):
(webkit_website_data_manager_class_init):
(webkitWebsiteDataManagerGetDataStore):
(webkit_website_data_manager_get_hsts_cache_directory):
(toWebsiteDataTypes):

  • UIProcess/API/gtk/WebKitWebsiteData.h:
  • UIProcess/API/gtk/WebKitWebsiteDataManager.h:
  • UIProcess/API/gtk/docs/webkit2gtk-4.0-sections.txt:
  • UIProcess/API/wpe/WebKitWebsiteData.h:
  • UIProcess/API/wpe/WebKitWebsiteDataManager.h:
  • UIProcess/API/wpe/docs/wpe-1.0-sections.txt:
  • UIProcess/WebsiteData/WebsiteDataStoreConfiguration.cpp:

(WebKit::WebsiteDataStoreConfiguration::copy):

  • UIProcess/WebsiteData/WebsiteDataStoreConfiguration.h:

(WebKit::WebsiteDataStoreConfiguration::hstsStorageDirectory const):
(WebKit::WebsiteDataStoreConfiguration::setHSTSStorageDirectory):

Tools:

policies from the storage and expose the feature in GTK+
MiniBrowser's about:data.

  • MiniBrowser/gtk/main.c:

(gotWebsiteDataCallback):

  • TestWebKitAPI/Tests/WebKitGLib/TestWebsiteData.cpp:

(serverCallback):
(testWebsiteDataConfiguration):
(testWebsiteDataEphemeral):
(prepopulateHstsData):
(testWebsiteDataHsts):
(beforeAll):

  • TestWebKitAPI/glib/WebKitGLib/TestMain.h:

(Test::Test):

  • gtk/jhbuild.modules: Bump libsoup to 2.67.91 for the new APIs
  • wpe/jhbuild.modules: Ditto
  • MiniBrowser/gtk/main.c:

(gotWebsiteDataCallback):

12:10 AM Changeset in webkit [249191] by commit-queue@webkit.org
  • 15 edits
    4 adds in trunk

SVG2: Add length, item getter and item setter to all SVG lists
https://bugs.webkit.org/show_bug.cgi?id=199526

Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2019-08-28
Reviewed by Simon Fraser.

Source/WebCore:

-- Implement the SVG2 specs for SVG lists:
https://svgwg.org/svg2-draft/types.html#TermListInterface.

-- Match the arguments' names in the IDL files with the specs.

Tests: svg/dom/SVGLengthList-length-indexed-access.xhtml

svg/dom/SVGPathSegList-length-indexed-access.xhtml

  • svg/SVGLengthList.idl:
  • svg/SVGNumberList.idl:
  • svg/SVGPathSegList.h:
  • svg/SVGPathSegList.idl:
  • svg/SVGPointList.idl:
  • svg/SVGStringList.idl:
  • svg/SVGTransformList.idl:
  • svg/properties/SVGList.h:

(WebCore::SVGList::length const):
(WebCore::SVGList::setItem):

LayoutTests:

  • svg/custom/polyline-points-crash-expected.txt:
  • svg/dom/SVGLengthList-basics-expected.txt:
  • svg/dom/SVGLengthList-length-indexed-access-expected.txt: Added.
  • svg/dom/SVGLengthList-length-indexed-access.xhtml: Added.
  • svg/dom/SVGNumberList-basics-expected.txt:
  • svg/dom/SVGPathSegList-length-indexed-access-expected.txt: Added.
  • svg/dom/SVGPathSegList-length-indexed-access.xhtml: Added.
  • svg/dom/SVGPointList-basics-expected.txt:
  • svg/dom/SVGTransformList-basics-expected.txt:

Aug 27, 2019:

8:15 PM Changeset in webkit [249190] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

Fix applying diffs that only change file mode
https://bugs.webkit.org/show_bug.cgi?id=201191

Patch by James Darpinian <jdarpinian@google.com> on 2019-08-27
Reviewed by Daniel Bates.

  • Scripts/svn-apply:

(patch): Handle case of file mode change without content change

7:39 PM Changeset in webkit [249189] by aakash_jain@apple.com
  • 2 edits in trunk/Tools

[ews] Status bubble should be red for CANCELLED builds
https://bugs.webkit.org/show_bug.cgi?id=201204

Reviewed by Jonathan Bedard.

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

(StatusBubble._build_bubble):

6:40 PM Changeset in webkit [249188] by Fujii Hironori
  • 3 edits
    3 adds in trunk

Make FrameLoader::open() set outgoing referrer properly
https://bugs.webkit.org/show_bug.cgi?id=167050
Source/WebCore:

<rdar://problem/27972404>

Reviewed by Youenn Fablet.

In debug builds, an assertion failed in WebCore::SecurityPolicy::generateReferrerHeader:
ASSERTION FAILED: referrer == URL(URL(), referrer).strippedForUseAsReferrer()

In release builds, cached pages with a URL fragment sent its URL fragment in the referrer.

m_outgoingReferrer mistakenly had a URL fragment.

Test: http/tests/navigation/page-cache-fragment-referrer.html

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::open): Set m_outgoingReferrer by using
FrameLoader::setOutgoingReferrer to remove URL fragments.

LayoutTests:

Reviewed by Youenn Fablet.

  • http/tests/navigation/page-cache-fragment-referrer-expected.html: Added.
  • http/tests/navigation/page-cache-fragment-referrer.html: Added.
  • http/tests/navigation/resources/referrer.php: Added.
6:22 PM Changeset in webkit [249187] by Said Abou-Hallawa
  • 2 edits in trunk/Source/WebCore

Unreviewed. Build fix after r249175.

Fix the condition which generates the declaration of vm in
GenerateGetOwnPropertySlotByIndex.

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateGetOwnPropertySlotByIndex):

5:53 PM Changeset in webkit [249186] by Alan Coon
  • 1 copy in tags/Safari-608.2.10

Tag Safari-608.2.10.

5:10 PM Changeset in webkit [249185] by Devin Rousso
  • 7 edits in trunk

Web Inspector: replace uses of added utility Array.prototype.keySet with an actual Set
https://bugs.webkit.org/show_bug.cgi?id=201194

Reviewed by Ross Kirsling.

Source/WebInspectorUI:

They both have basically the same functionality, with one difference being that a Set can
work with arrays that have non-string values.

  • UserInterface/Base/Utilities.js:

(Array.prototype.keySet): Deleted.

  • UserInterface/Controllers/CodeMirrorCompletionController.js:

(WI.CodeMirrorCompletionController.prototype._generateJavaScriptCompletions):
(WI.CodeMirrorCompletionController.prototype._generateJavaScriptCompletions.matchKeywords):

  • UserInterface/Controllers/JavaScriptRuntimeCompletionProvider.js:

(WI.JavaScriptRuntimeCompletionProvider.completionControllerCompletionsNeeded.receivedPropertyNames):

LayoutTests:

  • inspector/unit-tests/array-utilities.html:
  • inspector/unit-tests/array-utilities-expected.txt:
4:48 PM Changeset in webkit [249184] by msaboff@apple.com
  • 5 edits in trunk/Source/JavaScriptCore

Update PACCage changes for builds without Gigacage, but with signed pointers
https://bugs.webkit.org/show_bug.cgi?id=201202

Reviewed by Saam Barati.

Factored out the untagging of pointers and added that to both the Gigacage enabled
and disabled code paths. Did this for the LLInt as well as the JITs.

  • JavaScriptCore.xcodeproj/project.pbxproj: Added arm64e.rb to offlineasm file list.
  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::cageTypedArrayStorage):

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::caged):

  • llint/LowLevelInterpreter64.asm:
4:39 PM Changeset in webkit [249183] by Justin Fan
  • 8 edits
    2 adds in trunk

[WebGPU] Implement GPUErrors for and relax GPUBuffer validation rules
https://bugs.webkit.org/show_bug.cgi?id=200852

Reviewed by Dean Jackson.

Source/WebCore:

Fix incorrect usage validation during GPUBuffer creation.
Implement GPUError reporting for GPUBuffer creation and methods.

Test: webgpu/buffer-errors.html

  • Modules/webgpu/WebGPUBuffer.cpp:

(WebCore::WebGPUBuffer::create):
(WebCore::WebGPUBuffer::WebGPUBuffer):
(WebCore::WebGPUBuffer::unmap):
(WebCore::WebGPUBuffer::destroy):
(WebCore::WebGPUBuffer::rejectOrRegisterPromiseCallback):

  • Modules/webgpu/WebGPUBuffer.h: Now inherits from GPUObjectBase.
  • Modules/webgpu/WebGPUDevice.cpp:

(WebCore::WebGPUDevice::createBuffer const):
(WebCore::WebGPUDevice::createBufferMapped const):

  • platform/graphics/gpu/GPUBuffer.h: No longer inherits from GPUObjectBase.
  • platform/graphics/gpu/GPUObjectBase.h:

(WebCore::GPUObjectBase::errorScopes):
(WebCore::GPUObjectBase::generateError): Deleted.

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

(WebCore::GPUBuffer::validateBufferUsage):
(WebCore::GPUBuffer::tryCreate): Alignment issue should be general WebGPU requirement.
(WebCore::GPUBuffer::GPUBuffer):
(WebCore::GPUBuffer::~GPUBuffer): Must do cleanup without generating errors.
(WebCore::GPUBuffer::registerMappingCallback):
(WebCore::GPUBuffer::copyStagingBufferToGPU):
(WebCore::GPUBuffer::unmap):
(WebCore::GPUBuffer::destroy):

LayoutTests:

Add a test to ensure GPUBuffer errors are generated properly.

  • webgpu/buffer-errors-expected.txt: Added.
  • webgpu/buffer-errors.html: Added.
3:43 PM Changeset in webkit [249182] by Adrian Perez de Castro
  • 1 copy in releases/WPE WebKit/webkit-2.24.3

WPE WebKit 2.24.3

3:42 PM Changeset in webkit [249181] by Adrian Perez de Castro
  • 4 edits in releases/WebKitGTK/webkit-2.24

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

.:

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

Source/WebKit:

  • wpe/NEWS: Add release noes for 2.24.3
3:31 PM Changeset in webkit [249180] by Adrian Perez de Castro
  • 1 copy in releases/WebKitGTK/webkit-2.24.4

WebKitGTK 2.24.4

3:29 PM Changeset in webkit [249179] by Adrian Perez de Castro
  • 4 edits in releases/WebKitGTK/webkit-2.24

Unreviewed. Update OptionsGTK.cmake and NEWS for the 2.24.4 release

.:

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

Source/WebKit:

  • gtk/NEWS: Add release notes for 2.24.4
3:29 PM Changeset in webkit [249178] by Adrian Perez de Castro
  • 2 edits in releases/WebKitGTK/webkit-2.24

Merged r248954 - [GTK][WPE] Gtk-Doc fails with build options which need cooperation between CFLAGS and LDFLAGS
https://bugs.webkit.org/show_bug.cgi?id=200987

Reviewed by Philippe Normand.

Only CFLAGS was being set before trying to generate the documentation
but not LDFLAGS, which could cause errors when gtk-doc tries to link
a generated program when the compiler flags would also require usage
of certain linker flags later on.

  • Source/cmake/GtkDoc.cmake: Also set LDFLAGS in the environment when

invoking Tools/gtkdoc/generate-gtkdoc.

3:21 PM Changeset in webkit [249177] by Alan Bujtas
  • 9 edits
    1 copy in trunk/Source/WebCore

[LFC][TFC] Layout and position the cell boxes
https://bugs.webkit.org/show_bug.cgi?id=201192
<rdar://problem/54758638>

Reviewed by Antti Koivisto.

Add a very basic (and faily incomplete) table cell layout logic. This is mostly WIP.

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

(WebCore::Layout::FormattingContext::Geometry::contentHeightForFormattingContextRoot):
(WebCore::Layout::contentHeightForFormattingContextRoot): Deleted.

  • layout/tableformatting/TableFormattingContext.cpp:

(WebCore::Layout::TableFormattingContext::layout const):
(WebCore::Layout::TableFormattingContext::computedTableWidth const):

  • layout/tableformatting/TableFormattingContext.h:
  • layout/tableformatting/TableFormattingContextGeometry.cpp: Copied from Source/WebCore/layout/tableformatting/TableFormattingContext.h.

(WebCore::Layout::TableFormattingContext::Geometry::tableCellHeightAndMargin):

  • layout/tableformatting/TableGrid.cpp:

(WebCore::Layout::TableGrid::Column::setLogicalLeft):
(WebCore::Layout::TableGrid::Column::logicalLeft const):

  • layout/tableformatting/TableGrid.h:

(WebCore::Layout::TableGrid::Column::logicalRight const):
(WebCore::Layout::TableGrid::Row::setLogicalTop):
(WebCore::Layout::TableGrid::Row::logicalTop const):
(WebCore::Layout::TableGrid::Row::setLogicalHeight):
(WebCore::Layout::TableGrid::Row::logicalHeight const):
(WebCore::Layout::TableGrid::Row::logicalBottom const):

3:20 PM Changeset in webkit [249176] by russell_e@apple.com
  • 2 edits in trunk/LayoutTests

Test Gardening for scrollingcoordinator/ios/scroll-position-after-reattach.html
rdar://52961406

Unreviewed Test Gardening.

  • platform/ios/TestExpectations:
3:14 PM Changeset in webkit [249175] by mark.lam@apple.com
  • 416 edits in trunk/Source

Refactor to use VM& instead of VM* at as many places as possible.
https://bugs.webkit.org/show_bug.cgi?id=201172

Reviewed by Yusuke Suzuki.

Source/JavaScriptCore:

Using VM& documents more clearly that the VM pointer is expected to never be null
in most cases. There are a few places where it can be null (e.g JSLock, and
DFG::Plan). Those will be left using a VM*.

Also converted some uses of ExecState* to using VM& instead since the ExecState*
is only there to fetch the VM pointer. Doing this also reduces the number of
times we have to compute VM* from ExecState*.

This patch is not exhaustive in converting to use VM&, but applies the change to
many commonly used pieces of code for a start.

Also fixed a missing exception check in JSString::toIdentifier() and
JSValue::toPropertyKey() exposed by this patch.

  • API/APICast.h:

(toJS):

  • API/JSAPIGlobalObject.mm:

(JSC::JSAPIGlobalObject::moduleLoaderResolve):
(JSC::JSAPIGlobalObject::moduleLoaderImportModule):
(JSC::JSAPIGlobalObject::moduleLoaderFetch):
(JSC::JSAPIGlobalObject::moduleLoaderCreateImportMetaProperties):
(JSC::JSAPIGlobalObject::loadAndEvaluateJSScriptModule):

  • API/JSCallbackConstructor.cpp:

(JSC::JSCallbackConstructor::finishCreation):

  • API/JSCallbackObjectFunctions.h:

(JSC::JSCallbackObject<Parent>::asCallbackObject):
(JSC::JSCallbackObject<Parent>::~JSCallbackObject):
(JSC::JSCallbackObject<Parent>::getOwnPropertySlotByIndex):
(JSC::JSCallbackObject<Parent>::putByIndex):
(JSC::JSCallbackObject<Parent>::deletePropertyByIndex):
(JSC::JSCallbackObject<Parent>::getOwnNonIndexPropertyNames):

  • API/JSContext.mm:

(-[JSContext dependencyIdentifiersForModuleJSScript:]):

  • API/JSObjectRef.cpp:

(JSObjectMakeFunction):
(classInfoPrivate):
(JSObjectGetPrivate):
(JSObjectSetPrivate):
(JSObjectCopyPropertyNames):
(JSPropertyNameAccumulatorAddName):
(JSObjectGetProxyTarget):

  • API/JSScriptRef.cpp:

(parseScript):

  • API/JSValueRef.cpp:

(JSValueMakeString):

  • API/OpaqueJSString.cpp:

(OpaqueJSString::identifier const):

  • API/glib/JSCContext.cpp:

(jsc_context_check_syntax):

  • KeywordLookupGenerator.py:

(Trie.printSubTreeAsC):

  • Scripts/wkbuiltins/builtins_generate_wrapper_header.py:

(BuiltinsWrapperHeaderGenerator.generate_constructor):

  • Scripts/wkbuiltins/builtins_templates.py:
  • bindings/ScriptFunctionCall.cpp:

(Deprecated::ScriptCallArgumentHandler::appendArgument):
(Deprecated::ScriptFunctionCall::call):

  • bindings/ScriptValue.cpp:

(Inspector::jsToInspectorValue):

  • builtins/BuiltinExecutables.cpp:

(JSC::BuiltinExecutables::createExecutable):

  • builtins/BuiltinNames.cpp:

(JSC::BuiltinNames::BuiltinNames):

  • builtins/BuiltinNames.h:

(JSC::BuiltinNames::getPublicName const):

  • bytecode/BytecodeDumper.cpp:

(JSC::BytecodeDumper<Block>::vm const):

  • bytecode/BytecodeDumper.h:
  • bytecode/BytecodeGeneratorification.cpp:

(JSC::BytecodeGeneratorification::BytecodeGeneratorification):
(JSC::BytecodeGeneratorification::storageForGeneratorLocal):
(JSC::BytecodeGeneratorification::run):

  • bytecode/BytecodeIntrinsicRegistry.cpp:

(JSC::BytecodeIntrinsicRegistry::sentinelMapBucketValue):
(JSC::BytecodeIntrinsicRegistry::sentinelSetBucketValue):

  • bytecode/CallVariant.h:

(JSC::CallVariant::internalFunction const):
(JSC::CallVariant::function const):
(JSC::CallVariant::isClosureCall const):
(JSC::CallVariant::executable const):
(JSC::CallVariant::functionExecutable const):
(JSC::CallVariant::nativeExecutable const):

  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::dumpSource):
(JSC::CodeBlock::CodeBlock):
(JSC::CodeBlock::setConstantIdentifierSetRegisters):
(JSC::CodeBlock::setNumParameters):
(JSC::CodeBlock::finalizeBaselineJITInlineCaches):
(JSC::CodeBlock::unlinkIncomingCalls):
(JSC::CodeBlock::replacement):
(JSC::CodeBlock::computeCapabilityLevel):
(JSC::CodeBlock::noticeIncomingCall):
(JSC::CodeBlock::nameForRegister):
(JSC::CodeBlock::insertBasicBlockBoundariesForControlFlowProfiler):

  • bytecode/CodeBlock.h:

(JSC::CodeBlock::vm const):
(JSC::CodeBlock::numberOfArgumentValueProfiles):
(JSC::CodeBlock::valueProfileForArgument):

  • bytecode/DeferredSourceDump.cpp:

(JSC::DeferredSourceDump::DeferredSourceDump):

  • bytecode/EvalCodeBlock.h:
  • bytecode/FunctionCodeBlock.h:
  • bytecode/GetByIdStatus.cpp:

(JSC::GetByIdStatus::computeFromLLInt):

  • bytecode/GlobalCodeBlock.h:

(JSC::GlobalCodeBlock::GlobalCodeBlock):

  • bytecode/ModuleProgramCodeBlock.h:
  • bytecode/ObjectAllocationProfileInlines.h:

(JSC::ObjectAllocationProfileBase<Derived>::possibleDefaultPropertyCount):

  • bytecode/PolyProtoAccessChain.cpp:

(JSC::PolyProtoAccessChain::create):

  • bytecode/ProgramCodeBlock.h:
  • bytecode/PropertyCondition.cpp:

(JSC::PropertyCondition::isWatchableWhenValid const):

  • bytecode/PutByIdStatus.cpp:

(JSC::PutByIdStatus::computeFromLLInt):

  • bytecode/StructureStubInfo.cpp:

(JSC::StructureStubInfo::initGetByIdSelf):
(JSC::StructureStubInfo::initPutByIdReplace):
(JSC::StructureStubInfo::initInByIdSelf):
(JSC::StructureStubInfo::addAccessCase):
(JSC::StructureStubInfo::visitWeakReferences):

  • bytecode/UnlinkedCodeBlock.cpp:

(JSC::UnlinkedCodeBlock::UnlinkedCodeBlock):

  • bytecode/UnlinkedCodeBlock.h:

(JSC::UnlinkedCodeBlock::addSetConstant):
(JSC::UnlinkedCodeBlock::addConstant):
(JSC::UnlinkedCodeBlock::addFunctionDecl):
(JSC::UnlinkedCodeBlock::addFunctionExpr):

  • bytecode/UnlinkedEvalCodeBlock.h:
  • bytecode/UnlinkedFunctionCodeBlock.h:
  • bytecode/UnlinkedFunctionExecutable.cpp:

(JSC::generateUnlinkedFunctionCodeBlock):
(JSC::UnlinkedFunctionExecutable::UnlinkedFunctionExecutable):

  • bytecode/UnlinkedFunctionExecutable.h:
  • bytecode/UnlinkedGlobalCodeBlock.h:

(JSC::UnlinkedGlobalCodeBlock::UnlinkedGlobalCodeBlock):

  • bytecode/UnlinkedModuleProgramCodeBlock.h:
  • bytecode/UnlinkedProgramCodeBlock.h:
  • bytecompiler/BytecodeGenerator.cpp:

(JSC::BytecodeGenerator::BytecodeGenerator):
(JSC::BytecodeGenerator::pushLexicalScopeInternal):
(JSC::BytecodeGenerator::emitDirectPutById):
(JSC::BytecodeGenerator::getVariablesUnderTDZ):
(JSC::BytecodeGenerator::addBigIntConstant):
(JSC::BytecodeGenerator::addTemplateObjectConstant):
(JSC::BytecodeGenerator::emitNewDefaultConstructor):
(JSC::BytecodeGenerator::emitSetFunctionNameIfNeeded):

  • bytecompiler/BytecodeGenerator.h:

(JSC::BytecodeGenerator::vm const):
(JSC::BytecodeGenerator::propertyNames const):
(JSC::BytecodeGenerator::emitNodeInTailPosition):
(JSC::BytecodeGenerator::emitDefineClassElements):
(JSC::BytecodeGenerator::emitNodeInConditionContext):

  • bytecompiler/NodesCodegen.cpp:

(JSC::RegExpNode::emitBytecode):
(JSC::ArrayNode::emitBytecode):
(JSC::FunctionCallResolveNode::emitBytecode):
(JSC::BytecodeIntrinsicNode::emit_intrinsic_getByIdDirectPrivate):
(JSC::BytecodeIntrinsicNode::emit_intrinsic_putByIdDirectPrivate):
(JSC::BytecodeIntrinsicNode::emit_intrinsic_toObject):
(JSC::InstanceOfNode::emitBytecode):

  • debugger/Debugger.cpp:
  • debugger/DebuggerParseData.cpp:

(JSC::gatherDebuggerParseData):

  • debugger/DebuggerScope.cpp:

(JSC::DebuggerScope::next):
(JSC::DebuggerScope::name const):
(JSC::DebuggerScope::location const):

  • dfg/DFGDesiredIdentifiers.cpp:

(JSC::DFG::DesiredIdentifiers::reallyAdd):

  • dfg/DFGDesiredWatchpoints.cpp:

(JSC::DFG::ArrayBufferViewWatchpointAdaptor::add):
(JSC::DFG::AdaptiveStructureWatchpointAdaptor::add):

  • dfg/DFGFrozenValue.h:

(JSC::DFG::FrozenValue::FrozenValue):

  • dfg/DFGGraph.cpp:

(JSC::DFG::Graph::canOptimizeStringObjectAccess):

  • dfg/DFGJITCompiler.cpp:

(JSC::DFG::JITCompiler::linkOSRExits):
(JSC::DFG::JITCompiler::compileExceptionHandlers):
(JSC::DFG::JITCompiler::link):
(JSC::DFG::emitStackOverflowCheck):
(JSC::DFG::JITCompiler::compileFunction):
(JSC::DFG::JITCompiler::exceptionCheck):
(JSC::DFG::JITCompiler::makeCatchOSREntryBuffer):

  • dfg/DFGJITCompiler.h:

(JSC::DFG::JITCompiler::exceptionCheckWithCallFrameRollback):
(JSC::DFG::JITCompiler::fastExceptionCheck):
(JSC::DFG::JITCompiler::vm):

  • dfg/DFGLazyJSValue.cpp:

(JSC::DFG::LazyJSValue::getValue const):
(JSC::DFG::LazyJSValue::emit const):

  • dfg/DFGOSREntry.cpp:

(JSC::DFG::prepareOSREntry):

  • dfg/DFGOSRExit.cpp:

(JSC::DFG::OSRExit::compileOSRExit):
(JSC::DFG::OSRExit::debugOperationPrintSpeculationFailure):

  • dfg/DFGOSRExitCompilerCommon.h:

(JSC::DFG::adjustFrameAndStackInOSRExitCompilerThunk):

  • dfg/DFGOperations.cpp:

(JSC::DFG::newTypedArrayWithSize):
(JSC::DFG::binaryOp):
(JSC::DFG::bitwiseBinaryOp):

  • dfg/DFGPlan.cpp:

(JSC::DFG::Plan::Plan):

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::emitAllocateRawObject):
(JSC::DFG::SpeculativeJIT::compileStringSlice):
(JSC::DFG::SpeculativeJIT::compileCurrentBlock):
(JSC::DFG::SpeculativeJIT::compileCheckTraps):
(JSC::DFG::SpeculativeJIT::compileGetByValOnString):
(JSC::DFG::SpeculativeJIT::compileFromCharCode):
(JSC::DFG::SpeculativeJIT::compileStringZeroLength):
(JSC::DFG::SpeculativeJIT::compileLogicalNotStringOrOther):
(JSC::DFG::SpeculativeJIT::emitStringBranch):
(JSC::DFG::SpeculativeJIT::emitStringOrOtherBranch):
(JSC::DFG::SpeculativeJIT::cageTypedArrayStorage):
(JSC::DFG::SpeculativeJIT::compileGetGlobalObject):
(JSC::DFG::SpeculativeJIT::compileNewFunctionCommon):
(JSC::DFG::SpeculativeJIT::compileCreateActivation):
(JSC::DFG::SpeculativeJIT::compileCreateDirectArguments):
(JSC::DFG::SpeculativeJIT::compileSpread):
(JSC::DFG::SpeculativeJIT::compileNewArray):
(JSC::DFG::SpeculativeJIT::compileNewArrayWithSpread):
(JSC::DFG::SpeculativeJIT::compileArraySlice):
(JSC::DFG::SpeculativeJIT::compileArrayPush):
(JSC::DFG::SpeculativeJIT::compileTypeOf):
(JSC::DFG::SpeculativeJIT::compileAllocatePropertyStorage):
(JSC::DFG::SpeculativeJIT::compileReallocatePropertyStorage):
(JSC::DFG::SpeculativeJIT::compileNukeStructureAndSetButterfly):
(JSC::DFG::SpeculativeJIT::compileCallDOMGetter):
(JSC::DFG::SpeculativeJIT::compileCheckSubClass):
(JSC::DFG::SpeculativeJIT::compileNewStringObject):
(JSC::DFG::SpeculativeJIT::compileNewTypedArrayWithSize):
(JSC::DFG::SpeculativeJIT::compileNewRegexp):
(JSC::DFG::SpeculativeJIT::compileStoreBarrier):
(JSC::DFG::SpeculativeJIT::compileStringReplace):
(JSC::DFG::SpeculativeJIT::compileMaterializeNewObject):
(JSC::DFG::SpeculativeJIT::emitAllocateButterfly):
(JSC::DFG::SpeculativeJIT::compileGetMapBucketNext):
(JSC::DFG::SpeculativeJIT::compileObjectKeys):
(JSC::DFG::SpeculativeJIT::compileCreateThis):
(JSC::DFG::SpeculativeJIT::compileNewObject):
(JSC::DFG::SpeculativeJIT::compileLogShadowChickenPrologue):
(JSC::DFG::SpeculativeJIT::compileLogShadowChickenTail):
(JSC::DFG::SpeculativeJIT::compileGetPrototypeOf):
(JSC::DFG::SpeculativeJIT::compileAllocateNewArrayWithSize):
(JSC::DFG::SpeculativeJIT::compileProfileType):
(JSC::DFG::SpeculativeJIT::compileMakeRope):

  • dfg/DFGSpeculativeJIT.h:

(JSC::DFG::SpeculativeJIT::vm):
(JSC::DFG::SpeculativeJIT::prepareForExternalCall):
(JSC::DFG::SpeculativeJIT::emitAllocateJSObjectWithKnownSize):
(JSC::DFG::SpeculativeJIT::emitAllocateJSObject):
(JSC::DFG::SpeculativeJIT::emitAllocateVariableSizedJSObject):
(JSC::DFG::SpeculativeJIT::emitAllocateDestructibleObject):

  • dfg/DFGSpeculativeJIT32_64.cpp:

(JSC::DFG::SpeculativeJIT::emitCall):
(JSC::DFG::SpeculativeJIT::compileLogicalNot):
(JSC::DFG::SpeculativeJIT::emitBranch):
(JSC::DFG::SpeculativeJIT::compile):

  • dfg/DFGSpeculativeJIT64.cpp:

(JSC::DFG::SpeculativeJIT::nonSpeculativeNonPeepholeCompareNullOrUndefined):
(JSC::DFG::SpeculativeJIT::nonSpeculativePeepholeBranchNullOrUndefined):
(JSC::DFG::SpeculativeJIT::emitCall):
(JSC::DFG::SpeculativeJIT::compileObjectOrOtherLogicalNot):
(JSC::DFG::SpeculativeJIT::compileLogicalNot):
(JSC::DFG::SpeculativeJIT::emitObjectOrOtherBranch):
(JSC::DFG::SpeculativeJIT::emitBranch):
(JSC::DFG::SpeculativeJIT::compile):

  • dfg/DFGThunks.cpp:

(JSC::DFG::osrExitThunkGenerator):
(JSC::DFG::osrExitGenerationThunkGenerator):
(JSC::DFG::osrEntryThunkGenerator):

  • dfg/DFGThunks.h:
  • dfg/DFGToFTLForOSREntryDeferredCompilationCallback.cpp:

(JSC::DFG::ToFTLForOSREntryDeferredCompilationCallback::compilationDidComplete):

  • dfg/DFGWorklist.cpp:

(JSC::DFG::Worklist::visitWeakReferences):

  • dynbench.cpp:

(main):

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileMakeRope):
(JSC::FTL::DFG::LowerDFGToB3::compileStringSlice):
(JSC::FTL::DFG::LowerDFGToB3::boolify):

  • ftl/FTLThunks.cpp:

(JSC::FTL::genericGenerationThunkGenerator):
(JSC::FTL::osrExitGenerationThunkGenerator):
(JSC::FTL::lazySlowPathGenerationThunkGenerator):

  • ftl/FTLThunks.h:
  • heap/CellContainer.h:
  • heap/CellContainerInlines.h:

(JSC::CellContainer::vm const):
(JSC::CellContainer::heap const):

  • heap/CompleteSubspace.cpp:

(JSC::CompleteSubspace::tryAllocateSlow):
(JSC::CompleteSubspace::reallocateLargeAllocationNonVirtual):

  • heap/GCActivityCallback.h:
  • heap/GCAssertions.h:
  • heap/HandleSet.cpp:

(JSC::HandleSet::HandleSet):

  • heap/HandleSet.h:

(JSC::HandleSet::vm):

  • heap/Heap.cpp:

(JSC::Heap::Heap):
(JSC::Heap::lastChanceToFinalize):
(JSC::Heap::releaseDelayedReleasedObjects):
(JSC::Heap::protect):
(JSC::Heap::unprotect):
(JSC::Heap::finalizeMarkedUnconditionalFinalizers):
(JSC::Heap::finalizeUnconditionalFinalizers):
(JSC::Heap::completeAllJITPlans):
(JSC::Heap::iterateExecutingAndCompilingCodeBlocks):
(JSC::Heap::gatherJSStackRoots):
(JSC::Heap::gatherScratchBufferRoots):
(JSC::Heap::removeDeadCompilerWorklistEntries):
(JSC::Heap::isAnalyzingHeap const):
(JSC::Heap::gatherExtraHeapData):
(JSC::Heap::protectedObjectTypeCounts):
(JSC::Heap::objectTypeCounts):
(JSC::Heap::deleteAllCodeBlocks):
(JSC::Heap::deleteAllUnlinkedCodeBlocks):
(JSC::Heap::deleteUnmarkedCompiledCode):
(JSC::Heap::checkConn):
(JSC::Heap::runEndPhase):
(JSC::Heap::stopThePeriphery):
(JSC::Heap::finalize):
(JSC::Heap::requestCollection):
(JSC::Heap::sweepInFinalize):
(JSC::Heap::sweepArrayBuffers):
(JSC::Heap::deleteSourceProviderCaches):
(JSC::Heap::didFinishCollection):
(JSC::Heap::addCoreConstraints):

  • heap/Heap.h:
  • heap/HeapCell.h:
  • heap/HeapCellInlines.h:

(JSC::HeapCell::heap const):
(JSC::HeapCell::vm const):

  • heap/HeapInlines.h:

(JSC::Heap::vm const):

  • heap/IsoSubspacePerVM.cpp:

(JSC::IsoSubspacePerVM::AutoremovingIsoSubspace::~AutoremovingIsoSubspace):

  • heap/LargeAllocation.cpp:

(JSC::LargeAllocation::sweep):
(JSC::LargeAllocation::assertValidCell const):

  • heap/LargeAllocation.h:

(JSC::LargeAllocation::vm const):

  • heap/LocalAllocator.cpp:

(JSC::LocalAllocator::allocateSlowCase):

  • heap/MarkedBlock.cpp:

(JSC::MarkedBlock::Handle::Handle):
(JSC::MarkedBlock::aboutToMarkSlow):
(JSC::MarkedBlock::assertMarksNotStale):
(JSC::MarkedBlock::areMarksStale):
(JSC::MarkedBlock::isMarked):
(JSC::MarkedBlock::assertValidCell const):

  • heap/MarkedBlock.h:

(JSC::MarkedBlock::Handle::vm const):
(JSC::MarkedBlock::vm const):

  • heap/MarkedBlockInlines.h:

(JSC::MarkedBlock::heap const):
(JSC::MarkedBlock::Handle::specializedSweep):

  • heap/SlotVisitor.cpp:

(JSC::validate):

  • heap/SlotVisitorInlines.h:

(JSC::SlotVisitor::vm):
(JSC::SlotVisitor::vm const):

  • heap/StopIfNecessaryTimer.cpp:

(JSC::StopIfNecessaryTimer::StopIfNecessaryTimer):

  • heap/StopIfNecessaryTimer.h:
  • heap/Strong.h:

(JSC::Strong::operator=):

  • heap/WeakSet.h:

(JSC::WeakSet::WeakSet):
(JSC::WeakSet::vm const):

  • inspector/JSInjectedScriptHost.cpp:

(Inspector::JSInjectedScriptHost::savedResultAlias const):
(Inspector::JSInjectedScriptHost::internalConstructorName):
(Inspector::JSInjectedScriptHost::subtype):
(Inspector::JSInjectedScriptHost::functionDetails):
(Inspector::constructInternalProperty):
(Inspector::JSInjectedScriptHost::getInternalProperties):
(Inspector::JSInjectedScriptHost::weakMapEntries):
(Inspector::JSInjectedScriptHost::weakSetEntries):
(Inspector::JSInjectedScriptHost::iteratorEntries):
(Inspector::JSInjectedScriptHost::queryInstances):
(Inspector::JSInjectedScriptHost::queryHolders):

  • inspector/JSJavaScriptCallFrame.cpp:

(Inspector::valueForScopeLocation):
(Inspector::JSJavaScriptCallFrame::scopeDescriptions):
(Inspector::JSJavaScriptCallFrame::functionName const):
(Inspector::JSJavaScriptCallFrame::type const):

  • inspector/ScriptCallStackFactory.cpp:

(Inspector::extractSourceInformationFromException):

  • inspector/agents/InspectorAuditAgent.cpp:

(Inspector::InspectorAuditAgent::populateAuditObject):

  • inspector/agents/InspectorHeapAgent.cpp:

(Inspector::InspectorHeapAgent::gc):

  • interpreter/FrameTracers.h:

(JSC::NativeCallFrameTracer::NativeCallFrameTracer):

  • interpreter/Interpreter.cpp:

(JSC::Interpreter::executeProgram):
(JSC::Interpreter::prepareForRepeatCall):
(JSC::Interpreter::execute):
(JSC::Interpreter::executeModuleProgram):

  • interpreter/StackVisitor.cpp:

(JSC::StackVisitor::Frame::calleeSaveRegistersForUnwinding):
(JSC::StackVisitor::Frame::computeLineAndColumn const):

  • jit/AssemblyHelpers.cpp:

(JSC::AssemblyHelpers::emitDumbVirtualCall):
(JSC::AssemblyHelpers::emitConvertValueToBoolean):
(JSC::AssemblyHelpers::branchIfValue):

  • jit/AssemblyHelpers.h:

(JSC::AssemblyHelpers::vm):

  • jit/JIT.cpp:

(JSC::JIT::JIT):
(JSC::JIT::emitEnterOptimizationCheck):
(JSC::JIT::privateCompileMainPass):
(JSC::JIT::privateCompileExceptionHandlers):

  • jit/JIT.h:
  • jit/JITCall.cpp:

(JSC::JIT::compileCallEvalSlowCase):

  • jit/JITCall32_64.cpp:

(JSC::JIT::compileCallEvalSlowCase):

  • jit/JITExceptions.cpp:

(JSC::genericUnwind):

  • jit/JITExceptions.h:
  • jit/JITInlineCacheGenerator.cpp:

(JSC::JITGetByIdGenerator::JITGetByIdGenerator):

  • jit/JITOpcodes.cpp:

(JSC::JIT::emit_op_is_undefined):
(JSC::JIT::emit_op_jfalse):
(JSC::JIT::emit_op_jeq_null):
(JSC::JIT::emit_op_jneq_null):
(JSC::JIT::emit_op_jtrue):
(JSC::JIT::emit_op_throw):
(JSC::JIT::emit_op_catch):
(JSC::JIT::emit_op_eq_null):
(JSC::JIT::emit_op_neq_null):
(JSC::JIT::emitSlow_op_loop_hint):
(JSC::JIT::emit_op_log_shadow_chicken_prologue):
(JSC::JIT::emit_op_log_shadow_chicken_tail):

  • jit/JITOpcodes32_64.cpp:

(JSC::JIT::emit_op_jfalse):
(JSC::JIT::emit_op_jtrue):
(JSC::JIT::emit_op_throw):
(JSC::JIT::emit_op_catch):
(JSC::JIT::emit_op_log_shadow_chicken_prologue):
(JSC::JIT::emit_op_log_shadow_chicken_tail):

  • jit/JITOperations.cpp:

(JSC::operationNewFunctionCommon):
(JSC::tryGetByValOptimize):

  • jit/JITPropertyAccess.cpp:

(JSC::JIT::emitWriteBarrier):

  • jit/JITThunks.cpp:

(JSC::JITThunks::ctiNativeCall):
(JSC::JITThunks::ctiNativeConstruct):
(JSC::JITThunks::ctiNativeTailCall):
(JSC::JITThunks::ctiNativeTailCallWithoutSavedTags):
(JSC::JITThunks::ctiInternalFunctionCall):
(JSC::JITThunks::ctiInternalFunctionConstruct):
(JSC::JITThunks::ctiStub):
(JSC::JITThunks::hostFunctionStub):

  • jit/JITThunks.h:
  • jit/JITWorklist.cpp:

(JSC::JITWorklist::Plan::vm):
(JSC::JITWorklist::completeAllForVM):
(JSC::JITWorklist::poll):
(JSC::JITWorklist::compileLater):
(JSC::JITWorklist::compileNow):

  • jit/Repatch.cpp:

(JSC::readPutICCallTarget):
(JSC::ftlThunkAwareRepatchCall):
(JSC::linkSlowFor):
(JSC::linkFor):
(JSC::linkDirectFor):
(JSC::revertCall):
(JSC::unlinkFor):
(JSC::linkVirtualFor):
(JSC::linkPolymorphicCall):

  • jit/SpecializedThunkJIT.h:

(JSC::SpecializedThunkJIT::SpecializedThunkJIT):

  • jit/ThunkGenerator.h:
  • jit/ThunkGenerators.cpp:

(JSC::throwExceptionFromCallSlowPathGenerator):
(JSC::slowPathFor):
(JSC::linkCallThunkGenerator):
(JSC::linkPolymorphicCallThunkGenerator):
(JSC::virtualThunkFor):
(JSC::nativeForGenerator):
(JSC::nativeCallGenerator):
(JSC::nativeTailCallGenerator):
(JSC::nativeTailCallWithoutSavedTagsGenerator):
(JSC::nativeConstructGenerator):
(JSC::internalFunctionCallGenerator):
(JSC::internalFunctionConstructGenerator):
(JSC::arityFixupGenerator):
(JSC::unreachableGenerator):
(JSC::stringGetByValGenerator):
(JSC::charToString):
(JSC::charCodeAtThunkGenerator):
(JSC::charAtThunkGenerator):
(JSC::fromCharCodeThunkGenerator):
(JSC::clz32ThunkGenerator):
(JSC::sqrtThunkGenerator):
(JSC::floorThunkGenerator):
(JSC::ceilThunkGenerator):
(JSC::truncThunkGenerator):
(JSC::roundThunkGenerator):
(JSC::expThunkGenerator):
(JSC::logThunkGenerator):
(JSC::absThunkGenerator):
(JSC::imulThunkGenerator):
(JSC::randomThunkGenerator):
(JSC::boundThisNoArgsFunctionCallGenerator):

  • jit/ThunkGenerators.h:
  • jsc.cpp:

(GlobalObject::finishCreation):
(GlobalObject::addFunction):
(GlobalObject::moduleLoaderImportModule):
(GlobalObject::moduleLoaderResolve):
(GlobalObject::moduleLoaderCreateImportMetaProperties):
(functionDescribe):
(functionDescribeArray):
(JSCMemoryFootprint::addProperty):
(functionRun):
(functionRunString):
(functionReadFile):
(functionCallerSourceOrigin):
(functionReadline):
(functionDollarCreateRealm):
(functionDollarEvalScript):
(functionDollarAgentGetReport):
(functionWaitForReport):
(functionJSCOptions):
(functionCheckModuleSyntax):
(functionGenerateHeapSnapshotForGCDebugging):
(functionWebAssemblyMemoryMode):
(dumpException):
(checkUncaughtException):

  • llint/LLIntSlowPaths.cpp:

(JSC::LLInt::LLINT_SLOW_PATH_DECL):
(JSC::LLInt::handleHostCall):

  • parser/ASTBuilder.h:

(JSC::ASTBuilder::ASTBuilder):
(JSC::ASTBuilder::createResolve):
(JSC::ASTBuilder::createGetterOrSetterProperty):
(JSC::ASTBuilder::createProperty):
(JSC::ASTBuilder::createFuncDeclStatement):
(JSC::ASTBuilder::makeFunctionCallNode):

  • parser/Lexer.cpp:

(JSC::Lexer<T>::Lexer):
(JSC::Lexer<LChar>::parseIdentifier):
(JSC::Lexer<UChar>::parseIdentifier):

  • parser/Lexer.h:

(JSC::Lexer<T>::lexExpectIdentifier):

  • parser/ModuleAnalyzer.cpp:

(JSC::ModuleAnalyzer::ModuleAnalyzer):

  • parser/ModuleAnalyzer.h:

(JSC::ModuleAnalyzer::vm):

  • parser/Parser.cpp:

(JSC::Parser<LexerType>::Parser):
(JSC::Parser<LexerType>::parseInner):
(JSC::Parser<LexerType>::isArrowFunctionParameters):
(JSC::Parser<LexerType>::parseSourceElements):
(JSC::Parser<LexerType>::parseModuleSourceElements):
(JSC::Parser<LexerType>::parseGeneratorFunctionSourceElements):
(JSC::Parser<LexerType>::parseAsyncFunctionSourceElements):
(JSC::Parser<LexerType>::parseAsyncGeneratorFunctionSourceElements):
(JSC::Parser<LexerType>::parseSingleFunction):
(JSC::Parser<LexerType>::parseStatementListItem):
(JSC::Parser<LexerType>::parseObjectRestAssignmentElement):
(JSC::Parser<LexerType>::parseAssignmentElement):
(JSC::Parser<LexerType>::parseDestructuringPattern):
(JSC::Parser<LexerType>::parseForStatement):
(JSC::Parser<LexerType>::parseBreakStatement):
(JSC::Parser<LexerType>::parseContinueStatement):
(JSC::Parser<LexerType>::parseStatement):
(JSC::Parser<LexerType>::maybeParseAsyncFunctionDeclarationStatement):
(JSC::Parser<LexerType>::createGeneratorParameters):
(JSC::Parser<LexerType>::parseFunctionInfo):
(JSC::Parser<LexerType>::parseFunctionDeclaration):
(JSC::Parser<LexerType>::parseAsyncFunctionDeclaration):
(JSC::Parser<LexerType>::parseClassDeclaration):
(JSC::Parser<LexerType>::parseClass):
(JSC::Parser<LexerType>::parseImportClauseItem):
(JSC::Parser<LexerType>::parseImportDeclaration):
(JSC::Parser<LexerType>::parseExportSpecifier):
(JSC::Parser<LexerType>::parseExportDeclaration):
(JSC::Parser<LexerType>::parseAssignmentExpression):
(JSC::Parser<LexerType>::parseProperty):
(JSC::Parser<LexerType>::parseGetterSetter):
(JSC::Parser<LexerType>::parseObjectLiteral):
(JSC::Parser<LexerType>::parseStrictObjectLiteral):
(JSC::Parser<LexerType>::parseClassExpression):
(JSC::Parser<LexerType>::parseFunctionExpression):
(JSC::Parser<LexerType>::parseAsyncFunctionExpression):
(JSC::Parser<LexerType>::parsePrimaryExpression):
(JSC::Parser<LexerType>::parseMemberExpression):
(JSC::Parser<LexerType>::parseArrowFunctionExpression):
(JSC::Parser<LexerType>::parseUnaryExpression):

  • parser/Parser.h:

(JSC::isArguments):
(JSC::isEval):
(JSC::isEvalOrArgumentsIdentifier):
(JSC::Scope::Scope):
(JSC::Scope::declareParameter):
(JSC::Scope::setInnerArrowFunctionUsesEvalAndUseArgumentsIfNeeded):
(JSC::Scope::collectFreeVariables):
(JSC::Parser::canRecurse):
(JSC::parse):
(JSC::parseFunctionForFunctionConstructor):

  • parser/ParserArena.h:

(JSC::IdentifierArena::makeIdentifier):
(JSC::IdentifierArena::makeEmptyIdentifier):
(JSC::IdentifierArena::makeIdentifierLCharFromUChar):
(JSC::IdentifierArena::makeNumericIdentifier):

  • parser/SyntaxChecker.h:

(JSC::SyntaxChecker::SyntaxChecker):
(JSC::SyntaxChecker::createProperty):
(JSC::SyntaxChecker::createGetterOrSetterProperty):

  • profiler/ProfilerBytecode.cpp:

(JSC::Profiler::Bytecode::toJS const):

  • profiler/ProfilerBytecodeSequence.cpp:

(JSC::Profiler::BytecodeSequence::addSequenceProperties const):

  • profiler/ProfilerBytecodes.cpp:

(JSC::Profiler::Bytecodes::toJS const):

  • profiler/ProfilerCompilation.cpp:

(JSC::Profiler::Compilation::toJS const):

  • profiler/ProfilerCompiledBytecode.cpp:

(JSC::Profiler::CompiledBytecode::toJS const):

  • profiler/ProfilerEvent.cpp:

(JSC::Profiler::Event::toJS const):

  • profiler/ProfilerOSRExit.cpp:

(JSC::Profiler::OSRExit::toJS const):

  • profiler/ProfilerOSRExitSite.cpp:

(JSC::Profiler::OSRExitSite::toJS const):

  • profiler/ProfilerUID.cpp:

(JSC::Profiler::UID::toJS const):

  • runtime/AbstractModuleRecord.cpp:

(JSC::AbstractModuleRecord::finishCreation):
(JSC::AbstractModuleRecord::hostResolveImportedModule):
(JSC::AbstractModuleRecord::resolveExportImpl):
(JSC::getExportedNames):
(JSC::AbstractModuleRecord::getModuleNamespace):

  • runtime/ArrayBufferNeuteringWatchpointSet.cpp:

(JSC::ArrayBufferNeuteringWatchpointSet::fireAll):

  • runtime/ArrayIteratorPrototype.cpp:

(JSC::ArrayIteratorPrototype::finishCreation):

  • runtime/ArrayPrototype.cpp:

(JSC::fastJoin):
(JSC::arrayProtoFuncToLocaleString):
(JSC::slowJoin):
(JSC::arrayProtoFuncJoin):
(JSC::arrayProtoFuncPush):

  • runtime/AsyncFunctionPrototype.cpp:

(JSC::AsyncFunctionPrototype::finishCreation):

  • runtime/AsyncGeneratorFunctionPrototype.cpp:

(JSC::AsyncGeneratorFunctionPrototype::finishCreation):

  • runtime/AsyncGeneratorPrototype.cpp:

(JSC::AsyncGeneratorPrototype::finishCreation):

  • runtime/AtomicsObject.cpp:

(JSC::AtomicsObject::finishCreation):
(JSC::atomicsFuncWait):
(JSC::operationAtomicsAdd):
(JSC::operationAtomicsAnd):
(JSC::operationAtomicsCompareExchange):
(JSC::operationAtomicsExchange):
(JSC::operationAtomicsIsLockFree):
(JSC::operationAtomicsLoad):
(JSC::operationAtomicsOr):
(JSC::operationAtomicsStore):
(JSC::operationAtomicsSub):
(JSC::operationAtomicsXor):

  • runtime/BigIntPrototype.cpp:

(JSC::BigIntPrototype::finishCreation):
(JSC::bigIntProtoFuncToString):

  • runtime/CachedTypes.cpp:

(JSC::CachedUniquedStringImplBase::decode const):
(JSC::CachedIdentifier::decode const):
(JSC::CachedJSValue::decode const):

  • runtime/CodeCache.cpp:

(JSC::CodeCacheMap::pruneSlowCase):
(JSC::CodeCache::getUnlinkedGlobalFunctionExecutable):

  • runtime/CodeCache.h:

(JSC::generateUnlinkedCodeBlockImpl):

  • runtime/CommonIdentifiers.cpp:

(JSC::CommonIdentifiers::CommonIdentifiers):

  • runtime/CommonIdentifiers.h:
  • runtime/CommonSlowPaths.cpp:

(JSC::SLOW_PATH_DECL):

  • runtime/Completion.cpp:

(JSC::checkSyntaxInternal):
(JSC::checkModuleSyntax):
(JSC::loadAndEvaluateModule):
(JSC::loadModule):

  • runtime/DateConstructor.cpp:

(JSC::callDate):

  • runtime/DatePrototype.cpp:

(JSC::formatLocaleDate):
(JSC::formateDateInstance):
(JSC::DatePrototype::finishCreation):
(JSC::dateProtoFuncToISOString):

  • runtime/Error.cpp:

(JSC::addErrorInfo):

  • runtime/ErrorInstance.cpp:

(JSC::appendSourceToError):
(JSC::ErrorInstance::finishCreation):
(JSC::ErrorInstance::materializeErrorInfoIfNeeded):

  • runtime/ErrorPrototype.cpp:

(JSC::ErrorPrototype::finishCreation):
(JSC::errorProtoFuncToString):

  • runtime/ExceptionHelpers.cpp:

(JSC::TerminatedExecutionError::defaultValue):

  • runtime/FunctionPrototype.cpp:

(JSC::functionProtoFuncToString):

  • runtime/FunctionRareData.cpp:

(JSC::FunctionRareData::clear):

  • runtime/GeneratorFunctionPrototype.cpp:

(JSC::GeneratorFunctionPrototype::finishCreation):

  • runtime/GeneratorPrototype.cpp:

(JSC::GeneratorPrototype::finishCreation):

  • runtime/GenericArgumentsInlines.h:

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

  • runtime/GetterSetter.h:
  • runtime/Identifier.cpp:

(JSC::Identifier::add):
(JSC::Identifier::add8):
(JSC::Identifier::from):
(JSC::Identifier::checkCurrentAtomStringTable):

  • runtime/Identifier.h:

(JSC::Identifier::fromString):
(JSC::Identifier::createLCharFromUChar):
(JSC::Identifier::Identifier):
(JSC::Identifier::add):

  • runtime/IdentifierInlines.h:

(JSC::Identifier::Identifier):
(JSC::Identifier::add):
(JSC::Identifier::fromUid):
(JSC::Identifier::fromString):
(JSC::identifierToJSValue):
(JSC::identifierToSafePublicJSValue):

  • runtime/InternalFunction.cpp:

(JSC::InternalFunction::finishCreation):

  • runtime/IntlCollator.cpp:

(JSC::IntlCollator::resolvedOptions):

  • runtime/IntlCollatorPrototype.cpp:

(JSC::IntlCollatorPrototype::finishCreation):

  • runtime/IntlDateTimeFormat.cpp:

(JSC::IntlDTFInternal::toDateTimeOptionsAnyDate):
(JSC::IntlDateTimeFormat::resolvedOptions):
(JSC::IntlDateTimeFormat::format):
(JSC::IntlDateTimeFormat::formatToParts):

  • runtime/IntlDateTimeFormatPrototype.cpp:

(JSC::IntlDateTimeFormatPrototype::finishCreation):

  • runtime/IntlNumberFormat.cpp:

(JSC::IntlNumberFormat::initializeNumberFormat):
(JSC::IntlNumberFormat::formatNumber):
(JSC::IntlNumberFormat::resolvedOptions):
(JSC::IntlNumberFormat::formatToParts):

  • runtime/IntlNumberFormatPrototype.cpp:

(JSC::IntlNumberFormatPrototype::finishCreation):

  • runtime/IntlObject.cpp:

(JSC::lookupSupportedLocales):
(JSC::supportedLocales):
(JSC::intlObjectFuncGetCanonicalLocales):

  • runtime/IntlPluralRules.cpp:

(JSC::IntlPluralRules::initializePluralRules):
(JSC::IntlPluralRules::resolvedOptions):
(JSC::IntlPluralRules::select):

  • runtime/IntlPluralRulesPrototype.cpp:

(JSC::IntlPluralRulesPrototype::finishCreation):

  • runtime/JSArray.h:

(JSC::asArray):
(JSC::isJSArray):

  • runtime/JSArrayBufferPrototype.cpp:

(JSC::JSArrayBufferPrototype::finishCreation):

  • runtime/JSArrayBufferView.cpp:

(JSC::JSArrayBufferView::slowDownAndWasteMemory):

  • runtime/JSCJSValue.cpp:

(JSC::JSValue::putToPrimitiveByIndex):
(JSC::JSValue::dumpForBacktrace const):
(JSC::JSValue::toStringSlowCase const):

  • runtime/JSCJSValueInlines.h:

(JSC::JSValue::toPropertyKey const):
(JSC::JSValue::get const):

  • runtime/JSCast.h:

(JSC::jsCast):

  • runtime/JSCell.cpp:

(JSC::JSCell::dump const):
(JSC::JSCell::dumpToStream):
(JSC::JSCell::putByIndex):

  • runtime/JSCellInlines.h:

(JSC::JSCell::structure const):
(JSC::ExecState::vm const):
(JSC::tryAllocateCellHelper):

  • runtime/JSDataViewPrototype.cpp:

(JSC::JSDataViewPrototype::finishCreation):

  • runtime/JSFixedArray.cpp:

(JSC::JSFixedArray::dumpToStream):

  • runtime/JSFunction.cpp:

(JSC::JSFunction::finishCreation):
(JSC::RetrieveCallerFunctionFunctor::operator() const):
(JSC::JSFunction::reifyName):
(JSC::JSFunction::reifyLazyBoundNameIfNeeded):
(JSC::JSFunction::assertTypeInfoFlagInvariants):

  • runtime/JSGenericTypedArrayViewInlines.h:

(JSC::JSGenericTypedArrayView<Adaptor>::deletePropertyByIndex):
(JSC::JSGenericTypedArrayView<Adaptor>::getOwnPropertyNames):

  • runtime/JSGlobalObject.cpp:

(JSC::JSGlobalObject::init):
(JSC::JSGlobalObject::exposeDollarVM):

  • runtime/JSGlobalObjectFunctions.cpp:

(JSC::encode):
(JSC::decode):
(JSC::globalFuncEscape):
(JSC::globalFuncUnescape):
(JSC::globalFuncBuiltinDescribe):

  • runtime/JSLexicalEnvironment.cpp:

(JSC::JSLexicalEnvironment::getOwnNonIndexPropertyNames):

  • runtime/JSModuleEnvironment.cpp:

(JSC::JSModuleEnvironment::getOwnPropertySlot):
(JSC::JSModuleEnvironment::put):
(JSC::JSModuleEnvironment::deleteProperty):

  • runtime/JSModuleLoader.cpp:

(JSC::JSModuleLoader::finishCreation):
(JSC::JSModuleLoader::requestImportModule):
(JSC::moduleLoaderParseModule):
(JSC::moduleLoaderRequestedModules):

  • runtime/JSModuleNamespaceObject.cpp:

(JSC::JSModuleNamespaceObject::finishCreation):
(JSC::JSModuleNamespaceObject::getOwnPropertySlotByIndex):

  • runtime/JSModuleRecord.cpp:

(JSC::JSModuleRecord::instantiateDeclarations):

  • runtime/JSONObject.cpp:

(JSC::JSONObject::finishCreation):
(JSC::PropertyNameForFunctionCall::value const):
(JSC::Stringifier::Stringifier):
(JSC::Stringifier::stringify):
(JSC::Stringifier::Holder::appendNextProperty):
(JSC::Walker::walk):

  • runtime/JSObject.cpp:

(JSC::getClassPropertyNames):
(JSC::JSObject::getOwnPropertySlotByIndex):
(JSC::JSObject::putByIndex):
(JSC::JSObject::deletePropertyByIndex):
(JSC::JSObject::toString const):
(JSC::JSObject::reifyAllStaticProperties):
(JSC::JSObject::putDirectIndexSlowOrBeyondVectorLength):

  • runtime/JSObject.h:

(JSC::JSObject::putByIndexInline):
(JSC::JSObject::butterflyPreCapacity):
(JSC::JSObject::butterflyTotalSize):
(JSC::makeIdentifier):

  • runtime/JSPromisePrototype.cpp:

(JSC::JSPromisePrototype::finishCreation):

  • runtime/JSPropertyNameEnumerator.cpp:

(JSC::JSPropertyNameEnumerator::finishCreation):

  • runtime/JSPropertyNameEnumerator.h:

(JSC::propertyNameEnumerator):

  • runtime/JSRunLoopTimer.cpp:

(JSC::JSRunLoopTimer::JSRunLoopTimer):

  • runtime/JSRunLoopTimer.h:
  • runtime/JSString.cpp:

(JSC::JSString::dumpToStream):
(JSC::JSRopeString::resolveRopeWithFunction const):
(JSC::jsStringWithCacheSlowCase):

  • runtime/JSString.h:

(JSC::jsEmptyString):
(JSC::jsSingleCharacterString):
(JSC::jsNontrivialString):
(JSC::JSString::toIdentifier const):
(JSC::JSString::toAtomString const):
(JSC::JSString::toExistingAtomString const):
(JSC::JSString::value const):
(JSC::JSString::tryGetValue const):
(JSC::JSString::getIndex):
(JSC::jsString):
(JSC::jsSubstring):
(JSC::jsOwnedString):
(JSC::jsStringWithCache):
(JSC::JSRopeString::unsafeView const):
(JSC::JSRopeString::viewWithUnderlyingString const):
(JSC::JSString::unsafeView const):

  • runtime/JSStringInlines.h:

(JSC::jsMakeNontrivialString):
(JSC::repeatCharacter):

  • runtime/JSStringJoiner.cpp:

(JSC::JSStringJoiner::join):

  • runtime/JSSymbolTableObject.cpp:

(JSC::JSSymbolTableObject::getOwnNonIndexPropertyNames):

  • runtime/JSTemplateObjectDescriptor.cpp:

(JSC::JSTemplateObjectDescriptor::createTemplateObject):

  • runtime/JSTypedArrayViewPrototype.cpp:

(JSC::typedArrayViewProtoGetterFuncToStringTag):

  • runtime/LazyClassStructure.cpp:

(JSC::LazyClassStructure::Initializer::setConstructor):

  • runtime/LazyProperty.h:

(JSC::LazyProperty::Initializer::Initializer):

  • runtime/LiteralParser.cpp:

(JSC::LiteralParser<CharType>::tryJSONPParse):
(JSC::LiteralParser<CharType>::makeIdentifier):
(JSC::LiteralParser<CharType>::parse):

  • runtime/Lookup.h:

(JSC::reifyStaticProperties):

  • runtime/MapIteratorPrototype.cpp:

(JSC::MapIteratorPrototype::finishCreation):

  • runtime/MapPrototype.cpp:

(JSC::MapPrototype::finishCreation):

  • runtime/MathObject.cpp:

(JSC::MathObject::finishCreation):

  • runtime/NumberConstructor.cpp:

(JSC::NumberConstructor::finishCreation):

  • runtime/NumberPrototype.cpp:

(JSC::numberProtoFuncToExponential):
(JSC::numberProtoFuncToFixed):
(JSC::numberProtoFuncToPrecision):
(JSC::int32ToStringInternal):
(JSC::numberToStringInternal):
(JSC::int52ToString):

  • runtime/ObjectConstructor.cpp:

(JSC::objectConstructorGetOwnPropertyDescriptors):
(JSC::objectConstructorAssign):
(JSC::objectConstructorValues):
(JSC::defineProperties):
(JSC::setIntegrityLevel):
(JSC::testIntegrityLevel):
(JSC::ownPropertyKeys):

  • runtime/ObjectPrototype.cpp:

(JSC::objectProtoFuncToString):

  • runtime/Operations.h:

(JSC::jsString):
(JSC::jsStringFromRegisterArray):
(JSC::jsStringFromArguments):

  • runtime/ProgramExecutable.cpp:

(JSC::ProgramExecutable::initializeGlobalProperties):

  • runtime/PromiseDeferredTimer.cpp:

(JSC::PromiseDeferredTimer::PromiseDeferredTimer):
(JSC::PromiseDeferredTimer::hasPendingPromise):
(JSC::PromiseDeferredTimer::hasDependancyInPendingPromise):
(JSC::PromiseDeferredTimer::cancelPendingPromise):

  • runtime/PropertyNameArray.h:

(JSC::PropertyNameArray::PropertyNameArray):
(JSC::PropertyNameArray::vm):

  • runtime/PropertySlot.h:

(JSC::PropertySlot::getValue const):

  • runtime/ProxyObject.cpp:

(JSC::performProxyGet):
(JSC::ProxyObject::performInternalMethodGetOwnProperty):
(JSC::ProxyObject::performHasProperty):
(JSC::ProxyObject::getOwnPropertySlotByIndex):
(JSC::ProxyObject::performPut):
(JSC::ProxyObject::putByIndexCommon):
(JSC::ProxyObject::performDelete):
(JSC::ProxyObject::deletePropertyByIndex):
(JSC::ProxyObject::performDefineOwnProperty):
(JSC::ProxyObject::performGetOwnPropertyNames):

  • runtime/RegExpGlobalData.cpp:

(JSC::RegExpGlobalData::getBackref):
(JSC::RegExpGlobalData::getLastParen):

  • runtime/RegExpMatchesArray.cpp:

(JSC::createEmptyRegExpMatchesArray):

  • runtime/RegExpMatchesArray.h:

(JSC::createRegExpMatchesArray):

  • runtime/RegExpPrototype.cpp:

(JSC::regExpProtoGetterFlags):
(JSC::regExpProtoGetterSourceInternal):
(JSC::regExpProtoGetterSource):

  • runtime/RegExpStringIteratorPrototype.cpp:

(JSC::RegExpStringIteratorPrototype::finishCreation):

  • runtime/SamplingProfiler.cpp:

(JSC::SamplingProfiler::processUnverifiedStackTraces):

  • runtime/ScriptExecutable.cpp:

(JSC::ScriptExecutable::installCode):
(JSC::ScriptExecutable::newCodeBlockFor):
(JSC::ScriptExecutable::newReplacementCodeBlockFor):
(JSC::setupJIT):

  • runtime/SetIteratorPrototype.cpp:

(JSC::SetIteratorPrototype::finishCreation):

  • runtime/SetPrototype.cpp:

(JSC::SetPrototype::finishCreation):

  • runtime/StackFrame.cpp:

(JSC::StackFrame::computeLineAndColumn const):

  • runtime/StringConstructor.cpp:

(JSC::stringFromCharCode):
(JSC::stringFromCodePoint):
(JSC::stringConstructor):
(JSC::callStringConstructor):

  • runtime/StringIteratorPrototype.cpp:

(JSC::StringIteratorPrototype::finishCreation):

  • runtime/StringObject.cpp:

(JSC::StringObject::getOwnPropertySlotByIndex):
(JSC::StringObject::getOwnPropertyNames):

  • runtime/StringObject.h:

(JSC::StringObject::create):
(JSC::jsStringWithReuse):
(JSC::jsSubstring):

  • runtime/StringPrototype.cpp:

(JSC::StringPrototype::finishCreation):
(JSC::StringPrototype::create):
(JSC::jsSpliceSubstrings):
(JSC::jsSpliceSubstringsWithSeparators):
(JSC::replaceUsingRegExpSearch):
(JSC::operationStringProtoFuncReplaceRegExpEmptyStr):
(JSC::operationStringProtoFuncReplaceRegExpString):
(JSC::replaceUsingStringSearch):
(JSC::operationStringProtoFuncReplaceGeneric):
(JSC::stringProtoFuncCharAt):
(JSC::stringProtoFuncSplitFast):
(JSC::stringProtoFuncSubstr):
(JSC::stringProtoFuncToLowerCase):
(JSC::stringProtoFuncToUpperCase):
(JSC::toLocaleCase):
(JSC::trimString):
(JSC::normalize):

  • runtime/StringPrototypeInlines.h:

(JSC::stringSlice):

  • runtime/StringRecursionChecker.cpp:

(JSC::StringRecursionChecker::emptyString):

  • runtime/Structure.cpp:

(JSC::Structure::didTransitionFromThisStructure const):

  • runtime/StructureInlines.h:

(JSC::Structure::didReplaceProperty):
(JSC::Structure::shouldConvertToPolyProto):

  • runtime/SymbolConstructor.cpp:

(JSC::symbolConstructorKeyFor):

  • runtime/SymbolPrototype.cpp:

(JSC::SymbolPrototype::finishCreation):
(JSC::symbolProtoGetterDescription):
(JSC::symbolProtoFuncToString):

  • runtime/SymbolTable.cpp:

(JSC::SymbolTable::setRareDataCodeBlock):

  • runtime/TestRunnerUtils.cpp:

(JSC::getExecutableForFunction):

  • runtime/VM.cpp:

(JSC::VM::VM):
(JSC::VM::getHostFunction):
(JSC::VM::getCTIInternalFunctionTrampolineFor):
(JSC::VM::shrinkFootprintWhenIdle):
(JSC::logSanitizeStack):
(JSC::sanitizeStackForVM):
(JSC::VM::emptyPropertyNameEnumeratorSlow):

  • runtime/VM.h:

(JSC::VM::getCTIStub):
(JSC::WeakSet::heap const):

  • runtime/VMTraps.cpp:
  • runtime/WeakMapPrototype.cpp:

(JSC::WeakMapPrototype::finishCreation):

  • runtime/WeakObjectRefPrototype.cpp:

(JSC::WeakObjectRefPrototype::finishCreation):

  • runtime/WeakSetPrototype.cpp:

(JSC::WeakSetPrototype::finishCreation):

  • tools/HeapVerifier.cpp:

(JSC::HeapVerifier::printVerificationHeader):
(JSC::HeapVerifier::verifyCellList):
(JSC::HeapVerifier::validateJSCell):
(JSC::HeapVerifier::reportCell):

  • tools/JSDollarVM.cpp:

(JSC::JSDollarVMCallFrame::finishCreation):
(JSC::JSDollarVMCallFrame::addProperty):
(JSC::CustomGetter::getOwnPropertySlot):
(JSC::CustomGetter::customGetter):
(JSC::CustomGetter::customGetterAcessor):
(JSC::DOMJITGetter::DOMJITAttribute::slowCall):
(JSC::DOMJITGetter::finishCreation):
(JSC::DOMJITGetterComplex::DOMJITAttribute::slowCall):
(JSC::DOMJITGetterComplex::finishCreation):
(JSC::DOMJITFunctionObject::functionWithoutTypeCheck):
(JSC::DOMJITFunctionObject::finishCreation):
(JSC::DOMJITCheckSubClassObject::functionWithoutTypeCheck):
(JSC::DOMJITCheckSubClassObject::finishCreation):
(JSC::DOMJITGetterBaseJSObject::DOMJITAttribute::slowCall):
(JSC::DOMJITGetterBaseJSObject::finishCreation):
(JSC::customSetAccessor):
(JSC::customSetValue):
(JSC::JSTestCustomGetterSetter::finishCreation):
(JSC::WasmStreamingParser::finishCreation):
(JSC::getExecutableForFunction):
(JSC::functionCodeBlockFor):
(JSC::functionIndexingMode):
(JSC::functionValue):
(JSC::functionCreateBuiltin):
(JSC::functionGetPrivateProperty):
(JSC::JSDollarVM::finishCreation):
(JSC::JSDollarVM::addFunction):
(JSC::JSDollarVM::addConstructibleFunction):

  • tools/VMInspector.cpp:

(JSC::VMInspector::dumpRegisters):
(JSC::VMInspector::dumpCellMemoryToStream):

  • wasm/WasmInstance.cpp:

(JSC::Wasm::Instance::setGlobal):
(JSC::Wasm::Instance::setFunctionWrapper):
(JSC::Wasm::setWasmTableElement):
(JSC::Wasm::doWasmRefFunc):

  • wasm/WasmTable.cpp:

(JSC::Wasm::Table::set):
(JSC::Wasm::FuncRefTable::setFunction):

  • wasm/js/JSWebAssembly.cpp:

(JSC::resolve):

  • wasm/js/JSWebAssemblyInstance.cpp:

(JSC::JSWebAssemblyInstance::create):

  • wasm/js/WasmToJS.cpp:

(JSC::Wasm::handleBadI64Use):
(JSC::Wasm::wasmToJS):
(JSC::Wasm::wasmToJSException):

  • wasm/js/WebAssemblyFunction.cpp:

(JSC::WebAssemblyFunction::jsCallEntrypointSlow):

  • wasm/js/WebAssemblyMemoryConstructor.cpp:

(JSC::constructJSWebAssemblyMemory):

  • wasm/js/WebAssemblyModuleConstructor.cpp:

(JSC::webAssemblyModuleImports):
(JSC::webAssemblyModuleExports):

  • wasm/js/WebAssemblyModuleRecord.cpp:

(JSC::WebAssemblyModuleRecord::finishCreation):
(JSC::WebAssemblyModuleRecord::link):

  • wasm/js/WebAssemblyTableConstructor.cpp:

(JSC::constructJSWebAssemblyTable):

Source/WebCore:

No new tests. Covered by existing tests.

  • Modules/encryptedmedia/legacy/LegacyCDMSessionClearKey.cpp:

(WebCore::CDMSessionClearKey::update):

  • Modules/plugins/QuickTimePluginReplacement.mm:

(WebCore::QuickTimePluginReplacement::ensureReplacementScriptInjected):
(WebCore::QuickTimePluginReplacement::installReplacement):

  • animation/KeyframeEffect.cpp:

(WebCore::processKeyframeLikeObject):

  • bindings/js/GCController.cpp:

(WebCore::GCController::dumpHeap):

  • bindings/js/IDBBindingUtilities.cpp:

(WebCore::get):
(WebCore::set):

  • bindings/js/JSCSSRuleListCustom.cpp:

(WebCore::JSCSSRuleListOwner::isReachableFromOpaqueRoots):

  • bindings/js/JSCustomElementRegistryCustom.cpp:

(WebCore::JSCustomElementRegistry::define):

  • bindings/js/JSCustomXPathNSResolver.cpp:

(WebCore::JSCustomXPathNSResolver::lookupNamespaceURI):

  • bindings/js/JSDOMConvertRecord.h:
  • bindings/js/JSDOMConvertStrings.h:

(WebCore::JSConverter<IDLDOMString>::convert):
(WebCore::JSConverter<IDLByteString>::convert):
(WebCore::JSConverter<IDLUSVString>::convert):

  • bindings/js/JSDOMWindowCustom.cpp:

(WebCore::JSDOMWindow::getOwnPropertySlotByIndex):
(WebCore::addScopedChildrenIndexes):
(WebCore::JSDOMWindow::defineOwnProperty):
(WebCore::DialogHandler::dialogCreated):
(WebCore::DialogHandler::returnValue const):
(WebCore::JSDOMWindow::setOpener):
(WebCore::JSDOMWindow::setOpenDatabase):

  • bindings/js/JSDOMWindowProperties.cpp:

(WebCore::JSDOMWindowProperties::getOwnPropertySlotByIndex):

  • bindings/js/JSDeprecatedCSSOMValueCustom.cpp:

(WebCore::JSDeprecatedCSSOMValueOwner::isReachableFromOpaqueRoots):

  • bindings/js/JSEventListener.cpp:

(WebCore::JSEventListener::handleEvent):

  • bindings/js/JSImageDataCustom.cpp:

(WebCore::toJSNewlyCreated):

  • bindings/js/JSLazyEventListener.cpp:

(WebCore::JSLazyEventListener::initializeJSFunction const):

  • bindings/js/JSLocationCustom.cpp:

(WebCore::JSLocation::getOwnPropertySlotByIndex):
(WebCore::JSLocation::putByIndex):

  • bindings/js/JSNodeListCustom.cpp:

(WebCore::JSNodeListOwner::isReachableFromOpaqueRoots):

  • bindings/js/JSPluginElementFunctions.cpp:

(WebCore::pluginElementCustomGetCallData):

  • bindings/js/JSRemoteDOMWindowCustom.cpp:

(WebCore::JSRemoteDOMWindow::getOwnPropertySlotByIndex):

  • bindings/js/ReadableStreamDefaultController.cpp:

(WebCore::ReadableStreamDefaultController::invoke):

  • bindings/js/ScriptController.cpp:

(WebCore::ScriptController::linkAndEvaluateModuleScriptInWorld):

  • bindings/js/ScriptModuleLoader.cpp:

(WebCore::ScriptModuleLoader::resolve):
(WebCore::ScriptModuleLoader::importModule):
(WebCore::ScriptModuleLoader::createImportMetaProperties):

  • bindings/js/SerializedScriptValue.cpp:

(WebCore::CloneSerializer::CloneSerializer):
(WebCore::CloneSerializer::write):
(WebCore::CloneSerializer::serialize):
(WebCore::CloneDeserializer::CachedString::jsString):
(WebCore::CloneDeserializer::readTerminal):
(WebCore::CloneDeserializer::deserialize):

  • bindings/js/WebCoreBuiltinNames.h:

(WebCore::WebCoreBuiltinNames::WebCoreBuiltinNames):

  • bindings/js/WebCoreJSClientData.cpp:

(WebCore::JSVMClientData::JSVMClientData):

  • bindings/js/WindowProxy.cpp:

(WebCore::WindowProxy::clearJSWindowProxiesNotMatchingDOMWindow):

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateGetOwnPropertySlotByIndex):
(GenerateGetOwnPropertyNames):
(GeneratePutByIndex):
(GenerateDeletePropertyByIndex):
(GenerateDictionaryImplementationContent):
(addUnscopableProperties):
(GenerateImplementation):
(GenerateAttributeSetterBodyDefinition):
(GenerateOperationDefinition):
(GenerateSerializerDefinition):
(GenerateCallbackImplementationContent):
(GenerateConstructorHelperMethods):

  • bindings/scripts/test/JS/JSInterfaceName.cpp:

(WebCore::JSInterfaceNameConstructor::initializeProperties):

  • bindings/scripts/test/JS/JSMapLike.cpp:

(WebCore::JSMapLikeConstructor::initializeProperties):

  • bindings/scripts/test/JS/JSReadOnlyMapLike.cpp:

(WebCore::JSReadOnlyMapLikeConstructor::initializeProperties):

  • bindings/scripts/test/JS/JSTestActiveDOMObject.cpp:

(WebCore::JSTestActiveDOMObjectConstructor::initializeProperties):

  • bindings/scripts/test/JS/JSTestCEReactions.cpp:

(WebCore::JSTestCEReactionsConstructor::initializeProperties):
(WebCore::setJSTestCEReactionsAttributeWithCEReactionsSetter):
(WebCore::setJSTestCEReactionsReflectAttributeWithCEReactionsSetter):
(WebCore::setJSTestCEReactionsStringifierAttributeSetter):
(WebCore::setJSTestCEReactionsAttributeWithCEReactionsNotNeededSetter):
(WebCore::setJSTestCEReactionsReflectAttributeWithCEReactionsNotNeededSetter):
(WebCore::setJSTestCEReactionsStringifierAttributeNotNeededSetter):

  • bindings/scripts/test/JS/JSTestCEReactionsStringifier.cpp:

(WebCore::JSTestCEReactionsStringifierConstructor::initializeProperties):
(WebCore::setJSTestCEReactionsStringifierValueSetter):
(WebCore::setJSTestCEReactionsStringifierValueWithoutReactionsSetter):

  • bindings/scripts/test/JS/JSTestCallTracer.cpp:

(WebCore::JSTestCallTracerConstructor::initializeProperties):
(WebCore::setJSTestCallTracerTestAttributeInterfaceSetter):
(WebCore::setJSTestCallTracerTestAttributeSpecifiedSetter):
(WebCore::setJSTestCallTracerTestAttributeWithVariantSetter):

  • bindings/scripts/test/JS/JSTestCallbackInterface.cpp:

(WebCore::convertDictionary<TestCallbackInterface::Dictionary>):
(WebCore::JSTestCallbackInterfaceConstructor::initializeProperties):
(WebCore::JSTestCallbackInterface::callbackWithNoParam):
(WebCore::JSTestCallbackInterface::callbackWithArrayParam):
(WebCore::JSTestCallbackInterface::callbackWithSerializedScriptValueParam):
(WebCore::JSTestCallbackInterface::callbackWithStringList):
(WebCore::JSTestCallbackInterface::callbackWithBoolean):
(WebCore::JSTestCallbackInterface::callbackRequiresThisToPass):
(WebCore::JSTestCallbackInterface::callbackWithAReturnValue):
(WebCore::JSTestCallbackInterface::callbackThatRethrowsExceptions):
(WebCore::JSTestCallbackInterface::callbackThatSkipsInvokeCheck):
(WebCore::JSTestCallbackInterface::callbackWithThisObject):

  • bindings/scripts/test/JS/JSTestClassWithJSBuiltinConstructor.cpp:

(WebCore::JSTestClassWithJSBuiltinConstructorConstructor::initializeProperties):

  • bindings/scripts/test/JS/JSTestDOMJIT.cpp:

(WebCore::JSTestDOMJITConstructor::initializeProperties):
(WebCore::jsTestDOMJITPrototypeFunctionGetAttributeWithoutTypeCheck):
(WebCore::jsTestDOMJITPrototypeFunctionItemWithoutTypeCheck):
(WebCore::jsTestDOMJITPrototypeFunctionHasAttributeWithoutTypeCheck):
(WebCore::jsTestDOMJITPrototypeFunctionGetElementByIdWithoutTypeCheck):
(WebCore::jsTestDOMJITPrototypeFunctionGetElementsByNameWithoutTypeCheck):

  • bindings/scripts/test/JS/JSTestEnabledBySetting.cpp:

(WebCore::JSTestEnabledBySettingConstructor::initializeProperties):
(WebCore::JSTestEnabledBySettingPrototype::finishCreation):
(WebCore::setJSTestEnabledBySettingTestSubObjEnabledBySettingConstructorSetter):
(WebCore::setJSTestEnabledBySettingEnabledBySettingAttributeSetter):

  • bindings/scripts/test/JS/JSTestEnabledForContext.cpp:

(WebCore::JSTestEnabledForContextConstructor::initializeProperties):
(WebCore::setJSTestEnabledForContextTestSubObjEnabledForContextConstructorSetter):

  • bindings/scripts/test/JS/JSTestEventConstructor.cpp:

(WebCore::convertDictionary<TestEventConstructor::Init>):
(WebCore::JSTestEventConstructorConstructor::initializeProperties):

  • bindings/scripts/test/JS/JSTestEventTarget.cpp:

(WebCore::JSTestEventTargetConstructor::initializeProperties):
(WebCore::JSTestEventTarget::getOwnPropertySlotByIndex):
(WebCore::JSTestEventTarget::getOwnPropertyNames):

  • bindings/scripts/test/JS/JSTestException.cpp:

(WebCore::JSTestExceptionConstructor::initializeProperties):

  • bindings/scripts/test/JS/JSTestGenerateIsReachable.cpp:

(WebCore::JSTestGenerateIsReachableConstructor::initializeProperties):
(WebCore::JSTestGenerateIsReachablePrototype::finishCreation):

  • bindings/scripts/test/JS/JSTestGlobalObject.cpp:

(WebCore::JSTestGlobalObjectConstructor::initializeProperties):
(WebCore::setJSTestGlobalObjectRegularAttributeSetter):
(WebCore::setJSTestGlobalObjectPublicAndPrivateAttributeSetter):
(WebCore::setJSTestGlobalObjectPublicAndPrivateConditionalAttributeSetter):
(WebCore::setJSTestGlobalObjectEnabledAtRuntimeAttributeSetter):
(WebCore::setJSTestGlobalObjectTestCEReactionsConstructorSetter):
(WebCore::setJSTestGlobalObjectTestCEReactionsStringifierConstructorSetter):
(WebCore::setJSTestGlobalObjectTestCallTracerConstructorSetter):
(WebCore::setJSTestGlobalObjectTestCallbackInterfaceConstructorSetter):
(WebCore::setJSTestGlobalObjectTestClassWithJSBuiltinConstructorConstructorSetter):
(WebCore::setJSTestGlobalObjectTestDOMJITConstructorSetter):
(WebCore::setJSTestGlobalObjectTestDomainSecurityConstructorSetter):
(WebCore::setJSTestGlobalObjectTestEnabledBySettingConstructorSetter):
(WebCore::setJSTestGlobalObjectTestEnabledForContextConstructorSetter):
(WebCore::setJSTestGlobalObjectTestEventConstructorConstructorSetter):
(WebCore::setJSTestGlobalObjectTestEventTargetConstructorSetter):
(WebCore::setJSTestGlobalObjectTestExceptionConstructorSetter):
(WebCore::setJSTestGlobalObjectTestGenerateIsReachableConstructorSetter):
(WebCore::setJSTestGlobalObjectTestGlobalObjectConstructorSetter):
(WebCore::setJSTestGlobalObjectTestIndexedSetterNoIdentifierConstructorSetter):
(WebCore::setJSTestGlobalObjectTestIndexedSetterThrowingExceptionConstructorSetter):
(WebCore::setJSTestGlobalObjectTestIndexedSetterWithIdentifierConstructorSetter):
(WebCore::setJSTestGlobalObjectTestInterfaceConstructorSetter):
(WebCore::setJSTestGlobalObjectTestInterfaceLeadingUnderscoreConstructorSetter):
(WebCore::setJSTestGlobalObjectTestIterableConstructorSetter):
(WebCore::setJSTestGlobalObjectTestJSBuiltinConstructorConstructorSetter):
(WebCore::setJSTestGlobalObjectTestMapLikeConstructorSetter):
(WebCore::setJSTestGlobalObjectTestMediaQueryListListenerConstructorSetter):
(WebCore::setJSTestGlobalObjectTestNamedAndIndexedSetterNoIdentifierConstructorSetter):
(WebCore::setJSTestGlobalObjectTestNamedAndIndexedSetterThrowingExceptionConstructorSetter):
(WebCore::setJSTestGlobalObjectTestNamedAndIndexedSetterWithIdentifierConstructorSetter):
(WebCore::setJSTestGlobalObjectTestNamedConstructorConstructorSetter):
(WebCore::setJSTestGlobalObjectAudioConstructorSetter):
(WebCore::setJSTestGlobalObjectTestNamedDeleterNoIdentifierConstructorSetter):
(WebCore::setJSTestGlobalObjectTestNamedDeleterThrowingExceptionConstructorSetter):
(WebCore::setJSTestGlobalObjectTestNamedDeleterWithIdentifierConstructorSetter):
(WebCore::setJSTestGlobalObjectTestNamedDeleterWithIndexedGetterConstructorSetter):
(WebCore::setJSTestGlobalObjectTestNamedGetterCallWithConstructorSetter):
(WebCore::setJSTestGlobalObjectTestNamedGetterNoIdentifierConstructorSetter):
(WebCore::setJSTestGlobalObjectTestNamedGetterWithIdentifierConstructorSetter):
(WebCore::setJSTestGlobalObjectTestNamedSetterNoIdentifierConstructorSetter):
(WebCore::setJSTestGlobalObjectTestNamedSetterThrowingExceptionConstructorSetter):
(WebCore::setJSTestGlobalObjectTestNamedSetterWithIdentifierConstructorSetter):
(WebCore::setJSTestGlobalObjectTestNamedSetterWithIndexedGetterConstructorSetter):
(WebCore::setJSTestGlobalObjectTestNamedSetterWithIndexedGetterAndSetterConstructorSetter):
(WebCore::setJSTestGlobalObjectTestNamedSetterWithOverrideBuiltinsConstructorSetter):
(WebCore::setJSTestGlobalObjectTestNamedSetterWithUnforgablePropertiesConstructorSetter):
(WebCore::setJSTestGlobalObjectTestNamedSetterWithUnforgablePropertiesAndOverrideBuiltinsConstructorSetter):
(WebCore::setJSTestGlobalObjectTestOverloadedConstructorsConstructorSetter):
(WebCore::setJSTestGlobalObjectTestOverloadedConstructorsWithSequenceConstructorSetter):
(WebCore::setJSTestGlobalObjectTestOverrideBuiltinsConstructorSetter):
(WebCore::setJSTestGlobalObjectTestPluginInterfaceConstructorSetter):
(WebCore::setJSTestGlobalObjectTestReadOnlyMapLikeConstructorSetter):
(WebCore::setJSTestGlobalObjectTestReportExtraMemoryCostConstructorSetter):
(WebCore::setJSTestGlobalObjectTestSerializationConstructorSetter):
(WebCore::setJSTestGlobalObjectTestSerializationIndirectInheritanceConstructorSetter):
(WebCore::setJSTestGlobalObjectTestSerializationInheritConstructorSetter):
(WebCore::setJSTestGlobalObjectTestSerializationInheritFinalConstructorSetter):
(WebCore::setJSTestGlobalObjectTestSerializedScriptValueInterfaceConstructorSetter):
(WebCore::setJSTestGlobalObjectTestStringifierConstructorSetter):
(WebCore::setJSTestGlobalObjectTestStringifierAnonymousOperationConstructorSetter):
(WebCore::setJSTestGlobalObjectTestStringifierNamedOperationConstructorSetter):
(WebCore::setJSTestGlobalObjectTestStringifierOperationImplementedAsConstructorSetter):
(WebCore::setJSTestGlobalObjectTestStringifierOperationNamedToStringConstructorSetter):
(WebCore::setJSTestGlobalObjectTestStringifierReadOnlyAttributeConstructorSetter):
(WebCore::setJSTestGlobalObjectTestStringifierReadWriteAttributeConstructorSetter):
(WebCore::setJSTestGlobalObjectTestTypedefsConstructorSetter):

  • bindings/scripts/test/JS/JSTestIndexedSetterNoIdentifier.cpp:

(WebCore::JSTestIndexedSetterNoIdentifierConstructor::initializeProperties):
(WebCore::JSTestIndexedSetterNoIdentifier::getOwnPropertyNames):

  • bindings/scripts/test/JS/JSTestIndexedSetterThrowingException.cpp:

(WebCore::JSTestIndexedSetterThrowingExceptionConstructor::initializeProperties):
(WebCore::JSTestIndexedSetterThrowingException::getOwnPropertyNames):

  • bindings/scripts/test/JS/JSTestIndexedSetterWithIdentifier.cpp:

(WebCore::JSTestIndexedSetterWithIdentifierConstructor::initializeProperties):
(WebCore::JSTestIndexedSetterWithIdentifier::getOwnPropertyNames):

  • bindings/scripts/test/JS/JSTestInterface.cpp:

(WebCore::JSTestInterfaceConstructor::initializeProperties):
(WebCore::setJSTestInterfaceConstructorImplementsStaticAttrSetter):
(WebCore::setJSTestInterfaceImplementsStr2Setter):
(WebCore::setJSTestInterfaceImplementsStr3Setter):
(WebCore::setJSTestInterfaceImplementsNodeSetter):
(WebCore::setJSTestInterfaceConstructorSupplementalStaticAttrSetter):
(WebCore::setJSTestInterfaceSupplementalStr2Setter):
(WebCore::setJSTestInterfaceSupplementalStr3Setter):
(WebCore::setJSTestInterfaceSupplementalNodeSetter):
(WebCore::setJSTestInterfaceReflectAttributeSetter):

  • bindings/scripts/test/JS/JSTestInterfaceLeadingUnderscore.cpp:

(WebCore::JSTestInterfaceLeadingUnderscoreConstructor::initializeProperties):

  • bindings/scripts/test/JS/JSTestIterable.cpp:

(WebCore::JSTestIterableConstructor::initializeProperties):

  • bindings/scripts/test/JS/JSTestJSBuiltinConstructor.cpp:

(WebCore::JSTestJSBuiltinConstructorConstructor::initializeProperties):
(WebCore::setJSTestJSBuiltinConstructorTestAttributeRWCustomSetter):

  • bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp:

(WebCore::JSTestMediaQueryListListenerConstructor::initializeProperties):

  • bindings/scripts/test/JS/JSTestNamedAndIndexedSetterNoIdentifier.cpp:

(WebCore::JSTestNamedAndIndexedSetterNoIdentifierConstructor::initializeProperties):
(WebCore::JSTestNamedAndIndexedSetterNoIdentifier::getOwnPropertySlotByIndex):
(WebCore::JSTestNamedAndIndexedSetterNoIdentifier::getOwnPropertyNames):
(WebCore::JSTestNamedAndIndexedSetterNoIdentifier::putByIndex):

  • bindings/scripts/test/JS/JSTestNamedAndIndexedSetterThrowingException.cpp:

(WebCore::JSTestNamedAndIndexedSetterThrowingExceptionConstructor::initializeProperties):
(WebCore::JSTestNamedAndIndexedSetterThrowingException::getOwnPropertySlotByIndex):
(WebCore::JSTestNamedAndIndexedSetterThrowingException::getOwnPropertyNames):
(WebCore::JSTestNamedAndIndexedSetterThrowingException::putByIndex):

  • bindings/scripts/test/JS/JSTestNamedAndIndexedSetterWithIdentifier.cpp:

(WebCore::JSTestNamedAndIndexedSetterWithIdentifierConstructor::initializeProperties):
(WebCore::JSTestNamedAndIndexedSetterWithIdentifier::getOwnPropertySlotByIndex):
(WebCore::JSTestNamedAndIndexedSetterWithIdentifier::getOwnPropertyNames):
(WebCore::JSTestNamedAndIndexedSetterWithIdentifier::putByIndex):

  • bindings/scripts/test/JS/JSTestNamedConstructor.cpp:

(WebCore::JSTestNamedConstructorConstructor::initializeProperties):
(WebCore::JSTestNamedConstructorNamedConstructor::initializeProperties):

  • bindings/scripts/test/JS/JSTestNamedDeleterNoIdentifier.cpp:

(WebCore::JSTestNamedDeleterNoIdentifierConstructor::initializeProperties):
(WebCore::JSTestNamedDeleterNoIdentifier::getOwnPropertySlotByIndex):
(WebCore::JSTestNamedDeleterNoIdentifier::getOwnPropertyNames):
(WebCore::JSTestNamedDeleterNoIdentifier::deletePropertyByIndex):

  • bindings/scripts/test/JS/JSTestNamedDeleterThrowingException.cpp:

(WebCore::JSTestNamedDeleterThrowingExceptionConstructor::initializeProperties):
(WebCore::JSTestNamedDeleterThrowingException::getOwnPropertySlotByIndex):
(WebCore::JSTestNamedDeleterThrowingException::getOwnPropertyNames):
(WebCore::JSTestNamedDeleterThrowingException::deletePropertyByIndex):

  • bindings/scripts/test/JS/JSTestNamedDeleterWithIdentifier.cpp:

(WebCore::JSTestNamedDeleterWithIdentifierConstructor::initializeProperties):
(WebCore::JSTestNamedDeleterWithIdentifier::getOwnPropertySlotByIndex):
(WebCore::JSTestNamedDeleterWithIdentifier::getOwnPropertyNames):
(WebCore::JSTestNamedDeleterWithIdentifier::deletePropertyByIndex):

  • bindings/scripts/test/JS/JSTestNamedDeleterWithIndexedGetter.cpp:

(WebCore::JSTestNamedDeleterWithIndexedGetterConstructor::initializeProperties):
(WebCore::JSTestNamedDeleterWithIndexedGetter::getOwnPropertySlotByIndex):
(WebCore::JSTestNamedDeleterWithIndexedGetter::getOwnPropertyNames):

  • bindings/scripts/test/JS/JSTestNamedGetterCallWith.cpp:

(WebCore::JSTestNamedGetterCallWithConstructor::initializeProperties):
(WebCore::JSTestNamedGetterCallWith::getOwnPropertySlotByIndex):
(WebCore::JSTestNamedGetterCallWith::getOwnPropertyNames):

  • bindings/scripts/test/JS/JSTestNamedGetterNoIdentifier.cpp:

(WebCore::JSTestNamedGetterNoIdentifierConstructor::initializeProperties):
(WebCore::JSTestNamedGetterNoIdentifier::getOwnPropertySlotByIndex):
(WebCore::JSTestNamedGetterNoIdentifier::getOwnPropertyNames):

  • bindings/scripts/test/JS/JSTestNamedGetterWithIdentifier.cpp:

(WebCore::JSTestNamedGetterWithIdentifierConstructor::initializeProperties):
(WebCore::JSTestNamedGetterWithIdentifier::getOwnPropertySlotByIndex):
(WebCore::JSTestNamedGetterWithIdentifier::getOwnPropertyNames):

  • bindings/scripts/test/JS/JSTestNamedSetterNoIdentifier.cpp:

(WebCore::JSTestNamedSetterNoIdentifierConstructor::initializeProperties):
(WebCore::JSTestNamedSetterNoIdentifier::getOwnPropertySlotByIndex):
(WebCore::JSTestNamedSetterNoIdentifier::getOwnPropertyNames):
(WebCore::JSTestNamedSetterNoIdentifier::putByIndex):

  • bindings/scripts/test/JS/JSTestNamedSetterThrowingException.cpp:

(WebCore::JSTestNamedSetterThrowingExceptionConstructor::initializeProperties):
(WebCore::JSTestNamedSetterThrowingException::getOwnPropertySlotByIndex):
(WebCore::JSTestNamedSetterThrowingException::getOwnPropertyNames):
(WebCore::JSTestNamedSetterThrowingException::putByIndex):

  • bindings/scripts/test/JS/JSTestNamedSetterWithIdentifier.cpp:

(WebCore::JSTestNamedSetterWithIdentifierConstructor::initializeProperties):
(WebCore::JSTestNamedSetterWithIdentifier::getOwnPropertySlotByIndex):
(WebCore::JSTestNamedSetterWithIdentifier::getOwnPropertyNames):
(WebCore::JSTestNamedSetterWithIdentifier::putByIndex):

  • bindings/scripts/test/JS/JSTestNamedSetterWithIndexedGetter.cpp:

(WebCore::JSTestNamedSetterWithIndexedGetterConstructor::initializeProperties):
(WebCore::JSTestNamedSetterWithIndexedGetter::getOwnPropertySlotByIndex):
(WebCore::JSTestNamedSetterWithIndexedGetter::getOwnPropertyNames):
(WebCore::JSTestNamedSetterWithIndexedGetter::putByIndex):

  • bindings/scripts/test/JS/JSTestNamedSetterWithIndexedGetterAndSetter.cpp:

(WebCore::JSTestNamedSetterWithIndexedGetterAndSetterConstructor::initializeProperties):
(WebCore::JSTestNamedSetterWithIndexedGetterAndSetter::getOwnPropertySlotByIndex):
(WebCore::JSTestNamedSetterWithIndexedGetterAndSetter::getOwnPropertyNames):
(WebCore::JSTestNamedSetterWithIndexedGetterAndSetter::putByIndex):

  • bindings/scripts/test/JS/JSTestNamedSetterWithOverrideBuiltins.cpp:

(WebCore::JSTestNamedSetterWithOverrideBuiltinsConstructor::initializeProperties):
(WebCore::JSTestNamedSetterWithOverrideBuiltins::getOwnPropertySlotByIndex):
(WebCore::JSTestNamedSetterWithOverrideBuiltins::getOwnPropertyNames):
(WebCore::JSTestNamedSetterWithOverrideBuiltins::putByIndex):

  • bindings/scripts/test/JS/JSTestNamedSetterWithUnforgableProperties.cpp:

(WebCore::JSTestNamedSetterWithUnforgablePropertiesConstructor::initializeProperties):
(WebCore::JSTestNamedSetterWithUnforgableProperties::getOwnPropertySlotByIndex):
(WebCore::JSTestNamedSetterWithUnforgableProperties::getOwnPropertyNames):
(WebCore::JSTestNamedSetterWithUnforgableProperties::putByIndex):

  • bindings/scripts/test/JS/JSTestNamedSetterWithUnforgablePropertiesAndOverrideBuiltins.cpp:

(WebCore::JSTestNamedSetterWithUnforgablePropertiesAndOverrideBuiltinsConstructor::initializeProperties):
(WebCore::JSTestNamedSetterWithUnforgablePropertiesAndOverrideBuiltins::getOwnPropertySlotByIndex):
(WebCore::JSTestNamedSetterWithUnforgablePropertiesAndOverrideBuiltins::getOwnPropertyNames):
(WebCore::JSTestNamedSetterWithUnforgablePropertiesAndOverrideBuiltins::putByIndex):

  • bindings/scripts/test/JS/JSTestNode.cpp:

(WebCore::JSTestNodeConstructor::initializeProperties):
(WebCore::JSTestNodePrototype::finishCreation):
(WebCore::setJSTestNodeNameSetter):
(WebCore::JSTestNode::serialize):

  • bindings/scripts/test/JS/JSTestObj.cpp:

(WebCore::convertDictionary<TestObj::Dictionary>):
(WebCore::convertDictionaryToJS):
(WebCore::convertDictionary<TestObj::DictionaryThatShouldNotTolerateNull>):
(WebCore::convertDictionary<TestObj::DictionaryThatShouldTolerateNull>):
(WebCore::convertDictionary<AlternateDictionaryName>):
(WebCore::convertDictionary<TestObj::ParentDictionary>):
(WebCore::convertDictionary<TestObj::ChildDictionary>):
(WebCore::convertDictionary<TestObj::ConditionalDictionaryA>):
(WebCore::convertDictionary<TestObj::ConditionalDictionaryB>):
(WebCore::convertDictionary<TestObj::ConditionalDictionaryC>):
(WebCore::JSTestObjConstructor::initializeProperties):
(WebCore::JSTestObjPrototype::finishCreation):
(WebCore::JSTestObj::getOwnPropertyNames):
(WebCore::setJSTestObjConstructorStaticStringAttrSetter):
(WebCore::setJSTestObjEnumAttrSetter):
(WebCore::setJSTestObjByteAttrSetter):
(WebCore::setJSTestObjOctetAttrSetter):
(WebCore::setJSTestObjShortAttrSetter):
(WebCore::setJSTestObjClampedShortAttrSetter):
(WebCore::setJSTestObjEnforceRangeShortAttrSetter):
(WebCore::setJSTestObjUnsignedShortAttrSetter):
(WebCore::setJSTestObjLongAttrSetter):
(WebCore::setJSTestObjLongLongAttrSetter):
(WebCore::setJSTestObjUnsignedLongLongAttrSetter):
(WebCore::setJSTestObjStringAttrSetter):
(WebCore::setJSTestObjUsvstringAttrSetter):
(WebCore::setJSTestObjTestObjAttrSetter):
(WebCore::setJSTestObjTestNullableObjAttrSetter):
(WebCore::setJSTestObjLenientTestObjAttrSetter):
(WebCore::setJSTestObjStringAttrTreatingNullAsEmptyStringSetter):
(WebCore::setJSTestObjUsvstringAttrTreatingNullAsEmptyStringSetter):
(WebCore::setJSTestObjByteStringAttrTreatingNullAsEmptyStringSetter):
(WebCore::setJSTestObjStringLongRecordAttrSetter):
(WebCore::setJSTestObjUsvstringLongRecordAttrSetter):
(WebCore::setJSTestObjStringObjRecordAttrSetter):
(WebCore::setJSTestObjStringNullableObjRecordAttrSetter):
(WebCore::setJSTestObjDictionaryAttrSetter):
(WebCore::setJSTestObjNullableDictionaryAttrSetter):
(WebCore::setJSTestObjAnnotatedTypeInUnionAttrSetter):
(WebCore::setJSTestObjAnnotatedTypeInSequenceAttrSetter):
(WebCore::setJSTestObjImplementationEnumAttrSetter):
(WebCore::setJSTestObjXMLObjAttrSetter):
(WebCore::setJSTestObjCreateSetter):
(WebCore::setJSTestObjReflectedStringAttrSetter):
(WebCore::setJSTestObjReflectedUSVStringAttrSetter):
(WebCore::setJSTestObjReflectedIntegralAttrSetter):
(WebCore::setJSTestObjReflectedUnsignedIntegralAttrSetter):
(WebCore::setJSTestObjReflectedBooleanAttrSetter):
(WebCore::setJSTestObjReflectedURLAttrSetter):
(WebCore::setJSTestObjReflectedUSVURLAttrSetter):
(WebCore::setJSTestObjReflectedCustomIntegralAttrSetter):
(WebCore::setJSTestObjReflectedCustomBooleanAttrSetter):
(WebCore::setJSTestObjReflectedCustomURLAttrSetter):
(WebCore::setJSTestObjEnabledAtRuntimeAttributeSetter):
(WebCore::setJSTestObjConstructorEnabledAtRuntimeAttributeStaticSetter):
(WebCore::setJSTestObjTypedArrayAttrSetter):
(WebCore::setJSTestObjCustomAttrSetter):
(WebCore::setJSTestObjOnfooSetter):
(WebCore::setJSTestObjOnwebkitfooSetter):
(WebCore::setJSTestObjWithExecStateAttributeSetter):
(WebCore::setJSTestObjWithCallWithAndSetterCallWithAttributeSetter):
(WebCore::setJSTestObjWithScriptExecutionContextAttributeSetter):
(WebCore::setJSTestObjWithScriptExecutionContextAndExecStateAttributeSetter):
(WebCore::setJSTestObjWithScriptExecutionContextAndExecStateWithSpacesAttributeSetter):
(WebCore::setJSTestObjConditionalAttr1Setter):
(WebCore::setJSTestObjConditionalAttr2Setter):
(WebCore::setJSTestObjConditionalAttr3Setter):
(WebCore::setJSTestObjConditionalAttr4ConstructorSetter):
(WebCore::setJSTestObjConditionalAttr5ConstructorSetter):
(WebCore::setJSTestObjConditionalAttr6ConstructorSetter):
(WebCore::setJSTestObjAnyAttributeSetter):
(WebCore::setJSTestObjObjectAttributeSetter):
(WebCore::setJSTestObjMutablePointSetter):
(WebCore::setJSTestObjStrawberrySetter):
(WebCore::setJSTestObjIdSetter):
(WebCore::setJSTestObjReplaceableAttributeSetter):
(WebCore::setJSTestObjNullableLongSettableAttributeSetter):
(WebCore::setJSTestObjNullableStringSettableAttributeSetter):
(WebCore::setJSTestObjNullableUSVStringSettableAttributeSetter):
(WebCore::setJSTestObjNullableByteStringSettableAttributeSetter):
(WebCore::setJSTestObjAttributeWithReservedEnumTypeSetter):
(WebCore::setJSTestObjPutForwardsAttributeSetter):
(WebCore::setJSTestObjPutForwardsNullableAttributeSetter):
(WebCore::setJSTestObjStringifierAttributeSetter):
(WebCore::setJSTestObjConditionallyReadWriteAttributeSetter):
(WebCore::setJSTestObjConditionalAndConditionallyReadWriteAttributeSetter):
(WebCore::setJSTestObjConditionallyExposedToWindowAttributeSetter):
(WebCore::setJSTestObjConditionallyExposedToWorkerAttributeSetter):
(WebCore::setJSTestObjConditionallyExposedToWindowAndWorkerAttributeSetter):
(WebCore::JSTestObj::serialize):

  • bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp:

(WebCore::JSTestOverloadedConstructorsConstructor::initializeProperties):

  • bindings/scripts/test/JS/JSTestOverloadedConstructorsWithSequence.cpp:

(WebCore::JSTestOverloadedConstructorsWithSequenceConstructor::initializeProperties):

  • bindings/scripts/test/JS/JSTestOverrideBuiltins.cpp:

(WebCore::JSTestOverrideBuiltinsConstructor::initializeProperties):
(WebCore::JSTestOverrideBuiltins::getOwnPropertySlotByIndex):
(WebCore::JSTestOverrideBuiltins::getOwnPropertyNames):

  • bindings/scripts/test/JS/JSTestPluginInterface.cpp:

(WebCore::JSTestPluginInterfaceConstructor::initializeProperties):
(WebCore::JSTestPluginInterface::getOwnPropertySlotByIndex):
(WebCore::JSTestPluginInterface::putByIndex):

  • bindings/scripts/test/JS/JSTestPromiseRejectionEvent.cpp:

(WebCore::convertDictionary<TestPromiseRejectionEvent::Init>):
(WebCore::JSTestPromiseRejectionEventConstructor::initializeProperties):

  • bindings/scripts/test/JS/JSTestSerialization.cpp:

(WebCore::JSTestSerializationConstructor::initializeProperties):
(WebCore::setJSTestSerializationFirstStringAttributeSetter):
(WebCore::setJSTestSerializationSecondLongAttributeSetter):
(WebCore::setJSTestSerializationThirdUnserializableAttributeSetter):
(WebCore::setJSTestSerializationFourthUnrestrictedDoubleAttributeSetter):
(WebCore::setJSTestSerializationFifthLongAttributeSetter):
(WebCore::setJSTestSerializationSixthTypedefAttributeSetter):
(WebCore::setJSTestSerializationSeventhDirectlySerializableAttributeSetter):
(WebCore::setJSTestSerializationEighthIndirectlyAttributeSetter):
(WebCore::setJSTestSerializationNinthOptionalDirectlySerializableAttributeSetter):
(WebCore::setJSTestSerializationTenthFrozenArrayAttributeSetter):
(WebCore::setJSTestSerializationEleventhSequenceAttributeSetter):
(WebCore::setJSTestSerializationTwelfthInterfaceSequenceAttributeSetter):
(WebCore::JSTestSerialization::serialize):

  • bindings/scripts/test/JS/JSTestSerializationIndirectInheritance.cpp:

(WebCore::JSTestSerializationIndirectInheritanceConstructor::initializeProperties):

  • bindings/scripts/test/JS/JSTestSerializationInherit.cpp:

(WebCore::JSTestSerializationInheritConstructor::initializeProperties):
(WebCore::setJSTestSerializationInheritInheritLongAttributeSetter):
(WebCore::JSTestSerializationInherit::serialize):

  • bindings/scripts/test/JS/JSTestSerializationInheritFinal.cpp:

(WebCore::JSTestSerializationInheritFinalConstructor::initializeProperties):
(WebCore::setJSTestSerializationInheritFinalFinalLongAttributeFooSetter):
(WebCore::setJSTestSerializationInheritFinalFinalLongAttributeBarSetter):
(WebCore::JSTestSerializationInheritFinal::serialize):

  • bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:

(WebCore::JSTestSerializedScriptValueInterfaceConstructor::initializeProperties):
(WebCore::setJSTestSerializedScriptValueInterfaceValueSetter):
(WebCore::setJSTestSerializedScriptValueInterfaceCachedValueSetter):

  • bindings/scripts/test/JS/JSTestStandaloneDictionary.cpp:

(WebCore::convertDictionary<DictionaryImplName>):
(WebCore::convertDictionaryToJS):

  • bindings/scripts/test/JS/JSTestStringifier.cpp:

(WebCore::JSTestStringifierConstructor::initializeProperties):

  • bindings/scripts/test/JS/JSTestStringifierAnonymousOperation.cpp:

(WebCore::JSTestStringifierAnonymousOperationConstructor::initializeProperties):

  • bindings/scripts/test/JS/JSTestStringifierNamedOperation.cpp:

(WebCore::JSTestStringifierNamedOperationConstructor::initializeProperties):

  • bindings/scripts/test/JS/JSTestStringifierOperationImplementedAs.cpp:

(WebCore::JSTestStringifierOperationImplementedAsConstructor::initializeProperties):

  • bindings/scripts/test/JS/JSTestStringifierOperationNamedToString.cpp:

(WebCore::JSTestStringifierOperationNamedToStringConstructor::initializeProperties):

  • bindings/scripts/test/JS/JSTestStringifierReadOnlyAttribute.cpp:

(WebCore::JSTestStringifierReadOnlyAttributeConstructor::initializeProperties):

  • bindings/scripts/test/JS/JSTestStringifierReadWriteAttribute.cpp:

(WebCore::JSTestStringifierReadWriteAttributeConstructor::initializeProperties):
(WebCore::setJSTestStringifierReadWriteAttributeIdentifierSetter):

  • bindings/scripts/test/JS/JSTestTypedefs.cpp:

(WebCore::JSTestTypedefsConstructor::initializeProperties):
(WebCore::setJSTestTypedefsUnsignedLongLongAttrSetter):
(WebCore::setJSTestTypedefsSerializedScriptValueSetter):
(WebCore::setJSTestTypedefsAttributeWithClampSetter):
(WebCore::setJSTestTypedefsAttributeWithClampInTypedefSetter):
(WebCore::setJSTestTypedefsBufferSourceAttrSetter):
(WebCore::setJSTestTypedefsDomTimeStampAttrSetter):

  • bridge/NP_jsobject.cpp:
  • bridge/c/c_instance.cpp:

(JSC::Bindings::CInstance::stringValue const):
(JSC::Bindings::CInstance::getPropertyNames):

  • bridge/c/c_utility.cpp:

(JSC::Bindings::identifierFromNPIdentifier):

  • bridge/objc/WebScriptObject.mm:

(-[WebScriptObject callWebScriptMethod:withArguments:]):
(-[WebScriptObject setValue:forKey:]):
(-[WebScriptObject valueForKey:]):
(-[WebScriptObject removeWebScriptKey:]):
(-[WebScriptObject hasWebScriptKey:]):

  • bridge/objc/objc_runtime.mm:

(JSC::Bindings::ObjcFallbackObjectImp::defaultValue):

  • bridge/objc/objc_utility.mm:

(JSC::Bindings::convertNSStringToString):

  • bridge/runtime_array.cpp:

(JSC::RuntimeArray::getOwnPropertyNames):

  • contentextensions/ContentExtensionParser.cpp:

(WebCore::ContentExtensions::loadTrigger):
(WebCore::ContentExtensions::loadAction):

  • crypto/SubtleCrypto.cpp:

(WebCore::normalizeCryptoAlgorithmParameters):

  • domjit/DOMJITHelpers.h:

(WebCore::DOMJIT::toWrapperSlow):

  • html/HTMLMediaElement.cpp:

(WebCore::controllerJSValue):
(WebCore::HTMLMediaElement::updateCaptionContainer):
(WebCore::HTMLMediaElement::ensureMediaControlsInjectedScript):
(WebCore::HTMLMediaElement::setControllerJSProperty):
(WebCore::HTMLMediaElement::didAddUserAgentShadowRoot):
(WebCore::HTMLMediaElement::updateMediaControlsAfterPresentationModeChange):
(WebCore::HTMLMediaElement::getCurrentMediaControlsStatus):

  • html/HTMLPlugInImageElement.cpp:

(WebCore::HTMLPlugInImageElement::didAddUserAgentShadowRoot):

  • inspector/InspectorFrontendHost.cpp:

(WebCore::InspectorFrontendHost::addSelfToGlobalObjectInWorld):
(WebCore::InspectorFrontendHost::showContextMenu):

  • inspector/WebInjectedScriptHost.cpp:

(WebCore::WebInjectedScriptHost::subtype):
(WebCore::constructInternalProperty):
(WebCore::objectForPaymentOptions):
(WebCore::objectForPaymentCurrencyAmount):
(WebCore::objectForPaymentItem):
(WebCore::objectForPaymentShippingOption):
(WebCore::objectForPaymentDetailsModifier):
(WebCore::objectForPaymentDetails):
(WebCore::jsStringForPaymentRequestState):
(WebCore::WebInjectedScriptHost::getInternalProperties):

  • inspector/agents/InspectorCanvasAgent.cpp:

(WebCore::InspectorCanvasAgent::consoleStartRecordingCanvas):

  • inspector/agents/InspectorDOMAgent.cpp:

(WebCore::InspectorDOMAgent::buildObjectForEventListener):
(WebCore::InspectorDOMAgent::scriptValueAsNode):

  • inspector/agents/page/PageAuditAgent.cpp:

(WebCore::PageAuditAgent::populateAuditObject):

  • page/PageConsoleClient.cpp:

(WebCore::PageConsoleClient::screenshot):

  • platform/graphics/CustomPaintImage.cpp:

(WebCore::CustomPaintImage::doCustomPaint):

  • testing/js/WebCoreTestSupport.cpp:

(WebCoreTestSupport::injectInternalsObject):
(WebCoreTestSupport::setupNewlyCreatedServiceWorker):

  • worklets/PaintWorkletGlobalScope.cpp:

(WebCore::PaintWorkletGlobalScope::registerPaint):

Source/WebKit:

  • WebProcess/InjectedBundle/API/glib/DOM/WebKitDOMNode.cpp:

(webkit_dom_node_for_js_value):

  • WebProcess/InjectedBundle/DOM/InjectedBundleNodeHandle.cpp:

(WebKit::InjectedBundleNodeHandle::getOrCreate):

  • WebProcess/Plugins/Netscape/JSNPObject.cpp:

(WebKit::JSNPObject::getOwnPropertyNames):

  • WebProcess/Plugins/Netscape/NPJSObject.cpp:

(WebKit::identifierFromIdentifierRep):
(WebKit::NPJSObject::enumerate):

  • WebProcess/Plugins/Netscape/NPRuntimeObjectMap.cpp:

(WebKit::NPRuntimeObjectMap::convertNPVariantToJSValue):
(WebKit::NPRuntimeObjectMap::convertJSValueToNPVariant):

  • WebProcess/WebPage/WebFrame.cpp:

(WebKit::WebFrame::counterValue):

Source/WebKitLegacy/mac:

  • DOM/DOM.mm:

(+[DOMNode _nodeFromJSWrapper:]):

  • DOM/DOMUtility.mm:

(createDOMWrapper):

  • Plugins/Hosted/NetscapePluginHostProxy.mm:

(identifierFromIdentifierRep):

  • Plugins/Hosted/NetscapePluginInstanceProxy.mm:

(WebKit::NetscapePluginInstanceProxy::enumerate):
(WebKit::getObjectID):
(WebKit::NetscapePluginInstanceProxy::addValueToArray):
(WebKit::NetscapePluginInstanceProxy::demarshalValueFromArray):
(WebKit::NetscapePluginInstanceProxy::retainLocalObject):
(WebKit::NetscapePluginInstanceProxy::releaseLocalObject):

  • Plugins/Hosted/ProxyInstance.mm:

(WebKit::ProxyInstance::stringValue const):
(WebKit::ProxyInstance::getPropertyNames):

  • WebView/WebFrame.mm:

(-[WebFrame _stringByEvaluatingJavaScriptFromString:withGlobalObject:inScriptWorld:]):

Source/WebKitLegacy/win:

  • WebFrame.cpp:

(WebFrame::stringByEvaluatingJavaScriptInScriptWorld):

2:42 PM Changeset in webkit [249174] by Megan Gardner
  • 3 edits
    1 add in trunk/LayoutTests

Update Test Expectations for iPad for fast/scrolling/ios/autoscroll-input-when-very-zoomed.html
https://bugs.webkit.org/show_bug.cgi?id=201163
<rdar://problem/54727027>

Reviewed by Simon Fraser.

Altering test slightly to have a reasonable test expecation on iPad.

  • platform/ipad/fast/scrolling/ios/autoscroll-input-when-very-zoomed-expected.txt: Added.
2:40 PM Changeset in webkit [249173] by Devin Rousso
  • 7 edits in trunk

Web Inspector: don't attach properties to injectedScript for the CommandLineAPI
https://bugs.webkit.org/show_bug.cgi?id=201193

Reviewed by Joseph Pecoraro.

Source/JavaScriptCore:

For some reason, adding injectedScript._inspectObject inside CommandLineAPIModuleSource.js
causes inspector/debugger/tail-deleted-frames-this-value.html to fail.

We should have a similar approach to adding command line api getters and functions, in that
the CommandLineAPIModuleSource.js calls a function with a callback.

  • inspector/InjectedScriptSource.js:

(InjectedScript.prototype.inspectObject):
(InjectedScript.prototype.setInspectObject): Added.
(InjectedScript.prototype._evaluateOn):

Source/WebCore:

For some reason, adding injectedScript._inspectObject inside CommandLineAPIModuleSource.js
causes inspector/debugger/tail-deleted-frames-this-value.html to fail.

We should have a similar approach to adding command line api getters and functions, in that
the CommandLineAPIModuleSource.js calls a function with a callback.

  • inspector/CommandLineAPIModuleSource.js:

(injectedScript._inspectObject): Deleted.

LayoutTests:

  • http/tests/inspector/dom/cross-domain-inspected-node-access-expected.txt:
  • inspector/console/command-line-api-expected.txt:
2:24 PM Changeset in webkit [249172] by Alan Bujtas
  • 7 edits in trunk/Source/WebCore

[LFC][TFC] Align table formatting context code with the existing layout logic.
https://bugs.webkit.org/show_bug.cgi?id=201168
<rdar://problem/54732633>

Reviewed by Antti Koivisto.

Let's make the TFC go through the exisint shrink-to-fit computation. Tables behave slightly different from
other shrink-to-fit boxes as they are streched to their minimum width(MIN) even when 'width' is non-auto and computed to less than MIN.

  • layout/FormattingContextGeometry.cpp:

(WebCore::Layout::contentHeightForFormattingContextRoot):

  • layout/blockformatting/BlockFormattingContext.h:
  • layout/blockformatting/BlockFormattingContextGeometry.cpp:

(WebCore::Layout::BlockFormattingContext::Geometry::inFlowWidthAndMargin):

  • layout/tableformatting/TableFormattingContext.cpp:

(WebCore::Layout::TableFormattingContext::layout const):
(WebCore::Layout::TableFormattingContext::computedIntrinsicWidthConstraints const):
(WebCore::Layout::TableFormattingContext::computedTableWidth const):
(WebCore::Layout::TableFormattingContext::computeTableWidth const): Deleted.
(WebCore::Layout::TableFormattingContext::computeTableHeight const): Deleted.
(WebCore::Layout::TableFormattingContext::distributeAvailableHeight const): Deleted.

  • layout/tableformatting/TableFormattingContext.h:
  • layout/tableformatting/TableGrid.h:
2:14 PM Changeset in webkit [249171] by commit-queue@webkit.org
  • 8 edits in trunk/Source/WebKit

Populate alternate URL for _WKActivatedElementInfo in UIContextMenu SPI.
https://bugs.webkit.org/show_bug.cgi?id=201165.
rdar://problem/54729648.

Patch by James Savage <james.savage@apple.com> on 2019-08-27
Reviewed by Dean Jackson.

  • UIProcess/API/APIContextMenuElementInfo.h:
  • UIProcess/API/APIContextMenuElementInfo.cpp:

(API::ContextMenuElementInfo::ContextMenuElementInfo): Initialize new memeber.

  • UIProcess/API/Cocoa/WKContextMenuElementInfo.mm:

(-[WKContextMenuElementInfo _activatedElementInfo]): Use new initializer.

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _requestActivatedElementAtPosition:completionBlock:]): Ditto.

  • UIProcess/API/Cocoa/_WKActivatedElementInfoInternal.h:
  • UIProcess/API/Cocoa/_WKActivatedElementInfo.mm:

(+[_WKActivatedElementInfo activatedElementInfoWithInteractionInformationAtPosition:userInfo:]):

Ditto.

(-[_WKActivatedElementInfo _initWithInteractionInformationAtPosition:userInfo:]): Set new ivar.
(+[_WKActivatedElementInfo activatedElementInfoWithInteractionInformationAtPosition:]): Deleted.
(-[_WKActivatedElementInfo _initWithInteractionInformationAtPosition:]): Deleted.

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView assignLegacyDataForContextMenuInteraction]): Use new initializer.
(-[WKContentView continueContextMenuInteraction:]): If the context menu is being generated for

an image, and we do not have a URL associated with the position information, try to
generate one using existing SPI. This change also passes through the userInfo via a new
property on _WKActivatedElementInfo. We only do this for the SPI version of this delegate
method, because the API is not called for image previews.

(-[WKContentView _contextMenuInteraction:overrideSuggestedActionsForConfiguration:]): Use new

initializer.

2:09 PM Changeset in webkit [249170] by Simon Fraser
  • 2 edits in trunk/Source/WebCore

Minor optimization in InlineFlowBox::paintBoxDecorations()
https://bugs.webkit.org/show_bug.cgi?id=201199

Reviewed by Zalan Bujtas.

This function can early return before computing localRect, which takes a bit of time (seen
on profiles).

  • rendering/InlineFlowBox.cpp:

(WebCore::InlineFlowBox::paintBoxDecorations):

2:03 PM Changeset in webkit [249169] by Ryan Haddad
  • 3 edits in branches/safari-608-branch/LayoutTests

Revert r249166. rdar://problem/53829560

2:01 PM Changeset in webkit [249168] by Alan Coon
  • 4 edits in branches/safari-608-branch/Source/WebCore

Revert r249140. rdar://problem/54749102

2:01 PM Changeset in webkit [249167] by Alan Coon
  • 8 edits
    2 deletes in branches/safari-608-branch

Revert r249147. rdar://problem/54751753

1:24 PM Changeset in webkit [249166] by Ryan Haddad
  • 3 edits in branches/safari-608-branch/LayoutTests

Cherry-pick r249157. rdar://problem/53829560

Unreviewed test gardening, remove failure expectations for tests that are now passing.

  • platform/ios-12/TestExpectations:
  • platform/ios/TestExpectations:

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

1:23 PM Changeset in webkit [249165] by Ryan Haddad
  • 2 edits in branches/safari-608-branch/LayoutTests

Cherry-pick r249099. rdar://problem/51857070

rdar://51857070 (iPad: Many fast/text-autosizing layout tests are consistently failing)

Unreviewed Test Gardening.
Tests are no longer failing. Removing test expectations.

  • platform/ipad/TestExpectations:

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

1:10 PM Changeset in webkit [249164] by mark.lam@apple.com
  • 3 edits
    1 add in trunk

constructFunctionSkippingEvalEnabledCheck() should use tryMakeString() and check for OOM.
https://bugs.webkit.org/show_bug.cgi?id=201196
<rdar://problem/54703775>

Reviewed by Yusuke Suzuki.

JSTests:

  • stress/constructFunctionSkippingEvalEnabledCheck-should-throw-out-of-memory-error.js: Added.

Source/JavaScriptCore:

  • runtime/FunctionConstructor.cpp:

(JSC::constructFunctionSkippingEvalEnabledCheck):

1:00 PM Changeset in webkit [249163] by Devin Rousso
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: change the styling of the special log "bubble" to match WI.ScopeBar
https://bugs.webkit.org/show_bug.cgi?id=201152

Reviewed by Joseph Pecoraro.

  • UserInterface/Views/ConsoleMessageView.css:

(.console-user-command.special-user-log > .console-message-body):

12:50 PM Changeset in webkit [249162] by clopez@igalia.com
  • 17 edits
    3 adds in trunk

Drawing an animated image to a canvas via drawImage should draw the first frame
https://bugs.webkit.org/show_bug.cgi?id=74779
<rdar://problem/42282454>

Reviewed by Said Abou-Hallawa.

Source/WebCore:

After this patch, when an animated image is drawn into a canvas via
drawImage, the actual image that the canvas will receive will be
a new Image object with the contents of the first frame of the animation.

It also adds an internal setting to keep the previous behaviour
(draw the current frame playing) because there are several layout
tests that rely on canvas.drawImage() to check that animated images
play properly.

Test: fast/canvas/drawImage-animated-gif-draws-first-frame-and-no-reset-image.html

  • html/canvas/CanvasRenderingContext2DBase.cpp:

(WebCore::CanvasRenderingContext2DBase::drawImage):

  • page/Settings.yaml:
  • testing/InternalSettings.cpp:

(WebCore::InternalSettings::Backup::Backup):
(WebCore::InternalSettings::Backup::restoreTo):
(WebCore::InternalSettings::setAnimatedImageDebugCanvasDrawingEnabled):

  • testing/InternalSettings.h:
  • testing/InternalSettings.idl:

LayoutTests:

Adds a test that checks that when drawing an animated image into a canvas
it draws the first frame and that the animation doesn't reset or pause.

Also enable the new internal setting setAnimatedImageDebugCanvasDrawingEnabled()
for the tests that rely on canvas.drawImage() drawing the current frame instead
of the first one.

  • fast/canvas/drawImage-animated-gif-draws-first-frame-and-no-reset-image-expected.txt: Added.
  • fast/canvas/drawImage-animated-gif-draws-first-frame-and-no-reset-image.html: Added.

The above test checks that when drawing an animated image to a canvas it draws the first frame
and that the playing image doesn't get reseted and finish playing.

  • fast/canvas/resources/animated-red-green-blue-yellow-cyan-black-repeat-1.gif: Added.
  • fast/images/animated-gif-restored-from-bfcache.html: Enable internals.settings.setAnimatedImageDebugCanvasDrawingEnabled().
  • fast/images/animated-image-different-dest-size.html: Ditto.
  • fast/images/animated-image-loop-count.html: Ditto.
  • fast/images/animated-image-mp4.html: Ditto.
  • fast/images/decode-animated-image.html: Ditto.
  • fast/images/decode-render-animated-image.html: Ditto.
  • fast/images/ordered-animated-image-frames.html: Ditto.
  • fast/images/reset-image-animation.html: Ditto.
  • fast/images/slower-animation-than-decoding-image.html: Ditto.
  • fast/images/slower-decoding-than-animation-image.html: Ditto.
12:32 PM Changeset in webkit [249161] by zhifei_fang@apple.com
  • 2 edits in trunk/Tools

[results.webkit.org Webkit.css] Center the legend symbols
https://bugs.webkit.org/show_bug.cgi?id=201187

Reviewed by Jonathan Bedard.

  • resultsdbpy/resultsdbpy/view/static/library/css/webkit.css:

(.lengend>.item .dot .text): center the dot symbol vertically

12:29 PM Changeset in webkit [249160] by Antti Koivisto
  • 8 edits in trunk/Source/WebCore

InlineTextBox::end() should return first-past-end offset
https://bugs.webkit.org/show_bug.cgi?id=201181

Reviewed by Zalan Bujtas.

It currently points to the last character, except for empty text boxes.
This is awkward in itself and also inconsistent, as we use first-past-end offset everywhere else.

  • dom/Position.cpp:

(WebCore::Position::downstream const):

Add a check for zero length case to avoid changing behavior.

  • layout/Verification.cpp:

(WebCore::Layout::checkForMatchingTextRuns):
(WebCore::Layout::outputMismatchingComplexLineInformationIfNeeded):

  • rendering/InlineFlowBox.cpp:

(WebCore::InlineFlowBox::placeBoxRangeInInlineDirection):

  • rendering/InlineTextBox.cpp:

(WebCore::InlineTextBox::paint):
(WebCore::InlineTextBox::calculateDocumentMarkerBounds const):
(WebCore::InlineTextBox::collectMarkedTextsForDocumentMarkers const):
(WebCore::InlineTextBox::paintCompositionUnderlines const):
(WebCore::InlineTextBox::paintCompositionUnderline const):

  • rendering/InlineTextBox.h:

(WebCore::InlineTextBox::end const):

end = start + len

  • rendering/RenderText.cpp:

(WebCore::RenderText::setTextWithOffset):

  • rendering/RenderTextLineBoxes.cpp:

(WebCore::localQuadForTextBox):
(WebCore::RenderTextLineBoxes::absoluteRectsForRange const):
(WebCore::RenderTextLineBoxes::absoluteQuadsForRange const):
(WebCore::RenderTextLineBoxes::dirtyRange):

Here the incoming 'end' used linebox style too, move that to the new definition too.

12:04 PM Changeset in webkit [249159] by keith_miller@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

When dumping Air Graphs BBQ should dump patchpoints.
https://bugs.webkit.org/show_bug.cgi?id=201167

Reviewed by Filip Pizlo.

  • wasm/WasmAirIRGenerator.cpp:

(JSC::Wasm::AirIRGenerator:: const):
(JSC::Wasm::AirIRGenerator::addPatchpoint):
(JSC::Wasm::parseAndCompileAir):

11:59 AM Changeset in webkit [249158] by Basuke Suzuki
  • 15 edits in trunk/Source

[RemoteInspector][Socket] Restructuring the components of Socket implementation
https://bugs.webkit.org/show_bug.cgi?id=201079

Reviewed by Ross Kirsling.

Source/JavaScriptCore:

Since the change for WeakPtr on r248386, our port start assertion failure on the usage of
RemoteInspectorSocketEndpoint. We have to send a message to connection client, but if that
has to be done in the same thread which weakPtr generated, it's a little bit stronger
restriction for us to handle. In this restructure, we are stopping to use weakPtr to
resolve circular dependency, but using a reference with invalidation method because
everything is under our control.

  • Make SocketEndpoint a singleton. This class represents a central place to handle socket connections and there's no need to instantiate more than one in a process. Once every connection goes away, it just start sleeping until next connection is created. Very low resource usage when it is idle.
  • Move Socket::Connection structure from global definition to SocketEndpoint local structure. It is directly used in SocketEndpoint privately.
  • Move responsibility to handle message encoding/decoding task from SocketEndpoint to ConnectionClient. Make SocketEndpoint as plain socket handling as possible to keep it simple to exist long span.
  • Extract an interface from ConnectionClient as SocketEndpoint::Client which is required to work with SocketEndpoint. Now SocketEndpoint is very independent from others. SocketEndpoint::Client is the required parameter to create a connection.

Many responsibilities are moved into ConnectionClient which was a thin interface for
communication between RemoteInspector, RemoteInspectorServer and RemoteInspectorClient.
It now handles followings:

  • life cycle of connection: create, listen and close or invalidation
  • sending and receiving data packed in a message.

RemoteInspector and RemoteInspectorServer are now free from creation of SocketEndpoint.
All communication to SocketEndpoint id now the duty of super class.

  • inspector/remote/RemoteInspector.h:
  • inspector/remote/socket/RemoteInspectorConnectionClient.cpp:

(Inspector::RemoteInspectorConnectionClient::~RemoteInspectorConnectionClient): Make all connection invalidated.
(Inspector::RemoteInspectorConnectionClient::connectInet): Add itself as a listener of socket.
(Inspector::RemoteInspectorConnectionClient::listenInet): Ditto.
(Inspector::RemoteInspectorConnectionClient::createClient): Ditto.
(Inspector::RemoteInspectorConnectionClient::send): Add message processing.
(Inspector::RemoteInspectorConnectionClient::didReceive): Ditto.
(Inspector::RemoteInspectorConnectionClient::extractEvent): Extracted from send.

  • inspector/remote/socket/RemoteInspectorConnectionClient.h:
  • inspector/remote/socket/RemoteInspectorMessageParser.cpp:

(Inspector::MessageParser::MessageParser):
(Inspector::MessageParser::pushReceivedData):
(Inspector::MessageParser::parse):

  • inspector/remote/socket/RemoteInspectorMessageParser.h:

(Inspector::MessageParser::MessageParser):
(Inspector::MessageParser::Function<void):

  • inspector/remote/socket/RemoteInspectorServer.cpp:

(Inspector::RemoteInspectorServer::connect): Remove direct communication to Socket Endpoint.
(Inspector::RemoteInspectorServer::listenForTargets): Ditto.
(Inspector::RemoteInspectorServer::sendWebInspectorEvent): Ditto.
(Inspector::RemoteInspectorServer::start): Ditto.

  • inspector/remote/socket/RemoteInspectorServer.h:
  • inspector/remote/socket/RemoteInspectorSocket.cpp:

(Inspector::RemoteInspector::sendWebInspectorEvent): Remove direct communication to Socket Endpoint.
(Inspector::RemoteInspector::start): Ditto.
(Inspector::RemoteInspector::stopInternal): Ditto.
(Inspector::RemoteInspector::pushListingsNow): Change the target of validity check to ID.
(Inspector::RemoteInspector::pushListingsSoon): Ditto.
(Inspector::RemoteInspector::sendMessageToRemote): Ditto.

  • inspector/remote/socket/RemoteInspectorSocket.h: Move Connection structure to RemoteInspectorSocketEndpoint.
  • inspector/remote/socket/RemoteInspectorSocketEndpoint.cpp:

(Inspector::RemoteInspectorSocketEndpoint::singleton): Added.
(Inspector::RemoteInspectorSocketEndpoint::RemoteInspectorSocketEndpoint): Use hard-coded thread name.
(Inspector::RemoteInspectorSocketEndpoint::connectInet): Accept RemoteInspectorSocketEndpoint::Client as listener.
(Inspector::RemoteInspectorSocketEndpoint::listenInet): Ditto.
(Inspector::RemoteInspectorSocketEndpoint::createClient): Ditto.
(Inspector::RemoteInspectorSocketEndpoint::invalidateClient): Added. Invalidate all connection from the client.
(Inspector::RemoteInspectorSocketEndpoint::recvIfEnabled): Remove message parser handling.
(Inspector::RemoteInspectorSocketEndpoint::send): Remove message packing.
(Inspector::RemoteInspectorSocketEndpoint::acceptInetSocketIfEnabled):

  • inspector/remote/socket/RemoteInspectorSocketEndpoint.h:

(Inspector::RemoteInspectorSocketEndpoint::Connection::Connection):

Source/WebKit:

RemoteInspectorClient is now free from creation of SocketEndpoint. All communication
to SocketEndpoint id now the duty of super class.

  • UIProcess/socket/RemoteInspectorClient.cpp:

(WebKit::RemoteInspectorClient::RemoteInspectorClient): Remove direct communication to Socket Endpoint.
(WebKit::RemoteInspectorClient::sendWebInspectorEvent): Ditto.

  • UIProcess/socket/RemoteInspectorClient.h:
11:45 AM Changeset in webkit [249157] by Ryan Haddad
  • 3 edits in trunk/LayoutTests

Unreviewed test gardening, remove failure expectations for tests that are now passing.

  • platform/ios-12/TestExpectations:
  • platform/ios/TestExpectations:
11:38 AM Changeset in webkit [249156] by Chris Dumez
  • 3 edits
    3 adds in trunk

Crash under WebCore::jsNotificationConstructorPermission
https://bugs.webkit.org/show_bug.cgi?id=201186
<rdar://problem/53962833>

Reviewed by Youenn Fablet.

Source/WebCore:

Update the Notification API implementation to null-check the page before using. The page becomes null
when using the API in a frame that gets detached from its parent while in the middle of running
script.

Test: http/tests/notifications/request-in-detached-frame.html

  • Modules/notifications/Notification.cpp:

(WebCore::Notification::permission):
(WebCore::Notification::requestPermission):

LayoutTests:

Add layout test coverage.

  • http/tests/notifications/request-in-detached-frame-expected.txt: Added.
  • http/tests/notifications/request-in-detached-frame.html: Added.
  • http/tests/notifications/resources/request-in-detached-frame-subframe.html: Added.
11:22 AM Changeset in webkit [249155] by Chris Dumez
  • 10 edits
    4 adds in trunk/Source/WebKit

Introduce subclasses to RemoteObjectRegistry for the UIProcess and the WebProcess
https://bugs.webkit.org/show_bug.cgi?id=201153

Reviewed by Alex Christensen.

This better factoring improves code clarity.

  • PlatformMac.cmake:
  • Shared/API/Cocoa/RemoteObjectRegistry.h:

(WebKit::RemoteObjectRegistry::~RemoteObjectRegistry):
(WebKit::RemoteObjectRegistry::takeBackgroundActivityToken):

  • Shared/API/Cocoa/RemoteObjectRegistry.mm:

(WebKit::RemoteObjectRegistry::RemoteObjectRegistry):
(WebKit::RemoteObjectRegistry::sendInvocation):
(WebKit::RemoteObjectRegistry::sendReplyBlock):
(WebKit::RemoteObjectRegistry::sendUnusedReply):

  • Shared/API/Cocoa/_WKRemoteObjectRegistry.mm:

(-[_WKRemoteObjectRegistry _initWithWebPage:]):
(-[_WKRemoteObjectRegistry _initWithWebPageProxy:]):

  • SourcesCocoa.txt:
  • UIProcess/Cocoa/UIRemoteObjectRegistry.cpp: Added.

(WebKit::UIRemoteObjectRegistry::takeBackgroundActivityToken):
(WebKit::UIRemoteObjectRegistry::UIRemoteObjectRegistry):
(WebKit::UIRemoteObjectRegistry::sendInvocation):
(WebKit::UIRemoteObjectRegistry::messageSender):

  • UIProcess/Cocoa/UIRemoteObjectRegistry.h: Added.
  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/WebPage/Cocoa/WebPageCocoa.mm:

(WebKit::WebPage::setRemoteObjectRegistry):
(WebKit::WebPage::remoteObjectRegistry):

  • WebProcess/WebPage/Cocoa/WebRemoteObjectRegistry.cpp: Added.

(WebKit::WebRemoteObjectRegistry::WebRemoteObjectRegistry):
(WebKit::WebRemoteObjectRegistry::~WebRemoteObjectRegistry):
(WebKit::WebRemoteObjectRegistry::close):
(WebKit::WebRemoteObjectRegistry::messageSender):

  • WebProcess/WebPage/Cocoa/WebRemoteObjectRegistry.h: Added.
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::close):

  • WebProcess/WebPage/WebPage.h:
11:16 AM Changeset in webkit [249154] by youenn@apple.com
  • 3 edits in trunk/Source/WebCore

Disabled devices should not be taken into account when searching for a capture device
https://bugs.webkit.org/show_bug.cgi?id=201183
<rdar://problem/54353440>

Reviewed by Jer Noble.

Manually tested.

  • platform/mediastream/mac/CoreAudioCaptureDeviceManager.cpp:

(WebCore::CoreAudioCaptureDeviceManager::coreAudioDeviceWithUID):
We currently keep a list of devices, some of which might be disabled.
We should not take into account disabled devices, only enabled devices
when doing this search.

  • platform/mediastream/mac/CoreAudioCaptureSource.cpp:

(WebCore::CoreAudioSharedUnit::setupAudioUnit):
Improve logging.

11:16 AM Changeset in webkit [249153] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Unreviewed test gardening, land expectation for rdar://54317204.

  • platform/mac/TestExpectations:
11:06 AM Changeset in webkit [249152] by wenson_hsieh@apple.com
  • 2 edits in trunk/LayoutTests

fast/scrolling/ios/click-events-during-momentum-scroll-in-overflow-after-tap-on-body.html times out on iPad
https://bugs.webkit.org/show_bug.cgi?id=201182
<rdar://problem/54562829>

Reviewed by Tim Horton.

This test verifies that if the user taps outside of a scrollable container that is decelerating, the page will
observe a click event. This test currently behaves as expected on iPhone, but on iPad, the tap which is
intended to be outside the scrollable area ends up inside it, so a click event is never dispatched. Instead of
hard-coding the tap location, address this test failure by targetting a separate element outside of the
scrollable area.

  • fast/scrolling/ios/click-events-during-momentum-scroll-in-overflow-after-tap-on-body.html:
11:01 AM Changeset in webkit [249151] by Jonathan Bedard
  • 4 edits in trunk/Tools

run-webkit-tests: Use -noBulkSymbolication when calling spindump (Follow-up fix)
https://bugs.webkit.org/show_bug.cgi?id=201000
<rdar://problem/53778938>

Unreviewed follow-up fix.

  • Scripts/webkitpy/port/darwin.py:

(DarwinPort.sample_process): Run spindump without -noBulkSymbolication if previous
spindump call failed.

  • Scripts/webkitpy/port/darwin_testcase.py:
  • Scripts/webkitpy/port/ios_device_unittest.py:
10:34 AM Changeset in webkit [249150] by Adrian Perez de Castro
  • 2 edits in trunk/Source/WebCore/platform/gtk/po

[GTK][l10n] Updated Polish translation of WebKitGTK for 2.26
https://bugs.webkit.org/show_bug.cgi?id=201125

Rubber-stamped by Adrian Perez de Castro. One more string updated.

  • pl.po:
10:21 AM Changeset in webkit [249149] by Alan Coon
  • 8 edits
    2 adds in branches/safari-608-branch

Cherry-pick r249147. rdar://problem/54751753

Removing fullscreen element in rAF() callback after requestFullscreen() can leave fullscreen in inconsistent state.
https://bugs.webkit.org/show_bug.cgi?id=201101
<rdar://problem/54164587>

Reviewed by Eric Carlson.

Source/WebCore:

Test: fullscreen/full-screen-request-removed-with-raf.html

Add a new state variable, m_pendingFullscreenElement, to track which element is about to
become the fullscreen element, so that when elements are removed or cancelFullscreen() is
called, the state machine inside the fullscreen algorithm can cancel effectively.

  • dom/FullscreenManager.cpp: (WebCore::FullscreenManager::requestFullscreenForElement): (WebCore::FullscreenManager::cancelFullscreen): (WebCore::FullscreenManager::exitFullscreen): (WebCore::FullscreenManager::willEnterFullscreen): (WebCore::FullscreenManager::willExitFullscreen): (WebCore::FullscreenManager::didExitFullscreen): (WebCore::FullscreenManager::adjustFullscreenElementOnNodeRemoval): (WebCore::FullscreenManager::clear): (WebCore::FullscreenManager::fullscreenElementRemoved): Deleted.
  • dom/FullscreenManager.h:

Source/WebKit:

Add more state to track in which direction the animation is flowing to allow in-process
animations to be cancelled more gracefully.

  • UIProcess/ios/fullscreen/WKFullScreenWindowControllerIOS.mm: (-[WKFullScreenWindowController enterFullScreen]): (-[WKFullScreenWindowController beganEnterFullScreenWithInitialFrame:finalFrame:]): (-[WKFullScreenWindowController requestExitFullScreen]): (-[WKFullScreenWindowController exitFullScreen]):
  • WebProcess/cocoa/VideoFullscreenManager.h: (WebKit::VideoFullscreenInterfaceContext::animationState const): (WebKit::VideoFullscreenInterfaceContext::setAnimationState): (WebKit::VideoFullscreenInterfaceContext::isAnimating const): Deleted. (WebKit::VideoFullscreenInterfaceContext::setIsAnimating): Deleted.
  • WebProcess/cocoa/VideoFullscreenManager.mm: (WebKit::VideoFullscreenManager::enterVideoFullscreenForVideoElement): (WebKit::VideoFullscreenManager::exitVideoFullscreenForVideoElement): (WebKit::VideoFullscreenManager::didEnterFullscreen): (WebKit::VideoFullscreenManager::didCleanupFullscreen):

LayoutTests:

  • fullscreen/full-screen-request-removed-with-raf-expected.txt: Added.
  • fullscreen/full-screen-request-removed-with-raf.html: Added.

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

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

[ews-build] Use update-webkit script in Apply-WatchList EWS
https://bugs.webkit.org/show_bug.cgi?id=201179

Reviewed by Jonathan Bedard.

  • BuildSlaveSupport/ews-build/factories.py:

(WatchListFactory): Updated to use CheckOutSource step as well.

9:48 AM Changeset in webkit [249147] by jer.noble@apple.com
  • 8 edits
    2 adds in trunk

Removing fullscreen element in rAF() callback after requestFullscreen() can leave fullscreen in inconsistent state.
https://bugs.webkit.org/show_bug.cgi?id=201101
<rdar://problem/54164587>

Reviewed by Eric Carlson.

Source/WebCore:

Test: fullscreen/full-screen-request-removed-with-raf.html

Add a new state variable, m_pendingFullscreenElement, to track which element is about to
become the fullscreen element, so that when elements are removed or cancelFullscreen() is
called, the state machine inside the fullscreen algorithm can cancel effectively.

  • dom/FullscreenManager.cpp:

(WebCore::FullscreenManager::requestFullscreenForElement):
(WebCore::FullscreenManager::cancelFullscreen):
(WebCore::FullscreenManager::exitFullscreen):
(WebCore::FullscreenManager::willEnterFullscreen):
(WebCore::FullscreenManager::willExitFullscreen):
(WebCore::FullscreenManager::didExitFullscreen):
(WebCore::FullscreenManager::adjustFullscreenElementOnNodeRemoval):
(WebCore::FullscreenManager::clear):
(WebCore::FullscreenManager::fullscreenElementRemoved): Deleted.

  • dom/FullscreenManager.h:

Source/WebKit:

Add more state to track in which direction the animation is flowing to allow in-process
animations to be cancelled more gracefully.

  • UIProcess/ios/fullscreen/WKFullScreenWindowControllerIOS.mm:

(-[WKFullScreenWindowController enterFullScreen]):
(-[WKFullScreenWindowController beganEnterFullScreenWithInitialFrame:finalFrame:]):
(-[WKFullScreenWindowController requestExitFullScreen]):
(-[WKFullScreenWindowController exitFullScreen]):

  • WebProcess/cocoa/VideoFullscreenManager.h:

(WebKit::VideoFullscreenInterfaceContext::animationState const):
(WebKit::VideoFullscreenInterfaceContext::setAnimationState):
(WebKit::VideoFullscreenInterfaceContext::isAnimating const): Deleted.
(WebKit::VideoFullscreenInterfaceContext::setIsAnimating): Deleted.

  • WebProcess/cocoa/VideoFullscreenManager.mm:

(WebKit::VideoFullscreenManager::enterVideoFullscreenForVideoElement):
(WebKit::VideoFullscreenManager::exitVideoFullscreenForVideoElement):
(WebKit::VideoFullscreenManager::didEnterFullscreen):
(WebKit::VideoFullscreenManager::didCleanupFullscreen):

LayoutTests:

  • fullscreen/full-screen-request-removed-with-raf-expected.txt: Added.
  • fullscreen/full-screen-request-removed-with-raf.html: Added.
9:19 AM Changeset in webkit [249146] by Alan Coon
  • 4 edits in branches/safari-608-branch/Source/WebCore

Cherry-pick r249140. rdar://problem/54749102

Image pasted from screenshot into Mail compose window via share sheet has the wrong aspect ratio
https://bugs.webkit.org/show_bug.cgi?id=201171
<rdar://problem/54671275>

Reviewed by Tim Horton.

Augments an existing app-specific hack to include the Mail composition service, in addition to Mail.

  • platform/RuntimeApplicationChecks.h:
  • platform/cocoa/RuntimeApplicationChecksCocoa.mm: (WebCore::IOSApplication::isMailCompositionService):

Add a new bundle checking method for the Mail composition service (com.apple.MailCompositionService).

  • platform/ios/PlatformPasteboardIOS.mm: (WebCore::PlatformPasteboard::informationForItemAtIndex):

Only plumb the preferred presentation height through to the web process if the application is neither Mail nor
the Mail composition service. In the future, we should consider putting this hack behind SPI, or maybe only
expose the preferred presentation width in all apps (it isn't difficult to imagine a use case where a "Mail-
compose-like" web app has img { max-width: 100%; } in their stylesheet).

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

9:19 AM Changeset in webkit [249145] by Alan Coon
  • 6 edits
    2 adds in branches/safari-608-branch

Cherry-pick r249074. rdar://problem/54735492

[iOS] [WebKit2] Tapping on the “I’m” text suggestion after typing “i’” does nothing
https://bugs.webkit.org/show_bug.cgi?id=201085
<rdar://problem/53056118>

Reviewed by Tim Horton.

Source/WebCore:

Exposes an existing quote folding function as a helper on TextIterator, and also adjusts foldQuoteMarks to take
a const String& rather than a String. See WebKit ChangeLog for more details.

  • editing/TextIterator.cpp: (WebCore::foldQuoteMarks): (WebCore::SearchBuffer::SearchBuffer):
  • editing/TextIterator.h:

Source/WebKit:

Currently, logic in applyAutocorrectionInternal only selects the range to autocorrect if the text of the range
matches the string to replace (delivered to us from UIKit). In the case of changing "I’" to "I’m", the string to
replace is "I'" (with a straight quote rather than an apostrophe), even though the DOM contains an apostrophe.

This is because kbd believes that the document context contains straight quotes (rather than apostrophes). For
native text views, this works out because UIKit uses relative UITextPositions to determine the replacement
range rather than by checking against the contents of the document. However, WKWebView does not have the ability
to synchronously compute and reason about arbitrary UITextPositions relative to the selection, so we instead
search for the string near the current selection when applying autocorrections.

Of course, this doesn't work in this scenario because the replacement string contains a straight quote, yet the
text node contains an apostrophe, so we bail and don't end up replacing any text. To address this, we repurpose
TextIterator helpers currently used to allow find-in-page to match straight quotes against apostrophes; instead
of matching the replacement string exactly, we instead match the quote-folded versions of these strings when
finding the range to replace.

Test: fast/events/ios/autocorrect-with-apostrophe.html

  • WebProcess/WebPage/ios/WebPageIOS.mm: (WebKit::WebPage::applyAutocorrectionInternal):

LayoutTests:

Add a new layout test to verify that "I’" can be autocorrected to "I’m".

  • fast/events/ios/autocorrect-with-apostrophe-expected.txt: Added.
  • fast/events/ios/autocorrect-with-apostrophe.html: Added.

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

9:19 AM Changeset in webkit [249144] by Alan Coon
  • 4 edits in branches/safari-608-branch/Source/WebCore

Cherry-pick r248886. rdar://problem/54365278

Source/WebCore:
[Cocoa] Fix misspelling of -preventsDisplaySleepForVideoPlayback
https://bugs.webkit.org/show_bug.cgi?id=200774
<rdar://problem/54321071>

Reviewed by Eric Carlson.

Only declare the API on platforms where that API is undefined, so as
to catch this kind of misspelling at compile time.

  • platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm: (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::ensureLayer):

Source/WebCore/PAL:
[Cocoa] Adopt -preventDisplaySleepForVideoPlayback
https://bugs.webkit.org/show_bug.cgi?id=200774
<rdar://problem/54321071>

Reviewed by Eric Carlson.

  • pal/spi/mac/AVFoundationSPI.h:

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

9:16 AM Changeset in webkit [249143] by Alan Coon
  • 7 edits in branches/safari-608-branch/Source

Versioning.

9:08 AM Changeset in webkit [249142] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit

Do not clear the pending api request when there's no navigation ID
https://bugs.webkit.org/show_bug.cgi?id=201175

Patch by Carlos Garcia Campos <cgarcia@igalia.com> on 2019-08-27
Reviewed by Chris Dumez.

After r247851, the pending API request URL is cleared for subresources in some cases.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::didStartProvisionalLoadForFrameShared):
(WebKit::WebPageProxy::decidePolicyForNavigationAction):

8:23 AM Changeset in webkit [249141] by commit-queue@webkit.org
  • 3 edits
    2 adds in trunk

webkitpresentationmodechanged is fired twice when exiting picture in picture
https://bugs.webkit.org/show_bug.cgi?id=193765

Patch by Peng Liu <Peng Liu> on 2019-08-27
Reviewed by Jer Noble.

Source/WebCore:

This patch removes the extra "webkitpresentationmodechanged" event when the browser switches from
picture-in-picture or fullscreen to inline.

The bug was introduced by the fix for bug
https://bugs.webkit.org/show_bug.cgi?id=181095
But now we are using modern media controls and the fix is not necessary.
Reverting that fix can fix the issue.

Also, this patch gets rid of the unnecessary try to call a JavaScript function which is not available
in the modern media controls.

Test: media/presentationmodechanged-fired-once.html

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::exitFullscreen):
(WebCore::HTMLMediaElement::updateMediaControlsAfterPresentationModeChange):

LayoutTests:

  • media/presentationmodechanged-fired-once-expected.txt: Added.
  • media/presentationmodechanged-fired-once.html: Added.
7:59 AM Changeset in webkit [249140] by wenson_hsieh@apple.com
  • 4 edits in trunk/Source/WebCore

Image pasted from screenshot into Mail compose window via share sheet has the wrong aspect ratio
https://bugs.webkit.org/show_bug.cgi?id=201171
<rdar://problem/54671275>

Reviewed by Tim Horton.

Augments an existing app-specific hack to include the Mail composition service, in addition to Mail.

  • platform/RuntimeApplicationChecks.h:
  • platform/cocoa/RuntimeApplicationChecksCocoa.mm:

(WebCore::IOSApplication::isMailCompositionService):

Add a new bundle checking method for the Mail composition service (com.apple.MailCompositionService).

  • platform/ios/PlatformPasteboardIOS.mm:

(WebCore::PlatformPasteboard::informationForItemAtIndex):

Only plumb the preferred presentation height through to the web process if the application is neither Mail nor
the Mail composition service. In the future, we should consider putting this hack behind SPI, or maybe only
expose the preferred presentation width in all apps (it isn't difficult to imagine a use case where a "Mail-
compose-like" web app has img { max-width: 100%; } in their stylesheet).

5:31 AM Changeset in webkit [249139] by clopez@igalia.com
  • 4 edits in trunk/Tools

W3C test importer should be able to handle expected references with an absolute path.
https://bugs.webkit.org/show_bug.cgi?id=200717

Reviewed by Youenn Fablet.

This patch implements the logic to resolve test references with absolute paths
when importing w3c tests (like web-platform-tests).
When an absolute path is found for a test reference, the parser now
tries to find the right file by looking for a relative path inside
the root directory of the source test repository.
It works when the tool is run in download-mode as well as when the
tool is run to import the tests from a local directory.

This fixes the import of test references for tests like
web-platform-tests/css/css-images/multiple-position-color-stop-linear-2.html

  • Scripts/webkitpy/w3c/test_importer.py:

(TestImporter._source_root_directory_for_path):
(TestImporter.find_importable_tests):

  • Scripts/webkitpy/w3c/test_importer_unittest.py:

(TestImporterTest.import_directory):
(test_webkit_test_runner_options):
(test_webkit_test_runner_import_reftests_with_absolute_paths_download):
(test_webkit_test_runner_import_reftests_with_absolute_paths_from_source_dir):

  • Scripts/webkitpy/w3c/test_parser.py:

(TestParser.init):
(TestParser.analyze_test):

4:05 AM Changeset in webkit [249138] by zandobersek@gmail.com
  • 5 edits in trunk/Source/WebKit

[CoordGraphics] Delay LayerTreeHost creation in always-on AC until DrawingArea painting is enabled
https://bugs.webkit.org/show_bug.cgi?id=201178

Reviewed by Carlos Garcia Campos.

When in always-on AC mode, the LayerTreeHost spawning should be delayed
until the WebPage construction (which sets up the LayerTreeHost-owning
DrawingArea implementation) is further done with initializing relevant
state, and not immediately after the DrawingArea is done with preference
updates.

This is necessary in order to enable the LayerTreeHost instance to take
into account additional WebPage-creation attributes like the correct
device scale factor. Until now, when the LayerTreeHost was spawned in
always-on AC mode, the device scale factor was not yet updated in the
WebPage construction to the appropriate value, leaving the LayerTreeHost
with the default 1.0 value instead of the intended one.

DrawingArea::setPaintingEnabled() is repurposed into enablePainting()
that is to be called once everything should be set for painting (i.e.
when setPaintingEnabled(true) was being called until now). Inside the
DrawingAreaProxyCoordinatedGraphics class (only one to provide an
implementation for this method), the LayerTreeHost is now spawned if
in always-on AC mode. At this point, all relevant state coming from
the owning WebPage object should be readily available for the host
to correctly set up initial graphics scene.

  • WebProcess/WebPage/CoordinatedGraphics/DrawingAreaCoordinatedGraphics.cpp:

(WebKit::DrawingAreaCoordinatedGraphics::updatePreferences):
(WebKit::DrawingAreaCoordinatedGraphics::enablePainting):

  • WebProcess/WebPage/CoordinatedGraphics/DrawingAreaCoordinatedGraphics.h:
  • WebProcess/WebPage/DrawingArea.h:

(WebKit::DrawingArea::enablePainting):
(WebKit::DrawingArea::setPaintingEnabled): Deleted.

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::m_textAutoSizingAdjustmentTimer):
(WebKit::WebPage::reinitializeWebPage):

2:26 AM Changeset in webkit [249137] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebCore/platform/gtk/po

[GTK] [l10n] Updated Ukrainian translation of WebKitGTK+
https://bugs.webkit.org/show_bug.cgi?id=200858

Patch by Yuri Chornoivan <yurchor@ukr.net> on 2019-08-27
Rubber-stamped by Carlos Garcia Campos.

  • uk.po:
2:21 AM Changeset in webkit [249136] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebCore/platform/gtk/po

[GTK][l10n] Updated Polish translation of WebKitGTK for 2.26
https://bugs.webkit.org/show_bug.cgi?id=201125

Patch by Piotr Drąg <piotrdrag@gmail.com> on 2019-08-27
Rubber-stamped by Carlos Garcia Campos.

  • pl.po:
1:42 AM Changeset in webkit [249135] by Carlos Garcia Campos
  • 7 edits
    2 adds in trunk

Origin header not included in WebSocket handshake request when using platform WebSocket API
https://bugs.webkit.org/show_bug.cgi?id=200535

Reviewed by Youenn Fablet.

Source/WebCore:

Add Origin HTTP header to the WebSocket handshake request.

  • Modules/websockets/ThreadableWebSocketChannel.cpp:

(WebCore::ThreadableWebSocketChannel::webSocketConnectRequest):

LayoutTests:

Rebaseline tests that are passing now for GTK and WPE.

  • platform/gtk/imported/w3c/web-platform-tests/websockets/opening-handshake/003-expected.txt: Added.
  • platform/gtk/imported/w3c/web-platform-tests/websockets/opening-handshake/003-sets-origin.worker-expected.txt:
  • platform/gtk/imported/w3c/web-platform-tests/websockets/opening-handshake/005-expected.txt:
  • platform/wpe/imported/w3c/web-platform-tests/websockets/opening-handshake/003-expected.txt: Added.
  • platform/wpe/imported/w3c/web-platform-tests/websockets/opening-handshake/003-sets-origin.worker-expected.txt:
  • platform/wpe/imported/w3c/web-platform-tests/websockets/opening-handshake/005-expected.txt:
12:38 AM Changeset in webkit [249134] by youenn@apple.com
  • 2 edits in trunk/Source/WebCore

Make MediaStreamTrackPrivate RefCounted
https://bugs.webkit.org/show_bug.cgi?id=201040

Reviewed by Darin Adler.

MediaStreamTrackPrivate should not be ref/deref except from the main thread.
The only method called from a background thread is audioSamplesAvailable in which
it is unsafe to ref a MediaStreamTrackPrivate.
Make the track RefCounted will ensure that no ref/deref is made in background threads.
No observable change of behavior.

  • platform/mediastream/MediaStreamTrackPrivate.h:

Aug 26, 2019:

11:51 PM Changeset in webkit [249133] by ysuzuki@apple.com
  • 3 edits in trunk/Source/WebCore

[WebCore] DataCue should not use gcProtect / gcUnprotect
https://bugs.webkit.org/show_bug.cgi?id=201170

Reviewed by Mark Lam.

JSC::gcProtect and JSC::gcUnprotect are designed for JavaScriptCore.framework and we should not use them in WebCore. It is
checking whether we are holding a JS API lock. But the caller of these API would be the C++ holder's destructor, and this should be
allowed since this destruction must happen in main thread or web thread, and this should not happen while other thread is taking JS API lock.
For example, we are destroying JSC::Strong<>, JSC::Weak<> without taking JS API lock. But since JSC::gcProtect and JSC::gcUnprotect are designed
for JavaScriptCore.framework, they are not accounting this condition, and we are hitting debug assertion in GC stress bot.

Ideally, we should convert this JSValue field to JSValueInWrappedObject. But JSValueInWrappedObject needs extra care. We should
know how the owner and JS wrapper are kept and used to use JSValueInWrappedObject correctly.

As a first step, this patch just replaces raw JSValue + gcProtect/gcUnprotect with JSC::Strong<>.

This change fixes LayoutTests/media/track/track-in-band-metadata-display-order.html crash in GC stress bot. The crash trace is the following.

Thread 0 Crashed
Dispatch queue: com.apple.main-thread 0 com.apple.JavaScriptCore 0x000000010ee3d980 WTFCrash + 16 1 com.apple.JavaScriptCore 0x000000010ee408ab WTFCrashWithInfo(int, char const*, char const*, int) + 27 2 com.apple.JavaScriptCore 0x000000010feb5327 JSC::Heap::unprotect(JSC::JSValue) + 215 3 com.apple.WebCore 0x0000000120f33b53 JSC::gcUnprotect(JSC::JSCell*) + 51 4 com.apple.WebCore 0x0000000120f329fc JSC::gcUnprotect(JSC::JSValue) + 76 5 com.apple.WebCore 0x0000000120f32968 WebCore::DataCue::~DataCue() + 88 6 com.apple.WebCore 0x0000000120f32ac5 WebCore::DataCue::~DataCue() + 21 7 com.apple.WebCore 0x0000000120f32ae9 WebCore::DataCue::~DataCue() + 25 8 com.apple.WebCore 0x0000000120f37ebf WTF::RefCounted<WebCore::TextTrackCue, std::__1::default_delete<WebCore::TextTrackCue> >::deref() const + 95 9 com.apple.WebCore 0x000000012103a345 void WTF::derefIfNotNull<WebCore::TextTrackCue>(WebCore::TextTrackCue*) + 53 10 com.apple.WebCore 0x000000012103a309 WTF::RefPtr<WebCore::TextTrackCue, WTF::DumbPtrTraits<WebCore::TextTrackCue> >::~RefPtr() + 41 11 com.apple.WebCore 0x000000012102bfc5 WTF::RefPtr<WebCore::TextTrackCue, WTF::DumbPtrTraits<WebCore::TextTrackCue> >::~RefPtr() + 21 12 com.apple.WebCore 0x00000001210e91df WTF::VectorDestructor<true, WTF::RefPtr<WebCore::TextTrackCue, WTF::DumbPtrTraits<WebCore::TextTrackCue> > >::destruct(WTF::RefPtr<WebCore::TextTrackCue, WTF::DumbPtrTraits<WebCore::TextTrackCue> >*, WTF::RefPtr<WebCore::TextTrackCue, WTF::DumbPtrTraits<WebCore::TextTrackCue> >*) + 47 13 com.apple.WebCore 0x00000001210e913d WTF::VectorTypeOperations<WTF::RefPtr<WebCore::TextTrackCue, WTF::DumbPtrTraits<WebCore::TextTrackCue> > >::destruct(WTF::RefPtr<WebCore::TextTrackCue, WTF::DumbPtrTraits<WebCore::TextTrackCue> >*, WTF::RefPtr<WebCore::TextTrackCue, WTF::DumbPtrTraits<WebCore::TextTrackCue> >*) + 29 14 com.apple.WebCore 0x00000001210e9100 WTF::Vector<WTF::RefPtr<WebCore::TextTrackCue, WTF::DumbPtrTraits<WebCore::TextTrackCue> >, 0ul, WTF::CrashOnOverflow, 16ul>::~Vector() + 64 15 com.apple.WebCore 0x00000001210e7a25 WTF::Vector<WTF::RefPtr<WebCore::TextTrackCue, WTF::DumbPtrTraits<WebCore::TextTrackCue> >, 0ul, WTF::CrashOnOverflow, 16ul>::~Vector() + 21 16 com.apple.WebCore 0x00000001210e93d3 WebCore::TextTrackCueList::~TextTrackCueList() + 51
  • html/track/DataCue.cpp:

(WebCore::DataCue::DataCue):
(WebCore::DataCue::~DataCue):
(WebCore::DataCue::setData):
(WebCore::DataCue::value const):
(WebCore::DataCue::setValue):
(WebCore::DataCue::valueOrNull const):

  • html/track/DataCue.h:
10:00 PM Changeset in webkit [249132] by Devin Rousso
  • 85 edits in trunk/Source

Web Inspector: use more C++ keywords for defining agents
https://bugs.webkit.org/show_bug.cgi?id=200959

Reviewed by Joseph Pecoraro.

  • make constructors protected when the agent isn't meant to be constructed directly
  • add virtual destructors that are defined in the *.cpp so forward-declarations work
  • use final wherever possible
  • add comments to indicate where any virtual functions come from

Source/JavaScriptCore:

  • inspector/agents/InspectorAgent.h:
  • inspector/agents/InspectorAgent.cpp:
  • inspector/agents/InspectorAuditAgent.h:
  • inspector/agents/InspectorAuditAgent.cpp:
  • inspector/agents/InspectorConsoleAgent.h:
  • inspector/agents/InspectorConsoleAgent.cpp:
  • inspector/agents/InspectorDebuggerAgent.h:
  • inspector/agents/InspectorDebuggerAgent.cpp:
  • inspector/agents/InspectorHeapAgent.h:
  • inspector/agents/InspectorHeapAgent.cpp:
  • inspector/agents/InspectorRuntimeAgent.h:
  • inspector/agents/InspectorScriptProfilerAgent.h:
  • inspector/agents/InspectorScriptProfilerAgent.cpp:
  • inspector/agents/InspectorTargetAgent.h:
  • inspector/agents/InspectorTargetAgent.cpp:
  • inspector/agents/JSGlobalObjectAuditAgent.h:
  • inspector/agents/JSGlobalObjectAuditAgent.cpp:
  • inspector/agents/JSGlobalObjectDebuggerAgent.h:
  • inspector/agents/JSGlobalObjectDebuggerAgent.cpp:
  • inspector/agents/JSGlobalObjectRuntimeAgent.h:
  • inspector/agents/JSGlobalObjectRuntimeAgent.cpp:

Source/WebCore:

  • inspector/agents/InspectorApplicationCacheAgent.h:
  • inspector/agents/InspectorApplicationCacheAgent.cpp:
  • inspector/agents/InspectorCPUProfilerAgent.h:
  • inspector/agents/InspectorCPUProfilerAgent.cpp:
  • inspector/agents/InspectorCSSAgent.h:
  • inspector/agents/InspectorCSSAgent.cpp:
  • inspector/agents/InspectorCanvasAgent.h:
  • inspector/agents/InspectorCanvasAgent.cpp:
  • inspector/agents/InspectorDOMAgent.h:
  • inspector/agents/InspectorDOMAgent.cpp:
  • inspector/agents/InspectorDOMDebuggerAgent.h:
  • inspector/agents/InspectorDOMDebuggerAgent.cpp:
  • inspector/agents/InspectorDOMStorageAgent.h:
  • inspector/agents/InspectorDOMStorageAgent.cpp:
  • inspector/agents/InspectorDatabaseAgent.h:
  • inspector/agents/InspectorDatabaseAgent.cpp:
  • inspector/agents/InspectorIndexedDBAgent.h:
  • inspector/agents/InspectorIndexedDBAgent.cpp:
  • inspector/agents/InspectorLayerTreeAgent.h:
  • inspector/agents/InspectorLayerTreeAgent.cpp:
  • inspector/agents/InspectorMemoryAgent.h:
  • inspector/agents/InspectorMemoryAgent.cpp:
  • inspector/agents/InspectorNetworkAgent.h:
  • inspector/agents/InspectorNetworkAgent.cpp:
  • inspector/agents/InspectorPageAgent.h:
  • inspector/agents/InspectorPageAgent.cpp:
  • inspector/agents/InspectorTimelineAgent.h:
  • inspector/agents/InspectorTimelineAgent.cpp:
  • inspector/agents/InspectorWorkerAgent.h:
  • inspector/agents/InspectorWorkerAgent.cpp:
  • inspector/agents/WebConsoleAgent.h:
  • inspector/agents/WebConsoleAgent.cpp:
  • inspector/agents/WebDebuggerAgent.h:
  • inspector/agents/WebDebuggerAgent.cpp:
  • inspector/agents/WebHeapAgent.h:
  • inspector/agents/WebHeapAgent.cpp:
  • inspector/agents/page/PageAuditAgent.h:
  • inspector/agents/page/PageAuditAgent.cpp:
  • inspector/agents/page/PageConsoleAgent.h:
  • inspector/agents/page/PageConsoleAgent.cpp:
  • inspector/agents/page/PageDebuggerAgent.h:
  • inspector/agents/page/PageDebuggerAgent.cpp:
  • inspector/agents/page/PageHeapAgent.h:
  • inspector/agents/page/PageHeapAgent.cpp:
  • inspector/agents/page/PageNetworkAgent.h:
  • inspector/agents/page/PageNetworkAgent.cpp:
  • inspector/agents/page/PageRuntimeAgent.h:
  • inspector/agents/page/PageRuntimeAgent.cpp:
  • inspector/agents/worker/ServiceWorkerAgent.h:
  • inspector/agents/worker/ServiceWorkerAgent.cpp:
  • inspector/agents/worker/WorkerAuditAgent.h:
  • inspector/agents/worker/WorkerAuditAgent.cpp:
  • inspector/agents/worker/WorkerConsoleAgent.h:
  • inspector/agents/worker/WorkerConsoleAgent.cpp:
  • inspector/agents/worker/WorkerDebuggerAgent.h:
  • inspector/agents/worker/WorkerNetworkAgent.h:
  • inspector/agents/worker/WorkerNetworkAgent.cpp:
  • inspector/agents/worker/WorkerRuntimeAgent.h:
  • inspector/agents/worker/WorkerRuntimeAgent.cpp:

Source/WebKit:

  • UIProcess/WebPageInspectorTargetAgent.h:
  • UIProcess/WebPageInspectorTargetAgent.cpp:
9:58 PM Changeset in webkit [249131] by mmaxfield@apple.com
  • 114 edits
    2 deletes in trunk

[WHLSL] Rewrite all tests to use WHLSL and delete the isWHLSL flag
https://bugs.webkit.org/show_bug.cgi?id=201162

Reviewed by Saam Barati.

Source/WebCore:

We want to keep the MSL codepath for debugging, so the codepath isn't deleted entirely, but it is no longer web exposed.

  • Modules/webgpu/WebGPUDevice.cpp:

(WebCore::WebGPUDevice::createShaderModule const):

  • Modules/webgpu/WebGPUShaderModuleDescriptor.h:
  • Modules/webgpu/WebGPUShaderModuleDescriptor.idl:
  • platform/graphics/gpu/GPUDevice.h:
  • platform/graphics/gpu/GPUShaderModuleDescriptor.h:
  • platform/graphics/gpu/cocoa/GPUShaderModuleMetal.mm:

(WebCore::GPUShaderModule::tryCreate):

LayoutTests:

  • webgpu/bind-groups.html:
  • webgpu/blend-color-triangle-strip.html:
  • webgpu/blend-triangle-strip.html:
  • webgpu/buffer-command-buffer-races.html:
  • webgpu/color-write-mask-triangle-strip.html:
  • webgpu/compute-pipeline-errors.html:
  • webgpu/depth-enabled-triangle-strip.html:
  • webgpu/draw-indexed-triangles.html:
  • webgpu/msl-harness-test-expected.txt: Removed.
  • webgpu/msl-harness-test.html: Removed.
  • webgpu/render-command-encoding.html:
  • webgpu/render-pipeline-errors.html:
  • webgpu/render-pipelines.html:
  • webgpu/shader-modules.html:
  • webgpu/simple-triangle-strip.html:
  • webgpu/texture-triangle-strip.html:
  • webgpu/vertex-buffer-triangle-strip.html:
  • webgpu/viewport-scissor-rect-triangle-strip.html:
  • webgpu/whlsl/arbitrary-vertex-attribute-locations.html:
  • webgpu/whlsl/buffer-fragment.html:
  • webgpu/whlsl/buffer-length.html:
  • webgpu/whlsl/buffer-vertex.html:
  • webgpu/whlsl/checker-should-set-type-of-read-modify-write-variables.html:
  • webgpu/whlsl/compute.html:
  • webgpu/whlsl/dereference-pointer-should-type-check.html:
  • webgpu/whlsl/device-proper-type-checker.html:
  • webgpu/whlsl/do-while-loop-break.html:
  • webgpu/whlsl/do-while-loop-continue.html:
  • webgpu/whlsl/do-while-loop.html:
  • webgpu/whlsl/dont-crash-parsing-enum.html:
  • webgpu/whlsl/dot-expressions.html:
  • webgpu/whlsl/duplicate-types-should-not-produce-duplicate-ctors.html:
  • webgpu/whlsl/ensure-proper-variable-lifetime-2.html:
  • webgpu/whlsl/ensure-proper-variable-lifetime-3.html:
  • webgpu/whlsl/ensure-proper-variable-lifetime.html:
  • webgpu/whlsl/huge-array.html:
  • webgpu/whlsl/js/test-harness.js:

(convertTypeToArrayType):
(Data):
(Harness):
(Harness.prototype.async.callTypedFunction):
(Harness.prototype.callVoidFunction):
(Harness.prototype.async.checkCompileFail):
(Harness.prototype._setUpArguments):
(Harness.prototype.async._callFunction):
(Harness.prototype.set isWHLSL): Deleted.
(Harness.prototype.get isWHLSL): Deleted.

  • webgpu/whlsl/loops-break.html:
  • webgpu/whlsl/loops-continue.html:
  • webgpu/whlsl/loops.html:
  • webgpu/whlsl/make-array-reference.html:
  • webgpu/whlsl/matrix-2.html:
  • webgpu/whlsl/matrix-memory-layout.html:
  • webgpu/whlsl/matrix.html:
  • webgpu/whlsl/nested-dot-expression-rvalue.html:
  • webgpu/whlsl/nested-loop.html:
  • webgpu/whlsl/null-dereference.html:
  • webgpu/whlsl/oob-access.html:
  • webgpu/whlsl/propertyresolver/ander-abstract-lvalue.html:
  • webgpu/whlsl/propertyresolver/ander-lvalue-3-levels.html:
  • webgpu/whlsl/propertyresolver/ander-lvalue.html:
  • webgpu/whlsl/propertyresolver/ander.html:
  • webgpu/whlsl/propertyresolver/getter.html:
  • webgpu/whlsl/propertyresolver/indexer-ander-abstract-lvalue.html:
  • webgpu/whlsl/propertyresolver/indexer-ander-lvalue-3-levels.html:
  • webgpu/whlsl/propertyresolver/indexer-ander-lvalue.html:
  • webgpu/whlsl/propertyresolver/indexer-ander.html:
  • webgpu/whlsl/propertyresolver/indexer-getter.html:
  • webgpu/whlsl/propertyresolver/indexer-setter-abstract-lvalue-3-levels.html:
  • webgpu/whlsl/propertyresolver/indexer-setter-abstract-lvalue.html:
  • webgpu/whlsl/propertyresolver/indexer-setter-lvalue.html:
  • webgpu/whlsl/propertyresolver/indexer-setter.html:
  • webgpu/whlsl/propertyresolver/setter-abstract-lvalue-3-levels.html:
  • webgpu/whlsl/propertyresolver/setter-abstract-lvalue.html:
  • webgpu/whlsl/propertyresolver/setter-lvalue.html:
  • webgpu/whlsl/read-modify-write-high-zombies.html:
  • webgpu/whlsl/read-modify-write.html:
  • webgpu/whlsl/return-local-variable.html:
  • webgpu/whlsl/separate-shader-modules/separate-shader-modules-10.html:
  • webgpu/whlsl/separate-shader-modules/separate-shader-modules-11.html:
  • webgpu/whlsl/separate-shader-modules/separate-shader-modules-12.html:
  • webgpu/whlsl/separate-shader-modules/separate-shader-modules-13.html:
  • webgpu/whlsl/separate-shader-modules/separate-shader-modules-14.html:
  • webgpu/whlsl/separate-shader-modules/separate-shader-modules-15.html:
  • webgpu/whlsl/separate-shader-modules/separate-shader-modules-16.html:
  • webgpu/whlsl/separate-shader-modules/separate-shader-modules-17.html:
  • webgpu/whlsl/separate-shader-modules/separate-shader-modules-18.html:
  • webgpu/whlsl/separate-shader-modules/separate-shader-modules-19.html:
  • webgpu/whlsl/separate-shader-modules/separate-shader-modules-2.html:
  • webgpu/whlsl/separate-shader-modules/separate-shader-modules-20.html:
  • webgpu/whlsl/separate-shader-modules/separate-shader-modules-21.html:
  • webgpu/whlsl/separate-shader-modules/separate-shader-modules-22.html:
  • webgpu/whlsl/separate-shader-modules/separate-shader-modules-23.html:
  • webgpu/whlsl/separate-shader-modules/separate-shader-modules-24.html:
  • webgpu/whlsl/separate-shader-modules/separate-shader-modules-25.html:
  • webgpu/whlsl/separate-shader-modules/separate-shader-modules-26.html:
  • webgpu/whlsl/separate-shader-modules/separate-shader-modules-27.html:
  • webgpu/whlsl/separate-shader-modules/separate-shader-modules-3.html:
  • webgpu/whlsl/separate-shader-modules/separate-shader-modules-4.html:
  • webgpu/whlsl/separate-shader-modules/separate-shader-modules-5.html:
  • webgpu/whlsl/separate-shader-modules/separate-shader-modules-6.html:
  • webgpu/whlsl/separate-shader-modules/separate-shader-modules-7.html:
  • webgpu/whlsl/separate-shader-modules/separate-shader-modules-8.html:
  • webgpu/whlsl/separate-shader-modules/separate-shader-modules-9.html:
  • webgpu/whlsl/separate-shader-modules/separate-shader-modules.html:
  • webgpu/whlsl/simple-arrays.html:
  • webgpu/whlsl/store-to-property-updates-properly.html:
  • webgpu/whlsl/textures-getdimensions.html:
  • webgpu/whlsl/textures-load.html:
  • webgpu/whlsl/textures-sample.html:
  • webgpu/whlsl/two-dimensional-array.html:
  • webgpu/whlsl/use-undefined-variable-2.html:
  • webgpu/whlsl/use-undefined-variable.html:
  • webgpu/whlsl/while-loop-break.html:
  • webgpu/whlsl/while-loop-continue.html:
  • webgpu/whlsl/whlsl.html:
  • webgpu/whlsl/zero-initialize-values-2.html:
  • webgpu/whlsl/zero-initialize-values.html:
8:19 PM Changeset in webkit [249130] by Chris Dumez
  • 4 edits in trunk

Change default value of window.open()'s url argument
https://bugs.webkit.org/show_bug.cgi?id=200882

Reviewed by Ryosuke Niwa.

LayoutTests/imported/w3c:

Rebaseline WPT test now that it is passing.

  • web-platform-tests/html/browsers/the-window-object/window-open-defaults.window-expected.txt:

Source/WebCore:

Update default URL parameter value for window.open() to be "" instead of "about:blank", as per:

This aligns our behavior with other Web browser engines.

No new tests, rebaselined existing test.

  • page/DOMWindow.idl:
7:20 PM Changeset in webkit [249129] by Devin Rousso
  • 2 edits in trunk/LayoutTests

Unreviewed, fix test failure after r249127

  • inspector/debugger/tail-deleted-frames-this-value.html:
6:02 PM Changeset in webkit [249128] by Devin Rousso
  • 66 edits in trunk

Web Inspector: unify agent command error messages
https://bugs.webkit.org/show_bug.cgi?id=200950

Reviewed by Joseph Pecoraro.

Source/JavaScriptCore:

Different agents can sometimes have different error messages for commands that have a
similar intended effect. We should make our error messages more similar.

  • inspector/JSGlobalObjectConsoleClient.cpp:
  • inspector/agents/InspectorAgent.cpp:
  • inspector/agents/InspectorAuditAgent.cpp:
  • inspector/agents/InspectorConsoleAgent.cpp:
  • inspector/agents/InspectorDebuggerAgent.cpp:
  • inspector/agents/InspectorHeapAgent.cpp:
  • inspector/agents/InspectorRuntimeAgent.cpp:
  • inspector/agents/InspectorTargetAgent.cpp:
  • inspector/agents/JSGlobalObjectAuditAgent.cpp:
  • inspector/agents/JSGlobalObjectDebuggerAgent.cpp:
  • inspector/agents/JSGlobalObjectRuntimeAgent.cpp:

Elide function lists to avoid an extremely large ChangeLog entry.

Source/WebCore:

Different agents can sometimes have different error messages for commands that have a
similar intended effect. We should make our error messages more similar.

  • inspector/CommandLineAPIHost.cpp:
  • inspector/agents/InspectorApplicationCacheAgent.cpp:
  • inspector/agents/InspectorCSSAgent.cpp:
  • inspector/agents/InspectorCanvasAgent.h:
  • inspector/agents/InspectorCanvasAgent.cpp:
  • inspector/agents/InspectorDOMAgent.cpp:
  • inspector/agents/InspectorDOMDebuggerAgent.cpp:
  • inspector/agents/InspectorDOMStorageAgent.cpp:
  • inspector/agents/InspectorIndexedDBAgent.cpp:
  • inspector/agents/InspectorLayerTreeAgent.cpp:
  • inspector/agents/InspectorMemoryAgent.cpp:
  • inspector/agents/InspectorNetworkAgent.cpp:
  • inspector/agents/InspectorPageAgent.cpp:
  • inspector/agents/InspectorTimelineAgent.cpp:
  • inspector/agents/InspectorWorkerAgent.cpp:
  • inspector/agents/page/PageAuditAgent.cpp:
  • inspector/agents/page/PageConsoleAgent.cpp:
  • inspector/agents/page/PageDebuggerAgent.cpp:
  • inspector/agents/page/PageNetworkAgent.cpp:
  • inspector/agents/page/PageRuntimeAgent.cpp:
  • inspector/agents/worker/WorkerAuditAgent.cpp:
  • inspector/agents/worker/WorkerDebuggerAgent.cpp:
  • inspector/agents/worker/WorkerRuntimeAgent.cpp:

Elide function lists to avoid an extremely large ChangeLog entry.

LayoutTests:

  • http/tests/inspector/network/getSerializedCertificate-expected.txt:
  • http/tests/websocket/tests/hybi/inspector/resolveWebSocket-expected.txt:
  • inspector/audit/setup-expected.txt:
  • inspector/audit/teardown-expected.txt:
  • inspector/canvas/css-canvas-clients-expected.txt:
  • inspector/canvas/recording-expected.txt:
  • inspector/canvas/requestContent-2d-expected.txt:
  • inspector/canvas/requestNode-expected.txt:
  • inspector/canvas/requestShaderSource-expected.txt:
  • inspector/canvas/resolveCanvasContext-2d-expected.txt:
  • inspector/canvas/setShaderProgramDisabled-expected.txt:
  • inspector/canvas/setShaderProgramHighlighted-expected.txt:
  • inspector/canvas/updateShader-expected.txt:
  • inspector/console/webcore-logging-expected.txt:
  • inspector/css/add-rule-expected.txt:
  • inspector/debugger/continueUntilNextRunLoop-expected.txt:
  • inspector/debugger/evaluateOnCallFrame-errors-expected.txt:
  • inspector/debugger/setBreakpoint-expected.txt:
  • inspector/dom-debugger/dom-breakpoints-expected.txt:
  • inspector/dom/breakpoint-for-event-listener-expected.txt:
  • inspector/dom/highlightQuad-expected.txt:
  • inspector/dom/insertAdjacentHTML-expected.txt:
  • inspector/dom/request-child-nodes-depth-expected.txt:
  • inspector/dom/setEventListenerDisabled-expected.txt:
  • inspector/protocol/backend-dispatcher-argument-errors-expected.txt:
  • inspector/runtime/awaitPromise-expected.txt:
  • inspector/runtime/getPreview-expected.txt:
  • inspector/timeline/setInstruments-errors-expected.txt:
5:48 PM Changeset in webkit [249127] by Devin Rousso
  • 2 edits in trunk/LayoutTests

Unreviewed, add extra test failure logging after r200971

  • inspector/debugger/tail-deleted-frames-this-value.html:
5:20 PM Changeset in webkit [249126] by Chris Dumez
  • 15 edits in trunk/Source

Regression: ITP started doing a lot more IPC after its logic was moved to the network process
https://bugs.webkit.org/show_bug.cgi?id=201155

Reviewed by John Wilander.

Source/WebCore:

ITP started doing a lot more IPC after its logic was moved to the network process. Web processes used to
send their statistics to the UIProcess at most every 5 seconds. However, when the logic got moved to the network
process, we started notifying the network process via IPC after every sub resource load. This is bad for performance
and battery life. This patch restores the 5 second delay to address the issue.

  • loader/ResourceLoadObserver.cpp:

(WebCore::ResourceLoadObserver::ResourceLoadObserver):
(WebCore::ResourceLoadObserver::setRequestStorageAccessUnderOpenerCallback):
(WebCore::ResourceLoadObserver::logSubresourceLoading):
(WebCore::ResourceLoadObserver::logWebSocketLoading):
(WebCore::ResourceLoadObserver::logUserInteractionWithReducedTimeResolution):
(WebCore::ResourceLoadObserver::scheduleNotificationIfNeeded):
(WebCore::ResourceLoadObserver::updateCentralStatisticsStore):
(WebCore::ResourceLoadObserver::clearState):

  • loader/ResourceLoadObserver.h:

Source/WebKit:

  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::initializeWebProcess):

5:18 PM Changeset in webkit [249125] by wenson_hsieh@apple.com
  • 11 edits in trunk

Remove UIHelper.activateElementAtHumanSpeed
https://bugs.webkit.org/show_bug.cgi?id=201147

Reviewed by Tim Horton.

Tools:

Add plumbing for a new script controller hook to wait for the double tap delay to pass. On non-iOS, this
resolves immediately; on iOS, we inspect the content view for tap gestures that require more than one tap, and
find the value of the maximum double tap delay. We then delay for this amount of time before resolving.

  • TestRunnerShared/UIScriptContext/Bindings/UIScriptController.idl:
  • TestRunnerShared/UIScriptContext/UIScriptController.h:

(WTR::UIScriptController::doAfterDoubleTapDelay):

  • WebKitTestRunner/ios/UIScriptControllerIOS.h:
  • WebKitTestRunner/ios/UIScriptControllerIOS.mm:

(WTR::UIScriptControllerIOS::doAfterDoubleTapDelay):

LayoutTests:

This was used in layout tests that simulate repeated taps to work around <webkit.org/b/201129>, and should no
longer be needed after <https://trac.webkit.org/changeset/249112/webkit>. Instead, we can just use UIHelper's
activateElement as intended in cases where successive taps in the test does not result in a double-click; for
the cases where we need to avoid triggering double clicks when tapping (e.g. in several payment tests), use a
new script controller hook to wait for the double tap gesture delay before continuing.

  • fast/forms/ios/file-upload-panel.html:
  • http/tests/adClickAttribution/anchor-tag-attributes-validation-expected.txt:

Rebaseline more line numbers.

  • http/tests/adClickAttribution/anchor-tag-attributes-validation.html:

Refactor this test so that the links are laid out in two (or more) columns to avoid firing the double click
gesture recognizer instead of the synthetic click gesture.

  • http/tests/resources/payment-request.js:

(activateThen):

Instead of using activateElementAtHumanSpeed, wait for the platform double tap delay first, and then simulate
a click using activateElement.

  • resources/ui-helper.js:

(window.UIHelper.waitForDoubleTapDelay):

Add a new UIHelper method to wait for the platform double tap delay. See Tools ChangeLog for more details.

(window.UIHelper):
(window.UIHelper.activateElementAtHumanSpeed.return.new.Promise): Deleted.
(window.UIHelper.activateElementAtHumanSpeed): Deleted.

4:36 PM Changeset in webkit [249124] by zhifei_fang@apple.com
  • 8 edits in trunk/Tools

[results.webkit.org Timline] Add symbols to the timeline dot
https://bugs.webkit.org/show_bug.cgi?id=201105

Reviewed by Jonathan Bedard.

  • resultsdbpy/resultsdbpy/view/static/js/timeline.js:
  • resultsdbpy/resultsdbpy/view/static/library/js/components/TimelineComponents.js:

(Timeline.CanvasSeriesComponent): Modify the drawDot api to provide user ability to add symbol to the dots, it supports unicode symbol

  • resultsdbpy/resultsdbpy/view/templates/base.html: Add the encoding UTF-8 for the page, so that we can add unicode symbol to the dots
4:20 PM Changeset in webkit [249123] by Chris Dumez
  • 8 edits
    13 adds in trunk/LayoutTests

Resync web-platform-tests/html/browsers/the-window-object from upstream
https://bugs.webkit.org/show_bug.cgi?id=201145

Reviewed by Youenn Fablet.

Resync web-platform-tests/html/browsers/the-window-object from upstream 552bd3bf8bc1be.

  • resources/resource-files.json:
  • web-platform-tests/html/browsers/the-window-object/*:
4:01 PM Changeset in webkit [249122] by Devin Rousso
  • 3 edits in trunk/LayoutTests

Unreviewed, fix test failure after r200971

  • inspector/timeline/line-column-expected.txt:
  • inspector/debugger/tail-deleted-frames-this-value.html:

Add messages to all InspectorTest.assert so we can know which one is firing on the bots.

3:31 PM Changeset in webkit [249121] by ysuzuki@apple.com
  • 2 edits in trunk/Source/bmalloc

[bmalloc] Disable IsoHeap completely if DebugHeap is enabled
https://bugs.webkit.org/show_bug.cgi?id=201154

Reviewed by Simon Fraser.

Previously we had the guarantee that IsoHeap is disabled when DebugHeap is enabled.
But this is guaranteed in a bit tricky way: when DebugHeap is enabled, Gigacage is disabled.
And IsoHeap is disabled when Gigacage is disabled. However r249065 enabled IsoHeap even if
Gigacage is disabled. This accidentally enabled IsoHeap even if DebugHeap is enabled.

Currently, this is incorrect. When DebugHeap is enabled, we do not start bmalloc::Scavenger.
So IsoHeap does not work. In addition, when DebugHeap is enabled, we want to investigate the Malloc data.
However IsoHeap wipes these information for IsoHeaped objects. Moreover enabling IsoHeap is not free
in terms of memory usage: bmalloc::Scavenger starts working.

So we should not enable IsoHeap in such an accidental way for DebugHeap environment. If we consider enabling
IsoHeap even if Malloc=1 is specified, we should first examine how memory is used by this change because
the users of Malloc=1 requires explicitly tight memory usage.

In this patch, we remove the accidental enabling of IsoHeap for DebugHeap by checking DebugHeap status in IsoTLS.

  • bmalloc/IsoTLS.cpp:

(bmalloc::IsoTLS::determineMallocFallbackState):

3:21 PM Changeset in webkit [249120] by Simon Fraser
  • 2 edits in trunk/Source/WebCore

Optimize computation of AbsoluteClipRects clip rects
https://bugs.webkit.org/show_bug.cgi?id=201148

Reviewed by Zalan Bujtas.

When adding layers to the compositing overlap map, we compute AbsoluteClipRects for every
layer which is expensive. This was more expensive than necessary because we converted them
to TemporaryClipRects when crossing painting boundaries, but AbsoluteClipRects don't
care about painting boundaries, so don't do this.

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::calculateClipRects const):

3:16 PM Changeset in webkit [249119] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

Drop WEBCORE_EXPORT from ChromeClient class
https://bugs.webkit.org/show_bug.cgi?id=201146

Reviewed by Alex Christensen.

Drop WEBCORE_EXPORT from ChromeClient class. All its methods and either pure virtual or inlined in the header.

  • page/ChromeClient.h:
2:59 PM Changeset in webkit [249118] by Devin Rousso
  • 9 edits
    2 deletes in trunk/Source/WebInspectorUI

Web Inspector: decrease horizontal padding of WI.ScopeBar to have more room
https://bugs.webkit.org/show_bug.cgi?id=201090

Reviewed by Joseph Pecoraro.

There's a lot of "wasted" padding space around each item that we could reuse (or "move") for
other navigation items.

  • UserInterface/Views/FilterBar.css:

(.filter-bar > .navigation-bar > .item.scope-bar):

  • UserInterface/Views/RadioButtonNavigationItem.css:

(.navigation-bar .item.radio.button.text-only):

  • UserInterface/Views/ScopeBar.css:

(.scope-bar):
(body[dir=ltr] .scope-bar > li.multiple > select):
(body[dir=rtl] .scope-bar > li.multiple > select):
(.scope-bar > li.multiple > .arrows):

  • UserInterface/Views/RadioButtonNavigationItem.js:

(WI.RadioButtonNavigationItem):
(WI.RadioButtonNavigationItem.prototype.update): Deleted.
There's no reason to forcibly set the min-width since all instances are just text.

  • UserInterface/Views/AuditTestGroupContentView.js:

(WI.AuditTestGroupContentView.prototype.initialLayout):

  • UserInterface/Views/AuditTestGroupContentView.css:

(.content-view.audit-test-group > header > nav:not(:empty):before): Deleted.
Remove the unnecessary "Showing: " prefix before the WI.ScopeBar.

  • UserInterface/Views/ScopeRadioButtonNavigationItem.js: Removed.
  • UserInterface/Views/ScopeRadioButtonNavigationItem.css: Removed.

These classes were never used.

  • Localizations/en.lproj/localizedStrings.js:
2:09 PM Changeset in webkit [249117] by Ross Kirsling
  • 9 edits in trunk

[JSC] Ensure x?.y ?? z is fast
https://bugs.webkit.org/show_bug.cgi?id=200875

Reviewed by Yusuke Suzuki.

JSTests:

  • stress/nullish-coalescing.js:

Source/JavaScriptCore:

We anticipate x?.y ?? z to quickly become a common idiom in JS. With a little bytecode rearrangement,
we can avoid the "load undefined and check it" dance in the middle and just turn this into two jumps.

Before:

(get x)

----- jundefined_or_null
| (get y)
| --- jmp

| (load undefined)

  • jnundefined_or_null

| (get z)

end

After:

(get x)

--- jundefined_or_null
| (get y)
| - jnundefined_or_null

| (get z)
end

  • bytecompiler/BytecodeGenerator.cpp:

(JSC::BytecodeGenerator::popOptionalChainTarget): Added specialization.

  • bytecompiler/BytecodeGenerator.h:
  • bytecompiler/NodesCodegen.cpp:

(JSC::CoalesceNode::emitBytecode):
(JSC::OptionalChainNode::emitBytecode):

  • parser/ASTBuilder.h:

(JSC::ASTBuilder::makeDeleteNode):
(JSC::ASTBuilder::makeCoalesceNode): Added.
(JSC::ASTBuilder::makeBinaryNode):

  • parser/NodeConstructors.h:

(JSC::CoalesceNode::CoalesceNode):

  • parser/Nodes.h:

(JSC::ExpressionNode::isDeleteNode const): Added. (Replaces OptionalChainNode::m_isDelete.)

1:42 PM Changeset in webkit [249116] by ysuzuki@apple.com
  • 2 edits in trunk/Tools

Unreviewed, remove useMaximalFlushInsertionPhase use
https://bugs.webkit.org/show_bug.cgi?id=201036

  • Scripts/run-jsc-stress-tests:
1:26 PM Changeset in webkit [249115] by ddkilzer@apple.com
  • 4 edits
    1 add in trunk

Don't compute upconverted characters twice in buildQuery() in DataDetection.mm
<https://webkit.org/b/201144>
<rdar://problem/54689399>

Reviewed by Brent Fulgham.

Source/WebCore:

  • editing/cocoa/DataDetection.mm:

(WebCore::buildQuery): Extract common variables to prevent double
conversion for 8-bit strings.

Tools:

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: Add

DataDetectorsTestIOS.mm to the project.

  • TestWebKitAPI/Tests/ios/DataDetectorsTestIOS.mm: Add a new

test for Data Detectors for phone numbers.

1:22 PM Changeset in webkit [249114] by Alan Coon
  • 1 copy in tags/Safari-608.1.49

Tag Safari-608.1.49.

12:58 PM Changeset in webkit [249113] by wenson_hsieh@apple.com
  • 2 edits in trunk/LayoutTests

Unreviewed, unmark two datalist tests as timing out on iOS 13 after r249112

  • platform/ios/TestExpectations:
12:37 PM Changeset in webkit [249112] by wenson_hsieh@apple.com
  • 23 edits in trunk

REGRESSION (iOS 13): Tests that simulate multiple back-to-back single taps fail or time out
https://bugs.webkit.org/show_bug.cgi?id=201129
<rdar://problem/51857277>

Reviewed by Tim Horton.

Source/WebKit:

Adds a new SPI hook in WebKit to let clients know when a synthetic tap gesture that has ended has been reset.
See Tools/ChangeLog and LayoutTests/ChangeLog for more details.

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _doAfterResettingSingleTapGesture:]):

  • UIProcess/API/Cocoa/WKWebViewPrivate.h:
  • UIProcess/ios/WKContentViewInteraction.h:
  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView _singleTapDidReset:]):
(-[WKContentView _doAfterResettingSingleTapGesture:]):

Tools:

The tests in editing/pasteboard/ios were timing out on iOS 13 before this change. This is because they simulate
back-to-back single taps; while this is recognized as two single taps on iOS 12 and prior, only the first single
tap is recognized on iOS 13 (and the second is simply dropped on the floor). This occurs because the synthetic
single tap gesture is reset slightly later on iOS 13 compared to iOS 12, so when the second tap is dispatched,
the gesture recognizer is still in "ended" state after the first tap on iOS 13, which means the gesture isn't
capable of recognizing further touches yet.

In UIKit, a gesture recognizer is only reset once its UIGestureEnvironment's containing dependency subgraph no
longer contains gestures that are active. In iOS 12, the synthetic click gesture is a part of a dependency
subgraph that contains only itself and the normal (blocking) double tap gesture which requires the click to fail
before it can be recognized; immediately after simulating the tap, both these gestures are inactive, which
allows both of them to be reset.

However, in iOS 13, the synthetic click gesture is part of a gesture dependency graph that contains the double
tap for double click gesture, as well as the non-blocking double tap gesture, both of which are still active
immediately after sending the first tap. This change in dependencies is caused by the introduction of
UIUndoGestureInteraction's single and double three-finger tap gestures, which (in -[UIUndoGestureInteraction
gestureRecognizer:shouldBeRequiredToFailByGestureRecognizer:]) explicitly add all other taps as failure
requirements. This effectively links the synthetic single tap gesture to most of the other gestures in
WKContentView's dependency graph by way of these tap gestures for the undo interaction.

All this means that there is now a short (~50 ms) delay after the synthetic single tap gestures is recognized,
before it can be recognized again. To account for this new delay in our test infrastructure, simply wait for
single tap gestures that have ended to reset before attempting to send subsequent single taps. We do this by
introducing WebKit testing SPI to invoke a completion handler after resetting the synthetic click gesture (only
if necessary - i.e., if the gesture is in ended state when we are about to begin simulating the tap). This
allows calls to UIScriptController::singleTapAtPoint to be reliably recognized as single taps without
requiring arbitrary 120 ms "human speed" delays.

This fixes a number of flaky or failing layout tests, including the tests in editing/pasteboard/ios.

  • TestRunnerShared/UIScriptContext/Bindings/UIScriptController.idl:
  • TestRunnerShared/UIScriptContext/UIScriptController.h:

(WTR::UIScriptController::doubleTapAtPoint):

Add a delay parameter to doubleTapAtPoint. A number of layout tests were actually simulating double click
gestures by simulating two back-to-back single taps; this is done for the purposes of being able to add a "human
speed" delay prior to the second single tap gesture. After the change to wait for the single tap gesture to
reset before attempting to simulate the next tap, this strategy no longer works, since the second gesture is
recognized only as a single tap instead of a double tap.

Instead, we add a delay parameter to UIScriptController::doubleTapAtPoint, which the "human speed" double tap
gestures use instead to wait after simulating the first tap.

  • WebKitTestRunner/ios/HIDEventGenerator.h:
  • WebKitTestRunner/ios/HIDEventGenerator.mm:

(-[HIDEventGenerator _waitFor:]):
(-[HIDEventGenerator sendTaps:location:withNumberOfTouches:delay:completionBlock:]):

Plumb the tap gesture delay through to this helper method.

(-[HIDEventGenerator tap:completionBlock:]):
(-[HIDEventGenerator doubleTap:delay:completionBlock:]):
(-[HIDEventGenerator twoFingerTap:completionBlock:]):
(-[HIDEventGenerator sendTaps:location:withNumberOfTouches:completionBlock:]): Deleted.
(-[HIDEventGenerator doubleTap:completionBlock:]): Deleted.

  • WebKitTestRunner/ios/UIScriptControllerIOS.h:
  • WebKitTestRunner/ios/UIScriptControllerIOS.mm:

(WTR::UIScriptControllerIOS::waitForSingleTapToReset const):

Add a new helper to wait for the content view's single tap gesture to reset if needed; call this before
attempting to simulate single taps (either using a stylus, or with a regular touch).

(WTR::UIScriptControllerIOS::singleTapAtPointWithModifiers):
(WTR::UIScriptControllerIOS::doubleTapAtPoint):
(WTR::UIScriptControllerIOS::stylusTapAtPointWithModifiers):

LayoutTests:

Adjusts a few layout tests after changes to UIScriptController::doubleTapAtPoint and
UIScriptController::singleTapAtPoint.

  • editing/selection/ios/change-selection-by-tapping.html:

Tweak this test to tap the page 12 times instead of 20 (which seems to cause occasional timeouts locally, when
running all layout tests with a dozen active simulators).

  • fast/events/ios/double-tap-zoom.html:
  • fast/events/ios/viewport-device-width-allows-double-tap-zoom-out.html:
  • fast/events/ios/viewport-shrink-to-fit-allows-double-tap.html:

Augment a few call sites of doubleTapAtPoint with a 0 delay. Ideally, these should just use ui-helper.js, but
we can refactor these tests as a part of folding basic-gestures.js into ui-helper.js.

  • http/tests/adClickAttribution/anchor-tag-attributes-validation-expected.txt:
  • http/tests/security/anchor-download-block-crossorigin-expected.txt:

Rebaseline these layout tests, due to change in line numbers.

  • platform/ipad/TestExpectations:

Unskip these tests on iPad, now that they should pass.

  • pointerevents/utils.js:

(const.ui.new.UIController.prototype.doubleTapToZoom):

  • resources/basic-gestures.js:

(return.new.Promise.):
(return.new.Promise):

Adjust some more call sites of doubleTapAtPoint. Ideally, these should use just ui-helper.js too.

  • resources/ui-helper.js:

(window.UIHelper.doubleTapAt.return.new.Promise):
(window.UIHelper.doubleTapAt):
(window.UIHelper.humanSpeedDoubleTapAt):
(window.UIHelper.humanSpeedZoomByDoubleTappingAt):

Add a delay parameter to doubleTapAt to specify a delay after each simulated tap. By default, this is 0, but
the humanSpeed* helpers add a delay of 120 milliseconds. Additionally, these helpers were previously calling
singleTapAtPoint twice, with a timeout in between to add a delay. Instead, call doubleTapAtPoint with a
nonzero delay; otherwise, we'll end up waiting in singleTapAtPoint for the gesture subgraph containing both
the double tap gestures and the synthetic single tap gesture to reset, which causes these two single taps to no
longer be recognized as a double tap gesture.

(window.UIHelper.zoomByDoubleTappingAt):

12:18 PM Changeset in webkit [249111] by Jonathan Bedard
  • 3 edits in trunk/Tools

results.webkit.org: Allow clicking on the tooltip arrow
https://bugs.webkit.org/show_bug.cgi?id=201103

Rubber-stamped by Aakash Jain.

By design, the arrow sits above the canvas and intercepts mouse events from it.
This will often make an element that has a tooltip unclickable.

  • resultsdbpy/resultsdbpy/view/static/js/timeline.js:

(xAxisFromScale):
(TimelineFromEndpoint.prototype.render.onDotEnterFactory):
(TimelineFromEndpoint.prototype.render):

  • resultsdbpy/resultsdbpy/view/static/js/tooltip.js:

(_ToolTip):
(_ToolTip.prototype.toString): Trigger onClick callback when the arrow is clicked.
(_ToolTip.prototype.set): Set the onClick callback.

12:08 PM Changeset in webkit [249110] by Brent Fulgham
  • 23 edits in trunk/Source

[FTW] Go back to ID2D1Bitmap as our NativeImage type
https://bugs.webkit.org/show_bug.cgi?id=201122

Reviewed by Alex Christensen.

In Bug 200093 I switched the OS type of NativeImagePtr from ID2D1Bitmap to IWICBitmap.
However, this was an ill-advised approach, because it dramatically harmed performance due
to the heavy use of software rendering.

I originally made this change because I thought this was the only way to get to the backing
bits of the bitmaps, but it turns out that a more recent Direct2D data type (ID2D1Bitmap1)
has the ability to map its memory to CPU-accessible memory, allowing software filter effects.

This patch switches back to the ID2D1Bitap data type, and hooks up the ID2D1Bitmap1 data type
to access the underlying memory of the bitmaps when software filter effects are used.

Source/WebCore:

  • platform/graphics/ImageBuffer.h:
  • platform/graphics/NativeImage.h:
  • platform/graphics/texmap/BitmapTextureGL.cpp:
  • platform/graphics/win/Direct2DOperations.cpp:
  • platform/graphics/win/Direct2DOperations.h:
  • platform/graphics/win/Direct2DUtilities.cpp:

(WebCore::Direct2D::writeDiagnosticPNGToPath):
(WebCore::Direct2D::writeImageToDiskAsPNG): Deleted.

  • platform/graphics/win/Direct2DUtilities.h:
  • platform/graphics/win/GraphicsContextDirect2D.cpp:
  • platform/graphics/win/ImageBufferDataDirect2D.cpp:
  • platform/graphics/win/ImageBufferDataDirect2D.h:
  • platform/graphics/win/ImageBufferDirect2D.cpp:
  • platform/graphics/win/ImageDecoderDirect2D.cpp:
  • platform/graphics/win/NativeImageDirect2D.cpp:
  • platform/graphics/win/PatternDirect2D.cpp:
  • svg/graphics/SVGImage.cpp:

Source/WebKit:

Reviewed by Alex Christensen.

  • Shared/ShareableBitmap.h:
  • Shared/win/ShareableBitmapDirect2D.cpp:
  • UIProcess/win/BackingStoreDirect2D.cpp:
  • WebProcess/WebPage/CoordinatedGraphics/DrawingAreaCoordinatedGraphics.cpp:
11:58 AM Changeset in webkit [249109] by weinig@apple.com
  • 5 edits in trunk/Source/WebCore

[WHLSL] TypeNamer can be simplified by replacing BaseTypeNameNode with uniqued AST::UnnamedTypes
https://bugs.webkit.org/show_bug.cgi?id=200632

Reviewed by Saam Barati.

There is no longer a reason to keep a parallel tree of the UnnamedType-like objects
BaseTypeNameNodes. Instead, we can store a single HashMap mapping from UnnamedTypeKeys
to MangledTypeName, and use the the UnnamedType stored in the UnnamedTypeKey while
emitting the metal code. This removes the parallel BaseTypeNameNode type hierarchy
and removes an extra allocation for each UnnamedType.

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

Define HashTraits and DefaultHash specializations for UnnamedTypeKey to simplify
uses of UnnamedTypeKey as a key in HashMap/HashSet.

  • Modules/webgpu/WHLSL/Metal/WHLSLTypeNamer.h:
  • Modules/webgpu/WHLSL/Metal/WHLSLTypeNamer.cpp:

(WebCore::WHLSL::Metal::TypeNamer::insert): Deleted.
(WebCore::WHLSL::Metal::TypeNamer::generateUniquedTypeName):
Replace old insert function with generateUniquedTypeName, which uniques and generates
names for the UnnamedType and any 'parent' UnnamedTypes.

(WebCore::WHLSL::Metal::BaseTypeNameNode): Deleted.
Remove BaseTypeNameNode and subclasses.

(WebCore::WHLSL::Metal::TypeNamer::find): Deleted.
(WebCore::WHLSL::Metal::TypeNamer::createNameNode): Deleted.
We no longer need the find or createNameNode functions, as the UnnamedTypes can be now be
used directly everywhere.

(WebCore::WHLSL::Metal::TypeNamer::emitUnnamedTypeDefinition):
Switch to directly using the UnnamedType and always have the caller pass in the mangled
name, since in the main emit loop, we always have access to the them. Also, inline the
the recursive calls to emitNamedTypeDefinition for 'parent' types to avoid unnecessary
extra switch over the kind getting the parent, and avoid it entirely for TypeReference
which never has a parent.

(WebCore::WHLSL::Metal::TypeNamer::emitNamedTypeDefinition):
Switches to now passing in the neighbors, since they are always available in the main
emit loop. Also move to a switch statement rather than ifs for consistency.

(WebCore::WHLSL::Metal::TypeNamer::emitMetalTypeDefinitions):
Pass keys and values into the emit functions to avoid double lookups.

(WebCore::WHLSL::Metal::TypeNamer::mangledNameForType):
Update to hash lookup.

  • Modules/webgpu/WHLSL/WHLSLSynthesizeConstructors.cpp:

Take advantage of default HashTraits and DefaultHash for UnnamedTypeKey.

11:43 AM Changeset in webkit [249108] by jiewen_tan@apple.com
  • 18 edits in trunk

[WebAuthn] Support HID authenticators on iOS
https://bugs.webkit.org/show_bug.cgi?id=201084
<rdar://problem/51908390>

Reviewed by Youenn Fablet.

Source/WebCore/PAL:

  • pal/spi/cocoa/IOKitSPI.h:

Move IOHIDDevice.h and IOHIDManager.h to IOKitSPI.h given they are in iOS.

Source/WebKit:

This patch makes the macOS HID implementation available in iOS as well.
Mostly, it removes the PLATFORM(MAC) compile time flag.

  • UIProcess/WebAuthentication/AuthenticatorManager.cpp:

(WebKit::AuthenticatorManagerInternal::collectTransports):

  • UIProcess/WebAuthentication/AuthenticatorTransportService.cpp:

(WebKit::AuthenticatorTransportService::create):
(WebKit::AuthenticatorTransportService::createMock):

  • UIProcess/WebAuthentication/Cocoa/HidConnection.h:
  • UIProcess/WebAuthentication/Cocoa/HidConnection.mm:
  • UIProcess/WebAuthentication/Cocoa/HidService.h:
  • UIProcess/WebAuthentication/Cocoa/HidService.mm:
  • UIProcess/WebAuthentication/Cocoa/NfcConnection.mm:

(WebKit::NfcConnection::NfcConnection):
A tentative solution before there is an official UI.

  • UIProcess/WebAuthentication/Mock/MockHidConnection.cpp:
  • UIProcess/WebAuthentication/Mock/MockHidConnection.h:
  • UIProcess/WebAuthentication/Mock/MockHidService.cpp:
  • UIProcess/WebAuthentication/Mock/MockHidService.h:
  • UIProcess/WebAuthentication/fido/CtapHidDriver.cpp:
  • UIProcess/WebAuthentication/fido/CtapHidDriver.h:

LayoutTests:

  • platform/ios-wk2/TestExpectations:

Unskips HID tests for iOS.

11:41 AM Changeset in webkit [249107] by jiewen_tan@apple.com
  • 2 edits in trunk/LayoutTests

Unreviewed, test gardening

  • platform/mac-wk2/TestExpectations:

Skip WebAuthn tests for HighSierra and Mojave.

11:03 AM Changeset in webkit [249106] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebCore

REGRESSION (18E140): “return streaming movie to real time” suggesting “resume real time streaming”
https://bugs.webkit.org/show_bug.cgi?id=201108
<rdar://problem/46372525>

Patch by Peng Liu <Peng Liu> on 2019-08-26
Reviewed by Eric Carlson.

Update Localizable.strings.

No new test.

  • en.lproj/Localizable.strings:
  • platform/LocalizedStrings.cpp:

(WebCore::localizedMediaControlElementHelpText):

10:51 AM Changeset in webkit [249105] by youenn@apple.com
  • 2 edits in trunk/Source/WebCore

CacheStorageConnection::computeRealBodySize is not thread-safe
https://bugs.webkit.org/show_bug.cgi?id=201074

Reviewed by Chris Dumez.

In case of a form data, the size computation might require sync IPC to the network process which is not thread-safe
In that case, hop to the main thread to compute the size of the body.
Covered by existing service worker tests in Debug mode.

  • Modules/cache/CacheStorageConnection.cpp:

(WebCore::formDataSize):
(WebCore::CacheStorageConnection::computeRealBodySize):

10:48 AM Changeset in webkit [249104] by aakash_jain@apple.com
  • 3 edits in trunk/Tools

[EWS] Do not append additional '(failure)' string at the end of custom failure message in EWS Buildbot
https://bugs.webkit.org/show_bug.cgi?id=201140

Reviewed by Jonathan Bedard.

  • BuildSlaveSupport/ews-build/steps.py:

(TestWithFailureCount.getResultSummary): Do not append (failure) when in case of custom status.

  • BuildSlaveSupport/ews-build/steps_unittest.py: Updated unit-tests accordingly.
10:36 AM Changeset in webkit [249103] by commit-queue@webkit.org
  • 1 edit
    1 add in trunk/Source/ThirdParty/ANGLE

Add a script to update ANGLE
https://bugs.webkit.org/show_bug.cgi?id=201109

Patch by James Darpinian <jdarpinian@google.com> on 2019-08-26
Reviewed by Alex Christensen.

  • update-angle.sh: Added.
10:21 AM Changeset in webkit [249102] by Jonathan Bedard
  • 2 edits in trunk/Tools

run-webkit-tests: Cap the number of automatically booted simulators at 12
https://bugs.webkit.org/show_bug.cgi?id=201139

Reviewed by Aakash Jain.

To make local development with simulators more pleasant, machines should
never automatically boot more than 12 simulators.

  • Scripts/webkitpy/xcode/simulated_device.py:

(SimulatedDeviceManager.max_supported_simulators):

10:12 AM Changeset in webkit [249101] by russell_e@apple.com
  • 6 edits
    5 deletes in trunk

Unreviewed, rolling out r248961.

Same patch was re-landed after being rolled out. Patch is
causing Catalina/iOS 13 test failures. Rolling out.

Reverted changeset:

"Verify Prefetch and credential behavior"
https://bugs.webkit.org/show_bug.cgi?id=200000
https://trac.webkit.org/changeset/248961

10:08 AM Changeset in webkit [249100] by aakash_jain@apple.com
  • 6 edits in trunk/Tools

[ews] Add EWS queue for applying watchlist
https://bugs.webkit.org/show_bug.cgi?id=201072

Reviewed by Jonathan Bedard.

  • BuildSlaveSupport/ews-build/steps.py:

(ApplyWatchList): Build step to apply watchlist.
(ApplyWatchList.init): Set logEnviron to False.
(ApplyWatchList.getResultSummary): Updated the description in case of failure.

  • BuildSlaveSupport/ews-build/steps_unittest.py: Added unit-tests.
  • BuildSlaveSupport/ews-build/factories.py:

(WatchListFactory): Build factory for WatchList.

  • BuildSlaveSupport/ews-build/loadConfig.py:
  • BuildSlaveSupport/ews-build/config.json:
9:57 AM Changeset in webkit [249099] by russell_e@apple.com
  • 2 edits in trunk/LayoutTests

rdar://51857070 (iPad: Many fast/text-autosizing layout tests are consistently failing)

Unreviewed Test Gardening.
Tests are no longer failing. Removing test expectations.

  • platform/ipad/TestExpectations:
9:48 AM Changeset in webkit [249098] by achristensen@apple.com
  • 1 edit
    1 delete in trunk

Remove NPAPI Examples
https://bugs.webkit.org/show_bug.cgi?id=201089

Reviewed by Alexey Proskuryakov.

We are only supporting NPAPI for flash until its upcoming end of life.
We don't need to encourage the creation of new NPAPI plugins by having examples.

  • Examples: Removed.
8:07 AM Changeset in webkit [249097] by Adrian Perez de Castro
  • 3 edits in releases/WebKitGTK/webkit-2.24/Source/JavaScriptCore

Merged r249095 - Missing media controls when WebKit is built with Python3
https://bugs.webkit.org/show_bug.cgi?id=194367

Reviewed by Carlos Garcia Campos.

The JavaScript minifier script jsmin.py expects a text stream
with text type as input, but the script make-js-file-arrays.py
was passing to it a FileIO() object. So, when the jsmin script
called read() over this object, python3 was returning a type of
bytes, but for python2 it returns type str.

This caused two problems: first that jsmin failed to do any minifying
because it was comparing strings with a variable of type bytes.
The second major problem was in the write() function, when the
jsmin script tried to convert a byte character to text by calling
str() on it. Because what this does is not to convert from byte
type to string, but to simply generate a string with the format b'c'.
So the jsmin script was returning back as minified JS complete
garbage in the form of "b't'b'h'b'h'b'i" for python3.

Therefore, when WebKit was built with python3 this broke everything
that depended on the embedded JS code that make-js-file-arrays.py
was supposed to generate, like the media controls and the WebDriver
atoms.

Fix this by reworking the code in make-js-file-arrays script to
read the data from the file using a TextIOWrapper in python 3
with decoding for 'utf-8'. This ensures that the jsmin receives
a text type. For python2 keep using the same FileIO class.

On the jsmin.py script remove the problematic call to str() inside
the write() function when running with python3.
On top of that, add an extra check in jsmin.py script to make it
fail if the character type read is not the one expected. This
will cause the build to fail instead of failing silently like
now. I did some tests and the runtime cost of this extra check
is almost zero.

  • Scripts/jsmin.py:

(JavascriptMinify.minify.write):
(JavascriptMinify):

  • Scripts/make-js-file-arrays.py:

(main):

8:00 AM Changeset in webkit [249096] by youenn@apple.com
  • 37 edits
    2 copies
    3 adds in trunk

Add a WebsiteDataStore delegate to handle AuthenticationChallenge that do not come from pages
https://bugs.webkit.org/show_bug.cgi?id=196870
LayoutTests/imported/w3c:

<rdar://problem/54593556>

Reviewed by Alex Christensen.

  • web-platform-tests/service-workers/service-worker/websocket-in-service-worker.https-expected.txt:

Source/WebKit:

Reviewed by Alex Christensen.

Make NetworkProcess provide the session ID for any authentication challenge.
In case there is no associated page for the authentication challenge or this is related to a service worker,
ask the website data store to take a decision.
Add website data store delegate to allow applications to make the decision.
Restrict using the delegate to server trust evaluation only.

Make ping loads reuse the same mechanism.

Covered by service worker tests and updated beacon test.

  • NetworkProcess/NetworkCORSPreflightChecker.cpp:

(WebKit::NetworkCORSPreflightChecker::didReceiveChallenge):

  • NetworkProcess/NetworkDataTask.cpp:

(WebKit::NetworkDataTask::sessionID const):

  • NetworkProcess/NetworkDataTask.h:
  • NetworkProcess/NetworkLoad.cpp:

(WebKit::NetworkLoad::didReceiveChallenge):

  • NetworkProcess/NetworkLoadChecker.h:

(WebKit::NetworkLoadChecker::networkProcess):

  • NetworkProcess/PingLoad.cpp:

(WebKit::PingLoad::didReceiveChallenge):

  • Shared/Authentication/AuthenticationManager.cpp:

(WebKit::AuthenticationManager::didReceiveAuthenticationChallenge):

  • Shared/Authentication/AuthenticationManager.h:
  • Shared/Authentication/cocoa/AuthenticationChallengeDispositionCocoa.h: Copied from Tools/WebKitTestRunner/cocoa/TestWebsiteDataStoreDelegate.h.
  • Shared/Authentication/cocoa/AuthenticationChallengeDispositionCocoa.mm: Copied from Source/WebKit/Shared/Authentication/cocoa/ClientCertificateAuthenticationXPCConstants.h.

(WebKit::toAuthenticationChallengeDisposition):

  • SourcesCocoa.txt:
  • UIProcess/API/Cocoa/WKWebsiteDataStore.mm:

(WebsiteDataStoreClient::WebsiteDataStoreClient):

  • UIProcess/API/Cocoa/_WKWebsiteDataStoreDelegate.h:
  • UIProcess/Cocoa/NavigationState.mm:

(WebKit::NavigationState::NavigationClient::didReceiveAuthenticationChallenge):

  • UIProcess/Network/NetworkProcessProxy.cpp:

(WebKit::NetworkProcessProxy::didReceiveAuthenticationChallenge):

  • UIProcess/Network/NetworkProcessProxy.h:
  • UIProcess/Network/NetworkProcessProxy.messages.in:
  • UIProcess/ServiceWorkerProcessProxy.cpp:
  • UIProcess/ServiceWorkerProcessProxy.h:
  • UIProcess/WebPageProxy.cpp:
  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::isServiceWorkerPageID const):

  • UIProcess/WebProcessPool.h:
  • UIProcess/WebsiteData/WebsiteDataStoreClient.h:

(WebKit::WebsiteDataStoreClient::didReceiveAuthenticationChallenge):

  • WebKit.xcodeproj/project.pbxproj:

Tools:

Reviewed by Alex Christensen.

Implement the new delegate by respecting the value set by testRunner.setAllowsAnySSLCertificate
Accept any server certificate by default.

  • WebKitTestRunner/TestController.cpp:
  • WebKitTestRunner/cocoa/TestControllerCocoa.mm:

(WTR::TestController::cocoaResetStateToConsistentValues):
(WTR::TestController::setAllowsAnySSLCertificate):

  • WebKitTestRunner/cocoa/TestWebsiteDataStoreDelegate.h:
  • WebKitTestRunner/cocoa/TestWebsiteDataStoreDelegate.mm:

(-[TestWebsiteDataStoreDelegate didReceiveAuthenticationChallenge:completionHandler:]):
(-[TestWebsiteDataStoreDelegate setAllowAnySSLCertificate:]):

LayoutTests:

Reviewed by Alex Christensen.

Add tests to validate that the delegate decision is respected for beacons and service worker loads.

  • http/wpt/beacon/cors/crossorigin-arraybufferview-no-preflight-expected.txt:
  • http/wpt/beacon/cors/crossorigin-arraybufferview-no-preflight.html:
  • http/wpt/beacon/resources/beacon-preflight.py:

(main):

  • http/wpt/service-workers/resources/lengthy-pass.py:

(main):

  • http/wpt/service-workers/server-trust-evaluation.https-expected.txt: Added.
  • http/wpt/service-workers/server-trust-evaluation.https.html: Added.
  • http/wpt/service-workers/server-trust-worker.js: Added.
  • http/tests/ssl/certificate-validation.html: Remove unneeded setting call

since we deny server trust requests if SSL certificates are not all allowed.

7:58 AM WebKitGTK/2.24.x edited by Adrian Perez de Castro
(diff)
7:54 AM WebKitGTK/2.24.x edited by Adrian Perez de Castro
(diff)
7:36 AM Changeset in webkit [249095] by clopez@igalia.com
  • 3 edits in trunk/Source/JavaScriptCore

Missing media controls when WebKit is built with Python3
https://bugs.webkit.org/show_bug.cgi?id=194367

Reviewed by Carlos Garcia Campos.

The JavaScript minifier script jsmin.py expects a text stream
with text type as input, but the script make-js-file-arrays.py
was passing to it a FileIO() object. So, when the jsmin script
called read() over this object, python3 was returning a type of
bytes, but for python2 it returns type str.

This caused two problems: first that jsmin failed to do any minifying
because it was comparing strings with a variable of type bytes.
The second major problem was in the write() function, when the
jsmin script tried to convert a byte character to text by calling
str() on it. Because what this does is not to convert from byte
type to string, but to simply generate a string with the format b'c'.
So the jsmin script was returning back as minified JS complete
garbage in the form of "b't'b'h'b'h'b'i" for python3.

Therefore, when WebKit was built with python3 this broke everything
that depended on the embedded JS code that make-js-file-arrays.py
was supposed to generate, like the media controls and the WebDriver
atoms.

Fix this by reworking the code in make-js-file-arrays script to
read the data from the file using a TextIOWrapper in python 3
with decoding for 'utf-8'. This ensures that the jsmin receives
a text type. For python2 keep using the same FileIO class.

On the jsmin.py script remove the problematic call to str() inside
the write() function when running with python3.
On top of that, add an extra check in jsmin.py script to make it
fail if the character type read is not the one expected. This
will cause the build to fail instead of failing silently like
now. I did some tests and the runtime cost of this extra check
is almost zero.

  • Scripts/jsmin.py:

(JavascriptMinify.minify.write):
(JavascriptMinify):

  • Scripts/make-js-file-arrays.py:

(main):

2:41 AM Changeset in webkit [249094] by youenn@apple.com
  • 2 edits in trunk/Source/WebCore

MessagePort should be WeakPtrFactoryInitialization::Eager
https://bugs.webkit.org/show_bug.cgi?id=201073

Reviewed by Chris Dumez.

Covered by existing layout tests.

  • dom/MessagePort.h:
Note: See TracTimeline for information about the timeline view.