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

Timeline



Aug 21, 2021:

11:23 PM Changeset in webkit [281393] by Kocsen Chung
  • 7 edits in branches/safari-607-branch/Source

Versioning.

WebKit-7607.3.15

11:22 PM Changeset in webkit [281392] by Kocsen Chung
  • 4 edits in branches/safari-611.3.10.1-branch/Source

Cherry-pick r281384. rdar://problem/82195071

IndexedDB: crash when triggering IDBOpenRequest completion back on a worker thread
https://bugs.webkit.org/show_bug.cgi?id=229375

Source/WebCore:

Reviewed by Brady Eidson.

Client may dispatch custom events to an IDBRequest, and we should only change request state based on events
created internally.

  • Modules/indexeddb/IDBRequest.cpp: (WebCore::IDBRequest::dispatchEvent):

Source/WTF:

Protect callee in CrossThreadTask if it inherits from ThreadSafeRefCounted<T>.

Reviewed by Brady Eidson.

  • wtf/CrossThreadTask.h:

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

10:52 PM Changeset in webkit [281391] by Kocsen Chung
  • 8 edits in branches/safari-611.3.10.1-branch/Source

Versioning.

WebKit-7611.3.10.1.7

10:46 PM Changeset in webkit [281390] by Kocsen Chung
  • 8 edits in branches/safari-611.3.10.0-branch/Source

Versioning.

WebKit-7611.4.0.2

10:41 PM Changeset in webkit [281389] by mmaxfield@apple.com
  • 10 edits
    3 adds in trunk

overwriteCodePoint() in createAndFillGlyphPage() is wrong
https://bugs.webkit.org/show_bug.cgi?id=215643
<rdar://problem/67430461>

Reviewed by Alan Bujtas.

Source/WebCore:

The CSS spec says that certain characters have to be invisible. Previously, we were doing this
by just treating these characters as if they were the zero width space character. However, this
is wrong for 2 reasons:

  1. If the primary font supports the desired character but doesn't support the zero width space

character, we'll fallback past it and trigger a download for secondary fonts until
we find one that supports the ZWS character (which the page didn't even ask for!)

  1. Shaping is Turing-complete, and expects that the correct glyphIDs are fed into the shaper.

We can't just arbitrarily swap out glyphIDs before shaping just because we feel like it.

Instead, the solution is to handle these invisible characters after font fallback, and after
shaping. This patch does it just like we handle adding letter-spacing, word-spacing, and
justification after shaping - by iterating over the glyphs output by the shaper and seeing if
any need to be adjusted.

This patch also includes a fix for the situation where the glyph buffer might be left in an
inconsistent state, where the array of glyphs is shorter than the array of characters -
this new codepath added in this patch revealed this existing problem, and fixes it here too.

Test: fast/text/zwj-ligature.html

  • platform/graphics/Font.cpp:

(WebCore::createAndFillGlyphPage):
(WebCore::overrideControlCharacters): Deleted.

  • platform/graphics/GlyphBuffer.h:

(WebCore::GlyphBuffer::glyphAt const):
(WebCore::GlyphBuffer::deleteGlyphWithoutAffectingSize):

  • platform/graphics/WidthIterator.cpp:

(WebCore::WidthIterator::applyCSSVisibilityRules):
(WebCore::WidthIterator::advance):

  • platform/graphics/WidthIterator.h:

Source/WTF:

  • wtf/unicode/CharacterNames.h:

LayoutTests:

  • fast/text/resources/Ahem-GSUB-ligatures.ttf: Added.
  • fast/text/zwj-ligature-expected.html: Added.
  • fast/text/zwj-ligature.html: Added.
  • platform/mac/fast/text/format-control-expected.txt: Progression! A new ligature is formed that wasn't formed before.

Also, this ligature is formed in both Chrome and Firefox, so we match them now.

  • platform/win/TestExpectations:
9:28 PM Changeset in webkit [281388] by Alan Bujtas
  • 4 edits in trunk/Source/WebCore

[LFC][Integration] Do not create an InlineFormattingContext object for constructing display lines and runs
https://bugs.webkit.org/show_bug.cgi?id=228061

Reviewed by Sam Weinig.

We've got all we need in the inlineFormattingState object.

  • layout/integration/LayoutIntegrationInlineContentBuilder.cpp:

(WebCore::LayoutIntegration::InlineContentBuilder::build const):
(WebCore::LayoutIntegration::InlineContentBuilder::createDisplayLineRuns const):
(WebCore::LayoutIntegration::InlineContentBuilder::createDisplayLines const):

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

(WebCore::LayoutIntegration::LineLayout::constructContent):

9:24 PM Changeset in webkit [281387] by Alan Bujtas
  • 12 edits in trunk

[LFC][IFC] Add support for -webkit-text-security: disc
https://bugs.webkit.org/show_bug.cgi?id=229047

Reviewed by Antti Koivisto.
Source/WebCore:

The disc glyph affects layout, so let's replace the text before we start measuring the inline content.

  • layout/integration/LayoutIntegrationBoxTree.cpp:

(WebCore::LayoutIntegration::BoxTree::buildTree):

  • layout/integration/LayoutIntegrationCoverage.cpp:

(WebCore::LayoutIntegration::printReason):
(WebCore::LayoutIntegration::canUseForStyle):

  • layout/integration/LayoutIntegrationCoverage.h:

LayoutTests:

Let's dump the actual disc characters.

  • platform/ios-simulator/fast/forms/auto-fill-button/hide-auto-fill-strong-password-viewable-treatment-when-form-is-reset-expected.txt:
  • platform/ios/fast/css/text-overflow-input-expected.txt:
  • platform/ios/fast/forms/basic-inputs-expected.txt:
  • platform/ios/fast/forms/input-value-expected.txt:
  • platform/mac/fast/css/text-overflow-input-expected.txt:
  • platform/mac/fast/forms/auto-fill-button/hide-auto-fill-strong-password-viewable-treatment-when-form-is-reset-expected.txt:
  • platform/mac/fast/forms/basic-inputs-expected.txt:
  • platform/mac/fast/forms/input-value-expected.txt:
8:31 PM Changeset in webkit [281386] by Alan Bujtas
  • 5 edits in trunk

[IFC][Integration] Enable modern line layout for placeholder elements
https://bugs.webkit.org/show_bug.cgi?id=228887

Reviewed by Antti Koivisto.

Source/WebCore:

Apparently placeholders don't do strange things anymore (this check is originated in SLL).

  • layout/integration/LayoutIntegrationCoverage.cpp:

(WebCore::LayoutIntegration::canUseForLineLayoutWithReason):

LayoutTests:

  • platform/ios-wk2/fast/repaint/placeholder-after-caps-lock-hidden-expected.txt:
8:26 PM Changeset in webkit [281385] by pvollan@apple.com
  • 2 edits in trunk/LayoutTests

[Win] The layout test fast/visual-viewport/resize-event-fired-window-resized.html is a flaky timeout
https://bugs.webkit.org/show_bug.cgi?id=229379

Unreviewed test gardening.

  • platform/win/TestExpectations:
6:33 PM Changeset in webkit [281384] by sihui_liu@apple.com
  • 4 edits in trunk/Source

IndexedDB: crash when triggering IDBOpenRequest completion back on a worker thread
https://bugs.webkit.org/show_bug.cgi?id=229375

Source/WebCore:

Reviewed by Brady Eidson.

Client may dispatch custom events to an IDBRequest, and we should only change request state based on events
created internally.

  • Modules/indexeddb/IDBRequest.cpp:

(WebCore::IDBRequest::dispatchEvent):

Source/WTF:

Protect callee in CrossThreadTask if it inherits from ThreadSafeRefCounted<T>.

Reviewed by Brady Eidson.

  • wtf/CrossThreadTask.h:
5:26 PM Changeset in webkit [281383] by ysuzuki@apple.com
  • 10 edits in trunk

[JSC] Remove Intl runtime feature flags for already shipped ones
https://bugs.webkit.org/show_bug.cgi?id=229371

Reviewed by Ross Kirsling.

JSTests:

  • stress/intl-datetimeformat-day-period.js:
  • test262/config.yaml:

Source/JavaScriptCore:

Since they are already shipped, we should remove these runtime flags.

  • builtins/DatePrototype.js:

(globalPrivate.toDateTimeOptionsAnyAll):
(globalPrivate.toDateTimeOptionsTimeTime):

  • bytecode/BytecodeIntrinsicRegistry.cpp:

(JSC::BytecodeIntrinsicRegistry::BytecodeIntrinsicRegistry):

  • bytecode/BytecodeIntrinsicRegistry.h:
  • runtime/IntlDateTimeFormat.cpp:

(JSC::toDateTimeOptionsAnyDate):
(JSC::IntlDateTimeFormat::initializeDateTimeFormat):
(JSC::IntlDateTimeFormat::resolvedOptions const):

  • runtime/IntlDateTimeFormatPrototype.cpp:

(JSC::IntlDateTimeFormatPrototype::finishCreation):

  • runtime/OptionsList.h:
4:01 PM Changeset in webkit [281382] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[IFC][Integration] Group non-standard CSS properties
https://bugs.webkit.org/show_bug.cgi?id=228855
<rdar://problem/81880442>

Reviewed by Antti Koivisto.

List of unsupported non-standard CSS properties (consider it a priority list).

  • layout/integration/LayoutIntegrationCoverage.cpp:

(WebCore::LayoutIntegration::canUseForStyle):

3:34 PM Changeset in webkit [281381] by pvollan@apple.com
  • 2 edits in trunk/LayoutTests

[Win] The layout test http/tests/websocket/tests/hybi/inspector/send-and-recieve-debugger.html is timing out
https://bugs.webkit.org/show_bug.cgi?id=229372

Unreviewed test gardening.

  • platform/win/TestExpectations:
3:04 PM Changeset in webkit [281380] by pvollan@apple.com
  • 6 edits in trunk/Source

[Win] Crash under FontCache::lastResortFallbackFont
https://bugs.webkit.org/show_bug.cgi?id=228186

Reviewed by Myles C. Maxfield.

Source/WebCore:

Add null check to resolve crash in FontCache::lastResortFallbackFont. Additionally, return early in BitmapImage::getHBITMAPOfSize
when the bits per pixel in the bitmap is of unexpected size, since that will cause a crash under this function. This can happen
if an event is being handled while already in the Windows paint handler.

  • platform/graphics/win/FontCacheWin.cpp:

(WebCore::FontCache::lastResortFallbackFont):

  • platform/graphics/win/GraphicsContextCGWin.cpp:

(WebCore::CGContextWithHDC):

  • platform/graphics/win/ImageCGWin.cpp:

(WebCore::BitmapImage::getHBITMAPOfSize):

Source/WebKitLegacy/win:

Add null check for bitmapDC. Proceeding without a valid bitmapDC will cause a crash. When painting is being done while already in the Windows paint handler,
we can end up with a bitmapDC which is null.

  • WebView.cpp:

(WebView::paintIntoBackingStore):

12:19 PM Changeset in webkit [281379] by Jonathan Bedard
  • 3 edits
    2 adds in trunk/Tools

[git-webkit] Add pull-request command (Part 3)
https://bugs.webkit.org/show_bug.cgi?id=229089
<rdar://problem/81908751>

Reviewed by Dewei Zhu.

  • Scripts/libraries/webkitscmpy/setup.py: Bump version.
  • Scripts/libraries/webkitscmpy/webkitscmpy/init.py: Bump version, export pull-request.
  • Scripts/libraries/webkitscmpy/webkitscmpy/pull_request.py:

(PullRequest.State):
(PullRequest.create_body): Create pull-request body from commits and comment.
(PullRequest.parse_body): Turn a body from a pull-request into a comment string and partial commits.
(PullRequest.init):
(PullRequest.repr):

  • Scripts/libraries/webkitscmpy/webkitscmpy/test/pull_request_unittest.py:

(TestPullRequest):
(TestPullRequest.test_representation):
(TestPullRequest.test_create_body_single):
(TestPullRequest.test_parse_body_single):
(TestPullRequest.test_create_body_multiple):
(TestPullRequest.test_parse_body_multiple):
(TestPullRequest.test_create_body_empty):
(TestPullRequest.test_parse_body_empty):
(TestPullRequest.test_create_body_comment):
(TestPullRequest.test_parse_body_single):

12:18 PM Changeset in webkit [281378] by mmaxfield@apple.com
  • 8 edits
    3 adds in trunk

[Cocoa] Single characters don't get shaped in the fast text codepath
https://bugs.webkit.org/show_bug.cgi?id=186804

Reviewed by Alan Bujtas.

Source/WebCore:

Previously, single characters weren't shaped in the fast text codepath,
because shaping in the fast text codepath was just for kerning and
ligatures. Kerning didn't need to shape individual characters because
kerning only applies to pairs of characters, and ligatures didn't need
to shape individual characters because two characters are required to
form a ligature. However, now that we want to replace the complex text
codepath with a new-and-improved fast text codepath, we have to perform
all shaping in the fast text codepath, regardless of how many characters
are present.

Test: fast/text/single-character-shaping.html

  • platform/graphics/WidthIterator.cpp:

(WebCore::WidthIterator::applyFontTransforms):
(WebCore::WidthIterator::commitCurrentFontRange):
(WebCore::WidthIterator::advanceInternal):
(WebCore::WidthIterator::shouldApplyFontTransforms const): Deleted.

  • platform/graphics/WidthIterator.h:
  • platform/graphics/coretext/FontCoreText.cpp:

(WebCore::Font::applyTransforms): Keep kerning disabled for single glyphs,
because of performance. This will be able to be removed when rdar://82195405
is fixed.

  • rendering/mathml/RenderMathMLOperator.cpp:

(WebCore::RenderMathMLOperator::computePreferredLogicalWidths):

Tools:

Huge thanks to Laurence Penney to contributing this test font!!!

  • Scripts/webkitpy/common/config/contributors.json:

LayoutTests:

Huge thanks to Laurence Penney to contributing this test font!!!

  • fast/text/resources/UniversTofu-GSUB-rvrn.ttf: Added. The license is Apache 2.0.
  • fast/text/single-character-shaping-expected.html: Added.
  • fast/text/single-character-shaping.html: Added.
11:19 AM Changeset in webkit [281377] by Alan Bujtas
  • 3 edits in trunk/Source/WebCore

[IFC][Integration] Add painting support for vertical text content
https://bugs.webkit.org/show_bug.cgi?id=228940

Reviewed by Antti Koivisto.

Translate the logical layout coordinates to physical paint coordinates by taking the writing mode into account.
(e.g. writing-mode: vertical-rl;

run logical rect: [0, 0][20x18]
in a flipped block box: [10, 10][100x50]
with the paint offset: [8, 8]

translates to: [90, 8][20x18]

)

  • layout/integration/LayoutIntegrationLineLayout.cpp:

(WebCore::LayoutIntegration::LineLayout::paint):
(WebCore::LayoutIntegration::LineLayout::paintTextRunUsingPhysicalCoordinates):

  • layout/integration/LayoutIntegrationLineLayout.h:
11:15 AM Changeset in webkit [281376] by Simon Fraser
  • 17 edits
    1 add in trunk/Source

Use MediaKeySystemRequestIdentifier, rather than mysterious uint64_t values, in WebKit
https://bugs.webkit.org/show_bug.cgi?id=229310

Reviewed by Youenn Fablet.

WebCore already had an ObjectIdentifer<> type for media system key requests, MediaKeySystemRequestIdentifier.
Use it in the WebKit layer.

  • Scripts/webkit/messages.py:

(types_that_cannot_be_forward_declared):
(headers_for_type):

  • UIProcess/MediaKeySystemPermissionRequestManagerProxy.cpp:

(WebKit::MediaKeySystemPermissionRequestManagerProxy::denyRequest):
(WebKit::MediaKeySystemPermissionRequestManagerProxy::grantRequest):
(WebKit::MediaKeySystemPermissionRequestManagerProxy::createRequestForFrame):

  • UIProcess/MediaKeySystemPermissionRequestManagerProxy.h:
  • UIProcess/MediaKeySystemPermissionRequestProxy.cpp:

(WebKit::MediaKeySystemPermissionRequestProxy::MediaKeySystemPermissionRequestProxy):

  • UIProcess/MediaKeySystemPermissionRequestProxy.h:

(WebKit::MediaKeySystemPermissionRequestProxy::create):
(WebKit::MediaKeySystemPermissionRequestProxy::mediaKeySystemID const):

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::requestMediaKeySystemPermissionForFrame):

  • UIProcess/WebPageProxy.h:
  • UIProcess/WebPageProxy.messages.in:
  • WebProcess/EncryptedMedia/MediaKeySystemPermissionRequestManager.cpp:

(WebKit::MediaKeySystemPermissionRequestManager::sendMediaKeySystemRequest):
(WebKit::MediaKeySystemPermissionRequestManager::mediaKeySystemWasGranted):
(WebKit::MediaKeySystemPermissionRequestManager::mediaKeySystemWasDenied):

  • WebProcess/EncryptedMedia/MediaKeySystemPermissionRequestManager.h:
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::mediaKeySystemWasGranted):
(WebKit::WebPage::mediaKeySystemWasDenied):

  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/WebPage.messages.in:
9:17 AM Changeset in webkit [281375] by ysuzuki@apple.com
  • 12 edits
    1 add in trunk

[JSC] Intl.DisplayNames v2
https://bugs.webkit.org/show_bug.cgi?id=227832

Reviewed by Ross Kirsling.

JSTests:

  • stress/intl-displaynames-v2.js: Added.

(shouldBe):
(shouldThrow):
(vm.icuVersion):

  • stress/intl-displaynames.js:

(vm.icuVersion):

  • test262/config.yaml:
  • test262/expectations.yaml:

Source/JavaScriptCore:

This patch implements Intl.DisplayNames v2[1].
Newly added names are calendar names and date time field names.
For the language name, language display option is added.

[1]: https://github.com/tc39/intl-displaynames-v2

  • runtime/CommonIdentifiers.h:
  • runtime/IntlCache.cpp:

(JSC::IntlCache::getFieldDisplayName):

  • runtime/IntlCache.h:
  • runtime/IntlDisplayNames.cpp:

(JSC::IntlDisplayNames::initializeDisplayNames):
(JSC::IntlDisplayNames::of const):
(JSC::IntlDisplayNames::resolvedOptions const):
(JSC::IntlDisplayNames::typeString):
(JSC::IntlDisplayNames::languageDisplayString):

  • runtime/IntlDisplayNames.h:
  • runtime/IntlObject.cpp:

(JSC::isUnicodeLocaleIdentifierType):
(JSC::canonicalizeUnicodeLocaleID):
(JSC::canonicalizeLocaleList):
(JSC::defaultLocale):
(JSC::mapBCP47ToICUCalendarKeyword):
(JSC::mapICUCollationKeywordToBCP47):
(JSC::canonicalizeLanguageTag): Deleted.

  • runtime/IntlObject.h:
7:33 AM Changeset in webkit [281374] by ysuzuki@apple.com
  • 10 edits
    1 add in trunk

[JSC] Intl Locale Info
https://bugs.webkit.org/show_bug.cgi?id=227830

Reviewed by Ross Kirsling.

JSTests:

  • stress/intl-locale-info.js: Added.

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

  • test262/config.yaml:

Source/JavaScriptCore:

This patch implements Intl.Locale's extension (Intl Locale Info proposal)[1], which is already stage 3.
Intl.Locale#{calendars,collations,hourCycles,numberingSystems,timeZones} can return array of preferred
configuration for the given locale. And Intl.Locale#textInfo can return text layout direction and Intl.Locale#weekInfo
can return weekday information (e.g. when weekend starts).

[1]: https://github.com/tc39/proposal-intl-locale-info

  • runtime/IntlLocale.cpp:

(JSC::createArrayFromStringVector):
(JSC::IntlLocale::calendars):
(JSC::IntlLocale::collations):
(JSC::IntlLocale::hourCycles):
(JSC::IntlLocale::numberingSystems):
(JSC::IntlLocale::timeZones):
(JSC::IntlLocale::textInfo):
(JSC::IntlLocale::weekInfo):

  • runtime/IntlLocale.h:
  • runtime/IntlLocalePrototype.cpp:

(JSC::JSC_DEFINE_CUSTOM_GETTER):

6:49 AM Changeset in webkit [281373] by Alan Bujtas
  • 3 edits in trunk/Source/WebCore

[IFC][Integration] Do not scan the content for overflowing glyph when line-box-contain is set to glyph
https://bugs.webkit.org/show_bug.cgi?id=228895
<rdar://problem/81651487>

Reviewed by Antti Koivisto.

This is in preparation for removing content scanning completely.

  • layout/integration/LayoutIntegrationCoverage.cpp:

(WebCore::LayoutIntegration::printReason):
(WebCore::LayoutIntegration::canUseForText):
(WebCore::LayoutIntegration::canUseForFontAndText):

  • layout/integration/LayoutIntegrationCoverage.h:
6:42 AM Changeset in webkit [281372] by Alan Bujtas
  • 4 edits in trunk/Source/WebCore

Fix spelling: MidWorkdBreak -> MidWordBreak

Unreviewed.

  • layout/formattingContexts/inline/InlineContentBreaker.cpp:

(WebCore::Layout::InlineContentBreaker::tryBreakingTextRun const):

  • layout/formattingContexts/inline/text/TextUtil.cpp:

(WebCore::Layout::TextUtil::midWordBreak):
(WebCore::Layout::TextUtil::midWorkdBreak): Deleted.

  • layout/formattingContexts/inline/text/TextUtil.h:
6:02 AM Changeset in webkit [281371] by ysuzuki@apple.com
  • 5 edits
    1 add in trunk

[JSC] Extend Intl TimeZoneName Option
https://bugs.webkit.org/show_bug.cgi?id=227831

Reviewed by Ross Kirsling.

JSTests:

  • stress/intl-extended-timezone-names.js: Added.

(shouldBe):
(timeZoneTest):

  • test262/config.yaml:

Source/JavaScriptCore:

https://github.com/tc39/proposal-intl-extend-timezonename

This patch implements Extend Intl TimeZoneName proposal, which adds "shortOffset", "longOffset", "shortGeneric", "longGeneric"
timeZoneName variants.

  • runtime/IntlDateTimeFormat.cpp:

(JSC::IntlDateTimeFormat::setFormatsFromPattern):
(JSC::IntlDateTimeFormat::initializeDateTimeFormat):
(JSC::IntlDateTimeFormat::timeZoneNameString):

  • runtime/IntlDateTimeFormat.h:
5:28 AM Changeset in webkit [281370] by ysuzuki@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

[JSC] Enable String,TypedArray#at
https://bugs.webkit.org/show_bug.cgi?id=229354

Reviewed by Saam Barati.

Enable String and TypedArray's at method.

  • runtime/OptionsList.h:
5:10 AM Changeset in webkit [281369] by ysuzuki@apple.com
  • 11 edits in trunk

[JSC] Enable Array#findLast method
https://bugs.webkit.org/show_bug.cgi?id=229355

Reviewed by Saam Barati.

JSTests:

  • stress/unscopables.js:

Source/JavaScriptCore:

This patch enables Array#findLast and Array#findLastIndex methods.

(JSC::ArrayPrototype::finishCreation):

  • runtime/OptionsList.h:

LayoutTests:

  • inspector/model/remote-object-get-properties-expected.txt:
  • js/Object-getOwnPropertyNames-expected.txt:
  • js/array-unscopables-properties-expected.txt:
  • js/script-tests/Object-getOwnPropertyNames.js:
  • js/script-tests/array-unscopables-properties.js:
12:56 AM Changeset in webkit [281368] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

[GLIB] Do not assume log success in apply-build-revision-to-files
https://bugs.webkit.org/show_bug.cgi?id=229335

Patch by Daniel Kolesa <Daniel Kolesa> on 2021-08-21
Reviewed by Philippe Normand.

If the origin reference does not exist for any reason, this will
fail the build. Since we have no reference point, just assume
unknown like if it wasn't a git repo.

  • glib/apply-build-revision-to-files.py:

(get_build_revision):

12:01 AM Changeset in webkit [281367] by youenn@apple.com
  • 8 edits
    2 adds in trunk

Prevent AudioSession category from moving out of PlayAndRecord too quickly
https://bugs.webkit.org/show_bug.cgi?id=229327
<rdar://81997024>

Reviewed by Eric Carlson.

Source/WebCore:

If category is PlayAndRecord, we stick to PlayAndRecord until audio is no longer playing at which point we
transition to whatever category is most appropriate.
Introduce PlatformMediaSession::isPlaying in addition to canProduceAudio to compute whether audio is being played.

Test: http/tests/media/media-stream/audio-capture-and-category.https.html

  • Modules/webaudio/AudioContext.cpp:

(WebCore::AudioContext::isPlaying const):

  • Modules/webaudio/AudioContext.h:
  • html/HTMLMediaElement.h:
  • platform/audio/PlatformMediaSession.cpp:

(WebCore::PlatformMediaSession::isPlaying const):

  • platform/audio/PlatformMediaSession.h:

(WebCore::PlatformMediaSessionClient::isPlaying const):

  • platform/audio/cocoa/MediaSessionManagerCocoa.mm:

(WebCore::MediaSessionManagerCocoa::updateSessionState):

LayoutTests:

  • http/tests/media/media-stream/audio-capture-and-category.https-expected.txt: Added.
  • http/tests/media/media-stream/audio-capture-and-category.https.html: Added.

Aug 20, 2021:

11:10 PM Changeset in webkit [281366] by commit-queue@webkit.org
  • 2 edits in trunk/LayoutTests

Unreviewed, reverting r281343.
https://bugs.webkit.org/show_bug.cgi?id=229362

caused iOS test failure

Reverted changeset:

"Update baseline for http/tests/websocket/tests/hybi/close-
code-and-reason.html."
https://commits.webkit.org/r281343

10:58 PM Changeset in webkit [281365] by Simon Fraser
  • 3 edits
    2 deletes in trunk/Source/WebKit

Remove AsyncRequest, which is unused
https://bugs.webkit.org/show_bug.cgi?id=229358

Reviewed by Alex Christensen.

  • Shared/AsyncRequest.cpp: Removed.
  • Shared/AsyncRequest.h: Removed.
  • Sources.txt:
  • WebKit.xcodeproj/project.pbxproj:
10:53 PM Changeset in webkit [281364] by ntim@apple.com
  • 2 edits in trunk/Source/WebCore

Walk up stacking contexts in RenderLayerBacking::compositingOpacity
https://bugs.webkit.org/show_bug.cgi?id=229350

Reviewed by Simon Fraser.

Shorter way to do the same thing, since stackingContext() chain is top-layer aware and opacity creates stacking contexts anyway.

  • rendering/RenderLayerBacking.cpp:

(WebCore::RenderLayerBacking::compositingOpacity const):

10:25 PM Changeset in webkit [281363] by Jonathan Bedard
  • 5 edits
    2 adds in trunk/Tools

[git-webkit] Add pull-request command (Part 2)
https://bugs.webkit.org/show_bug.cgi?id=229089
<rdar://problem/81908751>

Reviewed by Dewei Zhu.

  • Scripts/libraries/webkitscmpy/setup.py: Bump version.
  • Scripts/libraries/webkitscmpy/webkitscmpy/init.py: Ditto.
  • Scripts/libraries/webkitscmpy/webkitscmpy/mocks/local/git.py:

(Git.init): Add 'check-ref-format' and 'checkout -b'.
(Git.checkout): Add ability to create branch.

  • Scripts/libraries/webkitscmpy/webkitscmpy/program/init.py:

(main): Add Branch command.

  • Scripts/libraries/webkitscmpy/webkitscmpy/program/branch.py:

(Branch.parser): Allow user to specify engineering branch name.
(Branch.normalize_issue): Turn provided string into eng branch if it isn't already.
(Branch.main): Create eng branch from current checkout state.

  • Scripts/libraries/webkitscmpy/webkitscmpy/test/branch_unittest.py:

(TestBranch):
(TestBranch.setUp):
(TestBranch.test_basic_svn):
(TestBranch.test_basic_git):
(TestBranch.test_prompt_git):
(TestBranch.test_invalid_branch):

8:20 PM Changeset in webkit [281362] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[IFC][Integration] canUseForLineLayoutWithReason's establishesInlineFormattingContext should check against inflow content
https://bugs.webkit.org/show_bug.cgi?id=229104

Reviewed by Antti Koivisto.

<div><div style="position: absolute"></div>this is still a inline formatting context</div>
We don't allow to mix inline and block inflow content.
However out-of-flow block level boxes can certainly have inline siblings. canUseForLineLayoutWithReason should check
the content accordingly.

  • layout/integration/LayoutIntegrationCoverage.cpp:

(WebCore::LayoutIntegration::canUseForLineLayoutWithReason):

8:16 PM Changeset in webkit [281361] by Alan Bujtas
  • 3 edits in trunk/Source/WebCore

[IFC][Integration] Walk the box tree to update the replaced content location
https://bugs.webkit.org/show_bug.cgi?id=229105

Reviewed by Antti Koivisto.

Normally there are more runs than entries in the box list. It's more performant to iterate
the box list for the renderer location adjustment.

  • layout/integration/LayoutIntegrationBoxTree.h:

(WebCore::LayoutIntegration::BoxTree::boxAndRendererList):

  • layout/integration/LayoutIntegrationLineLayout.cpp:

(WebCore::LayoutIntegration::LineLayout::constructContent):

7:56 PM Changeset in webkit [281360] by Simon Fraser
  • 20 edits
    1 add in trunk/Source

Use UserMediaRequestIdentifier in WebKit rather than a mysterious uint64_t
https://bugs.webkit.org/show_bug.cgi?id=229308

Reviewed by Youenn Fablet.

Source/WebCore:

Move UserMediaRequestIdentifier to its own header.

  • Headers.cmake:
  • Modules/mediastream/UserMediaRequest.h:
  • WebCore.xcodeproj/project.pbxproj:

Source/WebKit:

Use the existing WebCore::UserMediaRequestIdentifier in WebKit code. We need to pull
it out of the ENABLE(MEDIA_STREAM) #ifdef.

In UserMediaPermissionRequestManagerProxy use a new identifier type, MediaDevicePermissionRequestIdentifier,
which is used to identify pending permission requests (but never send to the web process).

  • Scripts/webkit/messages.py:

(types_that_cannot_be_forward_declared): Sort
(headers_for_type):

  • UIProcess/MediaKeySystemPermissionRequestManagerProxy.h:
  • UIProcess/UserMediaPermissionRequestManagerProxy.cpp:

(WebKit::UserMediaPermissionRequestManagerProxy::denyRequest):
(WebKit::UserMediaPermissionRequestManagerProxy::grantRequest):
(WebKit::UserMediaPermissionRequestManagerProxy::finishGrantingRequest):
(WebKit::UserMediaPermissionRequestManagerProxy::requestUserMediaPermissionForFrame):
(WebKit::UserMediaPermissionRequestManagerProxy::processUserMediaPermissionRequest):
(WebKit::UserMediaPermissionRequestManagerProxy::processUserMediaPermissionInvalidRequest):
(WebKit::UserMediaPermissionRequestManagerProxy::processUserMediaPermissionValidRequest):
(WebKit::UserMediaPermissionRequestManagerProxy::checkUserMediaPermissionForSpeechRecognition):
(WebKit::UserMediaPermissionRequestManagerProxy::getUserMediaPermissionInfo):
(WebKit::UserMediaPermissionRequestManagerProxy::enumerateMediaDevicesForFrame):
(WebKit::generateRequestID): Deleted.

  • UIProcess/UserMediaPermissionRequestManagerProxy.h:
  • UIProcess/UserMediaPermissionRequestProxy.cpp:

(WebKit::UserMediaPermissionRequestProxy::UserMediaPermissionRequestProxy):

  • UIProcess/UserMediaPermissionRequestProxy.h:

(WebKit::UserMediaPermissionRequestProxy::create):
(WebKit::UserMediaPermissionRequestProxy::userMediaID const):

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::requestUserMediaPermissionForFrame):

  • UIProcess/WebPageProxy.h:
  • UIProcess/WebPageProxy.messages.in:
  • WebKit.xcodeproj/project.pbxproj: Some files that were in Sources.txt were missing from the project.
  • WebProcess/MediaStream/UserMediaPermissionRequestManager.cpp:

(WebKit::UserMediaPermissionRequestManager::sendUserMediaRequest):
(WebKit::UserMediaPermissionRequestManager::userMediaAccessWasGranted):
(WebKit::UserMediaPermissionRequestManager::userMediaAccessWasDenied):

  • WebProcess/MediaStream/UserMediaPermissionRequestManager.h:
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::userMediaAccessWasGranted):
(WebKit::WebPage::userMediaAccessWasDenied):

  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/WebPage.messages.in:
7:48 PM Changeset in webkit [281359] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[LFC][Integration] Initialize root box's border and padding values
https://bugs.webkit.org/show_bug.cgi?id=229109

Reviewed by Antti Koivisto.

This is what LFC would normally do.

  • layout/integration/LayoutIntegrationLineLayout.cpp:

(WebCore::LayoutIntegration::LineLayout::layout):
(WebCore::LayoutIntegration::LineLayout::prepareLayoutState):

7:44 PM Changeset in webkit [281358] by Alan Bujtas
  • 4 edits in trunk/Source/WebCore

[LFC][Integration] HTMLTextFormControlElement should use the inline iterator to collect content for wrap=hard
https://bugs.webkit.org/show_bug.cgi?id=228882

Reviewed by Antti Koivisto.

getNextSoftBreak is simply returns the position of the last item on the line unless it's a hard line break.
(endsWithBreak -> previousLineBrokeCleanly -> previousLineBrokeAtBR see https://trac.webkit.org/changeset/6107)

  • html/HTMLTextFormControlElement.cpp:

(WebCore::HTMLTextFormControlElement::valueWithHardLineBreaks const):
(WebCore::getNextSoftBreak): Deleted. line->lineBreakPos() translates to the position where the line breaks within the run.
maximumCaretOffset() returns the same value, though the naming is a bit confusing and probably should be renamed or introduce
something similar on the line iterator.

  • layout/integration/LayoutIntegrationCoverage.cpp:

(WebCore::LayoutIntegration::canUseForLineLayoutWithReason):

6:45 PM Changeset in webkit [281357] by Alan Bujtas
  • 6 edits in trunk

[IFC][Integration] Enable inline level boxes with relative (min/max)width and (min/max)height values
https://bugs.webkit.org/show_bug.cgi?id=229065

Reviewed by Antti Koivisto.

Source/WebCore:

When a block level box's style changes, while we mark the box itself for layout we normally don't
walk the subtree for damaged inline content. Instead during layout, we dirty these individual descendant renderers as needed.
Inline level boxes with relative width/height values are part of this group.
It's also similar to what we do in LegacyLineLayout::layoutLineBoxes.

  • layout/integration/LayoutIntegrationCoverage.cpp:

(WebCore::LayoutIntegration::canUseForChild):

  • rendering/RenderBlockFlow.cpp:

(WebCore::RenderBlockFlow::layoutModernLines):

LayoutTests:

  • platform/ios/fast/frames/onlyCommentInIFrame-expected.txt:
  • platform/mac/fast/frames/onlyCommentInIFrame-expected.txt:
6:13 PM Changeset in webkit [281356] by Alan Bujtas
  • 5 edits in trunk

[IFC][Integration] Enable non-auto line-break values
https://bugs.webkit.org/show_bug.cgi?id=228842

Reviewed by Antti Koivisto.

Source/WebCore:

IFC already supports line-break (except after-white-space).

  • layout/integration/LayoutIntegrationCoverage.cpp:

(WebCore::LayoutIntegration::canUseForStyle):

LayoutTests:

  • TestExpectations: progressions
  • platform/mac/fast/text/trailing-white-space-expected.txt: collapsed trailing whitespace cleanup.
5:54 PM Changeset in webkit [281355] by ysuzuki@apple.com
  • 20 edits in trunk/Source/JavaScriptCore

[JSC] Simplify moveIntsToDouble
https://bugs.webkit.org/show_bug.cgi?id=229351

Reviewed by Saam Barati.

MacroAssembler::moveIntsToDouble required scratch FPRReg. But it was only required for MacroAssemblerX86, and it is already removed.
This means that we no longer need this scratch FPRReg. This change makes a lot of IC code, property access code simpler.
This patch removes that scratch FPRReg, and removed scratch FPRReg of many arithmetic ICs. This patch is important for PutByVal modern
IC since some of property access requires FPRReg because of MacroAssembler::moveIntsToDouble, and it requires adding new m_scratch2FPR
to AccessCase. But after this simplification, this is no longer necessary.

  • assembler/MacroAssemblerARMv7.h:

(JSC::MacroAssemblerARMv7::moveIntsToDouble):

  • assembler/MacroAssemblerMIPS.h:

(JSC::MacroAssemblerMIPS::moveIntsToDouble):

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileValueToInt32):
(JSC::DFG::SpeculativeJIT::compileDoubleRep):
(JSC::DFG::SpeculativeJIT::emitUntypedOrBigIntRightShiftBitOp):
(JSC::DFG::SpeculativeJIT::compileValueAdd):
(JSC::DFG::SpeculativeJIT::compileValueSub):
(JSC::DFG::SpeculativeJIT::compileMathIC):
(JSC::DFG::SpeculativeJIT::compileValueNegate):
(JSC::DFG::SpeculativeJIT::compileValueMul):
(JSC::DFG::SpeculativeJIT::speculateRealNumber):
(JSC::DFG::SpeculativeJIT::compileNormalizeMapKey):

  • dfg/DFGSpeculativeJIT.h:

(JSC::DFG::SpeculativeJIT::unboxDouble):

  • ftl/FTLLowerDFGToB3.cpp:

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

  • jit/AssemblyHelpers.cpp:

(JSC::AssemblyHelpers::emitConvertValueToBoolean):
(JSC::AssemblyHelpers::branchIfValue):

  • jit/AssemblyHelpers.h:

(JSC::AssemblyHelpers::unboxDoubleNonDestructive):
(JSC::AssemblyHelpers::unboxDouble):

  • jit/JITAddGenerator.cpp:

(JSC::JITAddGenerator::generateFastPath):

  • jit/JITAddGenerator.h:

(JSC::JITAddGenerator::JITAddGenerator):

  • jit/JITArithmetic.cpp:

(JSC::JIT::emitRightShiftFastPath):
(JSC::JIT::emitMathICFast):

  • jit/JITDivGenerator.cpp:

(JSC::JITDivGenerator::loadOperand):

  • jit/JITMulGenerator.cpp:

(JSC::JITMulGenerator::generateInline):
(JSC::JITMulGenerator::generateFastPath):

  • jit/JITMulGenerator.h:

(JSC::JITMulGenerator::JITMulGenerator):

  • jit/JITPropertyAccess.cpp:

(JSC::JIT::emitFloatTypedArrayPutByVal):

  • jit/JITPropertyAccess32_64.cpp:

(JSC::JIT::emitGenericContiguousPutByVal):

  • jit/JITRightShiftGenerator.cpp:

(JSC::JITRightShiftGenerator::generateFastPath):

  • jit/JITRightShiftGenerator.h:

(JSC::JITRightShiftGenerator::JITRightShiftGenerator):

  • jit/JITSubGenerator.cpp:

(JSC::JITSubGenerator::generateInline):
(JSC::JITSubGenerator::generateFastPath):

  • jit/JITSubGenerator.h:

(JSC::JITSubGenerator::JITSubGenerator):

5:35 PM Changeset in webkit [281354] by Patrick Angle
  • 6 edits
    2 adds in trunk

Web Inspector: Style rules declared after a rule whose selector has over 8192 components are not shown correctly
https://bugs.webkit.org/show_bug.cgi?id=229218

Reviewed by Devin Rousso.

Source/WebCore:

Test: inspector/css/getMatchedStylesForNodeLargeSelectors.html

CSS rules are limited to 8192 selector components in WebCore, and when more components are present the rule is
split into multiple StyleRule instances. This meant Web Inspector could not reliably resolve a StyleRule
back to its source data, which we do to enable things like editing, as well as to make sure we show the un-split
selector in the Styles sidebar of the Elements tab. Previously, the presences of multiple StyleRules for a
single source data declaration was not accounted for, which meant that rules after the split rules would show a
mix of style information from the actual rule as well as a rule some number of declarations later in the same
style sheet. This is resolved by marking StyleRules that have been split and marking the last of the split
rules. This allows us to then forgo incrementing the index for looking up raw declarations until we encounter
the last rule from a split StyleRule.

  • css/StyleRule.cpp:

(WebCore::StyleRule::StyleRule):
(WebCore::StyleRule::createForSplitting):
(WebCore::StyleRule::splitIntoMultipleRulesWithMaximumSelectorComponentCount const):

  • css/StyleRule.h:
  • Added two members to track rules that are split into multiple rules due to exceeding the 8192 component limit

for selectors in order to determine later which rules are effectively duplicates of each other. We use two
members here, one to track that the rule was split from a larger authored rule (m_isSplitRule), and one to
mark the last rule split from a given rule (m_isLastRuleInSplitRule). The second member prevents situations
where we might otherwise accidentally continue iterating into a list of StyleRule where two large authored
rules that had to be split are present next to each other in an ordered collection of StyleRule.

  • inspector/InspectorStyleSheet.cpp:

(WebCore::selectorsFromSource):

  • Use a vector of CSSSelectors for specificity information since we now collect selectors from potentially

multiple CSSStyleRules.

(WebCore::InspectorStyleSheet::cssStyleRulesSplitFromSameRule):

  • Find any neighboring CSSStyleRules that were split from the same original rule based on the order of rules as

well as the new flags in StyleRule

(WebCore::InspectorStyleSheet::selectorsForCSSStyleRule):

  • Find all selectors for a given CSSStyleRule, including other CSSStyleRules split from the same rule in a

style sheet.

(WebCore::InspectorStyleSheet::buildObjectForSelectorList):

  • Use all CSSSelectors from for the CSSStyleRule and other rules that were split from the same rule in a style

sheet.

(WebCore::InspectorStyleSheet::ruleSourceDataFor const):
(WebCore::InspectorStyleSheet::ruleIndexByStyle const):

  • When looking up an index to get rule source data, make sure we don't overcount split rules.
  • inspector/InspectorStyleSheet.h:

LayoutTests:

Test very large (8192 individual component) selectors to ensure surrounding styles are correctly resolved.

  • inspector/css/getMatchedStylesForNodeLargeSelectors-expected.txt: Added.
  • inspector/css/getMatchedStylesForNodeLargeSelectors.html: Added.
5:19 PM Changeset in webkit [281353] by Eric Hutchison
  • 2 edits in trunk/LayoutTests

Update test expectations for fast/scrolling/ios/overflow-div-scrolling.html.
<rdar://80392444>.

Unreviewed test gardening.

  • platform/ios-wk1/TestExpectations:
5:14 PM Changeset in webkit [281352] by Aditya Keerthi
  • 2 edits in trunk/Source/WebKit

[macCatalyst] Crash when clicking a phone number link
https://bugs.webkit.org/show_bug.cgi?id=229344
rdar://81804638

Reviewed by Tim Horton.

Clicking on a phone number link should present data detection UI.
However, -[WKActionSheetAssistant _elementActionForDDAction:] always
returns nil on Catalyst, resulting in crash when attempting to add the
returned action to an NSArray.

Given that the methods used in _elementActionForDDAction: are available
on Catalyst, fix the crash by ensuring the method does not return nil, and
only making the method available on platforms where ENABLE(DATA_DETECTION)
is defined.

  • UIProcess/ios/WKActionSheetAssistant.mm:

(-[WKActionSheetAssistant _elementActionForDDAction:]):

5:00 PM Changeset in webkit [281351] by Ayumi Kojima
  • 2 edits in trunk/LayoutTests

[ Sky ] editing/input/cocoa/autocorrect-on.html is timing out.
<rdar://82191308>

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
4:22 PM Changeset in webkit [281350] by Eric Hutchison
  • 4 edits in trunk/LayoutTests

Update test expectations for http/tests/media/modern-media-controls/overflow-support/playback-speed-live-broadcast.html.
<rdar://80393995>.

Unreviewed test gardening.

  • platform/ios-14/TestExpectations:
  • platform/ios-wk2/TestExpectations:
  • platform/ios/TestExpectations:
4:01 PM Changeset in webkit [281349] by achristensen@apple.com
  • 11 edits in trunk

Make UIEventAttribution tests less platform dependent
https://bugs.webkit.org/show_bug.cgi?id=229323

Reviewed by John Wilander.

Source/WebKit:

This allows me to run the UIEventAttribution tests on macOS.
It also makes them not time out, which they were doing since r277447.
To accomplish this, I added more test SPI to prevent the network process
suspension message, which was causing the test to time out on the iOS simulator.

  • UIProcess/API/Cocoa/WKWebViewPrivateForTesting.h:
  • UIProcess/API/Cocoa/WKWebViewTesting.mm:

(-[WKWebView _addEventAttributionWithSourceID:destinationURL:sourceDescription:purchaser:reportEndpoint:optionalNonce:]):

  • UIProcess/API/Cocoa/WKWebsiteDataStore.mm:

(+[WKWebsiteDataStore _preventNetworkProcessSuspensionForTesting]):

  • UIProcess/API/Cocoa/WKWebsiteDataStorePrivate.h:
  • UIProcess/API/ios/WKWebViewPrivateForTestingIOS.h:
  • UIProcess/API/ios/WKWebViewTestingIOS.mm:

(-[WKWebView _setUIEventAttributionForTesting:withNonce:]): Deleted.

  • UIProcess/Network/NetworkProcessProxy.cpp:

(WebKit::NetworkProcessProxy::preventSuspensionForTesting):
(WebKit::NetworkProcessProxy::sendPrepareToSuspend):

  • UIProcess/Network/NetworkProcessProxy.h:

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/EventAttribution.mm:

(TestWebKitAPI::exampleURL):
(TestWebKitAPI::runBasicEventAttributionTest):
(TestWebKitAPI::TEST):

3:58 PM Changeset in webkit [281348] by Simon Fraser
  • 2 edits in trunk/Source/WebCore

Outdent WorkerRunLoop class definition
https://bugs.webkit.org/show_bug.cgi?id=229352

Reviewed by Wenson Hsieh.

Just outdent the class.

  • workers/WorkerRunLoop.h:

(WebCore::WorkerRunLoop::terminated const):
(WebCore::WorkerRunLoop::createUniqueId):
(WebCore::WorkerRunLoop::Task::mode const):
(WebCore::WorkerRunLoop::isBeingDebugged const):

3:54 PM Changeset in webkit [281347] by Russell Epstein
  • 1 copy in tags/Safari-612.2.1

Tag Safari-612.2.1.

3:52 PM Changeset in webkit [281346] by Jonathan Bedard
  • 5 edits in trunk/Tools

[git-webkit] Add pull-request command (Part 1)
https://bugs.webkit.org/show_bug.cgi?id=229089
<rdar://problem/81908751>

Reviewed by Dewei Zhu.

  • Scripts/libraries/webkitscmpy/setup.py: Bump version.
  • Scripts/libraries/webkitscmpy/webkitscmpy/init.py: Ditto.
  • Scripts/libraries/webkitscmpy/webkitscmpy/program/init.py:

(main): Sort programs, add aliases.

  • Scripts/libraries/webkitscmpy/webkitscmpy/program/command.py:

(Command): Add alias
(FilteredCommand): Inherit from Command.

3:43 PM Changeset in webkit [281345] by Russell Epstein
  • 1 copy in tags/Safari-612.1.29

Tag Safari-612.1.29.

3:24 PM Changeset in webkit [281344] by Ayumi Kojima
  • 2 edits in trunk/LayoutTests

[ iOS & BigSur Debug wk2 ] compositing/video/video-update-rendering.html is a flakey text failure.
https://bugs.webkit.org/show_bug.cgi?id=223900

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
3:19 PM Changeset in webkit [281343] by Eric Hutchison
  • 2 edits in trunk/LayoutTests

Update baseline for http/tests/websocket/tests/hybi/close-code-and-reason.html.
<rdar://82186597>.

Unreviewed rebaseline.

  • http/tests/websocket/tests/hybi/close-code-and-reason-expected.txt:
3:01 PM Changeset in webkit [281342] by commit-queue@webkit.org
  • 3 edits in trunk/LayoutTests

Unreviewed. Skip failing tests in 32 bits archs
https://bugs.webkit.org/show_bug.cgi?id=229345

Patch by Mikhail R. Gadelha <Mikhail R. Gadelha> on 2021-08-20
Reviewed by Yusuke Suzuki.

  • platform/glib/TestExpectations:
  • platform/wpe/TestExpectations:
3:00 PM Changeset in webkit [281341] by Alan Bujtas
  • 4 edits in trunk/Source/WebCore

[LFC][IFC] Make mid-word breaking surrogate pair aware
https://bugs.webkit.org/show_bug.cgi?id=229026

Reviewed by Antti Koivisto.

Surrogate pairs represent one "character" (U16_IS_LEAD + U16_IS_TAIL).
We should never break them half even when CSS tells us to break the word at arbitrary position.
This is in preparation for removing the U16_IS_SURROGATE check in canUseForCharacter.

  • layout/formattingContexts/inline/InlineContentBreaker.cpp:

(WebCore::Layout::InlineContentBreaker::tryBreakingTextRun const):

  • layout/formattingContexts/inline/text/TextUtil.cpp:

(WebCore::Layout::TextUtil::midWorkdBreak):
(WebCore::Layout::TextUtil::split): Deleted.

  • layout/formattingContexts/inline/text/TextUtil.h:
2:57 PM Changeset in webkit [281340] by jonlee@apple.com
  • 4 edits in trunk/Tools

Teach run-webkit-tests to print a summary of test status
https://bugs.webkit.org/show_bug.cgi?id=200556

Reviewed by Simon Fraser.

Add a new option to print a summary listing test expectation health.
It uses the same expected results as --print-expectations.

To run it: run-webkit-tests --print-summary

You can pass the same arguments as normal run-webkit-tests and it will
return stats based on the tests collected.

It also outputs a .csv file with the data.

  • Scripts/webkitpy/layout_tests/controllers/manager.py:

(Manager.print_expectations): Gather the tests. Note whether the test
is marked as skip, pass, flaky, or fail, the definitions of which are
dictated by model.get_tests_with_result_type(). Output the results to
command line as well as to file.

  • Scripts/webkitpy/layout_tests/run_webkit_tests.py: Add the new option.

It goes through the same path as --print-expectations.

2:56 PM Changeset in webkit [281339] by Jonathan Bedard
  • 4 edits in trunk/Tools

[git-webkit] Forward unknown args to log and blame
https://bugs.webkit.org/show_bug.cgi?id=229342
<rdar://problem/82178743>

Rubber-stamped by Aakash Jain.

  • Scripts/libraries/webkitscmpy/setup.py: Bump version.
  • Scripts/libraries/webkitscmpy/webkitscmpy/init.py: Ditto.
  • Scripts/libraries/webkitscmpy/webkitscmpy/program/init.py:

(main): Both log and blame might be passed options that need to be forwarded to git/svn.

2:28 PM Changeset in webkit [281338] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[LFC][Integration] Use the logical width when passing in the constraint for the inline content
https://bugs.webkit.org/show_bug.cgi?id=228942

Reviewed by Simon Fraser.

Let's pass in the logical width (e.g. block box's height in case of vertical writing direction) to the inline line layout.

  • layout/integration/LayoutIntegrationLineLayout.cpp:

(WebCore::LayoutIntegration::LineLayout::layout):

2:24 PM Changeset in webkit [281337] by Alan Bujtas
  • 6 edits in trunk

[LFC][IFC] Add support for justified non-breaking space
https://bugs.webkit.org/show_bug.cgi?id=228727

Reviewed by Antti Koivisto.

Let's use FontCascade::expansionOpportunityCount to figure out the number of expansion counts in a run.
It helps with finding non-breakable space in an otherwise non-whitespace content (foo&nbsp;bar where the contet forms one run but the because
of the non-breakable _space_ in the middle, it also produces an expansion opportunity).
This patch moves all the expansion handling over to Line::applyRunExpansion as we anyway need to walk the content to find such spaces (i.e. not worth trying to pre-compute them).

  • layout/formattingContexts/inline/InlineLine.cpp:

(WebCore::Layout::Line::applyRunExpansion):
(WebCore::Layout::Line::Run::Run):
(WebCore::Layout::Line::Run::expand):
(WebCore::Layout::Line::Run::visuallyCollapseTrailingWhitespace):
(WebCore::Layout::Line::Run::setExpansionBehavior): Deleted.
(WebCore::Layout::Line::Run::expansionBehavior const): Deleted.
(WebCore::Layout::Line::Run::setHorizontalExpansion): Deleted.

  • layout/formattingContexts/inline/InlineLine.h:

(WebCore::Layout::Line::Run::expansion const):
(WebCore::Layout::Line::Run::setExpansion):
(WebCore::Layout::Line::Run::hasExpansionOpportunity const): Deleted.
(WebCore::Layout::Line::Run::expansionOpportunityCount const): Deleted.

  • layout/integration/LayoutIntegrationCoverage.cpp:

(WebCore::LayoutIntegration::canUseForCharacter):
(WebCore::LayoutIntegration::canUseForText):
(WebCore::LayoutIntegration::canUseForFontAndText):
(WebCore::LayoutIntegration::canUseForStyle):

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

[ iOS 15 ]editing/selection/ios/hide-selection-in-tiny-contenteditable.html is a flaky failure.
<rdar://82183980>

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
1:50 PM Changeset in webkit [281335] by Alan Bujtas
  • 11 edits in trunk/Source/WebCore

[LFC][IFC] LineBox provides redundant geometry information
https://bugs.webkit.org/show_bug.cgi?id=228050

Reviewed by Sam Weinig.

LineBoxGeometry class provides the line's geometry. This is also in preparation for making LineBox a non-persistent type of structure.

  • layout/formattingContexts/inline/InlineFormattingContext.cpp:

(WebCore::Layout::InlineFormattingContext::computeGeometryForLineContent):

  • layout/formattingContexts/inline/InlineFormattingGeometry.cpp:

(WebCore::Layout::LineBoxBuilder::build):
(WebCore::Layout::LineBoxBuilder::constructAndAlignInlineLevelBoxes):
(WebCore::Layout::LineBoxBuilder::computeLineBoxHeightAndAlignInlineLevelBoxesVertically):
(WebCore::Layout::InlineFormattingGeometry::verticallyAdjustedLineForLineContent const):
(WebCore::Layout::InlineFormattingGeometry::lineBoxForLineContent const): Deleted.

  • layout/formattingContexts/inline/InlineFormattingGeometry.h:
  • layout/formattingContexts/inline/InlineLineBox.cpp:

(WebCore::Layout::LineBox::LineBox):
(WebCore::Layout::m_rootInlineBox): Deleted.

  • layout/formattingContexts/inline/InlineLineBox.h:

(WebCore::Layout::LineBox::logicalRect const): Deleted.
(WebCore::Layout::LineBox::alignmentBaseline const): Deleted.
(WebCore::Layout::LineBox::setLogicalHeight): Deleted.

  • layout/integration/LayoutIntegrationInlineContentBuilder.cpp:

(WebCore::LayoutIntegration::InlineContentBuilder::createDisplayNonRootInlineBoxes const):

1:44 PM Changeset in webkit [281334] by Wenson Hsieh
  • 2 edits in trunk/Source/WebCore

Followup to <trac.webkit.org/r281288>
https://bugs.webkit.org/show_bug.cgi?id=229269
rdar://81349236

Reviewed by Jer Noble.

Make two minor adjustments after the changes in r281288:

  1. Rename keyPathsForValuesAffectingValueCanBeginTouchBarScrubbing to just

keyPathsForValuesAffectingCanBeginTouchBarScrubbing, since the Objective-C property name is
-canBeginTouchBarScrubbing rather than -valueCanBeginTouchBarScrubbing.

  1. After fixing (1), the implementation of this method is no longer dead code, so we'll to make sure that the

NSSet we create and return contains valid Objective-C objects (i.e. NSString instead of const char*) --
in particular, this affects "contentDuration".

  • platform/mac/WebPlaybackControlsManager.mm:

(+[WebPlaybackControlsManager keyPathsForValuesAffectingCanBeginTouchBarScrubbing]):
(+[WebPlaybackControlsManager keyPathsForValuesAffectingValueCanBeginTouchBarScrubbing]): Deleted.

1:05 PM Changeset in webkit [281333] by clopez@igalia.com
  • 9 edits in trunk

REGRESSION(r274166): [GTK] It broke run-javascriptcore-tests causing all tests to use lot of memory
https://bugs.webkit.org/show_bug.cgi?id=229321

Unreviewed, reverting r274166 because it caused JSC tests to use too much memory.

Reverted changeset:

"[GTK] Reenable -fvisibility=hidden"
https://bugs.webkit.org/show_bug.cgi?id=181916
https://commits.webkit.org/r274166

.:

  • Source/cmake/OptionsGTK.cmake:

Source/WebCore:

Covered by existing tests.

  • PlatformGTK.cmake:
  • dom/EventTarget.cpp:
  • dom/EventTarget.h:

Tools:

  • TestWebKitAPI/PlatformGTK.cmake:
  • TestWebKitAPI/glib/TestExpectations.json:
12:44 PM Changeset in webkit [281332] by Simon Fraser
  • 9 edits in trunk/Source/WebKit

Change the mysterious uint64_t argument to detectDataInAllFrames() to OptionSet<WebCore::DataDetectorType>
https://bugs.webkit.org/show_bug.cgi?id=229304

Reviewed by Tim Horton.

We can encode a OptionSet<WebCore::DataDetectorType> in IPC messages now, so do so for DetectDataInAllFrames().
Also use OptionSet<WebCore::DataDetectorType> in some cases where WebCore::DataDetectorType was being used
to hold a bit set.

  • Shared/API/Cocoa/WKDataDetectorTypesInternal.h:

(fromWKDataDetectorTypes):

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _setupPageConfiguration:]):

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::detectDataInAllFrames):

  • UIProcess/WebPageProxy.h:
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::detectDataInAllFrames):

  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/WebPage.messages.in:
12:41 PM Changeset in webkit [281331] by dino@apple.com
  • 3 edits
    6 adds in trunk

[WebXR] A session with only one view should cover the full screen
https://bugs.webkit.org/show_bug.cgi?id=229110
<rdar://problem/81940621>

Reviewed by Tim Horton.

Source/WebCore:

If we get into the state with an immersive session and only one view,
we should treat that view as the full width. This situation should never
happen with a real headset, but can be found in testing scenarios.

Test: http/wpt/webxr/xrViewport_singleView_valid.https.html

  • Modules/webxr/WebXRWebGLLayer.cpp:

(WebCore::WebXRWebGLLayer::computeViewports): Add test for only one
view and assume it is the left eye.

LayoutTests:

Add a test that provides an immersive session with only one view.
This required copying a few more things over from the WPT directory.

  • http/wpt/webxr/resources/test-only-api.js: Added.

(loadScript):

  • http/wpt/webxr/resources/webxr_test_constants_single_view.js: Added.
  • http/wpt/webxr/resources/webxr_util.js: Added.
  • http/wpt/webxr/xrViewport_singleView_valid.https-expected.txt: Added.
  • http/wpt/webxr/xrViewport_singleView_valid.https.html: Added.
12:38 PM Changeset in webkit [281330] by Aditya Keerthi
  • 2 edits in trunk/Source/WebCore

[macOS] Crash when painting <meter> with large scale
https://bugs.webkit.org/show_bug.cgi?id=229273
rdar://81219669

Reviewed by Wenson Hsieh.

  • rendering/RenderThemeMac.mm:

(WebCore::RenderThemeMac::paintMeter):

Draw the cell into an image buffer to avoid an assertion beneath WebKit.

12:28 PM Changeset in webkit [281329] by clopez@igalia.com
  • 3 edits in trunk/LayoutTests

[GTK][WPE] Gardening of expected failures

Unreviewed gardening.

  • platform/glib/TestExpectations:
  • platform/gtk/TestExpectations:
11:43 AM Changeset in webkit [281328] by Eric Hutchison
  • 3 edits in trunk/LayoutTests

[iOS wk2, Mac wk2] http/wpt/mediarecorder/video-rotation.html is a flaky failure.
<rdar://76434263>.

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
  • platform/mac-wk2/TestExpectations:
11:25 AM Changeset in webkit [281327] by clopez@igalia.com
  • 4 edits in trunk/Tools

[build.webkit.org] GTK-Linux-64-bit-Release-Skip-Failing-Tests worker should run only layout tests
https://bugs.webkit.org/show_bug.cgi?id=229312

Reviewed by Jonathan Bedard.

Add a new factory for testing only layout tests and make this bot use it.

  • CISupport/build-webkit-org/config.json:
  • CISupport/build-webkit-org/factories.py:

(TestLayoutFactory):
(TestLayoutFactory.init):

  • CISupport/build-webkit-org/factories_unittest.py:

(TestExpectedBuildSteps):

11:09 AM Changeset in webkit [281326] by ysuzuki@apple.com
  • 6 edits in trunk/Source/JavaScriptCore

[JSC] Remove unnecessary moves in Yarr's sub32 / add32 related code
https://bugs.webkit.org/show_bug.cgi?id=228813

Reviewed by Mark Lam.

This patch adds three operand sub32 to X64 masm so that we can use it in all masms.
We use add32 and sub32 in YarrJIT to remove unnecessary mov instructions in ARM64.

  • assembler/MacroAssembler.h:

(JSC::MacroAssembler::sub32):

  • assembler/MacroAssemblerARMv7.h:

(JSC::MacroAssemblerARMv7::sub32):

  • assembler/MacroAssemblerX86Common.h:

(JSC::MacroAssemblerX86Common::sub32):

  • assembler/testmasm.cpp:

(JSC::testSub32ArgImm):

  • yarr/YarrJIT.cpp:
10:50 AM Changeset in webkit [281325] by ysuzuki@apple.com
  • 4 edits
    1 delete in trunk/Source/JavaScriptCore

[JSC] Remove MacroAssemblerX86
https://bugs.webkit.org/show_bug.cgi?id=229331

Reviewed by Mark Lam.

This patch removes MacroAssemblerX86, which allows simplifying some 32bit MacroAssembler code
in a subsequent patch.

  • CMakeLists.txt:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • assembler/MacroAssembler.h:
  • assembler/MacroAssemblerX86.h: Removed.
10:47 AM Changeset in webkit [281324] by commit-queue@webkit.org
  • 2 edits in trunk/Source/JavaScriptCore

Fix DFG compilation of StringCharAt in 32 bits jsc debug build
https://bugs.webkit.org/show_bug.cgi?id=229293

Patch by Mikhail R. Gadelha <Mikhail R. Gadelha> on 2021-08-20
Reviewed by Keith Miller.

In SpeculativeJIT::compileGetByValOnString the format can be either DataFormatJS
or DataFormatCell so assert either value when compiling it in 32 bits.
It's the same assert already present in the DFG 64 bits counterpart

  • dfg/DFGSpeculativeJIT32_64.cpp:

(JSC::DFG::SpeculativeJIT::compile):

10:31 AM Changeset in webkit [281323] by Patrick Angle
  • 3 edits
    3 adds in trunk

Release assert in ScriptController::canExecuteScripts via WebCore::WebSocket::didReceiveMessage
https://bugs.webkit.org/show_bug.cgi?id=229301

Reviewed by Ryosuke Niwa.

Source/WebCore:

Test: http/tests/websocket/tests/hybi/inspector/send-and-recieve-debugger.html

WebCore::WebSocket::didReceiveMessage and other functions that fire JS events may be called while the
WebSocketChannel is being resumed, but it is not yet safe to evaluate JavaScript during resuming. This was
already accounted for with some events like errors and closing, but it holds true for all events. We should
delay firing these events as well.

  • Modules/websockets/WebSocket.cpp:

(WebCore::WebSocket::didConnect):
(WebCore::WebSocket::didReceiveMessage):
(WebCore::WebSocket::didReceiveBinaryData):

LayoutTests:

  • http/tests/websocket/tests/hybi/inspector/echo-delayed_wsh.py: Added.

(web_socket_do_extra_handshake):
(web_socket_transfer_data):

  • Similar to echo_wsh.py, respond with the provided message when received, but delay the response by 100ms.
  • http/tests/websocket/tests/hybi/inspector/send-and-recieve-debugger-expected.txt: Added.
  • http/tests/websocket/tests/hybi/inspector/send-and-recieve-debugger.html: Added.
