Timeline
Jul 13, 2021:
- 10:57 PM Changeset in webkit [279905] by
-
- 2 edits in trunk/Source/WebCore
MediaSessionManagerCocoa::ensureCodecsRegistered() isn't thread-safe
https://bugs.webkit.org/show_bug.cgi?id=227940
Reviewed by Maciej Stachowiak.
C++11 static initializers aren't thread-safe due to architectural and compilation
option choices. So we use Grand Central Dispatch's dispatch_once instead.
- platform/audio/cocoa/MediaSessionManagerCocoa.mm:
(WebCore::MediaSessionManagerCocoa::ensureCodecsRegistered):
- 10:12 PM Changeset in webkit [279904] by
-
- 19 edits6 adds in trunk
SourceBuffer.abort() doesn't go back to state WAITING_FOR_SEGMENT properly
https://bugs.webkit.org/show_bug.cgi?id=227559
<rdar://problem/79996056>
Reviewed by Jer Noble.
Source/WebCore:
Per spec, calling sourcebuffer.abort method should allow you to add a new segment
immediately after, as abort moves the append state back to WAITING_FOR_SEGMENT.
A segment can be either an init segment or a media segment.
We used to discard all further content until an init segment was encountered.
This could be problematic due to the typical use case of abort:
1- Seek to a location
2- Append a partial media segment long enough to finish seeking and display the
new content at the new position.
If multiple seeks were done in rapid succession, abort() is called right after
before starting the new seek so that we can add the new segment, regardless of what
was appended before.
YouTube applies a workaround for Safari where it will always append an init segment
after calling abort, this is different to what they do with Firefox (and likely Chrome).
To be able to resume after appending a partial media segment we must ensure that the
SourceBufferParser is always left in a sane context, and not be interrupted at some
random points. The abort() call used to interrupt the buffer parsing on the fly and
then reset things which would require a new init segment to restart.
Instead we always fully parse the pending buffer received befofe the call to abort
and drop all demuxed samples.
The SourceBufferParserAVFObjC could already properly deal with discontinuity unlike
SourceBufferParserWebM.
To ensure that buffers sent after the call to abort() are only ever processed once
the pending ones have been parsed, and in order to avoid having blocking calls
we play with the order in which tasks are scheduled.
Fly-by fixes:
- The SourceBufferParser handle two type of parser: SourceBufferParser and the
platform specific AVStreamDataParser. Rename the accessor method to more clearly
differentate which parser we are dealing with.
- The SourceBufferParserWebM and SourceBufferPrivateAVFObjC used different task dispatching
mechanisms. We make them both share the same one now found in the base class.
- If SourceBufferPrivateAVFObjC::m_hasPendingAppendCompletedCallback had been set prior an
abort() it wouldn't have been reset, causing the need for a new init segment.
- If abort() had been called while samples were pending, the source buffer content was
undefined if timestamp offset or append windows start/end were changed immediately after.
- When an error occurs during the Segment Parser Loop, we should abort and run the append
error algorithm. We instead fired an error event for each sample found in the media segment.
In a debug built it was have asserted. We can't actually abort, so instead we ignore all
further samples once an error is encountered.
Tests: media/media-source/media-mp4-h264-partial-abort.html
media/media-source/media-webm-opus-partial-abort.html
- platform/graphics/avfoundation/objc/CDMSessionAVContentKeySession.mm:
(WebCore::CDMSessionAVContentKeySession::~CDMSessionAVContentKeySession): rename method.
- platform/graphics/avfoundation/objc/CDMSessionAVStreamSession.mm:
(WebCore::CDMSessionAVStreamSession::~CDMSessionAVStreamSession): rename method.
(WebCore::CDMSessionAVStreamSession::update): rename method.
- platform/graphics/avfoundation/objc/CDMSessionMediaSourceAVFObjC.mm: rename method.
(WebCore::CDMSessionMediaSourceAVFObjC::addSourceBuffer): rename method.
(WebCore::CDMSessionMediaSourceAVFObjC::removeSourceBuffer): rename method.
- platform/graphics/avfoundation/objc/SourceBufferParserAVFObjC.h: rename method, remove
now unused member.
- platform/graphics/avfoundation/objc/SourceBufferParserAVFObjC.mm:
(WebCore::SourceBufferPrivateAVFObjC::removeCodedFrames): Postpone call to ensure
we are running the remove frame algorithm once all pending frames have been processed.
(WebCore::SourceBufferParserAVFObjC::resetParserState): Remove use of m_discardSamplesUntilNextInitializationSegment.
(WebCore::SourceBufferParserAVFObjC::didParseStreamDataAsAsset): Change to base dispatch method.
(WebCore::SourceBufferParserAVFObjC::didFailToParseStreamDataWithError): Change to base dispatch method.
(WebCore::SourceBufferParserAVFObjC::didProvideMediaDataForTrackID): Change to base dispatch method.
- platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.h: Rename methods. Remove no longer used
members.
- platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm:
(WebCore::SourceBufferPrivateAVFObjC::~SourceBufferPrivateAVFObjC):
(WebCore::SourceBufferPrivateAVFObjC::didParseInitializationData): No longer use a Cancellable task
as we never cancel it anymore.
(WebCore::SourceBufferPrivateAVFObjC::append): re-schedule the append task immediately to ensure
that processed packets flushed on the parser queue during abort are handled in the right order on
the main thread.
(WebCore::SourceBufferPrivateAVFObjC::appendCompleted): Check that abort wasn't called since append started
to ensure that no updateend event is incorrectly fired twice.
(WebCore::SourceBufferPrivateAVFObjC::abort): Abort is now a no-op that only set the m_abortCalled member.
(WebCore::SourceBufferPrivateAVFObjC::resetParserState): Change the order of operations so that the
SourceBufferParser is only reset after it has finished processing its data.
(WebCore::SourceBufferPrivateAVFObjC::destroyStreamDataParser): Use rename method.
(WebCore::SourceBufferPrivateAVFObjC::removedFromMediaSource): Use rename method.
(WebCore::SourceBufferPrivateAVFObjC::streamDataParser const): Renamed method from "parser"
(WebCore::SourceBufferPrivateAVFObjC::attemptToDecrypt): Use renamed method.
- platform/graphics/cocoa/SourceBufferParser.cpp:
(WebCore::callOnMainThreadCallback): Move dispatch method from SourceBufferParserWebM
(WebCore::SourceBufferParser::setCallOnClientThreadCallback):
(WebCore::SourceBufferParser::SourceBufferParser):
- platform/graphics/cocoa/SourceBufferParser.h:
- platform/graphics/cocoa/SourceBufferParserWebM.cpp:
(WebCore::SourceBufferParserWebM::SourceBufferParserWebM):
(WebCore::SourceBufferParserWebM::resetParserState): Don't clear the data set by parsing
the previous init segment. Set the parsing state to waiting for a new segment if an
init segment has been fully parsed.
(WebCore::SourceBufferParserWebM::OnElementEnd):
(WebCore::SourceBufferParserWebM::OnEbml):
(WebCore::SourceBufferParserWebM::VideoTrackData::reset):
(WebCore::SourceBufferParserWebM::VideoTrackData::consumeFrameData):
(WebCore::SourceBufferParserWebM::AudioTrackData::reset):
- platform/graphics/cocoa/SourceBufferParserWebM.h:
LayoutTests:
- media/media-source/content/test-fragmented-video-manifest.json: Added.
- media/media-source/content/test-fragmented-video.mp4: Added.
- media/media-source/media-mp4-h264-partial-abort-expected.txt: Added.
- media/media-source/media-mp4-h264-partial-abort.html: Added.
- media/media-source/media-webm-opus-partial-abort-expected.txt: Added.
- media/media-source/media-webm-opus-partial-abort.html: Added.
- media/media-source/media-webm-opus-partial.html: fix title.
- media/media-source/media-webm-vorbis-partial.html: fix title.
- platform/mac/TestExpectations:
- 8:21 PM Changeset in webkit [279903] by
-
- 2 edits in trunk/Source/JavaScriptCore
Invalid machine code emitted by SpeculativeJIT::emitObjectOrOtherBranch
https://bugs.webkit.org/show_bug.cgi?id=227869
<rdar://problem/80457566>
Reviewed by Mark Lam.
SpeculativeJIT::emitObjectOrOtherBranch used to check the validity of the masqueradesAsUndefined watchpoint twice, and assumed that it could not change in between.
That is clearly incorrect as the main thread is running concurrently with it, and so the watchpoint could fire at any time.
The fix is trivial: just check the validity once, and store the result in a boolean.
If the watchpoint triggers later that is fine: we'll notice and cancel the compilation (see WatchpointCollectionPhase, Plan::isStillValid() and Plan::finalize()).
The change only protects us from rare and hard-to-reproduce crashes on debug builds caused by an ASSERT firing.
I did not add a testcase, as I can only reproduce the bug by adding an extra wait in the middle of emitObjectOrOtherBranch.
- dfg/DFGSpeculativeJIT64.cpp:
(JSC::DFG::SpeculativeJIT::emitObjectOrOtherBranch):
- 7:42 PM Changeset in webkit [279902] by
-
- 5 edits in trunk/Source/WebKit
[WK2] Push OS state dumping logic down from WebProcess to AuxiliaryProcess
https://bugs.webkit.org/show_bug.cgi?id=227916
Reviewed by Tim Horton.
Refactor state dumping registration code in preparation for supporting state dumping in the GPU process on Cocoa
platforms when triggering system diagnostics. The logic that currently lives in
WebProcess::registerWithStateDumper
is comprised of two parts: (1) code that callsos_state_add_handler
with
aos_state_data_t
provider, and (2) code that builds a dictionary containing diagnostic information specific
to the web process.
Since GPUProcess will require only the former, we hoist logic for (1) into the superclass (AuxiliaryProcess) so
that both GPUProcess and WebProcess can invoke it, and refactor (2) to be a virtual method that may be
overridden by subclasses to provide process-specific information.
- Shared/AuxiliaryProcess.h:
(WebKit::AuxiliaryProcess::additionalStateForDiagnosticReport const):
- Shared/Cocoa/AuxiliaryProcessCocoa.mm:
(WebKit::AuxiliaryProcess::registerWithStateDumper):
Additionally make this take the title string that will be used to label the state data, to avoid the need for a
second subclassing method to provide the title.
- WebProcess/WebProcess.h:
- WebProcess/cocoa/WebProcessCocoa.mm:
(WebKit::WebProcess::additionalStateForDiagnosticReport const):
Pull logic for collecting diagnostic information in the web process out into a separate helper method.
(WebKit::WebProcess::platformInitializeProcess):
(WebKit::WebProcess::registerWithStateDumper): Deleted.
- 6:19 PM WebKitGTK/2.32.x edited by
- (diff)
- 5:36 PM Changeset in webkit [279901] by
-
- 2 edits in trunk/LayoutTests
[iOS] imported/w3c/web-platform-tests/css/conditional/idlharness.html is a flaky failure.
https://bugs.webkit.org/show_bug.cgi?id=227931.
Unreviewed test gardening.
Patch by Eric Hutchison <Eric Hutchison> on 2021-07-13
- platform/ios-wk2/TestExpectations:
- 5:24 PM Changeset in webkit [279900] by
-
- 2 edits in trunk/LayoutTests
[Mac wk2] inspector/canvas/setShaderProgramDisabled.html is flaky failing.
https://bugs.webkit.org/show_bug.cgi?id=227922.
Unreviewed test gardening.
Patch by Eric Hutchison <Eric Hutchison> on 2021-07-13
- platform/mac-wk2/TestExpectations:
- 5:00 PM Changeset in webkit [279899] by
-
- 1 copy in tags/Safari-612.1.22.11.4
Tag Safari-612.1.22.11.4.
- 4:58 PM Changeset in webkit [279898] by
-
- 4 edits in trunk/Tools
[webkitscmpy] Handle failed
git log
process
https://bugs.webkit.org/show_bug.cgi?id=227709
<rdar://problem/80520002>
Rubber-stamped by Aakash Jain.
- Scripts/libraries/webkitscmpy/setup.py: Bump version.
- Scripts/libraries/webkitscmpy/webkitscmpy/init.py: Ditto.
- Scripts/libraries/webkitscmpy/webkitscmpy/local/git.py:
(Git.Cache.populate): Do not populate cache if
git log
fails.
- 4:56 PM Changeset in webkit [279897] by
-
- 8 edits in branches/safari-612.1.22.11-branch/Source
Versioning.
WebKit-7612.1.22.11.4
- 3:55 PM Changeset in webkit [279896] by
-
- 2 edits in trunk/Source/WebKit
REGRESSION(r279069): http/tests/websocket/tests/hybi/too-long-payload.html is a constant timeout when using NSURLSESSION_WEBSOCKET
https://bugs.webkit.org/show_bug.cgi?id=227923
<rdar://80343436>
Reviewed by Chris Dumez.
We need to add a large maximum frame size that was first introduced to WebKit in r91243
Covered by existing tests.
- NetworkProcess/cocoa/NetworkSessionCocoa.mm:
(WebKit::NetworkSessionCocoa::createWebSocketTask):
- 3:54 PM Changeset in webkit [279895] by
-
- 15 edits1 delete in trunk
Update and fix URL WPT tests
https://bugs.webkit.org/show_bug.cgi?id=227820
Reviewed by Chris Dumez.
LayoutTests/imported/w3c:
- web-platform-tests/url/failure-expected.txt:
- web-platform-tests/url/resources/a-element-origin.js:
(runURLTests):
- web-platform-tests/url/resources/a-element.js:
(runURLTests):
- web-platform-tests/url/resources/setters_tests.json:
- web-platform-tests/url/resources/urltestdata.json:
- web-platform-tests/url/url-constructor.any-expected.txt:
- web-platform-tests/url/url-constructor.any.js:
(bURL):
- web-platform-tests/url/url-constructor.any.worker-expected.txt:
- web-platform-tests/url/url-origin.any.js:
(bURL):
- web-platform-tests/url/url-setters-a-area.window-expected.txt:
- web-platform-tests/url/url-setters.any-expected.txt:
- web-platform-tests/url/url-setters.any.worker-expected.txt:
Source/WTF:
There was an edge case where if we set a path to an empty string, it would add a slash. No more.
- wtf/URL.cpp:
(WTF::URL::setPath):
- 3:40 PM Changeset in webkit [279894] by
-
- 10 edits6 copies26 moves99 adds3 deletes in trunk/LayoutTests
Resync webmessaging WPT tests from upstream
https://bugs.webkit.org/show_bug.cgi?id=227919
Reviewed by Geoffrey Garen.
Resync webmessaging WPT tests from upstream 42c571ee2ec9742f0c46ca.
- resources/resource-files.json:
- web-platform-tests/webmessaging/*: Updated.
- 2:54 PM Changeset in webkit [279893] by
-
- 5 edits in trunk/LayoutTests
Creating or modifying expectations for many test failing on Monterey
Unreviewed test gardening.
- 2:53 PM Changeset in webkit [279892] by
-
- 4 edits in trunk
Remove USE_64KB_PAGE_BLOCK
https://bugs.webkit.org/show_bug.cgi?id=227905
Patch by Michael Catanzaro <Michael Catanzaro> on 2021-07-13
Reviewed by Yusuke Suzuki.
.:
I added the USE_64KB_PAGE_BLOCK build option in bug #217989 for use by RHEL. But going
forward, I don't need it anymore, and can maintain it downstream where it is needed. (This
option might also be useful to SUSE, but they already don't use it, so won't miss it.)
I've seen users who don't understand the consequences of this option enabling it on x86_64,
even though there are serious negative consequences and zero benefits to using it. So let's
get rid of it.
- Source/cmake/WebKitFeatures.cmake:
Source/WTF:
- wtf/PageBlock.h:
- 2:08 PM Changeset in webkit [279891] by
-
- 2 edits in trunk/Source/WebKit
[GPUP] RemoteMediaPlayerProxy may not send the latest "naturalSize" to MediaPlayerPrivateRemote
https://bugs.webkit.org/show_bug.cgi?id=227894
Reviewed by Jer Noble.
When a
MediaPlayerPrivateMediaSourceAVFObjC
in the GPU process changes itsnaturalSize
,
the new value will be sent to the WebContent process in the IPC message
MediaPlayerPrivateRemote::SizeChanged
. However,RemoteMediaPlayerProxy
won't update
m_cachedState.naturalSize
. So the nextMediaPlayerPrivateRemote::UpdateCachedState
message will use the oldnaturalSize
and the WebContent process will drop the correct value
after receiving the message.
- GPUProcess/media/RemoteMediaPlayerProxy.cpp:
(WebKit::RemoteMediaPlayerProxy::mediaPlayerSizeChanged):
- 1:56 PM Changeset in webkit [279890] by
-
- 2 edits in trunk/Source/WebKit
Unreviewed, reverting r279647.
<rdar://80519938>
Introduced a crash
Reverted changeset:
"XPC services should release their os transaction when given a
SIGTERM signal"
https://bugs.webkit.org/show_bug.cgi?id=227747
https://commits.webkit.org/r279647
- 1:38 PM Changeset in webkit [279889] by
-
- 13 edits in trunk/Source/JavaScriptCore
Add a new Air::Arg kind ZeroReg to let AIR recognise the new instructions/forms accepting zero register in ARM64
https://bugs.webkit.org/show_bug.cgi?id=227510
Reviewed by Saam Barati.
B3 is designed to be portable to many kinds of CPUs. However, to effectively
compile code to different CPUs, the compiler must eventually make explicit
instruction set details. Then, Air is introduced, and it is designed to target
individual CPU architectures and generate instructions specific to those CPUs.
Previously, Air don't recognize the zero register. This problem has been pointed
out in #174821, which was trying to introduce the new opcodes to handle the zero
register.
To solve this problem in a modular reasoning approach, a new Air operand ZeroReg
should be introduced. Its goal is to closely match the CPU instructions
accepting the zero register in ARM64. Another reason is that the new overloads
of the instructions taking the zero register can benefit instruction selection
with this implementation.
Here, the ZeroReg is added as a new kind for Air::Arg, which acts as a "high
level" operand to be emitted with the associative opcodes. In ARM64, the ZeroReg
would be emitted as a zero register.
- assembler/MacroAssemblerARM64.h:
(JSC::MacroAssemblerARM64::storeZero64): Deleted.
(JSC::MacroAssemblerARM64::storeZero32): Deleted.
(JSC::MacroAssemblerARM64::storeZero16): Deleted.
- assembler/MacroAssemblerX86Common.h:
(JSC::MacroAssemblerX86Common::storeZero32): Deleted.
(JSC::MacroAssemblerX86Common::storeZero16): Deleted.
- assembler/MacroAssemblerX86_64.h:
(JSC::MacroAssemblerX86_64::storeZero64): Deleted.
- b3/B3LowerToAir.cpp:
- b3/air/AirArg.cpp:
(JSC::B3::Air::Arg::jsHash const):
(JSC::B3::Air::Arg::dump const):
(WTF::printInternal):
- b3/air/AirArg.h:
(JSC::B3::Air::Arg::zeroReg):
(JSC::B3::Air::Arg::isZeroReg const):
(JSC::B3::Air::Arg::isGP const):
(JSC::B3::Air::Arg::isFP const):
(JSC::B3::Air::Arg::isValidForm const):
(JSC::B3::Air::Arg::asZeroReg const):
- b3/air/AirLowerStackArgs.cpp:
(JSC::B3::Air::lowerStackArgs):
- b3/air/AirOpcode.opcodes:
- b3/air/opcode_generator.rb:
- b3/testb3.h:
- b3/testb3_1.cpp:
(run):
- b3/testb3_3.cpp:
(testStoreZeroReg):
- 1:13 PM Changeset in webkit [279888] by
-
- 1 copy in tags/Safari-612.1.15.4.6
Tag Safari-612.1.15.4.6.
- 1:13 PM Changeset in webkit [279887] by
-
- 1 edit3 deletes in trunk/LayoutTests
[GLIB] Test gardening, remove platform specific expected files
https://bugs.webkit.org/show_bug.cgi?id=227908
These tests now pass with the generic expected files.
Unreviewed test gardening.
Patch by Arcady Goldmints-Orlov <Arcady Goldmints-Orlov> on 2021-07-13
- platform/glib/crypto/subtle/ec-generate-key-malformed-parameters-expected.txt: Removed.
- platform/glib/imported/w3c/web-platform-tests/content-security-policy/frame-ancestors/frame-ancestors-nested-same-in-same-self-allow-expected.txt: Removed.
- platform/wpe/crypto/subtle/ecdh-import-pkcs8-key-p521-validate-ecprivatekey-parameters-publickey-expected.txt: Removed.
- platform/wpe/crypto/subtle/ecdsa-import-pkcs8-key-p521-validate-ecprivatekey-parameters-publickey-expected.txt: Removed.
- 12:43 PM Changeset in webkit [279886] by
-
- 4 edits in trunk
4K Referer should have tailing /
https://bugs.webkit.org/show_bug.cgi?id=227795
Patch by Alex Christensen <achristensen@webkit.org> on 2021-07-13
Reviewed by Chris Dumez.
Source/WebCore:
This matches the behavior of other browsers.
Covered by existing tests and web platform tests we haven't imported yet.
- platform/network/ResourceRequestBase.cpp:
(WebCore::ResourceRequestBase::setHTTPReferrer):
Tools:
- TestWebKitAPI/Tests/WebKitCocoa/NetworkProcess.mm:
(TEST):
- 12:38 PM Changeset in webkit [279885] by
-
- 4 edits in trunk
[CG] REGRESSION(r278863): The destination rectangle is truncated when the sub-image is used
https://bugs.webkit.org/show_bug.cgi?id=227614
<rdar://79840643>
Reviewed by Simon Fraser.
Source/WebCore:
This patch gets the calculation of the destRect in the case of the sub-
image as it was before r278863.
The size of the destRect has to be equal to the backend size of the
ImageBuffer in logical coordinates.
- platform/graphics/cg/GraphicsContextCG.cpp:
(WebCore::GraphicsContextCG::drawNativeImage):
Tools:
Add an API test to test drawing an ImageBuffer into another and both
have the logicalSize scaled such that they have pixels.
- TestWebKitAPI/Tests/WebCore/ImageBufferTests.cpp:
(TestWebKitAPI::TEST):
- 12:35 PM Changeset in webkit [279884] by
-
- 2 edits in trunk/LayoutTests
[ Mac wk2 ] imported/w3c/web-platform-tests/webrtc/RTCDtlsTransport-state.html is flaky failing.
https://bugs.webkit.org/show_bug.cgi?id=227910.
Unreviewed test gardening.
Patch by Eric Hutchison <Eric Hutchison> on 2021-07-13
- platform/mac-wk2/TestExpectations:
- 12:28 PM Changeset in webkit [279883] by
-
- 10 edits in trunk/Source
rAF driven WebGL submits excessive amount of GPU work when frames are slow
https://bugs.webkit.org/show_bug.cgi?id=227059
Reviewed by Dean Jackson.
Advertise GL_ARB_sync for the Metal backend.
Since GL_ARB_sync is core in OpenGL ES 3.0 and the Metal backend advertises OpenGL ES 3.0,
the API must be working already.
Limit in-flight WebGL frames to three frames. Do not continue preparation for display
until the commands for the oldest frame have been executed by the GPU.
This limits the impact slow frames have, especially in the
case where the compositor skip frames and WebKit would issue a new slow frame
on top of the skipped frame.
Source/ThirdParty/ANGLE:
An additional change ensures that Nvidia configs, which do not support MTLEvents
to a level of conformance required (See http://crbug.com/1136673), continue to run. The more powerful eGPUs will not experience throttling to the same level as integrated GPUS.
- src/libANGLE/renderer/metal/DisplayMtl.mm:
(rx::DisplayMtl::initializeExtensions const):
Source/WebCore:
An additional change ensures that Nvidia configs, which do not support MTLEvents
to a level of conformance required (See http://crbug.com/1136673), continue to run. The more powerful eGPUs will not experience throttling to the same level as integrated GPUS.
- Headers.cmake:
- WebCore.xcodeproj/project.pbxproj:
- platform/graphics/GraphicsContextGLAttributes.h:
- platform/graphics/angle/GraphicsContextGLANGLE.cpp:
(WebCore::GraphicsContextGLOpenGL::waitAndUpdateOldestFrame):
- platform/graphics/angle/GraphicsContextGLANGLEUtilities.h:
(WebCore::ScopedGLFence::ScopedGLFence):
(WebCore::ScopedGLFence::~ScopedGLFence):
(WebCore::ScopedGLFence::operator=):
(WebCore::ScopedGLFence::reset):
(WebCore::ScopedGLFence::abandon):
(WebCore::ScopedGLFence::fenceSync):
(WebCore::ScopedGLFence::operator GLsync const):
(WebCore::ScopedGLFence::operator bool const):
- platform/graphics/cocoa/GraphicsContextGLOpenGLCocoa.mm:
(WebCore::InitializeEGLDisplay):
(WebCore::GraphicsContextGLOpenGL::GraphicsContextGLOpenGL):
(WebCore::GraphicsContextGLOpenGL::~GraphicsContextGLOpenGL):
(WebCore::GraphicsContextGLOpenGL::prepareForDisplay):
- platform/graphics/opengl/GraphicsContextGLOpenGL.h:
- 12:20 PM Changeset in webkit [279882] by
-
- 2 edits in trunk/LayoutTests
[iOS] http/tests/appcache/fail-on-update.html is a flaky timeout.
https://bugs.webkit.org/show_bug.cgi?id=227891
Unreviewed test gardening.
Patch by Ayumi Kojima <Ayumi Kojima> on 2021-07-13
- platform/ios-wk2/TestExpectations:
- 12:18 PM Changeset in webkit [279881] by
-
- 10 edits in trunk
Revoking Blob URL after calling XMLHttpRequest::open() causes the XHR to fail
https://bugs.webkit.org/show_bug.cgi?id=227821
Reviewed by Alex Christensen.
LayoutTests/imported/w3c:
Rebaseline WPT tests now that more checks are passing.
- web-platform-tests/FileAPI/url/url-with-xhr.any-expected.txt:
- web-platform-tests/FileAPI/url/url-with-xhr.any.worker-expected.txt:
Source/WebCore:
Revoking Blob URL after calling XMLHttpRequest::open() causes the XHR to fail. This doesn't match the behavior of
other browsers and is causing WebKit to fail one of the subtests on:
XMLHttpRequest::open() now extends the lifetime of the Blob URL as necessary in order to complete the load.
No new tests, rebaselined existing tests.
- fileapi/BlobURL.cpp:
(WebCore::URLWithBlobURLLifetimeExtension::URLWithBlobURLLifetimeExtension):
(WebCore::URLWithBlobURLLifetimeExtension::~URLWithBlobURLLifetimeExtension):
- fileapi/BlobURL.h:
(WebCore::BlobURLLifeTimeExtender::url const):
- loader/PolicyChecker.cpp:
(WebCore::FrameLoader::PolicyChecker::extendBlobURLLifetimeIfNecessary const):
(WebCore::FrameLoader::PolicyChecker::checkNavigationPolicy):
- loader/PolicyChecker.h:
- xml/XMLHttpRequest.cpp:
(WebCore::XMLHttpRequest::XMLHttpRequest):
(WebCore::XMLHttpRequest::setResponseType):
(WebCore::XMLHttpRequest::open):
(WebCore::XMLHttpRequest::prepareToSend):
(WebCore::XMLHttpRequest::send):
(WebCore::XMLHttpRequest::createRequest):
- xml/XMLHttpRequest.h:
- 11:50 AM Changeset in webkit [279880] by
-
- 8 edits in branches/safari-612.1.15.4-branch/Source
Versioning.
WebKit-7612.1.15.4.6
- 10:58 AM Changeset in webkit [279879] by
-
- 3 edits in trunk/Source/WebKit
Unreviewed iOS/tvOS/watchOS build fix.
- UIProcess/API/APIPageConfiguration.cpp:
(API::PageConfiguration::copy const):
- UIProcess/API/APIPageConfiguration.h:
- 10:43 AM Changeset in webkit [279878] by
-
- 2 edits in trunk/LayoutTests
REGRESSION: [wk2 Debug] accessibility/table-title.html is a flaky timeout
https://bugs.webkit.org/show_bug.cgi?id=227504
Unreviewed test gardening.
- platform/mac-wk2/TestExpectations:
- 10:10 AM Changeset in webkit [279877] by
-
- 2 edits in trunk/Source/WebKit
Regression(r279601) ProcessAssertion may get destroyed on a background thread
https://bugs.webkit.org/show_bug.cgi?id=227875
<rdar://76972252>
Reviewed by Geoffrey Garen.
r279601 added an internal WorkQueue to ProcessAssertion, so that we could acquire the RunningBoard assertion
asynchronously on the background queue. When dispatching to the background queue, we capture |protectedThis|,
which means that ProcessAssertion may now get destroyed on the background queue. To address the isuse, we
now make sure to dispatch |protectedThis| back to the main thread in acquireAsync().
- UIProcess/ios/ProcessAssertionIOS.mm:
(WebKit::ProcessAssertion::acquireAsync):
- 10:05 AM Changeset in webkit [279876] by
-
- 3 edits in trunk/Tools
[results.webkit.org] linkify urls in commit messages
https://bugs.webkit.org/show_bug.cgi?id=227549
<rdar://problem/79988762>
Patch by Kevin Neal <kevin_neal@apple.com> on 2021-07-13
Reviewed by Jonathan Bedard.
- Scripts/libraries/resultsdbpy/resultsdbpy/view/static/js/commit.js:
(thead.tbody.rows.map.):
(thead.tbody.rows.map):
(CommitTable):
- Scripts/libraries/resultsdbpy/resultsdbpy/view/static/js/common.js:
- 9:46 AM Changeset in webkit [279875] by
-
- 2 edits in trunk/Tools
[build.webkit.org] Upload layout-tests results immediately after running layout-tests
https://bugs.webkit.org/show_bug.cgi?id=227889
Reviewed by Carlos Alberto Lopez Perez.
- CISupport/build-webkit-org/factories.py:
- 9:40 AM Changeset in webkit [279874] by
-
- 11 edits11 copies13 moves3 adds in trunk
Allow layout tests to specify app initiated loads or not
https://bugs.webkit.org/show_bug.cgi?id=227825
<rdar://problem/80355582>
Reviewed by Brent Fulgham.
Source/WebKit:
Tests: http/tests/app-privacy-report/app-attribution-load-url.html
http/tests/app-privacy-report/app-attribution-ping-load.html
http/tests/app-privacy-report/app-attribution-post-request.html
http/tests/app-privacy-report/app-attribution-preflight-async.html
http/tests/app-privacy-report/app-attribution-preflight-sync.html
http/tests/app-privacy-report/app-attribution-speculative-revalidation.html
http/tests/app-privacy-report/user-attribution-load-url.html
http/tests/app-privacy-report/user-attribution-ping-load.html
http/tests/app-privacy-report/user-attribution-post-request.html
http/tests/app-privacy-report/user-attribution-preflight-async.html
http/tests/app-privacy-report/user-attribution-preflight-sync.html
http/tests/app-privacy-report/user-attribution-speculative-revalidation.html
Add a parameter to the WebView configuration that allows a test to
override the default NSURLRequest attribution value. We don't need
this to be dynamic per-test, so we can store it in the configuration.
- UIProcess/API/APIPageConfiguration.cpp:
(API::PageConfiguration::copy const):
- UIProcess/API/APIPageConfiguration.h:
(API::PageConfiguration::appInitiatedOverrideValueForTesting const):
(API::PageConfiguration::setAppInitiatedOverrideValueForTesting):
- UIProcess/API/Cocoa/WKWebViewConfiguration.mm:
(toWKAttributionOverrideTesting):
(toAttributionOverrideTesting):
(-[WKWebViewConfiguration _setAppInitiatedOverrideValueForTesting:]):
(-[WKWebViewConfiguration _appInitiatedOverrideValueForTesting]):
- UIProcess/API/Cocoa/WKWebViewConfigurationPrivate.h:
- UIProcess/Cocoa/WebPageProxyCocoa.mm:
(WebKit::WebPageProxy::setLastNavigationWasAppInitiated):
Tools:
Add a test option that specifies whether the test should mark the
main page navigation as app-initiated or not.
- WebKitTestRunner/TestOptions.cpp:
(WTR::TestOptions::defaults):
(WTR::TestOptions::keyTypeMapping):
- WebKitTestRunner/TestOptions.h:
(WTR::TestOptions::isAppInitiated const):
- WebKitTestRunner/cocoa/TestControllerCocoa.mm:
(WTR::TestController::platformCreateWebView):
LayoutTests:
Added new tests to cover the user initiated case.
- http/tests/app-privacy-report/app-attribution-load-url-expected.txt: Renamed from LayoutTests/http/tests/app-privacy-report/attribution-load-url-expected.txt.
- http/tests/app-privacy-report/app-attribution-load-url.html: Copied from LayoutTests/http/tests/app-privacy-report/attribution-load-url.html.
- http/tests/app-privacy-report/app-attribution-ping-load-expected.txt: Copied from LayoutTests/http/tests/app-privacy-report/attribution-ping-load-expected.txt.
- http/tests/app-privacy-report/app-attribution-ping-load.html: Copied from LayoutTests/http/tests/app-privacy-report/attribution-ping-load.html.
- http/tests/app-privacy-report/app-attribution-post-request-expected.txt: Renamed from LayoutTests/http/tests/app-privacy-report/attribution-post-request-expected.txt.
- http/tests/app-privacy-report/app-attribution-post-request.html: Copied from LayoutTests/http/tests/app-privacy-report/attribution-post-request.html.
- http/tests/app-privacy-report/app-attribution-preflight-async-expected.txt: Copied from LayoutTests/http/tests/app-privacy-report/attribution-preflight-async-expected.txt.
- http/tests/app-privacy-report/app-attribution-preflight-async.html: Copied from LayoutTests/http/tests/app-privacy-report/attribution-preflight-async.html.
- http/tests/app-privacy-report/app-attribution-preflight-sync-expected.txt: Copied from LayoutTests/http/tests/app-privacy-report/attribution-preflight-sync-expected.txt.
- http/tests/app-privacy-report/app-attribution-preflight-sync.html: Copied from LayoutTests/http/tests/app-privacy-report/attribution-preflight-sync.html.
- http/tests/app-privacy-report/app-attribution-speculative-revalidation-expected.txt: Copied from LayoutTests/http/tests/app-privacy-report/attribution-speculative-revalidation-expected.txt.
- http/tests/app-privacy-report/app-attribution-speculative-revalidation.html: Copied from LayoutTests/http/tests/app-privacy-report/attribution-speculative-revalidation.html.
- http/tests/app-privacy-report/resources/app-initiated-post.py: Copied from LayoutTests/http/tests/app-privacy-report/resources/post.py.
- http/tests/app-privacy-report/resources/user-initiated-post.py: Renamed from LayoutTests/http/tests/app-privacy-report/resources/post.py.
- http/tests/app-privacy-report/user-attribution-load-url-expected.txt: Added.
- http/tests/app-privacy-report/user-attribution-load-url.html: Renamed from LayoutTests/http/tests/app-privacy-report/attribution-load-url.html.
- http/tests/app-privacy-report/user-attribution-ping-load-expected.txt: Renamed from LayoutTests/http/tests/app-privacy-report/attribution-ping-load-expected.txt.
- http/tests/app-privacy-report/user-attribution-ping-load.html: Renamed from LayoutTests/http/tests/app-privacy-report/attribution-ping-load.html.
- http/tests/app-privacy-report/user-attribution-post-request-expected.txt: Added.
- http/tests/app-privacy-report/user-attribution-post-request.html: Renamed from LayoutTests/http/tests/app-privacy-report/attribution-post-request.html.
- http/tests/app-privacy-report/user-attribution-preflight-async-expected.txt: Renamed from LayoutTests/http/tests/app-privacy-report/attribution-preflight-async-expected.txt.
- http/tests/app-privacy-report/user-attribution-preflight-async.html: Renamed from LayoutTests/http/tests/app-privacy-report/attribution-preflight-async.html.
- http/tests/app-privacy-report/user-attribution-preflight-sync-expected.txt: Renamed from LayoutTests/http/tests/app-privacy-report/attribution-preflight-sync-expected.txt.
- http/tests/app-privacy-report/user-attribution-preflight-sync.html: Renamed from LayoutTests/http/tests/app-privacy-report/attribution-preflight-sync.html.
- http/tests/app-privacy-report/user-attribution-speculative-revalidation-expected.txt: Renamed from LayoutTests/http/tests/app-privacy-report/attribution-speculative-revalidation-expected.txt.
- http/tests/app-privacy-report/user-attribution-speculative-revalidation.html: Renamed from LayoutTests/http/tests/app-privacy-report/attribution-speculative-revalidation.html.
- http/tests/navigation/resources/check-ping-user-initiated-data.py: Added.
- 9:33 AM Changeset in webkit [279873] by
-
- 2 edits in trunk/Source/WebCore
[GStreamer] Allow runtime opt-out of GL rendering
https://bugs.webkit.org/show_bug.cgi?id=227873
Patch by Philippe Normand <pnormand@igalia.com> on 2021-07-13
Reviewed by Xabier Rodriguez-Calvar.
In some cases GL rendering is not really useful, such as on machines without GPU. In those
cases currently Mesa's llvmpipe is used, introducing CPU and RAM usage increase compared to
the non-gl rendering path. For these cases the user can set a new env var,
WEBKIT_GST_DISABLE_GL_SINK=1, allowing the player to use the Cairo sink.
- platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
(WebCore::MediaPlayerPrivateGStreamer::createVideoSinkGL):
- 7:19 AM Changeset in webkit [279872] by
-
- 33 edits2 adds in trunk
[GTK][WPE] Expose support for client certificate auth
https://bugs.webkit.org/show_bug.cgi?id=200805
Reviewed by Michael Catanzaro.
.:
Bump libsoup3 required version.
- Source/cmake/OptionsGTK.cmake:
- Source/cmake/OptionsWPE.cmake:
Source/WebCore:
- platform/Soup.cmake:
- platform/SourcesSoup.txt:
- platform/network/Credential.h:
- platform/network/ProtectionSpaceBase.cpp:
(WebCore::ProtectionSpaceBase::isPasswordBased const):
- platform/network/ProtectionSpaceBase.h:
- platform/network/soup/AuthenticationChallenge.h:
- platform/network/soup/AuthenticationChallengeSoup.cpp:
(WebCore::protectionSpaceForClientCertificate):
(WebCore::AuthenticationChallenge::AuthenticationChallenge):
(WebCore::protectionSpaceForClientCertificatePassword):
(WebCore::AuthenticationChallenge::platformCompare):
- platform/network/soup/CertificateInfoSoup.cpp:
(WebCore::CertificateInfo::isolatedCopy const):
- platform/network/soup/CredentialSoup.cpp: Added.
(WebCore::Credential::Credential):
(WebCore::m_certificate):
(WebCore::Credential::isEmpty const):
(WebCore::Credential::platformCompare):
- platform/network/soup/CredentialSoup.h: Added.
(WebCore::Credential::Credential):
(WebCore::Credential::encodingRequiresPlatformData const):
(WebCore::Credential::certificate const):
- platform/network/soup/NetworkStorageSessionSoup.cpp:
(WebCore::authTypeFromProtectionSpaceAuthenticationScheme):
Source/WebKit:
Add new API to handle certificate and pin certificate authentication requests.
- NetworkProcess/soup/NetworkDataTaskSoup.cpp:
(WebKit::NetworkDataTaskSoup::createRequest):
(WebKit::NetworkDataTaskSoup::completeAuthentication):
(WebKit::NetworkDataTaskSoup::cancelAuthentication):
(WebKit::NetworkDataTaskSoup::authenticate):
(WebKit::NetworkDataTaskSoup::continueAuthenticate):
(WebKit::NetworkDataTaskSoup::requestCertificateCallback):
(WebKit::NetworkDataTaskSoup::requestCertificatePasswordCallback):
- NetworkProcess/soup/NetworkDataTaskSoup.h:
- Shared/WebCoreArgumentCoders.cpp:
(IPC::ArgumentCoder<AuthenticationChallenge>::encode):
(IPC::ArgumentCoder<AuthenticationChallenge>::decode):
- Shared/glib/ArgumentCodersGLib.cpp:
(IPC::ArgumentCoder<GRefPtr<GTlsCertificate>>::encode):
(IPC::ArgumentCoder<GRefPtr<GTlsCertificate>>::decode):
- Shared/soup/WebCoreArgumentCodersSoup.cpp:
(IPC::ArgumentCoder<Credential>::encodePlatformData):
(IPC::ArgumentCoder<Credential>::decodePlatformData):
- UIProcess/API/glib/WebKitAuthenticationRequest.cpp:
(webkit_authentication_request_get_certificate_pin_flags):
- UIProcess/API/glib/WebKitCredential.cpp:
(webkit_credential_new_for_certificate_pin):
(webkit_credential_new_for_certificate):
(webkit_credential_get_certificate):
- UIProcess/API/gtk/WebKitAuthenticationRequest.h:
- UIProcess/API/gtk/WebKitCredential.h:
- UIProcess/API/gtk/WebKitWebViewGtk.cpp:
(webkitWebViewAuthenticate):
- UIProcess/API/gtk/docs/webkit2gtk-4.0-sections.txt:
- UIProcess/API/wpe/WebKitAuthenticationRequest.h:
- UIProcess/API/wpe/WebKitCredential.h:
- UIProcess/API/wpe/docs/wpe-1.0-sections.txt:
Tools:
Add a simple implementation in MiniBrowser using a file chooser to ask for the certificate from a file and unit
tests for the client certificate request. Unfortunately we can't easily test pin certificates.
- MiniBrowser/gtk/BrowserTab.c:
(certificateDialogResponse):
(webViewAuthenticate):
(browserTabConstructed):
- TestWebKitAPI/Tests/WebKitGLib/TestSSL.cpp:
(ClientSideCertificateTest::acceptCertificateCallback):
(ClientSideCertificateTest::requestStartedCallback):
(ClientSideCertificateTest::authenticateCallback):
(ClientSideCertificateTest::ClientSideCertificateTest):
(ClientSideCertificateTest::~ClientSideCertificateTest):
(ClientSideCertificateTest::authenticate):
(ClientSideCertificateTest::acceptCertificate):
(ClientSideCertificateTest::waitForAuthenticationRequest):
(testClientSideCertificate):
(beforeAll):
- TestWebKitAPI/Tests/WebKitGLib/WebExtensionTest.cpp:
- TestWebKitAPI/glib/WebKitGLib/WebKitTestServer.h:
(WebKitTestServer::soupServer const):
- 5:54 AM Changeset in webkit [279871] by
-
- 1 edit3 deletes in trunk/LayoutTests
Unreviewed, reverting r279705.
https://bugs.webkit.org/show_bug.cgi?id=227903
Added a broken test
Reverted changeset:
"Only first set-cookie HTTP header in websocket http response
is accepted"
https://bugs.webkit.org/show_bug.cgi?id=227739
https://commits.webkit.org/r279705
- 4:44 AM Changeset in webkit [279870] by
-
- 5 edits in trunk/LayoutTests
[GLIB] Update baselines after r279673
https://bugs.webkit.org/show_bug.cgi?id=227886
Unreviewed test gardening.
Patch by Arcady Goldmints-Orlov <Arcady Goldmints-Orlov> on 2021-07-13
- platform/gtk/fast/multicol/vertical-lr/float-multicol-expected.txt:
- platform/gtk/fast/multicol/vertical-lr/nested-columns-expected.txt:
- platform/wpe/fast/multicol/vertical-lr/float-multicol-expected.txt:
- platform/wpe/fast/multicol/vertical-lr/nested-columns-expected.txt:
- 1:17 AM Changeset in webkit [279869] by
-
- 5 edits in trunk
RenderLayerScrollableArea::updateScrollPosition assumes that it can scroll to the targeted scroll position
https://bugs.webkit.org/show_bug.cgi?id=227803
Patch by Martin Robinson <mrobinson@igalia.com> on 2021-07-13
Reviewed by Simon Fraser.
LayoutTests/imported/w3c:
- web-platform-tests/css/css-scroll-snap/nested-scrollIntoView-snaps-expected.txt: Update test result to reflect newly passing test.
Source/WebCore:
No new tests. This is covered by an existing WPT test:
- web-platform-tests/css/css-scroll-snap/nested-scrollIntoView-snaps.html
- rendering/RenderLayerScrollableArea.cpp:
(WebCore::RenderLayerScrollableArea::scrollToOffset): Modified this method to return the snapped
scroll offset.
(WebCore::RenderLayerScrollableArea::updateScrollPosition): Instead of using the original target offset,
use the return value from scrollToOffset to adjust the output rectangle.
- rendering/RenderLayerScrollableArea.h: Update the method definition.
- 12:52 AM Changeset in webkit [279868] by
-
- 4 edits3 adds in trunk
PUA characters have the wrong advance in the fast text codepath
https://bugs.webkit.org/show_bug.cgi?id=227896
<rdar://problem/80037103>
Reviewed by Tim Horton.
Source/WebCore:
There were 2 problems:
- We were passing a UChar32 to this function:
static bool treatAsSpace(UChar c) { return c == ' ' ... }
This means that passing in U+10020 erroneously returns true
- Because of https://bugs.webkit.org/show_bug.cgi?id=221356,
if the prevous character is in SMP, our logic to determine
the previous advance would erroneously return 0.
Test: fast/text/pua-charactersTreatedAsSpace.html
- platform/graphics/FontCascade.h:
(WebCore::FontCascade::treatAsSpace):
(WebCore::FontCascade::treatAsZeroWidthSpace):
(WebCore::FontCascade::treatAsZeroWidthSpaceInComplexScript):
- platform/graphics/WidthIterator.cpp:
(WebCore::WidthIterator::advanceInternal):
LayoutTests:
- fast/text/pua-charactersTreatedAsSpace-expected.html: Added.
- fast/text/pua-charactersTreatedAsSpace.html: Added.
- fast/text/resources/Ahem-10000A.ttf: Added.
- 12:39 AM Changeset in webkit [279867] by
-
- 34 edits218 copies356 adds in trunk
New malloc algorithm
https://bugs.webkit.org/show_bug.cgi?id=226404
Reviewed by Yusuke Suzuki.
Source/bmalloc:
This change replaces bmalloc with libpas, by importing libpas and making it expose API that
looks like the current bmalloc API. Libpas replaces everything bmalloc gave us: the main
bmalloc API, the Gigacage API, and the IsoHeap API. Libpas also replaces the JSC
ExecutableAllocator (more on that in the JSC ChangeLog). I've been working on libpas for about
three years, and you'll be able to see the age of some of it in the copyrights.
Libpas is a totally new malloc implementation that focuses on allowing for the creation of lots
of isolated heaps, and making it possible for those heaps to provide certain type guarantees.
I'm not going to summarize everything that it does in this changelog; I'll mostly focus on
things that are interesting to its use in WebKit.
Libpas tries hard to make having lots of heaps cheap both by having a good isolated heap
implementation and by offsetting the cost by having a bunch of space saving improvements for all
kinds of heaps. Libpas heaps can be configured to be either very compact or very fast. In
WebKit, we configure libpas to be as fast as possible, except for the jit_heap, where we
configure it to be as compact as possible. The fast configuration relies on the segregated heap
for most allocations, while the compact configuration relies on bitfit for most configurations.
It's possible to use both in combination with any size cut-off before you switch to bitfit.
Libpas's segregated heap is competitive to bmalloc in speed. This patch is a speed-up on AS, and
it's only enabled on AS for now. Libpas is still a regression relative to bmalloc on some
devices that I have measured, so it should probably stay enabled on AS only for now. This patch
ought to be a 1% speed-up on Speedometer and MotionMark and be neutral elsewhere.
When it comes to memory usage, libpas's segregated heap is a 19% improvement on membuster and a
11% improvement on RAMification on AS, with most other devices exhibiting similar wins if you
enable libpas on them.
Here's the basic design:
- Libpas makes extreme use of generic programming in C, sometimes using macros, but mostly using a technique where ALWAYS_INLINE functions are passed structs with function pointers to other ALWAYS_INLINE functions, sometimes many layers deep. I've perfected this so that I can cause outlining to happen wherever I want without losing the specialization, and I can cause anything I want to become generic (i.e. it gets a pointer to that struct with function pointers and it really has to call them).
This allows libpas to have many copies of the same algorithm, but configured differently.
That's why, for example, I was able to make libpas's bitfit obey ExecutableAllocator rules
like that you cannot put any metadata inside the memory you're managing. That's also how
libpas "scales" it's algorithm: there are the small configurations, and then with a different
struct, we get the medium configurations (larger overall page size, ability to decommit each
physical page within the logical page), and the marge configurations (optimized for even
bigger object sizes).
- Allocation uses thread-local caches that hold on to up to a page of memory. This is similar overall to bmalloc, but rather different in the details. When allocating from that memory (see bmalloc_heap_inlines.h, then pas_try_allocate_intrinsic_primitive.h, then pas_try_allocate_common.h, then pas_local_allocator_inlines.h), libpas uses either bump pointer or bit search. The bit search is optimized to death. Libpas does lots of clever things with bits: for example, each bit represents just a "minalign" worth of memory (so like 16 bytes), and bits are set at the beginnings of objects. Lots of interesting bit manipulation happens on the slow path to quickly turn this into a bitvector where the bits are set at free object beginnings, which is what the allocator consumes (see for example pas_local_allocator_scan_bits_to_set_up_free_bits() in pas_local_allocator_inlines.h). This saves libpas from having to use multiplications on the allocation and deallocation paths.
Allocation fast paths are super fast and require no locks. Slow paths use fine-grained
locking so the likelihood of contention is very low. Each page has a lock, and they do crazy
things with their locks: pages will all share the same lock so long as that's efficient, but
will pick up different locks if that causes contention, and then they will share the same
lock again if contention goes away.
Allocation caches can be reclaimed by the scavenger. This is done using an
ask-nicely-then-more-firmly kind of mechanism: first the scavenger will just ask allocators
that haven't been used in a while to return their memory, and the thread will service this
request on the next allocation slow path for any thread-local allocator. But if the thread
doesn't do this, then the scavenger will eventually suspend the thread and take its caches.
- Deallocation uses a log. The log flush amortizes lock acquisition and memory access to libpas metadata. This is quite a bit like bmalloc. The differences are: libpas may acquire multiple locks during deallocation log flush, but because pages try to share locks, that usually doesn't happen. Usually, all pages that were most recently used by some CPU will share the same lock. The other difference is that the libpas scavenger can flush deallocation logs, and does so on every tick.
The design described so far is for the libpas segregated heap, which is the most
performance-optimized heap, as well as the heap most suited for isoheaps. Segregated heap has
many isoheap optimizations, like allowing multiple heaps to share different slabs of the same
page. But libpas also has two other heap kinds:
- Bitfit. The bitfit heap uses a bit-per-minalign but uses it to implement first-fit. Allocation searches for a span of set "free" bits and then clears them. Deallocation uses a second bitvector, the "object ends" bits, to find the end of the object and then sets the whole range of free bits. This allocator uses per-page locking and a clever short-circuiting algorithm to find the first page that will have a contiguous slab of free memory big enough for the size you're trying to allocate. This is much slower than the segregated heap, but also much faster than the other option, which is the libpas large allocator. Bitfit is the most space-efficient heap in libpas, except for super large objects. The space efficiency comes from the fact that it's first-fit. It should be noted that segregated is also first-fit, but within size classes, so segregated gets more external fragmentation than bitfit.
This patch causes us to use bitfit for the mini mode. We also use bitfit for marge allocations
(so bigger than segregated medium but too small for large) and for jit_heap.
I think the most interesting file for bitfit is pas_bitfit_page_inlines.h.
- Large. This is a first-fit allocator implemented using cartesian trees. Something special about it is that it can do type-safe array allocations with complex combinations of memalign. For example, you can tell it to create a heap that allocates arrays of a type whose size is 42, and then it will guarantee you that no matter how big or how small of an array you allocate, no element of that array will ever be an "offset overlap" with a previously freed element. So, it won't create any type confusions. It will guarantee this even if you did memalign with any alignment (I needed to use extended GCD for this -- see pas_extended_gcd.c and pas_coalign.c). The large algorithm is implemented generically (pas_generic_large_free_heap.h), so it can use either cartesian trees (pas_fast_large_free_heap.c) or just an array (pas_simple_large_free_heap.c). The large heap is used internally in libpas a lot, for example for the bootstrap heap, which is how all of libpas gets its memory. One particularly neat thing about this is that the bootstrap heap allocates a freelist array inside of the memory it is managing using a kind of wild metacircular design.
One of the main space saving features is that libpas has a fine-grained-locked LRU decommit
policy using a 10Hz scavenger thread. This scavenger incurs almost no perf cost but is able
to return a ton of memory. At any tick, it will decommit any totally free pages that haven't
been used in the last 300ms. This includes pages used for internal libpas metadata, like the
thread-local caches. Decommitting pages holds locks that other threads are unlikely to want to
grab (because of policies that actively avoid it), so decommit happens with minimal interference
to the running program.
Libpas is written in C and strongly assumes that the C compiler is modern enough to fixpoint
inlining of always-inline functions with the right other optimizations. Llvm does this, which
enables a wonderful style of generic programming. The fact that the same code can be used
for generic, specialized-and-inline, and specialized-but-out-of-line functions is great. I use
WebKit C++ style (so foo* p rather than foo *p) but with lower_case_identifiers for anything
that isn't a macro. Anything that isn't static is prefixed pas_, unless it's some specific
heap configuration, like the bmalloc one, which prefixes every non-static with bmalloc_.
Libpas includes a giant test suite. Lots of the heap configurations (iso_test, thingy,
minalign32, pagesize64k) are just for testing. The test suite has both unit tests and chaos
tests as well as everything in between. The test suite is written in C++.
This glues libpas into the DebugHeap mechanism in bmalloc, so Malloc=1 will give you system
malloc. Libpas supports libmalloc enumeration, and this patch exposes it (though you need a
shared cache rebuild to enjoy the benefits).
All of bmalloc's external-facing API are replaced with libpas when the BUSE(LIBPAS) flag is
set (so the bmalloc::XYZ functions, Gigacage::XYZ, and IsoHeap<> and friends). This also
exposes the jit_heap API for the ExecutableAllocator to use.
Notes for porting: this uses lots of Darwin APIs, like the APIs for getting an approximate time
very quickly, APIs for fast TLS, thread suspension, and probably other stuff. It'll be hard,
but possible, to port to Linux. It may never perform as well on Linux as it does on Darwin.
It's also worth noting that libpas strongly assumes 64-bit, that the CPU can do 128-bit
compare-and-swap, that there is no big downside to misaligned loads and stores, and that the
memory model is either the one in ARM64 or the one on x86_64 (or something not weaker than
either of them). Trying to make libpas work on 32-bit CPUs will quickly run into cases where
some pointer math doesn't work right because it was written strongly assuming properties
unique to 64-bit CPUs (like that some number of top bits are not used for the address), as well
as cases where lock-free algorithms are using uintptr_t for a versioning scheme (which may not
be as reliable as you want on 32-bit).
- CMakeLists.txt:
- Configurations/Base.xcconfig:
- bmalloc.xcodeproj/project.pbxproj:
- bmalloc/BPlatform.h:
- bmalloc/DebugHeap.cpp:
(bmalloc::DebugHeap::tryGetSlow):
(pas_debug_heap_is_enabled):
(pas_debug_heap_malloc):
(pas_debug_heap_memalign):
(pas_debug_heap_realloc):
(pas_debug_heap_free):
- bmalloc/DebugHeap.h:
(bmalloc::debugHeapDisabled):
(bmalloc::DebugHeap::tryGet):
(bmalloc::DebugHeap::getExisting):
- bmalloc/Gigacage.cpp:
(Gigacage::ensureGigacage):
(Gigacage::allocBase):
(Gigacage::size):
- bmalloc/Gigacage.h:
- bmalloc/GigacageConfig.h:
(Gigacage::Config::allocBasePtr const):
(Gigacage::Config::setAllocBasePtr):
(Gigacage::Config::allocSize const):
(Gigacage::Config::setAllocSize):
- bmalloc/Heap.cpp:
(bmalloc::Heap::gigacageSize):
- bmalloc/Heap.h:
- bmalloc/IsoHeap.cpp: Added.
(bmalloc::api::isoAllocate):
(bmalloc::api::isoTryAllocate):
(bmalloc::api::isoDeallocate):
- bmalloc/IsoHeap.h:
(bmalloc::api::IsoHeap::IsoHeap):
(bmalloc::api::IsoHeap::allocate):
(bmalloc::api::IsoHeap::tryAllocate):
(bmalloc::api::IsoHeap::deallocate):
(bmalloc::api::IsoHeap::scavenge):
(bmalloc::api::IsoHeap::initialize):
(bmalloc::api::IsoHeap::isInitialized):
- bmalloc/IsoHeapImplInlines.h:
(bmalloc::IsoHeapImpl<Config>::IsoHeapImpl):
- bmalloc/IsoHeapInlines.h:
- bmalloc/IsoMallocFallback.cpp: Added.
(bmalloc::IsoMallocFallback::tryMalloc):
(bmalloc::IsoMallocFallback::tryFree):
- bmalloc/IsoMallocFallback.h: Copied from Source/bmalloc/bmalloc/DebugHeap.h.
(bmalloc::IsoMallocFallback::shouldTryToFallBack):
(bmalloc::IsoMallocFallback::MallocResult::MallocResult):
- bmalloc/IsoTLS.cpp:
(bmalloc::IsoTLS::determineMallocFallbackState): Deleted.
- bmalloc/IsoTLS.h:
- bmalloc/IsoTLSInlines.h:
(bmalloc::IsoTLS::allocateSlow):
(bmalloc::IsoTLS::deallocateSlow):
- bmalloc/PerThread.h:
(bmalloc::PerThreadStorage<PerHeapKind<Cache>>::init):
- bmalloc/bmalloc.cpp:
(bmalloc::api::tryLargeZeroedMemalignVirtual):
(bmalloc::api::freeLargeVirtual):
(bmalloc::api::scavengeThisThread):
(bmalloc::api::scavenge):
(bmalloc::api::setScavengerThreadQOSClass):
(bmalloc::api::commitAlignedPhysical):
(bmalloc::api::decommitAlignedPhysical):
(bmalloc::api::enableMiniMode):
(bmalloc::api::disableScavenger):
- bmalloc/bmalloc.h:
(bmalloc::api::heapForKind):
(bmalloc::api::tryMalloc):
(bmalloc::api::malloc):
(bmalloc::api::tryMemalign):
(bmalloc::api::memalign):
(bmalloc::api::tryRealloc):
(bmalloc::api::realloc):
(bmalloc::api::free):
(bmalloc::api::scavengeThisThread): Deleted.
- libpas/.gitignore: Added.
- libpas/build.sh: Added.
- libpas/build_and_test.sh: Added.
- libpas/common.sh: Added.
- libpas/libpas.xcodeproj/project.pbxproj: Added.
- libpas/scripts/tally_verifier_output: Added.
- libpas/src/chaos/Chaos.cpp: Added.
(std::Object::Object):
(std::Packet::~Packet):
(std::Locker::Locker):
(std::Locker::~Locker):
(std::threadMain):
(main):
- libpas/src/libpas/bmalloc_heap.c: Added.
(bmalloc_try_allocate):
(bmalloc_try_allocate_with_alignment):
(bmalloc_try_allocate_zeroed):
(bmalloc_allocate):
(bmalloc_allocate_with_alignment):
(bmalloc_allocate_zeroed):
(bmalloc_try_reallocate):
(bmalloc_reallocate):
(bmalloc_try_iso_allocate):
(bmalloc_iso_allocate):
(bmalloc_heap_ref_get_heap):
(bmalloc_try_allocate_auxiliary):
(bmalloc_allocate_auxiliary):
(bmalloc_try_allocate_auxiliary_zeroed):
(bmalloc_allocate_auxiliary_zeroed):
(bmalloc_try_allocate_auxiliary_with_alignment):
(bmalloc_allocate_auxiliary_with_alignment):
(bmalloc_try_reallocate_auxiliary):
(bmalloc_reallocate_auxiliary):
(bmalloc_deallocate):
(bmalloc_force_auxiliary_heap_into_reserved_memory):
- libpas/src/libpas/bmalloc_heap.h: Added.
- libpas/src/libpas/bmalloc_heap_config.c: Copied from Source/WTF/wtf/FastTLS.h.
(bmalloc_heap_config_activate):
- libpas/src/libpas/bmalloc_heap_config.h: Added.
- libpas/src/libpas/bmalloc_heap_inlines.h: Added.
(bmalloc_try_allocate_inline):
(bmalloc_try_allocate_with_alignment_inline):
(bmalloc_try_allocate_zeroed_inline):
(bmalloc_allocate_inline):
(bmalloc_allocate_with_alignment_inline):
(bmalloc_allocate_zeroed_inline):
(bmalloc_try_reallocate_inline):
(bmalloc_reallocate_inline):
(bmalloc_try_iso_allocate_inline):
(bmalloc_iso_allocate_inline):
(bmalloc_try_allocate_auxiliary_inline):
(bmalloc_allocate_auxiliary_inline):
(bmalloc_try_allocate_auxiliary_zeroed_inline):
(bmalloc_allocate_auxiliary_zeroed_inline):
(bmalloc_try_allocate_auxiliary_with_alignment_inline):
(bmalloc_allocate_auxiliary_with_alignment_inline):
(bmalloc_try_reallocate_auxiliary_inline):
(bmalloc_reallocate_auxiliary_inline):
(bmalloc_deallocate_inline):
- libpas/src/libpas/bmalloc_heap_innards.h: Copied from Source/WTF/wtf/FastTLS.h.
- libpas/src/libpas/bmalloc_heap_ref.h: Copied from Source/WTF/wtf/FastTLS.h.
- libpas/src/libpas/hotbit_heap.c: Copied from Source/WTF/wtf/FastTLS.h.
(hotbit_try_allocate):
(hotbit_try_allocate_with_alignment):
(hotbit_try_reallocate):
(hotbit_deallocate):
- libpas/src/libpas/hotbit_heap.h: Copied from Source/WTF/wtf/FastTLS.h.
- libpas/src/libpas/hotbit_heap_config.c: Copied from Source/WTF/wtf/FastTLS.h.
(hotbit_heap_config_activate):
- libpas/src/libpas/hotbit_heap_config.h: Added.
- libpas/src/libpas/hotbit_heap_inlines.h: Added.
(hotbit_try_allocate_inline):
(hotbit_try_allocate_with_alignment_inline):
(hotbit_try_reallocate_inline):
(hotbit_deallocate_inline):
- libpas/src/libpas/hotbit_heap_innards.h: Copied from Source/WTF/wtf/FastTLS.h.
- libpas/src/libpas/iso_heap.c: Added.
(iso_try_allocate_common_primitive):
(iso_try_allocate_common_primitive_with_alignment):
(iso_try_allocate_common_primitive_zeroed):
(iso_allocate_common_primitive):
(iso_allocate_common_primitive_with_alignment):
(iso_allocate_common_primitive_zeroed):
(iso_try_reallocate_common_primitive):
(iso_reallocate_common_primitive):
(iso_try_allocate_dynamic_primitive):
(iso_try_allocate_dynamic_primitive_with_alignment):
(iso_try_allocate_dynamic_primitive_zeroed):
(iso_try_reallocate_dynamic_primitive):
(iso_heap_ref_construct):
(iso_try_allocate):
(iso_allocate):
(iso_try_allocate_array):
(iso_allocate_array):
(iso_try_allocate_array_zeroed):
(iso_allocate_array_zeroed):
(iso_try_reallocate_array):
(iso_reallocate_array):
(iso_heap_ref_get_heap):
(iso_primitive_heap_ref_construct):
(iso_try_allocate_primitive):
(iso_allocate_primitive):
(iso_try_allocate_primitive_zeroed):
(iso_allocate_primitive_zeroed):
(iso_try_allocate_primitive_with_alignment):
(iso_allocate_primitive_with_alignment):
(iso_try_reallocate_primitive):
(iso_reallocate_primitive):
(iso_try_allocate_for_objc):
(iso_has_object):
(iso_get_allocation_size):
(iso_get_heap):
(iso_deallocate):
(iso_force_primitive_heap_into_reserved_memory):
- libpas/src/libpas/iso_heap.h: Added.
- libpas/src/libpas/iso_heap_config.c: Copied from Source/WTF/wtf/FastTLS.h.
- libpas/src/libpas/iso_heap_config.h: Added.
- libpas/src/libpas/iso_heap_inlines.h: Added.
(iso_try_allocate_common_primitive_inline):
(iso_try_allocate_common_primitive_with_alignment_inline):
(iso_try_allocate_common_primitive_zeroed_inline):
(iso_allocate_common_primitive_inline):
(iso_allocate_common_primitive_with_alignment_inline):
(iso_allocate_common_primitive_zeroed_inline):
(iso_try_reallocate_common_primitive_inline):
(iso_reallocate_common_primitive_inline):
(iso_try_allocate_inline):
(iso_allocate_inline):
(iso_try_allocate_array_inline):
(iso_allocate_array_inline):
(iso_try_allocate_array_zeroed_inline):
(iso_allocate_array_zeroed_inline):
(iso_try_reallocate_array_inline):
(iso_reallocate_array_inline):
(iso_try_allocate_primitive_inline):
(iso_allocate_primitive_inline):
(iso_try_allocate_primitive_zeroed_inline):
(iso_allocate_primitive_zeroed_inline):
(iso_try_allocate_primitive_with_alignment_inline):
(iso_allocate_primitive_with_alignment_inline):
(iso_try_reallocate_primitive_inline):
(iso_reallocate_primitive_inline):
(iso_try_allocate_for_objc_inline):
(iso_has_object_inline):
(iso_get_allocation_size_inline):
(iso_get_heap_inline):
(iso_deallocate_inline):
- libpas/src/libpas/iso_heap_innards.h: Copied from Source/WTF/wtf/FastTLS.h.
- libpas/src/libpas/iso_heap_ref.h: Copied from Source/WTF/wtf/FastTLS.h.
- libpas/src/libpas/iso_test_heap.c: Added.
(iso_test_allocate_common_primitive):
(iso_test_allocate):
(iso_test_allocate_array):
(iso_test_deallocate):
(iso_test_heap_ref_get_heap):
- libpas/src/libpas/iso_test_heap.h: Copied from Source/WTF/wtf/FastTLS.h.
- libpas/src/libpas/iso_test_heap_config.c: Copied from Source/WTF/wtf/FastTLS.h.
- libpas/src/libpas/iso_test_heap_config.h: Added.
- libpas/src/libpas/jit_heap.c: Added.
(jit_heap_add_fresh_memory):
(jit_heap_try_allocate):
(jit_heap_shrink):
(jit_heap_get_size):
(jit_heap_deallocate):
- libpas/src/libpas/jit_heap.h: Copied from Source/WTF/wtf/FastTLS.h.
- libpas/src/libpas/jit_heap_config.c: Added.
(fresh_memory_aligned_allocator):
(initialize_fresh_memory_config):
(allocate_from_fresh):
(page_provider):
(jit_page_header_for_boundary_remote):
(jit_small_bitfit_allocate_page):
(jit_small_bitfit_create_page_header):
(jit_small_bitfit_destroy_page_header):
(jit_medium_bitfit_allocate_page):
(jit_medium_bitfit_create_page_header):
(jit_medium_bitfit_destroy_page_header):
(jit_aligned_allocator):
(jit_prepare_to_enumerate):
(jit_heap_config_for_each_shared_page_directory):
(jit_heap_config_for_each_shared_page_directory_remote):
(jit_heap_config_add_fresh_memory):
- libpas/src/libpas/jit_heap_config.h: Added.
(jit_type_size):
(jit_type_alignment):
(jit_heap_config_fast_megapage_kind):
(jit_small_bitfit_page_header_for_boundary):
(jit_small_bitfit_boundary_for_page_header):
(jit_medium_bitfit_page_header_for_boundary):
(jit_medium_bitfit_boundary_for_page_header):
(jit_heap_config_page_header):
- libpas/src/libpas/jit_heap_config_root_data.h: Copied from Source/WTF/wtf/FastTLS.h.
- libpas/src/libpas/minalign32_heap.c: Added.
(minalign32_allocate_common_primitive):
(minalign32_allocate):
(minalign32_allocate_array):
(minalign32_deallocate):
(minalign32_heap_ref_get_heap):
- libpas/src/libpas/minalign32_heap.h: Copied from Source/WTF/wtf/FastTLS.h.
- libpas/src/libpas/minalign32_heap_config.c: Copied from Source/WTF/wtf/FastTLS.h.
(minalign32_heap_config_activate):
- libpas/src/libpas/minalign32_heap_config.h: Added.
- libpas/src/libpas/pagesize64k_heap.c: Added.
(pagesize64k_allocate_common_primitive):
(pagesize64k_allocate):
(pagesize64k_allocate_array):
(pagesize64k_deallocate):
(pagesize64k_heap_ref_get_heap):
- libpas/src/libpas/pagesize64k_heap.h: Copied from Source/WTF/wtf/FastTLS.h.
- libpas/src/libpas/pagesize64k_heap_config.c: Copied from Source/WTF/wtf/FastTLS.h.
(pagesize64k_heap_config_activate):
- libpas/src/libpas/pagesize64k_heap_config.h: Added.
- libpas/src/libpas/pas_aligned_allocation_result.h: Added.
(pas_aligned_allocation_result_create_empty):
(pas_aligned_allocation_result_as_allocation_result):
- libpas/src/libpas/pas_aligned_allocator.h: Copied from Source/WTF/wtf/FastTLS.h.
- libpas/src/libpas/pas_alignment.c: Copied from Source/WTF/wtf/FastTLS.h.
(pas_alignment_dump):
- libpas/src/libpas/pas_alignment.h: Added.
(pas_alignment_create):
(pas_alignment_create_traditional):
(pas_alignment_create_trivial):
(pas_alignment_validate):
(pas_alignment_is_ptr_aligned):
(pas_alignment_round_up):
(pas_alignment_is_equal):
- libpas/src/libpas/pas_all_biasing_directories.c: Added.
(pas_all_biasing_directories_append):
(pas_all_biasing_directories_activate):
(scavenge_for_each_set_bit_bits_source):
(scavenge_for_each_set_bit_callback):
(scavenge_bitvector_word_callback):
(pas_all_biasing_directories_scavenge):
- libpas/src/libpas/pas_all_biasing_directories.h: Copied from Source/WTF/wtf/FastTLS.h.
- libpas/src/libpas/pas_all_heap_configs.h: Copied from Source/WTF/wtf/FastTLS.h.
- libpas/src/libpas/pas_all_heaps.c: Added.
(pas_all_heaps_add_heap):
(pas_all_heaps_for_each_static_heap):
(pas_all_heaps_for_each_dynamic_heap):
(pas_all_heaps_for_each_heap):
(pas_all_heaps_for_each_static_segregated_heap_not_part_of_a_heap):
(for_each_segregated_heap_callback):
(pas_all_heaps_for_each_static_segregated_heap):
(pas_all_heaps_for_each_segregated_heap):
(get_num_free_bytes_for_each_heap_callback):
(pas_all_heaps_get_num_free_bytes):
(reset_heap_ref_for_each_heap_callback):
(pas_all_heaps_reset_heap_ref):
(for_each_segregated_directory_global_size_directory_callback):
(for_each_segregated_directory_shared_page_directory_callback):
(for_each_segregated_directory_segregated_heap_callback):
(pas_all_heaps_for_each_segregated_directory):
(dump_directory_nicely):
(dump_view_nicely):
(verify_in_steady_state_segregated_directory_callback):
(pas_all_heaps_verify_in_steady_state):
(compute_total_non_utility_segregated_summary_directory_callback):
(pas_all_heaps_compute_total_non_utility_segregated_summary):
(compute_total_non_utility_bitfit_summary_heap_callback):
(pas_all_heaps_compute_total_non_utility_bitfit_summary):
(compute_total_non_utility_large_summary_heap_callback):
(pas_all_heaps_compute_total_non_utility_large_summary):
(pas_all_heaps_compute_total_non_utility_summary):
- libpas/src/libpas/pas_all_heaps.h: Added.
- libpas/src/libpas/pas_all_magazines.c: Added.
(pas_all_magazines_get_current):
- libpas/src/libpas/pas_all_magazines.h: Copied from Source/WTF/wtf/FastTLS.h.
- libpas/src/libpas/pas_all_shared_page_directories.c: Copied from Source/WTF/wtf/FastTLS.h.
(pas_all_shared_page_directories_add):
(pas_all_shared_page_directories_for_each):
- libpas/src/libpas/pas_all_shared_page_directories.h: Copied from Source/WTF/wtf/FastTLS.h.
- libpas/src/libpas/pas_allocation_callbacks.c: Copied from Source/WTF/wtf/FastTLS.h.
- libpas/src/libpas/pas_allocation_callbacks.h: Added.
(pas_did_allocate):
(pas_will_deallocate):
- libpas/src/libpas/pas_allocation_config.h: Copied from Source/WTF/wtf/FastTLS.h.
- libpas/src/libpas/pas_allocation_kind.h: Copied from Source/WTF/wtf/FastTLS.h.
(pas_allocation_kind_get_string):
- libpas/src/libpas/pas_allocation_result.c: Copied from Source/WTF/wtf/FastTLS.h.
(pas_allocation_result_zero):
- libpas/src/libpas/pas_allocation_result.h: Added.
(pas_allocation_result_create_failure):
(pas_allocation_result_create_success_with_zero_mode):
(pas_allocation_result_create_success):
- libpas/src/libpas/pas_allocator_counts.h: Copied from Source/WTF/wtf/FastTLS.h.
- libpas/src/libpas/pas_allocator_index.h: Copied from Source/WTF/wtf/FastTLS.h.
- libpas/src/libpas/pas_allocator_scavenge_action.h: Copied from Source/WTF/wtf/FastTLS.h.
(pas_allocator_scavenge_action_get_string):
- libpas/src/libpas/pas_baseline_allocator.c: Copied from Source/WTF/wtf/FastTLS.h.
(pas_baseline_allocator_attach_directory):
(pas_baseline_allocator_detach_directory):
- libpas/src/libpas/pas_baseline_allocator.h: Copied from Source/WTF/wtf/FastTLS.h.
- libpas/src/libpas/pas_baseline_allocator_result.h: Copied from Source/WTF/wtf/FastTLS.h.
(pas_baseline_allocator_result_create_failure):
(pas_baseline_allocator_result_create_success):
- libpas/src/libpas/pas_baseline_allocator_table.c: Added.
(initialize):
(pas_baseline_allocator_table_initialize_if_necessary):
(pas_baseline_allocator_table_get_random_index):
(pas_baseline_allocator_table_for_all):
- libpas/src/libpas/pas_baseline_allocator_table.h: Copied from Source/WTF/wtf/FastTLS.h.
- libpas/src/libpas/pas_basic_heap_config_enumerator_data.c: Added.
(pas_basic_heap_config_enumerator_data_add_page_header_table):
- libpas/src/libpas/pas_basic_heap_config_enumerator_data.h: Copied from Source/WTF/wtf/FastTLS.h.
- libpas/src/libpas/pas_basic_heap_config_root_data.h: Copied from Source/WTF/wtf/FastTLS.h.
- libpas/src/libpas/pas_basic_heap_page_caches.h: Added.
(pas_basic_heap_page_caches_get_shared_page_directories):
- libpas/src/libpas/pas_basic_heap_runtime_config.h: Copied from Source/WTF/wtf/FastTLS.h.
- libpas/src/libpas/pas_basic_segregated_page_caches.h: Copied from Source/WTF/wtf/FastTLS.h.
- libpas/src/libpas/pas_biasing_directory.c: Added.
(pas_biasing_directory_construct):
(pas_biasing_directory_get_sharing_pool):
(pas_biasing_directory_did_create_delta):
(pas_biasing_directory_take_last_unused):
(pas_biasing_directory_did_use_index_slow):
(pas_biasing_directory_index_did_become_eligible):
- libpas/src/libpas/pas_biasing_directory.h: Added.
(pas_is_segregated_biasing_directory):
(pas_is_bitfit_biasing_directory):
(pas_biasing_directory_magazine_index):
(pas_biasing_directory_ownership_threshold):
(pas_biasing_directory_unused_span_size):
(pas_biasing_directory_did_use_index):
- libpas/src/libpas/pas_biasing_directory_inlines.h: Copied from Source/WTF/wtf/FastTLS.h.
(pas_unwrap_segregated_biasing_directory):
(pas_unwrap_bitfit_biasing_directory):
- libpas/src/libpas/pas_biasing_directory_kind.h: Copied from Source/WTF/wtf/FastTLS.h.
(pas_biasing_directory_kind_get_string):
- libpas/src/libpas/pas_bitfield_vector.h: Added.
(pas_bitfield_vector_get):
(pas_bitfield_vector_set):
- libpas/src/libpas/pas_bitfit_allocation_result.h: Added.
(pas_bitfit_allocation_result_create_success):
(pas_bitfit_allocation_result_create_failure):
(pas_bitfit_allocation_result_create_empty):
(pas_bitfit_allocation_result_create_need_to_lock_commit_lock):
- libpas/src/libpas/pas_bitfit_allocator.c: Added.
(pas_bitfit_allocator_commit_view):
(pas_bitfit_allocator_finish_failing):
- libpas/src/libpas/pas_bitfit_allocator.h: Copied from Source/WTF/wtf/FastTLS.h.
- libpas/src/libpas/pas_bitfit_allocator_inlines.h: Added.
(pas_bitfit_allocator_reset):
(pas_bitfit_allocator_assert_reset):
(pas_bitfit_allocator_try_allocate):
- libpas/src/libpas/pas_bitfit_biasing_directory.c: Added.
(pas_bitfit_biasing_directory_create):
(pas_bitfit_biasing_directory_take_last_unused):
- libpas/src/libpas/pas_bitfit_biasing_directory.h: Copied from Source/WTF/wtf/FastTLS.h.
- libpas/src/libpas/pas_bitfit_directory.c: Added.
(pas_bitfit_directory_construct):
(pas_bitfit_directory_update_biasing_eligibility):
(pas_bitfit_directory_max_free_did_become_unprocessed):
(pas_bitfit_directory_max_free_did_become_unprocessed_unchecked):
(pas_bitfit_directory_max_free_did_become_empty_without_biasing_update):
(pas_bitfit_directory_max_free_did_become_empty):
(pas_bitfit_directory_get_first_free_view):
(pas_bitfit_directory_compute_summary):
(for_each_live_object_callback):
(pas_bitfit_directory_for_each_live_object):
- libpas/src/libpas/pas_bitfit_directory.h: Added.
(pas_bitfit_directory_size):
(pas_bitfit_directory_get_max_free_ptr):
(pas_bitfit_directory_get_max_free):
(pas_bitfit_directory_set_max_free_unchecked):
(pas_bitfit_directory_set_max_free_not_empty_impl):
(pas_bitfit_directory_set_processed_max_free):
(pas_bitfit_directory_set_unprocessed_max_free_unchecked):
(pas_bitfit_directory_set_empty_max_free):
(pas_bitfit_directory_set_unprocessed_max_free):
(pas_bitfit_directory_get_view_ptr):
(pas_bitfit_directory_get_view):
- libpas/src/libpas/pas_bitfit_directory_and_index.h: Copied from Source/WTF/wtf/FastTLS.h.
(pas_bitfit_directory_and_index_create):
- libpas/src/libpas/pas_bitfit_directory_inlines.h: Added.
(pas_bitfit_directory_get_global):
(pas_bitfit_directory_find_first_free_for_num_bits_iterate_callback):
(pas_bitfit_directory_find_first_free_for_num_bits):
(pas_bitfit_directory_find_first_free):
(pas_bitfit_directory_find_first_empty_iterate_callback):
(pas_bitfit_directory_find_first_empty):
- libpas/src/libpas/pas_bitfit_directory_kind.h: Copied from Source/WTF/wtf/FastTLS.h.
(pas_bitfit_directory_kind_get_string):
- libpas/src/libpas/pas_bitfit_global_directory.c: Added.
(pas_bitfit_global_directory_construct):
(pas_bitfit_global_directory_does_sharing):
(pas_bitfit_global_directory_get_use_epoch):
(pas_bitfit_global_directory_get_empty_bit_at_index):
(pas_bitfit_global_directory_set_empty_bit_at_index):
(pas_bitfit_global_directory_view_did_become_empty_at_index):
(pas_bitfit_global_directory_view_did_become_empty):
(pas_bitfit_global_directory_take_last_empty):
(pas_bitfit_global_directory_dump_reference):
(pas_bitfit_global_directory_dump_for_spectrum):
- libpas/src/libpas/pas_bitfit_global_directory.h: Added.
- libpas/src/libpas/pas_bitfit_global_size_class.c: Added.
(pas_bitfit_global_size_class_create):
(pas_bitfit_global_size_class_select_for_magazine):
- libpas/src/libpas/pas_bitfit_global_size_class.h: Added.
- libpas/src/libpas/pas_bitfit_heap.c: Added.
(pas_bitfit_heap_create):
(pas_bitfit_heap_select_variant):
(pas_bitfit_heap_ensure_global_size_class):
(pas_bitfit_heap_compute_summary):
(for_each_live_object_callback):
(pas_bitfit_heap_for_each_live_object):
- libpas/src/libpas/pas_bitfit_heap.h: Added.
(pas_bitfit_heap_get_directory):
- libpas/src/libpas/pas_bitfit_max_free.h: Copied from Source/WTF/wtf/FastTLS.h.
- libpas/src/libpas/pas_bitfit_page.c: Added.
(pas_bitfit_page_construct):
(pas_bitfit_page_get_config):
(pas_bitfit_page_log_bits):
(pas_bitfit_page_deallocation_did_fail):
(pas_bitfit_page_for_each_live_object):
(verify_for_each_object_callback):
(pas_bitfit_page_verify):
- libpas/src/libpas/pas_bitfit_page.h: Added.
(pas_bitfit_page_header_size):
(pas_bitfit_page_free_bits):
(pas_bitfit_page_object_end_bits):
(pas_bitfit_page_get_granule_use_counts):
(pas_bitfit_page_offset_to_first_object):
(pas_bitfit_page_offset_to_end_of_last_object):
(pas_bitfit_page_payload_size):
(pas_bitfit_page_for_boundary):
(pas_bitfit_page_for_boundary_or_null):
(pas_bitfit_page_for_boundary_unchecked):
(pas_bitfit_page_boundary):
(pas_bitfit_page_boundary_or_null):
(pas_bitfit_page_for_address_and_page_config):
(pas_bitfit_page_testing_verify):
- libpas/src/libpas/pas_bitfit_page_config.h: Added.
(pas_bitfit_page_config_is_enabled):
(pas_bitfit_page_config_num_alloc_bits):
(pas_bitfit_page_config_num_alloc_words):
(pas_bitfit_page_config_num_alloc_words64):
(pas_bitfit_page_config_num_alloc_bit_bytes):
(pas_bitfit_page_config_byte_offset_for_object_bits):
(pas_bitfit_page_config_uses_subpages):
- libpas/src/libpas/pas_bitfit_page_config_inlines.h: Added.
- libpas/src/libpas/pas_bitfit_page_config_kind.c: Added.
(pas_bitfit_page_config_kind_for_each):
- libpas/src/libpas/pas_bitfit_page_config_kind.def: Added.
- libpas/src/libpas/pas_bitfit_page_config_kind.h: Added.
(pas_bitfit_page_config_kind_get_string):
(pas_bitfit_page_config_kind_get_config):
- libpas/src/libpas/pas_bitfit_page_config_utils.h: Copied from Source/WTF/wtf/FastTLS.h.
- libpas/src/libpas/pas_bitfit_page_config_utils_inlines.h: Copied from Source/WTF/wtf/FastTLS.h.
- libpas/src/libpas/pas_bitfit_page_config_variant.h: Added.
(pas_bitfit_page_config_variant_get_string):
(pas_bitfit_page_config_variant_get_capitalized_string):
- libpas/src/libpas/pas_bitfit_page_inlines.h: Added.
(pas_bitfit_page_compute_offset):
(pas_bitfit_page_allocation_satisfies_alignment):
(pas_bitfit_page_allocation_commit_granules_or_reloop):
(pas_bitfit_page_finish_allocation):
(pas_bitfit_page_allocate):
(pas_bitfit_page_deallocate_with_page_impl_mode_get_string):
(pas_bitfit_page_deallocate_with_page_impl):
(pas_bitfit_page_deallocate_with_page):
(pas_bitfit_page_deallocate):
(pas_bitfit_page_get_allocation_size_with_page):
(pas_bitfit_page_get_allocation_size):
(pas_bitfit_page_shrink_with_page):
(pas_bitfit_page_shrink):
- libpas/src/libpas/pas_bitfit_size_class.c: Added.
(pas_bitfit_size_class_find_insertion_point):
(pas_bitfit_size_class_construct):
(pas_bitfit_size_class_create):
(pas_bitfit_size_class_get_first_free_view):
- libpas/src/libpas/pas_bitfit_size_class.h: Added.
- libpas/src/libpas/pas_bitfit_view.c: Added.
(pas_bitfit_view_create):
(pas_bitfit_view_lock_ownership_lock_slow):
(pas_bitfit_view_note_nonemptiness):
(did_become_empty_for_bits):
(pas_bitfit_view_note_full_emptiness):
(pas_bitfit_view_note_partial_emptiness):
(pas_bitfit_view_note_max_free):
(compute_summary):
(pas_bitfit_view_compute_summary):
(for_each_live_object_callback):
(for_each_live_object):
(pas_bitfit_view_for_each_live_object):
- libpas/src/libpas/pas_bitfit_view.h: Added.
(pas_bitfit_view_lock_ownership_lock):
- libpas/src/libpas/pas_bitfit_view_and_index.h: Copied from Source/WTF/wtf/FastTLS.h.
(pas_bitfit_view_and_index_create):
(pas_bitfit_view_and_index_create_empty):
- libpas/src/libpas/pas_bitfit_view_inlines.h: Added.
(pas_bitfit_view_current_directory_and_index):
(pas_bitfit_view_current_directory):
(pas_bitfit_view_index_in_current):
(pas_bitfit_view_is_empty):
- libpas/src/libpas/pas_bitvector.h: Added.
(pas_bitvector_get_from_word):
(pas_bitvector_get):
(pas_bitvector_get_from_one_word):
(pas_backward_bitvector_get):
(pas_bitvector_set_in_word):
(pas_bitvector_set):
(pas_bitvector_set_in_one_word):
(pas_bitvector_set_atomic_in_word):
(pas_bitvector_set_atomic):
(pas_backward_bitvector_set):
(pas_bitvector_find_first_set):
(pas_bitvector_for_each_set_bit):
(pas_bitvector64_set_range):
- libpas/src/libpas/pas_bootstrap_free_heap.c: Copied from Source/WTF/wtf/FastTLS.h.
(bootstrap_source_allocate_aligned):
(initialize_config):
- libpas/src/libpas/pas_bootstrap_free_heap.h: Copied from Source/WTF/wtf/FastTLS.h.
- libpas/src/libpas/pas_bootstrap_heap_page_provider.c: Copied from Source/WTF/wtf/FastTLS.h.
(pas_bootstrap_heap_page_provider):
- libpas/src/libpas/pas_bootstrap_heap_page_provider.h: Copied from Source/WTF/wtf/FastTLS.h.
- libpas/src/libpas/pas_cares_about_size_mode.h: Copied from Source/WTF/wtf/FastTLS.h.
- libpas/src/libpas/pas_cartesian_tree.h: Added.
(pas_cartesian_tree_node_child_ptr):
(pas_cartesian_tree_node_is_null_constrained):
(pas_cartesian_tree_node_minimum):
(pas_cartesian_tree_node_minimum_constrained):
(pas_cartesian_tree_node_maximum):
(pas_cartesian_tree_node_maximum_constrained):
(pas_cartesian_tree_node_successor):
(pas_cartesian_tree_node_successor_constrained):
(pas_cartesian_tree_node_predecessor):
(pas_cartesian_tree_node_predecessor_constrained):
(pas_cartesian_tree_node_reset):
(pas_cartesian_tree_construct):
(pas_cartesian_tree_node_find_exact):
(pas_cartesian_tree_find_exact):
(pas_cartesian_tree_node_find_least_greater_than_or_equal):
(pas_cartesian_tree_find_least_greater_than_or_equal):
(pas_cartesian_tree_node_find_least_greater_than):
(pas_cartesian_tree_find_least_greater_than):
(pas_cartesian_tree_node_find_greatest_less_than_or_equal):
(pas_cartesian_tree_find_greatest_less_than_or_equal):
(pas_cartesian_tree_node_find_greatest_less_than):
(pas_cartesian_tree_find_greatest_less_than):
(pas_cartesian_tree_minimum):
(pas_cartesian_tree_minimum_constrained):
(pas_cartesian_tree_maximum):
(pas_cartesian_tree_maximum_constrained):
(pas_cartesian_tree_is_empty):
(pas_cartesian_tree_insert):
(pas_cartesian_tree_remove):
(pas_cartesian_tree_validate_recurse):
(pas_cartesian_tree_validate):
(pas_cartesian_tree_size):
- libpas/src/libpas/pas_coalign.c: Added.
(formal_mod):
(ceiling_div):
(pas_coalign_one_sided):
(pas_coalign):
- libpas/src/libpas/pas_coalign.h: Copied from Source/WTF/wtf/FastTLS.h.
(pas_coalign_empty_result):
(pas_coalign_result_create):
- libpas/src/libpas/pas_commit_mode.h: Copied from Source/WTF/wtf/FastTLS.h.
(pas_commit_mode_get_string):
- libpas/src/libpas/pas_commit_span.c: Added.
(pas_commit_span_construct):
(pas_commit_span_add_to_change):
(pas_commit_span_add_unchanged):
(commit):
(pas_commit_span_add_unchanged_and_commit):
(decommit):
(pas_commit_span_add_unchanged_and_decommit):
- libpas/src/libpas/pas_commit_span.h: Added.
- libpas/src/libpas/pas_compact_atomic_allocator_index_ptr.h: Copied from Source/WTF/wtf/FastTLS.h.
- libpas/src/libpas/pas_compact_atomic_biasing_directory_ptr.h: Copied from Source/WTF/wtf/FastTLS.h.
- libpas/src/libpas/pas_compact_atomic_bitfit_biasing_directory_ptr.h: Copied from Source/WTF/wtf/FastTLS.h.
- libpas/src/libpas/pas_compact_atomic_bitfit_global_size_class_ptr.h: Copied from Source/WTF/wtf/FastTLS.h.
- libpas/src/libpas/pas_compact_atomic_bitfit_heap_ptr.h: Copied from Source/WTF/wtf/FastTLS.h.
- libpas/src/libpas/pas_compact_atomic_bitfit_size_class_ptr.h: Copied from Source/WTF/wtf/FastTLS.h.
- libpas/src/libpas/pas_compact_atomic_bitfit_view_ptr.h: Copied from Source/WTF/wtf/FastTLS.h.
- libpas/src/libpas/pas_compact_atomic_enumerable_range_list_chunk_ptr.h: Copied from Source/WTF/wtf/FastTLS.h.
- libpas/src/libpas/pas_compact_atomic_page_sharing_pool_ptr.h: Copied from Source/WTF/wtf/FastTLS.h.
- libpas/src/libpas/pas_compact_atomic_ptr.h: Added.
- libpas/src/libpas/pas_compact_atomic_segregated_exclusive_view_ptr.h: Copied from Source/WTF/wtf/FastTLS.h.
- libpas/src/libpas/pas_compact_atomic_segregated_global_size_directory_ptr.h: Copied from Source/WTF/wtf/FastTLS.h.
- libpas/src/libpas/pas_compact_atomic_segregated_heap_page_sharing_pools_ptr.h: Copied from Source/WTF/wtf/FastTLS.h.
- libpas/src/libpas/pas_compact_atomic_segregated_partial_view_ptr.h: Copied from Source/WTF/wtf/FastTLS.h.
- libpas/src/libpas/pas_compact_atomic_segregated_view.h: Copied from Source/WTF/wtf/FastTLS.h.
- libpas/src/libpas/pas_compact_atomic_thread_local_cache_layout_node.h: Copied from Source/WTF/wtf/FastTLS.h.
- libpas/src/libpas/pas_compact_atomic_unsigned_ptr.h: Copied from Source/WTF/wtf/FastTLS.h.
- libpas/src/libpas/pas_compact_biasing_directory_ptr.h: Copied from Source/WTF/wtf/FastTLS.h.
- libpas/src/libpas/pas_compact_bitfit_directory_ptr.h: Copied from Source/WTF/wtf/FastTLS.h.
- libpas/src/libpas/pas_compact_bitfit_global_directory_ptr.h: Copied from Source/WTF/wtf/FastTLS.h.
- libpas/src/libpas/pas_compact_bitfit_view_ptr.h: Copied from Source/WTF/wtf/FastTLS.h.
- libpas/src/libpas/pas_compact_bootstrap_free_heap.c: Copied from Source/WTF/wtf/FastTLS.h.
(compact_bootstrap_source_allocate_aligned):
(initialize_config):
- libpas/src/libpas/pas_compact_bootstrap_free_heap.h: Copied from Source/WTF/wtf/FastTLS.h.
- libpas/src/libpas/pas_compact_cartesian_tree_node_ptr.h: Copied from Source/WTF/wtf/FastTLS.h.
- libpas/src/libpas/pas_compact_heap_ptr.h: Copied from Source/WTF/wtf/FastTLS.h.
- libpas/src/libpas/pas_compact_heap_reservation.c: Added.
(pas_compact_heap_reservation_try_allocate):
- libpas/src/libpas/pas_compact_heap_reservation.h: Copied from Source/WTF/wtf/FastTLS.h.
- libpas/src/libpas/pas_compact_large_utility_free_heap.c: Copied from Source/WTF/wtf/FastTLS.h.
- libpas/src/libpas/pas_compact_large_utility_free_heap.h: Copied from Source/WTF/wtf/FastTLS.h.
- libpas/src/libpas/pas_compact_page_granule_use_count_ptr.h: Copied from Source/WTF/wtf/FastTLS.h.
- libpas/src/libpas/pas_compact_ptr.h: Added.
- libpas/src/libpas/pas_compact_segregated_biasing_directory_ptr.h: Copied from Source/WTF/wtf/FastTLS.h.
- libpas/src/libpas/pas_compact_segregated_global_size_directory_ptr.h: Copied from Source/WTF/wtf/FastTLS.h.
- libpas/src/libpas/pas_compact_segregated_heap_ptr.h: Copied from Source/WTF/wtf/FastTLS.h.
- libpas/src/libpas/pas_compact_segregated_shared_page_directory_ptr.h: Copied from Source/WTF/wtf/FastTLS.h.
- libpas/src/libpas/pas_compact_segregated_shared_view_ptr.h: Copied from Source/WTF/wtf/FastTLS.h.
- libpas/src/libpas/pas_compact_segregated_view.h: Copied from Source/WTF/wtf/FastTLS.h.
- libpas/src/libpas/pas_compact_skip_list_node_ptr.h: Copied from Source/WTF/wtf/FastTLS.h.
- libpas/src/libpas/pas_compact_skip_list_node_ptr_ptr.h: Copied from Source/WTF/wtf/FastTLS.h.
- libpas/src/libpas/pas_compact_subpage_map_entry_ptr.h: Copied from Source/WTF/wtf/FastTLS.h.
- libpas/src/libpas/pas_compact_tagged_atomic_ptr.h: Added.
- libpas/src/libpas/pas_compact_tagged_page_granule_use_count_ptr.h: Copied from Source/WTF/wtf/FastTLS.h.
- libpas/src/libpas/pas_compact_tagged_ptr.h: Added.
- libpas/src/libpas/pas_compact_tagged_unsigned_ptr.h: Copied from Source/WTF/wtf/FastTLS.h.
- libpas/src/libpas/pas_compact_unsigned_ptr.h: Copied from Source/WTF/wtf/FastTLS.h.
- libpas/src/libpas/pas_compute_summary_object_callbacks.c: Added.
(pas_compute_summary_live_object_callback):
(pas_compute_summary_live_object_callback_without_physical_sharing):
(config):
(pas_compute_summary_dead_object_callback):
(pas_compute_summary_dead_object_callback_without_physical_sharing):
- libpas/src/libpas/pas_compute_summary_object_callbacks.h: Copied from Source/WTF/wtf/FastTLS.h.
- libpas/src/libpas/pas_config.h: Added.
- libpas/src/libpas/pas_config_prefix.h: Copied from Source/WTF/wtf/FastTLS.h.
- libpas/src/libpas/pas_count_lookup_mode.h: Copied from Source/WTF/wtf/FastTLS.h.
(pas_count_lookup_mode_get_string):
- libpas/src/libpas/pas_create_basic_heap_page_caches_with_reserved_memory.c: Added.
(pas_create_basic_heap_page_caches_with_reserved_memory):
- libpas/src/libpas/pas_create_basic_heap_page_caches_with_reserved_memory.h: Copied from Source/WTF/wtf/FastTLS.h.
- libpas/src/libpas/pas_deallocate.c: Added.
(pas_try_deallocate_known_large):
(pas_deallocate_known_large):
(pas_try_deallocate_slow):
(deallocate_segregated):
(pas_try_deallocate_slow_no_cache):
- libpas/src/libpas/pas_deallocate.h: Added.
(pas_deallocate_known_segregated_impl):
(pas_deallocate_known_segregated):
(pas_try_deallocate_not_small):
(pas_try_deallocate_impl):
(pas_try_deallocate):
(pas_deallocate):
- libpas/src/libpas/pas_deallocation_mode.h: Copied from Source/WTF/wtf/FastTLS.h.
(pas_deallocation_mode_get_string):
- libpas/src/libpas/pas_deallocator.h: Copied from Source/WTF/wtf/FastTLS.h.
- libpas/src/libpas/pas_deallocator_scavenge_action.h: Copied from Source/WTF/wtf/FastTLS.h.
(pas_deallocator_scavenge_action_get_string):
- libpas/src/libpas/pas_debug_heap.h: Added.
(pas_debug_heap_is_enabled):
(pas_debug_heap_malloc):
(pas_debug_heap_memalign):
(pas_debug_heap_realloc):
(pas_debug_heap_free):
- libpas/src/libpas/pas_debug_spectrum.c: Added.
(pas_debug_spectrum_add):
(pas_debug_spectrum_dump):
(pas_debug_spectrum_reset):
- libpas/src/libpas/pas_debug_spectrum.h: Copied from Source/WTF/wtf/FastTLS.h.
- libpas/src/libpas/pas_deferred_decommit_log.c: Added.
(pas_deferred_decommit_log_construct):
(pas_deferred_decommit_log_destruct):
(already_holds_lock):
(pas_deferred_decommit_log_lock_for_adding):
(pas_deferred_decommit_log_add):
(pas_deferred_decommit_log_add_already_locked):
(pas_deferred_decommit_log_add_maybe_locked):
(pas_deferred_decommit_log_unlock_after_aborted_add):
(decommit_all):
(pas_deferred_decommit_log_decommit_all):
(pas_deferred_decommit_log_pretend_to_decommit_all):
- libpas/src/libpas/pas_deferred_decommit_log.h: Added.
- libpas/src/libpas/pas_designated_intrinsic_heap.c: Added.
(set_up_range):
(pas_designated_intrinsic_heap_initialize):
- libpas/src/libpas/pas_designated_intrinsic_heap.h: Copied from Source/WTF/wtf/FastTLS.h.
- libpas/src/libpas/pas_designated_intrinsic_heap_inlines.h: Added.
(pas_designated_intrinsic_heap_num_allocator_indices):
(pas_designated_index_result_create_failure):
(pas_designated_index_result_create_success):
(pas_designated_intrinsic_heap_num_designated_indices):
(pas_designated_intrinsic_heap_designated_index):
- libpas/src/libpas/pas_dyld_state.c: Added.
(pas_dyld_is_libsystem_initialized):
- libpas/src/libpas/pas_dyld_state.h: Copied from Source/WTF/wtf/FastTLS.h.
- libpas/src/libpas/pas_dynamic_primitive_heap_map.c: Added.
(pas_dynamic_primitive_heap_map_find_slow):
- libpas/src/libpas/pas_dynamic_primitive_heap_map.h: Added.
(pas_dynamic_primitive_heap_map_heaps_for_size_table_entry_create_empty):
(pas_dynamic_primitive_heap_map_heaps_for_size_table_entry_create_deleted):
(pas_dynamic_primitive_heap_map_heaps_for_size_table_entry_is_empty_or_deleted):
(pas_dynamic_primitive_heap_map_heaps_for_size_table_entry_is_empty):
(pas_dynamic_primitive_heap_map_heaps_for_size_table_entry_is_deleted):
(pas_dynamic_primitive_heap_map_heaps_for_size_table_entry_get_key):
(pas_dynamic_primitive_heap_map_heaps_for_size_table_key_get_hash):
(pas_dynamic_primitive_heap_map_heaps_for_size_table_key_is_equal):
(pas_dynamic_primitive_heap_map_hash):
(pas_dynamic_primitive_heap_map_find):
- libpas/src/libpas/pas_ensure_heap_forced_into_reserved_memory.c: Copied from Source/WTF/wtf/FastTLS.h.
(pas_ensure_heap_forced_into_reserved_memory):
- libpas/src/libpas/pas_ensure_heap_forced_into_reserved_memory.h: Copied from Source/WTF/wtf/FastTLS.h.
- libpas/src/libpas/pas_ensure_heap_with_page_caches.c: Copied from Source/WTF/wtf/FastTLS.h.
(pas_ensure_heap_with_page_caches):
- libpas/src/libpas/pas_ensure_heap_with_page_caches.h: Copied from Source/WTF/wtf/FastTLS.h.
- libpas/src/libpas/pas_enumerable_page_malloc.c: Copied from Source/WTF/wtf/FastTLS.h.
(pas_enumerable_page_malloc_try_allocate_without_deallocating_padding):
- libpas/src/libpas/pas_enumerable_page_malloc.h: Copied from Source/WTF/wtf/FastTLS.h.
- libpas/src/libpas/pas_enumerable_range_list.c: Added.
(pas_enumerable_range_list_append):
(pas_enumerable_range_list_iterate):
(pas_enumerable_range_list_iterate_remote):
- libpas/src/libpas/pas_enumerable_range_list.h: Added.
- libpas/src/libpas/pas_enumerate_bitfit_heaps.c: Added.
(view_callback):
(enumerate_bitfit_directory):
(enumerate_bitfit_heap_callback):
(pas_enumerate_bitfit_heaps):
- libpas/src/libpas/pas_enumerate_bitfit_heaps.h: Copied from Source/WTF/wtf/FastTLS.h.
- libpas/src/libpas/pas_enumerate_initially_unaccounted_pages.c: Added.
(range_list_iterate_add_unaccounted_callback):
(range_list_iterate_exclude_accounted_callback):
(pas_enumerate_initially_unaccounted_pages):
- libpas/src/libpas/pas_enumerate_initially_unaccounted_pages.h: Copied from Source/WTF/wtf/FastTLS.h.
- libpas/src/libpas/pas_enumerate_large_heaps.c: Added.
(range_list_iterate_add_large_payload_callback):
(record_span):
(large_map_hashtable_entry_callback):
(small_large_map_hashtable_entry_callback):
(tiny_large_map_second_level_hashtable_entry_callback):
(tiny_large_map_hashtable_entry_callback):
(pas_enumerate_large_heaps):
- libpas/src/libpas/pas_enumerate_large_heaps.h: Copied from Source/WTF/wtf/FastTLS.h.
- libpas/src/libpas/pas_enumerate_segregated_heaps.c: Added.
(local_allocator_map_entry_create_empty):
(local_allocator_map_entry_create_deleted):
(local_allocator_map_entry_is_empty_or_deleted):
(local_allocator_map_entry_is_empty):
(local_allocator_map_entry_is_deleted):
(local_allocator_map_entry_get_key):
(local_allocator_map_key_get_hash):
(local_allocator_map_key_is_equal):
(for_each_view):
(collect_shared_page_directories_shared_page_directory_callback):
(collect_shared_page_directories_heap_callback):
(record_page_payload_and_meta):
(record_page_objects):
(enumerate_exclusive_view):
(enumerate_shared_view):
(enumerate_partial_view):
(shared_page_directory_view_callback):
(size_directory_view_callback):
(enumerate_segregated_heap_callback):
(consider_allocator):
(pas_enumerate_segregated_heaps):
- libpas/src/libpas/pas_enumerate_segregated_heaps.h: Copied from Source/WTF/wtf/FastTLS.h.
- libpas/src/libpas/pas_enumerate_unaccounted_pages_as_meta.c: Added.
(pas_enumerate_unaccounted_pages_as_meta):
- libpas/src/libpas/pas_enumerate_unaccounted_pages_as_meta.h: Copied from Source/WTF/wtf/FastTLS.h.
- libpas/src/libpas/pas_enumerator.c: Added.
(allocate):
(deallocate):
(pas_enumerator_create):
(pas_enumerator_destroy):
(pas_enumerator_allocate):
(pas_enumerator_read_compact):
(pas_enumerator_read):
(pas_enumerator_add_unaccounted_pages):
(pas_enumerator_exclude_accounted_page):
(pas_enumerator_exclude_accounted_pages):
(pas_enumerator_record):
(record_payload_span):
(pas_enumerator_record_page_payload_and_meta):
(pas_enumerator_for_each_heap):
(pas_enumerator_enumerate_all):
- libpas/src/libpas/pas_enumerator.h: Added.
(pas_enumerator_record_kind_get_string):
- libpas/src/libpas/pas_enumerator_internal.h: Added.
- libpas/src/libpas/pas_enumerator_region.c: Added.
(pas_enumerator_region_allocate):
(pas_enumerator_region_destroy):
- libpas/src/libpas/pas_enumerator_region.h: Copied from Source/WTF/wtf/FastTLS.h.
- libpas/src/libpas/pas_epoch.c: Copied from Source/WTF/wtf/FastTLS.h.
(pas_get_epoch):
- libpas/src/libpas/pas_epoch.h: Copied from Source/WTF/wtf/FastTLS.h.
- libpas/src/libpas/pas_exclusive_view_template_memo_table.c: Copied from Source/WTF/wtf/FastTLS.h.
- libpas/src/libpas/pas_exclusive_view_template_memo_table.h: Added.
(pas_exclusive_view_template_memo_key_create):
(pas_exclusive_view_template_memo_entry_create_empty):
(pas_exclusive_view_template_memo_entry_create_deleted):
(pas_exclusive_view_template_memo_entry_is_empty_or_deleted):
(pas_exclusive_view_template_memo_entry_is_empty):
(pas_exclusive_view_template_memo_entry_is_deleted):
(pas_exclusive_view_template_memo_entry_get_key):
(pas_exclusive_view_template_memo_key_get_hash):
(pas_exclusive_view_template_memo_key_is_equal):
- libpas/src/libpas/pas_extended_gcd.c: Added.
(pas_extended_gcd):
- libpas/src/libpas/pas_extended_gcd.h: Copied from Source/WTF/wtf/FastTLS.h.
- libpas/src/libpas/pas_fast_large_free_heap.c: Added.
(key_compare_callback):
(get_x_key_callback):
(get_y_key_callback):
(initialize_cartesian_config):
(pas_fast_large_free_heap_construct):
(insert_node):
(remove_node):
(dump_heap):
(fast_find_first):
(fast_find_by_end):
(fast_read_cursor):
(fast_write_cursor):
(fast_merge):
(fast_remove):
(fast_append):
(fast_commit):
(fast_dump):
(fast_add_mapped_bytes):
(initialize_generic_heap_config):
(pas_fast_large_free_heap_try_allocate):
(pas_fast_large_free_heap_deallocate):
(pas_fast_large_free_heap_for_each_free):
(pas_fast_large_free_heap_get_num_free_bytes):
(pas_fast_large_free_heap_validate):
(pas_fast_large_free_heap_dump_to_printf):
- libpas/src/libpas/pas_fast_large_free_heap.h: Added.
(pas_fast_large_free_heap_get_num_mapped_bytes):
- libpas/src/libpas/pas_fast_megapage_cache.c: Added.
(table_set_by_index):
(pas_fast_megapage_cache_try_allocate):
- libpas/src/libpas/pas_fast_megapage_cache.h: Copied from Source/WTF/wtf/FastTLS.h.
- libpas/src/libpas/pas_fast_megapage_kind.h: Copied from Source/WTF/wtf/FastTLS.h.
(pas_fast_megapage_kind_get_string):
- libpas/src/libpas/pas_fast_megapage_table.c: Added.
(pas_fast_megapage_table_initialize_static):
(pas_fast_megapage_table_set_by_index):
- libpas/src/libpas/pas_fast_megapage_table.h: Added.
(pas_fast_megapage_table_get_by_index):
(pas_fast_megapage_table_get):
- libpas/src/libpas/pas_fast_path_allocation_result.h: Added.
(pas_fast_path_allocation_result_create):
(pas_fast_path_allocation_result_create_need_slow):
(pas_fast_path_allocation_result_create_out_of_memory):
(pas_fast_path_allocation_result_create_success):
(pas_fast_path_allocation_result_from_allocation_result):
(pas_fast_path_allocation_result_to_allocation_result):
- libpas/src/libpas/pas_fast_path_allocation_result_kind.h: Copied from Source/WTF/wtf/FastTLS.h.
(pas_fast_path_allocation_result_kind_get_string):
- libpas/src/libpas/pas_fast_tls.h: Added.
- libpas/src/libpas/pas_fd_stream.c: Copied from Source/WTF/wtf/FastTLS.h.
(fd_stream_vprintf):
(pas_fd_stream_vprintf):
- libpas/src/libpas/pas_fd_stream.h: Copied from Source/WTF/wtf/FastTLS.h.
- libpas/src/libpas/pas_first_level_tiny_large_map_entry.h: Added.
(pas_first_level_tiny_large_map_entry_create_empty):
(pas_first_level_tiny_large_map_entry_create_deleted):
(pas_first_level_tiny_large_map_entry_is_empty_or_deleted):
(pas_first_level_tiny_large_map_entry_is_empty):
(pas_first_level_tiny_large_map_entry_is_deleted):
(pas_first_level_tiny_large_map_entry_get_key):
(pas_first_level_tiny_large_map_key_get_hash):
(pas_first_level_tiny_large_map_key_is_equal):
- libpas/src/libpas/pas_found_bit_index.h: Copied from Source/WTF/wtf/FastTLS.h.
(pas_found_bit_index_create_empty):
(pas_found_bit_index_create):
- libpas/src/libpas/pas_found_index.h: Copied from Source/WTF/wtf/FastTLS.h.
(pas_found_index_create_empty):
(pas_found_index_create):
(pas_found_index_create_unsuccessful):
- libpas/src/libpas/pas_free_granules.c: Added.
(pas_free_granules_compute_and_mark_decommitted):
(pas_free_granules_unmark_decommitted):
(pas_free_granules_decommit_after_locking_range):
- libpas/src/libpas/pas_free_granules.h: Added.
(pas_free_granules_is_free):
- libpas/src/libpas/pas_free_mode.h: Copied from Source/WTF/wtf/FastTLS.h.
- libpas/src/libpas/pas_free_range_kind.h: Copied from Source/WTF/wtf/FastTLS.h.
(pas_free_range_kind_get_string):
- libpas/src/libpas/pas_full_alloc_bits.h: Copied from Source/WTF/wtf/FastTLS.h.
(pas_full_alloc_bits_create_empty):
(pas_full_alloc_bits_create):
- libpas/src/libpas/pas_full_alloc_bits_inlines.h: Added.
(pas_full_alloc_bits_create_for_exclusive):
(pas_full_alloc_bits_create_for_partial):
(pas_full_alloc_bits_create_for_view_and_directory):
(pas_full_alloc_bits_create_for_view):
- libpas/src/libpas/pas_generic_large_free_heap.h: Added.
(pas_generic_large_free_heap_merge_physical):
(pas_generic_large_free_heap_try_allocate_test_allocation_candidate):
(pas_generic_large_free_heap_try_allocate):
- libpas/src/libpas/pas_get_allocation_size.h: Added.
(pas_get_allocation_size):
- libpas/src/libpas/pas_get_heap.h: Added.
(pas_get_heap_known_segregated):
(pas_get_heap):
- libpas/src/libpas/pas_get_object_kind.h: Added.
(pas_get_object_kind):
- libpas/src/libpas/pas_get_page_base.h: Copied from Source/WTF/wtf/FastTLS.h.
(pas_get_page_base):
- libpas/src/libpas/pas_has_object.h: Copied from Source/WTF/wtf/FastTLS.h.
(pas_has_object):
- libpas/src/libpas/pas_hashtable.h: Added.
- libpas/src/libpas/pas_heap.c: Added.
(pas_heap_create):
(pas_heap_get_type_size):
(pas_heap_get_num_free_bytes):
(for_each_live_object_small_object_callback):
(for_each_live_object_large_object_callback):
(pas_heap_for_each_live_object):
(pas_heap_compute_summary):
(pas_heap_reset_heap_ref):
(pas_heap_ensure_size_directory_for_count_slow):
- libpas/src/libpas/pas_heap.h: Added.
(pas_heap_for_large_heap):
(pas_heap_for_segregated_heap):
- libpas/src/libpas/pas_heap_config.c: Copied from Source/WTF/wtf/FastTLS.h.
(pas_heap_config_activate):
- libpas/src/libpas/pas_heap_config.h: Added.
(pas_heap_config_segregated_page_config_ptr_for_variant):
(pas_heap_config_bitfit_page_config_ptr_for_variant):
(pas_heap_config_segregated_page_config_for_variant):
(pas_heap_config_bitfit_page_config_for_variant):
- libpas/src/libpas/pas_heap_config_inlines.h: Added.
- libpas/src/libpas/pas_heap_config_kind.c: Added.
(pas_heap_config_kind_for_each):
- libpas/src/libpas/pas_heap_config_kind.def: Added.
- libpas/src/libpas/pas_heap_config_kind.h: Added.
(pas_heap_config_kind_get_string):
(pas_heap_config_kind_get_config):
(pas_heap_config_kind_is_active):
- libpas/src/libpas/pas_heap_config_utils.c: Added.
(pas_heap_config_utils_null_activate):
(pas_heap_config_utils_for_each_shared_page_directory):
(pas_heap_config_utils_for_each_shared_page_directory_remote):
(pas_heap_config_utils_allocate_aligned):
(pas_heap_config_utils_prepare_to_enumerate):
- libpas/src/libpas/pas_heap_config_utils.h: Added.
- libpas/src/libpas/pas_heap_config_utils_inlines.h: Added.
- libpas/src/libpas/pas_heap_for_config.c: Added.
(pas_heap_for_config_allocate):
(pas_heap_for_page_config_kind_allocate):
(pas_heap_for_page_config_allocate):
(pas_heap_for_config_allocate_with_alignment):
(pas_heap_for_page_config_allocate_with_alignment):
(pas_heap_for_config_allocate_with_manual_alignment):
(pas_heap_for_page_config_kind_allocate_with_manual_alignment):
(pas_heap_for_page_config_allocate_with_manual_alignment):
(pas_heap_for_config_deallocate):
(pas_heap_for_page_config_kind_deallocate):
(pas_heap_for_page_config_deallocate):
- libpas/src/libpas/pas_heap_for_config.h: Added.
- libpas/src/libpas/pas_heap_inlines.h: Added.
(pas_heap_ensure_size_directory_for_count):
- libpas/src/libpas/pas_heap_kind.h: Copied from Source/WTF/wtf/FastTLS.h.
(pas_heap_kind_get_string):
- libpas/src/libpas/pas_heap_lock.c: Copied from Source/WTF/wtf/FastTLS.h.
- libpas/src/libpas/pas_heap_lock.h: Copied from Source/WTF/wtf/FastTLS.h.
- libpas/src/libpas/pas_heap_page_provider.h: Copied from Source/WTF/wtf/FastTLS.h.
- libpas/src/libpas/pas_heap_ref.c: Copied from Source/WTF/wtf/FastTLS.h.
(pas_ensure_heap_slow):
- libpas/src/libpas/pas_heap_ref.h: Added.
(pas_ensure_heap):
- libpas/src/libpas/pas_heap_ref_kind.h: Copied from Source/WTF/wtf/FastTLS.h.
(pas_heap_ref_kind_get_string):
- libpas/src/libpas/pas_heap_ref_prefix.h: Copied from Source/WTF/wtf/FastTLS.h.
- libpas/src/libpas/pas_heap_runtime_config.h: Copied from Source/WTF/wtf/FastTLS.h.
- libpas/src/libpas/pas_heap_summary.c: Added.
(pas_heap_summary_validate):
(pas_heap_summary_dump):
- libpas/src/libpas/pas_heap_summary.h: Added.
(pas_heap_summary_create_empty):
(pas_heap_summary_is_empty):
(pas_heap_summary_add):
(pas_heap_summary_committed_objects):
(pas_heap_summary_total):
(pas_heap_summary_fragmentation):
- libpas/src/libpas/pas_heap_table.c: Copied from Source/WTF/wtf/FastTLS.h.
(pas_heap_table_try_allocate_index):
- libpas/src/libpas/pas_heap_table.h: Added.
(pas_heap_table_has_index):
(pas_heap_table_get_index):
- libpas/src/libpas/pas_heap_table_state.h: Copied from Source/WTF/wtf/FastTLS.h.
(pas_heap_table_state_get_string):
- libpas/src/libpas/pas_immortal_heap.c: Added.
(bump_is_ok):
(pas_immortal_heap_allocate_with_manual_alignment):
(pas_immortal_heap_allocate_with_alignment):
(pas_immortal_heap_allocate):
(pas_immortal_heap_hold_lock_and_allocate):
(pas_immortal_heap_allocate_with_heap_lock_hold_mode):
(pas_immortal_heap_allocate_with_alignment_and_heap_lock_hold_mode):
- libpas/src/libpas/pas_immortal_heap.h: Added.
- libpas/src/libpas/pas_immutable_vector.h: Added.
- libpas/src/libpas/pas_internal_config.h: Added.
- libpas/src/libpas/pas_intrinsic_allocation_result.h: Added.
(pas_intrinsic_allocation_result_create_empty):
(pas_intrinsic_allocation_result_create):
(pas_intrinsic_allocation_result_identity):
(pas_intrinsic_allocation_result_zero):
(pas_intrinsic_allocation_result_set_errno):
(pas_intrinsic_allocation_result_crash_on_error):
- libpas/src/libpas/pas_intrinsic_heap_support.h: Added.
- libpas/src/libpas/pas_large_free.h: Added.
(pas_large_free_create_empty):
(pas_large_free_is_empty):
(pas_large_free_size):
(pas_large_free_offset_in_type_at_end):
- libpas/src/libpas/pas_large_free_heap_config.h: Copied from Source/WTF/wtf/FastTLS.h.
- libpas/src/libpas/pas_large_free_heap_declarations.def: Copied from Source/WTF/wtf/FastTLS.h.
- libpas/src/libpas/pas_large_free_heap_deferred_commit_log.c: Added.
(pas_large_free_heap_deferred_commit_log_construct):
(pas_large_free_heap_deferred_commit_log_destruct):
(pas_large_free_heap_deferred_commit_log_add):
(dump_large_commit):
(commit):
(commit_all):
(pas_large_free_heap_deferred_commit_log_commit_all):
(pas_large_free_heap_deferred_commit_log_pretend_to_commit_all):
- libpas/src/libpas/pas_large_free_heap_deferred_commit_log.h: Added.
- libpas/src/libpas/pas_large_free_heap_definitions.def: Added.
- libpas/src/libpas/pas_large_free_heap_helpers.c: Added.
(large_utility_aligned_allocator):
(initialize_config):
(pas_large_free_heap_helpers_try_allocate_with_alignment):
(pas_large_free_heap_helpers_deallocate):
(pas_large_free_heap_helpers_compute_summary):
- libpas/src/libpas/pas_large_free_heap_helpers.h: Added.
- libpas/src/libpas/pas_large_free_inlines.h: Added.
(pas_large_free_create_merged):
(pas_large_free_split):
(pas_large_free_allocation_candidate):
(pas_large_free_usable_space):
(pas_large_allocation_result_create_empty):
(pas_large_free_allocate):
(pas_large_free_create_merged_for_sure):
(pas_large_free_can_merge):
(pas_large_allocation_result_as_allocation_result):
- libpas/src/libpas/pas_large_free_visitor.h: Copied from Source/WTF/wtf/FastTLS.h.
- libpas/src/libpas/pas_large_heap.c: Added.
(pas_large_heap_construct):
(aligned_allocator):
(initialize_config):
(pas_large_heap_try_allocate):
(pas_large_heap_try_deallocate):
(pas_large_heap_try_shrink):
(pas_large_heap_shove_into_free):
(for_each_live_object_entry_callback):
(pas_large_heap_for_each_live_object):
(pas_large_heap_for_object):
(pas_large_heap_get_num_free_bytes):
(compute_summary_live_object_callback):
(pas_large_heap_compute_summary):
- libpas/src/libpas/pas_large_heap.h: Added.
- libpas/src/libpas/pas_large_heap_physical_page_sharing_cache.c: Added.
(large_aligned_allocator):
(pas_large_heap_physical_page_sharing_cache_construct):
(pas_large_heap_physical_page_sharing_cache_try_allocate_with_alignment):
- libpas/src/libpas/pas_large_heap_physical_page_sharing_cache.h: Added.
- libpas/src/libpas/pas_large_map.c: Added.
(pas_large_map_find):
(pas_large_map_add):
(pas_large_map_take):
(pas_large_map_for_each_entry):
- libpas/src/libpas/pas_large_map.h: Added.
- libpas/src/libpas/pas_large_map_entry.h: Added.
(pas_large_map_entry_create_empty):
(pas_large_map_entry_create_deleted):
(pas_large_map_entry_is_empty_or_deleted):
(pas_large_map_entry_is_empty):
(pas_large_map_entry_is_deleted):
(pas_large_map_entry_get_key):
(pas_large_map_key_get_hash):
(pas_large_map_key_is_equal):
- libpas/src/libpas/pas_large_sharing_pool.c: Added.
(node_compare_callback):
(inner_key_compare_callback):
(update_min_epoch):
(validate_min_heap):
(validate_node):
(validate_node_if_asserting_aggressively):
(create_node):
(create_and_insert):
(boot_tree):
(destroy_node):
(remove_from_min_heap):
(remove_and_destroy):
(predecessor):
(successor):
(states_match):
(is_eligible):
(belongs_in_min_heap):
(update_min_heap):
(split_node_and_get_right_impl):
(split_node_and_get_right):
(split_node_and_get_left):
(merge_if_possible):
(node_containing):
(min_node_for_range):
(max_node_for_range):
(splat_live_bytes):
(should_do_commit_stuff_to):
(splat_command_get_string):
(splat_command_get_free_mode):
(dump_large_commit):
(try_splat_impl):
(try_splat):
(splat):
(pas_large_sharing_pool_boot_free):
(pas_large_sharing_pool_free):
(pas_large_sharing_pool_allocate_and_commit):
(pas_large_sharing_pool_decommit_least_recently_used):
(pas_large_sharing_pool_validate):
(pas_large_sharing_pool_compute_summary):
(pas_large_sharing_pool_for_each):
- libpas/src/libpas/pas_large_sharing_pool.h: Added.
(pas_large_sharing_node_heap_compare):
(pas_large_sharing_node_heap_get_index):
(pas_large_sharing_node_heap_set_index):
- libpas/src/libpas/pas_large_sharing_pool_epoch_update_mode.h: Copied from Source/WTF/wtf/FastTLS.h.
(pas_large_sharing_pool_epoch_update_mode_get_string):
- libpas/src/libpas/pas_large_utility_free_heap.c: Copied from Source/WTF/wtf/FastTLS.h.
- libpas/src/libpas/pas_large_utility_free_heap.h: Copied from Source/WTF/wtf/FastTLS.h.
- libpas/src/libpas/pas_line_word_config.h: Added.
(pas_line_word_config_count_low_zeroes_8_bit):
(pas_line_word_config_count_high_zeroes_8_bit):
(pas_line_word_config_count_low_zeroes_16_bit):
(pas_line_word_config_count_high_zeroes_16_bit):
(pas_line_word_config_count_low_zeroes_32_bit):
(pas_line_word_config_count_high_zeroes_32_bit):
(pas_line_word_config_count_low_zeroes_64_bit):
(pas_line_word_config_count_high_zeroes_64_bit):
(pas_line_word_config_construct):
- libpas/src/libpas/pas_list_direction.h: Copied from Source/WTF/wtf/FastTLS.h.
(pas_list_direction_get_string):
(pas_list_direction_invert):
- libpas/src/libpas/pas_local_allocator.c: Added.
(pas_local_allocator_construct):
(pas_local_allocator_destruct):
(pas_local_allocator_reset):
(pas_local_allocator_move):
(pas_local_allocator_refill_with_bitfit):
(pas_local_allocator_finish_refill_with_bitfit):
(stop_impl):
(pas_local_allocator_stop):
(pas_local_allocator_scavenge):
- libpas/src/libpas/pas_local_allocator.h: Added.
(pas_local_allocator_is_null):
(pas_local_allocator_is_active):
(pas_local_allocator_has_bitfit):
(pas_local_allocator_get_bitfit):
(pas_local_allocator_page_boundary):
(pas_local_allocator_alignment):
- libpas/src/libpas/pas_local_allocator_config_kind.h: Added.
(pas_local_allocator_config_kind_is_primordial_partial):
(pas_local_allocator_config_kind_is_bitfit):
(pas_local_allocator_config_kind_create_normal):
(pas_local_allocator_config_kind_create_primordial_partial):
(pas_local_allocator_config_kind_create_bitfit):
(pas_local_allocator_config_kind_get_segregated_page_config_kind):
(pas_local_allocator_config_kind_get_bitfit_page_config_kind):
(pas_local_allocator_config_kind_get_string):
- libpas/src/libpas/pas_local_allocator_inlines.h: Added.
(pas_local_allocator_reset_impl):
(pas_local_allocator_set_up_bump):
(pas_local_allocator_scan_bits_to_set_up_use_counts_bits_source):
(pas_local_allocator_scan_bits_to_set_up_use_counts_bit_callback):
(pas_local_allocator_scan_bits_to_set_up_free_bits):
(pas_local_allocator_set_up_free_bits):
(pas_local_allocator_make_bump):
(pas_local_allocator_prepare_to_allocate):
(pas_local_allocator_set_up_primordial_bump):
(pas_local_allocator_start_allocating_in_primordial_partial_view):
(pas_local_allocator_bless_primordial_partial_view_before_stopping):
(pas_local_allocator_try_allocate_in_primordial_partial_view):
(pas_local_allocator_refill_with_known_config):
(pas_local_allocator_return_memory_to_page_bits_source):
(pas_local_allocator_return_memory_to_page_set_bit_callback):
(pas_local_allocator_return_memory_to_page):
(pas_local_allocator_try_allocate_with_free_bits):
(pas_local_allocator_try_allocate_inline_cases):
(pas_local_allocator_try_allocate_small_segregated_slow_impl):
(pas_local_allocator_try_allocate_small_segregated_slow):
(pas_local_allocator_try_allocate_out_of_line_cases):
(pas_local_allocator_try_allocate_slow_impl):
(pas_local_allocator_try_allocate_slow):
(pas_local_allocator_try_allocate):
- libpas/src/libpas/pas_local_allocator_line.h: Added.
(pas_local_allocator_line_fits_without_shift):
(pas_local_allocator_line_decode):
(pas_local_allocator_line_encode):
(pas_local_allocator_line_remaining):
(pas_local_allocator_line_set_remaining):
(pas_local_allocator_line_payload_end_delta):
(pas_local_allocator_line_set_payload_end_delta):
- libpas/src/libpas/pas_local_allocator_refill_mode.h: Copied from Source/WTF/wtf/FastTLS.h.
- libpas/src/libpas/pas_local_allocator_result.h: Copied from Source/WTF/wtf/FastTLS.h.
(pas_local_allocator_result_create_failure):
(pas_local_allocator_result_create_success):
- libpas/src/libpas/pas_lock.c: Copied from Source/WTF/wtf/FastTLS.h.
(pas_lock_lock_slow):
- libpas/src/libpas/pas_lock.h: Added.
(pas_lock_construct):
(pas_lock_construct_disabled):
(pas_lock_lock):
(pas_lock_try_lock):
(pas_lock_unlock):
(pas_lock_assert_held):
(pas_lock_testing_assert_held):
(pas_lock_lock_with_mode):
(pas_lock_switch_with_mode):
(pas_lock_switch):
(pas_lock_lock_conditionally):
(pas_lock_unlock_conditionally):
(pas_lock_for_switch_conditionally):
(pas_lock_switch_conditionally):
- libpas/src/libpas/pas_lock_free_read_hashtable.h: Added.
(if):
- libpas/src/libpas/pas_lock_free_read_ptr_ptr_hashtable.c: Added.
(pas_lock_free_read_ptr_ptr_hashtable_set):
- libpas/src/libpas/pas_lock_free_read_ptr_ptr_hashtable.h: Added.
(pas_lock_free_read_ptr_ptr_hashtable_find):
(pas_lock_free_read_ptr_ptr_hashtable_size):
- libpas/src/libpas/pas_log.c: Added.
(pas_vlog_fd):
(pas_log_fd):
(pas_vlog):
(pas_log):
(pas_start_crash_logging):
- libpas/src/libpas/pas_log.h: Copied from Source/WTF/wtf/FastTLS.h.
- libpas/src/libpas/pas_magazine.c: Copied from Source/WTF/wtf/FastTLS.h.
(pas_magazine_create):
- libpas/src/libpas/pas_magazine.h: Copied from Source/WTF/wtf/FastTLS.h.
- libpas/src/libpas/pas_medium_megapage_cache.c: Copied from Source/WTF/wtf/FastTLS.h.
(pas_medium_megapage_cache_try_allocate):
- libpas/src/libpas/pas_medium_megapage_cache.h: Copied from Source/WTF/wtf/FastTLS.h.
- libpas/src/libpas/pas_megapage_cache.c: Added.
(megapage_cache_allocate_aligned):
(pas_megapage_cache_construct):
(pas_megapage_cache_try_allocate):
- libpas/src/libpas/pas_megapage_cache.h: Added.
- libpas/src/libpas/pas_min_heap.h: Added.
- libpas/src/libpas/pas_monotonic_time.c: Copied from Source/WTF/wtf/FastTLS.h.
(get_timebase_info):
(pas_get_current_monotonic_time_nanoseconds):
- libpas/src/libpas/pas_monotonic_time.h: Copied from Source/WTF/wtf/FastTLS.h.
- libpas/src/libpas/pas_mutation_count.h: Added.
(pas_mutation_count_start_mutating):
(pas_mutation_count_stop_mutating):
(pas_mutation_count_is_mutating):
(pas_mutation_count_matches):
(pas_mutation_count_depend):
- libpas/src/libpas/pas_object_kind.h: Added.
(pas_object_kind_get_string):
(pas_object_kind_for_segregated_variant):
(pas_object_kind_for_bitfit_variant):
- libpas/src/libpas/pas_object_size_mode.h: Added.
(pas_object_size_mode_get_string):
- libpas/src/libpas/pas_page_base.c: Added.
(pas_page_base_get_config):
(pas_page_base_get_granule_use_counts):
(pas_page_base_compute_committed_when_owned):
(pas_page_base_is_empty):
(pas_page_base_add_free_range):
- libpas/src/libpas/pas_page_base.h: Added.
(pas_page_base_construct):
(pas_page_base_get_kind):
(pas_page_base_get_config_kind):
(pas_page_base_is_segregated):
(pas_page_base_get_segregated):
(pas_page_base_is_bitfit):
(pas_page_base_get_bitfit):
(pas_page_base_index_of_object_at_offset_from_page_boundary):
(pas_page_base_object_offset_from_page_boundary_at_index):
(pas_page_base_boundary):
(pas_page_base_boundary_or_null):
(pas_page_base_for_boundary):
(pas_page_base_for_boundary_or_null):
(pas_page_base_boundary_for_address_and_page_config):
(pas_page_base_for_address_and_page_config):
- libpas/src/libpas/pas_page_base_config.h: Added.
(pas_page_base_config_min_align):
(pas_page_base_config_object_payload_end_offset_from_boundary):
(pas_page_base_config_num_granule_bytes):
(pas_page_base_config_get_config_kind):
(pas_page_base_config_is_segregated):
(pas_page_base_config_is_bitfit):
(pas_page_base_config_get_segregated):
(pas_page_base_config_get_bitfit):
- libpas/src/libpas/pas_page_base_config_inlines.h: Copied from Source/WTF/wtf/FastTLS.h.
(pas_page_base_config_is_utility):
- libpas/src/libpas/pas_page_base_config_utils.h: Added.
- libpas/src/libpas/pas_page_base_config_utils_inlines.h: Added.
- libpas/src/libpas/pas_page_base_inlines.h: Added.
(pas_page_base_free_granule_uses_in_range_action):
(pas_page_base_free_granule_uses_in_range):
- libpas/src/libpas/pas_page_config_kind.h: Copied from Source/WTF/wtf/FastTLS.h.
(pas_page_config_kind_get_string):
- libpas/src/libpas/pas_page_granule_use_count.h: Added.
(pas_page_granule_get_indices):
(pas_page_granule_for_each_use_in_range):
(pas_page_granule_use_count_increment):
(pas_page_granule_increment_uses_for_range):
- libpas/src/libpas/pas_page_header_placement_mode.h: Copied from Source/WTF/wtf/FastTLS.h.
(pas_page_header_placement_mode_get_string):
- libpas/src/libpas/pas_page_header_table.c: Added.
(pas_page_header_table_add):
(pas_page_header_table_remove):
- libpas/src/libpas/pas_page_header_table.h: Added.
(pas_page_header_table_hash):
(pas_page_header_table_get_boundary_ptr):
(pas_page_header_table_get_boundary):
(pas_page_header_table_get_for_boundary):
(pas_page_header_table_get_for_address):
- libpas/src/libpas/pas_page_kind.h: Added.
(pas_page_kind_get_string):
(pas_page_kind_get_config_kind):
(pas_page_kind_get_segregated_variant):
(pas_page_kind_get_bitfit_variant):
- libpas/src/libpas/pas_page_malloc.c: Added.
(pas_page_malloc_alignment_slow):
(pas_page_malloc_alignment_shift_slow):
(pas_page_malloc_try_allocate_without_deallocating_padding):
(pas_page_malloc_commit):
(pas_page_malloc_decommit):
(pas_page_malloc_deallocate):
- libpas/src/libpas/pas_page_malloc.h: Added.
(pas_page_malloc_alignment):
(pas_page_malloc_alignment_shift):
- libpas/src/libpas/pas_page_sharing_mode.h: Copied from Source/WTF/wtf/FastTLS.h.
(pas_page_sharing_mode_does_sharing):
(pas_page_sharing_mode_get_string):
- libpas/src/libpas/pas_page_sharing_participant.c: Added.
(pas_page_sharing_participant_create):
(pas_page_sharing_participant_get_payload):
(pas_page_sharing_participant_payload_construct):
(pas_page_sharing_participant_payload_with_use_epoch_construct):
(pas_page_sharing_participant_get_use_epoch):
(pas_page_sharing_participant_set_parent_pool):
(pas_page_sharing_participant_get_parent_pool):
(pas_page_sharing_participant_is_eligible):
(pas_page_sharing_participant_take_least_recently_used):
- libpas/src/libpas/pas_page_sharing_participant.h: Added.
(pas_page_sharing_participant_get_ptr):
(pas_page_sharing_participant_get_kind):
- libpas/src/libpas/pas_page_sharing_participant_kind.h: Added.
(pas_page_sharing_participant_kind_select_for_segregated_directory):
(pas_page_sharing_participant_kind_get_string):
- libpas/src/libpas/pas_page_sharing_pool.c: Added.
(verify_participants):
(verify_min_heap):
(dump_min_heap):
(pas_page_sharing_pool_construct):
(pas_page_sharing_pool_add_at_index):
(pas_page_sharing_pool_add):
(get_current_participant):
(take_from):
(pas_page_sharing_pool_take_least_recently_used):
(atomic_add_balance):
(pas_physical_page_sharing_pool_take):
(pas_physical_page_sharing_pool_scavenge):
(pas_physical_page_sharing_pool_take_later):
(pas_physical_page_sharing_pool_give_back):
(pas_physical_page_sharing_pool_take_for_page_config):
(pas_bias_page_sharing_pool_take):
(pas_page_sharing_pool_did_create_delta):
(pas_page_sharing_pool_verify):
(pas_page_sharing_pool_has_delta):
(pas_page_sharing_pool_has_current_participant):
- libpas/src/libpas/pas_page_sharing_pool.h: Added.
(pas_page_sharing_participant_compare):
(pas_page_sharing_participant_get_index):
(pas_page_sharing_participant_set_index):
(pas_page_sharing_pool_num_participants):
(pas_page_sharing_pool_get_participant):
- libpas/src/libpas/pas_page_sharing_pool_take_result.h: Copied from Source/WTF/wtf/FastTLS.h.
(pas_page_sharing_pool_take_result_get_string):
- libpas/src/libpas/pas_payload_reservation_page_list.c: Copied from Source/WTF/wtf/FastTLS.h.
(pas_payload_reservation_page_list_append):
- libpas/src/libpas/pas_payload_reservation_page_list.h: Copied from Source/WTF/wtf/FastTLS.h.
- libpas/src/libpas/pas_physical_memory_synchronization_style.h: Copied from Source/WTF/wtf/FastTLS.h.
(pas_physical_memory_synchronization_style_get_string):
- libpas/src/libpas/pas_physical_memory_transaction.c: Added.
(pas_physical_memory_transaction_construct):
(pas_physical_memory_transaction_begin):
(pas_physical_memory_transaction_end):
(pas_physical_memory_transaction_did_fail_to_acquire_lock):
- libpas/src/libpas/pas_physical_memory_transaction.h: Added.
- libpas/src/libpas/pas_primitive_heap_ref.c: Copied from Source/WTF/wtf/FastTLS.h.
- libpas/src/libpas/pas_primitive_heap_ref.h: Copied from Source/WTF/wtf/FastTLS.h.
- libpas/src/libpas/pas_promote_intrinsic_heap.h: Copied from Source/WTF/wtf/FastTLS.h.
- libpas/src/libpas/pas_ptr_hash_map.h: Added.
(pas_ptr_hash_map_entry_create_empty):
(pas_ptr_hash_map_entry_create_deleted):
(pas_ptr_hash_map_entry_is_empty_or_deleted):
(pas_ptr_hash_map_entry_is_empty):
(pas_ptr_hash_map_entry_is_deleted):
(pas_ptr_hash_map_entry_get_key):
(pas_ptr_hash_map_key_get_hash):
(pas_ptr_hash_map_key_is_equal):
- libpas/src/libpas/pas_ptr_hash_set.h: Added.
(pas_ptr_hash_set_entry_create_empty):
(pas_ptr_hash_set_entry_create_deleted):
(pas_ptr_hash_set_entry_is_empty_or_deleted):
(pas_ptr_hash_set_entry_is_empty):
(pas_ptr_hash_set_entry_is_deleted):
(pas_ptr_hash_set_entry_get_key):
(pas_ptr_hash_set_key_get_hash):
(pas_ptr_hash_set_key_is_equal):
- libpas/src/libpas/pas_ptr_min_heap.h: Copied from Source/WTF/wtf/FastTLS.h.
(pas_ptr_min_heap_compare):
(pas_ptr_min_heap_get_index):
(pas_ptr_min_heap_set_index):
- libpas/src/libpas/pas_ptr_worklist.c: Added.
(pas_ptr_worklist_construct):
(pas_ptr_worklist_destruct):
(pas_ptr_worklist_push):
(pas_ptr_worklist_pop):
- libpas/src/libpas/pas_ptr_worklist.h: Copied from Source/WTF/wtf/FastTLS.h.
- libpas/src/libpas/pas_race_test_hooks.c: Copied from Source/WTF/wtf/FastTLS.h.
- libpas/src/libpas/pas_race_test_hooks.h: Added.
(pas_race_test_hook_kind_get_string):
(pas_race_test_hook):
(pas_race_test_will_lock):
(pas_race_test_did_lock):
(pas_race_test_did_try_lock):
(pas_race_test_will_unlock):
- libpas/src/libpas/pas_random.c: Copied from Source/WTF/wtf/FastTLS.h.
- libpas/src/libpas/pas_random.h: Added.
(pas_get_random):
- libpas/src/libpas/pas_range.h: Added.
(pas_range_create):
(pas_range_create_empty):
(pas_range_create_forgiving):
(pas_range_is_empty):
(pas_range_size):
(pas_range_contains):
(pas_range_subsumes):
(pas_range_overlaps):
(pas_range_create_intersection):
(pas_range_compare):
- libpas/src/libpas/pas_range16.h: Copied from Source/WTF/wtf/FastTLS.h.
(pas_range16_create):
- libpas/src/libpas/pas_range_begin_min_heap.h: Copied from Source/WTF/wtf/FastTLS.h.
(pas_range_begin_min_heap_compare):
(pas_range_begin_min_heap_get_index):
(pas_range_begin_min_heap_set_index):
- libpas/src/libpas/pas_range_locked_mode.h: Copied from Source/WTF/wtf/FastTLS.h.
(pas_range_locked_mode_get_string):
- libpas/src/libpas/pas_range_min_heap.h: Copied from Source/WTF/wtf/FastTLS.h.
(pas_range_compare_begin):
(pas_range_get_index):
(pas_range_set_index):
- libpas/src/libpas/pas_reallocate_free_mode.h: Copied from Source/WTF/wtf/FastTLS.h.
- libpas/src/libpas/pas_reallocate_heap_teleport_rule.h: Copied from Source/WTF/wtf/FastTLS.h.
- libpas/src/libpas/pas_red_black_tree.c: Added.
(tree_insert):
(left_rotate):
(right_rotate):
(remove_fixup):
(pas_red_black_tree_insert):
(pas_red_black_tree_remove):
(pas_red_black_tree_size):
- libpas/src/libpas/pas_red_black_tree.h: Added.
(pas_red_black_tree_validate_enumerable):
(pas_red_black_tree_get_root):
(pas_red_black_tree_node_get_left):
(pas_red_black_tree_node_get_right):
(pas_red_black_tree_node_get_parent):
(pas_red_black_tree_node_get_color):
(pas_red_black_tree_set_root):
(pas_red_black_tree_node_set_left):
(pas_red_black_tree_node_set_right):
(pas_red_black_tree_node_set_parent):
(pas_red_black_tree_node_set_color):
(pas_red_black_tree_node_minimum):
(pas_red_black_tree_node_maximum):
(pas_red_black_tree_node_successor):
(pas_red_black_tree_node_predecessor):
(pas_red_black_tree_node_reset):
(pas_red_black_tree_construct):
(pas_red_black_tree_node_find_exact):
(pas_red_black_tree_find_exact):
(pas_red_black_tree_node_find_least_greater_than_or_equal):
(pas_red_black_tree_find_least_greater_than_or_equal):
(pas_red_black_tree_node_find_least_greater_than):
(pas_red_black_tree_find_least_greater_than):
(pas_red_black_tree_node_find_greatest_less_than_or_equal):
(pas_red_black_tree_find_greatest_less_than_or_equal):
(pas_red_black_tree_node_find_greatest_less_than):
(pas_red_black_tree_find_greatest_less_than):
(pas_red_black_tree_minimum):
(pas_red_black_tree_maximum):
(pas_red_black_tree_is_empty):
- libpas/src/libpas/pas_redundant_local_allocator_node.c: Copied from Source/WTF/wtf/FastTLS.h.
(pas_redundant_local_allocator_node_create):
- libpas/src/libpas/pas_redundant_local_allocator_node.h: Copied from Source/WTF/wtf/FastTLS.h.
- libpas/src/libpas/pas_reserved_memory_provider.c: Added.
(null_aligned_allocator):
(initialize_config):
(pas_reserved_memory_provider_construct):
(pas_reserved_memory_provider_try_allocate):
- libpas/src/libpas/pas_reserved_memory_provider.h: Copied from Source/WTF/wtf/FastTLS.h.
- libpas/src/libpas/pas_root.c: Added.
(count_static_heaps_callback):
(collect_static_heaps_callback):
(pas_root_construct):
(pas_root_create):
(default_reader):
(enumerator_reader):
(enumerator_recorder):
(pas_root_enumerate_for_libmalloc):
(pas_root_enumerate_for_libmalloc_with_root_after_zone):
(malloc_introspect_good_size):
(malloc_introspect_check):
(malloc_introspect_print):
(malloc_introspect_log):
(malloc_introspect_force_lock):
(malloc_introspect_force_unlock):
(malloc_introspect_statistics):
(pas_root_ensure_for_libmalloc_enumeration):
- libpas/src/libpas/pas_root.h: Added.
- libpas/src/libpas/pas_scavenger.c: Added.
(ensure_data_instance):
(get_time_in_milliseconds):
(timed_wait):
(scavenger_thread_main):
(pas_scavenger_did_create_eligible):
(pas_scavenger_notify_eligibility_if_needed):
(pas_scavenger_suspend):
(pas_scavenger_resume):
(pas_scavenger_clear_all_non_tlc_caches):
(pas_scavenger_clear_all_caches_except_remote_tlcs):
(pas_scavenger_clear_all_caches):
(pas_scavenger_decommit_free_memory):
(pas_scavenger_run_synchronously_now):
(pas_scavenger_perform_synchronous_operation):
- libpas/src/libpas/pas_scavenger.h: Added.
- libpas/src/libpas/pas_segmented_vector.h: Added.
- libpas/src/libpas/pas_segregated_biasing_directory.c: Added.
(pas_segregated_biasing_directory_create):
(take_first_eligible_loop_head_callback):
(take_first_eligible_create_new_view_callback):
(pas_segregated_biasing_directory_take_first_eligible):
(pas_segregated_biasing_directory_take_last_unused):
- libpas/src/libpas/pas_segregated_biasing_directory.h: Added.
(pas_segregated_biasing_directory_magazine_index):
- libpas/src/libpas/pas_segregated_biasing_view.c: Added.
(pas_segregated_biasing_view_create):
(pas_segregated_biasing_view_is_owned):
(pas_segregated_biasing_view_lock_ownership_lock):
(pas_segregated_biasing_view_should_table):
(pas_segregated_biasing_view_note_eligibility):
(pas_segregated_biasing_view_note_emptiness):
(pas_segregated_biasing_view_compute_summary):
(pas_segregated_biasing_view_is_eligible):
(pas_segregated_biasing_view_is_empty):
- libpas/src/libpas/pas_segregated_biasing_view.h: Added.
(pas_segregated_biasing_view_as_view):
(pas_segregated_biasing_view_as_ineligible_view):
(pas_segregated_biasing_view_as_view_non_null):
(pas_segregated_biasing_view_as_ineligible_view_non_null):
- libpas/src/libpas/pas_segregated_directory.c: Added.
(pas_segregated_directory_construct):
(pas_segregated_directory_get_data_slow):
(pas_segregated_directory_get_use_epoch):
(pas_segregated_directory_get_sharing_payload):
(pas_segregated_directory_minimize_first_eligible):
(pas_segregated_directory_update_first_eligible_after_search):
(pas_segregated_directory_view_did_become_eligible_at_index_without_biasing_update):
(pas_segregated_directory_view_did_become_eligible_at_index):
(pas_segregated_directory_view_did_become_eligible_without_biasing_update):
(pas_segregated_directory_view_did_become_eligible):
(maximize_last_empty):
(pas_segregated_directory_view_did_become_empty_at_index):
(pas_segregated_directory_view_did_become_empty):
(pas_segregated_directory_is_committed):
(pas_segregated_directory_num_committed_views):
(num_empty_views_should_consider_view_parallel):
(pas_segregated_directory_num_empty_views):
(pas_segregated_directory_update_last_empty_plus_one_after_search):
(pas_segregated_directory_append):
(pas_segregated_directory_compute_summary):
(pas_segregated_directory_num_empty_granules):
- libpas/src/libpas/pas_segregated_directory.h: Added.
(pas_segregated_directory_size):
(pas_segregated_directory_bits_get_by_mask):
(pas_segregated_directory_bits_set_by_mask):
(pas_segregated_directory_get_misc_bit):
(pas_segregated_directory_set_misc_bit):
(pas_segregated_directory_get_other_misc_bit):
(pas_segregated_directory_set_other_misc_bit):
(pas_segregated_directory_spoof_inline_segment):
(pas_segregated_directory_get_empty_bit):
(pas_segregated_directory_set_empty_bit):
(pas_segregated_directory_get_data):
(pas_segregated_directory_can_do_sharing):
(pas_segregated_directory_is_doing_sharing):
(pas_segregated_directory_data_try_get_sharing_payload):
(pas_segregated_directory_start_sharing_if_necessary):
(pas_segregated_directory_data_get_first_eligible_ptr):
(pas_segregated_directory_is_eligible):
(pas_segregated_directory_is_empty):
(pas_segregated_directory_is_tabled):
(pas_segregated_directory_get_first_eligible_impl):
(pas_segregated_directory_get_first_eligible):
(pas_segregated_directory_get_first_eligible_torn):
(pas_segregated_directory_watch_first_eligible):
(pas_segregated_directory_get_last_empty_plus_one_impl):
(pas_segregated_directory_get_last_empty_plus_one):
(pas_segregated_directory_get_last_empty_plus_one_value):
(pas_segregated_directory_watch_last_empty_plus_one):
(pas_segregated_directory_last_empty_plus_one):
(pas_segregated_directory_get):
- libpas/src/libpas/pas_segregated_directory_bit_reference.h: Added.
(pas_segregated_directory_bit_reference_create_null):
(pas_segregated_directory_bit_reference_create_inline):
(pas_segregated_directory_bit_reference_create_out_of_line):
(pas_segregated_directory_bit_reference_is_null):
(pas_segregated_directory_bit_reference_is_inline):
(pas_segregated_directory_bit_reference_is_out_of_line):
- libpas/src/libpas/pas_segregated_directory_first_eligible_kind.h: Copied from Source/WTF/wtf/FastTLS.h.
(pas_segregated_directory_find_eligible_kind_get_string):
- libpas/src/libpas/pas_segregated_directory_inlines.h: Added.
(pas_segregated_directory_iterate_iterate_callback):
(pas_segregated_directory_iterate_forward_iterate_callback):
(pas_segregated_directory_iterate_forward):
(pas_segregated_directory_iterate_backward_iterate_callback):
(pas_segregated_directory_iterate_backward):
(pas_segregated_directory_iterate_forward_to_take_first_eligible):
(pas_segregated_directory_iterate_backward_to_take_last_empty):
- libpas/src/libpas/pas_segregated_directory_kind.h: Added.
(pas_segregated_directory_kind_get_string):
- libpas/src/libpas/pas_segregated_exclusive_view.c: Added.
(pas_segregated_exclusive_view_create):
(pas_segregated_exclusive_view_should_table):
(pas_segregated_exclusive_ish_view_note_eligibility_impl):
(pas_segregated_exclusive_view_note_eligibility):
(pas_segregated_exclusive_view_note_emptiness):
(pas_segregated_exclusive_ish_view_compute_summary_impl):
(pas_segregated_exclusive_view_compute_summary):
(pas_segregated_exclusive_view_install_full_use_counts):
(pas_segregated_exclusive_view_is_eligible):
(pas_segregated_exclusive_view_is_empty):
- libpas/src/libpas/pas_segregated_exclusive_view.h: Added.
(pas_segregated_exclusive_view_as_view):
(pas_segregated_exclusive_view_as_ineligible_view):
(pas_segregated_exclusive_view_as_view_non_null):
(pas_segregated_exclusive_view_as_ineligible_view_non_null):
- libpas/src/libpas/pas_segregated_exclusive_view_inlines.h: Added.
(pas_segregated_exclusive_ish_view_did_start_allocating):
- libpas/src/libpas/pas_segregated_exclusive_view_ownership_kind.h: Added.
(pas_segregated_exclusive_view_ownership_kind_is_owned):
(pas_segregated_exclusive_view_ownership_kind_is_biased):
(pas_segregated_exclusive_view_ownership_kind_with_owned):
(pas_segregated_exclusive_view_ownership_kind_with_biased):
(pas_segregated_exclusive_view_ownership_kind_get_string):
- libpas/src/libpas/pas_segregated_global_size_directory.c: Added.
(pas_segregated_global_size_directory_create):
(pas_segregated_global_size_directory_ensure_data):
(pas_segregated_global_size_directory_get_extended_data):
(pas_segregated_global_size_directory_create_tlc_allocator):
(pas_segregated_global_size_directory_enable_exclusive_views):
(pas_segregated_global_size_directory_explode):
(pas_segregated_global_size_directory_select_allocator_slow):
(take_first_eligible_direct_loop_head_callback):
(take_first_eligible_direct_create_new_view_callback):
(pas_segregated_global_size_directory_take_first_eligible_direct):
(pas_segregated_global_size_directory_take_first_eligible):
(take_last_empty_should_consider_view_parallel):
(take_last_empty_consider_view):
(pas_segregated_global_size_directory_take_last_empty):
(pas_segregated_global_size_directory_for_object):
(pas_segregated_global_size_directory_get_allocator_from_tlc):
(pas_segregated_global_size_directory_compute_summary_for_unowned_exclusive):
(for_each_live_object_callback):
(pas_segregated_global_size_directory_for_each_live_object):
(pas_segregated_global_size_directory_local_allocator_size):
(pas_segregated_global_size_directory_num_allocator_indices):
(pas_segregated_global_size_directory_dump_reference):
(pas_segregated_global_size_directory_dump_for_spectrum):
- libpas/src/libpas/pas_segregated_global_size_directory.h: Added.
(pas_segregated_global_size_directory_as_view):
(pas_segregated_global_size_directory_alignment):
(pas_segregated_global_size_directory_contention_did_trigger_explosion):
(pas_segregated_global_size_directory_set_contention_did_trigger_explosion):
(pas_segregated_global_size_directory_has_tlc_allocator):
(pas_segregated_global_size_directory_are_exclusive_views_enabled):
(pas_segregated_global_size_directory_bias_sharing_pool):
- libpas/src/libpas/pas_segregated_global_size_directory_inlines.h: Added.
(pas_segregated_global_size_directory_select_allocator):
(pas_segregated_global_size_directory_local_allocator_size_for_null_config):
(pas_segregated_global_size_directory_local_allocator_size_for_config):
(pas_segregated_global_size_directory_num_allocator_indices_for_allocator_size):
(pas_segregated_global_size_directory_num_allocator_indices_for_config):
- libpas/src/libpas/pas_segregated_heap.c: Added.
(min_object_size_for_heap_config):
(max_count_for_page_config):
(max_object_size_for_page_config):
(max_small_count_for_heap_config):
(max_segregated_count_for_heap_config):
(max_bitfit_count_for_heap_config):
(max_count_for_heap_config):
(max_bitfit_object_size_for_heap_config):
(max_object_size_for_heap_config):
(pas_segregated_heap_construct):
(pas_segregated_heap_get_bitfit):
(medium_directory_tuple_for_index_impl):
(medium_directory_tuple_for_index_with_lock):
(pas_segregated_heap_medium_directory_tuple_for_index):
(pas_segregated_heap_medium_allocator_index_for_index):
(pas_segregated_heap_medium_size_directory_for_index):
(compute_small_index_upper_bound):
(ensure_count_lookup):
(pas_segregated_heap_ensure_allocator_index):
(compute_ideal_object_size):
(check_medium_directories):
(check_part_of_all_heaps_callback):
(check_part_of_all_segregated_heaps_callback):
(ensure_count_lookup_if_necessary):
(pas_segregated_heap_ensure_size_directory_for_count):
(pas_segregated_heap_get_num_free_bytes):
(pas_segregated_heap_for_each_global_size_directory):
(for_each_committed_size_directory_callback):
(pas_segregated_heap_for_each_committed_view):
(for_each_view_index_directory_callback):
(pas_segregated_heap_for_each_view_index):
(for_each_live_object_object_callback):
(for_each_live_object_directory_callback):
(for_each_live_object_bitfit_callback):
(pas_segregated_heap_for_each_live_object):
(num_committed_views_directory_callback):
(pas_segregated_heap_num_committed_views):
(num_empty_views_directory_callback):
(pas_segregated_heap_num_empty_views):
(num_empty_granules_directory_callback):
(pas_segregated_heap_num_empty_granules):
(num_views_directory_callback):
(pas_segregated_heap_num_views):
(compute_summary_directory_callback):
(pas_segregated_heap_compute_summary):
- libpas/src/libpas/pas_segregated_heap.h: Added.
(pas_segregated_heap_index_for_primitive_count):
(pas_segregated_heap_primitive_count_for_index):
(pas_segregated_heap_index_for_count):
(pas_segregated_heap_count_for_index):
(pas_segregated_heap_allocator_index_for_index):
(pas_segregated_heap_allocator_index_for_count_not_primitive):
- libpas/src/libpas/pas_segregated_heap_inlines.h: Added.
(pas_segregated_heap_size_directory_for_index):
(pas_segregated_heap_size_directory_for_count):
- libpas/src/libpas/pas_segregated_heap_lookup_kind.h: Copied from Source/WTF/wtf/FastTLS.h.
- libpas/src/libpas/pas_segregated_heap_page_sharing_mode.h: Added.
(pas_segregated_heap_page_sharing_mode_does_any_sharing):
(pas_segregated_heap_page_sharing_mode_does_virtual_sharing):
(pas_segregated_heap_page_sharing_mode_does_physical_sharing):
(pas_segregated_heap_page_sharing_mode_get_string):
- libpas/src/libpas/pas_segregated_page.c: Added.
(pas_segregated_page_switch_lock_slow):
(pas_segregated_page_switch_lock_and_rebias_to_magazine_while_ineligible_impl):
(pas_segregated_page_construct):
(pas_segregated_page_note_emptiness):
(commit_lock_for):
(pas_segregated_page_take_empty_granules):
(pas_segregated_page_take_physically):
(pas_segregated_page_commit_fully):
(verify_granules_live_object_callback):
(pas_segregated_page_verify_granules):
(pas_segregated_page_deallocation_did_fail):
(pas_segregated_page_get_num_empty_granules):
(pas_segregated_page_get_num_committed_granules):
(pas_segregated_page_get_config):
(pas_segregated_page_add_commit_range):
(pas_segregated_page_and_config_for_address_and_heap_config):
(pas_segregated_page_verify_num_non_empty_words):
- libpas/src/libpas/pas_segregated_page.h: Added.
(pas_segregated_page_header_size):
(pas_segregated_page_offset_from_page_boundary_to_first_object_for_hugging_mode):
(pas_segregated_page_offset_from_page_boundary_to_end_of_last_object_for_hugging_mode):
(pas_segregated_page_useful_object_payload_size_for_hugging_mode):
(pas_segregated_page_best_hugging_mode):
(pas_segregated_page_offset_from_page_boundary_to_first_object_exclusive):
(pas_segregated_page_offset_from_page_boundary_to_end_of_last_object_exclusive):
(pas_segregated_page_useful_object_payload_size):
(pas_segregated_page_number_of_objects):
(pas_segregated_page_bytes_dirtied_per_object):
(pas_segregated_page_get_granule_use_counts):
(pas_segregated_page_for_boundary):
(pas_segregated_page_for_boundary_or_null):
(pas_segregated_page_for_boundary_unchecked):
(pas_segregated_page_boundary):
(pas_segregated_page_boundary_or_null):
(pas_segregated_page_for_address_and_page_config):
(pas_segregated_page_is_allocated_with_page):
(pas_segregated_page_is_allocated):
(pas_segregated_page_for_address_and_heap_config):
- libpas/src/libpas/pas_segregated_page_and_config.h: Added.
(pas_segregated_page_and_config_create):
(pas_segregated_page_and_config_create_empty):
(pas_segregated_page_and_config_is_empty):
- libpas/src/libpas/pas_segregated_page_config.c: Added.
(pas_segregated_page_config_validate):
- libpas/src/libpas/pas_segregated_page_config.h: Added.
(pas_segregated_page_config_is_enabled):
(pas_segregated_page_config_min_align):
(pas_segregated_page_config_object_payload_end_offset_from_boundary):
(pas_segregated_page_config_num_alloc_words):
(pas_segregated_page_config_num_alloc_bytes):
(pas_segregated_page_config_get_kind):
(pas_segregated_page_config_kind_is_utility):
(pas_segregated_page_config_is_utility):
(pas_segregated_page_config_kind_heap_lock_hold_mode):
(pas_segregated_page_config_heap_lock_hold_mode):
- libpas/src/libpas/pas_segregated_page_config_inlines.h: Added.
- libpas/src/libpas/pas_segregated_page_config_kind.c: Copied from Source/WTF/wtf/FastTLS.h.
(pas_segregated_page_config_kind_for_each):
- libpas/src/libpas/pas_segregated_page_config_kind.def: Added.
- libpas/src/libpas/pas_segregated_page_config_kind.h: Added.
(pas_segregated_page_config_kind_get_string):
(pas_segregated_page_config_kind_get_config):
- libpas/src/libpas/pas_segregated_page_config_utils.h: Added.
(pas_segregated_page_config_verify_dealloc):
- libpas/src/libpas/pas_segregated_page_config_utils_inlines.h: Added.
- libpas/src/libpas/pas_segregated_page_config_variant.h: Added.
(pas_segregated_page_config_variant_get_string):
- libpas/src/libpas/pas_segregated_page_emptiness_kind.h: Copied from Source/WTF/wtf/FastTLS.h.
(pas_page_emptiness_kind_get_inverted):
(pas_page_emptiness_kind_get_string):
- libpas/src/libpas/pas_segregated_page_granule_use_count.h: Added.
(pas_segregated_page_granule_use_count_increment):
(pas_segregated_page_granule_for_each_use_in_range):
(pas_segregated_page_granule_increment_uses_for_range):
- libpas/src/libpas/pas_segregated_page_header_placement_mode.h: Copied from Source/WTF/wtf/FastTLS.h.
(pas_segregated_page_header_placement_mode_get_string):
- libpas/src/libpas/pas_segregated_page_inlines.h: Added.
(pas_segregated_page_offset_from_page_boundary_to_first_object):
(pas_segregated_page_initialize_full_use_counts):
(pas_segregated_page_lock_with_unbias_not_utility):
(pas_segregated_page_lock_with_unbias):
(pas_segregated_page_lock):
(pas_segregated_page_unlock):
(pas_segregated_page_switch_lock_with_mode):
(pas_segregated_page_switch_lock):
(pas_segregated_page_switch_lock_and_rebias_to_magazine_while_ineligible):
(pas_segregated_page_deallocate_with_page):
(pas_segregated_page_deallocate):
(pas_segregated_page_qualifies_for_decommit):
(pas_segregated_page_get_directory_for_address_in_page):
(pas_segregated_page_get_directory_for_address_and_page_config):
(pas_segregated_page_get_object_size_for_address_in_page):
(pas_segregated_page_get_object_size_for_address_and_page_config):
- libpas/src/libpas/pas_segregated_partial_view.c: Added.
(pas_segregated_partial_view_create):
(pas_segregated_partial_view_note_eligibility):
(pas_segregated_partial_view_set_is_in_use_for_allocation):
(pas_segregated_partial_view_should_table):
(compute_summary):
(pas_segregated_partial_view_compute_summary):
(pas_segregated_partial_view_is_eligible):
- libpas/src/libpas/pas_segregated_partial_view.h: Added.
(pas_segregated_partial_view_as_view):
(pas_segregated_partial_view_as_view_non_null):
- libpas/src/libpas/pas_segregated_partial_view_inlines.h: Added.
(pas_segregated_partial_view_tell_shared_handle_for_word_general_case_source):
(pas_segregated_partial_view_tell_shared_handle_for_word_general_case_callback):
(pas_segregated_partial_view_tell_shared_handle_for_word_general_case):
(pas_segregated_partial_view_did_start_allocating):
- libpas/src/libpas/pas_segregated_shared_handle.c: Added.
(pas_segregated_shared_handle_create):
(pas_segregated_shared_handle_destroy):
(pas_segregated_shared_handle_note_emptiness):
- libpas/src/libpas/pas_segregated_shared_handle.h: Added.
(pas_segregated_shared_handle_num_views):
(pas_segregated_shared_handle_size):
(pas_segregated_shared_handle_as_view):
(pas_segregated_shared_handle_as_view_non_null):
- libpas/src/libpas/pas_segregated_shared_handle_inlines.h: Added.
(pas_segregated_shared_handle_partial_view_ptr_for_index):
(pas_segregated_shared_handle_partial_view_for_index):
(pas_segregated_shared_handle_partial_view_for_object):
- libpas/src/libpas/pas_segregated_shared_page_directory.c: Added.
(find_first_eligible_should_consider_view_parallel):
(find_first_eligible_consider_view):
(pas_segregated_shared_page_directory_find_first_eligible):
(take_last_empty_should_consider_view_parallel):
(switch_to_ownership):
(take_last_empty_consider_view):
(pas_segregated_shared_page_directory_take_last_empty):
(pas_segregated_shared_page_directory_dump_reference):
(pas_segregated_shared_page_directory_dump_for_spectrum):
- libpas/src/libpas/pas_segregated_shared_page_directory.h: Added.
- libpas/src/libpas/pas_segregated_shared_view.c: Added.
(pas_segregated_shared_view_create):
(pas_segregated_shared_view_commit_page):
(compute_summary_for_each_live_object_callback):
(compute_summary):
(pas_segregated_shared_view_compute_summary):
(pas_segregated_shared_view_is_empty):
- libpas/src/libpas/pas_segregated_shared_view.h: Added.
(pas_segregated_shared_view_as_view):
(pas_segregated_shared_view_as_view_non_null):
(pas_shared_view_computed_bump_result_create_empty):
(pas_segregated_shared_view_compute_initial_new_bump):
(pas_segregated_shared_view_can_bump):
(pas_segregated_shared_view_compute_new_bump):
(pas_segregated_shared_view_bump):
- libpas/src/libpas/pas_segregated_shared_view_inlines.h: Added.
(pas_segregated_shared_view_commit_page_if_necessary):
- libpas/src/libpas/pas_segregated_size_directory.c: Added.
(pas_segregated_size_directory_construct):
(for_each_live_object_object_callback):
(pas_segregated_size_directory_for_each_live_object):
(pas_segregated_size_directory_for_object):
- libpas/src/libpas/pas_segregated_size_directory.h: Copied from Source/WTF/wtf/FastTLS.h.
- libpas/src/libpas/pas_segregated_size_directory_inlines.h: Added.
(pas_segregated_size_directory_take_first_eligible_impl_should_consider_view_not_tabled_parallel):
(pas_segregated_size_directory_take_first_eligible_impl_should_consider_view_tabled_parallel):
(pas_segregated_size_directory_take_first_eligible_impl):
(pas_segregated_size_directory_get_global):
- libpas/src/libpas/pas_segregated_view.c: Added.
(pas_segregated_view_get_size_directory_slow):
(pas_segregated_view_get_global_size_directory_slow):
(pas_segregated_view_get_page_config_kind):
(pas_segregated_view_get_page_config):
(pas_segregated_view_get_index):
(pas_segregated_view_get_page_boundary):
(pas_segregated_view_get_page):
(pas_segregated_view_should_restart):
(pas_segregated_view_could_bump):
(pas_segregated_view_get_commit_lock):
(pas_segregated_view_get_ownership_lock):
(pas_segregated_view_is_owned):
(pas_segregated_view_should_table):
(pas_segregated_view_is_biased_exclusive):
(pas_segregated_view_lock_ownership_lock):
(pas_segregated_view_lock_ownership_lock_conditionally):
(pas_segregated_view_lock_ownership_lock_if_owned):
(pas_segregated_view_lock_ownership_lock_if_owned_conditionally):
(pas_segregated_view_unlock_ownership_lock):
(pas_segregated_view_unlock_ownership_lock_conditionally):
(pas_segregated_view_is_primordial_partial):
(pas_segregated_view_note_eligibility):
(pas_segregated_view_note_emptiness):
(for_each_live_object):
(pas_segregated_view_for_each_live_object):
(should_be_eligible):
(pas_segregated_view_should_be_eligible):
(pas_segregated_view_for_object):
(pas_segregated_view_compute_summary):
(pas_segregated_view_is_eligible):
(pas_segregated_view_is_eligible_or_biased):
(is_payload_empty_callback):
(pas_segregated_view_is_payload_empty):
(pas_segregated_view_is_empty):
(pas_segregated_view_is_empty_or_biased):
- libpas/src/libpas/pas_segregated_view.h: Added.
(pas_segregated_view_create):
(pas_segregated_view_create_non_null):
(pas_segregated_view_get_ptr):
(pas_segregated_view_get_kind):
(pas_segregated_view_is_null):
(pas_segregated_view_is_exclusive):
(pas_segregated_view_is_ineligible_exclusive):
(pas_segregated_view_is_some_exclusive):
(pas_segregated_view_is_exclusive_ish):
(pas_segregated_view_is_biasing):
(pas_segregated_view_is_ineligible_biasing):
(pas_segregated_view_is_some_biasing):
(pas_segregated_view_get_biasing):
(pas_segregated_view_is_eligible_kind):
(pas_segregated_view_is_ineligible_kind):
(pas_segregated_view_as_ineligible):
(pas_segregated_view_as_eligible):
(pas_segregated_view_is_shared):
(pas_segregated_view_get_shared):
(pas_segregated_view_is_shared_handle):
(pas_segregated_view_get_shared_handle):
(pas_segregated_view_is_partial):
(pas_segregated_view_get_partial):
(pas_segregated_view_is_global_size_directory):
(pas_segregated_view_get_size_directory):
(pas_segregated_view_get_global_size_directory):
- libpas/src/libpas/pas_segregated_view_allocator_inlines.h: Added.
(pas_segregated_view_will_start_allocating):
(pas_segregated_view_did_stop_allocating):
- libpas/src/libpas/pas_segregated_view_inlines.h: Copied from Source/WTF/wtf/FastTLS.h.
(pas_segregated_view_get_exclusive):
- libpas/src/libpas/pas_segregated_view_kind.h: Added.
(pas_segregated_view_kind_get_character_code):
(pas_segregated_view_kind_get_string):
(pas_segregated_view_kind_is_eligible):
(pas_segregated_view_kind_is_exclusive_ish):
(pas_segregated_view_kind_is_ineligible):
(pas_segregated_view_kind_can_become_empty):
- libpas/src/libpas/pas_shared_handle_or_page.h: Copied from Source/WTF/wtf/FastTLS.h.
(pas_wrap_page):
(pas_is_wrapped_shared_handle):
(pas_is_wrapped_page):
(pas_unwrap_page):
- libpas/src/libpas/pas_shared_handle_or_page_boundary.h: Added.
(pas_wrap_page_boundary):
(pas_is_wrapped_shared_handle):
(pas_is_wrapped_page_boundary):
(pas_unwrap_page_boundary):
- libpas/src/libpas/pas_shared_handle_or_page_boundary_inlines.h: Added.
(pas_wrap_shared_handle):
(pas_unwrap_shared_handle_no_liveness_checks):
(pas_unwrap_shared_handle):
(pas_shared_handle_or_page_boundary_get_page_boundary_no_liveness_checks):
(pas_shared_handle_or_page_boundary_get_page_boundary):
- libpas/src/libpas/pas_shared_handle_or_page_inlines.h: Added.
(pas_wrap_shared_handle):
(pas_unwrap_shared_handle_no_liveness_checks):
(pas_unwrap_shared_handle):
(pas_shared_handle_or_page_get_page_no_liveness_checks):
(pas_shared_handle_or_page_get_page):
- libpas/src/libpas/pas_shared_page_directory_by_size.c: Added.
(pas_shared_page_directory_by_size_get):
(pas_shared_page_directory_by_size_for_each):
(pas_shared_page_directory_by_size_for_each_remote):
- libpas/src/libpas/pas_shared_page_directory_by_size.h: Added.
- libpas/src/libpas/pas_simple_free_heap_declarations.def: Added.
- libpas/src/libpas/pas_simple_free_heap_definitions.def: Added.
- libpas/src/libpas/pas_simple_free_heap_helpers.c: Added.
(pas_simple_free_heap_helpers_try_allocate_with_manual_alignment):
(pas_simple_free_heap_helpers_deallocate):
- libpas/src/libpas/pas_simple_free_heap_helpers.h: Copied from Source/WTF/wtf/FastTLS.h.
- libpas/src/libpas/pas_simple_large_free_heap.c: Added.
(free_list_entry):
(pas_simple_large_free_heap_construct):
(dump_free_list):
(consider_expanding):
(append):
(merge):
(remove_entry):
(index_to_cursor):
(cursor_to_index):
(simple_find_first):
(simple_find_by_end):
(simple_read_cursor):
(simple_write_cursor):
(simple_merge):
(simple_remove):
(simple_append):
(simple_commit):
(simple_dump):
(simple_add_mapped_bytes):
(initialize_generic_heap_config):
(merge_physical):
(try_allocate_without_fixing):
(fix_free_list_if_necessary):
(pas_simple_large_free_heap_try_allocate):
(pas_simple_large_free_heap_deallocate):
(pas_simple_large_free_heap_for_each_free):
(pas_simple_large_free_heap_get_num_free_bytes):
(pas_simple_large_free_heap_dump_to_printf):
- libpas/src/libpas/pas_simple_large_free_heap.h: Added.
- libpas/src/libpas/pas_simple_type.h: Added.
(pas_simple_type_has_key):
(pas_simple_type_get_key_data):
(pas_simple_type_unwrap):
(pas_simple_type_size):
(pas_simple_type_alignment):
(pas_simple_type_key):
(pas_simple_type_create):
(pas_simple_type_create_with_key_data):
(pas_simple_type_as_heap_type_get_type_size):
(pas_simple_type_as_heap_type_get_type_alignment):
- libpas/src/libpas/pas_size_thunk.h: Copied from Source/WTF/wtf/FastTLS.h.
(pas_trivial_size_thunk):
- libpas/src/libpas/pas_skip_list.c: Added.
(pas_skip_list_construct):
(pas_skip_list_node_allocate_with_height):
(pas_skip_list_node_allocate):
(pas_skip_list_node_deallocate):
(pas_skip_list_remove):
(pas_skip_list_size):
(validate_other_node):
(pas_skip_list_validate):
- libpas/src/libpas/pas_skip_list.h: Added.
(pas_skip_list_node_prev):
(pas_skip_list_node_next):
(pas_skip_list_head):
(pas_skip_list_is_empty):
- libpas/src/libpas/pas_skip_list_inlines.h: Added.
(pas_skip_list_find_result_create_exact):
(pas_skip_list_find_result_create_inexact):
(pas_skip_list_level_get_direction):
(pas_skip_list_find_impl):
(pas_skip_list_find_ignore_head_attachment):
(pas_skip_list_find_ignore_pole_attachment):
(pas_skip_list_find):
(pas_skip_list_insert_after_note_head_attachment):
(pas_skip_list_insert_after_note_pole_attachment):
(pas_skip_list_insert):
- libpas/src/libpas/pas_slow_path_mode.h: Copied from Source/WTF/wtf/FastTLS.h.
- libpas/src/libpas/pas_slow_path_mode_prefix.h: Copied from Source/WTF/wtf/FastTLS.h.
- libpas/src/libpas/pas_small_large_map_entry.h: Added.
(pas_small_large_map_entry_create_empty):
(pas_small_large_map_entry_create_deleted):
(pas_small_large_map_entry_is_empty_or_deleted):
(pas_small_large_map_entry_is_empty):
(pas_small_large_map_entry_is_deleted):
(pas_small_large_map_entry_create):
(pas_small_large_map_entry_begin):
(pas_small_large_map_entry_get_key):
(pas_small_large_map_entry_end):
(pas_small_large_map_entry_heap):
(pas_small_large_map_entry_get_entry):
(pas_small_large_map_entry_can_create):
- libpas/src/libpas/pas_snprintf.h: Copied from Source/WTF/wtf/FastTLS.h.
- libpas/src/libpas/pas_status_reporter.c: Added.
(dump_ratio_initial):
(dump_occupancy_initial):
(dump_arrow):
(report_bitfit_directory_contents):
(pas_status_reporter_dump_bitfit_biasing_directory):
(pas_status_reporter_dump_bitfit_global_directory):
(report_segregated_directory_contents):
(pas_status_reporter_dump_segregated_biasing_directory):
(pas_status_reporter_dump_segregated_global_size_directory):
(pas_status_reporter_dump_segregated_shared_page_directory):
(pas_status_reporter_dump_large_heap):
(pas_status_reporter_dump_large_map):
(pas_status_reporter_dump_heap_table):
(pas_status_reporter_dump_immortal_heap):
(pas_status_reporter_dump_compact_large_utility_free_heap):
(pas_status_reporter_dump_large_utility_free_heap):
(pas_status_reporter_dump_compact_bootstrap_free_heap):
(pas_status_reporter_dump_bootstrap_free_heap):
(dump_segregated_heap_directory_callback):
(pas_status_reporter_dump_bitfit_heap):
(pas_status_reporter_dump_segregated_heap):
(pas_status_reporter_dump_heap):
(dump_all_heaps_heap_callback):
(pas_status_reporter_dump_all_heaps):
(dump_all_shared_page_directories_directory_callback):
(pas_status_reporter_dump_all_shared_page_directories):
(pas_status_reporter_dump_all_heaps_non_utility_summaries):
(pas_status_reporter_dump_utility_heap):
(add_to_size_histogram):
(dump_histogram):
(total_fragmentation_global_size_directory_callback):
(total_fragmentation_heap_callback):
(total_fragmentation_shared_page_directory_callback):
(pas_status_reporter_dump_total_fragmentation):
(tier_up_rate_global_size_directory_callback):
(tier_up_rate_heap_callback):
(dump_directory_tier_up_rate):
(pas_status_reporter_dump_tier_up_rates):
(allocator_state):
(pas_status_reporter_dump_baseline_allocators):
(pas_status_reporter_dump_thread_local_caches):
(pas_status_reporter_dump_configuration):
(pas_status_reporter_dump_everything):
(status_reporter_thread_main):
(start_reporter):
(pas_status_reporter_start_if_necessary):
- libpas/src/libpas/pas_status_reporter.h: Added.
- libpas/src/libpas/pas_stream.c: Copied from Source/WTF/wtf/FastTLS.h.
(pas_stream_vprintf):
(pas_stream_printf):
- libpas/src/libpas/pas_stream.h: Copied from Source/WTF/wtf/FastTLS.h.
(pas_stream_print_comma):
- libpas/src/libpas/pas_string_stream.c: Added.
(string_stream_vprintf):
(pas_string_stream_destruct):
(pas_string_stream_reset):
(pas_string_stream_vprintf):
- libpas/src/libpas/pas_string_stream.h: Added.
(pas_string_stream_get_string):
(pas_string_stream_get_string_length):
- libpas/src/libpas/pas_subpage_map.c: Added.
(pas_subpage_map_add):
(pas_subpage_map_get):
(pas_subpage_map_get_full_base):
- libpas/src/libpas/pas_subpage_map.h: Added.
(pas_subpage_map_hashtable_entry_create_empty):
(pas_subpage_map_hashtable_entry_create_deleted):
(pas_subpage_map_hashtable_entry_is_empty_or_deleted):
(pas_subpage_map_hashtable_entry_is_empty):
(pas_subpage_map_hashtable_entry_is_deleted):
(pas_subpage_map_hashtable_entry_get_key):
(pas_subpage_map_hashtable_key_get_hash):
(pas_subpage_map_hashtable_key_is_equal):
- libpas/src/libpas/pas_subpage_map_entry.c: Added.
(set_packed_value):
(pas_subpage_map_entry_create):
(prepare_indices):
(pas_subpage_map_assert_commit_state):
(set_bits):
(pas_subpage_map_entry_commit):
(pas_subpage_map_entry_decommit):
- libpas/src/libpas/pas_subpage_map_entry.h: Added.
(pas_subpage_map_entry_full_base):
(pas_subpage_map_entry_bits):
- libpas/src/libpas/pas_thread_local_cache.c: Added.
(pas_thread_local_cache_size_for_allocator_index_capacity):
(deallocate):
(destroy):
(destructor):
(allocate_cache):
(dump_thread_diagnostics):
(pas_thread_local_cache_create):
(pas_thread_local_cache_destroy):
(pas_thread_local_cache_get_slow):
(pas_thread_local_cache_get_local_allocator_slow):
(pas_thread_local_cache_get_local_allocator_if_can_set_cache_slow):
(pas_thread_local_cache_stop_local_allocators):
(stop_local_allocators_if_necessary_set_bit_source):
(stop_local_allocators_if_necessary_set_bit_callback):
(pas_thread_local_cache_stop_local_allocators_if_necessary):
(process_deallocation_log_with_config):
(flush_deallocation_log):
(pas_thread_local_cache_flush_deallocation_log):
(suspend):
(resume):
(pas_thread_local_cache_for_all):
(pas_thread_local_cache_append_deallocation_slow):
(pas_thread_local_cache_shrink):
- libpas/src/libpas/pas_thread_local_cache.h: Added.
(pas_thread_local_cache_try_get):
(pas_thread_local_cache_is_guaranteed_to_destruct):
(pas_thread_local_cache_can_set):
(pas_thread_local_cache_set_impl):
(pas_thread_local_cache_get_already_initialized):
(pas_thread_local_cache_get_with_heap_lock_hold_mode):
(pas_thread_local_cache_get):
(pas_thread_local_cache_get_holding_heap_lock):
(pas_thread_local_cache_get_local_allocator_impl):
(pas_thread_local_cache_get_local_allocator):
(pas_thread_local_cache_try_get_local_allocator):
(pas_thread_local_cache_get_local_allocator_if_can_set_cache):
(pas_thread_local_cache_encode_object):
(pas_thread_local_cache_append_deallocation):
(pas_thread_local_cache_append_deallocation_with_size):
- libpas/src/libpas/pas_thread_local_cache_layout.c: Added.
(pas_thread_local_cache_layout_add_node):
(pas_thread_local_cache_layout_add):
(pas_thread_local_cache_layout_duplicate):
- libpas/src/libpas/pas_thread_local_cache_layout.h: Copied from Source/WTF/wtf/FastTLS.h.
- libpas/src/libpas/pas_thread_local_cache_layout_node.c: Added.
(pas_thread_local_cache_layout_node_get_directory):
(allocator_index_ptr):
(pas_thread_local_cache_layout_node_get_allocator_index):
(pas_thread_local_cache_layout_node_set_allocator_index):
(next_ptr):
(pas_thread_local_cache_layout_node_get_next):
(pas_thread_local_cache_layout_node_set_next):
- libpas/src/libpas/pas_thread_local_cache_layout_node.h: Added.
(pas_wrap_segregated_global_size_directory):
(pas_wrap_redundant_local_allocator_node):
(pas_is_wrapped_segregated_global_size_directory):
(pas_is_wrapped_redundant_local_allocator_node):
(pas_unwrap_segregated_global_size_directory):
(pas_unwrap_redundant_local_allocator_node):
- libpas/src/libpas/pas_thread_local_cache_node.c: Added.
(pas_thread_local_cache_node_allocate):
(pas_thread_local_cache_node_deallocate):
- libpas/src/libpas/pas_thread_local_cache_node.h: Added.
- libpas/src/libpas/pas_tiny_large_map_entry.h: Added.
(pas_tiny_large_map_entry_base):
(pas_tiny_large_map_entry_create):
(pas_tiny_large_map_entry_begin):
(pas_tiny_large_map_entry_end):
(pas_tiny_large_map_entry_heap):
(pas_tiny_large_map_entry_get_entry):
(pas_tiny_large_map_entry_can_create):
(pas_tiny_large_map_entry_create_empty):
(pas_tiny_large_map_entry_create_deleted):
(pas_tiny_large_map_entry_is_empty_or_deleted):
(pas_tiny_large_map_entry_is_empty):
(pas_tiny_large_map_entry_is_deleted):
(pas_tiny_large_map_entry_get_key):
(pas_tiny_large_map_key_get_hash):
(pas_tiny_large_map_key_is_equal):
- libpas/src/libpas/pas_tree_direction.h: Added.
(pas_tree_direction_get_string):
(pas_tree_direction_invert):
(pas_tree_direction_invert_comparison_result_if_right):
- libpas/src/libpas/pas_tri_state.h: Copied from Source/WTF/wtf/FastTLS.h.
(pas_tri_state_get_string):
(pas_tri_state_equals_boolean):
- libpas/src/libpas/pas_try_allocate.h: Added.
(pas_try_allocate_impl_size_thunk):
(pas_try_allocate_impl):
- libpas/src/libpas/pas_try_allocate_array.h: Added.
(pas_try_allocate_array_impl):
- libpas/src/libpas/pas_try_allocate_common.h: Added.
(pas_try_allocate_common_can_go_fast):
(pas_try_allocate_common_impl_fast):
(pas_try_allocate_common_impl_slow):
(pas_try_allocate_common_impl):
- libpas/src/libpas/pas_try_allocate_intrinsic_primitive.h: Added.
(pas_try_allocate_intrinsic_primitive_impl_medium_slow_case):
(pas_try_allocate_intrinsic_primitive_impl):
- libpas/src/libpas/pas_try_allocate_primitive.h: Added.
(pas_try_allocate_primitive_impl):
- libpas/src/libpas/pas_try_reallocate.h: Added.
(pas_try_allocate_for_reallocate_and_copy):
(pas_try_reallocate_table_segregated_case):
(pas_try_reallocate_table_bitfit_case):
(pas_try_reallocate):
(pas_try_reallocate_intrinsic_primitive_allocate_callback):
(pas_try_reallocate_intrinsic_primitive):
(pas_try_reallocate_single_allocate_callback):
(pas_try_reallocate_single):
(pas_try_reallocate_array_allocate_callback):
(pas_try_reallocate_array):
(pas_try_reallocate_primitive_allocate_callback):
(pas_try_reallocate_primitive):
- libpas/src/libpas/pas_try_shrink.h: Added.
(pas_try_shrink):
- libpas/src/libpas/pas_typed_allocation_result.h: Added.
(pas_typed_allocation_result_create_empty):
(pas_typed_allocation_result_create):
(pas_typed_allocation_result_as_intrinsic_allocation_result):
(pas_typed_allocation_result_create_with_intrinsic_allocation_result):
(pas_typed_allocation_result_zero):
(pas_typed_allocation_result_set_errno):
(pas_typed_allocation_result_crash_on_error):
- libpas/src/libpas/pas_utility_heap.c: Added.
(pas_utility_heap_allocate_with_alignment):
(pas_utility_heap_try_allocate):
(pas_utility_heap_allocate):
(pas_utility_heap_deallocate):
(pas_utility_heap_get_num_free_bytes):
(for_each_live_object_small_object_callback):
(pas_utility_heap_for_each_live_object):
(pas_utility_heap_for_all_allocators):
- libpas/src/libpas/pas_utility_heap.h: Added.
(pas_utility_heap_allocate_with_asserted_kind):
(pas_utility_heap_deallocate_with_ignored_size_and_asserted_kind):
- libpas/src/libpas/pas_utility_heap_config.c: Added.
(pas_utility_heap_allocate_page):
(pas_utility_heap_config_for_each_shared_page_directory):
- libpas/src/libpas/pas_utility_heap_config.h: Added.
(pas_utility_heap_page_header_for_boundary):
(pas_utility_heap_boundary_for_page_header):
(pas_utility_heap_shared_page_directory_selector):
(pas_utility_heap_create_page_header):
(pas_utility_heap_destroy_page_header):
(pas_heap_config_is_utility):
(pas_heap_config_heap_lock_hold_mode):
- libpas/src/libpas/pas_utility_heap_support.h: Copied from Source/WTF/wtf/FastTLS.h.
- libpas/src/libpas/pas_utils.c: Added.
(pas_panic):
(pas_assertion_failed):
(pas_deallocation_did_fail):
(pas_set_deallocation_did_fail_callback):
(pas_reallocation_did_fail):
(pas_set_reallocation_did_fail_callback):
- libpas/src/libpas/pas_utils.h: Added.
(pas_is_power_of_2):
(pas_round_down_to_power_of_2):
(pas_round_down):
(pas_round_up_to_power_of_2):
(pas_round_up):
(pas_modulo_power_of_2):
(pas_is_aligned):
(pas_reverse):
(pas_reverse64):
(pas_make_mask64):
(pas_compare_and_swap_uintptr_weak):
(pas_compare_and_swap_uintptr_strong):
(pas_compare_and_swap_bool_weak):
(pas_compare_and_swap_bool_strong):
(pas_compare_and_swap_uint16_weak):
(pas_compare_and_swap_uint32_weak):
(pas_compare_and_swap_uint32_strong):
(pas_compare_and_swap_uint64_weak):
(pas_compare_and_swap_uint64_strong):
(pas_compare_and_swap_ptr_weak):
(pas_compare_and_swap_ptr_strong):
(pas_fence_after_load):
(pas_store_store_fence):
(pas_opaque):
(pas_pair_create):
(pas_compare_and_swap_pair_weak):
(pas_compare_and_swap_pair_strong):
(pas_atomic_load_pair):
(pas_atomic_store_pair):
(pas_hash32):
(pas_hash64):
(pas_hash_intptr):
(pas_hash_ptr):
(pas_log2):
(pas_log2_rounded_up):
(pas_log2_rounded_up_safe):
(pas_non_empty_ranges_overlap):
(pas_ranges_overlap):
(pas_xorshift32):
(pas_large_object_hash):
(pas_is_divisible_by):
- libpas/src/libpas/pas_utils_prefix.h: Added.
(pas_round_up_to_power_of_2):
(pas_compiler_fence):
(pas_fence):
(pas_depend_impl):
(pas_depend):
(pas_depend_cpu_only):
(pas_memcpy):
- libpas/src/libpas/pas_versioned_field.c: Added.
(pas_versioned_field_minimize):
(pas_versioned_field_maximize):
(pas_versioned_field_minimize_watched):
(pas_versioned_field_maximize_watched):
- libpas/src/libpas/pas_versioned_field.h: Added.
(pas_versioned_field_construct):
(pas_versioned_field_create):
(pas_versioned_field_create_with_invalid_version):
(pas_versioned_field_create_empty):
(pas_versioned_field_with_version):
(pas_versioned_field_with_value):
(pas_versioned_field_as_pair):
(pas_versioned_field_from_pair):
(pas_versioned_field_equals):
(pas_versioned_field_read_torn):
(pas_versioned_field_read):
(pas_versioned_field_weak_cas):
(pas_versioned_field_strong_cas):
(pas_versioned_field_read_to_watch):
(pas_versioned_field_try_write):
(pas_versioned_field_try_write_watched):
(pas_versioned_field_write):
- libpas/src/libpas/pas_virtual_range.c: Copied from Source/WTF/wtf/FastTLS.h.
- libpas/src/libpas/pas_virtual_range.h: Added.
(pas_virtual_range_create):
(pas_virtual_range_create_empty):
(pas_virtual_range_get_range):
(pas_virtual_range_is_empty):
(pas_virtual_range_size):
(pas_virtual_range_overlaps):
- libpas/src/libpas/pas_virtual_range_min_heap.h: Copied from Source/WTF/wtf/FastTLS.h.
(pas_virtual_range_compare_begin):
(pas_virtual_range_get_index):
(pas_virtual_range_set_index):
- libpas/src/libpas/pas_zero_mode.h: Added.
(pas_zero_mode_get_string):
(pas_zero_mode_validate):
(pas_zero_mode_merge):
- libpas/src/libpas/thingy_heap.c: Added.
(thingy_try_allocate_primitive):
(thingy_try_allocate_primitive_zeroed):
(thingy_try_allocate_primitive_with_alignment):
(thingy_try_reallocate_primitive):
(thingy_try_allocate):
(thingy_try_allocate_zeroed):
(thingy_try_allocate_array):
(thingy_try_allocate_zeroed_array):
(thingy_get_allocation_size):
(thingy_try_reallocate_array):
(thingy_deallocate):
(thingy_heap_ref_get_heap):
(thingy_utility_heap_allocate):
- libpas/src/libpas/thingy_heap.h: Added.
- libpas/src/libpas/thingy_heap_config.c: Copied from Source/WTF/wtf/FastTLS.h.
- libpas/src/libpas/thingy_heap_config.h: Added.
- libpas/src/libpas/thingy_heap_prefix.h: Added.
- libpas/src/mbmalloc/mbmalloc_bmalloc.c: Copied from Source/WTF/wtf/FastTLS.h.
(mbmalloc):
(mbmemalign):
(mbrealloc):
(mbfree):
(mbscavenge):
- libpas/src/mbmalloc/mbmalloc_hotbit.c: Copied from Source/WTF/wtf/FastTLS.h.
(mbmalloc):
(mbmemalign):
(mbrealloc):
(mbfree):
(mbscavenge):
- libpas/src/mbmalloc/mbmalloc_iso_common_primitive.c: Added.
(install_verifier_if_necessary):
(mbmalloc):
(mbmemalign):
(mbrealloc):
(mbfree):
(dump_summary):
(mbscavenge):
- libpas/src/mbmalloc/mbmalloc_lineref.c: Copied from Source/WTF/wtf/FastTLS.h.
(mbmalloc):
(mbmemalign):
(mbrealloc):
(mbfree):
(mbscavenge):
- libpas/src/test/BitfieldVectorTests.cpp: Added.
(std::testBitfieldNumWords):
(std::testBitfieldNumFields):
(std::testBitfieldWordIndex):
(std::testBitfieldFieldIndex):
(std::testBitfieldFieldShift):
(std::BitfieldVector::BitfieldVector):
(std::BitfieldVector::get const):
(std::BitfieldVector::set):
(std::testBitfieldVectorForward):
(std::testBitfieldVectorBackward):
(addBitfieldVectorTests):
- libpas/src/test/BitvectorTests.cpp: Added.
(std::testFindFirst):
(addBitvectorTests):
- libpas/src/test/CartesianTreeTests.cpp: Added.
(std::TestNode::TestNode):
(std::TestNode::compare):
(std::TestNode::getXKey):
(std::TestNode::getYKey):
(std::Pair::Pair):
(std::Pair::operator== const):
(std::Pair::operator< const):
(std::findExact):
(std::remove):
(std::findLeastGreaterThanOrEqual):
(std::assertFoundAndRemove):
(std::assertEqual):
(std::assertSameValuesForKey):
(std::cartesianTreePrintWidth):
(std::printSpaces):
(std::dumpCartesianTree):
(std::dumpVector):
(std::testDriver):
(std::randomTestDriver):
(addCartesianTreeTests):
- libpas/src/test/CoalignTests.cpp: Added.
(std::testCoalignOneSided):
(std::testCoalignOneSidedError):
(std::testCoalign):
(addCoalignTests):
- libpas/src/test/ExtendedGCDTests.cpp: Copied from Source/WTF/wtf/FastTLS.h.
(std::testExtendedGCD):
(addExtendedGCDTests):
- libpas/src/test/HashtableTests.cpp: Added.
(std::hashtableForEachEntryCallback):
(std::hashtableForEachEntry):
(std::Key::Key):
(std::CollidingEntry_create_empty):
(std::CollidingEntry_create_deleted):
(std::CollidingEntry_is_empty_or_deleted):
(std::CollidingEntry_is_empty):
(std::CollidingEntry_is_deleted):
(std::CollidingEntry_get_key):
(std::CollidingKey_get_hash):
(std::CollidingKey_is_equal):
(std::testEmptyCollidingHashtable):
(std::testCollidingHashtableAddFindTakeImpl):
(std::testCollidingHashtableAddFindTake):
(std::testCollidingHashtableAddAddTakeSet):
(std::testCollidingHashtableAddAddAddTakeTakeSet):
(std::testCollidingHashtableAddAddAddTakeTakeAddSet):
(std::OutOfLineEntry_create_empty):
(std::OutOfLineEntry_create_deleted):
(std::OutOfLineEntry_is_empty_or_deleted):
(std::OutOfLineEntry_is_empty):
(std::OutOfLineEntry_is_deleted):
(std::OutOfLineEntry_get_key):
(std::OutOfLineKey_get_hash):
(std::OutOfLineKey_is_equal):
(std::testOutOfLineHashtable):
(addHashtableTests):
- libpas/src/test/HeapLocker.h: Copied from Source/WTF/wtf/FastTLS.h.
(HeapLocker::HeapLocker):
(HeapLocker::~HeapLocker):
- libpas/src/test/IsoDynamicPrimitiveHeapTests.cpp: Added.
(std::allocate42):
(std::allocate42WithAlignment):
(std::allocate42Zeroed):
(std::reallocate42):
(std::testManySizesAndKeys):
(std::testManySizesAndKeysInTandem):
(addIsoDynamicPrimitiveHeapTests):
- libpas/src/test/IsoHeapChaosTests.cpp: Added.
(std::flushDeallocationLogAndStopAllocators):
(std::verifyObjectSet):
(std::scavengerDidStart):
(std::scavengerWillShutDown):
(std::PageRange::PageRange):
(std::PageRange::operator< const):
(std::PageRange::end const):
(std::addPageRange):
(std::addPageRangeCallback):
(std::RecordedRange::RecordedRange):
(std::RecordedRange::operator< const):
(std::RecordedRange::end const):
(std::ReaderRange::ReaderRange):
(std::ReaderRange::operator< const):
(std::enumeratorReader):
(std::enumeratorRecorder):
(std::testAllocationChaos):
(std::addTheTests):
(std::addSpotTests):
(addIsoHeapChaosTests):
- libpas/src/test/IsoHeapPageSharingTests.cpp: Added.
(std::testTakePages):
(std::testTakePagesFromCorrectHeap):
(std::testLargeHeapTakesPagesFromCorrectSmallHeap):
(std::testLargeHeapTakesPagesFromCorrectSmallHeapAllocateAfterFree):
(std::testLargeHeapTakesPagesFromCorrectSmallHeapWithFancyOrder):
(std::testLargeHeapTakesPagesFromCorrectLargeHeap):
(std::testLargeHeapTakesPagesFromCorrectLargeHeapAllocateAfterFreeOnSmallHeap):
(std::testLargeHeapTakesPagesFromCorrectLargeHeapAllocateAfterFreeOnAnotherLargeHeap):
(std::testLargeHeapTakesPagesFromCorrectLargeHeapWithFancyOrder):
(std::testSmallHeapTakesPagesFromCorrectLargeHeap):
(std::testSmallHeapTakesPagesFromCorrectLargeHeapWithFancyOrder):
(std::testSmallHeapTakesPagesFromCorrectLargeHeapAllocateAfterFreeOnSmallHeap):
(std::testSmallHeapTakesPagesFromCorrectLargeHeapAllocateAfterFreeOnAnotherLargeHeap):
(std::thingyName):
(std::forEachThingyKind):
(std::setupThingy):
(std::cleanThingy):
(std::checkThingy):
(std::addObject):
(std::deleteThingy):
(std::allocationKindName):
(std::allocateThingiesImpl):
(std::allocateThingies):
(std::heapSummaryFor):
(std::assertOnlyDecommitted):
(std::testFullVdirToVdirObvious):
(std::testFullVdirToVdirObviousBackwards):
(std::testFullVdirToVdirOpportunistic):
(std::testFullVdirToVdirOpportunisticBackwards):
(std::testFullVdirToVdirNewAllocation):
(std::testFullVdirToVdirNewLateAllocation):
(std::testFullVdirToVdirNewDirAllocation):
(std::testFullVdirToVdirNewLateDirAllocation):
(std::testFullVdirToVdirNewLargeAllocation):
(std::testFullVdirToVdirNewLateLargeAllocation):
(std::testFullVdirToDir):
(std::testFullVdirToDirBackwardsTarget):
(std::testFullVdirToDirBackwardsSource):
(std::testFullVdirToDirNewAllocation):
(std::testFullVdirToDirNewLateAllocation):
(std::testFullVdirToDirNewDirAllocation):
(std::testFullVdirToDirNewLateDirAllocation):
(std::testFullVdirToDirNewLargeAllocation):
(std::testFullNotVdirButLargeToDirNewLargeAllocation):
(std::testFullVdirToDirNewLateLargeAllocation):
(std::testFullVdirToDirNewAllocationAlsoPhysical):
(std::testFullVdirToDirNewLateAllocationAlsoPhysical):
(std::testFullVdirToLarge):
(std::testFullVdirToLargeBackwardsTarget):
(std::testFullVdirToLargeBackwardsSource):
(std::testFullVdirToLargeNewAllocation):
(std::testFullVdirToLargeNewLateAllocation):
(std::testFullVdirToLargeNewDirAllocation):
(std::testFullVdirToLargeNewLateDirAllocation):
(std::testFullVdirToLargeNewLargeAllocation):
(std::testFullNotVdirButLargeToLargeNewLargeAllocation):
(std::testFullVdirToLargeNewLateLargeAllocation):
(std::testFullVdirToLargeNewAllocationAlsoPhysical):
(std::testFullVdirToLargeNewLateAllocationAlsoPhysical):
(std::testFullDirToVdir):
(std::testFullDirToVdirBackwards):
(std::testFullDirToVdirNewAllocation):
(std::testFullDirToVdirNewLateAllocation):
(std::testFullDirToDir):
(std::testFullDirToDirBackwards):
(std::testFullDirToDirWithThree):
(std::testFullDirToDirWithThreeBackwards):
(std::testFullDirToDirWithThreeNewAllocation):
(std::testFullDirToDirWithThreeNewLateAllocation):
(std::testFullDirToDirWithThreeNewVdirAllocation):
(std::testFullDirToDirWithThreeNewLateVdirAllocation):
(std::testFullDirToLarge):
(std::testFullDirToLargeNewAllocation):
(std::testFullDirToLargeNewLateAllocation):
(std::testFullDirToLargeNewVdirAllocation):
(std::testFullDirToLargeNewLateVdirAllocation):
(std::testFullLargeToVdirForwardMinEpoch):
(std::testFullNotLargeButDirToVdirCombinedUseEpoch):
(std::testFullLargeToVdirCombinedUseEpoch):
(std::testFullLargeToVdirBackwards):
(std::testFullLargeToVdirNewAllocation):
(std::testFullLargeToVdirNewLateAllocation):
(std::testFullLargeToVdirNewDirAllocationForwardMinEpoch):
(std::testFullLargeToVdirNewDirAllocationCombinedUseEpoch):
(std::testFullLargeToVdirNewLateDirAllocationForwardMinEpoch):
(std::testFullLargeToVdirNewLateDirAllocationCombinedUseEpoch):
(std::testFullLargeToDirForwardMinEpoch):
(std::testFullLargeToDirCombinedUseEpoch):
(std::testFullLargeToDirBackwardsSource):
(std::testFullLargeToDirBackwardsTarget):
(std::testFullLargeToDirBackwardsSourceAndTarget):
(std::testFullLargeToDirNewAllocation):
(std::testFullLargeToDirNewLateAllocation):
(std::testFullLargeToDirNewVdirAllocationForwardMinEpoch):
(std::testFullLargeToDirNewVdirAllocationCombinedUseEpoch):
(std::testFullLargeToDirNewLateVdirAllocationForwardMinEpoch):
(std::testFullLargeToDirNewLateVdirAllocationCombinedUseEpoch):
(std::testFullLargeToDirNewDirAllocationForwardMinEpoch):
(std::testFullLargeToDirNewDirAllocationCombinedUseEpoch):
(std::testFullLargeToDirNewLateDirAllocationForwardMinEpoch):
(std::testFullLargeToDirNewLateDirAllocationCombinedUseEpoch):
(std::testFullLargeToLargeForwardMinEpoch):
(std::testFullLargeToLargeCombinedUseEpoch):
(std::testFullLargeToLargeReverse):
(std::testFullLargeToLargeNewAllocation):
(std::testFullLargeToLargeNewLateAllocation):
(std::testFullLargeToLargeNewVdirAllocation):
(std::testFullLargeToLargeNewLateVdirAllocation):
(std::testFullLargeToLargeNewDirAllocation):
(std::testFullLargeToLargeNewLateDirAllocation):
(std::testNewEligibleHasOlderEpoch):
(std::scavengerCompletionCallback):
(std::testScavengerEventuallyReturnsMemory):
(std::testScavengerEventuallyReturnsMemoryEvenWithoutManualShrink):
(std::scavengerShutDownCallback):
(std::testScavengerShutsDownEventually):
(std::addAllTests):
(addIsoHeapPageSharingTests):
- libpas/src/test/IsoHeapPartialAndBaselineTests.cpp: Added.
(std::FreeOrder::setCount const):
(std::FreeOrder::didSetCount const):
(std::forEachSharedPageDirectoryCallbackAdaptor):
(std::forEachSharedPageDirectory):
(std::numSharedPages):
(std::numCommittedSharedPages):
(std::testSimplePartialAllocations):
(std::testFreeAroundPrimordialStop):
(std::testFreeInterleavedAroundPrimordialStop):
(std::PartialProgram::PartialProgram):
(std::testMultiplePartialsFromDifferentHeapsPerShared):
(std::addMultiplePartialsFromDifferentHeapsPerSharedTests):
(std::testMultiplePartialsFromDifferentThreadsPerShared):
(std::incrementalRandom):
(std::zeroRandom):
(std::testTwoBaselinesEvictions):
(std::addScavengerDependentTests):
(addIsoHeapPartialAndBaselineTests):
- libpas/src/test/IsoHeapReservedMemoryTests.cpp: Added.
(std::testSizeProgression):
(addIsoHeapReservedMemoryTests):
- libpas/src/test/IsoHeapTablingTests.cpp: Added.
(std::testTabling):
(std::testUntabling):
(std::addTablingTests):
(addIsoHeapTablingTests):
- libpas/src/test/JITHeapTests.cpp: Added.
(std::testAllocateShrinkAndAllocate):
(addJITHeapTests):
- libpas/src/test/LargeFreeHeapTests.cpp: Added.
(std::alignSimple):
(std::trappingAllocator):
(std::trappingDeallocator):
(std::failingAllocator):
(std::Action::allocate):
(std::Action::deallocate):
(std::Free::Free):
(std::Free::operator== const):
(std::Free::operator< const):
(std::Allocation::Allocation):
(std::function<pas_aligned_allocation_result):
(std::function<void):
(std::operator<<):
(std::allocatorAdapter):
(std::deallocatorAdapter):
(std::iterateAdapter):
(std::iterateHeap):
(std::testLargeFreeHeapImpl):
(std::testSimpleLargeFreeHeap):
(std::testFastLargeFreeHeap):
(std::testBootstrapHeap):
(std::freeListSize):
(addLargeFreeHeapTests):
- libpas/src/test/LargeSharingPoolDump.cpp: Copied from Source/WTF/wtf/FastTLS.h.
(std::forEachAdapter):
(forEachLargeSharingPoolNode):
(dumpLargeSharingPool):
- libpas/src/test/LargeSharingPoolDump.h: Copied from Source/WTF/wtf/FastTLS.h.
- libpas/src/test/LargeSharingPoolTests.cpp: Added.
(std::Range::Range):
(std::assertState):
(std::testBadCoalesceEpochUpdate):
(addLargeSharingPoolTests):
- libpas/src/test/LockFreeReadPtrPtrHashtableTests.cpp: Added.
(std::hashFunction):
(std::testChaos):
(addLockFreeReadPtrPtrHashtableTests):
- libpas/src/test/MinHeapTests.cpp: Added.
(std::Element::Element):
(std::asChar):
(std::compare):
(std::getIndex):
(std::setIndex):
(std::dumpHeap):
(std::testMinHeap):
(std::minHeapChaos):
(std::testMinHeapChaos):
(std::makeBootstrapAllocationConfig):
(std::testBootstrapMinHeapChaos):
(addMinHeapTests):
- libpas/src/test/RaceTests.cpp: Added.
(std::hookCallbackAdapter):
(std::willLockCallback):
(std::recordLockAcquisition):
(std::didLockCallback):
(std::didTryLockCallback):
(std::willUnlockCallback):
(std::isHoldingContendedLocks):
(std::InstallRaceHooks::InstallRaceHooks):
(std::testLocalAllocatorStopRace):
(std::testLocalAllocatorStopRaceAgainstScavenge):
(addRaceTests):
- libpas/src/test/RedBlackTreeTests.cpp: Added.
(std::TestNode::TestNode):
(std::TestNode::compare):
(std::TestNode::compareKey):
(std::Pair::Pair):
(std::Pair::operator== const):
(std::Pair::operator< const):
(std::findExact):
(std::remove):
(std::findLeastGreaterThanOrEqual):
(std::assertFoundAndRemove):
(std::assertEqual):
(std::assertSameValuesForKey):
(std::push):
(std::validateEnumerable):
(std::testDriver):
(std::randomTestDriver):
(addRedBlackTreeTests):
- libpas/src/test/SkipListTests.cpp: Added.
(std::TestNode::TestNode):
(std::TestNode::fromSkipListNode):
(std::TestNode::compareKey):
(std::TestNode::compareKeyLeastGreaterThanOrEqual):
(std::TestNode::compareKeyForInsert):
(std::TestNode::compare):
(std::Pair::Pair):
(std::Pair::operator== const):
(std::Pair::operator< const):
(std::findExact):
(std::remove):
(std::findLeastGreaterThanOrEqual):
(std::assertFoundAndRemove):
(std::assertEqual):
(std::assertSameValuesForKey):
(std::dumpSkipList):
(std::dumpVector):
(std::testDriver):
(std::randomTestDriver):
(addSkipListTests):
- libpas/src/test/SuspendScavenger.h: Copied from Source/WTF/wtf/FastTLS.h.
(SuspendScavenger::SuspendScavenger):
(SuspendScavenger::~SuspendScavenger):
- libpas/src/test/TSDTests.cpp: Added.
(std::destructor):
(std::testTSD):
(addTSDTests):
- libpas/src/test/TestHarness.cpp: Added.
(allocationConfigAllocate):
(allocationConfigDeallocate):
(TestScopeImpl::TestScopeImpl):
(RuntimeConfigTestScope::RuntimeConfigTestScope):
(ForceExclusives::ForceExclusives):
(ForceTLAs::ForceTLAs):
(ForceBitfit::ForceBitfit):
(DisableBitfit::DisableBitfit):
(ForcePartials::ForcePartials):
(ForceBaselines::ForceBaselines):
(RunScavengerFully::RunScavengerFully):
(RunScavengerOnNonRemoteCaches::RunScavengerOnNonRemoteCaches):
(SuspendScavengerScope::SuspendScavengerScope):
(VerifyGranules::VerifyGranules):
(InstallVerifier::InstallVerifier):
(DisableExplosion::DisableExplosion):
(ForceExplosion::ForceExplosion):
(ForceOneMagazine::ForceOneMagazine):
(EpochIsCounter::EpochIsCounter):
(BootJITHeap::BootJITHeap):
(testSucceeded):
(deterministicRandomNumber):
(addTest):
(TestScope::TestScope):
(TestScope::~TestScope):
(hasScope):
(dumpObjectSet):
(dumpObjectsInHeap):
(dumpObjectsInHeaps):
(forEachLiveObject):
(verifyMinimumObjectDistance):
(verifyExactObjectDistance):
(runOneTest):
(runForkedTest):
(runTests):
(runFilteredTests):
(main):
(scavenge):
(printStatusReport):
- libpas/src/test/TestHarness.h: Added.
(stringStreamConstruct):
(dumpToString):
(operator<<):
- libpas/src/test/ThingyAndUtilityHeapAllocationTests.cpp: Added.
(std::flushDeallocationLog):
(std::flushDeallocationLogAndStopAllocators):
(std::sizeClassFor):
(std::isLarge):
(std::forEachLiveUtilityObjectAdapter):
(std::forEachLiveUtilityObject):
(std::forEachCommittedViewAdapter):
(std::forEachCommittedView):
(std::numCommittedViews):
(std::numViews):
(std::verifyMinimumObjectDistance):
(std::verifyObjectSet):
(std::verifyUtilityObjectSet):
(std::verifyHeapEmpty):
(std::PrimitiveAllocator::PrimitiveAllocator):
(std::PrimitiveReallocAllocator::PrimitiveReallocAllocator):
(std::AlignedPrimitiveAllocator::AlignedPrimitiveAllocator):
(std::createIsolatedHeapRef):
(std::IsolatedHeapAllocator::IsolatedHeapAllocator):
(std::IsolatedHeapArrayAllocator::IsolatedHeapArrayAllocator):
(std::CounterScope::CounterScope):
(std::CounterScope::~CounterScope):
(std::testDeallocateNull):
(std::deallocationFailureCallback):
(std::DeallocationShouldFail::DeallocationShouldFail):
(std::DeallocationShouldFail::~DeallocationShouldFail):
(std::testDeallocateMalloc):
(std::testDeallocateStack):
(std::testSimpleAllocation):
(std::testSmallOrMediumAllocation):
(std::testSmallAllocation):
(std::testLargeAllocation):
(std::testAllocationWithInterleavedFragmentation):
(std::testFreeListRefillSpans):
(std::testInternalScavenge):
(std::testInternalScavengeFromCorrectDirectory):
(std::SizeClassProgram::SizeClassProgram):
(std::testSizeClassCreationImpl):
(std::testSizeClassCreation):
(std::testSpuriousEligibility):
(std::testBasicSizeClassNotSet):
(std::testSmallDoubleFree):
(std::testSmallFreeInner):
(std::testSmallFreeNextWithShrink):
(std::testSmallFreeNextWithoutShrink):
(std::testSmallFreeNextBeforeShrink):
(std::AllocationProgram::allocate):
(std::AllocationProgram::free):
(std::AllocationProgram::kind const):
(std::AllocationProgram::key const):
(std::AllocationProgram::isAllocate const):
(std::AllocationProgram::count const):
(std::AllocationProgram::alignment const):
(std::AllocationProgram::isFree const):
(std::IsolatedComplexAllocator::IsolatedComplexAllocator):
(std::IsolatedUnitComplexAllocator::IsolatedUnitComplexAllocator):
(std::checkObjectDistances):
(std::checkObjectBeginnings):
(std::addObjectAllocation):
(std::ExpectedBytes::exact):
(std::ExpectedBytes::upperBound):
(std::ExpectedBytes::check):
(std::testComplexLargeAllocationImpl):
(std::testComplexLargeAllocation):
(std::testAllocationCountProgression):
(std::testAllocationChaos):
(std::testUtilityAllocationChaos):
(std::testCombinedAllocationChaos):
(std::testLargeDoubleFree):
(std::testLargeOffsetFree):
(std::addDeallocationTests):
(std::testReallocatePrimitive):
(std::testReallocateArray):
(std::addSmallHeapTests):
(std::addLargeHeapTests):
(std::addMediumHeapTests):
(std::addLargerThanMediumHeapTests):
(std::addMargeBitfitTests):
(std::addLargerThanMargeBitfitTests):
(std::addCombinedHeapTests):
(std::addAllTestsImpl):
(std::addAllTests):
(addThingyAndUtilityHeapAllocationTests):
- libpas/src/test/UtilsTests.cpp: Added.
(std::testIsDivisibleBy3):
(addUtilsTests):
- libpas/src/toys/QuadraticSizeClass.cpp: Added.
(std::printSizeCell):
(std::printProgression):
(main):
- libpas/src/verifier/Verifier.cpp: Added.
(std::Locker::Locker):
(std::Locker::~Locker):
(std::Allocation::Allocation):
(std::allocationCallback):
(std::deallocationCallback):
(std::dumpStateForHeapKind):
(std::dumpStateHoldingLock):
(std::uninstall):
(pas_install_verifier):
(pas_dump_state):
- libpas/src/verifier/Verifier.h: Copied from Source/WTF/wtf/FastTLS.h.
- libpas/test-impl.sh: Added.
- libpas/test.sh: Added.
Source/JavaScriptCore:
Switch the ExecutableAllocator to the libpas jit_heap. The libpas jit_heap uses two size
categories of bitfit and a large heap, and is happy to do its approximate first-fit in any
ranges of memory you give it. Jit_heap never allocates metadata inside the memory it manages.
Allocations and deallocations take a constant-bounded amount of time except for unusual
situations, and are protected by fine-grained locking in most cases. Decommit follows libpas
scavenging policy. This alone is a speed-up on Speedometer (probably about 1% or more).
Also expose some libpas introspection via $vm.
- CMakeLists.txt:
- JavaScriptCore.xcodeproj/project.pbxproj:
- assembler/MacroAssemblerCodeRef.h:
- jit/ExecutableAllocator.cpp:
(JSC::ExecutableAllocator::underMemoryPressure):
(JSC::ExecutableAllocator::memoryPressureMultiplier):
(JSC::ExecutableAllocator::allocate):
(JSC::ExecutableAllocator::committedByteCount):
(JSC::ExecutableMemoryHandle::createImpl):
(JSC::ExecutableMemoryHandle::~ExecutableMemoryHandle):
(JSC::ExecutableMemoryHandle::sizeInBytes const):
(JSC::ExecutableMemoryHandle::shrink):
- jit/ExecutableAllocator.h:
- jit/ExecutableMemoryHandle.h: Added.
(JSC::ExecutableMemoryHandle::start const):
(JSC::ExecutableMemoryHandle::end const):
(JSC::ExecutableMemoryHandle::startAsInteger const):
(JSC::ExecutableMemoryHandle::endAsInteger const):
(JSC::ExecutableMemoryHandle::containsIntegerAddress const):
(JSC::ExecutableMemoryHandle::contains const):
(JSC::ExecutableMemoryHandle::key const):
(JSC::ExecutableMemoryHandle::dump const):
(JSC::ExecutableMemoryHandle::ExecutableMemoryHandle):
- tools/JSDollarVM.cpp:
(JSC::JSC_DEFINE_HOST_FUNCTION):
(JSC::JSDollarVM::finishCreation):
Source/WTF:
Introduce flags for using libpas as the ExecutableAllocator.
Explicitly ask for gigacage initialization, since libpas prefers it this way right now.
- wtf/FastTLS.h:
- wtf/PlatformUse.h:
- wtf/Threading.cpp:
(WTF::initialize):
Tools:
Disable the IsoHeap tests if we're using libpas. Libpas has its own tests.
- TestWebKitAPI/Tests/WTF/bmalloc/IsoHeap.cpp:
- 12:32 AM Changeset in webkit [279866] by
-
- 2 edits in trunk/Source/WebCore
Fix the Apple internal iOS Simulator build
Unreviewed.
- dom/Node.h:
- 12:12 AM Changeset in webkit [279865] by
-
- 2 edits in trunk/Source/WebKit
Fix the Apple Internal iOS build
Unreviewed.
- WebProcess/cocoa/WebProcessCocoa.mm:
Jul 12, 2021:
- 9:39 PM Changeset in webkit [279864] by
-
- 3 edits in trunk/Source/WebCore
[curl] Can't finish loading some websites after r271946 started throttling low priority resources
https://bugs.webkit.org/show_bug.cgi?id=227863
Reviewed by Don Olmstead.
NetworkLoadScheduler started throttling low priority resource
loading since r271946. It uses curl_easy_pause to pause the
resource loads. CURLMOPT_MAX_HOST_CONNECTIONS is set to 6 to limit
the number of connections per host. In the certain condition,
curl_multi_fdset can constantly return -1 if 6 handles of the same
host are paused.
This patch changes CurlRequest::start not to actually start the
job if it is suspended.
- platform/network/curl/CurlRequest.cpp:
(WebCore::CurlRequest::start):
(WebCore::CurlRequest::suspend):
(WebCore::CurlRequest::resume):
(WebCore::CurlRequest::setupTransfer):
(WebCore::CurlRequest::setRequestPaused):
- platform/network/curl/CurlRequest.h:
- 7:05 PM Changeset in webkit [279863] by
-
- 19 edits in trunk/Source/WebKit
Make WebKit's UserInterfaceIdiom operate in terms of the exceptions, not the rule
https://bugs.webkit.org/show_bug.cgi?id=227885
<rdar://problem/79987158>
Reviewed by Wenson Hsieh.
No new tests, no change in behavior.
In general, we consider the macOS/iPad behavior the "normal" WebKit behavior,
and exceptions to that for iPhone or Watch are just that: exceptions.
To bring the code in line with this understanding, make places that
we make decisions based on UIUserInterfaceIdiom take macOS/iPad behavior
as the default, and make iPhone/Watch the special cases.
- Shared/UserInterfaceIdiom.h:
- Shared/UserInterfaceIdiom.mm:
(WebKit::currentUserInterfaceIdiomIsPhoneOrWatch):
(WebKit::setCurrentUserInterfaceIdiomIsPhoneOrWatch):
Also, lump iPod Touch in with iPhone when checking based on device class.
(WebKit::updateCurrentUserInterfaceIdiom):
(WebKit::currentUserInterfaceIdiomIsPadOrMac): Deleted.
(WebKit::setCurrentUserInterfaceIdiomIsPadOrMac): Deleted.
- Shared/WebProcessCreationParameters.cpp:
(WebKit::WebProcessCreationParameters::encode const):
(WebKit::WebProcessCreationParameters::decode):
- Shared/WebProcessCreationParameters.h:
- Shared/ios/WebPreferencesDefaultValuesIOS.mm:
(WebKit::defaultTextAutosizingUsesIdempotentMode):
- UIProcess/API/Cocoa/WKWebViewConfiguration.mm:
(-[WKWebViewConfiguration init]):
- UIProcess/Cocoa/WebProcessPoolCocoa.mm:
(WebKit::WebProcessPool::platformInitializeWebProcess):
(WebKit::WebProcessPool::registerNotificationObservers):
- UIProcess/ios/SmartMagnificationController.mm:
(WebKit::SmartMagnificationController::didCollectGeometryForSmartMagnificationGesture):
- UIProcess/ios/WKContentViewInteraction.mm:
(-[WKFormInputSession setAccessoryViewCustomButtonTitle:]):
(-[WKContentView endEditingAndUpdateFocusAppearanceWithReason:]):
(-[WKContentView _shouldShowAutomaticKeyboardUIIgnoringInputMode]):
(-[WKContentView _zoomToRevealFocusedElement]):
(-[WKContentView _elementTypeRequiresAccessoryView:]):
(-[WKContentView _updateAccessory]):
(-[WKContentView _shouldUseLegacySelectPopoverDismissalBehavior]):
- UIProcess/ios/WebDataListSuggestionsDropdownIOS.mm:
(WebKit::WebDataListSuggestionsDropdownIOS::show):
- UIProcess/ios/WebPageProxyIOS.mm:
(WebKit::desktopClassBrowsingSupported):
- UIProcess/ios/forms/WKAirPlayRoutePicker.mm:
(-[WKAirPlayRoutePicker show:fromRect:]):
- UIProcess/ios/forms/WKFileUploadPanel.mm:
(-[WKFileUploadPanel _showPhotoPickerWithSourceType:]):
(-[WKFileUploadPanel _presentMenuOptionForCurrentInterfaceIdiom:]):
- UIProcess/ios/forms/WKFormSelectControl.mm:
(-[WKFormSelectControl initWithView:]):
- UIProcess/ios/forms/WKFormSelectPicker.mm:
(-[WKSelectMultiplePicker configurePresentation]):
- WebProcess/WebProcess.messages.in:
- WebProcess/cocoa/WebProcessCocoa.mm:
(WebKit::WebProcess::platformInitializeWebProcess):
(WebKit::WebProcess::userInterfaceIdiomDidChange):
- 6:57 PM Changeset in webkit [279862] by
-
- 2 edits in trunk/Source/WebInspectorUI
Web Inspector: REGRESSION(r279510): Elements: Computed: an (i) button is shown for computed property traces
https://bugs.webkit.org/show_bug.cgi?id=227892
Reviewed by Devin Rousso.
Property traces need to opt out of displaying the (i) button as they do for things like the colon and semicolon.
- UserInterface/Views/ComputedStyleSection.css:
(.computed-style-section .property-trace-item .property .name,):
- 6:47 PM Changeset in webkit [279861] by
-
- 10 edits in trunk/Source/JavaScriptCore
Revert r277027: breaks GC.
https://bugs.webkit.org/show_bug.cgi?id=227888
Reviewed by Saam Barati.
The patch in r277027 to make deletion of GCAwareJITStubRoutines incremental has a
bug: the routine may not be deleted yet by the incremental sweeper before the next
GC cycle, and the GC will not be happy visiting dead cell pointers in that routine.
There is also another bug with the triggering of sweeping.
For now, we're reverting the patch, and will revisit this at a later time.
- CMakeLists.txt:
- heap/Heap.cpp:
(JSC::Heap::deleteUnmarkedCompiledCode):
(JSC::Heap::sweepSynchronously):
- heap/Heap.h:
- heap/HeapInlines.h:
(JSC::Heap::mayHaveJITStubRoutinesToDelete): Deleted.
(JSC::Heap::deleteDeadJITStubRoutines): Deleted.
- heap/IncrementalSweeper.cpp:
(JSC::IncrementalSweeper::doSweep):
- heap/JITStubRoutineSet.cpp:
(JSC::JITStubRoutineSet::deleteUnmarkedJettisonedStubRoutines):
- heap/JITStubRoutineSet.h:
(JSC::JITStubRoutineSet::deleteUnmarkedJettisonedStubRoutines):
(JSC::JITStubRoutineSet::traceMarkedStubRoutines):
(JSC::JITStubRoutineSet::mayHaveRoutinesToDelete): Deleted.
(JSC::JITStubRoutineSet::notifyHaveRoutinesToDelete): Deleted.
- jit/GCAwareJITStubRoutine.cpp:
(JSC::GCAwareJITStubRoutine::observeZeroRefCount):
- jit/JITStubRoutine.h:
(JSC::JITStubRoutine::createSelfManagedRoutine):
- 6:22 PM Changeset in webkit [279860] by
-
- 5 edits1 add in trunk/Source
[Cocoa] Turn on
USE(OS_STATE)
when building with a non-Apple-internal SDK
https://bugs.webkit.org/show_bug.cgi?id=227884
Reviewed by Tim Horton.
Source/WebKit:
Instead of directly importing <os/state_private.h>, introduce a new SPI header (OSStateSPI.h) that simply
includes <os/state_private.h> on internal builds, and falls back to function declarations when using the non-
internal SDK.
- Platform/spi/Cocoa/OSStateSPI.h: Added.
- WebKit.xcodeproj/project.pbxproj:
Drive-by fix: additionally restore the minimum
objectVersion
to 52 rather than 54. This was unintentionally
bumped in r279133.
- WebProcess/cocoa/WebProcessCocoa.mm:
Source/WTF:
Enable the compile-time flag for all Cocoa builds.
- wtf/PlatformUse.h:
- 5:33 PM Changeset in webkit [279859] by
-
- 3 edits in trunk/LayoutTests
REGRESSION (r279806):[iOS Mac wk2 ] fast/canvas/canvas-path-addPath.html is a flaky timeout.
https://bugs.webkit.org/show_bug.cgi?id=227890
Unreviewed test gardening.
Patch by Eric Hutchison <Eric Hutchison> on 2021-07-12
- platform/ios-wk2/TestExpectations:
- platform/mac-wk2/TestExpectations:
- 4:58 PM Changeset in webkit [279858] by
-
- 1 copy in tags/Safari-612.1.22.11.3
Tag Safari-612.1.22.11.3.
- 4:44 PM Changeset in webkit [279857] by
-
- 2 edits in trunk/LayoutTests
[ MacOS & iOS ] animations/leak-document-with-css-animation.html is a flaky failure.
https://bugs.webkit.org/show_bug.cgi?id=226598
Unreviewed test gardening.
Patch by Ayumi Kojima <Ayumi Kojima> on 2021-07-12
- platform/ios-wk2/TestExpectations:
- 4:43 PM Changeset in webkit [279856] by
-
- 4 edits in trunk
_WKWebAuthenticationPanel escapes slashes in origin
https://bugs.webkit.org/show_bug.cgi?id=227724
rdar://80232742
Patch by Garrett Davidson <garrett_davidson@apple.com> on 2021-07-12
Reviewed by Kate Cheney.
Source/WebKit:
Tell NSJSONSerialization not to try to escapes slashes, like those in the scheme of an origin.
- UIProcess/API/Cocoa/_WKWebAuthenticationPanel.mm:
(produceClientDataJson):
Tools:
Update both the makeCredential and getAssertion tests to use an origin.
WebAuthenticationPanel.GetAssertionLA:
This test wasn't using an origin or RPID. Update it to use both. This means both
clientDataJSON and authenticatorData changed. Update both to the new expected
values, using as much plaintext as possible.
WebAuthenticationPanel.MakeCredentialLA:
This test should have caught this issue, but the origin being passed here isn't
valid, because it didn't have a scheme. Per the WebAuthn spec, origins used by
WebAuthn MUST start with "https://". Also update this test to use plaintext
instead of base64 for clientDataJSON.
- TestWebKitAPI/Tests/WebKitCocoa/_WKWebAuthenticationPanel.mm:
(TestWebKitAPI::TEST):
- 4:07 PM Changeset in webkit [279855] by
-
- 5 edits in trunk/Source
AX: Make WebKit observe spatial audio accessibility settings
https://bugs.webkit.org/show_bug.cgi?id=227848
Reviewed by Sam Weinig.
Source/WebKit:
Allow mac and iOS to read from accessibility domains.
Allow mac sandbox to read from com.apple.Accessibility.
- PluginProcess/mac/com.apple.WebKit.plugin-common.sb.in:
- UIProcess/Cocoa/PreferenceObserver.mm:
(-[WKPreferenceObserver init]):
Source/WTF:
This flag was using the wrong format for a HAVE setting, so the code wasn't being compiled in.
- wtf/PlatformHave.h:
- 3:33 PM Changeset in webkit [279854] by
-
- 5 edits in trunk
BifurcatedGraphicsContext can't draw text
https://bugs.webkit.org/show_bug.cgi?id=227883
Reviewed by Wenson Hsieh.
Source/WebCore:
API test: BifurcatedGraphicsContextTests.TextInBifurcatedContext
- platform/graphics/BifurcatedGraphicsContext.cpp:
(WebCore::BifurcatedGraphicsContext::save):
(WebCore::BifurcatedGraphicsContext::restore):
(WebCore::BifurcatedGraphicsContext::paintFrameForMedia):
(WebCore::BifurcatedGraphicsContext::drawText):
(WebCore::BifurcatedGraphicsContext::drawGlyphs):
(WebCore::BifurcatedGraphicsContext::drawEmphasisMarks):
(WebCore::BifurcatedGraphicsContext::drawBidiText):
- platform/graphics/BifurcatedGraphicsContext.h:
Bifurcate a few methods I somehow missed in the original patch.
Also, call GraphicsContext's implementation of save and restore
from the overridden version, because we confusingly currently use
the top-level context's state stack.
Tools:
- TestWebKitAPI/Tests/WebCore/cg/BifurcatedGraphicsContextTestsCG.cpp:
(TestWebKitAPI::TEST):
Add a test ensuring that we get DrawGlyphs commands on both contexts.
- 2:34 PM Changeset in webkit [279853] by
-
- 2 edits in trunk/LayoutTests
[ iOS ] fast/canvas/canvas-overloads-strokeText.html is a flaky crash.
https://bugs.webkit.org/show_bug.cgi?id=227881.
Unreviewed test gardening.
Patch by Eric Hutchison <Eric Hutchison> on 2021-07-12
- platform/ios-wk2/TestExpectations:
- 2:18 PM Changeset in webkit [279852] by
-
- 1 copy in tags/Safari-612.1.23.1.1
Tag Safari-612.1.23.1.1.
- 1:55 PM Changeset in webkit [279851] by
-
- 2 edits in trunk/LayoutTests
[Mac wk1 Debug] webaudio/audioworket-out-of-memory.html is a flaky timeout.
https://bugs.webkit.org/show_bug.cgi?id=227845
Unreviewed test gardening.
Patch by Ayumi Kojima <Ayumi Kojima> on 2021-07-12
- platform/mac-wk1/TestExpectations:
- 1:51 PM Changeset in webkit [279850] by
-
- 8 edits in trunk/Source/JavaScriptCore
Add SMNEGL, UMNEGL, UMADDL, and UMSUBL for ARM64 and select this instruction in Air
https://bugs.webkit.org/show_bug.cgi?id=227857
Reviewed by Robin Morisset.
The previous patches have already added MNEG, MADD, MSUB, SMADDL, and SMSUBL.
This patch completes the corresponding signed or unsigned variants (SMNEGL,
UMNEGL, UMADDL, and UMSUBL) of them. In addition, this patch refactors
the implementation and the associative test cases of MADD, MSUB, and MNEG
to be more readable and maintainable w.r.t their variants.
### SMNEGL/UMNEGL Xd Wn Wm ###
Signed/Unsigned Multiply-Negate Long multiplies two 32-bit register values,
negates the product, and writes the result to the 64-bit destination register.
The equivalent patterns are
d = -(SExt32(n) * SExt32(m)) and d = -(ZExt32(n) * ZExt32(m)) respectively.
Given B3 IR:
Int @0 = S/ZExt32(Trunc(ArgumentReg(%x0)))
Int @1 = S/ZExt32(Trunc(ArgumentReg(%x1)))
Int @2 = Mul(@0, @1)
Int @3 = Neg(@2)
Void@4 = Return(@3, Terminal)
Old optimized AIR
Move32 %x0, %x0, @0
Move32 %x1, %x1, @1
MultiplyNeg %x0, %x1, %x0, @3
Ret %x0, @4
New optimized AIR
MultiplyNegSign/ZeroExtend %x0, %x1, %x0, @3
Ret %x0, @4
### UMADDL Xd Wn Wm Xa ###
Unsigned Multiply-Add Long multiplies two 32-bit register values, adds a 64-bit
register value, and writes the result to the 64-bit destination register. The
equivalent patterns are
d = ZExt32(n) * ZExt32(m) + a or d = a + ZExt32(n) * ZExt32(m)
Given B3 IR:
Int @0 = ZExt32(Trunc(ArgumentReg(%x0)))
Int @1 = ZExt32(Trunc(ArgumentReg(%x1)))
Int @2 = ArgumentReg(%x2)
Int @3 = Mul(@0, @1)
Int @4 = Add(@3, @2)
Void@5 = Return(@4, Terminal)
Old optimized AIR
Move32 %x0, %x0, @1
Move32 %x1, %x1, @2
MultiplyAdd %x0, %x1, %x2, %x0, @4
Ret64 %x0, @5
New optimized AIR
MultiplyAddZeroExtend %x0, %x1, %x2, %x0, @8
Ret %x0, @9
### UMSUBL Xd Wn Wm Xa ###
Unsigned Multiply-Subtract Long multiplies two 32-bit register values, subtracts
the product from a 64-bit register value, and writes the result to the 64-bit
destination register. The equivalent patterns are
d = a - ZExt32(n) * ZExt32(m)
Given B3 IR:
Int @0 = ZExt32(Trunc(ArgumentReg(%x0)))
Int @1 = ZExt32(Trunc(ArgumentReg(%x1)))
Int @2 = ArgumentReg(%x2)
Int @3 = Mul(@0, @1)
Int @4 = Sub(@2, @3)
Void@5 = Return(@4, Terminal)
Old optimized AIR
Move32 %x0, %x0, @1
Move32 %x1, %x1, @2
MultiplySub %x0, %x1, %x2, %x0, @4
Ret64 %x0, @5
New optimized AIR
MultiplySubZeroExtend %x0, %x1, %x2, %x0, @8
Ret %x0, @9
- assembler/MacroAssemblerARM64.h:
(JSC::MacroAssemblerARM64::multiplyNeg32):
(JSC::MacroAssemblerARM64::multiplyAddZeroExtend32):
(JSC::MacroAssemblerARM64::multiplySubZeroExtend32):
(JSC::MacroAssemblerARM64::multiplyNeg64):
(JSC::MacroAssemblerARM64::multiplyNegSignExtend32):
(JSC::MacroAssemblerARM64::multiplyNegZeroExtend32):
- assembler/testmasm.cpp:
(JSC::testMultiplyAddSignExtend32):
(JSC::testMultiplyAddZeroExtend32):
(JSC::testMultiplySubSignExtend32):
(JSC::testMultiplySubZeroExtend32):
(JSC::testMultiplyNegSignExtend32):
(JSC::testMultiplyNegZeroExtend32):
(JSC::testMultiplyAddSignExtend32Left): Deleted.
(JSC::testMultiplyAddSignExtend32Right): Deleted.
- b3/B3LowerToAir.cpp:
- b3/air/AirOpcode.opcodes:
- b3/testb3.h:
- b3/testb3_2.cpp:
(testMulAddArgsLeft):
(testMulAddArgsRight):
(testMulAddSignExtend32ArgsLeft):
(testMulAddZeroExtend32ArgsLeft):
(testMulAddZeroExtend32ArgsRight):
(testMulSubArgsLeft):
(testMulSubArgsRight):
(testMulSubArgsRight32):
(testMulSubSignExtend32):
(testMulSubZeroExtend32):
(testMulNegArgArg):
(testMulNegArgs):
(testMulNegArgs32):
(testMulNegSignExtend32):
(testMulNegZeroExtend32):
(testMulSubSignExtend32Args): Deleted.
- b3/testb3_3.cpp:
(addArgTests):
- 1:46 PM Changeset in webkit [279849] by
-
- 4 edits in trunk/Tools
[run-api-tests] Use Python 3 (Part 1)
https://bugs.webkit.org/show_bug.cgi?id=225427
<rdar://problem/77584713>
Reviewed by Aakash Jain.
- CISupport/build-webkit-org/steps.py:
(RunAPITests): Use Python3 to invoke run-api-tests.
- CISupport/ews-build/steps.py:
(RunAPITests): Use Python3 to invoke run-api-tests.
- CISupport/ews-build/steps_unittest.py:
- 1:45 PM Changeset in webkit [279848] by
-
- 2 edits in trunk/LayoutTests
Updating test expectations for imported/w3c/web-platform-tests/navigation-timing/test_timing_attributes_order.html.
https://bugs.webkit.org/show_bug.cgi?id=227877.
Unreviewed test gardening.
Patch by Eric Hutchison <Eric Hutchison> on 2021-07-12
- platform/mac/TestExpectations:
- 1:45 PM Changeset in webkit [279847] by
-
- 17 edits in trunk/Source
Add a StyleSheets log channel and some logging
https://bugs.webkit.org/show_bug.cgi?id=227880
Reviewed by Alan Bujtas.
Source/WebCore:
Add some logging to help debug issues when pages dynamically build style sheets.
Also make Document loggable.
- css/CSSStyleSheet.cpp:
(WebCore::CSSStyleSheet::insertRule):
(WebCore::CSSStyleSheet::deleteRule):
(WebCore::CSSStyleSheet::addRule):
(WebCore::CSSStyleSheet::debugDescription const):
- css/CSSStyleSheet.h:
- css/StyleSheet.cpp:
(WebCore::operator<<):
- css/StyleSheet.h:
- dom/Document.cpp:
(WebCore::Document::debugDescription const):
(WebCore::operator<<):
- dom/Document.h:
- html/HTMLLinkElement.cpp:
(WebCore::HTMLLinkElement::process):
(WebCore::HTMLLinkElement::debugDescription const):
- html/HTMLLinkElement.h:
- platform/Logging.h:
- platform/graphics/GraphicsLayer.cpp:
(WebCore::GraphicsLayer::dumpProperties const):
- platform/graphics/filters/FilterEffect.cpp:
(WebCore::FilterEffect::imageBufferResult):
- style/StyleScope.cpp:
(WebCore::Style::Scope::addPendingSheet):
(WebCore::Style::Scope::addStyleSheetCandidateNode):
(WebCore::Style::Scope::collectActiveStyleSheets):
(WebCore::Style::Scope::updateActiveStyleSheets):
- xml/XSLStyleSheet.h:
- xml/XSLStyleSheetLibxslt.cpp:
(WebCore::XSLStyleSheet::debugDescription const):
Source/WTF:
Make it possible to feed Ref<> and RefPtr<> into TextStream.
- wtf/text/TextStream.h:
(WTF::operator<<):
- 1:18 PM Changeset in webkit [279846] by
-
- 8 edits in branches/safari-612.1.22.11-branch/Source
Versioning.
WebKit-7612.1.22.11.3
- 12:05 PM Changeset in webkit [279845] by
-
- 4 edits in trunk/JSTests
Run some tests for fewer iterations to prevent test timeouts
https://bugs.webkit.org/show_bug.cgi?id=227879
Reviewed by Mark Lam.
- microbenchmarks/get-by-val-negative-array-index.js:
- microbenchmarks/memcpy-typed-loop-small.js:
- microbenchmarks/put-by-val-negative-array-index.js:
- 11:56 AM Changeset in webkit [279844] by
-
- 2 edits in trunk/Tools
[GTK] Add a new GTK layout tester bot to build.webkit.org that runs with --skip-failing-tests switch
https://bugs.webkit.org/show_bug.cgi?id=227744
Reviewed by Jonathan Bedard.
On the EWS the layout tests run with this switch --skip-failing-tests
which changes the order in which tests are run (those expected to fail
are not scheduled). I think this may be causing different results on
other tests (like unexpected failures or unexpected flakies).
Having a bot in build.webkit.org running with this switch will help
to detect and garden those cases.
- CISupport/build-webkit-org/config.json:
- 11:52 AM Changeset in webkit [279843] by
-
- 1 copy in releases/WPE WebKit/webkit-2.32.2
WPE WebKit 2.32.2
- 11:51 AM Changeset in webkit [279842] by
-
- 4 edits in releases/WebKitGTK/webkit-2.32
Unreviewed. Update OptionsWPE.cmake and NEWS for the 2.32.2 release
.:
- Source/cmake/OptionsWPE.cmake: Bump version numbers.
Source/WebKit:
- wpe/NEWS: Add release notes for 2.32.2
- 11:08 AM Changeset in webkit [279841] by
-
- 8 edits in branches/safari-612.1.23.1-branch/Source
Versioning.
WebKit-7612.1.23.1.1
- 11:06 AM Changeset in webkit [279840] by
-
- 3 edits in trunk/Source/WebKit
Unreviewed, reverting r279835.
Newly added assertions are wrong
Reverted changeset:
"Regression(r279601) ProcessAssertion may get destroyed on a
background thread"
https://bugs.webkit.org/show_bug.cgi?id=227875
https://commits.webkit.org/r279835
- 11:02 AM Changeset in webkit [279839] by
-
- 2 edits in trunk/JSTests
stress/wasm-loop-consistency.js should require the --useExecutableAllocationFuzz=false JSC option
https://bugs.webkit.org/show_bug.cgi?id=227876
Reviewed by Mark Lam.
- stress/wasm-loop-consistency.js:
- 10:59 AM Changeset in webkit [279838] by
-
- 269 edits1 copy8 moves816 adds27 deletes in trunk/LayoutTests
Resync content-security-policy web-platform-tests from upstream
https://bugs.webkit.org/show_bug.cgi?id=227651
Reviewed by Sam Weinig.
LayoutTests/imported/w3c:
Resync content-security-policy web-platform-tests from upstream 2c19d6ee62676ac90146.
- resources/import-expectations.json:
- resources/resource-files.json:
- web-platform-tests/content-security-policy/*: Updated.
- web-platform-tests/reporting/*: Imported.
LayoutTests:
- TestExpectations:
- tests-options.json:
- 10:54 AM Changeset in webkit [279837] by
-
- 1 copy in branches/safari-612.1.23.1-branch
New branch.
- 10:48 AM Changeset in webkit [279836] by
-
- 2 edits in trunk/Source/WebInspectorUI
Unreviewed, reverting r279493.
https://bugs.webkit.org/show_bug.cgi?id=227878
Web Inspector: Can't reveal local overrides in the sidebar if
lots of scripts are visible
Reverted changeset:
"Web Inspector: [Regression: r279271] Sources: Breakpoints
section in navigation sidebar disappears when Web Inspector
becomes taller than 650px"
https://bugs.webkit.org/show_bug.cgi?id=227597
https://commits.webkit.org/r279493
- 10:26 AM Changeset in webkit [279835] by
-
- 3 edits in trunk/Source/WebKit
Regression(r279601) ProcessAssertion may get destroyed on a background thread
https://bugs.webkit.org/show_bug.cgi?id=227875
<rdar://76972252>
Reviewed by Geoffrey Garen.
r279601 added an internal WorkQueue to ProcessAssertion, so that we could acquire the RunningBoard assertion
asynchronously on the background queue. When dispatching to the background queue, we capture |protectedThis|,
which means that ProcessAssertion may now get destroyed on the background queue. ProcessAssertion is a main
thread object and destroying it on a non-main thread can lead to crashes.
- UIProcess/ProcessAssertion.h:
- UIProcess/ios/ProcessAssertionIOS.mm:
(WebKit::ProcessAssertion::ProcessAssertion):
(WebKit::ProcessAssertion::~ProcessAssertion):
- 10:23 AM Changeset in webkit [279834] by
-
- 8 edits in branches/safari-612.1.23-branch/Source
Versioning.
WebKit-7612.1.23.1
- 10:10 AM Changeset in webkit [279833] by
-
- 5 edits in trunk
[Cocoa] Incorrect deprecation declaration for -[WKWebView closeAllMediaPresentations:]
https://bugs.webkit.org/show_bug.cgi?id=227860
<rdar://80376777>
Reviewed by Sam Weinig.
Source/WebKit:
In r277645, we added a deprecation declaration for -closeAllMediaPresentations:completion, but
that API was never shipped in a release. The actual shipped API, -closeAllMediaPresentations,
was removed entirely, leading to bincompat crashes when binaries built against older SDKs are
run against newer OSs.
Correct the deprecated API declaration, and re-add support for -closeAllMediaPresentations.
- UIProcess/API/Cocoa/WKWebView.h:
- UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView closeAllMediaPresentations]):
Tools:
- TestWebKitAPI/Tests/WebKitCocoa/WKWebViewCloseAllMediaPresentations.mm:
(TEST):
- 10:08 AM Changeset in webkit [279832] by
-
- 2 edits in trunk/Source/WebCore
Unreviewed, partial revert of r279661 to address crashes on iOS Debug.
- page/DOMWindow.cpp:
(WebCore::DOMWindow::removeAllEventListeners):
- 9:25 AM Changeset in webkit [279831] by
-
- 2 edits in trunk/LayoutTests
[BigSur Release wk2 ]fullscreen/full-screen-remove-children.html is a flaky crash.
https://bugs.webkit.org/show_bug.cgi?id=227874.
Unreviewed test gardening.
Patch by Eric Hutchison <Eric Hutchison> on 2021-07-12
- platform/mac-wk2/TestExpectations:
- 9:15 AM Changeset in webkit [279830] by
-
- 11 edits2 adds in trunk
[watchOS] Make a few additional adjustments to support system minimum layout margins
https://bugs.webkit.org/show_bug.cgi?id=227859
rdar://80113612
Reviewed by Tim Horton.
Source/WebCore:
Reduce the default minimum viewport scale on watchOS to avoid horizontal scrolling when loading wide fixed-
viewport-width web content. See WebKit ChangeLog for more details.
- page/ViewportConfiguration.cpp:
(WebCore::platformDeviceWidthOverride):
(WebCore::platformMinimumScaleForWebpage):
(WebCore::shouldOverrideShrinkToFitArgument):
(WebCore::ViewportConfiguration::nativeWebpageParametersWithShrinkToFit):
(WebCore::ViewportConfiguration::webpageParameters):
Source/WebKit:
Make a couple of minor adjustments to deal with the fact that
-contentInset
includes system content insets
(specifically,-_contentScrollInset
) on watchOS, due to method swizzling that happens in PepperUICore. See
changes below for more detail.
Test: fast/viewport/watchos/viewport-with-system-minimum-layout-margins.html
- UIProcess/API/ios/WKWebViewIOS.mm:
(-[WKWebView _computedContentInset]):
Only apply
-safeAreaInsets
on top of-contentInset
when computing the total scroll view content inset on
watchOS (as opposed to applying both-safeAreaInsets
and-_contentScrollInset
); this is because
-contentInset
on watchOS is actually equivalent to-_effectiveContentInset
on other iOS-family platforms, so
additionally adding-_contentScrollInset
here would result in the scroll content inset being double-counted.
- UIProcess/ios/WKScrollView.mm:
(-[WKScrollView setContentInset:]):
(-[WKScrollView _setContentScrollInsetInternal:]):
(-[WKScrollView _updateContentScrollInset]):
In the case where the WebKit client explicitly sets the scroll view's content insets using `-[WKScrollView
setContentInset:], set a flag (
_contentInsetWasExternallyOverridden`) and immediately revert any internally
specified-_contentScrollInset
on WKScrollView. Due to the swizzled implementation of `-[UIScrollView
contentInset]described above, it's practically impossible for any client to use
-setContentInset:` correctly
when there is a nonzero-_contentScrollInset
on watchOS, so preferable to simply get out of the way of the
client in this scenario.
In the context of _SFNanoBrowserViewController, this ensures that scroll view content inset adjustment logic in
Safari doesn't inadvertently cause horizontal content insets to increase by-_contentScrollInset
every time
-[WKScrollView setContentInset:]
is invoked by the client.
Tools:
Add support for simulating arbitrary horizontal (trailing and leading) values for
-systemMinimumLayoutMargin
in WebKitTestRunner, via a new "horizontalSystemMinimumLayoutMargin" test option. By default, this is 0.
- WebKitTestRunner/TestOptions.cpp:
(WTR::TestOptions::defaults):
(WTR::TestOptions::keyTypeMapping):
- WebKitTestRunner/TestOptions.h:
(WTR::TestOptions::horizontalSystemMinimumLayoutMargin const):
- WebKitTestRunner/ios/PlatformWebViewIOS.mm:
(-[PlatformWebViewController systemMinimumLayoutMargins]):
Override this UIViewController method and replace the leading and trailing layout margin values with the values
from test options.
(WTR::PlatformWebView::PlatformWebView):
- WebKitTestRunner/ios/TestControllerIOS.mm:
(WTR::TestController::platformResetStateToConsistentValues):
Additionally make a slight adjustment here to avoid calling
-setContentInset
on the scroll view in between
tests if the content insets aren't changing. This is needed in order for the new layout test to work on watchOS.
LayoutTests:
Add a new layout test that uses the new test option to verify that nonzero horizontal system minimum layout
margins shrink the width of the viewport on watchOS (this test also disables watchOS device adaptations and uses
a device-width viewport withinitial-scale=1
such that we can simply check the value ofinnerWidth
).
- fast/viewport/watchos/viewport-with-system-minimum-layout-margins-expected.txt: Added.
- fast/viewport/watchos/viewport-with-system-minimum-layout-margins.html: Added.
- 9:14 AM Changeset in webkit [279829] by
-
- 12 edits2 adds in trunk
AX: Add ARIA role "image" as a new role, and leave "img" as a synonym
https://bugs.webkit.org/show_bug.cgi?id=224615
Patch by Tyler Wilcock <Tyler Wilcock> on 2021-07-12
Reviewed by Chris Fleizach.
Source/WebCore:
Test: accessibility/image-role-is-synonomous-with-img-role.html
- accessibility/AccessibilityObject.cpp:
(WebCore::initializeRoleMap):
Add "image" ARIA role as a synonym for the "img" ARIA role, both of
which map to the AccessibilityRole::Image WebCore representation.
Also hardcode the ARIA reverse role map to return "image" for
the AccessibilityRole::Image key.
LayoutTests:
The "image" role is replacing the "img" role (though "img" is not
going away), so "image" should be returned fromcomputedRoleString
.
- accessibility/image-role-is-synonomous-with-img-role-expected.txt: Added.
- accessibility/image-role-is-synonomous-with-img-role.html: Added.
- accessibility/roles-computedRoleString-expected.txt:
- accessibility/roles-computedRoleString.html:
- inspector/dom/getAccessibilityPropertiesForNode-expected.txt:
- platform/glib/accessibility/roles-computedRoleString-expected.txt:
- platform/gtk/accessibility/gtk/xml-roles-exposed-expected.txt:
- platform/gtk/accessibility/image-link-expected.txt:
- platform/gtk/inspector/dom/getAccessibilityPropertiesForNode-expected.txt:
- platform/mac/accessibility/roles-computedRoleString-expected.txt:
- platform/wpe/accessibility/image-link-expected.txt:
All the tests in this group have been updated to expect "image"
instead of "img".
- 8:41 AM Changeset in webkit [279828] by
-
- 2 edits in trunk/LayoutTests
[GTK] media/playlist-inherits-user-gesture.html is timing out
https://bugs.webkit.org/show_bug.cgi?id=198118
Unreviewed test gardening, this test passes after r227404.
Patch by Arcady Goldmints-Orlov <Arcady Goldmints-Orlov> on 2021-07-12
- platform/glib/TestExpectations:
- 8:23 AM Changeset in webkit [279827] by
-
- 3 edits in trunk/Source/WebKit
[GTK] Touch navigation gesture triggers kinetic scrolling when cancelling
https://bugs.webkit.org/show_bug.cgi?id=227701
Patch by Alexander Mikhaylenko <Alexander Mikhaylenko> on 2021-07-12
Reviewed by Michael Catanzaro.
Make sure an event that has finished a navigation swipe gesture isn't propagated
to the page triggering kinetic scrolling.
Move the navigation swipe ending from drag-end to swipe signal handler, since
that's where kinetic scrolling is handled and we can stop it.
- UIProcess/API/gtk/WebKitWebViewBase.cpp:
(webkitWebViewBaseTouchDragEnd):
(webkitWebViewBaseTouchSwipe):
- UIProcess/gtk/ViewGestureControllerGtk.cpp:
(WebKit::ViewGestureController::SwipeProgressTracker::handleEvent):
- 7:26 AM Changeset in webkit [279826] by
-
- 12 edits in trunk/Source
[GTK][WPE] Support drawing scrollbar corner
https://bugs.webkit.org/show_bug.cgi?id=227868
Patch by Alexander Mikhaylenko <Alexander Mikhaylenko> on 2021-07-12
Reviewed by Michael Catanzaro.
Source/WebCore:
With dark scrollbars supported, the lack of scroll corner for non-overlay
scrollbars becomes very noticeable. Implement it.
To properly draw them, we need to know whether scrollbars are dark, and whether
the vertical scrollbar is on the left. Hence, pass ScrollableArea to
paintScrollCorner() so we can query it.
Only cover non-system scrollbars, it would take considerable amount of work to
make it work for system as well.
- platform/ScrollView.cpp:
(WebCore::ScrollView::paintScrollCorner):
- platform/ScrollbarTheme.h:
(WebCore::ScrollbarTheme::paintScrollCorner):
(WebCore::ScrollbarTheme::defaultPaintScrollCorner):
- platform/adwaita/ScrollbarThemeAdwaita.cpp:
(WebCore::ScrollbarThemeAdwaita::paintScrollCorner):
- platform/adwaita/ScrollbarThemeAdwaita.h:
- platform/mac/ScrollbarThemeMac.h:
- platform/mac/ScrollbarThemeMac.mm:
(WebCore::ScrollbarThemeMac::paintScrollCorner):
- rendering/RenderLayerScrollableArea.cpp:
(WebCore::RenderLayerScrollableArea::paintScrollCorner):
- rendering/RenderScrollbarTheme.cpp:
(WebCore::RenderScrollbarTheme::paintScrollCorner):
- rendering/RenderScrollbarTheme.h:
Source/WebKit:
- WebProcess/Plugins/PDF/PDFPlugin.mm:
(WebKit::PDFPlugin::paintControlForLayerInContext):
Update the paintScrollCorner() call.
- 6:05 AM Changeset in webkit [279825] by
-
- 4 edits1 delete in trunk
Unreviewed, reverting r279778.
It caused unexpected text diffs on http/tests/storageAccess
tests
Reverted changeset:
"[GTK][WPE][libsoup] Test imported/w3c/web-platform-
tests/cookies/samesite/about-blank-toplevel.https.html crashes
since it was imported"
https://bugs.webkit.org/show_bug.cgi?id=227819
https://commits.webkit.org/r279778
- 6:02 AM Changeset in webkit [279824] by
-
- 2 edits in trunk/Source/WebCore
[GTK][WPE] Match Adwaita scrollbars more closely
https://bugs.webkit.org/show_bug.cgi?id=227870
Patch by Alexander Mikhaylenko <Alexander Mikhaylenko> on 2021-07-12
Reviewed by Michael Catanzaro.
Adjust the dimensions to match GTK as closely as possible.
- platform/adwaita/ScrollbarThemeAdwaita.cpp:
(WebCore::ScrollbarThemeAdwaita::paint):
- 4:47 AM Changeset in webkit [279823] by
-
- 3 edits in trunk/Source/WebCore
[GTK] Adwaita entries should follow the system cursor blink settings
https://bugs.webkit.org/show_bug.cgi?id=227856
Patch by Alexander Mikhaylenko <Alexander Mikhaylenko> on 2021-07-12
Reviewed by Adrian Perez de Castro.
Get the caret blink interval from GtkSettings if available, same as it was done
for the GTK theme before.
- rendering/RenderThemeAdwaita.cpp:
(WebCore::RenderThemeAdwaita::caretBlinkInterval const):
- rendering/RenderThemeAdwaita.h:
- 2:30 AM Changeset in webkit [279822] by
-
- 16 edits1 copy12 moves3 adds in trunk/Source/WebKit
Cross platform compilation of PlatformXRSystem and PlatformXRSystemProxy
https://bugs.webkit.org/show_bug.cgi?id=226919
Reviewed by Dean Jackson.
PlatformXRSystem and PlatformXRSystemProxy are only compiled in Cocoa platform while WPE uses OpenXR,
which only has code in WebCore. In order to run WebKit based WebXR on non-cocoa VR Standalone devices
we also need to split the code and IPC messages between UIProcess/WebProcess.
The existing PlatformXRSystem/PlatformXRSystemProxy pattern fits very well to the VR standalone scenario.
This patch ensures that the existing code can be used in more platforms other than Cocoa.
Tested by WebXR WPT.
- CMakeLists.txt:
- DerivedSources.make:
- PlatformMac.cmake:
- Shared/XR/XRDeviceIdentifier.h: Renamed from Source/WebKit/Shared/Cocoa/XRDeviceIdentifier.h.
- Shared/XR/XRDeviceInfo.cpp: Renamed from Source/WebKit/Shared/Cocoa/XRDeviceInfo.mm.
- Shared/XR/XRDeviceInfo.h: Renamed from Source/WebKit/Shared/Cocoa/XRDeviceInfo.h.
- Shared/XR/XRDeviceProxy.cpp: Renamed from Source/WebKit/Shared/Cocoa/XRDeviceProxy.mm.
- Shared/XR/XRDeviceProxy.h: Renamed from Source/WebKit/Shared/Cocoa/XRDeviceProxy.h.
- Shared/mac/MediaFormatReader/MediaSampleCursor.cpp: Add include to fix compilation error
- Sources.txt:
- SourcesCocoa.txt:
- UIProcess/Cocoa/PlatformXRCoordinator.mm: Copied from Source/WebKit/WebProcess/cocoa/PlatformXRSystemProxy.messages.in.
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::didAttachToRunningProcess):
(WebKit::WebPageProxy::resetState):
- UIProcess/WebPageProxy.h:
- UIProcess/XR/PlatformXRCoordinator.h: Renamed from Source/WebKit/UIProcess/Cocoa/PlatformXRCoordinator.h.
- UIProcess/XR/PlatformXRSystem.cpp: Renamed from Source/WebKit/UIProcess/Cocoa/PlatformXRSystem.mm.
- UIProcess/XR/PlatformXRSystem.h: Renamed from Source/WebKit/UIProcess/Cocoa/PlatformXRSystem.h.
- UIProcess/XR/PlatformXRSystem.messages.in: Renamed from Source/WebKit/UIProcess/Cocoa/PlatformXRSystem.messages.in.
- WebProcess/WebCoreSupport/WebChromeClient.cpp:
- WebProcess/WebCoreSupport/WebChromeClient.h:
- WebProcess/WebPage/Cocoa/WebPageCocoa.mm:
- WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::xrSystemProxy):
- WebProcess/WebPage/WebPage.h:
- WebProcess/XR/PlatformXRSystemProxy.cpp: Renamed from Source/WebKit/WebProcess/cocoa/PlatformXRSystemProxy.mm.
- WebProcess/XR/PlatformXRSystemProxy.h: Renamed from Source/WebKit/WebProcess/cocoa/PlatformXRSystemProxy.h.
- WebProcess/XR/PlatformXRSystemProxy.messages.in: Renamed from Source/WebKit/WebProcess/cocoa/PlatformXRSystemProxy.messages.in.
- 1:22 AM Changeset in webkit [279821] by
-
- 2 edits in trunk/Source/WebCore
[GTK4] Scrollbar click doesn't work as expected when native scrollbars are off
https://bugs.webkit.org/show_bug.cgi?id=226331
Patch by Alexander Mikhaylenko <Alexander Mikhaylenko> on 2021-07-12
Reviewed by Carlos Garcia Campos.
Make Adwaita scrollbar theme follow the GTK setting if possible.
- platform/adwaita/ScrollbarThemeAdwaita.cpp:
(WebCore::ScrollbarThemeAdwaita::handleMousePressEvent):
- 12:53 AM Changeset in webkit [279820] by
-
- 2 edits in trunk/Source/JavaScriptCore
[JSC] JITCage already includes guard pages
https://bugs.webkit.org/show_bug.cgi?id=227867
Reviewed by Mark Lam.
Since JITCage already includes guard pages, we do not need to allocate that additionally.
- jit/ExecutableAllocator.cpp:
(JSC::initializeJITPageReservation):
- 12:40 AM Changeset in webkit [279819] by
-
- 12 edits108 adds in trunk/LayoutTests
Resync web-platform-tests/css/css-overflow from upstream
https://bugs.webkit.org/show_bug.cgi?id=227849
Patch by Rob Buis <rbuis@igalia.com> on 2021-07-12
Reviewed by Manuel Rego Casasnovas.
LayoutTests/imported/w3c:
Import based on 1d6a9a37bc.
- resources/resource-files.json:
- web-platform-tests/css/css-overflow/clip-001.html:
- web-platform-tests/css/css-overflow/clip-002-expected.html: Added.
- web-platform-tests/css/css-overflow/clip-002.html: Added.
- web-platform-tests/css/css-overflow/clip-003-expected.html: Added.
- web-platform-tests/css/css-overflow/clip-003.html: Added.
- web-platform-tests/css/css-overflow/clip-004-expected.html: Added.
- web-platform-tests/css/css-overflow/clip-004.html: Added.
- web-platform-tests/css/css-overflow/clip-005-expected.html: Added.
- web-platform-tests/css/css-overflow/clip-005.html: Added.
- web-platform-tests/css/css-overflow/clip-006-expected.html: Added.
- web-platform-tests/css/css-overflow/clip-006.html: Added.
- web-platform-tests/css/css-overflow/clip-007-expected.html: Added.
- web-platform-tests/css/css-overflow/clip-007.html: Added.
- web-platform-tests/css/css-overflow/dynamic-visible-to-clip-001.html:
- web-platform-tests/css/css-overflow/incremental-scroll-expected.html: Added.
- web-platform-tests/css/css-overflow/incremental-scroll.html: Added.
- web-platform-tests/css/css-overflow/no-scrollable-overflow-vertical-rl-2-expected.html: Added.
- web-platform-tests/css/css-overflow/no-scrollable-overflow-vertical-rl-2.html: Added.
- web-platform-tests/css/css-overflow/no-scrollable-overflow-vertical-rl-expected.html: Added.
- web-platform-tests/css/css-overflow/no-scrollable-overflow-vertical-rl.html: Added.
- web-platform-tests/css/css-overflow/overflow-body-propagation-007-expected.html: Added.
- web-platform-tests/css/css-overflow/overflow-body-propagation-007.html: Added.
- web-platform-tests/css/css-overflow/overflow-body-propagation-008-expected.html: Added.
- web-platform-tests/css/css-overflow/overflow-body-propagation-008.html: Added.
- web-platform-tests/css/css-overflow/overflow-body-propagation-009-expected.html: Added.
- web-platform-tests/css/css-overflow/overflow-body-propagation-009.html: Added.
- web-platform-tests/css/css-overflow/overflow-body-propagation-010-expected.html: Added.
- web-platform-tests/css/css-overflow/overflow-body-propagation-010.html: Added.
- web-platform-tests/css/css-overflow/overflow-body-propagation-011-expected.html: Added.
- web-platform-tests/css/css-overflow/overflow-body-propagation-011.html: Added.
- web-platform-tests/css/css-overflow/overflow-clip-001-crash.html: Added.
- web-platform-tests/css/css-overflow/overflow-clip-002-crash.html: Added.
- web-platform-tests/css/css-overflow/overflow-clip-cant-scroll-expected.html: Added.
- web-platform-tests/css/css-overflow/overflow-clip-cant-scroll.html: Added.
- web-platform-tests/css/css-overflow/overflow-clip-content-visual-overflow-expected.html: Added.
- web-platform-tests/css/css-overflow/overflow-clip-content-visual-overflow.html: Added.
- web-platform-tests/css/css-overflow/overflow-clip-hit-testing.html: Added.
- web-platform-tests/css/css-overflow/overflow-clip-margin-001-expected.html: Added.
- web-platform-tests/css/css-overflow/overflow-clip-margin-001.html: Added.
- web-platform-tests/css/css-overflow/overflow-clip-margin-002-expected.html: Added.
- web-platform-tests/css/css-overflow/overflow-clip-margin-002.html: Added.
- web-platform-tests/css/css-overflow/overflow-clip-margin-003-expected.html: Added.
- web-platform-tests/css/css-overflow/overflow-clip-margin-003.html: Added.
- web-platform-tests/css/css-overflow/overflow-clip-margin-004-expected.html: Added.
- web-platform-tests/css/css-overflow/overflow-clip-margin-004.html: Added.
- web-platform-tests/css/css-overflow/overflow-clip-margin-005-expected.html: Added.
- web-platform-tests/css/css-overflow/overflow-clip-margin-005.html: Added.
- web-platform-tests/css/css-overflow/overflow-clip-margin-006-expected.html: Added.
- web-platform-tests/css/css-overflow/overflow-clip-margin-006.html: Added.
- web-platform-tests/css/css-overflow/overflow-clip-margin-007-expected.html: Added.
- web-platform-tests/css/css-overflow/overflow-clip-margin-007.html: Added.
- web-platform-tests/css/css-overflow/overflow-clip-margin-intersection-observer.html: Added.
- web-platform-tests/css/css-overflow/overflow-clip-margin-invalidation-expected.html: Added.
- web-platform-tests/css/css-overflow/overflow-clip-margin-invalidation.html: Added.
- web-platform-tests/css/css-overflow/overflow-clip-scroll-size.html: Added.
- web-platform-tests/css/css-overflow/overflow-empty-child-box-expected.txt: Added.
- web-platform-tests/css/css-overflow/overflow-empty-child-box.html: Added.
- web-platform-tests/css/css-overflow/overflow-hidden-resize-with-stacking-context-child-expected.html: Added.
- web-platform-tests/css/css-overflow/overflow-hidden-resize-with-stacking-context-child.html: Added.
- web-platform-tests/css/css-overflow/overflow-negative-margin-dynamic-expected.html: Added.
- web-platform-tests/css/css-overflow/overflow-negative-margin-dynamic.html: Added.
- web-platform-tests/css/css-overflow/overflow-negative-margin-expected.html: Added.
- web-platform-tests/css/css-overflow/overflow-negative-margin.html: Added.
- web-platform-tests/css/css-overflow/overflow-no-frameset-propagation-expected.html: Added.
- web-platform-tests/css/css-overflow/overflow-no-frameset-propagation.html: Added.
- web-platform-tests/css/css-overflow/overflow-padding.html:
- web-platform-tests/css/css-overflow/overflow-replaced-element-001-expected.txt: Added.
- web-platform-tests/css/css-overflow/overflow-replaced-element-001.html: Added.
- web-platform-tests/css/css-overflow/overflow-scroll-resize-visibility-hidden-expected.html: Added.
- web-platform-tests/css/css-overflow/overflow-scroll-resize-visibility-hidden.html: Added.
- web-platform-tests/css/css-overflow/parsing/overflow-computed-expected.txt:
- web-platform-tests/css/css-overflow/parsing/overflow-computed.html:
- web-platform-tests/css/css-overflow/parsing/scrollbar-gutter-invalid.html:
- web-platform-tests/css/css-overflow/parsing/scrollbar-gutter-valid.html:
- web-platform-tests/css/css-overflow/scrollable-overflow-float-expected.txt: Added.
- web-platform-tests/css/css-overflow/scrollable-overflow-float.html: Added.
- web-platform-tests/css/css-overflow/scrollable-overflow-self-collapsing-expected.txt: Added.
- web-platform-tests/css/css-overflow/scrollable-overflow-self-collapsing.html: Added.
- web-platform-tests/css/css-overflow/scrollable-overflow-textarea-expected.txt: Added.
- web-platform-tests/css/css-overflow/scrollable-overflow-textarea.html: Added.
- web-platform-tests/css/css-overflow/scrollable-overflow-transform-001-expected.txt: Added.
- web-platform-tests/css/css-overflow/scrollable-overflow-transform-001.html: Added.
- web-platform-tests/css/css-overflow/scrollable-overflow-transform-002-expected.txt: Added.
- web-platform-tests/css/css-overflow/scrollable-overflow-transform-002.html: Added.
- web-platform-tests/css/css-overflow/scrollable-overflow-transform-003-expected.txt: Added.
- web-platform-tests/css/css-overflow/scrollable-overflow-transform-003.html: Added.
- web-platform-tests/css/css-overflow/scrollable-overflow-transform-dynamic-001-expected.txt: Added.
- web-platform-tests/css/css-overflow/scrollable-overflow-transform-dynamic-001.html: Added.
- web-platform-tests/css/css-overflow/scrollable-overflow-transform-dynamic-002-expected.txt: Added.
- web-platform-tests/css/css-overflow/scrollable-overflow-transform-dynamic-002.html: Added.
- web-platform-tests/css/css-overflow/scrollable-overflow-transform-dynamic-003-expected.txt: Added.
- web-platform-tests/css/css-overflow/scrollable-overflow-transform-dynamic-003.html: Added.
- web-platform-tests/css/css-overflow/scrollable-overflow-transform-dynamic-004-expected.txt: Added.
- web-platform-tests/css/css-overflow/scrollable-overflow-transform-dynamic-004.html: Added.
- web-platform-tests/css/css-overflow/scrollable-overflow-transform-dynamic-005-expected.txt: Added.
- web-platform-tests/css/css-overflow/scrollable-overflow-transform-dynamic-005.html: Added.
- web-platform-tests/css/css-overflow/scrollable-overflow-transform-dynamic-006-expected.txt: Added.
- web-platform-tests/css/css-overflow/scrollable-overflow-transform-dynamic-006.html: Added.
- web-platform-tests/css/css-overflow/scrollbar-gutter-001.html: Added.
- web-platform-tests/css/css-overflow/scrollbar-gutter-propagation-001.html: Added.
- web-platform-tests/css/css-overflow/scrollbar-gutter-propagation-002.html: Added.
- web-platform-tests/css/css-overflow/scrollbar-gutter-propagation-003.html: Added.
- web-platform-tests/css/css-overflow/scrollbar-gutter-propagation-004.html: Added.
- web-platform-tests/css/css-overflow/scrollbar-gutter-propagation-005.html: Added.
- web-platform-tests/css/css-overflow/scrollbar-gutter-propagation-006.html: Added.
- web-platform-tests/css/css-overflow/scrollbar-gutter-propagation-007.html: Added.
- web-platform-tests/css/css-overflow/scrollbar-gutter-rtl-001.html: Added.
- web-platform-tests/css/css-overflow/scrollbar-gutter-vertical-lr-001.html: Added.
- web-platform-tests/css/css-overflow/scrollbar-gutter-vertical-rl-001.html: Added.
- web-platform-tests/css/css-overflow/w3c-import.log:
- web-platform-tests/css/css-overflow/webkit-line-clamp-036-expected.html: Added.
- web-platform-tests/css/css-overflow/webkit-line-clamp-036.html: Added.
- web-platform-tests/css/css-overflow/webkit-line-clamp-037-expected.html: Added.
- web-platform-tests/css/css-overflow/webkit-line-clamp-037.html: Added.
- web-platform-tests/css/css-overflow/webkit-line-clamp-dynamic-001-expected.html: Added.
- web-platform-tests/css/css-overflow/webkit-line-clamp-dynamic-001.html: Added.
LayoutTests:
Skip some tests, for example some rely on
unimplemented overflow: clip property.
Jul 11, 2021:
- 9:08 PM Changeset in webkit [279818] by
-
- 14 edits in trunk
:link and :visited pseudo-class selectors should not match <link> elements
https://bugs.webkit.org/show_bug.cgi?id=227847
Reviewed by Sam Weinig.
LayoutTests/imported/w3c:
Rebaseline WPT tests now that more checks are passing.
- web-platform-tests/dom/nodes/ParentNode-querySelector-All-expected.txt:
- web-platform-tests/dom/nodes/ParentNode-querySelector-All-xht-expected.txt:
- web-platform-tests/html/semantics/selectors/pseudo-classes/link-expected.txt:
Source/WebCore:
:link, :visited and :any-link should only match <a> and <area> elements as per:
Blink and Gecko match the specification. However, WebKit was incorrectly matching
<link> elements too.
No new tests, rebaselined existing tests.
- html/HTMLLinkElement.cpp:
(WebCore::HTMLLinkElement::parseAttribute):
LayoutTests:
Update / Rebaseline existing tests due to behavior change.
- fast/css/link-basics-expected.html:
- fast/css/link-basics.html:
- fast/selectors/any-link-basics-expected.txt:
- fast/selectors/link-basics-expected.txt:
- fast/selectors/link-basics-xhtml-expected.txt:
- fast/selectors/resources/html-link-type-tests.js:
(testHTMLTagsForLink):
- fast/selectors/webkit-any-link-basics-expected.txt:
- 4:41 PM Changeset in webkit [279817] by
-
- 4 edits in trunk/Source/WebKit
Remove an unused deprecated private UI delegate method
https://bugs.webkit.org/show_bug.cgi?id=227861
Reviewed by Tim Horton.
-_webView:didNotHandleTapAsMeaningfulClickAtPoint:
is replaced with-_webView:didTapAtPoint:withResult:
;
the old SPI is no longer required for either binary or source compatibility after rdar://79700201.
- UIProcess/API/Cocoa/WKUIDelegatePrivate.h:
- UIProcess/Cocoa/UIDelegate.h:
- UIProcess/Cocoa/UIDelegate.mm:
(WebKit::UIDelegate::setDelegate):
(WebKit::UIDelegate::UIClient::didTapAtPoint):
- 1:36 PM Changeset in webkit [279816] by
-
- 2 edits in trunk/LayoutTests
[WinCairo] Unreviewed test gardening
- platform/wincairo/TestExpectations:
- 11:20 AM Changeset in webkit [279815] by
-
- 5 edits in trunk
XMLSerializer.serializeToString() doesn't properly escape \n, \n and \t
https://bugs.webkit.org/show_bug.cgi?id=227844
Reviewed by Darin Adler.
LayoutTests/imported/w3c:
Rebaseline WPT test now that one more subtest is passing.
- web-platform-tests/domparsing/XMLSerializer-serializeToString-expected.txt:
Source/WebCore:
XMLSerializer.serializeToString() doesn't properly escape \n, \n and \t.
This is causing the "check XMLSerializer.serializeToString escapes attribute values for roundtripping" subtest to fail in WebKit on:
http://wpt.live/domparsing/XMLSerializer-serializeToString.html
Chrome and Firefox both escape these and pass this WPT subtest.
The specification does not indicate we should escape those:
But there is an open bug about this:
No new tests, rebaselined existing test.
- editing/MarkupAccumulator.cpp:
(WebCore::elementCannotHaveEndTag):
- editing/MarkupAccumulator.h:
Jul 10, 2021:
- 9:16 PM Changeset in webkit [279814] by
-
- 5 edits2 adds in trunk
document.readyState should be "complete" after calling DOMParser.parseFromString()
https://bugs.webkit.org/show_bug.cgi?id=227846
Reviewed by Ryosuke Niwa.
LayoutTests/imported/w3c:
Rebaseline WPT test that is now passing.
- web-platform-tests/domparsing/xmldomparser-expected.txt:
Source/WebCore:
document.readyState should be "complete" after calling DOMParser.parseFromString().
This is causing the following WPT test to fail in WebKit:
http://wpt.live/domparsing/xmldomparser.html
Both Gecko and Blink report the correct readyState here.
No new tests, rebaselined existing test.
- dom/Document.cpp:
(WebCore::Document::explicitClose):
explicitClose() normally calls checkCompleted() which calls FrameLoader::checkCompleted(),
which ends up setting the document's ready state to "complete" and then calling
Document::implicitClose(). However, when the document has no frame (which is the case
for a document just created via DOMParser.parseFromString()), we would call
Document::implicitClose() directly, since we don't have a FrameLoader. As a result,
the document's ready state would stay "interactive". To address the issue, we now set
the document's ready state to "complete" before calling implicitClose(), similarly to
what FrameLoader::checkCompleted() would have done.
- 6:27 PM Changeset in webkit [279813] by
-
- 10 edits in trunk/Source/JavaScriptCore
Continue to consult InlineAccess's Structure even after switching to a stub IC
https://bugs.webkit.org/show_bug.cgi?id=227785
Reviewed by Yusuke Suzuki.
This patch fixes a crash in: stress/class-subclassing-function.js
The bug is this:
- We initialize a StructureStubInfo to be an inline self access doing a load based on structure S.
- We transition to being a PolymorphicAccess based StructureStubInfo. But, we haven't
generated code yet. We're in the buffered state. So we are still running the inline access
from (1). But the StructureStubInfo thinks it's a "Stub".
- S is collected
- We continue to run code from (1), because when we finalize the IC during GC, it
doesn't think it's an inline access.
The fix is to always track the structure S that we used when generating the inline
access, and to only stop tracking it once we've generated code for the Stub.
- bytecode/AccessCase.cpp:
(JSC::AccessCase::fromStructureStubInfo):
(JSC::AccessCase::propagateTransitions const):
- bytecode/AccessCase.h:
- bytecode/GetByStatus.cpp:
(JSC::GetByStatus::computeForStubInfoWithoutExitSiteFeedback):
- bytecode/InByStatus.cpp:
(JSC::InByStatus::computeForStubInfoWithoutExitSiteFeedback):
- bytecode/PolymorphicAccess.cpp:
(JSC::PolymorphicAccess::propagateTransitions const):
- bytecode/PolymorphicAccess.h:
- bytecode/PutByIdStatus.cpp:
(JSC::PutByIdStatus::computeForStubInfo):
- bytecode/StructureStubInfo.cpp:
(JSC::StructureStubInfo::initGetByIdSelf):
(JSC::StructureStubInfo::initPutByIdReplace):
(JSC::StructureStubInfo::initInByIdSelf):
(JSC::StructureStubInfo::addAccessCase):
(JSC::StructureStubInfo::reset):
(JSC::StructureStubInfo::visitWeakReferences):
(JSC::StructureStubInfo::propagateTransitions):
- bytecode/StructureStubInfo.h:
- 6:27 PM Changeset in webkit [279812] by
-
- 1 copy in tags/Safari-612.1.22.11.2
Tag Safari-612.1.22.11.2.
- 6:21 PM Changeset in webkit [279811] by
-
- 8 edits in branches/safari-612.1.22.11-branch/Source
Versioning.
WebKit-7612.1.22.11.2
- 5:05 PM Changeset in webkit [279810] by
-
- 2 edits in trunk/Source/JavaScriptCore
[JSC] Workaround test262.report bug by making $ properties enumerable
https://bugs.webkit.org/show_bug.cgi?id=227855
Reviewed by Alexey Shvayka.
test262.report's harness has a bug and it reports incorrect results for JSC on tests using $262 properties.
This patch introduces a workaround which makes properties of $ enumerable.
- jsc.cpp:
- 2:00 PM Changeset in webkit [279809] by
-
- 70 edits26 copies17 moves390 adds14 deletes in trunk/JSTests
[JSC] Update test262
https://bugs.webkit.org/show_bug.cgi?id=227851
Reviewed by Mark Lam.
- test262/config.yaml:
- test262/expectations.yaml:
- test262/harness/compareArray.js:
(assert.compareArray):
- test262/harness/regExpUtils.js:
(buildString):
(): Deleted.
- test262/harness/sta.js:
(Test262Error.thrower):
- test262/harness/testIntl.js:
(getLocaleSupportInfo):
- test262/latest-changes-summary.txt:
- test262/test/annexB/language/literals/regexp/legacy-octal-escape.js:
- test262/test/built-ins/ArrayBuffer/options-maxbytelength-diminuitive.js: Added.
- test262/test/built-ins/ArrayBuffer/options-maxbytelength-excessive.js: Added.
- test262/test/built-ins/ArrayBuffer/options-maxbytelength-negative.js: Added.
- test262/test/built-ins/ArrayBuffer/options-maxbytelength-object.js: Added.
(options.maxByteLength.toString):
(options.maxByteLength.valueOf):
- test262/test/built-ins/ArrayBuffer/options-maxbytelength-poisoned.js: Added.
(options.get maxByteLength):
- test262/test/built-ins/ArrayBuffer/options-maxbytelength-undefined.js: Added.
- test262/test/built-ins/ArrayBuffer/options-non-object.js: Added.
- test262/test/built-ins/ArrayBuffer/prototype/maxByteLength/detached-buffer.js: Added.
- test262/test/built-ins/ArrayBuffer/prototype/maxByteLength/invoked-as-accessor.js: Added.
- test262/test/built-ins/ArrayBuffer/prototype/maxByteLength/invoked-as-func.js: Added.
- test262/test/built-ins/ArrayBuffer/prototype/maxByteLength/length.js: Added.
- test262/test/built-ins/ArrayBuffer/prototype/maxByteLength/name.js: Added.
- test262/test/built-ins/ArrayBuffer/prototype/maxByteLength/prop-desc.js: Added.
- test262/test/built-ins/ArrayBuffer/prototype/maxByteLength/return-maxbytelength-non-resizable.js: Added.
- test262/test/built-ins/ArrayBuffer/prototype/maxByteLength/return-maxbytelength-resizable.js: Added.
- test262/test/built-ins/ArrayBuffer/prototype/maxByteLength/this-has-no-arraybufferdata-internal.js: Added.
- test262/test/built-ins/ArrayBuffer/prototype/maxByteLength/this-is-not-object.js: Added.
- test262/test/built-ins/ArrayBuffer/prototype/maxByteLength/this-is-sharedarraybuffer.js: Added.
- test262/test/built-ins/ArrayBuffer/prototype/resizable/detached-buffer.js: Added.
- test262/test/built-ins/ArrayBuffer/prototype/resizable/invoked-as-accessor.js: Added.
- test262/test/built-ins/ArrayBuffer/prototype/resizable/invoked-as-func.js: Added.
- test262/test/built-ins/ArrayBuffer/prototype/resizable/length.js: Added.
- test262/test/built-ins/ArrayBuffer/prototype/resizable/name.js: Added.
- test262/test/built-ins/ArrayBuffer/prototype/resizable/prop-desc.js: Added.
- test262/test/built-ins/ArrayBuffer/prototype/resizable/return-resizable.js: Added.
- test262/test/built-ins/ArrayBuffer/prototype/resizable/this-has-no-arraybufferdata-internal.js: Added.
- test262/test/built-ins/ArrayBuffer/prototype/resizable/this-is-not-object.js: Added.
- test262/test/built-ins/ArrayBuffer/prototype/resizable/this-is-sharedarraybuffer.js: Added.
- test262/test/built-ins/ArrayBuffer/prototype/resize/descriptor.js: Added.
- test262/test/built-ins/ArrayBuffer/prototype/resize/extensible.js: Added.
- test262/test/built-ins/ArrayBuffer/prototype/resize/length.js: Added.
- test262/test/built-ins/ArrayBuffer/prototype/resize/name.js: Added.
- test262/test/built-ins/ArrayBuffer/prototype/resize/new-length-excessive.js: Added.
- test262/test/built-ins/ArrayBuffer/prototype/resize/new-length-negative.js: Added.
- test262/test/built-ins/ArrayBuffer/prototype/resize/new-length-non-number.js: Added.
(newLength.toString):
(newLength.valueOf):
- test262/test/built-ins/ArrayBuffer/prototype/resize/nonconstructor.js: Added.
- test262/test/built-ins/ArrayBuffer/prototype/resize/resize-grow.js: Added.
(catch):
- test262/test/built-ins/ArrayBuffer/prototype/resize/resize-same-size-zero-explicit.js: Added.
(catch):
- test262/test/built-ins/ArrayBuffer/prototype/resize/resize-same-size-zero-implicit.js: Added.
(catch):
- test262/test/built-ins/ArrayBuffer/prototype/resize/resize-same-size.js: Added.
(catch):
- test262/test/built-ins/ArrayBuffer/prototype/resize/resize-shrink-zero-explicit.js: Added.
(catch):
- test262/test/built-ins/ArrayBuffer/prototype/resize/resize-shrink-zero-implicit.js: Added.
(catch):
- test262/test/built-ins/ArrayBuffer/prototype/resize/resize-shrink.js: Added.
(catch):
- test262/test/built-ins/ArrayBuffer/prototype/resize/this-is-detached.js: Added.
- test262/test/built-ins/ArrayBuffer/prototype/resize/this-is-not-arraybuffer-object.js: Added.
- test262/test/built-ins/ArrayBuffer/prototype/resize/this-is-not-object.js: Added.
- test262/test/built-ins/ArrayBuffer/prototype/resize/this-is-not-resizable-arraybuffer-object.js: Added.
- test262/test/built-ins/ArrayBuffer/prototype/resize/this-is-sharedarraybuffer.js: Added.
- test262/test/built-ins/ArrayBuffer/prototype/transfer/descriptor.js: Added.
- test262/test/built-ins/ArrayBuffer/prototype/transfer/extensible.js: Added.
- test262/test/built-ins/ArrayBuffer/prototype/transfer/from-fixed-to-larger.js: Added.
- test262/test/built-ins/ArrayBuffer/prototype/transfer/from-fixed-to-same.js: Added.
- test262/test/built-ins/ArrayBuffer/prototype/transfer/from-fixed-to-smaller.js: Added.
- test262/test/built-ins/ArrayBuffer/prototype/transfer/from-fixed-to-zero.js: Added.
- test262/test/built-ins/ArrayBuffer/prototype/transfer/from-resizable-to-larger.js: Added.
- test262/test/built-ins/ArrayBuffer/prototype/transfer/from-resizable-to-same.js: Added.
- test262/test/built-ins/ArrayBuffer/prototype/transfer/from-resizable-to-smaller.js: Added.
- test262/test/built-ins/ArrayBuffer/prototype/transfer/from-resizable-to-zero.js: Added.
- test262/test/built-ins/ArrayBuffer/prototype/transfer/length.js: Added.
- test262/test/built-ins/ArrayBuffer/prototype/transfer/name.js: Added.
- test262/test/built-ins/ArrayBuffer/prototype/transfer/new-length-excessive.js: Added.
- test262/test/built-ins/ArrayBuffer/prototype/transfer/new-length-non-number.js: Added.
(newLength.toString):
(newLength.valueOf):
- test262/test/built-ins/ArrayBuffer/prototype/transfer/nonconstructor.js: Added.
- test262/test/built-ins/ArrayBuffer/prototype/transfer/this-is-detached.js: Added.
- test262/test/built-ins/ArrayBuffer/prototype/transfer/this-is-not-arraybuffer-object.js: Added.
- test262/test/built-ins/ArrayBuffer/prototype/transfer/this-is-not-object.js: Added.
- test262/test/built-ins/ArrayBuffer/prototype/transfer/this-is-sharedarraybuffer.js: Added.
- test262/test/built-ins/DataView/prototype/byteLength/resizable-array-buffer-auto.js: Added.
(catch):
- test262/test/built-ins/DataView/prototype/byteLength/resizable-array-buffer-fixed.js: Added.
(catch):
- test262/test/built-ins/DataView/prototype/byteOffset/resizable-array-buffer-auto.js: Added.
(catch):
- test262/test/built-ins/DataView/prototype/byteOffset/resizable-array-buffer-fixed.js: Added.
(catch):
- test262/test/built-ins/DataView/prototype/getBigInt64/resizable-buffer.js: Added.
(catch):
- test262/test/built-ins/DataView/prototype/getBigUint64/resizable-buffer.js: Added.
(catch):
- test262/test/built-ins/DataView/prototype/getFloat32/resizable-buffer.js: Added.
(catch):
- test262/test/built-ins/DataView/prototype/getFloat64/resizable-buffer.js: Added.
(catch):
- test262/test/built-ins/DataView/prototype/getInt16/resizable-buffer.js: Added.
(catch):
- test262/test/built-ins/DataView/prototype/getInt32/resizable-buffer.js: Added.
(catch):
- test262/test/built-ins/DataView/prototype/getInt8/resizable-buffer.js: Added.
(catch):
- test262/test/built-ins/DataView/prototype/getUint16/resizable-buffer.js: Added.
(catch):
- test262/test/built-ins/DataView/prototype/getUint32/resizable-buffer.js: Added.
(catch):
- test262/test/built-ins/DataView/prototype/getUint8/resizable-buffer.js: Added.
(catch):
- test262/test/built-ins/DataView/prototype/setBigInt64/resizable-buffer.js: Added.
(catch):
- test262/test/built-ins/DataView/prototype/setBigUint64/resizable-buffer.js: Added.
(catch):
- test262/test/built-ins/DataView/prototype/setFloat32/resizable-buffer.js: Added.
(catch):
- test262/test/built-ins/DataView/prototype/setFloat64/resizable-buffer.js: Added.
(catch):
- test262/test/built-ins/DataView/prototype/setInt16/resizable-buffer.js: Added.
(catch):
- test262/test/built-ins/DataView/prototype/setInt32/resizable-buffer.js: Added.
(catch):
- test262/test/built-ins/DataView/prototype/setInt8/resizable-buffer.js: Added.
(catch):
- test262/test/built-ins/DataView/prototype/setUint16/resizable-buffer.js: Added.
(catch):
- test262/test/built-ins/DataView/prototype/setUint32/resizable-buffer.js: Added.
(catch):
- test262/test/built-ins/DataView/prototype/setUint8/resizable-buffer.js: Added.
(catch):
- test262/test/built-ins/Error/cause_abrupt.js:
(has):
(options.get cause):
- test262/test/built-ins/Object/hasOwn/descriptor.js: Added.
- test262/test/built-ins/Object/hasOwn/hasown.js: Added.
- test262/test/built-ins/Object/hasOwn/hasown_inherited_exists.js: Added.
- test262/test/built-ins/Object/hasOwn/hasown_inherited_getter.js: Added.
(base.get foo):
- test262/test/built-ins/Object/hasOwn/hasown_inherited_getter_and_setter.js: Added.
(base.get foo):
(base.set foo):
- test262/test/built-ins/Object/hasOwn/hasown_inherited_getter_and_setter_configurable_enumerable.js: Added.
- test262/test/built-ins/Object/hasOwn/hasown_inherited_getter_and_setter_configurable_nonenumerable.js: Added.
- test262/test/built-ins/Object/hasOwn/hasown_inherited_getter_and_setter_nonconfigurable_enumerable.js: Added.
- test262/test/built-ins/Object/hasOwn/hasown_inherited_getter_and_setter_nonconfigurable_nonenumerable.js: Added.
- test262/test/built-ins/Object/hasOwn/hasown_inherited_getter_configurable_enumerable.js: Added.
- test262/test/built-ins/Object/hasOwn/hasown_inherited_getter_configurable_nonenumerable.js: Added.
- test262/test/built-ins/Object/hasOwn/hasown_inherited_getter_nonconfigurable_enumerable.js: Added.
- test262/test/built-ins/Object/hasOwn/hasown_inherited_getter_nonconfigurable_nonenumerable.js: Added.
- test262/test/built-ins/Object/hasOwn/hasown_inherited_nonwritable_configurable_enumerable.js: Added.
- test262/test/built-ins/Object/hasOwn/hasown_inherited_nonwritable_configurable_nonenumerable.js: Added.
- test262/test/built-ins/Object/hasOwn/hasown_inherited_nonwritable_nonconfigurable_enumerable.js: Added.
- test262/test/built-ins/Object/hasOwn/hasown_inherited_nonwritable_nonconfigurable_nonenumerable.js: Added.
- test262/test/built-ins/Object/hasOwn/hasown_inherited_setter.js: Added.
(base.set foo):
- test262/test/built-ins/Object/hasOwn/hasown_inherited_setter_configurable_enumerable.js: Added.
- test262/test/built-ins/Object/hasOwn/hasown_inherited_setter_configurable_nonenumerable.js: Added.
- test262/test/built-ins/Object/hasOwn/hasown_inherited_setter_nonconfigurable_enumerable.js: Added.
- test262/test/built-ins/Object/hasOwn/hasown_inherited_setter_nonconfigurable_nonenumerable.js: Added.
- test262/test/built-ins/Object/hasOwn/hasown_inherited_writable_configurable_enumerable.js: Added.
- test262/test/built-ins/Object/hasOwn/hasown_inherited_writable_configurable_nonenumerable.js: Added.
- test262/test/built-ins/Object/hasOwn/hasown_inherited_writable_nonconfigurable_enumerable.js: Added.
- test262/test/built-ins/Object/hasOwn/hasown_inherited_writable_nonconfigurable_nonenumerable.js: Added.
- test262/test/built-ins/Object/hasOwn/hasown_nonexistent.js: Added.
- test262/test/built-ins/Object/hasOwn/hasown_own_getter.js: Added.
(o.get foo):
- test262/test/built-ins/Object/hasOwn/hasown_own_getter_and_setter.js: Added.
(o.get foo):
(o.set foo):
- test262/test/built-ins/Object/hasOwn/hasown_own_getter_and_setter_configurable_enumerable.js: Added.
- test262/test/built-ins/Object/hasOwn/hasown_own_getter_and_setter_configurable_nonenumerable.js: Added.
- test262/test/built-ins/Object/hasOwn/hasown_own_getter_and_setter_nonconfigurable_enumerable.js: Added.
- test262/test/built-ins/Object/hasOwn/hasown_own_getter_and_setter_nonconfigurable_nonenumerable.js: Added.
- test262/test/built-ins/Object/hasOwn/hasown_own_getter_configurable_enumerable.js: Added.
- test262/test/built-ins/Object/hasOwn/hasown_own_getter_configurable_nonenumerable.js: Added.
- test262/test/built-ins/Object/hasOwn/hasown_own_getter_nonconfigurable_enumerable.js: Added.
- test262/test/built-ins/Object/hasOwn/hasown_own_getter_nonconfigurable_nonenumerable.js: Added.
- test262/test/built-ins/Object/hasOwn/hasown_own_nonwritable_configurable_enumerable.js: Added.
- test262/test/built-ins/Object/hasOwn/hasown_own_nonwritable_nonconfigurable_enumerable.js: Added.
- test262/test/built-ins/Object/hasOwn/hasown_own_nonwriteable_configurable_nonenumerable.js: Added.
- test262/test/built-ins/Object/hasOwn/hasown_own_nonwriteable_nonconfigurable_nonenumerable.js: Added.
- test262/test/built-ins/Object/hasOwn/hasown_own_property_exists.js: Added.
- test262/test/built-ins/Object/hasOwn/hasown_own_setter.js: Added.
(o.set foo):
- test262/test/built-ins/Object/hasOwn/hasown_own_setter_configurable_enumerable.js: Added.
- test262/test/built-ins/Object/hasOwn/hasown_own_setter_configurable_nonenumerable.js: Added.
- test262/test/built-ins/Object/hasOwn/hasown_own_setter_nonconfigurable_enumerable.js: Added.
- test262/test/built-ins/Object/hasOwn/hasown_own_setter_nonconfigurable_nonenumerable.js: Added.
- test262/test/built-ins/Object/hasOwn/hasown_own_writable_configurable_enumerable.js: Added.
- test262/test/built-ins/Object/hasOwn/hasown_own_writable_configurable_nonenumerable.js: Added.
- test262/test/built-ins/Object/hasOwn/hasown_own_writable_nonconfigurable_enumerable.js: Added.
- test262/test/built-ins/Object/hasOwn/hasown_own_writable_nonconfigurable_nonenumerable.js: Added.
- test262/test/built-ins/Object/hasOwn/length.js: Added.
- test262/test/built-ins/Object/hasOwn/name.js: Added.
- test262/test/built-ins/Object/hasOwn/not-a-constructor.js: Added.
- test262/test/built-ins/Object/hasOwn/prototype.js: Added.
- test262/test/built-ins/Object/hasOwn/symbol_own_property.js: Added.
- test262/test/built-ins/Object/hasOwn/symbol_property_toPrimitive.js: Added.
(wrapper.Symbol.toPrimitive):
- test262/test/built-ins/Object/hasOwn/symbol_property_toString.js: Added.
(wrapper.toString):
(wrapper.valueOf):
- test262/test/built-ins/Object/hasOwn/symbol_property_valueOf.js: Added.
(wrapper.valueOf):
- test262/test/built-ins/Object/hasOwn/toobject_before_topropertykey.js: Added.
(coercibleKey1.get toString):
(coercibleKey1.get valueOf):
(coercibleKey2.Symbol.toPrimitive):
- test262/test/built-ins/Object/hasOwn/toobject_null.js: Added.
- test262/test/built-ins/Object/hasOwn/toobject_undefined.js: Added.
- test262/test/built-ins/Promise/race/resolve-element-function-extensible.js: Removed.
- test262/test/built-ins/Promise/race/resolve-element-function-name.js: Removed.
- test262/test/built-ins/Promise/race/resolve-element-function-nonconstructor.js: Removed.
- test262/test/built-ins/Promise/race/resolve-element-function-prototype.js: Removed.
- test262/test/built-ins/SharedArrayBuffer/options-maxbytelength-diminuitive.js: Added.
- test262/test/built-ins/SharedArrayBuffer/options-maxbytelength-excessive.js: Added.
- test262/test/built-ins/SharedArrayBuffer/options-maxbytelength-negative.js: Added.
- test262/test/built-ins/SharedArrayBuffer/options-maxbytelength-object.js: Added.
(options.maxByteLength.toString):
(options.maxByteLength.valueOf):
- test262/test/built-ins/SharedArrayBuffer/options-maxbytelength-poisoned.js: Added.
(options.get maxByteLength):
- test262/test/built-ins/SharedArrayBuffer/options-maxbytelength-undefined.js: Added.
- test262/test/built-ins/SharedArrayBuffer/options-non-object.js: Added.
- test262/test/built-ins/SharedArrayBuffer/prototype/grow/descriptor.js: Added.
- test262/test/built-ins/SharedArrayBuffer/prototype/grow/extensible.js: Added.
- test262/test/built-ins/SharedArrayBuffer/prototype/grow/grow-larger-size.js: Added.
(catch):
- test262/test/built-ins/SharedArrayBuffer/prototype/grow/grow-same-size.js: Added.
(catch):
- test262/test/built-ins/SharedArrayBuffer/prototype/grow/grow-smaller-size.js: Added.
(catch):
- test262/test/built-ins/SharedArrayBuffer/prototype/grow/length.js: Added.
- test262/test/built-ins/SharedArrayBuffer/prototype/grow/name.js: Added.
- test262/test/built-ins/SharedArrayBuffer/prototype/grow/new-length-excessive.js: Added.
- test262/test/built-ins/SharedArrayBuffer/prototype/grow/new-length-negative.js: Added.
- test262/test/built-ins/SharedArrayBuffer/prototype/grow/new-length-non-number.js: Added.
(newLength.toString):
(newLength.valueOf):
- test262/test/built-ins/SharedArrayBuffer/prototype/grow/nonconstructor.js: Added.
- test262/test/built-ins/SharedArrayBuffer/prototype/grow/this-is-not-arraybuffer-object.js: Added.
- test262/test/built-ins/SharedArrayBuffer/prototype/grow/this-is-not-object.js: Added.
- test262/test/built-ins/SharedArrayBuffer/prototype/grow/this-is-not-resizable-arraybuffer-object.js: Added.
- test262/test/built-ins/SharedArrayBuffer/prototype/grow/this-is-sharedarraybuffer.js: Added.
- test262/test/built-ins/SharedArrayBuffer/prototype/growable/invoked-as-accessor.js: Added.
- test262/test/built-ins/SharedArrayBuffer/prototype/growable/invoked-as-func.js: Added.
- test262/test/built-ins/SharedArrayBuffer/prototype/growable/length.js: Added.
- test262/test/built-ins/SharedArrayBuffer/prototype/growable/name.js: Added.
- test262/test/built-ins/SharedArrayBuffer/prototype/growable/prop-desc.js: Added.
- test262/test/built-ins/SharedArrayBuffer/prototype/growable/return-growable.js: Added.
- test262/test/built-ins/SharedArrayBuffer/prototype/growable/this-has-no-arraybufferdata-internal.js: Added.
- test262/test/built-ins/SharedArrayBuffer/prototype/growable/this-is-arraybuffer.js: Added.
- test262/test/built-ins/SharedArrayBuffer/prototype/growable/this-is-not-object.js: Added.
- test262/test/built-ins/SharedArrayBuffer/prototype/maxByteLength/invoked-as-accessor.js: Added.
- test262/test/built-ins/SharedArrayBuffer/prototype/maxByteLength/invoked-as-func.js: Added.
- test262/test/built-ins/SharedArrayBuffer/prototype/maxByteLength/length.js: Added.
- test262/test/built-ins/SharedArrayBuffer/prototype/maxByteLength/name.js: Added.
- test262/test/built-ins/SharedArrayBuffer/prototype/maxByteLength/prop-desc.js: Added.
- test262/test/built-ins/SharedArrayBuffer/prototype/maxByteLength/return-maxbytelength-growable.js: Added.
- test262/test/built-ins/SharedArrayBuffer/prototype/maxByteLength/return-maxbytelength-non-growable.js: Added.
- test262/test/built-ins/SharedArrayBuffer/prototype/maxByteLength/this-has-no-arraybufferdata-internal.js: Added.
- test262/test/built-ins/SharedArrayBuffer/prototype/maxByteLength/this-is-arraybuffer.js: Added.
- test262/test/built-ins/SharedArrayBuffer/prototype/maxByteLength/this-is-not-object.js: Added.
- test262/test/built-ins/Symbol/for/description.js: Added.
(symbol.Symbol.toString):
- test262/test/built-ins/Temporal/now/instant/extensible.js: Added.
- test262/test/built-ins/Temporal/now/instant/length.js: Added.
- test262/test/built-ins/Temporal/now/instant/name.js: Added.
- test262/test/built-ins/Temporal/now/instant/not-a-constructor.js: Added.
- test262/test/built-ins/Temporal/now/instant/prop-desc.js: Added.
- test262/test/built-ins/Temporal/now/instant/return-value-distinct.js: Added.
- test262/test/built-ins/Temporal/now/instant/return-value-prototype.js: Added.
- test262/test/built-ins/Temporal/now/instant/return-value-value.js: Added.
- test262/test/built-ins/Temporal/now/timeZone/extensible.js: Added.
- test262/test/built-ins/Temporal/now/timeZone/length.js: Added.
- test262/test/built-ins/Temporal/now/timeZone/name.js: Added.
- test262/test/built-ins/Temporal/now/timeZone/new-object.js: Added.
- test262/test/built-ins/Temporal/now/timeZone/not-a-constructor.js: Added.
- test262/test/built-ins/Temporal/now/timeZone/prop-desc.js: Added.
- test262/test/built-ins/Temporal/now/timeZone/return-value.js: Added.
- test262/test/built-ins/TypedArray/prototype/at/return-abrupt-from-this-out-of-bounds.js: Added.
(testWithTypedArrayConstructors.TA.catch):
- test262/test/built-ins/TypedArray/prototype/byteLength/resizable-array-buffer-auto.js: Added.
(testWithTypedArrayConstructors):
- test262/test/built-ins/TypedArray/prototype/byteLength/resizable-array-buffer-fixed.js: Added.
(testWithTypedArrayConstructors):
- test262/test/built-ins/TypedArray/prototype/byteOffset/resizable-array-buffer-auto.js: Added.
(testWithTypedArrayConstructors):
- test262/test/built-ins/TypedArray/prototype/byteOffset/resizable-array-buffer-fixed.js: Added.
(testWithTypedArrayConstructors):
- test262/test/built-ins/TypedArray/prototype/copyWithin/return-abrupt-from-this-out-of-bounds.js: Added.
(testWithTypedArrayConstructors.TA.catch):
- test262/test/built-ins/TypedArray/prototype/entries/return-abrupt-from-this-out-of-bounds.js: Added.
(testWithTypedArrayConstructors.TA.catch):
- test262/test/built-ins/TypedArray/prototype/every/return-abrupt-from-this-out-of-bounds.js: Added.
(testWithTypedArrayConstructors.TA.catch):
(testWithTypedArrayConstructors.TA.array.every):
- test262/test/built-ins/TypedArray/prototype/fill/return-abrupt-from-this-out-of-bounds.js: Added.
(testWithTypedArrayConstructors.TA.catch):
- test262/test/built-ins/TypedArray/prototype/filter/return-abrupt-from-this-out-of-bounds.js: Added.
(testWithTypedArrayConstructors.TA.catch):
(testWithTypedArrayConstructors.TA.array.filter):
- test262/test/built-ins/TypedArray/prototype/find/return-abrupt-from-this-out-of-bounds.js: Added.
(testWithTypedArrayConstructors.TA.catch):
(testWithTypedArrayConstructors.TA.array.find):
- test262/test/built-ins/TypedArray/prototype/findIndex/return-abrupt-from-this-out-of-bounds.js: Added.
(testWithTypedArrayConstructors.TA.catch):
(testWithTypedArrayConstructors.TA.array.findIndex):
- test262/test/built-ins/TypedArray/prototype/forEach/return-abrupt-from-this-out-of-bounds.js: Added.
(testWithTypedArrayConstructors.TA.catch):
(testWithTypedArrayConstructors.TA.array.forEach):
- test262/test/built-ins/TypedArray/prototype/includes/return-abrupt-from-this-out-of-bounds.js: Added.
(testWithTypedArrayConstructors.TA.catch):
- test262/test/built-ins/TypedArray/prototype/indexOf/return-abrupt-from-this-out-of-bounds.js: Added.
(testWithTypedArrayConstructors.TA.catch):
- test262/test/built-ins/TypedArray/prototype/join/return-abrupt-from-this-out-of-bounds.js: Added.
(testWithTypedArrayConstructors.TA.catch):
- test262/test/built-ins/TypedArray/prototype/keys/return-abrupt-from-this-out-of-bounds.js: Added.
(testWithTypedArrayConstructors.TA.catch):
- test262/test/built-ins/TypedArray/prototype/lastIndexOf/return-abrupt-from-this-out-of-bounds.js: Added.
(testWithTypedArrayConstructors.TA.catch):
- test262/test/built-ins/TypedArray/prototype/length/resizable-array-buffer-auto.js: Added.
(testWithTypedArrayConstructors):
- test262/test/built-ins/TypedArray/prototype/length/resizable-array-buffer-fixed.js: Added.
(testWithTypedArrayConstructors):
- test262/test/built-ins/TypedArray/prototype/map/return-abrupt-from-this-out-of-bounds.js: Added.
(testWithTypedArrayConstructors.TA.catch):
(testWithTypedArrayConstructors.TA.array.map):
- test262/test/built-ins/TypedArray/prototype/reduce/return-abrupt-from-this-out-of-bounds.js: Added.
(testWithTypedArrayConstructors.TA.catch):
(testWithTypedArrayConstructors.TA.array.reduce):
- test262/test/built-ins/TypedArray/prototype/reduceRight/return-abrupt-from-this-out-of-bounds.js: Added.
(testWithTypedArrayConstructors.TA.catch):
(testWithTypedArrayConstructors.TA.array.reduceRight):
- test262/test/built-ins/TypedArray/prototype/reverse/return-abrupt-from-this-out-of-bounds.js: Added.
(testWithTypedArrayConstructors.TA.catch):
- test262/test/built-ins/TypedArray/prototype/set/typedarray-arg-set-values-same-buffer-same-type-resized.js: Added.
(testWithTypedArrayConstructors):
- test262/test/built-ins/TypedArray/prototype/set/typedarray-arg-target-out-of-bounds.js: Added.
(testWithTypedArrayConstructors.TA.catch):
- test262/test/built-ins/TypedArray/prototype/slice/return-abrupt-from-this-out-of-bounds.js: Added.
(testWithTypedArrayConstructors.TA.catch):
- test262/test/built-ins/TypedArray/prototype/some/return-abrupt-from-this-out-of-bounds.js: Added.
(testWithTypedArrayConstructors.TA.catch):
(testWithTypedArrayConstructors.TA.array.some):
- test262/test/built-ins/TypedArray/prototype/sort/return-abrupt-from-this-out-of-bounds.js: Added.
(testWithTypedArrayConstructors.TA.catch):
- test262/test/built-ins/TypedArray/prototype/toLocaleString/return-abrupt-from-this-out-of-bounds.js: Added.
(testWithTypedArrayConstructors.TA.catch):
- test262/test/built-ins/TypedArray/prototype/values/return-abrupt-from-this-out-of-bounds.js: Added.
(testWithTypedArrayConstructors.TA.catch):
- test262/test/built-ins/TypedArrayConstructors/ctors/buffer-arg/excessive-offset-throws-resizable-ab.js: Added.
(testWithTypedArrayConstructors):
- test262/test/built-ins/TypedArrayConstructors/ctors/typedarray-arg/out-of-bounds-when-species-retrieved-different-type.js: Added.
(testWithTypedArrayConstructors.):
(testWithTypedArrayConstructors.get var):
(testWithTypedArrayConstructors.onGetSpecies):
(testWithTypedArrayConstructors):
- test262/test/built-ins/TypedArrayConstructors/ctors/typedarray-arg/out-of-bounds-when-species-retrieved-same-type.js: Added.
(testWithTypedArrayConstructors.):
(testWithTypedArrayConstructors.get var):
(testWithTypedArrayConstructors.onGetSpecies):
(testWithTypedArrayConstructors):
- test262/test/built-ins/TypedArrayConstructors/internals/DefineOwnProperty/BigInt/detached-buffer-realm.js: Removed.
- test262/test/built-ins/TypedArrayConstructors/internals/DefineOwnProperty/BigInt/detached-buffer-throws-realm.js: Added.
(testWithBigIntTypedArrayConstructors):
- test262/test/built-ins/TypedArrayConstructors/internals/DefineOwnProperty/BigInt/detached-buffer-throws.js: Added.
(testWithBigIntTypedArrayConstructors):
- test262/test/built-ins/TypedArrayConstructors/internals/DefineOwnProperty/BigInt/key-is-not-numeric-index-throws.js: Added.
(testWithBigIntTypedArrayConstructors):
- test262/test/built-ins/TypedArrayConstructors/internals/DefineOwnProperty/BigInt/key-is-numericindex-accessor-desc-throws.js: Added.
(testWithBigIntTypedArrayConstructors.):
(testWithBigIntTypedArrayConstructors.get assert):
(testWithBigIntTypedArrayConstructors.set assert):
- test262/test/built-ins/TypedArrayConstructors/internals/DefineOwnProperty/BigInt/key-is-numericindex-desc-configurable.js:
- test262/test/built-ins/TypedArrayConstructors/internals/DefineOwnProperty/BigInt/key-is-numericindex-desc-not-configurable-throws.js: Added.
(testWithBigIntTypedArrayConstructors):
- test262/test/built-ins/TypedArrayConstructors/internals/DefineOwnProperty/BigInt/key-is-numericindex-desc-not-enumerable-throws.js: Added.
(testWithBigIntTypedArrayConstructors):
- test262/test/built-ins/TypedArrayConstructors/internals/DefineOwnProperty/BigInt/key-is-numericindex-desc-not-writable-throws.js: Added.
(testWithBigIntTypedArrayConstructors):
- test262/test/built-ins/TypedArrayConstructors/internals/DefineOwnProperty/BigInt/tonumber-value-detached-buffer.js:
(testWithBigIntTypedArrayConstructors):
- test262/test/built-ins/TypedArrayConstructors/internals/DefineOwnProperty/detached-buffer-realm.js: Removed.
- test262/test/built-ins/TypedArrayConstructors/internals/DefineOwnProperty/detached-buffer-throws-realm.js: Added.
(testWithTypedArrayConstructors):
- test262/test/built-ins/TypedArrayConstructors/internals/DefineOwnProperty/detached-buffer-throws.js: Added.
(testWithTypedArrayConstructors):
- test262/test/built-ins/TypedArrayConstructors/internals/DefineOwnProperty/key-is-not-numeric-index-throws.js: Added.
(testWithTypedArrayConstructors):
- test262/test/built-ins/TypedArrayConstructors/internals/DefineOwnProperty/key-is-numericindex-accessor-desc-throws.js: Added.
(testWithTypedArrayConstructors.):
(testWithTypedArrayConstructors.get assert):
(testWithTypedArrayConstructors.set assert):
- test262/test/built-ins/TypedArrayConstructors/internals/DefineOwnProperty/key-is-numericindex-desc-configurable.js:
- test262/test/built-ins/TypedArrayConstructors/internals/DefineOwnProperty/key-is-numericindex-desc-not-configurable-throws.js: Added.
(testWithTypedArrayConstructors):
- test262/test/built-ins/TypedArrayConstructors/internals/DefineOwnProperty/key-is-numericindex-desc-not-enumerable-throws.js: Added.
(testWithTypedArrayConstructors):
- test262/test/built-ins/TypedArrayConstructors/internals/DefineOwnProperty/key-is-numericindex-desc-not-writable-throws.js: Added.
(testWithTypedArrayConstructors):
- test262/test/built-ins/TypedArrayConstructors/internals/DefineOwnProperty/tonumber-value-detached-buffer.js:
(testWithTypedArrayConstructors):
- test262/test/built-ins/TypedArrayConstructors/internals/Delete/key-is-symbol.js:
- test262/test/built-ins/TypedArrayConstructors/internals/HasProperty/resizable-array-buffer-auto.js: Added.
(inspect):
(testWithTypedArrayConstructors):
- test262/test/built-ins/TypedArrayConstructors/internals/HasProperty/resizable-array-buffer-fixed.js: Added.
(inspect):
(testWithTypedArrayConstructors):
- test262/test/built-ins/TypedArrayConstructors/internals/OwnPropertyKeys/integer-indexes-resizable-array-buffer-auto.js: Added.
(testWithTypedArrayConstructors):
- test262/test/built-ins/TypedArrayConstructors/internals/OwnPropertyKeys/integer-indexes-resizable-array-buffer-fixed.js: Added.
(testWithTypedArrayConstructors):
- test262/test/intl402/DateTimeFormat/constructor-options-style-conflict.js: Added.
- test262/test/intl402/Locale/prototype/calendars/branding.js: Added.
- test262/test/intl402/Locale/prototype/calendars/name.js: Added.
- test262/test/intl402/Locale/prototype/calendars/output-array.js: Added.
- test262/test/intl402/Locale/prototype/calendars/prop-desc.js: Added.
- test262/test/intl402/Locale/prototype/collations/branding.js: Added.
- test262/test/intl402/Locale/prototype/collations/name.js: Added.
- test262/test/intl402/Locale/prototype/collations/output-array-values.js: Added.
- test262/test/intl402/Locale/prototype/collations/output-array.js: Added.
- test262/test/intl402/Locale/prototype/collations/prop-desc.js: Added.
- test262/test/intl402/Locale/prototype/hourCycles/branding.js: Added.
- test262/test/intl402/Locale/prototype/hourCycles/name.js: Added.
- test262/test/intl402/Locale/prototype/hourCycles/output-array-values.js: Added.
- test262/test/intl402/Locale/prototype/hourCycles/output-array.js: Added.
- test262/test/intl402/Locale/prototype/hourCycles/prop-desc.js: Added.
- test262/test/intl402/Locale/prototype/numberingSystems/branding.js: Added.
- test262/test/intl402/Locale/prototype/numberingSystems/name.js: Added.
- test262/test/intl402/Locale/prototype/numberingSystems/output-array.js: Added.
- test262/test/intl402/Locale/prototype/numberingSystems/prop-desc.js: Added.
- test262/test/intl402/Locale/prototype/textInfo/branding.js: Added.
- test262/test/intl402/Locale/prototype/textInfo/name.js: Added.
- test262/test/intl402/Locale/prototype/textInfo/output-object-keys.js: Added.
- test262/test/intl402/Locale/prototype/textInfo/output-object.js: Added.
- test262/test/intl402/Locale/prototype/textInfo/prop-desc.js: Added.
- test262/test/intl402/Locale/prototype/timeZones/branding.js: Added.
- test262/test/intl402/Locale/prototype/timeZones/name.js: Added.
- test262/test/intl402/Locale/prototype/timeZones/output-array-sorted.js: Added.
- test262/test/intl402/Locale/prototype/timeZones/output-array.js: Added.
- test262/test/intl402/Locale/prototype/timeZones/output-undefined.js: Added.
- test262/test/intl402/Locale/prototype/timeZones/prop-desc.js: Added.
- test262/test/intl402/Locale/prototype/weekInfo/branding.js: Added.
- test262/test/intl402/Locale/prototype/weekInfo/name.js: Added.
- test262/test/intl402/Locale/prototype/weekInfo/output-object-keys.js: Added.
- test262/test/intl402/Locale/prototype/weekInfo/output-object.js: Added.
- test262/test/intl402/Locale/prototype/weekInfo/prop-desc.js: Added.
- test262/test/intl402/Segmenter/constructor/supportedLocalesOf/locales-specific.js:
- test262/test/intl402/Segmenter/prototype/segment/containing/iswordlike.js:
(other_granularities.forEach):
- test262/test/intl402/Segmenter/prototype/segment/containing/one-index.js:
(toString):
(valueOf):
(Symbol.toPrimitive):
- test262/test/intl402/Segmenter/prototype/segment/containing/out-of-bound-index.js:
(toString):
(valueOf):
(Symbol.toPrimitive):
- test262/test/intl402/Segmenter/prototype/segment/containing/word-iswordlike.js:
(inputs.forEach):
- test262/test/intl402/Segmenter/prototype/segment/containing/zero-index.js:
(toString):
(valueOf):
(Symbol.toPrimitive):
- test262/test/intl402/Segmenter/prototype/segment/segment-grapheme-iterable.js:
(const.v.of.seg.segment):
- test262/test/intl402/Segmenter/prototype/segment/segment-sentence-iterable.js:
(const.v.of.seg.segment):
- test262/test/intl402/Segmenter/prototype/segment/segment-word-iterable.js:
(const.v.of.seg.segment):
- test262/test/intl402/fallback-locales-are-supported.js:
(testWithIntlConstructors):
- test262/test/intl402/supportedLocalesOf-consistent-with-resolvedOptions.js:
(testWithIntlConstructors):
- test262/test/intl402/supportedLocalesOf-unicode-extensions-ignored.js:
(testWithIntlConstructors.):
(testWithIntlConstructors):
- test262/test/language/expressions/arrow-function/extensibility.js: Added.
(assert.Object.isExtensible):
- test262/test/language/expressions/arrow-function/syntax/arrowparameters-cover-initialize-2.js:
- test262/test/language/expressions/assignment/S11.13.1_A7_T1.js: Removed.
- test262/test/language/expressions/assignment/S11.13.1_A7_T2.js: Removed.
- test262/test/language/expressions/assignment/target-member-computed-reference-null.js: Added.
(DummyError):
(prop):
(expr):
(prop.toString):
- test262/test/language/expressions/assignment/target-member-computed-reference-undefined.js: Added.
(DummyError):
(prop):
(expr):
(prop.toString):
- test262/test/language/expressions/assignment/target-member-identifier-reference-null.js: Added.
- test262/test/language/expressions/assignment/target-member-identifier-reference-undefined.js: Added.
- test262/test/language/expressions/assignment/target-super-computed-reference-null.js: Added.
(C.m):
(C):
- test262/test/language/expressions/assignment/target-super-identifier-reference-null.js: Added.
(C.m):
(C):
- test262/test/language/expressions/delete/member-computed-reference-null.js: Added.
- test262/test/language/expressions/delete/member-computed-reference-undefined.js: Added.
- test262/test/language/expressions/delete/member-identifier-reference-null.js: Added.
- test262/test/language/expressions/delete/member-identifier-reference-undefined.js: Added.
- test262/test/language/expressions/delete/super-property-null-base.js: Added.
(C.m):
(C):
- test262/test/language/expressions/dynamic-import/2nd-param-assert-enumeration-abrupt.js: Added.
(options.ownKeys):
(options.then):
- test262/test/language/expressions/dynamic-import/2nd-param-assert-enumeration.js: Added.
(options.ownKeys):
(options.get _):
(options.getOwnPropertyDescriptor):
(options.then):
- test262/test/language/expressions/dynamic-import/2nd-param-assert-non-object.js: Added.
(test):
(string_appeared_here.then):
- test262/test/language/expressions/dynamic-import/2nd-param-assert-undefined.js: Added.
(then):
- test262/test/language/expressions/dynamic-import/2nd-param-assert-value-abrupt.js: Added.
(assert.get string_appeared_here):
(then):
- test262/test/language/expressions/dynamic-import/2nd-param-assert-value-non-string.js: Added.
(test):
(string_appeared_here.then):
- test262/test/language/expressions/dynamic-import/2nd-param-await-expr.js: Added.
- test262/test/language/expressions/dynamic-import/2nd-param-await-ident.js: Added.
(await):
(await.undefined.then):
- test262/test/language/expressions/dynamic-import/2nd-param-evaluation-abrupt-return.js: Added.
(iter):
- test262/test/language/expressions/dynamic-import/2nd-param-evaluation-abrupt-throw.js: Added.
(throwError):
- test262/test/language/expressions/dynamic-import/2nd-param-evaluation-sequence.js: Added.
- test262/test/language/expressions/dynamic-import/2nd-param-get-assert-error.js: Added.
(options.get assert):
(options.then):
- test262/test/language/expressions/dynamic-import/2nd-param-in.js: Added.
(promise.then):
- test262/test/language/expressions/dynamic-import/2nd-param-non-object.js: Added.
(test):
(string_appeared_here.then):
- test262/test/language/expressions/dynamic-import/2nd-param-trailing-comma-fulfill.js: Added.
(then):
- test262/test/language/expressions/dynamic-import/2nd-param-trailing-comma-reject.js: Added.
(import.toString):
(then):
- test262/test/language/expressions/dynamic-import/2nd-param-yield-expr.js: Added.
(iter):
(promise.then):
- test262/test/language/expressions/dynamic-import/2nd-param-yield-ident-invalid.js: Added.
- test262/test/language/expressions/dynamic-import/2nd-param-yield-ident-valid.js: Added.
(yield.then):
- test262/test/language/expressions/dynamic-import/2nd-param_FIXTURE.js: Added.
- test262/test/language/expressions/dynamic-import/syntax/invalid/nested-arrow-assignment-expression-not-extensible-args.js:
- test262/test/language/expressions/dynamic-import/syntax/invalid/nested-arrow-not-extensible-args.js:
(let.f):
- test262/test/language/expressions/dynamic-import/syntax/invalid/nested-async-arrow-function-await-not-extensible-args.js:
(async await):
- test262/test/language/expressions/dynamic-import/syntax/invalid/nested-async-arrow-function-return-await-not-extensible-args.js:
(async await):
- test262/test/language/expressions/dynamic-import/syntax/invalid/nested-async-arrow-function-return-await-not-extensible-no-trailing-comma.js: Removed.
- test262/test/language/expressions/dynamic-import/syntax/invalid/nested-async-function-await-not-extensible-args.js:
(async f):
- test262/test/language/expressions/dynamic-import/syntax/invalid/nested-async-function-not-extensible-args.js:
(async f):
- test262/test/language/expressions/dynamic-import/syntax/invalid/nested-async-function-return-await-not-extensible-args.js:
(async f):
- test262/test/language/expressions/dynamic-import/syntax/invalid/nested-async-function-return-await-not-extensible-no-trailing-comma.js: Removed.
- test262/test/language/expressions/dynamic-import/syntax/invalid/nested-async-gen-await-not-extensible-args.js:
(async f):
- test262/test/language/expressions/dynamic-import/syntax/invalid/nested-block-labeled-not-extensible-args.js:
- test262/test/language/expressions/dynamic-import/syntax/invalid/nested-block-not-extensible-args.js:
(DONOTEVALUATE):
- test262/test/language/expressions/dynamic-import/syntax/invalid/nested-do-while-not-extensible-args.js:
- test262/test/language/expressions/dynamic-import/syntax/invalid/nested-else-braceless-not-extensible-args.js:
- test262/test/language/expressions/dynamic-import/syntax/invalid/nested-else-not-extensible-args.js:
- test262/test/language/expressions/dynamic-import/syntax/invalid/nested-function-not-extensible-args.js:
(fn):
- test262/test/language/expressions/dynamic-import/syntax/invalid/nested-function-return-not-extensible-args.js:
(fn):
- test262/test/language/expressions/dynamic-import/syntax/invalid/nested-if-braceless-not-extensible-args.js:
- test262/test/language/expressions/dynamic-import/syntax/invalid/nested-if-braceless-not-extensible-no-trailing-comma.js: Removed.
- test262/test/language/expressions/dynamic-import/syntax/invalid/nested-if-not-extensible-args.js:
- test262/test/language/expressions/dynamic-import/syntax/invalid/nested-while-not-extensible-args.js:
- test262/test/language/expressions/dynamic-import/syntax/invalid/nested-with-expression-not-extensible-args.js:
(with.import):
- test262/test/language/expressions/dynamic-import/syntax/invalid/nested-with-not-extensible-args.js:
(with):
- test262/test/language/expressions/dynamic-import/syntax/invalid/top-level-not-extensible-args.js:
- test262/test/language/expressions/dynamic-import/syntax/invalid/top-level-not-extensible-no-trailing-comma.js: Removed.
- test262/test/language/expressions/dynamic-import/syntax/valid/nested-arrow-assignment-expression-trailing-comma-first.js: Copied from JSTests/test262/test/language/expressions/dynamic-import/syntax/invalid/nested-arrow-assignment-expression-not-extensible-args.js.
- test262/test/language/expressions/dynamic-import/syntax/valid/nested-arrow-assignment-expression-trailing-comma-second.js: Copied from JSTests/test262/test/language/expressions/dynamic-import/syntax/invalid/nested-arrow-assignment-expression-not-extensible-args.js.
- test262/test/language/expressions/dynamic-import/syntax/valid/nested-arrow-trailing-comma-first.js: Renamed from JSTests/test262/test/language/expressions/dynamic-import/syntax/invalid/nested-arrow-not-extensible-no-trailing-comma.js.
(let.f):
- test262/test/language/expressions/dynamic-import/syntax/valid/nested-arrow-trailing-comma-second.js: Copied from JSTests/test262/test/language/expressions/dynamic-import/syntax/invalid/nested-arrow-not-extensible-args.js.
(let.f):
- test262/test/language/expressions/dynamic-import/syntax/valid/nested-async-arrow-function-await-trailing-comma-first.js: Renamed from JSTests/test262/test/language/expressions/dynamic-import/syntax/invalid/nested-async-arrow-function-await-not-extensible-no-trailing-comma.js.
- test262/test/language/expressions/dynamic-import/syntax/valid/nested-async-arrow-function-await-trailing-comma-second.js: Copied from JSTests/test262/test/language/expressions/dynamic-import/syntax/invalid/nested-async-arrow-function-await-not-extensible-args.js.
(async await):
- test262/test/language/expressions/dynamic-import/syntax/valid/nested-async-arrow-function-return-await-trailing-comma-first.js: Copied from JSTests/test262/test/language/expressions/dynamic-import/syntax/invalid/nested-arrow-assignment-expression-not-extensible-args.js.
- test262/test/language/expressions/dynamic-import/syntax/valid/nested-async-arrow-function-return-await-trailing-comma-second.js: Copied from JSTests/test262/test/language/expressions/dynamic-import/syntax/invalid/nested-arrow-assignment-expression-not-extensible-args.js.
(async await):
- test262/test/language/expressions/dynamic-import/syntax/valid/nested-async-function-await-trailing-comma-first.js: Copied from JSTests/test262/test/language/expressions/dynamic-import/syntax/invalid/nested-async-function-await-not-extensible-args.js.
(async f):
- test262/test/language/expressions/dynamic-import/syntax/valid/nested-async-function-await-trailing-comma-second.js: Copied from JSTests/test262/test/language/expressions/dynamic-import/syntax/invalid/nested-async-function-await-not-extensible-args.js.
(async f):
- test262/test/language/expressions/dynamic-import/syntax/valid/nested-async-function-return-await-trailing-comma-first.js: Copied from JSTests/test262/test/language/expressions/dynamic-import/syntax/invalid/nested-async-function-await-not-extensible-args.js.
(async f):
- test262/test/language/expressions/dynamic-import/syntax/valid/nested-async-function-return-await-trailing-comma-second.js: Copied from JSTests/test262/test/language/expressions/dynamic-import/syntax/invalid/nested-async-function-await-not-extensible-args.js.
(async f):
- test262/test/language/expressions/dynamic-import/syntax/valid/nested-async-function-trailing-comma-first.js: Renamed from JSTests/test262/test/language/expressions/dynamic-import/syntax/invalid/nested-async-function-await-not-extensible-no-trailing-comma.js.
(async f):
- test262/test/language/expressions/dynamic-import/syntax/valid/nested-async-function-trailing-comma-second.js: Renamed from JSTests/test262/test/language/expressions/dynamic-import/syntax/invalid/nested-async-function-not-extensible-no-trailing-comma.js.
(async f):
- test262/test/language/expressions/dynamic-import/syntax/valid/nested-async-gen-await-trailing-comma-first.js: Renamed from JSTests/test262/test/language/expressions/dynamic-import/syntax/invalid/nested-async-gen-await-not-extensible-no-trailing-comma.js.
(async f):
- test262/test/language/expressions/dynamic-import/syntax/valid/nested-async-gen-await-trailing-comma-second.js: Copied from JSTests/test262/test/language/expressions/dynamic-import/syntax/invalid/nested-async-gen-await-not-extensible-args.js.
(async f):
- test262/test/language/expressions/dynamic-import/syntax/valid/nested-block-labeled-trailing-comma-first.js: Renamed from JSTests/test262/test/language/expressions/dynamic-import/syntax/invalid/nested-block-labeled-not-extensible-no-trailing-comma.js.
- test262/test/language/expressions/dynamic-import/syntax/valid/nested-block-labeled-trailing-comma-second.js: Copied from JSTests/test262/test/language/expressions/dynamic-import/syntax/invalid/nested-block-labeled-not-extensible-args.js.
- test262/test/language/expressions/dynamic-import/syntax/valid/nested-block-trailing-comma-first.js: Renamed from JSTests/test262/test/language/expressions/dynamic-import/syntax/invalid/nested-block-not-extensible-no-trailing-comma.js.
- test262/test/language/expressions/dynamic-import/syntax/valid/nested-block-trailing-comma-second.js: Copied from JSTests/test262/test/language/expressions/dynamic-import/syntax/invalid/nested-block-not-extensible-args.js.
- test262/test/language/expressions/dynamic-import/syntax/valid/nested-do-while-trailing-comma-first.js: Renamed from JSTests/test262/test/language/expressions/dynamic-import/syntax/invalid/nested-do-while-not-extensible-no-trailing-comma.js.
- test262/test/language/expressions/dynamic-import/syntax/valid/nested-do-while-trailing-comma-second.js: Copied from JSTests/test262/test/language/expressions/dynamic-import/syntax/invalid/nested-do-while-not-extensible-args.js.
- test262/test/language/expressions/dynamic-import/syntax/valid/nested-else-braceless-trailing-comma-first.js: Renamed from JSTests/test262/test/language/expressions/dynamic-import/syntax/invalid/nested-else-braceless-not-extensible-no-trailing-comma.js.
- test262/test/language/expressions/dynamic-import/syntax/valid/nested-else-braceless-trailing-comma-second.js: Copied from JSTests/test262/test/language/expressions/dynamic-import/syntax/invalid/nested-else-braceless-not-extensible-args.js.
- test262/test/language/expressions/dynamic-import/syntax/valid/nested-else-trailing-comma-first.js: Renamed from JSTests/test262/test/language/expressions/dynamic-import/syntax/invalid/nested-else-not-extensible-no-trailing-comma.js.
- test262/test/language/expressions/dynamic-import/syntax/valid/nested-else-trailing-comma-second.js: Copied from JSTests/test262/test/language/expressions/dynamic-import/syntax/invalid/nested-else-not-extensible-args.js.
- test262/test/language/expressions/dynamic-import/syntax/valid/nested-function-return-trailing-comma-first.js: Copied from JSTests/test262/test/language/expressions/dynamic-import/syntax/invalid/nested-function-return-not-extensible-args.js.
(fn):
- test262/test/language/expressions/dynamic-import/syntax/valid/nested-function-return-trailing-comma-second.js: Copied from JSTests/test262/test/language/expressions/dynamic-import/syntax/invalid/nested-function-return-not-extensible-args.js.
(fn):
- test262/test/language/expressions/dynamic-import/syntax/valid/nested-function-trailing-comma-first.js: Renamed from JSTests/test262/test/language/expressions/dynamic-import/syntax/invalid/nested-function-not-extensible-no-trailing-comma.js.
(fn):
- test262/test/language/expressions/dynamic-import/syntax/valid/nested-function-trailing-comma-second.js: Renamed from JSTests/test262/test/language/expressions/dynamic-import/syntax/invalid/nested-function-return-not-extensible-no-trailing-comma.js.
(fn):
- test262/test/language/expressions/dynamic-import/syntax/valid/nested-if-braceless-trailing-comma-first.js: Renamed from JSTests/test262/test/language/expressions/dynamic-import/syntax/invalid/nested-arrow-assignment-expression-not-extensible-no-trailing-comma.js.
- test262/test/language/expressions/dynamic-import/syntax/valid/nested-if-braceless-trailing-comma-second.js: Copied from JSTests/test262/test/language/expressions/dynamic-import/syntax/invalid/nested-arrow-assignment-expression-not-extensible-args.js.
- test262/test/language/expressions/dynamic-import/syntax/valid/nested-if-trailing-comma-first.js: Renamed from JSTests/test262/test/language/expressions/dynamic-import/syntax/invalid/nested-if-not-extensible-no-trailing-comma.js.
- test262/test/language/expressions/dynamic-import/syntax/valid/nested-if-trailing-comma-second.js: Copied from JSTests/test262/test/language/expressions/dynamic-import/syntax/invalid/nested-if-not-extensible-args.js.
- test262/test/language/expressions/dynamic-import/syntax/valid/nested-while-trailing-comma-first.js: Renamed from JSTests/test262/test/language/expressions/dynamic-import/syntax/invalid/nested-while-not-extensible-no-trailing-comma.js.
- test262/test/language/expressions/dynamic-import/syntax/valid/nested-while-trailing-comma-second.js: Copied from JSTests/test262/test/language/expressions/dynamic-import/syntax/invalid/nested-while-not-extensible-args.js.
- test262/test/language/expressions/dynamic-import/syntax/valid/nested-with-expression-trailing-comma-first.js: Copied from JSTests/test262/test/language/expressions/dynamic-import/syntax/invalid/nested-with-not-extensible-args.js.
(with.import):
- test262/test/language/expressions/dynamic-import/syntax/valid/nested-with-expression-trailing-comma-second.js: Copied from JSTests/test262/test/language/expressions/dynamic-import/syntax/invalid/nested-with-not-extensible-args.js.
(with.import):
- test262/test/language/expressions/dynamic-import/syntax/valid/nested-with-trailing-comma-first.js: Renamed from JSTests/test262/test/language/expressions/dynamic-import/syntax/invalid/nested-with-not-extensible-no-trailing-comma.js.
(with):
- test262/test/language/expressions/dynamic-import/syntax/valid/nested-with-trailing-comma-second.js: Renamed from JSTests/test262/test/language/expressions/dynamic-import/syntax/invalid/nested-with-expression-not-extensible-no-trailing-comma.js.
(with):
- test262/test/language/expressions/dynamic-import/syntax/valid/top-level-trailing-comma-first.js: Added.
- test262/test/language/expressions/dynamic-import/syntax/valid/top-level-trailing-comma-second.js: Added.
- test262/test/language/expressions/dynamic-import/trailing-comma-fulfill.js: Added.
(then):
- test262/test/language/expressions/dynamic-import/trailing-comma-reject.js: Added.
(import.toString):
(then):
- test262/test/language/expressions/template-literal/invalid-legacy-octal-escape-sequence-8.js:
- test262/test/language/expressions/template-literal/invalid-legacy-octal-escape-sequence-9.js:
- test262/test/language/expressions/template-literal/invalid-legacy-octal-escape-sequence.js:
- test262/test/language/import/json-extensibility-array.js: Added.
- test262/test/language/import/json-extensibility-object.js: Added.
- test262/test/language/import/json-idempotency-indirect_FIXTURE.js: Added.
- test262/test/language/import/json-idempotency.js: Added.
(then):
- test262/test/language/import/json-invalid.js: Added.
- test262/test/language/import/json-named-bindings.js: Added.
- test262/test/language/import/json-value-array.js: Added.
- test262/test/language/import/json-value-boolean.js: Added.
- test262/test/language/import/json-value-null.js: Added.
- test262/test/language/import/json-value-number.js: Added.
- test262/test/language/import/json-value-object.js: Added.
- test262/test/language/import/json-value-string.js: Added.
- test262/test/language/import/json-via-namespace.js: Added.
- test262/test/language/literals/numeric/legacy-octal-integer-strict.js:
- test262/test/language/literals/numeric/legacy-octal-integer.js: Renamed from JSTests/test262/test/annexB/language/literals/numeric/legacy-octal-integer.js.
- test262/test/language/literals/numeric/non-octal-decimal-integer-strict.js:
- test262/test/language/literals/numeric/non-octal-decimal-integer.js: Renamed from JSTests/test262/test/annexB/language/literals/numeric/non-octal-decimal-integer.js.
- test262/test/language/literals/string/legacy-non-octal-escape-sequence-1-strict-explicit-pragma.js:
- test262/test/language/literals/string/legacy-non-octal-escape-sequence-2-strict-explicit-pragma.js:
- test262/test/language/literals/string/legacy-non-octal-escape-sequence-3-strict-explicit-pragma.js:
- test262/test/language/literals/string/legacy-non-octal-escape-sequence-4-strict-explicit-pragma.js:
- test262/test/language/literals/string/legacy-non-octal-escape-sequence-5-strict-explicit-pragma.js:
- test262/test/language/literals/string/legacy-non-octal-escape-sequence-6-strict-explicit-pragma.js:
- test262/test/language/literals/string/legacy-non-octal-escape-sequence-7-strict-explicit-pragma.js:
- test262/test/language/literals/string/legacy-non-octal-escape-sequence-8-non-strict.js: Added.
- test262/test/language/literals/string/legacy-non-octal-escape-sequence-8-strict-explicit-pragma.js:
- test262/test/language/literals/string/legacy-non-octal-escape-sequence-8-strict.js:
- test262/test/language/literals/string/legacy-non-octal-escape-sequence-9-non-strict.js: Added.
- test262/test/language/literals/string/legacy-non-octal-escape-sequence-9-strict-explicit-pragma.js:
- test262/test/language/literals/string/legacy-non-octal-escape-sequence-9-strict.js:
- test262/test/language/literals/string/legacy-non-octal-escape-sequence-strict.js:
- test262/test/language/literals/string/legacy-octal-escape-sequence-strict.js:
- test262/test/language/literals/string/legacy-octal-escape-sequence.js: Renamed from JSTests/test262/test/annexB/language/literals/string/legacy-octal-escape-sequence.js.
- test262/test/language/module-code/early-dup-assert-key-export.js: Added.
- test262/test/language/module-code/early-dup-assert-key-import-nobinding.js: Added.
- test262/test/language/module-code/early-dup-assert-key-import-withbinding.js: Added.
- test262/test/language/module-code/early-export-ill-formed-string.js:
- test262/test/language/module-code/eval-gtbndng-indirect-faux-assertion.js: Added.
- test262/test/language/module-code/import-assertion-1_FIXTURE.js: Added.
- test262/test/language/module-code/import-assertion-2_FIXTURE.js: Added.
- test262/test/language/module-code/import-assertion-3_FIXTURE.js: Added.
- test262/test/language/module-code/import-assertion-empty.js: Added.
- test262/test/language/module-code/import-assertion-key-identifiername.js: Added.
- test262/test/language/module-code/import-assertion-key-string-double.js: Added.
- test262/test/language/module-code/import-assertion-key-string-single.js: Added.
- test262/test/language/module-code/import-assertion-many.js: Added.
- test262/test/language/module-code/import-assertion-newlines.js: Added.
- test262/test/language/module-code/import-assertion-trlng-comma.js: Added.
- test262/test/language/module-code/import-assertion-value-string-double.js: Added.
- test262/test/language/module-code/import-assertion-value-string-single.js: Added.
- test262/test/language/module-code/instn-star-as-props-dflt-skip.js:
- test262/test/language/module-code/top-level-await/dfs-invariant-async_FIXTURE.js: Added.
- test262/test/language/module-code/top-level-await/dfs-invariant-direct-1_FIXTURE.js: Added.
- test262/test/language/module-code/top-level-await/dfs-invariant-direct-2_FIXTURE.js: Added.
- test262/test/language/module-code/top-level-await/dfs-invariant-indirect_FIXTURE.js: Added.
- test262/test/language/module-code/top-level-await/dfs-invariant.js: Added.
- test262/test/language/statements/for-of/head-lhs-async-escaped.js: Added.
- test262/test/language/statements/for-of/head-lhs-async-parens.js: Added.
- test262/test262-Revision.txt:
- 1:08 PM Changeset in webkit [279808] by
-
- 6 edits2 deletes in trunk
Unreviewed, reverting r279803.
https://bugs.webkit.org/show_bug.cgi?id=227850
Introduce many crashes on AS-mac Debug bot
Reverted changeset:
"document.readyState should be "complete" after calling
DOMParser.parseFromString()"
https://bugs.webkit.org/show_bug.cgi?id=227846
https://commits.webkit.org/r279803
- 12:41 PM Changeset in webkit [279807] by
-
- 8 edits in branches/safari-612.1.22.1-branch/Source
Versioning.
WebKit-7612.1.22.1.5
- 9:56 AM Changeset in webkit [279806] by
-
- 3 edits in trunk/Source/WebKit
[GPU Process] Canvas drawing never releases any fonts
https://bugs.webkit.org/show_bug.cgi?id=227376
<rdar://problem/79741186>
Reviewed by Said Abou-Hallawa.
We have a frame counter which makes sure that fonts which haven't been used in n frames get released.
However, we currently only update the frame counter when we release fonts.
This means that the frame counter stays 0 forever. And we never release any fonts.
The fix is just to increment the frame counter even if we don't release any fonts.
No new tests because there is no architectural behavior change.
- WebProcess/GPU/graphics/RemoteResourceCacheProxy.cpp:
(WebKit::RemoteResourceCacheProxy::prepareForNextRenderingUpdate):
(WebKit::RemoteResourceCacheProxy::clearFontMap):
(WebKit::RemoteResourceCacheProxy::didFinalizeRenderingUpdate):
(WebKit::RemoteResourceCacheProxy::remoteResourceCacheWasDestroyed):
(WebKit::RemoteResourceCacheProxy::releaseMemory):
- WebProcess/GPU/graphics/RemoteResourceCacheProxy.h:
- 9:48 AM Changeset in webkit [279805] by
-
- 2 edits in trunk/Source/WebKit
Unreviewed follow-up to r279802 to address review feedback from Sam Weinig.
- NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp:
(WebKit::buildList):
Jul 9, 2021:
- 10:35 PM Changeset in webkit [279804] by
-
- 3 edits32 adds in trunk/LayoutTests
Import blink reference tests for <dialog> element
https://bugs.webkit.org/show_bug.cgi?id=227802
Reviewed by Simon Fraser.
From third_party/blink/web_tests/html/dialog/ in the Chromium repo.
Only imported reference tests.
- TestExpectations:
- imported/blink/dialog/backdrop-descendant-selector-expected.html: Added.
- imported/blink/dialog/backdrop-descendant-selector.html: Added.
- imported/blink/dialog/backdrop-does-not-inherit-expected.html: Added.
- imported/blink/dialog/backdrop-does-not-inherit.html: Added.
- imported/blink/dialog/backdrop-dynamic-style-change-expected.html: Added.
- imported/blink/dialog/backdrop-dynamic-style-change.html: Added.
- imported/blink/dialog/backdrop-in-flow-expected.html: Added.
- imported/blink/dialog/backdrop-in-flow.html: Added.
- imported/blink/dialog/backdrop-stacking-order-expected.html: Added.
- imported/blink/dialog/backdrop-stacking-order.html: Added.
- imported/blink/dialog/element-removed-from-top-layer-has-original-position-expected.html: Added.
- imported/blink/dialog/element-removed-from-top-layer-has-original-position.html: Added.
- imported/blink/dialog/inert-node-is-not-highlighted-expected.html:
- imported/blink/dialog/modal-dialog-backdrop-expected.html: Added.
- imported/blink/dialog/modal-dialog-backdrop.html: Added.
- imported/blink/dialog/modal-dialog-generated-content-expected.html: Added.
- imported/blink/dialog/modal-dialog-generated-content.html: Added.
- imported/blink/dialog/removed-element-is-removed-from-top-layer-expected.html: Added.
- imported/blink/dialog/removed-element-is-removed-from-top-layer.html: Added.
- imported/blink/dialog/resources/dialog.css: Added.
(.pseudodialog):
- imported/blink/dialog/top-layer-containing-block-expected.html: Added.
- imported/blink/dialog/top-layer-containing-block.html: Added.
- imported/blink/dialog/top-layer-display-none-expected.html: Added.
- imported/blink/dialog/top-layer-display-none.html: Added.
- imported/blink/dialog/top-layer-nesting-expected.html: Added.
- imported/blink/dialog/top-layer-nesting.html: Added.
- imported/blink/dialog/top-layer-stacking-correct-order-remove-readd-expected.html: Added.
- imported/blink/dialog/top-layer-stacking-correct-order-remove-readd.html: Added.
- imported/blink/dialog/top-layer-stacking-dynamic-expected.html: Added.
- imported/blink/dialog/top-layer-stacking-dynamic.html: Added.
- imported/blink/dialog/top-layer-stacking-expected.html: Added.
- imported/blink/dialog/top-layer-stacking.html: Added.
- 10:21 PM Changeset in webkit [279803] by
-
- 5 edits2 adds in trunk
document.readyState should be "complete" after calling DOMParser.parseFromString()
https://bugs.webkit.org/show_bug.cgi?id=227846
Reviewed by Ryosuke Niwa.
LayoutTests/imported/w3c:
Rebaseline WPT test that is now passing.
- web-platform-tests/domparsing/xmldomparser-expected.txt:
Source/WebCore:
document.readyState should be "complete" after calling DOMParser.parseFromString().
This is causing the following WPT test to fail in WebKit:
http://wpt.live/domparsing/xmldomparser.html
Both Gecko and Blink report the correct readyState here.
No new tests, rebaselined existing test.
- dom/Document.cpp:
(WebCore::Document::explicitClose):
explicitClose() normally calls checkCompleted() which calls FrameLoader::checkCompleted(),
which ends up setting the document's ready state to "complete" and then calling
Document::implicitClose(). However, when the document has no frame (which is the case
for a document just created via DOMParser.parseFromString()), we would call
Document::implicitClose() directly, since we don't have a FrameLoader. As a result,
the document's ready state would stay "interactive". To address the issue, we now set
the document's ready state to "complete" before calling implicitClose(), similarly to
what FrameLoader::checkCompleted() would have done.
- 8:07 PM Changeset in webkit [279802] by
-
- 4 edits in trunk/Source
[ITP] Improve ResourceLoadStatisticsDatabaseStore's buildList() and use it in more places
https://bugs.webkit.org/show_bug.cgi?id=227843
Reviewed by Sam Weinig.
Source/WebCore:
Support passing a RegistrableDomain directly to StringBuilder::append().
- platform/RegistrableDomain.h:
Source/WebKit:
Improve ResourceLoadStatisticsDatabaseStore's buildList() and use it in more places.
buildList() now works with String types (RegistrableDomain in this particular case) and
can take any container type in parameter.
- NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp:
(WebKit::buildList):
(WebKit::ResourceLoadStatisticsDatabaseStore::incrementRecordsDeletedCountForDomains):
(WebKit::ResourceLoadStatisticsDatabaseStore::markAsPrevalentIfHasRedirectedToPrevalent):
(WebKit::ResourceLoadStatisticsDatabaseStore::findNotVeryPrevalentResources):
(WebKit::ResourceLoadStatisticsDatabaseStore::grandfatherDataForDomains):
(WebKit::ResourceLoadStatisticsDatabaseStore::setDomainsAsPrevalent):
(WebKit::ResourceLoadStatisticsDatabaseStore::clearGrandfathering):
(WebKit::ResourceLoadStatisticsDatabaseStore::pruneStatisticsIfNeeded):
- 8:00 PM Changeset in webkit [279801] by
-
- 1 copy in tags/Safari-612.1.22.1.4
Tag Safari-612.1.22.1.4.
- 6:03 PM Changeset in webkit [279800] by
-
- 17 edits4 adds in trunk
ResizeObserver / IntersectionObserver memory leak on detached & out of reference elements
https://bugs.webkit.org/show_bug.cgi?id=227194
<rdar://problem/79839851>
Reviewed by Chris Dumez.
Source/WebCore:
The memory leak was caused by ResizeObserver and IntersectionObserver keeping their respective
JS wrapper objects alive so long as there are some observed elements by having pending
activity as ActiveDOMObjects. This is not the right GC model for these JS wrapper objects
since there is no obvious end to these activities. So long as the observed nodes are alive,
ResizeObserver and IntersectionObserver may get new observation entries queued later.
To address this issue, this patch reworks the way ResizeObserver and IntersectionObserver keep
their JS wrappers alive. Namely, they're no longer ActiveDOMObjects. Instead, their JS wrappers
would use their respective observed nodes as opaque roots. i.e. so long as any of the observed
nodes are kept alive by GC, then its observer's JS wrapper is kept alive.
ResizeObserver had an additional bug that every observed node was kept using GCReachableRef,
which obviously leaked every observed node until the observations were explicitly cleared.
This patch makes only the target elements of the active observations (i.e. there are entries
to be delivered to the observer callback) are kept alive with GCReachableRef as done with
IntersectionObserver and MutationObserver.
Finally, this patch fixes the bug that IntersectionObserver wasn't keeping its root node alive.
We even had a test which was testing this erroneously behavior. The test has been rewritten to
expect the new behavior.
Tests: intersection-observer/intersection-observer-should-not-leak-observed-nodes.html
intersection-observer/root-element-deleted.html
resize-observer/resize-observer-should-not-leak-observed-nodes.html
- bindings/js/JSIntersectionObserverCustom.cpp:
(WebCore::JSIntersectionObserver::visitAdditionalChildren): Add the root node as an opaque root.
This has an effect of keeping the root node alive so long as IntersectionObserver is alive.
(WebCore::JSIntersectionObserverOwner::isReachableFromOpaqueRoots): Added.
- bindings/js/JSResizeObserverCustom.cpp:
(WebCore::JSResizeObserverOwner::isReachableFromOpaqueRoots): Added.
- dom/Document.cpp:
(WebCore::Document::updateIntersectionObservations):
- html/LazyLoadFrameObserver.cpp:
(WebCore::LazyLoadFrameObserver::isObserved const):
- html/LazyLoadImageObserver.cpp:
(WebCore::LazyLoadImageObserver::isObserved const):
- page/IntersectionObserver.cpp:
(WebCore::IntersectionObserver::create):
(WebCore::IntersectionObserver::IntersectionObserver):
(WebCore::IntersectionObserver::~IntersectionObserver):
(WebCore::IntersectionObserver::isObserving const): Added.
(WebCore::IntersectionObserver::observe):
(WebCore::IntersectionObserver::virtualHasPendingActivity const): Deleted.
(WebCore::IntersectionObserver::activeDOMObjectName const): Deleted.
(WebCore::IntersectionObserver::stop): Deleted.
(WebCore::IntersectionObserver::isReachableFromOpaqueRoots const): Added.
- page/IntersectionObserver.h:
(WebCore::IntersectionObserver::root const):
(WebCore::IntersectionObserver::observationTargets const):
(WebCore::IntersectionObserver::hasObservationTargets const):
- page/IntersectionObserver.idl:
- page/ResizeObservation.cpp:
(WebCore::ResizeObservation::create):
(WebCore::ResizeObservation::ResizeObservation):
(WebCore::ResizeObservation::targetElementDepth const):
- page/ResizeObservation.h:
(WebCore::ResizeObservation::target const):
(WebCore::ResizeObservation): Renamed m_pendingTargets to m_activeObservationTargets to reflect
the new semantics.
- page/ResizeObserver.cpp:
(WebCore::ResizeObserver::ResizeObserver):
(WebCore::ResizeObserver::observe): Don't store the new observation target with GCReachableRef as
that would result in an immediate leak of this element.
(WebCore::ResizeObserver::gatherObservations): Now that we have an active observation (i.e. there
is an entry to be delivered to the JS callback), store the target element using GCReachableRef.
This keeps the JS wrapper of this target element alive between now and when the JS callback is
notified of this element's resize. Without this GCReachableRef, JS wrapper of the element can be
erroneously collected when there is no JS reference to the element and the element is no longer in
any live document. Note that this GC behavior is already tested by existing tests. This patch
simply delays the use of GCReachableRef from when ResizeObserver started observing this element
to when we created an active observation for the element; this is because GCReachableRef like
a pending activity of ActiveDOMObject is only appropriate when there is a definite end to it.
(WebCore::ResizeObserver::isReachableFromOpaqueRoots const): Added.
(WebCore::ResizeObserver::removeAllTargets):
(WebCore::ResizeObserver::removeObservation):
(WebCore::ResizeObserver::virtualHasPendingActivity const): Deleted.
(WebCore::ResizeObserver::activeDOMObjectName const): Deleted.
(WebCore::ResizeObserver::stop): Deleted.
- page/ResizeObserver.h:
- page/ResizeObserver.idl:
LayoutTests:
Added regression tests for leaking nodes with IntersectionObserver and ResizeObsever.
Also rewrote intersection-observer/root-element-deleted.html since the test was previously asserting
that IntersectionObserver.root becomes null if it was no longer in the document, which is wrong.
- intersection-observer/intersection-observer-should-not-leak-observed-nodes-expected.txt: Added.
- intersection-observer/intersection-observer-should-not-leak-observed-nodes.html: Added.
- intersection-observer/root-element-deleted-expected.txt:
- intersection-observer/root-element-deleted.html:
- resize-observer/resize-observer-should-not-leak-observed-nodes-expected.txt: Added.
- resize-observer/resize-observer-should-not-leak-observed-nodes.html: Added.
- 4:00 PM Changeset in webkit [279799] by
-
- 1 copy in tags/Safari-612.1.23
Tag Safari-612.1.23.
- 3:30 PM Changeset in webkit [279798] by
-
- 2 edits in trunk/LayoutTests
REGRESSION: [ macOS wk2 ] inspector/canvas/create-context-bitmaprenderer.html is flaky failing
https://bugs.webkit.org/show_bug.cgi?id=207141
Unreviewed test gardening.
- platform/mac-wk2/TestExpectations: Switch expectation from release to debug.
- 3:00 PM Changeset in webkit [279797] by
-
- 9 edits in branches/safari-612.1.23-branch/Source/WebKit
Cherry-pick r279591. rdar://problem/80395422
Collect Accessibility preferences on a background queue
https://bugs.webkit.org/show_bug.cgi?id=227617
<rdar://80055168>
Reviewed by Brent Fulgham.
To avoid blocking the main thread of the UI process, collect Media Accessibility preferences on a background thread,
and send them to the WebContent process(es).
- Shared/AccessibilityPreferences.cpp: (IPC::ArgumentCoder<WebKit::AccessibilityPreferences>::encode): (IPC::ArgumentCoder<WebKit::AccessibilityPreferences>::decode):
- Shared/AccessibilityPreferences.h:
- UIProcess/Cocoa/WebProcessPoolCocoa.mm: (WebKit::accessibilityPreferences): (WebKit::WebProcessPool::setMediaAccessibilityPreferences): (WebKit::WebProcessPool::mediaAccessibilityPreferencesChangedCallback): (WebKit::WebProcessPool::registerNotificationObservers):
- UIProcess/WebProcessPool.cpp: (WebKit::WebProcessPool::initializeNewWebProcess):
- UIProcess/WebProcessPool.h:
- WebProcess/WebProcess.h:
- WebProcess/WebProcess.messages.in:
- WebProcess/cocoa/WebProcessCocoa.mm: (WebKit::WebProcess::accessibilityPreferencesDidChange): (WebKit::WebProcess::setMediaAccessibilityPreferences):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@279591 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 2:54 PM Changeset in webkit [279796] by
-
- 6 edits1 copy in trunk/Source/WebKit
[Cocoa] Allow the UIProcess to set logging parameters in the GPUProcess
https://bugs.webkit.org/show_bug.cgi?id=227822
Reviewed by Eric Carlson.
For release builds, logLevelString() will return an empty string. Instead, do the same thing
for GPUProcessProxy as we do for WebProcessPool: have a platform-specific initialization
function that, for Cocoa ports, reads log strings from NSUserDefaults.
Drive-by fix: Include <optional> in WKContentPicker.h to work around a unified build error.
- SourcesCocoa.txt:
- UIProcess/Cocoa/GPUProcessProxyCocoa.mm: Added.
(WebKit::GPUProcessProxy::platformInitializeGPUProcessParameters):
- UIProcess/Cocoa/WKContactPicker.h:
- UIProcess/GPU/GPUProcessProxy.cpp:
(WebKit::GPUProcessProxy::GPUProcessProxy):
(WebKit::GPUProcessProxy::platformInitializeGPUProcessParameters):
- UIProcess/GPU/GPUProcessProxy.h:
- WebKit.xcodeproj/project.pbxproj:
- 2:47 PM Changeset in webkit [279795] by
-
- 138 edits in trunk
[iOS] Increase contrast for textfields, checkboxes, and radio buttons
https://bugs.webkit.org/show_bug.cgi?id=227145
<rdar://problem/79470926>
Reviewed by Wenson Hsieh.
Source/WebCore:
Updated textfields, checkboxes, and radio buttons to have a
secondaryLabelColor border, ensuring a higher contrast than the
existing appearance.
Additionally, checkboxes and radio buttons have been updated
to use the system fill color when empty.
- css/html.css:
- rendering/RenderThemeIOS.h:
- rendering/RenderThemeIOS.mm:
(WebCore::RenderThemeIOS::checkboxRadioBorderColor):
(WebCore::RenderThemeIOS::checkboxRadioBackgroundColor):
(WebCore::RenderThemeIOS::paintCheckbox):
(WebCore::RenderThemeIOS::paintRadio):
LayoutTests:
Rebaselined tests to account for changes in appearance.
- platform/ios-simulator/fast/forms/auto-fill-button/hide-auto-fill-strong-password-viewable-treatment-when-form-is-reset-expected.txt:
- platform/ios-simulator/fast/forms/auto-fill-button/input-credit-card-auto-fill-button-expected.txt:
- platform/ios-simulator/fast/forms/auto-fill-button/input-strong-password-viewable-expected.txt:
- platform/ios-simulator/fast/forms/datalist/datalist-textinput-appearance-expected.txt:
- platform/ios-wk2/editing/input/caret-at-the-edge-of-input-expected.txt:
- platform/ios-wk2/editing/input/reveal-caret-of-multiline-input-expected.txt:
- platform/ios-wk2/editing/inserting/4960120-1-expected.txt:
- platform/ios-wk2/editing/inserting/before-after-input-element-expected.txt:
- platform/ios-wk2/editing/pasteboard/input-field-1-expected.txt:
- platform/ios-wk2/editing/pasteboard/pasting-tabs-expected.txt:
- platform/ios-wk2/editing/selection/4895428-3-expected.txt:
- platform/ios-wk2/editing/selection/drag-select-1-expected.txt:
- platform/ios-wk2/editing/selection/select-from-textfield-outwards-expected.txt:
- platform/ios-wk2/fast/block/float/overhanging-tall-block-expected.txt:
- platform/ios-wk2/fast/block/margin-collapse/103-expected.txt:
- platform/ios-wk2/fast/dynamic/008-expected.txt:
- platform/ios-wk2/fast/forms/basic-textareas-quirks-expected.txt:
- platform/ios-wk2/fast/forms/input-appearance-preventDefault-expected.txt:
- platform/ios-wk2/fast/forms/input-text-click-outside-expected.txt:
- platform/ios-wk2/fast/forms/input-text-double-click-expected.txt:
- platform/ios-wk2/fast/forms/input-text-drag-down-expected.txt:
- platform/ios-wk2/fast/forms/input-text-option-delete-expected.txt:
- platform/ios-wk2/fast/forms/textAreaLineHeight-expected.txt:
- platform/ios-wk2/fast/forms/textarea-align-expected.txt:
- platform/ios-wk2/fast/forms/textarea-placeholder-visibility-1-expected.txt:
- platform/ios-wk2/fast/forms/textarea-placeholder-visibility-2-expected.txt:
- platform/ios-wk2/fast/forms/textarea-scroll-height-expected.txt:
- platform/ios-wk2/fast/forms/textarea-setinnerhtml-expected.txt:
- platform/ios-wk2/fast/hidpi/resize-corner-hidpi-expected.txt:
- platform/ios-wk2/fast/parser/entity-comment-in-textarea-expected.txt:
- platform/ios-wk2/fast/parser/open-comment-in-textarea-expected.txt:
- platform/ios-wk2/fast/text/international/rtl-white-space-pre-wrap-expected.txt:
- platform/ios-wk2/fast/text/international/unicode-bidi-plaintext-in-textarea-expected.txt:
- platform/ios-wk2/fast/transforms/transformed-focused-text-input-expected.txt:
- platform/ios/editing/pasteboard/4806874-expected.txt:
- platform/ios/editing/selection/3690703-2-expected.txt:
- platform/ios/editing/selection/3690703-expected.txt:
- platform/ios/editing/selection/3690719-expected.txt:
- platform/ios/editing/selection/4975120-expected.txt:
- platform/ios/fast/block/float/032-expected.txt:
- platform/ios/fast/css/input-search-padding-expected.txt:
- platform/ios/fast/css/line-height-expected.txt:
- platform/ios/fast/css/text-overflow-input-expected.txt:
- platform/ios/fast/dom/HTMLTextAreaElement/reset-textarea-expected.txt:
- platform/ios/fast/events/context-no-deselect-expected.txt:
- platform/ios/fast/forms/auto-fill-button/input-auto-fill-button-expected.txt:
- platform/ios/fast/forms/auto-fill-button/input-contacts-auto-fill-button-expected.txt:
- platform/ios/fast/forms/auto-fill-button/input-strong-password-auto-fill-button-expected.txt:
- platform/ios/fast/forms/basic-inputs-expected.txt:
- platform/ios/fast/forms/basic-textareas-expected.txt:
- platform/ios/fast/forms/encoding-test-expected.txt:
- platform/ios/fast/forms/fieldset-align-expected.txt:
- platform/ios/fast/forms/floating-textfield-relayout-expected.txt:
- platform/ios/fast/forms/form-element-geometry-expected.txt:
- platform/ios/fast/forms/input-align-expected.txt:
- platform/ios/fast/forms/input-appearance-bkcolor-expected.txt:
- platform/ios/fast/forms/input-appearance-default-bkcolor-expected.txt:
- platform/ios/fast/forms/input-appearance-disabled-expected.txt:
- platform/ios/fast/forms/input-appearance-focus-expected.txt:
- platform/ios/fast/forms/input-appearance-height-expected.txt:
- platform/ios/fast/forms/input-appearance-selection-expected.txt:
- platform/ios/fast/forms/input-appearance-visibility-expected.txt:
- platform/ios/fast/forms/input-appearance-width-expected.txt:
- platform/ios/fast/forms/input-disabled-color-expected.txt:
- platform/ios/fast/forms/input-double-click-selection-gap-bug-expected.txt:
- platform/ios/fast/forms/input-field-text-truncated-expected.txt:
- platform/ios/fast/forms/input-placeholder-visibility-1-expected.txt:
- platform/ios/fast/forms/input-placeholder-visibility-3-expected.txt:
- platform/ios/fast/forms/input-spaces-expected.txt:
- platform/ios/fast/forms/input-table-expected.txt:
- platform/ios/fast/forms/input-text-click-inside-expected.txt:
- platform/ios/fast/forms/input-text-scroll-left-on-blur-expected.txt:
- platform/ios/fast/forms/input-text-self-emptying-click-expected.txt:
- platform/ios/fast/forms/input-type-text-min-width-expected.txt:
- platform/ios/fast/forms/input-value-expected.txt:
- platform/ios/fast/forms/input-width-expected.txt:
- platform/ios/fast/forms/minWidthPercent-expected.txt:
- platform/ios/fast/forms/number/number-appearance-rtl-expected.txt:
- platform/ios/fast/forms/number/number-appearance-spinbutton-disabled-readonly-expected.txt:
- platform/ios/fast/forms/number/number-appearance-spinbutton-layer-expected.txt:
- platform/ios/fast/forms/placeholder-pseudo-style-expected.txt:
- platform/ios/fast/forms/plaintext-mode-2-expected.txt:
- platform/ios/fast/forms/tabbing-input-iframe-expected.txt:
- platform/ios/fast/forms/textarea-placeholder-pseudo-style-expected.txt:
- platform/ios/fast/forms/textarea-scrollbar-expected.txt:
- platform/ios/fast/forms/textarea-scrolled-type-expected.txt:
- platform/ios/fast/forms/textarea-width-expected.txt:
- platform/ios/fast/forms/textfield-focus-ring-expected.txt:
- platform/ios/fast/forms/textfield-overflow-expected.txt:
- platform/ios/fast/frames/take-focus-from-iframe-expected.txt:
- platform/ios/fast/html/details-no-summary4-expected.txt:
- platform/ios/fast/html/details-open-javascript-expected.txt:
- platform/ios/fast/html/details-open2-expected.txt:
- platform/ios/fast/html/details-open4-expected.txt:
- platform/ios/fast/lists/dynamic-marker-crash-expected.txt:
- platform/ios/fast/overflow/overflow-x-y-expected.txt:
- platform/ios/fast/replaced/replaced-breaking-expected.txt:
- platform/ios/fast/replaced/replaced-breaking-mixture-expected.txt:
- platform/ios/fast/replaced/width100percent-textarea-expected.txt:
- platform/ios/fast/replaced/width100percent-textfield-expected.txt:
- platform/ios/fast/table/colspanMinWidth-expected.txt:
- platform/ios/fast/table/spanOverlapRepaint-expected.txt:
- platform/ios/fast/table/text-field-baseline-expected.txt:
- platform/ios/imported/w3c/web-platform-tests/selection/selection-select-all-move-input-crash-expected.txt:
- platform/ios/svg/custom/inline-svg-in-xhtml-expected.txt:
- platform/ios/svg/hixie/mixed/003-expected.txt:
- platform/ios/tables/mozilla/bugs/45621-expected.txt:
- platform/ios/tables/mozilla/bugs/bug1188-expected.txt:
- platform/ios/tables/mozilla/bugs/bug12384-expected.txt:
- platform/ios/tables/mozilla/bugs/bug18359-expected.txt:
- platform/ios/tables/mozilla/bugs/bug194024-expected.txt:
- platform/ios/tables/mozilla/bugs/bug24200-expected.txt:
- platform/ios/tables/mozilla/bugs/bug2479-2-expected.txt:
- platform/ios/tables/mozilla/bugs/bug2479-3-expected.txt:
- platform/ios/tables/mozilla/bugs/bug2479-4-expected.txt:
- platform/ios/tables/mozilla/bugs/bug28928-expected.txt:
- platform/ios/tables/mozilla/bugs/bug30559-expected.txt:
- platform/ios/tables/mozilla/bugs/bug30692-expected.txt:
- platform/ios/tables/mozilla/bugs/bug4382-expected.txt:
- platform/ios/tables/mozilla/bugs/bug4527-expected.txt:
- platform/ios/tables/mozilla/bugs/bug46368-1-expected.txt:
- platform/ios/tables/mozilla/bugs/bug46368-2-expected.txt:
- platform/ios/tables/mozilla/bugs/bug51037-expected.txt:
- platform/ios/tables/mozilla/bugs/bug55545-expected.txt:
- platform/ios/tables/mozilla/bugs/bug59354-expected.txt:
- platform/ios/tables/mozilla/bugs/bug7342-expected.txt:
- platform/ios/tables/mozilla/bugs/bug96334-expected.txt:
- platform/ios/tables/mozilla/bugs/bug99948-expected.txt:
- platform/ios/tables/mozilla/dom/tableDom-expected.txt:
- platform/ios/tables/mozilla/other/move_row-expected.txt:
- platform/ios/tables/mozilla_expected_failures/bugs/bug2479-5-expected.txt:
- platform/ios/tables/mozilla_expected_failures/bugs/bug92647-1-expected.txt:
- platform/ios/transforms/3d/general/perspective-non-layer-expected.txt:
- 1:37 PM Changeset in webkit [279794] by
-
- 11 edits1 delete in trunk/Source/WebCore
[Cairo][Win] Remove unneeded GraphicsContextPlatformPrivate
https://bugs.webkit.org/show_bug.cgi?id=227828
Reviewed by Don Olmstead.
GraphicsContextPlatformPrivate keeps HDC's transform syncing with
GraphicsContext's transform. However, WinCairo doesn't use it.
- platform/graphics/BifurcatedGraphicsContext.cpp:
- platform/graphics/BifurcatedGraphicsContext.h:
- platform/graphics/GraphicsContext.h:
- platform/graphics/NullGraphicsContext.h:
- platform/graphics/cairo/CairoOperations.cpp:
(WebCore::Cairo::State::setCTM):
(WebCore::Cairo::translate):
(WebCore::Cairo::rotate):
(WebCore::Cairo::scale):
(WebCore::Cairo::concatCTM):
(WebCore::Cairo::clip):
(WebCore::Cairo::clipPath):
- platform/graphics/cairo/GraphicsContextCairo.cpp:
(WebCore::GraphicsContextCairo::GraphicsContextCairo):
(WebCore::GraphicsContextCairo::save):
(WebCore::GraphicsContextCairo::restore):
(WebCore::GraphicsContextCairo::graphicsContextPrivate): Deleted.
- platform/graphics/cairo/GraphicsContextCairo.h:
- platform/graphics/cairo/GraphicsContextPlatformPrivateCairo.h: Removed.
- platform/graphics/win/GraphicsContextCairoWin.cpp:
(WebCore::GraphicsContext::releaseWindowsContext):
(WebCore::GraphicsContextPlatformPrivate::GraphicsContextPlatformPrivate): Deleted.
(WebCore::GraphicsContextPlatformPrivate::flush): Deleted.
(WebCore::GraphicsContextCairo::deprecatedPrivateContext const): Deleted.
- platform/graphics/win/GraphicsContextWin.cpp:
(WebCore::GraphicsContext::getWindowsContext):
- platform/win/DragImageCairoWin.cpp:
- 1:05 PM Changeset in webkit [279793] by
-
- 16 edits1 add in trunk
SVGImageForContainer reports true for is<SVGImage>() but it doesn't inherit from SVGImage
https://bugs.webkit.org/show_bug.cgi?id=227807
Reviewed by Said Abou-Hallawa.
Source/WebCore:
It's too easy to write code like:
if (is<SVGImage>(image))
downcast<SVGImage>(image).doSomething();
Test: SVGImageCasts.SVGImageForContainerIsNotSVGImage
- WebCore.xcodeproj/project.pbxproj:
- accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::remoteSVGRootElement const):
- html/HTMLImageElement.cpp:
(WebCore::HTMLImageElement::effectiveImageDevicePixelRatio const):
- html/canvas/CanvasRenderingContext2DBase.cpp:
(WebCore::CanvasRenderingContext2DBase::drawImage):
(WebCore::CanvasRenderingContext2DBase::createPattern):
- html/canvas/WebGLRenderingContextBase.cpp:
(WebCore::WebGLRenderingContextBase::texImageSourceHelper):
- loader/cache/CachedImage.cpp:
(WebCore::CachedImage::imageForRenderer):
(WebCore::CachedImage::hasSVGImage const):
(WebCore::CachedImage::setContainerContextForClient):
(WebCore::CachedImage::imageSizeForRenderer const):
- platform/graphics/CrossfadeGeneratedImage.cpp:
(WebCore::drawCrossfadeSubimage):
- platform/graphics/Image.cpp:
(WebCore::operator<<):
- platform/graphics/Image.h:
(WebCore::Image::isSVGImageForContainer const):
(WebCore::Image::actsLikeSVGImage const):
- platform/graphics/ImageObserver.h:
- svg/graphics/SVGImage.h:
- svg/graphics/SVGImageForContainer.cpp:
(WebCore::SVGImageForContainer::SVGImageForContainer):
- svg/graphics/SVGImageForContainer.h:
Tools:
- TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
- TestWebKitAPI/Tests/WebCore/SVGImageCasts.cpp: Added.
(TestWebKitAPI::TEST):
- 12:18 PM Changeset in webkit [279792] by
-
- 2 edits in trunk/Source/WebCore
SVGInlineTextBox::acquirePaintingResource() should return false if the resource can't be applied
https://bugs.webkit.org/show_bug.cgi?id=227826
<rdar://79662757>
Reviewed by Simon Fraser.
Ensure RenderSVGResource::postApplyResource() is called only if the
corresponding RenderSVGResource::applyResource() succeeds. Otherwise
the GraphicsContext stack state will be unbalanced.
- rendering/svg/SVGInlineTextBox.cpp:
(WebCore::SVGInlineTextBox::acquirePaintingResource):
- 11:01 AM Changeset in webkit [279791] by
-
- 3 edits in trunk/LayoutTests
[Mac & iOS simulator wk2] imported/w3c/web-platform-tests/navigation-timing/test_navigate_within_document.html is a flaky failure .
https://bugs.webkit.org/show_bug.cgi?id=226600
Unreviewed gardening.
Patch by Ayumi Kojima <Ayumi Kojima> on 2021-07-09
- platform/ios-simulator-wk2/TestExpectations:
- platform/mac/TestExpectations:
- 10:50 AM Changeset in webkit [279790] by
-
- 2 edits in trunk/Source/WebInspectorUI
Web Inspector: Perform sidebar panel and navigation bar layout asynchronously during resize
https://bugs.webkit.org/show_bug.cgi?id=227716
Reviewed by Devin Rousso.
Perform layout updates to the navigation bar and selected panel asynchronously so that they can be batched
together, instead of blocking on layout for each resize (of which there will be many during a dragging resize).
- UserInterface/Views/SingleSidebar.js:
(WI.SingleSidebar.prototype._recalculateWidth):
- 10:36 AM Changeset in webkit [279789] by
-
- 3 edits in trunk/Source/WebCore
[LFC][IFC] Negative padding values are invalid (inline box)
https://bugs.webkit.org/show_bug.cgi?id=227838
Reviewed by Antti Koivisto.
Negative values for padding properties are invalid.
https://drafts.csswg.org/css-box/#padding-physical
- layout/integration/LayoutIntegrationCoverage.cpp:
(WebCore::LayoutIntegration::canUseForChild):
- 10:32 AM Changeset in webkit [279788] by
-
- 5 edits in trunk
[WebCrypto] deriveBits() incorrectly throws for PBKDF2 algorithm when the password is empty
https://bugs.webkit.org/show_bug.cgi?id=227810
Reviewed by Yusuke Suzuki.
LayoutTests/imported/w3c:
Rebaseline WPT tests that are now passing.
- web-platform-tests/WebCryptoAPI/derive_bits_keys/pbkdf2.https.any-expected.txt:
- web-platform-tests/WebCryptoAPI/derive_bits_keys/pbkdf2.https.any.worker-expected.txt:
Source/WebCore:
deriveBits() was incorrectly throwing for PBKDF2 algorithm when the provided password was empty.
The reason for that was that we would pass a null key pointer to CCKeyDerivationPBKDF() in this
case and it was causing CCKeyDerivationPBKDF() to return an error, even though the key length is
- To avoid this issue, we now pass an empty string as key to CCKeyDerivationPBKDF() instead of
a null pointer, when the length is 0.
This is causing Safari to fail subtests in the following WPT test:
Empty passwords are supported by both Chrome and Firefox.
No new tests, rebaselined existing tests.
- crypto/mac/CryptoAlgorithmPBKDF2Mac.cpp:
(WebCore::CryptoAlgorithmPBKDF2::platformDeriveBits):
- 9:54 AM Changeset in webkit [279787] by
-
- 2 edits in trunk/Source/WebKit
Validate keys in ResourceLoadStatisticsDatabaseStore::findNotVeryPrevalentResources() before using them with HashMap
https://bugs.webkit.org/show_bug.cgi?id=227842
Reviewed by Kate Cheney.
Validate keys in ResourceLoadStatisticsDatabaseStore::findNotVeryPrevalentResources() before using them with HashMap,
to avoid potential crashes. We do not support storing (or looking up) a key with value 0 in a HashMap whose key type
is 'unsigned'.
- NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp:
(WebKit::ResourceLoadStatisticsDatabaseStore::findNotVeryPrevalentResources):
- 9:46 AM Changeset in webkit [279786] by
-
- 28 edits in trunk/Source
[Cocoa] Make Coordinator playback commands more precise
https://bugs.webkit.org/show_bug.cgi?id=227756
Reviewed by Eric Carlson.
Source/WebCore:
Add support for precise playback commands from MediaSessionCoordinator to the underlying MediaPlayer.
In the case where a play() command is issued to a HTMLMediaElement and:
- There is an active MediaSession
- The MediaSession's active HTMLMediaElement is the current one
- There is a pending playSession command
- That command has a hostTime parameter
- The MediaPlayer backing the element supports playing at a specific host time
Then use the MediaPlayer's playAtHostTime() facility to begin playback, synchronized with the specified
hostTime.
Add support for playAtHostTime() to both MediaPlayerPrivateAVFoundationObjC and MediaPlayerPrivateMediaSourceAVFObjC.
- Modules/mediasession/MediaSession.h:
- Modules/mediasession/MediaSessionCoordinator.cpp:
(WebCore::MediaSessionCoordinator::playSession):
- Modules/mediasession/MediaSessionCoordinator.h:
(WebCore::MediaSessionCoordinator::currentPlaySessionCommand const):
- html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::updatePlayState):
(WebCore::HTMLMediaElement::playPlayer):
(WebCore::HTMLMediaElement::pausePlayer):
- html/HTMLMediaElement.h:
- html/MediaElementSession.h:
- platform/graphics/MediaPlayer.cpp:
(WebCore::MediaPlayer::supportsPlayAtHostTime const):
(WebCore::MediaPlayer::supportsPauseAtHostTime const):
(WebCore::MediaPlayer::playAtHostTime):
(WebCore::MediaPlayer::pauseAtHostTime):
- platform/graphics/MediaPlayer.h:
- platform/graphics/MediaPlayerPrivate.h:
(WebCore::MediaPlayerPrivateInterface::supportsPlayAtHostTime const):
(WebCore::MediaPlayerPrivateInterface::supportsPauseAtHostTime const):
(WebCore::MediaPlayerPrivateInterface::playAtHostTime):
(WebCore::MediaPlayerPrivateInterface::pauseAtHostTime):
- platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
- platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
(WebCore::MediaPlayerPrivateAVFoundationObjC::createAVPlayer):
(WebCore::MediaPlayerPrivateAVFoundationObjC::playAtHostTime):
(WebCore::MediaPlayerPrivateAVFoundationObjC::pauseAtHostTime):
(WebCore::MediaPlayerPrivateAVFoundationObjC::setPlayerRate):
- platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.h:
- platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::playInternal):
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::pauseInternal):
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::playAtHostTime):
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::pauseAtHostTime):
Source/WebCore/PAL:
Add SoftLink macros for CMClockMakeHostTimeFromSystemUnits.
- pal/cf/CoreMediaSoftLink.cpp:
- pal/cf/CoreMediaSoftLink.h:
Source/WebKit:
Pass through new {play,pause}AtHostTime() and supports{Play,Pause}AtHostTime() methods
to and from the GPU process.
- GPUProcess/media/RemoteMediaPlayerProxy.cpp:
(WebKit::RemoteMediaPlayerProxy::getConfiguration):
(WebKit::RemoteMediaPlayerProxy::playAtHostTime):
(WebKit::RemoteMediaPlayerProxy::pauseAtHostTime):
- GPUProcess/media/RemoteMediaPlayerProxy.h:
- GPUProcess/media/RemoteMediaPlayerProxy.messages.in:
- WebProcess/GPU/media/MediaPlayerPrivateRemote.cpp:
(WebKit::MediaPlayerPrivateRemote::playAtHostTime):
(WebKit::MediaPlayerPrivateRemote::pauseAtHostTime):
- WebProcess/GPU/media/MediaPlayerPrivateRemote.h:
- WebProcess/GPU/media/RemoteMediaPlayerConfiguration.h:
(WebKit::RemoteMediaPlayerConfiguration::encode const):
(WebKit::RemoteMediaPlayerConfiguration::decode):
Source/WTF:
Add a method to convert from a MonotonicTime to a MachAbsoluteTime.
- wtf/CurrentTime.cpp:
(WTF::machTimebaseInfo):
(WTF::MonotonicTime::fromMachAbsoluteTime):
(WTF::MonotonicTime::toMachAbsoluteTime const):
- wtf/MonotonicTime.h:
- wtf/PlatformHave.h:
- 9:02 AM Changeset in webkit [279785] by
-
- 9 edits5 adds8 deletes in trunk
Add BigInt64Array and BigUint64Array support to crypto.getRandomValues
https://bugs.webkit.org/show_bug.cgi?id=227611
Reviewed by Chris Dumez.
LayoutTests/imported/w3c:
Resync web-platform-tests/WebCryptoAPI/ directory.
- web-platform-tests/WebCryptoAPI/digest/test_digest-expected.txt: Removed.
- web-platform-tests/WebCryptoAPI/encrypt_decrypt/test_aes_cbc-expected.txt: Removed.
- web-platform-tests/WebCryptoAPI/encrypt_decrypt/test_aes_gcm-expected.txt: Removed.
- web-platform-tests/WebCryptoAPI/encrypt_decrypt/test_rsa_oaep-expected.txt: Removed.
- web-platform-tests/WebCryptoAPI/getRandomValues-bigint.tentative.any-expected.txt: Added.
- web-platform-tests/WebCryptoAPI/getRandomValues-bigint.tentative.any.html: Added.
- web-platform-tests/WebCryptoAPI/getRandomValues-bigint.tentative.any.js: Added.
(const.array.of.arrays.test):
- web-platform-tests/WebCryptoAPI/getRandomValues-bigint.tentative.any.worker-expected.txt: Added.
- web-platform-tests/WebCryptoAPI/getRandomValues-bigint.tentative.any.worker.html: Added.
- web-platform-tests/WebCryptoAPI/import_export/test_ec_importKey-expected.txt: Removed.
- web-platform-tests/WebCryptoAPI/import_export/test_symmetric_importKey-expected.txt: Removed.
- web-platform-tests/WebCryptoAPI/sign_verify/test_ecdsa-expected.txt: Removed.
- web-platform-tests/WebCryptoAPI/sign_verify/test_hmac-expected.txt: Removed.
- web-platform-tests/WebCryptoAPI/w3c-import.log:
Source/WebCore:
Tests: imported/w3c/web-platform-tests/WebCryptoAPI/getRandomValues-bigint.tentative.any.html
imported/w3c/web-platform-tests/WebCryptoAPI/getRandomValues-bigint.tentative.any.worker.html
This patch updates crypto.getRandomValues so that this function can take BigInt64Array / BigUint64Array.
We also add BigInt64Array / BigUint64Array IDL support.
- bindings/js/JSDOMConvertBufferSource.h:
(WebCore::toPossiblySharedBigInt64Array):
(WebCore::toPossiblySharedBigUint64Array):
(WebCore::toUnsharedBigInt64Array):
(WebCore::toUnsharedBigUint64Array):
(WebCore::JSConverter<IDLFloat64Array>::convert):
(WebCore::Converter<IDLBigInt64Array>::convert):
(WebCore::JSConverter<IDLBigInt64Array>::convert):
(WebCore::Converter<IDLBigUint64Array>::convert):
- bindings/scripts/CodeGenerator.pm:
- bindings/scripts/CodeGeneratorJS.pm:
(GetBaseIDLType):
- bindings/scripts/test/JS/JSTestObj.cpp:
(WebCore::JSTestObjDOMConstructor::construct):
(WebCore::jsTestObjPrototypeFunction_bigInt64Body):
(WebCore::JSC_DEFINE_HOST_FUNCTION):
(WebCore::jsTestObjPrototypeFunction_bigUint64Body):
(WebCore::jsTestObjPrototypeFunction_bigInt64AllowSharedBody):
(WebCore::jsTestObjPrototypeFunction_bigUint64AllowSharedBody):
- bindings/scripts/test/TestObj.idl:
- page/Crypto.cpp:
(WebCore::Crypto::getRandomValues):
- 8:16 AM Changeset in webkit [279784] by
-
- 3 edits in trunk/Source/WebKit
Use nw_parameters_allow_sharing_port_with_listener if available
https://bugs.webkit.org/show_bug.cgi?id=227835
<rdar://80312536>
Reviewed by Eric Carlson.
Use nw_parameters_allow_sharing_port_with_listener to allow running local loop connections.
Covered by existing tests running on platforms supporting nw_parameters_allow_sharing_port_with_listener.
- NetworkProcess/webrtc/NetworkRTCUDPSocketCocoa.mm:
(WebKit::NetworkRTCUDPSocketCocoaConnections::createNWConnection):
- Platform/spi/Cocoa/NWParametersSPI.h:
- 8:11 AM Changeset in webkit [279783] by
-
- 3 edits in trunk/Source/WebCore
Make topLayerElements() use Ref instead of RefPtr
https://bugs.webkit.org/show_bug.cgi?id=227839
Reviewed by Youenn Fablet.
- dom/Document.cpp:
(WebCore::Document::addToTopLayer):
(WebCore::Document::removeFromTopLayer):
(WebCore::Document::activeModalDialog const):
- dom/Document.h:
(WebCore::Document::topLayerElements const):
- 6:29 AM Changeset in webkit [279782] by
-
- 3 edits in trunk/Source/WebCore
[GTK] Support dark scrollbars
https://bugs.webkit.org/show_bug.cgi?id=227834
Patch by Alexander Mikhaylenko <Alexander Mikhaylenko> on 2021-07-09
Reviewed by Michael Catanzaro.
Also adjust the colors in light variant to be closer to the GTK scrollbars, and
remove an unused variable.
Unfortunately this leaves the scrollbar corner when non-overlay scrollbars are used,
but it was already broken for light scrollbars as well.
- platform/adwaita/ScrollbarThemeAdwaita.cpp:
(WebCore::ScrollbarThemeAdwaita::updateScrollbarOverlayStyle):
(WebCore::ScrollbarThemeAdwaita::paint):
- platform/adwaita/ScrollbarThemeAdwaita.h:
- 6:12 AM Changeset in webkit [279781] by
-
- 4 edits in trunk/Tools/buildstream
[Flatpak SDK] Update to libsoup3 2.99.9
https://bugs.webkit.org/show_bug.cgi?id=227833
Patch by Carlos Garcia Campos <cgarcia@igalia.com> on 2021-07-09
Reviewed by Michael Catanzaro.
It requires new glib and glib-networking too.
- elements/sdk/glib-networking.bst:
- elements/sdk/glib.bst:
- elements/sdk/libsoup3.bst:
- 5:05 AM Changeset in webkit [279780] by
-
- 5 edits in trunk/Source/WebCore
Add topLayerElements() and activeModalDialog() to Document
https://bugs.webkit.org/show_bug.cgi?id=227800
Reviewed by Antti Koivisto.
These DOM methods are a pre-requisite for a lot of dialog element accessibility work, aside from
the top layer rendering work.
- dom/Document.cpp:
(WebCore::Document::addToTopLayer):
(WebCore::Document::removeFromTopLayer):
(WebCore::Document::activeModalDialog const):
- dom/Document.h:
(WebCore::Document::topLayerElements const):
- dom/Element.cpp:
(WebCore::Element::removedFromAncestor):
- html/HTMLDialogElement.cpp:
(WebCore::HTMLDialogElement::showModal):
(WebCore::HTMLDialogElement::close):
(WebCore::HTMLDialogElement::parseAttribute):
- 4:47 AM Changeset in webkit [279779] by
-
- 6 edits in trunk/Source/WebKit
[GTK] Touchscreen navigation swipe doesn't work when the page scrolls horizontally
https://bugs.webkit.org/show_bug.cgi?id=227691
Patch by Alexander Mikhaylenko <Alexander Mikhaylenko> on 2021-07-09
Reviewed by Michael Catanzaro.
When the page scrolls horizontally, we have a separate code path for events that
WebCore didn't handle and which are considered safe to use to start a swipe
gesture. Unfortunately, that code relies on the NativeWebWheelEvents containing a
GdkEvent, which is only the case for actual scroll events, but not synthesized
scroll events on touchscreen, and the needed info (input source type and a proper
timestamp instead of the truncated one wallTimeForEventTime() produces) is not
stored in NativeWebWheelEvent.
While we don't have GdkEvents for every situation we synthesize wheel events in,
we do have them for touchscreen gestures. They aren't GdkScrollEvents, but that
isn't a problem - the only things we use that are specific to GdkScrollEvent are
scroll deltas and whether it's a scroll stop event, and that's also stored in
NativeWebWheelEvent, and we only need GdkEvent for the time and input source type,
where the event type doesn't really matter.
Since touch GdkEvents are controlled via event sequences rather than stop/propagate
return values, don't try and propagate them if web process has returned them: we've
already claimed their sequence before sending them to web process, so they will be
of no use to other widgets.
- Shared/NativeWebWheelEvent.h:
- Shared/gtk/NativeWebWheelEventGtk.cpp:
(WebKit::NativeWebWheelEvent::NativeWebWheelEvent):
Add a GdkEvent parameter to the remaining constructor.
- UIProcess/API/gtk/PageClientImpl.cpp:
(WebKit::PageClientImpl::wheelEventWasNotHandledByWebCore):
- UIProcess/API/gtk/WebKitWebViewBase.cpp:
(webkitWebViewBaseZoomBegin):
(webkitWebViewBaseTouchDragBegin):
(webkitWebViewBaseTouchDragUpdate):
(webkitWebViewBaseTouchSwipe):
(webkitWebViewBaseSynthesizeWheelEvent):
Split into versions with and without a GdkEvent parameter.
- UIProcess/API/gtk/WebKitWebViewBasePrivate.h:
- 4:18 AM Changeset in webkit [279778] by
-
- 4 edits2 adds in trunk
[GTK][WPE][libsoup] Test imported/w3c/web-platform-tests/cookies/samesite/about-blank-toplevel.https.html crashes since it was imported
https://bugs.webkit.org/show_bug.cgi?id=227819
Reviewed by Carlos Garcia Campos.
Source/WebCore:
Add missings null-checks to avoid calling soup_cookie_jar_get_cookie_list_with_same_site_info()
with a null pointer in site_for_cookies argument.
Covered by existing tests.
- platform/network/soup/NetworkStorageSessionSoup.cpp:
(WebCore::NetworkStorageSession::getRawCookies const):
(WebCore::cookiesForSession):
LayoutTests:
Mark the test as passing (is marked as flaky on the general expectations) and add expectation for passing test.
- platform/glib/TestExpectations:
- platform/glib/imported/w3c/web-platform-tests/cookies/samesite/about-blank-toplevel.https-expected.txt: Added.
- 1:31 AM Changeset in webkit [279777] by
-
- 1 copy in releases/WebKitGTK/webkit-2.32.2
WebKitGTK 2.32.2
- 1:30 AM Changeset in webkit [279776] by
-
- 4 edits in releases/WebKitGTK/webkit-2.32
Unreviewed. Update OptionsGTK.cmake and NEWS for 2.32.2 release
.:
- Source/cmake/OptionsGTK.cmake: Bump version numbers.
Source/WebKit:
- gtk/NEWS: Add release notes for 2.32.2
- 1:10 AM Changeset in webkit [279775] by
-
- 2 edits in trunk/Tools
[webkitcorepy] run-webkit-tests may hang with python2 after r271683
https://bugs.webkit.org/show_bug.cgi?id=227715
Reviewed by Philippe Normand.
When an exception is raised from a worker if the workers are terminated
via a SIGKILL signal that later causes the task-queue to hang at close().
The issue is not reproducible with python3. So keep the same behaviour for
python3, and for python2 just use terminate() to stop the workers.
- Scripts/libraries/webkitcorepy/webkitcorepy/task_pool.py:
(TaskPool.exit):
- 12:14 AM Changeset in webkit [279774] by
-
- 1 edit2 deletes in trunk/LayoutTests
[GLIB] Unreviewed test gardening, update baselines after r279723
https://bugs.webkit.org/show_bug.cgi?id=227812
Patch by Arcady Goldmints-Orlov <Arcady Goldmints-Orlov> on 2021-07-09
- platform/glib/imported/w3c/web-platform-tests/WebCryptoAPI/derive_bits_keys/ecdh_bits.https.any-expected.txt: Removed.
- platform/glib/imported/w3c/web-platform-tests/WebCryptoAPI/derive_bits_keys/ecdh_bits.https.any.worker-expected.txt: Removed.