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 -showsdks
where 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 -showsdks
to 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
requestAnimationFrame
just likesetTimeout
https://bugs.webkit.org/show_bug.cgi?id=223775
<rdar://problem/75860868>
Reviewed by Geoffrey Garen.
Source/WebCore:
setTimeout
andrequestAnimationFrame
are 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_pausedInternal
is 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 data
toApplePayModifier
https://bugs.webkit.org/show_bug.cgi?id=223621
<rdar://problem/75720879>
Reviewed by Wenson Hsieh.
The
object data
inPaymentDetailsModifier
has a sibling propertyrequired DOMString supportedMethods
which acts as a "guard" to make sure that the structure ofdata
is only limited to thatsupportedMethods
meaning that there's no concern over naming collisions between two differentsupportedMethods
. As such,
theobject data
added toPaymentItem
andPaymentDetailsBase
andPaymentShippingOption
should really
be part ofApplePayModifier
(which is what theobject data
inPaymentDetailsModifier
is 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*Data
objects, get the
first applicableApplePayModifier
from the list ofPaymentDetailsModifier
and 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)
Mar 27, 2021:
- 8:26 PM Changeset in webkit [275146] by
-
- 3 edits in trunk/Source/WebKit
Have DisplayLink compute its displayNominalFramesPerSecond just once
https://bugs.webkit.org/show_bug.cgi?id=223845
Reviewed by Zalan Bujtas.
Rather than calling CVDisplayLinkGetNominalOutputVideoRefreshPeriod() every time,
just store displayNominalFramesPerSecond in a member variable.
- UIProcess/mac/DisplayLink.cpp:
(WebKit::DisplayLink::DisplayLink):
(WebKit::DisplayLink::nominalFramesPerSecondFromDisplayLink):
(WebKit::DisplayLink::nominalFramesPerSecond const): Deleted.
- UIProcess/mac/DisplayLink.h:
(WebKit::DisplayLink::nominalFramesPerSecond const):
- 8:22 PM Changeset in webkit [275145] by
-
- 2 edits1 add in trunk/Tools/buildstream
[Flatpak SDK] Backport GTK4 Clipboard fix for GdkContentProviderUnion
https://bugs.webkit.org/show_bug.cgi?id=223813
Reviewed by Philippe Normand.
From https://gitlab.gnome.org/GNOME/gtk/-/merge_requests/3346
Will fix some clipbaoard crashes.
- elements/sdk/gtk.bst:
- patches/gtk-clipboard-Fix-a-crash-when-GdkContentProviderUnion-d.patch: Added.
- 7:52 PM Changeset in webkit [275144] by
-
- 21 edits in trunk/Source
Allow DisplayRefreshMonitor to be more long-lived objects
https://bugs.webkit.org/show_bug.cgi?id=223844
Reviewed by Chris Dumez.
The existing behavior for DisplayRefreshMonitors was that they were created and destroyed
frequently, as their clients are registered and unregistered. In addition, some of
their subclasses had duplicated logic related to how often they fired without clients
before they were removed.
The 1:1 correspondance between DisplayRefreshMonitors and physical displays makes them
a useful place to store per-display information (like refresh rate), which should
persist whether or not they have clients, so this change prepares for that.
The main changes in this patch are:
- Provide virtual startNotificationMechanism()/stopNotificationMechanism() functions on DisplayRefreshMonitor that subclasses can use to start their CVDisplayLink or related functionality.
- Provide some shared maxUnscheduledFireCount logic that subclasses can tune to provide the hysteresis used to control the start/stop of the underlying notification mechanism.
- Provide a shared dispatchDisplayDidRefresh() function that most implementations can use.
Source/WebCore:
DisplayRefreshMonitorManager no longer destroys DisplayRefreshMonitors when they lose
all their clients. This means that DisplayRefreshMonitors are never removed, but there
should only ever be as many as there are physical displays, and they are only
active if being scheduled by clients.
- loader/EmptyClients.cpp:
- platform/graphics/DisplayRefreshMonitor.cpp:
(WebCore::DisplayRefreshMonitor::stop):
(WebCore::DisplayRefreshMonitor::removeClient):
(WebCore::DisplayRefreshMonitor::requestRefreshCallback):
(WebCore::DisplayRefreshMonitor::firedAndReachedMaxUnscheduledFireCount):
(WebCore::DisplayRefreshMonitor::displayLinkFired):
(WebCore::DisplayRefreshMonitor::dispatchDisplayDidRefresh):
(WebCore::DisplayRefreshMonitor::displayDidRefresh):
- platform/graphics/DisplayRefreshMonitor.h:
(WebCore::DisplayRefreshMonitor::setMaxUnscheduledFireCount):
(WebCore::DisplayRefreshMonitor::mutex):
(WebCore::DisplayRefreshMonitor::displayLinkFired): Deleted.
(WebCore::DisplayRefreshMonitor::stop): Deleted.
(WebCore::DisplayRefreshMonitor::shouldBeTerminated const): Deleted.
(WebCore::DisplayRefreshMonitor::isActive const): Deleted.
(WebCore::DisplayRefreshMonitor::setIsActive): Deleted.
- platform/graphics/DisplayRefreshMonitorManager.cpp:
(WebCore::DisplayRefreshMonitorManager::unregisterClient):
(WebCore::DisplayRefreshMonitorManager::displayDidRefresh):
(WebCore::DisplayRefreshMonitorManager::displayWasUpdated):
- platform/graphics/gtk/DisplayRefreshMonitorGtk.cpp:
(WebCore::DisplayRefreshMonitorGtk::~DisplayRefreshMonitorGtk):
(WebCore::onFrameClockUpdate):
(WebCore::DisplayRefreshMonitorGtk::stop):
(WebCore::DisplayRefreshMonitorGtk::startNotificationMechanism):
(WebCore::DisplayRefreshMonitorGtk::stopNotificationMechanism):
(WebCore::DisplayRefreshMonitorGtk::requestRefreshCallback): Deleted.
(WebCore::DisplayRefreshMonitorGtk::displayLinkFired): Deleted.
- platform/graphics/gtk/DisplayRefreshMonitorGtk.h:
- platform/graphics/ios/DisplayRefreshMonitorIOS.h:
- platform/graphics/ios/DisplayRefreshMonitorIOS.mm:
(-[WebDisplayLinkHandler setPaused:]):
(WebCore::DisplayRefreshMonitorIOS::DisplayRefreshMonitorIOS):
(WebCore::DisplayRefreshMonitorIOS::~DisplayRefreshMonitorIOS):
(WebCore::DisplayRefreshMonitorIOS::stop):
(WebCore::DisplayRefreshMonitorIOS::startNotificationMechanism):
(WebCore::DisplayRefreshMonitorIOS::stopNotificationMechanism):
(WebCore::DisplayRefreshMonitorIOS::requestRefreshCallback): Deleted.
(WebCore::DisplayRefreshMonitorIOS::displayLinkFired): Deleted.
- platform/graphics/mac/LegacyDisplayRefreshMonitorMac.cpp:
(WebCore::LegacyDisplayRefreshMonitorMac::LegacyDisplayRefreshMonitorMac):
(WebCore::LegacyDisplayRefreshMonitorMac::stop):
(WebCore::LegacyDisplayRefreshMonitorMac::dispatchDisplayDidRefresh):
(WebCore::LegacyDisplayRefreshMonitorMac::startNotificationMechanism):
(WebCore::LegacyDisplayRefreshMonitorMac::stopNotificationMechanism):
(WebCore::LegacyDisplayRefreshMonitorMac::requestRefreshCallback): Deleted.
(WebCore::LegacyDisplayRefreshMonitorMac::displayLinkFired): Deleted.
- platform/graphics/mac/LegacyDisplayRefreshMonitorMac.h:
- platform/graphics/win/DisplayRefreshMonitorWin.cpp:
(WebCore::DisplayRefreshMonitorWin::DisplayRefreshMonitorWin):
(WebCore::DisplayRefreshMonitorWin::startNotificationMechanism):
(WebCore::DisplayRefreshMonitorWin::stopNotificationMechanism):
(WebCore::DisplayRefreshMonitorWin::requestRefreshCallback): Deleted.
(WebCore::DisplayRefreshMonitorWin::displayLinkFired): Deleted.
- platform/graphics/win/DisplayRefreshMonitorWin.h:
Source/WebKit:
- Shared/CoordinatedGraphics/threadedcompositor/ThreadedDisplayRefreshMonitor.cpp:
- Shared/CoordinatedGraphics/threadedcompositor/ThreadedDisplayRefreshMonitor.h:
- UIProcess/mac/DisplayLink.cpp:
(WebKit::DisplayLink::DisplayLink):
(WebKit::DisplayLink::~DisplayLink):
(WebKit::DisplayLink::addObserver):
(WebKit::DisplayLink::notifyObserversDisplayWasRefreshed):
- WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDisplayRefreshMonitor.h:
- WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDisplayRefreshMonitor.mm:
(WebKit::RemoteLayerTreeDisplayRefreshMonitor::requestRefreshCallback):
- WebProcess/WebPage/mac/DisplayRefreshMonitorMac.cpp:
(WebKit::DisplayRefreshMonitorMac::DisplayRefreshMonitorMac):
(WebKit::DisplayRefreshMonitorMac::~DisplayRefreshMonitorMac):
(WebKit::DisplayRefreshMonitorMac::dispatchDisplayDidRefresh):
(WebKit::DisplayRefreshMonitorMac::startNotificationMechanism):
(WebKit::DisplayRefreshMonitorMac::stopNotificationMechanism):
(WebKit::DisplayRefreshMonitorMac::requestRefreshCallback): Deleted.
(WebKit::DisplayRefreshMonitorMac::displayLinkFired): Deleted.
- WebProcess/WebPage/mac/DisplayRefreshMonitorMac.h:
- 5:40 PM Changeset in webkit [275143] by
-
- 2 edits in trunk/Source/WebCore
Don't add Frame as an opaque root of DOMWindow
https://bugs.webkit.org/show_bug.cgi?id=223838
Reviewed by Simon Fraser.
Don't add Frame as an opaque root of DOMWindow since we don't use Frame
as an opaque root of any JS wrappers since r248276.
- bindings/js/JSDOMWindowCustom.cpp:
(WebCore::JSDOMWindow::visitAdditionalChildren):
- 4:26 PM Changeset in webkit [275142] by
-
- 2 edits in trunk/Source/WebCore
UBSan: runtime error: load of value <unknown>, which is not a valid value for type 'const WebCore::RealtimeMediaSourceCapabilities::EchoCancellation'
<https://webkit.org/b/223821>
Reviewed by Chris Dumez.
Tests: fast/mediastream/MediaDevices-addEventListener.html
fast/mediastream/constraint-intrinsic-size.html
http/tests/media/media-stream/enumerate-devices-iframe-allow-attribute.html
http/tests/media/media-stream/get-display-media-iframe-allow-attribute.html
imported/w3c/web-platform-tests/mediacapture-record/MediaRecorder-bitrate.https.html
webrtc/addICECandidate-closed.html
webrtc/ice-candidate-sdpMLineIndex.html
webrtc/libwebrtc/descriptionGetters.html
webrtc/peerconnection-page-cache.html
- platform/mediastream/RealtimeMediaSourceCapabilities.h:
(WebCore::CapabilityValueOrRange::union ValueUnion):
- Make asDouble the first union member so C++ member initializers set all memory.
(WebCore::CapabilityValueOrRange::m_minOrValue):
(WebCore::CapabilityValueOrRange::m_max):
(WebCore::CapabilityValueOrRange::m_type):
(WebCore::RealtimeMediaSourceCapabilities::m_echoCancellation):
- Provide member initializers. Setting a default value for m_echoCancellation fixes the bug.
(WebCore::RealtimeMediaSourceCapabilities::encode const):
- Drive-by clean-up of encoder statement.
- 3:34 PM Changeset in webkit [275141] by
-
- 7 edits in trunk/Source/WebCore
Fix build with ENABLE_CSS3_TEXT
https://bugs.webkit.org/show_bug.cgi?id=223841
Reviewed by Darin Adler.
We also remove the -webkit- prefix for the "hanging" and "each-line" keywords since
these are well specified by the CSS Text Module Level 3 spec.
- css/CSSComputedStyleDeclaration.cpp:
(WebCore::ComputedStyleExtractor::valueForPropertyInStyle):
- css/CSSValueKeywords.in:
- css/parser/CSSPropertyParser.cpp:
(WebCore::consumeTextIndent):
- rendering/style/RenderStyle.h:
(WebCore::RenderStyle::setTextIndentType):
(WebCore::RenderStyle::setTextAlignLast):
(WebCore::RenderStyle::setTextJustify):
- rendering/style/StyleRareInheritedData.cpp:
(WebCore::StyleRareInheritedData::StyleRareInheritedData):
- style/StyleBuilderCustom.h:
(WebCore::Style::BuilderCustom::applyValueTextIndent):
- 2:05 PM Changeset in webkit [275140] by
-
- 2 edits in trunk/Source/WTF
wtf/Vector.h:1276:88: runtime error: reference binding to null pointer of type 'const WebCore::Style::RuleFeature'
https://bugs.webkit.org/show_bug.cgi?id=223828
Reviewed by David Kilzer.
Fix issue found by UBSan in Vector::append(const U*, size_t):
wtf/Vector.h:1276:88: runtime error: reference binding to null pointer of type 'const WebCore::Style::RuleFeature'
wtf/Vector.h:1276:88: runtime error: reference binding to null pointer of type 'const WebCore::LayoutRect'
wtf/Vector.h:1276:88: runtime error: reference binding to null pointer of type 'const WTF::RefPtr<WebCore::CSSStyleSheet, WTF::RawPtrTraits<WebCore::CSSStyleSheet>, WTF::DefaultRefDerefTraits<WebCore::CSSStyleSheet> >'
- wtf/Vector.h:
(WTF::Malloc>::append):
Return early if dataSize is 0. For some call sites, the pointer may be null and dataSize is 0. In such cases,
we should just return early instead of proceeding and using the null pointer. I believe this can happen if
you call Vector::appendVector() with an empty Vector for example.
- 1:57 PM Changeset in webkit [275139] by
-
- 8 edits in branches/safari-612.1.7-branch/Source
Versioning.
WebKit-7612.1.7.11
- 1:54 PM Changeset in webkit [275138] by
-
- 8 edits in branches/safari-612.1.7-branch/Source
Versioning.
WebKit-7612.1.7.10
- 11:52 AM Changeset in webkit [275137] by
-
- 21 edits in trunk
PCM: Send report to both click source and attribution destination website
https://bugs.webkit.org/show_bug.cgi?id=223615
<rdar://problem/75849443>
Reviewed by Brent Fulgham.
Source/WebCore:
Introduce 2 new structs for storing the earliest time to send and
seconds until send for the source and destination sites.
- loader/PrivateClickMeasurement.cpp:
(WebCore::PrivateClickMeasurement::isValid const):
(WebCore::PrivateClickMeasurement::hasPreviouslyBeenReported):
(WebCore::randomlyBetweenTwentyFourAndFortyEightHours):
(WebCore::PrivateClickMeasurement::attributeAndGetEarliestTimeToSend):
- loader/PrivateClickMeasurement.h:
(WebCore::PrivateClickMeasurement::AttributionSecondsUntilSendData::hasValidSecondsUntilSendValues):
(WebCore::PrivateClickMeasurement::AttributionSecondsUntilSendData::minSecondsUntilSend):
(WebCore::PrivateClickMeasurement::AttributionSecondsUntilSendData::encode const):
(WebCore::PrivateClickMeasurement::AttributionSecondsUntilSendData::decode):
(WebCore::PrivateClickMeasurement::AttributionTimeToSendData::earliestTimeToSend):
(WebCore::PrivateClickMeasurement::AttributionTimeToSendData::latestTimeToSend):
(WebCore::PrivateClickMeasurement::AttributionTimeToSendData::attributionReportEndpoint):
(WebCore::PrivateClickMeasurement::AttributionTimeToSendData::encode const):
(WebCore::PrivateClickMeasurement::AttributionTimeToSendData::decode):
(WebCore::PrivateClickMeasurement::timesToSend const):
(WebCore::PrivateClickMeasurement::setTimesToSend):
(WebCore::PrivateClickMeasurement::encode const):
(WebCore::PrivateClickMeasurement::decode):
(WebCore::PrivateClickMeasurement::earliestTimeToSend const): Deleted.
(WebCore::PrivateClickMeasurement::setEarliestTimeToSend): Deleted.
Source/WebKit:
- NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp:
Move these queries to the correct INSERT OR REPLACE category. Stop
inserting null for earliestTimeToSendToDestination and starting
binding a parameter to it now that we are supporting reports to both
sites.
Now that earliestTimeToSend* can be null if a report has been sent
to a site, we need queries to set the value to null, and also need
to sort attributions by the minimum of either the two reporting times,
or the non-null time if one is null.
(WebKit::ResourceLoadStatisticsDatabaseStore::destroyStatements):
(WebKit::ResourceLoadStatisticsDatabaseStore::buildPrivateClickMeasurementFromDatabase):
(WebKit::ResourceLoadStatisticsDatabaseStore::insertPrivateClickMeasurement):
(WebKit::ResourceLoadStatisticsDatabaseStore::attributePrivateClickMeasurement):
We should not attribute a PCM value if it has already been reported to
either the source or destination. This is covered by checking
secondsUntilSend.hasValidSecondsUntilSendValues() and
previouslyAttributed.value().hasPreviouslyBeenReported() before
inserting anything into the attributed PCM table.
(WebKit::ResourceLoadStatisticsDatabaseStore::earliestTimesToSend):
(WebKit::ResourceLoadStatisticsDatabaseStore::markReportAsSentToSource):
(WebKit::ResourceLoadStatisticsDatabaseStore::markReportAsSentToDestination):
(WebKit::ResourceLoadStatisticsDatabaseStore::clearSentAttribution):
Clear a value from the attributed table only if it has been sent to
both source and destination site. Otherwise, set the corresponding
attribution endpoint to null so we don't send it here again.
(WebKit::ResourceLoadStatisticsDatabaseStore::markAttributedPrivateClickMeasurementsAsExpiredForTesting):
For the sake of testing we can set the destination earliest time to
send to null. We are only confirming here that the expired attribution
gets sent.
- NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.h:
- NetworkProcess/Classifier/ResourceLoadStatisticsMemoryStore.h:
- NetworkProcess/Classifier/ResourceLoadStatisticsStore.h:
- NetworkProcess/Classifier/WebResourceLoadStatisticsStore.cpp:
(WebKit::WebResourceLoadStatisticsStore::attributePrivateClickMeasurement):
(WebKit::WebResourceLoadStatisticsStore::clearSentAttribution):
- NetworkProcess/Classifier/WebResourceLoadStatisticsStore.h:
- NetworkProcess/PrivateClickMeasurementManager.cpp:
(WebKit::PrivateClickMeasurementManager::storeUnattributed):
(WebKit::PrivateClickMeasurementManager::getTokenPublicKey):
We currently have no way of setting the destination token URL site for
testing. To avoid flakiness, we should not make a ping load for the
token URL if we are reporting to the destination in test mode.
(WebKit::PrivateClickMeasurementManager::attribute):
(WebKit::PrivateClickMeasurementManager::fireConversionRequest):
(WebKit::PrivateClickMeasurementManager::fireConversionRequestImpl):
(WebKit::PrivateClickMeasurementManager::clearSentAttribution):
(WebKit::PrivateClickMeasurementManager::firePendingAttributionRequests):
- NetworkProcess/PrivateClickMeasurementManager.h:
Tools:
Update API tests to check for a valid time to send for both the source
and destination site.
- TestWebKitAPI/Tests/WebCore/PrivateClickMeasurement.cpp:
(TestWebKitAPI::TEST):
LayoutTests:
Layout test coverage.
- http/tests/privateClickMeasurement/resources/conversionFilePath.py:
- http/tests/privateClickMeasurement/resources/conversionReport.py:
- http/tests/privateClickMeasurement/resources/fraudPreventionTestURL.py:
- http/tests/privateClickMeasurement/resources/getConversionData.py:
- http/tests/privateClickMeasurement/send-attribution-conversion-request-expected.txt:
- http/tests/privateClickMeasurement/send-attribution-conversion-request.html:
- 11:31 AM Changeset in webkit [275136] by
-
- 2 edits in trunk/Source/WebKit
Remove DisplayRefreshMonitor::handleDisplayRefreshedNotificationOnMainThread()
https://bugs.webkit.org/show_bug.cgi?id=223837
Patch by Tyler Wilcock <Tyler Wilcock> on 2021-03-27
Reviewed by Simon Fraser.
Fixes build for GTK + WPE after
https://trac.webkit.org/changeset/275134/webkit.
Quoting that revision:
handleDisplayRefreshedNotificationOnMainThread() is an anachronism left over from
the non-main-thread nature of the CVDisplayLink callback. There's no need to burden
all subclasses of DisplayRefreshMonitor with that detail.
- Shared/CoordinatedGraphics/threadedcompositor/ThreadedDisplayRefreshMonitor.cpp:
(WebKit::ThreadedDisplayRefreshMonitor::invalidate):
(WebKit::ThreadedDisplayRefreshMonitor::displayRefreshCallback):
Replace call to DisplayRefreshMonitor::handleDisplayRefreshedNotificationOnMainThread(this)
with displayDidRefresh().
- 10:15 AM Changeset in webkit [275135] by
-
- 2 edits in trunk/Source/WebKit
Fix leaks in WKInspectorResourceURLSchemeHandler
<https://webkit.org/b/223824>
Reviewed by Joseph Pecoraro.
- UIProcess/Inspector/mac/WKInspectorResourceURLSchemeHandler.mm:
(-[WKInspectorResourceURLSchemeHandler webView:startURLSchemeTask:]):
- Make use of adoptNS() when assigning a newly allocated, +1 retained Objective-C object to a RetainPtr<>.
- Also fix leak of local NSHTTPURLResponse object by using a RetainPtr<>.
- 9:01 AM Changeset in webkit [275134] by
-
- 10 edits in trunk/Source
Remove DisplayRefreshMonitor::handleDisplayRefreshedNotificationOnMainThread()
https://bugs.webkit.org/show_bug.cgi?id=223837
Reviewed by Tim Horton.
Source/WebCore:
handleDisplayRefreshedNotificationOnMainThread() is an anachronism left over from
the non-main-thread nature of the CVDisplayLink callback. There's no need to burden
all subclasses of DisplayRefreshMonitor with that detail.
- platform/graphics/DisplayRefreshMonitor.cpp:
(WebCore::DisplayRefreshMonitor::displayDidRefresh):
(WebCore::DisplayRefreshMonitor::handleDisplayRefreshedNotificationOnMainThread): Deleted.
- platform/graphics/DisplayRefreshMonitor.h:
- platform/graphics/gtk/DisplayRefreshMonitorGtk.cpp:
(WebCore::DisplayRefreshMonitorGtk::displayLinkFired):
- platform/graphics/ios/DisplayRefreshMonitorIOS.mm:
(WebCore::DisplayRefreshMonitorIOS::displayLinkFired):
- platform/graphics/mac/LegacyDisplayRefreshMonitorMac.cpp:
(WebCore::LegacyDisplayRefreshMonitorMac::displayLinkFired):
- platform/graphics/win/DisplayRefreshMonitorWin.cpp:
(WebCore::DisplayRefreshMonitorWin::displayLinkFired):
Source/WebKit:
handleDisplayRefreshedNotificationOnMainThread() is an anachronism left over from
the non-main-thread nature of the CVDisplayLink callback. There's no need to burden
all subclasses of DisplayRefreshMonitor with that detail.
- WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDisplayRefreshMonitor.mm:
(WebKit::RemoteLayerTreeDisplayRefreshMonitor::didUpdateLayers):
- WebProcess/WebPage/mac/DisplayRefreshMonitorMac.cpp:
(WebKit::DisplayRefreshMonitorMac::displayLinkFired):
- 6:51 AM Changeset in webkit [275133] by
-
- 4 edits2 adds in trunk
[Multicolumn] Do not try to re-validate a multicol spanner when the renderer is moved internally
https://bugs.webkit.org/show_bug.cgi?id=223836
<rdar://75742694>
Reviewed by Ryosuke Niwa.
Source/WebCore:
When a renderer becomes a multicol spanner
- it is moved out of its original tree position and placed as a sibling of the enclosing multicolumn flow and
- a spanner placeholder is constructed and inserted at the original position
This patch fixes the case when an already placed multicol spanner is internally moved (e.g. collapsing an anonymous block parent)
and we attempt to re-insert this spanner to the multicolumn flow. No spanner state should change due to internal re-parenting.
Test: fast/multicol/spanner-get-re-added-on-move-crash.html
- rendering/updating/RenderTreeBuilder.cpp:
(WebCore::RenderTreeBuilder::attachToRenderElementInternal):
LayoutTests:
- TestExpectations:
- fast/multicol/spanner-get-re-added-on-move-crash-expected.txt: Added.
- fast/multicol/spanner-get-re-added-on-move-crash.html: Added.
- 3:52 AM Changeset in webkit [275132] by
-
- 3 edits in trunk
REGRESSION(r275111) [GLIB] Fix build with new derived sources and forwarding headers scheme
https://bugs.webkit.org/show_bug.cgi?id=223834
Unreviewed build fix.
- Source/cmake/OptionsGTK.cmake:
- Source/cmake/OptionsWPE.cmake:
Mar 26, 2021:
- 9:47 PM Changeset in webkit [275131] by
-
- 2 edits in trunk/Source/WebKitLegacy/mac
WebFeature class fails to copy/retain its instance variables
<https://webkit.org/b/223823>
Reviewed by Sam Weinig.
- WebView/WebFeature.m:
(-[WebFeature initWithKey:preferenceKey:name:details:defaultValue:hidden:]):
- Copy (and thereby retain) instance variables, fulfilling the promise of its @property declarations and preventing use-after-release issues.
(-[WebFeature dealloc]): Add.
- Release the instance variables copied in the constructor.
- 9:24 PM Changeset in webkit [275130] by
-
- 2 edits in trunk/Source/WebCore
Dirty layout for floating children of inline on full layout
https://bugs.webkit.org/show_bug.cgi?id=223660
Patch by Ian Gilbert <iang@apple.com> on 2021-03-26
Reviewed by Zalan Bujtas.
Avoid consuming an object on an empty line when that object is floating or out-of-flow.
- rendering/line/BreakingContext.h:
(WebCore::BreakingContext::handleEndOfLine):
- 8:52 PM Changeset in webkit [275129] by
-
- 2 edits in trunk/Source/WebCore
Avoid heap allocation on the audio thread in BaseAudioContext::scheduleNodeDeletion()
https://bugs.webkit.org/show_bug.cgi?id=223825
Reviewed by Darin Adler.
Avoid heap allocation on the audio thread in BaseAudioContext::scheduleNodeDeletion()
for performance. Stop calling appendVector() on m_nodesToDelete since m_nodesToDelete
is always empty. We can use std::exchange() instead of appendVector() and clear() to
avoid the heap allocation.
The reason m_nodesToDelete is always empty is that BaseAudioContext::scheduleNodeDeletion()
relies on the m_isDeletionScheduled flag to avoid adding to m_nodesToDelete until
m_nodesToDelete is cleared on the main thread and the m_isDeletionScheduled gets reset.
- Modules/webaudio/BaseAudioContext.cpp:
(WebCore::BaseAudioContext::clear):
(WebCore::BaseAudioContext::scheduleNodeDeletion):
- 8:27 PM Changeset in webkit [275128] by
-
- 5 edits in trunk/Source
Web Inspector: Grid layout labels can be drawn outside the viewport
https://bugs.webkit.org/show_bug.cgi?id=221972
Reviewed by BJ Burg.
Source/WebCore:
Added logic for a best-effort attempt to make sure that layout labels are drawn within the document's bounds, or
at least within the grid itself. Labels are measured and adjusted so that if they would be drawn outside the
document's bounds, they will be pulled inside the grid. This does not guarantee that all labels will be visible
all the time. It is still possible an entire side of a grid will be outside the document's bounds, and this does
not attempt to correct for this case, as the desired anchor points for labels will be outside of the visible
area of the document.
- inspector/InspectorOverlay.cpp:
(WebCore::InspectorOverlay::fontForLayoutLabel):
- Added helper that creates the FontCascade for layout labels, which is done in a few different places.
(WebCore::InspectorOverlay::backgroundPathForLayoutLabel):
- Added helper to create the Path for the background of layout labels, which is now used in
WebKit::WKInspectorHighlightView
.
(WebCore::expectedSizeForLayoutLabel):
- Gets the expected size of the label based on the text and arrow direction, and does so without needing to
create the entire label background's path.
(WebCore::InspectorOverlay::drawLayoutLabel):
- Support new
LabelArrowEdgePosition
property
(WebCore::InspectorOverlay::drawGridOverlay):
(WebCore::buildLabel):
(WebCore::InspectorOverlay::buildGridOverlay):
- inspector/InspectorOverlay.h:
(WebCore::InspectorOverlay::Highlight::GridHighlightOverlay::Label::encode const):
(WebCore::InspectorOverlay::Highlight::GridHighlightOverlay::Label::decode):
Source/WebKit:
Add support for the new
WebCore::InspectorOverlay::LabelArrowEdgePosition
property to grid overlays on iOS.
- UIProcess/Inspector/ios/WKInspectorHighlightView.mm:
(createLayoutLabelLayer):
- Support the new
WebCore::InspectorOverlay::LabelArrowEdgePosition
. - Use new helpers in WebCore::InspectorOverlay to reduce code duplication.
(-[WKInspectorHighlightView _createGridOverlayLayer:scale:]):
- 8:09 PM Changeset in webkit [275127] by
-
- 4 edits in trunk
REGRESSION(r275111) [GLIB] Fix build with new derived sources and forwarding headers scheme
https://bugs.webkit.org/show_bug.cgi?id=223834
Unreviewed build fix.
.:
Buildfix for now. Actual removal of older scheme will come in the
future.
- Source/cmake/OptionsWPE.cmake: Add some missing variables with the
per framework source and header dirs.
Tools:
- TestWebKitAPI/glib/CMakeLists.txt: Add some missing variables with
needed include headers.
- 6:37 PM Changeset in webkit [275126] by
-
- 3 edits in trunk/Source/WebCore
[RenderTreeBuilder] No need to update the counters when the renderer is moved internally
https://bugs.webkit.org/show_bug.cgi?id=223801
<rdar://75835208>
Reviewed by Ryosuke Niwa.
When the renderer re-parenting is initiated by an "internal move" (e.g. anonymous block parent is not needed anymore so all the descendants
are moved "one level" up), we don't need to re-compute the counters. Their state should not be any different after this re-parenting.
- rendering/updating/RenderTreeBuilder.cpp:
(WebCore::RenderTreeBuilder::attachToRenderElementInternal):
(WebCore::RenderTreeBuilder::move):
- rendering/updating/RenderTreeBuilder.h:
- 6:00 PM Changeset in webkit [275125] by
-
- 2 edits in trunk/Source/WTF
REGRESSION (r275038?): Perf test IndexedDB/stress/large-binary-keys.html failing with logging about memory pressure events
https://bugs.webkit.org/show_bug.cgi?id=223826
<rdar://problem/75906134>
Reviewed by Darin Adler.
Use RELEASE_LOG() instead of WTFLogAlways() to log memory pressure events, so that they don't
show on stdout in the performance tests and make them fail.
- wtf/cocoa/MemoryPressureHandlerCocoa.mm:
(WTF::MemoryPressureHandler::install):
- 5:56 PM Changeset in webkit [275124] by
-
- 2 edits in trunk/LayoutTests
[ macOS ] inspector/debugger/csp-exceptions.html is a flakey text failure
https://bugs.webkit.org/show_bug.cgi?id=223830
Unreviewed test gardening.
- platform/mac/TestExpectations: Updated test expectations to Pass Failure Timeout while test is being reviewed. I added Timeout to the expectation because while the failure is a text failure, the text failure indicates that it's a timeout.
- 5:02 PM Changeset in webkit [275123] by
-
- 2 edits in trunk/Tools
Fix TypeError: Can't mix strings and bytes in path components in Tools/Scripts/dump-class-layout
https://bugs.webkit.org/show_bug.cgi?id=223819
Patch by Tyler Wilcock <Tyler Wilcock> on 2021-03-26
Reviewed by Jonathan Bedard.
Prior to this patch, I received this error when trying to run the
dump-class-layout script. This happens becausewebkit_build_dir()
returns
bytes rather than a string.
$ dump-class-layout -c Release WebCore Pair
Traceback (most recent call last):
File "/home/twilco/projects/webkit/Tools/Scriptsdump-class-layout", line 88, in <module>
main()
File "/home/twilco/projects/webkit/Tools/Scriptsdump-class-layout", line 80, in main
target_path = os.path.join(build_dir, args.config, args.framework + ".framework", args.framework);
File "/usr/lib/python3.9/posixpath.py", line 90, in join
genericpath._check_arg_types('join', a, *p)
File "/usr/lib/python3.9/genericpath.py", line 155, in _check_arg_types
raise TypeError("Can't mix strings and bytes in path components") from None
TypeError: Can't mix strings and bytes in path components
- Scripts/dump-class-layout:
Update
webkit_build_dir()
to decode its output into a UTF-8 string.
- 4:47 PM Changeset in webkit [275122] by
-
- 7 edits in trunk/Tools
System installing webkitcorepy can break certain scripts
https://bugs.webkit.org/show_bug.cgi?id=223822
<rdar://problem/75905163>
Rubber-stamped by Alan Coon.
- Scripts/libraries/resultsdbpy/resultsdbpy/example/environment.py:
- Scripts/test-lldb-webkit: Replace sys.path.append with sys.path.insert.
- Scripts/webkitpy/init.py: Only put webkitcorepy path into sys.path if it isn't already there.
- Scripts/webkitpy/benchmark_runner/http_server_driver/http_server/twisted_http_server.py:
Replace sys.path.append with sys.path.insert.
- Scripts/webkitpy/common/system/executive_unittest.py: Ditto.
- Scripts/webkitpy/port/config_standalone.py: Ditto.
- 4:32 PM Changeset in webkit [275121] by
-
- 2 edits in trunk/Source/WebCore
AX: crash at aom.apple.WebCore: WebCore::AccessibilityProgressIndicator::element const
https://bugs.webkit.org/show_bug.cgi?id=223800
rdar://75861367
Reviewed by Zalan Bujtas.
Prevent unintended renderer access.
No steps to reproduce were available, so a test was not able to be created.
- accessibility/AccessibilityProgressIndicator.cpp:
(WebCore::AccessibilityProgressIndicator::element const):
- 4:12 PM Changeset in webkit [275120] by
-
- 10 edits2 adds in trunk
Use PUICQuickboardController for text input when HAVE(QUICKBOARD_CONTROLLER) is defined
https://bugs.webkit.org/show_bug.cgi?id=223809
<rdar://problem/56730407>
Reviewed by Tim Horton.
Source/WebKit:
Enable
PUICQuickboardController
by default, and remove a runtime preference that previously disabled this
feature by default whenHAVE(QUICKBOARD_CONTROLLER)
is defined.
- UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView _updateTextInputTraits:]):
Add a couple of missing selector checks before attempting to configure smart quotes and smart dash editing
behaviors.
(-[WKContentView _createQuickboardController:]):
Additionally opt into a quickboard controller API to bypass the interstitial Quickboard view controller when
usingPUICQuickboardController
.
(-[WKContentView presentViewControllerForCurrentFocusedElement]):
Remove a check for the (now-removed) preference.
Source/WTF:
Remove the
QuickboardControllerForTextInputEnabled
WebKit preference, now that the feature is enabled by
default behind a build-time flag.
- Scripts/Preferences/WebPreferencesInternal.yaml:
LayoutTests:
Remove some extraneous instancees of
QuickboardControllerForTextInputEnabled=true
from watch-specific layout
tests, now that the feature is enabled by default.
- fast/forms/watchos/delete-content-in-text-field.html:
- fast/forms/watchos/edit-text-field-calls-injected-bundle.html:
- fast/forms/watchos/enter-text-with-spellcheck-disabled-expected.txt: Added.
- fast/forms/watchos/enter-text-with-spellcheck-disabled.html: Added.
Add a new test to exercise the missing selector checks in
-[WKContentView _updateTextInputTraits:]
.
- fast/forms/watchos/form-control-label-text.html:
- fast/forms/watchos/time-picker-value-change.html:
- fast/forms/watchos/username-text-content-type.html:
- 4:10 PM Changeset in webkit [275119] by
-
- 5 edits in trunk/Tools
[webkit-patch] Use commit.webkit.org instead of remote SVN to compute identifier
https://bugs.webkit.org/show_bug.cgi?id=223820
<rdar://problem/75902125>
Reviewed by Dewei Zhu.
- Scripts/webkitpy/tool/commands/download_unittest.py:
(DownloadCommandsTest.mock_svn_remote): Replace mock Svn with mock requests.
- Scripts/webkitpy/tool/commands/upload_unittest.py:
- Scripts/webkitpy/tool/comments.py:
(bug_comment_from_svn_revision): Use commits.webkit.org instead of svn.webkit.org.
- Scripts/webkitpy/tool/steps/closebugforlanddiff_unittest.py:
(CloseBugForLandDiffTest.test_empty_state): Replace mock Svn with mock requests.
- 3:41 PM Changeset in webkit [275118] by
-
- 2 edits in trunk/Source/WebCore
Source/WebCore/editing/cocoa/HTMLConverter.mm:1278:44: runtime error: member call on null pointer of type 'WebCore::ArchiveResource'
https://bugs.webkit.org/show_bug.cgi?id=223696
Reviewed by Alex Christensen.
Fix bug found by UBSan.
- editing/cocoa/HTMLConverter.mm:
(HTMLConverter::_addAttachmentForElement):
- Drop duplicate call to dataSource->subresource(url) as it doesn't seem it can return something else than null if it returned null the first time around.
- Make sure resource is null-checked before we dereference it to get the MIME type.
- 3:18 PM Changeset in webkit [275117] by
-
- 1 copy in tags/Safari-612.1.8
Tag Safari-612.1.8.
- 3:05 PM Changeset in webkit [275116] by
-
- 25 edits in trunk/Source/WebKit
Refactor NetworkSessionCocoa to prepare for per-WebPageProxy sessions
https://bugs.webkit.org/show_bug.cgi?id=223776
Reviewed by Alex Christensen.
No new tests (No behavior change refactor)
A NetworkSessionCocoa has (n) NSURLSessions associated with it.
When a network load needs to happen - based on the context for that load - the appropriate
NSURLSession is chosen (or created).
In a future patch, there will be an additional bit of context used for choosing the appropriate
NSURLSession - The WKWebView the load was triggered from.
This patch takes those (n) NSURLSessions and wraps them in a SessionSet object.
It also adds the concept of looking up the appropriate SessionSet based on the WebPageProxyIdentifier
triggering the load.
This patch by itself should not be a behavior change, but allows the followup to be much simpler.
- NetworkProcess/Downloads/cocoa/DownloadCocoa.mm:
(WebKit::Download::resume):
- NetworkProcess/NetworkConnectionToWebProcess.cpp:
(WebKit::NetworkConnectionToWebProcess::createSocketChannel):
(WebKit::NetworkConnectionToWebProcess::establishSWContextConnection):
- NetworkProcess/NetworkConnectionToWebProcess.h:
- NetworkProcess/NetworkConnectionToWebProcess.messages.in:
- NetworkProcess/NetworkDataTask.cpp:
(WebKit::NetworkDataTask::create):
- NetworkProcess/NetworkSession.cpp:
(WebKit::NetworkSession::createWebSocketTask):
- NetworkProcess/NetworkSession.h:
(WebKit::NetworkSession::removeWebSocketTask):
(WebKit::NetworkSession::addWebSocketTask):
- NetworkProcess/NetworkSocketChannel.cpp:
(WebKit::NetworkSocketChannel::create):
(WebKit::NetworkSocketChannel::NetworkSocketChannel):
(WebKit::NetworkSocketChannel::~NetworkSocketChannel):
- NetworkProcess/NetworkSocketChannel.h:
- NetworkProcess/ServiceWorker/WebSWServerToContextConnection.cpp:
(WebKit::WebSWServerToContextConnection::WebSWServerToContextConnection):
- NetworkProcess/ServiceWorker/WebSWServerToContextConnection.h:
- NetworkProcess/cocoa/NetworkDataTaskCocoa.h:
- NetworkProcess/cocoa/NetworkDataTaskCocoa.mm:
(WebKit::NetworkDataTaskCocoa::NetworkDataTaskCocoa):
- NetworkProcess/cocoa/NetworkSessionCocoa.h:
- NetworkProcess/cocoa/NetworkSessionCocoa.mm:
(WebKit::NetworkSessionCocoa::hstsStorage const):
(WebKit::NetworkSessionCocoa::NetworkSessionCocoa):
(WebKit::NetworkSessionCocoa::initializeStandardSessionsInSet):
(WebKit::NetworkSessionCocoa::sessionSetForPage):
(WebKit::NetworkSessionCocoa::sessionSetForPage const):
(WebKit::NetworkSessionCocoa::initializeEphemeralStatelessSessionIfNeeded):
(WebKit::NetworkSessionCocoa::SessionSet::initializeEphemeralStatelessSessionIfNeeded):
(WebKit::NetworkSessionCocoa::sessionWrapperForTask):
(WebKit::NetworkSessionCocoa::appBoundSession):
(WebKit::NetworkSessionCocoa::hasAppBoundSession const):
(WebKit::NetworkSessionCocoa::clearAppBoundSession):
(WebKit::NetworkSessionCocoa::isolatedSession):
(WebKit::NetworkSessionCocoa::SessionSet::isolatedSession):
(WebKit::NetworkSessionCocoa::hasIsolatedSession const):
(WebKit::NetworkSessionCocoa::clearIsolatedSessions):
(WebKit::NetworkSessionCocoa::invalidateAndCancelSessionSet):
(WebKit::NetworkSessionCocoa::invalidateAndCancel):
(WebKit::NetworkSessionCocoa::createWebSocketTask):
(WebKit::NetworkSessionCocoa::addWebSocketTask):
(WebKit::NetworkSessionCocoa::removeWebSocketTask):
(WebKit::NetworkSessionCocoa::hostNamesWithAlternativeServices const):
(WebKit::NetworkSessionCocoa::deleteAlternativeServicesForHostNames):
(WebKit::NetworkSessionCocoa::clearAlternativeServices):
(WebKit::NetworkSessionCocoa::initializeEphemeralStatelessSession): Deleted.
- NetworkProcess/soup/NetworkSessionSoup.cpp:
(WebKit::NetworkSessionSoup::createWebSocketTask):
- NetworkProcess/soup/NetworkSessionSoup.h:
- Shared/AuxiliaryProcess.cpp:
(WebKit::AuxiliaryProcess::initialize):
- WebProcess/Network/WebSocketChannel.cpp:
(WebKit::WebSocketChannel::create):
(WebKit::WebSocketChannel::WebSocketChannel):
(WebKit::WebSocketChannel::connect):
- WebProcess/Network/WebSocketChannel.h:
- WebProcess/Network/WebSocketProvider.cpp:
(WebKit::WebSocketProvider::createWebSocketChannel):
- WebProcess/Network/WebSocketProvider.h:
- WebProcess/Storage/WebSWContextManagerConnection.cpp:
(WebKit::WebSWContextManagerConnection::establishConnection):
(WebKit::WebSWContextManagerConnection::installServiceWorker):
- WebProcess/WebPage/WebPage.cpp:
(WebKit::m_lastNavigationWasAppBound):
- 3:00 PM Changeset in webkit [275115] by
-
- 5 edits1 add in trunk
[JSC] Use AppleICU SPI for canonicalization
https://bugs.webkit.org/show_bug.cgi?id=223552
Reviewed by Ryosuke Niwa.
JSTests:
- stress/intl-canonical-locale-alias-mapping.js: Added.
(shouldBe):
(Intl.getCanonicalLocales):
Source/JavaScriptCore:
uloc_canonicalize does not perform alias mapping. This is different from ECMA402's canonicalization requirement.
ICU C++ icu::Locale can canonicalize locale ID with alias mapping, but this is not exposed to C API.
In this patch, we adopt AppleICU SPI "ualoc_canonicalForm" added in rdar://74314220. This canonicalization can perform
alias mapping too. We do not extend uloc_canonicalize since this API explicitly says "It does NOT map aliased names in any way."[1].
In [2], we are tracking upstreaming of this new SPI. Once it is upstreamed to the mainline ICU, we will switch to that.
[1]: https://unicode-org.github.io/icu-docs/apidoc/dev/icu4c/uloc_8h.html#a69b148194cf57ac40d4bb15c5b905260
[2]: https://unicode-org.atlassian.net/browse/ICU-21506
- runtime/IntlLocale.cpp:
(JSC::LocaleIDBuilder::initialize):
(JSC::LocaleIDBuilder::toCanonical):
- runtime/IntlObject.cpp:
(JSC::localeIDBufferForLanguageTagWithNullTerminator):
(JSC::canonicalizeLanguageTag):
(JSC::canonicalizeLocaleIDWithoutNullTerminator):
(JSC::localeIDBufferForLanguageTag): Deleted.
- runtime/IntlObject.h:
- 2:28 PM Changeset in webkit [275114] by
-
- 1 copy in releases/WPE WebKit/webkit-2.32.0
WPE WebKit 2.32.0
- 2:27 PM Changeset in webkit [275113] by
-
- 4 edits in releases/WebKitGTK/webkit-2.32
Unreviewed. Update OptionsWPE.cmake and NEWS for the 2.32.0 release
.:
- Source/cmake/OptionsWPE.cmake: Bump version numbers.
Source/WebKit:
- wpe/NEWS: Add release notes for 2.32.0
- 2:23 PM Changeset in webkit [275112] by
-
- 12 edits4 adds in trunk
Allow some image overlay content to render in fully transparent image elements
https://bugs.webkit.org/show_bug.cgi?id=223781
<rdar://problem/75886351>
Reviewed by Tim Horton.
Source/WebCore:
Introduce
ImageOverlayController
, and use it to render selections in image overlay content when the image
overlay's host element is fully transparent.
Test: fast/images/image-extraction/mac/select-word-in-transparent-image-overlay.html
- Sources.txt:
- WebCore.xcodeproj/project.pbxproj:
- dom/Document.cpp:
(WebCore::Document::willBeRemovedFromFrame):
Add plumbing to allow
ImageOverlayController
to uninstall itsPageOverlay
when the document is about to be
detached. SeeImageOverlayController::
below.
- editing/SelectionRectGatherer.cpp:
(WebCore::SelectionRectGatherer::Notifier::~Notifier):
Have
SelectionRectGatherer
notify the image overlay controller as well, when selection rects change.
- page/ChromeClient.h:
(WebCore::ChromeClient::needsImageOverlayControllerForSelectionPainting const):
Add a new client hook that returns whether or not we should use
ImageOverlayController
to paint selections.
If not (i.e. we're on iOS, where we use UIKit to draw selections in the UI process), then we'll never install
page overlays, sinceselectionRectsDidChange
is effectively a no-op.
- page/ImageOverlayController.cpp: Added.
(WebCore::ImageOverlayController::ImageOverlayController):
(WebCore::ImageOverlayController::selectionRectsDidChange):
When selection rects change, if the selection is inside an image overlay whose host is completely transparent
(or very close to being completely transparent), then remember the selection rects along with the renderer's
background color, and use this to render selection highlights separately, in aPageOverlay
.
(WebCore::ImageOverlayController::documentDetached):
If the
Document
containing the current rendered overlay selection is detached, immediately uninstall the
currentPageOverlay
. This ensures that the overlays don't persist through navigation.
(WebCore::ImageOverlayController::installPageOverlayIfNeeded):
(WebCore::ImageOverlayController::uninstallPageOverlayIfNeeded):
Helper methods to add or remove the
PageOverlay
from the currentPage
.
(WebCore::ImageOverlayController::willMoveToPage):
Uninstall the current page overlay if needed.
(WebCore::ImageOverlayController::drawRect):
Use the information stored in
ImageOverlayController::selectionRectsDidChange
to render custom selection
rects.
- page/ImageOverlayController.h: Added.
- page/Page.cpp:
- page/Page.h:
Add an
ImageOverlayController
to thePage
.
(WebCore::Page::imageOverlayController):
Source/WebKit:
Implement a new chrome client hook. See WebCore ChangeLog for more information.
- WebProcess/WebCoreSupport/WebChromeClient.h:
LayoutTests:
Adjust an existing layout test so that it actually checks what it was intended to check; add a new layout test
to cover the changes in this bug.
- fast/images/image-extraction/mac/select-word-in-draggable-image-overlay.html:
Drive-by fix: remove some extraneous imported scripts from this layout test, and additionally simplify the test
so that it doesn't rely on event sender to select text.
- fast/images/image-extraction/mac/select-word-in-transparent-image-overlay-expected-mismatch.html: Added.
- fast/images/image-extraction/mac/select-word-in-transparent-image-overlay.html: Added.
Add a new layout test with a fully transparent image element that covers a div of the same size, with a
background image that is identical to the image element's image. This emulates the behavior of certain websites
that prompted this fallback image overlay rendering codepath in the first place.
- 1:37 PM Changeset in webkit [275111] by
-
- 27 edits in trunk
[CMake] Deprecate using DERIVED_SOURCES_DIR/FOWARDING_HEADERS_DIR directly
https://bugs.webkit.org/show_bug.cgi?id=223763
Reviewed by Michael Catanzaro.
.:
Remove any usages of DERIVED_SOURCES_DIR and FOWARDING_HEADERS_DIR. There are still some
uses in GTK/WPE but those should be phased out.
Sets the directory structure to look like an Apple build in terms of where headers and
derived sources are held. Rather than having one root derived sources and one root
header directory those directories are now per project. This helps catch any errors with
header includes.
Deletes some old Mac CMake code that is no longer relevant around creating forwarding
headers.
For AppleWin the old structure is used because of its internal build which assumes the
old structure.
- Source/cmake/OptionsAppleWin.cmake:
- Source/cmake/OptionsFTW.cmake:
- Source/cmake/OptionsGTK.cmake:
- Source/cmake/OptionsPlayStation.cmake:
- Source/cmake/OptionsWPE.cmake:
- Source/cmake/OptionsWinCairo.cmake:
- Source/cmake/WebKitCommon.cmake:
- Source/cmake/WebKitFS.cmake:
- Source/cmake/WebKitMacros.cmake:
Source/JavaScriptCore:
Remove any usages of DERIVED_SOURCES_DIR and FOWARDING_HEADERS_DIR.
- CMakeLists.txt:
- PlatformMac.cmake:
Source/WebCore:
Remove any usages of DERIVED_SOURCES_DIR and FOWARDING_HEADERS_DIR.
- PlatformFTW.cmake:
- PlatformWin.cmake:
Source/WebKit:
Remove any usages of DERIVED_SOURCES_DIR and FOWARDING_HEADERS_DIR.
- PlatformGTK.cmake:
- PlatformMac.cmake: Remove creation of forwarding headers.
Source/WebKitLegacy:
Remove any usages of DERIVED_SOURCES_DIR and FOWARDING_HEADERS_DIR.
- PlatformMac.cmake:
Tools:
Remove any usages of DERIVED_SOURCES_DIR and FOWARDING_HEADERS_DIR.
- DumpRenderTree/PlatformMac.cmake:
- MiniBrowser/gtk/CMakeLists.txt:
- MiniBrowser/mac/CMakeLists.txt:
- WebKitTestRunner/PlatformMac.cmake:
- wpe/backends/CMakeLists.txt:
- 1:07 PM Changeset in webkit [275110] by
-
- 5 edits in trunk/Tools
[MiniBrowser] Remove redundant "Disable Simple Line Layout" menu item
https://bugs.webkit.org/show_bug.cgi?id=223812
Reviewed by Simon Fraser.
SLL was replaced by IFC integration a while ago.
- MiniBrowser/mac/SettingsController.h:
- MiniBrowser/mac/SettingsController.m:
(-[SettingsController initWithMenu:]):
(-[SettingsController _populateMenu]):
(-[SettingsController validateMenuItem:]):
(-[SettingsController toggleSimpleLineLayoutEnabled:]): Deleted.
(-[SettingsController simpleLineLayoutEnabled]): Deleted.
- MiniBrowser/mac/WK1BrowserWindowController.m:
(-[WK1BrowserWindowController didChangeSettings]):
- MiniBrowser/mac/WK2BrowserWindowController.m:
(-[WK2BrowserWindowController didChangeSettings]):
- 1:05 PM Changeset in webkit [275109] by
-
- 6 edits in trunk/Source
[JSC] Use new Apple ICU APIs to avoid C++ ICU API usage
https://bugs.webkit.org/show_bug.cgi?id=223783
<rdar://problem/75060240>
Reviewed by Mark Lam.
Source/JavaScriptCore:
This patch adopts ICU 69's draft APIs to avoid using ICU C++ APIs in newer macOS build.
AppleICU adopts these draft APIs so that we can use it even in ICU 68 if ICU is AppleICU.
The API is ucal_getTimeZoneOffsetFromLocal, which is back-ported from ICU 69[1].
The purpose of this API is that calculating timezone offset and dst offset from *local* time.
[1]: https://github.com/unicode-org/icu/commit/53aa0505c5f95a8cebbd7b4421d474fd2a790b80
- runtime/IntlDateTimeFormat.cpp:
- runtime/JSDateMath.cpp:
(JSC::OpaqueICUTimeZoneDeleter::operator()):
(JSC::DateCache::calculateLocalTimeOffset):
(JSC::DateCache::defaultTimeZone):
(JSC::DateCache::timeZoneCacheSlow):
- runtime/JSDateMath.h:
Source/WTF:
- wtf/DateMath.h:
(WTF::LocalTimeOffset::LocalTimeOffset):
- 12:26 PM Changeset in webkit [275108] by
-
- 6 edits1 add in trunk/Source
Enforce notifyd message filtering
https://bugs.webkit.org/show_bug.cgi?id=223601
<rdar://75098580>
Reviewed by Brent Fulgham.
Source/WebCore/PAL:
Add Notify SPI file.
- PAL.xcodeproj/project.pbxproj:
- pal/spi/cocoa/NotifySPI.h: Added.
Source/WebKit:
Enable Notify filtering by setting Notify options before entering sandbox.
- Shared/mac/AuxiliaryProcessMac.mm:
(WebKit::compileAndApplySandboxSlowCase):
Source/WTF:
Add ENABLE define for Notify filtering.
- wtf/PlatformEnableCocoa.h:
- 12:16 PM Changeset in webkit [275107] by
-
- 3 edits in trunk/Source/WebKit
Unreviewed, reverting r274938.
https://bugs.webkit.org/show_bug.cgi?id=223811
Introduced perf regression
Reverted changeset:
"Add IOKit method filter telemetry"
https://bugs.webkit.org/show_bug.cgi?id=223652
https://trac.webkit.org/changeset/274938
- 12:14 PM Changeset in webkit [275106] by
-
- 16 edits7 adds in trunk
Implement PCM SQLite changes based on spec review
https://bugs.webkit.org/show_bug.cgi?id=223726
<rdar://problem/75818526>
Reviewed by Brent Fulgham.
Source/WebKit:
This patch makes 2 significant changes in the SQLite database for
PCM. First, it renames attributeOnSiteDomainID to destinationSiteDomainID
based on spec review. Second, it adds support for sending reports to
both click source and destination sites. This involved adding an
additional column to the AttributedPrivateClickMeasurement table to
store the earliest time to send a report to the destination, renaming
the earliestTimeToSend column to specify source, and removing the NOT NULL
constraint on earliestTimeToSend in order to mark in the database when
a report has been send to the source site.
Since we need to remove a NOT NULL constraint and update foreign keys
and unique constraints, this requires a full migration of data from
the PCM tables.
- NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp:
earliestTimeToSendToDestination should be null for now until we
implement the rest of the PCM work in
https://bugs.webkit.org/show_bug.cgi?id=223615.
Remove semi-colons from create table queries. They don't matter in
this context and if we remove them we can use the create table
queries to check for a correct schema.
(WebKit::attributedPrivateClickMeasurementSchemaV1):
(WebKit::attributedPrivateClickMeasurementSchemaV1Alternate):
Capture the table info from AttributedPrivateClickMeasurement to check
if we need an update.
(WebKit::expectedUnattributedColumns):
(WebKit::expectedAttributedColumns):
Instead of storing outdated columns, we should store expected columns
and add any missing ones in addMissingColumnsToTable.
(WebKit::ResourceLoadStatisticsDatabaseStore::tableSchema):
(WebKit::ResourceLoadStatisticsDatabaseStore::needsUpdatedPrivateClickMeasurementSchema):
(WebKit::ResourceLoadStatisticsDatabaseStore::missingReferenceToObservedDomains):
Separate out some duplicated code.
(WebKit::ResourceLoadStatisticsDatabaseStore::migrateDataToNewTablesIfNecessary):
(WebKit::ResourceLoadStatisticsDatabaseStore::columnsForTable):
(WebKit::ResourceLoadStatisticsDatabaseStore::addMissingColumnsToTable):
(WebKit::ResourceLoadStatisticsDatabaseStore::addMissingColumnsIfNecessary):
(WebKit::ResourceLoadStatisticsDatabaseStore::renameColumnInTable):
(WebKit::ResourceLoadStatisticsDatabaseStore::renameColumnsIfNecessary):
(WebKit::ResourceLoadStatisticsDatabaseStore::openAndUpdateSchemaIfNecessary):
Simplify the way we update the schema by first adding columns, then
renaming, then migrating. This way we don't need to worry about a
mismatch in number of columns or column name when transferring data.
(WebKit::ResourceLoadStatisticsDatabaseStore::clearSentAttribution):
(WebKit::ResourceLoadStatisticsDatabaseStore::markAttributedPrivateClickMeasurementsAsExpiredForTesting):
(WebKit::unattributedPrivateClickMeasurementSchemaV1): Deleted.
(WebKit::unattributedPrivateClickMeasurementSchemaV1Alternate): Deleted.
(WebKit::outdatedUnattributedColumns): Deleted.
(WebKit::outdatedAttributedColumns): Deleted.
(WebKit::columnsToCopy): Deleted.
- NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.h:
- NetworkProcess/Classifier/WebResourceLoadStatisticsStore.cpp:
(WebKit::WebResourceLoadStatisticsStore::statisticsDatabaseColumnsForTable):
- NetworkProcess/Classifier/WebResourceLoadStatisticsStore.h:
- NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::statisticsDatabaseColumnsForTable):
- NetworkProcess/NetworkProcess.h:
- NetworkProcess/NetworkProcess.messages.in:
- UIProcess/API/Cocoa/WKWebsiteDataStore.mm:
(-[WKWebsiteDataStore _statisticsDatabaseColumnsForTable:completionHandler:]):
- UIProcess/API/Cocoa/WKWebsiteDataStorePrivate.h:
- UIProcess/Network/NetworkProcessProxy.cpp:
(WebKit::NetworkProcessProxy::statisticsDatabaseColumnsForTable):
- UIProcess/Network/NetworkProcessProxy.h:
- UIProcess/WebsiteData/WebsiteDataStore.cpp:
(WebKit::WebsiteDataStore::statisticsDatabaseColumnsForTable):
- UIProcess/WebsiteData/WebsiteDataStore.h:
New function for testing.
Tools:
Add API test coverage to check that renaming and adding columns works.
Data migration was tested manually.
- TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
- TestWebKitAPI/Tests/WebKitCocoa/PrivateClickMeasurement.mm: Added.
(TEST):
- TestWebKitAPI/Tests/WebKitCocoa/pcmWithoutFraudPreventionDatabase.db: Added.
- TestWebKitAPI/Tests/WebKitCocoa/pcmWithoutFraudPreventionDatabase.db-shm: Added.
- TestWebKitAPI/Tests/WebKitCocoa/pcmWithoutFraudPreventionDatabase.db-wal: Added.
- TestWebKitAPI/Tests/WebKitCocoa/pcmWithoutReportingColumns.db: Added.
- TestWebKitAPI/Tests/WebKitCocoa/pcmWithoutReportingColumns.db-shm: Added.
- TestWebKitAPI/Tests/WebKitCocoa/pcmWithoutReportingColumns.db-wal: Added.
- 11:11 AM Changeset in webkit [275105] by
-
- 2 edits in trunk/Tools
Unreviewed, reverting r275081.
Broke Apple Internal builds
Reverted changeset:
"Avoid calling
xcodebuild -showsdks
where possible."
https://bugs.webkit.org/show_bug.cgi?id=223727
https://commits.webkit.org/r275081
- 10:58 AM Changeset in webkit [275104] by
-
- 3 edits2 adds in trunk
LayoutTests/imported/w3c:
Add interpolation for object-position CSS property
https://bugs.webkit.org/show_bug.cgi?id=223568
Patch by Tim Nguyen <ntim.bugs@gmail.com> on 2021-03-26
Reviewed by Antoine Quint.
- web-platform-tests/css/css-images/object-position-interpolation.html: Added.
Source/WebCore:
Make the object-position CSS property animatable.
https://bugs.webkit.org/show_bug.cgi?id=223568
Patch by Tim Nguyen <ntim@apple.com> on 2021-03-26
Reviewed by Antoine Quint.
Test: imported/w3c/web-platform-tests/css/css-images/object-position-interpolation.html
- animation/CSSPropertyAnimation.cpp:
(WebCore::blendFunc):
(WebCore::canInterpolateLengthPoints):
(WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap):
- 10:08 AM Changeset in webkit [275103] by
-
- 17 edits1 copy in trunk/Source
Allow logging minimal info about uploading media files in the system diagnose
https://bugs.webkit.org/show_bug.cgi?id=223706
Reviewed by Alex Christensen.
Source/WebCore:
Give the WebKit client the ability to log info about the media files which
were submitted to a web server through an HTMLFormElement.
- Headers.cmake:
- WebCore.xcodeproj/project.pbxproj:
- html/HTMLFormElement.cpp:
(WebCore::HTMLFormElement::submit):
- loader/EmptyClients.cpp:
- page/DiagnosticLoggingClient.h:
- page/DiagnosticLoggingDomain.h: Copied from Source/WebKit/UIProcess/API/APIDiagnosticLoggingClient.h.
Source/WebKit:
Add the new method logDiagnosticMessageWithDomain to the modern ObjC API
WKDiagnosticLoggingDelegate and make it accessible from DiagnosticLoggingClient.
- Scripts/webkit/messages.py:
(types_that_cannot_be_forward_declared):
- UIProcess/API/APIDiagnosticLoggingClient.h:
(API::DiagnosticLoggingClient::logDiagnosticMessageWithDomain):
- UIProcess/API/Cocoa/_WKDiagnosticLoggingDelegate.h:
- UIProcess/Cocoa/DiagnosticLoggingClient.h:
- UIProcess/Cocoa/DiagnosticLoggingClient.mm:
(WebKit::DiagnosticLoggingClient::setDelegate):
(WebKit::toWKDiagnosticLoggingDomain):
(WebKit::DiagnosticLoggingClient::logDiagnosticMessageWithDomain):
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::logDiagnosticMessageWithDomain):
- UIProcess/WebPageProxy.h:
- UIProcess/WebPageProxy.messages.in:
- WebProcess/WebCoreSupport/WebDiagnosticLoggingClient.cpp:
(WebKit::WebDiagnosticLoggingClient::logDiagnosticMessageWithDomain):
- WebProcess/WebCoreSupport/WebDiagnosticLoggingClient.h:
- 9:41 AM Changeset in webkit [275102] by
-
- 12 edits6 adds in trunk
Implement cachedPropertyValue for WebXR [SameObject] attributes
https://bugs.webkit.org/show_bug.cgi?id=223635
Reviewed by Chris Dumez.
LayoutTests/imported/w3c:
Update WebXR [SameObject] related test expectations.
- web-platform-tests/webxr/xrRigidTransform_sameObject.https-expected.txt: Added.
- web-platform-tests/webxr/xrSession_sameObject.https-expected.txt: Added.
- web-platform-tests/webxr/xrView_sameObject.https-expected.txt: Added.
- web-platform-tests/webxr/xrViewerPose_views_sameObject.https-expected.txt: Added.
Source/WebCore:
[SameObject] is not currently implemented in WebKit. We need to implement custom getters.
Tested by WebXR WPT.
- Modules/webxr/WebXRRigidTransform.h:
(WebCore::WebXRRigidTransform::cachedMatrix):
- Modules/webxr/WebXRRigidTransform.idl:
- Modules/webxr/WebXRView.h:
(WebCore::WebXRView::cachedProjectionMatrix):
- Modules/webxr/WebXRView.idl:
- Modules/webxr/WebXRViewerPose.h:
(WebCore::WebXRViewerPose::cachedViews):
- Modules/webxr/WebXRViewerPose.idl:
- Sources.txt:
- bindings/js/JSWebXRRigidTransformCustom.cpp: Added.
(WebCore::JSWebXRRigidTransform::matrix const):
- bindings/js/JSWebXRViewCustom.cpp: Added.
(WebCore::JSWebXRView::projectionMatrix const):
- bindings/js/JSWebXRViewerPoseCustom.cpp: Added.
(WebCore::JSWebXRViewerPose::views const):
LayoutTests:
Update WebXR [SameObject] related test expectations.
- platform/wpe/TestExpectations:
- 9:28 AM Changeset in webkit [275101] by
-
- 5 edits in trunk/Source/WebKit
[Cocoa] Enable the UseGPUProcessForMedia preference by default
https://bugs.webkit.org/show_bug.cgi?id=223771
Reviewed by Eric Carlson.
- FeatureFlags/WebKit-ios.plist:
- FeatureFlags/WebKit-macos.plist:
- FeatureFlags/WebKit-appletvos.plist:
- FeatureFlags/WebKit-watchos.plist:
- 8:58 AM Changeset in webkit [275100] by
-
- 5 edits in trunk/Source/WebCore
Adopt AVKit SPI for hiding touch bar seeking controls
https://bugs.webkit.org/show_bug.cgi?id=223773
<rdar://problem/68937617>
Reviewed by Jer Noble.
Source/WebCore:
- platform/mac/WebPlaybackControlsManager.h:
- platform/mac/WebPlaybackControlsManager.mm:
(-[WebPlaybackControlsManager setSeekableTimeRanges:]):
(-[WebPlaybackControlsManager canBeginTouchBarScrubbing]):
If the list of seekable time ranges is empty, we are unable to seek.
Source/WebCore/PAL:
- pal/spi/cocoa/AVKitSPI.h:
- 8:50 AM Changeset in webkit [275099] by
-
- 2 edits in trunk/LayoutTests
Unreviewed.
- platform/glib/TestExpectations: Unflag
media/encrypted-media/clearKey/clearKey-webm-video-playback-mse.html
and
media/encrypted-media/clearKey/clearKey-session-life-cycle.html
- 8:47 AM Changeset in webkit [275098] by
-
- 2 edits in trunk/LayoutTests
Unreviewed.
- platform/gtk/TestExpectations: Unflag
http/tests/security/mixedContent/insecure-audio-video-in-main-frame.html.
- 8:34 AM Changeset in webkit [275097] by
-
- 3 edits in trunk/Source/WebCore
GraphicsContextGLOpenGL should avoid calling into ANGLE MakeCurrent
https://bugs.webkit.org/show_bug.cgi?id=223511
Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2021-03-26
Reviewed by Kenneth Russell.
Avoid calling ANGLE MakeCurrent for contexts that are already current. Cache the current context pointer into a
global variable. Currently the code adds no locking. For the forseeable future, ANGLE does not support
simultaneous access from multiple threads.
The optimization can be done when run in WebContent process or in GPU process, but not when in WK1. This is because in WK1,
the 3rd party client may run arbitrary code in WebKit thread. This includes code that changes EAGL or AGL state.
This code might change the current context underneath WebKit. In WK1 mode, we already use "volatile context" feature of
ANGLE to reset the platform context on every EGL command. The command we use for this for normal GL commands is EGL_MakeCurrent.
Makes in-process WebGL faster in MotionMark triangles by 6300 -> 9800 pts
Makes GPU process WebGL faster in MotionMark triangles by 5300 -> 7000 pts
- platform/graphics/cocoa/GraphicsContextGLOpenGLCocoa.mm:
(WebCore::isCurrentContextPredictable):
(WebCore::InitializeEGLDisplay):
(WebCore::GraphicsContextGLOpenGL::~GraphicsContextGLOpenGL):
(WebCore::GraphicsContextGLOpenGL::makeContextCurrent):
(WebCore::GraphicsContextGLOpenGL::clearCurrentContext):
(WebCore::GraphicsContextGLOpenGL::releaseCurrentContext):
(WebCore::GraphicsContextGLOpenGL::checkGPUStatus):
- platform/graphics/opengl/GraphicsContextGLOpenGL.h:
- 8:34 AM Changeset in webkit [275096] by
-
- 2 edits in trunk/LayoutTests
Unreviewed.
- platform/gtk/TestExpectations: Unflagging
media/track/track-remove-active-cue-crash.html.
- 8:29 AM Changeset in webkit [275095] by
-
- 2 edits in trunk/LayoutTests
Unreviewed.
- platform/gtk/TestExpectations: Unflag
http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/upgrade-insecure-audio-video-in-main-frame.html
- 8:18 AM Changeset in webkit [275094] by
-
- 2 edits in trunk/LayoutTests
Unreviewed.
- platform/gtk/TestExpectations: Unflagging
mediasource-endofstream-invaliderror.html.
- 4:18 AM Changeset in webkit [275093] by
-
- 2 edits in trunk/Source/WebKit
Use webrtc GPU Process feature flag for video capture on MacOS
https://bugs.webkit.org/show_bug.cgi?id=223683
Reviewed by Eric Carlson.
Manually tested.
- Shared/WebPreferencesDefaultValues.cpp:
(WebKit::defaultCaptureVideoInGPUProcessEnabled):
- 4:16 AM Changeset in webkit [275092] by
-
- 10 edits in trunk
Fix interpolation of the caret-color CSS property
https://bugs.webkit.org/show_bug.cgi?id=223181
<rdar://problem/75687413>
Reviewed by Antti Koivisto.
LayoutTests/imported/w3c:
Add 64 PASS results for the caret-color interpolation test which now is passing completely.
The test css/css-ui/caret-color-021.html also progresses.
- web-platform-tests/css/css-ui/animation/caret-color-interpolation-expected.txt:
- web-platform-tests/css/css-ui/caret-color-021-expected.txt:
Source/WebCore:
Add support for the "auto" value for the "caret-color" CSS property. That value
is its initial value. We support it with a new boolean flag on StyleRareInheritedData
which we reset to false when setCaretColor() or setVisitedLinkCaretColor() is called.
Then, we can blend this property with the new CaretColorPropertyWrapper wrapper which is
required to correctly get and set the "auto" bit.
- animation/CSSPropertyAnimation.cpp:
(WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap):
- css/CSSProperties.json: We can remove the initial value key since this property is entirely
custom.
- rendering/style/RenderStyle.h:
(WebCore::RenderStyle::setCaretColor):
(WebCore::RenderStyle::setHasAutoCaretColor):
(WebCore::RenderStyle::setVisitedLinkCaretColor):
(WebCore::RenderStyle::setHasVisitedLinkAutoCaretColor):
(WebCore::RenderStyle::hasAutoCaretColor const):
(WebCore::RenderStyle::hasVisitedLinkAutoCaretColor const):
- rendering/style/StyleRareInheritedData.cpp:
(WebCore::StyleRareInheritedData::StyleRareInheritedData):
(WebCore::StyleRareInheritedData::operator== const):
- rendering/style/StyleRareInheritedData.h:
- style/StyleBuilderCustom.h:
(WebCore::Style::BuilderCustom::applyInitialCaretColor):
(WebCore::Style::BuilderCustom::applyInheritCaretColor):
(WebCore::Style::BuilderCustom::applyValueCaretColor):
- 4:07 AM Changeset in webkit [275091] by
-
- 5 edits1 add in trunk
Fix NowPlayingInfoArtwork operator== logic.
https://bugs.webkit.org/show_bug.cgi?id=223730
<rdar://problem/75822687>
Patch by Jean-Yves Avenard <Jean-Yves Avenard> on 2021-03-26
Reviewed by Youenn Fablet.
Source/WebCore:
Gtest NowPlayingInfoArtworkTest added .
- platform/audio/NowPlayingInfo.h:
(WebCore::NowPlayingInfoArtwork::operator== const):
(WebCore::NowPlayingInfoArtwork::operator!= const):
Tools:
- TestWebKitAPI/CMakeLists.txt:
- TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
- TestWebKitAPI/Tests/WebCore/NowPlayingInfoTests.cpp: Added.
(TestWebKitAPI::testEmptyArtwork):
(TestWebKitAPI::TEST):
- 3:50 AM Changeset in webkit [275090] by
-
- 1 copy in releases/WebKitGTK/webkit-2.32.0
WebKitGTK 2.32.0
- 3:49 AM Changeset in webkit [275089] by
-
- 4 edits in releases/WebKitGTK/webkit-2.32
Unreviewed. Update OptionsGTK.cmake and NEWS for 2.32.0 release
.:
- Source/cmake/OptionsGTK.cmake: Bump version numbers.
Source/WebKit:
- gtk/NEWS: Add release notes for 2.32.0
- 3:28 AM Changeset in webkit [275088] by
-
- 12 edits1 delete in trunk
Enable Metal ANGLE backend for WebGL
https://bugs.webkit.org/show_bug.cgi?id=220076
<rdar://problem/72565020>
Reviewed by Sam Weinig.
Source/WTF:
Turn the Metal backend for ANGLE on, moving the feature
from Internal to Experimental.
- Scripts/Preferences/WebPreferencesExperimental.yaml:
- Scripts/Preferences/WebPreferencesInternal.yaml:
LayoutTests:
Updated results for WebGL 2 content with the Metal ANGLE
backend. See https://bugs.webkit.org/show_bug.cgi?id=222239
- platform/mac/TestExpectations:
- platform/ios-simulator-wk2/TestExpectations:
- platform/ios-simulator/TestExpectations:
- platform/ios-wk2/TestExpectations:
- platform/ios/TestExpectations:
- platform/mac/TestExpectations:
- platform/wk2/TestExpectations:
- 3:16 AM Changeset in webkit [275087] by
-
- 3 edits2 adds in trunk
Remove ASSERT in RenderListItem::computeMarkerStyle
https://bugs.webkit.org/show_bug.cgi?id=222670
Patch by Rob Buis <rbuis@igalia.com> on 2021-03-26
Reviewed by Ryosuke Niwa.
Source/WebCore:
Remove ASSERT in RenderListItem::computeMarkerStyle
since ::marker does not apply to all elements so
getCachedPseudoStyle can return null.
Test: fast/lists/list-item-compute-marker-style-crash.xhtml
- rendering/RenderListItem.cpp:
(WebCore::RenderListItem::computeMarkerStyle const):
LayoutTests:
- fast/lists/list-item-compute-marker-style-crash-expected.txt: Added.
- fast/lists/list-item-compute-marker-style-crash.xhtml: Added.
- 2:42 AM Changeset in webkit [275086] by
-
- 2 edits in releases/WebKitGTK/webkit-2.32/Source/WebCore
Merge r275085 - REGRESSION(r272301): [SOUP] default port attribute when persisting credential information with libsecret
https://bugs.webkit.org/show_bug.cgi?id=223782
Reviewed by Adrian Perez de Castro.
Use the default port instead of 0 when the URL omits the port.
- platform/network/soup/AuthenticationChallengeSoup.cpp:
(WebCore::protectionSpaceFromSoupAuthAndURL):
- 2:37 AM Changeset in webkit [275085] by
-
- 2 edits in trunk/Source/WebCore
REGRESSION(r272301): [SOUP] default port attribute when persisting credential information with libsecret
https://bugs.webkit.org/show_bug.cgi?id=223782
Reviewed by Adrian Perez de Castro.
Use the default port instead of 0 when the URL omits the port.
- platform/network/soup/AuthenticationChallengeSoup.cpp:
(WebCore::protectionSpaceFromSoupAuthAndURL):
- 2:25 AM Changeset in webkit [275084] by
-
- 5 edits in trunk/Source/WebCore
Use ICUDeleter to encode ucnv_close/uenum_close call into type of deleter of std::unique_ptr
https://bugs.webkit.org/show_bug.cgi?id=223503
Reviewed by Alex Christensen.
Use ICUDeleter<ucnv_close> instead of holding ucnv_close pointer in ICUConverterPtr.
This deleter encodes ucnv_close calls into type so that we do not need to hold a pointer
to ucnv_close.
We also use ICUDeleter<uenum_close> in place where we use UEnumeration.
- Modules/applepay/PaymentRequestValidator.mm:
(WebCore::validateCurrencyCode):
- platform/text/EncodingTables.cpp:
(WebCore::jis0208):
(WebCore::jis0212):
(WebCore::big5):
(WebCore::eucKR):
(WebCore::gb18030):
- platform/text/TextCodecICU.cpp:
(WebCore::TextCodecICU::createICUConverter const):
- platform/text/TextCodecICU.h:
- 1:08 AM Changeset in webkit [275083] by
-
- 2 edits in releases/WebKitGTK/webkit-2.32/Source/WebCore
[GTK][WPE] Wrong frame scrolled when view is horizontally scrolled with async scrolling enabled
https://bugs.webkit.org/show_bug.cgi?id=222900
Patch by Alejandro G. Castro <alex@igalia.com> on 2021-03-26
Reviewed by Carlos Garcia Campos.
We need to use the scrolling offset in the parent when collecting
the descendant layers at a point. We substract the boundsOrigin to
make sure we transform the point considering the scrolling offset.
- page/scrolling/nicosia/ScrollingTreeNicosia.cpp:
(WebCore::collectDescendantLayersAtPoint):
- 12:54 AM BuildingCairoOnWindows edited by
- (diff)
- 12:14 AM BuildingCairoOnWindows edited by
- (diff)
- 12:02 AM Changeset in webkit [275082] by
-
- 37 edits in trunk/Source
Update the BEFORE/SINCE, SYSTEM_VERSION_PREFIX, and MACOSX_DEPLOYMENT_TARGET flags
https://bugs.webkit.org/show_bug.cgi?id=223779
Patch by Jessie Berlin <jberlin@webkit.org> on 2021-03-26
Reviewed by Tim Horton.
- Configurations/DebugRelease.xcconfig:
Source/JavaScriptCore:
- Configurations/Version.xcconfig:
- Configurations/WebKitTargetConditionals.xcconfig:
Source/ThirdParty/ANGLE:
- Configurations/Version.xcconfig:
- Configurations/WebKitTargetConditionals.xcconfig:
Source/ThirdParty/libwebrtc:
- Configurations/Version.xcconfig:
- Configurations/WebKitTargetConditionals.xcconfig:
Source/WebCore:
- Configurations/Version.xcconfig:
- Configurations/WebCore.xcconfig:
- Configurations/WebKitTargetConditionals.xcconfig:
Source/WebCore/PAL:
- Configurations/Version.xcconfig:
- Configurations/WebKitTargetConditionals.xcconfig:
Source/WebInspectorUI:
- Configurations/Version.xcconfig:
Source/WebKit:
- Configurations/Version.xcconfig:
- Configurations/WebKit.xcconfig:
- Configurations/WebKitTargetConditionals.xcconfig:
Source/WebKitLegacy/mac:
- Configurations/Version.xcconfig:
- Configurations/WebKitTargetConditionals.xcconfig:
Mar 25, 2021:
- 11:57 PM Changeset in webkit [275081] by
-
- 2 edits in trunk/Tools
Avoid calling
xcodebuild -showsdks
where 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 -showsdks
to 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):
(xcodeSDKPlatformName):
(determinePortName):
- 11:34 PM Changeset in webkit [275080] by
-
- 3 edits in trunk/LayoutTests
[WinCairo] Unreviewed test gardening
- platform/wincairo-wk1/TestExpectations:
- platform/wincairo/TestExpectations:
- 10:25 PM Changeset in webkit [275079] by
-
- 16 edits in trunk/Source/JavaScriptCore
validate untagArrayPtr
https://bugs.webkit.org/show_bug.cgi?id=214953
<rdar://problem/66391434>
Reviewed by Mark Lam.
This patch adds validation to untagArrayPtr along paths where we don't
immediately store/load from the result.
This patch also changes the removeArrayPtrTag macro assembler function to
use a bitwise and instead of xpacd to strip the tag, because it's faster.
- assembler/MacroAssemblerARM64E.h:
(JSC::MacroAssemblerARM64E::untagArrayPtr):
(JSC::MacroAssemblerARM64E::removeArrayPtrTag):
- assembler/testmasm.cpp:
(JSC::testCagePreservesPACFailureBit):
- bytecode/AccessCase.cpp:
(JSC::AccessCase::generateWithGuard):
- dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::cageTypedArrayStorage):
- dfg/DFGSpeculativeJIT.h:
- dfg/DFGSpeculativeJIT64.cpp:
(JSC::DFG::SpeculativeJIT::compile):
- ftl/FTLLowerDFGToB3.cpp:
(JSC::FTL::DFG::LowerDFGToB3::untagArrayPtr):
(JSC::FTL::DFG::LowerDFGToB3::caged):
- jit/AssemblyHelpers.cpp:
(JSC::AssemblyHelpers::cageWithoutUntagging):
(JSC::AssemblyHelpers::cageConditionallyAndUntag):
- jit/AssemblyHelpers.h:
(JSC::AssemblyHelpers::cageWithoutUntagging): Deleted.
(JSC::AssemblyHelpers::cageConditionally): Deleted.
- jit/JITPropertyAccess.cpp:
(JSC::JIT::emitIntTypedArrayPutByVal):
(JSC::JIT::emitFloatTypedArrayPutByVal):
- wasm/WasmAirIRGenerator.cpp:
(JSC::Wasm::AirIRGenerator::restoreWebAssemblyGlobalState):
(JSC::Wasm::AirIRGenerator::addCallIndirect):
- wasm/WasmB3IRGenerator.cpp:
(JSC::Wasm::B3IRGenerator::restoreWebAssemblyGlobalState):
(JSC::Wasm::B3IRGenerator::addCallIndirect):
- wasm/WasmBinding.cpp:
(JSC::Wasm::wasmToWasm):
- wasm/js/JSToWasm.cpp:
(JSC::Wasm::createJSToWasmWrapper):
- wasm/js/WebAssemblyFunction.cpp:
(JSC::WebAssemblyFunction::jsCallEntrypointSlow):
- 10:24 PM Changeset in webkit [275078] by
-
- 17 edits in trunk
Allow WKContentRuleList to block only in frames or only in main frame
https://bugs.webkit.org/show_bug.cgi?id=219001
Source/WebCore:
<rdar://problem/71382045>
Reviewed by Ben Poulain.
This adds load-context to the trigger, which can have an array containing main-frame or iframe.
This makes the trigger only happen in such loading contexts.
- Modules/websockets/ThreadableWebSocketChannel.cpp:
(WebCore::ThreadableWebSocketChannel::validateURL):
- contentextensions/ContentExtension.cpp:
(WebCore::ContentExtensions::ContentExtension::populateConditionCacheIfNeeded):
- contentextensions/ContentExtensionParser.cpp:
(WebCore::ContentExtensions::getTypeFlags):
(WebCore::ContentExtensions::loadTrigger):
- contentextensions/ContentExtensionsBackend.cpp:
(WebCore::ContentExtensions::ContentExtensionsBackend::processContentRuleListsForLoad):
(WebCore::ContentExtensions::ContentExtensionsBackend::processContentRuleListsForPingLoad):
- contentextensions/DFABytecodeInterpreter.cpp:
(WebCore::ContentExtensions::DFABytecodeInterpreter::interpretTestFlagsAndAppendAction):
- loader/FrameLoader.cpp:
(WebCore::FrameLoader::loadResourceSynchronously):
- loader/NetscapePlugInStreamLoader.cpp:
(WebCore::NetscapePlugInStreamLoader::NetscapePlugInStreamLoader):
- loader/PingLoader.cpp:
(WebCore::PingLoader::sendPing):
(WebCore::PingLoader::sendViolationReport):
- loader/ResourceLoadInfo.cpp:
(WebCore::ContentExtensions::toResourceType):
(WebCore::ContentExtensions::readResourceType):
(WebCore::ContentExtensions::readLoadType):
(WebCore::ContentExtensions::readLoadContext):
(WebCore::ContentExtensions::ResourceLoadInfo::getResourceFlags const):
- loader/ResourceLoadInfo.h:
Source/WebKit:
Reviewed by Ben Poulain.
- UIProcess/API/APIContentRuleListStore.cpp:
(API::ContentRuleListStore::getContentRuleListSource):
- UIProcess/API/APIContentRuleListStore.h:
Tools:
Reviewed by Ben Poulain.
- TestWebKitAPI/Tests/WebCore/ContentExtensions.cpp:
(TestWebKitAPI::TEST_F):
- TestWebKitAPI/Tests/WebKitCocoa/ContentRuleListNotification.mm:
(TEST):
- 10:09 PM Changeset in webkit [275077] by
-
- 13 edits in trunk/Source
Have App Highlights be a Configuration Setting instead of an internal Preference setting.
https://bugs.webkit.org/show_bug.cgi?id=223720
rdar://75196085
Reviewed by Wenson Hsieh.
Source/WebKit:
- FeatureFlags/WebKit-appletvos.plist:
- FeatureFlags/WebKit-ios.plist:
- FeatureFlags/WebKit-macos.plist:
- FeatureFlags/WebKit-watchos.plist:
- Shared/WebPreferencesDefaultValues.cpp:
(WebKit::defaultAppHighlightsEnabled): Deleted.
- Shared/WebPreferencesDefaultValues.h:
- UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _setupPageConfiguration:]):
- UIProcess/API/Cocoa/WKWebViewConfiguration.mm:
(-[WKWebViewConfiguration init]):
(-[WKWebViewConfiguration copyWithZone:]):
(-[WKWebViewConfiguration _setAppHighlightsEnabled:]):
(-[WKWebViewConfiguration _appHighlightsEnabled]):
- UIProcess/API/Cocoa/WKWebViewConfigurationPrivate.h:
- WebProcess/WebPage/WebPage.h:
Source/WTF:
- Scripts/Preferences/WebPreferences.yaml:
- Scripts/Preferences/WebPreferencesInternal.yaml:
- 8:27 PM Changeset in webkit [275076] by
-
- 6 edits2 adds in trunk
Don't add
-webkit-user-select: none;
on image elements withdraggable=true
https://bugs.webkit.org/show_bug.cgi?id=223774
<rdar://problem/75860124>
Reviewed by Tim Horton.
Source/WebCore:
Avoid adding this presentational CSS style property for image elements marked with
draggable=true
. Since
image elements are already draggable by default and mouse drags over image elements do not trigger text
selection, it's not necessary for the user agent to add this style property. See below for more details.
Test: fast/images/image-extraction/mac/select-word-in-draggable-image-overlay.html
- html/HTMLElement.cpp:
(WebCore::HTMLElement::collectStyleForPresentationAttribute):
If the element is already draggable (barring HTML attributes), don't additionally disable text selection inside
the element when we additionally havedraggable=true
set on the element.
(WebCore::HTMLElement::draggable const):
Refactor this to consult
isDraggableIgnoringAttributes()
when determining whether to check if thedraggable
attribute value is not"false"
vs. equal to"true"
. In the case where the element is already draggable, we
only returnfalse
here ifdraggable=false
is explicitly set.
- html/HTMLElement.h:
(WebCore::HTMLElement::isDraggableIgnoringAttributes const):
- html/HTMLImageElement.cpp:
(WebCore::HTMLImageElement::draggable const): Deleted.
- html/HTMLImageElement.h:
Override
isDraggableIgnoringAttributes
and returntrue
.
LayoutTests:
- fast/images/image-extraction/mac/select-word-in-draggable-image-overlay-expected-mismatch.html: Added.
- fast/images/image-extraction/mac/select-word-in-draggable-image-overlay.html: Added.
- 8:20 PM Changeset in webkit [275075] by
-
- 2 edits in trunk/LayoutTests
[Metal ANGLE] fast/canvas/webgl/out-of-bounds-simulated-vertexAttrib0-drawArrays.html causes GPURestarts on some machines
https://bugs.webkit.org/show_bug.cgi?id=223767
Patch by Kyle Piddington <Kyle Piddington> on 2021-03-25
Reviewed by Darin Adler.
Avoid GPURestarts on Intel machines by reducing test workload. The
core of this test, using default generic attributes, is still in
place.
- fast/canvas/webgl/out-of-bounds-simulated-vertexAttrib0-drawArrays.html:
- 8:13 PM Changeset in webkit [275074] by
-
- 3 edits in trunk/Source/ThirdParty/ANGLE
ANGLE Metal crash ASAN webgl/1.0.3/conformance/misc/object-deletion-behaviour.html
https://bugs.webkit.org/show_bug.cgi?id=223739
Patch by Kyle Piddington <Kyle Piddington> on 2021-03-25
Reviewed by Dean Jackson.
Previously, ANGLE would try to read color attachments off of the
cached render targets. However, since validation happens before
state sync, the cached render targets may be out of date.
For non-surface backed render targets, we instead get a fresh copy
of the render target when determening the native pixel format.
- src/libANGLE/renderer/metal/FrameBufferMtl.h:
- src/libANGLE/renderer/metal/FrameBufferMtl.mm:
(rx::FramebufferMtl::getImplementationColorReadFormat const):
(rx::FramebufferMtl::getColorReadRenderTargetNoCache const):
- 8:09 PM Changeset in webkit [275073] by
-
- 5 edits in trunk/Source/ThirdParty/ANGLE
[Metal ANGLE] Add CPU mipmap generation for workaround on Intel devices.
https://bugs.webkit.org/show_bug.cgi?id=223778
Patch by Kyle Piddington <Kyle Piddington> on 2021-03-25
Reviewed by Dean Jackson.
Mipmap generation on Intel does not reliably work for textures with
width less than four. To reliably pass webGL conformance, we need
to switch to CPU mipmap generation when generating mipmaps in this
specific circumstance.
This patch fixes the following four tests on Intel
webgl/1.0.3/conformance/limits/gl-max-texture-dimensions.html
webgl/1.0.3/conformance/textures/texture-size.html
webgl/2.0.0/conformance/limits/gl-max-texture-dimensions.html
webgl/2.0.0/conformance/textures/misc/texture-size.html
- include/platform/Feature.h:
(angle::FeatureCategoryToString):
- include/platform/FeaturesMtl.h:
- src/libANGLE/renderer/metal/DisplayMtl.mm:
(rx::DisplayMtl::initializeFeatures):
- src/libANGLE/renderer/metal/TextureMtl.mm:
(rx::TextureMtl::generateMipmap):
- 7:27 PM Changeset in webkit [275072] by
-
- 14 edits1 add in trunk
It should be possible to drag images with overlay content
https://bugs.webkit.org/show_bug.cgi?id=223766
<rdar://problem/75856030>
Reviewed by Tim Horton.
Source/WebCore:
Make a few minor adjustments to make drag and drop play well with images with overlay content. See below for
more details.
Test: DragAndDropTests.DragElementWithImageOverlay
- html/HTMLElement.cpp:
(WebCore::HTMLElement::isInsideImageOverlay):
Add a helper method to return whether an individual DOM node is inside an image overlay. Use this in the
existing version of this method that takes aSimpleRange
.
- html/HTMLElement.h:
- page/DragController.cpp:
(WebCore::DragController::draggableElement const):
Skip all drag source actions except for
Selection
in the case where we're hit-testing to text inside of an
image overlay.
- page/EventHandler.cpp:
(WebCore::EventHandler::handleMousePressEvent):
Make
isMouseDownOnLinkOrImage
false
in the case where we're over image overlay text.
- rendering/HitTestResult.cpp:
(WebCore::HitTestResult::nodeForImageData const):
(WebCore::HitTestResult::image const):
(WebCore::HitTestResult::imageRect const):
(WebCore::HitTestResult::absoluteImageURL const):
Teach
HitTestResult
to skip out of image overlay content and find the actual image element when determining
the image URL, image, or image rect.
- rendering/HitTestResult.h:
Tools:
Add an API test to verify that the top part of the image (with an overlay) doesn't trigger a
dragstart
when
dragged, but the bottom part of the image does.
- TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
- TestWebKitAPI/Tests/WebKit/simple-image-overlay.html: Added.
Add a test page that installs an image overlay for testing purposes (assuming that the web view injects the
globalinternals
object).
- TestWebKitAPI/Tests/WebKitCocoa/DragAndDropTests.mm:
- TestWebKitAPI/Tests/mac/DragAndDropTestsMac.mm:
- TestWebKitAPI/cocoa/DragAndDropSimulator.h:
- TestWebKitAPI/ios/DragAndDropSimulatorIOS.mm:
(-[DragAndDropSimulator containsDraggedType:]):
Add a helper method to return whether or not the simulated drag resulted in the given type being written to the
"drag pasteboard" (in the case of iOS, this just means any of the source item providers).
- TestWebKitAPI/mac/DragAndDropSimulatorMac.mm:
(-[DragAndDropSimulator initWithWebViewFrame:configuration:]):
Make a minor adjustment to ensure that the drag pasteboard is cleared out before starting a simulated drag.
(-[DragAndDropSimulator containsDraggedType:]):
- 6:29 PM Changeset in webkit [275071] by
-
- 2 edits in trunk/LayoutTests
[ BigSur Debug ] http/tests/security/webaudio-render-remote-audio-blocked-no-crossorigin-redirect.html is a flakey timeout
https://bugs.webkit.org/show_bug.cgi?id=223759
Unreviewed test gardening.
- platform/mac/TestExpectations: Updated test expectations to Pass Timeout while test is reviewed.
- 6:29 PM Changeset in webkit [275070] by
-
- 38 edits in trunk/Source
Remove 10.13 DEPLOYMENT_TARGETs and SYSTEM_VERSION_PREFIXs
https://bugs.webkit.org/show_bug.cgi?id=223765
Patch by Jessie Berlin <jberlin@webkit.org> on 2021-03-25
Reviewed by Tim Horton.
- Configurations/Base.xcconfig:
- Configurations/DebugRelease.xcconfig:
Source/JavaScriptCore:
- Configurations/Version.xcconfig:
Source/ThirdParty/ANGLE:
- Configurations/Version.xcconfig:
Source/ThirdParty/libwebrtc:
- Configurations/Version.xcconfig:
Source/WebCore:
- Configurations/Version.xcconfig:
Source/WebCore/PAL:
- Configurations/Version.xcconfig:
Source/WebInspectorUI:
- Configurations/Version.xcconfig:
Source/WebKit:
- Configurations/Version.xcconfig:
Source/WebKitLegacy/mac:
- Configurations/Version.xcconfig:
- 6:08 PM Changeset in webkit [275069] by
-
- 2 edits in trunk/LayoutTests
[ macOS ] media/modern-media-controls/macos-fullscreen-media-controls/macos-fullscreen-media-controls-drag.html is a flakey timeout
https://bugs.webkit.org/show_bug.cgi?id=223761
Unreviewed test gardening.
- platform/mac/TestExpectations: Updated test expectations to Pass Timeout while test is reviewed.
- 5:22 PM Changeset in webkit [275068] by
-
- 5 edits in trunk/Source/WebKit
[GPU Process] Turn GPU process rendering for 2D canvas on by default
https://bugs.webkit.org/show_bug.cgi?id=223772
<rdar://75799739>
Reviewed by Tim Horton.
Enable the 'gpu_process_canvas_rendering' feature flag.
- FeatureFlags/WebKit-appletvos.plist:
- FeatureFlags/WebKit-ios.plist:
- FeatureFlags/WebKit-macos.plist:
- FeatureFlags/WebKit-watchos.plist:
- 5:09 PM Changeset in webkit [275067] by
-
- 7 edits2 adds in trunk
Source/WebCore:
[RenderTreeBuilder] Do not try to normalize the tree while destroying the multicolumn flow
https://bugs.webkit.org/show_bug.cgi?id=223722
<rdar://75731256>
Reviewed by Simon Fraser.
Test: fast/multicol/crash-while-destroying-the-column-context.html
This patch ensures that we don't start moving around parts of the fragmented flow subtree (e.g. collapsing anonymous blocks) while
trying place the spanner renderers back to their original positions as part of the "we don't need multicolumn context anymore".
(e.g spanner placeholder is removed -> triggers anon block collapsing -> moves subtrees around inside the multicolumn subtree -> insertion happens -> spanner placeholder gets re-validated)
- rendering/updating/RenderTreeBuilder.cpp:
(WebCore::RenderTreeBuilder::destroy):
- rendering/updating/RenderTreeBuilder.h:
- rendering/updating/RenderTreeBuilderBlock.cpp:
(WebCore::RenderTreeBuilder::Block::detach):
- rendering/updating/RenderTreeBuilderMultiColumn.cpp:
(WebCore::RenderTreeBuilder::MultiColumn::destroyFragmentedFlow):
(WebCore::RenderTreeBuilder::MultiColumn::handleSpannerRemoval):
(WebCore::RenderTreeBuilder::MultiColumn::multiColumnRelativeWillBeRemoved):
- rendering/updating/RenderTreeBuilderMultiColumn.h:
LayoutTests:
[RenederTreeBuilder] Do not try to normalize the tree while destroying the multicolumn flow
https://bugs.webkit.org/show_bug.cgi?id=223722
<rdar://75731256>
Reviewed by Simon Fraser.
- fast/multicol/crash-while-destroying-the-column-context-expected.txt: Added.
- fast/multicol/crash-while-destroying-the-column-context.html: Added.
- 4:35 PM Changeset in webkit [275066] by
-
- 10 edits4 adds in trunk
AX: Consider implementing @aria-details.
https://bugs.webkit.org/show_bug.cgi?id=165842
rdar://30725491
Reviewed by Chris Fleizach.
Source/WebCore:
Tests: accessibility/ios-simulator/aria-details.html
accessibility/mac/aria-details.html
- Added [WebAccessibilityObjectWrapper accessibilityDetailsElements] on iOS.
- Added helper function accessibleElementsForObjects to retrieve platform-
specific accessible elements given a collection of AXCoreObjects.
- accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:
(accessibleElementsForObjects):
(-[WebAccessibilityObjectWrapper accessibilityDetailsElements]):
(-[WebAccessibilityObjectWrapper accessibilityErrorMessageElements]):
Tools:
Added AccessibilityUIElement::detailsElements.
- WebKitTestRunner/InjectedBundle/AccessibilityUIElement.cpp:
(WTR::AccessibilityUIElement::detailsElements const):
- WebKitTestRunner/InjectedBundle/AccessibilityUIElement.h:
- WebKitTestRunner/InjectedBundle/Bindings/AccessibilityUIElement.idl:
- WebKitTestRunner/InjectedBundle/ios/AccessibilityUIElementIOS.mm:
(WTR::AccessibilityUIElement::detailsElements const):
- WebKitTestRunner/InjectedBundle/mac/AccessibilityUIElementMac.mm:
(WTR::AccessibilityUIElement::detailsElements const):
LayoutTests:
- accessibility/ios-simulator/aria-details-expected.txt: Added.
- accessibility/ios-simulator/aria-details.html: Added.
- accessibility/mac/aria-details-expected.txt: Added.
- accessibility/mac/aria-details.html: Added.
- platform/mac-wk1/TestExpectations:
- 4:10 PM Changeset in webkit [275065] by
-
- 2 edits in trunk/Source/WebDriver
[CMake] Use WebDriver_DERIVED_SOURCES value
https://bugs.webkit.org/show_bug.cgi?id=223760
Reviewed by Ross Kirsling.
Replace DERIVED_SOURCES_WEBDRIVER_DIR with WebDriver_DERIVED_SOURCES.
- CMakeLists.txt:
- 3:47 PM Changeset in webkit [275064] by
-
- 6 edits1 delete in trunk/Source
Unreviewed, reverting r275057.
https://bugs.webkit.org/show_bug.cgi?id=223768
Caused build failure
Reverted changeset:
"Enforce notifyd message filtering"
https://bugs.webkit.org/show_bug.cgi?id=223601
https://trac.webkit.org/changeset/275057
- 2:51 PM Changeset in webkit [275063] by
-
- 2 edits in trunk/JSTests
Unreviewed, reverting r275056.
This is no longer needed
Reverted changeset:
"stress/early-return-from-builtin.js.default is failing on iOS
JSC testers"
https://commits.webkit.org/r275056
- 2:49 PM Changeset in webkit [275062] by
-
- 2 edits in trunk/Source/WTF
Some calls in AuthenticatorPresenterCoordinator::selectAssertionResponse are not yet available for mac
https://bugs.webkit.org/show_bug.cgi?id=223752
<rdar://problem/75808515>
Reviewed by Jiewen Tan.
- wtf/PlatformHave.h:
- 2:48 PM Changeset in webkit [275061] by
-
- 1 copy in tags/Safari-611.1.21.161.1
Tag Safari-611.1.21.161.1.
- 2:45 PM Changeset in webkit [275060] by
-
- 8 edits in branches/safari-611.1.21.161-branch/Source
Versioning.
WebKit-7611.1.21.161.1
- 2:45 PM Changeset in webkit [275059] by
-
- 5 edits2 adds in trunk
Collapse newly adjacent anonymous table cells when a table cell is detached from between them.
https://bugs.webkit.org/show_bug.cgi?id=220934
Reviewed by Zalan Bujtas.
Source/WebCore:
We already had support for collapsing newly adjacent table row cells when a
table row cell is detached from between them. We need to do this for anonymous
table cells too.
Test: fast/table/table-anonymous-cell-collapse.html
- rendering/updating/RenderTreeBuilder.cpp:
(WebCore::RenderTreeBuilder::destroyAndCleanUpAnonymousWrappers): Call
into the RenderTreeBuilder::Table to collapse anonymous table cells when
needed.
- rendering/updating/RenderTreeBuilderTable.cpp:
(WebCore::RenderTreeBuilder::Table::collapseAndDestroyAnonymousSiblings):
Factor out the existing collapseAndDestroyAnonymousSiblingRows into
something re-usable.
(WebCore::RenderTreeBuilder::Table::collapseAndDestroyAnonymousSiblingCells):
Added.
(WebCore::RenderTreeBuilder::Table::collapseAndDestroyAnonymousSiblingRows):
Factored out to collapseAndDestroyAnonymousSiblings.
- rendering/updating/RenderTreeBuilderTable.h:
LayoutTests:
- fast/table/table-anonymous-cell-collapse-expected.html: Added.
- fast/table/table-anonymous-cell-collapse.html: Added.
- 2:34 PM Changeset in webkit [275058] by
-
- 1 copy in branches/safari-611.1.21.161-branch
New branch.
- 2:23 PM Changeset in webkit [275057] by
-
- 6 edits1 add in trunk/Source
Enforce notifyd message filtering
https://bugs.webkit.org/show_bug.cgi?id=223601
<rdar://75098580>
Reviewed by Brent Fulgham.
Source/WebCore/PAL:
Add Notify SPI file.
- PAL.xcodeproj/project.pbxproj:
- pal/spi/cocoa/NotifySPI.h: Added.
Source/WebKit:
Enable Notify filtering by setting Notify options before entering sandbox.
- Shared/mac/AuxiliaryProcessMac.mm:
(WebKit::compileAndApplySandboxSlowCase):
Source/WTF:
Add ENABLE define for Notify filtering.
- wtf/PlatformEnableCocoa.h:
- 1:53 PM Changeset in webkit [275056] by
-
- 2 edits in trunk/JSTests
stress/early-return-from-builtin.js.default is failing on iOS JSC testers
rdar://75597901
Unreviewed test gardening.
- stress/early-return-from-builtin.js:
- 1:46 PM Changeset in webkit [275055] by
-
- 5 edits in trunk
Source/WebCore:
Fix edge cases in normalization of conic-gradient color stops
https://bugs.webkit.org/show_bug.cgi?id=221294
<rdar://problem/74157218>
Patch by Tim Nguyen <ntim@apple.com> on 2021-03-25
Reviewed by Darin Adler.
lastOneOrLessIndex
had an off-by-one error, so it did not go through the
branch handling clamping all the stop offsets when they're all above 1.
Also made
normalizeStopsAndEndpointsOutsideRange
logic easier to follow using
Optional<size_t>
instead of placeholder values.
Test: web-platform-tests/css/css-images/normalization-conic-2.html
- css/CSSGradientValue.cpp:
(WebCore::ConicGradientAdapter::normalizeStopsAndEndpointsOutsideRange):
LayoutTests:
Enable normalization-conic-2.html WPT now that underlying bug is fixed.
Also skip some conic-gradient tests only on Windows instead of all platforms.
https://bugs.webkit.org/show_bug.cgi?id=221294
<rdar://problem/74157218>
Patch by Tim Nguyen <ntim@apple.com> on 2021-03-25
Reviewed by Darin Adler.
- TestExpectations: enabled imported/w3c/web-platform-tests/css/css-images/normalization-conic-2.html.
- 1:22 PM Changeset in webkit [275054] by
-
- 8 edits in trunk/Source/WebKit
[iOS] Date picker view jumps to center when switching between MobileSafari and another app
https://bugs.webkit.org/show_bug.cgi?id=223662
<rdar://problem/74748727>
Reviewed by Tim Horton.
Tapping on a date input presents a UIDatePicker inside of a
UIContextMenuInteraction. The presentation of context menus is
dependent on the _positionInformation in WKContentViewInteraction being
up-to-date.
To ensure the value is up-to-date, a position information request is
made prior to presenting the date picker. However, the location used
for the request is the current FocusedElementInformation's
lastInteractionLocation. This is fine in most cases, since the date
picker is usually present immediately after tapping on the date input.
However, the date picker can be closed and presented again when
switching between MobileSafari and another app, as the input is focused
again when MobileSafari is reopened. If the switch is performed using a
gesture, the last interaction location is modified. Consequently, the
last interaction location does not always correspond to the position
of the date input, and the position information request gives us
incorrect information, leading to incorrect presentation of the picker.
To fix, add a new way of presenting context menus that is not dependent
on position information. Instead, form controls can use the information
they already have in FocusedElementInformation to present their
peripherals.
No new tests, since this bug only reproduces when swiping to switch apps.
Other touches in the web view immediately dismiss the date picker, making
the bug difficult to reproduce in a test.
- Shared/FocusedElementInformation.cpp:
(WebKit::FocusedElementInformation::encode const):
(WebKit::FocusedElementInformation::decode):
- Shared/FocusedElementInformation.h:
Added a member to inform FocusedElementInformation whether the focused
element is in a subscrollable region.
See r248447 for more details on why this information is needed when
creating a UITargetedPreview.
- UIProcess/ios/WKContentViewInteraction.h:
- UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView overridePositionTrackingViewForTargetedPreviewIfNecessary:containerScrollingNodeID:]):
Factored out the logic that overrides the targeted preview's position
tracking view when the element is in a subscrollable region.
(-[WKContentView _createTargetedContextMenuHintPreviewForFocusedElement]):
Create a targeted preview using the current FocusedElementInformation.
(-[WKContentView _createTargetedContextMenuHintPreviewIfPossible]):
- UIProcess/ios/forms/WKDateTimeInputControl.mm:
(-[WKDateTimePicker controlBeginEditing]):
Displaying the context menu no longer needs to be done asynchronously
since the FocusedElementInformation is already available during
controlBeginEditing.
- UIProcess/ios/forms/WKFormSelectPicker.mm:
Adopt the new logic for <select> elements, since the presented context
menu is an input peripheral, and can run into the same issues as the
date picker.
(-[WKSelectPicker controlBeginEditing]):
(-[WKSelectPicker contextMenuInteraction:previewForHighlightingMenuWithConfiguration:]):
- WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::completeSyntheticClick):
Remove a redundant call to elementDidRefocus following r258333. The
FocusController already calls elementDidRefocus before this point, when
the mousepress event is dispatched.
The redundant call was uncovered when making the context menu
presentation synchronous, and causes problems with the presentation.
Specifically, the first call to elementDidRefocus causes the context
menu to be presented. The second call then results in an attempt
to scroll the web view, since the context menu can obscure the
assisted node. The additional scrolling is unwanted behavior, since it
does not occur when focusing the node for the first time.
This issue was previously unobserved, since the asynchronous presentation
of the context menu (after obtaining new position information) resulted
in both calls to elementDidRefocus occuring before presentation.
(WebKit::WebPage::getFocusedElementInformation):
Forward the scrolling node information to the UIProcess, so that the
position tracking view of the UITargetedPreview can be overridden
if necessary.
- 1:20 PM Changeset in webkit [275053] by
-
- 2 edits in trunk/Source/WTF
Embiggen maximum HashTable size when not using ANGLE
https://bugs.webkit.org/show_bug.cgi?id=223757
Reviewed by Alex Christensen.
This is a partial revert of r274603 which cut the maximum size HashTable from 400 to 250.
When not using ANGLE directly for an OpenGL ES implementation there's some code hashing its
sh::ShaderVariable from the shader compiler ANGLE ships with. This type is too big and
triggers the static_assert.
The eventual goal is for ANGLE to be the OpenGL ES implementation for WebKit when enabling
WebGL. On PlayStation we already have a system OpenGL ES and any use of WebGL is in legacy
applications. The WebGL compliance features in ANGLE aren't needed in this case so ideally
we wouldn't even compile out ANGLE.
This patch punts on fixing the actual problem and just resolves this build issue.
- wtf/HashTable.h:
(WTF::KeyTraits>::inlineLookup):
- 12:57 PM Changeset in webkit [275052] by
-
- 2 edits in trunk/JSTests
early-return-from-builtin.js should try/catch in case of OOM
https://bugs.webkit.org/show_bug.cgi?id=223756
Reviewed by Yusuke Suzuki.
It's throwing an OOM on iOS.
- stress/early-return-from-builtin.js:
- 12:16 PM Changeset in webkit [275051] by
-
- 3 edits in trunk/LayoutTests
[ Debug wk2 ] ASSERTION FAILED: willBeComposited == needsToBeComposited(layer, queryData)
https://bugs.webkit.org/show_bug.cgi?id=223750
Unreviewed test gardening.
- platform/ios-wk2/TestExpectations: Added test expectation to Pass Crash while test is reviewed.
- platform/mac-wk2/TestExpectations: Updated test expectation to Pass Crash while test is reviewed.
- 11:54 AM Changeset in webkit [275050] by
-
- 3 edits in trunk/Source/WebKit
SendKeys on Input of type=file returns element not found in some cases
https://bugs.webkit.org/show_bug.cgi?id=223028
<rdar://problem/75526126>
Reviewed by Devin Rousso.
This bizarre behavior is triggered by removing the <input type=file> element inside an onclick() handler
for the input element. This confuses safaridriver, which expects to be able to query the file input's .value
via JavaScript after setting the files.
As part of the fix, provide the list of selected filenames in the Automation.fileChooserDismissed event.
On the safaridriver side, just use the list of filenames provided in this event to avoid an extra JS evaluation
that may race with page content.
- UIProcess/Automation/Automation.json:
- UIProcess/Automation/WebAutomationSession.cpp:
(WebKit::WebAutomationSession::handleRunOpenPanel):
- 11:47 AM Changeset in webkit [275049] by
-
- 4 edits in trunk/Source/WebCore
Address some alignment issues found by UBSan in contentextensions code
https://bugs.webkit.org/show_bug.cgi?id=223748
Reviewed by Darin Adler.
Address some alignment issues found by UBSan in contentextensions code:
- contentextensions/SerializedNFA.h:55:20: runtime error: reference binding to misaligned address 0xnnnnnnnnn for type 'const unsigned long long', which requires 8 byte alignment
- contentextensions/NFAToDFA.cpp:254:29: runtime error: reference binding to misaligned address 0xnnnnnnnnn for type 'const unsigned long long', which requires 8 byte alignment
- contentextensions/DFABytecodeCompiler.cpp:43:5: runtime error: store to misaligned address 0xnnnnnnnnn for type 'unsigned short', which requires 2 byte alignment
Use memcpy() to store/load to/from misaligned address.
- contentextensions/DFABytecodeCompiler.cpp:
(WebCore::ContentExtensions::append):
- contentextensions/NFAToDFA.cpp:
(WebCore::ContentExtensions::epsilonClosureExcludingSelf):
(WebCore::ContentExtensions::NodeIdSetToUniqueNodeIdSetTranslator::translate):
- contentextensions/SerializedNFA.h:
(WebCore::ContentExtensions::SerializedNFA::Range::pointerAt const):
(WebCore::ContentExtensions::SerializedNFA::Range::valueAt const):
(WebCore::ContentExtensions::SerializedNFA::ConstTargetIterator::operator* const):
(WebCore::ContentExtensions::SerializedNFA::ConstTargetIterator::operator-> const):
(WebCore::ContentExtensions::SerializedNFA::ConstRangeIterator::first const):
(WebCore::ContentExtensions::SerializedNFA::ConstRangeIterator::last const):
(WebCore::ContentExtensions::SerializedNFA::ConstRangeIterator::data const):
(WebCore::ContentExtensions::SerializedNFA::ConstRangeIterator::range const):
(WebCore::ContentExtensions::SerializedNFA::transitionsForNode const):
(WebCore::ContentExtensions::SerializedNFA::Range::operator[] const): Deleted.
- 11:20 AM Changeset in webkit [275048] by
-
- 2 edits in trunk/Source/WebCore
Source/WebCore/xml/parser/CharacterReferenceParserInlines.h:107:33: runtime error: signed integer overflow: 268435455 * 16 cannot be represented in type 'int'
https://bugs.webkit.org/show_bug.cgi?id=223718
Reviewed by Darin Adler.
Use Checked<> for the result in consumeCharacterReference() to deal with overflows
in a well-defined manner.
- xml/parser/CharacterReferenceParserInlines.h:
(WebCore::consumeCharacterReference):
- 10:36 AM Changeset in webkit [275047] by
-
- 8 edits in trunk/Source/WebKit
REGRESSION (r272376): [iOS] ASSERTION FAILED: sessionID.isEphemeral() !path.isEmpty() in WebKit::NetworkProcess::swServerForSession https://bugs.webkit.org/show_bug.cgi?id=222713
Patch by Alex Christensen <achristensen@webkit.org> on 2021-03-25
Reviewed by Geoff Garen.
Because NetworkProcess::CreateNetworkConnectionToWebProcess is sent with SendOption::DispatchMessageEvenWhenWaitingForSyncReply, it is possible
for two messages of type NetworkProcess::AddWebsiteDataStore and two messages of type NetworkProcess::CreateNetworkConnectionToWebProcess to be in the queue,
but the second NetworkProcess::CreateNetworkConnectionToWebProcess jumps to the front of the line while the UI process is waiting for the reply to the first.
Then, when calling NetworkProcess::swServerForSession we expect the session's parameters to have been initialized in the network process already, but we cut
ahead of the parameter initialization message. This is a realistically rare condition that can only be hit when using SPI, but it is hit in the
ResourceLoadStatistics.StoreSuspension API test. To fix this, we send the WebsiteDataStoreParameters from each WebsiteDataStore in the NetworkProcessCreationParameters.
To avoid doing extra work, we introduce an early return in NetworkProcessProxy::addSession if we have already added parameters from this session to the network process.
- NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::initializeNetworkProcess):
(WebKit::NetworkProcess::addSessionStorageQuotaManager):
- NetworkProcess/NetworkProcessCreationParameters.cpp:
(WebKit::NetworkProcessCreationParameters::encode const):
(WebKit::NetworkProcessCreationParameters::decode):
- NetworkProcess/NetworkProcessCreationParameters.h:
- UIProcess/Network/NetworkProcessProxy.cpp:
(WebKit::NetworkProcessProxy::sendCreationParametersToNewProcess):
(WebKit::NetworkProcessProxy::addSession):
- UIProcess/Network/NetworkProcessProxy.h:
- UIProcess/WebsiteData/WebsiteDataStore.cpp:
(WebKit::WebsiteDataStore::parametersFromEachWebsiteDataStore):
- UIProcess/WebsiteData/WebsiteDataStore.h:
- 10:34 AM Changeset in webkit [275046] by
-
- 60 edits in trunk
PCM: Rename attributeOn to attributionDestination and change the IDL data type of attributionSourceId to unsigned long
https://bugs.webkit.org/show_bug.cgi?id=223661
<rdar://problem/75762075>
Reviewed by Brent Fulgham.
The PR review of the update of the PCM spec lead WebKit, Mozilla, and Google to decide on two changes:
- Rename attributeOn to attributionDestination
- Change the IDL data type of attributionSourceId from DOMString to unsigned long
The spec change can be seen in this commit:
https://github.com/privacycg/private-click-measurement/pull/75/commits/8623b5df5e899e6652bc5b00313585f7eeafa797
Source/WebCore:
This patch makes those changes, plus changes names of SPIs, functions, and variables accordingly.
Existing tests were updated.
- html/HTMLAnchorElement.cpp:
(WebCore::HTMLAnchorElement::parsePrivateClickMeasurement const):
- html/HTMLAnchorElement.idl:
- html/HTMLAttributeNames.in:
- loader/PrivateClickMeasurement.cpp:
(WebCore::PrivateClickMeasurement::isValid const):
(WebCore::PrivateClickMeasurement::attributionReportAttributeOnURL const):
(WebCore::PrivateClickMeasurement::attributionReportJSON const):
- loader/PrivateClickMeasurement.h:
(WebCore::PrivateClickMeasurement::AttributionDestinationSite::AttributionDestinationSite):
(WebCore::PrivateClickMeasurement::AttributionDestinationSite::operator== const):
(WebCore::PrivateClickMeasurement::AttributionDestinationSite::deletedValue):
(WebCore::PrivateClickMeasurement::AttributionDestinationSite::constructDeletedValue):
(WebCore::PrivateClickMeasurement::AttributionDestinationSiteHash::hash):
(WebCore::PrivateClickMeasurement::AttributionDestinationSiteHash::equal):
(WebCore::PrivateClickMeasurement::PrivateClickMeasurement):
(WebCore::PrivateClickMeasurement::destinationSite const):
(WebCore::PrivateClickMeasurement::encode const):
(WebCore::PrivateClickMeasurement::decode):
(WTF::HashTraits<WebCore::PrivateClickMeasurement::AttributionDestinationSite>::emptyValue):
(WTF::HashTraits<WebCore::PrivateClickMeasurement::AttributionDestinationSite>::constructDeletedValue):
(WTF::HashTraits<WebCore::PrivateClickMeasurement::AttributionDestinationSite>::isDeletedValue):
(WebCore::PrivateClickMeasurement::AttributeOnSite::AttributeOnSite): Deleted.
(WebCore::PrivateClickMeasurement::AttributeOnSite::operator== const): Deleted.
(WebCore::PrivateClickMeasurement::AttributeOnSite::matches const): Deleted.
(WebCore::PrivateClickMeasurement::AttributeOnSite::isHashTableDeletedValue const): Deleted.
(WebCore::PrivateClickMeasurement::AttributeOnSite::deletedValue): Deleted.
(WebCore::PrivateClickMeasurement::AttributeOnSite::constructDeletedValue): Deleted.
(WebCore::PrivateClickMeasurement::AttributeOnSite::deleteValue): Deleted.
(WebCore::PrivateClickMeasurement::AttributeOnSite::isDeletedValue const): Deleted.
(WebCore::PrivateClickMeasurement::AttributeOnSiteHash::hash): Deleted.
(WebCore::PrivateClickMeasurement::AttributeOnSiteHash::equal): Deleted.
(WebCore::PrivateClickMeasurement::attributeOnSite const): Deleted.
(WTF::HashTraits<WebCore::PrivateClickMeasurement::AttributeOnSite>::emptyValue): Deleted.
(WTF::HashTraits<WebCore::PrivateClickMeasurement::AttributeOnSite>::constructDeletedValue): Deleted.
(WTF::HashTraits<WebCore::PrivateClickMeasurement::AttributeOnSite>::isDeletedValue): Deleted.
Source/WebKit:
This patch makes those changes, plus changes names of SPIs, functions, and variables accordingly.
- NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp:
(WebKit::ResourceLoadStatisticsDatabaseStore::buildPrivateClickMeasurementFromDatabase):
(WebKit::ResourceLoadStatisticsDatabaseStore::findPrivateClickMeasurement):
(WebKit::ResourceLoadStatisticsDatabaseStore::insertPrivateClickMeasurement):
(WebKit::ResourceLoadStatisticsDatabaseStore::removeUnattributed):
(WebKit::ResourceLoadStatisticsDatabaseStore::attributePrivateClickMeasurement):
(WebKit::ResourceLoadStatisticsDatabaseStore::attributionToString):
(WebKit::ResourceLoadStatisticsDatabaseStore::clearSentAttribution):
- NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.h:
- NetworkProcess/Classifier/ResourceLoadStatisticsMemoryStore.h:
- NetworkProcess/Classifier/ResourceLoadStatisticsStore.h:
- NetworkProcess/Classifier/WebResourceLoadStatisticsStore.cpp:
(WebKit::WebResourceLoadStatisticsStore::attributePrivateClickMeasurement):
- NetworkProcess/Classifier/WebResourceLoadStatisticsStore.h:
- NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::setPrivateClickMeasurementAttributionReportURLsForTesting):
- NetworkProcess/NetworkProcess.h:
- NetworkProcess/NetworkProcess.messages.in:
- NetworkProcess/NetworkSession.cpp:
(WebKit::NetworkSession::setPrivateClickMeasurementAttributionReportURLsForTesting):
- NetworkProcess/NetworkSession.h:
- NetworkProcess/PrivateClickMeasurementManager.cpp:
(WebKit::PrivateClickMeasurementManager::handleAttribution):
(WebKit::PrivateClickMeasurementManager::attribute):
(WebKit::PrivateClickMeasurementManager::setAttributionReportURLsForTesting):
- NetworkProcess/PrivateClickMeasurementManager.h:
- UIProcess/API/C/WKPage.cpp:
(WKPageSetPrivateClickMeasurementAttributionReportURLsForTesting):
- UIProcess/API/C/WKPagePrivate.h:
- UIProcess/API/Cocoa/WKWebViewPrivateForTesting.h:
- UIProcess/API/Cocoa/WKWebViewTesting.mm:
(-[WKWebView _setPrivateClickMeasurementAttributionReportURLsForTesting:destinationURL:completionHandler:]):
(-[WKWebView _setPrivateClickMeasurementAttributionReportURLsForTesting:attributeOnURL:completionHandler:]): Deleted.
- UIProcess/API/ios/WKWebViewIOS.mm:
(-[WKWebView _setUIEventAttribution:]):
(-[WKWebView _uiEventAttribution]):
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::didCommitLoadForFrame):
(WebKit::WebPageProxy::setPrivateClickMeasurementAttributionReportURLsForTesting):
- UIProcess/WebPageProxy.h:
Tools:
- TestWebKitAPI/Tests/WebCore/PrivateClickMeasurement.cpp:
(TestWebKitAPI::TEST):
- TestWebKitAPI/Tests/WebKitCocoa/EventAttribution.mm:
(TestWebKitAPI::TEST):
- WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl:
- WebKitTestRunner/InjectedBundle/TestRunner.cpp:
(WTR::TestRunner::setPrivateClickMeasurementAttributionReportURLsForTesting):
- WebKitTestRunner/InjectedBundle/TestRunner.h:
- WebKitTestRunner/TestController.cpp:
(WTR::TestController::setPrivateClickMeasurementAttributionReportURLsForTesting):
- WebKitTestRunner/TestController.h:
- WebKitTestRunner/TestInvocation.cpp:
(WTR::TestInvocation::didReceiveSynchronousMessageFromInjectedBundle):
LayoutTests:
Test cases were updated accordingly.
- http/tests/contentextensions/block-private-click-measurement.html:
- http/tests/privateClickMeasurement/anchor-tag-attributes-reflect-expected.txt:
- http/tests/privateClickMeasurement/anchor-tag-attributes-reflect.html:
- http/tests/privateClickMeasurement/anchor-tag-attributes-validation-expected.txt:
- http/tests/privateClickMeasurement/anchor-tag-attributes-validation.html:
Since attributionSourceId is now an unsigned long, tests that checked invalid
string values are no longer relevant. It should be noted that a set
attributionSourceId with an invalid value becomes 0 which is a valid value.
- http/tests/privateClickMeasurement/attribution-conversion-through-cross-site-image-redirect.html:
- http/tests/privateClickMeasurement/attribution-conversion-through-fetch-keepalive.html:
- http/tests/privateClickMeasurement/attribution-conversion-through-image-redirect-in-new-window.html:
- http/tests/privateClickMeasurement/attribution-conversion-through-image-redirect-with-priority.html:
- http/tests/privateClickMeasurement/attribution-conversion-through-image-redirect-without-priority.html:
- http/tests/privateClickMeasurement/clear-through-website-data-removal.html:
- http/tests/privateClickMeasurement/conversion-disabled-in-ephemeral-session.html:
- http/tests/privateClickMeasurement/expired-ad-click-gets-removed-on-session-start.html:
- http/tests/privateClickMeasurement/expired-attribution-report-gets-sent-on-session-start.html:
- http/tests/privateClickMeasurement/expired-attributions-removed.html:
- http/tests/privateClickMeasurement/second-attribution-converted-with-higher-priority.html:
- http/tests/privateClickMeasurement/second-attribution-converted-with-lower-priority.html:
- http/tests/privateClickMeasurement/second-conversion-with-higher-priority.html:
- http/tests/privateClickMeasurement/second-conversion-with-lower-priority.html:
- http/tests/privateClickMeasurement/send-attribution-conversion-request.html:
- http/tests/privateClickMeasurement/store-disabled-in-ephemeral-session.html:
- http/tests/privateClickMeasurement/store-private-click-measurement-with-source-nonce.html:
- http/tests/privateClickMeasurement/store-private-click-measurement.html:
- 10:16 AM Changeset in webkit [275045] by
-
- 2 edits in trunk/Source/WebCore
Drop unnecessary Settings pre-warming in ProcessWarming::prewarmGlobally()
https://bugs.webkit.org/show_bug.cgi?id=223749
Reviewed by Antti Koivisto.
Drop unnecessary Settings pre-warming in ProcessWarming::prewarmGlobally(). Based on the comment,
it looks like the intention was to prewarm some font families. However, looking at the code, nothing
that gets populated is global and survives the destruction of the Settings object on the next line.
We don't even make any calls to CTFont.
- page/ProcessWarming.cpp:
(WebCore::ProcessWarming::prewarmGlobally):
- 10:06 AM Changeset in webkit [275044] by
-
- 11 edits in releases/WebKitGTK/webkit-2.32
Merge r274641 - [WPE] Bump API version when building with libsoup3
https://bugs.webkit.org/show_bug.cgi?id=223437
Reviewed by Adrian Perez de Castro.
.:
Use 1.1 as the API version when building with soup3.
- Source/PlatformWPE.cmake:
- Source/cmake/OptionsWPE.cmake:
Source/WebKit:
- PlatformWPE.cmake: Use WPE_API_DOC_VERSION instead of WPE_API_VERSION for gtkdoc config files.
- wpe/wpe-web-extension-uninstalled.pc.in: Add variable for libsoup version.
- wpe/wpe-web-extension.pc.in: Ditto.
- wpe/wpe-webkit-uninstalled.pc.in: Ditto.
- wpe/wpe-webkit.pc.in: Ditto.
Tools:
Use WPE_API_DOC_VERSION instead of WPE_API_VERSION.
- wpe/manifest.txt.in:
- 10:06 AM Changeset in webkit [275043] by
-
- 2 edits in releases/WebKitGTK/webkit-2.32/Source/WebCore
Merge r274640 - [SOUP] SOUP3 crashes inside soup_message_set_request_body
https://bugs.webkit.org/show_bug.cgi?id=223236
Reviewed by Adrian Perez de Castro.
Make WebKitFormDataInputStream implement GPollableInputStream.
- platform/network/soup/WebKitFormDataInputStream.cpp:
(webkitFormDataInputStreamNew):
(webkitFormDataInputStreamCanPoll):
(webkitFormDataInputStreamIsReadable):
(webkitFormDataInputStreamCreateSource):
(webkitFormDataInputStreamPollableInterfaceInit):
- 10:06 AM Changeset in webkit [275042] by
-
- 12 edits in releases/WebKitGTK/webkit-2.32/Source
Merge r274479 - [GTK][WPE] Stop using g_memdup
https://bugs.webkit.org/show_bug.cgi?id=223189
Reviewed by Philippe Normand.
Source/WebCore:
Add gstBufferNewWrappedFast() to create a GstBuffer wrapping data allocated with fast malloc and use it when
possible in combination with fastMemDup() instead of g_memdup().
- platform/graphics/gstreamer/GStreamerCommon.cpp:
(WebCore::gstBufferNewWrappedFast):
- platform/graphics/gstreamer/GStreamerCommon.h:
- platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:
(CachedResourceStreamingClient::dataReceived):
- platform/mediastream/gstreamer/RealtimeIncomingAudioSourceLibWebRTC.cpp:
(WebCore::RealtimeIncomingAudioSourceLibWebRTC::OnData):
- platform/mediastream/libwebrtc/GStreamerVideoDecoderFactory.cpp:
Source/WebKit:
- UIProcess/API/glib/WebKitWebResource.cpp:
(webkit_web_resource_get_data_finish): Use g_malloc + memcpy instead of g_memdup.
- UIProcess/API/glib/WebKitWebView.cpp:
(webkit_web_view_save_finish): Use fastMemDup instead g_memdup.
Source/WTF:
Add fastMemDup() to replace g_memdup() that is now deprecated in GLib because of the possibility of overflow
when converting from size_t to unsigned int. There's a replacement in GLib already, but we would need to depend
on very new GLib version, so better use fastMemDup() when possible. In cases where we still need to use GLib
allocator, we can simply call g_malloc() + memcpy().
- wtf/FastMalloc.cpp:
(WTF::fastMemDup):
- wtf/FastMalloc.h:
- 10:06 AM Changeset in webkit [275041] by
-
- 5 edits in releases/WebKitGTK/webkit-2.32/Source
Merge r274354 - [GTK] GTK4 crashes with XVFB: GLXBadWindow
https://bugs.webkit.org/show_bug.cgi?id=223108
Reviewed by Žan Doberšek.
Source/WebCore:
- platform/graphics/x11/PlatformDisplayX11.cpp:
(WebCore::PlatformDisplayX11::supportsGLX const): Check if GLX extension is supported and return the base error code.
- platform/graphics/x11/PlatformDisplayX11.h:
Source/WebKit:
Handle GLXBadWindow errors in AcceleratedBackingStoreX11.
- UIProcess/gtk/AcceleratedBackingStoreX11.cpp:
(WebKit::AcceleratedBackingStoreX11::checkRequirements):
(WebKit::glxErrorCode):
(WebKit::AcceleratedBackingStoreX11::~AcceleratedBackingStoreX11):
(WebKit::AcceleratedBackingStoreX11::update):
- 10:06 AM Changeset in webkit [275040] by
-
- 2 edits in releases/WebKitGTK/webkit-2.32/Source/WebCore/platform/gtk/po
Merge r274624 - [GTK][l10n] Updated Polish translation of WebKitGTK for 2.32
https://bugs.webkit.org/show_bug.cgi?id=223149
Patch by Piotr Drąg <piotrdrag@gmail.com> on 2021-03-18
Rubber-stamped by Carlos Garcia Campos.
- pl.po:
- 10:06 AM Changeset in webkit [275039] by
-
- 5 edits in releases/WebKitGTK/webkit-2.32
Merge r275031 - [GTK][WPE] JSC crashes if a function expects a parameter but doesn't receive any
https://bugs.webkit.org/show_bug.cgi?id=223646
Reviewed by Adrian Perez de Castro.
Source/JavaScriptCore:
Handle the case of receiving fewer argumens than expected in function calls and constructors. We pass undefined
for the expected arguments that are missing. We were not correctly handling the case of converting undefined and
null values to JSCValue, so this patch fixes that case too.
- API/glib/JSCCallbackFunction.cpp:
(JSC::JSCCallbackFunction::call):
(JSC::JSCCallbackFunction::construct):
- API/glib/JSCContext.cpp:
(jscContextJSValueToWrappedObject):
(jscContextJSValueToGValue):
Tools:
Add test cases.
- TestWebKitAPI/Tests/JavaScriptCore/glib/TestJSC.cpp:
(valueToString):
(testJSCFunction):
(testJSCClass):
- 9:49 AM Changeset in webkit [275038] by
-
- 4 edits in trunk/Source
Do not do process pre-warming when the system is under memory pressure
https://bugs.webkit.org/show_bug.cgi?id=223717
<rdar://problem/75810423>
Reviewed by Antti Koivisto.
Source/WebKit:
- WebProcess/WebProcess.cpp:
(WebKit::WebProcess::prewarmGlobally):
Only do prewarming if we're not under memory pressure as this would make
the situation worse.
Source/WTF:
- wtf/cocoa/MemoryPressureHandlerCocoa.mm:
(WTF::MemoryPressureHandler::install):
- Listen to the same memory pressure notifications on macOS and iOS. Previously, macOS would not respond to non-critical memory pressure notifications for example. Also, since macOS would not listen for the notification that happens when the memory usage goes back to normal, MemoruPressureHandler::isUnderMemoryPressure() would start returning true after a critical memory pressure notification and it would never go back to false.
- 9:33 AM Changeset in webkit [275037] by
-
- 16 edits in trunk
Switch from PORTALLOCATOR_DISABLE_ADAPTER_ENUMERATION to filtering interfaces in Network process
https://bugs.webkit.org/show_bug.cgi?id=223679
Reviewed by Eric Carlson.
Source/ThirdParty/libwebrtc:
- Configurations/libwebrtc.iOS.exp:
- Configurations/libwebrtc.iOSsim.exp:
- Configurations/libwebrtc.mac.exp:
Source/WebCore:
Covered by webrtc/datachannel/filter-ice-candidate.html.
- platform/mediastream/libwebrtc/LibWebRTCProvider.cpp:
(WebCore::LibWebRTCProvider::createPeerConnection):
- platform/mediastream/libwebrtc/LibWebRTCProvider.h:
Use set_allow_tcp_listen instead of PORTALLOCATOR_DISABLE_ADAPTER_ENUMERATION.
Source/WebKit:
When starting to monitor, pass whether to enumerate all interfaces from WebProcess to NetworkProcess as a boolean.
In NetworkProcess, do network interface enumeration as usual, but use the boolean to decide whether to send the full list or the list that is related to the default IP addresses to WebProcess.
- NetworkProcess/webrtc/NetworkRTCMonitor.cpp:
(WebKit::NetworkManagerWrapper::addListener):
(WebKit::NetworkManagerWrapper::onNetworksChanged):
(WebKit::NetworkRTCMonitor::startUpdatingIfNeeded):
(WebKit::NetworkRTCMonitor::onNetworksChanged):
- NetworkProcess/webrtc/NetworkRTCMonitor.h:
- NetworkProcess/webrtc/NetworkRTCMonitor.messages.in:
- WebProcess/Network/webrtc/LibWebRTCProvider.cpp:
(WebKit::LibWebRTCProvider::createPeerConnection):
- WebProcess/Network/webrtc/WebRTCMonitor.cpp:
(WebKit::WebRTCMonitor::setEnumeratingAllNetworkInterfacesEnabled):
(WebKit::WebRTCMonitor::StartUpdating):
- WebProcess/Network/webrtc/WebRTCMonitor.h:
- 9:19 AM Changeset in webkit [275036] by
-
- 2 edits in trunk/Source/WebCore
Only preheat MTLCopyAllDevices on Mac
https://bugs.webkit.org/show_bug.cgi?id=223747
Patch by Ben Nham <Ben Nham> on 2021-03-25
Reviewed by Chris Dumez.
We should use adoptNS to avoid leaking the array returned by MTLCopyAllDevices. We should
also only do this on Mac because this is only a public API on the Mac, and the issue of
graphics drivers falling out of the dyld shared cache doesn't exist on iOS.
- platform/graphics/gpu/cocoa/GPUDeviceMetal.mm:
(WebCore::GPUDevice::prewarm):
- 8:30 AM Changeset in webkit [275035] by
-
- 4 edits in trunk
WKContentRuleList first-party should include other subdomains of the current registrable domain
https://bugs.webkit.org/show_bug.cgi?id=223728
Source/WebCore:
<rdar://71912579>
Patch by Alex Christensen <achristensen@webkit.org> on 2021-03-25
Reviewed by John Wilander.
Covered by API tests.
- loader/ResourceLoadInfo.cpp:
(WebCore::ContentExtensions::ResourceLoadInfo::isThirdParty const):
Tools:
Patch by Alex Christensen <achristensen@webkit.org> on 2021-03-25
Reviewed by John Wilander.
- TestWebKitAPI/Tests/WebKitCocoa/ContentRuleListNotification.mm:
(TEST):
- 8:28 AM Changeset in webkit [275034] by
-
- 2 edits in trunk/Source/ThirdParty/libwebrtc
Align RemoteVideoDecoder destruction strategy with RemoteVideoEncoder
https://bugs.webkit.org/show_bug.cgi?id=223745
Reviewed by Eric Carlson.
When decoder is released, we make sure to nullify the decoder callback.
We wait to release WebKit decoder at RemoteVideoDecoder destruction time.
- Source/webrtc/sdk/WebKit/WebKitDecoder.mm:
(webrtc::RemoteVideoDecoder::~RemoteVideoDecoder):
(webrtc::RemoteVideoDecoder::Release):
- 8:28 AM Changeset in webkit [275033] by
-
- 2 edits in trunk/Source/WebCore
Improve RealtimeIncomingVideoSourceCocoa::OnFrame logging to include rotation and size information
https://bugs.webkit.org/show_bug.cgi?id=223741
Reviewed by Eric Carlson.
No change of behavior.
- platform/mediastream/mac/RealtimeIncomingVideoSourceCocoa.mm:
(WebCore::RealtimeIncomingVideoSourceCocoa::OnFrame):
- 8:03 AM Changeset in webkit [275032] by
-
- 7 edits1 delete in trunk/Tools/buildstream
[Flatpak SDK] Update to GStreamer 1.18.4
https://bugs.webkit.org/show_bug.cgi?id=223644
Patch by Philippe Normand <pnormand@igalia.com> on 2021-03-25
Reviewed by Adrian Perez de Castro.
- elements/sdk/gst-libav.bst:
- elements/sdk/gst-plugins-bad.bst:
- elements/sdk/gst-plugins-base.bst:
- elements/sdk/gst-plugins-good.bst:
- elements/sdk/gst-plugins-ugly.bst:
- elements/sdk/gstreamer.bst:
- patches/gst-plugins-base-0001-videodecoder-Fix-racy-critical-when-pool-negotiation.patch: Removed.
- 7:34 AM Changeset in webkit [275031] by
-
- 5 edits in trunk
[GTK][WPE] JSC crashes if a function expects a parameter but doesn't receive any
https://bugs.webkit.org/show_bug.cgi?id=223646
Reviewed by Adrian Perez de Castro.
Source/JavaScriptCore:
Handle the case of receiving fewer argumens than expected in function calls and constructors. We pass undefined
for the expected arguments that are missing. We were not correctly handling the case of converting undefined and
null values to JSCValue, so this patch fixes that case too.
- API/glib/JSCCallbackFunction.cpp:
(JSC::JSCCallbackFunction::call):
(JSC::JSCCallbackFunction::construct):
- API/glib/JSCContext.cpp:
(jscContextJSValueToWrappedObject):
(jscContextJSValueToGValue):
Tools:
Add test cases.
- TestWebKitAPI/Tests/JavaScriptCore/glib/TestJSC.cpp:
(valueToString):
(testJSCFunction):
(testJSCClass):
- 7:07 AM Changeset in webkit [275030] by
-
- 2 edits in releases/WebKitGTK/webkit-2.32/Source/WTF
Merge r275014 - REGRESSION(r271560): [Linux] release assert in Thread::initializePlatformThreading
https://bugs.webkit.org/show_bug.cgi?id=223069
Reviewed by Carlos Garcia Campos.
Replace an existing signal handler instead of aborting.
- wtf/posix/ThreadingPOSIX.cpp:
(WTF::Thread::initializePlatformThreading):
- 7:07 AM Changeset in webkit [275029] by
-
- 2 edits in releases/WebKitGTK/webkit-2.32/Source/WebCore
Merge r274943 - [GStreamer] Use imxvideoconvert_g2d element inside the sink when available
https://bugs.webkit.org/show_bug.cgi?id=223693
Patch by Zan Dobersek <zdobersek@igalia.com> on 2021-03-24
Reviewed by Philippe Normand.
On some iMX platforms we require the use of imxvideoconvert_g2d element
in order to properly convert the visual buffers before they can be
rendered through our pipeline. We expect to require this buffer if it's
present in the GStreamer plugin registry on the system.
We search for this element and, if found, add it to the sink and
position it at the beginning, before the glupload element.
Based on an approach outlined by Gabriel Valcazar.
- platform/graphics/gstreamer/GLVideoSinkGStreamer.cpp:
(webKitGLVideoSinkConstructed):
- 7:07 AM Changeset in webkit [275028] by
-
- 3 edits in releases/WebKitGTK/webkit-2.32
Merge r274976 - REGRESSION(r274870) fast/canvas/webgl/texImage2D-mse-flipY-true.html and fast/canvas/webgl/texImage2D-mse-flipY-false.html are crashing
https://bugs.webkit.org/show_bug.cgi?id=223674
Patch by Philippe Normand <pnormand@igalia.com> on 2021-03-24
Reviewed by Kenneth Russell.
Source/WebCore:
When the srcObject is directly set on a media element, the corresponding URL might still be
empty, so we need to ensure the URI corresponding to the MediaSource blob is not empty,
otherwise uridecodebin would fail to create the right source element.
- platform/graphics/gstreamer/mse/MediaPlayerPrivateGStreamerMSE.cpp:
(WebCore::MediaPlayerPrivateGStreamerMSE::load):
LayoutTests:
- platform/glib/TestExpectations:
- 7:07 AM Changeset in webkit [275027] by
-
- 10 edits in releases/WebKitGTK/webkit-2.32
Merge r274870 - [MSE][GStreamer] SIGSEV in webKitMediaSrcFreeStream
https://bugs.webkit.org/show_bug.cgi?id=220091
Patch by Philippe Normand <pnormand@igalia.com> on 2021-03-23
Reviewed by Xabier Rodriguez-Calvar.
Source/WebCore:
The pipeline used by the MSE player is now able reload the MediaSource from the beginning if
a seek to 0 was requested. The problem was that uridecodebin was creating a new source
element and notifying the player which was then trying to dispose underlying platform track
informations, and also related appsrc elements. The latter was specially problematic because
the appsrc elements ownership was badly handled (elements added to a bin should not be
reused, unless an extra ref is added), leading to racy crashes.
So now when uridecodebin creates a new source element, the player detects this is a new
source and transfers track-related informations to the new element. Additionally, new appsrc
elements are created for the new element and track signals emitted so that the player is
still fully aware of the MSE tracks topology.
No new tests but two existing tests are now passing.
- platform/graphics/gstreamer/mse/MediaPlayerPrivateGStreamerMSE.cpp:
(WebCore::MediaPlayerPrivateGStreamerMSE::load):
(WebCore::MediaPlayerPrivateGStreamerMSE::sourceSetup):
- platform/graphics/gstreamer/mse/MediaPlayerPrivateGStreamerMSE.h:
- platform/graphics/gstreamer/mse/MediaSourcePrivateGStreamer.cpp:
(WebCore::MediaSourcePrivateGStreamer::open):
- platform/graphics/gstreamer/mse/MediaSourcePrivateGStreamer.h:
- platform/graphics/gstreamer/mse/PlaybackPipeline.cpp:
(WebCore::PlaybackPipeline::addSourceBuffer):
- platform/graphics/gstreamer/mse/WebKitMediaSourceGStreamer.cpp:
(webKitMediaSrcFinalize):
(webKitMediaSrcChangeState):
(webKitMediaSrcFreeStream):
(webKitMediaSrcRestoreTracks):
(webKitMediaSrcSignalTracks):
- platform/graphics/gstreamer/mse/WebKitMediaSourceGStreamer.h:
LayoutTests:
- platform/gtk/TestExpectations: Unflag now-passing tests.
- 7:07 AM WebKitGTK/2.32.x edited by
- (diff)
- 7:07 AM Changeset in webkit [275026] by
-
- 2 edits in releases/WebKitGTK/webkit-2.32/Source/WebKit
Merge r274937 - [WPE] Build error in ARMv7 invalid 'static_cast' for GLNativeWindowType
https://bugs.webkit.org/show_bug.cgi?id=223684
Fixes this error:
error: invalid 'static_cast' from type 'uintptr_t' {aka 'unsigned
int'} to type 'GLNativeWindowType' {aka 'void*'}
; an invalid 'static_cast' from type error for ARMv7 (rpi3 and mesa driver)
by using the same solution chosen in
https://bugs.webkit.org/show_bug.cgi?id=179511:
EGLNativeWindowType can be aliased to a different type depending (at least) on the EGL
implementation, its build options, and the libepoxy build options. Using "static_cast"
works when it is a numeric value and the width of the value needs to be optionally
extended to 64 bits (e.g. the EGL type is "int" in a 32-bit CPU) but not for pointers,
and using "reinterpret_cast" works when the size of a pointer is 64 bits but not in other
cases. Therefore it seems reasonable to use a plain C cast expression to solve this
particular situation.
https://trac.webkit.org/changeset/274869/webkit
Reviewed by Philippe Normand.
- Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.cpp:
(WebKit::ThreadedCompositor::createGLContext):
- 7:07 AM Changeset in webkit [275025] by
-
- 7 edits in releases/WebKitGTK/webkit-2.32/Source
Merge r274869 - [GTK] X11 build fixes
https://bugs.webkit.org/show_bug.cgi?id=223577
Patch by Philippe Normand <pnormand@igalia.com> on 2021-03-23
Reviewed by Adrian Perez de Castro.
Source/WebCore:
X11 headers define a bunch of macros with common terms, interfering with WebCore and WTF
enum values. As a workaround, we explicitly undef them.
- platform/graphics/GLContext.h:
- platform/graphics/GraphicsContext.h:
Source/WebKit:
- Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.cpp:
(WebKit::ThreadedCompositor::createGLContext): GLNativeWindowType might be a long unsigned
int, which can't be reinterpret casted to uin64_t on 32-bit platforms.
- WebProcess/WebPage/CoordinatedGraphics/DrawingAreaCoordinatedGraphics.cpp: Use
WebCore::Region to prevent clashes with X11's Region.
(WebKit::DrawingAreaCoordinatedGraphics::scroll):
(WebKit::DrawingAreaCoordinatedGraphics::enterAcceleratedCompositingMode):
(WebKit::DrawingAreaCoordinatedGraphics::display):
- 7:06 AM Changeset in webkit [275024] by
-
- 8 edits in releases/WebKitGTK/webkit-2.32
Merge r274476 - [CMake] Build fails on RISC-V with GCC 11
https://bugs.webkit.org/show_bug.cgi?id=222959
Patch by Khem Raj <raj.khem@gmail.com> on 2021-03-16
Reviewed by Carlos Alberto Lopez Perez.
.:
Check for 1 byte atomic operations along with 64bit ones, some
architevtures (e.g. RISCV) operations on less than 4 bytes are not lock-free
- Source/cmake/WebKitCompilerFlags.cmake:
Source/JavaScriptCore:
Use renamed variable ATOMICS_REQUIRE_LIBATOMIC instead of ATOMIC_INT64_REQUIRES_LIBATOMIC
- CMakeLists.txt:
Source/WebKit:
Use renamed ATOMICS_REQUIRE_LIBATOMIC instead of ATOMIC_INT64_REQUIRES_LIBATOMIC.
- CMakeLists.txt:
Source/WTF:
Link with libatomic if ATOMICS_REQUIRE_LIBATOMIC is set.
- wtf/CMakeLists.txt:
- 7:06 AM Changeset in webkit [275023] by
-
- 2 edits in releases/WebKitGTK/webkit-2.32/Source/JavaScriptCore
Merge r274428 - postprocess-asm/resolve-asm-file-conflicts.rb build failure after upgrading to F34
https://bugs.webkit.org/show_bug.cgi?id=223136
Reviewed by Michael Catanzaro.
When parsing .file assembler directives (for the purpose of
deduplicating the file slots), also accept
.file "path/to/CWD" "path/to/include"
that seems to be emitted by GCC in some configurations. This also
uses Pathname.cleanpath on the resulting path to canonicalize the
paths. We could use .realpath, but since we only run this on the
paths in a single compilation unit and the first component is
supposed to be the CWD, this both seems unnecessary and would
complicate our selftests.
- Scripts/resolve-asm-file-conflicts.rb:
- 7:06 AM Changeset in webkit [275022] by
-
- 2 edits in releases/WebKitGTK/webkit-2.32/Source/WebKit
Merge r274423 - REGRESSION(r233845): EME Keysystem permission when MediaStream is disabled
https://bugs.webkit.org/show_bug.cgi?id=223185
Patch by Philippe Normand <pnormand@igalia.com> on 2021-03-15
Reviewed by Eric Carlson.
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::requestMediaKeySystemPermissionForFrame): This method is required for
EME build configurations, not MediaStream...
- 7:06 AM Changeset in webkit [275021] by
-
- 6 edits in releases/WebKitGTK/webkit-2.32
Merge r274375 - REGRESSION(r274270): [WPE][GTK] Broke Epiphany test /embed/ephy-web-view/error-pages-not-stored-in-history
https://bugs.webkit.org/show_bug.cgi?id=223140
Patch by Michael Catanzaro <Michael Catanzaro> on 2021-03-12
Reviewed by Alex Christensen.
Source/WebCore:
If the SecurityOriginData has no protocol or host, return an empty string instead of ":"
- page/SecurityOriginData.cpp:
(WebCore::SecurityOriginData::toString const):
Source/WebKit:
Convert empty strings to NULL.
- UIProcess/API/glib/WebKitSecurityOrigin.cpp:
(webkit_security_origin_to_string):
Tools:
Improve WebKitSecurityOrigin tests a bit.
- TestWebKitAPI/Tests/WebKitGLib/TestWebKitSecurityOrigin.cpp:
(testCustomProtocolOrigin): Drive-by improvement: check webkit_security_origin_to_string().
(testBogusURI): Added, tests for this bug.
(beforeAll):
- 7:06 AM Changeset in webkit [275020] by
-
- 3 edits in releases/WebKitGTK/webkit-2.32/Source/WebCore
Merge r274358 - [GStreamer] Crashes deep in GStreamer under gst_element_add_pad
https://bugs.webkit.org/show_bug.cgi?id=222763
Patch by Philippe Normand <pnormand@igalia.com> on 2021-03-12
Reviewed by Xabier Rodriguez-Calvar.
Rely on select-streams event to configure only the first video stream of the collection
received on the bus. The select-stream decodebin3 signal is not recommended, and seems
broken anyway, because no selecting audio streams was still leading to audio decode pads
being added, leading to crashes.
- platform/graphics/gstreamer/ImageDecoderGStreamer.cpp:
(WebCore::ImageDecoderGStreamer::InnerDecoder::handleMessage):
(WebCore::ImageDecoderGStreamer::InnerDecoder::preparePipeline):
(WebCore::ImageDecoderGStreamer::InnerDecoder::selectStream): Deleted.
- platform/graphics/gstreamer/ImageDecoderGStreamer.h:
- 7:06 AM Changeset in webkit [275019] by
-
- 2 edits in releases/WebKitGTK/webkit-2.32/Source/WebCore
Merge r273558 - Unreviewed, address post-landing review feedback for r273542.
Update a comment and fix a check that was reversed.
- Modules/webaudio/ScriptProcessorNode.cpp:
(WebCore::ScriptProcessorNode::createOutputBufferForJS const):
(WebCore::ScriptProcessorNode::process):
- 6:44 AM Changeset in webkit [275018] by
-
- 4 edits in trunk/Tools
[ews] Add unit-test to ensure that config.json doesn't have tab characters
https://bugs.webkit.org/show_bug.cgi?id=223440
Reviewed by Jonathan Bedard.
- CISupport/build-webkit-org/loadConfig_unittest.py:
(ConfigDotJSONTest.test_tab_character): Unit-test to ensure that there are no tab characters.
- CISupport/ews-build/config.json:
- CISupport/ews-build/loadConfig_unittest.py:
(ConfigDotJSONTest.test_tab_character):
- 6:42 AM Changeset in webkit [275017] by
-
- 10 edits2 deletes in trunk
Unreviewed, reverting r274826 and r274968.
https://bugs.webkit.org/show_bug.cgi?id=223746
Added broken layout test
Reverted changesets:
"AX: textRectsFromMarkers always fails"
https://bugs.webkit.org/show_bug.cgi?id=223556
https://trac.webkit.org/changeset/274826
"AX: Add functions rectsForTextMarkerRange for testing"
https://bugs.webkit.org/show_bug.cgi?id=223705
https://trac.webkit.org/changeset/274968
- 6:41 AM Changeset in webkit [275016] by
-
- 2 edits in trunk/Source/WebInspectorUI
REGRESSION (r270134) Web Inspector: Audit: Results are stacked on top of each other.
https://bugs.webkit.org/show_bug.cgi?id=223381
<rdar://problem/75528374>
Reviewed by Devin Rousso.
Ensure pre-existing
ContentView
s are removed when navigating back/forward
even when the incomingContentView
is already attached.
For example,
AuditTestContentView
instances for individual tests are already attached
when shown as part of a test groupAuditTestGroupContentView
.
Navigating from the group to the individual test view must remove the group view.
- UserInterface/Views/ContentViewContainer.js:
(WI.ContentViewContainer.prototype.showBackForwardEntryForIndex):
- 5:22 AM Changeset in webkit [275015] by
-
- 6 edits in trunk
Improve interpolation of the shape-outside CSS property
https://bugs.webkit.org/show_bug.cgi?id=223738
Reviewed by Antti Koivisto.
LayoutTests/imported/w3c:
Add another 29 PASS results for shape-outside interpolation.
- web-platform-tests/css/css-shapes/animation/shape-outside-composition-expected.txt:
- web-platform-tests/css/css-shapes/animation/shape-outside-interpolation-expected.txt:
- web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-002-expected.txt:
Source/WebCore:
While we had logic to deal with cases where ShapeValue objects could not be interpolated, we did not make
use of it in the animation wrapper. We now move this logic from the blendFunc() to the canInterpolate()
override method on the wrapper to correctly interpolate only when possible.
- animation/CSSPropertyAnimation.cpp:
(WebCore::blendFunc):
- 5:10 AM Changeset in webkit [275014] by
-
- 2 edits in trunk/Source/WTF
REGRESSION(r271560): [Linux] release assert in Thread::initializePlatformThreading
https://bugs.webkit.org/show_bug.cgi?id=223069
Reviewed by Carlos Garcia Campos.
Replace an existing signal handler instead of aborting.
- wtf/posix/ThreadingPOSIX.cpp:
(WTF::Thread::initializePlatformThreading):
- 3:14 AM Changeset in webkit [275013] by
-
- 27 edits in trunk/Source
All Books quirks are flakily not applied in modern WebKit
https://bugs.webkit.org/show_bug.cgi?id=157101
<rdar://problem/25965028>
Reviewed by Darin Adler.
Source/WebCore:
No new tests; I haven't found a way to write a test that doesn't involve
adding a new parameter to the process bootstrap message, which seems
out of the realm of reason for a test.
- bindings/js/CommonVM.cpp:
(WebCore::commonVMSlow):
(WebCore::globalConstRedeclarationShouldThrow): Deleted.
Stop hardcoding globalConstRedeclarationShouldThrow based on the UI process identity.
- platform/RuntimeApplicationChecks.cpp:
(WebCore::isInAuxiliaryProcess):
- platform/RuntimeApplicationChecks.h:
- platform/cocoa/RuntimeApplicationChecksCocoa.mm:
(WebCore::applicationBundleIdentifier):
(WebCore::setApplicationBundleIdentifierOverride):
Add an assertion to catch any future case where a bundle check is queried
in a auxiliary process before the hosting application bundle identifier is set.
Source/WebKit:
In r200121, a quirk was introduced that queried the isIBooks()
RuntimeApplicationChecks method from inside commonVM().
RuntimeApplicationChecks bundle checks cache the result of the bundle
check, and, as such, must not be called until the bundle identifer of
the UI application is known. In legacy WebKit, this is not a problem,
because the check is running in the application process; in modern WebKit,
there is a short window between process launch and the InitializeWebProcess
message being received where we won't know the bundle identifier, and if
isIBooks() (or any other bundle check) is called during this time, it will
cache the wrong result.
It is possible for commonVM() to be called in this window; one possible path
to this is by triggering an os_log_fault during this time, which WebKit
observes (via os_state_add_handler()) in order to dump memory usage
(which happens to call commonVM() and results in isIBooks getting called
and caching the wrong value).
Add an assertion, and move the quirk to live as a setting on the process
pool configuration, to be set via SPI by Books, instead of as a bundle check.
Also, ensure that client bundle identifier and SDK version are set in
all WebKit subprocesses, so that bundle/SDK checks work everywhere
(previously, the GPU process was using SDK checks without having pushed
the values from the UI process, resulting in incorrect results, and
running afoul of the assertion added above).
- UIProcess/API/APIProcessPoolConfiguration.cpp:
(API::ProcessPoolConfiguration::copy):
(API::defaultShouldThrowExceptionForGlobalConstantRedeclaration):
- UIProcess/API/APIProcessPoolConfiguration.h:
- UIProcess/API/Cocoa/_WKProcessPoolConfiguration.h:
- UIProcess/API/Cocoa/_WKProcessPoolConfiguration.mm:
(-[_WKProcessPoolConfiguration shouldThrowExceptionForGlobalConstantRedeclaration]):
(-[_WKProcessPoolConfiguration setShouldThrowExceptionForGlobalConstantRedeclaration:]):
- UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::initializeNewWebProcess):
- WebProcess/WebProcess.cpp:
(WebKit::WebProcess::initializeWebProcess):
Plumb a new _WKProcessPoolConfiguration parameter to the Web Content process,
and set the bit on the commonVM when launched.
- NetworkProcess/NetworkProcessCreationParameters.cpp:
(WebKit::NetworkProcessCreationParameters::encode const):
(WebKit::NetworkProcessCreationParameters::decode):
- NetworkProcess/NetworkProcessCreationParameters.h:
- NetworkProcess/cocoa/NetworkProcessCocoa.mm:
(WebKit::NetworkProcess::platformInitializeNetworkProcessCocoa):
- Shared/AuxiliaryProcess.cpp:
(WebKit::AuxiliaryProcess::initialize):
(WebKit::AuxiliaryProcess::platformInitialize):
- Shared/AuxiliaryProcess.h:
- Shared/Cocoa/AuxiliaryProcessCocoa.mm:
(WebKit::initializeTimerCoalescingPolicy):
(WebKit::AuxiliaryProcess::platformInitialize):
- Shared/EntryPointUtilities/Cocoa/XPCService/XPCServiceEntryPoint.h:
(WebKit::XPCServiceInitializer):
- Shared/EntryPointUtilities/Cocoa/XPCService/XPCServiceEntryPoint.mm:
(WebKit::XPCServiceInitializerDelegate::getClientSDKVersion):
- Shared/WebProcessCreationParameters.cpp:
(WebKit::WebProcessCreationParameters::encode const):
(WebKit::WebProcessCreationParameters::decode):
- Shared/WebProcessCreationParameters.h:
Remove an extra unused member.
- Shared/ios/AuxiliaryProcessIOS.mm:
(WebKit::AuxiliaryProcess::platformInitialize): Deleted.
- Shared/mac/AuxiliaryProcessMac.mm:
(WebKit::initializeTimerCoalescingPolicy): Deleted.
(WebKit::AuxiliaryProcess::platformInitialize): Deleted.
- UIProcess/Cocoa/WebProcessPoolCocoa.mm:
(WebKit::WebProcessPool::platformInitializeWebProcess):
(WebKit::WebProcessPool::platformInitializeNetworkProcess):
- UIProcess/Launcher/mac/ProcessLauncherMac.mm:
(WebKit::ProcessLauncher::launchProcess):
- WebProcess/cocoa/WebProcessCocoa.mm:
(WebKit::WebProcess::platformInitializeWebProcess):
Plumb the client bundle identifer and SDK version to all auxiliary processes
at process initialization time instead of InitializeWebProcess/NetworkProcess
message receipt time, closing the window in which it is invalid to use
bundle checks, and ensuring that bundle checks work in all processes.