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

Timeline



Jul 2, 2021:

11:46 PM Changeset in webkit [279541] by Ruben Turcios
  • 8 edits in branches/safari-612.1.22.11-branch/Source

Versioning.

WebKit-7612.1.22.11.1

11:45 PM Changeset in webkit [279540] by Ruben Turcios
  • 8 edits in branches/safari-612.1.22.3-branch/Source

Versioning.

WebKit-7612.1.22.3.1

11:43 PM Changeset in webkit [279539] by Ruben Turcios
  • 8 edits in branches/safari-612.1.22.2-branch/Source

Versioning.

WebKit-7612.1.22.2.1

11:42 PM Changeset in webkit [279538] by Ruben Turcios
  • 8 edits in branches/safari-612.1.22.1-branch/Source

Versioning.

WebKit-7612.1.22.1.1

11:40 PM Changeset in webkit [279537] by Ruben Turcios
  • 8 edits in branches/safari-612.1.22.0-branch/Source

Versioning.

WebKit-7612.1.22.0.1

9:42 PM Changeset in webkit [279536] by Ruben Turcios
  • 1 copy in branches/safari-612.1.22.11-branch

New branch.

9:41 PM Changeset in webkit [279535] by Ruben Turcios
  • 1 copy in branches/safari-612.1.22.3-branch

New branch.

9:41 PM Changeset in webkit [279534] by Ruben Turcios
  • 1 copy in branches/safari-612.1.22.2-branch

New branch.

9:40 PM Changeset in webkit [279533] by Ruben Turcios
  • 1 copy in branches/safari-612.1.22.1-branch

New branch.

9:40 PM Changeset in webkit [279532] by Ruben Turcios
  • 1 copy in branches/safari-612.1.22.0-branch

New branch.

9:34 PM Changeset in webkit [279531] by Ruben Turcios
  • 1 copy in tags/Safari-612.1.22

Tag Safari-612.1.22.

7:50 PM Changeset in webkit [279530] by jh718.park@samsung.com
  • 2 edits in trunk/Source/WebCore

Unreviewed. Remove the build warning below since r279498.
warning: redundant move in return statement [-Wredundant-move]

No new tests, no new behavioral changes.

  • css/parser/CSSPropertyParserWorkerSafe.cpp:

(WebCore::CSSPropertyParserHelpersWorkerSafe::consumeFontFaceUnicodeRange):

6:24 PM Changeset in webkit [279529] by Kocsen Chung
  • 5 edits in branches/safari-611.3.10.1-branch/Source/WebCore

Cherry-pick r278964. rdar://problem/79474157

Protect Element before calling dispatchMouseEvent() on it
https://bugs.webkit.org/show_bug.cgi?id=226767
<rdar://problem/79009112>

Reviewed by Ryosuke Niwa.

  • page/EventHandler.cpp: (WebCore::EventHandler::updateMouseEventTargetNode): (WebCore::EventHandler::dispatchMouseEvent):
  • page/PointerLockController.cpp: (WebCore::PointerLockController::dispatchLockedMouseEvent):
  • page/Quirks.cpp: (WebCore::Quirks::triggerOptionalStorageAccessQuirk const):

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

6:19 PM Changeset in webkit [279528] by Kocsen Chung
  • 8 edits in branches/safari-611.3.10.1-branch/Source

Versioning.

WebKit-7611.3.10.1.3

6:11 PM Changeset in webkit [279527] by Kocsen Chung
  • 5 edits in branches/safari-611.3.10.0-branch/Source/WebCore

Cherry-pick r278964. rdar://problem/79474157

Protect Element before calling dispatchMouseEvent() on it
https://bugs.webkit.org/show_bug.cgi?id=226767
<rdar://problem/79009112>

Reviewed by Ryosuke Niwa.

  • page/EventHandler.cpp: (WebCore::EventHandler::updateMouseEventTargetNode): (WebCore::EventHandler::dispatchMouseEvent):
  • page/PointerLockController.cpp: (WebCore::PointerLockController::dispatchLockedMouseEvent):
  • page/Quirks.cpp: (WebCore::Quirks::triggerOptionalStorageAccessQuirk const):

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

5:33 PM Changeset in webkit [279526] by Chris Dumez
  • 3 edits in trunk/Source/WebKit

Unreviewed attempt to fix Mac Catalyst build.

  • NetworkProcess/ios/NetworkProcessIOS.mm:

(WebKit::NetworkProcess::allowSpecificHTTPSCertificateForHost):

  • NetworkProcess/mac/NetworkProcessMac.mm:

(WebKit::NetworkProcess::allowSpecificHTTPSCertificateForHost):

4:40 PM Changeset in webkit [279525] by aakash_jain@apple.com
  • 1 edit
    1 delete in trunk/Tools

Delete unused BuildSlaveSupport symlink
https://bugs.webkit.org/show_bug.cgi?id=227644

Reviewed by Dewei Zhu.

  • BuildSlaveSupport: Symlink removed.
4:21 PM Changeset in webkit [279524] by Brent Fulgham
  • 3 edits in trunk/Source/WTF

[macOS] Only use WebGL on Metal by default on safe versions of macOS
https://bugs.webkit.org/show_bug.cgi?id=227633
<rdar://problem/78527887>

Reviewed by Dean Jackson.

Tested by WebGL test suite.

  • Scripts/Preferences/WebPreferencesExperimental.yaml:
  • wtf/PlatformHave.h:
4:05 PM Changeset in webkit [279523] by Chris Dumez
  • 2 edits in trunk/Source/WebKit

Unreviewed Mac Catalyst build fix after r279514.

  • NetworkProcess/ios/NetworkProcessIOS.mm:
3:52 PM Changeset in webkit [279522] by Truitt Savell
  • 2 edits in trunk/LayoutTests

[BigSur Release wk2] fast/history/visited-href-mutation.html is a flaky image failure
https://bugs.webkit.org/show_bug.cgi?id=227639

Unreviewed test gardening.

Patch by Eric Hutchison <Eric Hutchison> on 2021-07-02

  • platform/mac-wk2/TestExpectations:
3:43 PM Changeset in webkit [279521] by Chris Dumez
  • 2 edits in trunk/LayoutTests

Unreviewed, mark imported/w3c/web-platform-tests/beacon/beacon-basic.https.window.html as flaky

It has been flaky since its import in r279225.

3:40 PM Changeset in webkit [279520] by keith_miller@apple.com
  • 4 edits in trunk/Source/JavaScriptCore

Add 10 more unified source cpp files for JSC
https://bugs.webkit.org/show_bug.cgi?id=227643

Reviewed by Alex Christensen.

  • JavaScriptCore.xcodeproj/project.pbxproj:
  • Scripts/generate-unified-sources.sh:
  • UnifiedSources-output.xcfilelist:
3:33 PM Changeset in webkit [279519] by Ruben Turcios
  • 8 edits in branches/safari-612.1.21-branch/Source

Versioning.

WebKit-7612.1.22

3:26 PM Changeset in webkit [279518] by Chris Dumez
  • 8 edits in trunk

[MacOS wk1] crypto/workers/subtle/hrsa-postMessage-worker.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=227540
<rdar://problem/79977662>

Reviewed by Geoffrey Garen.

Source/WebCore:

The test was sending 2 messages to the worker, the first one with the public key
and the second one for the private key. As the worker would receive those messages,
it would do some checks synchronously and post a message back to the main thread
script with the result. As we could see from the test's expected results, the
main thread script would usually (although flakily) receive the result for the
private key *before* the result for the public key, which was wrong.

The reason for this was that serializing / deserializing the crypto key would
spin the worker's run loop and the worker would thus process incoming messages
while serializing / deserializing a crypto key from a previous message.

To address the issue, we now use a BinarySemaphore to wait for the main thread
to finish the wrapping / unwrapping, instead of spinning the run loop.

No new tests, unskipped existing test.

  • workers/WorkerGlobalScope.cpp:

(WebCore::WorkerGlobalScope::wrapCryptoKey):
(WebCore::WorkerGlobalScope::unwrapCryptoKey):

LayoutTests:

Rebaseline test now that the output is correct (and non-flaky). Also unmark the test as flaky.

  • crypto/workers/subtle/ec-postMessage-worker-expected.txt:
  • crypto/workers/subtle/hrsa-postMessage-worker-expected.txt:
  • crypto/workers/subtle/hrsa-postMessage-worker.html:
  • platform/mac-wk1/TestExpectations:
2:19 PM Changeset in webkit [279517] by Chris Dumez
  • 2 edits in trunk/LayoutTests

REGRESSION (r279427): [ Mac wk1 ] imported/w3c/web-platform-tests/html/rendering/replaced-elements/embedded-content/tall-cross-domain-iframe-in-scrolled.sub.html is timing out
https://bugs.webkit.org/show_bug.cgi?id=227637
<rdar://problem/80102396>

Unreviewed, Skip this newly imported WPT test on mac wk1 as it is timing out on this
platform.

  • platform/mac-wk1/TestExpectations:
2:09 PM Changeset in webkit [279516] by Chris Dumez
  • 20 edits
    19 copies
    38 moves
    13 adds
    33 deletes in trunk/LayoutTests

Resync WebCryptoAPI web-platform-tests from upstream
https://bugs.webkit.org/show_bug.cgi?id=227601

Reviewed by Geoffrey Garen.

LayoutTests/imported/w3c:

Resync WebCryptoAPI web-platform-tests from upstream 2c19d6ee62676ac90146.

  • web-platform-tests/WebCryptoAPI/*: Updated.

LayoutTests:

1:42 PM Changeset in webkit [279515] by Ruben Turcios
  • 1 copy in tags/Safari-612.1.21.2

Tag Safari-612.1.21.2.

1:35 PM Changeset in webkit [279514] by Chris Dumez
  • 14 edits in trunk/Source/WebKit

Take a process assertion in the network process when holding locked files
https://bugs.webkit.org/show_bug.cgi?id=227552

Reviewed by Sihui Liu.

Take a process assertion in the network process when holding locked files. Previously, we'd
send an IPC to the UIProcess and the UIProcess would take the assertion on behalf of the
network process. However, our previous approach was racy and could cause the network process
to still get suspended while still holding locked files (which would get it killed).

We have evidence that the network process is getting killed a lot for this reason
(rdar://79787123).

  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::NetworkProcess):
Call setIsHoldingLockedFiles() when the "isHoldingLockedFiles" state changes instead of sending
an IPC to the UIProcess. setIsHoldingLockedFiles() takes care of taking or releasing a
RunningBoard assertion.

(WebKit::NetworkProcess::prepareToSuspend):
(WebKit::NetworkProcess::resume):
Stop calling setSuspended() on the WebSQLiteDatabaseTracker. The purpose was to avoid sending
the SetIsHoldingLockedFiles IPC to the UIProcess after receiving the PrepareToSuspend IPC.
However, it is now acceptable to take a process assertion after PrepareToSuspend IPC has been
received.

  • NetworkProcess/NetworkProcess.h:
  • NetworkProcess/ios/NetworkProcessIOS.mm:

(WebKit::NetworkProcess::setIsHoldingLockedFiles):
When setIsHoldingLockedFiles(true) gets called, we take a runningboard assertion to prevent
suspension. Note that setIsHoldingLockedFiles(true) gets on the storage thread (which started
the SQLite transaction) so we take the assertion synchronously to make sure we cannot get
suspended during a SQLite transaction.
When setIsHoldingLockedFiles(false) gets called, we release the runningboard assertion.

  • Shared/WebSQLiteDatabaseTracker.cpp:

(WebKit::WebSQLiteDatabaseTracker::WebSQLiteDatabaseTracker):
(WebKit::WebSQLiteDatabaseTracker::~WebSQLiteDatabaseTracker):
(WebKit::WebSQLiteDatabaseTracker::setIsSuspended):
(WebKit::WebSQLiteDatabaseTracker::willBeginFirstTransaction):
(WebKit::WebSQLiteDatabaseTracker::didFinishLastTransaction):
(WebKit::WebSQLiteDatabaseTracker::setIsHoldingLockedFiles):

  • Shared/WebSQLiteDatabaseTracker.h:

Update WebSQLiteDatabaseTracker so that it called its isHoldingLockedFilesHandler lambda
directly on the storage thread when the first transaction starts, instead of dispatching
to the main thread. Dispatching to the main thread would be racy as it would mean taking
the process assertion asynchronously (on the main thread), after the SQLite transaction
has begun on the storage thread.
As a result, of this change, I am not using the HysterisActivity class anymore and using
my own thread-safe hysteresis activity using RunLoop::dispatchAfter() with an integer
and a lock.

  • UIProcess/Network/NetworkProcessProxy.cpp:

(WebKit::NetworkProcessProxy::networkProcessDidTerminate):
(WebKit::NetworkProcessProxy::sendProcessDidResume):

  • UIProcess/Network/NetworkProcessProxy.h:
  • UIProcess/Network/NetworkProcessProxy.messages.in:

Drop the SetIsHoldingLockedFiles IPC and its handling on UIProcess side since the network
process now takes the assertion by itself.

1:33 PM Changeset in webkit [279513] by Chris Dumez
  • 18 edits
    39 adds
    1 delete in trunk/LayoutTests

Resync encoding web-platform-tests from upstream
https://bugs.webkit.org/show_bug.cgi?id=227602

Reviewed by Alex Christensen.

LayoutTests/imported/w3c:

Resync encoding web-platform-tests from upstream 2c19d6ee62676ac90146.

  • web-platform-tests/encoding/*: Updated.

LayoutTests:

1:22 PM Changeset in webkit [279512] by Chris Dumez
  • 3 edits in trunk/Source/WebKit

Regression(r278786) LocalStorageDatabase's transaction may be remain active when process gets suspended
https://bugs.webkit.org/show_bug.cgi?id=227632

Reviewed by Geoffrey Garen.

After r278786, LocalStorageDatabase has a SQL transaction that gets committed with a 500ms delay on the
storage thread. When the network process would receive the PrepareToSuspend IPC, it would suspend / hang
the storage thread, which would prevent the SQL transaction from getting committed and we would suspend
with a locked file and get killed. We now make sure to flush local storage to disk (i.e. commit that
transaction) before we suspend / hang the storage thread.

  • NetworkProcess/WebStorage/StorageManagerSet.cpp:

(WebKit::StorageManagerSet::waitUntilSyncingLocalStorageFinished):
(WebKit::StorageManagerSet::flushLocalStorage):
(WebKit::StorageManagerSet::suspend):

  • NetworkProcess/WebStorage/StorageManagerSet.h:
1:22 PM Changeset in webkit [279511] by Truitt Savell
  • 2 edits
    8 copies
    3 adds
    2 deletes in trunk/LayoutTests

Unreviewed, reverting r279485.

Broke expectations for 7 mathML test on Big Sur wk1

Reverted changeset:

"Move some Mac MathML test expectation files around"
https://bugs.webkit.org/show_bug.cgi?id=227520
https://commits.webkit.org/r279485

12:19 PM Changeset in webkit [279510] by commit-queue@webkit.org
  • 11 edits
    6 adds in trunk/Source/WebInspectorUI

Web Inspector: add contextual documentation for CSS properties
https://bugs.webkit.org/show_bug.cgi?id=226883

Patch by Harshil Ratnu <hratnu@apple.com> on 2021-07-02
Reviewed by Devin Rousso.

Overview: Add contextual documentation for all supported CSS properties in Styles and Computed panel within Web
Inspector.
Details: Add an info button which appears next to the property field on Hover. Clicking on the info button shows
a popover with the documentation for the property. Tabbing out or clicking anywhere other than the value field
dismisses the popover.
Architecture: Add a ContextualDocumentationButton in SpreadsheetStyleProperty and append that to the end of the
property content. This Button, when clicked, creates an instance of the ContextualDocumentation.js which will
search the ContextualDocumentationDB to find the related property and it's relevant details. Embed these details
in an instance of Popover.js and present next to the associated propertyName.

  • Localizations/en.lproj/localizedStrings.js:
  • Scripts/copy-user-interface-resources.pl:

Add details for the ContextualDocumentationDatabase from External Folder to build properly.

  • UserInterface/Base/Setting.js:

Add setting to show syntax in documentation popover and define default state as false.

  • UserInterface/External/ContextualDocumentationDatabase/ContextualDocumentationDatabase.js: Added.
  • UserInterface/External/ContextualDocumentationDatabase/LICENSE: Added.
  • UserInterface/Images/InfoIcon.svg: Added.
  • UserInterface/Main.html:

Add and link new files.

  • UserInterface/Views/ComputedStyleDetailsPanel.css:

(.sidebar > .panel.details.css-style > .content > .computed > .details-section.computed-style-variables .property .go-to-arrow):
(.sidebar > .panel.details.css-style > .content > .computed > .details-section.computed-style-variables .property:not(:hover) .go-to-arrow):
Remove absolute positioning from go-to-arrow button to align it with rest of the text in line and style it
similar to contextual-documentation-button.
(.sidebar > .panel.details.css-style > .content > .computed .property .go-to-arrow): Deleted.
(.sidebar > .panel.details.css-style > .content > .computed .property:not(:hover) .go-to-arrow): Deleted.
Change hover area to include white space on the side of computed variables.

  • UserInterface/Views/ComputedStyleSection.css:

(.sidebar > .panel.details.css-style > .content > .computed .computed-property-item > .property .go-to-arrow):
(.sidebar > .panel.details.css-style > .content > .computed .computed-property-item:not(:hover) > .property .go-to-arrow):
(.sidebar > .panel.details.css-style > .content > .computed .computed-property-item > .property > .content > .contextual-documentation-button):
(.sidebar > .panel.details.css-style > .content > .computed .computed-property-item:not(:hover) > .property > .content > .contextual-documentation-button):
Add unifrom styling for go-to-arrow button and contextual-documentation-button for computed properties.

  • UserInterface/Views/ContextualDocumentationPopover.css: Added.

(.popover .documentation-popover-content):
(.popover .documentation-popover-content > p):
(.popover .documentation-popover-content > .name-header):
(.popover .documentation-popover-content > .syntax):
(.popover .documentation-popover-content > .syntax > .syntax-title):
(.popover .documentation-popover-content > .reference-link):

  • UserInterface/Views/ContextualDocumentationPopover.js: Added.

(WI.ContextualDocumentationPopover):
(WI.ContextualDocumentationPopover.prototype.show):
(WI.ContextualDocumentationPopover.prototype._presentOverTargetElement):
(WI.ContextualDocumentationPopover.prototype._getDocumentationDetails):
(WI.ContextualDocumentationPopover.prototype._createDocumentationElement):
Add new class that extends Popover.js and handles fetching the values from VS Code documentation, puts relevant
information in the popover and presents the popover when the documentation-button is clicked.

  • UserInterface/Views/Main.css:

(.contextual-documentation-button):
(.contextual-documentation-button:active):
(@media (prefers-color-scheme: dark) .contextual-documentation-button):
Add general styling for contextualDocumentationButton.

  • UserInterface/Views/SettingsTabContentView.js:

(WI.SettingsTabContentView.prototype._createElementsSettingsView):
Add a new setting in Elements Tab to show syntax.

  • UserInterface/Views/SpreadsheetStyleProperty.js:

(WI.SpreadsheetStyleProperty.prototype.willDismissPopover):
Add a method - willDismissPopover to handle changes when the documentation popover is about to dismiss.
(WI.SpreadsheetStyleProperty.prototype.update):
(WI.SpreadsheetStyleProperty.prototype.spreadsheetTextFieldDidCommit):
(WI.SpreadsheetStyleProperty.prototype.spreadsheetTextFieldDidBlur):
(WI.SpreadsheetStyleProperty.prototype._addContextualDocumentationButton):
Add a method which gets called for all property fields and also gets called when property name is changed and
updated by clicking out of the property name field or tabbing into the next value field and is responsible for
adding the info button add the end of the property.
(WI.SpreadsheetStyleProperty.prototype._handleContextualDocumentationButtonClicked):
(WI.SpreadsheetStyleProperty.prototype._presentContextualDocumentation):
Add a method which creates an instance of the ContextualDocumentationPopover.js class and shows it.

10:57 AM Changeset in webkit [279509] by beidson@apple.com
  • 2 edits in trunk/Source/WebKit

WebPageProxy::setAppHighlightsVisibility might send message from a background thread, ASSERTing
<rdar://80056481> and https://bugs.webkit.org/show_bug.cgi?id=227607

Reviewed by Chris Dumez.

  • UIProcess/Cocoa/WebPageProxyCocoa.mm:

(WebKit::WebPageProxy::setAppHighlightsVisibility):
(WebKit::WebPageProxy::setUpHighlightsObserver): The callback we get here is often on a background thread.

So bounce it to main.

10:55 AM Changeset in webkit [279508] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[LFC][TFC] Keep track of both the fixed and percent maximum values for each column
https://bugs.webkit.org/show_bug.cgi?id=227491

Reviewed by Antti Koivisto.

This patch is in preparation for supporting mixed column width types when each row
has diffrent type of widths (e.g <tr><td style="width: 100px;"></td></tr><tr><td style="width: 10%;"></td></tr>)

  • layout/formattingContexts/table/TableFormattingContext.cpp:

(WebCore::Layout::TableFormattingContext::computedPreferredWidthForColumns):

10:41 AM Changeset in webkit [279507] by Ryan Haddad
  • 3 edits in trunk/LayoutTests

[ BigSur Release Arm64 ] imported/w3c/web-platform-tests/resource-timing/resource_timing.worker.html is a flakey text failure
https://bugs.webkit.org/show_bug.cgi?id=223472

Unreviewed test gardening.

Patch by Eric Hutchison <Eric Hutchison> on 2021-07-02

  • platform/mac-wk1/TestExpectations: Removing obsolete failure expectation.
  • platform/mac/TestExpectations: Mark test as flaky.
9:05 AM Changeset in webkit [279506] by commit-queue@webkit.org
  • 5 edits in trunk/Source

[GTK] Add new revision variable in pkgconfig file
https://bugs.webkit.org/show_bug.cgi?id=227629

Patch by Philippe Normand <pnormand@igalia.com> on 2021-07-02
Reviewed by Michael Catanzaro.

Source/JavaScriptCore:

  • javascriptcoregtk.pc.in: Include SVN_REVISION as revision variable, useful for apps to

know on which upstream SVN revision their WebKitGTK-based app is built on.

Source/WebKit:

Include SVN_REVISION as revision variable, useful for apps to know on which upstream SVN
revision their WebKitGTK-based app is built on.

  • gtk/webkit2gtk-web-extension.pc.in:
  • gtk/webkit2gtk.pc.in:
8:38 AM Changeset in webkit [279505] by commit-queue@webkit.org
  • 4 edits in trunk

Unreviewed, reverting r279494.
https://bugs.webkit.org/show_bug.cgi?id=227628

Broke api test
TestWebKitAPI.WKWebView.LoadSimulatedRequestUpdatesBackForwardList

Reverted changeset:

"loadSimulatedRequest: should do same delegate callbacks as
loadHTMLString and loadData"
https://bugs.webkit.org/show_bug.cgi?id=227599
https://commits.webkit.org/r279494

8:28 AM Changeset in webkit [279504] by Alan Bujtas
  • 6 edits in trunk/Source/WebCore

[LFC][TFC] TableGrid::Column holds both the computed and the used width values
https://bugs.webkit.org/show_bug.cgi?id=227488

Reviewed by Antti Koivisto.

This patch cleans up TableGrid::Column interface to ensure we don't confused
the computed and the used widths for columns.
This is also in prepartion for adding mixed width type support.

  • layout/formattingContexts/table/TableFormattingContext.cpp:

(WebCore::Layout::TableFormattingContext::setUsedGeometryForCells):
(WebCore::Layout::TableFormattingContext::computedPreferredWidthForColumns):
(WebCore::Layout::TableFormattingContext::computeAndDistributeExtraSpace):

  • layout/formattingContexts/table/TableFormattingGeometry.cpp:

(WebCore::Layout::TableFormattingGeometry::horizontalSpaceForCellContent const):

  • layout/formattingContexts/table/TableGrid.cpp:

(WebCore::Layout::TableGrid::Column::setLogicalWidth): Deleted.
(WebCore::Layout::TableGrid::Column::logicalWidth const): Deleted.
(WebCore::Layout::TableGrid::Column::setLogicalLeft): Deleted.
(WebCore::Layout::TableGrid::Column::logicalLeft const): Deleted.

  • layout/formattingContexts/table/TableGrid.h:

(WebCore::Layout::TableGrid::Column::usedLogicalRight const):
(WebCore::Layout::TableGrid::Column::computedLogicalWidth const):
(WebCore::Layout::TableGrid::Columns::logicalWidth const):
(WebCore::Layout::TableGrid::Column::setComputedLogicalWidth):
(WebCore::Layout::TableGrid::Column::setUsedLogicalWidth):
(WebCore::Layout::TableGrid::Column::usedLogicalWidth const):
(WebCore::Layout::TableGrid::Column::setUsedLogicalLeft):
(WebCore::Layout::TableGrid::Column::usedLogicalLeft const):
(WebCore::Layout::TableGrid::Column::logicalRight const): Deleted.
(WebCore::Layout::TableGrid::Column::fixedWidth const): Deleted.
(WebCore::Layout::TableGrid::Column::percent const): Deleted.
(WebCore::Layout::TableGrid::Column::setFixedWidth): Deleted.
(WebCore::Layout::TableGrid::Column::setPercent): Deleted.

  • layout/formattingContexts/table/TableLayout.cpp:

(WebCore::Layout::TableFormattingContext::TableLayout::distributedHorizontalSpace):

7:45 AM Changeset in webkit [279503] by commit-queue@webkit.org
  • 7 edits
    4 deletes in trunk

Unreviewed, reverting r279487.
https://bugs.webkit.org/show_bug.cgi?id=227626

Added broken ios-wk2 test

Reverted changeset:

"WebAudio auto-play policy should come from top document"
https://bugs.webkit.org/show_bug.cgi?id=227593
https://commits.webkit.org/r279487

7:13 AM Changeset in webkit [279502] by Razvan Caliman
  • 8 edits in trunk

Web Inspector: Styles: should autocomplete var() and attr() values
https://bugs.webkit.org/show_bug.cgi?id=227098
<rdar://problem/79418247>

Reviewed by Devin Rousso.

Source/WebInspectorUI:

Add support for completion suggestions in the Styles details sidebar panel
for CSS Variables for use with var() and DOM node attributes for use with attr().

  • UserInterface/Models/CSSCompletions.js:

(WI.CSSCompletions.prototype.addValues):

  • UserInterface/Models/CSSKeywordCompletions.js:
  • UserInterface/Models/DOMNodeStyles.js:

(WI.DOMNodeStyles):
(WI.DOMNodeStyles.prototype.get allCSSVariables):
(WI.DOMNodeStyles.prototype._updateStyleCascade):
(WI.DOMNodeStyles.prototype._collectCSSVariables):

  • UserInterface/Views/SpreadsheetStyleProperty.js:

(WI.SpreadsheetStyleProperty.prototype.getFunctionValueCompletions):
(WI.SpreadsheetStyleProperty.prototype._valueCompletionDataProvider):

LayoutTests:

Add test cases for contextual CSS function value completion.

  • inspector/unit-tests/css-keyword-completions-expected.txt:
  • inspector/unit-tests/css-keyword-completions.html:
1:13 AM Changeset in webkit [279501] by graouts@webkit.org
  • 2 edits in trunk/Source/WebKit

REGRESSION (r279477): WebKit_iosmac failed to build in : ModelElementControllerCocoa.mm:58:24: member reference type 'WebKit::WebPageProxy' is not a pointer; did you mean to use '.'?
https://bugs.webkit.org/show_bug.cgi?id=227612
<rdar://problem/80054936>

Reviewed by Alan Bujtas.

  • UIProcess/Cocoa/ModelElementControllerCocoa.mm:

(WebKit::ModelElementController::takeModelElementFullscreen):

12:09 AM Changeset in webkit [279500] by youenn@apple.com
  • 2 edits in trunk/Source/WebCore

Make LocalSampleBufferDisplayLayer::requestNotificationWhenReadyForVideoData hop to main thread before hopping to processing thread
https://bugs.webkit.org/show_bug.cgi?id=227444
<rdar://79413368>

Reviewed by Chris Dumez.

It is safer to hop to main thread in requestNotificationWhenReadyForVideoData callback so that we can check weakThis safely.
When in main thread, hop to processing thread if LocalSampleBufferDisplayLayer is alive.

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

(WebCore::LocalSampleBufferDisplayLayer::~LocalSampleBufferDisplayLayer):
(WebCore::LocalSampleBufferDisplayLayer::requestNotificationWhenReadyForVideoData):

12:01 AM Changeset in webkit [279499] by calvaris@igalia.com
  • 4 edits in trunk

[GTK] media/event-attributes.html fails if mixer is not at 100%
https://bugs.webkit.org/show_bug.cgi?id=83704

Reviewed by Philippe Normand.

Tools:

  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::resetStateToConsistentValues): GStreamer
ports use fakesink to avoid sound output and setting the page
volume to 0 creates trouble with volume events. Let's avoid it in
GStreamer ports.

LayoutTests:

  • platform/glib/TestExpectations: Unflagged that test and other

that get fixed with this patch.

Jul 1, 2021:

11:37 PM Changeset in webkit [279498] by Darin Adler
  • 13 edits in trunk

CSS parser using a token for Unicode ranges, but recent CSS specification says it should not
https://bugs.webkit.org/show_bug.cgi?id=227569

Reviewed by Sam Weinig.

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-syntax/unicode-range-selector-expected.txt:
  • web-platform-tests/css/css-syntax/urange-parsing-expected.txt:

Expect passes instead of fails.

Source/WebCore:

Tests: imported/w3c/web-platform-tests/css/css-syntax/unicode-range-selector.html

imported/w3c/web-platform-tests/css/css-syntax/urange-parsing.html

  • css/parser/CSSParserToken.cpp:

(WebCore::CSSParserToken::CSSParserToken): Change the NumberToken constructor to
take a StringView so we can recover the original text if we need to parse it as
part of a Unicode range.
(WebCore::mergeIfAdjacent): Added. Helper used by convertToDimensionWithUnit.
(WebCore::CSSParserToken::convertToDimensionWithUnit): If the number token string
is adjacent to the dimension, then store the string containing both, so it can
be used if we need to parse it as part of a Unicode range. If the string is long,
then don't bother because a long string can't be part of such a range anyway. We
use 4 bits for the length, so can handle lengths in the range [1,15].
(WebCore::CSSParserToken::originalText const): Added. Used to recover the original
text for Unicode range parsing.
(WebCore::CSSParserToken::unitString const): Added. Used to get just the unit part
of the string for DimensionToken, since the full string now can include the number
as well in some cases (see above).
(WebCore::CSSParserToken::copyWithUpdatedString const): Changed the argument type
to StringView instead of using const& and added an assertion since this is only
safe if we are moving the backing characters, not changing the string contents.
(WebCore::CSSParserToken::valueDataCharRawEqual const): Deleted.
(WebCore::CSSParserToken::operator== const): Use StringView == operator instead of
our own valueDataCharRawEqual function. Also use unitString for DimensionToken.
(WebCore::CSSParserToken::serialize const): Use unitString for DimensionToken.

  • css/parser/CSSParserToken.h: Updated for the above. Also deleted

UnicodeRangeToken, unicodeRangeStart, unicodeRangeEnd, and m_unicodeRange.

  • css/parser/CSSPropertyParserHelpers.cpp:

(WebCore::CSSPropertyParserHelpers::consumeResolutionCSSPrimitiveValueWithKnownTokenTypeDimension):
Use unitString for DimensionToken.
(WebCore::CSSPropertyParserHelpers::parseHexColor): Ditto.

  • css/parser/CSSPropertyParserWorkerSafe.cpp:

(WebCore::CSSPropertyParserHelpersWorkerSafe::consumeOptionalDelimiter): Added.
(WebCore::CSSPropertyParserHelpersWorkerSafe::consumeIdentifier): Added.
(WebCore::CSSPropertyParserHelpersWorkerSafe::consumeAndAppendOptionalNumber): Added.
(WebCore::CSSPropertyParserHelpersWorkerSafe::consumeAndAppendOptionalDelimiter): Added.
(WebCore::CSSPropertyParserHelpersWorkerSafe::consumeAndAppendOptionalQuestionMarks): Added.
(WebCore::CSSPropertyParserHelpersWorkerSafe::consumeUnicodeRangeString): Added.
(WebCore::CSSPropertyParserHelpersWorkerSafe::consumeUnicodeRange): Added. Along with the
functions above, this implements the CSS specification's algorithm for consuming a Unicode
range, based on existing tokens without requiring a <urange> token.
(WebCore::CSSPropertyParserHelpersWorkerSafe::consumeFontFaceUnicodeRange): Call
the new consumeUnicodeRange function from this file instead of the old one that
depended on a <urange> token. Also refactored to use auto and to do the validity
check for the range as specified.

  • css/parser/CSSSelectorParser.cpp:

(WebCore::consumeANPlusB): Use unitString for DimensionToken.

  • css/parser/CSSTokenizer.cpp:

(WebCore::CSSTokenizer::letterU): Deleted.
(WebCore::CSSTokenizer::consumeNumber): Added code to pass in the original text
when constructing a NumberToken.
(WebCore::CSSTokenizer::consumeUnicodeRange): Deleted.

  • css/parser/CSSTokenizer.h: Deleted consumeUnicodeRange.
  • css/parser/SizesCalcParser.cpp:

(WebCore::SizesCalcParser::calcToReversePolishNotation): Removed case for
UnicodeRangeToken.

  • dom/ConstantPropertyMap.cpp:

(WebCore::variableDataForPositivePixelLength): Pass a null StringView for the
original text when constructing a NumberToken. This is OK for now since this token
won't ever be parsed as part of a Unicode range, and we can change it if we ever
need to support originalText for any other cases.
(WebCore::variableDataForPositiveDuration): Ditto.

11:01 PM Changeset in webkit [279497] by Ben Nham
  • 9 edits in trunk/Source

Unreviewed, reverting r279172.

Broke WebGL context construction on some devices.

Reverted changeset:

"rAF driven WebGL submits excessive amount of GPU work when frames are slow"
https://bugs.webkit.org/show_bug.cgi?id=227059
https://commits.webkit.org/r279172

9:05 PM Changeset in webkit [279496] by Jonathan Bedard
  • 4 edits in trunk/Tools

[run-webkit-tests] Set software_variant from runtime
https://bugs.webkit.org/show_bug.cgi?id=227600
<rdar://problem/80052263>

Reviewed by Stephanie Lewis.

  • Scripts/webkitpy/xcode/device_type.py:

(DeviceType._define_software_variant_from_hardware_family):
(DeviceType.check_consistency):
(DeviceType.contains):

  • Scripts/webkitpy/xcode/device_type_unittest.py:

(DeviceTypeTest.test_from_string):
(DeviceTypeTest.test_contained_in):

  • Scripts/webkitpy/xcode/simulated_device.py:

(SimulatedDeviceManager._create_device_with_runtime):

8:14 PM Changeset in webkit [279495] by Chris Dumez
  • 9 edits in trunk/Source

[macOS] Suspend WebProcesses that are in the process cache
https://bugs.webkit.org/show_bug.cgi?id=227269

Reviewed by Geoffrey Garen.

Suspend WebProcesses that are in the process cache on macOS to make sure they use no CPU.

  • UIProcess/WebProcessProxy.cpp:

(WebKit::WebProcessProxy::setIsInProcessCache):
(WebKit::WebProcessProxy::platformSuspendProcess):
(WebKit::WebProcessProxy::platformResumeProcess):

  • UIProcess/WebProcessProxy.h:
  • UIProcess/mac/WebProcessProxyMac.mm:

(WebKit::WebProcessProxy::platformSuspendProcess):
(WebKit::WebProcessProxy::platformResumeProcess):

  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::setIsInProcessCache):

  • WebProcess/WebProcess.h:
  • WebProcess/WebProcess.messages.in:
6:45 PM Changeset in webkit [279494] by commit-queue@webkit.org
  • 4 edits in trunk

loadSimulatedRequest: should do same delegate callbacks as loadHTMLString and loadData
https://bugs.webkit.org/show_bug.cgi?id=227599

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

Source/WebKit:

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::loadSimulatedRequestAndResponse):

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/WKWebViewLoadAPIs.mm:

(TEST):

6:36 PM Changeset in webkit [279493] by Patrick Angle
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: [Regression: r279271] Sources: Breakpoints section in navigation sidebar disappears when Web Inspector becomes taller than 650px
https://bugs.webkit.org/show_bug.cgi?id=227597

Reviewed by Devin Rousso.

As of r279271, flex base size is no longer clamped by max-height. As a result the non-clamped element
(resources-container) was sized to the full height of the container, leaving no space for the other sections
to be shown. Removing the height: 100%; declaration resolves this by allowing the flex container to lay out
its children as needed. Because the resources container has no maximum height constraint, it still occupies the
remaining height of the container. Each container will also continue to shrink/grow at their prescribed ratio
just as they did before r279271.

  • UserInterface/Views/SourcesNavigationSidebarPanel.css:

(@media (min-height: 650px) .sidebar > .panel.navigation.sources > .content > :matches(.call-stack-container, .breakpoints-container, .resources-container, .local-overrides-container)):

6:08 PM Changeset in webkit [279492] by Jean-Yves Avenard
  • 5 edits
    8 adds in trunk

[Cocoa] Last few seconds of 'audio/webm; codecs=vorbis' appended to a SampleBuffer are not played
https://bugs.webkit.org/show_bug.cgi?id=226069
Source/WebCore:

rdar://79951528

Reviewed by Jer Noble.

Source/WebCore:

When parsing samples from a WebM file, the samples emitted by the parser can be very short in
duration, which is ineffecient both in storage costs in our SampleMap, as well as in decoding
CPU costs, as each sample must be fed into the decoder separately. So the parser will group
together these small samples into a larger "meta sample" with a duration no shorter than 2s.

However, at the end of a file, no more sample data will be appended, up to 2s of audio data
will not be emitted from the parser.

At the end of an append, always flush audio track data to ensure that all parsed samples are
emitted, regardless of their collective duration.

Drive-by Fixes:

  • The logic to handle a partial frame was incorrect. libwebm will always progress and call

Callback's OnFrame even with partial content as soon as the frame size has been determined.
bytesRemaining actually contains how many bytes there are available to read and that the
Callback should attempt to fetch.
The Callback should then return Status::kOkPartial if the full frame hasn't been seen yet
or Status::kOkCompleted if it has. kWouldBlock indicates that we do not have information to
read. kOkPartial and kWouldBlock indicates that libwebm should
retry later to complete the current frame. All other codes indicate an error.

  • createSampleBuffer() would use the entire m_packetsData to create a CMSampleBuffer, even if partial

data was read but not yet complete. Only use the fully parsed data to create the CMSampleBuffer.
When the fully parsed packets are removed from packetsData; adjust the offset of the start of the
current partial data (this was the primary cause for bug 227499 that caused the first backout)

  • consumeFrameData() would only increase the size of m_packetsData when m_currentPacketSize was

unset, which would leave the buffer zeroed when partial sample data was present. Always grow
m_packetsData to be large enough to receive the read data.

  • The Read() method would not return the correct number of bytes read (0) when a null destination

buffer was passed in.

  • Bug 227382 - SourceBufferParserWebM::StreamingVectorReader Read() returns an incorrect value

for numActuallyRead when moving to the next segment.

Test: media/media-source/media-vorbis-partial.html

media/media-source/media-opus-partial.html

  • platform/graphics/cocoa/SourceBufferParserWebM.cpp:

(WebCore::SourceBufferParserWebM::appendData):
(WebCore::SourceBufferParserWebM::VideoTrackData::consumeFrameData):
(WebCore::SourceBufferParserWebM::VideoTrackData::createSampleBuffer):
(WebCore::SourceBufferParserWebM::AudioTrackData::consumeFrameData):
(WebCore::SourceBufferParserWebM::AudioTrackData::createSampleBuffer):

  • platform/graphics/cocoa/SourceBufferParserWebM.h: Rename some members to better indicate what

they contain. Move some members to the base class as they are always used by Video and Audio.

LayoutTests:

  • platform/mac/TestExpectations:
  • media/media-source/content/test-vorbis-manifest.json: Added.
  • media/media-source/content/test-vorbis.webm: Added.
  • media/media-source/content/test-opus-manifest.json: Added.
  • media/media-source/content/test-opus.webm: Added.
  • media/media-source/media-vorbis-partial-expected.txt: Added.
  • media/media-source/media-vorbis-partial.html: Added.
  • media/media-source/media-opus-partial-expected.txt: Added.
  • media/media-source/media-opus-partial.html: Added.

LayoutTests:

Reviewed by Jer Noble.

  • media/media-source/content/test-vorbis-manifest.json: Added.
  • media/media-source/media-vorbis-partial-expected.txt: Added.
  • media/media-source/content/test-vorbis.webm: Added.
  • media/media-source/content/test-opus-manifest.json: Added.
  • media/media-source/media-opus-partial-expected.txt: Added.
  • media/media-source/media-opus-partial.html: Added.
  • media/media-source/content/test-opus.webm: Added.
  • media/media-source/media-vorbis-partial.html: Added.
6:07 PM Changeset in webkit [279491] by wilander@apple.com
  • 5 edits
    3 moves in trunk/Source/WebCore

PCM: Change import from CryptoKitCBridging to CryptoKitPrivate
https://bugs.webkit.org/show_bug.cgi?id=227556
<rdar://79992592>

Reviewed by Alex Christensen.

Source/WebCore:

No new tests since no functionality is changed.

  • loader/cocoa/PrivateClickMeasurementCocoa.mm:

Changed import from CryptoKitCBridgingSoftLink.h to CryptoKitPrivateSoftLink.h.

Source/WebCore/PAL:

  • PAL.xcodeproj/project.pbxproj:
  • pal/PlatformMac.cmake:
  • pal/cocoa/CryptoKitPrivateSoftLink.h: Renamed from Source/WebCore/PAL/pal/cocoa/CryptoKitCBridgingSoftLink.h.
  • pal/cocoa/CryptoKitPrivateSoftLink.mm: Renamed from Source/WebCore/PAL/pal/cocoa/CryptoKitCBridgingSoftLink.mm.
  • pal/spi/cocoa/CryptoKitPrivateSPI.h: Renamed from Source/WebCore/PAL/pal/spi/cocoa/CryptoKitCBridgingSPI.h.
6:03 PM Changeset in webkit [279490] by commit-queue@webkit.org
  • 4 edits in trunk

Align beacon CORS mode with Chrome and Firefox
https://bugs.webkit.org/show_bug.cgi?id=227590

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

LayoutTests/imported/w3c:

  • web-platform-tests/beacon/beacon-cors.https.window-expected.txt:

Source/WebCore:

This follows https://w3c.github.io/beacon/#sec-processing-model step 6.3.
Now we pass a WPT test that Chrome and Firefox already passed.

  • Modules/beacon/NavigatorBeacon.cpp:

(WebCore::NavigatorBeacon::sendBeacon):

5:22 PM Changeset in webkit [279489] by Amir Mark Jr.
  • 5 edits in trunk/Source/WebCore

Unreviewed, reverting r279481.

Broke a pre-existing test

Reverted changeset:

"Move BottomControlsBarHeight and InsideMargin to be computed
at runtime"
https://bugs.webkit.org/show_bug.cgi?id=227505
https://commits.webkit.org/r279481

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

[webkitscmpy] Cache identifiers in Git checkouts (Follow-up fix)
https://bugs.webkit.org/show_bug.cgi?id=225616
<rdar://problem/77789230>

Reviewed by Dewei Zhu.

Python 2's Subprocess is 10x slower than Python 3, which means generating
the cache is impractical in Python 2.

  • Scripts/libraries/webkitscmpy/webkitscmpy/local/git.py:

(Git.init): Disable cache on Python 2 by default.

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

(test_cache): Force Git to use cache.
(test_revision_cache): Ditto.

5:08 PM Changeset in webkit [279487] by eric.carlson@apple.com
  • 7 edits
    4 adds in trunk

WebAudio auto-play policy should come from top document
https://bugs.webkit.org/show_bug.cgi?id=227593
rdar://76920375

Reviewed by Chris Dumez.

Source/WebCore:

Tests: media/auto-play-video-in-about-blank-iframe.html

media/auto-play-web-audio-in-about-blank-iframe.html

  • Modules/webaudio/AudioContext.cpp:

(WebCore::AudioContext::constructCommon): Get auto-play policy from document()->topDocument().

  • testing/Internals.cpp:

(WebCore::Internals::setDocumentAutoplayPolicy): New method to test auto-play policy.

  • testing/Internals.h:
  • testing/Internals.idl:

LayoutTests:

  • media/auto-play-video-in-about-blank-iframe-expected.txt: Added.
  • media/auto-play-video-in-about-blank-iframe.html: Added.
  • media/auto-play-web-audio-in-about-blank-iframe-expected.txt: Added.
  • media/auto-play-web-audio-in-about-blank-iframe.html: Added.
  • media/video-test.js:

(waitForEventWithTimeout): Return event.

4:57 PM Changeset in webkit [279486] by Ryan Haddad
  • 3 edits in trunk/Tools

[clean-webkit] Exclude autoinstalled directory
https://bugs.webkit.org/show_bug.cgi?id=227588
<rdar://problem/80033943>

Patch by Jonathan Bedard <Jonathan Bedard> on 2021-07-01
Reviewed by Alexey Proskuryakov.

  • Scripts/webkitpy/common/checkout/scm/scm.py:

(SCM.discard_untracked_files): Never discard the autoinstalled directory.

2:53 PM Changeset in webkit [279485] by Cameron McCormack
  • 2 edits
    2 copies
    7 moves
    8 adds
    1 delete in trunk/LayoutTests

Move some Mac MathML test expectation files around
https://bugs.webkit.org/show_bug.cgi?id=227520
<rdar://79749198>

Reviewed by Frédéric Wang.

This should make it so that the same test expectation files are used
for Monterey as for Big Sur, without needing to add Monterey-specific
files.

  • platform/mac-mojave-wk1/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/mo-minsize-maxsize-001-expected.txt: Renamed from LayoutTests/platform/mac-bigsur-wk1/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/mo-minsize-maxsize-001-expected.txt.
  • platform/mac-mojave-wk1/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-combining-expected.txt: Copied from LayoutTests/platform/mac-bigsur-wk1/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-combining-expected.txt.
  • platform/mac-mojave-wk1/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-stretchy-001-expected.txt: Renamed from LayoutTests/platform/mac-bigsur-wk1/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-stretchy-001-expected.txt.
  • platform/mac-mojave-wk1/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-stretchy-002-expected.txt: Renamed from LayoutTests/platform/mac-bigsur-wk1/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-stretchy-002-expected.txt.
  • platform/mac-mojave-wk1/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-symmetric-001-expected.txt: Renamed from LayoutTests/platform/mac-bigsur-wk1/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-symmetric-001-expected.txt.
  • platform/mac-mojave-wk1/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-symmetric-005-expected.txt: Renamed from LayoutTests/platform/mac-bigsur-wk1/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-symmetric-005-expected.txt.
  • platform/mac-mojave-wk1/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-symmetric-006-expected.txt: Renamed from LayoutTests/platform/mac-bigsur-wk1/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-symmetric-006-expected.txt.
  • platform/mac-mojave-wk1/imported/w3c/web-platform-tests/mathml/relations/css-styling/padding-border-margin/border-002-expected.txt: Renamed from LayoutTests/platform/mac-bigsur-wk1/imported/w3c/web-platform-tests/mathml/relations/css-styling/padding-border-margin/border-002-expected.txt.
  • platform/mac/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-combining-expected.txt: Renamed from LayoutTests/platform/mac-bigsur-wk1/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-combining-expected.txt.
  • platform/mac/imported/w3c/web-platform-tests/mathml/relations/css-styling/padding-border-margin/border-002-expected.txt:
2:32 PM Changeset in webkit [279484] by Russell Epstein
  • 8 edits in branches/safari-612.1.21-branch/Source

Versioning.

WebKit-7612.1.21.2

1:56 PM Changeset in webkit [279483] by youenn@apple.com
  • 20 edits
    1 add in trunk/Source

Disable relay for UDP sockets when not needed
https://bugs.webkit.org/show_bug.cgi?id=227253
Source/WebCore:

Reviewed by Eric Carlson.

  • Modules/mediastream/PeerConnectionBackend.h:

(WebCore::PeerConnectionBackend::shouldFilterICECandidates const):

  • Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.cpp:

(WebCore::LibWebRTCMediaEndpoint::setConfiguration):

  • Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.h:

(WebCore::LibWebRTCMediaEndpoint::rtcSocketFactory):

  • Modules/mediastream/libwebrtc/LibWebRTCPeerConnectionBackend.cpp:

(WebCore::LibWebRTCPeerConnectionBackend::disableICECandidateFiltering):

  • Modules/mediastream/libwebrtc/LibWebRTCPeerConnectionBackend.h:
  • platform/mediastream/libwebrtc/LibWebRTCProvider.h:

Source/WebKit:

Reviewed by Eric Carlson.

  • NetworkProcess/webrtc/NetworkRTCProvider.cpp:

(WebKit::NetworkRTCProvider::createUDPSocket):

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

(WebKit::NetworkRTCUDPSocketCocoaConnections::create):
(WebKit::NetworkRTCUDPSocketCocoa::createUDPSocket):
(WebKit::NetworkRTCUDPSocketCocoa::NetworkRTCUDPSocketCocoa):
(WebKit::NetworkRTCUDPSocketCocoaConnections::NetworkRTCUDPSocketCocoaConnections):
(WebKit::NetworkRTCUDPSocketCocoaConnections::createNWConnection):

  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/Network/webrtc/LibWebRTCProvider.cpp:

(WebKit::RTCSocketFactory::RTCSocketFactory):
(WebKit::RTCSocketFactory::CreateUdpSocket):
(WebKit::LibWebRTCProvider::createSocketFactory):

  • WebProcess/Network/webrtc/LibWebRTCProvider.h:
  • WebProcess/Network/webrtc/LibWebRTCSocketFactory.cpp:

(WebKit::LibWebRTCSocketFactory::createUdpSocket):

  • WebProcess/Network/webrtc/LibWebRTCSocketFactory.h:

Source/WTF:

<rdar://problem/79912154>

Reviewed by Eric Carlson.

  • wtf/PlatformHave.h:

Add a macro for new NW methods.

1:46 PM Changeset in webkit [279482] by Jonathan Bedard
  • 2 edits in trunk/Tools

[clean-webkit] Exclude autoinstalled directory
https://bugs.webkit.org/show_bug.cgi?id=227588
<rdar://problem/80033943>

Reviewed by Alexey Proskuryakov.

  • Scripts/webkitpy/common/checkout/scm/scm.py:

(SCM.discard_untracked_files): Never discard the autoinstalled directory.

1:28 PM Changeset in webkit [279481] by dino@apple.com
  • 5 edits in trunk/Source/WebCore

Move BottomControlsBarHeight and InsideMargin to be computed at runtime
https://bugs.webkit.org/show_bug.cgi?id=227505
<rdar://problem/79932256>

Reviewed by Devin Rousso.

Rather than having two JS constants that have to be kept in sync
with CSS, simply retrieve the value from the computed style.

No change in behaviour.

  • Modules/modern-media-controls/controls/inline-media-controls.js:

(InlineMediaControls.prototype.layout):

  • Modules/modern-media-controls/controls/media-controls.css:

(:host(audio), :host(video.media-document.audio), *):

  • Modules/modern-media-controls/controls/layout-node.js: Add two helpers to

retrive computed style values.

1:22 PM Changeset in webkit [279480] by beidson@apple.com
  • 3 edits in trunk/Source/WebCore

HIDGamepadProvider adds an extra 50ms to all inputs
<rdar://70315838> and https://bugs.webkit.org/show_bug.cgi?id=217742

Reviewed by Alex Christensen.

No new tests.
Tried to write an API test to drive inputs in the delay range, but that was way too fragile
on a local developer machine, much less a bot that's under load.

These input delays were an early best-effort to get input to line up with RaF, which the spec
mentions as a goal.

Not sure how 50 slipped in for HID, vs the 16 on GCF.

Whether or not lining up perfectly with RaF is actually a useful goal, in the meantime driving
input as quickly as possible seems much more desirable.

We still want to coalesce multiple close together inputs into 1 logical event to smooth out jitter
with certain devices, and reduce IPC and DOM object churn during rapid input (or with buggy devices).

In testing with what I have on my desk, using a true 0-delay timer for that was not desirable.

But 1ms seems peachy keen.

  • platform/gamepad/cocoa/GameControllerGamepadProvider.mm:
  • platform/gamepad/mac/HIDGamepadProvider.mm:
1:22 PM Changeset in webkit [279479] by Wenson Hsieh
  • 12 edits
    1 add in trunk

Selecting or dragging images that contain recognizable text is difficult in Mail compose
https://bugs.webkit.org/show_bug.cgi?id=227544

Reviewed by Devin Rousso.

Source/WebKit:

Long pressing images in editable content on iOS initiates dragging, and a tap-and-half gesture over the image
selects the entire image. Both of these are common interactions for image attachments in Mail compose that
take precedence over new Live Text interactions, so there's no advantage to triggering image analysis on images
in editable content.

Avoid doing this extra work by adjusting -imageAnalysisGestureDidBegin: to bail early if the image is inside
editable content.

Tests: ImageAnalysisTests.DoNotAnalyzeImagesInEditableContent

ImageAnalysisTests.HandleImageAnalyzerError

  • Shared/ios/InteractionInformationAtPosition.h:
  • Shared/ios/InteractionInformationAtPosition.mm:

(WebKit::InteractionInformationAtPosition::encode const):
(WebKit::InteractionInformationAtPosition::decode):

Add an isContentEditable flag.

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

(-[WKWebView _imageAnalysisGestureRecognizer]):

Add a testing hook to return the gesture recognizer used to trigger image analysis.

  • UIProcess/ios/WKContentViewInteraction.h:
  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView imageAnalysisGestureRecognizer]):
(-[WKContentView imageAnalysisGestureDidBegin:]):

Pull logic for avoiding image analysis out into a separate lambda, and add a check for isContentEditable.

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::positionInformation):

Populate the isContentEditable flag based on whether or not the node found by the position information request
is editable.

Tools:

See WebKit/ChangeLog for more details.

  • TestWebKitAPI/Configurations/TestWebKitAPI.xcconfig:

Link against VisionKitCore on iOS 15+ and macOS 12+.

  • TestWebKitAPI/Configurations/WebKitTargetConditionals.xcconfig:

Update WebKitTargetConditionals to be consistent with the other target conditions in WebKit, so that we can use
IOS_SINCE_15 in TestWebKitAPI.xcconfig.

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKitCocoa/ImageAnalysisTests.mm: Added.

Add new API tests that trigger the image analysis gesture recognizer and check whether or not we requested image
analysis from VisionKit.

(TestWebKitAPI::swizzledLocationInView):
(TestWebKitAPI::swizzledProcessRequest):

12:59 PM Changeset in webkit [279478] by dino@apple.com
  • 3 edits in trunk/Source/WebCore

Add a layoutTrait for an additional controls scale factor
https://bugs.webkit.org/show_bug.cgi?id=227561
<rdar://problem/79997951>

Reviewed by Anders Carlsson.

Allow controls with different layout traits to apply
a scale factor to their buttons.

No change in behaviour.

  • Modules/modern-media-controls/controls/button.js:

(Button.prototype._updateImageMetrics):
(Button):

  • Modules/modern-media-controls/controls/layout-traits.js:

(LayoutTraits.prototype.additionalControlScaleFactor):
(LayoutTraits):

12:37 PM Changeset in webkit [279477] by graouts@webkit.org
  • 31 edits in trunk/Source

[Model] Restrict IPC calls to ARKit SPI availability and runtime flag
https://bugs.webkit.org/show_bug.cgi?id=227581

Reviewed by Tim Horton.

Source/WebCore:

Guard all IPC calls related to <model> by the most appropriate platform-specific flag
and also ensure that those calls don't do anything unless the runtime flag is also
enabled.

  • Modules/model-element/HTMLModelElement.cpp:
  • Modules/model-element/HTMLModelElement.h:
  • Modules/model-element/HTMLModelElementCocoa.mm:

(WebCore::HTMLModelElement::inlinePreviewDidObtainContextId):

  • loader/EmptyClients.cpp:

(WebCore::EmptyChromeClient::modelElementDidCreatePreview const):

  • loader/EmptyClients.h:
  • page/ChromeClient.h:

Source/WebKit:

Guard all IPC calls related to <model> by the most appropriate platform-specific flag
and also ensure that those calls don't do anything unless the runtime flag is also
enabled.

  • Shared/WebProcessDataStoreParameters.h:

(WebKit::WebProcessDataStoreParameters::encode const):
(WebKit::WebProcessDataStoreParameters::decode):

  • UIProcess/Cocoa/ModelElementControllerCocoa.mm:

(WebKit::ModelElementController::takeModelElementFullscreen):
(WebKit::ModelElementController::modelElementDidCreatePreview):

  • UIProcess/ModelElementController.cpp:
  • UIProcess/ModelElementController.h:
  • UIProcess/PageClient.h:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::didAttachToRunningProcess):
(WebKit::WebPageProxy::resetState):
(WebKit::WebPageProxy::takeModelElementFullscreen):
(WebKit::WebPageProxy::modelElementDidCreatePreview):
(WebKit::WebPageProxy::modelElementPreviewDidObtainContextId):

  • UIProcess/WebPageProxy.h:
  • UIProcess/WebPageProxy.messages.in:
  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::webProcessDataStoreParameters):

  • UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm:
  • UIProcess/WebsiteData/WebsiteDataStore.cpp:

(WebKit::WebsiteDataStore::resolveDirectoriesIfNecessary):

  • UIProcess/WebsiteData/WebsiteDataStore.h:
  • UIProcess/WebsiteData/WebsiteDataStoreConfiguration.cpp:

(WebKit::WebsiteDataStoreConfiguration::WebsiteDataStoreConfiguration):
(WebKit::WebsiteDataStoreConfiguration::copy const):

  • UIProcess/WebsiteData/WebsiteDataStoreConfiguration.h:
  • WebProcess/WebCoreSupport/WebChromeClient.cpp:

(WebKit::WebChromeClient::modelElementDidCreatePreview const):

  • WebProcess/WebCoreSupport/WebChromeClient.h:
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::modelElementPreviewDidObtainContextId):

  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/WebPage.messages.in:
  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::setWebsiteDataStoreParameters):

  • WebProcess/cocoa/WebProcessCocoa.mm:

(WebKit::WebProcess::platformSetWebsiteDataStoreParameters):

Source/WTF:

Define a new compile-time flag when either of the iOS or macOS ARKit SPIs are available.

  • wtf/PlatformHave.h:
11:52 AM Changeset in webkit [279476] by pvollan@apple.com
  • 2 edits in trunk/Source/WebKit

[macOS] Fix sandbox violations related to IOKit filtering
https://bugs.webkit.org/show_bug.cgi?id=227572
<rdar://78354215>

Reviewed by Brent Fulgham.

  • WebProcess/com.apple.WebProcess.sb.in:
11:34 AM Changeset in webkit [279475] by Aditya Keerthi
  • 4 edits in trunk/Source

[iOS] <select> menus should scroll to the selected option
https://bugs.webkit.org/show_bug.cgi?id=227562
<rdar://problem/77887668>

Reviewed by Wenson Hsieh.

Source/WebKit:

Before iOS 15, <select> pickers were implemented using UIPickerView on
iPhone and UITableView on iPad. Both these views gave WebKit the ability
to scroll the view to the currently selected option.

In iOS 15, <select> options are displayed in a context menu. WebKit does
not have access to the menu's view hierarchy, and must rely on UIKit to
perform the scrolling behavior.

  • UIProcess/ios/forms/WKFormSelectPicker.mm:

(-[WKSelectPicker createMenu]):

Adopt UIMenuOptionsSingleSelection to obtain UIKit behaviors for popup menus.

Source/WTF:

  • wtf/PlatformHave.h:

Add HAVE(UIMENUOPTIONS_SINGLE_SELECTION).

11:24 AM Changeset in webkit [279474] by Ruben Turcios
  • 1 copy in tags/Safari-612.1.21.1

Tag Safari-612.1.21.1.

11:24 AM Changeset in webkit [279473] by commit-queue@webkit.org
  • 2 edits in trunk/Source/JavaScriptCore

Remove unnecessary canBeInternal invocations to mitigate the cost of potential unmatched patterns in B3LowerToAir
https://bugs.webkit.org/show_bug.cgi?id=227508

Patch by Yijia Huang <Yijia Huang> on 2021-07-01
Reviewed by Filip Pizlo.

The bit pattern doesn't cause worse code generation in the all-internals-are-captured
case. So, they don't need canBeInternal checks which might terminate potential matched
scenarios.

The equivalent pattern of SBFIZ is ((src << amount) >> amount) << lsb. Given the code:

a = x << C
b = a >> C
c = b << D

print(a)
print(b)
print(c)

The pattern won't match because of !canBeInternal for a and b (useCounts > 1).
So, this would emit three separate instructions. But if we removed canBeInternal,
it would still be just three separate instructions, and they wouldn't be any more
expensive. Suppose the print(b) is removed, above. Then, with the canBeInternal check,
it is emitting three instructions. Without the canBeInternal check, it would emit only
two (x << C and SBFIZ to compute c). And that would be less expensive.

  • b3/B3LowerToAir.cpp:
10:41 AM Changeset in webkit [279472] by youenn@apple.com
  • 13 edits in trunk

ReadableStream.getReader do not throw a proper exception when parameter is of wrong type
https://bugs.webkit.org/show_bug.cgi?id=226220
<rdar://problem/78711382>

Reviewed by Chris Dumez.

LayoutTests/imported/w3c:

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

Source/WebCore:

Covered by rebased tests.

  • Modules/streams/ReadableStream.js:

(getReader):
Tighten option parameter check.
In case mode is bad, fire a type error instead of range error.

LayoutTests:

  • streams/readable-stream-getReader-expected.txt:
  • streams/readable-stream-getReader.html:

Update test to match latest spec.

10:37 AM Changeset in webkit [279471] by youenn@apple.com
  • 2 edits in trunk/Source/ThirdParty/libwebrtc

Disable ABSL_HAVE_THREAD_LOCAL in libwebrtc
https://bugs.webkit.org/show_bug.cgi?id=227577
<rdar://79915864>

Reviewed by Eric Carlson.

We do no want to resort on thread local yet so disable ABSL_HAVE_THREAD_LOCAL until we can use it properly.

  • Source/third_party/abseil-cpp/absl/base/config.h:
10:25 AM Changeset in webkit [279470] by commit-queue@webkit.org
  • 8 edits in trunk/Source/JavaScriptCore

Add a new pattern to instruction selector to use EXTR supported by ARM64
https://bugs.webkit.org/show_bug.cgi?id=227171

Patch by Yijia Huang <Yijia Huang> on 2021-07-01
Reviewed by Robin Morisset.

This patch includes two modifications:

  1. Introduce a strength reduction rule to zero extend bitfield.
  2. Add Extract Register (EXTR) to Air opcode to serve instruction selector.

### Part A zero extend bitfield ###


A new strength reduction rule is added for the canonical form of the zero-extend
bitfield.

Turn this: ZShr(Shl(value, amount)), amount)
Into this: BitAnd(value, mask)

with constraints:

  1. 0 <= amount < datasize
  2. width = datasize - amount
  3. mask is !(mask & (mask + 1)) where bitCount(mask) == width

### Part B EXTR ###


Given instruction:
extr Rd, Rn, Rm, lowWidth

Extract register (EXTR) extracts a register from a pair of registers, where
concat = Rn:Rm and Rd = concat<lowWidth + datasize - 1:lowWidth>.

The equivalent pattern of this instruction is:

d = ((n & mask) << highWidth) | (m >> lowWidth)
highWidth = datasize - lowWidth
mask = (1 << lowWidth) - 1

Given B3 IR:
Int @0 = ArgumentReg(%x0)
Int @1 = ArgumentReg(%x1)
Int @2 = mask
Int @3 = BitAnd(@0, @2)
Int @4 = highWidth
Int @5 = Shl(@3, @4)
Int @6 = lowWidth
Int @7 = ZShr(@1, @6)
Int @8 = BitOr(@7, @5)
Void@9 = Return(@10, Terminal)

Before Adding BIC:
Old optimized AIR
InsertUnsignedBitfieldInZero %x0, highWidth, lowWidth, %x0, @5
Urshift %x1, lowWidth, %x1, @7
Or %x0, %x1, %x0, @8
Ret %x0, @9

After Adding BIC:
New optimized AIR
ExtractRegister %x0, %x1, lowWidth, %x0, @8
Ret %x0, @9

  • assembler/MacroAssemblerARM64.h:

(JSC::MacroAssemblerARM64::extractRegister32):
(JSC::MacroAssemblerARM64::extractRegister64):

  • assembler/testmasm.cpp:

(JSC::testExtractRegister32):
(JSC::testExtractRegister64):

  • b3/B3LowerToAir.cpp:
  • b3/B3ReduceStrength.cpp:
  • b3/air/AirOpcode.opcodes:
  • b3/testb3.h:
  • b3/testb3_2.cpp:

(testBitfieldZeroExtend32):
(testBitfieldZeroExtend64):
(testExtractRegister32):
(testExtractRegister64):
(addBitTests):

10:14 AM Changeset in webkit [279469] by Ruben Turcios
  • 8 edits in branches/safari-612.1.21-branch/Source

Versioning.

WebKit-7612.1.21.1

10:09 AM Changeset in webkit [279468] by Ruben Turcios
  • 3 edits in branches/safari-612.1.21-branch/Source/ThirdParty/ANGLE

Cherry-pick r279373. rdar://problem/80030448

ANGLE Metal primitive restart range computation could index with size_t
https://bugs.webkit.org/show_bug.cgi?id=227449

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

Make the calculateRestartRanges() a bit simpler in order
for it to be easier to understand.

  • src/libANGLE/renderer/metal/BufferMtl.h: (rx::IndexRange::IndexRange): Add documentation what the mtl::IndexRange is. Add constructor so that std::vector::emplace_back() works.
  • src/libANGLE/renderer/metal/BufferMtl.mm: (rx::calculateRestartRanges): Index with size_t to make it simpler to understand if the index overflows or not. Use reinterpret_cast in order to not accidentally cast away const from mtl::BufferRef::mapReadOnly(). Skip the non-marker elements with continue to avoid deep nesting. Give a name to the restart range marker value. Remove intermediate variable value = bufferData[i] as it is never used more than once. This simplifies the code as the do-while loop does not need to check the if condition as the loop ending condition already checks. Make the array a returned result instead of out variable.

(rx::BufferMtl::getRestartIndices):

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

10:08 AM Changeset in webkit [279467] by Amir Mark Jr.
  • 5 edits
    3 moves in trunk/Source/WebCore

Unreviewed, reverting r279452.

Broke MacOS build

Reverted changeset:

"PCM: Change import from CryptoKitCBridging to
CryptoKitPrivate"
https://bugs.webkit.org/show_bug.cgi?id=227556
https://commits.webkit.org/r279452

10:03 AM Changeset in webkit [279466] by Kyle Piddington
  • 2 edits in trunk/Source/ThirdParty/ANGLE

BabylonJS Under water demo is slower than it should be on Intel
https://bugs.webkit.org/show_bug.cgi?id=227226

Remove fastMath restriction on Intel
Removing fastmath in all scenarios leads to unacceptable performance on integrated graphics
Currently, webgl conformance tests and the Safari tests don't have any invariance tests that show invariance issues. deQP tests are similarly passing.
In Metal-ANGLE, gl_position and gl_fragcoord are valid attributes to be marked as invariant. All others will be ignored.

Reviewed by Kenneth Russell.

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

(GenMetalTraverser::emitPostQualifier):

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

(rx::mtl::CreateShaderLibrary):

9:34 AM Changeset in webkit [279465] by jer.noble@apple.com
  • 2 edits in trunk/Source/WebKit

[Mac] Adopt async GroupActivity.sessions() iterable instead of GroupSessionObserver
https://bugs.webkit.org/show_bug.cgi?id=227548
<rdar://78240035>

Reviewed by Sam Weinig.

Rather than adopting GroupSessionObserver, which requires Combine, GroupActivity.sessions()
uses AsyncSequence, a new Swift 5.5 feature, to allow clients to be notified that new
sessions are avaliable.

  • UIProcess/Cocoa/GroupActivities/WKGroupSession.swift:

(WKGroupSessionObserver.incomingSessionsTask):
(WKGroupSessionObserver.receivedSession(_:)):
(WKGroupSessionObserver.cancellables): Deleted.
(WKGroupSessionObserver.recievedSession(_:)): Deleted.

8:58 AM Changeset in webkit [279464] by youenn@apple.com
  • 3 edits in trunk/Source/WebKit

[Cocoa] Migrate WebRTC UDP socket handling to NW API
https://bugs.webkit.org/show_bug.cgi?id=227210
<rdar://problem/79859045>

Unreviewed, post commit fix.

  • NetworkProcess/webrtc/NetworkRTCUDPSocketCocoa.h:

(WTF::HashTraits<rtc::SocketAddress>::constructDeletedValue):
(WTF::HashTraits<rtc::SocketAddress>::isDeletedValue):
No need to set all deleted value slots, instead just rely on scope id being equal to numeric_limits<int>::min.
Also ensure we do not add an empty/deleted address to the map.

6:29 AM Changeset in webkit [279463] by Alan Bujtas
  • 6 edits
    2 adds in trunk

VisiblePosition::absoluteSelectionBoundsForLine fails on multiline vertical-rl content
https://bugs.webkit.org/show_bug.cgi?id=227543
<rdar://79887141>

Reviewed by Simon Fraser.

Source/WebCore:

absoluteSelectionBoundsForLine flips the line's logical rect for the writing mode (horizontal vs. vertical)
but not for the block flow direction (ltr vs. rtl).
This adjustment is very similar to what we do in absoluteCaretBounds (see absoluteBoundsForLocalCaretRect).

  • editing/VisiblePosition.cpp:

(WebCore::VisiblePosition::absoluteSelectionBoundsForLine const):

  • testing/Internals.cpp:

(WebCore::Internals::absoluteLineRectFromPoint):

  • testing/Internals.h:
  • testing/Internals.idl:

LayoutTests:

  • fast/inline/line-rect-from-point-expected.txt: Added.
  • fast/inline/line-rect-from-point.html: Added.
4:20 AM Changeset in webkit [279462] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebCore

REGRESSION(r278062): [Nicosia] Threaded rendering is broken since r278062
https://bugs.webkit.org/show_bug.cgi?id=227578

Reviewed by Žan Doberšek.

Since r278062 NicosiaCairoOperationRecorder is a GraphicsContext class, so we need to bring back things
previously done by the base class and chain up to base class save/restore and being/end transparency.

  • platform/graphics/nicosia/cairo/NicosiaCairoOperationRecorder.cpp:

(Nicosia::CairoOperationRecorder::fillPath):
(Nicosia::CairoOperationRecorder::strokePath):
(Nicosia::CairoOperationRecorder::drawLine):
(Nicosia::CairoOperationRecorder::drawLinesForText):
(Nicosia::CairoOperationRecorder::drawFocusRing):
(Nicosia::CairoOperationRecorder::save):
(Nicosia::CairoOperationRecorder::restore):
(Nicosia::CairoOperationRecorder::beginTransparencyLayer):
(Nicosia::CairoOperationRecorder::endTransparencyLayer):

3:37 AM Changeset in webkit [279461] by youenn@apple.com
  • 20 edits
    1 copy
    2 moves
    1 add in trunk

[Cocoa] Migrate WebRTC UDP socket handling to NW API
https://bugs.webkit.org/show_bug.cgi?id=227210
LayoutTests/imported/w3c:

Reviewed by Eric Carlson.

Rebasing tests as timing changes a bit.
This aligns with Chrome and Firefox behavior.

  • web-platform-tests/webrtc/no-media-call-expected.txt:
  • web-platform-tests/webrtc/promises-call-expected.txt:

Source/ThirdParty/libwebrtc:

Reviewed by Eric Carlson.

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

Source/WebCore:

Reviewed by Eric Carlson.

Add infrastructure to new experimental feature flag for NW backed UDP sockets.

  • page/RuntimeEnabledFeatures.h:

(WebCore::RuntimeEnabledFeatures::webRTCPlatformTCPSocketsEnabled const):
(WebCore::RuntimeEnabledFeatures::setWebRTCPlatformTCPSocketsEnabled):
(WebCore::RuntimeEnabledFeatures::webRTCPlatformUDPSocketsEnabled const):
(WebCore::RuntimeEnabledFeatures::setWebRTCPlatformUDPSocketsEnabled):

Source/WebKit:

Reviewed by Eric Carlson.

Migrate UDP socket handling from WebRTC physical socket server to nw API for Cocoa ports.

For each UDP socket opened, we open a nw_listener that will listen to inbound connections.
On inbound connection, we receive a nw_connection that we store in a address -> connection map.

Whenever sending a packet, we look at the remote address.
If needed, we create a nw_connection to that particular remote address and store it in the address -> connection map.
We then use the pre-existing or newly created nw_connection to send the packet.

Make sure to cancel NW connection in case of failure before releasing the socket.

Covered by existing tests

  • NetworkProcess/webrtc/NetworkRTCProvider.cpp:

(WebKit::NetworkRTCProvider::createUDPSocket):
(WebKit::NetworkRTCProvider::createClientTCPSocket):

  • NetworkProcess/webrtc/NetworkRTCProvider.h:

(WebKit::NetworkRTCProvider::setPlatformTCPSocketsEnabled):
(WebKit::NetworkRTCProvider::setPlatformUDPSocketsEnabled):

  • NetworkProcess/webrtc/NetworkRTCProvider.messages.in:
  • NetworkProcess/webrtc/NetworkRTCTCPSocketCocoa.h: Copied from Source/WebKit/NetworkProcess/webrtc/NetworkRTCSocketCocoa.h.
  • NetworkProcess/webrtc/NetworkRTCTCPSocketCocoa.mm: Renamed from Source/WebKit/NetworkProcess/webrtc/NetworkRTCSocketCocoa.mm.

(WebKit::tcpSocketQueue):
(WebKit::NetworkRTCTCPSocketCocoa::createClientTCPSocket):
(WebKit::NetworkRTCTCPSocketCocoa::NetworkRTCTCPSocketCocoa):
(WebKit::NetworkRTCTCPSocketCocoa::close):
(WebKit::NetworkRTCTCPSocketCocoa::setOption):
(WebKit::NetworkRTCTCPSocketCocoa::createMessageBuffer):
(WebKit::NetworkRTCTCPSocketCocoa::sendTo):

  • NetworkProcess/webrtc/NetworkRTCUDPSocketCocoa.h: Added.

(WTF::DefaultHash<rtc::SocketAddress>::hash):
(WTF::DefaultHash<rtc::SocketAddress>::equal):
(WTF::HashTraits<rtc::SocketAddress>::emptyValue):
(WTF::HashTraits<rtc::SocketAddress>::constructDeletedValue):
(WTF::HashTraits<rtc::SocketAddress>::isDeletedValue):

  • NetworkProcess/webrtc/NetworkRTCUDPSocketCocoa.mm: Added.

(WebKit::NetworkRTCUDPSocketCocoaConnections::create):
(WebKit::NetworkRTCUDPSocketCocoaConnections::WTF_GUARDED_BY_LOCK):
(WebKit::udpSocketQueue):
(WebKit::NetworkRTCUDPSocketCocoa::createUDPSocket):
(WebKit::NetworkRTCUDPSocketCocoa::NetworkRTCUDPSocketCocoa):
(WebKit::NetworkRTCUDPSocketCocoa::~NetworkRTCUDPSocketCocoa):
(WebKit::NetworkRTCUDPSocketCocoa::close):
(WebKit::NetworkRTCUDPSocketCocoa::setOption):
(WebKit::NetworkRTCUDPSocketCocoa::sendTo):
(WebKit::NetworkRTCUDPSocketCocoaConnections::NetworkRTCUDPSocketCocoaConnections):
(WebKit::NetworkRTCUDPSocketCocoaConnections::close):
(WebKit::NetworkRTCUDPSocketCocoaConnections::setOption):
(WebKit::processUDPData):
(WebKit::NetworkRTCUDPSocketCocoaConnections::createNWConnection):
(WebKit::NetworkRTCUDPSocketCocoaConnections::setupNWConnection):
(WebKit::NetworkRTCUDPSocketCocoaConnections::sendTo):

  • SourcesCocoa.txt:
  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/Network/webrtc/LibWebRTCSocketFactory.cpp:

(WebKit::LibWebRTCSocketFactory::setConnection):

Source/WTF:

Reviewed by Eric Carlson.

Add a new experimental flag for NW backed UDP sockets.

  • Scripts/Preferences/WebPreferencesExperimental.yaml:

LayoutTests:

<rdar://problem/79859045>

Reviewed by Eric Carlson.

  • platform/ios-simulator-wk2/TestExpectations:

Mark test as failed, as this test is using unsupported API (transport).

3:35 AM Changeset in webkit [279460] by Carlos Garcia Campos
  • 15 edits in trunk/Source

[Cairo] Simplify GraphicsContextCairo creation
https://bugs.webkit.org/show_bug.cgi?id=227575

Reviewed by Žan Doberšek.

Source/WebCore:

Remove the constructors taking a PlatformContextCairo and add two that receive a RefPtr<cairo_t>&& and
cairo_surface_t*. In both cases the PlatformContextCairo is created, so it's now always owned and callers don't
need to create it.

No change in behavior, covered by existing tests.

  • platform/graphics/cairo/GraphicsContextCairo.cpp:

(WebCore::GraphicsContextCairo::GraphicsContextCairo):
(WebCore::GraphicsContextCairo::drawLine):

  • platform/graphics/cairo/GraphicsContextCairo.h:
  • platform/graphics/cairo/ImageBufferCairoSurfaceBackend.cpp:

(WebCore::ImageBufferCairoSurfaceBackend::ImageBufferCairoSurfaceBackend):
(WebCore::ImageBufferCairoSurfaceBackend::context const):

  • platform/graphics/cairo/ImageBufferCairoSurfaceBackend.h:
  • platform/graphics/cairo/NativeImageCairo.cpp:
  • platform/graphics/cairo/PlatformContextCairo.cpp:

(WebCore::PlatformContextCairo::PlatformContextCairo):

  • platform/graphics/cairo/PlatformContextCairo.h:

(WebCore::PlatformContextCairo::cr const):
(WebCore::PlatformContextCairo::cr): Deleted.
(WebCore::PlatformContextCairo::setCr): Deleted.

  • platform/graphics/nicosia/cairo/NicosiaPaintingContextCairo.cpp:

(Nicosia::PaintingContextCairo::ForPainting::ForPainting):
(Nicosia::PaintingContextCairo::ForPainting::~ForPainting):
(Nicosia::PaintingContextCairo::ForPainting::replay):

  • platform/graphics/nicosia/cairo/NicosiaPaintingContextCairo.h:
  • platform/graphics/win/GraphicsContextCairoWin.cpp:

(WebCore::GraphicsContextCairo::GraphicsContextCairo):

  • platform/graphics/win/ImageCairoWin.cpp:

(WebCore::BitmapImage::getHBITMAPOfSize):

Source/WebKit:

Use the new GraphicsContextCairo constructors.

  • Shared/cairo/ShareableBitmapCairo.cpp:

(WebKit::ShareableBitmap::createGraphicsContext):

  • UIProcess/cairo/BackingStoreCairo.cpp:

(WebKit::BackingStore::incorporateUpdate):

3:19 AM Changeset in webkit [279459] by youenn@apple.com
  • 6 edits in trunk

RealtimeIncomingAudioSourceCocoa should support other sample rate than 48000
https://bugs.webkit.org/show_bug.cgi?id=227439

Reviewed by Eric Carlson.

Source/WebCore:

We reduced memory allocations by early allocating buffers for the most often used sample rate (48000), but this broke other sample rates, like for G722.
Make sure to update sample rate and buffers if it is not 48000.
Since the initial OnData call is often with a sample rate of 16000 and switches to 48000 after a few calls, early return for a few initial calls (20) or if sample rate is not 16000.
Covered by updated test.

  • platform/mediastream/mac/RealtimeIncomingAudioSourceCocoa.cpp:

(WebCore::RealtimeIncomingAudioSourceCocoa::OnData):

  • platform/mediastream/mac/RealtimeIncomingAudioSourceCocoa.h:

LayoutTests:

Improve test to validate received audio is not silence.

  • webrtc/audio-peer-connection-g722-expected.txt:
  • webrtc/audio-peer-connection-g722.html:
2:10 AM Changeset in webkit [279458] by ntim@apple.com
  • 2 edits in trunk/LayoutTests

Unreviewed, unskip web-platform-tests/html/semantics/interactive-elements/the-dialog-element/dialog-form-submission.html
https://bugs.webkit.org/show_bug.cgi?id=227574

This was unskipped in https://trac.webkit.org/changeset/279401/webkit, before it was (accidentally?) re-skipped
again in https://trac.webkit.org/changeset/279427/webkit.

2:03 AM Changeset in webkit [279457] by emilio
  • 10 edits in trunk

Support unprefixed :autofill pseudo-class.
https://bugs.webkit.org/show_bug.cgi?id=220459

Reviewed by Antti Koivisto.

LayoutTests/imported/w3c:

  • web-platform-tests/html/semantics/selectors/pseudo-classes/autofill-expected.txt: Test passes now

Source/WebCore:

Tests: web-platform-tests/html/semantics/selectors/pseudo-classes/autofill.html

  • css/CSSSelector.cpp:

(WebCore::CSSSelector::selectorText const):

  • css/SelectorPseudoClassAndCompatibilityElementMap.in:

LayoutTests:

  • fast/css/css-selector-text-expected.txt:
  • fast/css/css-selector-text.html:
  • fast/css/css-set-selector-text-expected.txt:
  • fast/css/css-set-selector-text.html:
1:45 AM Changeset in webkit [279456] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

[WPE] Pack Cog modules in built-product archive
https://bugs.webkit.org/show_bug.cgi?id=227527

Patch by Philippe Normand <pnormand@igalia.com> on 2021-07-01
Reviewed by Žan Doberšek.

  • CISupport/built-product-archive: Cog now ships its platform plugins in a dedicated modules

directory, which we need to include in the zip archive.

1:22 AM Changeset in webkit [279455] by ntim@apple.com
  • 4 edits in trunk/Source/WebCore

Change typedef EventSender<X> Y to using Y = EventSender<X>
https://bugs.webkit.org/show_bug.cgi?id=227570

Reviewed by Antti Koivisto.

This is for consistency with HTMLDialogElement.h, HTMLStyleElement.h and SVGSMILElement.h.

  • html/HTMLDetailsElement.h:
  • html/HTMLLinkElement.h:
  • loader/ImageLoader.h:
12:37 AM Changeset in webkit [279454] by ntim@apple.com
  • 2 edits
    2 copies
    1 delete in trunk/LayoutTests

Merge LayoutTests/imported/blink/fast/dom/HTMLDialogElement and LayoutTests/imported/blink/dialog
https://bugs.webkit.org/show_bug.cgi?id=227566

Reviewed by Antti Koivisto.

They're only one directory in the Chromium codebase: https://source.chromium.org/chromium/chromium/src/+/main:third_party/blink/web_tests/html/dialog/;drc=d154f7938274ffda2e51690404522117533be62a
Keep only LayoutTests/imported/blink/dialog.

  • TestExpectations:
  • imported/blink/dialog/dont-share-style-to-top-layer-expected.html: Renamed from LayoutTests/imported/blink/fast/dom/HTMLDialogElement/dont-share-style-to-top-layer-expected.html.
  • imported/blink/dialog/dont-share-style-to-top-layer.html: Renamed from LayoutTests/imported/blink/fast/dom/HTMLDialogElement/dont-share-style-to-top-layer.html.
12:07 AM Changeset in webkit [279453] by jer.noble@apple.com
  • 4 edits in trunk/Source

[Mac] (Re-)enable GroupActivities after upstreaming
https://bugs.webkit.org/show_bug.cgi?id=227546

Reviewed by Eric Carlson.

Source/WebKit:

Fix some build errors exposed by enabling GroupActivities.

  • UIProcess/Cocoa/GroupActivities/GroupActivitiesCoordinator.mm:

Source/WTF:

Add support for HAVE_GROUP_ACTIVITIES.

  • wtf/PlatformHave.h:
Note: See TracTimeline for information about the timeline view.