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.setLayoutContextTypeChangedMode
for getting information about all layout contexts
https://bugs.webkit.org/show_bug.cgi?id=221449
Source/JavaScriptCore:
Reviewed by Devin Rousso.
Added
CSS.setLayoutContextTypeChangedMode
command andCSS.LayoutContextTypeChangedMode
enum 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
LayoutContextType
exists 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 aLayoutContextType
inside any document is
sent to the frontend.
(WebCore::InspectorCSSAgent::nodeLayoutContextTypeChanged):
- If the
LayoutContextTypeChangedMode
isAll
, 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.setLayoutContextTypeChangedMode
command.
- 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
this
can'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 bothIsSync
and 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 offindMatch
argument since it is
passed function pointer. We should make them templatized function to allow inlining offindMatch
function 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() const
method which just returnsm_mouseDownMayStartSelect
,
and make the current non-const
version of the methodconst
instead. SincemouseDownMayStartSelect()
was
only invoked from non-const methods, the formerconst
version 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):
Feb 6, 2021:
- 10:08 PM Changeset in webkit [272470] by
-
- 4 edits in trunk/Source/WebKit
[macOS] Add support for accessibility image extraction
https://bugs.webkit.org/show_bug.cgi?id=221262
<rdar://problem/70744978>
Reviewed by Devin Rousso.
Add WebKitAdditions support for image extraction.
- UIProcess/Cocoa/WebViewImpl.h:
- UIProcess/Cocoa/WebViewImpl.mm:
(WebKit::WebViewImpl::requestImageExtraction): Deleted.
- WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::requestImageExtraction):
- 10:02 PM Changeset in webkit [272469] by
-
- 33 edits in trunk
Non-special URLs should have an opaque origin
https://bugs.webkit.org/show_bug.cgi?id=162254
Patch by Alex Christensen <achristensen@webkit.org> on 2021-02-06
Reviewed by Geoff Garen.
LayoutTests/imported/w3c:
- web-platform-tests/url/a-element-origin-expected.txt:
- web-platform-tests/url/a-element-origin-xhtml-expected.txt:
- web-platform-tests/url/url-origin-expected.txt:
Source/WebCore:
This matches the behavior of Chrome, Firefox, and the URL specification.
In order to maintain compatibility with existing apps, we do a linkedOnOrAfter check for the new behavior.
In order to allow things like web extensions to continue to work, we allow non-null origins for schemes
for which a WKURLSchemeHandler has been registered. We learned this lesson 4 years ago when we tried this change.
This also makes sense conceptually because those schemes will be handled by the containing application,
so they can be an "origin" for a page.
- page/SecurityOrigin.cpp:
(WebCore::shouldTreatAsUniqueOrigin):
- platform/LegacySchemeRegistry.cpp:
(WebCore::schemesHandledBySchemeHandler):
(WebCore::LegacySchemeRegistry::registerURLSchemeAsHandledBySchemeHandler):
(WebCore::LegacySchemeRegistry::schemeIsHandledBySchemeHandler):
- platform/LegacySchemeRegistry.h:
- platform/cocoa/VersionChecks.h:
Source/WebInspectorUI:
- UserInterface/Base/URLUtilities.js:
(parseURL):
Source/WebKit:
I needed to change API::SecurityOrigin from wrapping a WebCore::SecurityOrigin to wrapping a WebCore::SecurityOriginData,
otherwise it would often be null and we want it to be not null in the UI process.
- Shared/API/APISecurityOrigin.h:
(API::SecurityOrigin::createFromString):
(API::SecurityOrigin::create):
(API::SecurityOrigin::securityOrigin const):
(API::SecurityOrigin::SecurityOrigin):
- Shared/API/c/WKSecurityOriginRef.cpp:
(WKSecurityOriginCopyDatabaseIdentifier):
(WKSecurityOriginCopyProtocol):
(WKSecurityOriginCopyHost):
(WKSecurityOriginGetPort):
- UIProcess/API/C/WKWebsiteDataStoreRef.cpp:
(WKWebsiteDataStoreRemoveFetchCacheForOrigin):
- UIProcess/API/Cocoa/WKSecurityOrigin.mm:
(-[WKSecurityOrigin protocol]):
(-[WKSecurityOrigin host]):
(-[WKSecurityOrigin port]):
- WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::registerURLSchemeHandler):
Source/WTF:
- wtf/URL.h:
Tools:
- TestWebKitAPI/Tests/WebKitCocoa/WKURLSchemeHandler-1.mm:
- 9:08 PM Changeset in webkit [272468] by
-
- 3 edits in trunk/Source/WebCore
[LFC][IFC] Incorrect line box height when line-height is set on an empty root inline box
https://bugs.webkit.org/show_bug.cgi?id=221522
Reviewed by Antti Koivisto.
The root inline box with non-initial line height value stretches the line box even when root has no content.
e.g. <div style="line-height: 100px;"><span>content</span></div>
This content produces a ~100px tall line box.
- layout/inlineformatting/InlineFormattingContextQuirks.cpp:
(WebCore::Layout::InlineFormattingContext::Quirks::inlineLevelBoxAffectsLineBox const):
- 7:28 PM Changeset in webkit [272467] by
-
- 10 edits1 add in trunk/Source/WebCore
Introduce image overlays and add UA shadow root support for image extraction
https://bugs.webkit.org/show_bug.cgi?id=221236
Reviewed by Ryosuke Niwa.
This patch restores some of the logic previously introduced in r164457 (and removed with r272117) to render
service button cells over images, and additionally renames and repurposes it for image extraction, a new
accessibility feature. See comments below for more details.
- CMakeLists.txt:
- DerivedSources-input.xcfilelist:
- DerivedSources.make:
- WebCore.xcodeproj/project.pbxproj:
- html/HTMLElement.cpp:
(WebCore::imageOverlayElementIdentifier):
(WebCore::HTMLElement::hasImageOverlay const):
Add a helper to determine whether or not an element's UA shadow root has an image overlay element. This is
consulted in the constructor ofRenderImage
.
(WebCore::HTMLElement::updateWithImageExtractionResult):
Add a helper method to install image extraction content in the shadow root of an element, given an
ImageExtractionResult
. This consists of an image overlay container (a relatively positioneddiv
), which then
contains some number of absolutely positioned childdiv
elements. Additionally load the image overlay
stylesheet as text within a style element when creating the UA shadow root.
- html/HTMLElement.h:
- html/shadow/imageOverlay.css: Added.
(div#image-overlay):
(div.image-overlay-text):
Add a new UA stylesheet for the image overlay shadow DOM subtree. The overlay contains a number of absolutely
positoneddiv
elements, which are positioned inside the overlay element using using CSS transforms.
- rendering/RenderImage.cpp:
(WebCore::RenderImage::RenderImage):
(WebCore::RenderImage::canHaveChildren const):
Return
true
if we require children in the shadow root (for either media controls, or this new image overlay).
(WebCore::RenderImage::layout):
(WebCore::RenderImage::layoutShadowContent):
(WebCore::RenderImage::layoutShadowControls): Deleted.
Rename
layoutShadowControls
tolayoutShadowContent
, and allow it to support both the "shadow controls" case
(i.e.RenderMedia
) and the "image extraction content" case. Additonally, remove the check for
shadowControlsNeedCustomLayoutMetrics()
when setting child renderer width/height. This is currently only used
for laying out media controls inRenderMedia
, but we'll need it now for allRenderImage
s.
- rendering/RenderImage.h:
(WebCore::RenderImage::setHasImageOverlay):
(WebCore::RenderImage::hasShadowContent const):
Add a helper method to return whether or not the
RenderImage
should expect shadow root content. This is true
for both media controls (m_hasShadowControls
) and for the new image overlay content (m_hasImageOverlay
).
(WebCore::RenderImage::shadowControlsNeedCustomLayoutMetrics const): Deleted.
- rendering/RenderMedia.h:
See
RenderImage::layoutShadowControls
above.
- 7:13 PM Changeset in webkit [272466] by
-
- 4 edits1 add in trunk
REGRESSION (r264574): Unchecked JS exception in validateAndApplyPropertyDescriptor()
https://bugs.webkit.org/show_bug.cgi?id=221494
Reviewed by Yusuke Suzuki.
JSTests:
- stress/redefine-property-same-value-exception-check.js: Added.
Source/JavaScriptCore:
This patch brings back exception check after sameValue(), which was accidentally
removed in r264574. sameValue() may throw OOM when comparing rope strings.
Even though this case was unreachable because of PropertyDescriptor::equalTo()
fast path, we should maintain consistent exception checks.
For the same reason, sameValue() in protoFuncFinalizationRegistryRegister() is
replaced with pointer comparison, which is safe & unobservable becausetarget
is a known JSObject.
- runtime/FinalizationRegistryPrototype.cpp:
(JSC::JSC_DEFINE_HOST_FUNCTION):
- runtime/JSObject.cpp:
(JSC::validateAndApplyPropertyDescriptor):
- 6:02 PM Changeset in webkit [272465] by
-
- 2 edits in trunk/LayoutTests
[WPE] Gardening mathml failures
Unreviewed test gardening.
- platform/wpe/TestExpectations:
- 4:10 PM Changeset in webkit [272464] by
-
- 2 edits in trunk/Tools
[build.webkit.org] Switch bot watchers dashboard to use new buildbot
https://bugs.webkit.org/show_bug.cgi?id=221493
Reviewed by Alexey Proskuryakov.
- CISupport/build-webkit-org/public_html/dashboard/Scripts/WebKitBuildbot.js:
(WebKitBuildbot):
- 10:01 AM Changeset in webkit [272463] by
-
- 3 edits in trunk/Source/WebCore
[LFC][IFC] Continuation pre and post block inline boxes should not have both the start and end decorations of the original inline box
https://bugs.webkit.org/show_bug.cgi?id=221502
Reviewed by Antti Koivisto.
The generated inline boxes inside the pre/post block containers of a continuation "inherit" all the original styles e.g.
<span style="margin-left: 10px"><div></div></span>
We turn this into a continuation by constructing a set of pre and a post block containers.
(pre)Block container (anonymous)
Inline container (<span>)
Block container (<div></div>)
(post)Block container (anonymous)
Inline container (</span>)
Now the border box of the inline container inside the post block container should not have a 1px margin offset. Only the inline container in the pre block should "inherit" the left margin from the original <span>.
Legacy line layout solves this issue by calling hasInlineDirectionBordersPaddingOrMargin() during layout to decide which side of the decorations to apply,
but these inline boxes should not have those start/end values the first place.
(see fast/inline/inline-with-empty-inline-continuations.html)
- layout/integration/LayoutIntegrationBoxTree.cpp:
(WebCore::LayoutIntegration::BoxTree::buildTree):
- layout/integration/LayoutIntegrationLineLayout.cpp:
(WebCore::LayoutIntegration::LineLayout::updateInlineBoxDimensions):
- 8:01 AM Changeset in webkit [272462] by
-
- 2 edits in trunk/Source/WebCore
[LFC][IFC][Quirk] Keep the root inline box baseline anchored at 0
https://bugs.webkit.org/show_bug.cgi?id=221517
Reviewed by Antti Koivisto.
In quirks mode when the root inline box has no content, a negative baseline value should not push the root baseline upwards.
e.g.
<div><span style="vertical-align: -300px">this text should be ~300px while the root baseline is at 0px</span></div>
However an inline box with negative ascent (e.g. large enough negative margin-top value) can pull the root inline box up.
- layout/inlineformatting/InlineFormattingContextGeometry.cpp:
(WebCore::Layout::LineBoxBuilder::computeLineBoxHeightAndAlignInlineLevelBoxesVertically):
- 7:22 AM Changeset in webkit [272461] by
-
- 2 edits in trunk/Source/WebCore
ASSERT NOT REACHED in WebCore::Layout::LineBuilder::candidateContentForLine
https://bugs.webkit.org/show_bug.cgi?id=221492
<rdar://problem/74032439>
Reviewed by Antti Koivisto.
Floats are not part of the inline content and they should be ignored while checking if the continuous candidate content ends in a wrap opportunity.
- layout/inlineformatting/InlineLineBuilder.cpp:
(WebCore::Layout::LineBuilder::candidateContentForLine):
Feb 5, 2021:
- 11:51 PM Changeset in webkit [272460] by
-
- 2 edits in trunk/LayoutTests
Remove the Timer from Style::Scope
https://bugs.webkit.org/show_bug.cgi?id=221221
<rdar://problem/73918532>
Unreviewed followup.
- platform/mac/TestExpectations:
imported/w3c/web-platform-tests/css/css-scoping/css-scoping-shadow-dynamic-remove-style-detached.html
should no longer be flaky on Mac
- 11:34 PM Changeset in webkit [272459] by
-
- 2 edits in trunk
[MSVC] Catalog warnings
https://bugs.webkit.org/show_bug.cgi?id=199248
Unreviewed build fix.
Missed a warning generated when building AppleWin.
- Source/cmake/OptionsMSVC.cmake:
- 9:33 PM Changeset in webkit [272458] by
-
- 19 edits8 adds in trunk/LayoutTests
Update LayoutTests/imported/w3c/web-platform-tests/shadow-dom to the upstream
https://bugs.webkit.org/show_bug.cgi?id=220768
Patch by Tetsuharu Ohzeki <Tetsuharu Ohzeki> on 2021-02-05
Reviewed by Ryosuke Niwa.
LayoutTests/imported/w3c:
This imported https://github.com/web-platform-tests/wpt/tree/875f4c73ec1122cd0ea05580f6b56fda0ef71cc7
- web-platform-tests/shadow-dom/HTMLSlotElement-interface.html:
- web-platform-tests/shadow-dom/ShadowRoot-interface.html:
- web-platform-tests/shadow-dom/declarative/declarative-shadow-dom-attachment.tentative.html:
- web-platform-tests/shadow-dom/declarative/declarative-shadow-dom-basic.tentative-expected.txt:
- web-platform-tests/shadow-dom/declarative/declarative-shadow-dom-basic.tentative.html:
- web-platform-tests/shadow-dom/declarative/declarative-shadow-dom-opt-in.tentative.html: Added.
- web-platform-tests/shadow-dom/declarative/getinnerhtml.tentative-expected.txt:
- web-platform-tests/shadow-dom/declarative/getinnerhtml.tentative.html:
- web-platform-tests/shadow-dom/declarative/support/declarative-child-frame.html: Added.
- web-platform-tests/shadow-dom/declarative/support/helpers.js: Added.
(setInnerHTML):
- web-platform-tests/shadow-dom/declarative/support/w3c-import.log: Added.
- web-platform-tests/shadow-dom/declarative/w3c-import.log:
- web-platform-tests/shadow-dom/focus/w3c-import.log:
- web-platform-tests/shadow-dom/nested-slot-remove-crash.html: Added.
- web-platform-tests/shadow-dom/slotchange-expected.txt:
- web-platform-tests/shadow-dom/slotchange.html:
- web-platform-tests/shadow-dom/slots-imperative-api-slotchange.tentative-expected.txt:
- web-platform-tests/shadow-dom/slots-imperative-api-slotchange.tentative.html:
- web-platform-tests/shadow-dom/slots-imperative-slot-api.tentative.html:
- web-platform-tests/shadow-dom/untriaged/events/event-dispatch/test-002.html:
- web-platform-tests/shadow-dom/w3c-import.log:
LayoutTests:
- platform/ios/TestExpectations:
- 9:09 PM Changeset in webkit [272457] by
-
- 2 edits in trunk
[MSVC] Catalog warnings
https://bugs.webkit.org/show_bug.cgi?id=199248
Reviewed by Fujii Hironori.
Catalog all the MSVC warnings providing the message and a link to documentation
for the warning. Some warnings are noted as being against the style guide so they
won't be addressed. All other warnings could potentially be fixed in the codebase.
- Source/cmake/OptionsMSVC.cmake:
- 8:06 PM Changeset in webkit [272456] by
-
- 2 edits in trunk/Tools
[Mac] Disable MediaSessionTest API tests
https://bugs.webkit.org/show_bug.cgi?id=221514
<rdar://74048912>
Unreviewed, disable tests that don't play well with other media tests running
at the same time.
- TestWebKitAPI/Tests/WebKitCocoa/MediaSession.mm:
(TestWebKitAPI::TEST_F):
- 6:48 PM Changeset in webkit [272455] by
-
- 2 edits in trunk/Tools
[ews] Do not display identifier in status bubble tooltips
https://bugs.webkit.org/show_bug.cgi?id=221513
Unreviewed infrastucture fix.
- CISupport/ews-app/ews/views/statusbubble.py:
- 4:56 PM Changeset in webkit [272454] by
-
- 1 copy in tags/Safari-612.1.2.4
Tag Safari-612.1.2.4.
- 4:49 PM Changeset in webkit [272453] by
-
- 2 edits in trunk/Source/WebCore
Deploy WTFMove in the constructor for AutofillElements
https://bugs.webkit.org/show_bug.cgi?id=221507
Patch by Ricky Mondello <Ricky Mondello> on 2021-02-05
Reviewed by Wenson Hsieh.
- editing/cocoa/AutofillElements.cpp:
(WebCore::AutofillElements::AutofillElements):
- 4:44 PM Changeset in webkit [272452] by
-
- 8 edits in branches/safari-612.1.2-branch/Source
Versioning.
WebKit-7612.1.2.4
- 4:43 PM Changeset in webkit [272451] by
-
- 7 edits in trunk
REGRESSION(r272337): crash under WebCore::SpeechRecognizer::setInactive()
https://bugs.webkit.org/show_bug.cgi?id=221451
Patch by Sihui Liu <sihui_liu@appe.com> on 2021-02-05
Reviewed by Youenn Fablet.
Source/WebCore:
Stop sending final update in SpeechRecognizer's destructor and send it in prepareForDestruction() instead, so
that no update will be sent for a destroyed SpeechRecognizer.
API test: WebKit2.SpeechRecognitionWebProcessCrash.
- Modules/speech/SpeechRecognizer.cpp:
(WebCore::SpeechRecognizer::prepareForDestruction):
(WebCore::SpeechRecognizer::~SpeechRecognizer): Deleted.
- Modules/speech/SpeechRecognizer.h:
Source/WebKit:
- UIProcess/SpeechRecognitionServer.cpp:
(WebKit::SpeechRecognitionServer::handleRequest):
Tools:
- TestWebKitAPI/Tests/WebKitCocoa/SpeechRecognition.mm:
(TestWebKitAPI::TEST):
- 4:16 PM Changeset in webkit [272450] by
-
- 2 edits in trunk/Source/WebKit
Add missing null checks to decoding functions involving RetainPtr
https://bugs.webkit.org/show_bug.cgi?id=221441
Reviewed by Anders Carlsson.
- Shared/mac/WebCoreArgumentCodersMac.mm:
(IPC::ArgumentCoder<WebCore::ResourceRequest>::decodePlatformData): Fail if the dictionary
is null: the encoder never encodes a null dictionary.
(IPC::ArgumentCoder<WebCore::CertificateInfo>::decode): Fail if the SecTrustRef is null:
the encoder never encodes a null SecTrustRef. Fail if the certificate chain array is null:
the encoder never encodes a null CFArrayRef.
(IPC::decodeNSError): Return a RetainPtr instead of using a bool return value and a
RetainPtr out argument. Fail if the user info dictionary is null: the encoder never encodes
a null user info dictionary.
(IPC::ArgumentCoder<WebCore::ResourceError>::decodePlatformData): Updated for the change
to the interface of decodeNSError.
(IPC::ArgumentCoder<WebCore::ContentFilterUnblockHandler>::decode): Fail if the CFDataRef
is null: the encoder never encodes a null CFDataRef.
- 4:07 PM Changeset in webkit [272449] by
-
- 2 edits in trunk/Source/WebKit
REGRESSION (r271815): [macOS] /dev/dtracehelper is blocked on customer builds, even with SIP disabled
https://bugs.webkit.org/show_bug.cgi?id=221501
<rdar://73893768>
Reviewed by Per Arne Vollan.
Instead of requiring apple-internal to use /dev/dtracehelper, allow on systems where
SIP has been deactivated.
- WebProcess/com.apple.WebProcess.sb.in: Use CSR filter to gate access to /dev/dtracehelper
- 3:32 PM Changeset in webkit [272448] by
-
- 4 edits in trunk
Allow Password AutoFill in more text field configurations
https://bugs.webkit.org/show_bug.cgi?id=221429
rdar://problem/73899947
Patch by Ricky Mondello <Ricky Mondello> on 2021-02-05
Reviewed by Wenson Hsieh.
Extend where we'll offer Password AutoFill in web views. Allow all type=password fields. Allow in situations
with back-to-back type=password fields, but only attempt to fill the second password field when it's empty,
to flexibly accomodate account creation and password change scenarios.
I did a round of manual testing with the related existing OS feature.
- editing/cocoa/AutofillElements.cpp:
(WebCore::AutofillElements::AutofillElements): Add secondPassword to initializer.
(WebCore::AutofillElements::computeAutofillElements): Change the algorithm as described above.
(WebCore::AutofillElements::autofill): Also fill the secondPassword, if applicable.
- editing/cocoa/AutofillElements.h: Change constructor and add member variable.
- 3:26 PM Changeset in webkit [272447] by
-
- 1 copy in tags/Safari-612.1.2.3
Tag Safari-612.1.2.3.
- 3:23 PM Changeset in webkit [272446] by
-
- 8 edits in branches/safari-612.1.2-branch/Source
Versioning.
WebKit-7612.1.2.3
- 3:18 PM Changeset in webkit [272445] by
-
- 31 edits2 adds in trunk
[Mac] Connect MediaSession with MediaRemote and NowPlaying
https://bugs.webkit.org/show_bug.cgi?id=221431
<rdar://problem/74000363>
Reviewed by Jer Noble.
Source/WebCore:
Route all remote control commands to navigator.mediaSession when it has any
registered action handlers, and pass navigator.mediaSession.metadata to NowPlaying.
Tested with new API tests in Tools/TestWebKitAPI/Tests/WebKitCocoa/MediaSession.mm.
- Modules/mediasession/MediaImage.h:
(WebCore::MediaImage::encode const):
(WebCore::MediaImage::decode):
- Modules/mediasession/MediaMetadata.cpp:
(WebCore::MediaMetadata::setTitle):
(WebCore::MediaMetadata::setArtist):
(WebCore::MediaMetadata::setAlbum):
(WebCore::MediaMetadata::setArtwork):
- Modules/mediasession/MediaMetadata.h:
(WebCore::MediaMetadata::title const):
(WebCore::MediaMetadata::artist const):
(WebCore::MediaMetadata::album const):
(WebCore::MediaMetadata::artwork const):
(WebCore::MediaMetadata::metadata const):
- Modules/mediasession/MediaMetadataInit.h:
(WebCore::MediaMetadataInit::encode const):
(WebCore::MediaMetadataInit::decode):
- Modules/mediasession/MediaSession.cpp:
(WebCore::nextLogIdentifier):
(WebCore::logChannel):
(WebCore::logClassName):
(WebCore::platformCommandForMediaSessionAction):
(WebCore::MediaSession::MediaSession):
(WebCore::MediaSession::setMetadata):
(WebCore::MediaSession::setPlaybackState):
(WebCore::MediaSession::setActionHandler):
(WebCore::MediaSession::setPositionState):
- Modules/mediasession/MediaSession.h:
(WebCore::MediaSession::hasActiveActionHandlers const):
(WebCore::MediaSession::logger const):
(WebCore::MediaSession::logIdentifier const):
(WTF::LogArgument<WebCore::MediaSessionPlaybackState>::toString):
(WTF::LogArgument<WebCore::MediaSessionAction>::toString):
- WebCore.xcodeproj/project.pbxproj:
- html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::didReceiveRemoteControlCommand):
- html/MediaElementSession.cpp:
(WebCore::MediaElementSession::didReceiveRemoteControlCommand):
(WebCore::MediaElementSession::nowPlayingInfo const):
- html/MediaElementSession.h:
- page/ChromeClient.h:
- platform/RemoteCommandListener.cpp:
(WebCore::RemoteCommandListener::scheduleSupportedCommandsUpdate):
(WebCore::RemoteCommandListener::addSupportedCommand):
(WebCore::RemoteCommandListener::removeSupportedCommand):
- platform/RemoteCommandListener.h:
- platform/audio/NowPlayingInfo.h:
(WebCore::NowPlayingInfo::decode):
- platform/audio/PlatformMediaSession.cpp:
(WebCore::convertEnumerationToString):
- platform/audio/PlatformMediaSession.h:
- platform/audio/PlatformMediaSessionManager.h:
(WebCore::PlatformMediaSessionManager::addSupportedCommand):
(WebCore::PlatformMediaSessionManager::removeSupportedCommand):
- platform/audio/cocoa/MediaSessionManagerCocoa.h:
- platform/audio/cocoa/MediaSessionManagerCocoa.mm:
(WebCore::MediaSessionManagerCocoa::scheduleSessionStatusUpdate):
(WebCore::MediaSessionManagerCocoa::sessionCanProduceAudioChanged):
(WebCore::MediaSessionManagerCocoa::addSupportedCommand):
(WebCore::MediaSessionManagerCocoa::removeSupportedCommand):
(WebCore::MediaSessionManagerCocoa::setNowPlayingInfo):
- platform/mac/MediaRemoteSoftLink.cpp:
- platform/mac/MediaRemoteSoftLink.h:
- platform/mac/RemoteCommandListenerMac.h:
- platform/mac/RemoteCommandListenerMac.mm:
(WebCore::mediaRemoteCommandForPlatformCommand):
(WebCore::RemoteCommandListenerMac::defaultCommands):
(WebCore::isSeekCommand):
(WebCore::RemoteCommandListenerMac::updateSupportedCommands):
(WebCore::RemoteCommandListenerMac::RemoteCommandListenerMac):
Source/WebCore/PAL:
- pal/spi/mac/MediaRemoteSPI.h:
Source/WebKit:
Add a private preference so the new MediaSession API test can enable the feature.
- UIProcess/API/Cocoa/WKPreferences.mm:
(-[WKPreferences _mediaSessionEnabled]):
(-[WKPreferences _setMediaSessionEnabled:]):
- UIProcess/API/Cocoa/WKPreferencesPrivate.h:
Tools:
- TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
- TestWebKitAPI/Tests/WebKitCocoa/MediaSession.mm: Added.
(TestWebKitAPI::MediaSessionTest::webView):
(TestWebKitAPI::MediaSessionTest::webViewPid):
(TestWebKitAPI::MediaSessionTest::getNowPlayingClient):
(TestWebKitAPI::MediaSessionTest::getNowPlayingClientPid):
(TestWebKitAPI::MediaSessionTest::loadPageAndBecomeNowPlaying):
(TestWebKitAPI::MediaSessionTest::runScriptWithUserGesture):
(TestWebKitAPI::MediaSessionTest::play):
(TestWebKitAPI::MediaSessionTest::pause):
(TestWebKitAPI::MediaSessionTest::sendMediaRemoteCommand):
(TestWebKitAPI::MediaSessionTest::sendMediaRemoteSeekCommand):
(TestWebKitAPI::MediaSessionTest::listenForEventMessages):
(TestWebKitAPI::MediaSessionTest::eventListenerWasCalled):
(TestWebKitAPI::MediaSessionTest::waitForEventListenerToBeCalled):
(TestWebKitAPI::MediaSessionTest::listenForSessionHandlerMessages):
(TestWebKitAPI::MediaSessionTest::sessionHandlerWasCalled):
(TestWebKitAPI::MediaSessionTest::waitForSessionHandlerToBeCalled):
(TestWebKitAPI::MediaSessionTest::getSupportedCommands):
(TestWebKitAPI::TEST_F):
- TestWebKitAPI/Tests/WebKitCocoa/media-remote.html: Added.
- 3:09 PM Changeset in webkit [272444] by
-
- 1 copy in tags/Safari-612.1.2.2
Tag Safari-612.1.2.2.
- 3:06 PM Changeset in webkit [272443] by
-
- 1 copy in tags/Safari-611.1.14
Tag Safari-611.1.14.
- 3:01 PM Changeset in webkit [272442] by
-
- 6 edits1 add in branches/safari-612.1.2-branch/Source/WebCore
Cherry-pick r272377. rdar://problem/73989711
Process LocalizableAdditions string file correctly.
https://bugs.webkit.org/show_bug.cgi?id=221358
Reviewed by Tim Horton.
- DerivedSources-input.xcfilelist:
- DerivedSources-output.xcfilelist:
- DerivedSources.make:
- WebCore.xcodeproj/project.pbxproj:
- bindings/scripts/preprocessor.pm: (applyPreprocessor):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@272377 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 2:52 PM Changeset in webkit [272441] by
-
- 8 edits in branches/safari-612.1.2-branch/Source
Versioning.
WebKit-7612.1.2.2
- 2:44 PM Changeset in webkit [272440] by
-
- 13 edits in trunk/LayoutTests
[GLIB] Rebaseline and gardening commong gtk/wpe failures.
Unreviewed test gardening.
- platform/glib/TestExpectations:
Rebaselines after r272100
- platform/glib/tables/mozilla/bugs/bug106795-expected.txt:
- platform/gtk/tables/mozilla/bugs/bug16252-expected.txt:
- platform/gtk/tables/mozilla/bugs/bug20579-expected.txt:
- platform/gtk/tables/mozilla/bugs/bug82946-2-expected.txt:
- platform/wpe/tables/mozilla/bugs/bug16252-expected.txt:
- platform/wpe/tables/mozilla/bugs/bug20579-expected.txt:
- platform/wpe/tables/mozilla/bugs/bug82946-2-expected.txt:
Rebaseline after r272035
- platform/gtk/imported/w3c/web-platform-tests/css/cssom/cssstyledeclaration-csstext-expected.txt:
- platform/wpe/imported/w3c/web-platform-tests/css/cssom/cssstyledeclaration-csstext-expected.txt:
Rebaseline after r271110
- platform/gtk/fast/block/basic/014-expected.txt:
- platform/wpe/fast/block/basic/014-expected.txt:
- 2:40 PM Changeset in webkit [272439] by
-
- 3 edits in trunk/Source/WebCore
[Cocoa] CRASH in MediaPlayerPrivateMediaSourceAVFObjC::removeAudioRenderer()
https://bugs.webkit.org/show_bug.cgi?id=221490
<rdar://73966316>
Reviewed by Eric Carlson.
Add null-checks to every use of player() in SourceBufferPrivateAVFObjC.
- platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.h:
- platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm:
(WebCore::SourceBufferPrivateAVFObjC::didParseInitializationData):
(WebCore::SourceBufferPrivateAVFObjC::willProvideContentKeyRequestInitializationDataForTrackID):
(WebCore::SourceBufferPrivateAVFObjC::didProvideContentKeyRequestInitializationDataForTrackID):
(WebCore::SourceBufferPrivateAVFObjC::appendCompleted):
(WebCore::SourceBufferPrivateAVFObjC::destroyParser):
(WebCore::SourceBufferPrivateAVFObjC::destroyRenderers):
(WebCore::SourceBufferPrivateAVFObjC::readyState const):
(WebCore::SourceBufferPrivateAVFObjC::setReadyState):
(WebCore::SourceBufferPrivateAVFObjC::trackDidChangeEnabled):
(WebCore::SourceBufferPrivateAVFObjC::flushVideo):
(WebCore::SourceBufferPrivateAVFObjC::enqueueSample):
(WebCore::SourceBufferPrivateAVFObjC::bufferWasConsumed):
(WebCore::SourceBufferPrivateAVFObjC::setDecompressionSession):
(WebCore::SourceBufferPrivateAVFObjC::player const):
- 2:31 PM Changeset in webkit [272438] by
-
- 5 edits in trunk/Source/WebCore
[macOS] REGRESSION(r272352): missing track for videos that haven't fully loaded
https://bugs.webkit.org/show_bug.cgi?id=221500
Reviewed by Eric Carlson.
r272352 removed the
.track.fill
that was used as a "background" for the slider. For videos
that aren't fully loaded and are buffering, that "background" is necessary to indicate where
the slider is as the.track.secondary
only represents what's been buffered not the entire
length of the video/slider.
- Modules/modern-media-controls/controls/slider.js:
(Slider.prototype.commit):
- Modules/modern-media-controls/controls/slider.css:
(.slider > .custom-slider > .fill.primary): Added.
(.slider > .custom-slider > .fill.track): Added.
(.slider > .custom-slider > .fill.secondary): Added.
(.slider > .custom-slider > .primary): Deleted.
(.slider > .custom-slider > .secondary): Deleted.
Add back the background fill track removed in r272352, but adjust it so that it only draws
after the knob so that on macOS it doesn't draw in the space around the knob.
- Modules/modern-media-controls/controls/macos-fullscreen-media-controls.js:
(MacOSFullscreenMediaControls):
- Modules/modern-media-controls/controls/macos-inline-media-controls.js:
(MacOSInlineMediaControls):
Remove thesecondaryValue
calls since the background fill track has been added back.
- 1:16 PM Changeset in webkit [272437] by
-
- 2 edits in trunk/LayoutTests
[BigSur WK1] media/media-source/media-source-webm-append-buffer-after-abort.html is consistently failing
https://bugs.webkit.org/show_bug.cgi?id=221369
Unreviewed test gardening.
Patch by Amir Mark Jr <Amir Mark Jr.> on 2021-02-05
- platform/mac-wk1/TestExpectations: Mark as skip because test is not supported on wk1
- 1:08 PM Changeset in webkit [272436] by
-
- 13 edits in trunk
Generalize color conversion code to reduce number of overloads required
https://bugs.webkit.org/show_bug.cgi?id=221443
Reviewed by Darin Adler.
Source/WebCore:
Replace overloaded named conversion functions (e.g. toSRGBA(), toLab(), etc.)
with template specializion of a new ColorConversion struct:
template<> struct ColorConversion<Output, Input> {
Output convert(const Input& color) { ... }
};
which is accessed via a new generic convertColor<ColorType>() function.
This allows for a few improvements:
- Removes the need for each color type to define an identity conversion.
- Removes the need for each color type to define an generic conversion.
- Allows integration with component type conversion so a call like
convertTo<SRGBA<uint8_t>>(toSRGBA(hsla))
can now be written just as
convertColor<SRGBA<uint8_t>>(hsla)
This also provides a path forward for more optimizations / simplifications
since we can now reason about conversion based purely on types.
- css/parser/CSSPropertyParserHelpers.cpp:
(WebCore::CSSPropertyParserHelpers::parseRGBParameters):
(WebCore::CSSPropertyParserHelpers::parseHSLParameters):
(WebCore::CSSPropertyParserHelpers::parseHWBParameters):
(WebCore::CSSPropertyParserHelpers::parseLabParameters):
(WebCore::CSSPropertyParserHelpers::parseLCHParameters):
(WebCore::CSSPropertyParserHelpers::parseColorFunctionParameters):
Switch to convertColor<> and replace some unnecessary type with auto.
- editing/cocoa/DataDetection.mm:
(WebCore::DataDetection::detectContentInRange):
Adopt Color::toColorTypeLossy<> and convertColor<>.
- platform/graphics/Color.cpp:
(WebCore::Color::invertedColorWithAlpha const):
Adopt convertColor<>.
- platform/graphics/Color.h:
(WebCore::Color::toSRGBALossy const):
(WebCore::Color::toColorTypeLossy const):
Add generic conversion function toColorTypeLossy<>() and re-implement
toSRGBALossy<>() using it.
- platform/graphics/ColorConversion.cpp:
- platform/graphics/ColorConversion.h:
Replace function overloads with explicit specialization of the new ColorConversion
struct. Replace identity functions and fallback functions with a single non-specialized
ColorConversion which uses constexpr to handle the identity case, conversion to/from
SRGBA<uint8_t> (the only non-float color) and the fallback case.
- platform/graphics/ColorUtilities.cpp:
(WebCore::luminance):
Adopt convertColor<>.
- platform/graphics/cg/ColorCG.cpp:
(WebCore::roundAndClampToSRGBALossy):
(WebCore::leakCGColor):
Adopt convertColor<>.
- platform/graphics/filters/FELighting.cpp:
(WebCore::FELighting::drawLighting):
Adopt toColorTypeLossy<>.
- rendering/RenderTheme.cpp:
(WebCore::RenderTheme::datePlaceholderTextColor const):
Adopt Color::toColorTypeLossy<> and convertColor<>.
Tools:
- TestWebKitAPI/Tests/WebCore/ColorTests.cpp:
(TestWebKitAPI::TEST):
Update tests to use convertColor<>.
- 12:48 PM Changeset in webkit [272435] by
-
- 4 edits2 adds in trunk
[LFC][Integration] Hit testing broken for descendants of pointer-events:none boxes
https://bugs.webkit.org/show_bug.cgi?id=221460
Reviewed by Zalan Bujtas.
Source/WebCore:
Descendants of pointer-events:none boxes may still be hittestable if they override the value.
LFC integration hit testing code didn't take this into account.
Test: fast/events/hittest-pointer-event-none-descendants.html
- layout/integration/LayoutIntegrationLineLayout.cpp:
(WebCore::LayoutIntegration::LineLayout::hitTest):
Replaced and inline-block boxes do the visibility/pointer-events test themselves.
This code just needs to take care of text boxes.
LayoutTests:
- fast/events/hittest-pointer-event-none-descendants-expected.html: Added.
- fast/events/hittest-pointer-event-none-descendants.html: Added.
- 12:27 PM Changeset in webkit [272434] by
-
- 15 edits in trunk
Enable audio capture for speech recognition in GPUProcess
https://bugs.webkit.org/show_bug.cgi?id=221457
Reviewed by Eric Carlson.
Source/WebCore:
Add fake deviceId to play nice with capture ASSERTs.
Covered by updated tests.
- Modules/speech/SpeechRecognitionCaptureSource.cpp:
(WebCore::SpeechRecognitionCaptureSource::createRealtimeMediaSource):
Source/WebKit:
Allow to create remote sources without any constraint.
To do so, we serialize through IPC a MediaConstraints with isValid = false and treat it as no constraint in capture process.
Make sure to send sandbox extensions and authorizations for GPUProcess to capture in case of speech recognition audio capture request.
In case of GPUProcess audio capture, send the request to capture to WebProcess like done for iOS.
WebProcess is then responsible to get audio samples from GPUProcess and forward them to UIProcess.
A future refactoring should move speech recognition to GPUProcess.
- UIProcess/Cocoa/UserMediaCaptureManagerProxy.cpp:
(WebKit::UserMediaCaptureManagerProxy::createMediaSourceForCaptureDeviceWithConstraints):
- UIProcess/UserMediaPermissionRequestManagerProxy.cpp:
(WebKit::UserMediaPermissionRequestManagerProxy::grantRequest):
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::createRealtimeMediaSourceForSpeechRecognition):
- WebProcess/Speech/SpeechRecognitionRealtimeMediaSourceManager.cpp:
(WebKit::SpeechRecognitionRealtimeMediaSourceManager::grantSandboxExtensions):
(WebKit::SpeechRecognitionRealtimeMediaSourceManager::createSource):
- WebProcess/cocoa/RemoteRealtimeMediaSource.cpp:
(WebKit::RemoteRealtimeMediaSource::create):
(WebKit::RemoteRealtimeMediaSource::RemoteRealtimeMediaSource):
(WebKit::RemoteRealtimeMediaSource::createRemoteMediaSource):
(WebKit::RemoteRealtimeMediaSource::~RemoteRealtimeMediaSource):
(WebKit::RemoteRealtimeMediaSource::cloneVideoSource):
(WebKit::RemoteRealtimeMediaSource::gpuProcessConnectionDidClose):
- WebProcess/cocoa/RemoteRealtimeMediaSource.h:
- WebProcess/cocoa/UserMediaCaptureManager.cpp:
(WebKit::UserMediaCaptureManager::AudioFactory::createAudioCaptureSource):
(WebKit::UserMediaCaptureManager::VideoFactory::createVideoCaptureSource):
(WebKit::UserMediaCaptureManager::DisplayFactory::createDisplayCaptureSource):
LayoutTests:
- fast/speechrecognition/ios/restart-recognition-after-stop.html:
- fast/speechrecognition/ios/start-recognition-then-stop.html:
- fast/speechrecognition/start-recognition-then-stop.html:
- fast/speechrecognition/start-second-recognition.html:
- 12:18 PM Changeset in webkit [272433] by
-
- 18 edits2 adds in trunk
Web Inspector: Implement backend support for maintaining a list of Grid layout contexts
https://bugs.webkit.org/show_bug.cgi?id=221228
Reviewed by Devin Rousso.
Source/JavaScriptCore:
Added
CSS.LayoutContextType
property toDOM.Node
and addedCSS.nodeLayoutContextTypeChanged
event.
- inspector/protocol/CSS.json:
- Added
CSS.LayoutContextType
type. - Added
DOM.nodeLayoutContextTypeChanged
event. - inspector/protocol/DOM.json:
- Added
layoutContextType
property toDOM.Node
type.
Source/WebCore:
Test: inspector/dom/layout-context.html
Implemented support for getting the layout context for
grid
nodes as part of the existingDOM.Node
protocol
object as well as firing an event when the layout context type changes for a node.
- dom/Element.cpp:
(WebCore::Element::didChangeRenderer):
- Handle the underlying RenderObject changing.
- dom/Element.h:
- dom/Node.h:
(WebCore::Node::didChangeRenderer):
- inspector/InspectorInstrumentation.cpp:
(WebCore::InspectorInstrumentation::nodeLayoutContextChangedImpl):
- inspector/InspectorInstrumentation.h:
(WebCore::InspectorInstrumentation::nodeLayoutContextChanged):
- Add instrumentation for layout context changes.
- inspector/agents/InspectorCSSAgent.cpp:
(WebCore::InspectorCSSAgent::layoutContextTypeForRenderer):
(WebCore::InspectorCSSAgent::nodeLayoutContextTypeChanged):
- Inform the frontend when a known node changes its layout context.
- inspector/agents/InspectorCSSAgent.h:
- inspector/agents/InspectorDOMAgent.cpp:
(WebCore::InspectorDOMAgent::buildObjectForNode):
- Set the layout context for nodes that will be new to the frontend.
- rendering/RenderObject.h:
(WebCore::Node::setRenderer):
Source/WebInspectorUI:
Added
layoutContextType
property toWI.DOMNode
and listener forCSS.nodeLayoutContextTypeChanged
event.
- UserInterface/Controllers/DOMManager.js:
(WI.DOMManager.prototype.nodeLayoutContextTypeChanged):
- When a node's layout context changes, update the WI.DOMNode
- UserInterface/Models/DOMNode.js:
(WI.DOMNode):
(WI.DOMNode.prototype.get layoutContextType):
(WI.DOMNode.prototype.set layoutContextType):
- Fire an event when the layout context type changes.
- UserInterface/Protocol/CSSObserver.js:
(WI.CSSObserver.prototype.nodeLayoutContextTypeChanged):
- Listen for the
CSS.nodeLayoutContextTypeChanged
event.
LayoutTests:
Added tests for
CSS.nodeLayoutContextTypeChanged
event and corresponding properties.
- inspector/css/nodeLayoutContextTypeChanged-expected.txt: Added.
- inspector/css/nodeLayoutContextTypeChanged.html: Added.
- 11:26 AM Changeset in webkit [272432] by
-
- 1 copy in tags/Safari-612.1.2.1
Tag Safari-612.1.2.1.
- 11:13 AM Changeset in webkit [272431] by
-
- 2 edits in trunk/JSTests
Unreviewd, update test262/config.yaml
Tests are failing only in OSS build since OSS build is building WebKit with very old ICU headers.
- test262/config.yaml:
- 11:08 AM Changeset in webkit [272430] by
-
- 2 edits in trunk/Source/JavaScriptCore
Unreviewed, follow-up change after r272428
https://bugs.webkit.org/show_bug.cgi?id=221454
isPropertyNameExcluded can invoke GC etc. Structure::forEachProperty can miss PropertyTable and Structure
reference when it is highly optimized, so that it can crash if GC happens in the middle of Structure::forEachProperty.
- Insert ensureStillAliveHere in Structure::forEachProperty to ensure liveness of PropertyTable
- We should not perform side-effectful operation including GC in Structure::forEachProperty. So we moved isPropertyNameExcluded.
- runtime/StructureInlines.h:
(JSC::Structure::forEachProperty):
- 10:59 AM Changeset in webkit [272429] by
-
- 2 edits in trunk/Source/WebCore
[GPUProcess] If the GPUProcess crashes during fullscreen playback, video pauses and exits fullscreen
https://bugs.webkit.org/show_bug.cgi?id=221485
Reviewed by Eric Carlson.
If the GPUProcess crashed during fullscreen playback, video would pause and exit fullscreen. This was suboptimal.
The video now just resumes playing while in fullscreen, just like we do when inline.
- html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::mediaPlayerReloadAndResumePlaybackIfNeeded):
- 10:58 AM Changeset in webkit [272428] by
-
- 3 edits1 add in trunk
[JSC] globalFuncCopyDataProperties should not perform GC-sensitive operation in the middle of Structure::forEachProperty
https://bugs.webkit.org/show_bug.cgi?id=221454
Reviewed by Mark Lam.
JSTests:
- stress/copy-data-properties-fast-path.js: Added.
(foo):
Source/JavaScriptCore:
isPropertyNameExcluded can invoke GC etc. And running Structure::forEachProperty
is fragile state against any side-effect including GC.
We should not perform GC-sensitive operation during Structure::forEachProperty.
- runtime/JSGlobalObjectFunctions.cpp:
(JSC::JSC_DEFINE_HOST_FUNCTION):
- 10:53 AM Changeset in webkit [272427] by
-
- 2 edits in trunk/LayoutTests
[GPU Process] Repopulate the TestExpectations file #2
https://bugs.webkit.org/show_bug.cgi?id=221446
Unreviewed test gardening.
Patch by Rini Patel <rini_patel@apple.com> on 2021-02-05
- gpu-process/TestExpectations:
- 10:49 AM Changeset in webkit [272426] by
-
- 5 edits2 deletes in trunk/LayoutTests
Remove GPUProcess flag in MediaRecorder tests
https://bugs.webkit.org/show_bug.cgi?id=221401
Reviewed by Eric Carlson.
Remove test that is the same as http/wpt/mediarecorder/MediaRecorder-AV-audio-video-dataavailable.html.
- http/wpt/mediarecorder/MediaRecorder-AV-audio-video-dataavailable-gpuprocess-expected.txt: Removed.
- http/wpt/mediarecorder/MediaRecorder-AV-audio-video-dataavailable-gpuprocess.html: Removed.
- http/wpt/mediarecorder/MediaRecorder-AV-audio-video-dataavailable.html:
- http/wpt/mediarecorder/pause-recording.html:
Increase timer to cope with added latency introduced by IPC messaging.
- platform/mac-wk2/TestExpectations:
- 10:44 AM Changeset in webkit [272425] by
-
- 4 edits in trunk/Source/WebKit
ASSERTION FAILED: Completion handler should always be called under WebKit::VideoFullscreenManagerProxy::forEachSession
https://bugs.webkit.org/show_bug.cgi?id=221343
<rdar://problem/73939450>
Reviewed by Youenn Fablet.
If a client tries to exit fullscreen mode when there is no fullscreen
video present, we should call the completion handler immediately and
return.
Rename requestFullscreenModeWithCallback to requestCloseAllMediaPresentations
because the completion handler is only called when all media presentations
are closed. requestFullscreenModeWithCallback makes it seem like we
can use this function with other modes besides VideoFullscreenModeNone.
No new tests, this will fix a crashing iOS test.
- UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView closeAllMediaPresentations:]):
- UIProcess/Cocoa/VideoFullscreenManagerProxy.h:
- UIProcess/Cocoa/VideoFullscreenManagerProxy.mm:
(WebKit::VideoFullscreenModelContext::requestCloseAllMediaPresentations):
(WebKit::VideoFullscreenManagerProxy::requestCloseAllMediaPresentations):
(WebKit::VideoFullscreenModelContext::requestFullscreenModeWithCallback): Deleted.
(WebKit::VideoFullscreenManagerProxy::requestFullscreenModeWithCallback): Deleted.
- 10:40 AM Changeset in webkit [272424] by
-
- 8 edits in branches/safari-611-branch/Source
Versioning.
WebKit-7611.1.15
- 10:31 AM Changeset in webkit [272423] by
-
- 3 edits in trunk/Tools
[ews] commit-queue should use commits.webkit.org url instead of trac url
https://bugs.webkit.org/show_bug.cgi?id=221476
Reviewed by Jonathan Bedard.
- CISupport/ews-build/steps.py:
(PushCommitToWebKitRepo.url_for_revision):
- CISupport/ews-build/steps_unittest.py:
- 10:27 AM Changeset in webkit [272422] by
-
- 6 edits2 adds in trunk
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:
- 10:12 AM Changeset in webkit [272421] by
-
- 9 edits in trunk/Source/WebCore
StyleImage refinement to follow up recent changes
https://bugs.webkit.org/show_bug.cgi?id=221434
Reviewed by Sam Weinig.
- rendering/style/FillLayer.cpp:
(WebCore::FillLayer::hasOpaqueImage const): Pass a reference.
- rendering/style/StyleCachedImage.cpp:
(WebCore::StyleCachedImage::knownToBeOpaque const): Take a reference.
- rendering/style/StyleCachedImage.h: Take a reference.
- rendering/style/StyleGeneratedImage.cpp:
(WebCore::StyleGeneratedImage::imageSize const): Simplify using an early return.
Remove an unnnecessary redundant null check.
(WebCore::StyleGeneratedImage::knownToBeOpaque const): Take and pass a reference.
- rendering/style/StyleGeneratedImage.h: Take a reference.
- rendering/style/StyleImage.h: Take a reference.
- rendering/style/StyleMultiImage.cpp:
(WebCore::StyleMultiImage::knownToBeOpaque const): Take a reference.
- rendering/style/StyleMultiImage.h: Take a reference.
- 9:38 AM Changeset in webkit [272420] by
-
- 2 edits in trunk/LayoutTests
REGRESSION (r272392): [ MacOS ] webaudio/audioworklet-addModule-failure.html is flakey timing out
https://bugs.webkit.org/show_bug.cgi?id=221469
<rdar://problem/74027196>
Unreviewed, make sure the test triggers JS garbage collection before exiting so that the next test does
not fail with an out-of-memory error.
- webaudio/audioworket-out-of-memory.html:
- 9:20 AM Changeset in webkit [272419] by
-
- 3 edits in trunk/Source/WebKit
Remove access to IOMobileFramebufferUserClient
https://bugs.webkit.org/show_bug.cgi?id=221408
<rdar://problem/70551457>
Reviewed by Brent Fulgham.
Remove access to the IOKit class IOMobileFramebufferUserClient in the WebContent process on macOS and iOS
when the GPU process is enabled.
- Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
- WebProcess/com.apple.WebProcess.sb.in:
- 9:11 AM Changeset in webkit [272418] by
-
- 2 edits in trunk/Source/WebKit
CrashTracer: com.apple.WebKit.Networking at WebKit: WebKit::ResourceLoadStatisticsDatabaseStore::setPrevalentResource
https://bugs.webkit.org/show_bug.cgi?id=221432
<rdar://problem/67069819>
Reviewed by John Wilander.
We are seeing crashes in ResourceLoadStatisticsDatabaseStore::setPrevalentResource
as a result of trying to use a nullopt domainID value. In theory this should
never be WTF::nullopt but is because of a failing SQLite query in
ResourceLoadStatisticsDatabaseStore::domainID which reports the error "not an error".
To fix this we should check the domain ID and return early with a
debug assert in setPrevalentResource() if it is WTF::nullopt to avoid
a crash. Additionally, we should add more information to the logging
statement, specifically the SQLite statement string, to try and debug further.
- NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp:
(WebKit::ResourceLoadStatisticsDatabaseStore::domainID const):
(WebKit::ResourceLoadStatisticsDatabaseStore::setPrevalentResource):
- 8:54 AM Changeset in webkit [272417] by
-
- 9 edits in trunk/Source/WebKit
SpeechRecognitionPermissionManager should not handle requests that are already cancelled
https://bugs.webkit.org/show_bug.cgi?id=221296
Patch by Sihui Liu <sihui_liu@appe.com> on 2021-02-05
Reviewed by Youenn Fablet.
It is possible that client asks to stop/abort pending requests, which are waiting for permission check to be
done. In our current implementation, SpeechRecognitionPermissionManager would perform permission checks for
these cancelled requests, which is unnecessary and may cause extra prompts. We should let
SpeechRecognitionPermissionManager check if request is still valid before checking permissions.
No test is added as this behavior change is not observable without resetting the TCC permission between requests.
- UIProcess/SpeechRecognitionPermissionManager.cpp:
(WebKit::SpeechRecognitionPermissionManager::request):
(WebKit::SpeechRecognitionPermissionManager::startNextRequest):
(WebKit::SpeechRecognitionPermissionManager::startProcessingRequest):
(WebKit::SpeechRecognitionPermissionManager::continueProcessingRequest):
(WebKit::SpeechRecognitionPermissionManager::requestUserPermission):
- UIProcess/SpeechRecognitionPermissionManager.h:
- UIProcess/SpeechRecognitionPermissionRequest.h:
(WebKit::SpeechRecognitionPermissionRequest::create):
(WebKit::SpeechRecognitionPermissionRequest::~SpeechRecognitionPermissionRequest):
(WebKit::SpeechRecognitionPermissionRequest::request):
(WebKit::SpeechRecognitionPermissionRequest::SpeechRecognitionPermissionRequest):
(WebKit::SpeechRecognitionPermissionRequest::origin const): Deleted.
(WebKit::SpeechRecognitionPermissionRequest::lang const): Deleted.
(WebKit::SpeechRecognitionPermissionRequest::frameIdentifier const): Deleted.
- UIProcess/SpeechRecognitionServer.cpp:
(WebKit::SpeechRecognitionServer::requestPermissionForRequest):
(WebKit::SpeechRecognitionServer::sendUpdate):
- UIProcess/SpeechRecognitionServer.h:
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::requestSpeechRecognitionPermission):
- UIProcess/WebPageProxy.h:
- UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::createSpeechRecognitionServer):
- 8:38 AM Changeset in webkit [272416] by
-
- 3 edits in trunk/Source/WebCore
[LFC][IFC] Add support for "word separator" when the whitespace content has multiple characters
https://bugs.webkit.org/show_bug.cgi?id=221355
Reviewed by Antti Koivisto.
Keep track of word separator characters in whitespace content even when the whitespace content has multiple characters.
This fixes cases when "word-spacing" has a non-zero value in "space and tab preserve" content (e.g <pre style="word-spacing: 200px">This content has spaces and tabs</pre>)
(On trunk we fail to adjust the run position with the word-spacing value because the whitespace content is not marked as a word separator.)
- layout/inlineformatting/InlineTextItem.cpp:
(WebCore::Layout::moveToNextNonWhitespacePosition):
(WebCore::Layout::InlineTextItem::createAndAppendTextItems):
- layout/inlineformatting/InlineTextItem.h:
(WebCore::Layout::InlineTextItem::createNonWhitespaceItem):
- 8:19 AM Changeset in webkit [272415] by
-
- 2 edits in trunk/Tools
[Flatpak SDK] Print stderr when coredumpctl fails
https://bugs.webkit.org/show_bug.cgi?id=221448
Reviewed by Philippe Normand.
- flatpak/flatpakutils.py:
(WebkitFlatpak.run_gdb):
- 7:50 AM Changeset in webkit [272414] by
-
- 11 edits in trunk
[GPUProcess][iOS] Audio is lost after media playback recovers from the GPUProcess crash
https://bugs.webkit.org/show_bug.cgi?id=221305
<rdar://problem/73904864>
Reviewed by Eric Carlson.
Source/WebCore:
The issue was that when the GPUProcess crashed while in the middle of media playback, we would
fail to remove the old/invalid AudioTrack and then append the new/valid AudioTrack upon
recovery. We would end up using the wrong old AudioTrack instead of the new track as a result.
To address the issue, I have refactored the code so that the "reload and resume" logic now
resides in HTMLMediaElement instead of MediaPlayer. This makes sure that the HTMLMediaElement
object's state stays good. In particular, when HTMLMediaElement::prepareToLoad() is called,
it calls forgetResourceSpecificTracks() to drop the old/invalid AudioTracks.
- html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::mediaPlayerReloadAndResumePlaybackIfNeeded):
- html/HTMLMediaElement.h:
- platform/graphics/MediaPlayer.cpp:
(WebCore::MediaPlayer::reloadAndResumePlaybackIfNeeded):
- platform/graphics/MediaPlayer.h:
(WebCore::MediaPlayerClient::mediaPlayerUserAgent const):
(WebCore::MediaPlayerClient::mediaPlayerReloadAndResumePlaybackIfNeeded):
Source/WebKit:
Fix issue where we would sometimes lose the video after recovering from a GPUProcess
crash. The issue is that RemoteMediaPlayerProxy::setVideoInlineSizeFenced() may get
called *before* RemoteMediaPlayerProxy::mediaPlayerFirstVideoFrameAvailable(). As a
result, we would not have a root layer yet and we would fail to set the video
dimensions and they would remain at 0x0.
- GPUProcess/media/RemoteMediaPlayerProxy.cpp:
- GPUProcess/media/RemoteMediaPlayerProxy.h:
- GPUProcess/media/cocoa/RemoteMediaPlayerProxyCocoa.mm:
(WebKit::setVideoInlineSizeIfPossible):
(WebKit::RemoteMediaPlayerProxy::mediaPlayerFirstVideoFrameAvailable):
(WebKit::RemoteMediaPlayerProxy::setVideoInlineSizeFenced):
Tools:
Unskip API test checks on iOS now that they are passing.
- TestWebKitAPI/Tests/WebKitCocoa/GPUProcess.mm:
(TEST):
- 7:11 AM Changeset in webkit [272413] by
-
- 2 edits in trunk/Source/ThirdParty/libwebrtc
[CMake] Hide libwebrtc symbols
https://bugs.webkit.org/show_bug.cgi?id=221333
This is a naive approach to hide libwebrtc symbols, particularly beacuse of boringssl, which
migth collide with system's libssl. It compiles libwebrtc with visibility set to hidden.
Patch by Víctor Manuel Jáquez Leal <vjaquez@igalia.com> on 2021-02-05
Reviewed by Michael Catanzaro.
- CMakeLists.txt:
- 6:29 AM Changeset in webkit [272412] by
-
- 4 edits in trunk/Source/WebCore
[LFC][IFC] Incorrect last potential wrap position when inline box is present
https://bugs.webkit.org/show_bug.cgi?id=221437
Reviewed by Antti Koivisto.
The trailing run of the continuous content is not necessarily a legal wrap position.
In some cases when the text content is embedded in an inline box, the wrap position may be part of
the subsequent content e.g.
<div>content<span> <-space</span></div>
This maps to the following set of inline items:
[content][inline box start][ ][<-space][inline box end]
This content produces 3 sets of continuous content for line breaking
[non-whitespace content]
[inline box start][whitespace content]
[non-whitespace content][inline box end]
While the soft wrap opportunity is at [whitespace content], the content boundary is at a different position, right before
the [inline box start] since the content inside the inline box always belongs to the inline box.
(as opposed to [non-whitespace content][inline box start] and a separate [whitespace content] set)
In this patch we start tracking the "has trailing soft wrap opportunity" in LineCandidate and pass it to the InlineContentBreaker
as part of the line status.
- layout/inlineformatting/InlineContentBreaker.cpp:
(WebCore::Layout::InlineContentBreaker::isWrappingAllowed):
(WebCore::Layout::InlineContentBreaker::processInlineContent):
(WebCore::Layout::InlineContentBreaker::processOverflowingContent const):
(WebCore::Layout::InlineContentBreaker::processOverflowingContentWithText const):
(WebCore::Layout::InlineContentBreaker::wordBreakBehavior const):
(WebCore::Layout::InlineContentBreaker::tryBreakingTextRun const):
(WebCore::Layout::isWrappingAllowed): Deleted.
(WebCore::Layout::lastWrapOpportunityIndex): Deleted.
- layout/inlineformatting/InlineContentBreaker.h:
- layout/inlineformatting/InlineLineBuilder.cpp:
(WebCore::Layout::LineCandidate::InlineContent::setHasTrailingSoftWrapOpportunity):
(WebCore::Layout::LineCandidate::InlineContent::hasTrailingSoftWrapOpportunity const):
(WebCore::Layout::LineBuilder::candidateContentForLine):
(WebCore::Layout::LineBuilder::handleInlineContent):
- 6:26 AM Changeset in webkit [272411] by
-
- 4 edits in trunk
Object.assign should throw for property creation on non-extensible
target
https://bugs.webkit.org/show_bug.cgi?id=220712
Reviewed by Ross Kirsling.
JSTests:
- stress/object-assign-fast-path.js:
Source/JavaScriptCore:
This performance-neutral change precludes Object.assign from taking the
fast path iftarget
is a non-extensible JSFinalObject, which ensures
a TypeError is thrown for property creation via Set?.
Aligns JSC with the spec [1], V8, and SpiderMonkey.
[1]: https://tc39.es/ecma262/#sec-validateandapplypropertydescriptor (step 2.a)
- runtime/ObjectConstructor.cpp:
(JSC::JSC_DEFINE_HOST_FUNCTION):
- 5:23 AM Changeset in webkit [272410] by
-
- 2 edits in trunk/Source/WebCore
[SOUP] Fix error handling in WebKitFormDataInputStream
https://bugs.webkit.org/show_bug.cgi?id=221459
Reviewed by Adrian Perez de Castro.
We are checking the error parameter passed, that can be nullptr when not provided, we should be checking the
return value of g_input_stream_read() instead.
- platform/network/soup/WebKitFormDataInputStream.cpp:
(webkitFormDataInputStreamRead):
- 5:22 AM Changeset in webkit [272409] by
-
- 4 edits in trunk
REGRESSION(r271879) [SOUP] webrtc/datachannel/gather-candidates-networkprocess-crash.html is crashing in debug mode
https://bugs.webkit.org/show_bug.cgi?id=221379
Reviewed by Youenn Fablet.
Source/WebKit:
- NetworkProcess/soup/WebKitDirectoryInputStream.cpp:
(webkitDirectoryInputStreamRead): Fix bytes read calculation.
LayoutTests:
Remove expectations for tests that are now passing.
- platform/glib/TestExpectations:
- 3:02 AM Changeset in webkit [272408] by
-
- 4 edits in trunk/Source/WebKit
[GTK] clang warnings
https://bugs.webkit.org/show_bug.cgi?id=221410
Reviewed by Adrian Perez de Castro.
- NetworkProcess/NetworkResourceLoader.cpp:
(WebKit::NetworkResourceLoader::resourceLoadInfo): Remove ifdef added in r272313, the
corresponding enum value is not ifdeffed either.
- UIProcess/SpeechRecognitionServer.cpp:
(WebKit::SpeechRecognitionServer::sendUpdate): Use portable format specifier for uint64_t.
- WebProcess/Speech/SpeechRecognitionRealtimeMediaSourceManager.cpp: Ifdef member variable
currently used only on Cocoa platforms.
- 2:03 AM Changeset in webkit [272407] by
-
- 2 edits in trunk/Tools
[GTK] run-gtk-tests: Support running individual tests for GTest test suites
https://bugs.webkit.org/show_bug.cgi?id=221050
Reviewed by Adrian Perez de Castro.
run-gtk-tests accepts any number of optional
-p
arguments to run
only certain tests. Unfortunately, this feature is only currently
implemented for glib tests suites.
This patch adds support for this feature with gtest suites as well.
- glib/api_test_runner.py:
(TestRunner._run_google_test_suite):
(TestRunner._run_test):
- 12:45 AM Changeset in webkit [272406] by
-
- 3 edits1 add in trunk
[JSC] JSImmutableButterfly's toString cache should not happen for generic join
https://bugs.webkit.org/show_bug.cgi?id=221444
<rdar://problem/73972862>
Reviewed by Mark Lam.
JSTests:
- stress/immutable-butterfly-to-string-cache-should-not-happen-for-generic-join.js: Added.
(foo):
Source/JavaScriptCore:
We should not cache Array#toString results with JSImmutableButterfly if
its join operation becomes generic join: including objects in array, since
this can invoke object.toString(), and it isn't side-effect free.
- runtime/ArrayPrototype.cpp:
(JSC::fastJoin):
(JSC::JSC_DEFINE_HOST_FUNCTION):
- 12:45 AM Changeset in webkit [272405] by
-
- 8 edits6 adds in trunk
[JSC] Atomics.store in DFG / FTL should return ToNumber(input) value
https://bugs.webkit.org/show_bug.cgi?id=221438
<rdar://problem/73973264>
Reviewed by Filip Pizlo.
JSTests:
- stress/atomic-store-result-type-in-ai.js: Added.
- stress/atomics-store-result-double-nan.js: Added.
(shouldBe):
(test):
- stress/atomics-store-result-double-negative-zero.js: Added.
(shouldBe):
(test):
- stress/atomics-store-result-double.js: Added.
(shouldBe):
(test):
- stress/atomics-store-result-int52.js: Added.
(shouldBe):
- stress/atomics-store-result.js: Added.
(shouldBe):
Source/JavaScriptCore:
Atomics.store is different from the other ReadModifyWrite atomics. It returns the input value without truncating it into TypedArray's requirement.
For example,
var u8 = new Uint8Array(8);
Atomics.store(u8, 0, 0xffff) === 0xffff Not 0xff.
However DFG and FTL implementations do not handle it correctly.
This patch fixes AI, fixup, and code generations to handle this.
- dfg/DFGAbstractInterpreterInlines.h:
(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):
- dfg/DFGFixupPhase.cpp:
(JSC::DFG::FixupPhase::fixupNode):
- dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::compileGetByValOnIntTypedArray):
(JSC::DFG::SpeculativeJIT::getIntTypedArrayStoreOperandForAtomics):
- dfg/DFGSpeculativeJIT.h:
- dfg/DFGSpeculativeJIT64.cpp:
(JSC::DFG::SpeculativeJIT::compile):
- ftl/FTLLowerDFGToB3.cpp:
(JSC::FTL::DFG::LowerDFGToB3::compileAtomicsReadModifyWrite):
(JSC::FTL::DFG::LowerDFGToB3::compileGetByVal):
(JSC::FTL::DFG::LowerDFGToB3::setIntTypedArrayLoadResult):
(JSC::FTL::DFG::LowerDFGToB3::toIntegerOrInfinity):
Feb 4, 2021:
- 11:40 PM Changeset in webkit [272404] by
-
- 3 edits in trunk/LayoutTests
Add intermediate volume icon states between "mute" and "max"
https://bugs.webkit.org/show_bug.cgi?id=221371
Unreviewed test fix.
- media/modern-media-controls/mute-button/mute-button.html:
- media/modern-media-controls/mute-button/mute-button-expected.txt:
- 7:56 PM Changeset in webkit [272403] by
-
- 3 edits1 add in trunk/LayoutTests
[GLIB] Gardening accessibility and font failures
Unreviewed test gardening.
The img-with-svg-source.html test differed only in the content of the
image.description field, with empty AXDescription text, like other
accessibility tests.
- platform/glib/TestExpectations:
- platform/glib/accessibility/img-with-svg-source-expected.txt: Added.
- platform/gtk/TestExpectations:
- 5:36 PM Changeset in webkit [272402] by
-
- 1 copy in releases/WPE WebKit/webkit-2.31.1
WPE WebKit 2.31.31
- 5:35 PM Changeset in webkit [272401] by
-
- 4 edits in trunk
Unreviewed. Update OptionsWPE.cmake and NEWS for the 2.31.1 release
.:
- Source/cmake/OptionsWPE.cmake: Bump version numbers.
Source/WebKit:
- wpe/NEWS: Add release notes for 2.31.1.
- 5:11 PM Changeset in webkit [272400] by
-
- 3 edits in trunk/Source/WebKit
REGRESSION (r272382): 2 webkit.messages_unittest.GeneratedFileContentsTest tests failing after Semaphore.h rename
https://bugs.webkit.org/show_bug.cgi?id=221433
Reviewed by Don Olmstead.
Looks like some changes were accidentally dropped prior to landing.
- Scripts/webkit/tests/MessageArgumentDescriptions.cpp:
- Scripts/webkit/tests/TestWithSemaphoreMessageReceiver.cpp:
- 4:55 PM Changeset in webkit [272399] by
-
- 3 edits in trunk/Tools
[build.webkit.org] Update dashboard links for layout test results
https://bugs.webkit.org/show_bug.cgi?id=221280
Reviewed by Jonathan Bedard.
- CISupport/build-webkit-org/public_html/dashboard/Scripts/Buildbot.js:
(Buildbot): Set baseURLForResults.
(Buildbot.prototype.layoutTestResultsDirectoryURLForIteration): Use baseURLForResults if available.
- CISupport/build-webkit-org/public_html/dashboard/Scripts/WebKitBuildbot.js:
(WebKitBuildbot): Pass baseURLForResults appropriately.
- 4:54 PM Changeset in webkit [272398] by
-
- 3 edits1 delete in trunk/Tools
[Python-3] Change shebang in test-webkitpy (Part-2)
https://bugs.webkit.org/show_bug.cgi?id=221415
<rdar://problem/73986503>
Reviewed by Michael Catanzaro.
- CISupport/build-webkit-org/steps.py:
(RunWebKitPyTests): Run test-webkitpy with Python 3.
- Scripts/test-webkitpy: Change shebang.
- Scripts/test-webkitpy-python3: Removed.
- 4:27 PM Changeset in webkit [272397] by
-
- 2 edits in trunk/Tools
[Python-3] Change shebang in git-webkit (Follow-up fix)
https://bugs.webkit.org/show_bug.cgi?id=221412
<rdar://problem/73983881>
Unreviewed follow-up fix.
- Scripts/libraries/webkitcorepy/webkitcorepy/subprocess_utils.py:
(run): Python 3.6 does not support capture_output in subprocess.run()
- 4:17 PM Changeset in webkit [272396] by
-
- 7 edits2 adds in trunk
Null dereference in DocumentLoader::commitData()
https://bugs.webkit.org/show_bug.cgi?id=221097
Patch by Julian Gonzalez <julian_a_gonzalez@apple.com> on 2021-02-04
Reviewed by Alex Christensen.
Source/WebCore:
Be careful to check the return value of DocumentWriter::begin()
before calling DocumentWriter::setDocumentWasLoadedAsPartOfNavigation().
This work involves exposing MediaDocument.h.
Test: loader/cancel-load-crash.html
- Headers.cmake:
- WebCore.xcodeproj/project.pbxproj:
- loader/DocumentLoader.cpp:
(WebCore::DocumentLoader::commitData):
Source/WebKit:
As we add another return-early case to commitData(),
WebFrameLoaderClient::committedLoad() has to allow for
the absence of a Document.
- WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
(WebKit::WebFrameLoaderClient::committedLoad):
LayoutTests:
Add a test that catches the null dereference
in DocumentLoader::commitData().
- loader/cancel-load-crash-expected.txt: Added.
- loader/cancel-load-crash.html: Added.
- 4:15 PM Changeset in webkit [272395] by
-
- 5 edits3 adds in trunk
Potential crash under BaseAudioContext's toJSNewlyCreated()
https://bugs.webkit.org/show_bug.cgi?id=221423
<rdar://73352543>
Reviewed by Darin Adler.
Source/WebCore:
BaseAudioContext has subclasses (AudioContext & OfflineAudioContext) that are exposed to JS
(for which we call toJS() for). As a result, BaseAudioContext needs a custom toJS()
implementation which returns the correct subclass wrapper (JSOfflineAudioContext &
JSAudioContext), instead of a JSBaseAudioContext.
Test: webaudio/base-audio-context-wrapper-gc.html
- Modules/webaudio/BaseAudioContext.idl:
- Sources.txt:
- WebCore.xcodeproj/project.pbxproj:
- bindings/js/JSBaseAudioContextCustom.cpp: Added.
(WebCore::toJSNewlyCreated):
(WebCore::toJS):
LayoutTests:
Add layout test coverage.
- webaudio/base-audio-context-wrapper-gc-expected.txt: Added.
- webaudio/base-audio-context-wrapper-gc.html: Added.
- 4:10 PM Changeset in webkit [272394] by
-
- 5 edits in trunk/Source/WebCore
Avoid creating JS wrapper on a removed node when the subtree is not observable
https://bugs.webkit.org/show_bug.cgi?id=221243
<rdar://problem/73719386>
Reviewed by Geoffrey Garen.
Prior to this patch, WebKit forced the creation the JS wrapper on the root DOM node of a removed subtree
to avoid script observable deletion of nodes. This is necessary because DOM nodes are reference counted
in the C++ side, and while a DOM node keeps its child nodes alive, it won't keep its parent node alive
to avoid reference cycles (leaks). If we didn't force the creation of the JS wrapper and the root node
of the removed subtree didn't have any external reference to it in C++ side, we would happily delete it
and all its descendant nodes above any subtree with a JS wrapper or an external C++ reference.
While this turned out to be an effective strategy for implementing DOM nodes' GC semantics correctly,
it has a significant runtime and memory cost - the latter is because we don't collect the JS wrappers
of DOM nodes once they're created until they're ready to be destructed.
This patch introduces a new optimization to avoid creating these JS wrappers when the removed subtree
won't be observable by scripts in the future. The current heuristic is to check if the removed node
has any external reference to it (i.e. refCount() > 0 excluding any reference counting that happens within
our algorithm). This is sufficient because a given node should not be observable at a later time unless
it has an external reference to it. This is ~0.5% progression on Speedometer-2.0 on MacBookAir7,2.
To do this, we take advantage of the fact notifyChildNodeRemoved already traverses each removed subtree,
and check if any of them has a reference count greater than 1 (greater than 1 because notifyChildNodeRemoved
itself increments node's reference count before calling itself on child nodes). Note that we exclude the
root node of the removed subtree as these JS wrapper creation is only needed to keep the root node alive.
If the root node is already kept alive by some external reference to it, there is no need to keep it alive
again by creating a JS wrapper on it.
No new tests since existing tests such as fast/dom/gc-3.html covers it.
- dom/ContainerNode.cpp:
(WebCore::ContainerNode::removeAllChildrenWithScriptAssertion): Call willCreatePossiblyOrphanedTreeByRemoval
if the removed subtree contains an observable node.
(WebCore::ContainerNode::removeNodeWithScriptAssertion): Ditto.
(WebCore::ContainerNode::removeSelfOrChildNodesForInsertion): Renamed from collectChildrenAndRemoveFromOldParent.
Avoid collecting the removed nodes in this function in addition to removeAllChildrenWithScriptAssertion.
(WebCore::ContainerNode::insertBefore):
(WebCore::ContainerNode::replaceChild):
(WebCore::ContainerNode::appendChildWithoutPreInsertionValidityCheck):
(WebCore::dispatchChildRemovalEvents): Don't call willCreatePossiblyOrphanedTreeByRemoval here.
- dom/ContainerNode.h:
- dom/ContainerNodeAlgorithms.cpp:
(WebCore::observabilityOfRemovedNode): Added. Checks the observability of a node excluding the root node of
the removed subtree since it needs a special case in removeAllChildrenWithScriptAssertion.
As notifyNodeRemovedFromDocument and notifyNodeRemovedFromTree ref's each child node before recursing on itself,
we check refCount() > 1 here.
(WebCore::updateObservability): Added. A helper function to update RemovedSubtreeObservability.
(WebCore::notifyNodeRemovedFromDocument): Now returns RemovedSubtreeObservability,
(WebCore::notifyNodeRemovedFromTree): Ditto.
(WebCore::notifyChildNodeRemoved): Ditto.
- dom/ContainerNodeAlgorithms.h:
- 3:59 PM Changeset in webkit [272393] by
-
- 13 edits2 adds in trunk
RELEASE_ASSERT(bigInt) in VM constructor when constructing a WorkletGlobalScope
https://bugs.webkit.org/show_bug.cgi?id=221425
<rdar://73747997>
Reviewed by Keith Miller.
Source/WebCore:
WorkletGlobalScope should use VM::tryCreate() instead of VM::create() to deal with out-of-memory
errors.
Test: webaudio/audioworket-out-of-memory.html
- Modules/webaudio/AudioWorkletGlobalScope.cpp:
(WebCore::AudioWorkletGlobalScope::tryCreate):
(WebCore::AudioWorkletGlobalScope::AudioWorkletGlobalScope):
- Modules/webaudio/AudioWorkletGlobalScope.h:
- Modules/webaudio/AudioWorkletThread.cpp:
(WebCore::AudioWorkletThread::createGlobalScope):
- Modules/webaudio/AudioWorkletThread.h:
- WebCore.xcodeproj/project.pbxproj:
- workers/WorkerOrWorkletThread.cpp:
(WebCore::WorkerOrWorkletThread::workerOrWorkletThread):
- workers/WorkerOrWorkletThread.h:
- workers/WorkerThread.cpp:
(WebCore::WorkerThread::createGlobalScope):
- workers/WorkerThread.h:
- worklets/WorkletGlobalScope.cpp:
(WebCore::WorkletGlobalScope::WorkletGlobalScope):
- worklets/WorkletGlobalScope.h:
LayoutTests:
Add layout test coverage.
- webaudio/audioworket-out-of-memory-expected.txt: Added.
- webaudio/audioworket-out-of-memory.html: Added.
- 3:52 PM Changeset in webkit [272392] by
-
- 2 edits in trunk/Source/WTF
WTF::dynamic_cf_cast<> should not assert in Debug builds
<https://webkit.org/b/221428>
<rdar://problem/73451079>
Reviewed by Geoff Garen.
- wtf/cf/TypeCastsCF.h:
(WTF::dynamic_cf_cast):
- Remove ASSERT_WITH_SECURITY_IMPLICATION().
(WTF::checked_cf_cast):
- Add comments about how to use these template functions correctly.
- 3:48 PM Changeset in webkit [272391] by
-
- 8 edits in branches/safari-612.1.2-branch/Source
Versioning.
WebKit-7612.1.2.1
- 2:33 PM Changeset in webkit [272390] by
-
- 5 edits2 adds in trunk
AX: expose focusable elements even if element or ancestor has aria-hidden=true
https://bugs.webkit.org/show_bug.cgi?id=220534
<rdar://problem/71865875>
Reviewed by Zalan Bujtas.
Source/WebCore:
ARIA states that if an item is focused, then it should override aria-hidden status.
https://github.com/w3c/aria/pull/1387/files
Test: accessibility/focusable-inside-hidden.html
- accessibility/AXObjectCache.cpp:
(WebCore::isNodeAriaVisible):
- accessibility/AccessibilityObject.cpp:
(WebCore::AccessibilityObject::isAXHidden const):
(WebCore::AccessibilityObject::setIsIgnoredFromParentDataForChild):
LayoutTests:
- accessibility/focusable-inside-hidden-expected.txt: Added.
- accessibility/focusable-inside-hidden.html: Added.
- 2:29 PM Changeset in webkit [272389] by
-
- 1 copy in tags/Safari-612.1.2
Tag Safari-612.1.2.
- 2:25 PM Changeset in webkit [272388] by
-
- 3 edits in branches/safari-612.1.2-branch/Source/WebKit
Cherry-pick r272229. rdar://problem/73997275
REGRESSION(r271744): Broke Microsoft live login in internal builds
https://bugs.webkit.org/show_bug.cgi?id=221271
<rdar://problem/73848416>
Reviewed by Alex Christensen.
If a user goes straight to login.live.com without first visiting
microsoft.com, we crash when checking for storage access because
we assume the user has interacted with the page. Since this is a
quirked flow, we should not assume that, and should insert the
domain into the database.
- NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp: (WebKit::ResourceLoadStatisticsDatabaseStore::hasUserGrantedStorageAccessThroughPrompt): (WebKit::ResourceLoadStatisticsDatabaseStore::hasUserGrantedStorageAccessThroughPrompt const): Deleted.
- NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.h:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@272229 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 2:24 PM Changeset in webkit [272387] by
-
- 2 edits in trunk/Source/WebKit
Link libnetworkextension at compile time
https://bugs.webkit.org/show_bug.cgi?id=221372
<rdar://problem/73855844>
Reviewed by Brent Fulgham.
Network Extension is not available on tvOS.
- Configurations/WebKit.xcconfig:
- 2:20 PM Changeset in webkit [272386] by
-
- 4 edits in trunk/Source/WebKit
Allow highlight delegate to be set on WKWebView
https://bugs.webkit.org/show_bug.cgi?id=221362
Reviewed by Tim Horton.
- UIProcess/API/Cocoa/WKWebViewPrivate.h:
- 1:59 PM Changeset in webkit [272385] by
-
- 1 edit1 add in trunk/Tools
[Python-3] Change shebang in test-webkitpy (Part-1)
https://bugs.webkit.org/show_bug.cgi?id=221415
<rdar://problem/73986503>
Reviewed by Michael Catanzaro.
- Scripts/test-webkitpy-python2: Added.
- 1:59 PM Changeset in webkit [272384] by
-
- 3 edits in trunk/Tools
[Python-3] Change shebang in git-webkit (Part 2)
https://bugs.webkit.org/show_bug.cgi?id=221412
<rdar://problem/73983881>
Reviewed by Michael Catanzaro.
- CISupport/ews-build/steps.py:
(ShowIdentifier.start): Invoke git-webkit with Python 3.
- CISupport/ews-build/steps_unittest.py:
- 1:54 PM Changeset in webkit [272383] by
-
- 4 edits in trunk
Don't launch a network process when registering URL schemes
https://bugs.webkit.org/show_bug.cgi?id=221427
Reviewed by Chris Dumez.
Source/WebKit:
When Safari on macOS is launching, it calls registerURLSchemeAsSecure and registerURLSchemeAsBypassingContentSecurityPolicy.
This causes the network process to launch before the app has finished launching. Since values are stored in the UI process
and sent in NetworkProcessCreationParameters whenever a network process starts, so it's not necessary to start the network
process when calling these two functions. This should decrease Safari's launch time.
- UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::registerURLSchemeAsSecure):
(WebKit::WebProcessPool::registerURLSchemeAsBypassingContentSecurityPolicy):
Tools:
- TestWebKitAPI/Tests/WebKitCocoa/NetworkProcess.mm:
(TEST):
- 1:41 PM Changeset in webkit [272382] by
-
- 11 edits3 moves in trunk/Source/WebKit
Don't use Semaphore.h as a filename
https://bugs.webkit.org/show_bug.cgi?id=221418
Reviewed by Don Olmstead.
IPC::Semaphore was recently moved to IPC/Semaphore.h; let's ensure that it's IPC/IPCSemaphore.h instead.
Semaphore.h is a filename that may exist in platform SDKs and thus can cause a WK build break based on ordering.
- GPUProcess/graphics/RemoteRenderingBackend.cpp:
- GPUProcess/graphics/RemoteRenderingBackend.h:
- GPUProcess/media/RemoteAudioDestinationManager.cpp:
- GPUProcess/media/RemoteAudioDestinationManager.h:
- Platform/IPC/IPCSemaphore.cpp: Renamed from Source/WebKit/Platform/IPC/Semaphore.cpp.
- Platform/IPC/IPCSemaphore.h: Renamed from Source/WebKit/Platform/IPC/Semaphore.h.
- Platform/IPC/darwin/IPCSemaphoreDarwin.cpp: Renamed from Source/WebKit/Platform/IPC/darwin/SemaphoreDarwin.cpp.
- Scripts/webkit/messages.py:
- Scripts/webkit/tests/MessageArgumentDescriptions.cpp:
- Scripts/webkit/tests/TestWithSemaphoreMessageReceiver.cpp:
- Sources.txt:
- SourcesCocoa.txt:
- WebKit.xcodeproj/project.pbxproj:
- WebProcess/GPU/graphics/RemoteRenderingBackendProxy.h:
- WebProcess/GPU/media/RemoteAudioDestinationProxy.h:
- 1:32 PM Changeset in webkit [272381] by
-
- 3 edits in trunk/Source/WebKit
Test landed flaky: [iOS] TestWebKitAPI.WebKit2.CrashGPUProcessWhileCapturing
https://bugs.webkit.org/show_bug.cgi?id=221331
<rdar://problem/73935129>
Reviewed by Eric Carlson.
For video sources tied to a remote source in GPUProcess, we are calling requestToEnd instead of end
since the same remote source may be shared with other cloned video sources.
In that case, the source in WebProcess should be considered as ended as soon as requestToEnd is called.
This is important as in case of GPUProcess, we are recreating sources that are not ended.
We were thus recreating a source which was actually ended in WebProcess.
This appears in particular on iOS where only one source can be active at a time.
A further refactoring should probably change the way we clone video sources given we are now supporting size and frame rate adaptations in RealtimeVideoSource.
Covered by API test no longer falkily failing.
- WebProcess/cocoa/RemoteRealtimeMediaSource.cpp:
(WebKit::RemoteRealtimeMediaSource::captureFailed):
(WebKit::RemoteRealtimeMediaSource::requestToEnd):
- WebProcess/cocoa/RemoteRealtimeMediaSource.h:
- 1:31 PM Changeset in webkit [272380] by
-
- 4 edits in trunk/Tools
[Python-3] Change shebang in check-webkit-style
https://bugs.webkit.org/show_bug.cgi?id=221420
<rdar://problem/73990232>
Reviewed by Michael Catanzaro.
- CISupport/ews-build/steps.py:
(CheckStyle): Invoke check-webkit-style with python3.
- CISupport/ews-build/steps_unittest.py:
(TestCheckStyle.test_success_internal): Invoke check-webkit-style with python3.
(TestCheckStyle.test_failure_unknown_try_codebase): Ditto.
(TestCheckStyle.test_failures_with_style_issues): Ditto.
(test_failures_no_style_issues): Ditto.
(test_failures_no_changes): Ditto.
- Scripts/check-webkit-style: Change python shebang to Python 3.
- 1:28 PM Changeset in webkit [272379] by
-
- 3 edits2 adds in trunk
Supplementary code points (U+10000 - U+10FFFF) are not shaped correctly in the fast text codepath
https://bugs.webkit.org/show_bug.cgi?id=221356
<rdar://problem/72555297>
Reviewed by Zalan Bujtas.
Source/WebCore:
Supplementary code points are represented in UTF-16 as two adjacent (surrogate) code units. When we map code
points to glyphs, we were originally mapping these two code units to a single glyph. However, shaping
routines require that the number of code units and glyphs be equal, by injecting a 0 glyph for the trailing
surrogate.
Luckily, we don't actually have to delete these extra 0 glyphs, because the shaping engine will do that for us.
Test: fast/text/multi-code-unit-simple-path.html
- platform/graphics/WidthIterator.cpp:
(WebCore::WidthIterator::advanceInternal):
LayoutTests:
- fast/text/multi-code-unit-simple-path-expected-mismatch.html: Added.
- fast/text/multi-code-unit-simple-path.html: Added.
- 11:38 AM Changeset in webkit [272378] by
-
- 5 edits in trunk/Tools
[Python-3] Change shebang in git-webkit
https://bugs.webkit.org/show_bug.cgi?id=221412
<rdar://problem/73983881>
Reviewed by Stephanie Lewis.
- Scripts/git-webkit: Change python shebang to python3.
- Scripts/libraries/webkitscmpy/git-webkit: Ditto.
- Scripts/libraries/webkitscmpy/webkitscmpy/program/canonicalize/committer.py: Ditto.
- Scripts/libraries/webkitscmpy/webkitscmpy/program/canonicalize/message.py: Ditto.
- 11:16 AM Changeset in webkit [272377] by
-
- 6 edits1 add in trunk/Source/WebCore
Process LocalizableAdditions string file correctly.
https://bugs.webkit.org/show_bug.cgi?id=221358
Reviewed by Tim Horton.
- DerivedSources-input.xcfilelist:
- DerivedSources-output.xcfilelist:
- DerivedSources.make:
- WebCore.xcodeproj/project.pbxproj:
- bindings/scripts/preprocessor.pm:
(applyPreprocessor):
- 10:10 AM Changeset in webkit [272376] by
-
- 9 edits in trunk
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):
- 10:01 AM Changeset in webkit [272375] by
-
- 29 edits4 copies4 moves12 adds11 deletes in trunk
Add intermediate volume icon states between "mute" and "max"
https://bugs.webkit.org/show_bug.cgi?id=221371
Reviewed by Eric Carlson.
Source/WebCore:
- Modules/modern-media-controls/controls/mute-button.js:
(MuteButton):
(MuteButton.prototype.get volume): Added.
(MuteButton.prototype.set volume): Added.
(MuteButton.prototype.set usesLTRUserInterfaceLayoutDirection): Added.
(MuteButton.prototype.layout):
(MuteButton.prototype.set usesRTLIconVariant): Removed.
Keep track of thevolume
in addition tomuted
so that the icon can change more granularly:
- muted (
VolumeMuted.svg
andVolumeMuted-RTL.svg
) - 0% < 25% (
Volume0.svg
andVolume0-RTL.svg
) - 25% < 50% (
Volume1.svg
andVolume1-RTL.svg
) - 50% < 75% (
Volume2.svg
andVolume2-RTL.svg
) - 75% <= 100% (
Volume3.svg
andVolume3-RTL.svg
)
Drive-by: rename
set usesRTLIconVariant
toset usesLTRUserInterfaceLayoutDirection
so
that it matches
MediaControls.prototype.set usesLTRUserInterfaceLayoutDirection
.
- Modules/modern-media-controls/controls/media-controls.js:
(MediaControls.prototype.set usesLTRUserInterfaceLayoutDirection):
- Modules/modern-media-controls/controls/inline-media-controls.js:
(InlineMediaControls.prototype.layout):
(InlineMediaControls.prototype._addTopRightBarWithMuteButtonToChildren):
PropagateusesLTRUserInterfaceLayoutDirection
tovolumeButton
whenever it's changed.
- Modules/modern-media-controls/media/mute-support.js:
(MuteSupport.prototype.syncControl):
Also pass along thevolume
.
- Modules/modern-media-controls/media/volume-support.js:
(VolumeSupport.prototype.controlValueWillStartChanging):
Don't unmute incontrolValueWillStartChanging
(from"pointerdown"
) as the user hasn't
actually changed the volume yet.
- Modules/modern-media-controls/js-files:
- Modules/modern-media-controls/controls/macos-fullscreen-media-controls.js:
(MacOSFullscreenMediaControls.prototype._volumeControlsForCurrentDirection):
- Modules/modern-media-controls/controls/macos-fullscreen-media-controls.css:
(.media-controls.mac.fullscreen:not(.uses-ltr-user-interface-layout-direction) .volume.slider): Added.
(.media-controls.mac.fullscreen:not(.uses-ltr-user-interface-layout-direction) :is(.volume-down, .volume.slider, .volume-up)): Deleted.
- Modules/modern-media-controls/controls/volume-down-button.js: Removed.
- Modules/modern-media-controls/controls/volume-up-button.js: Removed.
- Modules/modern-media-controls/media/media-controller.js:
(MediaController.prototype._supportingObjectClasses):
- Modules/modern-media-controls/media/volume-down-support.js: Removed.
- Modules/modern-media-controls/media/volume-up-support.js: Removed.
Use the same
MuteButton
in fullscreen instead ofVolumeDownButton
andVolumeUpButton
.
- Modules/modern-media-controls/controls/icon-service.js:
- Modules/modern-media-controls/images/iOS/Mute-RTL.svg: Removed.
- Modules/modern-media-controls/images/iOS/Mute.svg: Removed.
- Modules/modern-media-controls/images/iOS/Volume0-RTL.svg: Added.
- Modules/modern-media-controls/images/iOS/Volume0.svg: Added.
- Modules/modern-media-controls/images/iOS/Volume1-RTL.svg: Added.
- Modules/modern-media-controls/images/iOS/Volume1.svg: Added.
- Modules/modern-media-controls/images/iOS/Volume2-RTL.svg: Added.
- Modules/modern-media-controls/images/iOS/Volume2.svg: Added.
- Modules/modern-media-controls/images/iOS/Volume3-RTL.svg: Copied from Source/WebCore/Modules/modern-media-controls/images/macOS/VolumeHi-RTL.svg.
- Modules/modern-media-controls/images/iOS/Volume3.svg: Copied from Source/WebCore/Modules/modern-media-controls/images/macOS/VolumeHi.svg.
- Modules/modern-media-controls/images/iOS/VolumeHi-RTL.svg: Removed.
- Modules/modern-media-controls/images/iOS/VolumeHi.svg: Removed.
- Modules/modern-media-controls/images/iOS/VolumeMuted-RTL.svg: Copied from Source/WebCore/Modules/modern-media-controls/images/macOS/Mute-RTL.svg.
- Modules/modern-media-controls/images/iOS/VolumeMuted.svg: Copied from Source/WebCore/Modules/modern-media-controls/images/macOS/Mute.svg.
- Modules/modern-media-controls/images/macOS/Volume0-RTL.svg: Added.
- Modules/modern-media-controls/images/macOS/Volume0.svg: Added.
- Modules/modern-media-controls/images/macOS/Volume1-RTL.svg: Added.
- Modules/modern-media-controls/images/macOS/Volume1.svg: Added.
- Modules/modern-media-controls/images/macOS/Volume2-RTL.svg: Added.
- Modules/modern-media-controls/images/macOS/Volume2.svg: Added.
- Modules/modern-media-controls/images/macOS/Volume3-RTL.svg: Renamed from Source/WebCore/Modules/modern-media-controls/images/macOS/VolumeHi-RTL.svg.
- Modules/modern-media-controls/images/macOS/Volume3.svg: Renamed from Source/WebCore/Modules/modern-media-controls/images/macOS/VolumeHi.svg.
- Modules/modern-media-controls/images/macOS/VolumeLo.svg: Removed.
- Modules/modern-media-controls/images/macOS/VolumeMuted-RTL.svg: Renamed from Source/WebCore/Modules/modern-media-controls/images/macOS/Mute-RTL.svg.
- Modules/modern-media-controls/images/macOS/VolumeMuted.svg: Renamed from Source/WebCore/Modules/modern-media-controls/images/macOS/Mute.svg.
- Configurations/Base.xcconfig:
- Configurations/DebugRelease.xcconfig:
- html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::ensureMediaControlsInjectedScript):
Add anENGINEERING_BUILD
compile flag so that the media controls JS/CSS is also available
in Web Inspector for engineering builds (in addition to debug builds).
LayoutTests:
- media/modern-media-controls/macos-fullscreen-media-controls/macos-fullscreen-media-controls-constructor.html:
- media/modern-media-controls/macos-fullscreen-media-controls/macos-fullscreen-media-controls-constructor-expected.txt:
- media/modern-media-controls/macos-fullscreen-media-controls/macos-fullscreen-media-controls-drag.html:
- media/modern-media-controls/macos-fullscreen-media-controls/macos-fullscreen-media-controls-drag-expected.txt:
- media/modern-media-controls/macos-fullscreen-media-controls/macos-fullscreen-media-controls-drag-is-prevented-over-button.html:
- media/modern-media-controls/macos-fullscreen-media-controls/macos-fullscreen-media-controls-drag-is-prevented-over-button-expected.txt:
- media/modern-media-controls/macos-fullscreen-media-controls/macos-fullscreen-media-controls-volume-styles.html:
- media/modern-media-controls/macos-fullscreen-media-controls/macos-fullscreen-media-controls-volume-styles-expected.txt:
- media/modern-media-controls/macos-inline-media-controls/macos-inline-media-controls-rtl.html:
- media/modern-media-controls/macos-inline-media-controls/macos-inline-media-controls-rtl-expected.txt:
- media/modern-media-controls/mute-button/mute-button.html:
- media/modern-media-controls/mute-button/mute-button-expected.txt:
- platform/ios/TestExpectations:
- platform/mac/TestExpectations:
- media/modern-media-controls/volume-down-support/volume-down-support.html: Removed.
- media/modern-media-controls/volume-down-support/volume-down-support-expected.txt: Removed.
- media/modern-media-controls/volume-up-support/volume-up-support.html: Removed.
- media/modern-media-controls/volume-up-support/volume-up-support-expected.txt: Removed.
- 9:39 AM Changeset in webkit [272374] by
-
- 2 edits in trunk/Source/WebCore
REGRESSION(r272217): clang warnings in ExtensionsGLOpenGLCommon.h
https://bugs.webkit.org/show_bug.cgi?id=221409
Patch by Philippe Normand <pnormand@igalia.com> on 2021-02-04
Reviewed by Darin Adler.
- platform/graphics/opengl/ExtensionsGLOpenGLCommon.h: Re-add the override qualifier for a
few methods, which was removed in r272217.
- 9:39 AM Changeset in webkit [272373] by
-
- 17 edits in trunk
[macOS] Default to showing the total duration, only switching to time remaining when clicked
https://bugs.webkit.org/show_bug.cgi?id=221364
Reviewed by Eric Carlson.
Source/WebCore:
- Modules/modern-media-controls/controls/time-label.js:
(TimeLabel.prototype.setValueWithNumberOfDigits):
(TimeLabel.prototype.commitProperty):
(TimeLabel.prototype._formattedTime):
AddTimeLabel.Type.Duration
.
Drive-by: renameTypes
toType
as most enums are singular.
- Modules/modern-media-controls/controls/time-control.js:
(TimeControl):
(TimeControl.prototype.get minimumWidth):
(TimeControl.prototype.get idealMinimumWidth):
(TimeControl.prototype.layout):
(TimeControl.prototype.handleEvent): Added.
(TimeControl.prototype._durationOrRemainingTimeLabel): Added.
(TimeControl.prototype._performIdealLayout):
Add anotherTimeLabel
with the newTimeLabel.Type.Duration
that is used instead of the
existingTimeLabel.Type.Remaining
after the latter has been clicked (and the former has
not also been clicked to switch back).
- en.lproj/modern-media-controls-localized-strings.js:
Add
"Duration"
.
LayoutTests:
- media/modern-media-controls/macos-fullscreen-media-controls/macos-fullscreen-media-controls-time-control-styles.html:
- media/modern-media-controls/macos-fullscreen-media-controls/macos-fullscreen-media-controls-time-control-styles-expected.txt:
- media/modern-media-controls/macos-inline-media-controls/macos-inline-media-controls-layout.html:
- media/modern-media-controls/macos-inline-media-controls/macos-inline-media-controls-layout-expected.txt:
- media/modern-media-controls/macos-inline-media-controls/macos-inline-media-controls-time-control-styles.html:
- media/modern-media-controls/macos-inline-media-controls/macos-inline-media-controls-time-control-styles-expected.txt:
- media/modern-media-controls/macos-inline-media-controls/macos-inline-media-dropping-controls-expected.txt:
- media/modern-media-controls/time-label/ios-time-label.html:
- media/modern-media-controls/time-label/ios-time-label-expected.txt:
- media/modern-media-controls/time-label/time-label.html:
- media/modern-media-controls/time-label/time-label-expected.txt:
- media/modern-media-controls/time-labels-support/remaining-time.html:
- 9:34 AM Changeset in webkit [272372] by
-
- 2 edits in trunk/Source/WebInspectorUI
Web Inspector: Update .eslintrc to account for ECMAScript 2020
https://bugs.webkit.org/show_bug.cgi?id=221402
Patch by Razvan Caliman <Razvan Caliman> on 2021-02-04
Reviewed by Devin Rousso.
Add ES2020 parser option so ESLint-based linters don't throw errors
for newer JavaScript language features used in WebInspectorUI.
Note: The linter in an editor must support ESLint v6.2.0 or newer to
understand ES2020.
- .eslintrc:
Drive-by: add 4 spaces indentation rule to match Coding Style Guidelines.
- 9:16 AM Changeset in webkit [272371] by
-
- 17 edits1 copy1 add in trunk
Web Inspector: Collapse blackboxed call frames in Sources
https://bugs.webkit.org/show_bug.cgi?id=216897
Reviewed by Devin Rousso.
Source/WebInspectorUI:
Stack traces often have dozens of blackboxed call frames when using blackboxing for JS-frameworks such as React.js.
It makes it hard to see more relevant non-framework code.
To improve this, introduce "Collapse blackboxed call frames" experimental setting, that collapses adjacent
blackboxed call frames into expandable items.
- Localizations/en.lproj/localizedStrings.js:
- UserInterface/Base/Setting.js:
- UserInterface/Base/Utilities.js:
- UserInterface/Images/TypeIcons.svg:
- UserInterface/Main.html:
- UserInterface/Models/CallFrame.js:
(WI.CallFrame):
(WI.CallFrame.prototype.get blackboxed):
(WI.CallFrame.fromDebuggerPayload):
(WI.CallFrame.fromPayload):
- UserInterface/Views/BlackboxedGroupTreeElement.css: Added.
(.tree-outline .item.blackboxed-group):
(.tree-outline .item.blackboxed-group .icon):
(@media (prefers-color-scheme: dark) .tree-outline .item.blackboxed-group .icon):
- UserInterface/Views/BlackboxedGroupTreeElement.js: Added.
(WI.BlackboxedGroupTreeElement):
(WI.BlackboxedGroupTreeElement.prototype.expand):
- UserInterface/Views/CallFrameTreeElement.css:
(.tree-outline .item.call-frame.blackboxed:not(.selected)):
- UserInterface/Views/CallFrameView.css:
(.call-frame.blackboxed > .title,):
- UserInterface/Views/SettingsTabContentView.js:
(WI.SettingsTabContentView.prototype._createExperimentalSettingsView):
- UserInterface/Views/SourcesNavigationSidebarPanel.js:
(WI.SourcesNavigationSidebarPanel.prototype._handleTreeSelectionDidChange):
- UserInterface/Views/ThreadTreeElement.js:
(WI.ThreadTreeElement.prototype.refresh):
- UserInterface/Views/TreeElement.js:
(WI.TreeElement.treeElementToggled):
This is necessary sinceWI.BlackboxedGroupTreeElement
removes itself when expanded.
- UserInterface/Views/Variables.css:
(:root):
LayoutTests:
Test Array.prototype.groupBy.
- inspector/unit-tests/array-utilities-expected.txt:
- inspector/unit-tests/array-utilities.html:
- 8:56 AM Changeset in webkit [272370] by
-
- 5 edits in trunk/Source/WebCore
Remove the Timer from Style::Scope
https://bugs.webkit.org/show_bug.cgi?id=221221
<rdar://problem/73918532>
Reviewed by Sam Weinig.
Just request a rendering update instead. It already flushes any pending style scope updates.
- dom/Document.cpp:
(WebCore::Document::didInsertInDocumentShadowRoot):
- dom/Element.cpp:
(WebCore::Element::isVisibleWithoutResolvingFullStyle const):
Flush.
- style/StyleScope.cpp:
(WebCore::Style::Scope::Scope):
(WebCore::Style::Scope::flushPendingSelfUpdate):
(WebCore::Style::Scope::scheduleUpdate):
(WebCore::Style::Scope::insertedInDocument):
Ensure that m_hasDescendantWithPendingUpdate bit gets set if a shadow root with pending update is inserted in document.
(WebCore::Style::Scope::clearPendingUpdate): Deleted.
(WebCore::Style::Scope::pendingUpdateTimerFired): Deleted.
- style/StyleScope.h:
- 8:36 AM Changeset in webkit [272369] by
-
- 9 edits in trunk
[GStreamer] Misc Thunder nitpicks
https://bugs.webkit.org/show_bug.cgi?id=221398
Reviewed by Xabier Rodriguez-Calvar.
.:
- Source/cmake/FindThunder.cmake: Look-up Thunder through pkg-config before attempting a
direct libocdm lookup.
Source/WebCore:
- platform/UserAgentQuirks.cpp:
(WebCore::urlRequiresFirefoxBrowser): For Netflix we should use a Firefox User-Agent, when
Thunder is enabled.
- platform/graphics/gstreamer/eme/CDMThunder.cpp:
(WebCore::CDMFactoryThunder::singleton): Use a dedicated gst debug category for this module,
in order to decouple from the decryptor.
(WebCore::CDMFactoryThunder::supportedKeySystems const): Use explicit return value, removing
possible misunderstandings.
(WebCore::CDMPrivateThunder::CDMPrivateThunder):
(WebCore::CDMPrivateThunder::supportedRobustnesses const): Thunder supports secure decode/crypto in software.
(WebCore::CDMPrivateThunder::supportsServerCertificates const): Plumb to new
opencdm_system_supports_certificate API.
(WebCore::CDMInstanceThunder::setStorageDirectory): Ensure storage directory exists.
(WebCore::ParsedResponseMessage::hasType const): Simplify a bit.
(WebCore::CDMInstanceSessionThunder::updateLicense):
- platform/graphics/gstreamer/eme/CDMThunder.h:
- platform/graphics/gstreamer/eme/WebKitThunderDecryptorGStreamer.cpp:
(webkit_media_thunder_decrypt_class_init): Use a more explicit name for the debug category.
Tools:
- TestWebKitAPI/Tests/WebCore/UserAgentQuirks.cpp:
(TestWebKitAPI::TEST): Add test for Netflix WPE/GTK UA quirk.
- 6:59 AM Changeset in webkit [272368] by
-
- 15 edits2 adds in trunk
[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):
- 4:48 AM Changeset in webkit [272367] by
-
- 6 edits2 deletes in trunk
Unreviewed, reverting r272338.
https://bugs.webkit.org/show_bug.cgi?id=221403
Broke a layout test percentage-height-in-flexbox.html
Reverted changeset:
"the nested grid container which has replaced item with 'max-
height' has wrong width(0px)."
https://bugs.webkit.org/show_bug.cgi?id=219194
https://trac.webkit.org/changeset/272338
- 4:01 AM Changeset in webkit [272366] by
-
- 19 edits in trunk
Improve the serialization of scroll-snap-type and scroll-snap-align
https://bugs.webkit.org/show_bug.cgi?id=221324
LayoutTests/imported/w3c:
Reviewed by Alex Christensen.
- web-platform-tests/css/css-scroll-snap/inheritance-expected.txt:
- web-platform-tests/css/css-scroll-snap/parsing/scroll-snap-align-computed-expected.txt:
- web-platform-tests/css/css-scroll-snap/parsing/scroll-snap-align-valid-expected.txt:
- web-platform-tests/css/css-scroll-snap/parsing/scroll-snap-type-valid-expected.txt:
- web-platform-tests/css/cssom/cssstyledeclaration-csstext-expected.txt:
Source/WebCore:
Reviewed by Alex Christensen.
Improve serialization of scroll-snap-type and scroll-snap-align. When the values
are the same for both dimensions or a default value is used, don't add it to
the list of consumed tokens. The primitive conversion process will handle this
default correctly and serialization will produce a canonical serialization correctly.
We handle this case for both serialization of the style (eg getPropertyValue) and
for serialization of computed style.
No new tests.
- css/CSSComputedStyleDeclaration.cpp:
(WebCore::valueForScrollSnapAlignment): For the computed style don't serialize
the second value if it is the same as the first.
- css/parser/CSSPropertyParser.cpp:
(WebCore::consumeScrollSnapAlign): Only add the second value to the value list if it
exists and if it is different than the first value.
(WebCore::consumeScrollSnapType): Only add the second value if it is a non-default value.
LayoutTests:
Reviewed by Alex Christensen.
- css3/scroll-snap/resources/iframe-content-rtl.html:
- css3/scroll-snap/resources/iframe-content.html:
- css3/scroll-snap/scroll-snap-inherit-expected.txt:
- css3/scroll-snap/scroll-snap-inherit.html:
- css3/scroll-snap/scroll-snap-initial-expected.txt:
- css3/scroll-snap/scroll-snap-initial.html:
- css3/scroll-snap/scroll-snap-property-computed-style-expected.txt:
- css3/scroll-snap/scroll-snap-property-computed-style.js:
- platform/ios-wk2/imported/w3c/web-platform-tests/css/cssom/cssstyledeclaration-csstext-expected.txt:
- 3:02 AM Changeset in webkit [272365] by
-
- 2 edits in trunk/Tools
Modifications to Tools/wpe/install-dependencies
https://bugs.webkit.org/show_bug.cgi?id=221254
Patch by Eleni Maria Stea <hikiko> on 2021-02-04
Reviewed by Adrian Perez de Castro.
- wpe/install-dependencies: python-psutil is replaced with
python3-psutil that is present in Debian/Ubuntu/Raspbian. libegl-mesa0
is added in the dependencies list as it's required for libegl1-mesa-dev
to be installed.
- 2:42 AM Changeset in webkit [272364] by
-
- 8 edits in trunk/Source/JavaScriptCore
[JSC] Implement Object.entries in C++
https://bugs.webkit.org/show_bug.cgi?id=221380
Reviewed by Alexey Shvayka.
This patch implements Object.entries in C++ because it is more efficient.
It is not using dynamic feature (like, calling a callback). And in C++,
we can avoid JSArray allocations for @Object.@getOwnPropertyNames.
This patch also removes unnecessary JS private functions, @propertyIsEnumerable,
and @getOwnPropertyNames.
- builtins/BuiltinNames.h:
- builtins/ObjectConstructor.js:
(entries): Deleted.
- bytecode/LinkTimeConstant.h:
- runtime/JSGlobalObject.cpp:
(JSC::JSGlobalObject::init):
- runtime/JSGlobalObjectFunctions.cpp:
- runtime/JSGlobalObjectFunctions.h:
- runtime/ObjectConstructor.cpp:
(JSC::ObjectConstructor::finishCreation):
(JSC::JSC_DEFINE_HOST_FUNCTION):
- 1:11 AM Changeset in webkit [272363] by
-
- 4 edits in trunk
Make shouldComputeLogicalWidthFromAspectRatioAndInsets writing mode aware
https://bugs.webkit.org/show_bug.cgi?id=221328
Patch by Rob Buis <rbuis@igalia.com> on 2021-02-04
Reviewed by Manuel Rego Casasnovas.
Source/WebCore:
Commit r271061 added support for aspect-ratio on positioned elements, taking into account
insets, but it failed to take writing-mode into account when checking insets. This change fixes
that by asking logical values.
- rendering/RenderBox.cpp:
(WebCore::RenderBox::shouldComputeLogicalWidthFromAspectRatioAndInsets const):
LayoutTests:
Enable some tests that pass now.
- 12:47 AM Changeset in webkit [272362] by
-
- 2 edits in trunk/Source/WebKit
REGRESSION(r267763): [GTK][WPE] Broken main thread assertion in MemoryPressureMonitor
https://bugs.webkit.org/show_bug.cgi?id=217363
Reviewed by Carlos Garcia Campos.
r267763 changed a number of NetworkProcessProxy methods to be
accessible only from the main thread, including allNetworkProcesses().
This function was called from the memory pressure monitor thread
directly to notify high memory usage.
This was causing the debug bots to abort prematurely with many crashes
when in reality just a memory pressure warning would be enough.
Covered by existing tests.
- UIProcess/linux/MemoryPressureMonitor.cpp:
(WebKit::MemoryPressureMonitor::start): Dispatch the memory pressure
notification in the main thread.
- 12:42 AM Changeset in webkit [272361] by
-
- 4 edits in trunk
[WPE][GTK] Wrong rendering when using opacity filters on hw accelerated layers
https://bugs.webkit.org/show_bug.cgi?id=221330
Reviewed by Carlos Garcia Campos.
Source/WebCore:
Apply the opacity filter value to the color components as well, as we need premultiplied alpha
for blending.
Covered by existent tests.
- platform/graphics/texmap/TextureMapperShaderProgram.cpp:
LayoutTests:
Update expected image.
- platform/gtk/css3/filters/effect-opacity-hw-expected.png: