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

Timeline



Nov 15, 2019:

11:54 PM Changeset in webkit [252525] by ysuzuki@apple.com
  • 16 edits in trunk/Source

[JSC] Remove index-masking on ScopedArguments and put it in IsoSubspace
https://bugs.webkit.org/show_bug.cgi?id=204269

Reviewed by Saam Barati.

Source/JavaScriptCore:

We should remove index-masking for ScopedArguments. This patch reverts it.
We still use AuxiliaryBuffer, and avoid using variable sized cell. Then,
this patch also puts ScopedArguments in IsoSubspace.

  • bytecode/AccessCase.cpp:

(JSC::AccessCase::generateWithGuard):

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileGetByValOnScopedArguments):
(JSC::DFG::SpeculativeJIT::compileGetArrayLength):

  • ftl/FTLAbstractHeapRepository.h:
  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::LowerDFGToB3):
(JSC::FTL::DFG::LowerDFGToB3::compileGetArrayLength):
(JSC::FTL::DFG::LowerDFGToB3::compileGetByVal):
(JSC::FTL::DFG::LowerDFGToB3::compileGetMyArgumentByVal):
(JSC::FTL::DFG::LowerDFGToB3::preciseIndexMask64): Deleted.
(JSC::FTL::DFG::LowerDFGToB3::preciseIndexMask32): Deleted.

  • jit/AssemblyHelpers.cpp:

(JSC::AssemblyHelpers::emitPreparePreciseIndexMask32): Deleted.

  • jit/AssemblyHelpers.h:
  • jit/JIT.cpp:

(JSC::JIT::JIT):

  • jit/JIT.h:
  • jit/JITPropertyAccess.cpp:

(JSC::JIT::emitScopedArgumentsGetByVal):

  • runtime/ScopedArguments.cpp:

(JSC::ScopedArguments::ScopedArguments):
(JSC::ScopedArguments::createUninitialized):
(JSC::ScopedArguments::create):
(JSC::ScopedArguments::createByCopyingFrom):
(JSC::ScopedArguments::visitChildren):
(JSC::ScopedArguments::overrideThings):
(JSC::ScopedArguments::overrideThingsIfNecessary):
(JSC::ScopedArguments::unmapArgument):

  • runtime/ScopedArguments.h:
  • runtime/VM.cpp:

(JSC::VM::VM):

  • runtime/VM.h:

Source/WTF:

  • wtf/MathExtras.h:

(WTF::computeIndexingMask): Deleted.
(WTF::preciseIndexMaskShiftForSize): Deleted.
(WTF::preciseIndexMaskShift): Deleted.
(WTF::opaque): Deleted.
(WTF::preciseIndexMaskPtr): Deleted.

9:45 PM Changeset in webkit [252524] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

REGRESSION (r252497): Multiple mediacapturefromelement tests are crashing on mac debug
https://bugs.webkit.org/show_bug.cgi?id=204267
<rdar://problem/57248130>

Reviewed by Alexey Proskuryakov.

Make sure the CanvasCaptureMediaStreamTrack factory function calls suspendIfNeeded()
since the class inhehits ActiveDOMObject.

  • Modules/mediastream/CanvasCaptureMediaStreamTrack.cpp:

(WebCore::CanvasCaptureMediaStreamTrack::create):

8:31 PM Changeset in webkit [252523] by Devin Rousso
  • 5 edits in trunk/Source/WebInspectorUI

Web Inspector: Elements: Styles: support multiline CSS property values
https://bugs.webkit.org/show_bug.cgi?id=203754
<rdar://problem/56819044>

Reviewed by Brian Burg.

  • UserInterface/Models/CSSProperty.js:

(WI.CSSProperty.prototype.update):
(WI.CSSProperty.prototype._updateStyleText):
When the property is updated from the backend, find the first newline inside the value and
preserve the indent string so it can be re-added when updating the backend.

  • UserInterface/Views/SpreadsheetTextField.js:

(WI.SpreadsheetTextField.prototype._handleKeyDown):

  • UserInterface/Views/SpreadsheetCSSStyleDeclarationEditor.css:

(.spreadsheet-style-declaration-editor .property:not(.disabled) .value):
(.spreadsheet-style-declaration-editor .property:not(.disabled).has-newline .value): Added.
(.spreadsheet-style-declaration-editor .property:not(.disabled).has-newline .semicolon): Added.

  • UserInterface/Views/SpreadsheetStyleProperty.js:

(WI.SpreadsheetStyleProperty.prototype.updateStatus):
(WI.SpreadsheetStyleProperty.prototype.spreadsheetTextFieldAllowsNewlines): Added.
(WI.SpreadsheetStyleProperty.prototype._handleValueChange):
Support shift-enter when editing a CSS property's value to insert a newline.

8:21 PM Changeset in webkit [252522] by eric.carlson@apple.com
  • 10 edits in trunk/Source

Don't use AVCapture on watchOS and tvOS
https://bugs.webkit.org/show_bug.cgi?id=204254
<rdar://problem/45508044>

Reviewed by Youenn Fablet.

  • Configurations/FeatureDefines.xcconfig:
8:13 PM Changeset in webkit [252521] by eric.carlson@apple.com
  • 4 edits in trunk

[iOS] Audio capture fails when a track is unmuted
https://bugs.webkit.org/show_bug.cgi?id=204202
<rdar://problem/57005820>

Reviewed by Jer Noble.
Source/WebCore:

No new tests, this fixes an API test broken by r252470.

  • platform/mediastream/RealtimeMediaSource.cpp:

(WebCore::RealtimeMediaSource::setMuted):

Tools:

Make WebKit2.CaptureMute failures easier to diagnose.

  • TestWebKitAPI/Tests/WebKit/GetUserMedia.mm:

(TestWebKitAPI::wkMediaCaptureStateString):
(TestWebKitAPI::waitUntilCaptureState):
(TestWebKitAPI::TEST):

7:44 PM Changeset in webkit [252520] by Ross Kirsling
  • 59 edits in trunk

[JSC] Anonymous built-in functions should have empty string for a name
https://bugs.webkit.org/show_bug.cgi?id=204214

Reviewed by Yusuke Suzuki.

JSTests:

  • test262/expectations.yaml:

Mark 20 test cases as passing.

  • stress/builtin-function-name.js:

(shouldThrow):

  • stress/private-name-as-anonymous-builtin.js:

Fix tests which are no longer accurate.

Source/JavaScriptCore:

Ensure that Function.prototype.name (exists and) is an empty string for various anonymous built-in functions,
following https://github.com/tc39/ecma262/pull/1490.

Specifically:

  1. for promises, resolve / reject / executor elements are lacking a name property
  2. for proxies, the revocation function is lacking a name property
  3. for certain Intl objects, function getters return a bound function named "bound <name>" instead of ""

This change also means that we no longer need the NameVisibility enum or isAnonymousBuiltinFunction logic.

  • builtins/PromiseConstructor.js:
  • builtins/PromiseOperations.js:

Ensure resolve / reject / executor elements have a name property.
(They were @-named, which resulted in no name property at all.)

  • runtime/ProxyRevoke.cpp:

(JSC::ProxyRevoke::create):
(JSC::ProxyRevoke::finishCreation):

  • runtime/ProxyRevoke.h:

Ensure revocation functions have a name property.
(NameVisibility existed solely to ensure this *wasn't* the case.)

  • runtime/IntlCollatorPrototype.cpp:

(JSC::IntlCollatorPrototypeGetterCompare):

  • runtime/IntlDateTimeFormatPrototype.cpp:

(JSC::IntlDateTimeFormatPrototypeGetterFormat):

  • runtime/IntlNumberFormatPrototype.cpp:

(JSC::IntlNumberFormatPrototypeGetterFormat):
Give these bound functions an empty name.

  • bytecode/UnlinkedFunctionExecutable.h:
  • runtime/FunctionExecutable.h:
  • runtime/FunctionRareData.cpp:

(JSC::FunctionRareData::create):
(JSC::FunctionRareData::FunctionRareData):

  • runtime/FunctionRareData.h:
  • runtime/JSFunction.cpp:

(JSC::JSFunction::allocateRareData):
(JSC::JSFunction::allocateAndInitializeRareData):
(JSC::JSFunction::reifyLazyBoundNameIfNeeded):

  • runtime/JSFunction.h:
  • runtime/JSFunctionInlines.h:

(JSC::JSFunction::hasReifiedName const): Ensure bound anonymous built-in functions can have an empty name.
(JSC::JSFunction::isAnonymousBuiltinFunction const): Deleted.
Get rid of isAnonymousBuiltinFunction logic.

  • runtime/ArrayConstructor.cpp:

(JSC::ArrayConstructor::finishCreation):

  • runtime/AsyncFunctionConstructor.cpp:

(JSC::AsyncFunctionConstructor::finishCreation):

  • runtime/AsyncGeneratorFunctionConstructor.cpp:

(JSC::AsyncGeneratorFunctionConstructor::finishCreation):

  • runtime/BigIntConstructor.cpp:

(JSC::BigIntConstructor::finishCreation):

  • runtime/BooleanConstructor.cpp:

(JSC::BooleanConstructor::finishCreation):

  • runtime/DateConstructor.cpp:

(JSC::DateConstructor::finishCreation):

  • runtime/ErrorConstructor.cpp:

(JSC::ErrorConstructor::finishCreation):

  • runtime/FunctionConstructor.cpp:

(JSC::FunctionConstructor::finishCreation):

  • runtime/FunctionPrototype.cpp:

(JSC::FunctionPrototype::finishCreation):

  • runtime/GeneratorFunctionConstructor.cpp:

(JSC::GeneratorFunctionConstructor::finishCreation):

  • runtime/InternalFunction.cpp:

(JSC::InternalFunction::finishCreation):

  • runtime/InternalFunction.h:
  • runtime/IntlCollatorConstructor.cpp:

(JSC::IntlCollatorConstructor::finishCreation):

  • runtime/IntlDateTimeFormatConstructor.cpp:

(JSC::IntlDateTimeFormatConstructor::finishCreation):

  • runtime/IntlNumberFormatConstructor.cpp:

(JSC::IntlNumberFormatConstructor::finishCreation):

  • runtime/IntlPluralRulesConstructor.cpp:

(JSC::IntlPluralRulesConstructor::finishCreation):

  • runtime/JSArrayBufferConstructor.cpp:

(JSC::JSGenericArrayBufferConstructor<sharingMode>::finishCreation):

  • runtime/JSGenericTypedArrayViewConstructorInlines.h:

(JSC::JSGenericTypedArrayViewConstructor<ViewClass>::finishCreation):

  • runtime/JSTypedArrayViewConstructor.cpp:

(JSC::JSTypedArrayViewConstructor::finishCreation):

  • runtime/MapConstructor.cpp:

(JSC::MapConstructor::finishCreation):

  • runtime/NativeErrorConstructor.cpp:

(JSC::NativeErrorConstructorBase::finishCreation):

  • runtime/NullGetterFunction.h:
  • runtime/NullSetterFunction.h:
  • runtime/NumberConstructor.cpp:

(JSC::NumberConstructor::finishCreation):

  • runtime/ObjectConstructor.cpp:

(JSC::ObjectConstructor::finishCreation):

  • runtime/ProxyConstructor.cpp:

(JSC::ProxyConstructor::finishCreation):

  • runtime/RegExpConstructor.cpp:

(JSC::RegExpConstructor::finishCreation):

  • runtime/SetConstructor.cpp:

(JSC::SetConstructor::finishCreation):

  • runtime/StringConstructor.cpp:

(JSC::StringConstructor::finishCreation):

  • runtime/SymbolConstructor.cpp:

(JSC::SymbolConstructor::finishCreation):

  • runtime/WeakMapConstructor.cpp:

(JSC::WeakMapConstructor::finishCreation):

  • runtime/WeakObjectRefConstructor.cpp:

(JSC::WeakObjectRefConstructor::finishCreation):

  • runtime/WeakSetConstructor.cpp:

(JSC::WeakSetConstructor::finishCreation):

  • wasm/js/WebAssemblyCompileErrorConstructor.cpp:

(JSC::WebAssemblyCompileErrorConstructor::finishCreation):

  • wasm/js/WebAssemblyInstanceConstructor.cpp:

(JSC::WebAssemblyInstanceConstructor::finishCreation):

  • wasm/js/WebAssemblyLinkErrorConstructor.cpp:

(JSC::WebAssemblyLinkErrorConstructor::finishCreation):

  • wasm/js/WebAssemblyMemoryConstructor.cpp:

(JSC::WebAssemblyMemoryConstructor::finishCreation):

  • wasm/js/WebAssemblyModuleConstructor.cpp:

(JSC::WebAssemblyModuleConstructor::finishCreation):

  • wasm/js/WebAssemblyRuntimeErrorConstructor.cpp:

(JSC::WebAssemblyRuntimeErrorConstructor::finishCreation):

  • wasm/js/WebAssemblyTableConstructor.cpp:

(JSC::WebAssemblyTableConstructor::finishCreation):
Get rid of NameVisibility enum.

6:34 PM Changeset in webkit [252519] by basuke.suzuki@sony.com
  • 2 edits in trunk/Source/bmalloc

[bmalloc] The tracking of freeableMemory of Heap doesn't count Chunk's metadata size.
https://bugs.webkit.org/show_bug.cgi?id=204135

Reviewed by Yusuke Suzuki.

When chunk is allocated in allocateSmallChunk(), all chunk size is added to freeableMemory.
This is wrong. Only free pages should be added to it.

  • bmalloc/Heap.cpp:

(bmalloc::Heap::allocateSmallChunk):

6:32 PM Changeset in webkit [252518] by basuke.suzuki@sony.com
  • 13 edits in trunk/Source/bmalloc

[Mac] Use better describing name for Mac's scavenger compiler flag.
https://bugs.webkit.org/show_bug.cgi?id=203922

Reviewed by Yusuke Suzuki.

Changing BPLATFORM(MAC) to BUSE(PARTIAL_SCAVENGE).

  • bmalloc/BPlatform.h:
  • bmalloc/Heap.cpp:

(bmalloc::Heap::scavenge):
(bmalloc::Heap::allocateSmallChunk):
(bmalloc::Heap::allocateSmallPage):
(bmalloc::Heap::allocateLarge):

  • bmalloc/Heap.h:
  • bmalloc/IsoDirectory.h:
  • bmalloc/IsoDirectoryInlines.h:

(bmalloc::passedNumPages>::takeFirstEligible):
(bmalloc::passedNumPages>::scavenge):

  • bmalloc/IsoHeapImpl.h:
  • bmalloc/IsoHeapImplInlines.h:
  • bmalloc/LargeMap.cpp:

(bmalloc::LargeMap::add):

  • bmalloc/LargeRange.h:

(bmalloc::LargeRange::LargeRange):
(bmalloc::merge):

  • bmalloc/Scavenger.cpp:

(bmalloc::Scavenger::Scavenger):
(bmalloc::Scavenger::scavenge):
(bmalloc::Scavenger::threadRunLoop):

  • bmalloc/Scavenger.h:
  • bmalloc/SmallPage.h:
5:58 PM Changeset in webkit [252517] by Devin Rousso
  • 6 edits in trunk/Source/WebInspectorUI

Web Inspector: Sources: move the "Local Override..." creation context menu item from the Breakpoints section options menu to the Create Resource menu
https://bugs.webkit.org/show_bug.cgi?id=204178

Reviewed by Joseph Pecoraro.

  • UserInterface/Views/SourcesNavigationSidebarPanel.js:

(WI.SourcesNavigationSidebarPanel):
(WI.SourcesNavigationSidebarPanel.prototype._willDismissLocalOverridePopover):
(WI.SourcesNavigationSidebarPanel.prototype._addLocalOverride):
(WI.SourcesNavigationSidebarPanel.prototype._populateCreateBreakpointContextMenu):
(WI.SourcesNavigationSidebarPanel.prototype._populateCreateResourceContextMenu):
If the Local Overrides section isn't already visible, show it. Use the Local Overrides title
as the anchor for the configuration popover. If there are no existing Local Overrides, show
placeholder "No Overrides" text temporarily.

  • UserInterface/Views/EventBreakpointPopover.js:

(WI.EventBreakpointPopover.prototype._showSuggestionsView):

  • UserInterface/Views/LocalResourceOverridePopover.js:

(WI.LocalResourceOverridePopover.prototype._presentOverTargetElement):

  • UserInterface/Views/URLBreakpointPopover.js:

(WI.URLBreakpointPopover.prototype._presentOverTargetElement):
Add some padding around the popover's anchor so the arrow doesn't overlap it.

  • Localizations/en.lproj/localizedStrings.js:
5:48 PM Changeset in webkit [252516] by mmaxfield@apple.com
  • 12 edits in trunk

[Apple] Enable variation fonts on all Apple platforms
https://bugs.webkit.org/show_bug.cgi?id=198100

Reviewed by Simon Fraser.

Source/JavaScriptCore:

  • Configurations/FeatureDefines.xcconfig:

Source/WebCore:

  • Configurations/FeatureDefines.xcconfig:

Source/WebCore/PAL:

  • Configurations/FeatureDefines.xcconfig:

Source/WebKit:

  • Configurations/FeatureDefines.xcconfig:

Source/WebKitLegacy/mac:

  • Configurations/FeatureDefines.xcconfig:

Tools:

  • TestWebKitAPI/Configurations/FeatureDefines.xcconfig:
5:42 PM Changeset in webkit [252515] by Chris Fleizach
  • 2 edits in trunk/Source/WebCore

AX: Update style of lambda in isolated tree
https://bugs.webkit.org/show_bug.cgi?id=204233
<rdar://problem/57232085>

Reviewed by Darin Adler.

Remove unnecessary & capture and Optional<AXID>.

  • accessibility/isolatedtree/AXIsolatedTreeNode.cpp:

(WebCore::AXIsolatedObject::initializeAttributeData):
(WebCore::AXIsolatedObject::objectAttributeValue const):
(WebCore::AXIsolatedObject::rectAttributeValue const):
(WebCore::AXIsolatedObject::doubleAttributeValue const):
(WebCore::AXIsolatedObject::unsignedAttributeValue const):
(WebCore::AXIsolatedObject::boolAttributeValue const):
(WebCore::AXIsolatedObject::stringAttributeValue const):
(WebCore::AXIsolatedObject::intAttributeValue const):

5:25 PM Changeset in webkit [252514] by ysuzuki@apple.com
  • 4 edits
    1 add in trunk

[JSC] DFG strength reduction should define "groups" for RegExp constant-folded result
https://bugs.webkit.org/show_bug.cgi?id=204264

Reviewed by Michael Saboff.

JSTests:

  • stress/dfg-strength-reduction-for-regexp-should-include-groups-property.js: Added.

(shouldBe):
(test):

Source/JavaScriptCore:

We always define "groups" property in the result of RegExp matching.
But we do not define it when DFG performs strength-reduction for the RegExp matching node.
This patch adds "groups" field correctly.

  • dfg/DFGStrengthReductionPhase.cpp:

(JSC::DFG::StrengthReductionPhase::handleNode):

  • runtime/RegExpMatchesArray.cpp:

(JSC::createEmptyRegExpMatchesArray):

4:44 PM Changeset in webkit [252513] by ysuzuki@apple.com
  • 6 edits
    1 add in trunk

Wasm error message should be cross-thread-copied
https://bugs.webkit.org/show_bug.cgi?id=204143

Reviewed by Mark Lam.

JSTests:

  • stress/wasm-error-message-cross-threads.js: Added.

(f):

Source/JavaScriptCore:

It is shared by multiple threads, so we should copy it via crossThreadCopy.

  • wasm/WasmCodeBlock.h:

(JSC::Wasm::CodeBlock::errorMessage):

  • wasm/WasmEntryPlan.cpp:

(JSC::Wasm::EntryPlan::parseAndValidateModule):

  • wasm/WasmPlan.h:

(JSC::Wasm::Plan::errorMessage const):
(JSC::Wasm::Plan::failed const):

  • wasm/WasmStreamingParser.h:

(JSC::Wasm::StreamingParser::errorMessage const):

4:42 PM Changeset in webkit [252512] by Alan Coon
  • 7 edits in branches/safari-608-branch/Source

Versioning.

4:05 PM Changeset in webkit [252511] by jer.noble@apple.com
  • 2 edits in trunk/Source/WebCore

CRASH in SourceBuffer::removeCodedFrames()
https://bugs.webkit.org/show_bug.cgi?id=204248

Reviewed by Eric Carlson.

Speculative fix for rare crash. It's possible that the startTime and endTime inputs to
removeCodedFrames() are out-of-order, which could lead to iterating off the end of the
SampleMap. Verify that startTime < endTime and bail out early if not true.

  • Modules/mediasource/SourceBuffer.cpp:

(WebCore::SourceBuffer::removeCodedFrames):

3:54 PM Changeset in webkit [252510] by Chris Dumez
  • 2 edits in trunk/Source/WebKit

Add more release logging for network load restarts
https://bugs.webkit.org/show_bug.cgi?id=204234

Reviewed by Youenn Fablet.

  • NetworkProcess/NetworkResourceLoader.cpp:

(WebKit::NetworkResourceLoader::willSendRedirectedRequest):
(WebKit::NetworkResourceLoader::restartNetworkLoad):
(WebKit::NetworkResourceLoader::continueWillSendRequest):
(WebKit::NetworkResourceLoader::serviceWorkerDidNotHandle):

3:43 PM Changeset in webkit [252509] by Alan Coon
  • 1 copy in tags/Safari-608.4.9.0.5

Tag Safari-608.4.9.0.5.

3:38 PM Changeset in webkit [252508] by pvollan@apple.com
  • 2 edits in trunk/Source/WebKit

[iOS] Fix sysctl-read sandbox violation
https://bugs.webkit.org/show_bug.cgi?id=204238
<rdar://problem/57198954>

Reviewed by Brent Fulgham.

There is missing a rule for reading a specific sysctl property in the WebContent process on iOS.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
3:22 PM Changeset in webkit [252507] by pvollan@apple.com
  • 2 edits in trunk/LayoutTests

Layout test animations/no-style-recalc-during-accelerated-animation.html is failing
https://bugs.webkit.org/show_bug.cgi?id=204253

Unreviewed test gardening.

  • platform/win/TestExpectations:
3:19 PM Changeset in webkit [252506] by aakash_jain@apple.com
  • 2 edits in trunk/Tools

[EWS] Update windows bots in config.json
https://bugs.webkit.org/show_bug.cgi?id=204245

Reviewed by Jonathan Bedard.

  • BuildSlaveSupport/ews-build/config.json:
3:15 PM Changeset in webkit [252505] by aakash_jain@apple.com
  • 2 edits in trunk/Tools

Windows EWS should not upload archives
https://bugs.webkit.org/show_bug.cgi?id=204229

Reviewed by Jonathan Bedard.

  • BuildSlaveSupport/ews-build/factories.py:
3:05 PM Changeset in webkit [252504] by rniwa@webkit.org
  • 4 edits
    2 adds in trunk

JS wrappers of scroll event targets can get prematurely collected by GC
https://bugs.webkit.org/show_bug.cgi?id=204219

Reviewed by Keith Miller.

Source/WebCore:

This patch addresses the bug that the JS wrappers of the pending scroll event targets can be
collected by GC before scroll events are fired. This bug has always existed but it's worse after
r252205 because there is more of a time delay between an element is scrolled in RenderLayer sense
and when the corresponding scroll event is fired on the element.

Fixed the bug by using GCReachableRef to store the pending scroll event targets introduced in r252205
to keep the JS wrappers of those elements & document alive.

Test: fast/scrolling/scrolling-event-target-gc.html

  • dom/Document.cpp:

(WebCore::Document::PendingScrollEventTargetList): Added. Wraps Vector<GCReachableRef<ContainerNode>>
to avoid including GCReachableRef.h in Document.h.
(WebCore::Document::commonTeardown): Clear m_pendingScrollEventTargetList to avoid document leaks.
(WebCore::Document::addPendingScrollEventTarget):
(WebCore::Document::runScrollSteps):

  • dom/Document.h:

LayoutTests:

Added a regression test for adding elements as pending scroll event targets,
and removing them from the document before scroll events are fired.

  • fast/scrolling/scrolling-event-target-gc-expected.txt: Added.
  • fast/scrolling/scrolling-event-target-gc.html: Added.
3:00 PM Changeset in webkit [252503] by jer.noble@apple.com
  • 2 edits in trunk/Source/WebCore

Unreviewed Mojave build fix after r252501; wrap calls to AVContentKeyRequest.options in
ALLOW_NEW_API_WITHOUT_GUARDS_BEGIN / ALLOW_NEW_API_WITHOUT_GUARDS_END.

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

(WebCore::initTypeForRequest):
(WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::didProvideRequests):

2:10 PM Changeset in webkit [252502] by mark.lam@apple.com
  • 9 edits in trunk/Source/JavaScriptCore

Rename InPlaceAbstractState's m_foundConstant to m_shouldTryConstantFolding.
https://bugs.webkit.org/show_bug.cgi?id=204244

Reviewed by Saam Barati.

m_shouldTryConstantFolding is a more accurate description of what this flag really
means i.e. that the AbstractInterpreter thinks that we may benefit from constant
folding, and therefore, should attempt it. It doesn't always mean that it found
constants to be folded. It also doesn't guarantee that the constant folding phase
will succeed in folding any constants.

  • dfg/DFGAbstractInterpreter.h:

(JSC::DFG::AbstractInterpreter::setConstant):

  • dfg/DFGAbstractInterpreterInlines.h:

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

  • dfg/DFGAtTailAbstractState.h:

(JSC::DFG::AtTailAbstractState::setShouldTryConstantFolding):
(JSC::DFG::AtTailAbstractState::setFoundConstants): Deleted.

  • dfg/DFGBasicBlock.cpp:

(JSC::DFG::BasicBlock::BasicBlock):

  • dfg/DFGBasicBlock.h:
  • dfg/DFGConstantFoldingPhase.cpp:

(JSC::DFG::ConstantFoldingPhase::run):

  • dfg/DFGInPlaceAbstractState.cpp:

(JSC::DFG::InPlaceAbstractState::beginBasicBlock):
(JSC::DFG::InPlaceAbstractState::initialize):
(JSC::DFG::InPlaceAbstractState::endBasicBlock):

  • dfg/DFGInPlaceAbstractState.h:

(JSC::DFG::InPlaceAbstractState::setShouldTryConstantFolding):
(JSC::DFG::InPlaceAbstractState::setFoundConstants): Deleted.

1:57 PM Changeset in webkit [252501] by jer.noble@apple.com
  • 3 edits in trunk/Source/WebCore

REGRESSION(r251895) - 'sinf' init data flow generates 'cenc' style encrypted messages
https://bugs.webkit.org/show_bug.cgi?id=204239
<rdar://problem/57166445>

Reviewed by Eric Carlson.

Track what kind of initialization data was used for a given AVContentKeyRequest, and
generate that initialiazation data type of MediaKeySession message.

  • platform/graphics/avfoundation/objc/CDMInstanceFairPlayStreamingAVFObjC.h:
  • platform/graphics/avfoundation/objc/CDMInstanceFairPlayStreamingAVFObjC.mm:

(WebCore::keyIDsForRequest):
(WebCore::initTypeForRequest):
(WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::requestLicense):
(WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::updateLicense):
(WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::closeSession):
(WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::didProvideRequest):
(WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::didProvideRequests):
(WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::didProvideRenewingRequest):
(WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::didFailToProvideRequest):
(WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::requestDidSucceed):
(WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::nextRequest):
(WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::lastKeyRequest const):
(WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::keyStatuses const):

1:51 PM Changeset in webkit [252500] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebKit

Add SPI to clear web process cache
https://bugs.webkit.org/show_bug.cgi?id=204210

Patch by Benjamin Nham <Ben Nham> on 2019-11-15
Reviewed by Chris Dumez.

This adds an SPI to clear cached web processes. The intended use case is to add a lukewarm mode to
Mac PLT5 in which web pages load in a new WebProcess and load resources from the disk cache.

  • UIProcess/API/Cocoa/WKProcessPool.mm:

(-[WKProcessPool _clearWebProcessCache]):

  • UIProcess/API/Cocoa/WKProcessPoolPrivate.h:

(-[WKProcessPool _clearWebProcessCache]):

1:35 PM Changeset in webkit [252499] by pvollan@apple.com
  • 2 edits in trunk/Source/WebKit

[iOS] Fix sandbox violation in the WebContent process related to WebRTC audio captures
https://bugs.webkit.org/show_bug.cgi?id=204240
<rdar://problem/57170333>

Reviewed by Brent Fulgham.

The WebContent process needs access to read a new audio related preference domain.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
12:13 PM Changeset in webkit [252498] by Pablo Saavedra
  • 2 edits in trunk/LayoutTests

[WPE][GTK] Gardening after r252487
https://bugs.webkit.org/show_bug.cgi?id=204235

Unreviewed WPE and GTK+ gardening after r252487.

  • platform/gtk/TestExpectations:
12:08 PM Changeset in webkit [252497] by Chris Dumez
  • 3 edits in trunk/Source/WebCore

Regression: http/tests/navigation/page-cache-getUserMedia-pending-promise.html is crashing in Debug
https://bugs.webkit.org/show_bug.cgi?id=204232

Reviewed by Eric Carlson.

No new tests, covered by http/tests/navigation/page-cache-getUserMedia-pending-promise.html.

  • Modules/mediastream/MediaStreamTrack.cpp:

(WebCore::MediaStreamTrack::create):
(WebCore::MediaStreamTrack::MediaStreamTrack):
Call suspendIfNeeded() in the factory and not in the constructor. It is never safe to call
suspendIfNeeded() from inside the constructor because it may call the suspend() method, which
may ref |this|.

  • Modules/mediastream/UserMediaRequest.cpp:

(WebCore::UserMediaRequest::allow):
Queue a task on the HTML event loop when the user media request is approved. This way, if the
page is suspended when this happens, we delay constructing the media stream (among other things)
until the page actually resumes.

11:56 AM Changeset in webkit [252496] by Wenson Hsieh
  • 6 edits in trunk/LayoutTests

[iOS] Two layout tests in editing/selection/ios time out when waiting for selection views to appear
https://bugs.webkit.org/show_bug.cgi?id=204231
<rdar://problem/56096961>

Reviewed by Megan Gardner.

Adjust these layout tests to select text by long pressing, instead of selecting text by tapping a button that
programmatically selects a range of text. The latter only results in platform selection views if the user (or,
in this case, a previous test in the same web view) has already manually selected text. This isn't guaranteed,
given that the previous test may have timed out, or may have different test options which require a new
WKWebView to have been created.

  • editing/selection/ios/clear-selection-after-tap-in-large-selected-non-editable-text.html:
  • editing/selection/ios/toggle-callout-bar-after-tap-in-selected-non-editable-text-expected.txt:
  • editing/selection/ios/toggle-callout-bar-after-tap-in-selected-non-editable-text.html:
  • resources/ui-helper.js:

(window.UIHelper.async.longPressElement):
(window.UIHelper.async.longPressAtPoint.return.new.Promise.):
(window.UIHelper.async.longPressAtPoint.return.new.Promise):
(window.UIHelper.async.longPressAtPoint):

Also add helper methods in ui-helper.js to trigger long press gestures, so that we can start moving away from
the helper methods in basic-gestures.js.

(window.UIHelper):

11:50 AM Changeset in webkit [252495] by Devin Rousso
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: Local Overrides: add context menu item to reveal the local override when a resource is loaded from it
https://bugs.webkit.org/show_bug.cgi?id=204206

Reviewed by Joseph Pecoraro.

  • UserInterface/Views/ContextMenuUtilities.js:

(WI.appendContextMenuItemsForSourceCode):

  • Localizations/en.lproj/localizedStrings.js:
11:39 AM Changeset in webkit [252494] by Alan Coon
  • 7 edits in tags/Safari-609.1.10.2/Source

Versioning.

11:38 AM Changeset in webkit [252493] by Alan Coon
  • 1 copy in tags/Safari-609.1.10.2

New tag.

11:36 AM Changeset in webkit [252492] by commit-queue@webkit.org
  • 28 edits in trunk/Source/WebKit

Reduce structure copies when creating an API::FrameInfo
https://bugs.webkit.org/show_bug.cgi?id=204199

Patch by Alex Christensen <achristensen@webkit.org> on 2019-11-15
Reviewed by Brady Eidson.

Use WTFMove and references where possible. This is cleanup needed for a future patch.

  • Shared/FrameInfoData.cpp:

(WebKit::FrameInfoData::decode):

  • Shared/FrameInfoData.h:
  • UIProcess/API/APIFrameInfo.cpp:

(API::FrameInfo::create):
(API::FrameInfo::FrameInfo):
(API::FrameInfo::~FrameInfo): Deleted.
(API::FrameInfo::clearPage): Deleted.

  • UIProcess/API/APIFrameInfo.h:
  • UIProcess/API/APINavigationClient.h:

(API::NavigationClient::didFailProvisionalLoadInSubframeWithError):

  • UIProcess/API/APIUIClient.h:

(API::UIClient::runJavaScriptAlert):
(API::UIClient::runJavaScriptConfirm):
(API::UIClient::runJavaScriptPrompt):
(API::UIClient::runBeforeUnloadConfirmPanel):
(API::UIClient::runOpenPanel):
(API::UIClient::runWebAuthenticationPanel):

  • UIProcess/API/C/WKFrame.cpp:

(WKFrameCreateFrameInfo):

  • UIProcess/API/C/WKPage.cpp:

(WKPageSetPageUIClient):
(WKPageSetPageNavigationClient):

  • UIProcess/API/Cocoa/WKFrameInfo.mm:

(-[WKFrameInfo webView]):

  • UIProcess/API/Cocoa/WKUserContentController.mm:
  • UIProcess/Cocoa/NavigationState.h:
  • UIProcess/Cocoa/NavigationState.mm:

(WebKit::NavigationState::NavigationClient::didFailProvisionalLoadInSubframeWithError):

  • UIProcess/Cocoa/UIDelegate.h:
  • UIProcess/Cocoa/UIDelegate.mm:

(WebKit::UIDelegate::UIClient::runJavaScriptAlert):
(WebKit::UIDelegate::UIClient::runJavaScriptConfirm):
(WebKit::UIDelegate::UIClient::runJavaScriptPrompt):
(WebKit::UIDelegate::UIClient::decidePolicyForGeolocationPermissionRequest):
(WebKit::UIDelegate::UIClient::runBeforeUnloadConfirmPanel):
(WebKit::UIDelegate::UIClient::runOpenPanel):
(WebKit::UIDelegate::UIClient::runWebAuthenticationPanel):

  • UIProcess/ProvisionalPageProxy.cpp:

(WebKit::ProvisionalPageProxy::didFailProvisionalLoadForFrame):
(WebKit::ProvisionalPageProxy::decidePolicyForResponse):

  • UIProcess/ProvisionalPageProxy.h:
  • UIProcess/UserContent/WebScriptMessageHandler.h:
  • UIProcess/UserContent/WebUserContentControllerProxy.cpp:

(WebKit::WebUserContentControllerProxy::didPostMessage):

  • UIProcess/UserContent/WebUserContentControllerProxy.h:
  • UIProcess/WebAuthentication/AuthenticatorManager.cpp:

(WebKit::AuthenticatorManager::runPanel):

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::didFailProvisionalLoadForFrame):
(WebKit::WebPageProxy::didFailProvisionalLoadForFrameShared):
(WebKit::WebPageProxy::decidePolicyForNavigationAction):
(WebKit::WebPageProxy::decidePolicyForNewWindowAction):
(WebKit::WebPageProxy::decidePolicyForResponse):
(WebKit::WebPageProxy::decidePolicyForResponseShared):
(WebKit::WebPageProxy::createNewPage):
(WebKit::WebPageProxy::runJavaScriptAlert):
(WebKit::WebPageProxy::runJavaScriptConfirm):
(WebKit::WebPageProxy::runJavaScriptPrompt):
(WebKit::WebPageProxy::runBeforeUnloadConfirmPanel):
(WebKit::WebPageProxy::runOpenPanel):

  • UIProcess/WebPageProxy.h:
11:34 AM Changeset in webkit [252491] by Devin Rousso
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Sources: "Style Sheet" appears twice in the resource type scope bar
https://bugs.webkit.org/show_bug.cgi?id=204172

Reviewed by Joseph Pecoraro.

  • UserInterface/Models/Resource.js:

(WI.Resource):
(WI.Resource.prototype.updateForResponse):
Remove compatibility WI.Resource.Type.Stylesheet (which previously existed since the
protocol values for Page.ResourceType match the keys) and instead add compatibility cases
at the necessary callsites.

11:18 AM Changeset in webkit [252490] by Jonathan Bedard
  • 3 edits in trunk/Tools

results.webkit.org: Report JSC tests to the results database
https://bugs.webkit.org/show_bug.cgi?id=204091
<rdar://problem/49778900>

Reviewed by Aakash Jain.

Upload results to the specified results database.

DEMONSTRATION OF FAILURE IN EWS BEHAVIOR, DO NOT LAND!

  • Scripts/run-javascriptcore-tests:

(runTest): Parse binary output to mark individual tests as passing
or failing.
(uploadConfiguration): Return a hash map representing the configuration
For this specific test run.
(uploadResults): If a report URL is defined, upload test results to that URL.

  • Scripts/webkitdirs.pm:

(splitVersionString): splitVersionString is supposed to be a generally used
function, so should not set a global variable.
(determineOSXVersion): Remove newline from version number.

10:00 AM Changeset in webkit [252489] by Jonathan Bedard
  • 3 edits in trunk/Tools

run-webkit-tests loads committers.py 4 times, taking about 40ms
https://bugs.webkit.org/show_bug.cgi?id=204211

Reviewed by Aakash Jain.

  • Scripts/webkitpy/common/checkout/changelog.py:

(ChangeLogEntry): Don't create CommitterList on import.

  • Scripts/webkitpy/common/checkout/commitinfo.py:

(CommitInfo.init): Ditto.

9:14 AM Changeset in webkit [252488] by Alan Coon
  • 7 edits in branches/safari-608.4.9.0-branch/Source

Versioning.

9:00 AM Changeset in webkit [252487] by Alan Bujtas
  • 10 edits in trunk/Source/WebCore

[LFC][Invalidation] Reuse FrameViewLayoutContext::m_layoutState for incremental layout
https://bugs.webkit.org/show_bug.cgi?id=204225
<rdar://problem/57227259>

Reviewed by Antti Koivisto.

Let's rely on the invalidation logic instead of reconstructing the layout state on each layout frame.

  • layout/LayoutContext.cpp:

(WebCore::Layout::initializeLayoutState):
(WebCore::Layout::LayoutContext::runLayoutAndVerify):
(WebCore::Layout::LayoutContext::createLayoutState):

  • layout/LayoutContext.h:
  • layout/LayoutState.h:

(WebCore::Layout::LayoutState::rootRenderer const):

  • layout/Verification.cpp:

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

  • page/FrameView.cpp:

(WebCore::FrameView::paintContents):

  • page/FrameViewLayoutContext.cpp:

(WebCore::FrameViewLayoutContext::layoutUsingFormattingContext):

  • page/FrameViewLayoutContext.h:

(WebCore::FrameViewLayoutContext::layoutFormattingState const):
(WebCore::FrameViewLayoutContext::initialLayoutState const): Deleted.

  • rendering/updating/RenderTreeUpdater.cpp:

(WebCore::RenderTreeUpdater::updateRendererStyle):

8:58 AM Changeset in webkit [252486] by Simon Fraser
  • 4 edits
    2 adds in trunk

The image is flashing if falls out and has an animation transform: rotate
https://bugs.webkit.org/show_bug.cgi?id=203613

Reviewed by Antti Koivisto.
Source/WebCore:

Code added in r218735 that maps the animation extent through the current animating transform
worked for translations, but not rotation where anchor point matters. This matrix
needs to take anchor point into account.

Shared some code that applies anchor point to a matrix.

Test: compositing/backing/backing-store-attachment-with-rotation.html

  • platform/graphics/ca/GraphicsLayerCA.cpp:

(WebCore::GraphicsLayerCA::layerTransform const):
(WebCore::GraphicsLayerCA::transformByApplyingAnchorPoint const):
(WebCore::GraphicsLayerCA::setVisibleAndCoverageRects):

  • platform/graphics/ca/GraphicsLayerCA.h:

LayoutTests:

  • compositing/backing/backing-store-attachment-with-rotation-expected.txt: Added.
  • compositing/backing/backing-store-attachment-with-rotation.html: Added.
8:39 AM Changeset in webkit [252485] by aakash_jain@apple.com
  • 2 edits in trunk/Tools

[ews] Perform validation of patch before retrying JSC tests
https://bugs.webkit.org/show_bug.cgi?id=204222

Reviewed by Jonathan Bedard.

  • BuildSlaveSupport/ews-build/steps.py:

(RunJavaScriptCoreTests.evaluateCommand): Add a ValidatePatch step before retrying.
(ReRunJavaScriptCoreTests.evaluateCommand): Ditto.

8:36 AM Changeset in webkit [252484] by Chris Dumez
  • 2 edits in trunk/Source/WebKit

Regression(r244361) iOS: Layout test http/tests/quicklook/rtf-document-domain-is-empty-string.html is crashing
https://bugs.webkit.org/show_bug.cgi?id=204205
<rdar://problem/51864314>

Reviewed by Alex Christensen.

In this test, NSHTMLWriter ends up creating a WebArchive providing file:///index.html as URL. The page's script
then calls document.open(), which triggers a DidExplicitOpenForFrame() IPC to the UIProcess with this URL.
This trips our MESSAGE_CHECK_URL() check in the UIProcess when this path is not within the WebContent process'
sandbox, and we kill the WebContent process. To address the issue, this patch replaces the MESSAGE_CHECK_URL()
with an if check and an early return so that we ignore the IPC if the URL does not make sense, without actually
terminating the WebContent process.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::didExplicitOpenForFrame):

7:41 AM Changeset in webkit [252483] by Alan Bujtas
  • 5 edits in trunk/Source/WebCore

[LFC][Invalidation] Introduce LayoutBox::updateStyle
https://bugs.webkit.org/show_bug.cgi?id=204224
<rdar://problem/57226354>

Reviewed by Antti Koivisto.

This is in preparation for being able to do incremental layouts on partial style change (currently we re-build the tree on each layout frame).

  • layout/LayoutState.h:

(WebCore::Layout::LayoutState::layoutBoxForRenderer const):

  • layout/layouttree/LayoutBox.cpp:

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

  • layout/layouttree/LayoutBox.h:
  • rendering/updating/RenderTreeUpdater.cpp:

(WebCore::RenderTreeUpdater::updateRendererStyle):

6:26 AM Changeset in webkit [252482] by Alan Bujtas
  • 6 edits in trunk/Source/WebCore

[LFC][Invalidation] Add a temporary RenderObject to Layout::Box map
https://bugs.webkit.org/show_bug.cgi?id=204218
<rdar://problem/57215201>

Reviewed by Antti Koivisto.

LayoutTreeContent::renderObjectToLayoutBox map enables us to find the associated Layout::Box when style changes on a renderer.
This is temporary until after we implement fully integrate LFC with the style system.

  • layout/LayoutContext.cpp:

(WebCore::Layout::LayoutContext::runLayoutAndVerify):

  • layout/LayoutState.cpp:

(WebCore::Layout::LayoutState::LayoutState):

  • layout/LayoutState.h:

(WebCore::Layout::LayoutState::root const):

  • layout/blockformatting/BlockFormattingContext.cpp:

(WebCore::Layout::BlockFormattingContext::computeHeightAndMargin):

  • layout/layouttree/LayoutTreeBuilder.cpp:

(WebCore::Layout::TreeBuilder::buildLayoutTree):
(WebCore::Layout::LayoutTreeContent::LayoutTreeContent):
(WebCore::Layout::TreeBuilder::TreeBuilder):
(WebCore::Layout::TreeBuilder::buildTree):
(WebCore::Layout::TreeBuilder::createLayoutBox):
(WebCore::Layout::TreeBuilder::buildTableStructure):
(WebCore::Layout::TreeBuilder::buildSubTree):
(WebCore::Layout::printLayoutTreeForLiveDocuments):
(WebCore::Layout::TreeBuilder::createLayoutTree): Deleted.
(WebCore::Layout::TreeBuilder::createTableStructure): Deleted.
(WebCore::Layout::TreeBuilder::createSubTree): Deleted.

  • layout/layouttree/LayoutTreeBuilder.h:
1:28 AM Changeset in webkit [252481] by Philippe Normand
  • 2 edits in trunk/Source/ThirdParty/libwebrtc

Unreviewed, GTK/WPE Debug build fix after r252472.

  • CMakeLists.txt:
12:29 AM Changeset in webkit [252480] by commit-queue@webkit.org
  • 5 edits in trunk/Source/WebCore

IDL: remove [PrimaryGlobal]
https://bugs.webkit.org/show_bug.cgi?id=180469

Patch by Rob Buis <rbuis@igalia.com> on 2019-11-15
Reviewed by Sam Weinig.

Remove support for [PrimaryGlobal] from the code
generator and the existing IDL.

  • bindings/scripts/CodeGeneratorJS.pm:

(IsGlobalOrPrimaryGlobalInterface):

  • page/DOMWindow.idl:
  • page/RemoteDOMWindow.idl:

Nov 14, 2019:

10:50 PM Changeset in webkit [252479] by sbarati@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Make gcSafeMemcpy/gcSafeMemmove/gcSafeZeroMemory work properly on arm64_32
https://bugs.webkit.org/show_bug.cgi?id=204217

Reviewed by Mark Lam.

We need to be explicit in the code about using 64-bit types and pointer types.

  • heap/GCMemoryOperations.h:

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

7:26 PM Changeset in webkit [252478] by Wenson Hsieh
  • 3 edits
    2 adds in trunk

Crash when setting HTMLInputElement.checked for a disconnected radio button in a shadow root
https://bugs.webkit.org/show_bug.cgi?id=204208
<rdar://problem/57045830>

Reviewed by Tim Horton.

Source/WebCore:

r251110 refactored logic in RadioButtonGroup::updateCheckedState, such that it assumes that m_nameToGroupMap
always contains an entry for the given input element's name. Prior to r251110, it would bail if m_nameToGroupMap
didn't exist. In this particular case, a named input element is added to a shadow root that is disconnected from
the document. This means that in HTMLInputElement::didFinishInsertingNode(), we will avoid adding the element to
the radio button group, even though it has a tree scope due to the isConnected() check.

Later, when we try to set the checked attribute, we invoke updateCheckedState which sees that we have a tree
scope and assumes that we must have previously added the input element to the radio button map; this leads to a
nullptr deref, as the map is empty. Thus, to fix this, we change the isConnected() check to isInTreeScope().

Test: fast/forms/radio-input-in-shadow-root-crash.html

  • html/HTMLInputElement.cpp:

(WebCore::HTMLInputElement::didFinishInsertingNode):

LayoutTests:

Adds a new layout test to verify that we don't crash in this scenario.

  • fast/forms/radio-input-in-shadow-root-crash-expected.txt: Added.
  • fast/forms/radio-input-in-shadow-root-crash.html: Added.

2019-11-07 Youenn Fablet <youenn@apple.com>

Update libwebrtc to M78
https://bugs.webkit.org/show_bug.cgi?id=203897

Reviewed by Eric Carlson.

  • webrtc/simulcast-h264.html:

Update test to remove rid information from answer.

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

Python 3: Add support in webkitpy.layout_tests.layout_package
https://bugs.webkit.org/show_bug.cgi?id=204212

Reviewed by Stephanie Lewis.

  • Scripts/test-webkitpy-python3: Add webkitpy.layout_tests.layout_package.
  • Scripts/webkitpy/layout_tests/layout_package/json_results_generator.py:

(convert_trie_to_flat_paths): Use compatible iteritems.
(JSONResultsGenerator._insert_failure_summaries): Use compatible iterkeys.
(JSONResultsGenerator._convert_json_to_current_version): Use compatible iteritems.
(JSONResultsGenerator._convert_tests_to_trie): Use compatible iterkeys.

  • Scripts/webkitpy/layout_tests/layout_package/json_results_generator_unittest.py:

(JSONGeneratorTest._verify_json_results): Use items instead of iteritems.
(JSONGeneratorTest.test_test_timings_trie): Python 3's json decoder is sensitive to ordering.

6:57 PM Changeset in webkit [252476] by commit-queue@webkit.org
  • 6 edits
    2 adds in trunk/Tools

Flaky API Test TestWebKitAPI.ServiceWorkers.ThrottleCrash
https://bugs.webkit.org/show_bug.cgi?id=203734

Patch by Alex Christensen <achristensen@webkit.org> on 2019-11-14
Reviewed by Youenn Fablet.

Some API tests using TCPServer have multiple concurrent HTTP requests in flight at the same time.
When this happens, sometimes NSURLSession will make multiple TCP connections to the same server.
TCPServer is not the right tool for this because it handles all its connections manually.
To make the test server agnostic to how many connections are initiated, I introduce HTTPServer,
which uses the Network framework to handle as many responses and as many connections as happen.

  • TestWebKitAPI/Configurations/TestWebKitAPI.xcconfig:
  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKitCocoa/ServiceWorkerBasic.mm:
  • TestWebKitAPI/Tests/WebKitCocoa/WebsiteDataStoreCustomPaths.mm:

(TEST):

  • TestWebKitAPI/cocoa/HTTPServer.h: Added.

(TestWebKitAPI::HTTPServer::HTTPResponse::HTTPResponse):

  • TestWebKitAPI/cocoa/HTTPServer.mm: Added.

(TestWebKitAPI::HTTPServer::HTTPServer):
(TestWebKitAPI::HTTPServer::respondToRequests):
(TestWebKitAPI::HTTPServer::port const):
(TestWebKitAPI::HTTPServer::request const):

  • TestWebKitAPI/config.h:
6:56 PM Changeset in webkit [252475] by Jonathan Bedard
  • 4 edits in trunk/Tools

Python 3: Add support in webkitpy.layout_tests.servers
https://bugs.webkit.org/show_bug.cgi?id=204209

Reviewed by Stephanie Lewis.

  • Scripts/test-webkitpy-python3: Add webkitpy.layout_tests.servers.
  • Scripts/webkitpy/layout_tests/servers/apache_http_server.py:

(LayoutTestApacheHttpd.init): Use compatible iteritems.

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

(Lighttpd._prepare_config): Ditto.

6:55 PM Changeset in webkit [252474] by jiewen_tan@apple.com
  • 2 edits in trunk/Source/WebCore

Unreviewed, update the feature status of WebAuthn

  • features.json:
6:12 PM Changeset in webkit [252473] by youenn@apple.com
  • 1248 adds in trunk/Source/ThirdParty/libwebrtc

Add missing file from https://trac.webkit.org/changeset/252472
https://bugs.webkit.org/show_bug.cgi?id=203897

Unreviewed, fixing the build

5:03 PM Changeset in webkit [252472] by youenn@apple.com
  • 2540 edits in trunk

Update libwebrtc to M78
https://bugs.webkit.org/show_bug.cgi?id=203897

Patch by Youenn Fablet <youenn@apple.com> on 2019-11-07

LayoutTest/ChangeLog

  • webrtc/simulcast-h264.html: Update test to remove rid information from answer.

LayoutTests/imported/w3c/ChangeLog

  • web-platform-tests/webrtc/RTCPeerConnection-createDataChannel-expected.txt:
  • web-platform-tests/webrtc/RTCRtpSender-getStats.https-expected.txt:

Source/ThirdParty/libwebrtc/ChangeLog

  • webrtc: Updated

Source/WebCore/ChangeLog

Update include paths and binding code.
Covered by existing tests.

  • Modules/mediastream/RTCStatsReport.idl: Removed no longer standard codec stat.
  • Modules/mediastream/libwebrtc/LibWebRTCCertificateGenerator.cpp:
  • Modules/mediastream/libwebrtc/LibWebRTCDataChannelHandler.h:
  • Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.cpp: (WebCore::LibWebRTCMediaEndpoint::setConfiguration):
  • Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.h:
  • Modules/mediastream/libwebrtc/LibWebRTCObservers.h:
  • Modules/mediastream/libwebrtc/LibWebRTCRtpReceiverBackend.h:
  • Modules/mediastream/libwebrtc/LibWebRTCRtpSenderBackend.h:
  • Modules/mediastream/libwebrtc/LibWebRTCRtpTransceiverBackend.h:
  • Modules/mediastream/libwebrtc/LibWebRTCStatsCollector.cpp: (WebCore::fillInboundRTPStreamStats): (WebCore::fillOutboundRTPStreamStats): (WebCore::fillRTCCodecStats):
  • Modules/mediastream/libwebrtc/LibWebRTCStatsCollector.h:
  • Modules/mediastream/libwebrtc/LibWebRTCUtils.cpp:
  • platform/mediastream/RealtimeIncomingAudioSource.h:
  • platform/mediastream/RealtimeIncomingVideoSource.h:
  • platform/mediastream/RealtimeOutgoingAudioSource.h:
  • platform/mediastream/RealtimeOutgoingVideoSource.h:
  • platform/mediastream/gstreamer/GStreamerCapturer.cpp:
  • platform/mediastream/gstreamer/GStreamerVideoCaptureSource.cpp:
  • platform/mediastream/gstreamer/GStreamerVideoFrameLibWebRTC.h:
  • platform/mediastream/libwebrtc/GStreamerVideoDecoderFactory.cpp:
  • platform/mediastream/libwebrtc/GStreamerVideoEncoderFactory.cpp:
  • platform/mediastream/libwebrtc/LibWebRTCAudioModule.h:
  • platform/mediastream/libwebrtc/LibWebRTCDTMFSenderBackend.h:
  • platform/mediastream/libwebrtc/LibWebRTCProvider.cpp: (WebCore::BasicPacketSocketFactory::CreateClientTcpSocket):
  • platform/mediastream/libwebrtc/LibWebRTCProvider.h:
  • platform/mediastream/libwebrtc/LibWebRTCProviderCocoa.cpp:
  • testing/MockLibWebRTCPeerConnection.cpp:
  • testing/MockLibWebRTCPeerConnection.h:

Source/WebKit/ChangeLog

  • NetworkProcess/webrtc/LibWebRTCSocketClient.h:
  • NetworkProcess/webrtc/NetworkRTCProvider.cpp: (WebKit::NetworkRTCProvider::createClientTCPSocket):
  • NetworkProcess/webrtc/NetworkRTCProvider.h:
  • NetworkProcess/webrtc/NetworkRTCProvider.mm:
  • NetworkProcess/webrtc/NetworkRTCSocket.h:
  • Shared/RTCPacketOptions.h:
  • WebProcess/Network/webrtc/LibWebRTCProvider.cpp: (WebKit::RTCSocketFactory::CreateClientTcpSocket):
  • WebProcess/Network/webrtc/LibWebRTCResolver.h:
  • WebProcess/Network/webrtc/LibWebRTCSocket.h:
  • WebProcess/Network/webrtc/LibWebRTCSocketFactory.cpp: (WebKit::LibWebRTCSocketFactory::createClientTcpSocket):
  • WebProcess/Network/webrtc/LibWebRTCSocketFactory.h:
  • WebProcess/Network/webrtc/WebRTCMonitor.cpp:
  • WebProcess/Network/webrtc/WebRTCMonitor.h:
5:02 PM Changeset in webkit [252471] by Megan Gardner
  • 2 edits in trunk/Tools

Fix another build error from r252449
https://bugs.webkit.org/show_bug.cgi?id=204173

Unreviewed Build Fix for r252449

  • TestWebKitAPI/ios/UIKitSPI.h:
4:34 PM Changeset in webkit [252470] by eric.carlson@apple.com
  • 9 edits in trunk/Source/WebCore

[iOS] Audio capture fails when a track is unmuted
https://bugs.webkit.org/show_bug.cgi?id=204202
<rdar://problem/57005820>

Reviewed by Youenn Fablet.

Tested manually.

  • platform/audio/PlatformMediaSession.cpp:

(WebCore::PlatformMediaSession::canProduceAudioChanged): Remove unused "client" parameter.

  • platform/audio/PlatformMediaSessionManager.cpp:

(WebCore::PlatformMediaSessionManager::sessionCanProduceAudioChanged): Ditto.

  • platform/audio/PlatformMediaSessionManager.h:
  • platform/audio/cocoa/MediaSessionManagerCocoa.h:
  • platform/audio/cocoa/MediaSessionManagerCocoa.mm:

(MediaSessionManagerCocoa::sessionCanProduceAudioChanged): Ditto.

  • platform/mediastream/RealtimeMediaSource.cpp:

(WebCore::RealtimeMediaSource::setMuted): Change m_muted before calling start/stop so the
muted method will return the correct value.

  • platform/mediastream/mac/CoreAudioCaptureSource.cpp:

(WebCore::CoreAudioSharedUnit::startInternal): Call sessionCanProduceAudioChanged before
starting the audio unit so the audio session category is set correctly. ASSERT if the
audio session category is incorrect.

  • platform/mock/MockRealtimeAudioSource.cpp:

(WebCore::MockRealtimeAudioSource::startProducingData): Ditto.

4:31 PM Changeset in webkit [252469] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit

Make NetworkResourceLoader::didReceiveResponse more straightforward after r244700
https://bugs.webkit.org/show_bug.cgi?id=204134

Patch by Alex Christensen <achristensen@webkit.org> on 2019-11-14
Reviewed by Youenn Fablet.

If m_isKeptAlive is true, we do not want to receive any HTTP body.
Rather than storing the CompletionHandler and relying on the destructor to call it, just call it.

No change in behavior.

  • NetworkProcess/NetworkResourceLoader.cpp:

(WebKit::NetworkResourceLoader::didReceiveResponse):

4:16 PM Changeset in webkit [252468] by Jonathan Bedard
  • 13 edits in trunk/Tools

Python 3: Add support in webkitpy.style
https://bugs.webkit.org/show_bug.cgi?id=203762

Reviewed by Stephanie Lewis.

  • Scripts/check-webkit-style: Remove Python 2 version check.
  • Scripts/test-webkitpy-python3: Add webkitpy.style.
  • Scripts/webkitpy/style/checker.py: Use explicit imports.
  • Scripts/webkitpy/style/checker_unittest.py:

(GlobalVariablesTest.test_max_reports_per_category): Use keys() over iterkeys.

  • Scripts/webkitpy/style/checkers/contributors.py: Use explicit imports.
  • Scripts/webkitpy/style/checkers/test_expectations.py:

(TestExpectationsChecker._should_log_linter_warning): Use compatible iteritems.

  • Scripts/webkitpy/style/error_handlers_unittest.py: Use explicit imports.
  • Scripts/webkitpy/style/filter.py:

(FilterConfiguration._get_path_specific_lower): Return list instead of iterator.
(FilterConfiguration._filter_from_path): Avoid confusion with filter builtin.

  • Scripts/webkitpy/style/filter_unittest.py: Use explicit imports.
  • Scripts/webkitpy/style/main.py:

(CheckWebKitStyle._engage_awesome_stderr_hacks): No reason to apply encoding to stderr
in Python 3.

  • Scripts/webkitpy/style/main_unittest.py: Use explicit imports.
  • Scripts/webkitpy/style/patchreader.py:

(PatchReader.check): Ensure that the provided patch is a string, use items over iteritems.

2:45 PM Changeset in webkit [252467] by commit-queue@webkit.org
  • 13 edits in trunk

The CSSParser should not consume negative or unit-less lengths for the SVG properties 'r', 'rx' and 'ry'
https://bugs.webkit.org/show_bug.cgi?id=204200

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

LayoutTests/imported/w3c:

  • web-platform-tests/svg/geometry/parsing/r-computed-expected.txt:
  • web-platform-tests/svg/geometry/parsing/r-invalid-expected.txt:
  • web-platform-tests/svg/geometry/parsing/rx-computed-expected.txt:
  • web-platform-tests/svg/geometry/parsing/rx-invalid-expected.txt:
  • web-platform-tests/svg/geometry/parsing/ry-computed-expected.txt:
  • web-platform-tests/svg/geometry/parsing/ry-invalid-expected.txt:

Source/WebCore:

Both the CSSParser and SVGElement::parseAttribute() should be consistent
when parsing these properties.

The type of these properties is <length-percentage>, which requires specifying
the unit for the length: https://www.w3.org/TR/css-values/#length-value.

  • css/parser/CSSParserFastPaths.cpp:

(WebCore::isSimpleLengthPropertyID):

  • css/parser/CSSPropertyParser.cpp:

(WebCore::consumeRxOrRy):
(WebCore::CSSPropertyParser::parseSingleValue):

LayoutTests:

  • svg/css/parse-length-expected.txt:
  • svg/css/parse-length.html:
2:18 PM Changeset in webkit [252466] by Chris Dumez
  • 3 edits in trunk/Source/WebKit

[iOS] Crash under WebProcess::processTaskStateDidChange(WebKit::ProcessTaskStateObserver::TaskState)
https://bugs.webkit.org/show_bug.cgi?id=204177

Reviewed by Jer Noble.

Delay creating the ProcessTaskStateObserver until the WebProcess's connection to its parent had been
initialized. This is necessary because ProcessTaskStateObserver may call WebProcess::processTaskStateDidChange()
on a background thread, which will deference the IPC connection.

  • WebProcess/WebProcess.cpp:

(WebKit::m_webSQLiteDatabaseTracker):
(WebKit::WebProcess::~WebProcess):
(WebKit::WebProcess::initializeConnection):
(WebKit::m_taskStateObserver): Deleted.

  • WebProcess/WebProcess.h:
2:01 PM Changeset in webkit [252465] by Megan Gardner
  • 2 edits in trunk/Tools

Fix build error from r252449
https://bugs.webkit.org/show_bug.cgi?id=204173

Reviewed by Wenson Hsieh.

Include needed header for all platforms, not just iPhone.

  • TestWebKitAPI/ios/UIKitSPI.h:
1:59 PM Changeset in webkit [252464] by commit-queue@webkit.org
  • 3 edits
    2 adds in trunk

Use toLength() and getIndexQuickly() in JSON.stringify
https://bugs.webkit.org/show_bug.cgi?id=204122

Patch by Alexey Shvayka <Alexey Shvayka> on 2019-11-14
Reviewed by Yusuke Suzuki.

JSTests:

  • microbenchmarks/json-stringify-array-replacer.js: Added.
  • microbenchmarks/json-stringify-empty-array.js: Added.

Source/JavaScriptCore:

Using toLength() is semantically equivalent and performance-neutral, while adding
JSObject::getIndexQuickly() advances microbenchmarks/json-stringify-array-replacer.js
by 34%.

  • runtime/JSONObject.cpp:

(JSC::Stringifier::Stringifier):
(JSC::Stringifier::Holder::appendNextProperty):

12:51 PM Changeset in webkit [252463] by Caio Lima
  • 5 edits in trunk

Support or16(TrustedImm32, AbsoluteAddress) in the MIPS MacroAssembler
https://bugs.webkit.org/show_bug.cgi?id=204126

Reviewed by Mark Lam.

JSTests:

Decreasing the number of iterations of test to avoid timeout into slow
ports.

  • stress/regress-57020338.js:

Source/JavaScriptCore:

This is adjusting the implementation of or16 for MIPS. This required
the addition of load16 and store16 for this macro assembler as
well. This is also fixing build issue on ARMv7 or16 implementation.

  • assembler/MacroAssemblerARMv7.h:

(JSC::MacroAssemblerARMv7::or16):

  • assembler/MacroAssemblerMIPS.h:

(JSC::MacroAssemblerMIPS::or16):
(JSC::MacroAssemblerMIPS::load16):
(JSC::MacroAssemblerMIPS::store16):

12:32 PM Changeset in webkit [252462] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[LFC][Invalidation] Skip non-dirty out-of-flow boxes.
https://bugs.webkit.org/show_bug.cgi?id=204196

Reviewed by Antti Koivisto.

Use the InvalidationState to decide whether the current out-of-flow box needs layout.

  • layout/FormattingContext.cpp:

(WebCore::Layout::FormattingContext::layoutOutOfFlowContent):

12:16 PM Changeset in webkit [252461] by graouts@webkit.org
  • 6 edits
    2 adds in trunk

[Web Animations] Accelerated transitions do not always remove their backing accelerated animation
https://bugs.webkit.org/show_bug.cgi?id=204198
<rdar://problem/45847205>

Reviewed by Dean Jackson.

LayoutTests/imported/w3c:

Mark some WPT progressions.

  • web-platform-tests/dom/events/Event-dispatch-on-disabled-elements-expected.txt:

Source/WebCore:

Test: webanimations/accelerated-animation-removal-upon-transition-completion.html

There could be several calls to KeyframeEffect::updateAcceleratedAnimationState() made after an animation had completed but
before any pending accelerated actions would be processed during the next animation frame. In the first call, we would correctly
set add Accelerated::Stop to the list of pending accelerated actions, but on a further call, wrongly assuming that the fact that
we'd already recorded an Accelerated::Stop action meant that it had been committed, we would clear that action and the animation
would never be explicitly removed.

Additionally, we would schedule animation resolution on the DocumentTimeline in the wrong function, we now do that in the function
where animations with an effect pending accelerated actions is added rather than in the function where we track which elements have
accelerated animations.

  • animation/DocumentTimeline.cpp:

(WebCore::DocumentTimeline::animationAcceleratedRunningStateDidChange):
(WebCore::DocumentTimeline::updateListOfElementsWithRunningAcceleratedAnimationsForElement):

  • animation/KeyframeEffect.cpp:

(WebCore::KeyframeEffect::updateAcceleratedAnimationState):

LayoutTests:

Add a new test that checks that a CSS Transition targeting the transform property which requires a layer correctly clears the
accelerated animation upon completion.

  • webanimations/accelerated-animation-removal-upon-transition-completion-expected.txt: Added.
  • webanimations/accelerated-animation-removal-upon-transition-completion.html: Added.
11:42 AM Changeset in webkit [252460] by Alan Bujtas
  • 13 edits in trunk/Source/WebCore

[LFC][Invalidation] Use InvalidationState to populate LayoutQueue
https://bugs.webkit.org/show_bug.cgi?id=204191
<rdar://problem/57179614>

Reviewed by Antti Koivisto.

Start using the InvalidationState in BlockFormattingContext::layoutInFlowContent() to filter out
non-dirty boxes (currently InvalidationState returns true for every box).

  • layout/FormattingContext.cpp:

(WebCore::Layout::FormattingContext::layoutOutOfFlowContent):

  • layout/FormattingContext.h: InvalidationState should not be const as we keep adding additional dirty boxes during layout.
  • layout/LayoutContext.cpp:

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

  • layout/LayoutContext.h:
  • layout/blockformatting/BlockFormattingContext.cpp:

(WebCore::Layout::BlockFormattingContext::layoutInFlowContent):
(WebCore::Layout::BlockFormattingContext::layoutFormattingContextRoot):

  • layout/blockformatting/BlockFormattingContext.h:
  • layout/inlineformatting/InlineFormattingContext.cpp:

(WebCore::Layout::InlineFormattingContext::layoutInFlowContent):
(WebCore::Layout::InlineFormattingContext::layoutFormattingContextRoot):

  • layout/inlineformatting/InlineFormattingContext.h:
  • layout/invalidation/InvalidationState.cpp:

(WebCore::Layout::InvalidationState::needsLayout const):

  • layout/invalidation/InvalidationState.h:
  • layout/tableformatting/TableFormattingContext.cpp:

(WebCore::Layout::TableFormattingContext::layoutInFlowContent):
(WebCore::Layout::TableFormattingContext::layoutTableCellBox):

  • layout/tableformatting/TableFormattingContext.h:
10:09 AM Changeset in webkit [252459] by beidson@apple.com
  • 14 edits
    1 add in trunk

Summary: WKWebView is missing an equivalent to WebKit 1's API to set the media style.
<rdar://problem/49862107> and https://bugs.webkit.org/show_bug.cgi?id=203974

Reviewed by Alex Christensen.

Source/WebKit:

Covered by new API test.

This is basically:

  • Expose a read/write property on WKWebView.
  • Pipe the new media type to the WebProcess.
  • Force a style recalc.
  • UIProcess/API/Cocoa/WKWebView.h:
  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView setMediaType:]):
(-[WKWebView mediaType]):

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::setOverriddenMediaType):

  • UIProcess/WebPageProxy.h:

(WebKit::WebPageProxy::overriddenMediaType const):

  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:

(WebKit::WebFrameLoaderClient::overrideMediaType const):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::setOverriddenMediaType):

  • WebProcess/WebPage/WebPage.h:

(WebKit::WebPage::overriddenMediaType const):

  • WebProcess/WebPage/WebPage.messages.in:

Tools:

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKitCocoa/MediaType.mm: Added.

(TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:
10:07 AM Changeset in webkit [252458] by beidson@apple.com
  • 6 edits
    1 add in trunk

pageZoom/setPageZoom: should not be in a Mac-only part of WKWebView.mm
https://bugs.webkit.org/show_bug.cgi?id=204128

Reviewed by Alex Christensen.

Source/WebKit:

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView setPageZoom:]):
(-[WKWebView pageZoom]):

Tools:

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKitCocoa/PageZoom.mm: Added.

(TestWebKitAPI::getClientWidth):

  • TestWebKitAPI/cocoa/TestWKWebView.h:
  • TestWebKitAPI/cocoa/TestWKWebView.mm:

(-[WKWebView waitUntilClientWidthIs:]):

7:28 AM Changeset in webkit [252457] by Chris Fleizach
  • 3 edits in trunk/Source/WebCore

AX: Implement isolated tree support for math objects
https://bugs.webkit.org/show_bug.cgi?id=204056
<rdar://problem/57054644>

Reviewed by Zalan Bujtas.

Implement isolated tree support for math objects.
Add a method for setting and getting objects.

  • accessibility/isolatedtree/AXIsolatedTreeNode.cpp:

(WebCore::AXIsolatedObject::AXIsolatedObject):
(WebCore::AXIsolatedObject::create):
(WebCore::AXIsolatedObject::initializeAttributeData):
(WebCore::AXIsolatedObject::setObjectProperty):
(WebCore::AXIsolatedObject::objectAttributeValue const):

  • accessibility/isolatedtree/AXIsolatedTreeNode.h:
6:58 AM Changeset in webkit [252456] by Jonathan Bedard
  • 2 edits in trunk/Tools

webkitpy: Clarify webkitpy/style/optparser_unittest.py by removing parse variables
https://bugs.webkit.org/show_bug.cgi?id=204183

Reviewed by Stephanie Lewis.

  • Scripts/webkitpy/style/optparser_unittest.py:

(ArgumentParserTest.test_parse_documentation): Remove parse variable.
(ArgumentParserTest.test_parse_bad_values): Ditto.
(ArgumentParserTest.test_parse_default_arguments): Ditto.
(ArgumentParserTest.test_parse_explicit_arguments): Ditto.
(ArgumentParserTest.test_parse_files): Ditto.

6:25 AM Changeset in webkit [252455] by graouts@webkit.org
  • 9 edits
    5 adds in trunk

[Web Animations] Retargeted transitions targeting accelerated properties do not stop the original transition
https://bugs.webkit.org/show_bug.cgi?id=204116
<rdar://problem/57116961>

Reviewed by Dean Jackson.

Source/WebCore:

Test: webanimations/css-transition-in-flight-reversal-accelerated.html

There were two problems with the reversal of in-flight transitions targeting accelerated properties. The first issue
was that the animated value for the accelerated property would be missing from the before-change style since animating
acceelerated properties do not update RenderStyle while running. As such, we would not detect the need to reverse a
transition, but rather simply cancel the initial transition with no new transition to reverse its effect, since the
value in the before-change and after-change styles were the same. We now fix this by figuring out whether the running
transition for that property is accelerated in AnimationTimeline::updateCSSTransitionsForElementAndProperty() and
applying the animated value to the before-change style.

The second issue was that canceling an accelerated transition had no visible effect since the accelerated animation
was not stopped. We now have a new AnimationEffect::animationWasCanceled() virtual method which KeyframeEffect overrides
to add AcceleratedAction::Stop to the list of pending acceleration actions for this effect. We also ensure that the document
timeline knows to run DocumentTimeline::updateAnimationsAndSendEvents() if there are pending accelerated actions, even if
there aren't any animations waiting to be resolved, since a single canceled transition would prevent this method from
completing.

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

(WebCore::AnimationTimeline::updateCSSTransitionsForElementAndProperty):

  • animation/DocumentTimeline.cpp:

(WebCore::DocumentTimeline::removeAnimation):
(WebCore::DocumentTimeline::scheduleAnimationResolution):
(WebCore::DocumentTimeline::shouldRunUpdateAnimationsAndSendEventsIgnoringSuspensionState const):
(WebCore::DocumentTimeline::updateAnimationsAndSendEvents):
(WebCore::DocumentTimeline::updateListOfElementsWithRunningAcceleratedAnimationsForElement):

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

(WebCore::KeyframeEffect::animationWasCanceled):

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

(WebCore::WebAnimation::cancel):

LayoutTests:

Add a new test that checks that reversing an in-flight transition for "opacity" and "transform" correctly reverses the transition.

  • platform/mac-wk1/imported/w3c/web-platform-tests/dom/events/Event-dispatch-on-disabled-elements-expected.txt: Added.
  • webanimations/css-transition-in-flight-reversal-accelerated-expected.txt: Added.
  • webanimations/css-transition-in-flight-reversal-accelerated.html: Added.
3:44 AM Changeset in webkit [252454] by aakash_jain@apple.com
  • 3 edits in trunk/Tools

Add support for remotes file for EWS builders (follow-up fix)
https://bugs.webkit.org/show_bug.cgi?id=203899

Unreviewed follow-up fix.

  • BuildSlaveSupport/ews-build/factories.py:

(JSCTestsFactory.init): Passed remotes parameter to JSCTestsFactory as well.

  • BuildSlaveSupport/ews-build/loadConfig_unittest.py: Updated unit-test.
3:29 AM Changeset in webkit [252453] by aakash_jain@apple.com
  • 5 edits in trunk/Tools

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

Reviewed by Jonathan Bedard.

  • BuildSlaveSupport/ews-build/config.json: Enabled the scheduler for JSC queue.
  • BuildSlaveSupport/ews-app/ews/views/statusbubble.py: Enabled JSC queue bubble on new EWS.
  • QueueStatusServer/config/queues.py: Removed JSC queue from old EWS.
  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/BubbleQueueServer.js:

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

1:37 AM Changeset in webkit [252452] by ysuzuki@apple.com
  • 29 edits
    1 add in trunk/Source

[JSC] BlockDirectory's bits should be compact
https://bugs.webkit.org/show_bug.cgi?id=204149

Reviewed by Robin Morisset.

Source/JavaScriptCore:

We start applying IsoSubspace to all JSCells. This means that IsoSubspace should be small enough,
so that we can hold many IsoSubspaces without considering about memory regression.

In this patch, we introduce several things to shrink sizeof(IsoSubspace) from 528 to 384.

  1. Adjusting members to remove some paddings.
  2. Remove m_heap field since this can be got from the caller easily.
  3. Make MarkedSpace::heap() efficient: just doing pointer arithmetic.
  4. Remove m_size field from IsoSubspace since BlockDirectory knows cellSize.
  5. Introduce BlockDirectoryBits, which repalces 9 FastBitVector in BlockDirectory to this one class. Since all FastBitVector has the same size, we should not have a size field for each FastBitVector. We reuse FastBitVector's View mechanism to keep the same ergonomics while making BlockDirectoryBits much smaller. We put 9 uint32_t as Segment, and manage Vector<Segment> in this data structure. Since we touch several bits at the same time for the same block-index, this data structure is compact and efficient.
  • CMakeLists.txt:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • heap/AlignedMemoryAllocator.cpp:

(JSC::AlignedMemoryAllocator::registerDirectory):

  • heap/AlignedMemoryAllocator.h:
  • heap/Allocator.h:
  • heap/AllocatorInlines.h:

(JSC::Allocator::allocate const):

  • heap/BlockDirectory.cpp:

(JSC::BlockDirectory::BlockDirectory):
(JSC::BlockDirectory::findEmptyBlockToSteal):
(JSC::BlockDirectory::findBlockForAllocation):
(JSC::BlockDirectory::tryAllocateBlock):
(JSC::BlockDirectory::addBlock):
(JSC::BlockDirectory::removeBlock):
(JSC::BlockDirectory::prepareForAllocation):
(JSC::BlockDirectory::beginMarkingForFullCollection):
(JSC::BlockDirectory::endMarking):
(JSC::BlockDirectory::snapshotUnsweptForEdenCollection):
(JSC::BlockDirectory::snapshotUnsweptForFullCollection):
(JSC::BlockDirectory::findBlockToSweep):
(JSC::BlockDirectory::sweep):
(JSC::BlockDirectory::shrink):
(JSC::BlockDirectory::assertNoUnswept):
(JSC::BlockDirectory::parallelNotEmptyBlockSource):
(JSC::BlockDirectory::dumpBits):

  • heap/BlockDirectory.h:

(JSC::BlockDirectory::cellKind const):
(JSC::BlockDirectory::forEachBitVector):
(JSC::BlockDirectory::forEachBitVectorWithName):
(JSC::BlockDirectory::heap): Deleted.

  • heap/BlockDirectoryBits.h: Added.

(JSC::BlockDirectoryBits::BlockDirectoryBitVectorWordView::BlockDirectoryBitVectorWordView):
(JSC::BlockDirectoryBits::BlockDirectoryBitVectorWordView::numBits const):
(JSC::BlockDirectoryBits::BlockDirectoryBitVectorWordView::word const):
(JSC::BlockDirectoryBits::BlockDirectoryBitVectorWordView::word):
(JSC::BlockDirectoryBits::BlockDirectoryBitVectorWordView::clearAll):
(JSC::BlockDirectoryBits::BlockDirectoryBitVectorWordView::view const):
(JSC::BlockDirectoryBits::numBits const):
(JSC::BlockDirectoryBits::resize):
(JSC::BlockDirectoryBits::forEachSegment):

  • heap/BlockDirectoryInlines.h:

(JSC::BlockDirectory::forEachBlock):
(JSC::BlockDirectory::forEachNotEmptyBlock):

  • heap/CompleteSubspace.cpp:

(JSC::CompleteSubspace::allocatorForSlow):
(JSC::CompleteSubspace::tryAllocateSlow):

  • heap/CompleteSubspaceInlines.h:

(JSC::CompleteSubspace::allocateNonVirtual):

  • heap/IsoCellSet.cpp:

(JSC::IsoCellSet::parallelNotEmptyMarkedBlockSource):

  • heap/IsoCellSetInlines.h:

(JSC::IsoCellSet::forEachMarkedCell):

  • heap/IsoSubspace.cpp:

(JSC::IsoSubspace::IsoSubspace):
(JSC::IsoSubspace::tryAllocateFromLowerTier):

  • heap/IsoSubspace.h:

(JSC::IsoSubspace::cellSize):
(JSC::IsoSubspace::allocatorForNonVirtual):
(JSC::IsoSubspace::size const): Deleted.
(): Deleted.

  • heap/IsoSubspaceInlines.h:

(JSC::IsoSubspace::allocateNonVirtual):

  • heap/IsoSubspacePerVM.cpp:

(JSC::IsoSubspacePerVM::AutoremovingIsoSubspace::~AutoremovingIsoSubspace):

  • heap/LocalAllocator.cpp:

(JSC::LocalAllocator::allocateSlowCase):
(JSC::LocalAllocator::doTestCollectionsIfNeeded):

  • heap/LocalAllocator.h:
  • heap/LocalAllocatorInlines.h:

(JSC::LocalAllocator::allocate):

  • heap/MarkedBlock.cpp:

(JSC::MarkedBlock::Handle::dumpState):

  • heap/MarkedSpace.cpp:

(JSC::MarkedSpace::MarkedSpace):
(JSC::MarkedSpace::sweepBlocks):
(JSC::MarkedSpace::prepareForAllocation):
(JSC::MarkedSpace::visitWeakSets):
(JSC::MarkedSpace::reapWeakSets):
(JSC::MarkedSpace::prepareForMarking):
(JSC::MarkedSpace::beginMarking):
(JSC::MarkedSpace::snapshotUnswept):

  • heap/MarkedSpace.h:

(JSC::MarkedSpace::heap const): Deleted.

  • heap/MarkedSpaceInlines.h:

(JSC::MarkedSpace::heap const):

  • heap/Subspace.cpp:

(JSC::Subspace::initialize):

  • heap/Subspace.h:

Source/WTF:

  • wtf/FastBitVector.h:

(WTF::fastBitVectorArrayLength):
(WTF::FastBitVectorImpl::unsafeWords):
(WTF::FastBitVectorImpl::unsafeWords const):
(WTF::FastBitReference::FastBitReference):
(WTF::FastBitReference::operator bool const):
(WTF::FastBitReference::operator=):
(WTF::FastBitVector::at):
(WTF::FastBitVector::operator[]):
(WTF::FastBitVector::BitReference::BitReference): Deleted.
(WTF::FastBitVector::BitReference::operator bool const): Deleted.
(WTF::FastBitVector::BitReference::operator=): Deleted.

Note: See TracTimeline for information about the timeline view.