Timeline
Jul 31, 2020:
- 11:09 PM Changeset in webkit [265173] by
-
- 2 edits in trunk/Source/WebCore
[Mac] AudioSessionRoutingArbitrator causes a launch time regression checking for CoreAudio muted state
https://bugs.webkit.org/show_bug.cgi?id=214993
Reviewed by Eric Carlson.
The initial query of isMuted() is only there to tell whether, when we get a notification that the mute state
changed, whether our internal state is dirty and we need to fire a notification. Instead, replace the bool member
with an Optional<bool>, so we know we need to fire a changed notification whenever the first mute state change
comes in.
- platform/audio/mac/AudioSessionMac.mm:
(WebCore::AudioSession::AudioSession):
(WebCore::AudioSession::handleMutedStateChange):
(WebCore::AudioSessionPrivate::AudioSessionPrivate): Deleted.
- 10:57 PM Changeset in webkit [265172] by
-
- 2 edits in trunk/Source/WebCore
Unreviewed Windows build fix after r265167; add some missing includes.
- page/Screen.cpp:
- 6:29 PM Changeset in webkit [265171] by
-
- 11 edits in trunk/Source/WebKit
[Mac] Add Experimental Feature preference for SW VP9
https://bugs.webkit.org/show_bug.cgi?id=215043
<rdar://problem/66400034>
Reviewed by Beth Dakin.
- FeatureFlags/WebKit.plist:
- Shared/WebPageCreationParameters.cpp:
(WebKit::WebPageCreationParameters::encode const):
- Shared/WebPageCreationParameters.h:
- Shared/WebPreferences.yaml:
- Shared/WebPreferencesDefaultValues.cpp:
(WebKit::defaultVP9SWDecoderEnabledOnBattery):
- Shared/WebPreferencesDefaultValues.h:
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::creationParameters):
- WebProcess/WebPage/WebPage.cpp:
(WebKit::m_limitsNavigationsToAppBoundDomains):
- WebProcess/WebProcess.cpp:
(WebKit::WebProcess::enableVP9Decoder):
(WebKit::WebProcess::enableVP9SWDecoder):
- WebProcess/WebProcess.h:
- 5:36 PM Changeset in webkit [265170] by
-
- 9 edits in trunk/Source/WebCore
Clean up text layout code a bit
https://bugs.webkit.org/show_bug.cgi?id=215013
Reviewed by Zalan Bujtas.
This is in preparation for https://bugs.webkit.org/show_bug.cgi?id=214769.
See file-specific ChangeLog entries for more information.
No tests because there is no behavior change.
- platform/graphics/Font.h: Remove unnecessary declaration.
- platform/graphics/FontCascade.cpp:
(WebCore::FontCascade::layoutText const): Rename glyphBufferForTextRun() to layoutText().
Also, make it return a GlyphBuffer instead of taking a GlyphBuffer as an out param.
Its previous return, the initial advance, is now returned in GlyphBuffer::initialAdvance.
(WebCore::FontCascade::drawText const): Update to new signature of layoutText().
(WebCore::FontCascade::drawEmphasisMarks const): Inline drawEmphasisMarksForSimpleText()
and drawEmphasisMarksForComplexText(), since they're nearly identical. Update to the new
signature of layoutText().
(WebCore::FontCascade::displayListForTextRun const): Update to the new signature of
layoutText().
(WebCore::FontCascade::layoutSimpleText const): Make this return a new GlyphBuffer, instead
of taking one as an out param. Also, use accessors of WidthIterator instead of reaching
into its guts. The previous return value is now returned in GlyphBuffer::initialAdvance.
(WebCore::FontCascade::layoutComplexText const): Ditto.
(WebCore::FontCascade::floatWidthForSimpleText const): Use accessors of WidthIterator
instead of reaching into its guts.
(WebCore::FontCascade::adjustSelectionRectForSimpleText const): Ditto.
(WebCore::FontCascade::offsetForPositionForSimpleText const): Ditto.
(WebCore::FontCascade::dashesForIntersectionsWithRect const): Same as
FontCascade::drawEmphasisMarks() above.
(WebCore::FontCascade::glyphBufferForTextRun const): Renamed to layoutText().
(WebCore::FontCascade::getGlyphsAndAdvancesForSimpleText const): Renamed to
layoutSimpleText().
(WebCore::FontCascade::getGlyphsAndAdvancesForComplexText const): Renamed to
layoutComplexText().
(WebCore::FontCascade::drawEmphasisMarksForSimpleText const): Inlined into
drawEmphasisMarks().
(WebCore::FontCascade::drawEmphasisMarksForComplexText const): Ditto.
- platform/graphics/FontCascade.h:
- platform/graphics/GlyphBuffer.h:
(WebCore::GlyphBufferAdvance::GlyphBufferAdvance):
(WebCore::GlyphBufferAdvance::operator FloatSize):
- platform/graphics/TextRun.h: Remove unnecessary declaration.
- platform/graphics/WidthIterator.cpp:
(WebCore::WidthIterator::WidthIterator): Update for changes to WidthIterator.h
- platform/graphics/WidthIterator.h: Rearrange the class members to sort them by size,
to get better packing. Also, make all member variables private, and initialize them
all with { } syntax.
(WebCore::WidthIterator::finalRoundingWidth const):
(WebCore::WidthIterator::currentCharacter const):
- rendering/svg/SVGTextMetrics.cpp: Remove unnecessary include.
- 5:30 PM Changeset in webkit [265169] by
-
- 22 edits20 moves in trunk
Use more inclusive terminology in Tools
https://bugs.webkit.org/show_bug.cgi?id=214971
Patch by Alex Christensen <achristensen@webkit.org> on 2020-07-31
Reviewed by Sam Weinig.
Source/WebKitLegacy/win:
- Interfaces/IWebViewPrivate.idl:
Rename some test-only API. This should not affect binary compatibility because everything is in the same locations, and the changed API is only used for tests.
- WebView.h:
- WebView.cpp:
Tools:
- DumpRenderTree/TestRunner.cpp:
(addOriginAccessAllowListEntryCallback):
(removeOriginAccessAllowListEntryCallback):
(TestRunner::staticFunctions):
(addOriginAccessWhitelistEntryCallback): Deleted.
(removeOriginAccessWhitelistEntryCallback): Deleted.
- DumpRenderTree/TestRunner.h:
- DumpRenderTree/mac/TestRunnerMac.mm:
(TestRunner::addOriginAccessAllowListEntry):
(TestRunner::removeOriginAccessAllowListEntry):
(TestRunner::addOriginAccessWhitelistEntry): Deleted.
(TestRunner::removeOriginAccessWhitelistEntry): Deleted.
- DumpRenderTree/win/DumpRenderTree.cpp:
(resetWebViewToConsistentStateBeforeTesting):
- DumpRenderTree/win/TestRunnerWin.cpp:
(TestRunner::addOriginAccessAllowListEntry):
(TestRunner::removeOriginAccessAllowListEntry):
(TestRunner::addOriginAccessWhitelistEntry): Deleted.
(TestRunner::removeOriginAccessWhitelistEntry): Deleted.
- TestWebKitAPI/Tests/WebKitGLib/TestWebKitUserContentManager.cpp:
(removeOldInjectedContentAndResetLists):
(testUserContentManagerInjectedStyleSheet):
(testUserContentManagerInjectedScript):
(testUserContentManagerContentFilter):
- WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl:
- WebKitTestRunner/InjectedBundle/TestRunner.cpp:
(WTR::TestRunner::addOriginAccessAllowListEntry):
(WTR::TestRunner::removeOriginAccessAllowListEntry):
(WTR::TestRunner::addOriginAccessWhitelistEntry): Deleted.
(WTR::TestRunner::removeOriginAccessWhitelistEntry): Deleted.
- WebKitTestRunner/InjectedBundle/TestRunner.h:
LayoutTests:
- http/tests/security/contentSecurityPolicy/report-blocked-file-uri.php:
- http/tests/security/contentSecurityPolicy/xsl-redirect-allowed.html:
- http/tests/security/contentSecurityPolicy/xsl-redirect-allowed2.html:
- http/tests/security/contentSecurityPolicy/xsl-redirect-blocked.html:
- http/tests/security/isolatedWorld/cross-origin-xhr.html:
- http/tests/security/local-image-from-remote-allow-list-expected.txt: Copied from http/tests/security/local-image-from-remote-whitelisted-expected.txt.
- http/tests/security/local-image-from-remote-allow-list.html: Copied from http/tests/security/local-image-from-remote-whitelisted.html.
- http/tests/security/local-image-from-remote-whitelisted-expected.txt: Removed.
- http/tests/security/local-image-from-remote-whitelisted.html: Removed.
- http/tests/xmlhttprequest/access-control-basic-allow-list-request-headers-expected.txt: Copied from http/tests/xmlhttprequest/access-control-basic-whitelist-request-headers-expected.txt.
- http/tests/xmlhttprequest/access-control-basic-allow-list-request-headers.html: Copied from http/tests/xmlhttprequest/access-control-basic-whitelist-request-headers.html.
- http/tests/xmlhttprequest/access-control-basic-allow-list-response-headers-expected.txt: Copied from http/tests/xmlhttprequest/access-control-basic-whitelist-response-headers-expected.txt.
- http/tests/xmlhttprequest/access-control-basic-allow-list-response-headers.html: Copied from http/tests/xmlhttprequest/access-control-basic-whitelist-response-headers.html.
- http/tests/xmlhttprequest/access-control-basic-whitelist-request-headers-expected.txt: Removed.
- http/tests/xmlhttprequest/access-control-basic-whitelist-request-headers.html: Removed.
- http/tests/xmlhttprequest/access-control-basic-whitelist-response-headers-expected.txt: Removed.
- http/tests/xmlhttprequest/access-control-basic-whitelist-response-headers.html: Removed.
- http/tests/xmlhttprequest/origin-allow-list-all-expected.txt: Copied from http/tests/xmlhttprequest/origin-whitelisting-all-expected.txt.
- http/tests/xmlhttprequest/origin-allow-list-all.html: Copied from http/tests/xmlhttprequest/origin-whitelisting-all.html.
- http/tests/xmlhttprequest/origin-allow-list-exact-match-expected.txt: Copied from http/tests/xmlhttprequest/origin-whitelisting-exact-match-expected.txt.
- http/tests/xmlhttprequest/origin-allow-list-exact-match.html: Copied from http/tests/xmlhttprequest/origin-whitelisting-exact-match.html.
- http/tests/xmlhttprequest/origin-allow-list-https-expected.txt: Copied from http/tests/xmlhttprequest/origin-whitelisting-https-expected.txt.
- http/tests/xmlhttprequest/origin-allow-list-https.html: Copied from http/tests/xmlhttprequest/origin-whitelisting-https.html.
- http/tests/xmlhttprequest/origin-allow-list-ip-addresses-expected.txt: Copied from http/tests/xmlhttprequest/origin-whitelisting-ip-addresses-expected.txt.
- http/tests/xmlhttprequest/origin-allow-list-ip-addresses-with-subdomains-expected.txt: Copied from http/tests/xmlhttprequest/origin-whitelisting-ip-addresses-with-subdomains-expected.txt.
- http/tests/xmlhttprequest/origin-allow-list-ip-addresses-with-subdomains.html: Copied from http/tests/xmlhttprequest/origin-whitelisting-ip-addresses-with-subdomains.html.
- http/tests/xmlhttprequest/origin-allow-list-ip-addresses.html: Copied from http/tests/xmlhttprequest/origin-whitelisting-ip-addresses.html.
- http/tests/xmlhttprequest/origin-allow-list-removal-expected.txt: Copied from http/tests/xmlhttprequest/origin-whitelisting-removal-expected.txt.
- http/tests/xmlhttprequest/origin-allow-list-removal.html: Copied from http/tests/xmlhttprequest/origin-whitelisting-removal.html.
- http/tests/xmlhttprequest/origin-allow-list-subdomains-expected.txt: Copied from http/tests/xmlhttprequest/origin-whitelisting-subdomains-expected.txt.
- http/tests/xmlhttprequest/origin-allow-list-subdomains.html: Copied from http/tests/xmlhttprequest/origin-whitelisting-subdomains.html.
- http/tests/xmlhttprequest/origin-whitelisting-all-expected.txt: Removed.
- http/tests/xmlhttprequest/origin-whitelisting-all.html: Removed.
- http/tests/xmlhttprequest/origin-whitelisting-exact-match-expected.txt: Removed.
- http/tests/xmlhttprequest/origin-whitelisting-exact-match.html: Removed.
- http/tests/xmlhttprequest/origin-whitelisting-https-expected.txt: Removed.
- http/tests/xmlhttprequest/origin-whitelisting-https.html: Removed.
- http/tests/xmlhttprequest/origin-whitelisting-ip-addresses-expected.txt: Removed.
- http/tests/xmlhttprequest/origin-whitelisting-ip-addresses-with-subdomains-expected.txt: Removed.
- http/tests/xmlhttprequest/origin-whitelisting-ip-addresses-with-subdomains.html: Removed.
- http/tests/xmlhttprequest/origin-whitelisting-ip-addresses.html: Removed.
- http/tests/xmlhttprequest/origin-whitelisting-removal-expected.txt: Removed.
- http/tests/xmlhttprequest/origin-whitelisting-removal.html: Removed.
- http/tests/xmlhttprequest/origin-whitelisting-subdomains-expected.txt: Removed.
- http/tests/xmlhttprequest/origin-whitelisting-subdomains.html: Removed.
- platform/win/TestExpectations:
- platform/wk2/TestExpectations:
- 4:41 PM Changeset in webkit [265168] by
-
- 14 edits2 copies2 adds in trunk
Add OfflineAudioCompletionEvent constructor
https://bugs.webkit.org/show_bug.cgi?id=214994
Reviewed by Eric Carlson.
LayoutTests/imported/w3c:
Rebaseline WPT test now that more checks are passing.
- web-platform-tests/webaudio/idlharness.https.window-expected.txt:
Source/WebCore:
Add OfflineAudioCompletionEvent constructor, as per:
Test: webaudio/OfflineAudioCompletionEvent-constructor.html
- CMakeLists.txt:
- DerivedSources-input.xcfilelist:
- DerivedSources-output.xcfilelist:
- DerivedSources.make:
- Modules/webaudio/BaseAudioContext.cpp:
(WebCore::BaseAudioContext::finishedRendering):
- Modules/webaudio/OfflineAudioCompletionEvent.cpp:
(WebCore::OfflineAudioCompletionEvent::create):
(WebCore::OfflineAudioCompletionEvent::OfflineAudioCompletionEvent):
- Modules/webaudio/OfflineAudioCompletionEvent.h:
- Modules/webaudio/OfflineAudioCompletionEvent.idl:
- Modules/webaudio/OfflineAudioCompletionEventInit.h: Copied from Source/WebCore/Modules/webaudio/OfflineAudioCompletionEvent.idl.
- Modules/webaudio/OfflineAudioCompletionEventInit.idl: Copied from Source/WebCore/Modules/webaudio/OfflineAudioCompletionEvent.idl.
- Sources.txt:
- WebCore.xcodeproj/project.pbxproj:
LayoutTests:
Add layout test coverage.
- webaudio/OfflineAudioCompletionEvent-constructor-expected.txt: Added.
- webaudio/OfflineAudioCompletionEvent-constructor.html: Added.
- 4:40 PM Changeset in webkit [265167] by
-
- 13 edits2 adds in trunk
[Mac] YouTube does not offer HDR variants to devices which support HDR
https://bugs.webkit.org/show_bug.cgi?id=215022
Reviewed by Eric Carlson.
Source/WebCore:
Test: platform/mac/media/media-source/is-type-supported-vp9-codec-check.html
There are three separate issues which block YouTube from offering HDR:
1) YouTube checks both valid and invalid VP9 strings through MediaSource.isTypeSupported(), and UAs
which answer
trueto even invalid VP9 strings are blocked from HDR. To solve this, we will now
send isTypeSupported() through the same code path as Media Capabilities.
2) YouTube's standard valid and invalid VP9 strings do not include the fullRangeVideoFlag field, which
would normally be tossed as invalid. We shouldn't relax our requirements globally, so we will
add a Quirk which relaxes the requriement that VP9 strings contain a fullRangeVideoFlag.
3) YouTube's HDR query checks that window.screen.pixelDepth is > 24. We obviously don't want to change
the value of this field globally, so we will add separate Quirk which sets window.screen.pixelDepth
to 25 (a totally nonsensical value) when HDR is available.
Each of these Quirks has a path towards removal for YouTube. The fullRangeVideoFlag field involves
YouTube updating their compatibility check to inculde the fullRangeVideoFlag. The pixelDepth check
can be replaced by thedynamic-range:highMedia Query.
- Modules/mediasource/MediaSource.cpp:
(WebCore::addVP9FullRangeVideoFlagToContentType):
(WebCore::MediaSource::addSourceBuffer):
(WebCore::MediaSource::removeSourceBuffer):
(WebCore::MediaSource::isTypeSupported):
(WebCore::MediaSource::onReadyStateChange):
(WebCore::MediaSource::activeRanges const):
- Modules/mediasource/MediaSource.h:
- page/Quirks.cpp:
(WebCore::Quirks::needsVP9FullRangeFlagQuirk const):
(WebCore::Quirks::needsHDRPixelDepthQuirk const):
- page/Quirks.h:
- page/Screen.cpp:
(WebCore::Screen::pixelDepth const):
- platform/graphics/cocoa/SourceBufferParserWebM.cpp:
(WebCore::SourceBufferParserWebM::isContentTypeSupported):
- platform/graphics/cocoa/VP9UtilitiesCocoa.h:
- platform/graphics/cocoa/VP9UtilitiesCocoa.mm:
(WebCore::isVPCodecConfigurationRecordSupported):
(WebCore::validateVPParameters):
LayoutTests:
- platform/mac/media/media-source/is-type-supported-vp9-codec-check-expected.txt: Added.
- platform/mac/media/media-source/is-type-supported-vp9-codec-check.html: Added.
- platform/mac/media/mediacapabilities/vp9-decodingInfo-sw-expected.txt:
- platform/mac/media/mediacapabilities/vp9-decodingInfo-sw.html:
- 4:36 PM Changeset in webkit [265166] by
-
- 3 edits in trunk/Tools
[test-webkitpy] Have CI use verbose logging
https://bugs.webkit.org/show_bug.cgi?id=215019
<rdar://problem/66383986>
Reviewed by Aakash Jain.
- BuildSlaveSupport/ews-build/steps.py:
(RunWebKitPyPython2Tests): Add --verbose flag.
(RunWebKitPyPython3Tests): Ditto.
- BuildSlaveSupport/ews-build/steps_unittest.py:
(test_success): Add --verbose flag to test-webkitpy command.
(test_unexpected_failure): Ditto.
(test_failure): Ditto.
(test_errors): Ditto.
- 3:56 PM Changeset in webkit [265165] by
-
- 5 edits in trunk/Source
Add linked-on-after check to keep WebSQL working in UIWebView until apps are rebuilt with iOS 14 SDK
https://bugs.webkit.org/show_bug.cgi?id=215035
<rdar://problem/65003342>
Reviewed by Tim Horton.
Source/WebCore:
- platform/RuntimeApplicationChecks.h:
- platform/cocoa/RuntimeApplicationChecksCocoa.mm:
(WebCore::IOSApplication::isJesusCalling): Deleted.
(WebCore::IOSApplication::isFudget): Deleted.
(WebCore::IOSApplication::isFamilyHealthApp): Deleted.
Drop code that is no longer needed.
Source/WebKitLegacy/mac:
Add linked-on-after check to keep WebSQL working in UIWebView until apps are rebuilt with iOS 14 SDK.
- WebView/WebPreferences.mm:
(+[WebPreferences initialize]):
- 3:50 PM Changeset in webkit [265164] by
-
- 2 edits in trunk/LayoutTests
[ macOS ] imported/w3c/web-platform-tests/css/css-scoping/css-scoping-shadow-dynamic-remove-style-detached.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=215039
Unreviewed test gardening.
Patch by Hector Lopez <Hector Lopez> on 2020-07-31
- platform/mac/TestExpectations:
- 3:23 PM Changeset in webkit [265163] by
-
- 6 edits in trunk/Source/WebKit
Launch time regression due to EndowmentStateTracker initialization in WebPageProxy constructor
https://bugs.webkit.org/show_bug.cgi?id=215029
<rdar://problem/66362333>
Reviewed by Geoffrey Garen.
EndowmentStateTracker was expensive and in a critical code path during MobileSafari app launch. Since
this code is new, this was a net app launch time regression. To address the regression, the following
changes were made:
- We only need the EndowmentStateTracker to monitor if the app is user-facing or not, so that we can suspend / resume media playback as needed. As a result, it is unnecessary to start monitoring user-facing state changes as soon as the WebPageProxy is constructed. Instead, we now wait until media plays on the page for the first time.
- It turns out that over 70% of CPU time in the EndowmentStateTracker constructor was spent getting the current endownment for the process. As a result, I updated the code to lazy populate those until they are requested for the first time.
- The remaining 30% of CPU time in the EndowmentStateTracker constructor was spent constructing the RBSProcessMonitor. I moved the initialization of the RBSProcessMonitor from the constructor to EndowmentStateTracker::addClient() so that we only construct a monitor when we actually have our first client.
- All this code was actually only useful for Catalyst app and was therefore doing work on iOS for no reason. I properly #ifdef'd out this code so that it now only applies to Catalyst apps.
- UIProcess/EndowmentStateTracker.h:
(WebKit::EndowmentStateTracker::isVisible const):
(WebKit::EndowmentStateTracker::isUserFacing const):
- UIProcess/EndowmentStateTracker.mm:
(WebKit::EndowmentStateTracker::stateFromEndowments):
(WebKit::EndowmentStateTracker::registerMonitorIfNecessary):
(WebKit::EndowmentStateTracker::addClient):
(WebKit::EndowmentStateTracker::ensureState const const):
(WebKit::EndowmentStateTracker::setState):
(WebKit::EndowmentStateTracker::EndowmentStateTracker): Deleted.
(WebKit::EndowmentStateTracker::setIsUserFacing): Deleted.
(WebKit::EndowmentStateTracker::setIsVisible): Deleted.
- UIProcess/WebPageProxy.cpp:
(WebKit::m_transcodingQueue):
(WebKit::WebPageProxy::updatePlayingMediaDidChange):
- UIProcess/WebPageProxy.h:
- 3:23 PM Changeset in webkit [265162] by
-
- 6 edits in trunk/Source/WebKit
Drop ProcessAssertion::Client and replace with a simple invalidation handler
https://bugs.webkit.org/show_bug.cgi?id=214976
Reviewed by Brady Eidson.
ProcessAssertion had a Client class with 2 functions:
(1) one to indicate that the assertion was invalidated
(2) one to indicate that the UI assertion is about to expire
While ProcessAssertion is used in several places, only the ProcessThrottler
ever sets itself as a client. The reason is that other call sites use
assertion types that do not expire. Also, (2) only makes sense for
ProcessAndUIAssertion, not for ProcessAssertion. Only the ProcessThrottler
is using a ProcessAndUIAssertion.
I think a better design is to have a simple invalidation handler on
the ProcessAssertion, that the call site can set if they are interested
in invalidation.
Similarly, I added a UIAssertion expiration handler on ProcessAndUIAssertion
so that the ProcessThrottler can know if the UIAssertion is about to expire.
This new design also matches more closely the system process assertion API
that ProcessAssertion / ProcessAndUIAssertion are wrapping.
This patch also fixes a bug found by Youenn Fablet where the ProcessThrottler
would only set its invalidation handler in didConnectToProcess(), instead of
doing it every time a new ProcessAssertion is created in setAssertionType().
The assertion type can change (e.g. from foreground to background) after the
process has launched.
- UIProcess/ProcessAssertion.h:
(WebKit::ProcessAssertion::setInvalidationHandler):
(WebKit::ProcessAssertion::Client::~Client): Deleted.
(WebKit::ProcessAssertion::setClient): Deleted.
(WebKit::ProcessAssertion::client): Deleted.
- UIProcess/ProcessThrottler.cpp:
(WebKit::ProcessThrottler::setAssertionType):
(WebKit::ProcessThrottler::didConnectToProcess):
- UIProcess/ProcessThrottler.h:
- UIProcess/ios/ProcessAssertionIOS.mm:
(WebKit::ProcessAssertion::processAssertionWasInvalidated):
(WebKit::ProcessAndUIAssertion::uiAssertionWillExpireImminently):
- 3:22 PM Changeset in webkit [265161] by
-
- 3 edits in trunk/LayoutTests
[ macOS wk1 iOS wk2 Release ] imported/w3c/web-platform-tests/websockets/cookies/third-party-cookie-accepted.https.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=215033
Unreviewed test gardening.
Patch by Hector Lopez <Hector Lopez> on 2020-07-31
- platform/ios-simulator-wk2/TestExpectations:
- platform/mac-wk1/TestExpectations:
- 3:14 PM Changeset in webkit [265160] by
-
- 3 edits2 adds in trunk
Log a warning to the dev console when gamepads are accessed from an insecure context.
https://bugs.webkit.org/show_bug.cgi?id=214995
Reviewed by Tim Horton.
Source/WebCore:
Test: http/tests/misc/gamepads-insecure.html
- Modules/gamepad/NavigatorGamepad.cpp:
(WebCore::NavigatorGamepad::getGamepads): Insecure contexts should log that getGamepads() will
be going away in a future release. Just do it once, because getGamepads() is called frequently.
LayoutTests:
- http/tests/misc/gamepads-insecure-expected.txt: Added.
- http/tests/misc/gamepads-insecure.html: Added.
- 2:02 PM Changeset in webkit [265159] by
-
- 2 edits in trunk/Source/JavaScriptCore
Move Options setter to where we allow access to the Options object
https://bugs.webkit.org/show_bug.cgi?id=215028
Reviewed by Saam Barati.
Right now jsc CLI crashes when assertions are enabled on iOS.
- jsc.cpp:
(main):
(CommandLine::parseArguments):
- 1:39 PM Changeset in webkit [265158] by
-
- 2 edits in trunk/Source/WebKit
SOAuthorizationSession::dismissViewController could crash on calling WebPageProxy::platformWindow
https://bugs.webkit.org/show_bug.cgi?id=214816
<rdar://problem/65681530>
Reviewed by Youenn Fablet.
pageClient() called in WebPageProxy::platformWindow() could be null. Therefore, platformWindow()
needs to check m_pageClient instead.
- UIProcess/mac/WebPageProxyMac.mm:
(WebKit::WebPageProxy::platformWindow):
- 1:19 PM Changeset in webkit [265157] by
-
- 8 edits in trunk
[macOS] Date/time input types should have a textfield appearance
https://bugs.webkit.org/show_bug.cgi?id=214978
Reviewed by Wenson Hsieh.
Source/WebCore:
On iOS, date/time input types have a menulist-button appearance. However, this appearance
does not match the style of native date controls on macOS. The textfield appearance
with no focus ring brings us closer to a natively styled control.
- rendering/RenderTheme.h:
- rendering/RenderThemeMac.h:
- rendering/RenderThemeMac.mm:
(WebCore::RenderThemeMac::dateInputStyleSheet const):
(WebCore::RenderThemeMac::dateTimeLocalInputStyleSheet const):
(WebCore::RenderThemeMac::monthInputStyleSheet const):
(WebCore::RenderThemeMac::timeInputStyleSheet const):
(WebCore::RenderThemeMac::weekInputStyleSheet const):
LayoutTests:
Rebaselined tests for updated appearance.
- platform/mac-wk2/fast/forms/date/date-input-rendering-basic-expected.txt:
- platform/mac-wk2/fast/forms/time/time-input-rendering-basic-expected.txt:
- platform/mac-wk2/imported/w3c/web-platform-tests/html/rendering/widgets/appearance/default-styles-expected.txt:
- 12:50 PM Changeset in webkit [265156] by
-
- 16 edits5 copies2 adds in trunk
Special HID mapping for the Dualshock 3 controller
<rdar://problem/66255198> and https://bugs.webkit.org/show_bug.cgi?id=214911
Reviewed by Tim Horton.
Source/WebCore:
Covered by API tests.
- Move GamepadButtons into a GamepadConstants header
- Add a "KnownGamepads" header to hold all vendor/product pairs that WebKit knows about
- Add a Dualshock3 controller mapping based on its HID report
- Add a basic DS3 test based on the HID report
- Sources.txt:
- SourcesCocoa.txt:
- WebCore.xcodeproj/project.pbxproj:
- platform/gamepad/GamepadConstants.cpp: Copied from Source/WebCore/platform/gamepad/mac/GenericHIDGamepad.h.
(WebCore::standardGamepadMappingString):
- platform/gamepad/GamepadConstants.h: Added.
- platform/gamepad/KnownGamepads.h: Copied from Source/WebCore/platform/gamepad/mac/GenericHIDGamepad.h.
- platform/gamepad/cocoa/GameControllerGamepad.mm:
(WebCore::GameControllerGamepad::setupAsExtendedGamepad):
- platform/gamepad/mac/Dualshock3HIDGamepad.cpp: Added.
(WebCore::Dualshock3HIDGamepad::Dualshock3HIDGamepad):
- platform/gamepad/mac/Dualshock3HIDGamepad.h: Copied from Source/WebCore/platform/gamepad/mac/GenericHIDGamepad.h.
- platform/gamepad/mac/GenericHIDGamepad.cpp:
(WebCore::GenericHIDGamepad::GenericHIDGamepad):
(WebCore::GenericHIDGamepad::id): Deleted.
- platform/gamepad/mac/GenericHIDGamepad.h:
- platform/gamepad/mac/HIDGamepad.cpp:
(WebCore::HIDGamepad::create):
(WebCore::HIDGamepad::HIDGamepad):
(WebCore::HIDGamepad::initialize):
- platform/gamepad/mac/HIDGamepad.h:
- platform/mac/HIDDevice.h:
(WebCore::HIDDevice::fullProductIdentifier const):
- platform/mac/HIDElement.h:
(WebCore::HIDElement::fullUsage const):
Tools:
Add a virtual Dualshock3 and verify a few attributes about it.
- TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
- TestWebKitAPI/Tests/mac/HIDGamepads.mm:
- TestWebKitAPI/mac/GamepadMappings/SonyDualShock3.mm: Added.
(TestWebKitAPI::publishReportCallback):
(TestWebKitAPI::VirtualGamepad::sonyDualshock3Mapping):
- TestWebKitAPI/mac/VirtualGamepad.h:
- 12:39 PM Changeset in webkit [265155] by
-
- 3 edits in trunk/Source/WebCore
Fix Windows build.
https://bugs.webkit.org/show_bug.cgi?id=214988
- platform/network/cf/CertificateInfo.h:
- platform/network/cf/CertificateInfoCFNet.cpp:
- 12:24 PM Changeset in webkit [265154] by
-
- 3 edits in trunk/Source/JavaScriptCore
Re-enable NO_SMT on Catalina
https://bugs.webkit.org/show_bug.cgi?id=215024
Reviewed by Alexey Proskuryakov.
- runtime/Options.cpp:
(JSC::defaultTCSMValue):
- runtime/OptionsList.h:
- 11:57 AM Changeset in webkit [265153] by
-
- 2 edits in trunk/LayoutTests
REGRESSION: [ iOS wk2 Debug ] imported/w3c/web-platform-tests/webrtc/RTCSctpTransport-maxChannels.html is a constant crash
https://bugs.webkit.org/show_bug.cgi?id=215025
Unreviewed test gardening.
Patch by Hector Lopez <Hector Lopez> on 2020-07-31
- platform/ios-simulator-wk2/TestExpectations:
- 11:47 AM Changeset in webkit [265152] by
-
- 15 edits4 copies in trunk
Add constructor for WaveShaperNode
https://bugs.webkit.org/show_bug.cgi?id=214989
Reviewed by Youenn Fablet.
LayoutTests/imported/w3c:
Rebaseline WPT tests now that more checks are passing.
- web-platform-tests/webaudio/idlharness.https.window-expected.txt:
- web-platform-tests/webaudio/the-audio-api/the-waveshapernode-interface/ctor-waveshaper-expected.txt:
- web-platform-tests/webaudio/the-audio-api/the-waveshapernode-interface/waveshaper-simple-expected.txt:
Source/WebCore:
Add constructor for WaveShaperNode:
No new tests, rebaselined existing tests.
- CMakeLists.txt:
- DerivedSources-input.xcfilelist:
- DerivedSources-output.xcfilelist:
- DerivedSources.make:
- Modules/webaudio/BaseAudioContext.cpp:
(WebCore::BaseAudioContext::createWaveShaper):
- Modules/webaudio/OverSampleType.h: Copied from Source/WebCore/Modules/webaudio/WaveShaperNode.idl.
- Modules/webaudio/OverSampleType.idl: Copied from Source/WebCore/Modules/webaudio/WaveShaperNode.idl.
- Modules/webaudio/WaveShaperNode.cpp:
(WebCore::WaveShaperNode::create):
(WebCore::WaveShaperNode::setCurve):
(WebCore::processorType):
- Modules/webaudio/WaveShaperNode.h:
(WTF::LogArgument<WebCore::OverSampleType>::toString):
- Modules/webaudio/WaveShaperNode.idl:
- Modules/webaudio/WaveShaperOptions.h: Copied from Source/WebCore/Modules/webaudio/WaveShaperNode.idl.
- Modules/webaudio/WaveShaperOptions.idl: Copied from Source/WebCore/Modules/webaudio/WaveShaperNode.idl.
- Sources.txt:
- WebCore.xcodeproj/project.pbxproj:
- 11:46 AM Changeset in webkit [265151] by
-
- 16 edits in trunk/Source/JavaScriptCore
validate untagArrayPtr
https://bugs.webkit.org/show_bug.cgi?id=214953
Reviewed by Keith Miller.
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 shifts 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:54 AM Changeset in webkit [265150] by
-
- 13 edits in trunk
Update service worker if certificate info does not match when soft updating
https://bugs.webkit.org/show_bug.cgi?id=214988
Reviewed by Alex Christensen.
Source/WebCore:
In case service worker certificate info does not match, treat it as if the script changed.
This is a convenient way to update the service worker and the stored registration database.
Covered by API test.
- platform/network/cf/CertificateInfo.h:
- platform/network/cf/CertificateInfoCFNet.cpp:
(WebCore::certificatesMatch):
- workers/service/server/SWServerJobQueue.cpp:
(WebCore::doCertificatesMatch):
(WebCore::SWServerJobQueue::scriptFetchFinished):
- workers/service/server/SWServerWorker.h:
(WebCore::SWServerWorker::certificateInfo const):
Source/WebKit:
Make sure service worker soft updater gathers certificate info.
- NetworkProcess/ServiceWorker/ServiceWorkerSoftUpdateLoader.cpp:
(WebKit::ServiceWorkerSoftUpdateLoader::loadFromNetwork):
(WebKit::ServiceWorkerSoftUpdateLoader::didReceiveResponse):
- NetworkProcess/cocoa/NetworkSessionCocoa.mm:
(WebKit::NetworkSessionCocoa::allowsSpecificHTTPSCertificateForHost):
Tools:
Update HTTPServer to pass two optional parameters:
- A port number to listen to if provided
- A custom server identity to use if provided
The API test is loading an URL on a first server.
This triggers registration of a service worker.
It then stops this server and launches a second server on the same port with a different certificate.
A second page is loaded on the same URL.
This triggers the case of updating a service worker certificate info.
- TestWebKitAPI/Tests/WebKitCocoa/Challenge.mm:
(createTestIdentity):
(testIdentity):
(testIdentity2):
- TestWebKitAPI/Tests/WebKitCocoa/ServiceWorkerBasic.mm:
- TestWebKitAPI/cocoa/HTTPServer.h:
- TestWebKitAPI/cocoa/HTTPServer.mm:
(TestWebKitAPI::HTTPServer::listenerParameters):
(TestWebKitAPI::HTTPServer::HTTPServer):
- 10:44 AM Changeset in webkit [265149] by
-
- 10 edits in trunk
-[WKWebsiteDataStore _renameOrigin:] needs to support IndexedDB renames
https://bugs.webkit.org/show_bug.cgi?id=214905
<rdar://problem/66247978>
Patch by Sihui Liu <sihui_liu@appe.com> on 2020-07-31
Reviewed by Alex Christensen.
Source/WebCore:
To do the renaming, we close all existing databases whose top origin is old origin, and move all files in
directory of old origin to that of new origin.
API test: WebKit.WebsiteDataStoreRenameOriginForIndexedDatabase
- Modules/indexeddb/server/IDBServer.cpp:
(WebCore::IDBServer::IDBServer::closeDatabasesForOrigins):
(WebCore::IDBServer::IDBServer::closeAndDeleteDatabasesForOrigins):
(WebCore::IDBServer::IDBServer::renameOrigin):
- Modules/indexeddb/server/IDBServer.h:
Source/WebKit:
- NetworkProcess/IndexedDB/WebIDBServer.cpp:
(WebKit::WebIDBServer::renameOrigin):
- NetworkProcess/IndexedDB/WebIDBServer.h:
- NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::renameOriginInWebsiteData):
- UIProcess/API/Cocoa/WKWebsiteDataStore.mm:
(-[WKWebsiteDataStore _renameOrigin:to:forDataOfTypes:completionHandler:]):
Tools:
- TestWebKitAPI/Tests/WebKitCocoa/WebsiteDataStoreCustomPaths.mm:
(TEST):
- 10:27 AM Changeset in webkit [265148] by
-
- 2 edits in trunk/Source/WebCore
AX: Inteterminate progressbar reading as 50% with Voiceover
https://bugs.webkit.org/show_bug.cgi?id=214330
<rdar://problem/65570800>
Reviewed by Zalan Bujtas.
Expose indeterminate status to iOS API.
- accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:
(-[WebAccessibilityObjectWrapper accessibilityIsIndeterminate]):
(-[WebAccessibilityObjectWrapper accessibilityIsInDescriptionListTerm]):
(-[WebAccessibilityObjectWrapper accessibilityIsInDescriptionListDefinition]):
- Drive by style fix.
- 10:26 AM Changeset in webkit [265147] by
-
- 8 edits in trunk/Source
Versioning.
WebKit-610.1.25
- 10:21 AM Changeset in webkit [265146] by
-
- 1 copy in branches/safari-610.1.24-branch
New branch.
- 10:09 AM Changeset in webkit [265145] by
-
- 4 edits in trunk/Source/WebCore
PIP on netflix.com shows only a gray window and spinner
https://bugs.webkit.org/show_bug.cgi?id=214899
Reviewed by Jer Noble.
Use an empty "seekableRanges" instead of a special "duration" value (NaN) to indicate
that seeking is not supported. With this change, the "duration" will always have a meaningful
value, so that WebAVPlayerController can work properly in the picture-in-picture mode.
Related change: https://trac.webkit.org/changeset/217858.
- html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::supportsSeeking const):
- platform/cocoa/PlaybackSessionModelMediaElement.mm:
(WebCore::PlaybackSessionModelMediaElement::duration const):
(WebCore::PlaybackSessionModelMediaElement::seekableRanges const):
- platform/mac/WebPlaybackControlsManager.mm:
(-[WebPlaybackControlsManager canBeginTouchBarScrubbing]):
- 9:27 AM Changeset in webkit [265144] by
-
- 3 edits in trunk/Source/WebKit
Unreviewed Catalyst build fix.
- WebProcess/WebPage/Cocoa/TextCheckingControllerProxy.h: I should have added the include here.
- WebProcess/WebPage/Cocoa/TextCheckingControllerProxy.mm:
- 9:10 AM Changeset in webkit [265143] by
-
- 3 edits in trunk/Tools
[webkitcorepy] Changes to Tools/Scripts/libraries should trigger EWS
https://bugs.webkit.org/show_bug.cgi?id=214998
<rdar://problem/66355658>
Reviewed by Aakash Jain.
- BuildSlaveSupport/ews-build/steps.py:
(CheckPatchRelevance): Add Tools/Scripts/libraries.
- BuildSlaveSupport/ews-build/steps_unittest.py:
(TestCheckPatchRelevance.test_relevant_webkitpy_patch):
(TestCheckPatchRelevance.test_relevant_libraries_patch):
- 9:00 AM Changeset in webkit [265142] by
-
- 13 edits in trunk/Source/JavaScriptCore
Reduce over include usage in JSC
https://bugs.webkit.org/show_bug.cgi?id=215010
Reviewed by Mark Lam.
My first attempt to fix
https://bugs.webkit.org/show_bug.cgi?id=215009 by making it so we
don't include FastJITPermissions.h in TestWebKitAPI, was
unsuccessful. Mostly because I gave up after several hours of
building... I figure it's still worth it to land the last working
version I was able to get building.
- assembler/MacroAssemblerCodeRef.h:
- bytecode/CodeBlock.cpp:
- bytecode/PolymorphicAccess.h:
- inspector/agents/InspectorRuntimeAgent.cpp:
- interpreter/CallFrame.h:
- jit/ThunkGenerators.cpp:
- llint/LLIntOffsetsExtractor.cpp:
- runtime/TypeLocationCache.cpp:
- runtime/VM.cpp:
(JSC::VM::getCTIStub):
- runtime/VM.h:
(JSC::VM::getCTIStub): Deleted.
- tools/JSDollarVM.cpp:
- 8:54 AM Changeset in webkit [265141] by
-
- 3 edits in trunk/Tools
Fix build around broken internal SDK for iOS 13
https://bugs.webkit.org/show_bug.cgi?id=215009
Reviewed by Mark Lam.
We need to manually include the private headers because the system tries to hide them from us even on internal builds...
- TestWebKitAPI/Configurations/TestWebKitAPI.xcconfig:
- TestWebKitAPI/Configurations/TestWebKitAPILibrary.xcconfig:
- 8:36 AM Changeset in webkit [265140] by
-
- 2 edits in trunk/Tools
[ews] Add unit-tests for various builder factories
https://bugs.webkit.org/show_bug.cgi?id=214969
Reviewed by Jonathan Bedard.
- BuildSlaveSupport/ews-build/factories_unittest.py: Added unit-tests.
(TestBuildFactory.test_generic_build_factory):
(TestBuildFactory.test_gtk_build_factory):
(TestBuildFactory.test_wpe_factory):
(TestBuildFactory.test_wincairo_factory):
- 7:03 AM Changeset in webkit [265139] by
-
- 8 edits in trunk/Source
[iOS] Issue a temporary extension to the MobileGestalt daemon when the MobileGestalt cache is invalid
https://bugs.webkit.org/show_bug.cgi?id=214965
Reviewed by Geoffrey Garen.
Source/WebCore/PAL:
Declare MobileGestalt queestion identifier.
- pal/spi/ios/MobileGestaltSPI.h:
Source/WebKit:
When the MobileGestalt cache is invalid, some MG queries will fail in the WebContent process, since it has no access to the daemon.
This can be fixed by issuing a temporary extension to the daemon, and having the WebContent process query all relevant MG values
while holding the extension. This will bring the values into the in-memory cache, which will be valid after the extension to the
daemon has been revoked. We will still attempt to rebuild the MG cache if invalid, but since we now have a workaround for when the
cache is invalid, we can do this on a secondary thread to avoid blocking the main thread. We also only attempt to rebuild once now,
instead of every time a WebContent process is started. Additionally, add IOKit property read access to "platform-name", since that
is needed by a MG query.
No new tests, since testing this depends on having an invalid cache, which is rare, and non-trivial to enforce in the test
environment.
- Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
- Shared/WebProcessCreationParameters.cpp:
(WebKit::WebProcessCreationParameters::encode const):
(WebKit::WebProcessCreationParameters::decode):
- Shared/WebProcessCreationParameters.h:
- UIProcess/Cocoa/WebProcessPoolCocoa.mm:
(WebKit::WebProcessPool::platformInitialize):
(WebKit::WebProcessPool::platformInitializeWebProcess):
- WebProcess/cocoa/WebProcessCocoa.mm:
(WebKit::WebProcess::platformInitializeWebProcess):
- 3:57 AM Changeset in webkit [265138] by
-
- 11 edits1 delete in trunk/Source
[GTK] Mouse wheel events on horizontal scrollbar not correctly handled when AC mode is forced
https://bugs.webkit.org/show_bug.cgi?id=207113
Reviewed by Adrian Perez de Castro.
Source/WebCore:
Remove GTK specific code to invert scroll direction of wheel events.
- page/EventHandler.cpp:
(WebCore::EventHandler::handleWheelEvent):
(WebCore::EventHandler::shouldSwapScrollDirection const): Deleted.
- platform/SourcesGLib.txt:
- platform/glib/EventHandlerGLib.cpp: Removed.
Source/WebKit:
Move the direction swap to the UI process before passing the event to the web
process. WebHitTestResultData::isScrollbar is now an enum with values No, Verttical, Horizontal. When a wheel
event is received in the widget we check whether we should invert the direction or not.
- Shared/API/glib/WebKitHitTestResult.cpp:
(webkitHitTestResultCreate):
(webkitHitTestResultCompare):
- Shared/WebHitTestResultData.cpp:
(WebKit::WebHitTestResultData::WebHitTestResultData):
- Shared/WebHitTestResultData.h:
- UIProcess/API/APIHitTestResult.h:
(API::HitTestResult::isScrollbar const):
- UIProcess/API/glib/WebKitWebView.cpp:
(webkitWebViewMouseTargetChanged):
- UIProcess/API/gtk/WebKitWebViewBase.cpp:
(shouldInvertDirectionForScrollEvent):
(webkitWebViewBaseScrollEvent):
(webkitWebViewBaseScroll):
(webkitWebViewBaseSetMouseIsOverScrollbar):
- UIProcess/API/gtk/WebKitWebViewBasePrivate.h:
- 2:00 AM Changeset in webkit [265137] by
-
- 4 edits in trunk/Source/WebCore
[WebXR] Retrieve supported reference spaces from actual XR systems
https://bugs.webkit.org/show_bug.cgi?id=214187
Reviewed by Carlos Garcia Campos.
Each XR system supports a set of reference spaces which are used by WebXR to stablish
a spatial relationship with user's physical environment. The list of supported reference
spaces determine whether or not a session request succeeds or not, as it will refuse to
start a session with an unsupported reference space.
So far, no reference spaces were retrieved from the actual devices. This patch adds the
required OpenXR machinery to retrieve them. In particular, we have to create a XrSession
(although we don't have to start it) in order to retrieve the reference spaces. Since we
don't need it to show content to the user we can create it in headless mode and then discard
it afterwards when no longer needed.
- Modules/webxr/WebXRSession.cpp:
(WebCore::WebXRSession::WebXRSession): Clarify a comment. Also s/TODO/FIXME/g.
- platform/xr/openxr/PlatformXROpenXR.cpp:
(PlatformXR::isExtensionSupported): New method to check whether a specific extension
is supported.
(PlatformXR::Instance::Impl::checkInstanceExtensionProperties const): renamed from
enumerateInstanceExtensionProperties(). Returns whether or not the call succeeded.
(PlatformXR::Instance::Impl::Impl): Pass the list of enabled extensions to the instance.
(PlatformXR::Instance::enumerateImmersiveXRDevices): Log the systems found.
(PlatformXR::OpenXRDevice::OpenXRDevice):
(PlatformXR::OpenXRDevice::enumerateReferenceSpaces const): New method to list the
supported reference spaces by the XR system.
(PlatformXR::OpenXRDevice::collectSupportedSessionModes): Store reference spaces as
enabled features for supported modes.
(PlatformXR::OpenXRDevice::collectConfigurationViews): Renamed from
enumerateConfigurationViews().
(PlatformXR::Instance::Impl::enumerateInstanceExtensionProperties const): Deleted.
(PlatformXR::OpenXRDevice::enumerateConfigurationViews): Deleted.
- platform/xr/openxr/PlatformXROpenXR.h:
- 12:45 AM Changeset in webkit [265136] by
-
- 3 edits in trunk/Source/JavaScriptCore
[JSC] Follow-up changes after r265036
https://bugs.webkit.org/show_bug.cgi?id=214982
Reviewed by Darin Adler.
- dfg/DFGOSRExit.cpp:
(JSC::DFG::OSRExit::compileExit): Remove dupe definitions in OSRExit.
- jit/JITCall32_64.cpp:
(JSC::JIT::emit_op_iterator_open): We should use emitJumpSlowCaseIfNotJSCell(regT1).
- 12:15 AM Changeset in webkit [265135] by
-
- 2 edits in trunk/Source/WebCore
Add LibWebRTCAudioModule logging
https://bugs.webkit.org/show_bug.cgi?id=214987
Reviewed by Eric Carlson.
- platform/mediastream/libwebrtc/LibWebRTCAudioModule.cpp:
(WebCore::LibWebRTCAudioModule::RegisterAudioCallback):
(WebCore::LibWebRTCAudioModule::StartPlayout):
(WebCore::LibWebRTCAudioModule::StopPlayout):
Jul 30, 2020:
- 11:16 PM Changeset in webkit [265134] by
-
- 3 edits in trunk/Source/WebKit
Optimize WebsiteDataStoreConfiguration::copy
https://bugs.webkit.org/show_bug.cgi?id=215012
<rdar://problem/64263406>
Patch by Alex Christensen <achristensen@webkit.org> on 2020-07-30
Reviewed by Brady Eidson.
The WebsiteDataStoreConfiguration constructor does some read/write heavy things.
We only want to do these things if we are not just going to overwrite the strings with strings from another WebsiteDataStoreConfiguration.
No change in behavior, just making things faster.
- UIProcess/WebsiteData/WebsiteDataStoreConfiguration.cpp:
(WebKit::WebsiteDataStoreConfiguration::WebsiteDataStoreConfiguration):
(WebKit::WebsiteDataStoreConfiguration::copy const):
- UIProcess/WebsiteData/WebsiteDataStoreConfiguration.h:
(WebKit::WebsiteDataStoreConfiguration::create):
- 11:05 PM Changeset in webkit [265133] by
-
- 2 edits in trunk/Source/WebCore
Minor RenderLayerCompositor::updateBackingAndHierarchy() cleanup
https://bugs.webkit.org/show_bug.cgi?id=215008
Reviewed by Zalan Bujtas.
Instead of setting child layers, and then adding another child (overflowControlLayer),
append overflowControlLayer to the vector and then set children.
No behavior change.
- rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::updateBackingAndHierarchy):
- 10:51 PM Changeset in webkit [265132] by
-
- 2 edits in trunk/JSTests
Skip stress/operand-should-fit-in-abstract-heap-encoded-payload-format.js
https://bugs.webkit.org/show_bug.cgi?id=215001
Reviewed by Darin Adler.
The test takes > 4 minutes when run on an idle machine. That's too long.
- stress/operand-should-fit-in-abstract-heap-encoded-payload-format.js:
- 9:49 PM Changeset in webkit [265131] by
-
- 2 edits in trunk/Source/WTF
Have TimingScope track the max event duration
https://bugs.webkit.org/show_bug.cgi?id=215006
Reviewed by Tim Horton.
Have TimingScope track and print the longest event, as well as the count and
mean duration.
- wtf/TimingScope.cpp:
(WTF::TimingScope::scopeDidEnd):
- 9:43 PM Changeset in webkit [265130] by
-
- 2 edits in trunk/LayoutTests
[GTK][WPE] Garden three persistent failures from gtk release bot.
Unreviewed test gardening.
These were also affecting the debug and WPE bots.
- platform/glib/TestExpectations:
- 8:44 PM Changeset in webkit [265129] by
-
- 15 edits in trunk/Source/WebCore
It would be nice if the predicate taking functions in ParsingUtilities.h didn't require specifying the character type
https://bugs.webkit.org/show_bug.cgi?id=215002
Reviewed by Darin Adler.
Remove the need for specifying the character type by providing overloads for LChar and UChar
explicitly.
- html/parser/HTMLSrcsetParser.cpp:
(WebCore::parseImageCandidatesFromSrcsetAttribute):
- html/parser/ParsingUtilities.h:
(WebCore::characterPredicate):
- html/track/VTTScanner.h:
(WebCore::characterPredicate):
- loader/LinkHeader.cpp:
(WebCore::findURLBoundaries):
(WebCore::invalidParameterDelimiter):
(WebCore::parseParameterDelimiter):
(WebCore::parseParameterName):
(WebCore::skipQuotesIfNeeded):
(WebCore::parseParameterValue):
(WebCore::findNextHeader):
- loader/ResourceCryptographicDigest.cpp:
(WebCore::parseCryptographicDigestImpl):
(WebCore::parseEncodedCryptographicDigestImpl):
- loader/SubresourceIntegrity.cpp:
(WebCore::splitOnSpaces):
- loader/appcache/ApplicationCacheManifestParser.cpp:
(WebCore::parseApplicationCacheManifest):
- page/csp/ContentSecurityPolicyDirectiveList.cpp:
(WebCore::ContentSecurityPolicyDirectiveList::parseDirective):
(WebCore::ContentSecurityPolicyDirectiveList::parseReportURI):
- page/csp/ContentSecurityPolicyMediaListDirective.cpp:
(WebCore::ContentSecurityPolicyMediaListDirective::parse):
- page/csp/ContentSecurityPolicySourceList.cpp:
(WebCore::isSourceListNone):
(WebCore::ContentSecurityPolicySourceList::parse):
(WebCore::ContentSecurityPolicySourceList::parseSource):
(WebCore::ContentSecurityPolicySourceList::parseScheme):
(WebCore::ContentSecurityPolicySourceList::parseHost):
(WebCore::ContentSecurityPolicySourceList::parsePath):
(WebCore::ContentSecurityPolicySourceList::parsePort):
(WebCore::ContentSecurityPolicySourceList::parseNonceSource):
- platform/DateComponents.cpp:
(WebCore::countDigits):
- svg/SVGLengthList.cpp:
(WebCore::SVGLengthList::parse):
- svg/SVGParserUtilities.cpp:
(WebCore::genericParseNumber):
- svg/SVGParserUtilities.h:
(WebCore::skipOptionalSVGSpaces):
- 8:25 PM Changeset in webkit [265128] by
-
- 2 edits in trunk/Tools
[webkitcorepy] Add an auto-installer (Unreviewed follow-up fix)
https://bugs.webkit.org/show_bug.cgi?id=214606
Unreviewed development nit.
- .gitignore: Add Scripts/libraries/autoinstalled to .gitignore.
- 8:18 PM Changeset in webkit [265127] by
-
- 2 edits in trunk/Source/WebKit
Unreviewed second attempt to fix Catalyst build after r265084.
- WebProcess/WebPage/Cocoa/TextCheckingControllerProxy.mm:
- 7:05 PM Changeset in webkit [265126] by
-
- 3 edits in trunk/Source/WebCore
Convert DateComponents to use StringParsingBuffer
https://bugs.webkit.org/show_bug.cgi?id=213929
Reviewed by Darin Adler.
- Switches string parsing in DateComponents to using StringParsingBuffer, making use of ParsingUtilities to streamline / simplify the code.
- Moves a few constant values only used in DateComponents.cpp to DateComponents.cpp
- Rename toInt in DateComponents.cpp to parseInt, and have use an Optional return value rather than bool + out-parameter.
- Add new parseIntWithinLimits that also checks that parsed value is within specfied limits, as this is what almost all of the int parsing in DateComponents needs.
- platform/DateComponents.cpp:
(WebCore::countDigits):
(WebCore::parseInt):
(WebCore::parseIntWithinLimits):
(WebCore::DateComponents::parseYear):
(WebCore::withinHTMLDateLimits):
(WebCore::createFromString):
(WebCore::DateComponents::fromParsingMonth):
(WebCore::DateComponents::fromParsingDate):
(WebCore::DateComponents::fromParsingWeek):
(WebCore::DateComponents::fromParsingTime):
(WebCore::DateComponents::fromParsingDateTimeLocal):
(WebCore::DateComponents::fromParsingDateTime):
(WebCore::DateComponents::parseTimeZone):
(WebCore::DateComponents::parseMonth):
(WebCore::DateComponents::parseDate):
(WebCore::DateComponents::parseWeek):
(WebCore::DateComponents::parseTime):
(WebCore::DateComponents::parseDateTimeLocal):
(WebCore::DateComponents::parseDateTime):
(WebCore::DateComponents::setMonthsSinceEpoch):
(WebCore::DateComponents::setMillisecondsSinceEpochForWeek):
(WebCore::toInt): Deleted.
- platform/DateComponents.h:
(WebCore::DateComponents::minimumYear): Deleted.
(WebCore::DateComponents::maximumYear): Deleted.
- 6:44 PM Changeset in webkit [265125] by
-
- 2 edits in trunk/Source/WebInspectorUI
REGRESSION (r?): Web Inspector: Timelines: blue border below selected timeline when in edit mode
https://bugs.webkit.org/show_bug.cgi?id=214979
<rdar://problem/66338399>
Reviewed by Devin Rousso.
Color the top border after the selected item with the same background as the selected item.
When editing, don't color that border with the selected item background.
- UserInterface/Views/TimelineOverview.css:
(.timeline-overview.edit-instruments > .tree-outline.timelines .item:not(:first-child),):
(body:matches(.window-inactive, .window-docked-inactive) .timeline-overview:not(.edit-instruments) > .tree-outline.timelines .item.selected + .item):
(body:not(.window-inactive, .window-docked-inactive) .timeline-overview:not(.edit-instruments) > .tree-outline.timelines:focus-within .item.selected + .item):
(@media (prefers-color-scheme: dark) .timeline-overview:not(.frames) > .graphs-container > .timeline-overview-graph:nth-child(even)):
(.timeline-overview > .tree-outline.timelines .item.selected + .item): Deleted.
(body:not(.window-inactive, .window-docked-inactive) .timeline-overview > .tree-outline.timelines:focus-within .item.selected + .item): Deleted.
(@media (prefers-color-scheme: dark) .timeline-overview.edit-instruments > .tree-outline.timelines .item:not(:first-child),): Deleted.
(@media (prefers-color-scheme: dark) .timeline-overview > .tree-outline.timelines .item.selected + .item): Deleted.
- 6:14 PM Changeset in webkit [265124] by
-
- 2 edits in trunk/Tools
webkitpy: If LC_ALL is set to a empty string, svn doesn't use the password store
https://bugs.webkit.org/show_bug.cgi?id=214983
Reviewed by Darin Adler.
If LC_ALL is set to a empty string, svn doesn't use the password
store in my environment. I'm using svn with gpg-agent on Ubuntu
20.04 (svn version 1.13.0, gpg-agent 2.2.19).
r101274 (Bug 68691) has set LC_ALL to a empty string.
If I invoke 'svn ci' on my terminal, svn askes gpg-agent my
password as expected, but if I invoke 'LC_ALL= svn ci', svn askes
my password by itself.
- Scripts/webkitpy/common/host.py:
(Host._engage_awesome_locale_hacks): Set the env var LC_ALL to 'en_US.UTF-8'.
- 5:42 PM Changeset in webkit [265123] by
-
- 3 edits in trunk/Tools
[webkitcorepy] Make scripts called with sudo use a userspace autoinstall
https://bugs.webkit.org/show_bug.cgi?id=214981
<rdar://problem/66342996>
Reviewed by Dewei Zhu.
Sudo can bring havoc to the autoinstaller, because the directories it creates will belong
to the root user. We should ensure that the directories created by a sudo script call
are owned by the user that called sudo, when possible.
- Scripts/libraries/webkitcorepy/webkitcorepy/init.py:
- Scripts/libraries/webkitcorepy/webkitcorepy/autoinstall.py:
(Package.install): Ensure that installed packages are not owned by root, if possible.
(AutoInstall.userspace_should_own): Ensure that a directory or file is not owned by root, if possible.
(AutoInstall.set_directory): Ensure that the directories containing auto-installed packages are not
owned by root, if possible.
- 5:17 PM Changeset in webkit [265122] by
-
- 4 edits in trunk/Source
Remove UB from nonPACBitsMask computation
https://bugs.webkit.org/show_bug.cgi?id=214996
Reviewed by Tadeu Zagallo.
For non-ARM64E we now set numberOfPACBits to zero, which was causing UB in our computation of the nonPACBitsMask.
Source/JavaScriptCore:
- assembler/MacroAssemblerARM64E.h:
Source/WTF:
- wtf/CagedPtr.h:
- 5:15 PM Changeset in webkit [265121] by
-
- 1 edit3 adds in trunk/Source/WebInspectorUI
Web Inspector: Add another Protocol Version (iOS 14.0)
https://bugs.webkit.org/show_bug.cgi?id=214991
<rdar://problem/59156892>
Reviewed by Brian Burg.
- UserInterface/Protocol/Legacy/14.0/InspectorBackendCommands.js: Added.
- Versions/Inspector-iOS-14.0.json: Added.
- 5:12 PM Changeset in webkit [265120] by
-
- 21 edits in trunk/Source/WebInspectorUI
Web Inspector: on Big Sur, match OS background, text, and border colors
https://bugs.webkit.org/show_bug.cgi?id=214366
<rdar://problem/65617290>
Reviewed by Devin Rousso.
Refactoring:
- Remove --background-color-code because it was always the same value as --background-color-content.
- Replace commonly hardcoded
hsl(0, 0%, 97%)background with --background-color-intermediate.
- UserInterface/Views/AnimationDetailsSidebarPanel.css:
(.sidebar > .panel.details.animation > .content > .details-section.animation-keyframes .details-section):
(.sidebar > .panel.details.animation > .content > .details-section.animation-keyframes .details-section .row.styles .CodeMirror):
- UserInterface/Views/BoxShadowEditor.css:
(.box-shadow-editor > table > tr > td > input[type="text"]):
- UserInterface/Views/BreakpointActionView.css:
(@media (prefers-color-scheme: dark) .breakpoint-action-eval-editor):
- UserInterface/Views/BreakpointPopoverController.css:
(.edit-breakpoint-popover-condition):
- UserInterface/Views/ChangesDetailsSidebarPanel.css:
(.sidebar > .panel.changes-panel .css-rule):
- UserInterface/Views/ComputedStyleSection.css:
(.computed-style-section .computed-property-item.expanded):
(.computed-style-properties.details-section > .content,):
- UserInterface/Views/ConsolePrompt.css:
(.console-prompt):
(.console-prompt > .CodeMirror-scroll):
- UserInterface/Views/CookiePopover.css:
(.popover .cookie-popover-content > table > tr > td > input:matches([type="text"], [type="datetime-local"])):
- UserInterface/Views/DetailsSection.css:
(.details-section .details-section):
(.details-section .details-section > .header):
Refactor. --background-color-content is the same color value.
(.details-section .details-section:not(.collapsed) > .header):
Refactor. --border-color-secondary is the same color value.
(.details-section > .content > .group:nth-child(even)):
(.details-section > .content > .group > .row:matches(.empty, .text)):
(@media (prefers-color-scheme: dark) .details-section > .header > label,):
- UserInterface/Views/DividerNavigationItem.css:
(.navigation-bar .item.divider):
Don't use hairline dividers. MacOS Catalina and Big Sur don't use hairline borders.
- UserInterface/Views/GraphicsOverviewContentView.css:
(.content-view.graphics-overview > section > .header):
(@media (prefers-color-scheme: dark) .content-view.graphics-overview):
- UserInterface/Views/LocalResourceOverridePopover.css:
(.popover .local-resource-override-popover-content .editor):
- UserInterface/Views/LogContentView.css:
(@media (prefers-color-scheme: dark) .console-messages):
- UserInterface/Views/QuickConsole.css:
(.quick-console):
- UserInterface/Views/ScopeChainDetailsSidebarPanel.css:
(@media (prefers-color-scheme: dark) .watch-expression-editor):
- UserInterface/Views/SpreadsheetCSSStyleDeclarationSection.css:
(.spreadsheet-css-declaration):
(.spreadsheet-css-declaration.locked):
- UserInterface/Views/SyntaxHighlightingDefaultTheme.css:
(@media (prefers-color-scheme: dark) .cm-s-default,):
- UserInterface/Views/TabBar.css:
(body.big-sur.docked .tab-bar > .border.bottom):
- UserInterface/Views/URLBreakpointPopover.css:
(.popover .url-breakpoint-content > .editor-wrapper > .editor):
- UserInterface/Views/Variables.css:
(:root):
Add --separator-color, which has the same semantics asseparatorcolor from Apple HIG
(https://developer.apple.com/design/human-interface-guidelines/ios/visual-design/color/#dynamic-system-colors).
--border-color-secondary was only defined in the dark mode. Define it in the light mode, too.
(body.window-inactive):
Remove unused variable.
(body.big-sur):
(@media (prefers-color-scheme: dark) :root):
(@media (prefers-color-scheme: dark) body.big-sur):
(@media (prefers-color-scheme: dark) body.window-inactive):
(body.window-inactive *): Remove unnecessarily greedy selector.
- 4:54 PM Changeset in webkit [265119] by
-
- 2 edits in trunk/Source/WebCore
Unreviewed attempt to fix Catalyst build after r265084.
- editing/cocoa/DictionaryLookup.mm:
- 4:35 PM Changeset in webkit [265118] by
-
- 14 edits in trunk/Source/WebInspectorUI
Web Inspector: only show scrollbars when needed
https://bugs.webkit.org/show_bug.cgi?id=214980
Reviewed by Brian Burg.
Prefer
overflow: auto;instead ofoverflow: scroll;wherever possible, as when using a
hardware mouse scrollbars are always shown for the latter, even when the content fits.
- UserInterface/Debug/UncaughtExceptionReporter.css:
(.sheet-container):
- UserInterface/Views/AuditTestContentView.css:
(.content-view-container > .content-view.audit-test):
- UserInterface/Views/CanvasOverviewContentView.css:
(.content-view.canvas-overview > .content-view.canvas.saved-recordings .tree-outline):
- UserInterface/Views/CanvasSidebarPanel.css:
(.sidebar > .panel.navigation.canvas.has-recordings > .content > .recording-content):
- UserInterface/Views/DOMEventsBreakdownView.css:
(.waterfall-popover-content .dom-events-breakdown):
- UserInterface/Views/DOMNodeEventsContentView.css:
(.dom-node-details.dom-events):
- UserInterface/Views/GraphicsOverviewContentView.css:
(.content-view.graphics-overview):
- UserInterface/Views/LocalRemoteObjectContentView.css:
(.content-view.local-remote-object):
- UserInterface/Views/NetworkResourceDetailView.css:
(.content-view.resource-details):
- UserInterface/Views/OpenResourceDialog.css:
(.open-resource-dialog > .tree-outline):
- UserInterface/Views/SourceCodeTextEditor.css:
(.popover .debugger-popover-content > .body):
- UserInterface/Views/CPUTimelineView.css:
(.timeline-view.cpu): Added.
(body .timeline-view.cpu): Deleted.
- UserInterface/Views/MemoryTimelineView.css:
(.timeline-view.memory): Added.
(body .timeline-view.memory): Deleted.
Although!importantis kind of a "hack", addingbodyto the selector is more of a "hack"
and is easier to unintentionally break.
- 4:31 PM Changeset in webkit [265117] by
-
- 3 edits2 adds in trunk
[iPadOS] Two taps are required to choose a country/region when creating an account on ea.com
https://bugs.webkit.org/show_bug.cgi?id=214984
<rdar://problem/66261490>
Reviewed by Devin Rousso.
Source/WebKit:
On the desktop version of the account creation page on ea.com, tapping a custom selection menu element
programmatically focuses a realselectelement that is positioned far outside the viewport. As a result, on
iPad, we still attempt to show a popover for this focused select at the element location. This popover is not
visible to the user, but on iOS 13, it still steals modal focus from the web view, which means that an
additional tap anywhere in the window is required to dismiss the (invisible) popover before the user can choose
one of the options in the custom in-page menu that is shown.
Furthermore, upon choosing one of these options, the page programmatically focuses the offscreen select again.
This causes us to re-present the offscreen popover, which requires yet another tap to dismiss on iOS 13.
However, on iOS 14, this actually results in a crash when attempting to scroll the popover's inner UITableView
to the selected row.
To fix both the crash on iOS 14 and the multiple redundant taps required to dismiss the popover on iOS 13, avoid
showing popovers altogether if the popover's presentation rect is outside the bounds of the content view, since
we cannot reasonably expect a user to interact with such a popover anyways.
Test: fast/forms/ios/repeatedly-focus-offscreen-select.html
- UIProcess/ios/forms/WKFormPopover.mm:
(-[WKRotatingPopover presentPopoverAnimated:]):
LayoutTests:
Add a test that exercises both the crash and the UI bug on iPadOS. Note that this test already passes on iOS,
where we don't use popovers for focused selects.
- fast/forms/ios/repeatedly-focus-offscreen-select-expected.txt: Added.
- fast/forms/ios/repeatedly-focus-offscreen-select.html: Added.
- 4:22 PM Changeset in webkit [265116] by
-
- 7 edits in trunk
[WebGL] Safari snapshots of WebGL content in the tab picker don't work
https://bugs.webkit.org/show_bug.cgi?id=214452
<rdar://problem/21243082>
Source/WebCore:
Original patch by Justin Fan. Reviewed by Darin Adler.
Test is in TestWebKitAPI/Tests/WebKitCocoa/WKWebViewSnapshot.mm.
- html/HTMLCanvasElement.cpp:
(WebCore::HTMLCanvasElement::paint): Will properly request a paint when a snapshot is requested.
- html/HTMLCanvasElement.h:
- html/canvas/WebGLRenderingContextBase.cpp:
(WebCore::WebGLRenderingContextBase::paintRenderingResultsToCanvas): Only clear the last snapshot if readPixels will succeed.
- rendering/RenderHTMLCanvas.cpp:
(WebCore::RenderHTMLCanvas::paintReplaced):
Tools:
Test for snapshotting. Marked as PLATFORM(MAC) for now.
- TestWebKitAPI/Tests/WebKitCocoa/WKWebViewSnapshot.mm:
(TEST):
- 4:08 PM Changeset in webkit [265115] by
-
- 19 edits2 adds in trunk
[Cocoa] Adopt -[AVContentKeyRequest willOutputBeObscuredDueToInsufficientExternalProtectionForDisplays:]
https://bugs.webkit.org/show_bug.cgi?id=214659
<rdar://problem/63555006>
Reviewed by Darin Adler.
Source/WebCore:
Use the new WTF::Observer object as the listener type for notifying clients of display changes. When a displayChanged
event is observed, use the new AVContentKeyRequest -willOutputBeObscuredDueToInsufficientExternalProtectionForDisplays:
to set the keyStatus for that request appropriately.
- Modules/encryptedmedia/MediaKeySession.cpp:
(WebCore::MediaKeySession::MediaKeySession):
(WebCore::MediaKeySession::displayID):
(WebCore::MediaKeySession::displayChanged):
- Modules/encryptedmedia/MediaKeySession.h:
- dom/Document.cpp:
(WebCore::Document::windowScreenDidChange):
(WebCore::Document::addDisplayChangedObserver):
- dom/Document.h:
- platform/encryptedmedia/CDMInstanceSession.h:
(WebCore::CDMInstanceSession::displayChanged):
- platform/graphics/avfoundation/objc/CDMInstanceFairPlayStreamingAVFObjC.h:
- platform/graphics/avfoundation/objc/CDMInstanceFairPlayStreamingAVFObjC.mm:
(-[WebCoreFPSContentKeySessionDelegate contentKeySession:externalProtectionStatusDidChangeForContentKeyRequest:]):
(WebCore::CDMInstanceFairPlayStreamingAVFObjC::externalProtectionStatusDidChangeForContentKeyRequest):
(WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::displayChanged):
(WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::externalProtectionStatusDidChangeForContentKeyRequest):
(WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::updateProtectionStatusForDisplayID):
Source/WebCore/PAL:
- pal/spi/cocoa/AVFoundationSPI.h:
Source/WebKit:
Support clients in the GPU process asking for (and receiving updates to) the current displayID.
- GPUProcess/media/RemoteCDMInstanceSessionProxy.cpp:
(WebKit::RemoteCDMInstanceSessionProxy::displayIDChanged):
- GPUProcess/media/RemoteCDMInstanceSessionProxy.h:
- GPUProcess/media/RemoteCDMInstanceSessionProxy.messages.in:
Source/WTF:
Add a new Observer template class. This allows classes to provide support for listeners without requiring
those listeners to subclass from a pure-virtual (and CanMakeWeakPtr capable) client class. Instead, clients
can just create one of these Observer objects, and pass a WeakPtr to that observer to the notifying object.
When the client object destroys the observer, it is automatically unregistered when the observing object
uses a WeakHashSet.
- WTF.xcodeproj/project.pbxproj:
- wtf/CMakeLists.txt:
- wtf/Observer.h: Added.
(WTF::Observer<Out):
Tools:
- TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
- TestWebKitAPI/Tests/WTF/Observer.cpp: Added.
(TestWebKitAPI::TEST):
- 3:27 PM Changeset in webkit [265114] by
-
- 10 edits in trunk
[WebGL2] Buffer updates
https://bugs.webkit.org/show_bug.cgi?id=209511
Patch by James Darpinian <James Darpinian> on 2020-07-30
Reviewed by Dean Jackson.
Various fixes in bufferData, bufferSubData, and getBufferSubData. Passes all WebGL conformance tests in conformance/buffers/* and conformance2/buffers/*.
- html/canvas/WebGL2RenderingContext.cpp:
(WebCore::WebGL2RenderingContext::sliceArrayBufferView):
(WebCore::WebGL2RenderingContext::getBufferSubData):
- html/canvas/WebGLRenderingContextBase.cpp:
(WebCore::WebGLRenderingContextBase::bufferData):
(WebCore::WebGLRenderingContextBase::bufferSubData):
- html/canvas/WebGLRenderingContextBase.h:
- html/canvas/WebGLRenderingContextBase.idl:
- 3:26 PM Changeset in webkit [265113] by
-
- 5 edits in trunk/Source
Compute number of PAC bits from what the OS says its address space is
https://bugs.webkit.org/show_bug.cgi?id=214986
Reviewed by Saam Barati.
Source/JavaScriptCore:
- assembler/MacroAssemblerARM64E.h:
Source/WTF:
- wtf/CagedPtr.h:
- wtf/PtrTag.h:
- 3:17 PM Changeset in webkit [265112] by
-
- 3 edits1 add in trunk
[JSC][32-bits] interator_next should check for EmptyValue instead of undefined to execute LLInt fast path
https://bugs.webkit.org/show_bug.cgi?id=214963
Reviewed by Yusuke Suzuki.
JSTests:
- stress/invalidate-array-iterator-prototype-next.js: Added.
Source/JavaScriptCore:
There was a bug in previous implementation that allows execution of
interator_nextfast path if we set ArrayIterator.prototype.next to
- This happened because we were not properly checking
ValueEmpty
from
m_next. This patch is fixing such issue and doing the proper
verification.
- llint/LowLevelInterpreter32_64.asm:
- 3:08 PM Changeset in webkit [265111] by
-
- 1 copy in releases/Apple/Safari Technology Preview/Safari Technology Preview 111
Added a tag for Safari Technology Preview release 111.
- 3:08 PM Changeset in webkit [265110] by
-
- 1 copy in releases/Apple/Safari Technology Preview/Safari Technology Preview 110
Added a tag for Safari Technology Preview release 110.
- 3:07 PM Changeset in webkit [265109] by
-
- 1 copy in releases/Apple/Safari Technology Preview/Safari Technology Preview 109
Added a tag for Safari Technology Preview release 109.
- 3:07 PM Changeset in webkit [265108] by
-
- 1 copy in releases/Apple/Safari Technology Preview/Safari Technology Preview 108
Added a tag for Safari Technology Preview release 108.
- 3:06 PM Changeset in webkit [265107] by
-
- 1 copy in releases/Apple/Safari Technology Preview/Safari Technology Preview 107
Added a tag for Safari Technology Preview release 107.
- 3:06 PM Changeset in webkit [265106] by
-
- 1 copy in releases/Apple/Safari Technology Preview/Safari Technology Preview 106
Added a tag for Safari Technology Preview release 106.
- 3:06 PM Changeset in webkit [265105] by
-
- 1 copy in releases/Apple/Safari Technology Preview/Safari Technology Preview 105
Added a tag for Safari Technology Preview release 105.
- 3:04 PM Changeset in webkit [265104] by
-
- 1 copy in releases/Apple/Safari Technology Preview/Safari Technology Preview 104
Added a tag for Safari Technology Preview release 104.
- 3:04 PM Changeset in webkit [265103] by
-
- 1 copy in releases/Apple/Safari Technology Preview/Safari Technology Preview 103
Added a tag for Safari Technology Preview release 103.
- 3:04 PM Changeset in webkit [265102] by
-
- 1 copy in releases/Apple/Safari Technology Preview/Safari Technology Preview 102
Added a tag for Safari Technology Preview release 102.
- 3:03 PM Changeset in webkit [265101] by
-
- 1 copy in releases/Apple/Safari Technology Preview/Safari Technology Preview 101
Added a tag for Safari Technology Preview release 101.
- 3:03 PM Changeset in webkit [265100] by
-
- 1 copy in releases/Apple/Safari Technology Preview/Safari Technology Preview 100
Added a tag for Safari Technology Preview release 100.
- 3:01 PM Changeset in webkit [265099] by
-
- 1 copy in releases/Apple/Safari Technology Preview/Safari Technology Preview 99
Added a tag for Safari Technology Preview release 99.
- 2:51 PM Changeset in webkit [265098] by
-
- 6 edits in trunk
[ iOS ] webanimations/accelerated-animation-with-easing.html is still flaky
https://bugs.webkit.org/show_bug.cgi?id=214327
<rdar://problem/65569237>
Reviewed by Dean Jackson.
Source/WebKit:
When we fixed bug 213495 in r263506, we started calling PlatformCAAnimation::setTimingFunction()
to set the animation-wide timing function of CSS Animations and JS-originated animations alike.
However, we neglected to update PlatformCAAnimationRemote, used on iOS, to be able to handle
both animation-wide timing functions as well as keyframe-specific timing functions. This patch
adds a new "timingFunction" member to PlatformCAAnimationRemote::Properties to allow for this
and this new member is used in setTimingFunction() and copyTimingFunctionFrom(). Finally, after
the animation is decoded in the UI process, we call -[CAKeyframeAnimation setTimingFunction:]
inside addAnimationToLayer() to use this animation-wide timing function.
This fixes the test added originally in r263506 which would only work flakily, a symptom of this
missing implementation on iOS.
- WebProcess/WebPage/RemoteLayerTree/PlatformCAAnimationRemote.h:
- WebProcess/WebPage/RemoteLayerTree/PlatformCAAnimationRemote.mm:
(WebKit::encodeTimingFunction):
(WebKit::decodeTimingFunction):
(WebKit::PlatformCAAnimationRemote::Properties::encode const):
(WebKit::PlatformCAAnimationRemote::Properties::decode):
(WebKit::PlatformCAAnimationRemote::setTimingFunction):
(WebKit::PlatformCAAnimationRemote::copyTimingFunctionFrom):
(WebKit::addAnimationToLayer):
(WebKit::operator<<):
LayoutTests:
Remove the flaky expectation and remove the extra tolerance added in r263761 when it was thought that
this test was merely flaky and not completely broken on iOS as it turned out to be.
- platform/ios-wk2/TestExpectations:
- webanimations/accelerated-animation-with-easing.html:
- 2:44 PM Changeset in webkit [265097] by
-
- 3 edits in trunk/Source/JavaScriptCore
Strip pointers instead of authing for byteOffset to not allow for a possible way to guess data pac
https://bugs.webkit.org/show_bug.cgi?id=214952
Reviewed by Keith Miller.
In the old way of doing things, we would auth the vector pointer before subtracting
the base from it. Since we never validated the auth, this allowed for a
potential data-PAC bypass by just repeatedly calling byteOffset in a loop
and observing the integer result of the operation.
Since byteOffset does no loads/stores, it suffices to just strip the PAC
bits before doing the subtraction. This eliminates any such attacks like
the above because the PAC bits are ignored.
- dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::compileGetTypedArrayByteOffset):
- ftl/FTLLowerDFGToB3.cpp:
(JSC::FTL::DFG::LowerDFGToB3::compileGetTypedArrayByteOffset):
- 2:44 PM Changeset in webkit [265096] by
-
- 4 edits in trunk/Tools
check-webkit-style should enforce acronym capitalization at start/end of an identifier
<https://webkit.org/b/214954>
Reviewed by Jonathan Bedard.
- DumpRenderTree/mac/DumpRenderTree.mm:
(shouldIgnoreWebCoreNodeLeaks):
(changeWindowScaleIfNeeded):
- Fix case issues in variables using URL acronym.
- Scripts/webkitpy/style/checkers/cpp.py:
(_check_identifier_name_for_acronyms): Add.
- This contains the logic to report acronyms with invalid case at the start and at the end of an identifer.
(check_identifier_name_in_declaration):
- Keep track of whether the identifer came from a class, namespace or struct.
- Fix bug where
autovariables would not be checked becauseautowas removed with other non-type keywords likeinline, leaving no type for the variable. Add a comment to describe what this line is doing. - Fix bug when removing "new" that changed an identifier named "newURL" to "URL".
- Add call to _check_identifier_name_for_acronyms() to implement the check.
(CppChecker):
- Add 'readability/naming/acronym' to the list of active checkers.
- Scripts/webkitpy/style/checkers/cpp_unittest.py:
(WebKitStyleTest.test_identifier_names_with_acronyms):
- Add tests. About half of the tests were taken from actual code that initially caused false positives during development.
- 2:28 PM Changeset in webkit [265095] by
-
- 11 edits in trunk
[Cocoa] Make DecoderTest run against .mp4 files; add rate-limiting.
https://bugs.webkit.org/show_bug.cgi?id=214807
Reviewed by Darin Adler.
PerformanceTests:
Look up the UTI type of the specified file, and create the appropriate SourceBufferParser
by passing in the ContentType (converted from UTI). Also, add a --rate-limit flag which
causes the decompression session to run at the same FPS as the underlying media.
- DecoderTest/DecoderTest.xcodeproj/project.pbxproj:
- DecoderTest/DecoderTest/main.mm:
(main):
Source/WebCore:
Export registerWebKitVP9Decoder() from VP9UtilitiesCocoa instead of LibWebRTCProvider to make it easier
for DecodeTest to import, as LibWebRTCProvider also pulls in a bunch of libwebrtc headers. Also, export
SourceBufferParser.h so DecoderTest can create parsers for fMP4 files.
- SourcesCocoa.txt:
- WebCore.xcodeproj/project.pbxproj:
- platform/graphics/cocoa/VP9UtilitiesCocoa.h:
- platform/graphics/cocoa/VP9UtilitiesCocoa.mm:
(WebCore::registerWebKitVP9Decoder):
Source/WebKit:
- WebProcess/WebProcess.cpp:
(WebKit::WebProcess::enableVP9Decoder):
- 2:24 PM Changeset in webkit [265094] by
-
- 2 edits in trunk/Tools
Make report-non-inclusive-language ignore xcuserstate
https://bugs.webkit.org/show_bug.cgi?id=214985
Reviewed by Darin Adler.
Ignore xcuserstate since it introduces random noise.
- Scripts/report-non-inclusive-language:
- 2:21 PM Changeset in webkit [265093] by
-
- 14 edits in trunk/LayoutTests
[WebGL2] Enable conformance2/textures/{image,video} and related layout tests
https://bugs.webkit.org/show_bug.cgi?id=214977
Patch by Kenneth Russell <kbr@chromium.org> on 2020-07-30
Reviewed by Dean Jackson.
Enable dozens more WebGL 2.0 conformance tests, most
significantly:
webgl/2.0.0/conformance/textures/image/*
webgl/2.0.0/conformance[2]/textures/video/*
which are now passing completely.
- TestExpectations:
- webgl/2.0.0/conformance2/textures/video/tex-2d-r11f_g11f_b10f-rgb-float-expected.txt:
- webgl/2.0.0/conformance2/textures/video/tex-2d-r11f_g11f_b10f-rgb-half_float-expected.txt:
- webgl/2.0.0/conformance2/textures/video/tex-2d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev-expected.txt:
- webgl/2.0.0/conformance2/textures/video/tex-2d-r16f-red-float-expected.txt:
- webgl/2.0.0/conformance2/textures/video/tex-2d-r16f-red-half_float-expected.txt:
- webgl/2.0.0/conformance2/textures/video/tex-2d-r32f-red-float-expected.txt:
- webgl/2.0.0/conformance2/textures/video/tex-2d-rg16f-rg-float-expected.txt:
- webgl/2.0.0/conformance2/textures/video/tex-2d-rg16f-rg-half_float-expected.txt:
- webgl/2.0.0/conformance2/textures/video/tex-2d-rg32f-rg-float-expected.txt:
- webgl/2.0.0/conformance2/textures/video/tex-2d-rg8-rg-unsigned_byte-expected.txt:
- webgl/2.0.0/conformance2/textures/video/tex-2d-rg8ui-rg_integer-unsigned_byte-expected.txt:
- webgl/2.0.0/conformance2/textures/video/tex-2d-rgb5_a1-rgba-unsigned_byte-expected.txt:
- 1:14 PM Changeset in webkit [265092] by
-
- 6 edits2 adds in trunk
Clicking on a shadow DOM does not move the selection to the focused element when delegatesFocus is set to true
https://bugs.webkit.org/show_bug.cgi?id=214859
<rdar://problem/66192901>
Reviewed by Wenson Hsieh.
Source/WebCore:
The bug was caused by EventHandler moving the selection to where the user had clicked, not to where the focus
had been delegated, which is a uniquely WebKit behavior. Fixed the bug by revealing the focused element as done
in Element::focus in EventHandler::dispatchMouseEvent and avoid updating the selection to the clicked point
later in EventHandler::handleMousePressEventSingleClick by adding an early exit.
Test: fast/shadow-dom/delegates-focus-and-types-into-input.html
- dom/Element.cpp:
(WebCore::Element::focus):
(WebCore::Element::revealFocusedElement): Extracted from Element::focus.
- dom/Element.h:
- page/EventHandler.cpp:
(WebCore::EventHandler::handleMousePressEventSingleClick): Added an early exit when dispatchMouseEvent had
delegated the focus to an element different from the one the user had clicked.
(WebCore::EventHandler::dispatchMouseEvent): Added a code to reveal the newly focused element when the focus
had been delegated.
- page/EventHandler.h:
LayoutTests:
Added a regression test.
- fast/shadow-dom/delegates-focus-and-types-into-input-expected.txt: Added.
- fast/shadow-dom/delegates-focus-and-types-into-input.html: Added.
- 11:25 AM Changeset in webkit [265091] by
-
- 11 edits in trunk
Web content gets stuck in an inactive state (no cursor updates or text insertion caret) when activating a tab with a thumbnail visible
https://bugs.webkit.org/show_bug.cgi?id=214962
<rdar://problem/65670984>
Reviewed by Wenson Hsieh.
Source/WebCore:
New API test: WebKit.WKThumbnailViewResetsViewStateWhenUnparented
- testing/Internals.cpp:
(WebCore::Internals::isPageActive const):
- testing/Internals.h:
- testing/Internals.idl:
Add a "view window is active" getter.
Source/WebKit:
- UIProcess/Cocoa/WebViewImpl.mm:
(WebKit::WebViewImpl::setThumbnailView):
When WKThumbnailView is unparented, invalidate all activity state bits.
We do this because many of the functions that compute activity state bits
use the WKThumbnailView's window while it is parented. When it is unparented,
and we switch back to using the WKWebView's window, we mustn't get stuck
with activity state bits from WKThumbnailView's window.
This was particularly problematic in the case of the WKThumbnailViews
used for tab hover previews, because that window is not key, so we'd get
stuck with the inactive-window state, resulting in a lack of cursor updates,
a hidden text caret, the wrong selection color, etc.
- UIProcess/mac/PageClientImplMac.mm:
(WebKit::PageClientImpl::isViewWindowActive):
While writing the API test for this, I noticed that isViewWindowActive
returns YES if there is no key window AND WKWebView is unparented
([NSApp keyWindow] == activeWindow() == nil).
This seems completely insane (how can the window be active if it doesn't
exist?), and breaks the test, so ensure that we only say YES if we actually
have a window.
Tools:
- TestWebKitAPI/Tests/WebKit/WKThumbnailView.mm:
(TestWebKitAPI::TEST):
Add a test ensuring that we go back to the active-window state after
unparenting a WKThumbnailView that was installed in an inactive window.
(-[WKThumbnailViewDelegate webView:didFinishNavigation:]): Deleted.
- TestWebKitAPI/mac/OffscreenWindow.h:
- TestWebKitAPI/mac/OffscreenWindow.mm:
(-[OffscreenWindow initWithSize:]):
(-[OffscreenWindow initWithSize:isKeyWindow:]):
(-[OffscreenWindow isKeyWindow]):
- 11:20 AM Changeset in webkit [265090] by
-
- 2 edits in trunk/JSTests
Unreviewed, fix bottom-tuple.js test
https://bugs.webkit.org/show_bug.cgi?id=214956
Only thing we would like to check in this test is whether this does not crash.
- wasm/stress/bottom-tuple.js:
(catch): Deleted.
- 10:30 AM Changeset in webkit [265089] by
-
- 2 edits in trunk/Source/WebKit
ASSERTION FAILED: !isInRoutingArbitrationForArbitrator(proxy) in WebKit::SharedArbitrator::beginRoutingArbitrationForArbitrator
https://bugs.webkit.org/show_bug.cgi?id=214904
Reviewed by Jer Noble.
Only add an AudioSessionRoutingArbitratorProxy to the WeakHashSet (m_arbitrators)
if the routing arbitration is completed successfully.
- UIProcess/Media/cocoa/AudioSessionRoutingArbitratorProxyCocoa.mm:
(WebKit::SharedArbitrator::beginRoutingArbitrationForArbitrator):
- 10:12 AM Changeset in webkit [265088] by
-
- 3 edits2 adds in trunk
[iOS] Unable to swipe on IMDB.com after long press on image
https://bugs.webkit.org/show_bug.cgi?id=214968
<rdar://problem/66234421>
Reviewed by Wenson Hsieh.
Source/WebCore:
When a long press occurs on an <img>, a system drag interaction is initiated on iOS. In WebCore,
EventHandler::tryToBeginDragAtPoint() is called and a synthetic mouse event is produced, causing
handleMousePressEvent() to be called. Further down the call chain, dispatchPointerEventIfNeeded()
is called and a valid PointerEvent is generated in PointerCaptureController::pointerEventForMouseEvent()
with "pointerType" set to "mouse", even though there is already a touch interaction initiated.
We now check whether there are known touches before generating a PointerEvent for a MouseEvent.
In the case of IMDb, the page would keep track of "pointerdown" events to track whether a multi-touch
user gesture is in progress so that their slide shows can support two-finger zooming as well as
single-finger swiping. In the case of a long press, the second "pointerdown" event would trick
the code in thinking a zoom gesture was initiated and it never recovered.
Test: pointerevents/ios/long-press-yields-single-pointerdown-event.html
- page/PointerCaptureController.cpp:
(WebCore::PointerCaptureController::pointerEventForMouseEvent):
LayoutTests:
Add a test that triggers a long press gesture on an <img> and checks a single "pointerdown" event
was dispatched. Prior to the WebCore change in this patch, two events would be dispatched.
- pointerevents/ios/long-press-yields-single-pointerdown-event-expected.txt: Added.
- pointerevents/ios/long-press-yields-single-pointerdown-event.html: Added.
- 9:36 AM Changeset in webkit [265087] by
-
- 6 edits in trunk/Source/WebKit
Remember to check entitlement before communicating over XPC
https://bugs.webkit.org/show_bug.cgi?id=214825
Reviewed by Brent Fulgham.
Remember to check entitlement before communicating over XPC with another WebKit process. This needs to be done
to make sure that it really is a WebKit process on the other end.
- NetworkProcess/NetworkProcess.cpp:
(WebKit::m_messagePortChannelRegistry):
- Shared/Cocoa/XPCEndpoint.mm:
(WebKit::XPCEndpoint::XPCEndpoint):
- Shared/Cocoa/XPCEndpointClient.mm:
(WebKit::XPCEndpointClient::setEndpoint):
- WebProcess/WebPage/Cocoa/WebPageCocoa.mm:
(WebKit::WebPage::platformDidReceiveLoadParameters):
- WebProcess/cocoa/WebProcessCocoa.mm:
(WebKit::WebProcess::handleXPCEndpointMessages const):
- 9:32 AM Changeset in webkit [265086] by
-
- 57 edits in trunk
OfflineAudioContext.startRendering() should return a Promise
https://bugs.webkit.org/show_bug.cgi?id=214940
Reviewed by Eric Carlson.
LayoutTests/imported/w3c:
A lot of Web Audio web-platform-tests were unable to run properly due to OfflineAudioContext.startRendering()
not returning a Promise. Now that we fixed that, a lot of tests are actually running much further. We get a
lot of new PASS lines. We also get new FAIL lines too for subtests that are now running and failing but
previously could not even run.
- web-platform-tests/webaudio/idlharness.https.window-expected.txt:
- web-platform-tests/webaudio/the-audio-api/the-analysernode-interface/realtimeanalyser-fft-scaling-expected.txt:
- web-platform-tests/webaudio/the-audio-api/the-analysernode-interface/test-analyser-gain-expected.txt:
- web-platform-tests/webaudio/the-audio-api/the-audiobuffer-interface/audiobuffer-reuse-expected.txt:
- web-platform-tests/webaudio/the-audio-api/the-audiobuffersourcenode-interface/audiobuffersource-grain-expected.txt:
- web-platform-tests/webaudio/the-audio-api/the-audiobuffersourcenode-interface/audiobuffersource-one-sample-loop-expected.txt:
- web-platform-tests/webaudio/the-audio-api/the-audiobuffersourcenode-interface/audiobuffersource-start-expected.txt:
- web-platform-tests/webaudio/the-audio-api/the-audiobuffersourcenode-interface/audiosource-onended-expected.txt:
- web-platform-tests/webaudio/the-audio-api/the-audiobuffersourcenode-interface/audiosource-time-limits-expected.txt:
- web-platform-tests/webaudio/the-audio-api/the-audiobuffersourcenode-interface/sample-accurate-scheduling-expected.txt:
- web-platform-tests/webaudio/the-audio-api/the-audiocontext-interface/audiocontext-suspend-resume-expected.txt:
- web-platform-tests/webaudio/the-audio-api/the-audionode-interface/audionode-connect-order-expected.txt:
- web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/audioparam-connect-audioratesignal-expected.txt:
- web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/audioparam-setValueCurve-exceptions-expected.txt:
- web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/audioparam-summingjunction-expected.txt:
- web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/setTargetAtTime-after-event-within-block-expected.txt:
- web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/setValueAtTime-within-block-expected.txt:
- web-platform-tests/webaudio/the-audio-api/the-channelmergernode-interface/audiochannelmerger-disconnect-expected.txt:
- web-platform-tests/webaudio/the-audio-api/the-channelmergernode-interface/audiochannelmerger-input-expected.txt:
- web-platform-tests/webaudio/the-audio-api/the-channelmergernode-interface/audiochannelmerger-input-non-default-expected.txt:
- web-platform-tests/webaudio/the-audio-api/the-channelsplitternode-interface/audiochannelsplitter-expected.txt:
- web-platform-tests/webaudio/the-audio-api/the-convolvernode-interface/convolution-mono-mono-expected.txt:
- web-platform-tests/webaudio/the-audio-api/the-delaynode-interface/delaynode-expected.txt:
- web-platform-tests/webaudio/the-audio-api/the-delaynode-interface/delaynode-max-default-delay-expected.txt:
- web-platform-tests/webaudio/the-audio-api/the-delaynode-interface/delaynode-max-nondefault-delay-expected.txt:
- web-platform-tests/webaudio/the-audio-api/the-delaynode-interface/delaynode-maxdelay-expected.txt:
- web-platform-tests/webaudio/the-audio-api/the-delaynode-interface/delaynode-maxdelaylimit-expected.txt:
- web-platform-tests/webaudio/the-audio-api/the-delaynode-interface/delaynode-scheduling-expected.txt:
- web-platform-tests/webaudio/the-audio-api/the-oscillatornode-interface/detune-limiting-expected.txt:
- web-platform-tests/webaudio/the-audio-api/the-oscillatornode-interface/osc-basic-waveform-expected.txt:
- web-platform-tests/webaudio/the-audio-api/the-pannernode-interface/panner-automation-basic-expected.txt:
- web-platform-tests/webaudio/the-audio-api/the-pannernode-interface/panner-automation-position-expected.txt:
- web-platform-tests/webaudio/the-audio-api/the-pannernode-interface/test-pannernode-automation-expected.txt:
- web-platform-tests/webaudio/the-audio-api/the-waveshapernode-interface/waveshaper-expected.txt:
Source/WebCore:
OfflineAudioContext.startRendering() should return a Promise:
This is important as it was preventing a lot of web-platform-tests from running
properly and our test coverage was therefore really poor.
No new tests, rebaselined existing tests.
- Modules/webaudio/AudioBuffer.idl:
- Modules/webaudio/AudioDestinationNode.h:
- Modules/webaudio/BaseAudioContext.cpp:
(WebCore::BaseAudioContext::finishedRendering):
- Modules/webaudio/BaseAudioContext.h:
(WebCore::BaseAudioContext::didFinishOfflineRendering):
- Modules/webaudio/DefaultAudioDestinationNode.cpp:
(WebCore::DefaultAudioDestinationNode::startRendering):
- Modules/webaudio/DefaultAudioDestinationNode.h:
- Modules/webaudio/OfflineAudioContext.cpp:
(WebCore::OfflineAudioContext::startOfflineRendering):
(WebCore::OfflineAudioContext::didFinishOfflineRendering):
- Modules/webaudio/OfflineAudioContext.h:
- Modules/webaudio/OfflineAudioContext.idl:
- Modules/webaudio/OfflineAudioDestinationNode.cpp:
(WebCore::OfflineAudioDestinationNode::startRendering):
- Modules/webaudio/OfflineAudioDestinationNode.h:
- 9:31 AM Changeset in webkit [265085] by
-
- 5 edits4 adds in trunk/Source/WebKit
REGRESSION (r264925): run-safari --debug no longer works
https://bugs.webkit.org/show_bug.cgi?id=214947
<rdar://problem/66297850>
Reviewed by Darin Adler.
Removing these APIs in WebKit caused older versions of Safari to
break. We should add back in empty functions to make this work.
No new tests. Manually verified this fix.
- Shared/API/c/WKRenderLayer.cpp: Added.
(WKRenderLayerGetTypeID):
(WKRenderLayerGetRenderer):
(WKRenderLayerCopyRendererName):
(WKRenderLayerCopyElementTagName):
(WKRenderLayerCopyElementID):
(WKRenderLayerGetElementClassNames):
(WKRenderLayerGetAbsoluteBounds):
(WKRenderLayerIsClipping):
(WKRenderLayerIsClipped):
(WKRenderLayerIsReflection):
(WKRenderLayerGetCompositingLayerType):
(WKRenderLayerGetBackingStoreMemoryEstimate):
(WKRenderLayerGetNegativeZOrderList):
(WKRenderLayerGetNormalFlowList):
(WKRenderLayerGetPositiveZOrderList):
(WKRenderLayerGetFrameContentsLayer):
- Shared/API/c/WKRenderLayer.h: Added.
- Shared/API/c/WKRenderObject.cpp: Added.
(WKRenderObjectGetTypeID):
(WKRenderObjectCopyName):
(WKRenderObjectCopyTextSnippet):
(WKRenderObjectGetTextLength):
(WKRenderObjectCopyElementTagName):
(WKRenderObjectCopyElementID):
(WKRenderObjectGetElementClassNames):
(WKRenderObjectGetAbsolutePosition):
(WKRenderObjectGetFrameRect):
(WKRenderObjectGetChildren):
- Shared/API/c/WKRenderObject.h: Added.
- Sources.txt:
- WebKit.xcodeproj/project.pbxproj:
- WebProcess/InjectedBundle/API/c/WKBundlePage.cpp:
(WKBundlePageCopyRenderTree):
(WKBundlePageCopyRenderLayerTree):
- WebProcess/InjectedBundle/API/c/WKBundlePagePrivate.h:
- 9:17 AM Changeset in webkit [265084] by
-
- 61 edits in trunk/Source
Further reduction in the use of live ranges, particularly in headers
https://bugs.webkit.org/show_bug.cgi?id=214793
Reviewed by Sam Weinig.
Source/WebCore:
- accessibility/AccessibilityObject.cpp:
(WebCore::AccessibilityObject::performTextOperation): Do not call createLiveRange.
(WebCore::AccessibilityObject::replaceTextInRange): Ditto.
- dom/SimpleRange.cpp: Moved makeSimpleRange functions to the header.
- dom/SimpleRange.h: Reworked the makeSimpleRange implementation to avoid a mistake
which made template expansion infinitely recurse while compiling and crash the compiler.
Ended up moving all the code to the header. Should be a good thing; I expect it will
optimize well inlined.
- editing/CompositeEditCommand.cpp:
(WebCore::CompositeEditCommand::moveParagraphs): Use makeSimpleRange.
- editing/Editor.cpp:
(WebCore::Editor::replaceSelectionWithText): Do not call createLiveRange.
(WebCore::Editor::setComposition): Use SimpleRange.
(WebCore::Editor::stringForCandidateRequest const): Do not call createLiveRange.
(WebCore::Editor::handleAcceptedCandidate): Use auto intead of RefPtr<Range>.
- editing/EditorCommand.cpp:
(WebCore::expandSelectionToGranularity): Do not call createLiveRange.
(WebCore::executeDeleteToMark): Ditto.
(WebCore::executeSelectToMark): Ditto.
(WebCore::valueFormatBlock): Ditto.
- editing/FormatBlockCommand.cpp:
(WebCore::FormatBlockCommand::formatRange): Use makeSimpleRange.
(WebCore::FormatBlockCommand::elementForFormatBlockCommand): Take a
SimpleRange.
- editing/FormatBlockCommand.h: Updated for above.
- editing/FrameSelection.cpp:
(WebCore::FrameSelection::moveTo): Deleted overload taking a live range.
(WebCore::FrameSelection::setSelectedRange): Take a SimpleRange.
- editing/FrameSelection.h: Updated for above.
- editing/ReplaceSelectionCommand.cpp:
(WebCore::ReplacementFragment::ReplacementFragment): Do not call
createLiveRange.
- editing/VisibleUnits.cpp:
(WebCore::enclosingTextUnitOfGranularity): Return SimpleRange.
(WebCore::wordRangeFromPosition): Ditto.
(WebCore::closestWordBoundaryForPosition): Use SimpleRange.
(WebCore::rangeExpandedByCharactersInDirectionAtWordBoundary): Return
a SimpleRange.
(WebCore::rangeExpandedAroundPositionByCharacters): Ditto.
(WebCore::wordBoundaryForPositionWithoutCrossingLine): Use SimpleRange.
- editing/VisibleUnits.h: Updated for above.
- editing/cocoa/DataDetection.mm:
(WebCore::DataDetection::detectItemAroundHitTestResult):
Use SimpleRange.
- editing/cocoa/DictionaryLookup.mm:
(WebCore::DictionaryLookup::rangeForSelection): Use SimpleRange.
(WebCore::DictionaryLookup::rangeAtHitTestResult): Ditto.
- editing/cocoa/EditorCocoa.mm:
(WebCore::Editor::getPasteboardTypesAndDataForAttachment):
Do not call createLiveRange.
- editing/cocoa/WebContentReaderCocoa.mm:
(WebCore::WebContentReader::readPlainText): Ditto.
- editing/gtk/WebContentReaderGtk.cpp:
(WebCore::WebContentReader::readPlainText): Ditto.
- editing/libwpe/EditorLibWPE.cpp:
(WebCore::createFragmentFromPasteboardData): Ditto.
- editing/mac/DictionaryLookupLegacy.mm:
(WebCore::DictionaryLookup::rangeAtHitTestResult): Use SimpleRange.
- editing/markup.cpp:
(WebCore::serializePreservingVisualAppearance): Take SimpleRange.
(WebCore::contextPreservesNewline): Ditto.
(WebCore::createFragmentFromText): Ditto.
- editing/markup.h: Updated for above.
- loader/archive/cf/LegacyWebArchive.cpp:
(WebCore::LegacyWebArchive::create): Take SimpleRange.
- loader/archive/cf/LegacyWebArchive.h: Updated for above.
- page/DragController.cpp:
(WebCore::DragController::performDragOperation): Use SimpleRange.
(WebCore::DragController::concludeEditDrag): Do not call createLiveRange.
(WebCore::selectElement): Use SimpleRange.
(WebCore::DragController::removeAllDroppedImagePlaceholders): Ditto.
(WebCore::DragController::insertDroppedImagePlaceholdersAtCaret): Ditto.
- page/DragController.h: Use SimpleRange.
- page/Page.cpp:
(WebCore::Page::findTextMatches): Return vector of SimpleRange, in
structure so we have one return value instead of two out arguments.
Also renamed from findStringMatchingRanges.
(WebCore::Page::rangeOfString): Return SimpleRange.
(WebCore::replaceRanges): Do not call createLiveRange.
(WebCore::Page::replaceRangesWithText): Take SimpleRange.
- page/Page.h: Updated for above.
- page/ios/FrameIOS.mm:
(WebCore::Frame::wordsInCurrentParagraph const): Use SimpleRange.
- rendering/HitTestResult.cpp:
(WebCore::HitTestResult::isOverTextInsideFormControlElement const):
Use SimpleRange, and also use hasAnyPlainText instead of computing
the plain text string and checking if it's empty.
Source/WebKit:
- Shared/API/c/mac/WKWebArchiveRef.cpp:
(WKWebArchiveCreateFromRange): Use makeSimpleRange.
- Shared/APIWebArchive.h: Use SimpleRange.
- Shared/APIWebArchive.mm:
(API::WebArchive::create): Take SimpleRange.
- Shared/EditingRange.cpp:
(WebKit::EditingRange::toRange): Don't call createLiveRange.
(WebKit::EditingRange::fromRange): Take SimpleRange.
- Shared/EditingRange.h: Updated for above.
- WebProcess/InjectedBundle/API/APIInjectedBundleEditorClient.h:
Take SimpleRange, String, StyleProperties instead of
Range, StringImpl, CSSStyleDeclaration.
- WebProcess/InjectedBundle/API/glib/WebKitWebEditor.cpp:
String instead of StringImpl.
- WebProcess/InjectedBundle/API/mac/WKDOMDocument.mm:
(-[WKDOMDocument createDocumentFragmentWithText:]): Use SimpleRange.
- WebProcess/InjectedBundle/API/mac/WKDOMRange.mm:
(-[WKDOMRange rangeByExpandingToWordBoundaryByCharacters:inDirection:]):
Use SimpleRange and createLiveRange.
- WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextController.mm:
(-[WKWebProcessPlugInBrowserContextController _setEditingDelegate:]):
Updated for changes to bundle editor client.
- WebProcess/InjectedBundle/DOM/InjectedBundleRangeHandle.cpp:
(WebKit::InjectedBundleRangeHandle::create): Deleted. Moved the
code into InjectedBundleRangeHandle::getOrCreate.
(WebKit::createHandle): Added. Makes a handle for a SimpleRange.
- WebProcess/InjectedBundle/DOM/InjectedBundleRangeHandle.h:
Updated for above.
- WebProcess/InjectedBundle/InjectedBundlePageEditorClient.cpp:
(WebKit::createHandle): Added. Makes a handle for a CSSStyleDeclaration.
(WebKit::InjectedBundlePageEditorClient::shouldBeginEditing):
Updated for changes to bundle editor client.
(WebKit::InjectedBundlePageEditorClient::shouldEndEditing): Ditto.
(WebKit::InjectedBundlePageEditorClient::shouldInsertNode): Ditto.
(WebKit::InjectedBundlePageEditorClient::shouldInsertText): Ditto.
(WebKit::InjectedBundlePageEditorClient::shouldDeleteRange): Ditto.
(WebKit::InjectedBundlePageEditorClient::shouldChangeSelectedRange): Ditto.
(WebKit::InjectedBundlePageEditorClient::shouldApplyStyle): Ditto.
(WebKit::InjectedBundlePageEditorClient::didBeginEditing): Ditto.
(WebKit::InjectedBundlePageEditorClient::didEndEditing): Ditto.
(WebKit::InjectedBundlePageEditorClient::didChange): Ditto.
(WebKit::InjectedBundlePageEditorClient::didChangeSelection): Ditto.
(WebKit::InjectedBundlePageEditorClient::willWriteToPasteboard): Ditto.
(WebKit::InjectedBundlePageEditorClient::getPasteboardDataForRange): Ditto.
(WebKit::InjectedBundlePageEditorClient::performTwoStepDrop): Ditto.
- WebProcess/InjectedBundle/InjectedBundlePageEditorClient.h:
Updated for above.
- WebProcess/WebCoreSupport/WebEditorClient.cpp:
(WebKit::WebEditorClient::shouldDeleteRange): Updated to call new
revised bundle editor client.
(WebKit::WebEditorClient::shouldBeginEditing): Ditto.
(WebKit::WebEditorClient::shouldEndEditing): Ditto.
(WebKit::WebEditorClient::shouldInsertNode): Ditto.
(WebKit::WebEditorClient::shouldInsertText): Ditto.
(WebKit::WebEditorClient::shouldChangeSelectedRange): Ditto.
(WebKit::WebEditorClient::shouldApplyStyle): Ditto.
(WebKit::WebEditorClient::willWriteSelectionToPasteboard): Ditto.
(WebKit::WebEditorClient::getClientPasteboardData): Ditto.
(WebKit::WebEditorClient::performTwoStepDrop): Ditto.
(WebKit::insertionPointFromCurrentSelection): Use SimpleRange.
- WebProcess/WebPage/FindController.cpp:
(WebKit::FindController::replaceMatches): Use SimpleRange.
(WebKit::FindController::findString): Updated for change to
Page::findTextMatches function.
(WebKit::FindController::findStringMatches): Ditto.
(WebKit::FindController::getImageForFindMatch): Use SimpleRange.
(WebKit::FindController::selectFindMatch): Ditto.
- WebProcess/WebPage/FindController.h: Updated for above.
- WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::getMarkedRangeAsync): Do not call createLiveRange.
(WebKit::WebPage::getSelectedRangeAsync): Ditto.
(WebKit::WebPage::characterIndexForPointAsync): Call makeSimpleRange.
- WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::plainTextForContext): Changed overloads a bit to work
better with Optional<SimpleRange> and removed the ones that explicitly
take a Range, updating callers to compensate.
(WebKit::plainTextForDisplay): Ditto.
(WebKit::WebPage::getPlatformEditorState const): Use SimpleRange.
(WebKit::WebPage::getSelectionContext): Ditto.
(WebKit::WebPage::didConcludeEditDrag): Ditto.
(WebKit::WebPage::handleStylusSingleTapAtPoint): Ditto.
(WebKit::WebPage::selectWithGesture): Ditto.
(WebKit::rangeForPointInRootViewCoordinates): Return SimpleRange.
(WebKit::rangeAtWordBoundaryForPosition): Ditto.
(WebKit::WebPage::updateSelectionWithTouches): Use SimpleRange.
(WebKit::WebPage::selectWithTwoTouches): Ditto.
(WebKit::WebPage::extendSelection): Ditto.
(WebKit::WebPage::selectWordBackward): Ditto.
(WebKit::WebPage::moveSelectionByOffset): Ditto.
(WebKit::WebPage::getRectsForGranularityWithSelectionOffset): Ditto.
(WebKit::WebPage::selectPositionAtPoint): Ditto.
(WebKit::WebPage::selectPositionAtBoundaryWithDirection): Ditto.
(WebKit::WebPage::moveSelectionAtBoundaryWithDirection): Ditto.
(WebKit::WebPage::rangeForGranularityAtPoint): Ditto.
(WebKit::WebPage::selectTextWithGranularityAtPoint): Ditto.
(WebKit::WebPage::updateSelectionWithExtentPointAndBoundary): Ditto.
(WebKit::WebPage::updateSelectionWithExtentPoint): Ditto.
(WebKit::WebPage::replaceSelectedText): Ditto.
(WebKit::WebPage::replaceDictatedText): Ditto.
(WebKit::WebPage::requestAutocorrectionData): Ditto.
(WebKit::WebPage::applyAutocorrectionInternal): Ditto.
(WebKit::WebPage::autocorrectionContext): Ditto.
(WebKit::dataDetectorLinkPositionInformation): Ditto.
(WebKit::WebPage::updateSelectionWithDelta): Ditto.
(WebKit::WebPage::focusTextInputContextAndPlaceCaret): Ditto.
Source/WebKitLegacy/ios:
- WebCoreSupport/WebVisiblePosition.mm:
(-[WebVisiblePosition enclosingTextUnitOfGranularity:inDirectionIfAtBoundary:]):
Use SimpleRange.
Source/WebKitLegacy/mac:
- DOM/DOMHTML.mm:
(-[DOMHTMLDocument createDocumentFragmentWithText:]): Use SimpleRange.
- DOM/DOMUIKitExtensions.mm:
(-[DOMRange move:inDirection:]): Ditto.
(-[DOMRange extend:inDirection:]): Ditto.
- DOM/WebDOMOperations.mm:
(-[DOMRange webArchive]): Ditto.
- WebView/WebFrame.mm:
(-[WebFrame _firstRectForDOMRange:]): Moved a "*" to save a little work.
(-[WebFrame setSelectedDOMRange:affinity:closeTyping:userTriggered:]):
Use SimpleRange.
(-[WebFrame _replaceSelectionWithText:selectReplacement:smartReplace:matchStyle:]):
Ditto.
(-[WebFrame _replaceSelectionWithText:selectReplacement:smartReplace:]):
Ditto.
(-[WebFrame _documentFragmentForText:]): Ditto.
- WebView/WebView.mm:
(-[WebView DOMRangeOfString:relativeTo:options:]): Ditto.
(-[WebView setSelectedDOMRange:affinity:]): Ditto.
Source/WebKitLegacy/win:
- AccessibleTextImpl.cpp: Added an include of Range.h.
- 9:04 AM Changeset in webkit [265083] by
-
- 2 edits in trunk/LayoutTests
[ macOS wk1 ] imported/w3c/web-platform-tests/pointerevents/pointerevent_attributes_hoverable_pointers.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=214967
Unreviewed test gardening.
Patch by Hector Lopez <Hector Lopez> on 2020-07-30
- platform/mac-wk1/TestExpectations:
- 8:55 AM Changeset in webkit [265082] by
-
- 6 edits in trunk/Tools
[Big Sur] Add limited Seed 3 support to EWS
https://bugs.webkit.org/show_bug.cgi?id=214874
<rdar://problem/66216190>
Reviewed by Aakash Jain.
- BuildSlaveSupport/ews-app/ews/views/statusbubble.py:
(StatusBubble): Add AppleSilicon bubbles.
- BuildSlaveSupport/ews-build/config.json: Add AppleSilicon device.
- BuildSlaveSupport/ews-build/factories.py:
(macOSBuildOnlyFactory): Skip uploading to S3.
- BuildSlaveSupport/ews-build/factories_unittest.py:
(TestBuildFactory.test_macos_build_only_factory):
- BuildSlaveSupport/ews-build/loadConfig.py: Import macOSBuildOnlyFactory.
- 8:10 AM Changeset in webkit [265081] by
-
- 22 edits in trunk
Remove non-inclusive terminology from WebKit variable names and test-only SPI
https://bugs.webkit.org/show_bug.cgi?id=214941
Patch by Alex Christensen <achristensen@webkit.org> on 2020-07-30
Reviewed by Michael Catanzaro.
Source/WebKit:
- NetworkProcess/NetworkConnectionToWebProcess.cpp:
(WebKit::NetworkConnectionToWebProcess::addOriginAccessAllowListEntry):
(WebKit::NetworkConnectionToWebProcess::removeOriginAccessAllowListEntry):
(WebKit::NetworkConnectionToWebProcess::resetOriginAccessAllowLists):
(WebKit::NetworkConnectionToWebProcess::addOriginAccessWhitelistEntry): Deleted.
(WebKit::NetworkConnectionToWebProcess::removeOriginAccessWhitelistEntry): Deleted.
(WebKit::NetworkConnectionToWebProcess::resetOriginAccessWhitelists): Deleted.
- NetworkProcess/NetworkConnectionToWebProcess.h:
- NetworkProcess/NetworkConnectionToWebProcess.messages.in:
- Shared/WebProcessCreationParameters.cpp:
(WebKit::WebProcessCreationParameters::encode const):
(WebKit::WebProcessCreationParameters::decode):
- Shared/WebProcessCreationParameters.h:
- UIProcess/API/glib/WebKitUserContent.cpp:
(_WebKitUserStyleSheet::_WebKitUserStyleSheet):
(webkit_user_style_sheet_new):
(webkit_user_style_sheet_new_for_world):
(_WebKitUserScript::_WebKitUserScript):
(webkit_user_script_new):
(webkit_user_script_new_for_world):
- UIProcess/API/glib/WebKitWebContext.cpp:
(pathIsBlocked):
(webkit_web_context_add_path_to_sandbox):
(pathIsBlacklisted): Deleted.
- UIProcess/API/gtk/WebKitUserContent.h:
- UIProcess/API/wpe/WebKitUserContent.h:
- UIProcess/Cocoa/WebProcessPoolCocoa.mm:
(WebKit::WebProcessPool::platformInitializeWebProcess):
- UIProcess/Launcher/glib/BubblewrapLauncher.cpp:
(WebKit::setupSeccomp):
- UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::setFontAllowList):
- UIProcess/WebProcessPool.h:
- WebProcess/InjectedBundle/API/c/WKBundle.cpp:
(WKBundleAddOriginAccessAllowListEntry):
(WKBundleRemoveOriginAccessAllowListEntry):
(WKBundleResetOriginAccessAllowLists):
(WKBundleAddOriginAccessWhitelistEntry): Deleted.
(WKBundleRemoveOriginAccessWhitelistEntry): Deleted.
(WKBundleResetOriginAccessWhitelists): Deleted.
- WebProcess/InjectedBundle/API/c/WKBundlePrivate.h:
- WebProcess/InjectedBundle/InjectedBundle.cpp:
(WebKit::InjectedBundle::addOriginAccessAllowListEntry):
(WebKit::InjectedBundle::removeOriginAccessAllowListEntry):
(WebKit::InjectedBundle::resetOriginAccessAllowLists):
(WebKit::InjectedBundle::addOriginAccessWhitelistEntry): Deleted.
(WebKit::InjectedBundle::removeOriginAccessWhitelistEntry): Deleted.
(WebKit::InjectedBundle::resetOriginAccessWhitelists): Deleted.
- WebProcess/InjectedBundle/InjectedBundle.h:
- WebProcess/cocoa/WebProcessCocoa.mm:
(WebKit::WebProcess::platformInitializeWebProcess):
Tools:
- WebKitTestRunner/InjectedBundle/InjectedBundle.cpp:
(WTR::InjectedBundle::beginTesting):
- WebKitTestRunner/InjectedBundle/TestRunner.cpp:
(WTR::TestRunner::addOriginAccessWhitelistEntry):
(WTR::TestRunner::removeOriginAccessWhitelistEntry):
- 1:53 AM Changeset in webkit [265080] by
-
- 26 edits in trunk
[GTK4] Enable API tests
https://bugs.webkit.org/show_bug.cgi?id=214344
Reviewed by Adrian Perez de Castro.
.:
Build API tests for GTK4 too.
- Source/cmake/OptionsGTK.cmake:
Source/WebKit:
Use a custom KeyEvent struct to pass to the IM filter as a fake GdkEvent to be able to test input methods with
GTK4.
- UIProcess/API/glib/InputMethodFilter.h:
- UIProcess/API/gtk/InputMethodFilterGtk.cpp:
(WebKit::InputMethodFilter::platformEventKeyIsKeyPress const):
(WebKit::InputMethodFilter::filterKeyEvent):
- UIProcess/API/gtk/WebKitWebViewBaseInternal.h:
- UIProcess/CoordinatedGraphics/DrawingAreaProxyCoordinatedGraphics.cpp:
(WebKit::DrawingAreaProxyCoordinatedGraphics::DrawingMonitor::start):
(WebKit::DrawingAreaProxyCoordinatedGraphics::DrawingMonitor::stop):
Tools:
Port API tests to GTK4. Context menu and option menu tests are still disabled for GTK4 because we plan to change
the API for GTK4 in those cases.
- TestWebKitAPI/Tests/WebKitGLib/TestDownloads.cpp:
(beforeAll):
- TestWebKitAPI/Tests/WebKitGLib/TestInputMethodContext.cpp:
(webkitInputMethodContextMockFilterKeyEvent):
- TestWebKitAPI/Tests/WebKitGLib/TestMultiprocess.cpp:
- TestWebKitAPI/Tests/WebKitGLib/TestOptionMenu.cpp:
(beforeAll):
- TestWebKitAPI/Tests/WebKitGLib/TestUIClient.cpp:
(checkMimeTypeForFilter):
- TestWebKitAPI/Tests/WebKitGLib/TestWebExtensions.cpp:
(testWebExtensionInputElementIsUserEdited):
- TestWebKitAPI/Tests/WebKitGLib/TestWebKitSettings.cpp:
(testWebKitSettings):
- TestWebKitAPI/Tests/WebKitGLib/TestWebKitWebView.cpp:
- TestWebKitAPI/Tests/WebKitGtk/AccessibilityTestServer.cpp:
- TestWebKitAPI/Tests/WebKitGtk/InspectorTestServer.cpp:
(main):
- TestWebKitAPI/Tests/WebKitGtk/TestContextMenu.cpp:
(testContextMenuPopulateMenu):
(beforeAll):
- TestWebKitAPI/Tests/WebKitGtk/TestInspector.cpp:
- TestWebKitAPI/Tests/WebKitGtk/TestPrinting.cpp:
- TestWebKitAPI/Tests/WebKitGtk/TestWebViewEditor.cpp:
(Clipboard::Clipboard):
(Clipboard::clear):
(Clipboard::containsText const):
(Clipboard::waitForText):
(Clipboard::readText):
(testWebViewEditorCutCopyPasteNonEditable):
(testWebViewEditorCutCopyPasteEditable):
(testWebViewEditorSelectAllNonEditable):
(testWebViewEditorSelectAllEditable):
(loadContentsAndTryToCutSelection):
- TestWebKitAPI/glib/WebKitGLib/TestMain.h:
(Test::Test):
- TestWebKitAPI/glib/WebKitGLib/gtk/WebViewTestGtk.cpp:
(WebViewTest::platformDestroy):
(WebViewTest::showInWindow):
- TestWebKitAPI/gtk/PlatformUtilitiesGtk.cpp:
(TestWebKitAPI::Util::isKeyDown):
- TestWebKitAPI/gtk/PlatformWebViewGtk.cpp:
(TestWebKitAPI::PlatformWebView::~PlatformWebView):
(TestWebKitAPI::PlatformWebView::initialize):
- 12:21 AM Changeset in webkit [265079] by
-
- 24 edits6 copies3 adds in trunk
Refactor HID gamepad code to be much less fragile and much easier to hack on.
https://bugs.webkit.org/show_bug.cgi?id=214910
Reviewed by Darin Adler.
Source/WebCore:
Covered by API tests.
Currently - for HID device gamepads - we throw all buttons and axes against the wall and see what sticks.
Instead, for specific popular devices, we'd like to have device-specific mappings so the representation makes sense.
To support that work, this is a major refactoring of the HID gamepad code. It does the following:
- Breaks out logic specific to IOHIDDeviceRef into HIDDevice
- Breaks out logic specific to IOHIDElementRef into HIDElement
- Moves responsibities of managing things to the right places (e.g. HIDElement manages its own current value directly)
- Makes HIDGamepadElement derive from HIDElement directly
- Moves device specific logic from HIDGamepad into a subclass of HID gamepad. Currently the only subclass is "generic" which encompasses HIDGamepad's old behavior
- Changes button/value vectors from Vector<double> to Vector<SharedGamepadValue> so multiple objects can reference the value at once. e.g. HIDGamepadButton can simply update it's own SharedGamepadValue without knowing which HIDGamepad owns it or which index into the gamepad's value vector it should be mutating.
This will be critical in the "specific device mapping" work as some types of HIDElements actually drive more than one
gamepad button value.
e.g. a "direction pad axis" actually manages 2 button values, or a "hat-switch" direction pad manages 4 button values
This patch doesn't change any current behavior.
- Modules/gamepad/Gamepad.cpp:
(WebCore::Gamepad::updateFromPlatformGamepad):
- Sources.txt:
- SourcesCocoa.txt:
- WebCore.xcodeproj/project.pbxproj:
- platform/Logging.h:
- platform/gamepad/PlatformGamepad.h:
- platform/gamepad/SharedGamepadValue.h: Copied from Source/WebKit/UIProcess/Gamepad/UIGamepad.h.
(WebCore::SharedGamepadValue::SharedGamepadValue):
(WebCore::SharedGamepadValue::setValue):
(WebCore::SharedGamepadValue::value const):
(WebCore::SharedGamepadValue::Data::Data):
- platform/gamepad/cocoa/GameControllerGamepad.h:
- platform/gamepad/cocoa/GameControllerGamepad.mm:
(WebCore::GameControllerGamepad::setupAsExtendedGamepad):
(WebCore::GameControllerGamepad::setupAsGamepad):
- platform/gamepad/mac/GenericHIDGamepad.cpp: Added.
(WebCore::GenericHIDGamepad::GenericHIDGamepad):
(WebCore::GenericHIDGamepad::id):
(WebCore::GenericHIDGamepad::maybeAddGenericDesktopElement):
(WebCore::GenericHIDGamepad::maybeAddButtonElement):
- platform/gamepad/mac/GenericHIDGamepad.h: Copied from Source/WebKit/WebProcess/Gamepad/WebGamepad.h.
- platform/gamepad/mac/HIDGamepad.cpp:
(WebCore::HIDGamepad::create):
(WebCore::HIDGamepad::HIDGamepad):
(WebCore::HIDGamepad::initialize):
(WebCore::HIDGamepad::valueChanged):
(WebCore::HIDGamepad::getCurrentValueForElement): Deleted.
(WebCore::HIDGamepad::initElements): Deleted.
(WebCore::HIDGamepad::initElementsFromArray): Deleted.
(WebCore::HIDGamepad::maybeAddButton): Deleted.
(WebCore::HIDGamepad::maybeAddAxis): Deleted.
- platform/gamepad/mac/HIDGamepad.h:
(WebCore::HIDGamepad::hidDevice const):
(WebCore::HIDGamepadElement::HIDGamepadElement): Deleted.
(WebCore::HIDGamepadElement::~HIDGamepadElement): Deleted.
(WebCore::HIDGamepadElement::isButton const): Deleted.
(WebCore::HIDGamepadElement::isAxis const): Deleted.
(WebCore::HIDGamepadButton::HIDGamepadButton): Deleted.
(WebCore::HIDGamepadAxis::HIDGamepadAxis): Deleted.
- platform/gamepad/mac/HIDGamepadElement.cpp: Added.
(WebCore::HIDGamepadElement::HIDGamepadElement):
(WebCore::HIDGamepadElement::refreshCurrentValue):
(WebCore::HIDGamepadElement::normalizedValue):
(WebCore::HIDGamepadButton::gamepadValueChanged):
(WebCore::HIDGamepadAxis::gamepadValueChanged):
(WebCore::HIDGamepadAxis::normalizedValue):
- platform/gamepad/mac/HIDGamepadElement.h: Copied from Source/WebCore/platform/gamepad/PlatformGamepad.h.
(WebCore::HIDGamepadElement::~HIDGamepadElement):
(WebCore::HIDGamepadElement::isButton const):
(WebCore::HIDGamepadElement::isAxis const):
- platform/gamepad/mac/HIDGamepadProvider.mm:
(WebCore::HIDGamepadProvider::deviceAdded):
- platform/gamepad/mac/MultiGamepadProvider.h:
- platform/graphics/cocoa/SourceBufferParserWebM.cpp:
- platform/mac/HIDDevice.cpp: Added.
(WebCore::HIDDevice::HIDDevice):
(WebCore::HIDDevice::uniqueInputElementsInDeviceTreeOrder const):
- platform/mac/HIDDevice.h: Copied from Source/WebCore/platform/gamepad/PlatformGamepad.h.
(WebCore::HIDDevice::rawElement const):
(WebCore::HIDDevice::vendorID const):
(WebCore::HIDDevice::productID const):
(WebCore::HIDDevice::productName const):
- platform/mac/HIDElement.cpp: Copied from Source/WebKit/UIProcess/Gamepad/UIGamepad.h.
(WebCore::HIDElement::HIDElement):
(WebCore::HIDElement::valueChanged):
- platform/mac/HIDElement.h: Copied from Source/WebKit/UIProcess/Gamepad/UIGamepad.h.
(WebCore::HIDElement::rawElement const):
(WebCore::HIDElement::physicalMin const):
(WebCore::HIDElement::physicalMax const):
(WebCore::HIDElement::physicalValue const):
(WebCore::HIDElement::usage const):
(WebCore::HIDElement::usagePage const):
(WebCore::HIDElement::cookie const):
- testing/MockGamepad.cpp:
(WebCore::MockGamepad::updateDetails):
(WebCore::MockGamepad::setAxisValue):
(WebCore::MockGamepad::setButtonValue):
- testing/MockGamepad.h:
Source/WebKit:
- Shared/Gamepad/GamepadData.cpp:
(WebKit::GamepadData::GamepadData):
- Shared/Gamepad/GamepadData.h:
- UIProcess/Gamepad/UIGamepad.h:
- WebProcess/Gamepad/WebGamepad.cpp:
(WebKit::WebGamepad::axisValues const):
(WebKit::WebGamepad::buttonValues const):
(WebKit::WebGamepad::updateValues):
- WebProcess/Gamepad/WebGamepad.h:
Tools:
Add a test that verifies connect, basic button/axis changes, and disconnect of a HID gamepad.
- TestWebKitAPI/Tests/mac/HIDGamepads.mm:
- 12:17 AM Changeset in webkit [265078] by
-
- 2 edits in trunk/Source/WebKit
Unreviewed, reverting r265043.
https://bugs.webkit.org/show_bug.cgi?id=214959
Will re-land after Safari 14 branching
Reverted changeset:
"Enable paint timing by default"
https://bugs.webkit.org/show_bug.cgi?id=211736
https://trac.webkit.org/changeset/265043