Timeline
Oct 16, 2021:
- 10:58 PM Changeset in webkit [284333] by
-
- 4 edits in trunk/Source/WebCore
[LFC][IFC] Adjust the logical right side of the line with line spanning inline boxes
https://bugs.webkit.org/show_bug.cgi?id=231862
Reviewed by Antti Koivisto.
This patch is in preparation for supporting "box-decoration-break: clone".
- The line spanning inline box takes up space on the line (see line logical width)
- The inline box may be getting closed on the line (do not double account for the end width, see handleInlineContent )
- When we commit the inline box closing, turn the ending into just a normal run (see appendInlineBoxEnd )
- layout/formattingContexts/inline/InlineLine.cpp:
(WebCore::Layout::Line::initialize):
(WebCore::Layout::Line::appendInlineBoxStart):
(WebCore::Layout::Line::appendInlineBoxEnd):
(WebCore::Layout::Line::appendTextContent):
(WebCore::Layout::Line::appendNonReplacedInlineLevelBox):
(WebCore::Layout::Line::appendLineBreak):
(WebCore::Layout::Line::appendWordBreakOpportunity):
- layout/formattingContexts/inline/InlineLine.h:
(WebCore::Layout::Line::contentLogicalRight const):
(WebCore::Layout::Line::lineSpanningInlineBoxRunEnds const):
(WebCore::Layout::Line::lastRunLogicalRight const):
- layout/formattingContexts/inline/InlineLineBuilder.cpp:
(WebCore::Layout::LineBuilder::handleInlineContent):
(WebCore::Layout::LineBuilder::rebuildLineForTrailingSoftHyphen):
- 9:52 PM Changeset in webkit [284332] by
-
- 4 edits in trunk/Source/JavaScriptCore
[JSC] Use SourceID in SamplingProfiler
https://bugs.webkit.org/show_bug.cgi?id=231855
Reviewed by Mark Lam.
SamplingProfiler was still using intptr_t. We replace it with SourceID.
We also define internalSourceID and aggregatedExternalSourceID in SourceID.h.
They are special SourceID internally used in SamplingProfiler.
- bytecode/SourceID.h:
- runtime/SamplingProfiler.cpp:
(JSC::SamplingProfiler::StackFrame::sourceID):
(JSC::SamplingProfiler::reportTopFunctions):
- runtime/SamplingProfiler.h:
- 9:03 PM Changeset in webkit [284331] by
-
- 9 edits in trunk/Source/WebKit
[WebAuthn] Many Objective-C classes leak their instance variables
<https://webkit.org/b/231834>
<rdar://problem/84317190>
Reviewed by Brent Fulgham.
- UIProcess/API/Cocoa/_WKAuthenticationExtensionsClientInputs.mm:
(-[_WKAuthenticationExtensionsClientInputs dealloc]):
- UIProcess/API/Cocoa/_WKPublicKeyCredentialCreationOptions.mm:
(-[_WKPublicKeyCredentialCreationOptions dealloc]):
- UIProcess/API/Cocoa/_WKPublicKeyCredentialDescriptor.mm:
(-[_WKPublicKeyCredentialDescriptor dealloc]):
- UIProcess/API/Cocoa/_WKPublicKeyCredentialEntity.mm:
(-[_WKPublicKeyCredentialEntity dealloc]):
- UIProcess/API/Cocoa/_WKPublicKeyCredentialParameters.mm:
(-[_WKPublicKeyCredentialParameters dealloc]):
- UIProcess/API/Cocoa/_WKPublicKeyCredentialRelyingPartyEntity.mm:
(-[_WKPublicKeyCredentialRelyingPartyEntity dealloc]):
- UIProcess/API/Cocoa/_WKPublicKeyCredentialRequestOptions.mm:
(-[_WKPublicKeyCredentialRequestOptions dealloc]):
- UIProcess/API/Cocoa/_WKPublicKeyCredentialUserEntity.mm:
(-[_WKPublicKeyCredentialUserEntity dealloc]):
- Add -dealloc methods that release instance variables.
- 9:00 PM Changeset in webkit [284330] by
-
- 91 edits3 adds in trunk
Allow WASM to use up to 4GB
https://bugs.webkit.org/show_bug.cgi?id=229353
rdar://81603447
Reviewed by Yusuke Suzuki.
JSTests:
The big-wasm-memory/wasm-memory-requested... tests used to simply expect an OOM at 2GB.
They now expect success at 4GB, and failure at 4GB+1.
The exceptions they expect are now more specific, as previously there was a rounding issue that was causing the specific exceptions not to be thrown (resulting in the generic OOM exception later in the code).
Finally I made them only run on 64-bit platforms since we don't support typed arrays >=2GB on 32-bits, and I made them only run in one configuration since they can take a little bit of time.
I also added a few new tests, specifically checking our handling of large typed arrays, and especially of indices above INT32_MAX.
- stress/big-wasm-memory-grow-no-max.js:
(test):
- stress/big-wasm-memory-grow.js:
(test):
- stress/big-wasm-memory.js:
(test):
- stress/typed-array-always-large.js: Added.
(getArrayLength):
(getByVal):
(putByVal):
(test):
- stress/typed-array-eventually-large.js: Added.
(getArrayLength):
(getByVal):
(putByVal):
(test):
- stress/typed-array-large-eventually-oob.js: Added.
(getArrayLength):
(getByVal):
(putByVal):
(test):
- wasm/regress/wasm-memory-requested-more-than-MAX_ARRAY_BUFFER_SIZE-2.js:
- wasm/regress/wasm-memory-requested-more-than-MAX_ARRAY_BUFFER_SIZE.js:
Source/JavaScriptCore:
While increasing MAX_ARRAY_BUFFER_SIZE to 4GB was easy, it was not remotely the only thing required to get this to work:
- 4GB is not representable in a uint32_t, so I changed all length of ArrayBuffer/TypedArray/etc.. to being size_t.
- This also required changing NewTypedArray in all of LLInt/Baseline/DFG/FTL to accept a non-int32 size.
In order to avoid performance regressions, I had to add speculation in the DFG/FTL, which now have two versions of NewTypedArray (one that takes an Int32 and one that takes a StrictInt52)
- Similarly, GetArrayLength and GetTypedArrayByteOffset now can either return an Int32 or a larger number.
I also had to split them in the DFG/FTL, see GetTypedArrayLengthAsInt52 and GetTypedArrayByteOffsetAsInt52 for examples
- In turns, I had to add CheckInBoundsInt52 since CheckInBounds could not accept the result of GetTypedArrayLengthAsInt52
- I modified the runtime functions for GetByVal/PutByVal/DataViewGet/DataViewSet/AtomicsXXX to accept non-Int32 indices, since for {Int8/UInt8/UInt8Clamped}Array, a maximum size of 4GB implies indices > 2B.
- I added a "mayBeLargeTypedArray" bit to ArrayProfile/UnlinkedArrayProfile/DFG::ArrayMode to track whether such a non-Int32 index was seen to allow proper speculation and specialization of fast paths in the DFG/FTL.
I then updated the runtime functions used by the slow paths to correctly update it.
Unfortunately I ran out of time to add all the speculations/update all the fast paths.
So the following will have to wait for a follow-up patch:
- Accepting large indices in the fast path of GetByVal in the LLInt
- Accepting large indices in the fast paths generated by AccessCase/PolymorphicAccess
- Accepting large indices in the fast paths generated by the DFG/FTL for each of GetByVal/PutByVal/DataViewGet/DataViewSet/AtomicsXXX
The current patch is functional, it will just have dreadful performance if trying to use indices >2B in a {Int8/UInt8/UInt8Clamped}Array.
Other minor changes in this patch:
- Fixed an undefined behavior in ArrayBuffer::createInternal where memcpy could be called on nullptr (the spec explicitly bans this even when length is 0)
- Replaced some repetitive and error-prone bounds checking by calls to WTF::isSumSmallerThanOrEqual, which is clearer, shorter, and reuse CheckedArithmetic facilities to avoid overflow issues.
- Fixed a variety of obsolete comments
- Added support for branch64(RelationalCondition cond, RegisterID left, Imm64 right)
(there was already support for the same but with TrustedImm64)
- Made various AbstractMacroAssembler function constexpr as part of the previous point
- assembler/AbstractMacroAssembler.cpp:
- assembler/AbstractMacroAssembler.h:
(JSC::AbstractMacroAssembler::TrustedImmPtr::TrustedImmPtr):
(JSC::AbstractMacroAssembler::TrustedImmPtr::asIntptr):
(JSC::AbstractMacroAssembler::TrustedImmPtr::asPtr):
(JSC::AbstractMacroAssembler::ImmPtr::ImmPtr):
(JSC::AbstractMacroAssembler::ImmPtr::asTrustedImmPtr):
(JSC::AbstractMacroAssembler::TrustedImm32::TrustedImm32):
(JSC::AbstractMacroAssembler::Imm32::Imm32):
(JSC::AbstractMacroAssembler::Imm32::asTrustedImm32 const):
(JSC::AbstractMacroAssembler::TrustedImm64::TrustedImm64):
(JSC::AbstractMacroAssembler::Imm64::Imm64):
(JSC::AbstractMacroAssembler::Imm64::asTrustedImm64 const):
(JSC::AbstractMacroAssembler::canBlind):
(JSC::AbstractMacroAssembler::shouldBlindForSpecificArch):
- assembler/MacroAssembler.h:
(JSC::MacroAssembler::branch64):
- assembler/MacroAssemblerARM64.h:
(JSC::MacroAssemblerARM64::shouldBlindForSpecificArch):
(JSC::MacroAssemblerARM64::branch64):
- assembler/MacroAssemblerARM64E.h:
(JSC::MacroAssemblerARM64E::untagArrayPtrLength64):
(JSC::MacroAssemblerARM64E::untagArrayPtrLength32): Deleted.
- assembler/MacroAssemblerX86Common.h:
(JSC::MacroAssemblerX86Common::canBlind):
(JSC::MacroAssemblerX86Common::shouldBlindForSpecificArch):
- bytecode/AccessCase.cpp:
(JSC::AccessCase::needsScratchFPR const):
(JSC::AccessCase::generateWithGuard):
- bytecode/ArrayProfile.h:
(JSC::ArrayProfile::setMayBeLargeTypedArray):
(JSC::ArrayProfile::mayBeLargeTypedArray const):
(JSC::UnlinkedArrayProfile::UnlinkedArrayProfile):
(JSC::UnlinkedArrayProfile::update):
- dfg/DFGAbstractInterpreterInlines.h:
(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):
- dfg/DFGArgumentsEliminationPhase.cpp:
- dfg/DFGArrayMode.cpp:
(JSC::DFG::ArrayMode::refine const):
- dfg/DFGArrayMode.h:
(JSC::DFG::ArrayMode::ArrayMode):
(JSC::DFG::ArrayMode::mayBeLargeTypedArray const):
(JSC::DFG::ArrayMode::withType const):
(JSC::DFG::ArrayMode::withSpeculation const):
(JSC::DFG::ArrayMode::withConversion const):
(JSC::DFG::ArrayMode::withTypeAndConversion const):
(JSC::DFG::ArrayMode::withArrayClassAndSpeculationAndMayBeLargeTypedArray const):
(JSC::DFG::ArrayMode::speculationFromProfile):
(JSC::DFG::ArrayMode::withSpeculationFromProfile const):
(JSC::DFG::ArrayMode::withProfile const):
(JSC::DFG::ArrayMode::operator== const):
(JSC::DFG::ArrayMode::withArrayClass const): Deleted.
- dfg/DFGByteCodeParser.cpp:
(JSC::DFG::ByteCodeParser::handleIntrinsicGetter):
- dfg/DFGClobberize.h:
(JSC::DFG::clobberize):
- dfg/DFGCommon.h:
(JSC::DFG::enableInt52):
- dfg/DFGConstantFoldingPhase.cpp:
(JSC::DFG::ConstantFoldingPhase::foldConstants):
- dfg/DFGDoesGC.cpp:
(JSC::DFG::doesGC):
- dfg/DFGFixupPhase.cpp:
(JSC::DFG::FixupPhase::fixupNode):
(JSC::DFG::FixupPhase::convertToGetArrayLength):
(JSC::DFG::FixupPhase::prependGetArrayLength): Deleted.
- dfg/DFGGenerationInfo.h:
- dfg/DFGHeapLocation.cpp:
(WTF::printInternal):
- dfg/DFGHeapLocation.h:
- dfg/DFGIntegerRangeOptimizationPhase.cpp:
- dfg/DFGNode.h:
(JSC::DFG::Node::hasStorageChild const):
(JSC::DFG::Node::storageChildIndex):
(JSC::DFG::Node::hasArrayMode):
- dfg/DFGNodeType.h:
- dfg/DFGOperations.cpp:
(JSC::DFG::putByVal):
(JSC::DFG::newTypedArrayWithSize):
(JSC::DFG::JSC_DEFINE_JIT_OPERATION):
- dfg/DFGOperations.h:
- dfg/DFGPredictionPropagationPhase.cpp:
- dfg/DFGSSALoweringPhase.cpp:
(JSC::DFG::SSALoweringPhase::handleNode):
(JSC::DFG::SSALoweringPhase::lowerBoundsCheck):
- dfg/DFGSafeToExecute.h:
(JSC::DFG::safeToExecute):
- dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::jumpForTypedArrayOutOfBounds):
(JSC::DFG::SpeculativeJIT::emitTypedArrayBoundsCheck):
(JSC::DFG::SpeculativeJIT::compileGetByValOnIntTypedArray):
(JSC::DFG::SpeculativeJIT::compilePutByValForIntTypedArray):
(JSC::DFG::SpeculativeJIT::compileGetByValOnFloatTypedArray):
(JSC::DFG::SpeculativeJIT::compilePutByValForFloatTypedArray):
(JSC::DFG::SpeculativeJIT::cageTypedArrayStorage):
(JSC::DFG::SpeculativeJIT::compileGetTypedArrayByteOffset):
(JSC::DFG::SpeculativeJIT::compileGetArrayLength):
(JSC::DFG::SpeculativeJIT::compileNewTypedArrayWithSize):
(JSC::DFG::SpeculativeJIT::emitNewTypedArrayWithSizeInRegister):
(JSC::DFG::SpeculativeJIT::compileNewTypedArray):
- dfg/DFGSpeculativeJIT.h:
- dfg/DFGSpeculativeJIT32_64.cpp:
(JSC::DFG::SpeculativeJIT::compileGetByVal):
(JSC::DFG::SpeculativeJIT::compile):
- dfg/DFGSpeculativeJIT64.cpp:
(JSC::DFG::SpeculativeJIT::compileNewTypedArrayWithInt52Size):
(JSC::DFG::SpeculativeJIT::compileGetTypedArrayLengthAsInt52):
(JSC::DFG::SpeculativeJIT::compileGetTypedArrayByteOffsetAsInt52):
(JSC::DFG::SpeculativeJIT::compile):
- dfg/DFGTypeCheckHoistingPhase.cpp:
(JSC::DFG::TypeCheckHoistingPhase::identifyRedundantStructureChecks):
(JSC::DFG::TypeCheckHoistingPhase::identifyRedundantArrayChecks):
- dfg/DFGValidate.cpp:
- ftl/FTLCapabilities.cpp:
(JSC::FTL::canCompile):
- ftl/FTLLowerDFGToB3.cpp:
(JSC::FTL::DFG::LowerDFGToB3::validateAIState):
(JSC::FTL::DFG::LowerDFGToB3::compileNode):
(JSC::FTL::DFG::LowerDFGToB3::emitGetTypedArrayByteOffsetExceptSettingResult):
(JSC::FTL::DFG::LowerDFGToB3::compileGetTypedArrayByteOffset):
(JSC::FTL::DFG::LowerDFGToB3::compileGetTypedArrayByteOffsetAsInt52):
(JSC::FTL::DFG::LowerDFGToB3::compileGetArrayLength):
(JSC::FTL::DFG::LowerDFGToB3::compileGetTypedArrayLengthAsInt52):
(JSC::FTL::DFG::LowerDFGToB3::compileCheckInBoundsInt52):
(JSC::FTL::DFG::LowerDFGToB3::compilePutByVal):
(JSC::FTL::DFG::LowerDFGToB3::compileNewTypedArray):
(JSC::FTL::DFG::LowerDFGToB3::emitNewTypedArrayWithSize):
(JSC::FTL::DFG::LowerDFGToB3::compileCompareStrictEq):
- ftl/FTLOutput.h:
(JSC::FTL::Output::load64NonNegative):
- jit/IntrinsicEmitter.cpp:
(JSC::IntrinsicGetterAccessCase::emitIntrinsicGetter):
- jit/JITOperations.cpp:
(JSC::putByVal):
(JSC::getByVal):
- llint/LLIntOfflineAsmConfig.h:
- llint/LLIntSlowPaths.cpp:
(JSC::LLInt::getByVal):
(JSC::LLInt::LLINT_SLOW_PATH_DECL):
- llint/LowLevelInterpreter.asm:
- llint/LowLevelInterpreter32_64.asm:
- llint/LowLevelInterpreter64.asm:
- runtime/ArrayBuffer.cpp:
(JSC::SharedArrayBufferContents::SharedArrayBufferContents):
(JSC::ArrayBufferContents::ArrayBufferContents):
(JSC::ArrayBufferContents::tryAllocate):
(JSC::ArrayBuffer::create):
(JSC::ArrayBuffer::createAdopted):
(JSC::ArrayBuffer::createFromBytes):
(JSC::ArrayBuffer::tryCreate):
(JSC::ArrayBuffer::createUninitialized):
(JSC::ArrayBuffer::tryCreateUninitialized):
(JSC::ArrayBuffer::createInternal):
(JSC::ArrayBuffer::clampValue):
(JSC::ArrayBuffer::clampIndex const):
(JSC::ArrayBuffer::sliceWithClampedIndex const):
- runtime/ArrayBuffer.h:
(JSC::ArrayBufferContents::sizeInBytes const):
(JSC::ArrayBuffer::byteLength const):
(JSC::ArrayBuffer::gcSizeEstimateInBytes const):
- runtime/ArrayBufferView.cpp:
(JSC::ArrayBufferView::ArrayBufferView):
- runtime/ArrayBufferView.h:
(JSC::ArrayBufferView::byteOffset const):
(JSC::ArrayBufferView::byteLength const):
(JSC::ArrayBufferView::verifyByteOffsetAlignment):
(JSC::ArrayBufferView::verifySubRangeLength):
(JSC::ArrayBufferView::clampOffsetAndNumElements):
(JSC::ArrayBufferView::setImpl):
(JSC::ArrayBufferView::setRangeImpl):
(JSC::ArrayBufferView::getRangeImpl):
(JSC::ArrayBufferView::zeroRangeImpl):
(JSC::ArrayBufferView::calculateOffsetAndLength): Deleted.
- runtime/AtomicsObject.cpp:
- runtime/DataView.cpp:
(JSC::DataView::DataView):
(JSC::DataView::create):
- runtime/DataView.h:
- runtime/GenericTypedArrayView.h:
- runtime/GenericTypedArrayViewInlines.h:
(JSC::GenericTypedArrayView<Adaptor>::GenericTypedArrayView):
(JSC::GenericTypedArrayView<Adaptor>::create):
(JSC::GenericTypedArrayView<Adaptor>::tryCreate):
(JSC::GenericTypedArrayView<Adaptor>::createUninitialized):
(JSC::GenericTypedArrayView<Adaptor>::tryCreateUninitialized):
(JSC::GenericTypedArrayView<Adaptor>::subarray const): Deleted.
- runtime/JSArrayBufferView.cpp:
(JSC::JSArrayBufferView::ConstructionContext::ConstructionContext):
(JSC::JSArrayBufferView::byteLength const):
(JSC::JSArrayBufferView::slowDownAndWasteMemory):
(JSC::JSArrayBufferView::possiblySharedImpl):
- runtime/JSArrayBufferView.h:
(JSC::JSArrayBufferView::sizeOf):
(JSC::JSArrayBufferView::ConstructionContext::length const):
(JSC::JSArrayBufferView::length const):
- runtime/JSArrayBufferViewInlines.h:
(JSC::JSArrayBufferView::byteOffsetImpl):
(JSC::JSArrayBufferView::byteOffset):
(JSC::JSArrayBufferView::byteOffsetConcurrently):
- runtime/JSCJSValue.h:
- runtime/JSCJSValueInlines.h:
(JSC::JSValue::toIndex const):
(JSC::JSValue::toTypedArrayIndex const):
- runtime/JSDataView.cpp:
(JSC::JSDataView::create):
(JSC::JSDataView::createUninitialized):
(JSC::JSDataView::set):
(JSC::JSDataView::setIndex):
- runtime/JSDataView.h:
- runtime/JSDataViewPrototype.cpp:
(JSC::getData):
(JSC::setData):
- runtime/JSGenericTypedArrayView.h:
- runtime/JSGenericTypedArrayViewConstructorInlines.h:
(JSC::constructGenericTypedArrayViewWithArguments):
(JSC::constructGenericTypedArrayViewImpl):
- runtime/JSGenericTypedArrayViewInlines.h:
(JSC::JSGenericTypedArrayView<Adaptor>::create):
(JSC::JSGenericTypedArrayView<Adaptor>::createWithFastVector):
(JSC::JSGenericTypedArrayView<Adaptor>::createUninitialized):
(JSC::JSGenericTypedArrayView<Adaptor>::validateRange):
(JSC::JSGenericTypedArrayView<Adaptor>::setWithSpecificType):
(JSC::JSGenericTypedArrayView<Adaptor>::set):
- runtime/JSObject.h:
(JSC::JSObject::putByIndexInline):
(JSC::JSObject::tryGetIndexQuickly const):
(JSC::JSObject::trySetIndexQuickly):
(JSC::JSObject::canSetIndexQuickly): Deleted.
- runtime/JSObjectInlines.h:
(JSC::JSObject::getIndexQuicklyForTypedArray const):
(JSC::JSObject::setIndexQuicklyForArrayStorageIndexingType):
(JSC::JSObject::trySetIndexQuicklyForTypedArray):
(JSC::JSObject::canSetIndexQuicklyForTypedArray const): Deleted.
- runtime/Operations.h:
(JSC::getByValWithIndex):
- wasm/WasmPageCount.h:
Source/WebCore:
Some parts of WebCore use TypedArrays, and would not build after I made the length() function on typed arrays return UCPURegister instead of uint32_t.
Most fixes were trivial, the only exception is SerializedScriptValue.cpp, where I had to increment the version number, as ArrayBuffer (and ArrayBufferViews) now write/read their length in a 64-bit field (and same for the byteOffset of ArrayBufferView).
I also had to add a test in PixelBuffer.cpp that the size of the ArrayBuffer it will try to allocate is < INT32_MAX.
Otherwise, the test LayoutTests/fast/shapes/shape-outside-floats/shape-outside-imagedata-overflow.html which checks that very large images are properly rejected without crashing, would timeout.
No new tests, as the code is already extensively covered by existing tests, and I implemented no new features.
- Modules/webaudio/AudioBuffer.cpp:
(WebCore::AudioBuffer::copyFromChannel):
(WebCore::AudioBuffer::copyToChannel):
- Modules/webaudio/RealtimeAnalyser.cpp:
(WebCore::RealtimeAnalyser::getByteFrequencyData):
(WebCore::RealtimeAnalyser::getFloatTimeDomainData):
(WebCore::RealtimeAnalyser::getByteTimeDomainData):
- bindings/js/SerializedScriptValue.cpp:
(WebCore::CloneSerializer::dumpArrayBufferView):
(WebCore::CloneSerializer::dumpImageBitmap):
(WebCore::CloneSerializer::dumpIfTerminal):
(WebCore::CloneDeserializer::readArrayBufferImpl):
(WebCore::CloneDeserializer::readArrayBuffer):
(WebCore::CloneDeserializer::readArrayBufferViewImpl):
(WebCore::CloneDeserializer::readArrayBufferView):
- bindings/js/SerializedScriptValue.h:
(WebCore::SerializedScriptValue::encode const):
(WebCore::SerializedScriptValue::decode):
- fileapi/NetworkSendQueue.cpp:
(WebCore::NetworkSendQueue::enqueue):
- platform/graphics/PixelBuffer.cpp:
(WebCore::PixelBuffer::tryCreate):
- platform/graphics/iso/ISOBox.h:
Source/WTF:
Made some of CheckedArithmetic constexpr, and added isSumSmallerThanOrEqual since it is a commonly used test in ArrayBuffer and easy to get wrong in terms of overflow.
- wtf/CheckedArithmetic.h:
(WTF::isInBounds):
(WTF::convertSafely):
(WTF::isSumSmallerThanOrEqual):
LayoutTests:
Rebaselined three following tests as different or fewer error messages appear on the console.
Also changed currentVersion in serialized-script-value.html from 9 to 10.
- fast/canvas/canvas-getImageData-invalid-result-buffer-crash-expected.txt:
- fast/storage/serialized-script-value.html:
- webaudio/OfflineAudioContext-bad-buffer-crash-expected.txt:
- webaudio/OfflineAudioContext/bad-buffer-length-expected.txt:
- 8:58 PM Changeset in webkit [284329] by
-
- 3 edits in trunk/Source/WebKit
_WKRemoteWebInspectorViewController leaks an instance variable and should use a weak delegate
<https://webkit.org/b/231830>
<rdar://problem/84316056>
Reviewed by Brent Fulgham.
- UIProcess/API/Cocoa/_WKRemoteWebInspectorViewController.h:
- Use a weak reference for the delegate.
- UIProcess/API/Cocoa/_WKRemoteWebInspectorViewController.mm:
(-[_WKRemoteWebInspectorViewController dealloc]): Add.
- Fix leak by releasing _configuration instance variable.
- 4:41 PM Changeset in webkit [284328] by
-
- 2 edits in trunk/LayoutTests
Unreviewed, revert r284181
No longer needed because the root cause was reverted.
- platform/mac-wk2/TestExpectations:
- 4:36 PM Changeset in webkit [284327] by
-
- 4 edits2 adds in trunk
[LFC][IFC] Adjust the logical left side of the line with line spanning inline boxes
https://bugs.webkit.org/show_bug.cgi?id=231851
Reviewed by Antti Koivisto.
Source/WebCore:
This is in preparation for supporting "box-decoration-break: clone", where the
line spanning inline boxes do take up some space on the line with their horizontal margin, border and padding.
Test: fast/inline/inline-box-with-left-decoration-clone.html
- layout/formattingContexts/inline/InlineLine.cpp:
(WebCore::Layout::Line::initialize):
(WebCore::Layout::Line::Run::Run):
- layout/formattingContexts/inline/InlineLine.h:
LayoutTests:
- fast/inline/inline-box-with-left-decoration-clone-expected.html: Added.
- fast/inline/inline-box-with-left-decoration-clone.html: Added.
- 4:35 PM Changeset in webkit [284326] by
-
- 8 edits2 deletes in trunk/Source
Unreviewed, reverting r284143.
Caused a series of assertions in layout tests in EWS
Reverted changeset:
"Scroll To Text Fragment directive parsing"
https://bugs.webkit.org/show_bug.cgi?id=231410
https://commits.webkit.org/r284143
- 3:32 PM Changeset in webkit [284325] by
-
- 2 edits in trunk/Source/WebKit
WebKit ignores inherited GCC_PREPROCESSOR_DEFINITIONS
https://bugs.webkit.org/show_bug.cgi?id=231867
Reviewed by Sam Weinig.
- Configurations/BaseTarget.xcconfig:
Add a $(inherited) here like in every other project, so that we don't
just drop defines that come from above.
- 3:18 PM Changeset in webkit [284324] by
-
- 2 edits in trunk
Add github username for tetsuharuohzeki to contributors.json
https://bugs.webkit.org/show_bug.cgi?id=231864
Patch by Tetsuharu Ohzeki <Tetsuharu Ohzeki> on 2021-10-16
Reviewed by Fujii Hironori.
- metadata/contributors.json:
- 2:14 PM Changeset in webkit [284323] by
-
- 9 edits in trunk/Source/WebCore
[LFC][IFC] Add "line spanning line box start items" to Line
https://bugs.webkit.org/show_bug.cgi?id=231551
Reviewed by Antti Koivisto.
This patch is in preparation for supporting box-decoration-break: clone, where the line spanning
inline boxes may take up space on the line (border/padding).
This patch moves the construction of the spanning inline boxes to an earlier step, from LineBox to Line.
- layout/formattingContexts/inline/InlineLineBuilder.cpp:
(WebCore::Layout::LineBuilder::initialize):
- 1:32 PM Changeset in webkit [284322] by
-
- 4 edits in trunk
Page zoom is messed up after navigating back from a PDF
https://bugs.webkit.org/show_bug.cgi?id=231841
<rdar://72666365>
Reviewed by Tim Horton.
Source/WebKit:
A navigation back from a PDF is a FrameLoadType::Back, so resetting
m_mainFramePluginHandlesPageScaleGesture only for FrameLoadType::Standard is wrong.
For all navigations, the plugins seem to call
pluginScaleFactorDidChange/pluginZoomFactorDidChange/
mainFramePluginHandlesPageScaleGestureDidChange so it's safe to reset them for all
navigation types.
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::didCommitLoadForFrame):
Tools:
- TestWebKitAPI/Tests/WebKitCocoa/PageZoom.mm:
(TestWebKitAPI::TEST):
- 1:16 PM Changeset in webkit [284321] by
-
- 2 edits in trunk/Source/WebKit
Unreviewed, reverting r284300.
https://bugs.webkit.org/show_bug.cgi?id=231866
broke-apple-silicon-performance
Reverted changeset:
"[macOS] Add telemetry for system calls in WP"
https://bugs.webkit.org/show_bug.cgi?id=231836
https://commits.webkit.org/r284300
- 11:37 AM Changeset in webkit [284320] by
-
- 16 edits in branches/safari-612-branch
Revert "Apply patch. rdar://problem/83953730"
This reverts commit ee910ccd94f646fb5f318a78cfd6910432830a1e.
- 11:16 AM Changeset in webkit [284319] by
-
- 2 edits in trunk/Source/WebKit
WebKit::LocalConnection::createCredentialPrivateKey leaks an NSMutableDictionary
<https://webkit.org/b/231814>
<rdar://problem/84307054>
Reviewed by Kate Cheney.
- UIProcess/WebAuthentication/Cocoa/LocalConnection.mm:
(WebKit::LocalConnection::createCredentialPrivateKey const):
- Use RetainPtr<> and adoptNS to fix the leak.
- 10:16 AM Changeset in webkit [284318] by
-
- 3 edits in trunk/LayoutTests
Undo some rebaseline in r284296.
Unreviewed.
- platform/mac-bigsur/fast/text/capitalize-boundaries-expected.txt:
- platform/mac-catalina/fast/text/capitalize-boundaries-expected.txt:
- 9:14 AM Changeset in webkit [284317] by
-
- 4 edits in trunk/Source/WebCore
[LFC][IFC] Move overflowing content creation to LineBuilder::initialize
https://bugs.webkit.org/show_bug.cgi?id=231540
Reviewed by Antti Koivisto.
LineBuilder::initialize is going to handle all overflowing content initialization.
This is in preparation for adding spanning inline box items to the line (to support box-decoration-break: clone).
- layout/formattingContexts/inline/InlineLineBuilder.cpp:
(WebCore::Layout::LineBuilder::layoutInlineContent):
(WebCore::Layout::LineBuilder::computedIntrinsicWidth):
(WebCore::Layout::LineBuilder::initialize):
(WebCore::Layout::LineBuilder::placeInlineContent):
(WebCore::Layout::LineBuilder::candidateContentForLine):
- layout/formattingContexts/inline/InlineLineBuilder.h:
- layout/formattingContexts/inline/InlineTextItem.h:
(WebCore::Layout::InlineTextItem::right const):
- 7:55 AM Changeset in webkit [284316] by
-
- 2 edits in trunk
Add my github username to contributors.json
https://bugs.webkit.org/show_bug.cgi?id=231861
Unreviewed.
- metadata/contributors.json:
- 5:39 AM Changeset in webkit [284315] by
-
- 7 edits in trunk/Source/WebCore
Use inline iterator for SVG reverse BiDI reordering
https://bugs.webkit.org/show_bug.cgi?id=231858
Reviewed by Alan Bujtas.
Share code.
- layout/integration/InlineIteratorLogicalOrderTraversal.cpp:
(WebCore::InlineIterator::makeLineLogicalOrderCache):
(WebCore::InlineIterator::nextLeafOnLineInLogicalOrder):
(WebCore::InlineIterator::previousLeafOnLineInLogicalOrder):
No need to test for the cache, it is always there.
- layout/integration/InlineIteratorLogicalOrderTraversal.h:
(WebCore::InlineIterator::leafBoxesInLogicalOrder):
Make template and move to header.
- rendering/LegacyInlineFlowBox.cpp:
(WebCore::LegacyInlineFlowBox::collectLeafBoxesInLogicalOrder const): Deleted.
Not needed anymore.
- rendering/LegacyInlineFlowBox.h:
- rendering/svg/SVGRootInlineBox.cpp:
(WebCore::SVGRootInlineBox::computePerCharacterLayoutInformation):
(WebCore::reverseInlineBoxRangeAndValueListsIfNeeded):
(WebCore::SVGRootInlineBox::reorderValueListsToLogicalOrder):
(WebCore::SVGRootInlineBox::reorderValueLists): Deleted.
Call the generic version.
- rendering/svg/SVGRootInlineBox.h:
- 3:35 AM Changeset in webkit [284314] by
-
- 3 edits2 adds in trunk
Make sure child layers of top layer elements are rendered and correctly z-ordered (top-layer-stacking.html fails)
https://bugs.webkit.org/show_bug.cgi?id=231832
Reviewed by Antoine Quint.
Source/WebCore:
Top layer elements should create CSS stacking context, per https://fullscreen.spec.whatwg.org/#rendering
I decided to call isInTopLayerOrBackdrop() twice to avoid calling it every time this function
is called. It's a cheap function.
Test: fast/layers/dialog-is-stacking-context.html
- style/StyleAdjuster.cpp:
(WebCore::Style::Adjuster::adjust const):
LayoutTests:
Ref test that compares a dialog with positioned children and one with children place
with margins.
- fast/layers/dialog-is-stacking-context-expected.html: Added.
- fast/layers/dialog-is-stacking-context.html: Added.
- 3:22 AM Changeset in webkit [284313] by
-
- 6 edits in trunk
Accelerated animations on ::backdrop shouldn't affect <dialog> (backdrop-animate-002.html fails)
https://bugs.webkit.org/show_bug.cgi?id=230008
<rdar://problem/82975766>
Reviewed by Simon Fraser and Tim Nguyen.
Source/WebCore:
We did not know how to access the ::backdrop renderer when running accelerated animations. To do so we now
implement full support to access the renderer for known pseudo-elements on Styleable with a new renderer()
method, including ::backdrop. We also make Styleable::fromRenderer() aware of ::backdrop such that the various
call sites for this function that deal with accelerated transform animations access the right element.
- animation/KeyframeEffect.cpp:
(WebCore::KeyframeEffect::renderer const):
- style/Styleable.cpp:
(WebCore::Styleable::fromRenderer):
(WebCore::Styleable::renderer const):
- style/Styleable.h:
(WebCore::Styleable::fromRenderer): Deleted.
LayoutTests:
- TestExpectations: Mark the previously failing test as passing.
- 3:16 AM Changeset in webkit [284312] by
-
- 8 edits2 adds in trunk
CSS Animations creation and sorting is incorrect and may lead to crash
https://bugs.webkit.org/show_bug.cgi?id=231812
<rdar://problem/82980774>
Reviewed by Dean Jackson.
LayoutTests/imported/w3c:
Mark two progressions in a test that now passes entirely.
- web-platform-tests/css/css-animations/Element-getAnimations-dynamic-changes.tentative-expected.txt:
Source/WebCore:
When we parse CSS properties related to CSS Animations, we create as many Animation objects as the maximum number
of values in one of the CSS Animations properties. These Animation objects are stored in an AnimationList which
is owned by RenderStyle and that we use to store all provided values such that they can be read back through the
computed style.
Upon finishing parsing those CSS properties, RenderStyle::adjustAnimations() is called and does two things that
were not quite correct.
First, it would attempt to remove animations that were in fact created for no good reason using the
Animation::isEmpty() method. That method was not quite right as it was only checking if the animation
name wasn't set but not whether the animation was explicitly marked as a "none" animation. This meant
that "none" animations could be considered as bogus animations and any animations after that one would
be mistakenly cleared.
Second, it would finish process the list of remaning animations by making sure that mis-matched CSS properties,
for instance three values for animation-duration and four values for animation-name, would be correctly represented
throughout the Animation objects. However, the function performing this work, AnimationList::fillUnsetProperties(),
used to reset the animation's name in case it wasn't explicitly set, which meant that Animation objects that did not
have a matching animation-name would end up with a valid one. This meant that further down the line, in
Styleable::updateCSSAnimations(), we couldn't distinguish Animation objects that were created without a
matching animation-name and discard those.
We've fixed those incorrect behaviors and we now have the expected number of animations created resulting in an additional
WPT PASS result.
Additionally, this also showed some issues around sorting CSS Animations in compareCSSAnimations() where we weren't
making a pointer comparison. This is now fixed and we now pass another WPT PASS result.
Test: webanimations/css-animation-sorting-crash.html
- animation/WebAnimationUtilities.cpp:
(WebCore::compareCSSAnimations):
- platform/animation/Animation.h:
(WebCore::Animation::isEmpty const):
- platform/animation/AnimationList.cpp:
(WebCore::AnimationList::fillUnsetProperties):
LayoutTests:
Add a new test that used to crash before the source change.
- animations/animation-remove-element-crash.html: Remove a line that was now a failure since only a
single animation should be created.
- webanimations/css-animation-sorting-crash-expected.txt: Added.
- webanimations/css-animation-sorting-crash.html: Added.
- 2:07 AM Changeset in webkit [284311] by
-
- 2 edits in trunk/Source/WebKit
[GTK4] Update signal name to monitor window resize
https://bugs.webkit.org/show_bug.cgi?id=231854
Reviewed by Carlos Garcia Campos.
Using size-changed (previous signal name) makes the MiniBrowser crash
running the WebDriver tests.
The signal name was changed in
https://gitlab.gnome.org/GNOME/gtk/-/commit/b7380543449ea679a2c912b66aab4855b2bb41f2,
as part of GTK 3.99.5.
Covered by existing tests.
- UIProcess/API/glib/WebKitUIClient.cpp:
- 1:22 AM Changeset in webkit [284310] by
-
- 2 edits in trunk
Add github username for myself
https://bugs.webkit.org/show_bug.cgi?id=231857
Reviewed by Yusuke Suzuki.
- metadata/contributors.json:
- 12:58 AM Changeset in webkit [284309] by
-
- 2 edits in trunk/Source/bmalloc
Unreviewed, reverting r284305.
https://bugs.webkit.org/show_bug.cgi?id=231859
webaudio-tests
Reverted changeset:
"[libpas] Enable libpas on macOS"
https://bugs.webkit.org/show_bug.cgi?id=231815
https://commits.webkit.org/r284305
Oct 15, 2021:
- 11:14 PM Changeset in webkit [284308] by
-
- 37 edits10 copies2 adds in branches/safari-612-branch
Apply patch rdar://83952929
- 11:02 PM Changeset in webkit [284307] by
-
- 16 edits in branches/safari-612-branch
Apply patch. rdar://problem/83953730
- 10:31 PM Changeset in webkit [284306] by
-
- 9 edits in trunk
Add flag to turn off Iso heap
https://bugs.webkit.org/show_bug.cgi?id=231823
Reviewed by Yusuke Suzuki.
.:
Added USE_ISO_MALLOC feature flags which is on by default for most platforms.
- Source/cmake/OptionsPlayStation.cmake:
- Source/cmake/WebKitFeatures.cmake:
Source/WTF:
If this flag is off, then all allocations are replaced with FastMalloc.
- wtf/IsoMalloc.h:
- wtf/IsoMallocInlines.h:
- wtf/PlatformUse.h:
Tools:
Added --(no-)iso-malloc feature flag for cmake build.
- Scripts/webkitperl/FeatureList.pm:
- 9:38 PM Changeset in webkit [284305] by
-
- 2 edits in trunk/Source/bmalloc
[libpas] Enable libpas on macOS
https://bugs.webkit.org/show_bug.cgi?id=231815
Reviewed by Saam Barati.
Enabling libpas on x64 macOS. Previously, we enabled it only on AppleSilicon.
This helps stressing libpas on fuzzers more. And it offers large performance
improvement.
- Speedometer2 is 2.1% improved on low-end macOS (MBA8,2) and 1.7% improved on high-end macOS (MBP14,1).
- JetStream2 is neutral on both.
- bmalloc/BPlatform.h:
- 9:11 PM Changeset in webkit [284304] by
-
- 6 edits in trunk
Start using adattributiond on iOS
https://bugs.webkit.org/show_bug.cgi?id=231829
Reviewed by Brady Eidson.
Source/WebKit:
This makes one small change to use adattributiond on iOS by default instead of the network process.
The rest of this patch is to keep the tests doing what they used to.
- UIProcess/API/C/WKWebsiteDataStoreConfigurationRef.cpp:
(WKWebsiteDataStoreConfigurationCopyPCMMachServiceName):
(WKWebsiteDataStoreConfigurationSetPCMMachServiceName):
- UIProcess/API/C/WKWebsiteDataStoreConfigurationRef.h:
- UIProcess/WebsiteData/WebsiteDataStoreConfiguration.cpp:
(WebKit::WebsiteDataStoreConfiguration::WebsiteDataStoreConfiguration):
Tools:
- TestWebKitAPI/Tests/WebKitCocoa/EventAttribution.mm:
(TestWebKitAPI::configurationWithoutUsingDaemon):
(TestWebKitAPI::webViewWithoutUsingDaemon):
(TestWebKitAPI::runBasicPCMTest):
(TestWebKitAPI::TEST):
- TestWebKitAPI/Tests/WebKitCocoa/PrivateClickMeasurement.mm:
(webViewWithResourceLoadStatisticsEnabledInNetworkProcess):
- WebKitTestRunner/TestController.cpp:
(WTR::TestController::configureWebsiteDataStoreTemporaryDirectories):
- 8:17 PM Changeset in webkit [284303] by
-
- 16 edits in trunk
[LFC][Integration] Enable inline boxes with borders
https://bugs.webkit.org/show_bug.cgi?id=231562
Reviewed by Alan Bujtas.
Source/WebCore:
- layout/integration/LayoutIntegrationCoverage.cpp:
(WebCore::LayoutIntegration::printReason):
(WebCore::LayoutIntegration::canUseForRenderInlineChild):
- layout/integration/LayoutIntegrationCoverage.h:
LayoutTests:
- fast/css/pseudo-first-line-border-width-expected.txt:
- fast/text/apply-start-width-after-skipped-text-expected.txt:
- platform/ios/fast/borders/border-image-outset-split-inline-expected.txt:
- platform/ios/fast/css/pseudo-first-line-border-width-expected.txt:
- platform/mac/fast/borders/border-image-outset-split-inline-expected.txt:
- platform/mac/fast/text/basic/015-expected.txt:
- 8:03 PM Changeset in webkit [284302] by
-
- 4 edits in trunk/Source/WebCore
Rename some keyboard-scrolling-related functions on ScrollingEffectsController for clarity
https://bugs.webkit.org/show_bug.cgi?id=231842
Reviewed by Beth Dakin.
Rename beginKeyboardScrolling/stopKeyboardScrolling to willBegin and didStop to make
it clear that they are responding to KeyboardScrollingAnimator state changes.
Add the imperative ScrollingEffectsController::stopKeyboardScrolling() which will get
hooked up soon.
- platform/KeyboardScrollingAnimator.cpp:
(WebCore::KeyboardScrollingAnimator::updateKeyboardScrollPosition):
(WebCore::KeyboardScrollingAnimator::beginKeyboardScrollGesture):
- platform/ScrollingEffectsController.cpp:
(WebCore::ScrollingEffectsController::willBeginKeyboardScrolling):
(WebCore::ScrollingEffectsController::didStopKeyboardScrolling):
(WebCore::ScrollingEffectsController::stopKeyboardScrolling):
(WebCore::ScrollingEffectsController::beginKeyboardScrolling): Deleted.
- platform/ScrollingEffectsController.h:
- 7:59 PM Changeset in webkit [284301] by
-
- 13 edits in trunk
Use attributedBundleIdentifier instead of applicationBundleIdentifier when present for handling PCM attribution
https://bugs.webkit.org/show_bug.cgi?id=231827
Reviewed by Brady Eidson.
Source/WebKit:
This is the same identifier that SafariViewController uses in _setEphemeralUIEventAttribution:forApplicationWithBundleID:
If we don't do this, then SafariViewController looks in the database for PCMs from com.apple.SafariViewService and doesn't find any and doesn't send any reports.
- NetworkProcess/NetworkDataTask.cpp:
(WebKit::NetworkDataTask::attributedBundleIdentifier):
- NetworkProcess/NetworkDataTask.h:
- NetworkProcess/NetworkLoad.cpp:
(WebKit::NetworkLoad::attributedBundleIdentifier):
- NetworkProcess/NetworkLoad.h:
- NetworkProcess/NetworkResourceLoader.cpp:
(WebKit::NetworkResourceLoader::continueWillSendRedirectedRequest):
- NetworkProcess/NetworkResourceLoader.h:
- NetworkProcess/NetworkSession.cpp:
(WebKit::NetworkSession::handlePrivateClickMeasurementConversion):
- NetworkProcess/NetworkSession.h:
- UIProcess/API/Cocoa/WKWebViewPrivateForTesting.h:
- UIProcess/API/Cocoa/WKWebViewTesting.mm:
(-[WKWebView _addEventAttributionWithSourceID:destinationURL:sourceDescription:purchaser:reportEndpoint:optionalNonce:applicationBundleID:ephemeral:]):
(-[WKWebView _addEventAttributionWithSourceID:destinationURL:sourceDescription:purchaser:reportEndpoint:optionalNonce:applicationBundleID:]): Deleted.
Tools:
- TestWebKitAPI/Tests/WebKitCocoa/EventAttribution.mm:
(TestWebKitAPI::runBasicPCMTest):
(TestWebKitAPI::TEST):
- 6:43 PM Changeset in webkit [284300] by
-
- 2 edits in trunk/Source/WebKit
[macOS] Add telemetry for system calls in WP
https://bugs.webkit.org/show_bug.cgi?id=231836
<rdar://problem/84317842>
Reviewed by Brent Fulgham.
Add telemetry for system calls in WP to understand in which context they are being used.
- WebProcess/com.apple.WebProcess.sb.in:
- 5:49 PM Changeset in webkit [284299] by
-
- 4 edits2 deletes in trunk
Unreviewed, reverting r284245.
https://bugs.webkit.org/show_bug.cgi?id=231848
Caused
Reverted changeset:
"AX: WebKit should not expose redundant AXGroups with missing
role when the label is the same as the contents"
https://bugs.webkit.org/show_bug.cgi?id=169924
https://commits.webkit.org/r284245
- 5:44 PM Changeset in webkit [284298] by
-
- 20 edits in trunk
Realize Mac CMake build of WebCore and WebKit
https://bugs.webkit.org/show_bug.cgi?id=231749
Reviewed by Alex Christensen.
.:
- Source/cmake/OptionsMac.cmake:
- Source/cmake/WebKitMacros.cmake:
Source/JavaScriptCore:
- PlatformMac.cmake:
- shell/PlatformMac.cmake:
Source/ThirdParty/ANGLE:
- Compiler.cmake:
Source/WebCore:
- CMakeLists.txt:
- PlatformMac.cmake:
Source/WebCore/PAL:
- pal/PlatformMac.cmake:
Source/WebKit:
- CMakeLists.txt:
- PlatformMac.cmake:
Source/WTF:
- wtf/PlatformMac.cmake:
Tools:
- PlatformMac.cmake:
- 5:44 PM Changeset in webkit [284297] by
-
- 2 edits in trunk/LayoutTests
REBASELINE: fast/text/capitalize-boundaries.html is a constant text failure
https://bugs.webkit.org/show_bug.cgi?id=228200
Uneviewed tes gardening/Removal of no longer needed expectation.
- platform/ios-wk2/TestExpectations:
- 5:39 PM Changeset in webkit [284296] by
-
- 5 edits in trunk/LayoutTests
REBASELINE: fast/text/capitalize-boundaries.html is a constant text failure
https://bugs.webkit.org/show_bug.cgi?id=228200
Unreviewed test gardening/rebase.
- platform/ios-wk2/fast/text/capitalize-boundaries-expected.txt:
- platform/mac-bigsur/fast/text/capitalize-boundaries-expected.txt:
- platform/mac-catalina/fast/text/capitalize-boundaries-expected.txt:
- platform/mac/fast/text/capitalize-boundaries-expected.png: Added.
- platform/mac/fast/text/capitalize-boundaries-expected.txt:
- 5:34 PM Changeset in webkit [284295] by
-
- 22 edits2 moves4 adds in trunk/Source
[iOS] Support getDisplayMedia
https://bugs.webkit.org/show_bug.cgi?id=231455
<rdar://problem/84044495>
Reviewed by Youenn Fablet and Jer Noble.
Source/WebCore:
Implement screen capture for iOS using ReplayKit. ReplayKit only captures when the
host application is in the foreground, so the MediaStream track is muted when the
app is backgrounded.
getDisplayMedia availability to JavaScript is controlled by the
ScreenCaptureEnabled
setting, which is disabled by default on iOS.
I haven't figured out how to test this automatically yet because ReplayKit always
shows its own modal user prompt before it allows capture to begin.
- SourcesCocoa.txt: Add ReplayKitCaptureSource.mm. Rename DisplayCaptureSourceMac.cpp
to DisplayCaptureSourceCocoa.cpp.
- WebCore.xcodeproj/project.pbxproj: Add new files.
- en.lproj/Localizable.strings: Add localizable strings for getDisplayMedia prompt.
- platform/graphics/cv/ImageTransferSessionVT.h:
- platform/graphics/cv/ImageTransferSessionVT.mm:
(WebCore::ImageTransferSessionVT::convertCMSampleBuffer): Add an optional MediaTime parameter.
(WebCore::ImageTransferSessionVT::createMediaSample): Add a MediaTime parameter.
- platform/mediastream/ios/ReplayKitCaptureSource.h: Added.
- platform/mediastream/ios/ReplayKitCaptureSource.mm: Added.
(-[WebCoreReplayKitScreenRecorderHelper initWithCallback:]):
(-[WebCoreReplayKitScreenRecorderHelper disconnect]):
(-[WebCoreReplayKitScreenRecorderHelper observeValueForKeyPath:ofObject:change:context:]):
(WebCore::ReplayKitCaptureSource::isAvailable): Check ReplayKit availability.
(WebCore::ReplayKitCaptureSource::create):
(WebCore::ReplayKitCaptureSource::ReplayKitCaptureSource):
(WebCore::ReplayKitCaptureSource::~ReplayKitCaptureSource):
(WebCore::ReplayKitCaptureSource::start): Start screen capture only.
(WebCore::ReplayKitCaptureSource::screenRecorderDidOutputVideoSample): Retain the
the new frame, set intrinsic size to the image size.
(WebCore::ReplayKitCaptureSource::captureStateDidChange): Update observer if interruption
state or recorder state changes so it can update the track's 'muted' state.
(WebCore::ReplayKitCaptureSource::stop): Stop capture.
(WebCore::ReplayKitCaptureSource::generateFrame):
(WebCore::ReplayKitCaptureSource::verifyCaptureIsActive): ReplayKit doesn't notify
when capture is paused, so watch for changes by monitoring the frame count.
(WebCore::ReplayKitCaptureSource::startCaptureWatchdogTimer): Start the timer that
will monitor for capture pausing/resuming.
(WebCore::screenDeviceUUID):
(WebCore::screenDevice):
(WebCore::ReplayKitCaptureSource::screenCaptureDeviceWithPersistentID):
(WebCore::ReplayKitCaptureSource::screenCaptureDevices):
- platform/mediastream/mac/CGDisplayStreamCaptureSource.cpp:
(WebCore::CGDisplayStreamCaptureSource::generateFrame): DisplayCaptureSourceMac was
renamed DisplayCaptureSourceCocoa.
(WebCore::CGDisplayStreamCaptureSource::newFrame): Take a RetainPtr<IOSurfaceRef>
instead of a DisplaySurface.
(WebCore::CGDisplayStreamCaptureSource::frameAvailableHandler): Ditto.
- platform/mediastream/mac/CGDisplayStreamCaptureSource.h:
(WebCore::CGDisplayStreamCaptureSource::DisplaySurface::DisplaySurface): Deleted.
(WebCore::CGDisplayStreamCaptureSource::DisplaySurface::~DisplaySurface): Deleted.
(WebCore::CGDisplayStreamCaptureSource::DisplaySurface::operator=): Deleted.
(WebCore::CGDisplayStreamCaptureSource::DisplaySurface::ioSurface const): Deleted.
- platform/mediastream/mac/CGDisplayStreamScreenCaptureSource.h:
- platform/mediastream/mac/CGDisplayStreamScreenCaptureSource.mm:
(WebCore::CGDisplayStreamScreenCaptureSource::create): DisplayCaptureSourceMac was
renamed DisplayCaptureSourceCocoa.
- platform/mediastream/mac/DisplayCaptureManagerCocoa.cpp:
(WebCore::DisplayCaptureManagerCocoa::updateDisplayCaptureDevices): Use
ReplayKitCaptureSource on iOS.
- platform/mediastream/mac/DisplayCaptureSourceCocoa.cpp: Renamed from Source/WebCore/platform/mediastream/mac/DisplayCaptureSourceMac.cpp.
(WebCore::DisplayCaptureSourceCocoa::create):
(WebCore::DisplayCaptureSourceCocoa::DisplayCaptureSourceCocoa):
(WebCore::DisplayCaptureSourceCocoa::~DisplayCaptureSourceCocoa):
(WebCore::DisplayCaptureSourceCocoa::capabilities):
(WebCore::DisplayCaptureSourceCocoa::settings):
(WebCore::DisplayCaptureSourceCocoa::settingsDidChange):
(WebCore::DisplayCaptureSourceCocoa::startProducingData):
(WebCore::DisplayCaptureSourceCocoa::stopProducingData):
(WebCore::DisplayCaptureSourceCocoa::elapsedTime):
(WebCore::DisplayCaptureSourceCocoa::updateFrameSize):
(WebCore::DisplayCaptureSourceCocoa::emitFrame): Support capturer returning a CMSampleBuffer.
(WebCore::DisplayCaptureSourceCocoa::setLogger):
(WebCore::DisplayCaptureSourceCocoa::Capturer::setLogger): Set the capturer's logger.
(WebCore::DisplayCaptureSourceCocoa::Capturer::logChannel const):
(WebCore::DisplayCaptureSourceCocoa::Capturer::Observer::~Observer):
(WebCore::DisplayCaptureSourceCocoa::Capturer::setObserver):
(WebCore::DisplayCaptureSourceCocoa::Capturer::capturerIsRunningChanged):
- platform/mediastream/mac/DisplayCaptureSourceCocoa.h: Renamed from Source/WebCore/platform/mediastream/mac/DisplayCaptureSourceMac.h.
- platform/mediastream/mac/RealtimeMediaSourceCenterMac.cpp:
(WebCore::DisplayCaptureSourceFactoryMac::createDisplayCaptureSource): DisplayCaptureSourceMac
renamed to DisplayCaptureSourceCocoa.
- platform/mock/MockRealtimeMediaSourceCenter.cpp:
(WebCore::MockDisplayCapturer::generateFrame): Ditto.
Source/WebCore/PAL:
- PAL.xcodeproj/project.pbxproj:
- pal/ios/ReplayKitSoftLink.h: Added.
- pal/ios/ReplayKitSoftLink.mm: Added.
Source/WebKit:
- UIProcess/Cocoa/MediaPermissionUtilities.mm:
(WebKit::alertMessageText): Add text for default screen capture prompt.
(WebKit::allowButtonText): Ditto.
(WebKit::doNotAllowButtonText): Ditto.
- UIProcess/Cocoa/UIDelegate.mm:
(WebKit::UIDelegate::UIClient::decidePolicyForUserMediaPermissionRequest): Call
default getDisplayMedia prompt if the delegate doesn't implement the private
prompt selector.
- UIProcess/MediaPermissionUtilities.h:
- UIProcess/UserMediaPermissionRequestProxy.cpp:
(WebKit::UserMediaPermissionRequestProxy::promptForGetDisplayMedia): New default
getDisplayMedia prompt.
(WebKit::UserMediaPermissionRequestProxy::promptForGetUserMedia):
(WebKit::UserMediaPermissionRequestProxy::doDefaultAction): Call promptForGetDisplayMedia
or promptForGetUserMedia according to the request type.
(WebKit::UserMediaPermissionRequestProxy::canPromptForGetDisplayMedia):
(WebKit::UserMediaPermissionRequestProxy::prompt): Deleted.
- UIProcess/UserMediaPermissionRequestProxy.h:
(WebKit::UserMediaPermissionRequestProxy::doDefaultAction): Deleted.
- 5:00 PM Changeset in webkit [284294] by
-
- 5 edits in trunk/Source/WebKit
[iOS] Screen Sharing doesn't switch to AirPlay when <video> enters fullscreen mode
https://bugs.webkit.org/show_bug.cgi?id=231807
<rdar://82995799>
Reviewed by Eric Carlson.
WebKit will allow AVPlayer to switch to AirPlay Video mode from Screen Sharing when a
<video> element is in fullscreen mode. However, the fullscreen state this code depends on
is not stored in the GPU process.
Implement RemoteMediaPlayerProxy::mediaPlayerFullscreenMode()
and ::mediaPlayerIsVideoFullscreenStandby().
- GPUProcess/media/RemoteMediaPlayerProxy.cpp:
(WebKit::RemoteMediaPlayerProxy::setVideoFullscreenMode):
(WebKit::RemoteMediaPlayerProxy::videoFullscreenStandbyChanged):
(WebKit::RemoteMediaPlayerProxy::mediaPlayerFullscreenMode const):
(WebKit::RemoteMediaPlayerProxy::mediaPlayerIsVideoFullscreenStandby const):
- GPUProcess/media/RemoteMediaPlayerProxy.h:
- GPUProcess/media/RemoteMediaPlayerProxy.messages.in:
- WebProcess/GPU/media/MediaPlayerPrivateRemote.cpp:
(WebKit::MediaPlayerPrivateRemote::videoFullscreenStandbyChanged):
- 4:57 PM Changeset in webkit [284293] by
-
- 2 edits in trunk/Source/ThirdParty/ANGLE
REGRESSION (r283667): webgl/2.0.0/deqp/functional/gles3/lifetime.html fails
https://bugs.webkit.org/show_bug.cgi?id=231682
Transform feedback should avoid appending _u for
builtin output variables.
Reviewed by Kimmo Kinnunen.
- src/libANGLE/renderer/metal/mtl_glslang_mtl_utils.mm:
(rx::mtl::GenerateTransformFeedbackVaryingOutput):
- 4:46 PM Changeset in webkit [284292] by
-
- 8 edits in branches/safari-612-branch/Source
Apply patch. rdar://problem/83955481
- 4:45 PM Changeset in webkit [284291] by
-
- 2 edits in trunk/Source/WebKit
Some canvas tests are failing
https://bugs.webkit.org/show_bug.cgi?id=231837
<rdar://problem/84318280>
Reviewed by Brent Fulgham.
To be able to receive the Launch Services database over XPC, a Network process XPC endpoint has to be sent to the
GPU process. This was being sent in GPUProcessProxy::didFinishLaunching, but since the session ID and Website data
store is not always available there, it was sometimes not being sent. Instead, send the endpoint in
GPUProcessProxy::addSession, where the Website data store is always available.
- UIProcess/GPU/GPUProcessProxy.cpp:
(WebKit::GPUProcessProxy::didFinishLaunching):
(WebKit::GPUProcessProxy::addSession):
- 4:44 PM Changeset in webkit [284290] by
-
- 1 edit6 adds in trunk/LayoutTests
[ iOS 15 ] Rebaselining platform/ios/ios/fast/text/opticalFontWithWeight.html.
https://bugs.webkit.org/show_bug.cgi?id=231380
Unreviewed test gardening.
- platform/ios-14/platform/ios/ios/fast/text/opticalFontWithWeight-expected.txt: Added.
- 4:43 PM Changeset in webkit [284289] by
-
- 91 edits13 copies4 adds in branches/safari-612-branch
Apply patch. rdar://problem/83955868
- 4:37 PM Changeset in webkit [284288] by
-
- 2 edits162 adds in branches/safari-612-branch/LayoutTests/imported/w3c
Cherry-pick r281769. rdar://problem/84234711
Import file-system-access tests from WPT
https://bugs.webkit.org/show_bug.cgi?id=229593
Reviewed by Ryosuke Niwa.
- resources/import-expectations.json:
- web-platform-tests/file-system-access/META.yml: Added.
- web-platform-tests/file-system-access/README.md: Added.
- web-platform-tests/file-system-access/idlharness.https.any-expected.txt: Added.
- web-platform-tests/file-system-access/idlharness.https.any.html: Added.
- web-platform-tests/file-system-access/idlharness.https.any.js: Added.
- web-platform-tests/file-system-access/idlharness.https.any.worker-expected.txt: Added.
- web-platform-tests/file-system-access/idlharness.https.any.worker.html: Added.
- web-platform-tests/file-system-access/opaque-origin.https.window-expected.txt: Added.
- web-platform-tests/file-system-access/opaque-origin.https.window.html: Added.
- web-platform-tests/file-system-access/opaque-origin.https.window.js: Added. (add_iframe): (async verify_does_not_exist_in_data_uri_iframe): (async verify_results_from_sandboxed_child_window):
- web-platform-tests/file-system-access/resources/data/testfile.txt: Added.
- web-platform-tests/file-system-access/resources/data/w3c-import.log: Added.
- web-platform-tests/file-system-access/resources/local-fs-test-helpers.js: Added. (const.directory_promise.async await): (const.directory_promise): (directory_test): (async directory_test):
- web-platform-tests/file-system-access/resources/message-target-dedicated-worker.js: Added.
- web-platform-tests/file-system-access/resources/message-target-service-worker.js: Added.
- web-platform-tests/file-system-access/resources/message-target-shared-worker.js: Added.
- web-platform-tests/file-system-access/resources/message-target.html: Added.
- web-platform-tests/file-system-access/resources/message-target.js: Added. (async receiver): (add_message_event_handlers):
- web-platform-tests/file-system-access/resources/messaging-blob-helpers.js: Added. (async create_message_target_blob_url): (async create_message_target_data_uri): (async create_message_target_html_without_subresources): (async fetch_text):
- web-platform-tests/file-system-access/resources/messaging-helpers.js: Added. (create_dedicated_worker): (async create_service_worker): (async add_iframe): (async open_window): (async wait_for_loaded_message): (create_message_channel): (async create_file_system_handles): (async do_post_message_test): (async do_message_port_test):
- web-platform-tests/file-system-access/resources/messaging-serialize-helpers.js: Added. (async serialize_handles): (async serialize_handle): (async serialize_file_system_handle): (async serialize_file_system_file_handle): (async serialize_file_system_directory_handle): (async assert_equals_cloned_handles): (assert_equals_serialized_handles): (assert_equals_serialized_handle): (assert_equals_serialized_file_system_handle): (assert_equals_serialized_file_system_file_handle): (assert_equals_serialized_file_system_directory_handle): (serialize_message_error_event): (assert_equals_serialized_message_error_event):
- web-platform-tests/file-system-access/resources/opaque-origin-sandbox.html: Added.
- web-platform-tests/file-system-access/resources/sandboxed-fs-test-helpers.js: Added. (async cleanupSandboxedFileSystem):
- web-platform-tests/file-system-access/resources/sync-access-handle-test.js: Added. (async cleanupSandboxedFileSystem):
- web-platform-tests/file-system-access/resources/test-helpers.js: Added. (navigator.userAgent.includes): (async getFileSize): (async getFileContents): (async getDirectoryEntryCount): (async getSortedDirectoryEntries): (async createFileWithContents): (garbageCollect):
- web-platform-tests/file-system-access/resources/w3c-import.log: Added.
- web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-IndexedDB.https.any-expected.txt: Added.
- web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-IndexedDB.https.any.html: Added.
- web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-IndexedDB.https.any.js: Added.
- web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-IndexedDB.https.any.worker-expected.txt: Added.
- web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-IndexedDB.https.any.worker.html: Added.
- web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-isSameEntry.https.any-expected.txt: Added.
- web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-isSameEntry.https.any.html: Added.
- web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-isSameEntry.https.any.js: Added.
- web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-isSameEntry.https.any.worker-expected.txt: Added.
- web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-isSameEntry.https.any.worker.html: Added.
- web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-postMessage-BroadcastChannel.https.window-expected.txt: Added.
- web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-postMessage-BroadcastChannel.https.window.html: Added.
- web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-postMessage-BroadcastChannel.https.window.js: Added.
- web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-postMessage-Error.https.window-expected.txt: Added.
- web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-postMessage-Error.https.window.html: Added.
- web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-postMessage-Error.https.window.js: Added.
- web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-postMessage-MessagePort-frames.https.window-expected.txt: Added.
- web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-postMessage-MessagePort-frames.https.window.html: Added.
- web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-postMessage-MessagePort-frames.https.window.js: Added.
- web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-postMessage-MessagePort-windows.https.window-expected.txt: Added.
- web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-postMessage-MessagePort-windows.https.window.html: Added.
- web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-postMessage-MessagePort-windows.https.window.js: Added.
- web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-postMessage-MessagePort-workers.https.window-expected.txt: Added.
- web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-postMessage-MessagePort-workers.https.window.html: Added.
- web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-postMessage-MessagePort-workers.https.window.js: Added.
- web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-postMessage-frames.https.window-expected.txt: Added.
- web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-postMessage-frames.https.window.html: Added.
- web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-postMessage-frames.https.window.js: Added.
- web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-postMessage-windows.https.window-expected.txt: Added.
- web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-postMessage-windows.https.window.html: Added.
- web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-postMessage-windows.https.window.js: Added.
- web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-postMessage-workers.https.window-expected.txt: Added.
- web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-postMessage-workers.https.window.html: Added.
- web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-postMessage-workers.https.window.js: Added.
- web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-remove.https.any-expected.txt: Added.
- web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-remove.https.any.html: Added.
- web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-remove.https.any.js: Added.
- web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-remove.https.any.worker-expected.txt: Added.
- web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-remove.https.any.worker.html: Added.
- web-platform-tests/file-system-access/sandboxed_FileSystemDirectoryHandle-getDirectoryHandle.https.any-expected.txt: Added.
- web-platform-tests/file-system-access/sandboxed_FileSystemDirectoryHandle-getDirectoryHandle.https.any.html: Added.
- web-platform-tests/file-system-access/sandboxed_FileSystemDirectoryHandle-getDirectoryHandle.https.any.js: Added.
- web-platform-tests/file-system-access/sandboxed_FileSystemDirectoryHandle-getDirectoryHandle.https.any.worker-expected.txt: Added.
- web-platform-tests/file-system-access/sandboxed_FileSystemDirectoryHandle-getDirectoryHandle.https.any.worker.html: Added.
- web-platform-tests/file-system-access/sandboxed_FileSystemDirectoryHandle-getFileHandle.https.any-expected.txt: Added.
- web-platform-tests/file-system-access/sandboxed_FileSystemDirectoryHandle-getFileHandle.https.any.html: Added.
- web-platform-tests/file-system-access/sandboxed_FileSystemDirectoryHandle-getFileHandle.https.any.js: Added.
- web-platform-tests/file-system-access/sandboxed_FileSystemDirectoryHandle-getFileHandle.https.any.worker-expected.txt: Added.
- web-platform-tests/file-system-access/sandboxed_FileSystemDirectoryHandle-getFileHandle.https.any.worker.html: Added.
- web-platform-tests/file-system-access/sandboxed_FileSystemDirectoryHandle-iteration.https.any-expected.txt: Added.
- web-platform-tests/file-system-access/sandboxed_FileSystemDirectoryHandle-iteration.https.any.html: Added.
- web-platform-tests/file-system-access/sandboxed_FileSystemDirectoryHandle-iteration.https.any.js: Added.
- web-platform-tests/file-system-access/sandboxed_FileSystemDirectoryHandle-iteration.https.any.worker-expected.txt: Added.
- web-platform-tests/file-system-access/sandboxed_FileSystemDirectoryHandle-iteration.https.any.worker.html: Added.
- web-platform-tests/file-system-access/sandboxed_FileSystemDirectoryHandle-removeEntry.https.any-expected.txt: Added.
- web-platform-tests/file-system-access/sandboxed_FileSystemDirectoryHandle-removeEntry.https.any.html: Added.
- web-platform-tests/file-system-access/sandboxed_FileSystemDirectoryHandle-removeEntry.https.any.js: Added.
- web-platform-tests/file-system-access/sandboxed_FileSystemDirectoryHandle-removeEntry.https.any.worker-expected.txt: Added.
- web-platform-tests/file-system-access/sandboxed_FileSystemDirectoryHandle-removeEntry.https.any.worker.html: Added.
- web-platform-tests/file-system-access/sandboxed_FileSystemDirectoryHandle-resolve.https.any-expected.txt: Added.
- web-platform-tests/file-system-access/sandboxed_FileSystemDirectoryHandle-resolve.https.any.html: Added.
- web-platform-tests/file-system-access/sandboxed_FileSystemDirectoryHandle-resolve.https.any.js: Added.
- web-platform-tests/file-system-access/sandboxed_FileSystemDirectoryHandle-resolve.https.any.worker-expected.txt: Added.
- web-platform-tests/file-system-access/sandboxed_FileSystemDirectoryHandle-resolve.https.any.worker.html: Added.
- web-platform-tests/file-system-access/sandboxed_FileSystemFileHandle-create-sync-access-handle-dedicated-worker.https.tentative.window-expected.txt: Added.
- web-platform-tests/file-system-access/sandboxed_FileSystemFileHandle-create-sync-access-handle-dedicated-worker.https.tentative.window.html: Added.
- web-platform-tests/file-system-access/sandboxed_FileSystemFileHandle-create-sync-access-handle-dedicated-worker.https.tentative.window.js: Added.
- web-platform-tests/file-system-access/sandboxed_FileSystemFileHandle-getFile.https.any-expected.txt: Added.
- web-platform-tests/file-system-access/sandboxed_FileSystemFileHandle-getFile.https.any.html: Added.
- web-platform-tests/file-system-access/sandboxed_FileSystemFileHandle-getFile.https.any.js: Added.
- web-platform-tests/file-system-access/sandboxed_FileSystemFileHandle-getFile.https.any.worker-expected.txt: Added.
- web-platform-tests/file-system-access/sandboxed_FileSystemFileHandle-getFile.https.any.worker.html: Added.
- web-platform-tests/file-system-access/sandboxed_FileSystemFileHandle-sync-access-handle-lock.https.tentative.worker-expected.txt: Added.
- web-platform-tests/file-system-access/sandboxed_FileSystemFileHandle-sync-access-handle-lock.https.tentative.worker.html: Added.
- web-platform-tests/file-system-access/sandboxed_FileSystemFileHandle-sync-access-handle-lock.https.tentative.worker.js: Added. (promise_test.async t):
- web-platform-tests/file-system-access/sandboxed_FileSystemSyncAccessHandle-close.https.tentative.worker-expected.txt: Added.
- web-platform-tests/file-system-access/sandboxed_FileSystemSyncAccessHandle-close.https.tentative.worker.html: Added.
- web-platform-tests/file-system-access/sandboxed_FileSystemSyncAccessHandle-close.https.tentative.worker.js: Added. (sync_access_handle_test.async testCase):
- web-platform-tests/file-system-access/sandboxed_FileSystemSyncAccessHandle-flush.https.tentative.worker-expected.txt: Added.
- web-platform-tests/file-system-access/sandboxed_FileSystemSyncAccessHandle-flush.https.tentative.worker.html: Added.
- web-platform-tests/file-system-access/sandboxed_FileSystemSyncAccessHandle-flush.https.tentative.worker.js: Added. (sync_access_handle_test.async t): (sync_access_handle_test.async testCase):
- web-platform-tests/file-system-access/sandboxed_FileSystemSyncAccessHandle-getSize.https.tentative.worker-expected.txt: Added.
- web-platform-tests/file-system-access/sandboxed_FileSystemSyncAccessHandle-getSize.https.tentative.worker.html: Added.
- web-platform-tests/file-system-access/sandboxed_FileSystemSyncAccessHandle-getSize.https.tentative.worker.js: Added. (sync_access_handle_test.async testCase):
- web-platform-tests/file-system-access/sandboxed_FileSystemSyncAccessHandle-read-write.https.tentative.worker-expected.txt: Added.
- web-platform-tests/file-system-access/sandboxed_FileSystemSyncAccessHandle-read-write.https.tentative.worker.html: Added.
- web-platform-tests/file-system-access/sandboxed_FileSystemSyncAccessHandle-read-write.https.tentative.worker.js: Added. (sync_access_handle_test):
- web-platform-tests/file-system-access/sandboxed_FileSystemSyncAccessHandle-truncate.https.tentative.worker-expected.txt: Added.
- web-platform-tests/file-system-access/sandboxed_FileSystemSyncAccessHandle-truncate.https.tentative.worker.html: Added.
- web-platform-tests/file-system-access/sandboxed_FileSystemSyncAccessHandle-truncate.https.tentative.worker.js: Added. (sync_access_handle_test.async testCase):
- web-platform-tests/file-system-access/sandboxed_FileSystemWritableFileStream-piped.https.any-expected.txt: Added.
- web-platform-tests/file-system-access/sandboxed_FileSystemWritableFileStream-piped.https.any.html: Added.
- web-platform-tests/file-system-access/sandboxed_FileSystemWritableFileStream-piped.https.any.js: Added.
- web-platform-tests/file-system-access/sandboxed_FileSystemWritableFileStream-piped.https.any.worker-expected.txt: Added.
- web-platform-tests/file-system-access/sandboxed_FileSystemWritableFileStream-piped.https.any.worker.html: Added.
- web-platform-tests/file-system-access/sandboxed_FileSystemWritableFileStream-write.https.any-expected.txt: Added.
- web-platform-tests/file-system-access/sandboxed_FileSystemWritableFileStream-write.https.any.html: Added.
- web-platform-tests/file-system-access/sandboxed_FileSystemWritableFileStream-write.https.any.js: Added.
- web-platform-tests/file-system-access/sandboxed_FileSystemWritableFileStream-write.https.any.worker-expected.txt: Added.
- web-platform-tests/file-system-access/sandboxed_FileSystemWritableFileStream-write.https.any.worker.html: Added.
- web-platform-tests/file-system-access/sandboxed_FileSystemWritableFileStream.https.any-expected.txt: Added.
- web-platform-tests/file-system-access/sandboxed_FileSystemWritableFileStream.https.any.html: Added.
- web-platform-tests/file-system-access/sandboxed_FileSystemWritableFileStream.https.any.js: Added.
- web-platform-tests/file-system-access/sandboxed_FileSystemWritableFileStream.https.any.worker-expected.txt: Added.
- web-platform-tests/file-system-access/sandboxed_FileSystemWritableFileStream.https.any.worker.html: Added.
- web-platform-tests/file-system-access/script-tests/FileSystemBaseHandle-IndexedDB.js: Added. (directory_test.async t):
- web-platform-tests/file-system-access/script-tests/FileSystemBaseHandle-isSameEntry.js: Added. (directory_test.async t):
- web-platform-tests/file-system-access/script-tests/FileSystemBaseHandle-postMessage-BroadcastChannel.js: Added. (async create_broadcast_channel): (directory_test.async t):
- web-platform-tests/file-system-access/script-tests/FileSystemBaseHandle-postMessage-Error.js: Added. (async do_send_message_error_test): (async do_receive_message_error_test): (async do_send_and_receive_message_error_test): (async do_send_message_port_error_test): (async do_receive_message_port_error_test): (async do_send_and_receive_message_port_error_test): (directory_test.async t):
- web-platform-tests/file-system-access/script-tests/FileSystemBaseHandle-postMessage-MessagePort-frames.js: Added. (directory_test.async t):
- web-platform-tests/file-system-access/script-tests/FileSystemBaseHandle-postMessage-MessagePort-windows.js: Added. (directory_test.async t):
- web-platform-tests/file-system-access/script-tests/FileSystemBaseHandle-postMessage-MessagePort-workers.js: Added. (directory_test.async t): (self.SharedWorker.undefined.directory_test.async t):
- web-platform-tests/file-system-access/script-tests/FileSystemBaseHandle-postMessage-frames.js: Added. (directory_test.async t):
- web-platform-tests/file-system-access/script-tests/FileSystemBaseHandle-postMessage-windows.js: Added. (directory_test.async t):
- web-platform-tests/file-system-access/script-tests/FileSystemBaseHandle-postMessage-workers.js: Added. (directory_test.async t): (self.SharedWorker.undefined.directory_test.async t):
- web-platform-tests/file-system-access/script-tests/FileSystemBaseHandle-remove.js: Added. (directory_test.async t):
- web-platform-tests/file-system-access/script-tests/FileSystemDirectoryHandle-getDirectoryHandle.js: Added. (directory_test.async t):
- web-platform-tests/file-system-access/script-tests/FileSystemDirectoryHandle-getFileHandle.js: Added. (directory_test.async t):
- web-platform-tests/file-system-access/script-tests/FileSystemDirectoryHandle-iteration.js: Added. (directory_test.async t):
- web-platform-tests/file-system-access/script-tests/FileSystemDirectoryHandle-removeEntry.js: Added. (directory_test.async t):
- web-platform-tests/file-system-access/script-tests/FileSystemDirectoryHandle-resolve.js: Added. (directory_test.async t):
- web-platform-tests/file-system-access/script-tests/FileSystemFileHandle-create-sync-access-handle-dedicated-worker.js: Added. (directory_test.async t):
- web-platform-tests/file-system-access/script-tests/FileSystemFileHandle-getFile.js: Added. (directory_test.async t):
- web-platform-tests/file-system-access/script-tests/FileSystemSyncAccessHandle-flush.js: Added. (sync_access_handle_test.async handle):
- web-platform-tests/file-system-access/script-tests/FileSystemWritableFileStream-piped.js: Added. (directory_test.async t):
- web-platform-tests/file-system-access/script-tests/FileSystemWritableFileStream-write.js: Added. (directory_test.async t):
- web-platform-tests/file-system-access/script-tests/FileSystemWritableFileStream.js: Added. (directory_test.async t):
- web-platform-tests/file-system-access/script-tests/w3c-import.log: Added.
- web-platform-tests/file-system-access/showPicker-errors.https.window-expected.txt: Added.
- web-platform-tests/file-system-access/showPicker-errors.https.window.html: Added.
- web-platform-tests/file-system-access/showPicker-errors.https.window.js: Added. (promise_test.async t): (define_file_picker_error_tests.async promise_test): (define_file_picker_error_tests.async const): (define_file_picker_error_tests): (define_file_picker_extension_error_test):
- web-platform-tests/file-system-access/w3c-import.log: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@281769 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 4:35 PM Changeset in webkit [284287] by
-
- 9 edits6 adds in trunk
[iOS] Support accent-color for button-like controls
https://bugs.webkit.org/show_bug.cgi?id=231764
rdar://84261821
Reviewed by Tim Horton.
Source/WebCore:
Apply accent-color to buttons, date inputs, and <select> elements.
Tests: fast/css/accent-color/button.html
fast/css/accent-color/date.html
fast/css/accent-color/submit.html
- html/HTMLButtonElement.cpp:
(WebCore::HTMLButtonElement::isExplicitlySetSubmitButton const):
Return true if the author has explicitly made the <button> a
submit button. This is necessary, as submit buttons have an appearance
that is different from a standard button on iOS.
- html/HTMLButtonElement.h:
- rendering/RenderThemeIOS.h:
- rendering/RenderThemeIOS.mm:
(WebCore::RenderThemeIOS::adjustMenuListButtonStyle const):
(WebCore::RenderThemeIOS::isSubmitStyleButton const):
(WebCore::RenderThemeIOS::adjustButtonLikeControlStyle const):
(WebCore::RenderThemeIOS::adjustButtonStyle const):
(WebCore::RenderThemeIOS::adjustPressedStyle const): Deleted.
LayoutTests:
Add new tests for iOS and mark newly passing test.
- TestExpectations:
- fast/css/accent-color/button-expected-mismatch.html: Added.
- fast/css/accent-color/button.html: Added.
- fast/css/accent-color/date-expected-mismatch.html: Added.
- fast/css/accent-color/date.html: Added.
- fast/css/accent-color/submit-expected-mismatch.html: Added.
- fast/css/accent-color/submit.html: Added.
- platform/ios/TestExpectations:
- platform/mac/TestExpectations:
- 4:35 PM Changeset in webkit [284286] by
-
- 2 edits78 adds in branches/safari-612-branch/LayoutTests/imported/w3c
Cherry-pick r282088. rdar://problem/84234366
Import storage tests from WPT
https://bugs.webkit.org/show_bug.cgi?id=229965
Reviewed by Youenn Fablet.
- resources/import-expectations.json:
- web-platform-tests/storage/META.yml: Added.
- web-platform-tests/storage/README.md: Added.
- web-platform-tests/storage/buckets/META.yml: Added.
- web-platform-tests/storage/buckets/w3c-import.log: Added.
- web-platform-tests/storage/estimate-indexeddb.https.any-expected.txt: Added.
- web-platform-tests/storage/estimate-indexeddb.https.any.html: Added.
- web-platform-tests/storage/estimate-indexeddb.https.any.js: Added. (indexedDbOpenRequest): (promise_test.async t):
- web-platform-tests/storage/estimate-indexeddb.https.any.worker-expected.txt: Added.
- web-platform-tests/storage/estimate-indexeddb.https.any.worker.html: Added.
- web-platform-tests/storage/estimate-parallel.https.any-expected.txt: Added.
- web-platform-tests/storage/estimate-parallel.https.any.html: Added.
- web-platform-tests/storage/estimate-parallel.https.any.js: Added. (promise_test.async t):
- web-platform-tests/storage/estimate-parallel.https.any.worker-expected.txt: Added.
- web-platform-tests/storage/estimate-parallel.https.any.worker.html: Added.
- web-platform-tests/storage/estimate-usage-details-application-cache.https.tentative-expected.txt: Added.
- web-platform-tests/storage/estimate-usage-details-application-cache.https.tentative.html: Added.
- web-platform-tests/storage/estimate-usage-details-caches.https.tentative.any-expected.txt: Added.
- web-platform-tests/storage/estimate-usage-details-caches.https.tentative.any.html: Added.
- web-platform-tests/storage/estimate-usage-details-caches.https.tentative.any.js: Added. (promise_test.async t):
- web-platform-tests/storage/estimate-usage-details-caches.https.tentative.any.worker-expected.txt: Added.
- web-platform-tests/storage/estimate-usage-details-caches.https.tentative.any.worker.html: Added.
- web-platform-tests/storage/estimate-usage-details-indexeddb.https.tentative.any-expected.txt: Added.
- web-platform-tests/storage/estimate-usage-details-indexeddb.https.tentative.any.html: Added.
- web-platform-tests/storage/estimate-usage-details-indexeddb.https.tentative.any.js: Added. (promise_test.async t):
- web-platform-tests/storage/estimate-usage-details-indexeddb.https.tentative.any.worker-expected.txt: Added.
- web-platform-tests/storage/estimate-usage-details-indexeddb.https.tentative.any.worker.html: Added.
- web-platform-tests/storage/estimate-usage-details-service-workers.https.tentative.window-expected.txt: Added.
- web-platform-tests/storage/estimate-usage-details-service-workers.https.tentative.window.html: Added.
- web-platform-tests/storage/estimate-usage-details-service-workers.https.tentative.window.js: Added. (promise_test.async t):
- web-platform-tests/storage/estimate-usage-details.https.tentative.any-expected.txt: Added.
- web-platform-tests/storage/estimate-usage-details.https.tentative.any.html: Added.
- web-platform-tests/storage/estimate-usage-details.https.tentative.any.js: Added. (promise_test.async t):
- web-platform-tests/storage/estimate-usage-details.https.tentative.any.worker-expected.txt: Added.
- web-platform-tests/storage/estimate-usage-details.https.tentative.any.worker.html: Added.
- web-platform-tests/storage/helpers.js: Added. (createDB):
- web-platform-tests/storage/idlharness.https.any-expected.txt: Added.
- web-platform-tests/storage/idlharness.https.any.html: Added.
- web-platform-tests/storage/idlharness.https.any.js: Added.
- web-platform-tests/storage/idlharness.https.any.worker-expected.txt: Added.
- web-platform-tests/storage/idlharness.https.any.worker.html: Added.
- web-platform-tests/storage/opaque-origin.https.window-expected.txt: Added.
- web-platform-tests/storage/opaque-origin.https.window.html: Added.
- web-platform-tests/storage/opaque-origin.https.window.js: Added. (load_iframe): (wait_for_message.return.new.Promise): (forEach.snippet.assert_equals):
- web-platform-tests/storage/permission-query.https.any-expected.txt: Added.
- web-platform-tests/storage/permission-query.https.any.html: Added.
- web-platform-tests/storage/permission-query.https.any.js: Added. (promise_test.async t):
- web-platform-tests/storage/permission-query.https.any.worker-expected.txt: Added.
- web-platform-tests/storage/permission-query.https.any.worker.html: Added.
- web-platform-tests/storage/persisted.https.any-expected.txt: Added.
- web-platform-tests/storage/persisted.https.any.html: Added.
- web-platform-tests/storage/persisted.https.any.js: Added. (test): (promise_test):
- web-platform-tests/storage/persisted.https.any.worker-expected.txt: Added.
- web-platform-tests/storage/persisted.https.any.worker.html: Added.
- web-platform-tests/storage/quotachange-in-detached-iframe.tentative.https-expected.txt: Added.
- web-platform-tests/storage/quotachange-in-detached-iframe.tentative.https.html: Added.
- web-platform-tests/storage/resources/appcache.manifest: Added.
- web-platform-tests/storage/resources/iframe_with_appcache_manifest.html: Added.
- web-platform-tests/storage/resources/w3c-import.log: Added.
- web-platform-tests/storage/storagemanager-estimate.https.any-expected.txt: Added.
- web-platform-tests/storage/storagemanager-estimate.https.any.html: Added.
- web-platform-tests/storage/storagemanager-estimate.https.any.js: Added. (test): (promise_test):
- web-platform-tests/storage/storagemanager-estimate.https.any.worker-expected.txt: Added.
- web-platform-tests/storage/storagemanager-estimate.https.any.worker.html: Added.
- web-platform-tests/storage/storagemanager-persist.https.window-expected.txt: Added.
- web-platform-tests/storage/storagemanager-persist.https.window.html: Added.
- web-platform-tests/storage/storagemanager-persist.https.window.js: Added. (promise_test):
- web-platform-tests/storage/storagemanager-persist.https.worker-expected.txt: Added.
- web-platform-tests/storage/storagemanager-persist.https.worker.html: Added.
- web-platform-tests/storage/storagemanager-persist.https.worker.js: Added. (test):
- web-platform-tests/storage/storagemanager-persisted.https.any-expected.txt: Added.
- web-platform-tests/storage/storagemanager-persisted.https.any.html: Added.
- web-platform-tests/storage/storagemanager-persisted.https.any.js: Added. (promise_test):
- web-platform-tests/storage/storagemanager-persisted.https.any.worker-expected.txt: Added.
- web-platform-tests/storage/storagemanager-persisted.https.any.worker.html: Added.
- web-platform-tests/storage/w3c-import.log: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@282088 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 4:24 PM Changeset in webkit [284285] by
-
- 2 edits in trunk/Source/JavaScriptCore
[JSC] Optimize Structure::getConcurrently
https://bugs.webkit.org/show_bug.cgi?id=231825
Reviewed by Filip Pizlo.
From artrace data, we found that Structure::getConcurrently is taking fair amount of time
in Speedometer2 *in the main thread*! This is because Structure::getConcurrently is used
in PropertyCondition, and its validation can be called in the main thread when watched
Structure transition happens, ObjectPropertyConditionSet is created for IC etc.
Structure::getConcurrently is slow since it is using Structure::forEachPropertyConcurrently.
We can optimize Structure::getConcurrently since,
- We do not need to track seen properties via seenProperties HashSet.
- We can handle TransitionKind::PropertyDeletion.
- We can use PropertyTable::get.
We are seeing consistent 0.4% improvement in Speedometer2 (I ran 120 Speedometer2 runs twice and both said 0.4% improvement).
| subtest | ms | ms | b / a | pValue (significance using False Discovery Rate) |
| Elm-TodoMVC |106.201667 |106.030000 |0.998384 | 0.666695 |
| VueJS-TodoMVC |21.955000 |21.985000 |1.001366 | 0.898294 |
| EmberJS-TodoMVC |120.720000 |119.938333 |0.993525 | 0.055063 |
| BackboneJS-TodoMVC |40.306667 |40.023333 |0.992971 | 0.054858 |
| Preact-TodoMVC |16.273333 |15.968333 |0.981258 | 0.135893 |
| AngularJS-TodoMVC |123.325000 |122.596667 |0.994094 | 0.079212 |
| Vanilla-ES2015-TodoMVC |60.116667 |60.168333 |1.000859 | 0.691981 |
| Inferno-TodoMVC |58.945000 |58.538333 |0.993101 | 0.155753 |
| Flight-TodoMVC |57.846667 |57.808333 |0.999337 | 0.868408 |
| Angular2-TypeScript-TodoMVC |38.595000 |38.260000 |0.991320 | 0.392602 |
| VanillaJS-TodoMVC |50.316667 |50.185000 |0.997383 | 0.609335 |
| jQuery-TodoMVC |208.376667 |208.933333 |1.002671 | 0.196406 |
| EmberJS-Debug-TodoMVC |338.481667 |336.755000 |0.994899 | 0.007485 |
| React-TodoMVC |82.533333 |82.091667 |0.994649 | 0.037482 |
| React-Redux-TodoMVC |133.703333 |133.258333 |0.996672 | 0.069242 |
| Vanilla-ES2015-Babel-Webpack-TodoMVC |59.346667 |59.600000 |1.004269 | 0.203370 |
a mean = 282.95715
b mean = 284.07606
pValue = 0.0013877157
(Bigger means are better.)
1.004 times better
Results ARE significant
- runtime/Structure.cpp:
(JSC::Structure::getConcurrently):
- 4:02 PM Changeset in webkit [284284] by
-
- 9 edits in branches/safari-612-branch/Source
Revert "Cherry-pick r283572. rdar://problem/83953133"
This reverts commit r284279.
- 3:51 PM Changeset in webkit [284283] by
-
- 6 edits in trunk/Tools
[webkitscmpy] Allow repositories to define custom setup commands
https://bugs.webkit.org/show_bug.cgi?id=231345
<rdar://problem/83960249>
Reviewed by Dewei Zhu.
- Scripts/git-webkit: Define changelog conflict resolver.
- Scripts/libraries/webkitscmpy/setup.py: Add inspect2 as dependency, bump version.
- Scripts/libraries/webkitscmpy/webkitscmpy/init.py: Ditto.
- Scripts/libraries/webkitscmpy/webkitscmpy/program/init.py:
(main): Attempt to resolve additional_setup function.
- Scripts/libraries/webkitscmpy/webkitscmpy/program/setup.py:
(Setup.github): Invoke additional_setup function, if it exists.
(Setup.git): Ditto.
- 3:41 PM Changeset in webkit [284282] by
-
- 5 edits in branches/safari-612-branch
Cherry-pick r281964. rdar://problem/83954640
[ BigSur arm64 Debug EWS ] ASSERTION FAILED: m_uncommittedState.state == State::Provisional
https://bugs.webkit.org/show_bug.cgi?id=229769
<rdar://problem/82645706>
Reviewed by Alex Christensen.
Source/WebKit:
I am unable to reproduce the crash but we know that we're crashing when committing the load
after a process-swap, because the WebPageProxy doesn't know that a provisional load is going
on. One possible explanation for this, and the most likely one is that the WebPageProxy got
a DidFailProvisionalLoadForFrame IPC from the current process while the provisional load is
proceeding in the new provisional process. We had logic in WebPageProxy::didFailProvisionalLoadForFrame()
to try and discard such IPC but the check was relying on the navigationID and was therefore
fragile. I updated the check in didFailProvisionalLoadForFrame() to ignore all
DidFailProvisionalLoadForFrame IPCs for the main frame from the current process when there
is a ProvisionalPageProxy, without relying on the navigationID. This should be more robust
and will hopefully fix this flaky crash.
No new tests, unskipped existing tests.
- UIProcess/ProvisionalPageProxy.cpp: (WebKit::ProvisionalPageProxy::didFailProvisionalLoadForFrame):
- UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::didFailProvisionalLoadForFrame): (WebKit::WebPageProxy::didFailProvisionalLoadForFrameShared):
- UIProcess/WebPageProxy.h:
LayoutTests:
Unskip test that should no longer be flakily crashing in debug.
- platform/mac-wk2/TestExpectations:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@281964 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 3:41 PM Changeset in webkit [284281] by
-
- 2 edits in trunk/LayoutTests
[GLIB] Update test expectations for known failures. Unreviewed test gardening.
https://bugs.webkit.org/show_bug.cgi?id=231820
Patch by Arcady Goldmints-Orlov <Arcady Goldmints-Orlov> on 2021-10-15
- platform/glib/TestExpectations:
- 3:38 PM Changeset in webkit [284280] by
-
- 4 edits in branches/safari-612-branch/Source/WebCore
Cherry-pick r281879. rdar://problem/83954217
Improve time precision when cross-origin isolated via COOP+COEP
https://bugs.webkit.org/show_bug.cgi?id=228137
<rdar://problem/81197138>
Reviewed by Ryosuke Niwa.
Increase the precision of our high precision time (used by performance.now()) from
1ms to 20us when cross-origin isolated via COOP=same-origin + COEP=require-corp.
Precision remains the same (1ms) when not cross-origin isolated.
This aligns our behavior with Firefox.
Note that Chrome provides higher precision (100us in general and 5us when
cross-origin-isolated).
- dom/ScriptExecutionContext.cpp: (WebCore::ScriptExecutionContext::setCrossOriginMode):
- page/Performance.cpp: (WebCore::Performance::reduceTimeResolution): (WebCore::Performance::allowHighPrecisionTime):
- page/Performance.h:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@281879 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 3:37 PM Changeset in webkit [284279] by
-
- 9 edits in branches/safari-612-branch/Source
Cherry-pick r283572. rdar://problem/83953133
Web Inspector: Show color space for canvases in the Graphics tab on the overview cards
https://bugs.webkit.org/show_bug.cgi?id=231205
Reviewed by Devin Rousso.
Source/JavaScriptCore:
Use an enum instead of strings for color space values sent to the frontend.
- inspector/protocol/Canvas.json:
- inspector/scripts/codegen/generator.py:
Source/WebCore:
Use an enum instead of strings for color space values sent to the frontend.
- inspector/InspectorCanvas.cpp: (WebCore::buildObjectForCanvasContextAttributes):
Source/WebInspectorUI:
For canvas context's with a color space attribute, show the color space next to the context type in the header
of each context card in the Graphics tab.
- UserInterface/Models/Canvas.js: (WI.Canvas.displayNameForColorSpace):
- UserInterface/Views/CanvasContentView.js: (WI.CanvasContentView.prototype.initialLayout):
- UserInterface/Views/CanvasOverviewContentView.css: (.content-view.canvas-overview > .content-view.canvas > header > .titles > :matches(.subtitle, .color-space),): (.content-view.canvas-overview > .content-view.canvas > header .color-space::before):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@283572 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 3:36 PM Changeset in webkit [284278] by
-
- 2 edits in trunk
Add github username for Dewei Zhu
Unreviewed.
- metadata/contributors.json:
- 3:25 PM Changeset in webkit [284277] by
-
- 5 edits in trunk/Source/WebKit
Unreviewed, reverting r283925.
https://bugs.webkit.org/show_bug.cgi?id=231839
Incorrect
Reverted changeset:
"[macOS] Grant access in sandbox to 'system-privilege' for
root"
https://bugs.webkit.org/show_bug.cgi?id=231501
https://commits.webkit.org/r283925
- 3:18 PM Changeset in webkit [284276] by
-
- 2 edits in trunk/Source/WebKit
Explicitly link adattributiond with Foundation and CoreFoundation
https://bugs.webkit.org/show_bug.cgi?id=231835
Reviewed by Brady Eidson.
Apply the same treatment to adattributiond as was done for webpushd in r284250.
- Configurations/adattributiond.xcconfig:
- 3:16 PM Changeset in webkit [284275] by
-
- 28 edits2 adds in branches/safari-612-branch
Cherry-pick r283033. rdar://problem/83953190
[IOS 15] Video track does not get unmuted in case of tab was inactive less than ~500 ms
https://bugs.webkit.org/show_bug.cgi?id=230538
<rdar://problem/83355705>
Reviewed by Eric Carlson.
Source/WebCore:
Add support for interrupting mock cameras.
Update internals to handle the case of out of main thread videoSampleAvailable calls.
Update Page::setMuted to trigger setMuted logic even if Page muted state did not change.
This ensures we can restart capture in case a track is muted without the page being muted itself.
When a source is muted and is in producing data state, it is interrupted.
When setMuted(false) is called, we need to uninterrupt.
To do so, we do a stop/start cycle
Test: fast/mediastream/media-stream-video-track-interrupted.html
- page/Page.cpp: (WebCore::Page::setMuted):
- platform/mediastream/RealtimeMediaSource.cpp: (WebCore::RealtimeMediaSource::setMuted):
- platform/mock/MockRealtimeMediaSourceCenter.cpp: (WebCore::MockRealtimeMediaSourceCenter::setMockCameraIsInterrupted):
- platform/mock/MockRealtimeMediaSourceCenter.h:
- platform/mock/MockRealtimeVideoSource.cpp: (WebCore::MockRealtimeVideoSource::MockRealtimeVideoSource): (WebCore::MockRealtimeVideoSource::~MockRealtimeVideoSource): (WebCore::MockRealtimeVideoSource::setIsInterrupted):
- platform/mock/MockRealtimeVideoSource.h:
- testing/Internals.cpp: (WebCore::Internals::videoSampleAvailable):
- testing/Internals.h:
Source/WebKit:
Add support for mock capture interruption.
When receiving a notification that GPUProcess source is muted, we consider it is interrupted.
In that case, we notify the source is muted instead of calling setMuted (which would set the source as muted AND stop producing data).
It is important to not stop the source so that it can continue receiving interruption notifications.
- GPUProcess/GPUProcess.cpp: (WebKit::GPUProcess::setMockCameraIsInterrupted):
- GPUProcess/GPUProcess.h:
- GPUProcess/GPUProcess.messages.in:
- UIProcess/API/C/WKPage.cpp: (WKPageIsMockRealtimeMediaSourceCenterEnabled): (WKPageSetMockCameraIsInterrupted):
- UIProcess/API/C/WKPagePrivate.h:
- UIProcess/GPU/GPUProcessProxy.cpp: (WebKit::GPUProcessProxy::setMockCameraIsInterrupted):
- UIProcess/GPU/GPUProcessProxy.h:
- WebProcess/cocoa/RemoteRealtimeAudioSource.h:
- WebProcess/cocoa/RemoteRealtimeVideoSource.h:
- WebProcess/cocoa/UserMediaCaptureManager.cpp: (WebKit::UserMediaCaptureManager::sourceMutedChanged):
Tools:
Add mock API to mock camera interruption.
- WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl:
- WebKitTestRunner/InjectedBundle/TestRunner.cpp: (WTR::TestRunner::setMockCameraIsInterrupted):
- WebKitTestRunner/InjectedBundle/TestRunner.h:
- WebKitTestRunner/TestController.cpp: (WTR::TestController::setMockCameraIsInterrupted):
- WebKitTestRunner/TestController.h:
- WebKitTestRunner/TestInvocation.cpp: (WTR::TestInvocation::didReceiveSynchronousMessageFromInjectedBundle):
LayoutTests:
- fast/mediastream/media-stream-video-track-interrupted-expected.txt: Added.
- fast/mediastream/media-stream-video-track-interrupted.html: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@283033 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 2:45 PM Changeset in webkit [284274] by
-
- 2 edits in trunk/LayoutTests
[ iOS 15 ] imported/w3c/web-platform-tests/WebCryptoAPI/derive_bits_keys/pbkdf2.https.any.worker.html is flaky timing out.
https://bugs.webkit.org/show_bug.cgi?id=231544
Unreviewed test gardening.
- platform/ios-wk2/TestExpectations: Marked the test slow
- 2:27 PM Changeset in webkit [284273] by
-
- 2 edits in trunk/Source/WTF
Enable Storage API by default
https://bugs.webkit.org/show_bug.cgi?id=231826
Reviewed by Alexey Shvayka.
- Scripts/Preferences/WebPreferencesExperimental.yaml:
- 2:11 PM Changeset in webkit [284272] by
-
- 2 edits in trunk/Source/WTF
Clean up font-related USE(...) macros
https://bugs.webkit.org/show_bug.cgi?id=231793
Reviewed by Wenson Hsieh.
IOS_FAMILY is true for tvOS and watchOS, so we should be using
(PLATFORM(IOS) PLATFORM(MACCATALYST) instead. Also, the simulator is not special here - it should get the same policy as the system it's
simulating.
- wtf/PlatformUse.h:
- 2:09 PM Changeset in webkit [284271] by
-
- 2 edits in trunk/LayoutTests
[ macOS wk2 ] http/tests/xmlhttprequest/access-control-repeated-failed-preflight-crash.html is a flaky crash.
https://bugs.webkit.org/show_bug.cgi?id=231831
Unreviewed test gardening.
- platform/mac-wk2/TestExpectations:
- 2:06 PM Changeset in webkit [284270] by
-
- 1 copy in tags/Safari-613.1.5
Tag Safari-613.1.5.
- 1:29 PM Changeset in webkit [284269] by
-
- 21 edits2 adds in trunk/Source/WebCore
[LFC][Integration] Factor line logical order traversal out of iterator
https://bugs.webkit.org/show_bug.cgi?id=231800
Reviewed by Alan Bujtas.
Similar to text logical order traversal, use standalone traversal functions with order cache
owned by the caller.
Make the code generic so it will work with IFC BiDi.
Factor all traversal functions to a file of their own, InlineIteratorLogicalOrderTraversal.h/cpp.
- Headers.cmake:
- Sources.txt:
- WebCore.xcodeproj/project.pbxproj:
- dom/Position.cpp:
- editing/CompositeEditCommand.cpp:
- editing/TextIterator.h:
- editing/VisiblePosition.cpp:
(WebCore::VisiblePosition::leftVisuallyDistinctCandidate const):
(WebCore::VisiblePosition::rightVisuallyDistinctCandidate const):
- editing/VisibleUnits.cpp:
(WebCore::previousTextOrLineBreakRun):
(WebCore::nextTextOrLineBreakRun):
(WebCore::startTextOrLineBreakRun):
(WebCore::endTextOrLineBreakRun):
(WebCore::logicallyPreviousRun):
(WebCore::logicallyNextRun):
(WebCore::wordBreakIteratorForMinOffsetBoundary):
(WebCore::wordBreakIteratorForMaxOffsetBoundary):
(WebCore::startPositionForLine):
(WebCore::endPositionForLine):
- layout/integration/InlineIteratorBox.cpp:
(WebCore::InlineIterator::LeafBoxIterator::traversePreviousOnLineIgnoringLineBreak):
(WebCore::InlineIterator::LeafBoxIterator::traverseNextOnLineInLogicalOrder): Deleted.
(WebCore::InlineIterator::LeafBoxIterator::traversePreviousOnLineInLogicalOrder): Deleted.
- layout/integration/InlineIteratorBox.h:
(WebCore::InlineIterator::BoxIterator::BoxIterator):
- layout/integration/InlineIteratorBoxLegacyPath.h:
(WebCore::InlineIterator::BoxLegacyPath::BoxLegacyPath):
(WebCore::InlineIterator::BoxLegacyPath::traverseNextOnLineInLogicalOrder): Deleted.
(WebCore::InlineIterator::BoxLegacyPath::traversePreviousOnLineInLogicalOrder): Deleted.
(WebCore::InlineIterator::BoxLegacyPath::initializeLogicalOrderCacheForLine): Deleted.
(WebCore::InlineIterator::BoxLegacyPath::traverseNextInlineBoxInCacheOrder): Deleted.
(WebCore::InlineIterator::BoxLegacyPath::traversePreviousInlineBoxInCacheOrder): Deleted.
- layout/integration/InlineIteratorBoxModernPath.h:
(WebCore::InlineIterator::BoxModernPath::traverseNextOnLineInLogicalOrder): Deleted.
(WebCore::InlineIterator::BoxModernPath::traversePreviousOnLineInLogicalOrder): Deleted.
- layout/integration/InlineIteratorLine.cpp:
(WebCore::InlineIterator::Line::logicalStartRun const): Deleted.
(WebCore::InlineIterator::Line::logicalEndRun const): Deleted.
(WebCore::InlineIterator::Line::logicalStartRunWithNode const): Deleted.
(WebCore::InlineIterator::Line::logicalEndRunWithNode const): Deleted.
- layout/integration/InlineIteratorLine.h:
- layout/integration/InlineIteratorLineLegacyPath.h:
(WebCore::InlineIterator::LineIteratorLegacyPath::logicalStartRun const): Deleted.
(WebCore::InlineIterator::LineIteratorLegacyPath::logicalEndRun const): Deleted.
- layout/integration/InlineIteratorLineModernPath.h:
(WebCore::InlineIterator::LineIteratorModernPath::logicalStartRun const): Deleted.
(WebCore::InlineIterator::LineIteratorModernPath::logicalEndRun const): Deleted.
- layout/integration/InlineIteratorLogicalOrderTraversal.cpp: Added.
(WebCore::InlineIterator::makeTextLogicalOrderCacheIfNeeded):
(WebCore::InlineIterator::updateTextLogicalOrderCacheIfNeeded):
(WebCore::InlineIterator::firstTextBoxInLogicalOrderFor):
(WebCore::InlineIterator::nextTextBoxInLogicalOrder):
(WebCore::InlineIterator::makeLineLogicalOrderCacheIfNeeded):
(WebCore::InlineIterator::updateLineLogicalOrderCacheIfNeeded):
(WebCore::InlineIterator::firstLeafOnLineInLogicalOrder):
(WebCore::InlineIterator::lastLeafOnLineInLogicalOrder):
(WebCore::InlineIterator::nextLeafOnLineInLogicalOrder):
(WebCore::InlineIterator::previousLeafOnLineInLogicalOrder):
(WebCore::InlineIterator::firstLeafOnLineInLogicalOrderWithNode):
(WebCore::InlineIterator::lastLeafOnLineInLogicalOrderWithNode):
- layout/integration/InlineIteratorLogicalOrderTraversal.h: Added.
- layout/integration/InlineIteratorTextBox.cpp:
(WebCore::InlineIterator::firstTextBoxInLogicalOrderFor): Deleted.
(WebCore::InlineIterator::nextTextBoxInLogicalOrder): Deleted.
- layout/integration/InlineIteratorTextBox.h:
(): Deleted.
- rendering/RenderBlockFlow.cpp:
(WebCore::RenderBlockFlow::positionForPointWithInlineChildren):
- rendering/RenderText.cpp:
- 1:25 PM Changeset in webkit [284268] by
-
- 2 edits in trunk/Source/WebKit
Import AuthenticationServicesCore's public module as well
https://bugs.webkit.org/show_bug.cgi?id=231806
<rdar://84299174>
Patch by Garrett Davidson <garrett_davidson@apple.com> on 2021-10-15
Reviewed by Wenson Hsieh.
Import the public module explicitly before the private module.
- Platform/spi/Cocoa/AuthenticationServicesCoreSPI.h:
- 1:13 PM Changeset in webkit [284267] by
-
- 3 edits3 copies3 adds in trunk/LayoutTests
REBASELINE 2 tables/mozilla tests failing constantly
https://bugs.webkit.org/show_bug.cgi?id=228200
Unreviewed test gardening/rebase for Monterey.
- platform/mac-bigsur/tables/mozilla/bugs/bug2479-3-expected.txt: Copied from LayoutTests/platform/mac/tables/mozilla/bugs/bug2479-3-expected.txt.
- platform/mac-bigsur/tables/mozilla/bugs/bug26178-expected.txt: Copied from LayoutTests/platform/mac/tables/mozilla/bugs/bug26178-expected.txt.
- platform/mac-catalina/tables/mozilla/bugs/bug26178-expected.txt: Copied from LayoutTests/platform/mac/tables/mozilla/bugs/bug26178-expected.txt.
- platform/mac/tables/mozilla/bugs/bug2479-3-expected.txt:
- platform/mac/tables/mozilla/bugs/bug26178-expected.txt:
- 12:59 PM Changeset in webkit [284266] by
-
- 10 edits in trunk/Source/WebCore
Calls to AXCoreObject::widget() have to be dispatch to the main thread in isolated tree mode.
https://bugs.webkit.org/show_bug.cgi?id=231766
<rdar://problem/84271039>
Reviewed by Chris Fleizach.
This patch fixes several dozens of tests that were crashing or timing out in isolated tree mode.
The WebAccessibilityObjectWrapper was calling the widget() method on the
AX thread, which creates problems because this object is not thread
safe and it is created on the main thread. To avoid this problem, we
have to dispatch those calls to the main thread. Since widget() is
called very often now, for every request of the children of a leaf node,
added AXCoreObject::isWidget() to be able to check for it without having
to return the Widget object. The IsWidget property is cached in the
AXIsolatedObject, hence limiting the number of times we have to hit the
main thread.
- accessibility/AccessibilityNodeObject.cpp:
Removed include header that is not used in this cpp.
- accessibility/AccessibilityObject.h:
- accessibility/AccessibilityObjectInterface.h:
- accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::isWidget const):
(WebCore::AccessibilityRenderObject::widget const):
- accessibility/AccessibilityRenderObject.h:
- accessibility/isolatedtree/AXIsolatedObject.cpp:
(WebCore::AXIsolatedObject::initializeAttributeData):
(WebCore::AXIsolatedObject::widget const):
- accessibility/isolatedtree/AXIsolatedObject.h:
- accessibility/isolatedtree/AXIsolatedTree.h:
- accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
(-[WebAccessibilityObjectWrapper renderWidgetChildren]):
(-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]):
(isMatchingPlugin):
- 12:43 PM Changeset in webkit [284265] by
-
- 2 edits in trunk/Source/WebKit
[macOS] Sort unix syscall list in WP sandbox
https://bugs.webkit.org/show_bug.cgi?id=231810
<rdar://problem/84305761>
Unreviewed formatting change. No change in behavior.
- WebProcess/com.apple.WebProcess.sb.in:
- 12:16 PM Changeset in webkit [284264] by
-
- 9 edits in trunk
[Cocoa] Web Inspector: handle Promise objects returned from evaluateScriptInExtensionTab
https://bugs.webkit.org/show_bug.cgi?id=231709
<rdar://problem/84224179>
Reviewed by Timothy Hatcher.
Source/WebCore:
New API test: WKInspectorExtension.EvaluateScriptInExtensionTabCanReturnPromises
- inspector/InspectorFrontendAPIDispatcher.cpp:
(WebCore::InspectorFrontendAPIDispatcher::evaluateOrQueueExpression):
Add JSLockHolders for when we are poking at the result value.
Source/WebInspectorUI:
This patch improves the handling of promises and exceptions that come from
InspectorFrontendHost.evaluateScriptInExtensionTab().
For promises, wait for the returned promise to settle before fulfilling our returned value.
For errors, perform a better stringification of the Error instance. The is needed because
the default toString implementation leaves out most of the relevant details of the error.
- UserInterface/Controllers/WebInspectorExtensionController.js:
(WI.WebInspectorExtensionController.prototype.evaluateScriptInExtensionTab):
- UserInterface/Protocol/InspectorFrontendAPI.js:
Fix incorrect header docs for InspectorFrontendAPI.evaluateScriptForExtension.
Copy the improved header doc for InspectorFrontendAPI.evaluateScriptInExtensionTab
since it now has the same calling convention.
Source/WebKit:
- WebProcess/Inspector/WebInspectorUIExtensionController.cpp:
(WebKit::WebInspectorUIExtensionController::evaluateScriptForExtension):
(WebKit::WebInspectorUIExtensionController::evaluateScriptInExtensionTab):
Add JSLockHolders for when we are poking at the result value.
Drive-by, fix a typo in logging code.
Tools:
Add a new test:
WKInspectorExtension.EvaluateScriptInExtensionTabCanReturnPromises
- TestWebKitAPI/Tests/WebKitCocoa/WKInspectorExtension.mm:
(TEST):
- 12:14 PM Changeset in webkit [284263] by
-
- 4 edits in trunk/Tools
[webkitscmpy] Refactor PR branch management (Follow-up fix)
https://bugs.webkit.org/show_bug.cgi?id=230432
<rdar://problem/83258413>
Reviewed by Stephanie Lewis.
When we are uploading a change that includes multiple commits,
the second commit will be on the same branch as the first, but that
branch will be editable. We should not declare that "no commits
have been found on an editable branch," because that's not true.
- Scripts/libraries/webkitscmpy/setup.py: Bump version.
- Scripts/libraries/webkitscmpy/webkitscmpy/init.py: Ditto.
- Scripts/libraries/webkitscmpy/webkitscmpy/program/branch.py:
(Branch.branch_point): Log the found commit for branches with multiple commits.
- 12:13 PM Changeset in webkit [284262] by
-
- 2 edits in trunk/Tools
Make submit to ews error messages readable
https://bugs.webkit.org/show_bug.cgi?id=231824
Reviewed by Ryan Haddad.
- CISupport/ews-app/ews/views/submittoews.py:
(SubmitToEWS.post):
- 12:12 PM Changeset in webkit [284261] by
-
- 5 edits in trunk
REGRESSION (r284079): [Debug] IPCTestingAPI.CanReceiveSharedMemory is timing out
https://bugs.webkit.org/show_bug.cgi?id=231701
<rdar://problem/84219000>
Reviewed by Tim Horton.
Source/WebKit:
Implement two new methods on JSIPCStreamClientConnection:
sendMessage()andsendSyncMessage(), which can be
used to send IPC messages through the IPC stream client connection. To do this, we match the existing methods of
the same names on JSIPC by creating a message encoder and sending it over the stream connection's IPC
connection, effectively treating all IPC messages as out-of-line.
In the future, this should be changed so that we only try to send out-of-line messages if the message itself is
not stream encodable; for the time being, this at least allows us to fix the failing API test, and still makes
it possible to test sending arbitrary IPC through the connection stream, such that we'll be able to exercise
WebGL and display list IPC via these special JS IPC bindings.
- Platform/IPC/StreamClientConnection.h:
- WebProcess/WebPage/IPCTestingAPI.cpp:
Declare several static helper functions near the top of this source file, so that we can use them in
JSIPCStreamClientConnection below.
(WebKit::IPCTestingAPI::JSIPCStreamClientConnection::create):
(WebKit::IPCTestingAPI::JSIPCStreamClientConnection::JSIPCStreamClientConnection):
(WebKit::IPCTestingAPI::JSIPCStreamClientConnection::staticFunctions):
Drive-by fix: make the pointer from JSIPCStreamConnectionBuffer to JSIPCStreamClientConnection a WeakPtr, to
prevent the stream connection buffer from keeping the client connection alive for longer than necessary. The
JSIPCStreamConnectionBuffer is always intended to be outlived by JSIPCStreamClientConnection when using JS IPC.
(WebKit::IPCTestingAPI::extractIPCStreamMessageInfo):
Pull logic for extracting a destination ID, message name, and IPC timeout into a common helper method.
(WebKit::IPCTestingAPI::JSIPCStreamClientConnection::prepareToSendOutOfStreamMessage):
Add a helper method that encodes the given message and prepares the stream connection for sending this as an
out-of-stream message by setting the destination ID (if needed) and appending theProcessOutOfStreamMessage
message to indicate that the recipient should expect an out-of-stream message.
(WebKit::IPCTestingAPI::JSIPCStreamClientConnection::sendMessage):
(WebKit::IPCTestingAPI::JSIPCStreamClientConnection::sendSyncMessage):
(WebKit::IPCTestingAPI::JSIPC::createStreamClientConnection):
Tools:
Fix the failing API test by using the new
sendSyncMessage()method on JSIPCStreamClientConnection to send
the "RemoteRenderingBackend::UpdateSharedMemoryForGetPixelBuffer" stream message and decode the result into a
buffer of shared memory.
- TestWebKitAPI/Tests/WebKitCocoa/IPCTestingAPI.mm:
(TEST):
- 12:10 PM Changeset in webkit [284260] by
-
- 6 edits4 deletes in trunk
Unreviewed, reverting r284244.
https://bugs.webkit.org/show_bug.cgi?id=231813
Introduced
Reverted changeset:
"AX: Return AXEmptyGroup subrole for groups with no accessible
content"
https://bugs.webkit.org/show_bug.cgi?id=231528
https://commits.webkit.org/r284244
- 12:08 PM Changeset in webkit [284259] by
-
- 2 edits in trunk/Source/WTF
[Cocoa] Design System UI fonts exist on MacCatalyst
https://bugs.webkit.org/show_bug.cgi?id=231792
<rdar://problem/84273929>
Reviewed by Wenson Hsieh.
They shouldn't be disabled there.
- wtf/PlatformHave.h:
- 11:45 AM Changeset in webkit [284258] by
-
- 2 edits in branches/safari-612-branch/Source/WebKit
Cherry-pick r283846. rdar://problem/84117092
Fix crash in NetworkProcess preconnect due to dereferencing deallocated session
https://bugs.webkit.org/show_bug.cgi?id=231456
<rdar://problem/83752148>
Reviewed by Chris Dumez.
We capture a raw NetworkSession reference in the preconnect completion handler. This
reference could point to a deallocated object if the NetworkSession dies before the
preconnect finishes.
- NetworkProcess/NetworkProcess.cpp: (WebKit::NetworkProcess::preconnectTo):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@283846 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 11:31 AM Changeset in webkit [284257] by
-
- 2 edits in trunk/LayoutTests
[ iOS ] http/tests/workers/service/client-removed-from-clients-while-in-page-cache.html is a flaky timeout.
https://bugs.webkit.org/show_bug.cgi?id=230376
Unreviewed test gardening.
- platform/ios-wk2/TestExpectations: Removed test expectations
- 11:23 AM Changeset in webkit [284256] by
-
- 2 edits in trunk/LayoutTests
[ iOS ] http/wpt/webaudio/the-audio-api/the-audioworklet-interface/context-already-rendering.html is flaky.
https://bugs.webkit.org/show_bug.cgi?id=230421
Unreviewed test gardening.
- platform/ios-wk2/TestExpectations: Removed test expectations
- 10:40 AM Changeset in webkit [284255] by
-
- 13 edits in trunk/Source/JavaScriptCore
[JSC][32bit] Fix CSR restore on DFG tail calls, add extra register on ARMv7
https://bugs.webkit.org/show_bug.cgi?id=230622
Patch by Geza Lore <Geza Lore> on 2021-10-15
Reviewed by Saam Barati.
This patch does two things:
- Adds an extra callee save register (CSR) to be available to DFG on
ARMv7. To do this properly required the following:
- Implements the necessary shuffling in CallFrameShuffler on 32-bit
architectures that is required to restore CSRs properly after a tail
call on these architectures. This also fixes the remaining failures in
the 32-bit build of the unlinked baseline JIT.
- bytecode/ValueRecovery.cpp:
(JSC::ValueRecovery::dumpInContext const):
- bytecode/ValueRecovery.h:
(JSC::ValueRecovery::calleeSaveRegDisplacedInJSStack):
(JSC::ValueRecovery::isInJSStack const):
(JSC::ValueRecovery::dataFormat const):
(JSC::ValueRecovery::withLocalsOffset const):
- dfg/DFGSpeculativeJIT32_64.cpp:
(JSC::DFG::SpeculativeJIT::emitCall):
- jit/CachedRecovery.cpp:
(JSC::CachedRecovery::loadsIntoGPR const):
- jit/CallFrameShuffleData.cpp:
(JSC::CallFrameShuffleData::setupCalleeSaveRegisters):
- jit/CallFrameShuffleData.h:
- jit/CallFrameShuffler.cpp:
(JSC::CallFrameShuffler::CallFrameShuffler):
- jit/CallFrameShuffler.h:
(JSC::CallFrameShuffler::snapshot const):
(JSC::CallFrameShuffler::addNew):
- jit/CallFrameShuffler32_64.cpp:
(JSC::CallFrameShuffler::emitLoad):
(JSC::CallFrameShuffler::emitDisplace):
- jit/GPRInfo.h:
(JSC::GPRInfo::toRegister):
(JSC::GPRInfo::toIndex):
- jit/RegisterSet.cpp:
(JSC::RegisterSet::dfgCalleeSaveRegisters):
- llint/LowLevelInterpreter32_64.asm:
- 10:39 AM Changeset in webkit [284254] by
-
- 97 edits5 adds in trunk
CSP: Implement src-elem and src-attr directives
https://bugs.webkit.org/show_bug.cgi?id=231751
<rdar://problem/83332874>
Reviewed by Brent Fulgham.
LayoutTests/imported/w3c:
- web-platform-tests/content-security-policy/child-src/child-src-blocked.sub-expected.txt:
- web-platform-tests/content-security-policy/child-src/child-src-redirect-blocked.sub-expected.txt:
- web-platform-tests/content-security-policy/default-src-inline-blocked.sub-expected.txt: Added.
- web-platform-tests/content-security-policy/default-src/default-src-inline-blocked.sub-expected.txt:
- web-platform-tests/content-security-policy/generic/generic-0_1-img-src-expected.txt:
- web-platform-tests/content-security-policy/generic/generic-0_1-script-src-expected.txt:
- web-platform-tests/content-security-policy/meta/combine-header-and-meta-policies.sub-expected.txt:
- web-platform-tests/content-security-policy/navigation/javascript-url-navigation-inherits-csp-expected.txt:
- web-platform-tests/content-security-policy/navigation/to-javascript-parent-initiated-parent-csp-expected.txt:
- web-platform-tests/content-security-policy/reporting/report-uri-effective-directive-expected.txt:
- web-platform-tests/content-security-policy/script-src-attr-elem/script-src-attr-allowed-src-blocked-expected.txt:
- web-platform-tests/content-security-policy/script-src-attr-elem/script-src-attr-blocked-src-allowed-expected.txt:
- web-platform-tests/content-security-policy/script-src-attr-elem/script-src-elem-allowed-attr-blocked-expected.txt:
- web-platform-tests/content-security-policy/script-src-attr-elem/script-src-elem-allowed-src-blocked-expected.txt:
- web-platform-tests/content-security-policy/script-src-attr-elem/script-src-elem-blocked-attr-allowed-expected.txt:
- web-platform-tests/content-security-policy/script-src-attr-elem/script-src-elem-blocked-src-allowed-expected.txt:
- web-platform-tests/content-security-policy/script-src/injected-inline-script-blocked.sub-expected.txt:
- web-platform-tests/content-security-policy/script-src/script-src-1_1-expected.txt:
- web-platform-tests/content-security-policy/script-src/script-src-1_10-expected.txt:
- web-platform-tests/content-security-policy/script-src/script-src-1_2-expected.txt:
- web-platform-tests/content-security-policy/script-src/script-src-1_2_1-expected.txt:
- web-platform-tests/content-security-policy/script-src/script-src-report-only-policy-works-with-hash-policy-expected.txt:
- web-platform-tests/content-security-policy/script-src/scriptnonce-and-scripthash.sub-expected.txt:
- web-platform-tests/content-security-policy/script-src/scriptnonce-basic-blocked.sub-expected.txt:
- web-platform-tests/content-security-policy/script-src/scriptnonce-ignore-unsafeinline.sub-expected.txt:
- web-platform-tests/content-security-policy/script-src/srcdoc-doesnt-bypass-script-src.sub-expected.txt:
- web-platform-tests/content-security-policy/style-src-attr-elem/style-src-attr-allowed-src-blocked-expected.txt:
- web-platform-tests/content-security-policy/style-src-attr-elem/style-src-attr-blocked-src-allowed-expected.txt:
- web-platform-tests/content-security-policy/style-src-attr-elem/style-src-elem-allowed-attr-blocked-expected.txt:
- web-platform-tests/content-security-policy/style-src-attr-elem/style-src-elem-allowed-src-blocked-expected.txt:
- web-platform-tests/content-security-policy/style-src-attr-elem/style-src-elem-blocked-attr-allowed-expected.txt:
- web-platform-tests/content-security-policy/style-src-attr-elem/style-src-elem-blocked-src-allowed-expected.txt:
- web-platform-tests/content-security-policy/style-src/injected-inline-script-blocked.sub-expected.txt: Added.
- web-platform-tests/content-security-policy/style-src/injected-inline-style-blocked.sub-expected.txt:
- web-platform-tests/content-security-policy/style-src/inline-style-allowed-while-cloning-objects.sub-expected.txt:
- web-platform-tests/content-security-policy/style-src/inline-style-attribute-blocked-expected.txt: Added.
- web-platform-tests/content-security-policy/style-src/inline-style-attribute-blocked.sub-expected.txt:
- web-platform-tests/content-security-policy/style-src/style-src-hash-blocked-expected.txt:
- web-platform-tests/content-security-policy/style-src/style-src-injected-inline-style-blocked-expected.txt:
- web-platform-tests/content-security-policy/style-src/style-src-inline-style-attribute-blocked-expected.txt:
- web-platform-tests/content-security-policy/style-src/style-src-inline-style-blocked-expected.txt:
- web-platform-tests/content-security-policy/style-src/style-src-inline-style-nonce-blocked-expected.txt:
- web-platform-tests/content-security-policy/style-src/stylehash-basic-blocked.sub-expected.txt:
- web-platform-tests/content-security-policy/style-src/stylenonce-allowed.sub-expected.txt:
- web-platform-tests/content-security-policy/style-src/stylenonce-blocked.sub-expected.txt:
- web-platform-tests/content-security-policy/unsafe-hashes/javascript_src_denied_missing_unsafe_hashes-href-expected.txt:
- web-platform-tests/content-security-policy/unsafe-hashes/javascript_src_denied_missing_unsafe_hashes-href_blank-expected.txt:
- web-platform-tests/content-security-policy/unsafe-hashes/javascript_src_denied_missing_unsafe_hashes-window_open-expected.txt:
- web-platform-tests/content-security-policy/unsafe-hashes/javascript_src_denied_wrong_hash-href-expected.txt:
- web-platform-tests/content-security-policy/unsafe-hashes/javascript_src_denied_wrong_hash-href_blank-expected.txt:
- web-platform-tests/content-security-policy/unsafe-hashes/javascript_src_denied_wrong_hash-window_open-expected.txt:
- web-platform-tests/content-security-policy/unsafe-hashes/script_event_handlers_denied_missing_unsafe_hashes-expected.txt:
- web-platform-tests/content-security-policy/unsafe-hashes/script_event_handlers_denied_wrong_hash-expected.txt:
- web-platform-tests/content-security-policy/unsafe-hashes/style_attribute_denied_missing_unsafe_hashes-expected.txt:
- web-platform-tests/content-security-policy/unsafe-hashes/style_attribute_denied_wrong_hash-expected.txt:
- web-platform-tests/content-security-policy/blob/blob-urls-do-not-match-self.sub-expected.txt:
- web-platform-tests/content-security-policy/generic/generic-0_10_1.sub-expected.txt:
- web-platform-tests/content-security-policy/generic/generic-0_2_2.sub-expected.txt:
- web-platform-tests/content-security-policy/generic/generic-0_2_3-expected.txt:
- web-platform-tests/content-security-policy/script-src/script-src-report-only-policy-works-with-external-hash-policy-expected.txt:
- web-platform-tests/content-security-policy/style-src/style-blocked.sub-expected.txt:
- web-platform-tests/content-security-policy/style-src/style-src-imported-style-blocked-expected.txt:
- web-platform-tests/content-security-policy/style-src/style-src-injected-stylesheet-blocked.sub-expected.txt:
- web-platform-tests/content-security-policy/style-src/style-src-none-blocked-expected.txt:
- web-platform-tests/content-security-policy/style-src/style-src-stylesheet-nonce-blocked-expected.txt:
- web-platform-tests/content-security-policy/svg/svg-inline.sub-expected.txt:
Source/WebCore:
Implement script-src-elem, script-src-attr, style-src-elem, and
style-src-attr directives. *-elem directives specify load policy for
<script> and <style> elements. *-attr directives specify load policy
for inline event handlers or inline style applied to individual DOM elements.
To match behavior of wpt tests and other browsers, we should report
the violated directive as accurately as possible even if a more
general directive was specified in the policy. For example, reporting
the violated directive as script-src even if default-src was
specified, and script-src-elem even if only script-src was specified.
To do this I added a nameForReporting() method in the
ContentSecurityPolicySourceListDirective class that gets set when we
check the load for violations.
Console messages should not change, in fact, we should consider making
them more specific in the future.
- page/csp/ContentSecurityPolicy.cpp:
(WebCore::ContentSecurityPolicy::allowJavaScriptURLs const):
(WebCore::ContentSecurityPolicy::allowInlineEventHandlers const):
(WebCore::ContentSecurityPolicy::allowInlineScript const):
(WebCore::ContentSecurityPolicy::allowInlineStyle const):
We can reuse the check for unsafe hashes to determine if we should
report a style-src-elem or style-src-attr violation.
(WebCore::ContentSecurityPolicy::reportViolation const):
- page/csp/ContentSecurityPolicyDirective.cpp:
(WebCore::ContentSecurityPolicyDirective::~ContentSecurityPolicyDirective):
Need a destructor now that we have virtual functions.
- page/csp/ContentSecurityPolicyDirective.h:
(WebCore::ContentSecurityPolicyDirective::nameForReporting const):
- page/csp/ContentSecurityPolicyDirectiveList.cpp:
(WebCore::ContentSecurityPolicyDirectiveList::create):
unsafe-eval should still have script-src as a violated directive.
(WebCore::ContentSecurityPolicyDirectiveList::operativeDirective const):
(WebCore::ContentSecurityPolicyDirectiveList::operativeDirectiveScript const):
(WebCore::ContentSecurityPolicyDirectiveList::operativeDirectiveStyle const):
elem/attr directives fall back to their respective general directives
if the more specific ones do not exist.
(WebCore::ContentSecurityPolicyDirectiveList::violatedDirectiveForUnsafeEval const):
(WebCore::ContentSecurityPolicyDirectiveList::violatedDirectiveForUnsafeHashScript const):
(WebCore::ContentSecurityPolicyDirectiveList::violatedDirectiveForUnsafeHashStyle const):
(WebCore::ContentSecurityPolicyDirectiveList::violatedDirectiveForParserInsertedScript const):
(WebCore::ContentSecurityPolicyDirectiveList::violatedDirectiveForUnsafeInlineScriptElement const):
(WebCore::ContentSecurityPolicyDirectiveList::violatedDirectiveForUnsafeInlineScriptAttribute const):
(WebCore::ContentSecurityPolicyDirectiveList::violatedDirectiveForUnsafeInlineStyleElement const):
(WebCore::ContentSecurityPolicyDirectiveList::violatedDirectiveForUnsafeInlineStyleAttribute const):
(WebCore::ContentSecurityPolicyDirectiveList::violatedDirectiveForScriptHash const):
(WebCore::ContentSecurityPolicyDirectiveList::violatedDirectiveForStyleHash const):
(WebCore::ContentSecurityPolicyDirectiveList::violatedDirectiveForScriptNonce const):
(WebCore::ContentSecurityPolicyDirectiveList::violatedDirectiveForStyleNonce const):
(WebCore::ContentSecurityPolicyDirectiveList::violatedDirectiveForChildContext const):
(WebCore::ContentSecurityPolicyDirectiveList::violatedDirectiveForConnectSource const):
(WebCore::ContentSecurityPolicyDirectiveList::violatedDirectiveForFont const):
(WebCore::ContentSecurityPolicyDirectiveList::violatedDirectiveForFrame const):
(WebCore::ContentSecurityPolicyDirectiveList::violatedDirectiveForImage const):
(WebCore::ContentSecurityPolicyDirectiveList::violatedDirectiveForManifest const):
(WebCore::ContentSecurityPolicyDirectiveList::violatedDirectiveForMedia const):
(WebCore::ContentSecurityPolicyDirectiveList::violatedDirectiveForObjectSource const):
(WebCore::ContentSecurityPolicyDirectiveList::violatedDirectiveForScript const):
(WebCore::ContentSecurityPolicyDirectiveList::violatedDirectiveForStyle const):
(WebCore::ContentSecurityPolicyDirectiveList::addDirective):
(WebCore::ContentSecurityPolicyDirectiveList::strictDynamicIncluded):
(WebCore::ContentSecurityPolicyDirectiveList::violatedDirectiveForUnsafeInlineScript const): Deleted.
(WebCore::ContentSecurityPolicyDirectiveList::violatedDirectiveForUnsafeInlineStyle const): Deleted.
- page/csp/ContentSecurityPolicyDirectiveList.h:
- page/csp/ContentSecurityPolicyDirectiveNames.cpp:
- page/csp/ContentSecurityPolicyDirectiveNames.h:
- page/csp/ContentSecurityPolicySourceListDirective.h:
(WebCore::ContentSecurityPolicySourceListDirective::setNameForReporting):
LayoutTests:
- http/tests/security/contentSecurityPolicy/1.1/report-uri-effective-directive-expected.txt:
- http/tests/security/contentSecurityPolicy/1.1/script-blocked-sends-multiple-reports-expected.txt:
- http/tests/security/contentSecurityPolicy/1.1/scripthash-allowed-by-enforced-policy-and-blocked-by-report-policy-expected.txt:
- http/tests/security/contentSecurityPolicy/1.1/scripthash-allowed-by-enforced-policy-and-blocked-by-report-policy2-expected.txt:
- http/tests/security/contentSecurityPolicy/1.1/scripthash-allowed-by-legacy-enforced-policy-and-blocked-by-report-policy-expected.txt:
- http/tests/security/contentSecurityPolicy/1.1/scripthash-allowed-by-legacy-enforced-policy-and-blocked-by-report-policy2-expected.txt:
- http/tests/security/contentSecurityPolicy/1.1/scripthash-blocked-by-enforced-policy-and-allowed-by-report-policy-expected.txt:
- http/tests/security/contentSecurityPolicy/1.1/scripthash-blocked-by-legacy-enforced-policy-and-blocked-by-report-policy-expected.txt:
- http/tests/security/contentSecurityPolicy/1.1/scripthash-blocked-by-legacy-enforced-policy-and-blocked-by-report-policy2-expected.txt:
- http/tests/security/contentSecurityPolicy/1.1/scriptnonce-blocked-by-enforced-policy-and-allowed-by-report-policy-expected.txt:
- http/tests/security/contentSecurityPolicy/1.1/securityviolationpolicy-block-frame-using-child-src-expected.txt:
- http/tests/security/contentSecurityPolicy/1.1/securityviolationpolicy-block-frame-using-default-src-expected.txt:
These should both be reproting frame-src as the violated directive,
confirmed this behavior against Chrome.
- http/tests/security/contentSecurityPolicy/report-and-enforce-expected.txt:
- http/tests/security/contentSecurityPolicy/report-only-expected.txt:
- http/tests/security/contentSecurityPolicy/report-only-from-header-expected.txt:
- http/tests/security/contentSecurityPolicy/report-only-upgrade-insecure-expected.txt:
- http/tests/security/contentSecurityPolicy/report-status-code-zero-when-using-https-expected.txt:
- http/tests/security/contentSecurityPolicy/report-uri-expected.txt:
- http/tests/security/contentSecurityPolicy/report-uri-from-child-frame-expected.txt:
- http/tests/security/contentSecurityPolicy/report-uri-scheme-relative-expected.txt:
- 10:34 AM Changeset in webkit [284253] by
-
- 2 edits in trunk/LayoutTests
[ iOS Catalina ] imported/w3c/web-platform-tests/css/css-transforms/crashtests/transform-marquee-resize-div-image-001.html is a flaky failure.
https://bugs.webkit.org/show_bug.cgi?id=231816
Unreviewed test gardning.
- platform/ios-wk2/TestExpectations:
- 10:33 AM Changeset in webkit [284252] by
-
- 4 edits in trunk/Source/WebKit
[macOS] Update sandboxes to support finer-grained XPC services in the media stack
https://bugs.webkit.org/show_bug.cgi?id=231782
<rdar://problem/84275671>
Reviewed by Eric Carlson.
CoreMedia is refactoring to limit the features accessible through a given XPC service.
We need to add an additional service name. This new name just exposes features already
exposed through other XPC endpoints we already allow.
- GPUProcess/mac/com.apple.WebKit.GPUProcess.sb.in: Always allow access to the new service.
- UIProcess/WebPageProxy.cpp:
(WebKit::mediaRelatedMachServices): Updated for new service name.
- WebProcess/com.apple.WebProcess.sb.in: Conditionally consume the new extension
if the GPU process is turned off.
- 9:43 AM Changeset in webkit [284251] by
-
- 2 edits in trunk/Source/WebKit
Unreviewed maccatalyst build fix.
- GPUProcess/cocoa/GPUConnectionToWebProcessCocoa.mm:
(WebKit::GPUConnectionToWebProcess::setTCCIdentity):
- 9:14 AM Changeset in webkit [284250] by
-
- 2 edits in trunk/Source/WebKit
Explicitly link webpushd with Foundation and CoreFoundation
https://bugs.webkit.org/show_bug.cgi?id=231808
<rdar://84302128>
Reviewed by Brady Eidson.
There is a build environment where the linker can't find a bunch of symbols from Foundation and CoreFoundation.
This should fix that build.
- Configurations/webpushd.xcconfig:
- 8:50 AM Changeset in webkit [284249] by
-
- 2 edits in trunk/Source/WebKit
[iOS][GPUP] Block access to Launch Services Database service
https://bugs.webkit.org/show_bug.cgi?id=231504
<rdar://problem/84091679>
Reviewed by Brent Fulgham.
After <https://commits.webkit.org/242382@main>, access to this service is no longer required.
- Resources/SandboxProfiles/ios/com.apple.WebKit.GPU.sb:
- 8:47 AM Changeset in webkit [284248] by
-
- 2 edits in trunk/Source/WebKit
Unreviewed, revert an unintentional sandbox change in r284079
I accidentally included the below change as a part of r284079, since it was necessary in order to avoid several
layout test failures on macOS Monterey:
- fast/canvas/toDataURL-supportedTypes.html
- fast/canvas/canvas-blending-image-over-image.html
- fast/canvas/canvas-blending-image-over-gradient.html
- fast/canvas/canvas-blending-image-over-color.html
- fast/canvas/toDataURL-not-empty.html
...but forgot to revert this change when landing the final patch.
- GPUProcess/mac/com.apple.WebKit.GPUProcess.sb.in:
- 8:25 AM Changeset in webkit [284247] by
-
- 3 edits2 adds in trunk
REGRESSION (r276370): Elements with animated transform property might not properly rendered
https://bugs.webkit.org/show_bug.cgi?id=230753
Reviewed by Myles C. Maxfield.
Source/WebCore:
The change in r276370 was incorrect, resulting in the geometry map being used when
an element had a transform andtransform-style: preserves-3d.
Fix by going back to testing for the presence of the various transform properties which
affect geometry. hasTransformRelatedProperty() is still useful as a fast bit-check.
Test: fast/repaint/transform-preserve-3d-repaint.html
- rendering/RenderGeometryMap.cpp:
(WebCore::canMapBetweenRenderersViaLayers):
LayoutTests:
- fast/repaint/transform-preserve-3d-repaint-expected.txt: Added.
- fast/repaint/transform-preserve-3d-repaint.html: Added.
- 8:13 AM Changeset in webkit [284246] by
-
- 5 edits2 adds in trunk
AX: role="math" elements are no longer considered to have presentational children
https://bugs.webkit.org/show_bug.cgi?id=231756
Patch by Tyler Wilcock <Tyler Wilcock> on 2021-10-15
Reviewed by Chris Fleizach and Darin Adler.
Source/WebCore:
As of WAI-ARIA 1.2, role="math" elements are no longer considered to
have presentational children.
Test: accessibility/math-has-non-presentational-children.html
- accessibility/AccessibilityNodeObject.cpp:
(WebCore::AccessibilityNodeObject::canHaveChildren const):
Allow AccessibilityRole::DocumentMath elements to have children.
LayoutTests:
- accessibility/math-has-non-presentational-children-expected.txt: Added.
- accessibility/math-has-non-presentational-children.html: Added.
- accessibility/presentational-children-expected.txt:
- accessibility/presentational-children.html:
Remove the role="math" element from this test because as of WAI-ARIA
1.2 role="math" is no longer considered to have presentational children.
Also change this test to ensure role="meter" elements are considered to
have presentational children because that testcase was missing.
- 8:10 AM WebKitGTK/2.34.x edited by
- (diff)
- 8:09 AM WebKitGTK/2.32.x edited by
- (diff)
- 7:35 AM Changeset in webkit [284245] by
-
- 4 edits2 adds in trunk
AX: WebKit should not expose redundant AXGroups with missing role when the label is the same as the contents
https://bugs.webkit.org/show_bug.cgi?id=169924
Patch by Tyler Wilcock <Tyler Wilcock> on 2021-10-15
Reviewed by Andres Gonzalez.
Source/WebCore:
Don't expose groups with redundant accessibility text on the Mac.
Here's an example of one such group:
<div aria-label="1">1</div>
This group is not useful to accessibility clients. Instead, we
expose the text contents directly.
Test: accessibility/ignore-redundant-accessibility-text-groups.html
- accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::textUnderElement const):
Instead of asserting when we try to get the text of an element in a
document that needs a style update, return an empty string.
- accessibility/mac/AccessibilityObjectMac.mm:
(WebCore::shouldIgnoreGroup): Added.
(WebCore::AccessibilityObject::accessibilityPlatformIncludesObject const):
LayoutTests:
Add a test ensuring WebKit appropriately does and doesn't expose
groups with redundant accessibility text.
- accessibility/mac/ignore-redundant-accessibility-text-groups-expected.txt: Added.
- accessibility/mac/ignore-redundant-accessibility-text-groups.html: Added.
- 7:32 AM Changeset in webkit [284244] by
-
- 6 edits4 adds in trunk
AX: Return AXEmptyGroup subrole for groups with no accessible content
https://bugs.webkit.org/show_bug.cgi?id=231528
Patch by Tyler Wilcock <Tyler Wilcock> on 2021-10-15
Reviewed by Andres Gonzalez.
Source/WebCore:
Return a subrole of "AXEmptyGroup" for groups without any exposed
children. WebKit can calculate this more efficiently than AX clients,
so it makes more sense to do here.
Test: accessibility/mac/empty-group-computation.html
- accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
(-[WebAccessibilityObjectWrapper subrole]):
LayoutTests:
- accessibility/mac/aria-divs-not-ignored-expected.txt:
- accessibility/mac/aria-divs-not-ignored.html:
Expect a subrole of AXEmptyGroup because this group has no content.
- accessibility/mac/empty-group-computation-expected.txt: Added.
- accessibility/mac/empty-group-computation.html: Added.
- platform/mac/accessibility/lists-expected.txt: Added.
- platform/mac/accessibility/plugin-expected.txt: Added.
Add these Mac-specific expectations for these tests because this patch
only causes Mac to expose the AXEmptyGroup subrole.
- platform/mac/accessibility/svg-element-with-aria-role-expected.txt:
Add an expected subrole of AXEmptyGroup.
- 7:01 AM Changeset in webkit [284243] by
-
- 2 edits in trunk
Change Andres Gonzalez status to reviewer.
https://bugs.webkit.org/show_bug.cgi?id=231738
Reviewed by Chris Fleizach.
- metadata/contributors.json:
- 6:33 AM Changeset in webkit [284242] by
-
- 3 edits2 adds in trunk
[LFC][IFC] Do not break the word-wrap: break-word content on inline box boundary
https://bugs.webkit.org/show_bug.cgi?id=231761
Reviewed by Antti Koivisto.
Source/WebCore:
When the text content is breakable at arbitrary position and it is not the overflowing content (the overflowing content is not breakable)
we just return the text run as the trailing run as it surely fits e.g.
<span style="word-wrap: break-word">this_content_is_breakable</span>and_this_content_overflows
- There's no soft wrapping opportunity between the two text runs (they form a continuous set)
- The trailing run overflow but can't be split
we go backwards on the set to find a breakable one. In this case the first text run is breakable (see CSS property) and
since we know it fits the line we just simply declare the end of the run as the breaking position.
However we should try to keep the runs and their adjacent inline box boundary runs together and instead find the end of the </span> as
the breaking position. It's mostly noticeable when the inline box has some visual decoration e.g. border.
Test: fast/inline/wordbreak-at-inline-box-boundary.html
- layout/formattingContexts/inline/InlineContentBreaker.cpp:
(WebCore::Layout::InlineContentBreaker::tryBreakingTextRun const):
(WebCore::Layout::InlineContentBreaker::tryBreakingPreviousNonOverflowingRuns const):
LayoutTests:
- fast/inline/wordbreak-at-inline-box-boundary-expected.html: Added.
- fast/inline/wordbreak-at-inline-box-boundary.html: Added.
- 3:24 AM Changeset in webkit [284241] by
-
- 14 edits in trunk
[WebIDL] JSDOMBuiltinConstructor instances should support subclassing
https://bugs.webkit.org/show_bug.cgi?id=231689
Reviewed by Youenn Fablet.
LayoutTests/imported/w3c:
- web-platform-tests/streams/queuing-strategies.any-expected.txt:
- web-platform-tests/streams/queuing-strategies.any.worker-expected.txt:
- web-platform-tests/streams/readable-streams/general.any-expected.txt:
- web-platform-tests/streams/readable-streams/general.any.worker-expected.txt:
- web-platform-tests/streams/transform-streams/general.any-expected.txt:
- web-platform-tests/streams/transform-streams/general.any.worker-expected.txt:
Source/WebCore:
This patch:
- Removes JSDOMObjectInspector and related conditional createJSObject() / callConstructor() overloads: they aren't necessary because code generator guarantees that built-in constructors are called only on JSDOMObjectInspector<JSClass>::isBuiltin objects.
- Implements proper subclassing [1] for built-in constructors, ensuring exception checking and rare cases are kept off the fast path. For simplicity and consistency with JSC built-ins and setSubclassStructureIfNeeded(), getFunctionRealm() is called before "prototype" lookup, which is non-observable.
- Further improves constructor's fast path by replacing slowish argument-copying callFunctionWithCurrentArguments() with ArgList(CallFrame*) constructor.
[1] https://webidl.spec.whatwg.org/#internally-create-a-new-object-implementing-the-interface (step 3)
Tests: imported/w3c/web-platform-tests/streams/queuing-strategies.any.js
imported/w3c/web-platform-tests/streams/readable-streams/general.any.js
imported/w3c/web-platform-tests/streams/transform-streams/general.any.js
- bindings/js/JSDOMBuiltinConstructor.h:
(WebCore::JSDOMBuiltinConstructor<JSClass>::getDOMStructureForJSObject):
(WebCore::JSDOMBuiltinConstructor<JSClass>::construct):
(WebCore::JSDOMBuiltinConstructor<JSClass>::callConstructor): Deleted.
(WebCore::createJSObject): Deleted.
- bindings/js/JSDOMBuiltinConstructorBase.cpp:
(WebCore::JSDOMBuiltinConstructorBase::callFunctionWithCurrentArguments): Deleted.
- bindings/js/JSDOMBuiltinConstructorBase.h:
- bindings/js/JSDOMWrapper.h:
- bindings/scripts/CodeGeneratorJS.pm:
(AddJSBuiltinIncludesIfNeeded):
Removes [JSBuiltin] check because it's superseded by HasJSBuiltinConstructor helper.
- bindings/scripts/IDLAttributes.json:
Removes unused [JSBuiltinConstructor] extended attribute:
[JSBuiltin] on constructor() or interface should be used instead.
- 2:26 AM Changeset in webkit [284240] by
-
- 16 edits2 copies1 add in trunk/Source
WebKit Managed Notifications: Skeleton NotificationProvider.
<rdar://84275562> and https://bugs.webkit.org/show_bug.cgi?id=231786
Reviewed by Alex Christensen.
Source/WebKit:
No new tests (No behavior change yet)
Currently WebNotificationManagerProxy manages dispatching out stuff to the NotificationProvider SPI
that - for example - Safari on Mac implements.
The interface between the ManagerProxy and the Provider is already the perfect way to add an alternative behavior.
This introduces the skeleton class of an alternative NotificationProvider that will eventually implement
WebKit-managed notifications.
While under development it will have a global runtime switch so we can A/B test between the client-managed and
WebKit-managed notifications. That switch would eventually be replaced by full compile-time behavior which would
be decided by a shipping vendor.
Note: This patch enables the new flag BUILT_IN_NOTIFICATIONS to get the new mechanisms building, but that flag by
itself doesn't expose Notifications interfaces in WebCore.
That will still require enabling NOTIFICATIONS separately.
- SourcesCocoa.txt:
- UIProcess/API/APINotificationProvider.h:
(API::NotificationProvider::isClientReplaceable const): A temporary mechanism to prevent API clients from overriding
the built-in NotificationProvider if the feature is enabled. Useful right now because existing Safari does that with existing SPI.
- UIProcess/API/APIUIClient.h:
(API::UIClient::decidePolicyForNotificationPermissionRequest):
- UIProcess/API/Cocoa/WKUIDelegatePrivate.h:
- UIProcess/Cocoa/UIDelegate.h:
- UIProcess/Cocoa/UIDelegate.mm:
(WebKit::UIDelegate::setDelegate):
(WebKit::UIDelegate::UIClient::decidePolicyForNotificationPermissionRequest):
- UIProcess/Notifications/Cocoa/WebNotificationProviderCocoa.h: Copied from Source/WebKit/UIProcess/API/APINotificationProvider.h.
- UIProcess/Notifications/Cocoa/WebNotificationProviderCocoa.mm: Added.
(WebKit::WebNotificationProviderCocoa::createIfEnabled):
(WebKit::WebNotificationProviderCocoa::WebNotificationProviderCocoa):
(WebKit::WebNotificationProviderCocoa::show):
(WebKit::WebNotificationProviderCocoa::cancel):
(WebKit::WebNotificationProviderCocoa::didDestroyNotification):
(WebKit::WebNotificationProviderCocoa::clearNotifications):
(WebKit::WebNotificationProviderCocoa::addNotificationManager):
(WebKit::WebNotificationProviderCocoa::removeNotificationManager):
(WebKit::WebNotificationProviderCocoa::notificationPermissions):
- UIProcess/Notifications/WebNotificationManagerProxy.cpp:
(WebKit::WebNotificationManagerProxy::WebNotificationManagerProxy):
(WebKit::WebNotificationManagerProxy::setProvider):
Fix changes to the Unified Build:
- UIProcess/ios/WKHoverPlatter.h:
- UIProcess/ios/WKHoverPlatter.mm:
- WebKit.xcodeproj/project.pbxproj:
Source/WebKitLegacy/mac:
- WebCoreSupport/WebNotificationClient.mm:
(-[WebNotificationPolicyListener NO_RETURN_DUE_TO_ASSERT]):
(-[WebNotificationPolicyListener denyOnlyThisRequest]): Deleted.
Source/WTF:
- Scripts/Preferences/WebPreferencesDebug.yaml:
- wtf/PlatformEnableCocoa.h:
- 2:03 AM Changeset in webkit [284239] by
-
- 3 edits in trunk/Source/WebCore
[WPE][GTK] Update user agent browser versions
https://bugs.webkit.org/show_bug.cgi?id=231772
Patch by Michael Catanzaro <Michael Catanzaro> on 2021-10-15
Reviewed by Carlos Garcia Campos.
- platform/UserAgentQuirks.cpp:
(WebCore::UserAgentQuirks::stringForQuirk):
- platform/glib/UserAgentGLib.cpp:
(WebCore::buildUserAgentString):
- 1:42 AM Changeset in webkit [284238] by
-
- 3 edits in trunk
Unreviewed. Fix GTK build with ubuntu 18.04
GLib version bump in r284152 was too high for ubuntu 18.04 even though it followed our dependencies policy.
- Source/cmake/OptionsGTK.cmake:
- Source/cmake/OptionsWPE.cmake:
- 12:35 AM Changeset in webkit [284237] by
-
- 91 edits3 deletes in trunk
Revert r284230, my last fixes to the watch build make it break tests
https://bugs.webkit.org/show_bug.cgi?id=231797
Unreviewed.
JSTests:
- stress/big-wasm-memory-grow-no-max.js:
(test):
- stress/big-wasm-memory-grow.js:
(test):
- stress/big-wasm-memory.js:
(test):
- stress/typed-array-always-large.js: Removed.
(getArrayLength): Deleted.
(getByVal): Deleted.
(putByVal): Deleted.
(test): Deleted.
- stress/typed-array-eventually-large.js: Removed.
(getArrayLength): Deleted.
(getByVal): Deleted.
(putByVal): Deleted.
(test): Deleted.
- stress/typed-array-large-eventually-oob.js: Removed.
(getArrayLength): Deleted.
(getByVal): Deleted.
(putByVal): Deleted.
(test): Deleted.
- wasm/regress/wasm-memory-requested-more-than-MAX_ARRAY_BUFFER_SIZE-2.js:
- wasm/regress/wasm-memory-requested-more-than-MAX_ARRAY_BUFFER_SIZE.js:
Source/JavaScriptCore:
Revert "Allow WASM to use up to 4GB"
- assembler/AbstractMacroAssembler.cpp:
- assembler/AbstractMacroAssembler.h:
(JSC::AbstractMacroAssembler::TrustedImmPtr::TrustedImmPtr):
(JSC::AbstractMacroAssembler::TrustedImmPtr::asIntptr):
(JSC::AbstractMacroAssembler::TrustedImmPtr::asPtr):
(JSC::AbstractMacroAssembler::ImmPtr::ImmPtr):
(JSC::AbstractMacroAssembler::ImmPtr::asTrustedImmPtr):
(JSC::AbstractMacroAssembler::TrustedImm32::TrustedImm32):
(JSC::AbstractMacroAssembler::Imm32::Imm32):
(JSC::AbstractMacroAssembler::Imm32::asTrustedImm32 const):
(JSC::AbstractMacroAssembler::TrustedImm64::TrustedImm64):
(JSC::AbstractMacroAssembler::Imm64::Imm64):
(JSC::AbstractMacroAssembler::Imm64::asTrustedImm64 const):
(JSC::AbstractMacroAssembler::canBlind):
(JSC::AbstractMacroAssembler::shouldBlindForSpecificArch):
- assembler/MacroAssembler.h:
(JSC::MacroAssembler::and64):
(JSC::MacroAssembler::branch64): Deleted.
- assembler/MacroAssemblerARM64.h:
(JSC::MacroAssemblerARM64::shouldBlindForSpecificArch):
- assembler/MacroAssemblerARM64E.h:
(JSC::MacroAssemblerARM64E::untagArrayPtrLength32):
(JSC::MacroAssemblerARM64E::untagArrayPtrLength64): Deleted.
- assembler/MacroAssemblerX86Common.h:
(JSC::MacroAssemblerX86Common::canBlind):
(JSC::MacroAssemblerX86Common::shouldBlindForSpecificArch):
- bytecode/AccessCase.cpp:
(JSC::AccessCase::needsScratchFPR const):
(JSC::AccessCase::generateWithGuard):
- bytecode/ArrayProfile.h:
(JSC::UnlinkedArrayProfile::update):
(JSC::ArrayProfile::setMayBeLargeTypedArray): Deleted.
(JSC::ArrayProfile::mayBeLargeTypedArray const): Deleted.
(JSC::UnlinkedArrayProfile::UnlinkedArrayProfile): Deleted.
- dfg/DFGAbstractInterpreterInlines.h:
(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):
- dfg/DFGArgumentsEliminationPhase.cpp:
- dfg/DFGArrayMode.cpp:
(JSC::DFG::ArrayMode::refine const):
- dfg/DFGArrayMode.h:
(JSC::DFG::ArrayMode::ArrayMode):
(JSC::DFG::ArrayMode::action const):
(JSC::DFG::ArrayMode::withSpeculation const):
(JSC::DFG::ArrayMode::withArrayClass const):
(JSC::DFG::ArrayMode::withSpeculationFromProfile const):
(JSC::DFG::ArrayMode::withProfile const):
(JSC::DFG::ArrayMode::withType const):
(JSC::DFG::ArrayMode::withConversion const):
(JSC::DFG::ArrayMode::withTypeAndConversion const):
(JSC::DFG::ArrayMode::operator== const):
(JSC::DFG::ArrayMode::mayBeLargeTypedArray const): Deleted.
(JSC::DFG::ArrayMode::withArrayClassAndSpeculationAndMayBeLargeTypedArray const): Deleted.
(JSC::DFG::ArrayMode::speculationFromProfile): Deleted.
- dfg/DFGByteCodeParser.cpp:
(JSC::DFG::ByteCodeParser::handleIntrinsicGetter):
- dfg/DFGClobberize.h:
(JSC::DFG::clobberize):
- dfg/DFGCommon.h:
(JSC::DFG::enableInt52):
- dfg/DFGConstantFoldingPhase.cpp:
(JSC::DFG::ConstantFoldingPhase::foldConstants):
- dfg/DFGDoesGC.cpp:
(JSC::DFG::doesGC):
- dfg/DFGFixupPhase.cpp:
(JSC::DFG::FixupPhase::fixupNode):
(JSC::DFG::FixupPhase::prependGetArrayLength):
- dfg/DFGGenerationInfo.h:
- dfg/DFGHeapLocation.cpp:
(WTF::printInternal):
- dfg/DFGHeapLocation.h:
- dfg/DFGIntegerRangeOptimizationPhase.cpp:
- dfg/DFGNode.h:
(JSC::DFG::Node::hasStorageChild const):
(JSC::DFG::Node::storageChildIndex):
(JSC::DFG::Node::hasArrayMode):
- dfg/DFGNodeType.h:
- dfg/DFGOperations.cpp:
(JSC::DFG::putByVal):
(JSC::DFG::newTypedArrayWithSize):
(JSC::DFG::JSC_DEFINE_JIT_OPERATION):
- dfg/DFGOperations.h:
- dfg/DFGPredictionPropagationPhase.cpp:
- dfg/DFGSSALoweringPhase.cpp:
(JSC::DFG::SSALoweringPhase::handleNode):
(JSC::DFG::SSALoweringPhase::lowerBoundsCheck):
- dfg/DFGSafeToExecute.h:
(JSC::DFG::safeToExecute):
- dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::jumpForTypedArrayOutOfBounds):
(JSC::DFG::SpeculativeJIT::emitTypedArrayBoundsCheck):
(JSC::DFG::SpeculativeJIT::compileGetByValOnIntTypedArray):
(JSC::DFG::SpeculativeJIT::compilePutByValForIntTypedArray):
(JSC::DFG::SpeculativeJIT::compileGetByValOnFloatTypedArray):
(JSC::DFG::SpeculativeJIT::compilePutByValForFloatTypedArray):
(JSC::DFG::SpeculativeJIT::cageTypedArrayStorage):
(JSC::DFG::SpeculativeJIT::compileGetTypedArrayByteOffset):
(JSC::DFG::SpeculativeJIT::compileGetArrayLength):
(JSC::DFG::SpeculativeJIT::compileNewTypedArrayWithSize):
(JSC::DFG::SpeculativeJIT::compileNewTypedArray):
(JSC::DFG::SpeculativeJIT::emitNewTypedArrayWithSizeInRegister): Deleted.
- dfg/DFGSpeculativeJIT.h:
- dfg/DFGSpeculativeJIT32_64.cpp:
(JSC::DFG::SpeculativeJIT::compileGetByVal):
(JSC::DFG::SpeculativeJIT::compile):
- dfg/DFGSpeculativeJIT64.cpp:
(JSC::DFG::SpeculativeJIT::compile):
(JSC::DFG::SpeculativeJIT::compileNewTypedArrayWithInt52Size): Deleted.
(JSC::DFG::SpeculativeJIT::compileGetTypedArrayLengthAsInt52): Deleted.
(JSC::DFG::SpeculativeJIT::compileGetTypedArrayByteOffsetAsInt52): Deleted.
- dfg/DFGTypeCheckHoistingPhase.cpp:
(JSC::DFG::TypeCheckHoistingPhase::identifyRedundantStructureChecks):
(JSC::DFG::TypeCheckHoistingPhase::identifyRedundantArrayChecks):
- dfg/DFGValidate.cpp:
- ftl/FTLCapabilities.cpp:
(JSC::FTL::canCompile):
- ftl/FTLLowerDFGToB3.cpp:
(JSC::FTL::DFG::LowerDFGToB3::validateAIState):
(JSC::FTL::DFG::LowerDFGToB3::compileNode):
(JSC::FTL::DFG::LowerDFGToB3::compileGetTypedArrayByteOffset):
(JSC::FTL::DFG::LowerDFGToB3::compileGetArrayLength):
(JSC::FTL::DFG::LowerDFGToB3::compilePutByVal):
(JSC::FTL::DFG::LowerDFGToB3::compileNewTypedArray):
(JSC::FTL::DFG::LowerDFGToB3::compileCompareStrictEq):
(JSC::FTL::DFG::LowerDFGToB3::emitGetTypedArrayByteOffsetExceptSettingResult): Deleted.
(JSC::FTL::DFG::LowerDFGToB3::compileGetTypedArrayByteOffsetAsInt52): Deleted.
(JSC::FTL::DFG::LowerDFGToB3::compileGetTypedArrayLengthAsInt52): Deleted.
(JSC::FTL::DFG::LowerDFGToB3::compileCheckInBoundsInt52): Deleted.
(JSC::FTL::DFG::LowerDFGToB3::emitNewTypedArrayWithSize): Deleted.
- ftl/FTLOutput.h:
(JSC::FTL::Output::load32NonNegative):
(JSC::FTL::Output::load64NonNegative): Deleted.
- jit/IntrinsicEmitter.cpp:
(JSC::IntrinsicGetterAccessCase::emitIntrinsicGetter):
- jit/JITOperations.cpp:
(JSC::putByVal):
(JSC::getByVal):
- llint/LLIntOfflineAsmConfig.h:
- llint/LLIntSlowPaths.cpp:
(JSC::LLInt::getByVal):
(JSC::LLInt::LLINT_SLOW_PATH_DECL):
- llint/LowLevelInterpreter.asm:
- llint/LowLevelInterpreter32_64.asm:
- llint/LowLevelInterpreter64.asm:
- runtime/ArrayBuffer.cpp:
(JSC::SharedArrayBufferContents::SharedArrayBufferContents):
(JSC::ArrayBufferContents::ArrayBufferContents):
(JSC::ArrayBufferContents::tryAllocate):
(JSC::ArrayBuffer::create):
(JSC::ArrayBuffer::createAdopted):
(JSC::ArrayBuffer::createFromBytes):
(JSC::ArrayBuffer::tryCreate):
(JSC::ArrayBuffer::createUninitialized):
(JSC::ArrayBuffer::tryCreateUninitialized):
(JSC::ArrayBuffer::createInternal):
(JSC::ArrayBuffer::clampValue):
(JSC::ArrayBuffer::clampIndex const):
(JSC::ArrayBuffer::sliceWithClampedIndex const):
- runtime/ArrayBuffer.h:
(JSC::ArrayBufferContents::sizeInBytes const):
(JSC::ArrayBuffer::byteLength const):
(JSC::ArrayBuffer::gcSizeEstimateInBytes const):
- runtime/ArrayBufferView.cpp:
(JSC::ArrayBufferView::ArrayBufferView):
- runtime/ArrayBufferView.h:
(JSC::ArrayBufferView::byteOffset const):
(JSC::ArrayBufferView::byteLength const):
(JSC::ArrayBufferView::verifyByteOffsetAlignment):
(JSC::ArrayBufferView::verifySubRangeLength):
(JSC::ArrayBufferView::clampOffsetAndNumElements):
(JSC::ArrayBufferView::setImpl):
(JSC::ArrayBufferView::setRangeImpl):
(JSC::ArrayBufferView::getRangeImpl):
(JSC::ArrayBufferView::zeroRangeImpl):
(JSC::ArrayBufferView::calculateOffsetAndLength):
- runtime/AtomicsObject.cpp:
- runtime/DataView.cpp:
(JSC::DataView::DataView):
(JSC::DataView::create):
- runtime/DataView.h:
- runtime/GenericTypedArrayView.h:
- runtime/GenericTypedArrayViewInlines.h:
(JSC::GenericTypedArrayView<Adaptor>::GenericTypedArrayView):
(JSC::GenericTypedArrayView<Adaptor>::create):
(JSC::GenericTypedArrayView<Adaptor>::tryCreate):
(JSC::GenericTypedArrayView<Adaptor>::createUninitialized):
(JSC::GenericTypedArrayView<Adaptor>::tryCreateUninitialized):
(JSC::GenericTypedArrayView<Adaptor>::subarray const):
- runtime/JSArrayBufferView.cpp:
(JSC::JSArrayBufferView::ConstructionContext::ConstructionContext):
(JSC::JSArrayBufferView::byteLength const):
(JSC::JSArrayBufferView::slowDownAndWasteMemory):
(JSC::JSArrayBufferView::possiblySharedImpl):
- runtime/JSArrayBufferView.h:
(JSC::JSArrayBufferView::sizeOf):
(JSC::JSArrayBufferView::ConstructionContext::length const):
(JSC::JSArrayBufferView::length const):
- runtime/JSArrayBufferViewInlines.h:
(JSC::JSArrayBufferView::byteOffsetImpl):
(JSC::JSArrayBufferView::byteOffset):
(JSC::JSArrayBufferView::byteOffsetConcurrently):
- runtime/JSCJSValue.h:
- runtime/JSCJSValueInlines.h:
(JSC::JSValue::toIndex const):
(JSC::JSValue::toTypedArrayIndex const): Deleted.
- runtime/JSDataView.cpp:
(JSC::JSDataView::create):
(JSC::JSDataView::createUninitialized):
(JSC::JSDataView::set):
(JSC::JSDataView::setIndex):
- runtime/JSDataView.h:
- runtime/JSDataViewPrototype.cpp:
(JSC::getData):
(JSC::setData):
- runtime/JSGenericTypedArrayView.h:
- runtime/JSGenericTypedArrayViewConstructorInlines.h:
(JSC::constructGenericTypedArrayViewWithArguments):
(JSC::constructGenericTypedArrayViewImpl):
- runtime/JSGenericTypedArrayViewInlines.h:
(JSC::JSGenericTypedArrayView<Adaptor>::create):
(JSC::JSGenericTypedArrayView<Adaptor>::createWithFastVector):
(JSC::JSGenericTypedArrayView<Adaptor>::createUninitialized):
(JSC::JSGenericTypedArrayView<Adaptor>::validateRange):
(JSC::JSGenericTypedArrayView<Adaptor>::setWithSpecificType):
(JSC::JSGenericTypedArrayView<Adaptor>::set):
- runtime/JSObject.h:
(JSC::JSObject::putByIndexInline):
(JSC::JSObject::tryGetIndexQuickly const):
(JSC::JSObject::canSetIndexQuickly):
(JSC::JSObject::trySetIndexQuickly): Deleted.
- runtime/JSObjectInlines.h:
(JSC::JSObject::canSetIndexQuicklyForTypedArray const):
(JSC::JSObject::getIndexQuicklyForTypedArray const):
(JSC::JSObject::setIndexQuicklyForArrayStorageIndexingType): Deleted.
(JSC::JSObject::trySetIndexQuicklyForTypedArray): Deleted.
- runtime/Operations.h:
(JSC::getByValWithIndex):
- wasm/WasmPageCount.h:
Source/WebCore:
Revert "Allow WASM to use up to 4GB"
- Modules/webaudio/AudioBuffer.cpp:
(WebCore::AudioBuffer::copyFromChannel):
(WebCore::AudioBuffer::copyToChannel):
- Modules/webaudio/RealtimeAnalyser.cpp:
(WebCore::RealtimeAnalyser::getByteFrequencyData):
(WebCore::RealtimeAnalyser::getFloatTimeDomainData):
(WebCore::RealtimeAnalyser::getByteTimeDomainData):
- bindings/js/SerializedScriptValue.cpp:
(WebCore::CloneSerializer::dumpArrayBufferView):
(WebCore::CloneSerializer::dumpImageBitmap):
(WebCore::CloneSerializer::dumpIfTerminal):
(WebCore::CloneSerializer::write):
(WebCore::CloneDeserializer::read):
(WebCore::CloneDeserializer::readArrayBuffer):
(WebCore::CloneDeserializer::readArrayBufferView):
(WebCore::CloneDeserializer::readImageBitmap):
(WebCore::CloneDeserializer::readArrayBufferImpl): Deleted.
(WebCore::CloneDeserializer::readArrayBufferViewImpl): Deleted.
- bindings/js/SerializedScriptValue.h:
(WebCore::SerializedScriptValue::encode const):
(WebCore::SerializedScriptValue::decode):
- fileapi/NetworkSendQueue.cpp:
(WebCore::NetworkSendQueue::enqueue):
- platform/graphics/PixelBuffer.cpp:
(WebCore::PixelBuffer::tryCreate):
- platform/graphics/iso/ISOBox.h:
Source/WTF:
Revert "Allow WASM to use up to 4GB"
- wtf/CheckedArithmetic.h:
(WTF::isInBounds):
(WTF::convertSafely):
(WTF::isSumSmallerThanOrEqual): Deleted.
- wtf/PlatformUse.h:
LayoutTests:
Revert "Allow WASM to use up to 4GB"
- fast/storage/serialized-script-value.html:
- webaudio/OfflineAudioContext-bad-buffer-crash-expected.txt:
- webaudio/OfflineAudioContext/bad-buffer-length-expected.txt: