Commit Graph

240929 Commits

Author SHA1 Message Date
Per Arne Vollan 1295243bbd [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:


Canonical link: https://commits.webkit.org/240800@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@281385 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2021-08-22 03:26:31 +00:00
Sihui Liu 190e8e04b1 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:


Canonical link: https://commits.webkit.org/240799@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@281384 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2021-08-22 01:33:10 +00:00
Yusuke Suzuki f38367dfe2 [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:


Canonical link: https://commits.webkit.org/240798@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@281383 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2021-08-22 00:26:53 +00:00
Alan Bujtas 71bae82c26 [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):


Canonical link: https://commits.webkit.org/240797@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@281382 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2021-08-21 23:01:13 +00:00
Per Arne Vollan ee5de918b1 [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:


Canonical link: https://commits.webkit.org/240796@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@281381 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2021-08-21 22:34:46 +00:00
Per Arne Vollan 33a80b622e [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):


Canonical link: https://commits.webkit.org/240795@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@281380 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2021-08-21 22:04:40 +00:00
Jonathan Bedard cd2a409787 [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):


Canonical link: https://commits.webkit.org/240794@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@281379 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2021-08-21 19:19:56 +00:00
Myles C. Maxfield 03cbc4b111 [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.


Canonical link: https://commits.webkit.org/240793@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@281378 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2021-08-21 19:18:51 +00:00
Alan Bujtas 63a91d12be [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:


Canonical link: https://commits.webkit.org/240792@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@281377 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2021-08-21 18:19:40 +00:00
Simon Fraser efbeef4905 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:


Canonical link: https://commits.webkit.org/240791@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@281376 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2021-08-21 18:15:15 +00:00
Adrien Destugues 0c9484cd1a Initialize internal settings to default values.
Fixes #17094.
2021-08-21 18:54:09 +02:00
Yusuke Suzuki 7ee2330a59 [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:


Canonical link: https://commits.webkit.org/240790@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@281375 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2021-08-21 16:17:02 +00:00
Adrien Destugues 7c9c1246d3 Update user agent.
Fixes #15551.
2021-08-21 17:41:04 +02:00
Yusuke Suzuki b2eeba9a64 [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):

Canonical link: https://commits.webkit.org/240789@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@281374 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2021-08-21 14:33:08 +00:00
Alan Bujtas ee7becdcd4 [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:


Canonical link: https://commits.webkit.org/240788@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@281373 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2021-08-21 13:49:32 +00:00
Alan Bujtas a3c13a3eb2 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:


Canonical link: https://commits.webkit.org/240787@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@281372 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2021-08-21 13:42:48 +00:00
Yusuke Suzuki 38a75391bc [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:

Canonical link: https://commits.webkit.org/240786@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@281371 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2021-08-21 13:02:32 +00:00
Yusuke Suzuki 62342d1af4 [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:


Canonical link: https://commits.webkit.org/240785@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@281370 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2021-08-21 12:28:04 +00:00
Yusuke Suzuki a83e8bf7dc [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.

* runtime/ArrayPrototype.cpp: Order of unscopables is alphabet ordering (https://tc39.es/ecma262/#sec-array.prototype-@@unscopables)
(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:

Canonical link: https://commits.webkit.org/240784@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@281369 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2021-08-21 12:10:09 +00:00
Daniel Kolesa 09645be108 [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 <dkolesa@igalia.com> 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):

Canonical link: https://commits.webkit.org/240783@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@281368 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2021-08-21 07:56:13 +00:00
Youenn Fablet de3b46e2aa 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.


Canonical link: https://commits.webkit.org/240782@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@281367 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2021-08-21 07:01:21 +00:00
Commit Queue 00ece9c77b 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

Canonical link: https://commits.webkit.org/240781@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@281366 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2021-08-21 06:10:53 +00:00
Simon Fraser 77186239ca 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:


Canonical link: https://commits.webkit.org/240780@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@281365 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2021-08-21 05:58:38 +00:00
Tim Nguyen df77443778 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):


Canonical link: https://commits.webkit.org/240779@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@281364 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2021-08-21 05:53:25 +00:00
Jonathan Bedard 57fdc8726f [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):


Canonical link: https://commits.webkit.org/240778@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@281363 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2021-08-21 05:25:07 +00:00
Alan Bujtas 6b1ef2b142 [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):


Canonical link: https://commits.webkit.org/240777@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@281362 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2021-08-21 03:20:23 +00:00
Alan Bujtas f3b7168d51 [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):


Canonical link: https://commits.webkit.org/240776@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@281361 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2021-08-21 03:16:20 +00:00
Simon Fraser 329d006d9b 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:

Canonical link: https://commits.webkit.org/240775@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@281360 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2021-08-21 02:56:54 +00:00
Alan Bujtas 22672d257b [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):


Canonical link: https://commits.webkit.org/240774@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@281359 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2021-08-21 02:48:24 +00:00
Alan Bujtas 476490667d [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):


Canonical link: https://commits.webkit.org/240773@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@281358 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2021-08-21 02:44:59 +00:00
Alan Bujtas 5c695cf449 [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:


Canonical link: https://commits.webkit.org/240772@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@281357 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2021-08-21 01:45:09 +00:00
Alan Bujtas 348ceeefaa [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.


Canonical link: https://commits.webkit.org/240771@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@281356 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2021-08-21 01:13:06 +00:00
Yusuke Suzuki 9c8a599a84 [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):


Canonical link: https://commits.webkit.org/240770@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@281355 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2021-08-21 00:54:50 +00:00
Patrick Angle 8e9b7a21d6 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 `StyleRule`s 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 `StyleRule`s 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 `CSSSelector`s for specificity information since we now collect selectors from potentially
multiple `CSSStyleRule`s.

(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 `CSSStyleRule`s 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.


Canonical link: https://commits.webkit.org/240769@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@281354 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2021-08-21 00:35:46 +00:00
Eric Hutchison f8296898e7 Update test expectations for fast/scrolling/ios/overflow-div-scrolling.html.
<rdar://80392444>.

Unreviewed test gardening.

* platform/ios-wk1/TestExpectations:

Canonical link: https://commits.webkit.org/240768@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@281353 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2021-08-21 00:19:21 +00:00
Aditya Keerthi 95c1405b2b [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:]):


Canonical link: https://commits.webkit.org/240767@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@281352 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2021-08-21 00:14:10 +00:00
Ayumi Kojima ff5347a30b [ Sky ] editing/input/cocoa/autocorrect-on.html is timing out.
<rdar://82191308>

Unreviewed test gardening.

* platform/ios-wk2/TestExpectations:

Canonical link: https://commits.webkit.org/240766@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@281351 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2021-08-21 00:00:57 +00:00
Eric Hutchison 5d16b20b30 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:

Canonical link: https://commits.webkit.org/240765@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@281350 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2021-08-20 23:22:40 +00:00
Alex Christensen ff37bd0a8d 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):



Canonical link: https://commits.webkit.org/240764@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@281349 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2021-08-20 23:01:58 +00:00
Simon Fraser 3188d16255 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):


Canonical link: https://commits.webkit.org/240763@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@281348 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2021-08-20 22:58:48 +00:00
Jonathan Bedard 4f665397a7 [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.


Canonical link: https://commits.webkit.org/240762@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@281346 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2021-08-20 22:52:18 +00:00
Ayumi Kojima dbbb95a87a [ 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:

Canonical link: https://commits.webkit.org/240761@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@281344 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2021-08-20 22:24:01 +00:00
Eric Hutchison 5f661f0376 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:

Canonical link: https://commits.webkit.org/240760@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@281343 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2021-08-20 22:19:29 +00:00
Mikhail R. Gadelha e42bbd1b61 Unreviewed. Skip failing tests in 32 bits archs
https://bugs.webkit.org/show_bug.cgi?id=229345

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

* platform/glib/TestExpectations:
* platform/wpe/TestExpectations:

Canonical link: https://commits.webkit.org/240759@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@281342 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2021-08-20 22:01:12 +00:00
Alan Bujtas 5433d12bd5 [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:


Canonical link: https://commits.webkit.org/240758@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@281341 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2021-08-20 22:00:16 +00:00
Jon Lee 5a30917057 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.


Canonical link: https://commits.webkit.org/240757@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@281340 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2021-08-20 21:57:40 +00:00
Jonathan Bedard e8a1616eda [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.


Canonical link: https://commits.webkit.org/240756@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@281339 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2021-08-20 21:56:59 +00:00
Alan Bujtas 4bcb8c273e [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):


Canonical link: https://commits.webkit.org/240755@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@281338 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2021-08-20 21:28:00 +00:00
Alan Bujtas f8738c93d7 [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):


Canonical link: https://commits.webkit.org/240754@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@281337 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2021-08-20 21:24:44 +00:00
Ayumi Kojima 162aa45fbc [ iOS 15 ]editing/selection/ios/hide-selection-in-tiny-contenteditable.html is a flaky failure.
<rdar://82183980>

Unreviewed test gardening.

* platform/ios-wk2/TestExpectations:

Canonical link: https://commits.webkit.org/240753@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@281336 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2021-08-20 20:56:03 +00:00