Timeline
Jul 28, 2021:
- 10:30 PM Changeset in webkit [280417] by
-
- 2 edits in trunk/Source/WebCore
[WebXR] Require GL_OES_EGL_image extension for xrCompatible GL context
https://bugs.webkit.org/show_bug.cgi?id=228575
Patch by Ada Chan <ada.chan@apple.com> on 2021-07-28
Reviewed by Dean Jackson.
Without this extension, EGLImageTargetTexture2DOES() will fail
in GraphicsContextGLOpenGL::attachIOSurfaceToSharedTexture().
- platform/graphics/cocoa/GraphicsContextGLOpenGLCocoa.mm:
(WebCore::GraphicsContextGLOpenGL::GraphicsContextGLOpenGL):
- 9:18 PM Changeset in webkit [280416] by
-
- 43 edits4 adds in trunk
[WebAudio] Add webm/opus container support
https://bugs.webkit.org/show_bug.cgi?id=227110
<rdar://problem/79437067>
Reviewed by Jer Noble.
Source/WebCore:
Add support for webm in Web Audio.
As decoding needs to be performed in the web content process we
need to ensure that the decoders are available there. For security
reasons, com.apple.audio.AudioComponentRegistrar mach calls are blocked
which prevents registering a new audio component.
We instead register it in the UI process so that AudioComponentFetchServerRegistrations
SPI can forward the registration in the web process.
Unfortunately, for unknown reasons, this fails for Vorbis audio codec (bug 228139).
To demux the webm content, we use the existing SourceBufferParserWebM to extract all
audio packets. We then iterate over all CM Samples and decode them into PCM, performing
resampling as needed on the fly.
There are things left to fix.
- Opus and Vorbis encoder delay isn't handled (bug 228140) which leaves audible
silence at the beginning of the destination buffer.
- We can only decode mono and stereo content. Opus and Vorbis let you define a
custom channel ordering, this is particularly used with ambisonic audio (with opus 255 mode).
CoreMedia doesn't easily deal with such re-ordering as it appears to be essentially
designed for audible content. With more than 2 channels, decoding will either fail
or produce channels in the wrong order.
Test: webaudio/decode-audio-data-webm-opus.html
- Headers.cmake: Export header so that we can register the decoder in the UI process.
- WebCore.xcodeproj/project.pbxproj: same as above.
- html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::canPlayType const): Make canPlayType(webm/audio; codecs=opus)
work if features is set.
- page/RuntimeEnabledFeatures.h:
(WebCore::RuntimeEnabledFeatures::setWebMWebAudioEnabled):
(WebCore::RuntimeEnabledFeatures::webMWebAudioEnabled const):
- platform/MediaSample.h: Fly-by fix: remove unnecessary WEBCORE_EXPORT
- platform/audio/AudioBus.cpp:
(WebCore::AudioBus::setLength):
- platform/audio/AudioBus.h: Add setLength method. Will change the reported length
without touching the underlying storage.
- platform/audio/AudioChannel.h: Add setLength method. Will change the reported
length without touching the underlying storage.
- platform/audio/cocoa/AudioFileReaderCocoa.cpp:
(WebCore::tryCreateAudioBufferList): Fix checkedInt use to catch potential overflow
(WebCore::AudioBufferListHolder::AudioBufferListHolder): Add convenience class that
free wrapped AudioBufferList object on exit.
(WebCore::AudioBufferListHolder::~AudioBufferListHolder):
(WebCore::AudioBufferListHolder::operator bool const):
(WebCore::AudioBufferListHolder::operator-> const):
(WebCore::AudioBufferListHolder::operator* const):
(WebCore::AudioBufferListHolder::isValid const):
(WebCore::AudioFileReader::AudioFileReader):
(WebCore::AudioFileReader::isMaybeWebM const): Method to check if the buffer
contains WebM data.
(WebCore::passthroughInputDataCallback): Required for AudioConverterFillComplexBuffer.
Will feed the decoder the data to decode, splitting the multiple packets found
in the CMSampleBuffer.
(WebCore::AudioFileReader::numberOfFrames const): Return the total number of
decoded frames in the packets.
(WebCore::AudioFileReader::fileDataFormat const): Create AudioStreamBasicDescription
related to the demuxed audio track. nullopt if unsupported content.
(WebCore::AudioFileReader::clientDataFormat const):
(WebCore::AudioFileReader::createBus):
(WebCore::AudioFileReader::logChannel const):
- platform/audio/cocoa/AudioFileReaderCocoa.h:
- platform/audio/cocoa/AudioSampleDataSource.h: Remove unused typedef.
- platform/audio/cocoa/AudioSampleDataSource.mm:
(WebCore::AudioSampleDataSource::~AudioSampleDataSource): Fly-by fix, make it use
PAL softlinks
(WebCore::AudioSampleDataSource::setupConverter): Fly-by fix, make it use PAL
softlinks
- platform/gamepad/mac/HIDGamepadProvider.mm: Fly-by fix, add missing header.
- platform/graphics/TrackPrivateBase.cpp: Fly-by fix, add missing header.
- platform/graphics/avfoundation/objc/MediaSampleAVFObjC.h:
Fly-by fix required by webkit-prepare : don't tag the whole class as WEBCORE_EXPORT.
Move constructor and destructor function definitions out-of-line to prevent
linkage errors.
- platform/graphics/avfoundation/objc/MediaSampleAVFObjC.mm:
(WebCore::MediaSampleAVFObjC::MediaSampleAVFObjC): Move code
- platform/graphics/cocoa/WebCoreDecompressionSession.mm: Fly-by fix, add missing header.
- platform/graphics/cocoa/WebMAudioUtilitiesCocoa.h: Export some symbols, add new
method definitions.
- platform/graphics/cocoa/WebMAudioUtilitiesCocoa.mm:
(WebCore::registerDecoderFactory): Instead of attempting to register the decoder
by dl-opening the required library, first attempting to see if the decoder is
already available. Calling AudioComponentRegister in the web content process
when the GPU process is enabled will fail due to sandbox settings. Which would
incorrectly report the codec to not be available when it was.
(WebCore::createAudioFormatDescriptionForFormat):
(WebCore::isOpusDecoderAvailable): Fly-by fix, should the method be called
on non-mac platform it would have return the unitialized value of the available
static variable.
(WebCore::registerOpusDecoderIfNeeded): Added
(WebCore::isVorbisDecoderAvailable): Same as isOpusDecoderAvailable
(WebCore::registerVorbisDecoderIfNeeded): Added
Source/WebCore/PAL:
Add various AVFoundation (AVAudioConverter) related methods and
CoreMedia to access required CMSampleBuffer related methods.
- pal/cf/CoreMediaSoftLink.cpp:
- pal/cf/CoreMediaSoftLink.h:
- pal/cocoa/AVFoundationSoftLink.h:
- pal/cocoa/AVFoundationSoftLink.mm:
Source/WebKit:
Add default value for webm_webaudio feature flag for the different platforms.
Disabled by default on all platforms.
Fly-by fix: don't make webm parser dependent on VP9 support.
- FeatureFlags/WebKit-appletvos.plist:
- FeatureFlags/WebKit-ios.plist:
- FeatureFlags/WebKit-macos.plist:
- FeatureFlags/WebKit-watchos.plist:
- GPUProcess/GPUProcess.h:
- GPUProcess/GPUProcess.messages.in:
- Shared/WebPreferencesDefaultValues.cpp:
(WebKit::defaultWebMWebAudioEnabled):
- Shared/WebPreferencesDefaultValues.h:
- UIProcess/Cocoa/WebProcessProxyCocoa.mm:
(WebKit::WebProcessProxy::sendAudioComponentRegistrations):
Source/WTF:
Add WebMWebAudioEnabled preference to make canPlayType return probably for mimetype:
"audio/webm; codecs=opus"
Disabled by default.
- Scripts/Preferences/WebPreferencesExperimental.yaml:
LayoutTests:
- platform/mac/TestExpectations: Only enable test on macOS Monterey
- webaudio/decode-audio-data-basic.html: fix whitespace
- webaudio/decode-audio-data-webm-opus-expected.txt: Added.
- webaudio/decode-audio-data-webm-opus.html: Added.
- webaudio/resources/media/opus.webm: Added.
- webaudio/resources/media/vorbis.webm: Added.
- 9:04 PM Changeset in webkit [280415] by
-
- 25 edits7 adds in trunk
Implement IDBTransaction.durability
https://bugs.webkit.org/show_bug.cgi?id=228289
Reviewed by Darin Adler.
LayoutTests/imported/w3c:
- web-platform-tests/IndexedDB/idlharness.any-expected.txt:
- web-platform-tests/IndexedDB/idlharness.any.worker-expected.txt:
- web-platform-tests/IndexedDB/transaction-relaxed-durability.tentative.any-expected.txt:
- web-platform-tests/IndexedDB/transaction-relaxed-durability.tentative.any.worker-expected.txt:
Source/WebCore:
Spec: https://www.w3.org/TR/IndexedDB/#dom-idbtransaction-durability
https://www.w3.org/TR/IndexedDB/#dictdef-idbtransactionoptions
IDBTransaction.durability gives a hint about durability of a transaction. If it's strict, backend would try
syncing data to database file after transaction commit, which enforces durability. If it's relaxed, it means
data may stay in the OS buffer some time after transaction commit, which gives better performance. Firefox and
Chrome already implemented durability. They have different ways of setting durability, and we choose to use
TransactionOptions as spec.
Rebaselined existing tests.
New tests: storage/indexeddb/idbtransaction-durability-private.html
storage/indexeddb/idbtransaction-durability.html
- CMakeLists.txt:
- DerivedSources-input.xcfilelist:
- DerivedSources-output.xcfilelist:
- DerivedSources.make:
- Headers.cmake:
- Modules/indexeddb/IDBDatabase.cpp:
(WebCore::IDBDatabase::transaction):
- Modules/indexeddb/IDBDatabase.h:
- Modules/indexeddb/IDBDatabase.idl:
- Modules/indexeddb/IDBTransaction.h:
- Modules/indexeddb/IDBTransaction.idl:
- Modules/indexeddb/IDBTransactionDurability.h: Added.
- Modules/indexeddb/IDBTransactionDurability.idl: Added.
- Modules/indexeddb/server/SQLiteIDBBackingStore.cpp:
(WebCore::IDBServer::SQLiteIDBBackingStore::commitTransaction):
- Modules/indexeddb/server/SQLiteIDBTransaction.h:
(WebCore::IDBServer::SQLiteIDBTransaction::durability const):
- Modules/indexeddb/shared/IDBTransactionInfo.cpp:
(WebCore::IDBTransactionInfo::clientTransaction):
(WebCore::IDBTransactionInfo::IDBTransactionInfo):
(WebCore::IDBTransactionInfo::isolatedCopy):
- Modules/indexeddb/shared/IDBTransactionInfo.h:
(WebCore::IDBTransactionInfo::durability const):
(WebCore::IDBTransactionInfo::encode const):
(WebCore::IDBTransactionInfo::decode):
- Sources.txt:
- WebCore.xcodeproj/project.pbxproj:
- platform/sql/SQLiteDatabase.cpp:
(WebCore::checkpointModeValue):
(WebCore::SQLiteDatabase::checkpoint):
(WebCore::SQLiteDatabase::useWALJournalMode):
- platform/sql/SQLiteDatabase.h:
LayoutTests:
- storage/indexeddb/idbtransaction-durability-expected.txt: Added.
- storage/indexeddb/idbtransaction-durability-private-expected.txt: Added.
- storage/indexeddb/idbtransaction-durability-private.html: Added.
- storage/indexeddb/idbtransaction-durability.html: Added.
- storage/indexeddb/resources/idbtransaction-durability.js: Added.
(onOpenUpgradeNeeded):
(onOpenSuccess):
(onTransactionComplete):
- 7:33 PM Changeset in webkit [280414] by
-
- 4 edits in trunk
makeWeakPtr should support Ref and RefPtr as the argument
https://bugs.webkit.org/show_bug.cgi?id=228574
Reviewed by Wenson Hsieh.
Source/WTF:
This patch adds variants of makeWeakPtr<T> which take Ref<T> and RefPtr<T>.
Tests: TestWebKitAPI.WTF_WeakPtr.MakeWeakPtrTakesRef
TestWebKitAPI.WTF_WeakPtr.MakeWeakPtrTakesRefPtr
- wtf/WeakPtr.h:
(WTF::makeWeakPtr):
Tools:
Added unit tests for makeWeakPtr<T> on Ref<T> and RefPtr<T>.
- TestWebKitAPI/Tests/WTF/WeakPtr.cpp:
(TestWebKitAPI::BaseObjectWithRefAndWeakPtr): Added.
(TestWebKitAPI::BaseObjectWithRefAndWeakPtr::create): Added.
(TestWebKitAPI::BaseObjectWithRefAndWeakPtr::someFunction):
(TestWebKitAPI::DerivedObjectWithRefAndWeakPtr): Added.
(TestWebKitAPI::DerivedObjectWithRefAndWeakPtr::create):
(WTF_WeakPtr.MakeWeakPtrTakesRef): Added.
(WTF_WeakPtr.MakeWeakPtrTakesRefPtr): Added.
- 7:31 PM Changeset in webkit [280413] by
-
- 5 edits in trunk/Tools
[webkitcorepy] Add hybridmethod decorator
https://bugs.webkit.org/show_bug.cgi?id=225991
<rdar://problem/78230701>
Reviewed by Dewei Zhu.
- Scripts/libraries/webkitcorepy/setup.py: Bump version.
- Scripts/libraries/webkitcorepy/webkitcorepy/init.py: Ditto.
- Scripts/libraries/webkitcorepy/webkitcorepy/decorators.py:
(hybridmethod): Similar to the "classmethod" decorator, except this decorator allows the
decorated functions to differentiate between being called by the class and an instance
of the class.
- Scripts/libraries/webkitcorepy/webkitcorepy/tests/decorators_unittest.py:
(TestHybrid):
(TestHybrid.is_type):
(TestHybrid.test_type):
(TestHybrid.test_instance):
- 6:48 PM Changeset in webkit [280412] by
-
- 2 edits in trunk/Tools
[webkitcorepy] Fix race condition in TaskPool unittests (follow-up fix)
https://bugs.webkit.org/show_bug.cgi?id=227455
<rdar://problem/79873003>
Reviewed by Dewei Zhu.
- Scripts/libraries/webkitcorepy/webkitcorepy/tests/task_pool_unittest.py:
(TaskPoolUnittest.test_invalid_shutdown): Deleted.
- 5:09 PM Changeset in webkit [280411] by
-
- 2 edits in trunk/LayoutTests
[ iPad ] platform/ipad/media/modern-media-controls/media-documents/media-document-audio-ios-sizing.html is a flaky timeout.
https://bugs.webkit.org/show_bug.cgi?id=228570#c0
Unreviewed test gardening.
- platform/ipad/TestExpectations:
- 4:35 PM Changeset in webkit [280410] by
-
- 11 edits5 adds in trunk
IDBFactory.databases should not return databases with invalid version
https://bugs.webkit.org/show_bug.cgi?id=228554
Reviewed by Chris Dumez.
LayoutTests/imported/w3c:
- web-platform-tests/IndexedDB/get-databases.any-expected.txt:
- web-platform-tests/IndexedDB/get-databases.any.worker-expected.txt:
Source/WebCore:
To get database information, we used to open all database files and read from them. To avoid opening new
connection to databases that are already opened, and to ensure we get the latest information, for database that
is already opened, we should get its information from UniqueIDBDatabase directly. If database is not opened, we
open its file and read. By doing this, we also fix the issue that no databases are returned in private browsing
(since there is no file created).
Also, version 0 means the database is just created and has not finished version change transaction (version 1
is the first valid version according to spec), so we should not return databases with version 0.
Tests: storage/indexeddb/getdatabases-private.html
storage/indexeddb/getdatabases.html
- Modules/indexeddb/server/IDBBackingStore.h:
- Modules/indexeddb/server/IDBServer.cpp:
(WebCore::IDBServer::getDatabaseNameAndVersionFromOriginDirectory):
(WebCore::IDBServer::IDBServer::getAllDatabaseNamesAndVersions):
- Modules/indexeddb/server/MemoryIDBBackingStore.h:
- Modules/indexeddb/server/SQLiteIDBBackingStore.h:
- Modules/indexeddb/server/UniqueIDBDatabase.cpp:
(WebCore::IDBServer::UniqueIDBDatabase::didDeleteBackingStore):
(WebCore::IDBServer::UniqueIDBDatabase::filePath const):
(WebCore::IDBServer::UniqueIDBDatabase::nameAndVersion const):
- Modules/indexeddb/server/UniqueIDBDatabase.h:
LayoutTests:
- storage/indexeddb/getdatabases-expected.txt: Added.
- storage/indexeddb/getdatabases-private-expected.txt: Added.
- storage/indexeddb/getdatabases-private.html: Added.
- storage/indexeddb/getdatabases.html: Added.
- storage/indexeddb/resources/getdatabases.js: Added.
(test):
- 4:33 PM Changeset in webkit [280409] by
-
- 2 edits in trunk/LayoutTests
[ iPad ] platform/ipad/media/modern-media-controls/media-documents/media-document-audio-ios-sizing.html is a flaky timeout.
https://bugs.webkit.org/show_bug.cgi?id=228570#c0
Unreviewed test gardening.
- platform/ipad/TestExpectations:
- 4:11 PM Changeset in webkit [280408] by
-
- 2 edits in trunk/LayoutTests
fast/dom/webtiming-document-open.html is a flaky failure.
https://bugs.webkit.org/show_bug.cgi?id=228571.
Unreviewed test gardening.
- platform/mac/TestExpectations:
- 4:03 PM Changeset in webkit [280407] by
-
- 1 edit2 adds in trunk/LayoutTests
[ iPad ] Rebaseline 2 imported/w3c/web-platform-tests/html tests.
https://bugs.webkit.org/show_bug.cgi?id=228568
Unreviewed test gardening.
- platform/ipad/imported/w3c/web-platform-tests/html/browsers/the-window-object/dialog-form-submission-expected.txt: Added.
- platform/ipad/imported/w3c/web-platform-tests/html/browsers/the-window-object/noopener-noreferrer-sizing.window-expected.txt: Added.
- 3:33 PM Changeset in webkit [280406] by
-
- 8 edits in branches/safari-612.1.24.11-branch/Source
Versioning.
WebKit-7612.1.24.11.7
- 3:02 PM Changeset in webkit [280405] by
-
- 2 edits in trunk/LayoutTests
Unreviewed, Rebaseline imported/w3c/web-platform-tests/html/dom/idlharness.https.html on iPad.
- platform/ipad/imported/w3c/web-platform-tests/html/dom/idlharness.https-expected.txt:
- 2:58 PM Changeset in webkit [280404] by
-
- 2 edits in trunk/LayoutTests/imported/w3c
Unreviewed, reverting r280402.
Wrong baseline set.
Reverted changeset:
"[ iPad ] Rebaseline 2 imported/w3c/web-platform-tests/html
tests."
https://bugs.webkit.org/show_bug.cgi?id=228568
https://commits.webkit.org/r280402
- 2:51 PM Changeset in webkit [280403] by
-
- 2 edits in trunk/LayoutTests
Update test expectations for inspector/canvas/recording-html-2d.html and inspector/canvas/updateShader-webgpu.html.
https://bugs.webkit.org/show_bug.cgi?id=227881.
Unreviewed test gardening.
- platform/mac-wk2/TestExpectations:
- 2:50 PM Changeset in webkit [280402] by
-
- 2 edits in trunk/LayoutTests/imported/w3c
[ iPad ] Rebaseline 2 imported/w3c/web-platform-tests/html tests.
https://bugs.webkit.org/show_bug.cgi?id=228568
Unreviewed test gardening.
- web-platform-tests/html/browsers/the-window-object/noopener-noreferrer-sizing.window-expected.txt:
- 2:46 PM Changeset in webkit [280401] by
-
- 8 edits in trunk/Source
[GPU Process] Start tracking resource uses for ImageBuffers
https://bugs.webkit.org/show_bug.cgi?id=228225
Reviewed by Said Abou-Hallawa.
Source/WebCore:
This is part 4 of https://bugs.webkit.org/show_bug.cgi?id=228216.
This works the same way as NativeImages/Fonts (https://bugs.webkit.org/show_bug.cgi?id=228224).
The only real difference to how ImageBuffers work today is that RemoteImageBufferProxy's destructor
doesn't directly tell the RemoteRenderingBackendProxy to release its RenderingResourceIdentifier,
but instead this codepath goes through the RemoteResourceCacheProxy which is tracking the number of
uses of the resource. This is so the RemoteResourceCacheProxy can inject the use count into the
ReleaseRemoteResource command.
Covered by existing tests.
- platform/graphics/displaylists/DisplayListRecorder.cpp:
(WebCore::DisplayList::Recorder::drawImageBuffer):
(WebCore::DisplayList::Recorder::clipToImageBuffer):
- platform/graphics/displaylists/DisplayListRecorder.h:
(WebCore::DisplayList::Recorder::Delegate::recordImageBufferUse):
- platform/graphics/displaylists/DisplayListReplayer.cpp:
(WebCore::DisplayList::applyImageBufferItem):
(WebCore::DisplayList::Replayer::applyItem):
Source/WebKit:
- WebProcess/GPU/graphics/RemoteImageBufferProxy.h:
(WebKit::RemoteImageBufferProxy::~RemoteImageBufferProxy):
- WebProcess/GPU/graphics/RemoteResourceCacheProxy.cpp:
(WebKit::RemoteResourceCacheProxy::cacheImageBuffer):
(WebKit::RemoteResourceCacheProxy::cachedImageBuffer):
(WebKit::RemoteResourceCacheProxy::releaseImageBuffer):
(WebKit::RemoteResourceCacheProxy::recordImageBufferUse):
(WebKit::RemoteResourceCacheProxy::remoteResourceCacheWasDestroyed):
- WebProcess/GPU/graphics/RemoteResourceCacheProxy.h:
- 2:43 PM Changeset in webkit [280400] by
-
- 3 edits in trunk/Source/WebCore
[iOS] Ignore extra route change notifications
https://bugs.webkit.org/show_bug.cgi?id=228565
Reviewed by Jer Noble.
Tested manually, this only reproduces on iOS hardware.
- platform/mediastream/ios/AVAudioSessionCaptureDeviceManager.h:
- platform/mediastream/ios/AVAudioSessionCaptureDeviceManager.mm:
(WebCore::AVAudioSessionCaptureDeviceManager::scheduleUpdateCaptureDevices): Do
nothing if m_recomputeDevices is true.
(WebCore::AVAudioSessionCaptureDeviceManager::computeCaptureDevices): Don't rebuilding
device list unless m_recomputeDevices is set. Clear m_recomputeDevices after after
rebuilding list.
- 2:36 PM Changeset in webkit [280399] by
-
- 5 edits in trunk/Tools
[ews-build.webkit.org] Verify GitHub integrity in commit queue
https://bugs.webkit.org/show_bug.cgi?id=228563
<rdar://problem/81230685>
Reviewed by Aakash Jain.
- CISupport/ews-build/factories.py:
(CommitQueueFactory.init): Add VerifyGitHubIntegrity.
- CISupport/ews-build/factories_unittest.py:
(TestCommitQueueFactory.test_commit_queue_factory):
- CISupport/ews-build/steps.py:
(CheckPatchStatusOnEWSQueues.start):
(VerifyGitHubIntegrity):
(VerifyGitHubIntegrity.init):
(VerifyGitHubIntegrity.getResultSummary):
- Scripts/check-github-mirror-integrity: Import webkitscmpy from webkitpy.
- 1:21 PM Changeset in webkit [280398] by
-
- 12 edits2 adds in trunk
[iOS] <select> picker value committed to incorrect element after programmatic focus change
https://bugs.webkit.org/show_bug.cgi?id=228556
rdar://81222952
Reviewed by Wenson Hsieh.
Source/WebKit:
The old <select> picker is a UIPickerView that only commits any value
changes to the WebProcess once the user dismisses the picker, or focus
is lost programmatically. Currently, the value change is committed by
sending a message to the WebProcess, telling it to update the value of
the currently focused element. However, when focus is changed
programmatically, the focused element in the WebProcess is updated
before the commit, and the incorrect element's value can be changed.
To fix, update all methods which commit value changes to the focused
element to take an ElementContext parameter representing the element
that needs its value modified. Then, in the WebProcess, rather than
commit the value change to the currently focused element, retrieve the
element from the ElementContext, ensuring the correct element is
updated.
Note that this bug only surfaces in the old <select> picker, on apps
linked before iOS 13, since the new picker commits value changes
immediately and dismisses itself.
Test: fast/forms/ios/select-picker-change-and-focus-another-select-programmatically.html
- UIProcess/WebPageProxy.h:
- UIProcess/ios/WKContentViewInteraction.h:
- UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView accessoryClear]):
(-[WKContentView updateFocusedElementValueAsNumber:]):
(-[WKContentView updateFocusedElementValue:]):
(-[WKContentView updateFocusedElementValueAsColor:]):
(-[WKContentView updateFocusedElementSelectedIndex:allowsMultipleSelection:]):
(-[WKContentView insertTextSuggestion:]):
(-[WKContentView selectMenu:didSelectItemAtIndex:]):
(-[WKContentView selectMenu:didCheckItemAtIndex:checked:]):
- UIProcess/ios/WebPageProxyIOS.mm:
(WebKit::WebPageProxy::setFocusedElementValue):
(WebKit::WebPageProxy::setFocusedElementValueAsNumber):
(WebKit::WebPageProxy::setFocusedElementSelectedIndex):
- UIProcess/ios/forms/WKDateTimeInputControl.mm:
(-[WKDateTimePicker reset:]):
- UIProcess/ios/forms/WKFormSelectPicker.mm:
(-[WKMultipleSelectPicker pickerView:row:column:checked:]):
(-[WKSelectSinglePicker controlEndEditing]):
(-[WKSelectPicker didSelectOptionIndex:]):
(-[WKSelectPickerTableViewController tableView:didSelectRowAtIndexPath:]):
- UIProcess/ios/forms/WKFormSelectPopover.mm:
(-[WKSelectTableViewController tableView:didSelectRowAtIndexPath:]):
- WebProcess/WebPage/WebPage.h:
- WebProcess/WebPage/WebPage.messages.in:
- WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::setFocusedElementValue):
(WebKit::WebPage::setFocusedElementValueAsNumber):
(WebKit::WebPage::setFocusedElementSelectedIndex):
LayoutTests:
Added a test to verify that changing focus programmatically, while changes
in the <select> picker have not been committed, updates the value of the
correct element.
- fast/forms/ios/select-picker-change-and-focus-another-select-programmatically-expected.txt: Added.
- fast/forms/ios/select-picker-change-and-focus-another-select-programmatically.html: Added.
- 1:07 PM Changeset in webkit [280397] by
-
- 2 edits in trunk/Source/WebKit
iOS Simulator doesn't have any WebKit system feature flags
https://bugs.webkit.org/show_bug.cgi?id=228557
rdar://80991854
Reviewed by Darin Adler.
- Scripts/generate-feature-flags-plist.sh:
Install iOS feature flags for the simulator (and watchOS and tvOS for their respective simulators).
This was causing on-by-default features like GPUP to be disabled in the simulator.
- 12:31 PM Changeset in webkit [280396] by
-
- 2 edits in trunk/Source/WebCore
AppHighlightStorage should not inherit privately from RefCounted
https://bugs.webkit.org/show_bug.cgi?id=228562
Reviewed by Wenson Hsieh.
AppHighlightStorage is only stored with unique_ptr. There is no reason for this class
to *privately* inherit from RefCounted.
- Modules/highlight/AppHighlightStorage.h:
- 12:26 PM Changeset in webkit [280395] by
-
- 2 edits in trunk/LayoutTests
http/tests/media/modern-media-controls/macos-fullscreen-media-controls/macos-fullscreen-media-controls-live-broadcast.html is a flaky timeout.
https://bugs.webkit.org/show_bug.cgi?id=228561.
Unreviewed test gardening.
- platform/mac-wk1/TestExpectations:
- 12:10 PM Changeset in webkit [280394] by
-
- 2 edits in trunk/Source/WebCore
Deploy more use of smart pointers in Document.cpp
https://bugs.webkit.org/show_bug.cgi?id=228544
A partial revert of r280390 to fix builds. AppHighlightStorage isn't really ref-counted.
- dom/Document.cpp:
(WebCore::Document::finishedParsing):
- 11:57 AM Changeset in webkit [280393] by
-
- 3 edits in trunk/LayoutTests
storage/indexeddb/detached-iframe.html is flaky failing.
https://bugs.webkit.org/show_bug.cgi?id=207844
Unreviewed test gardening.
- platform/ios-14/TestExpectations:
- platform/ios-wk2/TestExpectations:
- 11:57 AM Changeset in webkit [280392] by
-
- 2 edits in trunk/Source/WTF
[Cocoa] macOS Monterey and parallel OSes no longer need r280103
https://bugs.webkit.org/show_bug.cgi?id=228539
Reviewed by Alan Bujtas.
Core Text's behavior changed on these OSes.
- wtf/PlatformUse.h:
- 11:49 AM Changeset in webkit [280391] by
-
- 3 edits in trunk/Source/JavaScriptCore
[JSC] load/store with BaseIndex is inefficient in ARM64
https://bugs.webkit.org/show_bug.cgi?id=228543
Reviewed by Mark Lam.
While we are frequently using load + BaseIndex (with offset) in RegExp code,
we emit 3 instructions in ARM64. This can be represented in 2 instructions.
This patch adds that path to make generated code tight in ARM64 RegExp.
- assembler/MacroAssemblerARM64.h:
(JSC::MacroAssemblerARM64::load64):
(JSC::MacroAssemblerARM64::load32):
(JSC::MacroAssemblerARM64::load16):
(JSC::MacroAssemblerARM64::load16SignedExtendTo32):
(JSC::MacroAssemblerARM64::load8):
(JSC::MacroAssemblerARM64::load8SignedExtendTo32):
(JSC::MacroAssemblerARM64::store64):
(JSC::MacroAssemblerARM64::store32):
(JSC::MacroAssemblerARM64::store16):
(JSC::MacroAssemblerARM64::store8):
(JSC::MacroAssemblerARM64::loadDouble):
(JSC::MacroAssemblerARM64::loadFloat):
(JSC::MacroAssemblerARM64::storeDouble):
(JSC::MacroAssemblerARM64::storeFloat):
(JSC::MacroAssemblerARM64::tryFoldBaseAndOffsetPart):
- assembler/testmasm.cpp:
(JSC::testLoadBaseIndex):
(JSC::testStoreBaseIndex):
- 10:53 AM Changeset in webkit [280390] by
-
- 2 edits in trunk/Source/WebCore
Deploy more use of smart pointers in Document.cpp
https://bugs.webkit.org/show_bug.cgi?id=228544
Reviewed by Darin Adler.
Deployed RefPtr in more places in Document.cpp
- dom/Document.cpp:
(WebCore::acceptsEditingFocus):
(WebCore::canAccessAncestor):
(WebCore::createHTMLElementWithNameValidation):
(WebCore::Document::adoptNode):
(WebCore::createFallbackHTMLElement):
(WebCore::Document::setVisualUpdatesAllowed):
(WebCore::Document::setTitle):
(WebCore::Document::resolveStyle):
(WebCore::Document::updateLayout):
(WebCore::Document::updateLayoutIfDimensionsOutOfDate):
(WebCore::Document::frameDestroyed):
(WebCore::Document::removeAllEventListeners):
(WebCore::Document::setBodyOrFrameset):
(WebCore::Document::implicitClose):
(WebCore::Document::isNavigationBlockedByThirdPartyIFrameRedirectBlocking):
(WebCore::Document::didRemoveAllPendingStylesheet):
(WebCore::Document::processHttpEquiv):
(WebCore::Document::processColorScheme):
(WebCore::Document::prepareMouseEvent):
(WebCore::Document::updateViewportUnitsOnResize):
(WebCore::Document::runResizeSteps):
(WebCore::Document::runScrollSteps):
(WebCore::Document::invalidateScrollbars):
(WebCore::Document::adjustFocusedNodeOnNodeRemoval):
(WebCore::Document::invalidateEventRegionsForFrame):
(WebCore::Document::invalidateRenderingDependentRegions):
(WebCore::Document::setFocusedElement):
(WebCore::Document::setBackForwardCacheState):
(WebCore::Document::documentWillBecomeInactive):
(WebCore::Document::setDesignMode):
(WebCore::Document::finishedParsing):
(WebCore::Document::initSecurityContext):
(WebCore::Document::initContentSecurityPolicy):
(WebCore::Document::updateURLForPushOrReplaceState):
(WebCore::Document::getCSSCanvasContext):
(WebCore::Document::loadEventDelayTimerFired):
(WebCore::Document::checkCompleted):
(WebCore::Document::wheelEventHandlersChanged):
(WebCore::Document::didAddWheelEventHandler):
(WebCore::Document::didRemoveWheelEventHandler):
(WebCore::Document::didAddTouchEventHandler):
(WebCore::Document::didRemoveTouchEventHandler):
(WebCore::Document::absoluteEventRegionForNode):
(WebCore::Document::absoluteRegionForEventTargets):
(WebCore::Document::updateLastHandledUserGestureTimestamp):
(WebCore::DocumentParserYieldToken::DocumentParserYieldToken):
(WebCore::DocumentParserYieldToken::~DocumentParserYieldToken):
(WebCore::Document::updateHoverActiveState):
(WebCore::Document::updateIntersectionObservations):
(WebCore::Document::bgColor const):
(WebCore::Document::setBgColor):
(WebCore::Document::fgColor const):
(WebCore::Document::setFgColor):
(WebCore::Document::alinkColor const):
(WebCore::Document::setAlinkColor):
(WebCore::Document::linkColorForBindings const):
(WebCore::Document::setLinkColorForBindings):
(WebCore::Document::vlinkColor const):
(WebCore::Document::setVlinkColor):
(WebCore::Document::dispatchSystemPreviewActionEvent):
- 9:31 AM Changeset in webkit [280389] by
-
- 2 edits in trunk/LayoutTests
REGRESSION (r264117): [ Mac iOS ] imported/w3c/web-platform-tests/html/cross-origin-embedder-policy/blob.https.html.
https://bugs.webkit.org/show_bug.cgi?id=214155
Unreviewed test gardening.
- platform/ios/TestExpectations:
- 9:12 AM Changeset in webkit [280388] by
-
- 2 edits in trunk/LayoutTests
imported/w3c/web-platform-tests/speech-api/SpeechSynthesis-speak-events.html is crashing in debug.
https://bugs.webkit.org/show_bug.cgi?id=227501
Unreviewed test gardening.
- platform/ios-wk2/TestExpectations:
- 9:03 AM Changeset in webkit [280387] by
-
- 1 copy in tags/Safari-612.1.25.1
Tag Safari-612.1.25.1.
- 9:02 AM Changeset in webkit [280386] by
-
- 2 edits in branches/safari-612.1.25-branch/Source/WebCore/PAL
Cherry-pick r280384. rdar://problem/81218821
Fix build with SDKs containing new CFNetwork SPI declaration
https://bugs.webkit.org/show_bug.cgi?id=228553
<rdar://81202574>
Reviewed by Brady Eidson.
CFNSURLConnection.h also has "@interface NSURLSessionConfiguration ()"
ObjC doesn't like it if you have the exact same thing in the parentheses and a duplicate declaration.
I reproduced the build failure with a modified SDK and verified this fixes it.
- pal/spi/cf/CFNetworkSPI.h:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@280384 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 8:57 AM Changeset in webkit [280385] by
-
- 5 edits in trunk
WebSocket: Safari on iOS 15 beta 3 is sending invalid close frame
https://bugs.webkit.org/show_bug.cgi?id=228329
Patch by Alex Christensen <achristensen@webkit.org> on 2021-07-28
Reviewed by Youenn Fablet.
Source/WebKit:
Our NSURLSession WebSocket implementation had two bugs:
- It was sending 1005 as the close code if none was specified. It now sends no close code, which matches Chrome and Firefox.
- It was not sending a close code before the close reason when a WebSocket is closed due to navigation. It now sends the close code in 2 bytes before the reason, which matches Chrome and Firefox. Side note: our CFReadStream/CFWriteStream implementation sent neither the code nor the reason in this case, which matches no other browser.
Covered by an API test.
- NetworkProcess/cocoa/WebSocketTaskCocoa.mm:
(WebKit::WebSocketTask::close):
- WebProcess/Network/WebSocketChannel.cpp:
(WebKit::WebSocketChannel::fail):
(WebKit::WebSocketChannel::disconnect):
Tools:
- TestWebKitAPI/Tests/WebKitCocoa/WebSocket.mm:
(TestWebKitAPI::TEST):
- 8:55 AM Changeset in webkit [280384] by
-
- 2 edits in trunk/Source/WebCore/PAL
Fix build with SDKs containing new CFNetwork SPI declaration
https://bugs.webkit.org/show_bug.cgi?id=228553
<rdar://81202574>
Reviewed by Brady Eidson.
CFNSURLConnection.h also has "@interface NSURLSessionConfiguration ()"
ObjC doesn't like it if you have the exact same thing in the parentheses and a duplicate declaration.
I reproduced the build failure with a modified SDK and verified this fixes it.
- pal/spi/cf/CFNetworkSPI.h:
- 8:33 AM Changeset in webkit [280383] by
-
- 8 edits in branches/safari-612.1.25-branch/Source
Versioning.
WebKit-7612.1.25.1
- 8:01 AM Changeset in webkit [280382] by
-
- 15 edits2 adds in trunk
[WPE][GTK] SVN_REVISION drifting away if bots don't re-run cmake
https://bugs.webkit.org/show_bug.cgi?id=228290
Patch by Philippe Normand <pnormand@igalia.com> on 2021-07-28
Reviewed by Michael Catanzaro.
.:
The CMake configure_file() is now used only tarball builds for files requiring information
about the build revision. For developer builds a custom target now takes care of keeping
those files up-to-date.
- Source/cmake/OptionsGTK.cmake:
- Source/cmake/OptionsWPE.cmake:
Source/JavaScriptCore:
- PlatformGTK.cmake: Expand ${BUILD_REVISION} with apply-build-revision-to-files.py for
non-tarball builds, or let CMake do it for tarball builds.
- javascriptcoregtk.pc.in: Switch revision var to ${} format, so that we can choose to
either let CMake expand it or do it ourselves.
Source/WebKit:
- PlatformGTK.cmake: Expand ${BUILD_REVISION} with apply-build-revision-to-files.py for
non-tarball builds, or let CMake do it for tarball builds.
- PlatformWPE.cmake: Ditto.
- UIProcess/API/glib/WebKitProtocolHandler.cpp:
(WebKit::WebKitProtocolHandler::handleGPU): Use generated BuildRevision.h header
- gtk/webkit2gtk-web-extension.pc.in: Switch revision var to ${} format, so that we can choose to
either let CMake expand it or do it ourselves.
- gtk/webkit2gtk.pc.in: Ditto.
Tools:
- MiniBrowser/gtk/main.c:
(main): Use generated BuildRevision.h header.
- glib/apply-build-revision-to-files.py: Added.
(main):
- 7:01 AM Changeset in webkit [280381] by
-
- 3 edits4 adds in trunk
Crash in ApplyStyleCommand::applyRelativeFontStyleChange
https://bugs.webkit.org/show_bug.cgi?id=226926
Patch by Frédéric Wang <fwang@igalia.com> on 2021-07-28
Reviewed by Ryosuke Niwa.
Source/WebCore:
In r179944 and r180050, special handling was added for display: grid/flex nodes in
Position::isCandidate in order to make them editable but the same logic was not added in
PositionIterator::isCandidate. This patch fixes that inconsistency as well as the
corresponding debug ASSERT and release nullptr dereference.
Tests: fast/editing/apply-relative-font-style-change-crash-001.html
fast/editing/apply-relative-font-style-change-crash-002.html
- dom/PositionIterator.cpp:
(WebCore::PositionIterator::isCandidate const): Handle flexbox and grid.
LayoutTests:
Add regression tests.
- fast/editing/apply-relative-font-style-change-crash-001-expected.txt: Added.
- fast/editing/apply-relative-font-style-change-crash-001-expected.txt: Added.
- fast/editing/apply-relative-font-style-change-crash-002.html: Added.
- fast/editing/apply-relative-font-style-change-crash-002.html: Added.
- 1:34 AM Changeset in webkit [280380] by
-
- 18 edits1 add3 deletes in trunk/Tools/buildstream
[Flatpak SDK] Dependencies update - July 2021 round
https://bugs.webkit.org/show_bug.cgi?id=228275
Patch by Philippe Normand <pnormand@igalia.com> on 2021-07-28
Reviewed by Adrian Perez de Castro.
- elements/freedesktop-sdk.bst: Update to latest 20.08 junction version.
- elements/qt5/qtbase.bst: Switch to KDE 5.15 branch.
- elements/qt5/qtdeclarative.bst: Ditto.
- elements/qt5/qtquickcontrols.bst: Ditto.
- elements/qt5/qtquickcontrols2.bst: Ditto.
- elements/qt5/qtwayland.bst: Ditto.
- elements/qt5/qtx11extras.bst: Ditto.
- elements/sdk-build-depends/rapidjson.bst: Update to latest git snapshot.
- elements/sdk-platform.bst: Add virtualenv, needed for WPT tests.
- elements/sdk/ccls.bst: Update to latest release.
- elements/sdk/clangd.bst: Bump to version 12.
- elements/sdk/ffmpeg.bst: Bump to version 4.4.
- elements/sdk/openjpeg.bst: Bump to version 2.4.
- elements/sdk/rr.bst: Update to latest git snapshot.
- elements/sdk/x264.bst: Ditto. Snapshot tarballs were discontinued years ago.
- patches/qtbase-make-sure-to-correctly-construct-base-platform-theme.patch: Removed.
- patches/qtbase-revert-correct-handling-for-xdg-runtime-dir.patch: Removed.
- patches/qtbase-revert-qstandardpaths-dont-change-permissions-on-xdg-runtime-dir.patch: Added.
- patches/qtdeclarative-use-python3.patch: Removed.
- project.conf:
- 1:29 AM Changeset in webkit [280379] by
-
- 4 edits in trunk/Tools
[WPE] Add missing required dependencies to build WPE
https://bugs.webkit.org/show_bug.cgi?id=228530
Reviewed by Adrian Perez de Castro.
Script Tools/wpe/install-dependencies was not installing all the required
package dependencies necessary to build WPE. There were several
packages missing or other ones which were only present in the
WebKitGTK list of package dependencies (moved to GLIB).
- glib/dependencies/apt:
- gtk/dependencies/apt:
- wpe/dependencies/apt:
- 12:19 AM Changeset in webkit [280378] by
-
- 2 edits in trunk/LayoutTests
[WinCairo] Unreviewed test gardening
- platform/wincairo/TestExpectations:
Jul 27, 2021:
- 11:19 PM Changeset in webkit [280377] by
-
- 1 edit1 delete in trunk/LayoutTests
[LayoutTests] Delete unused LayoutTests/fullscreen resources
https://bugs.webkit.org/show_bug.cgi?id=226831
Reviewed by Alex Christensen.
Removing un-used resoruces after php tests were converted to Python.
- fullscreen/resources/not-allowed.html: Removed.
- 10:55 PM Changeset in webkit [280376] by
-
- 2 edits in trunk/Source/WebCore
Unreviewed. Remove the build warning below since r280332.
warning: redundant move in return statement [-Wredundant-move]
No new tests, no new behaviors.
- html/DOMFormData.cpp:
(WebCore::DOMFormData::create):
- 9:35 PM Changeset in webkit [280375] by
-
- 8 edits in trunk/LayoutTests
Update platform specific TestExpectations for imported IndexedDB tests
https://bugs.webkit.org/show_bug.cgi?id=228241
Reviewed by Alex Christensen.
Update LayoutTests/TestExpectations based on latest test results as we have fixed some existing issues, and
these tests should not fail now.
- platform/ios-device/TestExpectations:
- platform/ios-simulator-wk2/TestExpectations:
- platform/ios-wk2/TestExpectations:
- platform/ios/TestExpectations:
- platform/mac-wk1/TestExpectations:
- platform/mac-wk2/TestExpectations:
- platform/mac/TestExpectations:
- 8:56 PM Changeset in webkit [280374] by
-
- 19 edits2 adds in trunk
[Modern Media Controls] [macOS] Overflow button still shows as
oneven after contextmenu is dismissed
https://bugs.webkit.org/show_bug.cgi?id=228310
<rdar://problem/81124786>
Reviewed by Wenson Hsieh.
Source/WebCore:
Test: media/modern-media-controls/overflow-support/button-state.html
- page/ContextMenuController.h:
- page/ContextMenuController.cpp:
(WebCore::ContextMenuController::didDismissContextMenu): Added.
- page/ContextMenuProvider.h:
(WebCore::ContextMenuProvider::didDismissContextMenu): Added.
Add plumbing from WebKit to theContextMenuProviderfor when the contextmenu is dismissed.
- Modules/mediacontrols/MediaControlsHost.cpp:
(WebCore::MediaControlsContextMenuProvider::didDismissContextMenu): Added.
When the contextmenu is dismissed, invoke the callback provided toMediaControlsHost::showMediaControlsContextMenu
as that's the signal to theMediaControllerthat the contextmenu interaction is over,
which adjusts theonstate of theButton.
Source/WebKit:
Pipe along the
-[NSMenuDelegate menuDidClose:]signal to the WebProcess so theWebCore::ContextMenuProvider
can handle it if needed.
- UIProcess/WebContextMenuProxy.cpp:
(WebKit::WebContextMenuProxy::useContextMenuItems):
- UIProcess/mac/WebContextMenuProxyMac.mm:
(-[WKMenuDelegate menuWillOpen:]):
(-[WKMenuDelegate menuDidClose:]):
- UIProcess/WebPageProxy.h:
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::showContextMenu):
(WebKit::WebPageProxy::didShowContextMenu):
(WebKit::WebPageProxy::didDismissContextMenu): Added.
- WebProcess/WebPage/WebContextMenu.cpp:
(WebKit::WebContextMenu::show):
- WebProcess/WebPage/WebPage.messages.in:
- WebProcess/WebPage/WebPage.h:
(WebKit::WebPage::startWaitingForContextMenuToShow): Added.
(WebKit::WebPage::contextMenuShowing): Deleted.
(WebKit::WebPage::contextMenuHidden): Deleted.
- WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::didShowContextMenu): Added.
(WebKit::WebPage::didDismissContextMenu): Added.
(WebKit::WebPage::mouseEvent):
Drive-by: Renamem_contextMenuShowingtom_waitingForContextMenuToShowfor clarity.
Tools:
- WebKitTestRunner/cocoa/TestRunnerWKWebView.mm:
(-[TestRunnerWKWebView dismissActiveMenu]):
(-[TestRunnerWKWebView immediatelyDismissContextMenuIfNeeded]):
(-[TestRunnerWKWebView _dismissAllContextMenuInteractions]): Added.
LayoutTests:
- media/modern-media-controls/overflow-support/button-state.html: Added.
- media/modern-media-controls/overflow-support/button-state-expected.txt: Added.
- media/modern-media-controls/overflow-support/playback-speed.html:
- media/modern-media-controls/tracks-support/click-track-in-contextmenu.html:
Adjust how these tests wait for and dismiss the contextmenu.
- 8:02 PM Changeset in webkit [280373] by
-
- 1 copy in tags/Safari-612.1.24.11.6
Tag Safari-612.1.24.11.6.
- 8:01 PM Changeset in webkit [280372] by
-
- 2 edits in branches/safari-612.1.24.11-branch/Source/WebKit
Cherry-pick r280351. rdar://problem/81196087
The bundle path of downlevel Safari is wrong
https://bugs.webkit.org/show_bug.cgi?id=228339
Reviewed by Jer Noble.
Fix the bundle path. The correct path is "/Library/Apple/System/Library/StagedFrameworks/Safari".
- Shared/Cocoa/WebPreferencesDefaultValuesCocoa.mm: (WebKit::isFeatureFlagEnabled):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@280351 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 7:58 PM Changeset in webkit [280371] by
-
- 8 edits in branches/safari-612.1.24.11-branch/Source
Versioning.
WebKit-7612.1.24.11.6
- 7:32 PM Changeset in webkit [280370] by
-
- 2 edits in trunk/Source/JavaScriptCore
Web Inspector: [Cocoa] "RemoteInspector XPC connection to relay failed." messages are confusing in StdErr
https://bugs.webkit.org/show_bug.cgi?id=228303
Reviewed by Darin Adler.
Remove overly verbose and confusing
WTFLogAlwaysmessages added in r278413, which can confuse applications
listening to stderr of a process using JavaScriptCore.
- inspector/remote/cocoa/RemoteInspectorCocoa.mm:
(Inspector::RemoteInspector::xpcConnectionFailed):
- 7:20 PM Changeset in webkit [280369] by
-
- 2 edits in trunk/Source/WebCore
[macOS] Stop away unpaired surrogate pair in findNextWordFromIndex:forward:
https://bugs.webkit.org/show_bug.cgi?id=228496
Reviewed by Darin Adler.
Replace unpaired surrogate pairs with the replacement character before calling findNextWordFromIndex:forward:
- platform/text/mac/TextBoundaries.mm:
(WebCore::findNextWordFromIndex):
- 6:38 PM Changeset in webkit [280368] by
-
- 1 edit3 deletes in trunk/LayoutTests
[LayoutTests] Delete unused LayoutTests/inspector resources
https://bugs.webkit.org/show_bug.cgi?id=226800
Reviewed by Jonathan Bedard.
- inspector/console/resources/errors.css: Removed.
- inspector/dom/resources/highlight-iframe.html: Removed.
- inspector/network/resources/data-intercepted.json: Removed.
- 6:25 PM Changeset in webkit [280367] by
-
- 1 edit2 deletes in trunk/LayoutTests
Revert "Batch add test expectations for Monterey and iOS on Open Source"
This reverts commit 0b351bd1e35436f327b82ef38626748dba4b6bb6.
- 5:55 PM Changeset in webkit [280366] by
-
- 7 edits in trunk/Tools
[GTK][WPE] Fix wrong path to GLIB dependencies introduced in r280354.
Unreviewed follow-up fix.
- gtk/dependencies/apt:
- gtk/dependencies/dnf:
- gtk/dependencies/pacman:
- wpe/dependencies/apt:
- wpe/dependencies/dnf:
- wpe/dependencies/pacman:
- 5:47 PM Changeset in webkit [280365] by
-
- 2 edits in trunk/Tools
[build.webkit.org] Simulator temp files filling up disk
https://bugs.webkit.org/show_bug.cgi?id=228335
<rdar://problem/81171840>
Reviewed by Aakash Jain.
- CISupport/kill-old-processes:
(main): Delete stale simulator files.
- 5:21 PM Changeset in webkit [280364] by
-
- 5 edits in trunk
ProxyObject callees should be skipped during Function.prototype.caller resolution
https://bugs.webkit.org/show_bug.cgi?id=228341
Reviewed by Yusuke Suzuki.
Source/JavaScriptCore:
Just like a bound function, a Proxy with nullish "apply" handler merely forwards
Call to its target [1], without pushing onto the execution context stack.
This fact is also noted in Function.prototype.{caller,arguments} reflection proposal [2].
This patch aligns JSC with V8 and SpiderMonkey if Proxy's "apply" handler is userland
or nullish. However, since JSC implements proper tail calls,Function.prototype.caller
result is divergent from other engines if the handler isReflect.apply, which performs
a tail call that gets optimized away [2] (unless called by another Proxy).
[1]: https://tc39.es/ecma262/#sec-proxy-object-internal-methods-and-internal-slots-call-thisargument-argumentslist (step 8)
[2]: https://github.com/claudepache/es-legacy-function-reflection/blob/master/spec.md#get-functionprototypecaller (see notes)
- runtime/FunctionPrototype.cpp:
(JSC::RetrieveCallerFunctionFunctor::operator() const):
LayoutTests:
- js/caller-property-expected.txt:
- js/script-tests/caller-property.js:
- 5:12 PM Changeset in webkit [280363] by
-
- 2 edits in trunk/LayoutTests
[BigSur wk2 Debug arm64] fast/text/emoji-overlap.html is a flaky image-only failure.
https://bugs.webkit.org/show_bug.cgi?id=228528.
Unreviewed test gardening.
- platform/mac-wk2/TestExpectations:
- 4:59 PM Changeset in webkit [280362] by
-
- 1 edit1 add in trunk/Tools
Add .gitignore file for CISupport
https://bugs.webkit.org/show_bug.cgi?id=228113
Reviewed by Jonathan Bedard.
- CISupport/.gitignore: Added.
- 4:48 PM Changeset in webkit [280361] by
-
- 7 edits in trunk/Source
[GPU Process] Code cleanup after r280356
https://bugs.webkit.org/show_bug.cgi?id=228495
Reviewed by Wenson Hsieh.
Source/WebCore:
3 things:
- Rename cacheNativeImage()/cacheFont() to recordNativeImageUse()/recordFontUse() since it does more
than caching now
- Mark overridden functions as final in RemoteImageBufferProxy because no class inherits from it
- Remove unnecessary WebCore:: where it isn't necessary
No new tests because there is no behavior change.
- platform/graphics/displaylists/DisplayListRecorder.cpp:
(WebCore::DisplayList::Recorder::putPixelBuffer):
(WebCore::DisplayList::Recorder::recordNativeImageUse):
(WebCore::DisplayList::Recorder::appendStateChangeItem):
(WebCore::DisplayList::Recorder::appendDrawGlyphsItemWithCachedFont):
(WebCore::DisplayList::Recorder::drawImageBuffer):
(WebCore::DisplayList::Recorder::drawNativeImage):
(WebCore::DisplayList::Recorder::drawPattern):
(WebCore::DisplayList::Recorder::cacheNativeImage): Deleted.
- platform/graphics/displaylists/DisplayListRecorder.h:
(WebCore::DisplayList::Recorder::Delegate::recordNativeImageUse):
(WebCore::DisplayList::Recorder::Delegate::recordFontUse):
(WebCore::DisplayList::Recorder::Delegate::cacheNativeImage): Deleted.
(WebCore::DisplayList::Recorder::Delegate::cacheFont): Deleted.
Source/WebKit:
- WebProcess/GPU/graphics/RemoteImageBufferProxy.h:
(WebKit::RemoteImageBufferProxy::putPixelBuffer):
- WebProcess/GPU/graphics/RemoteResourceCacheProxy.cpp:
(WebKit::RemoteResourceCacheProxy::recordNativeImageUse):
(WebKit::RemoteResourceCacheProxy::recordFontUse):
(WebKit::RemoteResourceCacheProxy::cacheNativeImage): Deleted.
(WebKit::RemoteResourceCacheProxy::cacheFont): Deleted.
- WebProcess/GPU/graphics/RemoteResourceCacheProxy.h:
- 4:45 PM Changeset in webkit [280360] by
-
- 2 edits in trunk/LayoutTests
Batch add test expectations for Monterey and iOS on Open Source
https://bugs.webkit.org/show_bug.cgi?id=228200
Unreviewed test gardening.
- platform/mac/platform/mac/fast/text/international/Geeza-Pro-vertical-metrics-adjustment-expected.txt:
- 4:30 PM Changeset in webkit [280359] by
-
- 5 edits2 adds in trunk
[iOS] REGRESSION: Tapping a <select> element does not show a menu on many websites
https://bugs.webkit.org/show_bug.cgi?id=228340
rdar://77137768
Reviewed by Wenson Hsieh.
Source/WebKit:
Many sites add a touchend event listener to their select elements, that
is responsible for focusing the element. With the introduction of
asynchronous touch events, the single tap gesture recognizer can be
deferred to the point it occurs after the UIProcess is notified that an
element has been focused. This is problematic, since the UIProcess
creates and displays inputs peripherals in response to element focus,
but the gesture recognizer can dismiss presented peripherals via
-[WKFormPeripheral endEditing]. Consequently, many sites immediately
display and dismiss the input peripheral.
To fix, only call
-[WKFormPeripheral endEditing]if the peripheral
was already being displayed once the tap gesture began. This ensures we
do not immediately display and dismiss peripherals.
Note that with the redesigned form controls, the call to
endEditingis
unnecessary, as the presented views handle their own dismissal. However,
the logic is still needed for the old select control (using a keyboard
input view), to commit value changes. The old control is displayed on
apps linked against iOS 13 or earlier. This behavior is tested in
fast/forms/ios/select-picker-change-and-focus-another-select.html.
Test: fast/forms/ios/form-control-refresh/select/focus-select-in-touchend.html
- UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView _singleTapIdentified:]):
(-[WKContentView _singleTapRecognized:]):
- UIProcess/ios/forms/WKFormPeripheral.h:
- UIProcess/ios/forms/WKFormPeripheralBase.h:
LayoutTests:
Added a test to verify that tapping a select element, that focuses itself
inside a touchend listener, displays a menu.
- fast/forms/ios/form-control-refresh/select/focus-select-in-touchend-expected.txt: Added.
- fast/forms/ios/form-control-refresh/select/focus-select-in-touchend.html: Added.
- 4:19 PM Changeset in webkit [280358] by
-
- 2 edits in trunk/Source/WebKit
Safari hangs when entering PiP from (element) fullscreen
https://bugs.webkit.org/show_bug.cgi?id=228332
Reviewed by Eric Carlson.
When a video element's ancestor element is in fullscreen and the video element
is entering picture-in-picture,WKFullScreenWindowControllerin the UI process
will notify the WebContent process that the ancestor element needs to exit fullscreen.
However, some sites calldocument.webkitExitFullscreen()to request the ancestor
element to exit fullscreen proactively. Both WebContent process and UI process will
try to do the same thing and may lead to a race condition.
That was not an issue before r274460 because
WebFullScreenManager::requestExitFullScreen()
will ignore the request from the UI process if the WebContent process has already
started the steps to exit fullscreen.
This patch stops the UI process sending the exit fullscreen request if a WebContent
process has started the steps to exit fullscreen.
Manually tested.
- UIProcess/mac/WKFullScreenWindowController.mm:
(-[WKFullScreenWindowController didEnterPictureInPicture]):
- 4:17 PM Changeset in webkit [280357] by
-
- 2 edits in trunk/LayoutTests
[ iOS ] media/track/track-in-band-duplicate-tracks-when-source-changes.html is a flaky timeout.
https://bugs.webkit.org/show_bug.cgi?id=228364
Unreviewed test gardening.
- platform/ios-wk2/TestExpectations:
- 3:52 PM Changeset in webkit [280356] by
-
- 5 edits in trunk/Source
[GPU Process] Start tracking resource uses for NativeImages and Fonts
https://bugs.webkit.org/show_bug.cgi?id=228224
Reviewed by Said Abou-Hallawa.
Source/WebCore:
This is part 3 of https://bugs.webkit.org/show_bug.cgi?id=228216.
This patch triggers the infrastructure added in https://bugs.webkit.org/show_bug.cgi?id=228222 by tracking
resource use counts in the web process. RemoteResourceCacheProxy already is notified whenever a resource
is used, so it records how many of these notifications it receives, and sends that count to the GPU process
with the release message. When the GPU process replays the display lists, it also keeps track of how many
uses it encountered for the resource, via calling through the Replayer::Delegate.
Covered by existing tests.
- platform/graphics/displaylists/DisplayListReplayer.cpp:
(WebCore::DisplayList::applyNativeImageItem):
(WebCore::DisplayList::applySetStateItem):
(WebCore::DisplayList::applyFontItem):
(WebCore::DisplayList::Replayer::applyItem):
Source/WebKit:
This patch extends the existing resource tracking HashMaps used in RemoteResourceCacheProxy to continue
to record what they were recording before, but also include this new resource use count information.
- WebProcess/GPU/graphics/RemoteResourceCacheProxy.cpp:
(WebKit::RemoteResourceCacheProxy::~RemoteResourceCacheProxy):
(WebKit::RemoteResourceCacheProxy::cacheNativeImage):
(WebKit::RemoteResourceCacheProxy::cacheFont):
(WebKit::RemoteResourceCacheProxy::releaseNativeImage):
(WebKit::RemoteResourceCacheProxy::clearFontMap):
(WebKit::RemoteResourceCacheProxy::finalizeRenderingUpdateForFonts):
- WebProcess/GPU/graphics/RemoteResourceCacheProxy.h:
- 3:52 PM Changeset in webkit [280355] by
-
- 2 edits in trunk/LayoutTests
Batch add test expectations for Monterey and iOS on Open Source
https://bugs.webkit.org/show_bug.cgi?id=228200
Unreviewed test gardening.
- platform/mac-wk1/TestExpectations:
- 3:51 PM Changeset in webkit [280354] by
-
- 7 edits3 copies1 add in trunk/Tools
[GTK][WPE] Move WebKitGTK and WPE dependency packages to a common GLIB list
https://bugs.webkit.org/show_bug.cgi?id=228326
Reviewed by Adrian Perez de Castro.
WebKitGTK and WPE share many dependency packages. Until now each port
maintained its own list of dependencies. It was a common mistake to
add a new package dependency to one of the ports but not to the other
one.
This patch adds a common GLIB for dependency packages, which can help
prevent mistakes like the one described above.
- glib/dependencies/apt: Copied from Tools/wpe/dependencies/apt.
- glib/dependencies/dnf: Copied from Tools/wpe/dependencies/dnf.
- glib/dependencies/pacman: Copied from Tools/wpe/dependencies/pacman.
- gtk/dependencies/apt:
- gtk/dependencies/dnf:
- gtk/dependencies/pacman:
- wpe/dependencies/apt:
- wpe/dependencies/dnf:
- wpe/dependencies/pacman:
- 3:42 PM Changeset in webkit [280353] by
-
- 1 edit4 adds in trunk/LayoutTests
Batch add test expectations for Monterey and iOS on Open Source
https://bugs.webkit.org/show_bug.cgi?id=228200
Uneviewed test gardening.
- platform/ios-14-wk2/imported/w3c/web-platform-tests/css/cssom/css-style-attr-decl-block-expected.txt: Added.
- platform/ios-wk2/imported/w3c/web-platform-tests/css/cssom/css-style-attr-decl-block-expected.txt: Added.
- 3:33 PM Changeset in webkit [280352] by
-
- 2 edits in trunk/LayoutTests
[ iOS Release ] imported/w3c/web-platform-tests/webrtc/RTCRtpReceiver-getContributingSources.https.html is a flaky failure.
https://bugs.webkit.org/show_bug.cgi?id=228462
RUnreviewed test gardening.
- platform/ios-wk2/TestExpectations:
- 3:15 PM Changeset in webkit [280351] by
-
- 2 edits in trunk/Source/WebKit
The bundle path of downlevel Safari is wrong
https://bugs.webkit.org/show_bug.cgi?id=228339
Reviewed by Jer Noble.
Fix the bundle path. The correct path is "/Library/Apple/System/Library/StagedFrameworks/Safari".
- Shared/Cocoa/WebPreferencesDefaultValuesCocoa.mm:
(WebKit::isFeatureFlagEnabled):
- 2:44 PM Changeset in webkit [280350] by
-
- 2 edits in trunk/LayoutTests
[ BigSur Release arm64 ] fast/speechsynthesis/speech-synthesis-speak-empty-string.html is a flaky failure.
https://bugs.webkit.org/show_bug.cgi?id=228396.
Unreviewed test gardening.
- platform/mac/TestExpectations:
- 2:36 PM Changeset in webkit [280349] by
-
- 5 edits in trunk/Source/ThirdParty/ANGLE
3.5 MB system-wide footprint impact due to thread-locals in libANGLE
https://bugs.webkit.org/show_bug.cgi?id=228240
rdar://79504783
Reviewed by Ken Russell and Geoff Garen.
Apple's dyld has a bug where thread_local variables are dirtied on
process launch, causing a memory regression. Work around this
temporarily in ANGLE by using pthread thread local storage.
I don't expect this to be upstreamed to ANGLE unless they
want it. If it isn't, this patch will have to be applied until
the dyld bug is fixed.
- src/libANGLE/Context.cpp: Implement some methods to get/set what was
the global variable gCurrentValidContext.
(gl::GetCurrentValidContextTLSIndex):
(gl::GetCurrentValidContextTLS):
(gl::SetCurrentValidContextTLS):
(gl::Context::setContextLost):
- src/libANGLE/Context.h:
- src/libGLESv2/global_state.cpp: Ditto, but for gCurrentThread.
(egl::GetCurrentThreadTLSIndex):
(egl::GetCurrentThreadTLS):
(egl::SetCurrentThreadTLS):
(egl::GetCurrentThread):
(egl::SetContextCurrent):
- src/libGLESv2/global_state.h:
(gl::GetGlobalContext):
(gl::GetValidGlobalContext):
- 11:55 AM Changeset in webkit [280348] by
-
- 2 edits in trunk/LayoutTests
[ iOS ] media/track/track-forced-subtitles-in-band.html is a flaky timeout.
https://bugs.webkit.org/show_bug.cgi?id=228334
Unreviewed test gardening.
- platform/ios-wk2/TestExpectations:
- 11:52 AM Changeset in webkit [280347] by
-
- 2 edits in trunk/Tools
[results.webkit.org] Tooltips should remain visible when hovering over commit representations
https://bugs.webkit.org/show_bug.cgi?id=228330
Patch by Kevin Neal <kevin_neal@apple.com> on 2021-07-27
Reviewed by Jonathan Bedard.
- Scripts/libraries/resultsdbpy/resultsdbpy/view/static/js/timeline.js:
(xAxisFromScale):
- 11:45 AM Changeset in webkit [280346] by
-
- 2 edits in trunk/LayoutTests
[BigSur wk2 Release arm64] fast/selectors/selection-window-inactive-stroke-color.html is a flaky image-only failure.
https://bugs.webkit.org/show_bug.cgi?id=228337.
Unreviewed test gardening.
- platform/mac-wk2/TestExpectations:
- 11:14 AM Changeset in webkit [280345] by
-
- 2 edits in trunk/Source/WebKit
Fix WebProcess sandbox profile when ENABLE_SANDBOX_MESSAGE_FILTER is disabled
https://bugs.webkit.org/show_bug.cgi?id=228220
Patch by Saagar Jha <saagar@saagarjha.com> on 2021-07-27
Reviewed by Per Arne Vollan.
A couple of new filters turn into empty lists when ENABLE_SANDBOX_MESSAGE_FILTER is NO;
we shouldn't be evaluating them at all, so we need to move the check out.
- WebProcess/com.apple.WebProcess.sb.in: Factor the conditional check out of the filters.
- 11:00 AM Changeset in webkit [280344] by
-
- 1 edit33 adds in trunk/LayoutTests
Additional new baselines for Monterey
https://bugs.webkit.org/show_bug.cgi?id=228090
Unreviewed test gardening.
- platform/mac-bigsur-wk2/http/tests/websocket/tests/hybi/close-and-server-script-exception-expected.txt: Added.
- platform/mac-bigsur-wk2/http/tests/websocket/tests/hybi/close-code-and-reason-expected.txt: Added.
- platform/mac-bigsur-wk2/http/tests/websocket/tests/hybi/handshake-fail-by-no-cr-expected.txt: Added.
- platform/mac-bigsur-wk2/http/tests/websocket/tests/hybi/handshake-fail-by-null-char-in-status-expected.txt: Added.
- platform/mac-bigsur-wk2/http/tests/websocket/tests/hybi/handshake-ok-with-http-version-beyond-1_1-expected.txt: Added.
- platform/mac-bigsur-wk2/http/tests/websocket/tests/hybi/send-object-tostring-check-expected.txt: Added.
- platform/mac-bigsur-wk2/http/tests/websocket/tests/hybi/workers/close-code-and-reason-expected.txt: Added.
- platform/mac-catalina-wk2/http/tests/websocket/tests/hybi/send-object-tostring-check-expected.txt: Added.
- platform/mac-wk2/http/tests/websocket/tests/hybi/alert-in-event-handler-expected.txt: Added.
- platform/mac-wk2/http/tests/websocket/tests/hybi/client-close-2-expected.txt: Added.
- platform/mac-wk2/http/tests/websocket/tests/hybi/client-close-expected.txt: Added.
- platform/mac-wk2/http/tests/websocket/tests/hybi/close-and-server-script-exception-expected.txt: Added.
- platform/mac-wk2/http/tests/websocket/tests/hybi/close-code-and-reason-expected.txt: Added.
- platform/mac-wk2/http/tests/websocket/tests/hybi/handshake-fail-by-no-cr-expected.txt: Added.
- platform/mac-wk2/http/tests/websocket/tests/hybi/handshake-fail-by-null-char-in-status-expected.txt: Added.
- platform/mac-wk2/http/tests/websocket/tests/hybi/handshake-ok-with-http-version-beyond-1_1-expected.txt: Added.
- platform/mac-wk2/http/tests/websocket/tests/hybi/invalid-encode-length-expected.txt: Added.
- platform/mac-wk2/http/tests/websocket/tests/hybi/receive-arraybuffer-expected.txt: Added.
- platform/mac-wk2/http/tests/websocket/tests/hybi/send-object-tostring-check-expected.txt: Added.
- platform/mac-wk2/http/tests/websocket/tests/hybi/workers/close-code-and-reason-expected.txt: Added.
- platform/mac-wk2/http/tests/websocket/tests/hybi/workers/receive-arraybuffer-expected.txt: Added.
- platform/mac-wk2/http/tests/websocket/tests/hybi/zero-length-text-expected.txt: Added.
- 10:25 AM Changeset in webkit [280343] by
-
- 2 edits in trunk/LayoutTests
[iOS Release] 2 imported/w3c/web-platform-tests/worklets tests are flaky failing.
https://bugs.webkit.org/show_bug.cgi?id=228327
Unreviewed test gardening.
- platform/ios-wk2/TestExpectations:
- 10:20 AM Changeset in webkit [280342] by
-
- 5 edits in trunk
document.referrer value is missing trailing slash
https://bugs.webkit.org/show_bug.cgi?id=215080
Patch by Alex Christensen <achristensen@webkit.org> on 2021-07-27
Reviewed by John Wilander.
Source/WebCore:
This matches the behavior of Chrome and Firefox.
The solution is similar to that of bug 227795.
Covered by a few layout tests.
- dom/Document.cpp:
(WebCore::Document::referrer):
LayoutTests:
- http/tests/resourceLoadStatistics/downgrade-document-referrer-nested-third-party-iframe-expected.txt:
- http/tests/resourceLoadStatistics/downgrade-document-referrer-third-party-iframe-expected.txt:
- 9:34 AM Changeset in webkit [280341] by
-
- 3 edits in trunk
[CMake] Add WTF_CPU_RISCV64
https://bugs.webkit.org/show_bug.cgi?id=228322
Patch by Zan Dobersek <zdobersek@igalia.com> on 2021-07-27
Reviewed by Adrian Perez de Castro.
Define the WTF_CPU_RISCV64 CMake macro when the specified system
processor name begins with 'riscv64'. This should also cover potential
RISC-V processor names ingrained with specific ISA extensions that are
then detectable at compile-time through specified C macros.
For WTF_CPU_RISCV64, default to disabling JIT and FTL features at the
CMake level until they are properly supported. Defaulting to system
malloc can already be avoided, but CLoop is necessary for now.
- Source/cmake/WebKitCommon.cmake:
- Source/cmake/WebKitFeatures.cmake:
- 9:23 AM Changeset in webkit [280340] by
-
- 2 edits in trunk/LayoutTests
[iOS Release] imported/w3c/web-platform-tests/worklets/audio-worklet-service-worker-interception.https.html is flaky.
https://bugs.webkit.org/show_bug.cgi?id=228327
Unreviewed test gardening.
- platform/ios-wk2/TestExpectations:
- 4:57 AM Changeset in webkit [280339] by
-
- 3 edits9 adds in trunk/Tools
[GTK][WPE] Organize list of package dependencies into separated files
https://bugs.webkit.org/show_bug.cgi?id=228276
Reviewed by Adrian Perez de Castro.
When deploying a new bot from scratch for Ubuntu LTS, which builds
using system libraries, I realized the list of package dependencies
for WPE is not exhaustive.
This patch refactorizes the package dependencies list putting each
group of dependencies on its own file depending on platform (apt, dnf,
pacman and brew).
On a follow-up step I plan to put in common the WebKitGTK and WPE
dependencies plus add the missing WPE package dependencies. Also I'll
remove the duplicated packages that are currently happening in the
dependencies list of several platforms.
- gtk/dependencies/apt: Added.
- gtk/dependencies/brew: Added.
- gtk/dependencies/dnf: Added.
- gtk/dependencies/pacman: Added.
- gtk/install-dependencies:
- wpe/dependencies/apt: Added.
- wpe/dependencies/dnf: Added.
- wpe/dependencies/pacman: Added.
- wpe/install-dependencies:
- 2:44 AM Changeset in webkit [280338] by
-
- 2 edits in trunk/LayoutTests
Unskip some css-flexbox WPT tests that pass
https://bugs.webkit.org/show_bug.cgi?id=228320
Patch by Rob Buis <rbuis@igalia.com> on 2021-07-27
Reviewed by Manuel Rego Casasnovas.
Unskip some css-flexbox WPT tests that pass.