Timeline
Oct 23, 2021:
- 9:31 PM Changeset in webkit [284754] by
-
- 3 edits2 adds in trunk
Null check in traverseNodesForSerialization
https://bugs.webkit.org/show_bug.cgi?id=230704
Patch by Rob Buis <rbuis@igalia.com> on 2021-10-23
Reviewed by Wenson Hsieh.
Source/WebCore:
Pass startNode by value instead of by pointer to
traverseNodesForSerialization.
Test: editing/pasteboard/copy-with-shadow-tree-crash.html
- editing/markup.cpp:
(WebCore::StyledMarkupAccumulator::serializeNodes):
(WebCore::StyledMarkupAccumulator::traverseNodesForSerialization):
LayoutTests:
- editing/pasteboard/copy-with-shadow-tree-crash-expected.txt: Added.
- editing/pasteboard/copy-with-shadow-tree-crash.html: Added.
- 8:02 PM Changeset in webkit [284753] by
-
- 4 edits in trunk/Source
Addressing post-commit review (r284744).
Source/WebCore:
- layout/formattingContexts/inline/InlineContentBreaker.cpp:
(WebCore::Layout::midWordBreak):
Source/WTF:
- wtf/unicode/CharacterNames.h:
- 7:56 PM Changeset in webkit [284752] by
-
- 8 edits in trunk/LayoutTests
LayoutTests/imported/w3c:
Tweak test tolerance
https://bugs.webkit.org/show_bug.cgi?id=231959
<rdar://problem/84417651>
Unreviewed.
- web-platform-tests/html/canvas/element/manual/imagebitmap/createImageBitmap-drawImage.html:
- web-platform-tests/html/canvas/element/manual/imagebitmap/createImageBitmap-flipY.html:
LayoutTests:
Update WPT test tolerance and mark some failures as simulator-only
https://bugs.webkit.org/show_bug.cgi?id=231959
<rdar://problem/84417651>
Unreviewed test gardening.
The ipad failures are really iPad simulator failures.
- platform/ios-simulator/TestExpectations:
- platform/ipad/TestExpectations:
- platform/mac/TestExpectations:
- 5:47 PM Changeset in webkit [284751] by
-
- 48 edits14 moves12 adds in trunk/JSTests
update test262
https://bugs.webkit.org/show_bug.cgi?id=232005
Patch by Phillip Mates <Phillip Mates> on 2021-10-23
Reviewed by Yusuke Suzuki.
- test262/expectations.yaml:
- test262/latest-changes-summary.txt:
- test262/test/built-ins/Array/prototype/concat/Array.prototype.concat_large-typed-array.js:
(concatTypedArray):
- test262/test/built-ins/Array/prototype/concat/Array.prototype.concat_small-typed-array.js:
(concatTypedArray):
- test262/test/built-ins/Array/prototype/copyWithin/non-negative-target-and-start.js:
- test262/test/built-ins/Function/internals/Call/class-ctor-realm.js:
- test262/test/built-ins/Object/getOwnPropertyNames/15.2.3.4-4-44.js:
- test262/test/built-ins/Object/getOwnPropertyNames/15.2.3.4-4-49.js:
- test262/test/built-ins/Object/getOwnPropertyNames/15.2.3.4-4-b-2.js:
- test262/test/built-ins/ShadowRealm/prototype/evaluate/globalthis-available-properties.js: Added.
- test262/test/built-ins/ShadowRealm/prototype/evaluate/globalthis-config-only-properties.js: Added.
(const.remainingNames.names.filter.name.esNonConfigValues.includes):
(hasOwn.call):
- test262/test/built-ins/ShadowRealm/prototype/evaluate/globalthis-orginary-object.js: Added.
- test262/test/built-ins/ShadowRealm/prototype/evaluate/throws-error-from-ctor-realm.js: Added.
- test262/test/built-ins/ShadowRealm/prototype/evaluate/validates-realm-object.js:
- test262/test/built-ins/ShadowRealm/prototype/evaluate/wrapped-function-proto-from-caller-realm.js:
(checkArgWrapperFn.realm.evaluate.string_appeared_here.assert.sameValue.checkArgWrapperFn):
- test262/test/built-ins/ShadowRealm/prototype/importValue/not-constructor.js:
- test262/test/built-ins/Temporal/PlainDate/prototype/since/largestunit-higher-units.js:
- test262/test/built-ins/Temporal/PlainMonthDay/prototype/toPlainDate/basic.js:
- test262/test/intl402/NumberFormat/prototype/format/signDisplay-currency-de-DE.js:
- test262/test/intl402/NumberFormat/prototype/format/signDisplay-currency-en-US.js:
- test262/test/intl402/NumberFormat/prototype/format/signDisplay-currency-ja-JP.js:
- test262/test/intl402/NumberFormat/prototype/format/signDisplay-currency-ko-KR.js:
- test262/test/intl402/NumberFormat/prototype/format/signDisplay-currency-zh-TW.js:
- test262/test/intl402/NumberFormat/prototype/formatToParts/signDisplay-currency-de-DE.js:
- test262/test/intl402/NumberFormat/prototype/formatToParts/signDisplay-currency-en-US.js:
- test262/test/intl402/NumberFormat/prototype/formatToParts/signDisplay-currency-ja-JP.js:
- test262/test/intl402/NumberFormat/prototype/formatToParts/signDisplay-currency-ko-KR.js:
- test262/test/intl402/NumberFormat/prototype/formatToParts/signDisplay-currency-zh-TW.js:
- test262/test/intl402/Temporal/Instant/prototype/toLocaleString/locales-undefined.js: Renamed from JSTests/test262/test/built-ins/Temporal/Instant/prototype/toLocaleString/locales-undefined.js.
- test262/test/intl402/Temporal/Instant/prototype/toLocaleString/options-undefined.js: Renamed from JSTests/test262/test/built-ins/Temporal/Instant/prototype/toLocaleString/options-undefined.js.
- test262/test/intl402/Temporal/PlainDate/prototype/toLocaleString/locales-undefined.js: Renamed from JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/toLocaleString/locales-undefined.js.
- test262/test/intl402/Temporal/PlainDate/prototype/toLocaleString/options-undefined.js: Renamed from JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/toLocaleString/options-undefined.js.
- test262/test/intl402/Temporal/PlainDateTime/prototype/toLocaleString/locales-undefined.js: Renamed from JSTests/test262/test/built-ins/Temporal/PlainDateTime/prototype/toLocaleString/locales-undefined.js.
- test262/test/intl402/Temporal/PlainDateTime/prototype/toLocaleString/options-undefined.js: Renamed from JSTests/test262/test/built-ins/Temporal/PlainDateTime/prototype/toLocaleString/options-undefined.js.
- test262/test/intl402/Temporal/PlainMonthDay/prototype/toLocaleString/locales-undefined.js: Renamed from JSTests/test262/test/built-ins/Temporal/PlainMonthDay/prototype/toLocaleString/locales-undefined.js.
- test262/test/intl402/Temporal/PlainMonthDay/prototype/toLocaleString/options-undefined.js: Renamed from JSTests/test262/test/built-ins/Temporal/PlainMonthDay/prototype/toLocaleString/options-undefined.js.
- test262/test/intl402/Temporal/PlainTime/prototype/toLocaleString/locales-undefined.js: Renamed from JSTests/test262/test/built-ins/Temporal/PlainTime/prototype/toLocaleString/locales-undefined.js.
- test262/test/intl402/Temporal/PlainTime/prototype/toLocaleString/options-undefined.js: Renamed from JSTests/test262/test/built-ins/Temporal/PlainTime/prototype/toLocaleString/options-undefined.js.
- test262/test/intl402/Temporal/PlainYearMonth/prototype/toLocaleString/locales-undefined.js: Renamed from JSTests/test262/test/built-ins/Temporal/PlainYearMonth/prototype/toLocaleString/locales-undefined.js.
- test262/test/intl402/Temporal/PlainYearMonth/prototype/toLocaleString/options-undefined.js: Renamed from JSTests/test262/test/built-ins/Temporal/PlainYearMonth/prototype/toLocaleString/options-undefined.js.
- test262/test/intl402/Temporal/ZonedDateTime/prototype/toLocaleString/locales-undefined.js: Renamed from JSTests/test262/test/built-ins/Temporal/ZonedDateTime/prototype/toLocaleString/locales-undefined.js.
- test262/test/intl402/Temporal/ZonedDateTime/prototype/toLocaleString/options-undefined.js: Renamed from JSTests/test262/test/built-ins/Temporal/ZonedDateTime/prototype/toLocaleString/options-undefined.js.
- test262/test/language/computed-property-names/basics/number.js:
- test262/test/language/computed-property-names/basics/string.js:
- test262/test/language/computed-property-names/basics/symbol.js:
- test262/test/language/computed-property-names/class/method/generator.js:
- test262/test/language/computed-property-names/class/method/number.js:
- test262/test/language/computed-property-names/class/method/string.js:
- test262/test/language/computed-property-names/class/method/symbol.js:
- test262/test/language/computed-property-names/object/method/generator.js:
- test262/test/language/computed-property-names/object/method/number.js:
- test262/test/language/computed-property-names/object/method/string.js:
- test262/test/language/computed-property-names/object/method/symbol.js:
- test262/test/language/computed-property-names/to-name-side-effects/numbers-object.js:
- test262/test/language/computed-property-names/to-name-side-effects/object.js:
- test262/test/language/identifiers/part-unicode-14.0.0-escaped.js: Added.
- test262/test/language/identifiers/part-unicode-14.0.0.js: Added.
- test262/test/language/identifiers/start-unicode-14.0.0-escaped.js: Added.
- test262/test/language/identifiers/start-unicode-14.0.0.js: Added.
- test262/test/language/rest-parameters/arrow-function.js:
- test262/test/language/rest-parameters/no-alias-arguments.js:
(f):
- test262/test/language/rest-parameters/with-new-target.js:
(Base):
(Child):
- test262/test/language/statements/class/definition/fn-length-static-precedence-order.js:
- test262/test/language/statements/class/definition/fn-name-static-precedence-order.js:
- test262/test/language/statements/class/static-init-arguments-functions.js:
- test262/test/language/statements/class/static-init-arguments-methods.js:
- test262/test/language/statements/class/subclass/builtin-objects/Array/contructor-calls-super-multiple-arguments.js:
- test262/test/language/statements/class/subclass/builtin-objects/Array/regular-subclassing.js:
- test262/test262-Revision.txt:
- 4:58 PM Changeset in webkit [284750] by
-
- 2 edits in trunk/Source/WebKit
Disable PiP when HAVE(UIKIT_WEBKIT_INTERNALS)
https://bugs.webkit.org/show_bug.cgi?id=232206
rdar://84516632
Reviewed by Tim Horton.
In preparation for moving to AVPictureInPictureController, disable
PiP when HAVE(UIKIT_WEBKIT_INTERNALS) is true so that we are
no longer creating an AVPlayerViewController. The rationale for the
move is to use API rather than SPI, and this will allow changes to
be made to AVPlayerViewController in this special configuration.
- WebProcess/cocoa/VideoFullscreenManager.mm:
(WebKit::VideoFullscreenManager::supportsVideoFullscreen const): Only support regular
fullscreen, not PiP.
(WebKit::VideoFullscreenManager::supportsVideoFullscreenStandby const): Don't support
"video fullscreen standby", which is another name for PiP.
- 3:26 PM Changeset in webkit [284749] by
-
- 19 edits2 adds in trunk
Add support for rel="noopener/noreferrer" on <form> elements
https://bugs.webkit.org/show_bug.cgi?id=232170
Reviewed by Darin Adler.
LayoutTests/imported/w3c:
Rebaseline WPT tests that are now passing.
- web-platform-tests/html/semantics/forms/form-submission-target/rel-base-target-expected.txt:
- web-platform-tests/html/semantics/forms/form-submission-target/rel-button-target-expected.txt:
- web-platform-tests/html/semantics/forms/form-submission-target/rel-form-target-expected.txt:
- web-platform-tests/html/semantics/forms/form-submission-target/rel-input-target-expected.txt:
Source/WebCore:
Add support for rel="opener/noopener/noreferrer" on <form> elements:
- https://html.spec.whatwg.org/multipage/links.html#get-an-element's-noopener
- https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#form-submission-algorithm:get-an-element's-noopener
- https://html.spec.whatwg.org/multipage/forms.html#dom-form-rel
- https://html.spec.whatwg.org/multipage/links.html#linkTypes
This patch also adds support for the rel and relList attributes on <form>.
Test: fast/forms/form-relList.html
- html/HTMLFormElement.cpp:
(WebCore::parseFormRelAttributes):
(WebCore::HTMLFormElement::submit):
(WebCore::HTMLFormElement::parseAttribute):
(WebCore::HTMLFormElement::relList):
- html/HTMLFormElement.h:
- html/HTMLFormElement.idl:
- loader/FormSubmission.h:
(WebCore::FormSubmission::newFrameOpenerPolicy const):
(WebCore::FormSubmission::setNewFrameOpenerPolicy):
(WebCore::FormSubmission::referrerPolicy const):
(WebCore::FormSubmission::setReferrerPolicy):
- loader/NavigationScheduler.cpp:
LayoutTests:
- fast/forms/form-relList-expected.txt: Added.
- fast/forms/form-relList.html: Added.
Add test coverage for the new form.relList attribute.
- http/tests/navigation/resources/target-blank-opener-post-window.py:
- http/tests/navigation/target-blank-opener-post-expected.txt:
- http/tests/navigation/target-blank-opener-post.html:
Update existing layout test to reflect behavior change.
- platform/mac-wk1/imported/w3c/web-platform-tests/html/dom/idlharness.https-expected.txt:
- platform/mac-wk2/imported/w3c/web-platform-tests/html/dom/idlharness.https-expected.txt:
Rebaseline WPT tests now that more checks are passing.
- 2:35 PM Changeset in webkit [284748] by
-
- 8 edits1 add3 deletes in trunk
[WTF] Replace current LLVM flang's Int128 with abseil-cpp's Int128
https://bugs.webkit.org/show_bug.cgi?id=232129
Reviewed by Darin Adler.
Source/WTF:
We found that flang's signed Int128 implementation is not tested,
and it has several issues about sign extension and division.
Instead, we import abseil-cpp[1]'s int128 implementation.
abseil-cpp is more battle-tested, and abseil is already used
in WebKit too (ANGLE and libwebrtc use abseil-cpp as their utility
library).
For Apple readers, abseil-cpp for WebKit is approved in OSS-351.
[1]: https://github.com/abseil/abseil-cpp
- WTF.xcodeproj/project.pbxproj:
- wtf/CMakeLists.txt:
- wtf/Int128.cpp: Added.
(WTF::UInt128Impl::UInt128Impl):
(WTF::operator/):
(WTF::operator%):
(WTF::operator<<):
(WTF::Int128Impl::Int128Impl):
- wtf/Int128.h:
(WTF::UInt128Max):
(std::numeric_limits<WTF::UInt128Impl>::min):
(std::numeric_limits<WTF::UInt128Impl>::lowest):
(std::numeric_limits<WTF::UInt128Impl>::max):
(std::numeric_limits<WTF::UInt128Impl>::epsilon):
(std::numeric_limits<WTF::UInt128Impl>::round_error):
(std::numeric_limits<WTF::UInt128Impl>::infinity):
(std::numeric_limits<WTF::UInt128Impl>::quiet_NaN):
(std::numeric_limits<WTF::UInt128Impl>::signaling_NaN):
(std::numeric_limits<WTF::UInt128Impl>::denorm_min):
(WTF::Int128Max):
(WTF::Int128Min):
(std::numeric_limits<WTF::Int128Impl>::min):
(std::numeric_limits<WTF::Int128Impl>::lowest):
(std::numeric_limits<WTF::Int128Impl>::max):
(std::numeric_limits<WTF::Int128Impl>::epsilon):
(std::numeric_limits<WTF::Int128Impl>::round_error):
(std::numeric_limits<WTF::Int128Impl>::infinity):
(std::numeric_limits<WTF::Int128Impl>::quiet_NaN):
(std::numeric_limits<WTF::Int128Impl>::signaling_NaN):
(std::numeric_limits<WTF::Int128Impl>::denorm_min):
(WTF::MakeUInt128):
(WTF::UInt128Impl::operator=):
(WTF::UInt128Impl::operator<<=):
(WTF::UInt128Impl::operator>>=):
(WTF::UInt128Impl::operator+=):
(WTF::UInt128Impl::operator-=):
(WTF::UInt128Impl::operator*=):
(WTF::UInt128Impl::operator/=):
(WTF::UInt128Impl::operator%=):
(WTF::UInt128Low64):
(WTF::UInt128High64):
(WTF::UInt128Impl::UInt128Impl):
(WTF::UInt128Impl::operator bool const):
(WTF::UInt128Impl::operator char const):
(WTF::UInt128Impl::operator signed char const):
(WTF::UInt128Impl::operator unsigned char const):
(WTF::UInt128Impl::operator char16_t const):
(WTF::UInt128Impl::operator char32_t const):
(WTF::UInt128Impl::operator ABSL_INTERNAL_WCHAR_T const):
(WTF::UInt128Impl::operator short const):
(WTF::UInt128Impl::operator unsigned short const):
(WTF::UInt128Impl::operator int const):
(WTF::UInt128Impl::operator unsigned int const):
(WTF::UInt128Impl::operator long const):
(WTF::UInt128Impl::operator unsigned long const):
(WTF::UInt128Impl::operator long long const):
(WTF::UInt128Impl::operator unsigned long long const):
(WTF::UInt128Impl::operator float const):
(WTF::UInt128Impl::operator double const):
(WTF::UInt128Impl::operator long double const):
(WTF::operator==):
(WTF::operator!=):
(WTF::operator<):
(WTF::operator>):
(WTF::operator<=):
(WTF::operator>=):
(WTF::operator+):
(WTF::operator-):
(WTF::operator!):
(WTF::operator~):
(WTF::operator|):
(WTF::operator&):
(WTF::operator):
(WTF::UInt128Impl::operator|=):
(WTF::UInt128Impl::operator&=):
(WTF::UInt128Impl::operator=):
(WTF::operator<<):
(WTF::operator>>):
(WTF::int128_internal::AddResult):
(WTF::int128_internal::SubstructResult):
(WTF::operator*):
(WTF::UInt128Impl::operator++):
(WTF::UInt128Impl::operator--):
(WTF::MakeInt128):
(WTF::Int128Impl::operator=):
(WTF::Int128Impl::operator+=):
(WTF::Int128Impl::operator-=):
(WTF::Int128Impl::operator*=):
(WTF::Int128Impl::operator/=):
(WTF::Int128Impl::operator%=):
(WTF::Int128Impl::operator|=):
(WTF::Int128Impl::operator&=):
(WTF::Int128Impl::operator=):
(WTF::Int128Impl::operator<<=):
(WTF::Int128Impl::operator>>=):
(WTF::int128_internal::BitCastToSigned):
(WTF::Int128Low64):
(WTF::Int128High64):
(WTF::Int128Impl::Int128Impl):
(WTF::Int128Impl::operator bool const):
(WTF::Int128Impl::operator char const):
(WTF::Int128Impl::operator signed char const):
(WTF::Int128Impl::operator unsigned char const):
(WTF::Int128Impl::operator char16_t const):
(WTF::Int128Impl::operator char32_t const):
(WTF::Int128Impl::operator ABSL_INTERNAL_WCHAR_T const):
(WTF::Int128Impl::operator short const):
(WTF::Int128Impl::operator unsigned short const):
(WTF::Int128Impl::operator int const):
(WTF::Int128Impl::operator unsigned int const):
(WTF::Int128Impl::operator long const):
(WTF::Int128Impl::operator unsigned long const):
(WTF::Int128Impl::operator long long const):
(WTF::Int128Impl::operator unsigned long long const):
(WTF::Int128Impl::operator float const):
(WTF::Int128Impl::operator double const):
(WTF::Int128Impl::operator long double const):
(WTF::int128_internal::SignedAddResult):
(WTF::int128_internal::SignedSubstructResult):
(WTF::Int128Impl::operator++):
(WTF::Int128Impl::operator--):
(WTF::Int128Impl::operator+ const): Deleted.
(WTF::Int128Impl::operator~ const): Deleted.
(WTF::Int128Impl::operator- const): Deleted.
(WTF::Int128Impl::operator! const): Deleted.
(WTF::Int128Impl::operator std::uint64_t const): Deleted.
(WTF::Int128Impl::operator std::int64_t const): Deleted.
(WTF::Int128Impl::high const): Deleted.
(WTF::Int128Impl::low const): Deleted.
(WTF::Int128Impl::operator& const): Deleted.
(WTF::Int128Impl::operator | const): Deleted.
(WTF::Int128Impl::operator const): Deleted.
(WTF::Int128Impl::operator<< const): Deleted.
(WTF::Int128Impl::operator>> const): Deleted.
(WTF::Int128Impl::operator* const): Deleted.
(WTF::Int128Impl::operator/ const): Deleted.
(WTF::Int128Impl::operator% const): Deleted.
(WTF::Int128Impl::operator< const): Deleted.
(WTF::Int128Impl::operator<= const): Deleted.
(WTF::Int128Impl::operator== const): Deleted.
(WTF::Int128Impl::operator!= const): Deleted.
(WTF::Int128Impl::operator>= const): Deleted.
(WTF::Int128Impl::operator> const): Deleted.
(WTF::Int128Impl::leadingZeroes const): Deleted.
- wtf/LeadingZeroBitCount.cpp: Removed.
- wtf/LeadingZeroBitCount.h: Removed.
Tools:
- TestWebKitAPI/CMakeLists.txt:
- TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
- TestWebKitAPI/Tests/WTF/Int128.cpp:
(TestWebKitAPI::TYPED_TEST):
(TestWebKitAPI::TEST):
(TestWebKitAPI::ToNativeUInt128):
(TestWebKitAPI::FromNativeUInt128):
(TestWebKitAPI::ToNativeInt128):
(TestWebKitAPI::FromNativeInt128):
(TestWebKitAPI::TestBinaryUInt128):
(TestWebKitAPI::TestBinaryInt128):
(TestWebKitAPI::TestVsNativeUInt128):
(TestWebKitAPI::TestVsNativeInt128):
(TestWebKitAPI::TestUnary): Deleted.
(TestWebKitAPI::TestBinary): Deleted.
(TestWebKitAPI::ToNative): Deleted.
(TestWebKitAPI::FromNative): Deleted.
(TestWebKitAPI::TestVsNative): Deleted.
- TestWebKitAPI/Tests/WTF/LeadingZeroBitCount.cpp: Removed.
- 2:05 PM Changeset in webkit [284747] by
-
- 6 edits in trunk
LFC][IFC] Unexpected content wrap when the containing block width is relative (take 2)
https://bugs.webkit.org/show_bug.cgi?id=232192
Reviewed by Antti Koivisto.
Source/WebCore:
This is a more generic workaround (see r279678) for the block vs. inline measuring issue
where the block width is stored in a LayoutUnit while the inline layout uses float exclusively.
The implicit float flooring at computing the block width may produce an unexpectedly short available space.
e.g
<div style="font-family: Monospace; width: 3ch; overflow-wrap: anywhere">foobar</div>
assume the resolved 3ch is: 17.79999999px (float).
It should allow us to put [foo] on the first line.
However during a float -> LayoutUnit conversion, the resolved value becomes 17.79px.
This floored value leads to an early, unexpected breaking position at [fo].
- layout/formattingContexts/inline/InlineContentBreaker.cpp:
(WebCore::Layout::InlineContentBreaker::processInlineContent):
(WebCore::Layout::InlineContentBreaker::processOverflowingContentWithText const):
- layout/formattingContexts/inline/InlineLineBuilder.cpp:
(WebCore::Layout::LineBuilder::handleFloatContent):
(WebCore::Layout::availableWidth):
(WebCore::Layout::LineBuilder::handleInlineContent):
(WebCore::Layout::LineBuilder::rebuildLineForTrailingSoftHyphen):
LayoutTests:
- TestExpectations:
- platform/mac/TestExpectations:
- 1:18 PM Changeset in webkit [284746] by
-
- 5 edits2 adds in trunk
WebContent crash when sending invalid IPC message using IPC testing API
https://bugs.webkit.org/show_bug.cgi?id=232060
Patch by Brandon Stewart <Brandon> on 2021-10-23
Reviewed by Wenson Hsieh.
Source/WebKit:
Do not trigger a crash in WebContent Process when sending an invalid IPC message using the
IPC testing API.
Test: ipc/send-invalid-message.html
- Platform/IPC/Connection.cpp:
(IPC::Connection::dispatchSyncMessage):
- WebProcess/WebProcess.cpp:
(WebKit::WebProcess::initializeConnection):
LayoutTests:
Add IPC test to verify that an invalid IPC message will not cause a crash in WebContent Process
when using the IPC testing API.
- TestExpectations:
- ipc/send-invalid-message-expected.txt: Added.
- ipc/send-invalid-message.html: Added.
- 9:35 AM Changeset in webkit [284745] by
-
- 6 edits in trunk
anchor.relList.supports("opener") should return true
https://bugs.webkit.org/show_bug.cgi?id=232182
Reviewed by Darin Adler.
Source/WebCore:
anchor.relList.supports("opener") should return true since we support "opener" on
anchor elements.
No new tests, updated existing test.
- html/HTMLAnchorElement.cpp:
(WebCore::HTMLAnchorElement::relList):
LayoutTests:
Add layout test coverage.
- fast/dom/DOMTokenList-supports-expected.txt:
- fast/dom/DOMTokenList-supports.html:
- 8:54 AM Changeset in webkit [284744] by
-
- 4 edits in trunk/Source
[LFC][IFC] Breaking before hyphen is only allowed when line-break is loose
https://bugs.webkit.org/show_bug.cgi?id=232191
Reviewed by Antti Koivisto.
Source/WebCore:
This is in preparation for enabling the fix for webkit.org/b/232192.
Two hyphenation related WPT tests (line-break-normal-hyphens-002.html, line-break-strict-hyphens-002.html)
simply pass because of a LayoutUnit (block width) vs. float (measured text width) precision mismatching bug.
This precision issue makes the line breaking code believe that fewer characters fit the line
producing the expected results for those two tests.
Let's fix the line breaking logic first by adding "breaks before hyphens" rules,
so that when webkit.org/b/232192 is addressed, we won't be seeing any WPT regressions.
- layout/formattingContexts/inline/InlineContentBreaker.cpp:
(WebCore::Layout::midWordBreak):
Source/WTF:
- wtf/unicode/CharacterNames.h:
- 8:21 AM Changeset in webkit [284743] by
-
- 4 edits in trunk/Source/WebCore
WebAVPlayerController should use WeakPtr<> for C++ instance variables
<https://webkit.org/b/231919>
Reviewed by Eric Carlson.
- platform/ios/PlaybackSessionInterfaceAVKit.h:
(WebCore::PlaybackSessionInterfaceAVKit):
- Make RefCounted-class also subclass CanMakeWeakPtr<>.
- platform/ios/WebAVPlayerController.h:
- Add comments that
delegateandplaybackSessionInterfaceinstance variables are held weakly. The compiler won't allowweakto be used on non-Objective-C types, though.
- platform/ios/WebAVPlayerController.mm:
- Add WeakPtr<> instance variables for
delegateandplaybackSessionInterfaceproperties.
(-[WebAVPlayerController delegate]): Add.
(-[WebAVPlayerController setDelegate:]): Add.
(-[WebAVPlayerController playbackSessionInterface]): Add.
(-[WebAVPlayerController setPlaybackSessionInterface:]): Add.
- Implement getter/setter methods for
delegateandplaybackSessionInterfaceproperties that use WeakPtr<> instance variables.
- 12:46 AM Changeset in webkit [284742] by
-
- 10 edits1 move2 deletes in trunk/Source
AX: Unify speech synthesizer platform usage for Mac/iOS
https://bugs.webkit.org/show_bug.cgi?id=231895
<rdar://problem/84372479>
Reviewed by Andres Gonzalez.
Source/WebCore:
AVSpeechSynthesizer has been fully supported on macOS for a number of years. This allows us to unify platform usage.
- SourcesCocoa.txt:
- WebCore.xcodeproj/project.pbxproj:
- platform/cocoa/PlatformSpeechSynthesizerCocoa.mm: Renamed from Source/WebCore/platform/ios/PlatformSpeechSynthesizerIOS.mm.
(getAVSpeechUtteranceDefaultSpeechRate):
(getAVSpeechUtteranceMaximumSpeechRate):
(-[WebSpeechSynthesisWrapper initWithSpeechSynthesizer:]):
(-[WebSpeechSynthesisWrapper mapSpeechRateToPlatformRate:]):
(-[WebSpeechSynthesisWrapper speakUtterance:]):
(-[WebSpeechSynthesisWrapper pause]):
(-[WebSpeechSynthesisWrapper resume]):
(-[WebSpeechSynthesisWrapper cancel]):
(-[WebSpeechSynthesisWrapper speechSynthesizer:didStartSpeechUtterance:]):
(-[WebSpeechSynthesisWrapper speechSynthesizer:didFinishSpeechUtterance:]):
(-[WebSpeechSynthesisWrapper speechSynthesizer:didPauseSpeechUtterance:]):
(-[WebSpeechSynthesisWrapper speechSynthesizer:didContinueSpeechUtterance:]):
(-[WebSpeechSynthesisWrapper speechSynthesizer:didCancelSpeechUtterance:]):
(-[WebSpeechSynthesisWrapper speechSynthesizer:willSpeakRangeOfSpeechString:utterance:]):
(WebCore::PlatformSpeechSynthesizer::PlatformSpeechSynthesizer):
(WebCore::PlatformSpeechSynthesizer::~PlatformSpeechSynthesizer):
(WebCore::PlatformSpeechSynthesizer::initializeVoiceList):
(WebCore::PlatformSpeechSynthesizer::pause):
(WebCore::PlatformSpeechSynthesizer::resume):
(WebCore::PlatformSpeechSynthesizer::speak):
(WebCore::PlatformSpeechSynthesizer::cancel):
(WebCore::PlatformSpeechSynthesizer::resetState):
- platform/mac/PlatformSpeechSynthesizerMac.mm: Removed.
Source/WebCore/PAL:
- PAL.xcodeproj/project.pbxproj:
- pal/cocoa/AVFoundationSoftLink.h:
- pal/cocoa/AVFoundationSoftLink.mm:
- pal/spi/cocoa/AXSpeechManagerSPI.h:
- pal/spi/mac/SpeechSynthesisSPI.h: Removed.
Source/WTF:
- wtf/PlatformHave.h:
Oct 22, 2021:
- 10:58 PM Changeset in webkit [284741] by
-
- 15 edits2 adds in trunk
video appears blank with only audio playing if video element isn't appended to the dom tree
https://bugs.webkit.org/show_bug.cgi?id=232124
rdar://83438282
Reviewed by Eric Carlson.
Source/WebCore:
If the renderer isn't accelerated, the current playback policity is to
not have the video tracks visible on screen.
The HTMLMediaElement could only check if the renderer was accelerated if
it was part of the DOM.
On iPhone, for historical reasons, inline playback isn't allowed but
will play fullscreen instead.
This is a temporary workaround until bug 232125 is comlpeted which would provide
a more elegant and universal solution.
Test: media/video-element-fullscreen-not-in-dom-accelerated-iphone.html
- html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::mediaPlayerRenderingCanBeAccelerated):
- html/HTMLMediaElement.h:
- testing/Internals.cpp:
(WebCore::Internals::mediaPlayerRenderingCanBeAccelerated):
- testing/Internals.h:
- testing/Internals.idl:
Source/WebKit:
Ensure that we inform the GPU process whenever
MediaPlayer::renderingCanBeAccelerated value could have changed.
- WebProcess/GPU/media/MediaPlayerPrivateRemote.cpp:
(WebKit::MediaPlayerPrivateRemote::load):
(WebKit::MediaPlayerPrivateRemote::readyStateChanged):
(WebKit::MediaPlayerPrivateRemote::checkAcceleratedRenderingState):
(WebKit::MediaPlayerPrivateRemote::updateConfiguration):
(WebKit::MediaPlayerPrivateRemote::setVideoFullscreenLayer):
(WebKit::MediaPlayerPrivateRemote::setVideoFullscreenGravity):
- WebProcess/GPU/media/MediaPlayerPrivateRemote.h:
LayoutTests:
- TestExpectations:
- media/remove-video-element-in-pip-from-document-expected.txt:
- media/remove-video-element-in-pip-from-document.html: update test to improve coverage.
- media/video-element-fullscreen-not-in-dom-accelerated-iphone-expected.txt: Added.
- media/video-element-fullscreen-not-in-dom-accelerated-iphone.html: Added.
- platform/ios/TestExpectations:
- platform/ipad/TestExpectations:
- 9:07 PM Changeset in webkit [284740] by
-
- 3 edits2 adds in trunk
[GPU Process] REGRESSION: Drawing a large SVG image on a canvas may take too much memory
https://bugs.webkit.org/show_bug.cgi?id=230886
rdar://83628607
Reviewed by Simon Fraser.
Source/WebCore:
For the GPUProcess rendering on a canvas, we have to draw the SVGImage to
a temporary ImageBuffer, get a NativeImage from this ImageBuffer and send
it to GPUProcess through a DrawNativeImage display list item.
The fix is:
- Make sure the size of temporary ImageBuffer is scaled to the Graphics Context CTM.
- Clamp the scaled size to the MaxClampedArea. So ImageBuffer::create() returns a valid ImageBuffer.
- Scale the destination GraphicsContext to the reciprocal of the scaling factor before drawing the NativeImage.
Test: fast/canvas/canvas-draw-large-svg-image.html
- svg/graphics/SVGImage.cpp:
(WebCore::SVGImage::drawAsNativeImage):
LayoutTests:
- fast/canvas/canvas-draw-large-svg-image-expected.html: Added.
- fast/canvas/canvas-draw-large-svg-image.html: Added.
- 8:57 PM Changeset in webkit [284739] by
-
- 3 edits2 adds in trunk
Source/WebCore:
https://bugs.webkit.org/show_bug.cgi?id=232177
Check if start and end positions are still valid after updating them through mergeEndWithNextIfIdentical
Patch by Gabriel Nava Marino <gnavamarino@apple.com> on 2021-10-22
Reviewed by Alan Bujtas.
We currently check if start and end positions are still valid after
updating them through mergeEndWithNextIfIdentical, but not through
mergeStartWithPreviousIfIdentical. Add this check to avoid trying to
deref a nullptr in ApplyStyleCommand::mergeEndWithNextIfIdentical.
Test: fast/editing/create-link-inline-style-change-crash-001.html
- editing/ApplyStyleCommand.cpp:
(WebCore::ApplyStyleCommand::applyInlineStyle):
LayoutTests:
Check if start and end positions are still valid after updating them through mergeStartWithPreviousIfIdentical
https://bugs.webkit.org/show_bug.cgi?id=232177
Patch by Gabriel Nava Marino <gnavamarino@apple.com> on 2021-10-22
Reviewed by Alan Bujtas.
- fast/editing/create-link-inline-style-change-crash-001-expected.txt: Added.
- fast/editing/create-link-inline-style-change-crash-001.html: Added.
- 8:25 PM Changeset in webkit [284738] by
-
- 16 edits1 add in trunk
Content offset in this codepen when switching tabs
https://bugs.webkit.org/show_bug.cgi?id=231989
Reviewed by Tim Horton.
Source/WebCore:
There were two problems that occurred with async-scrollable iframes when their associated
WKWebView was removed and re-added to the view hierarchy (e.g. when switching tabs).
These resulted in misplaced position:fixed content, and the first user scroll in the
iframe causing the scroll position to jump back to the top.
The positon:fixed issue was caused by an ordering problem in
ScrollingTreeFrameScrollingNode::commitStateBeforeChildren() which resulted in the layout
viewport being computed incorrectly; we called updateViewportForCurrentScrollPosition()
before setting the min and max scroll position, so we'd always clamp the layout viewport to
a location of 0,0.
The second scroll position reset issue was caused by the ScrollingTreeScrollingNode's
m_currentScrollPosition reverting to a stale after re-attaching the iframe's scrolling
subtree. ScrollingTreeScrollingNode::commitStateBeforeChildren() has code to set
m_currentScrollPosition from the state tree node's scroll position on first commit;
the issue was that ScrollingStateScrollingNode's scrollPosition() was not updated on every
scroll, only when something triggered a scrolling tree commit.
Fix by updating ScrollingStateScrollingNode's scrollPosition() for frame nodes on detach
(overflow scrolling nodes have their scroll positions updated eagerly).
Both fixes are tested by the ScrollingCoordinatorTests.ScrollingTreeAfterDetachReattach API test.
- page/scrolling/AsyncScrollingCoordinator.cpp:
(WebCore::AsyncScrollingCoordinator::frameViewWillBeDetached):
- page/scrolling/AsyncScrollingCoordinator.h:
- page/scrolling/ScrollingCoordinator.h:
(WebCore::ScrollingCoordinator::frameViewWillBeDetached):
- page/scrolling/ScrollingStateScrollingNode.cpp:
(WebCore::ScrollingStateScrollingNode::hasScrollPositionRequest const):
- page/scrolling/ScrollingStateScrollingNode.h:
- page/scrolling/ScrollingStateTree.cpp:
(WebCore::ScrollingStateTree::insertNode):
- page/scrolling/ScrollingTreeFrameScrollingNode.cpp:
(WebCore::ScrollingTreeFrameScrollingNode::commitStateBeforeChildren):
- page/scrolling/ScrollingTreeScrollingNode.cpp:
(WebCore::ScrollingTreeScrollingNode::commitStateBeforeChildren):
(WebCore::ScrollingTreeScrollingNode::dumpProperties const):
- page/scrolling/mac/ScrollingCoordinatorMac.mm:
(WebCore::ScrollingCoordinatorMac::commitTreeStateIfNeeded):
- rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::detachRootLayer):
Tools:
API test that scrolls an iframe via wheel events, then detached and re-attaches the view.
The two wheel scrolls are necessary to exercise the "stale ScrollingStateScrollingNode
scroll position" issue.
The scrolling tree dumps validate the layout viewport part of the fix.
Also correct some functions where the sense of 'isWaitingForJavaScript' was flipped.
- TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
- TestWebKitAPI/Tests/mac/ScrollingCoordinatorTests.mm: Added.
(TestWebKitAPI::synthesizeWheelEvents):
(TestWebKitAPI::waitForScrollEventAndReturnScrollY):
(TestWebKitAPI::scrollingTreeElidingLastCommittedScrollPosition):
(TestWebKitAPI::TEST):
- TestWebKitAPI/cocoa/TestWKWebView.mm:
(-[WKWebView objectByEvaluatingJavaScript:]):
(-[WKWebView objectByEvaluatingJavaScriptWithUserGesture:]):
(-[WKWebView objectByCallingAsyncFunction:withArguments:error:]):
LayoutTests:
New baselines.
- tiled-drawing/scrolling/clamp-out-of-bounds-scrolls-expected.txt:
- tiled-drawing/scrolling/scrolling-tree-after-scroll-expected.txt:
- 7:34 PM Changeset in webkit [284737] by
-
- 6 edits in trunk/Source/WebCore
[Cocoa] Fairplay encrypted video fails to play when loaded in a display:none element
https://bugs.webkit.org/show_bug.cgi?id=232155
rdar://83419159
Reviewed by Jer Noble.
- platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp:
(WebCore::MediaPlayerPrivateAVFoundation::currentRenderingMode const): MediaRenderingMode
was changed from anenumto anenum classso its values can be logged.
(WebCore::MediaPlayerPrivateAVFoundation::preferredRenderingMode const): Only return
MediaRenderingMode::MediaRenderingToContextif we have been asked to paint once
readyState is HaveMetadata or higher.
(WebCore::MediaPlayerPrivateAVFoundation::setUpVideoRendering): MediaRenderingMode change.
(WebCore::MediaPlayerPrivateAVFoundation::setNeedsRenderingModeChanged): Ditto.
(WebCore::MediaPlayerPrivateAVFoundation::prepareForRendering): Ditto.
(WebCore::MediaPlayerPrivateAVFoundation::setPageIsVisible): Ditto.
(WebCore::convertEnumerationToString): MediaRenderingMode logging function.
- platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.h:
(WebCore::MediaPlayerPrivateAVFoundation::haveBeenAskedToPaint const):
- platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
- platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
(WebCore::MediaPlayerPrivateAVFoundationObjC::hasAvailableVideoFrame const): MediaRenderingMode change.
(WebCore::MediaPlayerPrivateAVFoundationObjC::paint): Ditto.
(WebCore::MediaPlayerPrivateAVFoundationObjC::updateLastPixelBuffer): Set m_haveBeenAskedToPaint.
- 6:54 PM Changeset in webkit [284736] by
-
- 42 edits3 adds in trunk/Source
Add a module map file for PrivateFrameworks/WebKitLegacy
https://bugs.webkit.org/show_bug.cgi?id=230735
Patch by Ian Anderson <iana@apple.com> on 2021-10-22
Reviewed by David Kilzer.
Source/WebCore:
Change a few quoted includes to framework style angle includes to
support modularization.
Make sure to define the TARGET_ macros before using them.
- platform/ios/WebItemProviderPasteboard.h:
- platform/ios/wak/WAKAppKitStubs.h:
- platform/ios/wak/WAKResponder.h:
- platform/ios/wak/WAKView.h:
- platform/ios/wak/WAKWindow.h:
- platform/ios/wak/WKContentObservation.h:
- platform/ios/wak/WebCoreThreadMessage.h:
Source/WebKitLegacy:
Add module map files for WebKitLegacy. The public module is empty
because there are no public headers. The private module map sets
PrivateHeaders as the umbrella directory because there isn't an umbrella
header already. Then it makes an explicit submodule for each header so
as to mimic the non-modular environment.
- Modules/WebKitLegacy.modulemap: Added.
- Modules/WebKitLegacy.private.modulemap: Added.
- WebKitLegacy.xcodeproj/project.pbxproj:
Source/WebKitLegacy/ios:
WebGeolocationCoreLocationProvider.h is an Objective-C++ header, but the
WebKitLegacy module should be usable by plain Objective-C clients. Add
C++ guards so that it can be included in the module.
Add a missing include to WebFixedPositionContent.h.
- Misc/WebGeolocationCoreLocationProvider.h:
- WebCoreSupport/WebFixedPositionContent.h:
Source/WebKitLegacy/mac:
Define modules for the Cocoa Touch environment. macOS can't define
modules in WebKitLegacy because it's a nested framework on that
platform.
Set up the modules verifier tool for Apple Internal (it's not supported
in the public Xcode). Don't enable it yet because some of the Safari
builders use too old of an Xcode.
Add the Apple Internal guards for NSURLDownload from WebDownload.h
NSURLDownloadSPI.h so it can be included in the module.
WebCreateFragmentInternal.h is an Objective-C++ header, but the
WebKitLegacy module should be usable by plain Objective-C clients.
C++ guards so that it can be included in the module.
Switch a few quoted includes to framework style angle includes, which
are required for modules.
Add some missing includes.
- Configurations/WebKitLegacy.xcconfig:
- DOM/DOMEventListener.h:
- DOM/DOMEventTarget.h:
- DOM/DOMNodeFilter.h:
- DOM/DOMXPathNSResolver.h:
- DOM/WebDOMOperationsPrivate.h:
- History/WebHistoryItemPrivate.h:
- Misc/NSURLDownloadSPI.h:
- Misc/WebCache.h:
- Misc/WebDownload.h:
- Misc/WebKitErrorsPrivate.h:
- Misc/WebLocalizableStrings.h:
- Misc/WebUserContentURLPattern.h:
- Plugins/Hosted/WebKitPluginHostTypes.h:
- Plugins/WebPlugin.h:
- Plugins/WebPluginContainer.h:
- Storage/WebDatabaseManagerPrivate.h:
- Storage/WebDatabaseQuotaManager.h:
- Storage/WebStorageManagerPrivate.h:
- WebCoreSupport/WebCreateFragmentInternal.h:
- WebCoreSupport/WebSecurityOriginPrivate.h:
- WebView/WebDeviceOrientation.h:
- WebView/WebDeviceOrientationProvider.h:
- WebView/WebDeviceOrientationProviderMock.h:
- WebView/WebEditingDelegatePrivate.h:
- WebView/WebFormDelegatePrivate.h:
- WebView/WebGeolocationPosition.h:
- WebView/WebResourceLoadDelegatePrivate.h:
- 6:25 PM Changeset in webkit [284735] by
-
- 1 copy in tags/Safari-612.3.2.1.1
Tag Safari-612.3.2.1.1.
- 6:22 PM Changeset in webkit [284734] by
-
- 10 edits in branches/safari-612.3.2.1-branch
Cherry-pick r284692. rdar://problem/84553142
Followup to r284652: ensure file handle is closed in web process
https://bugs.webkit.org/show_bug.cgi?id=232127
Reviewed by Youenn Fablet.
Source/WebCore:
Covered by test: storage/filesystemaccess/sync-access-handle-close-worker.html
- Modules/filesystemaccess/FileSystemSyncAccessHandle.cpp: (WebCore::FileSystemSyncAccessHandle::~FileSystemSyncAccessHandle): make sure file handle is closed when FileSystemSyncAccessHandle is destroyed. (WebCore::FileSystemSyncAccessHandle::closeInternal): (WebCore::FileSystemSyncAccessHandle::close):
- Modules/filesystemaccess/FileSystemSyncAccessHandle.h:
Source/WebKit:
- NetworkProcess/storage/FileSystemStorageHandle.cpp: (WebKit::FileSystemStorageHandle::~FileSystemStorageHandle): (WebKit::FileSystemStorageHandle::createSyncAccessHandle): (WebKit::FileSystemStorageHandle::close):
- NetworkProcess/storage/FileSystemStorageHandle.h:
- Platform/IPC/cocoa/SharedFileHandleCocoa.cpp: an extra fd is created here and does not get closed. (IPC::SharedFileHandle::decode):
LayoutTests:
- storage/filesystemaccess/resources/sync-access-handle-close.js: (testSyncFunction): (async testAsyncFunction): (async testFunctions): (async testMultipleHandles): (async test):
- storage/filesystemaccess/sync-access-handle-close-worker-expected.txt:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@284692 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 6:22 PM Changeset in webkit [284733] by
-
- 7 edits3 adds in branches/safari-612.3.2.1-branch
Cherry-pick r284652. rdar://problem/84517013
FileSystemSyncAccessHandle should close platform file handle on close()
https://bugs.webkit.org/show_bug.cgi?id=232067
<rdar://problem/84517013>
Reviewed by Youenn Fablet.
LayoutTests/imported/w3c:
- web-platform-tests/file-system-access/sandboxed_FileSystemSyncAccessHandle-close.https.tentative.worker-expected.txt:
Source/WebCore:
This patch also ensures no request is sent after close() is called.
Test: storage/filesystemaccess/sync-access-handle-close-worker.html
- Modules/filesystemaccess/FileSystemFileHandle.cpp: (WebCore::FileSystemFileHandle::createSyncAccessHandle):
- Modules/filesystemaccess/FileSystemSyncAccessHandle.cpp: (WebCore::FileSystemSyncAccessHandle::FileSystemSyncAccessHandle): (WebCore::FileSystemSyncAccessHandle::~FileSystemSyncAccessHandle): (WebCore::FileSystemSyncAccessHandle::isClosingOrClosed const): (WebCore::FileSystemSyncAccessHandle::truncate): (WebCore::FileSystemSyncAccessHandle::getSize): (WebCore::FileSystemSyncAccessHandle::flush): (WebCore::FileSystemSyncAccessHandle::close): (WebCore::FileSystemSyncAccessHandle::didClose): (WebCore::FileSystemSyncAccessHandle::read): (WebCore::FileSystemSyncAccessHandle::write):
- Modules/filesystemaccess/FileSystemSyncAccessHandle.h:
LayoutTests:
- storage/filesystemaccess/resources/sync-access-handle-close.js: Added. (finishTest): (async testFunctions): (async test):
- storage/filesystemaccess/sync-access-handle-close-worker-expected.txt: Added.
- storage/filesystemaccess/sync-access-handle-close-worker.html: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@284652 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 5:58 PM Changeset in webkit [284732] by
-
- 2 edits in trunk/LayoutTests
Updated test expectations for imported/w3c/web-platform-tests/webrtc/RTCPeerConnection-perfect-negotiation-stress-glare.https.html.
https://bugs.webkit.org/show_bug.cgi?id=229569.
Unreviewed test gardening.
- platform/mac-wk2/TestExpectations:
- 5:49 PM Changeset in webkit [284731] by
-
- 2 edits in trunk/LayoutTests
REGRESSION: [Win] fast/ruby/generated-before-counter-doesnt-crash.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=232188
Unreviewed test gardening.
- platform/win/TestExpectations: Mark test as flaky.
- 5:19 PM Changeset in webkit [284730] by
-
- 3 edits in trunk/Source
Preconnect to link's target on click
https://bugs.webkit.org/show_bug.cgi?id=232147
Reviewed by Alex Christensen.
Preconnect to link's target on click, for reduced page load time. This is a confirmed
progression on some of our page load time benchmarks.
- html/HTMLAnchorElement.cpp:
(WebCore::HTMLAnchorElement::handleClick):
- 5:04 PM Changeset in webkit [284729] by
-
- 2 edits in trunk/LayoutTests
[ iOS 15 Debug ] ASSERTION FAILED: sockets.empty().
https://bugs.webkit.org/show_bug.cgi?id=231451
Unreviewed test gardening.
- platform/ios-wk2/TestExpectations:
- 4:51 PM Changeset in webkit [284728] by
-
- 42 edits1 delete in trunk/Source
Unreviewed, reverting r284713.
https://bugs.webkit.org/show_bug.cgi?id=232187
Broke some Apple internal builds
Reverted changeset:
"Add a module map file for PrivateFrameworks/WebKitLegacy"
https://bugs.webkit.org/show_bug.cgi?id=230735
https://commits.webkit.org/r284713
- 4:50 PM Changeset in webkit [284727] by
-
- 4 edits in trunk/LayoutTests
[ iOS macOS Debug ] imported/w3c/web-platform-tests/html/dom/idlharness.worker.html is a flaky failure.
https://bugs.webkit.org/show_bug.cgi?id=231030
Unreviewed test gardening.
- platform/ios-wk2/TestExpectations:
- platform/mac-wk1/TestExpectations:
- platform/mac/TestExpectations:
- 4:31 PM Changeset in webkit [284726] by
-
- 3 edits in trunk/Source/JavaScriptCore
Fix nits from 232019
https://bugs.webkit.org/show_bug.cgi?id=232180
Reviewed by Saam Barati.
We only need one write barrier, since we only need to guarantee that we read the status of the write barrier before we read from the structure cache.
If we are delayed in watching the watchpoint, it does not change any of the interleavings.
- dfg/DFGAbstractInterpreterInlines.h:
(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):
- dfg/DFGConstantFoldingPhase.cpp:
(JSC::DFG::ConstantFoldingPhase::foldConstants):
- 4:21 PM Changeset in webkit [284725] by
-
- 6 edits8 adds in trunk
Integer interpolation in animations should be rounded towards positive infinity, not away from zero.
https://bugs.webkit.org/show_bug.cgi?id=232013
Currently, interpolation of <integer> is rounding away from 0.
The interpolation's result should be rounded according to the spec,
https://drafts.csswg.org/css-values-4/#combine-integers, which is
"the result is converted to an <integer> by rounding
to the nearest integer, with values halfway between
adjacent integers rounded towards positive infinity."
LayoutTests/imported/w3c:
Patch by Joonghun Park <pjh0718@gmail.com> on 2021-10-22
Reviewed by Darin Adler.
- web-platform-tests/css/css-values/integer_interpolation_round_half_towards_positive_infinity_order-expected.txt: Added.
- web-platform-tests/css/css-values/integer_interpolation_round_half_towards_positive_infinity_order.html: Added.
- web-platform-tests/css/css-values/integer_interpolation_round_half_towards_positive_infinity_z_index-expected.txt: Added.
- web-platform-tests/css/css-values/integer_interpolation_round_half_towards_positive_infinity_z_index.html: Added.
Source/WebCore:
This patch also removes redundant static_cast<double>s
and potential overflow(e.g.'to' is the maximum integer and 'from' is
the minimum integer) from blend in AnimationUtilities.h.
Patch by Joonghun Park <pjh0718@gmail.com> on 2021-10-22
Reviewed by Darin Adler.
Tests: animations/animation-order-overflow.html
animations/animation-z-order-overflow.html
imported/w3c/web-platform-tests/css/css-values/integer_interpolation_round_half_towards_positive_infinity_order.html
imported/w3c/web-platform-tests/css/css-values/integer_interpolation_round_half_towards_positive_infinity_z_index.html
- platform/animation/AnimationUtilities.h:
(WebCore::blend):
Source/WTF:
Patch by Joonghun Park <pjh0718@gmail.com> on 2021-10-22
Reviewed by Darin Adler.
- wtf/MathExtras.h:
(roundTowardsPositiveInfinity):
LayoutTests:
This patch also removes redundant static_cast<double>s
and potential overflow(e.g.'to' is the maximum integer and 'from' is
the minimum integer) from blend in AnimationUtilities.h.
Patch by Joonghun Park <pjh0718@gmail.com> on 2021-10-22
Reviewed by Darin Adler.
- animations/animation-order-overflow-expected.txt: Added.
- animations/animation-order-overflow.html: Added.
- animations/animation-z-order-overflow-expected.txt: Added.
- animations/animation-z-order-overflow.html: Added.
- 4:20 PM Changeset in webkit [284724] by
-
- 4 edits in trunk/LayoutTests
Regression (r284610?): [ iOS BigSur wk2 ]imported/w3c/web-platform-tests/html/cross-origin-opener-policy/coop-csp-sandbox.https.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=232184
<rdar://problem/84567378>
LayoutTests/imported/w3c:
Unreviewed, rebaseline test.
- web-platform-tests/html/cross-origin-opener-policy/coop-csp-sandbox.https-expected.txt:
LayoutTests:
Unreviewed, dump CONSOLE messages to stderr to address flakiness.
- 3:53 PM Changeset in webkit [284723] by
-
- 4 edits in trunk/LayoutTests
Regression (r284610): [ iOS BigSur wk2 ] http/tests/security/window-opened-from-sandboxed-iframe-should-inherit-sandbox.html is failing
https://bugs.webkit.org/show_bug.cgi?id=232151
<rdar://problem/84552682>
Reviewed by Ryan Haddad.
The test expects a CONSOLE message to get logged to indicate that a load was blocked.
Rely oninternals.setConsoleMessageListenerto wait for this CONSOLE message instead
of using a timer in order the address the flakiness.
- http/tests/security/window-opened-from-sandboxed-iframe-should-inherit-sandbox.html:
- platform/ios-wk2/TestExpectations:
- platform/mac-wk2/TestExpectations:
- 3:44 PM Changeset in webkit [284722] by
-
- 2 edits in trunk/LayoutTests
[iOS EWS] imported/w3c/web-platform-tests/file-system-access/sandboxed_FileSystemSyncAccessHandle-close.https.tentative.worker.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=232181
Unreviewed test gardening.
- platform/ios/TestExpectations: Mark test as flaky.
- 3:32 PM Changeset in webkit [284721] by
-
- 2 edits in trunk/Tools
[ iOS15 EWS ] TestWebKitAPI.AppPrivacyReport.LoadSimulatedRequest tests are timing out
https://bugs.webkit.org/show_bug.cgi?id=232166
Unreviewed test gardening.
- TestWebKitAPI/Tests/WebKitCocoa/AppPrivacyReport.mm: Disable these tests.
- 3:27 PM Changeset in webkit [284720] by
-
- 1 copy in tags/Safari-612.3.2.0.1
Tag Safari-612.3.2.0.1.
- 3:26 PM Changeset in webkit [284719] by
-
- 8 edits in branches/safari-612.3.2.1-branch/Source
Versioning.
WebKit-7612.3.2.1.1
- 3:17 PM Changeset in webkit [284718] by
-
- 19 edits1 move in trunk/Source/WebCore
Rename ClipPathOperation to PathOperation
https://bugs.webkit.org/show_bug.cgi?id=232167
Patch by Kiet Ho <Kiet Ho> on 2021-10-22
Reviewed by Simon Fraser.
No functional changes, no tests required.
- Headers.cmake:
- WebCore.xcodeproj/project.pbxproj:
- animation/CSSPropertyAnimation.cpp:
(WebCore::blendFunc):
- css/CSSBasicShapes.cpp:
- css/CSSComputedStyleDeclaration.cpp:
(WebCore::ComputedStyleExtractor::valueForPropertyInStyle):
- rendering/PathOperation.h: Renamed from Source/WebCore/rendering/ClipPathOperation.h.
(WebCore::PathOperation::operator!= const):
(WebCore::PathOperation::isSameType const):
(WebCore::PathOperation::PathOperation):
- rendering/ReferencedSVGResources.cpp:
(WebCore::ReferencedSVGResources::referencedSVGResourceIDs):
(WebCore::ReferencedSVGResources::referencedClipperRenderer):
- rendering/ReferencedSVGResources.h:
- rendering/RenderBox.cpp:
(WebCore::RenderBox::hitTestClipPath const):
- rendering/RenderLayer.cpp:
(WebCore::RenderLayer::willCompositeClipPath const):
(WebCore::RenderLayer::computeClipPath const):
(WebCore::RenderLayer::setupClipPath):
- rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::updateMaskingLayerGeometry):
(WebCore::RenderLayerBacking::updateMaskingLayer):
- rendering/style/BasicShapes.cpp:
- rendering/style/RenderStyle.h:
(WebCore::RenderStyle::clipPath const):
(WebCore::RenderStyle::initialClipPath):
(WebCore::RenderStyle::setClipPath):
- rendering/style/StyleRareNonInheritedData.h:
- rendering/svg/SVGRenderSupport.cpp:
(WebCore::isPointInCSSClippingArea):
(WebCore::SVGRenderSupport::clipContextToCSSClippingArea):
(WebCore::SVGRenderSupport::pointInClippingArea):
- rendering/svg/SVGRenderTreeAsText.cpp:
(WebCore::writeResources):
- rendering/svg/SVGRenderingContext.cpp:
(WebCore::SVGRenderingContext::prepareToRenderSVGContent):
- rendering/svg/SVGResources.cpp:
(WebCore::SVGResources::buildCachedResources):
- style/StyleBuilderConverter.h:
(WebCore::Style::BuilderConverter::convertClipPath):
- 3:05 PM Changeset in webkit [284717] by
-
- 1 copy in branches/safari-612.3.2.1-branch
New branch.
- 2:56 PM Changeset in webkit [284716] by
-
- 3 edits1 add in trunk
[JSC] GetTypedArrayLengthAsInt52 must be inserted only when we ensure that input is TypedArray via array-mode-based filtering
https://bugs.webkit.org/show_bug.cgi?id=232168
rdar://84366658
Reviewed by Robin Morisset.
JSTests:
- stress/gettypedarraylengthasint52-must-be-emitted-for-typedarray.js: Added.
(foo):
Source/JavaScriptCore:
GetTypedArrayLengthAsInt52 works only when input is TypedArray, which should be validated via array-mode (and already inserted checks in fixup).
Accidentally we were inserting it without checking typed-array condition in SSA lowering phase. This patch adds a condition which ensures it
is TypedArray.
- dfg/DFGSSALoweringPhase.cpp:
(JSC::DFG::SSALoweringPhase::handleNode):
(JSC::DFG::SSALoweringPhase::lowerBoundsCheck):
- 2:47 PM Changeset in webkit [284715] by
-
- 2 edits in trunk/Source/JavaScriptCore
Change Heap::writeBarrier() to do the cheaper check first.
https://bugs.webkit.org/show_bug.cgi?id=232172
Reviewed by Robin Morisset.
It's cheaper to do a check using incoming args (which are already loaded in
registers) than to do a check which requires memory loads.
- heap/HeapInlines.h:
(JSC::Heap::writeBarrier):
- 2:40 PM Changeset in webkit [284714] by
-
- 2 edits in trunk/LayoutTests
[ iOS Debug ] fast/selectors/ backtracking tests are timing out.
https://bugs.webkit.org/show_bug.cgi?id=230988
Unreviewed test gardening.
- platform/ios-wk2/TestExpectations:
- 2:28 PM Changeset in webkit [284713] by
-
- 42 edits3 adds in trunk/Source
Add a module map file for PrivateFrameworks/WebKitLegacy
https://bugs.webkit.org/show_bug.cgi?id=230735
Patch by Ian Anderson <iana@apple.com> on 2021-10-22
Reviewed by David Kilzer.
Source/WebCore:
Change a few quoted includes to framework style angle includes to
support modularization.
Make sure to define the TARGET_ macros before using them.
- platform/ios/WebItemProviderPasteboard.h:
- platform/ios/wak/WAKAppKitStubs.h:
- platform/ios/wak/WAKResponder.h:
- platform/ios/wak/WAKView.h:
- platform/ios/wak/WAKWindow.h:
- platform/ios/wak/WKContentObservation.h:
- platform/ios/wak/WebCoreThreadMessage.h:
Source/WebKitLegacy:
Add module map files for WebKitLegacy. The public module is empty
because there are no public headers. The private module map sets
PrivateHeaders as the umbrella directory because there isn't an umbrella
header already. Then it makes an explicit submodule for each header so
as to mimic the non-modular environment.
- Modules/WebKitLegacy.modulemap: Added.
- Modules/WebKitLegacy.private.modulemap: Added.
- WebKitLegacy.xcodeproj/project.pbxproj:
Source/WebKitLegacy/ios:
WebGeolocationCoreLocationProvider.h is an Objective-C++ header, but the
WebKitLegacy module should be usable by plain Objective-C clients. Add
C++ guards so that it can be included in the module.
Add a missing include to WebFixedPositionContent.h.
- Misc/WebGeolocationCoreLocationProvider.h:
- WebCoreSupport/WebFixedPositionContent.h:
Source/WebKitLegacy/mac:
Define modules for the Cocoa Touch environment. macOS can't define
modules in WebKitLegacy because it's a nested framework on that
platform.
Enable the modules verifier tool for Apple Internal (it's not supported
in the public Xcode).
Add the Apple Internal guards for NSURLDownload from WebDownload.h to
NSURLDownloadSPI.h so it can be included in the module.
WebCreateFragmentInternal.h is an Objective-C++ header, but the
WebKitLegacy module should be usable by plain Objective-C clients. Add
C++ guards so that it can be included in the module.
Switch a few quoted includes to framework style angle includes, which
are required for modules.
Add some missing includes.
- Configurations/WebKitLegacy.xcconfig:
- DOM/DOMEventListener.h:
- DOM/DOMEventTarget.h:
- DOM/DOMNodeFilter.h:
- DOM/DOMXPathNSResolver.h:
- DOM/WebDOMOperationsPrivate.h:
- History/WebHistoryItemPrivate.h:
- Misc/NSURLDownloadSPI.h:
- Misc/WebCache.h:
- Misc/WebDownload.h:
- Misc/WebKitErrorsPrivate.h:
- Misc/WebLocalizableStrings.h:
- Misc/WebUserContentURLPattern.h:
- Plugins/Hosted/WebKitPluginHostTypes.h:
- Plugins/WebPlugin.h:
- Plugins/WebPluginContainer.h:
- Storage/WebDatabaseManagerPrivate.h:
- Storage/WebDatabaseQuotaManager.h:
- Storage/WebStorageManagerPrivate.h:
- WebCoreSupport/WebCreateFragmentInternal.h:
- WebCoreSupport/WebSecurityOriginPrivate.h:
- WebView/WebDeviceOrientation.h:
- WebView/WebDeviceOrientationProvider.h:
- WebView/WebDeviceOrientationProviderMock.h:
- WebView/WebEditingDelegatePrivate.h:
- WebView/WebFormDelegatePrivate.h:
- WebView/WebGeolocationPosition.h:
- WebView/WebResourceLoadDelegatePrivate.h:
- 1:45 PM Changeset in webkit [284712] by
-
- 2 edits in trunk/Source/WebKit
AX: Inform AX when the injected bundle sends a synchronous message
https://bugs.webkit.org/show_bug.cgi?id=232159
Reviewed by Andres Gonzalez.
When an injected bundle sends a synchronous message we need to inform accessibility clients, so they don't get
stuck trying to message the WebContent process. This is already handled for synchronous messages
generated from the WebPage.
- WebProcess/InjectedBundle/InjectedBundle.cpp:
(WebKit::InjectedBundle::postSynchronousMessage):
- 1:22 PM Changeset in webkit [284711] by
-
- 8 edits in trunk
[MSE][GStreamer] Honor MP4 edit lists, bis
https://bugs.webkit.org/show_bug.cgi?id=231019
Reviewed by Xabier Rodriguez-Calvar.
Source/WebCore:
This patch takes into consideration the GstSegment attached to a
sample to offset the PTS and DTS. This ensures accurate timestamps are
obtained for MP4 files containing edit lists (commonly necessary for
files containing video with B frames to have PTS starting at zero).
Before this was implemented, a workaround was in place based on a
heuristic (DTS = 0 && PTS > 0 && PTS < 0.1). The workaround is
preserved for the sake of content without proper edit lists, but
any edit list takes preference.
The time fudge factor has been modified from 0.083 seconds up to
0.100 seconds to accomodate the size of the empty edit in test.mp4
used by Web Platform Tests.
This test fixes improves expectation results and fixes two subtests in
imported/w3c/web-platform-tests/media-source/mediasource-remove.html.
This is a reworked version that avoids using gst_sample_set_buffer()
which is not available on GStreamer 1.14, and fixes an issue where
frames that would get a negative DTS were not being enqueued properly.
- Modules/mediasource/MediaSource.cpp:
(WebCore::MediaSource::currentTimeFudgeFactor):
- platform/graphics/SourceBufferPrivate.h:
(WebCore::SourceBufferPrivate::timeFudgeFactor const):
- platform/graphics/gstreamer/GStreamerCommon.h:
(WebCore::toGstClockTime):
- platform/graphics/gstreamer/MediaSampleGStreamer.cpp:
(WebCore::MediaSampleGStreamer::MediaSampleGStreamer):
- platform/graphics/gstreamer/mse/AppendPipeline.cpp:
(WebCore::bufferTimeToStreamTime):
(WebCore::AppendPipeline::appsinkNewSample):
LayoutTests:
Update expectations for mediasource-remove.html in the GStreamer
ports, as a couple subtests get fixed.
- platform/glib/imported/w3c/web-platform-tests/media-source/mediasource-remove-expected.txt:
- 12:50 PM Changeset in webkit [284710] by
-
- 19 edits in trunk/Source/WebKit
Use C++17 nested namespace syntax for WebKit::PCM
https://bugs.webkit.org/show_bug.cgi?id=232162
Patch by Alex Christensen <achristensen@webkit.org> on 2021-10-22
Reviewed by Yusuke Suzuki.
- NetworkProcess/PrivateClickMeasurement/PrivateClickMeasurementClientImpl.cpp:
- NetworkProcess/PrivateClickMeasurement/PrivateClickMeasurementConnection.cpp:
- NetworkProcess/PrivateClickMeasurement/PrivateClickMeasurementDaemonClient.cpp:
- NetworkProcess/PrivateClickMeasurement/PrivateClickMeasurementDaemonClient.h:
- NetworkProcess/PrivateClickMeasurement/PrivateClickMeasurementDatabase.cpp:
- NetworkProcess/PrivateClickMeasurement/PrivateClickMeasurementDatabase.h:
- NetworkProcess/PrivateClickMeasurement/PrivateClickMeasurementDebugInfo.cpp:
- NetworkProcess/PrivateClickMeasurement/PrivateClickMeasurementDebugInfo.h:
- NetworkProcess/PrivateClickMeasurement/PrivateClickMeasurementManagerInterface.cpp:
- NetworkProcess/PrivateClickMeasurement/PrivateClickMeasurementManagerProxy.cpp:
- NetworkProcess/PrivateClickMeasurement/PrivateClickMeasurementNetworkLoader.cpp:
- NetworkProcess/PrivateClickMeasurement/PrivateClickMeasurementNetworkLoader.h:
- NetworkProcess/PrivateClickMeasurement/PrivateClickMeasurementStore.cpp:
- NetworkProcess/PrivateClickMeasurement/cocoa/PrivateClickMeasurementConnectionCocoa.mm:
- NetworkProcess/PrivateClickMeasurement/cocoa/PrivateClickMeasurementNetworkLoaderCocoa.mm:
- NetworkProcess/PrivateClickMeasurement/cocoa/PrivateClickMeasurementXPCUtilities.h:
- NetworkProcess/PrivateClickMeasurement/cocoa/PrivateClickMeasurementXPCUtilities.mm:
- Shared/EntryPointUtilities/Cocoa/Daemon/PCMDaemonConnectionSet.mm:
- 12:22 PM Changeset in webkit [284709] by
-
- 2 edits2 deletes in trunk/LayoutTests
Unreviewed, drop custom iOS expectations for noopener-noreferrer-sizing.window.html.
It looks like the test is now passing on iOS/iPhone too, not just macOS and iOS/iPad.
- platform/ios-wk2/TestExpectations:
- platform/ios-wk2/imported/w3c/web-platform-tests/html/browsers/the-window-object/noopener-noreferrer-sizing.window-expected.txt: Removed.
- platform/ipad/imported/w3c/web-platform-tests/html/browsers/the-window-object/noopener-noreferrer-sizing.window-expected.txt: Removed.
- 12:19 PM Changeset in webkit [284708] by
-
- 2 edits in trunk/LayoutTests
Update test expectations for imported/w3c/web-platform-tests/content-security-policy/script-src/script-src-multiple-policies-multiple-hashing-algorithms.html.
https://bugs.webkit.org/show_bug.cgi?id=232120.
Unreviewed test gardening.
- platform/ios-wk2/TestExpectations:
- 12:00 PM Changeset in webkit [284707] by
-
- 3 edits3 adds in branches/safari-612-branch
Cherry-pick r283952. rdar://problem/84558050
[COOP] Crash under ReportingEndpointsCache::addEndpointFromDictionary()
https://bugs.webkit.org/show_bug.cgi?id=231537
<rdar://83530643>
Reviewed by Geoffrey Garen.
Source/WebCore:
Make sure we don't crash under addEndpointFromDictionary() when the Report-To HTTP header
contains more than one endpoint URL for a given group.
The loop inside addEndpointFromDictionary() should bail as soon as we find a viable
endpoint URL (since we don't currently support having several URLs for a given group).
The crash was due to a use-after-move of the |group|.
Test: http/wpt/cross-origin-opener-policy/report-to-multiple-endpoints.html
- loader/ReportingEndpointsCache.cpp: (WebCore::ReportingEndpointsCache::addEndpointFromDictionary):
LayoutTests:
Add layout test coverage.
- http/wpt/cross-origin-opener-policy/report-to-multiple-endpoints-expected.txt: Added.
- http/wpt/cross-origin-opener-policy/report-to-multiple-endpoints.html: Added.
- http/wpt/cross-origin-opener-policy/report-to-multiple-endpoints.html.headers: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@283952 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 11:57 AM Changeset in webkit [284706] by
-
- 3 edits in trunk/LayoutTests
http/wpt/fetch/fetch-response-body-stop-in-worker.html is failing on iOS15 was well.
https://bugs.webkit.org/show_bug.cgi?id=225528.
Unreviewed test gardening.
- platform/ios-14-wk2/TestExpectations:
- platform/ios-wk2/TestExpectations:
- 11:55 AM Changeset in webkit [284705] by
-
- 8 edits in branches/safari-612-branch/Source
Versioning.
WebKit-7612.3.3
- 11:53 AM Changeset in webkit [284704] by
-
- 2 edits in trunk/Tools
webkitpy/autoinstalled/pyobjc_frameworks.py should install wheel distribution
https://bugs.webkit.org/show_bug.cgi?id=232156
Patch by Roy Reapor <rreapor@apple.com> on 2021-10-22
Reviewed by Stephanie Lewis.
Install wheel version of framweorks.
- Scripts/webkitpy/autoinstalled/pyobjc_frameworks.py:
- 11:41 AM Changeset in webkit [284703] by
-
- 2 edits in trunk/Source/WebKit
[iOS] Add required syscall
https://bugs.webkit.org/show_bug.cgi?id=232153
<rdar://84523250>
Reviewed by Brent Fulgham.
Add required syscall to WP sandbox on iOS.
- Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb.in:
- 11:35 AM Changeset in webkit [284702] by
-
- 9 edits39 adds in trunk
Change WebAssembly module import linking time to evaluate step.
https://bugs.webkit.org/show_bug.cgi?id=231114
Patch by Asumu Takikawa <asumu@igalia.com> on 2021-10-22
Reviewed by Yusuke Suzuki.
JSTests:
Added test cases based on Wasm/ESM proposal examples from:
https://github.com/WebAssembly/esm-integration/blob/main/proposals/esm-integration/EXAMPLES.md
The new tests cases cover the bindings made for both JS<->Wasm
and Wasm<->JS cyclic module cases, and importing values from JS
into Wasm modules. The tests do not cover importing memory values
as this does not work yet.
- wasm/modules/wasm-js-cycle.js:
- wasm/modules/wasm-js-cycle/entry-global.wasm:
- wasm/modules/wasm-js-cycle/entry-global.wat:
- wasm/modules/wasm-js-cycle/entry-table.wasm:
- wasm/modules/wasm-js-cycle/entry-table.wat:
- wasm/modules/wasm-js-cycle/global.js:
(from.string_appeared_here.export.incrementGlobal): Deleted.
- wasm/modules/wasm-js-cycle/table.js:
(from.string_appeared_here.export.setTable): Deleted.
- wasm/modules/js-wasm-cycle.js:
(then):
- wasm/modules/js-wasm-cycle/entry-function.js: Added.
(f):
- wasm/modules/js-wasm-cycle/entry-i32-global.js: Added.
- wasm/modules/js-wasm-cycle/entry-i32-value.js: Added.
- wasm/modules/js-wasm-cycle/entry-memory.js: Added.
- wasm/modules/js-wasm-cycle/entry-table.js: Added.
- wasm/modules/js-wasm-cycle/entry-wasm-global.js: Added.
(f):
- wasm/modules/js-wasm-cycle/entry-wasm-memory.js: Added.
(f):
- wasm/modules/js-wasm-cycle/entry-wasm-table.js: Added.
(f):
- wasm/modules/js-wasm-cycle/function.wasm: Added.
- wasm/modules/js-wasm-cycle/function.wat: Added.
- wasm/modules/js-wasm-cycle/i32-global.wasm: Added.
- wasm/modules/js-wasm-cycle/i32-global.wat: Added.
- wasm/modules/js-wasm-cycle/i32-value.wasm: Added.
- wasm/modules/js-wasm-cycle/i32-value.wat: Added.
- wasm/modules/js-wasm-cycle/memory.wasm: Added.
- wasm/modules/js-wasm-cycle/memory.wat: Added.
- wasm/modules/js-wasm-cycle/table.wasm: Added.
- wasm/modules/js-wasm-cycle/table.wat: Added.
- wasm/modules/js-wasm-cycle/wasm-global.wasm: Added.
- wasm/modules/js-wasm-cycle/wasm-global.wat: Added.
- wasm/modules/js-wasm-cycle/wasm-memory.wasm: Added.
- wasm/modules/js-wasm-cycle/wasm-memory.wat: Added.
- wasm/modules/js-wasm-cycle/wasm-table.wasm: Added.
- wasm/modules/js-wasm-cycle/wasm-table.wat: Added.
- wasm/modules/wasm-imports-js-exports.js:
- wasm/modules/wasm-imports-js-exports/global.js: Added.
- wasm/modules/wasm-imports-js-exports/global.wasm: Added.
- wasm/modules/wasm-imports-js-exports/global.wat: Added.
- wasm/modules/wasm-imports-js-exports/table.js: Added.
- wasm/modules/wasm-imports-js-exports/table.wasm: Added.
- wasm/modules/wasm-imports-js-exports/table.wat: Added.
- wasm/modules/wasm-js-cycle.js:
- wasm/modules/wasm-js-cycle/entry-global.wasm: Added.
- wasm/modules/wasm-js-cycle/entry-global.wat: Added.
- wasm/modules/wasm-js-cycle/entry-memory.wasm: Added.
- wasm/modules/wasm-js-cycle/entry-memory.wat: Added.
- wasm/modules/wasm-js-cycle/entry-table.wasm: Added.
- wasm/modules/wasm-js-cycle/entry-table.wat: Added.
- wasm/modules/wasm-js-cycle/global.js: Added.
(export.incrementGlobal):
- wasm/modules/wasm-js-cycle/memory.js: Added.
(from.string_appeared_here.export.setMemory):
- wasm/modules/wasm-js-cycle/table.js: Added.
(export.setTable):
Source/JavaScriptCore:
Moves the Wasm module import linking code to execute in the
module evaluation step, which is the behavior specified in the
Wasm/ESM-integration proposal:
https://github.com/WebAssembly/esm-integration/tree/main/proposals/esm-integration#evaluate
- runtime/AbstractModuleRecord.cpp:
(JSC::AbstractModuleRecord::link):
(JSC::AbstractModuleRecord::evaluate):
- wasm/js/JSWebAssemblyInstance.cpp:
(JSC::JSWebAssemblyInstance::finalizeCreation):
- wasm/js/WebAssemblyModuleRecord.cpp:
(JSC::WebAssemblyModuleRecord::link):
(JSC::WebAssemblyModuleRecord::initializeImportsAndExports):
(JSC::WebAssemblyModuleRecord::linkImpl): Deleted.
- wasm/js/WebAssemblyModuleRecord.h:
- 11:35 AM Changeset in webkit [284701] by
-
- 3 edits in trunk/LayoutTests
Regression (r284610): [ iOS BigSur wk2 ] http/tests/security/window-opened-from-sandboxed-iframe-should-inherit-sandbox.html is failing.
https://bugs.webkit.org/show_bug.cgi?id=232151
Unreviewed test gardening.
- platform/ios-wk2/TestExpectations:
- platform/mac-wk2/TestExpectations:
- 11:31 AM Changeset in webkit [284700] by
-
- 8 edits in trunk/Source/JavaScriptCore
[JSC][32bit] Re-enable compileEnumeratorGetByVal fast path
https://bugs.webkit.org/show_bug.cgi?id=232052
Patch by Mikhail R. Gadelha <Mikhail R. Gadelha> on 2021-10-22
Reviewed by Yusuke Suzuki.
In https://bugs.webkit.org/show_bug.cgi?id=229543, the compileEnumeratorGetByVal
fast path had to be disabled in 32 bits due to not having enough registers.
There are enough registers available now, so we can re-enable the fast path and
removed the speculation that the baseEdge of both enumeratorGetByVal and
getByVal is a Cell in 32 bits.
I've also updated the 32 bits version of compileGetByVal to be closer to the 64
bits version: using DFG_CRASH instead of RELEASE_ASSERT_NOT_REACHED, using nullptr
instead of 0, and removed some whitespaces.
- dfg/DFGFixupPhase.cpp:
(JSC::DFG::FixupPhase::fixupNode):
- dfg/DFGOperations.cpp:
(JSC::DFG::JSC_DEFINE_JIT_OPERATION):
- dfg/DFGOperations.h:
- dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::compileEnumeratorGetByVal):
- dfg/DFGSpeculativeJIT32_64.cpp:
(JSC::DFG::SpeculativeJIT::compileGetByVal):
(JSC::DFG::SpeculativeJIT::compileEnumeratorGetByVal): Deleted.
- dfg/DFGSpeculativeJIT64.cpp:
(JSC::DFG::SpeculativeJIT::compileEnumeratorGetByVal): Deleted.
- 11:23 AM Changeset in webkit [284699] by
-
- 2 edits in trunk/Source/JavaScriptCore
canDoFastSpread should also check that the Structure is from the global object we're watching
https://bugs.webkit.org/show_bug.cgi?id=231976
<rdar://84340372>
Reviewed by Keith Miller.
Just reorder the checks for clarity.
- dfg/DFGGraph.cpp:
(JSC::DFG::Graph::canDoFastSpread):
- 11:22 AM Changeset in webkit [284698] by
-
- 3 edits in trunk/Source/WebKit
WKErrorRef.h does't have some error definitions
https://bugs.webkit.org/show_bug.cgi?id=232116
Reviewed by Alex Christensen.
Add error definitions which exist in APIrror.h but do not exist in WKErrorRef.h
kWKErrorCodeCancelled
kWKErrorCodeFileDoesNotExist
No test as this patch does not change code behavior.
- Shared/API/c/WKErrorRef.cpp:
(WKErrorGetErrorCode):
- Shared/API/c/WKErrorRef.h:
- 11:11 AM Changeset in webkit [284697] by
-
- 3 edits3 adds in branches/safari-612.3.2.0-branch
Cherry-pick r283952. rdar://problem/84533339
[COOP] Crash under ReportingEndpointsCache::addEndpointFromDictionary()
https://bugs.webkit.org/show_bug.cgi?id=231537
<rdar://83530643>
Reviewed by Geoffrey Garen.
Source/WebCore:
Make sure we don't crash under addEndpointFromDictionary() when the Report-To HTTP header
contains more than one endpoint URL for a given group.
The loop inside addEndpointFromDictionary() should bail as soon as we find a viable
endpoint URL (since we don't currently support having several URLs for a given group).
The crash was due to a use-after-move of the |group|.
Test: http/wpt/cross-origin-opener-policy/report-to-multiple-endpoints.html
- loader/ReportingEndpointsCache.cpp: (WebCore::ReportingEndpointsCache::addEndpointFromDictionary):
LayoutTests:
Add layout test coverage.
- http/wpt/cross-origin-opener-policy/report-to-multiple-endpoints-expected.txt: Added.
- http/wpt/cross-origin-opener-policy/report-to-multiple-endpoints.html: Added.
- http/wpt/cross-origin-opener-policy/report-to-multiple-endpoints.html.headers: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@283952 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 11:09 AM Changeset in webkit [284696] by
-
- 8 edits in branches/safari-612.3.2.0-branch/Source
Versioning.
WebKit-7612.3.2.0.1
- 11:09 AM Changeset in webkit [284695] by
-
- 10 edits in trunk/Source/WebKit
RemoteRenderingBackend::CreateImageBuffer should be an async IPC stream message
https://bugs.webkit.org/show_bug.cgi?id=231970
Reviewed by Kimmo Kinnunen.
This patch reverts the changes in r284476, which worked around a race when adding receive queues for newly
created IPC stream destinations and simultaneously dispatching IPC messages to those destinations. Rather than
making the IPC message that creates and adds the new image buffer's RemoteDisplayListRecorder synchronous, we
instead keep that message async and make adjustments to ensure that incoming out-of-stream IPC messages for
RemoteDisplayListRecorder can always be mapped to an appropriate receive queue. See below for more details.
- GPUProcess/graphics/RemoteDisplayListRecorder.cpp:
(WebKit::RemoteDisplayListRecorder::startListeningForIPC):
Move the main runloop bounce down to
StreamServerConnectionBase::startReceivingMessagesImpl()instead (to deal
with the fact thataddMessageReceiveQueuecurrently needs to be invoked on the main runloop). This allows us
to callStreamServerConnection::startReceivingMessages()from the processing queue while creating a remote
image buffer, which (in turn) ensures that incoming out-of-stream messages from the IPC thread will be sent to
the correct RemoteDisplayListRecorder destination by the time they're dispatched on the work queue thread.
- GPUProcess/graphics/RemoteRenderingBackend.cpp:
(WebKit::RemoteRenderingBackend::startListeningForIPC):
(WebKit::RemoteRenderingBackend::stopListeningForIPC):
Additionally register a "0-destination" receiver to ensure that all RemoteDisplayListRecorder messages (even
without pre-existing destinations) will be enqueued on the same IPC stream connection as this remote rendering
backend.
(WebKit::RemoteRenderingBackend::createImageBuffer):
- GPUProcess/graphics/RemoteRenderingBackend.h:
- GPUProcess/graphics/RemoteRenderingBackend.messages.in:
Make
CreateImageBufferan async stream message once again.
- Platform/IPC/StreamConnectionWorkQueue.cpp:
(IPC::StreamConnectionWorkQueue::processStreams):
- Platform/IPC/StreamConnectionWorkQueue.h:
Change
m_connectionsinto a HashCountedSet (from a HashSet), to ensure that the same server connection object
can be added to and removed from the work queue multiple times, without removing the connection from the map
early.
- Platform/IPC/StreamServerConnection.cpp:
(IPC::StreamServerConnectionBase::startReceivingMessagesImpl):
(IPC::StreamServerConnectionBase::stopReceivingMessagesImpl):
- Platform/IPC/StreamServerConnection.h:
(IPC::StreamServerConnection::startReceivingMessages):
(IPC::StreamServerConnection::stopReceivingMessages):
Add new methods to start and stop receiving all messages for a given ReceiverName, regardless of incoming
destination ID. RemoteRenderingBackend now uses this to register a "catch-all" listener for all
RemoteDisplayListRecorder messages.
- WebProcess/GPU/graphics/RemoteRenderingBackendProxy.cpp:
(WebKit::RemoteRenderingBackendProxy::createRemoteImageBuffer):
- 11:03 AM Changeset in webkit [284694] by
-
- 2 edits in trunk/Source/WebCore
Remove release assertion in MediaResourceClient::responseReceived
https://bugs.webkit.org/show_bug.cgi?id=232121
Patch by Alex Christensen <achristensen@webkit.org> on 2021-10-22
Reviewed by David Kilzer.
I tried and was unable to reproduce this, even with multipart responses which can call didReceiveResponse multiple times in the same load.
In any case, it's clear where the crash is and that this assertion can be hit. Not continuing with the response is better than crashing.
Keep the debug assertion because if it is hit, we want to notice.
- platform/network/cocoa/RangeResponseGenerator.mm:
- 9:56 AM Changeset in webkit [284693] by
-
- 38 edits in trunk/Source/WebCore
Factor style resolver context arguments into a struct
https://bugs.webkit.org/show_bug.cgi?id=232137
Reviewed by Antoine Quint.
Add Style::ResolutionContext struct and use it to consistently pass around all context argument needed
for resolving style instead of just passing around individual arguments as separate function parameter.
An immediately benefit is that we can remove the stateful setOverrideDocumentElementStyle hack.
This also makes the style system more flexible and extensible for future work.
Most of the patch is mechanically replacing a parent style argument in various places with a context
struct argument.
- animation/AnimationEffect.h:
- animation/CSSAnimation.cpp:
(WebCore::CSSAnimation::create):
- animation/CSSAnimation.h:
- animation/CSSTransition.cpp:
(WebCore::CSSTransition::create):
(WebCore::CSSTransition::resolve):
- animation/CSSTransition.h:
- animation/DeclarativeAnimation.cpp:
(WebCore::DeclarativeAnimation::initialize):
- animation/DeclarativeAnimation.h:
- animation/KeyframeEffect.cpp:
(WebCore::KeyframeEffect::updateBlendingKeyframes):
(WebCore::KeyframeEffect::computeDeclarativeAnimationBlendingKeyframes):
(WebCore::KeyframeEffect::computeCSSAnimationBlendingKeyframes):
(WebCore::KeyframeEffect::apply):
(WebCore::KeyframeEffect::setAnimatedPropertiesInStyle):
- animation/KeyframeEffect.h:
- animation/KeyframeEffectStack.cpp:
(WebCore::KeyframeEffectStack::applyKeyframeEffects):
- animation/KeyframeEffectStack.h:
- animation/WebAnimation.cpp:
(WebCore::WebAnimation::resolve):
(WebCore::WebAnimation::commitStyles):
- animation/WebAnimation.h:
- css/MediaQueryMatcher.cpp:
(WebCore::MediaQueryMatcher::documentElementUserAgentStyle const):
- css/StyleMedia.cpp:
(WebCore::StyleMedia::matchMedium const):
- dom/Document.cpp:
(WebCore::Document::styleForElementIgnoringPendingStylesheets):
- dom/Element.cpp:
(WebCore::Element::resolveStyle):
(WebCore::Element::resolveCustomStyle):
- dom/Element.h:
- html/HTMLTitleElement.cpp:
(WebCore::HTMLTitleElement::computedTextWithDirection):
- html/shadow/DateTimeFieldElement.cpp:
(WebCore::DateTimeFieldElement::resolveCustomStyle):
- html/shadow/DateTimeFieldElement.h:
- html/shadow/SliderThumbElement.cpp:
(WebCore::SliderThumbElement::resolveCustomStyle):
(WebCore::SliderContainerElement::resolveCustomStyle):
- html/shadow/SliderThumbElement.h:
- html/shadow/TextControlInnerElements.cpp:
(WebCore::TextControlInnerContainer::resolveCustomStyle):
(WebCore::TextControlInnerElement::resolveCustomStyle):
(WebCore::TextControlInnerTextElement::resolveCustomStyle):
(WebCore::TextControlPlaceholderElement::resolveCustomStyle):
(WebCore::SearchFieldResultsButtonElement::resolveCustomStyle):
(WebCore::SearchFieldCancelButtonElement::resolveCustomStyle):
- html/shadow/TextControlInnerElements.h:
- rendering/RenderElement.cpp:
(WebCore::RenderElement::computeFirstLineStyle const):
(WebCore::RenderElement::getUncachedPseudoStyle const):
- rendering/style/KeyframeList.cpp:
(WebCore::KeyframeList::fillImplicitKeyframes):
- style/StyleResolver.cpp:
(WebCore::Style::Resolver::Resolver):
(WebCore::Style::Resolver::styleForElement):
(WebCore::Style::Resolver::styleForKeyframe):
(WebCore::Style::Resolver::keyframeStylesForAnimation):
(WebCore::Style::Resolver::pseudoStyleForElement):
- style/StyleResolver.h:
(WebCore::Style::Resolver::overrideDocumentElementStyle const): Deleted.
(WebCore::Style::Resolver::setOverrideDocumentElementStyle): Deleted.
- style/StyleTreeResolver.cpp:
(WebCore::Style::TreeResolver::Scope::Scope):
(WebCore::Style::TreeResolver::Scope::~Scope):
(WebCore::Style::TreeResolver::styleForStyleable):
(WebCore::Style::TreeResolver::resolveElement):
(WebCore::Style::TreeResolver::resolvePseudoStyle):
(WebCore::Style::TreeResolver::makeResolveContext):
(WebCore::Style::TreeResolver::makeResolveContextForPseudoElement):
(WebCore::Style::TreeResolver::parentBoxStyleForPseudoElement const):
(WebCore::Style::TreeResolver::createAnimatedElementUpdate):
(WebCore::Style::TreeResolver::parentBoxStyleForPseudo const): Deleted.
- style/StyleTreeResolver.h:
- style/Styleable.cpp:
(WebCore::Styleable::updateCSSAnimations const):
(WebCore::updateCSSTransitionsForStyleableAndProperty):
- style/Styleable.h:
(WebCore::Styleable::applyKeyframeEffects const):
- svg/SVGElement.cpp:
(WebCore::SVGElement::resolveCustomStyle):
- svg/SVGElement.h:
- svg/SVGElementRareData.h:
(WebCore::SVGElementRareData::overrideComputedStyle):
- testing/Internals.cpp:
(WebCore::Internals::highlightPseudoElementColor):
- 9:52 AM Changeset in webkit [284692] by
-
- 10 edits in trunk
Followup to r284652: ensure file handle is closed in web process
https://bugs.webkit.org/show_bug.cgi?id=232127
Reviewed by Youenn Fablet.
Source/WebCore:
Covered by test: storage/filesystemaccess/sync-access-handle-close-worker.html
- Modules/filesystemaccess/FileSystemSyncAccessHandle.cpp:
(WebCore::FileSystemSyncAccessHandle::~FileSystemSyncAccessHandle): make sure file handle is closed when
FileSystemSyncAccessHandle is destroyed.
(WebCore::FileSystemSyncAccessHandle::closeInternal):
(WebCore::FileSystemSyncAccessHandle::close):
- Modules/filesystemaccess/FileSystemSyncAccessHandle.h:
Source/WebKit:
- NetworkProcess/storage/FileSystemStorageHandle.cpp:
(WebKit::FileSystemStorageHandle::~FileSystemStorageHandle):
(WebKit::FileSystemStorageHandle::createSyncAccessHandle):
(WebKit::FileSystemStorageHandle::close):
- NetworkProcess/storage/FileSystemStorageHandle.h:
- Platform/IPC/cocoa/SharedFileHandleCocoa.cpp: an extra fd is created here and does not get closed.
(IPC::SharedFileHandle::decode):
LayoutTests:
- storage/filesystemaccess/resources/sync-access-handle-close.js:
(testSyncFunction):
(async testAsyncFunction):
(async testFunctions):
(async testMultipleHandles):
(async test):
- storage/filesystemaccess/sync-access-handle-close-worker-expected.txt:
- 9:47 AM Changeset in webkit [284691] by
-
- 1 copy in branches/safari-612.3.2.0-branch
New branch.
- 9:36 AM Changeset in webkit [284690] by
-
- 3 edits in trunk/Source/JavaScriptCore
--reportBytecodeCompileTimes=1 should correctly report the bytecode size
https://bugs.webkit.org/show_bug.cgi?id=232118
Reviewed by Michael Saboff.
generate() calls m_writer.finalize() which moves m_instructions, so when we later query its size we get 0.
The solution is simply to put the size in an out-parameter just before calling finalize().
- bytecompiler/BytecodeGenerator.cpp:
(JSC::BytecodeGenerator::generate):
- bytecompiler/BytecodeGenerator.h:
(JSC::BytecodeGenerator::generate):
- 9:31 AM Changeset in webkit [284689] by
-
- 2 edits in trunk/Source/WebKit
REGRESSION (Safari 15 - iOS15): [WebRTC] Increased audio latency while playing webrtc audio stream over audio element
https://bugs.webkit.org/show_bug.cgi?id=230903
<rdar://problem/83692944>
Reviewed by Eric Carlson.
We used to render audio tracks in process and are now doing rendering in GPU process.
Current implementation requests data with a fixed chunk size, that we were setting as the max of preferred buffer size and web audio chunk size.
If we are reading too close to the end of data in AudioSampleDataSource, we will delay reading the data by this buffer size. This triggers delay but allows getting a consistent rendering.
To reduce delay, we are now using the maximum of web audio chunk size and 10 ms chunk size, as WebRTC tracks are usually manipulating 10 ms chunks.
Manually tested.
- GPUProcess/webrtc/RemoteAudioMediaStreamTrackRendererInternalUnitManager.cpp:
- 9:27 AM Changeset in webkit [284688] by
-
- 2 edits in trunk
Add Guillaume Emont's github username to contributors.json
https://bugs.webkit.org/show_bug.cgi?id=232144
Unreviewed.
- metadata/contributors.json:
- 9:23 AM Changeset in webkit [284687] by
-
- 14 edits in trunk/Source/WebCore
Unreviewed, reverting r284606.
Reverting because this commit caused accessibility/ios-
simulator/accessibility-aria-table-children.html to fail
Reverted changeset:
"AX: Any addition of children should funnel through
AccessibilityObject::addChild"
https://bugs.webkit.org/show_bug.cgi?id=231914
https://commits.webkit.org/r284606
- 9:05 AM Changeset in webkit [284686] by
-
- 4 edits in trunk/LayoutTests
[ iOS15 iPad Debug ] imported/w3c/web-platform-tests/webmessaging/MessagePort_onmessage_start.any.worker.html is a flaky failure (reached unreachable code)
https://bugs.webkit.org/show_bug.cgi?id=231609
<rdar://problem/84164701>
Reviewed by Youenn Fablet.
LayoutTests/imported/w3c:
Merge https://github.com/web-platform-tests/wpt/pull/31317 from upstream WPT to address
test flakiness.
- web-platform-tests/webmessaging/MessagePort_onmessage_start.any.js:
(async_test):
LayoutTests:
Unskip test that should no longer be flaky.
- platform/ipad/TestExpectations:
- 9:04 AM Changeset in webkit [284685] by
-
- 15 edits1 delete in trunk
Unreviewed, reverting r284654.
Reverting because this commit caused scrolling tests to fail
Reverted changeset:
"Content offset in this codepen when switching tabs"
https://bugs.webkit.org/show_bug.cgi?id=231989
https://commits.webkit.org/r284654
- 8:50 AM Changeset in webkit [284684] by
-
- 4 edits in trunk/Source/WebCore
Do GrpahicsContext and EventRegion clipping-related save/restore via RAII objects
https://bugs.webkit.org/show_bug.cgi?id=231985
Reviewed by Antti Koivisto.
Remove all but one of the bare context.save() calls in RenderLayer by passing a
GraphicsContextStateSaver to clipToRect() and setupClipPath().
Also pass a EventRegionContextStateSaver for the equivalent save/restore on EventRegionContext.
This allows us to remove restoreClip() entirely.
- rendering/EventRegion.h:
(WebCore::EventRegionContextStateSaver::EventRegionContextStateSaver):
(WebCore::EventRegionContextStateSaver::~EventRegionContextStateSaver):
(WebCore::EventRegionContextStateSaver::pushClip):
(WebCore::EventRegionContextStateSaver::context const):
- rendering/RenderLayer.cpp:
(WebCore::RenderLayer::clipToRect):
(WebCore::RenderLayer::paintLayerWithEffects):
(WebCore::RenderLayer::setupClipPath):
(WebCore::RenderLayer::applyFilters):
(WebCore::RenderLayer::paintLayerContents):
(WebCore::RenderLayer::paintTransformedLayerIntoFragments):
(WebCore::RenderLayer::paintBackgroundForFragments):
(WebCore::RenderLayer::paintForegroundForFragments):
(WebCore::RenderLayer::paintForegroundForFragmentsWithPhase):
(WebCore::RenderLayer::paintOutlineForFragments):
(WebCore::RenderLayer::paintMaskForFragments):
(WebCore::RenderLayer::paintChildClippingMaskForFragments):
(WebCore::RenderLayer::paintOverflowControlsForFragments):
(WebCore::RenderLayer::restoreClip): Deleted.
- rendering/RenderLayer.h:
- 8:17 AM Changeset in webkit [284683] by
-
- 4 edits in trunk
[LFC][IFC] Check the parent style for content wrapping when collecting wrap opportunities
https://bugs.webkit.org/show_bug.cgi?id=232056
Reviewed by Antti Koivisto.
Source/WebCore:
See the comment in LineBuilder::handleInlineContent.
- layout/formattingContexts/inline/InlineLineBuilder.cpp:
(WebCore::Layout::LineBuilder::handleInlineContent):
LayoutTests:
- 7:53 AM Changeset in webkit [284682] by
-
- 2 edits in trunk/Source/WebKit
[macOS] Add needed syscall
https://bugs.webkit.org/show_bug.cgi?id=232110
<rdar://84519690>
Reviewed by Brent Fulgham.
Add required syscall in WP sandbox.
- WebProcess/com.apple.WebProcess.sb.in:
- 7:38 AM Changeset in webkit [284681] by
-
- 4 edits in trunk/Source/WebKit
StreamConnectionWorkQueue::processStreams() has a incorrect protection ref
https://bugs.webkit.org/show_bug.cgi?id=232070
Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2021-10-22
Reviewed by Wenson Hsieh.
- GPUProcess/graphics/RemoteRenderingBackend.cpp:
(WebKit::RemoteRenderingBackend::~RemoteRenderingBackend):
Additionally remove redundant protection ref fromRemoteRenderingBackend
cleanup task. Sincem_workQueue->stop()is run after dispatching the
task, and sincestop()waits until queue has executed the
all the tasks, them_workQueueref outlives the protection ref.
- Platform/IPC/StreamConnectionWorkQueue.cpp:
(IPC::StreamConnectionWorkQueue::processStreams):
Remove the redundant protection ref so it does not cause confusion.
The protection ref cannot hold the last ref, as that would mean
that theStreamConnectionWorkQueuethread would run the code to
destroy the work queue itself. There has to be a external ref for
queue->stop()that outlives the protection ref, as thestop()will
wait until the queue thread stops.
(IPC::StreamConnectionWorkQueue::stopAndWaitForCompletion):
(IPC::StreamConnectionWorkQueue::stop): Deleted.
- Platform/IPC/StreamConnectionWorkQueue.h:
Rename
stop()tostopAndWaitForCompletion()to signify what
the function does.
- 7:31 AM Changeset in webkit [284680] by
-
- 3 edits2 adds in trunk
[LFC][IFC] Add missing isAtSoftWrapOpportunity check when between two whitespace inline items
https://bugs.webkit.org/show_bug.cgi?id=232055
Reviewed by Antti Koivisto.
Source/WebCore:
Due to the isWrappingAllowed checks in isAtSoftWrapOpportunity() to speed up line breaking,
we may end up with adjacent whitespace content with different wrapping styles (embedded in separate inline boxes).
e.g. <span style="white-space: no-wrap">XXX </span><span style="white-space: normal"> X</span
Test: fast/inline/white-space-nowrap-and-normal-inline-box.html
- layout/formattingContexts/inline/InlineContentBreaker.cpp:
(WebCore::Layout::isVisuallyEmptyWhitespaceContent):
- layout/formattingContexts/inline/InlineLineBuilder.cpp:
(WebCore::Layout::isAtSoftWrapOpportunity):
LayoutTests:
- fast/inline/white-space-nowrap-and-normal-inline-box-expected.html: Added.
- fast/inline/white-space-nowrap-and-normal-inline-box.html: Added.
- 6:48 AM Changeset in webkit [284679] by
-
- 2 edits in trunk/Source/WebKit
Unreviewed, fix typo in the WebKitWebInspector documentation.
- UIProcess/API/gtk/WebKitWebInspector.cpp:
- 6:44 AM Changeset in webkit [284678] by
-
- 3 edits in trunk/Source/WebCore
[LFC][IFC] Add support for checking leading collapsible whitespace in InlineContentBreaker::processOverflowingContent
https://bugs.webkit.org/show_bug.cgi?id=232091
Reviewed by Antti Koivisto.
This patch ensures that the leading collapsible whitespace on the continuous run is taken
into account when checking if the otherwise overflowing content may fit the line.
e.g.
<span style="white-space: nowrap">no_wrap </span><span> yes_wrap</span>
The " yes_wrap" content has a collapsible leading whitespace here.
(This is also a preparation for fixing a regression and a WPT test.)
- layout/formattingContexts/inline/InlineContentBreaker.cpp:
(WebCore::Layout::isVisuallyEmptyWhitespaceContent):
(WebCore::Layout::InlineContentBreaker::processOverflowingContent const):
(WebCore::Layout::InlineContentBreaker::ContinuousContent::append):
(WebCore::Layout::InlineContentBreaker::ContinuousContent::reset):
- layout/formattingContexts/inline/InlineContentBreaker.h:
(WebCore::Layout::InlineContentBreaker::ContinuousContent::leadingCollapsibleWidth const):
(WebCore::Layout::InlineContentBreaker::ContinuousContent::trailingCollapsibleWidth const):
(WebCore::Layout::InlineContentBreaker::ContinuousContent::hasCollapsibleContent const):
(WebCore::Layout::InlineContentBreaker::ContinuousContent::isFullyCollapsible const):
(WebCore::Layout::InlineContentBreaker::ContinuousContent::collapsibleLogicalWidth const): Deleted.
(WebCore::Layout::InlineContentBreaker::ContinuousContent::nonCollapsibleLogicalWidth const): Deleted.
(WebCore::Layout::InlineContentBreaker::ContinuousContent::hasTrailingCollapsibleContent const): Deleted.
- 6:24 AM Changeset in webkit [284677] by
-
- 4 edits in trunk
FontCascade::widthForSimpleText fails to produce matching measured width for monospace font
https://bugs.webkit.org/show_bug.cgi?id=232104
<rdar://83991027>
Reviewed by Antti Koivisto.
Source/WebCore:
Adjust widthForSimpleText to match WidthIterator's logic as the comment says:
"This is needed only to match the result of the slow path
Same glyph widths but different floating point arithmetic can produce different run width."
(see r213008)
- platform/graphics/FontCascade.cpp:
(WebCore::FontCascade::widthForSimpleText const):
LayoutTests:
- platform/ios-wk2/TestExpectations:
- 3:05 AM Changeset in webkit [284676] by
-
- 4 edits in trunk
[GTK][a11y] Localized role name doesn't work with ATSPI enabled
https://bugs.webkit.org/show_bug.cgi?id=232136
Reviewed by Adrian Perez de Castro.
Source/WebCore:
I switched to use SortedArrayMap in AccessibilityAtspi::localizedRoleName() but I didn't realize the array was
not actually sorted. We just need to sort it for SortedArrayMap to work as expected.
- accessibility/atspi/AccessibilityAtspi.cpp:
Tools:
Add a few tests for localized role name.
- TestWebKitAPI/Tests/WebKitGtk/TestWebKitAccessibility.cpp:
(testAccessibleBasicHierarchy):
- 1:51 AM Changeset in webkit [284675] by
-
- 17 edits1 add in trunk
[GTK][a11y] Add implementation of text interface when building with ATSPI
https://bugs.webkit.org/show_bug.cgi?id=230258
Reviewed by Adrian Perez de Castro.
Source/WebCore:
- SourcesGTK.txt:
- accessibility/AXObjectCache.cpp:
(WebCore::AXObjectCache::postTextStateChangeNotification):
(WebCore::AXObjectCache::postTextReplacementNotification):
(WebCore::AXObjectCache::postTextReplacementNotificationForTextControl):
(WebCore::AXObjectCache::enqueuePasswordValueChangeNotification):
- accessibility/AXObjectCache.h:
- accessibility/AccessibilityObject.cpp:
(WebCore::AccessibilityObject::textIteratorBehaviorForTextRange const):
- accessibility/AccessibilityObject.h:
- accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::indexForVisiblePosition const):
- accessibility/atspi/AXObjectCacheAtspi.cpp:
(WebCore::AXObjectCache::postTextStateChangePlatformNotification):
(WebCore::AXObjectCache::postTextReplacementPlatformNotificationForTextControl):
(WebCore::AXObjectCache::postTextReplacementPlatformNotification):
(WebCore::AXObjectCache::nodeTextChangePlatformNotification): Deleted.
- accessibility/atspi/AccessibilityAtspi.cpp:
(WebCore::AccessibilityAtspi::textChanged):
(WebCore::AccessibilityAtspi::textAttributesChanged):
(WebCore::AccessibilityAtspi::textCaretMoved):
(WebCore::AccessibilityAtspi::textSelectionChanged):
- accessibility/atspi/AccessibilityAtspi.h:
- accessibility/atspi/AccessibilityAtspiEnums.h:
- accessibility/atspi/AccessibilityObjectAtspi.cpp:
(WebCore::roleIsTextType):
(WebCore::AccessibilityObjectAtspi::interfacesForObject):
(WebCore::AccessibilityObjectAtspi::path):
(WebCore::AccessibilityObjectAtspi::buildInterfaces const):
- accessibility/atspi/AccessibilityObjectAtspi.h:
- accessibility/atspi/AccessibilityObjectTextAtspi.cpp: Added.
(WebCore::AccessibilityObjectAtspi::atspiBoundaryToTextGranularity):
(WebCore::AccessibilityObjectAtspi::atspiGranularityToTextGranularity):
(WebCore::offsetMapping):
(WebCore::UTF16OffsetToUTF8):
(WebCore::UTF8OffsetToUTF16):
(WebCore::AccessibilityObjectAtspi::text const):
(WebCore::AccessibilityObject::getLengthForTextRange const):
(WebCore::AccessibilityObject::allowsTextRanges const):
(WebCore::AccessibilityObjectAtspi::textInserted):
(WebCore::AccessibilityObjectAtspi::textDeleted):
(WebCore::AccessibilityObjectAtspi::boundaryOffset const):
(WebCore::AccessibilityObjectAtspi::textAtOffset const):
(WebCore::AccessibilityObjectAtspi::characterAtOffset const):
(WebCore::AccessibilityObjectAtspi::boundsForRange const):
(WebCore::AccessibilityObjectAtspi::textExtents const):
(WebCore::AccessibilityObjectAtspi::offsetAtPoint const):
(WebCore::AccessibilityObjectAtspi::boundsForSelection const):
(WebCore::AccessibilityObjectAtspi::selectedRange const):
(WebCore::AccessibilityObjectAtspi::selectionBounds const):
(WebCore::AccessibilityObjectAtspi::setSelectedRange):
(WebCore::AccessibilityObjectAtspi::selectRange):
(WebCore::AccessibilityObjectAtspi::selectionChanged):
(WebCore::AccessibilityObjectAtspi::textAttributes const):
(WebCore::AccessibilityObjectAtspi::textAttributesWithUTF8Offset const):
(WebCore::AccessibilityObjectAtspi::textAttributesChanged):
(WebCore::AccessibilityObjectAtspi::scrollToMakeVisible const):
(WebCore::AccessibilityObjectAtspi::scrollToPoint const):
- editing/atspi/FrameSelectionAtspi.cpp:
(WebCore::FrameSelection::notifyAccessibilityForSelectionChange):
- html/HTMLTextFormControlElement.cpp:
(WebCore::HTMLTextFormControlElement::setInnerTextValue):
Tools:
Add unit tests for the text interface.
- TestWebKitAPI/Tests/WebKitGtk/TestWebKitAccessibility.cpp:
(AtspiTextRangeDeleter::operator() const):
(AccessibilityTest::startEventMonitor):
(AccessibilityTest::stopEventMonitor):
(AccessibilityTest::findEvent):
(testTextBasic):
(testTextSurrogatePair):
(testTextIterator):
(testTextExtents):
(testTextSelections):
(testTextAttributes):
(testTextStateChanged):
(beforeAll):
- 1:44 AM Changeset in webkit [284674] by
-
- 18 edits in trunk/Source
Audio over peer connection becomes latent when changing the output
https://bugs.webkit.org/show_bug.cgi?id=231110
<rdar://problem/84049005>
Reviewed by Eric Carlson.
Source/WebCore:
Add support for detecting change of timeline by looking at sample times. This happens when changing audio output.
Make AudioMediaStreamTrackRendererInternalUnit call a callback to let the unit deal with it.
When switching output, audio data is kept growing but is not read for some time by the remote unit, even though the remote unit is running.
The unit can ask its sources to update their offset to not keep extra buffered data.
Manually tested.
- platform/audio/cocoa/AudioSampleDataSource.h:
- platform/mediastream/cocoa/AudioMediaStreamTrackRendererCocoa.cpp:
- platform/mediastream/cocoa/AudioMediaStreamTrackRendererCocoa.h:
- platform/mediastream/cocoa/AudioMediaStreamTrackRendererInternalUnit.cpp:
- platform/mediastream/cocoa/AudioMediaStreamTrackRendererInternalUnit.h:
- platform/mediastream/cocoa/AudioMediaStreamTrackRendererUnit.cpp:
- platform/mediastream/cocoa/AudioMediaStreamTrackRendererUnit.h:
Source/WebKit:
When detecting an audio timeline change, send it from GPUProcess to WebProcess.
Let the WebProcess reset the sources to properly restart.
- GPUProcess/webrtc/RemoteAudioMediaStreamTrackRendererInternalUnitManager.cpp:
- WebProcess/GPU/GPUProcessConnection.cpp:
- WebProcess/GPU/GPUProcessConnection.h:
- WebProcess/GPU/GPUProcessConnection.messages.in:
- WebProcess/GPU/webrtc/AudioMediaStreamTrackRendererInternalUnitManager.cpp:
- WebProcess/GPU/webrtc/AudioMediaStreamTrackRendererInternalUnitManager.h:
- WebProcess/WebProcess.cpp:
- WebProcess/cocoa/UserMediaCaptureManager.cpp:
- 1:44 AM Changeset in webkit [284673] by
-
- 9 edits1 move in trunk
.:
Enable logging under non-systemd linux distros
https://bugs.webkit.org/show_bug.cgi?id=232080
Patch by Pablo Correa Gómez <ablocorrea@hotmail.com> on 2021-10-22
Reviewed by Michael Catanzaro.
- Source/cmake/FindJournald.cmake: Renamed from Source/cmake/FindSystemd.cmake.
- Source/cmake/OptionsGTK.cmake: Replace USE_SYSTEMD for
ENABLE_JOURNALD_LOG
- Source/cmake/OptionsWPE.cmake: Replace USE_SYSTEMD for
ENABLE_JOURNALD_LOG
Source/WTF:
Enable logging in under non-systemd linux distros
https://bugs.webkit.org/show_bug.cgi?id=232080
Patch by Pablo Correa Gómez <ablocorrea@hotmail.com> on 2021-10-22
Reviewed by Michael Catanzaro.
- wtf/Assertions.h: Rename USE(JOURNALD) to ENABLE(JOURNALD_LOG)
- wtf/Logger.h:
(WTF::Logger::willLog const): Rename USE(JOURNALD) to
ENABLE(JOURNALD_LOG)
- wtf/PlatformGTK.cmake: Use renamed Journald library
- wtf/PlatformWPE.cmake: Use renamed Journald library
- 1:19 AM Changeset in webkit [284672] by
-
- 3 edits in trunk/Source/WebCore
Remove Style::Resolver::m_isDeleted
https://bugs.webkit.org/show_bug.cgi?id=232089
Reviewed by Kimmo Kinnunen.
Not useful anymore.
- style/StyleResolver.cpp:
(WebCore::Style::Resolver::~Resolver):
(WebCore::Style::Resolver::styleForElement):
(WebCore::Style::Resolver::styleForKeyframe):
(WebCore::Style::Resolver::styleForPage):
- style/StyleResolver.h:
- 1:18 AM Changeset in webkit [284671] by
-
- 3 edits in trunk/Source/WebKit
StreamConnectionWorkQueue is not thread-safe
https://bugs.webkit.org/show_bug.cgi?id=232068
Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2021-10-22
Reviewed by Wenson Hsieh.
Make StreamConnectionWorkQueue thread-safe so that
addStreamConnection works from multiple threads.
In the future, this will be called when a new RemoteDisplayListRecorder is
added during the StreamConnectionWorkQueue message processing
invocation for RemoteRenderingBackend::createRemoteImageBuffer.
- Platform/IPC/StreamConnectionWorkQueue.cpp:
(IPC::StreamConnectionWorkQueue::~StreamConnectionWorkQueue):
(IPC::StreamConnectionWorkQueue::dispatch):
(IPC::StreamConnectionWorkQueue::addStreamConnection):
(IPC::StreamConnectionWorkQueue::removeStreamConnection):
Change semantics so that adding and removing connections during
shutdown is ok. This is required for simpler code since
during stop we must dispatch all pending messages, but during
message code we might have unconditional start listening when
the message creates a new RemoteDisplayListRecorder.
As a consequence it's not an error to add a connection,
stop and destroy the work queue without removing it.
(IPC::StreamConnectionWorkQueue::stop):
(IPC::StreamConnectionWorkQueue::startProcessingThread):
(IPC::StreamConnectionWorkQueue::wakeUpProcessingThread): Deleted.
- Platform/IPC/StreamConnectionWorkQueue.h:
- 1:07 AM Changeset in webkit [284670] by
-
- 3 edits in trunk/Source/WebCore
[GTK] Rewrite LowPowerModeNotifier to use GPowerProfileMonitor
https://bugs.webkit.org/show_bug.cgi?id=231958
Reviewed by Carlos Garcia Campos.
This replaces the previous direct use of UPower with some advantages:
- Fixes support while being sandboxed without UPower DBus access
- Respects a system-wide low power mode rather than only being enabled when the battery is low
I decided to remove the old behavior entirely as it is a very
different behavior than the new one and subjectively worse.
- platform/LowPowerModeNotifier.h:
- platform/glib/LowPowerModeNotifierGLib.cpp:
(WebCore::LowPowerModeNotifier::LowPowerModeNotifier):
(WebCore::LowPowerModeNotifier::powerSaverEnabledNotifyCallback):
(WebCore::LowPowerModeNotifier::~LowPowerModeNotifier):
- 12:35 AM Changeset in webkit [284669] by
-
- 9 edits2 adds in trunk
WebGL low-power and high-performance contexts should use different ANGLE Metal EGLDisplays
https://bugs.webkit.org/show_bug.cgi?id=231012
<rdar://problem/83971417>
Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2021-10-22
Reviewed by Dean Jackson.
Source/WebCore:
Use per-power preference EGLDisplay when creating Metal
contexts.
Adds a new API test.
- platform/RuntimeApplicationChecks.cpp:
(WebCore::setAuxiliaryProcessTypeForTesting):
- platform/RuntimeApplicationChecks.h:
Add a test function to reset the process type after test has set a specific type and then
run to completion. process for the duration of the test. The volatile context flag in
GraphicsContextGLOpenGL depends on condition isWebProcess isGPUProcess. - platform/graphics/angle/GraphicsContextGLANGLE.cpp:
(WebCore::GraphicsContextGLOpenGL::releaseThreadResources):
- platform/graphics/cocoa/GraphicsContextGLOpenGLCocoa.mm:
(WebCore::initializeEGLDisplay):
(WebCore::GraphicsContextGLOpenGL::GraphicsContextGLOpenGL):
(WebCore::GraphicsContextGLOpenGL::setContextVisibility):
(WebCore::GraphicsContextGLOpenGL::displayWasReconfigured):
- platform/graphics/opengl/GraphicsContextGLOpenGL.h:
Tools:
Add a API test to test GraphicsContextGLOpenGL
Cocoa implementation regarding the bug where
the GraphicsContextGLOpenGL instances would use
the GPU that was selected by the first instance.
- TestWebKitAPI/Configurations/TestWebKitAPI.xcconfig:
- TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
- TestWebKitAPI/Tests/WebCore/cocoa/TestGraphicsContextGLOpenGLCocoa.mm: Added.
(TestWebKitAPI::WebCore::TestedGraphicsContextGLOpenGL::create):
(TestWebKitAPI::WebCore::TestedGraphicsContextGLOpenGL::TestedGraphicsContextGLOpenGL):
(TestWebKitAPI::hasMultipleGPUs):
(TestWebKitAPI::TEST):
- TestWebKitAPI/WebCoreUtilities.h: Added.
(TestWebKitAPI::ScopedSetAuxiliaryProcessTypeForTesting::ScopedSetAuxiliaryProcessTypeForTesting):
(TestWebKitAPI::ScopedSetAuxiliaryProcessTypeForTesting::~ScopedSetAuxiliaryProcessTypeForTesting):
Add a utility state setter to set the process type for the
duration of a test.
- 12:19 AM Changeset in webkit [284668] by
-
- 3 edits in trunk/Source/JavaScriptCore
Remove unneeded Heap::m_vm.
https://bugs.webkit.org/show_bug.cgi?id=232132
Reviewed by Yusuke Suzuki.
Heap::vm() already computes the associated VM& using offset math. This entails
subtracting a constant from Heap's this pointer, which is faster than loading from
a field.
- heap/Heap.cpp:
(JSC::Heap::Heap):
(JSC::Heap::lastChanceToFinalize):
(JSC::Heap::releaseDelayedReleasedObjects):
(JSC::Heap::protect):
(JSC::Heap::unprotect):
(JSC::Heap::finalizeUnconditionalFinalizers):
(JSC::Heap::completeAllJITPlans):
(JSC::Heap::iterateExecutingAndCompilingCodeBlocks):
(JSC::Heap::gatherJSStackRoots):
(JSC::Heap::gatherScratchBufferRoots):
(JSC::Heap::removeDeadCompilerWorklistEntries):
(JSC::Heap::gatherExtraHeapData):
(JSC::Heap::deleteAllCodeBlocks):
(JSC::Heap::deleteAllUnlinkedCodeBlocks):
(JSC::Heap::finishChangingPhase):
(JSC::Heap::collectInMutatorThread):
(JSC::Heap::finishRelinquishingConn):
(JSC::Heap::deleteSourceProviderCaches):
(JSC::Heap::didFinishCollection):
(JSC::Heap::isValidAllocation):
(JSC::Heap::addCoreConstraints):
- heap/Heap.h: