⚠ Archived content — this site is no longer maintained.   Current WebKit documentation is at docs.webkit.org.

Timeline



Apr 12, 2021:

11:11 PM Changeset in webkit [275865] by calvaris@igalia.com
  • 3 edits in trunk/LayoutTests

[GTK] media/track/text-track-cue-is-reachable.html is flaky crashing in X11 release
https://bugs.webkit.org/show_bug.cgi?id=210370

Unreviewed.

  • platform/gtk-wayland/TestExpectations:
  • platform/gtk/TestExpectations: Unflagged test.
11:11 PM Changeset in webkit [275864] by Fujii Hironori
  • 24 edits in trunk/LayoutTests

[WinCairo] Unreviewed test gardening

  • platform/wincairo-wk1/TestExpectations:
  • platform/wincairo-wk1/http/tests/security/401-logout/401-logout-expected.txt:
  • platform/wincairo/TestExpectations:
  • platform/wincairo/css1/text_properties/vertical_align-expected.txt:
  • platform/wincairo/css1/text_properties/word_spacing-expected.txt:
  • platform/wincairo/css2.1/t100801-c544-valgn-03-d-agi-expected.txt:
  • platform/wincairo/css2.1/t1602-c546-txt-align-00-b-expected.txt:
  • platform/wincairo/fast/css-generated-content/after-duplicated-after-split-expected.txt:
  • platform/wincairo/fast/css/child-style-can-override-visited-style-expected.txt:
  • platform/wincairo/fast/css/input-search-padding-expected.txt:
  • platform/wincairo/fast/css/word-space-extra-expected.txt:
  • platform/wincairo/fast/dom/HTMLProgressElement/progress-element-expected.txt:
  • platform/wincairo/fast/inline-block/003-expected.txt:
  • platform/wincairo/fast/text/basic/012-expected.txt:
  • platform/wincairo/fast/text/basic/013-expected.txt:
  • platform/wincairo/fast/text/basic/015-expected.txt:
  • platform/wincairo/fast/text/text-letter-spacing-expected.txt:
  • platform/wincairo/fast/text/textIteratorNilRenderer-expected.txt:
  • platform/wincairo/fast/text/wbr-expected.txt:
  • platform/wincairo/fast/text/whitespace/018-expected.txt:
  • platform/wincairo/fast/text/whitespace/span-in-word-space-causes-overflow-expected.txt:
  • platform/wincairo/fonts/sans-serif-expected.txt:
  • platform/wincairo/fonts/serif-expected.txt:
10:58 PM Changeset in webkit [275863] by calvaris@igalia.com
  • 2 edits in trunk/LayoutTests

[GStreamer] media/media-source/media-source-seek-back.html is flaky crashing with 3 kinds of traces
https://bugs.webkit.org/show_bug.cgi?id=210528

Unreviewed.

  • platform/glib/TestExpectations: Unflagged test.
10:57 PM Changeset in webkit [275862] by calvaris@igalia.com
  • 2 edits in trunk/LayoutTests

[GTK] webrtc/video-update-often.html is flaky crashing
https://bugs.webkit.org/show_bug.cgi?id=210360

Unreviewed.

  • platform/gtk-wayland/TestExpectations: Unflag test, it's

passing.

9:57 PM Changeset in webkit [275861] by commit-queue@webkit.org
  • 9 edits
    2 adds in trunk

[CoreIPC] Crash in logDiagnosticMessage code
https://bugs.webkit.org/show_bug.cgi?id=224390

Patch by Julian Gonzalez <julian_a_gonzalez@apple.com> on 2021-04-12
Reviewed by Chris Dumez.

Source/WebKit:

Create new WebPageProxy::logDiagnosticMessage APIs designed to be called on messages that
need sanity checking, and hook that up to IPC handlers (while leaving existing APIs
for all other callers).

Test: ipc/analytics-logger-crash.html

  • NetworkProcess/NetworkSession.cpp:

(WebKit::NetworkSession::logDiagnosticMessageWithValue):

  • UIProcess/ProvisionalPageProxy.cpp:

(WebKit::ProvisionalPageProxy::logDiagnosticMessageFromWebProcess):
(WebKit::ProvisionalPageProxy::logDiagnosticMessageWithEnhancedPrivacyFromWebProcess):
(WebKit::ProvisionalPageProxy::logDiagnosticMessageWithValueDictionaryFromWebProcess):
(WebKit::ProvisionalPageProxy::didReceiveMessage):

  • UIProcess/ProvisionalPageProxy.h:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::logDiagnosticMessageFromWebProcess):
(WebKit::WebPageProxy::logDiagnosticMessageWithResultFromWebProcess):
(WebKit::WebPageProxy::logDiagnosticMessageWithValueFromWebProcess):
(WebKit::WebPageProxy::logDiagnosticMessageWithEnhancedPrivacyFromWebProcess):
(WebKit::WebPageProxy::logDiagnosticMessageWithValueDictionaryFromWebProcess):
(WebKit::WebPageProxy::logDiagnosticMessageWithDomainFromWebProcess):

  • UIProcess/WebPageProxy.h:
  • UIProcess/WebPageProxy.messages.in:
  • WebProcess/WebCoreSupport/WebDiagnosticLoggingClient.cpp:

(WebKit::WebDiagnosticLoggingClient::logDiagnosticMessage):
(WebKit::WebDiagnosticLoggingClient::logDiagnosticMessageWithResult):
(WebKit::WebDiagnosticLoggingClient::logDiagnosticMessageWithValue):
(WebKit::WebDiagnosticLoggingClient::logDiagnosticMessageWithEnhancedPrivacy):
(WebKit::WebDiagnosticLoggingClient::logDiagnosticMessageWithValueDictionary):
(WebKit::WebDiagnosticLoggingClient::logDiagnosticMessageWithDomain):

LayoutTests:

Add a test for this crasher.

  • ipc/analytics-logger-crash-expected.txt: Added.
  • ipc/analytics-logger-crash.html: Added.
9:43 PM Changeset in webkit [275860] by mark.lam@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Interpreter::executeProgram() should install its VMEntryScope at the top.
https://bugs.webkit.org/show_bug.cgi?id=224450
rdar://76530841

Reviewed by Yusuke Suzuki.

"top" includes before any VM code that can throw exceptions is run.

  • interpreter/Interpreter.cpp:

(JSC::Interpreter::executeProgram):

9:19 PM Changeset in webkit [275859] by rniwa@webkit.org
  • 4 edits in trunk/Source/WebCore

TextManipulationController should use weak pointers to Node
https://bugs.webkit.org/show_bug.cgi?id=215913

Reviewed by Wenson Hsieh.

Use WeakHashSet for m_manipulatedTextsWithNewContent, m_textNodesWithNewRenderer, and m_manipulatedNodes.

Also made TextManipulationController::removeNode take Node& instead of Node*.

  • dom/Node.cpp:

(WebCore::Node::~Node):
(WebCore::Node::moveNodeToNewDocument):

  • editing/TextManipulationController.cpp:

(WebCore::TextManipulationController::observeParagraphs):
(WebCore::TextManipulationController::didCreateRendererForElement):
(WebCore::TextManipulationController::didUpdateContentForText):
(WebCore::TextManipulationController::didCreateRendererForTextNode):
(WebCore::TextManipulationController::scheduleObservationUpdate):
(WebCore::TextManipulationController::replace):
(WebCore::TextManipulationController::removeNode):

  • editing/TextManipulationController.h:
7:25 PM Changeset in webkit [275858] by don.olmstead@sony.com
  • 3 edits
    2 deletes in trunk/Source/WebCore

Remove GraphicsContextGLOpenGLPrivate
https://bugs.webkit.org/show_bug.cgi?id=224446

Reviewed by Myles C. Maxfield.

GraphicsContextGLOpenGLPrivate is dead code. It requires AppleWin to turn on WebGL which
it does not. This removes all references to it.

  • platform/graphics/opengl/GraphicsContextGLOpenGL.h:
  • platform/graphics/opengl/GraphicsContextGLOpenGLES.cpp:

(WebCore::GraphicsContextGLOpenGL::create): Deleted.
(WebCore::GraphicsContextGLOpenGL::GraphicsContextGLOpenGL): Deleted.
(WebCore::GraphicsContextGLOpenGL::~GraphicsContextGLOpenGL): Deleted.
(WebCore::GraphicsContextGLOpenGL::setContextLostCallback): Deleted.
(WebCore::GraphicsContextGLOpenGL::setErrorMessageCallback): Deleted.
(WebCore::GraphicsContextGLOpenGL::makeContextCurrent): Deleted.
(WebCore::GraphicsContextGLOpenGL::checkGPUStatus): Deleted.
(WebCore::GraphicsContextGLOpenGL::isGLES2Compliant const): Deleted.
(WebCore::GraphicsContextGLOpenGL::platformLayer const): Deleted.

  • platform/graphics/opengl/GraphicsContextGLOpenGLPrivate.cpp: Removed.
  • platform/graphics/opengl/GraphicsContextGLOpenGLPrivate.h: Removed.
7:06 PM Changeset in webkit [275857] by Peng Liu
  • 9 edits in trunk/Source/WebKitLegacy/mac

Fix some issues hidden by unified build
https://bugs.webkit.org/show_bug.cgi?id=224457

Reviewed by Eric Carlson.

Some small fixes and clean-up. The issues are hidden by the unified build mechanism
and were found in a local build.

  • DOM/DOMTokenList.mm:
  • Plugins/WebPluginController.mm:
  • WebCoreSupport/WebFrameLoaderClient.h:
  • WebView/WebDataSource.mm:
  • WebView/WebFrameView.mm:
  • WebView/WebHTMLViewInternal.h:
  • WebView/WebImmediateActionController.mm:
  • WebView/WebPDFView.mm:
7:04 PM Changeset in webkit [275856] by Ross Kirsling
  • 6 edits
    1 add in trunk/Source/JavaScriptCore

ICU 69 deprecates ubrk_safeClone in favor of ubrk_clone
https://bugs.webkit.org/show_bug.cgi?id=224093

Reviewed by Yusuke Suzuki.

In a shining example of "disappointing library practices", ICU 69 deprecates ubrk_safeClone in favor of
a new *draft* API ubrk_clone, meaning that no function with this functionality is exposed by default.

This patch introduces a function cloneUBreakIterator to abstract over this change; however, since we need to:

  1. confine the effects of disabling U_HIDE_DRAFT_API to a non-unified implementation file
  2. still be able to include ubrk.h from IntlSegmenter.h to instantiate ICUDeleter<ubrk_close> (*not* clone!)

...the new helper function is introduced in a *headerless* implementation file, IntlWorkaround.cpp.

  • JavaScriptCore.xcodeproj/project.pbxproj:
  • Sources.txt:
  • runtime/IntlSegmenter.cpp:

(JSC::IntlSegmenter::segment const):

  • runtime/IntlSegmenter.h:
  • runtime/IntlSegments.cpp:

(JSC::IntlSegments::createSegmentIterator):

  • runtime/IntlWorkaround.cpp: Added.

(JSC::cloneUBreakIterator):

6:25 PM Changeset in webkit [275855] by commit-queue@webkit.org
  • 20 edits in trunk

Unreviewed, reverting r275793.
https://bugs.webkit.org/show_bug.cgi?id=224466

Caused crashes on <http://facebook.com|facebook.com>

Reverted changeset:

"calc() simplification for a multiplication should apply the
multiplication to each value of an addition"
https://bugs.webkit.org/show_bug.cgi?id=224376
https://trac.webkit.org/changeset/275793

6:06 PM Changeset in webkit [275854] by basuke.suzuki@sony.com
  • 2 edits in trunk/Source/WTF

[PlayStation] Enable WTFCrashWithInfo implementation
https://bugs.webkit.org/show_bug.cgi?id=224458

Reviewed by Don Olmstead.

Enable WTFCrashWithInfo implementation for PlayStation platform. It is x86_64 and uses clang
so that it can share Darwin's implemetation with us.

  • wtf/Assertions.cpp:
5:48 PM Changeset in webkit [275853] by aakash_jain@apple.com
  • 5 edits in trunk/Tools

Make Commit Queue robust by adding few git commands to clean up repository
https://bugs.webkit.org/show_bug.cgi?id=224444

Reviewed by Jonathan Bedard.

  • CISupport/ews-build/steps.py:

(CleanGitRepo): Build step to run few commands to cleanup git repository.
(CleanGitRepo.run):
(CleanGitRepo.getResultSummary): Custom failure message.

  • CISupport/ews-build/steps_unittest.py: Added unit-tests.
  • CISupport/ews-build/factories.py:

(CommitQueueFactory.init):

  • CISupport/ews-build/factories_unittest.py:

(TestCommitQueueFactory.test_commit_queue_factory): Updated unit-test.

5:47 PM Changeset in webkit [275852] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

Unreviewed, reverting r275761.

Caused InlineBox invalidation bugs.

Reverted changeset:

"[RenderTreeBuilder] Cleanup the inline box wrappers when
moving subtrees"
https://bugs.webkit.org/show_bug.cgi?id=224342
https://commits.webkit.org/r275761

5:45 PM Changeset in webkit [275851] by Robert Jenner
  • 2 edits in trunk/LayoutTests

[ BigSur wk2 arm64 ] 4 webrtc/ Layout-tests are consistently timing out
https://bugs.webkit.org/show_bug.cgi?id=223043

Uneviewed test gardening.

  • platform/mac/TestExpectations: Adding crash to test expectations while test is under review.
5:36 PM Changeset in webkit [275850] by don.olmstead@sony.com
  • 4 edits in trunk/Source/JavaScriptCore

Inspector code is wrongly including some private headers
https://bugs.webkit.org/show_bug.cgi?id=224456

Reviewed by Alex Christensen.

These files were including some headers using #include <JavaScriptCore/Foo.h> style instead
of "Foo.h" style. This caused a build error when attempting to revive the Mac CMake build
since those headers were private and private headers are generated after the JavaScriptCore
build. No other ports were have ENABLE_INSPECTOR_ALTERNATE_DISPATCHERS turned on so the
issue hadn't manifested until now.

  • API/JSContextRefInspectorSupport.h:
  • inspector/augmentable/AlternateDispatchableAgent.h:
  • inspector/augmentable/AugmentableInspectorController.h:
5:33 PM Changeset in webkit [275849] by Chris Gambrell
  • 177 edits
    5 moves
    19 adds
    18 deletes in trunk/LayoutTests

[LayoutTests] Convert http/tests/security convert PHP to Python
https://bugs.webkit.org/show_bug.cgi?id=222668
<rdar://problem/74993152>

Reviewed by Jonathan Bedard.

  • TestExpectations:
  • http/tests/blink/sendbeacon/connect-src-beacon-allowed.html:
  • http/tests/contentextensions/block-cookies-in-csp-report.py:
  • http/tests/css/resources/webfont-request.py:

(get_request_count): Deleted.
(set_request_count): Deleted.

  • http/tests/local/script-crossorigin-loads-file-scheme.html:
  • http/tests/media/resources/serve_video.py: Added.

(answering):

  • http/tests/resources/portabilityLayer.py:

(get_cookies): Add trailing newline.
(get_request): PHP equivalent of $_REQUEST which is used by numerous scripts.
(get_count): Added trailing newline.
(get_state): Added trailing newline.
(set_state): Changed open file's name to prevent confusion with parameter.
(step_state): Added trailing newline.

  • http/tests/security/401-logout/401-logout-expected.txt:
  • http/tests/security/401-logout/401-logout.php: Removed.
  • http/tests/security/401-logout/401-logout.py: Added.
  • http/tests/security/canvas-remote-read-remote-video-allowed-anonymous.html:
  • http/tests/security/canvas-remote-read-remote-video-allowed-with-credentials.html:
  • http/tests/security/canvas-remote-read-remote-video-blocked-no-crossorigin.html:
  • http/tests/security/contentSecurityPolicy/1.1/frame-ancestors/frame-ancestors-in-report-only-ignored.html:
  • http/tests/security/contentSecurityPolicy/1.1/frame-ancestors/report-frame-ancestors-cross-origin-expected.txt:
  • http/tests/security/contentSecurityPolicy/1.1/frame-ancestors/report-frame-ancestors-cross-origin-https-expected.txt:
  • http/tests/security/contentSecurityPolicy/1.1/frame-ancestors/report-frame-ancestors-cross-origin-https.html:
  • http/tests/security/contentSecurityPolicy/1.1/frame-ancestors/report-frame-ancestors-cross-origin.html:
  • http/tests/security/contentSecurityPolicy/1.1/frame-ancestors/report-frame-ancestors-same-origin-expected.txt:
  • http/tests/security/contentSecurityPolicy/1.1/frame-ancestors/report-frame-ancestors-same-origin-https-expected.txt:
  • http/tests/security/contentSecurityPolicy/1.1/frame-ancestors/report-frame-ancestors-same-origin-https.html:
  • http/tests/security/contentSecurityPolicy/1.1/frame-ancestors/report-frame-ancestors-same-origin.html:
  • http/tests/security/contentSecurityPolicy/1.1/report-uri-effective-directive-expected.txt:
  • http/tests/security/contentSecurityPolicy/1.1/report-uri-effective-directive.py:
  • http/tests/security/contentSecurityPolicy/1.1/resources/testScriptHash.php: Removed.
  • http/tests/security/contentSecurityPolicy/1.1/resources/testScriptHash.py: Added.
  • http/tests/security/contentSecurityPolicy/1.1/script-blocked-sends-multiple-reports-expected.txt:
  • http/tests/security/contentSecurityPolicy/1.1/script-blocked-sends-multiple-reports.py:
  • http/tests/security/contentSecurityPolicy/1.1/scripthash-allowed-by-enforced-policy-and-blocked-by-report-policy-expected.txt:
  • http/tests/security/contentSecurityPolicy/1.1/scripthash-allowed-by-enforced-policy-and-blocked-by-report-policy.py:
  • http/tests/security/contentSecurityPolicy/1.1/scripthash-allowed-by-enforced-policy-and-blocked-by-report-policy2-expected.txt:
  • http/tests/security/contentSecurityPolicy/1.1/scripthash-allowed-by-enforced-policy-and-blocked-by-report-policy2.py:
  • http/tests/security/contentSecurityPolicy/1.1/scripthash-allowed-by-legacy-enforced-policy-and-blocked-by-report-policy-expected.txt:
  • http/tests/security/contentSecurityPolicy/1.1/scripthash-allowed-by-legacy-enforced-policy-and-blocked-by-report-policy.py:
  • http/tests/security/contentSecurityPolicy/1.1/scripthash-allowed-by-legacy-enforced-policy-and-blocked-by-report-policy2-expected.txt:
  • http/tests/security/contentSecurityPolicy/1.1/scripthash-allowed-by-legacy-enforced-policy-and-blocked-by-report-policy2.py:
  • http/tests/security/contentSecurityPolicy/1.1/scripthash-blocked-by-enforced-policy-and-allowed-by-report-policy-expected.txt:
  • http/tests/security/contentSecurityPolicy/1.1/scripthash-blocked-by-enforced-policy-and-allowed-by-report-policy.py:
  • http/tests/security/contentSecurityPolicy/1.1/scripthash-blocked-by-legacy-enforced-policy-and-allowed-by-report-policy.py:
  • http/tests/security/contentSecurityPolicy/1.1/scripthash-blocked-by-legacy-enforced-policy-and-blocked-by-report-policy-expected.txt:
  • http/tests/security/contentSecurityPolicy/1.1/scripthash-blocked-by-legacy-enforced-policy-and-blocked-by-report-policy.py:
  • http/tests/security/contentSecurityPolicy/1.1/scripthash-blocked-by-legacy-enforced-policy-and-blocked-by-report-policy2-expected.txt:
  • http/tests/security/contentSecurityPolicy/1.1/scripthash-blocked-by-legacy-enforced-policy-and-blocked-by-report-policy2.py:
  • http/tests/security/contentSecurityPolicy/1.1/scripthash-tests.html:
  • http/tests/security/contentSecurityPolicy/1.1/scriptnonce-allowed-by-enforced-policy-and-blocked-by-report-policy.py:
  • http/tests/security/contentSecurityPolicy/1.1/scriptnonce-allowed-by-enforced-policy-and-blocked-by-report-policy2.py:
  • http/tests/security/contentSecurityPolicy/1.1/scriptnonce-allowed-by-legacy-enforced-policy-and-blocked-by-report-policy.py:
  • http/tests/security/contentSecurityPolicy/1.1/scriptnonce-allowed-by-legacy-enforced-policy-and-blocked-by-report-policy2.py:
  • http/tests/security/contentSecurityPolicy/1.1/scriptnonce-blocked-by-enforced-policy-and-allowed-by-report-policy-expected.txt:
  • http/tests/security/contentSecurityPolicy/1.1/scriptnonce-blocked-by-enforced-policy-and-allowed-by-report-policy.py:
  • http/tests/security/contentSecurityPolicy/1.1/scriptnonce-blocked-by-legacy-enforced-policy-and-allowed-by-report-policy.py:
  • http/tests/security/contentSecurityPolicy/1.1/scriptnonce-blocked-by-legacy-enforced-policy-and-blocked-by-report-policy.py:
  • http/tests/security/contentSecurityPolicy/1.1/scriptnonce-blocked-by-legacy-enforced-policy-and-blocked-by-report-policy2.py:
  • http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-css-in-iframe-report-only-expected.txt:
  • http/tests/security/contentSecurityPolicy/block-all-mixed-content/resources/frame-with-insecure-css-report-only.py:
  • http/tests/security/contentSecurityPolicy/connect-src-beacon-allowed.html:
  • http/tests/security/contentSecurityPolicy/connect-src-beacon-blocked-expected.txt:
  • http/tests/security/contentSecurityPolicy/connect-src-beacon-blocked.html:
  • http/tests/security/contentSecurityPolicy/eval-allowed-in-report-only-mode-and-sends-report-expected.txt:
  • http/tests/security/contentSecurityPolicy/eval-allowed-in-report-only-mode-and-sends-report.py:
  • http/tests/security/contentSecurityPolicy/eval-blocked-and-sends-report-expected.txt:
  • http/tests/security/contentSecurityPolicy/eval-blocked-and-sends-report.html:
  • http/tests/security/contentSecurityPolicy/report-and-enforce-expected.txt:
  • http/tests/security/contentSecurityPolicy/report-and-enforce.py:
  • http/tests/security/contentSecurityPolicy/report-blocked-data-uri-expected.txt:
  • http/tests/security/contentSecurityPolicy/report-blocked-data-uri.py:
  • http/tests/security/contentSecurityPolicy/report-blocked-file-uri-expected.txt:
  • http/tests/security/contentSecurityPolicy/report-blocked-file-uri.py:
  • http/tests/security/contentSecurityPolicy/report-blocked-uri-and-do-not-follow-redirect-when-sending-report-expected.txt:
  • http/tests/security/contentSecurityPolicy/report-blocked-uri-and-do-not-follow-redirect-when-sending-report.py:
  • http/tests/security/contentSecurityPolicy/report-blocked-uri-cross-origin-expected.txt:
  • http/tests/security/contentSecurityPolicy/report-blocked-uri-cross-origin.py:
  • http/tests/security/contentSecurityPolicy/report-blocked-uri-expected.txt:
  • http/tests/security/contentSecurityPolicy/report-blocked-uri.py:
  • http/tests/security/contentSecurityPolicy/report-cross-origin-no-cookies-expected.txt:
  • http/tests/security/contentSecurityPolicy/report-cross-origin-no-cookies-when-private-browsing-enabled-expected.txt:
  • http/tests/security/contentSecurityPolicy/report-cross-origin-no-cookies-when-private-browsing-enabled.py:
  • http/tests/security/contentSecurityPolicy/report-cross-origin-no-cookies-when-private-browsing-toggled-expected.txt:
  • http/tests/security/contentSecurityPolicy/report-cross-origin-no-cookies-when-private-browsing-toggled.php: Removed.
  • http/tests/security/contentSecurityPolicy/report-cross-origin-no-cookies-when-private-browsing-toggled.py: Added.
  • http/tests/security/contentSecurityPolicy/report-cross-origin-no-cookies.py:
  • http/tests/security/contentSecurityPolicy/report-document-uri-after-blocked-redirect.html:
  • http/tests/security/contentSecurityPolicy/report-multiple-violations-01.php: Removed.
  • http/tests/security/contentSecurityPolicy/report-multiple-violations-01.py: Added.
  • http/tests/security/contentSecurityPolicy/report-multiple-violations-02.php: Removed.
  • http/tests/security/contentSecurityPolicy/report-multiple-violations-02.py: Added.
  • http/tests/security/contentSecurityPolicy/report-only-connect-src-beacon-redirect-blocked-expected.txt:
  • http/tests/security/contentSecurityPolicy/report-only-connect-src-beacon-redirect-blocked.php: Removed.
  • http/tests/security/contentSecurityPolicy/report-only-connect-src-beacon-redirect-blocked.py: Added.
  • http/tests/security/contentSecurityPolicy/report-only-connect-src-xmlhttprequest-redirect-to-blocked.php: Removed.
  • http/tests/security/contentSecurityPolicy/report-only-connect-src-xmlhttprequest-redirect-to-blocked.py: Added.
  • http/tests/security/contentSecurityPolicy/report-only-expected.txt:
  • http/tests/security/contentSecurityPolicy/report-only-from-header-expected.txt:
  • http/tests/security/contentSecurityPolicy/report-only-from-header.py:
  • http/tests/security/contentSecurityPolicy/report-only-upgrade-insecure-expected.txt:
  • http/tests/security/contentSecurityPolicy/report-only-upgrade-insecure.py:
  • http/tests/security/contentSecurityPolicy/report-only.py:
  • http/tests/security/contentSecurityPolicy/report-same-origin-no-cookies-when-private-browsing-toggled-expected.txt:
  • http/tests/security/contentSecurityPolicy/report-same-origin-no-cookies-when-private-browsing-toggled.py:
  • http/tests/security/contentSecurityPolicy/report-same-origin-with-cookies-expected.txt:
  • http/tests/security/contentSecurityPolicy/report-same-origin-with-cookies-when-private-browsing-enabled-expected.txt:
  • http/tests/security/contentSecurityPolicy/report-same-origin-with-cookies-when-private-browsing-enabled.py:
  • http/tests/security/contentSecurityPolicy/report-same-origin-with-cookies.py:
  • http/tests/security/contentSecurityPolicy/report-status-code-zero-when-using-https-expected.txt:
  • http/tests/security/contentSecurityPolicy/report-status-code-zero-when-using-https.html:
  • http/tests/security/contentSecurityPolicy/report-uri-expected.txt:
  • http/tests/security/contentSecurityPolicy/report-uri-from-child-frame-expected.txt:
  • http/tests/security/contentSecurityPolicy/report-uri-from-child-frame.html:
  • http/tests/security/contentSecurityPolicy/report-uri-from-inline-javascript-expected.txt:
  • http/tests/security/contentSecurityPolicy/report-uri-from-inline-javascript.py:
  • http/tests/security/contentSecurityPolicy/report-uri-from-javascript-expected.txt:
  • http/tests/security/contentSecurityPolicy/report-uri-from-javascript.py:
  • http/tests/security/contentSecurityPolicy/report-uri-in-meta-tag-ignored.html:
  • http/tests/security/contentSecurityPolicy/report-uri-scheme-relative-expected.txt:
  • http/tests/security/contentSecurityPolicy/report-uri-scheme-relative.py:
  • http/tests/security/contentSecurityPolicy/report-uri.py:
  • http/tests/security/contentSecurityPolicy/resources/echo-report.php: Removed.
  • http/tests/security/contentSecurityPolicy/resources/echo-report.py: Added.
  • http/tests/security/contentSecurityPolicy/resources/generate-csp-report.php: Removed.
  • http/tests/security/contentSecurityPolicy/resources/generate-csp-report.py: Added.
  • http/tests/security/contentSecurityPolicy/resources/go-to-echo-report.js:

(window.onload):

  • http/tests/security/contentSecurityPolicy/resources/go-to-echo-report.py:
  • http/tests/security/contentSecurityPolicy/resources/image-document-default-src-none-iframe.py:
  • http/tests/security/contentSecurityPolicy/resources/redir.php: Removed.
  • http/tests/security/contentSecurityPolicy/resources/report-file-path.php: Removed.
  • http/tests/security/contentSecurityPolicy/resources/report_file_path.py: Added.
  • http/tests/security/contentSecurityPolicy/resources/save-report-and-redirect-to-save-report.php: Removed.
  • http/tests/security/contentSecurityPolicy/resources/save-report-and-redirect-to-save-report.py: Added.
  • http/tests/security/contentSecurityPolicy/resources/save-report.php: Removed.
  • http/tests/security/contentSecurityPolicy/resources/save-report.py: Added.
  • http/tests/security/contentSecurityPolicy/resources/save_report.py: Added.

