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

Timeline



Oct 2, 2019:

11:59 PM Changeset in webkit [250644] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebKitLegacy/mac

Provide TAPI the full target triple instead of just the arch
https://bugs.webkit.org/show_bug.cgi?id=202486

Reviewed by Simon Fraser.

  • MigrateHeaders.make:

For accuracy and consistency's sake, pass the whole target identifier
instead of just one piece.

10:22 PM Changeset in webkit [250643] by Antti Koivisto
  • 10 edits in trunk

[CSS Shadow Parts] Support multiple arguments for ::part()
https://bugs.webkit.org/show_bug.cgi?id=202482

Reviewed by Ryosuke Niwa.

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-shadow-parts/multiple-parts-expected.txt:

Source/WebCore:

Support ::part(foo bar).

  • css/CSSSelector.cpp:

(WebCore::CSSSelector::selectorText const):
(WebCore::CSSSelector::setArgumentList):
(WebCore::CSSSelector::setLangArgumentList): Deleted.

Give this a more generic name and use it for ::part() too.

  • css/CSSSelector.h:

(WebCore::CSSSelector::argumentList const):
(WebCore::CSSSelector::langArgumentList const): Deleted.

  • css/SelectorChecker.cpp:

(WebCore::SelectorChecker::checkOne const):

Match only if all parts are found from the element 'part' attribute.

  • css/parser/CSSParserSelector.cpp:

(WebCore::CSSParserSelector::setArgumentList):
(WebCore::CSSParserSelector::setLangArgumentList): Deleted.

  • css/parser/CSSParserSelector.h:
  • css/parser/CSSSelectorParser.cpp:

(WebCore::CSSSelectorParser::consumePseudo):

Parse the list.

  • cssjit/SelectorCompiler.cpp:

(WebCore::SelectorCompiler::addPseudoClassType):

9:53 PM Changeset in webkit [250642] by aestes@apple.com
  • 5 edits in trunk/Source

[iOS] When hit testing for a context menu interaction, do not consider whether the element is contenteditable
https://bugs.webkit.org/show_bug.cgi?id=202498
<rdar://problem/54723131>

Reviewed by Tim Horton.

Source/WebCore:

When the user selects a context menu action, WebKit performs a hit test in order to find the
acted-on element on the page. This is separate from the hit test performed to generate the
context menu's targeted preview. Since an arbitrary amount of time can elapse between
preview generation and action selection, this second hit-tests might return a different
element.

One case where we know a different element can be returned is in apps that dynamically
enable and disable editing. If editing is disabled when the first hit test occurs but is
enabled when the second one occurs, different elements will be returned due to
Frame::qualifyingNodeAtViewportLocation preferring to return the root editable element when
the approximate node is contenteditable.

While the appropriate long-term fix is to only hit-test once and use that element for both
preview generation and action selection, this patch implements a short-term fix to address
the specific problem in rdar://problem/54723131 by disabling the contenteditable behavior
described above for context menu interaction hit testing.

The long-term fix is tracked by <https://webkit.org/b/202499>.

  • page/Frame.h:
  • page/ios/FrameIOS.mm:

(WebCore::Frame::qualifyingNodeAtViewportLocation):
(WebCore::Frame::approximateNodeAtViewportLocationLegacy):
(WebCore::ancestorRespondingToClickEventsNodeQualifier):
(WebCore::Frame::nodeRespondingToClickEvents):
(WebCore::Frame::nodeRespondingToDoubleClickEvent):
(WebCore::Frame::nodeRespondingToInteraction):
(WebCore::Frame::nodeRespondingToScrollWheelEvents):

Source/WebKit:

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::startInteractionWithElementAtPosition): Changed to call
WebCore::Frame::nodeRespondingToInteraction.

7:47 PM Changeset in webkit [250641] by mitz@apple.com
  • 9 copies
    1 add in releases/Apple/Safari Technology Preview/Safari Technology Preview 93

Added a tag for Safari Technology Preview release 93.

5:53 PM Changeset in webkit [250640] by mmaxfield@apple.com
  • 5 edits
    2 adds in trunk

REGRESSION (r245672): <select> dropdown with text-rendering: optimizeLegibility freezes Safari
https://bugs.webkit.org/show_bug.cgi?id=202198

Reviewed by Tim Horton.

Source/WebKit:

NSFont has a bug where passing "auto" to kCTFontOpticalSizeAttribute
causes an exception to be thrown. We don't catch the exception, so we
pop up back to the runloop, which confuses the UI process.

The solution is twofold: 1) Workaround the bug by passing the font size
to kCTFontOpticalSizeAttribute instead, and 2) catch any exceptions that
this part of the code might throw.

  • UIProcess/mac/WebPopupMenuProxyMac.mm:

(WebKit::WebPopupMenuProxyMac::showPopupMenu):

Source/WTF:

  • wtf/Platform.h:

LayoutTests:

  • fast/forms/select-font-optical-size-expected.txt: Added.
  • fast/forms/select-font-optical-size.html: Added.
5:19 PM Changeset in webkit [250639] by Jonathan Bedard
  • 2 edits in trunk/Tools

results.webkit.org: Only automatically search when multiple lines are pasted
https://bugs.webkit.org/show_bug.cgi?id=202496

Rubber-stamped by Aakash Jain.

  • resultsdbpy/resultsdbpy/view/static/js/search.js:

(SearchBar): If only a single line has been pasted, do not automatically dispatch
the search.

4:41 PM Changeset in webkit [250638] by achristensen@apple.com
  • 2 edits in trunk/Source/WebKit

[CMake] Don't link WebKit.framework with SecItemShim
https://bugs.webkit.org/show_bug.cgi?id=202490

  • PlatformMac.cmake:

Otherwise everything that uses the Security framework crashes immediately.
We only need it in the NetworkProcess.

4:30 PM Changeset in webkit [250637] by Alan Coon
  • 7 edits in branches/safari-608.3-branch/Source

Versioning.

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

DoubleToStringConverter::ToExponential() should null terminate its string.
https://bugs.webkit.org/show_bug.cgi?id=202492
<rdar://problem/55907708>

Reviewed by Filip Pizlo.

JSTests:

  • stress/dtoa-AddSubstring-should-uses-strnlen-in-assertion.js: Added.

Source/WTF:

  • wtf/dtoa/double-conversion.cc:
  • DoubleToStringConverter::DoubleToAscii() always produces a null terminated string. Fixed the padding loop in DoubleToStringConverter::ToExponential() that follows it to also keep the null terminator.
  • wtf/dtoa/utils.h:

(WTF::double_conversion::StringBuilder::AddSubstring):

  • An assertion in here was using strlen() which indicates that it expects a null terminator in the incoming string. However, this requirement is too restrictive. The code does not actually depend on the string having a null terminator, only that a null terminator does not manifest before the nth character. Changed the assertion to use strnlen() instead to reflect this.
3:41 PM Changeset in webkit [250635] by Alan Coon
  • 7 edits in branches/safari-608-branch/Source

Versioning.

3:37 PM Changeset in webkit [250634] by Alan Coon
  • 1 copy in branches/safari-608.3-branch

New branch.

2:54 PM Changeset in webkit [250633] by Nikita Vasilyev
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Styles: for rules that don't match selected node, property values always show as invalid
https://bugs.webkit.org/show_bug.cgi?id=201571

Reviewed by Matt Baker.

The gist of the bug:

  • WI.CSSProperty is instantiated with valid false.
  • CSSAgent.getMatchedStylesForNode never updates WI.CSSProperty instances because the edited style does not in fact match the selected DOM node. A valid CSS property is shown as invalid.

To resolve this, WI.CSSProperty instances are now updated after editing
in the callback of CSSAgent.setStyleText.

  • UserInterface/Models/DOMNodeStyles.js:

(WI.DOMNodeStyles.prototype.changeStyleText):
(WI.DOMNodeStyles.prototype._parseStyleDeclarationPayload):
Don't store style in this._stylesMap of WI.DOMNodeStyles when the style doesn't match the selected node.

2:50 PM Changeset in webkit [250632] by Alan Coon
  • 1 copy in tags/Safari-608.3.8

Tag Safari-608.3.8.

2:45 PM Changeset in webkit [250631] by Jonathan Bedard
  • 2 edits in trunk/Tools

Python 3: Add test-webkitpy for Python 3 (Follow-up fix)
https://bugs.webkit.org/show_bug.cgi?id=201954

Unreviewed follow-up fix.

  • Scripts/test-webkitpy-python3: Add copyright.
2:23 PM Changeset in webkit [250630] by ysuzuki@apple.com
  • 49 edits
    2 copies
    4 adds in trunk

[JSC] AsyncGenerator should have internal fields
https://bugs.webkit.org/show_bug.cgi?id=201498

Reviewed by Saam Barati.

JSTests:

  • stress/async-generator-construct-failure.js: Added.

(shouldThrow):
(async.gen):
(TypeError):

  • stress/async-generator-prototype-change.js: Added.

(shouldBe):
(async.gen):

  • stress/async-generator-prototype-closure.js: Added.

(shouldBe):
(test.async.gen):
(test):

  • stress/create-async-generator.js: Added.

(shouldBe):
(test.async.generator):
(test):

Source/JavaScriptCore:

This patch introduces JSAsyncGenerator. We did this already for JSGenerator. This patch does the same thing for JSAsyncGenerator
This patch cleans up JSGenerator's code to share it with JSAsyncGenerator, e.g. JSGenerator::initialValues etc.
It improves JetStream2/async-fs by ~10%.

We also fixed the pre-existing bug. We are using OpcodeID for the key of hashmap. And using op_add code as a part of key.
By adding a new bytecode, it suddenly becomes 0. And 0 is not valid key in WTF::HashMap. This patch adds 1 to opcodeID when using
for HashMap's key to fix this issue.

  • JavaScriptCore.xcodeproj/project.pbxproj:
  • Sources.txt:
  • builtins/AsyncGeneratorPrototype.js:

(globalPrivate.asyncGeneratorQueueIsEmpty):
(globalPrivate.asyncGeneratorQueueEnqueue):
(globalPrivate.asyncGeneratorQueueDequeue):
(globalPrivate.isExecutionState):
(globalPrivate.isSuspendYieldState):
(globalPrivate.asyncGeneratorReject):
(globalPrivate.asyncGeneratorResolve):
(asyncGeneratorYieldAwaited):
(globalPrivate.asyncGeneratorYield):
(globalPrivate.doAsyncGeneratorBodyCall):
(globalPrivate.asyncGeneratorResumeNext):
(globalPrivate.asyncGeneratorEnqueue):

  • builtins/BuiltinNames.h:
  • bytecode/BytecodeIntrinsicRegistry.cpp:

(JSC::BytecodeIntrinsicRegistry::BytecodeIntrinsicRegistry):

  • bytecode/BytecodeIntrinsicRegistry.h:
  • bytecode/BytecodeList.rb:
  • bytecode/BytecodeUseDef.h:

(JSC::computeUsesForBytecodeOffset):
(JSC::computeDefsForBytecodeOffset):

  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::finalizeLLIntInlineCaches):

  • bytecompiler/BytecodeGenerator.cpp:

(JSC::BytecodeGenerator::BytecodeGenerator):
(JSC::BytecodeGenerator::emitPutAsyncGeneratorFields):
(JSC::BytecodeGenerator::emitCreateAsyncGenerator):
(JSC::BytecodeGenerator::emitYieldPoint):
(JSC::BytecodeGenerator::emitYield):
(JSC::BytecodeGenerator::emitAwait):
(JSC::BytecodeGenerator::emitDelegateYield):
(JSC::BytecodeGenerator::emitGeneratorStateChange):

  • bytecompiler/BytecodeGenerator.h:

(JSC::BytecodeGenerator::emitIsAsyncGenerator):

  • bytecompiler/NodesCodegen.cpp:

(JSC::asyncGeneratorInternalFieldIndex):
(JSC::BytecodeIntrinsicNode::emit_intrinsic_getAsyncGeneratorInternalField):
(JSC::BytecodeIntrinsicNode::emit_intrinsic_putAsyncGeneratorInternalField):
(JSC::BytecodeIntrinsicNode::emit_intrinsic_isAsyncGenerator):
(JSC::YieldExprNode::emitBytecode):
(JSC::AwaitExprNode::emitBytecode):

  • dfg/DFGAbstractInterpreterInlines.h:

(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):

  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::parseBlock):
(JSC::DFG::ByteCodeParser::handleCreateInternalFieldObject):

  • dfg/DFGCapabilities.cpp:

(JSC::DFG::capabilityLevel):

  • dfg/DFGClobberize.h:

(JSC::DFG::clobberize):

  • dfg/DFGClobbersExitState.cpp:

(JSC::DFG::clobbersExitState):

  • dfg/DFGConstantFoldingPhase.cpp:

(JSC::DFG::ConstantFoldingPhase::foldConstants):

  • dfg/DFGDoesGC.cpp:

(JSC::DFG::doesGC):

  • dfg/DFGFixupPhase.cpp:

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

  • dfg/DFGNode.h:

(JSC::DFG::Node::convertToNewInternalFieldObject):
(JSC::DFG::Node::hasStructure):
(JSC::DFG::Node::convertToNewGenerator): Deleted.

  • dfg/DFGNodeType.h:
  • dfg/DFGOperations.cpp:
  • dfg/DFGOperations.h:
  • dfg/DFGPredictionPropagationPhase.cpp:
  • dfg/DFGSafeToExecute.h:

(JSC::DFG::safeToExecute):

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileCreateInternalFieldObject):
(JSC::DFG::SpeculativeJIT::compileCreateGenerator):
(JSC::DFG::SpeculativeJIT::compileCreateAsyncGenerator):
(JSC::DFG::SpeculativeJIT::compileNewInternalFieldObject):
(JSC::DFG::SpeculativeJIT::compileNewGenerator):
(JSC::DFG::SpeculativeJIT::compileNewAsyncGenerator):

  • dfg/DFGSpeculativeJIT.h:
  • dfg/DFGSpeculativeJIT32_64.cpp:

(JSC::DFG::SpeculativeJIT::compile):

  • dfg/DFGSpeculativeJIT64.cpp:

(JSC::DFG::SpeculativeJIT::compile):

  • dfg/DFGStoreBarrierInsertionPhase.cpp:
  • ftl/FTLCapabilities.cpp:

(JSC::FTL::canCompile):

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileNode):
(JSC::FTL::DFG::LowerDFGToB3::compileNewInternalFieldObject):
(JSC::FTL::DFG::LowerDFGToB3::compileNewGenerator):
(JSC::FTL::DFG::LowerDFGToB3::compileNewAsyncGenerator):
(JSC::FTL::DFG::LowerDFGToB3::compileCreateInternalFieldObject):
(JSC::FTL::DFG::LowerDFGToB3::compileCreateGenerator):
(JSC::FTL::DFG::LowerDFGToB3::compileCreateAsyncGenerator):

  • jit/JIT.cpp:

(JSC::JIT::privateCompileMainPass):
(JSC::JIT::privateCompileSlowCases):

  • jit/JITInlines.h:

(JSC::JIT::copiedArithProfile):

  • jit/JITOperations.cpp:
  • jit/JITOperations.h:
  • llint/LowLevelInterpreter.asm:
  • runtime/CommonSlowPaths.cpp:

(JSC::createInternalFieldObject):
(JSC::SLOW_PATH_DECL):

  • runtime/CommonSlowPaths.h:
  • runtime/JSAsyncGenerator.cpp: Copied from Source/JavaScriptCore/runtime/JSGenerator.cpp.

(JSC::JSAsyncGenerator::create):
(JSC::JSAsyncGenerator::createStructure):
(JSC::JSAsyncGenerator::JSAsyncGenerator):
(JSC::JSAsyncGenerator::finishCreation):
(JSC::JSAsyncGenerator::visitChildren):

  • runtime/JSAsyncGenerator.h: Copied from Source/JavaScriptCore/runtime/JSGenerator.h.
  • runtime/JSAsyncGeneratorFunction.h:
  • runtime/JSGenerator.cpp:

(JSC::JSGenerator::finishCreation):

  • runtime/JSGenerator.h:
  • runtime/JSGlobalObject.cpp:

(JSC::JSGlobalObject::init):
(JSC::JSGlobalObject::visitChildren):

  • runtime/JSGlobalObject.h:

(JSC::JSGlobalObject::asyncGeneratorStructure const):

  • runtime/JSType.cpp:

(WTF::printInternal):

  • runtime/JSType.h:
2:19 PM Changeset in webkit [250629] by keith_miller@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

FTL OSR exit shouldn't bother updating get_by_id array profiles that have changed modes
https://bugs.webkit.org/show_bug.cgi?id=202493

Reviewed by Saam Barati.

I added this optimization for DFG but forgot to do it for the FTL
at the same time. This patch rectifies that.

  • ftl/FTLOSRExitCompiler.cpp:

(JSC::FTL::compileStub):

2:15 PM Changeset in webkit [250628] by Antti Koivisto
  • 23 edits in trunk

[CSS Shadow Parts] Basic ::part() pseudo element support
https://bugs.webkit.org/show_bug.cgi?id=202456

Reviewed by Ryosuke Niwa.

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-shadow-parts/all-hosts-expected.txt:
  • web-platform-tests/css/css-shadow-parts/complex-matching-expected.txt:
  • web-platform-tests/css/css-shadow-parts/inner-host-expected.txt:
  • web-platform-tests/css/css-shadow-parts/invalidation-change-part-name-expected.txt:
  • web-platform-tests/css/css-shadow-parts/invalidation-change-part-name-idl-domtokenlist-expected.txt:
  • web-platform-tests/css/css-shadow-parts/invalidation-change-part-name-idl-setter-expected.txt:
  • web-platform-tests/css/css-shadow-parts/invalidation-complex-selector-expected.txt:
  • web-platform-tests/css/css-shadow-parts/precedence-part-vs-part-expected.txt:
  • web-platform-tests/css/css-shadow-parts/simple-expected.txt:

Source/WebCore:

Implement basic parsing and selector matching for ::part() pseudo element.

  • css/CSSSelector.cpp:

(WebCore::CSSSelector::pseudoId):
(WebCore::CSSSelector::parsePseudoElementType):
(WebCore::CSSSelector::selectorText const):

  • css/CSSSelector.h:
  • css/ElementRuleCollector.cpp:

(WebCore::ElementRuleCollector::matchAuthorRules):
(WebCore::ElementRuleCollector::matchPartPseudoElementRules):

  • css/ElementRuleCollector.h:
  • css/RuleSet.cpp:

(WebCore::RuleSet::addRule):

  • css/RuleSet.h:

(WebCore::RuleSet::partPseudoElementRules const):

  • css/SelectorChecker.cpp:

(WebCore::SelectorChecker::checkOne const):

  • css/SelectorPseudoElementTypeMap.in:
  • css/parser/CSSParserSelector.cpp:

(WebCore::CSSParserSelector::parsePseudoElementSelector):

Also added ::slotted to SelectorPseudoElementTypeMap.in to resolve a FIXME here.

  • css/parser/CSSParserSelector.h:

(WebCore::CSSParserSelector::needsImplicitShadowCombinatorForMatching const):

  • css/parser/CSSSelectorParser.cpp:

(WebCore::isOnlyPseudoElementFunction):
(WebCore::CSSSelectorParser::consumePseudo):

Parse single values only, multipart ::part(foo bar) case is not yet handled.

  • dom/Element.cpp:

(WebCore::Element::partNames const):

1:50 PM November 2019 Meeting edited by Jon Davis
Added WebKit Goals for 2020 to 11 AM timeslot (diff)
1:49 PM Changeset in webkit [250627] by Alan Coon
  • 5 edits
    1 delete in branches/safari-608-branch

Revert "Cherry-pick r249538. rdar://problem/55911485"

This reverts commit r250612.

1:48 PM Changeset in webkit [250626] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Adopt copyToVector() in AnimationTimeline::animationsForElement()
https://bugs.webkit.org/show_bug.cgi?id=202488

Patch by Antoine Quint <Antoine Quint> on 2019-10-02
Reviewed by Wenson Hsieh.

  • animation/AnimationTimeline.cpp:

(WebCore::AnimationTimeline::animationsForElement const):

1:35 PM Changeset in webkit [250625] by achristensen@apple.com
  • 5 edits in trunk

CMake-built WebKit.framework should launch XPC services successfully
https://bugs.webkit.org/show_bug.cgi?id=202490

Rubber-stamped by Tim Horton.

.:

  • Source/cmake/OptionsMac.cmake:

Source/WebKit:

  • CMakeLists.txt:
  • PlatformMac.cmake:
1:11 PM Changeset in webkit [250624] by commit-queue@webkit.org
  • 4 edits
    2 adds in trunk

Source/WebCore:
[GStreamer] Let playbin handle redirects for us when appropriate
https://bugs.webkit.org/show_bug.cgi?id=195326

A simplified mechanism has been added in GStreamer to handle corner cases.

Patch by Thibault Saunier <tsaunier@igalia.com> on 2019-10-02
Reviewed by Xabier Rodriguez-Calvar.

Not easily testable at our level

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:

(WebCore::MediaPlayerPrivateGStreamer::loadNextLocation):

Tools:
[GSTreamer] Let playbin handle redirects for us when appropriate
https://bugs.webkit.org/show_bug.cgi?id=195326

Added required patche in GStreamer

Patch by Thibault Saunier <tsaunier@igalia.com> on 2019-10-02
Reviewed by Xabier Rodriguez-Calvar.

  • gstreamer/patches/base-0001-playbin-Handle-error-message-with-redirection-indica.patch: Added.
  • gstreamer/patches/good-0001-qtdemux-Specify-REDIRECT-information-in-error-messag.patch: Added.
1:07 PM Changeset in webkit [250623] by aakash_jain@apple.com
  • 3 edits
    2 adds in trunk/Tools

[ews] Add API endpoint to retry failed builds for a patch
https://bugs.webkit.org/show_bug.cgi?id=202424

Reviewed by Jonathan Bedard.

  • BuildSlaveSupport/ews-app/ews/urls.py: Added url mapping for /retry.
  • BuildSlaveSupport/ews-app/ews/views/retrypatch.py: Added.

(RetryPatch.get): Display the web-form to retry the patch. Retry button which will be added soon will
use this form.
(RetryPatch.post): Handle the post request and retry the patch.

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

(StatusBubble.find_failed_builds_for_patch): Method to find failed builds for a patch.

  • BuildSlaveSupport/ews-app/ews/templates/retry.html: Added, similar to submittoews.html. This

allows to retry a patch through a web-form as well.

12:36 PM Changeset in webkit [250622] by timothy_horton@apple.com
  • 3 edits in trunk/Source/WebCore

Another build fix

  • css/typedom/TypedOMCSSImageValue.cpp:

(WebCore::TypedOMCSSImageValue::TypedOMCSSImageValue):

  • css/typedom/TypedOMCSSImageValue.h:

I feel like I am actively being thwarted.

12:21 PM Changeset in webkit [250621] by commit-queue@webkit.org
  • 27 edits
    6 adds in trunk

Updated resource load statistics are never merged into the SQLite Database backend (202372).
https://bugs.webkit.org/show_bug.cgi?id=202372
<rdar://problem/55854542>

Patch by Kate Cheney <Kate Cheney> on 2019-10-02
Reviewed by Brent Fulgham.

Source/WebKit:

This patch has a lot of changes to the test infrastructure to be able
to test the mergeStatistics function. Merging functionality mimics
that of the ResourceLoadStatisticsMemoryStore and the merge() function in
ResourceLoadStatistics.cpp.

  • NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp:

(WebKit::ResourceLoadStatisticsDatabaseStore::ResourceLoadStatisticsDatabaseStore):
Added new SQLite queries that are needed to merge new statistics.

(WebKit::ResourceLoadStatisticsDatabaseStore::prepareStatements):
Added new prepare statements for new SQLite queries.

(WebKit::ResourceLoadStatisticsDatabaseStore::insertObservedDomain):
Updated to use domainID() instead of confirmDomainDoesNotExist which
was deleted. Changed the insert bind parameters
to utilize new enum of Observed Domain table indices which will help
reduce errors in the future if the database schema changes.

(WebKit::ResourceLoadStatisticsDatabaseStore::relationshipExists const):
Changed {public} to {private} in logging statement to avoid leaking
sensitive information when logging the query error.

(WebKit::ResourceLoadStatisticsDatabaseStore::confirmDomainDoesNotExist const): Deleted.
This function essentially does the exact same thing as domainID and
we can reduce code duplication by deleting it and transitioning all
other functions to use domainID instead.

(WebKit::ResourceLoadStatisticsDatabaseStore::domainID const):
Changed {public} to {private} in logging statement to avoid leaking
sensitive information when logging the query error.

(WebKit::ResourceLoadStatisticsDatabaseStore::insertDomainRelationships):
In order to reuse this code for the merge statistics function, I added
a check before each insert call to ensure the relationship does not
already exist in the database. This was not needed before because it
was only called on an empty database.

(WebKit::ResourceLoadStatisticsDatabaseStore::merge):
(WebKit::ResourceLoadStatisticsDatabaseStore::mergeStatistic):
(WebKit::ResourceLoadStatisticsDatabaseStore::mergeStatistics):
Merges new statistic.

(WebKit::ResourceLoadStatisticsDatabaseStore::incrementRecordsDeletedCountForDomains):
(WebKit::ResourceLoadStatisticsDatabaseStore::recursivelyFindNonPrevalentDomainsThatRedirectedToThisDomain):
(WebKit::ResourceLoadStatisticsDatabaseStore::markAsPrevalentIfHasRedirectedToPrevalent):
(WebKit::ResourceLoadStatisticsDatabaseStore::requestStorageAccess):
(WebKit::ResourceLoadStatisticsDatabaseStore::requestStorageAccessUnderOpener):
(WebKit::ResourceLoadStatisticsDatabaseStore::grandfatherDataForDomains):
(WebKit::ResourceLoadStatisticsDatabaseStore::ensurePrevalentResourcesForDebugMode):
(WebKit::ResourceLoadStatisticsDatabaseStore::setUserInteraction):
(WebKit::ResourceLoadStatisticsDatabaseStore::clearUserInteraction):
(WebKit::ResourceLoadStatisticsDatabaseStore::hasHadUserInteraction):
(WebKit::ResourceLoadStatisticsDatabaseStore::setPrevalentResource):
(WebKit::ResourceLoadStatisticsDatabaseStore::setDomainsAsPrevalent):
(WebKit::ResourceLoadStatisticsDatabaseStore::predicateValueForDomain const):
(WebKit::ResourceLoadStatisticsDatabaseStore::clearPrevalentResource):
Changed {public} to {private} in logging statement to avoid leaking
sensitive information when logging the query error.

(WebKit::ResourceLoadStatisticsDatabaseStore::setGrandfathered):
Fix a bug uncovered by the new test cases.

(WebKit::ResourceLoadStatisticsDatabaseStore::ensureResourceStatisticsForRegistrableDomain):
(WebKit::ResourceLoadStatisticsDatabaseStore::clearDatabaseContents):
(WebKit::ResourceLoadStatisticsDatabaseStore::cookieTreatmentForOrigin const):
(WebKit::ResourceLoadStatisticsDatabaseStore::clearExpiredUserInteractions):
(WebKit::ResourceLoadStatisticsDatabaseStore::clearGrandfathering):
(WebKit::ResourceLoadStatisticsDatabaseStore::pruneStatisticsIfNeeded):
(WebKit::ResourceLoadStatisticsDatabaseStore::updateLastSeen):
Changed {public} to {private} in logging statement to avoid leaking
sensitive information when logging the query error.

(WebKit::ResourceLoadStatisticsDatabaseStore::updateDataRecordsRemoved):
A new function that utilizes a query needed for the merging of two
statistics.

(WebKit::ResourceLoadStatisticsDatabaseStore::confirmDomainDoesNotExist const): Deleted.

  • NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.h:
  • NetworkProcess/Classifier/ResourceLoadStatisticsMemoryStore.cpp:

(WebKit::ResourceLoadStatisticsMemoryStore::mergeStatistics):
(WebKit::ResourceLoadStatisticsMemoryStore::wasAccessedAsFirstPartyDueToUserInteraction const): Deleted.
Removed the check for updating times accessed due to first party
interaction, which is data no longer needed in updated ITP.

  • NetworkProcess/Classifier/ResourceLoadStatisticsMemoryStore.h:
  • NetworkProcess/Classifier/ResourceLoadStatisticsStore.h:

Added the mergeStatistics function (previously only in the memory
store) to the parent class now that it is used by both stores.

  • NetworkProcess/Classifier/WebResourceLoadStatisticsStore.cpp:

(WebKit::WebResourceLoadStatisticsStore::resourceLoadStatisticsUpdated):
This function now calls mergeStatistics on the database store if
enabled.

(WebKit::WebResourceLoadStatisticsStore::mergeStatisticForTesting):
This function builds a vector from the sample data to test the
mergeStatistics() function of the database store.

  • NetworkProcess/Classifier/WebResourceLoadStatisticsStore.h:
  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::mergeStatisticForTesting):

  • NetworkProcess/NetworkProcess.h:
  • NetworkProcess/NetworkProcess.messages.in:
  • UIProcess/API/C/WKWebsiteDataStoreRef.cpp:

(WKWebsiteDataStoreSetStatisticsMergeStatistic):
Fixed bug where isGrandfathered function in WKWebsiteDataStoreRef
was calling hasHadUserInteraction by mistake.

  • UIProcess/API/C/WKWebsiteDataStoreRef.h:
  • UIProcess/Network/NetworkProcessProxy.cpp:

(WebKit::NetworkProcessProxy::mergeStatisticForTesting):

  • UIProcess/Network/NetworkProcessProxy.h:

This code is for testing the mergeStatistics() function.

  • UIProcess/WebsiteData/WebsiteDataStore.cpp:

(WebKit::WebsiteDataStore::isGrandfathered):
(WebKit::WebsiteDataStore::mergeStatisticForTesting):

  • UIProcess/WebsiteData/WebsiteDataStore.h:

Added this function which contacts the networkProcess to retrieve the
grandfathered value for a domain. This was not included before because
of a bug in WKWebsiteDataStoreRef.

Tools:

Added testing functionality to the mergeStatistics() function of the
SQLite backend.

  • WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl:
  • WebKitTestRunner/InjectedBundle/InjectedBundle.cpp:

(WTR::InjectedBundle::didReceiveMessageToPage):

  • WebKitTestRunner/InjectedBundle/TestRunner.cpp:

(WTR::TestRunner::setStatisticsMergeStatistic):
(WTR::TestRunner::statisticsCallDidSetMergeStatisticCallback):

  • WebKitTestRunner/InjectedBundle/TestRunner.h:
  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::setStatisticsMergeStatistic):

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

(WTR::TestInvocation::didReceiveSynchronousMessageFromInjectedBundle):
(WTR::TestInvocation::didMergeStatistic):

  • WebKitTestRunner/TestInvocation.h:

LayoutTests:

Added layout tests to test succesful merging of resource load
statistics into SQLite backend.

  • http/tests/resourceLoadStatistics/merge-statistic-does-not-overwrite-database-expected.txt: Added.
  • http/tests/resourceLoadStatistics/merge-statistic-does-not-overwrite-database.html: Added.
  • http/tests/resourceLoadStatistics/merge-statistic-does-overwrite-database-expected.txt: Added.
  • http/tests/resourceLoadStatistics/merge-statistic-does-overwrite-database.html: Added.
  • http/tests/resourceLoadStatistics/merge-statistic-does-partially-overwrite-database-expected.txt: Added.
  • http/tests/resourceLoadStatistics/merge-statistic-does-partially-overwrite-database.html: Added.
12:10 PM Changeset in webkit [250620] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebCore

Another build fix

  • css/typedom/TypedOMCSSImageValue.h:
11:53 AM Changeset in webkit [250619] by dino@apple.com
  • 2 edits in trunk/Source/WebKit

Provide originating website URL to AR QuickLook
https://bugs.webkit.org/show_bug.cgi?id=202451

Reviewed by Antoine Quint.

Declare the setAdditionalParameters method and
call it with the originating page URL if available.

  • UIProcess/Cocoa/SystemPreviewControllerCocoa.mm:
11:49 AM Changeset in webkit [250618] by Devin Rousso
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: REGRESSION(r250149): changing CSS via the Styles details sidebar panel doesn't update the associated resource
https://bugs.webkit.org/show_bug.cgi?id=202446

Reviewed by Joseph Pecoraro.

When updating the text of a WI.CSSProperty (or the selector of a WI.CSSRule) is updated,
Web Inspector will update the backend style sheet, which will notify the WI.CSSManager of
the change, without ever going through the associated WI.SourceCode. WI.CSSManager then
updates the content of the WI.SourceCode to reflect these changes, but at that point the
WI.SourceCode hadn't yet "moved" it's currentRevision forward of it's originalRevision
which means it would get overridden the first time the WI.SourceCode updates itself.

Modify WI.SourceCode such that every path to get the currentRevision ensures that it is
"moved" forward before the WI.SourceCodeRevision value is returned.

  • UserInterface/Models/SourceCode.js:

(WI.SourceCode.prototype.get currentRevision):
(WI.SourceCode.prototype.get content):
(WI.SourceCode.prototype.revisionContentDidChange):
(WI.SourceCode.prototype._initializeCurrentRevisionIfNeeded): Added.
(WI.SourceCode.prototype._processContent):

11:30 AM Changeset in webkit [250617] by graouts@webkit.org
  • 17 edits in trunk

LayoutTests/imported/w3c:
[Web Animations] Implement replaced animations
https://bugs.webkit.org/show_bug.cgi?id=202190
<rdar://55697719>

Reviewed by Dean Jackson.

Mark WPT progressions.

  • web-platform-tests/web-animations/animation-model/keyframe-effects/effect-value-replaced-animations-expected.txt:
  • web-platform-tests/web-animations/interfaces/Animatable/getAnimations-expected.txt:
  • web-platform-tests/web-animations/interfaces/Animation/commitStyles-expected.txt:
  • web-platform-tests/web-animations/interfaces/Animation/persist-expected.txt:
  • web-platform-tests/web-animations/timing-model/timelines/update-and-send-events-replacement-expected.txt:

Source/WebCore:
Try to fix the Windows build

Patch by Tim Horton <timothy_horton@apple.com> on 2019-10-02

  • css/typedom/TypedOMCSSImageValue.cpp:

(WebCore::TypedOMCSSImageValue::document const):

  • css/typedom/TypedOMCSSImageValue.h:

Out-of-line this instead of including Document.h in TypedOMCSSImageValue,
which was an earlier build fix from r250610.

  • platform/graphics/cg/GradientCG.cpp:
  • platform/graphics/win/GlyphPageTreeNodeCGWin.cpp:
  • platform/graphics/win/GraphicsContextCGWin.cpp:

Try to fix the build.

11:29 AM Changeset in webkit [250616] by aakash_jain@apple.com
  • 3 edits in trunk/Tools

[ews] windows or wincairo queue should use del instead of rm command
https://bugs.webkit.org/show_bug.cgi?id=202477

Reviewed by Jonathan Bedard.

  • BuildSlaveSupport/ews-build/steps.py:

(CleanUpGitIndexLock.start): Use 'del' command instead of rm for windows and wincairo.

  • BuildSlaveSupport/ews-build/steps_unittest.py:

(TestCleanUpGitIndexLock.test_success_wincairo): Added unit-test.

11:19 AM Changeset in webkit [250615] by timothy_horton@apple.com
  • 6 edits in trunk/Source/WebCore

Try to fix the Windows build

  • css/typedom/TypedOMCSSImageValue.cpp:

(WebCore::TypedOMCSSImageValue::document const):

  • css/typedom/TypedOMCSSImageValue.h:

Out-of-line this instead of including Document.h in TypedOMCSSImageValue,
which was an earlier build fix from r250610.

  • platform/graphics/cg/GradientCG.cpp:
  • platform/graphics/win/GlyphPageTreeNodeCGWin.cpp:
  • platform/graphics/win/GraphicsContextCGWin.cpp:

Try to fix the build.

10:43 AM Changeset in webkit [250614] by Keith Rollin
  • 5 edits in trunk/Source/WebKit

Properly mark canceled resources in NetworkActivityTracker
https://bugs.webkit.org/show_bug.cgi?id=202440
<rdar://problem/55843651>

Reviewed by Brent Fulgham.

The nw_activity facility tracking resource loads did not originally
have support for reporting resources that were canceled. It now has
that support (since late MacOS 14-aligned SDKs), so add support for it
in NetworkActivityTracker and use it in places where we were
previously reporting the status of canceled resources as "None".

  • NetworkProcess/NetworkActivityTracker.h:
  • NetworkProcess/NetworkConnectionToWebProcess.cpp:

(WebKit::NetworkConnectionToWebProcess::stopAllNetworkActivityTracking):
(WebKit::NetworkConnectionToWebProcess::stopAllNetworkActivityTrackingForPage):

  • NetworkProcess/NetworkResourceLoader.cpp:

(WebKit::NetworkResourceLoader::cleanup):

  • NetworkProcess/cocoa/NetworkActivityTrackerCocoa.mm:

(WebKit::NetworkActivityTracker::complete):

10:31 AM Changeset in webkit [250613] by youenn@apple.com
  • 2 edits in trunk/Tools

Add a test to check the case of launching two service worker processes shortly one after the other
https://bugs.webkit.org/show_bug.cgi?id=202450

Reviewed by Chris Dumez.

  • TestWebKitAPI/Tests/WebKitCocoa/ServiceWorkerBasic.mm:
10:23 AM Changeset in webkit [250612] by Alan Coon
  • 5 edits
    1 add in branches/safari-608-branch

Cherry-pick r249538. rdar://problem/55911485

LazyClassStructure::setConstructor should not store the constructor to the global object
https://bugs.webkit.org/show_bug.cgi?id=201484
<rdar://problem/50400451>

Reviewed by Yusuke Suzuki.

JSTests:

  • stress/web-assembly-constructors-should-not-override-global-object-property.js: Added.

Source/JavaScriptCore:

LazyClassStructure::setConstructor sets the constructor as a property of the global object.
This became a problem when it started being used for WebAssembly constructors, such as Module
and Instance, since they are properties of the WebAssembly object, not the global object. That
resulted in properties of the global object replaced whenever a lazy WebAssembly constructor
was first accessed. e.g.

globalThis.Module = x;
WebAssembly.Module;
globalThis.Module === WebAssembly.Module;

  • runtime/LazyClassStructure.cpp: (JSC::LazyClassStructure::Initializer::setConstructor):
  • runtime/LazyClassStructure.h:
  • runtime/Lookup.h: (JSC::reifyStaticProperty):

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

10:07 AM Changeset in webkit [250611] by Alan Coon
  • 7 edits in branches/safari-608-branch/Source

Versioning.

9:34 AM Changeset in webkit [250610] by Keith Rollin
  • 2 edits in trunk/Source/WebCore

Unreviewed build fix after r250595.

macCatalyst appears to have triggered the the problem where the build
can sometimes fail if the unified sources mechanism doesn't group
together the right set of files.

  • css/typedom/TypedOMCSSImageValue.h:
9:26 AM Changeset in webkit [250609] by aakash_jain@apple.com
  • 2 edits in trunk/Tools

[ews] Dedicate a bot for macOS-High-Sierra-Debug-Build-EWS queue
https://bugs.webkit.org/show_bug.cgi?id=202469

Reviewed by Jonathan Bedard.

  • BuildSlaveSupport/ews-build/config.json: Dedicate ews112 to macOS debug builder queue.
9:21 AM Changeset in webkit [250608] by Jonathan Bedard
  • 1 edit
    1 add in trunk/Tools

Python 3: Add test-webkitpy for Python 3
https://bugs.webkit.org/show_bug.cgi?id=201954

Reviewed by Aakash Jain.

  • Scripts/test-webkitpy-python3: Added.
8:58 AM Changeset in webkit [250607] by Truitt Savell
  • 17 edits in trunk

Unreviewed, rolling out r250603.

Caused testing to exit early with crashes on Mac

Reverted changeset:

"[Web Animations] Implement replaced animations"
https://bugs.webkit.org/show_bug.cgi?id=202190
https://trac.webkit.org/changeset/250603

8:51 AM Changeset in webkit [250606] by magomez@igalia.com
  • 1 edit
    433 adds in trunk/LayoutTests

[WPE] Unreviewed gardening: add new expectations after r250602
https://bugs.webkit.org/show_bug.cgi?id=202461

Unreviewed WPE gardening. Add missing results after r250276.

  • platform/wpe/imported/w3c/web-platform-tests/svg/: Added.
8:33 AM Changeset in webkit [250605] by commit-queue@webkit.org
  • 2 edits in trunk/LayoutTests

Web Inspector: Debugger: support emulateUserGesture parameter in Debugger.evaluateOnCallFrame
https://bugs.webkit.org/show_bug.cgi?id=200272
<rdar://problem/53797509>

Patch by Yury Semikhatsky <yurys@chromium.org> on 2019-10-02
Reviewed by Devin Rousso.

User interaction inspector tests were accidentally disabled on both WebKit1 and WebKit2.
Marking them as passing on WebKit2.

  • platform/wk2/TestExpectations:
6:51 AM Changeset in webkit [250604] by commit-queue@webkit.org
  • 2 edits in trunk/Source/JavaScriptCore

Gardening build fix: Hide store64/load64 functions from 32bit
https://bugs.webkit.org/show_bug.cgi?id=202453

Unreviewed.

Prior patch for bug 202250 breaks 32bit builds because functions
store64 and load64 do not exist. ifdef these functions away from 32bits since
they are not used in 32bit code path.

Patch by Paulo Matos <Paulo Matos> on 2019-10-02

  • jit/AssemblyHelpers.h:
4:47 AM Changeset in webkit [250603] by graouts@webkit.org
  • 17 edits in trunk

[Web Animations] Implement replaced animations
https://bugs.webkit.org/show_bug.cgi?id=202190
<rdar://55697719>

Reviewed by Dean Jackson.

LayoutTests/imported/w3c:

Mark WPT progressions.

  • web-platform-tests/web-animations/animation-model/keyframe-effects/effect-value-replaced-animations-expected.txt:
  • web-platform-tests/web-animations/interfaces/Animatable/getAnimations-expected.txt:
  • web-platform-tests/web-animations/interfaces/Animation/commitStyles-expected.txt:
  • web-platform-tests/web-animations/interfaces/Animation/persist-expected.txt:
  • web-platform-tests/web-animations/timing-model/timelines/update-and-send-events-replacement-expected.txt:

Source/WebCore:

Implementing section "5.5 Replacing Animations" (https://drafts.csswg.org/web-animations/#replacing-animations) of the Web Animations
specification which allows for Web Animations to be destroyed when they are superseded by another animation and the developer doesn't
explicitly opt into persisting them using the persist() method.

An animation is marked as replaceable (to sum up) when it's finished and another animation for the same property takes precedence.
As part of DocumentTimeline::internalUpdateAnimationsAndSendEvents(), we'll go through all replaceable animations, dispatch a "remove"
DOM event, and remove them from our list of animations.

We also make a couple of fixes in this patch that were uncovered while working on the WPT tests for replaced animations:

  • we would incorrectly parse single values for a property that allows lists (change in KeyframeEffect's processKeyframeLikeObject())
  • we didn't account for the position in the global animation list when sorted animations by composite order (AnimationTimeline::animationsForElement())

Finally, to get more readable results, we implement a stub of commitStyles(). Its full implementation is tracked by http://wkb.ug/202193.

  • animation/AnimationTimeline.cpp:

(WebCore::AnimationTimeline::animationTimingDidChange): Mark the position of the animation in the global animation list, to which it may only be added once.
(WebCore::AnimationTimeline::animationsForElement const): Account for the animation's position in the global animation when sorting.

  • animation/DeclarativeAnimation.cpp:

(WebCore::DeclarativeAnimation::bindingsReplaceState const): Flush pending styles when querying the ready state for a declarative animation.

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

(WebCore::DocumentTimeline::internalUpdateAnimationsAndSendEvents): Run the "remove replaced animations" procedure as the second step in the "update animations
and send events" procedure.
(WebCore::DocumentTimeline::animationCanBeRemoved): Determine whether a given animation may be removed based on its finished state, replace state and whether
it is fully superseded by another animation targeting the same property on the same target element.
(WebCore::DocumentTimeline::removeReplacedAnimations): Remove any removable animation and dispatch a "remove" DOM event for each removed animation.

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

(WebCore::processKeyframeLikeObject): Fix an issue found in a replaced animations WPT test that showed that we didn't record the value of an animation that allows lists.

  • animation/WebAnimation.cpp:

(WebCore::WebAnimation::isReplaceable const):
(WebCore::WebAnimation::persist): Mark the replace state as "persisted" and ensure the animation is set on the animation list for its target element in case it had already
been removed based on its persisted state.
(WebCore::WebAnimation::commitStyles): Stub for a new function.

  • animation/WebAnimation.h:

(WebCore::WebAnimation::replaceState const):
(WebCore::WebAnimation::setReplaceState):
(WebCore::WebAnimation::bindingsReplaceState const):
(WebCore::WebAnimation::globalPosition const):
(WebCore::WebAnimation::setGlobalPosition):

  • animation/WebAnimation.idl:
  • dom/EventNames.h: Add the new "remove" event so that the "onremove" DOM property is available on Animation objects.
4:26 AM Changeset in webkit [250602] by zandobersek@gmail.com
  • 2 edits in trunk/Source/WebKit

Unreviewed build fix for non-Mac ports after r250600.

  • UIProcess/WebProcessPool.cpp:

Make the CoreGraphicsSPI.h header include exclusive to the Mac port.

4:10 AM Changeset in webkit [250601] by zandobersek@gmail.com
  • 2 edits in trunk/Source/WebCore

Unreviewed build fix in Nicosia's ScrollingTreePositionedNode class.

  • page/scrolling/nicosia/ScrollingTreePositionedNode.cpp:

(WebCore::ScrollingTreePositionedNode::applyLayerPositions):
Fix the name of the variable included in the log call.

4:04 AM Changeset in webkit [250600] by graouts@webkit.org
  • 2 edits in trunk/Source/WebKit

Unreviewed build fix for macOS, broken by r250595.

  • UIProcess/WebProcessPool.cpp:
2:41 AM Changeset in webkit [250599] by youenn@apple.com
  • 21 edits
    1 copy in trunk/Source

Use strongly typed identifiers for webrtc sockets
https://bugs.webkit.org/show_bug.cgi?id=202400

Reviewed by Chris Dumez.

Source/WebCore:

No observable change of behavior.

  • Headers.cmake:
  • WebCore.xcodeproj/project.pbxproj:
  • platform/mediastream/libwebrtc/LibWebRTCSocketIdentifier.h: Copied from Source/WebKit/NetworkProcess/webrtc/NetworkRTCSocket.h.

Source/WebKit:

Refactoring to use LibWebRTCSocketIdentifier instead of uint64_t.

  • NetworkProcess/webrtc/LibWebRTCSocketClient.cpp:

(WebKit::LibWebRTCSocketClient::LibWebRTCSocketClient):

  • NetworkProcess/webrtc/LibWebRTCSocketClient.h:
  • NetworkProcess/webrtc/NetworkRTCProvider.cpp:

(WebKit::NetworkRTCProvider::createSocket):
(WebKit::NetworkRTCProvider::createUDPSocket):
(WebKit::NetworkRTCProvider::createServerTCPSocket):
(WebKit::NetworkRTCProvider::createClientTCPSocket):
(WebKit::NetworkRTCProvider::wrapNewTCPConnection):
(WebKit::NetworkRTCProvider::addSocket):
(WebKit::NetworkRTCProvider::takeSocket):
(WebKit::NetworkRTCProvider::newConnection):
(WebKit::NetworkRTCProvider::didReceiveNetworkRTCSocketMessage):
(WebKit::NetworkRTCProvider::closeListeningSockets):
(WebKit::NetworkRTCProvider::callSocket):

  • NetworkProcess/webrtc/NetworkRTCProvider.h:
  • NetworkProcess/webrtc/NetworkRTCProvider.messages.in:
  • NetworkProcess/webrtc/NetworkRTCSocket.cpp:

(WebKit::NetworkRTCSocket::NetworkRTCSocket):

  • NetworkProcess/webrtc/NetworkRTCSocket.h:
  • Scripts/webkit/messages.py:
  • WebProcess/Network/NetworkProcessConnection.cpp:

(WebKit::NetworkProcessConnection::didReceiveMessage):

  • WebProcess/Network/webrtc/LibWebRTCNetwork.h:

(WebKit::LibWebRTCNetwork::socket):

  • WebProcess/Network/webrtc/LibWebRTCSocket.cpp:

(WebKit::LibWebRTCSocket::LibWebRTCSocket):

  • WebProcess/Network/webrtc/LibWebRTCSocket.h:
  • WebProcess/Network/webrtc/LibWebRTCSocketFactory.cpp:

(WebKit::LibWebRTCSocketFactory::createServerTcpSocket):
(WebKit::LibWebRTCSocketFactory::createUdpSocket):
(WebKit::LibWebRTCSocketFactory::createClientTcpSocket):
(WebKit::LibWebRTCSocketFactory::createNewConnectionSocket):

  • WebProcess/Network/webrtc/LibWebRTCSocketFactory.h:

(WebKit::LibWebRTCSocketFactory::socket):
(WebKit::LibWebRTCSocketFactory::resolver):
(WebKit::LibWebRTCSocketFactory::takeResolver):
(WebKit::LibWebRTCSocketFactory::disableNonLocalhostConnections):

  • WebProcess/Network/webrtc/WebRTCSocket.cpp:

(WebKit::WebRTCSocket::signalOnNetworkThread):
(WebKit::WebRTCSocket::WebRTCSocket):
(WebKit::WebRTCSocket::signalSentPacket):
(WebKit::WebRTCSocket::signalConnect):
(WebKit::WebRTCSocket::signalClose):
(WebKit::WebRTCSocket::signalNewConnection):

  • WebProcess/Network/webrtc/WebRTCSocket.h:
  • WebProcess/Network/webrtc/WebRTCSocket.messages.in:
1:29 AM Changeset in webkit [250598] by Carlos Garcia Campos
  • 1 edit
    623 adds in trunk/LayoutTests

Unreviewed GTK gardening. Add missing results after r250276.

  • platform/gtk/imported/w3c/web-platform-tests/svg/: Added.
1:00 AM Changeset in webkit [250597] by Carlos Garcia Campos
  • 22 edits
    5 deletes in trunk

[GTK][WPE] Stop using legacy custom protocol implementation
https://bugs.webkit.org/show_bug.cgi?id=202407

Reviewed by Žan Doberšek.

.:

Make LEGACY_CUSTOM_PROTOCOL_MANAGER disabled by default.

  • Source/cmake/OptionsFTW.cmake:
  • Source/cmake/OptionsPlayStation.cmake:
  • Source/cmake/OptionsWin.cmake:
  • Source/cmake/WebKitFeatures.cmake:

Source/WebCore:

Remove the code to setup custom protocols in soup session.

  • platform/network/soup/SoupNetworkSession.cpp:

(WebCore::SoupNetworkSession::SoupNetworkSession):

  • platform/network/soup/SoupNetworkSession.h:

Source/WebKit:

Use the new approach, which is simpler and doesn't require to go to the network process to load custom
protocols.

  • NetworkProcess/CustomProtocols/soup/LegacyCustomProtocolManagerSoup.cpp: Removed.
  • NetworkProcess/NetworkProcess.cpp:

(WebKit::m_messagePortChannelRegistry):

  • NetworkProcess/soup/WebKitSoupRequestInputStream.cpp: Removed.
  • NetworkProcess/soup/WebKitSoupRequestInputStream.h: Removed.
  • PlatformGTK.cmake:
  • PlatformWPE.cmake:
  • SourcesGTK.txt:
  • SourcesWPE.txt:
  • UIProcess/API/glib/WebKitCustomProtocolManagerClient.cpp: Removed.
  • UIProcess/API/glib/WebKitCustomProtocolManagerClient.h: Removed.
  • UIProcess/API/glib/WebKitURISchemeRequest.cpp:

(webkitURISchemeRequestCreate):
(webkit_uri_scheme_request_get_scheme):
(webkit_uri_scheme_request_get_uri):
(webkit_uri_scheme_request_get_path):
(webkit_uri_scheme_request_get_web_view):
(webkitURISchemeRequestReadCallback):
(webkit_uri_scheme_request_finish_error):

  • UIProcess/API/glib/WebKitURISchemeRequestPrivate.h:
  • UIProcess/API/glib/WebKitWebContext.cpp:

(webkitWebContextConstructed):
(webkitWebContextDispose):
(webkit_web_context_register_uri_scheme):
(webkitWebContextCreatePageForWebView):

  • UIProcess/API/glib/WebKitWebContextPrivate.h:
  • UIProcess/WebURLSchemeTask.h:

(WebKit::WebURLSchemeTask::request const):

  • UIProcess/soup/WebProcessPoolSoup.cpp:

Tools:

Remove the tests to check failure after committed, because it's not possible to test it with current code.

  • TestWebKitAPI/Tests/WebKitGLib/TestWebKitWebContext.cpp:

(testWebContextURIScheme):

12:45 AM Changeset in webkit [250596] by zandobersek@gmail.com
  • 11 edits in trunk

[Nicosia] Enable async scrolling at build-time for Nicosia-using ports
https://bugs.webkit.org/show_bug.cgi?id=202397

Reviewed by Carlos Garcia Campos.

.:

Enable ASYNC_SCROLLING code for ports leveraging the Nicosia layering
system. This still has to be runtime-enabled in the DrawingArea
implementation.

  • Source/cmake/OptionsGTK.cmake:
  • Source/cmake/OptionsPlayStation.cmake:
  • Source/cmake/OptionsWPE.cmake:

Source/WebCore:

  • PlatformPlayStation.cmake: Add missing build targets.
  • SourcesGTK.txt: Ditto.

Source/WebKit:

  • Shared/WebEvent.h:

Enable WebWheelEvent phasing for WPE, as required by the
ASYNC_SCROLLING code.

Source/WTF:

  • wtf/Platform.h:

Flip ENABLE_KINETIC_SCROLLING to 1 also for PlayStation and WPE ports
when ASYNC_SCROLLING is enabled.

Oct 1, 2019:

11:58 PM BuildingCairoOnWindows edited by Fujii Hironori
(diff)
11:39 PM Changeset in webkit [250595] by timothy_horton@apple.com
  • 19 edits in trunk/Source

Clean up some includes to make the build a bit faster
https://bugs.webkit.org/show_bug.cgi?id=202444

Reviewed by Geoff Garen.

No new tests, just reorganizing.

Apply some profile-guided optimizations to our headers.

  • bindings/js/CallTracerTypes.h:
  • css/typedom/TypedOMCSSImageValue.h:
  • html/canvas/WebGLObject.h:
  • html/canvas/WebGLVertexArrayObjectBase.h:
  • inspector/InspectorInstrumentation.cpp:

(WebCore::InspectorInstrumentation::instrumentingAgentsForWebGPUDevice):
(WebCore::InspectorInstrumentation::instrumentingAgentsForWorkerGlobalScope):
(WebCore::InspectorInstrumentation::instrumentingAgentsForPage):
(WebCore::InspectorInstrumentation::instrumentingAgentsForContext):

  • inspector/InspectorInstrumentation.h:

(WebCore::InspectorInstrumentation::didCreateWebGPUDevice):
(WebCore::InspectorInstrumentation::willDestroyWebGPUDevice):
(WebCore::InspectorInstrumentation::didCreateWebGPUPipeline):

  • platform/graphics/BitmapImage.cpp:
  • platform/graphics/Font.h:
  • platform/graphics/cg/GraphicsContextCG.cpp:

(WebCore::getUserToBaseCTM):

  • platform/graphics/cg/GraphicsContextCG.h:

(WebCore::getUserToBaseCTM): Deleted.

  • platform/graphics/cg/ImageBufferCG.cpp:
  • platform/graphics/cocoa/IOSurface.h:
  • platform/graphics/mac/PDFDocumentImageMac.mm:

InspectorInstrumentation.h is one of the most expensive headers in the entire project.
While not included in many places (70), it is fairly straightforward to reduce
its per-inclusion cost by rougly 80%.

  • UIProcess/API/Cocoa/_WKThumbnailView.mm:
  • WebView/WebFrame.mm:
  • WebView/WebView.mm:
8:48 PM Changeset in webkit [250594] by ysuzuki@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Unreviewed, fix incorrect assertion
https://bugs.webkit.org/show_bug.cgi?id=202391

  • runtime/JSLock.cpp:

(JSC::JSLock::DropAllLocks::~DropAllLocks):

8:45 PM Changeset in webkit [250593] by commit-queue@webkit.org
  • 5 edits in trunk

[win-ews] No such file or directory: u'/cygdrive/C/cygwin/home/buildbot/WebKit/WebKitBuild/Release/bin32/layout-test-results/pywebsocket.ws.log-out.txt'
https://bugs.webkit.org/show_bug.cgi?id=188640

Patch by Alexey Shvayka <Alexey Shvayka> on 2019-10-01
Reviewed by Alex Christensen.

Tools:

  1. Properly shutdown WebSocket server so that port 8880 is released.
  2. Prevent failure of WebSocket tests when launched in freshly cloned repository.
  • Scripts/new-run-webkit-websocketserver:

(main): Tweak import and use class constants of PyWebSocket directly.

  • Scripts/webkitpy/layout_tests/servers/websocket_server.py:

(PyWebSocket._prepare_config): Create test output directory if it doesn't exist.

LayoutTests:

WebSocket server is now fixed, tests should pass.

Reverted changeset:

"Unreviewed test gardening"
https://bugs.webkit.org/show_bug.cgi?id=188640
https://trac.webkit.org/changeset/234933

8:40 PM Changeset in webkit [250592] by Fujii Hironori
  • 4 edits in trunk/Source/ThirdParty/ANGLE

[WinCairo][Clang][ANGLE] global_state.cpp(39,1): error: static_assert failed due to requirement 'std::is_trivially_constructible<std::atomic<std::mutex *>>::value' "global mutex is not trivially constructible"
https://bugs.webkit.org/show_bug.cgi?id=201751

Reviewed by Alex Christensen.

Clang-cl couldn't compile the latest ANGLE with MS STL owing to a
static_assert failure.

Fix it by cherri-picking the upstream fix.
<https://chromium.googlesource.com/angle/angle/+/755417dd79071d6149c81418e1404b0c61d19672>

  • AUTHORS:
  • src/common/angleutils.h:
  • src/libGLESv2/global_state.cpp:
8:12 PM Changeset in webkit [250591] by achristensen@apple.com
  • 14 edits in trunk

Progress towards a functioning CMake build on Mac
https://bugs.webkit.org/show_bug.cgi?id=202443

Rubber-stamped by Tim Horton.

Source/WebCore:

  • testing/Internals.mm:

Source/WebCore/PAL:

  • pal/PlatformMac.cmake:

Source/WebKit:

  • CMakeLists.txt:
  • PlatformMac.cmake:

Tools:

  • DumpRenderTree/PlatformMac.cmake:
  • MiniBrowser/mac/CMakeLists.txt:
  • TestRunnerShared/cocoa/ClassMethodSwizzler.mm:
  • TestWebKitAPI/CMakeLists.txt:
  • TestWebKitAPI/PlatformMac.cmake:
  • WebKitTestRunner/PlatformMac.cmake:
7:28 PM BuildingCairoOnWindows edited by Fujii Hironori
(diff)
6:50 PM Changeset in webkit [250590] by Jonathan Bedard
  • 2 edits in trunk/Source/WTF

WebKitTestRunner: Many tests timeout on macOS Catalina
https://bugs.webkit.org/show_bug.cgi?id=201616
<rdar://problem/55200897>

Reviewed by Alexey Proskuryakov.

  • wtf/Platform.h: USE_SOURCE_APPLICATION_AUDIT_DATA should only be enabled on

builds which allow restricted entitlements.

6:18 PM Changeset in webkit [250589] by wilander@apple.com
  • 16 edits
    2 copies
    1 move
    3 adds in trunk

Storage Access API: document.hasStorageAccess() should return true when the cookie policy allows access
https://bugs.webkit.org/show_bug.cgi?id=202435
<rdar://problem/55718526>

Reviewed by Brent Fulgham.

Source/WebCore:

WebKit's Storage Access API implementation has so far only looked at whether ITP is
blocking cookie access or not. However, the default cookie policy is still in
effect underneath ITP. document.hasStorageAccess() should return true if the
third-party:
a) is not classified by ITP, and
b) has cookies which implies it can use cookies as third-party according to the
default cookie policy.

Tests: http/tests/storageAccess/has-storage-access-false-by-default-ephemeral.html

http/tests/storageAccess/has-storage-access-true-if-third-party-has-cookies-ephemeral.html
http/tests/storageAccess/has-storage-access-true-if-third-party-has-cookies.html

  • platform/network/NetworkStorageSession.h:
  • platform/network/cocoa/NetworkStorageSessionCocoa.mm:

(WebCore::NetworkStorageSession::hasCookies const):

  • platform/network/curl/NetworkStorageSessionCurl.cpp:

(WebCore::NetworkStorageSession::hasCookies const):

Not yet implemented. Always says false.

  • platform/network/soup/NetworkStorageSessionSoup.cpp:

(WebCore::NetworkStorageSession::hasCookies const):

Not yet implemented. Always says false.

Source/WebKit:

WebKit's Storage Access API implementation has so far only looked at whether ITP is
blocking cookie access or not. However, the default cookie policy is still in
effect underneath ITP. document.hasStorageAccess() should return true if the
third-party:
a) is not classified by ITP, and
b) has cookies which implies it can use cookies as third-party according to the
default cookie policy.

  • NetworkProcess/Classifier/ResourceLoadStatisticsMemoryStore.cpp:

(WebKit::ResourceLoadStatisticsMemoryStore::hasStorageAccess):

  • NetworkProcess/Classifier/WebResourceLoadStatisticsStore.cpp:

(WebKit::WebResourceLoadStatisticsStore::hasCookies):

  • NetworkProcess/Classifier/WebResourceLoadStatisticsStore.h:
  • NetworkProcess/NetworkConnectionToWebProcess.cpp:

(WebKit::NetworkConnectionToWebProcess::hasStorageAccess):

  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::registrableDomainsWithWebsiteData):

Tools:

This change makes sure topPrivatelyControlledDomain() correctly handles domains
with leading dots, as often used in cookie domains.

  • TestWebKitAPI/Tests/WebCore/PublicSuffix.cpp:

(TestWebKitAPI::TEST_F):

LayoutTests:

WebKit's Storage Access API implementation has so far only looked at whether ITP is
blocking cookie access or not. However, the default cookie policy is still in
effect underneath ITP. document.hasStorageAccess() should return true if the
third-party:
a) is not classified by ITP, and
b) has cookies which implies it can use cookies as third-party according to the
default cookie policy.

  • http/tests/storageAccess/has-storage-access-false-by-default-ephemeral-expected.txt: Added.
  • http/tests/storageAccess/has-storage-access-false-by-default-ephemeral.html: Copied from LayoutTests/http/tests/storageAccess/has-storage-access-true-if-feature-off.html.
  • http/tests/storageAccess/has-storage-access-true-if-third-party-has-cookies-ephemeral-expected.txt: Added.
  • http/tests/storageAccess/has-storage-access-true-if-third-party-has-cookies-ephemeral.html: Copied from LayoutTests/http/tests/storageAccess/has-storage-access-true-if-feature-off.html.
  • http/tests/storageAccess/has-storage-access-true-if-third-party-has-cookies-expected.txt: Added.
  • http/tests/storageAccess/has-storage-access-true-if-third-party-has-cookies.html: Renamed from LayoutTests/http/tests/storageAccess/has-storage-access-true-if-feature-off.html.
  • platform/ios/TestExpectations:
  • platform/mac-wk2/TestExpectations:
5:06 PM Changeset in webkit [250588] by timothy_horton@apple.com
  • 6 edits in trunk/Source/WebCore

Clean up some includes to make the build a bit faster
https://bugs.webkit.org/show_bug.cgi?id=202437

Reviewed by Jer Noble.

  • Modules/webaudio/PannerNode.h:
  • Modules/webaudio/RealtimeAnalyser.h:
  • platform/audio/HRTFPanner.h:

FFTFrame includes Accelerate.h, which is quite expensive.

4:46 PM Changeset in webkit [250587] by Jonathan Bedard
  • 7 edits in trunk/Tools

results.webkit.org: Standardize styles in the drawer
https://bugs.webkit.org/show_bug.cgi?id=202428

Rubber-stamped by Aakash Jain.

  • resultsdbpy/resultsdbpy/view/static/css/search.css: Rename boldInverseColor.
  • resultsdbpy/resultsdbpy/view/static/css/tooltip.css: Ditto.
  • resultsdbpy/resultsdbpy/view/static/js/drawer.js: Move style specifications into webkit.css.
  • resultsdbpy/resultsdbpy/view/static/js/timeline.js: Ditto.
  • resultsdbpy/resultsdbpy/view/static/library/css/webkit.css:

(.input>label): Use the boldInverseColor instead of grey.
(.input>input[type="text"][required], .input>input[type="number"][required],): Darken the border,
decrease the font weight.
(.input>input[type="text"][required]~label, .input>input[type="number"][required]~label,): Use the inverseColor instead of grey.

3:55 PM Changeset in webkit [250586] by Alan Coon
  • 1 copy in tags/Safari-608.3.7

Tag Safari-608.3.7.

3:55 PM Changeset in webkit [250585] by sbarati@apple.com
  • 4 edits
    2 adds in trunk

ObjectAllocationSinkingPhase shouldn't insert hints for allocations which are no longer valid
https://bugs.webkit.org/show_bug.cgi?id=199361
<rdar://problem/52454940>

Reviewed by Yusuke Suzuki.

JSTests:

  • stress/allocation-sinking-hints-are-valid-ssa-2.js: Added.

(main.fn):
(main.executor):
(main):

  • stress/allocation-sinking-hints-are-valid-ssa.js: Added.

(main.fn):
(main.executor):
(main):

Source/JavaScriptCore:

In a prior fix to the object allocation sinking phase, I added code where we
made sure to insert PutHints over Phis for fields of an object at control flow
merge points. However, that code didn't consider that the base of the PutHint
may no longer be a valid heap location. This could cause us to emit invalid
SSA code by referring to a node which does not dominate the PutHint location.
This patch fixes the bug to only emit the PutHints when valid.

This patch also makes it so that DFGValidate actually validates that the graph
is in valid SSA form. E.g, any use of a node N must be dominated by N.

  • dfg/DFGObjectAllocationSinkingPhase.cpp:
  • dfg/DFGValidate.cpp:
3:47 PM Changeset in webkit [250584] by Antti Koivisto
  • 22 edits in trunk

[CSS Shadow Parts] Parse 'part' attribute
https://bugs.webkit.org/show_bug.cgi?id=202409

Reviewed by Ryosuke Niwa.

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-shadow-parts/invalidation-change-part-name-idl-domtokenlist-expected.txt:
  • web-platform-tests/css/css-shadow-parts/part-name-idl-expected.txt:

Source/WebCore:

Add parsing for Element 'part' attribute and the IDL interface.
Also add a feature flag for CSS Shadow Parts.

  • dom/Element.cpp:

(WebCore::Element::attributeChanged):
(WebCore::isNonEmptyTokenList):
(WebCore::Element::classAttributeChanged):
(WebCore::Element::partAttributeChanged):
(WebCore::Element::partNames const):
(WebCore::Element::part):
(WebCore::classStringHasClassName): Deleted.

  • dom/Element.h:
  • dom/Element.idl:
  • dom/ElementRareData.cpp:
  • dom/ElementRareData.h:

(WebCore::ElementRareData::partList const):
(WebCore::ElementRareData::setPartList):
(WebCore::ElementRareData::partNames const):
(WebCore::ElementRareData::setPartNames):

  • html/HTMLAttributeNames.in:
  • page/RuntimeEnabledFeatures.h:

(WebCore::RuntimeEnabledFeatures::setCSSShadowPartsEnabled):
(WebCore::RuntimeEnabledFeatures::cssShadowPartsEnabled const):

Source/WebKit:

  • Shared/WebPreferences.yaml:

Add experimental feature, default to disabled for now.

Source/WebKitLegacy/mac:

  • WebView/WebPreferenceKeysPrivate.h:
  • WebView/WebPreferences.mm:

(+[WebPreferences initialize]):
(-[WebPreferences cssShadowPartsEnabled]):
(-[WebPreferences setCSSShadowPartsEnabled:]):

  • WebView/WebPreferencesPrivate.h:
  • WebView/WebView.mm:

(-[WebView _preferencesChanged:]):

Tools:

  • DumpRenderTree/mac/DumpRenderTree.mm:

(enableExperimentalFeatures):

3:21 PM Changeset in webkit [250583] by ysuzuki@apple.com
  • 13 edits in trunk/Source

[JSC] Place VM* in TLS
https://bugs.webkit.org/show_bug.cgi?id=202391

Reviewed by Mark Lam.

Source/JavaScriptCore:

This patch puts VM* in TLS mainly for debugging purpose. In JSLockHolder, we put VM* and save the old VM* in TLS.
And JSLockHolder's destructor restores it. It is possible that we have two VMs A and B. After locking A, we enter

  1. In this case, when B's lock is released, we should restore TLS to A. We put the old VM* in JSLockHolder::m_previousVMInTLS

so that we can restore it in JSLockHolder's destructor.

This patch also cleans up Lock<JSLock> / std::lock_guard<JSLock> usage in JSRunLoopTimer and JSManagedValue by introducing
JSLockHolder with LockIfVMIsLive tag. Previously, we are intentionally use std::lock_guard<JSLock> since VM* can be dead
at these places. JSLockHolder with LockIfVMIsLive handles this case carefully: it locks JSLock when VM* is live.

  • API/JSManagedValue.mm:

(-[JSManagedValue value]):

  • API/glib/JSCWeakValue.cpp:

(jsc_weak_value_get_value):

  • runtime/InitializeThreading.cpp:

(JSC::initializeThreading):

  • runtime/JSLock.cpp:

(JSC::JSLockHolder::JSLockHolder):
(JSC::JSLockHolder::~JSLockHolder):
(JSC::JSLock::DropAllLocks::DropAllLocks):
(JSC::JSLock::DropAllLocks::~DropAllLocks):

  • runtime/JSLock.h:

(JSC::JSLockHolder::vm):

  • runtime/JSRunLoopTimer.cpp:

(JSC::JSRunLoopTimer::timerDidFire):

  • runtime/VM.cpp:

(JSC::VM::initializeTLS):

  • runtime/VM.h:

(JSC::VM::exchange):
(JSC::VM::current):

Source/WebCore:

Use JSLockHolder instead. It automatically puts VM* in TLS.

  • bindings/js/IDBBindingUtilities.cpp:

(WebCore::toJS):
(WebCore::deserializeIDBValueToJSValue):

Source/WTF:

Changed FastTLS's key name from WTF_GC_TLC_KEY to WTF_VM_KEY.

  • wtf/FastTLS.h:
2:35 PM Changeset in webkit [250582] by youenn@apple.com
  • 5 edits in trunk/Source/WebCore

Queue events and promise resolution in RTCPeerConnection when suspended for page cache
https://bugs.webkit.org/show_bug.cgi?id=202396

Reviewed by Chris Dumez.

This patch prepares RTCPeerConnection to be suspendable to enter page cache.
For that purpose, we queue events and promise resolution/rejection tasks if the RTCPeerConnection m_shouldDelayTasks is set to true.
This queueing is enabled when RTCPeerConnection is asked to suspend itself.
The queued tasks are then executed at resume time.
Renamed fireEvent to dispatchEventWhenFeasible.
No change of behavior for now.

  • Modules/mediastream/PeerConnectionBackend.cpp:

(WebCore::PeerConnectionBackend::createOfferSucceeded):
(WebCore::PeerConnectionBackend::createOfferFailed):
(WebCore::PeerConnectionBackend::createAnswerSucceeded):
(WebCore::PeerConnectionBackend::createAnswerFailed):
(WebCore::PeerConnectionBackend::setLocalDescriptionSucceeded):
(WebCore::PeerConnectionBackend::setLocalDescriptionFailed):
(WebCore::PeerConnectionBackend::setRemoteDescriptionSucceeded):
(WebCore::PeerConnectionBackend::setRemoteDescriptionFailed):
(WebCore::PeerConnectionBackend::addIceCandidateSucceeded):
(WebCore::PeerConnectionBackend::addIceCandidateFailed):

  • Modules/mediastream/RTCPeerConnection.cpp:

(WebCore::RTCPeerConnection::doClose):
(WebCore::RTCPeerConnection::suspend):
(WebCore::RTCPeerConnection::resume):
(WebCore::RTCPeerConnection::updateIceGatheringState):
(WebCore::RTCPeerConnection::updateIceConnectionState):
(WebCore::RTCPeerConnection::updateConnectionState):
(WebCore::RTCPeerConnection::scheduleNegotiationNeededEvent):
(WebCore::RTCPeerConnection::doTask):
(WebCore::RTCPeerConnection::fireEvent):

  • Modules/mediastream/RTCPeerConnection.h:
2:26 PM Changeset in webkit [250581] by Brent Fulgham
  • 4 edits in trunk/Source/WebCore

[FTW] Correct additional canvas test failures
https://bugs.webkit.org/show_bug.cgi?id=202388

Reviewed by Fujii Hironori.

This patch corrects a handful of errors in Direct2D's drawing code.

  • platform/graphics/win/Direct2DOperations.cpp:

(WebCore::Direct2D::clearRect): Use the transformed dimensions of
rects to determine whether they intersect with the render target.

  • platform/graphics/win/ImageBufferDataDirect2D.cpp:

(WebCore::ImageBufferData::copyRectFromData const):
(WebCore::ImageBufferData::loadDataToBitmapIfNeeded): It is not
necessary (or correct) to 'endDraw' when loading image data to the
Bitmap target.

  • platform/graphics/win/PathDirect2D.cpp:

(WebCore::Path::strokeBoundingRect const): Provide an implementation.

1:41 PM Changeset in webkit [250580] by Devin Rousso
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Sources: clicking on a breakpoint changes the path components to not match the script's path
https://bugs.webkit.org/show_bug.cgi?id=196450
<rdar://problem/49488100>

Reviewed by Matt Baker.

When selecting any tree element that isn't in the resources tree outline, attempt to find
the corresponding tree element in the resources tree outline and silently select that as
well so that the hierarchical path component shows the right breadcrumb trail.

If the tree element is for a WI.Script which has a corresponding WI.Resource, use the
WI.Resource instead.

  • UserInterface/Views/SourcesNavigationSidebarPanel.js:

(WI.SourcesNavigationSidebarPanel.prototype._handleTreeSelectionDidChange):

1:35 PM Changeset in webkit [250579] by achristensen@apple.com
  • 30 edits in trunk/Source

Progress towards successful CMake build on Mac
https://bugs.webkit.org/show_bug.cgi?id=202426

Rubber-stamped by Tim Horton.

Source/WebCore:

  • PlatformMac.cmake:

Source/WebCore/PAL:

  • pal/PlatformMac.cmake:

Source/WebKit:

  • Platform/cocoa/PaymentAuthorizationPresenter.h:
  • Platform/cocoa/PaymentAuthorizationPresenter.mm:
  • Platform/cocoa/PaymentAuthorizationViewController.h:
  • Platform/cocoa/PaymentAuthorizationViewController.mm:
  • Platform/cocoa/WKPaymentAuthorizationDelegate.mm:
  • PlatformMac.cmake:
  • Shared/SandboxExtension.h:

(WebKit::SandboxExtension::createHandleForReadByPid):

  • SourcesCocoa.txt:
  • UIProcess/API/Cocoa/WKWebView.mm:
  • UIProcess/API/Cocoa/WKWebsiteDataStore.mm:

(-[WKWebsiteDataStore _hasRegisteredServiceWorker]):

  • UIProcess/API/mac/WKView.mm:
  • UIProcess/Cocoa/SOAuthorization/PopUpSOAuthorizationSession.mm:
  • UIProcess/Cocoa/SOAuthorization/SOAuthorizationSession.mm:
  • UIProcess/Cocoa/WKFullKeyboardAccessWatcher.mm:
  • UIProcess/Cocoa/WKShareSheet.mm:

(-[WKShareSheet delegate]):
(-[WKShareSheet setDelegate:]):

  • UIProcess/Cocoa/WebProcessPoolCocoa.mm:
  • UIProcess/Cocoa/WebViewImpl.h:
  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/WebCoreSupport/WebResourceLoadObserver.cpp:
  • WebProcess/WebCoreSupport/ios/WebPreviewLoaderClient.h:
  • WebProcess/WebPage/Cocoa/WebRemoteObjectRegistry.cpp:

Source/WebKitLegacy:

  • PlatformMac.cmake:

Source/WebKitLegacy/mac:

  • WebView/WebDataSource.mm:
1:22 PM Changeset in webkit [250578] by Alan Coon
  • 1 edit in branches/safari-608-branch/Source/WebCore/loader/cache/CachedResourceLoader.cpp

Unreviewed build fix. rdar://problem/55876838

1:21 PM Changeset in webkit [250577] by keith_miller@apple.com
  • 2 edits in trunk/JSTests

skip test until we figure out why it's timing out
https://bugs.webkit.org/show_bug.cgi?id=202423

Reviewed by Mark Lam.

new_array_with_spread-should-cap-array-size-to-MIN_ARRAY_STORAGE_CONSTRUCTION_LENGTH.js consistently times out on the bots.
Let's skip it until we figure out what's going on.

  • stress/new_array_with_spread-should-cap-array-size-to-MIN_ARRAY_STORAGE_CONSTRUCTION_LENGTH.js:
1:15 PM Changeset in webkit [250576] by timothy_horton@apple.com
  • 13 edits in trunk/Source

Clean up some includes to make the build a bit faster
https://bugs.webkit.org/show_bug.cgi?id=202417

Reviewed by Jer Noble.

Source/WebCore:

No new tests, just reorganizing.

Apply some profile-guided optimizations to our headers.

  • Modules/mediasource/SourceBuffer.cpp:
  • WebCorePrefix.h:

Add HashMap, which ends up included in all source files.

  • html/HTMLImageElement.cpp:

(WebCore::HTMLImageElement::HTMLImageElement):
(WebCore::HTMLImageElement::selectImageSource):
(WebCore::HTMLImageElement::didAttachRenderers):
(WebCore::HTMLImageElement::insertedIntoAncestor):
(WebCore::HTMLImageElement::width):
(WebCore::HTMLImageElement::height):
(WebCore::HTMLImageElement::naturalWidth const):
(WebCore::HTMLImageElement::naturalHeight const):
(WebCore::HTMLImageElement::complete const):
(WebCore::HTMLImageElement::decode):
(WebCore::HTMLImageElement::didMoveToNewDocument):
(WebCore::HTMLImageElement::cachedImage const):
(WebCore::HTMLImageElement::setLoadManually):
(WebCore::HTMLImageElement::hasPendingActivity const):
(WebCore::HTMLImageElement::pendingDecodePromisesCountForTesting const):

  • html/HTMLImageElement.h:

(WebCore::HTMLImageElement::cachedImage const): Deleted.
(WebCore::HTMLImageElement::setLoadManually): Deleted.
(WebCore::HTMLImageElement::hasPendingActivity const): Deleted.
(WebCore::HTMLImageElement::pendingDecodePromisesCountForTesting const): Deleted.
HTMLImageLoader brings in JSDOMPromiseDeferred, which is known to be horribly expensive.
Out-of-line m_imageLoader.

  • platform/graphics/GraphicsLayer.h:

Swap Animation for TimingFunction, which is much smaller.

  • platform/graphics/MediaPlayer.h:

InbandTextTrackPrivate brings in SerializedPlatformRepresentation.h,
which is very expensive. MediaPlayer.h is included in many places.
Break the link.

  • platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.h:

Source/WebKit:

  • WebProcess/Plugins/Netscape/NetscapePlugin.h:
  • WebProcess/Plugins/Plugin.h:

