Timeline



Sep 9, 2021:

11:42 PM Changeset in webkit [282261] by mmaxfield@apple.com
  • 3 edits
    2 adds in trunk

FontFaceSet.load() needs to react to style changes
https://bugs.webkit.org/show_bug.cgi?id=230132

Reviewed by Antti Koivisto.

LayoutTests/imported/w3c:

This test is being upstreamed in https://github.com/web-platform-tests/wpt/pull/30491

  • web-platform-tests/css/css-font-loading/fontfaceset-load-css-connected-expected.txt: Added.
  • web-platform-tests/css/css-font-loading/fontfaceset-load-css-connected.html: Added.

Source/WebCore:

If content does something like
let fonts = document.fonts;
... modify style sheets ...
fonts.load(...)

The load() function needs to see the result of hte style sheet modification.

Test: imported/w3c/web-platform-tests/css/css-font-loading/fontfaceset-load-css-connected.html

  • css/FontFaceSet.cpp:

(WebCore::FontFaceSet::load):

11:41 PM Changeset in webkit [282260] by commit-queue@webkit.org
  • 3 edits
    4 adds in trunk

Nullptr crash in CompositeEditCommand::splitTreeToNode via InsertParagraphSeparatorCommand::doApply
https://bugs.webkit.org/show_bug.cgi?id=229276

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

Source/WebCore:

The loop in CompositeEditCommand::splitTreeToNode calls splitElement with the parent node as an
argument. This patch fixes a nullptr crash by following the rule of [1]: store the parent node as
a local smart pointer. Additionally, it ensures that editingIgnoresContent() returns false on the
parent so that the corresponding ASSERT in Position's constructor does not fail when
firstPositionInNode is called.

[1] https://lists.webkit.org/pipermail/webkit-dev/2020-September/031386.html

Tests: editing/execCommand/indent-input-in-image-crash.html

editing/execCommand/indent-input-in-image-editing-ignores-content-assert.html

  • editing/CompositeEditCommand.cpp:

(WebCore::CompositeEditCommand::moveParagraphs): Store parent node in a smart pointer and exit loop
if it returns true for editingIgnoresContent.

LayoutTests:

Add regression tests for a crash and an assert in CompositeEditCommand::splitTreeToNode.

  • editing/execCommand/indent-input-in-image-crash-expected.txt: Added.
  • editing/execCommand/indent-input-in-image-crash.html: Added.
  • editing/execCommand/indent-input-in-image-editing-ignores-content-assert-expected.txt: Added.
  • editing/execCommand/indent-input-in-image-editing-ignores-content-assert.html: Added.
10:38 PM Changeset in webkit [282259] by Ross Kirsling
  • 9 edits in trunk/Source/JavaScriptCore

[JSC] Clean up current state of Temporal API
https://bugs.webkit.org/show_bug.cgi?id=230130

Reviewed by Yusuke Suzuki.

This patch perfoms a variety of cleanup tasks following the implementation of Temporal.PlainTime.

  1. Do away with the alias Subdurations and refer to ISO8601::Duration directly. (But we can still say "subduration" when referring to a single ordered field, as in largestSubduration.)
  2. Represent ToTemporalDuration, ToTemporalDurationRecord, and ToLimitedTemporalDuration more directly in code, as TemporalDuration::{toTemporalDuration, fromDurationLike, toISO8601Duration}. (Note: The last of these doesn't take a disallowedFields parameter;

Temporal.Instant can do this after the fact, since no one else makes use of this functionality.)

  1. Extract intlOption<RoundingMode> into a helper function, temporalRoundingMode.
  2. Remove largestSubplainTime(), which was declared but not defined.
  3. Correct spelling of TemporalPlainTime::constrainTime().
  • runtime/TemporalDuration.cpp:

(JSC::TemporalDuration::create):
(JSC::TemporalDuration::TemporalDuration):
(JSC::TemporalDuration::tryCreateIfValid):
(JSC::TemporalDuration::fromDurationLike): Added.
(JSC::TemporalDuration::toISO8601Duration): Added.
(JSC::TemporalDuration::toTemporalDuration): Added.
(JSC::TemporalDuration::from):
(JSC::totalNanoseconds):
(JSC::TemporalDuration::compare):
(JSC::TemporalDuration::sign):
(JSC::TemporalDuration::with const):
(JSC::TemporalDuration::negated const):
(JSC::TemporalDuration::abs const):
(JSC::largestSubduration): Added.
(JSC::TemporalDuration::balance):
(JSC::TemporalDuration::add const):
(JSC::TemporalDuration::subtract const):
(JSC::TemporalDuration::round):
(JSC::TemporalDuration::round const):
(JSC::TemporalDuration::total const):
(JSC::TemporalDuration::toString const):
(JSC::TemporalDuration::toString):
(JSC::TemporalDuration::fromNonDurationValue): Deleted.
(JSC::TemporalDuration::toDuration): Deleted.
(JSC::TemporalDuration::toDurationRecord): Deleted.
(JSC::TemporalDuration::largestSubduration const): Deleted.

  • runtime/TemporalDuration.h:
  • runtime/TemporalDurationConstructor.cpp:
  • runtime/TemporalDurationPrototype.cpp:
  • runtime/TemporalObject.cpp:

(JSC::temporalRoundingMode): Added.

  • runtime/TemporalObject.h:
  • runtime/TemporalPlainTime.cpp:

(JSC::TemporalPlainTime::round const):
(JSC::TemporalPlainTime::toString const):
(JSC::constrainTime): Added.
(JSC::regulateTime):
(JSC::TemporalPlainTime::add const):
(JSC::TemporalPlainTime::subtract const):
(JSC::extractDifferenceOptions):
(JSC::constraintTime): Deleted.
(JSC::toLimitedTemporalDuration): Deleted.

  • runtime/TemporalPlainTime.h:
8:56 PM Changeset in webkit [282258] by commit-queue@webkit.org
  • 8 edits in trunk/Source/WebKit

Modernize CertificateInfo decoder
https://bugs.webkit.org/show_bug.cgi?id=230125

Patch by Alex Christensen <achristensen@webkit.org> on 2021-09-09
Reviewed by Chris Dumez.

Return std::optional instead of bool.

  • Shared/WebCoreArgumentCoders.cpp:
  • Shared/WebCoreArgumentCoders.h:
  • Shared/cf/ArgumentCodersCF.cpp:

(IPC::ArgumentCoder<RetainPtr<CFTypeRef>>::decode):
(IPC::ArgumentCoder<RetainPtr<CFArrayRef>>::decode):
(IPC::ArgumentCoder<RetainPtr<CFBooleanRef>>::decode):
(IPC::ArgumentCoder<RetainPtr<CFDataRef>>::decode):
(IPC::ArgumentCoder<RetainPtr<CFDateRef>>::decode):
(IPC::ArgumentCoder<RetainPtr<CFDictionaryRef>>::decode):
(IPC::ArgumentCoder<RetainPtr<CFNumberRef>>::decode):
(IPC::ArgumentCoder<RetainPtr<CFStringRef>>::decode):
(IPC::ArgumentCoder<RetainPtr<CFURLRef>>::decode):
(IPC::ArgumentCoder<RetainPtr<CGColorSpaceRef>>::decode):
(IPC::ArgumentCoder<RetainPtr<SecCertificateRef>>::decode):
(IPC::ArgumentCoder<RetainPtr<SecKeychainItemRef>>::decode):
(IPC::ArgumentCoder<RetainPtr<SecAccessControlRef>>::decode):
(IPC::ArgumentCoder<RetainPtr<SecTrustRef>>::decode):

  • Shared/cf/ArgumentCodersCF.h:
  • Shared/curl/WebCoreArgumentCodersCurl.cpp:

(IPC::ArgumentCoder<CertificateInfo>::decode):

  • Shared/mac/WebCoreArgumentCodersMac.mm:

(IPC::ArgumentCoder<WebCore::CertificateInfo>::decode):

  • Shared/soup/WebCoreArgumentCodersSoup.cpp:

(IPC::ArgumentCoder<CertificateInfo>::decode):

8:23 PM Changeset in webkit [282257] by ysuzuki@apple.com
  • 6 edits in trunk

[JSC] Intl.Locale weekendInfo should list all weekend days instead of range
https://bugs.webkit.org/show_bug.cgi?id=230108

Reviewed by Ross Kirsling.

JSTests:

  • stress/intl-locale-info.js:

(throw.new.Error):
(let.enGB.new.Intl.Locale.shouldBe): Deleted.

  • test262/config.yaml:

Source/JavaScriptCore:

We cannot assume that weekend is contiguous. For example, Burnei's weekend is Friday and Sunday.
This is raised in [1], and our conclusion in Sep-9 meeting is that we should have an array which
includes all the weekend days. The change is merged in [2], and this patch changes our implementation
accordingly.

[1]: https://github.com/tc39/proposal-intl-locale-info/issues/25
[2]: https://github.com/tc39/proposal-intl-locale-info/commit/afb1e269dd698476a2514129235cdad88af60e6f

  • runtime/IntlLocale.cpp:

(JSC::IntlLocale::weekInfo):

  • runtime/IntlObjectInlines.h:

(JSC::createArrayFromIntVector):

8:04 PM Changeset in webkit [282256] by Alan Bujtas
  • 16 edits
    2 adds in trunk

[Table layout] Incorrect vertical position when the inline level box has 0px used height.
https://bugs.webkit.org/show_bug.cgi?id=230118

Reviewed by Antti Koivisto.

Source/WebCore:

Intrinsic padding is used in table cells to offset the content with their alignments as the content box may not be as tall as the cell itself.
This patch ensures that zero height content (where the baseline is also 0) gets the alignment offset as well.
(This patch also fixes the bug where we may reset the intrinsic padding to 0 on subsequent layouts.)

Test: fast/table/vertical-position-with-0-height-box.html

  • rendering/RenderTableCell.cpp:

(WebCore::RenderTableCell::computeIntrinsicPadding):

LayoutTests:

  • fast/table/vertical-position-with-0-height-box-expected.txt: Added.
  • fast/table/vertical-position-with-0-height-box.html: Added.
7:25 PM Changeset in webkit [282255] by Fujii Hironori
  • 3 edits in trunk/LayoutTests

[WinCairo] Unreviewed test gardening

  • platform/wincairo-wk1/TestExpectations:
  • platform/wincairo/TestExpectations:
6:00 PM Changeset in webkit [282254] by Simon Fraser
  • 4 edits in trunk/Tools

Fix some lldb data provider issues
https://bugs.webkit.org/show_bug.cgi?id=230134

Reviewed by Daniel Bates.

Fix the color data provider. Add a test for the URL provider. Add an
early return in lstring_to_string that fixed an error.

  • lldb/lldbWebKitTester/main.cpp:

(testSummaryProviders):

  • lldb/lldb_webkit.py:

(lstring_to_string):
(WebCoreColorProvider):
(WebCoreColorProvider._is_outOfLine):
(WebCoreColorProvider._is_valid):
(WebCoreColorProvider._is_semantic):
(WebCoreColorProvider._color_space):
(WebCoreColorProvider._flags):
(WebCoreColorProvider._to_string_outOfLine):
(WebCoreColorProvider.to_string):
(WebCoreColorProvider._is_extended): Deleted.
(WebCoreColorProvider._to_string_extended): Deleted.

  • lldb/lldb_webkit_unittest.py:

(TestSummaryProviders):
(TestSummaryProviders.serial_test_WTFURL_SummaryProvider):

5:37 PM Changeset in webkit [282253] by Diego Pino Garcia
  • 3 edits in trunk/Source/WebCore

Build fix for Ubuntu LTS and Debian after r282211

Some functions need to be guarded by ENABLE(LAYOUT_FORMATTING_CONTEXT)

  • layout/integration/LayoutIntegrationRunIterator.cpp:
  • layout/integration/LayoutIntegrationRunIterator.h:
5:28 PM Changeset in webkit [282252] by Ben Nham
  • 7 edits in trunk/Source/WebKit

Preconnected socket is sometimes not used for initial request
https://bugs.webkit.org/show_bug.cgi?id=229686

Reviewed by Alex Christensen.

In the previous release, we preconnected to the main resource origin early in page load from
UIProcess to save ~10-15 ms per page load (https://bugs.webkit.org/show_bug.cgi?id=204992).
The savings comes from the fact that there's some latency in initiating the request in
WebProcess and waiting for the nav delegate reply in UIProcess. We hide that latency by
having the eventual main resource request reuse the early preconnected socket.

However, this optimization doesn't work for connections to known HTTP/1.1 origins due to
CFNetwork's in-memory cache of known HTTP/1.1 origins. If an origin is in this cache, and
a preconnect is still in flight, then the network stack will go wide immediately and issue
the main resource request on a new socket rather than trying to wait for the preconnect to
finish and reuse the preconnected socket. Thus the preconneted socket just goes to waste.
This can also cause issues with single-threaded web servers that serve only one request at
a time, as the main resource request can get head-of-line blocked by the preconnect that
is wasted.

To work around this, this patch tracks a small number of known HTTP/1.1 origins in memory.
If there is a pending preconnect to an HTTP/1.1 origin and a main resource request to that
origin comes in, then we block the request from going out until the preconnect finishes.
This allows the main resource request to utilize the preconnected socket.

This is worth ~1.25%-2.5% on PLT5 depending on device.

  • NetworkProcess/NetworkLoad.cpp:

(WebKit::NetworkLoad::didCompleteWithError):

  • NetworkProcess/NetworkLoadScheduler.cpp:

(WebKit::NetworkLoadScheduler::schedule):
(WebKit::NetworkLoadScheduler::unschedule):
(WebKit::NetworkLoadScheduler::scheduleLoad):
(WebKit::NetworkLoadScheduler::unscheduleLoad):
(WebKit::NetworkLoadScheduler::scheduleMainResourceLoad):
(WebKit::NetworkLoadScheduler::unscheduleMainResourceLoad):
(WebKit::NetworkLoadScheduler::startedPreconnectForMainResource):
(WebKit::NetworkLoadScheduler::finishedPreconnectForMainResource):
(WebKit::NetworkLoadScheduler::maybePrunePreconnectInfo):
(WebKit::NetworkLoadScheduler::isOriginHTTP1X):
(WebKit::NetworkLoadScheduler::updateOriginProtocolInfo):

  • NetworkProcess/NetworkLoadScheduler.h:
  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::preconnectTo):

  • NetworkProcess/PreconnectTask.cpp:

(WebKit::PreconnectTask::PreconnectTask):
(WebKit::PreconnectTask::setTimeout):
(WebKit::PreconnectTask::start):

  • NetworkProcess/PreconnectTask.h:
5:25 PM Changeset in webkit [282251] by Alan Coon
  • 1 copy in tags/Safari-613.1.1.1

Tag Safari-613.1.1.1.

5:22 PM Changeset in webkit [282250] by Alan Coon
  • 8 edits in branches/safari-613.1.1-branch/Source

Versioning.

WebKit-7613.1.1.1

5:22 PM Changeset in webkit [282249] by Alan Coon
  • 8 edits in branches/safari-613.1.1-branch/Source

Revert "Versioning."

This reverts commit 765adb97dc4963500c9371cb6b2e8a4ce04de13f.

5:20 PM Changeset in webkit [282248] by Alan Coon
  • 8 edits in branches/safari-613.1.1-branch/Source

Versioning.

WebKit-7613.1.2

5:15 PM Changeset in webkit [282247] by Wenson Hsieh
  • 5 edits in trunk

[Mac Catalyst] Korean characters do not combine correctly in editable fields in WKWebView
https://bugs.webkit.org/show_bug.cgi?id=230122
rdar://79062204

Reviewed by Devin Rousso.

Source/WebKit:

When using Korean input method (e.g. 2-set Korean) to type into editable input fields in WKWebView on Catalyst,
character combination is broken. While this is partly due to a WebKit-specific UIKit bug (see rdar://82938391),
this is also broken due to the fact that WKContentView reports a UIWKAutocorrectionContext with a
contextBeforeSelection that starts with a newline (\n); this causes UIKit to believe that the text selection
range when a single character has been typed is NSRange { 2, 0 } instead of NSRange { 1, 0 }, due to the
extra newline. This subsequently causes character combination logic to proceed with a range that is off by one
character, which leads to characters not being combined (or the wrong characters being combined).

To address this, we simply avoid including the leading newline in the case where the starting position for the
"context before selection" is exactly at the first position inside the editable root.

Test: AutocorrectionTests.AutocorrectionContextDoesNotIncludeNewlineInTextField

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::autocorrectionContext):

Also drive-by fix a typo in "minContextLenght" while I'm here, and rename currentPosition to
contextStartPosition, to better describe the purpose of this local variable.

Tools:

Add a new API test to exercise the change. See WebKit/ChangeLog for more information.

  • TestWebKitAPI/Tests/ios/AutocorrectionTestsIOS.mm:

(-[TestWKWebView synchronouslyRequestAutocorrectionContext]):
(TEST):

  • TestWebKitAPI/ios/UIKitSPI.h:
5:01 PM Changeset in webkit [282246] by Chris Dumez
  • 2 edits in trunk/Source/WTF

Unreviewed follow-up to r282105.

Add description for "BroadcastChannel Origin Partitioning" experimental feature.

  • Scripts/Preferences/WebPreferencesExperimental.yaml:
4:55 PM Changeset in webkit [282245] by Chris Dumez
  • 2 edits in trunk/Source/WTF

Unreviewed, follow-up after r282007

Somehow, the wrong settings got enabled by the patch landed.

  • Scripts/Preferences/WebPreferencesExperimental.yaml:
4:49 PM Changeset in webkit [282244] by Ayumi Kojima
  • 2 edits in trunk/LayoutTests

[ iOS ] editing/selection/ios/select-text-under-hidden-subframe.html is timing out.
https://bugs.webkit.org/show_bug.cgi?id=230127#c4

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
4:48 PM Changeset in webkit [282243] by Russell Epstein
  • 5 edits
    4 adds in branches/safari-612-branch

Cherry-pick r281792. rdar://problem/82949614

[Cocoa] Drawing system fallback fonts to canvas causes a crash
https://bugs.webkit.org/show_bug.cgi?id=229633
<rdar://problem/81889036>

Reviewed by Wenson Hsieh.

Source/WebCore/PAL:

  • pal/spi/cf/CoreTextSPI.h:

Source/WebKit:

Dot-prefixed font names don't survive the round-trip through
CTFontDescriptorCopyAttributes(CTFontCopyFontDescriptor(font)) unless you also
pass in the kCTFontOptionsSystemUIFont option.

Tests: fast/text/system-fallback-canvas.html

fast/text/draw-synthetic-system-bold-font-into-canvas.html

  • Shared/Cocoa/WebCoreArgumentCodersCocoa.mm: (IPC::createCTFont): (IPC::ArgumentCoder<Ref<WebCore::Font>>::decodePlatformData):

LayoutTests:

  • fast/text/system-fallback-canvas-expected.txt: Added.
  • fast/text/system-fallback-canvas.html: Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@281792 268f45cc-cd09-0410-ab3c-d52691b4dbfc

4:39 PM Changeset in webkit [282242] by Darin Adler
  • 37 edits in trunk/Source

Improve performance by using StringView, not "const StringView&"
https://bugs.webkit.org/show_bug.cgi?id=229834

Reviewed by Anders Carlsson.

Source/JavaScriptCore:

  • parser/Lexer.h:
  • runtime/IntlDateTimeFormat.cpp:

(JSC::IntlDateTimeFormat::setFormatsFromPattern):

  • runtime/IntlDateTimeFormat.h:

Use StringView, not const StringView&.

Source/WebCore:

  • html/BaseDateAndTimeInputType.h:
  • html/DateInputType.cpp:

(WebCore::DateInputType::parseToDateComponents const):

  • html/DateInputType.h:
  • html/DateTimeLocalInputType.cpp:

(WebCore::DateTimeLocalInputType::parseToDateComponents const):

  • html/DateTimeLocalInputType.h:
  • html/MonthInputType.cpp:

(WebCore::MonthInputType::parseToDateComponents const):

  • html/MonthInputType.h:
  • html/TimeInputType.cpp:

(WebCore::TimeInputType::parseToDateComponents const):

  • html/TimeInputType.h:
  • html/WeekInputType.cpp:

(WebCore::WeekInputType::parseToDateComponents const):

  • html/WeekInputType.h:
  • html/parser/HTMLParserIdioms.cpp:

(WebCore::parseMetaHTTPEquivRefresh):

  • html/parser/HTMLParserIdioms.h:
  • html/parser/HTMLSrcsetParser.h:
  • layout/formattingContexts/inline/InlineTextItem.cpp:

(WebCore::Layout::moveToNextNonWhitespacePosition):

  • layout/layouttree/LayoutTreeBuilder.cpp:

(WebCore::Layout::canUseSimplifiedTextMeasuring):

  • mathml/MathMLPresentationElement.cpp:

(WebCore::MathMLPresentationElement::parseNumberAndUnit):
(WebCore::MathMLPresentationElement::parseNamedSpace):

  • mathml/MathMLPresentationElement.h:
  • page/Quirks.cpp:

(WebCore::shouldSuppressAutocorrectionAndAutocaptializationInHiddenEditableAreasForHost):

  • platform/graphics/FontCascade.cpp:

(WebCore::FontCascade::expansionOpportunityCount):
(WebCore::FontCascade::leftExpansionOpportunity):
(WebCore::FontCascade::rightExpansionOpportunity):

  • platform/graphics/FontCascade.h:
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:

(WebCore::conformFragmentIdentifierForURL):

  • rendering/LegacyLineLayout.cpp:

(WebCore::LegacyLineLayout::computeInlineDirectionPositionsForSegment):

  • svg/SVGParserUtilities.cpp:

(WebCore::parseNumber):
(WebCore::parseNumberOptionalNumber):
(WebCore::parsePoint):
(WebCore::parseRect):
(WebCore::parseGlyphName):
(WebCore::parseKerningUnicodeString):

  • svg/SVGParserUtilities.h:

Use StringView, not const StringView&.

Source/WTF:

Since StringView is a small structure that fits into two registers, it's not
good to pass a pointer to it; better performance to pass it by value. Note
that this is for release builds, not debug builds where StringView has
significant additional overhead when copying.

  • wtf/PrintStream.cpp:

(WTF::printInternal):

  • wtf/PrintStream.h:
  • wtf/text/StringConcatenate.h:
  • wtf/text/StringView.cpp:

(WTF::StringView::containsIgnoringASCIICase const):
(WTF::StringView::findIgnoringASCIICase const):
(WTF::StringView::startsWith const):
(WTF::StringView::startsWithIgnoringASCIICase const):
(WTF::StringView::endsWith const):
(WTF::StringView::endsWithIgnoringASCIICase const):
(WTF::StringView::GraphemeClusters::Iterator::Impl::Impl):
(WTF::StringView::GraphemeClusters::Iterator::Iterator):

  • wtf/text/StringView.h:
  • wtf/text/WTFString.h:

Use StringView, not const StringView&.

3:24 PM Changeset in webkit [282241] by Chris Dumez
  • 3 edits in trunk/Source/WebCore

Potential crash under CachedRawResource::didAddClient()
https://bugs.webkit.org/show_bug.cgi?id=230121
<rdar://82936913>

Reviewed by Alex Christensen.

In r280083, I tried to address this crash by holding a strong reference
to the SharedBuffer before calling forEachSegment() on it. However, the
crash is still happening after this fix.

My suspicion is that the SharedBuffer's internal m_segments vector gets
modified as we iterate over it. As a result, I am reverting r280083 and
iterating over a copy of m_segments in forEachSegment() instead.

No new tests, we haven't been able to reproduce.

  • WebCore.xcodeproj/project.pbxproj:
  • loader/cache/CachedRawResource.cpp:

(WebCore::CachedRawResource::didAddClient):

  • platform/SharedBuffer.cpp:

(WebCore::SharedBuffer::forEachSegment const):

2:57 PM Changeset in webkit [282240] by Russell Epstein
  • 2 edits in branches/safari-612-branch/Source/WebCore

Cherry-pick r281648. rdar://problem/82944435

REGRESSION(r256659): We try to remove fonts from the CSSFontFace which were never added
https://bugs.webkit.org/show_bug.cgi?id=229535
<rdar://problem/78857440>

Reviewed by Darin Adler.

After r256659, asking for a failed CSSFontFace's families() returns nullopt. It's possible to add
a failed font to a CSSFontFaceSet (of course). When we do that, we recognize the font is failed
and don't update our internal data structures, because there's no need to - we can't do anything
useful with a failed font.

If you _then_ try to remove the font from the CSSFontFace, we don't call families(), but instead
just pull out the raw m_families member, and look in our internal data structures for it, but we
don't find it, because it was never added.

  • css/CSSFontFaceSet.cpp: (WebCore::CSSFontFaceSet::addToFacesLookupTable): (WebCore::CSSFontFaceSet::removeFromFacesLookupTable):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@281648 268f45cc-cd09-0410-ab3c-d52691b4dbfc

2:36 PM Changeset in webkit [282239] by ysuzuki@apple.com
  • 22 edits
    2 adds in trunk

[JSC] Optimize op_get_property_enumerator further
https://bugs.webkit.org/show_bug.cgi?id=230086

Reviewed by Saam Barati.

JSTests:

  • stress/for-in-cell-other.js: Added.

(shouldBe):
(forIn):

  • stress/for-in-null-undefined.js: Added.

(shouldBe):
(forIn):

Source/JavaScriptCore:

  1. This patch adds fast path of op_get_property_enumerator to LLInt and Baseline. Previously, we only had this fast path in DFG and FTL.
  2. From the profiled data, Speedometer2/React-Redux-TodoMVC has GetPropertyEnumerator(CellOrOther). However, DFG and FTL only optimized GetPropertyEnumerator(Cell). We add CellOrOther and Other cases: if the argument is Other, then we can constant fold it to the empty enumerator. If the argument is CellOrOther, we can check first, and return empty enumerator for Other case.
  3. This patch also cleans up StructureRareData lookup by introducing StructureType to JSType.

| subtest | ms | ms | b / a | pValue (significance using False Discovery Rate) |


| Elm-TodoMVC |117.388333 |117.680000 |1.002485 | 0.269607 |
| VueJS-TodoMVC |24.918333 |24.651667 |0.989298 | 0.157665 |
| EmberJS-TodoMVC |126.430000 |126.296667 |0.998945 | 0.673803 |
| BackboneJS-TodoMVC |48.695000 |48.411667 |0.994181 | 0.019164 |
| Preact-TodoMVC |17.268333 |17.511667 |1.014091 | 0.199775 |
| AngularJS-TodoMVC |130.246667 |129.850000 |0.996954 | 0.261543 |
| Vanilla-ES2015-TodoMVC |63.626667 |63.611667 |0.999764 | 0.912112 |
| Inferno-TodoMVC |63.881667 |63.600000 |0.995591 | 0.385440 |
| Flight-TodoMVC |78.158333 |78.606667 |1.005736 | 0.284177 |
| Angular2-TypeScript-TodoMVC |39.448333 |39.411667 |0.999071 | 0.890825 |
| VanillaJS-TodoMVC |50.858333 |51.130000 |1.005342 | 0.195409 |
| jQuery-TodoMVC |225.318333 |226.256667 |1.004164 | 0.011190 |
| EmberJS-Debug-TodoMVC |340.150000 |338.450000 |0.995002 | 0.000063 (significant) |
| React-TodoMVC |85.703333 |85.606667 |0.998872 | 0.549298 |
| React-Redux-TodoMVC |141.985000 |140.418333 |0.988966 | 0.000000 (significant) |
| Vanilla-ES2015-Babel-Webpack-TodoMVC |61.505000 |61.705000 |1.003252 | 0.079817 |


a mean = 260.98021
b mean = 261.16020
pValue = 0.4985041089
(Bigger means are better.)
1.001 times better
Results ARE NOT significant

  • bytecode/SpeculatedType.cpp:

(JSC::dumpSpeculation):

  • dfg/DFGFixupPhase.cpp:

(JSC::DFG::FixupPhase::fixupNode):

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileGetPropertyEnumerator):
(JSC::DFG::SpeculativeJIT::compileObjectKeysOrObjectGetOwnPropertyNames):

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileObjectKeysOrObjectGetOwnPropertyNames):
(JSC::FTL::DFG::LowerDFGToB3::compileCompareStrictEq):

  • jit/AssemblyHelpers.h:

(JSC::AssemblyHelpers::branchIfStructure):
(JSC::AssemblyHelpers::branchIfNotStructure):

  • jit/JIT.cpp:

(JSC::JIT::privateCompileMainPass):

  • jit/JIT.h:
  • jit/JITPropertyAccess.cpp:

(JSC::JIT::emit_op_get_property_enumerator):

  • jit/JITPropertyAccess32_64.cpp:

(JSC::JIT::emit_op_get_property_enumerator):

  • llint/LowLevelInterpreter.asm:
  • llint/LowLevelInterpreter32_64.asm:
  • llint/LowLevelInterpreter64.asm:
  • runtime/BrandedStructure.cpp:

(JSC::BrandedStructure::create):

  • runtime/JSType.cpp:

(WTF::printInternal):

  • runtime/JSType.h:
  • runtime/Structure.cpp:

(JSC::Structure::Structure):
(JSC::Structure::create):

  • runtime/Structure.h:

(JSC::Structure::isRareData):
(JSC::Structure::isRareData const): Deleted.

  • runtime/StructureInlines.h:

(JSC::Structure::create):
(JSC::Structure::createStructure):

  • runtime/StructureRareData.h:
  • runtime/VM.cpp:

(JSC::VM::VM):

1:58 PM Changeset in webkit [282238] by Ayumi Kojima
  • 3 edits in trunk/LayoutTests

[ iOS ] Rebaselining 2 imported/w3c/web-platform-tests/css/cssom-view/* tests.
https://bugs.webkit.org/show_bug.cgi?id=230123

Unreviewed test gardening.

  • platform/ios-simulator-wk2/imported/w3c/web-platform-tests/css/cssom-view/offsetTopLeft-empty-inline-expected.txt:
  • platform/ios-simulator-wk2/imported/w3c/web-platform-tests/css/cssom-view/offsetTopLeft-leading-space-inline-expected.txt:
1:05 PM Changeset in webkit [282237] by Fujii Hironori
  • 2 edits in trunk/Source/WebCore

[Win] REGRESSION(r282123): some layout tests are failing because the bgcolor of text input forms are unexpectedly black
https://bugs.webkit.org/show_bug.cgi?id=230077

Reviewed by Don Olmstead.

r282123 enabled HAVE_OS_DARK_MODE_SUPPORT for WinCairo. It uses
'-webkit-control-background' in the user-agent style sheet.
RenderThemeWin::systemColor always returned black for it. Because
WinCairo doesn't support dark mode yet, it is always light mode.
So, '-webkit-control-background' should be white at the moment.

  • rendering/RenderThemeWin.cpp:

(WebCore::RenderThemeWin::systemColor const): Return white for CSSValueWebkitControlBackground.

12:59 PM Changeset in webkit [282236] by Fujii Hironori
  • 4 edits in trunk/Source/WebKit

Enable IPCMessages debug logging for non-Cocoa ports
https://bugs.webkit.org/show_bug.cgi?id=230081

Reviewed by Alex Christensen.

r282177 temporarily disabled IPCMessages debug logging for
non-Cocoa ports because the generated
MessageArgumentDescriptions.cpp couldn't compile for them. Then,
r282190 fixed the problem. Enable it.

  • Platform/IPC/HandleMessage.h:

(IPC::logMessageImpl): Reverted the change of r282177 to enable the logging.
(IPC::logReply): Ditto.

  • Scripts/webkit/messages.py:

(generate_message_argument_description_implementation):
ENABLE(IPC_TESTING_API) isn't enabled for non-Cocoa ports yet.
Changed the condition.

  • Scripts/webkit/tests/MessageArgumentDescriptions.cpp: Updated

this test expectation.

12:42 PM Changeset in webkit [282235] by sihui_liu@apple.com
  • 2 edits in trunk/Source/WebCore

Unreviewed build fix for win after r282222.
https://bugs.webkit.org/show_bug.cgi?id=230059

  • Modules/storage/StorageManager.h:
12:12 PM Changeset in webkit [282234] by Simon Fraser
  • 15 edits
    2 adds in trunk

right- and bottom-relative values in background-position-x/y don't work
https://bugs.webkit.org/show_bug.cgi?id=202148

Reviewed by Antti Koivisto.

LayoutTests/imported/w3c:

More passing results.

  • web-platform-tests/css/css-backgrounds/parsing/background-position-x-computed-expected.txt:
  • web-platform-tests/css/css-backgrounds/parsing/background-position-x-valid-expected.txt:
  • web-platform-tests/css/css-backgrounds/parsing/background-position-y-computed-expected.txt:
  • web-platform-tests/css/css-backgrounds/parsing/background-position-y-valid-expected.txt:

Source/WebCore:

Test: fast/backgrounds/background-position-xy.html

background-position[1] and background-position-x/background-position-y allow authors
to specify edge-relative values, like "background-position-x: right 10px". We
failed to handle this syntax in background-position-x and background-position-y,
but we do handle it in background-position.

So fix consumePositionX()/consumePositionY(), which are used when parsing
background-position-x/y, -webkit-mask-position-x/y, perspective-origin-x/y, and
transform-origin-x.y, to handle this edge-relative form.

A failure on imported/w3c/web-platform-tests/css/css-backgrounds/parsing/background-position-x-computed.html
(which only passes in Firefox) suggets that we should convert "right 10px" to "calc(100% - 10px)"
but for now, this patch serializes with edge keywords, as we do for the shorthand.

[1] https://www.w3.org/TR/css-backgrounds-3/#background-position

Test: fast/backgrounds/background-position-xy.html

  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::createSingleAxisPositionValueForLayer):
(WebCore::ComputedStyleExtractor::valueForPropertyInStyle):

  • css/parser/CSSPropertyParser.cpp:

(WebCore::consumePositionX):
(WebCore::consumePositionY):
(WebCore::consumePositionLonghand): Deleted.

  • css/parser/CSSPropertyParserHelpers.cpp:

(WebCore::CSSPropertyParserHelpers::consumePositionCoordinates):
(WebCore::CSSPropertyParserHelpers::consumeSingleAxisPosition):

  • css/parser/CSSPropertyParserHelpers.h:

LayoutTests:

Ref test for various background-position-* values. Adjust for serialization output changes.

  • fast/backgrounds/background-position-xy-expected.html: Added.
  • fast/backgrounds/background-position-xy.html: Added.
  • fast/css/background-position-serialize-expected.txt:
  • fast/css/background-position-serialize.html:
  • transitions/background-position-transitions-expected.txt:
  • transitions/background-position-transitions.html:
12:06 PM Changeset in webkit [282233] by Eric Hutchison
  • 2 edits in trunk/LayoutTests

[BigSur wk2 Debug] 4 http/tests/inspector/network/ tests are flaky fails.
https://bugs.webkit.org/show_bug.cgi?id=230117.

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
11:56 AM Changeset in webkit [282232] by Ayumi Kojima
  • 2 edits in trunk/LayoutTests

[ MacOS ] imported/w3c/web-platform-tests/webrtc-extensions/transfer-datachannel.html is a flaky failure.
https://bugs.webkit.org/show_bug.cgi?id=230116

Unreviewed test gardening.

  • platform/mac/TestExpectations:
11:33 AM Changeset in webkit [282231] by Eric Hutchison
  • 2 edits in trunk/LayoutTests

Update test expectations for http/tests/inspector/network/har/har-page-aggressive-gc.html.
https://bugs.webkit.org/show_bug.cgi?id=230056.

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
11:25 AM Changeset in webkit [282230] by commit-queue@webkit.org
  • 18 edits
    11 copies
    7 adds in trunk/Source

Add PrivateClickMeasurement daemon
https://bugs.webkit.org/show_bug.cgi?id=230052

Patch by Alex Christensen <achristensen@webkit.org> on 2021-09-09
Reviewed by Chris Dumez.

Source/WebKit:

This adds the infrastructure to use a daemon instead of the network process to handle PrivateClickMeasurement.
It does not start using the daemon yet, so there is no change in behavior.
I made a new class PCM::ManagerInterface which can either be a PrivateClickMeasurementManager or a PCM::ManagerProxy,
which would send messages to the daemon instead of doing the work locally.
I implemented the encoding and decoding of parameters using some of the IPC encoding templates.
I have an entry point for an executable but no executable yet.
I have verified that EventAttribution unit tests pass when using the daemon, so the infrastructure is good.

  • NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp:
  • NetworkProcess/NetworkSession.cpp:

(WebKit::NetworkSession::NetworkSession):
(WebKit::pcmStoreDirectory): Deleted.

  • NetworkProcess/NetworkSession.h:

(WebKit::NetworkSession::privateClickMeasurement):

  • NetworkProcess/PrivateClickMeasurement/PrivateClickMeasurementConnection.cpp: Added.

(WebKit::PCM::Connection::connectionToDaemon):
(WebKit::PCM::Connection::send):
(WebKit::PCM::Connection::sendWithReply):

  • NetworkProcess/PrivateClickMeasurement/PrivateClickMeasurementConnection.h: Added.
  • NetworkProcess/PrivateClickMeasurement/PrivateClickMeasurementDaemonClient.cpp: Added.

(WebKit::PCM::DaemonClient::loadFromNetwork):
(WebKit::PCM::DaemonClient::broadcastConsoleMessage):
(WebKit::PCM::DaemonClient::featureEnabled const):
(WebKit::PCM::DaemonClient::debugModeEnabled const):

  • NetworkProcess/PrivateClickMeasurement/PrivateClickMeasurementDaemonClient.h: Added.
  • NetworkProcess/PrivateClickMeasurement/PrivateClickMeasurementDecoder.cpp: Added.

(WebKit::PCM::Decoder::bufferIsLargeEnoughToContainBytes const):
(WebKit::PCM::Decoder::decodeFixedLengthData):

  • NetworkProcess/PrivateClickMeasurement/PrivateClickMeasurementDecoder.h: Added.

(WebKit::PCM::Decoder::Decoder):
(WebKit::PCM::Decoder::operator>>):
(WebKit::PCM::Decoder::bufferIsLargeEnoughToContain const):

  • NetworkProcess/PrivateClickMeasurement/PrivateClickMeasurementEncoder.cpp: Added.

(WebKit::PCM::Encoder::encodeFixedLengthData):

  • NetworkProcess/PrivateClickMeasurement/PrivateClickMeasurementEncoder.h: Added.

(WebKit::PCM::Encoder::operator<<):
(WebKit::PCM::Encoder::encode):
(WebKit::PCM::Encoder::takeBuffer):

  • NetworkProcess/PrivateClickMeasurement/PrivateClickMeasurementManagerInterface.cpp: Added.

(WebKit::PCM::MessageInfo::toStringForTesting::encodeReply):
(WebKit::PCM::manager):
(WebKit::PCM::handlePCMMessage):
(WebKit::PCM::handlePCMMessageWithReply):
(WebKit::PCM::decodeMessageAndSendToManager):

  • NetworkProcess/PrivateClickMeasurement/PrivateClickMeasurementManagerInterface.h: Added.
  • NetworkProcess/PrivateClickMeasurement/PrivateClickMeasurementManagerProxy.cpp: Added.

(WebKit::PCM::sendMessage):
(WebKit::PCM::ReplyCaller<>::callReply):
(WebKit::PCM::ReplyCaller<String>::callReply):
(WebKit::PCM::sendMessageWithReply):
(WebKit::PCM::ManagerProxy::storeUnattributed):
(WebKit::PCM::ManagerProxy::handleAttribution):
(WebKit::PCM::ManagerProxy::clear):
(WebKit::PCM::ManagerProxy::clearForRegistrableDomain):
(WebKit::PCM::ManagerProxy::migratePrivateClickMeasurementFromLegacyStorage):
(WebKit::PCM::ManagerProxy::toStringForTesting const):
(WebKit::PCM::ManagerProxy::setOverrideTimerForTesting):
(WebKit::PCM::ManagerProxy::setTokenPublicKeyURLForTesting):
(WebKit::PCM::ManagerProxy::setTokenSignatureURLForTesting):
(WebKit::PCM::ManagerProxy::setAttributionReportURLsForTesting):
(WebKit::PCM::ManagerProxy::markAllUnattributedAsExpiredForTesting):
(WebKit::PCM::ManagerProxy::markAttributedPrivateClickMeasurementsAsExpiredForTesting):
(WebKit::PCM::ManagerProxy::setEphemeralMeasurementForTesting):
(WebKit::PCM::ManagerProxy::setPCMFraudPreventionValuesForTesting):
(WebKit::PCM::ManagerProxy::startTimerImmediatelyForTesting):
(WebKit::PCM::ManagerProxy::destroyStoreForTesting):

  • NetworkProcess/PrivateClickMeasurement/PrivateClickMeasurementManagerProxy.h: Added.
  • NetworkProcess/PrivateClickMeasurement/cocoa/PrivateClickMeasurementDaemonConnectionCocoa.mm: Added.

(WebKit::PCM::Connection::Connection):
(WebKit::PCM::Connection::connectionToDaemon):
(WebKit::PCM::dictionaryFromMessage):
(WebKit::PCM::Connection::send):
(WebKit::PCM::Connection::sendWithReply):

  • NetworkProcess/PrivateClickMeasurement/cocoa/PrivateClickMeasurementXPCUtilities.h: Added.
  • NetworkProcess/PrivateClickMeasurement/cocoa/PrivateClickMeasurementXPCUtilities.mm: Added.

(WebKit::PCM::addVersionAndEncodedMessageToDictionary):

  • NetworkProcess/mac/com.apple.WebKit.NetworkProcess.sb.in:
  • Platform/IPC/ArgumentCoder.h:
  • Platform/IPC/ArgumentCoders.cpp:

(IPC::decodeStringText):
(IPC::ArgumentCoder<String>::decode):

  • Platform/IPC/ArgumentCoders.h:
  • Shared/EntryPointUtilities/Cocoa/Daemon/PCMDaemonEntryPoint.h: Added.
  • Shared/EntryPointUtilities/Cocoa/Daemon/PCMDaemonEntryPoint.mm: Added.

(WebKit::peers):
(WebKit::CompletionHandler<void):
(WebKit::connectionEventHandler):
(WebKit::startListeningForMachServiceConnections):
(WebKit::registerScheduledActivityHandler):
(WebKit::enterSandbox):
(WebKit::PCMDaemonMain):

  • Sources.txt:
  • SourcesCocoa.txt:
  • WebKit.xcodeproj/project.pbxproj:

Source/WTF:

  • wtf/spi/darwin/XPCSPI.h:
11:04 AM Changeset in webkit [282229] by Russell Epstein
  • 12 edits in branches/safari-612-branch

Cherry-pick r282218. rdar://problem/82931375

Implement a WebProcess cap
https://bugs.webkit.org/show_bug.cgi?id=230067
<rdar://79479244>

Reviewed by Geoffrey Garen.

Source/WebKit:

Implement a WebProcess cap to avoid getting into a state where we run out of resources and crash in various ways.
The current limit is 400 and can be changed via an SPI. The limit is per UIProcess (not per process pool).
When we try and launch a new WebProcess and the limit has been reached, we terminate the least recently used
WebProcess to avoid going over the limit.

  • Shared/ProcessTerminationReason.h:
  • UIProcess/API/C/WKAPICast.h: (WebKit::toAPI):
  • UIProcess/API/Cocoa/WKProcessPool.mm: (+[WKProcessPool _setWebProcessCountLimit:]):
  • UIProcess/API/Cocoa/WKProcessPoolPrivate.h:
  • UIProcess/Cocoa/NavigationState.mm: (WebKit::wkProcessTerminationReason):
  • UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::loadRequestWithNavigationShared): (WebKit::WebPageProxy::loadFile): (WebKit::WebPageProxy::loadDataWithNavigationShared): (WebKit::WebPageProxy::loadSimulatedRequest): (WebKit::WebPageProxy::loadAlternateHTML): (WebKit::WebPageProxy::loadWebArchiveData): (WebKit::WebPageProxy::reload): (WebKit::WebPageProxy::goToBackForwardItem): (WebKit::shouldReloadAfterProcessTermination):
  • UIProcess/WebProcessProxy.cpp: (WebKit::WebProcessProxy::setProcessCountLimit): (WebKit::WebProcessProxy::create): (WebKit::WebProcessProxy::~WebProcessProxy): (WebKit::WebProcessProxy::addProvisionalPageProxy): (WebKit::WebProcessProxy::addExistingWebPage): (WebKit::WebProcessProxy::processDidTerminateOrFailedToLaunch): (WebKit::WebProcessProxy::establishServiceWorkerContext): (WebKit::WebProcessProxy::markProcessAsRecentlyUsed):
  • UIProcess/WebProcessProxy.h:

Tools:

Add API test coverage.

  • TestWebKitAPI/Tests/WebKitCocoa/WebContentProcessDidTerminate.mm: (TEST):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@282218 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11:04 AM Changeset in webkit [282228] by Russell Epstein
  • 3 edits in branches/safari-612-branch/Source/WebKit

Cherry-pick r282174. rdar://problem/82931245

Remove responsiveness timer in NetworkProcessProxy::getNetworkProcessConnection
https://bugs.webkit.org/show_bug.cgi?id=230016
rdar://problem/80760179

Reviewed by Chris Dumez.

We've seen evidence that network process may be blocked in initializeNetworkProcess. Since we have a 3-second
responsiveness timer in NetworkProcessProxy::getNetworkProcessConnection, blocked network process will be killed
and a new network process will be launched for getting connection. However, the new network process may get
stuck in initializeNetworkProcess too. In this case, web process will crash for not being able to get network
process connection.

  • UIProcess/Network/NetworkProcessProxy.cpp: (WebKit::NetworkProcessProxy::getNetworkProcessConnection):
  • UIProcess/WebsiteData/WebsiteDataStore.cpp: change RELEASE_ASSERT_NOT_REACHED_WITH_MESSAGE to RELEASE_LOG_ERROR as the message is not printed in non-debug build. (WebKit::WebsiteDataStore::getNetworkProcessConnection):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@282174 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11:04 AM Changeset in webkit [282227] by Russell Epstein
  • 6 edits
    2 adds in branches/safari-612-branch/Source/WebCore

Cherry-pick r282142. rdar://problem/82931317

Add a fast path for atomizing strings when parsing HTML
https://bugs.webkit.org/show_bug.cgi?id=229907
rdar://82854612

Reviewed by Yusuke Suzuki and Darin Adler.

On various subtests in Speedometer 2, a nontrivial amount of time is spent mapping raw UChar data vectors into
AtomStrings while parsing HTML tag names, attribute names and attribute values. Most of this happens underneath
the AtomHTMLToken constructor, which computes a hash for each string in the process of adding it to the atom
string table; the time it takes to compute this string hash increases linearly with the length of the string.

However, over the course of the benchmark, the vast majority of AtomStrings created out of tag names, attribute
names and attribute values are both:

(1) Strings that we've already recently atomized, and
(2) Usually distinguishable from other atom strings based solely on their first character, last character, and

overall string length.

As such, it's possible to slightly improve string atomization performance in this particular case (i.e. parsing
HTML) by maintaining a smaller cache of recently atomized AtomStrings that we index using a simple, constant-
time hash function that considers only the first character, last character, and length of the string. In terms
of the cache hit rate in this AtomString cache, the default string hashing algorithm only barely outperforms
this simple hash function on Speedometer (i.e., a cache hit rate of 99.24% using the default hash algorithm vs.
99.15% using the "first/last character and length" hash).

Using this technique, we can get a significant performance improvement on Speedometer by introducing two small,
fixed-size (512 capacity) AtomString tables: one to hold tag names and attribute names, and another to hold
attribute values (which seems to contain a much larger set of unique strings); we additionally use the cheap "2-
char & length" hash algorithm described above to index into these fixed-size tables.

This allows us to more efficiently atomize not only known tag and attribute names, but also custom element tag
names and attribute names and values that tend to appear frequently in markup (e.g. due to using certain
JavaScript frameworks that get and set HTML attributes).

  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • html/parser/AtomHTMLToken.h: (WebCore::AtomHTMLToken::initializeAttributes): (WebCore::AtomHTMLToken::AtomHTMLToken):
  • html/parser/HTMLAtomStringCache.cpp: Added. (WebCore::HTMLAtomStringCache::cache):
  • html/parser/HTMLAtomStringCache.h: Added.

Add a helper class that exposes three static inline helper methods: makeTagOrAttributeName and
makeAttributeValue, which return AtomStrings for the given Vector<UChar> (consulting the corresponding
cache if possible); and clear, which empties all cached atom strings.

(WebCore::HTMLAtomStringCache::makeTagOrAttributeName):
(WebCore::HTMLAtomStringCache::makeAttributeValue):
(WebCore::HTMLAtomStringCache::clear):
(WebCore::HTMLAtomStringCache::make):

Additionally add an upper length limit for characters that we include in this cache; in practice, longer strings
tend to be repeatedly atomized less frequently than shorter strings. The 36-character limit also allows for
frequently-parsed (and atomized) UUIDs to be cached.

(WebCore::HTMLAtomStringCache::cacheSlot):

This hashing algorithm was inspired by calculateWithTwoCharacters, but with constants specifically chosen to
minimize collisions between common HTML tag and attribute names.

  • page/MemoryRelease.cpp: (WebCore::releaseNoncriticalMemory):
  • page/cocoa/MemoryReleaseCocoa.mm: (WebCore::jettisonExpensiveObjectsOnTopLevelNavigation):

Add logic to clear the HTML atom string cache upon receiving a low memory warning, and upon top-level
navigation.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@282142 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11:01 AM Changeset in webkit [282226] by Ayumi Kojima
  • 2 edits in trunk/LayoutTests

[ BigSur arm64 EWS ] ASSERTION FAILED: !needsLayout() ./rendering/RenderView.cpp(305) : virtual void WebCore::RenderView::paint(WebCore::PaintInfo &, const WebCore::LayoutPoint &).
https://bugs.webkit.org/show_bug.cgi?id=230113

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
10:42 AM Changeset in webkit [282225] by Eric Hutchison
  • 2 edits in trunk/LayoutTests

[BigSur wk2] http/tests/fetch/redirectmode-and-preload.html is a flaky failure.
https://bugs.webkit.org/show_bug.cgi?id=230112.

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
10:39 AM Changeset in webkit [282224] by Ayumi Kojima
  • 2 edits in trunk/LayoutTests

[ BigSur arm64 EWS ] ASSERTION FAILED: m_globalScope->hasOneRef() ./workers/WorkerOrWorkletThread.cpp(155) : void WebCore::WorkerOrWorkletThread::workerOrWorkletThread().
https://bugs.webkit.org/show_bug.cgi?id=230109

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
10:06 AM Changeset in webkit [282223] by Antti Koivisto
  • 16 edits in trunk/Source/WebCore

Cull inline culling
https://bugs.webkit.org/show_bug.cgi?id=202920

Reviewed by Alan Bujtas.

The optimization was already disabled in r282129.
This patch removes all the associated code.

  • editing/SimplifyMarkupCommand.cpp:

(WebCore::SimplifyMarkupCommand::doApply):

  • page/FrameView.cpp:

(WebCore::FrameView::paintContents):

  • rendering/LegacyInlineFlowBox.cpp:

(WebCore::LegacyInlineFlowBox::nodeAtPoint):

  • rendering/LegacyLineLayout.cpp:

(WebCore::LegacyLineLayout::createLineBoxes):
(WebCore::LegacyLineLayout::layoutLineBoxes):

  • rendering/RenderElement.cpp:

(WebCore::RenderElement::RenderElement):

  • rendering/RenderElement.h:

(WebCore::RenderElement::setRenderInlineAlwaysCreatesLineBoxes): Deleted.
(WebCore::RenderElement::renderInlineAlwaysCreatesLineBoxes const): Deleted.

  • rendering/RenderInline.cpp:

(WebCore::RenderInline::styleDidChange):
(WebCore::RenderInline::mayAffectLayout const):

Rename mayAffectRendering -> mayAffectLayout for specificity.

(WebCore::RenderInline::generateLineBoxRects const):
(WebCore::RenderInline::firstInlineBoxTopLeft const):
(WebCore::RenderInline::linesBoundingBox const):
(WebCore::RenderInline::linesVisualOverflowBoundingBox const):
(WebCore::RenderInline::linesVisualOverflowBoundingBoxInFragment const):
(WebCore::RenderInline::clippedOverflowRect const):
(WebCore::RenderInline::dirtyLineBoxes):
(WebCore::RenderInline::createAndAppendInlineFlowBox):
(WebCore::RenderInline::mayAffectRendering const): Deleted.
(WebCore::RenderInline::updateAlwaysCreateLineBoxes): Deleted.
(WebCore::RenderInline::generateCulledLineBoxRects const): Deleted.
(WebCore::RenderInline::hitTestCulledInline): Deleted.
(WebCore::RenderInline::culledInlineFirstLineBox const): Deleted.
(WebCore::RenderInline::culledInlineLastLineBox const): Deleted.
(WebCore::RenderInline::culledInlineVisualOverflowBoundingBox const): Deleted.

  • rendering/RenderInline.h:

(WebCore::RenderInline::lastLineBox const):
(WebCore::RenderInline::firstLineBoxIncludingCulling const): Deleted.
(WebCore::RenderInline::lastLineBoxIncludingCulling const): Deleted.
(WebCore::RenderInline::alwaysCreateLineBoxes const): Deleted.
(WebCore::RenderInline::setAlwaysCreateLineBoxes): Deleted.

  • rendering/RenderLineBoxList.cpp:

(WebCore::RenderLineBoxList::dirtyLinesFromChangedChild):

  • rendering/RenderText.cpp:

(WebCore::RenderText::linesVisualOverflowBoundingBox const): Deleted.

  • rendering/RenderText.h:
  • rendering/RenderTextLineBoxes.cpp:

(WebCore::RenderTextLineBoxes::visualOverflowBoundingBox const): Deleted.

  • rendering/RenderTextLineBoxes.h:
  • rendering/RenderTreeAsText.cpp:

(WebCore::hasNonEmptySibling):

  • rendering/svg/RenderSVGInline.cpp:

(WebCore::RenderSVGInline::RenderSVGInline):

10:03 AM Changeset in webkit [282222] by sihui_liu@apple.com
  • 10 edits in trunk/Source

Address post-commit comments on r282130 (Add basic support for Storage API)
https://bugs.webkit.org/show_bug.cgi?id=230059

Reviewed by Youenn Fablet.

Source/WebCore:

No new tests as no behavior change.

  • Modules/storage/StorageManager.cpp:

(WebCore::StorageManager::StorageManager):
(WebCore::StorageManager::persisted):
(WebCore::StorageManager::persist):
(WebCore::clientOrigin): Deleted.

  • Modules/storage/StorageManager.h:
  • dom/Document.cpp:

(WebCore::Document::storageConnection):

  • dom/Document.h:
  • dom/ScriptExecutionContext.h:

(WebCore::ScriptExecutionContext::storageConnection):

  • page/NavigatorBase.cpp:

(WebCore::NavigatorBase::storage):

  • page/NavigatorBase.h:

Source/WebKit:

  • NetworkProcess/storage/NetworkStorageManager.cpp:

(WebKit::NetworkStorageManager::localOriginStorageManager):

10:02 AM Changeset in webkit [282221] by Patrick Angle
  • 4 edits in trunk/Source

run-webkit-archive crashes with dyld error
https://bugs.webkit.org/show_bug.cgi?id=228060

Reviewed by Alex Christensen.

Source/JavaScriptCore:

Add a compatibility symbol for the old WTF::Optional version of BackendDispatcher::reportProtocolError in
versions of Safari shipping with macOS Big Sur and earlier. This has the side effect of not surfacing protocol
errors and instead silently discarding them when crossing this API boundary. Newer versions of macOS ship using
the newer symbol and are therefor not affected and will continue to surface protocol errors to the frontend.

  • runtime/SymbolStubsForSafariCompatibility.mm:

(Inspector::BackendDispatcher::reportProtocolError):

Source/WTF:

Bump the maximum macOS version that HAVE_SAFARI_FOR_WEBKIT_DEVELOPMENT_REQUIRING_EXTRA_SYMBOLS will be enabled
to provide compatibility with changes made in macOS 12.

  • wtf/PlatformHave.h:
9:49 AM Changeset in webkit [282220] by jer.noble@apple.com
  • 41 edits in trunk/Source/WebCore

Refactor Video,Audio,TextTrack and TrackLists to not depend on HTMLMediaElement
https://bugs.webkit.org/show_bug.cgi?id=229924

Reviewed by Eric Carlson.

TrackBase and its derived classes currently are only able to handle a single "client"
at a time, which means a complicated re-sending of notifications from one client to
the next to ensure everything flows to the HTMLMediaElement. In addition to this
complicated client heirarchy, Tracks and their TrackLists being tightly bound to their
HTMLMediaElement will make MSE-in-a-Worker much more difficult to implement.

Refactor AudioTrack, VideoTrack, and TextTrack to have multiple clients, tracked by
a WeakHashSet. Remove HTMLMediaElement from that class heirarchy, and replace it with
a WeakPtr to their TrackList for opaqueRoot purposes.

Similarly, refactor AudioTrackList, VideoTrackList, and TextTrackList to not require
a backpointer to HTMLMediaElement, and use a WeakPtr<void> instead, allowing either
SourceBuffer or HTMLMediaElement to be the list's opaqueRoot.

A TrackBase needed access to a HTMLMediaElement only for the necessity of outputting
a warning to the console when a language error occurred; instead, make TrackBase a
ContextDestructionObserver, and pass a ScriptExecutionContext to the TrackBase (and
all its derived classes) in the constructor.

A TrackListBase now has a type() method, which allows it to be safely cast to AudioTrack,
VideoTrack, and TextTrack, through type trait specialization.

TextTrack used HTMLMediaElement to retrieve its TextTrackList for certain operations,
and now that each TrackBase has a backpointer to its TrackList, this is no longer necessary.

TextTrackList now has setDuration()/duration() member functions, so that when TextTrack
receives a cue with an indefinite duration, that cue's endTime can be calculated.

The AudioTrack, VideoTrack, and TextTrack IDLs previously specified GenerateIsReachable,
with a parameter of ImplElementRoot, which required an element() method on each; now
that TrackBase has an opaqueRoot() method, this parameter is no longer necessary.

  • Modules/mediasource/SourceBuffer.cpp:

(WebCore::SourceBuffer::videoTracks):
(WebCore::SourceBuffer::audioTracks):
(WebCore::SourceBuffer::textTracks):
(WebCore::SourceBuffer::sourceBufferPrivateDidReceiveInitializationSegment):
(WebCore::SourceBuffer::videoTrackSelectedChanged):
(WebCore::SourceBuffer::videoTrackKindChanged):
(WebCore::SourceBuffer::videoTrackLabelChanged):
(WebCore::SourceBuffer::videoTrackLanguageChanged):
(WebCore::SourceBuffer::audioTrackEnabledChanged):
(WebCore::SourceBuffer::audioTrackKindChanged):
(WebCore::SourceBuffer::audioTrackLabelChanged):
(WebCore::SourceBuffer::audioTrackLanguageChanged):
(WebCore::SourceBuffer::textTrackModeChanged):
(WebCore::SourceBuffer::textTrackKindChanged):
(WebCore::SourceBuffer::textTrackLanguageChanged):
(WebCore::SourceBuffer::sourceBufferPrivateDurationChanged):

  • Modules/mediasource/SourceBuffer.h:
  • bindings/js/JSTrackCustom.h:
  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::~HTMLMediaElement):
(WebCore::HTMLMediaElement::audioTrackKindChanged):
(WebCore::HTMLMediaElement::audioTrackLabelChanged):
(WebCore::HTMLMediaElement::audioTrackLanguageChanged):
(WebCore::HTMLMediaElement::willRemoveAudioTrack):
(WebCore::HTMLMediaElement::textTrackModeChanged):
(WebCore::HTMLMediaElement::textTrackKindChanged):
(WebCore::HTMLMediaElement::textTrackLabelChanged):
(WebCore::HTMLMediaElement::textTrackLanguageChanged):
(WebCore::HTMLMediaElement::willRemoveTextTrack):
(WebCore::HTMLMediaElement::videoTrackKindChanged):
(WebCore::HTMLMediaElement::videoTrackLabelChanged):
(WebCore::HTMLMediaElement::videoTrackLanguageChanged):
(WebCore::HTMLMediaElement::willRemoveVideoTrack):
(WebCore::HTMLMediaElement::mediaPlayerDidAddAudioTrack):
(WebCore::HTMLMediaElement::mediaPlayerDidAddTextTrack):
(WebCore::HTMLMediaElement::mediaPlayerDidAddVideoTrack):
(WebCore::HTMLMediaElement::addAudioTrack):
(WebCore::HTMLMediaElement::addTextTrack):
(WebCore::HTMLMediaElement::addVideoTrack):
(WebCore::HTMLMediaElement::removeAudioTrack):
(WebCore::HTMLMediaElement::removeTextTrack):
(WebCore::HTMLMediaElement::removeVideoTrack):
(WebCore::HTMLMediaElement::ensureAudioTracks):
(WebCore::HTMLMediaElement::ensureTextTracks):
(WebCore::HTMLMediaElement::ensureVideoTracks):
(WebCore::HTMLMediaElement::mediaPlayerDurationChanged):

  • html/HTMLMediaElement.h:
  • html/HTMLTrackElement.cpp:

(WebCore::HTMLTrackElement::~HTMLTrackElement):
(WebCore::HTMLTrackElement::track):
(WebCore::HTMLTrackElement::textTrackModeChanged):

  • html/HTMLTrackElement.h:
  • html/track/AudioTrack.cpp:

(WebCore::AudioTrack::AudioTrack):
(WebCore::AudioTrack::setLanguage):
(WebCore::AudioTrack::setEnabled):
(WebCore::AudioTrack::addClient):
(WebCore::AudioTrack::clearClient):
(WebCore::AudioTrack::enabledChanged):
(WebCore::AudioTrack::idChanged):
(WebCore::AudioTrack::labelChanged):
(WebCore::AudioTrack::willRemove):

  • html/track/AudioTrack.h:

(WebCore::AudioTrackClient::audioTrackEnabledChanged):
(WebCore::AudioTrackClient::audioTrackIdChanged):
(WebCore::AudioTrackClient::audioTrackKindChanged):
(WebCore::AudioTrackClient::audioTrackLabelChanged):
(WebCore::AudioTrackClient::audioTrackLanguageChanged):
(WebCore::AudioTrackClient::willRemoveAudioTrack):

  • html/track/AudioTrack.idl:
  • html/track/AudioTrackList.cpp:

(WebCore::AudioTrackList::AudioTrackList):
(WebCore::AudioTrackList::append):
(WebCore::AudioTrackList::remove):

  • html/track/AudioTrackList.h:

(isType):

  • html/track/AudioTrackList.idl:
  • html/track/InbandDataTextTrack.cpp:

(WebCore::InbandDataTextTrack::InbandDataTextTrack):
(WebCore::InbandDataTextTrack::create):
(WebCore::InbandDataTextTrack::addDataCue):
(WebCore::InbandDataTextTrack::updateDataCue):

  • html/track/InbandDataTextTrack.h:
  • html/track/InbandGenericTextTrack.cpp:

(WebCore::InbandGenericTextTrack::InbandGenericTextTrack):
(WebCore::InbandGenericTextTrack::create):
(WebCore::InbandGenericTextTrack::updateCueFromCueData):

  • html/track/InbandGenericTextTrack.h:
  • html/track/InbandTextTrack.cpp:

(WebCore::InbandTextTrack::create):
(WebCore::InbandTextTrack::InbandTextTrack):
(WebCore::InbandTextTrack::willRemove):

  • html/track/InbandTextTrack.h:
  • html/track/InbandWebVTTTextTrack.cpp:

(WebCore::InbandWebVTTTextTrack::InbandWebVTTTextTrack):
(WebCore::InbandWebVTTTextTrack::create):

  • html/track/InbandWebVTTTextTrack.h:
  • html/track/LoadableTextTrack.cpp:

(WebCore::LoadableTextTrack::LoadableTextTrack):
(WebCore::LoadableTextTrack::newCuesAvailable):

  • html/track/LoadableTextTrack.h:
  • html/track/TextTrack.cpp:

(WebCore::TextTrack::captionMenuOffItem):
(WebCore::TextTrack::captionMenuAutomaticItem):
(WebCore::TextTrack::TextTrack):
(WebCore::TextTrack::create):
(WebCore::TextTrack::~TextTrack):
(WebCore::TextTrack::textTrackList const):
(WebCore::TextTrack::addClient):
(WebCore::TextTrack::clearClient):
(WebCore::TextTrack::setKind):
(WebCore::TextTrack::setMode):
(WebCore::TextTrack::removeAllCues):
(WebCore::TextTrack::addCue):
(WebCore::TextTrack::removeCue):
(WebCore::TextTrack::cueWillChange):
(WebCore::TextTrack::cueDidChange):
(WebCore::TextTrack::trackIndex):
(WebCore::TextTrack::trackIndexRelativeToRenderedTracks):
(WebCore::TextTrack::setLanguage):
(WebCore::TextTrack::setId):
(WebCore::TextTrack::setLabel):
(WebCore::TextTrack::newCuesAvailable):

  • html/track/TextTrack.h:

(WebCore::TextTrackClient::textTrackIdChanged):
(WebCore::TextTrackClient::textTrackKindChanged):
(WebCore::TextTrackClient::textTrackModeChanged):
(WebCore::TextTrackClient::textTrackLabelChanged):
(WebCore::TextTrackClient::textTrackLanguageChanged):
(WebCore::TextTrackClient::textTrackAddCues):
(WebCore::TextTrackClient::textTrackRemoveCues):
(WebCore::TextTrackClient::textTrackAddCue):
(WebCore::TextTrackClient::textTrackRemoveCue):
(WebCore::TextTrackClient::willRemoveTextTrack):

  • html/track/TextTrack.idl:
  • html/track/TextTrackList.cpp:

(WebCore::TextTrackList::TextTrackList):
(WebCore::TextTrackList::~TextTrackList):
(WebCore::TextTrackList::append):
(WebCore::TextTrackList::remove):

  • html/track/TextTrackList.h:

(isType):

  • html/track/TextTrackList.idl:
  • html/track/TrackBase.cpp:

(WebCore::TrackBase::TrackBase):
(WebCore::TrackBase::setTrackList):
(WebCore::TrackBase::clearTrackList):
(WebCore::TrackBase::trackList const):
(WebCore::TrackBase::setLanguage):
(WebCore::MediaTrackBase::MediaTrackBase):

  • html/track/TrackBase.h:

(WebCore::TrackBase::id const):
(WebCore::TrackBase::label const):
(WebCore::TrackBase::language const):
(WebCore::TrackBase::opaqueRoot):
(WebCore::TrackBase::setId):
(WebCore::TrackBase::setLabel):
(WebCore::root):

  • html/track/TrackListBase.cpp:

(WebCore::TrackListBase::TrackListBase):
(WebCore::TrackListBase::~TrackListBase):
(WebCore::TrackListBase::opaqueRoot):
(WebCore::TrackListBase::remove):

  • html/track/TrackListBase.h:

(WebCore::TrackListBase::type const):
(WebCore::TrackListBase::setOpaqueRoot):
(WebCore::root):

  • html/track/VideoTrack.cpp:

(WebCore::VideoTrack::VideoTrack):
(WebCore::VideoTrack::setSelected):
(WebCore::VideoTrack::addClient):
(WebCore::VideoTrack::clearClient):
(WebCore::VideoTrack::selectedChanged):
(WebCore::VideoTrack::idChanged):
(WebCore::VideoTrack::labelChanged):
(WebCore::VideoTrack::willRemove):
(WebCore::VideoTrack::setKind):
(WebCore::VideoTrack::setLanguage):
(WebCore::VideoTrack::updateKindFromPrivate):

  • html/track/VideoTrack.h:

(WebCore::VideoTrackClient::videoTrackIdChanged):
(WebCore::VideoTrackClient::videoTrackKindChanged):
(WebCore::VideoTrackClient::videoTrackLabelChanged):
(WebCore::VideoTrackClient::videoTrackLanguageChanged):
(WebCore::VideoTrackClient::videoTrackSelectedChanged):
(WebCore::VideoTrackClient::willRemoveVideoTrack):

  • html/track/VideoTrack.idl:
  • html/track/VideoTrackList.cpp:

(WebCore::VideoTrackList::VideoTrackList):
(WebCore::VideoTrackList::append):

  • html/track/VideoTrackList.h:

(isType):

  • html/track/VideoTrackList.idl:
9:48 AM Changeset in webkit [282219] by Ayumi Kojima
  • 2 edits in trunk/LayoutTests

[ BigSur arm64 EWS ] ASSERTION FAILED: !needsLayout() ./rendering/RenderView.cpp(306) : virtual void WebCore::RenderView::paint(WebCore::PaintInfo &, const WebCore::LayoutPoint &).
https://bugs.webkit.org/show_bug.cgi?id=230105

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
9:40 AM Changeset in webkit [282218] by Chris Dumez
  • 12 edits in trunk

Implement a WebProcess cap
https://bugs.webkit.org/show_bug.cgi?id=230067
<rdar://79479244>

Reviewed by Geoffrey Garen.

Source/WebKit:

Implement a WebProcess cap to avoid getting into a state where we run out of resources and crash in various ways.
The current limit is 400 and can be changed via an SPI. The limit is per UIProcess (not per process pool).
When we try and launch a new WebProcess and the limit has been reached, we terminate the least recently used
WebProcess to avoid going over the limit.

  • Shared/ProcessTerminationReason.h:
  • UIProcess/API/C/WKAPICast.h:

(WebKit::toAPI):

  • UIProcess/API/Cocoa/WKProcessPool.mm:

(+[WKProcessPool _setWebProcessCountLimit:]):

  • UIProcess/API/Cocoa/WKProcessPoolPrivate.h:
  • UIProcess/Cocoa/NavigationState.mm:

(WebKit::wkProcessTerminationReason):

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::loadRequestWithNavigationShared):
(WebKit::WebPageProxy::loadFile):
(WebKit::WebPageProxy::loadDataWithNavigationShared):
(WebKit::WebPageProxy::loadSimulatedRequest):
(WebKit::WebPageProxy::loadAlternateHTML):
(WebKit::WebPageProxy::loadWebArchiveData):
(WebKit::WebPageProxy::reload):
(WebKit::WebPageProxy::goToBackForwardItem):
(WebKit::shouldReloadAfterProcessTermination):

  • UIProcess/WebProcessProxy.cpp:

(WebKit::WebProcessProxy::setProcessCountLimit):
(WebKit::WebProcessProxy::create):
(WebKit::WebProcessProxy::~WebProcessProxy):
(WebKit::WebProcessProxy::addProvisionalPageProxy):
(WebKit::WebProcessProxy::addExistingWebPage):
(WebKit::WebProcessProxy::processDidTerminateOrFailedToLaunch):
(WebKit::WebProcessProxy::establishServiceWorkerContext):
(WebKit::WebProcessProxy::markProcessAsRecentlyUsed):

  • UIProcess/WebProcessProxy.h:

Tools:

Add API test coverage.

  • TestWebKitAPI/Tests/WebKitCocoa/WebContentProcessDidTerminate.mm:

(TEST):

9:08 AM Changeset in webkit [282217] by youenn@apple.com
  • 14 edits in trunk

Update RTCPeerConnection descriptions as per specification
https://bugs.webkit.org/show_bug.cgi?id=229963

Reviewed by Eric Carlson.

LayoutTests/imported/w3c:

  • web-platform-tests/webrtc/RTCPeerConnection-description-attributes-timing.https-expected.txt:
  • web-platform-tests/webrtc/RTCPeerConnection-setLocalDescription-rollback-expected.txt:

Source/WebCore:

A peer connection has two sets of descriptions: main thread descriptions which are exposed to JS and signaling thread descriptions
which are used/modified internally by the backend.
WebRTC spec describes when signaling thread descriptions should be used to set main thread descriptions.
This should be done at the end of setting remote/local descriptions, as well as when adding or surfacing an ICE candidate.
We make sure to grab signaling thread descriptions at those moments, then hop to main thread to set the main thread descriptions.

In case of closed connection, we stop early as we do not need to surface new descriptions (as well as resolve promises/fire events).

Covered by rebased tests.

  • Modules/mediastream/PeerConnectionBackend.cpp:

(WebCore::PeerConnectionBackend::setLocalDescriptionSucceeded):
(WebCore::PeerConnectionBackend::setRemoteDescriptionSucceeded):
(WebCore::PeerConnectionBackend::addIceCandidate):
(WebCore::PeerConnectionBackend::newICECandidate):

  • Modules/mediastream/PeerConnectionBackend.h:
  • Modules/mediastream/RTCPeerConnection.cpp:

(WebCore::updateDescription):
(WebCore::RTCPeerConnection::updateDescriptions):

  • Modules/mediastream/RTCPeerConnection.h:
  • Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.cpp:

(WebCore::fromSessionDescriptionType):
(WebCore::descriptionsFromPeerConnection):
(WebCore::LibWebRTCMediaEndpoint::addIceCandidate):
(WebCore::LibWebRTCMediaEndpoint::OnIceCandidate):
(WebCore::LibWebRTCMediaEndpoint::setLocalSessionDescriptionSucceeded):
(WebCore::LibWebRTCMediaEndpoint::setRemoteSessionDescriptionSucceeded):

  • Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.h:
  • Modules/mediastream/libwebrtc/LibWebRTCPeerConnectionBackend.cpp:

(WebCore::LibWebRTCPeerConnectionBackend::doAddIceCandidate):

  • Modules/mediastream/libwebrtc/LibWebRTCPeerConnectionBackend.h:

LayoutTests:

Now that we update descriptions at specific times,
we need to wait a bit to get the description.

  • webrtc/datachannel/mdns-ice-candidates.html:
8:57 AM Changeset in webkit [282216] by aakash_jain@apple.com
  • 3 edits in trunk/Tools

Run check-github-mirror-integrity more frequently
https://bugs.webkit.org/show_bug.cgi?id=230095

Reviewed by Jonathan Bedard.

  • CISupport/ews-build/factories.py:

(WatchListFactory.init): Run check-github-mirror-integrity on watchlist ews.

  • CISupport/ews-build/factories_unittest.py:

(TestExpectedBuildSteps): Updated unit-test.

8:53 AM Changeset in webkit [282215] by Wenson Hsieh
  • 2 edits in trunk/Source/WebKit

Unreviewed, fix the Mac Catalyst build after r282191
https://bugs.webkit.org/show_bug.cgi?id=230037

  • WebProcess/WebPage/Cocoa/TextCheckingControllerProxy.mm:

Update some logic that's guarded by ENABLE(PLATFORM_DRIVEN_TEXT_CHECKING) to use "->" for accessing methods on
Ref and CheckedRef, rather than ".".

(WebKit::TextCheckingControllerProxy::rangeAndOffsetRelativeToSelection):
(WebKit::TextCheckingControllerProxy::replaceRelativeToSelection):
(WebKit::TextCheckingControllerProxy::removeAnnotationRelativeToSelection):

8:41 AM Changeset in webkit [282214] by Eric Hutchison
  • 2 edits in trunk/LayoutTests

[iOS14 Sim Release iPhone] fast/sub-pixel/auto-table-layout-should-avoid-text-wrapping.html is a flaky crash.

https://bugs.webkit.org/show_bug.cgi?id=230099.

Unreviewed test gardening.

  • platform/ios-14-wk2/TestExpectations:
8:32 AM Changeset in webkit [282213] by aakash_jain@apple.com
  • 2 edits in trunk/Tools

[ews] Share more bots between EWS queues
https://bugs.webkit.org/show_bug.cgi?id=230094

Reviewed by Jonathan Bedard.

  • CISupport/ews-build/config.json:
8:30 AM Changeset in webkit [282212] by Justin Michaud
  • 3 edits
    1 add in trunk

Differential testing: incorrect constant propagation around Uint8ClampedArray
https://bugs.webkit.org/show_bug.cgi?id=229869

JSTests:

Reviewed by Saam Barati.

  • stress/Uint8ClampedArrayClampsInt52Positive.js: Added.

(let.x.123.test):
(noInline.test.int32pos1):
(255.int32pos2):
(1.int32neg1):
(0.int32neg2):
(0.int52pos1):
(255.int52pos2):
(255.int52neg1):
(0.int52neg2):
(0.int52neg3):
(0.int52pos3):
(255.int8):

Source/JavaScriptCore:

We casted int52 values to int32 before clamping, which caused any value with the 32nd bit
set to be interpreted as negative. The fix is to check the full-size value when deciding to clamp.

Reviewed by Saam Barati.

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileCompareStrictEq):

6:59 AM Changeset in webkit [282211] by Antti Koivisto
  • 7 edits in trunk/Source/WebCore

Add cache to InlineContent for O(1) inline box access
https://bugs.webkit.org/show_bug.cgi?id=230092

Reviewed by Alan Bujtas.

Add lazy caches for getting the index of the first run and all non-root inline boxes for a layout box.

  • layout/integration/LayoutIntegrationInlineContent.cpp:

(WebCore::LayoutIntegration::InlineContent::indexForRun const):
(WebCore::LayoutIntegration::InlineContent::firstRunForLayoutBox const):
(WebCore::LayoutIntegration::InlineContent::firstRunIndexForLayoutBox const):

For small run vectors (<16) just search directly.

(WebCore::LayoutIntegration::InlineContent::nonRootInlineBoxIndexesForLayoutBox const):
(WebCore::LayoutIntegration::InlineContent::releaseCaches):

Memory cleanup support.

(WebCore::LayoutIntegration::InlineContent::shrinkToFit):
(WebCore::LayoutIntegration::InlineContent::iteratorForRun const): Deleted.
(WebCore::LayoutIntegration::InlineContent::iteratorForTextRun const): Deleted.

Cleanup the interface by removing iterator dependency (iterator depends on InlineContent, not other way round).

  • layout/integration/LayoutIntegrationInlineContent.h:

(WebCore::LayoutIntegration::InlineContent::traverseNonRootInlineBoxes):

Traversal helper.

(WebCore::LayoutIntegration::InlineContent::shrinkToFit): Deleted.

  • layout/integration/LayoutIntegrationLineLayout.cpp:

(WebCore::LayoutIntegration::LineLayout::textRunsFor const):
(WebCore::LayoutIntegration::LineLayout::runFor const):
(WebCore::LayoutIntegration::LineLayout::firstInlineBoxRect const):
(WebCore::LayoutIntegration::LineLayout::visualOverflowBoundingBoxRectFor const):
(WebCore::LayoutIntegration::LineLayout::collectInlineBoxRects const):

Use the new cache-backed interfaces.

(WebCore::LayoutIntegration::LineLayout::releaseCaches):
(WebCore::LayoutIntegration::LineLayout::paintTextRunUsingPhysicalCoordinates):
(WebCore::LayoutIntegration::LineLayout::releaseInlineItemCache): Deleted.

  • layout/integration/LayoutIntegrationLineLayout.h:
  • layout/integration/LayoutIntegrationRunIterator.cpp:

(WebCore::LayoutIntegration::textRunFor):
(WebCore::LayoutIntegration::runFor):

  • layout/integration/LayoutIntegrationRunIterator.h:
5:16 AM Changeset in webkit [282210] by youenn@apple.com
  • 12 edits in trunk/Source/WebKit

Categorize WebRTC TCP nw connections like done for WebRTC UDP nw connections
https://bugs.webkit.org/show_bug.cgi?id=229801

Reviewed by Eric Carlson.

Move NetworkRTCUDPSocketCocoa tracker related code to its own routine in NetworkRTCUtilitiesCocoa.
Make use of that routine in NetworkRTCTCPSocketCocoa.
To do so, we need to pass more information when creating a client TCP socket from WebProcess to NetworkProcess.
Manually tested.

  • NetworkProcess/webrtc/NetworkRTCProvider.cpp:

(WebKit::NetworkRTCProvider::createClientTCPSocket):

  • NetworkProcess/webrtc/NetworkRTCProvider.h:
  • NetworkProcess/webrtc/NetworkRTCProvider.messages.in:
  • NetworkProcess/webrtc/NetworkRTCTCPSocketCocoa.h:
  • NetworkProcess/webrtc/NetworkRTCTCPSocketCocoa.mm:

(WebKit::NetworkRTCTCPSocketCocoa::createClientTCPSocket):
(WebKit::NetworkRTCTCPSocketCocoa::NetworkRTCTCPSocketCocoa):

  • NetworkProcess/webrtc/NetworkRTCUDPSocketCocoa.mm:

(WebKit::NetworkRTCUDPSocketCocoaConnections::configureParameters):
(WebKit::isKnownTracker): Deleted.

  • NetworkProcess/webrtc/NetworkRTCUtilitiesCocoa.h:
  • NetworkProcess/webrtc/NetworkRTCUtilitiesCocoa.mm:

(WebKit::setNWParametersTrackerOptions):
(WebKit::isKnownTracker):

  • WebProcess/Network/webrtc/LibWebRTCProvider.cpp:

(WebKit::RTCSocketFactory::CreateClientTcpSocket):

  • WebProcess/Network/webrtc/LibWebRTCSocketFactory.cpp:

(WebKit::LibWebRTCSocketFactory::createClientTcpSocket):

  • WebProcess/Network/webrtc/LibWebRTCSocketFactory.h:
4:38 AM Changeset in webkit [282209] by commit-queue@webkit.org
  • 3 edits
    2 adds in trunk

Chromium test-case asserts with ASSERTION FAILED: propertyMissingOrEqualToNone
https://bugs.webkit.org/show_bug.cgi?id=202904

Patch by Frederic Wang <fwang@igalia.com> on 2021-09-09
Reviewed by Darin Adler.

Source/WebCore:

WebCore::CompositeEditCommand::moveParagraphs calls createFragmentFromMarkup with a parameter
AnnotateForInterchange set to No. As a consequence, StyledMarkupAccumulator::serializeNodes
will not call EditingStyle::wrappingStyleForSerialization (in order to remove
-webkit-text-decorations-in-effect) contrary to the assumption of the ASSERT in
propertyMissingOrEqualToNone. This can lead to the ASSERT failing e.g. with the JustifyRight
command. This patch fixes that wrong expectation by importing the corresponding change and
test from Chromium [1].

[1] https://codereview.chromium.org/1522063002

Test: imported/blink/editing/execCommand/justify-right-in-effect-crash.html

  • editing/markup.cpp:

(WebCore::StyledMarkupAccumulator::appendStyleNodeOpenTag): Skip the assert if we should not
annotate and update the code comment accordingly.

LayoutTests:

Import regression test from Blink.

  • imported/blink/editing/execCommand/justify-right-in-effect-crash-expected.txt: Added.
  • imported/blink/editing/execCommand/justify-right-in-effect-crash.html: Added.
4:26 AM Changeset in webkit [282208] by Manuel Rego Casasnovas
  • 22 edits
    31 adds in trunk/LayoutTests

[css-text-decor] Update WPT test suite
https://bugs.webkit.org/show_bug.cgi?id=230042

LayoutTests/imported/w3c:

Import css-text-decor test suite based on WPT commit 5d2020c403.

Reviewed by Rob Buis.

  • resources/resource-files.json:
  • web-platform-tests/css/css-text-decor/invalidation/text-decoration-invalidation-dashed-expected.html: Added.
  • web-platform-tests/css/css-text-decor/invalidation/text-decoration-invalidation-dashed.html: Added.
  • web-platform-tests/css/css-text-decor/invalidation/text-decoration-invalidation-double-expected.html: Added.
  • web-platform-tests/css/css-text-decor/invalidation/text-decoration-invalidation-double.html: Added.
  • web-platform-tests/css/css-text-decor/invalidation/text-decoration-invalidation-solid-expected.html: Added.
  • web-platform-tests/css/css-text-decor/invalidation/text-decoration-invalidation-solid.html: Added.
  • web-platform-tests/css/css-text-decor/invalidation/text-decoration-invalidation-wavy-expected.html: Added.
  • web-platform-tests/css/css-text-decor/invalidation/text-decoration-invalidation-wavy.html: Added.
  • web-platform-tests/css/css-text-decor/invalidation/w3c-import.log: Added.
  • web-platform-tests/css/css-text-decor/text-decoration-color-expected.html:
  • web-platform-tests/css/css-text-decor/text-decoration-color-selection-001-expected.html: Added.
  • web-platform-tests/css/css-text-decor/text-decoration-color-selection-001.html: Added.
  • web-platform-tests/css/css-text-decor/text-decoration-color-selection-002.html: Added.
  • web-platform-tests/css/css-text-decor/text-decoration-color-selection-pseudo-01-expected.html: Added.
  • web-platform-tests/css/css-text-decor/text-decoration-color-selection-pseudo-01.html: Added.
  • web-platform-tests/css/css-text-decor/text-decoration-color.html:
  • web-platform-tests/css/css-text-decor/text-decoration-skip-ink-005-expected.html:
  • web-platform-tests/css/css-text-decor/text-decoration-skip-ink-005.html:
  • web-platform-tests/css/css-text-decor/text-decoration-thickness-from-zero-sized-font-expected.html: Added.
  • web-platform-tests/css/css-text-decor/text-decoration-thickness-from-zero-sized-font.html: Added.
  • web-platform-tests/css/css-text-decor/text-decoration-thickness-ink-skip-dilation-expected.html:
  • web-platform-tests/css/css-text-decor/text-decoration-thickness-percent-001-expected.html: Added.
  • web-platform-tests/css/css-text-decor/text-decoration-thickness-percent-001.html: Added.
  • web-platform-tests/css/css-text-decor/text-decoration-thickness-scroll-001.html:
  • web-platform-tests/css/css-text-decor/text-decoration-thickness-single-expected.html: Added.
  • web-platform-tests/css/css-text-decor/text-decoration-thickness-single.html: Added.
  • web-platform-tests/css/css-text-decor/text-decoration-thickness-vertical-002.html:
  • web-platform-tests/css/css-text-decor/text-emphasis-color-001.xht:
  • web-platform-tests/css/css-text-decor/text-emphasis-position-above-left-001.xht:
  • web-platform-tests/css/css-text-decor/text-emphasis-position-above-left-002.xht:
  • web-platform-tests/css/css-text-decor/text-emphasis-position-above-right-001.xht:
  • web-platform-tests/css/css-text-decor/text-emphasis-position-above-right-002.xht:
  • web-platform-tests/css/css-text-decor/text-emphasis-position-below-left-001.xht:
  • web-platform-tests/css/css-text-decor/text-emphasis-position-below-left-002.xht:
  • web-platform-tests/css/css-text-decor/text-emphasis-position-below-right-001.xht:
  • web-platform-tests/css/css-text-decor/text-emphasis-position-below-right-002.xht:
  • web-platform-tests/css/css-text-decor/text-underline-offset-negative-expected.html: Added.
  • web-platform-tests/css/css-text-decor/text-underline-offset-negative.html: Added.
  • web-platform-tests/css/css-text-decor/text-underline-offset-overline-expected.html: Added.
  • web-platform-tests/css/css-text-decor/text-underline-offset-overline-vertical-expected.html: Added.
  • web-platform-tests/css/css-text-decor/text-underline-offset-overline-vertical.html: Added.
  • web-platform-tests/css/css-text-decor/text-underline-offset-overline.html: Added.
  • web-platform-tests/css/css-text-decor/text-underline-offset-scroll-001.html:
  • web-platform-tests/css/css-text-decor/text-underline-offset-vertical-003-expected.html: Added.
  • web-platform-tests/css/css-text-decor/text-underline-offset-vertical-003.html: Added.
  • web-platform-tests/css/css-text-decor/text-underline-offset-zero-position-expected.html: Added.
  • web-platform-tests/css/css-text-decor/text-underline-offset-zero-position.html: Added.
  • web-platform-tests/css/css-text-decor/w3c-import.log:

LayoutTests:

Reviewed by Rob Buis.

4:18 AM Changeset in webkit [282207] by youenn@apple.com
  • 7 edits in trunk/LayoutTests/imported/w3c

Rebase a few WebRTC tests marked as flaky but making progress with RTCSctpTransport introduction
https://bugs.webkit.org/show_bug.cgi?id=230089

Unreviewed, rebasing tests only.

  • web-platform-tests/webrtc/RTCPeerConnection-iceConnectionState.https-expected.txt:
  • web-platform-tests/webrtc/RTCPeerConnection-iceGatheringState-expected.txt:
  • web-platform-tests/webrtc/RTCPeerConnection-perfect-negotiation-stress-glare-linear.https-expected.txt:
  • web-platform-tests/webrtc/RTCPeerConnection-perfect-negotiation-stress-glare.https-expected.txt:
  • web-platform-tests/webrtc/protocol/candidate-exchange.https-expected.txt:
  • web-platform-tests/webrtc/protocol/crypto-suite.https-expected.txt:
3:09 AM Changeset in webkit [282206] by youenn@apple.com
  • 2 edits in trunk/LayoutTests/imported/w3c

Rebase imported/w3c/web-platform-tests/webrtc/RTCDataChannel-close-expected.txt
https://bugs.webkit.org/show_bug.cgi?id=230087

Unreviewed, we are rebasing a test.

  • web-platform-tests/webrtc/RTCDataChannel-close-expected.txt:

Rebasing test now that we support running the test and we support RTCError.

3:02 AM Changeset in webkit [282205] by eocanha@igalia.com
  • 7 edits in trunk/LayoutTests

[Gstreamer] timeouts in media/media-source/media-source-has-audio-video.html and media/media-source/media-source-seek-unbuffered.html
https://bugs.webkit.org/show_bug.cgi?id=227258
<rdar://problem/79625722>

Reviewed by Alicia Boya Garcia.

The media-source-seek-unbuffered.html test was feeding only one segment
(1 second) to the SourceBuffer, but the libav h264 decoder used by the
glib ports needs more data to start producing decoded output.
The test was modified to append two segments (2 seconds) instead and now
the test passes.

The concatArrayBuffers() function from the media-source-error-crash.html
test was refactored as MediaSourceLoader.concatenateMediaSegments() and
reused in media-source-seek-unbuffered.html.

  • media/media-source/media-source-error-crash-expected.txt: Expect different concatenation expression.
  • media/media-source/media-source-error-crash.html: Removed concatArrayBuffers() and use MediaSourceLoader.concatenateMediaSegments() instead.
  • media/media-source/media-source-loader.js:

(MediaSourceLoader.prototype.concatenateMediaSegments): New method that concatenates two media segments (ArrayBuffers).

  • media/media-source/media-source-seek-unbuffered-expected.txt: Modified expectations to expect a different removed range and a more legible currentTime check.
  • media/media-source/media-source-seek-unbuffered.html: Append 2 segments, remove [0.5, 2] instead of [0.5, 1] and improve legibility of currentTime check.
  • platform/glib/TestExpectations: Unskipped test.
2:38 AM Changeset in webkit [282204] by mmaxfield@apple.com
  • 3 edits
    2 adds in trunk

FontFaceSet.has() needs to react to style changes
https://bugs.webkit.org/show_bug.cgi?id=229848

Reviewed by Antti Koivisto.

LayoutTests/imported/w3c:

This test was landed upstream in https://github.com/web-platform-tests/wpt/pull/30322

  • web-platform-tests/css/css-font-loading/fontfaceset-has-expected.txt: Added.
  • web-platform-tests/css/css-font-loading/fontfaceset-has.html: Added.

Source/WebCore:

When content says "document.fonts.has(...)", the ".has(...)" part needs to
update style instead of the "document.fonts" part. This is because it's
totally legal for content to say:

var f = document.fonts;
Modify style here
... f.has(...) ... <=== This needs to reflect the style changes.

Test: imported/w3c/web-platform-tests/css/css-font-loading/fontfaceset-has.html

  • css/FontFaceSet.cpp:

(WebCore::FontFaceSet::has const):

2:19 AM Changeset in webkit [282203] by Cameron McCormack
  • 43 edits
    16 copies
    310 adds in trunk/LayoutTests

Update WPT tests under /html/canvas/element
https://bugs.webkit.org/show_bug.cgi?id=229750
<rdar://problem/82610102>

Reviewed by Youenn Fablet.

LayoutTests/imported/w3c:

  • resources/resource-files.json:
  • web-platform-tests/html/canvas/element/drawing-images-to-the-canvas/2d.drawImage.broken-expected.txt:
  • web-platform-tests/html/canvas/element/drawing-text-to-the-canvas/2d.text.drawing.style.fontKerning-expected.txt:
  • web-platform-tests/html/canvas/element/drawing-text-to-the-canvas/2d.text.drawing.style.fontKerning.html:
  • web-platform-tests/html/canvas/element/drawing-text-to-the-canvas/2d.text.drawing.style.fontKerning.with.uppercase-expected.txt:
  • web-platform-tests/html/canvas/element/drawing-text-to-the-canvas/2d.text.drawing.style.fontKerning.with.uppercase.html:
  • web-platform-tests/html/canvas/element/drawing-text-to-the-canvas/2d.text.drawing.style.fontVariant.settings-expected.txt:
  • web-platform-tests/html/canvas/element/drawing-text-to-the-canvas/2d.text.drawing.style.fontVariant.settings.html:
  • web-platform-tests/html/canvas/element/drawing-text-to-the-canvas/2d.text.drawing.style.nonfinite.spacing-expected.txt:
  • web-platform-tests/html/canvas/element/drawing-text-to-the-canvas/2d.text.drawing.style.nonfinite.spacing.html:
  • web-platform-tests/html/canvas/element/drawing-text-to-the-canvas/2d.text.drawing.style.spacing-expected.txt:
  • web-platform-tests/html/canvas/element/drawing-text-to-the-canvas/2d.text.drawing.style.spacing.html:
  • web-platform-tests/html/canvas/element/drawing-text-to-the-canvas/2d.text.drawing.style.spacing.measure-expected.txt:
  • web-platform-tests/html/canvas/element/drawing-text-to-the-canvas/2d.text.drawing.style.spacing.measure.html:
  • web-platform-tests/html/canvas/element/drawing-text-to-the-canvas/2d.text.drawing.style.textRendering.settings-expected.txt:
  • web-platform-tests/html/canvas/element/drawing-text-to-the-canvas/2d.text.drawing.style.textRendering.settings.html:
  • web-platform-tests/html/canvas/element/filters/2d.filter.canvasFilterObject.blur.exceptions-expected.txt:
  • web-platform-tests/html/canvas/element/filters/2d.filter.canvasFilterObject.blur.exceptions.html:
  • web-platform-tests/html/canvas/element/filters/2d.filter.canvasFilterObject.colorMatrix-expected.txt:
  • web-platform-tests/html/canvas/element/filters/2d.filter.canvasFilterObject.colorMatrix.html:
  • web-platform-tests/html/canvas/element/filters/2d.filter.canvasFilterObject.componentTransfer.discrete.html:
  • web-platform-tests/html/canvas/element/filters/2d.filter.canvasFilterObject.componentTransfer.gamma.html:
  • web-platform-tests/html/canvas/element/filters/2d.filter.canvasFilterObject.componentTransfer.identity.html:
  • web-platform-tests/html/canvas/element/filters/2d.filter.canvasFilterObject.componentTransfer.linear.html:
  • web-platform-tests/html/canvas/element/filters/2d.filter.canvasFilterObject.componentTransfer.table.html:
  • web-platform-tests/html/canvas/element/filters/2d.filter.canvasFilterObject.convolveMatrix.exceptions-expected.txt:
  • web-platform-tests/html/canvas/element/filters/2d.filter.canvasFilterObject.convolveMatrix.exceptions.html:
  • web-platform-tests/html/canvas/element/filters/2d.filter.canvasFilterObject.html:
  • web-platform-tests/html/canvas/element/manual/README.md: Added.
  • web-platform-tests/html/canvas/element/manual/building-paths/canvas_complexshapes_arcto_001-expected.htm: Added.
  • web-platform-tests/html/canvas/element/manual/building-paths/canvas_complexshapes_arcto_001.htm: Added.
  • web-platform-tests/html/canvas/element/manual/building-paths/canvas_complexshapes_beziercurveto_001-expected.htm: Added.
  • web-platform-tests/html/canvas/element/manual/building-paths/canvas_complexshapes_beziercurveto_001.htm: Added.
  • web-platform-tests/html/canvas/element/manual/building-paths/w3c-import.log: Copied from LayoutTests/imported/w3c/web-platform-tests/html/canvas/element/wide-gamut-canvas/w3c-import.log.
  • web-platform-tests/html/canvas/element/manual/compositing/canvas_compositing_globalcompositeoperation_001-expected.htm: Added.
  • web-platform-tests/html/canvas/element/manual/compositing/canvas_compositing_globalcompositeoperation_001.htm: Added.
  • web-platform-tests/html/canvas/element/manual/compositing/w3c-import.log: Copied from LayoutTests/imported/w3c/web-platform-tests/html/canvas/element/wide-gamut-canvas/w3c-import.log.
  • web-platform-tests/html/canvas/element/manual/context-attributes/canvas-with-padding-expected.txt: Added.
  • web-platform-tests/html/canvas/element/manual/context-attributes/canvas-with-padding.html: Added.
  • web-platform-tests/html/canvas/element/manual/context-attributes/getContextAttributes-expected.txt: Added.
  • web-platform-tests/html/canvas/element/manual/context-attributes/getContextAttributes.html: Added.
  • web-platform-tests/html/canvas/element/manual/context-attributes/w3c-import.log: Copied from LayoutTests/imported/w3c/web-platform-tests/html/canvas/element/wide-gamut-canvas/w3c-import.log.
  • web-platform-tests/html/canvas/element/manual/drawing-images-to-the-canvas/drawimage_canvas-expected.txt: Added.
  • web-platform-tests/html/canvas/element/manual/drawing-images-to-the-canvas/drawimage_canvas.html: Added.
  • web-platform-tests/html/canvas/element/manual/drawing-images-to-the-canvas/drawimage_canvas_self-expected.html: Added.
  • web-platform-tests/html/canvas/element/manual/drawing-images-to-the-canvas/drawimage_canvas_self.html: Added.
  • web-platform-tests/html/canvas/element/manual/drawing-images-to-the-canvas/drawimage_canvas_self_ref.html: Added.
  • web-platform-tests/html/canvas/element/manual/drawing-images-to-the-canvas/drawimage_crossorigin.sub-expected.txt: Added.
  • web-platform-tests/html/canvas/element/manual/drawing-images-to-the-canvas/drawimage_crossorigin.sub.html: Added.
  • web-platform-tests/html/canvas/element/manual/drawing-images-to-the-canvas/drawimage_html_image-expected.txt: Added.
  • web-platform-tests/html/canvas/element/manual/drawing-images-to-the-canvas/drawimage_html_image.html: Added.
  • web-platform-tests/html/canvas/element/manual/drawing-images-to-the-canvas/drawimage_svg_image_1-expected.txt: Added.
  • web-platform-tests/html/canvas/element/manual/drawing-images-to-the-canvas/drawimage_svg_image_1.html: Added.
  • web-platform-tests/html/canvas/element/manual/drawing-images-to-the-canvas/drawimage_svg_image_with_foreign_object_does_not_taint-expected.txt: Added.
  • web-platform-tests/html/canvas/element/manual/drawing-images-to-the-canvas/drawimage_svg_image_with_foreign_object_does_not_taint.html: Added.
  • web-platform-tests/html/canvas/element/manual/drawing-images-to-the-canvas/image-orientation/drawImage-from-bitmap-orientation-none.tentative-expected.html: Added.
  • web-platform-tests/html/canvas/element/manual/drawing-images-to-the-canvas/image-orientation/drawImage-from-bitmap-orientation-none.tentative.html: Added.
  • web-platform-tests/html/canvas/element/manual/drawing-images-to-the-canvas/image-orientation/drawImage-from-bitmap-swap-width-height-orientation-none.tentative-expected.html: Added.
  • web-platform-tests/html/canvas/element/manual/drawing-images-to-the-canvas/image-orientation/drawImage-from-bitmap-swap-width-height-orientation-none.tentative.html: Added.
  • web-platform-tests/html/canvas/element/manual/drawing-images-to-the-canvas/image-orientation/drawImage-from-bitmap-swap-width-height.tentative-expected.html: Added.
  • web-platform-tests/html/canvas/element/manual/drawing-images-to-the-canvas/image-orientation/drawImage-from-bitmap-swap-width-height.tentative.html: Added.
  • web-platform-tests/html/canvas/element/manual/drawing-images-to-the-canvas/image-orientation/drawImage-from-bitmap.tentative-expected.html: Added.
  • web-platform-tests/html/canvas/element/manual/drawing-images-to-the-canvas/image-orientation/drawImage-from-bitmap.tentative.html: Added.
  • web-platform-tests/html/canvas/element/manual/drawing-images-to-the-canvas/image-orientation/drawImage-from-blob.tentative-expected.html: Added.
  • web-platform-tests/html/canvas/element/manual/drawing-images-to-the-canvas/image-orientation/drawImage-from-blob.tentative.html: Added.
  • web-platform-tests/html/canvas/element/manual/drawing-images-to-the-canvas/image-orientation/drawImage-from-element-orientation-none.tentative-expected.html: Added.
  • web-platform-tests/html/canvas/element/manual/drawing-images-to-the-canvas/image-orientation/drawImage-from-element-orientation-none.tentative.html: Added.
  • web-platform-tests/html/canvas/element/manual/drawing-images-to-the-canvas/image-orientation/drawImage-from-element-swap-width-height-orientation-none.tentative-expected.html: Added.
  • web-platform-tests/html/canvas/element/manual/drawing-images-to-the-canvas/image-orientation/drawImage-from-element-swap-width-height-orientation-none.tentative.html: Added.
  • web-platform-tests/html/canvas/element/manual/drawing-images-to-the-canvas/image-orientation/drawImage-from-element-swap-width-height.tentative-expected.html: Added.
  • web-platform-tests/html/canvas/element/manual/drawing-images-to-the-canvas/image-orientation/drawImage-from-element-swap-width-height.tentative.html: Added.
  • web-platform-tests/html/canvas/element/manual/drawing-images-to-the-canvas/image-orientation/drawImage-from-element.tentative-expected.html: Added.
  • web-platform-tests/html/canvas/element/manual/drawing-images-to-the-canvas/image-orientation/drawImage-from-element.tentative.html: Added.
  • web-platform-tests/html/canvas/element/manual/drawing-images-to-the-canvas/image-orientation/drawImage-with-src-rect.tentative-expected.html: Added.
  • web-platform-tests/html/canvas/element/manual/drawing-images-to-the-canvas/image-orientation/drawImage-with-src-rect.tentative.html: Added.
  • web-platform-tests/html/canvas/element/manual/drawing-images-to-the-canvas/image-orientation/w3c-import.log: Added.
  • web-platform-tests/html/canvas/element/manual/drawing-images-to-the-canvas/w3c-import.log: Copied from LayoutTests/imported/w3c/web-platform-tests/html/canvas/element/wide-gamut-canvas/w3c-import.log.
  • web-platform-tests/html/canvas/element/manual/drawing-paths-to-the-canvas/canvas_complexshapes_ispointInpath_001-expected.txt: Added.
  • web-platform-tests/html/canvas/element/manual/drawing-paths-to-the-canvas/canvas_complexshapes_ispointInpath_001.htm: Added.
  • web-platform-tests/html/canvas/element/manual/drawing-paths-to-the-canvas/drawFocusIfNeeded_001-expected.txt: Added.
  • web-platform-tests/html/canvas/element/manual/drawing-paths-to-the-canvas/drawFocusIfNeeded_001.html: Added.
  • web-platform-tests/html/canvas/element/manual/drawing-paths-to-the-canvas/drawFocusIfNeeded_002-expected.txt: Added.
  • web-platform-tests/html/canvas/element/manual/drawing-paths-to-the-canvas/drawFocusIfNeeded_002.html: Added.
  • web-platform-tests/html/canvas/element/manual/drawing-paths-to-the-canvas/drawFocusIfNeeded_003-expected.txt: Added.
  • web-platform-tests/html/canvas/element/manual/drawing-paths-to-the-canvas/drawFocusIfNeeded_003.html: Added.
  • web-platform-tests/html/canvas/element/manual/drawing-paths-to-the-canvas/drawFocusIfNeeded_004-expected.txt: Added.
  • web-platform-tests/html/canvas/element/manual/drawing-paths-to-the-canvas/drawFocusIfNeeded_004.html: Added.
  • web-platform-tests/html/canvas/element/manual/drawing-paths-to-the-canvas/drawFocusIfNeeded_005-expected.txt: Added.
  • web-platform-tests/html/canvas/element/manual/drawing-paths-to-the-canvas/drawFocusIfNeeded_005.html: Added.
  • web-platform-tests/html/canvas/element/manual/drawing-paths-to-the-canvas/w3c-import.log: Copied from LayoutTests/imported/w3c/web-platform-tests/html/canvas/element/wide-gamut-canvas/w3c-import.log.
  • web-platform-tests/html/canvas/element/manual/drawing-text-to-the-canvas/canvas.2d.fontStretch.condensed-expected.html: Added.
  • web-platform-tests/html/canvas/element/manual/drawing-text-to-the-canvas/canvas.2d.fontStretch.condensed.html: Added.
  • web-platform-tests/html/canvas/element/manual/drawing-text-to-the-canvas/canvas.2d.fontStretch.expanded-expected.html: Added.
  • web-platform-tests/html/canvas/element/manual/drawing-text-to-the-canvas/canvas.2d.fontStretch.expanded.html: Added.
  • web-platform-tests/html/canvas/element/manual/drawing-text-to-the-canvas/canvas.2d.fontStretch.extra-condensed-expected.html: Added.
  • web-platform-tests/html/canvas/element/manual/drawing-text-to-the-canvas/canvas.2d.fontStretch.extra-condensed.html: Added.
  • web-platform-tests/html/canvas/element/manual/drawing-text-to-the-canvas/canvas.2d.fontStretch.extra-expanded-expected.html: Added.
  • web-platform-tests/html/canvas/element/manual/drawing-text-to-the-canvas/canvas.2d.fontStretch.extra-expanded.html: Added.
  • web-platform-tests/html/canvas/element/manual/drawing-text-to-the-canvas/canvas.2d.fontStretch.normal-expected.html: Added.
  • web-platform-tests/html/canvas/element/manual/drawing-text-to-the-canvas/canvas.2d.fontStretch.normal.html: Added.
  • web-platform-tests/html/canvas/element/manual/drawing-text-to-the-canvas/canvas.2d.fontStretch.semi-condensed-expected.html: Added.
  • web-platform-tests/html/canvas/element/manual/drawing-text-to-the-canvas/canvas.2d.fontStretch.semi-condensed.html: Added.
  • web-platform-tests/html/canvas/element/manual/drawing-text-to-the-canvas/canvas.2d.fontStretch.semi-expanded-expected.html: Added.
  • web-platform-tests/html/canvas/element/manual/drawing-text-to-the-canvas/canvas.2d.fontStretch.semi-expanded.html: Added.
  • web-platform-tests/html/canvas/element/manual/drawing-text-to-the-canvas/canvas.2d.fontStretch.ultra-condensed-expected.html: Added.
  • web-platform-tests/html/canvas/element/manual/drawing-text-to-the-canvas/canvas.2d.fontStretch.ultra-condensed.html: Added.
  • web-platform-tests/html/canvas/element/manual/drawing-text-to-the-canvas/canvas.2d.fontStretch.ultra-expanded-expected.html: Added.
  • web-platform-tests/html/canvas/element/manual/drawing-text-to-the-canvas/canvas.2d.fontStretch.ultra-expanded.html: Added.
  • web-platform-tests/html/canvas/element/manual/drawing-text-to-the-canvas/w3c-import.log: Added.
  • web-platform-tests/html/canvas/element/manual/fill-and-stroke-styles/2d.fillStyle.parse.current.notrendered-expected.txt: Added.
  • web-platform-tests/html/canvas/element/manual/fill-and-stroke-styles/2d.fillStyle.parse.current.notrendered.html: Added.
  • web-platform-tests/html/canvas/element/manual/fill-and-stroke-styles/canvas_colorsandstyles_createlineargradient_001-expected.txt: Added.
  • web-platform-tests/html/canvas/element/manual/fill-and-stroke-styles/canvas_colorsandstyles_createlineargradient_001.htm: Added.
  • web-platform-tests/html/canvas/element/manual/fill-and-stroke-styles/conic-gradient-expected.html: Added.
  • web-platform-tests/html/canvas/element/manual/fill-and-stroke-styles/conic-gradient-rotation-expected.html: Added.
  • web-platform-tests/html/canvas/element/manual/fill-and-stroke-styles/conic-gradient-rotation.html: Added.
  • web-platform-tests/html/canvas/element/manual/fill-and-stroke-styles/conic-gradient.html: Added.
  • web-platform-tests/html/canvas/element/manual/fill-and-stroke-styles/w3c-import.log: Copied from LayoutTests/imported/w3c/web-platform-tests/html/canvas/element/wide-gamut-canvas/w3c-import.log.
  • web-platform-tests/html/canvas/element/manual/filters/canvas-filter-object-blur-expected.html: Added.
  • web-platform-tests/html/canvas/element/manual/filters/canvas-filter-object-blur.html: Added.
  • web-platform-tests/html/canvas/element/manual/filters/canvas-filter-object-component-transfer-expected.html: Added.
  • web-platform-tests/html/canvas/element/manual/filters/canvas-filter-object-component-transfer.html: Added.
  • web-platform-tests/html/canvas/element/manual/filters/canvas-filter-object-convolve-matrix-expected.html: Added.
  • web-platform-tests/html/canvas/element/manual/filters/canvas-filter-object-convolve-matrix.html: Added.
  • web-platform-tests/html/canvas/element/manual/filters/w3c-import.log: Copied from LayoutTests/imported/w3c/web-platform-tests/html/canvas/element/wide-gamut-canvas/w3c-import.log.
  • web-platform-tests/html/canvas/element/manual/hit-regions/addHitRegions-NotSupportedError-01-expected.txt: Added.
  • web-platform-tests/html/canvas/element/manual/hit-regions/addHitRegions-NotSupportedError-01.html: Added.
  • web-platform-tests/html/canvas/element/manual/hit-regions/hitregions-members-exist-expected.txt: Added.
  • web-platform-tests/html/canvas/element/manual/hit-regions/hitregions-members-exist.html: Added.
  • web-platform-tests/html/canvas/element/manual/hit-regions/w3c-import.log: Copied from LayoutTests/imported/w3c/web-platform-tests/html/canvas/element/wide-gamut-canvas/w3c-import.log.
  • web-platform-tests/html/canvas/element/manual/image-smoothing/imagesmoothing-expected.txt: Added.
  • web-platform-tests/html/canvas/element/manual/image-smoothing/imagesmoothing.html: Added.
  • web-platform-tests/html/canvas/element/manual/image-smoothing/w3c-import.log: Added.
  • web-platform-tests/html/canvas/element/manual/imagebitmap/canvas-ImageBitmap-close-expected.txt: Added.
  • web-platform-tests/html/canvas/element/manual/imagebitmap/canvas-ImageBitmap-close.html: Added.
  • web-platform-tests/html/canvas/element/manual/imagebitmap/canvas-createImageBitmap-resize-expected.txt: Added.
  • web-platform-tests/html/canvas/element/manual/imagebitmap/canvas-createImageBitmap-resize.html: Added.
  • web-platform-tests/html/canvas/element/manual/imagebitmap/canvas-createImageBitmap-video-resize-expected.txt: Added.
  • web-platform-tests/html/canvas/element/manual/imagebitmap/canvas-createImageBitmap-video-resize.html: Added.
  • web-platform-tests/html/canvas/element/manual/imagebitmap/common.sub.js: Added.

(makeCanvas):
(imageBitmapVideoPromise.new.Promise.video.oncanplaythrough):
(imageBitmapVideoPromise.new.Promise):
(makeVideo):
(response.arrayBuffer.then.):
(response.arrayBuffer.then):
(makeMakeHTMLImage.):
(makeMakeHTMLImage):
(makeBlob.):
(factory.makeMakeHTMLImage):
(factory.makeMakeSVGImage):

  • web-platform-tests/html/canvas/element/manual/imagebitmap/createImageBitmap-blob-invalidtype-expected.txt: Added.
  • web-platform-tests/html/canvas/element/manual/imagebitmap/createImageBitmap-blob-invalidtype.html: Added.
  • web-platform-tests/html/canvas/element/manual/imagebitmap/createImageBitmap-bounds-expected.txt: Added.
  • web-platform-tests/html/canvas/element/manual/imagebitmap/createImageBitmap-bounds.html: Added.
  • web-platform-tests/html/canvas/element/manual/imagebitmap/createImageBitmap-drawImage-closed-expected.txt: Added.
  • web-platform-tests/html/canvas/element/manual/imagebitmap/createImageBitmap-drawImage-closed.html: Added.
  • web-platform-tests/html/canvas/element/manual/imagebitmap/createImageBitmap-drawImage-expected.txt: Added.
  • web-platform-tests/html/canvas/element/manual/imagebitmap/createImageBitmap-drawImage.html: Added.
  • web-platform-tests/html/canvas/element/manual/imagebitmap/createImageBitmap-flipY-expected.txt: Added.
  • web-platform-tests/html/canvas/element/manual/imagebitmap/createImageBitmap-flipY.html: Added.
  • web-platform-tests/html/canvas/element/manual/imagebitmap/createImageBitmap-in-worker-transfer-expected.txt: Added.
  • web-platform-tests/html/canvas/element/manual/imagebitmap/createImageBitmap-in-worker-transfer.html: Added.
  • web-platform-tests/html/canvas/element/manual/imagebitmap/createImageBitmap-invalid-args-expected.txt: Added.
  • web-platform-tests/html/canvas/element/manual/imagebitmap/createImageBitmap-invalid-args.html: Added.
  • web-platform-tests/html/canvas/element/manual/imagebitmap/createImageBitmap-origin.sub-expected.txt: Added.
  • web-platform-tests/html/canvas/element/manual/imagebitmap/createImageBitmap-origin.sub.html: Added.
  • web-platform-tests/html/canvas/element/manual/imagebitmap/createImageBitmap-serializable-expected.txt: Added.
  • web-platform-tests/html/canvas/element/manual/imagebitmap/createImageBitmap-serializable.html: Added.
  • web-platform-tests/html/canvas/element/manual/imagebitmap/createImageBitmap-sizeOverflow-expected.txt: Added.
  • web-platform-tests/html/canvas/element/manual/imagebitmap/createImageBitmap-sizeOverflow.html: Added.
  • web-platform-tests/html/canvas/element/manual/imagebitmap/createImageBitmap-transfer-expected.txt: Added.
  • web-platform-tests/html/canvas/element/manual/imagebitmap/createImageBitmap-transfer.html: Added.
  • web-platform-tests/html/canvas/element/manual/imagebitmap/createImageBitmap-worker.js: Added.

(makeBlob.):
(makeBlob):

  • web-platform-tests/html/canvas/element/manual/imagebitmap/imageBitmap-from-imageData-no-image-rotation-expected.html: Added.
  • web-platform-tests/html/canvas/element/manual/imagebitmap/imageBitmap-from-imageData-no-image-rotation.html: Added.
  • web-platform-tests/html/canvas/element/manual/imagebitmap/transfer-worker.js: Added.
  • web-platform-tests/html/canvas/element/manual/imagebitmap/w3c-import.log: Copied from LayoutTests/imported/w3c/web-platform-tests/html/canvas/element/text-styles/w3c-import.log.
  • web-platform-tests/html/canvas/element/manual/imagebitmap/worker-onmessage-noop.js: Added.

(self.onmessage):

  • web-platform-tests/html/canvas/element/manual/line-styles/canvas_linestyles_linecap_001-expected.htm: Added.
  • web-platform-tests/html/canvas/element/manual/line-styles/canvas_linestyles_linecap_001.htm: Added.
  • web-platform-tests/html/canvas/element/manual/line-styles/lineto_a-expected.html: Added.
  • web-platform-tests/html/canvas/element/manual/line-styles/lineto_a.html: Added.
  • web-platform-tests/html/canvas/element/manual/line-styles/lineto_ref.html: Added.
  • web-platform-tests/html/canvas/element/manual/line-styles/setLineDash-expected.txt: Added.
  • web-platform-tests/html/canvas/element/manual/line-styles/setLineDash.html: Added.
  • web-platform-tests/html/canvas/element/manual/line-styles/w3c-import.log: Copied from LayoutTests/imported/w3c/web-platform-tests/html/canvas/element/wide-gamut-canvas/w3c-import.log.
  • web-platform-tests/html/canvas/element/manual/shadows/canvas_shadows_001-expected.txt: Added.
  • web-platform-tests/html/canvas/element/manual/shadows/canvas_shadows_001.htm: Added.
  • web-platform-tests/html/canvas/element/manual/shadows/canvas_shadows_002-expected.htm: Added.
  • web-platform-tests/html/canvas/element/manual/shadows/canvas_shadows_002.htm: Added.
  • web-platform-tests/html/canvas/element/manual/shadows/canvas_shadows_system_colors-expected.html: Added.
  • web-platform-tests/html/canvas/element/manual/shadows/canvas_shadows_system_colors.html: Added.
  • web-platform-tests/html/canvas/element/manual/shadows/shadowBlur_gaussian_tolerance.1-expected.txt: Added.
  • web-platform-tests/html/canvas/element/manual/shadows/shadowBlur_gaussian_tolerance.1.html: Added.
  • web-platform-tests/html/canvas/element/manual/shadows/w3c-import.log: Copied from LayoutTests/imported/w3c/web-platform-tests/html/canvas/element/wide-gamut-canvas/w3c-import.log.
  • web-platform-tests/html/canvas/element/manual/text-styles/canvas_text_font_001-expected.htm: Added.
  • web-platform-tests/html/canvas/element/manual/text-styles/canvas_text_font_001.htm: Added.
  • web-platform-tests/html/canvas/element/manual/text-styles/w3c-import.log: Copied from LayoutTests/imported/w3c/web-platform-tests/html/canvas/element/wide-gamut-canvas/w3c-import.log.
  • web-platform-tests/html/canvas/element/manual/the-canvas-state/2d.state.saverestore.imageSmoothingEnabled-expected.txt: Added.
  • web-platform-tests/html/canvas/element/manual/the-canvas-state/2d.state.saverestore.imageSmoothingEnabled.html: Added.
  • web-platform-tests/html/canvas/element/manual/the-canvas-state/2d.zero.size.canvas-expected.txt: Added.
  • web-platform-tests/html/canvas/element/manual/the-canvas-state/2d.zero.size.canvas.html: Added.
  • web-platform-tests/html/canvas/element/manual/the-canvas-state/canvas_state_restore_001-expected.htm: Added.
  • web-platform-tests/html/canvas/element/manual/the-canvas-state/canvas_state_restore_001.htm: Added.
  • web-platform-tests/html/canvas/element/manual/the-canvas-state/w3c-import.log: Copied from LayoutTests/imported/w3c/web-platform-tests/html/canvas/element/wide-gamut-canvas/w3c-import.log.
  • web-platform-tests/html/canvas/element/manual/transformations/2d.transformation.getTransform-expected.txt: Added.
  • web-platform-tests/html/canvas/element/manual/transformations/2d.transformation.getTransform.html: Added.
  • web-platform-tests/html/canvas/element/manual/transformations/canvas_transformations_reset_001-expected.html: Added.
  • web-platform-tests/html/canvas/element/manual/transformations/canvas_transformations_reset_001.html: Added.
  • web-platform-tests/html/canvas/element/manual/transformations/canvas_transformations_scale_001-expected.htm: Added.
  • web-platform-tests/html/canvas/element/manual/transformations/canvas_transformations_scale_001.htm: Added.
  • web-platform-tests/html/canvas/element/manual/transformations/transform_a-expected.html: Added.
  • web-platform-tests/html/canvas/element/manual/transformations/transform_a.html: Added.
  • web-platform-tests/html/canvas/element/manual/transformations/transform_ref.html: Added.
  • web-platform-tests/html/canvas/element/manual/transformations/w3c-import.log: Copied from LayoutTests/imported/w3c/web-platform-tests/html/canvas/element/wide-gamut-canvas/w3c-import.log.
  • web-platform-tests/html/canvas/element/manual/unclosed-canvas-1-expected.htm: Added.
  • web-platform-tests/html/canvas/element/manual/unclosed-canvas-1.htm: Added.
  • web-platform-tests/html/canvas/element/manual/unclosed-canvas-2-expected.htm: Added.
  • web-platform-tests/html/canvas/element/manual/unclosed-canvas-2.htm: Added.
  • web-platform-tests/html/canvas/element/manual/unclosed-canvas-3-expected.htm: Added.
  • web-platform-tests/html/canvas/element/manual/unclosed-canvas-3.htm: Added.
  • web-platform-tests/html/canvas/element/manual/unclosed-canvas-4-expected.htm: Added.
  • web-platform-tests/html/canvas/element/manual/unclosed-canvas-4.htm: Added.
  • web-platform-tests/html/canvas/element/manual/w3c-import.log: Copied from LayoutTests/imported/w3c/web-platform-tests/html/canvas/element/wide-gamut-canvas/w3c-import.log.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/ImageData-fidelity-expected.txt: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/ImageData-fidelity.html: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/canvas-colorManaged-convertToBlob-roundtrip-expected.txt: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/canvas-colorManaged-convertToBlob-roundtrip.html: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/canvas-colorManaged-toBlob-toDataURL-expected.txt: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/canvas-colorManaged-toBlob-toDataURL.html: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/canvas-colorspace-arguments-expected.txt: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/canvas-colorspace-arguments.html: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/canvas-createImageBitmap-e_srgb-expected.txt: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/canvas-createImageBitmap-e_srgb.html: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/canvas-createPutGetImageData-colorManaged-expected.txt: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/canvas-createPutGetImageData-colorManaged.html: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/canvas-draw-high-bit-depth-images-expected.txt: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/canvas-draw-high-bit-depth-images.html: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/canvas-drawImage-e_srgb-expected.txt: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/canvas-drawImage-e_srgb.html: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/canvas-drawImage-offscreenCanvas-expected.txt: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/canvas-drawImage-offscreenCanvas.html: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/canvas-getImageData-e_srgb-expected.txt: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/canvas-getImageData-e_srgb.html: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/imageData-colorManagedBehavior-expected.txt: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/imageData-colorManagedBehavior.html: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/imagedata-no-color-settings-crash-expected.txt: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/imagedata-no-color-settings-crash.html: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/pattern-semitransparent-p3d65.png: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/pattern-semitransparent-rec2020.png: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/pattern-semitransparent-srgb.png: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/pattern-srgb-fullcolor.ogv: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/pattern-srgb-transparent.avif: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/pattern-srgb-transparent.bmp: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/pattern-srgb-transparent.ico: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/pattern-srgb-transparent.png: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/pattern-srgb-transparent.webp: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/pattern-srgb.avif: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/pattern-srgb.bmp: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/pattern-srgb.gif: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/pattern-srgb.ico: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/pattern-srgb.jpg: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/pattern-srgb.png: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/pattern-srgb.svg: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/pattern-srgb.webp: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/png-16bit/2x2_16bit_AdobeRGB_opaque.png: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/png-16bit/2x2_16bit_AdobeRGB_transparent.png: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/png-16bit/2x2_16bit_DisplayP3_opaque.png: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/png-16bit/2x2_16bit_DisplayP3_transparent.png: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/png-16bit/2x2_16bit_ProPhoto_opaque.png: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/png-16bit/2x2_16bit_ProPhoto_transparent.png: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/png-16bit/2x2_16bit_Rec2020_opaque.png: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/png-16bit/2x2_16bit_Rec2020_transparent.png: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/png-16bit/2x2_16bit_interlaced_AdobeRGB_opaque.png: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/png-16bit/2x2_16bit_interlaced_AdobeRGB_transparent.png: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/png-16bit/2x2_16bit_interlaced_DisplayP3_opaque.png: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/png-16bit/2x2_16bit_interlaced_DisplayP3_transparent.png: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/png-16bit/2x2_16bit_interlaced_ProPhoto_opaque.png: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/png-16bit/2x2_16bit_interlaced_ProPhoto_transparent.png: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/png-16bit/2x2_16bit_interlaced_Rec2020_opaque.png: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/png-16bit/2x2_16bit_interlaced_Rec2020_transparent.png: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/png-16bit/2x2_16bit_interlaced_sRGB_opaque.png: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/png-16bit/2x2_16bit_interlaced_sRGB_transparent.png: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/png-16bit/2x2_16bit_sRGB_opaque.png: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/png-16bit/2x2_16bit_sRGB_transparent.png: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/png-16bit/2x2_8bit_AdobeRGB_opaque.png: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/png-16bit/2x2_8bit_AdobeRGB_transparent.png: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/png-16bit/2x2_8bit_DisplayP3_opaque.png: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/png-16bit/2x2_8bit_DisplayP3_transparent.png: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/png-16bit/2x2_8bit_ProPhoto_opaque.png: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/png-16bit/2x2_8bit_ProPhoto_transparent.png: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/png-16bit/2x2_8bit_Rec2020_opaque.png: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/png-16bit/2x2_8bit_Rec2020_transparent.png: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/png-16bit/2x2_8bit_sRGB_opaque.png: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/png-16bit/2x2_8bit_sRGB_transparent.png: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/png-16bit/w3c-import.log: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/w3c-import.log: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/transferFromImageBitmap-expected.txt: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/transferFromImageBitmap.html: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/w3c-import.log: Added.
  • web-platform-tests/html/canvas/element/path-objects/2d.path.roundrect.1.radius.dompointinit-expected.txt: Added.
  • web-platform-tests/html/canvas/element/path-objects/2d.path.roundrect.1.radius.dompointinit.html: Added.
  • web-platform-tests/html/canvas/element/path-objects/2d.path.roundrect.2.radii.1.dompointinit-expected.txt: Added.
  • web-platform-tests/html/canvas/element/path-objects/2d.path.roundrect.2.radii.1.dompointinit.html: Added.
  • web-platform-tests/html/canvas/element/path-objects/2d.path.roundrect.2.radii.2.dompointinit-expected.txt: Added.
  • web-platform-tests/html/canvas/element/path-objects/2d.path.roundrect.2.radii.2.dompointinit.html: Added.
  • web-platform-tests/html/canvas/element/path-objects/2d.path.roundrect.3.radii.1.dompointinit-expected.txt: Added.
  • web-platform-tests/html/canvas/element/path-objects/2d.path.roundrect.3.radii.1.dompointinit.html: Added.
  • web-platform-tests/html/canvas/element/path-objects/2d.path.roundrect.3.radii.2.dompointinit-expected.txt: Added.
  • web-platform-tests/html/canvas/element/path-objects/2d.path.roundrect.3.radii.2.dompointinit.html: Added.
  • web-platform-tests/html/canvas/element/path-objects/2d.path.roundrect.3.radii.3.dompointinit-expected.txt: Added.
  • web-platform-tests/html/canvas/element/path-objects/2d.path.roundrect.3.radii.3.dompointinit.html: Added.
  • web-platform-tests/html/canvas/element/path-objects/2d.path.roundrect.4.radii.1.dompointinit-expected.txt: Added.
  • web-platform-tests/html/canvas/element/path-objects/2d.path.roundrect.4.radii.1.dompointinit.html: Added.
  • web-platform-tests/html/canvas/element/path-objects/2d.path.roundrect.4.radii.2.dompointinit-expected.txt: Added.
  • web-platform-tests/html/canvas/element/path-objects/2d.path.roundrect.4.radii.2.dompointinit.html: Added.
  • web-platform-tests/html/canvas/element/path-objects/2d.path.roundrect.4.radii.3.dompointinit-expected.txt: Added.
  • web-platform-tests/html/canvas/element/path-objects/2d.path.roundrect.4.radii.3.dompointinit.html: Added.
  • web-platform-tests/html/canvas/element/path-objects/2d.path.roundrect.4.radii.4.dompointinit-expected.txt: Added.
  • web-platform-tests/html/canvas/element/path-objects/2d.path.roundrect.4.radii.4.dompointinit.html: Added.
  • web-platform-tests/html/canvas/element/path-objects/2d.path.roundrect.nonfinite.html:
  • web-platform-tests/html/canvas/element/path-objects/2d.path.roundrect.radius.negative-expected.txt: Added.
  • web-platform-tests/html/canvas/element/path-objects/2d.path.roundrect.radius.negative.html: Added.
  • web-platform-tests/html/canvas/element/path-objects/2d.path.roundrect.radius.none-expected.txt:
  • web-platform-tests/html/canvas/element/path-objects/2d.path.roundrect.radius.none.html:
  • web-platform-tests/html/canvas/element/path-objects/2d.path.roundrect.radius.toomany-expected.txt:
  • web-platform-tests/html/canvas/element/path-objects/2d.path.roundrect.radius.toomany.html:
  • web-platform-tests/html/canvas/element/path-objects/w3c-import.log:
  • web-platform-tests/html/canvas/element/text-styles/2d.text.font.parse.family-expected.txt: Added.
  • web-platform-tests/html/canvas/element/text-styles/2d.text.font.parse.family.html: Copied from LayoutTests/imported/w3c/web-platform-tests/html/canvas/element/path-objects/2d.path.roundrect.radius.toomany.html.
  • web-platform-tests/html/canvas/element/text-styles/w3c-import.log:
  • web-platform-tests/html/canvas/element/wide-gamut-canvas/w3c-import.log:

LayoutTests:

  • TestExpectations:
  • platform/ios/TestExpectations:
  • platform/ios/imported/w3c/web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/canvas-draw-high-bit-depth-images-expected.txt: Added.
  • platform/mac-bigsur/imported/w3c/web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/canvas-draw-high-bit-depth-images-expected.txt: Added.
  • platform/mac-catalina/TestExpectations:
  • platform/mac-catalina/imported/w3c/web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/canvas-draw-high-bit-depth-images-expected.txt: Added.
  • platform/mac-wk1/TestExpectations:
  • platform/mac-wk1/imported/w3c/web-platform-tests/html/canvas/element/manual/imagebitmap/createImageBitmap-flipY-expected.txt: Added.
  • platform/mac/TestExpectations:
1:17 AM Changeset in webkit [282202] by Antti Koivisto
  • 10 edits in trunk

RenderInline offsetTop/Left should not switch to legacy layout
https://bugs.webkit.org/show_bug.cgi?id=230040

Reviewed by Alan Bujtas.

LayoutTests/imported/w3c:

  • web-platform-tests/css/cssom-view/offsetTopLeft-empty-inline-expected.txt:
  • web-platform-tests/css/cssom-view/offsetTopLeft-leading-space-inline-expected.txt:

Source/WebCore:

Get position of the LFC inline box.

  • layout/integration/LayoutIntegrationLineLayout.cpp:

(WebCore::LayoutIntegration::LineLayout::firstInlineBoxRect const):

  • layout/integration/LayoutIntegrationLineLayout.h:
  • rendering/RenderInline.cpp:

(WebCore::RenderInline::offsetLeft const):
(WebCore::RenderInline::offsetTop const):
(WebCore::RenderInline::firstInlineBoxTopLeft const):
(WebCore::RenderInline::positionForPoint const):

Also fix positionForPoint as a failing test revealed a missing LFC path here.

  • rendering/RenderInline.h:

LayoutTests:

  • editing/selection/doubleclick-beside-cr-span.html:

Update the test for more standards compliant first inline box position.

1:16 AM Changeset in webkit [282201] by Martin Robinson
  • 3 edits
    2 adds in trunk

Position sticky does not work within table cells
https://bugs.webkit.org/show_bug.cgi?id=155496

Reviewed by Simon Fraser.

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-position/sticky/position-sticky-contained-by-display-table-ref.html: Added.
  • web-platform-tests/css/css-position/sticky/position-sticky-contained-by-display-table.html: Added.

Source/WebCore:

When computing the content box rect of a sticky container, do not include
intrinsic padding. Instead, use the values computed from CSS. The instrinsic
padding should not limit the movement area of a position:sticky item.

  • web-platform-tests/css/css-position/sticky/position-sticky-contained-by-display-table-ref.html: Added.
  • web-platform-tests/css/css-position/sticky/position-sticky-contained-by-display-table.html: Added.

Test: imported/w3c/web-platform-tests/css/css-position/sticky/position-sticky-contained-by-display-table.html

  • rendering/RenderBoxModelObject.cpp:

(WebCore::RenderBoxModelObject::computeStickyPositionConstraints const): Use CSS computed
values which do not include intrinsic padding.

1:10 AM Changeset in webkit [282200] by rmorisset@apple.com
  • 15 edits in trunk

Optimize compareStrictEq when neither side is a double and at least one is not a BigInt
https://bugs.webkit.org/show_bug.cgi?id=226755
<rdar://problem/79321542>

Reviewed by Yusuke Suzuki.

JSTests:

Made the error messages in stress/reflect-set a bit more informative in the process of debugging an issue with the patch.

  • stress/reflect-set.js:

(shouldBe):
(shouldThrow):

Source/JavaScriptCore:

This is a very similar patch to https://bugs.webkit.org/show_bug.cgi?id=226676.
The difference is that here we allow Strings on both side of the comparison, so we must add code to handle equality among strings.

Like for that other patch, the optimization is disabled for BigInt32.
Enabling it in that case would either need modifying the speculation (from banning HeapBigInt to banning all BigInts), or ensuring that we can never have a HeapBigInt so small it compares equal to a BigInt32.

I only implemented this optimization on 64-bits: it is just painful to write code that handles registers at such a low-level without a 32-bit machine to test things locally.
If anyone wants to make this optimization work on 32-bit, I don't foretell any major difficulty.

Finally, like quite a few other useKinds already, this case does not make the CompareStrictEq merge with an adjacent Branch.
The reason is simply that this patch relies on compileStringEquality, which currently does not support that feature.
I intend to fix this (for all useKinds at once) in a separate patch.

Effect on microbenchmarks:
poly-stricteq-not-double 46.8000+-0.4110 23.5872+-0.3061 definitely 1.9841x faster
poly-stricteq-not-double-nor-string 16.6880+-0.2317 16.3627+-0.3729 might be 1.0199x faster
poly-stricteq 49.2175+-0.6047 48.9532+-0.6758

I looked at how many cases of Untyped/Untyped compareStrictEq have been fixed by this patch and two other recent patches.
On JetStream2:

This leaves 20 instances of Untyped/Untyped.

On Speedometer2.0:

This leaves 75 instances of Untyped/Untyped.

  • bytecode/SpeculatedType.h:

(JSC::isNeitherDoubleNorHeapBigIntSpeculation):

  • dfg/DFGDoesGC.cpp:

(JSC::DFG::doesGC):

  • dfg/DFGFixupPhase.cpp:

(JSC::DFG::FixupPhase::fixupCompareStrictEqAndSameValue):

  • dfg/DFGNode.h:

(JSC::DFG::Node::shouldSpeculateNeitherDoubleNorHeapBigInt):

  • dfg/DFGSafeToExecute.h:

(JSC::DFG::SafeToExecuteEdge::operator()):

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileStrictEq):
(JSC::DFG::SpeculativeJIT::emitBitwiseJSValueEquality):
(JSC::DFG::SpeculativeJIT::emitBranchOnBitwiseJSValueEquality):
(JSC::DFG::SpeculativeJIT::compileNotDoubleNeitherDoubleNorHeapBigIntNorStringStrictEquality):
(JSC::DFG::SpeculativeJIT::compilePeepHoleNotDoubleNeitherDoubleNorHeapBigIntNorStringStrictEquality):
(JSC::DFG::SpeculativeJIT::speculateNeitherDoubleNorHeapBigInt):
(JSC::DFG::SpeculativeJIT::speculateNeitherDoubleNorHeapBigIntNorString):
(JSC::DFG::SpeculativeJIT::speculate):

  • dfg/DFGSpeculativeJIT.h:
  • dfg/DFGSpeculativeJIT64.cpp:

(JSC::DFG::SpeculativeJIT::compileNeitherDoubleNorHeapBigIntToNotDoubleStrictEquality):

  • dfg/DFGUseKind.cpp:

(WTF::printInternal):

  • dfg/DFGUseKind.h:

(JSC::DFG::typeFilterFor):
(JSC::DFG::checkMayCrashIfInputIsEmpty):

  • ftl/FTLCapabilities.cpp:

(JSC::FTL::canCompile):

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileCompareStrictEq):

12:37 AM Changeset in webkit [282199] by youenn@apple.com
  • 13 edits
    8 adds in trunk

Add support for RTCError and RTCErrorEvent
https://bugs.webkit.org/show_bug.cgi?id=229987

Reviewed by Eric Carlson.

LayoutTests/imported/w3c:

  • web-platform-tests/webrtc/RTCError-expected.txt:
  • web-platform-tests/webrtc/idlharness.https.window-expected.txt:

Source/WebCore:

Add support for RTCError and RTCErrorEvent as per https://w3c.github.io/webrtc-pc/#rtcerror-interface
and https://w3c.github.io/webrtc-pc/#rtcerrorevent-interface.

Covered by updated tests.

  • CMakeLists.txt:
  • DerivedSources-input.xcfilelist:
  • DerivedSources-output.xcfilelist:
  • DerivedSources.make:
  • Modules/mediastream/RTCError.cpp: Added.

(WebCore::RTCError::RTCError):

  • Modules/mediastream/RTCError.h: Added.
  • Modules/mediastream/RTCError.idl: Added.
  • Modules/mediastream/RTCErrorDetailType.h: Added.
  • Modules/mediastream/RTCErrorDetailType.idl: Added.
  • Modules/mediastream/RTCErrorEvent.cpp: Added.

(WebCore::RTCErrorEvent::RTCErrorEvent):

  • Modules/mediastream/RTCErrorEvent.h: Added.
  • Modules/mediastream/RTCErrorEvent.idl: Added.
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/WebCoreBuiltinNames.h:
  • dom/DOMException.h:
  • dom/EventNames.in:
12:21 AM Changeset in webkit [282198] by youenn@apple.com
  • 10 edits in trunk

Add support for RTCDataChannel closing event
https://bugs.webkit.org/show_bug.cgi?id=229988

Reviewed by Eric Carlson.

LayoutTests/imported/w3c:

  • web-platform-tests/webrtc/RTCDataChannel-close-expected.txt:
  • web-platform-tests/webrtc/idlharness.https.window-expected.txt:

Source/WebCore:

Add support for the closing event.
Updating close method as per https://w3c.github.io/webrtc-pc/#dom-rtcdatachannel-close:

  • make the channel enter closing state (without firing event)
  • wait for the state to move to closed from the backend.

We also add support for the error event by checking, when entering closed state whether
the channel is in an error state.

Covered by rebased test.

  • Modules/mediastream/RTCDataChannel.cpp:

(WebCore::RTCDataChannel::close):
(WebCore::RTCDataChannel::didChangeReadyState):
(WebCore::RTCDataChannel::stop):

  • Modules/mediastream/RTCDataChannel.idl:
  • Modules/mediastream/libwebrtc/LibWebRTCDataChannelHandler.cpp:

(WebCore::LibWebRTCDataChannelHandler::checkState):

  • dom/EventNames.h:

LayoutTests:

Unskip no longer timing out test.

12:13 AM Changeset in webkit [282197] by youenn@apple.com
  • 32 edits
    8 adds in trunk

Add support for RTCSctpTransport
https://bugs.webkit.org/show_bug.cgi?id=229292
<rdar://problem/82394152>

Reviewed by Eric Carlson.

LayoutTests/imported/w3c:

  • web-platform-tests/webrtc/RTCDataChannel-send-expected.txt:
  • web-platform-tests/webrtc/RTCIceTransport-expected.txt:
  • web-platform-tests/webrtc/RTCPeerConnection-connectionState.https-expected.txt:
  • web-platform-tests/webrtc/RTCRtpSender-transport.https-expected.txt:
  • web-platform-tests/webrtc/RTCSctpTransport-constructor-expected.txt:
  • web-platform-tests/webrtc/RTCSctpTransport-events-expected.txt:
  • web-platform-tests/webrtc/RTCSctpTransport-maxChannels-expected.txt:
  • web-platform-tests/webrtc/RTCSctpTransport-maxMessageSize-expected.txt:
  • web-platform-tests/webrtc/idlharness.https.window-expected.txt:

Source/ThirdParty/libwebrtc:

  • Configurations/libwebrtc.iOS.exp:
  • Configurations/libwebrtc.iOSsim.exp:
  • Configurations/libwebrtc.mac.exp:

Source/WebCore:

Expose RTSctpTransport API and getter from the peer connection.
Implement event mechanism and getters.
Additional work will be needed to make ice transport objects consistent between SCTP and senders/receivers.
Covered by rebased tests.

  • CMakeLists.txt:
  • DerivedSources-input.xcfilelist:
  • DerivedSources-output.xcfilelist:
  • DerivedSources.make:
  • Modules/mediastream/PeerConnectionBackend.cpp:

(WebCore::PeerConnectionBackend::setLocalDescriptionSucceeded):
(WebCore::PeerConnectionBackend::setRemoteDescriptionSucceeded):

  • Modules/mediastream/PeerConnectionBackend.h:
  • Modules/mediastream/RTCPeerConnection.cpp:

(WebCore::RTCPeerConnection::updateSctpBackend):

  • Modules/mediastream/RTCPeerConnection.h:
  • Modules/mediastream/RTCPeerConnection.idl:
  • Modules/mediastream/RTCSctpTransport.cpp: Added.

(WebCore::RTCSctpTransport::RTCSctpTransport):
(WebCore::RTCSctpTransport::~RTCSctpTransport):
(WebCore::RTCSctpTransport::stop):
(WebCore::RTCSctpTransport::virtualHasPendingActivity const):
(WebCore::RTCSctpTransport::onStateChanged):

  • Modules/mediastream/RTCSctpTransport.h: Added.
  • Modules/mediastream/RTCSctpTransport.idl: Added.
  • Modules/mediastream/RTCSctpTransportBackend.h: Added.

(WebCore::operator==):

  • Modules/mediastream/RTCSctpTransportState.h: Added.
  • Modules/mediastream/RTCSctpTransportState.idl: Added.
  • Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.cpp:

(WebCore::SctpTransportState::SctpTransportState):
(WebCore::SctpTransportState::createBackend):
(WebCore::LibWebRTCMediaEndpoint::setLocalSessionDescriptionSucceeded):
(WebCore::LibWebRTCMediaEndpoint::setLocalSessionDescriptionFailed):
(WebCore::LibWebRTCMediaEndpoint::setRemoteSessionDescriptionSucceeded):

  • Modules/mediastream/libwebrtc/LibWebRTCSctpTransportBackend.cpp: Added.

(WebCore::toRTCSctpTransportState):
(WebCore::LibWebRTCSctpTransportBackendObserver::LibWebRTCSctpTransportBackendObserver):
(WebCore::LibWebRTCSctpTransportBackendObserver::updateState):
(WebCore::LibWebRTCSctpTransportBackendObserver::start):
(WebCore::LibWebRTCSctpTransportBackendObserver::stop):
(WebCore::LibWebRTCSctpTransportBackendObserver::OnStateChange):
(WebCore::LibWebRTCSctpTransportBackend::LibWebRTCSctpTransportBackend):
(WebCore::LibWebRTCSctpTransportBackend::~LibWebRTCSctpTransportBackend):
(WebCore::LibWebRTCSctpTransportBackend::dtlsTransportBackend):
(WebCore::LibWebRTCSctpTransportBackend::registerClient):
(WebCore::LibWebRTCSctpTransportBackend::unregisterClient):

  • Modules/mediastream/libwebrtc/LibWebRTCSctpTransportBackend.h: Added.
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/WebCoreBuiltinNames.h:
  • dom/EventTargetFactory.in:

LayoutTests:

  • webrtc/datachannel/dtls10.html:

We should now check for the RTCSctpTransport's RTCDtlsTransport state
to identify whether connection is successful or not.

12:02 AM Changeset in webkit [282196] by Jean-Yves Avenard
  • 4 edits
    2 adds in trunk

[WebAudio/WebM] Incorrect number of frames returned if decoding frame rate doesn't match original
https://bugs.webkit.org/show_bug.cgi?id=229251
rdar://problem/82095650

Source/WebCore:

Reviewed by Eric Carlson..

We can't rely on CoreMedia to performed the trimming correctly when resampling is also to be done.
It gives unexpected results. Let's do it ourselves instead.
Test: webaudio/decode-audio-data-webm-opus-resample.html

  • platform/audio/cocoa/AudioFileReaderCocoa.cpp:

(WebCore::AudioFileReader::decodeWebMData const):

LayoutTests:

Reviewed by Eric Carlson.

  • webaudio/decode-audio-data-webm-opus-resample-expected.txt: Added.
  • webaudio/decode-audio-data-webm-opus-resample.html: Added.
12:01 AM Changeset in webkit [282195] by ntim@apple.com
  • 29 edits
    10 copies
    5 moves
    133 adds
    2 deletes in trunk/LayoutTests

Re-import css/css-pseudo WPT
https://bugs.webkit.org/show_bug.cgi?id=230002

Reviewed by Youenn Fablet.

https://github.com/web-platform-tests/wpt/commit/b3958a2b77988a3e4c6948dfce1b62f7b0ab04cf

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-pseudo/README.md: Added.
  • web-platform-tests/css/css-pseudo/active-selection-011-expected.html: Added.
  • web-platform-tests/css/css-pseudo/active-selection-011.html: Added.
  • web-platform-tests/css/css-pseudo/active-selection-012-expected.html: Added.
  • web-platform-tests/css/css-pseudo/active-selection-012.html: Added.
  • web-platform-tests/css/css-pseudo/active-selection-014-expected.html: Added.
  • web-platform-tests/css/css-pseudo/active-selection-014.html: Added.
  • web-platform-tests/css/css-pseudo/active-selection-016-expected.html: Added.
  • web-platform-tests/css/css-pseudo/active-selection-016.html: Added.
  • web-platform-tests/css/css-pseudo/active-selection-018-expected.html: Added.
  • web-platform-tests/css/css-pseudo/active-selection-018.html: Added.
  • web-platform-tests/css/css-pseudo/active-selection-021-expected.html: Added.
  • web-platform-tests/css/css-pseudo/active-selection-021.html: Added.
  • web-platform-tests/css/css-pseudo/active-selection-025-expected.html: Added.
  • web-platform-tests/css/css-pseudo/active-selection-025.html: Added.
  • web-platform-tests/css/css-pseudo/active-selection-027-expected.html: Added.
  • web-platform-tests/css/css-pseudo/active-selection-027.html: Added.
  • web-platform-tests/css/css-pseudo/active-selection-031-expected.html: Added.
  • web-platform-tests/css/css-pseudo/active-selection-031.html: Added.
  • web-platform-tests/css/css-pseudo/active-selection-041-expected.html: Added.
  • web-platform-tests/css/css-pseudo/active-selection-041.html: Added.
  • web-platform-tests/css/css-pseudo/active-selection-043-expected.xht: Added.
  • web-platform-tests/css/css-pseudo/active-selection-043.html: Added.
  • web-platform-tests/css/css-pseudo/active-selection-045-expected.xht: Added.
  • web-platform-tests/css/css-pseudo/active-selection-045.html: Added.
  • web-platform-tests/css/css-pseudo/active-selection-057-expected.xht: Added.
  • web-platform-tests/css/css-pseudo/active-selection-057.html: Added.
  • web-platform-tests/css/css-pseudo/before-after-dynamic-custom-property-001-expected.html: Added.
  • web-platform-tests/css/css-pseudo/before-after-dynamic-custom-property-001.html: Added.
  • web-platform-tests/css/css-pseudo/file-selector-button-001-expected.html: Added.
  • web-platform-tests/css/css-pseudo/file-selector-button-001-notref.html: Added.
  • web-platform-tests/css/css-pseudo/file-selector-button-001.html: Added.
  • web-platform-tests/css/css-pseudo/file-selector-button-after-part-expected.html: Added.
  • web-platform-tests/css/css-pseudo/file-selector-button-after-part.html: Added.
  • web-platform-tests/css/css-pseudo/file-selector-button-display-none-overflow-crash.html: Added.
  • web-platform-tests/css/css-pseudo/file-selector-button-display-toggle-crash.html: Added.
  • web-platform-tests/css/css-pseudo/first-letter-005-expected.html: Added.
  • web-platform-tests/css/css-pseudo/first-letter-005.html: Added.
  • web-platform-tests/css/css-pseudo/first-letter-digraph-expected.html: Added.
  • web-platform-tests/css/css-pseudo/first-letter-digraph.html: Added.
  • web-platform-tests/css/css-pseudo/first-letter-punctuation-and-space-expected.html: Added.
  • web-platform-tests/css/css-pseudo/first-letter-punctuation-and-space.html: Added.
  • web-platform-tests/css/css-pseudo/first-letter-punctuation-dynamic-expected.html: Added.
  • web-platform-tests/css/css-pseudo/first-letter-punctuation-dynamic.html: Added.
  • web-platform-tests/css/css-pseudo/first-letter-skip-empty-span-expected.html: Added.
  • web-platform-tests/css/css-pseudo/first-letter-skip-empty-span-nested-expected.html: Added.
  • web-platform-tests/css/css-pseudo/first-letter-skip-empty-span-nested.html: Added.
  • web-platform-tests/css/css-pseudo/first-letter-skip-empty-span.html: Added.
  • web-platform-tests/css/css-pseudo/first-letter-with-quote-expected.html: Added.
  • web-platform-tests/css/css-pseudo/first-letter-with-quote.html: Added.
  • web-platform-tests/css/css-pseudo/first-letter-with-span-expected.html: Added.
  • web-platform-tests/css/css-pseudo/first-letter-with-span.html: Added.
  • web-platform-tests/css/css-pseudo/first-line-allowed-properties-expected.txt: Added.
  • web-platform-tests/css/css-pseudo/first-line-allowed-properties.html: Added.
  • web-platform-tests/css/css-pseudo/first-line-replaced-001-expected.html: Added.
  • web-platform-tests/css/css-pseudo/first-line-replaced-001.html: Added.
  • web-platform-tests/css/css-pseudo/first-line-with-inline-block-before-expected.html: Added.
  • web-platform-tests/css/css-pseudo/first-line-with-inline-block-before.html: Added.
  • web-platform-tests/css/css-pseudo/first-line-with-inline-block-expected.html: Added.
  • web-platform-tests/css/css-pseudo/first-line-with-inline-block.html: Added.
  • web-platform-tests/css/css-pseudo/first-line-with-out-of-flow-and-nested-div-expected.html: Added.
  • web-platform-tests/css/css-pseudo/first-line-with-out-of-flow-and-nested-div.html: Added.
  • web-platform-tests/css/css-pseudo/first-line-with-out-of-flow-and-nested-span-expected.html: Added.
  • web-platform-tests/css/css-pseudo/first-line-with-out-of-flow-and-nested-span.html: Added.
  • web-platform-tests/css/css-pseudo/grammar-spelling-errors-001-expected.html: Added.
  • web-platform-tests/css/css-pseudo/grammar-spelling-errors-001.html: Added.
  • web-platform-tests/css/css-pseudo/grammar-spelling-errors-002-expected.html: Added.
  • web-platform-tests/css/css-pseudo/grammar-spelling-errors-002.html: Added.
  • web-platform-tests/css/css-pseudo/highlight-painting-001-expected.html: Added.
  • web-platform-tests/css/css-pseudo/highlight-painting-001.html: Added.
  • web-platform-tests/css/css-pseudo/highlight-painting-002-expected.html: Added.
  • web-platform-tests/css/css-pseudo/highlight-painting-002.html: Added.
  • web-platform-tests/css/css-pseudo/highlight-painting-003-expected.html: Added.
  • web-platform-tests/css/css-pseudo/highlight-painting-003.html: Added.
  • web-platform-tests/css/css-pseudo/highlight-painting-004-expected.html: Added.
  • web-platform-tests/css/css-pseudo/highlight-painting-004.html: Added.
  • web-platform-tests/css/css-pseudo/highlight-pseudos-computed-expected.txt: Added.
  • web-platform-tests/css/css-pseudo/highlight-pseudos-computed.html: Added.
  • web-platform-tests/css/css-pseudo/marker-animate-002-expected.html: Added.
  • web-platform-tests/css/css-pseudo/marker-animate-002.html: Added.
  • web-platform-tests/css/css-pseudo/marker-content-023-expected.html: Added.
  • web-platform-tests/css/css-pseudo/marker-content-023.html: Added.
  • web-platform-tests/css/css-pseudo/marker-content-024-expected.html: Added.
  • web-platform-tests/css/css-pseudo/marker-content-024.html: Added.
  • web-platform-tests/css/css-pseudo/marker-hyphens-expected.html: Added.
  • web-platform-tests/css/css-pseudo/marker-hyphens.html: Added.
  • web-platform-tests/css/css-pseudo/marker-letter-spacing-expected.html: Added.
  • web-platform-tests/css/css-pseudo/marker-letter-spacing.html: Added.
  • web-platform-tests/css/css-pseudo/marker-line-break-expected.html: Added.
  • web-platform-tests/css/css-pseudo/marker-line-break.html: Added.
  • web-platform-tests/css/css-pseudo/marker-line-height-expected.html: Added.
  • web-platform-tests/css/css-pseudo/marker-line-height.html: Added.
  • web-platform-tests/css/css-pseudo/marker-overflow-wrap-expected.html: Added.
  • web-platform-tests/css/css-pseudo/marker-overflow-wrap.html: Added.
  • web-platform-tests/css/css-pseudo/marker-tab-size-expected.html: Added.
  • web-platform-tests/css/css-pseudo/marker-tab-size.html: Added.
  • web-platform-tests/css/css-pseudo/marker-text-align-expected.html: Added.
  • web-platform-tests/css/css-pseudo/marker-text-align.html: Added.
  • web-platform-tests/css/css-pseudo/marker-text-decoration-skip-ink-expected.html: Added.
  • web-platform-tests/css/css-pseudo/marker-text-decoration-skip-ink.html: Added.
  • web-platform-tests/css/css-pseudo/marker-text-emphasis-expected.html: Added.
  • web-platform-tests/css/css-pseudo/marker-text-emphasis.html: Added.
  • web-platform-tests/css/css-pseudo/marker-text-shadow-expected.html: Added.
  • web-platform-tests/css/css-pseudo/marker-text-shadow.html: Added.
  • web-platform-tests/css/css-pseudo/marker-text-transform-default-expected.html: Added.
  • web-platform-tests/css/css-pseudo/marker-text-transform-default.html: Added.
  • web-platform-tests/css/css-pseudo/marker-text-transform-uppercase-expected.html: Added.
  • web-platform-tests/css/css-pseudo/marker-text-transform-uppercase.html: Added.
  • web-platform-tests/css/css-pseudo/marker-word-break-expected.html: Added.
  • web-platform-tests/css/css-pseudo/marker-word-break.html: Added.
  • web-platform-tests/css/css-pseudo/marker-word-spacing-expected.html: Added.
  • web-platform-tests/css/css-pseudo/marker-word-spacing.html: Added.
  • web-platform-tests/css/css-pseudo/parsing/highlight-pseudos-expected.txt: Added.
  • web-platform-tests/css/css-pseudo/parsing/highlight-pseudos.html: Added.
  • web-platform-tests/css/css-pseudo/placeholder-excluded-properties-expected.html: Added.
  • web-platform-tests/css/css-pseudo/placeholder-excluded-properties.html: Added.
  • web-platform-tests/css/css-pseudo/placeholder-input-dynamic-crash.html: Added.
  • web-platform-tests/css/css-pseudo/selection-contenteditable-011-expected.html: Added.
  • web-platform-tests/css/css-pseudo/selection-contenteditable-011.html: Added.
  • web-platform-tests/css/css-pseudo/selection-decoration-p1-expected.html: Added.
  • web-platform-tests/css/css-pseudo/selection-decoration-p1.html: Added.
  • web-platform-tests/css/css-pseudo/selection-decoration-p2-expected.html: Added.
  • web-platform-tests/css/css-pseudo/selection-decoration-p2.html: Added.
  • web-platform-tests/css/css-pseudo/selection-decoration-p3-expected.html: Added.
  • web-platform-tests/css/css-pseudo/selection-decoration-p3.html: Added.
  • web-platform-tests/css/css-pseudo/selection-decoration-p4-expected.html: Added.
  • web-platform-tests/css/css-pseudo/selection-decoration-p4.html: Added.
  • web-platform-tests/css/css-pseudo/selection-input-011-expected.html: Added.
  • web-platform-tests/css/css-pseudo/selection-input-011.html: Added.
  • web-platform-tests/css/css-pseudo/selection-intercharacter-011-expected.html: Added.
  • web-platform-tests/css/css-pseudo/selection-intercharacter-011.html: Added.
  • web-platform-tests/css/css-pseudo/selection-intercharacter-012-expected.html: Added.
  • web-platform-tests/css/css-pseudo/selection-intercharacter-012.html: Added.
  • web-platform-tests/css/css-pseudo/selection-overlay-and-grammar-001-expected.html: Added.
  • web-platform-tests/css/css-pseudo/selection-overlay-and-grammar-001.html: Added.
  • web-platform-tests/css/css-pseudo/selection-overlay-and-spelling-001-expected.html: Added.
  • web-platform-tests/css/css-pseudo/selection-overlay-and-spelling-001.html: Added.
  • web-platform-tests/css/css-pseudo/selection-paint-image-expected.html: Added.
  • web-platform-tests/css/css-pseudo/selection-paint-image-notref.html: Added.
  • web-platform-tests/css/css-pseudo/selection-paint-image.html: Added.
  • web-platform-tests/css/css-pseudo/selection-textarea-011-expected.html: Added.
  • web-platform-tests/css/css-pseudo/selection-textarea-011.html: Added.
  • web-platform-tests/css/css-pseudo/support/100x100-red.png: Added.
  • web-platform-tests/css/css-pseudo/support/60x60-red.png: Added.
  • web-platform-tests/css/css-pseudo/support/highlights.css: Added.

(.highlight_reftest):
(.hrt_layers,):
(.hrt_layers):
(.hrt_layers > *):
(.hrt_cover):
(.hrt_hider):
(.hrt_hider > *):

  • web-platform-tests/css/css-pseudo/support/selections.js: Added.

(selectRangeWith):
(selectNodeContents):
(trySpellcheck):

  • web-platform-tests/css/css-pseudo/support/w3c-import.log: Added.
  • resources/resource-files.json:
  • web-platform-tests/css/css-pseudo/active-selection-056.html:
  • web-platform-tests/css/css-pseudo/active-selection-063.html:
  • web-platform-tests/css/css-pseudo/cascade-highlight-001-expected.html:
  • web-platform-tests/css/css-pseudo/cascade-highlight-001.html:
  • web-platform-tests/css/css-pseudo/cascade-highlight-002-expected.html:
  • web-platform-tests/css/css-pseudo/cascade-highlight-002.html:
  • web-platform-tests/css/css-pseudo/cascade-highlight-004-expected.html:
  • web-platform-tests/css/css-pseudo/cascade-highlight-004.html:
  • web-platform-tests/css/css-pseudo/file-chooser-button-001-notref.html: Removed.
  • web-platform-tests/css/css-pseudo/file-chooser-button-001.tentative-expected.html: Removed.
  • web-platform-tests/css/css-pseudo/file-chooser-button-001.tentative.html: Removed.
  • web-platform-tests/css/css-pseudo/file-chooser-button-display-toggle-crash.tentative-expected.txt: Removed.
  • web-platform-tests/css/css-pseudo/file-chooser-button-display-toggle-crash.tentative.html: Removed.
  • web-platform-tests/css/css-pseudo/first-letter-allowed-properties-expected.txt:
  • web-platform-tests/css/css-pseudo/first-letter-allowed-properties.html:
  • web-platform-tests/css/css-pseudo/first-line-with-out-of-flow.html:
  • web-platform-tests/css/css-pseudo/marker-content-008.tentative-expected.html:
  • web-platform-tests/css/css-pseudo/marker-content-008.tentative.html:
  • web-platform-tests/css/css-pseudo/marker-default-styles-expected.txt:
  • web-platform-tests/css/css-pseudo/marker-default-styles.html:
  • web-platform-tests/css/css-pseudo/parsing/marker-supported-properties-expected.txt:
  • web-platform-tests/css/css-pseudo/parsing/marker-supported-properties-in-animation-expected.txt:
  • web-platform-tests/css/css-pseudo/parsing/marker-supported-properties-in-animation.html:
  • web-platform-tests/css/css-pseudo/parsing/marker-supported-properties.html:
  • web-platform-tests/css/css-pseudo/parsing/tree-abiding-pseudo-elements-expected.txt:
  • web-platform-tests/css/css-pseudo/parsing/tree-abiding-pseudo-elements.html:
  • web-platform-tests/css/css-pseudo/parsing/w3c-import.log:
  • web-platform-tests/css/css-pseudo/selection-text-shadow-016-expected.html: Removed.
  • web-platform-tests/css/css-pseudo/selection-text-shadow-016.html: Removed.
  • web-platform-tests/css/css-pseudo/w3c-import.log:

LayoutTests:

Sep 8, 2021:

11:56 PM Changeset in webkit [282194] by youenn@apple.com
  • 5 edits in trunk

RTCPeerConnection.addIceCandidate takes an optional argument
https://bugs.webkit.org/show_bug.cgi?id=229962

Reviewed by Eric Carlson.

LayoutTests/imported/w3c:

  • web-platform-tests/webrtc/RTCPeerConnection-operations.https-expected.txt:
  • web-platform-tests/webrtc/idlharness.https.window-expected.txt:

Source/WebCore:

Covered by rebased test.

  • Modules/mediastream/RTCPeerConnection.idl:
11:49 PM Changeset in webkit [282193] by youenn@apple.com
  • 4 edits in trunk/Source/WebCore

Add video metrics logging to LocalSampleBufferDisplayLayer
https://bugs.webkit.org/show_bug.cgi?id=229930

Reviewed by Eric Carlson.

Source/WebCore:

No change of behavior.

  • platform/graphics/avfoundation/objc/LocalSampleBufferDisplayLayer.mm:

(WebCore::LocalSampleBufferDisplayLayer::enqueueSampleBuffer):
Log every minute AVSBDL metrics, which can help to evaluate video freeze issues.

Source/WebCore/PAL:

  • PAL/pal/spi/cocoa/AVFoundationSPI.h:
10:27 PM Changeset in webkit [282192] by commit-queue@webkit.org
  • 14 edits in trunk

webgl/2.0.y/conformance2/vertex_arrays/vertex-array-object.html fails
https://bugs.webkit.org/show_bug.cgi?id=223360
<rdar://problem/75774546>

Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2021-09-08
Reviewed by Dean Jackson.

Source/WebCore:

Deleting a buffer will remove the buffer from currently active
vertex array buffer bindings. This worked.
Drawing with a vertex array object that has enabled indexes
but missing buffers for those indexes should fail. This
WebGL specific constraint is checked by ANGLE. However, WebCore
relies on buffer deletion to update the ANGLE VAO. The deletion
does not happen due to the buffers in the test being bound to
multiple VAOs.
Add this check also to WebCore.

Fixed tests:
webgl/1.0.x/conformance/extensions/oes-vertex-array-object.html
webgl/2.0.y/conformance2/vertex_arrays/vertex-array-object.html

  • html/canvas/WebGL2RenderingContext.cpp:

(WebCore::WebGL2RenderingContext::initializeVertexArrayObjects):
(WebCore::WebGL2RenderingContext::drawRangeElements):

  • html/canvas/WebGLRenderingContext.cpp:

(WebCore::WebGLRenderingContext::initializeVertexArrayObjects):

  • html/canvas/WebGLRenderingContextBase.cpp:

(WebCore::WebGLRenderingContextBase::disableVertexAttribArray):
(WebCore::WebGLRenderingContextBase::validateVertexArrayObject):
(WebCore::WebGLRenderingContextBase::drawArrays):
(WebCore::WebGLRenderingContextBase::drawElements):
(WebCore::WebGLRenderingContextBase::enableVertexAttribArray):
(WebCore::WebGLRenderingContextBase::vertexAttribPointer):
(WebCore::WebGLRenderingContextBase::initVertexAttrib0):
(WebCore::WebGLRenderingContextBase::drawArraysInstanced):
(WebCore::WebGLRenderingContextBase::drawElementsInstanced):

  • html/canvas/WebGLRenderingContextBase.h:
  • html/canvas/WebGLVertexArrayObjectBase.cpp:

(WebCore::WebGLVertexArrayObjectBase::WebGLVertexArrayObjectBase):
(WebCore::WebGLVertexArrayObjectBase::setVertexAttribEnabled):
(WebCore::WebGLVertexArrayObjectBase::setVertexAttribState):
(WebCore::WebGLVertexArrayObjectBase::unbindBuffer):
(WebCore::WebGLVertexArrayObjectBase::updateVertexAttrib0):
(WebCore::WebGLVertexArrayObjectBase::areAllEnabledAttribBuffersBound):

  • html/canvas/WebGLVertexArrayObjectBase.h:

(WebCore::WebGLVertexArrayObjectBase::getVertexAttribState):
Make VertexAttribState& a const so that we can maintain confidence
that the cached value of "all enabled attrib buffers are bound"
is maintained, e.g. that the callers cannot modify enabled or bound
buffer status.

LayoutTests:

Test webgl/2.0.y/conformance2/vertex_arrays/vertex-array-object.html explicitly
until 2.0.y suite is run by default. Same for 1.0.x.

  • TestExpectations:
  • fast/canvas/webgl/drawElements-empty-vertex-data-expected.txt:
  • fast/canvas/webgl/vertexAttribPointer-with-bad-offset-expected.txt:

Add console logs for the added errors.

  • platform/ios/TestExpectations:
  • platform/mac/TestExpectations:

For consistency, remove all skips for vertex-array-object tests.
They should now work.

9:37 PM Changeset in webkit [282191] by rniwa@webkit.org
  • 28 edits in trunk/Source

Deploy CheckedRef on FocusController
https://bugs.webkit.org/show_bug.cgi?id=230037

Reviewed by Wenson Hsieh.

Source/WebCore:

Make FocusController inherit from CanMakeCheckedPtr and deploy CheckedRef / CheckedPtr wherever appropriate.

  • dom/Element.cpp:

(WebCore::Element::focus):
(WebCore::Element::blur):

  • editing/FrameSelection.cpp:

(WebCore::FrameSelection::selectFrameElementInParentIfFullySelected):
(WebCore::FrameSelection::setFocusedElementIfNeeded):

  • editing/cocoa/AutofillElements.cpp:

(WebCore::AutofillElements::computeAutofillElements):

  • editing/cocoa/DictionaryLookup.mm:

(WebCore::DictionaryLookup::rangeAtHitTestResult):

  • history/BackForwardCache.cpp:

(WebCore::BackForwardCache::trySuspendPage):

  • history/CachedPage.cpp:

(WebCore::CachedPage::restore):

  • html/BaseDateAndTimeInputType.cpp:

(WebCore::BaseDateAndTimeInputType::handleFocusEvent):

  • html/HTMLFrameElementBase.cpp:

(WebCore::HTMLFrameElementBase::setFocus):

  • page/DOMWindow.cpp:

(WebCore::DOMWindow::focus):

  • page/EventHandler.cpp:

(WebCore::EventHandler::handlePasteGlobalSelection):
(WebCore::EventHandler::dispatchMouseEvent):
(WebCore::EventHandler::defaultArrowEventHandler):
(WebCore::EventHandler::defaultTabEventHandler):
(WebCore::EventHandler::focusDocumentView):

  • page/FocusController.h:
  • page/Frame.cpp:

(WebCore::Frame::willDetachPage):

  • page/Page.cpp:

(WebCore::Page::findString):
(WebCore::Page::replaceSelectionWithText):
(WebCore::Page::editableElementsInRect const):
(WebCore::Page::selection const):
(WebCore::Page::setActivityState):
(WebCore::Page::revealCurrentSelection):

  • page/ios/EventHandlerIOS.mm:

(WebCore::EventHandler::focusDocumentView):

  • page/mac/EventHandlerMac.mm:

(WebCore::EventHandler::focusDocumentView):

  • page/mac/ServicesOverlayController.mm:

(WebCore::ServicesOverlayController::remainingTimeUntilHighlightShouldBeShown const):
(WebCore::ServicesOverlayController::telephoneNumberRangesForFocusedFrame):
(WebCore::ServicesOverlayController::handleClick):

Source/WebKit:

  • WebProcess/InjectedBundle/API/c/WKBundleFrame.cpp:

(WKBundleFrameFocus):

  • WebProcess/InjectedBundle/API/c/WKBundlePage.cpp:

(WKAccessibilityFocusedObject):

  • WebProcess/Plugins/PluginView.cpp:

(WebKit::PluginView::focusPluginElement):

  • WebProcess/WebCoreSupport/mac/WebEditorClientMac.mm:

(WebKit::changeWordCase):

  • WebProcess/WebPage/Cocoa/TextCheckingControllerProxy.mm:

(WebKit::TextCheckingControllerProxy::rangeAndOffsetRelativeToSelection):
(WebKit::TextCheckingControllerProxy::replaceRelativeToSelection):
(WebKit::TextCheckingControllerProxy::removeAnnotationRelativeToSelection):

  • WebProcess/WebPage/Cocoa/WebPageCocoa.mm:

(WebKit::WebPage::performDictionaryLookupAtLocation):
(WebKit::WebPage::performDictionaryLookupOfCurrentSelection):
(WebKit::WebPage::insertDictatedTextAsync):

  • WebProcess/WebPage/FindController.cpp:

(WebKit::FindController::showFindIndicatorInSelection):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::editorState const):
(WebKit::WebPage::changeFontAttributes):
(WebKit::WebPage::changeFont):
(WebKit::WebPage::updateEditorStateAfterLayoutIfEditabilityChanged):
(WebKit::WebPage::executeEditingCommand):
(WebKit::WebPage::setEditable):
(WebKit::WebPage::increaseListLevel):
(WebKit::WebPage::decreaseListLevel):
(WebKit::WebPage::changeListType):
(WebKit::WebPage::setBaseWritingDirection):
(WebKit::WebPage::isEditingCommandEnabled):
(WebKit::WebPage::contextMenuForKeyEvent):
(WebKit::WebPage::handleKeyEventByRelinquishingFocusToChrome):
(WebKit::WebPage::validateCommand):
(WebKit::WebPage::requestFontAttributesAtSelectionStart):
(WebKit::WebPage::centerSelectionInVisibleArea):
(WebKit::WebPage::insertNewlineInQuotedContent):
(WebKit::WebPage::viewWillStartLiveResize):
(WebKit::WebPage::viewWillEndLiveResize):
(WebKit::WebPage::setInitialFocus):
(WebKit::WebPage::getSelectionOrContentsAsString):
(WebKit::WebPage::advanceToNextMisspelling):
(WebKit::WebPage::hasRichlyEditableSelection const):
(WebKit::WebPage::changeSpellingToWord):
(WebKit::WebPage::uppercaseWord):
(WebKit::WebPage::lowercaseWord):
(WebKit::WebPage::capitalizeWord):
(WebKit::WebPage::clearSelection):
(WebKit::WebPage::restoreSelectionInFocusedEditableElement):
(WebKit::WebPage::handleAlternativeTextUIResult):
(WebKit::WebPage::setCompositionForTesting):
(WebKit::WebPage::hasCompositionForTesting):
(WebKit::WebPage::confirmCompositionForTesting):
(WebKit::WebPage::setTextAsync):
(WebKit::WebPage::insertTextAsync):
(WebKit::WebPage::hasMarkedText):
(WebKit::WebPage::getMarkedRangeAsync):
(WebKit::WebPage::getSelectedRangeAsync):
(WebKit::WebPage::characterIndexForPointAsync):
(WebKit::WebPage::firstRectForCharacterRangeAsync):
(WebKit::WebPage::setCompositionAsync):
(WebKit::WebPage::confirmCompositionAsync):
(WebKit::WebPage::didChangeSelectionOrOverflowScrollPosition):
(WebKit::WebPage::didEndUserTriggeredSelectionChanges):
(WebKit::WebPage::sendEditorStateUpdate):
(WebKit::WebPage::flushPendingEditorStateUpdate):
(WebKit::WebPage::insertAttachment):
(WebKit::WebPage::createAppHighlightInSelectedRange):
(WebKit::WebPage::restoreAppHighlightsAndScrollToIndex):

  • WebProcess/WebPage/ios/FindControllerIOS.mm:

(WebKit::FindController::didFindString):

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::platformWillPerformEditingCommand):
(WebKit::WebPage::getSelectionContext):
(WebKit::WebPage::updateSelectionAppearance):
(WebKit::WebPage::generateSyntheticEditingCommand):
(WebKit::WebPage::completeSyntheticClick):
(WebKit::WebPage::didConcludeEditDrag):
(WebKit::WebPage::clearSelectionAfterTapIfNeeded):
(WebKit::WebPage::selectWithGesture):
(WebKit::WebPage::clearSelection):
(WebKit::WebPage::dispatchSyntheticMouseEventsForSelectionGesture):
(WebKit::WebPage::updateSelectionWithTouches):
(WebKit::WebPage::selectWithTwoTouches):
(WebKit::WebPage::extendSelection):
(WebKit::WebPage::platformDidSelectAll):
(WebKit::WebPage::selectWordBackward):
(WebKit::WebPage::moveSelectionByOffset):
(WebKit::WebPage::startAutoscrollAtPosition):
(WebKit::WebPage::requestEvasionRectsAboveSelection):
(WebKit::WebPage::getRectsForGranularityWithSelectionOffset):
(WebKit::WebPage::storeSelectionForAccessibility):
(WebKit::WebPage::getRectsAtSelectionOffsetWithText):
(WebKit::WebPage::selectPositionAtPoint):
(WebKit::WebPage::selectPositionAtBoundaryWithDirection):
(WebKit::WebPage::moveSelectionAtBoundaryWithDirection):
(WebKit::WebPage::setFocusedFrameBeforeSelectingTextAtLocation):
(WebKit::WebPage::setSelectionRange):
(WebKit::WebPage::updateSelectionWithExtentPointAndBoundary):
(WebKit::WebPage::updateSelectionWithExtentPoint):
(WebKit::WebPage::requestDictationContext):
(WebKit::WebPage::replaceSelectedText):
(WebKit::WebPage::replaceDictatedText):
(WebKit::WebPage::requestAutocorrectionData):
(WebKit::WebPage::applyAutocorrectionInternal):
(WebKit::WebPage::autocorrectionContext):
(WebKit::focusedElementPositionInformation):
(WebKit::nextAssistableElement):
(WebKit::WebPage::focusedElementInformation):
(WebKit::WebPage::hardwareKeyboardAvailabilityChanged):
(WebKit::WebPage::insertTextPlaceholder):
(WebKit::WebPage::updateSelectionWithDelta):
(WebKit::WebPage::requestDocumentEditingContext):
(WebKit::WebPage::focusTextInputContextAndPlaceCaret):
(WebKit::WebPage::animationDidFinishForElement):

8:31 PM Changeset in webkit [282190] by Fujii Hironori
  • 6 edits in trunk/Source

generated MessageArgumentDescriptions.cpp can't compile for non-Cocoa ports due to missing headers
https://bugs.webkit.org/show_bug.cgi?id=230075

Reviewed by Ryosuke Niwa.

Source/WebCore:

  • workers/service/ServiceWorkerFetchResult.h: Added a missing

header inclusion for MessageArgumentDescriptions.cpp.

Source/WebKit:

The generated MessageArgumentDescriptions.cpp unconditionally
included platform specific headers, for example
<WebCore/CAAudioStreamDescription.h>.

generate_message_argument_description_implementation generates the
#includes, it should take receiver.condition into account.

  • CMakeLists.txt:

(GENERATE_MESSAGE_SOURCES): Added MessageArgumentDescriptions.cpp to compile.

  • Scripts/webkit/messages.py:

(generate_message_argument_description_implementation):

  • Scripts/webkit/tests/MessageArgumentDescriptions.cpp:
7:46 PM Changeset in webkit [282189] by timothy_horton@apple.com
  • 12 edits
    1 add in trunk/Source/WebKit

WKWebView specific bug: WKWebView as the contents of a SceneKit/ARKit node doesn't work (UIWebView works)
https://bugs.webkit.org/show_bug.cgi?id=203060
<rdar://problem/82899923>

Reviewed by Dean Jackson.

SceneKit's snapshotter cannot handle CAMachPort-as-layer-contents.

If we get parented in a SceneKit snapshotting window, map all existing
surfaces, and prefer using actual IOSurfaces instead of CAMachPort from then on.

  • UIProcess/Cocoa/PageClientImplCocoa.h:
  • UIProcess/Cocoa/PageClientImplCocoa.mm:

(WebKit::PageClientImplCocoa::windowKind):

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::webViewDidMoveToWindow):

  • UIProcess/WebPageProxy.h:
  • UIProcess/WindowKind.h: Added.

Keep track of the kind of window we're currently in (the only special
case at the moment is the SceneKit snapshotting window, but you could
easily imagine us caring about others).

  • UIProcess/DrawingAreaProxy.h:

(WebKit::DrawingAreaProxy::windowKindDidChange):

  • UIProcess/PageClient.h:

(WebKit::PageClient::windowKind):

  • UIProcess/RemoteLayerTree/RemoteLayerTreeDrawingAreaProxy.h:
  • UIProcess/RemoteLayerTree/RemoteLayerTreeDrawingAreaProxy.mm:

(WebKit::RemoteLayerTreeDrawingAreaProxy::windowKindDidChange):
Map CAMachPorts to IOSurfaces when we move into a SceneKit snapshotting window.

  • UIProcess/RemoteLayerTree/RemoteLayerTreeHost.h:
  • UIProcess/RemoteLayerTree/RemoteLayerTreeHost.mm:

(WebKit::RemoteLayerTreeHost::layerContentsType const):
(WebKit::RemoteLayerTreeHost::updateLayerTree):
Prefer IOSurface if we're already in a SceneKit snapshotting window.
Also factor this code out and improve the comments.

6:47 PM Changeset in webkit [282188] by commit-queue@webkit.org
  • 4 edits in trunk/LayoutTests

[GLIB] Unreviewed test gardening. Update some test baselines.
https://bugs.webkit.org/show_bug.cgi?id=230074

Patch by Arcady Goldmints-Orlov <Arcady Goldmints-Orlov> on 2021-09-08

  • platform/glib/webgl/webgl-allow-shared-expected.txt:
  • platform/gtk/fast/dom/navigator-detached-no-crash-expected.txt:
  • platform/wpe/fast/dom/navigator-detached-no-crash-expected.txt:
5:58 PM Changeset in webkit [282187] by Russell Epstein
  • 1 copy in tags/Safari-612.1.29.5

Tag Safari-612.1.29.5.

5:41 PM Changeset in webkit [282186] by Russell Epstein
  • 1 copy in tags/Safari-612.2.4.1.1

Tag Safari-612.2.4.1.1.

5:20 PM Changeset in webkit [282185] by Jonathan Bedard
  • 2 edits in trunk/Tools

Exception in run-webkit-tests: Bad file descriptor (Part 2)
https://bugs.webkit.org/show_bug.cgi?id=229994
<rdar://problem/82826083>

Reviewed by Ryan Haddad.

  • Scripts/webkitpy/xcode/simulated_device.py:

(SimulatedDevice.launch_app): Catch OSError.

4:56 PM Changeset in webkit [282184] by Russell Epstein
  • 3 edits in branches/safari-612.2.4.1-branch/Source/WebKit

Cherry-pick r282174. rdar://problem/82898503

Remove responsiveness timer in NetworkProcessProxy::getNetworkProcessConnection
https://bugs.webkit.org/show_bug.cgi?id=230016
rdar://problem/80760179

Reviewed by Chris Dumez.

We've seen evidence that network process may be blocked in initializeNetworkProcess. Since we have a 3-second
responsiveness timer in NetworkProcessProxy::getNetworkProcessConnection, blocked network process will be killed
and a new network process will be launched for getting connection. However, the new network process may get
stuck in initializeNetworkProcess too. In this case, web process will crash for not being able to get network
process connection.

  • UIProcess/Network/NetworkProcessProxy.cpp: (WebKit::NetworkProcessProxy::getNetworkProcessConnection):
  • UIProcess/WebsiteData/WebsiteDataStore.cpp: change RELEASE_ASSERT_NOT_REACHED_WITH_MESSAGE to RELEASE_LOG_ERROR as the message is not printed in non-debug build. (WebKit::WebsiteDataStore::getNetworkProcessConnection):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@282174 268f45cc-cd09-0410-ab3c-d52691b4dbfc

4:53 PM Changeset in webkit [282183] by Russell Epstein
  • 8 edits in branches/safari-612.2.4.1-branch/Source

Versioning.

WebKit-7612.2.4.1.1

4:33 PM Changeset in webkit [282182] by Russell Epstein
  • 1 copy in branches/safari-612.2.4.1-branch

New branch.

4:33 PM Changeset in webkit [282181] by Justin Michaud
  • 2 edits in trunk

Change Justin Michaud's primary email to apple.com
https://bugs.webkit.org/show_bug.cgi?id=230069

Reviewed by Robin Morisset.

  • metadata/contributors.json:
4:26 PM Changeset in webkit [282180] by Eric Hutchison
  • 3 edits in trunk/LayoutTests

media/track/track-cue-css.html is a flaky image failure.
https://bugs.webkit.org/show_bug.cgi?id=230070.

Unreviewed test gardening.

  • platform/ios-14-wk2/TestExpectations:
  • platform/mac-wk2/TestExpectations:
4:16 PM Changeset in webkit [282179] by Ayumi Kojima
  • 2 edits in trunk/LayoutTests

[ MacOS wk1 Release ] inspector/dom/shadow-and-non-shadow-children.html is a flaky failure.
https://bugs.webkit.org/show_bug.cgi?id=230072

Unreviewed test gardening.

  • platform/mac-wk1/TestExpectations:
4:01 PM Changeset in webkit [282178] by Ayumi Kojima
  • 2 edits in trunk/LayoutTests

[ MacOS wk1 ] media/video-preload.html is flaky failing.
https://bugs.webkit.org/show_bug.cgi?id=230071

Unreviewed test gardening.

  • platform/mac-wk1/TestExpectations:
3:54 PM Changeset in webkit [282177] by Fujii Hironori
  • 2 edits in trunk/Source/WebKit

REGRESSION(r282115): undefined reference to `IPC::messageArgumentDescriptions(IPC::MessageName)' in Debug build
https://bugs.webkit.org/show_bug.cgi?id=230064

Unreviewed build fix.

Debug build of non-Cocoa ports were broken since r282115 started
to use IPC::messageArgumentDescriptions for debug logging.
However, MessageArgumentDescriptions.cpp has a long-standing
compilation problem for non-Cocoa ports.

Temporarily disabled the debug logging for non-Cocoa ports by
using ENABLE(IPC_TESTING_API) macro. I'll revert this change after
I will fix the fundamental problem of messages.py.

  • Platform/IPC/HandleMessage.h:

(IPC::logMessageImpl):
(IPC::logReply):

3:04 PM Changeset in webkit [282176] by sihui_liu@apple.com
  • 4 edits in trunk/Source/WebKit

Remove unnecessary WTF:: in WebsiteDataStore files
https://bugs.webkit.org/show_bug.cgi?id=230036

Reviewed by Darin Adler.

  • UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm:

(WebKit::WebsiteDataStore::defaultApplicationCacheDirectory):
(WebKit::WebsiteDataStore::defaultCacheStorageDirectory):
(WebKit::WebsiteDataStore::defaultNetworkCacheDirectory):
(WebKit::WebsiteDataStore::defaultAlternativeServicesDirectory):
(WebKit::WebsiteDataStore::defaultMediaCacheDirectory):
(WebKit::WebsiteDataStore::defaultIndexedDBDatabaseDirectory):
(WebKit::WebsiteDataStore::defaultServiceWorkerRegistrationDirectory):
(WebKit::WebsiteDataStore::defaultLocalStorageDirectory):
(WebKit::WebsiteDataStore::defaultMediaKeysStorageDirectory):
(WebKit::WebsiteDataStore::defaultDeviceIdHashSaltsStorageDirectory):
(WebKit::WebsiteDataStore::defaultWebSQLDatabaseDirectory):
(WebKit::WebsiteDataStore::defaultResourceLoadStatisticsDirectory):
(WebKit::WebsiteDataStore::defaultJavaScriptConfigurationDirectory):
(WebKit::WebsiteDataStore::defaultModelElementCacheDirectory):
(WebKit::WebsiteDataStore::tempDirectoryFileSystemRepresentation):
(WebKit::WebsiteDataStore::cacheDirectoryFileSystemRepresentation):
(WebKit::WebsiteDataStore::websiteDataDirectoryFileSystemRepresentation):

  • UIProcess/WebsiteData/WebsiteDataStore.cpp:

(WebKit::WebsiteDataStore::defaultMediaCacheDirectory):
(WebKit::WebsiteDataStore::defaultAlternativeServicesDirectory):
(WebKit::WebsiteDataStore::defaultJavaScriptConfigurationDirectory):
(WebKit::WebsiteDataStore::defaultDeviceIdHashSaltsStorageDirectory):

  • UIProcess/WebsiteData/WebsiteDataStore.h:
3:03 PM Changeset in webkit [282175] by Peng Liu
  • 2 edits in trunk/Source/WebKit

[macOS] -[WKFullScreenWindowController exitFullScreenImmediately] does not exit fullscreen immediately
https://bugs.webkit.org/show_bug.cgi?id=230024

Reviewed by Jer Noble.

A WebContent process may ask the WKFullScreenWindowController in
the UI process to exit fullscreen immediately without walking through
the normal exit fullscreen sequence, and the WebContent process won't
expect any IPC message related to fullscreen to come back from the
UI process. If the UI process sends an IPC message to the WebContent
process and expects the response from the WebContent process (e.g., in
WebPageProxy::forceRepaint()), the UI process will be stuck.

That will happen when a tab navigates to the previous page while a video
element in the current page is playing in fullscreen. The reason is that
-[WKFullScreenWindowController exitFullScreen] is called before
-[WKFullScreenWindowController exitFullScreenImmediately].
-[WKFullScreenWindowController exitFullScreen] changes _fullScreenState
to WaitingToExitFullScreen, so -[WKFullScreenWindowController exitFullScreenImmediately]
will return early. This patch fixes this issue by changing the early return condition.

In addition, -[WKFullScreenWindowController exitFullScreenImmediately]
does not really exit fullscreen immediately. Instead, it calls
-[WKFullScreenWindowController finishedExitFullScreenAnimation:],
which always calls WebPageProxy::forceRepaint() and expects a response
from the WebContet process. This patch fixes this issue as well.

Tested manually.

  • UIProcess/mac/WKFullScreenWindowController.mm:

(-[WKFullScreenWindowController exitFullScreenImmediately]):
Update the early return condition to make sure the UI process will proceed
to exit fullscreen unless the current state is NotInFullScreen.
(-[WKFullScreenWindowController beganExitFullScreenWithInitialFrame:finalFrame:]):
(-[WKFullScreenWindowController finishedExitFullScreenAnimation:]):
The completed parameter was not used. This patch renames it to immediately to
indicate whether WKFullScreenWindowController wants to exit fullscreen immediately.
(-[WKFullScreenWindowController close]):
Clean up this function after revising -[WKFullScreenWindowController exitFullScreenImmediately].
(-[WKFullScreenWindowController windowDidFailToExitFullScreen:]):
Update the argument according to the change of -[WKFullScreenWindowController finishedExitFullScreenAnimation:].
(-[WKFullScreenWindowController windowDidExitFullScreen:]): Ditto.

2:56 PM Changeset in webkit [282174] by sihui_liu@apple.com
  • 3 edits in trunk/Source/WebKit

Remove responsiveness timer in NetworkProcessProxy::getNetworkProcessConnection
https://bugs.webkit.org/show_bug.cgi?id=230016
rdar://problem/80760179

Reviewed by Chris Dumez.

We've seen evidence that network process may be blocked in initializeNetworkProcess. Since we have a 3-second
responsiveness timer in NetworkProcessProxy::getNetworkProcessConnection, blocked network process will be killed
and a new network process will be launched for getting connection. However, the new network process may get
stuck in initializeNetworkProcess too. In this case, web process will crash for not being able to get network
process connection.

  • UIProcess/Network/NetworkProcessProxy.cpp:

(WebKit::NetworkProcessProxy::getNetworkProcessConnection):

  • UIProcess/WebsiteData/WebsiteDataStore.cpp: change RELEASE_ASSERT_NOT_REACHED_WITH_MESSAGE to

RELEASE_LOG_ERROR as the message is not printed in non-debug build.
(WebKit::WebsiteDataStore::getNetworkProcessConnection):

2:41 PM Changeset in webkit [282173] by Ayumi Kojima
  • 2 edits in trunk/LayoutTests

[ BigSur wk2 Debug ] accessibility/mac/native-text-control-set-selected-textmarker-range.html is a flaky failure.
https://bugs.webkit.org/show_bug.cgi?id=230066

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
2:30 PM Changeset in webkit [282172] by Eric Hutchison
  • 4 edits in trunk/LayoutTests

Rebaseline: REGRESSION (282129):[iOS] 3 Layout tests failing consistently.
https://bugs.webkit.org/show_bug.cgi?id=230063.

Unreviewed rebaseline.

  • platform/ios/fast/multicol/vertical-lr/float-multicol-expected.txt:
  • platform/ios/fast/multicol/vertical-rl/float-multicol-expected.txt:
  • platform/ios/fast/table/border-collapsing/004-vertical-expected.txt:
2:26 PM Changeset in webkit [282171] by Ayumi Kojima
  • 4 edits in trunk/LayoutTests

[ MacOS & iOS ] http/tests/loading/basic-auth-load-URL-with-consecutive-slashes.html is a flakey failure.
https://bugs.webkit.org/show_bug.cgi?id=222563

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
  • platform/mac-wk1/TestExpectations:
  • platform/mac/TestExpectations:
2:09 PM Changeset in webkit [282170] by sihui_liu@apple.com
  • 18 edits in trunk

Regression (r282130): [ macOS iOS wk2 ] imported/w3c/web-platform-tests/storage/persisted.https.any.html is failing
https://bugs.webkit.org/show_bug.cgi?id=230053
<rdar://problem/82879548>

Reviewed by Chris Dumez.

Source/WebKit:

Add SPI to clear storage states for testing.

Covered by existing tests.

  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::clearStorage):

  • NetworkProcess/NetworkProcess.h:
  • NetworkProcess/NetworkProcess.messages.in:
  • NetworkProcess/storage/NetworkStorageManager.cpp:

(WebKit::NetworkStorageManager::clearStorageForTesting):

  • NetworkProcess/storage/NetworkStorageManager.h:
  • UIProcess/API/C/WKWebsiteDataStoreRef.cpp:

(WKWebsiteDataStoreClearStorage):

  • UIProcess/API/C/WKWebsiteDataStoreRef.h:
  • UIProcess/Network/NetworkProcessProxy.cpp:

(WebKit::NetworkProcessProxy::clearStorage):

  • UIProcess/Network/NetworkProcessProxy.h:
  • UIProcess/WebsiteData/WebsiteDataStore.cpp:

(WebKit::WebsiteDataStore::clearStorage):

  • UIProcess/WebsiteData/WebsiteDataStore.h:

Tools:

Clear storage states between tests so tests do not affect each other.

  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::resetStateToConsistentValues):
(WTR::TestController::clearStorage):

  • WebKitTestRunner/TestController.h:

LayoutTests:

Skip storage/ tests on WebKitLegacy platforms as the API is not implemented there.

1:55 PM Changeset in webkit [282169] by Ayumi Kojima
  • 2 edits in trunk/LayoutTests

[ macOS wk1 ] fast/text/FontFaceSet-check-after-style-update.html is a flaky failure.
https://bugs.webkit.org/show_bug.cgi?id=230062

Unreviewed test gardening.

  • platform/mac-wk1/TestExpectations:
1:31 PM Changeset in webkit [282168] by Fujii Hironori
  • 2 edits in trunk/LayoutTests

[WinCairo] Unreviewed test gardening

  • platform/wincairo/TestExpectations:
1:25 PM Changeset in webkit [282167] by Eric Hutchison
  • 2 edits in trunk/LayoutTests

[iOS14 Release iPhone] fast/shapes/shape-outside-floats/shape-outside-big-box-border-radius-001.html is a flaky crash.
https://bugs.webkit.org/show_bug.cgi?id=230060.

Unreviewed test gardening .

  • platform/ios-14-wk2/TestExpectations:
1:07 PM Changeset in webkit [282166] by Jonathan Bedard
  • 4 edits in trunk/Tools

[webkitcorepy] Add support for find_spec
https://bugs.webkit.org/show_bug.cgi?id=230009
<rdar://problem/82827571>

Reviewed by Dewei Zhu.

  • Scripts/libraries/webkitcorepy/setup.py: Bump version.
  • Scripts/libraries/webkitcorepy/webkitcorepy/init.py: Ditto.
  • Scripts/libraries/webkitcorepy/webkitcorepy/autoinstall.py:

(AutoInstall.find_spec): Added.

12:57 PM Changeset in webkit [282165] by Fujii Hironori
  • 5 edits
    2 adds in trunk

KeyboardEvent should setDefaultHandled if EventHandler::startKeyboardScrolling returns true
https://bugs.webkit.org/show_bug.cgi?id=229784

Reviewed by Darin Adler.

Source/WebCore:

If a KeyboardEvent is handled by the default event handler, it
should be marked by Event::setDefaultHandled.

Test: fast/scrolling/keyboard-scrolling-last-timestamp.html

  • page/EventHandler.cpp:

(WebCore::EventHandler::defaultKeyboardEventHandler):
(WebCore::EventHandler::defaultArrowEventHandler):

LayoutTests:

  • fast/scrolling/keyboard-scrolling-last-timestamp-expected.txt: Added.
  • fast/scrolling/keyboard-scrolling-last-timestamp.html: Added.
12:52 PM Changeset in webkit [282164] by Fujii Hironori
  • 2 edits in trunk/Tools

[Win][DumpRenderTree] ASSERTION FAILED: openWindows().size() == 1 in runTest
https://bugs.webkit.org/show_bug.cgi?id=229932

Reviewed by Chris Dumez.

runTest() called DestroyWindow while iterating 'openWindows'.
However, DestroyWindow dispatches WM_DESTROY that removes the item
from 'openWindows'.

  • DumpRenderTree/win/DumpRenderTree.cpp:

(runTest): Copy the vector to iterate.

12:47 PM Changeset in webkit [282163] by mmaxfield@apple.com
  • 4 edits in trunk/LayoutTests

fast/text/FontFaceSet-status-after-style-update.html is flaky.
https://bugs.webkit.org/show_bug.cgi?id=229975

Unreviewed.

internals.clearMemoryCache() only works for fonts if you put it before the @font-face block.

  • TestExpectations:
  • fast/text/FontFaceSet-check-after-style-update.html:
  • fast/text/FontFaceSet-status-after-style-update.html:
12:05 PM Changeset in webkit [282162] by commit-queue@webkit.org
  • 12 edits
    4 adds in trunk

Implement sin, cos, tan, e and pi for calc
https://bugs.webkit.org/show_bug.cgi?id=229507

Patch by Nikos Mouchtaris <Nikos Mouchtaris> on 2021-09-08
Reviewed by Simon Fraser.

Source/WebCore:

Tests: css3/calc/simple-trig-functions.html

css3/calc/trig-functions-with-constants.html

Add support for sin, cos, and tan functions within calc. Also add e and pi
constant values within calc.

  • css/CSSValueKeywords.in:

Add sin,cos,e and pi keywords.

  • css/calc/CSSCalcExpressionNodeParser.cpp:

(WebCore::getConstantTable):
Add helper function with table mapping e and pi keywords to their
approximate numerical value.

(WebCore::CSSCalcExpressionNodeParser::parseCalcFunction):
Add handling for creation of sin,cos,tan operation nodes.

(WebCore::CSSCalcExpressionNodeParser::parseValue):
Add handling for creation of primitive css value when constant is parsed.

  • css/calc/CSSCalcOperationNode.cpp:

(WebCore::determineCategory):
Add sin,cos,tan to switch statement.

(WebCore::functionFromOperator):
Add sin,cos,tan to switch statement.

(WebCore::CSSCalcOperationNode::createTrig):
Add function for creation of sin,cos,tan operation node.

(WebCore::CSSCalcOperationNode::combineChildren):
Add handling for performing sin,cos,tan function on child node.

(WebCore::CSSCalcOperationNode::simplifyNode):
Add handling for sin,cos,tan.

(WebCore::CSSCalcOperationNode::primitiveType const):
Remove assert that is no longer correct. Trig functions take can take an
angle and return a number, so it is no longer the case that all children
of a node producing a number must be numbers themself.

(WebCore::CSSCalcOperationNode::doubleValue const):
Convert chilren nodes that are angles to radians.

(WebCore::functionPrefixForOperator):
Add handling for sin,cos,tan.

(WebCore::CSSCalcOperationNode::evaluateOperator):
Add functionality for sin,cos,tan functions.

  • css/calc/CSSCalcOperationNode.h:
  • css/calc/CSSCalcValue.cpp:

(WebCore::createCSS):
Add handling for creation of sin,cos,tan operation nodes.

(WebCore::CSSCalcValue::isCalcFunction):
Add handling for sin,cos,tan.

  • platform/calc/CalcExpressionOperation.cpp:

(WebCore::CalcExpressionOperation::evaluate const):
Add functionality for sin,cos,tan function.

  • platform/calc/CalcOperator.cpp:

(WebCore::operator<<):
Add handling for sin,cos,tan.

  • platform/calc/CalcOperator.h:

LayoutTests:

  • fast/css/calc-parsing.html:

Added parsing tests for sin, cos, tan, e and pi.

  • css3/calc/trig-functions-with-constants.html: Added.

Added additional tests for expected behavior of sin, cos, tan, e and pi.

  • LayoutTests/animations/calc-animation-test.html: Added.

Added animation test for expanding width of box given a width defined using a calc expression
Involving sin and cos.

11:52 AM Changeset in webkit [282161] by Ayumi Kojima
  • 2 edits in trunk/LayoutTests

[ BigSur wk2 Debug ] http/tests/inspector/network/resource-request-headers.html is flaky failing.
https://bugs.webkit.org/show_bug.cgi?id=230056

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
11:36 AM Changeset in webkit [282160] by commit-queue@webkit.org
  • 7 edits in trunk

webgl/2.0.y/conformance/extensions/webgl-compressed-texture-etc.html fails on Metal
https://bugs.webkit.org/show_bug.cgi?id=229940

Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2021-09-08
Reviewed by Dean Jackson.

Source/WebCore:

Add compressed texture upload internal format validation back.
This was disabled when ANGLE was integrated.
ANGLE does not check whether the extensions are enabled or not.

Fixes tests:
webgl/1.0.x/conformance/extensions/webgl-compressed-texture-etc.html
webgl/2.0.y/conformance/extensions/webgl-compressed-texture-etc.html

  • html/canvas/WebGL2RenderingContext.cpp:

(WebCore::WebGL2RenderingContext::compressedTexImage2D):

  • html/canvas/WebGLRenderingContextBase.cpp:

(WebCore::WebGLRenderingContextBase::compressedTexImage2D):
(WebCore::WebGLRenderingContextBase::compressedTexSubImage2D):
(WebCore::WebGLRenderingContextBase::validateCompressedTexFormat):

  • html/canvas/WebGLRenderingContextBase.h:

LayoutTests:

Enable webgl/2.0.y/conformance/extensions/webgl-compressed-texture-etc.html
explicitly until 2.0.y is activated. Same for 1.0.x.

  • webgl/TestExpectations:
  • webgl/webgl-allow-shared-expected.txt:

The test tests that SharedArrayBuffer does not produce an error for
when used as TexImageSource. The change makes two compressedTexImage
calls produce new GL errors due to the extension not being enabled.
The errors are added to the expected.txt. This does not invalidate
the objective of the change -- the SharedArrayBuffer type validation
happens before the GL validation and as such will be visible if
the objective of the test is broken.

11:30 AM Changeset in webkit [282159] by Ayumi Kojima
  • 2 edits in trunk/LayoutTests

[ BigSur wk1 ] webrtc/datachannel/datachannel-page-cache-send.html is a flaky timeout.
https://bugs.webkit.org/show_bug.cgi?id=230055

Unreviewed test gardening.

  • platform/mac-wk1/TestExpectations:
10:49 AM Changeset in webkit [282158] by Manuel Rego Casasnovas
  • 2 edits in trunk/Source/WebCore

[css-text-decor] text-decoration-* properties are no longer experimental
https://bugs.webkit.org/show_bug.cgi?id=230039

Reviewed by Simon Fraser.

  • css/CSSProperties.json: Remove experimental status from text-decoration-* properties.
10:30 AM Changeset in webkit [282157] by pvollan@apple.com
  • 4 edits in trunk/Source

Remove unneeded call on startup of WebContent process
https://bugs.webkit.org/show_bug.cgi?id=230022
<rdar://problem/82838000>

Reviewed by Darin Adler.

Source/WebCore/PAL:

  • pal/spi/cg/CoreGraphicsSPI.h:

Source/WebKit:

There is no need to call CGSShutdownServerConnections during startup of the WebContent process on macOS,
since we already have asserted that there are no open connections at this point.

  • WebProcess/cocoa/WebProcessCocoa.mm:

(WebKit::WebProcess::platformInitializeProcess):

10:24 AM Changeset in webkit [282156] by Chris Dumez
  • 3 edits in trunk/LayoutTests

[ MacOS wk1 ] plugins/get-url-that-the-resource-load-delegate-will-disallow.html is a flaky crash
https://bugs.webkit.org/show_bug.cgi?id=230050
<rdar://problem/82877497>

Unreviewed, prevent popup windows in the test to restore pre-r282103 behavior.

  • platform/mac-wk1/TestExpectations:
  • plugins/get-url-that-the-resource-load-delegate-will-disallow.html:
10:22 AM Changeset in webkit [282155] by Russell Epstein
  • 5 edits
    1 add in branches/safari-612-branch

Cherry-pick r282042. rdar://problem/82877251

[JSC] Make EnumeratorNextUpdateIndexAndMode clobberizing rule precise
https://bugs.webkit.org/show_bug.cgi?id=229898
rdar://82714439

Reviewed by Saam Barati.

JSTests:

  • complex.yaml:
  • complex/for-in-clobberize.js: Added.

Source/JavaScriptCore:

Clobberizing rule and AI does not match for EnumeratorNextUpdateIndexAndMode node.
We fix both cases: isSaneChain is not related to this node. So we should use isInBounds
as we are doing for HasIndexedProperty node.

  • dfg/DFGAbstractInterpreterInlines.h: (JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):
  • dfg/DFGClobberize.h: (JSC::DFG::clobberize):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@282042 268f45cc-cd09-0410-ab3c-d52691b4dbfc

10:22 AM Changeset in webkit [282154] by Russell Epstein
  • 2 edits in branches/safari-612-branch/Source/WebKit

Cherry-pick r282090. rdar://problem/82877535

Post-layout EditorState updates should be scheduled using RenderingUpdateScheduler
https://bugs.webkit.org/show_bug.cgi?id=229905

Reviewed by Simon Fraser.

Use Page::scheduleRenderingUpdate rather than DrawingArea::triggerRenderingUpdate to ensure that we schedule
a layer tree flush when sending a full post-layout EditorState update to the UI process. On macOS, the latter
method on DrawingArea will immediately install a runloop observer for the next CA commit, while the former only
does so after a zero-delay timer fires, courtesy of RenderingUpdateScheduler.

This prevents us from triggering unnecessary layer tree flushes in the case where the selection changes
frequently during a single rendering update; in particular, in Speedometer 2 on macOS, this decreases the total
number of rendering updates performed over the course of the benchmark by roughly 30%.

  • WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::scheduleFullEditorStateUpdate):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@282090 268f45cc-cd09-0410-ab3c-d52691b4dbfc

10:22 AM Changeset in webkit [282153] by Russell Epstein
  • 18 edits
    3 adds in branches/safari-612-branch

Cherry-pick r282014. rdar://problem/82877307

[JSC] Validate JSPropertyNameEnumerator via watchpoints
https://bugs.webkit.org/show_bug.cgi?id=229846

Reviewed by Keith Miller.

JSTests:

  • stress/for-in-cacheable-dictionary.js: Added. (shouldBe): (collect):
  • stress/for-in-invalidate.js: Added. (shouldBe): (collect):
  • stress/for-in-uncacheable-dictionary.js: Added. (shouldBe): (collect):

Source/JavaScriptCore:

Looked into Elm-TodoMVC sampling profiler data and found that op_get_property_enumerator is taking enough amount of time.
And Instruments say validating JSPropertyNameEnumerator via traversing StructureChain is costly.
We are caching JSPropertyNameEnumerator only when we meet the condition: objects in prototype chain can ensure identity of
property names if structure is not changed. So we can use watchpoint based approach to invalidate JSPropertyNameEnumerator.

This patch injects structure transition watchpoints if possible. And when watchpoint is fired, we invalidate JSPropertyNameEnumerator
cached in StructureRareData, as if we are ensuring prototype chain condition for the other property accesses.

This offers 0.6% improvement in Speedometer2.

----------------------------------------------------------------------------------------------------------------------------------
| subtest | ms | ms | b / a | pValue (significance using False Discovery Rate) |
----------------------------------------------------------------------------------------------------------------------------------
| Elm-TodoMVC |121.971667 |117.725000 |0.965183 | 0.000000 (significant) |
| VueJS-TodoMVC |26.246667 |26.035000 |0.991935 | 0.360614 |
| EmberJS-TodoMVC |126.196667 |126.653333 |1.003619 | 0.103138 |
| BackboneJS-TodoMVC |48.976667 |48.881667 |0.998060 | 0.474106 |
| Preact-TodoMVC |20.118333 |20.115000 |0.999834 | 0.989038 |
| AngularJS-TodoMVC |131.545000 |130.706667 |0.993627 | 0.015344 (significant) |
| Vanilla-ES2015-TodoMVC |63.725000 |63.773333 |1.000758 | 0.706560 |
| Inferno-TodoMVC |64.231667 |62.653333 |0.975427 | 0.000000 (significant) |
| Flight-TodoMVC |77.223333 |77.690000 |1.006043 | 0.268309 |
| Angular2-TypeScript-TodoMVC |39.686667 |39.500000 |0.995296 | 0.499678 |
| VanillaJS-TodoMVC |52.321667 |51.973333 |0.993342 | 0.077777 |
| jQuery-TodoMVC |224.908333 |225.761667 |1.003794 | 0.022136 |
| EmberJS-Debug-TodoMVC |339.858333 |339.886667 |1.000083 | 0.950320 |
| React-TodoMVC |86.545000 |86.070000 |0.994512 | 0.001518 (significant) |
| React-Redux-TodoMVC |146.010000 |142.855000 |0.978392 | 0.000000 (significant) |
| Vanilla-ES2015-Babel-Webpack-TodoMVC |61.411667 |61.456667 |1.000733 | 0.631499 |
----------------------------------------------------------------------------------------------------------------------------------
a mean = 255.96543
b mean = 257.53379
pValue = 0.0000034394
(Bigger means are better.)
1.006 times better
Results ARE significant

  • bytecode/Watchpoint.cpp:
  • bytecode/Watchpoint.h:
  • dfg/DFGSpeculativeJIT.cpp: (JSC::DFG::SpeculativeJIT::compileGetPropertyEnumerator):
  • ftl/FTLAbstractHeapRepository.h:
  • ftl/FTLLowerDFGToB3.cpp: (JSC::FTL::DFG::LowerDFGToB3::compileCompareStrictEq):
  • runtime/JSPropertyNameEnumerator.h: (JSC::propertyNameEnumerator):
  • runtime/StructureRareData.h:
  • runtime/StructureRareDataInlines.h: (JSC::StructureRareData::setCachedPropertyNameEnumerator): (JSC::StructureChainInvalidationWatchpoint::install): (JSC::StructureChainInvalidationWatchpoint::fireInternal): (JSC::StructureRareData::tryCachePropertyNameEnumeratorViaWatchpoint): (JSC::StructureRareData::invalidateWatchpointBasedValidation):
  • tools/JSDollarVM.cpp: (JSC::JSC_DEFINE_HOST_FUNCTION): (JSC::JSDollarVM::finishCreation):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@282014 268f45cc-cd09-0410-ab3c-d52691b4dbfc

10:22 AM Changeset in webkit [282152] by Russell Epstein
  • 6 edits in branches/safari-612-branch

Cherry-pick r281965. rdar://problem/82877374

Gracefully recover from WebAuthnProcess crashes
https://bugs.webkit.org/show_bug.cgi?id=229828
Source/WebKit:

<rdar://82682650>

Patch by Alex Christensen <achristensen@webkit.org> on 2021-09-02
Reviewed by Chris Dumez.

When a WebAuthn process closes, it can't be connected with again, which causes persistent web process "crashes".
Let's start a new process when this happens instead.

  • UIProcess/API/Cocoa/WKProcessPool.mm: (+[WKProcessPool _webAuthnProcessIdentifier]):
  • UIProcess/API/Cocoa/WKProcessPoolPrivate.h:
  • UIProcess/WebAuthentication/WebAuthnProcessProxy.cpp: (WebKit::sharedProcess): (WebKit::WebAuthnProcessProxy::singleton): (WebKit::WebAuthnProcessProxy::webAuthnProcessCrashed):

Tools:

Patch by Alex Christensen <achristensen@webkit.org> on 2021-09-02
Reviewed by Chris Dumez.

  • TestWebKitAPI/Tests/WebKitCocoa/_WKWebAuthenticationPanel.mm: (TestWebKitAPI::TEST):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@281965 268f45cc-cd09-0410-ab3c-d52691b4dbfc

10:20 AM Changeset in webkit [282151] by youenn@apple.com
  • 2 edits in trunk/LayoutTests

Make webrtc/datachannel/getStats-no-prflx-remote-candidate.html provide more meaningful errors
https://bugs.webkit.org/show_bug.cgi?id=230003

Reviewed by Eric Carlson.

  • webrtc/datachannel/getStats-no-prflx-remote-candidate.html:

The test is timing out flakily, add some errors to know where it is timing out.
Make sure to call send once the local channel is opened.

10:11 AM Changeset in webkit [282150] by Antti Koivisto
  • 6 edits in trunk

[LFC][Integration] Hovering over link switches to legacy inline boxes
https://bugs.webkit.org/show_bug.cgi?id=226812
<rdar://problem/79394047>

Reviewed by Alan Bujtas.

LayoutTests/imported/w3c:

  • web-platform-tests/css/cssom-view/getBoundingClientRect-empty-inline-expected.txt:

Source/WebCore:

Implement rect/quad collection functions in RenderInline by getting data from LFC.

  • layout/integration/LayoutIntegrationLineLayout.cpp:

(WebCore::LayoutIntegration::LineLayout::visualOverflowBoundingBoxRectFor const):

Some tests taking LFC path were affected by the missing implementation here.

(WebCore::LayoutIntegration::LineLayout::collectInlineBoxRects const):

  • layout/integration/LayoutIntegrationLineLayout.h:
  • rendering/RenderInline.cpp:

(WebCore::RenderInline::generateLineBoxRects const):
(WebCore::RenderInline::absoluteRects const):
(WebCore::RenderInline::absoluteQuads const):
(WebCore::RenderInline::absoluteQuadsIgnoringContinuation const):
(WebCore::RenderInline::absoluteQuadsForSelection const):
(WebCore::RenderInline::addFocusRingRects):

10:08 AM Changeset in webkit [282149] by youenn@apple.com
  • 5 edits in trunk

webrtc/ephemeral-certificates-and-cnames.html needs to close its connections between two tests
https://bugs.webkit.org/show_bug.cgi?id=229931

Reviewed by Eric Carlson.

Source/WebCore:

Covered by updated test.

  • Modules/mediastream/PeerConnectionBackend.cpp:

(WebCore::PeerConnectionBackend::addIceCandidate):
As per https://w3c.github.io/webrtc-pc/#dom-peerconnection-addicecandidate step 4.7, abort if peer connection is closed.
(WebCore::PeerConnectionBackend::newICECandidate):
As per https://w3c.github.io/webrtc-pc/#dfn-surface-the-candidate,
no need to fire an ICE candidate event if peer connection is closed.

  • Modules/mediastream/RTCPeerConnection.cpp:

(WebCore::RTCPeerConnection::addIceCandidate):
Return early if peer connection is closed as per https://w3c.github.io/webrtc-pc/#dom-peerconnection-addicecandidate.

LayoutTests:

  • webrtc/ephemeral-certificates-and-cnames.html:

Close old connections so that we do not start adding ICE candidates from an old connection to a new one.

9:46 AM Changeset in webkit [282148] by commit-queue@webkit.org
  • 16 edits in trunk/LayoutTests

[GLIB] Update test baselines after r282129
https://bugs.webkit.org/show_bug.cgi?id=230049

Unreviewed test gardening.

Patch by Arcady Goldmints-Orlov <Arcady Goldmints-Orlov> on 2021-09-08

  • platform/glib/fast/multicol/table-vertical-align-expected.txt:
  • platform/gtk/css1/text_properties/vertical_align-expected.txt:
  • platform/gtk/fast/dom/HTMLProgressElement/progress-element-expected.txt:
  • platform/gtk/fast/multicol/vertical-lr/float-multicol-expected.txt:
  • platform/gtk/fast/multicol/vertical-rl/float-multicol-expected.txt:
  • platform/gtk/fast/text/textIteratorNilRenderer-expected.txt:
  • platform/gtk/tables/mozilla/bugs/bug1188-expected.txt:
  • platform/gtk/tables/mozilla/bugs/bug126742-expected.txt:
  • platform/gtk/tables/mozilla/bugs/bug1318-expected.txt:
  • platform/gtk/tables/mozilla/bugs/bug16252-expected.txt:
  • platform/gtk/tables/mozilla/bugs/bug4527-expected.txt:
  • platform/gtk/tables/mozilla/bugs/bug57828-2-expected.txt:
  • platform/gtk/tables/mozilla/other/ms-expected.txt:
  • platform/wpe/fast/multicol/vertical-lr/float-multicol-expected.txt:
  • platform/wpe/tables/mozilla/bugs/bug1188-expected.txt:
9:44 AM Changeset in webkit [282147] by Ayumi Kojima
  • 2 edits in trunk/LayoutTests

[ MacOS wk1 ]plugins/get-url-that-the-resource-load-delegate-will-disallow.html is a flaky crash.
https://bugs.webkit.org/show_bug.cgi?id=230050

Unreviewed test gardening.

  • platform/mac-wk1/TestExpectations:
9:35 AM Changeset in webkit [282146] by Russell Epstein
  • 8 edits in branches/safari-612-branch/Source

Versioning.

WebKit-7612.2.5

9:05 AM Changeset in webkit [282145] by Ayumi Kojima
  • 3 edits in trunk/LayoutTests

[ macOS and iOS ] editing/deleting/forward-delete-crash.html is timing out.
https://bugs.webkit.org/show_bug.cgi?id=230047

Unreviewed test gardening.

  • platform/ipad/TestExpectations:
  • platform/mac/TestExpectations:
8:34 AM Changeset in webkit [282144] by Simon Fraser
  • 11 edits
    2 adds in trunk

Support percentages in the scale() transform functions, and the scale property
https://bugs.webkit.org/show_bug.cgi?id=202501

Reviewed by Sam Weinig.
LayoutTests/imported/w3c:

  • web-platform-tests/css/css-transforms/parsing/scale-parsing-valid-expected.txt:
  • web-platform-tests/css/css-transforms/parsing/transform-valid-expected.txt:

Source/WebCore:

Support percentage values in the scale*() functions in the transform property, and
on the scale property. These value are converted by numbers by dividing by 100
at parse time, as we do for alpha values in colors. We have to keep calc() intact,
so % calcs need to be divided by 100 at use time.

Test: transforms/2d/scale-percent.html

  • css/CSSPrimitiveValue.cpp:

(WebCore::CSSPrimitiveValue::doubleValueDividingBy100IfPercentage const):

  • css/CSSPrimitiveValue.h:
  • css/TransformFunctions.cpp:

(WebCore::transformsForValue):
(WebCore::scaleForValue):

  • css/parser/CSSPropertyParser.cpp:

(WebCore::consumeNumbersOrPercents):
(WebCore::consumeTransformValue):
(WebCore::consumeScale):

  • css/parser/CSSPropertyParserHelpers.cpp:

(WebCore::CSSPropertyParserHelpers::consumeNumberRawOrPercentRaw):
(WebCore::CSSPropertyParserHelpers::consumeNumberRawOrPercentRawAllowingSymbolTableIdent):
(WebCore::CSSPropertyParserHelpers::consumeNumberOrPercent):

  • css/parser/CSSPropertyParserHelpers.h:

LayoutTests:

Ref test for scales with %.

  • transforms/2d/scale-percent-expected.html: Added.
  • transforms/2d/scale-percent.html: Added.
7:59 AM Changeset in webkit [282143] by Simon Fraser
  • 21 edits
    2 adds in trunk

Add a temporarily prefixed property for mask-mode, aliased to -webkit-mask-source-type
https://bugs.webkit.org/show_bug.cgi?id=229915

Reviewed by Antti Koivisto.
Source/WebCore:

In preparation for unprefixing the "mask" property, add -webkit-mask-mode. This is
almost an alias to the existing -webkit-mask-source-type, but takes a "match-source"
value rather than "auto".

To make it easier to have aliases with different parsing requirements, add support
in CSSProperties.json for "synonyms"; these are like aliases but they get their
own CSSPropertyID to allow for customized parsing. They share style builder code
with the related property.

FillLayer now uses MaskMode rather than MaskSourceType.

Test: fast/masking/parsing-mask-mode.html

  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::maskSourceTypeToCSSValue):
(WebCore::maskModeToCSSValue):
(WebCore::ComputedStyleExtractor::valueForPropertyInStyle):
(WebCore::fillSourceTypeToCSSValue): Deleted.

  • css/CSSProperties.json:
  • css/CSSToStyleMap.cpp:

(WebCore::CSSToStyleMap::mapFillMaskMode):
(WebCore::CSSToStyleMap::mapFillMaskSourceType): Deleted.

  • css/CSSToStyleMap.h:
  • css/CSSValueKeywords.in:
  • css/makeprop.pl:

(addProperty):
(generateFillLayerPropertyValueSetter):
(generateValueSetter):

  • css/parser/CSSPropertyParser.cpp:

(WebCore::consumeWebkitMaskMode):
(WebCore::consumeBackgroundComponent):
(WebCore::CSSPropertyParser::parseSingleValue):

  • rendering/RenderBoxModelObject.cpp:

(WebCore::RenderBoxModelObject::paintFillLayerExtended):

  • rendering/style/FillLayer.cpp:

(WebCore::FillLayer::FillLayer):
(WebCore::FillLayer::operator=):
(WebCore::FillLayer::operator== const):
(WebCore::operator<<):

  • rendering/style/FillLayer.h:

(WebCore::FillLayer::maskMode const):
(WebCore::FillLayer::isMaskModeSet const):
(WebCore::FillLayer::setMaskMode):
(WebCore::FillLayer::clearMaskMode):
(WebCore::FillLayer::initialFillMaskMode):
(WebCore::FillLayer::maskSourceType const): Deleted.
(WebCore::FillLayer::isMaskSourceTypeSet const): Deleted.
(WebCore::FillLayer::setMaskSourceType): Deleted.
(WebCore::FillLayer::clearMaskSourceType): Deleted.
(WebCore::FillLayer::initialFillMaskSourceType): Deleted.

  • rendering/style/RenderStyleConstants.cpp:

(WebCore::operator<<):

  • rendering/style/RenderStyleConstants.h:

Tools:

Allow the "synonym" key in CSSProperties.json.

  • Scripts/webkitpy/style/checkers/jsonchecker.py:

(JSONCSSPropertiesChecker.check_codegen_properties):

LayoutTests:

  • fast/masking/parsing-mask-mode-expected.txt: Added.
  • fast/masking/parsing-mask-mode.html: Added.
7:01 AM Changeset in webkit [282142] by Wenson Hsieh
  • 6 edits
    2 adds in trunk/Source/WebCore

Add a fast path for atomizing strings when parsing HTML
https://bugs.webkit.org/show_bug.cgi?id=229907
rdar://82854612

Reviewed by Yusuke Suzuki and Darin Adler.

On various subtests in Speedometer 2, a nontrivial amount of time is spent mapping raw UChar data vectors into
AtomStrings while parsing HTML tag names, attribute names and attribute values. Most of this happens underneath
the AtomHTMLToken constructor, which computes a hash for each string in the process of adding it to the atom
string table; the time it takes to compute this string hash increases linearly with the length of the string.

However, over the course of the benchmark, the vast majority of AtomStrings created out of tag names, attribute
names and attribute values are both:

(1) Strings that we've already recently atomized, and
(2) Usually distinguishable from other atom strings based solely on their first character, last character, and

overall string length.

As such, it's possible to slightly improve string atomization performance in this particular case (i.e. parsing
HTML) by maintaining a smaller cache of recently atomized AtomStrings that we index using a simple, constant-
time hash function that considers only the first character, last character, and length of the string. In terms
of the cache hit rate in this AtomString cache, the default string hashing algorithm only barely outperforms
this simple hash function on Speedometer (i.e., a cache hit rate of 99.24% using the default hash algorithm vs.
99.15% using the "first/last character and length" hash).

Using this technique, we can get a significant performance improvement on Speedometer by introducing two small,
fixed-size (512 capacity) AtomString tables: one to hold tag names and attribute names, and another to hold
attribute values (which seems to contain a much larger set of unique strings); we additionally use the cheap "2-
char & length" hash algorithm described above to index into these fixed-size tables.

This allows us to more efficiently atomize not only known tag and attribute names, but also custom element tag
names and attribute names and values that tend to appear frequently in markup (e.g. due to using certain
JavaScript frameworks that get and set HTML attributes).

  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • html/parser/AtomHTMLToken.h:

(WebCore::AtomHTMLToken::initializeAttributes):
(WebCore::AtomHTMLToken::AtomHTMLToken):

  • html/parser/HTMLAtomStringCache.cpp: Added.

(WebCore::HTMLAtomStringCache::cache):

  • html/parser/HTMLAtomStringCache.h: Added.

Add a helper class that exposes three static inline helper methods: makeTagOrAttributeName and
makeAttributeValue, which return AtomStrings for the given Vector<UChar> (consulting the corresponding
cache if possible); and clear, which empties all cached atom strings.

(WebCore::HTMLAtomStringCache::makeTagOrAttributeName):
(WebCore::HTMLAtomStringCache::makeAttributeValue):
(WebCore::HTMLAtomStringCache::clear):
(WebCore::HTMLAtomStringCache::make):

Additionally add an upper length limit for characters that we include in this cache; in practice, longer strings
tend to be repeatedly atomized less frequently than shorter strings. The 36-character limit also allows for
frequently-parsed (and atomized) UUIDs to be cached.

(WebCore::HTMLAtomStringCache::cacheSlot):

This hashing algorithm was inspired by calculateWithTwoCharacters, but with constants specifically chosen to
minimize collisions between common HTML tag and attribute names.

  • page/MemoryRelease.cpp:

(WebCore::releaseNoncriticalMemory):

  • page/cocoa/MemoryReleaseCocoa.mm:

(WebCore::jettisonExpensiveObjectsOnTopLevelNavigation):

Add logic to clear the HTML atom string cache upon receiving a low memory warning, and upon top-level
navigation.

6:33 AM Changeset in webkit [282141] by Alan Bujtas
  • 4 edits in trunk/Source/WebCore

[LFC][IFC] Add support for inline box ink overflow
https://bugs.webkit.org/show_bug.cgi?id=230026

Reviewed by Antti Koivisto.

Collecting the ink overflow from the descendant boxes has 2 phases.

  1. Update the ink overflow on the parent inline box (unless it's a root inline box) as we walk the line content

and find the atomic inline level boxes (e.g. <span><img></span>)

  1. Collect the ink overflow on nested inline boxes (e.g. <span>some<span style="font-size: 100px">text</span><span>).
  • layout/formattingContexts/inline/InlineDisplayContentBuilder.cpp:

(WebCore::Layout::InlineDisplayContentBuilder::InlineDisplayContentBuilder):
(WebCore::Layout::InlineDisplayContentBuilder::build):
(WebCore::Layout::InlineDisplayContentBuilder::createRunsAndUpdateGeometryForLineContent):
(WebCore::Layout::InlineDisplayContentBuilder::createRunsAndUpdateGeometryForLineSpanningInlineBoxes):
(WebCore::Layout::InlineDisplayContentBuilder::collectInkOverflowForInlineBoxRuns):

  • layout/formattingContexts/inline/InlineDisplayContentBuilder.h:
  • layout/formattingContexts/inline/InlineLineRun.h:

(WebCore::Layout::Run::adjustInkOverflow):

5:56 AM Changeset in webkit [282140] by Lauro Moura
  • 2 edits in trunk/Tools

[GTK] Fix test path in last commit

Unreviewed test gardening.

  • TestWebKitAPI/glib/TestExpectations.json:
5:52 AM Changeset in webkit [282139] by Lauro Moura
  • 2 edits in trunk/Tools

[GTK] Garden default-menu API test failure

Unreviewed test gardening.

  • TestWebKitAPI/glib/TestExpectations.json:
4:48 AM Changeset in webkit [282138] by Martin Robinson
  • 11 edits in trunk

[css-position-sticky] Sticky constraints are calculated incorrectly when scrolling container has padding and borders
https://bugs.webkit.org/show_bug.cgi?id=229997

Reviewed by Simon Fraser.

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-position/sticky/position-sticky-large-top-2.tentative-expected.html: This test uses

an identity transform to make a div a containing block for absolutely positioned items. This exposes a bug in
WebKit, but position: relative also does this without exposing the bug. The bug for this issue is
https://bugs.webkit.org/show_bug.cgi?id=229999.

  • web-platform-tests/css/css-position/sticky/position-sticky-large-top.tentative-expected.html: Ditto.

Source/WebCore:

No new tests. This is covered by two existing WPT tests:

web-platform-tests/css/css-position/sticky/position-sticky-large-top-2.tentative-expected.html
web-platform-tests/css/css-position/sticky/position-sticky-large-top.tentative-expected.html

  • rendering/RenderBoxModelObject.cpp:

(WebCore::RenderBoxModelObject::computeStickyPositionConstraints const): When the containing block and the scroll container
are the same, fix the calculation of the container content rect. layoutOverflowRect() already does not include the border,
so stop adjusting for that. In addition, instead of simply adjusting the rect location by the padding, actually contract
it so that the bottom and right edges of the rectangle are correct.

LayoutTests:

  • TestExpectations: Unskip two newly passing tests.
  • platform/ios-wk2/scrollingcoordinator/scrolling-tree/coordinated-frame-expected.txt: Rebaseline.
  • platform/ios-wk2/scrollingcoordinator/scrolling-tree/coordinated-frame-gain-scrolling-ancestor-expected.txt: Ditto.
  • platform/ios-wk2/scrollingcoordinator/scrolling-tree/coordinated-frame-in-fixed-expected.txt: Ditto.
  • platform/ios-wk2/scrollingcoordinator/scrolling-tree/coordinated-frame-lose-scrolling-ancestor-expected.txt: Ditto.
4:01 AM Changeset in webkit [282137] by Jean-Yves Avenard
  • 11 edits in trunk/Source

Safari TP 131 audio canPlayType() reports false negatives
https://bugs.webkit.org/show_bug.cgi?id=229799
rdar://problem/82776747

Reviewed by Youenn Fablet.

Source/WebCore:

webaudio now supports the same webm content as the video and audio element,
making this workaround no longer necessary.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::canPlayType const): Remove work around

  • page/RuntimeEnabledFeatures.h:

(WebCore::RuntimeEnabledFeatures::webMParserEnabled const): Remove now unused method.

Source/WebKit:

  • Shared/WebPreferencesDefaultValues.cpp:
  • Shared/WebPreferencesDefaultValues.h: Remove no longer used method.

Source/WebKitLegacy/mac:

  • WebView/WebPreferencesDefaultValues.h:
  • WebView/WebPreferencesDefaultValues.mm: Remove no longer used method.

Source/WTF:

  • Scripts/Preferences/WebPreferencesExperimental.yaml: Remove preference.
3:38 AM WebKitGTK/2.34.x edited by clopez@igalia.com
(diff)
3:21 AM Changeset in webkit [282136] by commit-queue@webkit.org
  • 5 edits in trunk

webgl/2.0.y/deqp/functional/gles3/negativeshaderapi.html fails on Metal
https://bugs.webkit.org/show_bug.cgi?id=229946

Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2021-09-08
Reviewed by Kenneth Russell.

Source/WebCore:

Add a missing check for link status.

Fixes tests:
webgl/2.0.0/deqp/functional/gles3/negativeshaderapi.html
webgl/2.0.y/deqp/functional/gles3/negativeshaderapi.html

  • html/canvas/WebGL2RenderingContext.cpp:

(WebCore::WebGL2RenderingContext::getTransformFeedbackVarying):

LayoutTests:

Enable webgl/2.0.y/deqp/functional/gles3/negativeshaderapi.html
explicitly until 2.0.y is activated.

  • webgl/TestExpectations:
2:04 AM Changeset in webkit [282135] by commit-queue@webkit.org
  • 6 edits in trunk

webgl/2.0.y/deqp/functional/gles3/negativetextureapi.html fails on Metal
https://bugs.webkit.org/show_bug.cgi?id=229948

Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2021-09-08
Reviewed by Dean Jackson.

Source/WebCore:

Validate the texStorage3D target using correct
validation function. The validation should be removed, as
same is done in ANGLE, but for consistency it should be
removed from all functions. Until removal, use correct
WebKit-side validation too.

Fixes tests:
webgl/2.0.0/deqp/functional/gles3/negativetextureapi.html
webgl/2.0.y/deqp/functional/gles3/negativetextureapi.html
webgl/2.0.0/conformance2/textures/misc/tex-storage-and-subimage-3d.html
webgl/2.0.y/conformance2/textures/misc/tex-storage-and-subimage-3d.html

  • html/canvas/WebGL2RenderingContext.cpp:

(WebCore::WebGL2RenderingContext::texStorage3D):

LayoutTests:

Enable webgl/2.0.y/deqp/functional/gles3/negativetextureapi.html
explicitly until 2.0.y is activated.

  • webgl/TestExpectations:
  • webgl/2.0.0/conformance2/textures/misc/tex-storage-and-subimage-3d-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/negativetextureapi-expected.txt:
1:29 AM Changeset in webkit [282134] by commit-queue@webkit.org
  • 5 edits
    2 adds in trunk/LayoutTests

Testing for the fact that media elements are treated as replaced elements
https://bugs.webkit.org/show_bug.cgi?id=229857

Patch by Frédéric Wang <fwang@igalia.com> on 2021-09-08
Reviewed by Darin Adler.

This is a follow-up of r281979. backwards-text-iterator-basic.html is extended to check that
SimplifiedBackwardsTextIterator emits a comma for a media element. The a11y test from r274810
which verified audio/video elements emit an object replacement character is restored, as it
seems it was removed by mistake and so this case was no longer checked explicitly.
text-marker-previous-next.html is also extended to cover the case of media element.

  • accessibility/text-marker/media-emits-object-replacement-expected.txt: Added.
  • accessibility/text-marker/media-emits-object-replacement.html: Added.
  • accessibility/text-marker/text-marker-previous-next-expected.txt:
  • accessibility/text-marker/text-marker-previous-next.html:
  • editing/text-iterator/backwards-text-iterator-basic-expected.txt:
  • editing/text-iterator/backwards-text-iterator-basic.html:
12:48 AM Changeset in webkit [282133] by ntim@apple.com
  • 5 edits
    4 adds in trunk

Support animations on ::backdrop
https://bugs.webkit.org/show_bug.cgi?id=229042

Reviewed by Antoine Quint.

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-pseudo/backdrop-animate-002-expected.html: Added.
  • web-platform-tests/css/css-pseudo/backdrop-animate-002.html: Added.
  • web-platform-tests/css/css-pseudo/backdrop-animate-expected.txt: Added.
  • web-platform-tests/css/css-pseudo/backdrop-animate.html: Added.

Source/WebCore:

  • style/StyleTreeResolver.cpp:

(WebCore::Style::TreeResolver::resolveElement):
(WebCore::Style::TreeResolver::resolvePseudoStyle):

LayoutTests:

12:39 AM Changeset in webkit [282132] by commit-queue@webkit.org
  • 5 edits in trunk

webgl/2.0.y/deqp/functional/gles3/rbostatequery.html fails on Metal
https://bugs.webkit.org/show_bug.cgi?id=229950

Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2021-09-08
Reviewed by Dean Jackson.

Source/WebCore:

Request ANGLE_framebuffer_multisample when creating WebGL2 context.
WebGL2 spec requires multisampled framebuffers.

The test that would fail is:

gl.renderbufferStorageMultisample(gl.RENDERBUFFER, samples, gl.RGBA8, 128, 128);
var value = / @type {number} */ (gl.getRenderbufferParameter(gl.RENDERBUFFER, gl.RENDERBUFFER_SAMPLES));
this.check(value >= samples, 'Expected greater or equal to ' + samples + ' got ' + value);

for samples == 1 the test would have value == 0 with INVALID_OPERATION from ANGLE due to
the extension not being enabled.

Fixes tests:
webgl/2.0.0/deqp/functional/gles3/rbostatequery.html
webgl/2.0.y/deqp/functional/gles3/rbostatequery.html

  • platform/graphics/cocoa/GraphicsContextGLOpenGLCocoa.mm:

(WebCore::GraphicsContextGLOpenGL::GraphicsContextGLOpenGL):

LayoutTests:

Enable webgl/2.0.y/deqp/functional/gles3/rbostatequery.html
explicitly until 2.0.y is activated.

  • webgl/TestExpectations:

Sep 7, 2021:

11:43 PM Changeset in webkit [282131] by commit-queue@webkit.org
  • 5 edits in trunk

webgl/2.0.y/deqp/functional/gles3/negativestateapi.html get_query_parameter fails on Metal
https://bugs.webkit.org/show_bug.cgi?id=229982

Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2021-09-07
Reviewed by Dean Jackson.

Source/WebCore:

Check that the query being queried with getQueryParameter is not part
of the currently active queries.

Failing part of the test:

bufferedLogToConsole('gl.INVALID_OPERATION is generated if id is the name of a currently active query object.');
gl.beginQuery (gl.ANY_SAMPLES_PASSED, id);
this.expectError (gl.NO_ERROR);
gl.getQueryParameter (id, gl.QUERY_RESULT_AVAILABLE);
this.expectError (gl.INVALID_OPERATION);

Fixes test:
webgl/2.0.y/deqp/functional/gles3/negativestateapi.html

  • html/canvas/WebGL2RenderingContext.cpp:

(WebCore::WebGL2RenderingContext::~WebGL2RenderingContext):
(WebCore::WebGL2RenderingContext::deleteQuery):
(WebCore::WebGL2RenderingContext::validateQueryTarget):
(WebCore::WebGL2RenderingContext::beginQuery):
(WebCore::WebGL2RenderingContext::endQuery):
(WebCore::WebGL2RenderingContext::getQuery):
(WebCore::WebGL2RenderingContext::getQueryParameter):
(WebCore::WebGL2RenderingContext::addMembersToOpaqueRoots):

  • html/canvas/WebGL2RenderingContext.h:

Change the 2-element HashMap to 2-element array for ease of
enumeration and trivial size optimization.

LayoutTests:

Enable webgl/2.0.y/deqp/functional/gles3/negativestateapi.html
explicitly until 2.0.y is activated.

  • webgl/TestExpectations:
11:30 PM Changeset in webkit [282130] by sihui_liu@apple.com
  • 93 edits
    17 adds in trunk

Add basic support for Storage API
https://bugs.webkit.org/show_bug.cgi?id=229925

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

  • web-platform-tests/file-system-access/idlharness.https.any-expected.txt:
  • web-platform-tests/file-system-access/idlharness.https.any.worker-expected.txt:
  • web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-IndexedDB.https.any-expected.txt:
  • web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-isSameEntry.https.any-expected.txt:
  • web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-postMessage-BroadcastChannel.https.window-expected.txt:
  • web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-postMessage-Error.https.window-expected.txt:
  • web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-postMessage-MessagePort-frames.https.window-expected.txt:
  • web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-postMessage-MessagePort-windows.https.window-expected.txt:
  • web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-postMessage-MessagePort-workers.https.window-expected.txt:
  • web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-postMessage-frames.https.window-expected.txt:
  • web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-postMessage-windows.https.window-expected.txt:
  • web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-postMessage-workers.https.window-expected.txt:
  • web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-remove.https.any-expected.txt:
  • web-platform-tests/file-system-access/sandboxed_FileSystemDirectoryHandle-getDirectoryHandle.https.any-expected.txt:
  • web-platform-tests/file-system-access/sandboxed_FileSystemDirectoryHandle-getFileHandle.https.any-expected.txt:
  • web-platform-tests/file-system-access/sandboxed_FileSystemDirectoryHandle-iteration.https.any-expected.txt:
  • web-platform-tests/file-system-access/sandboxed_FileSystemDirectoryHandle-removeEntry.https.any-expected.txt:
  • web-platform-tests/file-system-access/sandboxed_FileSystemDirectoryHandle-resolve.https.any-expected.txt:
  • web-platform-tests/file-system-access/sandboxed_FileSystemFileHandle-create-sync-access-handle-dedicated-worker.https.tentative.window-expected.txt:
  • web-platform-tests/file-system-access/sandboxed_FileSystemFileHandle-getFile.https.any-expected.txt:
  • web-platform-tests/file-system-access/sandboxed_FileSystemWritableFileStream-piped.https.any-expected.txt:
  • web-platform-tests/file-system-access/sandboxed_FileSystemWritableFileStream-write.https.any-expected.txt:
  • web-platform-tests/file-system-access/sandboxed_FileSystemWritableFileStream.https.any-expected.txt:
  • web-platform-tests/storage/estimate-indexeddb.https.any-expected.txt:
  • web-platform-tests/storage/estimate-parallel.https.any-expected.txt:
  • web-platform-tests/storage/estimate-usage-details-application-cache.https.tentative-expected.txt:
  • web-platform-tests/storage/estimate-usage-details-caches.https.tentative.any-expected.txt:
  • web-platform-tests/storage/estimate-usage-details-indexeddb.https.tentative.any-expected.txt:
  • web-platform-tests/storage/estimate-usage-details-service-workers.https.tentative.window-expected.txt:
  • web-platform-tests/storage/estimate-usage-details.https.tentative.any-expected.txt:
  • web-platform-tests/storage/idlharness.https.any-expected.txt:
  • web-platform-tests/storage/idlharness.https.any.worker-expected.txt:
  • web-platform-tests/storage/opaque-origin.https.window-expected.txt:
  • web-platform-tests/storage/persisted.https.any-expected.txt:
  • web-platform-tests/storage/quotachange-in-detached-iframe.tentative.https-expected.txt:
  • web-platform-tests/storage/storagemanager-estimate.https.any-expected.txt:
  • web-platform-tests/storage/storagemanager-persist.https.window-expected.txt:
  • web-platform-tests/storage/storagemanager-persisted.https.any-expected.txt:

Source/WebCore:

Add bindings code and a feature flag for Storage API.
Spec: https://storage.spec.whatwg.org

Rebaselined existing tests.

  • CMakeLists.txt:
  • DerivedSources-input.xcfilelist:
  • DerivedSources-output.xcfilelist:
  • DerivedSources.make:
  • Headers.cmake:
  • Modules/storage/DummyStorageProvider.h: Added.
  • Modules/storage/StorageConnection.h: Added.
  • Modules/storage/StorageManager.cpp: Added.

(WebCore::StorageManager::create):
(WebCore::StorageManager::StorageManager):
(WebCore::clientOrigin):
(WebCore::StorageManager::persisted):
(WebCore::StorageManager::persist):

  • Modules/storage/StorageManager.h: Added.
  • Modules/storage/StorageManager.idl: Added.
  • Modules/storage/StorageProvider.h: Added.
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/WebCoreBuiltinNames.h:
  • dom/Document.cpp:

(WebCore::Document::storageConnection):

  • dom/Document.h:
  • dom/ScriptExecutionContext.h:

(WebCore::ScriptExecutionContext::storageConnection):

  • loader/EmptyClients.cpp:

(WebCore::pageConfigurationWithEmptyClients):

  • page/Navigator.idl:
  • page/NavigatorBase.cpp:
  • page/NavigatorBase.h:
  • page/NavigatorStorage.idl: Added.
  • page/Page.cpp:

(WebCore::m_storageProvider):
(WebCore::Page::storageConnection):
(WebCore::m_permissionController): Deleted.

  • page/Page.h:
  • page/PageConfiguration.cpp:

(WebCore::PageConfiguration::PageConfiguration):

  • page/PageConfiguration.h:

Source/WebKit:

Set up basic infrastructure for StorageManager.
UI process sets the directory for StorageMananager with datastore configuration.
Network process manages storage with NetworkStorageManager (per Session). It has multiple OriginStorageManagers
for managing storage of different origins, and each OriginStorageManager has a default StorageBucket.
Web process can get and set persist property of each bucket by sending messages to network process.

  • CMakeLists.txt:
  • DerivedSources-input.xcfilelist:
  • DerivedSources-output.xcfilelist:
  • DerivedSources.make:
  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::createNetworkConnectionToWebProcess):
(WebKit::NetworkProcess::addWebsiteDataStore):
(WebKit::NetworkProcess::addStorageManagerForSession):
(WebKit::NetworkProcess::removeStorageManagerForSession):
(WebKit::NetworkProcess::destroySession):
(WebKit::NetworkProcess::connectionToWebProcessClosed):

  • NetworkProcess/NetworkProcess.h:
  • NetworkProcess/storage/NetworkStorageManager.cpp: Added.

(WebKit::NetworkStorageManager::create):
(WebKit::NetworkStorageManager::NetworkStorageManager):
(WebKit::NetworkStorageManager::startReceivingMessageFromConnection):
(WebKit::NetworkStorageManager::stopReceivingMessageFromConnection):
(WebKit::encode):
(WebKit::originPath):
(WebKit::NetworkStorageManager::localOriginStorageManager):
(WebKit::NetworkStorageManager::persisted):
(WebKit::NetworkStorageManager::persist):

  • NetworkProcess/storage/NetworkStorageManager.h: Added.

(WebKit::NetworkStorageManager::sessionID const):

  • NetworkProcess/storage/NetworkStorageManager.messages.in: Added.
  • NetworkProcess/storage/OriginStorageManager.cpp: Added.

(WebKit::OriginStorageManager::StorageBucket::StorageBucket):
(WebKit::OriginStorageManager::StorageBucket::mode const):
(WebKit::OriginStorageManager::StorageBucket::setMode):
(WebKit::OriginStorageManager::OriginStorageManager):
(WebKit::OriginStorageManager::persist):

  • NetworkProcess/storage/OriginStorageManager.h: Added.

(WebKit::OriginStorageManager::persisted const):

  • Shared/WebsiteDataStoreParameters.cpp:

(WebKit::WebsiteDataStoreParameters::encode const):
(WebKit::WebsiteDataStoreParameters::decode):

  • Shared/WebsiteDataStoreParameters.h:
  • Sources.txt:
  • UIProcess/API/C/WKWebsiteDataStoreConfigurationRef.cpp:

(WKWebsiteDataStoreConfigurationCopyGeneralStorageDirectory):
(WKWebsiteDataStoreConfigurationSetGeneralStorageDirectory):

  • UIProcess/API/C/WKWebsiteDataStoreConfigurationRef.h:
  • UIProcess/API/Cocoa/_WKWebsiteDataStoreConfiguration.h:
  • UIProcess/API/Cocoa/_WKWebsiteDataStoreConfiguration.mm:

(-[_WKWebsiteDataStoreConfiguration generalStorageDirectory]):
(-[_WKWebsiteDataStoreConfiguration setGeneralStorageDirectory:]):

  • UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm:

(WebKit::WebsiteDataStore::defaultGeneralStorageDirectory):

  • UIProcess/WebsiteData/WebsiteDataStore.cpp:

(WebKit::WebsiteDataStore::resolveDirectoriesIfNecessary):
(WebKit::WebsiteDataStore::parameters):

  • UIProcess/WebsiteData/WebsiteDataStore.h:

(WebKit::WebsiteDataStore::generalStorageDirectory const):

  • UIProcess/WebsiteData/WebsiteDataStoreConfiguration.cpp:

(WebKit::WebsiteDataStoreConfiguration::WebsiteDataStoreConfiguration):
(WebKit::WebsiteDataStoreConfiguration::copy const):

  • UIProcess/WebsiteData/WebsiteDataStoreConfiguration.h:

(WebKit::WebsiteDataStoreConfiguration::generalStorageDirectory const):
(WebKit::WebsiteDataStoreConfiguration::setGeneralStorageDirectory):

  • UIProcess/WebsiteData/playstation/WebsiteDataStorePlayStation.cpp:

(WebKit::WebsiteDataStore::defaultGeneralStorageDirectory):

  • UIProcess/WebsiteData/win/WebsiteDataStoreWin.cpp:

(WebKit::WebsiteDataStore::defaultGeneralStorageDirectory):

  • UIProcess/glib/WebsiteDataStoreGLib.cpp:

(WebKit::WebsiteDataStore::defaultGeneralStorageDirectory):

  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/WebCoreSupport/WebStorageConnection.cpp: Added.

(WebKit::WebStorageConnection::create):
(WebKit::WebStorageConnection::persisted):
(WebKit::WebStorageConnection::persist):
(WebKit::WebStorageConnection::connection):

  • WebProcess/WebCoreSupport/WebStorageConnection.h: Added.
  • WebProcess/WebCoreSupport/WebStorageProvider.h: Added.
  • WebProcess/WebPage/RemoteLayerTree/PlatformCALayerRemoteModelHosting.h:
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::m_appHighlightsVisible):

Source/WebKitLegacy/mac:

  • WebView/WebView.mm:

(-[WebView _commonInitializationWithFrameName:groupName:]):
(-[WebView initSimpleHTMLDocumentWithStyle:frame:preferences:groupName:]):

Source/WebKitLegacy/win:

  • WebView.cpp:

(WebView::initWithFrame):

Source/WTF:

  • Scripts/Preferences/WebPreferencesExperimental.yaml:

LayoutTests:

  • platform/mac-wk1/fast/dom/navigator-detached-no-crash-expected.txt:
  • platform/mac-wk2/fast/dom/navigator-detached-no-crash-expected.txt:
11:12 PM Changeset in webkit [282129] by Antti Koivisto
  • 15 edits in trunk

Disable inline culling
https://bugs.webkit.org/show_bug.cgi?id=229993

Reviewed by Alan Bujtas.

LayoutTests/imported/w3c:

  • web-platform-tests/css/cssom-view/cssom-getClientRects-002-expected.txt:
  • web-platform-tests/css/cssom-view/elementFromPoint-mixed-font-sizes-expected.txt:
  • web-platform-tests/shadow-dom/DocumentOrShadowRoot-prototype-elementFromPoint-expected.txt:

Source/WebCore:

Inline culling is an optimization that avoids creating LegacyInlineFlowBoxes for inline
elements under certain circumstances (basically if they don't affect rendering).

The optimization is is complex and requires a ton of code. It is a constant source of bugs.
Meanwhile the kind of content where this is beneficial is already mostly taken over by LFC.
It is time to remove it.

This patch disables the optimization but doesn't yet remove the code.

  • editing/SimplifyMarkupCommand.cpp:

(WebCore::SimplifyMarkupCommand::doApply):

  • rendering/LegacyEllipsisBox.cpp:

(WebCore::LegacyEllipsisBox::markupBox const):

  • rendering/RenderInline.cpp:

(WebCore::RenderInline::mayAffectRendering const):
(WebCore::RenderInline::updateAlwaysCreateLineBoxes):
(WebCore::RenderInline::shouldCreateLineBoxes const): Deleted.

  • rendering/RenderInline.h:

(WebCore::RenderInline::alwaysCreateLineBoxes const):

  • rendering/RenderTreeAsText.cpp:

(WebCore::hasNonEmptySibling):

LayoutTests:

  • fast/flexbox/line-clamp-link-after-ellipsis.html:
  • platform/mac/fast/multicol/table-vertical-align-expected.txt:
  • platform/mac/fast/multicol/vertical-lr/float-multicol-expected.txt:
  • platform/mac/fast/multicol/vertical-rl/float-multicol-expected.txt:
  • platform/mac/tables/mozilla/bugs/bug1188-expected.txt:
9:57 PM Changeset in webkit [282128] by Fujii Hironori
  • 4 edits in trunk/Tools

[Win] TestWebKitAPI.WebKit.DidNotHandleKeyDown is failing
https://bugs.webkit.org/show_bug.cgi?id=229927

Reviewed by Don Olmstead.

TestWebKitAPI::Util::isKeyDown was not implemented

  • TestWebKitAPI/CMakeLists.txt: Added Tests/WebKit/DidNotHandleKeyDown.cpp.
  • TestWebKitAPI/Tests/WebKit/DidNotHandleKeyDown.cpp: GTK and WPE ports fail the test. Skip it.
  • TestWebKitAPI/win/PlatformUtilitiesWin.cpp:

(TestWebKitAPI::Util::isKeyDown): Implemented.

8:44 PM Changeset in webkit [282127] by ysuzuki@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Unreviewed, add files to xcodeproj
https://bugs.webkit.org/show_bug.cgi?id=229892

8:34 PM Changeset in webkit [282126] by achristensen@apple.com
  • 2 edits in trunk/Source/WebCore

Fix iOS debug build, probably after r282115

https://bugs.webkit.org/show_bug.cgi?id=229664

A symbol was missing when linking WebKit framework. Export it from WebCore framework.

  • dom/ViewportArguments.h:
7:20 PM Changeset in webkit [282125] by ysuzuki@apple.com
  • 32 edits
    2 copies
    5 adds in trunk

[JSC] Implement Temporal.PlainTime
https://bugs.webkit.org/show_bug.cgi?id=229892

Reviewed by Darin Adler.

JSTests:

  • stress/temporal-calendar.js:
  • stress/temporal-duration.js:
  • stress/temporal-plaintime.js: Added.

(shouldBe):
(shouldThrow):
(shouldBe.String.Temporal.PlainTime.from):
(let.time.Temporal.PlainTime.from.shouldBe):
(let.text.of.failures.shouldThrow):
(print):
(shouldBe.Temporal.PlainTime.from):
(new.Temporal.PlainTime.valueOf):
(shouldBe.String.time.until.Temporal.PlainTime.from):

  • stress/temporal-timezone.js:

(let.text.of.failures.shouldThrow): Deleted.

  • test262/config.yaml:

Source/JavaScriptCore:

This patch implements Temporal.PlainTime[1]. This is time representation which is not associated to
calendars and timezones. This is tuple of hour, minute, second, millisecond, microsecond, and nanosecond.

  1. We add full-fledged ISO8601 DateTime / Time parser, so that Temporal.PlainTime.from can extract time as specified.
  1. ISO8601::PlainTime is used for already-validated PlainTime data. When performing arithmetics, we first do that in ISO8601::Duration, and then we validate and convert it to PlainTime.

We also found several spec issues, and reported in [2,3,4].

[1]: https://tc39.es/proposal-temporal/#sec-temporal-plaintime-objects
[2]: https://github.com/tc39/proposal-temporal/issues/1803
[3]: https://github.com/tc39/proposal-temporal/issues/1804
[4]: https://github.com/tc39/proposal-temporal/issues/1805

  • CMakeLists.txt:
  • DerivedSources-input.xcfilelist:
  • DerivedSources-output.xcfilelist:
  • DerivedSources.make:
  • Sources.txt:
  • runtime/CommonIdentifiers.h:
  • runtime/ISO8601.cpp:

(JSC::ISO8601::parseTimeZoneName):
(JSC::ISO8601::parseDecimalInt32):
(JSC::ISO8601::parseDuration):
(JSC::ISO8601::parseTimeSpec):
(JSC::ISO8601::parseTimeZoneNumericUTCOffset):
(JSC::ISO8601::parseTimeZoneBracketedAnnotation):
(JSC::ISO8601::canBeTimeZone):
(JSC::ISO8601::parseTimeZone):
(JSC::ISO8601::parseTime):
(JSC::ISO8601::daysInMonth):
(JSC::ISO8601::parseDate):
(JSC::ISO8601::parseDateTime):
(JSC::ISO8601::formatTimeZoneOffsetString):
(JSC::ISO8601::temporalTimeToString):
(JSC::ISO8601::isValidDuration):

  • runtime/ISO8601.h:

(JSC::ISO8601::Duration::Duration):
(JSC::ISO8601::Duration::operator[]):
(JSC::ISO8601::Duration::operator[] const):
(JSC::ISO8601::Duration::begin const):
(JSC::ISO8601::Duration::end const):
(JSC::ISO8601::Duration::clear):
(JSC::ISO8601::Duration::operator- const):
(JSC::ISO8601::PlainTime::PlainTime):
(JSC::ISO8601::PlainTime::operator==):
(JSC::ISO8601::PlainDate::PlainDate):
(JSC::ISO8601::PlainDate::year const):
(JSC::ISO8601::PlainDate::month const):
(JSC::ISO8601::PlainDate::day const):

  • runtime/IntlObject.cpp:

(JSC::utcTimeZoneIDSlow):

  • runtime/IntlObject.h:

(JSC::utcTimeZoneID):

  • runtime/JSGlobalObject.cpp:

(JSC::JSGlobalObject::init):
(JSC::JSGlobalObject::visitChildrenImpl):

  • runtime/JSGlobalObject.h:

(JSC::JSGlobalObject::plainTimeStructure):

  • runtime/TemporalCalendarConstructor.cpp:

(JSC::TemporalCalendarConstructor::finishCreation):

  • runtime/TemporalDuration.cpp:

(JSC::TemporalDuration::tryCreateIfValid):
(JSC::TemporalDuration::fromNonDurationValue):
(JSC::TemporalDuration::toDuration):
(JSC::TemporalDuration::toDurationRecord):
(JSC::TemporalDuration::toString const):
(JSC::TemporalDuration::toString):
(JSC::isValidDuration): Deleted.
(JSC::TemporalDuration::fromObject): Deleted.

  • runtime/TemporalDuration.h:
  • runtime/TemporalNow.cpp:

(JSC::JSC_DEFINE_HOST_FUNCTION):

  • runtime/TemporalObject.cpp:

(JSC::createPlainTimeConstructor):
(JSC::secondsStringPrecision):
(JSC::toTemporalOverflow):

  • runtime/TemporalObject.h:
  • runtime/TemporalPlainTime.cpp: Added.

(JSC::TemporalPlainTime::create):
(JSC::TemporalPlainTime::createStructure):
(JSC::TemporalPlainTime::TemporalPlainTime):
(JSC::TemporalPlainTime::finishCreation):
(JSC::TemporalPlainTime::visitChildrenImpl):
(JSC::toPlainTime):
(JSC::TemporalPlainTime::tryCreateIfValid):
(JSC::nonNegativeModulo):
(JSC::balanceTime):
(JSC::roundTime):
(JSC::TemporalPlainTime::round const):
(JSC::TemporalPlainTime::toString const):
(JSC::propertyName):
(JSC::toTemporalTimeRecord):
(JSC::toPartialTime):
(JSC::constraintTime):
(JSC::regulateTime):
(JSC::toTemporalCalendarWithISODefault):
(JSC::getTemporalCalendarWithISODefault):
(JSC::TemporalPlainTime::from):
(JSC::TemporalPlainTime::compare):
(JSC::toLimitedTemporalDuration):
(JSC::addTime):
(JSC::TemporalPlainTime::add const):
(JSC::TemporalPlainTime::subtract const):
(JSC::TemporalPlainTime::with const):
(JSC::differenceTime):
(JSC::extractDifferenceOptions):
(JSC::TemporalPlainTime::until const):
(JSC::TemporalPlainTime::since const):

  • runtime/TemporalPlainTime.h: Added.
  • runtime/TemporalPlainTimeConstructor.cpp: Added.

(JSC::TemporalPlainTimeConstructor::create):
(JSC::TemporalPlainTimeConstructor::createStructure):
(JSC::TemporalPlainTimeConstructor::TemporalPlainTimeConstructor):
(JSC::TemporalPlainTimeConstructor::finishCreation):
(JSC::JSC_DEFINE_HOST_FUNCTION):

  • runtime/TemporalPlainTimeConstructor.h: Copied from Source/JavaScriptCore/runtime/TemporalTimeZone.h.
  • runtime/TemporalPlainTimePrototype.cpp: Added.

(JSC::TemporalPlainTimePrototype::create):
(JSC::TemporalPlainTimePrototype::createStructure):
(JSC::TemporalPlainTimePrototype::TemporalPlainTimePrototype):
(JSC::TemporalPlainTimePrototype::finishCreation):
(JSC::JSC_DEFINE_HOST_FUNCTION):
(JSC::JSC_DEFINE_CUSTOM_GETTER):

  • runtime/TemporalPlainTimePrototype.h: Copied from Source/JavaScriptCore/runtime/TemporalTimeZone.h.
  • runtime/TemporalTimeZone.cpp:

(JSC::TemporalTimeZone::from):
(JSC::TemporalTimeZone::idForTimeZoneName): Deleted.

  • runtime/TemporalTimeZone.h:
  • runtime/TemporalTimeZoneConstructor.cpp:

(JSC::TemporalTimeZoneConstructor::finishCreation):
(JSC::JSC_DEFINE_HOST_FUNCTION):

  • runtime/VM.cpp:
  • runtime/VM.h:

Source/WTF:

  • wtf/text/IntegerToStringConversion.h:
  • wtf/text/StringParsingBuffer.h:
7:12 PM Changeset in webkit [282124] by Fujii Hironori
  • 2 edits in trunk/Tools

[Win] PlatformWebView::simulateSpacebarKeyPress sends wrong scan code for the space key and Alt key
https://bugs.webkit.org/show_bug.cgi?id=229928

Reviewed by Don Olmstead.

PlatformWebView::simulateSpacebarKeyPress sent 39, but it should be 0x39.
PlatformWebView::simulateAltKeyPress sent 38, but it should be 0x38.

  • TestWebKitAPI/win/PlatformWebViewWin.cpp:

(TestWebKitAPI::PlatformWebView::simulateSpacebarKeyPress):
(TestWebKitAPI::PlatformWebView::simulateAltKeyPress):

7:02 PM Changeset in webkit [282123] by Fujii Hironori
  • 5 edits in trunk

[WinCairo] Support prefers-color-scheme media query
https://bugs.webkit.org/show_bug.cgi?id=229976

Reviewed by Don Olmstead.

.:

Just turned on ENABLE_DARK_MODE_CSS and HAVE_OS_DARK_MODE_SUPPORT.
It's always the light mode.

  • Source/cmake/OptionsWin.cmake:
  • Source/cmake/OptionsWinCairo.cmake:

LayoutTests:

  • platform/wincairo/TestExpectations:
6:57 PM Changeset in webkit [282122] by Alan Bujtas
  • 3 edits in trunk/Source/WebCore

[LFC][IFC] Construct line spanning inline boxes first
https://bugs.webkit.org/show_bug.cgi?id=230018

Reviewed by Antti Koivisto.

Runs for line spanning inline boxes (e.g. <span>first line<br>second line</span>) can now be constrcuted before getting to the actual line content.
(It simply means that we can keep adding runs to the vector instead of using insert to position the line spanning inline box runs right after the root inline box run.)

  • layout/formattingContexts/inline/InlineDisplayContentBuilder.cpp:

(WebCore::Layout::InlineDisplayContentBuilder::build):
(WebCore::Layout::InlineDisplayContentBuilder::createRunsAndUpdateGeometryForLineContent):
(WebCore::Layout::InlineDisplayContentBuilder::createRunsAndUpdateGeometryForLineSpanningInlineBoxes):

  • layout/formattingContexts/inline/InlineDisplayContentBuilder.h:
6:42 PM Changeset in webkit [282121] by achristensen@apple.com
  • 4 edits in trunk/Source/WebKit

Replace PrivateClickMeasurementNetworkLoader::start with an implementation that doesn't need NetworkSession
https://bugs.webkit.org/show_bug.cgi?id=230015

This fixes the internal build after r282110.

  • NetworkProcess/PrivateClickMeasurement/cocoa/PrivateClickMeasurementNetworkLoaderCocoa.mm:

(WebKit::PCM::NetworkLoader::start):
(processPCMRequest): Deleted.

  • NetworkProcess/cocoa/NetworkDataTaskCocoa.h:
  • NetworkProcess/cocoa/NetworkDataTaskCocoa.mm:

(processPCMRequest):
(WebKit::setPCMDataCarriedOnRequest):

6:21 PM Changeset in webkit [282120] by rniwa@webkit.org
  • 2 edits in trunk/Source/WebCore

Eagerly resolve slot elements to simply the code in SlotAssignment
https://bugs.webkit.org/show_bug.cgi?id=229748
<rdar://problem/82732031>

Unreviewed. Restore the code that got erroneously removed in r281878.

  • dom/SlotAssignment.cpp:

(WebCore::SlotAssignment::addSlotElementByName):

6:19 PM Changeset in webkit [282119] by commit-queue@webkit.org
  • 3 edits in trunk/LayoutTests

[GLIB] Unreviewed test gardening, update expectations for some flaky tests.
https://bugs.webkit.org/show_bug.cgi?id=230029

Patch by Arcady Goldmints-Orlov <Arcady Goldmints-Orlov> on 2021-09-07

  • platform/glib/TestExpectations:
  • platform/gtk/TestExpectations:
5:32 PM Changeset in webkit [282118] by commit-queue@webkit.org
  • 2 edits in trunk/LayoutTests

[GLIB] Update test baselines after r281617
https://bugs.webkit.org/show_bug.cgi?id=230010

Unreviewed test gardening.

Patch by Arcady Goldmints-Orlov <Arcady Goldmints-Orlov> on 2021-09-07

  • platform/glib/imported/w3c/web-platform-tests/media-source/mediasource-changetype-play-implicit-expected.txt:
5:08 PM Changeset in webkit [282117] by Cameron McCormack
  • 2 edits in trunk/Source/WebCore

Ensure ImageBuffers are destroyed on the main thread
https://bugs.webkit.org/show_bug.cgi?id=229906
<rdar://problem/82745925>

Reviewed by Ryosuke Niwa.

  • platform/graphics/ImageBuffer.h:
4:58 PM Changeset in webkit [282116] by Eric Hutchison
  • 2 edits in trunk/LayoutTests

[BigSur wk2 Debug x86] http/tests/media/media-document-referer.html is a flaky failure.
https://bugs.webkit.org/show_bug.cgi?id=230027.

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
4:32 PM Changeset in webkit [282115] by Cameron McCormack
  • 19 edits in trunk/Source

Add an IPCMessages channel to log all IPC messages
https://bugs.webkit.org/show_bug.cgi?id=229664
<rdar://problem/82511640>

Reviewed by Alex Christensen.

Source/WebCore:

Add a way to get the type of process we're in as a string, for
logging.

  • platform/RuntimeApplicationChecks.cpp:

(WebCore::processType):
(WebCore::processTypeDescription):

  • platform/RuntimeApplicationChecks.h:

Source/WebKit:

This adds a new IPCMessages log channel, to which all IPC message names,
arguments, and return values are logged. To avoid performance impacts
when not logging, these are only enabled in debug builds.

ValueOrDefault is used when writing out each message argument to (1)
avoid having to add operator<<(TextStream&) defintions for all
argument types right now, and (2) to alleviate the need to add such a
definition when adding new IPC messages. The string "..." is output
for types with no operator<< defined.

The remote and local process IDs are included in the log message. The
remote process ID is only readily accessible on OS(DARWIN), as we can
grab it from the XPC connection. But not all IPC::Connections are
created for XPC connections. For example, the Web -> GPU process
connection is created by the UI process on behalf of the Web process,
and the IPC::Connection::Identifier does not have an XPC service
handle in it. So for now, we omit the remote process ID. (We'd need
to thread it through messages like CreateGPUConnectionToWebProcess
to have it available.)

Since we need the IPC::Connection object for logging now, all of the
handleMessage* functions take a connection, and the messages.py code
generator is updated accordingly.

  • Platform/IPC/HandleMessage.h:

(IPC::textStreamForLogging):
(IPC::logMessageImpl):
(IPC::logMessage):
(IPC::logReply):
(IPC::handleMessage):
(IPC::handleMessageWantsConnection):
(IPC::handleMessageSynchronous):
(IPC::handleMessageSynchronousWantsConnection):
(IPC::handleMessageAsync):
(IPC::handleMessageAsyncWantsConnection):

  • Platform/Logging.h:
  • Scripts/webkit/messages.py:

(async_message_statement):
(sync_message_statement):

  • Scripts/webkit/tests/TestWithCVPixelBufferMessageReceiver.cpp:

(WebKit::TestWithCVPixelBuffer::didReceiveMessage):
(WebKit::TestWithCVPixelBuffer::didReceiveSyncMessage):

  • Scripts/webkit/tests/TestWithIfMessageMessageReceiver.cpp:

(WebKit::TestWithIfMessage::didReceiveMessage):

  • Scripts/webkit/tests/TestWithImageDataMessageReceiver.cpp:

(WebKit::TestWithImageData::didReceiveMessage):
(WebKit::TestWithImageData::didReceiveSyncMessage):

  • Scripts/webkit/tests/TestWithLegacyReceiverMessageReceiver.cpp:

(WebKit::TestWithLegacyReceiver::didReceiveTestWithLegacyReceiverMessage):
(WebKit::TestWithLegacyReceiver::didReceiveSyncTestWithLegacyReceiverMessage):

  • Scripts/webkit/tests/TestWithSemaphoreMessageReceiver.cpp:

(WebKit::TestWithSemaphore::didReceiveMessage):
(WebKit::TestWithSemaphore::didReceiveSyncMessage):

  • Scripts/webkit/tests/TestWithStreamBufferMessageReceiver.cpp:

(WebKit::TestWithStreamBuffer::didReceiveMessage):

  • Scripts/webkit/tests/TestWithStreamMessageReceiver.cpp:

(WebKit::TestWithStream::didReceiveStreamMessage):

  • Scripts/webkit/tests/TestWithSuperclassMessageReceiver.cpp:

(WebKit::TestWithSuperclass::didReceiveMessage):

  • Scripts/webkit/tests/TestWithoutAttributesMessageReceiver.cpp:

(WebKit::TestWithoutAttributes::didReceiveMessage):
(WebKit::TestWithoutAttributes::didReceiveSyncMessage):

  • UIProcess/ProvisionalPageProxy.cpp:

(WebKit::ProvisionalPageProxy::didReceiveMessage):

Source/WTF:

Two changes to TextStream in this patch.

The first is a new argument to the constructor to allow limiting
the number of elements in a container when appending it to a
TextStream. This is intended to be used when the output is for
human consumption and could potentially be uselessly large.

The second is a value adapter ValueOrEllipsis. This allows appending
a value to a TextStream even if it doesn't have an
operator<<(TextStream&) defined. If it doesn't, then the fallback
value "..." is used instead.

An implementation detail of ValueOrEllipsis is a new type trait
supports_text_stream_insertion, which detects at compile time whether
a given type can be appended to a TextStream. It works by using
"expression SFINAE" and partial template specialization.

The base, unspecialized version of the template inherits from
std::false_type, and is selected for all types by default.

A partial specialization that uses decltype() to check whether a
TextStream() << value expression would compile inherits from
std::true_type.

Sadly, C++ SFINAE has a limitation that means template definitions
that would be instantiated inside the decltype() are not checked
to ensure they would compile. This would mean container types whose
elements are types that don't have an operator<< defined would still
report true from supports_text_stream_insertion. We work around this
by having more specific partial specializations for all of the container
types we have operator<< definitions for, which defer to the
supports_text_stream_insertion value for the element type(s).

If an operator<< is added for a new container type without a
corresponding supports_text_stream_insertion specialization, and that
type is used with ValueOrEllipsis, it will cause a compile error.

The supports_text_stream_insertion template takes six template
arguments, which looks odd, but is needed because all specializations
must have the same number (and kind) of template arguments. The six
include five type template arguments (which is how many HashMap has)
plus a size_t value template argument (for Vector's inlineCapacity
argument).

  • wtf/text/TextStream.h:

(WTF::TextStream::TextStream):
(WTF::TextStream::containerSizeLimit const):
(WTF::operator<<):
(WTF::ValueOrEllipsis::ValueOrEllipsis):

4:32 PM Changeset in webkit [282114] by pvollan@apple.com
  • 2 edits in trunk/Source/WebKit

Fix incorrect preprocess guard in WebContent sandbox
https://bugs.webkit.org/show_bug.cgi?id=230025
<rdar://82721734>

Reviewed by Brent Fulgham.

Fix incorrect macOS version guard.

  • WebProcess/com.apple.WebProcess.sb.in:
4:02 PM Changeset in webkit [282113] by Jonathan Bedard
  • 4 edits in trunk/Tools

[git-webkit] Support callbacks as main arguments (Follow-up fix)
https://bugs.webkit.org/show_bug.cgi?id=229739
<rdar://problem/82597266>

Unreviewed follow-up fix.

  • Scripts/libraries/webkitscmpy/setup.py: Bump version.
  • Scripts/libraries/webkitscmpy/webkitscmpy/init.py: Ditto.
  • Scripts/libraries/webkitscmpy/webkitscmpy/local/git.py:

(Git.url): For compatibility, use git config directly.

3:23 PM Changeset in webkit [282112] by Russell Epstein
  • 1 copy in tags/Safari-613.1.1

Tag Safari-613.1.1.

3:15 PM Changeset in webkit [282111] by mmaxfield@apple.com
  • 1 edit
    1 add in trunk/PerformanceTests

Add a PerformanceTest for some common FontFaceSet style update operations
https://bugs.webkit.org/show_bug.cgi?id=229913

Reviewed by Stephanie Lewis.

This is similar to some of the operations we've seen in the wild.
We want to make sure we can do these fast.

  • CSS/FontFaceSetUpdateStyle.html: Added.
3:14 PM Changeset in webkit [282110] by achristensen@apple.com
  • 14 edits
    2 adds in trunk/Source/WebKit

Replace PrivateClickMeasurementNetworkLoader::start with an implementation that doesn't need NetworkSession
https://bugs.webkit.org/show_bug.cgi?id=230015

Reviewed by John Wilander.

This is needed to run this code in a process that doesn't have NetworkSession, which is a class tied closely to WKWebsiteDataStore.
This replaces it with a simple implementation that does the same things:

  1. Uses an ephemeral stateless session that doesn't accept cookies or use credentials.
  2. Does not allow redirects.
  3. Only accepts JSON mime types.
  4. Calls processPCMRequest

We still need to call NetworkSessionCocoa::allowsSpecificHTTPSCertificateForHost to get tests to pass.
Covered by existing tests.

  • NetworkProcess/NetworkLoadParameters.h:
  • NetworkProcess/NetworkResourceLoadParameters.cpp:

(WebKit::NetworkResourceLoadParameters::encode const):
(WebKit::NetworkResourceLoadParameters::decode):

  • NetworkProcess/NetworkSession.h:

(WebKit::NetworkSession::addPrivateClickMeasurementNetworkLoader): Deleted.
(WebKit::NetworkSession::removePrivateClickMeasurementNetworkLoader): Deleted.

  • NetworkProcess/PrivateClickMeasurement/PrivateClickMeasurementClient.h:

(WebKit::PCM::Client::~Client):

  • NetworkProcess/PrivateClickMeasurement/PrivateClickMeasurementClientImpl.cpp:

(WebKit::PCM::ClientImpl::loadFromNetwork): Deleted.

  • NetworkProcess/PrivateClickMeasurement/PrivateClickMeasurementClientImpl.h:
  • NetworkProcess/PrivateClickMeasurement/PrivateClickMeasurementManager.cpp:

(WebKit::PrivateClickMeasurementManager::getTokenPublicKey):
(WebKit::PrivateClickMeasurementManager::getSignedUnlinkableToken):
(WebKit::PrivateClickMeasurementManager::fireConversionRequestImpl):

  • NetworkProcess/PrivateClickMeasurement/PrivateClickMeasurementNetworkLoader.cpp:

(WebKit::PCM::NetworkLoader::start):
(WebKit::generateNetworkLoadParameters): Deleted.
(WebKit::PrivateClickMeasurementNetworkLoader::start): Deleted.
(WebKit::PrivateClickMeasurementNetworkLoader::PrivateClickMeasurementNetworkLoader): Deleted.
(WebKit::PrivateClickMeasurementNetworkLoader::~PrivateClickMeasurementNetworkLoader): Deleted.
(WebKit::PrivateClickMeasurementNetworkLoader::fail): Deleted.
(WebKit::PrivateClickMeasurementNetworkLoader::cancel): Deleted.
(WebKit::PrivateClickMeasurementNetworkLoader::willSendRedirectedRequest): Deleted.
(WebKit::PrivateClickMeasurementNetworkLoader::didReceiveResponse): Deleted.
(WebKit::PrivateClickMeasurementNetworkLoader::didReceiveBuffer): Deleted.
(WebKit::PrivateClickMeasurementNetworkLoader::didFinishLoading): Deleted.
(WebKit::PrivateClickMeasurementNetworkLoader::didFailLoading): Deleted.
(WebKit::PrivateClickMeasurementNetworkLoader::didComplete): Deleted.

  • NetworkProcess/PrivateClickMeasurement/PrivateClickMeasurementNetworkLoader.h:

(): Deleted.

  • NetworkProcess/PrivateClickMeasurement/cocoa/PrivateClickMeasurementNetworkLoaderCocoa.mm: Added.

(processPCMRequest):
(-[WKNetworkSessionDelegateAllowingOnlyNonRedirectedJSON URLSession:task:willPerformHTTPRedirection:newRequest:completionHandler:]):
(-[WKNetworkSessionDelegateAllowingOnlyNonRedirectedJSON URLSession:dataTask:didReceiveResponse:completionHandler:]):
(-[WKNetworkSessionDelegateAllowingOnlyNonRedirectedJSON URLSession:task:didReceiveChallenge:completionHandler:]):
(WebKit::PCM::taskMap):
(WebKit::PCM::statelessSessionWithoutRedirects):
(WebKit::PCM::NetworkLoader::start):

  • NetworkProcess/cocoa/NetworkDataTaskCocoa.h:
  • NetworkProcess/cocoa/NetworkDataTaskCocoa.mm:

(WebKit::NetworkDataTaskCocoa::NetworkDataTaskCocoa):
(processPCMRequest): Deleted.

  • SourcesCocoa.txt:
  • WebKit.xcodeproj/project.pbxproj:
3:13 PM Changeset in webkit [282109] by achristensen@apple.com
  • 4 edits in trunk/Source/WebKit

Simplify PrivateClickMeasurementManager interface
https://bugs.webkit.org/show_bug.cgi?id=230014

Reviewed by John Wilander.

ResourceRequest serialization is excessive and complicated.
Let's just serialize the parts we need instead.

  • NetworkProcess/NetworkSession.cpp:

(WebKit::NetworkSession::handlePrivateClickMeasurementConversion):

  • NetworkProcess/PrivateClickMeasurement/PrivateClickMeasurementClient.h:
  • NetworkProcess/PrivateClickMeasurement/PrivateClickMeasurementManager.cpp:

(WebKit::PrivateClickMeasurementManager::handleAttribution):

  • NetworkProcess/PrivateClickMeasurement/PrivateClickMeasurementManager.h:
3:04 PM Changeset in webkit [282108] by Jonathan Bedard
  • 5 edits in trunk/Tools

[git-webkit] Support callbacks as main arguments
https://bugs.webkit.org/show_bug.cgi?id=229739
<rdar://problem/82597266>

Reviewed by Dewei Zhu.

  • Scripts/git-webkit:

(is_webkit_filter): Return item if repository is Webkit.

  • Scripts/libraries/webkitscmpy/setup.py: Bump version.
  • Scripts/libraries/webkitscmpy/webkitscmpy/init.py: Ditto.
  • Scripts/libraries/webkitscmpy/webkitscmpy/program/init.py:

(main): Pass repository to contributors, identifier_template and subversion
to dynamically generate values if those arguments are callable.

2:21 PM Changeset in webkit [282107] by Fujii Hironori
  • 2 edits in trunk/LayoutTests

[WinCairo] Unreviewed test gardening

  • platform/wincairo/TestExpectations:
2:17 PM Changeset in webkit [282106] by Chris Dumez
  • 2 edits in trunk/LayoutTests

Unreviewed minor test fix after r282105.

The test conflicted with another change that landed recently.

  • http/tests/messaging/broadcastchannel-partitioning.html:
12:38 PM Changeset in webkit [282105] by Chris Dumez
  • 20 edits
    4 adds in trunk

Implement origin partitioning (top-origin/frame-origin) for BroadcastChannel
https://bugs.webkit.org/show_bug.cgi?id=229814

Reviewed by Alex Christensen.

Source/WebCore:

Implement origin partitioning (top-origin/frame-origin) for BroadcastChannel to address privacy
concerns, as discussed here:

Test: http/tests/messaging/broadcastchannel-partitioning.html

  • dom/BroadcastChannel.cpp:

(WebCore::BroadcastChannel::BroadcastChannel):
(WebCore::m_identifier):
(WebCore::BroadcastChannel::dispatchMessage):

  • dom/BroadcastChannel.h:
  • dom/BroadcastChannelRegistry.h:
  • loader/EmptyClients.cpp:

Source/WebKit:

Implement origin partitioning (top-origin/frame-origin) for BroadcastChannel to address privacy
concerns, as discussed here:

  • NetworkProcess/NetworkBroadcastChannelRegistry.cpp:

(WebKit::NetworkBroadcastChannelRegistry::registerChannel):
(WebKit::NetworkBroadcastChannelRegistry::unregisterChannel):
(WebKit::NetworkBroadcastChannelRegistry::postMessage):
(WebKit::NetworkBroadcastChannelRegistry::removeConnection):

  • NetworkProcess/NetworkBroadcastChannelRegistry.h:
  • NetworkProcess/NetworkBroadcastChannelRegistry.messages.in:
  • WebProcess/WebCoreSupport/WebBroadcastChannelRegistry.cpp:

(WebKit::WebBroadcastChannelRegistry::registerChannel):
(WebKit::WebBroadcastChannelRegistry::unregisterChannel):
(WebKit::WebBroadcastChannelRegistry::postMessage):

  • WebProcess/WebCoreSupport/WebBroadcastChannelRegistry.h:

Source/WebKitLegacy:

Implement origin partitioning (top-origin/frame-origin) for BroadcastChannel to address privacy
concerns, as discussed here:

  • WebCoreSupport/WebBroadcastChannelRegistry.cpp:

(WebBroadcastChannelRegistry::registerChannel):
(WebBroadcastChannelRegistry::unregisterChannel):
(WebBroadcastChannelRegistry::postMessage):

  • WebCoreSupport/WebBroadcastChannelRegistry.h:

Source/WTF:

Add experimental preference for BroadcastChannel origin partitioning. This is useful because we currently
disable this when running web-platform-tests in WKTR / DRT for now.

  • Scripts/Preferences/WebPreferencesExperimental.yaml:

Tools:

Disable BroadcastChannel origin partitioning when running layout tests since it would cause
too many test failures in WPT tests at this point (e.g. COOP/COEP tests).

  • TestRunnerShared/TestFeatures.cpp:

(WTR::shouldDisableBroadcastChannelOriginPartitioning):
(WTR::hardcodedFeaturesBasedOnPathForTest):

  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::resetPreferencesToConsistentValues):

  • WebKitTestRunner/TestOptions.cpp:

(WTR::TestOptions::defaults):

LayoutTests:

Add layout test coverage.

  • http/tests/messaging/broadcastchannel-partitioning-expected.txt: Added.
  • http/tests/messaging/broadcastchannel-partitioning.html: Added.
  • http/tests/messaging/resources/broadcastchannel-partitioning-iframe.html: Added.
  • http/tests/messaging/resources/broadcastchannel-partitioning-popup.html: Added.
12:01 PM Changeset in webkit [282104] by Ayumi Kojima
  • 4 edits in trunk/LayoutTests

[iOS, BigSur+] webrtc/datachannel/getStats-no-prflx-remote-candidate.html is a flaky timeout.
https://bugs.webkit.org/show_bug.cgi?id=229877

Unreviewed test gardning.

  • platform/ios-wk2/TestExpectations:
  • platform/mac-wk1/TestExpectations:
  • platform/mac-wk2/TestExpectations:
11:48 AM Changeset in webkit [282103] by Chris Dumez
  • 353 edits in trunk

Allow layout tests to open popups by default
https://bugs.webkit.org/show_bug.cgi?id=229881

Reviewed by Darin Adler.

Tools:

Allow layout tests to open popups by default and drop testRunner.setCanOpenWindow().

  • DumpRenderTree/TestRunner.cpp:

(TestRunner::staticFunctions):

  • DumpRenderTree/TestRunner.h:

(TestRunner::setCallCloseOnWebViews):

  • DumpRenderTree/mac/UIDelegate.mm:

(-[UIDelegate webView:createWebViewWithRequest:]):

  • DumpRenderTree/win/UIDelegate.cpp:

(UIDelegate::createWebViewWithRequest):

  • WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl:
  • WebKitTestRunner/InjectedBundle/TestRunner.cpp:
  • WebKitTestRunner/InjectedBundle/TestRunner.h:

(WTR::TestRunner::setAcceptsEditing):

  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::createOtherPage):

  • WebKitTestRunner/TestInvocation.cpp:

(WTR::TestInvocation::didReceiveSynchronousMessageFromInjectedBundle):

  • WebKitTestRunner/TestInvocation.h:

LayoutTests:

Stop calling testRunner.setCanOpenWindow() as tests are now allowed to open
popups by default.

  • animations/crash-on-removing-animation.html:
  • editing/execCommand/show-modal-dialog-during-execCommand.html:
  • editing/mac/input/unconfirmed-text-navigation-with-page-cache.html:
  • fast/animation/request-animation-frame-during-modal.html:
  • fast/animation/request-animation-frame-in-two-pages.html:
  • fast/dom/DeviceMotion/no-page-cache.html:
  • fast/dom/DeviceOrientation/no-page-cache.html:
  • fast/dom/Document/early-document-access.html:
  • fast/dom/Geolocation/window-close-crash.html:
  • fast/dom/HTMLAnchorElement/anchor-file-blob-download-blank-target.html:
  • fast/dom/Window/Location/set-location-after-close.html:
  • fast/dom/Window/child-window-focus.html:
  • fast/dom/Window/closure-access-after-navigation-window.html:
  • fast/dom/Window/dom-access-from-closure-window-with-gc.html:
  • fast/dom/Window/dom-access-from-closure-window.html:
  • fast/dom/Window/mozilla-focus-blur.html:
  • fast/dom/Window/new-window-opener.html:
  • fast/dom/Window/open-invalid-url.html:
  • fast/dom/Window/open-window-min-size.html:
  • fast/dom/Window/open-zero-size-as-default.html:
  • fast/dom/Window/resources/rel-noopener.js:
  • fast/dom/Window/resources/window-open-opener-cycle2.html:
  • fast/dom/Window/resources/window-open-opener-cycle3.html:
  • fast/dom/Window/setting-properties-on-closed-window.html:
  • fast/dom/Window/window-early-properties.html:
  • fast/dom/Window/window-open-activeWindow-null-frame.html:
  • fast/dom/Window/window-open-opener-cycle.html:
  • fast/dom/Window/window-open-pending-url.html:
  • fast/dom/Window/window-open-self-as-opener.html:
  • fast/dom/Window/window-opener-set-to-null.html:
  • fast/dom/Window/window-property-invalid-characters-ignored.html:
  • fast/dom/location-new-window-no-crash.html:
  • fast/dom/open-and-close-by-DOM.html:
  • fast/dom/window-domurl-crash.html:
  • fast/dom/window-open-ephemeral.html:
  • fast/events/attempt-scroll-with-no-scrollbars.html:
  • fast/events/before-unload-navigate-different-window.html:
  • fast/events/before-unload-open-window.html:
  • fast/events/beforeunload-showModalDialog.html:
  • fast/events/ios/submit-form-target-blank-using-return-key.html:
  • fast/events/open-window-from-another-frame.html:
  • fast/events/page-visibility-iframe-move-test.html:
  • fast/events/pagehide-showModalDialog.html:
  • fast/events/popup-allowed-from-gesture-initiated-event.html:
  • fast/events/popup-allowed-from-gesture-initiated-form-submit.html:
  • fast/events/popup-blocked-from-fake-button-click.html:
  • fast/events/popup-blocked-from-fake-focus.html:
  • fast/events/popup-blocked-from-fake-user-gesture.html:
  • fast/events/popup-blocked-from-history-reload.html:
  • fast/events/popup-blocked-from-iframe-script.html:
  • fast/events/popup-blocked-from-iframe-src.html:
  • fast/events/popup-blocked-from-mousemove.html:
  • fast/events/popup-blocked-from-sandboxed-frame-via-window-open-named-sibling-frame.html:
  • fast/events/popup-blocked-from-sandboxed-frame-via-window-open-named-sibling-frame2.html:
  • fast/events/popup-blocked-from-unique-frame-via-window-open-named-sibling-frame.html:
  • fast/events/popup-blocked-from-untrusted-click-event-on-anchor.html:
  • fast/events/popup-blocked-from-untrusted-mouse-click.html:
  • fast/events/popup-blocked-from-window-open.html:
  • fast/events/popup-blocked-to-post-blank.html:
  • fast/events/popup-blocking-click-in-iframe.html:
  • fast/events/popup-blocking-timers1.html:
  • fast/events/popup-blocking-timers2.html:
  • fast/events/popup-blocking-timers3.html:
  • fast/events/popup-blocking-timers5.html:
  • fast/events/popup-blocking-timers6.html:
  • fast/events/popup-when-select-change.html:
  • fast/events/scroll-event-during-modal-dialog.html:
  • fast/events/show-modal-dialog-onblur-onfocus.html:
  • fast/events/unload-showModalDialog.html:
  • fast/files/domurl-script-execution-context-crash.html:
  • fast/forms/multiple-form-submission-protection-mouse.html:
  • fast/forms/submit-to-blank-multiple-times.html:
  • fast/frames/frame-crash-with-page-cache.html:
  • fast/frames/page-hide-document-open.html:
  • fast/frames/page-unload-document-open.html:
  • fast/frames/restoring-page-cache-should-not-run-scripts-via-style-update.html:
  • fast/frames/restoring-page-cache-should-not-run-scripts.html:
  • fast/frames/sandboxed-iframe-close-top-noclose.html:
  • fast/frames/sandboxed-iframe-close-top.html:
  • fast/frames/sandboxed-iframe-navigation-windowopen.html:
  • fast/harness/page-cache-crash-on-data-urls.html:
  • fast/harness/show-modal-dialog.html:
  • fast/harness/use-page-cache.html:
  • fast/history/history-subframe-with-name.html:
  • fast/history/history_reload.html:
  • fast/history/location-replace-hash.html:
  • fast/history/page-cache-after-window-open.html:
  • fast/history/page-cache-back-navigation-crash.html:
  • fast/history/page-cache-with-opener.html:
  • fast/history/window-open.html:
  • fast/html/broadcast-channel-between-different-sessions.html:
  • fast/images/animated-gif-window-resizing.html:
  • fast/loader/cancel-load-during-port-block-timer.html:
  • fast/loader/crash-copying-backforwardlist.html:
  • fast/loader/fragment-navigation-base-blank.html:
  • fast/loader/iframe-meta-refresh-base-blank.html:
  • fast/loader/iframe-set-location-base-blank.html:
  • fast/loader/image-in-page-cache.html:
  • fast/loader/navigate-with-new-target-after-back-forward-navigation.html:
  • fast/loader/navigate-with-post-to-new-target-after-back-forward-navigation.html:
  • fast/loader/ping-error.html:
  • fast/loader/refresh-iframe-base-blank.html:
  • fast/loader/reload-zero-byte-plugin.html:
  • fast/loader/stateobjects/no-popstate-when-back-to-stateless-entry-with-page-cache.html:
  • fast/loader/stateobjects/no-popstate-when-back-to-stateless-entry.html:
  • fast/loader/stateobjects/popstate-fires-with-page-cache.html:
  • fast/loader/stateobjects/pushstate-without-history.html:
  • fast/loader/stateobjects/replacestate-in-iframe.html:
  • fast/loader/url-selected-user-gesture.html:
  • fast/loader/window-open-to-invalid-url-calls-policy-delegate.html:
  • fast/loader/window-open-to-invalid-url-disallowed.html:
  • fast/parser/xhtml-close-while-parsing.xhtml:
  • fullscreen/full-screen-exit-when-popup.html:
  • http/tests/app-privacy-report/app-attribution-post-request.html:
  • http/tests/app-privacy-report/user-attribution-post-request.html:
  • http/tests/appcache/crash-when-navigating-away-then-back.html:
  • http/tests/appcache/identifier-test.html:
  • http/tests/blink/sendbeacon/beacon-detached-no-crash.html:
  • http/tests/cache/display-image-unset-allows-cached-image-load.html:
  • http/tests/cache/history-navigation-no-resource-revalidation.html:
  • http/tests/cache/history-only-cached-subresource-loads-max-age-https.html:
  • http/tests/cache/history-only-cached-subresource-loads.html:
  • http/tests/cache/reload-expired-only.html:
  • http/tests/contentextensions/block-everything-unless-domain.html:
  • http/tests/contentextensions/popups.html:
  • http/tests/cookies/document-cookie-after-showModalDialog.html:
  • http/tests/cookies/resources/cookie-utilities.js:
  • http/tests/dom/new-window-can-target-opener.html:
  • http/tests/dom/noopener-window-cannot-target-opener.html:
  • http/tests/dom/noopener-window-not-targetable.html:
  • http/tests/dom/noopener-window-not-targetable2.html:
  • http/tests/dom/noreferrer-window-not-targetable.html:
  • http/tests/dom/opened-window-not-targetable-after-disowning-opener.html:
  • http/tests/dom/resources/new-window-can-target-opener-win.html:
  • http/tests/dom/resources/noopener-window-cannot-target-opener-win.html:
  • http/tests/dom/window-location-set-href-relative-url.html:
  • http/tests/dom/window-open-about-blank-and-access-document.html:
  • http/tests/dom/window-open-about-uppercase-blank-and-access-document.html:
  • http/tests/dom/window-open-about-webkit-org-and-access-document-async-delegates.html:
  • http/tests/dom/window-open-about-webkit-org-and-access-document.html:
  • http/tests/download/anchor-load-after-download.html:
  • http/tests/inspector/resources/protocol-test.js:
  • http/tests/media/user-gesture-preserved-across-xmlhttprequest.html:
  • http/tests/media/video-cancel-load.html:
  • http/tests/misc/href-attribute-resolves-with-respect-to-document.html:
  • http/tests/misc/iframe-reparenting-id-collision.html:
  • http/tests/misc/set-window-opener-to-null.html:
  • http/tests/misc/slow-preload-cancel.html:
  • http/tests/misc/window-open-then-write.html:
  • http/tests/misc/xml-document-origin.html:
  • http/tests/navigation/anchor-blank-target-implies-rel-noopener.html:
  • http/tests/navigation/new-window-redirect-history.html:
  • http/tests/navigation/no-referrer-reset.html:
  • http/tests/navigation/no-referrer-target-blank.html:
  • http/tests/navigation/process-swap-window-open.html:
  • http/tests/navigation/target-blank-opener-post.html:
  • http/tests/navigation/target-blank-opener.html:
  • http/tests/navigation/target-frame-from-window.html:
  • http/tests/navigation/window-open-cross-origin-then-navigated-back-same-origin.html:
  • http/tests/notifications/window-show-on-click.html:
  • http/tests/plugins/plugin-document-has-focus.html:
  • http/tests/privateClickMeasurement/attribution-conversion-through-image-redirect-in-new-window.html:
  • http/tests/security/aboutBlank/security-context-window-open.html:
  • http/tests/security/aboutBlank/window-open-self-about-blank.html:
  • http/tests/security/aboutBlank/xss-DENIED-navigate-opener-document-write.html:
  • http/tests/security/aboutBlank/xss-DENIED-navigate-opener-javascript-url.html:
  • http/tests/security/aboutBlank/xss-DENIED-set-opener.html:
  • http/tests/security/blob-null-url-location-origin.html:
  • http/tests/security/contentSecurityPolicy/block-all-mixed-content/data-url-iframe-in-main-frame.html:
  • http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-css-in-main-frame.html:
  • http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-iframe-in-main-frame.html:
  • http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-image-in-main-frame.html:
  • http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-plugin-in-main-frame.html:
  • http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-script-in-main-frame.html:
  • http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-xhr-asynchronous-in-main-frame.html:
  • http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-xhr-synchronous-in-main-frame.html:
  • http/tests/security/contentSecurityPolicy/cross-origin-plugin-document-allowed-in-child-window.html:
  • http/tests/security/contentSecurityPolicy/image-blocked-in-about-blank-window.html:
  • http/tests/security/contentSecurityPolicy/plugin-blocked-in-about-blank-window.html:
  • http/tests/security/contentSecurityPolicy/resources/window-open-javascript-url-blocked.js:
  • http/tests/security/contentSecurityPolicy/same-origin-plugin-document-allowed-in-child-window.html:
  • http/tests/security/contentSecurityPolicy/same-origin-plugin-document-blocked-in-child-window-report.py:
  • http/tests/security/contentSecurityPolicy/same-origin-plugin-document-blocked-in-child-window.html:
  • http/tests/security/contentSecurityPolicy/same-origin-plugin-document-with-csp-blocked-in-child-window.html:
  • http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/https-header-auxiliary.html:
  • http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/https-header-subresource.html:
  • http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/https-header-top-level.html:
  • http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/proper-open-window-upgrades.html:
  • http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/resources/nested-window.html:
  • http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/upgrade-insecure-audio-video-in-main-frame.html:
  • http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/upgrade-insecure-fetch-in-main-frame.html:
  • http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/upgrade-insecure-fetch-in-worker.html:
  • http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/upgrade-insecure-image-in-main-frame.html:
  • http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/upgrade-insecure-sync-xhr-in-main-frame.html:
  • http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/upgrade-insecure-xhr-in-main-frame.html:
  • http/tests/security/contentSecurityPolicy/window-open-javascript-url-with-target-blocked.html:
  • http/tests/security/cookies/cookie-theft-with-javascript-doc.html:
  • http/tests/security/credentials-from-different-domains.html:
  • http/tests/security/credentials-iframes-allowCrossOriginSubresourcesToAskForCredentials.html:
  • http/tests/security/credentials-iframes.html:
  • http/tests/security/cross-frame-access-call.html:
  • http/tests/security/cross-origin-modal-dialog-base.html:
  • http/tests/security/cross-origin-window-open-insert-script.html:
  • http/tests/security/cross-origin-window-open-javascript-url.html:
  • http/tests/security/cross-origin-worker-indexeddb.html:
  • http/tests/security/dataURL/xss-DENIED-from-data-url-in-foreign-domain-window-open.html:
  • http/tests/security/dataURL/xss-DENIED-from-javascript-url-window-open.html:
  • http/tests/security/dataURL/xss-DENIED-to-data-url-in-foreign-domain-window-open.html:
  • http/tests/security/dataURL/xss-DENIED-to-data-url-window-open.html:
  • http/tests/security/frameNavigation/cross-origin-opener.html:
  • http/tests/security/frameNavigation/inactive-function-in-popup-navigate-child.html:
  • http/tests/security/frameNavigation/not-opener.html:
  • http/tests/security/frameNavigation/opener.html:
  • http/tests/security/frameNavigation/xss-DENIED-plugin-navigation.html:
  • http/tests/security/frameNavigation/xss-DENIED-targeted-link-navigation.html:
  • http/tests/security/history-username-password.html:
  • http/tests/security/inactive-document-with-empty-security-origin.html:
  • http/tests/security/insecure-geolocation.html:
  • http/tests/security/isolatedWorld/userGestureEvents.html:
  • http/tests/security/javascriptURL/xss-ALLOWED-from-javascript-url-window-open.html:
  • http/tests/security/javascriptURL/xss-ALLOWED-to-javascript-url-window-open.html:
  • http/tests/security/javascriptURL/xss-DENIED-from-javascript-url-in-foreign-domain-window-open.html:
  • http/tests/security/javascriptURL/xss-DENIED-to-javascript-url-in-foreign-domain-window-open.html:
  • http/tests/security/mixedContent/about-blank-iframe-in-main-frame.html:
  • http/tests/security/mixedContent/data-url-iframe-in-main-frame.html:
  • http/tests/security/mixedContent/insecure-audio-video-in-main-frame.html:
  • http/tests/security/mixedContent/insecure-css-in-main-frame.html:
  • http/tests/security/mixedContent/insecure-css-with-secure-cookies.html:
  • http/tests/security/mixedContent/insecure-executable-css-with-secure-cookies.html:
  • http/tests/security/mixedContent/insecure-form-in-main-frame.html:
  • http/tests/security/mixedContent/insecure-iframe-in-main-frame.html:
  • http/tests/security/mixedContent/insecure-image-in-main-frame.html:
  • http/tests/security/mixedContent/insecure-image-redirects-to-basic-auth-secure-image-allowCrossOriginSubresourcesToAskForCredentials.html:
  • http/tests/security/mixedContent/insecure-image-redirects-to-basic-auth-secure-image.html:
  • http/tests/security/mixedContent/insecure-image-with-securecookie-block.html:
  • http/tests/security/mixedContent/insecure-image-with-securecookie.html:
  • http/tests/security/mixedContent/insecure-script-in-data-iframe-in-main-frame-blocked.html:
  • http/tests/security/mixedContent/insecure-script-redirects-to-basic-auth-secure-script.html:
  • http/tests/security/mixedContent/insecure-stylesheet-redirects-to-basic-auth-secure-stylesheet.html:
  • http/tests/security/mixedContent/insecure-xhr-in-main-frame.html:
  • http/tests/security/mixedContent/insecure-xhr-sync-in-main-frame.html:
  • http/tests/security/mixedContent/javascript-url-form-in-main-frame.html:
  • http/tests/security/mixedContent/redirect-http-to-https-iframe-in-main-frame.html:
  • http/tests/security/mixedContent/redirect-https-to-http-iframe-in-main-frame.html:
  • http/tests/security/mixedContent/redirect-https-to-http-image-secure-cookies-block.html:
  • http/tests/security/mixedContent/redirect-https-to-http-image-secure-cookies.html:
  • http/tests/security/mixedContent/websocket/insecure-websocket-in-main-frame.html:
  • http/tests/security/mixedcontent-geolocation-block-insecure-content.html:
  • http/tests/security/mixedcontent-geolocation.html:
  • http/tests/security/navigate-when-restoring-cached-page.html:
  • http/tests/security/no-popup-from-sandbox-top.html:
  • http/tests/security/no-popup-from-sandbox.html:
  • http/tests/security/originHeader/origin-header-for-empty.html:
  • http/tests/security/popup-allowed-by-sandbox-is-sandboxed-control.html:
  • http/tests/security/popup-allowed-by-sandbox-is-sandboxed.html:
  • http/tests/security/popup-allowed-by-sandbox-when-allowed.html:
  • http/tests/security/popup-blocked-from-fake-event.html:
  • http/tests/security/popup-blocked-from-window-open.html:
  • http/tests/security/referrer-policy-nested-window-open.html:
  • http/tests/security/referrer-policy-redirect-link-downgrade.html:
  • http/tests/security/referrer-policy-redirect-link.html:
  • http/tests/security/referrer-policy-subframe-window-open.html:
  • http/tests/security/referrer-policy-window-open-subframe.html:
  • http/tests/security/referrer-policy-window-open.html:
  • http/tests/security/showModalDialog-sync-cross-origin-page-load.html:
  • http/tests/security/showModalDialog-sync-cross-origin-page-load2.html:
  • http/tests/security/top-level-unique-origin2.https.html:
  • http/tests/security/window-events-clear-domain.html:
  • http/tests/security/window-events-clear-port.html:
  • http/tests/security/window-events-pass.html:
  • http/tests/security/window-name-after-cross-origin-aux-frame-navigation.html:
  • http/tests/security/window-name-after-same-origin-aux-frame-navigation.html:
  • http/tests/security/window-named-valueOf.html:
  • http/tests/security/window-opened-from-sandboxed-iframe-should-inherit-sandbox.html:
  • http/tests/security/xss-DENIED-click-and-form-submission-from-inactive-domwindow.html:
  • http/tests/security/xss-DENIED-script-inject-into-inactive-window.html:
  • http/tests/security/xss-DENIED-script-inject-into-inactive-window2-pson.html:
  • http/tests/security/xss-DENIED-script-inject-into-inactive-window2.html:
  • http/tests/security/xss-DENIED-script-inject-into-inactive-window3.html:
  • http/tests/security/xss-DENIED-synchronous-frame-load-in-javascript-url.html:
  • http/tests/security/xss-DENIED-xsl-document-securityOrigin.xml:
  • http/tests/security/xssAuditor/link-opens-new-window.html:
  • http/tests/security/xssAuditor/window-open-without-url-should-not-assert.html:
  • http/tests/storageAccess/deny-storage-access-under-opener-ephemeral.html:
  • http/tests/storageAccess/deny-storage-access-under-opener-if-auto-dismiss-ephemeral.html:
  • http/tests/storageAccess/deny-storage-access-under-opener-if-auto-dismiss.html:
  • http/tests/storageAccess/deny-storage-access-under-opener.html:
  • http/tests/storageAccess/deny-with-prompt-does-not-preserve-gesture.html:
  • http/tests/storageAccess/deny-without-prompt-preserves-gesture.html:
  • http/tests/storageAccess/grant-storage-access-under-opener-at-popup-user-gesture-ephemeral.html:
  • http/tests/storageAccess/grant-storage-access-under-opener-at-popup-user-gesture.html:
  • http/tests/storageAccess/grant-with-prompt-preserves-gesture.html:
  • http/tests/storageAccess/resources/request-storage-access-iframe-and-pop-window.html:
  • http/tests/workers/service/Client-properties-auxiliary.html:
  • http/tests/workers/service/client-added-to-clients-when-restored-from-page-cache.html:
  • http/tests/workers/service/client-removed-from-clients-while-in-page-cache.html:
  • http/tests/workers/service/resources/registration-task-queue-scheduling-1.js:
  • http/tests/xmlhttprequest/close-window.html:
  • http/tests/xmlhttprequest/cross-origin-authorization-with-embedder.html:
  • http/tests/xmlhttprequest/cross-origin-authorization.html:
  • http/tests/xmlhttprequest/cross-origin-cookie-storage.html:
  • http/tests/xmlhttprequest/cross-origin-no-authorization.html:
  • http/tests/xmlhttprequest/request-from-popup.html:
  • http/tests/xmlhttprequest/sync-xhr-in-beforeunload.html:
  • http/tests/xmlhttprequest/sync-xhr-in-unload.html:
  • imported/blink/fast/dom/Window/open-window-features-fuzz.html:
  • imported/blink/fast/events/popup-forwarded-gesture.html:
  • js/dom/function-constructor-this-value.html:
  • js/instance-property-getter-other-instance.html:
  • loader/go-back-cached-main-resource.html:
  • loader/navigation-policy/should-open-external-urls/resources/user-gesture-target-blank-to-notify-done.html:
  • loader/navigation-policy/should-open-external-urls/resources/user-gesture-window-open-to-notify-done.html:
  • loader/navigation-policy/should-open-external-urls/resources/window-open-to-notify-done.html:
  • media/crash-closing-page-with-media-as-plugin-fallback.html:
  • platform/ipad/media/controls/close-page-with-picture-in-picture-video-assertion-failure.html:
  • plugins/access-after-page-destroyed-2.html:
  • plugins/access-after-page-destroyed.html:
  • plugins/destroy-during-npp-new-object-with-fallback-content.html:
  • plugins/destroy-during-npp-new.html:
  • plugins/geturlnotify-during-document-teardown.html:
  • plugins/navigator-plugin-crash.html:
  • plugins/open-and-close-window-with-plugin.html:
  • plugins/plugin-initiate-popup-window.html:
  • plugins/window-open.html:
  • printing/print-close-crash.html:
  • resources/testharnessreport.js:
  • storage/domstorage/localstorage/access-storage-after-window-close.html:
  • storage/domstorage/localstorage/access-storage-then-set-value-in-storage-after-window-close.html:
  • storage/domstorage/localstorage/set-value-in-storage-after-window-close.html:
  • storage/domstorage/localstorage/window-open.html:
  • storage/domstorage/sessionstorage/window-open.html:
  • storage/indexeddb/modern/blob-cursor.html:
  • storage/indexeddb/modern/blob-svg-image.html:
  • tiled-drawing/tiled-drawing-scroll-position-page-cache-restoration.html:
  • webarchive/adopt-attribute-styled-body-webarchive-expected.webarchive:
  • webarchive/adopt-attribute-styled-body-webarchive.html:
  • webarchive/adopt-attribute-styled-node-webarchive-expected.webarchive:
  • webarchive/adopt-attribute-styled-node-webarchive.html:
  • webarchive/adopt-inline-styled-node-webarchive-expected.webarchive:
  • webarchive/adopt-inline-styled-node-webarchive.html:
11:29 AM Changeset in webkit [282102] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

TestWebKitAPI.EventAttribution.Basic is extremely flaky on api-ios
https://bugs.webkit.org/show_bug.cgi?id=229995

Patch by Alex Christensen <achristensen@webkit.org> on 2021-09-07
Reviewed by Jonathan Bedard.

Clear state on disk before running these tests.

  • TestWebKitAPI/Tests/WebKitCocoa/EventAttribution.mm:

(TestWebKitAPI::clearState):
(TestWebKitAPI::runBasicEventAttributionTest):
(TestWebKitAPI::TEST):

11:19 AM Changeset in webkit [282101] by Eric Hutchison
  • 2 edits in trunk/LayoutTests

[BigSur wk2 Debug x86] http/tests/inspector/network/x-frame-options.html is a flaky failure.
https://bugs.webkit.org/show_bug.cgi?id=230013.

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
11:18 AM Changeset in webkit [282100] by clopez@igalia.com
  • 4 edits in trunk/Tools

[build.webkit.org][ews-build.webkit.org] Only try to download from S3 on the production server
https://bugs.webkit.org/show_bug.cgi?id=230006

Reviewed by Aakash Jain.

The URL identifiers used for the S3 built products are not random,
they depend on the revision number or the patch number. So it can
happen than on a test deployment the tester downloads the built-product
from the official deployment at webkit.org rather than from its own worker.

Avoid this by ensuring that only on the official deployment it is tried to
download from S3. On the test deployments the code will now skip the step to
download from S3 and instead it will download the built product from the master.

  • CISupport/build-webkit-org/steps.py:

(DownloadBuiltProduct.start):

  • CISupport/ews-build/steps.py:

(DownloadBuiltProduct.getResultSummary):
(DownloadBuiltProduct.start):

  • CISupport/ews-build/steps_unittest.py:
11:14 AM Changeset in webkit [282099] by Russell Epstein
  • 1 copy in tags/Safari-612.1.29.41.1

Tag Safari-612.1.29.41.1.

11:11 AM Changeset in webkit [282098] by Ayumi Kojima
  • 2 edits in trunk/LayoutTests

[ iOS EWS ] media/modern-media-controls/media-documents/media-document-invalid.html is a flaky crash.
https://bugs.webkit.org/show_bug.cgi?id=230012

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
11:03 AM Changeset in webkit [282097] by commit-queue@webkit.org
  • 5 edits in trunk

webgl/2.0.y/deqp/functional/gles3/negativestateapi.html get_framebuffer_attachment_parameter fails on Metal
https://bugs.webkit.org/show_bug.cgi?id=229947

Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2021-09-07
Reviewed by Kenneth Russell.

Source/WebCore:

Fix get_framebuffer_attachment_parameter part of
webgl/2.0.y/deqp/functional/gles3/negativestateapi.html.
The code was querying the attachment parameters of default framebuffer from ANGLE.
However, this is problematic as WebGL default framebuffer is emulated with
a FBO with texture and stencil attachment. As such, some properties returned
values that should have returned errors.
WebGL2 specification specifies all the properties that can be queried.
All these properties are known at the WebCore level, so just return them
there.
Failing test part was:

gl.bindFramebuffer(gl.FRAMEBUFFER, null);
gl.getFramebufferAttachmentParameter(gl.FRAMEBUFFER, gl.BACK, gl.FRAMEBUFFER_ATTACHMENT_OBJECT_NAME);
this.expectError(gl.INVALID_ENUM);

and:

gl.bindFramebuffer(gl.FRAMEBUFFER, null);
gl.getFramebufferAttachmentParameter(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.FRAMEBUFFER_ATTACHMENT_OBJECT_NAME);
this.expectError([gl.INVALID_OPERATION, gl.INVALID_ENUM]);

Tested by:
webgl/2.0.y/deqp/functional/gles3/negativestateapi.html

Does modify test expectations since the test fails in other, unrelated parts.

  • html/canvas/WebGL2RenderingContext.cpp:

(WebCore::WebGL2RenderingContext::getFramebufferAttachmentParameter):

LayoutTests:

The fix fixed the test partially. This would affect the test results.
WebGL tests do not commonly have partially succeeding test results, rather
the -expected.txt is always the "success".

webgl/2.0.0/deqp/functional/gles3/negativestateapi.html had its result generated with
buggy implementation, e.g. the result had failures listed. Regenerate the result and
add expected failure to test expectations instead.

  • webgl/2.0.0/deqp/functional/gles3/negativestateapi-expected.txt:

Reset the expected.txt to test success instead of incorrect failure.

  • webgl/TestExpectations:

Mark the test failing.

11:00 AM Changeset in webkit [282096] by Megan Gardner
  • 12 edits in trunk

Rewrite long press and drag tests to be more robust.
https://bugs.webkit.org/show_bug.cgi?id=229779
rdar://40917203

Reviewed by Wenson Hsieh.

Tools:

Found a crash when bad data was entered for gesture emulation.

  • WebKitTestRunner/ios/UIScriptControllerIOS.mm:

(WTR::convertCoordinates):

LayoutTests:

Rewrite long press and drag tests to use more modern methods and make the test more
robust to small changes in UIKit's selection code.

  • fast/events/touch/ios/long-press-on-editable-content-then-drag-down-to-change-selected-text-expected.txt:
  • fast/events/touch/ios/long-press-on-editable-content-then-drag-down-to-change-selected-text.html:
  • fast/events/touch/ios/long-press-on-editable-content-then-drag-left-to-change-selected-text-expected.txt:
  • fast/events/touch/ios/long-press-on-editable-content-then-drag-left-to-change-selected-text.html:
  • fast/events/touch/ios/long-press-on-editable-content-then-drag-right-to-change-selected-text-expected.txt:
  • fast/events/touch/ios/long-press-on-editable-content-then-drag-right-to-change-selected-text.html:
  • fast/events/touch/ios/long-press-on-editable-content-then-drag-up-to-change-selected-text-expected.txt:
  • fast/events/touch/ios/long-press-on-editable-content-then-drag-up-to-change-selected-text.html:
  • resources/ui-helper.js:

(window.UIHelper.midPointOfRect):

10:54 AM Changeset in webkit [282095] by Ayumi Kojima
  • 2 edits in trunk/LayoutTests

[ iOS EWS ] imported/w3c/web-platform-tests/html/cross-origin-opener-policy/resource-popup.https.html is flaky.
https://bugs.webkit.org/show_bug.cgi?id=230011

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
10:54 AM Changeset in webkit [282094] by Russell Epstein
  • 5 edits in branches/safari-612.1.29.41-branch/Source/WebKit

Cherry-pick r282003. rdar://problem/82828665

Buffer large media XHRs in the NetworkProcess to reduce IPC overhead
https://bugs.webkit.org/show_bug.cgi?id=229813
<rdar://82406803>

Reviewed by Alex Christensen.

When playing back media through MSE, a significant amount of CPU time is spent sending
small chunks of loaded media across the XPC boundary, on the order of 16kb at a time out
of a 1-3MB resource. This large number of small XPC messages, each with a fixed cost, causes
a relatively large CPU overhead. Media loaded directly through a HTMLMediaElement already
is coalesced in the NetworkProcess on a 50ms timer.

Buffer all loads of large media resources, performed over fetch() or XHR, when those resources
have an expected length of more than 1MB, by coalescing them on the same 50ms timer as we use
for HTMLMediaElement-generated loads.

  • NetworkProcess/NetworkResourceLoadParameters.h:
  • NetworkProcess/NetworkResourceLoader.cpp: (WebKit::NetworkResourceLoader::didReceiveResponse):
  • NetworkProcess/NetworkResourceLoader.h:
  • WebProcess/Network/WebLoaderStrategy.cpp: (WebKit::maximumBufferingTime):
  • WebProcess/Network/WebLoaderStrategy.h:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@282003 268f45cc-cd09-0410-ab3c-d52691b4dbfc

9:48 AM Changeset in webkit [282093] by Eric Hutchison
  • 2 edits in trunk/LayoutTests

Update test expectations for http/tests/security/no-indexeddb-from-sandbox.html.
https://bugs.webkit.org/show_bug.cgi?id=229723.

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
9:41 AM Changeset in webkit [282092] by commit-queue@webkit.org
  • 8 edits
    2 adds in trunk

Unreviewed, reverting r282086.
https://bugs.webkit.org/show_bug.cgi?id=230005

Turns out -webkit-line-clamp with link is used by iTunes store

Reverted changeset:

"Remove -webkit-line-clamp behaviour where last link is placed
after ellipsis box"
https://bugs.webkit.org/show_bug.cgi?id=229985
https://commits.webkit.org/r282086

9:37 AM Changeset in webkit [282091] by Jonathan Bedard
  • 2 edits in trunk/Tools

Exception in run-webkit-tests: Bad file descriptor (Part 1)
https://bugs.webkit.org/show_bug.cgi?id=229994

Reviewed by Aakash Jain.

  • Scripts/webkitpy/port/server_process.py:

(ServerProcess.write): Catch "Bad file descriptor."
(ServerProcess._wait_for_data_and_update_buffers_using_select): Ditto.

9:30 AM Changeset in webkit [282090] by Wenson Hsieh
  • 2 edits in trunk/Source/WebKit

Post-layout EditorState updates should be scheduled using RenderingUpdateScheduler
https://bugs.webkit.org/show_bug.cgi?id=229905

Reviewed by Simon Fraser.

Use Page::scheduleRenderingUpdate rather than DrawingArea::triggerRenderingUpdate to ensure that we schedule
a layer tree flush when sending a full post-layout EditorState update to the UI process. On macOS, the latter
method on DrawingArea will immediately install a runloop observer for the next CA commit, while the former only
does so after a zero-delay timer fires, courtesy of RenderingUpdateScheduler.

This prevents us from triggering unnecessary layer tree flushes in the case where the selection changes
frequently during a single rendering update; in particular, in Speedometer 2 on macOS, this decreases the total
number of rendering updates performed over the course of the benchmark by roughly 30%.

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::scheduleFullEditorStateUpdate):

9:26 AM Changeset in webkit [282089] by Simon Fraser
  • 10 edits
    1 add in trunk/LayoutTests/imported/w3c

Update the css-transforms/parsing WPT
https://bugs.webkit.org/show_bug.cgi?id=229974

Reviewed by Youenn Fablet.

Update the transforms parsing tests to 8a2b0f1086adf122d91c36c222b26362ba4059f2.

An update of the entire css-transforms directory has too many failures to deal with.

  • resources/import-expectations.json:
  • web-platform-tests/css/css-transforms/parsing/scale-parsing-invalid-expected.txt:
  • web-platform-tests/css/css-transforms/parsing/scale-parsing-invalid.html:
  • web-platform-tests/css/css-transforms/parsing/scale-parsing-valid-expected.txt:
  • web-platform-tests/css/css-transforms/parsing/scale-parsing-valid.html:
  • web-platform-tests/css/css-transforms/parsing/transform-valid-expected.txt:
  • web-platform-tests/css/css-transforms/parsing/transform-valid.html:
  • web-platform-tests/css/css-transforms/parsing/translate-parsing-invalid-expected.txt:
  • web-platform-tests/css/css-transforms/parsing/translate-parsing-invalid.html:
  • web-platform-tests/css/css-transforms/parsing/w3c-import.log: Added.
8:56 AM Changeset in webkit [282088] by sihui_liu@apple.com
  • 2 edits
    78 adds in trunk/LayoutTests/imported/w3c

Import storage tests from WPT
https://bugs.webkit.org/show_bug.cgi?id=229965

Reviewed by Youenn Fablet.

  • resources/import-expectations.json:
  • web-platform-tests/storage/META.yml: Added.
  • web-platform-tests/storage/README.md: Added.
  • web-platform-tests/storage/buckets/META.yml: Added.
  • web-platform-tests/storage/buckets/w3c-import.log: Added.
  • web-platform-tests/storage/estimate-indexeddb.https.any-expected.txt: Added.
  • web-platform-tests/storage/estimate-indexeddb.https.any.html: Added.
  • web-platform-tests/storage/estimate-indexeddb.https.any.js: Added.

(indexedDbOpenRequest):
(promise_test.async t):

  • web-platform-tests/storage/estimate-indexeddb.https.any.worker-expected.txt: Added.
  • web-platform-tests/storage/estimate-indexeddb.https.any.worker.html: Added.
  • web-platform-tests/storage/estimate-parallel.https.any-expected.txt: Added.
  • web-platform-tests/storage/estimate-parallel.https.any.html: Added.
  • web-platform-tests/storage/estimate-parallel.https.any.js: Added.

(promise_test.async t):

  • web-platform-tests/storage/estimate-parallel.https.any.worker-expected.txt: Added.
  • web-platform-tests/storage/estimate-parallel.https.any.worker.html: Added.
  • web-platform-tests/storage/estimate-usage-details-application-cache.https.tentative-expected.txt: Added.
  • web-platform-tests/storage/estimate-usage-details-application-cache.https.tentative.html: Added.
  • web-platform-tests/storage/estimate-usage-details-caches.https.tentative.any-expected.txt: Added.
  • web-platform-tests/storage/estimate-usage-details-caches.https.tentative.any.html: Added.
  • web-platform-tests/storage/estimate-usage-details-caches.https.tentative.any.js: Added.

(promise_test.async t):

  • web-platform-tests/storage/estimate-usage-details-caches.https.tentative.any.worker-expected.txt: Added.
  • web-platform-tests/storage/estimate-usage-details-caches.https.tentative.any.worker.html: Added.
  • web-platform-tests/storage/estimate-usage-details-indexeddb.https.tentative.any-expected.txt: Added.
  • web-platform-tests/storage/estimate-usage-details-indexeddb.https.tentative.any.html: Added.
  • web-platform-tests/storage/estimate-usage-details-indexeddb.https.tentative.any.js: Added.

(promise_test.async t):

  • web-platform-tests/storage/estimate-usage-details-indexeddb.https.tentative.any.worker-expected.txt: Added.
  • web-platform-tests/storage/estimate-usage-details-indexeddb.https.tentative.any.worker.html: Added.
  • web-platform-tests/storage/estimate-usage-details-service-workers.https.tentative.window-expected.txt: Added.
  • web-platform-tests/storage/estimate-usage-details-service-workers.https.tentative.window.html: Added.
  • web-platform-tests/storage/estimate-usage-details-service-workers.https.tentative.window.js: Added.

(promise_test.async t):

  • web-platform-tests/storage/estimate-usage-details.https.tentative.any-expected.txt: Added.
  • web-platform-tests/storage/estimate-usage-details.https.tentative.any.html: Added.
  • web-platform-tests/storage/estimate-usage-details.https.tentative.any.js: Added.

(promise_test.async t):

  • web-platform-tests/storage/estimate-usage-details.https.tentative.any.worker-expected.txt: Added.
  • web-platform-tests/storage/estimate-usage-details.https.tentative.any.worker.html: Added.
  • web-platform-tests/storage/helpers.js: Added.

(createDB):

  • web-platform-tests/storage/idlharness.https.any-expected.txt: Added.
  • web-platform-tests/storage/idlharness.https.any.html: Added.
  • web-platform-tests/storage/idlharness.https.any.js: Added.
  • web-platform-tests/storage/idlharness.https.any.worker-expected.txt: Added.
  • web-platform-tests/storage/idlharness.https.any.worker.html: Added.
  • web-platform-tests/storage/opaque-origin.https.window-expected.txt: Added.
  • web-platform-tests/storage/opaque-origin.https.window.html: Added.
  • web-platform-tests/storage/opaque-origin.https.window.js: Added.

(load_iframe):
(wait_for_message.return.new.Promise):
(forEach.snippet.assert_equals):

  • web-platform-tests/storage/permission-query.https.any-expected.txt: Added.
  • web-platform-tests/storage/permission-query.https.any.html: Added.
  • web-platform-tests/storage/permission-query.https.any.js: Added.

(promise_test.async t):

  • web-platform-tests/storage/permission-query.https.any.worker-expected.txt: Added.
  • web-platform-tests/storage/permission-query.https.any.worker.html: Added.
  • web-platform-tests/storage/persisted.https.any-expected.txt: Added.
  • web-platform-tests/storage/persisted.https.any.html: Added.
  • web-platform-tests/storage/persisted.https.any.js: Added.

(test):
(promise_test):

  • web-platform-tests/storage/persisted.https.any.worker-expected.txt: Added.
  • web-platform-tests/storage/persisted.https.any.worker.html: Added.
  • web-platform-tests/storage/quotachange-in-detached-iframe.tentative.https-expected.txt: Added.
  • web-platform-tests/storage/quotachange-in-detached-iframe.tentative.https.html: Added.
  • web-platform-tests/storage/resources/appcache.manifest: Added.
  • web-platform-tests/storage/resources/iframe_with_appcache_manifest.html: Added.
  • web-platform-tests/storage/resources/w3c-import.log: Added.
  • web-platform-tests/storage/storagemanager-estimate.https.any-expected.txt: Added.
  • web-platform-tests/storage/storagemanager-estimate.https.any.html: Added.
  • web-platform-tests/storage/storagemanager-estimate.https.any.js: Added.

(test):
(promise_test):

  • web-platform-tests/storage/storagemanager-estimate.https.any.worker-expected.txt: Added.
  • web-platform-tests/storage/storagemanager-estimate.https.any.worker.html: Added.
  • web-platform-tests/storage/storagemanager-persist.https.window-expected.txt: Added.
  • web-platform-tests/storage/storagemanager-persist.https.window.html: Added.
  • web-platform-tests/storage/storagemanager-persist.https.window.js: Added.

(promise_test):

  • web-platform-tests/storage/storagemanager-persist.https.worker-expected.txt: Added.
  • web-platform-tests/storage/storagemanager-persist.https.worker.html: Added.
  • web-platform-tests/storage/storagemanager-persist.https.worker.js: Added.

(test):

  • web-platform-tests/storage/storagemanager-persisted.https.any-expected.txt: Added.
  • web-platform-tests/storage/storagemanager-persisted.https.any.html: Added.
  • web-platform-tests/storage/storagemanager-persisted.https.any.js: Added.

(promise_test):

  • web-platform-tests/storage/storagemanager-persisted.https.any.worker-expected.txt: Added.
  • web-platform-tests/storage/storagemanager-persisted.https.any.worker.html: Added.
  • web-platform-tests/storage/w3c-import.log: Added.
8:44 AM Changeset in webkit [282087] by Jonathan Bedard
  • 2 edits in trunk/Tools

run_webkit_tests failed to print error message in python3 in linux_get_crash_log.py
https://bugs.webkit.org/show_bug.cgi?id=229971

Reviewed by Aakash Jain.

  • Scripts/webkitpy/port/linux_get_crash_log.py:

(GDBCrashLogGenerator._get_gdb_output):

8:30 AM Changeset in webkit [282086] by Antti Koivisto
  • 8 edits
    2 deletes in trunk

Remove -webkit-line-clamp behaviour where last link is placed after ellipsis box
https://bugs.webkit.org/show_bug.cgi?id=229985

Reviewed by Alan Bujtas.

Source/WebCore:

-webkit-line-clamp has a bizarre and random behavior where the last link in a paragraph gets
rendered after the ellipsis box. It was exists to support some long-dead UI. No other engine does this.
The implementation is buggy and only works at all under a narrow set of cicrumstances.

This patch removes the behavior.

  • rendering/LegacyEllipsisBox.cpp:

(WebCore::LegacyEllipsisBox::LegacyEllipsisBox):
(WebCore::LegacyEllipsisBox::paint):
(WebCore::LegacyEllipsisBox::nodeAtPoint):
(WebCore::LegacyEllipsisBox::markupBox const): Deleted.
(WebCore::LegacyEllipsisBox::paintMarkupBox): Deleted.

  • rendering/LegacyEllipsisBox.h:
  • rendering/LegacyRootInlineBox.cpp:

(WebCore::LegacyRootInlineBox::placeEllipsis):

  • rendering/LegacyRootInlineBox.h:
  • rendering/RenderDeprecatedFlexibleBox.cpp:

(WebCore::RenderDeprecatedFlexibleBox::applyLineClamp):

LayoutTests:

  • fast/flexbox/line-clamp-link-after-ellipsis-expected.txt: Removed.
  • fast/flexbox/line-clamp-link-after-ellipsis.html: Removed.
8:00 AM Changeset in webkit [282085] by svillar@igalia.com
  • 4 edits
    2 adds in trunk

Interoperability issue in margin collapsing with overflow:hidden elements
https://bugs.webkit.org/show_bug.cgi?id=224185

Reviewed by Alan Bujtas.

Source/WebCore:

Margins should not self collapse for those elements that create new formatting contexts
like when using overflow:hidden.

Test: fast/block/margin-collapse/self-collapsing-block-with-overflow-hidden.html

  • rendering/RenderBlock.cpp:

(WebCore::RenderBlock::isSelfCollapsingBlock const): Boxes that create new formatting context should
not self collapse.

LayoutTests:

  • TestExpectations: Unskipped 3 flexbox tests that are working fine now.
  • fast/block/margin-collapse/self-collapsing-block-with-overflow-hidden-expected.html: Added.
  • fast/block/margin-collapse/self-collapsing-block-with-overflow-hidden.html: Added.
7:32 AM Changeset in webkit [282084] by Brent Fulgham
  • 5 edits in trunk

[wpt-improvement] Improve CSP support for window reuse
https://bugs.webkit.org/show_bug.cgi?id=229882
<rdar://78416553>

Reviewed by Chris Dumez.

LayoutTests/imported/w3c:

Rebaseline a test that now passes.

  • web-platform-tests/content-security-policy/sandbox/window-reuse-sandboxed-expected.txt:

Source/WebCore:

If window.open is used to host content with a CSP sandbox header, we should always
create a new window, rather than reusing the existing one, unless the header
includes 'allow-same-site'.

This improves our WPT score.

Tested by: imported/w3c/web-platform-tests/content-security-policy/sandbox/window-reuse-sandboxed.html

  • loader/DocumentLoader.cpp:

(WebCore::DocumentLoader::responseReceived): Parse the HTTP headers earlier so we can
make decisions based on their state.

  • loader/DocumentWriter.cpp:

(WebCore::DocumentWriter::begin): Don't reuse the current window if 'allow-same-site'
is not allowed.

7:14 AM Changeset in webkit [282083] by svillar@igalia.com
  • 2 edits in trunk/Source/WebCore

Do not let RenderFragmentContainers create new formatting contexts
https://bugs.webkit.org/show_bug.cgi?id=229759

Reviewed by Alan Bujtas.

The isRenderFragmentContainer() condition was added in r176957 when the createsNewFormattingContext() function
was introduced. Back then it was actually isRenderRegion() which was later renamed. However that was wrongly added
to the method because it should have remained in the caller RenderBlockFlow::addOverhangingFloats().

Instead of removing it (as the patch does) I thought about moving it back to the addOverhangingFloats() method
where it was added as part of r167602. That revision is actually two fixes and the one that required this code
was an import of a Blink patch. However moving it to its original location does not seem to regress anything and
what's more Blink has also removed it from there some time ago. That's why I decided just to remove it.

Does not directly fix any test at the moment but it's a precondition for wkb.ug/224185 which will fix 3 tests.

  • rendering/RenderBox.cpp:

(WebCore::RenderBox::createsNewFormattingContext const):

7:13 AM Changeset in webkit [282082] by clopez@igalia.com
  • 6 edits
    1 add in trunk/Tools

[GTK] The Xvfb display server may fail to start sometimes causing tests to randomly crash (v3)
https://bugs.webkit.org/show_bug.cgi?id=229758

Reviewed by Philippe Normand.

Add a new function in XvfbDriver() to ensure that the display server
at a given display_id is replying as expected. Ask it for the screen
size at monitor 0 and compare the result with the one we expect to
have inside Xvfb. For doing this check a external python program is
called which does the query using GTK. Using a external program is
more robust against possible failures calling into GTK and also will
allow re-using this program also to check that the weston server is
also replying as expected for the weston driver (on a future patch).

If the Xvfb driver is not replying as expected then restart it and
try again, up to 3 retries.

Use this also on the weston driver to check that the Xvfb driver is
ready.

The code is both compatible with python2 and python3, when running on
python2 it will try first to use subprocess32 if available, otherwise
will use standard python2 subprocess without using the timeout feature.

On this v3 fix an error that caused that the subprocess stderr was
redirected to stdout by mistake.

  • Scripts/webkitpy/common/system/executive_mock.py:

(MockProcess.init):
(MockProcess.communicate):

  • Scripts/webkitpy/port/westondriver.py:

(WestonDriver._setup_environ_for_test):

  • Scripts/webkitpy/port/westondriver_unittest.py:

(WestonXvfbDriverDisplayTest._xvfb_check_if_ready):

  • Scripts/webkitpy/port/xvfbdriver.py:

(XvfbDriver):
(XvfbDriver.init):
(XvfbDriver.check_driver):
(XvfbDriver._xvfb_run):
(XvfbDriver._xvfb_screen_size):
(XvfbDriver._xvfb_stop):
(XvfbDriver._xvfb_check_if_ready):
(XvfbDriver._setup_environ_for_test):
(XvfbDriver.has_crashed):
(XvfbDriver.stop):

  • Scripts/webkitpy/port/xvfbdriver_unittest.py:

(XvfbDriverTest.make_driver):
(XvfbDriverTest.assertDriverStartSuccessful):
(XvfbDriverTest.test_xvfb_start_and_ready):
(XvfbDriverTest.test_xvfb_start_arbitrary_worker_number):
(XvfbDriverTest.test_xvfb_not_replying):

  • gtk/print-screen-size: Added.
6:52 AM Changeset in webkit [282081] by ysuzuki@apple.com
  • 3 edits
    1 add in trunk

Math.hypot checks for infinite values prematurely
https://bugs.webkit.org/show_bug.cgi?id=229843

Reviewed by Ross Kirsling.

JSTests:

  • stress/math-hypot-evaluation-ordering.js: Added.

(shouldThrow):

Source/JavaScriptCore:

According to the spec[1], we should throw an error about non finite argument after coercing all arguments to doubles.

[1]: https://tc39.es/ecma262/#sec-math.hypot

  • runtime/MathObject.cpp:

(JSC::JSC_DEFINE_HOST_FUNCTION):

5:00 AM Changeset in webkit [282080] by Adrian Perez de Castro
  • 14 edits in trunk/Source

Non-unified build fixes, early September 2021 edition
https://bugs.webkit.org/show_bug.cgi?id=229983

Unreviewed non-unified build fixes.

Source/JavaScriptCore:

  • runtime/TemporalTimeZone.cpp: Add missing JSObjectInlines.h header.

Source/WebCore:

  • rendering/ReferencedSVGResources.cpp: Add missing wtf/IsoMallocInlines.h header.
  • rendering/ReferencedSVGResources.h: Add missing wtf/IsoMalloc.h and wtf/text/AtomString.h

headers, and missing forward declarations for the Document and RenderElement classes.

  • rendering/RenderView.cpp:

(WebCore::RenderView::shouldPaintBaseBackground const): Add missing HTMLNames:: namespace
prefix to usage of HTMLNames::frameTag member.

  • rendering/TextPainter.cpp: Add missing LayoutIntegrationInlineContent.h header.
  • workers/Worker.h: Add missing wtf/Deque.h header.
  • workers/service/ServiceWorkerRegistrationData.cpp: Add missing wtf/CrossThreadCopier.h

header.

Source/WebKit:

  • NetworkProcess/PrivateClickMeasurement/PrivateClickMeasurementClient.h: Add missing

WebCore/PrivateClickMeasurement.h header.

  • NetworkProcess/PrivateClickMeasurement/PrivateClickMeasurementClientImpl.cpp:

(WebKit::PCM::ClientImpl::loadFromNetwork): Sprinkle missing WebCore:: namespace prefixes.

  • NetworkProcess/PrivateClickMeasurement/PrivateClickMeasurementClientImpl.h: Add missing

wtf/WeakPtr.h header.

  • NetworkProcess/PrivateClickMeasurement/PrivateClickMeasurementNetworkLoader.cpp: Add

missing WebCore/RuntimeApplicationChecks.h header.

4:40 AM Changeset in webkit [282079] by aakash_jain@apple.com
  • 2 edits in trunk/Tools

TestWebKitAPI.EventAttribution.Basic is extremely flaky on api-ios
https://bugs.webkit.org/show_bug.cgi?id=229995

Disabling the test for now.

Unreviewed test gardening.

  • TestWebKitAPI/Tests/WebKitCocoa/EventAttribution.mm:

(TestWebKitAPI::TEST):

4:11 AM Changeset in webkit [282078] by svillar@igalia.com
  • 4 edits in trunk

[css-flexbox] Add support for left & right css-align-3 positional alignment properties
https://bugs.webkit.org/show_bug.cgi?id=229756

Reviewed by Javier Fernandez.

Source/WebCore:

Added support for Left and Right positional alignment properties from
https://drafts.csswg.org/css-align-3/#positional-values. These two properties
align the flex item to be flush with the alignment container's (the flex line)
line-left|right or physical left|right whichever is in the appropriate axis. Note that
contrary to start/end which change according to the text direction, left always refer
to where ltr text would start and right always refer to where rtl text would start.

The only caveat is that specs mention that in the case of having orthogonal start<->end and
left<->right axis (only happens in column flexboxes) then both left|right behave as start.

  • rendering/RenderFlexibleBox.cpp:

(WebCore::initialJustifyContentOffset):
(WebCore::alignmentOffset):
(WebCore::RenderFlexibleBox::staticMainAxisPositionForPositionedChild):
(WebCore::RenderFlexibleBox::alignmentForChild const):
(WebCore::RenderFlexibleBox::layoutAndPlaceChildren):
(WebCore::RenderFlexibleBox::layoutColumnReverse):

LayoutTests:

3:31 AM Changeset in webkit [282077] by commit-queue@webkit.org
  • 6 edits
    1 delete in trunk/Tools

Unreviewed, reverting r282064.
https://bugs.webkit.org/show_bug.cgi?id=229990

Made run-webkit-test fail in Linux

Reverted changeset:

"[GTK] The Xvfb display server may fail to start sometimes
causing tests to randomly crash"
https://bugs.webkit.org/show_bug.cgi?id=229758
https://commits.webkit.org/r282064

2:34 AM Changeset in webkit [282076] by Sam Sneddon
  • 2 edits in trunk/Tools

Fix DeprecationWarning in webkitpy under Py 3.6+
https://bugs.webkit.org/show_bug.cgi?id=229959

Reviewed by Alexey Proskuryakov.

  • Scripts/webkitpy/layout_tests/controllers/manager.py:

(Manager.print_summary):

1:11 AM Changeset in webkit [282075] by commit-queue@webkit.org
  • 3 edits
    2 adds in trunk

Nullptr crash in DeleteSelectionCommand::removeNodeUpdatingStates
https://bugs.webkit.org/show_bug.cgi?id=229279

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

Source/WebCore:

Fix DeleteSelectionCommand::removeNodeUpdatingStates logic
to use m_endBlock rather than m_startBlock here.

Test: editing/deleting/delete-shadow-tree-crash.html

  • editing/DeleteSelectionCommand.cpp:

(WebCore::DeleteSelectionCommand::removeNodeUpdatingStates):

LayoutTests:

  • editing/deleting/delete-shadow-tree-crash-expected.txt: Added.
  • editing/deleting/delete-shadow-tree-crash.html: Added.
12:06 AM Changeset in webkit [282074] by commit-queue@webkit.org
  • 3 edits
    2 adds in trunk

Nullptr crash in CSSValue::cssText() via DeleteSelectionCommand::calculateTypingStyleAfterDelete
https://bugs.webkit.org/show_bug.cgi?id=229281

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

Source/WebCore:

Null check the CSSValue in EditingStyle::init.

Test: editing/deleting/forward-delete-crash.html

  • editing/EditingStyle.cpp:

(WebCore::EditingStyle::init):

LayoutTests:

  • editing/deleting/forward-delete-crash-expected.txt: Added.
  • editing/deleting/forward-delete-crash.html: Added.

Sep 6, 2021:

11:34 PM Changeset in webkit [282073] by Antti Koivisto
  • 1 edit
    2 adds in trunk/LayoutTests

Add layout test for performance of adding children to a shadow host
https://bugs.webkit.org/show_bug.cgi?id=229960

Reviewed by Ryosuke Niwa.

Add test for https://trac.webkit.org/changeset/281813/webkit

  • fast/shadow-dom/host-child-append-performance-expected.txt: Added.
  • fast/shadow-dom/host-child-append-performance.html: Added.
8:26 PM Changeset in webkit [282072] by Alan Bujtas
  • 5 edits in trunk/Source/WebCore

[LFC][Integration] Remove redundant NonRootInlineBox
https://bugs.webkit.org/show_bug.cgi?id=229967

Reviewed by Antti Koivisto.

Now that all the inline boxes generate runs, and we use those runs to do painint/hittest, this
helper structure is not needed anymore.

  • layout/integration/LayoutIntegrationInlineContent.h:
  • layout/integration/LayoutIntegrationInlineContentBuilder.cpp:

(WebCore::LayoutIntegration::InlineContentBuilder::build const):
(WebCore::LayoutIntegration::InlineContentBuilder::createDisplayLines const):
(WebCore::LayoutIntegration::InlineContentBuilder::createDisplayRuns const): Deleted.

  • layout/integration/LayoutIntegrationInlineContentBuilder.h:
  • layout/integration/LayoutIntegrationLine.h:

(WebCore::LayoutIntegration::NonRootInlineBox::NonRootInlineBox): Deleted.
(WebCore::LayoutIntegration::NonRootInlineBox::layoutBox const): Deleted.
(WebCore::LayoutIntegration::NonRootInlineBox::style const): Deleted.
(WebCore::LayoutIntegration::NonRootInlineBox::lineIndex const): Deleted.
(WebCore::LayoutIntegration::NonRootInlineBox::rect const): Deleted.
(WebCore::LayoutIntegration::NonRootInlineBox::setVerticalPositionIntegral): Deleted.
(WebCore::LayoutIntegration::NonRootInlineBox::hasScrollableContent const): Deleted.

6:54 PM Changeset in webkit [282071] by clopez@igalia.com
  • 3 edits in trunk/LayoutTests

[GTK][WPE] Gardening of two flaky tests and timeout.

Unreviewed test gardening.

6:14 PM Changeset in webkit [282070] by commit-queue@webkit.org
  • 2 edits in trunk/LayoutTests

[Gstreamer] Mark tests media/track/in-band/track-in-band-*-added-once.html as flaky
https://bugs.webkit.org/show_bug.cgi?id=229973

Unreviewed test gardening.

Patch by Arcady Goldmints-Orlov <Arcady Goldmints-Orlov> on 2021-09-06

  • platform/glib/TestExpectations:
5:48 PM Changeset in webkit [282069] by commit-queue@webkit.org
  • 22 edits in trunk

Unreviewed, reverting r282058.
https://bugs.webkit.org/show_bug.cgi?id=229978

broken two css layout tests on iOS

Reverted changeset:

"Add a temporarily prefixed property for mask-mode, aliased to
-webkit-mask-source-type"
https://bugs.webkit.org/show_bug.cgi?id=229915
https://commits.webkit.org/r282058

5:41 PM Changeset in webkit [282068] by aakash_jain@apple.com
  • 4 edits in trunk/Tools

[ews] Invoke transfer-archive-to-s3 with Python 3
https://bugs.webkit.org/show_bug.cgi?id=229972

Reviewed by Alexey Proskuryakov.

  • CISupport/ews-build/steps.py:

(TransferToS3): Invoke with python 3.

  • CISupport/ews-build/steps_unittest.py: Updated unit-tests.
  • CISupport/Shared/transfer-archive-to-s3: Changed shebang to python 3.
5:16 PM Changeset in webkit [282067] by commit-queue@webkit.org
  • 32 edits
    8 deletes in trunk

Unreviewed, reverting r282057.
https://bugs.webkit.org/show_bug.cgi?id=229977

made a layout test extremely flaky

Reverted changeset:

"Add support for RTCSctpTransport"
https://bugs.webkit.org/show_bug.cgi?id=229292
https://commits.webkit.org/r282057

3:44 PM Changeset in webkit [282066] by commit-queue@webkit.org
  • 352 edits in trunk

Unreviewed, reverting r282025.
https://bugs.webkit.org/show_bug.cgi?id=229970

broken layout test on mac-debug-wk1

Reverted changeset:

"Allow layout tests to open popups by default"
https://bugs.webkit.org/show_bug.cgi?id=229881
https://commits.webkit.org/r282025

3:03 PM Changeset in webkit [282065] by clopez@igalia.com
  • 2 edits in trunk

[CMake] Prefer python3 over python2
https://bugs.webkit.org/show_bug.cgi?id=229969

Reviewed by Michael Catanzaro.

Use the CMake module FindPython instead of FindPythonInterp.
FindPython looks preferably for version 3 of Python. If not found, then it looks for version 2.

  • Source/cmake/WebKitCommon.cmake:
12:48 PM Changeset in webkit [282064] by clopez@igalia.com
  • 6 edits
    1 add in trunk/Tools

[GTK] The Xvfb display server may fail to start sometimes causing tests to randomly crash
https://bugs.webkit.org/show_bug.cgi?id=229758

Reviewed by Philippe Normand.

Add a new function in XvfbDriver() to ensure that the display server
at a given display_id is replying as expected. Ask it for the screen
size at monitor 0 and compare the result with the one we expect to
have inside Xvfb. For doing this check a external python program is
called which does the query using GTK. Using a external program is
more robust against possible failures calling into GTK and also will
allow re-using this program also to check that the weston server is
also replying as expected for the weston driver (on a future patch).

If the Xvfb driver is not replying as expected then restart it and
try again, up to 3 retries.

Use this also on the weston driver to check that the Xvfb driver is
ready.

The code is both compatible with python2 and python3, when running on
python2 it will try first to use subprocess32 if available, otherwise
will use standard python2 subprocess without using the timeout feature.

  • Scripts/webkitpy/common/system/executive_mock.py:

(MockProcess.init):
(MockProcess.communicate):

  • Scripts/webkitpy/port/westondriver.py:

(WestonDriver._setup_environ_for_test):

  • Scripts/webkitpy/port/westondriver_unittest.py:

(WestonXvfbDriverDisplayTest._xvfb_check_if_ready):

  • Scripts/webkitpy/port/xvfbdriver.py:

(XvfbDriver):
(XvfbDriver.init):
(XvfbDriver.check_driver):
(XvfbDriver._xvfb_run):
(XvfbDriver._xvfb_screen_size):
(XvfbDriver._xvfb_stop):
(XvfbDriver._xvfb_check_if_ready):
(XvfbDriver._setup_environ_for_test):
(XvfbDriver.has_crashed):
(XvfbDriver.stop):

  • Scripts/webkitpy/port/xvfbdriver_unittest.py:

(XvfbDriverTest.make_driver):
(XvfbDriverTest.assertDriverStartSuccessful):
(XvfbDriverTest.test_xvfb_start_and_ready):
(XvfbDriverTest.test_xvfb_start_arbitrary_worker_number):
(XvfbDriverTest.test_xvfb_not_replying):

  • gtk/print-screen-size: Added.
12:30 PM Changeset in webkit [282063] by Simon Fraser
  • 3 edits
    2 adds in trunk

REGRESSION (r280017): Calling getBoundingClientRect() on an empty element with "break-before: column" in columns returns a rect with all zeros
https://bugs.webkit.org/show_bug.cgi?id=229747

Reviewed by Alan Bujtas.
Source/WebCore:

A zero-height element with break-before: column ends up with an offset which is exactly
equal to the column height, and therefore logically can be positioned at the bottom of one
column, or the top of the next. For elements with non-zero height, we have logic to avoid
putting the bottom of the box into the next column. Fix this logic for zero-height elements
to avoid the end column being less than the start column. This avoids an early return in
RenderMultiColumnSet::fragmentRectsForFlowContentRect() which resulted in a zero client rect.

Test: fast/multicol/newmulticol/client-rects-column-breakers.html

  • rendering/RenderMultiColumnSet.cpp:

(WebCore::RenderMultiColumnSet::firstAndLastColumnsFromOffsets const):

LayoutTests:

  • fast/multicol/newmulticol/client-rects-column-breakers-expected.txt: Added.
  • fast/multicol/newmulticol/client-rects-column-breakers.html: Added.
12:04 PM Changeset in webkit [282062] by commit-queue@webkit.org
  • 3 edits in trunk/LayoutTests

[GLIB] Garden tests related to the experimetal <attachment> element
https://bugs.webkit.org/show_bug.cgi?id=229966

All the tests fail for the same basic reason: this element is not
enabled on GLIB platforms, so all these failures should be tracked
under one bug.

Unreviewed test gardening.

Patch by Arcady Goldmints-Orlov <Arcady Goldmints-Orlov> on 2021-09-06

  • platform/gtk/TestExpectations:
  • platform/wpe/TestExpectations:
11:42 AM Changeset in webkit [282061] by commit-queue@webkit.org
  • 8 edits in trunk/Source

Fix WebKitGTK build on MacOS
https://bugs.webkit.org/show_bug.cgi?id=225850

Patch by Dmitry Kalinkin <dmitry.kalinkin+webkit@gmail.com> on 2021-09-06
Reviewed by Michael Catanzaro.

Define HAVE_AUDIT_TOKEN only for Cocoa backend.
Source/WebKit:

Streamline other conditionals for consistency between headers and implementations.

  • NetworkProcess/ServiceWorker/WebSWOriginStore.cpp:

(WebKit::WebSWOriginStore::sendStoreHandle):

  • Platform/IPC/unix/ConnectionUnix.cpp:
  • Platform/IPC/IPCSemaphore.h:
  • Platform/SharedMemory.h:
  • UIProcess/VisitedLinkStore.cpp:

(WebKit::VisitedLinkStore::sendStoreHandleToProcess):

Source/WTF:

  • wtf/PlatformHave.h:
10:49 AM Changeset in webkit [282060] by Antti Koivisto
  • 2 edits in trunk/Source/WebCore

[LFC][Integration] Use inline boxes in run vector for hit testing
https://bugs.webkit.org/show_bug.cgi?id=229933

Reviewed by Alan Bujtas.

Stop using nonRootInlineBoxes.

  • layout/integration/LayoutIntegrationLineLayout.cpp:

(WebCore::LayoutIntegration::LineLayout::hitTest):

9:38 AM Changeset in webkit [282059] by eocanha@igalia.com
  • 8 edits in trunk

[MSE] Prevent false-positive "stalled" event iff MSE used
https://bugs.webkit.org/show_bug.cgi?id=226882
<rdar://problem/79454993>

Reviewed by Alicia Boya Garcia.

Source/WebCore:

"progress" and "stalled" events make no sense in context of MSE:
https://github.com/w3c/media-source/issues/88
and hence they will likely be removed soon:
https://w3c.github.io/media-source/#h-note-19

This patch is authored by Pawel Lampe <pawel.lampe@gmail.com>.
See: https://github.com/WebPlatformForEmbedded/WPEWebKit/pull/711

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::progressEventTimerFired): Only fire the progess event if the player supports progress monitoring.

  • platform/graphics/MediaPlayer.cpp:

(WebCore::MediaPlayer::supportsProgressMonitoring const): Forward call to the player private.

  • platform/graphics/MediaPlayer.h: Added new supportsProgressMonitoring() method.
  • platform/graphics/MediaPlayerPrivate.h:

(WebCore::MediaPlayerPrivateInterface::supportsProgressMonitoring const): Added method, defaulting to true to trigger the old behaviour.

  • platform/graphics/gstreamer/mse/MediaPlayerPrivateGStreamerMSE.h: Return false on new supportsProgressMonitoring() method to prevent progress event triggering.

LayoutTests:

  • platform/glib/imported/w3c/web-platform-tests/media-source/mediasource-append-buffer-expected.txt: Updated expectations.
9:33 AM Changeset in webkit [282058] by Simon Fraser
  • 21 edits in trunk

Add a temporarily prefixed property for mask-mode, aliased to -webkit-mask-source-type
https://bugs.webkit.org/show_bug.cgi?id=229915

Reviewed by Antti Koivisto.
Source/WebCore:

In preparation for unprefixing the "mask" property, add -webkit-mask-mode. This is
almost an alias to the existing -webkit-mask-source-type, but takes a "match-source"
value rather than "auto".

To make it easier to have aliases with different parsing requirements, add support
in CSSProperties.json for "synonyms"; these are like aliases but they get their
own CSSPropertyID to allow for customized parsing. They share style builder code
with the related property.

FillLayer now uses MaskMode rather than MaskSourceType.

Test: fast/masking/parsing-mask-mode.html

  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::maskSourceTypeToCSSValue):
(WebCore::maskModeToCSSValue):
(WebCore::ComputedStyleExtractor::valueForPropertyInStyle):
(WebCore::fillSourceTypeToCSSValue): Deleted.

  • css/CSSProperties.json:
  • css/CSSToStyleMap.cpp:

(WebCore::CSSToStyleMap::mapFillMaskMode):
(WebCore::CSSToStyleMap::mapFillMaskSourceType): Deleted.

  • css/CSSToStyleMap.h:
  • css/CSSValueKeywords.in:
  • css/makeprop.pl:

(addProperty):
(generateFillLayerPropertyValueSetter):
(generateValueSetter):

  • css/parser/CSSPropertyParser.cpp:

(WebCore::consumeWebkitMaskMode):
(WebCore::consumeBackgroundComponent):
(WebCore::CSSPropertyParser::parseSingleValue):

  • rendering/RenderBoxModelObject.cpp:

(WebCore::RenderBoxModelObject::paintFillLayerExtended):

  • rendering/style/FillLayer.cpp:

(WebCore::FillLayer::FillLayer):
(WebCore::FillLayer::operator=):
(WebCore::FillLayer::operator== const):
(WebCore::operator<<):

  • rendering/style/FillLayer.h:

(WebCore::FillLayer::maskMode const):
(WebCore::FillLayer::isMaskModeSet const):
(WebCore::FillLayer::setMaskMode):
(WebCore::FillLayer::clearMaskMode):
(WebCore::FillLayer::initialFillMaskMode):
(WebCore::FillLayer::maskSourceType const): Deleted.
(WebCore::FillLayer::isMaskSourceTypeSet const): Deleted.
(WebCore::FillLayer::setMaskSourceType): Deleted.
(WebCore::FillLayer::clearMaskSourceType): Deleted.
(WebCore::FillLayer::initialFillMaskSourceType): Deleted.

  • rendering/style/RenderStyleConstants.cpp:

(WebCore::operator<<):

  • rendering/style/RenderStyleConstants.h:

Tools:

Allow the "synonym" key in CSSProperties.json.

  • Scripts/webkitpy/style/checkers/jsonchecker.py:

(JSONCSSPropertiesChecker.check_codegen_properties):

LayoutTests:

  • fast/masking/parsing-mask-mode-expected.txt: Added.
  • fast/masking/parsing-mask-mode.html: Added.
9:14 AM Changeset in webkit [282057] by youenn@apple.com
  • 32 edits
    8 adds in trunk

Add support for RTCSctpTransport
https://bugs.webkit.org/show_bug.cgi?id=229292
<rdar://problem/82394152>

Reviewed by Eric Carlson.

LayoutTests/imported/w3c:

  • web-platform-tests/webrtc/RTCDataChannel-send-expected.txt:
  • web-platform-tests/webrtc/RTCIceTransport-expected.txt:
  • web-platform-tests/webrtc/RTCPeerConnection-connectionState.https-expected.txt:
  • web-platform-tests/webrtc/RTCRtpSender-transport.https-expected.txt:
  • web-platform-tests/webrtc/RTCSctpTransport-constructor-expected.txt:
  • web-platform-tests/webrtc/RTCSctpTransport-events-expected.txt:
  • web-platform-tests/webrtc/RTCSctpTransport-maxChannels-expected.txt:
  • web-platform-tests/webrtc/RTCSctpTransport-maxMessageSize-expected.txt:
  • web-platform-tests/webrtc/idlharness.https.window-expected.txt:

Source/ThirdParty/libwebrtc:

  • Configurations/libwebrtc.iOS.exp:
  • Configurations/libwebrtc.iOSsim.exp:
  • Configurations/libwebrtc.mac.exp:

Source/WebCore:

Expose RTSctpTransport API and getter from the peer connection.
Implement event mechanism and getters.
Additional work will be needed to make ice transport objects consistent between SCTP and senders/receivers.
Covered by rebased tests.

  • CMakeLists.txt:
  • DerivedSources-input.xcfilelist:
  • DerivedSources-output.xcfilelist:
  • DerivedSources.make:
  • Modules/mediastream/PeerConnectionBackend.cpp:

(WebCore::PeerConnectionBackend::setLocalDescriptionSucceeded):
(WebCore::PeerConnectionBackend::setRemoteDescriptionSucceeded):

  • Modules/mediastream/PeerConnectionBackend.h:
  • Modules/mediastream/RTCPeerConnection.cpp:

(WebCore::RTCPeerConnection::updateSctpBackend):

  • Modules/mediastream/RTCPeerConnection.h:
  • Modules/mediastream/RTCPeerConnection.idl:
  • Modules/mediastream/RTCSctpTransport.cpp: Added.

(WebCore::RTCSctpTransport::RTCSctpTransport):
(WebCore::RTCSctpTransport::~RTCSctpTransport):
(WebCore::RTCSctpTransport::stop):
(WebCore::RTCSctpTransport::virtualHasPendingActivity const):
(WebCore::RTCSctpTransport::onStateChanged):

  • Modules/mediastream/RTCSctpTransport.h: Added.
  • Modules/mediastream/RTCSctpTransport.idl: Added.
  • Modules/mediastream/RTCSctpTransportBackend.h: Added.

(WebCore::operator==):

  • Modules/mediastream/RTCSctpTransportState.h: Added.
  • Modules/mediastream/RTCSctpTransportState.idl: Added.
  • Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.cpp:

(WebCore::SctpTransportState::SctpTransportState):
(WebCore::SctpTransportState::createBackend):
(WebCore::LibWebRTCMediaEndpoint::setLocalSessionDescriptionSucceeded):
(WebCore::LibWebRTCMediaEndpoint::setLocalSessionDescriptionFailed):
(WebCore::LibWebRTCMediaEndpoint::setRemoteSessionDescriptionSucceeded):

  • Modules/mediastream/libwebrtc/LibWebRTCSctpTransportBackend.cpp: Added.

(WebCore::toRTCSctpTransportState):
(WebCore::LibWebRTCSctpTransportBackendObserver::LibWebRTCSctpTransportBackendObserver):
(WebCore::LibWebRTCSctpTransportBackendObserver::updateState):
(WebCore::LibWebRTCSctpTransportBackendObserver::start):
(WebCore::LibWebRTCSctpTransportBackendObserver::stop):
(WebCore::LibWebRTCSctpTransportBackendObserver::OnStateChange):
(WebCore::LibWebRTCSctpTransportBackend::LibWebRTCSctpTransportBackend):
(WebCore::LibWebRTCSctpTransportBackend::~LibWebRTCSctpTransportBackend):
(WebCore::LibWebRTCSctpTransportBackend::dtlsTransportBackend):
(WebCore::LibWebRTCSctpTransportBackend::registerClient):
(WebCore::LibWebRTCSctpTransportBackend::unregisterClient):

  • Modules/mediastream/libwebrtc/LibWebRTCSctpTransportBackend.h: Added.
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/WebCoreBuiltinNames.h:
  • dom/EventTargetFactory.in:

LayoutTests:

  • webrtc/datachannel/dtls10.html:

We should now check for the RTCSctpTransport's RTCDtlsTransport state
to identify whether connection is successful or not.

8:57 AM Changeset in webkit [282056] by eocanha@igalia.com
  • 2 edits in trunk/LayoutTests

[GTK] webaudio/silent-audio-interrupted-in-background.html is a flaky timeout
https://bugs.webkit.org/show_bug.cgi?id=229964

Unreviewed test gardening.

Flagged flaky timeout for webaudio/silent-audio-interrupted-in-background.html.

  • platform/gtk/TestExpectations:
4:47 AM Changeset in webkit [282055] by eocanha@igalia.com
  • 3 edits in trunk/Source/WebCore

[GStreamer][MSE] Check ContentType parameters when checking supported types
https://bugs.webkit.org/show_bug.cgi?id=229859

Reviewed by Xabier Rodriguez-Calvar.

Some services like YouTube TV or Apple TV use ContentType parameters (channels, features, width, height,
framerate) to check for extra features or device maximum capabilities and just don't work if they're not
honored.

This patch checks that those parameters don't go over reasonable limits and reject support for the type
if they do.

This patch is an adaptation of the following downstream patches:

  • platform/graphics/gstreamer/GStreamerRegistryScanner.cpp:

(WebCore::GStreamerRegistryScanner::supportsFeatures const): Check the features parameter. Factored out as a method with the idea to add more checks it in the future.
(WebCore::GStreamerRegistryScanner::isContentTypeSupported const): Check the channels, features, width, height and framerate parameters against sane maximum values.

  • platform/graphics/gstreamer/GStreamerRegistryScanner.h: Added supportsFeatures() method.
1:49 AM Changeset in webkit [282054] by youenn@apple.com
  • 29 edits
    2 copies
    2 adds in trunk

Implement libwebrtc network manager GetMdnsResponder
https://bugs.webkit.org/show_bug.cgi?id=229757

Reviewed by Eric Carlson.

Source/WebCore:

Use libwebrtc mDNS support instead of applying it within PeerConnectionBackend.
This allows a better integration and is more consistent with the API and other browsers.
For instance mDNS candidates now show up in local descriptions.
We introduce RTCNetworkManager which is responsible for WebRTC network.
RTCNetworkManager is responsible of all peer connections of a document. It can thus reuse mDNS names from one connection to another.
When document goes away, RTCNetworkManager needs to unregister all mDNS names.
Update existing SDP and ICE candidate filtering code by only keeping debug assert that we do not leak private IP addresses in case ICE filtering is on.
WK1 does not support mDNS candidates. In that case, we expose private IP addresses.

Covered by updated and existing tests.

  • Headers.cmake:
  • Modules/mediastream/PeerConnectionBackend.cpp:

(WebCore::PeerConnectionBackend::createOfferSucceeded):
(WebCore::PeerConnectionBackend::enableICECandidateFiltering):
(WebCore::PeerConnectionBackend::disableICECandidateFiltering):
(WebCore::PeerConnectionBackend::validateSDP const):
(WebCore::PeerConnectionBackend::newICECandidate):
(WebCore::PeerConnectionBackend::doneGatheringCandidates):

  • Modules/mediastream/PeerConnectionBackend.h:
  • Modules/mediastream/RTCController.cpp:

(WebCore::RTCController::add):
(WebCore::RTCController::disableICECandidateFilteringForAllOrigins):
(WebCore::RTCController::disableICECandidateFilteringForDocument):
(WebCore::RTCController::enableICECandidateFiltering):

  • Modules/mediastream/RTCNetworkManager.h: Added.
  • Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.cpp:

(WebCore::LibWebRTCMediaEndpoint::setConfiguration):

  • Modules/mediastream/libwebrtc/LibWebRTCPeerConnectionBackend.cpp:

(WebCore::LibWebRTCPeerConnectionBackend::currentLocalDescription const):
(WebCore::LibWebRTCPeerConnectionBackend::pendingLocalDescription const):
(WebCore::LibWebRTCPeerConnectionBackend::localDescription const):

  • WebCore.xcodeproj/project.pbxproj:
  • dom/Document.cpp:

(WebCore::Document::willBeRemovedFromFrame):
(WebCore::Document::suspend):

  • dom/Document.h:

(WebCore::Document::rtcNetworkManager):
(WebCore::Document::setRTCNetworkManager):

  • platform/mediastream/MDNSRegisterError.h: Added.
  • platform/mediastream/libwebrtc/LibWebRTCProvider.cpp:

(WebCore::LibWebRTCProvider::createPeerConnection):

  • platform/mediastream/libwebrtc/LibWebRTCProvider.h:

Source/WebKit:

Implement RTCNetworkManager API in LibWebRTCNetworkManager to handle per-document mDNS registrations.
Move part of WebRTCMonitor to LibWebRTCNetworkManager.
LibWebRTCNetworkManager is a WebRTCMonitor observer to get the list of networks.
Since libwebrtc is now doing the mDNS registration, we need to return a mDNS name even if registration failed.
We update WebMDNSRegister and NetworkMDNSRegister accordingly.

  • NetworkProcess/webrtc/NetworkMDNSRegister.cpp:

(WebKit::registerMDNSNameCallback):
(WebKit::NetworkMDNSRegister::registerMDNSName):

  • Sources.txt:
  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/Network/webrtc/LibWebRTCNetworkManager.cpp: Added.

(WebKit::LibWebRTCNetworkManager::getOrCreate):
(WebKit::LibWebRTCNetworkManager::LibWebRTCNetworkManager):
(WebKit::LibWebRTCNetworkManager::~LibWebRTCNetworkManager):
(WebKit::LibWebRTCNetworkManager::unregisterMDNSNames):
(WebKit::LibWebRTCNetworkManager::StartUpdating):
(WebKit::LibWebRTCNetworkManager::StopUpdating):
(WebKit::LibWebRTCNetworkManager::GetMdnsResponder const):
(WebKit::LibWebRTCNetworkManager::networksChanged):
(WebKit::LibWebRTCNetworkManager::networkProcessCrashed):
(WebKit::LibWebRTCNetworkManager::CreateNameForAddress):
(WebKit::LibWebRTCNetworkManager::RemoveNameForAddress):

  • WebProcess/Network/webrtc/LibWebRTCNetworkManager.h: Added.
  • WebProcess/Network/webrtc/LibWebRTCProvider.cpp:

(WebKit::LibWebRTCProvider::createPeerConnection):
(WebKit::LibWebRTCProvider::disableNonLocalhostConnections):

  • WebProcess/Network/webrtc/LibWebRTCProvider.h:
  • WebProcess/Network/webrtc/WebMDNSRegister.cpp:

(WebKit::WebMDNSRegister::finishedRegisteringMDNSName):
(WebKit::WebMDNSRegister::registerMDNSName):

  • WebProcess/Network/webrtc/WebMDNSRegister.h:
  • WebProcess/Network/webrtc/WebMDNSRegister.messages.in:
  • WebProcess/Network/webrtc/WebRTCMonitor.cpp:

(WebKit::WebRTCMonitor::startUpdating):
(WebKit::WebRTCMonitor::stopUpdating):
(WebKit::WebRTCMonitor::networksChanged):
(WebKit::WebRTCMonitor::networkProcessCrashed):

  • WebProcess/Network/webrtc/WebRTCMonitor.h:

(WebKit::WebRTCMonitor::addObserver):
(WebKit::WebRTCMonitor::removeObserver):
(WebKit::WebRTCMonitor::didReceiveNetworkList const):
(WebKit::WebRTCMonitor::networkList const):
(WebKit::WebRTCMonitor::ipv4 const):
(WebKit::WebRTCMonitor::ipv6 const):

LayoutTests:

Update tests given mDNS ICE candidates are now showing up in descriptions.
Make sure to consider mDNS candidates as if they are filtered.

  • http/wpt/webrtc/resources/third-party-frame-ice-candidate-filtering-iframe.html:
  • webrtc/datachannel/filter-ice-candidate.html:
  • webrtc/filtering-ice-candidate-after-reload.html:
12:54 AM Changeset in webkit [282053] by commit-queue@webkit.org
  • 5 edits
    2 deletes in trunk

webgl/1.0.x/conformance/context/constants-and-properties.html fails
https://bugs.webkit.org/show_bug.cgi?id=223311
<rdar://problem/75772425>

Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2021-09-06
Reviewed by Antti Koivisto.

Source/WebCore:

Remove STENCIL_INDEX, it was removed from the spec 2017.

Fixes tests:
webgl/1.0.x/conformance/context/constants-and-properties.html
webgl/2.0.y/conformance2/context/constants-and-properties-2.html

  • html/canvas/WebGLRenderingContextBase.idl:
  • platform/graphics/GraphicsContextGL.h:

LayoutTests:

Mark the skipped tests as Pass until all 1.0.x/2.0.y tests
are unskipped.
Skip the 2.0.0/1.0.3 test that is invalid now.

  • fast/canvas/webgl/constants-on-interface.html: Removed.
  • fast/canvas/webgl/constants.html: Removed.

Remove failing tests that serve the same purpose.
They seem to, according to best effort inspection, test
the same properties.

Sep 5, 2021:

7:48 PM Changeset in webkit [282052] by Alan Bujtas
  • 5 edits in trunk

In-page search results overlay broken if the result spans more than two elements
https://bugs.webkit.org/show_bug.cgi?id=229926
<rdar://82741616>

Reviewed by Tim Horton.

Source/WebCore:

pathsWithShrinkWrappedRects fails to form a closed path for adjoining rects when they are horizontally out-of-order.
e.g.
1: (60,0) (30x20)
2: (0,0) (30x20)
3: (30,0) (30x20)
Let's sort the rects horizontally too (as we already do y ordering in polygonsForRect).

  • platform/graphics/PathUtilities.cpp:

(WebCore::polygonsForRect):

LayoutTests:

  • fast/shrink-wrap/rect-shrink-wrap-expected.html:
  • fast/shrink-wrap/rect-shrink-wrap.html: Add the out-of-order rect case.
4:47 PM Changeset in webkit [282051] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

Let content with newlineCharacter be measured by FontCascade::widthForSimpleText
https://bugs.webkit.org/show_bug.cgi?id=229849
<rdar://problem/82708348>

Reviewed by Simon Fraser.

Apparently r281978 did not address it properly.

  • platform/graphics/WidthIterator.cpp:

(WebCore::WidthIterator::characterCanUseSimplifiedTextMeasuring):

12:17 PM Changeset in webkit [282050] by Antti Koivisto
  • 9 edits in trunk

[LFC][Integration] Skip inline boxes in iterator
https://bugs.webkit.org/show_bug.cgi?id=229922

Reviewed by Alan Bujtas.

Source/WebCore:

Start including root and non-root inline boxes to the run vector.
Change the iterator to skip over these boxes.

The new boxes are not used for anything yet.

  • layout/formattingContexts/inline/InlineDisplayContentBuilder.cpp:

(WebCore::Layout::InlineDisplayContentBuilder::build):
(WebCore::Layout::InlineDisplayContentBuilder::createRunsAndUpdateGeometryForLineSpanningInlineBoxes):

  • layout/integration/LayoutIntegrationInlineContent.cpp:

(WebCore::LayoutIntegration::InlineContent::hasContent const):

  • layout/integration/LayoutIntegrationInlineContent.h:
  • layout/integration/LayoutIntegrationLineIteratorModernPath.h:

(WebCore::LayoutIntegration::LineIteratorModernPath::firstRun const):
(WebCore::LayoutIntegration::LineIteratorModernPath::lastRun const):

  • layout/integration/LayoutIntegrationLineLayout.cpp:

(WebCore::LayoutIntegration::LineLayout::lineCount const):
(WebCore::LayoutIntegration::LineLayout::enclosingBorderBoxRectFor const):
(WebCore::LayoutIntegration::LineLayout::paint):
(WebCore::LayoutIntegration::LineLayout::hitTest):

  • layout/integration/LayoutIntegrationRunIteratorModernPath.h:

(WebCore::LayoutIntegration::RunIteratorModernPath::traverseNextTextRun):
(WebCore::LayoutIntegration::RunIteratorModernPath::traverseNextOnLine):
(WebCore::LayoutIntegration::RunIteratorModernPath::traversePreviousOnLine):
(WebCore::LayoutIntegration::RunIteratorModernPath::traverseNextLeaf):
(WebCore::LayoutIntegration::RunIteratorModernPath::traversePreviousLeaf):

LayoutTests:

  • fast/repaint/iframe-on-subpixel-position-expected.txt:
10:47 AM Changeset in webkit [282049] by mmaxfield@apple.com
  • 2 edits in trunk/Source/WebCore

Remove unnecessary uses of Ref protect = m_backing from FontFaceSet
https://bugs.webkit.org/show_bug.cgi?id=229911

Reviewed by Anders Carlsson.

The only callers of these are from JS. So, JS will maintain a ref to
the FontFaceSet, and the FontFaceSet will maintain a ref to its
CSSFontFaceSet. So it doesn't need to be protected.

No new tests because there is no behavior change.

  • css/FontFaceSet.cpp:

(WebCore::FontFaceSet::size):
(WebCore::FontFaceSet::check):
(WebCore::FontFaceSet::status const):

10:03 AM Changeset in webkit [282048] by Simon Fraser
  • 16 edits in trunk/Source/WebKit

Use a strongly typed identifier for authentication challenge IDs
https://bugs.webkit.org/show_bug.cgi?id=229890

Reviewed by Anders Carlsson.

Add AuthenticationChallengeIdentifier and use it to replace uint64_t values that
represent authentication challenge identifiers.

  • Scripts/webkit/messages.py:

(types_that_cannot_be_forward_declared):
(headers_for_type):

  • Shared/Authentication/AuthenticationManager.cpp:

(WebKit::AuthenticationManager::addChallengeToChallengeMap):
(WebKit::AuthenticationManager::shouldCoalesceChallenge const):
(WebKit::AuthenticationManager::coalesceChallengesMatching const):
(WebKit::AuthenticationManager::didReceiveAuthenticationChallenge):
(WebKit::AuthenticationManager::completeAuthenticationChallenge):
(WebKit::generateAuthenticationChallengeID): Deleted.

  • Shared/Authentication/AuthenticationManager.h:
  • Shared/Authentication/AuthenticationManager.messages.in:
  • Shared/Authentication/cocoa/AuthenticationManagerCocoa.mm:

(WebKit::AuthenticationManager::initializeConnection):

  • Shared/IdentifierTypes.h:
  • UIProcess/Authentication/AuthenticationChallengeProxy.cpp:

(WebKit::AuthenticationChallengeProxy::AuthenticationChallengeProxy):

  • UIProcess/Authentication/AuthenticationChallengeProxy.h:

(WebKit::AuthenticationChallengeProxy::create):

  • UIProcess/Authentication/cocoa/AuthenticationChallengeProxyCocoa.mm:

(WebKit::AuthenticationChallengeProxy::sendClientCertificateCredentialOverXpc):

  • UIProcess/Downloads/DownloadProxy.cpp:

(WebKit::DownloadProxy::didReceiveAuthenticationChallenge):

  • UIProcess/Downloads/DownloadProxy.h:
  • UIProcess/Downloads/DownloadProxy.messages.in:
  • UIProcess/Network/NetworkProcessProxy.cpp:

(WebKit::NetworkProcessProxy::didReceiveAuthenticationChallenge):

  • UIProcess/Network/NetworkProcessProxy.h:
  • UIProcess/Network/NetworkProcessProxy.messages.in:
6:44 AM Changeset in webkit [282047] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

Ensure fragmented flow state invalidation even when the cached fragmented flow is not present.
https://bugs.webkit.org/show_bug.cgi?id=229914
<rdar://82025006>

Reviewed by Antti Koivisto.

The cached fragmented flow is the byproduct of querying the enclosing fragment during layout/repaint.
Sometimes when the layout process, between 2 subsequent style change does not generate such cached fragmented flows
the invalidation process stops early and leaves subtrees in an inconsistent state.

Let's use the passed in fragmented flow when the cached value is not present.

  • rendering/RenderBlock.cpp:

(WebCore::RenderBlock::resetEnclosingFragmentedFlowAndChildInfoIncludingDescendants):

Note: See TracTimeline for information about the timeline view.