(not_being_called):
(save_report):

  • http/tests/security/contentSecurityPolicy/resources/worker.php: Removed.
  • http/tests/security/contentSecurityPolicy/resources/worker.py: Added.
  • http/tests/security/contentSecurityPolicy/resources/xhr-redirect-not-allowed.py:
  • http/tests/security/contentSecurityPolicy/same-origin-plugin-document-blocked-in-child-window-report-expected.txt:
  • http/tests/security/contentSecurityPolicy/same-origin-plugin-document-blocked-in-child-window-report.py:
  • http/tests/security/contentSecurityPolicy/worker-connect-src-allowed.html:
  • http/tests/security/contentSecurityPolicy/worker-connect-src-blocked.html:
  • http/tests/security/contentSecurityPolicy/worker-eval-blocked.html:
  • http/tests/security/contentSecurityPolicy/worker-function-function-blocked.html:
  • http/tests/security/contentSecurityPolicy/worker-importscripts-blocked.html:
  • http/tests/security/contentSecurityPolicy/worker-multiple-csp-headers.html:
  • http/tests/security/contentSecurityPolicy/worker-script-src.html:
  • http/tests/security/contentSecurityPolicy/worker-set-timeout-blocked.html:
  • http/tests/security/contentSecurityPolicy/worker-without-own-csp.html:
  • http/tests/security/contentSecurityPolicy/xmlhttprequest-protected-resource-does-not-crash.html:
  • http/tests/security/cookies/cookies-wrong-domain-rejected-result.php: Removed.
  • http/tests/security/cookies/cookies-wrong-domain-rejected-result.py: Added.
  • http/tests/security/cookies/cookies-wrong-domain-rejected.py:
  • http/tests/security/cookies/resources/first-party-cookie-allow.xsl:
  • http/tests/security/cookies/resources/set-a-cookie.php: Removed.
  • http/tests/security/cookies/resources/set-a-cookie.py: Added.
  • http/tests/security/cookies/resources/third-party-cookie-blocking.xsl:
  • http/tests/security/cookies/third-party-cookie-blocking-main-frame.html:
  • http/tests/security/cookies/third-party-cookie-blocking-user-action.html:
  • http/tests/security/cookies/third-party-cookie-blocking.html:
  • http/tests/security/credentials-from-different-domains.html:
  • http/tests/security/credentials-iframes-allowCrossOriginSubresourcesToAskForCredentials-expected.txt:
  • http/tests/security/credentials-iframes-expected.txt:
  • http/tests/security/import-module-crossorigin-loads.html:
  • http/tests/security/import-script-crossorigin-loads-omit.html:
  • http/tests/security/isolatedWorld/bypass-main-world-csp-worker.html:
  • http/tests/security/module-crossorigin-error-event-information-expected.txt:
  • http/tests/security/module-crossorigin-error-event-information.html:
  • http/tests/security/module-crossorigin-loads-correctly-credentials.html:
  • http/tests/security/module-crossorigin-loads-omit.html:
  • http/tests/security/module-crossorigin-onerror-information-expected.txt:
  • http/tests/security/module-crossorigin-onerror-information.html:
  • http/tests/security/private-browsing-http-auth-expected.txt:
  • http/tests/security/private-browsing-http-auth.html:
  • http/tests/security/referrer-policy-header-expected.txt:
  • http/tests/security/referrer-policy-header.html:
  • http/tests/security/resources/basic-auth.php: Removed.
  • http/tests/security/resources/basic-auth.py: Added.
  • http/tests/security/resources/cors-basic-auth.php: Removed.
  • http/tests/security/resources/cors-basic-auth.py: Added.
  • http/tests/security/resources/cors-script.php: Removed.
  • http/tests/security/resources/cors-script.py: Added.
  • http/tests/security/resources/credentials-from-different-domains-continued-1.html:
  • http/tests/security/resources/credentials-from-different-domains-continued-2.html:
  • http/tests/security/resources/credentials-iframes-different-domain.html:
  • http/tests/security/resources/credentials-iframes-same-domain.html:
  • http/tests/security/resources/credentials-main-resource.py:
  • http/tests/security/resources/import-module-crossorigin-loads-src.js:
  • http/tests/security/resources/reference-movie-cross-origin-allow.php: Removed.
  • http/tests/security/resources/reference-movie-cross-origin-allow.py: Added.
  • http/tests/security/resources/serve-referrer-policy-and-test.php: Removed.
  • http/tests/security/resources/serve-referrer-policy-and-test.py: Added.
  • http/tests/security/resources/video-cross-origin-allow-credentials.php: Removed.
  • http/tests/security/resources/video-cross-origin-allow-credentials.py: Added.
  • http/tests/security/resources/video-cross-origin-allow.php: Removed.
  • http/tests/security/resources/video-cross-origin-allow.py: Added.
  • http/tests/security/script-crossorigin-error-event-information-expected.txt:
  • http/tests/security/script-crossorigin-error-event-information.html:
  • http/tests/security/script-crossorigin-loads-correctly-credentials.html:
  • http/tests/security/script-crossorigin-loads-correctly.html:
  • http/tests/security/script-crossorigin-onerror-information-expected.txt:
  • http/tests/security/script-crossorigin-onerror-information.html:
  • http/tests/security/script-no-crossorigin-error-event-should-be-sanitized.html:
  • http/tests/security/script-no-crossorigin-onerror-should-be-sanitized.html:
  • http/tests/security/sync-xhr-partition.html:
  • http/tests/security/video-cross-origin-caching.html:
  • http/tests/security/video-cross-origin-readback.html:
  • http/tests/security/webaudio-render-remote-audio-allowed-crossorigin-redirect.html:
  • http/tests/security/webaudio-render-remote-audio-allowed-crossorigin.html:
  • http/tests/security/webaudio-render-remote-audio-blocked-no-crossorigin-redirect.html:
  • http/tests/security/webaudio-render-remote-audio-blocked-no-crossorigin.html:
  • http/tests/security/xssAuditor/report-script-tag-and-do-not-follow-redirect-when-sending-report-expected.txt:
  • http/tests/security/xssAuditor/report-script-tag-and-do-not-follow-redirect-when-sending-report.html:
  • http/tests/security/xssAuditor/report-script-tag-expected.txt:
  • http/tests/security/xssAuditor/report-script-tag-full-block-and-do-not-follow-redirect-when-sending-report-expected.txt:
  • http/tests/security/xssAuditor/report-script-tag-full-block-and-do-not-follow-redirect-when-sending-report.html:
  • http/tests/security/xssAuditor/report-script-tag-full-block-expected.txt:
  • http/tests/security/xssAuditor/report-script-tag-replace-state-expected.txt:
  • http/tests/security/xssAuditor/resources/echo-intertag.pl:
  • http/tests/security/xssAuditor/resources/tag-with-pause.py:
  • http/tests/ssl/curl/certificate-and-authentication.html:
  • platform/mac-wk1/TestExpectations:
  • platform/mac-wk1/http/tests/security/contentSecurityPolicy/report-document-uri-after-blocked-redirect-expected.txt:
  • platform/win/TestExpectations:
  • platform/win/http/tests/security/contentSecurityPolicy/report-document-uri-after-blocked-redirect-expected.txt:
  • platform/wk2/TestExpectations:
  • platform/wk2/http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-css-in-iframe-report-only-expected.txt:
5:14 PM Changeset in webkit [275848] by Robert Jenner
  • 2 edits in trunk/LayoutTests

[ BigSur Debug wk2 ARM64 ] webrtc/disable-encryption.html is a flakey timeout
https://bugs.webkit.org/show_bug.cgi?id=224463

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations: Updating test expectations to Pass Timeout while test is reviewed.
4:54 PM Changeset in webkit [275847] by jiewen_tan@apple.com
  • 2 edits in trunk/Source/WebKit

Force the WebAuthn compatible mode to always show UI
https://bugs.webkit.org/show_bug.cgi?id=224402
<rdar://75757362>

Reviewed by Brent Fulgham.

Covered by manual tests.

  • UIProcess/WebAuthentication/Cocoa/LocalConnection.mm:

(WebKit::LocalConnection::verifyUser):

4:43 PM Changeset in webkit [275846] by sihui_liu@apple.com
  • 8 edits in trunk/Source/WebKit

Create WebIDBServer only when it is needed
https://bugs.webkit.org/show_bug.cgi?id=224305
rdar://71962196

Reviewed by Alex Christensen.

Currently each WebIDBServer has a separate thread, so we don't want to create or keep WebIDBServer if it's not
in use. There are two cases where network process needs a WebIDBServer:

  1. handle requests from UI process to collect or remove data
  2. handle requests from Web process to perform IDB operations

Previously, we created a WebIDBServer when network process connects to a web process, but that does not mean web
process will perform IDB operations and we may create a thread that's not used. To avoid this, add a new message
AddIDBConnection for web process to ensure network process has WebIDBServer when it's about to perform operation.

Also, previously network process removes a WebIDBServer when session is removed and WebIDBServer is not binded
with any web process connection. Now we remove WebIDBServer when it's done handling requests, that is count of
pending requests from UI process is 0 and WebIDBServer is not binded with web process connection. We also remove
WebIDBServer at when network process is about to be destroyed (NetworkProcess::didClose) so we can break the
reference cycle of NetworkProcess-WebIDBServer-IDBServer, and make sure thread exits.

  • NetworkProcess/IndexedDB/WebIDBServer.cpp:

(WebKit::WebIDBServer::create):
(WebKit::WebIDBServer::WebIDBServer):
(WebKit::m_closeCallback):
(WebKit::WebIDBServer::~WebIDBServer):
(WebKit::WebIDBServer::getOrigins):
(WebKit::WebIDBServer::closeAndDeleteDatabasesModifiedSince):
(WebKit::WebIDBServer::closeAndDeleteDatabasesForOrigins):
(WebKit::WebIDBServer::renameOrigin):
(WebKit::WebIDBServer::removeConnection):
(WebKit::WebIDBServer::close):
(WebKit::WebIDBServer::tryClose):

  • NetworkProcess/IndexedDB/WebIDBServer.h:
  • NetworkProcess/NetworkConnectionToWebProcess.cpp:

(WebKit::NetworkConnectionToWebProcess::addIDBConnection):

  • NetworkProcess/NetworkConnectionToWebProcess.h:
  • NetworkProcess/NetworkConnectionToWebProcess.messages.in:
  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::didClose):
(WebKit::NetworkProcess::createNetworkConnectionToWebProcess):
(WebKit::NetworkProcess::destroySession):
(WebKit::NetworkProcess::createWebIDBServer):
(WebKit::NetworkProcess::connectionToWebProcessClosed):
(WebKit::NetworkProcess::removeWebIDBServerIfPossible): Deleted. Move the removal code to WebIDBServer.

  • WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.cpp:

(WebKit::WebIDBConnectionToServer::WebIDBConnectionToServer):

4:14 PM Changeset in webkit [275845] by BJ Burg
  • 12 edits in trunk/Source

Modernize uses of ConsoleClient
https://bugs.webkit.org/show_bug.cgi?id=224398

Reviewed by David Kilzer.

ConsoleClient acts like a delegate, so its callers
should be using weak references to it.

Source/JavaScriptCore:

  • inspector/JSGlobalObjectInspectorController.cpp:

(Inspector::JSGlobalObjectInspectorController::consoleClient const):

  • inspector/JSGlobalObjectInspectorController.h:
  • runtime/ConsoleClient.h:
  • runtime/ConsoleObject.cpp:

(JSC::consoleLogWithLevel):
(JSC::JSC_DEFINE_HOST_FUNCTION):

  • runtime/JSGlobalObject.cpp:

(JSC::JSGlobalObject::init):
(JSC::JSGlobalObject::setConsoleClient):

  • runtime/JSGlobalObject.h:

(JSC::JSGlobalObject::consoleClient const):
(JSC::JSGlobalObject::setConsoleClient): Deleted.

Source/WebCore:

  • bindings/js/ScriptCachedFrameData.cpp:

(WebCore::ScriptCachedFrameData::restore):

  • bindings/js/ScriptController.cpp:

(WebCore::ScriptController::initScriptForWindowProxy):

  • bindings/js/WindowProxy.cpp:

(WebCore::WindowProxy::setDOMWindow):

  • workers/WorkerOrWorkletScriptController.cpp:

(WebCore::WorkerOrWorkletScriptController::initScriptWithSubclass):

4:12 PM Changeset in webkit [275844] by Alan Coon
  • 1 copy in tags/Safari-611.1.22.4.1

Tag Safari-611.1.22.4.1.

4:06 PM Changeset in webkit [275843] by Alan Coon
  • 8 edits in branches/safari-611.1.22.4-branch/Source

Versioning.

WebKit-7611.1.22.4.1

3:46 PM Changeset in webkit [275842] by Alan Coon
  • 1 copy in branches/safari-611.1.22.4-branch

New branch.

3:41 PM Changeset in webkit [275841] by commit-queue@webkit.org
  • 10 edits in trunk/Source/ThirdParty/ANGLE

REGRESSION (Metal ANGLE): [Catalina] 6 consistent WebGL failures / timeouts
https://bugs.webkit.org/show_bug.cgi?id=224016
<rdar://problem/76070325>

Patch by John Cunningham <johncunnigham@apple.com>
Patch by Dean Jackson <dino@apple.com> on 2021-04-12
Reviewed by Dean Jackson.

Implement a workaround for Intel GPUs where we explicitly type cast floating
point values to booleans. This is only needed for Catalina systems.

  • include/GLSLANG/ShaderLang.h:
  • include/platform/FeaturesMtl.h:
  • src/compiler/translator/TranslatorMetalDirect.cpp:

(sh::TranslatorMetalDirect::translateImpl):

  • src/compiler/translator/TranslatorMetalDirect/AddExplicitTypeCasts.cpp:

(sh::Rewriter::Rewriter):
(sh::AddExplicitTypeCasts):

  • src/compiler/translator/TranslatorMetalDirect/AddExplicitTypeCasts.h:
  • src/compiler/translator/TranslatorMetalDirect/AstHelpers.cpp:

(sh::SubVector):
(sh::CoerceSimple):

  • src/compiler/translator/TranslatorMetalDirect/AstHelpers.h:
  • src/libANGLE/renderer/metal/DisplayMtl.mm:

(rx::DisplayMtl::initializeFeatures):

  • src/libANGLE/renderer/metal/ShaderMtl.mm:

(rx::ShaderMtl::compile):

3:01 PM Changeset in webkit [275840] by ysuzuki@apple.com
  • 22 edits in trunk/Source/JavaScriptCore

[JSC] Do not copy StringSwitchJumpTable
https://bugs.webkit.org/show_bug.cgi?id=224414

Reviewed by Keith Miller.

Previously, we were copying UnlinkedStringJumpTable to CodeBlock's StringJumpTable because we embed CodeLocation pointer
inside CodeBlock's StringJumpTable. This is copying a mostly identical hashtable to each CodeBlock even in DFG and FTL. This
even prevents us from inlining op_switch_string in DFG and FTL because (1) we don't want to copy this string tables collected from
each inlined CodeBlock into a new DFG / FTL CodeBlock and (2) we cannot ref/deref StringImpl inside DFG / FTL compilers so copying
these tables in the compiler threads need additional "DesiredStringSwitchJumpTable" etc.

In this patch, we stop copying StringSwitchJumpTable. We decouple CodeLocation pointers from the hashtable so that we can use
UnlinkedStringJumpTable in UnlinkedCodeBlock. UnlinkedStringJumpTable's hashtable inclues m_indexInTable in each entry so that
we can have array of CodeLocation pointers in CodeBlock's JITData to have JIT jump targets separately. This design prevents us
from copying unnecessary hashtables, and even this paves the way to inlining switch_string in DFG and FTL.

  • bytecode/BytecodeDumper.cpp:

(JSC::CodeBlockBytecodeDumper<Block>::dumpStringSwitchJumpTables):

  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::finishCreation):
(JSC::CodeBlock::shrinkToFit):

  • bytecode/CodeBlock.h:

(JSC::CodeBlock::stringSwitchJumpTable):
(JSC::CodeBlock::numberOfUnlinkedStringSwitchJumpTables const):
(JSC::CodeBlock::unlinkedStringSwitchJumpTable):
(JSC::CodeBlock::numberOfStringSwitchJumpTables const): Deleted.

  • bytecode/JumpTable.h:

(JSC::StringJumpTable::ctiForValue const):
(JSC::StringJumpTable::offsetForValue): Deleted.
(JSC::StringJumpTable::ctiForValue): Deleted.
(JSC::StringJumpTable::clear): Deleted.

  • bytecode/PreciseJumpTargetsInlines.h:
  • bytecode/UnlinkedCodeBlock.h:

(JSC::UnlinkedStringJumpTable::offsetForValue const):
(JSC::UnlinkedCodeBlock::numberOfUnlinkedStringSwitchJumpTables const):
(JSC::UnlinkedCodeBlock::unlinkedStringSwitchJumpTable):
(JSC::UnlinkedStringJumpTable::offsetForValue): Deleted.
(JSC::UnlinkedCodeBlock::numberOfStringSwitchJumpTables const): Deleted.
(JSC::UnlinkedCodeBlock::stringSwitchJumpTable): Deleted.

  • bytecode/UnlinkedCodeBlockGenerator.cpp:

(JSC::UnlinkedCodeBlockGenerator::finalize):

  • bytecode/UnlinkedCodeBlockGenerator.h:

(JSC::UnlinkedCodeBlockGenerator::numberOfUnlinkedStringSwitchJumpTables const):
(JSC::UnlinkedCodeBlockGenerator::addUnlinkedStringSwitchJumpTable):
(JSC::UnlinkedCodeBlockGenerator::unlinkedStringSwitchJumpTable):
(JSC::UnlinkedCodeBlockGenerator::numberOfStringSwitchJumpTables const): Deleted.
(JSC::UnlinkedCodeBlockGenerator::addStringSwitchJumpTable): Deleted.
(JSC::UnlinkedCodeBlockGenerator::stringSwitchJumpTable): Deleted.

  • bytecompiler/BytecodeGenerator.cpp:

(JSC::BytecodeGenerator::beginSwitch):
(JSC::prepareJumpTableForStringSwitch):
(JSC::BytecodeGenerator::endSwitch):

  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::parseBlock):

  • dfg/DFGJITCompiler.cpp:

(JSC::DFG::JITCompiler::link):

  • dfg/DFGOperations.cpp:

(JSC::DFG::JSC_DEFINE_JIT_OPERATION):

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::switchStringSlow):

  • ftl/FTLOperations.cpp:

(JSC::FTL::JSC_DEFINE_JIT_OPERATION):

  • jit/JIT.cpp:

(JSC::JIT::link):

  • jit/JIT.h:

(JSC::SwitchRecord::SwitchRecord):

  • jit/JITOpcodes.cpp:

(JSC::JIT::emit_op_switch_string):

  • jit/JITOpcodes32_64.cpp:

(JSC::JIT::emit_op_switch_string):

  • jit/JITOperations.cpp:

(JSC::JSC_DEFINE_JIT_OPERATION):

  • llint/LLIntSlowPaths.cpp:

(JSC::LLInt::LLINT_SLOW_PATH_DECL):

  • runtime/CachedTypes.cpp:

(JSC::CachedStringJumpTable::encode):
(JSC::CachedStringJumpTable::decode const):
(JSC::CachedCodeBlockRareData::encode):
(JSC::CachedCodeBlockRareData::decode const):

2:28 PM Changeset in webkit [275839] by Chris Dumez
  • 2 edits in trunk/Source/WebKit

Make sure AuxiliaryProcessProxy::sendMessage() is called on the main thread
https://bugs.webkit.org/show_bug.cgi?id=224448

Reviewed by Geoffrey Garen.

Make sure AuxiliaryProcessProxy::sendMessage() is called on the main thread. This is a follow-up to
Bug 224377 but for trunk.

  • UIProcess/AuxiliaryProcessProxy.cpp:

(WebKit::AuxiliaryProcessProxy::sendMessage):
(WebKit::AuxiliaryProcessProxy::didFinishLaunching):
(WebKit::AuxiliaryProcessProxy::replyToPendingMessages):

2:28 PM Changeset in webkit [275838] by Chris Dumez
  • 9 edits
    4 adds in trunk

webaudio/AudioListener/audiolistener-set-position.html is leaking PannerNodes
https://bugs.webkit.org/show_bug.cgi?id=224399

Reviewed by Geoffrey Garen.

LayoutTests/imported/w3c:

Rebaseline existing WPT test. It is still passing but the exception message is different.

  • web-platform-tests/webaudio/the-audio-api/the-audiocontext-interface/audiocontext-suspend-resume-expected.txt:

Source/WebCore:

The test was leaking all its nodes and contexts due to several logic issues in our code.

Tests: webaudio/OfflineAudioContext/offlineaudiocontext-can-only-render-once.html

webaudio/OfflineAudioContext/offlineaudiocontext-leak-after-rendering-with-nodes.html

  • Modules/webaudio/AudioScheduledSourceNode.cpp:

(WebCore::AudioScheduledSourceNode::AudioScheduledSourceNode):
(WebCore::AudioScheduledSourceNode::virtualHasPendingActivity const):
(WebCore::AudioScheduledSourceNode::finish):

  • Modules/webaudio/AudioScheduledSourceNode.h:
  1. Stop using an ActiveDOMObject::PendingActivity to keep our wrapper alive as this was causing a reference cycle. PendingActivity keeps a ref to |this| and this is ref'ing the PendingActivity. 2 things could break the cycle:
    • finish() gets called but the audio context may go away without finish getting called.
    • didBecomeMarkedForDeletion() gets called. However, it was getting called from AudioNode::markNodeForDeletionIfNecessary(). This function would early return if m_normalRefCount is not 0. Here m_normalRefCount could NOT be 0, since PendingActity was ref'ing the Node.
  2. Instead of a PendingActivity, we now override ActiveDOMObject::virtualHasPendingActivity() to keep the wrapper alive. The behavior is the same since its return true when the state is not finished and the node has not been marked for deletion. However, I added a condition to make sure it starts returning false as soon as the context is closed. There is also no need to keep the JS wrapper alive if there is no 'ended' event listener.
  • Modules/webaudio/BaseAudioContext.cpp:

(WebCore::BaseAudioContext::lazyInitialize):
Early return if lazyInitialize() gets called for an audiocontext is closed. Nothing prevents JS from
creating an AudioNode after the AudioContext is closed. Constructing an AudioNode ends up lazy
initializing the audio context. In such case, we would already early return in release because if the
m_isAudioThreadFinished check. However, we would crash in debug because of the m_isAudioThreadFinished
ASSERT().

  • Modules/webaudio/BaseAudioContext.h:

Make clear() member function protected so it can get called by OfflineAudioContext when rendering is
complete.

  • Modules/webaudio/OfflineAudioContext.cpp:

(WebCore::OfflineAudioContext::uninitialize):
Stop rejecting the suspend promises when the OfflineAudioContext gets uninitialized. Previously this
would only happen on navigation so we did not notice the issue. However, the OfflineAudioContext now
gets uninitialized as soon as it is done rendering and rejecting those promises in this case would
start causing test failures.

(WebCore::OfflineAudioContext::didFinishOfflineRendering):

  • Stop clearing the m_didStartOfflineRendering flag when rendering is finished. This flag is called rendering started in the WebAudio specification [1]. As per the specification, it gets set to true in startRendering() and never gets reset to false. This means that an offline audio context cannot start rendering again once it is done rendering. I have added a layout test for this behavior change and verified that this test is passing is both Firefox and Chrome. [1] https://webaudio.github.io/web-audio-api/#dom-offlineaudiocontext-startrendering
  • Call uninitialize() and clear() when rendering has finished to clear as much memory as possible as soon as we can. This is acceptable because it is no longer possible to start rendering again once it's finished. Previously, uninitialize() / clear() would only happen when navigating away and when the document would get destroyed.

LayoutTests:

Add layout test coverage.

  • webaudio/OfflineAudioContext/offlineaudiocontext-can-only-render-once-expected.txt: Added.
  • webaudio/OfflineAudioContext/offlineaudiocontext-can-only-render-once.html: Added.
  • webaudio/OfflineAudioContext/offlineaudiocontext-leak-after-rendering-with-nodes-expected.txt: Added.
  • webaudio/OfflineAudioContext/offlineaudiocontext-leak-after-rendering-with-nodes.html: Added.
1:31 PM Changeset in webkit [275837] by Alan Bujtas
  • 2 edits in trunk/LayoutTests

ASSERTION FAILED: &layoutState().establishedFormattingState(layoutBox.formattingContextRoot()) == this in WebCore::Layout::FormattingState::boxGeometry
https://bugs.webkit.org/show_bug.cgi?id=219905
<rdar://problem/72350516>

The underlying issue (non-synchronized settings update) has been addressed by r275810.

Reviewed by Simon Fraser.

  • platform/mac-wk2/TestExpectations:
1:25 PM Changeset in webkit [275836] by Ruben Turcios
  • 1 copy in tags/Safari-612.1.10.2

Tag Safari-612.1.10.2.

12:38 PM Changeset in webkit [275835] by commit-queue@webkit.org
  • 19 edits
    6 copies
    3 adds in trunk/Source

Initial implementation of WebChromeClient::enumerateImmersiveXRDevices() and XRDeviceProxy
https://bugs.webkit.org/show_bug.cgi?id=224353

Patch by Ada Chan <ada.chan@apple.com> on 2021-04-12
Source/WebCore:

Reviewed by Dean Jackson.

Remove PlatformXRDeviceCocoa as WebKit::XRDeviceProxy will be implementing PlatformXR::Device.
Implement the encode/decode methods to enable PlatformXR::Device::FrameData to
be sent over IPC.

  • platform/xr/PlatformXR.h:

(PlatformXR::Device::trackingAndRenderingClient const):
(PlatformXR::Device::FrameData::FloatQuaternion::encode const):
(PlatformXR::Device::FrameData::FloatQuaternion::decode):
(PlatformXR::Device::FrameData::Pose::encode const):
(PlatformXR::Device::FrameData::Pose::decode):
(PlatformXR::Device::FrameData::Fov::encode const):
(PlatformXR::Device::FrameData::Fov::decode):
(PlatformXR::Device::FrameData::View::encode const):
(PlatformXR::Device::FrameData::View::decode):
(PlatformXR::Device::FrameData::StageParameters::encode const):
(PlatformXR::Device::FrameData::StageParameters::decode):
(PlatformXR::Device::FrameData::LayerData::encode const):
(PlatformXR::Device::FrameData::LayerData::decode):
(PlatformXR::Device::FrameData::encode const):
(PlatformXR::Device::FrameData::decode):

  • platform/xr/cocoa/PlatformXRCocoa.h:

(): Deleted.

Source/WebKit:

Reviewed by Dean Jackson

  • Add XRDeviceProxy which implements PlatformXR::Device.
  • Implement WebChromeClient::enumerateImmersiveXRDevices(), which calls PlatformXRSystemProxy

to get the list of XRDeviceProxy.

  • XRDeviceProxy goes through PlatformXRSystemProxy to handle its operations.

PlatformXRSystemProxy sends messages over IPC to PlatformXRSystem on the UI process side,
which handles XR device discovery and manages sessions via the PlatformXRCoordinator interface.
PlatformXRSystem::xrCoordinator() returns null for now and will be handled in a later patch.

  • DerivedSources-input.xcfilelist:
  • DerivedSources-output.xcfilelist:
  • DerivedSources.make:
  • Platform/Logging.h:
  • Scripts/webkit/messages.py:

(types_that_cannot_be_forward_declared):
(headers_for_type):

  • Shared/Cocoa/XRDeviceProxy.h: Added.
  • Shared/Cocoa/XRDeviceProxy.mm: Added.