Fix the build.

12:44 PM Changeset in webkit [250575] by keith_miller@apple.com
  • 2 edits in trunk/JSTests

Mark toctou test as skipped on debug builds
https://bugs.webkit.org/show_bug.cgi?id=202420

Reviewed by Saam Barati.

Keeps timing out... Let's just skip it.

  • stress/toctou-having-a-bad-time-new-array.js:
12:23 PM Changeset in webkit [250574] by aakash_jain@apple.com
  • 2 edits in trunk/Tools

Follow-up fix to r250572 to fix a typo.
[ews] Add method to retry a build using Buildbot API
https://bugs.webkit.org/show_bug.cgi?id=202408

Unreviewed follow-up fix.

  • BuildSlaveSupport/ews-app/ews/common/buildbot.py:
12:21 PM Changeset in webkit [250573] by youenn@apple.com
  • 3 edits in trunk/Source/WebCore

RTCDataChannel should not prevent entering page cache except if in open state
https://bugs.webkit.org/show_bug.cgi?id=202395

Reviewed by Chris Dumez.

Only prevent entering page cache in open state.
Enqueue message through the document event queue to handle suspension properly.

We cannot yet write page cache tests as a data channel requires a peer connection which
currently forbids entering page cache.

  • Modules/mediastream/RTCDataChannel.cpp:

(WebCore::RTCDataChannel::RTCDataChannel):
(WebCore::RTCDataChannel::didReceiveStringData):
(WebCore::RTCDataChannel::didReceiveRawData):
(WebCore::RTCDataChannel::didDetectError):
(WebCore::RTCDataChannel::bufferedAmountIsDecreasing):
(WebCore::RTCDataChannel::scheduleDispatchEvent):
(WebCore::RTCDataChannel::scheduledEventTimerFired): Deleted.

  • Modules/mediastream/RTCDataChannel.h:
12:06 PM Changeset in webkit [250572] by aakash_jain@apple.com
  • 2 edits in trunk/Tools

[ews] Add method to retry a build using Buildbot API
https://bugs.webkit.org/show_bug.cgi?id=202408

Reviewed by Jonathan Bedard.

  • BuildSlaveSupport/ews-app/ews/common/buildbot.py:

(Buildbot.retry_build): Method to retry given build using Buildbot API.

12:01 PM Changeset in webkit [250571] by keith_miller@apple.com
  • 9652 edits
    1065 adds in trunk/JSTests

2019-10-01 Keith Miller <keith_miller@apple.com>

Test262 update

Rubber-stamped by Michael Saboff.

Note, this was too big to effectivetly put on bugzilla as it's a 10MB patch...

  • test262/*:
11:51 AM Changeset in webkit [250570] by commit-queue@webkit.org
  • 8 edits
    4 deletes in trunk

[Mac] Layout Test imported/w3c/web-platform-tests/fetch/api/redirect/redirect-location.any.html fails
https://bugs.webkit.org/show_bug.cgi?id=202350

Patch by Rob Buis <rbuis@igalia.com> on 2019-10-01
Reviewed by Alex Christensen.

LayoutTests/imported/w3c:

Update improved test results.

  • web-platform-tests/fetch/api/redirect/redirect-empty-location.any-expected.txt:
  • web-platform-tests/fetch/api/redirect/redirect-empty-location.any.worker-expected.txt:
  • web-platform-tests/fetch/api/redirect/redirect-location-expected.txt: Removed.
  • web-platform-tests/fetch/api/redirect/redirect-location.any-expected.txt:
  • web-platform-tests/fetch/api/redirect/redirect-location.any.worker-expected.txt:

Source/WebCore:

In some cases didReceiveResponse will deliver redirects (normally willSendRequestInternal will be used for redirects).
When this is done in manual redirect mode make sure the response type is opaque redirect.

Test: imported/w3c/web-platform-tests/fetch/api/redirect/redirect-location.any.html

  • loader/SubresourceLoader.cpp:

(WebCore::SubresourceLoader::didReceiveResponse):

LayoutTests:

Remove expectation for non-existing tests.

  • platform/gtk/imported/w3c/web-platform-tests/fetch/api/redirect/redirect-location-expected.txt: Removed.
  • platform/gtk/imported/w3c/web-platform-tests/fetch/api/redirect/redirect-location-worker-expected.txt: Removed.
  • platform/wpe/imported/w3c/web-platform-tests/fetch/api/redirect/redirect-location-worker-expected.txt: Removed.
11:24 AM Changeset in webkit [250569] by Alan Coon
  • 3 edits in branches/safari-608-branch/Source/WebCore

Cherry-pick r250528. rdar://problem/55876838

Refine restrictions for X-Temp-Tablet HTTP header experiment
https://bugs.webkit.org/show_bug.cgi?id=202367
<rdar://problem/55849139>

Reviewed by Geoffrey Garen.

Refine restrictions for X-Temp-Tablet HTTP header experiment:

  1. Only send the header if the embedding application is MobileSafari.
  2. Only send the header if the first party is google.com
  3. Only send the header if the current date is before 2/1/2020
  4. Send the header even if using an ephemeral session
  • loader/cache/CachedResourceLoader.cpp: (WebCore::isXTempTabletHeaderExperimentOver): (WebCore::CachedResourceLoader::CachedResourceLoader): (WebCore::isGoogleSearch): (WebCore::CachedResourceLoader::shouldSendXTempTabletHeader const): (WebCore::CachedResourceLoader::requestResource):
  • loader/cache/CachedResourceLoader.h:

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

11:23 AM Changeset in webkit [250568] by msaboff@apple.com
  • 4 edits in trunk

[YARR] Properly handle surrogates when matching back references
https://bugs.webkit.org/show_bug.cgi?id=202041

Patch by Michael Saboff <msaboff@apple.com> and Paulo Matos <Paulo Matos> on 2019-10-01
Reviewed by Keith Miller.

JSTests:

Unchanged from the workin progress patch posted by Paulo Matos <Paulo Matos>.

Updated test.

  • stress/regexp-unicode-surrogate-pair-increment-should-involve-length-check.js:

(testRegExpNotMatch):

Source/JavaScriptCore:

This patch is based on a work in progress patch by Paulo Matos <Paulo Matos>.

When handling back references in Unicode patterns, we can't match un-decoded surrogate characters,
instead we need to read and process surrogate pairs. Changed matchBackreference() to do this,
including properly incrementing the back reference pattern and search indexes.

In support of this change, on X86_64 we needed to free up r10 to be used exclusively for
"patternIndex". It was also used as a temp in tryReadUnicodeCharImpl(). Made a new named
temp register, called unicodeTemp, to take the place of regT2(r10) in tryReadUnicodeCharImpl.
This new temp is r14 on X86_64 and X5 on ARM64. To free up r14 on X86_64, changed the
old leadingSurrogateTag to be a literal.

  • yarr/YarrJIT.cpp:

(JSC::Yarr::YarrGenerator::tryReadUnicodeCharImpl):
(JSC::Yarr::YarrGenerator::matchBackreference):
(JSC::Yarr::YarrGenerator::generateEnter):
(JSC::Yarr::YarrGenerator::readCharacterDontDecodeSurrogates): Deleted.

11:15 AM Changeset in webkit [250567] by achristensen@apple.com
  • 2 edits in trunk/Source/WebKit

Fix GTK build after r250558
https://bugs.webkit.org/show_bug.cgi?id=202390

  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDOMWindow.cpp:

(webkit_dom_dom_window_confirm):

11:12 AM Changeset in webkit [250566] by Keith Rollin
  • 7 edits in trunk/Source

Remove some support for < iOS 13
https://bugs.webkit.org/show_bug.cgi?id=202386
<rdar://problem/55863017>

Reviewed by Eric Carlson.

Remove some support for iOS versions less than 13.0.

Update conditionals that reference IPHONE_OS_VERSION_MIN_REQUIRED
and
IPHONE_OS_VERSION_MAX_ALLOWED, assuming that they both have
values >= 130000. This means that expressions like
"IPHONE_OS_VERSION_MIN_REQUIRED < 101300" are always False and
"
IPHONE_OS_VERSION_MIN_REQUIRED >= 101300" are always True.

This removal is part of a series of patches effecting the removal of
dead code for old versions of iOS. This particular pass involves
changes in which Jer Noble was involved. These changes are isolated
from other similar changes in order to facilitate the reviewing
process.

Source/WebCore:

No new tests -- no new or changed functionality.

  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:

(WebCore::MediaPlayerPrivateAVFoundationObjC::seekableTimeRangesLastModifiedTime const):
(WebCore::MediaPlayerPrivateAVFoundationObjC::liveUpdateInterval const):

Source/WebCore/PAL:

  • pal/spi/cocoa/AVKitSPI.h:
  • pal/spi/mac/AVFoundationSPI.h:

Source/WTF:

  • wtf/Platform.h:
10:36 AM Changeset in webkit [250565] by achristensen@apple.com
  • 12 edits in trunk/Source/WebKitLegacy

Unify more WebKitLegacy sources
https://bugs.webkit.org/show_bug.cgi?id=202410

Reviewed by Tim Horton.

Source/WebKitLegacy:

  • SourcesCocoa.txt:
  • UnifiedSources-output.xcfilelist:
  • WebKitLegacy.xcodeproj/project.pbxproj:
  • scripts/generate-unified-sources.sh:

Source/WebKitLegacy/mac:

  • DOM/DOMHTML.mm:

(-[DOMHTMLElement scrollXOffset]):
(-[DOMHTMLElement scrollYOffset]):
(-[DOMHTMLElement setScrollXOffset:scrollYOffset:adjustForIOSCaret:]):
(-[DOMHTMLElement absolutePosition::::]):
(-[DOMHTMLInputElement setValueWithChangeEvent:]):
(-[DOMHTMLInputElement setValueAsNumberWithChangeEvent:]):

  • DOM/DOMHTMLTextAreaElement.mm:

(unwrap):
(core):
(kit):
(-[DOMHTMLTextAreaElement autofocus]):
(-[DOMHTMLTextAreaElement setAutofocus:]):
(-[DOMHTMLTextAreaElement dirName]):
(-[DOMHTMLTextAreaElement setDirName:]):
(-[DOMHTMLTextAreaElement disabled]):
(-[DOMHTMLTextAreaElement setDisabled:]):
(-[DOMHTMLTextAreaElement form]):
(-[DOMHTMLTextAreaElement maxLength]):
(-[DOMHTMLTextAreaElement setMaxLength:]):
(-[DOMHTMLTextAreaElement name]):
(-[DOMHTMLTextAreaElement setName:]):
(-[DOMHTMLTextAreaElement placeholder]):
(-[DOMHTMLTextAreaElement setPlaceholder:]):
(-[DOMHTMLTextAreaElement readOnly]):
(-[DOMHTMLTextAreaElement setReadOnly:]):
(-[DOMHTMLTextAreaElement required]):
(-[DOMHTMLTextAreaElement setRequired:]):
(-[DOMHTMLTextAreaElement rows]):
(-[DOMHTMLTextAreaElement setRows:]):
(-[DOMHTMLTextAreaElement cols]):
(-[DOMHTMLTextAreaElement setCols:]):
(-[DOMHTMLTextAreaElement wrap]):
(-[DOMHTMLTextAreaElement setWrap:]):
(-[DOMHTMLTextAreaElement type]):
(-[DOMHTMLTextAreaElement defaultValue]):
(-[DOMHTMLTextAreaElement setDefaultValue:]):
(-[DOMHTMLTextAreaElement value]):
(-[DOMHTMLTextAreaElement setValue:]):
(-[DOMHTMLTextAreaElement textLength]):
(-[DOMHTMLTextAreaElement willValidate]):
(-[DOMHTMLTextAreaElement labels]):
(-[DOMHTMLTextAreaElement selectionStart]):
(-[DOMHTMLTextAreaElement setSelectionStart:]):
(-[DOMHTMLTextAreaElement selectionEnd]):
(-[DOMHTMLTextAreaElement setSelectionEnd:]):
(-[DOMHTMLTextAreaElement selectionDirection]):
(-[DOMHTMLTextAreaElement setSelectionDirection:]):
(-[DOMHTMLTextAreaElement accessKey]):
(-[DOMHTMLTextAreaElement setAccessKey:]):
(-[DOMHTMLTextAreaElement autocomplete]):
(-[DOMHTMLTextAreaElement setAutocomplete:]):
(-[DOMHTMLTextAreaElement select]):
(-[DOMHTMLTextAreaElement setRangeText:]):
(-[DOMHTMLTextAreaElement setRangeText:start:end:selectionMode:]):
(-[DOMHTMLTextAreaElement setSelectionRange:end:]):

  • DOM/DOMUIKitExtensions.mm:

(-[DOMRange move:inDirection:]):
(-[DOMRange extend:inDirection:]):
(-[DOMNode borderRadii]):
(-[DOMNode isSelectableBlock]):
(-[DOMNode findExplodedTextNodeAtPoint:]):
(-[DOMHTMLElement structuralComplexityContribution]):

  • WebCoreSupport/WebFrameLoaderClient.h:
  • WebCoreSupport/WebFrameLoaderClient.mm:

(dataSource):

  • WebView/WebDataSource.mm:

(addTypesFromClass):

10:34 AM Changeset in webkit [250564] by commit-queue@webkit.org
  • 2 edits in trunk/LayoutTests

Support accessibility for <figure> element on iOS.
https://bugs.webkit.org/show_bug.cgi?id=202272

Patch by Andres Gonzalez <Andres Gonzalez> on 2019-10-01
Reviewed by Aakash Jain.

Fix for WK1 test, rebasing.

  • platform/mac/accessibility/roles-exposed-expected.txt:
10:27 AM Changeset in webkit [250563] by achristensen@apple.com
  • 2 edits in trunk/Source/WebKit

Fix an internal build.

Ignore some deprecation warnings. We'll adopt new SPI soon.

  • NetworkProcess/cocoa/NetworkSessionCocoa.mm:

(-[WKNetworkSessionDelegate URLSession:task:didFinishCollectingMetrics:]):

10:10 AM Changeset in webkit [250562] by ddkilzer@apple.com
  • 2 edits in trunk/Tools

clang-tidy: Fix unnecessary copying/ref churn of for loop variables in Tools
<https://webkit.org/b/202387>

Reviewed by Darin Adler.

  • WebKitTestRunner/cocoa/TestControllerCocoa.mm:

(WTR::TestController::setAllowedMenuActions): Make loop variable
a reference to fix unnecessary copying/ref churn.

9:51 AM Changeset in webkit [250561] by Nikolas Zimmermann
  • 2 edits in trunk/Tools

Update my affiliation - since today I work for Igalia.

Unreviewed.

  • Scripts/webkitpy/common/config/contributors.json:
9:48 AM Changeset in webkit [250560] by Chris Dumez
  • 4 edits in trunk/Source/WebCore

Unreviewed attempt to fix Windows build after r250527.

  • dom/GenericEventQueue.cpp:

(WebCore::TaskQueueConstructor::construct):
(WebCore::TaskQueueConstructor<Timer>::construct):
(WebCore::GenericEventQueueBase<T>::enqueueEvent):
(WebCore::GenericEventQueueBase<T>::close):
(WebCore::GenericEventQueueBase<T>::cancelAllEvents):
(WebCore::GenericEventQueueBase<T>::setPaused):
(WebCore::GenericEventQueueBase<T>::suspend):
(WebCore::GenericEventQueueBase<T>::rescheduleAllEventsIfNeeded):

  • dom/GenericEventQueue.h:
  • platform/GenericTaskQueue.h:
9:38 AM Changeset in webkit [250559] by keith_miller@apple.com
  • 67 edits
    13 adds in trunk

Add support for the Wasm multi-value proposal
https://bugs.webkit.org/show_bug.cgi?id=202250

Reviewed by Saam Barati.

JSTests:

This patch adds a new way to run stress tests via the .wat text
format. By attaching an asm.js compiled version of the wabt tool
we can easily create wat files programatically and convert them
into a wasm blob to compile. To make this easy there is a
wabt-wrapper.js module file that exports two useful functions that
correspond to WebAssembly.compile and WebAssembly.instantiate.

  • wasm.yaml:
  • wasm/function-tests/if-no-else-non-void.js:
  • wasm/js-api/web-assembly-instantiate.js:

(assert.asyncTest.async.test):
(assert.asyncTest):

  • wasm/libwabt.js: Added.

(WabtModule):
(set get if):

  • wasm/references/func_ref.js:
  • wasm/references/validation.js:

(assert.throws):

  • wasm/spec-harness/index.js:
  • wasm/spec-tests/block.wast.js:
  • wasm/spec-tests/br.wast.js:
  • wasm/spec-tests/br_if.wast.js:
  • wasm/spec-tests/call.wast.js:
  • wasm/spec-tests/call_indirect.wast.js:
  • wasm/spec-tests/func.wast.js:
  • wasm/spec-tests/if.wast.js:
  • wasm/spec-tests/loop.wast.js:
  • wasm/spec-tests/type.wast.js:
  • wasm/stress/js-wasm-call-many-return-types-on-stack-no-args.js: Added.

(buildWat):

  • wasm/stress/js-wasm-js-varying-arities.js: Added.

(paramForwarder):

  • wasm/stress/wasm-js-call-many-return-types-on-stack-no-args.js: Added.

(buildWat):

  • wasm/stress/wasm-js-multi-value-exception-in-iterator.js: Added.

(buildWat.throwError):
(buildWat.throwErrorInIterator):
(buildWat.tooManyValues):
(buildWat.tooFewValues):
(buildWat):

  • wasm/stress/wasm-wasm-call-indirect-many-return-types-on-stack.js: Added.

(buildWat):

  • wasm/stress/wasm-wasm-call-many-return-types-on-stack-no-args.js: Added.

(buildWat):

  • wasm/wabt-wrapper.js: Added.

(export.compile):

  • wasm/wast-tests/br-if-at-end-of-block.wasm: Added.
  • wasm/wast-tests/br-if-at-end-of-block.wast: Added.
  • wasm/wast-tests/harness.js:

(async.runWasmFile):

  • wasm/wast-tests/single-param-loop-signature.wasm: Added.
  • wasm/wast-tests/single-param-loop-signature.wast: Added.

Source/JavaScriptCore:

The wasm multi-value proposal makes two major changes to the
spec. The first is that functions may now return more than one
value across calls. When calling to/from JS, if there is more than
one return type we return/receive a JSArray/Iterable,
respectively. In the Wasm calls JS case, if the iteratable object
does not vend the exact number of objects expected by the
signature an error is thrown.

The second major change in the multi-value proposal allows blocks
to have any signature type. This works in a backwards compatible
way by exploiting the fact that the old value-type thunk signatures
(where the block takes no arguments and returns just the value
type i.e. [] -> [type]) were always encoded as a negative
number. If a block has a function signature, it is encoded as a
positive index into the type section. When a block has a function
signature type then the values from the enclosing stack are popped
off that stack and added to the new block's stack. In the case of
a br/br_if to a Loop block the "argument" values should be on the
brancher's stack.

The biggest change in this patch is stripping down the
WasmCallingConventions file into one simpler API that just tells
you where the each argument should be located. It also now handles
adding or subtracting sizeof(CallerFrameAndPC) depending on
whether you are caller or callee. Additionally, when computing
locations for the callee it returns a B3::ValueRep that has the
offsetFromFP rather than offsetFromSP. Since the code has been
cleaned up I tried to also reduce code duplication in the various
stubs for wasm code. This patch also removes the Air specific
calling convention code and moves that logic into the Air IR
generator.

Since blocks can now have arbitrary signatures the control entries
now use a const signature* rather than just the return
type. Additionally, what used to be the result phi is now the phis
for all the results for non-loop blocks and the arguments for a
loop block. Due to the control flow restrictions of wasm
conveniently we don't have to worry about generating non-optimal
SSA, thus we can just use phis directly rather than using a
variable.

Lastly, to help clean up some code in the IR generators new helper
methods were added to create call Patchpoints. These helpers do
most of the boiler-plate initialization.

  • JavaScriptCore.xcodeproj/project.pbxproj:
  • assembler/AbstractMacroAssembler.h:

(JSC::AbstractMacroAssembler::ImplicitAddress::ImplicitAddress):

  • assembler/LinkBuffer.cpp:

(JSC::shouldDumpDisassemblyFor):

  • assembler/LinkBuffer.h:
  • assembler/MacroAssemblerARM64.h:

(JSC::MacroAssemblerARM64::callOperation):

  • assembler/MacroAssemblerX86_64.h:

(JSC::MacroAssemblerX86_64::callOperation):

  • b3/B3LowerToAir.cpp:
  • b3/B3PatchpointSpecial.cpp:

(JSC::B3::PatchpointSpecial::forEachArg):
(JSC::B3::PatchpointSpecial::isValid):
(JSC::B3::PatchpointSpecial::admitsStack):
(JSC::B3::PatchpointSpecial::generate):

  • b3/B3Procedure.h:

(JSC::B3::Procedure::resultCount const):
(JSC::B3::Procedure::typeAtOffset const):
(JSC::B3::Procedure::returnCount const): Deleted.

  • b3/B3StackmapGenerationParams.cpp:

(JSC::B3::StackmapGenerationParams::code const):

  • b3/B3StackmapGenerationParams.h:
  • b3/B3ValueRep.h:
  • b3/air/AirHelpers.h: Added.

(JSC::B3::Air::moveForType):
(JSC::B3::Air::relaxedMoveForType):

  • jit/AssemblyHelpers.h:

(JSC::AssemblyHelpers::store64FromReg):
(JSC::AssemblyHelpers::store32FromReg):
(JSC::AssemblyHelpers::load64ToReg):
(JSC::AssemblyHelpers::load32ToReg):

  • runtime/JSCConfig.h:
  • runtime/OptionsList.h:
  • tools/JSDollarVM.cpp:
  • tools/VMInspector.cpp:

(JSC::VMInspector::dumpValue):

  • wasm/WasmAirIRGenerator.cpp:

(JSC::Wasm::ConstrainedTmp::operator bool const):
(JSC::Wasm::TypedTmp::dump const):
(JSC::Wasm::AirIRGenerator::ControlData::ControlData):
(JSC::Wasm::AirIRGenerator::ControlData::dump const):
(JSC::Wasm::AirIRGenerator::ControlData::blockType const):
(JSC::Wasm::AirIRGenerator::ControlData::signature const):
(JSC::Wasm::AirIRGenerator::ControlData::targetBlockForBranch):
(JSC::Wasm::AirIRGenerator::ControlData::convertIfToBlock):
(JSC::Wasm::AirIRGenerator::addEndToUnreachable):
(JSC::Wasm::AirIRGenerator::emitCallPatchpoint):
(JSC::Wasm::AirIRGenerator::validateInst):
(JSC::Wasm::AirIRGenerator::tmpsForSignature):
(JSC::Wasm::AirIRGenerator::emitPatchpoint):
(JSC::Wasm::AirIRGenerator::AirIRGenerator):
(JSC::Wasm::AirIRGenerator::toB3ResultType):
(JSC::Wasm::AirIRGenerator::addBottom):
(JSC::Wasm::AirIRGenerator::emitLoopTierUpCheck):
(JSC::Wasm::AirIRGenerator::addTopLevel):
(JSC::Wasm::AirIRGenerator::addLoop):
(JSC::Wasm::AirIRGenerator::addBlock):
(JSC::Wasm::AirIRGenerator::addIf):
(JSC::Wasm::AirIRGenerator::addElse):
(JSC::Wasm::AirIRGenerator::addElseToUnreachable):
(JSC::Wasm::AirIRGenerator::addReturn):
(JSC::Wasm::AirIRGenerator::addBranch):
(JSC::Wasm::AirIRGenerator::addSwitch):
(JSC::Wasm::AirIRGenerator::endBlock):
(JSC::Wasm::AirIRGenerator::addCall):
(JSC::Wasm::AirIRGenerator::addCallIndirect):
(JSC::Wasm::dumpExpressionStack):
(JSC::Wasm::AirIRGenerator::dump):
(JSC::Wasm::AirIRGenerator::addOp<OpType::I64TruncUF64>):
(JSC::Wasm::AirIRGenerator::addOp<OpType::I64TruncUF32>):
(JSC::Wasm::AirIRGenerator::ControlData::type const): Deleted.
(JSC::Wasm::AirIRGenerator::ControlData::hasNonVoidSignature const): Deleted.
(JSC::Wasm::AirIRGenerator::ControlData::resultForBranch const): Deleted.

  • wasm/WasmB3IRGenerator.cpp:

(JSC::Wasm::B3IRGenerator::ControlData::ControlData):
(JSC::Wasm::B3IRGenerator::ControlData::dump const):
(JSC::Wasm::B3IRGenerator::ControlData::blockType const):
(JSC::Wasm::B3IRGenerator::ControlData::hasNonVoidresult const):
(JSC::Wasm::B3IRGenerator::ControlData::targetBlockForBranch):
(JSC::Wasm::B3IRGenerator::ControlData::convertIfToBlock):
(JSC::Wasm::B3IRGenerator::addEndToUnreachable):
(JSC::Wasm::B3IRGenerator::B3IRGenerator):
(JSC::Wasm::B3IRGenerator::framePointer):
(JSC::Wasm::B3IRGenerator::toB3ResultType):
(JSC::Wasm::B3IRGenerator::addArguments):
(JSC::Wasm::B3IRGenerator::addGrowMemory):
(JSC::Wasm::B3IRGenerator::addLoop):
(JSC::Wasm::B3IRGenerator::addTopLevel):
(JSC::Wasm::B3IRGenerator::addBlock):
(JSC::Wasm::B3IRGenerator::addIf):
(JSC::Wasm::B3IRGenerator::addElse):
(JSC::Wasm::B3IRGenerator::addElseToUnreachable):
(JSC::Wasm::B3IRGenerator::addReturn):
(JSC::Wasm::B3IRGenerator::addBranch):
(JSC::Wasm::B3IRGenerator::addSwitch):
(JSC::Wasm::B3IRGenerator::endBlock):
(JSC::Wasm::B3IRGenerator::createCallPatchpoint):
(JSC::Wasm::B3IRGenerator::addCall):
(JSC::Wasm::B3IRGenerator::addCallIndirect):
(JSC::Wasm::B3IRGenerator::ControlData::type const): Deleted.
(JSC::Wasm::B3IRGenerator::ControlData::hasNonVoidSignature const): Deleted.
(JSC::Wasm::B3IRGenerator::ControlData::resultForBranch const): Deleted.
(JSC::Wasm::B3IRGenerator::createStack): Deleted.

  • wasm/WasmBBQPlan.cpp:

(JSC::Wasm::BBQPlan::didReceiveFunctionData):
(JSC::Wasm::BBQPlan::parseAndValidateModule):
(JSC::Wasm::BBQPlan::complete):

  • wasm/WasmBBQPlan.h:
  • wasm/WasmBinding.cpp:

(JSC::Wasm::wasmToWasm):

  • wasm/WasmCallingConvention.cpp:

(JSC::Wasm::jsCallingConvention):
(JSC::Wasm::wasmCallingConvention):
(JSC::Wasm::jscCallingConvention): Deleted.
(JSC::Wasm::jscCallingConventionAir): Deleted.
(JSC::Wasm::wasmCallingConventionAir): Deleted.

  • wasm/WasmCallingConvention.h:

(JSC::Wasm::CallInformation::CallInformation):
(JSC::Wasm::CallInformation::computeResultsOffsetList):
(JSC::Wasm::WasmCallingConvention::WasmCallingConvention):
(JSC::Wasm::WasmCallingConvention::marshallLocationImpl const):
(JSC::Wasm::WasmCallingConvention::marshallLocation const):
(JSC::Wasm::WasmCallingConvention::callInformationFor const):
(JSC::Wasm::JSCallingConvention::JSCallingConvention):
(JSC::Wasm::JSCallingConvention::marshallLocationImpl const):
(JSC::Wasm::JSCallingConvention::marshallLocation const):
(JSC::Wasm::JSCallingConvention::callInformationFor const):
(JSC::Wasm::CallingConvention::CallingConvention): Deleted.
(JSC::Wasm::CallingConvention::marshallArgumentImpl const): Deleted.
(JSC::Wasm::CallingConvention::marshallArgument const): Deleted.
(JSC::Wasm::CallingConvention::headerSizeInBytes): Deleted.
(JSC::Wasm::CallingConvention::setupFrameInPrologue const): Deleted.
(JSC::Wasm::CallingConvention::loadArguments const): Deleted.
(JSC::Wasm::CallingConvention::setupCall const): Deleted.
(JSC::Wasm::CallingConventionAir::CallingConventionAir): Deleted.
(JSC::Wasm::CallingConventionAir::prologueScratch const): Deleted.
(JSC::Wasm::CallingConventionAir::marshallArgumentImpl const): Deleted.
(JSC::Wasm::CallingConventionAir::marshallArgument const): Deleted.
(JSC::Wasm::CallingConventionAir::headerSizeInBytes): Deleted.
(JSC::Wasm::CallingConventionAir::loadArguments const): Deleted.
(JSC::Wasm::CallingConventionAir::setupCall const): Deleted.
(JSC::Wasm::nextJSCOffset): Deleted.

  • wasm/WasmFormat.h:
  • wasm/WasmFunctionParser.h:

(JSC::Wasm::splitStack):
(JSC::Wasm::FunctionParser::signature const):
(JSC::Wasm::FunctionParser<Context>::FunctionParser):
(JSC::Wasm::FunctionParser<Context>::parseBody):
(JSC::Wasm::FunctionParser<Context>::parseExpression):
(JSC::Wasm::FunctionParser<Context>::parseUnreachableExpression):

  • wasm/WasmInstance.h:
  • wasm/WasmMemoryInformation.cpp:

(JSC::Wasm::getPinnedRegisters):

  • wasm/WasmOMGForOSREntryPlan.cpp:

(JSC::Wasm::OMGForOSREntryPlan::work):

  • wasm/WasmOMGPlan.cpp:

(JSC::Wasm::OMGPlan::work):

  • wasm/WasmParser.h:

(JSC::Wasm::FailureHelper::makeString):
(JSC::Wasm::Parser<SuccessType>::Parser):
(JSC::Wasm::Parser<SuccessType>::peekInt7):
(JSC::Wasm::Parser<SuccessType>::parseBlockSignature):
(JSC::Wasm::Parser<SuccessType>::parseValueType):
(JSC::Wasm::Parser<SuccessType>::parseResultType): Deleted.

  • wasm/WasmSectionParser.cpp:

(JSC::Wasm::SectionParser::parseType):
(JSC::Wasm::SectionParser::parseStart):

  • wasm/WasmSectionParser.h:
  • wasm/WasmSignature.cpp:

(JSC::Wasm::Signature::toString const):
(JSC::Wasm::Signature::dump const):
(JSC::Wasm::computeHash):
(JSC::Wasm::Signature::hash const):
(JSC::Wasm::Signature::tryCreate):
(JSC::Wasm::SignatureInformation::SignatureInformation):
(JSC::Wasm::ParameterTypes::hash):
(JSC::Wasm::ParameterTypes::equal):
(JSC::Wasm::ParameterTypes::translate):
(JSC::Wasm::SignatureInformation::signatureFor):
(JSC::Wasm::SignatureInformation::adopt): Deleted.

  • wasm/WasmSignature.h:

(JSC::Wasm::Signature::Signature):
(JSC::Wasm::Signature::allocatedSize):
(JSC::Wasm::Signature::returnCount const):
(JSC::Wasm::Signature::returnType const):
(JSC::Wasm::Signature::returnsVoid const):
(JSC::Wasm::Signature::argument const):
(JSC::Wasm::Signature::operator== const):
(JSC::Wasm::Signature::getReturnType):
(JSC::Wasm::Signature::getArgument):
(JSC::Wasm::SignatureHash::SignatureHash):
(JSC::Wasm::SignatureHash::equal):
(JSC::Wasm::SignatureInformation::thunkFor const):
(JSC::Wasm::Signature::returnType): Deleted.
(JSC::Wasm::Signature::argument): Deleted.

  • wasm/WasmStreamingParser.cpp:

(JSC::Wasm::StreamingParser::parseCodeSectionSize):
(JSC::Wasm::StreamingParser::parseFunctionPayload):
(JSC::Wasm::StreamingParser::parseSectionPayload):

  • wasm/WasmStreamingParser.h:

(JSC::Wasm::StreamingParserClient::didReceiveSectionData):
(JSC::Wasm::StreamingParser::reportError):
(JSC::Wasm::StreamingParserClient::didReceiveFunctionData): Deleted.

  • wasm/WasmThunks.cpp:

(JSC::Wasm::throwExceptionFromWasmThunkGenerator):
(JSC::Wasm::throwStackOverflowFromWasmThunkGenerator):
(JSC::Wasm::triggerOMGEntryTierUpThunkGenerator):

  • wasm/WasmValidate.cpp:

(JSC::Wasm::Validate::ControlData::ControlData):
(JSC::Wasm::Validate::ControlData::dump const):
(JSC::Wasm::Validate::ControlData::blockType const):
(JSC::Wasm::Validate::ControlData::signature const):
(JSC::Wasm::Validate::ControlData::branchTargetArity const):
(JSC::Wasm::Validate::ControlData::branchTargetType const):
(JSC::Wasm::Validate::fail const):
(JSC::Wasm::Validate::addTableGet):
(JSC::Wasm::Validate::addTableGrow):
(JSC::Wasm::Validate::addTableFill):
(JSC::Wasm::Validate::addRefIsNull):
(JSC::Wasm::Validate::addTopLevel):
(JSC::Wasm::splitStack):
(JSC::Wasm::Validate::addBlock):
(JSC::Wasm::Validate::addLoop):
(JSC::Wasm::Validate::addIf):
(JSC::Wasm::Validate::addElseToUnreachable):
(JSC::Wasm::Validate::addReturn):
(JSC::Wasm::Validate::checkBranchTarget):
(JSC::Wasm::Validate::addSwitch):
(JSC::Wasm::Validate::addGrowMemory):
(JSC::Wasm::Validate::addEndToUnreachable):
(JSC::Wasm::Validate::addCall):
(JSC::Wasm::Validate::addCallIndirect):
(JSC::Wasm::Validate::unify):
(JSC::Wasm::Validate::ControlData::hasNonVoidSignature const): Deleted.
(JSC::Wasm::Validate::ControlData::type const): Deleted.
(JSC::Wasm::Validate::ControlData::branchTargetSignature const): Deleted.

  • wasm/generateWasmOpsHeader.py:
  • wasm/js/JSToWasm.cpp:

(JSC::Wasm::boxWasmResult):
(JSC::Wasm::allocateResultsArray):
(JSC::Wasm::marshallJSResult):
(JSC::Wasm::createJSToWasmWrapper):

  • wasm/js/JSToWasm.h:
  • wasm/js/JSWebAssemblyCodeBlock.cpp:

(JSC::JSWebAssemblyCodeBlock::JSWebAssemblyCodeBlock):

  • wasm/js/WasmToJS.cpp:

(JSC::Wasm::handleBadI64Use):
(JSC::Wasm::wasmToJS):

  • wasm/js/WasmToJS.h:
  • wasm/js/WebAssemblyFunction.cpp:

(JSC::callWebAssemblyFunction):
(JSC::WebAssemblyFunction::useTagRegisters const):
(JSC::WebAssemblyFunction::jsCallEntrypointSlow):

  • wasm/js/WebAssemblyModuleRecord.cpp:

(JSC::WebAssemblyModuleRecord::link):

Tools:

  • Scripts/run-jsc-stress-tests:
9:37 AM Changeset in webkit [250558] by achristensen@apple.com
  • 4 edits in trunk/Source/WebCore

Fix internal build after r250549
https://bugs.webkit.org/show_bug.cgi?id=202390

There is an internal #define confirm on some systems, so rename DOMWindow::confirm to DOMWindow::confirmForBindings.

  • page/DOMWindow.cpp:

(WebCore::DOMWindow::confirmForBindings):
(WebCore::DOMWindow::confirm): Deleted.

  • page/DOMWindow.h:
  • page/DOMWindow.idl:
9:18 AM Changeset in webkit [250557] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

Unreviewed attempt to fix Windows build after r250527.

  • platform/GenericTaskQueue.h:
8:59 AM Changeset in webkit [250556] by achristensen@apple.com
  • 9 edits in trunk/Source/WebKitLegacy/mac

Fix internal build after r250549
https://bugs.webkit.org/show_bug.cgi?id=202390

Remove some more "using namespace WebCore"

  • History/WebBackForwardList.mm:

(-[WebBackForwardList dictionaryRepresentation]):
(vectorToNSArray):
(-[WebBackForwardList backListWithLimit:]):
(-[WebBackForwardList forwardListWithLimit:]):
(-[WebBackForwardList description]):
(-[WebBackForwardList pageCacheSize]):

  • Misc/WebSharingServicePickerController.mm:

(WebSharingServicePickerClient::pageForSharingServicePicker):
(WebSharingServicePickerClient::screenRectForCurrentSharingServicePickerItem):
(-[WebSharingServicePickerController didShareImageData:confirmDataIsValidTIFFData:]):
(-[WebSharingServicePickerController sharingService:didShareItems:]):

  • Plugins/WebBasePluginPackage.mm:

(-[WebBasePluginPackage getPluginInfoFromPLists]):
(-[WebBasePluginPackage pluginInfo]):

  • Plugins/WebPluginContainerCheck.mm:

(-[WebPluginContainerCheck _continueWithPolicy:]):
(-[WebPluginContainerCheck _isForbiddenFileLoad]):

  • Plugins/WebPluginController.mm:

(initializeAudioSession):
(-[WebPluginController plugInViewWithArguments:fromPluginPackage:]):
(-[WebPluginController superlayerForPluginView:]):
(-[WebPluginController stopOnePlugin:]):
(-[WebPluginController stopOnePluginForPageCache:]):
(-[WebPluginController destroyOnePlugin:]):
(-[WebPluginController startAllPlugins]):
(-[WebPluginController addPlugin:]):
(-[WebPluginController destroyPlugin:]):
(-[WebPluginController destroyAllPlugins]):
(-[WebPluginController processingUserGesture]):
(-[WebPluginController webPlugInContainerLoadRequest:inFrame:]):
(-[WebPluginController webPlugInContainerSelectionColor]):

  • Plugins/WebPluginDatabase.mm:

(-[WebPluginDatabase refresh]):
(-[WebPluginDatabase _removePlugin:]):

  • WebCoreSupport/WebApplicationCache.mm:

(+[WebApplicationCache initializeWithBundleIdentifier:]):
(webApplicationCacheStorage):

  • WebCoreSupport/WebApplicationCacheQuotaManager.mm:
8:24 AM Changeset in webkit [250555] by Antti Koivisto
  • 4 edits
    52 adds in trunk/LayoutTests

Import WPT tests for CSS Shadow Parts
https://bugs.webkit.org/show_bug.cgi?id=202393

Reviewed by Antoine Quint.

LayoutTests/imported/w3c:

From https://github.com/web-platform-tests/wpt/tree/master/css/css-shadow-parts

  • resources/import-expectations.json:
  • web-platform-tests/css/css-shadow-parts/META.yml: Added.
  • web-platform-tests/css/css-shadow-parts/all-hosts-expected.txt: Added.
  • web-platform-tests/css/css-shadow-parts/all-hosts.html: Added.
  • web-platform-tests/css/css-shadow-parts/chaining-invalid-selector-expected.txt: Added.
  • web-platform-tests/css/css-shadow-parts/chaining-invalid-selector.html: Added.
  • web-platform-tests/css/css-shadow-parts/complex-matching-expected.txt: Added.
  • web-platform-tests/css/css-shadow-parts/complex-matching.html: Added.
  • web-platform-tests/css/css-shadow-parts/complex-non-matching-expected.txt: Added.
  • web-platform-tests/css/css-shadow-parts/complex-non-matching.html: Added.
  • web-platform-tests/css/css-shadow-parts/different-host-expected.txt: Added.
  • web-platform-tests/css/css-shadow-parts/different-host.html: Added.
  • web-platform-tests/css/css-shadow-parts/double-forward-expected.txt: Added.
  • web-platform-tests/css/css-shadow-parts/double-forward.html: Added.
  • web-platform-tests/css/css-shadow-parts/host-stylesheet-expected.txt: Added.
  • web-platform-tests/css/css-shadow-parts/host-stylesheet.html: Added.
  • web-platform-tests/css/css-shadow-parts/inner-host-expected.txt: Added.
  • web-platform-tests/css/css-shadow-parts/inner-host.html: Added.
  • web-platform-tests/css/css-shadow-parts/interaction-with-placeholder-expected.html: Added.
  • web-platform-tests/css/css-shadow-parts/interaction-with-placeholder.html: Added.
  • web-platform-tests/css/css-shadow-parts/interaction-with-pseudo-elements-expected.txt: Added.
  • web-platform-tests/css/css-shadow-parts/interaction-with-pseudo-elements.html: Added.
  • web-platform-tests/css/css-shadow-parts/invalidation-change-exportparts-forward-expected.txt: Added.
  • web-platform-tests/css/css-shadow-parts/invalidation-change-exportparts-forward.html: Added.
  • web-platform-tests/css/css-shadow-parts/invalidation-change-part-name-expected.txt: Added.
  • web-platform-tests/css/css-shadow-parts/invalidation-change-part-name-forward-expected.txt: Added.
  • web-platform-tests/css/css-shadow-parts/invalidation-change-part-name-forward.html: Added.
  • web-platform-tests/css/css-shadow-parts/invalidation-change-part-name-idl-domtokenlist-expected.txt: Added.
  • web-platform-tests/css/css-shadow-parts/invalidation-change-part-name-idl-domtokenlist.html: Added.
  • web-platform-tests/css/css-shadow-parts/invalidation-change-part-name-idl-setter-expected.txt: Added.
  • web-platform-tests/css/css-shadow-parts/invalidation-change-part-name-idl-setter.html: Added.
  • web-platform-tests/css/css-shadow-parts/invalidation-change-part-name.html: Added.
  • web-platform-tests/css/css-shadow-parts/invalidation-complex-selector-expected.txt: Added.
  • web-platform-tests/css/css-shadow-parts/invalidation-complex-selector-forward-expected.txt: Added.
  • web-platform-tests/css/css-shadow-parts/invalidation-complex-selector-forward.html: Added.
  • web-platform-tests/css/css-shadow-parts/invalidation-complex-selector.html: Added.
  • web-platform-tests/css/css-shadow-parts/multiple-parts-expected.txt: Added.
  • web-platform-tests/css/css-shadow-parts/multiple-parts.html: Added.
  • web-platform-tests/css/css-shadow-parts/part-name-idl-expected.txt: Added.
  • web-platform-tests/css/css-shadow-parts/part-name-idl.html: Added.
  • web-platform-tests/css/css-shadow-parts/precedence-part-vs-part-expected.txt: Added.
  • web-platform-tests/css/css-shadow-parts/precedence-part-vs-part.html: Added.
  • web-platform-tests/css/css-shadow-parts/simple-expected.txt: Added.
  • web-platform-tests/css/css-shadow-parts/simple-forward-expected.txt: Added.
  • web-platform-tests/css/css-shadow-parts/simple-forward-shorthand-expected.txt: Added.
  • web-platform-tests/css/css-shadow-parts/simple-forward-shorthand.html: Added.
  • web-platform-tests/css/css-shadow-parts/simple-forward.html: Added.
  • web-platform-tests/css/css-shadow-parts/simple.html: Added.
  • web-platform-tests/css/css-shadow-parts/support/shadow-helper.js: Added.

(getElementByShadowIds):
(ceClass.):
(installCustomElement):

  • web-platform-tests/css/css-shadow-parts/support/w3c-import.log: Added.
  • web-platform-tests/css/css-shadow-parts/w3c-import.log: Added.

LayoutTests:

8:16 AM Changeset in webkit [250554] by zandobersek@gmail.com
  • 3 edits in trunk/Source/WebCore

[CoordGraphics] Implement sync methods for position, bounds origin
https://bugs.webkit.org/show_bug.cgi?id=202398

Reviewed by Carlos Garcia Campos.

Add the CoordinatedGraphicsLayer::syncPosition() and
CoordinatedGraphicsLayer::syncBoundsOrigin() method overrides, both
performing a synchronization of the given GraphicsLayer attribute.

These methods are used by the scrolling code to reflect changes in these
attributes without causing a layer flush (which is not necessary since
the changes have already been applied in an equivalent way).

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

(WebCore::CoordinatedGraphicsLayer::didChangeGeometry):
(WebCore::CoordinatedGraphicsLayer::syncPosition):
(WebCore::CoordinatedGraphicsLayer::syncBoundsOrigin):

  • platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.h:
8:08 AM Changeset in webkit [250553] by jh718.park@samsung.com
  • 5 edits
    8 adds in trunk

Make table's clientWidth/Height include its border sizes.
https://bugs.webkit.org/show_bug.cgi?id=200974

WebKit doesn't have table wrapper box currently
while Gecko has it,
so this CL tries to mimic the behavior that
clientWidth/Height refers to table wrapper box
which doesn't have borders applied to itself
and table grid box has the borders.

This CL adds table's border sizes
to clientWidth/Height
at |LayoutBox::PixelSnappedClientWidth/Height|.

As a result of this CL, table's clientWidth/Height
and offsetWidth/Height are equal now, respectively.

The corresponding csswg discussion is
https://github.com/w3c/csswg-drafts/issues/4245.

Reviewed by Antti Koivisto.

LayoutTests/imported/w3c:

  • web-platform-tests/css/cssom-view/table-border-collapse-client-width-height-expected.txt: Added.
  • web-platform-tests/css/cssom-view/table-border-collapse-client-width-height.html: Added.
  • web-platform-tests/css/cssom-view/table-border-separate-client-width-height-expected.txt: Added.
  • web-platform-tests/css/cssom-view/table-border-separate-client-width-height.html: Added.
  • web-platform-tests/css/cssom-view/table-client-props-expected.txt:
  • web-platform-tests/css/cssom-view/table-with-border-client-width-height-expected.txt: Added.
  • web-platform-tests/css/cssom-view/table-with-border-client-width-height.html: Added.

Source/WebCore:

Tests: fast/table/border-collapsing/bug236727.html

imported/w3c/web-platform-tests/css/cssom-view/table-border-collapse-client-width-height.html
imported/w3c/web-platform-tests/css/cssom-view/table-border-separate-client-width-height.html
imported/w3c/web-platform-tests/css/cssom-view/table-with-border-client-width-height.html

  • dom/Element.cpp:

(WebCore::Element::clientWidth):
(WebCore::Element::clientHeight):

LayoutTests:

  • fast/table/border-collapsing/bug236727-expected.txt: Added.
  • fast/table/border-collapsing/bug236727.html: Added.
6:43 AM Changeset in webkit [250552] by youenn@apple.com
  • 6 edits in trunk

Remove races condition when validating capture sandbox extension revocation
https://bugs.webkit.org/show_bug.cgi?id=202133
<rdar://problem/55660905>

Reviewed by Eric Carlson.

Source/WebCore:

Covered by existing tests.

  • Modules/mediastream/MediaStreamTrack.cpp:

(WebCore::MediaStreamTrack::endCapture):
Synchronously update document media state when capture is ended.
This allows to validate the fact that no document is capturing while we revoke sandbox extensions.

Source/WebKit:

  • UIProcess/UserMediaPermissionRequestManagerProxy.cpp:

(WebKit::UserMediaPermissionRequestManagerProxy::~UserMediaPermissionRequestManagerProxy):
Explicitly ask the page to stop capture.
This will make sure capture is stopped when revoking sandbox extensions.

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:

Updated test to not use page cache so that on going back, the page is reloaded and will call getUserMedia again.

2:41 AM Changeset in webkit [250551] by youenn@apple.com
  • 3 edits in trunk/Source/WebCore

MediaDevices should be SecureContext
https://bugs.webkit.org/show_bug.cgi?id=202267

Reviewed by Eric Carlson.

Manually tested since 127.0.0.1/localhost are secure contexts.

  • Modules/mediastream/MediaDevices.idl:
  • bindings/js/WebCoreBuiltinNames.h:
Note: See TracTimeline for information about the timeline view.