10:12 AM Changeset in webkit [281322] by clopez@igalia.com
  • 3 edits in trunk/Tools

[ews-build.webkit.org] Add unit test with the expected build steps for each queue
https://bugs.webkit.org/show_bug.cgi?id=229319

Reviewed by Aakash Jain.

Add a unit test listing all the expected build steps for each queue
like the one added in r281286 for build.webkit.org
Also remove the previous unit tests to not duplicate test functionality.
And replace doble-quotes with single-ones on the test for build.webkit.org

  • CISupport/build-webkit-org/factories_unittest.py:

(TestExpectedBuildSteps):
(TestExpectedBuildSteps.test_all_expected_steps):
(TestExpectedBuildSteps.test_unnecessary_expected_steps):

  • CISupport/ews-build/factories_unittest.py:

(TestExpectedBuildSteps):
(TestExpectedBuildSteps.setUp):
(TestExpectedBuildSteps.test_all_expected_steps):
(TestExpectedBuildSteps.test_unnecessary_expected_steps):

10:01 AM Changeset in webkit [281321] by mark.lam@apple.com
  • 5 edits in trunk/Source/JavaScriptCore

Add some offlineasm enhancements.
https://bugs.webkit.org/show_bug.cgi?id=229332
rdar://82163923

Reviewed by Keith Miller.

  1. Enhance "include" offlineasm Instruction to always attempt to include an asm file from <build-products>/usr/local/include/WebKitAdditions/ first. If the specified file is not available there, then it will attempt to include the file from the same directory as the current source file (which in practice, means Source/JavaScriptCore/llint/).
  1. Enhance "include" offlineasm Instruction to allow an optional file to be included if it exists. For example, the following offlineasm code:

include? LowLevelInterpreterAdditions

... will attempt to include a file LowLevelInterpreterAdditions.asm. If the
file does not exist, this will be a no-op. Note: the "?" after the "include"
means the include is optional.

  1. Enhanced "emit" offlineasm Instruction to be able to take more than one operand.

"emit" used to just copy the string operand that follows into the generated
LLIntAssembly.h. Now, "emit" can take multiple comma separated operands, and
will concatenate all the operands.

Additionally, "emit" can now take a LocalLabelReference as an operand. For
example, this offline asm code:

emit "b ", .done
...

.done:

... will generate this inline asm code in LLIntAssembly.h:

"b " LOCAL_LABEL_STRING(_offlineasm_someLabel_done) "\n"

This makes it easier to emit branches to local labels.

  1. Also fixed LLInt code alignment for ARM_THUMB2 and ARM64.

Previously, it was aligned using ".align 4" which means aligned on a 4
instruction boundary. Note: the interpretation of .align varies for different
target CPU architectures.

Now, we do the alignment using ".balign 4" which means align on a 4 byte
boundary. This is the intended alignment because ARM64 instruction size is
4 bytes, and ARM_THUMB2 instruction size is either 2 bytes or 4 bytes.
Using .align before was potentially wasting some code space.

  • llint/LowLevelInterpreter.asm:
  • llint/LowLevelInterpreter.cpp:
  • offlineasm/ast.rb:
  • offlineasm/parser.rb:
9:22 AM Changeset in webkit [281320] by Ayumi Kojima
  • 2 edits in trunk/LayoutTests

[ iOS Debug ] animations/unprefixed-events.html is flaky failing.
https://bugs.webkit.org/show_bug.cgi?id=229338

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
9:21 AM Changeset in webkit [281319] by mark.lam@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Reduce StructureID entropy bits to 5 to make room for more StructureIDs.
https://bugs.webkit.org/show_bug.cgi?id=229326
rdar://60141624

Reviewed by Yusuke Suzuki.

  • runtime/StructureIDTable.h:
8:56 AM Changeset in webkit [281318] by mark.lam@apple.com
  • 3 edits in trunk/Source/WTF

Make ptrTagName and tagForPtr WTF_EXPORT_PRIVATE.
https://bugs.webkit.org/show_bug.cgi?id=229328

Reviewed by Yusuke Suzuki.

If ptrTagName and tagForPtr are defined, make them WTF_EXPORT_PRIVATE instead of
static functions. This allows us to call them from the debugger during
interactive debugging sessions.

  • wtf/PtrTag.cpp:

(WTF::tagForPtr):
(WTF::ptrTagName):

  • wtf/PtrTag.h:
8:53 AM Changeset in webkit [281317] by mark.lam@apple.com
  • 2 edits in trunk/Source/WTF

Remove assertIsTagged and assertIsNullOrTagged.
https://bugs.webkit.org/show_bug.cgi?id=229329
rdar://82162851

Reviewed by Yusuke Suzuki.

These assertion utility functions rely on tagged pointers always having non-zero
PAC bits. This is an incorrect assumption. A tagged pointer can have PAC bits
that are completely zero. Hence, these assert functions cannot be made to work
reliably. We should remove them to prevent them from being used, and potentially
resulting in flaky assertion failures that will be hard to debug later.

Note: assertIsNotTagged is fine to keep. It asserts that PAC bits of a pointer
are all 0. As a result, this assertion can have false positives where it may think
a tagged pointer is an untagged pointer. However, this is rare because it is not
common to have 0 PAC bits in tagged pointers. False positives on this assertion
won't result in flaky test failures that will waste our time later. Hence,
keeping the assertion will do more good (it will tend to help us find bugs) than
bad (it will rarely let false positives thru). As a result, I'm opting to not
remove it.

  • wtf/PtrTag.h:

(WTF::assertIsTagged): Deleted.
(WTF::assertIsNullOrTagged): Deleted.

8:30 AM Changeset in webkit [281316] by Alan Coon
  • 1 copy in tags/Safari-612.1.27.3.5

Tag Safari-612.1.27.3.5.

8:27 AM Changeset in webkit [281315] by Alan Coon
  • 4 edits in branches/safari-612.1.27.3-branch/Source/JavaScriptCore

Cherry-pick r281178. rdar://problem/82083485

Add an option for canonicalizePrePostIncrements
https://bugs.webkit.org/show_bug.cgi?id=229211
<rdar://problem/82050126>

Reviewed by Mark Lam.

The current phase has bugs. Let's disable it for now until the bugs
are fixed. See discussion about the bugs I spotted in:
https://bugs.webkit.org/show_bug.cgi?id=228538

  • b3/B3Generate.cpp: (JSC::B3::generateToAir):
  • b3/testb3_3.cpp: (addShrTests):
  • runtime/OptionsList.h:

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

8:24 AM Changeset in webkit [281314] by commit-queue@webkit.org
  • 6 edits in trunk

Unreviewed, reverting r281307.
https://bugs.webkit.org/show_bug.cgi?id=229336

broke layout tests

Reverted changeset:

"[IFC][Integration] Enable non-auto line-break values"
https://bugs.webkit.org/show_bug.cgi?id=228842
https://commits.webkit.org/r281307

8:10 AM Changeset in webkit [281313] by Alan Coon
  • 8 edits in branches/safari-612.1.27.3-branch/Source

Versioning.

WebKit-7612.1.27.3.5

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

[IFC] Undo incorrect InlineTextBox -> LegacyInlineTextBox renaming
https://bugs.webkit.org/show_bug.cgi?id=229081

Reviewed by Antti Koivisto.

  • layout/formattingContexts/inline/text/TextUtil.h:
  • layout/layouttree/LayoutBox.h:

(WebCore::Layout::Box::isInlineTextBox const):

  • layout/layouttree/LayoutInlineTextBox.cpp:

(WebCore::Layout::InlineTextBox::InlineTextBox):

6:21 AM Changeset in webkit [281311] by Antti Koivisto
  • 7 edits
    2 deletes in trunk

[LFC][Integration] Enable full underline support
https://bugs.webkit.org/show_bug.cgi?id=229322

Reviewed by Alan Bujtas.

Source/WebCore:

We can now paint all underlines.

  • layout/integration/LayoutIntegrationCoverage.cpp:

(WebCore::LayoutIntegration::printReason):
(WebCore::LayoutIntegration::canUseForStyle):

  • layout/integration/LayoutIntegrationCoverage.h:
  • layout/integration/LayoutIntegrationInlineContent.cpp:

(WebCore::LayoutIntegration::InlineContent::iteratorForRun const):
(WebCore::LayoutIntegration::InlineContent::iteratorForTextRun const):

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

(WebCore::LayoutIntegration::LineLayout::paint):

LayoutTests:

Remove a test that just checks we are forcing legacy for underline-position:under.

  • fast/text/simple-line-layout-with-text-underline-position-expected.html: Removed.
  • fast/text/simple-line-layout-with-text-underline-position.html: Removed.
6:18 AM Changeset in webkit [281310] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[IFC][Integration] Enable custom hyphen strings
https://bugs.webkit.org/show_bug.cgi?id=229049

Reviewed by Antti Koivisto.

This was most likely the case of non-primary font handling in SLL. It just works in IFC.

  • layout/integration/LayoutIntegrationCoverage.cpp:

(WebCore::LayoutIntegration::canUseForStyle):

5:56 AM Changeset in webkit [281309] by ntim@apple.com
  • 8 edits in trunk

Initial implementation of inert subtrees
https://bugs.webkit.org/show_bug.cgi?id=110952

Reviewed by Antti Koivisto.

Currently covers:

  • Blocking focus & selecting
  • aria-hidden like behaviour

Hit testing/event retargeting will be covered by https://bugs.webkit.org/show_bug.cgi?id=229330 pending a spec issue

Relevant WPT enabled. More testing coverage will be provided with the inert attribute.

LayoutTests/imported/w3c:

  • web-platform-tests/html/semantics/interactive-elements/the-dialog-element/inert-node-is-unfocusable-expected.txt:
  • web-platform-tests/html/semantics/interactive-elements/the-dialog-element/remove-dialog-should-unblock-document-expected.txt:

Source/WebCore:

  • accessibility/AccessibilityObject.cpp:

(WebCore::AccessibilityObject::isAXHidden const):

  • dom/Element.cpp:

(WebCore::Element::isFocusable const):

  • dom/Node.cpp:

(WebCore::Node::canStartSelection const):
(WebCore::Node::isInert const):

  • dom/Node.h:
5:49 AM Changeset in webkit [281308] by Alan Bujtas
  • 5 edits in trunk/Source/WebCore

[LFC][Integration] line-clamp is an unsupported CSS property
https://bugs.webkit.org/show_bug.cgi?id=228794

Reviewed by Simon Fraser.

Let's bail out on -webkit-line-clamp instead of the presence of a deprecated flex box. While line clamping requires legacy line layout, regular flex item content is fine with either line layout codepaths.

  • layout/integration/LayoutIntegrationCoverage.cpp:

(WebCore::LayoutIntegration::printReason):
(WebCore::LayoutIntegration::canUseForLineLayoutWithReason):

  • layout/integration/LayoutIntegrationCoverage.h:
5:44 AM Changeset in webkit [281307] by Alan Bujtas
  • 6 edits in trunk

[IFC][Integration] Enable non-auto line-break values
https://bugs.webkit.org/show_bug.cgi?id=228842

Reviewed by Antti Koivisto.

Source/WebCore:

IFC already supports line-break.

  • layout/integration/LayoutIntegrationCoverage.cpp:

(WebCore::LayoutIntegration::canUseForStyle):

LayoutTests:

  • TestExpectations: progressions
  • platform/mac/fast/text/trailing-white-space-expected.txt: collapsed trailing whitespace cleanup.
5:34 AM Changeset in webkit [281306] by Alan Bujtas
  • 4 edits in trunk/Source/WebCore

[LFC][IFC] Add support for -webkit-nbsp-mode: space
https://bugs.webkit.org/show_bug.cgi?id=228805

Reviewed by Antti Koivisto.

Treat non-breaking space as regular space.
TextUtil::findNextBreakablePosition already covers the "find the soft wrapping opportunity" part.

e.g.

<div style="-webkit-nbsp-mode: space">1&nbsp2</div>

produces 3 InlineTextItem objects as follows

[1][whitespace][2]

as opposed to just 1 [1non-breakable-space2]

  • layout/formattingContexts/inline/InlineTextItem.cpp:

(WebCore::Layout::moveToNextNonWhitespacePosition):
(WebCore::Layout::InlineTextItem::createAndAppendTextItems):

  • layout/integration/LayoutIntegrationCoverage.cpp:

(WebCore::LayoutIntegration::canUseForStyle):

3:16 AM Changeset in webkit [281305] by Philippe Normand
  • 9 edits in trunk

REGRESSION(r280732) [GStreamer] fast/mediastream/getDisplayMedia-max-constraints1.html and other are failing
https://bugs.webkit.org/show_bug.cgi?id=228941

Reviewed by Youenn Fablet.

Source/WebCore:

The GStreamer mock display capture source is now wrapped in another RealtimeMediaSource in
order to avoid a spurious setSize() call from the RealtimeVideoSource constructor that would
then prevent the mock source to ensure its size matches the intrinsic size.

For the non-mock display capture source, we now ensure the size matches the intrinsic size
whenever the capture settings have changed.

  • platform/mediastream/RealtimeVideoCaptureSource.h:
  • platform/mediastream/gstreamer/GStreamerVideoCaptureSource.cpp:

(WebCore::GStreamerVideoCaptureSource::settingsDidChange):

  • platform/mediastream/gstreamer/MockRealtimeVideoSourceGStreamer.cpp:

(WebCore::MockDisplayCaptureSourceGStreamer::create):
(WebCore::MockDisplayCaptureSourceGStreamer::capabilities):
(WebCore::MockDisplayCaptureSourceGStreamer::settings):

  • platform/mediastream/gstreamer/MockRealtimeVideoSourceGStreamer.h:
  • platform/mock/MockRealtimeMediaSourceCenter.cpp:
  • platform/mock/MockRealtimeVideoSource.cpp:

(WebCore::MockRealtimeVideoSource::generateFrame):

LayoutTests:

  • platform/glib/TestExpectations: Unflag tests now passing.
2:22 AM Changeset in webkit [281304] by Adrian Perez de Castro
  • 4 edits
    2 adds in releases/WebKitGTK/webkit-2.32

Merge r275189 - REGRESSION(r274992): Nullptr crash in FontCache::retrieveOrAddCachedFonts
https://bugs.webkit.org/show_bug.cgi?id=223858
<rdar://75883697>

Reviewed by Darin Adler and Ryosuke Niwa.

Source/WebCore:

Stop using a hash as key in the FontCascadeCache. Instead, use HashTraits and use
FontCascadeCacheKey as key.

Test: fonts/font-cache-crash.html

  • platform/graphics/FontCache.cpp:

(WebCore::FontCache::retrieveOrAddCachedFonts):
(WTF::FontCascadeCacheKeyHash::hash):

  • platform/graphics/FontCache.h:

(WebCore::FontCascadeCacheKey::operator== const):
(WTF::FontCascadeCacheKeyHash::equal):
(WTF::HashTraits<WebCore::FontCascadeCacheKey>::emptyValue):
(WTF::HashTraits<WebCore::FontCascadeCacheKey>::constructDeletedValue):
(WTF::HashTraits<WebCore::FontCascadeCacheKey>::isDeletedValue):

LayoutTests:

Add layout test coverage.

  • fonts/font-cache-crash-expected.txt: Added.
  • fonts/font-cache-crash.html: Added.
2:19 AM Changeset in webkit [281303] by Adrian Perez de Castro
  • 2 edits in releases/WebKitGTK/webkit-2.32/Source/WebCore

Merge r275168 - Make a Ref to HTMLPlugInElement when resolving callback
https://bugs.webkit.org/show_bug.cgi?id=223846

Patch by Ian Gilbert <iang@apple.com> on 2021-03-29
Reviewed by Ryosuke Niwa.

Take a Ref to the HTMLPlugInElement to keep it alive while invoking HTMLPlugInElement::swapRendererTimerFired()

  • html/HTMLPlugInElement.cpp:

(WebCore::HTMLPlugInElement::swapRendererTimerFired):

2:18 AM Changeset in webkit [281302] by Adrian Perez de Castro
  • 2 edits in releases/WebKitGTK/webkit-2.32/Source/WebCore

Merge r275143 - Don't add Frame as an opaque root of DOMWindow
https://bugs.webkit.org/show_bug.cgi?id=223838

Reviewed by Simon Fraser.

Don't add Frame as an opaque root of DOMWindow since we don't use Frame
as an opaque root of any JS wrappers since r248276.

  • bindings/js/JSDOMWindowCustom.cpp:

(WebCore::JSDOMWindow::visitAdditionalChildren):

2:16 AM WebKitGTK/2.32.x edited by Adrian Perez de Castro
(diff)
2:16 AM Changeset in webkit [281301] by Adrian Perez de Castro
  • 2 edits in releases/WebKitGTK/webkit-2.32/Source/WebCore

Merge r275130 - Dirty layout for floating children of inline on full layout
https://bugs.webkit.org/show_bug.cgi?id=223660

Patch by Ian Gilbert <iang@apple.com> on 2021-03-26
Reviewed by Zalan Bujtas.

Avoid consuming an object on an empty line when that object is floating or out-of-flow.

  • rendering/line/BreakingContext.h:

(WebCore::BreakingContext::handleEndOfLine):

2:13 AM WebKitGTK/2.32.x edited by Adrian Perez de Castro
(diff)
1:05 AM Changeset in webkit [281300] by mmaxfield@apple.com
  • 3 edits in trunk/Source/WebCore

GlyphBuffer can become inconsistent with its backing string
https://bugs.webkit.org/show_bug.cgi?id=229064

Reviewed by Alan Bujtas.

This is split out from https://bugs.webkit.org/show_bug.cgi?id=215643.

Before shaping, the glyphs in the GlyphBuffer need to match one-to-one with code units in the string.
We iterate over the string, adding glyphs into the GlyphBuffer, but there was one early "continue"
in the loop that skips the add() call.

Because this patch adds ASSERT()s, this is actually covered by existing tests.

  • platform/graphics/WidthIterator.cpp:

(WebCore::WidthIterator::commitCurrentFontRange):
(WebCore::addToGlyphBuffer):
(WebCore::WidthIterator::advanceInternal):

  • platform/graphics/WidthIterator.h:
1:03 AM Changeset in webkit [281299] by ntim@apple.com
  • 3 edits
    2 adds in trunk

Ensure ancestors with opacity don't affect top layer elements
https://bugs.webkit.org/show_bug.cgi?id=229317

Reviewed by Antti Koivisto.

Test: imported/w3c/web-platform-tests/html/semantics/interactive-elements/the-dialog-element/top-layer-parent-opacity.html

Associated WPT PR: https://github.com/web-platform-tests/wpt/pull/30104

LayoutTests/imported/w3c:

  • web-platform-tests/html/semantics/interactive-elements/the-dialog-element/top-layer-parent-opacity-expected.html: Added.
  • web-platform-tests/html/semantics/interactive-elements/the-dialog-element/top-layer-parent-opacity.html: Added.

Source/WebCore:

  • rendering/RenderLayerBacking.cpp:

(WebCore::RenderLayerBacking::compositingOpacity const):

12:55 AM Changeset in webkit [281298] by youenn@apple.com
  • 15 edits in trunk

Add support for RTCPeerConnection.canTrickleIceCandidates
https://bugs.webkit.org/show_bug.cgi?id=229287

Reviewed by Eric Carlson.

LayoutTests/imported/w3c:

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

Source/WebCore:

Add support for https://w3c.github.io/webrtc-pc/#dom-rtcpeerconnection-cantrickleicecandidates.
Return null in case connection is closed or setRemoteDescription was never called successfully.
Add binding code to get the value from webrtc backend.
Covered by rebased tests.

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

(WebCore::RTCPeerConnection::canTrickleIceCandidates const):

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

(WebCore::LibWebRTCMediaEndpoint::canTrickleIceCandidates const):

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

(WebCore::LibWebRTCPeerConnectionBackend::canTrickleIceCandidates const):

  • Modules/mediastream/libwebrtc/LibWebRTCPeerConnectionBackend.h:

LayoutTests:

  • webrtc/rtcpeerconnection-error-messages-expected.txt:
12:50 AM Changeset in webkit [281297] by youenn@apple.com
  • 5 edits in trunk/Tools

Remove all WTR output before Content-Type:text/plain for WebRTC tests in case of known excessive logging
https://bugs.webkit.org/show_bug.cgi?id=229188

Reviewed by Jonathan Bedard.

Some logging beneath WebKit is making WebRTC tests flaky.
While we work on the cause of this bug, we can still beef-up our test output clean up steps to handle this logging.
Instead of stripping lines based on a known pattern, which does not always work as per current results,
we can simply remove all logging before the 'Content-Type:text/plain\n' string that WebKitTestRunner is adding before
printing the text generated by the test itself.
We update webkitpy scripts accordingly and add this new clean-up for:

  • tests that have webrtc in their name
  • tests whose output contain some known logging strings like 'LRP' or 'Negotiation String'.

This should hopefully be more robust while not hiding real regressions.

  • Scripts/webkitpy/layout_tests/controllers/single_test_runner.py:

(SingleTestRunner):

  • Scripts/webkitpy/port/base.py:

(Port.logging_detectors_to_strip_text_start):

  • Scripts/webkitpy/port/driver.py:

(DriverOutput.strip_text_start_if_needed):

  • Scripts/webkitpy/port/mac.py:

(MacPort.logging_patterns_to_strip):
(MacPort.logging_detectors_to_strip_text_start):

Note: See TracTimeline for information about the timeline view.