(WebKit::XRDeviceProxy::create):
(WebKit::XRDeviceProxy::XRDeviceProxy):
Initialize its data members based on the XRDeviceInfo passed in.
Keep a weak pointer to PlatformXRSystemProxy (as PlatformXRSystemProxy has
strong references to its list of XRDeviceProxy).
(WebKit::XRDeviceProxy::sessionDidEnd):
Notify the TrackingAndRenderingClient that the session has ended.
(WebKit::XRDeviceProxy::initializeTrackingAndRendering):
(WebKit::XRDeviceProxy::shutDownTrackingAndRendering):
(WebKit::XRDeviceProxy::views const):
Return left and right views if the device supports stereo rendering.
Otherwise return just one view.
(WebKit::XRDeviceProxy::requestFrame):

  • Shared/WebCoreArgumentCoders.h:
  • SourcesCocoa.txt:
  • UIProcess/Cocoa/PlatformXRCoordinator.h: Copied from Source/WebCore/platform/xr/cocoa/PlatformXRCocoa.h.

Initial interface for communicating with the platform regarding XR devices and sessions.
For now, the interface covers session creation and termination, and scheduling frame updates.

  • UIProcess/Cocoa/PlatformXRSystem.h: Copied from Source/WebCore/platform/xr/cocoa/PlatformXRCocoa.h.
  • UIProcess/Cocoa/PlatformXRSystem.messages.in: Copied from Source/WebCore/platform/xr/cocoa/PlatformXRCocoa.h.
  • UIProcess/Cocoa/PlatformXRSystem.mm: Added.

(WebKit::PlatformXRSystem::PlatformXRSystem):
(WebKit::PlatformXRSystem::~PlatformXRSystem):
(WebKit::PlatformXRSystem::invalidate):
End any existing session on invalidation.
(WebKit::PlatformXRSystem::enumerateImmersiveXRDevices):
(WebKit::PlatformXRSystem::initializeTrackingAndRendering):
(WebKit::PlatformXRSystem::shutDownTrackingAndRendering):
(WebKit::PlatformXRSystem::requestFrame):
(WebKit::PlatformXRSystem::xrCoordinator):

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::didAttachToRunningProcess):
Set up the PlatformXRSystem held by the WebPageProxy.
(WebKit::WebPageProxy::resetState):
Invalidate m_xrSystem so existing session is ended properly.

  • UIProcess/WebPageProxy.h:
  • UIProcess/mac/HighPerformanceGPUManager.h:

Include WeakHashSet.h due to recent type change of m_processesRequiringHighPerformance
from HashSet to WeakHashSet.

  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/WebCoreSupport/WebChromeClient.cpp:

(WebKit::WebChromeClient::enumerateImmersiveXRDevices):
Get the list of XRDeviceInfo that represents the immersive devices returned
from PlatformXRSystem. Reuse any existing XRDeviceProxy instances that have the same
XRDeviceIdentifier. Otherwise, create new ones.

  • WebProcess/WebCoreSupport/WebChromeClient.h:
  • WebProcess/WebPage/Cocoa/WebPageCocoa.mm:

(WebKit::WebPage::xrSystemProxy):

  • WebProcess/WebPage/WebPage.h:
  • WebProcess/cocoa/PlatformXRSystemProxy.h: Copied from Source/WebCore/platform/xr/cocoa/PlatformXRCocoa.h.
  • WebProcess/cocoa/PlatformXRSystemProxy.messages.in: Copied from Source/WebCore/platform/xr/cocoa/PlatformXRCocoa.h.
  • WebProcess/cocoa/PlatformXRSystemProxy.mm: Added.

(WebKit::PlatformXRSystemProxy::PlatformXRSystemProxy):
(WebKit::PlatformXRSystemProxy::~PlatformXRSystemProxy):
(WebKit::PlatformXRSystemProxy::enumerateImmersiveXRDevices):
(WebKit::PlatformXRSystemProxy::initializeTrackingAndRendering):
(WebKit::PlatformXRSystemProxy::shutDownTrackingAndRendering):
(WebKit::PlatformXRSystemProxy::requestFrame):
(WebKit::PlatformXRSystemProxy::sessionDidEnd):
(WebKit::PlatformXRSystemProxy::deviceByIdentifier):

12:31 PM Changeset in webkit [275834] by graouts@webkit.org
  • 5 edits in trunk

border-image-width computed values should be a calc() value if it contains a percentage
https://bugs.webkit.org/show_bug.cgi?id=224420

Reviewed by Simon Fraser.

LayoutTests/imported/w3c:

We now pass the final test that was a FAIL result for the border-image-width computed style test.
We also pass a fair few border-image-width interpolation tests since we used to fail them as a
result of the expected value being expected to be a resolved value rather than a calc() value
due the computed style we returned for such values. There are a few PASS results than became
FAIL results because we now correctly expect a calc() value, but we return the keyframe value
as-is for 0 and 1 progress, a bug we will fix shortly.

  • web-platform-tests/css/css-backgrounds/animations/border-image-width-interpolation-expected.txt:
  • web-platform-tests/css/css-backgrounds/parsing/border-image-width-computed-expected.txt:

Source/WebCore:

When handling calc() values containing a percentage, we must retain the calc() form when creating
the computed style for border-image-width.

  • css/CSSToStyleMap.cpp:

(WebCore::CSSToStyleMap::mapNinePieceImageQuad):

12:20 PM Changeset in webkit [275833] by Ruben Turcios
  • 8 edits in branches/safari-612.1.10-branch/Source

Versioning.

WebKit-7612.1.10.2

12:01 PM Changeset in webkit [275832] by commit-queue@webkit.org
  • 6 edits
    1 add in trunk/Source/ThirdParty/ANGLE

Crash in webgl/2.0.y/conformance/glsl/misc/uninitialized-local-global-variables.html ANGLE+METAL
https://bugs.webkit.org/show_bug.cgi?id=223923

Anonymous structs require a name in MSL, add a default name ANGLEunnamed$id to any structs.
Also add a unit test to ensure this works.
Patch by Kyle Piddington <Kyle Piddington> on 2021-04-12
Reviewed by Kenneth Russell.

  • src/compiler/translator/TranslatorMetalDirect.cpp:

(sh::TranslatorMetalDirect::translateImpl):

  • src/compiler/translator/TranslatorMetalDirect/SeparateCompoundStructDeclarations.cpp:

(sh::Separator::Separator):
(sh::SeparateCompoundStructDeclarations):

  • src/compiler/translator/TranslatorMetalDirect/SeparateCompoundStructDeclarations.h:
  • src/tests/BUILD.gn:
  • src/tests/angle_unittests.gni:
  • src/tests/compiler_tests/MSLOutput_Test.cpp:
11:48 AM Changeset in webkit [275831] by youenn@apple.com
  • 9 edits in trunk

Block loading for port 10080
https://bugs.webkit.org/show_bug.cgi?id=224432

Reviewed by Alex Christensen.

LayoutTests/imported/w3c:

  • web-platform-tests/fetch/api/request/request-bad-port.any-expected.txt:
  • web-platform-tests/fetch/api/request/request-bad-port.any.js:
  • web-platform-tests/fetch/api/request/request-bad-port.any.worker-expected.txt:
  • web-platform-tests/websockets/Create-blocked-port.any-expected.txt:
  • web-platform-tests/websockets/Create-blocked-port.any.js:
  • web-platform-tests/websockets/Create-blocked-port.any.worker-expected.txt:

Source/WTF:

Follow Chrome and Firefox by blocking port 10080.

  • wtf/URL.cpp:

(WTF::portAllowed):

11:45 AM Changeset in webkit [275830] by youenn@apple.com
  • 12 edits
    3 adds in trunk

Add support for RTCEncodedFrame metadata
https://bugs.webkit.org/show_bug.cgi?id=224430

Reviewed by Eric Carlson.

Source/WebCore:

Expose metadata given from backend.
Audio sender side uses a regular TransformableFrameInterface instead of a TransformableAudioFrameInterface.
Make sure to not call GetHeader() in that case.

Test: http/wpt/webrtc/metadata-transform.html

  • Modules/mediastream/RTCEncodedAudioFrame.cpp:

(WebCore::RTCEncodedAudioFrame::timestamp const):
(WebCore::RTCEncodedAudioFrame::getMetadata):

  • Modules/mediastream/RTCEncodedAudioFrame.h:
  • Modules/mediastream/RTCEncodedAudioFrame.idl:
  • Modules/mediastream/RTCEncodedVideoFrame.cpp:

(WebCore::RTCEncodedVideoFrame::timestamp const):
(WebCore::RTCEncodedVideoFrame::getMetadata):

  • Modules/mediastream/RTCEncodedVideoFrame.h:
  • Modules/mediastream/RTCEncodedVideoFrame.idl:
  • Modules/mediastream/RTCRtpTransformableFrame.h:
  • Modules/mediastream/libwebrtc/LibWebRTCRtpTransformBackend.cpp:

(WebCore::LibWebRTCRtpTransformBackend::Transform):

  • Modules/mediastream/libwebrtc/LibWebRTCRtpTransformableFrame.cpp:

(WebCore::LibWebRTCRtpTransformableFrame::LibWebRTCRtpTransformableFrame):
(WebCore::LibWebRTCRtpTransformableFrame::timestamp const):
(WebCore::LibWebRTCRtpTransformableFrame::audioMetadata const):
(WebCore::LibWebRTCRtpTransformableFrame::videoMetadata const):

  • Modules/mediastream/libwebrtc/LibWebRTCRtpTransformableFrame.h:

LayoutTests:

  • http/wpt/webrtc/metadata-transform-expected.txt: Added.
  • http/wpt/webrtc/metadata-transform-worker.js: Added.

(onrtctransform.process):
(onrtctransform):

  • http/wpt/webrtc/metadata-transform.html: Added.
10:37 AM Changeset in webkit [275829] by weinig@apple.com
  • 3 edits in trunk/Source/WebCore

Remove unused 'DefaultDefineOwnProperty' extended attribute support
https://bugs.webkit.org/show_bug.cgi?id=224436

Reviewed by Antti Koivisto.

The old CSSStyleDeclaration named-getter based implementation was
the last user so this can now be removed.

  • bindings/scripts/CodeGeneratorJS.pm:

(InstanceOverridesDefineOwnProperty):

  • bindings/scripts/IDLAttributes.json:
10:26 AM Changeset in webkit [275828] by weinig@apple.com
  • 75 edits in trunk/LayoutTests/imported/w3c

Update WPT css/css-color tests
https://bugs.webkit.org/show_bug.cgi?id=224419

Reviewed by Antti Koivisto.

Update to the latest version of the css/css-color tests.

  • web-platform-tests/css/css-color/META.yml:
  • web-platform-tests/css/css-color/hex-001-expected.html:
  • web-platform-tests/css/css-color/hex-001.html:
  • web-platform-tests/css/css-color/hex-002-expected.html:
  • web-platform-tests/css/css-color/hex-002.html:
  • web-platform-tests/css/css-color/hex-003-expected.html:
  • web-platform-tests/css/css-color/hex-003.html:
  • web-platform-tests/css/css-color/hex-004-expected.html:
  • web-platform-tests/css/css-color/hex-004.html:
  • web-platform-tests/css/css-color/hsl-001-expected.html:
  • web-platform-tests/css/css-color/hsl-001.html:
  • web-platform-tests/css/css-color/hsl-002-expected.html:
  • web-platform-tests/css/css-color/hsl-002.html:
  • web-platform-tests/css/css-color/hsl-003-expected.html:
  • web-platform-tests/css/css-color/hsl-003.html:
  • web-platform-tests/css/css-color/hsl-004-expected.html:
  • web-platform-tests/css/css-color/hsl-004.html:
  • web-platform-tests/css/css-color/hsl-005-expected.html:
  • web-platform-tests/css/css-color/hsl-005.html:
  • web-platform-tests/css/css-color/hsl-006-expected.html:
  • web-platform-tests/css/css-color/hsl-006.html:
  • web-platform-tests/css/css-color/hsl-007-expected.html:
  • web-platform-tests/css/css-color/hsl-007.html:
  • web-platform-tests/css/css-color/hsl-008-expected.html:
  • web-platform-tests/css/css-color/hsl-008.html:
  • web-platform-tests/css/css-color/hsla-001-expected.html:
  • web-platform-tests/css/css-color/hsla-001.html:
  • web-platform-tests/css/css-color/hsla-002-expected.html:
  • web-platform-tests/css/css-color/hsla-002.html:
  • web-platform-tests/css/css-color/hsla-003-expected.html:
  • web-platform-tests/css/css-color/hsla-003.html:
  • web-platform-tests/css/css-color/hsla-004-expected.html:
  • web-platform-tests/css/css-color/hsla-004.html:
  • web-platform-tests/css/css-color/hsla-005-expected.html:
  • web-platform-tests/css/css-color/hsla-005.html:
  • web-platform-tests/css/css-color/hsla-006-expected.html:
  • web-platform-tests/css/css-color/hsla-006.html:
  • web-platform-tests/css/css-color/hsla-007-expected.html:
  • web-platform-tests/css/css-color/hsla-007.html:
  • web-platform-tests/css/css-color/hsla-008-expected.html:
  • web-platform-tests/css/css-color/hsla-008.html:
  • web-platform-tests/css/css-color/rgb-001-expected.html:
  • web-platform-tests/css/css-color/rgb-001.html:
  • web-platform-tests/css/css-color/rgb-002-expected.html:
  • web-platform-tests/css/css-color/rgb-002.html:
  • web-platform-tests/css/css-color/rgb-003-expected.html:
  • web-platform-tests/css/css-color/rgb-003.html:
  • web-platform-tests/css/css-color/rgb-004-expected.html:
  • web-platform-tests/css/css-color/rgb-004.html:
  • web-platform-tests/css/css-color/rgb-005-expected.html:
  • web-platform-tests/css/css-color/rgb-005.html:
  • web-platform-tests/css/css-color/rgb-006-expected.html:
  • web-platform-tests/css/css-color/rgb-006.html:
  • web-platform-tests/css/css-color/rgb-007-expected.html:
  • web-platform-tests/css/css-color/rgb-007.html:
  • web-platform-tests/css/css-color/rgb-008-expected.html:
  • web-platform-tests/css/css-color/rgb-008.html:
  • web-platform-tests/css/css-color/rgba-001-expected.html:
  • web-platform-tests/css/css-color/rgba-001.html:
  • web-platform-tests/css/css-color/rgba-002-expected.html:
  • web-platform-tests/css/css-color/rgba-002.html:
  • web-platform-tests/css/css-color/rgba-003-expected.html:
  • web-platform-tests/css/css-color/rgba-003.html:
  • web-platform-tests/css/css-color/rgba-004-expected.html:
  • web-platform-tests/css/css-color/rgba-004.html:
  • web-platform-tests/css/css-color/rgba-005-expected.html:
  • web-platform-tests/css/css-color/rgba-005.html:
  • web-platform-tests/css/css-color/rgba-006-expected.html:
  • web-platform-tests/css/css-color/rgba-006.html:
  • web-platform-tests/css/css-color/rgba-007-expected.html:
  • web-platform-tests/css/css-color/rgba-007.html:
  • web-platform-tests/css/css-color/rgba-008-expected.html:
  • web-platform-tests/css/css-color/rgba-008.html:
  • web-platform-tests/css/css-color/w3c-import.log:
10:18 AM Changeset in webkit [275827] by commit-queue@webkit.org
  • 9 edits in trunk

[GStreamer][WebRTC] An audio track should be muted when capture is interrupted by the OS.
https://bugs.webkit.org/show_bug.cgi?id=196606

Patch by Philippe Normand <pnormand@igalia.com> on 2021-04-12
Reviewed by Xabier Rodriguez-Calvar.

Source/WebCore:

Add basic interruption support in the audio capture source and mock audio capture source.

  • platform/mediastream/gstreamer/GStreamerAudioCaptureSource.cpp:

(WebCore::GStreamerAudioCaptureSource::interrupted const):
(WebCore::GStreamerAudioCaptureSource::setInterruptedForTesting):

  • platform/mediastream/gstreamer/GStreamerAudioCaptureSource.h:
  • platform/mediastream/gstreamer/GStreamerCapturer.cpp:

(WebCore::GStreamerCapturer::setupPipeline):
(WebCore::GStreamerCapturer::interrupted const):
(WebCore::GStreamerCapturer::setInterrupted):

  • platform/mediastream/gstreamer/GStreamerCapturer.h:
  • platform/mediastream/gstreamer/MockRealtimeAudioSourceGStreamer.cpp:

(WebCore::MockRealtimeAudioSourceGStreamer::setInterruptedForTesting):

  • platform/mediastream/gstreamer/MockRealtimeAudioSourceGStreamer.h:

LayoutTests:

  • platform/glib/TestExpectations: fast/mediastream/media-stream-track-interrupted.html is now passing.
9:53 AM Changeset in webkit [275826] by weinig@apple.com
  • 6 edits in trunk

Update color-contrast() to support a target contrast ratio
https://bugs.webkit.org/show_bug.cgi?id=224411

Reviewed by Antti Koivisto.

Source/WebCore:

Updated fast/css/parsing-color-contrast.html with new test cases.

  • css/CSSValueKeywords.in:

Add new keywords, AA and AA-large which are constants for contrast ratios of 4.5
and 3.0 respectively.

  • css/parser/CSSPropertyParserHelpers.cpp:

(WebCore::CSSPropertyParserHelpers::parseColorFunctionParameters):
Remove now incorrect comment about adding support for fallback as fallback
has been removed from the spec.

(WebCore::CSSPropertyParserHelpers::selectFirstColorThatMeetsOrExceedsTargetContrast):
(WebCore::CSSPropertyParserHelpers::selectFirstColorWithHighestContrast):
(WebCore::CSSPropertyParserHelpers::parseColorContrastFunctionParameters):
Add support for the new optional target contrast ratio in color-contrast() that was
recently added to CSS Color 5.

LayoutTests:

Add tests and update results for target contrast ratios in color-contrast().

  • fast/css/parsing-color-contrast-expected.txt:
  • fast/css/parsing-color-contrast.html:
9:49 AM Changeset in webkit [275825] by Antti Koivisto
  • 7 edits
    2 adds in trunk

Descendant style relations are sometimes reset when they shouldn't
https://bugs.webkit.org/show_bug.cgi?id=224431
rdar://76267783

Reviewed by Sam Weinig.
Source/WebCore:

Some style relations computed during resolution of descendants are set on a parent element.
The parent element shouldn't reset them unless we are actually also computing the descendants.

Test: fast/css/first-letter-style-relation-crash.html

  • dom/Element.cpp:

(WebCore::Element::resetStyleRelations):
(WebCore::Element::resetChildStyleRelations):
(WebCore::Element::resetAllDescendantStyleRelations):

Split resetStyleRelations into separate parts.

  • dom/Element.h:

(WebCore::Element::styleAffectedByEmpty const):
(WebCore::Element::childrenAffectedByForwardPositionalRules const):
(WebCore::Element::descendantsAffectedByForwardPositionalRules const):
(WebCore::Element::childrenAffectedByBackwardPositionalRules const):
(WebCore::Element::descendantsAffectedByBackwardPositionalRules const):
(WebCore::Element::childrenAffectedByPropertyBasedBackwardPositionalRules const):
(WebCore::Element::setStyleAffectedByEmpty):
(WebCore::Element::setChildrenAffectedByForwardPositionalRules):
(WebCore::Element::setDescendantsAffectedByForwardPositionalRules):
(WebCore::Element::setChildrenAffectedByBackwardPositionalRules):
(WebCore::Element::setDescendantsAffectedByBackwardPositionalRules):
(WebCore::Element::setChildrenAffectedByPropertyBasedBackwardPositionalRules):

  • dom/ElementRareData.h:

(WebCore::ElementRareData::resetStyleRelations): Deleted.

  • dom/Node.h:

(WebCore::Node::StyleBitfields::clearFlags):
(WebCore::Node::clearStyleFlags):
(WebCore::Node::StyleBitfields::dynamicStyleRelations const): Deleted.
(WebCore::Node::StyleBitfields::setDynamicStyleRelation): Deleted.
(WebCore::Node::StyleBitfields::clearDynamicStyleRelations): Deleted.
(WebCore::Node::hasDynamicStyleRelationFlag const): Deleted.
(WebCore::Node::setDynamicStyleRelationFlag): Deleted.

Remove the meaningless DynamicStyleRelation concept and merge these flags with the others.

  • style/StyleTreeResolver.cpp:

(WebCore::Style::TreeResolver::resolveElement):
(WebCore::Style::TreeResolver::resolveComposedTree):

Only clear the descendant or child style relation bits if we are actually re-resolving
descendants or children.

LayoutTests:

  • fast/css/first-letter-style-relation-crash-expected.txt: Added.
  • fast/css/first-letter-style-relation-crash.html: Added.
9:36 AM Changeset in webkit [275824] by youenn@apple.com
  • 23 edits in trunk/LayoutTests/imported/w3c

Update WPT streams test to ToT
https://bugs.webkit.org/show_bug.cgi?id=224284

Reviewed by Alex Christensen.

  • web-platform-tests/streams/README.md:
  • web-platform-tests/streams/piping/general.any-expected.txt:
  • web-platform-tests/streams/piping/general.any.js:

(promise_test.t.const.rs.new.ReadableStream.start):

  • web-platform-tests/streams/piping/general.any.worker-expected.txt:
  • web-platform-tests/streams/readable-byte-streams/bad-buffers-and-views.any-expected.txt:
  • web-platform-tests/streams/readable-byte-streams/bad-buffers-and-views.any.js:
  • web-platform-tests/streams/readable-byte-streams/bad-buffers-and-views.any.worker-expected.txt:
  • web-platform-tests/streams/readable-byte-streams/general.any-expected.txt:
  • web-platform-tests/streams/readable-byte-streams/general.any.js:

(test):

  • web-platform-tests/streams/readable-byte-streams/general.any.worker-expected.txt:
  • web-platform-tests/streams/readable-streams/async-iterator.any-expected.txt:
  • web-platform-tests/streams/readable-streams/async-iterator.any.js:

(promise_test.async const):
(promise_test):

  • web-platform-tests/streams/readable-streams/async-iterator.any.worker-expected.txt:
  • web-platform-tests/streams/readable-streams/default-reader.any-expected.txt:
  • web-platform-tests/streams/readable-streams/default-reader.any.js:

(promise_test.t.const.rs.new.ReadableStream.start):

  • web-platform-tests/streams/readable-streams/default-reader.any.worker-expected.txt:
  • web-platform-tests/streams/readable-streams/general.any-expected.txt:
  • web-platform-tests/streams/readable-streams/general.any.js:

(promise_test):

  • web-platform-tests/streams/readable-streams/general.any.worker-expected.txt:
  • web-platform-tests/streams/transform-streams/patched-global.any-expected.txt:
  • web-platform-tests/streams/transform-streams/patched-global.any.js:
  • web-platform-tests/streams/transform-streams/patched-global.any.worker-expected.txt:
8:08 AM Changeset in webkit [275823] by commit-queue@webkit.org
  • 3 edits
    2 adds in trunk

Clamp overridingContentLogicalWidth/Height to zero
https://bugs.webkit.org/show_bug.cgi?id=224310

Patch by Rob Buis <rbuis@igalia.com> on 2021-04-12
Reviewed by Sergio Villar Senin.

Source/WebCore:

Clamp overridingContentLogicalWidth/Height to zero.

Test: fast/css-grid-layout/negative-overriding-content-logical-height-crash.html

  • rendering/RenderBox.h:

(WebCore::RenderBox::overridingContentLogicalWidth const):
(WebCore::RenderBox::overridingContentLogicalHeight const):

LayoutTests:

Add test for this.

  • fast/css-grid-layout/negative-overriding-content-logical-height-crash-expected.txt: Added.
  • fast/css-grid-layout/negative-overriding-content-logical-height-crash.html: Added.
6:52 AM Changeset in webkit [275822] by youenn@apple.com
  • 5 edits in trunk/LayoutTests

[ macOS wk2 ] webrtc/libwebrtc/release-while-creating-offer.html is a flakey text failure
https://bugs.webkit.org/show_bug.cgi?id=224256
<rdar://problem/76296126>

Reviewed by Eric Carlson.

Pass a valid candidate to remove the rejection message.

  • platform/mac-wk2/TestExpectations:
  • webrtc/libwebrtc/release-while-creating-offer-expected.txt:
  • webrtc/libwebrtc/release-while-creating-offer.html:
  • webrtc/libwebrtc/release-while-setting-local-description.html:
6:46 AM WebKitGTK/2.32.x edited by Philippe Normand
(diff)
6:41 AM Changeset in webkit [275821] by commit-queue@webkit.org
  • 4 edits
    2 adds in trunk

[MSE][GStreamer] Crash in WebCore::PlaybackPipeline::addSourceBuffer when setting duration and preload is set to none
https://bugs.webkit.org/show_bug.cgi?id=224260

Patch by Philippe Normand <pnormand@igalia.com> on 2021-04-12
Reviewed by Xabier Rodriguez-Calvar.

Source/WebCore:

Disable delayed loading for the GStreamer MSE player, we want the MSE source element to be
configured ASAP, otherwise the playback pipeline will fail in various ways (duration
notifications sent too early, crashes in addSourceBuffer, crashes in attachTracks, and so
on).

Test: media/media-source/media-source-no-preload-set-duration-crash.html

  • platform/graphics/gstreamer/mse/MediaPlayerPrivateGStreamerMSE.cpp:

(WebCore::MediaPlayerPrivateGStreamerMSE::durationChanged):

LayoutTests:

  • media/media-source/media-source-no-preload-set-duration-crash-expected.txt: Added.
  • media/media-source/media-source-no-preload-set-duration-crash.html: Added.
6:23 AM Changeset in webkit [275820] by Philippe Normand
  • 2 edits in trunk/Tools/buildstream

Unreviewed, update libsoup 2.99.3 ref

  • elements/sdk/libsoup3.bst: Previous ref had 2.99.2 version set in meson.build.
6:15 AM Changeset in webkit [275819] by youenn@apple.com
  • 18 edits
    3 adds in trunk

Make sure all frames get transformed when overriding a transform with another one
https://bugs.webkit.org/show_bug.cgi?id=224367

Reviewed by Eric Carlson.

Source/WebCore:

We were previously removing the old transform, then attaching the new transforn.
There was a time where no transform was attached and a few samples could get missed.
To prevent this, we add a new code path where we transfer a backend from one transform to another.
In that case, we synchronoulsy change the input callback from the old one to the new one instead of setting it to null in between.

Test: http/wpt/webrtc/change-encoded-transform.html

  • Modules/mediastream/RTCRtpReceiver.cpp:

(WebCore::RTCRtpReceiver::setTransform):

  • Modules/mediastream/RTCRtpReceiver.h:
  • Modules/mediastream/RTCRtpReceiverBackend.h:
  • Modules/mediastream/RTCRtpScriptTransform.cpp:

(WebCore::RTCRtpScriptTransform::~RTCRtpScriptTransform):
(WebCore::RTCRtpScriptTransform::willClearBackend):
(WebCore::RTCRtpScriptTransform::clear):

  • Modules/mediastream/RTCRtpScriptTransform.h:
  • Modules/mediastream/RTCRtpScriptTransformer.cpp:

(WebCore::RTCRtpScriptTransformer::clear):

  • Modules/mediastream/RTCRtpScriptTransformer.h:
  • Modules/mediastream/RTCRtpSender.cpp:

(WebCore::RTCRtpSender::setTransform):

  • Modules/mediastream/RTCRtpSender.h:
  • Modules/mediastream/RTCRtpSenderBackend.h:
  • Modules/mediastream/RTCRtpTransform.cpp:

(WebCore::RTCRtpTransform::from):
(WebCore::RTCRtpTransform::attachToReceiver):
(WebCore::RTCRtpTransform::attachToSender):
(WebCore::RTCRtpTransform::backendTransferedToNewTransform):

  • Modules/mediastream/RTCRtpTransform.h:

(WebCore::RTCRtpTransform::takeBackend):

  • Modules/mediastream/libwebrtc/LibWebRTCRtpReceiverBackend.cpp:

(WebCore::LibWebRTCRtpReceiverBackend::rtcRtpTransformBackend):

  • Modules/mediastream/libwebrtc/LibWebRTCRtpReceiverBackend.h:
  • Modules/mediastream/libwebrtc/LibWebRTCRtpSenderBackend.cpp:

(WebCore::LibWebRTCRtpSenderBackend::LibWebRTCRtpSenderBackend):
(WebCore::LibWebRTCRtpSenderBackend::rtcRtpTransformBackend):

  • Modules/mediastream/libwebrtc/LibWebRTCRtpSenderBackend.h:

LayoutTests:

  • http/wpt/webrtc/change-encoded-transform-expected.txt: Added.
  • http/wpt/webrtc/change-encoded-transform.html: Added.
  • http/wpt/webrtc/change-encoded-transform.js: Added.

(appendToBuffer):
(onrtctransform.process):
(onrtctransform):

5:26 AM Changeset in webkit [275818] by commit-queue@webkit.org
  • 3 edits
    2 adds in trunk

Out of memory crash with find('a'.repeat(230))
https://bugs.webkit.org/show_bug.cgi?id=223787

Source/WebCore:

Patch by Frédéric Wang <fwang@igalia.com> on 2021-04-12
Reviewed by Ryosuke Niwa.

SearchBuffer::SearchBuffer allocates a buffer whose capacity is at least 8 times the size of
the searched text and at least 8192. It's possible to hit an out-of-memory crash by passing
a very long string to window.find. Since there is no reason to search for arbitrary large
text, limit it to a maximum length of 64kB.

Test: editing/find/find-long-string-crash.html

  • page/DOMWindow.cpp:

(WebCore::DOMWindow::find const): Exit early if the string length is larger than a limit.

LayoutTests:

Patch by Frederic Wang <fred.wang@free.fr> on 2021-04-12
Reviewed by Ryosuke Niwa.

Add regression test.

  • editing/find/find-short-and-long-strings-expected.txt: Added.
  • editing/find/find-short-and-long-strings.html: Added.
2:26 AM Changeset in webkit [275817] by Chris Lord
  • 17 edits
    4 adds in trunk/Source/WebCore

Refactor font loading to make it possible for Worker to implement it
https://bugs.webkit.org/show_bug.cgi?id=224277

Reviewed by Darin Adler.

Introduce FontLoadRequest and FontLoadRequestClient as an abstraction
separate from CachedFont and CachedFontClient to allow for separate
implementations. Also move Document-specific font-loading behaviour
from CSSFontSelector into Document and add non-Document specific
accessors to ScriptExecutionContext.

These changes should allow for custom font loading to be implementable
on a Worker, which will be necessary for FontFace support in
OffscreenCanvas.

No new tests, no change in behavior.

  • Headers.cmake: Added FontLoadRequest.h, CachedFontLoadRequest.h and DocumentFontLoader.h.
  • Sources.txt: Added DocumentFontLoader.cpp.
  • WebCore.xcodeproj/project.pbxproj: Added files listed above.
  • css/CSSFontFace.cpp: Update to not require Document for custom font loading.

(WebCore::CSSFontFace::appendSources):

  • css/CSSFontFaceSource.cpp: Update to use FontLoadRequest instead of CachedFont.

(WebCore::CSSFontFaceSource::CSSFontFaceSource):
(WebCore::CSSFontFaceSource::~CSSFontFaceSource):
(WebCore::CSSFontFaceSource::opportunisticallyStartFontDataURLLoading):
(WebCore::CSSFontFaceSource::fontLoaded):
(WebCore::CSSFontFaceSource::load):
(WebCore::CSSFontFaceSource::font):
(WebCore::CSSFontFaceSource::isSVGFontFaceSource const):

  • css/CSSFontFaceSource.h:
  • css/CSSFontFaceSrcValue.cpp: Update to use FontLoadRequest and ScriptExecutionContext instead of CachedResourceLoader.

(WebCore::CSSFontFaceSrcValue::fontLoadRequest):

  • css/CSSFontFaceSrcValue.h:
  • css/CSSFontSelector.cpp: Remove Document-specific code.

(WebCore::CSSFontSelector::CSSFontSelector):
(WebCore::CSSFontSelector::~CSSFontSelector):
(WebCore::CSSFontSelector::clearFonts):

  • css/CSSFontSelector.h:
  • dom/Document.cpp: Implement ScriptExecutionContext::fontLoadRequest and ::beginLoadingFontSoon.

(WebCore::Document::~Document):
(WebCore::Document::removedLastRef):
(WebCore::Document::resolveStyle):
(WebCore::Document::suspendFontLoading):
(WebCore::Document::fontLoadRequest):
(WebCore::Document::beginLoadingFontSoon):
(WebCore::Document::suspend):
(WebCore::Document::resume):

  • dom/Document.h:
  • dom/DocumentFontLoader.cpp: Added. New class to handle Document-specific font-loading code that was previously in CSSFontSelector and CSSFontFaceSrcValue.

(WebCore::DocumentFontLoader::DocumentFontLoader):
(WebCore::DocumentFontLoader::~DocumentFontLoader):
(WebCore::DocumentFontLoader::cachedFont):
(WebCore::DocumentFontLoader::beginLoadingFontSoon):
(WebCore::DocumentFontLoader::loadPendingFonts):
(WebCore::DocumentFontLoader::fontLoadingTimerFired):
(WebCore::DocumentFontLoader::stopLoadingAndClearFonts):
(WebCore::DocumentFontLoader::suspendFontLoading):
(WebCore::DocumentFontLoader::resumeFontLoading):

  • dom/DocumentFontLoader.h:
  • dom/ScriptExecutionContext.cpp: Add functions to initiate font load requests.

(WebCore::ScriptExecutionContext::fontLoadRequest):

  • dom/ScriptExecutionContext.h:

(WebCore::ScriptExecutionContext::beginLoadingFontSoon):

  • loader/DocumentLoader.cpp: CSSFontSelector::suspendFontLoadingTimer is now Document::suspendFontLoading.

(WebCore::DocumentLoader::stopLoading):

  • loader/FontLoadRequest.h: Added. An interface to manage font loading that abstracts some of the behaviour of CachedResource, CachedFont and CachedFontClient.

(WebCore::FontLoadRequestClient::fontLoaded):
(WebCore::FontLoadRequestClient::isCachedFontLoadRequest const):

  • loader/cache/CachedFontLoadRequest.h: Added. An implementation of FontLoadRequest for CachedFont.
  • workers/WorkerGlobalScope.cpp: Remove now-redundant CSSFontSelector call.

(WebCore::WorkerGlobalScope::~WorkerGlobalScope):

1:13 AM Changeset in webkit [275816] by Adrian Perez de Castro
  • 17 edits in trunk/Source

[WPE][GTK] Use g_object_notify_by_pspec() whenever possible
https://bugs.webkit.org/show_bug.cgi?id=224366

Reviewed by Carlos Garcia Campos.

Keep a static array with the GParamSpec pointer for each property, and trigger
property change notifications using g_object_notify_by_pspec() to avoid looking
up by its name each time.

Source/WebCore:

No new tests needed.

  • platform/graphics/gstreamer/TextCombinerPadGStreamer.cpp:

(webkit_text_combiner_pad_class_init):

Source/WebKit:

  • Shared/API/glib/WebKitURIRequest.cpp:

(webkit_uri_request_class_init):
(webkit_uri_request_set_uri):

  • UIProcess/API/glib/WebKitDownload.cpp:

(webkitDownloadDecideDestination):
(webkit_download_class_init):
(webkitDownloadSetResponse):
(webkitDownloadNotifyProgress):
(webkit_download_set_destination):
(webkit_download_set_allow_overwrite):

  • UIProcess/API/glib/WebKitEditorState.cpp:

(webkit_editor_state_class_init):
(webkitEditorStateSetTypingAttributes):

  • UIProcess/API/glib/WebKitGeolocationManager.cpp:

(webkitGeolocationManagerSetEnableHighAccuracy):
(webkit_geolocation_manager_class_init):

  • UIProcess/API/glib/WebKitInputMethodContext.cpp:

(webkit_input_method_context_class_init):
(webkit_input_method_context_set_input_purpose):
(webkit_input_method_context_set_input_hints):

  • UIProcess/API/glib/WebKitSettings.cpp:

(webkit_settings_class_init):
(webkit_settings_set_enable_javascript):
(webkit_settings_set_auto_load_images):
(webkit_settings_set_load_icons_ignoring_image_load_setting):
(webkit_settings_set_enable_offline_web_application_cache):
(webkit_settings_set_enable_html5_local_storage):
(webkit_settings_set_enable_html5_database):
(webkit_settings_set_enable_xss_auditor):
(webkit_settings_set_enable_frame_flattening):
(webkit_settings_set_enable_java):
(webkit_settings_set_javascript_can_open_windows_automatically):
(webkit_settings_set_enable_hyperlink_auditing):
(webkit_settings_set_default_font_family):
(webkit_settings_set_monospace_font_family):
(webkit_settings_set_serif_font_family):
(webkit_settings_set_sans_serif_font_family):
(webkit_settings_set_cursive_font_family):
(webkit_settings_set_fantasy_font_family):
(webkit_settings_set_pictograph_font_family):
(webkit_settings_set_default_font_size):
(webkit_settings_set_default_monospace_font_size):
(webkit_settings_set_minimum_font_size):
(webkit_settings_set_default_charset):
(webkit_settings_set_enable_developer_extras):
(webkit_settings_set_enable_resizable_text_areas):
(webkit_settings_set_enable_tabs_to_links):
(webkit_settings_set_enable_dns_prefetching):
(webkit_settings_set_enable_caret_browsing):
(webkit_settings_set_enable_fullscreen):
(webkit_settings_set_print_backgrounds):
(webkit_settings_set_enable_webaudio):
(webkit_settings_set_enable_webgl):
(webkit_settings_set_allow_modal_dialogs):
(webkit_settings_set_zoom_text_only):
(webkit_settings_set_javascript_can_access_clipboard):
(webkit_settings_set_media_playback_requires_user_gesture):
(webkit_settings_set_media_playback_allows_inline):
(webkit_settings_set_draw_compositing_indicators):
(webkit_settings_set_enable_site_specific_quirks):
(webkit_settings_set_enable_page_cache):
(webkit_settings_set_user_agent):
(webkit_settings_set_enable_smooth_scrolling):
(webkit_settings_set_enable_write_console_messages_to_stdout):
(webkit_settings_set_enable_media_stream):
(webkit_settings_set_enable_mock_capture_devices):
(webkit_settings_set_enable_spatial_navigation):
(webkit_settings_set_enable_mediasource):
(webkit_settings_set_enable_encrypted_media):
(webkit_settings_set_enable_media_capabilities):
(webkit_settings_set_allow_file_access_from_file_urls):
(webkit_settings_set_allow_universal_access_from_file_urls):
(webkit_settings_set_allow_top_navigation_to_data_urls):
(webkit_settings_set_hardware_acceleration_policy):
(webkit_settings_set_enable_back_forward_navigation_gestures):
(webkit_settings_set_enable_javascript_markup):
(webkit_settings_set_enable_media):
(webkit_settings_set_media_content_types_requiring_hardware_support):

  • UIProcess/API/glib/WebKitWebContext.cpp:

(webkitWebContextGetProperty):
(webkitWebContextSetProperty):
(webkit_web_context_class_init):
(webkit_web_context_set_use_system_appearance_for_scrollbars):

  • UIProcess/API/glib/WebKitWebResource.cpp:

(webkit_web_resource_class_init):
(webkitWebResourceUpdateURI):
(webkitWebResourceSetResponse):

  • UIProcess/API/glib/WebKitWebView.cpp:

(webkitWebViewSetIsLoading):
(webkitWebViewIsPlayingAudioChanged):
(webkitWebViewUpdateFavicon):
(webkit_web_view_class_init):
(webkitWebViewLoadChanged):
(webkitWebViewDidChangePageID):
(webkit_web_view_set_is_muted):
(webkit_web_view_set_settings):
(webkit_web_view_set_zoom_level):
(webkit_web_view_set_editable):

  • UIProcess/API/glib/WebKitWindowProperties.cpp:

(webkit_window_properties_class_init):
(webkitWindowPropertiesSetGeometry):
(webkitWindowPropertiesSetToolbarVisible):
(webkitWindowPropertiesSetMenubarVisible):
(webkitWindowPropertiesSetStatusbarVisible):
(webkitWindowPropertiesSetLocationbarVisible):
(webkitWindowPropertiesSetScrollbarsVisible):
(webkitWindowPropertiesSetResizable):
(webkitWindowPropertiesSetFullscreen):

  • UIProcess/API/gtk/WebKitColorChooserRequest.cpp:

(webkit_color_chooser_request_class_init):
(webkit_color_chooser_request_set_rgba):

  • UIProcess/API/gtk/WebKitPrintOperation.cpp:

(webkit_print_operation_class_init):
(webkit_print_operation_set_print_settings):
(webkit_print_operation_set_page_setup):

  • UIProcess/API/gtk/WebKitWebInspector.cpp:

(webkit_web_inspector_class_init):

  • WebProcess/InjectedBundle/API/glib/WebKitWebPage.cpp:

(webkitWebPageSetURI):
(webkit_web_page_class_init):

1:05 AM Changeset in webkit [275815] by youenn@apple.com
  • 2 edits in trunk/Source/WebCore

Use DestructionThread::Main for RTCRtpScriptTransform
https://bugs.webkit.org/show_bug.cgi?id=224368
<rdar://76404727>

Reviewed by Eric Carlson.

It is safer to make it DestructionThread::Main to guarantee it is destroyed in main thread.

  • Modules/mediastream/RTCRtpScriptTransform.h:

Apr 11, 2021:

11:02 PM Changeset in webkit [275814] by commit-queue@webkit.org
  • 4 edits in trunk/Tools

Unreviewed, reverting r275801.
https://bugs.webkit.org/show_bug.cgi?id=224423

run-jsc-stress-tests output includes a lot of texts

Reverted changeset:

"[JSC] detect infrastructure failure for remote stress tests"
https://bugs.webkit.org/show_bug.cgi?id=222601
https://trac.webkit.org/changeset/275801

8:02 PM Changeset in webkit [275813] by Ruben Turcios
  • 8 edits in trunk/Source

Versioning.

WebKit-7612.1.12

8:00 PM Changeset in webkit [275812] by Ruben Turcios
  • 1 copy in branches/safari-612.1.11-branch

New branch.

3:53 PM Changeset in webkit [275811] by Cameron McCormack
  • 4 edits
    4 adds in trunk

Fix initial horizontal scrollbar position when vertical scrollbar is on the left.
https://bugs.webkit.org/show_bug.cgi?id=224409

Reviewed by Darin Adler.

Source/WebCore:

Scrollable elements that place their vertical scrollbar on the left
(e.g. when they're direction: rtl or when the OS language is RTL and
the relevant setting to always follow OS scrollbar side is used) have
an incorrect scroll origin, which leads to creating a horizontal
scrollbar with an incorrect initial offset. This is because
RenderLayerScrollableArea::computeScrollDimensions runs prior to the
scrollbars being created. So whenever we start or stop having a
(non-overlay) vertical scrollbar on the left, we need to recompute
the scroll origin and fix up the horizontal scrollbar's offset.

Tests: fast/scrolling/rtl-scrollbars-initial-position-dynamic.html

fast/scrolling/rtl-scrollbars-initial-position.html

  • rendering/RenderLayerScrollableArea.cpp:

(WebCore::RenderLayerScrollableArea::computeScrollDimensions):
(WebCore::RenderLayerScrollableArea::computeScrollOrigin): Split this
out of computeScrollDimensions so we can call it from
updateScrollbarsAfterLayout and updateScrollbarsAfterStyleChange, and
have it ask the horizontal scrollbar to update its offset. We could
condition this on the scroll origin actually having changed, but
that's going to be a similar check that Scrollbar::offsetDidChange
does to ensure the offset value did indeed change. We don't want to
condition this on shouldPlaceBlockDirectionScrollbarOnLeft(), since
that's dependent on the current style, and we may be reacting to a
style change removed the vertical scrollbar on the left.
(WebCore::RenderLayerScrollableArea::updateScrollbarsAfterLayout):
(WebCore::RenderLayerScrollableArea::updateScrollbarsAfterStyleChange):

  • rendering/RenderLayerScrollableArea.h:

LayoutTests:

  • fast/scrolling/rtl-scrollbars-initial-position-dynamic-expected.html: Added.
  • fast/scrolling/rtl-scrollbars-initial-position-dynamic.html: Added.
  • fast/scrolling/rtl-scrollbars-initial-position-expected.html: Added.
  • fast/scrolling/rtl-scrollbars-initial-position.html: Added.
1:11 PM Changeset in webkit [275810] by weinig@apple.com
  • 16 edits in trunk

Simplify WebKitTestRunner preference reset to be more like DRT
https://bugs.webkit.org/show_bug.cgi?id=224410

Reviewed by Darin Adler.

Source/WebKit:

Add WKPreferencesStartBatchingUpdates/WKPreferencesEndBatchingUpdates
to support batching preferences updates by clients.

  • UIProcess/API/C/WKPreferences.cpp:

(WKPreferencesStartBatchingUpdates):
(WKPreferencesEndBatchingUpdates):

  • UIProcess/API/C/WKPreferencesRefPrivate.h:
  • UIProcess/WebPreferences.h:

Tools:

  • Use boolWebPreferenceFeatures consistently for accessibilityIsolatedTreeMode
  • Adopt new WKPreferencesStartBatchingUpdates/WKPreferencesEndBatchingUpdates to ensure all preferences updates are batched.
  • Move all preference overrides that can be moved (two still require some specialized handling for now) to TestOptions defaults.
  • Remove now unnecessary platformResetPreferencesToConsistentValues() platform configuration point.
  • WebKitTestRunner/Options.cpp:

(WTR::handleOptionAccessibilityIsolatedTreeMode):

  • WebKitTestRunner/Options.h:
  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::initialize):
(WTR::batchUpdatePreferences):
(WTR::TestController::resetPreferencesToConsistentValues):
(WTR::TestController::resetStateToConsistentValues):

  • WebKitTestRunner/TestController.h:

(WTR::TestController::accessibilityIsolatedTreeMode const): Deleted.

  • WebKitTestRunner/TestOptions.cpp:

(WTR::TestOptions::defaults):

  • WebKitTestRunner/TestOptions.h:

(WTR::TestOptions::accessibilityIsolatedTreeMode const):

  • WebKitTestRunner/gtk/TestControllerGtk.cpp:

(WTR::TestController::platformResetStateToConsistentValues):
(WTR::TestController::platformResetPreferencesToConsistentValues): Deleted.

  • WebKitTestRunner/ios/TestControllerIOS.mm:

(WTR::TestController::platformResetStateToConsistentValues):
(WTR::TestController::platformResetPreferencesToConsistentValues): Deleted.

  • WebKitTestRunner/mac/TestControllerMac.mm:

(WTR::TestController::platformResetPreferencesToConsistentValues): Deleted.

  • WebKitTestRunner/win/TestControllerWin.cpp:

(WTR::TestController::platformResetPreferencesToConsistentValues): Deleted.

  • WebKitTestRunner/wpe/TestControllerWPE.cpp:

(WTR::TestController::platformResetPreferencesToConsistentValues): Deleted.

12:33 PM Changeset in webkit [275809] by Darin Adler
  • 3 edits in trunk/Source/WebCore

[Mac] Add a missing null check to slider thumb focus rendering
https://bugs.webkit.org/show_bug.cgi?id=224418
rdar://76450584

Reviewed by Sam Weinig.

  • rendering/RenderThemeMac.h: Changed updateFocusedState to take a pointer.
  • rendering/RenderThemeMac.mm:

(WebCore::RenderThemeMac::updateFocusedState): Check pointer for null. This was the
missing null check.
(WebCore::RenderThemeMac::paintSliderThumb): Pass delegate pointer instead of reference.
Also made sure we always update the focused state. Old code took the approach of just not
updating focus state when it encountered null for the focus delegate, but that's not a
good strategy. In future we may also want to change the focusDelegate function signature
to make it clear it will never return null, but that's not critical right now.
(WebCore::RenderThemeMac::setSearchCellState): Update since updateFocusedState now
takes a pointer.

10:06 AM Changeset in webkit [275808] by weinig@apple.com
  • 26 edits
    2 moves
    1 add
    1 delete in trunk

Reduce compile time and binary size cost of enabling proper CSSStyleDeclaration property access behavior
https://bugs.webkit.org/show_bug.cgi?id=222518
<rdar://problem/75136887>

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

  • web-platform-tests/css/cssom/cssstyledeclaration-properties-expected.txt:

Update test result now that it is passing.

Source/WebCore:

Re-implement proper (not using named-getters) support for the CSSStyleDeclaration bindings
using a new DelegateToSharedSyntheticAttribute extended atttribute which allows IDL attributes
to share a custom getter / setter implementation and delegate their implementation to it. When
using this functionality, the synthetic attribute's implementation is passed the original property
name so it can implement functionality based on it.

We use this for CSSStyleDeclaration by breaking the huge list of generated properties into
four groups, each with their own synthetic attribute. The groups are based on the different
transformation rules in the spec.

  • bindings/js/JSDOMAttribute.h:

(WebCore::IDLAttribute::setPassingPropertyName):
(WebCore::IDLAttribute::getPassingPropertyName):
Add overloads of get/set that pass the property name to the provided function. These can't
be simple overloads of get/set as MSVC does not allow overloading with only a non-type
template parameters differentiating.

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateInterface):
Eagerly generate the any synthetic attributes before the rest of code generation,
matching the behavior of other synthetic constructions like map/set/stringifiers.

(GetAttributeGetterName):
(GetAttributeSetterName):
Add special cases to getter/setter name generation to forward to the generated
name of the synthetic attribute when delegating.

(GenerateImplementation):
Extract attribute function forward declaration genation into a new GenerateAttributeGetterAndSetterDeclaration
subroutine and use it for generation of both normal and synthetic attributes. Also adds
synthetic attributes to the list of attributes to generate function implementations for.

(GenerateAttributeGetterAndSetterDeclaration):
Extracted from GenerateImplementation. Adds extra condition to bail if DelegateToSharedSyntheticAttribute
is specified.

(GenerateAttributeGetterBodyDefinition):
Add support for the new CallWith=PropertyName extended attribute by adding a PropertyName
argument to the signature of getter body if it is present. Removes now unnecessary support
for the CSSProperty extended attribute.

(GenerateAttributeGetterTrampolineDefinition):
Switch function name from get to getPassingPropertyName if CallWith=PropertyName is specified.

(GenerateAttributeGetterDefinition):
Adds extra condition to bail if DelegateToSharedSyntheticAttribute is specified.

(GenerateAttributeSetterBodyDefinition):
Add support for the new CallWith=PropertyName extended attribute by adding a PropertyName
argument to the signature of getter body if it is present. Removes now unnecessary support
for the CSSProperty extended attribute.

(GenerateAttributeSetterTrampolineDefinition):
Switch function name from get to getPassingPropertyName if CallWith=PropertyName is specified.

(GenerateAttributeSetterDefinition):
Adds extra condition to bail if DelegateToSharedSyntheticAttribute is specified.

(GenerateCallWith):
Add support for the PropertyName value to CallWith.

(MakeSharedSyntheticAttribute):
Helper to generate the synthetic attribute from the base attribute with DelegateToSharedSyntheticAttribute
specefied. Maintains all existing extended attributes of the base attribute except
DelegateToSharedSyntheticAttribute is replaced with IsSharedSyntheticAttribute to avoid
infinite recursion.

(AddSharedSyntheticAttributesIfNeeded):
Helper to find all delegating attributes and generate / store the synthetic attributes.

(GetSharedSyntheticAttribute):
Helper to get the corresponding synthetic attribute given an attribute with
DelegateToSharedSyntheticAttribute specified on it.

  • bindings/scripts/IDLAttributes.json:

Removes CSSProperty. Adds DelegateToSharedSyntheticAttribute. Adds PropertyName value to
CallWith and SetterCallWith.

  • css/CSSStyleDeclaration.cpp:

(WebCore::lookupCSSPropertyFromIDLAttribute):
(WebCore::CSSStyleDeclaration::propertyValueForCamelCasedIDLAttribute):
(WebCore::CSSStyleDeclaration::setPropertyValueForCamelCasedIDLAttribute):
(WebCore::CSSStyleDeclaration::propertyValueForWebKitCasedIDLAttribute):
(WebCore::CSSStyleDeclaration::setPropertyValueForWebKitCasedIDLAttribute):
(WebCore::CSSStyleDeclaration::propertyValueForDashedIDLAttribute):
(WebCore::CSSStyleDeclaration::setPropertyValueForDashedIDLAttribute):
(WebCore::CSSStyleDeclaration::propertyValueForEpubCasedIDLAttribute):
(WebCore::CSSStyleDeclaration::setPropertyValueForEpubCasedIDLAttribute):
(WebCore::CSSStyleDeclaration::namedItem): Deleted.
(WebCore::CSSStyleDeclaration::setNamedItem): Deleted.
(WebCore::CSSStyleDeclaration::supportedPropertyNames const): Deleted.

  • css/CSSStyleDeclaration.h:

Replace named-getter based implementation with helpers based on the definitions
in the CSSOM spec (plus one special set for 'epub' specializations we currently
maintain).

  • css/CSSStyleDeclaration.idl:

Remove !ENABLE_ATTRIBUTE_BASED_PROPERTIES_FOR_CSS_STYLE_DECLARATION sections now that
we can fully support ENABLE_ATTRIBUTE_BASED_PROPERTIES_FOR_CSS_STYLE_DECLARATION.

  • css/makeprop.pl:

Remove !ENABLE_ATTRIBUTE_BASED_PROPERTIES_FOR_CSS_STYLE_DECLARATION sections now that
we can fully support ENABLE_ATTRIBUTE_BASED_PROPERTIES_FOR_CSS_STYLE_DECLARATION.
Replaces CSSProperty extended attributes with DelegateToSharedSyntheticAttribute and
CallWith=PropertyName, which together allow us to implement all the attributes with just
8 implementation functions.

  • bindings/scripts/test/BindingTestGlobalConstructors.idl:
  • bindings/scripts/test/JS/JSTestCSSProperty.cpp: Removed.
  • bindings/scripts/test/JS/JSTestCSSProperty.h: Removed.
  • bindings/scripts/test/JS/JSTestDelegateToSharedSyntheticAttribute.cpp: Added.
  • bindings/scripts/test/JS/JSTestDelegateToSharedSyntheticAttribute.h: Added.
  • bindings/scripts/test/JS/JSTestGlobalObject.cpp:
  • bindings/scripts/test/SupplementalDependencies.dep:
  • bindings/scripts/test/TestCSSProperty.idl: Removed.
  • bindings/scripts/test/TestDelegateToSharedSyntheticAttribute.idl: Added.

Replace CSSProperty tests with DelegateToSharedSyntheticAttribute tests and update results
all around for new generation.

Source/WTF:

  • wtf/PlatformEnable.h:

Remove ENABLE_ATTRIBUTE_BASED_PROPERTIES_FOR_CSS_STYLE_DECLARATION, as it is now the default and on everwhere.

LayoutTests:

  • fast/css/style-enumerate-properties-expected.txt:
  • fast/css/style-enumerate-properties.html:
  • fast/dom/domListEnumeration-expected.txt:
  • fast/dom/domListEnumeration.html:

Remove existing tests for iteration order, which is not standardized, and not consistent among
browsers. Adds a new one that checks invariants of the 4 groupings of properties which we currently
expect to hold, at least in our implementation.

  • fast/dom/CSSStyleDeclaration/cssstyledeclaration-properties-descriptor-expected.txt:
  • fast/dom/CSSStyleDeclaration/cssstyledeclaration-properties-descriptor.html:

Update now that the properties are proper attributes on the prototype.

  • js/dom/put-override-should-not-use-ic.html:

Switch to using a DOMStringList as the object that overrides put, since CSSStyleDeclaration no longer does.

  • transitions/transitions-parsing-expected.txt:
  • transitions/transitions-parsing.html:

Remove Object.keys() aspect of the test, which is no longer meaningful since the
properties should no longer exist in the result set.

7:35 AM Changeset in webkit [275807] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Store InputType in a Ref before calling setValueAsDecimal
https://bugs.webkit.org/show_bug.cgi?id=223535

Patch by Rob Buis <rbuis@igalia.com> on 2021-04-11
Reviewed by Ryosuke Niwa.

Store InputType in a Ref before calling setValueAsDecimal.

  • html/InputType.cpp:

(WebCore::InputType::applyStep):

5:04 AM WebKitGTK/2.32.x edited by Philippe Normand
(diff)
Note: See TracTimeline for information about the timeline view.