Timeline
Mar 29, 2021:
- 11:35 PM Changeset in webkit [275197] by
-
- 2 edits in trunk/Source/WebKit
Safari crashed and lost all tabs, after unlocking sleeping device
https://bugs.webkit.org/show_bug.cgi?id=223832
<rdar://75555287>
Reviewed by David Kilzer.
A speculative fix for this crash. A possible explanation from the crash log suggests that the protectedThis
could be elided because of compiler optimization given it is not used in the block. To prevent such optimization,
protectedThis is therefore used explicitly in the block.
- UIProcess/Cocoa/SOAuthorization/SOAuthorizationSession.mm:
(WebKit::SOAuthorizationSession::dismissViewController):
- 7:42 PM Changeset in webkit [275196] by
-
- 2 edits in trunk/Tools
Avoid calling
xcodebuild -showsdkswhere possible.
https://bugs.webkit.org/show_bug.cgi?id=223727
Reviewed by Sam Weinig.
run-minibrowser needs to know what port it's running on, since that
affects the build directory to look in to find the MiniBrowser binary.
On macOS, webkitdirs.pm's determinePortName ends up running
xcodebuild -showsdksto see if the current SDK has an internal
variant available, but this is slow. But we don't need to know the
exact SDK name here, just the SDK platform name, to determine the
port name.
So we shuffle some code around to avoid calling
xcodebuild -showsdks
where we can. This reduces the time spent in run-minibrowser before
MiniBrowser is launched (crudely measured with `time run-minibrowser
--help`) from 2s to 0.6s on this machine.
- Scripts/webkitdirs.pm:
(readXcodeUserDefault):
(determineArchitecture):
(argumentsForConfiguration):
(availableXcodeSDKs):
(isValidXcodeSDKPlatformName):
(determineXcodeSDKPlatformName):
(determineXcodeSDK):
(setXcodeSDK):
(xcodeSDKPlatformName):
(determinePortName):
- 7:27 PM Changeset in webkit [275195] by
-
- 34 edits2 deletes in trunk/Tools
[resultsdbpy] Return new-style commits
https://bugs.webkit.org/show_bug.cgi?id=223262
<rdar://problem/75483361>
Reviewed by Dewei Zhu.
- Scripts/libraries/resultsdbpy/resultsdbpy/init.py: Bump version.
- Scripts/libraries/resultsdbpy/resultsdbpy/controller/commit.py: Removed.
- Scripts/libraries/resultsdbpy/resultsdbpy/controller/commit_controller.py:
(_find_comparison): Replace id with ref.
(uuid_range_for_commit_range_query): Support both id and ref in REST API.
(uuid_range_for_query): Ditto.
(CommitController._find): Ditto.
(CommitController.register): Return webkitscmpy.Commit object.
- Scripts/libraries/resultsdbpy/resultsdbpy/controller/commit_controller_unittest.py:
(CommitControllerTest.test_branches): WebKit's default branch is now main.
(CommitControllerTest.test_register_with_full_commit): Registered commits should be webkitscmpy Commit objects.
(CommitControllerTest.test_find_range_id): Returned revisions are now integers.
- Scripts/libraries/resultsdbpy/resultsdbpy/controller/commit_unittest.py: Removed.
- Scripts/libraries/resultsdbpy/resultsdbpy/controller/upload_controller_unittest.py:
(UploadControllerPostTest.test_upload): WebKit commits are under-pinned by Git now.
- Scripts/libraries/resultsdbpy/resultsdbpy/model/archive_context.py:
(ArchiveContext.register): Use webkitscmpy Commit objects.
- Scripts/libraries/resultsdbpy/resultsdbpy/model/ci_context.py:
(CIContext.register): Use webkitscmpy Commit objects.
- Scripts/libraries/resultsdbpy/resultsdbpy/model/commit_context.py:
(CommitContext.CommitModel): Renamed from CommitModelMk2.
(CommitContext.CommitByUuidAscending): Renamed from CommitByUuidAscendingMk2.
(CommitContext.CommitByUuidDescending): Renamed from CommitByUuidDescendingMk2.
(CommitContext.init): Remove old tables.
(CommitContext.timestamp_to_uuid): Use webkitscmpy Commit objects.
(CommitContext.branch_keys_for_commits): All default branches should be treated the same.
(CommitContext.find_commits_by_ref): Find commits by revision, hash and identifier.
(CommitContext.register):
(CommitContext.register_commit): Save commit to new tables.
(CommitContext.url): Pass commit object to repository url generator.
(CommitContext.CommitByID): Deleted.
(CommitContext.CommitModelMk2): Renamed to CommitModel.
(CommitContext.CommitByUuidAscendingMk2): Renamed to CommitByUuidAscending.
(CommitContext.CommitByUuidDescendingMk2): Renamed to CommitByUuidDescending.
(CommitContext.find_commits_by_id): Deleted.
- Scripts/libraries/resultsdbpy/resultsdbpy/model/commit_context_unittest.py:
(CommitContextTest): Use ref instead of id.
- Scripts/libraries/resultsdbpy/resultsdbpy/model/failure_context.py:
(FailureContext.register): Use webkitscmpy Commit objects.
- Scripts/libraries/resultsdbpy/resultsdbpy/model/mock_model_factory.py:
(MockModelFactory):
(MockModelFactory.webkit): Mock both Subversion and GitHub for WebKit.
(MockModelFactory.create):
- Scripts/libraries/resultsdbpy/resultsdbpy/model/repository.py:
(Repository.commit): By default, fully define commits.
(StashRepository.commit): Ditto.
(StashRepository.url_for_commit): Create a URL for a commit object.
(WebKitRepository.init): Use both GitHub and Subversion.
(WebKitRepository.commit): Determine which remote to use based on provided arguments.
(WebKitRepository.url_for_commit): Create a URL for a commit object.
(WebKitRepository.representations): WebKit commits can be represented by hashes.
(Repository.commit_for_id): Deleted.
(StashRepository.commit_for_id): Deleted.
(WebKitRepository.commit_for_id): Deleted.
- Scripts/libraries/resultsdbpy/resultsdbpy/model/repository_unittest.py:
(RepositoryTest.test_svn): WebKit default branch is now main.
- Scripts/libraries/resultsdbpy/resultsdbpy/model/suite_context.py:
(SuiteContext.register): Use webkitscmpy Commit objects.
- Scripts/libraries/resultsdbpy/resultsdbpy/model/test_context.py:
(TestContext.register): Use webkitscmpy Commit objects.
- Scripts/libraries/resultsdbpy/resultsdbpy/model/upload_context.py:
(UploadContext.UploadsByConfigurationLegacy.unpack): Use webkitscmpy Commit objects.
(UploadContext.UploadsByConfiguration.unpack): Ditto.
(UploadContext._do_job_for_key): Ditto.
(UploadContext.upload_test_results): Ditto.
- Scripts/libraries/resultsdbpy/resultsdbpy/view/archive_view_unittest.py:
(ArchiveViewUnittest.register_archive): Use webkitscmpy Commit objects.
- Scripts/libraries/resultsdbpy/resultsdbpy/view/commit_view.py:
(CommitView.commit): Use webkitscmpy Commit objects.
(CommitView.info): Ditto.
(CommitView.previous): Ditto.
(CommitView.next): Ditto.
- Scripts/libraries/resultsdbpy/resultsdbpy/view/static/js/commit.js:
(Commit):
(Commit.prototype.label): Only print identifier/hash/revision if they are defined.
(_CommitBank.prototype._loadSiblings): Use ref over id.
- Scripts/libraries/resultsdbpy/resultsdbpy/view/static/js/drawer.js: main is a default branch.
- Scripts/libraries/resultsdbpy/resultsdbpy/view/static/js/timeline.js:
(xAxisFromScale): Only print author if the author exists.
- Scripts/libraries/resultsdbpy/resultsdbpy/view/templates/commit.html: prefer ref over id, use
webkitscmpy Commit object in Jinja template.
- Scripts/libraries/resultsdbpy/resultsdbpy/view/templates/documentation.html: Update documentation
to match webkitscmpy Commit object.
- Scripts/libraries/resultsdbpy/resultsdbpy/view/templates/investigate.html: main is a default branch.
- Scripts/libraries/resultsdbpy/resultsdbpy/view/templates/search.html: Correct CommitRepresentation callback.
- Scripts/libraries/resultsdbpy/resultsdbpy/view/templates/suite_results.html: Ditto.
- Scripts/libraries/resultsdbpy/setup.py: Bump version.
- Scripts/libraries/webkitscmpy/setup.py: Ditto.
- Scripts/libraries/webkitscmpy/webkitscmpy/init.py: Ditto.
- Scripts/libraries/webkitscmpy/webkitscmpy/commit.py:
(Commit.Encoder.default): Handle dict and list in JSON correctly.
(Commit.uuid): uuid should be 'None' when timestamp is 'None'.
(Commit.repr): Return a ? for an undefined commit.
- Scripts/libraries/webkitscmpy/webkitscmpy/mocks/remote/bitbucket.py:
(BitBucket.request): Do not add git-svn-id for undefined revision.
- Scripts/libraries/webkitscmpy/webkitscmpy/mocks/remote/git_hub.py:
(GitHub._commit_response): Fix unit tests.
- Scripts/libraries/webkitscmpy/webkitscmpy/scm_base.py:
(ScmBase): Do not mach git-svn ID with a space before it.
- 5:52 PM Changeset in webkit [275194] by
-
- 1 copy in tags/Safari-612.1.9
Tag Safari-612.1.9.
- 5:25 PM Changeset in webkit [275193] by
-
- 2 edits in trunk/Source/WebCore
Remove unused struct WebCore::AlternativeTextController::AlternativeTextInfo
<https://webkit.org/b/223902>
Reviewed by Wenson Hsieh.
- editing/AlternativeTextController.h:
- Remove unused struct definition.
- 4:28 PM Changeset in webkit [275192] by
-
- 3 edits in branches/safari-611.1.21.161-branch/Tools
Unreviewed build fix, cherry-pick parts of r273181. rdar://75904391
- TestWebKitAPI/cocoa/TestNavigationDelegate.h:
- TestWebKitAPI/cocoa/TestNavigationDelegate.mm:
(-[TestNavigationDelegate waitForDidFailProvisionalNavigation]):
- 4:24 PM Changeset in webkit [275191] by
-
- 2 edits in trunk/LayoutTests
[MacOS Debug] http/tests/security/contentSecurityPolicy/frame-src-cross-origin-load.html is a flakey failure
https://bugs.webkit.org/show_bug.cgi?id=222748
Unreviewed test gardening.
- platform/mac/TestExpectations:
- 4:21 PM Changeset in webkit [275190] by
-
- 5 edits in trunk/Source/JavaScriptCore
[JSC] Use helper method when possible to store data in the callframe header
https://bugs.webkit.org/show_bug.cgi?id=223432
Patch by Xan López <Xan Lopez> on 2021-03-29
Reviewed by Yusuke Suzuki.
A bunch of the direct stores to the callframe header are zeroing
out the codeblock slot. Create a helper method to do that and use
it accordingly. For the rest, use emitPutToCallFrameHeader, which
already does the right thing. Also, remove a lot of unused helper
methods in AssemblyHelpers (which have been updated for no reason
throughout the years).
- jit/AssemblyHelpers.h:
(JSC::AssemblyHelpers::emitPutToCallFrameHeaderBeforePrologue): Deleted.
(JSC::AssemblyHelpers::emitPutPayloadToCallFrameHeaderBeforePrologue): Deleted.
(JSC::AssemblyHelpers::emitPutTagToCallFrameHeaderBeforePrologue): Deleted.
- wasm/js/JSToWasm.cpp:
(JSC::Wasm::createJSToWasmWrapper):
- wasm/js/WasmToJS.cpp:
(JSC::Wasm::wasmToJS):
- wasm/js/WebAssemblyFunction.cpp:
(JSC::WebAssemblyFunction::jsCallEntrypointSlow):
- 4:18 PM Changeset in webkit [275189] by
-
- 4 edits2 adds in trunk
REGRESSION(r274992): Nullptr crash in FontCache::retrieveOrAddCachedFonts
https://bugs.webkit.org/show_bug.cgi?id=223858
<rdar://75883697>
Reviewed by Darin Adler and Ryosuke Niwa.
Source/WebCore:
Stop using a hash as key in the FontCascadeCache. Instead, use HashTraits and use
FontCascadeCacheKey as key.
Test: fonts/font-cache-crash.html
- platform/graphics/FontCache.cpp:
(WebCore::FontCache::retrieveOrAddCachedFonts):
(WTF::FontCascadeCacheKeyHash::hash):
- platform/graphics/FontCache.h:
(WebCore::FontCascadeCacheKey::operator== const):
(WTF::FontCascadeCacheKeyHash::equal):
(WTF::HashTraits<WebCore::FontCascadeCacheKey>::emptyValue):
(WTF::HashTraits<WebCore::FontCascadeCacheKey>::constructDeletedValue):
(WTF::HashTraits<WebCore::FontCascadeCacheKey>::isDeletedValue):
LayoutTests:
Add layout test coverage.
- fonts/font-cache-crash-expected.txt: Added.
- fonts/font-cache-crash.html: Added.
- 3:57 PM Changeset in webkit [275188] by
-
- 2 edits in trunk/Source/WebKit
[Big Sur arm64] TestWebKitAPI.WebKit.AccessibilityReduceMotion is a flaky crash
https://bugs.webkit.org/show_bug.cgi?id=222824
Reviewed by Tim Horton.
Use smart pointers instead of storing raw ObjC pointers as ivars.
- UIProcess/Cocoa/PreferenceObserver.mm:
(-[WKUserDefaults findPreferenceChangesAndNotifyForKeys:toValuesForKeys:]):
- 3:55 PM Changeset in webkit [275187] by
-
- 8 edits2 adds in trunk
Propagate user gestures through
requestAnimationFramejust likesetTimeout
https://bugs.webkit.org/show_bug.cgi?id=223775
<rdar://problem/75860868>
Reviewed by Geoffrey Garen.
Source/WebCore:
setTimeoutandrequestAnimationFrameare used somewhat interchangeably on the web.
There should be similar features/affordances for both so that if a developer decides to use
a display-linked animation "loop" instead of a strictly time-based delay (or even a "loop")
they're able to do similar things in the callback/handler.
Test: fast/animation/request-animation-frame-propagate-user-gesture.html
- dom/ScriptedAnimationController.h:
- dom/ScriptedAnimationController.cpp:
(WebCore::ScriptedAnimationController::resume):
(WebCore::ScriptedAnimationController::registerCallback):
(WebCore::ScriptedAnimationController::cancelCallback):
(WebCore::ScriptedAnimationController::serviceRequestAnimationFrameCallbacks):
Create a private struct for holding more data in the list of callbacks than just the
callback itself. For now, the only other data saved is aRefPtr<UserGestureToken>.
- testing/Internals.idl:
- testing/Internals.h:
- testing/Internals.cpp:
(WebCore::Internals::withoutUserGesture): Added.
Add a way for tests to guaranteed run arbitrary code without a user gesture.
LayoutTests:
- editing/pasteboard/dom-paste/dom-paste-requires-user-gesture.html:
- fast/animation/request-animation-frame-propagate-user-gesture.html: Added.
- fast/animation/request-animation-frame-propagate-user-gesture-expected.txt: Added.
- 3:53 PM Changeset in webkit [275186] by
-
- 11 edits4 adds in trunk
Add a way for internal clients to hit-test for selectable text in user agent shadow roots
https://bugs.webkit.org/show_bug.cgi?id=223894
<rdar://problem/75968068>
Reviewed by Tim Horton.
Source/WebKit:
Augment some Objective-C injected bundle SPI to allow internal clients to hit-test for selectable text,
including content in UA shadow roots. Refer to <rdar://problem/75753666> for more context.
Tests: InjectedBundleHitTest.TextParagraph
InjectedBundleHitTest.ImageOverlay
- WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInFrame.h:
- WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInFrame.mm:
(-[WKWebProcessPlugInFrame hitTest:options:]):
Add a new version of
-hitTest:that takes hit testing options (for now, the only option is whether or not we
should allow UA shadow root content when hit-testing).
- WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInNodeHandle.h:
- WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInNodeHandle.mm:
(-[WKWebProcessPlugInNodeHandle isSelectableTextNode]):
Add a readonly getter to return whether or not the hit-tested node is a selectable text node.
- WebProcess/InjectedBundle/DOM/InjectedBundleNodeHandle.cpp:
(WebKit::InjectedBundleNodeHandle::isSelectableTextNode const):
- WebProcess/InjectedBundle/DOM/InjectedBundleNodeHandle.h:
- WebProcess/WebPage/WebFrame.cpp:
(WebKit::WebFrame::hitTest const):
- WebProcess/WebPage/WebFrame.h:
(WebKit::WebFrame::defaultHitTestRequestTypes):
Tools:
Add a new API test to exercise
-[WKWebProcessPlugInFrame hitTest:options:].
- TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
- TestWebKitAPI/Tests/WebKit/InjectedBundleHitTest.mm: Added.
(-[WKWebViewWithHitTester hasSelectableTextAt:]):
(TestWebKitAPI::createWebViewWithHitTester):
(TestWebKitAPI::TEST):
- TestWebKitAPI/Tests/WebKit/simple-responsive-page.html: Added.
- TestWebKitAPI/Tests/WebKitCocoa/InjectedBundleHitTestPlugIn.mm: Added.
(-[InjectedBundleHitTestPlugIn webProcessPlugIn:didCreateBrowserContextController:]):
(-[InjectedBundleHitTestPlugIn webProcessPlugInBrowserContextController:didClearWindowObjectForFrame:inScriptWorld:]):
(-[InjectedBundleHitTestPlugIn webProcessPlugInBrowserContextController:didFinishLoadForFrame:]):
(-[InjectedBundleHitTestPlugIn hasSelectableTextAt:completionHandler:]):
(-[InjectedBundleHitTestPlugIn dealloc]):
- TestWebKitAPI/Tests/WebKitCocoa/InjectedBundleHitTestProtocol.h: Added.
- 3:38 PM Changeset in webkit [275185] by
-
- 5 edits in trunk/Source
[GPU Process] Don't record DisplayList items if the GPU Process has been terminated
https://bugs.webkit.org/show_bug.cgi?id=223864
<rdar://73586187>
Reviewed by Simon Fraser.
Source/WebCore:
Consult the DisplayList::Recorder::Delegate before appending the item.
If the GPU Process was terminated, don't append the item.
- platform/graphics/displaylists/DisplayListRecorder.cpp:
(WebCore::DisplayList::Recorder::canAppendItemOfType):
(WebCore::DisplayList::Recorder::willAppendItemOfType): Deleted.
- platform/graphics/displaylists/DisplayListRecorder.h:
(WebCore::DisplayList::Recorder::Delegate::canAppendItemOfType):
(WebCore::DisplayList::Recorder::append):
(WebCore::DisplayList::Recorder::Delegate::willAppendItemOfType): Deleted.
Source/WebKit:
- WebProcess/GPU/graphics/RemoteImageBufferProxy.h:
- 3:09 PM Changeset in webkit [275184] by
-
- 5 edits in trunk/Source/WebCore
Implement repetition of animated AVIF
https://bugs.webkit.org/show_bug.cgi?id=223127
<rdar://problem/75629284>
Reviewed by Philippe Normand.
This change implements repeating AVIF animation, reflecting the AVIF sequence spec.
As the libavif does not provide a clear repetition count yet, we calculate it
by dividing the track duration by the sum of each frame duration. If the track duration
is not specified, the animation repeats indefinitely. Chromium just indefinitely
repeats all animated avif images.
The repetition count of avif sequence images is not necessarily an integer.
Since ScalableImageDecoder accepts an integer value for repetition,
we round the repetition count in floating point values to conform the current
image decoder design. Later, when we have more reliable testing environment
for the avifs repetition, we will revisit the repetition count in floating point numbers.
No new tests since no reliable test could be created. The latest avif encoder
does not support the repetition count yet.
- platform/image-decoders/avif/AVIFImageDecoder.cpp:
(WebCore::AVIFImageDecoder::repetitionCount const):
(WebCore::AVIFImageDecoder::tryDecodeSize):
- platform/image-decoders/avif/AVIFImageDecoder.h:
- platform/image-decoders/avif/AVIFImageReader.cpp:
(WebCore::AVIFImageReader::repetitionCount const):
- platform/image-decoders/avif/AVIFImageReader.h:
- 3:01 PM Changeset in webkit [275183] by
-
- 1 copy in tags/Safari-612.1.7.11
Tag Safari-612.1.7.11.
- 3:00 PM Changeset in webkit [275182] by
-
- 1 copy in tags/Safari-612.1.7.10
Tag Safari-612.1.7.10.
- 2:53 PM Changeset in webkit [275181] by
-
- 9 edits in trunk
[GPU Process] Simplify DisplayList::Iterator part 2: Rename setItemBufferClient to setItemBuffer{Writing,Reading}Client
https://bugs.webkit.org/show_bug.cgi?id=223863
Reviewed by Wenson Hsieh.
Source/WebCore:
Currently, we have:
void setItemBufferClient(ItemBufferReadingClient*);
void setItemBufferClient(ItemBufferWritingClient*);
This is unfortunate, because if you want to set one of these clients to nullptr, you have to do:
setItemBufferClient(static_cast<ItemBufferReadingClient*>(nullptr));
Instead, we can just rename these functions to:
void setItemBufferReadingClient(ItemBufferReadingClient*);
void setItemBufferWritingClient(ItemBufferWritingClient*);
So you can just do
setItemBufferReadingClient(nullptr);
No new tests because there is no behavior change.
- platform/graphics/displaylists/DisplayList.cpp:
(WebCore::DisplayList::DisplayList::setItemBufferReadingClient):
(WebCore::DisplayList::DisplayList::setItemBufferWritingClient):
(WebCore::DisplayList::DisplayList::setItemBufferClient): Deleted.
- platform/graphics/displaylists/DisplayList.h:
Source/WebKit:
- GPUProcess/graphics/DisplayListReaderHandle.cpp:
(WebKit::DisplayListReaderHandle::displayListForReading const):
- WebProcess/GPU/graphics/RemoteImageBufferProxy.h:
(WebKit::RemoteImageBufferProxy::RemoteImageBufferProxy):
Tools:
- TestWebKitAPI/Tests/WebCore/DisplayListTests.cpp:
(TestWebKitAPI::TEST):
- TestWebKitAPI/Tests/WebCore/cg/DisplayListTestsCG.cpp:
(TestWebKitAPI::TEST):
- 2:49 PM Changeset in webkit [275180] by
-
- 10 edits in trunk/Source/WebKit
[GPU Process]: Improve getImageData() perf part 2: Use shared memory and a semaphore
https://bugs.webkit.org/show_bug.cgi?id=223732
Reviewed by Ryosuke Niwa.
This patch implements a design for getImageData() where the web process and the GPU process
set up a shmem + semaphore ahead-of-time, so that when we encounter a call to getImageData(),
the GPU process can just write into the shmem and signal the semaphore. The web process just
encodes the getImageData() call into the regular display list, flushAsync()s to kick the GPU
process, then just waits on the semaphore. Initial performance testing shows that this is
way, way faster than sending messages containing pixel color data payloads.
This patch causes a ~40% progression on the Images test in MotionMark on my Mac with the GPU
process enabled. When compared to the GPU process disabled, the results after just running
just a few times seem to be pretty close (within the noise).
If we need more performance, the next step is to try to reduce the memcpy()s.
No new tests because there is no behavior change.
- GPUProcess/graphics/RemoteImageBuffer.h:
- GPUProcess/graphics/RemoteRenderingBackend.cpp:
(WebKit::RemoteRenderingBackend::updateSharedMemoryForGetImageDataHelper):
(WebKit::RemoteRenderingBackend::updateSharedMemoryForGetImageData):
(WebKit::RemoteRenderingBackend::semaphoreForGetImageData):
(WebKit::RemoteRenderingBackend::updateSharedMemoryAndSemaphoreForGetImageData):
(WebKit::RemoteRenderingBackend::destroyGetImageDataSharedMemory):
(WebKit::RemoteRenderingBackend::populateGetImageDataSharedMemory):
(WebKit::RemoteRenderingBackend::getImageData): Deleted.
- GPUProcess/graphics/RemoteRenderingBackend.h:
- GPUProcess/graphics/RemoteRenderingBackend.messages.in:
- Platform/IPC/IPCSemaphore.h:
- Platform/IPC/darwin/IPCSemaphoreDarwin.cpp:
(IPC::Semaphore::waitFor):
- WebProcess/GPU/graphics/RemoteImageBufferProxy.h:
- WebProcess/GPU/graphics/RemoteRenderingBackendProxy.cpp:
(WebKit::RemoteRenderingBackendProxy::sharedMemoryForGetImageData):
(WebKit::RemoteRenderingBackendProxy::waitForGetImageDataToComplete):
(WebKit::RemoteRenderingBackendProxy::destroyGetImageDataSharedMemory):
(WebKit::RemoteRenderingBackendProxy::getImageData): Deleted.
- WebProcess/GPU/graphics/RemoteRenderingBackendProxy.h:
- 2:03 PM Changeset in webkit [275179] by
-
- 2 edits in trunk/LayoutTests
[ BigSur Debug wk2 ] compositing/video/video-update-rendering.html is a flakey text failure
https://bugs.webkit.org/show_bug.cgi?id=223900
Unreviewed test gardening.
- platform/mac-wk2/TestExpectations: Updated expectations to Pass Failure while test is reviewed.
- 2:02 PM Changeset in webkit [275178] by
-
- 2 edits in branches/safari-612.1.9-branch/Source/WebCore/PAL
Cherry-pick r275173. rdar://problem/75971415
The header file NotifySPI.h should not be private
https://bugs.webkit.org/show_bug.cgi?id=223893
<rdar://75942308>
Unreviewed build fix.
- PAL.xcodeproj/project.pbxproj:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@275173 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 1:58 PM Changeset in webkit [275177] by
-
- 1 copy in branches/safari-612.1.9-branch
New branch.
- 1:58 PM Changeset in webkit [275176] by
-
- 8 edits2 adds in trunk
[macOS] Playback is paused after scrubbing with the touch bar
https://bugs.webkit.org/show_bug.cgi?id=223887
rdar://75597684
Reviewed by Jer Noble.
Source/WebCore:
Test: media/remote-control-command-scrubbing.html
- html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::pauseInternal): Don't pause if
m_pausedInternalis true.
(WebCore::HTMLMediaElement::didReceiveRemoteControlCommand): Support BeginScrubbingCommand
and EndScrubbingCommand.
- html/MediaElementSession.cpp:
(WebCore::MediaElementSession::didReceiveRemoteControlCommand): Update enum names.
- platform/audio/PlatformMediaSession.cpp:
(WebCore::convertEnumerationToString): Ditto.
- platform/audio/PlatformMediaSession.h: Add "Command" suffix to BeginScrubbing
and EndScrubbing so they math the enum's naming pattern.
- platform/mac/WebPlaybackControlsManager.mm:
(-[WebPlaybackControlsManager beginTouchBarScrubbing]): Update enum names.
(-[WebPlaybackControlsManager endTouchBarScrubbing]): Update enum names.
- testing/Internals.cpp:
(WebCore::Internals::postRemoteControlCommand): Add "beginscrubbing" and "endscrubbing".
LayoutTests:
- media/remote-control-command-scrubbing-expected.txt: Added.
- media/remote-control-command-scrubbing.html: Added.
- 1:47 PM Changeset in webkit [275175] by
-
- 2 edits in trunk/Tools
Unreviewed, reverting r275170.
Broke the build
Reverted changeset:
"[Big Sur arm64]
TestWebKitAPI.WebKit.AccessibilityReduceMotion is a flaky
crash"
https://bugs.webkit.org/show_bug.cgi?id=222824
https://commits.webkit.org/r275170
- 1:46 PM Changeset in webkit [275174] by
-
- 11 edits1 copy in trunk/Source
[WinCairo] Custom fonts don't work in GPU process mode
https://bugs.webkit.org/show_bug.cgi?id=223861
Reviewed by Don Olmstead.
Source/WebCore:
Custom fonts didn't work in GPU process mode of WinCairo port
because FontCustomPlatformData was destructed soon. In non-GPU
process mode, FontCustomPlatformData is retained by CachedFont. In
GPU process mode, there is no CachedFont. So, the font resource
handle should be ref-counted and retained by FontPlatformData.
Added a new class FontMemoryResource to ref-count the font
resource handle. Added a new member of Ref<FontMemoryResource> to
FontPlatformData::CreationData struct.
Converted by existing canvas custom font tests.
- PlatformWin.cmake:
- platform/graphics/FontPlatformData.h:
- platform/graphics/opentype/FontMemoryResource.h:
(WebCore::FontMemoryResource::create):
(WebCore::FontMemoryResource::~FontMemoryResource):
(WebCore::FontMemoryResource::FontMemoryResource):
- platform/graphics/opentype/OpenTypeUtilities.cpp:
(WebCore::renameAndActivateFont):
- platform/graphics/opentype/OpenTypeUtilities.h:
- platform/graphics/win/FontCustomPlatformData.cpp:
(WebCore::FontCustomPlatformData::FontCustomPlatformData):
(WebCore::FontCustomPlatformData::fontPlatformData):
(WebCore::createFontCustomPlatformData):
(WebCore::FontCustomPlatformData::~FontCustomPlatformData): Deleted.
- platform/graphics/win/FontCustomPlatformData.h:
(WebCore::FontCustomPlatformData::FontCustomPlatformData): Deleted.
- platform/graphics/win/FontCustomPlatformDataCairo.cpp:
(WebCore::FontCustomPlatformData::FontCustomPlatformData):
(WebCore::createFontCustomPlatformData):
(WebCore::FontCustomPlatformData::~FontCustomPlatformData): Deleted.
- platform/graphics/win/FontPlatformDataWin.cpp:
(WebCore::FontPlatformData::FontPlatformData):
Source/WebKit:
- Shared/win/WebCoreArgumentCodersWin.cpp:
(IPC::ArgumentCoder<Ref<Font>>::decodePlatformData):
- 1:42 PM Changeset in webkit [275173] by
-
- 2 edits in trunk/Source/WebCore/PAL
The header file NotifySPI.h should not be private
https://bugs.webkit.org/show_bug.cgi?id=223893
<rdar://75942308>
Unreviewed build fix.
- PAL.xcodeproj/project.pbxproj:
- 1:31 PM Changeset in webkit [275172] by
-
- 6 edits1 add in trunk/Source
Use terminate_with_reason instead of xpc_connection_kill
https://bugs.webkit.org/show_bug.cgi?id=223618
Reviewed by Darin Adler.
Source/WebKit:
The former was deprecated in rdar://70461770
This does the same thing but adds debugging information so that people looking at process terminations have more information about what is going on.
- Platform/IPC/cocoa/ConnectionCocoa.mm:
(IPC::ConnectionTerminationWatchdog::watchdogTimerFired):
(IPC::Connection::kill):
- Platform/spi/Cocoa/ReasonSPI.h: Added.
- UIProcess/Launcher/mac/ProcessLauncherMac.mm:
(WebKit::ProcessLauncher::platformInvalidate):
- WebKit.xcodeproj/project.pbxproj:
Source/WTF:
- wtf/spi/darwin/XPCSPI.h:
- 1:20 PM Changeset in webkit [275171] by
-
- 26 edits3 copies7 adds2 deletes in trunk/Source
[macOS] Add remote MediaSessionCoordinator
https://bugs.webkit.org/show_bug.cgi?id=223854
<rdar://problem/75934650>
Reviewed by Jer Noble.
Source/WebCore:
Rename PlatformMediaSessionCoordinator to MediaSessionCoordinatorPrivate and make
it possible for the MediaSessionCoordinator implementation to be located in another
process.
- Modules/mediasession/MediaPositionState.h:
(WebCore::MediaPositionState::encode const):
(WebCore::MediaPositionState::decode):
- Modules/mediasession/MediaSession.cpp:
- Modules/mediasession/MediaSession.h:
- Modules/mediasession/MediaSessionActionHandler.h:
- Modules/mediasession/MediaSessionCoordinator.cpp:
(WebCore::MediaSessionCoordinator::create):
(WebCore::MediaSessionCoordinator::MediaSessionCoordinator):
(WebCore::MediaSessionCoordinator::seekTo):
(WebCore::MediaSessionCoordinator::play):
(WebCore::MediaSessionCoordinator::pause):
(WebCore::MediaSessionCoordinator::setTrack):
(WebCore::MediaSessionCoordinator::positionStateChanged):
(WebCore::MediaSessionCoordinator::playbackStateChanged):
(WebCore::MediaSessionCoordinator::readyStateChanged):
(WebCore::MediaSessionCoordinator::seekSessionToTime):
(WebCore::MediaSessionCoordinator::playSession):
(WebCore::MediaSessionCoordinator::pauseSession):
(WebCore::MediaSessionCoordinator::setSessionTrack):
(WebCore::MediaSessionCoordinator::internalSeekTo):
(WebCore::MediaSessionCoordinator::internalPlay):
(WebCore::MediaSessionCoordinator::internalPause):
(WebCore::MediaSessionCoordinator::internalSetTrack):
- Modules/mediasession/MediaSessionCoordinator.h:
- Modules/mediasession/MediaSessionCoordinatorPrivate.cpp: Copied from Source/WebCore/platform/graphics/PlatformMediaSessionCoordinator.cpp
(WebCore::MediaSessionCoordinatorPrivate::setLogger):
- Modules/mediasession/MediaSessionCoordinatorPrivate.h: Copied from Source/WebCore/platform/graphics/PlatformMediaSessionCoordinator.h
(WebCore::MediaSessionCoordinatorPrivate::setClient):
(WebCore::MediaSessionCoordinatorPrivate::loggerPtr const):
(WebCore::MediaSessionCoordinatorPrivate::logIdentifier const):
(WebCore::MediaSessionCoordinatorPrivate::client const):
- Modules/mediasession/MediaSessionPlaybackState.h:
- Modules/mediasession/MediaSessionReadyState.h:
- Sources.txt:
- WebCore.xcodeproj/project.pbxproj:
- platform/audio/PlatformMediaSession.h:
- platform/graphics/PlatformMediaSessionCoordinator.cpp: Removed.
- platform/graphics/PlatformMediaSessionCoordinator.h: Removed.
- testing/MockMediaSessionCoordinator.cpp:
(WebCore::MockMediaSessionCoordinator::seekTo):
(WebCore::MockMediaSessionCoordinator::play):
(WebCore::MockMediaSessionCoordinator::pause):
(WebCore::MockMediaSessionCoordinator::setTrack):
(WebCore::MockMediaSessionCoordinator::positionStateChanged):
(WebCore::MockMediaSessionCoordinator::readyStateChanged):
(WebCore::MockMediaSessionCoordinator::playbackStateChanged):
(WebCore::MockMediaSessionCoordinator::logChannel const):
- testing/MockMediaSessionCoordinator.h:
(WebCore::MockMediaSessionCoordinator::logClassName const):
Source/WebKit:
Define the interface for a remote MediaSessionCoordinatorPrivate and implement
message senders and receivers RemoteMediaSessionCoordinator and
RemoteMediaSessionCoordinatorProxy.
- CMakeLists.txt:
- DerivedSources-input.xcfilelist:
- DerivedSources-output.xcfilelist:
- DerivedSources.make:
- SourcesCocoa.txt:
- UIProcess/Media/MediaSessionCoordinatorPrivateProxy.h:
- UIProcess/Media/RemoteMediaSessionCoordinatorProxy.cpp: Added.
(WebKit::RemoteMediaSessionCoordinatorProxy::create):
(WebKit::RemoteMediaSessionCoordinatorProxy::RemoteMediaSessionCoordinatorProxy):
(WebKit::RemoteMediaSessionCoordinatorProxy::~RemoteMediaSessionCoordinatorProxy):
(WebKit::RemoteMediaSessionCoordinatorProxy::coordinateSeekTo):
(WebKit::RemoteMediaSessionCoordinatorProxy::coordinatePlay):
(WebKit::RemoteMediaSessionCoordinatorProxy::coordinatePause):
(WebKit::RemoteMediaSessionCoordinatorProxy::::coordinateSetTrack):
(WebKit::RemoteMediaSessionCoordinatorProxy::positionStateChanged):
(WebKit::RemoteMediaSessionCoordinatorProxy::playbackStateChanged):
(WebKit::RemoteMediaSessionCoordinatorProxy::readyStateChanged):
- UIProcess/Media/RemoteMediaSessionCoordinatorProxy.h:
- UIProcess/Media/RemoteMediaSessionCoordinatorProxy.messages.in: Added.
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::createMediaSessionCoordinator):
- UIProcess/WebPageProxy.h:
- WebKit.xcodeproj/project.pbxproj:
- WebProcess/MediaSession/RemoteMediaSessionCoordinator.cpp: Added.
(WebKit::RemoteMediaSessionCoordinator::create):
(WebKit::RemoteMediaSessionCoordinator::RemoteMediaSessionCoordinator):
(WebKit::RemoteMediaSessionCoordinator::~RemoteMediaSessionCoordinator):
(WebKit::RemoteMediaSessionCoordinator::seekTo):
(WebKit::RemoteMediaSessionCoordinator::play):
(WebKit::RemoteMediaSessionCoordinator::pause):
(WebKit::RemoteMediaSessionCoordinator::setTrack):
(WebKit::RemoteMediaSessionCoordinator::positionStateChanged):
(WebKit::RemoteMediaSessionCoordinator::readyStateChanged):
(WebKit::RemoteMediaSessionCoordinator::playbackStateChanged):
(WebKit::RemoteMediaSessionCoordinator::seekSessionToTime):
(WebKit::RemoteMediaSessionCoordinator::playSession):
(WebKit::RemoteMediaSessionCoordinator::pauseSession):
(WebKit::RemoteMediaSessionCoordinator::setSessionTrack):
(WebKit::RemoteMediaSessionCoordinator::logChannel const):
- WebProcess/MediaSession/RemoteMediaSessionCoordinator.h: Added.
- WebProcess/MediaSession/RemoteMediaSessionCoordinator.messages.in:
- WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::createMediaSessionCoordinator):
- WebProcess/WebPage/WebPage.h:
- WebProcess/WebPage/WebPage.messages.in:
- 1:01 PM Changeset in webkit [275170] by
-
- 2 edits in trunk/Tools
[Big Sur arm64] TestWebKitAPI.WebKit.AccessibilityReduceMotion is a flaky crash
https://bugs.webkit.org/show_bug.cgi?id=222824
Unreviewed test gardening.
- TestWebKitAPI/Tests/WebKit/AccessibilityReduceMotion.mm: Disable the test for arm64 Macs.
- 1:01 PM Changeset in webkit [275169] by
-
- 15 edits in trunk/Source/WebCore
[Payment Request] move added
object datatoApplePayModifier
https://bugs.webkit.org/show_bug.cgi?id=223621
<rdar://problem/75720879>
Reviewed by Wenson Hsieh.
The
object datainPaymentDetailsModifierhas a sibling propertyrequired DOMString supportedMethods
which acts as a "guard" to make sure that the structure ofdatais only limited to thatsupportedMethods
meaning that there's no concern over naming collisions between two differentsupportedMethods. As such,
theobject dataadded toPaymentItemandPaymentDetailsBaseandPaymentShippingOptionshould really
be part ofApplePayModifier(which is what theobject datainPaymentDetailsModifieris parsed into).
- Modules/applepay/paymentrequest/ApplePayModifier.idl:
- Modules/applepay/paymentrequest/ApplePayModifier.h:
- Modules/applepay/paymentrequest/ApplePayPaymentHandler.h:
- Modules/applepay/paymentrequest/ApplePayPaymentHandler.cpp:
(WebCore::convertAndValidate):
(WebCore::merge):
(WebCore::ApplePayPaymentHandler::show):
(WebCore::ApplePayPaymentHandler::computeShippingMethods const):
(WebCore::ApplePayPaymentHandler::computeTotalAndLineItems const):
(WebCore::validate):
(WebCore::ApplePayPaymentHandler::firstApplicableModifier const): Added.
(WebCore::ApplePayPaymentHandler::shippingAddressUpdated):
(WebCore::ApplePayPaymentHandler::shippingOptionUpdated):
(WebCore::ApplePayPaymentHandler::paymentMethodUpdated):
Instead of validating and merging data from the variousApplePay*Dataobjects, get the
first applicableApplePayModifierfrom the list ofPaymentDetailsModifierand use that
for validation and data merging (since, as explained above, it now contains the data).
- Modules/paymentrequest/PaymentDetailsBase.idl:
- Modules/paymentrequest/PaymentDetailsBase.h:
- Modules/paymentrequest/PaymentItem.idl:
- Modules/paymentrequest/PaymentItem.h:
- Modules/paymentrequest/PaymentShippingOption.idl:
- Modules/paymentrequest/PaymentShippingOption.h:
- Modules/paymentrequest/PaymentRequest.cpp:
(WebCore::checkAndCanonicalizePaymentItem):
(WebCore::checkAndCanonicalizeTotal):
(WebCore::checkAndCanonicalizeDetails):
(WebCore::PaymentRequest::create):
(WebCore::PaymentRequest::settleDetailsPromise):
Remove the IDLobject data;and associated members/logic now that the parsed data is all
part ofApplePayModifier. These objects are now back to being spec compliant.
- Modules/applepay/ApplePayDetailsUpdateBase.idl:
Drive-by: Add missing inheritance to
ApplePayDetailsUpdateData.
- Modules/applepay/ApplePayLineItemData.idl:
- Modules/applepay/ApplePayShippingMethodData.idl:
Drive-by: Remove unnecessary attributes.
- 12:51 PM Changeset in webkit [275168] by
-
- 2 edits in trunk/Source/WebCore
Make a Ref to HTMLPlugInElement when resolving callback
https://bugs.webkit.org/show_bug.cgi?id=223846
Patch by Ian Gilbert <iang@apple.com> on 2021-03-29
Reviewed by Ryosuke Niwa.
Take a Ref to the HTMLPlugInElement to keep it alive while invoking HTMLPlugInElement::swapRendererTimerFired()
- html/HTMLPlugInElement.cpp:
(WebCore::HTMLPlugInElement::swapRendererTimerFired):
- 12:19 PM Changeset in webkit [275167] by
-
- 2 edits in trunk/LayoutTests
[ macOS wk2 ] media/pip-video-going-into-fullscreen.html is a flakey timeout
https://bugs.webkit.org/show_bug.cgi?id=223762
Unreviewed test gardening.
- platform/mac-wk2/TestExpectations: Updating test expectations to Pass timeout while test is being reviewed.
- 11:12 AM Changeset in webkit [275166] by
-
- 14 edits in trunk
Migrate _WKUserContentExtension and older versions of WKContentRuleList to WKContentRuleList during lookup
https://bugs.webkit.org/show_bug.cgi?id=223831
Patch by Alex Christensen <achristensen@webkit.org> on 2021-03-29
Reviewed by Brady Eidson.
Source/WebKit:
r275078 incremented CurrentContentRuleListFileVersion for the first time in a few years.
As a result, we will get a WKErrorContentRuleListStoreVersionMismatch during lookup for existing compiled WKContentRuleLists.
To make this as compatible as possible, if we see such a WKContentRuleList, try extracting its source and recompiling.
Also, _WKUserContentExtension is used by Safari and being migrated from in rdar://75889414.
To make this succeed and not leave any files behind, we move legacy files to modern filenames during lookup.
We also remove them if they're there when removing the WKContentRuleList from the WKContentRuleListStore,
and we include them in getAvailableContentRuleListIdentifiers. compileContentRuleList only compiles to the modern locations,
and invalidateContentRuleListVersion is only used for tests. All this is done on non-main WorkQueues, so the few additional
file reads/writes aren't an issue.
Luckily, _WKUserContentExtensionStore was only used by Safari, and its defaultStore was never used.
All this is covered by API tests.
- UIProcess/API/APIContentRuleListStore.cpp:
(API::ContentRuleListStore::defaultStore):
(API::ContentRuleListStore::storeWithPath):
(API::ContentRuleListStore::ContentRuleListStore):
(API::openAndMapContentRuleList):
(API::getContentRuleListSourceFromMappedFile):
(API::ContentRuleListStore::lookupContentRuleList):
(API::ContentRuleListStore::getAvailableContentRuleListIdentifiers):
(API::ContentRuleListStore::compileContentRuleList):
(API::ContentRuleListStore::removeContentRuleList):
(API::ContentRuleListStore::invalidateContentRuleListVersion):
(API::ContentRuleListStore::getContentRuleListSource):
(API::ContentRuleListStore::legacyDefaultStore): Deleted.
(API::ContentRuleListStore::nonLegacyDefaultStore): Deleted.
(API::ContentRuleListStore::~ContentRuleListStore): Deleted.
(API::openAndMapOrCopyContentRuleList): Deleted.
- UIProcess/API/APIContentRuleListStore.h:
- UIProcess/API/C/WKUserContentExtensionStoreRef.cpp:
(WKUserContentExtensionStoreCreate):
- UIProcess/API/Cocoa/APIContentRuleListStoreCocoa.mm:
(API::ContentRuleListStore::defaultStorePath):
- UIProcess/API/Cocoa/WKContentRuleListStore.h:
- UIProcess/API/Cocoa/WKContentRuleListStore.mm:
(+[WKContentRuleListStore defaultStore]):
(+[WKContentRuleListStore storeWithURL:]):
(+[WKContentRuleListStore defaultStoreWithLegacyFilename]):
(+[WKContentRuleListStore storeWithURLAndLegacyFilename:]):
- UIProcess/API/Cocoa/WKContentRuleListStorePrivate.h:
Tools:
- TestWebKitAPI/Tests/WebKitCocoa/ContentRuleListNotification.mm:
(respond):
(TEST):
- TestWebKitAPI/cocoa/TestNavigationDelegate.h:
- TestWebKitAPI/cocoa/TestNavigationDelegate.mm:
(-[WKWebView _test_waitForDidFailProvisionalNavigation]):
- 10:46 AM Changeset in webkit [275165] by
-
- 2 edits in trunk/Source/WebCore
Build fix.
- platform/graphics/SourceBufferPrivateClient.h:
I have a build that can't find the MediaDescription destructor from the AudioTrackInformation declaration.
Including MediaDescription.h fixes it.
- 10:34 AM Changeset in webkit [275164] by
-
- 3 edits2 adds in trunk
Release assert in Vector::at in RenderLayoutState::establishLineGrid
Source/WebCore:
https://bugs.webkit.org/show_bug.cgi?id=223368
Patch by Frédéric Wang <fwang@igalia.com> on 2021-03-29
Reviewed by Zalan Bujtas.
Fix out-of-bound access for layoutStateStack and ensure the whole vector is browsed.
Test: fast/line-grid/establish-line-grid-crash.html
- rendering/RenderLayoutState.cpp:
(WebCore::RenderLayoutState::establishLineGrid): Fix the exit condition.
LayoutTests:
https://bugs.webkit.org/show_bug.cgi?id=223362
Patch by Frédéric Wang <fwang@igalia.com> on 2021-03-29
Reviewed by Zalan Bujtas.
Add regression test.
- fast/line-grid/establish-line-grid-crash-expected.txt: Added.
- fast/line-grid/establish-line-grid-crash.html: Added.
- 10:21 AM Changeset in webkit [275163] by
-
- 34 edits2 copies in trunk/Source
Plumb DisplayUpdate through the display refresh monitors
https://bugs.webkit.org/show_bug.cgi?id=223847
Reviewed by Sam Weinig.
Future work will allow DisplayRefreshMonitorClients to request different frame rates, which
are whole fractions of the display's nominal refresh rate. These various frame rate requests
flow up through the DisplayRefreshMonitors, and in WebKit2, up through IPC to the
per-display DisplayLink which may even service multiple processes.
For power reasons, we don't want to trigger display refresh notifications down the chain at
the highest possible frequency; at various stages of propagation the rate might be halved if
that's necessary for downstream clients.
To make this frequency splitting logic simple, this patch introduces DisplayUpdate, which
represents an update of the display, and contains data about it in the form of a numerator
is the frame index, and the denominator is the nominal frame rate. Frame index wraps to zero
every second.
For example, a 60Hz display will generate display refreshes with DisplayUpdates which
sequentially will be { 0, 60 }, { 1, 60 }, { 2, 60 } ... { 59, 60 }, { 0, 60 }. The
zeroth frame is at some arbitrary time and not aligned with wallclock time.
Thus a client with a 30Hz update requirement can simply ignore every odd-numbered frame, and
a client downstream from it with a 15Hz requirement, which only receives those even-numbered
frames, still has enough information to compute which frames to ignore.
Classes which are sources of callbacks for DisplayRefreshMonitor need to generate these
DisplayUpdates; that includes the various platform DisplayRefreshMonitor subclasses in
WebCore, and those in WebKit that live in the UI process and trigger updates over IPC.
Source/WebCore:
- Sources.txt:
- WebCore.xcodeproj/project.pbxproj:
- loader/EmptyClients.cpp:
- platform/graphics/AnimationFrameRate.cpp:
- platform/graphics/AnimationFrameRate.h:
- platform/graphics/DisplayRefreshMonitor.cpp:
(WebCore::DisplayRefreshMonitor::displayLinkFired):
(WebCore::DisplayRefreshMonitor::dispatchDisplayDidRefresh):
(WebCore::DisplayRefreshMonitor::displayDidRefresh):
- platform/graphics/DisplayRefreshMonitor.h:
- platform/graphics/DisplayRefreshMonitorManager.cpp:
(WebCore::DisplayRefreshMonitorManager::displayWasUpdated):
- platform/graphics/DisplayRefreshMonitorManager.h:
- platform/graphics/DisplayUpdate.cpp: Copied from Source/WebCore/platform/graphics/win/DisplayRefreshMonitorWin.h.
(WebCore::operator<<):
- platform/graphics/DisplayUpdate.h: Copied from Source/WebCore/platform/graphics/gtk/DisplayRefreshMonitorGtk.h.
(WebCore::DisplayUpdate::didUpdate):
(WebCore::DisplayUpdate::encode const):
(WebCore::DisplayUpdate::decode):
- platform/graphics/gtk/DisplayRefreshMonitorGtk.cpp: Assume a 60fps refresh rate but this code
should probably use gdk_frame_clock_get_refresh_info() to get the correct rate.
(WebCore::onFrameClockUpdate):
(WebCore::DisplayRefreshMonitorGtk::displayLinkCallbackFired):
(WebCore::DisplayRefreshMonitorGtk::startNotificationMechanism):
- platform/graphics/gtk/DisplayRefreshMonitorGtk.h:
- platform/graphics/ios/DisplayRefreshMonitorIOS.h:
- platform/graphics/ios/DisplayRefreshMonitorIOS.mm:
(-[WebDisplayLinkHandler initWithMonitor:]):
(-[WebDisplayLinkHandler handleDisplayLink:]):
(WebCore::DisplayRefreshMonitorIOS::displayLinkCallbackFired):
(WebCore::DisplayRefreshMonitorIOS::startNotificationMechanism):
(-[WebDisplayLinkHandler setPreferredFramesPerSecond:]): Deleted.
- platform/graphics/mac/LegacyDisplayRefreshMonitorMac.cpp:
(WebCore::displayLinkCallback):
(WebCore::LegacyDisplayRefreshMonitorMac::displayLinkCallbackFired):
(WebCore::LegacyDisplayRefreshMonitorMac::dispatchDisplayDidRefresh):
(WebCore::LegacyDisplayRefreshMonitorMac::nominalFramesPerSecondFromDisplayLink):
(WebCore::LegacyDisplayRefreshMonitorMac::startNotificationMechanism):
- platform/graphics/mac/LegacyDisplayRefreshMonitorMac.h:
(WebCore::LegacyDisplayRefreshMonitorMac::currentUpdate const):
- platform/graphics/win/DisplayRefreshMonitorWin.cpp:
(WebCore::DisplayRefreshMonitorWin::DisplayRefreshMonitorWin):
(WebCore::DisplayRefreshMonitorWin::displayLinkCallbackFired):
- platform/graphics/win/DisplayRefreshMonitorWin.h:
Source/WebKit:
- Shared/CoordinatedGraphics/threadedcompositor/ThreadedDisplayRefreshMonitor.cpp:
(WebKit::ThreadedDisplayRefreshMonitor::invalidate):
(WebKit::ThreadedDisplayRefreshMonitor::displayRefreshCallback):
(WebKit::ThreadedDisplayRefreshMonitor::ThreadedDisplayRefreshMonitor): Deleted.
- Shared/CoordinatedGraphics/threadedcompositor/ThreadedDisplayRefreshMonitor.h:
- UIProcess/mac/DisplayLink.cpp:
(WebKit::DisplayLink::addObserver):
(WebKit::DisplayLink::notifyObserversDisplayWasRefreshed):
- UIProcess/mac/DisplayLink.h:
- WebProcess/WebPage/EventDispatcher.cpp:
(WebKit::EventDispatcher::displayWasRefreshed):
- WebProcess/WebPage/EventDispatcher.h:
- WebProcess/WebPage/EventDispatcher.messages.in:
- WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDisplayRefreshMonitor.h:
- WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDisplayRefreshMonitor.mm:
(WebKit::RemoteLayerTreeDisplayRefreshMonitor::RemoteLayerTreeDisplayRefreshMonitor):
(WebKit::RemoteLayerTreeDisplayRefreshMonitor::setPreferredFramesPerSecond):
(WebKit::RemoteLayerTreeDisplayRefreshMonitor::didUpdateLayers):
- WebProcess/WebPage/mac/DisplayRefreshMonitorMac.cpp:
(WebKit::DisplayRefreshMonitorMac::dispatchDisplayDidRefresh):
- WebProcess/WebPage/mac/DisplayRefreshMonitorMac.h:
- WebProcess/WebProcess.cpp:
(WebKit::WebProcess::displayWasRefreshed):
- WebProcess/WebProcess.h:
- WebProcess/WebProcess.messages.in:
- 9:32 AM Changeset in webkit [275162] by
-
- 20 edits in trunk
Promote WKWebView getUserMedia SPI to API
https://bugs.webkit.org/show_bug.cgi?id=223806
Reviewed by Eric Carlson.
Source/WebKit:
Move SPI to API.
Update delegate to take an enumeration instead of two booleans.
Make setters completion handlers nullable.
Covered by API tests.
- UIProcess/API/Cocoa/WKUIDelegate.h:
- UIProcess/API/Cocoa/WKUIDelegatePrivate.h:
- UIProcess/API/Cocoa/WKWebView.h:
- UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView cameraCaptureState]):
(-[WKWebView microphoneCaptureState]):
(-[WKWebView setMicrophoneCaptureState:completionHandler:]):
(-[WKWebView setCameraCaptureState:completionHandler:]):
- UIProcess/API/Cocoa/WKWebViewPrivate.h:
- UIProcess/Cocoa/UIDelegate.mm:
(WebKit::UIDelegate::UIClient::decidePolicyForGeolocationPermissionRequest):
(WebKit::UIDelegate::UIClient::shouldAllowDeviceOrientationAndMotionAccess):
(WebKit::UIDelegate::UIClient::decidePolicyForUserMediaPermissionRequest):
Tools:
- TestWebKitAPI/Tests/WebKit/GetUserMedia.mm:
(-[UserMediaCaptureUIDelegateForParameters webView:requestMediaCapturePermissionForOrigin:initiatedByFrame:type:decisionHandler:]):
- TestWebKitAPI/Tests/WebKit/GetUserMediaNavigation.mm:
(-[NavigationWhileGetUserMediaPromptDisplayedUIDelegate webView:requestMediaCapturePermissionForOrigin:initiatedByFrame:type:decisionHandler:]):
- TestWebKitAPI/Tests/WebKit/GetUserMediaReprompt.mm:
(TestWebKitAPI::TEST):
- TestWebKitAPI/Tests/WebKit/MediaStreamTrackDetached.mm:
- TestWebKitAPI/Tests/WebKitCocoa/DeviceOrientation.mm:
(-[DeviceOrientationPermissionUIDelegate _webView:requestDeviceOrientationAndMotionPermissionForOrigin:initiatedByFrame:decisionHandler:]):
(-[DeviceOrientationPermissionValidationDelegate _webView:requestDeviceOrientationAndMotionPermissionForOrigin:initiatedByFrame:decisionHandler:]):
- TestWebKitAPI/Tests/WebKitCocoa/SpeechRecognition.mm:
(-[SpeechRecognitionUIDelegate webView:requestMediaCapturePermissionForOrigin:initiatedByFrame:type:decisionHandler:]):
- TestWebKitAPI/Tests/WebKitCocoa/UIDelegate.mm:
(-[GeolocationDelegateNew _webView:requestGeolocationPermissionForOrigin:initiatedByFrame:decisionHandler:]):
- TestWebKitAPI/Tests/WebKitCocoa/UserMediaDisabled.mm:
(-[UserMediaUIDelegate webView:requestMediaCapturePermissionForOrigin:initiatedByFrame:type:decisionHandler:]):
- TestWebKitAPI/Tests/WebKitCocoa/UserMediaSimulateFailedSandbox.mm:
(-[SimulateFailedSandboxUIDelegate webView:requestMediaCapturePermissionForOrigin:initiatedByFrame:type:decisionHandler:]):
- TestWebKitAPI/Tests/WebKitCocoa/WebsitePolicies.mm:
(-[WebsitePoliciesDeviceOrientationUIDelegate _webView:requestDeviceOrientationAndMotionPermissionForOrigin:initiatedByFrame:decisionHandler:]):
- TestWebKitAPI/cocoa/UserMediaCaptureUIDelegate.h:
- TestWebKitAPI/cocoa/UserMediaCaptureUIDelegate.mm:
(-[UserMediaCaptureUIDelegate init]):
(-[UserMediaCaptureUIDelegate setAudioDecision:]):
(-[UserMediaCaptureUIDelegate setVideoDecision:]):
(-[UserMediaCaptureUIDelegate webView:requestMediaCapturePermissionForOrigin:initiatedByFrame:type:decisionHandler:]):
- 9:31 AM Changeset in webkit [275161] by
-
- 14 edits in trunk/Source/WebCore
Use enum classes and OptionSets for ControlStates::States
https://bugs.webkit.org/show_bug.cgi?id=223647
Reviewed by Sam Weinig.
No behavior change.
- dom/Element.cpp:
(WebCore::Element::setActive):
(WebCore::Element::setHovered):
- editing/FrameSelection.cpp:
(WebCore::FrameSelection::focusedOrActiveStateChanged):
- html/HTMLFormControlElement.cpp:
(WebCore::HTMLFormControlElement::disabledStateChanged):
- html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::setChecked):
(WebCore::HTMLInputElement::setIndeterminate):
- html/HTMLOptionElement.cpp:
(WebCore::HTMLOptionElement::parseAttribute):
- platform/ControlStates.h:
(WebCore::ControlStates::ControlStates):
(WebCore::ControlStates::states const):
(WebCore::ControlStates::setStates):
- platform/adwaita/ThemeAdwaita.cpp:
(WebCore::ThemeAdwaita::paintCheckbox):
(WebCore::ThemeAdwaita::paintRadio):
(WebCore::ThemeAdwaita::paintButton):
(WebCore::ThemeAdwaita::paintSpinButton):
- platform/mac/ThemeMac.mm:
(WebCore::updateStates):
(WebCore::paintToggleButton):
(WebCore::button):
(WebCore::paintButton):
(WebCore::paintStepper):
(WebCore::ThemeMac::ensuredView):
(WebCore::paintColorWell):
- rendering/RenderTheme.cpp:
(WebCore::RenderTheme::stateChanged const):
(WebCore::RenderTheme::extractControlStatesForRenderer const):
- rendering/RenderTheme.h:
- rendering/RenderThemeAdwaita.cpp:
(WebCore::RenderThemeAdwaita::paintMenuList):
- rendering/RenderThemeIOS.h:
- rendering/RenderThemeIOS.mm:
(WebCore::RenderThemeIOS::checkboxRadioBackgroundColor):
(WebCore::RenderThemeIOS::checkboxRadioIndicatorColor):
(WebCore::RenderThemeIOS::paintCheckbox):
(WebCore::RenderThemeIOS::paintRadio):
- 9:30 AM Changeset in webkit [275160] by
-
- 14 edits in trunk
Add support for animating the vertical-align CSS property
https://bugs.webkit.org/show_bug.cgi?id=223853
Reviewed by Antti Koivisto.
LayoutTests/imported/w3c:
Add 161 PASS results in the WPT suite now that we support animating vertical-align.
- web-platform-tests/css/css-transitions/animations/vertical-align-composition-expected.txt:
- web-platform-tests/css/css-transitions/animations/vertical-align-interpolation-expected.txt:
- web-platform-tests/css/css-transitions/properties-value-001-expected.txt:
- web-platform-tests/css/css-transitions/properties-value-implicit-001-expected.txt:
- web-platform-tests/css/css-transitions/properties-value-inherit-001-expected.txt:
- web-platform-tests/css/css-transitions/properties-value-inherit-002-expected.txt:
Source/WebCore:
Adding support for animating vertical-align revealed a couple of long-standing issues with
regards to our support for this property.
First off, we didn't honor the "inherit" value since it required a custom builder method
to deal with both RenderStyle::verticalAlign() (the type) and RenderStyle::verticalAlignLength()
(the value).
Then, we would hit an assertion when obtaining the computed style for this property and a
calculated value since we didn't pass the RenderStyle to createValue().
We now correctly interpolate this property per the dedicated WPT test, the only issues remaining
being about how our calc serialization (https://bugs.webkit.org/show_bug.cgi?id=223875).
- animation/CSSPropertyAnimation.cpp:
(WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap):
- css/CSSComputedStyleDeclaration.cpp:
(WebCore::ComputedStyleExtractor::valueForPropertyInStyle):
- css/CSSProperties.json:
- style/StyleBuilderCustom.h:
(WebCore::Style::BuilderCustom::applyInheritVerticalAlign):
LayoutTests:
- TestExpectations: Unskip tests related to vertical-align interpolation since they are
no longer crashing.
- 6:50 AM CSSContainment edited by
- (diff)
- 6:49 AM CSSContainment edited by
- (diff)
- 6:43 AM CSSContainment created by
- 6:34 AM WikiStart edited by
- (diff)
Mar 28, 2021:
- 10:27 PM Changeset in webkit [275159] by
-
- 4 edits in trunk
Enable AspectRatioOfImgFromWidthAndHeightEnabled for WebKitLegacy.
https://bugs.webkit.org/show_bug.cgi?id=223815
Reviewed by Sam Weinig.
Source/WTF:
There's no reason this is enabled for WebKit and not WebKitLegacy.
And set WebCore = true since this feature could conceivably be
used in SVG images.
- Scripts/Preferences/WebPreferencesExperimental.yaml:
Tools:
- DumpRenderTree/TestOptions.cpp:
(WTR::TestOptions::defaults):
- 10:14 PM Changeset in webkit [275158] by
-
- 2 edits in trunk/LayoutTests
[GTK] Unreviewed test gardening. Add several A11y test failures to TestExpectations.
- platform/gtk/TestExpectations:
- 9:50 PM Changeset in webkit [275157] by
-
- 2 edits in trunk/Source/WebKit
[GPU Process] Don't ever replay DisplayList items of a RemoteImageBuffer in WebProcess
https://bugs.webkit.org/show_bug.cgi?id=223780
<rdar://75852494>
Reviewed by Wenson Hsieh.
Make sure the destructor of RemoteImageBufferProxy clears its DisplayList
so the destructor of the base class does not replay its items in WebProcess.
- WebProcess/GPU/graphics/RemoteImageBufferProxy.h:
- 9:47 PM Changeset in webkit [275156] by
-
- 4 edits in trunk/LayoutTests
[GLIB] Garden fast/canvas/webgl/out-of-bounds-simulated-vertexAttrib0-drawArrays.html as slow
Unreviewed test gardening.
- platform/glib/TestExpectations:
- platform/gtk/TestExpectations:
- platform/wpe/TestExpectations:
- 7:44 PM Changeset in webkit [275155] by
-
- 1 edit2 adds in trunk/LayoutTests
[GLIB] Unreviewed test gardening. Emit baseline for imported/w3c/web-platform-tests/css/css-color/system-color-compute.html
r271968 added a specific result for iOS to account for different system colors.
GLIB fails on the same test as iOS, so emiting a specific baseline is justified.
- platform/glib/imported/w3c/web-platform-tests/css/css-color/system-color-compute-expected.txt: Added.
- 6:26 PM Changeset in webkit [275154] by
-
- 2 edits in trunk/Source/WebCore
Remove JSCustomXPathNSResolver.h/JSCustomXPathNSResolver.cpp from the Xcode project as they don't exist
https://bugs.webkit.org/show_bug.cgi?id=223852
Reviewed by Simon Fraser.
- WebCore.xcodeproj/project.pbxproj:
Remove long deleted files.
- 6:20 PM Changeset in webkit [275153] by
-
- 2 edits in trunk/Source/WebCore
[Cocoa] Exception thrown from -setShouldProvideMediaDataForTrackID:
https://bugs.webkit.org/show_bug.cgi?id=223859
<rdar://75936746>
Reviewed by Eric Carlson.
Protect against undocumented exceptions thrown from -setShouldProvideMediaDataForTrackID:.
- platform/graphics/avfoundation/objc/SourceBufferParserAVFObjC.mm:
(WebCore::SourceBufferParserAVFObjC::setShouldProvideMediaDataForTrackID):
- 4:32 PM Changeset in webkit [275152] by
-
- 3 edits in trunk/Tools
Fix a bug that http server for run-benchmark script does not work on python3.
https://bugs.webkit.org/show_bug.cgi?id=223839
Reviewed by Ryosuke Niwa.
Fix encoding issue on run-benchmark http server.
Extract argument parser configure code for run-benchmark so that we can reuse it elsewhere.
- Scripts/webkitpy/benchmark_runner/http_server_driver/http_server/twisted_http_server.py:
(ServerControl.render_POST):
- Scripts/webkitpy/benchmark_runner/run_benchmark.py:
(config_argument_parser): Extract argument parser configure code so that we can reuse it elsewhere.
(parse_args):
(main):
- 12:14 PM Changeset in webkit [275151] by
-
- 236 edits in trunk
Remove ENABLE_INDEXED_DATABASE & ENABLE_INDEXED_DATABASE_IN_WORKERS, it seems like it is on for all ports
https://bugs.webkit.org/show_bug.cgi?id=223810
Reviewed by Simon Fraser.
Source/JavaScriptCore:
- inspector/protocol/IndexedDB.json:
Update for remove ENABLE_INDEXED_DATABASE conditional.
Source/WebCore:
Remove ENABLE_INDEXED_DATABASE & ENABLE_INDEXED_DATABASE_IN_WORKERS conditionals.
- Modules/indexeddb/DOMWindow+IndexedDatabase.idl:
- Modules/indexeddb/DOMWindowIndexedDatabase.cpp:
- Modules/indexeddb/DOMWindowIndexedDatabase.h:
- Modules/indexeddb/IDBActiveDOMObject.h:
- Modules/indexeddb/IDBCursor.cpp:
- Modules/indexeddb/IDBCursor.h:
- Modules/indexeddb/IDBCursor.idl:
- Modules/indexeddb/IDBCursorDirection.idl:
- Modules/indexeddb/IDBCursorWithValue.cpp:
- Modules/indexeddb/IDBCursorWithValue.h:
- Modules/indexeddb/IDBCursorWithValue.idl:
- Modules/indexeddb/IDBDatabase.cpp:
- Modules/indexeddb/IDBDatabase.h:
- Modules/indexeddb/IDBDatabase.idl:
- Modules/indexeddb/IDBDatabaseIdentifier.cpp:
- Modules/indexeddb/IDBDatabaseIdentifier.h:
- Modules/indexeddb/IDBDatabaseNameAndVersionRequest.cpp:
- Modules/indexeddb/IDBDatabaseNameAndVersionRequest.h:
- Modules/indexeddb/IDBFactory.cpp:
- Modules/indexeddb/IDBFactory.h:
- Modules/indexeddb/IDBFactory.idl:
- Modules/indexeddb/IDBGetAllResult.cpp:
- Modules/indexeddb/IDBGetAllResult.h:
- Modules/indexeddb/IDBGetResult.cpp:
- Modules/indexeddb/IDBGetResult.h:
- Modules/indexeddb/IDBIndex.cpp:
- Modules/indexeddb/IDBIndex.h:
- Modules/indexeddb/IDBIndex.idl:
- Modules/indexeddb/IDBKey.cpp:
- Modules/indexeddb/IDBKey.h:
- Modules/indexeddb/IDBKeyData.cpp:
- Modules/indexeddb/IDBKeyData.h:
- Modules/indexeddb/IDBKeyPath.cpp:
- Modules/indexeddb/IDBKeyPath.h:
- Modules/indexeddb/IDBKeyRange.cpp:
- Modules/indexeddb/IDBKeyRange.h:
- Modules/indexeddb/IDBKeyRange.idl:
- Modules/indexeddb/IDBKeyRangeData.cpp:
- Modules/indexeddb/IDBKeyRangeData.h:
- Modules/indexeddb/IDBObjectStore.cpp:
- Modules/indexeddb/IDBObjectStore.h:
- Modules/indexeddb/IDBObjectStore.idl:
- Modules/indexeddb/IDBOpenDBRequest.cpp:
- Modules/indexeddb/IDBOpenDBRequest.h:
- Modules/indexeddb/IDBOpenDBRequest.idl:
- Modules/indexeddb/IDBRecordIdentifier.h:
- Modules/indexeddb/IDBRequest.cpp:
- Modules/indexeddb/IDBRequest.h:
- Modules/indexeddb/IDBRequest.idl:
- Modules/indexeddb/IDBRequestCompletionEvent.cpp:
- Modules/indexeddb/IDBRequestCompletionEvent.h:
- Modules/indexeddb/IDBTransaction.cpp:
- Modules/indexeddb/IDBTransaction.h:
- Modules/indexeddb/IDBTransaction.idl:
- Modules/indexeddb/IDBTransactionMode.h:
- Modules/indexeddb/IDBTransactionMode.idl:
- Modules/indexeddb/IDBValue.cpp:
- Modules/indexeddb/IDBValue.h:
- Modules/indexeddb/IDBVersionChangeEvent.cpp:
- Modules/indexeddb/IDBVersionChangeEvent.h:
- Modules/indexeddb/IDBVersionChangeEvent.idl:
- Modules/indexeddb/IndexedDB.h:
- Modules/indexeddb/WorkerGlobalScopeIndexedDatabase.cpp:
- Modules/indexeddb/WorkerGlobalScopeIndexedDatabase.h:
- Modules/indexeddb/client/IDBConnectionProxy.cpp:
- Modules/indexeddb/client/IDBConnectionProxy.h:
- Modules/indexeddb/client/IDBConnectionToServer.cpp:
- Modules/indexeddb/client/IDBConnectionToServer.h:
- Modules/indexeddb/client/IDBConnectionToServerDelegate.h:
- Modules/indexeddb/client/TransactionOperation.cpp:
- Modules/indexeddb/client/TransactionOperation.h:
- Modules/indexeddb/server/IDBBackingStore.h:
- Modules/indexeddb/server/IDBConnectionToClient.cpp:
- Modules/indexeddb/server/IDBConnectionToClient.h:
- Modules/indexeddb/server/IDBConnectionToClientDelegate.h:
- Modules/indexeddb/server/IDBSerialization.cpp:
- Modules/indexeddb/server/IDBSerialization.h:
- Modules/indexeddb/server/IDBSerializationContext.cpp:
- Modules/indexeddb/server/IDBSerializationContext.h:
- Modules/indexeddb/server/IDBServer.cpp:
- Modules/indexeddb/server/IDBServer.h:
- Modules/indexeddb/server/IndexValueEntry.cpp:
- Modules/indexeddb/server/IndexValueEntry.h:
- Modules/indexeddb/server/IndexValueStore.cpp:
- Modules/indexeddb/server/IndexValueStore.h:
- Modules/indexeddb/server/MemoryBackingStoreTransaction.cpp:
- Modules/indexeddb/server/MemoryBackingStoreTransaction.h:
- Modules/indexeddb/server/MemoryCursor.cpp:
- Modules/indexeddb/server/MemoryCursor.h:
- Modules/indexeddb/server/MemoryIDBBackingStore.cpp:
- Modules/indexeddb/server/MemoryIDBBackingStore.h:
- Modules/indexeddb/server/MemoryIndex.cpp:
- Modules/indexeddb/server/MemoryIndex.h:
- Modules/indexeddb/server/MemoryIndexCursor.cpp:
- Modules/indexeddb/server/MemoryIndexCursor.h:
- Modules/indexeddb/server/MemoryObjectStore.cpp:
- Modules/indexeddb/server/MemoryObjectStore.h:
- Modules/indexeddb/server/MemoryObjectStoreCursor.cpp:
- Modules/indexeddb/server/MemoryObjectStoreCursor.h:
- Modules/indexeddb/server/SQLiteIDBBackingStore.cpp:
- Modules/indexeddb/server/SQLiteIDBBackingStore.h:
- Modules/indexeddb/server/SQLiteIDBCursor.cpp:
- Modules/indexeddb/server/SQLiteIDBCursor.h:
- Modules/indexeddb/server/SQLiteIDBTransaction.cpp:
- Modules/indexeddb/server/SQLiteIDBTransaction.h:
- Modules/indexeddb/server/ServerOpenDBRequest.cpp:
- Modules/indexeddb/server/ServerOpenDBRequest.h:
- Modules/indexeddb/server/UniqueIDBDatabase.cpp:
- Modules/indexeddb/server/UniqueIDBDatabase.h:
- Modules/indexeddb/server/UniqueIDBDatabaseConnection.cpp:
- Modules/indexeddb/server/UniqueIDBDatabaseConnection.h:
- Modules/indexeddb/server/UniqueIDBDatabaseTransaction.cpp:
- Modules/indexeddb/server/UniqueIDBDatabaseTransaction.h:
- Modules/indexeddb/shared/IDBCursorInfo.cpp:
- Modules/indexeddb/shared/IDBCursorInfo.h:
- Modules/indexeddb/shared/IDBCursorRecord.h:
- Modules/indexeddb/shared/IDBDatabaseInfo.cpp:
- Modules/indexeddb/shared/IDBDatabaseInfo.h:
- Modules/indexeddb/shared/IDBDatabaseNameAndVersion.h:
- Modules/indexeddb/shared/IDBError.cpp:
- Modules/indexeddb/shared/IDBError.h:
- Modules/indexeddb/shared/IDBGetAllRecordsData.cpp:
- Modules/indexeddb/shared/IDBGetAllRecordsData.h:
- Modules/indexeddb/shared/IDBGetRecordData.cpp:
- Modules/indexeddb/shared/IDBGetRecordData.h:
- Modules/indexeddb/shared/IDBIndexInfo.cpp:
- Modules/indexeddb/shared/IDBIndexInfo.h:
- Modules/indexeddb/shared/IDBIterateCursorData.cpp:
- Modules/indexeddb/shared/IDBIterateCursorData.h:
- Modules/indexeddb/shared/IDBObjectStoreInfo.cpp:
- Modules/indexeddb/shared/IDBObjectStoreInfo.h:
- Modules/indexeddb/shared/IDBRequestData.cpp:
- Modules/indexeddb/shared/IDBRequestData.h:
- Modules/indexeddb/shared/IDBResourceIdentifier.cpp:
- Modules/indexeddb/shared/IDBResourceIdentifier.h:
- Modules/indexeddb/shared/IDBResultData.cpp:
- Modules/indexeddb/shared/IDBResultData.h:
- Modules/indexeddb/shared/IDBTransactionInfo.cpp:
- Modules/indexeddb/shared/IDBTransactionInfo.h:
- Modules/indexeddb/shared/IndexKey.cpp:
- Modules/indexeddb/shared/IndexKey.h:
- WebCore.xcodeproj/project.pbxproj:
- bindings/js/IDBBindingUtilities.cpp:
- bindings/js/IDBBindingUtilities.h:
- bindings/js/JSDOMConvertIndexedDB.h:
- bindings/js/JSDOMGlobalObject.cpp:
(WebCore::JSDOMGlobalObject::scriptExecutionContext const):
(WebCore::scriptModuleLoader):
- bindings/js/JSIDBCursorCustom.cpp:
- bindings/js/JSIDBCursorWithValueCustom.cpp:
- bindings/js/JSIDBIndexCustom.cpp:
- bindings/js/JSIDBObjectStoreCustom.cpp:
- bindings/js/JSIDBRequestCustom.cpp:
- bindings/js/JSIDBSerializationGlobalObject.cpp:
- bindings/js/JSIDBSerializationGlobalObject.h:
- bindings/js/JSIDBTransactionCustom.cpp:
- bindings/js/SerializedScriptValue.cpp:
- bindings/js/SerializedScriptValue.h:
- bindings/js/WebCoreJSClientData.cpp:
(WebCore::JSVMClientData::JSVMClientData):
- bindings/js/WebCoreJSClientData.h:
- dom/Document.cpp:
(WebCore::Document::idbConnectionProxy):
(WebCore::Document::setBackForwardCacheState):
- dom/Document.h:
- dom/EmptyScriptExecutionContext.h:
- dom/EventNames.in:
- dom/EventTargetFactory.in:
- dom/ScriptExecutionContext.h:
- inspector/InspectorController.cpp:
(WebCore::InspectorController::createLazyAgents):
- inspector/agents/InspectorIndexedDBAgent.cpp:
- inspector/agents/InspectorIndexedDBAgent.h:
- loader/EmptyClients.cpp:
- page/DatabaseProvider.h:
- page/Page.cpp:
(WebCore::Page::setSessionID):
(WebCore::Page::clearIDBConnection):
- page/Page.h:
- testing/Internals.cpp:
(WebCore::Internals::numberOfIDBTransactions const):
- testing/Internals.h:
- testing/Internals.idl:
- workers/WorkerGlobalScope.cpp:
(WebCore::WorkerGlobalScope::WorkerGlobalScope):
(WebCore::WorkerGlobalScope::prepareForDestruction):
(WebCore::WorkerGlobalScope::idbConnectionProxy):
(WebCore::WorkerGlobalScope::stopIndexedDatabase):
(WebCore::WorkerGlobalScope::suspend):
(WebCore::WorkerGlobalScope::resume):
- workers/WorkerGlobalScope.h:
- workers/WorkerMessagingProxy.cpp:
(WebCore::WorkerMessagingProxy::startWorkerGlobalScope):
- workers/WorkerThread.cpp:
(WebCore::WorkerThread::WorkerThread):
(WebCore::WorkerThread::idbConnectionProxy):
- workers/WorkerThread.h:
- workers/service/context/ServiceWorkerThreadProxy.cpp:
(WebCore::idbConnectionProxy):
- worklets/WorkletGlobalScope.h:
Source/WebInspectorUI:
- Versions/Inspector-iOS-14.0.json:
- Versions/Inspector-iOS-14.5.json:
Update for removed ENABLE_INDEXED_DATABASE conditional.
Source/WebKit:
Remove ENABLE_INDEXED_DATABASE & ENABLE_INDEXED_DATABASE_IN_WORKERS conditionals.
- NetworkProcess/IndexedDB/WebIDBConnectionToClient.cpp:
- NetworkProcess/IndexedDB/WebIDBConnectionToClient.h:
- NetworkProcess/IndexedDB/WebIDBServer.cpp:
- NetworkProcess/IndexedDB/WebIDBServer.h:
- NetworkProcess/IndexedDB/WebIDBServer.messages.in:
- NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::createNetworkConnectionToWebProcess):
(WebKit::NetworkProcess::addWebsiteDataStore):
(WebKit::NetworkProcess::destroySession):
(WebKit::NetworkProcess::fetchWebsiteData):
(WebKit::NetworkProcess::deleteWebsiteData):
(WebKit::NetworkProcess::deleteWebsiteDataForOrigins):
(WebKit::NetworkProcess::deleteAndRestrictWebsiteDataForRegistrableDomains):
(WebKit::NetworkProcess::registrableDomainsWithWebsiteData):
(WebKit::NetworkProcess::prepareToSuspend):
(WebKit::NetworkProcess::resume):
(WebKit::NetworkProcess::renameOriginInWebsiteData):
(WebKit::NetworkProcess::storageQuotaManager):
(WebKit::NetworkProcess::connectionToWebProcessClosed):
- NetworkProcess/NetworkProcess.h:
(WebKit::NetworkProcess::SessionStorageQuotaManager::idbRootPath const):
- Shared/Databases/IndexedDB/IDBUtilities.cpp:
- Shared/Databases/IndexedDB/IDBUtilities.h:
- Shared/Databases/IndexedDB/WebIDBResult.cpp:
- Shared/Databases/IndexedDB/WebIDBResult.h:
- Shared/WebCoreArgumentCoders.cpp:
(IPC::ArgumentCoder<IDBKeyPath>::decode):
- Shared/WebCoreArgumentCoders.h:
- Shared/WebsiteDataStoreParameters.cpp:
(WebKit::WebsiteDataStoreParameters::encode const):
(WebKit::WebsiteDataStoreParameters::decode):
- Shared/WebsiteDataStoreParameters.h:
- UIProcess/Network/NetworkProcessProxy.cpp:
(WebKit::NetworkProcessProxy::addSession):
(WebKit::NetworkProcessProxy::createSymLinkForFileUpgrade):
- UIProcess/Network/NetworkProcessProxy.h:
- UIProcess/WebsiteData/WebsiteDataStore.cpp:
(WebKit::WebsiteDataStore::parameters):
- WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.cpp:
- WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.h:
- WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.messages.in:
- WebProcess/Databases/WebDatabaseProvider.cpp:
(WebKit::WebDatabaseProvider::idbConnectionToServerForSession):
- WebProcess/Databases/WebDatabaseProvider.h:
- WebProcess/Network/NetworkProcessConnection.cpp:
(WebKit::NetworkProcessConnection::didReceiveMessage):
(WebKit::NetworkProcessConnection::didClose):
(WebKit::NetworkProcessConnection::idbConnectionToServer):
- WebProcess/Network/NetworkProcessConnection.h:
- WebProcess/Storage/WebSWContextManagerConnection.cpp:
(WebKit::WebSWContextManagerConnection::installServiceWorker):
- WebProcess/WebProcess.cpp:
(WebKit::WebProcess::networkProcessConnectionClosed):
Source/WebKitLegacy:
Remove ENABLE_INDEXED_DATABASE & ENABLE_INDEXED_DATABASE_IN_WORKERS conditionals.
- Storage/InProcessIDBServer.cpp:
(InProcessIDBServer::dispatchTaskReply):
- Storage/InProcessIDBServer.h:
- Storage/WebDatabaseProvider.cpp:
(WebDatabaseProvider::deleteAllDatabases):
- Storage/WebDatabaseProvider.h:
Source/WebKitLegacy/mac:
Remove ENABLE_INDEXED_DATABASE & ENABLE_INDEXED_DATABASE_IN_WORKERS conditionals.
- Storage/WebDatabaseManager.mm:
(-[WebDatabaseManager deleteAllIndexedDatabases]):
Source/WebKitLegacy/win:
Remove ENABLE_INDEXED_DATABASE & ENABLE_INDEXED_DATABASE_IN_WORKERS conditionals.
- WebDatabaseManager.cpp:
(WebDatabaseManager::deleteAllIndexedDatabases):
- storage/WebDatabaseProvider.cpp:
(WebDatabaseProvider::indexedDatabaseDirectoryPath):
Source/WTF:
- wtf/PlatformEnable.h:
- wtf/PlatformEnableCocoa.h:
Remove ENABLE_INDEXED_DATABASE and ENABLE_INDEXED_DATABASE_IN_WORKERS.
Tools:
- Scripts/webkitperl/FeatureList.pm:
Remove ENABLE_INDEXED_DATABASE & ENABLE_INDEXED_DATABASE_IN_WORKERS from FeatureList.pm.
- 11:31 AM Changeset in webkit [275150] by
-
- 5 edits1 add in trunk
Compile WebKit with UBSan
<https://webkit.org/b/176131>
<rdar://problem/34174018>
Reviewed by Alexey Proskuryakov.
.:
- Makefile.shared:
- Add support for "UBSAN=YES" argument to make.
Tools:
- Scripts/set-webkit-configuration:
- Add support for --[no-]ubsan command-line switch.
- Add warning when enabling ASan and TSan together.
(updateOrDeleteConfigurationFile):
- Extract common code for updating configuration files.
- Scripts/webkitdirs.pm:
(readSanitizerConfiguration): Add.
- Extract common code for reading sanitizer configuration files.
(determineASanIsEnabled):
(determineTSanIsEnabled):
(determineUBSanIsEnabled): Add.
- Make use of readSanitizerConfiguration().
(ubsanIsEnabled): Add.
(XcodeOptions):
- Add command-line switches for UBSan.
(generateBuildSystemFromCMakeProject): Ditto.
- sanitizer/ubsan.xcconfig: Add.
- Contains Xcode settings for enabling UBSan.
- 10:46 AM Changeset in webkit [275149] by
-
- 3 edits in trunk/Source/WebCore
REGRESSION(r274527): [GStreamer] media/webaudio-background-playback.html now failing
https://bugs.webkit.org/show_bug.cgi?id=223840
Patch by Philippe Normand <pnormand@igalia.com> on 2021-03-28
Reviewed by Chris Dumez.
r274527 actually exposed a bug that was present since r271197. The AudioDestination pipeline
was not stopping properly because webkitGstSetElementStateSynchronously() was returning too
early.
This patch also includes a few improvements in the webaudiosrc element, most notably
regarding its preroll state. The element now stops emitting buffers downstream as soon as
the AudioDestination is scheduled to stop.
- platform/audio/gstreamer/WebKitWebAudioSourceGStreamer.cpp:
(webKitWebAudioSrcRenderAndPushFrames): Return early as soon as the destination is scheduled to stop.
(webKitWebAudioSrcChangeState): Synchronize preroll state with element state.
- platform/graphics/gstreamer/GStreamerCommon.cpp:
(WebCore::webkitGstSetElementStateSynchronously): targetState might be lower than current
state, e.g, when stopping a running pipeline, so we can't return early for those cases,
otherwise the pipeline won't stop.
- 10:40 AM Changeset in webkit [275148] by
-
- 2 edits in trunk/Source/WebCore
Unreviewed, add an exception for a heap allocation on the WebAudio thread.
I recently added assertions to catch heap allocations on the WebAudio threads and failed to
mark this one as allowed (for now).
- Modules/webaudio/BaseAudioContext.cpp:
(WebCore::BaseAudioContext::markForDeletion):
- 6:55 AM Changeset in webkit [275147] by
-
- 5 edits4 adds in trunk
Use-after-move in UserMediaPermissionRequestManagerProxy::checkUserMediaPermissionForSpeechRecognition
https://bugs.webkit.org/show_bug.cgi?id=223842
<rdar://problem/75791668>
Reviewed by Eric Carlson.
Source/WebKit:
Use request decision handler instead of already moved completion handler.
Tests: fast/speechrecognition/start-recognition-after-denied-gum.html
fast/speechrecognition/start-recognition-after-gum.html
- UIProcess/UserMediaPermissionRequestManagerProxy.cpp:
(WebKit::UserMediaPermissionRequestManagerProxy::checkUserMediaPermissionForSpeechRecognition):
LayoutTests:
- fast/speechrecognition/start-recognition-after-denied-gum-expected.txt: Added.
- fast/speechrecognition/start-recognition-after-denied-gum.html: Added.
- fast/speechrecognition/start-recognition-after-gum-expected.txt: Added.
- fast/speechrecognition/start-recognition-after-gum.html: Added.
- platform/mac-wk1/TestExpectations:
- platform/win/TestExpectations:
- 3:00 AM WebKitGTK/2.32.x edited by
- (diff)