Timeline
Feb 8, 2021:
- 10:54 PM Changeset in webkit [272569] by
-
- 6 edits in trunk
Make auto && <ratio> use content box-sizing
https://bugs.webkit.org/show_bug.cgi?id=221527
Patch by Rob Buis <rbuis@igalia.com> on 2021-02-08
Reviewed by Simon Fraser.
Source/WebCore:
Make auto && <ratio> aspect-ratio use content box-sizing as specified:
https://drafts.csswg.org/css-sizing-4/#valdef-aspect-ratio-auto--ratio
- rendering/RenderBlock.cpp:
(WebCore::RenderBlock::availableLogicalHeightForPercentageComputation const):
- rendering/RenderBox.cpp:
(WebCore::RenderBox::computeLogicalHeight const):
(WebCore::RenderBox::availableLogicalHeightUsing const):
(WebCore::RenderBox::computePositionedLogicalHeightUsing const):
(WebCore::RenderBox::computeLogicalWidthFromAspectRatio const):
(WebCore::RenderBox::computeMinMaxLogicalWidthFromAspectRatio const):
- rendering/style/RenderStyle.h:
(WebCore::RenderStyle::boxSizingForAspectRatio const):
LayoutTests:
Enable some tests that pass now.
- 10:51 PM Changeset in webkit [272568] by
-
- 3 edits in trunk/Tools
Move layout_test_runner.Worker._update_test_input to LayoutTestRunner
https://bugs.webkit.org/show_bug.cgi?id=221577
Patch by Sam Sneddon <Sam Sneddon> on 2021-02-08
Reviewed by Jonathan Bedard.
- Scripts/webkitpy/layout_tests/controllers/layout_test_runner.py:
(LayoutTestRunner.run_tests):
(LayoutTestRunner._update_test_input):
(Worker.handle):
(Worker._run_test):
(Worker._update_test_input): Deleted.
- Scripts/webkitpy/layout_tests/controllers/manager.py:
(Manager._run_tests):
- 9:37 PM Changeset in webkit [272567] by
-
- 3 edits2 adds in trunk
REGRESSION (r269458): yahoo.com social / comments bar shows as transparent when scrolling page
https://bugs.webkit.org/show_bug.cgi?id=221582
Source/WebCore:
<rdar://problem/73795359>
Reviewed by Tim Horton.
Fix some copypasta in r269458 that resulted in scrolling state fixed nodes failing to get
the right dirty bits after attach, resulting bad viewport constraint data.
Test: scrollingcoordinator/fixed-node-reattach.html
- page/scrolling/ScrollingStateFixedNode.cpp:
(WebCore::ScrollingStateFixedNode::applicableProperties const):
LayoutTests:
Reviewed by Tim Horton.
- scrollingcoordinator/fixed-node-reattach-expected.html: Added.
- scrollingcoordinator/fixed-node-reattach.html: Added.
- 7:30 PM Changeset in webkit [272566] by
-
- 10 edits2 adds in trunk
Web Inspector: Add
CSS.setLayoutContextTypeChangedModefor getting information about all layout contexts
https://bugs.webkit.org/show_bug.cgi?id=221449
Source/JavaScriptCore:
Reviewed by Devin Rousso.
Added
CSS.setLayoutContextTypeChangedModecommand andCSS.LayoutContextTypeChangedModeenum for controlling
if the frontend should be informed of all layout context type changes, or if only currently instrumented nodes
should be observed.
- inspector/protocol/CSS.json:
Source/WebCore:
Reviewed by Devin Rousso.
Test: inspector/css/setLayoutContextTypeChangedMode.html
Backend support for changing the
LayoutContextTypeChangedMode.
- inspector/agents/InspectorCSSAgent.cpp:
(WebCore::pushChildrenNodesToFrontendIfLayoutContextTypePresent):
- Recursively pushes children node paths to the frontend if a
LayoutContextTypeexists for the node, which
allows the frontend to have a complete picture of the layout contexts in the document.
(WebCore::InspectorCSSAgent::setLayoutContextTypeChangedMode):
- If the mode is changed to
All, then make sure any node with aLayoutContextTypeinside any document is
sent to the frontend.
(WebCore::InspectorCSSAgent::nodeLayoutContextTypeChanged):
- If the
LayoutContextTypeChangedModeisAll, inform the frontend of the node when it changes layout
context, even if the node was not previously instrumented.
- inspector/agents/InspectorCSSAgent.h:
Source/WebInspectorUI:
Reviewed by Devin Rousso.
- UserInterface/Controllers/CSSManager.js:
- Added CSS.LayoutContextTypeChangedMode enum values.
(WI.CSSManager.prototype.set layoutContextTypeChangedMode):
- UserInterface/Controllers/DOMManager.js:
(WI.DOMManager.prototype.nodesWithLayoutContextType):
- Added ability to get all instrumented nodes of a specific layout context type.
- UserInterface/Views/LayoutDetailsSidebarPanel.js:
(WI.LayoutDetailsSidebarPanel.prototype.attached):
(WI.LayoutDetailsSidebarPanel.prototype.detached):
- Change the LayoutContextTypeChangedMode when showing/hiding the Layout panel.
LayoutTests:
Reviewed by Devin Rousso
Added layout tests for
CSS.setLayoutContextTypeChangedModecommand.
- inspector/css/setLayoutContextTypeChangedMode-expected.txt: Added.
- inspector/css/setLayoutContextTypeChangedMode.html: Added.
- 6:47 PM Changeset in webkit [272565] by
-
- 2 edits in trunk/Tools
<rdar://problem/70402593> Motionmark failed to start webserver
Reviewed by Dewei Zhu.
- Scripts/webkitpy/benchmark_runner/benchmark_builder.py:
(BenchmarkBuilder.enter):
- 6:17 PM Changeset in webkit [272564] by
-
- 16 edits4 deletes in trunk
Unreviewed, reverting r272485.
https://bugs.webkit.org/show_bug.cgi?id=221588
Required revisions were reversed
Reverted changeset:
"[GLib] Permission request API for MediaKeySystem access
support"
https://bugs.webkit.org/show_bug.cgi?id=221199
https://trac.webkit.org/changeset/272485
- 5:47 PM Changeset in webkit [272563] by
-
- 2 edits in trunk/Tools
[Mac] Connect MediaSession with MediaRemote and NowPlaying
https://bugs.webkit.org/show_bug.cgi?id=221431
<rdar://problem/74000363>
Unreviewed build fix for macOS Catalina.
- TestWebKitAPI/Tests/WebKitCocoa/MediaSession.mm:
(TestWebKitAPI::TEST_F): Add compile guards for Catalina.
- 5:45 PM Changeset in webkit [272562] by
-
- 7 edits in trunk/Source/WebCore
[CMake] Cleanup ENABLE_ENCRYPTED_MEDIA build
https://bugs.webkit.org/show_bug.cgi?id=221578
Reviewed by Michael Catanzaro.
Move missing shared files in platform/encryptedmedia to the Sources.txt. Update the XCode
project to reflect them moving to the unified build.
Move common configuration into the root CMakeLists.txt. Cleanup the related platform CMake
code to reflect the updated build.
- CMakeLists.txt:
- PlatformMac.cmake:
- Sources.txt:
- WebCore.xcodeproj/project.pbxproj:
- platform/GStreamer.cmake:
- platform/gamepad/mac/HIDGamepad.cpp: Unrelated unified build fix
- 4:43 PM Changeset in webkit [272561] by
-
- 40 edits17 deletes in trunk
Unreviewed, reverting r272480, r272481, and r272500.
https://bugs.webkit.org/show_bug.cgi?id=221586
Caused assertion failure seen with EME tests
Reverted changesets:
"Permission request API for MediaKeySystem access support"
https://bugs.webkit.org/show_bug.cgi?id=221187
https://trac.webkit.org/changeset/272480
"Unreviewed, build fix after r272480"
https://trac.webkit.org/changeset/272481
"Permission request API for MediaKeySystem access support"
https://bugs.webkit.org/show_bug.cgi?id=221187
https://trac.webkit.org/changeset/272500
- 4:32 PM Changeset in webkit [272560] by
-
- 1 edit2 adds in trunk/Tools
[build.webkit.org] Add HTML file that translates a builder name and number pair to a valid Buildbot URL
https://bugs.webkit.org/show_bug.cgi?id=221579
Reviewed by Ryosuke Niwa.
- CISupport/build-webkit-org/public_html/builders: Added.
- CISupport/build-webkit-org/public_html/builders/index.html: Added.
- 4:32 PM Changeset in webkit [272559] by
-
- 2 edits in trunk/Source/WebKit
Crash with remote layer tree logging
https://bugs.webkit.org/show_bug.cgi?id=221580
Reviewed by Tim Horton.
Null-check animation.timingFunction when dumping remote layer tree animations.
- WebProcess/WebPage/RemoteLayerTree/PlatformCAAnimationRemote.mm:
(WebKit::operator<<):
- 4:22 PM Changeset in webkit [272558] by
-
- 11 edits in trunk/Source/WebKit
Use CompletionHandler instead of BoolCallback
https://bugs.webkit.org/show_bug.cgi?id=221575
<rdar://problem/74058604>
Patch by Alex Christensen <achristensen@webkit.org> on 2021-02-08
Reviewed by Chris Dumez.
This makes the code more modern, and it makes our fuzzers better at reasoning what the boolean value is going to be used for.
It should also fix a rare crash involving BoolCallback by completely removing it.
- UIProcess/GenericCallback.h:
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::handlePreventableTouchEvent):
(WebKit::WebPageProxy::handleUnpreventableTouchEvent):
(WebKit::WebPageProxy::boolCallback): Deleted.
- UIProcess/WebPageProxy.h:
- UIProcess/WebPageProxy.messages.in:
- WebProcess/WebPage/EventDispatcher.cpp:
(WebKit::EventDispatcher::touchEventWithoutCallback):
(WebKit::EventDispatcher::touchEvent):
(WebKit::EventDispatcher::dispatchTouchEvents):
- WebProcess/WebPage/EventDispatcher.h:
- WebProcess/WebPage/EventDispatcher.messages.in:
- WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::touchEventSync):
- WebProcess/WebPage/WebPage.h:
- WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::dispatchAsynchronousTouchEvents):
(WebKit::WebPage::cancelAsynchronousTouchEvents):
- 3:53 PM Changeset in webkit [272557] by
-
- 3 edits in trunk/Source/WebCore
Fix MSVC build with ENCRYPTED_MEDIA enabled
https://bugs.webkit.org/show_bug.cgi?id=177803
<rdar://problem/34920322>
Reviewed by Alex Christensen.
MSVC has a bug of a outer lambda's captured
thiscan't be used as
a lambda capture initializer of an inner lambda.
- Modules/encryptedmedia/MediaKeySession.cpp:
(WebCore::MediaKeySession::generateRequest):
(WebCore::MediaKeySession::load):
(WebCore::MediaKeySession::update):
(WebCore::MediaKeySession::close):
(WebCore::MediaKeySession::remove):
- platform/encryptedmedia/clearkey/CDMClearKey.cpp:
(WebCore::CDMInstanceSessionClearKey::requestLicense):
(WebCore::CDMInstanceSessionClearKey::updateLicense):
(WebCore::CDMInstanceSessionClearKey::removeSessionData):
- 3:37 PM Changeset in webkit [272556] by
-
- 3 edits2 adds in trunk
Make getStartEndListChildren check renderers
https://bugs.webkit.org/show_bug.cgi?id=221388
Patch by Rob Buis <rbuis@igalia.com> on 2021-02-08
Reviewed by Alex Christensen.
Source/WebCore:
Require the list to have non-null renderers for start
and end.
Test: editing/execCommand/insert-nested-lists-crash.html
- editing/ModifySelectionListLevel.cpp:
(WebCore::getStartEndListChildren):
LayoutTests:
Add test for this.
- editing/execCommand/insert-nested-lists-crash-expected.txt: Added.
- editing/execCommand/insert-nested-lists-crash.html: Added.
- 3:34 PM Changeset in webkit [272555] by
-
- 2 edits in branches/safari-612.1.3-branch/Source/WebKitLegacy/mac
Cherry-pick r272500. rdar://problem/74116538
Permission request API for MediaKeySystem access support
https://bugs.webkit.org/show_bug.cgi?id=221187
Unreviewed build fix for macCatalyst.
- WebCoreSupport/WebMediaKeySystemClient.h: Add a check for ENABLE(ENCRYPTED_MEDIA).
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@272500 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 3:21 PM Changeset in webkit [272554] by
-
- 1 copy in tags/Safari-611.1.15
Tag Safari-611.1.15.
- 3:13 PM Changeset in webkit [272553] by
-
- 8 edits in branches/safari-612.1.3-branch/Source
Versioning.
WebKit-7612.1.3
- 3:10 PM Changeset in webkit [272552] by
-
- 1 copy in branches/safari-612.1.3-branch
New branch.
- 3:06 PM Changeset in webkit [272551] by
-
- 8 edits in trunk/Source
Versioning.
WebKit-7612.1.4
- 2:55 PM Changeset in webkit [272550] by
-
- 19 edits in trunk/Source
Make the UserContentController for ServiceWorker pages be non-optional.
<rdar://problem/71434565> and https://bugs.webkit.org/show_bug.cgi?id=221503
Reviewed by Alex Christensen.
Source/WebCore:
- loader/EmptyClients.cpp:
(WebCore::pageConfigurationWithEmptyClients):
- page/Page.cpp:
(WebCore::Page::Page):
- page/PageConfiguration.cpp:
(WebCore::PageConfiguration::PageConfiguration):
- page/PageConfiguration.h:
Source/WebKit:
Normal Pages always have a UserContentProvider, even if they just create an empty default one.
Same should be true for ServiceWorkers.
- Shared/ServiceWorkerInitializationData.cpp:
(WebKit::ServiceWorkerInitializationData::decode):
- Shared/ServiceWorkerInitializationData.h:
- UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::userContentControllerIdentifierForServiceWorkers):
(WebKit::WebProcessPool::createWebPage):
- UIProcess/WebProcessPool.h:
- UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::enableServiceWorkers):
- UIProcess/WebProcessProxy.h:
- WebProcess/Storage/WebSWContextManagerConnection.cpp:
(WebKit::m_userContentController):
(WebKit::m_userAgent): Deleted.
- WebProcess/Storage/WebSWContextManagerConnection.h:
- WebProcess/WebPage/WebPage.cpp:
(WebKit::m_limitsNavigationsToAppBoundDomains):
Source/WebKitLegacy/mac:
- WebView/WebView.mm:
(-[WebView _commonInitializationWithFrameName:groupName:]):
Source/WebKitLegacy/win:
- WebView.cpp:
(WebView::initWithFrame):
- 2:23 PM Changeset in webkit [272549] by
-
- 6 edits in trunk
A Pattern with an SVG image is not rendered correctly
https://bugs.webkit.org/show_bug.cgi?id=221550
Reviewed by Simon Fraser.
Source/WebCore:
Implement SVGImage::nativeImage() and nativeImageForCurrentFrame() for
all platforms. This will make Pattern::createPlatformPattern() creates
CGPatternRef with a valid CGImageRef.
- svg/graphics/SVGImage.cpp:
(WebCore::SVGImage::nativeImageForCurrentFrame):
(WebCore::SVGImage::nativeImage):
- svg/graphics/SVGImage.h:
LayoutTests:
- imported/blink/svg/canvas/canvas-draw-pattern-size-expected.html:
Change the expected result to not use the pattern in its drawing.
- imported/blink/svg/canvas/canvas-draw-pattern-size.html:
Use a rectangle instead of a circle to avoid differences with the expected
result due to the edge smoothing.
- 2:04 PM Changeset in webkit [272548] by
-
- 126 edits1 move61 adds58 deletes in trunk/LayoutTests
[LayoutTests] Convert xmlhttprequest php to Python
https://bugs.webkit.org/show_bug.cgi?id=220995
<rdar://problem/73630008>
Reviewed by Alex Christensen.
- http/tests/local/formdata/resources/send-form-data-common.js:
(sendFormData):
- http/tests/local/formdata/send-form-data-constructed-from-form-expected.txt:
- http/tests/local/formdata/send-form-data-constructed-from-form-using-open-panel-expected.txt:
- http/tests/local/formdata/send-form-data-constructed-from-form-using-open-panel.html:
- http/tests/local/formdata/send-form-data-constructed-from-form.html:
- http/tests/local/formdata/send-form-data-with-empty-blob-filename.html:
- http/tests/local/formdata/send-form-data-with-empty-file-filename-using-open-panel.html:
- http/tests/local/formdata/send-form-data-with-empty-file-filename.html:
- http/tests/media/user-gesture-preserved-across-xmlhttprequest.html:
- http/tests/resources/init.py: Added.
- http/tests/resources/portabilityLayer.py: Added.
(setState):
(getState):
- http/tests/resources/reset-temp-file.py: Added.
- http/tests/xmlhttprequest/XMLHttpRequestException.html:
- http/tests/xmlhttprequest/abort-should-cancel-load-expected.txt:
- http/tests/xmlhttprequest/abort-should-cancel-load.html:
- http/tests/xmlhttprequest/access-control-allow-lists-starting-with-comma.html:
- http/tests/xmlhttprequest/access-control-and-redirects-async-expected.txt:
- http/tests/xmlhttprequest/access-control-and-redirects-async.html:
- http/tests/xmlhttprequest/access-control-basic-allow-preflight-cache-invalidation-by-header.html:
- http/tests/xmlhttprequest/access-control-basic-allow-preflight-cache-invalidation-by-method.html:
- http/tests/xmlhttprequest/access-control-basic-allow-preflight-cache-timeout.html:
- http/tests/xmlhttprequest/access-control-basic-allow-preflight-cache.html:
- http/tests/xmlhttprequest/access-control-preflight-async-header-denied-expected.txt:
- http/tests/xmlhttprequest/access-control-preflight-async-header-denied.html:
- http/tests/xmlhttprequest/access-control-preflight-async-method-denied-expected.txt:
- http/tests/xmlhttprequest/access-control-preflight-async-method-denied.html:
- http/tests/xmlhttprequest/access-control-preflight-async-not-supported-expected.txt:
- http/tests/xmlhttprequest/access-control-preflight-async-not-supported.html:
- http/tests/xmlhttprequest/access-control-preflight-credential-async.html:
- http/tests/xmlhttprequest/access-control-preflight-credential-sync.html:
- http/tests/xmlhttprequest/access-control-preflight-headers-async.html:
- http/tests/xmlhttprequest/access-control-preflight-headers-sync.html:
- http/tests/xmlhttprequest/access-control-preflight-not-successful-expected.txt:
- http/tests/xmlhttprequest/access-control-preflight-not-successful.html:
- http/tests/xmlhttprequest/access-control-preflight-request-header-lowercase.html:
- http/tests/xmlhttprequest/access-control-preflight-sync-header-denied-expected.txt:
- http/tests/xmlhttprequest/access-control-preflight-sync-header-denied.html:
- http/tests/xmlhttprequest/access-control-preflight-sync-method-denied-expected.txt:
- http/tests/xmlhttprequest/access-control-preflight-sync-method-denied.html:
- http/tests/xmlhttprequest/access-control-preflight-sync-not-supported-expected.txt:
- http/tests/xmlhttprequest/access-control-preflight-sync-not-supported.html:
- http/tests/xmlhttprequest/access-control-response-with-body-sync.html:
- http/tests/xmlhttprequest/access-control-response-with-body.html:
- http/tests/xmlhttprequest/access-control-response-with-expose-headers.html:
- http/tests/xmlhttprequest/auth-reject-protection-space.html:
- http/tests/xmlhttprequest/authorization-header.html:
- http/tests/xmlhttprequest/basic-auth-credentials-escaping.html:
- http/tests/xmlhttprequest/basic-auth-default.html:
- http/tests/xmlhttprequest/basic-auth-load-URL-with-consecutive-slashes.html:
- http/tests/xmlhttprequest/basic-auth-nopassword.html:
- http/tests/xmlhttprequest/basic-auth-nouser.html:
- http/tests/xmlhttprequest/basic-auth-responseURL-expected.txt:
- http/tests/xmlhttprequest/basic-auth-responseURL.html:
- http/tests/xmlhttprequest/basic-auth.html:
- http/tests/xmlhttprequest/chunked-progress-event-expectedLength.html:
- http/tests/xmlhttprequest/connection-error-sync.html:
- http/tests/xmlhttprequest/cors-non-standard-safelisted-headers-should-trigger-preflight-expected.txt:
- http/tests/xmlhttprequest/cors-non-standard-safelisted-headers-should-trigger-preflight.html:
- http/tests/xmlhttprequest/cross-origin-authorization-with-embedder.html:
- http/tests/xmlhttprequest/cross-origin-authorization.html:
- http/tests/xmlhttprequest/cross-origin-cookie-storage.html:
- http/tests/xmlhttprequest/cross-origin-no-authorization-expected.txt:
- http/tests/xmlhttprequest/cross-origin-no-authorization.html:
- http/tests/xmlhttprequest/cross-origin-no-credential-prompt-expected.txt:
- http/tests/xmlhttprequest/cross-origin-no-credential-prompt.html:
- http/tests/xmlhttprequest/cross-origin-preflight-get.html:
- http/tests/xmlhttprequest/cross-origin-redirect-responseURL.html:
- http/tests/xmlhttprequest/detaching-frame-2.html:
- http/tests/xmlhttprequest/digest-auth.html:
- http/tests/xmlhttprequest/failed-auth-expected.txt:
- http/tests/xmlhttprequest/failed-auth.html:
- http/tests/xmlhttprequest/gzip-content-type.html:
- http/tests/xmlhttprequest/head-redirection.html:
- http/tests/xmlhttprequest/logout.html:
- http/tests/xmlhttprequest/navigation-should-abort.html:
- http/tests/xmlhttprequest/null-auth.php: Removed.
- http/tests/xmlhttprequest/null-auth.py: Added.
- http/tests/xmlhttprequest/onabort-event.html:
- http/tests/xmlhttprequest/onabort-progressevent-attributes.html:
- http/tests/xmlhttprequest/onloadend-event-after-error.html:
- http/tests/xmlhttprequest/onloadend-event-after-sync-requests.html:
- http/tests/xmlhttprequest/origin-exact-matching-expected.txt:
- http/tests/xmlhttprequest/overridemimetype-headers-received-state-force-shiftjis.html:
- http/tests/xmlhttprequest/post-blob-content-type-async-expected.txt:
- http/tests/xmlhttprequest/post-blob-content-type-sync-expected.txt:
- http/tests/xmlhttprequest/post-blob-content-type-tests.js:
- http/tests/xmlhttprequest/re-login-async.html:
- http/tests/xmlhttprequest/re-login.html:
- http/tests/xmlhttprequest/redirect-cors-origin-null.html:
- http/tests/xmlhttprequest/redirect-credentials-responseURL-expected.txt:
- http/tests/xmlhttprequest/redirect-credentials-responseURL.html:
- http/tests/xmlhttprequest/redirect-cross-origin-tripmine-expected.txt:
- http/tests/xmlhttprequest/redirect-cross-origin-tripmine.html:
- http/tests/xmlhttprequest/redirections-and-user-headers.html:
- http/tests/xmlhttprequest/remember-bad-password-expected.txt:
- http/tests/xmlhttprequest/remember-bad-password.html:
- http/tests/xmlhttprequest/resources/access-control-allow-lists.php: Removed.
- http/tests/xmlhttprequest/resources/access-control-allow-lists.py: Added.
- http/tests/xmlhttprequest/resources/access-control-allow-with-body.php: Removed.
- http/tests/xmlhttprequest/resources/access-control-allow-with-body.py: Added.
- http/tests/xmlhttprequest/resources/access-control-basic-preflight-cache-invalidation.php: Removed.
- http/tests/xmlhttprequest/resources/access-control-basic-preflight-cache-invalidation.py: Added.
(fail):
- http/tests/xmlhttprequest/resources/access-control-basic-preflight-cache-timeout.php: Removed.
- http/tests/xmlhttprequest/resources/access-control-basic-preflight-cache-timeout.py: Added.
(fail):
- http/tests/xmlhttprequest/resources/access-control-basic-preflight-cache.php: Removed.
- http/tests/xmlhttprequest/resources/access-control-basic-preflight-cache.py: Added.
(fail):
- http/tests/xmlhttprequest/resources/access-control-preflight-denied-xsrf.php: Removed.
- http/tests/xmlhttprequest/resources/access-control-preflight-denied-xsrf.py: Added.
(fail):
- http/tests/xmlhttprequest/resources/access-control-preflight-redirect.php: Removed.
- http/tests/xmlhttprequest/resources/access-control-preflight-redirect.py: Added.
- http/tests/xmlhttprequest/resources/access-control-preflight-request-header-lowercase.php: Removed.
- http/tests/xmlhttprequest/resources/access-control-preflight-request-header-lowercase.py: Added.
- http/tests/xmlhttprequest/resources/access-control-response-with-expose-headers.php: Removed.
- http/tests/xmlhttprequest/resources/access-control-response-with-expose-headers.py: Added.
- http/tests/xmlhttprequest/resources/basic-auth-default/dir1/basic-auth.php: Removed.
- http/tests/xmlhttprequest/resources/basic-auth-default/dir1/basic-auth.py: Added.
- http/tests/xmlhttprequest/resources/basic-auth-default/dir2/basic-auth.php: Removed.
- http/tests/xmlhttprequest/resources/basic-auth-default/dir2/basic-auth.py: Added.
- http/tests/xmlhttprequest/resources/basic-auth-default/dir2/catch.php: Removed.
- http/tests/xmlhttprequest/resources/basic-auth-default/dir2/catch.py: Added.
- http/tests/xmlhttprequest/resources/basic-auth-nouserpass/basic-auth-nouserpass.php: Removed.
- http/tests/xmlhttprequest/resources/basic-auth-nouserpass/basic-auth-nouserpass.py: Added.
- http/tests/xmlhttprequest/resources/basic-auth/access-control-auth-basic.php: Removed.
- http/tests/xmlhttprequest/resources/basic-auth/access-control-auth-basic.py: Added.
- http/tests/xmlhttprequest/resources/basic-auth/basic-auth.php: Removed.
- http/tests/xmlhttprequest/resources/basic-auth/basic-auth.py: Added.
- http/tests/xmlhttprequest/resources/big-response.php: Removed.
- http/tests/xmlhttprequest/resources/big-response.py: Added.
- http/tests/xmlhttprequest/resources/chunked-transfer.php: Removed.
- http/tests/xmlhttprequest/resources/chunked-transfer.py: Added.
- http/tests/xmlhttprequest/resources/cors-preflight-safelisted-headers-responder.php: Removed.
- http/tests/xmlhttprequest/resources/cors-preflight-safelisted-headers-responder.py: Added.
- http/tests/xmlhttprequest/resources/cross-origin-authorization.php: Removed.
- http/tests/xmlhttprequest/resources/cross-origin-authorization.py: Added.
- http/tests/xmlhttprequest/resources/cross-origin-check-cookies.php: Removed.
- http/tests/xmlhttprequest/resources/cross-origin-check-cookies.py: Added.
- http/tests/xmlhttprequest/resources/cross-origin-no-authorization.php: Removed.
- http/tests/xmlhttprequest/resources/cross-origin-no-authorization.py: Added.
- http/tests/xmlhttprequest/resources/cross-origin-preflight-get.php: Removed.
- http/tests/xmlhttprequest/resources/cross-origin-preflight-get.py: Added.
- http/tests/xmlhttprequest/resources/cross-origin-preset-authorization-frame.html:
- http/tests/xmlhttprequest/resources/cross-origin-set-cookies.php: Removed.
- http/tests/xmlhttprequest/resources/cross-origin-set-cookies.py: Added.
- http/tests/xmlhttprequest/resources/custom-headers.php: Removed.
- http/tests/xmlhttprequest/resources/custom-headers.py: Added.
- http/tests/xmlhttprequest/resources/download-header-with-delay.php: Removed.
- http/tests/xmlhttprequest/resources/download-header-with-delay.py: Added.
- http/tests/xmlhttprequest/resources/download-with-delay.php: Removed.
- http/tests/xmlhttprequest/resources/download-with-delay.py: Added.
- http/tests/xmlhttprequest/resources/echo-auth.php: Removed.
- http/tests/xmlhttprequest/resources/echo-auth.py: Added.
- http/tests/xmlhttprequest/resources/echo-host.php: Removed.
- http/tests/xmlhttprequest/resources/echo-host.py: Added.
- http/tests/xmlhttprequest/resources/echo-request-method.php: Removed.
- http/tests/xmlhttprequest/resources/echo-request-method.py: Added.
- http/tests/xmlhttprequest/resources/echo-user-agent.php: Removed.
- http/tests/xmlhttprequest/resources/echo-user-agent.py: Added.
- http/tests/xmlhttprequest/resources/empty-content-type.php: Removed.
- http/tests/xmlhttprequest/resources/empty-content-type.py: Added.
- http/tests/xmlhttprequest/resources/endlessxml.php: Removed.
- http/tests/xmlhttprequest/resources/endlessxml.py: Added.
- http/tests/xmlhttprequest/resources/frame-load-to-cancel.html:
- http/tests/xmlhttprequest/resources/get-content.php: Removed.
- http/tests/xmlhttprequest/resources/get-content.py: Added.
- http/tests/xmlhttprequest/resources/get_method.php: Removed.
- http/tests/xmlhttprequest/resources/get_method.py: Added.
- http/tests/xmlhttprequest/resources/gzip-lorem.php: Removed.
- http/tests/xmlhttprequest/resources/gzip-lorem.py: Added.
- http/tests/xmlhttprequest/resources/headers.php: Removed.
- http/tests/xmlhttprequest/resources/headers.py: Added.
- http/tests/xmlhttprequest/resources/infinite-loop.php: Removed.
- http/tests/xmlhttprequest/resources/infinite-loop.py: Added.
- http/tests/xmlhttprequest/resources/logout/resource.php: Removed.
- http/tests/xmlhttprequest/resources/logout/resource.py: Added.
- http/tests/xmlhttprequest/resources/multipart-post-echo-filenames.php: Removed.
- http/tests/xmlhttprequest/resources/multipart-post-echo-filenames.py: Added.
- http/tests/xmlhttprequest/resources/multipart-post-echo.php: Removed.
- http/tests/xmlhttprequest/resources/multipart-post-echo.py: Added.
- http/tests/xmlhttprequest/resources/no-authenticate-header-401.php: Removed.
- http/tests/xmlhttprequest/resources/no-authenticate-header-401.py: Added.
- http/tests/xmlhttprequest/resources/no-custom-header.php: Removed.
- http/tests/xmlhttprequest/resources/no-custom-header.py: Added.
- http/tests/xmlhttprequest/resources/not-ascii-status.php: Removed.
- http/tests/xmlhttprequest/resources/not-ascii-status.py: Added.
- http/tests/xmlhttprequest/resources/origin-exact-matching-iframe.html:
- http/tests/xmlhttprequest/resources/print-headers.php: Removed.
- http/tests/xmlhttprequest/resources/print-headers.py: Added.
- http/tests/xmlhttprequest/resources/print-referer.php: Removed.
- http/tests/xmlhttprequest/resources/print-referer.py: Added.
- http/tests/xmlhttprequest/resources/re-login/resource.php: Removed.
- http/tests/xmlhttprequest/resources/re-login/resource.py: Added.
- http/tests/xmlhttprequest/resources/redirect-cors-origin-null-pass.php: Removed.
- http/tests/xmlhttprequest/resources/redirect-cors-origin-null-pass.py: Added.
- http/tests/xmlhttprequest/resources/redirect-cors-origin-null.php: Removed.
- http/tests/xmlhttprequest/resources/redirect-cors-origin-null.py: Added.
- http/tests/xmlhttprequest/resources/redirect-cors.php: Removed.
- http/tests/xmlhttprequest/resources/redirect-cors.py: Added.
- http/tests/xmlhttprequest/resources/redirect-cross-origin-tripmine.php: Removed.
- http/tests/xmlhttprequest/resources/redirect-cross-origin-tripmine.py: Added.
- http/tests/xmlhttprequest/resources/redirect_methods.php: Removed.
- http/tests/xmlhttprequest/resources/redirect_methods.py: Added.
- http/tests/xmlhttprequest/resources/remember-bad-password/count-failures.php: Removed.
- http/tests/xmlhttprequest/resources/remember-bad-password/count-failures.py: Added.
- http/tests/xmlhttprequest/resources/status-404-without-body.php: Removed.
- http/tests/xmlhttprequest/resources/status-404-without-body.py: Added.
- http/tests/xmlhttprequest/resources/url-with-credentials/authenticate.php: Removed.
- http/tests/xmlhttprequest/resources/url-with-credentials/authenticate.py: Added.
- http/tests/xmlhttprequest/resources/url-with-credentials/authorize.php: Removed.
- http/tests/xmlhttprequest/resources/url-with-credentials/authorize.py: Added.
- http/tests/xmlhttprequest/resources/xmlhttprequest-in-unload.html:
- http/tests/xmlhttprequest/resources/xmlhttprequest-mimetype-mixed-case.php: Removed.
- http/tests/xmlhttprequest/resources/xmlhttprequest-mimetype-mixed-case.py: Added.
- http/tests/xmlhttprequest/response-access-on-error.html:
- http/tests/xmlhttprequest/response-special-characters.html:
- http/tests/xmlhttprequest/simple-sync.html:
- http/tests/xmlhttprequest/unauthorized-without-authenticate-header.html:
- http/tests/xmlhttprequest/url-with-credentials.html:
- http/tests/xmlhttprequest/workers/resources/endless-response.php: Removed.
- http/tests/xmlhttprequest/workers/resources/endless-response.py: Added.
- http/tests/xmlhttprequest/workers/resources/endless-sync-xhr.js:
- http/tests/xmlhttprequest/xhr-user-agent.html:
- http/tests/xmlhttprequest/xmlhttprequest-50ms-download-dispatch.html:
- http/tests/xmlhttprequest/xmlhttprequest-abort-readyState-shouldDispatchEvent.html:
- http/tests/xmlhttprequest/xmlhttprequest-check-get-readystate-for-404-without-body.html:
- http/tests/xmlhttprequest/xmlhttprequest-contenttype-empty.html:
- http/tests/xmlhttprequest/xmlhttprequest-mimetype-mixed-case.html:
- http/tests/xmlhttprequest/xmlhttprequest-onProgress-open-should-zero-length.html:
- http/tests/xmlhttprequest/xmlhttprequest-open-method-allowed.html:
- http/tests/xmlhttprequest/xmlhttprequest-open-method-case-insensitive.html:
- http/tests/xmlhttprequest/xmlhttprequest-responseURL.html:
- http/tests/xmlhttprequest/xmlhttprequest-sync-no-timers.html:
- http/tests/xmlhttprequest/xmlhttprequest-test-custom-headers.html:
- http/tests/xmlhttprequest/xmlhttprequest-test-send-flag.html:
- imported/blink/http/tests/security/mixedContent/resources/frame-with-insecure-sync-xhr-post.html:
- platform/mac-wk1/http/tests/xmlhttprequest/access-control-preflight-not-successful-expected.txt:
- platform/mac-wk1/http/tests/xmlhttprequest/cross-origin-no-authorization-expected.txt:
- platform/mac-wk1/http/tests/xmlhttprequest/post-blob-content-type-async-expected.txt:
- platform/mac-wk1/http/tests/xmlhttprequest/post-blob-content-type-sync-expected.txt:
- platform/mac-wk1/http/tests/xmlhttprequest/redirect-cross-origin-tripmine-expected.txt:
- platform/win/http/tests/xmlhttprequest/access-control-preflight-not-successful-expected.txt:
- platform/win/http/tests/xmlhttprequest/cross-origin-no-authorization-expected.txt:
- platform/win/http/tests/xmlhttprequest/redirect-cross-origin-tripmine-expected.txt:
- 1:46 PM Changeset in webkit [272547] by
-
- 2 edits in trunk/Source/WebCore
[Mac] Connect MediaSession with MediaRemote and NowPlaying
https://bugs.webkit.org/show_bug.cgi?id=221431
<rdar://problem/74000363>
Unreviewed, fix the NowPlayingInfo encoder after r272445.
- platform/audio/NowPlayingInfo.h:
(WebCore::NowPlayingInfo::encode const): Update the encoder for new fields added.
- 1:40 PM Changeset in webkit [272546] by
-
- 2 edits in trunk/Source/WebKit
Prevent WebProcess to re-enter on sync IPC to the GPUProcess
https://bugs.webkit.org/show_bug.cgi?id=221566
<rdar://problem/74108466>
Reviewed by Ryosuke Niwa.
Prevent WebProcess to re-enter on sync IPC to the GPUProcess, similarly to what we already
do for sync IPC to other processes (Network, UI).
- GPUProcess/GPUConnectionToWebProcess.cpp:
(WebKit::GPUConnectionToWebProcess::GPUConnectionToWebProcess):
- 1:26 PM Changeset in webkit [272545] by
-
- 2 edits in trunk/Source/WebCore
Unreviewed. Tentative build fix for WPE/GTK after r272504.
Somehow r272504 went green in gtk/wpe EWS but failed in post commit
bots.
Remove the WebCore prefix to follow the include scheme used in other
mediastream module files.
- Modules/mediastream/STUNMessageParsing.cpp:
- 1:25 PM Changeset in webkit [272544] by
-
- 3 edits in trunk/Source/WebCore
[Cocoa] Encrypted media segments should generate a parser error if no encrypted media handler is present.
https://bugs.webkit.org/show_bug.cgi?id=221496
Reviewed by Eric Carlson.
The WebM format reader does not support encrypted media parsing, so the parser must generate an error rather
than continuing to parse encrypted media data.
- platform/graphics/cocoa/SourceBufferParserWebM.cpp:
(WebCore::SourceBufferParserWebM::OnElementEnd):
(WebCore::SourceBufferParserWebM::OnTrackEntry):
- platform/graphics/cocoa/SourceBufferParserWebM.h:
- 1:24 PM Changeset in webkit [272543] by
-
- 3 edits1 add in branches/safari-611-branch
Cherry-pick r271570. rdar://problem/74105714
[JSC] GenericArguments<Type>::defineOwnProperty's assumption about error is not correct
https://bugs.webkit.org/show_bug.cgi?id=220693
<rdar://problem/72929171>
Reviewed by Mark Lam.
JSTests:
- stress/freeze-invokes-out-of-memory.js: Added. (shouldThrow):
Source/JavaScriptCore:
Any function taking JSGlobalObject* can cause out-of-memory error potentially. And we have a way to invoke it.
But GenericArguments<Type>::defineOwnProperty didn't assume OutOfMemory error. This patch fixes it.
- runtime/GenericArgumentsInlines.h: (JSC::GenericArguments<Type>::defineOwnProperty):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@271570 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 1:24 PM Changeset in webkit [272542] by
-
- 4 edits in branches/safari-611-branch
Cherry-pick r270664. rdar://problem/74105714
Align DefineOwnProperty method of mapped arguments object with the spec
https://bugs.webkit.org/show_bug.cgi?id=219750
Reviewed by Yusuke Suzuki.
JSTests:
- test262/expectations.yaml: Mark 5 test cases as passing.
Source/JavaScriptCore:
This patch reimplements DefineOwnProperty method to resemble the spec [1] as
closely as possible, aligning JSC with V8 and SpiderMonkey on remaining test262 cases.
Unlike the spec [2], JSC doesn't materialize mapped indices with initial values,
so putDirectIndex() is performed on the first call to handle incomplete descriptors.
Even though there is a possibility to avoid JSObject storage puts for a handful of
super rare descriptors, it's not worth the increased complexity.
[1]: https://tc39.es/ecma262/#sec-arguments-exotic-objects-defineownproperty-p-desc
[2]: https://tc39.es/ecma262/#sec-createmappedargumentsobject (step 15.b)
- runtime/GenericArgumentsInlines.h: (JSC::GenericArguments<Type>::defineOwnProperty):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@270664 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 1:24 PM Changeset in webkit [272541] by
-
- 46 edits in branches/safari-611-branch
Cherry-pick r272345. rdar://problem/74032500
[WebAuthn] Allow one user gesture free prompt for each navigation
https://bugs.webkit.org/show_bug.cgi?id=220897
<rdar://problem/73541303>
Reviewed by Brent Fulgham.
Source/WebCore:
- Modules/webauthn/AuthenticatorCoordinator.cpp: (WebCore::AuthenticatorCoordinator::resetUserGestureRequirement):
- Modules/webauthn/AuthenticatorCoordinator.h:
- Modules/webauthn/AuthenticatorCoordinatorClient.h:
- page/Quirks.cpp:
- page/Quirks.cpp.h:
- replay/UserInputBridge.cpp: (WebCore::UserInputBridge::loadRequest): (WebCore::UserInputBridge::reloadFrame): Adds the ability to reset the user gesture requirement flag for user initiated reloads and quirks.
Source/WebKit:
This is a quirk that only allows certain websites.
Covered by existing tests.
- UIProcess/WebAuthentication/AuthenticatorManager.cpp: (WebKit::AuthenticatorManager::filterTransports const): (WebKit::AuthenticatorManager::runPanel): (WebKit::AuthenticatorManager::runPresenter): Cancel the whole WebAuthn operation if no user gesture is indicated.
- WebProcess/WebAuthentication/WebAuthenticatorCoordinator.cpp: (WebKit::WebAuthenticatorCoordinator::makeCredential): (WebKit::WebAuthenticatorCoordinator::getAssertion):
- WebProcess/WebAuthentication/WebAuthenticatorCoordinator.h: Set a boolean to indicate a free coupon for each navigation.
Tools:
- TestWebKitAPI/Tests/WebKitCocoa/_WKWebAuthenticationPanel.mm: (TestWebKitAPI::TEST):
LayoutTests:
- http/wpt/webauthn/ctap-hid-failure.https-expected.txt:
- http/wpt/webauthn/ctap-hid-success.https-expected.txt:
- http/wpt/webauthn/ctap-nfc-failure.https-expected.txt:
- http/wpt/webauthn/idl.https-expected.txt:
- http/wpt/webauthn/public-key-credential-create-failure-hid-silent.https-expected.txt:
- http/wpt/webauthn/public-key-credential-create-failure-hid.https-expected.txt:
- http/wpt/webauthn/public-key-credential-create-failure-local-silent.https-expected.txt:
- http/wpt/webauthn/public-key-credential-create-failure-local.https-expected.txt:
- http/wpt/webauthn/public-key-credential-create-failure-nfc.https-expected.txt:
- http/wpt/webauthn/public-key-credential-create-failure-u2f-silent.https-expected.txt:
- http/wpt/webauthn/public-key-credential-create-failure-u2f.https-expected.txt:
- http/wpt/webauthn/public-key-credential-create-failure.https-expected.txt:
- http/wpt/webauthn/public-key-credential-create-success-hid.https-expected.txt:
- http/wpt/webauthn/public-key-credential-create-success-local.https-expected.txt:
- http/wpt/webauthn/public-key-credential-create-success-nfc.https-expected.txt:
- http/wpt/webauthn/public-key-credential-create-success-u2f.https-expected.txt:
- http/wpt/webauthn/public-key-credential-get-failure-hid-silent.https-expected.txt:
- http/wpt/webauthn/public-key-credential-get-failure-hid.https-expected.txt:
- http/wpt/webauthn/public-key-credential-get-failure-local-silent.https-expected.txt:
- http/wpt/webauthn/public-key-credential-get-failure-local.https-expected.txt:
- http/wpt/webauthn/public-key-credential-get-failure-nfc.https-expected.txt:
- http/wpt/webauthn/public-key-credential-get-failure-u2f-silent.https-expected.txt:
- http/wpt/webauthn/public-key-credential-get-failure-u2f.https-expected.txt:
- http/wpt/webauthn/public-key-credential-get-failure.https-expected.txt:
- http/wpt/webauthn/public-key-credential-get-success-hid.https-expected.txt:
- http/wpt/webauthn/public-key-credential-get-success-local.https-expected.txt:
- http/wpt/webauthn/public-key-credential-get-success-nfc.https-expected.txt:
- http/wpt/webauthn/public-key-credential-get-success-u2f.https-expected.txt:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@272345 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 1:24 PM Changeset in webkit [272540] by
-
- 21 edits in branches/safari-611-branch
Cherry-pick r272184. rdar://problem/74032500
[WebAuthn] Optimize _WKWebAuthenticationPanelDelegate for native API
https://bugs.webkit.org/show_bug.cgi?id=221125
<rdar://problem/71509141>
Reviewed by Brent Fulgham.
Source/WebKit:
This patch mainly does the following few things:
- It connects the new SPI with the existing mock testing infrastructure such that we can mock test it.
- It adds a new mode in AuthenticatorManager to connect it to the new _WKWebAuthenticationPanelDelegate object.
- It adss a new SPI to _WKWebAuthenticationPanelDelegate: -[panel:requestLAContextForUserVerificationWithCompletionHandler:], and adds a new method within _WKWebAuthenticationAssertionResponse to accept an LAContext from the caller to unlock the keychain.
- It enables -[_WKWebAuthenticationPanel cancel] to use the new cancel method.
Covered by API tests.
- UIProcess/API/APIWebAuthenticationAssertionResponse.h: Accepts a LAContext object.
- UIProcess/API/APIWebAuthenticationPanel.cpp: (API::WebAuthenticationPanel::WebAuthenticationPanel): (API::WebAuthenticationPanel::handleRequest): (API::WebAuthenticationPanel::cancel const): (API::WebAuthenticationPanel::setMockConfiguration):
- UIProcess/API/APIWebAuthenticationPanel.h:
- UIProcess/API/APIWebAuthenticationPanelClient.h: (API::WebAuthenticationPanelClient::requestLAContextForUserVerification const): Adds new SPI and mocking.
- UIProcess/API/Cocoa/_WKWebAuthenticationAssertionResponse.h:
- UIProcess/API/Cocoa/_WKWebAuthenticationAssertionResponse.mm: (-[_WKWebAuthenticationAssertionResponse setLAContext:]): Accepts a LAContext object.
- UIProcess/API/Cocoa/_WKWebAuthenticationPanel.h:
- UIProcess/API/Cocoa/_WKWebAuthenticationPanel.mm: (-[_WKWebAuthenticationPanel setMockConfiguration:]):
- UIProcess/API/Cocoa/_WKWebAuthenticationPanelForTesting.h: Adds new SPI and mocking.
- UIProcess/WebAuthentication/AuthenticatorManager.cpp: (WebKit::AuthenticatorManager::handleRequest): (WebKit::AuthenticatorManager::enableModernWebAuthentication): (WebKit::AuthenticatorManager::enableNativeSupport): (WebKit::AuthenticatorManager::authenticatorAdded): (WebKit::AuthenticatorManager::requestLAContextForUserVerification): (WebKit::AuthenticatorManager::runPresenter): (WebKit::AuthenticatorManager::dispatchPanelClientCall const):
- UIProcess/WebAuthentication/AuthenticatorManager.h: Adds a new mode to power the native API.
- UIProcess/WebAuthentication/Cocoa/WebAuthenticationPanelClient.h:
- UIProcess/WebAuthentication/Cocoa/WebAuthenticationPanelClient.mm: (WebKit::WebAuthenticationPanelClient::WebAuthenticationPanelClient): (WebKit::WebAuthenticationPanelClient::requestLAContextForUserVerification const): Accepts a LAContext object.
- UIProcess/WebAuthentication/Mock/MockLocalConnection.h:
- UIProcess/WebAuthentication/Mock/MockLocalConnection.mm: (WebKit::MockLocalConnection::verifyUser): Adds new mocking functions.
- UIProcess/WebAuthentication/WebAuthenticationRequestData.h: Adds the new weak panel.
Tools:
- TestWebKitAPI/Tests/WebKitCocoa/_WKWebAuthenticationPanel.mm: (-[TestWebAuthenticationPanelDelegate panel:selectAssertionResponse:source:completionHandler:]): (-[TestWebAuthenticationPanelDelegate panel:requestLAContextForUserVerificationWithCompletionHandler:]): (TestWebKitAPI::WebCore::reset): (TestWebKitAPI::TEST):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@272184 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 1:24 PM Changeset in webkit [272539] by
-
- 2 edits in branches/safari-611-branch/Source/JavaScriptCore
Cherry-pick r271767. rdar://problem/74105427
Obj-C API should do correct type checks when using a 32-bit address space
https://bugs.webkit.org/show_bug.cgi?id=220880
<rdar://72370334>
Reviewed by Tadeu Zagallo.
- API/JSValue.mm: (-[JSValue isNull]): (-[JSValue isBoolean]): (-[JSValue isNumber]): (-[JSValue isString]):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@271767 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 1:24 PM Changeset in webkit [272538] by
-
- 6 edits in branches/safari-611-branch
Cherry-pick r270665. rdar://problem/74105427
Removing unnecessary locking from JSValue API functions
https://bugs.webkit.org/show_bug.cgi?id=219723
Reviewed by Filip Pizlo.
PerformanceTests:
Print an error message when benchmarks fail to run and add option to change
the configuration used to build the benchmarks.
- APIBench/api-bench:
Source/JavaScriptCore:
Remove the unnecessary locking from the JSValueIs* and JSValueMake* API functions
that only work on primitives. Also remove the unnecessary method dispatching and
call from the -[JSValue is*] methods.
This improves the APIBench score by another ~8% since these are such common operations.
Here are the results: (Baseline includes https://bugs.webkit.org/show_bug.cgi?id=219663)
CURRENT_API: Baseline Change
----------------------------------------
RichardsMostlyC: 74ms 60ms
RichardsMostlyObjC: 304ms 300ms
RichardsMostlySwift: 305ms 293ms
RichardsSomeC: 97ms 77ms
RichardsSomeObjC: 158ms 159ms
RichardsSomeSwift: 202ms 198ms
UPCOMING_API: Baseline Change
----------------------------------------
RichardsMostlyC: 23ms 19ms
RichardsMostlyObjC: 282ms 282ms
RichardsMostlySwift: 280ms 282ms
RichardsSomeC: 95ms 76ms
RichardsSomeObjC: 157ms 156ms
RichardsSomeSwift: 202ms 197ms
----------------------------------------
Score: 33.6404 36.4006
- API/APICast.h: (toRef):
- API/JSValue.mm: (-[JSValue isUndefined]): (-[JSValue isNull]): (-[JSValue isBoolean]): (-[JSValue isNumber]): (-[JSValue isString]): (-[JSValue isObject]): (-[JSValue isSymbol]):
- API/JSValueRef.cpp: (JSValueGetType): (JSValueIsUndefined): (JSValueIsNull): (JSValueIsBoolean): (JSValueIsNumber): (JSValueIsString): (JSValueIsObject): (JSValueIsSymbol): (JSValueMakeUndefined): (JSValueMakeNull): (JSValueMakeBoolean): (JSValueMakeNumber):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@270665 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 1:04 PM Changeset in webkit [272537] by
-
- 6 edits2 adds in branches/safari-611-branch
Cherry-pick r272422. rdar://problem/74033021
Make sure click attribution is processed in case of redirected kept alive loads
https://bugs.webkit.org/show_bug.cgi?id=221453
<rdar://problem/70896640>
Reviewed by John Wilander.
Source/WebCore:
Test: http/tests/privateClickMeasurement/attribution-conversion-through-fetch-keepalive.html
- loader/DocumentLoader.cpp: (WebCore::DocumentLoader::addSubresourceLoader): Update assertion to cope with keep alive fetches which are similar to beacon/ping loads.
Source/WebKit:
- NetworkProcess/NetworkResourceLoader.cpp: (WebKit::NetworkResourceLoader::continueWillSendRedirectedRequest): Move the click attribution processing before kept alive check.
LayoutTests:
- http/tests/privateClickMeasurement/attribution-conversion-through-fetch-keepalive-expected.txt: Added.
- http/tests/privateClickMeasurement/attribution-conversion-through-fetch-keepalive.html: Added.
- http/tests/privateClickMeasurement/resources/redirectToConversion.php:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@272422 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 1:04 PM Changeset in webkit [272536] by
-
- 9 edits in branches/safari-611-branch
Cherry-pick r272376. rdar://problem/74032694
REGRESSION(r267763) Network process launches earlier than before
https://bugs.webkit.org/show_bug.cgi?id=221384
<rdar://problem/73507706>
Patch by Alex Christensen <achristensen@apple.com> on 2021-02-04
Reviewed by Chris Dumez.
Source/WebKit:
Before r267763 we could have an app launch, allocate a WKWebView, and set _resourceLoadStatisticsEnabled
all without having a network process launch.
When setting _resourceLoadStatisticsEnabled, we don't need to launch a network process if we haven't already
because when we do, WebsiteDataStore::parameters will send the correct value. I added a test that verifies this doesn't
launch the network process if it hasn't already been launched.
We also don't need to update the process assertion or the process suspension state if there is no network process.
sendNetworkProcessXPCEndpointToWebProcess is also called when opening Safari on iOS and would be the next thing to
unnecessarily launch the network process during app initialization. I manually verified that if we add an early return
if there is no network process yet, we do send the XPC endpoint to the web process when the network process does launch
through the call site in sendNetworkProcessXPCEndpointToAllWebProcesses.
I verified on my phone that this is the minimal change needed for Safari on iOS to not launch the network process before
application:didFinishLaunchingWithOptions: is called as it did before r267763.
- UIProcess/Cocoa/WebProcessPoolCocoa.mm: (WebKit::WebProcessPool::updateProcessSuppressionState):
- UIProcess/WebProcessPool.cpp: (WebKit::WebProcessPool::updateProcessAssertions):
- UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm: (WebKit::WebsiteDataStore::sendNetworkProcessXPCEndpointToWebProcess):
- UIProcess/WebsiteData/WebsiteDataStore.cpp: (WebKit::WebsiteDataStore::setResourceLoadStatisticsEnabled):
- UIProcess/WebsiteData/WebsiteDataStore.h: (WebKit::WebsiteDataStore::networkProcessIfExists):
Tools:
- TestWebKitAPI/Tests/WebKitCocoa/NetworkProcess.mm: (TEST):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@272376 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 1:03 PM Changeset in webkit [272535] by
-
- 15 edits2 adds in branches/safari-611-branch
Cherry-pick r272368. rdar://problem/74032667
[macOS] Selecting a date on datetime-local inputs unexpectedly adds second and millisecond fields
https://bugs.webkit.org/show_bug.cgi?id=221350
<rdar://problem/73943517>
Reviewed by Devin Rousso.
Source/WebCore:
Currently, when setting the value of a datetime-local input using the
picker, the length of the current value of the input is used to determine
whether or not to return a value with second/millisecond precision.
This is approach is incorrect, since the value could be empty, while the
step attribute can specify second/millisecond precision. To fix, ensure
the DateTimeChooserParameters knows whether the input has second and
millisecond fields. That information can then be used by the UIProcess
to return a correctly formatted value to the WebProcess.
Test: fast/forms/datetimelocal/datetimelocal-editable-components/datetimelocal-choose-value-from-picker.html
- html/BaseDateAndTimeInputType.cpp: (WebCore::BaseDateAndTimeInputType::handleDOMActivateEvent): (WebCore::BaseDateAndTimeInputType::didChangeValueFromControl): (WebCore::BaseDateAndTimeInputType::setupDateTimeChooserParameters):
Moved this method from HTMLInputElement to the input type, since it is
specific to date/time input types, and to leverage the existing
shouldHaveSecondField and shouldHaveMillisecondField methods when
building the DateTimeChooserParameters.
- html/BaseDateAndTimeInputType.h:
- html/HTMLInputElement.cpp:
- html/HTMLInputElement.h:
- platform/DateTimeChooserParameters.h:
Added hasSecondField and hasMillisecondField members, so that the UIProcess
knows whether or not to return a string that contains seconds/milliseconds.
(WebCore::DateTimeChooserParameters::encode const):
(WebCore::DateTimeChooserParameters::decode):
Source/WebKit:
- UIProcess/mac/WebDateTimePickerMac.mm: (-[WKDateTimePicker updatePicker:]): (-[WKDateTimePicker dateFormatStringForType:]):
Do not use the length of the value to determine whether or seconds and
milliseconds should be present, since the value can be empty.
Instead, use the new information in DateTimeChooserParameters, matching
the visual appearance of the input.
Tools:
Added a method to UIScriptController to simulate selecting a date using
the presented date picker.
- TestRunnerShared/UIScriptContext/Bindings/UIScriptController.idl:
- TestRunnerShared/UIScriptContext/UIScriptController.h: (WTR::UIScriptController::chooseDateTimePickerValue):
- WebKitTestRunner/mac/UIScriptControllerMac.h:
- WebKitTestRunner/mac/UIScriptControllerMac.mm: (WTR::UIScriptControllerMac::chooseDateTimePickerValue):
LayoutTests:
Added a test to to verify that the presence of seconds and milliseconds
in the value of a datetime-local input after selecting a date using the
picker matches the configuration.
- fast/forms/datetimelocal/datetimelocal-editable-components/datetimelocal-choose-value-from-picker-expected.txt: Added.
- fast/forms/datetimelocal/datetimelocal-editable-components/datetimelocal-choose-value-from-picker.html: Added.
- resources/ui-helper.js: (window.UIHelper.chooseDateTimePickerValue):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@272368 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 1:03 PM Changeset in webkit [272534] by
-
- 7 edits in branches/safari-611-branch/Source
Cherry-pick r272353. rdar://problem/74105476
[Cocoa] WebM audio goes out-of-sync or stops playing after a seek
https://bugs.webkit.org/show_bug.cgi?id=221354
<rdar://73471690>
Reviewed by Eric Carlson.
Source/WebCore:
Add a new flag to MediaSample indicating whether the sample has any information about whether
it is an sync-sample or not, and expose that through a new method hasSyncInfo().
Drive-by Fix: Force all video samples to contain a sample attachments dictionary, whether or
not the sample is sync.
Drive-by Fix #2: SampleMap does an equality comparison for
flags() == MediaSample::IsSync.
This breaks as soon as any sample has bothIsSyncand any other flag. Replace with a specific
call toisSync()instead.
- platform/MediaSample.h:
- platform/graphics/avfoundation/objc/MediaSampleAVFObjC.mm: (WebCore::doesCMSampleBufferHaveSyncInfo): (WebCore::MediaSampleAVFObjC::flags const):
- platform/graphics/cocoa/SourceBufferParserWebM.cpp: (WebCore::SourceBufferParserWebM::VideoTrackData::createSampleBuffer):
Source/WebKit:
The MTPluginFormatReader will attempt to determine whether an audio sample needs priming frames
by querying for, among other things, its "syncInfo". Previously, we had just presumed all samples
without a sample attachment dictionary were sync samples, and reported them as such from
MediaSampleCursor, but this causes the format reader plugin to walk backwards all the way to the
beginning of the audio track looking for priming samples. Instead, since the sample in question
has no sync info (it was synthesized by MediaSample), return kCMBaseObjectError_ValueNotAvailable
in this case, which causes the plugin format reader to assume all samples are both sync and do
not require explicit priming frames.
- Shared/mac/MediaFormatReader/MediaSampleCursor.cpp: (WebKit::MediaSampleCursor::getSampleTiming const): (WebKit::MediaSampleCursor::getSyncInfo const):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@272353 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 1:03 PM Changeset in webkit [272533] by
-
- 3 edits in branches/safari-611-branch/Source/JavaScriptCore
Cherry-pick r272349. rdar://problem/74104450
[JSC] Insert PhantomLocal just before SetLocal for |this| to ensure liveness
https://bugs.webkit.org/show_bug.cgi?id=221353
<rdar://problem/70373862>
Reviewed by Saam Barati.
Let's consider the following case before SSA conversion.
BB#0:
SetArgumentDefinitely(this)
...
@a: SomethingFun()
MoveHint(@a, this)
SetLocal(@a, this)
Jump #1
BB#1:
...
ExitOK (this point)
...
@b: SomethingFun()
MoveHint(@b, this)
SetLocal(@b, this)
...
BB#2: (Catch entry point)
...
@c: SetArgumentDefinitely(this)
...
Jump #1
We have two entry points. And BB#0 sets @a to |this| while BB#2 does not update |this|, so it is using @c.
We have several patterns we can store |this|: arrow functions' |this| loading, derived constructors' |this| update. So we can see
SetLocal(@x, this) at arbitrary code points in CodeBlocks having them.
The problem is that DFG strongly assumed that |this| is initialized in the root basic block only once. So usually, we do not insert Flush/PhantomLocal for |this|.
But this is problematic when we can store |this| at arbitrary basic blocks since we do not properly insert Flush/PhantomLocal(this) in BB#1's just before Store.
Not inserting that in the above case makes |this| dead in BB#1's head liveness. Then we do not properly insert Phi(BB#0, BB#2) for |this|.
This is OK for non |this| locals since literally that local is not used at all in BB#1. But |this| is special since it is always live in bytecode.
So, OSR availability will be broken in the above graph: at ExitOK place, |this| must be live in bytecode. But |this| is pointing ConflictingFlush since
BB#0 says @a and BB#2 says @c while we do not have Phi.
The problem is that we do not keep liveness of |this| properly in BB#1. When setting a new |this|, we insert PhantomLocal to keep liveness so that appropriate Phi
will be inserted when two predecessors have different DFG nodes for |this|, and this graph can appear in arrow functions, derived constructors, and code with catch.
- dfg/DFGByteCodeParser.cpp: (JSC::DFG::ByteCodeParser::setArgument):
- dfg/DFGVariableAccessDataDump.cpp: (JSC::DFG::VariableAccessDataDump::dump const):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@272349 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 1:03 PM Changeset in webkit [272532] by
-
- 9 edits in branches/safari-611-branch/Source/WebKit
Cherry-pick r272346. rdar://problem/74105218
PCM: earliestTimeToSend should be treated as an independent time value, not relative to timeOfAdClick
https://bugs.webkit.org/show_bug.cgi?id=221303
<rdar://problem/73902668>
Reviewed by John Wilander.
r270136 assumed that PCM's earliestTimeToSend attribute was the
difference between timeOfAdClick and when the attribution should be
sent. As a result, it began each new browser session by adjusting
this value based on the amount of time the session was closed.
In reality, earliestTimeToSend is a raw secondsSinceEpoch() value, so we don't
need any adjustment after a new session.
No new tests, this is covered by
http/tests/privateClickMeasurement/expired-attribution-report-gets-sent-on-session-start.html
now that the corresponding test SPI has been updated.
- NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp: (WebKit::createTableQueries): (WebKit::ResourceLoadStatisticsDatabaseStore::ResourceLoadStatisticsDatabaseStore): (WebKit::ResourceLoadStatisticsDatabaseStore::createSchema): (WebKit::ResourceLoadStatisticsDatabaseStore::destroyStatements): (WebKit::ResourceLoadStatisticsDatabaseStore::markAttributedPrivateClickMeasurementsAsExpiredForTesting): Update the testing SPI to insert an expired time of now minus one hour as the earliestTimeToSend.
(WebKit::ResourceLoadStatisticsDatabaseStore::updateTimerLastFired): Deleted.
(WebKit::ResourceLoadStatisticsDatabaseStore::timerLastFired): Deleted.
(WebKit::ResourceLoadStatisticsDatabaseStore::updatePrivateClickMeasurementAttributionTimes): Deleted.
- NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.h:
- NetworkProcess/Classifier/ResourceLoadStatisticsMemoryStore.h:
- NetworkProcess/Classifier/ResourceLoadStatisticsStore.h:
- NetworkProcess/Classifier/WebResourceLoadStatisticsStore.cpp: (WebKit::WebResourceLoadStatisticsStore::updateTimerLastFired): Deleted.
- NetworkProcess/Classifier/WebResourceLoadStatisticsStore.h:
- NetworkProcess/PrivateClickMeasurementManager.cpp: (WebKit::PrivateClickMeasurementManager::firePendingAttributionRequests): (WebKit::PrivateClickMeasurementManager::updateTimerLastFired): Deleted.
- NetworkProcess/PrivateClickMeasurementManager.h:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@272346 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 1:03 PM Changeset in webkit [272531] by
-
- 2 edits in branches/safari-611-branch/Source/WebKit
Cherry-pick r272335. rdar://problem/74032694
REGRESSION (r270392): Launch time regression under IOSurface::maximumSize()
https://bugs.webkit.org/show_bug.cgi?id=221346
<rdar://problem/73507706>
Reviewed by Sam Weinig.
- UIProcess/Cocoa/WebProcessPoolCocoa.mm: (WebKit::WebProcessPool::platformInitializeWebProcess): Scope r270392 to only the case where it is needed, when DOM rendering in the GPU process is enabled and the Web Content process does not have access to IOSurface, because it causes a small launch time regression.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@272335 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 1:03 PM Changeset in webkit [272530] by
-
- 2 edits in branches/safari-611-branch/Source/JavaScriptCore
Cherry-pick r272330. rdar://problem/74032526
[AppleWin 32bit][LLInt] LLIntData.h(104) : warning C4172: returning address of local variable or temporary: id
https://bugs.webkit.org/show_bug.cgi?id=220714
Reviewed by Mark Lam.
This patch fixes LLInt build when ENABLE(COMPUTED_GOTO_OPCODES) is false.
- llint/LLIntData.h: (JSC::LLInt::getOpcode): (JSC::LLInt::getOpcodeWide16): (JSC::LLInt::getOpcodeWide32): (JSC::LLInt::getOpcodeAddress): (JSC::LLInt::getOpcodeWide16Address): (JSC::LLInt::getOpcodeWide32Address): (JSC::LLInt::getCodePtr): (JSC::LLInt::getWide16CodePtr): (JSC::LLInt::getWide32CodePtr):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@272330 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 1:03 PM Changeset in webkit [272529] by
-
- 5 edits in branches/safari-611-branch
Cherry-pick r272326. rdar://problem/74105521
[iOS] delay
+[BKSMousePointerService sharedInstance]so that it doesn't impact launch perf
https://bugs.webkit.org/show_bug.cgi?id=221298
Reviewed by Geoffrey Garen.
Source/WebKit:
- UIProcess/ios/WKMouseDeviceObserver.h:
- UIProcess/ios/WKMouseDeviceObserver.mm: (-[WKMouseDeviceObserver init]): Added. (-[WKMouseDeviceObserver startWithCompletionHandler:]): Added. (-[WKMouseDeviceObserver start]): (-[WKMouseDeviceObserver stop]): (-[WKMouseDeviceObserver stopWithCompletionHandler:]): Added.
Tools:
- TestWebKitAPI/Tests/WebKitCocoa/iOSMouseSupport.mm: (iOSMouseSupport.MouseInitiallyDisconnected): (iOSMouseSupport.MouseInitiallyConnected): (iOSMouseSupport.MouseLaterDisconnected): (iOSMouseSupport.MouseLaterConnected):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@272326 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 1:03 PM Changeset in webkit [272528] by
-
- 2 edits in branches/safari-611-branch/Source/WebCore
Cherry-pick r272303. rdar://problem/74105623
Animation of "rotate" or "scale" property does not correctly account for static "translate" property
https://bugs.webkit.org/show_bug.cgi?id=219894
<rdar://problem/72342798>
Unreviewed build fix for Mojave.
- platform/graphics/ca/GraphicsLayerCA.cpp: (WebCore::GraphicsLayerCA::updateAnimations):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@272303 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 1:03 PM Changeset in webkit [272527] by
-
- 4 edits in branches/safari-611-branch/Source
Cherry-pick r272234. rdar://problem/74105068
[macOS] Force loading the HEIF reader symbols before transcoding any HEIF image
https://bugs.webkit.org/show_bug.cgi?id=221191
<rdar://problem/70942158>
Reviewed by Tim Horton.
Source/WebCore:
Transcoding the HEIF images requires loading the HEIF reader symbols which
is not happening in macOS Catalina. A workaround for this bug in WebKit is
to call CGImageSourceGetCount() for the CGImageSource of the HEIF image.
- platform/graphics/cg/ImageUtilitiesCG.cpp: (WebCore::transcodeImage):
Source/WTF:
Add a HAVE macro for the fix of <rdar://problem/59589723>.
- wtf/PlatformHave.h:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@272234 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 1:03 PM Changeset in webkit [272526] by
-
- 1 edit3 adds in branches/safari-611-branch/Source/WebInspectorUI
Cherry-pick r272232. rdar://problem/74032620
Web Inspector: Add another Protocol Version (iOS 14.5)
https://bugs.webkit.org/show_bug.cgi?id=221288
<rdar://66351870>
Reviewed by Devin Rousso.
- UserInterface/Protocol/Legacy/14.5/InspectorBackendCommands.js: Added.
- Versions/Inspector-iOS-14.5.json: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@272232 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 1:03 PM Changeset in webkit [272525] by
-
- 2 edits in branches/safari-611-branch/Source/WebCore
Cherry-pick r272214. rdar://problem/74032646
Unreviewed, address post-landing review comment by Darin Adler for r272211.
- platform/network/cocoa/NetworkStorageSessionCocoa.mm: (WebCore::cookiesForURL):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@272214 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 1:03 PM Changeset in webkit [272524] by
-
- 2 edits in branches/safari-611-branch/Source/WebKit
Cherry-pick r272212. rdar://problem/74032657
Make sure NetworkRTCProvider stays valid for all NetworkRTCSocketCocoa callbacks
https://bugs.webkit.org/show_bug.cgi?id=221249
<rdar://problem/72671547>
Reviewed by Eric Carlson.
Make the connection callback take a ref of the NetworkRTCProvider.
The ref cycle will break at NetworkConnectionToWebProcess destruction since it will call NetworkRTCProvider::close
which deletes all sockets owning the connection.
- NetworkProcess/webrtc/NetworkRTCSocketCocoa.mm: (WebKit::NetworkRTCSocketCocoa::NetworkRTCSocketCocoa):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@272212 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 1:03 PM Changeset in webkit [272523] by
-
- 3 edits in branches/safari-611-branch/Source/WebCore
Cherry-pick r272211. rdar://problem/74032646
Crash under NetworkStorageSession::cookiesForSession()
https://bugs.webkit.org/show_bug.cgi?id=221227
<rdar://71975008>
Reviewed by Geoffrey Garen.
Retain NSArray of cookies in NetworkStorageSession::cookiesForSession() for clearer lifetime
management. This is a speculative fix for <rdar://71975008>.
- platform/network/NetworkStorageSession.h:
- platform/network/cocoa/NetworkStorageSessionCocoa.mm: (WebCore::NetworkStorageSession::httpCookies const): (WebCore::cookiesForURL): (WebCore::NetworkStorageSession::httpCookiesForURL const): (WebCore::NetworkStorageSession::cookiesForURL const): (WebCore::NetworkStorageSession::cookiesForSession const): (WebCore::NetworkStorageSession::getRawCookies const): (WebCore::NetworkStorageSession::deleteCookie const): (WebCore::NetworkStorageSession::getHostnamesWithCookies): (WebCore::NetworkStorageSession::deleteCookiesForHostnames):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@272211 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 1:03 PM Changeset in webkit [272522] by
-
- 4 edits4 adds in branches/safari-611-branch
Cherry-pick r272201. rdar://problem/74105623
Animation of "rotate" or "scale" property does not correctly account for static "translate" property
https://bugs.webkit.org/show_bug.cgi?id=219894
<rdar://problem/72342798>
Reviewed by Dean Jackson.
Source/WebCore:
The CSS transform-related properties are designed to be applied in a specific order, guaranteeing that
"translate" is applied prior to both "scale" and "rotate". Since Core Animation has no concept of these
individual transform-related CSS properties, we use additive Core Animation animations to apply the value
of each CSS property, using non-interpolating animations set to start at the earliest time in the Core
Animation timeline and lasting forever to set the value of any underlying, non-animated value.
As such, in an example where an element would have a static "translate" property set as well as a "rotate"
or "scale" animation, we would yield the following animations, added in this order:
- non-interpolating animation beginning at 1s setting the identity transform (the "clean slate" animation)
- interpolating animation beginning at a time > 1s for the "scale" or "rotate" animation
- non-interpolating animation beginning at 1s setting the "translate" value
Note that animations 2 and 3 are additive and thus added in the inverse order that we expect animations to be
applied. Due to a peculiarity of Core Animation (introduced in macOS 10.15), additive animations are applied
in an inverse order, hence the build-time flag CA_WHERE_ADDITIVE_TRANSFORMS_ARE_REVERSED.
However, Core Animation will first sort all animations based on their begin time, only respecting the order
in which animations are added when their begin time is equal. This means that in practice, our animations were
applied in the order 1, 3, 2, and thus the "translate" property was applied after the "rotate" or "scale" animation.
In order to address this, we now create a CAAnimationGroup for each set of animations created for a given CSS
property. Each of these groups shares the same begin time, 1s, to allow for "forever" non-interpolating animations
to be applied, but also to set a common base time for animations to be applied in the expected order.
Tests: webanimations/relative-ordering-of-translate-and-rotate-properties-accelerated.html
webanimations/relative-ordering-of-translate-and-scale-properties-accelerated.html
- platform/graphics/ca/GraphicsLayerCA.cpp: (WebCore::GraphicsLayerCA::updateAnimations):
- platform/graphics/ca/GraphicsLayerCA.h: (WebCore::GraphicsLayerCA::LayerPropertyAnimation::computedBeginTime const):
LayoutTests:
Add two new tests that ensure that translate is indeed applied before rotate and scale.
- webanimations/relative-ordering-of-translate-and-rotate-properties-accelerated-expected.html: Added.
- webanimations/relative-ordering-of-translate-and-rotate-properties-accelerated.html: Added.
- webanimations/relative-ordering-of-translate-and-scale-properties-accelerated-expected.html: Added.
- webanimations/relative-ordering-of-translate-and-scale-properties-accelerated.html: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@272201 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 1:03 PM Changeset in webkit [272521] by
-
- 8 edits in branches/safari-611-branch/Source/JavaScriptCore
Cherry-pick r272191. rdar://problem/74032517
Sign m_offset in AssemblerLabel
https://bugs.webkit.org/show_bug.cgi?id=221237
Reviewed by Mark Lam.
- assembler/ARM64Assembler.h: (JSC::ARM64Assembler::labelForWatchpoint): (JSC::ARM64Assembler::label): (JSC::ARM64Assembler::getRelocatedAddress): (JSC::ARM64Assembler::getDifferenceBetweenLabels): (JSC::ARM64Assembler::getCallReturnOffset): (JSC::ARM64Assembler::linkJump): (JSC::ARM64Assembler::addressOf):
- assembler/ARMv7Assembler.h: (JSC::ARMv7Assembler::labelForWatchpoint): (JSC::ARMv7Assembler::label): (JSC::ARMv7Assembler::getRelocatedAddress): (JSC::ARMv7Assembler::getDifferenceBetweenLabels): (JSC::ARMv7Assembler::getCallReturnOffset): (JSC::ARMv7Assembler::linkJump): (JSC::ARMv7Assembler::linkCall): (JSC::ARMv7Assembler::linkPointer):
- assembler/AbstractMacroAssembler.h: (JSC::AbstractMacroAssembler::Jump::link const): (JSC::AbstractMacroAssembler::Jump::linkTo const):
- assembler/AssemblerBuffer.h: (JSC::AssemblerLabel::AssemblerLabel): (JSC::AssemblerLabel::operator=): (JSC::AssemblerLabel::isSet const): (JSC::AssemblerLabel::labelAtOffset const): (JSC::AssemblerLabel::operator== const): (JSC::AssemblerLabel::offset const): (JSC::AssemblerLabel::setOffset):
- assembler/LinkBuffer.h: (JSC::LinkBuffer::offsetOf): (JSC::LinkBuffer::applyOffset):
- assembler/MIPSAssembler.h: (JSC::MIPSAssembler::labelForWatchpoint): (JSC::MIPSAssembler::label): (JSC::MIPSAssembler::getRelocatedAddress): (JSC::MIPSAssembler::getDifferenceBetweenLabels): (JSC::MIPSAssembler::getCallReturnOffset): (JSC::MIPSAssembler::linkJump): (JSC::MIPSAssembler::linkCall): (JSC::MIPSAssembler::linkPointer):
- assembler/X86Assembler.h: (JSC::X86Assembler::labelForWatchpoint): (JSC::X86Assembler::label): (JSC::X86Assembler::linkJump): (JSC::X86Assembler::linkCall): (JSC::X86Assembler::linkPointer): (JSC::X86Assembler::getCallReturnOffset): (JSC::X86Assembler::getRelocatedAddress): (JSC::X86Assembler::getDifferenceBetweenLabels):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@272191 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 1:03 PM Changeset in webkit [272520] by
-
- 6 edits in branches/safari-611-branch/Source
Cherry-pick r272188. rdar://problem/74032553
[Cocoa] Disable interstitial events on AVPlayerItem.
https://bugs.webkit.org/show_bug.cgi?id=221215
Reviewed by Eric Carlson.
Source/WebCore:
- platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm: (WebCore::MediaPlayerPrivateAVFoundationObjC::createAVPlayerItem):
Source/WebCore/PAL:
- pal/spi/cocoa/AVFoundationSPI.h:
Source/WTF:
- wtf/PlatformHave.h:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@272188 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 1:02 PM Changeset in webkit [272519] by
-
- 2 edits in branches/safari-611-branch/Source/WebCore
Cherry-pick r272185. rdar://problem/74032429
REGRESSION (iOS 14.2): Can't play html audio with muted attribute
https://bugs.webkit.org/show_bug.cgi?id=219295
<rdar://problem/71863148>
Reviewed by Eric Carlson.
In r266844, we added a power-saving feature that would disable the audio decoder for initially
muted media elements. However, this caused an issue for .mp3 files, where the duration of the
track is computed by the decoder, and not the parser. Since the goal of the power-saving feature
was to reduce the CPU cost for decoding a muted audio track on a <video> element, partially
revert this change by making it apply only to <video> elements and not <audio> ones.
- platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm: (WebCore::MediaPlayerPrivateAVFoundationObjC::createAVPlayer):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@272185 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 1:02 PM Changeset in webkit [272518] by
-
- 2 edits in branches/safari-611-branch/Source/WebInspectorUI
Cherry-pick r272183. rdar://problem/74105888
REGRESSION(r270637): Web Inspector: Filtering field no longer shows in Computed panel
https://bugs.webkit.org/show_bug.cgi?id=221001
Reviewed by Devin Rousso.
The filter bar keeps separate filters for the Rules and Computed panes. It is therefor incorrect to hide the
entire filter bar when showing multiple sidebars, instead hide the controls that have a common state between the
two panels (the Classes list).
- UserInterface/Views/GeneralStyleDetailsSidebarPanel.css: (.multi-sidebar.showing-multiple > .sidebar > .panel.details:not(.style-rules) > .content > .pseudo-classes,):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@272183 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 1:02 PM Changeset in webkit [272517] by
-
- 11 edits in branches/safari-611-branch/Source
Cherry-pick r272178. rdar://problem/74105398
Allow support for CAAnimationGroup
https://bugs.webkit.org/show_bug.cgi?id=221209
Reviewed by Dean Jackson, Sam Weinig and Simon Fraser.
In order to fix bug 219894, we need to use Core Animation's CAAnimationGroup and its
Source/WebCore:
setAnimations() method. This patch adds a new "Group" type to PlatformCAAnimation and
platform-specific integration for Windows and Cocoa ports.
- platform/graphics/ca/PlatformCAAnimation.cpp: (WebCore::operator<<):
- platform/graphics/ca/PlatformCAAnimation.h:
- platform/graphics/ca/cocoa/PlatformCAAnimationCocoa.h:
- platform/graphics/ca/cocoa/PlatformCAAnimationCocoa.mm: (WebCore::PlatformCAAnimationCocoa::PlatformCAAnimationCocoa): (WebCore::PlatformCAAnimationCocoa::keyPath const): (WebCore::PlatformCAAnimationCocoa::setTimingFunction): (WebCore::PlatformCAAnimationCocoa::isAdditive const): (WebCore::PlatformCAAnimationCocoa::setAdditive): (WebCore::PlatformCAAnimationCocoa::valueFunction const): (WebCore::PlatformCAAnimationCocoa::setValueFunction): (WebCore::PlatformCAAnimationCocoa::setFromValue): (WebCore::PlatformCAAnimationCocoa::copyFromValueFrom): (WebCore::PlatformCAAnimationCocoa::setToValue): (WebCore::PlatformCAAnimationCocoa::copyToValueFrom): (WebCore::PlatformCAAnimationCocoa::setValues): (WebCore::PlatformCAAnimationCocoa::copyValuesFrom): (WebCore::PlatformCAAnimationCocoa::setKeyTimes): (WebCore::PlatformCAAnimationCocoa::copyKeyTimesFrom): (WebCore::PlatformCAAnimationCocoa::setTimingFunctions): (WebCore::PlatformCAAnimationCocoa::copyTimingFunctionsFrom): (WebCore::PlatformCAAnimationCocoa::setAnimations): (WebCore::PlatformCAAnimationCocoa::copyAnimationsFrom):
- platform/graphics/ca/cocoa/PlatformCALayerCocoa.mm: (WebCore::PlatformCALayerCocoa::addAnimationForKey): (WebCore::PlatformCALayerCocoa::animationForKey):
- platform/graphics/ca/win/PlatformCAAnimationWin.cpp: (PlatformCAAnimationWin::PlatformCAAnimationWin): (PlatformCAAnimationWin::setAnimations): (PlatformCAAnimationWin::copyAnimationsFrom):
- platform/graphics/ca/win/PlatformCAAnimationWin.h:
Source/WebKit:
setAnimations() method. Add support for the new "Group" PlatformCAAnimation type for
the remote animations.
- WebProcess/WebPage/RemoteLayerTree/PlatformCAAnimationRemote.h:
- WebProcess/WebPage/RemoteLayerTree/PlatformCAAnimationRemote.mm: (WebKit::PlatformCAAnimationRemote::Properties::encode const): (WebKit::PlatformCAAnimationRemote::Properties::decode): (WebKit::PlatformCAAnimationRemote::copy const): (WebKit::PlatformCAAnimationRemote::setAnimations): (WebKit::PlatformCAAnimationRemote::copyAnimationsFrom): (WebKit::createAnimation): (WebKit::addAnimationToLayer): (WebKit::operator<<):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@272178 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 1:02 PM Changeset in webkit [272516] by
-
- 5 edits3 adds in branches/safari-611-branch
Cherry-pick r272166. rdar://problem/74032437
ReadableStream C++ methods should check for exception
https://bugs.webkit.org/show_bug.cgi?id=215376
<rdar://problem/66816192>
Reviewed by Alex Christensen.
Source/WebCore:
Refactor code to catch and handle exceptions in case of ReadableStream methods.
Exceptions can happen in case of worker being abruptly terminated, which can only be tested flakily.
In case of tee, if an exception happens, we return a WTF::nullopt.
Test: streams/readable-stream-tee-worker.html
- Modules/fetch/FetchBody.cpp: (WebCore::FetchBody::clone):
- bindings/js/ReadableStream.cpp: (WebCore::invokeReadableStreamFunction): (WebCore::ReadableStream::pipeTo): (WebCore::ReadableStream::tee): (WebCore::ReadableStream::lock): (WebCore::checkReadableStream):
- bindings/js/ReadableStream.h:
LayoutTests:
- streams/readable-stream-tee-worker-expected.txt: Added.
- streams/readable-stream-tee-worker.html: Added.
- streams/readable-stream-tee.js: Added. (teeRepetitively): (test):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@272166 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 1:02 PM Changeset in webkit [272515] by
-
- 2 edits in branches/safari-611-branch/Source/WebKit
Cherry-pick r271908. rdar://problem/74032594
Harden NetworkProcess against integer overflow in CacheStorageEngine size calculation
https://bugs.webkit.org/show_bug.cgi?id=220997
<rdar://problem/66116827>
Reviewed by Youenn Fablet.
Since the CacheStorage allocation is based on data provided by the WebContent process, we should
check for integer overflow before making an allocation.
- NetworkProcess/cache/CacheStorageEngineCache.cpp: (WebKit::CacheStorage::Cache::put): Use checked arithmetic and return a failure if we overflow.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@271908 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 1:02 PM Changeset in webkit [272514] by
-
- 9 edits1 add in branches/safari-611-branch
Cherry-pick r271731. rdar://problem/74105559
[JSC] JSPromise should not propagate TerminatedExecutionError
https://bugs.webkit.org/show_bug.cgi?id=220820
<rdar://problem/72929399>
Reviewed by Mark Lam.
JSTests:
- stress/terminated-execution-error-in-promise.js: Added. (let.x.get toString): (import.x.then):
Source/JavaScriptCore:
TerminatedExecutionError is uncatcheable exception to finish JS execution as soon as possible.
We should not propagate TerminatedExecutionError in JSPromise's rejection.
In this patch, we do not reject promise if exception is TerminatedExecutionError.
- API/JSAPIGlobalObject.mm: (JSC::JSAPIGlobalObject::moduleLoaderImportModule): (JSC::JSAPIGlobalObject::moduleLoaderFetch):
- API/JSContext.mm: (-[JSContext evaluateJSScript:]):
- jsc.cpp: (GlobalObject::moduleLoaderImportModule): (GlobalObject::moduleLoaderFetch): (runWithOptions):
- runtime/Completion.cpp: (JSC::rejectPromise): (JSC::loadAndEvaluateModule): (JSC::loadModule):
- runtime/JSGlobalObjectFunctions.cpp: (JSC::JSC_DEFINE_HOST_FUNCTION):
- runtime/JSModuleLoader.cpp: (JSC::reject): (JSC::JSModuleLoader::importModule): (JSC::JSModuleLoader::resolve): (JSC::JSModuleLoader::fetch): (JSC::JSC_DEFINE_HOST_FUNCTION):
- wasm/js/JSWebAssembly.cpp: (JSC::reject):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@271731 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 1:02 PM Changeset in webkit [272513] by
-
- 8 edits in branches/safari-611-branch/Source/WebCore
Cherry-pick r271686. rdar://problem/74032451
Further propagate ChildChange::Source to optimize HTMLInputElement creation
https://bugs.webkit.org/show_bug.cgi?id=220785
Reviewed by Ryosuke Niwa.
This patch further propagates ChildChange::Source to optimize HTMLInputElement creation.
We add appendChild method taking ChildChange::Source to transparently pick the efficient
one based on the parameter.
- dom/ContainerNode.cpp: (WebCore::ContainerNode::appendChild):
- dom/ContainerNode.h:
- html/BaseDateAndTimeInputType.cpp: (WebCore::BaseDateAndTimeInputType::createShadowSubtreeAndUpdateInnerTextElementEditability):
- html/ColorInputType.cpp: (WebCore::ColorInputType::createShadowSubtreeAndUpdateInnerTextElementEditability):
- html/FileInputType.cpp: (WebCore::FileInputType::createShadowSubtreeAndUpdateInnerTextElementEditability):
- html/RangeInputType.cpp: (WebCore::RangeInputType::createShadowSubtreeAndUpdateInnerTextElementEditability):
- html/TextFieldInputType.cpp: (WebCore::TextFieldInputType::createShadowSubtreeAndUpdateInnerTextElementEditability):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@271686 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 1:02 PM Changeset in webkit [272512] by
-
- 47 edits in branches/safari-611-branch/Source/WebCore
Cherry-pick r271672. rdar://problem/74105677
Accelerate HTMLInputElement creation
https://bugs.webkit.org/show_bug.cgi?id=220758
Reviewed by Simon Fraser.
HTMLInputElement creation is too slow.
- InputType is excessively using virtual dispatching, which is too slow for hot path.
- HTMLInputElement creates internal elements as a shadow DOM and its creation is too generic.
- We are setting inner text element's editability in a very generic way. This allocates ElementData for each elements while attributes are almost the same.
In this patch,
- We add m_type field in InputType, and for the hot path, we attempt to devirtualize things due to performance problem.
- We pass "parsing phase" information to shadow DOM creation to make them fast.
- We initialize editibility when creating TextControlInnerTextElement. And we use parserSetAttributes to set shared ElementData. This is faster and less memory.
- We also shrink sizeof(Style::Scope) to reduce size of allocation when using shadow DOM.
This change offers 1% progression in Speedometer2/jQuery.
- html/BaseButtonInputType.h: (WebCore::BaseButtonInputType::BaseButtonInputType):
- html/BaseCheckableInputType.h: (WebCore::BaseCheckableInputType::BaseCheckableInputType):
- html/BaseClickableWithKeyInputType.h: (WebCore::BaseClickableWithKeyInputType::BaseClickableWithKeyInputType):
- html/BaseDateAndTimeInputType.cpp: (WebCore::BaseDateAndTimeInputType::isSteppableSlow const): (WebCore::BaseDateAndTimeInputType::createShadowSubtreeAndUpdateInnerTextElementEditability): (WebCore::BaseDateAndTimeInputType::isSteppable const): Deleted. (WebCore::BaseDateAndTimeInputType::createShadowSubtree): Deleted.
- html/BaseDateAndTimeInputType.h: (WebCore::BaseDateAndTimeInputType::BaseDateAndTimeInputType):
- html/BaseTextInputType.h: (WebCore::BaseTextInputType::BaseTextInputType):
- html/ButtonInputType.h:
- html/CheckboxInputType.h:
- html/ColorInputType.cpp: (WebCore::ColorInputType::createShadowSubtreeAndUpdateInnerTextElementEditability): (WebCore::ColorInputType::createShadowSubtree): Deleted.
- html/ColorInputType.h:
- html/DateInputType.cpp: (WebCore::DateInputType::DateInputType):
- html/DateInputType.h:
- html/DateTimeLocalInputType.h:
- html/EmailInputType.h:
- html/FileInputType.cpp: (WebCore::FileInputType::FileInputType): (WebCore::FileInputType::createShadowSubtreeAndUpdateInnerTextElementEditability): (WebCore::FileInputType::createShadowSubtree): Deleted.
- html/FileInputType.h:
- html/HTMLInputElement.cpp: (WebCore::HTMLInputElement::didAddUserAgentShadowRoot): (WebCore::HTMLInputElement::isValid const): (WebCore::HTMLInputElement::updateType):
- html/HTMLTextAreaElement.cpp: (WebCore::HTMLTextAreaElement::didAddUserAgentShadowRoot):
- html/HTMLTextFormControlElement.cpp: (WebCore::HTMLTextFormControlElement::updateInnerTextElementEditability):
- html/HiddenInputType.h:
- html/ImageInputType.cpp: (WebCore::ImageInputType::ImageInputType):
- html/ImageInputType.h:
- html/InputType.cpp: (WebCore::InputType::isInvalid const): (WebCore::InputType::createShadowSubtreeAndUpdateInnerTextElementEditability): (WebCore::InputType::isSteppable const): (WebCore::InputType::createShadowSubtree): Deleted.
- html/InputType.h: (WebCore::InputType::InputType): (WebCore::InputType::isSteppableSlow const): (WebCore::isInvalidInputType):
- html/MonthInputType.h:
- html/NumberInputType.cpp: (WebCore::NumberInputType::isSteppableSlow const): (WebCore::NumberInputType::isSteppable const): Deleted.
- html/NumberInputType.h:
- html/PasswordInputType.h:
- html/RadioInputType.h:
- html/RangeInputType.cpp: (WebCore::RangeInputType::RangeInputType): (WebCore::RangeInputType::isSteppableSlow const): (WebCore::RangeInputType::createShadowSubtreeAndUpdateInnerTextElementEditability): (WebCore::RangeInputType::isSteppable const): Deleted. (WebCore::RangeInputType::createShadowSubtree): Deleted.
- html/RangeInputType.h:
- html/ResetInputType.h:
- html/SearchInputType.cpp: (WebCore::SearchInputType::SearchInputType): (WebCore::SearchInputType::createShadowSubtreeAndUpdateInnerTextElementEditability): (WebCore::SearchInputType::createShadowSubtree): Deleted.
- html/SearchInputType.h:
- html/SubmitInputType.h:
- html/TelephoneInputType.h:
- html/TextFieldInputType.cpp: (WebCore::TextFieldInputType::TextFieldInputType): (WebCore::TextFieldInputType::createShadowSubtreeAndUpdateInnerTextElementEditability): (WebCore::TextFieldInputType::createShadowSubtree): Deleted.
- html/TextFieldInputType.h:
- html/TextInputType.h:
- html/TimeInputType.cpp: (WebCore::TimeInputType::TimeInputType):
- html/TimeInputType.h:
- html/URLInputType.h:
- html/WeekInputType.h:
- html/shadow/TextControlInnerElements.cpp: (WebCore::TextControlInnerTextElement::create): (WebCore::TextControlInnerTextElement::updateInnerTextElementEditabilityImpl):
- html/shadow/TextControlInnerElements.h:
- style/StyleScope.h:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@271672 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 1:02 PM Changeset in webkit [272511] by
-
- 5 edits in branches/safari-611-branch/Source/WTF
Cherry-pick r271633. rdar://problem/74105761
[WTF] StringImpl::removeCharacters should be inlined
https://bugs.webkit.org/show_bug.cgi?id=220742
Reviewed by Saam Barati.
removeCharacters is used in WebCore's HTMLInputElement's critical path. And since String relatively has many elements (characters),
non-inlined StringImpl::removeCharacters causes significant number of indirect function calls offindMatchargument since it is
passed function pointer. We should make them templatized function to allow inlining offindMatchfunction to avoid repeated indirect calls.
- wtf/text/StringImpl.cpp: (WTF::StringImpl::removeCharacters): Deleted.
- wtf/text/StringImpl.h: (WTF::StringImpl::removeCharactersImpl): (WTF::StringImpl::removeCharacters):
- wtf/text/WTFString.cpp: (WTF::String::removeCharacters const): Deleted.
- wtf/text/WTFString.h: (WTF::String::removeCharacters const):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@271633 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 1:02 PM Changeset in webkit [272510] by
-
- 2 edits in branches/safari-611-branch/Source/JavaScriptCore
Cherry-pick r271624. rdar://problem/74105183
Unreviewed, fix GCC warnings
https://bugs.webkit.org/show_bug.cgi?id=220718
- dfg/DFGOperations.cpp: (JSC::DFG::tierUpCommon):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@271624 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 1:02 PM Changeset in webkit [272509] by
-
- 3 edits1 add in branches/safari-611-branch
Cherry-pick r271596. rdar://problem/74105183
[JSC] FTL::prepareOSREntry can clear OSR entry CodeBlock if it is already invalidated
https://bugs.webkit.org/show_bug.cgi?id=220718
<rdar://problem/70527068>
Reviewed by Mark Lam.
JSTests:
- stress/ftl-osr-failure-clear-twice.js: Added. (foo):
Source/JavaScriptCore:
FTL::prepareOSREntry can clear OSR entry CodeBlock if it is already invalidated. However, the caller is not assuming that,
and it calls clearOSREntryBlockAndResetThresholds again. And clearOSREntryBlockAndResetThresholds's assertion hit.
This patch correctly handles the invalidated case.
- dfg/DFGOperations.cpp: (JSC::DFG::tierUpCommon):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@271596 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 1:02 PM Changeset in webkit [272508] by
-
- 3 edits1 add in branches/safari-611-branch
Cherry-pick r271571. rdar://problem/74105245
[JSC] FTL OSR entry FlushFormat array is reversed
https://bugs.webkit.org/show_bug.cgi?id=220695
<rdar://problem/72930932>
Reviewed by Mark Lam.
JSTests:
- stress/ftl-osr-entry-order-reverse.js: Added. (shouldThrow): (foo):
Source/JavaScriptCore:
After r268783, FlushFormat array is erroneously sorted in reversed order.
This patch fixes that.
- ftl/FTLLowerDFGToB3.cpp: (JSC::FTL::DFG::LowerDFGToB3::lower):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@271571 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 12:22 PM Changeset in webkit [272507] by
-
- 4 edits in trunk
[MacOS] Enable Audio Capture in GPUProcess by default
https://bugs.webkit.org/show_bug.cgi?id=221400
Reviewed by Eric Carlson.
Source/WebKit:
Manually tested.
- Shared/WebPreferencesDefaultValues.cpp:
(WebKit::defaultCaptureAudioInGPUProcessEnabled):
Tools:
- TestWebKitAPI/Tests/WebKit/GetUserMediaReprompt.mm:
(-[GetUserMediaRepromptTestView haveStream:]):
Increase timeout since capture might require spinning GPUProcess.
- 12:07 PM Changeset in webkit [272506] by
-
- 3 edits in trunk/Source/WebKit
Check that CGPDFDocumentRef is consistently unlocked and printable
<https://webkit.org/b/221512>
<rdar://problem/65277765>
Reviewed by Daniel Bates.
This patch does the following when printing PDFs:
- Checks return value of CGPDFDocumentUnlockWithPassword().
- Calls CGPDFDocumentAllowsPrinting() consistently.
- Handles -_ensureDocumentForPrinting and -_wk_printedDocument returning nullptr.
- UIProcess/_WKWebViewPrintFormatter.mm:
(-[_WKWebViewPrintFormatter drawInRect:forPageAtIndex:]):
- Check return value of -_wk_printedDocument since it may return nullptr now.
- UIProcess/ios/WKPDFView.mm:
(-[WKPDFView _ensureDocumentForPrinting]):
- Check return value of CGPDFDocumentUnlockWithPassword(), and return nullptr if unsuccessful.
- Add CGPDFDocumentAllowsPrinting() check and return nullptr if it fails.
(-[WKPDFView _wk_pageCountForPrintFormatter:]):
- Move the CGPDFDocumentAllowsPrinting() check into -[WKPDFView _ensureDocumentForPrinting].
- Check return value of -_ensureDocumentForPrinting since it may return nullptr now.
- 12:04 PM Changeset in webkit [272505] by
-
- 1 copy in tags/Safari-612.1.2.5
Tag Safari-612.1.2.5.
- 11:47 AM Changeset in webkit [272504] by
-
- 8 edits3 adds in trunk
NetworkRTCSocketCocoa extractDataMessages should not read too much data
https://bugs.webkit.org/show_bug.cgi?id=221544
Reviewed by Eric Carlson.
Source/WebCore:
Move STUN/TURN message parsing to its own file routine so that we can add API test.
Code is taken from Source/WebKit/NetworkProcess/webrtc/NetworkRTCSocketCocoa.mm.
Fix the test verifying we can actually read a message given its expected length.
Covered by API test.
- Headers.cmake:
- Modules/mediastream/STUNMessageParsing.cpp: Added.
(WebCore::isStunMessage):
(WebCore::getSTUNOrTURNMessageLengths):
(WebCore::extractSTUNOrTURNMessages):
(WebCore::extractDataMessages):
(WebCore::extractMessages):
- Modules/mediastream/STUNMessageParsing.h: Added.
- Sources.txt:
- WebCore.xcodeproj/project.pbxproj:
Source/WebKit:
- NetworkProcess/webrtc/NetworkRTCSocketCocoa.mm:
Make use of WebCore method.
Tools:
- TestWebKitAPI/Tests/WebCore/STUNMessageParsingTest.cpp: Added.
(TestWebKitAPI::TEST):
- TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
- 11:43 AM Changeset in webkit [272503] by
-
- 4 edits in trunk/Source/WebCore
Adjust EventHandler to account for image extraction content
https://bugs.webkit.org/show_bug.cgi?id=221274
Reviewed by Tim Horton.
Avoid extending the selection to the hit-tested position when dragging over an image overlay container (as
opposed to one of the children with text inside the image overlay container).
- html/HTMLElement.cpp:
(WebCore::HTMLElement::shouldUpdateSelectionForMouseDrag):
- html/HTMLElement.h:
- page/EventHandler.cpp:
(WebCore::EventHandler::updateSelectionForMouseDrag):
- 11:28 AM Changeset in webkit [272502] by
-
- 3 edits in trunk/LayoutTests
[iOS macOS] imported/w3c/web-platform-tests/webrtc/RTCPeerConnection-perfect-negotiation.https.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=219460
Unreviwed test gardening.
Skip the test since it is a flaky failure on release, and a flaky assertion failure on debug.
- platform/ios/TestExpectations:
- platform/mac/TestExpectations:
- 11:14 AM Changeset in webkit [272501] by
-
- 8 edits in branches/safari-612.1.2-branch/Source
Versioning.
WebKit-7612.1.2.5
- 10:58 AM Changeset in webkit [272500] by
-
- 2 edits in trunk/Source/WebKitLegacy/mac
Permission request API for MediaKeySystem access support
https://bugs.webkit.org/show_bug.cgi?id=221187
Unreviewed build fix for macCatalyst.
- WebCoreSupport/WebMediaKeySystemClient.h: Add a check for ENABLE(ENCRYPTED_MEDIA).
- 10:11 AM Changeset in webkit [272499] by
-
- 7 edits in trunk
Add ConsoleMessage::toString()
https://bugs.webkit.org/show_bug.cgi?id=221539
Reviewed by Eric Carlson.
Source/JavaScriptCore:
Currently ConsoleMessage doesn't have a publicly API to retrieve the
stored JSON values into a string for printing.
The closest equivalent is message(), but it doesn't return any JSON
objects attached. This makes it an ill fit when printing
ConsoleMessage's to the system terminal, since these JSON values often
contain information that is important for debugging, e.g.:
SourceBufferPrivateGStreamer::removeCodedFrames(126493C320000001) removing sample (notice: no sample)
SourceBufferPrivateGStreamer::removeCodedFrames(126493C320000001) the range in removeCodedFrames() includes already enqueued samples, reenqueueing from (notice: no time)
This patch adds a new ConsoleMessage::toString() method that
constructs a String containing these JSON values, and makes use of it
when printing messages to the system terminal, giving more useful
output, e.g:
CONSOLE MEDIASOURCE DEBUG MediaSourcePrivateGStreamer::addSourceBuffer(D4447A9F1F483EEF) {"containerType":"video/webm","codecs":"codecs","profiles":"profiles"}
CONSOLE MEDIA LOG HTMLMediaElement::mediaPlayerDurationChanged(D4447A9F1F483EEF) duration = {"invalid":true,"numerator":-1,"denominator":1,"flags":0}, current time = {"value":0,"numerator":0,"denominator":10000000,"flags":1}
- inspector/ConsoleMessage.cpp:
(Inspector::ConsoleMessage::toString const):
- inspector/ConsoleMessage.h:
Source/WebCore:
Use ConsoleMessage::toString() instead of ConsoleMessage::message().
- page/PageConsoleClient.cpp:
(WebCore::PageConsoleClient::addMessage):
Tools:
Added unit tests.
- TestWebKitAPI/Tests/JavaScriptCore/InspectorConsoleMessage.cpp:
(TestWebKitAPI::TEST):
- 9:37 AM Changeset in webkit [272498] by
-
- 4 edits in trunk
Update sRGB <-> XYZ conversion matrix values to match values in latest spec
https://bugs.webkit.org/show_bug.cgi?id=221533
Reviewed by Alex Christensen.
Source/WebCore:
Update values to keep in sync with https://github.com/w3c/csswg-drafts/issues/5922.
Updates ExtendedColor API test.
- platform/graphics/ColorConversion.cpp:
Update values to keep in sync with the values used in the CSS Color 4 spec. This
doesn't have any user visible effect, but would reduce errors if round tripping
through this ever became necessary.
Tools:
- TestWebKitAPI/Tests/WebCore/ExtendedColorTests.cpp:
(TestWebKitAPI::TEST):
Update values to values in P3 <-> sRGB conversion test and update to
use EXPECT_FLOAT_EQ so the values can be seen in the output when thigs
fail.
- 9:36 AM Changeset in webkit [272497] by
-
- 3 edits6 adds in trunk
Null check document element in createGradient
https://bugs.webkit.org/show_bug.cgi?id=221378
Patch by Rob Buis <rbuis@igalia.com> on 2021-02-08
Reviewed by Alex Christensen.
Source/WebCore:
The document element is not guaranteed to exist so null
check it before determining the root style.
Tests: fast/css/conic-gradient-no-document-element-crash.html
fast/css/linear-gradient-no-document-element-crash.html
fast/css/radial-gradient-no-document-element-crash.html
- css/CSSGradientValue.cpp:
(WebCore::CSSLinearGradientValue::createGradient):
(WebCore::CSSRadialGradientValue::createGradient):
(WebCore::CSSConicGradientValue::createGradient):
LayoutTests:
Add tests for this.
- fast/css/conic-gradient-no-document-element-crash-expected.txt: Added.
- fast/css/conic-gradient-no-document-element-crash.html: Added.
- fast/css/linear-gradient-no-document-element-crash-expected.txt: Added.
- fast/css/linear-gradient-no-document-element-crash.html: Added.
- fast/css/radial-gradient-no-document-element-crash-expected.txt: Added.
- fast/css/radial-gradient-no-document-element-crash.html: Added.
- 9:30 AM Changeset in webkit [272496] by
-
- 2 edits in trunk/Source/WebKit
Enable GPU WebRTC codecs in GPUProcess by default on MacOS
https://bugs.webkit.org/show_bug.cgi?id=221397
Reviewed by Eric Carlson.
Manually tested.
- Shared/WebPreferencesDefaultValues.cpp:
(WebKit::defaultWebRTCCodecsInGPUProcess):
- 8:42 AM Changeset in webkit [272495] by
-
- 12 edits4 adds in trunk
[macOS] Return key binding for date inputs conflicts with return to submit form
https://bugs.webkit.org/show_bug.cgi?id=221532
<rdar://problem/74039204>
Reviewed by Wenson Hsieh.
Source/WebCore:
Currently, pressing the return key within a focused date input presents
the calendar view, rather than submitting an associated form. This is a
usability issue for keyboard users, and is different from the behavior
in Chrome. This patch matches the behavior in Chrome, and makes it so
that a return keypress submits an associated form.
However, since the return key is now reserved for form submission, we
need a new key to present the calendar view for the date input. Chrome
and Firefox use the space key for this functionality, so this patch
matches that behavior.
Note that r267281 updated date inputs to focus the next editable component
when pressing the space key. This behavior is now removed in favor of
presenting the calendar. Other separator keys, and arrow keys, can still be
used to focus the next editable component.
Tests: fast/forms/date/date-editable-components/date-picker-show-on-space-keypress.html
fast/forms/date/date-editable-components/form-submit-on-return-keypress.html
- html/BaseDateAndTimeInputType.cpp:
(WebCore::BaseDateAndTimeInputType::handleKeypressEvent):
Date and time inputs are BaseClickableWithKeyInputTypes. This gives them
activation behavior on return and space keypresses, similar to button and
color inputs. However, since date/time inputs are closer to textfields,
than buttons, we elide activation behavior on a return keypress, allowing
the event to submit an associated form. Activation behavior on a space
keypress is supported by going through the existing code path.
- html/shadow/DateTimeFieldElement.cpp:
(WebCore::DateTimeFieldElement::defaultKeyboardEventHandler):
Remove "Space" from the list of separator keys that focus the next
editable component.
LayoutTests:
Added tests to verify that pressing the space key in a focused date
input presents a calendar view, and pressing the enter key in a focused
date input submits a form.
Rebaselined existing tests to account for the fact that the space key
no longer focuses the next editable component within a date input.
- fast/forms/date/date-editable-components/date-editable-components-keyboard-events-expected.txt:
- fast/forms/date/date-editable-components/date-editable-components-keyboard-events.html:
- fast/forms/date/date-editable-components/date-picker-show-on-space-keypress-expected.txt: Added.
- fast/forms/date/date-editable-components/date-picker-show-on-space-keypress.html: Added.
- fast/forms/date/date-editable-components/form-submit-on-return-keypress-expected.txt: Added.
- fast/forms/date/date-editable-components/form-submit-on-return-keypress.html: Added.
- fast/forms/datetimelocal/datetimelocal-editable-components/datetimelocal-editable-components-keyboard-events-expected.txt:
- fast/forms/datetimelocal/datetimelocal-editable-components/datetimelocal-editable-components-keyboard-events.html:
- fast/forms/month/month-editable-components/month-editable-components-keyboard-events-expected.txt:
- fast/forms/month/month-editable-components/month-editable-components-keyboard-events.html:
- fast/forms/time/time-editable-components/time-editable-components-keyboard-events-expected.txt:
- fast/forms/time/time-editable-components/time-editable-components-keyboard-events.html:
- 8:29 AM Changeset in webkit [272494] by
-
- 10 edits in trunk
[LFC][Integration] Hit test inline boxes
https://bugs.webkit.org/show_bug.cgi?id=221545
Reviewed by Zalan Bujtas.
Source/WebCore:
Fix fast/dom/nodesFromRect/nodesFromRect-inline-image.html and similar by allowing hitting non-root inline boxes.
- layout/integration/LayoutIntegrationInlineContent.h:
Add a new vector for inlines.
- layout/integration/LayoutIntegrationInlineContentBuilder.cpp:
(WebCore::LayoutIntegration::InlineContentBuilder::build const):
(WebCore::LayoutIntegration::InlineContentBuilder::createDisplayNonRootInlineBoxes const):
Build the vector.
- layout/integration/LayoutIntegrationInlineContentBuilder.h:
- layout/integration/LayoutIntegrationLine.h:
(WebCore::LayoutIntegration::NonRootInlineBox::NonRootInlineBox):
(WebCore::LayoutIntegration::NonRootInlineBox::layoutBox const):
(WebCore::LayoutIntegration::NonRootInlineBox::style const):
(WebCore::LayoutIntegration::NonRootInlineBox::lineIndex const):
(WebCore::LayoutIntegration::NonRootInlineBox::rect const):
- layout/integration/LayoutIntegrationLineLayout.cpp:
(WebCore::LayoutIntegration::LineLayout::hitTest):
Hit test using the inline vector.
LayoutTests:
- fast/dom/nodesFromRect/nodesFromRect-culled-inline-with-linebreak.html:
- fast/dom/nodesFromRect/nodesFromRect-culled-inlines.html:
- fast/dom/nodesFromRect/resources/nodesFromRect.js:
(nodeListToString):
Sort the vector based on node type so the order is not sensitive to engine internals.
Rect based hit testing is not web exposed and the leaf-to-root order is still maintained.
- 8:18 AM Changeset in webkit [272493] by
-
- 2 edits in trunk/Tools
[GLIB] Gardening geolocation API test flakiness
Unreviewed test gardening.
Failing regularly, likely due to the same geolocation API limitation.
- TestWebKitAPI/glib/TestExpectations.json:
- 8:17 AM Changeset in webkit [272492] by
-
- 5 edits1 add in trunk
WebXRSystem::RequestSession with 'viewer' as a required feature should succeed
https://bugs.webkit.org/show_bug.cgi?id=221267
Patch by Imanol Fernandez <imanol> on 2021-02-08
Reviewed by Sergio Villar Senin.
LayoutTests/imported/w3c:
Mark xrSession_viewer_availability test as passing.
- web-platform-tests/webxr/xrSession_viewer_availability.https-expected.txt: Added.
Source/WebCore:
Tested by wpt/webxr/xrSession_viewer_availability.html
- Modules/webxr/WebXRSystem.cpp:
(WebCore::WebXRSystem::inlineSessionRequestIsAllowedForGlobalObject const):
LayoutTests:
Mark xrSession_viewer_availability test as passing.
- platform/wpe/TestExpectations:
- 8:14 AM Changeset in webkit [272491] by
-
- 2 edits in trunk/Source/WebCore
Fix WebXRWebGLLayer m_isCompositionDisabled checks
https://bugs.webkit.org/show_bug.cgi?id=221551
Patch by Imanol Fernandez <imanol> on 2021-02-08
Reviewed by Sergio Villar Senin.
Fix reversed m_isCompositionDisabled checks.
- Modules/webxr/WebXRWebGLLayer.cpp:
(WebCore::WebXRWebGLLayer::create):
(WebCore::WebXRWebGLLayer::WebXRWebGLLayer):
- 7:40 AM Changeset in webkit [272490] by
-
- 23 edits2 adds in trunk
Add support for aria-sort change notifications.
https://bugs.webkit.org/show_bug.cgi?id=221495
Reviewed by Chris Fleizach.
Source/WebCore:
Test: accessibility/aria-sort-changed-notification.html
This patch adds support for aria-sort changes. Some code cleanup by
using the notificationPlatformName helper function.
- accessibility/AXLogger.cpp:
(WebCore::operator<<):
Logging of the new notification.
- accessibility/AXObjectCache.cpp:
Handles the aria-sort change notification. Updates the isolated tree.
(WebCore::AXObjectCache::handleAttributeChange):
(WebCore::AXObjectCache::updateIsolatedTree):
- accessibility/AXObjectCache.h:
- accessibility/ios/AXObjectCacheIOS.mm:
(WebCore::AXObjectCache::notificationPlatformName):
Helper to map AXCore notifications to platform notifications.
(WebCore::AXObjectCache::postPlatformNotification):
Handles the AXSortDirectionChanged notification. Some code cleanup using
the notificationPlatformName helper.
- accessibility/ios/WebAccessibilityObjectWrapperIOS.h:
- accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:
(-[WebAccessibilityObjectWrapper postNotification:]):
To be overridden by system AX bundles.
(-[WebAccessibilityObjectWrapper accessibilitySortDirection]):
Only ascending and descending sort directions are relevant for clients.
- accessibility/isolatedtree/AXIsolatedTree.cpp:
(WebCore::AXIsolatedTree::updateNodeProperty):
Updates the SortDirection property.
- accessibility/mac/AXObjectCacheMac.mm:
(WebCore::AXObjectCache::postPlatformNotification):
Handles the AXSortDirectionChanged notification.
Tools:
- WebKitTestRunner/InjectedBundle/AccessibilityUIElement.cpp:
(WTR::AccessibilityUIElement::sortDirection const):
- WebKitTestRunner/InjectedBundle/AccessibilityUIElement.h:
- WebKitTestRunner/InjectedBundle/Bindings/AccessibilityUIElement.idl:
- WebKitTestRunner/InjectedBundle/ios/AccessibilityUIElementIOS.mm:
(WTR::AccessibilityUIElement::sortDirection const):
- WebKitTestRunner/InjectedBundle/mac/AccessibilityUIElementMac.mm:
(WTR::AccessibilityUIElement::currentStateValue const):
(WTR::AccessibilityUIElement::sortDirection const):
LayoutTests:
- accessibility/aria-sort-changed-notification-expected.txt: Added.
- accessibility/aria-sort-changed-notification.html: Added.
- accessibility/aria-sort-expected.txt:
- accessibility/aria-sort.html:
Calls sortDirection property on the JS accessible element instead of
retrieving the aria-sort attribute. This matches more accurately what an
actual client would do. Changed the expected file accordingly.
- accessibility/ios-simulator/aria-sort-ios-expected.txt:
- accessibility/ios-simulator/aria-sort-ios.html:
Same as in the Mac test above.
- platform/ios/TestExpectations:
Added the new test to be run on the ios-simulator.
- 5:52 AM Changeset in webkit [272489] by
-
- 6 edits2 adds in trunk
[GTK] event.ctrlKey and other are false in keydown event
https://bugs.webkit.org/show_bug.cgi?id=221456
Reviewed by Adrian Perez de Castro.
Source/WebKit:
Modifier keys were not being set on "keydown" events.
For example if you check event.ctrlKey (and other) you'll get always false when the user only typed Ctrl key
(it'll be true when it's in combination with some other key, like Ctrl + P).
This is due to some differences on how X system manages the modifier keys (see http://crbug.com/127142#c8),
but this patch will align WebKitGTK with other platforms and browsers on this case.
Test: fast/events/keyboardevent-modifier.html
- Shared/gtk/WebEventFactory.cpp:
(WebKit::modifiersForEvent): In the case of a keyboard press event check if some modifier key has been pressed.
- UIProcess/API/gtk/WebKitWebViewBase.cpp:
(webkitWebViewBaseSynthesizeKeyEvent): Check if some modifier key has been pressed.
LayoutTests:
The test only pass in GTK right now, despite testing it manually works fine in all platforms,
it looks like they might need changes to make the test pass.
- TestExpectations:
- fast/events/keyboardevent-modifier-expected.txt: Added.
- fast/events/keyboardevent-modifier.html: Added.
- platform/gtk/TestExpectations:
- 5:31 AM Changeset in webkit [272488] by
-
- 2 edits in trunk/Source/WebCore
Perform layout before running Editor::findString
https://bugs.webkit.org/show_bug.cgi?id=220384
Patch by Frédéric Wang <fwang@igalia.com> on 2021-02-08
Reviewed by Ryosuke Niwa.
This ensures that the layout is up-to-date before performing any search.
Also disable any post-resolution that could cause more changes to happen.
- editing/Editor.cpp:
(WebCore::Editor::findString):
- 4:33 AM Changeset in webkit [272487] by
-
- 2 edits in trunk/Source/WebKit
Unreviewed unified build fix.
- UIProcess/MediaPermissionUtilities.h:
- 4:31 AM Changeset in webkit [272486] by
-
- 2 edits in trunk/Source/WebCore
Deprecation warnings for NSImageHintSymbolFont and NSImageHintSymbolScale
https://bugs.webkit.org/show_bug.cgi?id=221541
Unreviewed build fix.
- rendering/RenderThemeMac.mm:
(WebCore::createAttachmentPlaceholderImage):
- 3:34 AM Changeset in webkit [272485] by
-
- 16 edits4 adds in trunk
[GLib] Permission request API for MediaKeySystem access support
https://bugs.webkit.org/show_bug.cgi?id=221199
Reviewed by Carlos Garcia Campos.
Source/WebKit:
Expose a new Permission Request object to the public WPE and GTK APIs, allowing the
application to defer the decision of using a given EME MediaKeySystem to the user's
approval.
Covered by new API test.
- PlatformGTK.cmake:
- PlatformWPE.cmake:
- SourcesGTK.txt:
- SourcesWPE.txt:
- UIProcess/API/glib/WebKitMediaKeySystemPermissionRequest.cpp: Added.
(webkitMediaKeySystemPermissionRequestAllow):
(webkitMediaKeySystemPermissionRequestDeny):
(webkit_permission_request_interface_init):
(webkitMediaKeySystemPermissionRequestDispose):
(webkit_media_key_system_permission_request_class_init):
(webkitMediaKeySystemPermissionRequestCreate):
(webkit_media_key_system_permission_get_name):
- UIProcess/API/glib/WebKitMediaKeySystemPermissionRequestPrivate.h: Added.
- UIProcess/API/glib/WebKitUIClient.cpp:
- UIProcess/API/gtk/WebKitAutocleanups.h:
- UIProcess/API/gtk/WebKitMediaKeySystemPermissionRequest.h: Added.
- UIProcess/API/gtk/docs/webkit2gtk-4.0-sections.txt:
- UIProcess/API/gtk/docs/webkit2gtk-docs.sgml:
- UIProcess/API/gtk/webkit2.h:
- UIProcess/API/wpe/WebKitMediaKeySystemPermissionRequest.h: Added.
- UIProcess/API/wpe/docs/wpe-1.0-sections.txt:
- UIProcess/API/wpe/docs/wpe-docs.sgml:
Tools:
Added basic support for MediaKeySystem permission request to the GTK MiniBrowser, and a GLib
API unit-test as well.
- MiniBrowser/gtk/BrowserTab.c:
(permissionRequestDialogResponse):
(decidePermissionRequest):
(browser_tab_class_init):
- TestWebKitAPI/Tests/WebKitGLib/TestUIClient.cpp:
(testWebViewMediaKeySystemPermissionRequests):
(beforeAll):
- TestWebKitAPI/glib/WebKitGLib/WebViewTest.cpp:
(WebViewTest::initializeWebView):
- 1:47 AM Changeset in webkit [272484] by
-
- 8 edits1 add in trunk
ConsoleMessage: Don't encode string JSONLogValue's as JSON
https://bugs.webkit.org/show_bug.cgi?id=221421
Reviewed by Eric Carlson.
.:
Enable JavaScriptCore API tests.
- Source/cmake/WebKitCommon.cmake:
Source/JavaScriptCore:
JSONLogValue's have two tagged types: String and JSON. Despite this,
the ConsoleMessage constructor was converting the string values to
JSON while coalescing them.
This also added quotes on the return value of message() for
ConsoleMessage's created with this constructor, but not with others.
This patch removes that behavior, keeping strings as strings and using
wrapObject() instead of wrapJSONString() for them.
- inspector/ConsoleMessage.cpp:
(Inspector::ConsoleMessage::ConsoleMessage):
(Inspector::ConsoleMessage::addToFrontend):
Tools:
Added API tests to check for the output of message() when constructing
ConsoleMessage objects with JSONLogValue's.
This includes changes contributed by Philippe Normand enabling
JavaScriptCore tests which were previously disabled in WebKitGTK and
making them compile again.
- TestWebKitAPI/CMakeLists.txt:
- TestWebKitAPI/Tests/WebKit/InspectorConsoleMessage.cpp: Added.
(TestWebKitAPI::TEST):
- 1:12 AM Changeset in webkit [272483] by
-
- 3 edits in trunk/Source/WebCore
Nullptr crash in editingIgnoresContent via InsertParagraphSeparatorCommand::doApply
https://bugs.webkit.org/show_bug.cgi?id=220349
Patch by Carlos Garcia Campos <cgarcia@igalia.com> on 2021-02-08
Reviewed by Ryosuke Niwa.
Add an early return to InsertParagraphSeparatorCommand::doApply if insert position is null.
- editing/CompositeEditCommand.cpp:
(WebCore::CompositeEditCommand::insertNodeBefore): Return early if a InsertNodeBeforeCommand can't be created.
- editing/InsertParagraphSeparatorCommand.cpp:
(WebCore::InsertParagraphSeparatorCommand::doApply): Abort the insertion if the insert position is null.
- 1:00 AM Changeset in webkit [272482] by
-
- 2 edits in trunk/Source/WebKit
Unreviewed, unified build fix after r272480
- WebProcess/Speech/SpeechRecognitionRealtimeMediaSourceManager.cpp: Logging.h is needed for
log channel macros usage.
- 12:53 AM Changeset in webkit [272481] by
-
- 3 edits in trunk/Source/WebKit
Unreviewed, build fix after r272480
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::requestMediaKeySystemPermissionByDefaultAction):
- UIProcess/WebPageProxy.h:
- 12:37 AM Changeset in webkit [272480] by
-
- 38 edits19 adds in trunk
Permission request API for MediaKeySystem access support
https://bugs.webkit.org/show_bug.cgi?id=221187
Reviewed by Jer Noble.
Source/WebCore:
Support for user permission requesting when access to an EME MediaKeySystem is being
requested by the page. This is similar to the mediaDevices access guards.
Existing test media/encrypted-media/mock-MediaKeySystemAccess.html was updated to cover this
new code path and WPE/GTK API tests as well.
- CMakeLists.txt:
- Headers.cmake:
- Modules/encryptedmedia/MediaKeySystemClient.h: Added.
- Modules/encryptedmedia/MediaKeySystemController.cpp: Added.
(WebCore::MediaKeySystemController::supplementName):
(WebCore::MediaKeySystemController::MediaKeySystemController):
(WebCore::MediaKeySystemController::~MediaKeySystemController):
(WebCore::provideMediaKeySystemTo):
(WebCore::MediaKeySystemController::logRequestMediaKeySystemDenial):
- Modules/encryptedmedia/MediaKeySystemController.h: Added.
(WebCore::MediaKeySystemController::client const):
(WebCore::MediaKeySystemController::from):
(WebCore::MediaKeySystemController::requestMediaKeySystem):
(WebCore::MediaKeySystemController::cancelMediaKeySystemRequest):
- Modules/encryptedmedia/MediaKeySystemRequest.cpp: Added.
(WebCore::MediaKeySystemRequest::create):
(WebCore::MediaKeySystemRequest::MediaKeySystemRequest):
(WebCore::MediaKeySystemRequest::~MediaKeySystemRequest):
(WebCore::MediaKeySystemRequest::topLevelDocumentOrigin const):
(WebCore::MediaKeySystemRequest::start):
(WebCore::MediaKeySystemRequest::allow):
(WebCore::MediaKeySystemRequest::deny):
(WebCore::MediaKeySystemRequest::stop):
(WebCore::MediaKeySystemRequest::activeDOMObjectName const):
(WebCore::MediaKeySystemRequest::document const):
- Modules/encryptedmedia/MediaKeySystemRequest.h: Added.
(WebCore::MediaKeySystemRequest::setAllowCallback):
(WebCore::MediaKeySystemRequest::identifier const):
(WebCore::MediaKeySystemRequest::keySystem const):
- Modules/encryptedmedia/NavigatorEME.cpp:
(WebCore::NavigatorEME::requestMediaKeySystemAccess):
Source/WebKit:
Add new IPC and C API exposing MediaKeySystem access permissions to the UIProcess. At least
GTK/WPE would like to have API for asking permission to the user when EME's MediaKeyAccess
is being requested by a page. On Apple platforms the permission is granted by default until
a decision is made about supporting this in their APIUIClient.
- CMakeLists.txt:
- Headers.cmake:
- Platform/Logging.h:
- Shared/API/APIObject.h:
- Shared/API/c/WKBase.h:
- Sources.txt:
- UIProcess/API/APIUIClient.h:
(API::UIClient::decidePolicyForMediaKeySystemPermissionRequest):
- UIProcess/API/C/WKAPICast.h:
- UIProcess/API/C/WKMediaKeySystemPermissionCallback.cpp: Added.
(WKMediaKeySystemPermissionCallbackGetTypeID):
(WKMediaKeySystemPermissionCallbackComplete):
- UIProcess/API/C/WKMediaKeySystemPermissionCallback.h: Added.
- UIProcess/API/C/WKPage.cpp:
(WKPageSetPageUIClient):
- UIProcess/API/C/WKPageUIClient.h:
- UIProcess/MediaKeySystemPermissionRequest.h: Added.
(WebKit::MediaKeySystemPermissionRequest::create):
(WebKit::MediaKeySystemPermissionRequest::complete):
(WebKit::MediaKeySystemPermissionRequest::keySystem const):
(WebKit::MediaKeySystemPermissionRequest::MediaKeySystemPermissionRequest):
(WebKit::MediaKeySystemPermissionCallback::create):
(WebKit::MediaKeySystemPermissionCallback::complete):
(WebKit::MediaKeySystemPermissionCallback::MediaKeySystemPermissionCallback):
- UIProcess/MediaKeySystemPermissionRequestManagerProxy.cpp: Added.
(WebKit::MediaKeySystemPermissionRequestManagerProxy::MediaKeySystemPermissionRequestManagerProxy):
(WebKit::MediaKeySystemPermissionRequestManagerProxy::~MediaKeySystemPermissionRequestManagerProxy):
(WebKit::MediaKeySystemPermissionRequestManagerProxy::invalidatePendingRequests):
(WebKit::MediaKeySystemPermissionRequestManagerProxy::denyRequest):
(WebKit::MediaKeySystemPermissionRequestManagerProxy::grantRequest):
(WebKit::MediaKeySystemPermissionRequestManagerProxy::createRequestForFrame):
(WebKit::MediaKeySystemPermissionRequestManagerProxy::logChannel const):
(WebKit::MediaKeySystemPermissionRequestManagerProxy::logger const):
- UIProcess/MediaKeySystemPermissionRequestManagerProxy.h: Added.
(WebKit::MediaKeySystemPermissionRequestManagerProxy::page const):
(WebKit::MediaKeySystemPermissionRequestManagerProxy::denyRequest):
- UIProcess/MediaKeySystemPermissionRequestProxy.cpp: Added.
(WebKit::MediaKeySystemPermissionRequestProxy::MediaKeySystemPermissionRequestProxy):
(WebKit::MediaKeySystemPermissionRequestProxy::allow):
(WebKit::MediaKeySystemPermissionRequestProxy::deny):
(WebKit::MediaKeySystemPermissionRequestProxy::invalidate):
(WebKit::MediaKeySystemPermissionRequestProxy::doDefaultAction):
- UIProcess/MediaKeySystemPermissionRequestProxy.h: Added.
(WebKit::MediaKeySystemPermissionRequestProxy::create):
(WebKit::MediaKeySystemPermissionRequestProxy::isPending const):
(WebKit::MediaKeySystemPermissionRequestProxy::mediaKeySystemID const):
(WebKit::MediaKeySystemPermissionRequestProxy::mainFrameID const):
(WebKit::MediaKeySystemPermissionRequestProxy::frameID const):
(WebKit::MediaKeySystemPermissionRequestProxy::topLevelDocumentSecurityOrigin):
(WebKit::MediaKeySystemPermissionRequestProxy::topLevelDocumentSecurityOrigin const):
(WebKit::MediaKeySystemPermissionRequestProxy::keySystem const):
- UIProcess/SpeechRecognitionRemoteRealtimeMediaSource.h:
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::requestMediaKeySystemPermissionForFrame):
(WebKit::WebPageProxy::mediaKeySystemPermissionRequestManager):
(WebKit::WebPageProxy::requestMediaKeySystemPermissionByDefaultAction):
- UIProcess/WebPageProxy.h:
- UIProcess/WebPageProxy.messages.in:
- WebProcess/EncryptedMedia/MediaKeySystemPermissionRequestManager.cpp: Added.
(WebKit::MediaKeySystemPermissionRequestManager::MediaKeySystemPermissionRequestManager):
(WebKit::MediaKeySystemPermissionRequestManager::startMediaKeySystemRequest):
(WebKit::MediaKeySystemPermissionRequestManager::sendMediaKeySystemRequest):
(WebKit::MediaKeySystemPermissionRequestManager::cancelMediaKeySystemRequest):
(WebKit::MediaKeySystemPermissionRequestManager::mediaKeySystemWasGranted):
(WebKit::MediaKeySystemPermissionRequestManager::mediaKeySystemWasDenied):
- WebProcess/EncryptedMedia/MediaKeySystemPermissionRequestManager.h: Added.
- WebProcess/WebCoreSupport/WebMediaKeySystemClient.cpp: Added.
(WebKit::WebMediaKeySystemClient::WebMediaKeySystemClient):
(WebKit::WebMediaKeySystemClient::pageDestroyed):
(WebKit::WebMediaKeySystemClient::requestMediaKeySystem):
(WebKit::WebMediaKeySystemClient::cancelMediaKeySystemRequest):
- WebProcess/WebCoreSupport/WebMediaKeySystemClient.h: Added.
(WebKit::WebMediaKeySystemClient::~WebMediaKeySystemClient):
- WebProcess/WebPage/WebPage.cpp:
(WebKit::m_limitsNavigationsToAppBoundDomains):
(WebKit::WebPage::mediaKeySystemWasGranted):
(WebKit::WebPage::mediaKeySystemWasDenied):
- WebProcess/WebPage/WebPage.h:
(WebKit::WebPage::mediaKeySystemPermissionRequestManager):
- WebProcess/WebPage/WebPage.messages.in:
Tools:
Add support for setting the permission request response from the TestRunner, for usage within layout tests.
- WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl:
- WebKitTestRunner/InjectedBundle/TestRunner.cpp:
(WTR::TestRunner::setIsMediaKeySystemPermissionGranted):
- WebKitTestRunner/InjectedBundle/TestRunner.h:
- WebKitTestRunner/TestController.cpp:
(WTR::decidePolicyForMediaKeySystemPermissionRequest):
(WTR::TestController::completeMediaKeySystemPermissionCheck):
(WTR::TestController::setIsMediaKeySystemPermissionGranted):
(WTR::TestController::createWebViewWithOptions):
- WebKitTestRunner/TestController.h:
- WebKitTestRunner/TestInvocation.cpp:
(WTR::TestInvocation::didReceiveSynchronousMessageFromInjectedBundle):
LayoutTests:
Add basic coverage support for overriding the MediaKeySystem permission answer and thus have
the promise rejection tested in this case.
- media/encrypted-media/mock-MediaKeySystemAccess-expected.txt:
- media/encrypted-media/mock-MediaKeySystemAccess.html:
Feb 7, 2021:
- 8:18 PM Changeset in webkit [272479] by
-
- 4 edits in trunk
REGRESSION(r272379) [WPE] imported/w3c/web-platform-tests/mathml/relations/css-styling/mathvariant tests are Image Failing
https://bugs.webkit.org/show_bug.cgi?id=221523
Reviewed by Adrian Perez de Castro.
Source/WebCore:
Covered by existing tests.
This change makes the mathml tests pass again, but still does not
fixes fast/text/multi-code-unit-simple-path.html, which is still not
mismatching on both GTK/WPE.
- platform/graphics/WidthIterator.cpp:
(WebCore::WidthIterator::advanceInternal): Avoid inserting the
trailing zero for GLIB.
LayoutTests:
- platform/wpe/TestExpectations: Remove expected failures
- 6:11 PM Changeset in webkit [272478] by
-
- 3 edits2 adds in trunk
[LFC][IFC] ASSERT(constraints.left->x <= constraints.right->x) when left and right floats run out of space
https://bugs.webkit.org/show_bug.cgi?id=220963
<rdar://problem/73861675>
Reviewed by Simon Fraser.
Source/WebCore:
Remove the incorrect assert. It's valid to have "horizontally overlapping" floats here since
we probe for a vertical range (not just a point) and vertical ranges can have
multiple left and right floats where they simply "overlap" each other when only x is taken into account.
When two floats (left and right) line up like this:
_
| LF |
|_|
_
| RF |
|_|
and as we try to find space for the inline content, we may end up with a vertical range (candidate line position + line height)
where we find both LF and RF. In this range the float boxes do overlap horizontally.
It simply means that at that vertical position there's no available space for the inline content.
Test: fast/inline/intrusive-left-right-floats-assert.html
- layout/inlineformatting/InlineLineBuilder.cpp:
(WebCore::Layout::LineBuilder::floatConstraints const):
LayoutTests:
- fast/inline/intrusive-left-right-floats-assert-expected.txt: Added.
- fast/inline/intrusive-left-right-floats-assert.html: Added.
- 2:10 PM Changeset in webkit [272477] by
-
- 4 edits in trunk/Source/WebCore
Remove a duplicate implementation of EventHandler::mouseDownMayStartSelect()
https://bugs.webkit.org/show_bug.cgi?id=221531
Reviewed by Tim Horton.
Remove the current
bool mouseDownMayStartSelect() constmethod which just returnsm_mouseDownMayStartSelect,
and make the current non-constversion of the methodconstinstead. SincemouseDownMayStartSelect()was
only invoked from non-const methods, the formerconstversion was unused.
No change in behavior.
- page/EventHandler.cpp:
(WebCore::EventHandler::mouseDownMayStartSelect const):
(WebCore::EventHandler::mouseDownMayStartSelect): Deleted.
- page/EventHandler.h:
(WebCore::EventHandler::mouseDownMayStartSelect const): Deleted.
- page/Page.h:
(WebCore::Page::textInteractionEnabled const):
Make this getter
const, so that we can call it inmouseDownMayStartSelect() const.
(WebCore::Page::textInteractionEnabled): Deleted.
- 12:25 PM Changeset in webkit [272476] by
-
- 2 edits in trunk/Source/WebKit
[CoordinatedGraphics] The whole content is unnecessarily repainted by animations in non-AC mode pages
https://bugs.webkit.org/show_bug.cgi?id=221391
Reviewed by Carlos Garcia Campos.
When triggerRenderingUpdate was called back, it added the whole
view area into the dirty region to repaint in non-AC mode pages.
This caused a problem that the whole content was unnecessarily
repainted by animations in non-AC mode pages
If triggerRenderingUpdate is called back,
DrawingAreaCoordinatedGraphics::display should be called to ensure
WebPage::updateRendering() called even if m_dirtyRegion is empty.
- WebProcess/WebPage/CoordinatedGraphics/DrawingAreaCoordinatedGraphics.cpp:
(WebKit::DrawingAreaCoordinatedGraphics::triggerRenderingUpdate):
Call scheduleDisplay() instead of setNeedsDisplay().
(WebKit::DrawingAreaCoordinatedGraphics::scheduleDisplay): Don't
return early even if m_dirtyRegion is empty.
(WebKit::DrawingAreaCoordinatedGraphics::display()): Ditto.
(WebKit::DrawingAreaCoordinatedGraphics::display(UpdateInfo&)):
Return early if m_dirtyRegion is empty.
- 11:27 AM Changeset in webkit [272475] by
-
- 75 edits in trunk/Source
Differentiate between color spaces used to tag colors and color spaces used to tag destinations
https://bugs.webkit.org/show_bug.cgi?id=221520
Reviewed by Antti Koivisto.
Source/WebCore:
Replace use of the ColorSpace enum in destination contexts (ImageBuffer, Filters, etc.)
with a new DestinationColorSpace enum that is just the limited set of color spaces
supported in that context, just SRGB and LinearSRGB. We may need to expand this to
other supported destination color spaces in the future, but currently only those two
are actually used, and color space information for higher gamut spaces like DisplayP3
are communicated differently.
This will allow us to more clearly see these two concepts as different and ensure we
we support all cases for each, without having to know to ignore some color spaces in
the destination contexts.
While changing a bunch of names, also take the oppertunity to rename ColorSpace::LinearRGB
to ColorSpace::LinearSRGB to match ColorSpace::SRGB (also done for the new
DestinationColorSpace::LinearSRGB).
- html/CustomPaintCanvas.cpp:
(WebCore::CustomPaintCanvas::copiedImage const):
- html/HTMLCanvasElement.cpp:
(WebCore::HTMLCanvasElement::createImageBuffer const):
- html/HTMLVideoElement.cpp:
(WebCore::HTMLVideoElement::createBufferForPainting const):
- html/ImageBitmap.cpp:
(WebCore::ImageBitmap::createImageBuffer):
- html/OffscreenCanvas.cpp:
(WebCore::OffscreenCanvas::commitToPlaceholderCanvas):
- html/canvas/CanvasRenderingContext2DBase.cpp:
(WebCore::CanvasRenderingContext2DBase::drawImage):
(WebCore::CanvasRenderingContext2DBase::drawTextUnchecked):
- page/Chrome.cpp:
(WebCore::Chrome::createImageBuffer const):
- page/Chrome.h:
- page/ChromeClient.h:
(WebCore::ChromeClient::createImageBuffer const):
- page/cocoa/ResourceUsageOverlayCocoa.mm:
(WebCore::createColor):
- platform/HostWindow.h:
- platform/graphics/BitmapImage.cpp:
(WebCore::BitmapImage::drawPattern):
- platform/graphics/ColorSerialization.cpp:
(WebCore::serialization):
- platform/graphics/ColorSpace.cpp:
(WebCore::operator<<):
- platform/graphics/ColorSpace.h:
(WebCore::callWithColorType):
- platform/graphics/ConcreteImageBuffer.h:
(WebCore::ConcreteImageBuffer::create):
- platform/graphics/CustomPaintImage.cpp:
(WebCore::CustomPaintImage::drawPattern):
- platform/graphics/GradientImage.cpp:
(WebCore::GradientImage::drawPattern):
- platform/graphics/GraphicsContext.cpp:
(WebCore::GraphicsContext::clipToDrawingCommands):
- platform/graphics/GraphicsContext.h:
- platform/graphics/GraphicsContextImpl.h:
- platform/graphics/ImageBuffer.cpp:
(WebCore::ImageBuffer::create):
(WebCore::ImageBuffer::createCompatibleBuffer):
(WebCore::ImageBuffer::copyRectToBuffer):
- platform/graphics/ImageBuffer.h:
- platform/graphics/ImageBufferBackend.h:
(WebCore::ImageBufferBackend::transformColorSpace):
(WebCore::ImageBufferBackend::colorSpace const):
- platform/graphics/cairo/GraphicsContextImplCairo.h:
- platform/graphics/cairo/ImageBufferCairoBackend.cpp:
(WebCore::ImageBufferCairoBackend::transformColorSpace):
- platform/graphics/cairo/ImageBufferCairoBackend.h:
- platform/graphics/cg/ColorSpaceCG.h:
(WebCore::cachedCGColorSpace):
- platform/graphics/displaylists/DisplayListImageBuffer.h:
(WebCore::DisplayList::ImageBuffer::create):
- platform/graphics/displaylists/DisplayListItems.h:
(WebCore::DisplayList::ClipToDrawingCommands::ClipToDrawingCommands):
(WebCore::DisplayList::ClipToDrawingCommands::colorSpace const):
(WebCore::DisplayList::ClipToDrawingCommands::decode):
- platform/graphics/displaylists/DisplayListRecorder.cpp:
(WebCore::DisplayList::Recorder::clipToDrawingCommands):
- platform/graphics/displaylists/DisplayListRecorder.h:
- platform/graphics/filters/FEDisplacementMap.cpp:
(WebCore::FEDisplacementMap::setResultColorSpace):
- platform/graphics/filters/FEDisplacementMap.h:
- platform/graphics/filters/FEFlood.h:
- platform/graphics/filters/FELighting.cpp:
(WebCore::FELighting::drawLighting):
- platform/graphics/filters/FETile.cpp:
(WebCore::FETile::platformApplySoftware):
- platform/graphics/filters/FilterEffect.cpp:
(WebCore::FilterEffect::unmultipliedResult):
(WebCore::FilterEffect::premultipliedResult):
(WebCore::FilterEffect::convertImageDataToColorSpace):
(WebCore::FilterEffect::convertImageBufferToColorSpace):
(WebCore::FilterEffect::copyConvertedImageBufferToDestination):
(WebCore::FilterEffect::copyConvertedImageDataToDestination):
(WebCore::FilterEffect::copyUnmultipliedResult):
(WebCore::FilterEffect::copyPremultipliedResult):
(WebCore::FilterEffect::requiresImageDataColorSpaceConversion):
(WebCore::FilterEffect::transformResultColorSpace):
- platform/graphics/filters/FilterEffect.h:
(WebCore::FilterEffect::operatingColorSpace const):
(WebCore::FilterEffect::setOperatingColorSpace):
(WebCore::FilterEffect::resultColorSpace const):
(WebCore::FilterEffect::setResultColorSpace):
- platform/graphics/filters/SourceGraphic.h:
(WebCore::SourceGraphic::SourceGraphic):
- platform/graphics/nicosia/cairo/NicosiaCairoOperationRecorder.cpp:
(Nicosia::CairoOperationRecorder::clipToDrawingCommands):
- platform/graphics/nicosia/cairo/NicosiaCairoOperationRecorder.h:
- platform/graphics/win/GraphicsContextImplDirect2D.cpp:
- platform/graphics/win/GraphicsContextImplDirect2D.h:
- platform/graphics/win/ImageBufferDirect2DBackend.cpp:
(WebCore::ImageBufferDirect2DBackend::create):
(WebCore::ImageBufferDirect2DBackend::ImageBufferDirect2DBackend):
- platform/mac/ThemeMac.mm:
(WebCore::ThemeMac::drawCellOrFocusRingWithViewIntoContext):
- rendering/CSSFilter.cpp:
(WebCore::CSSFilter::buildReferenceFilter):
(WebCore::CSSFilter::build):
(WebCore::CSSFilter::apply):
- rendering/RenderBoxModelObject.cpp:
(WebCore::RenderBoxModelObject::paintFillLayerExtended):
- rendering/RenderLayerBacking.cpp:
(WebCore::patternForDescription):
- rendering/RenderThemeMac.mm:
(WebCore::RenderThemeMac::paintProgressBar):
- rendering/svg/RenderSVGResourceClipper.cpp:
(WebCore::RenderSVGResourceClipper::applyClippingToContext):
- rendering/svg/RenderSVGResourceFilter.cpp:
(WebCore::RenderSVGResourceFilter::buildPrimitives const):
(WebCore::RenderSVGResourceFilter::applyResource):
(WebCore::RenderSVGResourceFilter::postApplyResource):
- rendering/svg/RenderSVGResourceGradient.cpp:
(WebCore::createMaskAndSwapContextForTextGradient):
- rendering/svg/RenderSVGResourceMasker.cpp:
(WebCore::RenderSVGResourceMasker::applyResource):
(WebCore::RenderSVGResourceMasker::drawContentIntoMaskImage):
- rendering/svg/RenderSVGResourceMasker.h:
- rendering/svg/RenderSVGResourcePattern.cpp:
(WebCore::RenderSVGResourcePattern::createTileImage const):
- rendering/svg/SVGRenderingContext.cpp:
(WebCore::SVGRenderingContext::createImageBuffer):
(WebCore::SVGRenderingContext::bufferForeground):
- rendering/svg/SVGRenderingContext.h:
- svg/graphics/SVGImage.cpp:
(WebCore::SVGImage::drawPatternForContainer):
- svg/graphics/filters/SVGFEImage.cpp:
(WebCore::FEImage::platformApplySoftware):
Source/WebKit:
- Scripts/webkit/messages.py:
- Shared/WebCoreArgumentCoders.h:
Coder implementation of EnumTraits for color space types is now
in WebCore.
- GPUProcess/graphics/RemoteImageBuffer.h:
(WebKit::RemoteImageBuffer::create):
- GPUProcess/graphics/RemoteRenderingBackend.cpp:
(WebKit::RemoteRenderingBackend::createImageBuffer):
- GPUProcess/graphics/RemoteRenderingBackend.h:
- GPUProcess/graphics/RemoteRenderingBackend.messages.in:
- Shared/RemoteLayerTree/RemoteLayerBackingStore.mm:
(WebKit::RemoteLayerBackingStore::swapToValidFrontBuffer):
- WebProcess/GPU/graphics/RemoteImageBufferProxy.h:
(WebKit::RemoteImageBufferProxy::create):
- WebProcess/GPU/graphics/RemoteRenderingBackendProxy.cpp:
(WebKit::RemoteRenderingBackendProxy::createImageBuffer):
- WebProcess/GPU/graphics/RemoteRenderingBackendProxy.h:
- WebProcess/WebCoreSupport/WebChromeClient.cpp:
(WebKit::WebChromeClient::createImageBuffer const):
- WebProcess/WebCoreSupport/WebChromeClient.h:
Update to use DestinationColorSpace rather than ColorSpace.
- 11:22 AM Changeset in webkit [272474] by
-
- 23 edits in trunk
Remove more special cases from color conversion
https://bugs.webkit.org/show_bug.cgi?id=221519
Reviewed by Antti Koivisto.
Source/WebCore:
- Remove specialized convertTo<> function which only did component type conversion with the fully general convertColor<> function.
- Make ColorComponents a bit more ready for non-4 component colors by reworking member functionality based on a new mapColorComponents function which maps a function F over all the components of a set of ColorComponents. e.g.
auto colorComponentsC = mapColorComponents([] (auto a, auto b) { return a + b; }, colorComponentsA, colorComponentsB);
will create a new ColorComponents where each component is the sum of the
corresponding components in colorComponentsA and colorComponentsB. It's
variadic so it can take any number of ColorComponents. This allows rewriting
all of the members to be size invariant and a little less verbose.
- Replace special case for the identity conversion in the fallback color conversion code path, and move it into it's own partial specialization of ColorConversion.
- Replace special case for chromatic adaptation conversions and have them just use specializations of ColorConversion like all other conversions.
- platform/graphics/ColorComponents.h:
(WebCore::mapColorComponents):
(WebCore::ColorComponents<T>::map const):
(WebCore::ColorComponents<T>::operator const):
(WebCore::ColorComponents<T>::abs const):
(WebCore::perComponentMax):
(WebCore::perComponentMin):
Add map and mapColorComponents and re-implement existing
functionality in terms of them.
- platform/graphics/ColorConversion.cpp:
(WebCore::WhitePoint::D50>>::convert):
(WebCore::WhitePoint::D65>>::convert):
(WebCore::SRGBA<uint8_t>>::convert):
(WebCore::SRGBA<float>>::convert):
(WebCore::SRGBA<uint8_t>::ReferenceXYZ>::convert):
(WebCore::convertFromD50WhitePointToD65WhitePoint): Deleted.
(WebCore::convertFromD65WhitePointToD50WhitePoint): Deleted.
- platform/graphics/ColorConversion.h:
(WebCore::ColorConversion::convert):
(WebCore::performChomaticAdapatation): Deleted.
Use ColorConversion specializations for the identity conversion, chomatic
adapatation, and component type conversions, rather than hard coding them
in the fallback conversion.
- platform/graphics/ColorUtilities.h:
(WebCore::convertTo): Deleted.
Remove convertTo<>, which is now superseded by the general convertColor<>.
- accessibility/atk/WebKitAccessibleInterfaceText.cpp:
(webkitAccessibleTextGetText):
- accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:
(-[WebAccessibilityObjectWrapper accessibilityColorStringValue]):
- accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
(-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]):
- html/canvas/CanvasRenderingContext2DBase.cpp:
(WebCore::CanvasRenderingContext2DBase::setShadow):
- html/canvas/CanvasStyle.cpp:
(WebCore::CanvasStyle::CanvasStyle):
(WebCore::CanvasStyle::isEquivalent const):
- platform/graphics/Color.cpp:
(WebCore::Color::lightened const):
(WebCore::Color::darkened const):
(WebCore::Color::colorSpaceAndComponents const):
- platform/graphics/avfoundation/InbandTextTrackPrivateAVF.cpp:
(WebCore::makeSimpleColorFromARGBCFArray):
- platform/graphics/filters/FilterOperations.cpp:
(WebCore::FilterOperations::transformColor const):
(WebCore::FilterOperations::inverseTransformColor const):
- platform/graphics/gtk/ColorGtk.cpp:
(WebCore::Color::Color):
- platform/graphics/mac/ColorMac.mm:
(WebCore::makeSimpleColorFromNSColor):
- platform/graphics/win/ColorDirect2D.cpp:
(WebCore::Color::Color):
- platform/graphics/win/PlatformContextDirect2D.cpp:
(WebCore::PlatformContextDirect2D::brushWithColor):
- platform/ios/ColorIOS.mm:
(WebCore::colorFromUIColor):
Adopt convertColor<> to replace convertTo<>.
Source/WebKit:
- UIProcess/API/wpe/WebKitColor.cpp:
(webkitColorToWebCoreColor):
Replace convertTo<> component type conversion to general convertColor<>.
Tools:
- TestWebKitAPI/Tests/WebCore/ExtendedColorTests.cpp:
(TestWebKitAPI::TEST):
Replace convertTo<> component type conversion to general convertColor<>.
- 11:03 AM Changeset in webkit [272473] by
-
- 3 edits in trunk/Source/WebCore
[LFC][Integration] Fix http/wpt/css/css-highlight-api/ tests with inlines enabled
https://bugs.webkit.org/show_bug.cgi?id=221529
Reviewed by Zalan Bujtas.
Highlight painting code is currently tied to legacy line boxes. Disallow LFC.
- layout/integration/LayoutIntegrationCoverage.cpp:
(WebCore::LayoutIntegration::printReason):
(WebCore::LayoutIntegration::canUseForLineLayoutWithReason):
- layout/integration/LayoutIntegrationCoverage.h:
- 7:33 AM Changeset in webkit [272472] by
-
- 2 edits in trunk/Source/WebCore
[LFC][IFC] A line with no content should always take the fast vertical alignment path
https://bugs.webkit.org/show_bug.cgi?id=221524
Reviewed by Antti Koivisto.
- layout/inlineformatting/InlineFormattingContextGeometry.cpp:
(WebCore::Layout::LineBoxBuilder::constructInlineLevelBoxes):
(WebCore::Layout::LineBoxBuilder::computeLineBoxHeightAndAlignInlineLevelBoxesVertically):
- 3:13 AM Changeset in webkit [272471] by
-
- 17 edits in trunk/Source/JavaScriptCore
[JSC] Replace toInteger with toIntegerOrInfinity
https://bugs.webkit.org/show_bug.cgi?id=218642
Reviewed by Alexey Shvayka.
In ECMA262 spec, ToInteger abstract operation is replaced with ToIntegerOrInfinity.
This patch renames toInteger to toIntegerOrInfinity in JSC.
- builtins/ArrayPrototype.js:
(fill):
(includes):
(copyWithin):
(flat):
(at):
- builtins/FunctionPrototype.js:
(bind):
- builtins/GlobalOperations.js:
(globalPrivate.toIntegerOrInfinity):
(globalPrivate.toLength):
(globalPrivate.toInteger): Deleted.
- builtins/RegExpPrototype.js:
(overriddenName.string_appeared_here.replace):
- builtins/StringPrototype.js:
(repeat):
(at):
- builtins/TypedArrayPrototype.js:
(subarray):
(at):
- inspector/JSInjectedScriptHost.cpp:
(Inspector::JSInjectedScriptHost::weakMapEntries):
(Inspector::JSInjectedScriptHost::weakSetEntries):
(Inspector::JSInjectedScriptHost::iteratorEntries):
- runtime/ArrayPrototype.cpp:
(JSC::argumentClampedIndexFromStartOrEnd):
(JSC::JSC_DEFINE_HOST_FUNCTION):
- runtime/IntlSegments.cpp:
(JSC::IntlSegments::containing):
- runtime/JSCJSValue.cpp:
(JSC::JSValue::toIntegerOrInfinity const):
(JSC::JSValue::toLength const):
(JSC::JSValue::toInteger const): Deleted.
- runtime/JSCJSValue.h:
- runtime/JSCJSValueInlines.h:
- runtime/JSGenericTypedArrayViewPrototypeFunctions.h:
(JSC::argumentClampedIndexFromStartOrEnd):
(JSC::genericTypedArrayViewProtoFuncSet):
(JSC::genericTypedArrayViewProtoFuncLastIndexOf):
- runtime/NumberPrototype.cpp:
(JSC::JSC_DEFINE_HOST_FUNCTION):
(JSC::extractToStringRadixArgument):
- runtime/RegExpObjectInlines.h:
(JSC::getRegExpObjectLastIndexAsUnsigned):
- runtime/StringPrototype.cpp:
(JSC::JSC_DEFINE_HOST_FUNCTION):
(JSC::stringIndexOfImpl):
(JSC::stringIncludesImpl):