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

Timeline



Feb 23, 2021:

9:34 PM Changeset in webkit [273372] by weinig@apple.com
  • 5 edits in trunk/LayoutTests

Fix model test differences between platforms
https://bugs.webkit.org/show_bug.cgi?id=222323

Reviewed by Ryosuke Niwa.

  • model-element/model-element-renderer-no-source.html:
  • model-element/model-element-renderer.html:

Try to fix these on iOS by removing the doctype.

9:00 PM Changeset in webkit [273371] by msaboff@apple.com
  • 3 edits
    1 add in trunk

[YARR JIT] Crash on overflow when compiling /(a{1000000000}b{1000000000}|c{1000000000}|)d{1000000000}e{1000000000}/.test();
https://bugs.webkit.org/show_bug.cgi?id=220130

Reviewed by Yusuke Suzuki.

JSTests:

Modified the original fuzzer test to go 232-1.

  • stress/regexp-backtrack-offset-overflow.js: Added.

Source/JavaScriptCore:

Changed code to subtract out the offset of a current op before adding the offset
of the prior op when backtracking to avoid overflowing checked arithmetic.
It looks like the code had this wrong for some time.

  • yarr/YarrJIT.cpp:
8:03 PM Changeset in webkit [273370] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Fix model test differences between platforms
https://bugs.webkit.org/show_bug.cgi?id=222323

Unreviewed test gardening.

  • platform/ios/TestExpectations: Mark tests as failing until fix is reviewed & landed.
7:24 PM Changeset in webkit [273369] by Russell Epstein
  • 2 edits in branches/safari-612.1.5-branch/Source/WTF

Revert r273165. rdar://problem/74610383

6:41 PM Changeset in webkit [273368] by Devin Rousso
  • 3 edits in trunk/LayoutTests

[ macOS ] media/modern-media-controls/tracks-support/mac/tracks-support-show-panel-fullscreen.html is a flakey text failure
https://bugs.webkit.org/show_bug.cgi?id=222134
<rdar://problem/74494853>

Unreviewed, this is an identical change to r273357.

  • media/modern-media-controls/tracks-support/mac/tracks-support-show-panel-fullscreen.html:

Add a rAF+0s delay before attempting to hover the mute button to give it a chance to
"settle" after it becomes visible (based off of .getBoundingClientRect().width).

  • platform/mac/TestExpectations:
6:18 PM Changeset in webkit [273367] by Wenson Hsieh
  • 2 edits in trunk/Source/WebKit

[iOS] Add null checks for Node before accessing treeScope() in rangeForPointInRootViewCoordinates
https://bugs.webkit.org/show_bug.cgi?id=222338
<rdar://problem/72292289>

Reviewed by Tim Horton.

Add a null check for the hit test result's targetNode inside rangeForPointInRootViewCoordinates() to avoid
crashing in the case where the target node is null and either result <= selectionStart is false or
selectionEnd <= result is false.

Additionally, avoid a potential null deref on selectionStart.deepEquivalent().anchorNode() and
selectionEnd.deepEquivalent().anchorNode() by using Position::treeScope() (which null checks the anchor
node) instead of directly asking the anchor node.

Note that the call sites of rangeForPointInRootViewCoordinates() already handle a WTF::nullopt return value
gracefully, by skipping the selection update.

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::rangeForPointInRootViewCoordinates):

5:41 PM Changeset in webkit [273366] by Devin Rousso
  • 3 edits in trunk/LayoutTests

REGRESSION (r273004): [ macOS ] media/modern-media-controls/volume-support/volume-support-drag.html is a flakey text failure
https://bugs.webkit.org/show_bug.cgi?id=222117
<rdar://problem/74484639>

Unreviewed, this is an identical change to r273357.

  • media/modern-media-controls/volume-support/volume-support-drag.html:

Add a rAF+0s delay before attempting to hover the mute button to give it a chance to
"settle" after it becomes visible (based off of .getBoundingClientRect().width).

  • platform/mac/TestExpectations:
5:11 PM Changeset in webkit [273365] by Patrick Angle
  • 13 edits in trunk/Source

[Cocoa] Web Inspector: Add support for reloading the inspected page via _WKInspectorExtension
https://bugs.webkit.org/show_bug.cgi?id=222296

Reviewed by BJ Burg.

Source/WebInspectorUI:

Added support for reloading the inspected page, including ignoring the cache if desired, via
_WKInspectorExtension.

  • UserInterface/Controllers/WebInspectorExtensionController.js:

(WI.WebInspectorExtensionController.prototype.evaluateScriptForExtension):
(WI.WebInspectorExtensionController.prototype.reloadForExtension):
(WI.WebInspectorExtensionController):

  • UserInterface/Protocol/InspectorFrontendAPI.js:

(InspectorFrontendAPI.evaluateScriptForExtension):
(InspectorFrontendAPI.reloadForExtension):

Source/WebKit:

Added a new method to _WKInspectorExtension which is used to implement browser.devtools.inspectedWindow.reload
in the Web Extensions API.

  • UIProcess/API/APIInspectorExtension.cpp:

(API::InspectorExtension::reloadIgnoringCache):

  • UIProcess/API/APIInspectorExtension.h:
  • UIProcess/API/Cocoa/_WKInspectorExtension.h:
  • UIProcess/API/Cocoa/_WKInspectorExtension.mm:

(-[_WKInspectorExtension reloadIgnoringCache:userAgent:injectedScript:completionHandler:]):

  • UIProcess/Inspector/WebInspectorUIExtensionControllerProxy.cpp:

(WebKit::WebInspectorUIExtensionControllerProxy::reloadForExtension):

  • UIProcess/Inspector/WebInspectorUIExtensionControllerProxy.h:
  • WebProcess/Inspector/WebInspectorUIExtensionController.cpp:

(WebKit::WebInspectorUIExtensionController::reloadForExtension):

  • WebProcess/Inspector/WebInspectorUIExtensionController.h:
  • WebProcess/Inspector/WebInspectorUIExtensionController.messages.in:
5:05 PM Changeset in webkit [273364] by Ryan Haddad
  • 2 edits in branches/safari-611-branch/Tools

Cherry-pick r272167. rdar://problem/74668621

autoinstall.py: Don't use an XML parser to parse HTML
https://bugs.webkit.org/show_bug.cgi?id=221162

Reviewed by Jonathan Bedard.

Very recently autoinstall.py started failing becagse the page returned
by https://pypi.org/simple/fasteners/ now contains a <meta> tag, which
is not parseable as XML without the trailing slash.

Despite what an initial fix in r272041 stated, this is not caused by
invalid HTML: <meta> tags are not required to have an ending slash to
be standards compliant in any version of HTML.

This patch replaces that code to use an HTML parser instead of an XML
parser, making it more robust.

  • Scripts/libraries/webkitcorepy/webkitcorepy/autoinstall.py: (SimplyPypiIndexPageParser): (SimplyPypiIndexPageParser.init): (SimplyPypiIndexPageParser.handle_starttag): (SimplyPypiIndexPageParser.handle_data): (SimplyPypiIndexPageParser.handle_endtag): (SimplyPypiIndexPageParser.parse): (Package.archives):

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

5:05 PM Changeset in webkit [273363] by Ryan Haddad
  • 4 edits in branches/safari-611-branch/Tools

Cherry-pick r272041. rdar://problem/74668621

[webkitcrepy] Handle case where pypi serves invalid html
https://bugs.webkit.org/show_bug.cgi?id=221111
<rdar://problem/73728580>

Reviewed by David Kilzer.

  • Scripts/libraries/webkitcorepy/setup.py: Bump version number.
  • Scripts/libraries/webkitcorepy/webkitcorepy/init.py: Ditto.
  • Scripts/libraries/webkitcorepy/webkitcorepy/autoinstall.py: (Package.archives): Remove possibly invalid <meta> tag from html.

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

5:05 PM Changeset in webkit [273362] by Ryan Haddad
  • 3 edits
    2 adds in branches/safari-611-branch/Tools

Cherry-pick r271683. rdar://problem/74668621

[webkitcorepy] Add TaskPool
https://bugs.webkit.org/show_bug.cgi?id=220547
<rdar://problem/73043887>

Reviewed by Dewei Zhu.

The TaskPool object is a Python 3.8 compatible multiprocessing tool. Notable features are forwarding stdout,
stderr and logging to the parent process, exception propagation between processes, and graceful clean-up when
exceptions in the parent process are encountered

  • Scripts/libraries/webkitcorepy/webkitcorepy/init.py: Bump version, add tblib.
  • Scripts/libraries/webkitcorepy/webkitcorepy/task_pool.py: Added. (Message): Base class for message passed between processes. (Task): Message including function and arguments to that function. (Result): Return value of a task passed to the parent process. (Log): Pass log message from child process to parent process. (Print): Pass stdout or stderr line from child process to parent process. (State): Notify parent process that the child process has changed state. (ChildException): Pass exception and stack trace from (BiDirectionalQueue): Pair for multiprocess queues allowing for messages to be passed between processes. (Process): Scoping class managing child-process logic. (Process.LogHandler): Logging handler that passes log lines from the child process to it's parent. (Process.Stream): Writable stream which passes content from the child process to the standard out or error of that process's parent. (Process.handler): SIGTERM should prevent future processing but allow currently in-flight tasks to complete. (Process.main): Entry-point to child process. (TaskPool): Managing allocation of tasks to child processes and clean up those child processes. (TaskPool.Exception): Exception owned by TaskPool object. (TaskPool.init): (TaskPool.enter): (TaskPool.do): Pass task to child processes. (TaskPool.wait): Wait until all processes are completed. (TaskPool.exit): Teardown all child processes.
  • Scripts/libraries/webkitcorepy/webkitcorepy/tests/task_pool_unittest.py: Added. (setup): (teardown): (action): (log): (wait): (exception): (TaskPoolUnittest): (TaskPoolUnittest.test_single): (TaskPoolUnittest.test_multiple): (TaskPoolUnittest.test_callback): (TaskPoolUnittest.test_exception): (TaskPoolUnittest.test_setup): (TaskPoolUnittest.test_teardown): (TaskPoolUnittest.test_invalid_shutdown):

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

5:05 PM Changeset in webkit [273361] by Ryan Haddad
  • 2 edits in branches/safari-611-branch/Tools

Cherry-pick r271649. rdar://problem/74668621

[webkitcorepy] Support alternative default pypi url on macOS (Follow-up fix)
https://bugs.webkit.org/show_bug.cgi?id=220744
<rdar://problem/73369338>

Unreviewed follow-up fix.

  • Scripts/libraries/webkitcorepy/webkitcorepy/autoinstall.py: (_default_pypi_index): Ensure that "simple" is excluded from the pypi url.

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

5:05 PM Changeset in webkit [273360] by Ryan Haddad
  • 4 edits in branches/safari-611-branch/Tools

Cherry-pick r271630. rdar://problem/74668621

[webkitcorepy] Support alternative default pypi url on macOS
https://bugs.webkit.org/show_bug.cgi?id=220744
<rdar://problem/73369338>

Reviewed by Aakash Jain.

  • Scripts/libraries/webkitcorepy/setup.py: Bump version.
  • Scripts/libraries/webkitcorepy/webkitcorepy/init.py: Ditto.
  • Scripts/libraries/webkitcorepy/webkitcorepy/autoinstall.py: (_default_pypi_index): Pull default pypi index from pip.conf, if available. (AutoInstall): Set index based on result of _default_pypi_index.

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

5:02 PM Changeset in webkit [273359] by Brent Fulgham
  • 2 edits in trunk/Source/WebKit

[macOS] Allow additional syscall support in the sandbox
https://bugs.webkit.org/show_bug.cgi?id=222335
<rdar://74473824>

Reviewed by Per Arne Vollan.

Expand the WebContent process sandbox to allow SYS_open_dprotected_np

  • WebProcess/com.apple.WebProcess.sb.in:
4:26 PM Changeset in webkit [273358] by Jonathan Bedard
  • 3 edits in trunk/Tools

[check-webkit-style] Fix Contributor sorting in Python 3
https://bugs.webkit.org/show_bug.cgi?id=222329
<rdar://problem/74656667>

Reviewed by Dewei Zhu.

  • Scripts/webkitpy/common/config/committers.py:

(Contributor.cmp): Return an integer to indicate ordering.
(Contributor.eq): Add rich comparison operators for sorting.
(Contributor.ne): Ditto.
(Contributor.lt): Ditto.
(Contributor.le): Ditto.
(Contributor.gt): Ditto.
(Contributor.ge): Ditto.

  • Scripts/webkitpy/common/config/contributors.json:
4:26 PM Changeset in webkit [273357] by Devin Rousso
  • 2 edits in trunk/LayoutTests

REGRESSION: media/modern-media-controls/volume-support/volume-support-click.html is a flaky timeout
https://bugs.webkit.org/show_bug.cgi?id=222181
<rdar://problem/74527698>

Reviewed by Eric Carlson.

  • media/modern-media-controls/volume-support/volume-support-click.html:

Add a rAF+0s delay before attempting to hover the mute button to give it a chance to
"settle" after it becomes visible (based off of .getBoundingClientRect().width).

3:59 PM CommitQueue edited by aakash_jain@apple.com
(diff)
3:13 PM Changeset in webkit [273356] by Truitt Savell
  • 2 edits in trunk/LayoutTests

[ Big Sur Wk1 ] http/tests/security/http-0.9/default-port-script-blocked.html is flakey timing out
https://bugs.webkit.org/show_bug.cgi?id=221717

Unreviewed test gardening.

Patch by Robert Jenner <Robert Jenner> on 2021-02-23

  • platform/mac-wk1/TestExpectations:
2:56 PM Changeset in webkit [273355] by Truitt Savell
  • 3 edits in trunk/LayoutTests

[ macOS BigSur Wk2 ] compositing/video/video-border-radius-clipping.html is a flakey image failure
https://bugs.webkit.org/show_bug.cgi?id=222332

Unreviewed test gardening.

Patch by Robert Jenner <Robert Jenner> on 2021-02-23

  • platform/mac-wk2/TestExpectations: Added new test expectation to resolve issues with old expectation.
  • platform/mac/TestExpectations: Removed incorrect test expectation set as Pass Fail Timeout.
2:51 PM Changeset in webkit [273354] by Alan Coon
  • 2 edits in branches/safari-611-branch/Source/WebKit

Cherry-pick r272355. rdar://problem/74032694

ASSERTION FAILED: !size.isEmpty() under platformInitializeWebProcess

  • WebProcess/cocoa/WebProcessCocoa.mm: (WebKit::WebProcess::platformInitializeWebProcess): Follow-up to r272335; don't call IOSurface::setMaximumSize if the UI process did not send us a size. Caused all Web Content processes to assert in debug on launch.

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

2:51 PM Changeset in webkit [273353] by Alan Coon
  • 2 edits in branches/safari-611-branch/Source/JavaScriptCore

Cherry-pick r271767. rdar://problem/74409412

Obj-C API should do correct type checks when using a 32-bit address space
https://bugs.webkit.org/show_bug.cgi?id=220880
<rdar://72370334>

Reviewed by Tadeu Zagallo.

  • API/JSValue.mm: (-[JSValue isNull]): (-[JSValue isBoolean]): (-[JSValue isNumber]): (-[JSValue isString]):

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

2:51 PM Changeset in webkit [273352] by Alan Coon
  • 2 edits in branches/safari-611-branch/Source/JavaScriptCore

Cherry-pick r270719. rdar://problem/74409412

REGRESSION (r270665): testapi failing on JSC bots
https://bugs.webkit.org/show_bug.cgi?id=219787

Reviewed by Saam Barati.

  • API/JSValueRef.cpp: (JSValueIsString): (JSValueIsObject): (JSValueIsSymbol):

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

2:51 PM Changeset in webkit [273351] by Alan Coon
  • 2 edits in branches/safari-611-branch/Source/JavaScriptCore

Cherry-pick r270700. rdar://problem/74409412

REGRESSION (r270665): testapi failing on CLoop bot
https://bugs.webkit.org/show_bug.cgi?id=219787

Reviewed by Mark Lam.

The API has to special case the empty JSValue as null.

  • API/JSValueRef.cpp: (JSValueGetType): (JSValueIsNull):

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

2:51 PM Changeset in webkit [273350] by Alan Coon
  • 6 edits in branches/safari-611-branch

Cherry-pick r270665. rdar://problem/74409412

Removing unnecessary locking from JSValue API functions
https://bugs.webkit.org/show_bug.cgi?id=219723

Reviewed by Filip Pizlo.

PerformanceTests:

Print an error message when benchmarks fail to run and add option to change
the configuration used to build the benchmarks.

  • APIBench/api-bench:

Source/JavaScriptCore:

Remove the unnecessary locking from the JSValueIs* and JSValueMake* API functions
that only work on primitives. Also remove the unnecessary method dispatching and
call from the -[JSValue is*] methods.

This improves the APIBench score by another ~8% since these are such common operations.
Here are the results: (Baseline includes https://bugs.webkit.org/show_bug.cgi?id=219663)

CURRENT_API: Baseline Change
----------------------------------------
RichardsMostlyC: 74ms 60ms
RichardsMostlyObjC: 304ms 300ms
RichardsMostlySwift: 305ms 293ms
RichardsSomeC: 97ms 77ms
RichardsSomeObjC: 158ms 159ms
RichardsSomeSwift: 202ms 198ms

UPCOMING_API: Baseline Change
----------------------------------------
RichardsMostlyC: 23ms 19ms
RichardsMostlyObjC: 282ms 282ms
RichardsMostlySwift: 280ms 282ms
RichardsSomeC: 95ms 76ms
RichardsSomeObjC: 157ms 156ms
RichardsSomeSwift: 202ms 197ms
----------------------------------------
Score: 33.6404 36.4006

  • API/APICast.h: (toRef):
  • API/JSValue.mm: (-[JSValue isUndefined]): (-[JSValue isNull]): (-[JSValue isBoolean]): (-[JSValue isNumber]): (-[JSValue isString]): (-[JSValue isObject]): (-[JSValue isSymbol]):
  • API/JSValueRef.cpp: (JSValueGetType): (JSValueIsUndefined): (JSValueIsNull): (JSValueIsBoolean): (JSValueIsNumber): (JSValueIsString): (JSValueIsObject): (JSValueIsSymbol): (JSValueMakeUndefined): (JSValueMakeNull): (JSValueMakeBoolean): (JSValueMakeNumber):

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

2:51 PM Changeset in webkit [273349] by Alan Coon
  • 7 edits in branches/safari-611-branch

Cherry-pick r272626. rdar://problem/74410222

Descendants of row and column headers should expose the aria-sort attribute.
https://bugs.webkit.org/show_bug.cgi?id=221590

Reviewed by Chris Fleizach.

Source/WebCore:

Tests:
accessibility/aria-sort.html
accessibility/ios-simulator/aria-sort-ios.html

Walk up the accessibility hierarchy to check for an inherited aria-sort
attribute present in a row or column header ancestor.

  • accessibility/AccessibilityObject.cpp: (WebCore::AccessibilityObject::sortDirection const):

LayoutTests:

Expanded this test to include the case where the header contains a child
element that must also expose the aria-sort attribute inherited from its
parent.

  • accessibility/aria-sort-expected.txt:
  • accessibility/aria-sort.html:
  • accessibility/ios-simulator/aria-sort-ios-expected.txt:
  • accessibility/ios-simulator/aria-sort-ios.html:

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

2:51 PM Changeset in webkit [273348] by Russell Epstein
  • 1 copy in releases/Apple/Safari Technology Preview/Safari Technology Preview 116

Added a tag for Safari Technology Preview release 116.

2:51 PM Changeset in webkit [273347] by Alan Coon
  • 28 edits in branches/safari-611-branch

Cherry-pick r272165. rdar://problem/74032536

Use user media permission prompt for speech recognition
https://bugs.webkit.org/show_bug.cgi?id=221082
rdar://problem/73372499

Patch by Sihui Liu <sihui_liu@appe.com> on 2021-02-01
Reviewed by Youenn Fablet.

Source/WebCore:

Add frame identifier to SpeechRecognitionRequest as it is needed for checking user media permission.

Updated existing tests for changed behavior.

  • Modules/speech/SpeechRecognition.cpp: (WebCore::SpeechRecognition::startRecognition):
  • Modules/speech/SpeechRecognitionConnection.h:
  • Modules/speech/SpeechRecognitionRequest.h: (WebCore::SpeechRecognitionRequest::frameIdentifier const):
  • Modules/speech/SpeechRecognitionRequestInfo.h: (WebCore::SpeechRecognitionRequestInfo::encode const): (WebCore::SpeechRecognitionRequestInfo::decode):
  • page/DummySpeechRecognitionProvider.h:

Source/WebKit:

Make SpeechRecognitionPermissionManager ask UserMediaPermissionRequestManagerProxy for user permission on
microphone.

  • UIProcess/SpeechRecognitionPermissionManager.cpp: (WebKit::SpeechRecognitionPermissionManager::request): (WebKit::SpeechRecognitionPermissionManager::startProcessingRequest): (WebKit::SpeechRecognitionPermissionManager::requestUserPermission):
  • UIProcess/SpeechRecognitionPermissionManager.h:
  • UIProcess/SpeechRecognitionPermissionRequest.h: (WebKit::SpeechRecognitionPermissionRequest::create): (WebKit::SpeechRecognitionPermissionRequest::frameIdentifier const): (WebKit::SpeechRecognitionPermissionRequest::SpeechRecognitionPermissionRequest):
  • UIProcess/SpeechRecognitionServer.cpp: (WebKit::SpeechRecognitionServer::start): (WebKit::SpeechRecognitionServer::requestPermissionForRequest):
  • UIProcess/SpeechRecognitionServer.h:
  • UIProcess/SpeechRecognitionServer.messages.in:
  • UIProcess/UserMediaPermissionRequestManagerProxy.cpp: (WebKit::UserMediaPermissionRequestManagerProxy::denyRequest): (WebKit::UserMediaPermissionRequestManagerProxy::grantRequest): (WebKit::UserMediaPermissionRequestManagerProxy::checkUserMediaPermissionForSpeechRecognition):
  • UIProcess/UserMediaPermissionRequestManagerProxy.h:
  • UIProcess/UserMediaPermissionRequestProxy.cpp: (WebKit::UserMediaPermissionRequestProxy::UserMediaPermissionRequestProxy):
  • UIProcess/UserMediaPermissionRequestProxy.h: (WebKit::UserMediaPermissionRequestProxy::create): (WebKit::UserMediaPermissionRequestProxy::decisionCompletionHandler):
  • UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::requestSpeechRecognitionPermission): (WebKit::WebPageProxy::requestUserMediaPermissionForSpeechRecognition):
  • UIProcess/WebPageProxy.h:
  • UIProcess/WebProcessProxy.cpp: (WebKit::WebProcessProxy::createSpeechRecognitionServer):
  • WebProcess/WebCoreSupport/WebSpeechRecognitionConnection.cpp: (WebKit::WebSpeechRecognitionConnection::start):
  • WebProcess/WebCoreSupport/WebSpeechRecognitionConnection.h:

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/SpeechRecognition.mm: (-[SpeechRecognitionUIDelegate _webView:requestMediaCaptureAuthorization:decisionHandler:]):

LayoutTests:

  • fast/speechrecognition/permission-error.html:
  • fast/speechrecognition/start-recognition-in-removed-iframe-expected.txt:
  • fast/speechrecognition/start-recognition-in-removed-iframe.html:

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

2:51 PM Changeset in webkit [273346] by Alan Coon
  • 12 edits in branches/safari-611-branch

Cherry-pick r271636. rdar://problem/74452635

Update media state for active speech recognition as it uses audio capture
https://bugs.webkit.org/show_bug.cgi?id=220667

Patch by Sihui Liu <sihui_liu@appe.com> on 2021-01-19
Reviewed by Youenn Fablet.

Source/WebCore:

To make sure the media capture state is correctly sent to client.

API test: WebKit2.SpeechRecognitionMediaCaptureStateChange

  • Modules/speech/SpeechRecognition.cpp: (WebCore::SpeechRecognition::startRecognition): (WebCore::SpeechRecognition::stop): (WebCore::SpeechRecognition::didStartCapturingAudio): (WebCore::SpeechRecognition::didStopCapturingAudio):
  • Modules/speech/SpeechRecognition.h:
  • Modules/speech/SpeechRecognitionConnection.h:
  • dom/Document.cpp: (WebCore::Document::setActiveSpeechRecognition): (WebCore::Document::updateIsPlayingMedia):
  • dom/Document.h:
  • page/DummySpeechRecognitionProvider.h:

Source/WebKit:

  • WebProcess/WebCoreSupport/WebSpeechRecognitionConnection.cpp: (WebKit::WebSpeechRecognitionConnection::unregisterClient):
  • WebProcess/WebCoreSupport/WebSpeechRecognitionConnection.h:

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/SpeechRecognition.mm: (-[SpeechRecognitionUIDelegate _webView:mediaCaptureStateDidChange:]): (TestWebKitAPI::TEST): (-[SpeechRecognitionPermissionUIDelegate _webView:requestSpeechRecognitionPermissionForOrigin:decisionHandler:]): Deleted. (-[SpeechRecognitionPermissionUIDelegate _webView:requestMediaCaptureAuthorization:decisionHandler:]): Deleted. (-[SpeechRecognitionPermissionUIDelegate _webView:checkUserMediaPermissionForURL:mainFrameURL:frameIdentifier:decisionHandler:]): Deleted. (-[SpeechRecognitionPermissionUIDelegate webView:createWebViewWithConfiguration:forNavigationAction:windowFeatures:]): Deleted.

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

2:51 PM Changeset in webkit [273345] by Alan Coon
  • 23 edits
    2 adds in branches/safari-611-branch

Cherry-pick r272490. rdar://problem/74409784

Add support for aria-sort change notifications.
https://bugs.webkit.org/show_bug.cgi?id=221495

Reviewed by Chris Fleizach.

Source/WebCore:

Test: accessibility/aria-sort-changed-notification.html

This patch adds support for aria-sort changes. Some code cleanup by
using the notificationPlatformName helper function.

  • accessibility/AXLogger.cpp: (WebCore::operator<<): Logging of the new notification.
  • accessibility/AXObjectCache.cpp: Handles the aria-sort change notification. Updates the isolated tree. (WebCore::AXObjectCache::handleAttributeChange): (WebCore::AXObjectCache::updateIsolatedTree):
  • accessibility/AXObjectCache.h:
  • accessibility/ios/AXObjectCacheIOS.mm: (WebCore::AXObjectCache::notificationPlatformName): Helper to map AXCore notifications to platform notifications. (WebCore::AXObjectCache::postPlatformNotification): Handles the AXSortDirectionChanged notification. Some code cleanup using the notificationPlatformName helper.
  • accessibility/ios/WebAccessibilityObjectWrapperIOS.h:
  • accessibility/ios/WebAccessibilityObjectWrapperIOS.mm: (-[WebAccessibilityObjectWrapper postNotification:]): To be overridden by system AX bundles. (-[WebAccessibilityObjectWrapper accessibilitySortDirection]): Only ascending and descending sort directions are relevant for clients.
  • accessibility/isolatedtree/AXIsolatedTree.cpp: (WebCore::AXIsolatedTree::updateNodeProperty): Updates the SortDirection property.
  • accessibility/mac/AXObjectCacheMac.mm: (WebCore::AXObjectCache::postPlatformNotification): Handles the AXSortDirectionChanged notification.

Tools:

  • WebKitTestRunner/InjectedBundle/AccessibilityUIElement.cpp: (WTR::AccessibilityUIElement::sortDirection const):
  • WebKitTestRunner/InjectedBundle/AccessibilityUIElement.h:
  • WebKitTestRunner/InjectedBundle/Bindings/AccessibilityUIElement.idl:
  • WebKitTestRunner/InjectedBundle/ios/AccessibilityUIElementIOS.mm: (WTR::AccessibilityUIElement::sortDirection const):
  • WebKitTestRunner/InjectedBundle/mac/AccessibilityUIElementMac.mm: (WTR::AccessibilityUIElement::currentStateValue const): (WTR::AccessibilityUIElement::sortDirection const):

LayoutTests:

  • accessibility/aria-sort-changed-notification-expected.txt: Added.
  • accessibility/aria-sort-changed-notification.html: Added.
  • accessibility/aria-sort-expected.txt:
  • accessibility/aria-sort.html: Calls sortDirection property on the JS accessible element instead of retrieving the aria-sort attribute. This matches more accurately what an actual client would do. Changed the expected file accordingly.
  • accessibility/ios-simulator/aria-sort-ios-expected.txt:
  • accessibility/ios-simulator/aria-sort-ios.html: Same as in the Mac test above.
  • platform/ios/TestExpectations: Added the new test to be run on the ios-simulator.

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

2:50 PM Changeset in webkit [273344] by Alan Coon
  • 14 edits in branches/safari-611-branch

Cherry-pick r271381. rdar://problem/74451875

Make SpeechRecognition permission error more informative
https://bugs.webkit.org/show_bug.cgi?id=220436

Patch by Sihui Liu <sihui_liu@appe.com> on 2021-01-11
Reviewed by Youenn Fablet.

Source/WebKit:

Make SpeechRecognitionPermissionManager complete requests with an optional SpeechRecognitionError instead of a
boolean value.

  • UIProcess/SpeechRecognitionPermissionManager.cpp: (WebKit::SpeechRecognitionPermissionManager::~SpeechRecognitionPermissionManager): (WebKit::SpeechRecognitionPermissionManager::request): (WebKit::SpeechRecognitionPermissionManager::startProcessingRequest): (WebKit::SpeechRecognitionPermissionManager::continueProcessingRequest): (WebKit::SpeechRecognitionPermissionManager::completeCurrentRequest): (WebKit::SpeechRecognitionPermissionManager::requestSpeechRecognitionServiceAccess): (WebKit::SpeechRecognitionPermissionManager::requestMicrophoneAccess): (WebKit::SpeechRecognitionPermissionManager::requestUserPermission):
  • UIProcess/SpeechRecognitionPermissionManager.h:
  • UIProcess/SpeechRecognitionPermissionRequest.h: (WebKit::SpeechRecognitionPermissionRequest::create): (WebKit::SpeechRecognitionPermissionRequest::complete): (WebKit::SpeechRecognitionPermissionRequest::SpeechRecognitionPermissionRequest):
  • UIProcess/SpeechRecognitionServer.cpp: (WebKit::SpeechRecognitionServer::requestPermissionForRequest):
  • UIProcess/SpeechRecognitionServer.h:
  • UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::requestSpeechRecognitionPermission):
  • UIProcess/WebPageProxy.h:
  • UIProcess/WebProcessProxy.cpp: (WebKit::WebProcessProxy::createSpeechRecognitionServer):

Tools:

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

LayoutTests:

  • fast/speechrecognition/permission-error-expected.txt:
  • fast/speechrecognition/permission-error.html:

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

2:50 PM Changeset in webkit [273343] by Alan Coon
  • 22 edits
    2 adds in branches/safari-611-branch

Cherry-pick r272067. rdar://problem/74444347

Support for aria-current state changed notifications.
https://bugs.webkit.org/show_bug.cgi?id=221074

Reviewed by Chris Fleizach.

Source/WebCore:

Test: accessibility/aria-current-state-changed-notification.html

Added handling of the AXCurrentStateChanged notification for Mac and iOS
ports. This notification is fired when the aria-current attribute
changes.
Handling of this notification is required to properly update the
accessibility properties of the target object and convey them to
assistive technology clients.

  • accessibility/AXLogger.cpp: (WebCore::operator<<): Renamed notification anumerand.
  • accessibility/AXObjectCache.cpp: (WebCore::AXObjectCache::handleAttributeChange):
  • accessibility/AXObjectCache.h:
  • accessibility/atk/AXObjectCacheAtk.cpp: (WebCore::AXObjectCache::postPlatformNotification):
  • accessibility/ios/AXObjectCacheIOS.mm: (WebCore::AXObjectCache::postPlatformNotification):
  • accessibility/ios/WebAccessibilityObjectWrapperIOS.h:
  • accessibility/ios/WebAccessibilityObjectWrapperIOS.mm: (-[WebAccessibilityObjectWrapper accessibilityDOMIdentifier]): (-[WebAccessibilityObjectWrapper postCurrentStateChangedNotification]): (-[WebAccessibilityObjectWrapper accessibilityCurrentState]): (-[WebAccessibilityObjectWrapper accessibilityARIACurrentStatus]): Renamed to accessibilityCurrentState.
  • accessibility/mac/AXObjectCacheMac.mm: (WebCore::AXObjectCache::postPlatformNotification):

Tools:

Added AccessibilityUIElement::domIdentifier and currentStateValue used
in LayoutTests/accessibility/aria-current-state-changed-notification.html.

  • WebKitTestRunner/InjectedBundle/AccessibilityUIElement.cpp: (WTR::AccessibilityUIElement::domIdentifier const): Non-Cocoa implementation. (WTR::AccessibilityUIElement::currentStateValue const): Non-Cocoa implementation.
  • WebKitTestRunner/InjectedBundle/AccessibilityUIElement.h:
  • WebKitTestRunner/InjectedBundle/Bindings/AccessibilityUIElement.idl:
  • WebKitTestRunner/InjectedBundle/ios/AccessibilityUIElementIOS.mm: (WTR::AccessibilityUIElement::domIdentifier const): (WTR::AccessibilityUIElement::stringAttributeValue): (WTR::AccessibilityUIElement::currentStateValue const):
  • WebKitTestRunner/InjectedBundle/mac/AccessibilityUIElementMac.mm: (WTR::AccessibilityUIElement::domIdentifier const): (WTR::AccessibilityUIElement::currentStateValue const):

LayoutTests:

  • accessibility/aria-current-state-changed-notification-expected.txt: Added.
  • accessibility/aria-current-state-changed-notification.html: Added.
  • accessibility/aria-current.html: Use AccessibilityUIElement::currentStateValue for consistency and to match closely how actual clients will invoke this functionality.
  • platform/gtk/TestExpectations:
  • platform/ios-wk1/TestExpectations:
  • platform/ios/TestExpectations:
  • platform/mac-wk1/TestExpectations:
  • platform/win/TestExpectations:

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

2:50 PM Changeset in webkit [273342] by Alan Coon
  • 10 edits in branches/safari-611-branch

Cherry-pick r272755. rdar://problem/74409916

Unreviewed, reverting r270578.
https://bugs.webkit.org/show_bug.cgi?id=221110

Caused incorrect image layout inside a flexbox container.

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-row-013-expected.txt:
  • web-platform-tests/css/css-flexbox/image-as-flexitem-size-003-expected.txt:
  • web-platform-tests/css/css-flexbox/image-as-flexitem-size-003v-expected.txt:
  • web-platform-tests/css/css-flexbox/image-as-flexitem-size-004-expected.txt:
  • web-platform-tests/css/css-flexbox/image-as-flexitem-size-004v-expected.txt:

Source/WebCore:

  • rendering/RenderFlexibleBox.cpp: (WebCore::RenderFlexibleBox::computeMainSizeFromAspectRatioUsing const): (WebCore::RenderFlexibleBox::childCrossSizeIsDefinite const):

LayoutTests:

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

2:49 PM Changeset in webkit [273341] by Russell Epstein
  • 1 copy in releases/Apple/Safari Technology Preview/Safari Technology Preview 119

Added a tag for Safari Technology Preview release 119.

2:48 PM Changeset in webkit [273340] by Russell Epstein
  • 1 copy in releases/Apple/Safari Technology Preview/Safari Technology Preview 118

Added a tag for Safari Technology Preview release 118.

2:47 PM Changeset in webkit [273339] by Russell Epstein
  • 1 copy in releases/Apple/Safari Technology Preview/Safari Technology Preview 117

Added a tag for Safari Technology Preview release 117.

2:45 PM Changeset in webkit [273338] by Russell Epstein
  • 1 copy in releases/Apple/Safari Technology Preview/Safari Technology Preview 115

Added a tag for Safari Technology Preview release 115.

2:44 PM Changeset in webkit [273337] by Russell Epstein
  • 1 copy in releases/Apple/Safari Technology Preview/Safari Technology Preview 114

Added a tag for Safari Technology Preview release 114.

2:38 PM Changeset in webkit [273336] by Russell Epstein
  • 1 copy in releases/Apple/Safari Technology Preview/Safari Technology Preview 113

Added a tag for Safari Technology Preview release 113.

2:38 PM Changeset in webkit [273335] by Truitt Savell
  • 2 edits in trunk/LayoutTests

[BigSur Wk2] imported/w3c/web-platform-tests/media-source/mediasource-seek-during-pending-seek.html is a flakey failure.
https://bugs.webkit.org/show_bug.cgi?id=222183

Unreviewed test gardening.

Patch by Amir Mark Jr <Amir Mark Jr.> on 2021-02-23

  • platform/mac-wk2/TestExpectations:
2:29 PM Changeset in webkit [273334] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Unreviewed Windows test gardening to speed up EWS.

  • platform/win/TestExpectations:
2:22 PM Changeset in webkit [273333] by Jonathan Bedard
  • 6 edits
    2 adds in trunk/Tools

[webkitscmpy] Add remote BitBucket
https://bugs.webkit.org/show_bug.cgi?id=222213
<rdar://problem/74542626>

Rubber-stamped by Aakash Jain.

  • Scripts/libraries/webkitscmpy/setup.py: Increment version.
  • Scripts/libraries/webkitscmpy/webkitscmpy/init.py: Ditto.
  • Scripts/libraries/webkitscmpy/webkitscmpy/mocks/remote/init.py: Export mock BitBucket.
  • Scripts/libraries/webkitscmpy/webkitscmpy/mocks/remote/bitbucket.py: Added.

(BitBucket): Mock limited set of BitBucket REST APIs.

  • Scripts/libraries/webkitscmpy/webkitscmpy/remote/init.py: Export BitBucket class.
  • Scripts/libraries/webkitscmpy/webkitscmpy/remote/bitbucket.py: Added.

(BitBucket): Repository object interacting with BitBucket via REST API.
(BitBucket.is_webserver): Check if the provided URL is a bitbucket URL.
(BitBucket.init):
(BitBucket.is_git):
(BitBucket.request): Combine paginated requests into a single API call.
(BitBucket._distance): Preform binary search
(BitBucket._branches_for): Return branches for reference.
(BitBucket.default_branch): Return the default branch.
(BitBucket.branches): Return all branches for repository.
(BitBucket.tags): Return all tags for repository.
(BitBucket.commit): Convert hash, identifier or git ref to Commit object.
(BitBucket.find): Use git to match branches and tags to a hash instead of trying to do it ourselves.

  • Scripts/libraries/webkitscmpy/webkitscmpy/remote/scm.py:

(Scm.from_url): Add BitBucket.

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

(TestGitHub.test_detection): Add bitbucket url.
(TestBitBucket): Added.

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

(TestRemoteSvn.test_detection): Add bitbucket url.

2:05 PM Changeset in webkit [273332] by Russell Epstein
  • 1 copy in releases/Apple/Safari Technology Preview/Safari Technology Preview 120

"Added a tag for Safari Technology Preview release 120."

1:36 PM Changeset in webkit [273331] by don.olmstead@sony.com
  • 2 edits in trunk/Tools

Pass full environment when auto installing a Python module on Windows
https://bugs.webkit.org/show_bug.cgi?id=221109
<rdar://problem/74002781>

Reviewed by Jonathan Bedard.

On Python 3 when the AutoInstall routine attempted to setup markupsafe-2.0.0 it would fail
when compiling native code. When compiling outside of Visual Studio there is a batch file
that sets up the environment. This adds a large number of environment variables which could
potentially change over time so to be safe the complete environment is passed to the
setup.py installation routine for Windows only.

  • Scripts/libraries/webkitcorepy/webkitcorepy/autoinstall.py:

(Package.install):

12:19 PM Changeset in webkit [273330] by commit-queue@webkit.org
  • 5 edits
    4 adds in trunk

Nullptr crash in ReplaceSelectionCommand::removeRedundantStylesAndKeepStyleSpanInline
https://bugs.webkit.org/show_bug.cgi?id=221651

Patch by Frederic Wang <fwang@igalia.com> on 2021-02-23
Reviewed by Ryosuke Niwa.

Source/WebCore:

There are assumptions in the editing code that new containers have an associated renderer,
which is not the case if their style is "display: contents". This patch replaces the
strict debug ASSERT in CompositeEditCommand::appendBlockPlaceholder with a failure
specified by a nullptr return value, similar to other BlockPlaceholder APIs. That way
InsertParagraphSeparatorCommand::doApply can exit early when the block placeholder cannot
be inserted. This patch also fixes one nullptr dereference in release build happening when
executing Editor::replaceSelectionWithFragment.

Test: fast/editing/mutation-with-display-contents-container-crash.html

  • editing/CompositeEditCommand.cpp:

(WebCore::CompositeEditCommand::appendBlockPlaceholder): Return null is the container
has no associated renderer.

  • editing/CompositeEditCommand.h: Return a RefPtr, so it is null in case of failure.
  • editing/InsertParagraphSeparatorCommand.cpp:

(WebCore::InsertParagraphSeparatorCommand::doApply): Abort command if the block placeholder
cannot be inserted in the container.

LayoutTests:

  • fast/editing/mutation-with-display-contents-container-crash-expected.txt: Added.
  • fast/editing/mutation-with-display-contents-container-crash.html: Added.
  • platform/ios/fast/editing/mutation-with-display-contents-container-crash-expected.txt: Added.
12:09 PM Changeset in webkit [273329] by aboya@igalia.com
  • 3 edits in trunk/Source/WebCore

Make system console logging synchronous
https://bugs.webkit.org/show_bug.cgi?id=222279

Reviewed by Alex Christensen.

Previously, the logging of messages to the system console was done in
PageConsoleClient::addMessage(), which was called by
Document::addConsoleMessage(). The latter was called in a TaskQueue
callback.

This had the unfortunate side effect of adding a delay from the time a
macro such as ALWAYS_LOG() is called and the text being printed to the
console. This is particularly a problem when logging 3rd party
libraries that don't use the WebKit logging API to log to stderr, such
as GStreamer, since it causes messages logged by WebKit to not be
synchronized with messages logged by 3rd party libraries or logging
systems. As a consequence the usefulness of WebKit logs is noticeably
reduced.

This patch fixes the issue by moving the code logging to the system
console to the synchronous part of Document::didLogMessage(), while
still handling the rest in the m_logMessageTaskQueue callback.

  • dom/Document.cpp:

(WebCore::Document::didLogMessage):

  • page/PageConsoleClient.cpp:

(WebCore::PageConsoleClient::addMessage):

12:04 PM Changeset in webkit [273328] by Chris Fleizach
  • 3 edits
    2 adds in trunk

AX: VoiceOver incorrectly announces groups in ARIA tree instances as empty
https://bugs.webkit.org/show_bug.cgi?id=221716
<rdar://problem/74205567>

Reviewed by Zalan Bujtas.

Source/WebCore:

ARIA treeitems are allowed to have a child group that can represent the disclosed rows, which are disclosed through aria-owns.

Test: accessibility/mac/treeitem-row-delegation.html

  • accessibility/AccessibilityObject.cpp:

(WebCore::AccessibilityObject::ariaTreeRows):

LayoutTests:

  • accessibility/mac/treeitem-row-delegation-expected.txt: Added.
  • accessibility/mac/treeitem-row-delegation.html: Added.
11:55 AM Changeset in webkit [273327] by Fujii Hironori
  • 3 edits in trunk/Source/WebKit

[CoordinatedGraphics] The whole content is unnecessarily repainted by animations in non-AC mode pages
https://bugs.webkit.org/show_bug.cgi?id=221391

Reviewed by Carlos Garcia Campos.

When triggerRenderingUpdate was called back, it added the whole
view area into the dirty region to repaint in non-AC mode pages.
This caused a problem that the whole content was unnecessarily
repainted by animations in non-AC mode pages.

Call scheduleDisplay instead of setNeedsDisplay in
triggerRenderingUpdate.

However, if the dirty region is empty, display() exited early. If
triggerRenderingUpdate is called back,
DrawingAreaCoordinatedGraphics::display should be called to ensure
WebPage::updateRendering() called even if m_dirtyRegion is empty.

Added a new flag m_scheduledWhileWaitingForDidUpdate.

  • WebProcess/WebPage/CoordinatedGraphics/DrawingAreaCoordinatedGraphics.cpp:

(WebKit::DrawingAreaCoordinatedGraphics::triggerRenderingUpdate):
Call scheduleDisplay() instead of setNeedsDisplay().
(WebKit::DrawingAreaCoordinatedGraphics::didUpdate):
(WebKit::DrawingAreaCoordinatedGraphics::scheduleDisplay): Don't
return early even if m_dirtyRegion is empty.
(WebKit::DrawingAreaCoordinatedGraphics::display()): Ditto.
(WebKit::DrawingAreaCoordinatedGraphics::display(UpdateInfo&)):
Return early if m_dirtyRegion is empty.

  • WebProcess/WebPage/CoordinatedGraphics/DrawingAreaCoordinatedGraphics.h:

Added m_scheduledWhileWaitingForDidUpdate.

11:46 AM Changeset in webkit [273326] by Alan Coon
  • 1 copy in releases/Apple/Safari Technology Preview/Safari Technology Preview 112

Added a tag for Safari Technology Preview release 112.

11:45 AM Changeset in webkit [273325] by Alan Coon
  • 1 delete in releases/Apple/Safari Technology Preview 112

Delete release tag.

11:44 AM Changeset in webkit [273324] by Alan Coon
  • 1 copy in releases/Apple/Safari Technology Preview 112

Added a tag for Safari Technology Preview release 112.

11:41 AM Changeset in webkit [273323] by Ruben Turcios
  • 2 edits in branches/safari-612.1.5-branch/Source/WebKit

Cherry-pick r273297. rdar://problem/74650857

[Payment Request] REGRESSION(r273143): crash shortly after showing the Apple Pay sheet
https://bugs.webkit.org/show_bug.cgi?id=222298
<rdar://problem/74557943>

Reviewed by Wenson Hsieh.

  • Platform/cocoa/PaymentAuthorizationPresenter.mm: (WebKit::toNSErrors): Don't use adoptNS with +[NSMutableArray array] since that returns an autoreleased object. Use the helper createNSArray instead (as was previously done before r273143).

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

11:10 AM Changeset in webkit [273322] by Alan Coon
  • 6 edits
    2 adds in branches/safari-611-branch/Source/WebCore

Cherry-pick r272678. rdar://problem/74410058

Integrator's note: includes an unrelated buildfix in HIDGamepadElement.cpp which
was breaking the build at this revision for some reason.

WebCore::createBusFromInMemoryAudioFile() may crash under ExtAudioFileRead()
https://bugs.webkit.org/show_bug.cgi?id=221642
<rdar://72789841>

Reviewed by Geoffrey Garen.

The crash seems to indicate we are passing an AudioBufferList to ExtAudioFileRead()
that contains a null buffer. It is not obvious how this is happening but I have made
the following changes:

  1. createAudioBufferList() / destroyAudioListBuffer() implementation is now shared on both macOS and iOS. The implementation now uses fastCalloc and returns null in case of failure to allocate.
  2. createAudioBufferList() was renamed to tryCreateAudioBufferList() to make it clear it can return null. All call sites now properly deal with tryCreateAudioBufferList() potentially return null
  3. Add a new validateAudioBufferList() function which makes sure that the AudioBufferList we are about to pass to ExtAudioFileRead() does not contain any null buffer. In case of validation failure, we log an error, generate a simulated crash log and early return gracefully instead of crashing later on.
  4. Added more assertions to help catch bugs.
  • SourcesCocoa.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • platform/audio/cocoa/AudioFileReaderCocoa.cpp: Added. (WebCore::tryCreateAudioBufferList): (WebCore::destroyAudioBufferList): (WebCore::validateAudioBufferList):
  • platform/audio/cocoa/AudioFileReaderCocoa.h: Added.
  • platform/audio/ios/AudioFileReaderIOS.cpp: (WebCore::AudioFileReader::createBus): (WebCore::createAudioBufferList): Deleted. (WebCore::destroyAudioBufferList): Deleted.
  • platform/audio/mac/AudioFileReaderMac.cpp: (WebCore::AudioFileReader::createBus): (WebCore::createAudioBufferList): Deleted. (WebCore::destroyAudioBufferList): Deleted.

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

10:58 AM Changeset in webkit [273321] by Russell Epstein
  • 8 edits in trunk/Source

Versioning.

WebKit-7612.1.6

10:55 AM Changeset in webkit [273320] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit

Unreviewed, reverting r273304.
https://bugs.webkit.org/show_bug.cgi?id=222324

Introduced test failure

Reverted changeset:

"[macOS] Crash under AuxiliaryProcess::initializeSandbox"
https://bugs.webkit.org/show_bug.cgi?id=222233
https://trac.webkit.org/changeset/273304

10:51 AM Changeset in webkit [273319] by Russell Epstein
  • 1 copy in branches/safari-612.1.5-branch

New branch.

10:46 AM Changeset in webkit [273318] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

[BigSur] imported/w3c/web-platform-tests/css/css-counter-styles/tibetan/css3-counter-styles-156.html is consistently failing
https://bugs.webkit.org/show_bug.cgi?id=222118

Unreviewed test gardening.

  • platform/mac/TestExpectations: This test is an ImageOnlyFailure.
10:23 AM Changeset in webkit [273317] by Alan Coon
  • 76 edits
    6 deletes in branches/safari-611-branch

Revert content after (and including) cherry-pick of r272678.

10:10 AM Changeset in webkit [273316] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

Unreviewed, reverting r273307.
https://bugs.webkit.org/show_bug.cgi?id=222320

Need to update CI code for CLoop bot before landing this

Reverted changeset:

"Detect unrecognized options in run-javascriptcore-tests"
https://bugs.webkit.org/show_bug.cgi?id=221186
https://trac.webkit.org/changeset/273307

9:54 AM Changeset in webkit [273315] by Jonathan Bedard
  • 5 edits in trunk/Tools

show-identifier fails with error: ascii codec can't decode byte 0xc3 in position
https://bugs.webkit.org/show_bug.cgi?id=222313
<rdar://problem/74645910>

Reviewed by Aakash Jain.

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

(Contributor.repr): Always return unicode for Python 2.

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

(TestContributor.test_unicode):

9:50 AM Changeset in webkit [273314] by commit-queue@webkit.org
  • 6 edits
    2 adds in trunk

aspect-ratio shows in computed style when disabled
https://bugs.webkit.org/show_bug.cgi?id=222286

Patch by Rob Buis <rbuis@igalia.com> on 2021-02-23
Reviewed by Simon Fraser.

Source/WebCore:

Make aspect-ratio invisible from style when disabled.

Test: fast/css/aspect-ratio-invalidate-if-disabled.html

  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::ComputedStyleExtractor::valueForPropertyInStyle):

  • css/CSSProperties.json:

Tools:

Add support for disabling aspect-ratio in wk1.

  • DumpRenderTree/TestOptions.cpp:

(WTR::TestOptions::defaults):

LayoutTests:

Add test.

  • fast/css/aspect-ratio-invalidate-if-disabled-expected.txt: Added.
  • fast/css/aspect-ratio-invalidate-if-disabled.html: Added.
9:37 AM Changeset in webkit [273313] by commit-queue@webkit.org
  • 6 edits in trunk/Source/WebKit

REGRESSION(r273204): webkitpy tests fail
https://bugs.webkit.org/show_bug.cgi?id=222275
<rdar://problem/74614397>

Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2021-02-23
Reviewed by Jonathan Bedard.

Regenerate the IPC generation test expectations that were
not part of r273204.

Tested by

./Tools/Scripts/test-webkitpy-python2 -j1 -p Source/WebKit/Scripts/webkit/messages_unittest.py

  • Scripts/webkit/tests/MessageArgumentDescriptions.cpp:

(IPC::jsValueForArguments):
(IPC::messageArgumentDescriptions):

  • Scripts/webkit/tests/MessageNames.cpp:

(IPC::description):
(IPC::receiverName):
(IPC::isValidMessageName):

  • Scripts/webkit/tests/MessageNames.h:
  • Scripts/webkit/tests/TestWithSemaphoreMessages.h:
  • Scripts/webkit/tests/TestWithStreamMessages.h:
9:23 AM Changeset in webkit [273312] by don.olmstead@sony.com
  • 4 edits in trunk

[CMake] Fix JSCOnly build on Windows
https://bugs.webkit.org/show_bug.cgi?id=222316

Reviewed by Michael Catanzaro.

.:

Turn off ENABLE_WEBASSEMBLY for Windows on JSCOnly now that its possible to build it
without FTL.

  • Source/cmake/OptionsJSCOnly.cmake:

Source/WTF:

Update sources for the JSCOnly Windows build.

  • wtf/PlatformJSCOnly.cmake:
9:09 AM Changeset in webkit [273311] by calvaris@igalia.com
  • 4 edits in trunk/Source/WebCore

[GStreamer][EME][Thunder] Initialize decryptor lazily
https://bugs.webkit.org/show_bug.cgi?id=222314

Reviewed by Philippe Normand.

In some cases, WebKit can be run before Thunder nano services are
up and without PSON, the result can be that you end up with WebKit
thinking there is no DRM system available.

First thing this patch does it removing the once flag so we keep
asking if there are DRM systems available if we are asked about
them from JS.

Second thing is that if we are queried from JS about the
availability of DRM systems and there are some available, we
initialize the decryptor.

  • platform/graphics/gstreamer/GStreamerCommon.cpp:

(WebCore::registerWebKitGStreamerElements):

  • platform/graphics/gstreamer/eme/CDMThunder.cpp:

(WebCore::CDMFactoryThunder::supportedKeySystems const):

  • platform/graphics/gstreamer/eme/WebKitThunderDecryptorGStreamer.cpp:
9:08 AM Changeset in webkit [273310] by don.olmstead@sony.com
  • 5 edits in trunk/Source/WebCore

Only files in WebCore/testing should be in WebCoreTestSupport
https://bugs.webkit.org/show_bug.cgi?id=222297

Reviewed by Eric Carlson.

After r272721 the non-unified WinCairo build reported error C2859, filename is not the
type file that was used when this precompiled header was created. This was because a
handful of files were in the WebCore library as well as the WebCoreTestSupport library.

Investigating the XCode project it turned out that the files listed in the CMake for
WebCoreTestSupport didn't match. The XCode project had all of the mock files within
platform in WebCore and WebCoreTestSupport just had files in the testing directory.

All mock related files were added to the Sources.txt and the erroneous listing of them
in WebCoreTestSupport_SOURCES were removed.

During the investigation it turned out some mocks were being compiled in both WebCore
and WebCoreTestSupport within the XCode build. This was rectified and an additional
WEBCORE_EXPORT in PlatformSpeechSynthesizerMock was added to support this.

  • CMakeLists.txt:
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • platform/mock/PlatformSpeechSynthesizerMock.h:
8:58 AM Changeset in webkit [273309] by commit-queue@webkit.org
  • 4 edits in trunk

[GStreamer] fast/mediastream/captureStream/canvas2d.html is flaky timing out since GStreamer 1.18 update
https://bugs.webkit.org/show_bug.cgi?id=218580

Patch by Philippe Normand <pnormand@igalia.com> on 2021-02-23
Reviewed by Xabier Rodriguez-Calvar.

Source/WebCore:

Live streams start without pre-rolling, that means they can reach PAUSED while sinks still
haven't received a sample to render. So we need to notify the media element in such cases
only after pre-rolling has completed. Otherwise the media element might emit a play event
too early, before pre-rolling has been completed.

No new tests, this patch fixes a few layout tests though, most notably removing flakiness
from fast/mediastream/captureStream/canvas2d.html.

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:

(WebCore::MediaPlayerPrivateGStreamer::updateStates):
(WebCore::MediaPlayerPrivateGStreamer::triggerRepaint):

LayoutTests:

  • platform/glib/TestExpectations: Unflag no-longer-flaky and now-passing media tests.
8:21 AM Changeset in webkit [273308] by Chris Dumez
  • 52 edits in trunk/Tools

Use adoptNS() as soon as we [[ObjcClass alloc] init] to avoid leaks in Tools/
https://bugs.webkit.org/show_bug.cgi?id=222288

Reviewed by Darin Adler.

  • DumpRenderTree/ios/PixelDumpSupportIOS.mm:
  • DumpRenderTree/ios/UIScriptControllerIOS.mm:

(WTR::UIScriptControllerIOS::zoomScale const):
(WTR::UIScriptControllerIOS::scrollToOffset):
(WTR::UIScriptControllerIOS::immediateScrollToOffset):
(WTR::UIScriptControllerIOS::minimumZoomScale const):
(WTR::UIScriptControllerIOS::maximumZoomScale const):

  • DumpRenderTree/mac/DumpRenderTree.mm:

(fontAllowList):
(adjustWebDocumentForFlexibleViewport):
(createWebViewAndOffscreenWindow):
(allocateGlobalControllers):
(releaseGlobalControllers):
(resetWebViewToConsistentState):
(runTest):

  • DumpRenderTree/mac/DumpRenderTreeMac.h:
  • DumpRenderTree/mac/DumpRenderTreePasteboard.mm:

(+[DumpRenderTreePasteboard _pasteboardWithName:]):
(+[DumpRenderTreePasteboard releaseLocalPasteboards]):

  • DumpRenderTree/mac/EventSendingController.mm:

(drt_WebHTMLView_beginDraggingSessionWithItemsEventSource):
(+[EventSendingController initialize]):
(-[EventSendingController beginDragWithFiles:]):
(-[EventSendingController beginDragWithFilePromises:]):
(-[EventSendingController mouseUp:withModifiers:]):
(-[EventSendingController mouseMoveToX:Y:]):

  • DumpRenderTree/mac/FrameLoadDelegate.mm:

(-[FrameLoadDelegate didClearWindowObjectInStandardWorldForFrame:]):

  • DumpRenderTree/mac/TestRunnerMac.mm:

(TestRunner::setCustomPolicyDelegate):
(TestRunner::waitForPolicyDelegate):
(TestRunner::apiTestNewWindowDataLoadBaseURL):

  • DumpRenderTree/mac/UIDelegate.mm:

(-[UIDelegate webView:dragImage:at:offset:event:pasteboard:source:slideBack:forView:]):
(-[UIDelegate dealloc]):

  • TestRunnerShared/cocoa/LayoutTestSpellChecker.mm:

(ensureGlobalLayoutTestSpellChecker):

  • TestWebKitAPI/Tests/WebKit/GetUserMedia.mm:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebKit/GetUserMediaNavigation.mm:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebKit/GetUserMediaReprompt.mm:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebKit/mac/CustomBundleParameter.mm:

(TestWebKitAPI::didReceiveMessageFromInjectedBundle):

  • TestWebKitAPI/Tests/WebKitCocoa/CommandBackForward.mm:

(WebKit2_CommandBackForwardTestWKView::SetUp):

  • TestWebKitAPI/Tests/WebKitCocoa/Download.mm:

(TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/InAppBrowserPrivacy.mm:
  • TestWebKitAPI/Tests/WebKitCocoa/NowPlayingControlsTests.mm:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/PasteMixedContent.mm:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/ReparentWebViewTimeout.mm:

(TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/SchemeRegistry.mm:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/SystemPreview.mm:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/TestSOAuthorization.mm:

(-[TestSOAuthorizationDelegate webView:createWebViewWithConfiguration:forNavigationAction:windowFeatures:]):

  • TestWebKitAPI/Tests/WebKitCocoa/UserInitiatedActionInNavigationAction.mm:

(UserInitiatedActionTest::URLWithFragment):

  • TestWebKitAPI/Tests/WebKitCocoa/UserMediaDisabled.mm:

(TEST_F):

  • TestWebKitAPI/Tests/WebKitCocoa/WKHTTPCookieStore.mm:

(TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/WKInspectorDelegate.mm:

(-[UIDelegate _webView:configurationForLocalInspector:]):

  • TestWebKitAPI/Tests/WebKitCocoa/WKPDFView.mm:

(TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/WKWebViewCandidateTests.mm:

(+[CandidateTestWebView setUpWithFrame:testPage:]):
(TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/WKWebViewDoesNotLogDuringInitialization.mm:

(TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/WKWebViewEvaluateJavaScript.mm:
  • TestWebKitAPI/Tests/WebKitCocoa/WebsiteDataStoreCustomPaths.mm:

(runWebsiteDataStoreCustomPaths):

  • TestWebKitAPI/Tests/WebKitCocoa/WebsitePolicies.mm:

(-[WebsitePoliciesWebsiteDataStoreDelegate webView:startURLSchemeTask:]):

  • TestWebKitAPI/Tests/WebKitLegacy/mac/ClosingWebView.mm:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebKitObjC/CustomProtocolsInvalidScheme.mm:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebKitObjC/PreventImageLoadWithAutoResizing.mm:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebKitObjC/UserContentTest.mm:

(TEST_F):

  • TestWebKitAPI/Tests/ios/DragAndDropTestsIOS.mm:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/ios/KeyboardInputTestsIOS.mm:

(+[InputAssistantItemTestingWebView leadingItemsForWebView:]):
(+[InputAssistantItemTestingWebView trailingItemsForWebView:]):

  • TestWebKitAPI/Tests/ios/WKScrollViewDelegate.mm:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/mac/CandidateTests.mm:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/mac/MemoryCachePruneWithinResourceLoadDelegate.mm:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/ios/mainIOS.mm:

(main):

  • TestWebKitAPI/mac/TestFontOptions.mm:

(+[TestFontOptions sharedInstance]):

  • TestWebKitAPI/mac/mainMac.mm:

(main):

  • WebKitTestRunner/InjectedBundle/ios/AccessibilityControllerIOS.mm:

(WTR::AccessibilityController::addNotificationListener):

  • WebKitTestRunner/cocoa/TestControllerCocoa.mm:

(WTR::globalWebViewConfiguration):
(WTR::globalWebsiteDataStoreDelegateClient):
(WTR::initializeWebViewConfiguration):
(WTR::TestController::platformContext):
(WTR::TestController::platformPreferences):
(WTR::TestController::platformInitializeDataStore):
(WTR::TestController::platformCreateWebView):
(WTR::TestController::platformCreateOtherPage):
(WTR::TestController::platformAdjustContext):
(WTR::TestController::cocoaResetStateToConsistentValues):
(WTR::TestController::removeAllSessionCredentials):
(WTR::TestController::getAllStorageAccessEntries):
(WTR::TestController::loadedSubresourceDomains):
(WTR::TestController::clearLoadedSubresourceDomains):
(WTR::TestController::injectUserScript):
(WTR::TestController::setAllowStorageQuotaIncrease):
(WTR::TestController::setAllowsAnySSLCertificate):

  • WebKitTestRunner/ios/GeneratedTouchesDebugWindow.mm:

(+[GeneratedTouchesDebugWindow sharedGeneratedTouchesDebugWindow]):

  • WebKitTestRunner/ios/HIDEventGenerator.mm:

(+[HIDEventGenerator sharedHIDEventGenerator]):

  • WebKitTestRunner/mac/TestControllerMac.mm:

(WTR::TestController::configureContentExtensionForTest):

  • WebKitTestRunner/mac/WebKitTestRunnerPasteboard.mm:

(+[WebKitTestRunnerPasteboard _pasteboardWithName:]):
(+[WebKitTestRunnerPasteboard releaseLocalPasteboards]):

8:18 AM Changeset in webkit [273307] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

Detect unrecognized options in run-javascriptcore-tests
https://bugs.webkit.org/show_bug.cgi?id=221186

Patch by Angelos Oikonomopoulos <Angelos Oikonomopoulos> on 2021-02-23
Reviewed by Keith Miller.

run-javascriptcore-tests saves unrecognized arguments to pass
through to build-jsc even when --no-build is used. However, when
we're not building, nothing will ever use or look at the extra
arguments. This means that those arguments are silently eaten
up and, consequently, typos in option names can go undetected.

Change the script to fail when --no-build has been passed and
there are unrecognized options.

  • Scripts/run-javascriptcore-tests:
7:05 AM Changeset in webkit [273306] by Diego Pino Garcia
  • 2 edits in trunk/Source/WebCore

Unreviewed, GTK Ubuntu LTS build fix after r273241

  • rendering/RenderBlockFlow.cpp:

(WebCore::RenderBlockFlow::invalidateLineLayoutPath): Function
modernLineLayout is only defined if ENABLE(LAYOUT_FORMATING_CONTEXT)

6:34 AM Changeset in webkit [273305] by Wenson Hsieh
  • 8 edits
    1 copy
    1 add in trunk/Source/WebKit

[iOS] Add a watchdog timer to forcibly reset deferring gesture recognizers
https://bugs.webkit.org/show_bug.cgi?id=222216

Reviewed by Simon Fraser.

Add a mechanism to detect and resolve situations where at least one deferring gesture recognizer
(WKDeferringGestureRecognizer) is stuck in Possible state after ending touches, but the touch event gesture
recognizer is unable to be reset (i.e. neither possible or recognizing). This state is indicative of a general
class of bugs regarding native gesture deferral, wherein our "gesture gates" never end up being lifted after
ending all touches in the view. One such example of this type of bug was fixed in r272584, where all interaction
(touch events, scrolling, tapping) due to the touch end deferrers never exiting Possible state after long
pressing to present a context menu.

To make these kinds of bugs both easier to diagnose and less fatal in the future, we introduce a watchdog timer
that dispatches after ending all touches on the content view, and checks the consistency of deferring gesture
recognizers in the view; if we detect stuck deferring gestures, we handle this by forcibly resetting the stuck
deferring gestures and logging a fault message.

I manually verified this change by reverting my fix for the aforementioned bug (r272584), and observing both (1)
a system log fault message, and (2) that interactions continued to work even without the fix in r272584, after
the watchdog timer fired. See below for more details.

  • SourcesCocoa.txt:
  • UIProcess/ios/GestureRecognizerConsistencyEnforcer.h: Copied from Source/WebKit/UIProcess/ios/WKDeferringGestureRecognizer.h.
  • UIProcess/ios/GestureRecognizerConsistencyEnforcer.mm: Added.

(WebKit::GestureRecognizerConsistencyEnforcer::GestureRecognizerConsistencyEnforcer):
(WebKit::GestureRecognizerConsistencyEnforcer::beginTracking):
(WebKit::GestureRecognizerConsistencyEnforcer::endTracking):
(WebKit::GestureRecognizerConsistencyEnforcer::reset):
(WebKit::GestureRecognizerConsistencyEnforcer::timerFired):

Add a helper class that wraps a RunLoop::Timer for the main runloop, and schedules a 1 second timer after all
deferring gestures have ended; assuming no new touches begin after this timer is scheduled, we'll perform a
consistency check over the content view's gestures and perform a log fault and force deferring gestures to end
if needed.

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

(-[WKContentView setUpInteraction]):
(-[WKContentView cleanUpInteraction]):

Make sure that we reset any extant GestureRecognizerConsistencyEnforcer if the web process crashes.

(-[WKContentView _removeDefaultGestureRecognizers]):
(-[WKContentView _addDefaultGestureRecognizers]):
(-[WKContentView _webTouchEventsRecognized:]):

Adjust a few compile-time guards so that deferring gesture recognizers exist on the view, even if
ENABLE_IOS_TOUCH_EVENTS is off. This makes some of the gesture deferral code throughout this file easier to
reason about in non-internal iOS builds, since we don't need to sprinkle as many ENABLE(IOS_TOUCH_EVENTS)
checks throughout this class.

(-[WKContentView touchEventGestureRecognizer]):
(-[WKContentView gestureRecognizerConsistencyEnforcer]):
(-[WKContentView deferringGestures]):
(-[WKContentView gestureRecognizer:shouldRecognizeSimultaneouslyWithGestureRecognizer:]):
(-[WKContentView deferringGestureRecognizer:willBeginTouchesWithEvent:]):

Refactor -deferringGestureRecognizer:shouldDeferGesturesAfterBeginningTouchesWithEvent: so that it returns an
enum flag indicating whether the given gesture should be allowed to begin deferring native gestures; by making
this -deferringGestureRecognizer:willBeginTouchesWithEvent:, we can now put state management logic here that's
responsible for updating the GestureRecognizerConsistencyEnforcer.

(-[WKContentView deferringGestureRecognizer:didTransitionToState:]):
(-[WKContentView deferringGestureRecognizer:didEndTouchesWithEvent:]):
(-[WKContentView _deferringGestures]): Deleted.

Rename this to -deferringGestures and expose it as a readonly property, for use by the
GestureRecognizerConsistencyEnforcer.

(-[WKContentView deferringGestureRecognizer:shouldDeferGesturesAfterBeginningTouchesWithEvent:]): Deleted.

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

(-[WKDeferringGestureRecognizer touchesBegan:withEvent:]):
(-[WKDeferringGestureRecognizer setState:]):

Add a delegate hook to inform WKContentView when the gesture recognizer state changes.

(-[WKDeferringGestureRecognizer deferringGestureDelegate]): Deleted.

  • UIProcess/mac/WKPrintingView.h:

Fix a missing include that results in a build failure due to changed unified sources.

  • WebKit.xcodeproj/project.pbxproj:
5:58 AM Changeset in webkit [273304] by pvollan@apple.com
  • 2 edits in trunk/Source/WebKit

[macOS] Crash under AuxiliaryProcess::initializeSandbox
https://bugs.webkit.org/show_bug.cgi?id=222233

Unreviewed, address additional review feedback.

Add comment and logging when the WebKit client is setting the user directory suffix.

  • Shared/mac/AuxiliaryProcessMac.mm:

(WebKit::initializeSandboxParameters):

5:01 AM Changeset in webkit [273303] by commit-queue@webkit.org
  • 4 edits in trunk/Tools

[GTK] Use std::bitset to specify WebKitTestServer's options
https://bugs.webkit.org/show_bug.cgi?id=222273

Patch by Frederic Wang <fwang@igalia.com> on 2021-02-23
Reviewed by Carlos Garcia Campos.

  • TestWebKitAPI/Tests/WebKitGLib/TestSSL.cpp:

(beforeAll):

  • TestWebKitAPI/glib/WebKitGLib/WebKitTestServer.cpp:

(WebKitTestServer::WebKitTestServer):

  • TestWebKitAPI/glib/WebKitGLib/WebKitTestServer.h:
4:28 AM Changeset in webkit [273302] by commit-queue@webkit.org
  • 3 edits
    2 adds in trunk

Nullptr crash in ModifySelectionListLevelCommand::appendSiblingNodeRange
https://bugs.webkit.org/show_bug.cgi?id=221650

Patch by Frederic Wang <fwang@igalia.com> on 2021-02-23
Reviewed by Ryosuke Niwa.

Source/WebCore:

getStartEndListChildren relies on the render tree to move the "end" node to the next sibling,
but this does not necessarily correspond to a sibling of the "start" node in the DOM tree.
This breaks the assumption of ModifySelectionListLevelCommand::appendSiblingNodeRange that
the "start" and "end" nodes are siblings (in that order), causing a null-pointer dereference.
This patch fixes the issue by ensuring that getStartEndListChildren does not try to change
the "end" node if it is not a sibling of the "start" one.

Test: fast/editing/modify-selection-list-level-crash.html

  • editing/ModifySelectionListLevel.cpp:

(WebCore::getStartEndListChildren): Don't change the end node if r->node() is a sibling of
startChildList.

LayoutTests:

  • fast/editing/modify-selection-list-level-crash-expected.txt: Added.
  • fast/editing/modify-selection-list-level-crash.html: Added.
12:58 AM Changeset in webkit [273301] by commit-queue@webkit.org
  • 10 edits in trunk

HTMLCanvasElement::copiedImage() contains old image with GPU Process on
https://bugs.webkit.org/show_bug.cgi?id=222101

Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2021-02-23
Reviewed by Simon Fraser.

Source/WebKit:

Implement RemoteImageBufferProxy::copyImage and
RemoteImageBufferProxy::copyNativeImage.
Implement by asking the data from the GPU process.

Previously, with AcceleratedImageBufferShareableMappedBackend
the HTMLCanvasElement::copiedImage() would construct the copy
by copying the CGContext backed by the IOSurface that is accessible
by both processes. This would succeed. After a draw to the image,
the second copy would not reflect the draw but contain the same
image as the first copy.

Fix by not using the fact that the IOSurface is accessible by both
processes. In the end, IOSurfaces will not be available in
Web process.

Converts NativeImage to ShareableBitmap with WebCore::CompositeOperator::Copy
since the ImageBuffers might have unpremultiplied contents. Also, ShareableBitmap
does not have contents, so blending is overhead.

No new tests, enables ~150 tests.

  • GPUProcess/graphics/RemoteGraphicsContextGL.cpp:

(WebKit::RemoteGraphicsContextGL::copyTextureFromMedia):

  • GPUProcess/graphics/RemoteRenderingBackend.cpp:

(WebKit::RemoteRenderingBackend::getShareableBitmapForImageBuffer):

  • GPUProcess/graphics/RemoteRenderingBackend.h:
  • GPUProcess/graphics/RemoteRenderingBackend.messages.in:
  • WebProcess/GPU/graphics/RemoteImageBufferProxy.h:
  • WebProcess/GPU/graphics/RemoteRenderingBackendProxy.cpp:

(WebKit::RemoteRenderingBackendProxy::getShareableBitmap):

  • WebProcess/GPU/graphics/RemoteRenderingBackendProxy.h:

LayoutTests:

  • gpu-process/TestExpectations:
12:20 AM Changeset in webkit [273300] by rniwa@webkit.org
  • 2 edits in trunk/Source/WebCore

Handle Page::didFinishLoadingImageForElement asynchronously
https://bugs.webkit.org/show_bug.cgi?id=221390

Reviewed by Antti Koivisto.

Use EventLoop instead of RunLoop::main() to be thread safe in iOS WebKit1.

  • page/Page.cpp:

(WebCore::Page::didFinishLoadingImageForElement):

Feb 22, 2021:

11:43 PM Changeset in webkit [273299] by don.olmstead@sony.com
  • 21 edits in trunk/Source

Non-unified build fixes late February 2021 edition
https://bugs.webkit.org/show_bug.cgi?id=222303

Unreviewed non-unified build fixes.

Source/JavaScriptCore:

  • API/JSAPIValueWrapper.cpp:
  • bytecode/SetPrivateBrandVariant.h:
  • heap/HeapAnalyzer.h:
  • heap/HeapProfiler.cpp:
  • parser/ParserTokens.h:
  • runtime/DOMAttributeGetterSetter.cpp:
  • runtime/GlobalExecutable.cpp:
  • runtime/JSScriptFetchParameters.cpp:

Source/WebCore:

  • bindings/js/ScriptModuleLoader.cpp:
  • layout/integration/LayoutIntegrationInlineContentBuilder.cpp:
  • layout/integration/LayoutIntegrationInlineContentBuilder.h:
  • workers/WorkerGlobalScopeProxy.h:
  • workers/WorkerMessagingProxy.cpp:
  • workers/WorkerOrWorkletScriptController.cpp:
  • workers/WorkerOrWorkletScriptController.h:
  • workers/service/ServiceWorkerJob.cpp:

Source/WebKit:

  • GPUProcess/graphics/RemoteRenderingBackend.cpp:
  • WebProcess/GPU/graphics/RemoteRenderingBackendProxy.cpp:
7:50 PM Changeset in webkit [273298] by rniwa@webkit.org
  • 4 edits in trunk/Source/WebCore

REGRESSION (r272928): ASSERT NOT REACHED in WebCore::FrameSelection::setSelectionWithoutUpdatingAppearance
https://bugs.webkit.org/show_bug.cgi?id=222219
<rdar://problem/74548257>

Reviewed by Wenson Hsieh.

The assertion failure was caused by confirmCompositionAndNotifyClient called in commitProvisionalLoad
committing the composition even though the composition node had been removed from the document.

Fixed the bug by canceling the composition if the composition node had been removed or the selection
had been moved away from it in confirmCompositionAndNotifyClient.

Test: editing/input/select-all-clear-input-method.html

  • editing/Editor.cpp:

(WebCore::Editor::confirmOrCancelCompositionAndNotifyClient): Renamed from confirmCompositionAndNotifyClient.

  • editing/Editor.h:
  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::commitProvisionalLoad):

7:34 PM Changeset in webkit [273297] by Devin Rousso
  • 2 edits in trunk/Source/WebKit

[Payment Request] REGRESSION(r273143): crash shortly after showing the Apple Pay sheet
https://bugs.webkit.org/show_bug.cgi?id=222298
<rdar://problem/74557943>

Reviewed by Wenson Hsieh.

  • Platform/cocoa/PaymentAuthorizationPresenter.mm:

(WebKit::toNSErrors):
Don't use adoptNS with +[NSMutableArray array] since that returns an autoreleased object.
Use the helper createNSArray instead (as was previously done before r273143).

7:16 PM Changeset in webkit [273296] by Wenson Hsieh
  • 14 edits
    2 adds in trunk/Source

WebMouseEvent.h should avoid pulling in WebCore headers that know about DOM nodes
https://bugs.webkit.org/show_bug.cgi?id=222291

Reviewed by Darin Adler.

Source/WebCore:

Refactor PointerEvent.h so that the static class helper methods for getting the names of mouse, pen and touch
pointer event types are instead separate functions in PointerEventTypeNames.h. This allows us to just import
PointerEventTypeNames.h instead of PointerEvent.h in WebKit -- and, in particular, within WebKit headers
that are exclusive to the UI process.

No change in behavior.

  • Headers.cmake:
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • dom/PointerEvent.cpp:

(WebCore::PointerEvent::mousePointerType): Deleted.
(WebCore::PointerEvent::penPointerType): Deleted.
(WebCore::PointerEvent::touchPointerType): Deleted.

  • dom/PointerEvent.h:

Drive-by fix: also forward declare Node instead of including Node.h; WebCore::Node is only used in this
header in the context of RefPtr<Node>, so the forward declaration is sufficient.

  • dom/PointerEventTypeNames.cpp: Added.

(WebCore::mousePointerEventType):
(WebCore::penPointerEventType):
(WebCore::touchPointerEventType):

  • dom/PointerEventTypeNames.h: Added.
  • dom/ios/PointerEventIOS.cpp:
  • page/PointerCaptureController.cpp:

(WebCore::PointerCaptureController::reset):
(WebCore::PointerCaptureController::pointerEventForMouseEvent):
(WebCore::PointerCaptureController::dispatchEvent):
(WebCore::PointerCaptureController::pointerEventWillBeDispatched):
(WebCore::PointerCaptureController::pointerEventWasDispatched):
(WebCore::PointerCaptureController::processPendingPointerCapture):

Source/WebKit:

Import PointerEventTypeNames.h instead of PointerEvent.h in several UI process and shared headers.

  • Shared/WebMouseEvent.h:
  • UIProcess/API/gtk/WebKitWebViewBase.cpp:

(primaryPointerForType):
(webkitWebViewBaseSynthesizeMouseEvent):

  • UIProcess/Automation/SimulatedInputDispatcher.cpp:

(WebKit::SimulatedInputDispatcher::transitionInputSourceToState):

  • UIProcess/Automation/WebAutomationSession.cpp:

(WebKit::WebAutomationSession::performMouseInteraction):

  • UIProcess/gtk/PointerLockManager.cpp:

(WebKit::PointerLockManager::handleMotion):

6:32 PM Changeset in webkit [273295] by Alan Coon
  • 1 copy in tags/Safari-611.1.18.1.1

Tag Safari-611.1.18.1.1.

6:29 PM Changeset in webkit [273294] by Alan Coon
  • 1 copy in tags/Safari-611.1.18.0.1

Tag Safari-611.1.18.0.1.

6:08 PM Changeset in webkit [273293] by Chris Dumez
  • 3 edits in trunk/Source/WebKit

Add assertions to help identify to source of <rdar://68340471>
https://bugs.webkit.org/show_bug.cgi?id=222290

Reviewed by Alex Christensen.

  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::pageBeginUsingWebsiteDataStore):
(WebKit::WebProcessPool::pageEndUsingWebsiteDataStore):
(WebKit::WebProcessPool::hasPagesUsingWebsiteDataStore const):

  • UIProcess/WebProcessProxy.cpp:

(WebKit::WebProcessProxy::addExistingWebPage):

6:02 PM Changeset in webkit [273292] by keith_miller@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

Move asyncModuleEvaluation into its own function and use intrinsic constants
https://bugs.webkit.org/show_bug.cgi?id=222281

Reviewed by Yusuke Suzuki.

Also delete an unused field on the module entry.

  • builtins/ModuleLoader.js:

(globalPrivate.newRegistryEntry):
(moduleEvaluation):
(async asyncModuleEvaluation):

  • runtime/JSModuleLoader.cpp:
6:00 PM Changeset in webkit [273291] by Said Abou-Hallawa
  • 15 edits in trunk

[GPU Process] Implement the ClipToDrawingCommands item by using begin and end markers
https://bugs.webkit.org/show_bug.cgi?id=222230

Reviewed by Simon Fraser.

Source/WebCore:

Instead of encoding and decoding the clipping commands as a separate
DisplayList, the recorder will insert a "begin" and "end" markers before
and after the clipping commands.

When replaying the "begin" mark, the replayer will create a mask ImageBuffer
and force using its context for the following items.

When replaying the "end" mark, it will clip the original context to the
mask ImageBuffer.

  • platform/graphics/displaylists/DisplayList.cpp:

(WebCore::DisplayList::DisplayList::append):

  • platform/graphics/displaylists/DisplayListItemBuffer.cpp:

(WebCore::DisplayList::ItemHandle::apply):
(WebCore::DisplayList::ItemHandle::destroy):
(WebCore::DisplayList::ItemHandle::safeCopy const):

  • platform/graphics/displaylists/DisplayListItemType.cpp:

(WebCore::DisplayList::sizeOfItemInBytes):
(WebCore::DisplayList::isDrawingItem):
(WebCore::DisplayList::isInlineItem):

  • platform/graphics/displaylists/DisplayListItemType.h:
  • platform/graphics/displaylists/DisplayListItems.cpp:

(WebCore::DisplayList::operator<<):
(WebCore::DisplayList::ClipToDrawingCommands::apply const): Deleted.

  • platform/graphics/displaylists/DisplayListItems.h:

(WebCore::DisplayList::BeginClipToDrawingCommands::BeginClipToDrawingCommands):
(WebCore::DisplayList::BeginClipToDrawingCommands::colorSpace const):
(WebCore::DisplayList::EndClipToDrawingCommands::EndClipToDrawingCommands):
(WebCore::DisplayList::EndClipToDrawingCommands::destination const):
(WebCore::DisplayList::ClipToDrawingCommands::ClipToDrawingCommands): Deleted.
(WebCore::DisplayList::ClipToDrawingCommands::operator=): Deleted.
(WebCore::DisplayList::ClipToDrawingCommands::destination const): Deleted.
(WebCore::DisplayList::ClipToDrawingCommands::colorSpace const): Deleted.
(WebCore::DisplayList::ClipToDrawingCommands::drawingCommands const): Deleted.
(WebCore::DisplayList::ClipToDrawingCommands::encode const): Deleted.
(WebCore::DisplayList::ClipToDrawingCommands::decode): Deleted.

  • platform/graphics/displaylists/DisplayListRecorder.cpp:

(WebCore::DisplayList::Recorder::clipToDrawingCommands):

  • platform/graphics/displaylists/DisplayListReplayer.cpp:

(WebCore::DisplayList::Replayer::context const):
(WebCore::DisplayList::Replayer::applyItem):

  • platform/graphics/displaylists/DisplayListReplayer.h:

Source/WebKit:

Replace the DisplayList item ClipToDrawingCommands by the pair items
BeginClipToDrawingCommands and EndClipToDrawingCommands.

  • GPUProcess/graphics/RemoteRenderingBackend.cpp:

(WebKit::RemoteRenderingBackend::decodeItem):

  • WebProcess/GPU/graphics/RemoteImageBufferProxy.h:

LayoutTests:

The text with gradient tests will be fixed by this change.

  • gpu-process/TestExpectations:
5:43 PM Changeset in webkit [273290] by weinig@apple.com
  • 11 edits
    14 adds in trunk

HTMLModelElement needs a renderer
https://bugs.webkit.org/show_bug.cgi?id=222114

Reviewed by Simon Fraser.

Source/WebCore:

Tests: model-element/model-element-ready-load-aborted.html

model-element/model-element-ready-load-failed.html
model-element/model-element-ready.html
model-element/model-element-renderer-no-source.html
model-element/model-element-renderer.html

  • Headers.cmake:
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:

Add RenderModel.h/cpp

  • Modules/model-element/HTMLModelElement.cpp:

(WebCore::HTMLModelElement::HTMLModelElement):
(WebCore::HTMLModelElement::~HTMLModelElement):
(WebCore::HTMLModelElement::modelData const):
(WebCore::HTMLModelElement::sourcesChanged):
(WebCore::HTMLModelElement::setSourceURL):
(WebCore::HTMLModelElement::readyPromiseResolve):
(WebCore::HTMLModelElement::createElementRenderer):
(WebCore::HTMLModelElement::responseReceived):
(WebCore::HTMLModelElement::dataReceived):
(WebCore::HTMLModelElement::redirectReceived):
(WebCore::HTMLModelElement::notifyFinished):

  • Modules/model-element/HTMLModelElement.h:
  • Modules/model-element/HTMLModelElement.idl:

Add basic loading of model data as a CachedRawResource. In the future,
we may want a more specialized loader, but for now this gets the data
into a data buffer and that's a good start.

Also adds a "ready" promise that resolves when the load completes. This
may mutate to an event in the future as the spec moves forward.

  • rendering/RenderModel.cpp: Added.

(WebCore::RenderModel::RenderModel):
(WebCore::RenderModel::modelElement const):
(WebCore::RenderModel::updateFromElement):

  • rendering/RenderModel.h: Added.
  • rendering/RenderObject.h:

(WebCore::RenderObject::isRenderModel const):
Add a simple RenderReplaced subclass as the starting point of a renderer
for <model>. It's enough that it shows up in a render tree dump, but not
really anything else.

LayoutTests:

Add basic tests for loading HTMLModelElement elements and rendering
RenderModel elements.

  • model-element/model-element-ready-expected.txt: Added.
  • model-element/model-element-ready-load-aborted-expected.txt: Added.
  • model-element/model-element-ready-load-aborted.html: Added.
  • model-element/model-element-ready-load-failed-expected.txt: Added.
  • model-element/model-element-ready-load-failed.html: Added.
  • model-element/model-element-ready.html: Added.
  • model-element/model-element-renderer-expected.txt: Added.
  • model-element/model-element-renderer-no-source-expected.txt: Added.
  • model-element/model-element-renderer-no-source.html: Added.
  • model-element/model-element-renderer.html: Added.
  • model-element/resources: Added.
  • model-element/resources/heart.usdz: Added.
5:10 PM Changeset in webkit [273289] by eric.carlson@apple.com
  • 2 edits in trunk/Source/WebKit

UserMediaPermissionRequestManagerProxy may be released while computing capture device list
https://bugs.webkit.org/show_bug.cgi?id=222236
<rdar://74480265>

Unreviewed, address post-review comment.

  • UIProcess/UserMediaPermissionRequestManagerProxy.cpp:

(WebKit::UserMediaPermissionRequestManagerProxy::computeFilteredDeviceList): Use
captured this.

4:31 PM Changeset in webkit [273288] by Chris Dumez
  • 22 edits
    1 copy in trunk/Source

Prepare for memory ownership transfer in the GPUProcess
https://bugs.webkit.org/show_bug.cgi?id=222122

Reviewed by Simon Fraser.

Source/WebKit:

Prepare for memory ownership transfer in the GPUProcess:

  1. Have the WebProcess create a task identity token and pass it to the GPUProcess when connecting to it. The WebProcess' task identity token is then stored on the GPUConnectionToWebProcess object.
  2. Add the entitlement to the GPUProcess that is needed to transfer memory ownership to another process.

This is a first step towards having the GPUProcess transfer memory ownership of its
IOSurfaces and Metal textures to the WebProcesses it is serving.

  • GPUProcess/GPUConnectionToWebProcess.cpp:

(WebKit::GPUConnectionToWebProcess::create):
(WebKit::GPUConnectionToWebProcess::GPUConnectionToWebProcess):

  • GPUProcess/GPUConnectionToWebProcess.h:

(WebKit::GPUConnectionToWebProcess::webProcessIdentityToken const):

  • GPUProcess/GPUProcess.cpp:

(WebKit::GPUProcess::createGPUConnectionToWebProcess):

  • GPUProcess/GPUProcess.h:
  • GPUProcess/GPUProcess.messages.in:
  • Scripts/process-entitlements.sh:
  • Shared/GPUProcessConnectionParameters.h: Copied from Source/WTF/wtf/MachSendRight.h.

(WebKit::GPUProcessConnectionParameters::encode const):
(WebKit::GPUProcessConnectionParameters::decode):

  • UIProcess/GPU/GPUProcessProxy.cpp:

(WebKit::GPUProcessProxy::getGPUProcessConnection):

  • UIProcess/GPU/GPUProcessProxy.h:
  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::getGPUProcessConnection):

  • UIProcess/WebProcessPool.h:
  • UIProcess/WebProcessProxy.cpp:

(WebKit::WebProcessProxy::getGPUProcessConnection):

  • UIProcess/WebProcessProxy.h:
  • UIProcess/WebProcessProxy.messages.in:
  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::platformInitializeGPUProcessConnectionParameters):
(WebKit::WebProcess::getGPUProcessConnection):

  • WebProcess/WebProcess.h:
  • WebProcess/cocoa/WebProcessCocoa.mm:

(WebKit::WebProcess::platformInitializeGPUProcessConnectionParameters):

Source/WTF:

  • wtf/PlatformHave.h:

Add feature flag for TASK_IDENTITY_TOKEN as this API was only
introduced very recently.

  • wtf/MachSendRight.h:
  • wtf/cocoa/MachSendRight.cpp:

(WTF::MachSendRight::MachSendRight):
(WTF::MachSendRight::operator=):
Add a copy constructor to MachSendRight for convenience.

4:19 PM Changeset in webkit [273287] by achristensen@apple.com
  • 4 edits in trunk

Re-enable RangeResponseGenerator.
https://bugs.webkit.org/show_bug.cgi?id=221072
<rdar://problem/74551753>

Source/WebCore:

  • platform/network/cocoa/RangeResponseGenerator.mm:

(WebCore::RangeResponseGenerator::willSynthesizeRangeResponses):

Tools:

r273263 was a false alarm. Reverting that revision.

  • TestWebKitAPI/Tests/WebKitCocoa/MediaLoading.mm:

(TestWebKitAPI::TEST):

4:03 PM Changeset in webkit [273286] by pvollan@apple.com
  • 5 edits in trunk/Source/WebKit

[Cocoa] Send sandbox extensions for Network Extension services in load parameters
https://bugs.webkit.org/show_bug.cgi?id=222284
<rdar://problem/74402532>

Reviewed by Brent Fulgham.

Currently, sandbox extensions for Network Extension services are sent from the UI process to the WebContent process when the
policy decision is made, but that is not soon enough in all cases. They should also be sent as part of the load parameters.

  • Shared/Cocoa/LoadParametersCocoa.mm:

(WebKit::LoadParameters::platformEncode const):
(WebKit::LoadParameters::platformDecode):

  • Shared/LoadParameters.h:
  • UIProcess/Cocoa/WebPageProxyCocoa.mm:

(WebKit::WebPageProxy::addPlatformLoadParameters):

  • WebProcess/WebPage/Cocoa/WebPageCocoa.mm:

(WebKit::WebPage::platformDidReceiveLoadParameters):

3:49 PM Changeset in webkit [273285] by Russell Epstein
  • 1 copy in tags/Safari-612.1.4.2

Tag Safari-612.1.4.2.

3:37 PM Changeset in webkit [273284] by Russell Epstein
  • 8 edits in branches/safari-612.1.4-branch/Source

Versioning.

WebKit-7612.1.4.2

3:19 PM Changeset in webkit [273283] by Chris Dumez
  • 5 edits in trunk

[Cocoa] Add WKWebView session restoration API
https://bugs.webkit.org/show_bug.cgi?id=220958
<rdar://70956146>

Reviewed by Geoffrey Garen.

Source/WebKit:

Add WKWebView session restoration API so that applications can easily retrieve
view state (such as back-forward list, scroll position, form data...) and
restore it on a WKWebView later on.

  • UIProcess/API/Cocoa/WKWebView.h:
  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView interactionState]):
(-[WKWebView setInteractionState:]):

Tools:

Add API test coverage.

  • TestWebKitAPI/Tests/WebKit/WKBackForwardList.mm:

(TEST):

3:07 PM Changeset in webkit [273282] by dino@apple.com
  • 2 edits in trunk/Source/WebCore

Add a PlatformXR::Device subclass for Cocoa
https://bugs.webkit.org/show_bug.cgi?id=222215

Patch by Ada Chan <ada.chan@apple.com> on 2021-02-22
Reviewed by Dean Jackson.

  • platform/xr/cocoa/PlatformXRCocoa.h:
2:27 PM Changeset in webkit [273281] by Russell Epstein
  • 5 edits
    2 adds in branches/safari-611.1.18.0-branch

Cherry-pick r273003. rdar://problem/74608107

Animated keyframe style needs to go through full style adjuster
https://bugs.webkit.org/show_bug.cgi?id=222036
rdar://72421747

Reviewed by Zalan Bujtas.

Source/WebCore:

We can create unadjusted styles via keyframe animations and those may cause problems in rendering.

Test: fast/animation/animation-position-crash.html

  • style/StyleAdjuster.cpp: (WebCore::Style::Adjuster::adjustAnimatedStyle):

Make this a member function and invoke Adjuster::adjust.
Simplify the z-index adjustment since it is mostly handled by adjust.

  • style/StyleAdjuster.h:
  • style/StyleTreeResolver.cpp:

Always use style adjuster for keyframe animation.

(WebCore::Style::TreeResolver::createAnimatedElementUpdate):

LayoutTests:

  • fast/animation/animation-position-crash-expected.html: Added.
  • fast/animation/animation-position-crash.html: Added.

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

2:24 PM Changeset in webkit [273280] by Russell Epstein
  • 2 edits in branches/safari-611.1.18.1-branch/Source/WebKit

Cherry-pick r273271. rdar://problem/74611278

[macOS] Crash under AuxiliaryProcess::initializeSandbox
https://bugs.webkit.org/show_bug.cgi?id=222233
<rdar://problem/74261611>

Reviewed by Brent Fulgham.

When a WebKit client provides a user directory suffix in the process initialization parameters, confstr with the new
user suffix applied will fail to create the full directory path if it does not exist, and return an empty result.
This will lead to empty paths in the sandbox parameters, which will cause the sandbox to fail to compile, which will
eventually crash the WebKit process. This patch addresses this by making sure the new user directory suffix does not
represent a path, since confstr is not able to handle user directory suffixes containing paths that do not exist.
Additionally, this patch reverts r271417, which was the first attempt at fixing this crash, but was unsuccessful in
doing so.

  • Shared/mac/AuxiliaryProcessMac.mm: (WebKit::initializeSandboxParameters): (WebKit::AuxiliaryProcess::initializeSandbox):

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

2:24 PM Changeset in webkit [273279] by Russell Epstein
  • 5 edits
    2 adds in branches/safari-611.1.18.1-branch

Cherry-pick r273003. rdar://problem/74608118

Animated keyframe style needs to go through full style adjuster
https://bugs.webkit.org/show_bug.cgi?id=222036
rdar://72421747

Reviewed by Zalan Bujtas.

Source/WebCore:

We can create unadjusted styles via keyframe animations and those may cause problems in rendering.

Test: fast/animation/animation-position-crash.html

  • style/StyleAdjuster.cpp: (WebCore::Style::Adjuster::adjustAnimatedStyle):

Make this a member function and invoke Adjuster::adjust.
Simplify the z-index adjustment since it is mostly handled by adjust.

  • style/StyleAdjuster.h:
  • style/StyleTreeResolver.cpp:

Always use style adjuster for keyframe animation.

(WebCore::Style::TreeResolver::createAnimatedElementUpdate):

LayoutTests:

  • fast/animation/animation-position-crash-expected.html: Added.
  • fast/animation/animation-position-crash.html: Added.

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

2:19 PM Changeset in webkit [273278] by Russell Epstein
  • 8 edits in branches/safari-611.1.18.1-branch/Source

Versioning.

WebKit-7611.1.18.1.1

2:08 PM Changeset in webkit [273277] by Russell Epstein
  • 8 edits in branches/safari-611.1.18.0-branch/Source

Versioning.

WebKit-7611.1.18.0.1

1:59 PM Changeset in webkit [273276] by Chris Dumez
  • 63 edits in trunk

Use adoptNS() as soon as we [[ObjcClass alloc] init] to avoid leaks
https://bugs.webkit.org/show_bug.cgi?id=222237

Reviewed by Darin Adler.

Source/WebCore:

  • accessibility/mac/WebAccessibilityObjectWrapperMac.mm:

(-[WebAccessibilityObjectWrapper ALLOW_DEPRECATED_IMPLEMENTATIONS_END]):

  • bridge/testbindings.mm:

(main):

  • platform/cocoa/VideoFullscreenModel.h:

(WebCore::VideoFullscreenModel::createVideoFullscreenViewController):

  • platform/graphics/cocoa/WebActionDisablingCALayerDelegate.mm:

(+[WebActionDisablingCALayerDelegate shared]):

  • platform/ios/WebBackgroundTaskController.mm:

(+[WebBackgroundTaskController sharedController]):

  • platform/ios/WebItemProviderPasteboard.mm:

(+[WebItemProviderPasteboard sharedInstance]):

  • platform/ios/wak/WebCoreThread.mm:

(sAsyncDelegates):
(WebThreadCallDelegateAsync):
(WebRunLoopUnlockInternal):
(StartWebThread):

  • platform/mac/ThemeMac.mm:

(WebCore::buttonCell):
(WebCore::button):

  • platform/mac/WebNSAttributedStringExtras.mm:

(WebCore::attributedStringByStrippingAttachmentCharacters):

  • platform/network/mac/ResourceHandleMac.mm:

(WebCore::operationQueueForAsyncClients):

Source/WebKit:

  • UIProcess/API/Cocoa/NSAttributedString.mm:

(globalConfiguration):
(+[_WKAttributedStringWebViewCache configuration]):
(+[_WKAttributedStringWebViewCache clearConfiguration]):

  • UIProcess/API/Cocoa/WKNSURLAuthenticationChallenge.mm:

(-[WKNSURLAuthenticationChallenge _web_createTarget]):

  • UIProcess/API/Cocoa/WKProcessPool.mm:

(sharedProcessPool):
(-[WKProcessPool encodeWithCoder:]):
(+[WKProcessPool _sharedProcessPool]):

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView loadSimulatedRequest:withResponseHTMLString:]):

  • UIProcess/API/Cocoa/WKWebsiteDataStore.mm:

(+[WKWebsiteDataStore allWebsiteDataTypes]):

  • UIProcess/Cocoa/PreferenceObserver.mm:

(+[WKPreferenceObserver sharedInstance]):

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

(WebKit::VideoFullscreenModelContext::createVideoFullscreenViewController):

  • UIProcess/Cocoa/WebInspectorPreferenceObserver.mm:

(+[WKWebInspectorPreferenceObserver sharedInstance]):

  • UIProcess/WebAuthentication/Cocoa/AuthenticatorPresenterCoordinator.mm:

(WebKit::AuthenticatorPresenterCoordinator::AuthenticatorPresenterCoordinator):

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView supportedPasteboardTypesForCurrentSelection]):
(-[WKContentView assignLegacyDataForContextMenuInteraction]):

  • UIProcess/ios/WKMouseDeviceObserver.mm:

(+[WKMouseDeviceObserver sharedInstance]):

  • UIProcess/ios/WKStylusDeviceObserver.mm:

(+[WKStylusDeviceObserver sharedInstance]):

  • UIProcess/mac/WKTextInputWindowController.mm:

(+[WKTextInputWindowController sharedTextInputWindowController]):

  • UIProcess/mac/WebColorPickerMac.mm:

(+[WKPopoverColorWell _colorPopoverCreateIfNecessary:]):

  • UIProcess/mac/WebDataListSuggestionsDropdownMac.mm:

(-[WKDataListSuggestionWindow initWithContentRect:styleMask:backing:defer:]):

  • WebProcess/InjectedBundle/API/mac/WKDOMInternals.mm:

(WebKit::initWithImpl):
(WebKit::toWKDOMType):

  • WebProcess/InjectedBundle/mac/InjectedBundleMac.mm:

(WebKit::InjectedBundle::initialize):

Source/WebKitLegacy/ios:

  • Misc/WebGeolocationProviderIOS.mm:

(+[WebGeolocationProviderIOS sharedGeolocationProvider]):

Source/WebKitLegacy/mac:

  • DefaultDelegates/WebDefaultUIDelegate.mm:

(+[WebDefaultUIDelegate sharedUIDelegate]):

  • History/WebHistoryItem.mm:

(-[WebHistoryItem copyWithZone:]):

  • Misc/WebIconDatabase.mm:

(+[WebIconDatabase sharedIconDatabase]):

  • Misc/WebNSPasteboardExtras.mm:

(_writableTypesForImageWithoutArchive):

  • Plugins/WebBaseNetscapePluginView.mm:

(-[WebBaseNetscapePluginView cacheSnapshot]):

  • Plugins/WebNetscapePluginStream.mm:

(WebNetscapePluginStream::deliverData):

  • Plugins/WebPluginController.mm:

(pluginViews):
(-[WebPluginController plugInViewWithArguments:fromPluginPackage:]):
(+[WebPluginController addPlugInView:]):
(+[WebPluginController isPlugInView:]):
(-[WebPluginController destroyPlugin:]):
(-[WebPluginController destroyAllPlugins]):

  • Plugins/WebPluginDatabase.mm:

(sharedDatabase):
(+[WebPluginDatabase sharedDatabase]):
(+[WebPluginDatabase sharedDatabaseIfExists]):
(+[WebPluginDatabase closeSharedDatabase]):
(-[WebPluginDatabase refresh]):
(-[WebPluginDatabase _plugInPaths]):
(-[WebPluginDatabase _removePlugin:]):

  • Scripts/PreferencesTemplates/WebPreferencesExperimentalFeatures.mm.erb:
  • Scripts/PreferencesTemplates/WebPreferencesInternalFeatures.mm.erb:
  • WebView/WebDataSource.mm:

(+[WebDataSource _repTypesAllowImageTypeOmission:]):

  • WebView/WebFrameView.mm:

(+[WebFrameView _viewTypesAllowImageTypeOmission:]):

  • WebView/WebFullScreenController.mm:

(createBackgroundFullscreenWindow):

  • WebView/WebHTMLRepresentation.mm:

(regExpForLabels):

  • WebView/WebHTMLView.mm:

(+[WebHTMLView _insertablePasteboardTypes]):

  • WebView/WebPreferences.mm:

(standardPreferences):
(webPreferencesInstances):
(+[WebPreferences standardPreferences]):
(+[WebPreferences _getInstanceForIdentifier:]):
(+[WebPreferences _setInstance:forIdentifier:]):
(+[WebPreferences _checkLastReferenceForIdentifier:]):

  • WebView/WebView.mm:

(schemesWithRepresentationsSet):
(outlookQuirksUserScriptContents):
(-[WebView _injectOutlookQuirksScript]):
(laBanquePostaleQuirksScript):
(-[WebView _injectLaBanquePostaleQuirks]):
(+[WebView _registerViewClass:representationClass:forURLScheme:]):
(+[WebView _representationExistsForURLScheme:]):
(+[WebView automaticallyNotifiesObserversForKey:]):
(-[WebView _declaredKeys]):
(-[WebView addPluginInstanceView:]):
(-[WebView _enterFullScreenForElement:]):

  • WebView/WebViewData.h:

Tools:

  • TestRunnerShared/mac/NSPasteboardAdditions.mm:

(+[NSPasteboard _modernPasteboardType:]):

  • TestWebKitAPI/Tests/WebKitCocoa/WKURLSchemeHandler-1.mm:
  • TestWebKitAPI/Tests/WebKitLegacy/mac/DeallocWebViewInEventListener.mm:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/mac/CancelLoadFromResourceLoadDelegate.mm:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/mac/CloseNewWindowInNavigationPolicyDelegate.mm:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/mac/MemoryCacheDisableWithinResourceLoadDelegate.mm:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/mac/MemoryCachePruneWithinResourceLoadDelegate.mm:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/mac/StopLoadingFromDidReceiveResponse.mm:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/mac/WindowlessWebViewWithMedia.mm:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/ios/mainIOS.mm:

(main):

  • TestWebKitAPI/mac/mainMac.mm:

(main):

1:39 PM Changeset in webkit [273275] by Martin Robinson
  • 13 edits in trunk/Source/WebCore

Clean up ScrollableArea and ScrollAnimator API and convert less between offsets and positions
https://bugs.webkit.org/show_bug.cgi?id=222111

Reviewed by Simon Fraser.

Clean up the APIs exposed by ScrollableArea and ScrollAnimator to make them more
consistent. With this change it should be a bit easier to tell if a particular
method will trigger an animation or not. In addition, we accept positions (as
opposed to offsets) everywhere, which allows us to reduce the number of
offset <-> position conversions.

Finally, this change is also interesting for scroll snap, because it will
make it easier to use a native animation on MacOS to use for snapping after
scrollbar thumb dragging.

No new tests. This should not change behavior.

  • page/FrameView.cpp:

(WebCore::FrameView::setScrollPosition): Use new ScrollableArea APIs that
accept positions.
(WebCore::FrameView::scrollToPositionWithAnimation): Added this version
of the method that uses positions.
(WebCore::FrameView::scrollToOffsetWithAnimation): Deleted.

  • page/FrameView.h: Update method declaration.
  • platform/ScrollAnimator.cpp:

(WebCore::ScrollAnimator::scroll): Simplified a little bit the code that handles
scroll snapping here. Unified scroll snap and non-scroll snap compilation paths.
(WebCore::ScrollAnimator::scrollToOffsetWithoutAnimation): This method
now converts to a position and then calls scrollToPositionWithoutAnimation.
(WebCore::ScrollAnimator::scrollToPositionWithoutAnimation): Split this out
from scrollToOffsetWithoutAnimation.
(WebCore::ScrollAnimator::scrollToOffsetWithAnimation): This method now
converts to a position and calls scrollToPositionWithAnimation.
(WebCore::ScrollAnimator::scrollToPositionWithAnimation): Split this
out from scrollToOffsetWithAnimation.
(WebCore::ScrollAnimator::handleWheelEvent): Call scrollToPositionWithAnimation
instead of using the scroll(...) method.
(WebCore::ScrollAnimator::notifyPositionChanged): Eliminate a conversion here.
(WebCore::ScrollAnimator::scrollWithoutAnimation): Deleted.
(WebCore::ScrollAnimator::scrollToOffset): Deleted.

  • platform/ScrollAnimator.h: Update method list.
  • platform/ScrollView.cpp:

(WebCore::ScrollView::updateScrollbars): Eliminate a conversion here.

  • platform/ScrollableArea.cpp:

Removed scrollToOffsetWithAnimation and added two new methods scrollToPositionWithAnimation
and scrollToPositionWithoutAnimation. scrollToOffsetWithoutAnimation is still used
in quite a few places, so we maintain this.
(WebCore::ScrollableArea::setScrollOffsetFromInternals): Use setScrollPositionFromAnimation now.
(WebCore::ScrollableArea::setScrollPositionFromAnimation): Renamed from setScrollOffsetFromAnimation
and eliminated a mandatory cnoversion.
(WebCore::ScrollableArea::scrollToOffsetWithAnimation): Deleted.
(WebCore::ScrollableArea::setScrollOffsetFromAnimation): Deleted.

  • platform/ScrollableArea.h: Update method declarations.
  • platform/mac/ScrollAnimatorMac.h: Ditto.
  • platform/mac/ScrollAnimatorMac.mm:

(WebCore::ScrollAnimatorMac::scroll): Handle calling into scrollToPositionWithoutAnimation
and scrollToPositionWithAnimation ourselves now that we have this API. This simplifies
program flow a bit.
(WebCore::ScrollAnimatorMac::scrollToPositionWithAnimation):
(WebCore::ScrollAnimatorMac::scrollToPositionWithoutAnimation): Expose these two new
methods which are part of the base class API now.
(WebCore::ScrollAnimatorMac::immediateScrollToPositionForScrollAnimation): Use
ScrollAnimator::scrollToPositionWithoutAnimation because it was the same as
immediateScrollToPosition.
(WebCore::ScrollAnimatorMac::scrollToOffsetWithoutAnimation): Deleted.
(WebCore::ScrollAnimatorMac::immediateScrollToPosition): Deleted. No longer used.

  • rendering/RenderLayerScrollableArea.cpp:

(WebCore::RenderLayerScrollableArea::scrollToOffset): Unconditionally convert to a position
here.
(WebCore::RenderLayerScrollableArea::updateScrollInfoAfterLayout): Use ScrollableArea::scrollToPositionWithoutAnimation
because it eliminates one conversion between units.

1:38 PM Changeset in webkit [273274] by Russell Epstein
  • 1 copy in branches/safari-611.1.18.1-branch

New branch.

1:38 PM Changeset in webkit [273273] by Russell Epstein
  • 1 copy in branches/safari-611.1.18.0-branch

New branch.

1:09 PM Changeset in webkit [273272] by Peng Liu
  • 2 edits in trunk/Source/WebCore

Video elements do not work as sources for TexImage2D calls in GPU Process
https://bugs.webkit.org/show_bug.cgi?id=218184

Reviewed by Eric Carlson.

A follow-up patch of r273213 to fix build failures on the windows port.

  • platform/graphics/MediaPlayer.h:
1:08 PM Changeset in webkit [273271] by pvollan@apple.com
  • 2 edits in trunk/Source/WebKit

[macOS] Crash under AuxiliaryProcess::initializeSandbox
https://bugs.webkit.org/show_bug.cgi?id=222233
<rdar://problem/74261611>

Reviewed by Brent Fulgham.

When a WebKit client provides a user directory suffix in the process initialization parameters, confstr with the new
user suffix applied will fail to create the full directory path if it does not exist, and return an empty result.
This will lead to empty paths in the sandbox parameters, which will cause the sandbox to fail to compile, which will
eventually crash the WebKit process. This patch addresses this by making sure the new user directory suffix does not
represent a path, since confstr is not able to handle user directory suffixes containing paths that do not exist.
Additionally, this patch reverts r271417, which was the first attempt at fixing this crash, but was unsuccessful in
doing so.

  • Shared/mac/AuxiliaryProcessMac.mm:

(WebKit::initializeSandboxParameters):
(WebKit::AuxiliaryProcess::initializeSandbox):

12:58 PM Changeset in webkit [273270] by pvollan@apple.com
  • 4 edits in trunk/Source

[macOS] Disabling relaunch on login for the WebContent process is racy
https://bugs.webkit.org/show_bug.cgi?id=222074
<rdar://problem/74230216>

Reviewed by Geoffrey Garen.

Source/WebCore/PAL:

Declare Launch Services key to disable relaunch on login.

  • pal/spi/cocoa/LaunchServicesSPI.h:

Source/WebKit:

When NSApplication is being intialized, the method -[NSApplication disableRelaunchOnLogin] is dispatched on a non-main thread, which is in a race
with the revocation of the Launch Services sandbox extension. This patch addresses this by setting this information synchronously with Launch
Services while the sandbox extension is being held. Additionally, accessibility related code under WebPage::platformInitialize may reach out to
the Launch Services daemon once during the lifetime of the WebContent process. Make sure that call succeeds by making a synchronous call while
a sandbox extension to the Launch Services daemon is being held.

  • WebProcess/cocoa/WebProcessCocoa.mm:

(WebKit::WebProcess::platformInitializeWebProcess):

12:15 PM Changeset in webkit [273269] by keith_miller@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Remove unused internal fields from AbstractModuleLoader
https://bugs.webkit.org/show_bug.cgi?id=222256

Reviewed by Saam Barati.

  • runtime/AbstractModuleRecord.h:

(JSC::AbstractModuleRecord::initialValues):

12:12 PM Changeset in webkit [273268] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

Run Python tests for Source/WebKit/Scripts changes in EWS
https://bugs.webkit.org/show_bug.cgi?id=222276

Patch by Sam Sneddon <Sam Sneddon> on 2021-02-22
Reviewed by Jonathan Bedard.

  • CISupport/ews-build/steps.py:
11:58 AM Changeset in webkit [273267] by Jonathan Bedard
  • 4 edits in trunk/Tools

[git-webkit] Failure to retrieve commit in EWS
https://bugs.webkit.org/show_bug.cgi?id=222050
<rdar://problem/74439957>

Reviewed by Aakash Jain.

  • CISupport/ews-build/loadConfig.py:

(loadBuilderConfig): Load GitHub credentials.

  • CISupport/ews-build/steps.py:

(ShowIdentifier.start): Pass GitHub credentials to worker.

  • CISupport/ews-build/steps_unittest.py:
11:55 AM Changeset in webkit [273266] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit

REGRESSION(r273204): webkitpy tests don't run on Py3
https://bugs.webkit.org/show_bug.cgi?id=222274

Patch by Sam Sneddon <Sam Sneddon> on 2021-02-22
Reviewed by Jonathan Bedard.

This doesn't make them pass, but it does get them back to running to completion.

  • Scripts/webkit/messages.py: avoid using a relative import
11:44 AM Changeset in webkit [273265] by eric.carlson@apple.com
  • 2 edits in trunk/Source/WebKit

UserMediaPermissionRequestManagerProxy may be released while computing capture device list
https://bugs.webkit.org/show_bug.cgi?id=222236
<rdar://74480265>

Reviewed by Youenn Fablet.

  • UIProcess/UserMediaPermissionRequestManagerProxy.cpp:

(WebKit::UserMediaPermissionRequestManagerProxy::computeFilteredDeviceList): Return early
if weakThis is NULL.

11:12 AM Changeset in webkit [273264] by svillar@igalia.com
  • 5 edits
    1 add in trunk

REGRESSION (r266695): twitch.tv: when in fullscreen, WebKit continually does 350ms layouts. Firefox and Chrome do not
https://bugs.webkit.org/show_bug.cgi?id=222202
<rdar://problem/74537782>

Reviewed by Simon Fraser.

PerformanceTests:

New performance test for nested column flexboxes with percentage heights.

  • Layout/nested-column-flexboxes-relative-height.html: Added.

Source/WebCore:

The problem was that we were doing the initial layout for the children of the flex container twice in those cases where
the child inline axis was not the main axis (for example with column flex containers in horizontal writing modes).
Refactored the code (specially the way we clear overriding sizes) so that we only do it once. This saves tons of layouts
in pages with nested column flexboxes with relative heights.

No new tests as there is no change in functionality, we're removing duplicate extra layouts. We're however adding a new
performance test for column flexboxes with percentage heights. With this patch we go from 3.5 layout/s to 145 layout/s
which is ~4000% better.

Inspired by Blink's crrev.com/c/1614058 by <cbiesinger@chromium.org>.

  • rendering/RenderFlexibleBox.cpp:

(WebCore::RenderFlexibleBox::computeInnerFlexBaseSizeForChild): Do not unconditionally clear overriding sizes. Also removed
relayoutChildren which is now unused. Do not layout the item, that should have been done in
computeInnerFlexBaseSizeForChild() before. Added ASSERTs to verify that child's intrinsic main size was cached as
a consequence of the previous layout.
(WebCore::RenderFlexibleBox::constructFlexItem): Do not pass relayoutChildren to computeInnerFlexBaseSizeForChild. Also no
need to update it after laying out the child.

  • rendering/RenderFlexibleBox.h:
10:56 AM Changeset in webkit [273263] by achristensen@apple.com
  • 4 edits in trunk

Disable RangeResponseGenerator.
https://bugs.webkit.org/show_bug.cgi?id=221072
<rdar://problem/74551753>

Source/WebCore:

  • platform/network/cocoa/RangeResponseGenerator.mm:

(WebCore::RangeResponseGenerator::willSynthesizeRangeResponses):

Tools:

It might be causing issues. Disabling to speculatively fix the radar.

  • TestWebKitAPI/Tests/WebKitCocoa/MediaLoading.mm:

(TestWebKitAPI::TEST):

10:46 AM Changeset in webkit [273262] by Antti Koivisto
  • 2 edits in trunk/Source/WebCore

[LFC][Integration] Respect hasLineIfEmpty
https://bugs.webkit.org/show_bug.cgi?id=222269

Reviewed by Zalan Bujtas.

In certain editing cases a block is computed to have height of a line even if it has no content.

This fixes editing/execCommand/extracted_style_assert.html

  • rendering/RenderBlockFlow.cpp:

(WebCore::RenderBlockFlow::layoutModernLines):

10:40 AM Changeset in webkit [273261] by Ryan Haddad
  • 6 edits in trunk/LayoutTests/imported/w3c

Implement the Top-level await proposal
https://bugs.webkit.org/show_bug.cgi?id=202484

Unreviewed test gardening.

  • web-platform-tests/html/semantics/scripting-1/the-script-element/module/evaluation-order-4-tla-expected.txt:
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/module-tla-delayed-expected.txt:
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/module-tla-immediate-promise-expected.txt:
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/module-tla-import-expected.txt:
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/module-tla-promise-expected.txt:
9:55 AM Changeset in webkit [273260] by Alan Coon
  • 2 edits in branches/safari-611-branch/Source/WebKit

Cherry-pick r272355. rdar://problem/74032694

ASSERTION FAILED: !size.isEmpty() under platformInitializeWebProcess

  • WebProcess/cocoa/WebProcessCocoa.mm: (WebKit::WebProcess::platformInitializeWebProcess): Follow-up to r272335; don't call IOSurface::setMaximumSize if the UI process did not send us a size. Caused all Web Content processes to assert in debug on launch.

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

9:55 AM Changeset in webkit [273259] by Alan Coon
  • 2 edits in branches/safari-611-branch/Source/JavaScriptCore

Cherry-pick r271767. rdar://problem/74409412

Obj-C API should do correct type checks when using a 32-bit address space
https://bugs.webkit.org/show_bug.cgi?id=220880
<rdar://72370334>

Reviewed by Tadeu Zagallo.

  • API/JSValue.mm: (-[JSValue isNull]): (-[JSValue isBoolean]): (-[JSValue isNumber]): (-[JSValue isString]):

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

9:55 AM Changeset in webkit [273258] by Alan Coon
  • 2 edits in branches/safari-611-branch/Source/JavaScriptCore

Cherry-pick r270719. rdar://problem/74409412

REGRESSION (r270665): testapi failing on JSC bots
https://bugs.webkit.org/show_bug.cgi?id=219787

Reviewed by Saam Barati.

  • API/JSValueRef.cpp: (JSValueIsString): (JSValueIsObject): (JSValueIsSymbol):

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

9:55 AM Changeset in webkit [273257] by Alan Coon
  • 2 edits in branches/safari-611-branch/Source/JavaScriptCore

Cherry-pick r270700. rdar://problem/74409412

REGRESSION (r270665): testapi failing on CLoop bot
https://bugs.webkit.org/show_bug.cgi?id=219787

Reviewed by Mark Lam.

The API has to special case the empty JSValue as null.

  • API/JSValueRef.cpp: (JSValueGetType): (JSValueIsNull):

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

9:55 AM Changeset in webkit [273256] by Alan Coon
  • 6 edits in branches/safari-611-branch

Cherry-pick r270665. rdar://problem/74409412

Removing unnecessary locking from JSValue API functions
https://bugs.webkit.org/show_bug.cgi?id=219723

Reviewed by Filip Pizlo.

PerformanceTests:

Print an error message when benchmarks fail to run and add option to change
the configuration used to build the benchmarks.

  • APIBench/api-bench:

Source/JavaScriptCore:

Remove the unnecessary locking from the JSValueIs* and JSValueMake* API functions
that only work on primitives. Also remove the unnecessary method dispatching and
call from the -[JSValue is*] methods.

This improves the APIBench score by another ~8% since these are such common operations.
Here are the results: (Baseline includes https://bugs.webkit.org/show_bug.cgi?id=219663)

CURRENT_API: Baseline Change
----------------------------------------
RichardsMostlyC: 74ms 60ms
RichardsMostlyObjC: 304ms 300ms
RichardsMostlySwift: 305ms 293ms
RichardsSomeC: 97ms 77ms
RichardsSomeObjC: 158ms 159ms
RichardsSomeSwift: 202ms 198ms

UPCOMING_API: Baseline Change
----------------------------------------
RichardsMostlyC: 23ms 19ms
RichardsMostlyObjC: 282ms 282ms
RichardsMostlySwift: 280ms 282ms
RichardsSomeC: 95ms 76ms
RichardsSomeObjC: 157ms 156ms
RichardsSomeSwift: 202ms 197ms
----------------------------------------
Score: 33.6404 36.4006

  • API/APICast.h: (toRef):
  • API/JSValue.mm: (-[JSValue isUndefined]): (-[JSValue isNull]): (-[JSValue isBoolean]): (-[JSValue isNumber]): (-[JSValue isString]): (-[JSValue isObject]): (-[JSValue isSymbol]):
  • API/JSValueRef.cpp: (JSValueGetType): (JSValueIsUndefined): (JSValueIsNull): (JSValueIsBoolean): (JSValueIsNumber): (JSValueIsString): (JSValueIsObject): (JSValueIsSymbol): (JSValueMakeUndefined): (JSValueMakeNull): (JSValueMakeBoolean): (JSValueMakeNumber):

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

9:55 AM Changeset in webkit [273255] by Alan Coon
  • 7 edits in branches/safari-611-branch

Cherry-pick r272626. rdar://problem/74410222

Descendants of row and column headers should expose the aria-sort attribute.
https://bugs.webkit.org/show_bug.cgi?id=221590

Reviewed by Chris Fleizach.

Source/WebCore:

Tests:
accessibility/aria-sort.html
accessibility/ios-simulator/aria-sort-ios.html

Walk up the accessibility hierarchy to check for an inherited aria-sort
attribute present in a row or column header ancestor.

  • accessibility/AccessibilityObject.cpp: (WebCore::AccessibilityObject::sortDirection const):

LayoutTests:

Expanded this test to include the case where the header contains a child
element that must also expose the aria-sort attribute inherited from its
parent.

  • accessibility/aria-sort-expected.txt:
  • accessibility/aria-sort.html:
  • accessibility/ios-simulator/aria-sort-ios-expected.txt:
  • accessibility/ios-simulator/aria-sort-ios.html:

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

9:55 AM Changeset in webkit [273254] by Alan Coon
  • 28 edits in branches/safari-611-branch

Cherry-pick r272165. rdar://problem/74032536

Use user media permission prompt for speech recognition
https://bugs.webkit.org/show_bug.cgi?id=221082
rdar://problem/73372499

Patch by Sihui Liu <sihui_liu@appe.com> on 2021-02-01
Reviewed by Youenn Fablet.

Source/WebCore:

Add frame identifier to SpeechRecognitionRequest as it is needed for checking user media permission.

Updated existing tests for changed behavior.

  • Modules/speech/SpeechRecognition.cpp: (WebCore::SpeechRecognition::startRecognition):
  • Modules/speech/SpeechRecognitionConnection.h:
  • Modules/speech/SpeechRecognitionRequest.h: (WebCore::SpeechRecognitionRequest::frameIdentifier const):
  • Modules/speech/SpeechRecognitionRequestInfo.h: (WebCore::SpeechRecognitionRequestInfo::encode const): (WebCore::SpeechRecognitionRequestInfo::decode):
  • page/DummySpeechRecognitionProvider.h:

Source/WebKit:

Make SpeechRecognitionPermissionManager ask UserMediaPermissionRequestManagerProxy for user permission on
microphone.

  • UIProcess/SpeechRecognitionPermissionManager.cpp: (WebKit::SpeechRecognitionPermissionManager::request): (WebKit::SpeechRecognitionPermissionManager::startProcessingRequest): (WebKit::SpeechRecognitionPermissionManager::requestUserPermission):
  • UIProcess/SpeechRecognitionPermissionManager.h:
  • UIProcess/SpeechRecognitionPermissionRequest.h: (WebKit::SpeechRecognitionPermissionRequest::create): (WebKit::SpeechRecognitionPermissionRequest::frameIdentifier const): (WebKit::SpeechRecognitionPermissionRequest::SpeechRecognitionPermissionRequest):
  • UIProcess/SpeechRecognitionServer.cpp: (WebKit::SpeechRecognitionServer::start): (WebKit::SpeechRecognitionServer::requestPermissionForRequest):
  • UIProcess/SpeechRecognitionServer.h:
  • UIProcess/SpeechRecognitionServer.messages.in:
  • UIProcess/UserMediaPermissionRequestManagerProxy.cpp: (WebKit::UserMediaPermissionRequestManagerProxy::denyRequest): (WebKit::UserMediaPermissionRequestManagerProxy::grantRequest): (WebKit::UserMediaPermissionRequestManagerProxy::checkUserMediaPermissionForSpeechRecognition):
  • UIProcess/UserMediaPermissionRequestManagerProxy.h:
  • UIProcess/UserMediaPermissionRequestProxy.cpp: (WebKit::UserMediaPermissionRequestProxy::UserMediaPermissionRequestProxy):
  • UIProcess/UserMediaPermissionRequestProxy.h: (WebKit::UserMediaPermissionRequestProxy::create): (WebKit::UserMediaPermissionRequestProxy::decisionCompletionHandler):
  • UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::requestSpeechRecognitionPermission): (WebKit::WebPageProxy::requestUserMediaPermissionForSpeechRecognition):
  • UIProcess/WebPageProxy.h:
  • UIProcess/WebProcessProxy.cpp: (WebKit::WebProcessProxy::createSpeechRecognitionServer):
  • WebProcess/WebCoreSupport/WebSpeechRecognitionConnection.cpp: (WebKit::WebSpeechRecognitionConnection::start):
  • WebProcess/WebCoreSupport/WebSpeechRecognitionConnection.h:

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/SpeechRecognition.mm: (-[SpeechRecognitionUIDelegate _webView:requestMediaCaptureAuthorization:decisionHandler:]):

LayoutTests:

  • fast/speechrecognition/permission-error.html:
  • fast/speechrecognition/start-recognition-in-removed-iframe-expected.txt:
  • fast/speechrecognition/start-recognition-in-removed-iframe.html:

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

9:54 AM Changeset in webkit [273253] by Alan Coon
  • 12 edits in branches/safari-611-branch

Cherry-pick r271636. rdar://problem/74452635

Update media state for active speech recognition as it uses audio capture
https://bugs.webkit.org/show_bug.cgi?id=220667

Patch by Sihui Liu <sihui_liu@appe.com> on 2021-01-19
Reviewed by Youenn Fablet.

Source/WebCore:

To make sure the media capture state is correctly sent to client.

API test: WebKit2.SpeechRecognitionMediaCaptureStateChange

  • Modules/speech/SpeechRecognition.cpp: (WebCore::SpeechRecognition::startRecognition): (WebCore::SpeechRecognition::stop): (WebCore::SpeechRecognition::didStartCapturingAudio): (WebCore::SpeechRecognition::didStopCapturingAudio):
  • Modules/speech/SpeechRecognition.h:
  • Modules/speech/SpeechRecognitionConnection.h:
  • dom/Document.cpp: (WebCore::Document::setActiveSpeechRecognition): (WebCore::Document::updateIsPlayingMedia):
  • dom/Document.h:
  • page/DummySpeechRecognitionProvider.h:

Source/WebKit:

  • WebProcess/WebCoreSupport/WebSpeechRecognitionConnection.cpp: (WebKit::WebSpeechRecognitionConnection::unregisterClient):
  • WebProcess/WebCoreSupport/WebSpeechRecognitionConnection.h:

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/SpeechRecognition.mm: (-[SpeechRecognitionUIDelegate _webView:mediaCaptureStateDidChange:]): (TestWebKitAPI::TEST): (-[SpeechRecognitionPermissionUIDelegate _webView:requestSpeechRecognitionPermissionForOrigin:decisionHandler:]): Deleted. (-[SpeechRecognitionPermissionUIDelegate _webView:requestMediaCaptureAuthorization:decisionHandler:]): Deleted. (-[SpeechRecognitionPermissionUIDelegate _webView:checkUserMediaPermissionForURL:mainFrameURL:frameIdentifier:decisionHandler:]): Deleted. (-[SpeechRecognitionPermissionUIDelegate webView:createWebViewWithConfiguration:forNavigationAction:windowFeatures:]): Deleted.

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

9:54 AM Changeset in webkit [273252] by Alan Coon
  • 23 edits
    2 adds in branches/safari-611-branch

Cherry-pick r272490. rdar://problem/74409784

Add support for aria-sort change notifications.
https://bugs.webkit.org/show_bug.cgi?id=221495

Reviewed by Chris Fleizach.

Source/WebCore:

Test: accessibility/aria-sort-changed-notification.html

This patch adds support for aria-sort changes. Some code cleanup by
using the notificationPlatformName helper function.

  • accessibility/AXLogger.cpp: (WebCore::operator<<): Logging of the new notification.
  • accessibility/AXObjectCache.cpp: Handles the aria-sort change notification. Updates the isolated tree. (WebCore::AXObjectCache::handleAttributeChange): (WebCore::AXObjectCache::updateIsolatedTree):
  • accessibility/AXObjectCache.h:
  • accessibility/ios/AXObjectCacheIOS.mm: (WebCore::AXObjectCache::notificationPlatformName): Helper to map AXCore notifications to platform notifications. (WebCore::AXObjectCache::postPlatformNotification): Handles the AXSortDirectionChanged notification. Some code cleanup using the notificationPlatformName helper.
  • accessibility/ios/WebAccessibilityObjectWrapperIOS.h:
  • accessibility/ios/WebAccessibilityObjectWrapperIOS.mm: (-[WebAccessibilityObjectWrapper postNotification:]): To be overridden by system AX bundles. (-[WebAccessibilityObjectWrapper accessibilitySortDirection]): Only ascending and descending sort directions are relevant for clients.
  • accessibility/isolatedtree/AXIsolatedTree.cpp: (WebCore::AXIsolatedTree::updateNodeProperty): Updates the SortDirection property.
  • accessibility/mac/AXObjectCacheMac.mm: (WebCore::AXObjectCache::postPlatformNotification): Handles the AXSortDirectionChanged notification.

Tools:

  • WebKitTestRunner/InjectedBundle/AccessibilityUIElement.cpp: (WTR::AccessibilityUIElement::sortDirection const):
  • WebKitTestRunner/InjectedBundle/AccessibilityUIElement.h:
  • WebKitTestRunner/InjectedBundle/Bindings/AccessibilityUIElement.idl:
  • WebKitTestRunner/InjectedBundle/ios/AccessibilityUIElementIOS.mm: (WTR::AccessibilityUIElement::sortDirection const):
  • WebKitTestRunner/InjectedBundle/mac/AccessibilityUIElementMac.mm: (WTR::AccessibilityUIElement::currentStateValue const): (WTR::AccessibilityUIElement::sortDirection const):

LayoutTests:

  • accessibility/aria-sort-changed-notification-expected.txt: Added.
  • accessibility/aria-sort-changed-notification.html: Added.
  • accessibility/aria-sort-expected.txt:
  • accessibility/aria-sort.html: Calls sortDirection property on the JS accessible element instead of retrieving the aria-sort attribute. This matches more accurately what an actual client would do. Changed the expected file accordingly.
  • accessibility/ios-simulator/aria-sort-ios-expected.txt:
  • accessibility/ios-simulator/aria-sort-ios.html: Same as in the Mac test above.
  • platform/ios/TestExpectations: Added the new test to be run on the ios-simulator.

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

9:54 AM Changeset in webkit [273251] by Alan Coon
  • 14 edits in branches/safari-611-branch

Cherry-pick r271381. rdar://problem/74451875

Make SpeechRecognition permission error more informative
https://bugs.webkit.org/show_bug.cgi?id=220436

Patch by Sihui Liu <sihui_liu@appe.com> on 2021-01-11
Reviewed by Youenn Fablet.

Source/WebKit:

Make SpeechRecognitionPermissionManager complete requests with an optional SpeechRecognitionError instead of a
boolean value.

  • UIProcess/SpeechRecognitionPermissionManager.cpp: (WebKit::SpeechRecognitionPermissionManager::~SpeechRecognitionPermissionManager): (WebKit::SpeechRecognitionPermissionManager::request): (WebKit::SpeechRecognitionPermissionManager::startProcessingRequest): (WebKit::SpeechRecognitionPermissionManager::continueProcessingRequest): (WebKit::SpeechRecognitionPermissionManager::completeCurrentRequest): (WebKit::SpeechRecognitionPermissionManager::requestSpeechRecognitionServiceAccess): (WebKit::SpeechRecognitionPermissionManager::requestMicrophoneAccess): (WebKit::SpeechRecognitionPermissionManager::requestUserPermission):
  • UIProcess/SpeechRecognitionPermissionManager.h:
  • UIProcess/SpeechRecognitionPermissionRequest.h: (WebKit::SpeechRecognitionPermissionRequest::create): (WebKit::SpeechRecognitionPermissionRequest::complete): (WebKit::SpeechRecognitionPermissionRequest::SpeechRecognitionPermissionRequest):
  • UIProcess/SpeechRecognitionServer.cpp: (WebKit::SpeechRecognitionServer::requestPermissionForRequest):
  • UIProcess/SpeechRecognitionServer.h:
  • UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::requestSpeechRecognitionPermission):
  • UIProcess/WebPageProxy.h:
  • UIProcess/WebProcessProxy.cpp: (WebKit::WebProcessProxy::createSpeechRecognitionServer):

Tools:

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

LayoutTests:

  • fast/speechrecognition/permission-error-expected.txt:
  • fast/speechrecognition/permission-error.html:

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

9:54 AM Changeset in webkit [273250] by Alan Coon
  • 22 edits
    2 adds in branches/safari-611-branch

Cherry-pick r272067. rdar://problem/74444347

Support for aria-current state changed notifications.
https://bugs.webkit.org/show_bug.cgi?id=221074

Reviewed by Chris Fleizach.

Source/WebCore:

Test: accessibility/aria-current-state-changed-notification.html

Added handling of the AXCurrentStateChanged notification for Mac and iOS
ports. This notification is fired when the aria-current attribute
changes.
Handling of this notification is required to properly update the
accessibility properties of the target object and convey them to
assistive technology clients.

  • accessibility/AXLogger.cpp: (WebCore::operator<<): Renamed notification anumerand.
  • accessibility/AXObjectCache.cpp: (WebCore::AXObjectCache::handleAttributeChange):
  • accessibility/AXObjectCache.h:
  • accessibility/atk/AXObjectCacheAtk.cpp: (WebCore::AXObjectCache::postPlatformNotification):
  • accessibility/ios/AXObjectCacheIOS.mm: (WebCore::AXObjectCache::postPlatformNotification):
  • accessibility/ios/WebAccessibilityObjectWrapperIOS.h:
  • accessibility/ios/WebAccessibilityObjectWrapperIOS.mm: (-[WebAccessibilityObjectWrapper accessibilityDOMIdentifier]): (-[WebAccessibilityObjectWrapper postCurrentStateChangedNotification]): (-[WebAccessibilityObjectWrapper accessibilityCurrentState]): (-[WebAccessibilityObjectWrapper accessibilityARIACurrentStatus]): Renamed to accessibilityCurrentState.
  • accessibility/mac/AXObjectCacheMac.mm: (WebCore::AXObjectCache::postPlatformNotification):

Tools:

Added AccessibilityUIElement::domIdentifier and currentStateValue used
in LayoutTests/accessibility/aria-current-state-changed-notification.html.

  • WebKitTestRunner/InjectedBundle/AccessibilityUIElement.cpp: (WTR::AccessibilityUIElement::domIdentifier const): Non-Cocoa implementation. (WTR::AccessibilityUIElement::currentStateValue const): Non-Cocoa implementation.
  • WebKitTestRunner/InjectedBundle/AccessibilityUIElement.h:
  • WebKitTestRunner/InjectedBundle/Bindings/AccessibilityUIElement.idl:
  • WebKitTestRunner/InjectedBundle/ios/AccessibilityUIElementIOS.mm: (WTR::AccessibilityUIElement::domIdentifier const): (WTR::AccessibilityUIElement::stringAttributeValue): (WTR::AccessibilityUIElement::currentStateValue const):
  • WebKitTestRunner/InjectedBundle/mac/AccessibilityUIElementMac.mm: (WTR::AccessibilityUIElement::domIdentifier const): (WTR::AccessibilityUIElement::currentStateValue const):

LayoutTests:

  • accessibility/aria-current-state-changed-notification-expected.txt: Added.
  • accessibility/aria-current-state-changed-notification.html: Added.
  • accessibility/aria-current.html: Use AccessibilityUIElement::currentStateValue for consistency and to match closely how actual clients will invoke this functionality.
  • platform/gtk/TestExpectations:
  • platform/ios-wk1/TestExpectations:
  • platform/ios/TestExpectations:
  • platform/mac-wk1/TestExpectations:
  • platform/win/TestExpectations:

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

9:54 AM Changeset in webkit [273249] by Alan Coon
  • 10 edits in branches/safari-611-branch

Cherry-pick r272755. rdar://problem/74409916

Unreviewed, reverting r270578.
https://bugs.webkit.org/show_bug.cgi?id=221110

Caused incorrect image layout inside a flexbox container.

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-row-013-expected.txt:
  • web-platform-tests/css/css-flexbox/image-as-flexitem-size-003-expected.txt:
  • web-platform-tests/css/css-flexbox/image-as-flexitem-size-003v-expected.txt:
  • web-platform-tests/css/css-flexbox/image-as-flexitem-size-004-expected.txt:
  • web-platform-tests/css/css-flexbox/image-as-flexitem-size-004v-expected.txt:

Source/WebCore:

  • rendering/RenderFlexibleBox.cpp: (WebCore::RenderFlexibleBox::computeMainSizeFromAspectRatioUsing const): (WebCore::RenderFlexibleBox::childCrossSizeIsDefinite const):

LayoutTests:

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

9:54 AM Changeset in webkit [273248] by Alan Coon
  • 5 edits
    2 adds in branches/safari-611-branch/Source/WebCore

Cherry-pick r272678. rdar://problem/74410058

WebCore::createBusFromInMemoryAudioFile() may crash under ExtAudioFileRead()
https://bugs.webkit.org/show_bug.cgi?id=221642
<rdar://72789841>

Reviewed by Geoffrey Garen.

The crash seems to indicate we are passing an AudioBufferList to ExtAudioFileRead()
that contains a null buffer. It is not obvious how this is happening but I have made
the following changes:

  1. createAudioBufferList() / destroyAudioListBuffer() implementation is now shared on both macOS and iOS. The implementation now uses fastCalloc and returns null in case of failure to allocate.
  2. createAudioBufferList() was renamed to tryCreateAudioBufferList() to make it clear it can return null. All call sites now properly deal with tryCreateAudioBufferList() potentially return null
  3. Add a new validateAudioBufferList() function which makes sure that the AudioBufferList we are about to pass to ExtAudioFileRead() does not contain any null buffer. In case of validation failure, we log an error, generate a simulated crash log and early return gracefully instead of crashing later on.
  4. Added more assertions to help catch bugs.
  • SourcesCocoa.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • platform/audio/cocoa/AudioFileReaderCocoa.cpp: Added. (WebCore::tryCreateAudioBufferList): (WebCore::destroyAudioBufferList): (WebCore::validateAudioBufferList):
  • platform/audio/cocoa/AudioFileReaderCocoa.h: Added.
  • platform/audio/ios/AudioFileReaderIOS.cpp: (WebCore::AudioFileReader::createBus): (WebCore::createAudioBufferList): Deleted. (WebCore::destroyAudioBufferList): Deleted.
  • platform/audio/mac/AudioFileReaderMac.cpp: (WebCore::AudioFileReader::createBus): (WebCore::createAudioBufferList): Deleted. (WebCore::destroyAudioBufferList): Deleted.

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

9:54 AM Changeset in webkit [273247] by Alan Coon
  • 2 edits in branches/safari-611-branch/Source/WTF

Cherry-pick r272621. rdar://problem/74410131

REGRESSION(r269017): Speedometer2 1% regression
https://bugs.webkit.org/show_bug.cgi?id=221640

Reviewed by Mark Lam.

Reverting r269017, r269478, and r272095 because of Speedometer2 ~1% regression.

  • wtf/HashTable.h: (WTF::KeyTraits>::inlineLookup): (WTF::KeyTraits>::lookupForWriting): (WTF::KeyTraits>::fullLookupForWriting): (WTF::KeyTraits>::addUniqueForInitialization): (WTF::KeyTraits>::add):
  • wtf/HashTraits.h:
  • wtf/MetaAllocator.cpp: (WTF::MetaAllocator::addFreeSpace):
  • wtf/MetaAllocator.h:

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

9:54 AM Changeset in webkit [273246] by Alan Coon
  • 8 edits
    3 adds in branches/safari-611-branch

Cherry-pick r272504. rdar://problem/74409474

NetworkRTCSocketCocoa extractDataMessages should not read too much data
https://bugs.webkit.org/show_bug.cgi?id=221544

Reviewed by Eric Carlson.

Source/WebCore:

Move STUN/TURN message parsing to its own file routine so that we can add API test.
Code is taken from Source/WebKit/NetworkProcess/webrtc/NetworkRTCSocketCocoa.mm.
Fix the test verifying we can actually read a message given its expected length.

Covered by API test.

  • Headers.cmake:
  • Modules/mediastream/STUNMessageParsing.cpp: Added. (WebCore::isStunMessage): (WebCore::getSTUNOrTURNMessageLengths): (WebCore::extractSTUNOrTURNMessages): (WebCore::extractDataMessages): (WebCore::extractMessages):
  • Modules/mediastream/STUNMessageParsing.h: Added.
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:

Source/WebKit:

  • NetworkProcess/webrtc/NetworkRTCSocketCocoa.mm: Make use of WebCore method.

Tools:

  • TestWebKitAPI/Tests/WebCore/STUNMessageParsingTest.cpp: Added. (TestWebKitAPI::TEST):
  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:

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

9:53 AM Changeset in webkit [273245] by commit-queue@webkit.org
  • 5 edits
    18 adds in trunk/LayoutTests

Resync web-platform-tests/css/css-sizing/aspect-ratio from upstream
https://bugs.webkit.org/show_bug.cgi?id=222266

Patch by Rob Buis <rbuis@igalia.com> on 2021-02-22
Reviewed by Manuel Rego Casasnovas.

LayoutTests/imported/w3c:

Resync web-platform-tests/css/css-sizing/aspect-ratio from upstream 9b505f9fc3.

  • web-platform-tests/css/css-sizing/aspect-ratio/grid-aspect-ratio-015-expected.xht: Added.
  • web-platform-tests/css/css-sizing/aspect-ratio/grid-aspect-ratio-015.html: Added.
  • web-platform-tests/css/css-sizing/aspect-ratio/grid-aspect-ratio-016-expected.xht: Added.
  • web-platform-tests/css/css-sizing/aspect-ratio/grid-aspect-ratio-016.html: Added.
  • web-platform-tests/css/css-sizing/aspect-ratio/grid-aspect-ratio-017-expected.xht: Added.
  • web-platform-tests/css/css-sizing/aspect-ratio/grid-aspect-ratio-017.html: Added.
  • web-platform-tests/css/css-sizing/aspect-ratio/intrinsic-size-012-expected.xht: Added.
  • web-platform-tests/css/css-sizing/aspect-ratio/intrinsic-size-012.html: Added.
  • web-platform-tests/css/css-sizing/aspect-ratio/intrinsic-size-013-expected.xht: Added.
  • web-platform-tests/css/css-sizing/aspect-ratio/intrinsic-size-013.html: Added.
  • web-platform-tests/css/css-sizing/aspect-ratio/intrinsic-size-014-expected.xht: Added.
  • web-platform-tests/css/css-sizing/aspect-ratio/intrinsic-size-014.html: Added.
  • web-platform-tests/css/css-sizing/aspect-ratio/intrinsic-size-015-expected.xht: Added.
  • web-platform-tests/css/css-sizing/aspect-ratio/intrinsic-size-015.html: Added.
  • web-platform-tests/css/css-sizing/aspect-ratio/intrinsic-size-016-expected.xht: Added.
  • web-platform-tests/css/css-sizing/aspect-ratio/intrinsic-size-016.html: Added.
  • web-platform-tests/css/css-sizing/aspect-ratio/parsing/w3c-import.log:
  • web-platform-tests/css/css-sizing/aspect-ratio/replaced-element-033-expected.xht: Added.
  • web-platform-tests/css/css-sizing/aspect-ratio/replaced-element-033.html: Added.
  • web-platform-tests/css/css-sizing/aspect-ratio/w3c-import.log:

LayoutTests:

Adapt platform test expectations.

9:52 AM Changeset in webkit [273244] by weinig@apple.com
  • 9 edits
    2 adds in trunk

Add experimental support for CSS Color 5 color-mix()
https://bugs.webkit.org/show_bug.cgi?id=222258

Reviewed by Antti Koivisto.

Source/WebCore:

Adds initial support for CSS Color 5 color-mix() - https://drafts.csswg.org/css-color-5/#color-mix

This feature is off by default and can be enabled via the CSSColorMixEnabled
experimental preference flag.

This implementation has the same restriction on it that the recently landed
Relative Color Syntax does in that it does support system colors or currentColor
as input, since those can't be resolved at parse time. Ultimately, we will need
to add a late binding version of this for those cases.

Test: fast/css/parsing-color-mix.html

  • css/CSSValueKeywords.in:

Add new keywords needed for color-mix().

  • css/parser/CSSParserContext.cpp:

(WebCore::operator==):

  • css/parser/CSSParserContext.h:

(WebCore::CSSParserContextHash::hash):
Add new setting for color-mix().

  • css/parser/CSSPropertyParserHelpers.cpp:

(WebCore::CSSPropertyParserHelpers::HueColorAdjuster::fixupAnglesForInterpolation):
(WebCore::CSSPropertyParserHelpers::HueColorAdjuster::HueColorAdjuster):
(WebCore::CSSPropertyParserHelpers::ColorAdjuster::ColorAdjuster):
(WebCore::CSSPropertyParserHelpers::consumeAdjuster):
(WebCore::CSSPropertyParserHelpers::consumeAndUpdateAdjusterAtIndex):
(WebCore::CSSPropertyParserHelpers::consumeAndUpdateAdjuster):
(WebCore::CSSPropertyParserHelpers::consumeAdjusters):
(WebCore::CSSPropertyParserHelpers::consumeMixComponents):
(WebCore::CSSPropertyParserHelpers::normalizeAdjusterValues):
(WebCore::CSSPropertyParserHelpers::remainingAdjustment):
(WebCore::CSSPropertyParserHelpers::mixComponent):
(WebCore::CSSPropertyParserHelpers::mixComponentAtIndex):
(WebCore::CSSPropertyParserHelpers::makeColorTypeByNormalizingComponentsAfterMix):
(WebCore::CSSPropertyParserHelpers::makeColorTypeByNormalizingComponentsAfterMix<HWBA<float>>):
(WebCore::CSSPropertyParserHelpers::mix):
(WebCore::CSSPropertyParserHelpers::parseColorMixFunctionParametersUsingAdjusters):
(WebCore::CSSPropertyParserHelpers::parseColorMixFunctionParameters):
(WebCore::CSSPropertyParserHelpers::parseColorFunction):
The implementation uses a templatized ColorAdjuster struct to declartively map the
various mixing color spaces to their allowed adjusters and what type those adjusters
operate on (either double or the hue specific HueColorAdjuster). For example, for
LCHA we have:

using LCHColorAdjuster = ColorAdjuster<LCHA<float>, CSSValueLightness, double, CSSValueChroma, HueColorAdjuster, CSSValueHue, double, CSSValueAlpha, double>;

which indicates:

  • it creates a LCHA<float> and will operate on LCHA<float> values
  • its first channel is called "lightness" and is a double
  • its second channel is called "chroma" and is a double
  • its third channel is called "hue" and is a HueColorAdjuster
  • its fourth channel is called "alpha" and is a double

This data is then used by the parsing and mixing functions to implement mixing without
having to write specific implementations for each mixing color space and can be expanded
to more spaces if needed.

  • platform/graphics/Color.h:

(WebCore::Color::Color):
Add new overloaded constructor for a generic Optional<ColorType<float>> which parallels the existing
Optional<SRGBA<uint8_t>> allowing callers to convert WTF::nullopt to an invalid Color without checking
for nullopt themselves.

Source/WTF:

  • Scripts/Preferences/WebPreferencesExperimental.yaml:

Add new experimental preference for CSS Color 5 color-mix()
which is off by default.

LayoutTests:

  • fast/css/parsing-color-mix-expected.txt: Added.
  • fast/css/parsing-color-mix.html: Added.

Add parsing and computed style computation tests for color-mix().

9:33 AM Changeset in webkit [273243] by weinig@apple.com
  • 10 edits
    2 copies
    2 moves
    14 adds
    4 deletes in trunk/LayoutTests

Update web-platform-tests/css/css-color
https://bugs.webkit.org/show_bug.cgi?id=222235

Reviewed by Antti Koivisto.

LayoutTests/imported/w3c:

Update to latest version.

  • resources/import-expectations.json:
  • web-platform-tests/css/css-color/background-color-hsl-001-expected.html: Added.
  • web-platform-tests/css/css-color/background-color-hsl-001.html: Added.
  • web-platform-tests/css/css-color/background-color-hsl-002-expected.html: Added.
  • web-platform-tests/css/css-color/background-color-hsl-002.html: Added.
  • web-platform-tests/css/css-color/background-color-hsl-003-expected.html: Added.
  • web-platform-tests/css/css-color/background-color-hsl-003.html: Added.
  • web-platform-tests/css/css-color/background-color-hsl-004-expected.html: Added.
  • web-platform-tests/css/css-color/background-color-hsl-004.html: Added.
  • web-platform-tests/css/css-color/background-color-rgb-001-expected.html: Added.
  • web-platform-tests/css/css-color/background-color-rgb-001.html: Added.
  • web-platform-tests/css/css-color/background-color-rgb-002-expected.html: Added.
  • web-platform-tests/css/css-color/background-color-rgb-002.html: Added.
  • web-platform-tests/css/css-color/background-color-rgb-003-expected.html: Added.
  • web-platform-tests/css/css-color/background-color-rgb-003.html: Added.
  • web-platform-tests/css/css-color/lab-008-expected.html:
  • web-platform-tests/css/css-color/lab-008.html:
  • web-platform-tests/css/css-color/lch-008-expected.html:
  • web-platform-tests/css/css-color/lch-008.html:
  • web-platform-tests/css/css-color/predefined-003-expected.html: Removed.
  • web-platform-tests/css/css-color/predefined-003.html: Removed.
  • web-platform-tests/css/css-color/predefined-004-expected.html: Removed.
  • web-platform-tests/css/css-color/predefined-004.html: Removed.
  • web-platform-tests/css/css-color/predefined-017-expected.html: Removed.
  • web-platform-tests/css/css-color/predefined-017.html: Removed.
  • web-platform-tests/css/css-color/prophoto-rgb-005-expected.html: Added.
  • web-platform-tests/css/css-color/prophoto-rgb-005.html: Added.
  • web-platform-tests/css/css-color/rec2020-001.html:
  • web-platform-tests/css/css-color/rec2020-005-expected.html: Added.
  • web-platform-tests/css/css-color/rec2020-005.html: Added.
  • web-platform-tests/css/css-color/w3c-import.log:

LayoutTests:

Remove some tests that were removed on updating.

9:13 AM Changeset in webkit [273242] by svillar@igalia.com
  • 3 edits in trunk/Source/WebCore

[css-flex] Refactoring of code retrieving main/cross size lengths from children
https://bugs.webkit.org/show_bug.cgi?id=222175

Reviewed by Darin Adler.

Added a couple of new private methods which retrieve the main and cross size lengths of children
as it's used everywhere.

No new tests as there is no change in functionality, just a code refactoring.

  • rendering/RenderFlexibleBox.cpp:

(WebCore::RenderFlexibleBox::shouldApplyMinSizeAutoForChild const):
(WebCore::RenderFlexibleBox::flexBasisForChild const):
(WebCore::RenderFlexibleBox::crossSizeLengthForChild const): New method.
(WebCore::RenderFlexibleBox::mainSizeLengthForChild const): Ditto.
(WebCore::RenderFlexibleBox::useChildAspectRatio const):
(WebCore::RenderFlexibleBox::computeInnerFlexBaseSizeForChild):
(WebCore::RenderFlexibleBox::adjustChildSizeForMinAndMax):
(WebCore::RenderFlexibleBox::adjustChildSizeForAspectRatioCrossAxisMinAndMax):
(WebCore::RenderFlexibleBox::childHasIntrinsicMainAxisSize const):

  • rendering/RenderFlexibleBox.h:
7:30 AM Changeset in webkit [273241] by Antti Koivisto
  • 5 edits in trunk/Source/WebCore

[LFC][Integration] Switch out if large trees are being invalidated
https://bugs.webkit.org/show_bug.cgi?id=222264

Reviewed by Zalan Bujtas.

We don't support partial invalidation yet. To avoid hitting bad O(n2) cases limit the maximum tree size on invalidation.

Prevents editing/selection/move-by-character-brute-force.html, fast/innerHTML/identical-mutations.html and fast/text/emoji-num-glyphs.html
from timing out in debug.

  • layout/integration/LayoutIntegrationBoxTree.h:

(WebCore::LayoutIntegration::BoxTree::boxCount const):

  • layout/integration/LayoutIntegrationLineLayout.cpp:

(WebCore::LayoutIntegration::LineLayout::shouldSwitchToLegacyOnInvalidation const):

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

(WebCore::RenderBlockFlow::invalidateLineLayoutPath):

4:27 AM Changeset in webkit [273240] by Philippe Normand
  • 5 edits
    2 adds in trunk/Tools

[Flatpak SDK] gdb unusable in sandbox
https://bugs.webkit.org/show_bug.cgi?id=222247

Reviewed by Žan Doberšek.

This patch adds support for unix signals disabling in developer builds, for the Flatpak SDK
runtime. Currently SIGINT, SIGHUP and SIGTERM will be ignored by the flatpak and bwrap
processes when they're running gdb in the sandbox runtime. This allows for nicer interactive
debugging sessions where Ctrl-C is actually handled by gdb.

  • PlatformGTK.cmake:
  • PlatformWPE.cmake:
  • flatpak/CMakeLists.txt: Added.
  • flatpak/flatpakutils.py:

(nullcontext):
(disable_signals):
(WebkitFlatpak.execute_command):
(WebkitFlatpak.run_in_sandbox):

  • flatpak/sigaction-disabler.c: Added.

(real_sigaction):
(sigaction):

  • flatpak/webkit-bwrap:
4:24 AM Changeset in webkit [273239] by commit-queue@webkit.org
  • 4 edits
    2 adds in trunk/Tools

[Flatpak SDK] Add Monado for XR runtime support
https://bugs.webkit.org/show_bug.cgi?id=220738

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

Tools:

  • flatpak/flatpakutils.py:

(WebkitFlatpak.run_in_sandbox): Allow runtime XR environment setup in the sandbox through
the XR_RUNTIME_JSON variable.

Tools/buildstream:

  • elements/sdk-platform.bst:
  • elements/sdk/eigen.bst: Added.
  • elements/sdk/monado.bst: Added.
4:20 AM Changeset in webkit [273238] by Philippe Normand
  • 3 edits in trunk/Tools

[Flatpak SDK] X11 SSH forwarding fails
https://bugs.webkit.org/show_bug.cgi?id=222246

Reviewed by Žan Doberšek.

  • flatpak/flatpakutils.py:

(WebkitFlatpak.run_in_sandbox): Forward the DISPLAY env var to the sandbox.

  • flatpak/webkit-bwrap: Set the DISPLAY env var if it was set in the parent process.
3:39 AM Changeset in webkit [273237] by Chris Lord
  • 7 edits in trunk/Source/WebCore

Move FontCascadeCache onto FontCache
https://bugs.webkit.org/show_bug.cgi?id=220858

Reviewed by Myles C. Maxfield.

Make FontCascadeCache and associated functions a child of FontCache,
accessible via FontCache::singleton.

No new tests, no behavior change.

  • page/MemoryRelease.cpp:

(WebCore::releaseNoncriticalMemory):

  • page/SettingsBase.cpp:

(WebCore::invalidateAfterGenericFamilyChange):

  • platform/graphics/FontCache.cpp:

(WebCore::keysMatch):
(WebCore::FontCache::invalidateFontCascadeCache):
(WebCore::FontCache::clearWidthCaches):
(WebCore::makeFontCascadeCacheKey):
(WebCore::computeFontCascadeCacheHash):
(WebCore::FontCache::pruneUnreferencedEntriesFromFontCascadeCache):
(WebCore::FontCache::pruneSystemFallbackFonts):
(WebCore::FontCache::retrieveOrAddCachedFonts):
(WebCore::FontCache::updateFontCascade):

  • platform/graphics/FontCache.h:

(WebCore::FontCascadeCacheEntry::FontCascadeCacheEntry):

  • platform/graphics/FontCascade.cpp:

(WebCore::FontCascade::updateFonts const):
(WebCore::FontCascade::update const):

  • platform/graphics/FontCascade.h:
3:07 AM Changeset in webkit [273236] by Carlos Garcia Campos
  • 50 edits
    1 add in trunk

[SOUP] Add support for libsoup3
https://bugs.webkit.org/show_bug.cgi?id=222093

Reviewed by Adrian Perez de Castro.

.:

  • Source/cmake/FindLibSoup.cmake:
  • Source/cmake/OptionsGTK.cmake:
  • Source/cmake/OptionsWPE.cmake:

Source/WebCore:

  • platform/Soup.cmake:
  • platform/network/soup/AuthenticationChallenge.h:
  • platform/network/soup/AuthenticationChallengeSoup.cpp:

(WebCore::AuthenticationChallenge::AuthenticationChallenge):
(WebCore::AuthenticationChallenge::platformCompare):

  • platform/network/soup/CookieSoup.cpp:

(WebCore::Cookie::Cookie):
(WebCore::Cookie::toSoupCookie const):

  • platform/network/soup/GUniquePtrSoup.h:
  • platform/network/soup/NetworkStorageSessionSoup.cpp:

(WebCore::schemeFromProtectionSpaceServerType):
(WebCore::authTypeFromProtectionSpaceAuthenticationScheme):
(WebCore::NetworkStorageSession::setCookiesFromDOM const):
(WebCore::NetworkStorageSession::setCookies):
(WebCore::NetworkStorageSession::deleteCookie const):
(WebCore::NetworkStorageSession::getHostnamesWithCookies):
(WebCore::NetworkStorageSession::getCookies):
(WebCore::NetworkStorageSession::hasCookies const):
(WebCore::NetworkStorageSession::getRawCookies const):
(WebCore::cookiesForSession):

  • platform/network/soup/ResourceErrorSoup.cpp:

(WebCore::ResourceError::transportError):
(WebCore::ResourceError::httpError):
(WebCore::ResourceError::authenticationError):
(WebCore::ResourceError::tlsError):

  • platform/network/soup/ResourceRequest.h:
  • platform/network/soup/ResourceRequestSoup.cpp:

(WebCore::ResourceRequest::createSoupMessage const):
(WebCore::ResourceRequest::updateSoupMessageBody const):
(WebCore::ResourceRequest::createSoupURI const):

  • platform/network/soup/ResourceResponseSoup.cpp:

(WebCore::ResourceResponse::ResourceResponse):

  • platform/network/soup/SoupNetworkSession.cpp:

(WebCore::SoupNetworkSession::SoupNetworkSession):
(WebCore::SoupNetworkSession::setupLogger):
(WebCore::SoupNetworkSession::clearHSTSCache):
(WebCore::SoupNetworkSession::setProxySettings):

  • platform/network/soup/SoupVersioning.h: Added.

(soup_message_get_method):
(soup_server_message_get_method):
(soup_message_get_status):
(soup_server_message_set_status):
(soup_message_get_reason_phrase):
(soup_message_get_request_headers):
(soup_server_message_get_request_headers):
(soup_message_get_response_headers):
(soup_server_message_get_response_headers):
(soup_server_message_get_response_body):
(soup_server_message_set_response):
(soup_server_message_get_uri):
(soup_message_get_tls_certificate):
(soup_message_get_tls_certificate_errors):
(soup_session_send_async):
(soup_session_websocket_connect_async):
(soup_auth_cancel):

  • platform/network/soup/URLSoup.cpp:

(WebCore::soupURIToURL):
(WebCore::urlToSoupURI):

  • platform/network/soup/URLSoup.h:

Source/WebDriver:

  • soup/HTTPServerSoup.cpp:

(WebDriver::HTTPServer::listen):

Source/WebKit:

  • NetworkProcess/soup/NetworkDataTaskSoup.cpp:

(WebKit::NetworkDataTaskSoup::createRequest):
(WebKit::NetworkDataTaskSoup::clearRequest):
(WebKit::NetworkDataTaskSoup::resume):
(WebKit::NetworkDataTaskSoup::cancel):
(WebKit::NetworkDataTaskSoup::tlsConnectionAcceptCertificateCallback):
(WebKit::NetworkDataTaskSoup::acceptCertificateCallback):
(WebKit::NetworkDataTaskSoup::acceptCertificate):
(WebKit::NetworkDataTaskSoup::authenticateCallback):
(WebKit::NetworkDataTaskSoup::authenticate):
(WebKit::NetworkDataTaskSoup::continueAuthenticate):
(WebKit::shouldRedirectAsGET):
(WebKit::NetworkDataTaskSoup::continueHTTPRedirection):
(WebKit::NetworkDataTaskSoup::didGetHeaders):
(WebKit::NetworkDataTaskSoup::wroteBodyDataCallback):
(WebKit::NetworkDataTaskSoup::didWriteBodyData):
(WebKit::NetworkDataTaskSoup::networkEvent):
(WebKit::NetworkDataTaskSoup::hstsEnforced):
(WebKit::NetworkDataTaskSoup::didRestart):

  • NetworkProcess/soup/NetworkDataTaskSoup.h:
  • NetworkProcess/soup/NetworkSessionSoup.cpp:

(WebKit::NetworkSessionSoup::createWebSocketTask):

  • NetworkProcess/soup/WebSocketTaskSoup.cpp:

(WebKit::isConnectionError):
(WebKit::WebSocketTask::WebSocketTask):

Source/WTF:

  • wtf/Platform.h:
  • wtf/URL.h:
  • wtf/glib/GRefPtr.cpp:

(WTF::refGPtr):
(WTF::derefGPtr):

  • wtf/glib/GRefPtr.h:
  • wtf/glib/URLGLib.cpp:

(WTF::URL::URL):
(WTF::URL::createGUri const):

Tools:

  • MiniBrowser/gtk/BrowserTab.c:

(tlsErrorsDialogResponse):

  • TestWebKitAPI/PlatformGTK.cmake:
  • TestWebKitAPI/Tests/WebKitGLib/TestAuthentication.cpp:

(Tunnel::Tunnel):
(Tunnel::connect):
(serverCallback):

  • TestWebKitAPI/Tests/WebKitGLib/TestBackForwardList.cpp:

(serverCallback):

  • TestWebKitAPI/Tests/WebKitGLib/TestCookieManager.cpp:

(testCookieManagerAddCookie):
(testCookieManagerGetCookies):
(testCookieManagerDeleteCookie):
(serverCallback):

  • TestWebKitAPI/Tests/WebKitGLib/TestDownloads.cpp:

(addContentDispositionHTTPHeaderToResponse):
(writeNextChunk):
(serverCallback):

  • TestWebKitAPI/Tests/WebKitGLib/TestLoaderClient.cpp:

(testLoadingError):
(testWebViewIsLoading):
(serverCallback):

  • TestWebKitAPI/Tests/WebKitGLib/TestResources.cpp:

(addCacheHTTPHeadersToResponse):
(serverCallback):

  • TestWebKitAPI/Tests/WebKitGLib/TestSSL.cpp:

(WebSocketTest::serverWebSocketCallback):
(httpsServerCallback):
(httpServerCallback):

  • TestWebKitAPI/Tests/WebKitGLib/TestWebKitFaviconDatabase.cpp:

(serverCallback):

  • TestWebKitAPI/Tests/WebKitGLib/TestWebKitPolicyClient.cpp:

(serverCallback):

  • TestWebKitAPI/Tests/WebKitGLib/TestWebKitSettings.cpp:

(serverCallback):

  • TestWebKitAPI/Tests/WebKitGLib/TestWebKitUserContentManager.cpp:

(serverCallback):

  • TestWebKitAPI/Tests/WebKitGLib/TestWebKitWebContext.cpp:

(serverCallback):
(ProxyTest::webSocketProxyServerCallback):
(webSocketServerCallback):

  • TestWebKitAPI/Tests/WebKitGLib/TestWebKitWebView.cpp:

(serverCallback):

  • TestWebKitAPI/Tests/WebKitGLib/TestWebsiteData.cpp:

(serverCallback):

  • TestWebKitAPI/Tests/WebKitGtk/TestContextMenu.cpp:

(writeNextChunk):
(serverCallback):

  • TestWebKitAPI/glib/WebKitGLib/WebKitTestServer.cpp:

(WebKitTestServer::run):
(WebKitTestServer::addWebSocketHandler):

2:39 AM Changeset in webkit [273235] by commit-queue@webkit.org
  • 7 edits
    1 add in trunk/Tools/buildstream

[Flatpak SDK] Update to GStreamer 1.18.3 and backport one patch from upcoming 1.18.4
https://bugs.webkit.org/show_bug.cgi?id=222033

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

The backported patch fixes a racy crash in media/media-source/media-source-webm.html, where
the player would be destroyed quickly after being created.

  • elements/freedesktop-sdk.bst: Update junction.
  • elements/sdk/gst-libav.bst: Bump to 1.18.3
  • elements/sdk/gst-plugins-bad.bst: Ditto.
  • elements/sdk/gst-plugins-base.bst: Ditto and backport patch from 1.18.4.
  • elements/sdk/gst-plugins-good.bst: Bump to 1.18.3
  • elements/sdk/gstreamer.bst: Ditto.
  • patches/gst-plugins-base-0001-videodecoder-Fix-racy-critical-when-pool-negotiation.patch: Added.
2:21 AM Changeset in webkit [273234] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

[Flatpak SDK] Cog build fails when gst-build is enabled
https://bugs.webkit.org/show_bug.cgi?id=222102

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

Merge gst-build env vars in the sandbox environment, without overriding previously set PATH
values such as PKG_CONFIG_PATH.

  • flatpak/flatpakutils.py:

(WebkitFlatpak.setup_gstbuild):
(WebkitFlatpak.run_in_sandbox):

2:19 AM Changeset in webkit [273233] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

[Flatpak SDK] Bootstrap the run-httpd script in the SDK runtime
https://bugs.webkit.org/show_bug.cgi?id=221464

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

  • Scripts/run-webkit-httpd: On Linux platforms, run the script within the SDK runtime, if it

is available on the host system.

1:33 AM Changeset in webkit [273232] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebCore/platform/gtk/po

[GTK] [l10n] Updated Ukrainian translation of WebKitGTK+
https://bugs.webkit.org/show_bug.cgi?id=220992

Patch by Yuri Chornoivan <yurchor@ukr.net> on 2021-02-22
Rubber-stamped by Carlos Garcia Campos.

  • uk.po:
1:13 AM Changeset in webkit [273231] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Handle Page::didFinishLoadingImageForElement asynchronously
https://bugs.webkit.org/show_bug.cgi?id=221390

Patch by Carlos Garcia Campos <cgarcia@igalia.com> on 2021-02-22
Reviewed by Alex Christensen.

When called synchronously from RenderImage::notifyFinished() it's not possible to update the layout because
scripts are not allowed at that point.

  • page/Page.cpp:

(WebCore::Page::didFinishLoadingImageForElement):

12:27 AM Changeset in webkit [273230] by Fujii Hironori
  • 2 edits in trunk/Source/WTF

RunLoop::threadWillExit is doing m_nextIteration.clear() without locking m_nextIterationLock
https://bugs.webkit.org/show_bug.cgi?id=221115

Reviewed by Yusuke Suzuki.

GKT and WPE ports were observing a random assertion failure in
Deque::append in RunLoop::dispatch.

  • wtf/RunLoop.cpp:

(WTF::RunLoop::threadWillExit): Lock m_nextIterationLock before doing m_nextIteration.clear().

Note: See TracTimeline for information about the timeline view.